<?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>98724</bug_id>
          
          <creation_ts>2012-10-08 23:16:08 -0700</creation_ts>
          <short_desc>[EFL] Remove &quot;web&quot; word in web inspector</short_desc>
          <delta_ts>2012-10-11 18:19:32 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>js45.yang</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>seokju.kwon</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>737441</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-08 23:16:08 -0700</bug_when>
    <thetext>Remove &quot;web&quot; word from ewk files in order to be consistent with WK2. Bug 97886 and Bug 97887 removed *web* from WK2.

This was discussed in webkit-efl mailing list.
http://lists.webkit.org/pipermail/webkit-efl/2012-September/000308.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737449</commentid>
    <comment_count>1</comment_count>
      <attachid>167695</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-08 23:25:49 -0700</bug_when>
    <thetext>Created attachment 167695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737486</commentid>
    <comment_count>2</comment_count>
      <attachid>167702</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-09 00:35:09 -0700</bug_when>
    <thetext>Created attachment 167702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737603</commentid>
    <comment_count>3</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-10-09 03:03:55 -0700</bug_when>
    <thetext>I disagree with blind replacements like this -- some features simply have &apos;web&apos; in their names, such as Web Audio or Web Databases (which is actually Web SQL Database).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737605</commentid>
    <comment_count>4</comment_count>
    <who name="Jongseok Yang">js45.yang</who>
    <bug_when>2012-10-09 03:16:31 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I disagree with blind replacements like this -- some features simply have &apos;web&apos; in their names, such as Web Audio or Web Databases (which is actually Web SQL Database).

The WK API name for Web Database is just WKDatabaseXXXXX.
So, I think that we can remove &quot;web&quot; word from the implementation for web databases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737620</commentid>
    <comment_count>5</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-09 03:47:21 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I disagree with blind replacements like this -- some features simply have &apos;web&apos; in their names, such as Web Audio or Web Databases (which is actually Web SQL Database).

As Raphael said, we may argue with web database and web audio in WK1. Because other ports in WK1 are still using *web*. It looks I need to consider this further. 

BTW, how about removing web from web_inspector ? I think *web* is redundant in inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737631</commentid>
    <comment_count>6</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-10-09 04:02:02 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; I disagree with blind replacements like this -- some features simply have &apos;web&apos; in their names, such as Web Audio or Web Databases (which is actually Web SQL Database).
&gt; 
&gt; As Raphael said, we may argue with web database and web audio in WK1. Because other ports in WK1 are still using *web*. It looks I need to consider this further. 
&gt; 
&gt; BTW, how about removing web from web_inspector ? I think *web* is redundant in inspector.

Yeah, I think removing this one is OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737654</commentid>
    <comment_count>7</comment_count>
      <attachid>167732</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-09 04:29:05 -0700</bug_when>
    <thetext>Created attachment 167732
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737656</commentid>
    <comment_count>8</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-09 04:30:32 -0700</bug_when>
    <thetext>I only remove *web* from web inspector. Other will be considered further. Jongseok and Seokju, how do you think ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737657</commentid>
    <comment_count>9</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-09 04:31:58 -0700</bug_when>
    <thetext>Beside other ports just use *inspector* except for gtk and win ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737871</commentid>
    <comment_count>10</comment_count>
      <attachid>167732</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-10-09 09:37:24 -0700</bug_when>
    <thetext>Comment on attachment 167732
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740482</commentid>
    <comment_count>11</comment_count>
    <who name="Seokju Kwon">seokju.kwon</who>
    <bug_when>2012-10-11 18:01:17 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I only remove *web* from web inspector. Other will be considered further. Jongseok and Seokju, how do you think ?

No problem. I have also removed &quot;web&quot; from web inspector on Bug 98639.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740483</commentid>
    <comment_count>12</comment_count>
      <attachid>167732</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2012-10-11 18:03:10 -0700</bug_when>
    <thetext>Comment on attachment 167732
Patch

This change makes the api more consistent.

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740491</commentid>
    <comment_count>13</comment_count>
      <attachid>167732</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-11 18:19:27 -0700</bug_when>
    <thetext>Comment on attachment 167732
Patch

Clearing flags on attachment: 167732

Committed r131119: &lt;http://trac.webkit.org/changeset/131119&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740492</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-11 18:19:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167695</attachid>
            <date>2012-10-08 23:25:49 -0700</date>
            <delta_ts>2012-10-09 00:35:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98724-20121009152451.patch</filename>
            <type>text/plain</type>
            <size>59057</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEzNTZkNTAxZTU2ZjBiZTA3
MGVhYTBhNjE2MjllMzBhMTcyZWVlZDEuLjc0ZDhhZWNlY2YzYmI4YWY0NjIzMTQwZThkOWVjODUw
YWZkNTczNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTAtMDggIEd5dXlvdW5n
IEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBSZW1vdmUg
IndlYiIgd29yZCBpbiBld2sgZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk4NzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVtb3ZlICJ3ZWIiIHdvcmQgZnJvbSBld2sgZmlsZXMgaW4gb3JkZXIg
dG8gYmUgY29uc2lzdGVudCB3aXRoIFdLMi4KKyAgICAgICAgQnVnIDk3ODg2IGFuZCBCdWcgOTc4
ODcgcmVtb3ZlZCAqd2ViKiBmcm9tIFdLMi4KKworICAgICAgICBUaGlzIHdhcyBkaXNjdXNzZWQg
aW4gd2Via2l0LWVmbCBtYWlsaW5nIGxpc3QuCisgICAgICAgIGh0dHA6Ly9saXN0cy53ZWJraXQu
b3JnL3BpcGVybWFpbC93ZWJraXQtZWZsLzIwMTItU2VwdGVtYmVyLzAwMDMwOC5odG1sLgorCisg
ICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisKIDIwMTItMTAtMDQgIFJvYiBCdWlzICA8cmJ1
aXNAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gU3luYyB1cCBDTWFrZSBmaWxlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCmluZGV4IDU5MGY5MzQwYmEzNmE5MjQ2ZWNlMWUxYjBkMzQ4YzY3MGNmM2Nk
YTEuLjg5OWMxNDAyZDljM2VjOGRlNzZkZjJmYzMyODNkZTI1YWM5YzY4MzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAxMi0xMC0wOCAgR3l1eW91bmcgS2ltICA8Z3l1eW91
bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIFJlbW92ZSAid2ViIiB3b3JkIGlu
IGV3ayBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTg3MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZW1vdmUgIndlYiIgd29yZCBmcm9tIGV3ayBmaWxlcyBpbiBvcmRlciB0byBiZSBjb25zaXN0
ZW50IHdpdGggV0syLgorICAgICAgICBCdWcgOTc4ODYgYW5kIEJ1ZyA5Nzg4NyByZW1vdmVkICp3
ZWIqIGZyb20gV0syLgorCisgICAgICAgIFRoaXMgd2FzIGRpc2N1c3NlZCBpbiB3ZWJraXQtZWZs
IG1haWxpbmcgbGlzdC4KKyAgICAgICAgaHR0cDovL2xpc3RzLndlYmtpdC5vcmcvcGlwZXJtYWls
L3dlYmtpdC1lZmwvMjAxMi1TZXB0ZW1iZXIvMDAwMzA4Lmh0bWwuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50RWZsOjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
bGllbnRFZmw6Om9wZW5JbnNwZWN0b3JGcm9udGVuZCk6CisgICAgICAgICogZXdrL0VXZWJLaXQu
aDoKKyAgICAgICAgKiBld2svZXdrX2RhdGFiYXNlLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfd2ViX2RhdGFiYXNlLmNwcC4KKyAgICAgICAgKF9Fd2tfRGF0YWJh
c2UpOgorICAgICAgICAoZXdrX2RhdGFiYXNlX2Rpc3BsYXlfbmFtZV9nZXQpOgorICAgICAgICAo
ZXdrX2RhdGFiYXNlX2V4cGVjdGVkX3NpemVfZ2V0KToKKyAgICAgICAgKGV3a19kYXRhYmFzZV9m
aWxlbmFtZV9nZXQpOgorICAgICAgICAoZXdrX2RhdGFiYXNlX25hbWVfZ2V0KToKKyAgICAgICAg
KGV3a19kYXRhYmFzZV9zZWN1cml0eV9vcmlnaW5fZ2V0KToKKyAgICAgICAgKGV3a19kYXRhYmFz
ZV9zaXplX2dldCk6CisgICAgICAgIChld2tfZGF0YWJhc2VfcmVtb3ZlKToKKyAgICAgICAgKGV3
a19kYXRhYmFzZV9yZW1vdmVfYWxsKToKKyAgICAgICAgKGV3a19kYXRhYmFzZV9mcmVlKToKKyAg
ICAgICAgKGV3a19kYXRhYmFzZV9saXN0X2ZyZWUpOgorICAgICAgICAoZXdrX2RhdGFiYXNlX25l
dyk6CisgICAgICAgICogZXdrL2V3a19kYXRhYmFzZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a193ZWJfZGF0YWJhc2UuaC4KKyAgICAgICAgKiBld2svZXdrX2RhdGFi
YXNlX3ByaXZhdGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfd2Vi
X2RhdGFiYXNlX3ByaXZhdGUuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGV3ay9l
d2tfbWFpbi5jcHA6CisgICAgICAgIChfZXdrX2luaXRfYm9keSk6CisgICAgICAgICogZXdrL2V3
a19zZWN1cml0eV9vcmlnaW4uY3BwOgorICAgICAgICAoZXdrX3NlY3VyaXR5X29yaWdpbl9kYXRh
YmFzZV91c2FnZV9nZXQpOgorICAgICAgICAoZXdrX3NlY3VyaXR5X29yaWdpbl9kYXRhYmFzZV9x
dW90YV9nZXQpOgorICAgICAgICAoZXdrX3NlY3VyaXR5X29yaWdpbl9kYXRhYmFzZV9xdW90YV9z
ZXQpOgorICAgICAgICAoZXdrX3NlY3VyaXR5X29yaWdpbl9kYXRhYmFzZV9nZXRfYWxsKToKKyAg
ICAgICAgKiBld2svZXdrX3NlY3VyaXR5X29yaWdpbi5oOgorICAgICAgICAqIGV3ay9ld2tfc2V0
dGluZ3MuY3BwOgorICAgICAgICAoZXdrX3NldHRpbmdzX2RhdGFiYXNlX2RlZmF1bHRfcXVvdGFf
Z2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5nc19kYXRhYmFzZV9kZWZhdWx0X3F1b3RhX3NldCk6
CisgICAgICAgIChld2tfc2V0dGluZ3NfZGF0YWJhc2VfcGF0aF9zZXQpOgorICAgICAgICAoZXdr
X3NldHRpbmdzX2RhdGFiYXNlX3BhdGhfZ2V0KToKKyAgICAgICAgKiBld2svZXdrX3NldHRpbmdz
Lmg6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192aWV3X2luc3Bl
Y3Rvcl9zaG93KToKKyAgICAgICAgKGV3a192aWV3X2luc3BlY3Rvcl9jbG9zZSk6CisgICAgICAg
IChld2tfdmlld19pbnNwZWN0b3Jfdmlld19nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfaW5zcGVj
dG9yX3ZpZXdfc2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfYXVkaW9fZ2V0KToKKyAg
ICAgICAgKGV3a192aWV3X3NldHRpbmdfYXVkaW9fc2V0KToKKyAgICAgICAgKiBld2svZXdrX3Zp
ZXcuaDoKKwogMjAxMi0xMC0wNyAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fp
by5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJlbmFtZSBmaXJzdC9zZWNvbmQg
dG8ga2V5L3ZhbHVlIGluIEhhc2hNYXAgaXRlcmF0b3JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQpp
bmRleCBmOWI4ODU2OTk5YzVlZjFhOGI0MWQxZjFkMjFkNDNlZGQ0NTNlMTg1Li5jMWVjMmVlZDQx
OTFiZmQ5NDM4NTE3NWY1NTRkYWMyMmJhOWRkMDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UK
QEAgLTEwOCw2ICsxMDgsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIGVmbC9l
d2svZXdrX2NvbnRleHRtZW51LmNwcAogICAgIGVmbC9ld2svZXdrX2Nvb2tpZXMuY3BwCiAgICAg
ZWZsL2V3ay9ld2tfY3VzdG9tX2hhbmRsZXIuY3BwCisgICAgZWZsL2V3ay9ld2tfZGF0YWJhc2Uu
Y3BwCiAgICAgZWZsL2V3ay9ld2tfZmlsZV9jaG9vc2VyLmNwcAogICAgIGVmbC9ld2svZXdrX2Zy
YW1lLmNwcAogICAgIGVmbC9ld2svZXdrX2hpc3RvcnkuY3BwCkBAIC0xMjksNyArMTMwLDYgQEAg
TElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBlZmwvZXdrL2V3a192aWV3X3NpbmdsZS5j
cHAKICAgICBlZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcAogICAgIGVmbC9ld2svZXdrX3dpbmRv
d19mZWF0dXJlcy5jcHAKLSAgICBlZmwvZXdrL2V3a193ZWJfZGF0YWJhc2UuY3BwCiApCiAKIExJ
U1QoQVBQRU5EIFdlYktpdF9MSUJSQVJJRVMKQEAgLTE3Miw2ICsxNzIsNyBAQCBTRVQoRVdlYktp
dF9IRUFERVJTCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2VmbC9ld2svZXdrX2F1
dGguaAogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a19jb250ZXh0
bWVudS5oCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2VmbC9ld2svZXdrX2Nvb2tp
ZXMuaAorICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a19kYXRhYmFz
ZS5oCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2VmbC9ld2svZXdrX2ZpbGVfY2hv
b3Nlci5oCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2VmbC9ld2svZXdrX2ZyYW1l
LmgKICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZWZsL2V3ay9ld2tfaGlzdG9yeS5o
CkBAIC0xODUsNyArMTg2LDYgQEAgU0VUKEVXZWJLaXRfSEVBREVSUwogICAgICR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a19zZXR0aW5ncy5oCiAgICAgJHtDTUFLRV9DVVJS
RU5UX1NPVVJDRV9ESVJ9L2VmbC9ld2svZXdrX3ZpZXcuaAogICAgICR7Q01BS0VfQ1VSUkVOVF9T
T1VSQ0VfRElSfS9lZmwvZXdrL2V3a193aW5kb3dfZmVhdHVyZXMuaAotICAgICR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a193ZWJfZGF0YWJhc2UuaAogKQogCiBJTlNUQUxM
KEZJTEVTICR7RVdlYktpdF9IRUFERVJTfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKaW5kZXggZDRiNmQ3YWQwNDAwYmI1ZGQ4
ODM3MTcwMWVjMmJjNWRiOTQ2YThkMi4uODJlNWI0YWYwMGE5NGI1ZDNhY2U3MjAxNGY0NzYzNmFl
NTI3NTZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRFZmwuY3BwCkBAIC00MzQsNyArNDM0LDcgQEAgdm9pZCBDaHJvbWVDbGllbnRF
Zmw6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0
YWJhc2UKICAgICAgKiBkZWZhdWx0IHF1b3RhIGlzIGFwcGxpZWQKICAgICAgKi8KICAgICBpZiAo
IXF1b3RhICYmICFEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5oYXNFbnRyeUZvck9yaWdpbihv
cmlnaW4pKQotICAgICAgICBxdW90YSA9IGV3a19zZXR0aW5nc193ZWJfZGF0YWJhc2VfZGVmYXVs
dF9xdW90YV9nZXQoKTsKKyAgICAgICAgcXVvdGEgPSBld2tfc2V0dGluZ3NfZGF0YWJhc2VfZGVm
YXVsdF9xdW90YV9nZXQoKTsKIAogICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLnNldFF1
b3RhKG9yaWdpbiwgcXVvdGEpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKaW5kZXggNzAxZjMwNmE5ZWUyY2Uy
OTA1MTQxNTY5YWIzMWU5ZDFiMTE4OTA5Yy4uNWYyZTg0NjRjNzc2ZjhkMDQ1M2ExMjFlODgyMDk1
ZTI5NTQ2N2U1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIEluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbCogSW5zcGVjdG9yQ2xpZW50RWZsOjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQo
SW5zcGVjdG9yQ29uCiB7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtX2lu
c3BlY3RlZFZpZXcsICJpbnNwZWN0b3IsdmlldyxjcmVhdGUiLCAwKTsKIAotICAgIEV2YXNfT2Jq
ZWN0KiBpbnNwZWN0b3JWaWV3ID0gZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X2dldChtX2lu
c3BlY3RlZFZpZXcpOworICAgIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3ID0gZXdrX3ZpZXdf
aW5zcGVjdG9yX3ZpZXdfZ2V0KG1faW5zcGVjdGVkVmlldyk7CiAgICAgaWYgKCFpbnNwZWN0b3JW
aWV3KQogICAgICAgICByZXR1cm4gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL0VXZWJLaXQuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9FV2ViS2l0LmgKaW5kZXggN2M5
MWMzYzlhODM4YjljNTQxZGY3ZGFlNDFmZWVmY2MxNzg5ZTQwNC4uN2Y1Y2EwNmNiMTY2YmY4ZTNi
NTczZTQ3YTY3NzViMDdiNDlkMDJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L0VXZWJLaXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svRVdlYktpdC5oCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiZXdrX2F1dGguaCIKICNpbmNsdWRlICJld2tfY29udGV4dG1l
bnUuaCIKICNpbmNsdWRlICJld2tfY29va2llcy5oIgorI2luY2x1ZGUgImV3a19kYXRhYmFzZS5o
IgogI2luY2x1ZGUgImV3a19maWxlX2Nob29zZXIuaCIKICNpbmNsdWRlICJld2tfZnJhbWUuaCIK
ICNpbmNsdWRlICJld2tfaGlzdG9yeS5oIgpAQCAtNDQsNyArNDUsNiBAQAogI2luY2x1ZGUgImV3
a19zZWN1cml0eV9wb2xpY3kuaCIKICNpbmNsdWRlICJld2tfc2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJld2tfdmlldy5oIgotI2luY2x1ZGUgImV3a193ZWJfZGF0YWJhc2UuaCIKICNpbmNsdWRlICJl
d2tfd2luZG93X2ZlYXR1cmVzLmgiCiAKICNpbmNsdWRlIDxFdmFzLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfZGF0YWJhc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5MGJmODEwMWQ1MmQ3MGMyYzkxYmVh
MTk1ZjQ0ZTdiMzJmYjVmZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2RhdGFiYXNlLmNwcApAQCAtMCwwICsxLDE4MiBAQAorLyoKKyAgICBDb3B5cmlnaHQg
KEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiZXdrX2RhdGFiYXNlLmgiCisKKyNpbmNsdWRlICJEYXRhYmFzZVRyYWNrZXIuaCIKKyNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgImV3a19kYXRhYmFzZV9wcml2YXRl
LmgiCisjaW5jbHVkZSAiZXdrX3NlY3VyaXR5X29yaWdpbi5oIgorI2luY2x1ZGUgImV3a19zZWN1
cml0eV9vcmlnaW5fcHJpdmF0ZS5oIgorI2luY2x1ZGUgPEVpbmEuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK3N0cnVjdCBfRXdrX0RhdGFiYXNlIHsKKyAgICBXVEY6OlJlZlB0
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW47CisgICAgV1RGOjpTdHJp
bmcgY29yZU5hbWU7CisgICAgY29uc3QgY2hhciogZGlzcGxheU5hbWU7CisgICAgY29uc3QgY2hh
ciogZmlsZW5hbWU7CisgICAgY29uc3QgY2hhciogbmFtZTsKK307CisKK2NvbnN0IGNoYXIqIGV3
a19kYXRhYmFzZV9kaXNwbGF5X25hbWVfZ2V0KEV3a19EYXRhYmFzZSogZGF0YWJhc2UpCit7Cisj
aWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKKyAgICBpZiAoZGF0YWJhc2UtPmRpc3BsYXlOYW1lKQor
ICAgICAgICByZXR1cm4gZGF0YWJhc2UtPmRpc3BsYXlOYW1lOworCisgICAgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4qIG9yaWdpbiA9IGRhdGFiYXNlLT5zZWN1cml0eU9yaWdpbi5nZXQoKTsKKyAg
ICBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMgZGV0YWlscyA9IFdlYkNvcmU6OkRhdGFiYXNlVHJh
Y2tlcjo6dHJhY2tlcigpLmRldGFpbHNGb3JOYW1lQW5kT3JpZ2luKGRhdGFiYXNlLT5uYW1lLCBv
cmlnaW4pOworICAgIGRhdGFiYXNlLT5kaXNwbGF5TmFtZSA9IGVpbmFfc3RyaW5nc2hhcmVfYWRk
KGRldGFpbHMuZGlzcGxheU5hbWUoKS51dGY4KCkuZGF0YSgpKTsKKworICAgIHJldHVybiBkYXRh
YmFzZS0+ZGlzcGxheU5hbWU7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkYXRhYmFzZSk7Cisg
ICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKwordWludDY0X3QgZXdrX2RhdGFiYXNlX2V4cGVjdGVk
X3NpemVfZ2V0KGNvbnN0IEV3a19EYXRhYmFzZSogZGF0YWJhc2UpCit7CisjaWYgRU5BQkxFKFNR
TF9EQVRBQkFTRSkKKyAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gZGF0YWJh
c2UtPnNlY3VyaXR5T3JpZ2luLmdldCgpOworICAgIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscyBk
ZXRhaWxzID0gV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuZGV0YWlsc0Zvck5h
bWVBbmRPcmlnaW4oZGF0YWJhc2UtPm5hbWUsIG9yaWdpbik7CisgICAgcmV0dXJuIGRldGFpbHMu
ZXhwZWN0ZWRVc2FnZSgpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGF0YWJhc2UpOworICAg
IHJldHVybiAwOworI2VuZGlmCit9CisKK2NvbnN0IGNoYXIqIGV3a19kYXRhYmFzZV9maWxlbmFt
ZV9nZXQoRXdrX0RhdGFiYXNlKiBkYXRhYmFzZSkKK3sKKyNpZiBFTkFCTEUoU1FMX0RBVEFCQVNF
KQorICAgIGlmIChkYXRhYmFzZS0+ZmlsZW5hbWUpCisgICAgICAgIHJldHVybiBkYXRhYmFzZS0+
ZmlsZW5hbWU7CisKKyAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gZGF0YWJh
c2UtPnNlY3VyaXR5T3JpZ2luLmdldCgpOworICAgIFdURjo6U3RyaW5nIHBhdGggPSBXZWJDb3Jl
OjpEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5mdWxsUGF0aEZvckRhdGFiYXNlKG9yaWdpbiwg
ZGF0YWJhc2UtPmNvcmVOYW1lKTsKKyAgICBkYXRhYmFzZS0+ZmlsZW5hbWUgPSBlaW5hX3N0cmlu
Z3NoYXJlX2FkZChwYXRoLnV0ZjgoKS5kYXRhKCkpOworCisgICAgcmV0dXJuIGRhdGFiYXNlLT5m
aWxlbmFtZTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRhdGFiYXNlKTsKKyAgICByZXR1cm4g
MDsKKyNlbmRpZgorfQorCitjb25zdCBjaGFyKiBld2tfZGF0YWJhc2VfbmFtZV9nZXQoRXdrX0Rh
dGFiYXNlKiBkYXRhYmFzZSkKK3sKKyNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQorICAgIGlmIChk
YXRhYmFzZS0+bmFtZSkKKyAgICAgICAgcmV0dXJuIGRhdGFiYXNlLT5uYW1lOworCisgICAgZGF0
YWJhc2UtPm5hbWUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChkYXRhYmFzZS0+Y29yZU5hbWUudXRm
OCgpLmRhdGEoKSk7CisKKyAgICByZXR1cm4gZGF0YWJhc2UtPm5hbWU7CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShkYXRhYmFzZSk7CisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworRXdrX1Nl
Y3VyaXR5X09yaWdpbiogZXdrX2RhdGFiYXNlX3NlY3VyaXR5X29yaWdpbl9nZXQoY29uc3QgRXdr
X0RhdGFiYXNlKiBkYXRhYmFzZSkKK3sKKyAgICByZXR1cm4gZXdrX3NlY3VyaXR5X29yaWdpbl9u
ZXcoZGF0YWJhc2UtPnNlY3VyaXR5T3JpZ2luLmdldCgpKTsKK30KKwordWludDY0X3QgZXdrX2Rh
dGFiYXNlX3NpemVfZ2V0KGNvbnN0IEV3a19EYXRhYmFzZSogZGF0YWJhc2UpCit7CisjaWYgRU5B
QkxFKFNRTF9EQVRBQkFTRSkKKyAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogb3JpZ2luID0g
ZGF0YWJhc2UtPnNlY3VyaXR5T3JpZ2luLmdldCgpOworICAgIFdlYkNvcmU6OkRhdGFiYXNlRGV0
YWlscyBkZXRhaWxzID0gV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuZGV0YWls
c0Zvck5hbWVBbmRPcmlnaW4oZGF0YWJhc2UtPm5hbWUsIG9yaWdpbik7CisgICAgcmV0dXJuIGRl
dGFpbHMuY3VycmVudFVzYWdlKCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkYXRhYmFzZSk7
CisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKwordm9pZCBld2tfZGF0YWJhc2VfcmVtb3ZlKEV3
a19EYXRhYmFzZSogZGF0YWJhc2UpCit7CisjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKKyAgICBX
ZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5kZWxldGVEYXRhYmFzZShkYXRhYmFz
ZS0+c2VjdXJpdHlPcmlnaW4uZ2V0KCksIGRhdGFiYXNlLT5jb3JlTmFtZSk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShkYXRhYmFzZSk7CisjZW5kaWYKK30KKwordm9pZCBld2tfZGF0YWJhc2Vf
cmVtb3ZlX2FsbCh2b2lkKQoreworI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCisgICAgV2ViQ29y
ZTo6RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuZGVsZXRlQWxsRGF0YWJhc2VzKCk7CisjZW5k
aWYKK30KKwordm9pZCBld2tfZGF0YWJhc2VfZnJlZShFd2tfRGF0YWJhc2UqIGRhdGFiYXNlKQor
eworI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCisgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwoZGF0
YWJhc2UtPmRpc3BsYXlOYW1lKTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChkYXRhYmFzZS0+
ZmlsZW5hbWUpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKGRhdGFiYXNlLT5uYW1lKTsKKwor
ICAgIGRlbGV0ZSBkYXRhYmFzZTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRhdGFiYXNlKTsK
KyNlbmRpZgorfQorCit2b2lkIGV3a19kYXRhYmFzZV9saXN0X2ZyZWUoRWluYV9MaXN0KiBkYXRh
YmFzZUxpc3QpCit7CisgICAgdm9pZCogZGF0YWJhc2U7CisgICAgRUlOQV9MSVNUX0ZSRUUoZGF0
YWJhc2VMaXN0LCBkYXRhYmFzZSkKKyAgICAgICAgZXdrX2RhdGFiYXNlX2ZyZWUoc3RhdGljX2Nh
c3Q8RXdrX0RhdGFiYXNlKj4oZGF0YWJhc2UpKTsKK30KKworLyoqCisgKiBAaW50ZXJuYWwKKyAq
IENyZWF0ZXMgYSB3cmFwcGVyIHJlcHJlc2VudGluZyBhIFdlYiBEYXRhYmFzZS4KKyAqCisgKiBA
cGFyYW0gY29yZU9yaWdpbiBXZWJDb3JlIFNlY3VyaXR5IE9yaWdpbiBvYmplY3QKKyAqIEBwYXJh
bSBjb3JlTmFtZSBXZWIgRGF0YWJhc2UgbmFtZQorICoKKyAqIEByZXR1cm4gYSB3cmFwcGVyIGZv
ciBtYW5pcHVsYXRpbmcgYSBXZWIgRGF0YWJhc2UuIEl0IHNob3VsZCBiZSBmcmVlZAorICogYnkg
ZXdrX2RhdGFiYXNlX2ZyZWUoKS4KKyAqLworRXdrX0RhdGFiYXNlKiBld2tfZGF0YWJhc2VfbmV3
KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiBjb3JlT3JpZ2luLCBjb25zdCBXVEY6OlN0cmluZyYg
Y29yZU5hbWUpCit7CisjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKKyAgICBFd2tfRGF0YWJhc2Uq
IGRhdGFiYXNlID0gbmV3IEV3a19EYXRhYmFzZTsKKworICAgIGRhdGFiYXNlLT5zZWN1cml0eU9y
aWdpbiA9IGNvcmVPcmlnaW47CisgICAgZGF0YWJhc2UtPmNvcmVOYW1lID0gY29yZU5hbWU7Cisg
ICAgZGF0YWJhc2UtPmRpc3BsYXlOYW1lID0gMDsKKyAgICBkYXRhYmFzZS0+ZmlsZW5hbWUgPSAw
OworICAgIGRhdGFiYXNlLT5uYW1lID0gMDsKKworICAgIHJldHVybiBkYXRhYmFzZTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKGNvcmVPcmlnaW4pOworICAgIFVOVVNFRF9QQVJBTShjb3JlTmFt
ZSk7CisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfZGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZGF0YWJh
c2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMjhiMTI5ZTM1NTljNWY0NzJjZTFjYWVlMjFiYmE4YjJhYjIyNGY2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19kYXRhYmFzZS5o
CkBAIC0wLDAgKzEsMTM2IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jw
b3JhdGlvbgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAg
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyovCisKKy8qKgorICogQGZpbGUgICAgZXdrX2RhdGFiYXNlLmgKKyAqIEBicmllZiAg
IFdlYiBEYXRhYmFzZSBBUEkuCisgKgorICogVGhpcyBBUEkgcHJvdmlkZXMgZnVuY3Rpb25zIGZv
ciBtYW5hZ2luZyBXZWIgRGF0YWJhc2UgY3JlYXRlZCBmb3IgYSBzZWN1cml0eQorICogb3JpZ2lu
LiBXZWJLaXQgbmVlZHMgdG8gYmUgY29tcGlsZWQgd2l0aCBXZWIgRGF0YWJhc2Ugc3VwcG9ydCBp
biBvcmRlciB0byB1c2UKKyAqIHRoaXMgQVBJLgorICovCisKKyNpZm5kZWYgZXdrX2RhdGFiYXNl
X2gKKyNkZWZpbmUgZXdrX2RhdGFiYXNlX2gKKworI2luY2x1ZGUgImV3a19zZWN1cml0eV9vcmln
aW4uaCIKKworI2luY2x1ZGUgPEV2YXMuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4g
IkMiIHsKKyNlbmRpZgorCit0eXBlZGVmIHN0cnVjdCBfRXdrX0RhdGFiYXNlIEV3a19EYXRhYmFz
ZTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSB1c2VyIGZyaWVuZGx5IG5hbWUgb2YgdGhlIGRhdGFi
YXNlLgorICoKKyAqIEl0IHJldHVybnMgYSBpbnRlcm5hbCBzdHJpbmcgd2hpY2ggc2hvdWxkIG5v
dAorICogYmUgbW9kaWZpZWQuIFRoZSBzdHJpbmcgaXMgZ3VhcmFudGVlZCB0byBiZSBzdHJpbmdz
aGFyZWQuCisgKgorICogQHBhcmFtIG8gZGF0YWJhc2Ugb2JqZWN0CisgKgorICogQHJldHVybiB0
aGUgZGF0YWJhc2UgbmFtZQorICovCitFQVBJIGNvbnN0IGNoYXIgICpld2tfZGF0YWJhc2VfZGlz
cGxheV9uYW1lX2dldChFd2tfRGF0YWJhc2UgKm8pOworCisvKioKKyAqIFJldHVybnMgdGhlIHNp
emUgb2YgdGhlIGRhdGFiYXNlIGV4cGVjdGVkIGJ5IHRoZSBhdXRob3IuCisgKgorICogQHBhcmFt
IG8gZGF0YWJhc2Ugb2JqZWN0CisgKgorICogQHJldHVybiBleHBlY3RlZCBzaXplCisgKi8KK0VB
UEkgdWludDY0X3QgICAgIGV3a19kYXRhYmFzZV9leHBlY3RlZF9zaXplX2dldChjb25zdCBFd2tf
RGF0YWJhc2UgKm8pOworCisvKioKKyAqIFJldHVybnMgdGhlIGFic29sdXRlIHBhdGggdG8gdGhl
IGRhdGFiYXNlIGZpbGUuCisgKgorICogSXQgcmV0dXJucyBhIGludGVybmFsIHN0cmluZyB3aGlj
aCBzaG91bGQgbm90CisgKiBiZSBtb2RpZmllZC4gVGhlIHN0cmluZyBpcyBndWFyYW50ZWVkIHRv
IGJlIHN0cmluZ3NoYXJlZC4KKyAqCisgKiBAcGFyYW0gbyBkYXRhYmFzZSBvYmplY3QKKyAqCisg
KiBAcmV0dXJuIHRoZSBkYXRhYmFzZSBwYXRoCisgKi8KK0VBUEkgY29uc3QgY2hhciAgKmV3a19k
YXRhYmFzZV9maWxlbmFtZV9nZXQoRXdrX0RhdGFiYXNlICpvKTsKKworLyoqCisgKiBSZXR1cm5z
IHRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZS4KKyAqCisgKiBJdCByZXR1cm5zIGEgaW50ZXJuYWwg
c3RyaW5nIHdoaWNoIHNob3VsZCBub3QKKyAqIGJlIG1vZGlmaWVkLiBUaGUgc3RyaW5nIGlzIGd1
YXJhbnRlZWQgdG8gYmUgc3RyaW5nc2hhcmVkLgorICoKKyAqIEBwYXJhbSBvIGRhdGFiYXNlIG9i
amVjdAorICoKKyAqIEByZXR1cm4gdGhlIGRhdGFiYXNlIG5hbWUKKyAqLworRUFQSSBjb25zdCBj
aGFyICAqZXdrX2RhdGFiYXNlX25hbWVfZ2V0KEV3a19EYXRhYmFzZSAqbyk7CisKKy8qKgorICog
UmV0cmlldmVzIHRoZSBzZWN1cml0eSBvcmlnaW4gb2YgdGhlIGRhdGFiYXNlLgorICoKKyAqIFRo
ZSByZXR1cm5lZCB2YWx1ZSBzaG91bGQgYmUgZnJlZWQgYnkgZXdrX3NlY3VyaXR5X29yaWdpbl9m
cmVlKCkuCisgKgorICogQHBhcmFtIG8gZGF0YWJhc2Ugb2JqZWN0CisgKgorICogQHJldHVybiB0
aGUgc2VjdXJpdHkgb3JpZ2luCisgKi8KK0VBUEkgRXdrX1NlY3VyaXR5X09yaWdpbiAqZXdrX2Rh
dGFiYXNlX3NlY3VyaXR5X29yaWdpbl9nZXQoY29uc3QgRXdrX0RhdGFiYXNlICpvKTsKKworLyoq
CisgKiBSZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBkYXRhYmFzZS4KKyAqCisgKiBAcGFyYW0gbyBk
YXRhYmFzZSBvYmplY3QKKyAqCisgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHNpemUgb2YgdGhlIGRh
dGFiYXNlCisgKi8KK0VBUEkgdWludDY0X3QgICAgIGV3a19kYXRhYmFzZV9zaXplX2dldChjb25z
dCBFd2tfRGF0YWJhc2UgKm8pOworCisvKioKKyAqIFJlbW92ZSB0aGUgZGF0YWJhc2UgZnJvbSB0
aGUgc2VjdXJpdHkgb3JpZ2luIGFuZCBkZXN0cm95IGFsbCBkYXRhLgorICoKKyAqIEBwYXJhbSBv
IGRhdGFiYXNlIG9iamVjdAorICovCitFQVBJIHZvaWQgICAgICAgICBld2tfZGF0YWJhc2VfcmVt
b3ZlKEV3a19EYXRhYmFzZSAqbyk7CisKKy8qKgorICogUmVtb3ZlIGFsbCB0aGUgZGF0YWJhc2Vz
IGluIHRoZSBjdXJyZW50IGRlZmF1bHQgcGF0aC4KKyAqLworRUFQSSB2b2lkICAgICAgICAgZXdr
X2RhdGFiYXNlX3JlbW92ZV9hbGwodm9pZCk7CisKKy8qKgorICogUmVsZWFzZSBhbGwgcmVzb3Vy
Y2VzIGFsbG9jYXRlZCBieSBhIGRhdGFiYXNlIG9iamVjdC4KKyAqCisgKiBAcGFyYW0gbyBkYXRh
YmFzZSBvYmplY3QKKyAqLworRUFQSSB2b2lkICAgICAgICAgZXdrX2RhdGFiYXNlX2ZyZWUoRXdr
X0RhdGFiYXNlICpvKTsKKworLyoqCisgKiBDb252ZW5pZW5jZSBmdW5jdGlvbiBmb3IgcmVsZWFz
aW5nIGFsbCBkYXRhYmFzZSBvYmplY3RzIGZyb20gYSBsaXN0LgorICoKKyAqIEBwYXJhbSBkYXRh
YmFzZV9saXN0IGxpc3Qgb2YgZGF0YWJhc2Ugb2JqZWN0cyB0byBiZSBmcmVlZAorICovCitFQVBJ
IHZvaWQgICAgICAgICBld2tfZGF0YWJhc2VfbGlzdF9mcmVlKEVpbmFfTGlzdCAqZGF0YWJhc2Vf
bGlzdCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLy8gZXdrX2Rh
dGFiYXNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZGF0YWJhc2Vf
cHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19kYXRhYmFzZV9wcml2YXRlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmVkNmFhM2MwOGJlNWNmYTMzMmZlMGQ1ZjZmNmY1ZTI1ZmMxOWQyYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZGF0YWJhc2VfcHJpdmF0
ZS5oCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENv
cnBvcmF0aW9uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAg
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
ICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorKi8KKworI2lmbmRlZiBld2tfZGF0YWJhc2VfcHJpdmF0ZV9oCisjZGVmaW5lIGV3
a19kYXRhYmFzZV9wcml2YXRlX2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKK30KKworRXdrX0Rh
dGFiYXNlKiBld2tfZGF0YWJhc2VfbmV3KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiBjb3JlT3Jp
Z2luLCBjb25zdCBXVEY6OlN0cmluZyYgY29yZU5hbWUpOworCisjZW5kaWYgLy8gZXdrX2RhdGFi
YXNlX3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19tYWlu
LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbWFpbi5jcHAKaW5kZXggZTY2NzJmZTdj
NTQ1NmNjYTBlODdhYzdmOTZiN2FlMjY5ZjY5Y2NmNi4uYTE5NzRiNjU3NGNmODQ4MmJkZTZkMWNm
NzNiODc5ODg4YjY5MzAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19t
YWluLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX21haW4uY3BwCkBAIC0xODQs
NyArMTg0LDcgQEAgRWluYV9Cb29sIF9ld2tfaW5pdF9ib2R5KHZvaWQpCiAgICAgU3RyaW5nIGFw
cGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkgPSBTdHJpbmc6OmZyb21VVEY4KGVmcmVldF9jYWNoZV9o
b21lX2dldCgpKSArICIvV2ViS2l0RWZsL0FwcGxpY2F0aW9ucyI7CiAKICAgICBld2tfc2V0dGlu
Z3NfbG9jYWxfc3RvcmFnZV9wYXRoX3NldChsb2NhbFN0b3JhZ2VEaXJlY3RvcnkudXRmOCgpLmRh
dGEoKSk7Ci0gICAgZXdrX3NldHRpbmdzX3dlYl9kYXRhYmFzZV9wYXRoX3NldCh3ZWJEYXRhYmFz
ZURpcmVjdG9yeS51dGY4KCkuZGF0YSgpKTsKKyAgICBld2tfc2V0dGluZ3NfZGF0YWJhc2VfcGF0
aF9zZXQod2ViRGF0YWJhc2VEaXJlY3RvcnkudXRmOCgpLmRhdGEoKSk7CiAgICAgZXdrX3NldHRp
bmdzX2FwcGxpY2F0aW9uX2NhY2hlX3BhdGhfc2V0KGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rvcnku
dXRmOCgpLmRhdGEoKSk7CiAKICAgICBld2tfbmV0d29ya190bHNfY2VydGlmaWNhdGVfY2hlY2tf
c2V0KGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2VjdXJp
dHlfb3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2VjdXJpdHlfb3JpZ2lu
LmNwcAppbmRleCAxYjY4ODRlOGMxOTdmZTg2OGViZmJlMDc2MGY0NjY3OGNjNzA0NTNjLi4yNDJm
MGE1OTBjYjU4Yzk5YmNmYzI3Zjk4OTNmZWNlNjhlNmU1N2M3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3NlY3VyaXR5X29yaWdpbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19zZWN1cml0eV9vcmlnaW4uY3BwCkBAIC0yNCw5ICsyNCw5IEBACiAjaW5j
bHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKICNpbmNsdWRlICJEYXRhYmFzZVRyYWNr
ZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgImV3a19kYXRhYmFz
ZS5oIgorI2luY2x1ZGUgImV3a19kYXRhYmFzZV9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3Nl
Y3VyaXR5X29yaWdpbl9wcml2YXRlLmgiCi0jaW5jbHVkZSAiZXdrX3dlYl9kYXRhYmFzZS5oIgot
I2luY2x1ZGUgImV3a193ZWJfZGF0YWJhc2VfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CkBAIC02Miw3ICs2Miw3IEBAIHVpbnQzMl90IGV3a19zZWN1cml0eV9vcmlnaW5f
cG9ydF9nZXQoY29uc3QgRXdrX1NlY3VyaXR5X09yaWdpbiogb3JpZ2luKQogICAgIHJldHVybiBv
cmlnaW4tPnNlY3VyaXR5T3JpZ2luLT5wb3J0KCk7CiB9CiAKLXVpbnQ2NF90IGV3a19zZWN1cml0
eV9vcmlnaW5fd2ViX2RhdGFiYXNlX3VzYWdlX2dldChjb25zdCBFd2tfU2VjdXJpdHlfT3JpZ2lu
KiBvcmlnaW4pCit1aW50NjRfdCBld2tfc2VjdXJpdHlfb3JpZ2luX2RhdGFiYXNlX3VzYWdlX2dl
dChjb25zdCBFd2tfU2VjdXJpdHlfT3JpZ2luKiBvcmlnaW4pCiB7CiAgICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKG9yaWdpbiwgMCk7CiAKQEAgLTczLDcgKzczLDcgQEAgdWludDY0
X3QgZXdrX3NlY3VyaXR5X29yaWdpbl93ZWJfZGF0YWJhc2VfdXNhZ2VfZ2V0KGNvbnN0IEV3a19T
ZWN1cml0eV9PcmlnaW4qIG8KICNlbmRpZgogfQogCi11aW50NjRfdCBld2tfc2VjdXJpdHlfb3Jp
Z2luX3dlYl9kYXRhYmFzZV9xdW90YV9nZXQoY29uc3QgRXdrX1NlY3VyaXR5X09yaWdpbiogb3Jp
Z2luKQordWludDY0X3QgZXdrX3NlY3VyaXR5X29yaWdpbl9kYXRhYmFzZV9xdW90YV9nZXQoY29u
c3QgRXdrX1NlY3VyaXR5X09yaWdpbiogb3JpZ2luKQogewogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChvcmlnaW4sIDApOwogCkBAIC04NCw3ICs4NCw3IEBAIHVpbnQ2NF90IGV3
a19zZWN1cml0eV9vcmlnaW5fd2ViX2RhdGFiYXNlX3F1b3RhX2dldChjb25zdCBFd2tfU2VjdXJp
dHlfT3JpZ2luKiBvCiAjZW5kaWYKIH0KIAotdm9pZCBld2tfc2VjdXJpdHlfb3JpZ2luX3dlYl9k
YXRhYmFzZV9xdW90YV9zZXQoY29uc3QgRXdrX1NlY3VyaXR5X09yaWdpbiogb3JpZ2luLCB1aW50
NjRfdCBxdW90YSkKK3ZvaWQgZXdrX3NlY3VyaXR5X29yaWdpbl9kYXRhYmFzZV9xdW90YV9zZXQo
Y29uc3QgRXdrX1NlY3VyaXR5X09yaWdpbiogb3JpZ2luLCB1aW50NjRfdCBxdW90YSkKIHsKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihvcmlnaW4pOwogCkBAIC0xMDUsNyArMTA1LDcg
QEAgdm9pZCBld2tfc2VjdXJpdHlfb3JpZ2luX2FwcGxpY2F0aW9uX2NhY2hlX2NsZWFyKGNvbnN0
IEV3a19TZWN1cml0eV9PcmlnaW4qIG9yaWcKICAgICBXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hl
OjpkZWxldGVDYWNoZUZvck9yaWdpbihvcmlnaW4tPnNlY3VyaXR5T3JpZ2luLmdldCgpKTsKIH0K
IAotRWluYV9MaXN0KiBld2tfc2VjdXJpdHlfb3JpZ2luX3dlYl9kYXRhYmFzZV9nZXRfYWxsKGNv
bnN0IEV3a19TZWN1cml0eV9PcmlnaW4qIG9yaWdpbikKK0VpbmFfTGlzdCogZXdrX3NlY3VyaXR5
X29yaWdpbl9kYXRhYmFzZV9nZXRfYWxsKGNvbnN0IEV3a19TZWN1cml0eV9PcmlnaW4qIG9yaWdp
bikKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwob3JpZ2luLCAwKTsKIApA
QCAtMTE3LDcgKzExNyw3IEBAIEVpbmFfTGlzdCogZXdrX3NlY3VyaXR5X29yaWdpbl93ZWJfZGF0
YWJhc2VfZ2V0X2FsbChjb25zdCBFd2tfU2VjdXJpdHlfT3JpZ2luKiBvCiAgICAgICAgIHJldHVy
biAwOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG5hbWVzLnNpemUoKTsgaSsrKSB7
Ci0gICAgICAgIEV3a19XZWJfRGF0YWJhc2UqIGRhdGFiYXNlID0gZXdrX3dlYl9kYXRhYmFzZV9u
ZXcob3JpZ2luLT5zZWN1cml0eU9yaWdpbi5nZXQoKSwgbmFtZXNbaV0udXRmOCgpLmRhdGEoKSk7
CisgICAgICAgIEV3a19EYXRhYmFzZSogZGF0YWJhc2UgPSBld2tfZGF0YWJhc2VfbmV3KG9yaWdp
bi0+c2VjdXJpdHlPcmlnaW4uZ2V0KCksIG5hbWVzW2ldLnV0ZjgoKS5kYXRhKCkpOwogICAgICAg
ICBkYXRhYmFzZXMgPSBlaW5hX2xpc3RfYXBwZW5kKGRhdGFiYXNlcywgZGF0YWJhc2UpOwogICAg
IH0KICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NlY3VyaXR5
X29yaWdpbi5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZWN1cml0eV9vcmlnaW4uaApp
bmRleCA5OTk2OTcyZDcxYjU2M2FiNDJhYjY0NmEwNDlhYTkyN2JjOTBlZWZjLi43YWU3ZDQzMGZk
YjE1NGEyNzQ5OTBlNzMzN2YyMGRiNTRlODc3MDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3NlY3VyaXR5X29yaWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfc2VjdXJpdHlfb3JpZ2luLmgKQEAgLTk1LDcgKzk1LDcgQEAgRUFQSSB1aW50MzJfdCAg
ICAgICAgICAgICBld2tfc2VjdXJpdHlfb3JpZ2luX3BvcnRfZ2V0KGNvbnN0IEV3a19TZWN1cml0
eV9PcmlnaW4KICAqCiAgKiBAcmV0dXJuIHRoZSB1c2FnZSBpbiBieXRlcwogICovCi1FQVBJIHVp
bnQ2NF90ICAgICAgICAgICAgIGV3a19zZWN1cml0eV9vcmlnaW5fd2ViX2RhdGFiYXNlX3VzYWdl
X2dldChjb25zdCBFd2tfU2VjdXJpdHlfT3JpZ2luICpvKTsKK0VBUEkgdWludDY0X3QgICAgICAg
ICAgICAgZXdrX3NlY3VyaXR5X29yaWdpbl9kYXRhYmFzZV91c2FnZV9nZXQoY29uc3QgRXdrX1Nl
Y3VyaXR5X09yaWdpbiAqbyk7CiAKIC8qKgogICogUmV0cmlldmVzIHRoZSBxdW90YSBvZiBhIGRh
dGFiYXNlIGZvciBhIHNlY3VyaXR5IG9yaWdpbi4KQEAgLTEwNyw3ICsxMDcsNyBAQCBFQVBJIHVp
bnQ2NF90ICAgICAgICAgICAgIGV3a19zZWN1cml0eV9vcmlnaW5fd2ViX2RhdGFiYXNlX3VzYWdl
X2dldChjb25zdCBFd2tfUwogICoKICAqIEByZXR1cm4gdGhlIHF1b3RhIGluIGJ5dGVzIG9yIEBj
IDAgaWYgdGhlcmUgaXMgbm90IGEgcHJvcGVyIHNlY3VyaXR5IG9yaWdpbiBzY2hlbWUKICAqLwot
RUFQSSB1aW50NjRfdCAgICAgICAgICAgICBld2tfc2VjdXJpdHlfb3JpZ2luX3dlYl9kYXRhYmFz
ZV9xdW90YV9nZXQoY29uc3QgRXdrX1NlY3VyaXR5X09yaWdpbiAqbyk7CitFQVBJIHVpbnQ2NF90
ICAgICAgICAgICAgIGV3a19zZWN1cml0eV9vcmlnaW5fZGF0YWJhc2VfcXVvdGFfZ2V0KGNvbnN0
IEV3a19TZWN1cml0eV9PcmlnaW4gKm8pOwogCiAvKioKICAqIFNldHMgdGhlIGRhdGFiYXNlIHVz
YWdlIHF1b3RhIGZvciBhIHNlY3VyaXR5IG9yaWdpbi4KQEAgLTExOCw3ICsxMTgsNyBAQCBFQVBJ
IHVpbnQ2NF90ICAgICAgICAgICAgIGV3a19zZWN1cml0eV9vcmlnaW5fd2ViX2RhdGFiYXNlX3F1
b3RhX2dldChjb25zdCBFd2tfUwogICogQHBhcmFtIG8gc2VjdXJpdHkgb3JpZ2luIG9iamVjdAog
ICogQHBhcmFtIHF1b3RhIHRoZSB1c2FnZSBxdW90YSBpbiBieXRlcwogICovCi1FQVBJIHZvaWQg
ICAgICAgICAgICAgICAgIGV3a19zZWN1cml0eV9vcmlnaW5fd2ViX2RhdGFiYXNlX3F1b3RhX3Nl
dChjb25zdCBFd2tfU2VjdXJpdHlfT3JpZ2luICpvLCB1aW50NjRfdCBxdW90YSk7CitFQVBJIHZv
aWQgICAgICAgICAgICAgICAgIGV3a19zZWN1cml0eV9vcmlnaW5fZGF0YWJhc2VfcXVvdGFfc2V0
KGNvbnN0IEV3a19TZWN1cml0eV9PcmlnaW4gKm8sIHVpbnQ2NF90IHF1b3RhKTsKIAogLyoqCiAg
KiBTZXRzIHRoZSBhcHBsaWNhdGlvbiBjYWNoZSB1c2FnZSBxdW90YSBmb3IgYSBzZWN1cml0eSBv
cmlnaW4uCkBAIC0xMzgsOCArMTM4LDggQEAgRUFQSSB2b2lkICAgICAgICAgICAgICAgICBld2tf
c2VjdXJpdHlfb3JpZ2luX2FwcGxpY2F0aW9uX2NhY2hlX2NsZWFyKGNvbnN0IEV3a18KIC8qKgog
ICogUmV0dXJuIHRoZSBsaXN0IG9mIHdlYiBkYXRhYmFzZXMgaW4gdGhlIHNlY3VyaXR5IG9yaWdp
bi4KICAqCi0gKiBFYWNoIGl0ZW0gb2YgdGhlIGxpc3Qgc2hvdWxkIGJlIHJlbGVhc2UgdXNpbmcg
ZXdrX3dlYl9kYXRhYmFzZV9mcmVlKCkgb3IKLSAqIHVzZSBld2tfd2ViX2RhdGFiYXNlX2xpc3Rf
ZnJlZSgpIGFzIGNvbnZlbmllbmNlLgorICogRWFjaCBpdGVtIG9mIHRoZSBsaXN0IHNob3VsZCBi
ZSByZWxlYXNlIHVzaW5nIGV3a19kYXRhYmFzZV9mcmVlKCkgb3IKKyAqIHVzZSBld2tfZGF0YWJh
c2VfbGlzdF9mcmVlKCkgYXMgY29udmVuaWVuY2UuCiAgKgogICogVGhpcyBmdW5jdGlvbiB3b24n
dCB3b3JrIGlmIFdlYiBTUUwgRGF0YWJhc2Ugd2FzIG5vdCBlbmFibGVkIHdoZW4KICAqIGJ1aWxk
aW5nIFdlYktpdCBhbmQgd2lsbCBqdXN0IHJldHVybiBAYyBOVUxMLgpAQCAtMTQ4LDEwICsxNDgs
MTAgQEAgRUFQSSB2b2lkICAgICAgICAgICAgICAgICBld2tfc2VjdXJpdHlfb3JpZ2luX2FwcGxp
Y2F0aW9uX2NhY2hlX2NsZWFyKGNvbnN0IEV3a18KICAqCiAgKiBAcmV0dXJuIGxpc3Qgb2Ygd2Vi
IGRhdGFiYXNlcyBpbiB0aGUgc2VjdXJpdHkgb3JpZ2luIG9yIEBjIE5VTEwgaWYgdGhlcmUgaXMg
bm90IGEgcHJvcGVyIHNlY3VyaXR5IG9yaWdpbiBzY2hlbWUKICAqCi0gKiBAc2VlIGV3a193ZWJf
ZGF0YWJhc2VfZnJlZSgpCi0gKiBAc2VlIGV3a193ZWJfZGF0YWJhc2VfbGlzdF9mcmVlKCkKKyAq
IEBzZWUgZXdrX2RhdGFiYXNlX2ZyZWUoKQorICogQHNlZSBld2tfZGF0YWJhc2VfbGlzdF9mcmVl
KCkKICAqLwotRUFQSSBFaW5hX0xpc3QgICAgICAgICAgICpld2tfc2VjdXJpdHlfb3JpZ2luX3dl
Yl9kYXRhYmFzZV9nZXRfYWxsKGNvbnN0IEV3a19TZWN1cml0eV9PcmlnaW4gKm8pOworRUFQSSBF
aW5hX0xpc3QgICAgICAgICAgICpld2tfc2VjdXJpdHlfb3JpZ2luX2RhdGFiYXNlX2dldF9hbGwo
Y29uc3QgRXdrX1NlY3VyaXR5X09yaWdpbiAqbyk7CiAKIC8qKgogICogUmVsZWFzZSBhbGwgcmVz
b3VyY2VzIGFsbG9jYXRlZCBieSBhIHNlY3VyaXR5IG9yaWdpbiBvYmplY3QuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfc2V0dGluZ3MuY3BwCmluZGV4IGYxMDUyM2RjOGU5YzVkYjQ3NWMyY2NiM2Fi
MmVjNDBkZWEyMGIwYjMuLmRjNGRiNmFhZTllNTBlMGMxNjBlYWI4NWZjZjFjYmE2YmNiYzc3ZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuY3BwCkBAIC05OCwxMiArOTgsMTIg
QEAgc3RhdGljIFdURjo6U3RyaW5nIF9ld2tfc2V0dGluZ3Nfd2Via2l0X29zX3ZlcnNpb25fZ2V0
KCkKICAgICByZXR1cm4gdWFPc1ZlcnNpb247CiB9CiAKLXVpbnQ2NF90IGV3a19zZXR0aW5nc193
ZWJfZGF0YWJhc2VfZGVmYXVsdF9xdW90YV9nZXQoKQordWludDY0X3QgZXdrX3NldHRpbmdzX2Rh
dGFiYXNlX2RlZmF1bHRfcXVvdGFfZ2V0KCkKIHsKICAgICByZXR1cm4gc193ZWJEYXRhYmFzZVF1
b3RhOwogfQogCi12b2lkIGV3a19zZXR0aW5nc193ZWJfZGF0YWJhc2VfZGVmYXVsdF9xdW90YV9z
ZXQodWludDY0X3QgbWF4aW11bVNpemUpCit2b2lkIGV3a19zZXR0aW5nc19kYXRhYmFzZV9kZWZh
dWx0X3F1b3RhX3NldCh1aW50NjRfdCBtYXhpbXVtU2l6ZSkKIHsKICAgICBzX3dlYkRhdGFiYXNl
UXVvdGEgPSBtYXhpbXVtU2l6ZTsKIH0KQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIGV3a19zZXR0
aW5nc19sb2NhbF9zdG9yYWdlX2RhdGFiYXNlX29yaWdpbl9jbGVhcihjb25zdCBjaGFyKiB1cmwp
CiAgICAgV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnRyYWNrZXIoKS5kZWxldGVPcmlnaW4oV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShrdXJsKS5nZXQoKSk7CiB9CiAKLXZvaWQgZXdr
X3NldHRpbmdzX3dlYl9kYXRhYmFzZV9wYXRoX3NldChjb25zdCBjaGFyKiBwYXRoKQordm9pZCBl
d2tfc2V0dGluZ3NfZGF0YWJhc2VfcGF0aF9zZXQoY29uc3QgY2hhciogcGF0aCkKIHsKICNpZiBF
TkFCTEUoU1FMX0RBVEFCQVNFKQogICAgIFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cigpLnNldERhdGFiYXNlRGlyZWN0b3J5UGF0aChXVEY6OlN0cmluZzo6ZnJvbVVURjgocGF0aCkp
OwpAQCAtMTQwLDcgKzE0MCw3IEBAIHZvaWQgZXdrX3NldHRpbmdzX3dlYl9kYXRhYmFzZV9wYXRo
X3NldChjb25zdCBjaGFyKiBwYXRoKQogI2VuZGlmCiB9CiAKLWNvbnN0IGNoYXIqIGV3a19zZXR0
aW5nc193ZWJfZGF0YWJhc2VfcGF0aF9nZXQodm9pZCkKK2NvbnN0IGNoYXIqIGV3a19zZXR0aW5n
c19kYXRhYmFzZV9wYXRoX2dldCh2b2lkKQogewogICAgIHJldHVybiBzX3dlYkRhdGFiYXNlUGF0
aDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuaCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuaAppbmRleCBmYjc5Mjc5ZjBjMDI0
NjZmNTRhZTM4NTBmMWU2Y2YzZWM4YjM5OWExLi45NGQ2Y2IwZjRkOTExYmViZDdlY2QyNDNkODk3
ZjQ1YWQyNjhiNWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRp
bmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZXR0aW5ncy5oCkBAIC00Miw3
ICs0Miw3IEBAIGV4dGVybiAiQyIgewogICoKICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgZGVmYXVs
dCBkYXRhYmFzZSBxdW90YSBpbiBieXRlcwogICovCi1FQVBJIHVpbnQ2NF90ICAgICAgICAgZXdr
X3NldHRpbmdzX3dlYl9kYXRhYmFzZV9kZWZhdWx0X3F1b3RhX2dldCh2b2lkKTsKK0VBUEkgdWlu
dDY0X3QgICAgICAgICBld2tfc2V0dGluZ3NfZGF0YWJhc2VfZGVmYXVsdF9xdW90YV9nZXQodm9p
ZCk7CiAKIC8qKgogICogU2V0cyB0aGUgZGVmYXVsdCBtYXhpbXVtIHNpemUgKGluIGJ5dGVzKSBh
biBIVE1MNSBXZWIgRGF0YWJhc2UgZGF0YWJhc2UgY2FuIGhhdmUuCkBAIC01MSw3ICs1MSw3IEBA
IEVBUEkgdWludDY0X3QgICAgICAgICBld2tfc2V0dGluZ3Nfd2ViX2RhdGFiYXNlX2RlZmF1bHRf
cXVvdGFfZ2V0KHZvaWQpOwogICoKICAqIEBwYXJhbSBtYXhpbXVtX3NpemUgdGhlIG5ldyBtYXhp
bXVtIHNpemUgYSBkYXRhYmFzZSBpcyBhbGxvd2VkCiAgKi8KLUVBUEkgdm9pZCAgICAgICAgICAg
ICBld2tfc2V0dGluZ3Nfd2ViX2RhdGFiYXNlX2RlZmF1bHRfcXVvdGFfc2V0KHVpbnQ2NF90IG1h
eGltdW1fc2l6ZSk7CitFQVBJIHZvaWQgICAgICAgICAgICAgZXdrX3NldHRpbmdzX2RhdGFiYXNl
X2RlZmF1bHRfcXVvdGFfc2V0KHVpbnQ2NF90IG1heGltdW1fc2l6ZSk7CiAKIC8qKgogICogU2V0
cyB0aGUgY3VycmVudCBwYXRoIHRvIHRoZSBkaXJlY3RvcnkgV2ViS2l0IHdpbGwgd3JpdGUgV2Vi
CkBAIC02MSw3ICs2MSw3IEBAIEVBUEkgdm9pZCAgICAgICAgICAgICBld2tfc2V0dGluZ3Nfd2Vi
X2RhdGFiYXNlX2RlZmF1bHRfcXVvdGFfc2V0KHVpbnQ2NF90IG1heGltCiAgKgogICogQHBhcmFt
IHBhdGggdGhlIG5ldyBkYXRhYmFzZSBkaXJlY3RvcnkgcGF0aAogICovCi1FQVBJIHZvaWQgICAg
ICAgICAgICAgZXdrX3NldHRpbmdzX3dlYl9kYXRhYmFzZV9wYXRoX3NldChjb25zdCBjaGFyICpw
YXRoKTsKK0VBUEkgdm9pZCAgICAgICAgICAgICBld2tfc2V0dGluZ3NfZGF0YWJhc2VfcGF0aF9z
ZXQoY29uc3QgY2hhciAqcGF0aCk7CiAKIC8qKgogICogU2V0cyB0aGUgY3VycmVudCBwYXRoIHRv
IHRoZSBkaXJlY3Rvcnkgd2hlcmUgV2ViS2l0IHdpbGwgd3JpdGUgdGhlCkBAIC0xMjEsNyArMTIx
LDcgQEAgRUFQSSB2b2lkIGV3a19zZXR0aW5nc19sb2NhbF9zdG9yYWdlX2RhdGFiYXNlX29yaWdp
bl9jbGVhcihjb25zdCBjaGFyICp1cmwpOwogICoKICAqIEByZXR1cm4gZGF0YWJhc2UgcGF0aCBv
ciBAYyBOVUxMIGlmIG5vbmUgb3Igd2ViIGRhdGFiYXNlIGlzIG5vdCBzdXBwb3J0ZWQKICAqLwot
RUFQSSBjb25zdCBjaGFyICAgICAgKmV3a19zZXR0aW5nc193ZWJfZGF0YWJhc2VfcGF0aF9nZXQo
dm9pZCk7CitFQVBJIGNvbnN0IGNoYXIgICAgICAqZXdrX3NldHRpbmdzX2RhdGFiYXNlX3BhdGhf
Z2V0KHZvaWQpOwogCiAvKioKICAqIFNldHMgZGlyZWN0b3J5IHdoZXJlIHRvIHN0b3JlIGljb24g
ZGF0YWJhc2UsIG9wZW5pbmcgb3IgY2xvc2luZyBkYXRhYmFzZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuY3BwCmluZGV4IGVmMzU2NGQ2Y2RlODE3NmY1MzRjMjQ0YjE1ZDg0MTM4ZGU3YmIzMDIu
LjNhNDM0NWRkZDZhZDE5Y2VjZDA2NzdhMzQyYzQzZGIxNmZhZGM1MDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3LmNwcApAQCAtNDQ0NSw3ICs0NDQ1LDcgQEAgdm9pZCBld2tfdmlld19zZXR0
aW5nX3Nob3VsZF9kaXNwbGF5X3RleHRfZGVzY3JpcHRpb25zX3NldChFdmFzX09iamVjdCAqZXdr
VmlldywKICNlbmRpZgogfQogCi12b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfc2hvdyhjb25z
dCBFdmFzX09iamVjdCogZXdrVmlldykKK3ZvaWQgZXdrX3ZpZXdfaW5zcGVjdG9yX3Nob3coY29u
c3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBF
V0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CkBAIC00NDU1LDcg
KzQ0NTUsNyBAQCB2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfc2hvdyhjb25zdCBFdmFzX09i
amVjdCogZXdrVmlldykKICNlbmRpZgogfQogCi12b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jf
Y2xvc2UoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit2b2lkIGV3a192aWV3X2luc3BlY3Rv
cl9jbG9zZShjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKIHsKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsK
QEAgLTQ0NjUsNyArNDQ2NSw3IEBAIHZvaWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZShj
b25zdCBFdmFzX09iamVjdCogZXdrVmlldykKICNlbmRpZgogfQogCi1FdmFzX09iamVjdCogZXdr
X3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykK
K0V2YXNfT2JqZWN0KiBld2tfdmlld19pbnNwZWN0b3Jfdmlld19nZXQoY29uc3QgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBFV0tfVklFV19TRF9H
RVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CkBAIC00NDc3LDcgKzQ0NzcsNyBA
QCBFdmFzX09iamVjdCogZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X2dldChjb25zdCBFdmFz
X09iamVjdCogZXdrVmlldykKICNlbmRpZgogfQogCi12b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0
b3Jfdmlld19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JW
aWV3KQordm9pZCBld2tfdmlld19pbnNwZWN0b3Jfdmlld19zZXQoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3KQogewogI2lmIEVOQUJMRShJTlNQRUNUT1Ip
CiAgICAgRVdLX1ZJRVdfU0RfR0VUKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CkBAIC00NTAxLDcgKzQ1
MDEsNyBAQCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRCogZXdrX3ZpZXdfYWNjZWxlcmF0ZWRf
Y29tcG9zaXRpbmdfY29udGV4dF9nZXQoRXZhc19PYgogfQogI2VuZGlmCiAKLUVpbmFfQm9vbCBl
d2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcp
CitFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19hdWRpb19nZXQoY29uc3QgRXZhc19PYmplY3Qq
IGV3a1ZpZXcpCiB7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBFV0tfVklFV19TRF9HRVRf
T1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwpAQCAtNDUxMyw3ICs0NTEzLDcg
QEAgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfd2ViX2F1ZGlvX2dldChjb25zdCBFdmFzX09i
amVjdCogZXdrVmlldykKICNlbmRpZgogfQogCi1FaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ193
ZWJfYXVkaW9fc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFaW5hX0Jvb2wgZW5hYmxlKQorRWlu
YV9Cb29sIGV3a192aWV3X3NldHRpbmdfYXVkaW9fc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBF
aW5hX0Jvb2wgZW5hYmxlKQogewogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgRVdLX1ZJRVdf
U0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3LmgKaW5kZXggN2E4YjVkNzNiMGMxNTA0NzA2Y2NhYmQwMzIwMGJhNWUxNDdmN2Jh
Yi4uODZmYTZjNTY5ZDg5ZGM0MzJmYjIzZDU5NzY0YzQ4YzFkYjNmNmRlYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3LmgKQEAgLTI2ODksNyArMjY4OSw3IEBAIEVBUEkgdm9pZCBld2tfdmlld19z
ZXR0aW5nX3Nob3VsZF9kaXNwbGF5X3RleHRfZGVzY3JpcHRpb25zX3NldChFdmFzX09iamVjdCAq
bywKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHdlYiBhdWRpbyBpcyBlbmFibGVkLAogICog
ICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBmYWlsdXJlCiAgKi8KLUVBUEkgRWlu
YV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfd2ViX2F1ZGlvX2dldChjb25zdCBFdmFzX09iamVj
dCAqbyk7CitFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX2F1ZGlvX2dldChjb25z
dCBFdmFzX09iamVjdCAqbyk7CiAKIC8qKgogICogRW5hYmxlcy9kaXNhYmxlcyB0aGUgd2ViIGF1
ZGlvIGZlYXR1cmUgb2YgSFRNTDUuCkBAIC0yNzAwLDcgKzI3MDAsNyBAQCBFQVBJIEVpbmFfQm9v
bCAgICBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19nZXQoY29uc3QgRXZhc19PYmplY3QgKm8p
OwogICoKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Mgb3IgQGMgRUlOQV9GQUxT
RSBvbiBmYWlsdXJlCiAgKi8KLUVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfd2Vi
X2F1ZGlvX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIGVuYWJsZSk7CitFQVBJIEVpbmFf
Qm9vbCAgICBld2tfdmlld19zZXR0aW5nX2F1ZGlvX3NldChFdmFzX09iamVjdCAqbywgRWluYV9C
b29sIGVuYWJsZSk7CiAKIC8qKgogICogU2hvdyB0aGUgd2ViIGluc3BlY3RvciB0byBkZWJ1ZyBh
IHdlYiBwYWdlLgpAQCAtMjcwOCw3ICsyNzA4LDcgQEAgRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3Zp
ZXdfc2V0dGluZ193ZWJfYXVkaW9fc2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgZW5hYmwK
ICAqIFRoZSBmb2xsb3dpbmcgc2lnbmFscyBhcmUgZW1paXRlZC4KICAqICJpbnNwZWN0b3Isdmll
dyxjcmVhdGUiIGFuZCAiaW5zcGVjdG9yLHZpZXcsY2xvc2UiCiAgKiBUaGUgZmlyc3Qgb25lIHdp
bGwgYmUgY2FsbGVkIHRvIHJlcXVlc3QgdGhlIHZpZXcgZm9yIHdlYiBpbnNwZWN0b3Igb24gdmll
dyB0aGF0IHdpbGwgYmUgaW5zcGVjdGVkLgotICogVGhpcyBjYWxsYmFjayBzaG91bGQgY3JlYXRl
IHRoZSB2aWV3IGZvciB3ZWIgaW5zcGVjdG9yIGFuZCBzZXQgdGhlIHZpZXcgd2l0aCBld2tfdmll
d193ZWJfaW5zcGVjdG9yX3ZpZXdfc2V0KCkuCisgKiBUaGlzIGNhbGxiYWNrIHNob3VsZCBjcmVh
dGUgdGhlIHZpZXcgZm9yIHdlYiBpbnNwZWN0b3IgYW5kIHNldCB0aGUgdmlldyB3aXRoIGV3a192
aWV3X2luc3BlY3Rvcl92aWV3X3NldCgpLgogICogVGhlIHNlY29uZCBvbmUgd2lsbCBiZSBjYWxs
ZWQgdG8gY2xvc2UgdGhlIHZpZXcgZm9yIHdlYiBpbnNwZWN0b3Igb24gdmlldyBoYXZpbmcgdGhl
IHdlYiBpbnNwZWN0b3IgYWZ0ZXIgZGlzY29ubmVjdGluZyBmcm9udGVuZAogICogVGhpcyBjYWxs
YmFjayBzaG91bGQgcmVtb3ZlIHRoZSB2aWV3IGZvciB3ZWIgaW5zcGVjdG9yLgogICoKQEAgLTI3
MTcsMjAgKzI3MTcsMjAgQEAgRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfc2V0dGluZ193ZWJf
YXVkaW9fc2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgZW5hYmwKICAqCiAgKiBAcGFyYW0g
byBUaGUgdmlldyB0byBzaG93IHRoZSB3ZWIgaW5zcGVjdG9yLgogICoKLSAqIEBzZWUgZXdrX3Zp
ZXdfd2ViX2luc3BlY3Rvcl9jbG9zZSgpCi0gKiBAc2VlIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jf
dmlld19zZXQoKQorICogQHNlZSBld2tfdmlld19pbnNwZWN0b3JfY2xvc2UoKQorICogQHNlZSBl
d2tfdmlld19pbnNwZWN0b3Jfdmlld19zZXQoKQogICovCi1FQVBJIHZvaWQgZXdrX3ZpZXdfd2Vi
X2luc3BlY3Rvcl9zaG93KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKK0VBUEkgdm9pZCBld2tfdmll
d19pbnNwZWN0b3Jfc2hvdyhjb25zdCBFdmFzX09iamVjdCAqbyk7CiAKIC8qKgogICogQ2xvc2Ug
dGhlIHdlYiBpbnNwZWN0b3IgdmlldwogICoKICAqIEBwYXJhbSBvIFRoZSB2aWV3IHRvIGNsb3Nl
IHRoZSB3ZWIgaW5zcGVjdG9yLgogICoKLSAqIEBzZWUgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl9z
aG93KCkKLSAqIEBzZWUgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X2dldCgpCisgKiBAc2Vl
IGV3a192aWV3X2luc3BlY3Rvcl9zaG93KCkKKyAqIEBzZWUgZXdrX3ZpZXdfaW5zcGVjdG9yX3Zp
ZXdfZ2V0KCkKICAqLwotRUFQSSB2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3JfY2xvc2UoY29u
c3QgRXZhc19PYmplY3QgKm8pOworRUFQSSB2b2lkIGV3a192aWV3X2luc3BlY3Rvcl9jbG9zZShj
b25zdCBFdmFzX09iamVjdCAqbyk7CiAKIC8qKgogICogR2V0IHRoZSB2aWV3IG9mIHdlYiBpbnNw
ZWN0b3IuCkBAIC0yNzM5LDcgKzI3MzksNyBAQCBFQVBJIHZvaWQgZXdrX3ZpZXdfd2ViX2luc3Bl
Y3Rvcl9jbG9zZShjb25zdCBFdmFzX09iamVjdCAqbyk7CiAgKgogICogQHJldHVybiB2aWV3IG9i
amVjdCBvbiBzdWNjZXNzIG9yIEBjIE5VTEwgb24gZmFpbHVyZQogICovCi1FQVBJIEV2YXNfT2Jq
ZWN0KiBld2tfdmlld193ZWJfaW5zcGVjdG9yX3ZpZXdfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpv
KTsKK0VBUEkgRXZhc19PYmplY3QqIGV3a192aWV3X2luc3BlY3Rvcl92aWV3X2dldChjb25zdCBF
dmFzX09iamVjdCAqbyk7CiAKIC8qKgogICogU2V0IHRoZSB2aWV3IG9mIHdlYiBpbnNwZWN0b3Iu
CkBAIC0yNzQ3LDcgKzI3NDcsNyBAQCBFQVBJIEV2YXNfT2JqZWN0KiBld2tfdmlld193ZWJfaW5z
cGVjdG9yX3ZpZXdfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKICAqIEBwYXJhbSBvIFRoZSB2
aWV3IHRoYXQgaXMgaW5zcGVjdGVkLgogICogQHBhcmFtIGluc3BlY3Rvcl92aWV3IFRoZSB2aWV3
IG9mIHdlYiBpbnNwZWN0b3IuCiAgKi8KLUVBUEkgdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9y
X3ZpZXdfc2V0KEV2YXNfT2JqZWN0ICpvLCBFdmFzX09iamVjdCAqaW5zcGVjdG9yX3ZpZXcpOwor
RUFQSSB2b2lkIGV3a192aWV3X2luc3BlY3Rvcl92aWV3X3NldChFdmFzX09iamVjdCAqbywgRXZh
c19PYmplY3QgKmluc3BlY3Rvcl92aWV3KTsKIAogLyoqCiAgKiBFbmFibGVzL2Rpc2FibGVzIHRo
ZSBmdWxsc2NyZWVuIG1vZGUgYnkgamF2YXNjcmlwdCBmdWxsc2NyZWVuIEFQSS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfd2ViX2RhdGFiYXNlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfd2ViX2RhdGFiYXNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYzE1Y2FkNjYwZjRlNzVmYmIxYmU4YTI0M2ViMGY4YjIxYjU1YWYwOS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3dlYl9kYXRhYmFzZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxODIgKzAsMCBA
QAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KLQotICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
Ci0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAg
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCi0gICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0qLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiZXdrX3dlYl9kYXRhYmFzZS5oIgotCi0jaW5jbHVk
ZSAiRGF0YWJhc2VUcmFja2VyLmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNs
dWRlICJld2tfc2VjdXJpdHlfb3JpZ2luLmgiCi0jaW5jbHVkZSAiZXdrX3NlY3VyaXR5X29yaWdp
bl9wcml2YXRlLmgiCi0jaW5jbHVkZSAiZXdrX3dlYl9kYXRhYmFzZV9wcml2YXRlLmgiCi0jaW5j
bHVkZSA8RWluYS5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVW51
c2VkUGFyYW0uaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotc3RydWN0IF9F
d2tfV2ViX0RhdGFiYXNlIHsKLSAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4gc2VjdXJpdHlPcmlnaW47Ci0gICAgV1RGOjpTdHJpbmcgY29yZU5hbWU7Ci0gICAgY29uc3Qg
Y2hhciogZGlzcGxheU5hbWU7Ci0gICAgY29uc3QgY2hhciogZmlsZW5hbWU7Ci0gICAgY29uc3Qg
Y2hhciogbmFtZTsKLX07Ci0KLWNvbnN0IGNoYXIqIGV3a193ZWJfZGF0YWJhc2VfZGlzcGxheV9u
YW1lX2dldChFd2tfV2ViX0RhdGFiYXNlKiBkYXRhYmFzZSkKLXsKLSNpZiBFTkFCTEUoU1FMX0RB
VEFCQVNFKQotICAgIGlmIChkYXRhYmFzZS0+ZGlzcGxheU5hbWUpCi0gICAgICAgIHJldHVybiBk
YXRhYmFzZS0+ZGlzcGxheU5hbWU7Ci0KLSAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogb3Jp
Z2luID0gZGF0YWJhc2UtPnNlY3VyaXR5T3JpZ2luLmdldCgpOwotICAgIFdlYkNvcmU6OkRhdGFi
YXNlRGV0YWlscyBkZXRhaWxzID0gV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCku
ZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4oZGF0YWJhc2UtPm5hbWUsIG9yaWdpbik7Ci0gICAgZGF0
YWJhc2UtPmRpc3BsYXlOYW1lID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoZGV0YWlscy5kaXNwbGF5
TmFtZSgpLnV0ZjgoKS5kYXRhKCkpOwotCi0gICAgcmV0dXJuIGRhdGFiYXNlLT5kaXNwbGF5TmFt
ZTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGRhdGFiYXNlKTsKLSAgICByZXR1cm4gMDsKLSNl
bmRpZgotfQotCi11aW50NjRfdCBld2tfd2ViX2RhdGFiYXNlX2V4cGVjdGVkX3NpemVfZ2V0KGNv
bnN0IEV3a19XZWJfRGF0YWJhc2UqIGRhdGFiYXNlKQotewotI2lmIEVOQUJMRShTUUxfREFUQUJB
U0UpCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGRhdGFiYXNlLT5zZWN1
cml0eU9yaWdpbi5nZXQoKTsKLSAgICBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMgZGV0YWlscyA9
IFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLmRldGFpbHNGb3JOYW1lQW5kT3Jp
Z2luKGRhdGFiYXNlLT5uYW1lLCBvcmlnaW4pOwotICAgIHJldHVybiBkZXRhaWxzLmV4cGVjdGVk
VXNhZ2UoKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGRhdGFiYXNlKTsKLSAgICByZXR1cm4g
MDsKLSNlbmRpZgotfQotCi1jb25zdCBjaGFyKiBld2tfd2ViX2RhdGFiYXNlX2ZpbGVuYW1lX2dl
dChFd2tfV2ViX0RhdGFiYXNlKiBkYXRhYmFzZSkKLXsKLSNpZiBFTkFCTEUoU1FMX0RBVEFCQVNF
KQotICAgIGlmIChkYXRhYmFzZS0+ZmlsZW5hbWUpCi0gICAgICAgIHJldHVybiBkYXRhYmFzZS0+
ZmlsZW5hbWU7Ci0KLSAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gZGF0YWJh
c2UtPnNlY3VyaXR5T3JpZ2luLmdldCgpOwotICAgIFdURjo6U3RyaW5nIHBhdGggPSBXZWJDb3Jl
OjpEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5mdWxsUGF0aEZvckRhdGFiYXNlKG9yaWdpbiwg
ZGF0YWJhc2UtPmNvcmVOYW1lKTsKLSAgICBkYXRhYmFzZS0+ZmlsZW5hbWUgPSBlaW5hX3N0cmlu
Z3NoYXJlX2FkZChwYXRoLnV0ZjgoKS5kYXRhKCkpOwotCi0gICAgcmV0dXJuIGRhdGFiYXNlLT5m
aWxlbmFtZTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGRhdGFiYXNlKTsKLSAgICByZXR1cm4g
MDsKLSNlbmRpZgotfQotCi1jb25zdCBjaGFyKiBld2tfd2ViX2RhdGFiYXNlX25hbWVfZ2V0KEV3
a19XZWJfRGF0YWJhc2UqIGRhdGFiYXNlKQotewotI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0g
ICAgaWYgKGRhdGFiYXNlLT5uYW1lKQotICAgICAgICByZXR1cm4gZGF0YWJhc2UtPm5hbWU7Ci0K
LSAgICBkYXRhYmFzZS0+bmFtZSA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKGRhdGFiYXNlLT5jb3Jl
TmFtZS51dGY4KCkuZGF0YSgpKTsKLQotICAgIHJldHVybiBkYXRhYmFzZS0+bmFtZTsKLSNlbHNl
Ci0gICAgVU5VU0VEX1BBUkFNKGRhdGFiYXNlKTsKLSAgICByZXR1cm4gMDsKLSNlbmRpZgotfQot
Ci1Fd2tfU2VjdXJpdHlfT3JpZ2luKiBld2tfd2ViX2RhdGFiYXNlX3NlY3VyaXR5X29yaWdpbl9n
ZXQoY29uc3QgRXdrX1dlYl9EYXRhYmFzZSogZGF0YWJhc2UpCi17Ci0gICAgcmV0dXJuIGV3a19z
ZWN1cml0eV9vcmlnaW5fbmV3KGRhdGFiYXNlLT5zZWN1cml0eU9yaWdpbi5nZXQoKSk7Ci19Ci0K
LXVpbnQ2NF90IGV3a193ZWJfZGF0YWJhc2Vfc2l6ZV9nZXQoY29uc3QgRXdrX1dlYl9EYXRhYmFz
ZSogZGF0YWJhc2UpCi17Ci0jaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiogb3JpZ2luID0gZGF0YWJhc2UtPnNlY3VyaXR5T3JpZ2luLmdldCgpOwot
ICAgIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscyBkZXRhaWxzID0gV2ViQ29yZTo6RGF0YWJhc2VU
cmFja2VyOjp0cmFja2VyKCkuZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4oZGF0YWJhc2UtPm5hbWUs
IG9yaWdpbik7Ci0gICAgcmV0dXJuIGRldGFpbHMuY3VycmVudFVzYWdlKCk7Ci0jZWxzZQotICAg
IFVOVVNFRF9QQVJBTShkYXRhYmFzZSk7Ci0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKLX0KLQotdm9p
ZCBld2tfd2ViX2RhdGFiYXNlX3JlbW92ZShFd2tfV2ViX0RhdGFiYXNlKiBkYXRhYmFzZSkKLXsK
LSNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgIFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6
dHJhY2tlcigpLmRlbGV0ZURhdGFiYXNlKGRhdGFiYXNlLT5zZWN1cml0eU9yaWdpbi5nZXQoKSwg
ZGF0YWJhc2UtPmNvcmVOYW1lKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGRhdGFiYXNlKTsK
LSNlbmRpZgotfQotCi12b2lkIGV3a193ZWJfZGF0YWJhc2VfcmVtb3ZlX2FsbCh2b2lkKQotewot
I2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjp0
cmFja2VyKCkuZGVsZXRlQWxsRGF0YWJhc2VzKCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBld2tfd2Vi
X2RhdGFiYXNlX2ZyZWUoRXdrX1dlYl9EYXRhYmFzZSogZGF0YWJhc2UpCi17Ci0jaWYgRU5BQkxF
KFNRTF9EQVRBQkFTRSkKLSAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChkYXRhYmFzZS0+ZGlzcGxh
eU5hbWUpOwotICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKGRhdGFiYXNlLT5maWxlbmFtZSk7Ci0g
ICAgZWluYV9zdHJpbmdzaGFyZV9kZWwoZGF0YWJhc2UtPm5hbWUpOwotCi0gICAgZGVsZXRlIGRh
dGFiYXNlOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZGF0YWJhc2UpOwotI2VuZGlmCi19Ci0K
LXZvaWQgZXdrX3dlYl9kYXRhYmFzZV9saXN0X2ZyZWUoRWluYV9MaXN0KiBkYXRhYmFzZUxpc3Qp
Ci17Ci0gICAgdm9pZCogZGF0YWJhc2U7Ci0gICAgRUlOQV9MSVNUX0ZSRUUoZGF0YWJhc2VMaXN0
LCBkYXRhYmFzZSkKLSAgICAgICAgZXdrX3dlYl9kYXRhYmFzZV9mcmVlKHN0YXRpY19jYXN0PEV3
a19XZWJfRGF0YWJhc2UqPihkYXRhYmFzZSkpOwotfQotCi0vKioKLSAqIEBpbnRlcm5hbAotICog
Q3JlYXRlcyBhIHdyYXBwZXIgcmVwcmVzZW50aW5nIGEgV2ViIERhdGFiYXNlLgotICoKLSAqIEBw
YXJhbSBjb3JlT3JpZ2luIFdlYkNvcmUgU2VjdXJpdHkgT3JpZ2luIG9iamVjdAotICogQHBhcmFt
IGNvcmVOYW1lIFdlYiBEYXRhYmFzZSBuYW1lCi0gKgotICogQHJldHVybiBhIHdyYXBwZXIgZm9y
IG1hbmlwdWxhdGluZyBhIFdlYiBEYXRhYmFzZS4gSXQgc2hvdWxkIGJlIGZyZWVkCi0gKiBieSBl
d2tfd2ViX2RhdGFiYXNlX2ZyZWUoKS4KLSAqLwotRXdrX1dlYl9EYXRhYmFzZSogZXdrX3dlYl9k
YXRhYmFzZV9uZXcoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIGNvcmVPcmlnaW4sIGNvbnN0IFdU
Rjo6U3RyaW5nJiBjb3JlTmFtZSkKLXsKLSNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgIEV3
a19XZWJfRGF0YWJhc2UqIGRhdGFiYXNlID0gbmV3IEV3a19XZWJfRGF0YWJhc2U7Ci0KLSAgICBk
YXRhYmFzZS0+c2VjdXJpdHlPcmlnaW4gPSBjb3JlT3JpZ2luOwotICAgIGRhdGFiYXNlLT5jb3Jl
TmFtZSA9IGNvcmVOYW1lOwotICAgIGRhdGFiYXNlLT5kaXNwbGF5TmFtZSA9IDA7Ci0gICAgZGF0
YWJhc2UtPmZpbGVuYW1lID0gMDsKLSAgICBkYXRhYmFzZS0+bmFtZSA9IDA7Ci0KLSAgICByZXR1
cm4gZGF0YWJhc2U7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjb3JlT3JpZ2luKTsKLSAgICBV
TlVTRURfUEFSQU0oY29yZU5hbWUpOwotICAgIHJldHVybiAwOwotI2VuZGlmCi19CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3dlYl9kYXRhYmFzZS5oIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a193ZWJfZGF0YWJhc2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggN2JhYTU0ZjM0ZGY3MDI2YTcyOTVmMTZkZTgxMzM1YTE1ZDE1N2EyMC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3dlYl9kYXRhYmFzZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTM2ICswLDAgQEAKLS8q
Ci0gICAgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCi0KLSAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAg
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAotICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotKi8KLQotLyoqCi0gKiBA
ZmlsZSAgICBld2tfd2ViX2RhdGFiYXNlLmgKLSAqIEBicmllZiAgIFdlYiBEYXRhYmFzZSBBUEku
Ci0gKgotICogVGhpcyBBUEkgcHJvdmlkZXMgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyBXZWIgRGF0
YWJhc2UgY3JlYXRlZCBmb3IgYSBzZWN1cml0eQotICogb3JpZ2luLiBXZWJLaXQgbmVlZHMgdG8g
YmUgY29tcGlsZWQgd2l0aCBXZWIgRGF0YWJhc2Ugc3VwcG9ydCBpbiBvcmRlciB0byB1c2UKLSAq
IHRoaXMgQVBJLgotICovCi0KLSNpZm5kZWYgZXdrX3dlYl9kYXRhYmFzZV9oCi0jZGVmaW5lIGV3
a193ZWJfZGF0YWJhc2VfaAotCi0jaW5jbHVkZSAiZXdrX3NlY3VyaXR5X29yaWdpbi5oIgotCi0j
aW5jbHVkZSA8RXZhcy5oPgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2Vu
ZGlmCi0KLXR5cGVkZWYgc3RydWN0IF9Fd2tfV2ViX0RhdGFiYXNlIEV3a19XZWJfRGF0YWJhc2U7
Ci0KLS8qKgotICogUmV0dXJucyB0aGUgdXNlciBmcmllbmRseSBuYW1lIG9mIHRoZSBkYXRhYmFz
ZS4KLSAqCi0gKiBJdCByZXR1cm5zIGEgaW50ZXJuYWwgc3RyaW5nIHdoaWNoIHNob3VsZCBub3QK
LSAqIGJlIG1vZGlmaWVkLiBUaGUgc3RyaW5nIGlzIGd1YXJhbnRlZWQgdG8gYmUgc3RyaW5nc2hh
cmVkLgotICoKLSAqIEBwYXJhbSBvIHdlYiBkYXRhYmFzZSBvYmplY3QKLSAqCi0gKiBAcmV0dXJu
IHRoZSBkYXRhYmFzZSBuYW1lCi0gKi8KLUVBUEkgY29uc3QgY2hhciAgKmV3a193ZWJfZGF0YWJh
c2VfZGlzcGxheV9uYW1lX2dldChFd2tfV2ViX0RhdGFiYXNlICpvKTsKLQotLyoqCi0gKiBSZXR1
cm5zIHRoZSBzaXplIG9mIHRoZSBkYXRhYmFzZSBleHBlY3RlZCBieSB0aGUgd2ViIGF1dGhvci4K
LSAqCi0gKiBAcGFyYW0gbyB3ZWIgZGF0YWJhc2Ugb2JqZWN0Ci0gKgotICogQHJldHVybiBleHBl
Y3RlZCBzaXplCi0gKi8KLUVBUEkgdWludDY0X3QgICAgIGV3a193ZWJfZGF0YWJhc2VfZXhwZWN0
ZWRfc2l6ZV9nZXQoY29uc3QgRXdrX1dlYl9EYXRhYmFzZSAqbyk7Ci0KLS8qKgotICogUmV0dXJu
cyB0aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgZGF0YWJhc2UgZmlsZS4KLSAqCi0gKiBJdCByZXR1
cm5zIGEgaW50ZXJuYWwgc3RyaW5nIHdoaWNoIHNob3VsZCBub3QKLSAqIGJlIG1vZGlmaWVkLiBU
aGUgc3RyaW5nIGlzIGd1YXJhbnRlZWQgdG8gYmUgc3RyaW5nc2hhcmVkLgotICoKLSAqIEBwYXJh
bSBvIHdlYiBkYXRhYmFzZSBvYmplY3QKLSAqCi0gKiBAcmV0dXJuIHRoZSBkYXRhYmFzZSBwYXRo
Ci0gKi8KLUVBUEkgY29uc3QgY2hhciAgKmV3a193ZWJfZGF0YWJhc2VfZmlsZW5hbWVfZ2V0KEV3
a19XZWJfRGF0YWJhc2UgKm8pOwotCi0vKioKLSAqIFJldHVybnMgdGhlIG5hbWUgb2YgdGhlIGRh
dGFiYXNlLgotICoKLSAqIEl0IHJldHVybnMgYSBpbnRlcm5hbCBzdHJpbmcgd2hpY2ggc2hvdWxk
IG5vdAotICogYmUgbW9kaWZpZWQuIFRoZSBzdHJpbmcgaXMgZ3VhcmFudGVlZCB0byBiZSBzdHJp
bmdzaGFyZWQuCi0gKgotICogQHBhcmFtIG8gd2ViIGRhdGFiYXNlIG9iamVjdAotICoKLSAqIEBy
ZXR1cm4gdGhlIGRhdGFiYXNlIG5hbWUKLSAqLwotRUFQSSBjb25zdCBjaGFyICAqZXdrX3dlYl9k
YXRhYmFzZV9uYW1lX2dldChFd2tfV2ViX0RhdGFiYXNlICpvKTsKLQotLyoqCi0gKiBSZXRyaWV2
ZXMgdGhlIHNlY3VyaXR5IG9yaWdpbiBvZiB0aGUgZGF0YWJhc2UuCi0gKgotICogVGhlIHJldHVy
bmVkIHZhbHVlIHNob3VsZCBiZSBmcmVlZCBieSBld2tfc2VjdXJpdHlfb3JpZ2luX2ZyZWUoKS4K
LSAqCi0gKiBAcGFyYW0gbyB3ZWIgZGF0YWJhc2Ugb2JqZWN0Ci0gKgotICogQHJldHVybiB0aGUg
c2VjdXJpdHkgb3JpZ2luCi0gKi8KLUVBUEkgRXdrX1NlY3VyaXR5X09yaWdpbiAqZXdrX3dlYl9k
YXRhYmFzZV9zZWN1cml0eV9vcmlnaW5fZ2V0KGNvbnN0IEV3a19XZWJfRGF0YWJhc2UgKm8pOwot
Ci0vKioKLSAqIFJldHVybnMgdGhlIHNpemUgb2YgdGhlIGRhdGFiYXNlLgotICoKLSAqIEBwYXJh
bSBvIHdlYiBkYXRhYmFzZSBvYmplY3QKLSAqCi0gKiBAcmV0dXJuIHRoZSBjdXJyZW50IHNpemUg
b2YgdGhlIGRhdGFiYXNlCi0gKi8KLUVBUEkgdWludDY0X3QgICAgIGV3a193ZWJfZGF0YWJhc2Vf
c2l6ZV9nZXQoY29uc3QgRXdrX1dlYl9EYXRhYmFzZSAqbyk7Ci0KLS8qKgotICogUmVtb3ZlIHRo
ZSBkYXRhYmFzZSBmcm9tIHRoZSBzZWN1cml0eSBvcmlnaW4gYW5kIGRlc3Ryb3kgYWxsIGRhdGEu
Ci0gKgotICogQHBhcmFtIG8gd2ViIGRhdGFiYXNlIG9iamVjdAotICovCi1FQVBJIHZvaWQgICAg
ICAgICBld2tfd2ViX2RhdGFiYXNlX3JlbW92ZShFd2tfV2ViX0RhdGFiYXNlICpvKTsKLQotLyoq
Ci0gKiBSZW1vdmUgYWxsIHRoZSBkYXRhYmFzZXMgaW4gdGhlIGN1cnJlbnQgZGVmYXVsdCBwYXRo
LgotICovCi1FQVBJIHZvaWQgICAgICAgICBld2tfd2ViX2RhdGFiYXNlX3JlbW92ZV9hbGwodm9p
ZCk7Ci0KLS8qKgotICogUmVsZWFzZSBhbGwgcmVzb3VyY2VzIGFsbG9jYXRlZCBieSBhIHdlYiBk
YXRhYmFzZSBvYmplY3QuCi0gKgotICogQHBhcmFtIG8gd2ViIGRhdGFiYXNlIG9iamVjdAotICov
Ci1FQVBJIHZvaWQgICAgICAgICBld2tfd2ViX2RhdGFiYXNlX2ZyZWUoRXdrX1dlYl9EYXRhYmFz
ZSAqbyk7Ci0KLS8qKgotICogQ29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIHJlbGVhc2luZyBhbGwg
d2ViIGRhdGFiYXNlIG9iamVjdHMgZnJvbSBhIGxpc3QuCi0gKgotICogQHBhcmFtIGRhdGFiYXNl
X2xpc3QgbGlzdCBvZiB3ZWIgZGF0YWJhc2Ugb2JqZWN0cyB0byBiZSBmcmVlZAotICovCi1FQVBJ
IHZvaWQgICAgICAgICBld2tfd2ViX2RhdGFiYXNlX2xpc3RfZnJlZShFaW5hX0xpc3QgKmRhdGFi
YXNlX2xpc3QpOwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotI2VuZGlmIC8vIGV3
a193ZWJfZGF0YWJhc2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a193
ZWJfZGF0YWJhc2VfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a193ZWJfZGF0
YWJhc2VfcHJpdmF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjQwNWZlMTcz
YmUyYzgzYTU3ZTg5ZjNiYmZhZjEwMjYxZmQ1Zjg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfd2ViX2RhdGFi
YXNlX3ByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLS8qCi0gICAgQ29w
eXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAg
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
Ci0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0K
LSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAot
ICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotKi8KLQotI2lmbmRlZiBld2tfd2ViX2Rh
dGFiYXNlX3ByaXZhdGVfaAotI2RlZmluZSBld2tfd2ViX2RhdGFiYXNlX3ByaXZhdGVfaAotCi0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNs
YXNzIFNlY3VyaXR5T3JpZ2luOwotfQotCi1Fd2tfV2ViX0RhdGFiYXNlKiBld2tfd2ViX2RhdGFi
YXNlX25ldyhXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogY29yZU9yaWdpbiwgY29uc3QgV1RGOjpT
dHJpbmcmIGNvcmVOYW1lKTsKLQotI2VuZGlmIC8vIGV3a193ZWJfZGF0YWJhc2VfcHJpdmF0ZV9o
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjQ4
OTJjMjZhODNkMDE3YzM0MGQyMDBiZDcwZmJhMzc5OWUyMmU3NC4uZGM0M2FlM2FjM2NmNGNjMTA0
ZWFlNjU2ZjFlYWE4ZjEyMWZmYTgxMCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTEwLTA4ICBHeXV5b3VuZyBL
aW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gUmVtb3ZlICJ3
ZWIiIHdvcmQgaW4gZXdrIGZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05ODcyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZSAid2ViIiB3b3JkIGZyb20gZXdrIGZpbGVzIGluIG9yZGVyIHRv
IGJlIGNvbnNpc3RlbnQgd2l0aCBXSzIuCisgICAgICAgIEJ1ZyA5Nzg4NiBhbmQgQnVnIDk3ODg3
IHJlbW92ZWQgKndlYiogZnJvbSBXSzIuCisKKyAgICAgICAgVGhpcyB3YXMgZGlzY3Vzc2VkIGlu
IHdlYmtpdC1lZmwgbWFpbGluZyBsaXN0LgorICAgICAgICBodHRwOi8vbGlzdHMud2Via2l0Lm9y
Zy9waXBlcm1haWwvd2Via2l0LWVmbC8yMDEyLVNlcHRlbWJlci8wMDAzMDguaHRtbC4KKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHA6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6cmVtb3ZlV2ViSW5zcGVjdG9yVmlldyk6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6d2FpdEluc3BlY3RvckxvYWRGaW5pc2hlZCk6Cisg
ICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZh
bHVlcyk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25JbnNwZWN0b3JWaWV3Q3Jl
YXRlKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkluc3BlY3RvckZyYW1lTG9h
ZEZpbmlzaGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5j
cHA6CisgICAgICAgIChUZXN0UnVubmVyOjpjbGVhckFsbERhdGFiYXNlcyk6CisgICAgICAgIChU
ZXN0UnVubmVyOjpzZXREYXRhYmFzZVF1b3RhKToKKyAgICAgICAgKFRlc3RSdW5uZXI6Om92ZXJy
aWRlUHJlZmVyZW5jZSk6CisgICAgICAgIChUZXN0UnVubmVyOjpzaG93V2ViSW5zcGVjdG9yKToK
KyAgICAgICAgKFRlc3RSdW5uZXI6OmNsb3NlV2ViSW5zcGVjdG9yKToKKyAgICAgICAgKiBFV2Vi
TGF1bmNoZXIvbWFpbi5jOgorICAgICAgICAob25faW5zcGVjdG9yX2Vjb3JlX2V2YXNfcmVzaXpl
KToKKyAgICAgICAgKG9uX2tleV9kb3duKToKKyAgICAgICAgKG9uX2luc3BlY3Rvcl92aWV3X2Ny
ZWF0ZSk6CisgICAgICAgIChvbl9pbnNwZWN0b3Jfdmlld19jbG9zZSk6CisgICAgICAgIChvbl9p
bnNwZWN0b3Jfdmlld19kZXN0cm95ZWQpOgorICAgICAgICAoYnJvd3NlckNyZWF0ZSk6CisgICAg
ICAgICh3ZWJJbnNwZWN0b3JDcmVhdGUpOgorICAgICAgICAoY2xvc2VXaW5kb3cpOgorICAgICAg
ICAobWFpbl9zaWduYWxfZXhpdCk6CisgICAgICAgIChtYWluKToKKwogMjAxMi0xMC0wOCAgUnl1
YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gQnVpbGQg
Q29udHJvbFRoZW1lIG9ubHkgd2hlbiBuZWNlc3NhcnkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCmluZGV4IDI1NTk1YmRjYzczMGZkYmVm
Y2UwYjVmNTlhOTQxYWUwYzdiODFjNjYuLjM4OGM5NGNlZTI1ZTNkNzU4MTg5ZjdkMjkwZTA1NmEy
MDBlNjY4ZTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVy
VHJlZUNocm9tZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJU
cmVlQ2hyb21lLmNwcApAQCAtMTYzLDcgKzE2Myw3IEBAIEV2YXNfT2JqZWN0KiBEdW1wUmVuZGVy
VHJlZUNocm9tZTo6Y3JlYXRlV2ViSW5zcGVjdG9yVmlldygpCiAKIHZvaWQgRHVtcFJlbmRlclRy
ZWVDaHJvbWU6OnJlbW92ZVdlYkluc3BlY3RvclZpZXcoKQogewotICAgIEV2YXNfT2JqZWN0KiBp
bnNwZWN0b3JWaWV3ID0gZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X2dldChtYWluVmlldygp
KTsKKyAgICBFdmFzX09iamVjdCogaW5zcGVjdG9yVmlldyA9IGV3a192aWV3X2luc3BlY3Rvcl92
aWV3X2dldChtYWluVmlldygpKTsKICAgICBpZiAoIWluc3BlY3RvclZpZXcpCiAgICAgICAgIHJl
dHVybjsKIApAQCAtMTcxLDE0ICsxNzEsMTQgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6
cmVtb3ZlV2ViSW5zcGVjdG9yVmlldygpCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
ZGVsKG1haW5GcmFtZSwgImxvYWQsZmluaXNoZWQiLCBvbkluc3BlY3RvckZyYW1lTG9hZEZpbmlz
aGVkKTsKIAogICAgIGV2YXNfb2JqZWN0X2RlbChpbnNwZWN0b3JWaWV3KTsKLSAgICBld2tfdmll
d193ZWJfaW5zcGVjdG9yX3ZpZXdfc2V0KG1haW5WaWV3KCksIDApOworICAgIGV3a192aWV3X2lu
c3BlY3Rvcl92aWV3X3NldChtYWluVmlldygpLCAwKTsKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJl
ZUNocm9tZTo6d2FpdEluc3BlY3RvckxvYWRGaW5pc2hlZCgpCiB7CiAgICAgLy8gV2FpdHMgdW50
aWwgdGhlIHBhZ2UgaGFzIGZpbmlzaGVkIGxvYWRpbmcuCiAgICAgLy8gQmVjYXVzZSBpdCBjYW4n
dCBjb21wbGV0ZSBsb2FkaW5nIGluc3BlY3Rvci5odG1sIGJlZm9yZSBsb2FkaW5nIHRlc3RVUkwu
Ci0gICAgRXZhc19PYmplY3QqIGluc3BlY3RvclZpZXcgPSBld2tfdmlld193ZWJfaW5zcGVjdG9y
X3ZpZXdfZ2V0KG1haW5WaWV3KCkpOworICAgIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3ID0g
ZXdrX3ZpZXdfaW5zcGVjdG9yX3ZpZXdfZ2V0KG1haW5WaWV3KCkpOwogICAgIGlmIChpbnNwZWN0
b3JWaWV3KQogICAgICAgICBlY29yZV9tYWluX2xvb3BfYmVnaW4oKTsKIH0KQEAgLTI0OSw4ICsy
NDksOCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0
ZW50VmFsdWVzKCkKICAgICBld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9jbGVhcigpOwogICAg
IGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX3BhdGhfc2V0KDApOwogCi0gICAgZXdrX3dlYl9k
YXRhYmFzZV9yZW1vdmVfYWxsKCk7Ci0gICAgZXdrX3NldHRpbmdzX3dlYl9kYXRhYmFzZV9kZWZh
dWx0X3F1b3RhX3NldCg1ICogMTAyNCAqIDEwMjQpOworICAgIGV3a19kYXRhYmFzZV9yZW1vdmVf
YWxsKCk7CisgICAgZXdrX3NldHRpbmdzX2RhdGFiYXNlX2RlZmF1bHRfcXVvdGFfc2V0KDUgKiAx
MDI0ICogMTAyNCk7CiAKICAgICBld2tfc2V0dGluZ3NfbWVtb3J5X2NhY2hlX2NsZWFyKCk7CiAg
ICAgZXdrX3NldHRpbmdzX2FwcGxpY2F0aW9uX2NhY2hlX2NsZWFyKCk7CkBAIC0yODQsNyArMjg0
LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVu
dFZhbHVlcygpCiAgICAgZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVfaHlwZXJsaW5rX2F1ZGl0aW5n
X3NldChtYWluVmlldygpLCBFSU5BX0ZBTFNFKTsKICAgICBld2tfdmlld19zZXR0aW5nX2luY2x1
ZGVfbGlua3NfaW5fZm9jdXNfY2hhaW5fc2V0KG1haW5WaWV3KCksIEVJTkFfRkFMU0UpOwogICAg
IGV3a192aWV3X3NldHRpbmdfc2NyaXB0c19jYW5fYWNjZXNzX2NsaXBib2FyZF9zZXQobWFpblZp
ZXcoKSwgRUlOQV9UUlVFKTsKLSAgICBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19zZXQobWFp
blZpZXcoKSwgRUlOQV9GQUxTRSk7CisgICAgZXdrX3ZpZXdfc2V0dGluZ19hdWRpb19zZXQobWFp
blZpZXcoKSwgRUlOQV9GQUxTRSk7CiAgICAgZXdrX3ZpZXdfc2V0dGluZ19hbGxvd191bml2ZXJz
YWxfYWNjZXNzX2Zyb21fZmlsZV91cmxzX3NldChtYWluVmlldygpLCBFSU5BX1RSVUUpOwogICAg
IGV3a192aWV3X3NldHRpbmdfYWxsb3dfZmlsZV9hY2Nlc3NfZnJvbV9maWxlX3VybHNfc2V0KG1h
aW5WaWV3KCksIEVJTkFfVFJVRSk7CiAKQEAgLTY3OSw3ICs2NzksNyBAQCB2b2lkIER1bXBSZW5k
ZXJUcmVlQ2hyb21lOjpvbkluc3BlY3RvclZpZXdDcmVhdGUodm9pZCosIEV2YXNfT2JqZWN0Kiwg
dm9pZCopCiB7CiAgICAgRXZhc19PYmplY3QqIGluc3BlY3RvclZpZXcgPSBicm93c2VyLT5jcmVh
dGVXZWJJbnNwZWN0b3JWaWV3KCk7CiAgICAgaWYgKGluc3BlY3RvclZpZXcpCi0gICAgICAgIGV3
a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19zZXQoYnJvd3Nlci0+bWFpblZpZXcoKSwgaW5zcGVj
dG9yVmlldyk7CisgICAgICAgIGV3a192aWV3X2luc3BlY3Rvcl92aWV3X3NldChicm93c2VyLT5t
YWluVmlldygpLCBpbnNwZWN0b3JWaWV3KTsKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9t
ZTo6b25JbnNwZWN0b3JWaWV3Q2xvc2Uodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopCkBAIC02
ODksNyArNjg5LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25JbnNwZWN0b3JWaWV3
Q2xvc2Uodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopCiAKIHZvaWQgRHVtcFJlbmRlclRyZWVD
aHJvbWU6Om9uSW5zcGVjdG9yRnJhbWVMb2FkRmluaXNoZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwg
dm9pZCopCiB7Ci0gICAgRXZhc19PYmplY3QqIGluc3BlY3RvclZpZXcgPSBld2tfdmlld193ZWJf
aW5zcGVjdG9yX3ZpZXdfZ2V0KGJyb3dzZXItPm1haW5WaWV3KCkpOworICAgIEV2YXNfT2JqZWN0
KiBpbnNwZWN0b3JWaWV3ID0gZXdrX3ZpZXdfaW5zcGVjdG9yX3ZpZXdfZ2V0KGJyb3dzZXItPm1h
aW5WaWV3KCkpOwogICAgIGlmIChpbnNwZWN0b3JWaWV3KQogICAgICAgICBlY29yZV9tYWluX2xv
b3BfcXVpdCgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RS
dW5uZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3Bw
CmluZGV4IDhmYzkyNmFlYmMxOGU0OTMzMDM5M2I0MGRlYmE3ZTU4NzM3YTUyZjYuLjM0YWQyZThm
Zjg3MWJhZTU5YTA1OTBhNzE2NmU2OTU0MTZhY2YxNTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKQEAgLTYwMCwxMyArNjAwLDEzIEBAIGxvbmcgbG9uZyBU
ZXN0UnVubmVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKEpTU3RyaW5nUmVm
KQogCiB2b2lkIFRlc3RSdW5uZXI6OmNsZWFyQWxsRGF0YWJhc2VzKCkKIHsKLSAgICBld2tfd2Vi
X2RhdGFiYXNlX3JlbW92ZV9hbGwoKTsKKyAgICBld2tfZGF0YWJhc2VfcmVtb3ZlX2FsbCgpOwog
fQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldERhdGFiYXNlUXVvdGEodW5zaWduZWQgbG9uZyBsb25n
IHF1b3RhKQogewogICAgIEV3a19TZWN1cml0eV9PcmlnaW4qIG9yaWdpbiA9IGV3a19mcmFtZV9z
ZWN1cml0eV9vcmlnaW5fZ2V0KGJyb3dzZXItPm1haW5GcmFtZSgpKTsKLSAgICBld2tfc2VjdXJp
dHlfb3JpZ2luX3dlYl9kYXRhYmFzZV9xdW90YV9zZXQob3JpZ2luLCBxdW90YSk7CisgICAgZXdr
X3NlY3VyaXR5X29yaWdpbl9kYXRhYmFzZV9xdW90YV9zZXQob3JpZ2luLCBxdW90YSk7CiAgICAg
ZXdrX3NlY3VyaXR5X29yaWdpbl9mcmVlKG9yaWdpbik7CiB9CiAKQEAgLTcxMCw3ICs3MTAsNyBA
QCB2b2lkIFRlc3RSdW5uZXI6Om92ZXJyaWRlUHJlZmVyZW5jZShKU1N0cmluZ1JlZiBrZXksIEpT
U3RyaW5nUmVmIHZhbHVlKQogICAgIGVsc2UgaWYgKGVxdWFscyhrZXksICJXZWJLaXRDU1NSZWdp
b25zRW5hYmxlZCIpKQogICAgICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldENTU1Jl
Z2lvbnNFbmFibGVkKGJyb3dzZXItPm1haW5WaWV3KCksIHRvQm9vbCh2YWx1ZSkpOwogICAgIGVs
c2UgaWYgKGVxdWFscyhrZXksICJXZWJLaXRXZWJBdWRpb0VuYWJsZWQiKSkKLSAgICAgICAgZXdr
X3ZpZXdfc2V0dGluZ193ZWJfYXVkaW9fc2V0KGJyb3dzZXItPm1haW5WaWV3KCksIHRvQm9vbCh2
YWx1ZSkpOworICAgICAgICBld2tfdmlld19zZXR0aW5nX2F1ZGlvX3NldChicm93c2VyLT5tYWlu
VmlldygpLCB0b0Jvb2wodmFsdWUpKTsKICAgICBlbHNlIGlmIChlcXVhbHMoa2V5LCAiV2ViS2l0
RGlzcGxheUltYWdlc0tleSIpKQogICAgICAgICBld2tfdmlld19zZXR0aW5nX2F1dG9fbG9hZF9p
bWFnZXNfc2V0KGJyb3dzZXItPm1haW5WaWV3KCksIHRvQm9vbCh2YWx1ZSkpOwogICAgIGVsc2UK
QEAgLTczOSwxMyArNzM5LDEzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQoYm9vbCkKIAogdm9pZCBUZXN0UnVubmVyOjpzaG93V2ViSW5zcGVj
dG9yKCkKIHsKLSAgICBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coYnJvd3Nlci0+bWFpblZp
ZXcoKSk7CisgICAgZXdrX3ZpZXdfaW5zcGVjdG9yX3Nob3coYnJvd3Nlci0+bWFpblZpZXcoKSk7
CiAgICAgYnJvd3Nlci0+d2FpdEluc3BlY3RvckxvYWRGaW5pc2hlZCgpOwogfQogCiB2b2lkIFRl
c3RSdW5uZXI6OmNsb3NlV2ViSW5zcGVjdG9yKCkKIHsKLSAgICBld2tfdmlld193ZWJfaW5zcGVj
dG9yX2Nsb3NlKGJyb3dzZXItPm1haW5WaWV3KCkpOworICAgIGV3a192aWV3X2luc3BlY3Rvcl9j
bG9zZShicm93c2VyLT5tYWluVmlldygpKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpldmFsdWF0
ZUluV2ViSW5zcGVjdG9yKGxvbmcgY2FsbElkLCBKU1N0cmluZ1JlZiBzY3JpcHQpCmRpZmYgLS1n
aXQgYS9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jIGIvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4u
YwppbmRleCBmZTcxMDhlNGVjY2FhZmZiNTQwOTkwZmVmNjQ4OTg4MDgyYjNiOThkLi4yMmM5MzAw
NTcwN2I1MzQyODFjZDY0ZTg3OWE5NDNmODMzZGQ4ZTIwIDEwMDY0NAotLS0gYS9Ub29scy9FV2Vi
TGF1bmNoZXIvbWFpbi5jCisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKQEAgLTI1Nyw3
ICsyNTcsNyBAQCBvbl9icm93c2VyX2Vjb3JlX2V2YXNfcmVzaXplKEVjb3JlX0V2YXMgKmVlKQog
fQogCiBzdGF0aWMgdm9pZAotb25fd2ViX2luc3BlY3Rvcl9lY29yZV9ldmFzX3Jlc2l6ZShFY29y
ZV9FdmFzICplZSkKK29uX2luc3BlY3Rvcl9lY29yZV9ldmFzX3Jlc2l6ZShFY29yZV9FdmFzICpl
ZSkKIHsKICAgICBFdmFzX09iamVjdCAqd2VidmlldzsKICAgICBpbnQgdywgaDsKQEAgLTYwNyw0
MSArNjA3LDQxIEBAIG9uX2tleV9kb3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0
ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCiAgICAgICAgIEV2YXNfT2JqZWN0ICpmcmFtZSA9IGV3
a192aWV3X2ZyYW1lX21haW5fZ2V0KG9iaik7CiAgICAgICAgIEV3a19TZWN1cml0eV9PcmlnaW4g
Km9yaWdpbiA9IGV3a19mcmFtZV9zZWN1cml0eV9vcmlnaW5fZ2V0KGZyYW1lKTsKICAgICAgICAg
cHJpbnRmKCJTZWN1cml0eSBvcmlnaW4gaW5mb3JtYXRpb246XG4iCi0gICAgICAgICAgICAgICAi
ICBwcm90b2NvbD0lc1xuIgotICAgICAgICAgICAgICAgIiAgaG9zdD0lc1xuIgotICAgICAgICAg
ICAgICAgIiAgcG9ydD0lZFxuIgotICAgICAgICAgICAgICAgIiAgd2ViIGRhdGFiYXNlIHF1b3Rh
PSUiIFBSSXU2NCAiXG4iLAotICAgICAgICAgICAgICAgZXdrX3NlY3VyaXR5X29yaWdpbl9wcm90
b2NvbF9nZXQob3JpZ2luKSwKLSAgICAgICAgICAgICAgIGV3a19zZWN1cml0eV9vcmlnaW5faG9z
dF9nZXQob3JpZ2luKSwKLSAgICAgICAgICAgICAgIGV3a19zZWN1cml0eV9vcmlnaW5fcG9ydF9n
ZXQob3JpZ2luKSwKLSAgICAgICAgICAgICAgIGV3a19zZWN1cml0eV9vcmlnaW5fd2ViX2RhdGFi
YXNlX3F1b3RhX2dldChvcmlnaW4pKTsKLQotICAgICAgICBFaW5hX0xpc3QgKmRhdGFiYXNlTGlz
dCA9IGV3a19zZWN1cml0eV9vcmlnaW5fd2ViX2RhdGFiYXNlX2dldF9hbGwob3JpZ2luKTsKKyAg
ICAgICAgICAgICIgIHByb3RvY29sPSVzXG4iCisgICAgICAgICAgICAiICBob3N0PSVzXG4iCisg
ICAgICAgICAgICAiICBwb3J0PSVkXG4iCisgICAgICAgICAgICAiICB3ZWIgZGF0YWJhc2UgcXVv
dGE9JSIgUFJJdTY0ICJcbiIsCisgICAgICAgICAgICBld2tfc2VjdXJpdHlfb3JpZ2luX3Byb3Rv
Y29sX2dldChvcmlnaW4pLAorICAgICAgICAgICAgZXdrX3NlY3VyaXR5X29yaWdpbl9ob3N0X2dl
dChvcmlnaW4pLAorICAgICAgICAgICAgZXdrX3NlY3VyaXR5X29yaWdpbl9wb3J0X2dldChvcmln
aW4pLAorICAgICAgICAgICAgZXdrX3NlY3VyaXR5X29yaWdpbl9kYXRhYmFzZV9xdW90YV9nZXQo
b3JpZ2luKSk7CisKKyAgICAgICAgRWluYV9MaXN0ICpkYXRhYmFzZUxpc3QgPSBld2tfc2VjdXJp
dHlfb3JpZ2luX2RhdGFiYXNlX2dldF9hbGwob3JpZ2luKTsKICAgICAgICAgRWluYV9MaXN0ICps
aXN0SXRlcmF0b3IgPSAwOwotICAgICAgICBFd2tfV2ViX0RhdGFiYXNlICpkYXRhYmFzZTsKKyAg
ICAgICAgRXdrX0RhdGFiYXNlICpkYXRhYmFzZTsKICAgICAgICAgRUlOQV9MSVNUX0ZPUkVBQ0go
ZGF0YWJhc2VMaXN0LCBsaXN0SXRlcmF0b3IsIGRhdGFiYXNlKQogICAgICAgICAgICAgcHJpbnRm
KCJEYXRhYmFzZSBpbmZvcm1hdGlvbjpcbiIKLSAgICAgICAgICAgICAgICAgICAiICBuYW1lPSVz
XG4iCi0gICAgICAgICAgICAgICAgICAgIiAgZGlzcGxheSBuYW1lPSVzXG4iCi0gICAgICAgICAg
ICAgICAgICAgIiAgZmlsZW5hbWU9JXNcbiIKLSAgICAgICAgICAgICAgICAgICAiICBleHBlY3Rl
ZCBzaXplPSUiIFBSSXU2NCAiXG4iCi0gICAgICAgICAgICAgICAgICAgIiAgc2l6ZT0lIiBQUkl1
NjQgIlxuIiwKLSAgICAgICAgICAgICAgICAgICBld2tfd2ViX2RhdGFiYXNlX25hbWVfZ2V0KGRh
dGFiYXNlKSwKLSAgICAgICAgICAgICAgICAgICBld2tfd2ViX2RhdGFiYXNlX2Rpc3BsYXlfbmFt
ZV9nZXQoZGF0YWJhc2UpLAotICAgICAgICAgICAgICAgICAgIGV3a193ZWJfZGF0YWJhc2VfZmls
ZW5hbWVfZ2V0KGRhdGFiYXNlKSwKLSAgICAgICAgICAgICAgICAgICBld2tfd2ViX2RhdGFiYXNl
X2V4cGVjdGVkX3NpemVfZ2V0KGRhdGFiYXNlKSwKLSAgICAgICAgICAgICAgICAgICBld2tfd2Vi
X2RhdGFiYXNlX3NpemVfZ2V0KGRhdGFiYXNlKSk7CisgICAgICAgICAgICAgICAgIiAgbmFtZT0l
c1xuIgorICAgICAgICAgICAgICAgICIgIGRpc3BsYXkgbmFtZT0lc1xuIgorICAgICAgICAgICAg
ICAgICIgIGZpbGVuYW1lPSVzXG4iCisgICAgICAgICAgICAgICAgIiAgZXhwZWN0ZWQgc2l6ZT0l
IiBQUkl1NjQgIlxuIgorICAgICAgICAgICAgICAgICIgIHNpemU9JSIgUFJJdTY0ICJcbiIsCisg
ICAgICAgICAgICAgICAgZXdrX2RhdGFiYXNlX25hbWVfZ2V0KGRhdGFiYXNlKSwKKyAgICAgICAg
ICAgICAgICBld2tfZGF0YWJhc2VfZGlzcGxheV9uYW1lX2dldChkYXRhYmFzZSksCisgICAgICAg
ICAgICAgICAgZXdrX2RhdGFiYXNlX2ZpbGVuYW1lX2dldChkYXRhYmFzZSksCisgICAgICAgICAg
ICAgICAgZXdrX2RhdGFiYXNlX2V4cGVjdGVkX3NpemVfZ2V0KGRhdGFiYXNlKSwKKyAgICAgICAg
ICAgICAgICBld2tfZGF0YWJhc2Vfc2l6ZV9nZXQoZGF0YWJhc2UpKTsKIAogICAgICAgICBld2tf
c2VjdXJpdHlfb3JpZ2luX2ZyZWUob3JpZ2luKTsKLSAgICAgICAgZXdrX3dlYl9kYXRhYmFzZV9s
aXN0X2ZyZWUoZGF0YWJhc2VMaXN0KTsKKyAgICAgICAgZXdrX2RhdGFiYXNlX2xpc3RfZnJlZShk
YXRhYmFzZUxpc3QpOwogICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiaSIpICYmIGN0
cmxQcmVzc2VkKSB7Ci0gICAgICAgIEV2YXNfT2JqZWN0ICppbnNwZWN0b3JfdmlldyA9IGV3a192
aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19nZXQob2JqKTsKKyAgICAgICAgRXZhc19PYmplY3QgKmlu
c3BlY3Rvcl92aWV3ID0gZXdrX3ZpZXdfaW5zcGVjdG9yX3ZpZXdfZ2V0KG9iaik7CiAgICAgICAg
IGlmIChpbnNwZWN0b3JfdmlldykgewogICAgICAgICAgICAgaW5mbygiV2ViIEluc3BlY3RvciBj
bG9zZVxuIik7Ci0gICAgICAgICAgICBld2tfdmlld193ZWJfaW5zcGVjdG9yX2Nsb3NlKG9iaik7
CisgICAgICAgICAgICBld2tfdmlld19pbnNwZWN0b3JfY2xvc2Uob2JqKTsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIGluZm8oIldlYiBJbnNwZWN0b3Igc2hvd1xuIik7Ci0gICAgICAg
ICAgICBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3cob2JqKTsKKyAgICAgICAgICAgIGV3a192
aWV3X2luc3BlY3Rvcl9zaG93KG9iaik7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC02NTksNyAr
NjU5LDcgQEAgb25fYnJvd3Nlcl9kZWwodm9pZCAqZGF0YSwgRXZhcyAqZXZhcywgRXZhc19PYmpl
Y3QgKmJyb3dzZXIsIHZvaWQgKmV2ZW50KQogfQogCiBzdGF0aWMgdm9pZAotb25fd2ViX2luc3Bl
Y3Rvcl92aWV3X2NyZWF0ZSh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2
b2lkICpldmVudF9pbmZvKQorb25faW5zcGVjdG9yX3ZpZXdfY3JlYXRlKHZvaWQgKnVzZXJfZGF0
YSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQgKmV2ZW50X2luZm8pCiB7CiAgICAgRUxhdW5j
aGVyICphcHBfYnJvd3NlciA9IChFTGF1bmNoZXIgKil1c2VyX2RhdGE7CiAKQEAgLTY2NywxNCAr
NjY3LDE0IEBAIG9uX3dlYl9pbnNwZWN0b3Jfdmlld19jcmVhdGUodm9pZCAqdXNlcl9kYXRhLCBF
dmFzX09iamVjdCAqd2Vidmlldywgdm9pZCAqZXZlbnRfCiB9CiAKIHN0YXRpYyB2b2lkCi1vbl93
ZWJfaW5zcGVjdG9yX3ZpZXdfY2xvc2Uodm9pZCAqdXNlcl9kYXRhLCBFdmFzX09iamVjdCAqd2Vi
dmlldywgdm9pZCAqZXZlbnRfaW5mbykKK29uX2luc3BlY3Rvcl92aWV3X2Nsb3NlKHZvaWQgKnVz
ZXJfZGF0YSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQgKmV2ZW50X2luZm8pCiB7CiAgICAg
RWluYV9MaXN0ICpsOwogICAgIHZvaWQgKmFwcDsKICAgICBFTGF1bmNoZXIgKmFwcF9icm93c2Vy
ID0gKEVMYXVuY2hlciAqKXVzZXJfZGF0YTsKICAgICBFdmFzX09iamVjdCAqaW5zcGVjdG9yX3Zp
ZXcgPSAoRXZhc19PYmplY3QgKilldmVudF9pbmZvOwogCi0gICAgZXdrX3ZpZXdfd2ViX2luc3Bl
Y3Rvcl92aWV3X3NldChhcHBfYnJvd3Nlci0+YnJvd3NlciwgTlVMTCk7CisgICAgZXdrX3ZpZXdf
aW5zcGVjdG9yX3ZpZXdfc2V0KGFwcF9icm93c2VyLT5icm93c2VyLCBOVUxMKTsKIAogICAgIEVJ
TkFfTElTVF9GT1JFQUNIKHdpbmRvd3MsIGwsIGFwcCkKICAgICAgICAgaWYgKCgoRUxhdW5jaGVy
ICopYXBwKS0+YnJvd3NlciA9PSBpbnNwZWN0b3JfdmlldykKQEAgLTY4Niw3ICs2ODYsNyBAQCBv
bl93ZWJfaW5zcGVjdG9yX3ZpZXdfY2xvc2Uodm9pZCAqdXNlcl9kYXRhLCBFdmFzX09iamVjdCAq
d2Vidmlldywgdm9pZCAqZXZlbnRfaQogfQogCiBzdGF0aWMgdm9pZAotb25fd2ViX2luc3BlY3Rv
cl92aWV3X2Rlc3Ryb3llZChFY29yZV9FdmFzICplZSkKK29uX2luc3BlY3Rvcl92aWV3X2Rlc3Ry
b3llZChFY29yZV9FdmFzICplZSkKIHsKICAgICBFTGF1bmNoZXIgKmFwcDsKIApAQCAtNzI5LDgg
KzcyOSw4IEBAIGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBVc2VyX0FyZ3VtZW50cyAq
dXNlckFyZ3MpCiAgICAgZXZhc19vYmplY3RfbmFtZV9zZXQoYXBwQnJvd3Nlci0+YnJvd3Nlciwg
ImJyb3dzZXIiKTsKIAogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHBCcm93
c2VyLT5icm93c2VyLCAiaW5wdXRtZXRob2QsY2hhbmdlZCIsIG9uX2lucHV0bWV0aG9kX2NoYW5n
ZWQsIGFwcEJyb3dzZXIpOwotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHBC
cm93c2VyLT5icm93c2VyLCAiaW5zcGVjdG9yLHZpZXcsY2xvc2UiLCBvbl93ZWJfaW5zcGVjdG9y
X3ZpZXdfY2xvc2UsIGFwcEJyb3dzZXIpOwotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNr
X2FkZChhcHBCcm93c2VyLT5icm93c2VyLCAiaW5zcGVjdG9yLHZpZXcsY3JlYXRlIiwgb25fd2Vi
X2luc3BlY3Rvcl92aWV3X2NyZWF0ZSwgYXBwQnJvd3Nlcik7CisgICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfYWRkKGFwcEJyb3dzZXItPmJyb3dzZXIsICJpbnNwZWN0b3IsdmlldyxjbG9z
ZSIsIG9uX2luc3BlY3Rvcl92aWV3X2Nsb3NlLCBhcHBCcm93c2VyKTsKKyAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19hZGQoYXBwQnJvd3Nlci0+YnJvd3NlciwgImluc3BlY3Rvcix2aWV3
LGNyZWF0ZSIsIG9uX2luc3BlY3Rvcl92aWV3X2NyZWF0ZSwgYXBwQnJvd3Nlcik7CiAgICAgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcEJyb3dzZXItPmJyb3dzZXIsICJsb2FkLGVy
cm9yIiwgb25fbG9hZF9lcnJvciwgYXBwQnJvd3Nlcik7CiAgICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfYWRkKGFwcEJyb3dzZXItPmJyb3dzZXIsICJsb2FkLGZpbmlzaGVkIiwgb25fbG9h
ZF9maW5pc2hlZCwgYXBwQnJvd3Nlcik7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
YWRkKGFwcEJyb3dzZXItPmJyb3dzZXIsICJsb2FkLHByb2dyZXNzIiwgb25fcHJvZ3Jlc3MsIGFw
cEJyb3dzZXIpOwpAQCAtNzc3LDggKzc3Nyw4IEBAIHdlYkluc3BlY3RvckNyZWF0ZShFTGF1bmNo
ZXIgKmFwcEJyb3dzZXIpCiAgICAgICAgIHJldHVybiBxdWl0KEVJTkFfRkFMU0UsICJFUlJPUjog
Y291bGQgbm90IGNyZWF0ZSBhbiBpbnNwZWN0b3Igd2luZG93XG4iKTsKIAogICAgIGVjb3JlX2V2
YXNfdGl0bGVfc2V0KGFwcEluc3BlY3Rvci0+ZWUsICJXZWIgSW5zcGVjdG9yIik7Ci0gICAgZWNv
cmVfZXZhc19jYWxsYmFja19yZXNpemVfc2V0KGFwcEluc3BlY3Rvci0+ZWUsIG9uX3dlYl9pbnNw
ZWN0b3JfZWNvcmVfZXZhc19yZXNpemUpOwotICAgIGVjb3JlX2V2YXNfY2FsbGJhY2tfZGVsZXRl
X3JlcXVlc3Rfc2V0KGFwcEluc3BlY3Rvci0+ZWUsIG9uX3dlYl9pbnNwZWN0b3Jfdmlld19kZXN0
cm95ZWQpOworICAgIGVjb3JlX2V2YXNfY2FsbGJhY2tfcmVzaXplX3NldChhcHBJbnNwZWN0b3It
PmVlLCBvbl9pbnNwZWN0b3JfZWNvcmVfZXZhc19yZXNpemUpOworICAgIGVjb3JlX2V2YXNfY2Fs
bGJhY2tfZGVsZXRlX3JlcXVlc3Rfc2V0KGFwcEluc3BlY3Rvci0+ZWUsIG9uX2luc3BlY3Rvcl92
aWV3X2Rlc3Ryb3llZCk7CiAKICAgICBldmFzX29iamVjdF9uYW1lX3NldChhcHBJbnNwZWN0b3It
PmJyb3dzZXIsICJpbnNwZWN0b3IiKTsKIApAQCAtNzkwLDcgKzc5MCw3IEBAIHdlYkluc3BlY3Rv
ckNyZWF0ZShFTGF1bmNoZXIgKmFwcEJyb3dzZXIpCiAKICAgICBldmFzX29iamVjdF9mb2N1c19z
ZXQoYXBwSW5zcGVjdG9yLT5icm93c2VyLCBFSU5BX1RSVUUpOwogCi0gICAgZXdrX3ZpZXdfd2Vi
X2luc3BlY3Rvcl92aWV3X3NldChhcHBCcm93c2VyLT5icm93c2VyLCBhcHBJbnNwZWN0b3ItPmJy
b3dzZXIpOworICAgIGV3a192aWV3X2luc3BlY3Rvcl92aWV3X3NldChhcHBCcm93c2VyLT5icm93
c2VyLCBhcHBJbnNwZWN0b3ItPmJyb3dzZXIpOwogCiAgICAgcmV0dXJuIDE7CiB9CkBAIC04NTYs
NyArODU2LDcgQEAgY2xvc2VXaW5kb3coRWNvcmVfRXZhcyAqZWUpCiAgICAgRUxhdW5jaGVyICph
cHA7CiAKICAgICBhcHAgPSBmaW5kX2FwcF9mcm9tX2VlKGVlKTsKLSAgICBld2tfdmlld193ZWJf
aW5zcGVjdG9yX2Nsb3NlKGFwcC0+YnJvd3Nlcik7CisgICAgZXdrX3ZpZXdfaW5zcGVjdG9yX2Ns
b3NlKGFwcC0+YnJvd3Nlcik7CiAKICAgICB3aW5kb3dzID0gZWluYV9saXN0X3JlbW92ZSh3aW5k
b3dzLCBhcHApOwogICAgIHVybF9iYXJfZGVsKGFwcC0+dXJsX2Jhcik7CkBAIC04NzAsNyArODcw
LDcgQEAgbWFpbl9zaWduYWxfZXhpdCh2b2lkICpkYXRhLCBpbnQgZXZfdHlwZSwgdm9pZCAqZXYp
CiAgICAgRUxhdW5jaGVyICphcHA7CiAgICAgd2hpbGUgKHdpbmRvd3MpIHsKICAgICAgICAgYXBw
ID0gKEVMYXVuY2hlciopIGVpbmFfbGlzdF9kYXRhX2dldCh3aW5kb3dzKTsKLSAgICAgICAgZXdr
X3ZpZXdfd2ViX2luc3BlY3Rvcl9jbG9zZShhcHAtPmJyb3dzZXIpOworICAgICAgICBld2tfdmll
d19pbnNwZWN0b3JfY2xvc2UoYXBwLT5icm93c2VyKTsKIAogICAgICAgICBlY29yZV9ldmFzX2Zy
ZWUoYXBwLT5lZSk7CiAgICAgICAgIHdpbmRvd3MgPSBlaW5hX2xpc3RfcmVtb3ZlKHdpbmRvd3Ms
IGFwcCk7CkBAIC05OTMsNyArOTkzLDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQog
ICAgIHVzZXJBcmdzLmRhdGFiYXNlUGF0aCA9IHBhdGg7CiAKICAgICBld2tfc2V0dGluZ3NfaWNv
bl9kYXRhYmFzZV9wYXRoX3NldChwYXRoKTsKLSAgICBld2tfc2V0dGluZ3Nfd2ViX2RhdGFiYXNl
X3BhdGhfc2V0KHBhdGgpOworICAgIGV3a19zZXR0aW5nc19kYXRhYmFzZV9wYXRoX3NldChwYXRo
KTsKIAogICAgIHByb3h5VXJpID0gZ2V0ZW52KCJodHRwX3Byb3h5Iik7CiAgICAgaWYgKHByb3h5
VXJpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167702</attachid>
            <date>2012-10-09 00:35:09 -0700</date>
            <delta_ts>2012-10-09 04:29:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98724-20121009163411.patch</filename>
            <type>text/plain</type>
            <size>59045</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEzNTZkNTAxZTU2ZjBiZTA3
MGVhYTBhNjE2MjllMzBhMTcyZWVlZDEuLjEyM2ZkNjg0OTQ3NGNiNjg3NzViYmZkYTYxZTQ1ZGM0
NDc1MmZmMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTAtMDggIEd5dXlvdW5n
IEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBSZW1vdmUg
IndlYiIgd29yZCBpbiBld2sgZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk4NzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVtb3ZlICJ3ZWIiIHdvcmQgZnJvbSBld2sgZmlsZXMgaW4gb3JkZXIg
dG8gYmUgY29uc2lzdGVudCB3aXRoIFdLMi4KKyAgICAgICAgcjEzMDQ5NCBhbmQgcjEzMDQ3OSBy
ZW1vdmVkICp3ZWIqIGZyb20gV0syLgorCisgICAgICAgIFRoaXMgd2FzIGRpc2N1c3NlZCBpbiB3
ZWJraXQtZWZsIG1haWxpbmcgbGlzdC4KKyAgICAgICAgaHR0cDovL2xpc3RzLndlYmtpdC5vcmcv
cGlwZXJtYWlsL3dlYmtpdC1lZmwvMjAxMi1TZXB0ZW1iZXIvMDAwMzA4Lmh0bWwuCisKKyAgICAg
ICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKwogMjAxMi0xMC0wNCAgUm9iIEJ1aXMgIDxyYnVpc0By
aW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBTeW5jIHVwIENNYWtlIGZpbGVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cKaW5kZXggNTkwZjkzNDBiYTM2YTkyNDZlY2UxZTFiMGQzNDhjNjcwY2YzY2RhMS4u
OTBmZjhmMmFjNmEyOWY3NDE2YjE5NGVkMjE0YmQyZDQ2MmZlYWUxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTEwLTA4ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5r
aW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gUmVtb3ZlICJ3ZWIiIHdvcmQgaW4gZXdr
IGZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
ODcyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSAid2ViIiB3b3JkIGZyb20gZXdrIGZpbGVzIGluIG9yZGVyIHRvIGJlIGNvbnNpc3RlbnQg
d2l0aCBXSzIuCisgICAgICAgIHIxMzA0OTQgYW5kIHIxMzA0NzkgcmVtb3ZlZCAqd2ViKiBmcm9t
IFdLMi4KKworICAgICAgICBUaGlzIHdhcyBkaXNjdXNzZWQgaW4gd2Via2l0LWVmbCBtYWlsaW5n
IGxpc3QuCisgICAgICAgIGh0dHA6Ly9saXN0cy53ZWJraXQub3JnL3BpcGVybWFpbC93ZWJraXQt
ZWZsLzIwMTItU2VwdGVtYmVyLzAwMDMwOC5odG1sLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVm
bDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNw
ZWN0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50RWZs
OjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQpOgorICAgICAgICAqIGV3ay9FV2ViS2l0Lmg6CisgICAg
ICAgICogZXdrL2V3a19kYXRhYmFzZS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3dlYl9kYXRhYmFzZS5jcHAuCisgICAgICAgIChfRXdrX0RhdGFiYXNlKToKKyAg
ICAgICAgKGV3a19kYXRhYmFzZV9kaXNwbGF5X25hbWVfZ2V0KToKKyAgICAgICAgKGV3a19kYXRh
YmFzZV9leHBlY3RlZF9zaXplX2dldCk6CisgICAgICAgIChld2tfZGF0YWJhc2VfZmlsZW5hbWVf
Z2V0KToKKyAgICAgICAgKGV3a19kYXRhYmFzZV9uYW1lX2dldCk6CisgICAgICAgIChld2tfZGF0
YWJhc2Vfc2VjdXJpdHlfb3JpZ2luX2dldCk6CisgICAgICAgIChld2tfZGF0YWJhc2Vfc2l6ZV9n
ZXQpOgorICAgICAgICAoZXdrX2RhdGFiYXNlX3JlbW92ZSk6CisgICAgICAgIChld2tfZGF0YWJh
c2VfcmVtb3ZlX2FsbCk6CisgICAgICAgIChld2tfZGF0YWJhc2VfZnJlZSk6CisgICAgICAgIChl
d2tfZGF0YWJhc2VfbGlzdF9mcmVlKToKKyAgICAgICAgKGV3a19kYXRhYmFzZV9uZXcpOgorICAg
ICAgICAqIGV3ay9ld2tfZGF0YWJhc2UuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfd2ViX2RhdGFiYXNlLmguCisgICAgICAgICogZXdrL2V3a19kYXRhYmFzZV9wcml2
YXRlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3dlYl9kYXRhYmFz
ZV9wcml2YXRlLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBld2svZXdrX21haW4u
Y3BwOgorICAgICAgICAoX2V3a19pbml0X2JvZHkpOgorICAgICAgICAqIGV3ay9ld2tfc2VjdXJp
dHlfb3JpZ2luLmNwcDoKKyAgICAgICAgKGV3a19zZWN1cml0eV9vcmlnaW5fZGF0YWJhc2VfdXNh
Z2VfZ2V0KToKKyAgICAgICAgKGV3a19zZWN1cml0eV9vcmlnaW5fZGF0YWJhc2VfcXVvdGFfZ2V0
KToKKyAgICAgICAgKGV3a19zZWN1cml0eV9vcmlnaW5fZGF0YWJhc2VfcXVvdGFfc2V0KToKKyAg
ICAgICAgKGV3a19zZWN1cml0eV9vcmlnaW5fZGF0YWJhc2VfZ2V0X2FsbCk6CisgICAgICAgICog
ZXdrL2V3a19zZWN1cml0eV9vcmlnaW4uaDoKKyAgICAgICAgKiBld2svZXdrX3NldHRpbmdzLmNw
cDoKKyAgICAgICAgKGV3a19zZXR0aW5nc19kYXRhYmFzZV9kZWZhdWx0X3F1b3RhX2dldCk6Cisg
ICAgICAgIChld2tfc2V0dGluZ3NfZGF0YWJhc2VfZGVmYXVsdF9xdW90YV9zZXQpOgorICAgICAg
ICAoZXdrX3NldHRpbmdzX2RhdGFiYXNlX3BhdGhfc2V0KToKKyAgICAgICAgKGV3a19zZXR0aW5n
c19kYXRhYmFzZV9wYXRoX2dldCk6CisgICAgICAgICogZXdrL2V3a19zZXR0aW5ncy5oOgorICAg
ICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChld2tfdmlld19pbnNwZWN0b3Jfc2hv
dyk6CisgICAgICAgIChld2tfdmlld19pbnNwZWN0b3JfY2xvc2UpOgorICAgICAgICAoZXdrX3Zp
ZXdfaW5zcGVjdG9yX3ZpZXdfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X2luc3BlY3Rvcl92aWV3
X3NldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2F1ZGlvX2dldCk6CisgICAgICAgIChl
d2tfdmlld19zZXR0aW5nX2F1ZGlvX3NldCk6CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisK
IDIwMTItMTAtMDcgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVp
cmFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBSZW5hbWUgZmlyc3Qvc2Vjb25kIHRvIGtleS92
YWx1ZSBpbiBIYXNoTWFwIGl0ZXJhdG9ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZjli
ODg1Njk5OWM1ZWYxYThiNDFkMWYxZDIxZDQzZWRkNDUzZTE4NS4uYzFlYzJlZWQ0MTkxYmZkOTQz
ODUxNzVmNTU0ZGFjMjJiYTlkZDAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xMDgs
NiArMTA4LDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBlZmwvZXdrL2V3a19j
b250ZXh0bWVudS5jcHAKICAgICBlZmwvZXdrL2V3a19jb29raWVzLmNwcAogICAgIGVmbC9ld2sv
ZXdrX2N1c3RvbV9oYW5kbGVyLmNwcAorICAgIGVmbC9ld2svZXdrX2RhdGFiYXNlLmNwcAogICAg
IGVmbC9ld2svZXdrX2ZpbGVfY2hvb3Nlci5jcHAKICAgICBlZmwvZXdrL2V3a19mcmFtZS5jcHAK
ICAgICBlZmwvZXdrL2V3a19oaXN0b3J5LmNwcApAQCAtMTI5LDcgKzEzMCw2IEBAIExJU1QoQVBQ
RU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgZWZsL2V3ay9ld2tfdmlld19zaW5nbGUuY3BwCiAgICAg
ZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKICAgICBlZmwvZXdrL2V3a193aW5kb3dfZmVhdHVy
ZXMuY3BwCi0gICAgZWZsL2V3ay9ld2tfd2ViX2RhdGFiYXNlLmNwcAogKQogCiBMSVNUKEFQUEVO
RCBXZWJLaXRfTElCUkFSSUVTCkBAIC0xNzIsNiArMTcyLDcgQEAgU0VUKEVXZWJLaXRfSEVBREVS
UwogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a19hdXRoLmgKICAg
ICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuaAog
ICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a19jb29raWVzLmgKKyAg
ICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZWZsL2V3ay9ld2tfZGF0YWJhc2UuaAogICAg
ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a19maWxlX2Nob29zZXIuaAog
ICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9lZmwvZXdrL2V3a19mcmFtZS5oCiAgICAg
JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2VmbC9ld2svZXdrX2hpc3RvcnkuaApAQCAtMTg1
LDcgKzE4Niw2IEBAIFNFVChFV2ViS2l0X0hFQURFUlMKICAgICAke0NNQUtFX0NVUlJFTlRfU09V
UkNFX0RJUn0vZWZsL2V3ay9ld2tfc2V0dGluZ3MuaAogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VS
Q0VfRElSfS9lZmwvZXdrL2V3a192aWV3LmgKICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJ
Un0vZWZsL2V3ay9ld2tfd2luZG93X2ZlYXR1cmVzLmgKLSAgICAke0NNQUtFX0NVUlJFTlRfU09V
UkNFX0RJUn0vZWZsL2V3ay9ld2tfd2ViX2RhdGFiYXNlLmgKICkKIAogSU5TVEFMTChGSUxFUyAk
e0VXZWJLaXRfSEVBREVSU30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCmluZGV4IGQ0YjZkN2FkMDQwMGJiNWRkODgzNzE3MDFl
YzJiYzVkYjk0NmE4ZDIuLjgyZTViNGFmMDBhOTRiNWQzYWNlNzIwMTRmNDc2MzZhZTUyNzU2ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50RWZsLmNwcApAQCAtNDM0LDcgKzQzNCw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpleGNl
ZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlCiAg
ICAgICogZGVmYXVsdCBxdW90YSBpcyBhcHBsaWVkCiAgICAgICovCiAgICAgaWYgKCFxdW90YSAm
JiAhRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuaGFzRW50cnlGb3JPcmlnaW4ob3JpZ2luKSkK
LSAgICAgICAgcXVvdGEgPSBld2tfc2V0dGluZ3Nfd2ViX2RhdGFiYXNlX2RlZmF1bHRfcXVvdGFf
Z2V0KCk7CisgICAgICAgIHF1b3RhID0gZXdrX3NldHRpbmdzX2RhdGFiYXNlX2RlZmF1bHRfcXVv
dGFfZ2V0KCk7CiAKICAgICBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5zZXRRdW90YShvcmln
aW4sIHF1b3RhKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuY3BwCmluZGV4IDcwMWYzMDZhOWVlMmNlMjkwNTE0MTU2
OWFiMzFlOWQxYjExODkwOWMuLjVmMmU4NDY0Yzc3NmY4ZDA0NTNhMTIxZTg4MjA5NWUyOTU0Njdl
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3Rv
ckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5z
cGVjdG9yQ2xpZW50RWZsLmNwcApAQCAtODcsNyArODcsNyBAQCBJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwqIEluc3BlY3RvckNsaWVudEVmbDo6b3Blbkluc3BlY3RvckZyb250ZW5kKEluc3BlY3Rv
ckNvbgogewogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobV9pbnNwZWN0ZWRW
aWV3LCAiaW5zcGVjdG9yLHZpZXcsY3JlYXRlIiwgMCk7CiAKLSAgICBFdmFzX09iamVjdCogaW5z
cGVjdG9yVmlldyA9IGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19nZXQobV9pbnNwZWN0ZWRW
aWV3KTsKKyAgICBFdmFzX09iamVjdCogaW5zcGVjdG9yVmlldyA9IGV3a192aWV3X2luc3BlY3Rv
cl92aWV3X2dldChtX2luc3BlY3RlZFZpZXcpOwogICAgIGlmICghaW5zcGVjdG9yVmlldykKICAg
ICAgICAgcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9FV2Vi
S2l0LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svRVdlYktpdC5oCmluZGV4IDdjOTFjM2M5YTgz
OGI5YzU0MWRmN2RhZTQxZmVlZmNjMTc4OWU0MDQuLjdmNWNhMDZjYjE2NmJmOGUzYjU3M2U0N2E2
Nzc1YjA3YjQ5ZDAyZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9FV2ViS2l0
LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL0VXZWJLaXQuaApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgImV3a19hdXRoLmgiCiAjaW5jbHVkZSAiZXdrX2NvbnRleHRtZW51LmgiCiAj
aW5jbHVkZSAiZXdrX2Nvb2tpZXMuaCIKKyNpbmNsdWRlICJld2tfZGF0YWJhc2UuaCIKICNpbmNs
dWRlICJld2tfZmlsZV9jaG9vc2VyLmgiCiAjaW5jbHVkZSAiZXdrX2ZyYW1lLmgiCiAjaW5jbHVk
ZSAiZXdrX2hpc3RvcnkuaCIKQEAgLTQ0LDcgKzQ1LDYgQEAKICNpbmNsdWRlICJld2tfc2VjdXJp
dHlfcG9saWN5LmgiCiAjaW5jbHVkZSAiZXdrX3NldHRpbmdzLmgiCiAjaW5jbHVkZSAiZXdrX3Zp
ZXcuaCIKLSNpbmNsdWRlICJld2tfd2ViX2RhdGFiYXNlLmgiCiAjaW5jbHVkZSAiZXdrX3dpbmRv
d19mZWF0dXJlcy5oIgogCiAjaW5jbHVkZSA8RXZhcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19kYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X2RhdGFiYXNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTBiZjgxMDFkNTJkNzBjMmM5MWJlYTE5NWY0NGU3
YjMyZmI1ZmUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19k
YXRhYmFzZS5jcHAKQEAgLTAsMCArMSwxODIgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEy
IEludGVsIENvcnBvcmF0aW9uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImV3
a19kYXRhYmFzZS5oIgorCisjaW5jbHVkZSAiRGF0YWJhc2VUcmFja2VyLmgiCisjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJld2tfZGF0YWJhc2VfcHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgImV3a19zZWN1cml0eV9vcmlnaW4uaCIKKyNpbmNsdWRlICJld2tfc2VjdXJpdHlfb3Jp
Z2luX3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxFaW5hLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCitzdHJ1Y3QgX0V3a19EYXRhYmFzZSB7CisgICAgV1RGOjpSZWZQdHI8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luOworICAgIFdURjo6U3RyaW5nIGNvcmVO
YW1lOworICAgIGNvbnN0IGNoYXIqIGRpc3BsYXlOYW1lOworICAgIGNvbnN0IGNoYXIqIGZpbGVu
YW1lOworICAgIGNvbnN0IGNoYXIqIG5hbWU7Cit9OworCitjb25zdCBjaGFyKiBld2tfZGF0YWJh
c2VfZGlzcGxheV9uYW1lX2dldChFd2tfRGF0YWJhc2UqIGRhdGFiYXNlKQoreworI2lmIEVOQUJM
RShTUUxfREFUQUJBU0UpCisgICAgaWYgKGRhdGFiYXNlLT5kaXNwbGF5TmFtZSkKKyAgICAgICAg
cmV0dXJuIGRhdGFiYXNlLT5kaXNwbGF5TmFtZTsKKworICAgIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luKiBvcmlnaW4gPSBkYXRhYmFzZS0+c2VjdXJpdHlPcmlnaW4uZ2V0KCk7CisgICAgV2ViQ29y
ZTo6RGF0YWJhc2VEZXRhaWxzIGRldGFpbHMgPSBXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnRy
YWNrZXIoKS5kZXRhaWxzRm9yTmFtZUFuZE9yaWdpbihkYXRhYmFzZS0+bmFtZSwgb3JpZ2luKTsK
KyAgICBkYXRhYmFzZS0+ZGlzcGxheU5hbWUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChkZXRhaWxz
LmRpc3BsYXlOYW1lKCkudXRmOCgpLmRhdGEoKSk7CisKKyAgICByZXR1cm4gZGF0YWJhc2UtPmRp
c3BsYXlOYW1lOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGF0YWJhc2UpOworICAgIHJldHVy
biAwOworI2VuZGlmCit9CisKK3VpbnQ2NF90IGV3a19kYXRhYmFzZV9leHBlY3RlZF9zaXplX2dl
dChjb25zdCBFd2tfRGF0YWJhc2UqIGRhdGFiYXNlKQoreworI2lmIEVOQUJMRShTUUxfREFUQUJB
U0UpCisgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGRhdGFiYXNlLT5zZWN1
cml0eU9yaWdpbi5nZXQoKTsKKyAgICBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMgZGV0YWlscyA9
IFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLmRldGFpbHNGb3JOYW1lQW5kT3Jp
Z2luKGRhdGFiYXNlLT5uYW1lLCBvcmlnaW4pOworICAgIHJldHVybiBkZXRhaWxzLmV4cGVjdGVk
VXNhZ2UoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRhdGFiYXNlKTsKKyAgICByZXR1cm4g
MDsKKyNlbmRpZgorfQorCitjb25zdCBjaGFyKiBld2tfZGF0YWJhc2VfZmlsZW5hbWVfZ2V0KEV3
a19EYXRhYmFzZSogZGF0YWJhc2UpCit7CisjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKKyAgICBp
ZiAoZGF0YWJhc2UtPmZpbGVuYW1lKQorICAgICAgICByZXR1cm4gZGF0YWJhc2UtPmZpbGVuYW1l
OworCisgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGRhdGFiYXNlLT5zZWN1
cml0eU9yaWdpbi5nZXQoKTsKKyAgICBXVEY6OlN0cmluZyBwYXRoID0gV2ViQ29yZTo6RGF0YWJh
c2VUcmFja2VyOjp0cmFja2VyKCkuZnVsbFBhdGhGb3JEYXRhYmFzZShvcmlnaW4sIGRhdGFiYXNl
LT5jb3JlTmFtZSk7CisgICAgZGF0YWJhc2UtPmZpbGVuYW1lID0gZWluYV9zdHJpbmdzaGFyZV9h
ZGQocGF0aC51dGY4KCkuZGF0YSgpKTsKKworICAgIHJldHVybiBkYXRhYmFzZS0+ZmlsZW5hbWU7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkYXRhYmFzZSk7CisgICAgcmV0dXJuIDA7CisjZW5k
aWYKK30KKworY29uc3QgY2hhciogZXdrX2RhdGFiYXNlX25hbWVfZ2V0KEV3a19EYXRhYmFzZSog
ZGF0YWJhc2UpCit7CisjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKKyAgICBpZiAoZGF0YWJhc2Ut
Pm5hbWUpCisgICAgICAgIHJldHVybiBkYXRhYmFzZS0+bmFtZTsKKworICAgIGRhdGFiYXNlLT5u
YW1lID0gZWluYV9zdHJpbmdzaGFyZV9hZGQoZGF0YWJhc2UtPmNvcmVOYW1lLnV0ZjgoKS5kYXRh
KCkpOworCisgICAgcmV0dXJuIGRhdGFiYXNlLT5uYW1lOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oZGF0YWJhc2UpOworICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK0V3a19TZWN1cml0eV9P
cmlnaW4qIGV3a19kYXRhYmFzZV9zZWN1cml0eV9vcmlnaW5fZ2V0KGNvbnN0IEV3a19EYXRhYmFz
ZSogZGF0YWJhc2UpCit7CisgICAgcmV0dXJuIGV3a19zZWN1cml0eV9vcmlnaW5fbmV3KGRhdGFi
YXNlLT5zZWN1cml0eU9yaWdpbi5nZXQoKSk7Cit9CisKK3VpbnQ2NF90IGV3a19kYXRhYmFzZV9z
aXplX2dldChjb25zdCBFd2tfRGF0YWJhc2UqIGRhdGFiYXNlKQoreworI2lmIEVOQUJMRShTUUxf
REFUQUJBU0UpCisgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGRhdGFiYXNl
LT5zZWN1cml0eU9yaWdpbi5nZXQoKTsKKyAgICBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMgZGV0
YWlscyA9IFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLmRldGFpbHNGb3JOYW1l
QW5kT3JpZ2luKGRhdGFiYXNlLT5uYW1lLCBvcmlnaW4pOworICAgIHJldHVybiBkZXRhaWxzLmN1
cnJlbnRVc2FnZSgpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGF0YWJhc2UpOworICAgIHJl
dHVybiAwOworI2VuZGlmCit9CisKK3ZvaWQgZXdrX2RhdGFiYXNlX3JlbW92ZShFd2tfRGF0YWJh
c2UqIGRhdGFiYXNlKQoreworI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCisgICAgV2ViQ29yZTo6
RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuZGVsZXRlRGF0YWJhc2UoZGF0YWJhc2UtPnNlY3Vy
aXR5T3JpZ2luLmdldCgpLCBkYXRhYmFzZS0+Y29yZU5hbWUpOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0oZGF0YWJhc2UpOworI2VuZGlmCit9CisKK3ZvaWQgZXdrX2RhdGFiYXNlX3JlbW92ZV9h
bGwodm9pZCkKK3sKKyNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQorICAgIFdlYkNvcmU6OkRhdGFi
YXNlVHJhY2tlcjo6dHJhY2tlcigpLmRlbGV0ZUFsbERhdGFiYXNlcygpOworI2VuZGlmCit9CisK
K3ZvaWQgZXdrX2RhdGFiYXNlX2ZyZWUoRXdrX0RhdGFiYXNlKiBkYXRhYmFzZSkKK3sKKyNpZiBF
TkFCTEUoU1FMX0RBVEFCQVNFKQorICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKGRhdGFiYXNlLT5k
aXNwbGF5TmFtZSk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwoZGF0YWJhc2UtPmZpbGVuYW1l
KTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChkYXRhYmFzZS0+bmFtZSk7CisKKyAgICBkZWxl
dGUgZGF0YWJhc2U7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkYXRhYmFzZSk7CisjZW5kaWYK
K30KKwordm9pZCBld2tfZGF0YWJhc2VfbGlzdF9mcmVlKEVpbmFfTGlzdCogZGF0YWJhc2VMaXN0
KQoreworICAgIHZvaWQqIGRhdGFiYXNlOworICAgIEVJTkFfTElTVF9GUkVFKGRhdGFiYXNlTGlz
dCwgZGF0YWJhc2UpCisgICAgICAgIGV3a19kYXRhYmFzZV9mcmVlKHN0YXRpY19jYXN0PEV3a19E
YXRhYmFzZSo+KGRhdGFiYXNlKSk7Cit9CisKKy8qKgorICogQGludGVybmFsCisgKiBDcmVhdGVz
IGEgd3JhcHBlciByZXByZXNlbnRpbmcgYSBXZWIgRGF0YWJhc2UuCisgKgorICogQHBhcmFtIGNv
cmVPcmlnaW4gV2ViQ29yZSBTZWN1cml0eSBPcmlnaW4gb2JqZWN0CisgKiBAcGFyYW0gY29yZU5h
bWUgV2ViIERhdGFiYXNlIG5hbWUKKyAqCisgKiBAcmV0dXJuIGEgd3JhcHBlciBmb3IgbWFuaXB1
bGF0aW5nIGEgV2ViIERhdGFiYXNlLiBJdCBzaG91bGQgYmUgZnJlZWQKKyAqIGJ5IGV3a19kYXRh
YmFzZV9mcmVlKCkuCisgKi8KK0V3a19EYXRhYmFzZSogZXdrX2RhdGFiYXNlX25ldyhXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiogY29yZU9yaWdpbiwgY29uc3QgV1RGOjpTdHJpbmcmIGNvcmVOYW1l
KQoreworI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCisgICAgRXdrX0RhdGFiYXNlKiBkYXRhYmFz
ZSA9IG5ldyBFd2tfRGF0YWJhc2U7CisKKyAgICBkYXRhYmFzZS0+c2VjdXJpdHlPcmlnaW4gPSBj
b3JlT3JpZ2luOworICAgIGRhdGFiYXNlLT5jb3JlTmFtZSA9IGNvcmVOYW1lOworICAgIGRhdGFi
YXNlLT5kaXNwbGF5TmFtZSA9IDA7CisgICAgZGF0YWJhc2UtPmZpbGVuYW1lID0gMDsKKyAgICBk
YXRhYmFzZS0+bmFtZSA9IDA7CisKKyAgICByZXR1cm4gZGF0YWJhc2U7CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShjb3JlT3JpZ2luKTsKKyAgICBVTlVTRURfUEFSQU0oY29yZU5hbWUpOworICAg
IHJldHVybiAwOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX2RhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2RhdGFiYXNlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDI4YjEyOWUzNTU5YzVmNDcyY2UxY2FlZTIxYmJhOGIyYWIyMjRmNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZGF0YWJhc2UuaApAQCAtMCww
ICsxLDEzNiBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24K
KworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisq
LworCisvKioKKyAqIEBmaWxlICAgIGV3a19kYXRhYmFzZS5oCisgKiBAYnJpZWYgICBXZWIgRGF0
YWJhc2UgQVBJLgorICoKKyAqIFRoaXMgQVBJIHByb3ZpZGVzIGZ1bmN0aW9ucyBmb3IgbWFuYWdp
bmcgV2ViIERhdGFiYXNlIGNyZWF0ZWQgZm9yIGEgc2VjdXJpdHkKKyAqIG9yaWdpbi4gV2ViS2l0
IG5lZWRzIHRvIGJlIGNvbXBpbGVkIHdpdGggV2ViIERhdGFiYXNlIHN1cHBvcnQgaW4gb3JkZXIg
dG8gdXNlCisgKiB0aGlzIEFQSS4KKyAqLworCisjaWZuZGVmIGV3a19kYXRhYmFzZV9oCisjZGVm
aW5lIGV3a19kYXRhYmFzZV9oCisKKyNpbmNsdWRlICJld2tfc2VjdXJpdHlfb3JpZ2luLmgiCisK
KyNpbmNsdWRlIDxFdmFzLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7Cisj
ZW5kaWYKKwordHlwZWRlZiBzdHJ1Y3QgX0V3a19EYXRhYmFzZSBFd2tfRGF0YWJhc2U7CisKKy8q
KgorICogUmV0dXJucyB0aGUgdXNlciBmcmllbmRseSBuYW1lIG9mIHRoZSBkYXRhYmFzZS4KKyAq
CisgKiBJdCByZXR1cm5zIGEgaW50ZXJuYWwgc3RyaW5nIHdoaWNoIHNob3VsZCBub3QKKyAqIGJl
IG1vZGlmaWVkLiBUaGUgc3RyaW5nIGlzIGd1YXJhbnRlZWQgdG8gYmUgc3RyaW5nc2hhcmVkLgor
ICoKKyAqIEBwYXJhbSBvIGRhdGFiYXNlIG9iamVjdAorICoKKyAqIEByZXR1cm4gdGhlIGRhdGFi
YXNlIG5hbWUKKyAqLworRUFQSSBjb25zdCBjaGFyICAqZXdrX2RhdGFiYXNlX2Rpc3BsYXlfbmFt
ZV9nZXQoRXdrX0RhdGFiYXNlICpvKTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBzaXplIG9mIHRo
ZSBkYXRhYmFzZSBleHBlY3RlZCBieSB0aGUgYXV0aG9yLgorICoKKyAqIEBwYXJhbSBvIGRhdGFi
YXNlIG9iamVjdAorICoKKyAqIEByZXR1cm4gZXhwZWN0ZWQgc2l6ZQorICovCitFQVBJIHVpbnQ2
NF90ICAgICBld2tfZGF0YWJhc2VfZXhwZWN0ZWRfc2l6ZV9nZXQoY29uc3QgRXdrX0RhdGFiYXNl
ICpvKTsKKworLyoqCisgKiBSZXR1cm5zIHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBkYXRhYmFz
ZSBmaWxlLgorICoKKyAqIEl0IHJldHVybnMgYSBpbnRlcm5hbCBzdHJpbmcgd2hpY2ggc2hvdWxk
IG5vdAorICogYmUgbW9kaWZpZWQuIFRoZSBzdHJpbmcgaXMgZ3VhcmFudGVlZCB0byBiZSBzdHJp
bmdzaGFyZWQuCisgKgorICogQHBhcmFtIG8gZGF0YWJhc2Ugb2JqZWN0CisgKgorICogQHJldHVy
biB0aGUgZGF0YWJhc2UgcGF0aAorICovCitFQVBJIGNvbnN0IGNoYXIgICpld2tfZGF0YWJhc2Vf
ZmlsZW5hbWVfZ2V0KEV3a19EYXRhYmFzZSAqbyk7CisKKy8qKgorICogUmV0dXJucyB0aGUgbmFt
ZSBvZiB0aGUgZGF0YWJhc2UuCisgKgorICogSXQgcmV0dXJucyBhIGludGVybmFsIHN0cmluZyB3
aGljaCBzaG91bGQgbm90CisgKiBiZSBtb2RpZmllZC4gVGhlIHN0cmluZyBpcyBndWFyYW50ZWVk
IHRvIGJlIHN0cmluZ3NoYXJlZC4KKyAqCisgKiBAcGFyYW0gbyBkYXRhYmFzZSBvYmplY3QKKyAq
CisgKiBAcmV0dXJuIHRoZSBkYXRhYmFzZSBuYW1lCisgKi8KK0VBUEkgY29uc3QgY2hhciAgKmV3
a19kYXRhYmFzZV9uYW1lX2dldChFd2tfRGF0YWJhc2UgKm8pOworCisvKioKKyAqIFJldHJpZXZl
cyB0aGUgc2VjdXJpdHkgb3JpZ2luIG9mIHRoZSBkYXRhYmFzZS4KKyAqCisgKiBUaGUgcmV0dXJu
ZWQgdmFsdWUgc2hvdWxkIGJlIGZyZWVkIGJ5IGV3a19zZWN1cml0eV9vcmlnaW5fZnJlZSgpLgor
ICoKKyAqIEBwYXJhbSBvIGRhdGFiYXNlIG9iamVjdAorICoKKyAqIEByZXR1cm4gdGhlIHNlY3Vy
aXR5IG9yaWdpbgorICovCitFQVBJIEV3a19TZWN1cml0eV9PcmlnaW4gKmV3a19kYXRhYmFzZV9z
ZWN1cml0eV9vcmlnaW5fZ2V0KGNvbnN0IEV3a19EYXRhYmFzZSAqbyk7CisKKy8qKgorICogUmV0
dXJucyB0aGUgc2l6ZSBvZiB0aGUgZGF0YWJhc2UuCisgKgorICogQHBhcmFtIG8gZGF0YWJhc2Ug
b2JqZWN0CisgKgorICogQHJldHVybiB0aGUgY3VycmVudCBzaXplIG9mIHRoZSBkYXRhYmFzZQor
ICovCitFQVBJIHVpbnQ2NF90ICAgICBld2tfZGF0YWJhc2Vfc2l6ZV9nZXQoY29uc3QgRXdrX0Rh
dGFiYXNlICpvKTsKKworLyoqCisgKiBSZW1vdmUgdGhlIGRhdGFiYXNlIGZyb20gdGhlIHNlY3Vy
aXR5IG9yaWdpbiBhbmQgZGVzdHJveSBhbGwgZGF0YS4KKyAqCisgKiBAcGFyYW0gbyBkYXRhYmFz
ZSBvYmplY3QKKyAqLworRUFQSSB2b2lkICAgICAgICAgZXdrX2RhdGFiYXNlX3JlbW92ZShFd2tf
RGF0YWJhc2UgKm8pOworCisvKioKKyAqIFJlbW92ZSBhbGwgdGhlIGRhdGFiYXNlcyBpbiB0aGUg
Y3VycmVudCBkZWZhdWx0IHBhdGguCisgKi8KK0VBUEkgdm9pZCAgICAgICAgIGV3a19kYXRhYmFz
ZV9yZW1vdmVfYWxsKHZvaWQpOworCisvKioKKyAqIFJlbGVhc2UgYWxsIHJlc291cmNlcyBhbGxv
Y2F0ZWQgYnkgYSBkYXRhYmFzZSBvYmplY3QuCisgKgorICogQHBhcmFtIG8gZGF0YWJhc2Ugb2Jq
ZWN0CisgKi8KK0VBUEkgdm9pZCAgICAgICAgIGV3a19kYXRhYmFzZV9mcmVlKEV3a19EYXRhYmFz
ZSAqbyk7CisKKy8qKgorICogQ29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIHJlbGVhc2luZyBhbGwg
ZGF0YWJhc2Ugb2JqZWN0cyBmcm9tIGEgbGlzdC4KKyAqCisgKiBAcGFyYW0gZGF0YWJhc2VfbGlz
dCBsaXN0IG9mIGRhdGFiYXNlIG9iamVjdHMgdG8gYmUgZnJlZWQKKyAqLworRUFQSSB2b2lkICAg
ICAgICAgZXdrX2RhdGFiYXNlX2xpc3RfZnJlZShFaW5hX0xpc3QgKmRhdGFiYXNlX2xpc3QpOwor
CisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2VuZGlmIC8vIGV3a19kYXRhYmFzZV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2RhdGFiYXNlX3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZGF0YWJhc2VfcHJpdmF0ZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJlZDZhYTNjMDhiZTVjZmEzMzJmZTBkNWY2ZjZmNWUyNWZjMTlkMmMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2RhdGFiYXNlX3ByaXZhdGUuaApAQCAt
MCwwICsxLDMxIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlv
bgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyovCisKKyNpZm5kZWYgZXdrX2RhdGFiYXNlX3ByaXZhdGVfaAorI2RlZmluZSBld2tfZGF0YWJh
c2VfcHJpdmF0ZV9oCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgU2VjdXJpdHlPcmlnaW47Cit9CisKK0V3a19EYXRhYmFzZSog
ZXdrX2RhdGFiYXNlX25ldyhXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogY29yZU9yaWdpbiwgY29u
c3QgV1RGOjpTdHJpbmcmIGNvcmVOYW1lKTsKKworI2VuZGlmIC8vIGV3a19kYXRhYmFzZV9wcml2
YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbWFpbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX21haW4uY3BwCmluZGV4IGU2NjcyZmU3YzU0NTZjY2Ew
ZTg3YWM3Zjk2YjdhZTI2OWY2OWNjZjYuLmExOTc0YjY1NzRjZjg0ODJiZGU2ZDFjZjczYjg3OTg4
OGI2OTMwMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbWFpbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19tYWluLmNwcApAQCAtMTg0LDcgKzE4NCw3
IEBAIEVpbmFfQm9vbCBfZXdrX2luaXRfYm9keSh2b2lkKQogICAgIFN0cmluZyBhcHBsaWNhdGlv
bkNhY2hlRGlyZWN0b3J5ID0gU3RyaW5nOjpmcm9tVVRGOChlZnJlZXRfY2FjaGVfaG9tZV9nZXQo
KSkgKyAiL1dlYktpdEVmbC9BcHBsaWNhdGlvbnMiOwogCiAgICAgZXdrX3NldHRpbmdzX2xvY2Fs
X3N0b3JhZ2VfcGF0aF9zZXQobG9jYWxTdG9yYWdlRGlyZWN0b3J5LnV0ZjgoKS5kYXRhKCkpOwot
ICAgIGV3a19zZXR0aW5nc193ZWJfZGF0YWJhc2VfcGF0aF9zZXQod2ViRGF0YWJhc2VEaXJlY3Rv
cnkudXRmOCgpLmRhdGEoKSk7CisgICAgZXdrX3NldHRpbmdzX2RhdGFiYXNlX3BhdGhfc2V0KHdl
YkRhdGFiYXNlRGlyZWN0b3J5LnV0ZjgoKS5kYXRhKCkpOwogICAgIGV3a19zZXR0aW5nc19hcHBs
aWNhdGlvbl9jYWNoZV9wYXRoX3NldChhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5LnV0ZjgoKS5k
YXRhKCkpOwogCiAgICAgZXdrX25ldHdvcmtfdGxzX2NlcnRpZmljYXRlX2NoZWNrX3NldChmYWxz
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NlY3VyaXR5X29yaWdp
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NlY3VyaXR5X29yaWdpbi5jcHAKaW5k
ZXggMWI2ODg0ZThjMTk3ZmU4NjhlYmZiZTA3NjBmNDY2NzhjYzcwNDUzYy4uMjQyZjBhNTkwY2I1
OGM5OWJjZmMyN2Y5ODkzZmVjZTY4ZTZlNTdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19zZWN1cml0eV9vcmlnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfc2VjdXJpdHlfb3JpZ2luLmNwcApAQCAtMjQsOSArMjQsOSBAQAogI2luY2x1ZGUgIkFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUcmFja2VyLmgiCiAj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJld2tfZGF0YWJhc2UuaCIKKyNp
bmNsdWRlICJld2tfZGF0YWJhc2VfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19zZWN1cml0eV9v
cmlnaW5fcHJpdmF0ZS5oIgotI2luY2x1ZGUgImV3a193ZWJfZGF0YWJhc2UuaCIKLSNpbmNsdWRl
ICJld2tfd2ViX2RhdGFiYXNlX3ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgpAQCAtNjIsNyArNjIsNyBAQCB1aW50MzJfdCBld2tfc2VjdXJpdHlfb3JpZ2luX3BvcnRfZ2V0
KGNvbnN0IEV3a19TZWN1cml0eV9PcmlnaW4qIG9yaWdpbikKICAgICByZXR1cm4gb3JpZ2luLT5z
ZWN1cml0eU9yaWdpbi0+cG9ydCgpOwogfQogCi11aW50NjRfdCBld2tfc2VjdXJpdHlfb3JpZ2lu
X3dlYl9kYXRhYmFzZV91c2FnZV9nZXQoY29uc3QgRXdrX1NlY3VyaXR5X09yaWdpbiogb3JpZ2lu
KQordWludDY0X3QgZXdrX3NlY3VyaXR5X29yaWdpbl9kYXRhYmFzZV91c2FnZV9nZXQoY29uc3Qg
RXdrX1NlY3VyaXR5X09yaWdpbiogb3JpZ2luKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChvcmlnaW4sIDApOwogCkBAIC03Myw3ICs3Myw3IEBAIHVpbnQ2NF90IGV3a19z
ZWN1cml0eV9vcmlnaW5fd2ViX2RhdGFiYXNlX3VzYWdlX2dldChjb25zdCBFd2tfU2VjdXJpdHlf
T3JpZ2luKiBvCiAjZW5kaWYKIH0KIAotdWludDY0X3QgZXdrX3NlY3VyaXR5X29yaWdpbl93ZWJf
ZGF0YWJhc2VfcXVvdGFfZ2V0KGNvbnN0IEV3a19TZWN1cml0eV9PcmlnaW4qIG9yaWdpbikKK3Vp
bnQ2NF90IGV3a19zZWN1cml0eV9vcmlnaW5fZGF0YWJhc2VfcXVvdGFfZ2V0KGNvbnN0IEV3a19T
ZWN1cml0eV9PcmlnaW4qIG9yaWdpbikKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwob3JpZ2luLCAwKTsKIApAQCAtODQsNyArODQsNyBAQCB1aW50NjRfdCBld2tfc2VjdXJp
dHlfb3JpZ2luX3dlYl9kYXRhYmFzZV9xdW90YV9nZXQoY29uc3QgRXdrX1NlY3VyaXR5X09yaWdp
biogbwogI2VuZGlmCiB9CiAKLXZvaWQgZXdrX3NlY3VyaXR5X29yaWdpbl93ZWJfZGF0YWJhc2Vf
cXVvdGFfc2V0KGNvbnN0IEV3a19TZWN1cml0eV9PcmlnaW4qIG9yaWdpbiwgdWludDY0X3QgcXVv
dGEpCit2b2lkIGV3a19zZWN1cml0eV9vcmlnaW5fZGF0YWJhc2VfcXVvdGFfc2V0KGNvbnN0IEV3
a19TZWN1cml0eV9PcmlnaW4qIG9yaWdpbiwgdWludDY0X3QgcXVvdGEpCiB7CiAgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk4ob3JpZ2luKTsKIApAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQg
ZXdrX3NlY3VyaXR5X29yaWdpbl9hcHBsaWNhdGlvbl9jYWNoZV9jbGVhcihjb25zdCBFd2tfU2Vj
dXJpdHlfT3JpZ2luKiBvcmlnCiAgICAgV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZTo6ZGVsZXRl
Q2FjaGVGb3JPcmlnaW4ob3JpZ2luLT5zZWN1cml0eU9yaWdpbi5nZXQoKSk7CiB9CiAKLUVpbmFf
TGlzdCogZXdrX3NlY3VyaXR5X29yaWdpbl93ZWJfZGF0YWJhc2VfZ2V0X2FsbChjb25zdCBFd2tf
U2VjdXJpdHlfT3JpZ2luKiBvcmlnaW4pCitFaW5hX0xpc3QqIGV3a19zZWN1cml0eV9vcmlnaW5f
ZGF0YWJhc2VfZ2V0X2FsbChjb25zdCBFd2tfU2VjdXJpdHlfT3JpZ2luKiBvcmlnaW4pCiB7CiAg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG9yaWdpbiwgMCk7CiAKQEAgLTExNyw3
ICsxMTcsNyBAQCBFaW5hX0xpc3QqIGV3a19zZWN1cml0eV9vcmlnaW5fd2ViX2RhdGFiYXNlX2dl
dF9hbGwoY29uc3QgRXdrX1NlY3VyaXR5X09yaWdpbiogbwogICAgICAgICByZXR1cm4gMDsKIAog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBuYW1lcy5zaXplKCk7IGkrKykgewotICAgICAg
ICBFd2tfV2ViX0RhdGFiYXNlKiBkYXRhYmFzZSA9IGV3a193ZWJfZGF0YWJhc2VfbmV3KG9yaWdp
bi0+c2VjdXJpdHlPcmlnaW4uZ2V0KCksIG5hbWVzW2ldLnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICBFd2tfRGF0YWJhc2UqIGRhdGFiYXNlID0gZXdrX2RhdGFiYXNlX25ldyhvcmlnaW4tPnNlY3Vy
aXR5T3JpZ2luLmdldCgpLCBuYW1lc1tpXS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgZGF0YWJh
c2VzID0gZWluYV9saXN0X2FwcGVuZChkYXRhYmFzZXMsIGRhdGFiYXNlKTsKICAgICB9CiAjZWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZWN1cml0eV9vcmlnaW4u
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2VjdXJpdHlfb3JpZ2luLmgKaW5kZXggOTk5
Njk3MmQ3MWI1NjNhYjQyYWI2NDZhMDQ5YWE5MjdiYzkwZWVmYy4uN2FlN2Q0MzBmZGIxNTRhMjc0
OTkwZTczMzdmMjBkYjU0ZTg3NzA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19zZWN1cml0eV9vcmlnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Nl
Y3VyaXR5X29yaWdpbi5oCkBAIC05NSw3ICs5NSw3IEBAIEVBUEkgdWludDMyX3QgICAgICAgICAg
ICAgZXdrX3NlY3VyaXR5X29yaWdpbl9wb3J0X2dldChjb25zdCBFd2tfU2VjdXJpdHlfT3JpZ2lu
CiAgKgogICogQHJldHVybiB0aGUgdXNhZ2UgaW4gYnl0ZXMKICAqLwotRUFQSSB1aW50NjRfdCAg
ICAgICAgICAgICBld2tfc2VjdXJpdHlfb3JpZ2luX3dlYl9kYXRhYmFzZV91c2FnZV9nZXQoY29u
c3QgRXdrX1NlY3VyaXR5X09yaWdpbiAqbyk7CitFQVBJIHVpbnQ2NF90ICAgICAgICAgICAgIGV3
a19zZWN1cml0eV9vcmlnaW5fZGF0YWJhc2VfdXNhZ2VfZ2V0KGNvbnN0IEV3a19TZWN1cml0eV9P
cmlnaW4gKm8pOwogCiAvKioKICAqIFJldHJpZXZlcyB0aGUgcXVvdGEgb2YgYSBkYXRhYmFzZSBm
b3IgYSBzZWN1cml0eSBvcmlnaW4uCkBAIC0xMDcsNyArMTA3LDcgQEAgRUFQSSB1aW50NjRfdCAg
ICAgICAgICAgICBld2tfc2VjdXJpdHlfb3JpZ2luX3dlYl9kYXRhYmFzZV91c2FnZV9nZXQoY29u
c3QgRXdrX1MKICAqCiAgKiBAcmV0dXJuIHRoZSBxdW90YSBpbiBieXRlcyBvciBAYyAwIGlmIHRo
ZXJlIGlzIG5vdCBhIHByb3BlciBzZWN1cml0eSBvcmlnaW4gc2NoZW1lCiAgKi8KLUVBUEkgdWlu
dDY0X3QgICAgICAgICAgICAgZXdrX3NlY3VyaXR5X29yaWdpbl93ZWJfZGF0YWJhc2VfcXVvdGFf
Z2V0KGNvbnN0IEV3a19TZWN1cml0eV9PcmlnaW4gKm8pOworRUFQSSB1aW50NjRfdCAgICAgICAg
ICAgICBld2tfc2VjdXJpdHlfb3JpZ2luX2RhdGFiYXNlX3F1b3RhX2dldChjb25zdCBFd2tfU2Vj
dXJpdHlfT3JpZ2luICpvKTsKIAogLyoqCiAgKiBTZXRzIHRoZSBkYXRhYmFzZSB1c2FnZSBxdW90
YSBmb3IgYSBzZWN1cml0eSBvcmlnaW4uCkBAIC0xMTgsNyArMTE4LDcgQEAgRUFQSSB1aW50NjRf
dCAgICAgICAgICAgICBld2tfc2VjdXJpdHlfb3JpZ2luX3dlYl9kYXRhYmFzZV9xdW90YV9nZXQo
Y29uc3QgRXdrX1MKICAqIEBwYXJhbSBvIHNlY3VyaXR5IG9yaWdpbiBvYmplY3QKICAqIEBwYXJh
bSBxdW90YSB0aGUgdXNhZ2UgcXVvdGEgaW4gYnl0ZXMKICAqLwotRUFQSSB2b2lkICAgICAgICAg
ICAgICAgICBld2tfc2VjdXJpdHlfb3JpZ2luX3dlYl9kYXRhYmFzZV9xdW90YV9zZXQoY29uc3Qg
RXdrX1NlY3VyaXR5X09yaWdpbiAqbywgdWludDY0X3QgcXVvdGEpOworRUFQSSB2b2lkICAgICAg
ICAgICAgICAgICBld2tfc2VjdXJpdHlfb3JpZ2luX2RhdGFiYXNlX3F1b3RhX3NldChjb25zdCBF
d2tfU2VjdXJpdHlfT3JpZ2luICpvLCB1aW50NjRfdCBxdW90YSk7CiAKIC8qKgogICogU2V0cyB0
aGUgYXBwbGljYXRpb24gY2FjaGUgdXNhZ2UgcXVvdGEgZm9yIGEgc2VjdXJpdHkgb3JpZ2luLgpA
QCAtMTM4LDggKzEzOCw4IEBAIEVBUEkgdm9pZCAgICAgICAgICAgICAgICAgZXdrX3NlY3VyaXR5
X29yaWdpbl9hcHBsaWNhdGlvbl9jYWNoZV9jbGVhcihjb25zdCBFd2tfCiAvKioKICAqIFJldHVy
biB0aGUgbGlzdCBvZiB3ZWIgZGF0YWJhc2VzIGluIHRoZSBzZWN1cml0eSBvcmlnaW4uCiAgKgot
ICogRWFjaCBpdGVtIG9mIHRoZSBsaXN0IHNob3VsZCBiZSByZWxlYXNlIHVzaW5nIGV3a193ZWJf
ZGF0YWJhc2VfZnJlZSgpIG9yCi0gKiB1c2UgZXdrX3dlYl9kYXRhYmFzZV9saXN0X2ZyZWUoKSBh
cyBjb252ZW5pZW5jZS4KKyAqIEVhY2ggaXRlbSBvZiB0aGUgbGlzdCBzaG91bGQgYmUgcmVsZWFz
ZSB1c2luZyBld2tfZGF0YWJhc2VfZnJlZSgpIG9yCisgKiB1c2UgZXdrX2RhdGFiYXNlX2xpc3Rf
ZnJlZSgpIGFzIGNvbnZlbmllbmNlLgogICoKICAqIFRoaXMgZnVuY3Rpb24gd29uJ3Qgd29yayBp
ZiBXZWIgU1FMIERhdGFiYXNlIHdhcyBub3QgZW5hYmxlZCB3aGVuCiAgKiBidWlsZGluZyBXZWJL
aXQgYW5kIHdpbGwganVzdCByZXR1cm4gQGMgTlVMTC4KQEAgLTE0OCwxMCArMTQ4LDEwIEBAIEVB
UEkgdm9pZCAgICAgICAgICAgICAgICAgZXdrX3NlY3VyaXR5X29yaWdpbl9hcHBsaWNhdGlvbl9j
YWNoZV9jbGVhcihjb25zdCBFd2tfCiAgKgogICogQHJldHVybiBsaXN0IG9mIHdlYiBkYXRhYmFz
ZXMgaW4gdGhlIHNlY3VyaXR5IG9yaWdpbiBvciBAYyBOVUxMIGlmIHRoZXJlIGlzIG5vdCBhIHBy
b3BlciBzZWN1cml0eSBvcmlnaW4gc2NoZW1lCiAgKgotICogQHNlZSBld2tfd2ViX2RhdGFiYXNl
X2ZyZWUoKQotICogQHNlZSBld2tfd2ViX2RhdGFiYXNlX2xpc3RfZnJlZSgpCisgKiBAc2VlIGV3
a19kYXRhYmFzZV9mcmVlKCkKKyAqIEBzZWUgZXdrX2RhdGFiYXNlX2xpc3RfZnJlZSgpCiAgKi8K
LUVBUEkgRWluYV9MaXN0ICAgICAgICAgICAqZXdrX3NlY3VyaXR5X29yaWdpbl93ZWJfZGF0YWJh
c2VfZ2V0X2FsbChjb25zdCBFd2tfU2VjdXJpdHlfT3JpZ2luICpvKTsKK0VBUEkgRWluYV9MaXN0
ICAgICAgICAgICAqZXdrX3NlY3VyaXR5X29yaWdpbl9kYXRhYmFzZV9nZXRfYWxsKGNvbnN0IEV3
a19TZWN1cml0eV9PcmlnaW4gKm8pOwogCiAvKioKICAqIFJlbGVhc2UgYWxsIHJlc291cmNlcyBh
bGxvY2F0ZWQgYnkgYSBzZWN1cml0eSBvcmlnaW4gb2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19zZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3NldHRpbmdzLmNwcAppbmRleCBmMTA1MjNkYzhlOWM1ZGI0NzVjMmNjYjNhYjJlYzQwZGVh
MjBiMGIzLi5kYzRkYjZhYWU5ZTUwZTBjMTYwZWFiODVmY2YxY2JhNmJjYmM3N2YyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcApAQCAtOTgsMTIgKzk4LDEyIEBAIHN0YXRp
YyBXVEY6OlN0cmluZyBfZXdrX3NldHRpbmdzX3dlYmtpdF9vc192ZXJzaW9uX2dldCgpCiAgICAg
cmV0dXJuIHVhT3NWZXJzaW9uOwogfQogCi11aW50NjRfdCBld2tfc2V0dGluZ3Nfd2ViX2RhdGFi
YXNlX2RlZmF1bHRfcXVvdGFfZ2V0KCkKK3VpbnQ2NF90IGV3a19zZXR0aW5nc19kYXRhYmFzZV9k
ZWZhdWx0X3F1b3RhX2dldCgpCiB7CiAgICAgcmV0dXJuIHNfd2ViRGF0YWJhc2VRdW90YTsKIH0K
IAotdm9pZCBld2tfc2V0dGluZ3Nfd2ViX2RhdGFiYXNlX2RlZmF1bHRfcXVvdGFfc2V0KHVpbnQ2
NF90IG1heGltdW1TaXplKQordm9pZCBld2tfc2V0dGluZ3NfZGF0YWJhc2VfZGVmYXVsdF9xdW90
YV9zZXQodWludDY0X3QgbWF4aW11bVNpemUpCiB7CiAgICAgc193ZWJEYXRhYmFzZVF1b3RhID0g
bWF4aW11bVNpemU7CiB9CkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBld2tfc2V0dGluZ3NfbG9j
YWxfc3RvcmFnZV9kYXRhYmFzZV9vcmlnaW5fY2xlYXIoY29uc3QgY2hhciogdXJsKQogICAgIFdl
YkNvcmU6OlN0b3JhZ2VUcmFja2VyOjp0cmFja2VyKCkuZGVsZXRlT3JpZ2luKFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGUoa3VybCkuZ2V0KCkpOwogfQogCi12b2lkIGV3a19zZXR0aW5n
c193ZWJfZGF0YWJhc2VfcGF0aF9zZXQoY29uc3QgY2hhciogcGF0aCkKK3ZvaWQgZXdrX3NldHRp
bmdzX2RhdGFiYXNlX3BhdGhfc2V0KGNvbnN0IGNoYXIqIHBhdGgpCiB7CiAjaWYgRU5BQkxFKFNR
TF9EQVRBQkFTRSkKICAgICBXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5zZXRE
YXRhYmFzZURpcmVjdG9yeVBhdGgoV1RGOjpTdHJpbmc6OmZyb21VVEY4KHBhdGgpKTsKQEAgLTE0
MCw3ICsxNDAsNyBAQCB2b2lkIGV3a19zZXR0aW5nc193ZWJfZGF0YWJhc2VfcGF0aF9zZXQoY29u
c3QgY2hhciogcGF0aCkKICNlbmRpZgogfQogCi1jb25zdCBjaGFyKiBld2tfc2V0dGluZ3Nfd2Vi
X2RhdGFiYXNlX3BhdGhfZ2V0KHZvaWQpCitjb25zdCBjaGFyKiBld2tfc2V0dGluZ3NfZGF0YWJh
c2VfcGF0aF9nZXQodm9pZCkKIHsKICAgICByZXR1cm4gc193ZWJEYXRhYmFzZVBhdGg7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmggYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmgKaW5kZXggZmI3OTI3OWYwYzAyNDY2ZjU0YWUz
ODUwZjFlNmNmM2VjOGIzOTlhMS4uOTRkNmNiMGY0ZDkxMWJlYmQ3ZWNkMjQzZDg5N2Y0NWFkMjY4
YjViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZXR0aW5ncy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuaApAQCAtNDIsNyArNDIsNyBA
QCBleHRlcm4gIkMiIHsKICAqCiAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGRlZmF1bHQgZGF0YWJh
c2UgcXVvdGEgaW4gYnl0ZXMKICAqLwotRUFQSSB1aW50NjRfdCAgICAgICAgIGV3a19zZXR0aW5n
c193ZWJfZGF0YWJhc2VfZGVmYXVsdF9xdW90YV9nZXQodm9pZCk7CitFQVBJIHVpbnQ2NF90ICAg
ICAgICAgZXdrX3NldHRpbmdzX2RhdGFiYXNlX2RlZmF1bHRfcXVvdGFfZ2V0KHZvaWQpOwogCiAv
KioKICAqIFNldHMgdGhlIGRlZmF1bHQgbWF4aW11bSBzaXplIChpbiBieXRlcykgYW4gSFRNTDUg
V2ViIERhdGFiYXNlIGRhdGFiYXNlIGNhbiBoYXZlLgpAQCAtNTEsNyArNTEsNyBAQCBFQVBJIHVp
bnQ2NF90ICAgICAgICAgZXdrX3NldHRpbmdzX3dlYl9kYXRhYmFzZV9kZWZhdWx0X3F1b3RhX2dl
dCh2b2lkKTsKICAqCiAgKiBAcGFyYW0gbWF4aW11bV9zaXplIHRoZSBuZXcgbWF4aW11bSBzaXpl
IGEgZGF0YWJhc2UgaXMgYWxsb3dlZAogICovCi1FQVBJIHZvaWQgICAgICAgICAgICAgZXdrX3Nl
dHRpbmdzX3dlYl9kYXRhYmFzZV9kZWZhdWx0X3F1b3RhX3NldCh1aW50NjRfdCBtYXhpbXVtX3Np
emUpOworRUFQSSB2b2lkICAgICAgICAgICAgIGV3a19zZXR0aW5nc19kYXRhYmFzZV9kZWZhdWx0
X3F1b3RhX3NldCh1aW50NjRfdCBtYXhpbXVtX3NpemUpOwogCiAvKioKICAqIFNldHMgdGhlIGN1
cnJlbnQgcGF0aCB0byB0aGUgZGlyZWN0b3J5IFdlYktpdCB3aWxsIHdyaXRlIFdlYgpAQCAtNjEs
NyArNjEsNyBAQCBFQVBJIHZvaWQgICAgICAgICAgICAgZXdrX3NldHRpbmdzX3dlYl9kYXRhYmFz
ZV9kZWZhdWx0X3F1b3RhX3NldCh1aW50NjRfdCBtYXhpbQogICoKICAqIEBwYXJhbSBwYXRoIHRo
ZSBuZXcgZGF0YWJhc2UgZGlyZWN0b3J5IHBhdGgKICAqLwotRUFQSSB2b2lkICAgICAgICAgICAg
IGV3a19zZXR0aW5nc193ZWJfZGF0YWJhc2VfcGF0aF9zZXQoY29uc3QgY2hhciAqcGF0aCk7CitF
QVBJIHZvaWQgICAgICAgICAgICAgZXdrX3NldHRpbmdzX2RhdGFiYXNlX3BhdGhfc2V0KGNvbnN0
IGNoYXIgKnBhdGgpOwogCiAvKioKICAqIFNldHMgdGhlIGN1cnJlbnQgcGF0aCB0byB0aGUgZGly
ZWN0b3J5IHdoZXJlIFdlYktpdCB3aWxsIHdyaXRlIHRoZQpAQCAtMTIxLDcgKzEyMSw3IEBAIEVB
UEkgdm9pZCBld2tfc2V0dGluZ3NfbG9jYWxfc3RvcmFnZV9kYXRhYmFzZV9vcmlnaW5fY2xlYXIo
Y29uc3QgY2hhciAqdXJsKTsKICAqCiAgKiBAcmV0dXJuIGRhdGFiYXNlIHBhdGggb3IgQGMgTlVM
TCBpZiBub25lIG9yIHdlYiBkYXRhYmFzZSBpcyBub3Qgc3VwcG9ydGVkCiAgKi8KLUVBUEkgY29u
c3QgY2hhciAgICAgICpld2tfc2V0dGluZ3Nfd2ViX2RhdGFiYXNlX3BhdGhfZ2V0KHZvaWQpOwor
RUFQSSBjb25zdCBjaGFyICAgICAgKmV3a19zZXR0aW5nc19kYXRhYmFzZV9wYXRoX2dldCh2b2lk
KTsKIAogLyoqCiAgKiBTZXRzIGRpcmVjdG9yeSB3aGVyZSB0byBzdG9yZSBpY29uIGRhdGFiYXNl
LCBvcGVuaW5nIG9yIGNsb3NpbmcgZGF0YWJhc2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNw
cAppbmRleCBlZjM1NjRkNmNkZTgxNzZmNTM0YzI0NGIxNWQ4NDEzOGRlN2JiMzAyLi4zYTQzNDVk
ZGQ2YWQxOWNlY2QwNjc3YTM0MmM0M2RiMTZmYWRjNTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5jcHAKQEAgLTQ0NDUsNyArNDQ0NSw3IEBAIHZvaWQgZXdrX3ZpZXdfc2V0dGluZ19zaG91
bGRfZGlzcGxheV90ZXh0X2Rlc2NyaXB0aW9uc19zZXQoRXZhc19PYmplY3QgKmV3a1ZpZXcsCiAj
ZW5kaWYKIH0KIAotdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coY29uc3QgRXZhc19P
YmplY3QqIGV3a1ZpZXcpCit2b2lkIGV3a192aWV3X2luc3BlY3Rvcl9zaG93KGNvbnN0IEV2YXNf
T2JqZWN0KiBld2tWaWV3KQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRVdLX1ZJRVdf
U0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOwpAQCAtNDQ1NSw3ICs0NDU1LDcg
QEAgdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coY29uc3QgRXZhc19PYmplY3QqIGV3
a1ZpZXcpCiAjZW5kaWYKIH0KIAotdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX2Nsb3NlKGNv
bnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQordm9pZCBld2tfdmlld19pbnNwZWN0b3JfY2xvc2Uo
Y29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAg
ICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CkBAIC00NDY1
LDcgKzQ0NjUsNyBAQCB2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3JfY2xvc2UoY29uc3QgRXZh
c19PYmplY3QqIGV3a1ZpZXcpCiAjZW5kaWYKIH0KIAotRXZhc19PYmplY3QqIGV3a192aWV3X3dl
Yl9pbnNwZWN0b3Jfdmlld19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCitFdmFzX09i
amVjdCogZXdrX3ZpZXdfaW5zcGVjdG9yX3ZpZXdfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3KQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JF
VFVSTihld2tWaWV3LCBzbWFydERhdGEsIDApOwpAQCAtNDQ3Nyw3ICs0NDc3LDcgQEAgRXZhc19P
YmplY3QqIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19nZXQoY29uc3QgRXZhc19PYmplY3Qq
IGV3a1ZpZXcpCiAjZW5kaWYKIH0KIAotdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX3ZpZXdf
c2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogaW5zcGVjdG9yVmlldykKK3Zv
aWQgZXdrX3ZpZXdfaW5zcGVjdG9yX3ZpZXdfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFz
X09iamVjdCogaW5zcGVjdG9yVmlldykKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEVX
S19WSUVXX1NEX0dFVChld2tWaWV3LCBzbWFydERhdGEpOwpAQCAtNDUwMSw3ICs0NTAxLDcgQEAg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QqIGV3a192aWV3X2FjY2VsZXJhdGVkX2NvbXBvc2l0
aW5nX2NvbnRleHRfZ2V0KEV2YXNfT2IKIH0KICNlbmRpZgogCi1FaW5hX0Jvb2wgZXdrX3ZpZXdf
c2V0dGluZ193ZWJfYXVkaW9fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQorRWluYV9C
b29sIGV3a192aWV3X3NldHRpbmdfYXVkaW9fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3
KQogewogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVS
Tihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKQEAgLTQ1MTMsNyArNDUxMyw3IEBAIEVpbmFf
Qm9vbCBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3
a1ZpZXcpCiAjZW5kaWYKIH0KIAotRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfd2ViX2F1ZGlv
X3NldChFdmFzX09iamVjdCogZXdrVmlldywgRWluYV9Cb29sIGVuYWJsZSkKK0VpbmFfQm9vbCBl
d2tfdmlld19zZXR0aW5nX2F1ZGlvX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRWluYV9Cb29s
IGVuYWJsZSkKIHsKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIEVXS19WSUVXX1NEX0dFVF9P
Ul9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
dy5oCmluZGV4IDdhOGI1ZDczYjBjMTUwNDcwNmNjYWJkMDMyMDBiYTVlMTQ3ZjdiYWIuLjg2ZmE2
YzU2OWQ4OWRjNDMyZmIyM2Q1OTc2NGM0OGMxZGIzZjZkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5oCkBAIC0yNjg5LDcgKzI2ODksNyBAQCBFQVBJIHZvaWQgZXdrX3ZpZXdfc2V0dGluZ19z
aG91bGRfZGlzcGxheV90ZXh0X2Rlc2NyaXB0aW9uc19zZXQoRXZhc19PYmplY3QgKm8sCiAgKiBA
cmV0dXJuIEBjIEVJTkFfVFJVRSBpZiB3ZWIgYXVkaW8gaXMgZW5hYmxlZCwKICAqICAgICAgICAg
QGMgRUlOQV9GQUxTRSBpZiBub3Qgb3Igb24gZmFpbHVyZQogICovCi1FQVBJIEVpbmFfQm9vbCAg
ICBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwor
RUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfc2V0dGluZ19hdWRpb19nZXQoY29uc3QgRXZhc19P
YmplY3QgKm8pOwogCiAvKioKICAqIEVuYWJsZXMvZGlzYWJsZXMgdGhlIHdlYiBhdWRpbyBmZWF0
dXJlIG9mIEhUTUw1LgpAQCAtMjcwMCw3ICsyNzAwLDcgQEAgRUFQSSBFaW5hX0Jvb2wgICAgZXdr
X3ZpZXdfc2V0dGluZ193ZWJfYXVkaW9fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKICAqCiAg
KiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24gZmFp
bHVyZQogICovCi1FQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19z
ZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBlbmFibGUpOworRUFQSSBFaW5hX0Jvb2wgICAg
ZXdrX3ZpZXdfc2V0dGluZ19hdWRpb19zZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBlbmFi
bGUpOwogCiAvKioKICAqIFNob3cgdGhlIHdlYiBpbnNwZWN0b3IgdG8gZGVidWcgYSB3ZWIgcGFn
ZS4KQEAgLTI3MDgsNyArMjcwOCw3IEBAIEVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3NldHRp
bmdfd2ViX2F1ZGlvX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIGVuYWJsCiAgKiBUaGUg
Zm9sbG93aW5nIHNpZ25hbHMgYXJlIGVtaWl0ZWQuCiAgKiAiaW5zcGVjdG9yLHZpZXcsY3JlYXRl
IiBhbmQgImluc3BlY3Rvcix2aWV3LGNsb3NlIgogICogVGhlIGZpcnN0IG9uZSB3aWxsIGJlIGNh
bGxlZCB0byByZXF1ZXN0IHRoZSB2aWV3IGZvciB3ZWIgaW5zcGVjdG9yIG9uIHZpZXcgdGhhdCB3
aWxsIGJlIGluc3BlY3RlZC4KLSAqIFRoaXMgY2FsbGJhY2sgc2hvdWxkIGNyZWF0ZSB0aGUgdmll
dyBmb3Igd2ViIGluc3BlY3RvciBhbmQgc2V0IHRoZSB2aWV3IHdpdGggZXdrX3ZpZXdfd2ViX2lu
c3BlY3Rvcl92aWV3X3NldCgpLgorICogVGhpcyBjYWxsYmFjayBzaG91bGQgY3JlYXRlIHRoZSB2
aWV3IGZvciB3ZWIgaW5zcGVjdG9yIGFuZCBzZXQgdGhlIHZpZXcgd2l0aCBld2tfdmlld19pbnNw
ZWN0b3Jfdmlld19zZXQoKS4KICAqIFRoZSBzZWNvbmQgb25lIHdpbGwgYmUgY2FsbGVkIHRvIGNs
b3NlIHRoZSB2aWV3IGZvciB3ZWIgaW5zcGVjdG9yIG9uIHZpZXcgaGF2aW5nIHRoZSB3ZWIgaW5z
cGVjdG9yIGFmdGVyIGRpc2Nvbm5lY3RpbmcgZnJvbnRlbmQKICAqIFRoaXMgY2FsbGJhY2sgc2hv
dWxkIHJlbW92ZSB0aGUgdmlldyBmb3Igd2ViIGluc3BlY3Rvci4KICAqCkBAIC0yNzE3LDIwICsy
NzE3LDIwIEBAIEVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfd2ViX2F1ZGlvX3Nl
dChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIGVuYWJsCiAgKgogICogQHBhcmFtIG8gVGhlIHZp
ZXcgdG8gc2hvdyB0aGUgd2ViIGluc3BlY3Rvci4KICAqCi0gKiBAc2VlIGV3a192aWV3X3dlYl9p
bnNwZWN0b3JfY2xvc2UoKQotICogQHNlZSBld2tfdmlld193ZWJfaW5zcGVjdG9yX3ZpZXdfc2V0
KCkKKyAqIEBzZWUgZXdrX3ZpZXdfaW5zcGVjdG9yX2Nsb3NlKCkKKyAqIEBzZWUgZXdrX3ZpZXdf
aW5zcGVjdG9yX3ZpZXdfc2V0KCkKICAqLwotRUFQSSB2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0
b3Jfc2hvdyhjb25zdCBFdmFzX09iamVjdCAqbyk7CitFQVBJIHZvaWQgZXdrX3ZpZXdfaW5zcGVj
dG9yX3Nob3coY29uc3QgRXZhc19PYmplY3QgKm8pOwogCiAvKioKICAqIENsb3NlIHRoZSB3ZWIg
aW5zcGVjdG9yIHZpZXcKICAqCiAgKiBAcGFyYW0gbyBUaGUgdmlldyB0byBjbG9zZSB0aGUgd2Vi
IGluc3BlY3Rvci4KICAqCi0gKiBAc2VlIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfc2hvdygpCi0g
KiBAc2VlIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19nZXQoKQorICogQHNlZSBld2tfdmll
d19pbnNwZWN0b3Jfc2hvdygpCisgKiBAc2VlIGV3a192aWV3X2luc3BlY3Rvcl92aWV3X2dldCgp
CiAgKi8KLUVBUEkgdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX2Nsb3NlKGNvbnN0IEV2YXNf
T2JqZWN0ICpvKTsKK0VBUEkgdm9pZCBld2tfdmlld19pbnNwZWN0b3JfY2xvc2UoY29uc3QgRXZh
c19PYmplY3QgKm8pOwogCiAvKioKICAqIEdldCB0aGUgdmlldyBvZiB3ZWIgaW5zcGVjdG9yLgpA
QCAtMjczOSw3ICsyNzM5LDcgQEAgRUFQSSB2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3JfY2xv
c2UoY29uc3QgRXZhc19PYmplY3QgKm8pOwogICoKICAqIEByZXR1cm4gdmlldyBvYmplY3Qgb24g
c3VjY2VzcyBvciBAYyBOVUxMIG9uIGZhaWx1cmUKICAqLwotRUFQSSBFdmFzX09iamVjdCogZXdr
X3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CitFQVBJ
IEV2YXNfT2JqZWN0KiBld2tfdmlld19pbnNwZWN0b3Jfdmlld19nZXQoY29uc3QgRXZhc19PYmpl
Y3QgKm8pOwogCiAvKioKICAqIFNldCB0aGUgdmlldyBvZiB3ZWIgaW5zcGVjdG9yLgpAQCAtMjc0
Nyw3ICsyNzQ3LDcgQEAgRUFQSSBFdmFzX09iamVjdCogZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92
aWV3X2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CiAgKiBAcGFyYW0gbyBUaGUgdmlldyB0aGF0
IGlzIGluc3BlY3RlZC4KICAqIEBwYXJhbSBpbnNwZWN0b3JfdmlldyBUaGUgdmlldyBvZiB3ZWIg
aW5zcGVjdG9yLgogICovCi1FQVBJIHZvaWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X3Nl
dChFdmFzX09iamVjdCAqbywgRXZhc19PYmplY3QgKmluc3BlY3Rvcl92aWV3KTsKK0VBUEkgdm9p
ZCBld2tfdmlld19pbnNwZWN0b3Jfdmlld19zZXQoRXZhc19PYmplY3QgKm8sIEV2YXNfT2JqZWN0
ICppbnNwZWN0b3Jfdmlldyk7CiAKIC8qKgogICogRW5hYmxlcy9kaXNhYmxlcyB0aGUgZnVsbHNj
cmVlbiBtb2RlIGJ5IGphdmFzY3JpcHQgZnVsbHNjcmVlbiBBUEkuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3dlYl9kYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3dlYl9kYXRhYmFzZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGMxNWNhZDY2MGY0ZTc1ZmJiMWJlOGEyNDNlYjBmOGIyMWI1NWFmMDkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a193ZWJfZGF0YWJhc2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTgyICswLDAgQEAKLS8qCi0g
ICAgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uCi0KLSAgICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAotICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgImV3a193ZWJfZGF0YWJhc2UuaCIKLQotI2luY2x1ZGUgIkRhdGFi
YXNlVHJhY2tlci5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiZXdr
X3NlY3VyaXR5X29yaWdpbi5oIgotI2luY2x1ZGUgImV3a19zZWN1cml0eV9vcmlnaW5fcHJpdmF0
ZS5oIgotI2luY2x1ZGUgImV3a193ZWJfZGF0YWJhc2VfcHJpdmF0ZS5oIgotI2luY2x1ZGUgPEVp
bmEuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFt
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLXN0cnVjdCBfRXdrX1dlYl9E
YXRhYmFzZSB7Ci0gICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHNlY3Vy
aXR5T3JpZ2luOwotICAgIFdURjo6U3RyaW5nIGNvcmVOYW1lOwotICAgIGNvbnN0IGNoYXIqIGRp
c3BsYXlOYW1lOwotICAgIGNvbnN0IGNoYXIqIGZpbGVuYW1lOwotICAgIGNvbnN0IGNoYXIqIG5h
bWU7Ci19OwotCi1jb25zdCBjaGFyKiBld2tfd2ViX2RhdGFiYXNlX2Rpc3BsYXlfbmFtZV9nZXQo
RXdrX1dlYl9EYXRhYmFzZSogZGF0YWJhc2UpCi17Ci0jaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkK
LSAgICBpZiAoZGF0YWJhc2UtPmRpc3BsYXlOYW1lKQotICAgICAgICByZXR1cm4gZGF0YWJhc2Ut
PmRpc3BsYXlOYW1lOwotCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGRh
dGFiYXNlLT5zZWN1cml0eU9yaWdpbi5nZXQoKTsKLSAgICBXZWJDb3JlOjpEYXRhYmFzZURldGFp
bHMgZGV0YWlscyA9IFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLmRldGFpbHNG
b3JOYW1lQW5kT3JpZ2luKGRhdGFiYXNlLT5uYW1lLCBvcmlnaW4pOwotICAgIGRhdGFiYXNlLT5k
aXNwbGF5TmFtZSA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKGRldGFpbHMuZGlzcGxheU5hbWUoKS51
dGY4KCkuZGF0YSgpKTsKLQotICAgIHJldHVybiBkYXRhYmFzZS0+ZGlzcGxheU5hbWU7Ci0jZWxz
ZQotICAgIFVOVVNFRF9QQVJBTShkYXRhYmFzZSk7Ci0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKLX0K
LQotdWludDY0X3QgZXdrX3dlYl9kYXRhYmFzZV9leHBlY3RlZF9zaXplX2dldChjb25zdCBFd2tf
V2ViX0RhdGFiYXNlKiBkYXRhYmFzZSkKLXsKLSNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAg
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSBkYXRhYmFzZS0+c2VjdXJpdHlPcmln
aW4uZ2V0KCk7Ci0gICAgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzIGRldGFpbHMgPSBXZWJDb3Jl
OjpEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5kZXRhaWxzRm9yTmFtZUFuZE9yaWdpbihkYXRh
YmFzZS0+bmFtZSwgb3JpZ2luKTsKLSAgICByZXR1cm4gZGV0YWlscy5leHBlY3RlZFVzYWdlKCk7
Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShkYXRhYmFzZSk7Ci0gICAgcmV0dXJuIDA7Ci0jZW5k
aWYKLX0KLQotY29uc3QgY2hhciogZXdrX3dlYl9kYXRhYmFzZV9maWxlbmFtZV9nZXQoRXdrX1dl
Yl9EYXRhYmFzZSogZGF0YWJhc2UpCi17Ci0jaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBp
ZiAoZGF0YWJhc2UtPmZpbGVuYW1lKQotICAgICAgICByZXR1cm4gZGF0YWJhc2UtPmZpbGVuYW1l
OwotCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGRhdGFiYXNlLT5zZWN1
cml0eU9yaWdpbi5nZXQoKTsKLSAgICBXVEY6OlN0cmluZyBwYXRoID0gV2ViQ29yZTo6RGF0YWJh
c2VUcmFja2VyOjp0cmFja2VyKCkuZnVsbFBhdGhGb3JEYXRhYmFzZShvcmlnaW4sIGRhdGFiYXNl
LT5jb3JlTmFtZSk7Ci0gICAgZGF0YWJhc2UtPmZpbGVuYW1lID0gZWluYV9zdHJpbmdzaGFyZV9h
ZGQocGF0aC51dGY4KCkuZGF0YSgpKTsKLQotICAgIHJldHVybiBkYXRhYmFzZS0+ZmlsZW5hbWU7
Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShkYXRhYmFzZSk7Ci0gICAgcmV0dXJuIDA7Ci0jZW5k
aWYKLX0KLQotY29uc3QgY2hhciogZXdrX3dlYl9kYXRhYmFzZV9uYW1lX2dldChFd2tfV2ViX0Rh
dGFiYXNlKiBkYXRhYmFzZSkKLXsKLSNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgIGlmIChk
YXRhYmFzZS0+bmFtZSkKLSAgICAgICAgcmV0dXJuIGRhdGFiYXNlLT5uYW1lOwotCi0gICAgZGF0
YWJhc2UtPm5hbWUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZChkYXRhYmFzZS0+Y29yZU5hbWUudXRm
OCgpLmRhdGEoKSk7Ci0KLSAgICByZXR1cm4gZGF0YWJhc2UtPm5hbWU7Ci0jZWxzZQotICAgIFVO
VVNFRF9QQVJBTShkYXRhYmFzZSk7Ci0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKLX0KLQotRXdrX1Nl
Y3VyaXR5X09yaWdpbiogZXdrX3dlYl9kYXRhYmFzZV9zZWN1cml0eV9vcmlnaW5fZ2V0KGNvbnN0
IEV3a19XZWJfRGF0YWJhc2UqIGRhdGFiYXNlKQotewotICAgIHJldHVybiBld2tfc2VjdXJpdHlf
b3JpZ2luX25ldyhkYXRhYmFzZS0+c2VjdXJpdHlPcmlnaW4uZ2V0KCkpOwotfQotCi11aW50NjRf
dCBld2tfd2ViX2RhdGFiYXNlX3NpemVfZ2V0KGNvbnN0IEV3a19XZWJfRGF0YWJhc2UqIGRhdGFi
YXNlKQotewotI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4qIG9yaWdpbiA9IGRhdGFiYXNlLT5zZWN1cml0eU9yaWdpbi5nZXQoKTsKLSAgICBXZWJD
b3JlOjpEYXRhYmFzZURldGFpbHMgZGV0YWlscyA9IFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6
dHJhY2tlcigpLmRldGFpbHNGb3JOYW1lQW5kT3JpZ2luKGRhdGFiYXNlLT5uYW1lLCBvcmlnaW4p
OwotICAgIHJldHVybiBkZXRhaWxzLmN1cnJlbnRVc2FnZSgpOwotI2Vsc2UKLSAgICBVTlVTRURf
UEFSQU0oZGF0YWJhc2UpOwotICAgIHJldHVybiAwOwotI2VuZGlmCi19Ci0KLXZvaWQgZXdrX3dl
Yl9kYXRhYmFzZV9yZW1vdmUoRXdrX1dlYl9EYXRhYmFzZSogZGF0YWJhc2UpCi17Ci0jaWYgRU5B
QkxFKFNRTF9EQVRBQkFTRSkKLSAgICBXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIo
KS5kZWxldGVEYXRhYmFzZShkYXRhYmFzZS0+c2VjdXJpdHlPcmlnaW4uZ2V0KCksIGRhdGFiYXNl
LT5jb3JlTmFtZSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShkYXRhYmFzZSk7Ci0jZW5kaWYK
LX0KLQotdm9pZCBld2tfd2ViX2RhdGFiYXNlX3JlbW92ZV9hbGwodm9pZCkKLXsKLSNpZiBFTkFC
TEUoU1FMX0RBVEFCQVNFKQotICAgIFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigp
LmRlbGV0ZUFsbERhdGFiYXNlcygpOwotI2VuZGlmCi19Ci0KLXZvaWQgZXdrX3dlYl9kYXRhYmFz
ZV9mcmVlKEV3a19XZWJfRGF0YWJhc2UqIGRhdGFiYXNlKQotewotI2lmIEVOQUJMRShTUUxfREFU
QUJBU0UpCi0gICAgZWluYV9zdHJpbmdzaGFyZV9kZWwoZGF0YWJhc2UtPmRpc3BsYXlOYW1lKTsK
LSAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChkYXRhYmFzZS0+ZmlsZW5hbWUpOwotICAgIGVpbmFf
c3RyaW5nc2hhcmVfZGVsKGRhdGFiYXNlLT5uYW1lKTsKLQotICAgIGRlbGV0ZSBkYXRhYmFzZTsK
LSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGRhdGFiYXNlKTsKLSNlbmRpZgotfQotCi12b2lkIGV3
a193ZWJfZGF0YWJhc2VfbGlzdF9mcmVlKEVpbmFfTGlzdCogZGF0YWJhc2VMaXN0KQotewotICAg
IHZvaWQqIGRhdGFiYXNlOwotICAgIEVJTkFfTElTVF9GUkVFKGRhdGFiYXNlTGlzdCwgZGF0YWJh
c2UpCi0gICAgICAgIGV3a193ZWJfZGF0YWJhc2VfZnJlZShzdGF0aWNfY2FzdDxFd2tfV2ViX0Rh
dGFiYXNlKj4oZGF0YWJhc2UpKTsKLX0KLQotLyoqCi0gKiBAaW50ZXJuYWwKLSAqIENyZWF0ZXMg
YSB3cmFwcGVyIHJlcHJlc2VudGluZyBhIFdlYiBEYXRhYmFzZS4KLSAqCi0gKiBAcGFyYW0gY29y
ZU9yaWdpbiBXZWJDb3JlIFNlY3VyaXR5IE9yaWdpbiBvYmplY3QKLSAqIEBwYXJhbSBjb3JlTmFt
ZSBXZWIgRGF0YWJhc2UgbmFtZQotICoKLSAqIEByZXR1cm4gYSB3cmFwcGVyIGZvciBtYW5pcHVs
YXRpbmcgYSBXZWIgRGF0YWJhc2UuIEl0IHNob3VsZCBiZSBmcmVlZAotICogYnkgZXdrX3dlYl9k
YXRhYmFzZV9mcmVlKCkuCi0gKi8KLUV3a19XZWJfRGF0YWJhc2UqIGV3a193ZWJfZGF0YWJhc2Vf
bmV3KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiBjb3JlT3JpZ2luLCBjb25zdCBXVEY6OlN0cmlu
ZyYgY29yZU5hbWUpCi17Ci0jaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBFd2tfV2ViX0Rh
dGFiYXNlKiBkYXRhYmFzZSA9IG5ldyBFd2tfV2ViX0RhdGFiYXNlOwotCi0gICAgZGF0YWJhc2Ut
PnNlY3VyaXR5T3JpZ2luID0gY29yZU9yaWdpbjsKLSAgICBkYXRhYmFzZS0+Y29yZU5hbWUgPSBj
b3JlTmFtZTsKLSAgICBkYXRhYmFzZS0+ZGlzcGxheU5hbWUgPSAwOwotICAgIGRhdGFiYXNlLT5m
aWxlbmFtZSA9IDA7Ci0gICAgZGF0YWJhc2UtPm5hbWUgPSAwOwotCi0gICAgcmV0dXJuIGRhdGFi
YXNlOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oY29yZU9yaWdpbik7Ci0gICAgVU5VU0VEX1BB
UkFNKGNvcmVOYW1lKTsKLSAgICByZXR1cm4gMDsKLSNlbmRpZgotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a193ZWJfZGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfd2ViX2RhdGFiYXNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdi
YWE1NGYzNGRmNzAyNmE3Mjk1ZjE2ZGU4MTMzNWExNWQxNTdhMjAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a193
ZWJfZGF0YWJhc2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDEzNiArMCwwIEBACi0vKgotICAgIENv
cHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgotCi0gICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot
Ci0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
LSAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSovCi0KLS8qKgotICogQGZpbGUgICAg
ZXdrX3dlYl9kYXRhYmFzZS5oCi0gKiBAYnJpZWYgICBXZWIgRGF0YWJhc2UgQVBJLgotICoKLSAq
IFRoaXMgQVBJIHByb3ZpZGVzIGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgV2ViIERhdGFiYXNlIGNy
ZWF0ZWQgZm9yIGEgc2VjdXJpdHkKLSAqIG9yaWdpbi4gV2ViS2l0IG5lZWRzIHRvIGJlIGNvbXBp
bGVkIHdpdGggV2ViIERhdGFiYXNlIHN1cHBvcnQgaW4gb3JkZXIgdG8gdXNlCi0gKiB0aGlzIEFQ
SS4KLSAqLwotCi0jaWZuZGVmIGV3a193ZWJfZGF0YWJhc2VfaAotI2RlZmluZSBld2tfd2ViX2Rh
dGFiYXNlX2gKLQotI2luY2x1ZGUgImV3a19zZWN1cml0eV9vcmlnaW4uaCIKLQotI2luY2x1ZGUg
PEV2YXMuaD4KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi10
eXBlZGVmIHN0cnVjdCBfRXdrX1dlYl9EYXRhYmFzZSBFd2tfV2ViX0RhdGFiYXNlOwotCi0vKioK
LSAqIFJldHVybnMgdGhlIHVzZXIgZnJpZW5kbHkgbmFtZSBvZiB0aGUgZGF0YWJhc2UuCi0gKgot
ICogSXQgcmV0dXJucyBhIGludGVybmFsIHN0cmluZyB3aGljaCBzaG91bGQgbm90Ci0gKiBiZSBt
b2RpZmllZC4gVGhlIHN0cmluZyBpcyBndWFyYW50ZWVkIHRvIGJlIHN0cmluZ3NoYXJlZC4KLSAq
Ci0gKiBAcGFyYW0gbyB3ZWIgZGF0YWJhc2Ugb2JqZWN0Ci0gKgotICogQHJldHVybiB0aGUgZGF0
YWJhc2UgbmFtZQotICovCi1FQVBJIGNvbnN0IGNoYXIgICpld2tfd2ViX2RhdGFiYXNlX2Rpc3Bs
YXlfbmFtZV9nZXQoRXdrX1dlYl9EYXRhYmFzZSAqbyk7Ci0KLS8qKgotICogUmV0dXJucyB0aGUg
c2l6ZSBvZiB0aGUgZGF0YWJhc2UgZXhwZWN0ZWQgYnkgdGhlIHdlYiBhdXRob3IuCi0gKgotICog
QHBhcmFtIG8gd2ViIGRhdGFiYXNlIG9iamVjdAotICoKLSAqIEByZXR1cm4gZXhwZWN0ZWQgc2l6
ZQotICovCi1FQVBJIHVpbnQ2NF90ICAgICBld2tfd2ViX2RhdGFiYXNlX2V4cGVjdGVkX3NpemVf
Z2V0KGNvbnN0IEV3a19XZWJfRGF0YWJhc2UgKm8pOwotCi0vKioKLSAqIFJldHVybnMgdGhlIGFi
c29sdXRlIHBhdGggdG8gdGhlIGRhdGFiYXNlIGZpbGUuCi0gKgotICogSXQgcmV0dXJucyBhIGlu
dGVybmFsIHN0cmluZyB3aGljaCBzaG91bGQgbm90Ci0gKiBiZSBtb2RpZmllZC4gVGhlIHN0cmlu
ZyBpcyBndWFyYW50ZWVkIHRvIGJlIHN0cmluZ3NoYXJlZC4KLSAqCi0gKiBAcGFyYW0gbyB3ZWIg
ZGF0YWJhc2Ugb2JqZWN0Ci0gKgotICogQHJldHVybiB0aGUgZGF0YWJhc2UgcGF0aAotICovCi1F
QVBJIGNvbnN0IGNoYXIgICpld2tfd2ViX2RhdGFiYXNlX2ZpbGVuYW1lX2dldChFd2tfV2ViX0Rh
dGFiYXNlICpvKTsKLQotLyoqCi0gKiBSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZS4K
LSAqCi0gKiBJdCByZXR1cm5zIGEgaW50ZXJuYWwgc3RyaW5nIHdoaWNoIHNob3VsZCBub3QKLSAq
IGJlIG1vZGlmaWVkLiBUaGUgc3RyaW5nIGlzIGd1YXJhbnRlZWQgdG8gYmUgc3RyaW5nc2hhcmVk
LgotICoKLSAqIEBwYXJhbSBvIHdlYiBkYXRhYmFzZSBvYmplY3QKLSAqCi0gKiBAcmV0dXJuIHRo
ZSBkYXRhYmFzZSBuYW1lCi0gKi8KLUVBUEkgY29uc3QgY2hhciAgKmV3a193ZWJfZGF0YWJhc2Vf
bmFtZV9nZXQoRXdrX1dlYl9EYXRhYmFzZSAqbyk7Ci0KLS8qKgotICogUmV0cmlldmVzIHRoZSBz
ZWN1cml0eSBvcmlnaW4gb2YgdGhlIGRhdGFiYXNlLgotICoKLSAqIFRoZSByZXR1cm5lZCB2YWx1
ZSBzaG91bGQgYmUgZnJlZWQgYnkgZXdrX3NlY3VyaXR5X29yaWdpbl9mcmVlKCkuCi0gKgotICog
QHBhcmFtIG8gd2ViIGRhdGFiYXNlIG9iamVjdAotICoKLSAqIEByZXR1cm4gdGhlIHNlY3VyaXR5
IG9yaWdpbgotICovCi1FQVBJIEV3a19TZWN1cml0eV9PcmlnaW4gKmV3a193ZWJfZGF0YWJhc2Vf
c2VjdXJpdHlfb3JpZ2luX2dldChjb25zdCBFd2tfV2ViX0RhdGFiYXNlICpvKTsKLQotLyoqCi0g
KiBSZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBkYXRhYmFzZS4KLSAqCi0gKiBAcGFyYW0gbyB3ZWIg
ZGF0YWJhc2Ugb2JqZWN0Ci0gKgotICogQHJldHVybiB0aGUgY3VycmVudCBzaXplIG9mIHRoZSBk
YXRhYmFzZQotICovCi1FQVBJIHVpbnQ2NF90ICAgICBld2tfd2ViX2RhdGFiYXNlX3NpemVfZ2V0
KGNvbnN0IEV3a19XZWJfRGF0YWJhc2UgKm8pOwotCi0vKioKLSAqIFJlbW92ZSB0aGUgZGF0YWJh
c2UgZnJvbSB0aGUgc2VjdXJpdHkgb3JpZ2luIGFuZCBkZXN0cm95IGFsbCBkYXRhLgotICoKLSAq
IEBwYXJhbSBvIHdlYiBkYXRhYmFzZSBvYmplY3QKLSAqLwotRUFQSSB2b2lkICAgICAgICAgZXdr
X3dlYl9kYXRhYmFzZV9yZW1vdmUoRXdrX1dlYl9EYXRhYmFzZSAqbyk7Ci0KLS8qKgotICogUmVt
b3ZlIGFsbCB0aGUgZGF0YWJhc2VzIGluIHRoZSBjdXJyZW50IGRlZmF1bHQgcGF0aC4KLSAqLwot
RUFQSSB2b2lkICAgICAgICAgZXdrX3dlYl9kYXRhYmFzZV9yZW1vdmVfYWxsKHZvaWQpOwotCi0v
KioKLSAqIFJlbGVhc2UgYWxsIHJlc291cmNlcyBhbGxvY2F0ZWQgYnkgYSB3ZWIgZGF0YWJhc2Ug
b2JqZWN0LgotICoKLSAqIEBwYXJhbSBvIHdlYiBkYXRhYmFzZSBvYmplY3QKLSAqLwotRUFQSSB2
b2lkICAgICAgICAgZXdrX3dlYl9kYXRhYmFzZV9mcmVlKEV3a19XZWJfRGF0YWJhc2UgKm8pOwot
Ci0vKioKLSAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciByZWxlYXNpbmcgYWxsIHdlYiBkYXRh
YmFzZSBvYmplY3RzIGZyb20gYSBsaXN0LgotICoKLSAqIEBwYXJhbSBkYXRhYmFzZV9saXN0IGxp
c3Qgb2Ygd2ViIGRhdGFiYXNlIG9iamVjdHMgdG8gYmUgZnJlZWQKLSAqLwotRUFQSSB2b2lkICAg
ICAgICAgZXdrX3dlYl9kYXRhYmFzZV9saXN0X2ZyZWUoRWluYV9MaXN0ICpkYXRhYmFzZV9saXN0
KTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLSNlbmRpZiAvLyBld2tfd2ViX2Rh
dGFiYXNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfd2ViX2RhdGFi
YXNlX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfd2ViX2RhdGFiYXNlX3By
aXZhdGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzI0MDVmZTE3M2JlMmM4M2E1
N2U4OWYzYmJmYWYxMDI2MWZkNWY4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3dlYl9kYXRhYmFzZV9wcml2
YXRlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0g
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAgICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSovCi0KLSNpZm5kZWYgZXdrX3dlYl9kYXRhYmFzZV9w
cml2YXRlX2gKLSNkZWZpbmUgZXdrX3dlYl9kYXRhYmFzZV9wcml2YXRlX2gKLQotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBTZWN1
cml0eU9yaWdpbjsKLX0KLQotRXdrX1dlYl9EYXRhYmFzZSogZXdrX3dlYl9kYXRhYmFzZV9uZXco
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIGNvcmVPcmlnaW4sIGNvbnN0IFdURjo6U3RyaW5nJiBj
b3JlTmFtZSk7Ci0KLSNlbmRpZiAvLyBld2tfd2ViX2RhdGFiYXNlX3ByaXZhdGVfaApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY0ODkyYzI2YTgz
ZDAxN2MzNDBkMjAwYmQ3MGZiYTM3OTllMjJlNzQuLjVlN2I1NjRkMzExZTMyOGU0NDMyYjdjMzJl
OGY4MmUzNTE2NTg0MjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMi0xMC0wOCAgR3l1eW91bmcgS2ltICA8Z3l1
eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIFJlbW92ZSAid2ViIiB3b3Jk
IGluIGV3ayBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTg3MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgIndlYiIgd29yZCBmcm9tIGV3ayBmaWxlcyBpbiBvcmRlciB0byBiZSBjb25z
aXN0ZW50IHdpdGggV0syLgorICAgICAgICByMTMwNDk0IGFuZCByMTMwNDc5IHJlbW92ZWQgKndl
YiogZnJvbSBXSzIuCisKKyAgICAgICAgVGhpcyB3YXMgZGlzY3Vzc2VkIGluIHdlYmtpdC1lZmwg
bWFpbGluZyBsaXN0LgorICAgICAgICBodHRwOi8vbGlzdHMud2Via2l0Lm9yZy9waXBlcm1haWwv
d2Via2l0LWVmbC8yMDEyLVNlcHRlbWJlci8wMDAzMDguaHRtbC4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHA6CisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZUNocm9tZTo6cmVtb3ZlV2ViSW5zcGVjdG9yVmlldyk6CisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZUNocm9tZTo6d2FpdEluc3BlY3RvckxvYWRGaW5pc2hlZCk6CisgICAgICAgIChEdW1w
UmVuZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25JbnNwZWN0b3JWaWV3Q3JlYXRlKToKKyAgICAg
ICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkluc3BlY3RvckZyYW1lTG9hZEZpbmlzaGVkKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHA6CisgICAgICAg
IChUZXN0UnVubmVyOjpjbGVhckFsbERhdGFiYXNlcyk6CisgICAgICAgIChUZXN0UnVubmVyOjpz
ZXREYXRhYmFzZVF1b3RhKToKKyAgICAgICAgKFRlc3RSdW5uZXI6Om92ZXJyaWRlUHJlZmVyZW5j
ZSk6CisgICAgICAgIChUZXN0UnVubmVyOjpzaG93V2ViSW5zcGVjdG9yKToKKyAgICAgICAgKFRl
c3RSdW5uZXI6OmNsb3NlV2ViSW5zcGVjdG9yKToKKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvbWFp
bi5jOgorICAgICAgICAob25faW5zcGVjdG9yX2Vjb3JlX2V2YXNfcmVzaXplKToKKyAgICAgICAg
KG9uX2tleV9kb3duKToKKyAgICAgICAgKG9uX2luc3BlY3Rvcl92aWV3X2NyZWF0ZSk6CisgICAg
ICAgIChvbl9pbnNwZWN0b3Jfdmlld19jbG9zZSk6CisgICAgICAgIChvbl9pbnNwZWN0b3Jfdmll
d19kZXN0cm95ZWQpOgorICAgICAgICAoYnJvd3NlckNyZWF0ZSk6CisgICAgICAgICh3ZWJJbnNw
ZWN0b3JDcmVhdGUpOgorICAgICAgICAoY2xvc2VXaW5kb3cpOgorICAgICAgICAobWFpbl9zaWdu
YWxfZXhpdCk6CisgICAgICAgIChtYWluKToKKwogMjAxMi0xMC0wOCAgUnl1YW4gQ2hvaSAgPHJ5
dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gQnVpbGQgQ29udHJvbFRoZW1l
IG9ubHkgd2hlbiBuZWNlc3NhcnkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVt
cFJlbmRlclRyZWVDaHJvbWUuY3BwCmluZGV4IDI1NTk1YmRjYzczMGZkYmVmY2UwYjVmNTlhOTQx
YWUwYzdiODFjNjYuLjM4OGM5NGNlZTI1ZTNkNzU4MTg5ZjdkMjkwZTA1NmEyMDBlNjY4ZTEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNw
cApAQCAtMTYzLDcgKzE2Myw3IEBAIEV2YXNfT2JqZWN0KiBEdW1wUmVuZGVyVHJlZUNocm9tZTo6
Y3JlYXRlV2ViSW5zcGVjdG9yVmlldygpCiAKIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6OnJl
bW92ZVdlYkluc3BlY3RvclZpZXcoKQogewotICAgIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3
ID0gZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X2dldChtYWluVmlldygpKTsKKyAgICBFdmFz
X09iamVjdCogaW5zcGVjdG9yVmlldyA9IGV3a192aWV3X2luc3BlY3Rvcl92aWV3X2dldChtYWlu
VmlldygpKTsKICAgICBpZiAoIWluc3BlY3RvclZpZXcpCiAgICAgICAgIHJldHVybjsKIApAQCAt
MTcxLDE0ICsxNzEsMTQgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6cmVtb3ZlV2ViSW5z
cGVjdG9yVmlldygpCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfZGVsKG1haW5GcmFt
ZSwgImxvYWQsZmluaXNoZWQiLCBvbkluc3BlY3RvckZyYW1lTG9hZEZpbmlzaGVkKTsKIAogICAg
IGV2YXNfb2JqZWN0X2RlbChpbnNwZWN0b3JWaWV3KTsKLSAgICBld2tfdmlld193ZWJfaW5zcGVj
dG9yX3ZpZXdfc2V0KG1haW5WaWV3KCksIDApOworICAgIGV3a192aWV3X2luc3BlY3Rvcl92aWV3
X3NldChtYWluVmlldygpLCAwKTsKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6d2Fp
dEluc3BlY3RvckxvYWRGaW5pc2hlZCgpCiB7CiAgICAgLy8gV2FpdHMgdW50aWwgdGhlIHBhZ2Ug
aGFzIGZpbmlzaGVkIGxvYWRpbmcuCiAgICAgLy8gQmVjYXVzZSBpdCBjYW4ndCBjb21wbGV0ZSBs
b2FkaW5nIGluc3BlY3Rvci5odG1sIGJlZm9yZSBsb2FkaW5nIHRlc3RVUkwuCi0gICAgRXZhc19P
YmplY3QqIGluc3BlY3RvclZpZXcgPSBld2tfdmlld193ZWJfaW5zcGVjdG9yX3ZpZXdfZ2V0KG1h
aW5WaWV3KCkpOworICAgIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3ID0gZXdrX3ZpZXdfaW5z
cGVjdG9yX3ZpZXdfZ2V0KG1haW5WaWV3KCkpOwogICAgIGlmIChpbnNwZWN0b3JWaWV3KQogICAg
ICAgICBlY29yZV9tYWluX2xvb3BfYmVnaW4oKTsKIH0KQEAgLTI0OSw4ICsyNDksOCBAQCB2b2lk
IER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkK
ICAgICBld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9jbGVhcigpOwogICAgIGV3a19zZXR0aW5n
c19pY29uX2RhdGFiYXNlX3BhdGhfc2V0KDApOwogCi0gICAgZXdrX3dlYl9kYXRhYmFzZV9yZW1v
dmVfYWxsKCk7Ci0gICAgZXdrX3NldHRpbmdzX3dlYl9kYXRhYmFzZV9kZWZhdWx0X3F1b3RhX3Nl
dCg1ICogMTAyNCAqIDEwMjQpOworICAgIGV3a19kYXRhYmFzZV9yZW1vdmVfYWxsKCk7CisgICAg
ZXdrX3NldHRpbmdzX2RhdGFiYXNlX2RlZmF1bHRfcXVvdGFfc2V0KDUgKiAxMDI0ICogMTAyNCk7
CiAKICAgICBld2tfc2V0dGluZ3NfbWVtb3J5X2NhY2hlX2NsZWFyKCk7CiAgICAgZXdrX3NldHRp
bmdzX2FwcGxpY2F0aW9uX2NhY2hlX2NsZWFyKCk7CkBAIC0yODQsNyArMjg0LDcgQEAgdm9pZCBE
dW1wUmVuZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAg
ICAgZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVfaHlwZXJsaW5rX2F1ZGl0aW5nX3NldChtYWluVmll
dygpLCBFSU5BX0ZBTFNFKTsKICAgICBld2tfdmlld19zZXR0aW5nX2luY2x1ZGVfbGlua3NfaW5f
Zm9jdXNfY2hhaW5fc2V0KG1haW5WaWV3KCksIEVJTkFfRkFMU0UpOwogICAgIGV3a192aWV3X3Nl
dHRpbmdfc2NyaXB0c19jYW5fYWNjZXNzX2NsaXBib2FyZF9zZXQobWFpblZpZXcoKSwgRUlOQV9U
UlVFKTsKLSAgICBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19zZXQobWFpblZpZXcoKSwgRUlO
QV9GQUxTRSk7CisgICAgZXdrX3ZpZXdfc2V0dGluZ19hdWRpb19zZXQobWFpblZpZXcoKSwgRUlO
QV9GQUxTRSk7CiAgICAgZXdrX3ZpZXdfc2V0dGluZ19hbGxvd191bml2ZXJzYWxfYWNjZXNzX2Zy
b21fZmlsZV91cmxzX3NldChtYWluVmlldygpLCBFSU5BX1RSVUUpOwogICAgIGV3a192aWV3X3Nl
dHRpbmdfYWxsb3dfZmlsZV9hY2Nlc3NfZnJvbV9maWxlX3VybHNfc2V0KG1haW5WaWV3KCksIEVJ
TkFfVFJVRSk7CiAKQEAgLTY3OSw3ICs2NzksNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21l
Ojpvbkluc3BlY3RvclZpZXdDcmVhdGUodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopCiB7CiAg
ICAgRXZhc19PYmplY3QqIGluc3BlY3RvclZpZXcgPSBicm93c2VyLT5jcmVhdGVXZWJJbnNwZWN0
b3JWaWV3KCk7CiAgICAgaWYgKGluc3BlY3RvclZpZXcpCi0gICAgICAgIGV3a192aWV3X3dlYl9p
bnNwZWN0b3Jfdmlld19zZXQoYnJvd3Nlci0+bWFpblZpZXcoKSwgaW5zcGVjdG9yVmlldyk7Cisg
ICAgICAgIGV3a192aWV3X2luc3BlY3Rvcl92aWV3X3NldChicm93c2VyLT5tYWluVmlldygpLCBp
bnNwZWN0b3JWaWV3KTsKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25JbnNwZWN0
b3JWaWV3Q2xvc2Uodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopCkBAIC02ODksNyArNjg5LDcg
QEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25JbnNwZWN0b3JWaWV3Q2xvc2Uodm9pZCos
IEV2YXNfT2JqZWN0Kiwgdm9pZCopCiAKIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uSW5z
cGVjdG9yRnJhbWVMb2FkRmluaXNoZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopCiB7Ci0g
ICAgRXZhc19PYmplY3QqIGluc3BlY3RvclZpZXcgPSBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Zp
ZXdfZ2V0KGJyb3dzZXItPm1haW5WaWV3KCkpOworICAgIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JW
aWV3ID0gZXdrX3ZpZXdfaW5zcGVjdG9yX3ZpZXdfZ2V0KGJyb3dzZXItPm1haW5WaWV3KCkpOwog
ICAgIGlmIChpbnNwZWN0b3JWaWV3KQogICAgICAgICBlY29yZV9tYWluX2xvb3BfcXVpdCgpOwog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCmluZGV4IDhmYzky
NmFlYmMxOGU0OTMzMDM5M2I0MGRlYmE3ZTU4NzM3YTUyZjYuLjM0YWQyZThmZjg3MWJhZTU5YTA1
OTBhNzE2NmU2OTU0MTZhY2YxNTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9UZXN0UnVubmVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1
bm5lckVmbC5jcHAKQEAgLTYwMCwxMyArNjAwLDEzIEBAIGxvbmcgbG9uZyBUZXN0UnVubmVyOjph
cHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKEpTU3RyaW5nUmVmKQogCiB2b2lkIFRl
c3RSdW5uZXI6OmNsZWFyQWxsRGF0YWJhc2VzKCkKIHsKLSAgICBld2tfd2ViX2RhdGFiYXNlX3Jl
bW92ZV9hbGwoKTsKKyAgICBld2tfZGF0YWJhc2VfcmVtb3ZlX2FsbCgpOwogfQogCiB2b2lkIFRl
c3RSdW5uZXI6OnNldERhdGFiYXNlUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKQogewog
ICAgIEV3a19TZWN1cml0eV9PcmlnaW4qIG9yaWdpbiA9IGV3a19mcmFtZV9zZWN1cml0eV9vcmln
aW5fZ2V0KGJyb3dzZXItPm1haW5GcmFtZSgpKTsKLSAgICBld2tfc2VjdXJpdHlfb3JpZ2luX3dl
Yl9kYXRhYmFzZV9xdW90YV9zZXQob3JpZ2luLCBxdW90YSk7CisgICAgZXdrX3NlY3VyaXR5X29y
aWdpbl9kYXRhYmFzZV9xdW90YV9zZXQob3JpZ2luLCBxdW90YSk7CiAgICAgZXdrX3NlY3VyaXR5
X29yaWdpbl9mcmVlKG9yaWdpbik7CiB9CiAKQEAgLTcxMCw3ICs3MTAsNyBAQCB2b2lkIFRlc3RS
dW5uZXI6Om92ZXJyaWRlUHJlZmVyZW5jZShKU1N0cmluZ1JlZiBrZXksIEpTU3RyaW5nUmVmIHZh
bHVlKQogICAgIGVsc2UgaWYgKGVxdWFscyhrZXksICJXZWJLaXRDU1NSZWdpb25zRW5hYmxlZCIp
KQogICAgICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldENTU1JlZ2lvbnNFbmFibGVk
KGJyb3dzZXItPm1haW5WaWV3KCksIHRvQm9vbCh2YWx1ZSkpOwogICAgIGVsc2UgaWYgKGVxdWFs
cyhrZXksICJXZWJLaXRXZWJBdWRpb0VuYWJsZWQiKSkKLSAgICAgICAgZXdrX3ZpZXdfc2V0dGlu
Z193ZWJfYXVkaW9fc2V0KGJyb3dzZXItPm1haW5WaWV3KCksIHRvQm9vbCh2YWx1ZSkpOworICAg
ICAgICBld2tfdmlld19zZXR0aW5nX2F1ZGlvX3NldChicm93c2VyLT5tYWluVmlldygpLCB0b0Jv
b2wodmFsdWUpKTsKICAgICBlbHNlIGlmIChlcXVhbHMoa2V5LCAiV2ViS2l0RGlzcGxheUltYWdl
c0tleSIpKQogICAgICAgICBld2tfdmlld19zZXR0aW5nX2F1dG9fbG9hZF9pbWFnZXNfc2V0KGJy
b3dzZXItPm1haW5WaWV3KCksIHRvQm9vbCh2YWx1ZSkpOwogICAgIGVsc2UKQEAgLTczOSwxMyAr
NzM5LDEzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoYm9vbCkKIAogdm9pZCBUZXN0UnVubmVyOjpzaG93V2ViSW5zcGVjdG9yKCkKIHsKLSAg
ICBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coYnJvd3Nlci0+bWFpblZpZXcoKSk7CisgICAg
ZXdrX3ZpZXdfaW5zcGVjdG9yX3Nob3coYnJvd3Nlci0+bWFpblZpZXcoKSk7CiAgICAgYnJvd3Nl
ci0+d2FpdEluc3BlY3RvckxvYWRGaW5pc2hlZCgpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OmNs
b3NlV2ViSW5zcGVjdG9yKCkKIHsKLSAgICBld2tfdmlld193ZWJfaW5zcGVjdG9yX2Nsb3NlKGJy
b3dzZXItPm1haW5WaWV3KCkpOworICAgIGV3a192aWV3X2luc3BlY3Rvcl9jbG9zZShicm93c2Vy
LT5tYWluVmlldygpKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpldmFsdWF0ZUluV2ViSW5zcGVj
dG9yKGxvbmcgY2FsbElkLCBKU1N0cmluZ1JlZiBzY3JpcHQpCmRpZmYgLS1naXQgYS9Ub29scy9F
V2ViTGF1bmNoZXIvbWFpbi5jIGIvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYwppbmRleCBmZTcx
MDhlNGVjY2FhZmZiNTQwOTkwZmVmNjQ4OTg4MDgyYjNiOThkLi4yMmM5MzAwNTcwN2I1MzQyODFj
ZDY0ZTg3OWE5NDNmODMzZGQ4ZTIwIDEwMDY0NAotLS0gYS9Ub29scy9FV2ViTGF1bmNoZXIvbWFp
bi5jCisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKQEAgLTI1Nyw3ICsyNTcsNyBAQCBv
bl9icm93c2VyX2Vjb3JlX2V2YXNfcmVzaXplKEVjb3JlX0V2YXMgKmVlKQogfQogCiBzdGF0aWMg
dm9pZAotb25fd2ViX2luc3BlY3Rvcl9lY29yZV9ldmFzX3Jlc2l6ZShFY29yZV9FdmFzICplZSkK
K29uX2luc3BlY3Rvcl9lY29yZV9ldmFzX3Jlc2l6ZShFY29yZV9FdmFzICplZSkKIHsKICAgICBF
dmFzX09iamVjdCAqd2VidmlldzsKICAgICBpbnQgdywgaDsKQEAgLTYwNyw0MSArNjA3LDQxIEBA
IG9uX2tleV9kb3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQg
KmV2ZW50X2luZm8pCiAgICAgICAgIEV2YXNfT2JqZWN0ICpmcmFtZSA9IGV3a192aWV3X2ZyYW1l
X21haW5fZ2V0KG9iaik7CiAgICAgICAgIEV3a19TZWN1cml0eV9PcmlnaW4gKm9yaWdpbiA9IGV3
a19mcmFtZV9zZWN1cml0eV9vcmlnaW5fZ2V0KGZyYW1lKTsKICAgICAgICAgcHJpbnRmKCJTZWN1
cml0eSBvcmlnaW4gaW5mb3JtYXRpb246XG4iCi0gICAgICAgICAgICAgICAiICBwcm90b2NvbD0l
c1xuIgotICAgICAgICAgICAgICAgIiAgaG9zdD0lc1xuIgotICAgICAgICAgICAgICAgIiAgcG9y
dD0lZFxuIgotICAgICAgICAgICAgICAgIiAgd2ViIGRhdGFiYXNlIHF1b3RhPSUiIFBSSXU2NCAi
XG4iLAotICAgICAgICAgICAgICAgZXdrX3NlY3VyaXR5X29yaWdpbl9wcm90b2NvbF9nZXQob3Jp
Z2luKSwKLSAgICAgICAgICAgICAgIGV3a19zZWN1cml0eV9vcmlnaW5faG9zdF9nZXQob3JpZ2lu
KSwKLSAgICAgICAgICAgICAgIGV3a19zZWN1cml0eV9vcmlnaW5fcG9ydF9nZXQob3JpZ2luKSwK
LSAgICAgICAgICAgICAgIGV3a19zZWN1cml0eV9vcmlnaW5fd2ViX2RhdGFiYXNlX3F1b3RhX2dl
dChvcmlnaW4pKTsKLQotICAgICAgICBFaW5hX0xpc3QgKmRhdGFiYXNlTGlzdCA9IGV3a19zZWN1
cml0eV9vcmlnaW5fd2ViX2RhdGFiYXNlX2dldF9hbGwob3JpZ2luKTsKKyAgICAgICAgICAgICIg
IHByb3RvY29sPSVzXG4iCisgICAgICAgICAgICAiICBob3N0PSVzXG4iCisgICAgICAgICAgICAi
ICBwb3J0PSVkXG4iCisgICAgICAgICAgICAiICB3ZWIgZGF0YWJhc2UgcXVvdGE9JSIgUFJJdTY0
ICJcbiIsCisgICAgICAgICAgICBld2tfc2VjdXJpdHlfb3JpZ2luX3Byb3RvY29sX2dldChvcmln
aW4pLAorICAgICAgICAgICAgZXdrX3NlY3VyaXR5X29yaWdpbl9ob3N0X2dldChvcmlnaW4pLAor
ICAgICAgICAgICAgZXdrX3NlY3VyaXR5X29yaWdpbl9wb3J0X2dldChvcmlnaW4pLAorICAgICAg
ICAgICAgZXdrX3NlY3VyaXR5X29yaWdpbl9kYXRhYmFzZV9xdW90YV9nZXQob3JpZ2luKSk7CisK
KyAgICAgICAgRWluYV9MaXN0ICpkYXRhYmFzZUxpc3QgPSBld2tfc2VjdXJpdHlfb3JpZ2luX2Rh
dGFiYXNlX2dldF9hbGwob3JpZ2luKTsKICAgICAgICAgRWluYV9MaXN0ICpsaXN0SXRlcmF0b3Ig
PSAwOwotICAgICAgICBFd2tfV2ViX0RhdGFiYXNlICpkYXRhYmFzZTsKKyAgICAgICAgRXdrX0Rh
dGFiYXNlICpkYXRhYmFzZTsKICAgICAgICAgRUlOQV9MSVNUX0ZPUkVBQ0goZGF0YWJhc2VMaXN0
LCBsaXN0SXRlcmF0b3IsIGRhdGFiYXNlKQogICAgICAgICAgICAgcHJpbnRmKCJEYXRhYmFzZSBp
bmZvcm1hdGlvbjpcbiIKLSAgICAgICAgICAgICAgICAgICAiICBuYW1lPSVzXG4iCi0gICAgICAg
ICAgICAgICAgICAgIiAgZGlzcGxheSBuYW1lPSVzXG4iCi0gICAgICAgICAgICAgICAgICAgIiAg
ZmlsZW5hbWU9JXNcbiIKLSAgICAgICAgICAgICAgICAgICAiICBleHBlY3RlZCBzaXplPSUiIFBS
SXU2NCAiXG4iCi0gICAgICAgICAgICAgICAgICAgIiAgc2l6ZT0lIiBQUkl1NjQgIlxuIiwKLSAg
ICAgICAgICAgICAgICAgICBld2tfd2ViX2RhdGFiYXNlX25hbWVfZ2V0KGRhdGFiYXNlKSwKLSAg
ICAgICAgICAgICAgICAgICBld2tfd2ViX2RhdGFiYXNlX2Rpc3BsYXlfbmFtZV9nZXQoZGF0YWJh
c2UpLAotICAgICAgICAgICAgICAgICAgIGV3a193ZWJfZGF0YWJhc2VfZmlsZW5hbWVfZ2V0KGRh
dGFiYXNlKSwKLSAgICAgICAgICAgICAgICAgICBld2tfd2ViX2RhdGFiYXNlX2V4cGVjdGVkX3Np
emVfZ2V0KGRhdGFiYXNlKSwKLSAgICAgICAgICAgICAgICAgICBld2tfd2ViX2RhdGFiYXNlX3Np
emVfZ2V0KGRhdGFiYXNlKSk7CisgICAgICAgICAgICAgICAgIiAgbmFtZT0lc1xuIgorICAgICAg
ICAgICAgICAgICIgIGRpc3BsYXkgbmFtZT0lc1xuIgorICAgICAgICAgICAgICAgICIgIGZpbGVu
YW1lPSVzXG4iCisgICAgICAgICAgICAgICAgIiAgZXhwZWN0ZWQgc2l6ZT0lIiBQUkl1NjQgIlxu
IgorICAgICAgICAgICAgICAgICIgIHNpemU9JSIgUFJJdTY0ICJcbiIsCisgICAgICAgICAgICAg
ICAgZXdrX2RhdGFiYXNlX25hbWVfZ2V0KGRhdGFiYXNlKSwKKyAgICAgICAgICAgICAgICBld2tf
ZGF0YWJhc2VfZGlzcGxheV9uYW1lX2dldChkYXRhYmFzZSksCisgICAgICAgICAgICAgICAgZXdr
X2RhdGFiYXNlX2ZpbGVuYW1lX2dldChkYXRhYmFzZSksCisgICAgICAgICAgICAgICAgZXdrX2Rh
dGFiYXNlX2V4cGVjdGVkX3NpemVfZ2V0KGRhdGFiYXNlKSwKKyAgICAgICAgICAgICAgICBld2tf
ZGF0YWJhc2Vfc2l6ZV9nZXQoZGF0YWJhc2UpKTsKIAogICAgICAgICBld2tfc2VjdXJpdHlfb3Jp
Z2luX2ZyZWUob3JpZ2luKTsKLSAgICAgICAgZXdrX3dlYl9kYXRhYmFzZV9saXN0X2ZyZWUoZGF0
YWJhc2VMaXN0KTsKKyAgICAgICAgZXdrX2RhdGFiYXNlX2xpc3RfZnJlZShkYXRhYmFzZUxpc3Qp
OwogICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiaSIpICYmIGN0cmxQcmVzc2VkKSB7
Ci0gICAgICAgIEV2YXNfT2JqZWN0ICppbnNwZWN0b3JfdmlldyA9IGV3a192aWV3X3dlYl9pbnNw
ZWN0b3Jfdmlld19nZXQob2JqKTsKKyAgICAgICAgRXZhc19PYmplY3QgKmluc3BlY3Rvcl92aWV3
ID0gZXdrX3ZpZXdfaW5zcGVjdG9yX3ZpZXdfZ2V0KG9iaik7CiAgICAgICAgIGlmIChpbnNwZWN0
b3JfdmlldykgewogICAgICAgICAgICAgaW5mbygiV2ViIEluc3BlY3RvciBjbG9zZVxuIik7Ci0g
ICAgICAgICAgICBld2tfdmlld193ZWJfaW5zcGVjdG9yX2Nsb3NlKG9iaik7CisgICAgICAgICAg
ICBld2tfdmlld19pbnNwZWN0b3JfY2xvc2Uob2JqKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIGluZm8oIldlYiBJbnNwZWN0b3Igc2hvd1xuIik7Ci0gICAgICAgICAgICBld2tfdmll
d193ZWJfaW5zcGVjdG9yX3Nob3cob2JqKTsKKyAgICAgICAgICAgIGV3a192aWV3X2luc3BlY3Rv
cl9zaG93KG9iaik7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC02NTksNyArNjU5LDcgQEAgb25f
YnJvd3Nlcl9kZWwodm9pZCAqZGF0YSwgRXZhcyAqZXZhcywgRXZhc19PYmplY3QgKmJyb3dzZXIs
IHZvaWQgKmV2ZW50KQogfQogCiBzdGF0aWMgdm9pZAotb25fd2ViX2luc3BlY3Rvcl92aWV3X2Ny
ZWF0ZSh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2b2lkICpldmVudF9p
bmZvKQorb25faW5zcGVjdG9yX3ZpZXdfY3JlYXRlKHZvaWQgKnVzZXJfZGF0YSwgRXZhc19PYmpl
Y3QgKndlYnZpZXcsIHZvaWQgKmV2ZW50X2luZm8pCiB7CiAgICAgRUxhdW5jaGVyICphcHBfYnJv
d3NlciA9IChFTGF1bmNoZXIgKil1c2VyX2RhdGE7CiAKQEAgLTY2NywxNCArNjY3LDE0IEBAIG9u
X3dlYl9pbnNwZWN0b3Jfdmlld19jcmVhdGUodm9pZCAqdXNlcl9kYXRhLCBFdmFzX09iamVjdCAq
d2Vidmlldywgdm9pZCAqZXZlbnRfCiB9CiAKIHN0YXRpYyB2b2lkCi1vbl93ZWJfaW5zcGVjdG9y
X3ZpZXdfY2xvc2Uodm9pZCAqdXNlcl9kYXRhLCBFdmFzX09iamVjdCAqd2Vidmlldywgdm9pZCAq
ZXZlbnRfaW5mbykKK29uX2luc3BlY3Rvcl92aWV3X2Nsb3NlKHZvaWQgKnVzZXJfZGF0YSwgRXZh
c19PYmplY3QgKndlYnZpZXcsIHZvaWQgKmV2ZW50X2luZm8pCiB7CiAgICAgRWluYV9MaXN0ICps
OwogICAgIHZvaWQgKmFwcDsKICAgICBFTGF1bmNoZXIgKmFwcF9icm93c2VyID0gKEVMYXVuY2hl
ciAqKXVzZXJfZGF0YTsKICAgICBFdmFzX09iamVjdCAqaW5zcGVjdG9yX3ZpZXcgPSAoRXZhc19P
YmplY3QgKilldmVudF9pbmZvOwogCi0gICAgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X3Nl
dChhcHBfYnJvd3Nlci0+YnJvd3NlciwgTlVMTCk7CisgICAgZXdrX3ZpZXdfaW5zcGVjdG9yX3Zp
ZXdfc2V0KGFwcF9icm93c2VyLT5icm93c2VyLCBOVUxMKTsKIAogICAgIEVJTkFfTElTVF9GT1JF
QUNIKHdpbmRvd3MsIGwsIGFwcCkKICAgICAgICAgaWYgKCgoRUxhdW5jaGVyICopYXBwKS0+YnJv
d3NlciA9PSBpbnNwZWN0b3JfdmlldykKQEAgLTY4Niw3ICs2ODYsNyBAQCBvbl93ZWJfaW5zcGVj
dG9yX3ZpZXdfY2xvc2Uodm9pZCAqdXNlcl9kYXRhLCBFdmFzX09iamVjdCAqd2Vidmlldywgdm9p
ZCAqZXZlbnRfaQogfQogCiBzdGF0aWMgdm9pZAotb25fd2ViX2luc3BlY3Rvcl92aWV3X2Rlc3Ry
b3llZChFY29yZV9FdmFzICplZSkKK29uX2luc3BlY3Rvcl92aWV3X2Rlc3Ryb3llZChFY29yZV9F
dmFzICplZSkKIHsKICAgICBFTGF1bmNoZXIgKmFwcDsKIApAQCAtNzI5LDggKzcyOSw4IEBAIGJy
b3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBVc2VyX0FyZ3VtZW50cyAqdXNlckFyZ3MpCiAg
ICAgZXZhc19vYmplY3RfbmFtZV9zZXQoYXBwQnJvd3Nlci0+YnJvd3NlciwgImJyb3dzZXIiKTsK
IAogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHBCcm93c2VyLT5icm93c2Vy
LCAiaW5wdXRtZXRob2QsY2hhbmdlZCIsIG9uX2lucHV0bWV0aG9kX2NoYW5nZWQsIGFwcEJyb3dz
ZXIpOwotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHBCcm93c2VyLT5icm93
c2VyLCAiaW5zcGVjdG9yLHZpZXcsY2xvc2UiLCBvbl93ZWJfaW5zcGVjdG9yX3ZpZXdfY2xvc2Us
IGFwcEJyb3dzZXIpOwotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHBCcm93
c2VyLT5icm93c2VyLCAiaW5zcGVjdG9yLHZpZXcsY3JlYXRlIiwgb25fd2ViX2luc3BlY3Rvcl92
aWV3X2NyZWF0ZSwgYXBwQnJvd3Nlcik7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
YWRkKGFwcEJyb3dzZXItPmJyb3dzZXIsICJpbnNwZWN0b3IsdmlldyxjbG9zZSIsIG9uX2luc3Bl
Y3Rvcl92aWV3X2Nsb3NlLCBhcHBCcm93c2VyKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxs
YmFja19hZGQoYXBwQnJvd3Nlci0+YnJvd3NlciwgImluc3BlY3Rvcix2aWV3LGNyZWF0ZSIsIG9u
X2luc3BlY3Rvcl92aWV3X2NyZWF0ZSwgYXBwQnJvd3Nlcik7CiAgICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfYWRkKGFwcEJyb3dzZXItPmJyb3dzZXIsICJsb2FkLGVycm9yIiwgb25fbG9h
ZF9lcnJvciwgYXBwQnJvd3Nlcik7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRk
KGFwcEJyb3dzZXItPmJyb3dzZXIsICJsb2FkLGZpbmlzaGVkIiwgb25fbG9hZF9maW5pc2hlZCwg
YXBwQnJvd3Nlcik7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcEJyb3dz
ZXItPmJyb3dzZXIsICJsb2FkLHByb2dyZXNzIiwgb25fcHJvZ3Jlc3MsIGFwcEJyb3dzZXIpOwpA
QCAtNzc3LDggKzc3Nyw4IEBAIHdlYkluc3BlY3RvckNyZWF0ZShFTGF1bmNoZXIgKmFwcEJyb3dz
ZXIpCiAgICAgICAgIHJldHVybiBxdWl0KEVJTkFfRkFMU0UsICJFUlJPUjogY291bGQgbm90IGNy
ZWF0ZSBhbiBpbnNwZWN0b3Igd2luZG93XG4iKTsKIAogICAgIGVjb3JlX2V2YXNfdGl0bGVfc2V0
KGFwcEluc3BlY3Rvci0+ZWUsICJXZWIgSW5zcGVjdG9yIik7Ci0gICAgZWNvcmVfZXZhc19jYWxs
YmFja19yZXNpemVfc2V0KGFwcEluc3BlY3Rvci0+ZWUsIG9uX3dlYl9pbnNwZWN0b3JfZWNvcmVf
ZXZhc19yZXNpemUpOwotICAgIGVjb3JlX2V2YXNfY2FsbGJhY2tfZGVsZXRlX3JlcXVlc3Rfc2V0
KGFwcEluc3BlY3Rvci0+ZWUsIG9uX3dlYl9pbnNwZWN0b3Jfdmlld19kZXN0cm95ZWQpOworICAg
IGVjb3JlX2V2YXNfY2FsbGJhY2tfcmVzaXplX3NldChhcHBJbnNwZWN0b3ItPmVlLCBvbl9pbnNw
ZWN0b3JfZWNvcmVfZXZhc19yZXNpemUpOworICAgIGVjb3JlX2V2YXNfY2FsbGJhY2tfZGVsZXRl
X3JlcXVlc3Rfc2V0KGFwcEluc3BlY3Rvci0+ZWUsIG9uX2luc3BlY3Rvcl92aWV3X2Rlc3Ryb3ll
ZCk7CiAKICAgICBldmFzX29iamVjdF9uYW1lX3NldChhcHBJbnNwZWN0b3ItPmJyb3dzZXIsICJp
bnNwZWN0b3IiKTsKIApAQCAtNzkwLDcgKzc5MCw3IEBAIHdlYkluc3BlY3RvckNyZWF0ZShFTGF1
bmNoZXIgKmFwcEJyb3dzZXIpCiAKICAgICBldmFzX29iamVjdF9mb2N1c19zZXQoYXBwSW5zcGVj
dG9yLT5icm93c2VyLCBFSU5BX1RSVUUpOwogCi0gICAgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92
aWV3X3NldChhcHBCcm93c2VyLT5icm93c2VyLCBhcHBJbnNwZWN0b3ItPmJyb3dzZXIpOworICAg
IGV3a192aWV3X2luc3BlY3Rvcl92aWV3X3NldChhcHBCcm93c2VyLT5icm93c2VyLCBhcHBJbnNw
ZWN0b3ItPmJyb3dzZXIpOwogCiAgICAgcmV0dXJuIDE7CiB9CkBAIC04NTYsNyArODU2LDcgQEAg
Y2xvc2VXaW5kb3coRWNvcmVfRXZhcyAqZWUpCiAgICAgRUxhdW5jaGVyICphcHA7CiAKICAgICBh
cHAgPSBmaW5kX2FwcF9mcm9tX2VlKGVlKTsKLSAgICBld2tfdmlld193ZWJfaW5zcGVjdG9yX2Ns
b3NlKGFwcC0+YnJvd3Nlcik7CisgICAgZXdrX3ZpZXdfaW5zcGVjdG9yX2Nsb3NlKGFwcC0+YnJv
d3Nlcik7CiAKICAgICB3aW5kb3dzID0gZWluYV9saXN0X3JlbW92ZSh3aW5kb3dzLCBhcHApOwog
ICAgIHVybF9iYXJfZGVsKGFwcC0+dXJsX2Jhcik7CkBAIC04NzAsNyArODcwLDcgQEAgbWFpbl9z
aWduYWxfZXhpdCh2b2lkICpkYXRhLCBpbnQgZXZfdHlwZSwgdm9pZCAqZXYpCiAgICAgRUxhdW5j
aGVyICphcHA7CiAgICAgd2hpbGUgKHdpbmRvd3MpIHsKICAgICAgICAgYXBwID0gKEVMYXVuY2hl
ciopIGVpbmFfbGlzdF9kYXRhX2dldCh3aW5kb3dzKTsKLSAgICAgICAgZXdrX3ZpZXdfd2ViX2lu
c3BlY3Rvcl9jbG9zZShhcHAtPmJyb3dzZXIpOworICAgICAgICBld2tfdmlld19pbnNwZWN0b3Jf
Y2xvc2UoYXBwLT5icm93c2VyKTsKIAogICAgICAgICBlY29yZV9ldmFzX2ZyZWUoYXBwLT5lZSk7
CiAgICAgICAgIHdpbmRvd3MgPSBlaW5hX2xpc3RfcmVtb3ZlKHdpbmRvd3MsIGFwcCk7CkBAIC05
OTMsNyArOTkzLDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgIHVzZXJBcmdz
LmRhdGFiYXNlUGF0aCA9IHBhdGg7CiAKICAgICBld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9w
YXRoX3NldChwYXRoKTsKLSAgICBld2tfc2V0dGluZ3Nfd2ViX2RhdGFiYXNlX3BhdGhfc2V0KHBh
dGgpOworICAgIGV3a19zZXR0aW5nc19kYXRhYmFzZV9wYXRoX3NldChwYXRoKTsKIAogICAgIHBy
b3h5VXJpID0gZ2V0ZW52KCJodHRwX3Byb3h5Iik7CiAgICAgaWYgKHByb3h5VXJpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167732</attachid>
            <date>2012-10-09 04:29:05 -0700</date>
            <delta_ts>2012-10-11 18:19:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98724-20121009202807.patch</filename>
            <type>text/plain</type>
            <size>19722</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNTkwZjkzNDBi
YTM2YTkyNDZlY2UxZTFiMGQzNDhjNjcwY2YzY2RhMS4uODgxNTQ2ZDRiMTJlYmMyZWY3YmM2NjA0
YWU1MDg1ZmVhMWJjZDE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEy
LTEwLTA5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgW0VGTF0gUmVtb3ZlICJ3ZWIiIHdvcmQgaW4gd2ViIGluc3BlY3RvcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg3MjQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqd2ViKiB3b3JkIGlzIHJlZHVuZGFu
dCBpbiB3ZWIgaW5zcGVjdG9yLiBCZXNpZGUgcjEzMDQ5NCBhbmQgcjEzMDQ3OSByZW1vdmVkICp3
ZWIqIGZyb20gRUZMIFdLMi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNs
aWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpub3RpZnlJbnNwZWN0b3JEZXN0cm95KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEVmbDo6b3Blbkluc3BlY3RvckZyb250
ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsOjpJbnNw
ZWN0b3JGcm9udGVuZENsaWVudEVmbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZENsaWVudEVmbDo6fkluc3BlY3RvckZyb250ZW5kQ2xpZW50RWZsKToKKyAgICAgICAgKiBl
d2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoZXdrX3ZpZXdfaW5zcGVjdG9yX3Nob3cpOgorICAg
ICAgICAoZXdrX3ZpZXdfaW5zcGVjdG9yX2Nsb3NlKToKKyAgICAgICAgKGV3a192aWV3X2luc3Bl
Y3Rvcl92aWV3X2dldCk6CisgICAgICAgIChld2tfdmlld19pbnNwZWN0b3Jfdmlld19zZXQpOgor
ICAgICAgICAqIGV3ay9ld2tfdmlldy5oOgorCiAyMDEyLTEwLTA3ICBDYWlvIE1hcmNlbG8gZGUg
T2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAg
UmVuYW1lIGZpcnN0L3NlY29uZCB0byBrZXkvdmFsdWUgaW4gSGFzaE1hcCBpdGVyYXRvcnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVu
dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRFZmwuY3BwCmluZGV4IDcwMWYzMDZhOWVlMmNlMjkwNTE0MTU2OWFiMzFlOWQxYjExODkwOWMu
LjNkZDgxNWFiOWM5MDZmMmI4NzBmN2EzNTYyYzc0YzZlOGVhNmJmMGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNw
cApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyB2b2lk
IG5vdGlmeVdlYkluc3BlY3RvckRlc3Ryb3kodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0KiAv
KndlYnZpZXcqLywgdm9pZCogLypldmVudEluZm8qLykKK3N0YXRpYyB2b2lkIG5vdGlmeUluc3Bl
Y3RvckRlc3Ryb3kodm9pZCogdXNlckRhdGEsIEV2YXNfT2JqZWN0KiAvKndlYnZpZXcqLywgdm9p
ZCogLypldmVudEluZm8qLykKIHsKICAgICBJbnNwZWN0b3JGcm9udGVuZENsaWVudEVmbCogaW5z
cGVjdG9yRnJvbnRlbmRDbGllbnQgPSBzdGF0aWNfY2FzdDxJbnNwZWN0b3JGcm9udGVuZENsaWVu
dEVmbCo+KHVzZXJEYXRhKTsKICAgICBpZiAoaW5zcGVjdG9yRnJvbnRlbmRDbGllbnQpCkBAIC04
Nyw3ICs4Nyw3IEBAIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogSW5zcGVjdG9yQ2xpZW50RWZs
OjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQoSW5zcGVjdG9yQ29uCiB7CiAgICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfY2FsbChtX2luc3BlY3RlZFZpZXcsICJpbnNwZWN0b3IsdmlldyxjcmVh
dGUiLCAwKTsKIAotICAgIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3ID0gZXdrX3ZpZXdfd2Vi
X2luc3BlY3Rvcl92aWV3X2dldChtX2luc3BlY3RlZFZpZXcpOworICAgIEV2YXNfT2JqZWN0KiBp
bnNwZWN0b3JWaWV3ID0gZXdrX3ZpZXdfaW5zcGVjdG9yX3ZpZXdfZ2V0KG1faW5zcGVjdGVkVmll
dyk7CiAgICAgaWYgKCFpbnNwZWN0b3JWaWV3KQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMTUz
LDEyICsxNTMsMTIgQEAgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6Okluc3BlY3RvckZyb250
ZW5kQ2xpZW50RWZsKEV2YXNfT2JqZWN0KiBpbnNwZWN0ZWRWaWUKICAgICAsIG1faW5zcGVjdG9y
VmlldyhpbnNwZWN0b3JWaWV3KQogICAgICwgbV9pbnNwZWN0b3JDbGllbnQoaW5zcGVjdG9yQ2xp
ZW50KQogewotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtX2luc3BlY3RvclZp
ZXcsICJpbnNwZWN0b3IsdmlldyxkZXN0cm95Iiwgbm90aWZ5V2ViSW5zcGVjdG9yRGVzdHJveSwg
dGhpcyk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1faW5zcGVjdG9yVmll
dywgImluc3BlY3Rvcix2aWV3LGRlc3Ryb3kiLCBub3RpZnlJbnNwZWN0b3JEZXN0cm95LCB0aGlz
KTsKIH0KIAogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRFZmw6On5JbnNwZWN0b3JGcm9udGVuZENs
aWVudEVmbCgpCiB7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfZGVsKG1faW5zcGVj
dG9yVmlldywgImluc3BlY3Rvcix2aWV3LGRlc3Ryb3kiLCBub3RpZnlXZWJJbnNwZWN0b3JEZXN0
cm95KTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19kZWwobV9pbnNwZWN0b3JWaWV3
LCAiaW5zcGVjdG9yLHZpZXcsZGVzdHJveSIsIG5vdGlmeUluc3BlY3RvckRlc3Ryb3kpOwogCiAg
ICAgaWYgKG1faW5zcGVjdG9yQ2xpZW50KSB7CiAgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT5y
ZWxlYXNlRnJvbnRlbmRQYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCBl
ZjM1NjRkNmNkZTgxNzZmNTM0YzI0NGIxNWQ4NDEzOGRlN2JiMzAyLi4xNjg1MTg3Mzc3N2MwZGU1
MzYwZWNhZDUyNjc2ZWMwZmY4OTI5NWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAK
QEAgLTQ0NDUsNyArNDQ0NSw3IEBAIHZvaWQgZXdrX3ZpZXdfc2V0dGluZ19zaG91bGRfZGlzcGxh
eV90ZXh0X2Rlc2NyaXB0aW9uc19zZXQoRXZhc19PYmplY3QgKmV3a1ZpZXcsCiAjZW5kaWYKIH0K
IAotdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coY29uc3QgRXZhc19PYmplY3QqIGV3
a1ZpZXcpCit2b2lkIGV3a192aWV3X2luc3BlY3Rvcl9zaG93KGNvbnN0IEV2YXNfT2JqZWN0KiBl
d2tWaWV3KQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09S
X1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOwpAQCAtNDQ1NSw3ICs0NDU1LDcgQEAgdm9pZCBl
d2tfdmlld193ZWJfaW5zcGVjdG9yX3Nob3coY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAj
ZW5kaWYKIH0KIAotdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX2Nsb3NlKGNvbnN0IEV2YXNf
T2JqZWN0KiBld2tWaWV3KQordm9pZCBld2tfdmlld19pbnNwZWN0b3JfY2xvc2UoY29uc3QgRXZh
c19PYmplY3QqIGV3a1ZpZXcpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBFV0tfVklF
V19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CkBAIC00NDY1LDcgKzQ0NjUs
NyBAQCB2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3JfY2xvc2UoY29uc3QgRXZhc19PYmplY3Qq
IGV3a1ZpZXcpCiAjZW5kaWYKIH0KIAotRXZhc19PYmplY3QqIGV3a192aWV3X3dlYl9pbnNwZWN0
b3Jfdmlld19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCitFdmFzX09iamVjdCogZXdr
X3ZpZXdfaW5zcGVjdG9yX3ZpZXdfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewog
I2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBzbWFydERhdGEsIDApOwpAQCAtNDQ3Nyw3ICs0NDc3LDcgQEAgRXZhc19PYmplY3QqIGV3
a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcp
CiAjZW5kaWYKIH0KIAotdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX3ZpZXdfc2V0KEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogaW5zcGVjdG9yVmlldykKK3ZvaWQgZXdrX3Zp
ZXdfaW5zcGVjdG9yX3ZpZXdfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCog
aW5zcGVjdG9yVmlldykKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEVXS19WSUVXX1NE
X0dFVChld2tWaWV3LCBzbWFydERhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCA3
YThiNWQ3M2IwYzE1MDQ3MDZjY2FiZDAzMjAwYmE1ZTE0N2Y3YmFiLi5jMWE4MTlmYTNkZDg1YWQ1
NzBjNTFkY2ZjNDNhMDgwMTk5M2UzZDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaApAQCAt
NDYsOCArNDYsOCBAQAogICogIC0gImljb24scmVjZWl2ZWQiLCB2b2lkOiBtYWluIGZyYW1lIHJl
Y2VpdmVkIGFuIGljb24uCiAgKiAgLSAiaW5wdXRtZXRob2QsY2hhbmdlZCIsIEVpbmFfQm9vbDog
cmVwb3J0cyB0aGF0IGlucHV0IG1ldGhvZCB3YXMgY2hhbmdlZCBhbmQKICAqICAgIGl0IGdpdmVz
IGEgYm9vbGVhbiB2YWx1ZSB3aGV0aGVyIGl0J3MgZW5hYmxlZCBvciBub3QgYXMgYW4gYXJndW1l
bnQuCi0gKiAgLSAiaW5zcGVjdG9yLHZpZXcsY2xvc2UiLCBFdmFzX09iamVjdCo6IHJlcXVlc3Qg
dG8gY2xvc2UgdGhlIHZpZXcgZm9yIHdlYiBpbnNwZWN0b3IuCi0gKiAgLSAiaW5zcGVjdG9yLHZp
ZXcsY3JlYXRlIiwgdm9pZDogcmVxdWVzdCB0byBjcmVhdGUgdGhlIG5ldyB2aWV3IGZvciB3ZWIg
aW5zcGVjdG9yLgorICogIC0gImluc3BlY3Rvcix2aWV3LGNsb3NlIiwgRXZhc19PYmplY3QqOiBy
ZXF1ZXN0IHRvIGNsb3NlIHRoZSB2aWV3IGZvciBpbnNwZWN0b3IuCisgKiAgLSAiaW5zcGVjdG9y
LHZpZXcsY3JlYXRlIiwgdm9pZDogcmVxdWVzdCB0byBjcmVhdGUgdGhlIG5ldyB2aWV3IGZvciBp
bnNwZWN0b3IuCiAgKiAgLSAianMsd2luZG93b2JqZWN0LGNsZWFyIiwgdm9pZDogUmVwb3J0IHRo
YXQgdGhlIEpTIHdpbmRvdyBvYmplY3QgaGFzIGJlZW4gY2xlYXJlZC4KICAqICAtICJsaW5rLGhv
dmVyLGluIiwgY29uc3QgY2hhciAqbGlua1syXTogcmVwb3J0cyBtb3VzZSBpcyBvdmVyIGEgbGlu
ay4KICAqICAgIEl0IGdpdmVzIHRoZSB1cmwgaW4gbGlua1swXSBhbmQgbGluaydzIHRpdGxlIGlu
IGxpbmtbMV0gYXMgYW4gYXJndW1lbnQuCkBAIC0yNzAzLDUxICsyNzAzLDUxIEBAIEVBUEkgRWlu
YV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfd2ViX2F1ZGlvX2dldChjb25zdCBFdmFzX09iamVj
dCAqbyk7CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX3dlYl9hdWRpb19zZXQo
RXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCBlbmFibGUpOwogCiAvKioKLSAqIFNob3cgdGhlIHdl
YiBpbnNwZWN0b3IgdG8gZGVidWcgYSB3ZWIgcGFnZS4KKyAqIFNob3cgdGhlIGluc3BlY3RvciB0
byBkZWJ1ZyBhIHdlYiBwYWdlLgogICoKICAqIFRoZSBmb2xsb3dpbmcgc2lnbmFscyBhcmUgZW1p
aXRlZC4KICAqICJpbnNwZWN0b3IsdmlldyxjcmVhdGUiIGFuZCAiaW5zcGVjdG9yLHZpZXcsY2xv
c2UiCi0gKiBUaGUgZmlyc3Qgb25lIHdpbGwgYmUgY2FsbGVkIHRvIHJlcXVlc3QgdGhlIHZpZXcg
Zm9yIHdlYiBpbnNwZWN0b3Igb24gdmlldyB0aGF0IHdpbGwgYmUgaW5zcGVjdGVkLgotICogVGhp
cyBjYWxsYmFjayBzaG91bGQgY3JlYXRlIHRoZSB2aWV3IGZvciB3ZWIgaW5zcGVjdG9yIGFuZCBz
ZXQgdGhlIHZpZXcgd2l0aCBld2tfdmlld193ZWJfaW5zcGVjdG9yX3ZpZXdfc2V0KCkuCi0gKiBU
aGUgc2Vjb25kIG9uZSB3aWxsIGJlIGNhbGxlZCB0byBjbG9zZSB0aGUgdmlldyBmb3Igd2ViIGlu
c3BlY3RvciBvbiB2aWV3IGhhdmluZyB0aGUgd2ViIGluc3BlY3RvciBhZnRlciBkaXNjb25uZWN0
aW5nIGZyb250ZW5kCi0gKiBUaGlzIGNhbGxiYWNrIHNob3VsZCByZW1vdmUgdGhlIHZpZXcgZm9y
IHdlYiBpbnNwZWN0b3IuCisgKiBUaGUgZmlyc3Qgb25lIHdpbGwgYmUgY2FsbGVkIHRvIHJlcXVl
c3QgdGhlIHZpZXcgZm9yIGluc3BlY3RvciBvbiB2aWV3IHRoYXQgd2lsbCBiZSBpbnNwZWN0ZWQu
CisgKiBUaGlzIGNhbGxiYWNrIHNob3VsZCBjcmVhdGUgdGhlIHZpZXcgZm9yIGluc3BlY3RvciBh
bmQgc2V0IHRoZSB2aWV3IHdpdGggZXdrX3ZpZXdfaW5zcGVjdG9yX3ZpZXdfc2V0KCkuCisgKiBU
aGUgc2Vjb25kIG9uZSB3aWxsIGJlIGNhbGxlZCB0byBjbG9zZSB0aGUgdmlldyBmb3IgaW5zcGVj
dG9yIG9uIHZpZXcgaGF2aW5nIHRoZSBpbnNwZWN0b3IgYWZ0ZXIgZGlzY29ubmVjdGluZyBmcm9u
dGVuZAorICogVGhpcyBjYWxsYmFjayBzaG91bGQgcmVtb3ZlIHRoZSB2aWV3IGZvciBpbnNwZWN0
b3IuCiAgKgotICogV2hlbiB0aGUgdmlldyBoYXZpbmcgdGhlIHdlYiBpbnNwZWN0b3IgaXMgcmVt
b3ZlZCwKLSAqIHBsZWFzZSBlbWl0IHRoZSAiaW5zcGVjdG9yLHZpZXcsZGVzdHJveSIgc2lnbmFs
IG9uIHZpZXcgZm9yIHdlYiBpbnNwZWN0b3IuCisgKiBXaGVuIHRoZSB2aWV3IGhhdmluZyB0aGUg
aW5zcGVjdG9yIGlzIHJlbW92ZWQsCisgKiBwbGVhc2UgZW1pdCB0aGUgImluc3BlY3Rvcix2aWV3
LGRlc3Ryb3kiIHNpZ25hbCBvbiB2aWV3IGZvciBpbnNwZWN0b3IuCiAgKgotICogQHBhcmFtIG8g
VGhlIHZpZXcgdG8gc2hvdyB0aGUgd2ViIGluc3BlY3Rvci4KKyAqIEBwYXJhbSBvIFRoZSB2aWV3
IHRvIHNob3cgdGhlIGluc3BlY3Rvci4KICAqCi0gKiBAc2VlIGV3a192aWV3X3dlYl9pbnNwZWN0
b3JfY2xvc2UoKQotICogQHNlZSBld2tfdmlld193ZWJfaW5zcGVjdG9yX3ZpZXdfc2V0KCkKKyAq
IEBzZWUgZXdrX3ZpZXdfaW5zcGVjdG9yX2Nsb3NlKCkKKyAqIEBzZWUgZXdrX3ZpZXdfaW5zcGVj
dG9yX3ZpZXdfc2V0KCkKICAqLwotRUFQSSB2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfc2hv
dyhjb25zdCBFdmFzX09iamVjdCAqbyk7CitFQVBJIHZvaWQgZXdrX3ZpZXdfaW5zcGVjdG9yX3No
b3coY29uc3QgRXZhc19PYmplY3QgKm8pOwogCiAvKioKLSAqIENsb3NlIHRoZSB3ZWIgaW5zcGVj
dG9yIHZpZXcKKyAqIENsb3NlIHRoZSBpbnNwZWN0b3IgdmlldwogICoKLSAqIEBwYXJhbSBvIFRo
ZSB2aWV3IHRvIGNsb3NlIHRoZSB3ZWIgaW5zcGVjdG9yLgorICogQHBhcmFtIG8gVGhlIHZpZXcg
dG8gY2xvc2UgdGhlIGluc3BlY3Rvci4KICAqCi0gKiBAc2VlIGV3a192aWV3X3dlYl9pbnNwZWN0
b3Jfc2hvdygpCi0gKiBAc2VlIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19nZXQoKQorICog
QHNlZSBld2tfdmlld19pbnNwZWN0b3Jfc2hvdygpCisgKiBAc2VlIGV3a192aWV3X2luc3BlY3Rv
cl92aWV3X2dldCgpCiAgKi8KLUVBUEkgdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX2Nsb3Nl
KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKK0VBUEkgdm9pZCBld2tfdmlld19pbnNwZWN0b3JfY2xv
c2UoY29uc3QgRXZhc19PYmplY3QgKm8pOwogCiAvKioKLSAqIEdldCB0aGUgdmlldyBvZiB3ZWIg
aW5zcGVjdG9yLgorICogR2V0IHRoZSB2aWV3IG9mIGluc3BlY3Rvci4KICAqCiAgKiBAcGFyYW0g
byBUaGUgdmlldyB0aGF0IGlzIGluc3BlY3RlZC4KICAqCiAgKiBAcmV0dXJuIHZpZXcgb2JqZWN0
IG9uIHN1Y2Nlc3Mgb3IgQGMgTlVMTCBvbiBmYWlsdXJlCiAgKi8KLUVBUEkgRXZhc19PYmplY3Qq
IGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwor
RUFQSSBFdmFzX09iamVjdCogZXdrX3ZpZXdfaW5zcGVjdG9yX3ZpZXdfZ2V0KGNvbnN0IEV2YXNf
T2JqZWN0ICpvKTsKIAogLyoqCi0gKiBTZXQgdGhlIHZpZXcgb2Ygd2ViIGluc3BlY3Rvci4KKyAq
IFNldCB0aGUgdmlldyBvZiBpbnNwZWN0b3IuCiAgKgogICogQHBhcmFtIG8gVGhlIHZpZXcgdGhh
dCBpcyBpbnNwZWN0ZWQuCi0gKiBAcGFyYW0gaW5zcGVjdG9yX3ZpZXcgVGhlIHZpZXcgb2Ygd2Vi
IGluc3BlY3Rvci4KKyAqIEBwYXJhbSBpbnNwZWN0b3JfdmlldyBUaGUgdmlldyBvZiBpbnNwZWN0
b3IuCiAgKi8KLUVBUEkgdm9pZCBld2tfdmlld193ZWJfaW5zcGVjdG9yX3ZpZXdfc2V0KEV2YXNf
T2JqZWN0ICpvLCBFdmFzX09iamVjdCAqaW5zcGVjdG9yX3ZpZXcpOworRUFQSSB2b2lkIGV3a192
aWV3X2luc3BlY3Rvcl92aWV3X3NldChFdmFzX09iamVjdCAqbywgRXZhc19PYmplY3QgKmluc3Bl
Y3Rvcl92aWV3KTsKIAogLyoqCiAgKiBFbmFibGVzL2Rpc2FibGVzIHRoZSBmdWxsc2NyZWVuIG1v
ZGUgYnkgamF2YXNjcmlwdCBmdWxsc2NyZWVuIEFQSS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4ZDY1YzJjMzY1YzQyNjVjZDZlZmE1YWQwZWE0
MGUxYWVkODI0NmY4Li4xMWIwZTM4MTg2N2VmZWIzZWVmOWZkMzQxYWE4YjdlZDQ4NzI5YjNiIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzUgQEAKKzIwMTItMTAtMDkgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBbRUZMXSBSZW1vdmUgIndlYiIgd29yZCBpbiB3ZWIgaW5zcGVjdG9y
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODcyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICp3ZWIqIHdv
cmQgaXMgcmVkdW5kYW50IGluIHdlYiBpbnNwZWN0b3IuIEJlc2lkZSByMTMwNDk0IGFuZCByMTMw
NDc5IHJlbW92ZWQgKndlYiogZnJvbSBFRkwgV0syLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVl
Q2hyb21lOjpjcmVhdGVJbnNwZWN0b3JWaWV3KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hy
b21lOjpyZW1vdmVJbnNwZWN0b3JWaWV3KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21l
Ojp3YWl0SW5zcGVjdG9yTG9hZEZpbmlzaGVkKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hy
b21lOjpvbkluc3BlY3RvclZpZXdDcmVhdGUpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJv
bWU6Om9uSW5zcGVjdG9yVmlld0Nsb3NlKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21l
Ojpvbkluc3BlY3RvckZyYW1lTG9hZEZpbmlzaGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hy
b21lKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHA6Cisg
ICAgICAgIChUZXN0UnVubmVyOjpzaG93V2ViSW5zcGVjdG9yKToKKyAgICAgICAgKFRlc3RSdW5u
ZXI6OmNsb3NlV2ViSW5zcGVjdG9yKToKKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvbWFpbi5jOgor
ICAgICAgICAob25faW5zcGVjdG9yX2Vjb3JlX2V2YXNfcmVzaXplKToKKyAgICAgICAgKG9uX2tl
eV9kb3duKToKKyAgICAgICAgKG9uX2luc3BlY3Rvcl92aWV3X2NyZWF0ZSk6CisgICAgICAgIChv
bl9pbnNwZWN0b3Jfdmlld19jbG9zZSk6CisgICAgICAgIChvbl9pbnNwZWN0b3Jfdmlld19kZXN0
cm95ZWQpOgorICAgICAgICAoYnJvd3NlckNyZWF0ZSk6CisgICAgICAgICh3ZWJJbnNwZWN0b3JD
cmVhdGUpOgorICAgICAgICAoY2xvc2VXaW5kb3cpOgorICAgICAgICAobWFpbl9zaWduYWxfZXhp
dCk6CisKIDIwMTItMTAtMDkgIExhc3psbyBHb21ib3MgIDxsLmdvbWJvc0BzYW1zdW5nLmNvbT4K
IAogICAgICAgICBbUXRdIFJlbW92ZSByZWR1bmRhbnQgSkFWQVNDUklQVENPUkVfSklUIHZhcmlh
YmxlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVD
aHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21l
LmNwcAppbmRleCAyNTU5NWJkY2M3MzBmZGJlZmNlMGI1ZjU5YTk0MWFlMGM3YjgxYzY2Li45OTMx
MzVlZTQ5YTA4MTI2Y2NiZTA4ZGEzMzcyMDc0MWJiM2FjZjRmIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKQEAgLTEzOSw3ICsxMzks
NyBAQCBFdmFzX09iamVjdCogRHVtcFJlbmRlclRyZWVDaHJvbWU6OmNyZWF0ZVZpZXcoKSBjb25z
dAogICAgIHJldHVybiB2aWV3OwogfQogCi1FdmFzX09iamVjdCogRHVtcFJlbmRlclRyZWVDaHJv
bWU6OmNyZWF0ZVdlYkluc3BlY3RvclZpZXcoKQorRXZhc19PYmplY3QqIER1bXBSZW5kZXJUcmVl
Q2hyb21lOjpjcmVhdGVJbnNwZWN0b3JWaWV3KCkKIHsKICAgICBFdmFzX09iamVjdCogaW5zcGVj
dG9yVmlldyA9IGRydFZpZXdBZGQobV9ldmFzKTsKICAgICBpZiAoIWluc3BlY3RvclZpZXcpCkBA
IC0xNjEsOSArMTYxLDkgQEAgRXZhc19PYmplY3QqIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpjcmVh
dGVXZWJJbnNwZWN0b3JWaWV3KCkKICAgICByZXR1cm4gaW5zcGVjdG9yVmlldzsKIH0KIAotdm9p
ZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6cmVtb3ZlV2ViSW5zcGVjdG9yVmlldygpCit2b2lkIER1
bXBSZW5kZXJUcmVlQ2hyb21lOjpyZW1vdmVJbnNwZWN0b3JWaWV3KCkKIHsKLSAgICBFdmFzX09i
amVjdCogaW5zcGVjdG9yVmlldyA9IGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19nZXQobWFp
blZpZXcoKSk7CisgICAgRXZhc19PYmplY3QqIGluc3BlY3RvclZpZXcgPSBld2tfdmlld19pbnNw
ZWN0b3Jfdmlld19nZXQobWFpblZpZXcoKSk7CiAgICAgaWYgKCFpbnNwZWN0b3JWaWV3KQogICAg
ICAgICByZXR1cm47CiAKQEAgLTE3MSwxNCArMTcxLDE0IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVD
aHJvbWU6OnJlbW92ZVdlYkluc3BlY3RvclZpZXcoKQogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2RlbChtYWluRnJhbWUsICJsb2FkLGZpbmlzaGVkIiwgb25JbnNwZWN0b3JGcmFtZUxv
YWRGaW5pc2hlZCk7CiAKICAgICBldmFzX29iamVjdF9kZWwoaW5zcGVjdG9yVmlldyk7Ci0gICAg
ZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3X3NldChtYWluVmlldygpLCAwKTsKKyAgICBld2tf
dmlld19pbnNwZWN0b3Jfdmlld19zZXQobWFpblZpZXcoKSwgMCk7CiB9CiAKIHZvaWQgRHVtcFJl
bmRlclRyZWVDaHJvbWU6OndhaXRJbnNwZWN0b3JMb2FkRmluaXNoZWQoKQogewogICAgIC8vIFdh
aXRzIHVudGlsIHRoZSBwYWdlIGhhcyBmaW5pc2hlZCBsb2FkaW5nLgogICAgIC8vIEJlY2F1c2Ug
aXQgY2FuJ3QgY29tcGxldGUgbG9hZGluZyBpbnNwZWN0b3IuaHRtbCBiZWZvcmUgbG9hZGluZyB0
ZXN0VVJMLgotICAgIEV2YXNfT2JqZWN0KiBpbnNwZWN0b3JWaWV3ID0gZXdrX3ZpZXdfd2ViX2lu
c3BlY3Rvcl92aWV3X2dldChtYWluVmlldygpKTsKKyAgICBFdmFzX09iamVjdCogaW5zcGVjdG9y
VmlldyA9IGV3a192aWV3X2luc3BlY3Rvcl92aWV3X2dldChtYWluVmlldygpKTsKICAgICBpZiAo
aW5zcGVjdG9yVmlldykKICAgICAgICAgZWNvcmVfbWFpbl9sb29wX2JlZ2luKCk7CiB9CkBAIC02
NzcsMTkgKzY3NywxOSBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbldlYlZpZXdQb3B1
bGF0ZVZpc2l0ZWRMaW5rcyh2b2lkKiwgRXZhc19PYmplY3QqIGV3awogCiB2b2lkIER1bXBSZW5k
ZXJUcmVlQ2hyb21lOjpvbkluc3BlY3RvclZpZXdDcmVhdGUodm9pZCosIEV2YXNfT2JqZWN0Kiwg
dm9pZCopCiB7Ci0gICAgRXZhc19PYmplY3QqIGluc3BlY3RvclZpZXcgPSBicm93c2VyLT5jcmVh
dGVXZWJJbnNwZWN0b3JWaWV3KCk7CisgICAgRXZhc19PYmplY3QqIGluc3BlY3RvclZpZXcgPSBi
cm93c2VyLT5jcmVhdGVJbnNwZWN0b3JWaWV3KCk7CiAgICAgaWYgKGluc3BlY3RvclZpZXcpCi0g
ICAgICAgIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19zZXQoYnJvd3Nlci0+bWFpblZpZXco
KSwgaW5zcGVjdG9yVmlldyk7CisgICAgICAgIGV3a192aWV3X2luc3BlY3Rvcl92aWV3X3NldChi
cm93c2VyLT5tYWluVmlldygpLCBpbnNwZWN0b3JWaWV3KTsKIH0KIAogdm9pZCBEdW1wUmVuZGVy
VHJlZUNocm9tZTo6b25JbnNwZWN0b3JWaWV3Q2xvc2Uodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9p
ZCopCiB7Ci0gICAgYnJvd3Nlci0+cmVtb3ZlV2ViSW5zcGVjdG9yVmlldygpOworICAgIGJyb3dz
ZXItPnJlbW92ZUluc3BlY3RvclZpZXcoKTsKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9t
ZTo6b25JbnNwZWN0b3JGcmFtZUxvYWRGaW5pc2hlZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lk
KikKIHsKLSAgICBFdmFzX09iamVjdCogaW5zcGVjdG9yVmlldyA9IGV3a192aWV3X3dlYl9pbnNw
ZWN0b3Jfdmlld19nZXQoYnJvd3Nlci0+bWFpblZpZXcoKSk7CisgICAgRXZhc19PYmplY3QqIGlu
c3BlY3RvclZpZXcgPSBld2tfdmlld19pbnNwZWN0b3Jfdmlld19nZXQoYnJvd3Nlci0+bWFpblZp
ZXcoKSk7CiAgICAgaWYgKGluc3BlY3RvclZpZXcpCiAgICAgICAgIGVjb3JlX21haW5fbG9vcF9x
dWl0KCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRl
clRyZWVDaHJvbWUuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNo
cm9tZS5oCmluZGV4IDI2N2MyMDAwM2M2MGQyYTIzZmYxZjY0MzlmMThiMGU5YzJkOGRmYmQuLjMy
YTM2NTQ5MDgxNTc5ZmRiNzZiNTYzZWQ1OTRkNDM4MTZmOGNhYzQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oCkBAIC00OCw4ICs0OCw4IEBA
IHB1YmxpYzoKICAgICBFdmFzX09iamVjdCogY3JlYXRlTmV3V2luZG93KCk7CiAgICAgdm9pZCBy
ZW1vdmVXaW5kb3coRXZhc19PYmplY3QqKTsKIAotICAgIEV2YXNfT2JqZWN0KiBjcmVhdGVXZWJJ
bnNwZWN0b3JWaWV3KCk7Ci0gICAgdm9pZCByZW1vdmVXZWJJbnNwZWN0b3JWaWV3KCk7CisgICAg
RXZhc19PYmplY3QqIGNyZWF0ZUluc3BlY3RvclZpZXcoKTsKKyAgICB2b2lkIHJlbW92ZUluc3Bl
Y3RvclZpZXcoKTsKICAgICB2b2lkIHdhaXRJbnNwZWN0b3JMb2FkRmluaXNoZWQoKTsKIAogICAg
IGNvbnN0IFZlY3RvcjxFdmFzX09iamVjdCo+JiBleHRyYVZpZXdzKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKaW5kZXggOGZjOTI2YWViYzE4ZTQ5
MzMwMzkzYjQwZGViYTdlNTg3MzdhNTJmNi4uYzQwODJjNmQ4YWNjZTIzMGQ1YjEwNTVkZThiZWUx
MjhmNTM5ZjkwYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5u
ZXJFZmwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNw
cApAQCAtNzM5LDEzICs3MzksMTMgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRBc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZChib29sKQogCiB2b2lkIFRlc3RSdW5uZXI6OnNob3dXZWJJbnNw
ZWN0b3IoKQogewotICAgIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfc2hvdyhicm93c2VyLT5tYWlu
VmlldygpKTsKKyAgICBld2tfdmlld19pbnNwZWN0b3Jfc2hvdyhicm93c2VyLT5tYWluVmlldygp
KTsKICAgICBicm93c2VyLT53YWl0SW5zcGVjdG9yTG9hZEZpbmlzaGVkKCk7CiB9CiAKIHZvaWQg
VGVzdFJ1bm5lcjo6Y2xvc2VXZWJJbnNwZWN0b3IoKQogewotICAgIGV3a192aWV3X3dlYl9pbnNw
ZWN0b3JfY2xvc2UoYnJvd3Nlci0+bWFpblZpZXcoKSk7CisgICAgZXdrX3ZpZXdfaW5zcGVjdG9y
X2Nsb3NlKGJyb3dzZXItPm1haW5WaWV3KCkpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OmV2YWx1
YXRlSW5XZWJJbnNwZWN0b3IobG9uZyBjYWxsSWQsIEpTU3RyaW5nUmVmIHNjcmlwdCkKZGlmZiAt
LWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMgYi9Ub29scy9FV2ViTGF1bmNoZXIvbWFp
bi5jCmluZGV4IGZlNzEwOGU0ZWNjYWFmZmI1NDA5OTBmZWY2NDg5ODgwODJiM2I5OGQuLjJhZmVj
NmI4ZTllY2YwYjEwMmUxM2ZkNDg0NTA1ZjIwNDUyNzA4ZTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0VX
ZWJMYXVuY2hlci9tYWluLmMKKysrIGIvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYwpAQCAtMjU3
LDcgKzI1Nyw3IEBAIG9uX2Jyb3dzZXJfZWNvcmVfZXZhc19yZXNpemUoRWNvcmVfRXZhcyAqZWUp
CiB9CiAKIHN0YXRpYyB2b2lkCi1vbl93ZWJfaW5zcGVjdG9yX2Vjb3JlX2V2YXNfcmVzaXplKEVj
b3JlX0V2YXMgKmVlKQorb25faW5zcGVjdG9yX2Vjb3JlX2V2YXNfcmVzaXplKEVjb3JlX0V2YXMg
KmVlKQogewogICAgIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3OwogICAgIGludCB3LCBoOwpAQCAtNjM1
LDEzICs2MzUsMTMgQEAgb25fa2V5X2Rvd24odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmpl
Y3QgKm9iaiwgdm9pZCAqZXZlbnRfaW5mbykKICAgICAgICAgZXdrX3NlY3VyaXR5X29yaWdpbl9m
cmVlKG9yaWdpbik7CiAgICAgICAgIGV3a193ZWJfZGF0YWJhc2VfbGlzdF9mcmVlKGRhdGFiYXNl
TGlzdCk7CiAgICAgfSBlbHNlIGlmICghc3RyY21wKGV2LT5rZXksICJpIikgJiYgY3RybFByZXNz
ZWQpIHsKLSAgICAgICAgRXZhc19PYmplY3QgKmluc3BlY3Rvcl92aWV3ID0gZXdrX3ZpZXdfd2Vi
X2luc3BlY3Rvcl92aWV3X2dldChvYmopOworICAgICAgICBFdmFzX09iamVjdCAqaW5zcGVjdG9y
X3ZpZXcgPSBld2tfdmlld19pbnNwZWN0b3Jfdmlld19nZXQob2JqKTsKICAgICAgICAgaWYgKGlu
c3BlY3Rvcl92aWV3KSB7CiAgICAgICAgICAgICBpbmZvKCJXZWIgSW5zcGVjdG9yIGNsb3NlXG4i
KTsKLSAgICAgICAgICAgIGV3a192aWV3X3dlYl9pbnNwZWN0b3JfY2xvc2Uob2JqKTsKKyAgICAg
ICAgICAgIGV3a192aWV3X2luc3BlY3Rvcl9jbG9zZShvYmopOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgaW5mbygiV2ViIEluc3BlY3RvciBzaG93XG4iKTsKLSAgICAgICAgICAgIGV3
a192aWV3X3dlYl9pbnNwZWN0b3Jfc2hvdyhvYmopOworICAgICAgICAgICAgZXdrX3ZpZXdfaW5z
cGVjdG9yX3Nob3cob2JqKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTY1OSw3ICs2NTksNyBA
QCBvbl9icm93c2VyX2RlbCh2b2lkICpkYXRhLCBFdmFzICpldmFzLCBFdmFzX09iamVjdCAqYnJv
d3Nlciwgdm9pZCAqZXZlbnQpCiB9CiAKIHN0YXRpYyB2b2lkCi1vbl93ZWJfaW5zcGVjdG9yX3Zp
ZXdfY3JlYXRlKHZvaWQgKnVzZXJfZGF0YSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQgKmV2
ZW50X2luZm8pCitvbl9pbnNwZWN0b3Jfdmlld19jcmVhdGUodm9pZCAqdXNlcl9kYXRhLCBFdmFz
X09iamVjdCAqd2Vidmlldywgdm9pZCAqZXZlbnRfaW5mbykKIHsKICAgICBFTGF1bmNoZXIgKmFw
cF9icm93c2VyID0gKEVMYXVuY2hlciAqKXVzZXJfZGF0YTsKIApAQCAtNjY3LDE0ICs2NjcsMTQg
QEAgb25fd2ViX2luc3BlY3Rvcl92aWV3X2NyZWF0ZSh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2Jq
ZWN0ICp3ZWJ2aWV3LCB2b2lkICpldmVudF8KIH0KIAogc3RhdGljIHZvaWQKLW9uX3dlYl9pbnNw
ZWN0b3Jfdmlld19jbG9zZSh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2
b2lkICpldmVudF9pbmZvKQorb25faW5zcGVjdG9yX3ZpZXdfY2xvc2Uodm9pZCAqdXNlcl9kYXRh
LCBFdmFzX09iamVjdCAqd2Vidmlldywgdm9pZCAqZXZlbnRfaW5mbykKIHsKICAgICBFaW5hX0xp
c3QgKmw7CiAgICAgdm9pZCAqYXBwOwogICAgIEVMYXVuY2hlciAqYXBwX2Jyb3dzZXIgPSAoRUxh
dW5jaGVyICopdXNlcl9kYXRhOwogICAgIEV2YXNfT2JqZWN0ICppbnNwZWN0b3JfdmlldyA9IChF
dmFzX09iamVjdCAqKWV2ZW50X2luZm87CiAKLSAgICBld2tfdmlld193ZWJfaW5zcGVjdG9yX3Zp
ZXdfc2V0KGFwcF9icm93c2VyLT5icm93c2VyLCBOVUxMKTsKKyAgICBld2tfdmlld19pbnNwZWN0
b3Jfdmlld19zZXQoYXBwX2Jyb3dzZXItPmJyb3dzZXIsIE5VTEwpOwogCiAgICAgRUlOQV9MSVNU
X0ZPUkVBQ0god2luZG93cywgbCwgYXBwKQogICAgICAgICBpZiAoKChFTGF1bmNoZXIgKilhcHAp
LT5icm93c2VyID09IGluc3BlY3Rvcl92aWV3KQpAQCAtNjg2LDcgKzY4Niw3IEBAIG9uX3dlYl9p
bnNwZWN0b3Jfdmlld19jbG9zZSh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3
LCB2b2lkICpldmVudF9pCiB9CiAKIHN0YXRpYyB2b2lkCi1vbl93ZWJfaW5zcGVjdG9yX3ZpZXdf
ZGVzdHJveWVkKEVjb3JlX0V2YXMgKmVlKQorb25faW5zcGVjdG9yX3ZpZXdfZGVzdHJveWVkKEVj
b3JlX0V2YXMgKmVlKQogewogICAgIEVMYXVuY2hlciAqYXBwOwogCkBAIC03MjksOCArNzI5LDgg
QEAgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwsIFVzZXJfQXJndW1lbnRzICp1c2VyQXJn
cykKICAgICBldmFzX29iamVjdF9uYW1lX3NldChhcHBCcm93c2VyLT5icm93c2VyLCAiYnJvd3Nl
ciIpOwogCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcEJyb3dzZXItPmJy
b3dzZXIsICJpbnB1dG1ldGhvZCxjaGFuZ2VkIiwgb25faW5wdXRtZXRob2RfY2hhbmdlZCwgYXBw
QnJvd3Nlcik7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcEJyb3dzZXIt
PmJyb3dzZXIsICJpbnNwZWN0b3IsdmlldyxjbG9zZSIsIG9uX3dlYl9pbnNwZWN0b3Jfdmlld19j
bG9zZSwgYXBwQnJvd3Nlcik7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFw
cEJyb3dzZXItPmJyb3dzZXIsICJpbnNwZWN0b3IsdmlldyxjcmVhdGUiLCBvbl93ZWJfaW5zcGVj
dG9yX3ZpZXdfY3JlYXRlLCBhcHBCcm93c2VyKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxs
YmFja19hZGQoYXBwQnJvd3Nlci0+YnJvd3NlciwgImluc3BlY3Rvcix2aWV3LGNsb3NlIiwgb25f
aW5zcGVjdG9yX3ZpZXdfY2xvc2UsIGFwcEJyb3dzZXIpOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X2NhbGxiYWNrX2FkZChhcHBCcm93c2VyLT5icm93c2VyLCAiaW5zcGVjdG9yLHZpZXcsY3JlYXRl
Iiwgb25faW5zcGVjdG9yX3ZpZXdfY3JlYXRlLCBhcHBCcm93c2VyKTsKICAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19hZGQoYXBwQnJvd3Nlci0+YnJvd3NlciwgImxvYWQsZXJyb3IiLCBv
bl9sb2FkX2Vycm9yLCBhcHBCcm93c2VyKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19hZGQoYXBwQnJvd3Nlci0+YnJvd3NlciwgImxvYWQsZmluaXNoZWQiLCBvbl9sb2FkX2Zpbmlz
aGVkLCBhcHBCcm93c2VyKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBw
QnJvd3Nlci0+YnJvd3NlciwgImxvYWQscHJvZ3Jlc3MiLCBvbl9wcm9ncmVzcywgYXBwQnJvd3Nl
cik7CkBAIC03NzcsOCArNzc3LDggQEAgd2ViSW5zcGVjdG9yQ3JlYXRlKEVMYXVuY2hlciAqYXBw
QnJvd3NlcikKICAgICAgICAgcmV0dXJuIHF1aXQoRUlOQV9GQUxTRSwgIkVSUk9SOiBjb3VsZCBu
b3QgY3JlYXRlIGFuIGluc3BlY3RvciB3aW5kb3dcbiIpOwogCiAgICAgZWNvcmVfZXZhc190aXRs
ZV9zZXQoYXBwSW5zcGVjdG9yLT5lZSwgIldlYiBJbnNwZWN0b3IiKTsKLSAgICBlY29yZV9ldmFz
X2NhbGxiYWNrX3Jlc2l6ZV9zZXQoYXBwSW5zcGVjdG9yLT5lZSwgb25fd2ViX2luc3BlY3Rvcl9l
Y29yZV9ldmFzX3Jlc2l6ZSk7Ci0gICAgZWNvcmVfZXZhc19jYWxsYmFja19kZWxldGVfcmVxdWVz
dF9zZXQoYXBwSW5zcGVjdG9yLT5lZSwgb25fd2ViX2luc3BlY3Rvcl92aWV3X2Rlc3Ryb3llZCk7
CisgICAgZWNvcmVfZXZhc19jYWxsYmFja19yZXNpemVfc2V0KGFwcEluc3BlY3Rvci0+ZWUsIG9u
X2luc3BlY3Rvcl9lY29yZV9ldmFzX3Jlc2l6ZSk7CisgICAgZWNvcmVfZXZhc19jYWxsYmFja19k
ZWxldGVfcmVxdWVzdF9zZXQoYXBwSW5zcGVjdG9yLT5lZSwgb25faW5zcGVjdG9yX3ZpZXdfZGVz
dHJveWVkKTsKIAogICAgIGV2YXNfb2JqZWN0X25hbWVfc2V0KGFwcEluc3BlY3Rvci0+YnJvd3Nl
ciwgImluc3BlY3RvciIpOwogCkBAIC03OTAsNyArNzkwLDcgQEAgd2ViSW5zcGVjdG9yQ3JlYXRl
KEVMYXVuY2hlciAqYXBwQnJvd3NlcikKIAogICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldChhcHBJ
bnNwZWN0b3ItPmJyb3dzZXIsIEVJTkFfVFJVRSk7CiAKLSAgICBld2tfdmlld193ZWJfaW5zcGVj
dG9yX3ZpZXdfc2V0KGFwcEJyb3dzZXItPmJyb3dzZXIsIGFwcEluc3BlY3Rvci0+YnJvd3Nlcik7
CisgICAgZXdrX3ZpZXdfaW5zcGVjdG9yX3ZpZXdfc2V0KGFwcEJyb3dzZXItPmJyb3dzZXIsIGFw
cEluc3BlY3Rvci0+YnJvd3Nlcik7CiAKICAgICByZXR1cm4gMTsKIH0KQEAgLTg1Niw3ICs4NTYs
NyBAQCBjbG9zZVdpbmRvdyhFY29yZV9FdmFzICplZSkKICAgICBFTGF1bmNoZXIgKmFwcDsKIAog
ICAgIGFwcCA9IGZpbmRfYXBwX2Zyb21fZWUoZWUpOwotICAgIGV3a192aWV3X3dlYl9pbnNwZWN0
b3JfY2xvc2UoYXBwLT5icm93c2VyKTsKKyAgICBld2tfdmlld19pbnNwZWN0b3JfY2xvc2UoYXBw
LT5icm93c2VyKTsKIAogICAgIHdpbmRvd3MgPSBlaW5hX2xpc3RfcmVtb3ZlKHdpbmRvd3MsIGFw
cCk7CiAgICAgdXJsX2Jhcl9kZWwoYXBwLT51cmxfYmFyKTsKQEAgLTg3MCw3ICs4NzAsNyBAQCBt
YWluX3NpZ25hbF9leGl0KHZvaWQgKmRhdGEsIGludCBldl90eXBlLCB2b2lkICpldikKICAgICBF
TGF1bmNoZXIgKmFwcDsKICAgICB3aGlsZSAod2luZG93cykgewogICAgICAgICBhcHAgPSAoRUxh
dW5jaGVyKikgZWluYV9saXN0X2RhdGFfZ2V0KHdpbmRvd3MpOwotICAgICAgICBld2tfdmlld193
ZWJfaW5zcGVjdG9yX2Nsb3NlKGFwcC0+YnJvd3Nlcik7CisgICAgICAgIGV3a192aWV3X2luc3Bl
Y3Rvcl9jbG9zZShhcHAtPmJyb3dzZXIpOwogCiAgICAgICAgIGVjb3JlX2V2YXNfZnJlZShhcHAt
PmVlKTsKICAgICAgICAgd2luZG93cyA9IGVpbmFfbGlzdF9yZW1vdmUod2luZG93cywgYXBwKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>