<?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>97887</bug_id>
          
          <creation_ts>2012-09-28 03:50:22 -0700</creation_ts>
          <short_desc>[EFL][WK2] Remove &quot;web&quot; word from ewk_resource APIs</short_desc>
          <delta_ts>2012-10-05 00:46:53 -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>Other</rep_platform>
          <op_sys>Linux</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="Jongseok Yang">js45.yang</reporter>
          <assigned_to name="Jongseok Yang">js45.yang</assigned_to>
          <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>730460</commentid>
    <comment_count>0</comment_count>
    <who name="Jongseok Yang">js45.yang</who>
    <bug_when>2012-09-28 03:50:22 -0700</bug_when>
    <thetext>&quot;ewk&quot; means &quot;EFL WebKit&quot; and &quot;web&quot; word for the name ewk_web_resource implementation is redundant.
So, it&apos; better to remove &quot;web&quot; word from them.

The patch will be uploaded soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735263</commentid>
    <comment_count>1</comment_count>
      <attachid>167235</attachid>
    <who name="Jongseok Yang">js45.yang</who>
    <bug_when>2012-10-04 19:46:56 -0700</bug_when>
    <thetext>Created attachment 167235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735265</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-04 19:49:02 -0700</bug_when>
    <thetext>Attachment 167235 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/UIProcess/API/efl/ewk_resource.cpp:34:  Omit int when using unsigned  [runtime/unsigned] [1]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735268</commentid>
    <comment_count>3</comment_count>
      <attachid>167236</attachid>
    <who name="Jongseok Yang">js45.yang</who>
    <bug_when>2012-10-04 19:56:32 -0700</bug_when>
    <thetext>Created attachment 167236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735355</commentid>
    <comment_count>4</comment_count>
      <attachid>167236</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-04 22:36:52 -0700</bug_when>
    <thetext>Comment on attachment 167236
Patch

Looks good. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735451</commentid>
    <comment_count>5</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-05 00:39:07 -0700</bug_when>
    <thetext>For the record, http://lists.webkit.org/pipermail/webkit-efl/2012-September/000308.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735456</commentid>
    <comment_count>6</comment_count>
      <attachid>167236</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 00:46:49 -0700</bug_when>
    <thetext>Comment on attachment 167236
Patch

Clearing flags on attachment: 167236

Committed r130479: &lt;http://trac.webkit.org/changeset/130479&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735457</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 00:46:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167235</attachid>
            <date>2012-10-04 19:46:56 -0700</date>
            <delta_ts>2012-10-04 19:56:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97887-20121005114605.patch</filename>
            <type>text/plain</type>
            <size>34146</size>
            <attacher name="Jongseok Yang">js45.yang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTRkNWRmYmM4ZGFlY2Mw
MjNiNmIzMWQ1MjY0NTdhY2Q1YmJiZTdhOS4uOTc4NjI1MGM1NDg1ZmQ0YjIxNWUwMzM2MDJjZGY2
NWI1MjI3YmEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA5LTI4ICBKb25n
c2VvayBZYW5nICA8anM0NS55YW5nQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdW1dLMl0g
UmVtb3ZlICJ3ZWIiIHdvcmQgZnJvbSBld2tfcmVzb3VyY2UgQVBJcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc4ODcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgIndlYiIgd29yZCBmcm9tIGV3
a193ZWJfcmVzb3VyY2UgQVBJcy4KKyAgICAgICAgIndlYiIgd29yZCB3YXMgcmVkdW5kYW50IGJl
Y2F1c2UgImV3ayIgbWVhbnMgIkVGTCBXZWJLaXQiIGFuZCBlbm91Z2ggdG8gdW5kZXJzdGFuZCB0
aGUgbWVhbmluZyB3aXRoIGV3a19yZXNvdXJjZV9YWFguCisKKyAgICAgICAgKiBQbGF0Zm9ybUVm
bC5jbWFrZToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZS5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2ViX3Jlc291cmNlLmNwcC4KKyAgICAg
ICAgKF9Fd2tfUmVzb3VyY2UpOgorICAgICAgICAoX0V3a19SZXNvdXJjZTo6X0V3a19SZXNvdXJj
ZSk6CisgICAgICAgIChfRXdrX1Jlc291cmNlOjp+X0V3a19SZXNvdXJjZSk6CisgICAgICAgIChl
d2tfcmVzb3VyY2VfcmVmKToKKyAgICAgICAgKGV3a19yZXNvdXJjZV91bnJlZik6CisgICAgICAg
IChld2tfcmVzb3VyY2VfdXJsX2dldCk6CisgICAgICAgIChld2tfcmVzb3VyY2VfbmV3KToKKyAg
ICAgICAgKGV3a19yZXNvdXJjZV9tYWluX3Jlc291cmNlX2dldCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfd2ViX3Jlc291cmNlLmguCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3Jlc291cmNlX3ByaXZhdGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfcmVzb3VyY2VfcHJpdmF0ZS5oLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19w
cml2X2xvYWRpbmdfcmVzb3VyY2VzX2NsZWFyKToKKyAgICAgICAgKGV3a192aWV3X3Jlc291cmNl
X2xvYWRfaW5pdGlhdGVkKToKKyAgICAgICAgKGV3a192aWV3X3Jlc291cmNlX2xvYWRfcmVzcG9u
c2UpOgorICAgICAgICAoZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9mYWlsZWQpOgorICAgICAgICAo
ZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9maW5pc2hlZCk6CisgICAgICAgIChld2tfdmlld19yZXNv
dXJjZV9yZXF1ZXN0X3NlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3Jlc291cmNlX2xvYWRfY2xpZW50LmNw
cDoKKyAgICAgICAgKGRpZEluaXRpYXRlTG9hZEZvclJlc291cmNlKToKKwogMjAxMi0wOS0yNyAg
QmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmlu
ZGV4IGQzOTMyYjZkYzk2NzFhYTFiZDc4ZmM3NTczMzY4NTdmMjZjYTI0ZDkuLmM4ZTVjZGNhYjhm
YjlmM2Q5YWNkNThhYjJlYzk3Y2FjOWNlM2YzNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtl
CkBAIC01Myw2ICs1Myw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19tYWluLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZp
Z2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9w
dXBfbWVudV9pdGVtLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZS5jcHAK
ICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCiAgICAgVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3VybF9yZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxf
cmVzcG9uc2UuY3BwCkBAIC02NSw3ICs2Niw2IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNF
UwogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3Jlc291cmNlX2xvYWRfY2xpZW50LmNw
cAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3VpX2NsaWVudC5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfd2ViX2Vycm9yLmNwcAotICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3
a193ZWJfcmVzb3VyY2UuY3BwCiAKICAgICBVSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fp
cm8uY3BwCiAKQEAgLTIyMyw2ICsyMjMsNyBAQCBTRVQgKEVXZWJLaXQyX0hFQURFUlMKICAgICAi
JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19tYWluLmgi
CiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
bmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJD
RV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uaCIKKyAgICAiJHtD
TUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZS5o
IgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3NldHRpbmdzLmgiCiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdG91Y2guaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5oIgpAQCAtMjMwLDcgKzIzMSw2IEBAIFNF
VCAoRVdlYktpdDJfSEVBREVSUwogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5oIgogICAgICIke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCIKICAgICAiJHtD
TUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfZXJyb3Iu
aCIKLSAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a193ZWJfcmVzb3VyY2UuaCIKICkKIAogSU5TVEFMTChGSUxFUyAke0NNQUtFX0JJTkFSWV9ESVJ9
L1dlYktpdDIvZWZsL2V3ZWJraXQyLnBjIERFU1RJTkFUSU9OIGxpYi9wa2djb25maWcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaAppbmRleCAxM2VmYWIxM2Fj
MzQwOWNiM2I0Y2U5NjVjMTQwZjViYzBkNGQzNTJhLi42M2YyOTU4MWRmMjRlNzQ2NDBkYjBiZjE0
YjJkZmU0ZjM5ZGU1ZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9FV2ViS2l0Mi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VX
ZWJLaXQyLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJld2tfbWFpbi5oIgogI2luY2x1
ZGUgImV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oIgogI2luY2x1ZGUgImV3a19wb3B1
cF9tZW51X2l0ZW0uaCIKKyNpbmNsdWRlICJld2tfcmVzb3VyY2UuaCIKICNpbmNsdWRlICJld2tf
c2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tfdG91Y2guaCIKICNpbmNsdWRlICJld2tfdXJsX3Jl
cXVlc3QuaCIKQEAgLTQ2LDYgKzQ3LDUgQEAKICNpbmNsdWRlICJld2tfdXJsX3NjaGVtZV9yZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXcuaCIKICNpbmNsdWRlICJld2tfd2ViX2Vycm9yLmgi
Ci0jaW5jbHVkZSAiZXdrX3dlYl9yZXNvdXJjZS5oIgogCiAjZW5kaWYgLy8gRVdlYktpdDJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjlkNWZhZTk0OTY4NmE2YTk0MzgwOGY4MDA0MmY4ZmEyMDU0YzNiYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNv
dXJjZS5jcHAKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRl
bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgImV3a19yZXNvdXJjZS5oIgorCisjaW5jbHVkZSAiV0tFaW5h
U2hhcmVkU3RyaW5nLmgiCisjaW5jbHVkZSAiZXdrX3Jlc291cmNlX3ByaXZhdGUuaCIKKyNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK3N0cnVjdCBfRXdrX1Jlc291cmNlIHsKKyAgICB1
bnNpZ25lZCBpbnQgX19yZWY7IC8qKjwgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgb2JqZWN0
ICovCisgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHVybDsKKyAgICBib29sIGlzTWFpblJlc291cmNl
OworCisgICAgX0V3a19SZXNvdXJjZShjb25zdCBjaGFyKiB1cmwsIGJvb2wgaXNNYWluUmVzb3Vy
Y2UpCisgICAgICAgIDogX19yZWYoMSkKKyAgICAgICAgLCB1cmwodXJsKQorICAgICAgICAsIGlz
TWFpblJlc291cmNlKGlzTWFpblJlc291cmNlKQorICAgIHsgfQorCisgICAgfl9Fd2tfUmVzb3Vy
Y2UoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFfX3JlZik7CisgICAgfQorfTsKKworRXdrX1Jl
c291cmNlKiBld2tfcmVzb3VyY2VfcmVmKEV3a19SZXNvdXJjZSogcmVzb3VyY2UpCit7CisgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHJlc291cmNlLCAwKTsKKworICAgICsrcmVz
b3VyY2UtPl9fcmVmOworCisgICAgcmV0dXJuIHJlc291cmNlOworfQorCit2b2lkIGV3a19yZXNv
dXJjZV91bnJlZihFd2tfUmVzb3VyY2UqIHJlc291cmNlKQoreworICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOKHJlc291cmNlKTsKKworICAgIGlmICgtLXJlc291cmNlLT5fX3JlZikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgZGVsZXRlIHJlc291cmNlOworfQorCitjb25zdCBjaGFyKiBl
d2tfcmVzb3VyY2VfdXJsX2dldChjb25zdCBFd2tfUmVzb3VyY2UqIHJlc291cmNlKQoreworICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXNvdXJjZSwgMCk7CisKKyAgICByZXR1
cm4gcmVzb3VyY2UtPnVybDsKK30KKworLyoqCisgKiBAaW50ZXJuYWwKKyAqIENvbnN0cnVjdHMg
YSBFd2tfUmVzb3VyY2UuCisgKi8KK0V3a19SZXNvdXJjZSogZXdrX3Jlc291cmNlX25ldyhjb25z
dCBjaGFyKiB1cmwsIGJvb2wgaXNNYWluUmVzb3VyY2UpCit7CisgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKHVybCwgMCk7CisKKyAgICByZXR1cm4gbmV3IEV3a19SZXNvdXJjZSh1
cmwsIGlzTWFpblJlc291cmNlKTsKK30KKworRWluYV9Cb29sIGV3a19yZXNvdXJjZV9tYWluX3Jl
c291cmNlX2dldChjb25zdCBFd2tfUmVzb3VyY2UqIHJlc291cmNlKQoreworICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTChyZXNvdXJjZSwgZmFsc2UpOworCisgICAgcmV0dXJuIHJl
c291cmNlLT5pc01haW5SZXNvdXJjZTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3Jlc291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTJmNDc4NmI4MjBjZDQwNTU2ZTcw
MzMyZjU3YWY0YTljMjBlNDFiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZS5oCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKy8qKgorICogQGZpbGUgICAgZXdrX3Jlc291cmNlLmgKKyAqIEBicmllZiAg
IERlc2NyaWJlcyB0aGUgV2ViIFJlc291cmNlIEFQSS4KKyAqLworCisjaWZuZGVmIGV3a19yZXNv
dXJjZV9oCisjZGVmaW5lIGV3a19yZXNvdXJjZV9oCisKKyNpbmNsdWRlIDxFaW5hLmg+CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqIENyZWF0ZXMgYSB0
eXBlIG5hbWUgZm9yIEBhIEV3a19SZXNvdXJjZS4gKi8KK3R5cGVkZWYgc3RydWN0IF9Fd2tfUmVz
b3VyY2UgRXdrX1Jlc291cmNlOworCisvKioKKyAqIEluY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNv
dW50IG9mIHRoZSBnaXZlbiBvYmplY3QuCisgKgorICogQHBhcmFtIHJlc291cmNlIHRoZSByZXNv
dXJjZSBvYmplY3QgdG8gaW5jcmVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudAorICoKKyAqIEByZXR1
cm4gYSBwb2ludGVyIHRvIHRoZSBvYmplY3Qgb24gc3VjY2VzcywgQGMgTlVMTCBvdGhlcndpc2Uu
CisgKi8KK0VBUEkgRXdrX1Jlc291cmNlICpld2tfcmVzb3VyY2VfcmVmKEV3a19SZXNvdXJjZSAq
cmVzb3VyY2UpOworCisvKioKKyAqIERlY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRo
ZSBnaXZlbiBvYmplY3QsIHBvc3NpYmx5IGZyZWVpbmcgaXQuCisgKgorICogV2hlbiB0aGUgcmVm
ZXJlbmNlIGNvdW50IHJlYWNoZXMgMCwgdGhlIHJlc291cmNlIGlzIGZyZWVkLgorICoKKyAqIEBw
YXJhbSByZXNvdXJjZSB0aGUgcmVzb3VyY2Ugb2JqZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZlcmVu
Y2UgY291bnQKKyAqLworRUFQSSB2b2lkIGV3a19yZXNvdXJjZV91bnJlZihFd2tfUmVzb3VyY2Ug
KnJlc291cmNlKTsKKworLyoqCisgKiBRdWVyeSBVUkwgZm9yIHRoaXMgcmVzb3VyY2UuCisgKgor
ICogQHBhcmFtIHJlc291cmNlIHJlc291cmNlIG9iamVjdCB0byBxdWVyeS4KKyAqCisgKiBAcmV0
dXJuIHRoZSBVUkwgcG9pbnRlciwgdGhhdCBtYXkgYmUgQGMgTlVMTC4gVGhpcyBwb2ludGVyIGlz
CisgKiAgICAgICAgIGd1YXJhbnRlZWQgdG8gYmUgZWluYV9zdHJpbmdzaGFyZSwgc28gd2hlbmV2
ZXIgcG9zc2libGUKKyAqICAgICAgICAgc2F2ZSB5b3Vyc2VsZiBzb21lIGNwdSBjeWNsZXMgYW5k
IHVzZQorICogICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX3JlZigpIGluc3RlYWQgb2YgZWluYV9z
dHJpbmdzaGFyZV9hZGQoKSBvcgorICogICAgICAgICBzdHJkdXAoKS4KKyAqLworRUFQSSBjb25z
dCBjaGFyICpld2tfcmVzb3VyY2VfdXJsX2dldChjb25zdCBFd2tfUmVzb3VyY2UgKnJlc291cmNl
KTsKKworLyoqCisgKiBRdWVyeSBpZiB0aGlzIGlzIHRoZSBtYWluIHJlc291cmNlLgorICoKKyAq
IEBwYXJhbSByZXNvdXJjZSByZXNvdXJjZSBvYmplY3QgdG8gcXVlcnkuCisgKgorICogQHJldHVy
biBAYyBFSU5BX1RSVUUgaWYgdGhpcyBpcyB0aGUgbWFpbiByZXNvdXJjZSwgQGMgRUlOQV9GQUxT
RSBvdGhlcndpc2UKKyAqLworRUFQSSBFaW5hX0Jvb2wgZXdrX3Jlc291cmNlX21haW5fcmVzb3Vy
Y2VfZ2V0KGNvbnN0IEV3a19SZXNvdXJjZSAqcmVzb3VyY2UpOworCisjaWZkZWYgX19jcGx1c3Bs
dXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gZXdrX3Jlc291cmNlX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZV9wcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcmVzb3VyY2VfcHJpdmF0ZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmM3ZjgyOTg2MWZjN2U4ZDU0YjdmMDJiNTg1NWY5NzUxMjViMWM4N2YKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcmVzb3Vy
Y2VfcHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgZXdrX3Jlc291cmNlX3ByaXZhdGVfaAorI2RlZmluZSBld2tfcmVzb3VyY2VfcHJpdmF0ZV9o
CisKK3R5cGVkZWYgc3RydWN0IF9Fd2tfUmVzb3VyY2UgRXdrX1Jlc291cmNlOworCitFd2tfUmVz
b3VyY2UqIGV3a19yZXNvdXJjZV9uZXcoY29uc3QgY2hhciogdXJpLCBib29sIGlzTWFpblJlc291
cmNlKTsKKworI2VuZGlmIC8vIGV3a19yZXNvdXJjZV9wcml2YXRlX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCA1MTc1Zjc5NjlmYzAyNWI2
NTk4OWI4ODAzOTk3MzhkMmViMzQwMGI3Li5jOTNlNmY4YTUwZmM4NjczYWMyYzdlNTZhOWQ3N2Y3
ZTA4MDAxOWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXcuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnVfaXRlbS5o
IgogI2luY2x1ZGUgImV3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3
a19wcml2YXRlLmgiCisjaW5jbHVkZSAiZXdrX3Jlc291cmNlLmgiCiAjaW5jbHVkZSAiZXdrX3Nl
dHRpbmdzX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19maW5kX2NsaWVudF9wcml2YXRl
LmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfZm9ybV9jbGllbnRfcHJpdmF0ZS5oIgpAQCAtNTIsNyAr
NTMsNiBAQAogI2luY2x1ZGUgImV3a192aWV3X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmll
d19yZXNvdXJjZV9sb2FkX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfdWlf
Y2xpZW50X3ByaXZhdGUuaCIKLSNpbmNsdWRlICJld2tfd2ViX3Jlc291cmNlLmgiCiAjaW5jbHVk
ZSA8RWNvcmVfRXZhcy5oPgogI2luY2x1ZGUgPEVkamUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0N1
cnNvci5oPgpAQCAtNzksNyArNzksNyBAQCBzdGF0aWMgY29uc3QgY2hhciBFV0tfVklFV19UWVBF
X1NUUltdID0gIkVXSzJfVmlldyI7CiAKIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdEN1cnNvclNp
emUgPSAxNjsKIAotdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBFd2tfV2ViX1Jlc291cmNlKj4g
TG9hZGluZ1Jlc291cmNlc01hcDsKK3R5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgRXdrX1Jlc291
cmNlKj4gTG9hZGluZ1Jlc291cmNlc01hcDsKIHN0YXRpYyB2b2lkIF9ld2tfdmlld19wcml2X2xv
YWRpbmdfcmVzb3VyY2VzX2NsZWFyKExvYWRpbmdSZXNvdXJjZXNNYXAmIGxvYWRpbmdSZXNvdXJj
ZXNNYXApOwogCiBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CkBAIC00MjYsNyArNDI2
LDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3ByaXZfbG9hZGluZ19yZXNvdXJjZXNfY2xlYXIo
TG9hZGluZ1Jlc291cmNlc01hcCYgbG9hZGluZ1IKICAgICBMb2FkaW5nUmVzb3VyY2VzTWFwOjpp
dGVyYXRvciBpdCA9IGxvYWRpbmdSZXNvdXJjZXNNYXAuYmVnaW4oKTsKICAgICBMb2FkaW5nUmVz
b3VyY2VzTWFwOjppdGVyYXRvciBlbmQgPSBsb2FkaW5nUmVzb3VyY2VzTWFwLmVuZCgpOwogICAg
IGZvciAoIDsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICBld2tfd2ViX3Jlc291cmNlX3VucmVm
KGl0LT5zZWNvbmQpOworICAgICAgICBld2tfcmVzb3VyY2VfdW5yZWYoaXQtPnNlY29uZCk7CiAK
ICAgICBsb2FkaW5nUmVzb3VyY2VzTWFwLmNsZWFyKCk7CiB9CkBAIC05NDYsMTUgKzk0NiwxNSBA
QCBFd2tfU2V0dGluZ3MqIGV3a192aWV3X3NldHRpbmdzX2dldChjb25zdCBFdmFzX09iamVjdCog
ZXdrVmlldykKICAqCiAgKiBFbWl0cyBzaWduYWw6ICJyZXNvdXJjZSxyZXF1ZXN0LG5ldyIgd2l0
aCBwb2ludGVyIHRvIHJlc291cmNlIHJlcXVlc3QuCiAgKi8KLXZvaWQgZXdrX3ZpZXdfcmVzb3Vy
Y2VfbG9hZF9pbml0aWF0ZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIHVpbnQ2NF90IHJlc291cmNl
SWRlbnRpZmllciwgRXdrX1dlYl9SZXNvdXJjZSogcmVzb3VyY2UsIEV3a19VcmxfUmVxdWVzdCog
cmVxdWVzdCkKK3ZvaWQgZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9pbml0aWF0ZWQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgRXdrX1Jlc291cmNlKiBy
ZXNvdXJjZSwgRXdrX1VybF9SZXF1ZXN0KiByZXF1ZXN0KQogewogICAgIEVXS19WSUVXX1NEX0dF
VF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9P
Ul9SRVRVUk4oc21hcnREYXRhLCBwcml2KTsKIAotICAgIEV3a19XZWJfUmVzb3VyY2VfUmVxdWVz
dCByZXNvdXJjZVJlcXVlc3QgPSB7cmVzb3VyY2UsIHJlcXVlc3QsIDB9OworICAgIEV3a19SZXNv
dXJjZV9SZXF1ZXN0IHJlc291cmNlUmVxdWVzdCA9IHtyZXNvdXJjZSwgcmVxdWVzdCwgMH07CiAK
ICAgICAvLyBLZWVwIHRoZSByZXNvdXJjZSBpbnRlcm5hbGx5IHRvIHJldXNlIGl0IGxhdGVyLgot
ICAgIHByaXYtPmxvYWRpbmdSZXNvdXJjZXNNYXAuYWRkKHJlc291cmNlSWRlbnRpZmllciwgZXdr
X3dlYl9yZXNvdXJjZV9yZWYocmVzb3VyY2UpKTsKKyAgICBwcml2LT5sb2FkaW5nUmVzb3VyY2Vz
TWFwLmFkZChyZXNvdXJjZUlkZW50aWZpZXIsIGV3a19yZXNvdXJjZV9yZWYocmVzb3VyY2UpKTsK
IAogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgInJlc291cmNl
LHJlcXVlc3QsbmV3IiwgJnJlc291cmNlUmVxdWVzdCk7CiB9CkBAIC05NzMsOCArOTczLDggQEAg
dm9pZCBld2tfdmlld19yZXNvdXJjZV9sb2FkX3Jlc3BvbnNlKEV2YXNfT2JqZWN0KiBld2tWaWV3
LCB1aW50NjRfdCByZXNvdXJjZUlkZW4KICAgICBpZiAoIXByaXYtPmxvYWRpbmdSZXNvdXJjZXNN
YXAuY29udGFpbnMocmVzb3VyY2VJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
RXdrX1dlYl9SZXNvdXJjZSogcmVzb3VyY2UgPSBwcml2LT5sb2FkaW5nUmVzb3VyY2VzTWFwLmdl
dChyZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIEV3a19XZWJfUmVzb3VyY2VfTG9hZF9SZXNwb25z
ZSByZXNvdXJjZUxvYWRSZXNwb25zZSA9IHtyZXNvdXJjZSwgcmVzcG9uc2V9OworICAgIEV3a19S
ZXNvdXJjZSogcmVzb3VyY2UgPSBwcml2LT5sb2FkaW5nUmVzb3VyY2VzTWFwLmdldChyZXNvdXJj
ZUlkZW50aWZpZXIpOworICAgIEV3a19SZXNvdXJjZV9Mb2FkX1Jlc3BvbnNlIHJlc291cmNlTG9h
ZFJlc3BvbnNlID0ge3Jlc291cmNlLCByZXNwb25zZX07CiAgICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfY2FsbChld2tWaWV3LCAicmVzb3VyY2UscmVxdWVzdCxyZXNwb25zZSIsICZyZXNv
dXJjZUxvYWRSZXNwb25zZSk7CiB9CiAKQEAgLTk5Miw4ICs5OTIsOCBAQCB2b2lkIGV3a192aWV3
X3Jlc291cmNlX2xvYWRfZmFpbGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCB1aW50NjRfdCByZXNv
dXJjZUlkZW50aQogICAgIGlmICghcHJpdi0+bG9hZGluZ1Jlc291cmNlc01hcC5jb250YWlucyhy
ZXNvdXJjZUlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm47CiAKLSAgICBFd2tfV2ViX1Jlc291
cmNlKiByZXNvdXJjZSA9IHByaXYtPmxvYWRpbmdSZXNvdXJjZXNNYXAuZ2V0KHJlc291cmNlSWRl
bnRpZmllcik7Ci0gICAgRXdrX1dlYl9SZXNvdXJjZV9Mb2FkX0Vycm9yIHJlc291cmNlTG9hZEVy
cm9yID0ge3Jlc291cmNlLCBlcnJvcn07CisgICAgRXdrX1Jlc291cmNlKiByZXNvdXJjZSA9IHBy
aXYtPmxvYWRpbmdSZXNvdXJjZXNNYXAuZ2V0KHJlc291cmNlSWRlbnRpZmllcik7CisgICAgRXdr
X1Jlc291cmNlX0xvYWRfRXJyb3IgcmVzb3VyY2VMb2FkRXJyb3IgPSB7cmVzb3VyY2UsIGVycm9y
fTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJyZXNvdXJj
ZSxyZXF1ZXN0LGZhaWxlZCIsICZyZXNvdXJjZUxvYWRFcnJvcik7CiB9CiAKQEAgLTEwMTEsMTAg
KzEwMTEsMTAgQEAgdm9pZCBld2tfdmlld19yZXNvdXJjZV9sb2FkX2ZpbmlzaGVkKEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCB1aW50NjRfdCByZXNvdXJjZUlkZW4KICAgICBpZiAoIXByaXYtPmxvYWRp
bmdSZXNvdXJjZXNNYXAuY29udGFpbnMocmVzb3VyY2VJZGVudGlmaWVyKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgRXdrX1dlYl9SZXNvdXJjZSogcmVzb3VyY2UgPSBwcml2LT5sb2FkaW5nUmVz
b3VyY2VzTWFwLnRha2UocmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBFd2tfUmVzb3VyY2UqIHJl
c291cmNlID0gcHJpdi0+bG9hZGluZ1Jlc291cmNlc01hcC50YWtlKHJlc291cmNlSWRlbnRpZmll
cik7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3LCAicmVzb3Vy
Y2UscmVxdWVzdCxmaW5pc2hlZCIsIHJlc291cmNlKTsKIAotICAgIGV3a193ZWJfcmVzb3VyY2Vf
dW5yZWYocmVzb3VyY2UpOworICAgIGV3a19yZXNvdXJjZV91bnJlZihyZXNvdXJjZSk7CiB9CiAK
IC8qKgpAQCAtMTAzMSw4ICsxMDMxLDggQEAgdm9pZCBld2tfdmlld19yZXNvdXJjZV9yZXF1ZXN0
X3NlbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIHVpbnQ2NF90IHJlc291cmNlSWRlbnQKICAgICBp
ZiAoIXByaXYtPmxvYWRpbmdSZXNvdXJjZXNNYXAuY29udGFpbnMocmVzb3VyY2VJZGVudGlmaWVy
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRXdrX1dlYl9SZXNvdXJjZSogcmVzb3VyY2UgPSBw
cml2LT5sb2FkaW5nUmVzb3VyY2VzTWFwLmdldChyZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIEV3
a19XZWJfUmVzb3VyY2VfUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgPSB7cmVzb3VyY2UsIHJlcXVl
c3QsIHJlZGlyZWN0UmVzcG9uc2V9OworICAgIEV3a19SZXNvdXJjZSogcmVzb3VyY2UgPSBwcml2
LT5sb2FkaW5nUmVzb3VyY2VzTWFwLmdldChyZXNvdXJjZUlkZW50aWZpZXIpOworICAgIEV3a19S
ZXNvdXJjZV9SZXF1ZXN0IHJlc291cmNlUmVxdWVzdCA9IHtyZXNvdXJjZSwgcmVxdWVzdCwgcmVk
aXJlY3RSZXNwb25zZX07CiAKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3
a1ZpZXcsICJyZXNvdXJjZSxyZXF1ZXN0LHNlbnQiLCAmcmVzb3VyY2VSZXF1ZXN0KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCmluZGV4IGNjZmE2MzZj
NzVjNzk1NTIxMWVmMTM5NWM3MWNkNjA3OGY4NWJiMWUuLmVkNmIxMDdkMDE4YTc5NDgxYzFlMWQ4
MTY3ZDBiNDkwNDMxNmExYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3ZpZXcuaApAQCAtNTYsMTEgKzU2LDExIEBACiAgKiAtICJwb2xpY3ksZGVjaXNpb24sbmV3
LHdpbmRvdyIsIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbio6IGEgbmV3IHdpbmRvdyBw
b2xpY3kgZGVjaXNpb24gc2hvdWxkIGJlIHRha2VuLgogICogICBUbyBtYWtlIGEgcG9saWN5IGRl
Y2lzaW9uIGFzeW5jaHJvbm91c2x5LCBzaW1wbHkgaW5jcmVtZW50IHRoZSByZWZlcmVuY2UgY291
bnQgb2YgdGhlCiAgKiAgICNFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24gb2JqZWN0IHVz
aW5nIGV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9yZWYoKS4KLSAqIC0gInJlc291cmNl
LHJlcXVlc3QsZmFpbGVkIiwgY29uc3QgRXdrX1dlYl9SZXNvdXJjZV9Mb2FkX0Vycm9yKjogYSBy
ZXNvdXJjZSBmYWlsZWQgbG9hZGluZy4KLSAqIC0gInJlc291cmNlLHJlcXVlc3QsZmluaXNoZWQi
LCBjb25zdCBFd2tfV2ViX1Jlc291cmNlKjogYSByZXNvdXJjZSBmaW5pc2hlZCBsb2FkaW5nLgot
ICogLSAicmVzb3VyY2UscmVxdWVzdCxuZXciLCBjb25zdCBFd2tfV2ViX1Jlc291cmNlX1JlcXVl
c3QqOiBhIHJlc291cmNlIHJlcXVlc3Qgd2FzIGluaXRpYXRlZC4KLSAqIC0gInJlc291cmNlLHJl
cXVlc3QscmVzcG9uc2UiLCBFd2tfV2ViX1Jlc291cmNlX0xvYWRfUmVzcG9uc2UqOiBhIHJlc3Bv
bnNlIHRvIGEgcmVzb3VyY2UgcmVxdWVzdCB3YXMgcmVjZWl2ZWQuCi0gKiAtICJyZXNvdXJjZSxy
ZXF1ZXN0LHNlbnQiLCBjb25zdCBFd2tfV2ViX1Jlc291cmNlX1JlcXVlc3QqOiBhIHJlc291cmNl
IHJlcXVlc3Qgd2FzIHNlbnQuCisgKiAtICJyZXNvdXJjZSxyZXF1ZXN0LGZhaWxlZCIsIGNvbnN0
IEV3a19SZXNvdXJjZV9Mb2FkX0Vycm9yKjogYSByZXNvdXJjZSBmYWlsZWQgbG9hZGluZy4KKyAq
IC0gInJlc291cmNlLHJlcXVlc3QsZmluaXNoZWQiLCBjb25zdCBFd2tfUmVzb3VyY2UqOiBhIHJl
c291cmNlIGZpbmlzaGVkIGxvYWRpbmcuCisgKiAtICJyZXNvdXJjZSxyZXF1ZXN0LG5ldyIsIGNv
bnN0IEV3a19SZXNvdXJjZV9SZXF1ZXN0KjogYSByZXNvdXJjZSByZXF1ZXN0IHdhcyBpbml0aWF0
ZWQuCisgKiAtICJyZXNvdXJjZSxyZXF1ZXN0LHJlc3BvbnNlIiwgRXdrX1Jlc291cmNlX0xvYWRf
UmVzcG9uc2UqOiBhIHJlc3BvbnNlIHRvIGEgcmVzb3VyY2UgcmVxdWVzdCB3YXMgcmVjZWl2ZWQu
CisgKiAtICJyZXNvdXJjZSxyZXF1ZXN0LHNlbnQiLCBjb25zdCBFd2tfUmVzb3VyY2VfUmVxdWVz
dCo6IGEgcmVzb3VyY2UgcmVxdWVzdCB3YXMgc2VudC4KICAqIC0gInRleHQsZm91bmQiLCB1bnNp
Z25lZCBpbnQqOiB0aGUgcmVxdWVzdGVkIHRleHQgd2FzIGZvdW5kIGFuZCBpdCBnaXZlcyB0aGUg
bnVtYmVyIG9mIG1hdGNoZXMuCiAgKiAtICJ0aXRsZSxjaGFuZ2VkIiwgY29uc3QgY2hhcio6IHRp
dGxlIG9mIHRoZSBtYWluIGZyYW1lIHdhcyBjaGFuZ2VkLgogICogLSAidXJpLGNoYW5nZWQiLCBj
b25zdCBjaGFyKjogdXJpIG9mIHRoZSBtYWluIGZyYW1lIHdhcyBjaGFuZ2VkLgpAQCAtNzQsMTIg
Kzc0LDEyIEBACiAjaW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKICNpbmNsdWRlICJld2tfZG93bmxv
YWRfam9iLmgiCiAjaW5jbHVkZSAiZXdrX2ludGVudC5oIgorI2luY2x1ZGUgImV3a19yZXNvdXJj
ZS5oIgogI2luY2x1ZGUgImV3a19zZXR0aW5ncy5oIgogI2luY2x1ZGUgImV3a190b3VjaC5oIgog
I2luY2x1ZGUgImV3a191cmxfcmVxdWVzdC5oIgogI2luY2x1ZGUgImV3a191cmxfcmVzcG9uc2Uu
aCIKICNpbmNsdWRlICJld2tfd2ViX2Vycm9yLmgiCi0jaW5jbHVkZSAiZXdrX3dlYl9yZXNvdXJj
ZS5oIgogI2luY2x1ZGUgPEV2YXMuaD4KIAogI2lmZGVmIF9fY3BsdXNwbHVzCkBAIC0xOTcsMzkg
KzE5NywzOSBAQCBzdHJ1Y3QgX0V3a19WaWV3X1NtYXJ0X0RhdGEgewogICAgIH0gY2hhbmdlZDsK
IH07CiAKLS8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX1dlYl9SZXNvdXJjZV9SZXF1
ZXN0LgotdHlwZWRlZiBzdHJ1Y3QgX0V3a19XZWJfUmVzb3VyY2VfUmVxdWVzdCBFd2tfV2ViX1Jl
c291cmNlX1JlcXVlc3Q7CisvLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19SZXNvdXJj
ZV9SZXF1ZXN0LgordHlwZWRlZiBzdHJ1Y3QgX0V3a19SZXNvdXJjZV9SZXF1ZXN0IEV3a19SZXNv
dXJjZV9SZXF1ZXN0OwogCiAvKioKICAqIEBicmllZiBTdHJ1Y3R1cmUgY29udGFpbmluZyBkZXRh
aWxzIGFib3V0IGEgcmVzb3VyY2UgcmVxdWVzdC4KICAqLwotc3RydWN0IF9Fd2tfV2ViX1Jlc291
cmNlX1JlcXVlc3QgewotICAgIEV3a19XZWJfUmVzb3VyY2UgKnJlc291cmNlOyAvKio8IHJlc291
cmNlIGJlaW5nIHJlcXVlc3RlZCAqLworc3RydWN0IF9Fd2tfUmVzb3VyY2VfUmVxdWVzdCB7Cisg
ICAgRXdrX1Jlc291cmNlICpyZXNvdXJjZTsgLyoqPCByZXNvdXJjZSBiZWluZyByZXF1ZXN0ZWQg
Ki8KICAgICBFd2tfVXJsX1JlcXVlc3QgKnJlcXVlc3Q7IC8qKjwgVVJMIHJlcXVlc3QgZm9yIHRo
ZSByZXNvdXJjZSAqLwogICAgIEV3a19VcmxfUmVzcG9uc2UgKnJlZGlyZWN0X3Jlc3BvbnNlOyAv
Kio8IFBvc3NpYmxlIHJlZGlyZWN0IHJlc3BvbnNlIGZvciB0aGUgcmVzb3VyY2Ugb3IgQGMgTlVM
TCAqLwogfTsKIAotLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfV2ViX1Jlc291cmNl
X0xvYWRfUmVzcG9uc2UuCi10eXBlZGVmIHN0cnVjdCBfRXdrX1dlYl9SZXNvdXJjZV9Mb2FkX1Jl
c3BvbnNlIEV3a19XZWJfUmVzb3VyY2VfTG9hZF9SZXNwb25zZTsKKy8vLyBDcmVhdGVzIGEgdHlw
ZSBuYW1lIGZvciBfRXdrX1Jlc291cmNlX0xvYWRfUmVzcG9uc2UuCit0eXBlZGVmIHN0cnVjdCBf
RXdrX1Jlc291cmNlX0xvYWRfUmVzcG9uc2UgRXdrX1Jlc291cmNlX0xvYWRfUmVzcG9uc2U7CiAK
IC8qKgogICogQGJyaWVmIFN0cnVjdHVyZSBjb250YWluaW5nIGRldGFpbHMgYWJvdXQgYSByZXNw
b25zZSB0byBhIHJlc291cmNlIHJlcXVlc3QuCiAgKi8KLXN0cnVjdCBfRXdrX1dlYl9SZXNvdXJj
ZV9Mb2FkX1Jlc3BvbnNlIHsKLSAgICAgRXdrX1dlYl9SZXNvdXJjZSAqcmVzb3VyY2U7IC8qKjwg
cmVzb3VyY2UgcmVxdWVzdGVkICovCi0gICAgIEV3a19VcmxfUmVzcG9uc2UgKnJlc3BvbnNlOyAv
Kio8IHJlc291cmNlIGxvYWQgcmVzcG9uc2UgKi8KK3N0cnVjdCBfRXdrX1Jlc291cmNlX0xvYWRf
UmVzcG9uc2UgeworICAgIEV3a19SZXNvdXJjZSAqcmVzb3VyY2U7IC8qKjwgcmVzb3VyY2UgcmVx
dWVzdGVkICovCisgICAgRXdrX1VybF9SZXNwb25zZSAqcmVzcG9uc2U7IC8qKjwgcmVzb3VyY2Ug
bG9hZCByZXNwb25zZSAqLwogfTsKIAotLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tf
V2ViX1Jlc291cmNlX0xvYWRfRXJyb3IuCi10eXBlZGVmIHN0cnVjdCBfRXdrX1dlYl9SZXNvdXJj
ZV9Mb2FkX0Vycm9yIEV3a19XZWJfUmVzb3VyY2VfTG9hZF9FcnJvcjsKKy8vLyBDcmVhdGVzIGEg
dHlwZSBuYW1lIGZvciBfRXdrX1Jlc291cmNlX0xvYWRfRXJyb3IuCit0eXBlZGVmIHN0cnVjdCBf
RXdrX1Jlc291cmNlX0xvYWRfRXJyb3IgRXdrX1Jlc291cmNlX0xvYWRfRXJyb3I7CiAKIC8qKgog
ICogQGJyaWVmIFN0cnVjdHVyZSBjb250YWluaW5nIGRldGFpbHMgYWJvdXQgYSByZXNvdXJjZSBs
b2FkIGVycm9yLgogICoKICAqIERldGFpbHMgZ2l2ZW4gYWJvdXQgYSByZXNvdXJjZSBsb2FkIGZh
aWx1cmUuCiAgKi8KLXN0cnVjdCBfRXdrX1dlYl9SZXNvdXJjZV9Mb2FkX0Vycm9yIHsKLSAgICBF
d2tfV2ViX1Jlc291cmNlICpyZXNvdXJjZTsgLyoqPCByZXNvdXJjZSB0aGF0IGZhaWxlZCBsb2Fk
aW5nICovCitzdHJ1Y3QgX0V3a19SZXNvdXJjZV9Mb2FkX0Vycm9yIHsKKyAgICBFd2tfUmVzb3Vy
Y2UgKnJlc291cmNlOyAvKio8IHJlc291cmNlIHRoYXQgZmFpbGVkIGxvYWRpbmcgKi8KICAgICBF
d2tfV2ViX0Vycm9yICplcnJvcjsgLyoqPCBsb2FkIGVycm9yICovCiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmgKaW5kZXgg
NGNiYTIyZDM2ZmFkNWFjY2E3ZjViZmE1YjBjOWFmZjJjOGI5YTI5Ni4uOGViY2MxZTYwZGYyOGNl
ZjVlOTA3OWFiYzRhNDY3MWUzODlmNmM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaApAQCAtNDQsNyArNDQsNyBAQCB0eXBl
ZGVmIHN0cnVjdCBfRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0IEV3a19Gb3JtX1N1Ym1pc3Np
b25fUmVxdWVzdDsKIHR5cGVkZWYgc3RydWN0IF9Fd2tfVXJsX1JlcXVlc3QgRXdrX1VybF9SZXF1
ZXN0OwogdHlwZWRlZiBzdHJ1Y3QgX0V3a19VcmxfUmVzcG9uc2UgRXdrX1VybF9SZXNwb25zZTsK
IHR5cGVkZWYgc3RydWN0IF9Fd2tfV2ViX0Vycm9yIEV3a19XZWJfRXJyb3I7Ci10eXBlZGVmIHN0
cnVjdCBfRXdrX1dlYl9SZXNvdXJjZSBFd2tfV2ViX1Jlc291cmNlOwordHlwZWRlZiBzdHJ1Y3Qg
X0V3a19SZXNvdXJjZSBFd2tfUmVzb3VyY2U7CiB0eXBlZGVmIHN0cnVjdCBfRXdrX05hdmlnYXRp
b25fUG9saWN5X0RlY2lzaW9uIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjsKICNpZiBF
TkFCTEUoV0VCX0lOVEVOVFMpCiB0eXBlZGVmIHN0cnVjdCBfRXdrX0ludGVudCBFd2tfSW50ZW50
OwpAQCAtNzgsNyArNzgsNyBAQCBXS1BhZ2VSZWYgZXdrX3ZpZXdfcGFnZV9jcmVhdGUoRXZhc19P
YmplY3QqIGV3a1ZpZXcpOwogdm9pZCBld2tfdmlld190aXRsZV9jaGFuZ2VkKEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBjb25zdCBjaGFyKiB0aXRsZSk7CiB2b2lkIGV3a192aWV3X3Jlc291cmNlX2xv
YWRfZmFpbGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZp
ZXIsIEV3a19XZWJfRXJyb3IqIGVycm9yKTsKIHZvaWQgZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9m
aW5pc2hlZChFdmFzX09iamVjdCogZXdrVmlldywgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVy
KTsKLXZvaWQgZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9pbml0aWF0ZWQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgRXdrX1dlYl9SZXNvdXJjZSogcmVz
b3VyY2UsIEV3a19VcmxfUmVxdWVzdCogcmVxdWVzdCk7Cit2b2lkIGV3a192aWV3X3Jlc291cmNl
X2xvYWRfaW5pdGlhdGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCB1aW50NjRfdCByZXNvdXJjZUlk
ZW50aWZpZXIsIEV3a19SZXNvdXJjZSogcmVzb3VyY2UsIEV3a19VcmxfUmVxdWVzdCogcmVxdWVz
dCk7CiB2b2lkIGV3a192aWV3X3Jlc291cmNlX2xvYWRfcmVzcG9uc2UoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgRXdrX1VybF9SZXNwb25zZSogcmVz
cG9uc2UpOwogdm9pZCBld2tfdmlld19yZXNvdXJjZV9yZXF1ZXN0X3NlbnQoRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwgRXdrX1VybF9SZXF1ZXN0KiBy
ZXF1ZXN0LCBFd2tfVXJsX1Jlc3BvbnNlKiByZWRpcmVjdFJlc3BvbnNlKTsKIHZvaWQgZXdrX3Zp
ZXdfdGV4dF9mb3VuZChFdmFzX09iamVjdCogZXdrVmlldywgdW5zaWduZWQgaW50IG1hdGNoQ291
bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXdfcmVzb3VyY2VfbG9hZF9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9jbGllbnQuY3BwCmluZGV4IDExM2UxNzhiOWQx
OGI5NTM4ZDI5OWM1YmI5NzM0NGJjNzcwZjA1MmEuLjg2ZDhiYWIxNTJjOGY2NWE5OTllMDZiMTBi
YWM4YTA0MzQ3NzkzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3X3Jlc291cmNlX2xvYWRfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudC5jcHAKQEAg
LTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJXS1VSTC5oIgogI2luY2x1ZGUgIldLVVJMUmVxdWVz
dC5oIgogI2luY2x1ZGUgIldLVVJMUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJld2tfcmVzb3VyY2Uu
aCIKKyNpbmNsdWRlICJld2tfcmVzb3VyY2VfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a191cmxf
cmVxdWVzdC5oIgogI2luY2x1ZGUgImV3a191cmxfcmVxdWVzdF9wcml2YXRlLmgiCiAjaW5jbHVk
ZSAiZXdrX3VybF9yZXNwb25zZS5oIgpAQCAtNDAsOCArNDIsNiBAQAogI2luY2x1ZGUgImV3a192
aWV3X3Jlc291cmNlX2xvYWRfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfd2ViX2Vy
cm9yLmgiCiAjaW5jbHVkZSAiZXdrX3dlYl9lcnJvcl9wcml2YXRlLmgiCi0jaW5jbHVkZSAiZXdr
X3dlYl9yZXNvdXJjZS5oIgotI2luY2x1ZGUgImV3a193ZWJfcmVzb3VyY2VfcHJpdmF0ZS5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CkBAIC01NywxMCArNTcsMTAgQEAgc3RhdGljIHZvaWQgZGlkSW5pdGlhdGVMb2FkRm9yUmVzb3Vy
Y2UoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIHdrRnJhbWUsIHVpbnQ2NF90IHIKICAgICBib29sIGlz
TWFpblJlc291cmNlID0gKFdLRnJhbWVJc01haW5GcmFtZSh3a0ZyYW1lKSAmJiBwYWdlSXNQcm92
aXNpb25hbGx5TG9hZGluZyk7CiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHdrVXJsKEFkb3B0
V0ssIFdLVVJMUmVxdWVzdENvcHlVUkwod2tSZXF1ZXN0KSk7CiAKLSAgICBFd2tfV2ViX1Jlc291
cmNlKiByZXNvdXJjZSA9IGV3a193ZWJfcmVzb3VyY2VfbmV3KHRvSW1wbCh3a1VybC5nZXQoKSkt
PnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGlzTWFpblJlc291cmNlKTsKKyAgICBFd2tfUmVzb3Vy
Y2UqIHJlc291cmNlID0gZXdrX3Jlc291cmNlX25ldyh0b0ltcGwod2tVcmwuZ2V0KCkpLT5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCBpc01haW5SZXNvdXJjZSk7CiAgICAgRXdrX1VybF9SZXF1ZXN0
KiByZXF1ZXN0ID0gZXdrX3VybF9yZXF1ZXN0X25ldyh3a1JlcXVlc3QpOwogICAgIGV3a192aWV3
X3Jlc291cmNlX2xvYWRfaW5pdGlhdGVkKHRvRXdrVmlldyhjbGllbnRJbmZvKSwgcmVzb3VyY2VJ
ZGVudGlmaWVyLCByZXNvdXJjZSwgcmVxdWVzdCk7Ci0gICAgZXdrX3dlYl9yZXNvdXJjZV91bnJl
ZihyZXNvdXJjZSk7CisgICAgZXdrX3Jlc291cmNlX3VucmVmKHJlc291cmNlKTsKICAgICBld2tf
dXJsX3JlcXVlc3RfdW5yZWYocmVxdWVzdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfcmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dlYl9yZXNvdXJjZS5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDg5ODc5ZWVhZGI3NDU5MzM0ZWFkNzk3YjQ1MjU2NDYwZWFhOWM2ZGEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dlYl9yZXNvdXJjZS5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw5MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBv
cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiZXdrX3dlYl9yZXNvdXJjZS5oIgotCi0jaW5jbHVkZSAiV0tFaW5hU2hh
cmVkU3RyaW5nLmgiCi0jaW5jbHVkZSAiZXdrX3dlYl9yZXNvdXJjZV9wcml2YXRlLmgiCi0jaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi1zdHJ1Y3QgX0V3a19XZWJfUmVzb3VyY2Ugewot
ICAgIHVuc2lnbmVkIGludCBfX3JlZjsgLyoqPCB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBv
YmplY3QgKi8KLSAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdXJsOwotICAgIGJvb2wgaXNNYWluUmVz
b3VyY2U7Ci0KLSAgICBfRXdrX1dlYl9SZXNvdXJjZShjb25zdCBjaGFyKiB1cmwsIGJvb2wgaXNN
YWluUmVzb3VyY2UpCi0gICAgICAgIDogX19yZWYoMSkKLSAgICAgICAgLCB1cmwodXJsKQotICAg
ICAgICAsIGlzTWFpblJlc291cmNlKGlzTWFpblJlc291cmNlKQotICAgIHsgfQotCi0gICAgfl9F
d2tfV2ViX1Jlc291cmNlKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghX19yZWYpOwotICAgIH0K
LX07Ci0KLUV3a19XZWJfUmVzb3VyY2UqIGV3a193ZWJfcmVzb3VyY2VfcmVmKEV3a19XZWJfUmVz
b3VyY2UqIHJlc291cmNlKQotewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChy
ZXNvdXJjZSwgMCk7Ci0KLSAgICArK3Jlc291cmNlLT5fX3JlZjsKLQotICAgIHJldHVybiByZXNv
dXJjZTsKLX0KLQotdm9pZCBld2tfd2ViX3Jlc291cmNlX3VucmVmKEV3a19XZWJfUmVzb3VyY2Uq
IHJlc291cmNlKQotewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHJlc291cmNlKTsK
LQotICAgIGlmICgtLXJlc291cmNlLT5fX3JlZikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZGVs
ZXRlIHJlc291cmNlOwotfQotCi1jb25zdCBjaGFyKiBld2tfd2ViX3Jlc291cmNlX3VybF9nZXQo
Y29uc3QgRXdrX1dlYl9SZXNvdXJjZSogcmVzb3VyY2UpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKHJlc291cmNlLCAwKTsKLQotICAgIHJldHVybiByZXNvdXJjZS0+dXJs
OwotfQotCi0vKioKLSAqIEBpbnRlcm5hbAotICogQ29uc3RydWN0cyBhIEV3a19XZWJfUmVzb3Vy
Y2UuCi0gKi8KLUV3a19XZWJfUmVzb3VyY2UqIGV3a193ZWJfcmVzb3VyY2VfbmV3KGNvbnN0IGNo
YXIqIHVybCwgYm9vbCBpc01haW5SZXNvdXJjZSkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTl9WQUwodXJsLCAwKTsKLQotICAgIHJldHVybiBuZXcgRXdrX1dlYl9SZXNvdXJjZSh1
cmwsIGlzTWFpblJlc291cmNlKTsKLX0KLQotRWluYV9Cb29sIGV3a193ZWJfcmVzb3VyY2VfbWFp
bl9yZXNvdXJjZV9nZXQoY29uc3QgRXdrX1dlYl9SZXNvdXJjZSogcmVzb3VyY2UpCi17Ci0gICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHJlc291cmNlLCBmYWxzZSk7Ci0KLSAgICBy
ZXR1cm4gcmVzb3VyY2UtPmlzTWFpblJlc291cmNlOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dlYl9yZXNvdXJjZS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dlYl9yZXNvdXJjZS5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkYzJjZjA4N2Q4MmZhOGFhNTk1YTQzN2UzNjg3YmM4YjI4NTdkNjUzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfcmVzb3VyY2UuaAorKysgL2Rldi9udWxsCkBA
IC0xLDg3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRp
b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8qKgotICogQGZpbGUgICAgZXdr
X3dlYl9yZXNvdXJjZS5oCi0gKiBAYnJpZWYgICBEZXNjcmliZXMgdGhlIFdlYiBSZXNvdXJjZSBB
UEkuCi0gKi8KLQotI2lmbmRlZiBld2tfd2ViX3Jlc291cmNlX2gKLSNkZWZpbmUgZXdrX3dlYl9y
ZXNvdXJjZV9oCi0KLSNpbmNsdWRlIDxFaW5hLmg+Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0
ZXJuICJDIiB7Ci0jZW5kaWYKLQotLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEBhIEV3a19X
ZWJfUmVzb3VyY2UuICovCi10eXBlZGVmIHN0cnVjdCBfRXdrX1dlYl9SZXNvdXJjZSBFd2tfV2Vi
X1Jlc291cmNlOwotCi0vKioKLSAqIEluY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRo
ZSBnaXZlbiBvYmplY3QuCi0gKgotICogQHBhcmFtIHJlc291cmNlIHRoZSByZXNvdXJjZSBvYmpl
Y3QgdG8gaW5jcmVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudAotICoKLSAqIEByZXR1cm4gYSBwb2lu
dGVyIHRvIHRoZSBvYmplY3Qgb24gc3VjY2VzcywgQGMgTlVMTCBvdGhlcndpc2UuCi0gKi8KLUVB
UEkgRXdrX1dlYl9SZXNvdXJjZSAqZXdrX3dlYl9yZXNvdXJjZV9yZWYoRXdrX1dlYl9SZXNvdXJj
ZSAqcmVzb3VyY2UpOwotCi0vKioKLSAqIERlY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9m
IHRoZSBnaXZlbiBvYmplY3QsIHBvc3NpYmx5IGZyZWVpbmcgaXQuCi0gKgotICogV2hlbiB0aGUg
cmVmZXJlbmNlIGNvdW50IHJlYWNoZXMgMCwgdGhlIHJlc291cmNlIGlzIGZyZWVkLgotICoKLSAq
IEBwYXJhbSByZXNvdXJjZSB0aGUgcmVzb3VyY2Ugb2JqZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZl
cmVuY2UgY291bnQKLSAqLwotRUFQSSB2b2lkIGV3a193ZWJfcmVzb3VyY2VfdW5yZWYoRXdrX1dl
Yl9SZXNvdXJjZSAqcmVzb3VyY2UpOwotCi0vKioKLSAqIFF1ZXJ5IFVSTCBmb3IgdGhpcyByZXNv
dXJjZS4KLSAqCi0gKiBAcGFyYW0gcmVzb3VyY2UgcmVzb3VyY2Ugb2JqZWN0IHRvIHF1ZXJ5Lgot
ICoKLSAqIEByZXR1cm4gdGhlIFVSTCBwb2ludGVyLCB0aGF0IG1heSBiZSBAYyBOVUxMLiBUaGlz
IHBvaW50ZXIgaXMKLSAqICAgICAgICAgZ3VhcmFudGVlZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJl
LCBzbyB3aGVuZXZlciBwb3NzaWJsZQotICogICAgICAgICBzYXZlIHlvdXJzZWxmIHNvbWUgY3B1
IGN5Y2xlcyBhbmQgdXNlCi0gKiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVh
ZCBvZiBlaW5hX3N0cmluZ3NoYXJlX2FkZCgpIG9yCi0gKiAgICAgICAgIHN0cmR1cCgpLgotICov
Ci1FQVBJIGNvbnN0IGNoYXIgKmV3a193ZWJfcmVzb3VyY2VfdXJsX2dldChjb25zdCBFd2tfV2Vi
X1Jlc291cmNlICpyZXNvdXJjZSk7Ci0KLS8qKgotICogUXVlcnkgaWYgdGhpcyBpcyB0aGUgbWFp
biByZXNvdXJjZS4KLSAqCi0gKiBAcGFyYW0gcmVzb3VyY2UgcmVzb3VyY2Ugb2JqZWN0IHRvIHF1
ZXJ5LgotICoKLSAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoaXMgaXMgdGhlIG1haW4gcmVz
b3VyY2UsIEBjIEVJTkFfRkFMU0Ugb3RoZXJ3aXNlCi0gKi8KLUVBUEkgRWluYV9Cb29sIGV3a193
ZWJfcmVzb3VyY2VfbWFpbl9yZXNvdXJjZV9nZXQoY29uc3QgRXdrX1dlYl9SZXNvdXJjZSAqcmVz
b3VyY2UpOwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLy8gZXdr
X3dlYl9yZXNvdXJjZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfd2ViX3Jlc291cmNlX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a193ZWJfcmVzb3VyY2VfcHJpdmF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1YjQ0ZmUxOWYxYjUwYmI0NjE4OTIwZGY1OTI2OTU3ZjMwODNhYzMxLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfcmVzb3VyY2VfcHJpdmF0ZS5oCisrKyAvZGV2L251
bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jw
b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBld2tfd2Vi
X3Jlc291cmNlX3ByaXZhdGVfaAotI2RlZmluZSBld2tfd2ViX3Jlc291cmNlX3ByaXZhdGVfaAot
Ci10eXBlZGVmIHN0cnVjdCBfRXdrX1dlYl9SZXNvdXJjZSBFd2tfV2ViX1Jlc291cmNlOwotCi1F
d2tfV2ViX1Jlc291cmNlKiBld2tfd2ViX3Jlc291cmNlX25ldyhjb25zdCBjaGFyKiB1cmksIGJv
b2wgaXNNYWluUmVzb3VyY2UpOwotCi0jZW5kaWYgLy8gZXdrX3dlYl9yZXNvdXJjZV9wcml2YXRl
X2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167236</attachid>
            <date>2012-10-04 19:56:32 -0700</date>
            <delta_ts>2012-10-05 00:46:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97887-20121005115540.patch</filename>
            <type>text/plain</type>
            <size>34142</size>
            <attacher name="Jongseok Yang">js45.yang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTRkNWRmYmM4ZGFlY2Mw
MjNiNmIzMWQ1MjY0NTdhY2Q1YmJiZTdhOS4uOTc4NjI1MGM1NDg1ZmQ0YjIxNWUwMzM2MDJjZGY2
NWI1MjI3YmEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA5LTI4ICBKb25n
c2VvayBZYW5nICA8anM0NS55YW5nQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdW1dLMl0g
UmVtb3ZlICJ3ZWIiIHdvcmQgZnJvbSBld2tfcmVzb3VyY2UgQVBJcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc4ODcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgIndlYiIgd29yZCBmcm9tIGV3
a193ZWJfcmVzb3VyY2UgQVBJcy4KKyAgICAgICAgIndlYiIgd29yZCB3YXMgcmVkdW5kYW50IGJl
Y2F1c2UgImV3ayIgbWVhbnMgIkVGTCBXZWJLaXQiIGFuZCBlbm91Z2ggdG8gdW5kZXJzdGFuZCB0
aGUgbWVhbmluZyB3aXRoIGV3a19yZXNvdXJjZV9YWFguCisKKyAgICAgICAgKiBQbGF0Zm9ybUVm
bC5jbWFrZToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZS5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2ViX3Jlc291cmNlLmNwcC4KKyAgICAg
ICAgKF9Fd2tfUmVzb3VyY2UpOgorICAgICAgICAoX0V3a19SZXNvdXJjZTo6X0V3a19SZXNvdXJj
ZSk6CisgICAgICAgIChfRXdrX1Jlc291cmNlOjp+X0V3a19SZXNvdXJjZSk6CisgICAgICAgIChl
d2tfcmVzb3VyY2VfcmVmKToKKyAgICAgICAgKGV3a19yZXNvdXJjZV91bnJlZik6CisgICAgICAg
IChld2tfcmVzb3VyY2VfdXJsX2dldCk6CisgICAgICAgIChld2tfcmVzb3VyY2VfbmV3KToKKyAg
ICAgICAgKGV3a19yZXNvdXJjZV9tYWluX3Jlc291cmNlX2dldCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfd2ViX3Jlc291cmNlLmguCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3Jlc291cmNlX3ByaXZhdGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfcmVzb3VyY2VfcHJpdmF0ZS5oLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19w
cml2X2xvYWRpbmdfcmVzb3VyY2VzX2NsZWFyKToKKyAgICAgICAgKGV3a192aWV3X3Jlc291cmNl
X2xvYWRfaW5pdGlhdGVkKToKKyAgICAgICAgKGV3a192aWV3X3Jlc291cmNlX2xvYWRfcmVzcG9u
c2UpOgorICAgICAgICAoZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9mYWlsZWQpOgorICAgICAgICAo
ZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9maW5pc2hlZCk6CisgICAgICAgIChld2tfdmlld19yZXNv
dXJjZV9yZXF1ZXN0X3NlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3Jlc291cmNlX2xvYWRfY2xpZW50LmNw
cDoKKyAgICAgICAgKGRpZEluaXRpYXRlTG9hZEZvclJlc291cmNlKToKKwogMjAxMi0wOS0yNyAg
QmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmlu
ZGV4IGQzOTMyYjZkYzk2NzFhYTFiZDc4ZmM3NTczMzY4NTdmMjZjYTI0ZDkuLmM4ZTVjZGNhYjhm
YjlmM2Q5YWNkNThhYjJlYzk3Y2FjOWNlM2YzNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtl
CkBAIC01Myw2ICs1Myw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19tYWluLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZp
Z2F0aW9uX3BvbGljeV9kZWNpc2lvbi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9w
dXBfbWVudV9pdGVtLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZS5jcHAK
ICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuY3BwCiAgICAgVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3VybF9yZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxf
cmVzcG9uc2UuY3BwCkBAIC02NSw3ICs2Niw2IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNF
UwogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3Jlc291cmNlX2xvYWRfY2xpZW50LmNw
cAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3VpX2NsaWVudC5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfd2ViX2Vycm9yLmNwcAotICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3
a193ZWJfcmVzb3VyY2UuY3BwCiAKICAgICBVSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fp
cm8uY3BwCiAKQEAgLTIyMyw2ICsyMjMsNyBAQCBTRVQgKEVXZWJLaXQyX0hFQURFUlMKICAgICAi
JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19tYWluLmgi
CiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
bmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJD
RV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uaCIKKyAgICAiJHtD
TUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZS5o
IgogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3NldHRpbmdzLmgiCiAgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdG91Y2guaCIKICAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdC5oIgpAQCAtMjMwLDcgKzIzMSw2IEBAIFNF
VCAoRVdlYktpdDJfSEVBREVSUwogICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5oIgogICAgICIke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCIKICAgICAiJHtD
TUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a193ZWJfZXJyb3Iu
aCIKLSAgICAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a193ZWJfcmVzb3VyY2UuaCIKICkKIAogSU5TVEFMTChGSUxFUyAke0NNQUtFX0JJTkFSWV9ESVJ9
L1dlYktpdDIvZWZsL2V3ZWJraXQyLnBjIERFU1RJTkFUSU9OIGxpYi9wa2djb25maWcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaAppbmRleCAxM2VmYWIxM2Fj
MzQwOWNiM2I0Y2U5NjVjMTQwZjViYzBkNGQzNTJhLi42M2YyOTU4MWRmMjRlNzQ2NDBkYjBiZjE0
YjJkZmU0ZjM5ZGU1ZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9FV2ViS2l0Mi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VX
ZWJLaXQyLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJld2tfbWFpbi5oIgogI2luY2x1
ZGUgImV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oIgogI2luY2x1ZGUgImV3a19wb3B1
cF9tZW51X2l0ZW0uaCIKKyNpbmNsdWRlICJld2tfcmVzb3VyY2UuaCIKICNpbmNsdWRlICJld2tf
c2V0dGluZ3MuaCIKICNpbmNsdWRlICJld2tfdG91Y2guaCIKICNpbmNsdWRlICJld2tfdXJsX3Jl
cXVlc3QuaCIKQEAgLTQ2LDYgKzQ3LDUgQEAKICNpbmNsdWRlICJld2tfdXJsX3NjaGVtZV9yZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXcuaCIKICNpbmNsdWRlICJld2tfd2ViX2Vycm9yLmgi
Ci0jaW5jbHVkZSAiZXdrX3dlYl9yZXNvdXJjZS5oIgogCiAjZW5kaWYgLy8gRVdlYktpdDJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWFhN2U5OGU3MzkwMGI0MGJmNTg5NWEwYWE3MWRjMmMyMmU5MmQ4OQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNv
dXJjZS5jcHAKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRl
bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgImV3a19yZXNvdXJjZS5oIgorCisjaW5jbHVkZSAiV0tFaW5h
U2hhcmVkU3RyaW5nLmgiCisjaW5jbHVkZSAiZXdrX3Jlc291cmNlX3ByaXZhdGUuaCIKKyNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK3N0cnVjdCBfRXdrX1Jlc291cmNlIHsKKyAgICB1
bnNpZ25lZCBfX3JlZjsgLyoqPCB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBvYmplY3QgKi8K
KyAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdXJsOworICAgIGJvb2wgaXNNYWluUmVzb3VyY2U7CisK
KyAgICBfRXdrX1Jlc291cmNlKGNvbnN0IGNoYXIqIHVybCwgYm9vbCBpc01haW5SZXNvdXJjZSkK
KyAgICAgICAgOiBfX3JlZigxKQorICAgICAgICAsIHVybCh1cmwpCisgICAgICAgICwgaXNNYWlu
UmVzb3VyY2UoaXNNYWluUmVzb3VyY2UpCisgICAgeyB9CisKKyAgICB+X0V3a19SZXNvdXJjZSgp
CisgICAgeworICAgICAgICBBU1NFUlQoIV9fcmVmKTsKKyAgICB9Cit9OworCitFd2tfUmVzb3Vy
Y2UqIGV3a19yZXNvdXJjZV9yZWYoRXdrX1Jlc291cmNlKiByZXNvdXJjZSkKK3sKKyAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVzb3VyY2UsIDApOworCisgICAgKytyZXNvdXJj
ZS0+X19yZWY7CisKKyAgICByZXR1cm4gcmVzb3VyY2U7Cit9CisKK3ZvaWQgZXdrX3Jlc291cmNl
X3VucmVmKEV3a19SZXNvdXJjZSogcmVzb3VyY2UpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk4ocmVzb3VyY2UpOworCisgICAgaWYgKC0tcmVzb3VyY2UtPl9fcmVmKQorICAgICAg
ICByZXR1cm47CisKKyAgICBkZWxldGUgcmVzb3VyY2U7Cit9CisKK2NvbnN0IGNoYXIqIGV3a19y
ZXNvdXJjZV91cmxfZ2V0KGNvbnN0IEV3a19SZXNvdXJjZSogcmVzb3VyY2UpCit7CisgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHJlc291cmNlLCAwKTsKKworICAgIHJldHVybiBy
ZXNvdXJjZS0+dXJsOworfQorCisvKioKKyAqIEBpbnRlcm5hbAorICogQ29uc3RydWN0cyBhIEV3
a19SZXNvdXJjZS4KKyAqLworRXdrX1Jlc291cmNlKiBld2tfcmVzb3VyY2VfbmV3KGNvbnN0IGNo
YXIqIHVybCwgYm9vbCBpc01haW5SZXNvdXJjZSkKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTl9WQUwodXJsLCAwKTsKKworICAgIHJldHVybiBuZXcgRXdrX1Jlc291cmNlKHVybCwg
aXNNYWluUmVzb3VyY2UpOworfQorCitFaW5hX0Jvb2wgZXdrX3Jlc291cmNlX21haW5fcmVzb3Vy
Y2VfZ2V0KGNvbnN0IEV3a19SZXNvdXJjZSogcmVzb3VyY2UpCit7CisgICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKHJlc291cmNlLCBmYWxzZSk7CisKKyAgICByZXR1cm4gcmVzb3Vy
Y2UtPmlzTWFpblJlc291cmNlOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfcmVzb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMmY0Nzg2YjgyMGNkNDA1NTZlNzAzMzJm
NTdhZjRhOWMyMGU0MWJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlLmgKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworLyoqCisgKiBAZmlsZSAgICBld2tfcmVzb3VyY2UuaAorICogQGJyaWVmICAgRGVz
Y3JpYmVzIHRoZSBXZWIgUmVzb3VyY2UgQVBJLgorICovCisKKyNpZm5kZWYgZXdrX3Jlc291cmNl
X2gKKyNkZWZpbmUgZXdrX3Jlc291cmNlX2gKKworI2luY2x1ZGUgPEVpbmEuaD4KKworI2lmZGVm
IF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKiogQ3JlYXRlcyBhIHR5cGUg
bmFtZSBmb3IgQGEgRXdrX1Jlc291cmNlLiAqLwordHlwZWRlZiBzdHJ1Y3QgX0V3a19SZXNvdXJj
ZSBFd2tfUmVzb3VyY2U7CisKKy8qKgorICogSW5jcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQg
b2YgdGhlIGdpdmVuIG9iamVjdC4KKyAqCisgKiBAcGFyYW0gcmVzb3VyY2UgdGhlIHJlc291cmNl
IG9iamVjdCB0byBpbmNyZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50CisgKgorICogQHJldHVybiBh
IHBvaW50ZXIgdG8gdGhlIG9iamVjdCBvbiBzdWNjZXNzLCBAYyBOVUxMIG90aGVyd2lzZS4KKyAq
LworRUFQSSBFd2tfUmVzb3VyY2UgKmV3a19yZXNvdXJjZV9yZWYoRXdrX1Jlc291cmNlICpyZXNv
dXJjZSk7CisKKy8qKgorICogRGVjcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdp
dmVuIG9iamVjdCwgcG9zc2libHkgZnJlZWluZyBpdC4KKyAqCisgKiBXaGVuIHRoZSByZWZlcmVu
Y2UgY291bnQgcmVhY2hlcyAwLCB0aGUgcmVzb3VyY2UgaXMgZnJlZWQuCisgKgorICogQHBhcmFt
IHJlc291cmNlIHRoZSByZXNvdXJjZSBvYmplY3QgdG8gZGVjcmVhc2UgdGhlIHJlZmVyZW5jZSBj
b3VudAorICovCitFQVBJIHZvaWQgZXdrX3Jlc291cmNlX3VucmVmKEV3a19SZXNvdXJjZSAqcmVz
b3VyY2UpOworCisvKioKKyAqIFF1ZXJ5IFVSTCBmb3IgdGhpcyByZXNvdXJjZS4KKyAqCisgKiBA
cGFyYW0gcmVzb3VyY2UgcmVzb3VyY2Ugb2JqZWN0IHRvIHF1ZXJ5LgorICoKKyAqIEByZXR1cm4g
dGhlIFVSTCBwb2ludGVyLCB0aGF0IG1heSBiZSBAYyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAq
ICAgICAgICAgZ3VhcmFudGVlZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBw
b3NzaWJsZQorICogICAgICAgICBzYXZlIHlvdXJzZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNl
CisgKiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmlu
Z3NoYXJlX2FkZCgpIG9yCisgKiAgICAgICAgIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNo
YXIgKmV3a19yZXNvdXJjZV91cmxfZ2V0KGNvbnN0IEV3a19SZXNvdXJjZSAqcmVzb3VyY2UpOwor
CisvKioKKyAqIFF1ZXJ5IGlmIHRoaXMgaXMgdGhlIG1haW4gcmVzb3VyY2UuCisgKgorICogQHBh
cmFtIHJlc291cmNlIHJlc291cmNlIG9iamVjdCB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIEBj
IEVJTkFfVFJVRSBpZiB0aGlzIGlzIHRoZSBtYWluIHJlc291cmNlLCBAYyBFSU5BX0ZBTFNFIG90
aGVyd2lzZQorICovCitFQVBJIEVpbmFfQm9vbCBld2tfcmVzb3VyY2VfbWFpbl9yZXNvdXJjZV9n
ZXQoY29uc3QgRXdrX1Jlc291cmNlICpyZXNvdXJjZSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cwor
fQorI2VuZGlmCisKKyNlbmRpZiAvLyBld2tfcmVzb3VyY2VfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlX3ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZV9wcml2YXRlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzdmODI5ODYxZmM3ZThkNTRiN2YwMmI1ODU1Zjk3NTEyNWIxYzg3ZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZV9w
cml2YXRlLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRl
bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBl
d2tfcmVzb3VyY2VfcHJpdmF0ZV9oCisjZGVmaW5lIGV3a19yZXNvdXJjZV9wcml2YXRlX2gKKwor
dHlwZWRlZiBzdHJ1Y3QgX0V3a19SZXNvdXJjZSBFd2tfUmVzb3VyY2U7CisKK0V3a19SZXNvdXJj
ZSogZXdrX3Jlc291cmNlX25ldyhjb25zdCBjaGFyKiB1cmksIGJvb2wgaXNNYWluUmVzb3VyY2Up
OworCisjZW5kaWYgLy8gZXdrX3Jlc291cmNlX3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IDUxNzVmNzk2OWZjMDI1YjY1OTg5
Yjg4MDM5OTczOGQyZWIzNDAwYjcuLmM5M2U2ZjhhNTBmYzg2NzNhYzJjN2U1NmE5ZDc3ZjdlMDgw
MDE5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5j
cHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJld2tfcG9wdXBfbWVudV9pdGVtLmgiCiAj
aW5jbHVkZSAiZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3By
aXZhdGUuaCIKKyNpbmNsdWRlICJld2tfcmVzb3VyY2UuaCIKICNpbmNsdWRlICJld2tfc2V0dGlu
Z3NfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X2ZpbmRfY2xpZW50X3ByaXZhdGUuaCIK
ICNpbmNsdWRlICJld2tfdmlld19mb3JtX2NsaWVudF9wcml2YXRlLmgiCkBAIC01Miw3ICs1Myw2
IEBACiAjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X3Jl
c291cmNlX2xvYWRfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld191aV9jbGll
bnRfcHJpdmF0ZS5oIgotI2luY2x1ZGUgImV3a193ZWJfcmVzb3VyY2UuaCIKICNpbmNsdWRlIDxF
Y29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWRqZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Vyc29y
Lmg+CkBAIC03OSw3ICs3OSw3IEBAIHN0YXRpYyBjb25zdCBjaGFyIEVXS19WSUVXX1RZUEVfU1RS
W10gPSAiRVdLMl9WaWV3IjsKIAogc3RhdGljIGNvbnN0IGludCBkZWZhdWx0Q3Vyc29yU2l6ZSA9
IDE2OwogCi10eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIEV3a19XZWJfUmVzb3VyY2UqPiBMb2Fk
aW5nUmVzb3VyY2VzTWFwOwordHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBFd2tfUmVzb3VyY2Uq
PiBMb2FkaW5nUmVzb3VyY2VzTWFwOwogc3RhdGljIHZvaWQgX2V3a192aWV3X3ByaXZfbG9hZGlu
Z19yZXNvdXJjZXNfY2xlYXIoTG9hZGluZ1Jlc291cmNlc01hcCYgbG9hZGluZ1Jlc291cmNlc01h
cCk7CiAKIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKQEAgLTQyNiw3ICs0MjYsNyBA
QCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfcHJpdl9sb2FkaW5nX3Jlc291cmNlc19jbGVhcihMb2Fk
aW5nUmVzb3VyY2VzTWFwJiBsb2FkaW5nUgogICAgIExvYWRpbmdSZXNvdXJjZXNNYXA6Oml0ZXJh
dG9yIGl0ID0gbG9hZGluZ1Jlc291cmNlc01hcC5iZWdpbigpOwogICAgIExvYWRpbmdSZXNvdXJj
ZXNNYXA6Oml0ZXJhdG9yIGVuZCA9IGxvYWRpbmdSZXNvdXJjZXNNYXAuZW5kKCk7CiAgICAgZm9y
ICggOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgIGV3a193ZWJfcmVzb3VyY2VfdW5yZWYoaXQt
PnNlY29uZCk7CisgICAgICAgIGV3a19yZXNvdXJjZV91bnJlZihpdC0+c2Vjb25kKTsKIAogICAg
IGxvYWRpbmdSZXNvdXJjZXNNYXAuY2xlYXIoKTsKIH0KQEAgLTk0NiwxNSArOTQ2LDE1IEBAIEV3
a19TZXR0aW5ncyogZXdrX3ZpZXdfc2V0dGluZ3NfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3KQogICoKICAqIEVtaXRzIHNpZ25hbDogInJlc291cmNlLHJlcXVlc3QsbmV3IiB3aXRoIHBv
aW50ZXIgdG8gcmVzb3VyY2UgcmVxdWVzdC4KICAqLwotdm9pZCBld2tfdmlld19yZXNvdXJjZV9s
b2FkX2luaXRpYXRlZChFdmFzX09iamVjdCogZXdrVmlldywgdWludDY0X3QgcmVzb3VyY2VJZGVu
dGlmaWVyLCBFd2tfV2ViX1Jlc291cmNlKiByZXNvdXJjZSwgRXdrX1VybF9SZXF1ZXN0KiByZXF1
ZXN0KQordm9pZCBld2tfdmlld19yZXNvdXJjZV9sb2FkX2luaXRpYXRlZChFdmFzX09iamVjdCog
ZXdrVmlldywgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBFd2tfUmVzb3VyY2UqIHJlc291
cmNlLCBFd2tfVXJsX1JlcXVlc3QqIHJlcXVlc3QpCiB7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09S
X1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JF
VFVSTihzbWFydERhdGEsIHByaXYpOwogCi0gICAgRXdrX1dlYl9SZXNvdXJjZV9SZXF1ZXN0IHJl
c291cmNlUmVxdWVzdCA9IHtyZXNvdXJjZSwgcmVxdWVzdCwgMH07CisgICAgRXdrX1Jlc291cmNl
X1JlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0ID0ge3Jlc291cmNlLCByZXF1ZXN0LCAwfTsKIAogICAg
IC8vIEtlZXAgdGhlIHJlc291cmNlIGludGVybmFsbHkgdG8gcmV1c2UgaXQgbGF0ZXIuCi0gICAg
cHJpdi0+bG9hZGluZ1Jlc291cmNlc01hcC5hZGQocmVzb3VyY2VJZGVudGlmaWVyLCBld2tfd2Vi
X3Jlc291cmNlX3JlZihyZXNvdXJjZSkpOworICAgIHByaXYtPmxvYWRpbmdSZXNvdXJjZXNNYXAu
YWRkKHJlc291cmNlSWRlbnRpZmllciwgZXdrX3Jlc291cmNlX3JlZihyZXNvdXJjZSkpOwogCiAg
ICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3LCAicmVzb3VyY2UscmVx
dWVzdCxuZXciLCAmcmVzb3VyY2VSZXF1ZXN0KTsKIH0KQEAgLTk3Myw4ICs5NzMsOCBAQCB2b2lk
IGV3a192aWV3X3Jlc291cmNlX2xvYWRfcmVzcG9uc2UoRXZhc19PYmplY3QqIGV3a1ZpZXcsIHVp
bnQ2NF90IHJlc291cmNlSWRlbgogICAgIGlmICghcHJpdi0+bG9hZGluZ1Jlc291cmNlc01hcC5j
b250YWlucyhyZXNvdXJjZUlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm47CiAKLSAgICBFd2tf
V2ViX1Jlc291cmNlKiByZXNvdXJjZSA9IHByaXYtPmxvYWRpbmdSZXNvdXJjZXNNYXAuZ2V0KHJl
c291cmNlSWRlbnRpZmllcik7Ci0gICAgRXdrX1dlYl9SZXNvdXJjZV9Mb2FkX1Jlc3BvbnNlIHJl
c291cmNlTG9hZFJlc3BvbnNlID0ge3Jlc291cmNlLCByZXNwb25zZX07CisgICAgRXdrX1Jlc291
cmNlKiByZXNvdXJjZSA9IHByaXYtPmxvYWRpbmdSZXNvdXJjZXNNYXAuZ2V0KHJlc291cmNlSWRl
bnRpZmllcik7CisgICAgRXdrX1Jlc291cmNlX0xvYWRfUmVzcG9uc2UgcmVzb3VyY2VMb2FkUmVz
cG9uc2UgPSB7cmVzb3VyY2UsIHJlc3BvbnNlfTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxs
YmFja19jYWxsKGV3a1ZpZXcsICJyZXNvdXJjZSxyZXF1ZXN0LHJlc3BvbnNlIiwgJnJlc291cmNl
TG9hZFJlc3BvbnNlKTsKIH0KIApAQCAtOTkyLDggKzk5Miw4IEBAIHZvaWQgZXdrX3ZpZXdfcmVz
b3VyY2VfbG9hZF9mYWlsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIHVpbnQ2NF90IHJlc291cmNl
SWRlbnRpCiAgICAgaWYgKCFwcml2LT5sb2FkaW5nUmVzb3VyY2VzTWFwLmNvbnRhaW5zKHJlc291
cmNlSWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybjsKIAotICAgIEV3a19XZWJfUmVzb3VyY2Uq
IHJlc291cmNlID0gcHJpdi0+bG9hZGluZ1Jlc291cmNlc01hcC5nZXQocmVzb3VyY2VJZGVudGlm
aWVyKTsKLSAgICBFd2tfV2ViX1Jlc291cmNlX0xvYWRfRXJyb3IgcmVzb3VyY2VMb2FkRXJyb3Ig
PSB7cmVzb3VyY2UsIGVycm9yfTsKKyAgICBFd2tfUmVzb3VyY2UqIHJlc291cmNlID0gcHJpdi0+
bG9hZGluZ1Jlc291cmNlc01hcC5nZXQocmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBFd2tfUmVz
b3VyY2VfTG9hZF9FcnJvciByZXNvdXJjZUxvYWRFcnJvciA9IHtyZXNvdXJjZSwgZXJyb3J9Owog
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgInJlc291cmNlLHJl
cXVlc3QsZmFpbGVkIiwgJnJlc291cmNlTG9hZEVycm9yKTsKIH0KIApAQCAtMTAxMSwxMCArMTAx
MSwxMCBAQCB2b2lkIGV3a192aWV3X3Jlc291cmNlX2xvYWRfZmluaXNoZWQoRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIHVpbnQ2NF90IHJlc291cmNlSWRlbgogICAgIGlmICghcHJpdi0+bG9hZGluZ1Jl
c291cmNlc01hcC5jb250YWlucyhyZXNvdXJjZUlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBFd2tfV2ViX1Jlc291cmNlKiByZXNvdXJjZSA9IHByaXYtPmxvYWRpbmdSZXNvdXJj
ZXNNYXAudGFrZShyZXNvdXJjZUlkZW50aWZpZXIpOworICAgIEV3a19SZXNvdXJjZSogcmVzb3Vy
Y2UgPSBwcml2LT5sb2FkaW5nUmVzb3VyY2VzTWFwLnRha2UocmVzb3VyY2VJZGVudGlmaWVyKTsK
ICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJyZXNvdXJjZSxy
ZXF1ZXN0LGZpbmlzaGVkIiwgcmVzb3VyY2UpOwogCi0gICAgZXdrX3dlYl9yZXNvdXJjZV91bnJl
ZihyZXNvdXJjZSk7CisgICAgZXdrX3Jlc291cmNlX3VucmVmKHJlc291cmNlKTsKIH0KIAogLyoq
CkBAIC0xMDMxLDggKzEwMzEsOCBAQCB2b2lkIGV3a192aWV3X3Jlc291cmNlX3JlcXVlc3Rfc2Vu
dChFdmFzX09iamVjdCogZXdrVmlldywgdWludDY0X3QgcmVzb3VyY2VJZGVudAogICAgIGlmICgh
cHJpdi0+bG9hZGluZ1Jlc291cmNlc01hcC5jb250YWlucyhyZXNvdXJjZUlkZW50aWZpZXIpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBFd2tfV2ViX1Jlc291cmNlKiByZXNvdXJjZSA9IHByaXYt
PmxvYWRpbmdSZXNvdXJjZXNNYXAuZ2V0KHJlc291cmNlSWRlbnRpZmllcik7Ci0gICAgRXdrX1dl
Yl9SZXNvdXJjZV9SZXF1ZXN0IHJlc291cmNlUmVxdWVzdCA9IHtyZXNvdXJjZSwgcmVxdWVzdCwg
cmVkaXJlY3RSZXNwb25zZX07CisgICAgRXdrX1Jlc291cmNlKiByZXNvdXJjZSA9IHByaXYtPmxv
YWRpbmdSZXNvdXJjZXNNYXAuZ2V0KHJlc291cmNlSWRlbnRpZmllcik7CisgICAgRXdrX1Jlc291
cmNlX1JlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0ID0ge3Jlc291cmNlLCByZXF1ZXN0LCByZWRpcmVj
dFJlc3BvbnNlfTsKIAogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmll
dywgInJlc291cmNlLHJlcXVlc3Qsc2VudCIsICZyZXNvdXJjZVJlcXVlc3QpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKaW5kZXggY2NmYTYzNmM3NWM3
OTU1MjExZWYxMzk1YzcxY2Q2MDc4Zjg1YmIxZS4uZWQ2YjEwN2QwMThhNzk0ODFjMWUxZDgxNjdk
MGI0OTA0MzE2YTFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlldy5oCkBAIC01NiwxMSArNTYsMTEgQEAKICAqIC0gInBvbGljeSxkZWNpc2lvbixuZXcsd2lu
ZG93IiwgRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKjogYSBuZXcgd2luZG93IHBvbGlj
eSBkZWNpc2lvbiBzaG91bGQgYmUgdGFrZW4uCiAgKiAgIFRvIG1ha2UgYSBwb2xpY3kgZGVjaXNp
b24gYXN5bmNocm9ub3VzbHksIHNpbXBseSBpbmNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudCBv
ZiB0aGUKICAqICAgI0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiBvYmplY3QgdXNpbmcg
ZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3JlZigpLgotICogLSAicmVzb3VyY2UscmVx
dWVzdCxmYWlsZWQiLCBjb25zdCBFd2tfV2ViX1Jlc291cmNlX0xvYWRfRXJyb3IqOiBhIHJlc291
cmNlIGZhaWxlZCBsb2FkaW5nLgotICogLSAicmVzb3VyY2UscmVxdWVzdCxmaW5pc2hlZCIsIGNv
bnN0IEV3a19XZWJfUmVzb3VyY2UqOiBhIHJlc291cmNlIGZpbmlzaGVkIGxvYWRpbmcuCi0gKiAt
ICJyZXNvdXJjZSxyZXF1ZXN0LG5ldyIsIGNvbnN0IEV3a19XZWJfUmVzb3VyY2VfUmVxdWVzdCo6
IGEgcmVzb3VyY2UgcmVxdWVzdCB3YXMgaW5pdGlhdGVkLgotICogLSAicmVzb3VyY2UscmVxdWVz
dCxyZXNwb25zZSIsIEV3a19XZWJfUmVzb3VyY2VfTG9hZF9SZXNwb25zZSo6IGEgcmVzcG9uc2Ug
dG8gYSByZXNvdXJjZSByZXF1ZXN0IHdhcyByZWNlaXZlZC4KLSAqIC0gInJlc291cmNlLHJlcXVl
c3Qsc2VudCIsIGNvbnN0IEV3a19XZWJfUmVzb3VyY2VfUmVxdWVzdCo6IGEgcmVzb3VyY2UgcmVx
dWVzdCB3YXMgc2VudC4KKyAqIC0gInJlc291cmNlLHJlcXVlc3QsZmFpbGVkIiwgY29uc3QgRXdr
X1Jlc291cmNlX0xvYWRfRXJyb3IqOiBhIHJlc291cmNlIGZhaWxlZCBsb2FkaW5nLgorICogLSAi
cmVzb3VyY2UscmVxdWVzdCxmaW5pc2hlZCIsIGNvbnN0IEV3a19SZXNvdXJjZSo6IGEgcmVzb3Vy
Y2UgZmluaXNoZWQgbG9hZGluZy4KKyAqIC0gInJlc291cmNlLHJlcXVlc3QsbmV3IiwgY29uc3Qg
RXdrX1Jlc291cmNlX1JlcXVlc3QqOiBhIHJlc291cmNlIHJlcXVlc3Qgd2FzIGluaXRpYXRlZC4K
KyAqIC0gInJlc291cmNlLHJlcXVlc3QscmVzcG9uc2UiLCBFd2tfUmVzb3VyY2VfTG9hZF9SZXNw
b25zZSo6IGEgcmVzcG9uc2UgdG8gYSByZXNvdXJjZSByZXF1ZXN0IHdhcyByZWNlaXZlZC4KKyAq
IC0gInJlc291cmNlLHJlcXVlc3Qsc2VudCIsIGNvbnN0IEV3a19SZXNvdXJjZV9SZXF1ZXN0Kjog
YSByZXNvdXJjZSByZXF1ZXN0IHdhcyBzZW50LgogICogLSAidGV4dCxmb3VuZCIsIHVuc2lnbmVk
IGludCo6IHRoZSByZXF1ZXN0ZWQgdGV4dCB3YXMgZm91bmQgYW5kIGl0IGdpdmVzIHRoZSBudW1i
ZXIgb2YgbWF0Y2hlcy4KICAqIC0gInRpdGxlLGNoYW5nZWQiLCBjb25zdCBjaGFyKjogdGl0bGUg
b2YgdGhlIG1haW4gZnJhbWUgd2FzIGNoYW5nZWQuCiAgKiAtICJ1cmksY2hhbmdlZCIsIGNvbnN0
IGNoYXIqOiB1cmkgb2YgdGhlIG1haW4gZnJhbWUgd2FzIGNoYW5nZWQuCkBAIC03NCwxMiArNzQs
MTIgQEAKICNpbmNsdWRlICJld2tfY29udGV4dC5oIgogI2luY2x1ZGUgImV3a19kb3dubG9hZF9q
b2IuaCIKICNpbmNsdWRlICJld2tfaW50ZW50LmgiCisjaW5jbHVkZSAiZXdrX3Jlc291cmNlLmgi
CiAjaW5jbHVkZSAiZXdrX3NldHRpbmdzLmgiCiAjaW5jbHVkZSAiZXdrX3RvdWNoLmgiCiAjaW5j
bHVkZSAiZXdrX3VybF9yZXF1ZXN0LmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXNwb25zZS5oIgog
I2luY2x1ZGUgImV3a193ZWJfZXJyb3IuaCIKLSNpbmNsdWRlICJld2tfd2ViX3Jlc291cmNlLmgi
CiAjaW5jbHVkZSA8RXZhcy5oPgogCiAjaWZkZWYgX19jcGx1c3BsdXMKQEAgLTE5NywzOSArMTk3
LDM5IEBAIHN0cnVjdCBfRXdrX1ZpZXdfU21hcnRfRGF0YSB7CiAgICAgfSBjaGFuZ2VkOwogfTsK
IAotLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfV2ViX1Jlc291cmNlX1JlcXVlc3Qu
Ci10eXBlZGVmIHN0cnVjdCBfRXdrX1dlYl9SZXNvdXJjZV9SZXF1ZXN0IEV3a19XZWJfUmVzb3Vy
Y2VfUmVxdWVzdDsKKy8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX1Jlc291cmNlX1Jl
cXVlc3QuCit0eXBlZGVmIHN0cnVjdCBfRXdrX1Jlc291cmNlX1JlcXVlc3QgRXdrX1Jlc291cmNl
X1JlcXVlc3Q7CiAKIC8qKgogICogQGJyaWVmIFN0cnVjdHVyZSBjb250YWluaW5nIGRldGFpbHMg
YWJvdXQgYSByZXNvdXJjZSByZXF1ZXN0LgogICovCi1zdHJ1Y3QgX0V3a19XZWJfUmVzb3VyY2Vf
UmVxdWVzdCB7Ci0gICAgRXdrX1dlYl9SZXNvdXJjZSAqcmVzb3VyY2U7IC8qKjwgcmVzb3VyY2Ug
YmVpbmcgcmVxdWVzdGVkICovCitzdHJ1Y3QgX0V3a19SZXNvdXJjZV9SZXF1ZXN0IHsKKyAgICBF
d2tfUmVzb3VyY2UgKnJlc291cmNlOyAvKio8IHJlc291cmNlIGJlaW5nIHJlcXVlc3RlZCAqLwog
ICAgIEV3a19VcmxfUmVxdWVzdCAqcmVxdWVzdDsgLyoqPCBVUkwgcmVxdWVzdCBmb3IgdGhlIHJl
c291cmNlICovCiAgICAgRXdrX1VybF9SZXNwb25zZSAqcmVkaXJlY3RfcmVzcG9uc2U7IC8qKjwg
UG9zc2libGUgcmVkaXJlY3QgcmVzcG9uc2UgZm9yIHRoZSByZXNvdXJjZSBvciBAYyBOVUxMICov
CiB9OwogCi0vLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19XZWJfUmVzb3VyY2VfTG9h
ZF9SZXNwb25zZS4KLXR5cGVkZWYgc3RydWN0IF9Fd2tfV2ViX1Jlc291cmNlX0xvYWRfUmVzcG9u
c2UgRXdrX1dlYl9SZXNvdXJjZV9Mb2FkX1Jlc3BvbnNlOworLy8vIENyZWF0ZXMgYSB0eXBlIG5h
bWUgZm9yIF9Fd2tfUmVzb3VyY2VfTG9hZF9SZXNwb25zZS4KK3R5cGVkZWYgc3RydWN0IF9Fd2tf
UmVzb3VyY2VfTG9hZF9SZXNwb25zZSBFd2tfUmVzb3VyY2VfTG9hZF9SZXNwb25zZTsKIAogLyoq
CiAgKiBAYnJpZWYgU3RydWN0dXJlIGNvbnRhaW5pbmcgZGV0YWlscyBhYm91dCBhIHJlc3BvbnNl
IHRvIGEgcmVzb3VyY2UgcmVxdWVzdC4KICAqLwotc3RydWN0IF9Fd2tfV2ViX1Jlc291cmNlX0xv
YWRfUmVzcG9uc2UgewotICAgICBFd2tfV2ViX1Jlc291cmNlICpyZXNvdXJjZTsgLyoqPCByZXNv
dXJjZSByZXF1ZXN0ZWQgKi8KLSAgICAgRXdrX1VybF9SZXNwb25zZSAqcmVzcG9uc2U7IC8qKjwg
cmVzb3VyY2UgbG9hZCByZXNwb25zZSAqLworc3RydWN0IF9Fd2tfUmVzb3VyY2VfTG9hZF9SZXNw
b25zZSB7CisgICAgRXdrX1Jlc291cmNlICpyZXNvdXJjZTsgLyoqPCByZXNvdXJjZSByZXF1ZXN0
ZWQgKi8KKyAgICBFd2tfVXJsX1Jlc3BvbnNlICpyZXNwb25zZTsgLyoqPCByZXNvdXJjZSBsb2Fk
IHJlc3BvbnNlICovCiB9OwogCi0vLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19XZWJf
UmVzb3VyY2VfTG9hZF9FcnJvci4KLXR5cGVkZWYgc3RydWN0IF9Fd2tfV2ViX1Jlc291cmNlX0xv
YWRfRXJyb3IgRXdrX1dlYl9SZXNvdXJjZV9Mb2FkX0Vycm9yOworLy8vIENyZWF0ZXMgYSB0eXBl
IG5hbWUgZm9yIF9Fd2tfUmVzb3VyY2VfTG9hZF9FcnJvci4KK3R5cGVkZWYgc3RydWN0IF9Fd2tf
UmVzb3VyY2VfTG9hZF9FcnJvciBFd2tfUmVzb3VyY2VfTG9hZF9FcnJvcjsKIAogLyoqCiAgKiBA
YnJpZWYgU3RydWN0dXJlIGNvbnRhaW5pbmcgZGV0YWlscyBhYm91dCBhIHJlc291cmNlIGxvYWQg
ZXJyb3IuCiAgKgogICogRGV0YWlscyBnaXZlbiBhYm91dCBhIHJlc291cmNlIGxvYWQgZmFpbHVy
ZS4KICAqLwotc3RydWN0IF9Fd2tfV2ViX1Jlc291cmNlX0xvYWRfRXJyb3IgewotICAgIEV3a19X
ZWJfUmVzb3VyY2UgKnJlc291cmNlOyAvKio8IHJlc291cmNlIHRoYXQgZmFpbGVkIGxvYWRpbmcg
Ki8KK3N0cnVjdCBfRXdrX1Jlc291cmNlX0xvYWRfRXJyb3IgeworICAgIEV3a19SZXNvdXJjZSAq
cmVzb3VyY2U7IC8qKjwgcmVzb3VyY2UgdGhhdCBmYWlsZWQgbG9hZGluZyAqLwogICAgIEV3a19X
ZWJfRXJyb3IgKmVycm9yOyAvKio8IGxvYWQgZXJyb3IgKi8KIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaAppbmRleCA0Y2Jh
MjJkMzZmYWQ1YWNjYTdmNWJmYTViMGM5YWZmMmM4YjlhMjk2Li44ZWJjYzFlNjBkZjI4Y2VmNWU5
MDc5YWJjNGE0NjcxZTM4OWY2YzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oCkBAIC00NCw3ICs0NCw3IEBAIHR5cGVkZWYg
c3RydWN0IF9Fd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QgRXdrX0Zvcm1fU3VibWlzc2lvbl9S
ZXF1ZXN0OwogdHlwZWRlZiBzdHJ1Y3QgX0V3a19VcmxfUmVxdWVzdCBFd2tfVXJsX1JlcXVlc3Q7
CiB0eXBlZGVmIHN0cnVjdCBfRXdrX1VybF9SZXNwb25zZSBFd2tfVXJsX1Jlc3BvbnNlOwogdHlw
ZWRlZiBzdHJ1Y3QgX0V3a19XZWJfRXJyb3IgRXdrX1dlYl9FcnJvcjsKLXR5cGVkZWYgc3RydWN0
IF9Fd2tfV2ViX1Jlc291cmNlIEV3a19XZWJfUmVzb3VyY2U7Cit0eXBlZGVmIHN0cnVjdCBfRXdr
X1Jlc291cmNlIEV3a19SZXNvdXJjZTsKIHR5cGVkZWYgc3RydWN0IF9Fd2tfTmF2aWdhdGlvbl9Q
b2xpY3lfRGVjaXNpb24gRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOwogI2lmIEVOQUJM
RShXRUJfSU5URU5UUykKIHR5cGVkZWYgc3RydWN0IF9Fd2tfSW50ZW50IEV3a19JbnRlbnQ7CkBA
IC03OCw3ICs3OCw3IEBAIFdLUGFnZVJlZiBld2tfdmlld19wYWdlX2NyZWF0ZShFdmFzX09iamVj
dCogZXdrVmlldyk7CiB2b2lkIGV3a192aWV3X3RpdGxlX2NoYW5nZWQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIGNvbnN0IGNoYXIqIHRpdGxlKTsKIHZvaWQgZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9m
YWlsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRpZmllciwg
RXdrX1dlYl9FcnJvciogZXJyb3IpOwogdm9pZCBld2tfdmlld19yZXNvdXJjZV9sb2FkX2Zpbmlz
aGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCB1aW50NjRfdCByZXNvdXJjZUlkZW50aWZpZXIpOwot
dm9pZCBld2tfdmlld19yZXNvdXJjZV9sb2FkX2luaXRpYXRlZChFdmFzX09iamVjdCogZXdrVmll
dywgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBFd2tfV2ViX1Jlc291cmNlKiByZXNvdXJj
ZSwgRXdrX1VybF9SZXF1ZXN0KiByZXF1ZXN0KTsKK3ZvaWQgZXdrX3ZpZXdfcmVzb3VyY2VfbG9h
ZF9pbml0aWF0ZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIHVpbnQ2NF90IHJlc291cmNlSWRlbnRp
ZmllciwgRXdrX1Jlc291cmNlKiByZXNvdXJjZSwgRXdrX1VybF9SZXF1ZXN0KiByZXF1ZXN0KTsK
IHZvaWQgZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9yZXNwb25zZShFdmFzX09iamVjdCogZXdrVmll
dywgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBFd2tfVXJsX1Jlc3BvbnNlKiByZXNwb25z
ZSk7CiB2b2lkIGV3a192aWV3X3Jlc291cmNlX3JlcXVlc3Rfc2VudChFdmFzX09iamVjdCogZXdr
VmlldywgdWludDY0X3QgcmVzb3VyY2VJZGVudGlmaWVyLCBFd2tfVXJsX1JlcXVlc3QqIHJlcXVl
c3QsIEV3a19VcmxfUmVzcG9uc2UqIHJlZGlyZWN0UmVzcG9uc2UpOwogdm9pZCBld2tfdmlld190
ZXh0X2ZvdW5kKEV2YXNfT2JqZWN0KiBld2tWaWV3LCB1bnNpZ25lZCBpbnQgbWF0Y2hDb3VudCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19y
ZXNvdXJjZV9sb2FkX2NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlld19yZXNvdXJjZV9sb2FkX2NsaWVudC5jcHAKaW5kZXggMTEzZTE3OGI5ZDE4Yjk1
MzhkMjk5YzViYjk3MzQ0YmM3NzBmMDUyYS4uODZkOGJhYjE1MmM4ZjY1YTk5OWUwNmIxMGJhYzhh
MDQzNDc3OTNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3ZpZXdfcmVzb3VyY2VfbG9hZF9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3Jlc291cmNlX2xvYWRfY2xpZW50LmNwcApAQCAtMzIs
NiArMzIsOCBAQAogI2luY2x1ZGUgIldLVVJMLmgiCiAjaW5jbHVkZSAiV0tVUkxSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiV0tVUkxSZXNwb25zZS5oIgorI2luY2x1ZGUgImV3a19yZXNvdXJjZS5oIgor
I2luY2x1ZGUgImV3a19yZXNvdXJjZV9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaCIKICNpbmNsdWRlICJl
d2tfdXJsX3Jlc3BvbnNlLmgiCkBAIC00MCw4ICs0Miw2IEBACiAjaW5jbHVkZSAiZXdrX3ZpZXdf
cmVzb3VyY2VfbG9hZF9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a193ZWJfZXJyb3Iu
aCIKICNpbmNsdWRlICJld2tfd2ViX2Vycm9yX3ByaXZhdGUuaCIKLSNpbmNsdWRlICJld2tfd2Vi
X3Jlc291cmNlLmgiCi0jaW5jbHVkZSAiZXdrX3dlYl9yZXNvdXJjZV9wcml2YXRlLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAg
LTU3LDEwICs1NywxMCBAQCBzdGF0aWMgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShX
S1BhZ2VSZWYsIFdLRnJhbWVSZWYgd2tGcmFtZSwgdWludDY0X3QgcgogICAgIGJvb2wgaXNNYWlu
UmVzb3VyY2UgPSAoV0tGcmFtZUlzTWFpbkZyYW1lKHdrRnJhbWUpICYmIHBhZ2VJc1Byb3Zpc2lv
bmFsbHlMb2FkaW5nKTsKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gd2tVcmwoQWRvcHRXSywg
V0tVUkxSZXF1ZXN0Q29weVVSTCh3a1JlcXVlc3QpKTsKIAotICAgIEV3a19XZWJfUmVzb3VyY2Uq
IHJlc291cmNlID0gZXdrX3dlYl9yZXNvdXJjZV9uZXcodG9JbXBsKHdrVXJsLmdldCgpKS0+c3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSwgaXNNYWluUmVzb3VyY2UpOworICAgIEV3a19SZXNvdXJjZSog
cmVzb3VyY2UgPSBld2tfcmVzb3VyY2VfbmV3KHRvSW1wbCh3a1VybC5nZXQoKSktPnN0cmluZygp
LnV0ZjgoKS5kYXRhKCksIGlzTWFpblJlc291cmNlKTsKICAgICBFd2tfVXJsX1JlcXVlc3QqIHJl
cXVlc3QgPSBld2tfdXJsX3JlcXVlc3RfbmV3KHdrUmVxdWVzdCk7CiAgICAgZXdrX3ZpZXdfcmVz
b3VyY2VfbG9hZF9pbml0aWF0ZWQodG9Fd2tWaWV3KGNsaWVudEluZm8pLCByZXNvdXJjZUlkZW50
aWZpZXIsIHJlc291cmNlLCByZXF1ZXN0KTsKLSAgICBld2tfd2ViX3Jlc291cmNlX3VucmVmKHJl
c291cmNlKTsKKyAgICBld2tfcmVzb3VyY2VfdW5yZWYocmVzb3VyY2UpOwogICAgIGV3a191cmxf
cmVxdWVzdF91bnJlZihyZXF1ZXN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dlYl9yZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfd2ViX3Jlc291cmNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODk4NzllZWFkYjc0NTkzMzRlYWQ3OTdiNDUyNTY0NjBlYWE5YzZkYS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2ViX3Jlc291cmNlLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDkyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRp
b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJld2tfd2ViX3Jlc291cmNlLmgiCi0KLSNpbmNsdWRlICJXS0VpbmFTaGFyZWRT
dHJpbmcuaCIKLSNpbmNsdWRlICJld2tfd2ViX3Jlc291cmNlX3ByaXZhdGUuaCIKLSNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KLXN0cnVjdCBfRXdrX1dlYl9SZXNvdXJjZSB7Ci0gICAg
dW5zaWduZWQgaW50IF9fcmVmOyAvKio8IHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIG9iamVj
dCAqLwotICAgIFdLRWluYVNoYXJlZFN0cmluZyB1cmw7Ci0gICAgYm9vbCBpc01haW5SZXNvdXJj
ZTsKLQotICAgIF9Fd2tfV2ViX1Jlc291cmNlKGNvbnN0IGNoYXIqIHVybCwgYm9vbCBpc01haW5S
ZXNvdXJjZSkKLSAgICAgICAgOiBfX3JlZigxKQotICAgICAgICAsIHVybCh1cmwpCi0gICAgICAg
ICwgaXNNYWluUmVzb3VyY2UoaXNNYWluUmVzb3VyY2UpCi0gICAgeyB9Ci0KLSAgICB+X0V3a19X
ZWJfUmVzb3VyY2UoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFfX3JlZik7Ci0gICAgfQotfTsK
LQotRXdrX1dlYl9SZXNvdXJjZSogZXdrX3dlYl9yZXNvdXJjZV9yZWYoRXdrX1dlYl9SZXNvdXJj
ZSogcmVzb3VyY2UpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHJlc291
cmNlLCAwKTsKLQotICAgICsrcmVzb3VyY2UtPl9fcmVmOwotCi0gICAgcmV0dXJuIHJlc291cmNl
OwotfQotCi12b2lkIGV3a193ZWJfcmVzb3VyY2VfdW5yZWYoRXdrX1dlYl9SZXNvdXJjZSogcmVz
b3VyY2UpCi17Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4ocmVzb3VyY2UpOwotCi0g
ICAgaWYgKC0tcmVzb3VyY2UtPl9fcmVmKQotICAgICAgICByZXR1cm47Ci0KLSAgICBkZWxldGUg
cmVzb3VyY2U7Ci19Ci0KLWNvbnN0IGNoYXIqIGV3a193ZWJfcmVzb3VyY2VfdXJsX2dldChjb25z
dCBFd2tfV2ViX1Jlc291cmNlKiByZXNvdXJjZSkKLXsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTl9WQUwocmVzb3VyY2UsIDApOwotCi0gICAgcmV0dXJuIHJlc291cmNlLT51cmw7Ci19
Ci0KLS8qKgotICogQGludGVybmFsCi0gKiBDb25zdHJ1Y3RzIGEgRXdrX1dlYl9SZXNvdXJjZS4K
LSAqLwotRXdrX1dlYl9SZXNvdXJjZSogZXdrX3dlYl9yZXNvdXJjZV9uZXcoY29uc3QgY2hhciog
dXJsLCBib29sIGlzTWFpblJlc291cmNlKQotewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTCh1cmwsIDApOwotCi0gICAgcmV0dXJuIG5ldyBFd2tfV2ViX1Jlc291cmNlKHVybCwg
aXNNYWluUmVzb3VyY2UpOwotfQotCi1FaW5hX0Jvb2wgZXdrX3dlYl9yZXNvdXJjZV9tYWluX3Jl
c291cmNlX2dldChjb25zdCBFd2tfV2ViX1Jlc291cmNlKiByZXNvdXJjZSkKLXsKLSAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwocmVzb3VyY2UsIGZhbHNlKTsKLQotICAgIHJldHVy
biByZXNvdXJjZS0+aXNNYWluUmVzb3VyY2U7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfd2ViX3Jlc291cmNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfd2ViX3Jlc291cmNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGRjMmNmMDg3ZDgyZmE4YWE1OTVhNDM3ZTM2ODdiYzhiMjg1N2Q2NTMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3dlYl9yZXNvdXJjZS5oCisrKyAvZGV2L251bGwKQEAgLTEs
ODcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLyoqCi0gKiBAZmlsZSAgICBld2tfd2Vi
X3Jlc291cmNlLmgKLSAqIEBicmllZiAgIERlc2NyaWJlcyB0aGUgV2ViIFJlc291cmNlIEFQSS4K
LSAqLwotCi0jaWZuZGVmIGV3a193ZWJfcmVzb3VyY2VfaAotI2RlZmluZSBld2tfd2ViX3Jlc291
cmNlX2gKLQotI2luY2x1ZGUgPEVpbmEuaD4KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4g
IkMiIHsKLSNlbmRpZgotCi0vKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgQGEgRXdrX1dlYl9S
ZXNvdXJjZS4gKi8KLXR5cGVkZWYgc3RydWN0IF9Fd2tfV2ViX1Jlc291cmNlIEV3a19XZWJfUmVz
b3VyY2U7Ci0KLS8qKgotICogSW5jcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdp
dmVuIG9iamVjdC4KLSAqCi0gKiBAcGFyYW0gcmVzb3VyY2UgdGhlIHJlc291cmNlIG9iamVjdCB0
byBpbmNyZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50Ci0gKgotICogQHJldHVybiBhIHBvaW50ZXIg
dG8gdGhlIG9iamVjdCBvbiBzdWNjZXNzLCBAYyBOVUxMIG90aGVyd2lzZS4KLSAqLwotRUFQSSBF
d2tfV2ViX1Jlc291cmNlICpld2tfd2ViX3Jlc291cmNlX3JlZihFd2tfV2ViX1Jlc291cmNlICpy
ZXNvdXJjZSk7Ci0KLS8qKgotICogRGVjcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhl
IGdpdmVuIG9iamVjdCwgcG9zc2libHkgZnJlZWluZyBpdC4KLSAqCi0gKiBXaGVuIHRoZSByZWZl
cmVuY2UgY291bnQgcmVhY2hlcyAwLCB0aGUgcmVzb3VyY2UgaXMgZnJlZWQuCi0gKgotICogQHBh
cmFtIHJlc291cmNlIHRoZSByZXNvdXJjZSBvYmplY3QgdG8gZGVjcmVhc2UgdGhlIHJlZmVyZW5j
ZSBjb3VudAotICovCi1FQVBJIHZvaWQgZXdrX3dlYl9yZXNvdXJjZV91bnJlZihFd2tfV2ViX1Jl
c291cmNlICpyZXNvdXJjZSk7Ci0KLS8qKgotICogUXVlcnkgVVJMIGZvciB0aGlzIHJlc291cmNl
LgotICoKLSAqIEBwYXJhbSByZXNvdXJjZSByZXNvdXJjZSBvYmplY3QgdG8gcXVlcnkuCi0gKgot
ICogQHJldHVybiB0aGUgVVJMIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9p
bnRlciBpcwotICogICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNv
IHdoZW5ldmVyIHBvc3NpYmxlCi0gKiAgICAgICAgIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3lj
bGVzIGFuZCB1c2UKLSAqICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9m
IGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkgb3IKLSAqICAgICAgICAgc3RyZHVwKCkuCi0gKi8KLUVB
UEkgY29uc3QgY2hhciAqZXdrX3dlYl9yZXNvdXJjZV91cmxfZ2V0KGNvbnN0IEV3a19XZWJfUmVz
b3VyY2UgKnJlc291cmNlKTsKLQotLyoqCi0gKiBRdWVyeSBpZiB0aGlzIGlzIHRoZSBtYWluIHJl
c291cmNlLgotICoKLSAqIEBwYXJhbSByZXNvdXJjZSByZXNvdXJjZSBvYmplY3QgdG8gcXVlcnku
Ci0gKgotICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhpcyBpcyB0aGUgbWFpbiByZXNvdXJj
ZSwgQGMgRUlOQV9GQUxTRSBvdGhlcndpc2UKLSAqLwotRUFQSSBFaW5hX0Jvb2wgZXdrX3dlYl9y
ZXNvdXJjZV9tYWluX3Jlc291cmNlX2dldChjb25zdCBFd2tfV2ViX1Jlc291cmNlICpyZXNvdXJj
ZSk7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvLyBld2tfd2Vi
X3Jlc291cmNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a193ZWJfcmVzb3VyY2VfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3dlYl9yZXNvdXJjZV9wcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDViNDRmZTE5ZjFiNTBiYjQ2MTg5MjBkZjU5MjY5NTdmMzA4M2FjMzEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3dlYl9yZXNvdXJjZV9wcml2YXRlLmgKKysrIC9kZXYvbnVsbApA
QCAtMSwzMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0
aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIGV3a193ZWJfcmVz
b3VyY2VfcHJpdmF0ZV9oCi0jZGVmaW5lIGV3a193ZWJfcmVzb3VyY2VfcHJpdmF0ZV9oCi0KLXR5
cGVkZWYgc3RydWN0IF9Fd2tfV2ViX1Jlc291cmNlIEV3a19XZWJfUmVzb3VyY2U7Ci0KLUV3a19X
ZWJfUmVzb3VyY2UqIGV3a193ZWJfcmVzb3VyY2VfbmV3KGNvbnN0IGNoYXIqIHVyaSwgYm9vbCBp
c01haW5SZXNvdXJjZSk7Ci0KLSNlbmRpZiAvLyBld2tfd2ViX3Jlc291cmNlX3ByaXZhdGVfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>