<?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>52169</bug_id>
          
          <creation_ts>2011-01-10 13:17:51 -0800</creation_ts>
          <short_desc>[chromium] Call WebAutoFillClient instead of WebViewClient for autofill related callbacks</short_desc>
          <delta_ts>2011-01-10 16:27:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Abd-El-Malek">jam</reporter>
          <assigned_to name="John Abd-El-Malek">jam</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>331881</commentid>
    <comment_count>0</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-10 13:17:51 -0800</bug_when>
    <thetext>[chromium] Call WebAutoFillClient instead of WebViewClient for autofill related callbacks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331888</commentid>
    <comment_count>1</comment_count>
      <attachid>78442</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-10 13:25:56 -0800</bug_when>
    <thetext>Created attachment 78442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331889</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-10 13:27:27 -0800</bug_when>
    <thetext>Attachment 78442 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebKit/chromium/ChangeLog&apos;, u&apos;WebKit/chromium/public/WebView.h&apos;, u&apos;WebKit/chromium/public/WebViewClient.h&apos;, u&apos;WebKit/chromium/src/AutoFillPopupMenuClient.cpp&apos;, u&apos;WebKit/chromium/src/EditorClientImpl.cpp&apos;, u&apos;WebKit/chromium/src/WebViewImpl.cpp&apos;, u&apos;WebKit/chromium/src/WebViewImpl.h&apos;, u&apos;WebKit/chromium/src/WebWorkerBase.cpp&apos;]&quot; exit_code: 1
WebKit/chromium/src/WebViewImpl.h:370:  The parameter name &quot;client&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
WebKit/chromium/src/WebViewImpl.h:372:  The parameter name &quot;autoFillClient&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 7 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>331894</commentid>
    <comment_count>3</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-10 13:30:12 -0800</bug_when>
    <thetext>hey guys, this is part of the autofill cleanup in RenderView.  It does touch one function in the WebKit API (WebView::create), but I don&apos;t think it needs Darin&apos;s approval since he had already approved the interface that&apos;s used there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331895</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-10 13:30:16 -0800</bug_when>
    <thetext>Attachment 78442 did not build on chromium:
Build output: http://queues.webkit.org/results/7410129</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331897</commentid>
    <comment_count>5</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-10 13:32:05 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Attachment 78442 [details] did not build on chromium:
&gt; Build output: http://queues.webkit.org/results/7410129

build failure is because it&apos;s using an old version of Chrome.  that specific code now has an ifdef for WEBKIT_HAS_WEB_AUTO_FILL_CLIENT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331899</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-01-10 13:32:55 -0800</bug_when>
    <thetext>It&apos;s using the version specified in WebKit/chromium/DEPS.  You&apos;ll have to roll that as well in order to keep the build.webkit.org bots compiling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331903</commentid>
    <comment_count>7</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-10 13:41:17 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; It&apos;s using the version specified in WebKit/chromium/DEPS.  You&apos;ll have to roll that as well in order to keep the build.webkit.org bots compiling.

thanks, I didn&apos;t know about that. updating</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331904</commentid>
    <comment_count>8</comment_count>
      <attachid>78442</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-01-10 13:42:39 -0800</bug_when>
    <thetext>Comment on attachment 78442
Patch

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

Please update the chromium_rev line in WebKit/chromium/DEPS so the builds don&apos;t break.

&gt; WebKit/chromium/src/WebViewImpl.h:372
&gt; +    WebViewImpl(WebViewClient* client,
&gt; +                WebDevToolsAgentClient* devToolsClient,
&gt; +                WebAutoFillClient* autoFillClient);

WebKit style is to leave out the parameter names for params like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331907</commentid>
    <comment_count>9</comment_count>
      <attachid>78442</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-10 13:44:47 -0800</bug_when>
    <thetext>Comment on attachment 78442
Patch

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

&gt;&gt; WebKit/chromium/src/WebViewImpl.h:372
&gt;&gt; +                WebAutoFillClient* autoFillClient);
&gt; 
&gt; WebKit style is to leave out the parameter names for params like this.

right, I was trying to be consistent with the two other existing parameters though.  Should I change them as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331910</commentid>
    <comment_count>10</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-01-10 13:47:49 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 78442 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=78442&amp;action=review
&gt; 
&gt; &gt;&gt; WebKit/chromium/src/WebViewImpl.h:372
&gt; &gt;&gt; +                WebAutoFillClient* autoFillClient);
&gt; &gt; 
&gt; &gt; WebKit style is to leave out the parameter names for params like this.
&gt; 
&gt; right, I was trying to be consistent with the two other existing parameters though.  Should I change them as well?

Yeah - nuke &apos;em all so the style checker stays quiet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331929</commentid>
    <comment_count>11</comment_count>
      <attachid>78449</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-10 14:01:19 -0800</bug_when>
    <thetext>Created attachment 78449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331937</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-10 14:15:04 -0800</bug_when>
    <thetext>Attachment 78449 did not build on chromium:
Build output: http://queues.webkit.org/results/7384102</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331943</commentid>
    <comment_count>13</comment_count>
      <attachid>78449</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-01-10 14:30:56 -0800</bug_when>
    <thetext>Comment on attachment 78449
Patch

Looks like you have to edit TestShell.cpp as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331946</commentid>
    <comment_count>14</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-10 14:33:55 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 78449 [details])
&gt; Looks like you have to edit TestShell.cpp as well.

yep, on it.  I didn&apos;t know that many places used WebView::create, including some more in Chrome :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331952</commentid>
    <comment_count>15</comment_count>
      <attachid>78452</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-10 14:37:22 -0800</bug_when>
    <thetext>Created attachment 78452
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331966</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-10 14:53:46 -0800</bug_when>
    <thetext>Attachment 78452 did not build on chromium:
Build output: http://queues.webkit.org/results/7374117</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331967</commentid>
    <comment_count>17</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-10 14:56:19 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Attachment 78452 [details] did not build on chromium:
&gt; Build output: http://queues.webkit.org/results/7374117

this one is not my fault! looks like a buildbot error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332012</commentid>
    <comment_count>18</comment_count>
      <attachid>78464</attachid>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-10 15:52:57 -0800</bug_when>
    <thetext>Created attachment 78464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332014</commentid>
    <comment_count>19</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-10 15:53:26 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; Attachment 78452 [details] [details] did not build on chromium:
&gt; &gt; Build output: http://queues.webkit.org/results/7374117
&gt; 
&gt; this one is not my fault! looks like a buildbot error

James explained the problem, fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332019</commentid>
    <comment_count>20</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-01-10 15:57:39 -0800</bug_when>
    <thetext>I think this looks all right, gonna wait for the cr-linux bot to cycle just to be sure ui.gyp doesn&apos;t have any other nasty dependencies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332028</commentid>
    <comment_count>21</comment_count>
      <attachid>78464</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-01-10 16:06:25 -0800</bug_when>
    <thetext>Comment on attachment 78464
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332033</commentid>
    <comment_count>22</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2011-01-10 16:27:57 -0800</bug_when>
    <thetext>Committed r75448: &lt;http://trac.webkit.org/changeset/75448&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78442</attachid>
            <date>2011-01-10 13:25:56 -0800</date>
            <delta_ts>2011-01-10 14:01:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52169-20110110132407.patch</filename>
            <type>text/plain</type>
            <size>17691</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzU0MjQpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMDEtMTAgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIENhbGwgV2ViQXV0b0ZpbGxDbGll
bnQgaW5zdGVhZCBvZiBXZWJWaWV3Q2xpZW50IGZvciBhdXRvZmlsbCByZWxhdGVkIGNhbGxiYWNr
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjkK
KworICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogcHVibGljL1dlYlZpZXdD
bGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6ZGlkVXBkYXRlSW5zcGVj
dG9yU2V0dGluZyk6CisgICAgICAgICogc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6QXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OnZhbHVlQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OkF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjpzZWxlY3Rpb25DaGFu
Z2VkKToKKyAgICAgICAgKFdlYktpdDo6QXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OnNlbGVjdGlv
bkNsZWFyZWQpOgorICAgICAgICAoV2ViS2l0OjpBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6cG9w
dXBEaWRIaWRlKToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcp
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjp0ZXh0RGlkQ2hhbmdlSW5UZXh0
RmllbGQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkb0F1dG9maWxsKToK
KyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6b25BdXRvY29tcGxldGVTdWdnZXN0
aW9uQWNjZXB0ZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkb1RleHRG
aWVsZENvbW1hbmRGcm9tRXZlbnQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphdXRv
Y29tcGxldGVIYW5kbGVLZXlFdmVudCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphdXRvRmlsbENsaWVudCk6CisgICAgICAgICog
c3JjL1dlYldvcmtlckJhc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJCYXNlOjpp
bml0aWFsaXplTG9hZGVyKToKKwogMjAxMS0wMS0xMCAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90
dGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCklu
ZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAkocmV2aXNpb24gNzUzOTYpCisrKyBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsOSArMzYsMTMg
QEAKICNpbmNsdWRlICJXZWJWZWN0b3IuaCIKICNpbmNsdWRlICJXZWJXaWRnZXQuaCIKIAorLy8g
RklYTUUoamFtKTogdGFrZSBvdXQgb25jZSBDaHJvbWl1bSByb2xscyBwYXN0IHRoaXMgcmV2aXNp
b24KKyNkZWZpbmUgV0VCS0lUX0hBU19XRUJfQVVUT19GSUxMX0NMSUVOVAorCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgV2ViQWNjZXNzaWJpbGl0eU9iamVjdDsKK2NsYXNzIFdlYkF1dG9G
aWxsQ2xpZW50OwogY2xhc3MgV2ViRGV2VG9vbHNBZ2VudDsKIGNsYXNzIFdlYkRldlRvb2xzQWdl
bnRDbGllbnQ7CiBjbGFzcyBXZWJEcmFnRGF0YTsKQEAgLTgxLDggKzg1LDEwIEBAIHB1YmxpYzoK
IAogICAgIC8vIENyZWF0ZXMgYSBXZWJWaWV3IHRoYXQgaXMgTk9UIHlldCBpbml0aWFsaXplZC4g
IFlvdSB3aWxsIG5lZWQgdG8KICAgICAvLyBjYWxsIGluaXRpYWxpemVNYWluRnJhbWUgdG8gZmlu
aXNoIHRoZSBpbml0aWFsaXphdGlvbi4gIEl0IGlzIHZhbGlkCi0gICAgLy8gdG8gcGFzcyBudWxs
IFdlYlZpZXdDbGllbnQgYW5kIFdlYkRldlRvb2xzQWdlbnRDbGllbnQgcG9pbnRlcnMuCi0gICAg
V0VCS0lUX0FQSSBzdGF0aWMgV2ViVmlldyogY3JlYXRlKFdlYlZpZXdDbGllbnQqLCBXZWJEZXZU
b29sc0FnZW50Q2xpZW50Kik7CisgICAgLy8gdG8gcGFzcyBudWxsIGNsaWVudCBwb2ludGVycy4K
KyAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJWaWV3KiBjcmVhdGUoV2ViVmlld0NsaWVudCosCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRldlRvb2xzQWdlbnRDbGll
bnQqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJBdXRvRmlsbENs
aWVudCopOwogCiAgICAgLy8gQWZ0ZXIgY3JlYXRpbmcgYSBXZWJWaWV3LCB5b3Ugc2hvdWxkIGlt
bWVkaWF0ZWx5IGNhbGwgdGhpcyBtZXRob2QuCiAgICAgLy8gWW91IGNhbiBvcHRpb25hbGx5IG1v
ZGlmeSB0aGUgc2V0dGluZ3MgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuCkluZGV4OiBXZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAkocmV2aXNpb24gNzUzOTYpCisrKyBXZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTY2
LDEyICsxNjYsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4ZWN1dGVDb21tYW5k
KGNvbnN0IFdlYlN0cmluZyYgY29tbWFuZE5hbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRF
bmRFZGl0aW5nKCkgeyB9CiAKLSAgICAvLyBUaGVzZSBtZXRob2RzIGFyZSBjYWxsZWQgd2hlbiB0
aGUgdXNlcnMgZWRpdHMgYSB0ZXh0LWZpZWxkLgotICAgIHZpcnR1YWwgdm9pZCB0ZXh0RmllbGRE
aWRCZWdpbkVkaXRpbmcoY29uc3QgV2ViSW5wdXRFbGVtZW50JikgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIHRleHRGaWVsZERpZEVuZEVkaXRpbmcoY29uc3QgV2ViSW5wdXRFbGVtZW50JikgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZENoYW5nZShjb25zdCBXZWJJbnB1dEVsZW1lbnQm
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkUmVjZWl2ZUtleURvd24oY29uc3Qg
V2ViSW5wdXRFbGVtZW50JiwgY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYpIHsgfQotCiAgICAgLy8g
VGhpcyBtZXRob2QgaXMgY2FsbGVkIGluIHJlc3BvbnNlIHRvIFdlYlZpZXcncyBoYW5kbGVJbnB1
dEV2ZW50KCkKICAgICAvLyB3aGVuIHRoZSBkZWZhdWx0IGFjdGlvbiBmb3IgdGhlIGN1cnJlbnQg
a2V5Ym9hcmQgZXZlbnQgaXMgbm90CiAgICAgLy8gc3VwcHJlc3NlZCBieSB0aGUgcGFnZSwgdG8g
Z2l2ZSB0aGUgZW1iZWRkZXIgYSBjaGFuY2UgdG8gaGFuZGxlCkBAIC0zMTEsNTIgKzMwNSw2IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVJbnNwZWN0b3JTZXR0aW5nKGNv
bnN0IFdlYlN0cmluZyYga2V5LCBjb25zdCBXZWJTdHJpbmcmIHZhbHVlKSB7IH0KIAotCi0gICAg
Ly8gQXV0b0ZpbGwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0KLSAgICAvLyBRdWVyaWVzIHRoZSBicm93c2VyIGZvciBzdWdnZXN0
aW9ucyB0byBiZSBzaG93biBmb3IgdGhlIGZvcm0gdGV4dAotICAgIC8vIGZpZWxkIG5hbWVkIHxu
YW1lfC4gIHx2YWx1ZXwgaXMgdGhlIHRleHQgZW50ZXJlZCBieSB0aGUgdXNlciBzbwotICAgIC8v
IGZhciBhbmQgdGhlIFdlYk5vZGUgY29ycmVzcG9uZHMgdG8gdGhlIGlucHV0IGZpZWxkLgotICAg
IHZpcnR1YWwgdm9pZCBxdWVyeUF1dG9maWxsU3VnZ2VzdGlvbnMoY29uc3QgV2ViTm9kZSYsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcm
IG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBX
ZWJTdHJpbmcmIHZhbHVlKSB7IH0KLQotICAgIC8vIEluc3RydWN0cyB0aGUgYnJvd3NlciB0byBy
ZW1vdmUgdGhlIEF1dG9jb21wbGV0ZSBlbnRyeSBzcGVjaWZpZWQgZnJvbQotICAgIC8vIGl0cyBE
Qi4KLSAgICAvLyBGSVhNRTogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIG5hbWVkIHJlbW92ZUF1dG9j
b21wbGV0ZVN1Z2VzdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQXV0b2ZpbGxTdWdnZXN0
aW9ucyhjb25zdCBXZWJTdHJpbmcmIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiB2YWx1ZSkgeyB9Ci0KLSAgICAvLyBJbmZv
cm1zIHRoZSBicm93c2VyIHRoYXQgdGhlIHVzZXIgaGFzIGFjY2VwdGVkIGFuIEF1dG9GaWxsIHN1
Z2dlc3Rpb24gZm9yCi0gICAgLy8gYSBXZWJOb2RlLiAgfHVuaXF1ZUlEfCBpcyB1c2VkIGFzIGEg
a2V5IGludG8gdGhlIHNldCBvZiBBdXRvRmlsbCBwcm9maWxlcywKLSAgICAvLyBhbmQgc2hvdWxk
IG5ldmVyIGJlIG5lZ2F0aXZlLiAgSWYgaXQgaXMgMCwgdGhlbiB0aGUgc3VnZ2VzdGlvbiBpcyBh
bgotICAgIC8vIEF1dG9jb21wbGV0ZSBzdWdnZXN0aW9uOyBhbmQgfHZhbHVlfCBzdG9yZXMgdGhl
IHN1Z2dlc3RlZCB0ZXh0LiAgfGluZGV4fAotICAgIC8vIGlzIGFuIGluZGV4IG9mIHRoZSBzZWxl
Y3RlZCBzdWdnZXN0aW9uIGluIHRoZSBsaXN0IG9mIHN1Z2dlc3Rpb25zIHByb3ZpZGVkCi0gICAg
Ly8gYnkgdGhlIGNsaWVudC4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWNjZXB0QXV0b0ZpbGxTdWdn
ZXN0aW9uKGNvbnN0IFdlYk5vZGUmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiB2YWx1ZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlN0cmluZyYgbGFiZWwsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdW5pcXVlSUQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbmRleCkg
eyB9Ci0KLSAgICAvLyBJbmZvcm1zIHRoZSBicm93c2VyIHRoYXQgdGhlIHVzZXIgaGFzIHNlbGVj
dGVkIGFuIEF1dG9GaWxsIHN1Z2dlc3Rpb24gZm9yCi0gICAgLy8gYSBXZWJOb2RlLiAgVGhpcyBo
YXBwZW5zIHdoZW4gdGhlIHVzZXIgaG92ZXJzIG92ZXIgYSBzdWdnZXN0aW9uIG9yIHVzZXMKLSAg
ICAvLyB0aGUgYXJyb3cga2V5cyB0byBuYXZpZ2F0ZSB0byBhIHN1Z2dlc3Rpb24uCi0gICAgdmly
dHVhbCB2b2lkIGRpZFNlbGVjdEF1dG9GaWxsU3VnZ2VzdGlvbihjb25zdCBXZWJOb2RlJiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlN0cmlu
ZyYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFdlYlN0cmluZyYgbGFiZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgdW5pcXVlSUQpIHsgfQotCi0gICAgLy8gSW5mb3JtcyB0aGUgYnJvd3Nl
ciB0aGF0IHRoZSB1c2VyIGhhcyBjbGVhcmVkIHRoZSBzZWxlY3Rpb24gZnJvbSB0aGUKLSAgICAv
LyBBdXRvRmlsbCBzdWdnZXN0aW9ucyBwb3B1cC4gIFRoaXMgaGFwcGVucyB3aGVuIGEgdXNlciB1
c2VzIHRoZSBhcnJvdwotICAgIC8vIGtleXMgdG8gbmF2aWdhdGUgb3V0c2lkZSB0aGUgcmFuZ2Ug
b2YgcG9zc2libGUgc2VsZWN0aW9ucy4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYXJBdXRvRmls
bFNlbGVjdGlvbihjb25zdCBXZWJOb2RlJikgeyB9Ci0KLSAgICAvLyBJbmZvcm1zIHRoZSBicm93
c2VyIHRoYXQgdGhlIHVzZXIgaGFzIHNlbGVjdGVkIGFuIGF1dG9jb21wbGV0ZSAocGFzc3dvcmQK
LSAgICAvLyBvciBmaWVsZCkgc3VnZ2VzdGlvbiBmcm9tIHRoZSBkcm9wLWRvd24uICBUaGUgaW5w
dXQgZWxlbWVudCB0ZXh0IGhhcwotICAgIC8vIGFscmVhZHkgYmVlbiBzZXQgdG8gdGhlIHNlbGVj
dGVkIHN1Z2dlc3Rpb24uCi0gICAgdmlydHVhbCB2b2lkIGRpZEFjY2VwdEF1dG9jb21wbGV0ZVN1
Z2dlc3Rpb24oY29uc3QgV2ViSW5wdXRFbGVtZW50JikgeyB9Ci0KICAgICAvLyBHZW9sb2NhdGlv
biAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAogICAgIC8vIEFjY2VzcyB0aGUgZW1iZWRkZXIgQVBJIGZvciAoY2xpZW50LWJhc2VkKSBn
ZW9sb2NhdGlvbiBjbGllbnQgLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvRmlsbFBv
cHVwTWVudUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRv
RmlsbFBvcHVwTWVudUNsaWVudC5jcHAJKHJldmlzaW9uIDc1Mzk2KQorKysgV2ViS2l0L2Nocm9t
aXVtL3NyYy9BdXRvRmlsbFBvcHVwTWVudUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDYgKzM3LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRF
bGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNsdWRlICJXZWJBdXRvRmls
bENsaWVudC5oIgogI2luY2x1ZGUgIldlYk5vZGUuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIK
ICNpbmNsdWRlICJXZWJWZWN0b3IuaCIKQEAgLTEzMSwxMSArMTMyLDExIEBAIHZvaWQgQXV0b0Zp
bGxQb3B1cE1lbnVDbGllbnQ6OnZhbHVlQ2hhbmcKIAogICAgIEFTU0VSVChsaXN0SW5kZXggPCBt
X25hbWVzLnNpemUoKSk7CiAKLSAgICB3ZWJWaWV3LT5jbGllbnQoKS0+ZGlkQWNjZXB0QXV0b0Zp
bGxTdWdnZXN0aW9uKFdlYk5vZGUoZ2V0VGV4dEZpZWxkKCkpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9uYW1lc1tsaXN0SW5kZXhdLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9sYWJlbHNb
bGlzdEluZGV4XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fdW5pcXVlSURzW2xpc3RJbmRleF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0SW5kZXgpOworICAgIHdlYlZpZXctPmF1dG9G
aWxsQ2xpZW50KCktPmRpZEFjY2VwdEF1dG9GaWxsU3VnZ2VzdGlvbihXZWJOb2RlKGdldFRleHRG
aWVsZCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV9uYW1lc1tsaXN0SW5kZXhdLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2xhYmVsc1tsaXN0SW5kZXhdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3VuaXF1ZUlEc1tsaXN0SW5kZXhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0SW5kZXgpOwogfQogCiB2b2lkIEF1dG9G
aWxsUG9wdXBNZW51Q2xpZW50OjpzZWxlY3Rpb25DaGFuZ2VkKHVuc2lnbmVkIGxpc3RJbmRleCwg
Ym9vbCBmaXJlRXZlbnRzKQpAQCAtMTQ5LDE3ICsxNTAsMTcgQEAgdm9pZCBBdXRvRmlsbFBvcHVw
TWVudUNsaWVudDo6c2VsZWN0aW9uQwogCiAgICAgQVNTRVJUKGxpc3RJbmRleCA8IG1fbmFtZXMu
c2l6ZSgpKTsKIAotICAgIHdlYlZpZXctPmNsaWVudCgpLT5kaWRTZWxlY3RBdXRvRmlsbFN1Z2dl
c3Rpb24oV2ViTm9kZShnZXRUZXh0RmllbGQoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX25hbWVzW2xpc3RJbmRleF0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2xhYmVsc1tsaXN0SW5k
ZXhdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV91bmlxdWVJRHNbbGlzdEluZGV4XSk7CisgICAgd2ViVmlldy0+YXV0b0ZpbGxDbGllbnQoKS0+
ZGlkU2VsZWN0QXV0b0ZpbGxTdWdnZXN0aW9uKFdlYk5vZGUoZ2V0VGV4dEZpZWxkKCkpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X25hbWVzW2xpc3RJbmRleF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fbGFiZWxzW2xpc3RJbmRleF0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdW5pcXVlSURz
W2xpc3RJbmRleF0pOwogfQogCiB2b2lkIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjpzZWxlY3Rp
b25DbGVhcmVkKCkKIHsKICAgICBXZWJWaWV3SW1wbCogd2ViVmlldyA9IGdldFdlYlZpZXcoKTsK
ICAgICBpZiAod2ViVmlldykKLSAgICAgICAgd2ViVmlldy0+Y2xpZW50KCktPmRpZENsZWFyQXV0
b0ZpbGxTZWxlY3Rpb24oV2ViTm9kZShnZXRUZXh0RmllbGQoKSkpOworICAgICAgICB3ZWJWaWV3
LT5hdXRvRmlsbENsaWVudCgpLT5kaWRDbGVhckF1dG9GaWxsU2VsZWN0aW9uKFdlYk5vZGUoZ2V0
VGV4dEZpZWxkKCkpKTsKIH0KIAogU3RyaW5nIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjppdGVt
VGV4dCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CkBAIC0yMTksNyArMjIwLDcgQEAgdm9pZCBB
dXRvRmlsbFBvcHVwTWVudUNsaWVudDo6cG9wdXBEaWRIaQogICAgICAgICByZXR1cm47CiAKICAg
ICB3ZWJWaWV3LT5hdXRvRmlsbFBvcHVwRGlkSGlkZSgpOwotICAgIHdlYlZpZXctPmNsaWVudCgp
LT5kaWRDbGVhckF1dG9GaWxsU2VsZWN0aW9uKFdlYk5vZGUoZ2V0VGV4dEZpZWxkKCkpKTsKKyAg
ICB3ZWJWaWV3LT5hdXRvRmlsbENsaWVudCgpLT5kaWRDbGVhckF1dG9GaWxsU2VsZWN0aW9uKFdl
Yk5vZGUoZ2V0VGV4dEZpZWxkKCkpKTsKIH0KIAogYm9vbCBBdXRvRmlsbFBvcHVwTWVudUNsaWVu
dDo6aXRlbUlzU2VwYXJhdG9yKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QKSW5kZXg6IFdlYktp
dC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAkocmV2aXNpb24gNzUzOTYpCisrKyBX
ZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAKICNpbmNsdWRlICJE
T01VdGlsaXRpZXNQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViQXV0b0ZpbGxDbGllbnQuaCIKICNp
bmNsdWRlICJXZWJFZGl0aW5nQWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIldlYkZyYW1lSW1wbC5oIgpAQCAtNjQ5LDE1ICs2NTAsMTUgQEAgdm9pZCBFZGl0b3JD
bGllbnRJbXBsOjpoYW5kbGVJbnB1dE1ldGhvZAogdm9pZCBFZGl0b3JDbGllbnRJbXBsOjp0ZXh0
RmllbGREaWRCZWdpbkVkaXRpbmcoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCk7Ci0gICAg
aWYgKG1fd2ViVmlldy0+Y2xpZW50KCkgJiYgaW5wdXRFbGVtZW50KQotICAgICAgICBtX3dlYlZp
ZXctPmNsaWVudCgpLT50ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcoV2ViSW5wdXRFbGVtZW50KGlu
cHV0RWxlbWVudCkpOworICAgIGlmIChtX3dlYlZpZXctPmF1dG9GaWxsQ2xpZW50KCkgJiYgaW5w
dXRFbGVtZW50KQorICAgICAgICBtX3dlYlZpZXctPmF1dG9GaWxsQ2xpZW50KCktPnRleHRGaWVs
ZERpZEJlZ2luRWRpdGluZyhXZWJJbnB1dEVsZW1lbnQoaW5wdXRFbGVtZW50KSk7CiB9CiAKIHZv
aWQgRWRpdG9yQ2xpZW50SW1wbDo6dGV4dEZpZWxkRGlkRW5kRWRpdGluZyhFbGVtZW50KiBlbGVt
ZW50KQogewogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0
RWxlbWVudChlbGVtZW50KTsKLSAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSAmJiBpbnB1dEVs
ZW1lbnQpCi0gICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPnRleHRGaWVsZERpZEVuZEVkaXRp
bmcoV2ViSW5wdXRFbGVtZW50KGlucHV0RWxlbWVudCkpOworICAgIGlmIChtX3dlYlZpZXctPmF1
dG9GaWxsQ2xpZW50KCkgJiYgaW5wdXRFbGVtZW50KQorICAgICAgICBtX3dlYlZpZXctPmF1dG9G
aWxsQ2xpZW50KCktPnRleHRGaWVsZERpZEVuZEVkaXRpbmcoV2ViSW5wdXRFbGVtZW50KGlucHV0
RWxlbWVudCkpOwogCiAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgZm9jdXMgd2FzIGxvc3QuICBC
ZSBjYXJlZnVsIHdpdGggdGhpcywgaXQncyBhbHNvIHNlbnQKICAgICAvLyB3aGVuIHRoZSBwYWdl
IGlzIGJlaW5nIGNsb3NlZC4KQEAgLTY5MSw4ICs2OTIsOCBAQCB2b2lkIEVkaXRvckNsaWVudElt
cGw6OnRleHREaWRDaGFuZ2VJblRlCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQtPmhhc0xvY2FsTmFt
ZShIVE1MTmFtZXM6OmlucHV0VGFnKSk7CiAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVsZW1lbnQpOwotICAgIGlmICht
X3dlYlZpZXctPmNsaWVudCgpKQotICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT50ZXh0Rmll
bGREaWRDaGFuZ2UoV2ViSW5wdXRFbGVtZW50KGlucHV0RWxlbWVudCkpOworICAgIGlmIChtX3dl
YlZpZXctPmF1dG9GaWxsQ2xpZW50KCkpCisgICAgICAgIG1fd2ViVmlldy0+YXV0b0ZpbGxDbGll
bnQoKS0+dGV4dEZpZWxkRGlkQ2hhbmdlKFdlYklucHV0RWxlbWVudChpbnB1dEVsZW1lbnQpKTsK
IAogICAgIC8vIE5vdGUgdGhhdCB3ZSBvbmx5IHNob3cgdGhlIGF1dG9maWxsIHBvcHVwIGluIHRo
aXMgY2FzZSBpZiB0aGUgY2FyZXQgaXMgYXQKICAgICAvLyB0aGUgZW5kLiAgVGhpcyBtYXRjaGVz
IEZpcmVGb3ggYW5kIFNhZmFyaSBidXQgbm90IElFLgpAQCAtNzg1LDE0ICs3ODYsNiBAQCB2b2lk
IEVkaXRvckNsaWVudEltcGw6OmRvQXV0b2ZpbGwoVGltZXI8CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQot
Ci0gICAgLy8gVGhlbiB0cmlnZ2VyIGZvcm0gYXV0b2ZpbGwuCi0gICAgV2ViU3RyaW5nIG5hbWUg
PSBXZWJJbnB1dEVsZW1lbnQoaW5wdXRFbGVtZW50KS5uYW1lRm9yQXV0b2ZpbGwoKTsKLSAgICBB
U1NFUlQoc3RhdGljX2Nhc3Q8aW50PihuYW1lLmxlbmd0aCgpKSA+IDApOwotCi0gICAgaWYgKG1f
d2ViVmlldy0+Y2xpZW50KCkpCi0gICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPnF1ZXJ5QXV0
b2ZpbGxTdWdnZXN0aW9ucyhXZWJOb2RlKGlucHV0RWxlbWVudCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLCBXZWJTdHJpbmcodmFs
dWUpKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpjYW5jZWxQZW5kaW5nQXV0b2ZpbGwo
KQpAQCAtODAzLDggKzc5Niw4IEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6Y2FuY2VsUGVuZGlu
Z0F1dG8KIAogdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpvbkF1dG9jb21wbGV0ZVN1Z2dlc3Rpb25B
Y2NlcHRlZChIVE1MSW5wdXRFbGVtZW50KiB0ZXh0RmllbGQpCiB7Ci0gICAgaWYgKG1fd2ViVmll
dy0+Y2xpZW50KCkpCi0gICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPmRpZEFjY2VwdEF1dG9j
b21wbGV0ZVN1Z2dlc3Rpb24oV2ViSW5wdXRFbGVtZW50KHRleHRGaWVsZCkpOworICAgIGlmICht
X3dlYlZpZXctPmF1dG9GaWxsQ2xpZW50KCkpCisgICAgICAgIG1fd2ViVmlldy0+YXV0b0ZpbGxD
bGllbnQoKS0+ZGlkQWNjZXB0QXV0b2NvbXBsZXRlU3VnZ2VzdGlvbihXZWJJbnB1dEVsZW1lbnQo
dGV4dEZpZWxkKSk7CiAKICAgICBXZWJGcmFtZUltcGwqIHdlYmZyYW1lID0gV2ViRnJhbWVJbXBs
Ojpmcm9tRnJhbWUodGV4dEZpZWxkLT5kb2N1bWVudCgpLT5mcmFtZSgpKTsKICAgICBpZiAoIXdl
YmZyYW1lKQpAQCAtODE3LDkgKzgxMCw5IEBAIGJvb2wgRWRpdG9yQ2xpZW50SW1wbDo6ZG9UZXh0
RmllbGRDb21tYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlu
cHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVudChlbGVtZW50KTsKLSAgICBpZiAobV93ZWJW
aWV3LT5jbGllbnQoKSAmJiBpbnB1dEVsZW1lbnQpIHsKLSAgICAgICAgbV93ZWJWaWV3LT5jbGll
bnQoKS0+dGV4dEZpZWxkRGlkUmVjZWl2ZUtleURvd24oV2ViSW5wdXRFbGVtZW50KGlucHV0RWxl
bWVudCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYktleWJvYXJkRXZlbnRCdWlsZGVyKCpldmVudCkpOworICAgIGlmIChtX3dlYlZp
ZXctPmF1dG9GaWxsQ2xpZW50KCkgJiYgaW5wdXRFbGVtZW50KSB7CisgICAgICAgIG1fd2ViVmll
dy0+YXV0b0ZpbGxDbGllbnQoKS0+dGV4dEZpZWxkRGlkUmVjZWl2ZUtleURvd24oV2ViSW5wdXRF
bGVtZW50KGlucHV0RWxlbWVudCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2V5Ym9hcmRFdmVudEJ1aWxkZXIoKmV2
ZW50KSk7CiAgICAgfQogCiAgICAgLy8gUmVtZW1iZXIgaWYgYmFja3NwYWNlIHdhcyBwcmVzc2Vk
IGZvciB0aGUgYXV0b2ZpbGwuICBJdCBpcyBub3QgY2xlYXIgaG93IHRvCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gNzUzOTYpCisrKyBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTcsNiArOTcsNyBAQAog
I2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVmVjdG9yLmgiCiAj
aW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oIgorI2luY2x1ZGUgIldlYkF1dG9GaWxs
Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRGV2VG9vbHNBZ2VudFByaXZhdGUuaCIKICNpbmNsdWRl
ICJXZWJEZXZUb29sc0FnZW50SW1wbC5oIgogI2luY2x1ZGUgIldlYkRyYWdEYXRhLmgiCkBAIC0y
MTIsMTMgKzIxMywxMyBAQCBzdGF0aWMgYm9vbCBzaG91bGRVc2VFeHRlcm5hbFBvcHVwTWVudXMK
IAogLy8gV2ViVmlldyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVdlYlZpZXcqIFdlYlZpZXc6OmNyZWF0ZShXZWJWaWV3
Q2xpZW50KiBjbGllbnQsIFdlYkRldlRvb2xzQWdlbnRDbGllbnQqIGRldlRvb2xzQ2xpZW50KQor
V2ViVmlldyogV2ViVmlldzo6Y3JlYXRlKFdlYlZpZXdDbGllbnQqIGNsaWVudCwgV2ViRGV2VG9v
bHNBZ2VudENsaWVudCogZGV2VG9vbHNDbGllbnQsIFdlYkF1dG9GaWxsQ2xpZW50KiBhdXRvRmls
bENsaWVudCkKIHsKICAgICAvLyBLZWVwIHJ1bnRpbWUgZmxhZyBmb3IgZGV2aWNlIG1vdGlvbiB0
dXJuZWQgb2ZmIHVudGlsIGl0J3MgaW1wbGVtZW50ZWQuCiAgICAgV2ViUnVudGltZUZlYXR1cmVz
OjplbmFibGVEZXZpY2VNb3Rpb24oZmFsc2UpOwogCiAgICAgLy8gUGFzcyB0aGUgV2ViVmlld0lt
cGwncyBzZWxmLXJlZmVyZW5jZSB0byB0aGUgY2FsbGVyLgotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViVmlld0ltcGwoY2xpZW50LCBkZXZUb29sc0NsaWVudCkpLmxlYWtSZWYoKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdlYlZpZXdJbXBsKGNsaWVudCwgZGV2VG9vbHNDbGllbnQsIGF1
dG9GaWxsQ2xpZW50KSkubGVha1JlZigpOwogfQogCiB2b2lkIFdlYlZpZXc6OnNldFVzZUV4dGVy
bmFsUG9wdXBNZW51cyhib29sIHVzZUV4dGVybmFsUG9wdXBNZW51cykKQEAgLTI3MCw4ICsyNzEs
OSBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbml0aWFsaXplTWFpbkZyYW1lKFdlCiAgICAgU2VjdXJp
dHlPcmlnaW46OnNldExvY2FsTG9hZFBvbGljeShTZWN1cml0eU9yaWdpbjo6QWxsb3dMb2NhbExv
YWRzRm9yTG9jYWxPbmx5KTsKIH0KIAotV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdD
bGllbnQqIGNsaWVudCwgV2ViRGV2VG9vbHNBZ2VudENsaWVudCogZGV2VG9vbHNDbGllbnQpCitX
ZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50LCBXZWJEZXZUb29s
c0FnZW50Q2xpZW50KiBkZXZUb29sc0NsaWVudCwgV2ViQXV0b0ZpbGxDbGllbnQqIGF1dG9GaWxs
Q2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV9hdXRvRmlsbENsaWVudChh
dXRvRmlsbENsaWVudCkKICAgICAsIG1fYmFja0ZvcndhcmRMaXN0Q2xpZW50SW1wbCh0aGlzKQog
ICAgICwgbV9jaHJvbWVDbGllbnRJbXBsKHRoaXMpCiAgICAgLCBtX2NvbnRleHRNZW51Q2xpZW50
SW1wbCh0aGlzKQpAQCAtNjY0LDcgKzY2Niw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmF1dG9jb21w
bGV0ZUhhbmRsZUtleUUKIAogICAgICAgICBXZWJTdHJpbmcgbmFtZSA9IFdlYklucHV0RWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCkpLm5hbWVGb3JBdXRvZmls
bCgpOwogICAgICAgICBXZWJTdHJpbmcgdmFsdWUgPSBtX2F1dG9GaWxsUG9wdXBDbGllbnQtPml0
ZW1UZXh0KHNlbGVjdGVkSW5kZXgpOwotICAgICAgICBtX2NsaWVudC0+cmVtb3ZlQXV0b2ZpbGxT
dWdnZXN0aW9ucyhuYW1lLCB2YWx1ZSk7CisgICAgICAgIG1fYXV0b0ZpbGxDbGllbnQtPnJlbW92
ZUF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24obmFtZSwgdmFsdWUpOwogICAgICAgICAvLyBVcGRhdGUg
dGhlIGVudHJpZXMgaW4gdGhlIGN1cnJlbnRseSBzaG93aW5nIHBvcHVwIHRvIHJlZmxlY3QgdGhl
CiAgICAgICAgIC8vIGRlbGV0aW9uLgogICAgICAgICBtX2F1dG9GaWxsUG9wdXBDbGllbnQtPnJl
bW92ZVN1Z2dlc3Rpb25BdEluZGV4KHNlbGVjdGVkSW5kZXgpOwpJbmRleDogV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaAkocmV2aXNpb24gNzUzOTYpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyMCw2ICsyMjAsMTEgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gbV9jbGllbnQ7CiAgICAgfQogCisgICAgV2ViQXV0b0ZpbGxDbGllbnQq
IGF1dG9GaWxsQ2xpZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2F1dG9GaWxsQ2xpZW50
OworICAgIH0KKwogICAgIC8vIFJldHVybnMgdGhlIHBhZ2Ugb2JqZWN0IGFzc29jaWF0ZWQgd2l0
aCB0aGlzIHZpZXcuIFRoaXMgbWF5IGJlIG51bGwgd2hlbgogICAgIC8vIHRoZSBwYWdlIGlzIHNo
dXR0aW5nIGRvd24sIGJ1dCB3aWxsIGJlIHZhbGlkIGF0IGFsbCBvdGhlciB0aW1lcy4KICAgICBX
ZWJDb3JlOjpQYWdlKiBwYWdlKCkgY29uc3QKQEAgLTM2Miw3ICszNjcsOSBAQCBwcml2YXRlOgog
ICAgICAgRHJhZ092ZXIKICAgICB9OwogCi0gICAgV2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCog
Y2xpZW50LCBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiBkZXZUb29sc0NsaWVudCk7CisgICAgV2Vi
Vmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50LAorICAgICAgICAgICAgICAgIFdlYkRldlRv
b2xzQWdlbnRDbGllbnQqIGRldlRvb2xzQ2xpZW50LAorICAgICAgICAgICAgICAgIFdlYkF1dG9G
aWxsQ2xpZW50KiBhdXRvRmlsbENsaWVudCk7CiAgICAgfldlYlZpZXdJbXBsKCk7CiAKICAgICAv
LyBSZXR1cm5zIHRydWUgaWYgdGhlIGV2ZW50IHdhcyBhY3R1YWxseSBwcm9jZXNzZWQuCkBAIC00
MDMsNiArNDEwLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgV2ViVmlld0NsaWVudCogbV9j
bGllbnQ7CisgICAgV2ViQXV0b0ZpbGxDbGllbnQqIG1fYXV0b0ZpbGxDbGllbnQ7CiAKICAgICBC
YWNrRm9yd2FyZExpc3RDbGllbnRJbXBsIG1fYmFja0ZvcndhcmRMaXN0Q2xpZW50SW1wbDsKICAg
ICBDaHJvbWVDbGllbnRJbXBsIG1fY2hyb21lQ2xpZW50SW1wbDsKSW5kZXg6IFdlYktpdC9jaHJv
bWl1bS9zcmMvV2ViV29ya2VyQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJXb3JrZXJCYXNlLmNwcAkocmV2aXNpb24gNzUzOTYpCisrKyBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYldvcmtlckJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsNyArMTcwLDcg
QEAgdm9pZCBXZWJXb3JrZXJCYXNlOjppbml0aWFsaXplTG9hZGVyKGNvbgogICAgIC8vIGxvYWRp
bmcgcmVxdWVzdHMgZnJvbSB0aGUgd29ya2VyIGNvbnRleHQgdG8gdGhlIHJlc3Qgb2YgV2ViS2l0
IGFuZCBDaHJvbWl1bQogICAgIC8vIGluZnJhc3RydWN0dXJlLgogICAgIEFTU0VSVCghbV93ZWJW
aWV3KTsKLSAgICBtX3dlYlZpZXcgPSBXZWJWaWV3OjpjcmVhdGUoMCwgMCk7CisgICAgbV93ZWJW
aWV3ID0gV2ViVmlldzo6Y3JlYXRlKDAsIDAsIDApOwogICAgIG1fd2ViVmlldy0+c2V0dGluZ3Mo
KS0+c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKFdlYlJ1bnRpbWVGZWF0dXJl
czo6aXNBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpKTsKICAgICBtX3dlYlZpZXctPmluaXRpYWxp
emVNYWluRnJhbWUodGhpcyk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78449</attachid>
            <date>2011-01-10 14:01:19 -0800</date>
            <delta_ts>2011-01-10 14:37:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52169-20110110135930.patch</filename>
            <type>text/plain</type>
            <size>17957</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzU0MjQpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMDEtMTAgIEpvaG4g
QWJkLUVsLU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIENhbGwgV2ViQXV0b0ZpbGxDbGll
bnQgaW5zdGVhZCBvZiBXZWJWaWV3Q2xpZW50IGZvciBhdXRvZmlsbCByZWxhdGVkIGNhbGxiYWNr
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjkK
KworICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogcHVibGljL1dlYlZpZXdD
bGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6ZGlkVXBkYXRlSW5zcGVj
dG9yU2V0dGluZyk6CisgICAgICAgICogc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6QXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OnZhbHVlQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OkF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjpzZWxlY3Rpb25DaGFu
Z2VkKToKKyAgICAgICAgKFdlYktpdDo6QXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OnNlbGVjdGlv
bkNsZWFyZWQpOgorICAgICAgICAoV2ViS2l0OjpBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6cG9w
dXBEaWRIaWRlKToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcp
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjp0ZXh0RGlkQ2hhbmdlSW5UZXh0
RmllbGQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkb0F1dG9maWxsKToK
KyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6b25BdXRvY29tcGxldGVTdWdnZXN0
aW9uQWNjZXB0ZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkb1RleHRG
aWVsZENvbW1hbmRGcm9tRXZlbnQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphdXRv
Y29tcGxldGVIYW5kbGVLZXlFdmVudCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphdXRvRmlsbENsaWVudCk6CisgICAgICAgICog
c3JjL1dlYldvcmtlckJhc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJCYXNlOjpp
bml0aWFsaXplTG9hZGVyKToKKwogMjAxMS0wMS0xMCAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90
dGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCklu
ZGV4OiBXZWJLaXQvY2hyb21pdW0vREVQUwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0v
REVQUwkocmV2aXNpb24gNzUzOTYpCisrKyBXZWJLaXQvY2hyb21pdW0vREVQUwkod29ya2luZyBj
b3B5KQpAQCAtMzIsNyArMzIsNyBAQAogCiB2YXJzID0gewogICAnY2hyb21pdW1fc3ZuJzogJ2h0
dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3N2bi90cnVuay9zcmMnLAotICAnY2hyb21pdW1fcmV2Jzog
JzcwODQ0JworICAnY2hyb21pdW1fcmV2JzogJzcwOTE2JwogfQogCiBkZXBzID0gewpJbmRleDog
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3LmgJKHJldmlzaW9uIDc1Mzk2KQorKysgV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDkgKzM2LDEzIEBACiAj
aW5jbHVkZSAiV2ViVmVjdG9yLmgiCiAjaW5jbHVkZSAiV2ViV2lkZ2V0LmgiCiAKKy8vIEZJWE1F
KGphbSk6IHRha2Ugb3V0IG9uY2UgQ2hyb21pdW0gcm9sbHMgcGFzdCB0aGlzIHJldmlzaW9uCisj
ZGVmaW5lIFdFQktJVF9IQVNfV0VCX0FVVE9fRklMTF9DTElFTlQKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q7CitjbGFzcyBXZWJBdXRvRmlsbENs
aWVudDsKIGNsYXNzIFdlYkRldlRvb2xzQWdlbnQ7CiBjbGFzcyBXZWJEZXZUb29sc0FnZW50Q2xp
ZW50OwogY2xhc3MgV2ViRHJhZ0RhdGE7CkBAIC04MSw4ICs4NSwxMCBAQCBwdWJsaWM6CiAKICAg
ICAvLyBDcmVhdGVzIGEgV2ViVmlldyB0aGF0IGlzIE5PVCB5ZXQgaW5pdGlhbGl6ZWQuICBZb3Ug
d2lsbCBuZWVkIHRvCiAgICAgLy8gY2FsbCBpbml0aWFsaXplTWFpbkZyYW1lIHRvIGZpbmlzaCB0
aGUgaW5pdGlhbGl6YXRpb24uICBJdCBpcyB2YWxpZAotICAgIC8vIHRvIHBhc3MgbnVsbCBXZWJW
aWV3Q2xpZW50IGFuZCBXZWJEZXZUb29sc0FnZW50Q2xpZW50IHBvaW50ZXJzLgotICAgIFdFQktJ
VF9BUEkgc3RhdGljIFdlYlZpZXcqIGNyZWF0ZShXZWJWaWV3Q2xpZW50KiwgV2ViRGV2VG9vbHNB
Z2VudENsaWVudCopOworICAgIC8vIHRvIHBhc3MgbnVsbCBjbGllbnQgcG9pbnRlcnMuCisgICAg
V0VCS0lUX0FQSSBzdGF0aWMgV2ViVmlldyogY3JlYXRlKFdlYlZpZXdDbGllbnQqLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViQXV0b0ZpbGxDbGllbnQq
KTsKIAogICAgIC8vIEFmdGVyIGNyZWF0aW5nIGEgV2ViVmlldywgeW91IHNob3VsZCBpbW1lZGlh
dGVseSBjYWxsIHRoaXMgbWV0aG9kLgogICAgIC8vIFlvdSBjYW4gb3B0aW9uYWxseSBtb2RpZnkg
dGhlIHNldHRpbmdzIGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9kLgpJbmRleDogV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgJKHJldmlzaW9uIDc1Mzk2KQorKysgV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NiwxMiAr
MTY2LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGVjdXRlQ29tbWFuZChjb25z
dCBXZWJTdHJpbmcmIGNvbW1hbmROYW1lKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kRWRp
dGluZygpIHsgfQogCi0gICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgY2FsbGVkIHdoZW4gdGhlIHVz
ZXJzIGVkaXRzIGEgdGV4dC1maWVsZC4KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkQmVn
aW5FZGl0aW5nKGNvbnN0IFdlYklucHV0RWxlbWVudCYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0
ZXh0RmllbGREaWRFbmRFZGl0aW5nKGNvbnN0IFdlYklucHV0RWxlbWVudCYpIHsgfQotICAgIHZp
cnR1YWwgdm9pZCB0ZXh0RmllbGREaWRDaGFuZ2UoY29uc3QgV2ViSW5wdXRFbGVtZW50JikgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZFJlY2VpdmVLZXlEb3duKGNvbnN0IFdlYklu
cHV0RWxlbWVudCYsIGNvbnN0IFdlYktleWJvYXJkRXZlbnQmKSB7IH0KLQogICAgIC8vIFRoaXMg
bWV0aG9kIGlzIGNhbGxlZCBpbiByZXNwb25zZSB0byBXZWJWaWV3J3MgaGFuZGxlSW5wdXRFdmVu
dCgpCiAgICAgLy8gd2hlbiB0aGUgZGVmYXVsdCBhY3Rpb24gZm9yIHRoZSBjdXJyZW50IGtleWJv
YXJkIGV2ZW50IGlzIG5vdAogICAgIC8vIHN1cHByZXNzZWQgYnkgdGhlIHBhZ2UsIHRvIGdpdmUg
dGhlIGVtYmVkZGVyIGEgY2hhbmNlIHRvIGhhbmRsZQpAQCAtMzExLDUyICszMDUsNiBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlSW5zcGVjdG9yU2V0dGluZyhjb25zdCBX
ZWJTdHJpbmcmIGtleSwgY29uc3QgV2ViU3RyaW5nJiB2YWx1ZSkgeyB9CiAKLQotICAgIC8vIEF1
dG9GaWxsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotCi0gICAgLy8gUXVlcmllcyB0aGUgYnJvd3NlciBmb3Igc3VnZ2VzdGlvbnMg
dG8gYmUgc2hvd24gZm9yIHRoZSBmb3JtIHRleHQKLSAgICAvLyBmaWVsZCBuYW1lZCB8bmFtZXwu
ICB8dmFsdWV8IGlzIHRoZSB0ZXh0IGVudGVyZWQgYnkgdGhlIHVzZXIgc28KLSAgICAvLyBmYXIg
YW5kIHRoZSBXZWJOb2RlIGNvcnJlc3BvbmRzIHRvIHRoZSBpbnB1dCBmaWVsZC4KLSAgICB2aXJ0
dWFsIHZvaWQgcXVlcnlBdXRvZmlsbFN1Z2dlc3Rpb25zKGNvbnN0IFdlYk5vZGUmLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiBuYW1l
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU3Ry
aW5nJiB2YWx1ZSkgeyB9Ci0KLSAgICAvLyBJbnN0cnVjdHMgdGhlIGJyb3dzZXIgdG8gcmVtb3Zl
IHRoZSBBdXRvY29tcGxldGUgZW50cnkgc3BlY2lmaWVkIGZyb20KLSAgICAvLyBpdHMgREIuCi0g
ICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCBiZSBuYW1lZCByZW1vdmVBdXRvY29tcGxl
dGVTdWdlc3Rpb24uCi0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUF1dG9maWxsU3VnZ2VzdGlvbnMo
Y29uc3QgV2ViU3RyaW5nJiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFdlYlN0cmluZyYgdmFsdWUpIHsgfQotCi0gICAgLy8gSW5mb3JtcyB0
aGUgYnJvd3NlciB0aGF0IHRoZSB1c2VyIGhhcyBhY2NlcHRlZCBhbiBBdXRvRmlsbCBzdWdnZXN0
aW9uIGZvcgotICAgIC8vIGEgV2ViTm9kZS4gIHx1bmlxdWVJRHwgaXMgdXNlZCBhcyBhIGtleSBp
bnRvIHRoZSBzZXQgb2YgQXV0b0ZpbGwgcHJvZmlsZXMsCi0gICAgLy8gYW5kIHNob3VsZCBuZXZl
ciBiZSBuZWdhdGl2ZS4gIElmIGl0IGlzIDAsIHRoZW4gdGhlIHN1Z2dlc3Rpb24gaXMgYW4KLSAg
ICAvLyBBdXRvY29tcGxldGUgc3VnZ2VzdGlvbjsgYW5kIHx2YWx1ZXwgc3RvcmVzIHRoZSBzdWdn
ZXN0ZWQgdGV4dC4gIHxpbmRleHwKLSAgICAvLyBpcyBhbiBpbmRleCBvZiB0aGUgc2VsZWN0ZWQg
c3VnZ2VzdGlvbiBpbiB0aGUgbGlzdCBvZiBzdWdnZXN0aW9ucyBwcm92aWRlZAotICAgIC8vIGJ5
IHRoZSBjbGllbnQuCi0gICAgdmlydHVhbCB2b2lkIGRpZEFjY2VwdEF1dG9GaWxsU3VnZ2VzdGlv
bihjb25zdCBXZWJOb2RlJiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFdlYlN0cmluZyYgdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIGxhYmVsLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHVuaXF1ZUlELAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW5kZXgpIHsgfQot
Ci0gICAgLy8gSW5mb3JtcyB0aGUgYnJvd3NlciB0aGF0IHRoZSB1c2VyIGhhcyBzZWxlY3RlZCBh
biBBdXRvRmlsbCBzdWdnZXN0aW9uIGZvcgotICAgIC8vIGEgV2ViTm9kZS4gIFRoaXMgaGFwcGVu
cyB3aGVuIHRoZSB1c2VyIGhvdmVycyBvdmVyIGEgc3VnZ2VzdGlvbiBvciB1c2VzCi0gICAgLy8g
dGhlIGFycm93IGtleXMgdG8gbmF2aWdhdGUgdG8gYSBzdWdnZXN0aW9uLgotICAgIHZpcnR1YWwg
dm9pZCBkaWRTZWxlY3RBdXRvRmlsbFN1Z2dlc3Rpb24oY29uc3QgV2ViTm9kZSYsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIG5h
bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBX
ZWJTdHJpbmcmIGxhYmVsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50IHVuaXF1ZUlEKSB7IH0KLQotICAgIC8vIEluZm9ybXMgdGhlIGJyb3dzZXIgdGhh
dCB0aGUgdXNlciBoYXMgY2xlYXJlZCB0aGUgc2VsZWN0aW9uIGZyb20gdGhlCi0gICAgLy8gQXV0
b0ZpbGwgc3VnZ2VzdGlvbnMgcG9wdXAuICBUaGlzIGhhcHBlbnMgd2hlbiBhIHVzZXIgdXNlcyB0
aGUgYXJyb3cKLSAgICAvLyBrZXlzIHRvIG5hdmlnYXRlIG91dHNpZGUgdGhlIHJhbmdlIG9mIHBv
c3NpYmxlIHNlbGVjdGlvbnMuCi0gICAgdmlydHVhbCB2b2lkIGRpZENsZWFyQXV0b0ZpbGxTZWxl
Y3Rpb24oY29uc3QgV2ViTm9kZSYpIHsgfQotCi0gICAgLy8gSW5mb3JtcyB0aGUgYnJvd3NlciB0
aGF0IHRoZSB1c2VyIGhhcyBzZWxlY3RlZCBhbiBhdXRvY29tcGxldGUgKHBhc3N3b3JkCi0gICAg
Ly8gb3IgZmllbGQpIHN1Z2dlc3Rpb24gZnJvbSB0aGUgZHJvcC1kb3duLiAgVGhlIGlucHV0IGVs
ZW1lbnQgdGV4dCBoYXMKLSAgICAvLyBhbHJlYWR5IGJlZW4gc2V0IHRvIHRoZSBzZWxlY3RlZCBz
dWdnZXN0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBkaWRBY2NlcHRBdXRvY29tcGxldGVTdWdnZXN0
aW9uKGNvbnN0IFdlYklucHV0RWxlbWVudCYpIHsgfQotCiAgICAgLy8gR2VvbG9jYXRpb24gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
ICAgICAvLyBBY2Nlc3MgdGhlIGVtYmVkZGVyIEFQSSBmb3IgKGNsaWVudC1iYXNlZCkgZ2VvbG9j
YXRpb24gY2xpZW50IC4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvQXV0b0ZpbGxQb3B1cE1l
bnVDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvQXV0b0ZpbGxQ
b3B1cE1lbnVDbGllbnQuY3BwCShyZXZpc2lvbiA3NTM5NikKKysrIFdlYktpdC9jaHJvbWl1bS9z
cmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICsz
Nyw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiV2ViQXV0b0ZpbGxDbGll
bnQuaCIKICNpbmNsdWRlICJXZWJOb2RlLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5j
bHVkZSAiV2ViVmVjdG9yLmgiCkBAIC0xMzEsMTEgKzEzMiwxMSBAQCB2b2lkIEF1dG9GaWxsUG9w
dXBNZW51Q2xpZW50Ojp2YWx1ZUNoYW5nCiAKICAgICBBU1NFUlQobGlzdEluZGV4IDwgbV9uYW1l
cy5zaXplKCkpOwogCi0gICAgd2ViVmlldy0+Y2xpZW50KCktPmRpZEFjY2VwdEF1dG9GaWxsU3Vn
Z2VzdGlvbihXZWJOb2RlKGdldFRleHRGaWVsZCgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbmFtZXNbbGlzdEluZGV4XSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbGFiZWxzW2xpc3RJ
bmRleF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3VuaXF1ZUlEc1tsaXN0SW5kZXhdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGlzdEluZGV4KTsKKyAgICB3ZWJWaWV3LT5hdXRvRmlsbENs
aWVudCgpLT5kaWRBY2NlcHRBdXRvRmlsbFN1Z2dlc3Rpb24oV2ViTm9kZShnZXRUZXh0RmllbGQo
KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fbmFtZXNbbGlzdEluZGV4XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9sYWJlbHNbbGlzdEluZGV4XSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91
bmlxdWVJRHNbbGlzdEluZGV4XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGlzdEluZGV4KTsKIH0KIAogdm9pZCBBdXRvRmlsbFBv
cHVwTWVudUNsaWVudDo6c2VsZWN0aW9uQ2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wg
ZmlyZUV2ZW50cykKQEAgLTE0OSwxNyArMTUwLDE3IEBAIHZvaWQgQXV0b0ZpbGxQb3B1cE1lbnVD
bGllbnQ6OnNlbGVjdGlvbkMKIAogICAgIEFTU0VSVChsaXN0SW5kZXggPCBtX25hbWVzLnNpemUo
KSk7CiAKLSAgICB3ZWJWaWV3LT5jbGllbnQoKS0+ZGlkU2VsZWN0QXV0b0ZpbGxTdWdnZXN0aW9u
KFdlYk5vZGUoZ2V0VGV4dEZpZWxkKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9uYW1lc1tsaXN0SW5kZXhdLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9sYWJlbHNbbGlzdEluZGV4XSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdW5p
cXVlSURzW2xpc3RJbmRleF0pOworICAgIHdlYlZpZXctPmF1dG9GaWxsQ2xpZW50KCktPmRpZFNl
bGVjdEF1dG9GaWxsU3VnZ2VzdGlvbihXZWJOb2RlKGdldFRleHRGaWVsZCgpKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9uYW1l
c1tsaXN0SW5kZXhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX2xhYmVsc1tsaXN0SW5kZXhdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3VuaXF1ZUlEc1tsaXN0
SW5kZXhdKTsKIH0KIAogdm9pZCBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6c2VsZWN0aW9uQ2xl
YXJlZCgpCiB7CiAgICAgV2ViVmlld0ltcGwqIHdlYlZpZXcgPSBnZXRXZWJWaWV3KCk7CiAgICAg
aWYgKHdlYlZpZXcpCi0gICAgICAgIHdlYlZpZXctPmNsaWVudCgpLT5kaWRDbGVhckF1dG9GaWxs
U2VsZWN0aW9uKFdlYk5vZGUoZ2V0VGV4dEZpZWxkKCkpKTsKKyAgICAgICAgd2ViVmlldy0+YXV0
b0ZpbGxDbGllbnQoKS0+ZGlkQ2xlYXJBdXRvRmlsbFNlbGVjdGlvbihXZWJOb2RlKGdldFRleHRG
aWVsZCgpKSk7CiB9CiAKIFN0cmluZyBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6aXRlbVRleHQo
dW5zaWduZWQgbGlzdEluZGV4KSBjb25zdApAQCAtMjE5LDcgKzIyMCw3IEBAIHZvaWQgQXV0b0Zp
bGxQb3B1cE1lbnVDbGllbnQ6OnBvcHVwRGlkSGkKICAgICAgICAgcmV0dXJuOwogCiAgICAgd2Vi
Vmlldy0+YXV0b0ZpbGxQb3B1cERpZEhpZGUoKTsKLSAgICB3ZWJWaWV3LT5jbGllbnQoKS0+ZGlk
Q2xlYXJBdXRvRmlsbFNlbGVjdGlvbihXZWJOb2RlKGdldFRleHRGaWVsZCgpKSk7CisgICAgd2Vi
Vmlldy0+YXV0b0ZpbGxDbGllbnQoKS0+ZGlkQ2xlYXJBdXRvRmlsbFNlbGVjdGlvbihXZWJOb2Rl
KGdldFRleHRGaWVsZCgpKSk7CiB9CiAKIGJvb2wgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6Oml0
ZW1Jc1NlcGFyYXRvcih1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJv
bWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDc1Mzk2KQorKysgV2ViS2l0
L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIs
NiArNDIsNyBAQAogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogCiAjaW5jbHVkZSAiRE9NVXRp
bGl0aWVzUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYkF1dG9GaWxsQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViRWRpdGluZ0FjdGlvbi5oIgogI2luY2x1ZGUgIldlYkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJXZWJGcmFtZUltcGwuaCIKQEAgLTY0OSwxNSArNjUwLDE1IEBAIHZvaWQgRWRpdG9yQ2xpZW50
SW1wbDo6aGFuZGxlSW5wdXRNZXRob2QKIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6dGV4dEZpZWxk
RGlkQmVnaW5FZGl0aW5nKEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgSFRNTElucHV0RWxlbWVu
dCogaW5wdXRFbGVtZW50ID0gdG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpOwotICAgIGlmICht
X3dlYlZpZXctPmNsaWVudCgpICYmIGlucHV0RWxlbWVudCkKLSAgICAgICAgbV93ZWJWaWV3LT5j
bGllbnQoKS0+dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKFdlYklucHV0RWxlbWVudChpbnB1dEVs
ZW1lbnQpKTsKKyAgICBpZiAobV93ZWJWaWV3LT5hdXRvRmlsbENsaWVudCgpICYmIGlucHV0RWxl
bWVudCkKKyAgICAgICAgbV93ZWJWaWV3LT5hdXRvRmlsbENsaWVudCgpLT50ZXh0RmllbGREaWRC
ZWdpbkVkaXRpbmcoV2ViSW5wdXRFbGVtZW50KGlucHV0RWxlbWVudCkpOwogfQogCiB2b2lkIEVk
aXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcoRWxlbWVudCogZWxlbWVudCkK
IHsKICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1l
bnQoZWxlbWVudCk7Ci0gICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkgJiYgaW5wdXRFbGVtZW50
KQotICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT50ZXh0RmllbGREaWRFbmRFZGl0aW5nKFdl
YklucHV0RWxlbWVudChpbnB1dEVsZW1lbnQpKTsKKyAgICBpZiAobV93ZWJWaWV3LT5hdXRvRmls
bENsaWVudCgpICYmIGlucHV0RWxlbWVudCkKKyAgICAgICAgbV93ZWJWaWV3LT5hdXRvRmlsbENs
aWVudCgpLT50ZXh0RmllbGREaWRFbmRFZGl0aW5nKFdlYklucHV0RWxlbWVudChpbnB1dEVsZW1l
bnQpKTsKIAogICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IGZvY3VzIHdhcyBsb3N0LiAgQmUgY2Fy
ZWZ1bCB3aXRoIHRoaXMsIGl0J3MgYWxzbyBzZW50CiAgICAgLy8gd2hlbiB0aGUgcGFnZSBpcyBi
ZWluZyBjbG9zZWQuCkBAIC02OTEsOCArNjkyLDggQEAgdm9pZCBFZGl0b3JDbGllbnRJbXBsOjp0
ZXh0RGlkQ2hhbmdlSW5UZQogewogICAgIEFTU0VSVChlbGVtZW50LT5oYXNMb2NhbE5hbWUoSFRN
TE5hbWVzOjppbnB1dFRhZykpOwogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9
IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50KTsKLSAgICBpZiAobV93ZWJW
aWV3LT5jbGllbnQoKSkKLSAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+dGV4dEZpZWxkRGlk
Q2hhbmdlKFdlYklucHV0RWxlbWVudChpbnB1dEVsZW1lbnQpKTsKKyAgICBpZiAobV93ZWJWaWV3
LT5hdXRvRmlsbENsaWVudCgpKQorICAgICAgICBtX3dlYlZpZXctPmF1dG9GaWxsQ2xpZW50KCkt
PnRleHRGaWVsZERpZENoYW5nZShXZWJJbnB1dEVsZW1lbnQoaW5wdXRFbGVtZW50KSk7CiAKICAg
ICAvLyBOb3RlIHRoYXQgd2Ugb25seSBzaG93IHRoZSBhdXRvZmlsbCBwb3B1cCBpbiB0aGlzIGNh
c2UgaWYgdGhlIGNhcmV0IGlzIGF0CiAgICAgLy8gdGhlIGVuZC4gIFRoaXMgbWF0Y2hlcyBGaXJl
Rm94IGFuZCBTYWZhcmkgYnV0IG5vdCBJRS4KQEAgLTc4NSwxNCArNzg2LDYgQEAgdm9pZCBFZGl0
b3JDbGllbnRJbXBsOjpkb0F1dG9maWxsKFRpbWVyPAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0cnVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAg
IC8vIFRoZW4gdHJpZ2dlciBmb3JtIGF1dG9maWxsLgotICAgIFdlYlN0cmluZyBuYW1lID0gV2Vi
SW5wdXRFbGVtZW50KGlucHV0RWxlbWVudCkubmFtZUZvckF1dG9maWxsKCk7Ci0gICAgQVNTRVJU
KHN0YXRpY19jYXN0PGludD4obmFtZS5sZW5ndGgoKSkgPiAwKTsKLQotICAgIGlmIChtX3dlYlZp
ZXctPmNsaWVudCgpKQotICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5xdWVyeUF1dG9maWxs
U3VnZ2VzdGlvbnMoV2ViTm9kZShpbnB1dEVsZW1lbnQpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgV2ViU3RyaW5nKHZhbHVlKSk7
CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6Y2FuY2VsUGVuZGluZ0F1dG9maWxsKCkKQEAg
LTgwMyw4ICs3OTYsOCBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmNhbmNlbFBlbmRpbmdBdXRv
CiAKIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6b25BdXRvY29tcGxldGVTdWdnZXN0aW9uQWNjZXB0
ZWQoSFRNTElucHV0RWxlbWVudCogdGV4dEZpZWxkKQogewotICAgIGlmIChtX3dlYlZpZXctPmNs
aWVudCgpKQotICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5kaWRBY2NlcHRBdXRvY29tcGxl
dGVTdWdnZXN0aW9uKFdlYklucHV0RWxlbWVudCh0ZXh0RmllbGQpKTsKKyAgICBpZiAobV93ZWJW
aWV3LT5hdXRvRmlsbENsaWVudCgpKQorICAgICAgICBtX3dlYlZpZXctPmF1dG9GaWxsQ2xpZW50
KCktPmRpZEFjY2VwdEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24oV2ViSW5wdXRFbGVtZW50KHRleHRG
aWVsZCkpOwogCiAgICAgV2ViRnJhbWVJbXBsKiB3ZWJmcmFtZSA9IFdlYkZyYW1lSW1wbDo6ZnJv
bUZyYW1lKHRleHRGaWVsZC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSk7CiAgICAgaWYgKCF3ZWJmcmFt
ZSkKQEAgLTgxNyw5ICs4MTAsOSBAQCBib29sIEVkaXRvckNsaWVudEltcGw6OmRvVGV4dEZpZWxk
Q29tbWFuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVs
ZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCk7Ci0gICAgaWYgKG1fd2ViVmlldy0+
Y2xpZW50KCkgJiYgaW5wdXRFbGVtZW50KSB7Ci0gICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCkt
PnRleHRGaWVsZERpZFJlY2VpdmVLZXlEb3duKFdlYklucHV0RWxlbWVudChpbnB1dEVsZW1lbnQp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJLZXlib2FyZEV2ZW50QnVpbGRlcigqZXZlbnQpKTsKKyAgICBpZiAobV93ZWJWaWV3LT5h
dXRvRmlsbENsaWVudCgpICYmIGlucHV0RWxlbWVudCkgeworICAgICAgICBtX3dlYlZpZXctPmF1
dG9GaWxsQ2xpZW50KCktPnRleHRGaWVsZERpZFJlY2VpdmVLZXlEb3duKFdlYklucHV0RWxlbWVu
dChpbnB1dEVsZW1lbnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktleWJvYXJkRXZlbnRCdWlsZGVyKCpldmVudCkp
OwogICAgIH0KIAogICAgIC8vIFJlbWVtYmVyIGlmIGJhY2tzcGFjZSB3YXMgcHJlc3NlZCBmb3Ig
dGhlIGF1dG9maWxsLiAgSXQgaXMgbm90IGNsZWFyIGhvdyB0bwpJbmRleDogV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDc1Mzk2KQorKysgV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk3LDYgKzk3LDcgQEAKICNpbmNs
dWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIlZlY3Rvci5oIgogI2luY2x1
ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJXZWJBdXRvRmlsbENsaWVu
dC5oIgogI2luY2x1ZGUgIldlYkRldlRvb2xzQWdlbnRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
RGV2VG9vbHNBZ2VudEltcGwuaCIKICNpbmNsdWRlICJXZWJEcmFnRGF0YS5oIgpAQCAtMjEyLDEz
ICsyMTMsMTMgQEAgc3RhdGljIGJvb2wgc2hvdWxkVXNlRXh0ZXJuYWxQb3B1cE1lbnVzCiAKIC8v
IFdlYlZpZXcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCi1XZWJWaWV3KiBXZWJWaWV3OjpjcmVhdGUoV2ViVmlld0NsaWVu
dCogY2xpZW50LCBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiBkZXZUb29sc0NsaWVudCkKK1dlYlZp
ZXcqIFdlYlZpZXc6OmNyZWF0ZShXZWJWaWV3Q2xpZW50KiBjbGllbnQsIFdlYkRldlRvb2xzQWdl
bnRDbGllbnQqIGRldlRvb2xzQ2xpZW50LCBXZWJBdXRvRmlsbENsaWVudCogYXV0b0ZpbGxDbGll
bnQpCiB7CiAgICAgLy8gS2VlcCBydW50aW1lIGZsYWcgZm9yIGRldmljZSBtb3Rpb24gdHVybmVk
IG9mZiB1bnRpbCBpdCdzIGltcGxlbWVudGVkLgogICAgIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5h
YmxlRGV2aWNlTW90aW9uKGZhbHNlKTsKIAogICAgIC8vIFBhc3MgdGhlIFdlYlZpZXdJbXBsJ3Mg
c2VsZi1yZWZlcmVuY2UgdG8gdGhlIGNhbGxlci4KLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YlZpZXdJbXBsKGNsaWVudCwgZGV2VG9vbHNDbGllbnQpKS5sZWFrUmVmKCk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBXZWJWaWV3SW1wbChjbGllbnQsIGRldlRvb2xzQ2xpZW50LCBhdXRvRmls
bENsaWVudCkpLmxlYWtSZWYoKTsKIH0KIAogdm9pZCBXZWJWaWV3OjpzZXRVc2VFeHRlcm5hbFBv
cHVwTWVudXMoYm9vbCB1c2VFeHRlcm5hbFBvcHVwTWVudXMpCkBAIC0yNzAsOCArMjcxLDkgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6aW5pdGlhbGl6ZU1haW5GcmFtZShXZQogICAgIFNlY3VyaXR5T3Jp
Z2luOjpzZXRMb2NhbExvYWRQb2xpY3koU2VjdXJpdHlPcmlnaW46OkFsbG93TG9jYWxMb2Fkc0Zv
ckxvY2FsT25seSk7CiB9CiAKLVdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50
KiBjbGllbnQsIFdlYkRldlRvb2xzQWdlbnRDbGllbnQqIGRldlRvb2xzQ2xpZW50KQorV2ViVmll
d0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCwgV2ViRGV2VG9vbHNBZ2Vu
dENsaWVudCogZGV2VG9vbHNDbGllbnQsIFdlYkF1dG9GaWxsQ2xpZW50KiBhdXRvRmlsbENsaWVu
dCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fYXV0b0ZpbGxDbGllbnQoYXV0b0Zp
bGxDbGllbnQpCiAgICAgLCBtX2JhY2tGb3J3YXJkTGlzdENsaWVudEltcGwodGhpcykKICAgICAs
IG1fY2hyb21lQ2xpZW50SW1wbCh0aGlzKQogICAgICwgbV9jb250ZXh0TWVudUNsaWVudEltcGwo
dGhpcykKQEAgLTY2NCw3ICs2NjYsNyBAQCBib29sIFdlYlZpZXdJbXBsOjphdXRvY29tcGxldGVI
YW5kbGVLZXlFCiAKICAgICAgICAgV2ViU3RyaW5nIG5hbWUgPSBXZWJJbnB1dEVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVsZW1lbnQpKS5uYW1lRm9yQXV0b2ZpbGwoKTsK
ICAgICAgICAgV2ViU3RyaW5nIHZhbHVlID0gbV9hdXRvRmlsbFBvcHVwQ2xpZW50LT5pdGVtVGV4
dChzZWxlY3RlZEluZGV4KTsKLSAgICAgICAgbV9jbGllbnQtPnJlbW92ZUF1dG9maWxsU3VnZ2Vz
dGlvbnMobmFtZSwgdmFsdWUpOworICAgICAgICBtX2F1dG9GaWxsQ2xpZW50LT5yZW1vdmVBdXRv
Y29tcGxldGVTdWdnZXN0aW9uKG5hbWUsIHZhbHVlKTsKICAgICAgICAgLy8gVXBkYXRlIHRoZSBl
bnRyaWVzIGluIHRoZSBjdXJyZW50bHkgc2hvd2luZyBwb3B1cCB0byByZWZsZWN0IHRoZQogICAg
ICAgICAvLyBkZWxldGlvbi4KICAgICAgICAgbV9hdXRvRmlsbFBvcHVwQ2xpZW50LT5yZW1vdmVT
dWdnZXN0aW9uQXRJbmRleChzZWxlY3RlZEluZGV4KTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgJKHJldmlzaW9uIDc1Mzk2KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjAsNiArMjIwLDExIEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIG1fY2xpZW50OwogICAgIH0KIAorICAgIFdlYkF1dG9GaWxsQ2xpZW50KiBhdXRv
RmlsbENsaWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9hdXRvRmlsbENsaWVudDsKKyAg
ICB9CisKICAgICAvLyBSZXR1cm5zIHRoZSBwYWdlIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhp
cyB2aWV3LiBUaGlzIG1heSBiZSBudWxsIHdoZW4KICAgICAvLyB0aGUgcGFnZSBpcyBzaHV0dGlu
ZyBkb3duLCBidXQgd2lsbCBiZSB2YWxpZCBhdCBhbGwgb3RoZXIgdGltZXMuCiAgICAgV2ViQ29y
ZTo6UGFnZSogcGFnZSgpIGNvbnN0CkBAIC0zNjIsNyArMzY3LDcgQEAgcHJpdmF0ZToKICAgICAg
IERyYWdPdmVyCiAgICAgfTsKIAotICAgIFdlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVu
dCwgV2ViRGV2VG9vbHNBZ2VudENsaWVudCogZGV2VG9vbHNDbGllbnQpOworICAgIFdlYlZpZXdJ
bXBsKFdlYlZpZXdDbGllbnQqLCBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiwgV2ViQXV0b0ZpbGxD
bGllbnQqKTsKICAgICB+V2ViVmlld0ltcGwoKTsKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0
aGUgZXZlbnQgd2FzIGFjdHVhbGx5IHByb2Nlc3NlZC4KQEAgLTQwMyw2ICs0MDgsNyBAQCBwcml2
YXRlOgogI2VuZGlmCiAKICAgICBXZWJWaWV3Q2xpZW50KiBtX2NsaWVudDsKKyAgICBXZWJBdXRv
RmlsbENsaWVudCogbV9hdXRvRmlsbENsaWVudDsKIAogICAgIEJhY2tGb3J3YXJkTGlzdENsaWVu
dEltcGwgbV9iYWNrRm9yd2FyZExpc3RDbGllbnRJbXBsOwogICAgIENocm9tZUNsaWVudEltcGwg
bV9jaHJvbWVDbGllbnRJbXBsOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJC
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckJhc2Uu
Y3BwCShyZXZpc2lvbiA3NTM5NikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQmFz
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIFdlYldvcmtlckJh
c2U6OmluaXRpYWxpemVMb2FkZXIoY29uCiAgICAgLy8gbG9hZGluZyByZXF1ZXN0cyBmcm9tIHRo
ZSB3b3JrZXIgY29udGV4dCB0byB0aGUgcmVzdCBvZiBXZWJLaXQgYW5kIENocm9taXVtCiAgICAg
Ly8gaW5mcmFzdHJ1Y3R1cmUuCiAgICAgQVNTRVJUKCFtX3dlYlZpZXcpOwotICAgIG1fd2ViVmll
dyA9IFdlYlZpZXc6OmNyZWF0ZSgwLCAwKTsKKyAgICBtX3dlYlZpZXcgPSBXZWJWaWV3OjpjcmVh
dGUoMCwgMCwgMCk7CiAgICAgbV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRPZmZsaW5lV2ViQXBw
bGljYXRpb25DYWNoZUVuYWJsZWQoV2ViUnVudGltZUZlYXR1cmVzOjppc0FwcGxpY2F0aW9uQ2Fj
aGVFbmFibGVkKCkpOwogICAgIG1fd2ViVmlldy0+aW5pdGlhbGl6ZU1haW5GcmFtZSh0aGlzKTsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78452</attachid>
            <date>2011-01-10 14:37:22 -0800</date>
            <delta_ts>2011-01-10 15:52:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52169-20110110143533.patch</filename>
            <type>text/plain</type>
            <size>19818</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAkocmV2
aXNpb24gNzUzOTYpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzEsNyArNTcxLDcgQEAgV2ViVmlld0hvc3QqIFRlc3RT
aGVsbDo6Y3JlYXRlTmV3V2luZG93KAogV2ViVmlld0hvc3QqIFRlc3RTaGVsbDo6Y3JlYXRlTmV3
V2luZG93KGNvbnN0IFdlYktpdDo6V2ViVVJMJiB1cmwsIERSVERldlRvb2xzQWdlbnQqIGRldlRv
b2xzQWdlbnQpCiB7CiAgICAgV2ViVmlld0hvc3QqIGhvc3QgPSBuZXcgV2ViVmlld0hvc3QodGhp
cyk7Ci0gICAgV2ViVmlldyogdmlldyA9IFdlYlZpZXc6OmNyZWF0ZShob3N0LCBkZXZUb29sc0Fn
ZW50KTsKKyAgICBXZWJWaWV3KiB2aWV3ID0gV2ViVmlldzo6Y3JlYXRlKGhvc3QsIGRldlRvb2xz
QWdlbnQsIDApOwogICAgIGhvc3QtPnNldFdlYldpZGdldCh2aWV3KTsKICAgICBtX3ByZWZzLmFw
cGx5VG8odmlldyk7CiAgICAgdmlldy0+aW5pdGlhbGl6ZU1haW5GcmFtZShob3N0KTsKSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwkocmV2aXNpb24gNzU0MjQpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMDEtMTAgIEpvaG4gQWJkLUVs
LU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIENhbGwgV2ViQXV0b0ZpbGxDbGllbnQgaW5z
dGVhZCBvZiBXZWJWaWV3Q2xpZW50IGZvciBhdXRvZmlsbCByZWxhdGVkIGNhbGxiYWNrcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjkKKworICAg
ICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6ZGlkVXBkYXRlSW5zcGVjdG9yU2V0
dGluZyk6CisgICAgICAgICogc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6QXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OnZhbHVlQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjpzZWxlY3Rpb25DaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6QXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OnNlbGVjdGlvbkNsZWFy
ZWQpOgorICAgICAgICAoV2ViS2l0OjpBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6cG9wdXBEaWRI
aWRlKToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyk6CisgICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjp0ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQp
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkb0F1dG9maWxsKToKKyAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6b25BdXRvY29tcGxldGVTdWdnZXN0aW9uQWNj
ZXB0ZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkb1RleHRGaWVsZENv
bW1hbmRGcm9tRXZlbnQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXc6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpXZWJWaWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphdXRvY29tcGxl
dGVIYW5kbGVLZXlFdmVudCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjphdXRvRmlsbENsaWVudCk6CisgICAgICAgICogc3JjL1dl
YldvcmtlckJhc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJCYXNlOjppbml0aWFs
aXplTG9hZGVyKToKKwogMjAxMS0wMS0xMCAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCkluZGV4OiBX
ZWJLaXQvY2hyb21pdW0vREVQUwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vREVQUwko
cmV2aXNpb24gNzUzOTYpCisrKyBXZWJLaXQvY2hyb21pdW0vREVQUwkod29ya2luZyBjb3B5KQpA
QCAtMzIsNyArMzIsNyBAQAogCiB2YXJzID0gewogICAnY2hyb21pdW1fc3ZuJzogJ2h0dHA6Ly9z
cmMuY2hyb21pdW0ub3JnL3N2bi90cnVuay9zcmMnLAotICAnY2hyb21pdW1fcmV2JzogJzcwODQ0
JworICAnY2hyb21pdW1fcmV2JzogJzcwOTUyJwogfQogCiBkZXBzID0gewpJbmRleDogV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3LmgJKHJldmlzaW9uIDc1Mzk2KQorKysgV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDkgKzM2LDEzIEBACiAjaW5jbHVk
ZSAiV2ViVmVjdG9yLmgiCiAjaW5jbHVkZSAiV2ViV2lkZ2V0LmgiCiAKKy8vIEZJWE1FKGphbSk6
IHRha2Ugb3V0IG9uY2UgQ2hyb21pdW0gcm9sbHMgcGFzdCB0aGlzIHJldmlzaW9uCisjZGVmaW5l
IFdFQktJVF9IQVNfV0VCX0FVVE9fRklMTF9DTElFTlQKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q7CitjbGFzcyBXZWJBdXRvRmlsbENsaWVudDsK
IGNsYXNzIFdlYkRldlRvb2xzQWdlbnQ7CiBjbGFzcyBXZWJEZXZUb29sc0FnZW50Q2xpZW50Owog
Y2xhc3MgV2ViRHJhZ0RhdGE7CkBAIC04MSw4ICs4NSwxMCBAQCBwdWJsaWM6CiAKICAgICAvLyBD
cmVhdGVzIGEgV2ViVmlldyB0aGF0IGlzIE5PVCB5ZXQgaW5pdGlhbGl6ZWQuICBZb3Ugd2lsbCBu
ZWVkIHRvCiAgICAgLy8gY2FsbCBpbml0aWFsaXplTWFpbkZyYW1lIHRvIGZpbmlzaCB0aGUgaW5p
dGlhbGl6YXRpb24uICBJdCBpcyB2YWxpZAotICAgIC8vIHRvIHBhc3MgbnVsbCBXZWJWaWV3Q2xp
ZW50IGFuZCBXZWJEZXZUb29sc0FnZW50Q2xpZW50IHBvaW50ZXJzLgotICAgIFdFQktJVF9BUEkg
c3RhdGljIFdlYlZpZXcqIGNyZWF0ZShXZWJWaWV3Q2xpZW50KiwgV2ViRGV2VG9vbHNBZ2VudENs
aWVudCopOworICAgIC8vIHRvIHBhc3MgbnVsbCBjbGllbnQgcG9pbnRlcnMuCisgICAgV0VCS0lU
X0FQSSBzdGF0aWMgV2ViVmlldyogY3JlYXRlKFdlYlZpZXdDbGllbnQqLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViQXV0b0ZpbGxDbGllbnQqKTsKIAog
ICAgIC8vIEFmdGVyIGNyZWF0aW5nIGEgV2ViVmlldywgeW91IHNob3VsZCBpbW1lZGlhdGVseSBj
YWxsIHRoaXMgbWV0aG9kLgogICAgIC8vIFlvdSBjYW4gb3B0aW9uYWxseSBtb2RpZnkgdGhlIHNl
dHRpbmdzIGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9kLgpJbmRleDogV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJWaWV3Q2xpZW50LmgJKHJldmlzaW9uIDc1Mzk2KQorKysgV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NiwxMiArMTY2LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGVjdXRlQ29tbWFuZChjb25zdCBXZWJT
dHJpbmcmIGNvbW1hbmROYW1lKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kRWRpdGluZygp
IHsgfQogCi0gICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgY2FsbGVkIHdoZW4gdGhlIHVzZXJzIGVk
aXRzIGEgdGV4dC1maWVsZC4KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkQmVnaW5FZGl0
aW5nKGNvbnN0IFdlYklucHV0RWxlbWVudCYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0Rmll
bGREaWRFbmRFZGl0aW5nKGNvbnN0IFdlYklucHV0RWxlbWVudCYpIHsgfQotICAgIHZpcnR1YWwg
dm9pZCB0ZXh0RmllbGREaWRDaGFuZ2UoY29uc3QgV2ViSW5wdXRFbGVtZW50JikgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIHRleHRGaWVsZERpZFJlY2VpdmVLZXlEb3duKGNvbnN0IFdlYklucHV0RWxl
bWVudCYsIGNvbnN0IFdlYktleWJvYXJkRXZlbnQmKSB7IH0KLQogICAgIC8vIFRoaXMgbWV0aG9k
IGlzIGNhbGxlZCBpbiByZXNwb25zZSB0byBXZWJWaWV3J3MgaGFuZGxlSW5wdXRFdmVudCgpCiAg
ICAgLy8gd2hlbiB0aGUgZGVmYXVsdCBhY3Rpb24gZm9yIHRoZSBjdXJyZW50IGtleWJvYXJkIGV2
ZW50IGlzIG5vdAogICAgIC8vIHN1cHByZXNzZWQgYnkgdGhlIHBhZ2UsIHRvIGdpdmUgdGhlIGVt
YmVkZGVyIGEgY2hhbmNlIHRvIGhhbmRsZQpAQCAtMzExLDUyICszMDUsNiBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlSW5zcGVjdG9yU2V0dGluZyhjb25zdCBXZWJTdHJp
bmcmIGtleSwgY29uc3QgV2ViU3RyaW5nJiB2YWx1ZSkgeyB9CiAKLQotICAgIC8vIEF1dG9GaWxs
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotCi0gICAgLy8gUXVlcmllcyB0aGUgYnJvd3NlciBmb3Igc3VnZ2VzdGlvbnMgdG8gYmUg
c2hvd24gZm9yIHRoZSBmb3JtIHRleHQKLSAgICAvLyBmaWVsZCBuYW1lZCB8bmFtZXwuICB8dmFs
dWV8IGlzIHRoZSB0ZXh0IGVudGVyZWQgYnkgdGhlIHVzZXIgc28KLSAgICAvLyBmYXIgYW5kIHRo
ZSBXZWJOb2RlIGNvcnJlc3BvbmRzIHRvIHRoZSBpbnB1dCBmaWVsZC4KLSAgICB2aXJ0dWFsIHZv
aWQgcXVlcnlBdXRvZmlsbFN1Z2dlc3Rpb25zKGNvbnN0IFdlYk5vZGUmLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiBuYW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiB2
YWx1ZSkgeyB9Ci0KLSAgICAvLyBJbnN0cnVjdHMgdGhlIGJyb3dzZXIgdG8gcmVtb3ZlIHRoZSBB
dXRvY29tcGxldGUgZW50cnkgc3BlY2lmaWVkIGZyb20KLSAgICAvLyBpdHMgREIuCi0gICAgLy8g
RklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCBiZSBuYW1lZCByZW1vdmVBdXRvY29tcGxldGVTdWdl
c3Rpb24uCi0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUF1dG9maWxsU3VnZ2VzdGlvbnMoY29uc3Qg
V2ViU3RyaW5nJiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFdlYlN0cmluZyYgdmFsdWUpIHsgfQotCi0gICAgLy8gSW5mb3JtcyB0aGUgYnJv
d3NlciB0aGF0IHRoZSB1c2VyIGhhcyBhY2NlcHRlZCBhbiBBdXRvRmlsbCBzdWdnZXN0aW9uIGZv
cgotICAgIC8vIGEgV2ViTm9kZS4gIHx1bmlxdWVJRHwgaXMgdXNlZCBhcyBhIGtleSBpbnRvIHRo
ZSBzZXQgb2YgQXV0b0ZpbGwgcHJvZmlsZXMsCi0gICAgLy8gYW5kIHNob3VsZCBuZXZlciBiZSBu
ZWdhdGl2ZS4gIElmIGl0IGlzIDAsIHRoZW4gdGhlIHN1Z2dlc3Rpb24gaXMgYW4KLSAgICAvLyBB
dXRvY29tcGxldGUgc3VnZ2VzdGlvbjsgYW5kIHx2YWx1ZXwgc3RvcmVzIHRoZSBzdWdnZXN0ZWQg
dGV4dC4gIHxpbmRleHwKLSAgICAvLyBpcyBhbiBpbmRleCBvZiB0aGUgc2VsZWN0ZWQgc3VnZ2Vz
dGlvbiBpbiB0aGUgbGlzdCBvZiBzdWdnZXN0aW9ucyBwcm92aWRlZAotICAgIC8vIGJ5IHRoZSBj
bGllbnQuCi0gICAgdmlydHVhbCB2b2lkIGRpZEFjY2VwdEF1dG9GaWxsU3VnZ2VzdGlvbihjb25z
dCBXZWJOb2RlJiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFdlYlN0cmluZyYgdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIGxhYmVsLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHVuaXF1ZUlELAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW5kZXgpIHsgfQotCi0gICAg
Ly8gSW5mb3JtcyB0aGUgYnJvd3NlciB0aGF0IHRoZSB1c2VyIGhhcyBzZWxlY3RlZCBhbiBBdXRv
RmlsbCBzdWdnZXN0aW9uIGZvcgotICAgIC8vIGEgV2ViTm9kZS4gIFRoaXMgaGFwcGVucyB3aGVu
IHRoZSB1c2VyIGhvdmVycyBvdmVyIGEgc3VnZ2VzdGlvbiBvciB1c2VzCi0gICAgLy8gdGhlIGFy
cm93IGtleXMgdG8gbmF2aWdhdGUgdG8gYSBzdWdnZXN0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBk
aWRTZWxlY3RBdXRvRmlsbFN1Z2dlc3Rpb24oY29uc3QgV2ViTm9kZSYsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIG5hbWUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJp
bmcmIGxhYmVsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW50IHVuaXF1ZUlEKSB7IH0KLQotICAgIC8vIEluZm9ybXMgdGhlIGJyb3dzZXIgdGhhdCB0aGUg
dXNlciBoYXMgY2xlYXJlZCB0aGUgc2VsZWN0aW9uIGZyb20gdGhlCi0gICAgLy8gQXV0b0ZpbGwg
c3VnZ2VzdGlvbnMgcG9wdXAuICBUaGlzIGhhcHBlbnMgd2hlbiBhIHVzZXIgdXNlcyB0aGUgYXJy
b3cKLSAgICAvLyBrZXlzIHRvIG5hdmlnYXRlIG91dHNpZGUgdGhlIHJhbmdlIG9mIHBvc3NpYmxl
IHNlbGVjdGlvbnMuCi0gICAgdmlydHVhbCB2b2lkIGRpZENsZWFyQXV0b0ZpbGxTZWxlY3Rpb24o
Y29uc3QgV2ViTm9kZSYpIHsgfQotCi0gICAgLy8gSW5mb3JtcyB0aGUgYnJvd3NlciB0aGF0IHRo
ZSB1c2VyIGhhcyBzZWxlY3RlZCBhbiBhdXRvY29tcGxldGUgKHBhc3N3b3JkCi0gICAgLy8gb3Ig
ZmllbGQpIHN1Z2dlc3Rpb24gZnJvbSB0aGUgZHJvcC1kb3duLiAgVGhlIGlucHV0IGVsZW1lbnQg
dGV4dCBoYXMKLSAgICAvLyBhbHJlYWR5IGJlZW4gc2V0IHRvIHRoZSBzZWxlY3RlZCBzdWdnZXN0
aW9uLgotICAgIHZpcnR1YWwgdm9pZCBkaWRBY2NlcHRBdXRvY29tcGxldGVTdWdnZXN0aW9uKGNv
bnN0IFdlYklucHV0RWxlbWVudCYpIHsgfQotCiAgICAgLy8gR2VvbG9jYXRpb24gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAv
LyBBY2Nlc3MgdGhlIGVtYmVkZGVyIEFQSSBmb3IgKGNsaWVudC1iYXNlZCkgZ2VvbG9jYXRpb24g
Y2xpZW50IC4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvQXV0b0ZpbGxQb3B1cE1lbnVDbGll
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvQXV0b0ZpbGxQb3B1cE1l
bnVDbGllbnQuY3BwCShyZXZpc2lvbiA3NTM5NikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvQXV0
b0ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgog
I2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiV2ViQXV0b0ZpbGxDbGllbnQuaCIK
ICNpbmNsdWRlICJXZWJOb2RlLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAi
V2ViVmVjdG9yLmgiCkBAIC0xMzEsMTEgKzEzMiwxMSBAQCB2b2lkIEF1dG9GaWxsUG9wdXBNZW51
Q2xpZW50Ojp2YWx1ZUNoYW5nCiAKICAgICBBU1NFUlQobGlzdEluZGV4IDwgbV9uYW1lcy5zaXpl
KCkpOwogCi0gICAgd2ViVmlldy0+Y2xpZW50KCktPmRpZEFjY2VwdEF1dG9GaWxsU3VnZ2VzdGlv
bihXZWJOb2RlKGdldFRleHRGaWVsZCgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fbmFtZXNbbGlzdEluZGV4XSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbGFiZWxzW2xpc3RJbmRleF0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Vu
aXF1ZUlEc1tsaXN0SW5kZXhdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGlzdEluZGV4KTsKKyAgICB3ZWJWaWV3LT5hdXRvRmlsbENsaWVudCgp
LT5kaWRBY2NlcHRBdXRvRmlsbFN1Z2dlc3Rpb24oV2ViTm9kZShnZXRUZXh0RmllbGQoKSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fbmFtZXNbbGlzdEluZGV4XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9sYWJlbHNbbGlzdEluZGV4XSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91bmlxdWVJ
RHNbbGlzdEluZGV4XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGlzdEluZGV4KTsKIH0KIAogdm9pZCBBdXRvRmlsbFBvcHVwTWVu
dUNsaWVudDo6c2VsZWN0aW9uQ2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wgZmlyZUV2
ZW50cykKQEAgLTE0OSwxNyArMTUwLDE3IEBAIHZvaWQgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6
OnNlbGVjdGlvbkMKIAogICAgIEFTU0VSVChsaXN0SW5kZXggPCBtX25hbWVzLnNpemUoKSk7CiAK
LSAgICB3ZWJWaWV3LT5jbGllbnQoKS0+ZGlkU2VsZWN0QXV0b0ZpbGxTdWdnZXN0aW9uKFdlYk5v
ZGUoZ2V0VGV4dEZpZWxkKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9uYW1lc1tsaXN0SW5kZXhdLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9sYWJlbHNbbGlzdEluZGV4XSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdW5pcXVlSURz
W2xpc3RJbmRleF0pOworICAgIHdlYlZpZXctPmF1dG9GaWxsQ2xpZW50KCktPmRpZFNlbGVjdEF1
dG9GaWxsU3VnZ2VzdGlvbihXZWJOb2RlKGdldFRleHRGaWVsZCgpKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9uYW1lc1tsaXN0
SW5kZXhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX2xhYmVsc1tsaXN0SW5kZXhdLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3VuaXF1ZUlEc1tsaXN0SW5kZXhd
KTsKIH0KIAogdm9pZCBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6c2VsZWN0aW9uQ2xlYXJlZCgp
CiB7CiAgICAgV2ViVmlld0ltcGwqIHdlYlZpZXcgPSBnZXRXZWJWaWV3KCk7CiAgICAgaWYgKHdl
YlZpZXcpCi0gICAgICAgIHdlYlZpZXctPmNsaWVudCgpLT5kaWRDbGVhckF1dG9GaWxsU2VsZWN0
aW9uKFdlYk5vZGUoZ2V0VGV4dEZpZWxkKCkpKTsKKyAgICAgICAgd2ViVmlldy0+YXV0b0ZpbGxD
bGllbnQoKS0+ZGlkQ2xlYXJBdXRvRmlsbFNlbGVjdGlvbihXZWJOb2RlKGdldFRleHRGaWVsZCgp
KSk7CiB9CiAKIFN0cmluZyBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6aXRlbVRleHQodW5zaWdu
ZWQgbGlzdEluZGV4KSBjb25zdApAQCAtMjE5LDcgKzIyMCw3IEBAIHZvaWQgQXV0b0ZpbGxQb3B1
cE1lbnVDbGllbnQ6OnBvcHVwRGlkSGkKICAgICAgICAgcmV0dXJuOwogCiAgICAgd2ViVmlldy0+
YXV0b0ZpbGxQb3B1cERpZEhpZGUoKTsKLSAgICB3ZWJWaWV3LT5jbGllbnQoKS0+ZGlkQ2xlYXJB
dXRvRmlsbFNlbGVjdGlvbihXZWJOb2RlKGdldFRleHRGaWVsZCgpKSk7CisgICAgd2ViVmlldy0+
YXV0b0ZpbGxDbGllbnQoKS0+ZGlkQ2xlYXJBdXRvRmlsbFNlbGVjdGlvbihXZWJOb2RlKGdldFRl
eHRGaWVsZCgpKSk7CiB9CiAKIGJvb2wgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6Oml0ZW1Jc1Nl
cGFyYXRvcih1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CkluZGV4OiBXZWJLaXQvY2hyb21pdW0v
c3JjL0VkaXRvckNsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9z
cmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDc1Mzk2KQorKysgV2ViS2l0L2Nocm9t
aXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIs
NyBAQAogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogCiAjaW5jbHVkZSAiRE9NVXRpbGl0aWVz
UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYkF1dG9GaWxsQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2Vi
RWRpdGluZ0FjdGlvbi5oIgogI2luY2x1ZGUgIldlYkVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJG
cmFtZUltcGwuaCIKQEAgLTY0OSwxNSArNjUwLDE1IEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6
aGFuZGxlSW5wdXRNZXRob2QKIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6dGV4dEZpZWxkRGlkQmVn
aW5FZGl0aW5nKEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgSFRNTElucHV0RWxlbWVudCogaW5w
dXRFbGVtZW50ID0gdG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpOwotICAgIGlmIChtX3dlYlZp
ZXctPmNsaWVudCgpICYmIGlucHV0RWxlbWVudCkKLSAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQo
KS0+dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKFdlYklucHV0RWxlbWVudChpbnB1dEVsZW1lbnQp
KTsKKyAgICBpZiAobV93ZWJWaWV3LT5hdXRvRmlsbENsaWVudCgpICYmIGlucHV0RWxlbWVudCkK
KyAgICAgICAgbV93ZWJWaWV3LT5hdXRvRmlsbENsaWVudCgpLT50ZXh0RmllbGREaWRCZWdpbkVk
aXRpbmcoV2ViSW5wdXRFbGVtZW50KGlucHV0RWxlbWVudCkpOwogfQogCiB2b2lkIEVkaXRvckNs
aWVudEltcGw6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcoRWxlbWVudCogZWxlbWVudCkKIHsKICAg
ICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSB0b0hUTUxJbnB1dEVsZW1lbnQoZWxl
bWVudCk7Ci0gICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkgJiYgaW5wdXRFbGVtZW50KQotICAg
ICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT50ZXh0RmllbGREaWRFbmRFZGl0aW5nKFdlYklucHV0
RWxlbWVudChpbnB1dEVsZW1lbnQpKTsKKyAgICBpZiAobV93ZWJWaWV3LT5hdXRvRmlsbENsaWVu
dCgpICYmIGlucHV0RWxlbWVudCkKKyAgICAgICAgbV93ZWJWaWV3LT5hdXRvRmlsbENsaWVudCgp
LT50ZXh0RmllbGREaWRFbmRFZGl0aW5nKFdlYklucHV0RWxlbWVudChpbnB1dEVsZW1lbnQpKTsK
IAogICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IGZvY3VzIHdhcyBsb3N0LiAgQmUgY2FyZWZ1bCB3
aXRoIHRoaXMsIGl0J3MgYWxzbyBzZW50CiAgICAgLy8gd2hlbiB0aGUgcGFnZSBpcyBiZWluZyBj
bG9zZWQuCkBAIC02OTEsOCArNjkyLDggQEAgdm9pZCBFZGl0b3JDbGllbnRJbXBsOjp0ZXh0RGlk
Q2hhbmdlSW5UZQogewogICAgIEFTU0VSVChlbGVtZW50LT5oYXNMb2NhbE5hbWUoSFRNTE5hbWVz
OjppbnB1dFRhZykpOwogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50KTsKLSAgICBpZiAobV93ZWJWaWV3LT5j
bGllbnQoKSkKLSAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+dGV4dEZpZWxkRGlkQ2hhbmdl
KFdlYklucHV0RWxlbWVudChpbnB1dEVsZW1lbnQpKTsKKyAgICBpZiAobV93ZWJWaWV3LT5hdXRv
RmlsbENsaWVudCgpKQorICAgICAgICBtX3dlYlZpZXctPmF1dG9GaWxsQ2xpZW50KCktPnRleHRG
aWVsZERpZENoYW5nZShXZWJJbnB1dEVsZW1lbnQoaW5wdXRFbGVtZW50KSk7CiAKICAgICAvLyBO
b3RlIHRoYXQgd2Ugb25seSBzaG93IHRoZSBhdXRvZmlsbCBwb3B1cCBpbiB0aGlzIGNhc2UgaWYg
dGhlIGNhcmV0IGlzIGF0CiAgICAgLy8gdGhlIGVuZC4gIFRoaXMgbWF0Y2hlcyBGaXJlRm94IGFu
ZCBTYWZhcmkgYnV0IG5vdCBJRS4KQEAgLTc4NSwxNCArNzg2LDYgQEAgdm9pZCBFZGl0b3JDbGll
bnRJbXBsOjpkb0F1dG9maWxsKFRpbWVyPAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0cnVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIC8vIFRo
ZW4gdHJpZ2dlciBmb3JtIGF1dG9maWxsLgotICAgIFdlYlN0cmluZyBuYW1lID0gV2ViSW5wdXRF
bGVtZW50KGlucHV0RWxlbWVudCkubmFtZUZvckF1dG9maWxsKCk7Ci0gICAgQVNTRVJUKHN0YXRp
Y19jYXN0PGludD4obmFtZS5sZW5ndGgoKSkgPiAwKTsKLQotICAgIGlmIChtX3dlYlZpZXctPmNs
aWVudCgpKQotICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5xdWVyeUF1dG9maWxsU3VnZ2Vz
dGlvbnMoV2ViTm9kZShpbnB1dEVsZW1lbnQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgV2ViU3RyaW5nKHZhbHVlKSk7CiB9CiAK
IHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6Y2FuY2VsUGVuZGluZ0F1dG9maWxsKCkKQEAgLTgwMyw4
ICs3OTYsOCBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmNhbmNlbFBlbmRpbmdBdXRvCiAKIHZv
aWQgRWRpdG9yQ2xpZW50SW1wbDo6b25BdXRvY29tcGxldGVTdWdnZXN0aW9uQWNjZXB0ZWQoSFRN
TElucHV0RWxlbWVudCogdGV4dEZpZWxkKQogewotICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgp
KQotICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5kaWRBY2NlcHRBdXRvY29tcGxldGVTdWdn
ZXN0aW9uKFdlYklucHV0RWxlbWVudCh0ZXh0RmllbGQpKTsKKyAgICBpZiAobV93ZWJWaWV3LT5h
dXRvRmlsbENsaWVudCgpKQorICAgICAgICBtX3dlYlZpZXctPmF1dG9GaWxsQ2xpZW50KCktPmRp
ZEFjY2VwdEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24oV2ViSW5wdXRFbGVtZW50KHRleHRGaWVsZCkp
OwogCiAgICAgV2ViRnJhbWVJbXBsKiB3ZWJmcmFtZSA9IFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1l
KHRleHRGaWVsZC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSk7CiAgICAgaWYgKCF3ZWJmcmFtZSkKQEAg
LTgxNyw5ICs4MTAsOSBAQCBib29sIEVkaXRvckNsaWVudEltcGw6OmRvVGV4dEZpZWxkQ29tbWFu
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXli
b2FyZEV2ZW50KiBldmVudCkKIHsKICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQg
PSB0b0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCk7Ci0gICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50
KCkgJiYgaW5wdXRFbGVtZW50KSB7Ci0gICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPnRleHRG
aWVsZERpZFJlY2VpdmVLZXlEb3duKFdlYklucHV0RWxlbWVudChpbnB1dEVsZW1lbnQpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJL
ZXlib2FyZEV2ZW50QnVpbGRlcigqZXZlbnQpKTsKKyAgICBpZiAobV93ZWJWaWV3LT5hdXRvRmls
bENsaWVudCgpICYmIGlucHV0RWxlbWVudCkgeworICAgICAgICBtX3dlYlZpZXctPmF1dG9GaWxs
Q2xpZW50KCktPnRleHRGaWVsZERpZFJlY2VpdmVLZXlEb3duKFdlYklucHV0RWxlbWVudChpbnB1
dEVsZW1lbnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYktleWJvYXJkRXZlbnRCdWlsZGVyKCpldmVudCkpOwogICAg
IH0KIAogICAgIC8vIFJlbWVtYmVyIGlmIGJhY2tzcGFjZSB3YXMgcHJlc3NlZCBmb3IgdGhlIGF1
dG9maWxsLiAgSXQgaXMgbm90IGNsZWFyIGhvdyB0bwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAJKHJldmlzaW9uIDc1Mzk2KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk3LDYgKzk3LDcgQEAKICNpbmNsdWRlICJV
c2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIlZlY3Rvci5oIgogI2luY2x1ZGUgIldl
YkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJXZWJBdXRvRmlsbENsaWVudC5oIgog
I2luY2x1ZGUgIldlYkRldlRvb2xzQWdlbnRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViRGV2VG9v
bHNBZ2VudEltcGwuaCIKICNpbmNsdWRlICJXZWJEcmFnRGF0YS5oIgpAQCAtMjEyLDEzICsyMTMs
MTMgQEAgc3RhdGljIGJvb2wgc2hvdWxkVXNlRXh0ZXJuYWxQb3B1cE1lbnVzCiAKIC8vIFdlYlZp
ZXcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCi1XZWJWaWV3KiBXZWJWaWV3OjpjcmVhdGUoV2ViVmlld0NsaWVudCogY2xp
ZW50LCBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiBkZXZUb29sc0NsaWVudCkKK1dlYlZpZXcqIFdl
YlZpZXc6OmNyZWF0ZShXZWJWaWV3Q2xpZW50KiBjbGllbnQsIFdlYkRldlRvb2xzQWdlbnRDbGll
bnQqIGRldlRvb2xzQ2xpZW50LCBXZWJBdXRvRmlsbENsaWVudCogYXV0b0ZpbGxDbGllbnQpCiB7
CiAgICAgLy8gS2VlcCBydW50aW1lIGZsYWcgZm9yIGRldmljZSBtb3Rpb24gdHVybmVkIG9mZiB1
bnRpbCBpdCdzIGltcGxlbWVudGVkLgogICAgIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlRGV2
aWNlTW90aW9uKGZhbHNlKTsKIAogICAgIC8vIFBhc3MgdGhlIFdlYlZpZXdJbXBsJ3Mgc2VsZi1y
ZWZlcmVuY2UgdG8gdGhlIGNhbGxlci4KLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlZpZXdJ
bXBsKGNsaWVudCwgZGV2VG9vbHNDbGllbnQpKS5sZWFrUmVmKCk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJWaWV3SW1wbChjbGllbnQsIGRldlRvb2xzQ2xpZW50LCBhdXRvRmlsbENsaWVu
dCkpLmxlYWtSZWYoKTsKIH0KIAogdm9pZCBXZWJWaWV3OjpzZXRVc2VFeHRlcm5hbFBvcHVwTWVu
dXMoYm9vbCB1c2VFeHRlcm5hbFBvcHVwTWVudXMpCkBAIC0yNzAsOCArMjcxLDkgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6aW5pdGlhbGl6ZU1haW5GcmFtZShXZQogICAgIFNlY3VyaXR5T3JpZ2luOjpz
ZXRMb2NhbExvYWRQb2xpY3koU2VjdXJpdHlPcmlnaW46OkFsbG93TG9jYWxMb2Fkc0ZvckxvY2Fs
T25seSk7CiB9CiAKLVdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGll
bnQsIFdlYkRldlRvb2xzQWdlbnRDbGllbnQqIGRldlRvb2xzQ2xpZW50KQorV2ViVmlld0ltcGw6
OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCwgV2ViRGV2VG9vbHNBZ2VudENsaWVu
dCogZGV2VG9vbHNDbGllbnQsIFdlYkF1dG9GaWxsQ2xpZW50KiBhdXRvRmlsbENsaWVudCkKICAg
ICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fYXV0b0ZpbGxDbGllbnQoYXV0b0ZpbGxDbGll
bnQpCiAgICAgLCBtX2JhY2tGb3J3YXJkTGlzdENsaWVudEltcGwodGhpcykKICAgICAsIG1fY2hy
b21lQ2xpZW50SW1wbCh0aGlzKQogICAgICwgbV9jb250ZXh0TWVudUNsaWVudEltcGwodGhpcykK
QEAgLTY2NCw3ICs2NjYsNyBAQCBib29sIFdlYlZpZXdJbXBsOjphdXRvY29tcGxldGVIYW5kbGVL
ZXlFCiAKICAgICAgICAgV2ViU3RyaW5nIG5hbWUgPSBXZWJJbnB1dEVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTElucHV0RWxlbWVudCo+KGVsZW1lbnQpKS5uYW1lRm9yQXV0b2ZpbGwoKTsKICAgICAg
ICAgV2ViU3RyaW5nIHZhbHVlID0gbV9hdXRvRmlsbFBvcHVwQ2xpZW50LT5pdGVtVGV4dChzZWxl
Y3RlZEluZGV4KTsKLSAgICAgICAgbV9jbGllbnQtPnJlbW92ZUF1dG9maWxsU3VnZ2VzdGlvbnMo
bmFtZSwgdmFsdWUpOworICAgICAgICBtX2F1dG9GaWxsQ2xpZW50LT5yZW1vdmVBdXRvY29tcGxl
dGVTdWdnZXN0aW9uKG5hbWUsIHZhbHVlKTsKICAgICAgICAgLy8gVXBkYXRlIHRoZSBlbnRyaWVz
IGluIHRoZSBjdXJyZW50bHkgc2hvd2luZyBwb3B1cCB0byByZWZsZWN0IHRoZQogICAgICAgICAv
LyBkZWxldGlvbi4KICAgICAgICAgbV9hdXRvRmlsbFBvcHVwQ2xpZW50LT5yZW1vdmVTdWdnZXN0
aW9uQXRJbmRleChzZWxlY3RlZEluZGV4KTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmgJKHJldmlzaW9uIDc1Mzk2KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMjAsNiArMjIwLDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIG1fY2xpZW50OwogICAgIH0KIAorICAgIFdlYkF1dG9GaWxsQ2xpZW50KiBhdXRvRmlsbENs
aWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9hdXRvRmlsbENsaWVudDsKKyAgICB9CisK
ICAgICAvLyBSZXR1cm5zIHRoZSBwYWdlIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyB2aWV3
LiBUaGlzIG1heSBiZSBudWxsIHdoZW4KICAgICAvLyB0aGUgcGFnZSBpcyBzaHV0dGluZyBkb3du
LCBidXQgd2lsbCBiZSB2YWxpZCBhdCBhbGwgb3RoZXIgdGltZXMuCiAgICAgV2ViQ29yZTo6UGFn
ZSogcGFnZSgpIGNvbnN0CkBAIC0zNjIsNyArMzY3LDcgQEAgcHJpdmF0ZToKICAgICAgIERyYWdP
dmVyCiAgICAgfTsKIAotICAgIFdlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCwgV2Vi
RGV2VG9vbHNBZ2VudENsaWVudCogZGV2VG9vbHNDbGllbnQpOworICAgIFdlYlZpZXdJbXBsKFdl
YlZpZXdDbGllbnQqLCBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiwgV2ViQXV0b0ZpbGxDbGllbnQq
KTsKICAgICB+V2ViVmlld0ltcGwoKTsKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgZXZl
bnQgd2FzIGFjdHVhbGx5IHByb2Nlc3NlZC4KQEAgLTQwMyw2ICs0MDgsNyBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICBXZWJWaWV3Q2xpZW50KiBtX2NsaWVudDsKKyAgICBXZWJBdXRvRmlsbENs
aWVudCogbV9hdXRvRmlsbENsaWVudDsKIAogICAgIEJhY2tGb3J3YXJkTGlzdENsaWVudEltcGwg
bV9iYWNrRm9yd2FyZExpc3RDbGllbnRJbXBsOwogICAgIENocm9tZUNsaWVudEltcGwgbV9jaHJv
bWVDbGllbnRJbXBsOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJCYXNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckJhc2UuY3BwCShy
ZXZpc2lvbiA3NTM5NikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQmFzZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIFdlYldvcmtlckJhc2U6Omlu
aXRpYWxpemVMb2FkZXIoY29uCiAgICAgLy8gbG9hZGluZyByZXF1ZXN0cyBmcm9tIHRoZSB3b3Jr
ZXIgY29udGV4dCB0byB0aGUgcmVzdCBvZiBXZWJLaXQgYW5kIENocm9taXVtCiAgICAgLy8gaW5m
cmFzdHJ1Y3R1cmUuCiAgICAgQVNTRVJUKCFtX3dlYlZpZXcpOwotICAgIG1fd2ViVmlldyA9IFdl
YlZpZXc6OmNyZWF0ZSgwLCAwKTsKKyAgICBtX3dlYlZpZXcgPSBXZWJWaWV3OjpjcmVhdGUoMCwg
MCwgMCk7CiAgICAgbV93ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRPZmZsaW5lV2ViQXBwbGljYXRp
b25DYWNoZUVuYWJsZWQoV2ViUnVudGltZUZlYXR1cmVzOjppc0FwcGxpY2F0aW9uQ2FjaGVFbmFi
bGVkKCkpOwogICAgIG1fd2ViVmlldy0+aW5pdGlhbGl6ZU1haW5GcmFtZSh0aGlzKTsKIApJbmRl
eDogV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS90ZXN0cy9Qb3B1cE1lbnVUZXN0LmNwcAkocmV2aXNpb24gNzUzOTYp
CisrKyBXZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE4MSw3ICsxODEsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2
b2lkIFNldFVwKCkKICAgICB7Ci0gICAgICAgIG1fd2ViVmlldyA9IHN0YXRpY19jYXN0PFdlYlZp
ZXdJbXBsKj4oV2ViVmlldzo6Y3JlYXRlKCZtX3dlYnZpZXdDbGllbnQsIDApKTsKKyAgICAgICAg
bV93ZWJWaWV3ID0gc3RhdGljX2Nhc3Q8V2ViVmlld0ltcGwqPihXZWJWaWV3OjpjcmVhdGUoJm1f
d2Vidmlld0NsaWVudCwgMCwgMCkpOwogICAgICAgICBtX3dlYlZpZXctPmluaXRpYWxpemVNYWlu
RnJhbWUoJm1fd2ViRnJhbWVDbGllbnQpOwogICAgICAgICBtX3BvcHVwTWVudSA9IGFkb3B0UmVm
KG5ldyBQb3B1cE1lbnVDaHJvbWl1bSgmbV9wb3B1cE1lbnVDbGllbnQpKTsKICAgICB9CkluZGV4
OiBXZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAkocmV2aXNpb24gNzUzOTYpCisr
KyBXZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODUsNyArODUsNyBAQCBURVNUX0YoV2ViRnJhbWVUZXN0LCBDb250ZW50VGV4dCkKIAogICAg
IC8vIENyZWF0ZSBhbmQgaW5pdGlhbGl6ZSB0aGUgV2ViVmlldy4gICAgCiAgICAgVGVzdFdlYkZy
YW1lQ2xpZW50IHdlYkZyYW1lQ2xpZW50OwotICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBXZWJWaWV3
OjpjcmVhdGUoMCwgMCk7CisgICAgV2ViVmlldyogd2ViVmlldyA9IFdlYlZpZXc6OmNyZWF0ZSgw
LCAwLCAwKTsKICAgICB3ZWJWaWV3LT5pbml0aWFsaXplTWFpbkZyYW1lKCZ3ZWJGcmFtZUNsaWVu
dCk7CiAKICAgICAvLyBMb2FkIHRoZSBtYWluIGZyYW1lIFVSTC4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78464</attachid>
            <date>2011-01-10 15:52:57 -0800</date>
            <delta_ts>2011-01-10 16:06:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52169-20110110155108.patch</filename>
            <type>text/plain</type>
            <size>20131</size>
            <attacher name="John Abd-El-Malek">jam</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAkocmV2
aXNpb24gNzUzOTYpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzEsNyArNTcxLDcgQEAgV2ViVmlld0hvc3QqIFRlc3RT
aGVsbDo6Y3JlYXRlTmV3V2luZG93KAogV2ViVmlld0hvc3QqIFRlc3RTaGVsbDo6Y3JlYXRlTmV3
V2luZG93KGNvbnN0IFdlYktpdDo6V2ViVVJMJiB1cmwsIERSVERldlRvb2xzQWdlbnQqIGRldlRv
b2xzQWdlbnQpCiB7CiAgICAgV2ViVmlld0hvc3QqIGhvc3QgPSBuZXcgV2ViVmlld0hvc3QodGhp
cyk7Ci0gICAgV2ViVmlldyogdmlldyA9IFdlYlZpZXc6OmNyZWF0ZShob3N0LCBkZXZUb29sc0Fn
ZW50KTsKKyAgICBXZWJWaWV3KiB2aWV3ID0gV2ViVmlldzo6Y3JlYXRlKGhvc3QsIGRldlRvb2xz
QWdlbnQsIDApOwogICAgIGhvc3QtPnNldFdlYldpZGdldCh2aWV3KTsKICAgICBtX3ByZWZzLmFw
cGx5VG8odmlldyk7CiAgICAgdmlldy0+aW5pdGlhbGl6ZU1haW5GcmFtZShob3N0KTsKSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwkocmV2aXNpb24gNzU0MjQpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTEtMDEtMTAgIEpvaG4gQWJkLUVs
LU1hbGVrICA8amFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbY2hyb21pdW1dIENhbGwgV2ViQXV0b0ZpbGxDbGllbnQgaW5z
dGVhZCBvZiBXZWJWaWV3Q2xpZW50IGZvciBhdXRvZmlsbCByZWxhdGVkIGNhbGxiYWNrcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxNjkKKworICAg
ICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6ZGlkVXBkYXRlSW5zcGVjdG9yU2V0
dGluZyk6CisgICAgICAgICogc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6QXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OnZhbHVlQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjpzZWxlY3Rpb25DaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6QXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OnNlbGVjdGlvbkNsZWFy
ZWQpOgorICAgICAgICAoV2ViS2l0OjpBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6cG9wdXBEaWRI
aWRlKToKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyk6CisgICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjp0ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQp
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkb0F1dG9maWxsKToKKyAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6b25BdXRvY29tcGxldGVTdWdnZXN0aW9uQWNj
ZXB0ZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkb1RleHRGaWVsZENv
bW1hbmRGcm9tRXZlbnQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXc6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpXZWJWaWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphdXRvY29tcGxl
dGVIYW5kbGVLZXlFdmVudCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjphdXRvRmlsbENsaWVudCk6CisgICAgICAgICogc3JjL1dl
YldvcmtlckJhc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJCYXNlOjppbml0aWFs
aXplTG9hZGVyKToKKwogMjAxMS0wMS0xMCAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCkluZGV4OiBX
ZWJLaXQvY2hyb21pdW0vREVQUwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vREVQUwko
cmV2aXNpb24gNzUzOTYpCisrKyBXZWJLaXQvY2hyb21pdW0vREVQUwkod29ya2luZyBjb3B5KQpA
QCAtMzIsNyArMzIsNyBAQAogCiB2YXJzID0gewogICAnY2hyb21pdW1fc3ZuJzogJ2h0dHA6Ly9z
cmMuY2hyb21pdW0ub3JnL3N2bi90cnVuay9zcmMnLAotICAnY2hyb21pdW1fcmV2JzogJzcwODQ0
JworICAnY2hyb21pdW1fcmV2JzogJzcwOTUyJwogfQogCiBkZXBzID0gewpAQCAtMTA3LDYgKzEw
Nyw4IEBAIGRlcHMgPSB7CiAgICAgVmFyKCdjaHJvbWl1bV9zdm4nKSsnL3Rvb2xzL2dyaXRAJytW
YXIoJ2Nocm9taXVtX3JldicpLAogICAndG9vbHMvZ2VuZXJhdGVfc3R1YnMnOgogICAgIFZhcign
Y2hyb21pdW1fc3ZuJykrJy90b29scy9nZW5lcmF0ZV9zdHVic0AnK1ZhcignY2hyb21pdW1fcmV2
JyksCisgICd1aSc6CisgICAgVmFyKCdjaHJvbWl1bV9zdm4nKSsnL3VpQCcrVmFyKCdjaHJvbWl1
bV9yZXYnKSwgIyBuZWVkZWQgYnkgYXBwCiAKICAgIyBvdGhlciB0aGlyZCBwYXJ0eQogICAndGhp
cmRfcGFydHkvaWN1JzoKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCShyZXZpc2lvbiA3
NTM5NikKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNiw5ICszNiwxMyBAQAogI2luY2x1ZGUgIldlYlZlY3Rvci5oIgogI2luY2x1ZGUgIldl
YldpZGdldC5oIgogCisvLyBGSVhNRShqYW0pOiB0YWtlIG91dCBvbmNlIENocm9taXVtIHJvbGxz
IHBhc3QgdGhpcyByZXZpc2lvbgorI2RlZmluZSBXRUJLSVRfSEFTX1dFQl9BVVRPX0ZJTExfQ0xJ
RU5UCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
OworY2xhc3MgV2ViQXV0b0ZpbGxDbGllbnQ7CiBjbGFzcyBXZWJEZXZUb29sc0FnZW50OwogY2xh
c3MgV2ViRGV2VG9vbHNBZ2VudENsaWVudDsKIGNsYXNzIFdlYkRyYWdEYXRhOwpAQCAtODEsOCAr
ODUsMTAgQEAgcHVibGljOgogCiAgICAgLy8gQ3JlYXRlcyBhIFdlYlZpZXcgdGhhdCBpcyBOT1Qg
eWV0IGluaXRpYWxpemVkLiAgWW91IHdpbGwgbmVlZCB0bwogICAgIC8vIGNhbGwgaW5pdGlhbGl6
ZU1haW5GcmFtZSB0byBmaW5pc2ggdGhlIGluaXRpYWxpemF0aW9uLiAgSXQgaXMgdmFsaWQKLSAg
ICAvLyB0byBwYXNzIG51bGwgV2ViVmlld0NsaWVudCBhbmQgV2ViRGV2VG9vbHNBZ2VudENsaWVu
dCBwb2ludGVycy4KLSAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJWaWV3KiBjcmVhdGUoV2ViVmll
d0NsaWVudCosIFdlYkRldlRvb2xzQWdlbnRDbGllbnQqKTsKKyAgICAvLyB0byBwYXNzIG51bGwg
Y2xpZW50IHBvaW50ZXJzLgorICAgIFdFQktJVF9BUEkgc3RhdGljIFdlYlZpZXcqIGNyZWF0ZShX
ZWJWaWV3Q2xpZW50KiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2Vi
RGV2VG9vbHNBZ2VudENsaWVudCosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYkF1dG9GaWxsQ2xpZW50Kik7CiAKICAgICAvLyBBZnRlciBjcmVhdGluZyBhIFdlYlZp
ZXcsIHlvdSBzaG91bGQgaW1tZWRpYXRlbHkgY2FsbCB0aGlzIG1ldGhvZC4KICAgICAvLyBZb3Ug
Y2FuIG9wdGlvbmFsbHkgbW9kaWZ5IHRoZSBzZXR0aW5ncyBiZWZvcmUgY2FsbGluZyB0aGlzIG1l
dGhvZC4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCShyZXZpc2lv
biA3NTM5NikKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjYsMTIgKzE2Niw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRXhlY3V0ZUNvbW1hbmQoY29uc3QgV2ViU3RyaW5nJiBjb21tYW5kTmFtZSkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGRpZEVuZEVkaXRpbmcoKSB7IH0KIAotICAgIC8vIFRoZXNlIG1ldGhvZHMg
YXJlIGNhbGxlZCB3aGVuIHRoZSB1c2VycyBlZGl0cyBhIHRleHQtZmllbGQuCi0gICAgdmlydHVh
bCB2b2lkIHRleHRGaWVsZERpZEJlZ2luRWRpdGluZyhjb25zdCBXZWJJbnB1dEVsZW1lbnQmKSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkRW5kRWRpdGluZyhjb25zdCBXZWJJbnB1
dEVsZW1lbnQmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkQ2hhbmdlKGNvbnN0
IFdlYklucHV0RWxlbWVudCYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0RmllbGREaWRSZWNl
aXZlS2V5RG93bihjb25zdCBXZWJJbnB1dEVsZW1lbnQmLCBjb25zdCBXZWJLZXlib2FyZEV2ZW50
JikgeyB9Ci0KICAgICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgaW4gcmVzcG9uc2UgdG8gV2Vi
VmlldydzIGhhbmRsZUlucHV0RXZlbnQoKQogICAgIC8vIHdoZW4gdGhlIGRlZmF1bHQgYWN0aW9u
IGZvciB0aGUgY3VycmVudCBrZXlib2FyZCBldmVudCBpcyBub3QKICAgICAvLyBzdXBwcmVzc2Vk
IGJ5IHRoZSBwYWdlLCB0byBnaXZlIHRoZSBlbWJlZGRlciBhIGNoYW5jZSB0byBoYW5kbGUKQEAg
LTMxMSw1MiArMzA1LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUlu
c3BlY3RvclNldHRpbmcoY29uc3QgV2ViU3RyaW5nJiBrZXksIGNvbnN0IFdlYlN0cmluZyYgdmFs
dWUpIHsgfQogCi0KLSAgICAvLyBBdXRvRmlsbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgIC8vIFF1ZXJpZXMgdGhlIGJy
b3dzZXIgZm9yIHN1Z2dlc3Rpb25zIHRvIGJlIHNob3duIGZvciB0aGUgZm9ybSB0ZXh0Ci0gICAg
Ly8gZmllbGQgbmFtZWQgfG5hbWV8LiAgfHZhbHVlfCBpcyB0aGUgdGV4dCBlbnRlcmVkIGJ5IHRo
ZSB1c2VyIHNvCi0gICAgLy8gZmFyIGFuZCB0aGUgV2ViTm9kZSBjb3JyZXNwb25kcyB0byB0aGUg
aW5wdXQgZmllbGQuCi0gICAgdmlydHVhbCB2b2lkIHF1ZXJ5QXV0b2ZpbGxTdWdnZXN0aW9ucyhj
b25zdCBXZWJOb2RlJiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFdlYlN0cmluZyYgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFdlYlN0cmluZyYgdmFsdWUpIHsgfQotCi0gICAgLy8gSW5zdHJ1Y3Rz
IHRoZSBicm93c2VyIHRvIHJlbW92ZSB0aGUgQXV0b2NvbXBsZXRlIGVudHJ5IHNwZWNpZmllZCBm
cm9tCi0gICAgLy8gaXRzIERCLgotICAgIC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBzaG91bGQgYmUg
bmFtZWQgcmVtb3ZlQXV0b2NvbXBsZXRlU3VnZXN0aW9uLgotICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVBdXRvZmlsbFN1Z2dlc3Rpb25zKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIHZhbHVlKSB7
IH0KLQotICAgIC8vIEluZm9ybXMgdGhlIGJyb3dzZXIgdGhhdCB0aGUgdXNlciBoYXMgYWNjZXB0
ZWQgYW4gQXV0b0ZpbGwgc3VnZ2VzdGlvbiBmb3IKLSAgICAvLyBhIFdlYk5vZGUuICB8dW5pcXVl
SUR8IGlzIHVzZWQgYXMgYSBrZXkgaW50byB0aGUgc2V0IG9mIEF1dG9GaWxsIHByb2ZpbGVzLAot
ICAgIC8vIGFuZCBzaG91bGQgbmV2ZXIgYmUgbmVnYXRpdmUuICBJZiBpdCBpcyAwLCB0aGVuIHRo
ZSBzdWdnZXN0aW9uIGlzIGFuCi0gICAgLy8gQXV0b2NvbXBsZXRlIHN1Z2dlc3Rpb247IGFuZCB8
dmFsdWV8IHN0b3JlcyB0aGUgc3VnZ2VzdGVkIHRleHQuICB8aW5kZXh8Ci0gICAgLy8gaXMgYW4g
aW5kZXggb2YgdGhlIHNlbGVjdGVkIHN1Z2dlc3Rpb24gaW4gdGhlIGxpc3Qgb2Ygc3VnZ2VzdGlv
bnMgcHJvdmlkZWQKLSAgICAvLyBieSB0aGUgY2xpZW50LgotICAgIHZpcnR1YWwgdm9pZCBkaWRB
Y2NlcHRBdXRvRmlsbFN1Z2dlc3Rpb24oY29uc3QgV2ViTm9kZSYsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIHZhbHVlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5n
JiBsYWJlbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCB1bmlxdWVJRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGluZGV4KSB7IH0KLQotICAgIC8vIEluZm9ybXMgdGhlIGJyb3dzZXIgdGhhdCB0
aGUgdXNlciBoYXMgc2VsZWN0ZWQgYW4gQXV0b0ZpbGwgc3VnZ2VzdGlvbiBmb3IKLSAgICAvLyBh
IFdlYk5vZGUuICBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgdXNlciBob3ZlcnMgb3ZlciBhIHN1Z2dl
c3Rpb24gb3IgdXNlcwotICAgIC8vIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIHRvIGEgc3Vn
Z2VzdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkU2VsZWN0QXV0b0ZpbGxTdWdnZXN0aW9uKGNv
bnN0IFdlYk5vZGUmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgV2ViU3RyaW5nJiBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiBsYWJlbCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB1bmlxdWVJRCkgeyB9Ci0KLSAgICAvLyBJ
bmZvcm1zIHRoZSBicm93c2VyIHRoYXQgdGhlIHVzZXIgaGFzIGNsZWFyZWQgdGhlIHNlbGVjdGlv
biBmcm9tIHRoZQotICAgIC8vIEF1dG9GaWxsIHN1Z2dlc3Rpb25zIHBvcHVwLiAgVGhpcyBoYXBw
ZW5zIHdoZW4gYSB1c2VyIHVzZXMgdGhlIGFycm93Ci0gICAgLy8ga2V5cyB0byBuYXZpZ2F0ZSBv
dXRzaWRlIHRoZSByYW5nZSBvZiBwb3NzaWJsZSBzZWxlY3Rpb25zLgotICAgIHZpcnR1YWwgdm9p
ZCBkaWRDbGVhckF1dG9GaWxsU2VsZWN0aW9uKGNvbnN0IFdlYk5vZGUmKSB7IH0KLQotICAgIC8v
IEluZm9ybXMgdGhlIGJyb3dzZXIgdGhhdCB0aGUgdXNlciBoYXMgc2VsZWN0ZWQgYW4gYXV0b2Nv
bXBsZXRlIChwYXNzd29yZAotICAgIC8vIG9yIGZpZWxkKSBzdWdnZXN0aW9uIGZyb20gdGhlIGRy
b3AtZG93bi4gIFRoZSBpbnB1dCBlbGVtZW50IHRleHQgaGFzCi0gICAgLy8gYWxyZWFkeSBiZWVu
IHNldCB0byB0aGUgc2VsZWN0ZWQgc3VnZ2VzdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWNj
ZXB0QXV0b2NvbXBsZXRlU3VnZ2VzdGlvbihjb25zdCBXZWJJbnB1dEVsZW1lbnQmKSB7IH0KLQog
ICAgIC8vIEdlb2xvY2F0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAgLy8gQWNjZXNzIHRoZSBlbWJlZGRlciBBUEkgZm9y
IChjbGllbnQtYmFzZWQpIGdlb2xvY2F0aW9uIGNsaWVudCAuCkluZGV4OiBXZWJLaXQvY2hyb21p
dW0vc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmNwcAkocmV2aXNpb24gNzUzOTYp
CisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9GaWxsUG9wdXBNZW51Q2xpZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2lu
Y2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2lu
Y2x1ZGUgIldlYkF1dG9GaWxsQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViTm9kZS5oIgogI2luY2x1
ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlZlY3Rvci5oIgpAQCAtMTMxLDExICsxMzIs
MTEgQEAgdm9pZCBBdXRvRmlsbFBvcHVwTWVudUNsaWVudDo6dmFsdWVDaGFuZwogCiAgICAgQVNT
RVJUKGxpc3RJbmRleCA8IG1fbmFtZXMuc2l6ZSgpKTsKIAotICAgIHdlYlZpZXctPmNsaWVudCgp
LT5kaWRBY2NlcHRBdXRvRmlsbFN1Z2dlc3Rpb24oV2ViTm9kZShnZXRUZXh0RmllbGQoKSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX25hbWVz
W2xpc3RJbmRleF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2xhYmVsc1tsaXN0SW5kZXhdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV91bmlxdWVJRHNbbGlzdEluZGV4XSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RJbmRleCk7Cisg
ICAgd2ViVmlldy0+YXV0b0ZpbGxDbGllbnQoKS0+ZGlkQWNjZXB0QXV0b0ZpbGxTdWdnZXN0aW9u
KFdlYk5vZGUoZ2V0VGV4dEZpZWxkKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX25hbWVzW2xpc3RJbmRleF0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbGFi
ZWxzW2xpc3RJbmRleF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fdW5pcXVlSURzW2xpc3RJbmRleF0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RJbmRleCk7
CiB9CiAKIHZvaWQgQXV0b0ZpbGxQb3B1cE1lbnVDbGllbnQ6OnNlbGVjdGlvbkNoYW5nZWQodW5z
aWduZWQgbGlzdEluZGV4LCBib29sIGZpcmVFdmVudHMpCkBAIC0xNDksMTcgKzE1MCwxNyBAQCB2
b2lkIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50OjpzZWxlY3Rpb25DCiAKICAgICBBU1NFUlQobGlz
dEluZGV4IDwgbV9uYW1lcy5zaXplKCkpOwogCi0gICAgd2ViVmlldy0+Y2xpZW50KCktPmRpZFNl
bGVjdEF1dG9GaWxsU3VnZ2VzdGlvbihXZWJOb2RlKGdldFRleHRGaWVsZCgpKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbmFtZXNbbGlzdElu
ZGV4XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fbGFiZWxzW2xpc3RJbmRleF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX3VuaXF1ZUlEc1tsaXN0SW5kZXhdKTsKKyAgICB3ZWJWaWV3LT5h
dXRvRmlsbENsaWVudCgpLT5kaWRTZWxlY3RBdXRvRmlsbFN1Z2dlc3Rpb24oV2ViTm9kZShnZXRU
ZXh0RmllbGQoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fbmFtZXNbbGlzdEluZGV4XSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9sYWJlbHNbbGlzdEluZGV4
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV91bmlxdWVJRHNbbGlzdEluZGV4XSk7CiB9CiAKIHZvaWQgQXV0b0ZpbGxQb3B1cE1l
bnVDbGllbnQ6OnNlbGVjdGlvbkNsZWFyZWQoKQogewogICAgIFdlYlZpZXdJbXBsKiB3ZWJWaWV3
ID0gZ2V0V2ViVmlldygpOwogICAgIGlmICh3ZWJWaWV3KQotICAgICAgICB3ZWJWaWV3LT5jbGll
bnQoKS0+ZGlkQ2xlYXJBdXRvRmlsbFNlbGVjdGlvbihXZWJOb2RlKGdldFRleHRGaWVsZCgpKSk7
CisgICAgICAgIHdlYlZpZXctPmF1dG9GaWxsQ2xpZW50KCktPmRpZENsZWFyQXV0b0ZpbGxTZWxl
Y3Rpb24oV2ViTm9kZShnZXRUZXh0RmllbGQoKSkpOwogfQogCiBTdHJpbmcgQXV0b0ZpbGxQb3B1
cE1lbnVDbGllbnQ6Oml0ZW1UZXh0KHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QKQEAgLTIxOSw3
ICsyMjAsNyBAQCB2b2lkIEF1dG9GaWxsUG9wdXBNZW51Q2xpZW50Ojpwb3B1cERpZEhpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIHdlYlZpZXctPmF1dG9GaWxsUG9wdXBEaWRIaWRlKCk7Ci0gICAg
d2ViVmlldy0+Y2xpZW50KCktPmRpZENsZWFyQXV0b0ZpbGxTZWxlY3Rpb24oV2ViTm9kZShnZXRU
ZXh0RmllbGQoKSkpOworICAgIHdlYlZpZXctPmF1dG9GaWxsQ2xpZW50KCktPmRpZENsZWFyQXV0
b0ZpbGxTZWxlY3Rpb24oV2ViTm9kZShnZXRUZXh0RmllbGQoKSkpOwogfQogCiBib29sIEF1dG9G
aWxsUG9wdXBNZW51Q2xpZW50OjppdGVtSXNTZXBhcmF0b3IodW5zaWduZWQgbGlzdEluZGV4KSBj
b25zdApJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCShyZXZp
c2lvbiA3NTM5NikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3Qu
aCIKIAogI2luY2x1ZGUgIkRPTVV0aWxpdGllc1ByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJBdXRv
RmlsbENsaWVudC5oIgogI2luY2x1ZGUgIldlYkVkaXRpbmdBY3Rpb24uaCIKICNpbmNsdWRlICJX
ZWJFbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgiCkBAIC02NDksMTUgKzY1MCwx
NSBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmhhbmRsZUlucHV0TWV0aG9kCiB2b2lkIEVkaXRv
ckNsaWVudEltcGw6OnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyhFbGVtZW50KiBlbGVtZW50KQog
ewogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHRvSFRNTElucHV0RWxlbWVu
dChlbGVtZW50KTsKLSAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSAmJiBpbnB1dEVsZW1lbnQp
Ci0gICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyhX
ZWJJbnB1dEVsZW1lbnQoaW5wdXRFbGVtZW50KSk7CisgICAgaWYgKG1fd2ViVmlldy0+YXV0b0Zp
bGxDbGllbnQoKSAmJiBpbnB1dEVsZW1lbnQpCisgICAgICAgIG1fd2ViVmlldy0+YXV0b0ZpbGxD
bGllbnQoKS0+dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKFdlYklucHV0RWxlbWVudChpbnB1dEVs
ZW1lbnQpKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRJbXBsOjp0ZXh0RmllbGREaWRFbmRFZGl0
aW5nKEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRFbGVt
ZW50ID0gdG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQpOwotICAgIGlmIChtX3dlYlZpZXctPmNs
aWVudCgpICYmIGlucHV0RWxlbWVudCkKLSAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+dGV4
dEZpZWxkRGlkRW5kRWRpdGluZyhXZWJJbnB1dEVsZW1lbnQoaW5wdXRFbGVtZW50KSk7CisgICAg
aWYgKG1fd2ViVmlldy0+YXV0b0ZpbGxDbGllbnQoKSAmJiBpbnB1dEVsZW1lbnQpCisgICAgICAg
IG1fd2ViVmlldy0+YXV0b0ZpbGxDbGllbnQoKS0+dGV4dEZpZWxkRGlkRW5kRWRpdGluZyhXZWJJ
bnB1dEVsZW1lbnQoaW5wdXRFbGVtZW50KSk7CiAKICAgICAvLyBOb3RpZmljYXRpb24gdGhhdCBm
b2N1cyB3YXMgbG9zdC4gIEJlIGNhcmVmdWwgd2l0aCB0aGlzLCBpdCdzIGFsc28gc2VudAogICAg
IC8vIHdoZW4gdGhlIHBhZ2UgaXMgYmVpbmcgY2xvc2VkLgpAQCAtNjkxLDggKzY5Miw4IEBAIHZv
aWQgRWRpdG9yQ2xpZW50SW1wbDo6dGV4dERpZENoYW5nZUluVGUKIHsKICAgICBBU1NFUlQoZWxl
bWVudC0+aGFzTG9jYWxOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcpKTsKICAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxl
bWVudCk7Ci0gICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCi0gICAgICAgIG1fd2ViVmlldy0+
Y2xpZW50KCktPnRleHRGaWVsZERpZENoYW5nZShXZWJJbnB1dEVsZW1lbnQoaW5wdXRFbGVtZW50
KSk7CisgICAgaWYgKG1fd2ViVmlldy0+YXV0b0ZpbGxDbGllbnQoKSkKKyAgICAgICAgbV93ZWJW
aWV3LT5hdXRvRmlsbENsaWVudCgpLT50ZXh0RmllbGREaWRDaGFuZ2UoV2ViSW5wdXRFbGVtZW50
KGlucHV0RWxlbWVudCkpOwogCiAgICAgLy8gTm90ZSB0aGF0IHdlIG9ubHkgc2hvdyB0aGUgYXV0
b2ZpbGwgcG9wdXAgaW4gdGhpcyBjYXNlIGlmIHRoZSBjYXJldCBpcyBhdAogICAgIC8vIHRoZSBl
bmQuICBUaGlzIG1hdGNoZXMgRmlyZUZveCBhbmQgU2FmYXJpIGJ1dCBub3QgSUUuCkBAIC03ODUs
MTQgKzc4Niw2IEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6ZG9BdXRvZmlsbChUaW1lcjwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0KLSAgICAvLyBUaGVuIHRyaWdnZXIgZm9ybSBhdXRvZmlsbC4KLSAg
ICBXZWJTdHJpbmcgbmFtZSA9IFdlYklucHV0RWxlbWVudChpbnB1dEVsZW1lbnQpLm5hbWVGb3JB
dXRvZmlsbCgpOwotICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KG5hbWUubGVuZ3RoKCkpID4g
MCk7Ci0KLSAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSkKLSAgICAgICAgbV93ZWJWaWV3LT5j
bGllbnQoKS0+cXVlcnlBdXRvZmlsbFN1Z2dlc3Rpb25zKFdlYk5vZGUoaW5wdXRFbGVtZW50KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5h
bWUsIFdlYlN0cmluZyh2YWx1ZSkpOwogfQogCiB2b2lkIEVkaXRvckNsaWVudEltcGw6OmNhbmNl
bFBlbmRpbmdBdXRvZmlsbCgpCkBAIC04MDMsOCArNzk2LDggQEAgdm9pZCBFZGl0b3JDbGllbnRJ
bXBsOjpjYW5jZWxQZW5kaW5nQXV0bwogCiB2b2lkIEVkaXRvckNsaWVudEltcGw6Om9uQXV0b2Nv
bXBsZXRlU3VnZ2VzdGlvbkFjY2VwdGVkKEhUTUxJbnB1dEVsZW1lbnQqIHRleHRGaWVsZCkKIHsK
LSAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSkKLSAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQo
KS0+ZGlkQWNjZXB0QXV0b2NvbXBsZXRlU3VnZ2VzdGlvbihXZWJJbnB1dEVsZW1lbnQodGV4dEZp
ZWxkKSk7CisgICAgaWYgKG1fd2ViVmlldy0+YXV0b0ZpbGxDbGllbnQoKSkKKyAgICAgICAgbV93
ZWJWaWV3LT5hdXRvRmlsbENsaWVudCgpLT5kaWRBY2NlcHRBdXRvY29tcGxldGVTdWdnZXN0aW9u
KFdlYklucHV0RWxlbWVudCh0ZXh0RmllbGQpKTsKIAogICAgIFdlYkZyYW1lSW1wbCogd2ViZnJh
bWUgPSBXZWJGcmFtZUltcGw6OmZyb21GcmFtZSh0ZXh0RmllbGQtPmRvY3VtZW50KCktPmZyYW1l
KCkpOwogICAgIGlmICghd2ViZnJhbWUpCkBAIC04MTcsOSArODEwLDkgQEAgYm9vbCBFZGl0b3JD
bGllbnRJbXBsOjpkb1RleHRGaWVsZENvbW1hbgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAgICAgSFRN
TElucHV0RWxlbWVudCogaW5wdXRFbGVtZW50ID0gdG9IVE1MSW5wdXRFbGVtZW50KGVsZW1lbnQp
OwotICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpICYmIGlucHV0RWxlbWVudCkgewotICAgICAg
ICBtX3dlYlZpZXctPmNsaWVudCgpLT50ZXh0RmllbGREaWRSZWNlaXZlS2V5RG93bihXZWJJbnB1
dEVsZW1lbnQoaW5wdXRFbGVtZW50KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2V5Ym9hcmRFdmVudEJ1aWxkZXIoKmV2ZW50KSk7
CisgICAgaWYgKG1fd2ViVmlldy0+YXV0b0ZpbGxDbGllbnQoKSAmJiBpbnB1dEVsZW1lbnQpIHsK
KyAgICAgICAgbV93ZWJWaWV3LT5hdXRvRmlsbENsaWVudCgpLT50ZXh0RmllbGREaWRSZWNlaXZl
S2V5RG93bihXZWJJbnB1dEVsZW1lbnQoaW5wdXRFbGVtZW50KSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLZXlib2Fy
ZEV2ZW50QnVpbGRlcigqZXZlbnQpKTsKICAgICB9CiAKICAgICAvLyBSZW1lbWJlciBpZiBiYWNr
c3BhY2Ugd2FzIHByZXNzZWQgZm9yIHRoZSBhdXRvZmlsbC4gIEl0IGlzIG5vdCBjbGVhciBob3cg
dG8KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA3NTM5NikK
KysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC05Nyw2ICs5Nyw3IEBACiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNs
dWRlICJWZWN0b3IuaCIKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5j
bHVkZSAiV2ViQXV0b0ZpbGxDbGllbnQuaCIKICNpbmNsdWRlICJXZWJEZXZUb29sc0FnZW50UHJp
dmF0ZS5oIgogI2luY2x1ZGUgIldlYkRldlRvb2xzQWdlbnRJbXBsLmgiCiAjaW5jbHVkZSAiV2Vi
RHJhZ0RhdGEuaCIKQEAgLTIxMiwxMyArMjEzLDEzIEBAIHN0YXRpYyBib29sIHNob3VsZFVzZUV4
dGVybmFsUG9wdXBNZW51cwogCiAvLyBXZWJWaWV3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotV2ViVmlldyogV2ViVmll
dzo6Y3JlYXRlKFdlYlZpZXdDbGllbnQqIGNsaWVudCwgV2ViRGV2VG9vbHNBZ2VudENsaWVudCog
ZGV2VG9vbHNDbGllbnQpCitXZWJWaWV3KiBXZWJWaWV3OjpjcmVhdGUoV2ViVmlld0NsaWVudCog
Y2xpZW50LCBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiBkZXZUb29sc0NsaWVudCwgV2ViQXV0b0Zp
bGxDbGllbnQqIGF1dG9GaWxsQ2xpZW50KQogewogICAgIC8vIEtlZXAgcnVudGltZSBmbGFnIGZv
ciBkZXZpY2UgbW90aW9uIHR1cm5lZCBvZmYgdW50aWwgaXQncyBpbXBsZW1lbnRlZC4KICAgICBX
ZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZURldmljZU1vdGlvbihmYWxzZSk7CiAKICAgICAvLyBQ
YXNzIHRoZSBXZWJWaWV3SW1wbCdzIHNlbGYtcmVmZXJlbmNlIHRvIHRoZSBjYWxsZXIuCi0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJWaWV3SW1wbChjbGllbnQsIGRldlRvb2xzQ2xpZW50KSku
bGVha1JlZigpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViVmlld0ltcGwoY2xpZW50LCBk
ZXZUb29sc0NsaWVudCwgYXV0b0ZpbGxDbGllbnQpKS5sZWFrUmVmKCk7CiB9CiAKIHZvaWQgV2Vi
Vmlldzo6c2V0VXNlRXh0ZXJuYWxQb3B1cE1lbnVzKGJvb2wgdXNlRXh0ZXJuYWxQb3B1cE1lbnVz
KQpAQCAtMjcwLDggKzI3MSw5IEBAIHZvaWQgV2ViVmlld0ltcGw6OmluaXRpYWxpemVNYWluRnJh
bWUoV2UKICAgICBTZWN1cml0eU9yaWdpbjo6c2V0TG9jYWxMb2FkUG9saWN5KFNlY3VyaXR5T3Jp
Z2luOjpBbGxvd0xvY2FsTG9hZHNGb3JMb2NhbE9ubHkpOwogfQogCi1XZWJWaWV3SW1wbDo6V2Vi
Vmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50LCBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiBk
ZXZUb29sc0NsaWVudCkKK1dlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBj
bGllbnQsIFdlYkRldlRvb2xzQWdlbnRDbGllbnQqIGRldlRvb2xzQ2xpZW50LCBXZWJBdXRvRmls
bENsaWVudCogYXV0b0ZpbGxDbGllbnQpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgLCBt
X2F1dG9GaWxsQ2xpZW50KGF1dG9GaWxsQ2xpZW50KQogICAgICwgbV9iYWNrRm9yd2FyZExpc3RD
bGllbnRJbXBsKHRoaXMpCiAgICAgLCBtX2Nocm9tZUNsaWVudEltcGwodGhpcykKICAgICAsIG1f
Y29udGV4dE1lbnVDbGllbnRJbXBsKHRoaXMpCkBAIC02NjQsNyArNjY2LDcgQEAgYm9vbCBXZWJW
aWV3SW1wbDo6YXV0b2NvbXBsZXRlSGFuZGxlS2V5RQogCiAgICAgICAgIFdlYlN0cmluZyBuYW1l
ID0gV2ViSW5wdXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50
KSkubmFtZUZvckF1dG9maWxsKCk7CiAgICAgICAgIFdlYlN0cmluZyB2YWx1ZSA9IG1fYXV0b0Zp
bGxQb3B1cENsaWVudC0+aXRlbVRleHQoc2VsZWN0ZWRJbmRleCk7Ci0gICAgICAgIG1fY2xpZW50
LT5yZW1vdmVBdXRvZmlsbFN1Z2dlc3Rpb25zKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgbV9hdXRv
RmlsbENsaWVudC0+cmVtb3ZlQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbihuYW1lLCB2YWx1ZSk7CiAg
ICAgICAgIC8vIFVwZGF0ZSB0aGUgZW50cmllcyBpbiB0aGUgY3VycmVudGx5IHNob3dpbmcgcG9w
dXAgdG8gcmVmbGVjdCB0aGUKICAgICAgICAgLy8gZGVsZXRpb24uCiAgICAgICAgIG1fYXV0b0Zp
bGxQb3B1cENsaWVudC0+cmVtb3ZlU3VnZ2VzdGlvbkF0SW5kZXgoc2VsZWN0ZWRJbmRleCk7Cklu
ZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCShyZXZpc2lvbiA3NTM5NikKKysrIFdlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMjIwLDYgKzIy
MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2NsaWVudDsKICAgICB9CiAKKyAgICBX
ZWJBdXRvRmlsbENsaWVudCogYXV0b0ZpbGxDbGllbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1fYXV0b0ZpbGxDbGllbnQ7CisgICAgfQorCiAgICAgLy8gUmV0dXJucyB0aGUgcGFnZSBvYmpl
Y3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdmlldy4gVGhpcyBtYXkgYmUgbnVsbCB3aGVuCiAgICAg
Ly8gdGhlIHBhZ2UgaXMgc2h1dHRpbmcgZG93biwgYnV0IHdpbGwgYmUgdmFsaWQgYXQgYWxsIG90
aGVyIHRpbWVzLgogICAgIFdlYkNvcmU6OlBhZ2UqIHBhZ2UoKSBjb25zdApAQCAtMzYyLDcgKzM2
Nyw3IEBAIHByaXZhdGU6CiAgICAgICBEcmFnT3ZlcgogICAgIH07CiAKLSAgICBXZWJWaWV3SW1w
bChXZWJWaWV3Q2xpZW50KiBjbGllbnQsIFdlYkRldlRvb2xzQWdlbnRDbGllbnQqIGRldlRvb2xz
Q2xpZW50KTsKKyAgICBXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiwgV2ViRGV2VG9vbHNBZ2Vu
dENsaWVudCosIFdlYkF1dG9GaWxsQ2xpZW50Kik7CiAgICAgfldlYlZpZXdJbXBsKCk7CiAKICAg
ICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGV2ZW50IHdhcyBhY3R1YWxseSBwcm9jZXNzZWQuCkBA
IC00MDMsNiArNDA4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgV2ViVmlld0NsaWVudCog
bV9jbGllbnQ7CisgICAgV2ViQXV0b0ZpbGxDbGllbnQqIG1fYXV0b0ZpbGxDbGllbnQ7CiAKICAg
ICBCYWNrRm9yd2FyZExpc3RDbGllbnRJbXBsIG1fYmFja0ZvcndhcmRMaXN0Q2xpZW50SW1wbDsK
ICAgICBDaHJvbWVDbGllbnRJbXBsIG1fY2hyb21lQ2xpZW50SW1wbDsKSW5kZXg6IFdlYktpdC9j
aHJvbWl1bS9zcmMvV2ViV29ya2VyQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJXb3JrZXJCYXNlLmNwcAkocmV2aXNpb24gNzUzOTYpCisrKyBXZWJLaXQvY2hy
b21pdW0vc3JjL1dlYldvcmtlckJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsNyArMTcw
LDcgQEAgdm9pZCBXZWJXb3JrZXJCYXNlOjppbml0aWFsaXplTG9hZGVyKGNvbgogICAgIC8vIGxv
YWRpbmcgcmVxdWVzdHMgZnJvbSB0aGUgd29ya2VyIGNvbnRleHQgdG8gdGhlIHJlc3Qgb2YgV2Vi
S2l0IGFuZCBDaHJvbWl1bQogICAgIC8vIGluZnJhc3RydWN0dXJlLgogICAgIEFTU0VSVCghbV93
ZWJWaWV3KTsKLSAgICBtX3dlYlZpZXcgPSBXZWJWaWV3OjpjcmVhdGUoMCwgMCk7CisgICAgbV93
ZWJWaWV3ID0gV2ViVmlldzo6Y3JlYXRlKDAsIDAsIDApOwogICAgIG1fd2ViVmlldy0+c2V0dGlu
Z3MoKS0+c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKFdlYlJ1bnRpbWVGZWF0
dXJlczo6aXNBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpKTsKICAgICBtX3dlYlZpZXctPmluaXRp
YWxpemVNYWluRnJhbWUodGhpcyk7CiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS90ZXN0cy9Qb3B1
cE1lbnVUZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBN
ZW51VGVzdC5jcHAJKHJldmlzaW9uIDc1Mzk2KQorKysgV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Bv
cHVwTWVudVRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODEsNyArMTgxLDcgQEAgcHVibGlj
OgogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpCiAgICAgewotICAgICAgICBt
X3dlYlZpZXcgPSBzdGF0aWNfY2FzdDxXZWJWaWV3SW1wbCo+KFdlYlZpZXc6OmNyZWF0ZSgmbV93
ZWJ2aWV3Q2xpZW50LCAwKSk7CisgICAgICAgIG1fd2ViVmlldyA9IHN0YXRpY19jYXN0PFdlYlZp
ZXdJbXBsKj4oV2ViVmlldzo6Y3JlYXRlKCZtX3dlYnZpZXdDbGllbnQsIDAsIDApKTsKICAgICAg
ICAgbV93ZWJWaWV3LT5pbml0aWFsaXplTWFpbkZyYW1lKCZtX3dlYkZyYW1lQ2xpZW50KTsKICAg
ICAgICAgbV9wb3B1cE1lbnUgPSBhZG9wdFJlZihuZXcgUG9wdXBNZW51Q2hyb21pdW0oJm1fcG9w
dXBNZW51Q2xpZW50KSk7CiAgICAgfQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZy
YW1lVGVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1l
VGVzdC5jcHAJKHJldmlzaW9uIDc1Mzk2KQorKysgV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZy
YW1lVGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDcgQEAgVEVTVF9GKFdlYkZy
YW1lVGVzdCwgQ29udGVudFRleHQpCiAKICAgICAvLyBDcmVhdGUgYW5kIGluaXRpYWxpemUgdGhl
IFdlYlZpZXcuICAgIAogICAgIFRlc3RXZWJGcmFtZUNsaWVudCB3ZWJGcmFtZUNsaWVudDsKLSAg
ICBXZWJWaWV3KiB3ZWJWaWV3ID0gV2ViVmlldzo6Y3JlYXRlKDAsIDApOworICAgIFdlYlZpZXcq
IHdlYlZpZXcgPSBXZWJWaWV3OjpjcmVhdGUoMCwgMCwgMCk7CiAgICAgd2ViVmlldy0+aW5pdGlh
bGl6ZU1haW5GcmFtZSgmd2ViRnJhbWVDbGllbnQpOwogCiAgICAgLy8gTG9hZCB0aGUgbWFpbiBm
cmFtZSBVUkwuCg==
</data>
<flag name="review"
          id="69783"
          type_id="1"
          status="+"
          setter="jamesr"
    />
          </attachment>
      

    </bug>

</bugzilla>