<?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>68687</bug_id>
          
          <creation_ts>2011-09-23 03:43:29 -0700</creation_ts>
          <short_desc>[Qt] Fix build against Qt5 after refactor of QWidget into its own library</short_desc>
          <delta_ts>2011-10-04 04:34:51 -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 Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>68913</dependson>
          <blocked>68934</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tor Arne Vestbø">vestbo</reporter>
          <assigned_to name="Tor Arne Vestbø">vestbo</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>menard</cc>
    
    <cc>ossy</cc>
    
    <cc>pierre.rossi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>472148</commentid>
    <comment_count>0</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2011-09-23 03:43:29 -0700</bug_when>
    <thetext>The Qt5 refactor branch has been merged into Qt5 master, so QWidget and friends now live in the QtWidgets library. We need to update webkit to reflect this change (while still building against 4.8)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472345</commentid>
    <comment_count>1</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2011-09-23 11:06:57 -0700</bug_when>
    <thetext>https://gist.github.com/1235082</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472350</commentid>
    <comment_count>2</comment_count>
    <who name="Pierre Rossi">pierre.rossi</who>
    <bug_when>2011-09-23 11:16:03 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; https://gist.github.com/1235082

Wrong gist...

https://gist.github.com/1237134</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474215</commentid>
    <comment_count>3</comment_count>
      <attachid>108892</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-09-27 14:09:18 -0700</bug_when>
    <thetext>Created attachment 108892
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474216</commentid>
    <comment_count>4</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-09-27 14:10:20 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=108892) [details]
&gt; Patch

It&apos;s the original patch + all the fixes did later in the trunk.

https://bugs.webkit.org/show_bug.cgi?id=68913 rollout all four patches.

I believe this bug patch is easier to reapply after.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474222</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-27 14:13:15 -0700</bug_when>
    <thetext>Attachment 108892 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u...&quot; exit_code: 1

Source/WebKit2/UIProcess/qt/WebPopupMenuProxyQtDesktop.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
Tools/MiniBrowser/qt/BrowserWindow.h:41:  This { should be at the end of the previous line  [whitespace/braces] [4]
Tools/MiniBrowser/qt/BrowserWindow.h:45:  The parameter name &quot;window&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/MiniBrowser/qt/BrowserWindow.h:45:  The parameter name &quot;widget&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/MiniBrowser/qt/BrowserWindow.h:48:  The parameter name &quot;event&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/MiniBrowser/qt/BrowserWindow.h:49:  The parameter name &quot;event&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/API/qt/qdesktopwebview.h:47:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit/qt/Api/qgraphicswebview.cpp:43:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit/qt/Api/qwebview.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/qt/ViewInterface.h:26:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 10 in 52 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>474232</commentid>
    <comment_count>6</comment_count>
      <attachid>108892</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-09-27 14:19:32 -0700</bug_when>
    <thetext>Comment on attachment 108892
Patch

Attachment 108892 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9878430</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474239</commentid>
    <comment_count>7</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-09-27 14:30:09 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Attachment 108892 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u...&quot; exit_code: 1
&gt; 
&gt; Source/WebKit2/UIProcess/qt/WebPopupMenuProxyQtDesktop.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
&gt; Tools/MiniBrowser/qt/BrowserWindow.h:41:  This { should be at the end of the previous line  [whitespace/braces] [4]
&gt; Tools/MiniBrowser/qt/BrowserWindow.h:45:  The parameter name &quot;window&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Tools/MiniBrowser/qt/BrowserWindow.h:45:  The parameter name &quot;widget&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Tools/MiniBrowser/qt/BrowserWindow.h:48:  The parameter name &quot;event&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Tools/MiniBrowser/qt/BrowserWindow.h:49:  The parameter name &quot;event&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
&gt; Source/WebKit2/UIProcess/API/qt/qdesktopwebview.h:47:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
&gt; Source/WebKit/qt/Api/qgraphicswebview.cpp:43:  Alphabetical sorting problem.  [build/include_order] [4]
&gt; Source/WebKit/qt/Api/qwebview.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
&gt; Source/WebKit2/UIProcess/qt/ViewInterface.h:26:  Alphabetical sorting problem.  [build/include_order] [4]
&gt; Total errors found: 10 in 52 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

It was before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474246</commentid>
    <comment_count>8</comment_count>
      <attachid>108900</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-09-27 14:38:16 -0700</bug_when>
    <thetext>Created attachment 108900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474249</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-27 14:40:06 -0700</bug_when>
    <thetext>Attachment 108900 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u...&quot; exit_code: 1

Source/WebKit2/UIProcess/qt/WebPopupMenuProxyQtDesktop.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
Tools/MiniBrowser/qt/BrowserWindow.h:41:  This { should be at the end of the previous line  [whitespace/braces] [4]
Tools/MiniBrowser/qt/BrowserWindow.h:45:  The parameter name &quot;window&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/MiniBrowser/qt/BrowserWindow.h:45:  The parameter name &quot;widget&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/MiniBrowser/qt/BrowserWindow.h:48:  The parameter name &quot;event&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/MiniBrowser/qt/BrowserWindow.h:49:  The parameter name &quot;event&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/API/qt/qdesktopwebview.h:47:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit/qt/Api/qgraphicswebview.cpp:43:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit/qt/Api/qwebview.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/qt/ViewInterface.h:26:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 10 in 52 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>474282</commentid>
    <comment_count>10</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-09-27 15:17:39 -0700</bug_when>
    <thetext>Obseleted all, Tor-Arne will land all by himself. Was just to help but it seems that all is under control on his side.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108892</attachid>
            <date>2011-09-27 14:09:18 -0700</date>
            <delta_ts>2011-09-27 14:38:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68687-20110927180905.patch</filename>
            <type>text/plain</type>
            <size>44945</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk2MTUy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDkt
MjcgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAg
ICAgW1F0XSBGaXggYnVpbGQgYWdhaW5zdCBRdDUgYWZ0ZXIgcmVmYWN0b3Igb2YgUVdpZGdldCBp
bnRvIGl0cyBvd24gbGlicmFyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njg2ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBRV2lkZ2V0IGFuZCBmcmllbmRzIG5vdyBsaXZlIGluIHRoZSBRdFdpZGdldHMg
bGlicmFyeS4gV2UgdXBkYXRlCisgICAgICAgIGluY2x1ZGVzIGluIGltcGxlbWVudGF0aW9uIGZp
bGVzIGFuZCBwcml2YXRlIGhlYWRlcnMgdG8gdXMgdGhlCisgICAgICAgIG5vbi1tb2R1bGUtcHJl
Zml4ZWQgcGF0aCwgYW5kIGxlYXZlIHRoZSBsb29rdXAgZm9yIHRoZSBpbmNsdWRlCisgICAgICAg
IHBhdGguIEZvciBwdWJsaWMgaGVhZGVycyB3ZSBoYXZlIHRvIGlmZGVmIHRoZSBpbmNsdWRlcyBh
cyB0aGUKKyAgICAgICAgdXNlciBtaWdodCBub3cgaGF2ZSB0aGUgbW9kdWxlcyB3ZSBuZWVkIGlu
IGhpcyBRVCBjb25maWcuCisKKyAgICAgICAgRmluYWxseSwgUVNHQ2FudmFzIGlzIG5vIGxvbmdl
ciBhIFFXaWRnZXQgYnV0IGEgUVdpbmRvdywgc28gd2UKKyAgICAgICAgaGF2ZSB0byB1cGRhdGUg
b3VyIGNvZGUgYW5kIHVzZSB3aW5kb3dIYW5kbGUoKSBmb3Igc2V0dGluZyB0aGUKKyAgICAgICAg
cGFyZW50IHJlbGF0aW9uc2hpcHMuCisKKyAgICAgICAgUGF0Y2ggYnkgVG9yIEFybmUgVmVzdGLD
uCA8dmVzdGJvQHdlYmtpdC5vcmc+LgorCisgICAgICAgICogU291cmNlL1dlYktpdC5wcm86CisK
IDIwMTEtMDktMjcgIFVsYW4gRGVnZW5iYWV2ICA8dWxhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW3Y4XSBDb2RlIGNhbGxpbmcgdGhlIHR5cGVkIGFycmF5IG9wdGltaXphdGlvbiBzY3JpcHQg
aXMgZnJhZ2lsZSwgZGVwZW5kcyBvbiB0eXBlZCBhcnJheSBoaWVyYXJjaHkuCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0LnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0LnBybwkocmV2aXNpb24g
OTYxNTIpCisrKyBTb3VyY2UvV2ViS2l0LnBybwkod29ya2luZyBjb3B5KQpAQCAtMTcsNiArMTcs
MTMgQEAgd2Via2l0MiB7CiAgICAgZXhpc3RzKCQkUFdEL1dlYktpdDIvV2ViS2l0Mi5wcm8pOiBT
VUJESVJTICs9IFdlYktpdDIvV2ViS2l0Mi5wcm8KIH0KIAorZ3JlYXRlclRoYW4oUVRfTUFKT1Jf
VkVSU0lPTiwgNCkgeworICAgIGlzRW1wdHkoUVQud2lkZ2V0cy5uYW1lKXxpc0VtcHR5KFFULnBy
aW50c3VwcG9ydC5uYW1lKSB7CisgICAgICAgIG1lc3NhZ2UoIkJ1aWxkaW5nIFdlYktpdCBhZ2Fp
bnN0IFF0IDUuMCByZXF1aXJlcyB0aGUgUXRXaWRnZXRzIGFuZCBRdFByaW50U3VwcG9ydCBtb2R1
bGVzLiIpCisgICAgICAgIGVycm9yKCJBYm9ydGluZyBidWlsZC4iKQorICAgIH0KK30KKwogU1VC
RElSUyArPSBXZWJDb3JlCiBTVUJESVJTICs9IFdlYktpdC9xdC9RdFdlYktpdC5wcm8KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwkocmV2aXNpb24gOTYxNTIpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxMS0wOS0yNyAgQWxleGlzIE1lbmFy
ZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbUXRdIEZpeCBidWls
ZCBhZ2FpbnN0IFF0NSBhZnRlciByZWZhY3RvciBvZiBRV2lkZ2V0IGludG8gaXRzIG93biBsaWJy
YXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODY4
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFFXaWRn
ZXQgYW5kIGZyaWVuZHMgbm93IGxpdmUgaW4gdGhlIFF0V2lkZ2V0cyBsaWJyYXJ5LiBXZSB1cGRh
dGUKKyAgICAgICAgaW5jbHVkZXMgaW4gaW1wbGVtZW50YXRpb24gZmlsZXMgYW5kIHByaXZhdGUg
aGVhZGVycyB0byB1cyB0aGUKKyAgICAgICAgbm9uLW1vZHVsZS1wcmVmaXhlZCBwYXRoLCBhbmQg
bGVhdmUgdGhlIGxvb2t1cCBmb3IgdGhlIGluY2x1ZGUKKyAgICAgICAgcGF0aC4gRm9yIHB1Ymxp
YyBoZWFkZXJzIHdlIGhhdmUgdG8gaWZkZWYgdGhlIGluY2x1ZGVzIGFzIHRoZQorICAgICAgICB1
c2VyIG1pZ2h0IG5vdyBoYXZlIHRoZSBtb2R1bGVzIHdlIG5lZWQgaW4gaGlzIFFUIGNvbmZpZy4K
KworICAgICAgICBGaW5hbGx5LCBRU0dDYW52YXMgaXMgbm8gbG9uZ2VyIGEgUVdpZGdldCBidXQg
YSBRV2luZG93LCBzbyB3ZQorICAgICAgICBoYXZlIHRvIHVwZGF0ZSBvdXIgY29kZSBhbmQgdXNl
IHdpbmRvd0hhbmRsZSgpIGZvciBzZXR0aW5nIHRoZQorICAgICAgICBwYXJlbnQgcmVsYXRpb25z
aGlwcy4KKworICAgICAgICBQYXRjaCBieSBUb3IgQXJuZSBWZXN0YsO4IDx2ZXN0Ym9Ad2Via2l0
Lm9yZz4uCisKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwOgorCiAyMDExLTA5LTI3ICBPamFuIFZhZmFpICA8
b2phbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgb2Zmc2V0VG9wL29mZnNldExlZnQgcmV0dXJu
IHRoZSB3cm9uZyB2YWx1ZXMgZm9yIGhvcml6b250YWwtYnQvdmVydGljYWwtcmwgd3JpdGluZyBt
b2RlcwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDk2MTUyKQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTMzMiw3ICszMzIsMTAgQEAgdW5peDoh
bWFjOiotZysrKjpRTUFLRV9DWFhGTEFHUyArPSAtZmZ1bgogdW5peDohbWFjOiotZysrKjpRTUFL
RV9MRkxBR1MgKz0gLVdsLC0tZ2Mtc2VjdGlvbnMKIGxpbnV4Ki1nKysqOlFNQUtFX0xGTEFHUyAr
PSAkJFFNQUtFX0xGTEFHU19OT1VOREVGCiAKLXVuaXh8d2luMzItZysrKjpRTUFLRV9QS0dDT05G
SUdfUkVRVUlSRVMgPSBRdENvcmUgUXRHdWkgUXROZXR3b3JrCit1bml4fHdpbjMyLWcrKyogewor
ICAgIFFNQUtFX1BLR0NPTkZJR19SRVFVSVJFUyA9IFF0Q29yZSBRdEd1aSBRdE5ldHdvcmsKKyAg
ICBncmVhdGVyVGhhbihRVF9NQUpPUl9WRVJTSU9OLCA0KTogUU1BS0VfUEtHQ09ORklHX1JFUVVJ
UkVTICs9IFF0V2lkZ2V0cworfQogdW5peDohbWFjOiFzeW1iaWFuOkNPTkZJRyArPSBsaW5rX3Br
Z2NvbmZpZwogCiAjIERpc2FibGUgQysrMHggbW9kZSBpbiBXZWJDb3JlIGZvciB0aG9zZSB3aG8g
ZW5hYmxlZCBpdCBpbiB0aGVpciBRdCdzIG1rc3BlYwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCShyZXZp
c2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBo
aWNzTGF5ZXJRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDEyIEBACiAjaW5jbHVk
ZSAiUmVmQ291bnRlZC5oIgogI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5o
IgogI2luY2x1ZGUgIlVuaXRCZXppZXIuaCIKKyNpbmNsdWRlIDxxZ3JhcGhpY3NlZmZlY3QuaD4K
KyNpbmNsdWRlIDxxZ3JhcGhpY3NpdGVtLmg+CisjaW5jbHVkZSA8cWdyYXBoaWNzc2NlbmUuaD4K
KyNpbmNsdWRlIDxxZ3JhcGhpY3N2aWV3Lmg+CisjaW5jbHVkZSA8cWdyYXBoaWNzd2lkZ2V0Lmg+
CisjaW5jbHVkZSA8cXN0eWxlb3B0aW9uLmg+CiAjaW5jbHVkZSA8UXRDb3JlL3FhYnN0cmFjdGFu
aW1hdGlvbi5oPgogI2luY2x1ZGUgPFF0Q29yZS9xZGF0ZXRpbWUuaD4KICNpbmNsdWRlIDxRdENv
cmUvcWRlYnVnLmg+CkBAIC0zNiwxNSArNDIsOSBAQAogI2luY2x1ZGUgPFF0Q29yZS9xc2V0Lmg+
CiAjaW5jbHVkZSA8UXRDb3JlL3F0aW1lci5oPgogI2luY2x1ZGUgPFF0R3VpL3Fjb2xvci5oPgot
I2luY2x1ZGUgPFF0R3VpL3FncmFwaGljc2VmZmVjdC5oPgotI2luY2x1ZGUgPFF0R3VpL3FncmFw
aGljc2l0ZW0uaD4KLSNpbmNsdWRlIDxRdEd1aS9xZ3JhcGhpY3NzY2VuZS5oPgotI2luY2x1ZGUg
PFF0R3VpL3FncmFwaGljc3ZpZXcuaD4KLSNpbmNsdWRlIDxRdEd1aS9xZ3JhcGhpY3N3aWRnZXQu
aD4KICNpbmNsdWRlIDxRdEd1aS9xcGFpbnRlci5oPgogI2luY2x1ZGUgPFF0R3VpL3FwaXhtYXAu
aD4KICNpbmNsdWRlIDxRdEd1aS9xcGl4bWFwY2FjaGUuaD4KLSNpbmNsdWRlIDxRdEd1aS9xc3R5
bGVvcHRpb24uaD4KIAogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogI2luY2x1ZGUg
IlRpbGVkQmFja2luZ1N0b3JlLmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjE1MikKKysr
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDExLTA5LTI3ICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3Jn
PgorCisgICAgICAgIFtRdF0gRml4IGJ1aWxkIGFnYWluc3QgUXQ1IGFmdGVyIHJlZmFjdG9yIG9m
IFFXaWRnZXQgaW50byBpdHMgb3duIGxpYnJhcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY4Njg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUVdpZGdldCBhbmQgZnJpZW5kcyBub3cgbGl2ZSBpbiB0aGUg
UXRXaWRnZXRzIGxpYnJhcnkuIFdlIHVwZGF0ZQorICAgICAgICBpbmNsdWRlcyBpbiBpbXBsZW1l
bnRhdGlvbiBmaWxlcyBhbmQgcHJpdmF0ZSBoZWFkZXJzIHRvIHVzIHRoZQorICAgICAgICBub24t
bW9kdWxlLXByZWZpeGVkIHBhdGgsIGFuZCBsZWF2ZSB0aGUgbG9va3VwIGZvciB0aGUgaW5jbHVk
ZQorICAgICAgICBwYXRoLiBGb3IgcHVibGljIGhlYWRlcnMgd2UgaGF2ZSB0byBpZmRlZiB0aGUg
aW5jbHVkZXMgYXMgdGhlCisgICAgICAgIHVzZXIgbWlnaHQgbm93IGhhdmUgdGhlIG1vZHVsZXMg
d2UgbmVlZCBpbiBoaXMgUVQgY29uZmlnLgorCisgICAgICAgIEZpbmFsbHksIFFTR0NhbnZhcyBp
cyBubyBsb25nZXIgYSBRV2lkZ2V0IGJ1dCBhIFFXaW5kb3csIHNvIHdlCisgICAgICAgIGhhdmUg
dG8gdXBkYXRlIG91ciBjb2RlIGFuZCB1c2Ugd2luZG93SGFuZGxlKCkgZm9yIHNldHRpbmcgdGhl
CisgICAgICAgIHBhcmVudCByZWxhdGlvbnNoaXBzLgorCisgICAgICAgIFBhdGNoIGJ5IFRvciBB
cm5lIFZlc3Riw7ggPHZlc3Rib0B3ZWJraXQub3JnPi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFEZXNrdG9wV2ViVmlld1ByaXZh
dGU6OnN0YXJ0RHJhZyk6CisgICAgICAgIChRRGVza3RvcFdlYlZpZXdQcml2YXRlOjpkaWRDaGFu
Z2VUb29sVGlwKToKKyAgICAgICAgKFFEZXNrdG9wV2ViVmlld1ByaXZhdGU6OmRpZENoYW5nZUN1
cnNvcik6CisgICAgICAgIChRRGVza3RvcFdlYlZpZXdQcml2YXRlOjpzaG93Q29udGV4dE1lbnUp
OgorICAgICAgICAoUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTo6Y2hvb3NlRmlsZXMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy90ZXN0cy5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy90ZXN0cy5wcm86CisgICAgICAgICogVUlQcm9jZXNzL3F0L1ZpZXdJbnRlcmZhY2UuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3AuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcDo6V2ViUG9wdXBNZW51
UHJveHlRdERlc2t0b3ApOgorCiAyMDExLTA5LTI3ICBHb3BhbCBSYWdoYXZhbiAgPGdvcGFsLjEu
cmFnaGF2YW5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gUURlc2t0b3BXZWJWaWV3IGxvYWQg
emVybyBzaXplIHZpZXcgdGVzdCBtaXNzaW5nCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3BwCShyZXZpc2lvbiA5NjE1MikK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsOCBAQAogI2luY2x1ZGUgInFkZXNrdG9wd2Vidmll
d19wLmgiCiAjaW5jbHVkZSAicXdlYmVycm9yLmgiCiAKKyNpbmNsdWRlIDxRRmlsZURpYWxvZz4K
KyNpbmNsdWRlIDxRR3JhcGhpY3NTY2VuZUV2ZW50PgogI2luY2x1ZGUgPFFHcmFwaGljc1NjZW5l
UmVzaXplRXZlbnQ+CiAjaW5jbHVkZSA8UVN0eWxlT3B0aW9uR3JhcGhpY3NJdGVtPgogI2luY2x1
ZGUgPFF0RGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZlZW5naW5lLmg+CkBAIC0zMSw3ICszMyw3IEBA
CiAjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xc2dpdGVtLmg+CiAjaW5jbHVkZSA8UXREZWNsYXJh
dGl2ZS9xc2d2aWV3Lmg+CiAjaW5jbHVkZSA8UXRHdWkvUUN1cnNvcj4KLSNpbmNsdWRlIDxRdEd1
aS9RRmlsZURpYWxvZz4KKyNpbmNsdWRlIDxRdEd1aS9RRHJhZz4KICNpbmNsdWRlIDxRdEd1aS9R
Rm9jdXNFdmVudD4KICNpbmNsdWRlIDxRdEd1aS9RR3JhcGhpY3NTY2VuZUV2ZW50PgogI2luY2x1
ZGUgPFF0R3VpL1FIb3ZlckV2ZW50PgpAQCAtODEsMTYgKzgzLDE2IEBAIGJvb2wgUURlc2t0b3BX
ZWJWaWV3UHJpdmF0ZTo6aXNWaXNpYmxlKCkKIAogdm9pZCBRRGVza3RvcFdlYlZpZXdQcml2YXRl
OjpzdGFydERyYWcoUXQ6OkRyb3BBY3Rpb25zIHN1cHBvcnRlZERyb3BBY3Rpb25zLCBjb25zdCBR
SW1hZ2UmIGRyYWdJbWFnZSwgUU1pbWVEYXRhKiBkYXRhLCBRUG9pbnQqIGNsaWVudFBvc2l0aW9u
LCBRUG9pbnQqIGdsb2JhbFBvc2l0aW9uLCBRdDo6RHJvcEFjdGlvbiogZHJvcEFjdGlvbikKIHsK
LSAgICBRV2lkZ2V0KiB3aWRnZXQgPSBxLT5jYW52YXMoKTsKLSAgICBpZiAoIXdpZGdldCkKKyAg
ICBRV2luZG93KiB3aW5kb3cgPSBxLT5jYW52YXMoKTsKKyAgICBpZiAoIXdpbmRvdykKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgUURyYWcqIGRyYWcgPSBuZXcgUURyYWcod2lkZ2V0KTsKKyAgICBR
RHJhZyogZHJhZyA9IG5ldyBRRHJhZyh3aW5kb3cpOwogICAgIGRyYWctPnNldFBpeG1hcChRUGl4
bWFwOjpmcm9tSW1hZ2UoZHJhZ0ltYWdlKSk7CiAgICAgZHJhZy0+c2V0TWltZURhdGEoZGF0YSk7
CiAgICAgKmRyb3BBY3Rpb24gPSBkcmFnLT5leGVjKHN1cHBvcnRlZERyb3BBY3Rpb25zKTsKICAg
ICAqZ2xvYmFsUG9zaXRpb24gPSBRQ3Vyc29yOjpwb3MoKTsKLSAgICAqY2xpZW50UG9zaXRpb24g
PSB3aWRnZXQtPm1hcEZyb21HbG9iYWwoKmdsb2JhbFBvc2l0aW9uKTsKKyAgICAqY2xpZW50UG9z
aXRpb24gPSB3aW5kb3ctPm1hcEZyb21HbG9iYWwoKmdsb2JhbFBvc2l0aW9uKTsKIH0KIAogdm9p
ZCBRRGVza3RvcFdlYlZpZXdQcml2YXRlOjpkaWRSZWNlaXZlVmlld3BvcnRBcmd1bWVudHMoY29u
c3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKQpAQCAtMTE2LDcgKzExOCw2IEBAIHZvaWQg
UURlc2t0b3BXZWJWaWV3UHJpdmF0ZTo6ZGlkQ2hhbmdlVGkKIHZvaWQgUURlc2t0b3BXZWJWaWV3
UHJpdmF0ZTo6ZGlkQ2hhbmdlVG9vbFRpcChjb25zdCBRU3RyaW5nJiBuZXdUb29sVGlwKQogewog
ICAgIC8vIEZJWE1FOiBBZGQgYSBwcm9wZXIgaW1wbGVtZW50YXRpb24gd2hlbiBRdCA1IHN1cHBv
cnRzIHRvb2x0aXAuCi0gICAgcS0+Y2FudmFzKCktPnNldFRvb2xUaXAobmV3VG9vbFRpcCk7CiB9
CiAKIHZvaWQgUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTo6ZGlkQ2hhbmdlU3RhdHVzVGV4dChjb25z
dCBRU3RyaW5nJiBuZXdNZXNzYWdlKQpAQCAtMTI3LDcgKzEyOCw2IEBAIHZvaWQgUURlc2t0b3BX
ZWJWaWV3UHJpdmF0ZTo6ZGlkQ2hhbmdlU3QKIHZvaWQgUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTo6
ZGlkQ2hhbmdlQ3Vyc29yKGNvbnN0IFFDdXJzb3ImIG5ld0N1cnNvcikKIHsKICAgICAvLyBGSVhN
RTogYWRkIHByb3BlciBjdXJzb3IgaGFuZGxpbmcgd2hlbiBRdCA1IHN1cHBvcnRzIGl0LgotICAg
IHEtPmNhbnZhcygpLT5zZXRDdXJzb3IobmV3Q3Vyc29yKTsKIH0KIAogdm9pZCBRRGVza3RvcFdl
YlZpZXdQcml2YXRlOjpsb2FkRGlkQmVnaW4oKQpAQCAtMTY0LDE1ICsxNjQsMTggQEAgdm9pZCBR
RGVza3RvcFdlYlZpZXdQcml2YXRlOjpzaG93Q29udGV4dAogICAgIGlmIChtZW51LT5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFFXaWRnZXQqIHdpZGdldCA9IHEtPmNhbnZhcygp
OwotICAgIGlmICghd2lkZ2V0KQorICAgIFFXaW5kb3cqIHdpbmRvdyA9IHEtPmNhbnZhcygpOwor
ICAgIGlmICghd2luZG93KQogICAgICAgICByZXR1cm47CiAKICAgICBhY3RpdmVNZW51ID0gbWVu
dTsKIAotICAgIG1lbnUtPnNldFBhcmVudCh3aWRnZXQsIG1lbnUtPndpbmRvd0ZsYWdzKCkpOwor
ICAgIGFjdGl2ZU1lbnUtPndpbmRvdygpLT53aW5JZCgpOyAvLyBFbnN1cmUgdGhhdCB0aGUgbWVu
dSBoYXMgYSB3aW5kb3cKKyAgICBRX0FTU0VSVChhY3RpdmVNZW51LT53aW5kb3coKS0+d2luZG93
SGFuZGxlKCkpOworICAgIGFjdGl2ZU1lbnUtPndpbmRvdygpLT53aW5kb3dIYW5kbGUoKS0+c2V0
VHJhbnNpZW50UGFyZW50KHdpbmRvdyk7CisKICAgICBRUG9pbnQgbWVudVBvc2l0aW9uSW5TY2Vu
ZSA9IHEtPm1hcFRvU2NlbmUobWVudS0+cG9zKCkpLnRvUG9pbnQoKTsKLSAgICBtZW51LT5leGVj
KHdpZGdldC0+bWFwVG9HbG9iYWwobWVudVBvc2l0aW9uSW5TY2VuZSkpOworICAgIG1lbnUtPmV4
ZWMod2luZG93LT5tYXBUb0dsb2JhbChtZW51UG9zaXRpb25JblNjZW5lKSk7CiAgICAgLy8gVGhl
IGxhc3QgZnVuY3Rpb24gdG8gZ2V0IG91dCBvZiBleGVjKCkgY2xlYXIgdGhlIGxvY2FsIGNvcHku
CiAgICAgaWYgKGFjdGl2ZU1lbnUgPT0gbWVudSkKICAgICAgICAgYWN0aXZlTWVudS5jbGVhcigp
OwpAQCAtNDAzLDggKzQwNiwxNyBAQCB2b2lkIFFEZXNrdG9wV2ViVmlld1ByaXZhdGU6OmNob29z
ZUZpbGVzCiAgICAgaWYgKCFzZWxlY3RlZEZpbGVOYW1lcy5pc0VtcHR5KCkpCiAgICAgICAgIHNl
bGVjdGVkRmlsZU5hbWUgPSBzZWxlY3RlZEZpbGVOYW1lcy5hdCgwKTsKIAotICAgIFFXaWRnZXQq
IHdpZGdldCA9IHEtPmNhbnZhcygpOwotICAgIGZpbGVEaWFsb2cgPSBuZXcgUUZpbGVEaWFsb2co
d2lkZ2V0LCBRU3RyaW5nKCksIHNlbGVjdGVkRmlsZU5hbWUpOworICAgIFFfQVNTRVJUKCFmaWxl
RGlhbG9nKTsKKworICAgIFFXaW5kb3cqIHdpbmRvdyA9IHEtPmNhbnZhcygpOworICAgIGlmICgh
d2luZG93KQorICAgICAgICByZXR1cm47CisKKyAgICBmaWxlRGlhbG9nID0gbmV3IFFGaWxlRGlh
bG9nKDAsIFFTdHJpbmcoKSwgc2VsZWN0ZWRGaWxlTmFtZSk7CisgICAgZmlsZURpYWxvZy0+d2lu
ZG93KCktPndpbklkKCk7IC8vIEVuc3VyZSB0aGF0IHRoZSBkaWFsb2cgaGFzIGEgd2luZG93Cisg
ICAgUV9BU1NFUlQoZmlsZURpYWxvZy0+d2luZG93KCktPndpbmRvd0hhbmRsZSgpKTsKKyAgICBm
aWxlRGlhbG9nLT53aW5kb3coKS0+d2luZG93SGFuZGxlKCktPnNldFRyYW5zaWVudFBhcmVudCh3
aW5kb3cpOworCiAgICAgZmlsZURpYWxvZy0+b3Blbih0aGlzLCBTTE9UKG9uT3BlblBhbmVsRmls
ZXNTZWxlY3RlZCgpKSk7CiAKICAgICBjb25uZWN0KGZpbGVEaWFsb2csIFNJR05BTChmaW5pc2hl
ZChpbnQpKSwgdGhpcywgU0xPVChvbk9wZW5QYW5lbEZpbmlzaGVkKGludCkpKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuaAko
cmV2aXNpb24gOTYxNTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNr
dG9wd2Vidmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIFFXaGVl
bEV2ZW50OwogUVRfRU5EX05BTUVTUEFDRQogCiBuYW1lc3BhY2UgV1RSIHsKLSAgICBjbGFzcyBX
ZWJWaWV3OworICAgIGNsYXNzIFBsYXRmb3JtV2ViVmlldzsKIH0KIAogY2xhc3MgUVdFQktJVF9F
WFBPUlQgUURlc2t0b3BXZWJWaWV3IDogcHVibGljIFFTR1BhaW50ZWRJdGVtIHsKQEAgLTEyMCw3
ICsxMjAsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBpbml0KCk7CiAKLSAgICBmcmllbmQgY2xh
c3MgV1RSOjpXZWJWaWV3OworICAgIGZyaWVuZCBjbGFzcyBXVFI6OlBsYXRmb3JtV2ViVmlldzsK
ICAgICBmcmllbmQgY2xhc3MgUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTsKICAgICBRRGVza3RvcFdl
YlZpZXdQcml2YXRlICpkOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvdGVzdHMucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvdGVzdHMucHJpCShyZXZpc2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvdGVzdHMucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0x
MSw3ICsxMSw3IEBAIFNPVVJDRVMgKz0gJCR7VEFSR0VUfS5jcHAgXAogSU5DTFVERVBBVEggKz0g
JCRQV0QKIAogaW5jbHVkZSguLi8uLi8uLi8uLi8uLi9XZWJLaXQucHJpKQotUVQgKz0gdGVzdGxp
YiBkZWNsYXJhdGl2ZQorUVQgKz0gdGVzdGxpYiBkZWNsYXJhdGl2ZSB3aWRnZXRzCiAKIFFNQUtF
X1JQQVRIRElSID0gJCRPVVRQVVRfRElSL2xpYiAkJFFNQUtFX1JQQVRIRElSCiBERUZJTkVTICs9
IFRFU1RTX1NPVVJDRV9ESVI9XFxcIiQkUFdEXFxcIiBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Rlc3RzLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Rlc3RzLnBybwkocmV2aXNpb24gOTYxNTIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Rlc3RzLnBybwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwyICsxLDMgQEAKIFRFTVBMQVRFID0gc3ViZGlycwotU1VCRElSUyA9IHF0
b3VjaHdlYnZpZXcgcWRlc2t0b3B3ZWJ2aWV3IGNvbW1vbnZpZXd0ZXN0cyBxbWx0ZXN0cworU1VC
RElSUyA9IHF0b3VjaHdlYnZpZXcgcWRlc2t0b3B3ZWJ2aWV3IGNvbW1vbnZpZXd0ZXN0cworbGVz
c1RoYW4oUVRfTUFKT1JfVkVSU0lPTiwgNSk6IFNVQkRJUlMgKz0gcW1sdGVzdHMKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9WaWV3SW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1ZpZXdJbnRlcmZhY2UuaAkocmV2aXNpb24gOTYx
NTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvVmlld0ludGVyZmFjZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBACiAKICNpbmNsdWRlIDxRdENvcmUvUVNoYXJlZFBv
aW50ZXI+CiAjaW5jbHVkZSA8UXRDb3JlL1FTaXplPgotI2luY2x1ZGUgPFF0R3VpL1FNZW51Pgor
I2luY2x1ZGUgPFFNZW51PgogI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CiAKIGNsYXNzIFFX
ZWJFcnJvcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQ
cm94eVF0RGVza3RvcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1dlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wLmNwcAkocmV2aXNpb24gOTYxNTIpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3AuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiV2ViUG9wdXBJdGVt
LmgiCiAjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9RU0dDYW52YXM+CiAjaW5jbHVkZSA8UXREZWNs
YXJhdGl2ZS9RU0dJdGVtPgotI2luY2x1ZGUgPFF0R3VpL1FTdGFuZGFyZEl0ZW1Nb2RlbD4KKyNp
bmNsdWRlIDxRU3RhbmRhcmRJdGVtTW9kZWw+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CkBAIC00NCw3ICs0NCwxMSBAQCBXZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcDo6V2ViUG9wdXBN
ZW51CiAgICAgLCBtX3NlbGVjdGVkSW5kZXgoLTEpCiB7CiAgICAgUXRXZWJDb21ib0JveCogY29t
Ym9Cb3ggPSBtX2NvbWJvQm94LmRhdGEoKTsKLSAgICBjb21ib0JveC0+c2V0UGFyZW50KG1fd2Vi
Vmlld0l0ZW0tPmNhbnZhcygpKTsKKworICAgIGNvbWJvQm94LT53aW5kb3coKS0+d2luSWQoKTsg
Ly8gRW5zdXJlIHRoYXQgdGhlIGNvbWJvYm94IGhhcyBhIHdpbmRvdworICAgIFFfQVNTRVJUKGNv
bWJvQm94LT53aW5kb3coKS0+d2luZG93SGFuZGxlKCkpOworICAgIGNvbWJvQm94LT53aW5kb3co
KS0+d2luZG93SGFuZGxlKCktPnNldFRyYW5zaWVudFBhcmVudChtX3dlYlZpZXdJdGVtLT5jYW52
YXMoKSk7CisKICAgICBjb25uZWN0KGNvbWJvQm94LCBTSUdOQUwoYWN0aXZhdGVkKGludCkpLCBT
TE9UKHNldFNlbGVjdGVkSW5kZXgoaW50KSkpOwogICAgIGNvbm5lY3QoY29tYm9Cb3gsIFNJR05B
TChkaWRIaWRlKCkpLCBTTE9UKG9uUG9wdXBNZW51SGlkZGVuKCkpLCBRdDo6UXVldWVkQ29ubmVj
dGlvbik7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gOTYxNTIpCisrKyBTb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDEx
LTA5LTI3ICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIFtRdF0gRml4IGJ1aWxkIGFnYWluc3QgUXQ1IGFmdGVyIHJlZmFjdG9yIG9mIFFXaWRn
ZXQgaW50byBpdHMgb3duIGxpYnJhcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4Njg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUVdpZGdldCBhbmQgZnJpZW5kcyBub3cgbGl2ZSBpbiB0aGUgUXRXaWRn
ZXRzIGxpYnJhcnkuIFdlIHVwZGF0ZQorICAgICAgICBpbmNsdWRlcyBpbiBpbXBsZW1lbnRhdGlv
biBmaWxlcyBhbmQgcHJpdmF0ZSBoZWFkZXJzIHRvIHVzIHRoZQorICAgICAgICBub24tbW9kdWxl
LXByZWZpeGVkIHBhdGgsIGFuZCBsZWF2ZSB0aGUgbG9va3VwIGZvciB0aGUgaW5jbHVkZQorICAg
ICAgICBwYXRoLiBGb3IgcHVibGljIGhlYWRlcnMgd2UgaGF2ZSB0byBpZmRlZiB0aGUgaW5jbHVk
ZXMgYXMgdGhlCisgICAgICAgIHVzZXIgbWlnaHQgbm93IGhhdmUgdGhlIG1vZHVsZXMgd2UgbmVl
ZCBpbiBoaXMgUVQgY29uZmlnLgorCisgICAgICAgIEZpbmFsbHksIFFTR0NhbnZhcyBpcyBubyBs
b25nZXIgYSBRV2lkZ2V0IGJ1dCBhIFFXaW5kb3csIHNvIHdlCisgICAgICAgIGhhdmUgdG8gdXBk
YXRlIG91ciBjb2RlIGFuZCB1c2Ugd2luZG93SGFuZGxlKCkgZm9yIHNldHRpbmcgdGhlCisgICAg
ICAgIHBhcmVudCByZWxhdGlvbnNoaXBzLgorCisgICAgICAgIFBhdGNoIGJ5IFRvciBBcm5lIFZl
c3Riw7ggPHZlc3Rib0B3ZWJraXQub3JnPi4KKworICAgICAgICAqIEFwaS9xZ3JhcGhpY3N3ZWJ2
aWV3LmNwcDoKKyAgICAgICAgKiBBcGkvcWdyYXBoaWNzd2Vidmlldy5oOgorICAgICAgICAqIEFw
aS9xd2ViZnJhbWUuaDoKKyAgICAgICAgKiBBcGkvcXdlYmhpc3RvcnkuaDoKKyAgICAgICAgKiBB
cGkvcXdlYnBhZ2UuaDoKKyAgICAgICAgKiBBcGkvcXdlYnNldHRpbmdzLmg6CisgICAgICAgICog
QXBpL3F3ZWJ2aWV3Lmg6CisgICAgICAgICogUXRXZWJLaXQucHJvOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1F0V2Vi
Q29tYm9Cb3guY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1F0V2ViQ29tYm9Cb3guaDoK
KyAgICAgICAgKiBkZWNsYXJhdGl2ZS9kZWNsYXJhdGl2ZS5wcm86CisgICAgICAgICogZGVjbGFy
YXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHA6CisgICAgICAgICogZGVjbGFyYXRpdmUvcWRl
Y2xhcmF0aXZld2Vidmlld19wLmg6CisgICAgICAgICogZG9jcy93ZWJraXRzbmlwcGV0cy93ZWJw
YWdlL21haW4uY3BwOgorICAgICAgICAqIGV4YW1wbGVzL3BsYXRmb3JtcGx1Z2luL1dlYk5vdGlm
aWNhdGlvblByZXNlbnRlci5oOgorICAgICAgICAqIHRlc3RzL3Rlc3RzLnByaToKKwogMjAxMS0w
OS0yNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjk2MTA4LCByOTYxMTEsIHI5NjExMywgYW5kIHI5
NjExNi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJvCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJvCShyZXZpc2lvbiA5NjE1MikKKysrIFNvdXJj
ZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJvCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBA
IHdlYmtpdDI6cHJlcGVuZFdlYktpdDJMaWIoLi4vLi4vV2ViS2l0MikKICMgdGhlIGdlbmVyYXRl
ZCBpbmNsdWRlcyBhcmUgY29udGFpbmluZyB0aGUgZGVwZW5kZW5jaWVzLgogIyBJdCB1c2VkIHRv
IGJlIGluIFdlYkNvcmUucHJvIGJ1dCBub3cgdGhhdCB0aGlzIGlzIHRoZSBtYWluIHBybyBmaWxl
IGl0IGhhcyB0byBiZSBoZXJlLgogUVQgKz0gbmV0d29yaworZ3JlYXRlclRoYW4oUVRfTUFKT1Jf
VkVSU0lPTiwgNCk6IFFUICs9IHByaW50c3VwcG9ydAogCiBpc0VtcHR5KE9VVFBVVF9ESVIpOiBP
VVRQVVRfRElSID0gLi4vLi4KIApJbmRleDogU291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNz
d2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNz
d2Vidmlldy5jcHAJKHJldmlzaW9uIDk2MTUyKQorKysgU291cmNlL1dlYktpdC9xdC9BcGkvcWdy
YXBoaWNzd2Vidmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDE3ICszNCwxOCBAQAogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRl
ICJUaWxlZEJhY2tpbmdTdG9yZS5oIgorI2luY2x1ZGUgPHFhcHBsaWNhdGlvbi5oPgorI2luY2x1
ZGUgPHFncmFwaGljc3NjZW5lLmg+CisjaW5jbHVkZSA8cWdyYXBoaWNzc2NlbmVldmVudC5oPgor
I2luY2x1ZGUgPHFncmFwaGljc3ZpZXcuaD4KKyNpbmNsdWRlIDxxc2Nyb2xsYmFyLmg+CisjaW5j
bHVkZSA8cXN0eWxlb3B0aW9uLmg+CisjaW5jbHVkZSA8cWlucHV0Y29udGV4dC5oPgogI2luY2x1
ZGUgPFF0Q29yZS9xbWV0YW9iamVjdC5oPgogI2luY2x1ZGUgPFF0Q29yZS9xc2hhcmVkcG9pbnRl
ci5oPgogI2luY2x1ZGUgPFF0Q29yZS9xdGltZXIuaD4KLSNpbmNsdWRlIDxRdEd1aS9xYXBwbGlj
YXRpb24uaD4KLSNpbmNsdWRlIDxRdEd1aS9xZ3JhcGhpY3NzY2VuZS5oPgotI2luY2x1ZGUgPFF0
R3VpL3FncmFwaGljc3NjZW5lZXZlbnQuaD4KLSNpbmNsdWRlIDxRdEd1aS9xZ3JhcGhpY3N2aWV3
Lmg+CiAjaW5jbHVkZSA8UXRHdWkvcXBpeG1hcGNhY2hlLmg+Ci0jaW5jbHVkZSA8UXRHdWkvcXNj
cm9sbGJhci5oPgotI2luY2x1ZGUgPFF0R3VpL3FzdHlsZW9wdGlvbi5oPgotI2luY2x1ZGUgPFF0
R3VpL3FpbnB1dGNvbnRleHQuaD4KKwogI2lmIGRlZmluZWQoUV9XU19YMTEpCiAjaW5jbHVkZSA8
UVgxMUluZm8+CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3FncmFwaGljc3dl
YnZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2
aWV3LmgJKHJldmlzaW9uIDk2MTUyKQorKysgU291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNz
d2Vidmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw5ICsyMywxNCBAQAogI2luY2x1ZGUgInF3
ZWJraXRnbG9iYWwuaCIKICNpbmNsdWRlICJxd2VicGFnZS5oIgogI2luY2x1ZGUgPFF0Q29yZS9x
dXJsLmg+Ci0jaW5jbHVkZSA8UXRHdWkvcWV2ZW50Lmg+CisjaWYgUVRfVkVSU0lPTiA+PSBRVF9W
RVJTSU9OX0NIRUNLKDUsIDAsIDApCisjaW5jbHVkZSA8UXRXaWRnZXRzL3FncmFwaGljc3dpZGdl
dC5oPgorI2luY2x1ZGUgPFF0V2lkZ2V0cy9xaWNvbi5oPgorI2Vsc2UKICNpbmNsdWRlIDxRdEd1
aS9xZ3JhcGhpY3N3aWRnZXQuaD4KICNpbmNsdWRlIDxRdEd1aS9xaWNvbi5oPgorI2VuZGlmCisj
aW5jbHVkZSA8UXRHdWkvcWV2ZW50Lmg+CiAjaW5jbHVkZSA8UXRHdWkvcXBhaW50ZXIuaD4KICNp
bmNsdWRlIDxRdE5ldHdvcmsvcW5ldHdvcmthY2Nlc3NtYW5hZ2VyLmg+CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
cXQvQXBpL3F3ZWJmcmFtZS5oCShyZXZpc2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJLaXQvcXQv
QXBpL3F3ZWJmcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCwxMSBAQAogI2luY2x1
ZGUgPFF0Q29yZS9xb2JqZWN0Lmg+CiAjaW5jbHVkZSA8UXRDb3JlL3F1cmwuaD4KICNpbmNsdWRl
IDxRdENvcmUvcXZhcmlhbnQuaD4KKyNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0so
NSwgMCwgMCkKKyNpbmNsdWRlIDxRdFdpZGdldHMvcWljb24uaD4KKyNlbHNlCiAjaW5jbHVkZSA8
UXRHdWkvcWljb24uaD4KKyNlbmRpZgogI2luY2x1ZGUgPFF0U2NyaXB0L3FzY3JpcHRlbmdpbmUu
aD4KICNpbmNsdWRlIDxRdE5ldHdvcmsvcW5ldHdvcmthY2Nlc3NtYW5hZ2VyLmg+CiAjaW5jbHVk
ZSAicXdlYmtpdGdsb2JhbC5oIgpJbmRleDogU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmhpc3Rv
cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViaGlzdG9yeS5oCShy
ZXZpc2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0b3J5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTIyLDkgKzIyLDEzIEBACiAKICNpbmNsdWRlIDxRdENvcmUvcXVybC5o
PgogI2luY2x1ZGUgPFF0Q29yZS9xc3RyaW5nLmg+Ci0jaW5jbHVkZSA8UXRHdWkvcWljb24uaD4K
ICNpbmNsdWRlIDxRdENvcmUvcWRhdGV0aW1lLmg+CiAjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRk
YXRhLmg+CisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCisjaW5j
bHVkZSA8UXRXaWRnZXRzL3FpY29uLmg+CisjZWxzZQorI2luY2x1ZGUgPFF0R3VpL3FpY29uLmg+
CisjZW5kaWYKIAogI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKIApJbmRleDogU291cmNlL1dl
YktpdC9xdC9BcGkvcXdlYnBhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0Fw
aS9xd2VicGFnZS5oCShyZXZpc2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJwYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDExIEBACiAKICNpbmNsdWRlIDxR
dENvcmUvcW9iamVjdC5oPgogI2luY2x1ZGUgPFF0Q29yZS9xdXJsLmg+CisjaWYgUVRfVkVSU0lP
TiA+PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCisjaW5jbHVkZSA8UXRXaWRnZXRzL3F3aWRn
ZXQuaD4KKyNlbHNlCiAjaW5jbHVkZSA8UXRHdWkvcXdpZGdldC5oPgorI2VuZGlmCiAKIFFUX0JF
R0lOX05BTUVTUEFDRQogY2xhc3MgUU5ldHdvcmtQcm94eTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
cXQvQXBpL3F3ZWJzZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvQXBp
L3F3ZWJzZXR0aW5ncy5oCShyZXZpc2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJLaXQvcXQvQXBp
L3F3ZWJzZXR0aW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCwxMSBAQAogCiAjaW5j
bHVkZSA8UXRDb3JlL3FzdHJpbmcuaD4KICNpbmNsdWRlIDxRdEd1aS9xcGl4bWFwLmg+CisjaWYg
UVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCisjaW5jbHVkZSA8UXRXaWRn
ZXRzL3FpY29uLmg+CisjZWxzZQogI2luY2x1ZGUgPFF0R3VpL3FpY29uLmg+CisjZW5kaWYKICNp
bmNsdWRlIDxRdENvcmUvcXNoYXJlZGRhdGEuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRl
eDogU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2Vidmlldy5oCShyZXZpc2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJ2aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDggKzIzLDEzIEBACiAK
ICNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCiAjaW5jbHVkZSAicXdlYnBhZ2UuaCIKKyNpZiBR
VF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwgMCkKKyNpbmNsdWRlIDxRdFdpZGdl
dHMvcXdpZGdldC5oPgorI2luY2x1ZGUgPFF0V2lkZ2V0cy9xaWNvbi5oPgorI2Vsc2UKICNpbmNs
dWRlIDxRdEd1aS9xd2lkZ2V0Lmg+CiAjaW5jbHVkZSA8UXRHdWkvcWljb24uaD4KKyNlbmRpZgog
I2luY2x1ZGUgPFF0R3VpL3FwYWludGVyLmg+CiAjaW5jbHVkZSA8UXRDb3JlL3F1cmwuaD4KICNp
bmNsdWRlIDxRdE5ldHdvcmsvcW5ldHdvcmthY2Nlc3NtYW5hZ2VyLmg+CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmgJKHJldmlzaW9uIDk2
MTUyKQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50UXQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzEsMTMgKzMxLDEzIEBACiAjaW5jbHVkZSAicXdlYmZyYW1lX3Au
aCIKICNpbmNsdWRlICJxd2VicGFnZS5oIgogI2luY2x1ZGUgInF3ZWJwYWdlX3AuaCIKKyNpbmNs
dWRlIDxxZ3JhcGhpY3NzY2VuZS5oPgorI2luY2x1ZGUgPHFncmFwaGljc3ZpZXcuaD4KKyNpbmNs
dWRlIDxxZ3JhcGhpY3N3aWRnZXQuaD4KKyNpbmNsdWRlIDxxc2Nyb2xsYmFyLmg+CisjaW5jbHVk
ZSA8cXN0eWxlb3B0aW9uLmg+CisjaW5jbHVkZSA8cXdpZGdldC5oPgogI2luY2x1ZGUgPFF0Q29y
ZS9xbWV0YW9iamVjdC5oPgotI2luY2x1ZGUgPFF0R3VpL3FncmFwaGljc3NjZW5lLmg+Ci0jaW5j
bHVkZSA8UXRHdWkvcWdyYXBoaWNzdmlldy5oPgotI2luY2x1ZGUgPFF0R3VpL3FncmFwaGljc3dp
ZGdldC5oPgotI2luY2x1ZGUgPFF0R3VpL3FzY3JvbGxiYXIuaD4KLSNpbmNsdWRlIDxRdEd1aS9x
c3R5bGVvcHRpb24uaD4KLSNpbmNsdWRlIDxRdEd1aS9xd2lkZ2V0Lmg+CiAKICNpbmNsdWRlIDxT
ZXR0aW5ncy5oPgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0V2Vi
Q29tYm9Cb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvUXRXZWJDb21ib0JveC5jcHAJKHJldmlzaW9uIDk2MTUyKQorKysgU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9RdFdlYkNvbWJvQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQs
OCArMjQsOCBAQAogCiAjaWZuZGVmIFFUX05PX0NPTUJPQk9YCiAKLSNpbmNsdWRlIDxRdEd1aS9R
QWJzdHJhY3RJdGVtVmlldz4KLSNpbmNsdWRlIDxRdEd1aS9RQXBwbGljYXRpb24+CisjaW5jbHVk
ZSA8UUFic3RyYWN0SXRlbVZpZXc+CisjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgogI2luY2x1ZGUg
PFF0R3VpL1FNb3VzZUV2ZW50PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0V2ViQ29tYm9Cb3guaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0V2ViQ29tYm9Cb3guaAkocmV2aXNpb24g
OTYxNTIpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0V2ViQ29tYm9Cb3gu
aAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm0u
aCIKIAotI2luY2x1ZGUgPFF0R3VpL1FDb21ib0JveD4KKyNpbmNsdWRlIDxRQ29tYm9Cb3g+CiAK
ICNpZm5kZWYgUVRfTk9fQ09NQk9CT1gKIApJbmRleDogU291cmNlL1dlYktpdC9xdC9kZWNsYXJh
dGl2ZS9kZWNsYXJhdGl2ZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9kZWNs
YXJhdGl2ZS9kZWNsYXJhdGl2ZS5wcm8JKHJldmlzaW9uIDk2MTUyKQorKysgU291cmNlL1dlYktp
dC9xdC9kZWNsYXJhdGl2ZS9kZWNsYXJhdGl2ZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTQwLDYg
KzQwLDcgQEAgc3ltYmlhbjogewogaW5jbHVkZSguLi8uLi8uLi9XZWJLaXQucHJpKQogCiBRVCAr
PSBkZWNsYXJhdGl2ZQorZ3JlYXRlclRoYW4oUVRfTUFKT1JfVkVSU0lPTiwgNCk6IFFUICs9IHdp
ZGdldHMKIAogY29udGFpbnMoUVRfQ09ORklHLCBxdHF1aWNrMSk6IHsKICAgICBRVCArPSBxdHF1
aWNrMQpJbmRleDogU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2
aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNs
YXJhdGl2ZXdlYnZpZXcuY3BwCShyZXZpc2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJLaXQvcXQv
ZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIw
LDE0ICsyMCwxNCBAQAogCiAjaW5jbHVkZSAicWRlY2xhcmF0aXZld2Vidmlld19wLmgiCiAKKyNp
bmNsdWRlIDxRdFdpZGdldHMvUUFwcGxpY2F0aW9uPgorI2luY2x1ZGUgPFF0V2lkZ2V0cy9RR3Jh
cGhpY3NTY2VuZU1vdXNlRXZlbnQ+CiAjaW5jbHVkZSA8UXRDb3JlL1FEZWJ1Zz4KICNpbmNsdWRl
IDxRdENvcmUvUUV2ZW50PgogI2luY2x1ZGUgPFF0Q29yZS9RRmlsZT4KICNpbmNsdWRlIDxRdERl
Y2xhcmF0aXZlL1FEZWNsYXJhdGl2ZUNvbnRleHQ+CiAjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9R
RGVjbGFyYXRpdmVFbmdpbmU+CiAjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmUu
aD4KLSNpbmNsdWRlIDxRdEd1aS9RQXBwbGljYXRpb24+Ci0jaW5jbHVkZSA8UXRHdWkvUUdyYXBo
aWNzU2NlbmVNb3VzZUV2ZW50PgogI2luY2x1ZGUgPFF0R3VpL1FLZXlFdmVudD4KICNpbmNsdWRl
IDxRdEd1aS9RTW91c2VFdmVudD4KICNpbmNsdWRlIDxRdEd1aS9RUGVuPgpJbmRleDogU291cmNl
L1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3X3AuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5o
CShyZXZpc2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRpdmUvcWRlY2xh
cmF0aXZld2Vidmlld19wLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDExICsyNiwxMiBAQAogCiAj
aWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCiAjaW5jbHVkZSA8UXRR
dWljazEvUURlY2xhcmF0aXZlSXRlbT4KKyNpbmNsdWRlIDxRdFdpZGdldHMvUUFjdGlvbj4KICNl
bHNlCiAjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9RRGVjbGFyYXRpdmVJdGVtPgorI2luY2x1ZGUg
PFF0R3VpL1FBY3Rpb24+CiAjZW5kaWYKIAotI2luY2x1ZGUgPFF0R3VpL1FBY3Rpb24+CiAjaW5j
bHVkZSA8UXROZXR3b3JrL1FOZXR3b3JrQWNjZXNzTWFuYWdlcj4KICNpbmNsdWRlICJxZ3JhcGhp
Y3N3ZWJ2aWV3LmgiCiAjaW5jbHVkZSAicXdlYnBhZ2UuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
cXQvZG9jcy93ZWJraXRzbmlwcGV0cy93ZWJwYWdlL21haW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvcXQvZG9jcy93ZWJraXRzbmlwcGV0cy93ZWJwYWdlL21haW4uY3BwCShyZXZp
c2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJLaXQvcXQvZG9jcy93ZWJraXRzbmlwcGV0cy93ZWJw
YWdlL21haW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNyw5ICsxNywxMCBAQAogICAgIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgogKi8KIAotI2luY2x1ZGUgPFF0R3VpPgotI2luY2x1ZGUg
PFFXZWJQYWdlPgorI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRUGFpbnRlcj4K
ICNpbmNsdWRlIDxRV2ViRnJhbWU+CisjaW5jbHVkZSA8UVdlYlBhZ2U+CiAKIC8vISBbMF0KIGNs
YXNzIFRodW1ibmFpbGVyIDogcHVibGljIFFPYmplY3QKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQv
ZXhhbXBsZXMvcGxhdGZvcm1wbHVnaW4vV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9leGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9XZWJOb3Rp
ZmljYXRpb25QcmVzZW50ZXIuaAkocmV2aXNpb24gOTYxNTIpCisrKyBTb3VyY2UvV2ViS2l0L3F0
L2V4YW1wbGVzL3BsYXRmb3JtcGx1Z2luL1dlYk5vdGlmaWNhdGlvblByZXNlbnRlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMiw3ICsyMiwxMyBAQAogI2RlZmluZSBXZWJOb3RpZmljYXRpb25QcmVz
ZW50ZXJfaAogCiAjaW5jbHVkZSAicXdlYmtpdHBsYXRmb3JtcGx1Z2luLmgiCi0jaW5jbHVkZSA8
UXRHdWk+CisKKyNpbmNsdWRlIDxRQml0bWFwPgorI2luY2x1ZGUgPFFFdmVudD4KKyNpbmNsdWRl
IDxRR3JpZExheW91dD4KKyNpbmNsdWRlIDxRTGFiZWw+CisjaW5jbHVkZSA8UVBhaW50ZXI+Cisj
aW5jbHVkZSA8UVdpZGdldD4KIAogY2xhc3MgV2ViTm90aWZpY2F0aW9uV2lkZ2V0IDogcHVibGlj
IFFXaWRnZXQKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdGVzdHMucHJpCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdGVzdHMucHJpCShyZXZpc2lvbiA5NjE1
MikKKysrIFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvdGVzdHMucHJpCSh3b3JraW5nIGNvcHkpCkBA
IC0yMSw2ICsyMSw3IEBAIElOQ0xVREVQQVRIICs9IFwKIAogaW5jbHVkZSguLi8uLi8uLi9XZWJL
aXQucHJpKQogUVQgKz0gdGVzdGxpYiBuZXR3b3JrCitncmVhdGVyVGhhbihRVF9NQUpPUl9WRVJT
SU9OLCA0KTogUVQgKz0gd2lkZ2V0cwogCiBsZXNzVGhhbihRVF9NQUpPUl9WRVJTSU9OLCA1KSB7
CiAgICAgY29udGFpbnMoUVRfQ09ORklHLCBkZWNsYXJhdGl2ZSk6IFFUICs9IGRlY2xhcmF0aXZl
CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA5NjE1MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDU4IEBACisyMDExLTA5LTI3ICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVu
Ym9zc2Eub3JnPgorCisgICAgICAgIFtRdF0gRml4IGJ1aWxkIGFnYWluc3QgUXQ1IGFmdGVyIHJl
ZmFjdG9yIG9mIFFXaWRnZXQgaW50byBpdHMgb3duIGxpYnJhcnkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4Njg3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUVdpZGdldCBhbmQgZnJpZW5kcyBub3cgbGl2
ZSBpbiB0aGUgUXRXaWRnZXRzIGxpYnJhcnkuIFdlIHVwZGF0ZQorICAgICAgICBpbmNsdWRlcyBp
biBpbXBsZW1lbnRhdGlvbiBmaWxlcyBhbmQgcHJpdmF0ZSBoZWFkZXJzIHRvIHVzIHRoZQorICAg
ICAgICBub24tbW9kdWxlLXByZWZpeGVkIHBhdGgsIGFuZCBsZWF2ZSB0aGUgbG9va3VwIGZvciB0
aGUgaW5jbHVkZQorICAgICAgICBwYXRoLiBGb3IgcHVibGljIGhlYWRlcnMgd2UgaGF2ZSB0byBp
ZmRlZiB0aGUgaW5jbHVkZXMgYXMgdGhlCisgICAgICAgIHVzZXIgbWlnaHQgbm93IGhhdmUgdGhl
IG1vZHVsZXMgd2UgbmVlZCBpbiBoaXMgUVQgY29uZmlnLgorCisgICAgICAgIEZpbmFsbHksIFFT
R0NhbnZhcyBpcyBubyBsb25nZXIgYSBRV2lkZ2V0IGJ1dCBhIFFXaW5kb3csIHNvIHdlCisgICAg
ICAgIGhhdmUgdG8gdXBkYXRlIG91ciBjb2RlIGFuZCB1c2Ugd2luZG93SGFuZGxlKCkgZm9yIHNl
dHRpbmcgdGhlCisgICAgICAgIHBhcmVudCByZWxhdGlvbnNoaXBzLgorCisgICAgICAgIFBhdGNo
IGJ5IFRvciBBcm5lIFZlc3Riw7ggPHZlc3Rib0B3ZWJraXQub3JnPi4KKworICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLnBybzoKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9xdC9JbWFnZURpZmYucHJvOgorICAgICAgICAqIE1pbmlCcm93c2VyL3F0L0Jyb3dzZXJW
aWV3LmNwcDoKKyAgICAgICAgKEJyb3dzZXJWaWV3OjpCcm93c2VyVmlldyk6CisgICAgICAgICog
TWluaUJyb3dzZXIvcXQvQnJvd3NlclZpZXcuaDoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9C
cm93c2VyV2luZG93LmNwcDoKKyAgICAgICAgKFdpbmRvd1dyYXBwZXI6OldpbmRvd1dyYXBwZXIp
OgorICAgICAgICAoV2luZG93V3JhcHBlcjo6c2hvd0V2ZW50KToKKyAgICAgICAgKFdpbmRvd1dy
YXBwZXI6OnJlc2l6ZUV2ZW50KToKKyAgICAgICAgKFdpbmRvd1dyYXBwZXI6OmRvUmVzaXplKToK
KyAgICAgICAgKEJyb3dzZXJXaW5kb3c6OkJyb3dzZXJXaW5kb3cpOgorICAgICAgICAoQnJvd3Nl
cldpbmRvdzo6dXJsQ2hhbmdlZCk6CisgICAgICAgIChCcm93c2VyV2luZG93Ojp+QnJvd3Nlcldp
bmRvdyk6CisgICAgICAgICogTWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5oOgorICAgICAg
ICAqIE1pbmlCcm93c2VyL3F0L01pbmlCcm93c2VyLnBybzoKKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9xdC9NaW5pQnJvd3NlckFwcGxpY2F0aW9uLmg6CisgICAgICAgICogTWluaUJyb3dzZXIvcXQv
bWFpbi5jcHA6CisgICAgICAgICogUXRUZXN0QnJvd3Nlci9RdFRlc3RCcm93c2VyLnBybzoKKyAg
ICAgICAgKiBRdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNwcDoKKyAgICAgICAgKiBRdFRl
c3RCcm93c2VyL2xhdW5jaGVyd2luZG93Lmg6CisgICAgICAgICogUXRUZXN0QnJvd3Nlci9sb2Nh
dGlvbmVkaXQuaDoKKyAgICAgICAgKiBRdFRlc3RCcm93c2VyL21haW4uY3BwOgorICAgICAgICAq
IFF0VGVzdEJyb3dzZXIvbWFpbndpbmRvdy5jcHA6CisgICAgICAgICogUXRUZXN0QnJvd3Nlci9t
YWlud2luZG93Lmg6CisgICAgICAgICogUXRUZXN0QnJvd3Nlci93ZWJpbnNwZWN0b3IuaDoKKyAg
ICAgICAgKiBRdFRlc3RCcm93c2VyL3dlYnBhZ2UuY3BwOgorICAgICAgICAqIFF0VGVzdEJyb3dz
ZXIvd2Vidmlldy5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9xdC9JbmplY3RlZEJ1bmRsZS5wcm86CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0
Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3F0L0V2ZW50U2VuZGVy
UHJveHlRdC5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZp
ZXdRdC5jcHA6CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3
KToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpzZW5kRXZlbnQpOgorICAgICAgICAo
V1RSOjpQbGF0Zm9ybVdlYlZpZXc6OnBvc3RFdmVudCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9xdC9XZWJLaXRUZXN0UnVubmVyLnBybzoKKwogMjAxMS0wOS0yNyAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgS2F1c3R1YmggQXRyYXdhbGthciB0
byB0aGUgbGlzdCBvZiBjb250cmlidXRvcnMuCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9x
dC9EdW1wUmVuZGVyVHJlZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvRHVtcFJlbmRlclRyZWUucHJvCShyZXZpc2lvbiA5NjE1MikKKysrIFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDEz
IEBACiBUQVJHRVQgPSBEdW1wUmVuZGVyVHJlZQogQ09ORklHICAtPSBhcHBfYnVuZGxlCi0haXNF
cXVhbChRVF9BUkNILHNoNCk6IENPTkZJRyArPSB1aXRvb2xzCishaXNFcXVhbChRVF9BUkNILHNo
NCkgeworICAgIGdyZWF0ZXJUaGFuKFFUX01BSk9SX1ZFUlNJT04sIDQpOmlzRW1wdHkoUVQudWl0
b29scy5uYW1lKSB7CisgICAgICAgIG1lc3NhZ2UoIlF0VWlUb29scyBsaWJyYXJ5IG5vdCBmb3Vu
ZC4gUVdpZGdldCBwbHVnaW4gbG9hZGluZyB3aWxsIGJlIGRpc2FibGVkIikKKyAgICAgICAgREVG
SU5FUyArPSBRVF9OT19VSVRPT0xTCisgICAgfSBlbHNlIHsKKyAgICAgICAgQ09ORklHICs9IHVp
dG9vbHMKKyAgICB9Cit9CiAKIEJBU0VESVIgPSAkJFBXRC8uLi8KIGlzRW1wdHkoT1VUUFVUX0RJ
Uik6IE9VVFBVVF9ESVIgPSAuLi8uLi8uLgpAQCAtMjAsNiArMjcsNyBAQCB1bml4OiFtYWM6IXN5
bWJpYW46IWVtYmVkZGVkIHsKIAogUVQgPSBjb3JlIGd1aSBuZXR3b3JrIHRlc3RsaWIKIG1hY3g6
IFFUICs9IHhtbAorZ3JlYXRlclRoYW4oUVRfTUFKT1JfVkVSU0lPTiwgNCk6IFFUICs9IHdpZGdl
dHMgcHJpbnRzdXBwb3J0CiAKIEhFQURFUlMgPSAkJEJBU0VESVIvV29ya1F1ZXVlLmggXAogICAg
IER1bXBSZW5kZXJUcmVlUXQuaCBcCkBAIC01NCw0ICs2Miw0IEBAIHdpbmNlKjogewogREVGSU5F
UyArPSBVU0VfU1lTVEVNX01BTExPQz0xCiBERUZJTkVTIC09IFFUX0FTQ0lJX0NBU1RfV0FSTklO
R1MKIAotUkVTT1VSQ0VTID0gRHVtcFJlbmRlclRyZWUucXJjClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQorUkVTT1VSQ0VTID0gRHVtcFJlbmRlclRyZWUucXJjCkluZGV4OiBUb29scy9EdW1w
UmVuZGVyVHJlZS9xdC9JbWFnZURpZmYucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0ltYWdlRGlmZi5wcm8JKHJldmlzaW9uIDk2MTUyKQorKysgVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvSW1hZ2VEaWZmLnBybwkod29ya2luZyBjb3B5KQpAQCAtNyw2ICs3LDcgQEAg
SU5DTFVERVBBVEggKz0gLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcAogREVTVERJUiA9ICQkT1VU
UFVUX0RJUi9iaW4KIAogUVQgPSBjb3JlIGd1aQorZ3JlYXRlclRoYW4oUVRfTUFKT1JfVkVSU0lP
TiwgNCk6IFFUICs9IHdpZGdldHMKIAogU09VUkNFUyA9IEltYWdlRGlmZi5jcHAKIApJbmRleDog
VG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlclZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L01pbmlCcm93c2VyL3F0L0Jyb3dzZXJWaWV3LmNwcAkocmV2aXNpb24gOTYxNTIpCisrKyBUb29s
cy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcg
KzM2LDcgQEAKICNpbmNsdWRlIDxxdG91Y2h3ZWJwYWdlLmg+CiAjaW5jbHVkZSA8cXdlYm5hdmln
YXRpb25jb250cm9sbGVyLmg+CiAKLUJyb3dzZXJWaWV3OjpCcm93c2VyVmlldyhib29sIHVzZVRv
dWNoV2ViVmlldywgUVdpZGdldCogcGFyZW50KQorQnJvd3NlclZpZXc6OkJyb3dzZXJWaWV3KGJv
b2wgdXNlVG91Y2hXZWJWaWV3LCBRV2luZG93KiBwYXJlbnQpCiAgICAgOiBRU0dDYW52YXMocGFy
ZW50KQogICAgICwgbV9pdGVtKDApCiB7CkluZGV4OiBUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93
c2VyVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJWaWV3
LmgJKHJldmlzaW9uIDk2MTUyKQorKysgVG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlclZpZXcu
aAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2lmbmRlZiBCcm93c2VyVmlld19o
CiAjZGVmaW5lIEJyb3dzZXJWaWV3X2gKIAorI2luY2x1ZGUgPFFBY3Rpb24+CiAjaW5jbHVkZSA8
UXREZWNsYXJhdGl2ZS9xc2djYW52YXMuaD4KICNpbmNsdWRlIDxxd2Via2l0dHlwZXMuaD4KIApA
QCAtNDAsNyArNDEsNyBAQCBjbGFzcyBCcm93c2VyVmlldyA6IHB1YmxpYyBRU0dDYW52YXMgewog
ICAgIFFfT0JKRUNUCiAKIHB1YmxpYzoKLSAgICBCcm93c2VyVmlldyhib29sIHVzZVRvdWNoV2Vi
VmlldywgUVdpZGdldCogcGFyZW50ID0gMCk7CisgICAgQnJvd3NlclZpZXcoYm9vbCB1c2VUb3Vj
aFdlYlZpZXcsIFFXaW5kb3cqIHBhcmVudCA9IDApOwogICAgIHZpcnR1YWwgfkJyb3dzZXJWaWV3
KCk7CiAKICAgICB2b2lkIGxvYWQoY29uc3QgUVN0cmluZyYpOwpJbmRleDogVG9vbHMvTWluaUJy
b3dzZXIvcXQvQnJvd3NlcldpbmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvTWluaUJyb3dz
ZXIvcXQvQnJvd3NlcldpbmRvdy5jcHAJKHJldmlzaW9uIDk2MTUyKQorKysgVG9vbHMvTWluaUJy
b3dzZXIvcXQvQnJvd3NlcldpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDM2
IEBAIHN0YXRpYyBRV0tQYWdlKiBuZXdQYWdlRnVuY3Rpb24oUVdLUGFnZSoKIH0KICNlbmRpZgog
CitXaW5kb3dXcmFwcGVyOjpXaW5kb3dXcmFwcGVyKFFXaW5kb3cqIHdpbmRvdywgUVdpZGdldCog
d2lkZ2V0KQorICAgIDogUVdpZGdldCh3aWRnZXQpCisgICAgLCBtX3dpbmRvdyh3aW5kb3cpCit7
CisgICAgLy8gVGhyb3R0bGUgcmVzaXplIGV2ZW50cyBhIGJpdAorICAgIG1fcmVzaXplVGltZXIu
c2V0SW50ZXJ2YWwoMTYpOworICAgIG1fcmVzaXplVGltZXIuc2V0U2luZ2xlU2hvdCh0cnVlKTsK
KyAgICBjb25uZWN0KCZtX3Jlc2l6ZVRpbWVyLCBTSUdOQUwodGltZW91dCgpKSwgdGhpcywgU0xP
VChkb1Jlc2l6ZSgpKSk7CisgICAgbV93aW5kb3ctPnNldFdpbmRvd0ZsYWdzKFF0OjpGcmFtZWxl
c3NXaW5kb3dIaW50KTsKK30KKwordm9pZCBXaW5kb3dXcmFwcGVyOjpzaG93RXZlbnQoUVNob3dF
dmVudCogZXZlbnQpCit7CisgICAgUVdpZGdldDo6c2hvd0V2ZW50KGV2ZW50KTsKKyAgICBtX3dp
bmRvdy0+c2V0UGFyZW50KHdpbmRvdygpLT53aW5kb3dIYW5kbGUoKSk7CisgICAgbV93aW5kb3ct
PnNob3coKTsKK30KKwordm9pZCBXaW5kb3dXcmFwcGVyOjpyZXNpemVFdmVudChRUmVzaXplRXZl
bnQqIGV2ZW50KQoreworICAgIFFXaWRnZXQ6OnJlc2l6ZUV2ZW50KGV2ZW50KTsKKyAgICBpZiAo
IW1fcmVzaXplVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9yZXNpemVUaW1lci5zdGFydCgp
OworfQorCit2b2lkIFdpbmRvd1dyYXBwZXI6OmRvUmVzaXplKCkKK3sKKyAgICBtX3dpbmRvdy0+
c2V0R2VvbWV0cnkoUVJlY3QobWFwVG8od2luZG93KCksIFFQb2ludCgwLCAwKSksIHNpemUoKSkp
OworfQorCiBCcm93c2VyV2luZG93OjpCcm93c2VyV2luZG93KFdpbmRvd09wdGlvbnMqIG9wdGlv
bnMpCiAgICAgOiBtX3VybExvYWRlcigwKQogICAgICwgbV9icm93c2VyKDApCkBAIC02OSw4ICs5
OSw4IEBAIEJyb3dzZXJXaW5kb3c6OkJyb3dzZXJXaW5kb3coV2luZG93T3B0aW8KICAgICAgICAg
Y29ubmVjdChkZXNrdG9wV2ViVmlldywgU0lHTkFMKGxpbmtIb3ZlcmVkKFFVcmwsIFFTdHJpbmcp
KSwgdGhpcywgU0xPVChvbkxpbmtIb3ZlcmVkKFFVcmwsIFFTdHJpbmcpKSk7CiAgICAgfQogCi0g
ICAgdGhpcy0+c2V0Q2VudHJhbFdpZGdldChtX2Jyb3dzZXIpOwotICAgIG1fYnJvd3Nlci0+c2V0
Rm9jdXMoUXQ6Ok90aGVyRm9jdXNSZWFzb24pOworICAgIHNldENlbnRyYWxXaWRnZXQobmV3IFdp
bmRvd1dyYXBwZXIobV9icm93c2VyLCB0aGlzKSk7CisgICAgY2VudHJhbFdpZGdldCgpLT5zZXRG
b2N1cyhRdDo6T3RoZXJGb2N1c1JlYXNvbik7CiAKICAgICBRTWVudSogZmlsZU1lbnUgPSBtZW51
QmFyKCktPmFkZE1lbnUoIiZGaWxlIik7CiAgICAgZmlsZU1lbnUtPmFkZEFjdGlvbigiTmV3IFdp
bmRvdyIsIHRoaXMsIFNMT1QobmV3V2luZG93KCkpLCBRS2V5U2VxdWVuY2U6Ok5ldyk7CkBAIC0x
ODcsNyArMjE3LDcgQEAgdm9pZCBCcm93c2VyV2luZG93OjpvbkxvYWRQcm9ncmVzc0NoYW5nZQog
dm9pZCBCcm93c2VyV2luZG93Ojp1cmxDaGFuZ2VkKGNvbnN0IFFVcmwmIHVybCkKIHsKICAgICBt
X2FkZHJlc3NCYXItPnNldFRleHQodXJsLnRvU3RyaW5nKCkpOwotICAgIG1fYnJvd3Nlci0+c2V0
Rm9jdXMoKTsKKyAgICBtX2Jyb3dzZXItPnJlcXVlc3RBY3RpdmF0ZVdpbmRvdygpOwogICAgIG1f
YnJvd3Nlci0+dmlldygpLT5zZXRGb2N1cyh0cnVlKTsKIH0KIApAQCAtMzIwLDUgKzM1MCw0IEBA
IEJyb3dzZXJXaW5kb3c6On5Ccm93c2VyV2luZG93KCkKIHsKICAgICBkZWxldGUgbV91cmxMb2Fk
ZXI7CiAgICAgZGVsZXRlIG1fYWRkcmVzc0JhcjsKLSAgICBkZWxldGUgbV9icm93c2VyOwogfQpJ
bmRleDogVG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaAkocmV2aXNpb24gOTYxNTIpCisr
KyBUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDEwICszMywyOSBAQAogCiAjaW5jbHVkZSAiTWluaUJyb3dzZXJBcHBsaWNhdGlvbi5oIgog
I2luY2x1ZGUgPFFTdHJpbmdMaXN0PgotI2luY2x1ZGUgPFF0R3VpPgorI2luY2x1ZGUgPFFUaW1l
cj4KIAogY2xhc3MgVXJsTG9hZGVyOwogCitjbGFzcyBXaW5kb3dXcmFwcGVyIDogcHVibGljIFFX
aWRnZXQKK3sKKyAgICBRX09CSkVDVAorCitwdWJsaWM6CisgICAgV2luZG93V3JhcHBlcihRV2lu
ZG93KiB3aW5kb3csIFFXaWRnZXQqIHdpZGdldCA9IDApOworCitwcm90ZWN0ZWQ6CisgICAgdm9p
ZCBzaG93RXZlbnQoUVNob3dFdmVudCogZXZlbnQpOworICAgIHZvaWQgcmVzaXplRXZlbnQoUVJl
c2l6ZUV2ZW50KiBldmVudCk7CisKK3ByaXZhdGUgc2xvdHM6CisgICAgdm9pZCBkb1Jlc2l6ZSgp
OworCitwcml2YXRlOgorICAgIFFXaW5kb3cqIG1fd2luZG93OworICAgIFFUaW1lciBtX3Jlc2l6
ZVRpbWVyOworfTsKKwogY2xhc3MgQnJvd3NlcldpbmRvdyA6IHB1YmxpYyBRTWFpbldpbmRvdyB7
CiAgICAgUV9PQkpFQ1QKIApJbmRleDogVG9vbHMvTWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIu
cHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL01pbmlCcm93c2VyL3F0L01pbmlCcm93c2VyLnBybwko
cmV2aXNpb24gOTYxNTIpCisrKyBUb29scy9NaW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nlci5wcm8J
KHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAgREVTVERJUiA9ICQkT1VUUFVUX0RJUi9i
aW4KIAogUVQgKz0gbmV0d29yayBkZWNsYXJhdGl2ZQogbWFjeDpRVCs9eG1sCitncmVhdGVyVGhh
bihRVF9NQUpPUl9WRVJTSU9OLCA0KTogUVQgKz0gd2lkZ2V0cwogCiBsaW51eC0qIHsKICAgICAj
IEZyb20gQ3JlYXRvcidzIHNyYy9ycGF0aC5wcmk6CkluZGV4OiBUb29scy9NaW5pQnJvd3Nlci9x
dC9NaW5pQnJvd3NlckFwcGxpY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvTWluaUJyb3dz
ZXIvcXQvTWluaUJyb3dzZXJBcHBsaWNhdGlvbi5oCShyZXZpc2lvbiA5NjE1MikKKysrIFRvb2xz
L01pbmlCcm93c2VyL3F0L01pbmlCcm93c2VyQXBwbGljYXRpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMjksMTAgKzI5LDIwIEBACiAjaWZuZGVmIE1pbmlCcm93c2VyQXBwbGljYXRpb25faAogI2Rl
ZmluZSBNaW5pQnJvd3NlckFwcGxpY2F0aW9uX2gKIAorI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4K
KyNpbmNsdWRlIDxRRmlsZURpYWxvZz4KICNpbmNsdWRlIDxRSGFzaD4KKyNpbmNsdWRlIDxRTGFi
ZWw+CisjaW5jbHVkZSA8UUxpbmVFZGl0PgorI2luY2x1ZGUgPFFNYWluV2luZG93PgorI2luY2x1
ZGUgPFFNZW51PgorI2luY2x1ZGUgPFFNZW51QmFyPgorI2luY2x1ZGUgPFFTaG9ydGN1dD4KKyNp
bmNsdWRlIDxRU3RhdHVzQmFyPgogI2luY2x1ZGUgPFFTdHJpbmdMaXN0PgorI2luY2x1ZGUgPFFU
b29sQmFyPgogI2luY2x1ZGUgPFFUb3VjaEV2ZW50PgotI2luY2x1ZGUgPFF0R3VpPgorI2luY2x1
ZGUgPFFVcmw+CiAKIHN0cnVjdCBXaW5kb3dPcHRpb25zIHsKICAgICBXaW5kb3dPcHRpb25zKCkK
SW5kZXg6IFRvb2xzL01pbmlCcm93c2VyL3F0L21haW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L01pbmlCcm93c2VyL3F0L21haW4uY3BwCShyZXZpc2lvbiA5NjE1MikKKysrIFRvb2xzL01pbmlC
cm93c2VyL3F0L21haW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw2IEBACiAjaW5j
bHVkZSAiVXJsTG9hZGVyLmgiCiAjaW5jbHVkZSA8UUxhdGluMVN0cmluZz4KICNpbmNsdWRlIDxR
UmVnRXhwPgotI2luY2x1ZGUgPFF0R3VpPgogCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFy
Z3YpCiB7CkluZGV4OiBUb29scy9RdFRlc3RCcm93c2VyL1F0VGVzdEJyb3dzZXIucHJvCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1F0VGVzdEJyb3dzZXIvUXRUZXN0QnJvd3Nlci5wcm8JKHJldmlzaW9u
IDk2MTUyKQorKysgVG9vbHMvUXRUZXN0QnJvd3Nlci9RdFRlc3RCcm93c2VyLnBybwkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsNyArMjQsMTQgQEAgSEVBREVSUyArPSBcCiAgICAgZnBzdGltZXIuaCBc
CiAgICAgY29va2llamFyLmgKIAotIWlzRXF1YWwoUVRfQVJDSCxzaDQpOiBDT05GSUcgKz0gdWl0
b29scworIWlzRXF1YWwoUVRfQVJDSCxzaDQpIHsKKyAgICBncmVhdGVyVGhhbihRVF9NQUpPUl9W
RVJTSU9OLCA0KTppc0VtcHR5KFFULnVpdG9vbHMubmFtZSkgeworICAgICAgICBtZXNzYWdlKCJR
dFVpVG9vbHMgbGlicmFyeSBub3QgZm91bmQuIFFXaWRnZXQgcGx1Z2luIGxvYWRpbmcgd2lsbCBi
ZSBkaXNhYmxlZCIpCisgICAgICAgIERFRklORVMgKz0gUVRfTk9fVUlUT09MUworICAgIH0gZWxz
ZSB7CisgICAgICAgIENPTkZJRyArPSB1aXRvb2xzCisgICAgfQorfQogCiBpc0VtcHR5KE9VVFBV
VF9ESVIpOiBPVVRQVVRfRElSID0gLi4vLi4KIGluY2x1ZGUoLi4vLi4vU291cmNlL1dlYktpdC5w
cmkpCkBAIC0zNSw2ICs0Miw3IEBAIERFU1RESVIgPSAkJE9VVFBVVF9ESVIvYmluCiAKIFFUICs9
IG5ldHdvcmsKIG1hY3g6UVQrPXhtbAorZ3JlYXRlclRoYW4oUVRfTUFKT1JfVkVSU0lPTiwgNCk6
IFFUICs9IHByaW50c3VwcG9ydAogCiB1bml4OiFtYWM6IXN5bWJpYW46IWVtYmVkZGVkIHsKICAg
ICBDT05GSUcgKz0gbGlua19wa2djb25maWcKSW5kZXg6IFRvb2xzL1F0VGVzdEJyb3dzZXIvbGF1
bmNoZXJ3aW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1F0VGVzdEJyb3dzZXIvbGF1bmNo
ZXJ3aW5kb3cuY3BwCShyZXZpc2lvbiA5NjE1MikKKysrIFRvb2xzL1F0VGVzdEJyb3dzZXIvbGF1
bmNoZXJ3aW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiwyNSBAQAogI2luY2x1
ZGUgImNvb2tpZWphci5oIgogI2luY2x1ZGUgInVybGxvYWRlci5oIgogCisjaW5jbHVkZSA8UUFw
cGxpY2F0aW9uPgorI2luY2x1ZGUgPFFDaGVja0JveD4KKyNpbmNsdWRlIDxRQ29tYm9Cb3g+CiAj
aW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRRGlhbG9nQnV0dG9uQm94Pgor
I2luY2x1ZGUgPFFJbnB1dERpYWxvZz4KKyNpbmNsdWRlIDxRTGFiZWw+CisjaWZuZGVmIFFUX05P
X0xJTkVFRElUCisjaW5jbHVkZSA8UUxpbmVFZGl0PgorI2VuZGlmCisjaWZuZGVmIFFUX05PX1NI
T1JUQ1VUCisjaW5jbHVkZSA8UU1lbnVCYXI+CisjZW5kaWYKKyNpbmNsdWRlIDxRU2xpZGVyPgor
I2luY2x1ZGUgPFFTcGxpdHRlcj4KKyNpbmNsdWRlIDxRU3RhdHVzQmFyPgorI2luY2x1ZGUgPFFU
b29sQnV0dG9uPgorI2luY2x1ZGUgPFFUb29sVGlwPgorI2luY2x1ZGUgPFFWQm94TGF5b3V0Pgog
CiAjaWYgIWRlZmluZWQoUVRfTk9fRklMRURJQUxPRykgJiYgIWRlZmluZWQoUVRfTk9fTUVTU0FH
RUJPWCkKICNpbmNsdWRlIDxRRmlsZURpYWxvZz4KSW5kZXg6IFRvb2xzL1F0VGVzdEJyb3dzZXIv
bGF1bmNoZXJ3aW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9RdFRlc3RCcm93c2VyL2xhdW5j
aGVyd2luZG93LmgJKHJldmlzaW9uIDk2MTUyKQorKysgVG9vbHMvUXRUZXN0QnJvd3Nlci9sYXVu
Y2hlcndpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw2IEBACiAjaWZuZGVmIGxh
dW5jaGVyd2luZG93X2gKICNkZWZpbmUgbGF1bmNoZXJ3aW5kb3dfaAogCi0jaW5jbHVkZSA8UXRH
dWk+CiAjaW5jbHVkZSA8UXROZXR3b3JrL1FOZXR3b3JrUmVxdWVzdD4KIAogI2lmIGRlZmluZWQo
UVRfQ09ORklHVVJFRF9XSVRIX09QRU5HTCkKSW5kZXg6IFRvb2xzL1F0VGVzdEJyb3dzZXIvbG9j
YXRpb25lZGl0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvUXRUZXN0QnJvd3Nlci9sb2NhdGlvbmVk
aXQuaAkocmV2aXNpb24gOTYxNTIpCisrKyBUb29scy9RdFRlc3RCcm93c2VyL2xvY2F0aW9uZWRp
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSwxMiBAQAogI2luY2x1ZGUgPHFjb25maWcu
aD4KIAogI2lmbmRlZiBRVF9OT19JTlBVVERJQUxPRwotI2luY2x1ZGUgPFF0R3VpPgorI2luY2x1
ZGUgPFFBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxRSWNvbj4KKyNpbmNsdWRlIDxRTGFiZWw+Cisj
aW5jbHVkZSA8UUxpbmVFZGl0PgorI2luY2x1ZGUgPFFTdHlsZU9wdGlvbkZyYW1lVjM+CisjaW5j
bHVkZSA8UVRpbWVyPgogCiBjbGFzcyBMb2NhdGlvbkVkaXQgOiBwdWJsaWMgUUxpbmVFZGl0IHsK
ICAgICBRX09CSkVDVApJbmRleDogVG9vbHMvUXRUZXN0QnJvd3Nlci9tYWluLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9RdFRlc3RCcm93c2VyL21haW4uY3BwCShyZXZpc2lvbiA5NjE1MikKKysr
IFRvb2xzL1F0VGVzdEJyb3dzZXIvbWFpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDEzICsz
NSwxMiBAQAogCiBXaW5kb3dPcHRpb25zIHdpbmRvd09wdGlvbnM7CiAKLQorI2luY2x1ZGUgPFFB
cHBsaWNhdGlvbj4KICNpbmNsdWRlIDxRRGlyPgogI2luY2x1ZGUgPFFGaWxlPgogI2luY2x1ZGUg
PFFGaWxlSW5mbz4KICNpbmNsdWRlIDxRRm9udERhdGFiYXNlPgogCi0KICNpZiBkZWZpbmVkKFFf
V1NfWDExKQogI2luY2x1ZGUgPGZvbnRjb25maWcvZm9udGNvbmZpZy5oPgogI2VuZGlmCkluZGV4
OiBUb29scy9RdFRlc3RCcm93c2VyL21haW53aW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1F0VGVzdEJyb3dzZXIvbWFpbndpbmRvdy5jcHAJKHJldmlzaW9uIDk2MTUyKQorKysgVG9vbHMv
UXRUZXN0QnJvd3Nlci9tYWlud2luZG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUs
MTQgQEAKICNpbmNsdWRlICJsb2NhdGlvbmVkaXQuaCIKICNpbmNsdWRlICJ1dGlscy5oIgogCisj
aW5jbHVkZSA8UUFjdGlvbj4KKyNpZm5kZWYgUVRfTk9fSU5QVVRESUFMT0cKKyNpbmNsdWRlIDxR
Q29tcGxldGVyPgorI2VuZGlmCisjaWZuZGVmIFFUX05PX0ZJTEVESUFMT0cKKyNpbmNsdWRlIDxR
RmlsZURpYWxvZz4KKyNlbmRpZgorCiBNYWluV2luZG93OjpNYWluV2luZG93KCkKICAgICA6IG1f
cGFnZShuZXcgV2ViUGFnZSh0aGlzKSkKICAgICAsIG1fdG9vbEJhcigwKQpJbmRleDogVG9vbHMv
UXRUZXN0QnJvd3Nlci9tYWlud2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvUXRUZXN0QnJv
d3Nlci9tYWlud2luZG93LmgJKHJldmlzaW9uIDk2MTUyKQorKysgVG9vbHMvUXRUZXN0QnJvd3Nl
ci9tYWlud2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDkgKzMzLDEyIEBACiAjaWZuZGVm
IG1haW53aW5kb3dfaAogI2RlZmluZSBtYWlud2luZG93X2gKIAotI2luY2x1ZGUgPFF0R3VpPgog
I2luY2x1ZGUgIndlYnBhZ2UuaCIKIAorI2luY2x1ZGUgPFFNYWluV2luZG93PgorI2luY2x1ZGUg
PFFTdHJpbmdMaXN0TW9kZWw+CisjaW5jbHVkZSA8UVRvb2xCYXI+CisKIGNsYXNzIExvY2F0aW9u
RWRpdDsKIAogY2xhc3MgTWFpbldpbmRvdyA6IHB1YmxpYyBRTWFpbldpbmRvdyB7CkluZGV4OiBU
b29scy9RdFRlc3RCcm93c2VyL3dlYmluc3BlY3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1F0
VGVzdEJyb3dzZXIvd2ViaW5zcGVjdG9yLmgJKHJldmlzaW9uIDk2MTUyKQorKysgVG9vbHMvUXRU
ZXN0QnJvd3Nlci93ZWJpbnNwZWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNiBA
QAogI2lmbmRlZiB3ZWJpbnNwZWN0b3JfaAogI2RlZmluZSB3ZWJpbnNwZWN0b3JfaAogCi0jaW5j
bHVkZSA8UXRHdWk+CiAjaW5jbHVkZSAicXdlYmluc3BlY3Rvci5oIgogCiBjbGFzcyBXZWJJbnNw
ZWN0b3IgOiBwdWJsaWMgUVdlYkluc3BlY3RvciB7CkluZGV4OiBUb29scy9RdFRlc3RCcm93c2Vy
L3dlYnBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1F0VGVzdEJyb3dzZXIvd2VicGFnZS5j
cHAJKHJldmlzaW9uIDk2MTUyKQorKysgVG9vbHMvUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzQsOSArMzQsMTggQEAKIAogI2luY2x1ZGUgImxhdW5jaGVyd2lu
ZG93LmgiCiAKKyNpbmNsdWRlIDxRQWN0aW9uPgorI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KICNp
bmNsdWRlIDxRQXV0aGVudGljYXRvcj4KKyNpZm5kZWYgUVRfTk9fREVTS1RPUFNFUlZJQ0VTCiAj
aW5jbHVkZSA8UURlc2t0b3BTZXJ2aWNlcz4KLSNpbmNsdWRlIDxRdEd1aT4KKyNlbmRpZgorI2lu
Y2x1ZGUgPFFEaWFsb2dCdXR0b25Cb3g+CisjaW5jbHVkZSA8UUxhYmVsPgorI2luY2x1ZGUgPFFM
YXlvdXQ+CisjaWZuZGVmIFFUX05PX0xJTkVFRElUCisjaW5jbHVkZSA8UUxpbmVFZGl0PgorI2Vu
ZGlmCiAjaW5jbHVkZSA8UXROZXR3b3JrL1FOZXR3b3JrUmVwbHk+CiAjaW5jbHVkZSA8UXROZXR3
b3JrL1FOZXR3b3JrUmVxdWVzdD4KICNpbmNsdWRlIDxRdE5ldHdvcmsvUU5ldHdvcmtQcm94eT4K
SW5kZXg6IFRvb2xzL1F0VGVzdEJyb3dzZXIvd2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvUXRUZXN0QnJvd3Nlci93ZWJ2aWV3LmNwcAkocmV2aXNpb24gOTYxNTIpCisrKyBUb29scy9R
dFRlc3RCcm93c2VyL3dlYnZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw4ICszMiwyMiBA
QAogCiAjaW5jbHVkZSAid2Vidmlldy5oIgogCi0jaW5jbHVkZSA8UXRHdWk+CisjaW5jbHVkZSA8
UUFjdGlvbj4KICNpbmNsdWRlIDxRR3JhcGhpY3NTY2VuZT4KKyNpbmNsdWRlIDxRR3JhcGhpY3NT
Y2VuZUNvbnRleHRNZW51RXZlbnQ+CisjaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50
PgorI2luY2x1ZGUgPFFNZW51PgorI2luY2x1ZGUgPFFTY3JvbGxCYXI+CisjaW5jbHVkZSA8UVRp
bWVyPgorCisjaWZuZGVmIFFUX05PX0FOSU1BVElPTgorI2luY2x1ZGUgPFFBYnN0cmFjdEFuaW1h
dGlvbj4KKyNpbmNsdWRlIDxRQWJzdHJhY3RUcmFuc2l0aW9uPgorI2luY2x1ZGUgPFFGaW5hbFN0
YXRlPgorI2luY2x1ZGUgPFFQcm9wZXJ0eUFuaW1hdGlvbj4KKyNpbmNsdWRlIDxRU3RhdGU+Cisj
aW5jbHVkZSA8UVN0YXRlTWFjaGluZT4KKyNlbmRpZgogCiBXZWJWaWV3R3JhcGhpY3NCYXNlZDo6
V2ViVmlld0dyYXBoaWNzQmFzZWQoUVdpZGdldCogcGFyZW50KQogICAgIDogUUdyYXBoaWNzVmll
dyhwYXJlbnQpCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgJ
KHJldmlzaW9uIDk2MTUyKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZp
ZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTIgKzI3LDEwIEBACiAjZGVmaW5lIFBsYXRmb3Jt
V2ViVmlld19oCiAKICNpZiBkZWZpbmVkKEJVSUxESU5HX1FUX18pCi1uYW1lc3BhY2UgV1RSIHsK
LWNsYXNzIFdlYlZpZXc7Ci19Ci10eXBlZGVmIFdUUjo6V2ViVmlldyogUGxhdGZvcm1XS1ZpZXc7
Ci1jbGFzcyBRTWFpbldpbmRvdzsKLXR5cGVkZWYgUU1haW5XaW5kb3cqIFBsYXRmb3JtV2luZG93
OworY2xhc3MgUURlc2t0b3BXZWJWaWV3OwordHlwZWRlZiBRRGVza3RvcFdlYlZpZXcqIFBsYXRm
b3JtV0tWaWV3OworY2xhc3MgUVNHQ2FudmFzOwordHlwZWRlZiBRU0dDYW52YXMqIFBsYXRmb3Jt
V2luZG93OwogI2VsaWYgZGVmaW5lZChfX0FQUExFX18pICYmIF9fQVBQTEVfXwogI2lmIF9fT0JK
Q19fCiBAY2xhc3MgV0tWaWV3OwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9xdC9JbmplY3RlZEJ1bmRsZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9xdC9JbmplY3RlZEJ1bmRsZS5wcm8JKHJldmlzaW9u
IDk2MTUyKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9xdC9Jbmpl
Y3RlZEJ1bmRsZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTksNiArOSw3IEBAIENPTkZJRyhzdGFu
ZGFsb25lX3BhY2thZ2UpIHsKIH0KIAogUVQgKz0gZGVjbGFyYXRpdmUKK2dyZWF0ZXJUaGFuKFFU
X01BSk9SX1ZFUlNJT04sIDQpOiBRVCArPSB3aWRnZXRzCiAKIEdFTkVSQVRFRF9TT1VSQ0VTX0RJ
UiA9IC4uLy4uL2dlbmVyYXRlZAogCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3F0L0V2
ZW50U2VuZGVyUHJveHlRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9xdC9FdmVudFNlbmRlclByb3h5UXQuY3BwCShyZXZpc2lvbiA5NjE1MikKKysrIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvcXQvRXZlbnRTZW5kZXJQcm94eVF0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCiAjaW5jbHVk
ZSAiVGVzdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlIDxRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQ+
CiAjaW5jbHVkZSA8UUtleUV2ZW50PgogI2luY2x1ZGUgPFF0VGVzdC9RdFRlc3Q+CiAjaW5jbHVk
ZSA8V2ViS2l0Mi9XS1BhZ2VQcml2YXRlLmg+CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVy
L3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcAkocmV2aXNpb24gOTYxNTIpCisrKyBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNDIgKzI4LDIyIEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNp
bmNsdWRlICJxZGVza3RvcHdlYnZpZXcuaCIKKworI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KICNp
bmNsdWRlIDxRdERlY2xhcmF0aXZlL3FzZ2NhbnZhcy5oPgotI2luY2x1ZGUgPFF0R3VpPgogCiBu
YW1lc3BhY2UgV1RSIHsKIAotY2xhc3MgV2ViVmlldyA6IHB1YmxpYyBRU0dDYW52YXMgewotcHVi
bGljOgotICAgIFdlYlZpZXcoV0tDb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZik7Ci0KLSAgICBR
RGVza3RvcFdlYlZpZXcqIHdrVmlldygpIGNvbnN0IHsgcmV0dXJuIG1faXRlbTsgfQotICAgIFdL
UGFnZVJlZiBwYWdlUmVmKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtLT5wYWdlUmVmKCk7IH0KLQot
ICAgIHZpcnR1YWwgfldlYlZpZXcoKSB7IGRlbGV0ZSBtX2l0ZW07IH0KLQotcHJpdmF0ZToKLSAg
ICBRRGVza3RvcFdlYlZpZXcqIG1faXRlbTsKLX07Ci0KLVdlYlZpZXc6OldlYlZpZXcoV0tDb250
ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKLSAgICA6IG1f
aXRlbShuZXcgUURlc2t0b3BXZWJWaWV3KGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZiwgcm9vdEl0
ZW0oKSkpCi17Ci0gICAgbV9pdGVtLT5zZXRXaWR0aCg4MDApOwotICAgIG1faXRlbS0+c2V0SGVp
Z2h0KDYwMCk7Ci19Ci0KIFBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4
dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCi0gICAgOiBtX3Zp
ZXcobmV3IFdlYlZpZXcoY29udGV4dFJlZiwgcGFnZUdyb3VwUmVmKSkKLSAgICAsIG1fd2luZG93
KG5ldyBRTWFpbldpbmRvdygpKQorICAgIDogbV92aWV3KG5ldyBRRGVza3RvcFdlYlZpZXcoY29u
dGV4dFJlZiwgcGFnZUdyb3VwUmVmKSkKKyAgICAsIG1fd2luZG93KG5ldyBRU0dDYW52YXMpCiB7
Ci0gICAgbV92aWV3LT5zZXRQYXJlbnQobV93aW5kb3cpOwotICAgIG1fd2luZG93LT5zZXRDZW50
cmFsV2lkZ2V0KG1fdmlldyk7CisgICAgbV92aWV3LT5zZXRQYXJlbnQobV93aW5kb3ctPnJvb3RJ
dGVtKCkpOwogICAgIG1fd2luZG93LT5zZXRHZW9tZXRyeSgwLCAwLCA4MDAsIDYwMCk7CiAKICAg
ICBRRm9jdXNFdmVudCBldihRRXZlbnQ6OldpbmRvd0FjdGl2YXRlKTsKICAgICBRQXBwbGljYXRp
b246OnNlbmRFdmVudChtX3ZpZXcsICZldik7Ci0gICAgbV92aWV3LT53a1ZpZXcoKS0+c2V0Rm9j
dXMoUXQ6Ok90aGVyRm9jdXNSZWFzb24pOworICAgIG1fdmlldy0+c2V0Rm9jdXMoUXQ6Ok90aGVy
Rm9jdXNSZWFzb24pOwogfQogCiBQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQpA
QCAtMTA0LDEyICs4NCwxMiBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2V0V2luZG93RnJhbWUo
V0tSCiAKIGJvb2wgUGxhdGZvcm1XZWJWaWV3OjpzZW5kRXZlbnQoUUV2ZW50KiBldmVudCkKIHsK
LSAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fdmlldy0+d2tWaWV3KCks
IGV2ZW50KTsKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fdmlldywg
ZXZlbnQpOwogfQogCiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6cG9zdEV2ZW50KFFFdmVudCogZXZl
bnQpCiB7Ci0gICAgUUNvcmVBcHBsaWNhdGlvbjo6cG9zdEV2ZW50KG1fdmlldy0+d2tWaWV3KCks
IGV2ZW50KTsKKyAgICBRQ29yZUFwcGxpY2F0aW9uOjpwb3N0RXZlbnQobV92aWV3LCBldmVudCk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdUUgpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9x
dC9XZWJLaXRUZXN0UnVubmVyLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL3F0L1dlYktpdFRlc3RSdW5uZXIucHJvCShyZXZpc2lvbiA5NjE1MikKKysrIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvcXQvV2ViS2l0VGVzdFJ1bm5lci5wcm8JKHdvcmtpbmcgY29weSkKQEAg
LTMyLDYgKzMyLDcgQEAgdW5peDohbWFjOiFzeW1iaWFuOiFlbWJlZGRlZCB7CiB9CiAKIFFUID0g
Y29yZSBndWkgbmV0d29yayBkZWNsYXJhdGl2ZSB0ZXN0bGliCitncmVhdGVyVGhhbihRVF9NQUpP
Ul9WRVJTSU9OLCA0KTogUVQgKz0gd2lkZ2V0cwogCiBIRUFERVJTID0gXAogICAgICQkQkFTRURJ
Ui9FdmVudFNlbmRlclByb3h5LmggXApAQCAtNjgsNCArNjksNCBAQCBsaW51eC0qIHsKIGluY2x1
ZGUoLi4vLi4vLi4vU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnByaSkKIHBy
ZXBlbmRKYXZhU2NyaXB0Q29yZUxpYiguLi8uLi9KYXZhU2NyaXB0Q29yZSkKIAotUkVTT1VSQ0VT
ID0gV2ViS2l0VGVzdFJ1bm5lci5xcmMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitSRVNP
VVJDRVMgPSBXZWJLaXRUZXN0UnVubmVyLnFyYwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108900</attachid>
            <date>2011-09-27 14:38:16 -0700</date>
            <delta_ts>2011-09-27 15:12:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68687-20110927183804.patch</filename>
            <type>text/plain</type>
            <size>44925</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk2MTUy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDkt
MjcgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAg
ICAgW1F0XSBGaXggYnVpbGQgYWdhaW5zdCBRdDUgYWZ0ZXIgcmVmYWN0b3Igb2YgUVdpZGdldCBp
bnRvIGl0cyBvd24gbGlicmFyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njg2ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBRV2lkZ2V0IGFuZCBmcmllbmRzIG5vdyBsaXZlIGluIHRoZSBRdFdpZGdldHMg
bGlicmFyeS4gV2UgdXBkYXRlCisgICAgICAgIGluY2x1ZGVzIGluIGltcGxlbWVudGF0aW9uIGZp
bGVzIGFuZCBwcml2YXRlIGhlYWRlcnMgdG8gdXMgdGhlCisgICAgICAgIG5vbi1tb2R1bGUtcHJl
Zml4ZWQgcGF0aCwgYW5kIGxlYXZlIHRoZSBsb29rdXAgZm9yIHRoZSBpbmNsdWRlCisgICAgICAg
IHBhdGguIEZvciBwdWJsaWMgaGVhZGVycyB3ZSBoYXZlIHRvIGlmZGVmIHRoZSBpbmNsdWRlcyBh
cyB0aGUKKyAgICAgICAgdXNlciBtaWdodCBub3cgaGF2ZSB0aGUgbW9kdWxlcyB3ZSBuZWVkIGlu
IGhpcyBRVCBjb25maWcuCisKKyAgICAgICAgRmluYWxseSwgUVNHQ2FudmFzIGlzIG5vIGxvbmdl
ciBhIFFXaWRnZXQgYnV0IGEgUVdpbmRvdywgc28gd2UKKyAgICAgICAgaGF2ZSB0byB1cGRhdGUg
b3VyIGNvZGUgYW5kIHVzZSB3aW5kb3dIYW5kbGUoKSBmb3Igc2V0dGluZyB0aGUKKyAgICAgICAg
cGFyZW50IHJlbGF0aW9uc2hpcHMuCisKKyAgICAgICAgUGF0Y2ggYnkgVG9yIEFybmUgVmVzdGLD
uCA8dmVzdGJvQHdlYmtpdC5vcmc+LgorCisgICAgICAgICogU291cmNlL1dlYktpdC5wcm86CisK
IDIwMTEtMDktMjcgIFVsYW4gRGVnZW5iYWV2ICA8dWxhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW3Y4XSBDb2RlIGNhbGxpbmcgdGhlIHR5cGVkIGFycmF5IG9wdGltaXphdGlvbiBzY3JpcHQg
aXMgZnJhZ2lsZSwgZGVwZW5kcyBvbiB0eXBlZCBhcnJheSBoaWVyYXJjaHkuCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0LnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0LnBybwkocmV2aXNpb24g
OTYxNTIpCisrKyBTb3VyY2UvV2ViS2l0LnBybwkod29ya2luZyBjb3B5KQpAQCAtMTcsNiArMTcs
MTMgQEAgd2Via2l0MiB7CiAgICAgZXhpc3RzKCQkUFdEL1dlYktpdDIvV2ViS2l0Mi5wcm8pOiBT
VUJESVJTICs9IFdlYktpdDIvV2ViS2l0Mi5wcm8KIH0KIAorZ3JlYXRlclRoYW4oUVRfTUFKT1Jf
VkVSU0lPTiwgNCkgeworICAgIGlzRW1wdHkoUVQud2lkZ2V0cy5uYW1lKXxpc0VtcHR5KFFULnBy
aW50c3VwcG9ydC5uYW1lKSB7CisgICAgICAgIG1lc3NhZ2UoIkJ1aWxkaW5nIFdlYktpdCBhZ2Fp
bnN0IFF0IDUuMCByZXF1aXJlcyB0aGUgUXRXaWRnZXRzIGFuZCBRdFByaW50U3VwcG9ydCBtb2R1
bGVzLiIpCisgICAgICAgIGVycm9yKCJBYm9ydGluZyBidWlsZC4iKQorICAgIH0KK30KKwogU1VC
RElSUyArPSBXZWJDb3JlCiBTVUJESVJTICs9IFdlYktpdC9xdC9RdFdlYktpdC5wcm8KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwkocmV2aXNpb24gOTYxNTIpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxMS0wOS0yNyAgQWxleGlzIE1lbmFy
ZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbUXRdIEZpeCBidWls
ZCBhZ2FpbnN0IFF0NSBhZnRlciByZWZhY3RvciBvZiBRV2lkZ2V0IGludG8gaXRzIG93biBsaWJy
YXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODY4
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFFXaWRn
ZXQgYW5kIGZyaWVuZHMgbm93IGxpdmUgaW4gdGhlIFF0V2lkZ2V0cyBsaWJyYXJ5LiBXZSB1cGRh
dGUKKyAgICAgICAgaW5jbHVkZXMgaW4gaW1wbGVtZW50YXRpb24gZmlsZXMgYW5kIHByaXZhdGUg
aGVhZGVycyB0byB1cyB0aGUKKyAgICAgICAgbm9uLW1vZHVsZS1wcmVmaXhlZCBwYXRoLCBhbmQg
bGVhdmUgdGhlIGxvb2t1cCBmb3IgdGhlIGluY2x1ZGUKKyAgICAgICAgcGF0aC4gRm9yIHB1Ymxp
YyBoZWFkZXJzIHdlIGhhdmUgdG8gaWZkZWYgdGhlIGluY2x1ZGVzIGFzIHRoZQorICAgICAgICB1
c2VyIG1pZ2h0IG5vdyBoYXZlIHRoZSBtb2R1bGVzIHdlIG5lZWQgaW4gaGlzIFFUIGNvbmZpZy4K
KworICAgICAgICBGaW5hbGx5LCBRU0dDYW52YXMgaXMgbm8gbG9uZ2VyIGEgUVdpZGdldCBidXQg
YSBRV2luZG93LCBzbyB3ZQorICAgICAgICBoYXZlIHRvIHVwZGF0ZSBvdXIgY29kZSBhbmQgdXNl
IHdpbmRvd0hhbmRsZSgpIGZvciBzZXR0aW5nIHRoZQorICAgICAgICBwYXJlbnQgcmVsYXRpb25z
aGlwcy4KKworICAgICAgICBQYXRjaCBieSBUb3IgQXJuZSBWZXN0YsO4IDx2ZXN0Ym9Ad2Via2l0
Lm9yZz4uCisKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwOgorCiAyMDExLTA5LTI3ICBPamFuIFZhZmFpICA8
b2phbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgb2Zmc2V0VG9wL29mZnNldExlZnQgcmV0dXJu
IHRoZSB3cm9uZyB2YWx1ZXMgZm9yIGhvcml6b250YWwtYnQvdmVydGljYWwtcmwgd3JpdGluZyBt
b2RlcwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDk2MTUyKQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTMzMiw3ICszMzIsMTAgQEAgdW5peDoh
bWFjOiotZysrKjpRTUFLRV9DWFhGTEFHUyArPSAtZmZ1bgogdW5peDohbWFjOiotZysrKjpRTUFL
RV9MRkxBR1MgKz0gLVdsLC0tZ2Mtc2VjdGlvbnMKIGxpbnV4Ki1nKysqOlFNQUtFX0xGTEFHUyAr
PSAkJFFNQUtFX0xGTEFHU19OT1VOREVGCiAKLXVuaXh8d2luMzItZysrKjpRTUFLRV9QS0dDT05G
SUdfUkVRVUlSRVMgPSBRdENvcmUgUXRHdWkgUXROZXR3b3JrCit1bml4fHdpbjMyLWcrKyogewor
ICAgIFFNQUtFX1BLR0NPTkZJR19SRVFVSVJFUyA9IFF0Q29yZSBRdEd1aSBRdE5ldHdvcmsKKyAg
ICBncmVhdGVyVGhhbihRVF9NQUpPUl9WRVJTSU9OLCA0KTogUU1BS0VfUEtHQ09ORklHX1JFUVVJ
UkVTICs9IFF0V2lkZ2V0cworfQogdW5peDohbWFjOiFzeW1iaWFuOkNPTkZJRyArPSBsaW5rX3Br
Z2NvbmZpZwogCiAjIERpc2FibGUgQysrMHggbW9kZSBpbiBXZWJDb3JlIGZvciB0aG9zZSB3aG8g
ZW5hYmxlZCBpdCBpbiB0aGVpciBRdCdzIG1rc3BlYwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCShyZXZp
c2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBo
aWNzTGF5ZXJRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDEyIEBACiAjaW5jbHVk
ZSAiUmVmQ291bnRlZC5oIgogI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5o
IgogI2luY2x1ZGUgIlVuaXRCZXppZXIuaCIKKyNpbmNsdWRlIDxxZ3JhcGhpY3NlZmZlY3QuaD4K
KyNpbmNsdWRlIDxxZ3JhcGhpY3NpdGVtLmg+CisjaW5jbHVkZSA8cWdyYXBoaWNzc2NlbmUuaD4K
KyNpbmNsdWRlIDxxZ3JhcGhpY3N2aWV3Lmg+CisjaW5jbHVkZSA8cWdyYXBoaWNzd2lkZ2V0Lmg+
CisjaW5jbHVkZSA8cXN0eWxlb3B0aW9uLmg+CiAjaW5jbHVkZSA8UXRDb3JlL3FhYnN0cmFjdGFu
aW1hdGlvbi5oPgogI2luY2x1ZGUgPFF0Q29yZS9xZGF0ZXRpbWUuaD4KICNpbmNsdWRlIDxRdENv
cmUvcWRlYnVnLmg+CkBAIC0zNiwxNSArNDIsOSBAQAogI2luY2x1ZGUgPFF0Q29yZS9xc2V0Lmg+
CiAjaW5jbHVkZSA8UXRDb3JlL3F0aW1lci5oPgogI2luY2x1ZGUgPFF0R3VpL3Fjb2xvci5oPgot
I2luY2x1ZGUgPFF0R3VpL3FncmFwaGljc2VmZmVjdC5oPgotI2luY2x1ZGUgPFF0R3VpL3FncmFw
aGljc2l0ZW0uaD4KLSNpbmNsdWRlIDxRdEd1aS9xZ3JhcGhpY3NzY2VuZS5oPgotI2luY2x1ZGUg
PFF0R3VpL3FncmFwaGljc3ZpZXcuaD4KLSNpbmNsdWRlIDxRdEd1aS9xZ3JhcGhpY3N3aWRnZXQu
aD4KICNpbmNsdWRlIDxRdEd1aS9xcGFpbnRlci5oPgogI2luY2x1ZGUgPFF0R3VpL3FwaXhtYXAu
aD4KICNpbmNsdWRlIDxRdEd1aS9xcGl4bWFwY2FjaGUuaD4KLSNpbmNsdWRlIDxRdEd1aS9xc3R5
bGVvcHRpb24uaD4KIAogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogI2luY2x1ZGUg
IlRpbGVkQmFja2luZ1N0b3JlLmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjE1NykKKysr
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDExLTA5LTI3ICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3Jn
PgorCisgICAgICAgIFtRdF0gRml4IGJ1aWxkIGFnYWluc3QgUXQ1IGFmdGVyIHJlZmFjdG9yIG9m
IFFXaWRnZXQgaW50byBpdHMgb3duIGxpYnJhcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY4Njg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUVdpZGdldCBhbmQgZnJpZW5kcyBub3cgbGl2ZSBpbiB0aGUg
UXRXaWRnZXRzIGxpYnJhcnkuIFdlIHVwZGF0ZQorICAgICAgICBpbmNsdWRlcyBpbiBpbXBsZW1l
bnRhdGlvbiBmaWxlcyBhbmQgcHJpdmF0ZSBoZWFkZXJzIHRvIHVzIHRoZQorICAgICAgICBub24t
bW9kdWxlLXByZWZpeGVkIHBhdGgsIGFuZCBsZWF2ZSB0aGUgbG9va3VwIGZvciB0aGUgaW5jbHVk
ZQorICAgICAgICBwYXRoLiBGb3IgcHVibGljIGhlYWRlcnMgd2UgaGF2ZSB0byBpZmRlZiB0aGUg
aW5jbHVkZXMgYXMgdGhlCisgICAgICAgIHVzZXIgbWlnaHQgbm93IGhhdmUgdGhlIG1vZHVsZXMg
d2UgbmVlZCBpbiBoaXMgUVQgY29uZmlnLgorCisgICAgICAgIEZpbmFsbHksIFFTR0NhbnZhcyBp
cyBubyBsb25nZXIgYSBRV2lkZ2V0IGJ1dCBhIFFXaW5kb3csIHNvIHdlCisgICAgICAgIGhhdmUg
dG8gdXBkYXRlIG91ciBjb2RlIGFuZCB1c2Ugd2luZG93SGFuZGxlKCkgZm9yIHNldHRpbmcgdGhl
CisgICAgICAgIHBhcmVudCByZWxhdGlvbnNoaXBzLgorCisgICAgICAgIFBhdGNoIGJ5IFRvciBB
cm5lIFZlc3Riw7ggPHZlc3Rib0B3ZWJraXQub3JnPi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFEZXNrdG9wV2ViVmlld1ByaXZh
dGU6OnN0YXJ0RHJhZyk6CisgICAgICAgIChRRGVza3RvcFdlYlZpZXdQcml2YXRlOjpkaWRDaGFu
Z2VUb29sVGlwKToKKyAgICAgICAgKFFEZXNrdG9wV2ViVmlld1ByaXZhdGU6OmRpZENoYW5nZUN1
cnNvcik6CisgICAgICAgIChRRGVza3RvcFdlYlZpZXdQcml2YXRlOjpzaG93Q29udGV4dE1lbnUp
OgorICAgICAgICAoUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTo6Y2hvb3NlRmlsZXMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy90ZXN0cy5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90
ZXN0cy90ZXN0cy5wcm86CisgICAgICAgICogVUlQcm9jZXNzL3F0L1ZpZXdJbnRlcmZhY2UuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3AuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcDo6V2ViUG9wdXBNZW51
UHJveHlRdERlc2t0b3ApOgorCiAyMDExLTA5LTI3ICBHb3BhbCBSYWdoYXZhbiAgPGdvcGFsLjEu
cmFnaGF2YW5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gUURlc2t0b3BXZWJWaWV3IGxvYWQg
emVybyBzaXplIHZpZXcgdGVzdCBtaXNzaW5nCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FkZXNrdG9wd2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3BwCShyZXZpc2lvbiA5NjE1MikK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsOCBAQAogI2luY2x1ZGUgInFkZXNrdG9wd2Vidmll
d19wLmgiCiAjaW5jbHVkZSAicXdlYmVycm9yLmgiCiAKKyNpbmNsdWRlIDxRRmlsZURpYWxvZz4K
KyNpbmNsdWRlIDxRR3JhcGhpY3NTY2VuZUV2ZW50PgogI2luY2x1ZGUgPFFHcmFwaGljc1NjZW5l
UmVzaXplRXZlbnQ+CiAjaW5jbHVkZSA8UVN0eWxlT3B0aW9uR3JhcGhpY3NJdGVtPgogI2luY2x1
ZGUgPFF0RGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZlZW5naW5lLmg+CkBAIC0zMSw3ICszMyw3IEBA
CiAjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9xc2dpdGVtLmg+CiAjaW5jbHVkZSA8UXREZWNsYXJh
dGl2ZS9xc2d2aWV3Lmg+CiAjaW5jbHVkZSA8UXRHdWkvUUN1cnNvcj4KLSNpbmNsdWRlIDxRdEd1
aS9RRmlsZURpYWxvZz4KKyNpbmNsdWRlIDxRdEd1aS9RRHJhZz4KICNpbmNsdWRlIDxRdEd1aS9R
Rm9jdXNFdmVudD4KICNpbmNsdWRlIDxRdEd1aS9RR3JhcGhpY3NTY2VuZUV2ZW50PgogI2luY2x1
ZGUgPFF0R3VpL1FIb3ZlckV2ZW50PgpAQCAtODEsMTYgKzgzLDE2IEBAIGJvb2wgUURlc2t0b3BX
ZWJWaWV3UHJpdmF0ZTo6aXNWaXNpYmxlKCkKIAogdm9pZCBRRGVza3RvcFdlYlZpZXdQcml2YXRl
OjpzdGFydERyYWcoUXQ6OkRyb3BBY3Rpb25zIHN1cHBvcnRlZERyb3BBY3Rpb25zLCBjb25zdCBR
SW1hZ2UmIGRyYWdJbWFnZSwgUU1pbWVEYXRhKiBkYXRhLCBRUG9pbnQqIGNsaWVudFBvc2l0aW9u
LCBRUG9pbnQqIGdsb2JhbFBvc2l0aW9uLCBRdDo6RHJvcEFjdGlvbiogZHJvcEFjdGlvbikKIHsK
LSAgICBRV2lkZ2V0KiB3aWRnZXQgPSBxLT5jYW52YXMoKTsKLSAgICBpZiAoIXdpZGdldCkKKyAg
ICBRV2luZG93KiB3aW5kb3cgPSBxLT5jYW52YXMoKTsKKyAgICBpZiAoIXdpbmRvdykKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgUURyYWcqIGRyYWcgPSBuZXcgUURyYWcod2lkZ2V0KTsKKyAgICBR
RHJhZyogZHJhZyA9IG5ldyBRRHJhZyh3aW5kb3cpOwogICAgIGRyYWctPnNldFBpeG1hcChRUGl4
bWFwOjpmcm9tSW1hZ2UoZHJhZ0ltYWdlKSk7CiAgICAgZHJhZy0+c2V0TWltZURhdGEoZGF0YSk7
CiAgICAgKmRyb3BBY3Rpb24gPSBkcmFnLT5leGVjKHN1cHBvcnRlZERyb3BBY3Rpb25zKTsKICAg
ICAqZ2xvYmFsUG9zaXRpb24gPSBRQ3Vyc29yOjpwb3MoKTsKLSAgICAqY2xpZW50UG9zaXRpb24g
PSB3aWRnZXQtPm1hcEZyb21HbG9iYWwoKmdsb2JhbFBvc2l0aW9uKTsKKyAgICAqY2xpZW50UG9z
aXRpb24gPSB3aW5kb3ctPm1hcEZyb21HbG9iYWwoKmdsb2JhbFBvc2l0aW9uKTsKIH0KIAogdm9p
ZCBRRGVza3RvcFdlYlZpZXdQcml2YXRlOjpkaWRSZWNlaXZlVmlld3BvcnRBcmd1bWVudHMoY29u
c3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKQpAQCAtMTE2LDcgKzExOCw2IEBAIHZvaWQg
UURlc2t0b3BXZWJWaWV3UHJpdmF0ZTo6ZGlkQ2hhbmdlVGkKIHZvaWQgUURlc2t0b3BXZWJWaWV3
UHJpdmF0ZTo6ZGlkQ2hhbmdlVG9vbFRpcChjb25zdCBRU3RyaW5nJiBuZXdUb29sVGlwKQogewog
ICAgIC8vIEZJWE1FOiBBZGQgYSBwcm9wZXIgaW1wbGVtZW50YXRpb24gd2hlbiBRdCA1IHN1cHBv
cnRzIHRvb2x0aXAuCi0gICAgcS0+Y2FudmFzKCktPnNldFRvb2xUaXAobmV3VG9vbFRpcCk7CiB9
CiAKIHZvaWQgUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTo6ZGlkQ2hhbmdlU3RhdHVzVGV4dChjb25z
dCBRU3RyaW5nJiBuZXdNZXNzYWdlKQpAQCAtMTI3LDcgKzEyOCw2IEBAIHZvaWQgUURlc2t0b3BX
ZWJWaWV3UHJpdmF0ZTo6ZGlkQ2hhbmdlU3QKIHZvaWQgUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTo6
ZGlkQ2hhbmdlQ3Vyc29yKGNvbnN0IFFDdXJzb3ImIG5ld0N1cnNvcikKIHsKICAgICAvLyBGSVhN
RTogYWRkIHByb3BlciBjdXJzb3IgaGFuZGxpbmcgd2hlbiBRdCA1IHN1cHBvcnRzIGl0LgotICAg
IHEtPmNhbnZhcygpLT5zZXRDdXJzb3IobmV3Q3Vyc29yKTsKIH0KIAogdm9pZCBRRGVza3RvcFdl
YlZpZXdQcml2YXRlOjpsb2FkRGlkQmVnaW4oKQpAQCAtMTY0LDE1ICsxNjQsMTggQEAgdm9pZCBR
RGVza3RvcFdlYlZpZXdQcml2YXRlOjpzaG93Q29udGV4dAogICAgIGlmIChtZW51LT5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFFXaWRnZXQqIHdpZGdldCA9IHEtPmNhbnZhcygp
OwotICAgIGlmICghd2lkZ2V0KQorICAgIFFXaW5kb3cqIHdpbmRvdyA9IHEtPmNhbnZhcygpOwor
ICAgIGlmICghd2luZG93KQogICAgICAgICByZXR1cm47CiAKICAgICBhY3RpdmVNZW51ID0gbWVu
dTsKIAotICAgIG1lbnUtPnNldFBhcmVudCh3aWRnZXQsIG1lbnUtPndpbmRvd0ZsYWdzKCkpOwor
ICAgIGFjdGl2ZU1lbnUtPndpbmRvdygpLT53aW5JZCgpOyAvLyBFbnN1cmUgdGhhdCB0aGUgbWVu
dSBoYXMgYSB3aW5kb3cKKyAgICBRX0FTU0VSVChhY3RpdmVNZW51LT53aW5kb3coKS0+d2luZG93
SGFuZGxlKCkpOworICAgIGFjdGl2ZU1lbnUtPndpbmRvdygpLT53aW5kb3dIYW5kbGUoKS0+c2V0
VHJhbnNpZW50UGFyZW50KHdpbmRvdyk7CisKICAgICBRUG9pbnQgbWVudVBvc2l0aW9uSW5TY2Vu
ZSA9IHEtPm1hcFRvU2NlbmUobWVudS0+cG9zKCkpLnRvUG9pbnQoKTsKLSAgICBtZW51LT5leGVj
KHdpZGdldC0+bWFwVG9HbG9iYWwobWVudVBvc2l0aW9uSW5TY2VuZSkpOworICAgIG1lbnUtPmV4
ZWMod2luZG93LT5tYXBUb0dsb2JhbChtZW51UG9zaXRpb25JblNjZW5lKSk7CiAgICAgLy8gVGhl
IGxhc3QgZnVuY3Rpb24gdG8gZ2V0IG91dCBvZiBleGVjKCkgY2xlYXIgdGhlIGxvY2FsIGNvcHku
CiAgICAgaWYgKGFjdGl2ZU1lbnUgPT0gbWVudSkKICAgICAgICAgYWN0aXZlTWVudS5jbGVhcigp
OwpAQCAtNDAzLDggKzQwNiwxNyBAQCB2b2lkIFFEZXNrdG9wV2ViVmlld1ByaXZhdGU6OmNob29z
ZUZpbGVzCiAgICAgaWYgKCFzZWxlY3RlZEZpbGVOYW1lcy5pc0VtcHR5KCkpCiAgICAgICAgIHNl
bGVjdGVkRmlsZU5hbWUgPSBzZWxlY3RlZEZpbGVOYW1lcy5hdCgwKTsKIAotICAgIFFXaWRnZXQq
IHdpZGdldCA9IHEtPmNhbnZhcygpOwotICAgIGZpbGVEaWFsb2cgPSBuZXcgUUZpbGVEaWFsb2co
d2lkZ2V0LCBRU3RyaW5nKCksIHNlbGVjdGVkRmlsZU5hbWUpOworICAgIFFfQVNTRVJUKCFmaWxl
RGlhbG9nKTsKKworICAgIFFXaW5kb3cqIHdpbmRvdyA9IHEtPmNhbnZhcygpOworICAgIGlmICgh
d2luZG93KQorICAgICAgICByZXR1cm47CisKKyAgICBmaWxlRGlhbG9nID0gbmV3IFFGaWxlRGlh
bG9nKDAsIFFTdHJpbmcoKSwgc2VsZWN0ZWRGaWxlTmFtZSk7CisgICAgZmlsZURpYWxvZy0+d2lu
ZG93KCktPndpbklkKCk7IC8vIEVuc3VyZSB0aGF0IHRoZSBkaWFsb2cgaGFzIGEgd2luZG93Cisg
ICAgUV9BU1NFUlQoZmlsZURpYWxvZy0+d2luZG93KCktPndpbmRvd0hhbmRsZSgpKTsKKyAgICBm
aWxlRGlhbG9nLT53aW5kb3coKS0+d2luZG93SGFuZGxlKCktPnNldFRyYW5zaWVudFBhcmVudCh3
aW5kb3cpOworCiAgICAgZmlsZURpYWxvZy0+b3Blbih0aGlzLCBTTE9UKG9uT3BlblBhbmVsRmls
ZXNTZWxlY3RlZCgpKSk7CiAKICAgICBjb25uZWN0KGZpbGVEaWFsb2csIFNJR05BTChmaW5pc2hl
ZChpbnQpKSwgdGhpcywgU0xPVChvbk9wZW5QYW5lbEZpbmlzaGVkKGludCkpKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuaAko
cmV2aXNpb24gOTYxNTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FkZXNr
dG9wd2Vidmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIFFXaGVl
bEV2ZW50OwogUVRfRU5EX05BTUVTUEFDRQogCiBuYW1lc3BhY2UgV1RSIHsKLSAgICBjbGFzcyBX
ZWJWaWV3OworICAgIGNsYXNzIFBsYXRmb3JtV2ViVmlldzsKIH0KIAogY2xhc3MgUVdFQktJVF9F
WFBPUlQgUURlc2t0b3BXZWJWaWV3IDogcHVibGljIFFTR1BhaW50ZWRJdGVtIHsKQEAgLTEyMCw3
ICsxMjAsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBpbml0KCk7CiAKLSAgICBmcmllbmQgY2xh
c3MgV1RSOjpXZWJWaWV3OworICAgIGZyaWVuZCBjbGFzcyBXVFI6OlBsYXRmb3JtV2ViVmlldzsK
ICAgICBmcmllbmQgY2xhc3MgUURlc2t0b3BXZWJWaWV3UHJpdmF0ZTsKICAgICBRRGVza3RvcFdl
YlZpZXdQcml2YXRlICpkOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvdGVzdHMucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvdGVzdHMucHJpCShyZXZpc2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvdGVzdHMucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0x
MSw3ICsxMSw3IEBAIFNPVVJDRVMgKz0gJCR7VEFSR0VUfS5jcHAgXAogSU5DTFVERVBBVEggKz0g
JCRQV0QKIAogaW5jbHVkZSguLi8uLi8uLi8uLi8uLi9XZWJLaXQucHJpKQotUVQgKz0gdGVzdGxp
YiBkZWNsYXJhdGl2ZQorUVQgKz0gdGVzdGxpYiBkZWNsYXJhdGl2ZSB3aWRnZXRzCiAKIFFNQUtF
X1JQQVRIRElSID0gJCRPVVRQVVRfRElSL2xpYiAkJFFNQUtFX1JQQVRIRElSCiBERUZJTkVTICs9
IFRFU1RTX1NPVVJDRV9ESVI9XFxcIiQkUFdEXFxcIiBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Rlc3RzLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Rlc3RzLnBybwkocmV2aXNpb24gOTYxNTIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Rlc3RzLnBybwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwyICsxLDMgQEAKIFRFTVBMQVRFID0gc3ViZGlycwotU1VCRElSUyA9IHF0
b3VjaHdlYnZpZXcgcWRlc2t0b3B3ZWJ2aWV3IGNvbW1vbnZpZXd0ZXN0cyBxbWx0ZXN0cworU1VC
RElSUyA9IHF0b3VjaHdlYnZpZXcgcWRlc2t0b3B3ZWJ2aWV3IGNvbW1vbnZpZXd0ZXN0cworbGVz
c1RoYW4oUVRfTUFKT1JfVkVSU0lPTiwgNSk6IFNVQkRJUlMgKz0gcW1sdGVzdHMKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9WaWV3SW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1ZpZXdJbnRlcmZhY2UuaAkocmV2aXNpb24gOTYx
NTIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvVmlld0ludGVyZmFjZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw3IEBACiAKICNpbmNsdWRlIDxRdENvcmUvUVNoYXJlZFBv
aW50ZXI+CiAjaW5jbHVkZSA8UXRDb3JlL1FTaXplPgotI2luY2x1ZGUgPFF0R3VpL1FNZW51Pgor
I2luY2x1ZGUgPFFNZW51PgogI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CiAKIGNsYXNzIFFX
ZWJFcnJvcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQb3B1cE1lbnVQ
cm94eVF0RGVza3RvcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1dlYlBvcHVwTWVudVByb3h5UXREZXNrdG9wLmNwcAkocmV2aXNpb24gOTYxNTIpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUG9wdXBNZW51UHJveHlRdERlc2t0b3AuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiV2ViUG9wdXBJdGVt
LmgiCiAjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9RU0dDYW52YXM+CiAjaW5jbHVkZSA8UXREZWNs
YXJhdGl2ZS9RU0dJdGVtPgotI2luY2x1ZGUgPFF0R3VpL1FTdGFuZGFyZEl0ZW1Nb2RlbD4KKyNp
bmNsdWRlIDxRU3RhbmRhcmRJdGVtTW9kZWw+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CkBAIC00NCw3ICs0NCwxMSBAQCBXZWJQb3B1cE1lbnVQcm94eVF0RGVza3RvcDo6V2ViUG9wdXBN
ZW51CiAgICAgLCBtX3NlbGVjdGVkSW5kZXgoLTEpCiB7CiAgICAgUXRXZWJDb21ib0JveCogY29t
Ym9Cb3ggPSBtX2NvbWJvQm94LmRhdGEoKTsKLSAgICBjb21ib0JveC0+c2V0UGFyZW50KG1fd2Vi
Vmlld0l0ZW0tPmNhbnZhcygpKTsKKworICAgIGNvbWJvQm94LT53aW5kb3coKS0+d2luSWQoKTsg
Ly8gRW5zdXJlIHRoYXQgdGhlIGNvbWJvYm94IGhhcyBhIHdpbmRvdworICAgIFFfQVNTRVJUKGNv
bWJvQm94LT53aW5kb3coKS0+d2luZG93SGFuZGxlKCkpOworICAgIGNvbWJvQm94LT53aW5kb3co
KS0+d2luZG93SGFuZGxlKCktPnNldFRyYW5zaWVudFBhcmVudChtX3dlYlZpZXdJdGVtLT5jYW52
YXMoKSk7CisKICAgICBjb25uZWN0KGNvbWJvQm94LCBTSUdOQUwoYWN0aXZhdGVkKGludCkpLCBT
TE9UKHNldFNlbGVjdGVkSW5kZXgoaW50KSkpOwogICAgIGNvbm5lY3QoY29tYm9Cb3gsIFNJR05B
TChkaWRIaWRlKCkpLCBTTE9UKG9uUG9wdXBNZW51SGlkZGVuKCkpLCBRdDo6UXVldWVkQ29ubmVj
dGlvbik7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gOTYxNTIpCisrKyBTb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDEx
LTA5LTI3ICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIFtRdF0gRml4IGJ1aWxkIGFnYWluc3QgUXQ1IGFmdGVyIHJlZmFjdG9yIG9mIFFXaWRn
ZXQgaW50byBpdHMgb3duIGxpYnJhcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4Njg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUVdpZGdldCBhbmQgZnJpZW5kcyBub3cgbGl2ZSBpbiB0aGUgUXRXaWRn
ZXRzIGxpYnJhcnkuIFdlIHVwZGF0ZQorICAgICAgICBpbmNsdWRlcyBpbiBpbXBsZW1lbnRhdGlv
biBmaWxlcyBhbmQgcHJpdmF0ZSBoZWFkZXJzIHRvIHVzIHRoZQorICAgICAgICBub24tbW9kdWxl
LXByZWZpeGVkIHBhdGgsIGFuZCBsZWF2ZSB0aGUgbG9va3VwIGZvciB0aGUgaW5jbHVkZQorICAg
ICAgICBwYXRoLiBGb3IgcHVibGljIGhlYWRlcnMgd2UgaGF2ZSB0byBpZmRlZiB0aGUgaW5jbHVk
ZXMgYXMgdGhlCisgICAgICAgIHVzZXIgbWlnaHQgbm93IGhhdmUgdGhlIG1vZHVsZXMgd2UgbmVl
ZCBpbiBoaXMgUVQgY29uZmlnLgorCisgICAgICAgIEZpbmFsbHksIFFTR0NhbnZhcyBpcyBubyBs
b25nZXIgYSBRV2lkZ2V0IGJ1dCBhIFFXaW5kb3csIHNvIHdlCisgICAgICAgIGhhdmUgdG8gdXBk
YXRlIG91ciBjb2RlIGFuZCB1c2Ugd2luZG93SGFuZGxlKCkgZm9yIHNldHRpbmcgdGhlCisgICAg
ICAgIHBhcmVudCByZWxhdGlvbnNoaXBzLgorCisgICAgICAgIFBhdGNoIGJ5IFRvciBBcm5lIFZl
c3Riw7ggPHZlc3Rib0B3ZWJraXQub3JnPi4KKworICAgICAgICAqIEFwaS9xZ3JhcGhpY3N3ZWJ2
aWV3LmNwcDoKKyAgICAgICAgKiBBcGkvcWdyYXBoaWNzd2Vidmlldy5oOgorICAgICAgICAqIEFw
aS9xd2ViZnJhbWUuaDoKKyAgICAgICAgKiBBcGkvcXdlYmhpc3RvcnkuaDoKKyAgICAgICAgKiBB
cGkvcXdlYnBhZ2UuaDoKKyAgICAgICAgKiBBcGkvcXdlYnNldHRpbmdzLmg6CisgICAgICAgICog
QXBpL3F3ZWJ2aWV3Lmg6CisgICAgICAgICogUXRXZWJLaXQucHJvOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1F0V2Vi
Q29tYm9Cb3guY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1F0V2ViQ29tYm9Cb3guaDoK
KyAgICAgICAgKiBkZWNsYXJhdGl2ZS9kZWNsYXJhdGl2ZS5wcm86CisgICAgICAgICogZGVjbGFy
YXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHA6CisgICAgICAgICogZGVjbGFyYXRpdmUvcWRl
Y2xhcmF0aXZld2Vidmlld19wLmg6CisgICAgICAgICogZG9jcy93ZWJraXRzbmlwcGV0cy93ZWJw
YWdlL21haW4uY3BwOgorICAgICAgICAqIGV4YW1wbGVzL3BsYXRmb3JtcGx1Z2luL1dlYk5vdGlm
aWNhdGlvblByZXNlbnRlci5oOgorICAgICAgICAqIHRlc3RzL3Rlc3RzLnByaToKKwogMjAxMS0w
OS0yNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjk2MTA4LCByOTYxMTEsIHI5NjExMywgYW5kIHI5
NjExNi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJvCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJvCShyZXZpc2lvbiA5NjE1MikKKysrIFNvdXJj
ZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJvCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBA
IHdlYmtpdDI6cHJlcGVuZFdlYktpdDJMaWIoLi4vLi4vV2ViS2l0MikKICMgdGhlIGdlbmVyYXRl
ZCBpbmNsdWRlcyBhcmUgY29udGFpbmluZyB0aGUgZGVwZW5kZW5jaWVzLgogIyBJdCB1c2VkIHRv
IGJlIGluIFdlYkNvcmUucHJvIGJ1dCBub3cgdGhhdCB0aGlzIGlzIHRoZSBtYWluIHBybyBmaWxl
IGl0IGhhcyB0byBiZSBoZXJlLgogUVQgKz0gbmV0d29yaworZ3JlYXRlclRoYW4oUVRfTUFKT1Jf
VkVSU0lPTiwgNCk6IFFUICs9IHByaW50c3VwcG9ydAogCiBpc0VtcHR5KE9VVFBVVF9ESVIpOiBP
VVRQVVRfRElSID0gLi4vLi4KIApJbmRleDogU291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNz
d2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNz
d2Vidmlldy5jcHAJKHJldmlzaW9uIDk2MTUyKQorKysgU291cmNlL1dlYktpdC9xdC9BcGkvcWdy
YXBoaWNzd2Vidmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDE3ICszNCwxOCBAQAogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRl
ICJUaWxlZEJhY2tpbmdTdG9yZS5oIgorI2luY2x1ZGUgPHFhcHBsaWNhdGlvbi5oPgorI2luY2x1
ZGUgPHFncmFwaGljc3NjZW5lLmg+CisjaW5jbHVkZSA8cWdyYXBoaWNzc2NlbmVldmVudC5oPgor
I2luY2x1ZGUgPHFncmFwaGljc3ZpZXcuaD4KKyNpbmNsdWRlIDxxc2Nyb2xsYmFyLmg+CisjaW5j
bHVkZSA8cXN0eWxlb3B0aW9uLmg+CisjaW5jbHVkZSA8cWlucHV0Y29udGV4dC5oPgogI2luY2x1
ZGUgPFF0Q29yZS9xbWV0YW9iamVjdC5oPgogI2luY2x1ZGUgPFF0Q29yZS9xc2hhcmVkcG9pbnRl
ci5oPgogI2luY2x1ZGUgPFF0Q29yZS9xdGltZXIuaD4KLSNpbmNsdWRlIDxRdEd1aS9xYXBwbGlj
YXRpb24uaD4KLSNpbmNsdWRlIDxRdEd1aS9xZ3JhcGhpY3NzY2VuZS5oPgotI2luY2x1ZGUgPFF0
R3VpL3FncmFwaGljc3NjZW5lZXZlbnQuaD4KLSNpbmNsdWRlIDxRdEd1aS9xZ3JhcGhpY3N2aWV3
Lmg+CiAjaW5jbHVkZSA8UXRHdWkvcXBpeG1hcGNhY2hlLmg+Ci0jaW5jbHVkZSA8UXRHdWkvcXNj
cm9sbGJhci5oPgotI2luY2x1ZGUgPFF0R3VpL3FzdHlsZW9wdGlvbi5oPgotI2luY2x1ZGUgPFF0
R3VpL3FpbnB1dGNvbnRleHQuaD4KKwogI2lmIGRlZmluZWQoUV9XU19YMTEpCiAjaW5jbHVkZSA8
UVgxMUluZm8+CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3FncmFwaGljc3dl
YnZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2
aWV3LmgJKHJldmlzaW9uIDk2MTUyKQorKysgU291cmNlL1dlYktpdC9xdC9BcGkvcWdyYXBoaWNz
d2Vidmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw5ICsyMywxNCBAQAogI2luY2x1ZGUgInF3
ZWJraXRnbG9iYWwuaCIKICNpbmNsdWRlICJxd2VicGFnZS5oIgogI2luY2x1ZGUgPFF0Q29yZS9x
dXJsLmg+Ci0jaW5jbHVkZSA8UXRHdWkvcWV2ZW50Lmg+CisjaWYgUVRfVkVSU0lPTiA+PSBRVF9W
RVJTSU9OX0NIRUNLKDUsIDAsIDApCisjaW5jbHVkZSA8UXRXaWRnZXRzL3FncmFwaGljc3dpZGdl
dC5oPgorI2luY2x1ZGUgPFF0V2lkZ2V0cy9xaWNvbi5oPgorI2Vsc2UKICNpbmNsdWRlIDxRdEd1
aS9xZ3JhcGhpY3N3aWRnZXQuaD4KICNpbmNsdWRlIDxRdEd1aS9xaWNvbi5oPgorI2VuZGlmCisj
aW5jbHVkZSA8UXRHdWkvcWV2ZW50Lmg+CiAjaW5jbHVkZSA8UXRHdWkvcXBhaW50ZXIuaD4KICNp
bmNsdWRlIDxRdE5ldHdvcmsvcW5ldHdvcmthY2Nlc3NtYW5hZ2VyLmg+CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
cXQvQXBpL3F3ZWJmcmFtZS5oCShyZXZpc2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJLaXQvcXQv
QXBpL3F3ZWJmcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCwxMSBAQAogI2luY2x1
ZGUgPFF0Q29yZS9xb2JqZWN0Lmg+CiAjaW5jbHVkZSA8UXRDb3JlL3F1cmwuaD4KICNpbmNsdWRl
IDxRdENvcmUvcXZhcmlhbnQuaD4KKyNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0so
NSwgMCwgMCkKKyNpbmNsdWRlIDxRdFdpZGdldHMvcWljb24uaD4KKyNlbHNlCiAjaW5jbHVkZSA8
UXRHdWkvcWljb24uaD4KKyNlbmRpZgogI2luY2x1ZGUgPFF0U2NyaXB0L3FzY3JpcHRlbmdpbmUu
aD4KICNpbmNsdWRlIDxRdE5ldHdvcmsvcW5ldHdvcmthY2Nlc3NtYW5hZ2VyLmg+CiAjaW5jbHVk
ZSAicXdlYmtpdGdsb2JhbC5oIgpJbmRleDogU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmhpc3Rv
cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViaGlzdG9yeS5oCShy
ZXZpc2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJoaXN0b3J5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTIyLDkgKzIyLDEzIEBACiAKICNpbmNsdWRlIDxRdENvcmUvcXVybC5o
PgogI2luY2x1ZGUgPFF0Q29yZS9xc3RyaW5nLmg+Ci0jaW5jbHVkZSA8UXRHdWkvcWljb24uaD4K
ICNpbmNsdWRlIDxRdENvcmUvcWRhdGV0aW1lLmg+CiAjaW5jbHVkZSA8UXRDb3JlL3FzaGFyZWRk
YXRhLmg+CisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCisjaW5j
bHVkZSA8UXRXaWRnZXRzL3FpY29uLmg+CisjZWxzZQorI2luY2x1ZGUgPFF0R3VpL3FpY29uLmg+
CisjZW5kaWYKIAogI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKIApJbmRleDogU291cmNlL1dl
YktpdC9xdC9BcGkvcXdlYnBhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0Fw
aS9xd2VicGFnZS5oCShyZXZpc2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJwYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDExIEBACiAKICNpbmNsdWRlIDxR
dENvcmUvcW9iamVjdC5oPgogI2luY2x1ZGUgPFF0Q29yZS9xdXJsLmg+CisjaWYgUVRfVkVSU0lP
TiA+PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCisjaW5jbHVkZSA8UXRXaWRnZXRzL3F3aWRn
ZXQuaD4KKyNlbHNlCiAjaW5jbHVkZSA8UXRHdWkvcXdpZGdldC5oPgorI2VuZGlmCiAKIFFUX0JF
R0lOX05BTUVTUEFDRQogY2xhc3MgUU5ldHdvcmtQcm94eTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
cXQvQXBpL3F3ZWJzZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvQXBp
L3F3ZWJzZXR0aW5ncy5oCShyZXZpc2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJLaXQvcXQvQXBp
L3F3ZWJzZXR0aW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCwxMSBAQAogCiAjaW5j
bHVkZSA8UXRDb3JlL3FzdHJpbmcuaD4KICNpbmNsdWRlIDxRdEd1aS9xcGl4bWFwLmg+CisjaWYg
UVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDUsIDAsIDApCisjaW5jbHVkZSA8UXRXaWRn
ZXRzL3FpY29uLmg+CisjZWxzZQogI2luY2x1ZGUgPFF0R3VpL3FpY29uLmg+CisjZW5kaWYKICNp
bmNsdWRlIDxRdENvcmUvcXNoYXJlZGRhdGEuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRl
eDogU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2Vidmlldy5oCShyZXZpc2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJ2aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDggKzIzLDEzIEBACiAK
ICNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCiAjaW5jbHVkZSAicXdlYnBhZ2UuaCIKKyNpZiBR
VF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNSwgMCwgMCkKKyNpbmNsdWRlIDxRdFdpZGdl
dHMvcXdpZGdldC5oPgorI2luY2x1ZGUgPFF0V2lkZ2V0cy9xaWNvbi5oPgorI2Vsc2UKICNpbmNs
dWRlIDxRdEd1aS9xd2lkZ2V0Lmg+CiAjaW5jbHVkZSA8UXRHdWkvcWljb24uaD4KKyNlbmRpZgog
I2luY2x1ZGUgPFF0R3VpL3FwYWludGVyLmg+CiAjaW5jbHVkZSA8UXRDb3JlL3F1cmwuaD4KICNp
bmNsdWRlIDxRdE5ldHdvcmsvcW5ldHdvcmthY2Nlc3NtYW5hZ2VyLmg+CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGFnZUNsaWVudFF0LmgJKHJldmlzaW9uIDk2
MTUyKQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50UXQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzEsMTMgKzMxLDEzIEBACiAjaW5jbHVkZSAicXdlYmZyYW1lX3Au
aCIKICNpbmNsdWRlICJxd2VicGFnZS5oIgogI2luY2x1ZGUgInF3ZWJwYWdlX3AuaCIKKyNpbmNs
dWRlIDxxZ3JhcGhpY3NzY2VuZS5oPgorI2luY2x1ZGUgPHFncmFwaGljc3ZpZXcuaD4KKyNpbmNs
dWRlIDxxZ3JhcGhpY3N3aWRnZXQuaD4KKyNpbmNsdWRlIDxxc2Nyb2xsYmFyLmg+CisjaW5jbHVk
ZSA8cXN0eWxlb3B0aW9uLmg+CisjaW5jbHVkZSA8cXdpZGdldC5oPgogI2luY2x1ZGUgPFF0Q29y
ZS9xbWV0YW9iamVjdC5oPgotI2luY2x1ZGUgPFF0R3VpL3FncmFwaGljc3NjZW5lLmg+Ci0jaW5j
bHVkZSA8UXRHdWkvcWdyYXBoaWNzdmlldy5oPgotI2luY2x1ZGUgPFF0R3VpL3FncmFwaGljc3dp
ZGdldC5oPgotI2luY2x1ZGUgPFF0R3VpL3FzY3JvbGxiYXIuaD4KLSNpbmNsdWRlIDxRdEd1aS9x
c3R5bGVvcHRpb24uaD4KLSNpbmNsdWRlIDxRdEd1aS9xd2lkZ2V0Lmg+CiAKICNpbmNsdWRlIDxT
ZXR0aW5ncy5oPgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0V2Vi
Q29tYm9Cb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvUXRXZWJDb21ib0JveC5jcHAJKHJldmlzaW9uIDk2MTUyKQorKysgU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9RdFdlYkNvbWJvQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQs
OCArMjQsOCBAQAogCiAjaWZuZGVmIFFUX05PX0NPTUJPQk9YCiAKLSNpbmNsdWRlIDxRdEd1aS9R
QWJzdHJhY3RJdGVtVmlldz4KLSNpbmNsdWRlIDxRdEd1aS9RQXBwbGljYXRpb24+CisjaW5jbHVk
ZSA8UUFic3RyYWN0SXRlbVZpZXc+CisjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgogI2luY2x1ZGUg
PFF0R3VpL1FNb3VzZUV2ZW50PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0V2ViQ29tYm9Cb3guaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0V2ViQ29tYm9Cb3guaAkocmV2aXNpb24g
OTYxNTIpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0V2ViQ29tYm9Cb3gu
aAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyArMjMsNyBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm0u
aCIKIAotI2luY2x1ZGUgPFF0R3VpL1FDb21ib0JveD4KKyNpbmNsdWRlIDxRQ29tYm9Cb3g+CiAK
ICNpZm5kZWYgUVRfTk9fQ09NQk9CT1gKIApJbmRleDogU291cmNlL1dlYktpdC9xdC9kZWNsYXJh
dGl2ZS9kZWNsYXJhdGl2ZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9kZWNs
YXJhdGl2ZS9kZWNsYXJhdGl2ZS5wcm8JKHJldmlzaW9uIDk2MTUyKQorKysgU291cmNlL1dlYktp
dC9xdC9kZWNsYXJhdGl2ZS9kZWNsYXJhdGl2ZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTQwLDYg
KzQwLDcgQEAgc3ltYmlhbjogewogaW5jbHVkZSguLi8uLi8uLi9XZWJLaXQucHJpKQogCiBRVCAr
PSBkZWNsYXJhdGl2ZQorZ3JlYXRlclRoYW4oUVRfTUFKT1JfVkVSU0lPTiwgNCk6IFFUICs9IHdp
ZGdldHMKIAogY29udGFpbnMoUVRfQ09ORklHLCBxdHF1aWNrMSk6IHsKICAgICBRVCArPSBxdHF1
aWNrMQpJbmRleDogU291cmNlL1dlYktpdC9xdC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2
aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNs
YXJhdGl2ZXdlYnZpZXcuY3BwCShyZXZpc2lvbiA5NjE1MikKKysrIFNvdXJjZS9XZWJLaXQvcXQv
ZGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZld2Vidmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIw
LDE0ICsyMCwxNCBAQAogCiAjaW5jbHVkZSAicWRlY2xhcmF0aXZld2Vidmlld19wLmgiCiAKKyNp
bmNsdWRlIDxRQXBwbGljYXRpb24+CisjaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50
PgogI2luY2x1ZGUgPFF0Q29yZS9RRGVidWc+CiAjaW5jbHVkZSA8UXRDb3JlL1FFdmVudD4KICNp
bmNsdWRlIDxRdENvcmUvUUZpbGU+CiAjaW5jbHVkZSA8UXREZWNsYXJhdGl2ZS9RRGVjbGFyYXRp
dmVDb250ZXh0PgogI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvUURlY2xhcmF0aXZlRW5naW5lPgog
I2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvcWRlY2xhcmF0aXZlLmg+Ci0jaW5jbHVkZSA8UXRHdWkv
UUFwcGxpY2F0aW9uPgotI2luY2x1ZGUgPFF0R3VpL1FHcmFwaGljc1NjZW5lTW91c2VFdmVudD4K
ICNpbmNsdWRlIDxRdEd1aS9RS2V5RXZlbnQ+CiAjaW5jbHVkZSA8UXRHdWkvUU1vdXNlRXZlbnQ+
CiAjaW5jbHVkZSA8UXRHdWkvUVBlbj4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvZGVjbGFyYXRp
dmUvcWRlY2xhcmF0aXZld2Vidmlld19wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9x
dC9kZWNsYXJhdGl2ZS9xZGVjbGFyYXRpdmV3ZWJ2aWV3X3AuaAkocmV2aXNpb24gOTYxNTIpCisr
KyBTb3VyY2UvV2ViS2l0L3F0L2RlY2xhcmF0aXZlL3FkZWNsYXJhdGl2ZXdlYnZpZXdfcC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiwxMSArMjYsMTIgQEAKIAogI2lmIFFUX1ZFUlNJT04gPj0gUVRf
VkVSU0lPTl9DSEVDSyg1LCAwLCAwKQogI2luY2x1ZGUgPFF0UXVpY2sxL1FEZWNsYXJhdGl2ZUl0
ZW0+CisjaW5jbHVkZSA8UXRXaWRnZXRzL1FBY3Rpb24+CiAjZWxzZQogI2luY2x1ZGUgPFF0RGVj
bGFyYXRpdmUvUURlY2xhcmF0aXZlSXRlbT4KKyNpbmNsdWRlIDxRdEd1aS9RQWN0aW9uPgogI2Vu
ZGlmCiAKLSNpbmNsdWRlIDxRdEd1aS9RQWN0aW9uPgogI2luY2x1ZGUgPFF0TmV0d29yay9RTmV0
d29ya0FjY2Vzc01hbmFnZXI+CiAjaW5jbHVkZSAicWdyYXBoaWNzd2Vidmlldy5oIgogI2luY2x1
ZGUgInF3ZWJwYWdlLmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L2RvY3Mvd2Via2l0c25pcHBl
dHMvd2VicGFnZS9tYWluLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L2RvY3Mv
d2Via2l0c25pcHBldHMvd2VicGFnZS9tYWluLmNwcAkocmV2aXNpb24gOTYxNTIpCisrKyBTb3Vy
Y2UvV2ViS2l0L3F0L2RvY3Mvd2Via2l0c25pcHBldHMvd2VicGFnZS9tYWluLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTcsOSArMTcsMTAgQEAKICAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KICovCiAKLSNpbmNsdWRlIDxRdEd1aT4KLSNpbmNsdWRlIDxRV2ViUGFnZT4KKyNpbmNsdWRl
IDxRQXBwbGljYXRpb24+CisjaW5jbHVkZSA8UVBhaW50ZXI+CiAjaW5jbHVkZSA8UVdlYkZyYW1l
PgorI2luY2x1ZGUgPFFXZWJQYWdlPgogCiAvLyEgWzBdCiBjbGFzcyBUaHVtYm5haWxlciA6IHB1
YmxpYyBRT2JqZWN0CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L2V4YW1wbGVzL3BsYXRmb3JtcGx1
Z2luL1dlYk5vdGlmaWNhdGlvblByZXNlbnRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvcXQvZXhhbXBsZXMvcGxhdGZvcm1wbHVnaW4vV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgJ
KHJldmlzaW9uIDk2MTUyKQorKysgU291cmNlL1dlYktpdC9xdC9leGFtcGxlcy9wbGF0Zm9ybXBs
dWdpbi9XZWJOb3RpZmljYXRpb25QcmVzZW50ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyAr
MjIsMTMgQEAKICNkZWZpbmUgV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyX2gKIAogI2luY2x1ZGUg
InF3ZWJraXRwbGF0Zm9ybXBsdWdpbi5oIgotI2luY2x1ZGUgPFF0R3VpPgorCisjaW5jbHVkZSA8
UUJpdG1hcD4KKyNpbmNsdWRlIDxRRXZlbnQ+CisjaW5jbHVkZSA8UUdyaWRMYXlvdXQ+CisjaW5j
bHVkZSA8UUxhYmVsPgorI2luY2x1ZGUgPFFQYWludGVyPgorI2luY2x1ZGUgPFFXaWRnZXQ+CiAK
IGNsYXNzIFdlYk5vdGlmaWNhdGlvbldpZGdldCA6IHB1YmxpYyBRV2lkZ2V0CiB7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3Rlc3RzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L3F0L3Rlc3RzL3Rlc3RzLnByaQkocmV2aXNpb24gOTYxNTIpCisrKyBTb3VyY2UvV2ViS2l0
L3F0L3Rlc3RzL3Rlc3RzLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQCBJTkNM
VURFUEFUSCArPSBcCiAKIGluY2x1ZGUoLi4vLi4vLi4vV2ViS2l0LnByaSkKIFFUICs9IHRlc3Rs
aWIgbmV0d29yaworZ3JlYXRlclRoYW4oUVRfTUFKT1JfVkVSU0lPTiwgNCk6IFFUICs9IHdpZGdl
dHMKIAogbGVzc1RoYW4oUVRfTUFKT1JfVkVSU0lPTiwgNSkgewogICAgIGNvbnRhaW5zKFFUX0NP
TkZJRywgZGVjbGFyYXRpdmUpOiBRVCArPSBkZWNsYXJhdGl2ZQpJbmRleDogVG9vbHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gOTYxNTIpCisrKyBU
b29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1OCBAQAorMjAxMS0wOS0y
NyAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KKworICAgICAg
ICBbUXRdIEZpeCBidWlsZCBhZ2FpbnN0IFF0NSBhZnRlciByZWZhY3RvciBvZiBRV2lkZ2V0IGlu
dG8gaXRzIG93biBsaWJyYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02ODY4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFFXaWRnZXQgYW5kIGZyaWVuZHMgbm93IGxpdmUgaW4gdGhlIFF0V2lkZ2V0cyBs
aWJyYXJ5LiBXZSB1cGRhdGUKKyAgICAgICAgaW5jbHVkZXMgaW4gaW1wbGVtZW50YXRpb24gZmls
ZXMgYW5kIHByaXZhdGUgaGVhZGVycyB0byB1cyB0aGUKKyAgICAgICAgbm9uLW1vZHVsZS1wcmVm
aXhlZCBwYXRoLCBhbmQgbGVhdmUgdGhlIGxvb2t1cCBmb3IgdGhlIGluY2x1ZGUKKyAgICAgICAg
cGF0aC4gRm9yIHB1YmxpYyBoZWFkZXJzIHdlIGhhdmUgdG8gaWZkZWYgdGhlIGluY2x1ZGVzIGFz
IHRoZQorICAgICAgICB1c2VyIG1pZ2h0IG5vdyBoYXZlIHRoZSBtb2R1bGVzIHdlIG5lZWQgaW4g
aGlzIFFUIGNvbmZpZy4KKworICAgICAgICBGaW5hbGx5LCBRU0dDYW52YXMgaXMgbm8gbG9uZ2Vy
IGEgUVdpZGdldCBidXQgYSBRV2luZG93LCBzbyB3ZQorICAgICAgICBoYXZlIHRvIHVwZGF0ZSBv
dXIgY29kZSBhbmQgdXNlIHdpbmRvd0hhbmRsZSgpIGZvciBzZXR0aW5nIHRoZQorICAgICAgICBw
YXJlbnQgcmVsYXRpb25zaGlwcy4KKworICAgICAgICBQYXRjaCBieSBUb3IgQXJuZSBWZXN0YsO4
IDx2ZXN0Ym9Ad2Via2l0Lm9yZz4uCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1w
UmVuZGVyVHJlZS5wcm86CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvSW1hZ2VEaWZmLnBy
bzoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9Ccm93c2VyVmlldy5jcHA6CisgICAgICAgIChC
cm93c2VyVmlldzo6QnJvd3NlclZpZXcpOgorICAgICAgICAqIE1pbmlCcm93c2VyL3F0L0Jyb3dz
ZXJWaWV3Lmg6CisgICAgICAgICogTWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5jcHA6Cisg
ICAgICAgIChXaW5kb3dXcmFwcGVyOjpXaW5kb3dXcmFwcGVyKToKKyAgICAgICAgKFdpbmRvd1dy
YXBwZXI6OnNob3dFdmVudCk6CisgICAgICAgIChXaW5kb3dXcmFwcGVyOjpyZXNpemVFdmVudCk6
CisgICAgICAgIChXaW5kb3dXcmFwcGVyOjpkb1Jlc2l6ZSk6CisgICAgICAgIChCcm93c2VyV2lu
ZG93OjpCcm93c2VyV2luZG93KToKKyAgICAgICAgKEJyb3dzZXJXaW5kb3c6OnVybENoYW5nZWQp
OgorICAgICAgICAoQnJvd3NlcldpbmRvdzo6fkJyb3dzZXJXaW5kb3cpOgorICAgICAgICAqIE1p
bmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaDoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9N
aW5pQnJvd3Nlci5wcm86CisgICAgICAgICogTWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXJBcHBs
aWNhdGlvbi5oOgorICAgICAgICAqIE1pbmlCcm93c2VyL3F0L21haW4uY3BwOgorICAgICAgICAq
IFF0VGVzdEJyb3dzZXIvUXRUZXN0QnJvd3Nlci5wcm86CisgICAgICAgICogUXRUZXN0QnJvd3Nl
ci9sYXVuY2hlcndpbmRvdy5jcHA6CisgICAgICAgICogUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndp
bmRvdy5oOgorICAgICAgICAqIFF0VGVzdEJyb3dzZXIvbG9jYXRpb25lZGl0Lmg6CisgICAgICAg
ICogUXRUZXN0QnJvd3Nlci9tYWluLmNwcDoKKyAgICAgICAgKiBRdFRlc3RCcm93c2VyL21haW53
aW5kb3cuY3BwOgorICAgICAgICAqIFF0VGVzdEJyb3dzZXIvbWFpbndpbmRvdy5oOgorICAgICAg
ICAqIFF0VGVzdEJyb3dzZXIvd2ViaW5zcGVjdG9yLmg6CisgICAgICAgICogUXRUZXN0QnJvd3Nl
ci93ZWJwYWdlLmNwcDoKKyAgICAgICAgKiBRdFRlc3RCcm93c2VyL3dlYnZpZXcuY3BwOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvSW5qZWN0ZWRCdW5kbGUu
cHJvOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3Lmg6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9xdC9FdmVudFNlbmRlclByb3h5UXQuY3BwOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwOgorICAgICAgICAo
V1RSOjpQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIChXVFI6OlBs
YXRmb3JtV2ViVmlldzo6c2VuZEV2ZW50KToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3
Ojpwb3N0RXZlbnQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvcXQvV2ViS2l0VGVzdFJ1
bm5lci5wcm86CisKIDIwMTEtMDktMjcgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgQWRkIEthdXN0dWJoIEF0cmF3YWxrYXIgdG8gdGhlIGxpc3Qgb2YgY29udHJp
YnV0b3JzLgpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWUucHJv
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLnBy
bwkocmV2aXNpb24gOTYxNTIpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVy
VHJlZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSwxMyBAQAogVEFSR0VUID0gRHVtcFJl
bmRlclRyZWUKIENPTkZJRyAgLT0gYXBwX2J1bmRsZQotIWlzRXF1YWwoUVRfQVJDSCxzaDQpOiBD
T05GSUcgKz0gdWl0b29scworIWlzRXF1YWwoUVRfQVJDSCxzaDQpIHsKKyAgICBncmVhdGVyVGhh
bihRVF9NQUpPUl9WRVJTSU9OLCA0KTppc0VtcHR5KFFULnVpdG9vbHMubmFtZSkgeworICAgICAg
ICBtZXNzYWdlKCJRdFVpVG9vbHMgbGlicmFyeSBub3QgZm91bmQuIFFXaWRnZXQgcGx1Z2luIGxv
YWRpbmcgd2lsbCBiZSBkaXNhYmxlZCIpCisgICAgICAgIERFRklORVMgKz0gUVRfTk9fVUlUT09M
UworICAgIH0gZWxzZSB7CisgICAgICAgIENPTkZJRyArPSB1aXRvb2xzCisgICAgfQorfQogCiBC
QVNFRElSID0gJCRQV0QvLi4vCiBpc0VtcHR5KE9VVFBVVF9ESVIpOiBPVVRQVVRfRElSID0gLi4v
Li4vLi4KQEAgLTIwLDYgKzI3LDcgQEAgdW5peDohbWFjOiFzeW1iaWFuOiFlbWJlZGRlZCB7CiAK
IFFUID0gY29yZSBndWkgbmV0d29yayB0ZXN0bGliCiBtYWN4OiBRVCArPSB4bWwKK2dyZWF0ZXJU
aGFuKFFUX01BSk9SX1ZFUlNJT04sIDQpOiBRVCArPSB3aWRnZXRzIHByaW50c3VwcG9ydAogCiBI
RUFERVJTID0gJCRCQVNFRElSL1dvcmtRdWV1ZS5oIFwKICAgICBEdW1wUmVuZGVyVHJlZVF0Lmgg
XApAQCAtNTQsNCArNjIsNCBAQCB3aW5jZSo6IHsKIERFRklORVMgKz0gVVNFX1NZU1RFTV9NQUxM
T0M9MQogREVGSU5FUyAtPSBRVF9BU0NJSV9DQVNUX1dBUk5JTkdTCiAKLVJFU09VUkNFUyA9IER1
bXBSZW5kZXJUcmVlLnFyYwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK1JFU09VUkNFUyA9
IER1bXBSZW5kZXJUcmVlLnFyYwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvSW1hZ2VE
aWZmLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9JbWFnZURpZmYu
cHJvCShyZXZpc2lvbiA5NjE1MikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0ltYWdlRGlm
Zi5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTcsNiArNyw3IEBAIElOQ0xVREVQQVRIICs9IC4uLy4u
Ly4uL1NvdXJjZS9KYXZhU2NyaXAKIERFU1RESVIgPSAkJE9VVFBVVF9ESVIvYmluCiAKIFFUID0g
Y29yZSBndWkKK2dyZWF0ZXJUaGFuKFFUX01BSk9SX1ZFUlNJT04sIDQpOiBRVCArPSB3aWRnZXRz
CiAKIFNPVVJDRVMgPSBJbWFnZURpZmYuY3BwCiAKSW5kZXg6IFRvb2xzL01pbmlCcm93c2VyL3F0
L0Jyb3dzZXJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93
c2VyVmlldy5jcHAJKHJldmlzaW9uIDk2MTUyKQorKysgVG9vbHMvTWluaUJyb3dzZXIvcXQvQnJv
d3NlclZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8
cXRvdWNod2VicGFnZS5oPgogI2luY2x1ZGUgPHF3ZWJuYXZpZ2F0aW9uY29udHJvbGxlci5oPgog
Ci1Ccm93c2VyVmlldzo6QnJvd3NlclZpZXcoYm9vbCB1c2VUb3VjaFdlYlZpZXcsIFFXaWRnZXQq
IHBhcmVudCkKK0Jyb3dzZXJWaWV3OjpCcm93c2VyVmlldyhib29sIHVzZVRvdWNoV2ViVmlldywg
UVdpbmRvdyogcGFyZW50KQogICAgIDogUVNHQ2FudmFzKHBhcmVudCkKICAgICAsIG1faXRlbSgw
KQogewpJbmRleDogVG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlclZpZXcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyVmlldy5oCShyZXZpc2lvbiA5NjE1MikK
KysrIFRvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDYgKzI5LDcgQEAKICNpZm5kZWYgQnJvd3NlclZpZXdfaAogI2RlZmluZSBCcm93c2VyVmll
d19oCiAKKyNpbmNsdWRlIDxRQWN0aW9uPgogI2luY2x1ZGUgPFF0RGVjbGFyYXRpdmUvcXNnY2Fu
dmFzLmg+CiAjaW5jbHVkZSA8cXdlYmtpdHR5cGVzLmg+CiAKQEAgLTQwLDcgKzQxLDcgQEAgY2xh
c3MgQnJvd3NlclZpZXcgOiBwdWJsaWMgUVNHQ2FudmFzIHsKICAgICBRX09CSkVDVAogCiBwdWJs
aWM6Ci0gICAgQnJvd3NlclZpZXcoYm9vbCB1c2VUb3VjaFdlYlZpZXcsIFFXaWRnZXQqIHBhcmVu
dCA9IDApOworICAgIEJyb3dzZXJWaWV3KGJvb2wgdXNlVG91Y2hXZWJWaWV3LCBRV2luZG93KiBw
YXJlbnQgPSAwKTsKICAgICB2aXJ0dWFsIH5Ccm93c2VyVmlldygpOwogCiAgICAgdm9pZCBsb2Fk
KGNvbnN0IFFTdHJpbmcmKTsKSW5kZXg6IFRvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5k
b3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cu
Y3BwCShyZXZpc2lvbiA5NjE1MikKKysrIFRvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5k
b3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0MiwzNiBAQCBzdGF0aWMgUVdLUGFnZSog
bmV3UGFnZUZ1bmN0aW9uKFFXS1BhZ2UqCiB9CiAjZW5kaWYKIAorV2luZG93V3JhcHBlcjo6V2lu
ZG93V3JhcHBlcihRV2luZG93KiB3aW5kb3csIFFXaWRnZXQqIHdpZGdldCkKKyAgICA6IFFXaWRn
ZXQod2lkZ2V0KQorICAgICwgbV93aW5kb3cod2luZG93KQoreworICAgIC8vIFRocm90dGxlIHJl
c2l6ZSBldmVudHMgYSBiaXQKKyAgICBtX3Jlc2l6ZVRpbWVyLnNldEludGVydmFsKDE2KTsKKyAg
ICBtX3Jlc2l6ZVRpbWVyLnNldFNpbmdsZVNob3QodHJ1ZSk7CisgICAgY29ubmVjdCgmbV9yZXNp
emVUaW1lciwgU0lHTkFMKHRpbWVvdXQoKSksIHRoaXMsIFNMT1QoZG9SZXNpemUoKSkpOworICAg
IG1fd2luZG93LT5zZXRXaW5kb3dGbGFncyhRdDo6RnJhbWVsZXNzV2luZG93SGludCk7Cit9CisK
K3ZvaWQgV2luZG93V3JhcHBlcjo6c2hvd0V2ZW50KFFTaG93RXZlbnQqIGV2ZW50KQoreworICAg
IFFXaWRnZXQ6OnNob3dFdmVudChldmVudCk7CisgICAgbV93aW5kb3ctPnNldFBhcmVudCh3aW5k
b3coKS0+d2luZG93SGFuZGxlKCkpOworICAgIG1fd2luZG93LT5zaG93KCk7Cit9CisKK3ZvaWQg
V2luZG93V3JhcHBlcjo6cmVzaXplRXZlbnQoUVJlc2l6ZUV2ZW50KiBldmVudCkKK3sKKyAgICBR
V2lkZ2V0OjpyZXNpemVFdmVudChldmVudCk7CisgICAgaWYgKCFtX3Jlc2l6ZVRpbWVyLmlzQWN0
aXZlKCkpCisgICAgICAgIG1fcmVzaXplVGltZXIuc3RhcnQoKTsKK30KKwordm9pZCBXaW5kb3dX
cmFwcGVyOjpkb1Jlc2l6ZSgpCit7CisgICAgbV93aW5kb3ctPnNldEdlb21ldHJ5KFFSZWN0KG1h
cFRvKHdpbmRvdygpLCBRUG9pbnQoMCwgMCkpLCBzaXplKCkpKTsKK30KKwogQnJvd3NlcldpbmRv
dzo6QnJvd3NlcldpbmRvdyhXaW5kb3dPcHRpb25zKiBvcHRpb25zKQogICAgIDogbV91cmxMb2Fk
ZXIoMCkKICAgICAsIG1fYnJvd3NlcigwKQpAQCAtNjksOCArOTksOCBAQCBCcm93c2VyV2luZG93
OjpCcm93c2VyV2luZG93KFdpbmRvd09wdGlvCiAgICAgICAgIGNvbm5lY3QoZGVza3RvcFdlYlZp
ZXcsIFNJR05BTChsaW5rSG92ZXJlZChRVXJsLCBRU3RyaW5nKSksIHRoaXMsIFNMT1Qob25MaW5r
SG92ZXJlZChRVXJsLCBRU3RyaW5nKSkpOwogICAgIH0KIAotICAgIHRoaXMtPnNldENlbnRyYWxX
aWRnZXQobV9icm93c2VyKTsKLSAgICBtX2Jyb3dzZXItPnNldEZvY3VzKFF0OjpPdGhlckZvY3Vz
UmVhc29uKTsKKyAgICBzZXRDZW50cmFsV2lkZ2V0KG5ldyBXaW5kb3dXcmFwcGVyKG1fYnJvd3Nl
ciwgdGhpcykpOworICAgIGNlbnRyYWxXaWRnZXQoKS0+c2V0Rm9jdXMoUXQ6Ok90aGVyRm9jdXNS
ZWFzb24pOwogCiAgICAgUU1lbnUqIGZpbGVNZW51ID0gbWVudUJhcigpLT5hZGRNZW51KCImRmls
ZSIpOwogICAgIGZpbGVNZW51LT5hZGRBY3Rpb24oIk5ldyBXaW5kb3ciLCB0aGlzLCBTTE9UKG5l
d1dpbmRvdygpKSwgUUtleVNlcXVlbmNlOjpOZXcpOwpAQCAtMTg3LDcgKzIxNyw3IEBAIHZvaWQg
QnJvd3NlcldpbmRvdzo6b25Mb2FkUHJvZ3Jlc3NDaGFuZ2UKIHZvaWQgQnJvd3NlcldpbmRvdzo6
dXJsQ2hhbmdlZChjb25zdCBRVXJsJiB1cmwpCiB7CiAgICAgbV9hZGRyZXNzQmFyLT5zZXRUZXh0
KHVybC50b1N0cmluZygpKTsKLSAgICBtX2Jyb3dzZXItPnNldEZvY3VzKCk7CisgICAgbV9icm93
c2VyLT5yZXF1ZXN0QWN0aXZhdGVXaW5kb3coKTsKICAgICBtX2Jyb3dzZXItPnZpZXcoKS0+c2V0
Rm9jdXModHJ1ZSk7CiB9CiAKQEAgLTMyMCw1ICszNTAsNCBAQCBCcm93c2VyV2luZG93Ojp+QnJv
d3NlcldpbmRvdygpCiB7CiAgICAgZGVsZXRlIG1fdXJsTG9hZGVyOwogICAgIGRlbGV0ZSBtX2Fk
ZHJlc3NCYXI7Ci0gICAgZGVsZXRlIG1fYnJvd3NlcjsKIH0KSW5kZXg6IFRvb2xzL01pbmlCcm93
c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9NaW5pQnJvd3Nlci9x
dC9Ccm93c2VyV2luZG93LmgJKHJldmlzaW9uIDk2MTUyKQorKysgVG9vbHMvTWluaUJyb3dzZXIv
cXQvQnJvd3NlcldpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMCArMzMsMjkgQEAKIAog
I2luY2x1ZGUgIk1pbmlCcm93c2VyQXBwbGljYXRpb24uaCIKICNpbmNsdWRlIDxRU3RyaW5nTGlz
dD4KLSNpbmNsdWRlIDxRdEd1aT4KKyNpbmNsdWRlIDxRVGltZXI+CiAKIGNsYXNzIFVybExvYWRl
cjsKIAorY2xhc3MgV2luZG93V3JhcHBlciA6IHB1YmxpYyBRV2lkZ2V0Cit7CisgICAgUV9PQkpF
Q1QKKworcHVibGljOgorICAgIFdpbmRvd1dyYXBwZXIoUVdpbmRvdyogd2luZG93LCBRV2lkZ2V0
KiB3aWRnZXQgPSAwKTsKKworcHJvdGVjdGVkOgorICAgIHZvaWQgc2hvd0V2ZW50KFFTaG93RXZl
bnQqIGV2ZW50KTsKKyAgICB2b2lkIHJlc2l6ZUV2ZW50KFFSZXNpemVFdmVudCogZXZlbnQpOwor
Citwcml2YXRlIHNsb3RzOgorICAgIHZvaWQgZG9SZXNpemUoKTsKKworcHJpdmF0ZToKKyAgICBR
V2luZG93KiBtX3dpbmRvdzsKKyAgICBRVGltZXIgbV9yZXNpemVUaW1lcjsKK307CisKIGNsYXNz
IEJyb3dzZXJXaW5kb3cgOiBwdWJsaWMgUU1haW5XaW5kb3cgewogICAgIFFfT0JKRUNUCiAKSW5k
ZXg6IFRvb2xzL01pbmlCcm93c2VyL3F0L01pbmlCcm93c2VyLnBybwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9NaW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nlci5wcm8JKHJldmlzaW9uIDk2MTUyKQorKysg
VG9vbHMvTWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw2ICszMiw3IEBAIERFU1RESVIgPSAkJE9VVFBVVF9ESVIvYmluCiAKIFFUICs9IG5ldHdvcmsg
ZGVjbGFyYXRpdmUKIG1hY3g6UVQrPXhtbAorZ3JlYXRlclRoYW4oUVRfTUFKT1JfVkVSU0lPTiwg
NCk6IFFUICs9IHdpZGdldHMKIAogbGludXgtKiB7CiAgICAgIyBGcm9tIENyZWF0b3IncyBzcmMv
cnBhdGgucHJpOgpJbmRleDogVG9vbHMvTWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXJBcHBsaWNh
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL01pbmlCcm93c2VyL3F0L01pbmlCcm93c2VyQXBw
bGljYXRpb24uaAkocmV2aXNpb24gOTYxNTIpCisrKyBUb29scy9NaW5pQnJvd3Nlci9xdC9NaW5p
QnJvd3NlckFwcGxpY2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEwICsyOSwyMCBAQAog
I2lmbmRlZiBNaW5pQnJvd3NlckFwcGxpY2F0aW9uX2gKICNkZWZpbmUgTWluaUJyb3dzZXJBcHBs
aWNhdGlvbl9oCiAKKyNpbmNsdWRlIDxRQXBwbGljYXRpb24+CisjaW5jbHVkZSA8UUZpbGVEaWFs
b2c+CiAjaW5jbHVkZSA8UUhhc2g+CisjaW5jbHVkZSA8UUxhYmVsPgorI2luY2x1ZGUgPFFMaW5l
RWRpdD4KKyNpbmNsdWRlIDxRTWFpbldpbmRvdz4KKyNpbmNsdWRlIDxRTWVudT4KKyNpbmNsdWRl
IDxRTWVudUJhcj4KKyNpbmNsdWRlIDxRU2hvcnRjdXQ+CisjaW5jbHVkZSA8UVN0YXR1c0Jhcj4K
ICNpbmNsdWRlIDxRU3RyaW5nTGlzdD4KKyNpbmNsdWRlIDxRVG9vbEJhcj4KICNpbmNsdWRlIDxR
VG91Y2hFdmVudD4KLSNpbmNsdWRlIDxRdEd1aT4KKyNpbmNsdWRlIDxRVXJsPgogCiBzdHJ1Y3Qg
V2luZG93T3B0aW9ucyB7CiAgICAgV2luZG93T3B0aW9ucygpCkluZGV4OiBUb29scy9NaW5pQnJv
d3Nlci9xdC9tYWluLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9NaW5pQnJvd3Nlci9xdC9tYWlu
LmNwcAkocmV2aXNpb24gOTYxNTIpCisrKyBUb29scy9NaW5pQnJvd3Nlci9xdC9tYWluLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIlVybExvYWRlci5oIgog
I2luY2x1ZGUgPFFMYXRpbjFTdHJpbmc+CiAjaW5jbHVkZSA8UVJlZ0V4cD4KLSNpbmNsdWRlIDxR
dEd1aT4KIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogewpJbmRleDogVG9vbHMv
UXRUZXN0QnJvd3Nlci9RdFRlc3RCcm93c2VyLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9RdFRl
c3RCcm93c2VyL1F0VGVzdEJyb3dzZXIucHJvCShyZXZpc2lvbiA5NjE1MikKKysrIFRvb2xzL1F0
VGVzdEJyb3dzZXIvUXRUZXN0QnJvd3Nlci5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0
LDE0IEBAIEhFQURFUlMgKz0gXAogICAgIGZwc3RpbWVyLmggXAogICAgIGNvb2tpZWphci5oCiAK
LSFpc0VxdWFsKFFUX0FSQ0gsc2g0KTogQ09ORklHICs9IHVpdG9vbHMKKyFpc0VxdWFsKFFUX0FS
Q0gsc2g0KSB7CisgICAgZ3JlYXRlclRoYW4oUVRfTUFKT1JfVkVSU0lPTiwgNCk6aXNFbXB0eShR
VC51aXRvb2xzLm5hbWUpIHsKKyAgICAgICAgbWVzc2FnZSgiUXRVaVRvb2xzIGxpYnJhcnkgbm90
IGZvdW5kLiBRV2lkZ2V0IHBsdWdpbiBsb2FkaW5nIHdpbGwgYmUgZGlzYWJsZWQiKQorICAgICAg
ICBERUZJTkVTICs9IFFUX05PX1VJVE9PTFMKKyAgICB9IGVsc2UgeworICAgICAgICBDT05GSUcg
Kz0gdWl0b29scworICAgIH0KK30KIAogaXNFbXB0eShPVVRQVVRfRElSKTogT1VUUFVUX0RJUiA9
IC4uLy4uCiBpbmNsdWRlKC4uLy4uL1NvdXJjZS9XZWJLaXQucHJpKQpAQCAtMzUsNiArNDIsNyBA
QCBERVNURElSID0gJCRPVVRQVVRfRElSL2JpbgogCiBRVCArPSBuZXR3b3JrCiBtYWN4OlFUKz14
bWwKK2dyZWF0ZXJUaGFuKFFUX01BSk9SX1ZFUlNJT04sIDQpOiBRVCArPSBwcmludHN1cHBvcnQK
IAogdW5peDohbWFjOiFzeW1iaWFuOiFlbWJlZGRlZCB7CiAgICAgQ09ORklHICs9IGxpbmtfcGtn
Y29uZmlnCkluZGV4OiBUb29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNwcAkocmV2aXNp
b24gOTYxNTIpCisrKyBUb29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzYsNyArMzYsMjUgQEAKICNpbmNsdWRlICJjb29raWVqYXIuaCIKICNp
bmNsdWRlICJ1cmxsb2FkZXIuaCIKIAorI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KKyNpbmNsdWRl
IDxRQ2hlY2tCb3g+CisjaW5jbHVkZSA8UUNvbWJvQm94PgogI2luY2x1ZGUgPFFDb3JlQXBwbGlj
YXRpb24+CisjaW5jbHVkZSA8UURpYWxvZ0J1dHRvbkJveD4KKyNpbmNsdWRlIDxRSW5wdXREaWFs
b2c+CisjaW5jbHVkZSA8UUxhYmVsPgorI2lmbmRlZiBRVF9OT19MSU5FRURJVAorI2luY2x1ZGUg
PFFMaW5lRWRpdD4KKyNlbmRpZgorI2lmbmRlZiBRVF9OT19TSE9SVENVVAorI2luY2x1ZGUgPFFN
ZW51QmFyPgorI2VuZGlmCisjaW5jbHVkZSA8UVNsaWRlcj4KKyNpbmNsdWRlIDxRU3BsaXR0ZXI+
CisjaW5jbHVkZSA8UVN0YXR1c0Jhcj4KKyNpbmNsdWRlIDxRVG9vbEJ1dHRvbj4KKyNpbmNsdWRl
IDxRVG9vbFRpcD4KKyNpbmNsdWRlIDxRVkJveExheW91dD4KIAogI2lmICFkZWZpbmVkKFFUX05P
X0ZJTEVESUFMT0cpICYmICFkZWZpbmVkKFFUX05PX01FU1NBR0VCT1gpCiAjaW5jbHVkZSA8UUZp
bGVEaWFsb2c+CkluZGV4OiBUb29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5oCShyZXZpc2lv
biA5NjE1MikKKysrIFRvb2xzL1F0VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzMsNyArMzMsNiBAQAogI2lmbmRlZiBsYXVuY2hlcndpbmRvd19oCiAjZGVm
aW5lIGxhdW5jaGVyd2luZG93X2gKIAotI2luY2x1ZGUgPFF0R3VpPgogI2luY2x1ZGUgPFF0TmV0
d29yay9RTmV0d29ya1JlcXVlc3Q+CiAKICNpZiBkZWZpbmVkKFFUX0NPTkZJR1VSRURfV0lUSF9P
UEVOR0wpCkluZGV4OiBUb29scy9RdFRlc3RCcm93c2VyL2xvY2F0aW9uZWRpdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1F0VGVzdEJyb3dzZXIvbG9jYXRpb25lZGl0LmgJKHJldmlzaW9uIDk2MTUy
KQorKysgVG9vbHMvUXRUZXN0QnJvd3Nlci9sb2NhdGlvbmVkaXQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzEsNyArMzEsMTIgQEAKICNpbmNsdWRlIDxxY29uZmlnLmg+CiAKICNpZm5kZWYgUVRfTk9f
SU5QVVRESUFMT0cKLSNpbmNsdWRlIDxRdEd1aT4KKyNpbmNsdWRlIDxRQXBwbGljYXRpb24+Cisj
aW5jbHVkZSA8UUljb24+CisjaW5jbHVkZSA8UUxhYmVsPgorI2luY2x1ZGUgPFFMaW5lRWRpdD4K
KyNpbmNsdWRlIDxRU3R5bGVPcHRpb25GcmFtZVYzPgorI2luY2x1ZGUgPFFUaW1lcj4KIAogY2xh
c3MgTG9jYXRpb25FZGl0IDogcHVibGljIFFMaW5lRWRpdCB7CiAgICAgUV9PQkpFQ1QKSW5kZXg6
IFRvb2xzL1F0VGVzdEJyb3dzZXIvbWFpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvUXRUZXN0
QnJvd3Nlci9tYWluLmNwcAkocmV2aXNpb24gOTYxNTIpCisrKyBUb29scy9RdFRlc3RCcm93c2Vy
L21haW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxMyArMzUsMTIgQEAKIAogV2luZG93T3B0
aW9ucyB3aW5kb3dPcHRpb25zOwogCi0KKyNpbmNsdWRlIDxRQXBwbGljYXRpb24+CiAjaW5jbHVk
ZSA8UURpcj4KICNpbmNsdWRlIDxRRmlsZT4KICNpbmNsdWRlIDxRRmlsZUluZm8+CiAjaW5jbHVk
ZSA8UUZvbnREYXRhYmFzZT4KIAotCiAjaWYgZGVmaW5lZChRX1dTX1gxMSkKICNpbmNsdWRlIDxm
b250Y29uZmlnL2ZvbnRjb25maWcuaD4KICNlbmRpZgpJbmRleDogVG9vbHMvUXRUZXN0QnJvd3Nl
ci9tYWlud2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9RdFRlc3RCcm93c2VyL21haW53
aW5kb3cuY3BwCShyZXZpc2lvbiA5NjE1MikKKysrIFRvb2xzL1F0VGVzdEJyb3dzZXIvbWFpbndp
bmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDE0IEBACiAjaW5jbHVkZSAibG9j
YXRpb25lZGl0LmgiCiAjaW5jbHVkZSAidXRpbHMuaCIKIAorI2luY2x1ZGUgPFFBY3Rpb24+Cisj
aWZuZGVmIFFUX05PX0lOUFVURElBTE9HCisjaW5jbHVkZSA8UUNvbXBsZXRlcj4KKyNlbmRpZgor
I2lmbmRlZiBRVF9OT19GSUxFRElBTE9HCisjaW5jbHVkZSA8UUZpbGVEaWFsb2c+CisjZW5kaWYK
KwogTWFpbldpbmRvdzo6TWFpbldpbmRvdygpCiAgICAgOiBtX3BhZ2UobmV3IFdlYlBhZ2UodGhp
cykpCiAgICAgLCBtX3Rvb2xCYXIoMCkKSW5kZXg6IFRvb2xzL1F0VGVzdEJyb3dzZXIvbWFpbndp
bmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1F0VGVzdEJyb3dzZXIvbWFpbndpbmRvdy5oCShy
ZXZpc2lvbiA5NjE1MikKKysrIFRvb2xzL1F0VGVzdEJyb3dzZXIvbWFpbndpbmRvdy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw5ICszMywxMiBAQAogI2lmbmRlZiBtYWlud2luZG93X2gKICNkZWZp
bmUgbWFpbndpbmRvd19oCiAKLSNpbmNsdWRlIDxRdEd1aT4KICNpbmNsdWRlICJ3ZWJwYWdlLmgi
CiAKKyNpbmNsdWRlIDxRTWFpbldpbmRvdz4KKyNpbmNsdWRlIDxRU3RyaW5nTGlzdE1vZGVsPgor
I2luY2x1ZGUgPFFUb29sQmFyPgorCiBjbGFzcyBMb2NhdGlvbkVkaXQ7CiAKIGNsYXNzIE1haW5X
aW5kb3cgOiBwdWJsaWMgUU1haW5XaW5kb3cgewpJbmRleDogVG9vbHMvUXRUZXN0QnJvd3Nlci93
ZWJpbnNwZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9RdFRlc3RCcm93c2VyL3dlYmluc3Bl
Y3Rvci5oCShyZXZpc2lvbiA5NjE1MikKKysrIFRvb2xzL1F0VGVzdEJyb3dzZXIvd2ViaW5zcGVj
dG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDYgQEAKICNpZm5kZWYgd2ViaW5zcGVj
dG9yX2gKICNkZWZpbmUgd2ViaW5zcGVjdG9yX2gKIAotI2luY2x1ZGUgPFF0R3VpPgogI2luY2x1
ZGUgInF3ZWJpbnNwZWN0b3IuaCIKIAogY2xhc3MgV2ViSW5zcGVjdG9yIDogcHVibGljIFFXZWJJ
bnNwZWN0b3IgewpJbmRleDogVG9vbHMvUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9RdFRlc3RCcm93c2VyL3dlYnBhZ2UuY3BwCShyZXZpc2lvbiA5NjE1MikK
KysrIFRvb2xzL1F0VGVzdEJyb3dzZXIvd2VicGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDkgKzM0LDE4IEBACiAKICNpbmNsdWRlICJsYXVuY2hlcndpbmRvdy5oIgogCisjaW5jbHVkZSA8
UUFjdGlvbj4KKyNpbmNsdWRlIDxRQXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UUF1dGhlbnRpY2F0
b3I+CisjaWZuZGVmIFFUX05PX0RFU0tUT1BTRVJWSUNFUwogI2luY2x1ZGUgPFFEZXNrdG9wU2Vy
dmljZXM+Ci0jaW5jbHVkZSA8UXRHdWk+CisjZW5kaWYKKyNpbmNsdWRlIDxRRGlhbG9nQnV0dG9u
Qm94PgorI2luY2x1ZGUgPFFMYWJlbD4KKyNpbmNsdWRlIDxRTGF5b3V0PgorI2lmbmRlZiBRVF9O
T19MSU5FRURJVAorI2luY2x1ZGUgPFFMaW5lRWRpdD4KKyNlbmRpZgogI2luY2x1ZGUgPFF0TmV0
d29yay9RTmV0d29ya1JlcGx5PgogI2luY2x1ZGUgPFF0TmV0d29yay9RTmV0d29ya1JlcXVlc3Q+
CiAjaW5jbHVkZSA8UXROZXR3b3JrL1FOZXR3b3JrUHJveHk+CkluZGV4OiBUb29scy9RdFRlc3RC
cm93c2VyL3dlYnZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1F0VGVzdEJyb3dzZXIvd2Vi
dmlldy5jcHAJKHJldmlzaW9uIDk2MTUyKQorKysgVG9vbHMvUXRUZXN0QnJvd3Nlci93ZWJ2aWV3
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsMjIgQEAKIAogI2luY2x1ZGUgIndlYnZp
ZXcuaCIKIAotI2luY2x1ZGUgPFF0R3VpPgorI2luY2x1ZGUgPFFBY3Rpb24+CiAjaW5jbHVkZSA8
UUdyYXBoaWNzU2NlbmU+CisjaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmVDb250ZXh0TWVudUV2ZW50
PgorI2luY2x1ZGUgPFFHcmFwaGljc1NjZW5lTW91c2VFdmVudD4KKyNpbmNsdWRlIDxRTWVudT4K
KyNpbmNsdWRlIDxRU2Nyb2xsQmFyPgorI2luY2x1ZGUgPFFUaW1lcj4KKworI2lmbmRlZiBRVF9O
T19BTklNQVRJT04KKyNpbmNsdWRlIDxRQWJzdHJhY3RBbmltYXRpb24+CisjaW5jbHVkZSA8UUFi
c3RyYWN0VHJhbnNpdGlvbj4KKyNpbmNsdWRlIDxRRmluYWxTdGF0ZT4KKyNpbmNsdWRlIDxRUHJv
cGVydHlBbmltYXRpb24+CisjaW5jbHVkZSA8UVN0YXRlPgorI2luY2x1ZGUgPFFTdGF0ZU1hY2hp
bmU+CisjZW5kaWYKIAogV2ViVmlld0dyYXBoaWNzQmFzZWQ6OldlYlZpZXdHcmFwaGljc0Jhc2Vk
KFFXaWRnZXQqIHBhcmVudCkKICAgICA6IFFHcmFwaGljc1ZpZXcocGFyZW50KQpJbmRleDogVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCShyZXZpc2lvbiA5NjE1MikKKysr
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDEyICsyNywxMCBAQAogI2RlZmluZSBQbGF0Zm9ybVdlYlZpZXdfaAogCiAjaWYgZGVm
aW5lZChCVUlMRElOR19RVF9fKQotbmFtZXNwYWNlIFdUUiB7Ci1jbGFzcyBXZWJWaWV3OwotfQot
dHlwZWRlZiBXVFI6OldlYlZpZXcqIFBsYXRmb3JtV0tWaWV3OwotY2xhc3MgUU1haW5XaW5kb3c7
Ci10eXBlZGVmIFFNYWluV2luZG93KiBQbGF0Zm9ybVdpbmRvdzsKK2NsYXNzIFFEZXNrdG9wV2Vi
VmlldzsKK3R5cGVkZWYgUURlc2t0b3BXZWJWaWV3KiBQbGF0Zm9ybVdLVmlldzsKK2NsYXNzIFFT
R0NhbnZhczsKK3R5cGVkZWYgUVNHQ2FudmFzKiBQbGF0Zm9ybVdpbmRvdzsKICNlbGlmIGRlZmlu
ZWQoX19BUFBMRV9fKSAmJiBfX0FQUExFX18KICNpZiBfX09CSkNfXwogQGNsYXNzIFdLVmlldzsK
SW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvSW5qZWN0ZWRC
dW5kbGUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvcXQvSW5qZWN0ZWRCdW5kbGUucHJvCShyZXZpc2lvbiA5NjE1MikKKysrIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvSW5qZWN0ZWRCdW5kbGUucHJvCSh3b3Jr
aW5nIGNvcHkpCkBAIC05LDYgKzksNyBAQCBDT05GSUcoc3RhbmRhbG9uZV9wYWNrYWdlKSB7CiB9
CiAKIFFUICs9IGRlY2xhcmF0aXZlCitncmVhdGVyVGhhbihRVF9NQUpPUl9WRVJTSU9OLCA0KTog
UVQgKz0gd2lkZ2V0cwogCiBHRU5FUkFURURfU09VUkNFU19ESVIgPSAuLi8uLi9nZW5lcmF0ZWQK
IApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9FdmVudFNlbmRlclByb3h5UXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvRXZlbnRTZW5kZXJQcm94
eVF0LmNwcAkocmV2aXNpb24gOTYxNTIpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL3F0L0V2
ZW50U2VuZGVyUHJveHlRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgogI2luY2x1ZGUgIlRlc3RDb250cm9sbGVyLmgi
CisjaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50PgogI2luY2x1ZGUgPFFLZXlFdmVu
dD4KICNpbmNsdWRlIDxRdFRlc3QvUXRUZXN0PgogI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlUHJp
dmF0ZS5oPgpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdlYlZpZXdR
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9QbGF0Zm9ybVdl
YlZpZXdRdC5jcHAJKHJldmlzaW9uIDk2MTUyKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9x
dC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDQyICsyOCwyMiBA
QAogCiAjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCiAjaW5jbHVkZSAicWRlc2t0b3B3ZWJ2
aWV3LmgiCisKKyNpbmNsdWRlIDxRQXBwbGljYXRpb24+CiAjaW5jbHVkZSA8UXREZWNsYXJhdGl2
ZS9xc2djYW52YXMuaD4KLSNpbmNsdWRlIDxRdEd1aT4KIAogbmFtZXNwYWNlIFdUUiB7CiAKLWNs
YXNzIFdlYlZpZXcgOiBwdWJsaWMgUVNHQ2FudmFzIHsKLXB1YmxpYzoKLSAgICBXZWJWaWV3KFdL
Q29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYpOwotCi0gICAgUURlc2t0b3BXZWJWaWV3KiB3a1Zp
ZXcoKSBjb25zdCB7IHJldHVybiBtX2l0ZW07IH0KLSAgICBXS1BhZ2VSZWYgcGFnZVJlZigpIGNv
bnN0IHsgcmV0dXJuIG1faXRlbS0+cGFnZVJlZigpOyB9Ci0KLSAgICB2aXJ0dWFsIH5XZWJWaWV3
KCkgeyBkZWxldGUgbV9pdGVtOyB9Ci0KLXByaXZhdGU6Ci0gICAgUURlc2t0b3BXZWJWaWV3KiBt
X2l0ZW07Ci19OwotCi1XZWJWaWV3OjpXZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBX
S1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCi0gICAgOiBtX2l0ZW0obmV3IFFEZXNrdG9wV2Vi
Vmlldyhjb250ZXh0UmVmLCBwYWdlR3JvdXBSZWYsIHJvb3RJdGVtKCkpKQotewotICAgIG1faXRl
bS0+c2V0V2lkdGgoODAwKTsKLSAgICBtX2l0ZW0tPnNldEhlaWdodCg2MDApOwotfQotCiBQbGF0
Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQ
YWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQotICAgIDogbV92aWV3KG5ldyBXZWJWaWV3KGNvbnRl
eHRSZWYsIHBhZ2VHcm91cFJlZikpCi0gICAgLCBtX3dpbmRvdyhuZXcgUU1haW5XaW5kb3coKSkK
KyAgICA6IG1fdmlldyhuZXcgUURlc2t0b3BXZWJWaWV3KGNvbnRleHRSZWYsIHBhZ2VHcm91cFJl
ZikpCisgICAgLCBtX3dpbmRvdyhuZXcgUVNHQ2FudmFzKQogewotICAgIG1fdmlldy0+c2V0UGFy
ZW50KG1fd2luZG93KTsKLSAgICBtX3dpbmRvdy0+c2V0Q2VudHJhbFdpZGdldChtX3ZpZXcpOwor
ICAgIG1fdmlldy0+c2V0UGFyZW50KG1fd2luZG93LT5yb290SXRlbSgpKTsKICAgICBtX3dpbmRv
dy0+c2V0R2VvbWV0cnkoMCwgMCwgODAwLCA2MDApOwogCiAgICAgUUZvY3VzRXZlbnQgZXYoUUV2
ZW50OjpXaW5kb3dBY3RpdmF0ZSk7CiAgICAgUUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQobV92aWV3
LCAmZXYpOwotICAgIG1fdmlldy0+d2tWaWV3KCktPnNldEZvY3VzKFF0OjpPdGhlckZvY3VzUmVh
c29uKTsKKyAgICBtX3ZpZXctPnNldEZvY3VzKFF0OjpPdGhlckZvY3VzUmVhc29uKTsKIH0KIAog
UGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3KCkKQEAgLTEwNCwxMiArODQsMTIgQEAg
dm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNldFdpbmRvd0ZyYW1lKFdLUgogCiBib29sIFBsYXRmb3Jt
V2ViVmlldzo6c2VuZEV2ZW50KFFFdmVudCogZXZlbnQpCiB7Ci0gICAgcmV0dXJuIFFDb3JlQXBw
bGljYXRpb246OnNlbmRFdmVudChtX3ZpZXctPndrVmlldygpLCBldmVudCk7CisgICAgcmV0dXJu
IFFDb3JlQXBwbGljYXRpb246OnNlbmRFdmVudChtX3ZpZXcsIGV2ZW50KTsKIH0KIAogdm9pZCBQ
bGF0Zm9ybVdlYlZpZXc6OnBvc3RFdmVudChRRXZlbnQqIGV2ZW50KQogewotICAgIFFDb3JlQXBw
bGljYXRpb246OnBvc3RFdmVudChtX3ZpZXctPndrVmlldygpLCBldmVudCk7CisgICAgUUNvcmVB
cHBsaWNhdGlvbjo6cG9zdEV2ZW50KG1fdmlldywgZXZlbnQpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXVFIKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvV2ViS2l0VGVzdFJ1bm5lci5w
cm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9XZWJLaXRUZXN0UnVu
bmVyLnBybwkocmV2aXNpb24gOTYxNTIpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1dl
YktpdFRlc3RSdW5uZXIucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBAIHVuaXg6
IW1hYzohc3ltYmlhbjohZW1iZWRkZWQgewogfQogCiBRVCA9IGNvcmUgZ3VpIG5ldHdvcmsgZGVj
bGFyYXRpdmUgdGVzdGxpYgorZ3JlYXRlclRoYW4oUVRfTUFKT1JfVkVSU0lPTiwgNCk6IFFUICs9
IHdpZGdldHMKIAogSEVBREVSUyA9IFwKICAgICAkJEJBU0VESVIvRXZlbnRTZW5kZXJQcm94eS5o
IFwKQEAgLTY4LDQgKzY5LDQgQEAgbGludXgtKiB7CiBpbmNsdWRlKC4uLy4uLy4uL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcmkpCiBwcmVwZW5kSmF2YVNjcmlwdENvcmVM
aWIoLi4vLi4vSmF2YVNjcmlwdENvcmUpCiAKLVJFU09VUkNFUyA9IFdlYktpdFRlc3RSdW5uZXIu
cXJjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorUkVTT1VSQ0VTID0gV2ViS2l0VGVzdFJ1
bm5lci5xcmMK
</data>

          </attachment>
      

    </bug>

</bugzilla>