<?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>138527</bug_id>
          
          <creation_ts>2014-11-07 16:37:10 -0800</creation_ts>
          <short_desc>Add a more correct way to compare floating point numbers and use it</short_desc>
          <delta_ts>2014-11-09 21:51:45 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1047245</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-07 16:37:10 -0800</bug_when>
    <thetext>We should add a more correct way to compare floating point numbers and use it in the code base. We currently use std::abs(a-b) &lt;= std::numeric_limits&lt;T&gt;::epsilon() in several places. However, this is not correct for arbitrary floating point values, and will fail for values that are not close to zero.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047250</commentid>
    <comment_count>1</comment_count>
      <attachid>241220</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-07 16:58:57 -0800</bug_when>
    <thetext>Created attachment 241220
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047251</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-07 17:00:41 -0800</bug_when>
    <thetext>Attachment 241220 did not pass style-queue:


ERROR: Source/WebKit/mac/WebView/WebHTMLView.mm:2416:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 11 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>1047333</commentid>
    <comment_count>3</comment_count>
      <attachid>241242</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-08 16:54:30 -0800</bug_when>
    <thetext>Created attachment 241242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047334</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-08 16:56:40 -0800</bug_when>
    <thetext>Attachment 241242 did not pass style-queue:


ERROR: Source/WebKit/mac/WebView/WebHTMLView.mm:2416:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 11 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>1047375</commentid>
    <comment_count>5</comment_count>
      <attachid>241242</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-11-08 22:57:58 -0800</bug_when>
    <thetext>Comment on attachment 241242
Patch

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

I did not review this patch for correctness. I noticed a minor nit with the citation style and had a question as to the origin of the quotation &quot;very close with tolerance e&quot;.

&gt; Source/WTF/ChangeLog:19
&gt; +        which defines a &quot;very close with tolerance e&quot; relationship between u

Do you know what page this quotes comes from? I was unable to find this quotation when searching through the 1981 printing of The Art of Computer Programming, Volume 2 (*) or section 4.2.2 &quot;Accuracy of Floating Point Arithmetic&quot; of the 1998 printing. The only reference I found of this quotation is on &lt;http://www.boost.org/doc/libs/1_34_0/libs/test/doc/components/test_tools/floating_point_comparison.html&gt;. This web page doesn&apos;t cite the particular page(s)/section(s) referenced from The Art of Computer Programming, Volume 2 :( You may also want to consider citing the boost.org web page in this ChangeLog entry.

(*) A PDF of the 1981 printing of t &lt;http://www.itpa.lt/~acus/Knygos/Donald.E.Knuth%20-%20The%20Art%20of%20Computer%20Programming%20I-III,%20Concrete%20Mathematics,%20The%20Tex%20Book/Addison.Wesley.Donald.E.Knuth.The.Art.of.Computer.Programming.Volume.2.pdf&gt;

&gt; Source/WTF/wtf/MathExtras.h:409
&gt; +// Floating point numbers comparison.
&gt; +// From Knuth D.E. The art of computer programming (vol II):
&gt; +// | u - v | / |u| &lt;= e and | u - v | / |v| &lt;= e
&gt; +// defines a &quot;very close with tolerance e&quot; relationship between u and v

You may also want to consider citing the boost.org web page, &lt;http://www.boost.org/doc/libs/1_34_0/libs/test/doc/components/test_tools/floating_point_comparison.html&gt;, in this comment.

Assuming you are referencing section 4.2.2 &quot;Accuracy of Floating Point Arithmetic&quot; of the The Art of Computer Programming then the MLA-citation would be of the form:

Knuth, D. E. &quot;Accuracy of Floating Point Arithmetic.&quot; The Art of Computer Programming. 3rd ed. Vol. 2. Boston: Addison-Wesley, 1998. 229-45.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047376</commentid>
    <comment_count>6</comment_count>
      <attachid>241242</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-08 23:24:08 -0800</bug_when>
    <thetext>Comment on attachment 241242
Patch

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

&gt;&gt; Source/WTF/ChangeLog:19
&gt;&gt; +        which defines a &quot;very close with tolerance e&quot; relationship between u
&gt; 
&gt; Do you know what page this quotes comes from? I was unable to find this quotation when searching through the 1981 printing of The Art of Computer Programming, Volume 2 (*) or section 4.2.2 &quot;Accuracy of Floating Point Arithmetic&quot; of the 1998 printing. The only reference I found of this quotation is on &lt;http://www.boost.org/doc/libs/1_34_0/libs/test/doc/components/test_tools/floating_point_comparison.html&gt;. This web page doesn&apos;t cite the particular page(s)/section(s) referenced from The Art of Computer Programming, Volume 2 :( You may also want to consider citing the boost.org web page in this ChangeLog entry.
&gt; 
&gt; (*) A PDF of the 1981 printing of t &lt;http://www.itpa.lt/~acus/Knygos/Donald.E.Knuth%20-%20The%20Art%20of%20Computer%20Programming%20I-III,%20Concrete%20Mathematics,%20The%20Tex%20Book/Addison.Wesley.Donald.E.Knuth.The.Art.of.Computer.Programming.Volume.2.pdf&gt;

This is on page 218 - 219. Knuth actually uses the terms &quot;essentially equal to&quot; / &quot;approximately equal to&quot;. I actually quoted the boost page, which referred to Knuth&apos;s book. My proposal would be to use &quot;is essentially equal to&quot; (rename to function to areEssentiallyEqual()) and keep quoting Knuth. What do you think? I will also include a link to the boost page as this is the one I referred to initially.

&gt;&gt; Source/WTF/wtf/MathExtras.h:409
&gt;&gt; +// defines a &quot;very close with tolerance e&quot; relationship between u and v
&gt; 
&gt; You may also want to consider citing the boost.org web page, &lt;http://www.boost.org/doc/libs/1_34_0/libs/test/doc/components/test_tools/floating_point_comparison.html&gt;, in this comment.
&gt; 
&gt; Assuming you are referencing section 4.2.2 &quot;Accuracy of Floating Point Arithmetic&quot; of the The Art of Computer Programming then the MLA-citation would be of the form:
&gt; 
&gt; Knuth, D. E. &quot;Accuracy of Floating Point Arithmetic.&quot; The Art of Computer Programming. 3rd ed. Vol. 2. Boston: Addison-Wesley, 1998. 229-45.

Yes, section 4.2.2 indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047377</commentid>
    <comment_count>7</comment_count>
      <attachid>241250</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-08 23:39:57 -0800</bug_when>
    <thetext>Created attachment 241250
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047378</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-08 23:41:13 -0800</bug_when>
    <thetext>Thanks for the review Daniel. I have updated the patch accordingly I believe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047379</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-08 23:41:59 -0800</bug_when>
    <thetext>Attachment 241250 did not pass style-queue:


ERROR: Source/WebKit/mac/WebView/WebHTMLView.mm:2416:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 11 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>1047398</commentid>
    <comment_count>10</comment_count>
      <attachid>241250</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-11-09 10:02:30 -0800</bug_when>
    <thetext>Comment on attachment 241250
Patch

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

This change is OK, but I am really concerned with the fragile way we wrote the code to compare double scale factors in WebKit, compensating for the fact that they are treated as floats inside WebCore.

&gt; Source/WTF/wtf/MathExtras.h:399
&gt; +    if (v &lt; 1  &amp;&amp; u &gt; v * std::numeric_limits&lt;T&gt;::max())

Extra space before the &quot;&amp;&amp;&quot; on this line.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:833
&gt; +static inline bool withinEpsilon(float a, float b)

This function, with its current name and function, is too subtle. The most important thing this function does it convert its arguments to floats, as the comment explains above; it is needed because WebCore stores these values as float, not double. Given that, I think it needs a better name. It’s not just a general purpose &quot;within epsilon&quot; function, but rather one that’s specifically about the &quot;float&quot; type. More specifically, if someone were to overload this to work for doubles as well as floats, or convert it back to a template, that would likely break this, since we’d use a double epsilon rather than a float one.

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/PageViewportController.cpp:325
&gt; +    bool currentlyScaledToFit = WTF::areEssentiallyEqual(m_pageScaleFactor, m_minimumScaleToFit, 0.0001f);

In both the old code and the new, I wonder where the magic number 0.0001f comes from.

&gt; Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm:2217
&gt; +    return WTF::areEssentiallyEqual(a, b);

We have the same problem here as in WKWebView.mm, but here we don’t even have the comment explaining why converting to float is important. It would be really easy to break this code by overloading or changing the types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047405</commentid>
    <comment_count>11</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-11-09 13:24:04 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; [...]
&gt; This is on page 218 - 219. Knuth actually uses the terms &quot;essentially equal
&gt; to&quot; / &quot;approximately equal to&quot;. I actually quoted the boost page, which
&gt; referred to Knuth&apos;s book. My proposal would be to use &quot;is essentially equal
&gt; to&quot; (rename to function to areEssentiallyEqual()) and keep quoting Knuth.
&gt; What do you think? 

Sounds reasonable.

&gt; I will also include a link to the boost page as this is
&gt; the one I referred to initially.
&gt; 

Good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047406</commentid>
    <comment_count>12</comment_count>
      <attachid>241250</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-09 13:48:22 -0800</bug_when>
    <thetext>Comment on attachment 241250
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/PageViewportController.cpp:325
&gt;&gt; +    bool currentlyScaledToFit = WTF::areEssentiallyEqual(m_pageScaleFactor, m_minimumScaleToFit, 0.0001f);
&gt; 
&gt; In both the old code and the new, I wonder where the magic number 0.0001f comes from.

This apparently used to be 0.001f a very long time ago, when this code was Qt-specific. It was updated to 0.0001f in https://bugs.webkit.org/attachment.cgi?id=177492&amp;action=review to &quot;fix flakiness&quot; in scale related API tests. It is very likely we can use here the same code as on Mac and iOS instead of using this arbitrary precision. However, I am not sure I should be the one making this change as I don&apos;t have an easy to test the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047407</commentid>
    <comment_count>13</comment_count>
      <attachid>241258</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-09 13:54:33 -0800</bug_when>
    <thetext>Created attachment 241258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047408</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-09 13:55:47 -0800</bug_when>
    <thetext>Attachment 241258 did not pass style-queue:


ERROR: Source/WebKit/mac/WebView/WebHTMLView.mm:2416:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 11 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>1047409</commentid>
    <comment_count>15</comment_count>
      <attachid>241258</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-09 13:55:58 -0800</bug_when>
    <thetext>Comment on attachment 241258
Patch

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

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/PageViewportController.cpp:325
&gt; +    // FIXME: Why this arbitrary precision? We likely want to omit the third argument so that

Gyuyoung, do you think this is something you could look into in a follow-up as the EFL port is exercising this code path?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047422</commentid>
    <comment_count>16</comment_count>
      <attachid>241263</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-09 15:36:56 -0800</bug_when>
    <thetext>Created attachment 241263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047425</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-09 15:39:09 -0800</bug_when>
    <thetext>Attachment 241263 did not pass style-queue:


ERROR: Source/WebKit/mac/WebView/WebHTMLView.mm:2416:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 13 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>1047432</commentid>
    <comment_count>18</comment_count>
      <attachid>241263</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-09 16:22:00 -0800</bug_when>
    <thetext>Comment on attachment 241263
Patch

Clearing flags on attachment: 241263

Committed r175796: &lt;http://trac.webkit.org/changeset/175796&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047433</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-09 16:22:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047440</commentid>
    <comment_count>20</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-11-09 18:47:38 -0800</bug_when>
    <thetext>&quot;Essentually&quot; is misspelled--should be &quot;Essentially&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047441</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-09 18:48:56 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; &quot;Essentually&quot; is misspelled--should be &quot;Essentially&quot;.

Hmm :) Thankfully it is only in the Changelogs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047442</commentid>
    <comment_count>22</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-09 18:54:32 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; &quot;Essentually&quot; is misspelled--should be &quot;Essentially&quot;.
&gt; 
&gt; Hmm :) Thankfully it is only in the Changelogs.

Not sure what&apos;s the policy in this case. Should I land a patch to fix only the Changelogs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047460</commentid>
    <comment_count>23</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-11-09 21:45:24 -0800</bug_when>
    <thetext>I like the function name, areEssentiallyEqualAsFloat, that you chose for the float workaround function. Unfortunately, it looks like it was spelled incorrectly as areEssentiallEqualAsFloat in WebPageIOS.mm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047463</commentid>
    <comment_count>24</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-11-09 21:49:57 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; I like the function name, areEssentiallyEqualAsFloat, that you chose for the
&gt; float workaround function. Unfortunately, it looks like it was spelled
&gt; incorrectly as areEssentiallEqualAsFloat in WebPageIOS.mm.

Thanks for catching that and sorry about that. I fixed to typo in &lt;http://trac.webkit.org/changeset/175797&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047465</commentid>
    <comment_count>25</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-11-09 21:51:45 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; Should I land a patch to fix only the Changelogs?

No.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241220</attachid>
            <date>2014-11-07 16:58:57 -0800</date>
            <delta_ts>2014-11-08 16:54:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138527-20141107165908.patch</filename>
            <type>text/plain</type>
            <size>13240</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1NzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVlNDVkMzc5ZDgxOWExNjRhYTUyZGZj
MGJjZWQ1ZWYwYWI1MWZjOTcuLjliMmYyZGNmMjMwN2RkMjdkMjllODgwODg3OGQyNjY1OGZkNzVk
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTQtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBtb3JlIGNvcnJlY3Qgd2F5IHRvIGNvbXBhcmUg
ZmxvYXRpbmcgcG9pbnQgbnVtYmVycyBhbmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg1MjcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBjb21wYXJlIGZsb2F0aW5nIHBvaW50IG51bWJl
cnMgaW4gdGhlIGNvZGUgYmFzZSwgd2Ugd291bGQgb2Z0ZW4gcmVseQorICAgICAgICBvbiB0aGUg
Zm9sbG93aW5nIGNoZWNrOgorICAgICAgICBzdGQ6OmFicyhhIC0gYikgPD0gc3RkOjpudW1lcmlj
X2xpbWl0czxUPjo6ZXBzaWxvbigpCisKKyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgY29y
cmVjdCBmb3IgYXJiaXRyYXJ5IGZsb2F0aW5nIHBvaW50IHZhbHVlcywgYW5kCisgICAgICAgIHdp
bGwgZmFpbCBmb3IgdmFsdWVzIHRoYXQgYXJlIG5vdCBjbG9zZSB0byB6ZXJvLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIFdURjo6YXJlVmVyeUNsb3NlKCkgdGVtcGxhdGVkIGZ1
bmN0aW9uIHRoYXQKKyAgICAgICAgY2FuIG9ubHkgYmUgY2FsbGVkIHdpdGggZmxvYXRpbmcgcG9p
bnQgdmFsdWVzIGFyZSByZWxpZXMgb24gdGhlCisgICAgICAgIGZvbGxvd2luZyBmb3JtdWxhIGZy
b20gWzFdOgorICAgICAgICB8IHUgLSB2IHwgLyB8dXwgPD0gZSBhbmQgfCB1IC0gdiB8IC8gfHZ8
IDw9IGUKKyAgICAgICAgd2hpY2ggZGVmaW5lcyBhICJ2ZXJ5IGNsb3NlIHdpdGggdG9sZXJhbmNl
IGUiIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHUKKyAgICAgICAgYW5kIHYuCisKKyAgICAgICAgWzFd
IEtudXRoIEQuRS4gVGhlIGFydCBvZiBjb21wdXRlciBwcm9ncmFtbWluZyAodm9sIElJKS4KKwor
ICAgICAgICAqIHd0Zi9NYXRoRXh0cmFzLmg6CisgICAgICAgIChXVEY6OmFyZVZlcnlDbG9zZSk6
CisgICAgICAgIChXVEY6OndpdGhpbkVwc2lsb24pOiBEZWxldGVkLgorCiAyMDE0LTExLTA1ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQXNzZXJ0aW9uIGhpdCBE
T01UaW1lcjo6dXBkYXRlVGltZXJJbnRlcnZhbElmTmVjZXNzYXJ5KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0
MGI0MmU4MGJjZWVlYWNiN2ViOGE0OWNmMDJiYzJjMzdmOTYxN2YwLi41ZjUwZmFkZDkyODRjYzFk
MGZlM2EzNzJmMDdkNGQ0ZmQzNGIxNGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTQtMTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
YSBtb3JlIGNvcnJlY3Qgd2F5IHRvIGNvbXBhcmUgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyBhbmQg
dXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzg1MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
c2UgdGhlIG5ldyBXVEY6OmFyZVZlcnlDbG9zZSgpIHV0aWxpdHkgZnVuY3Rpb24gZnJvbSBNYXRo
RXh0cmFzLmggdG8KKyAgICAgICAgY29tcGFyZSBmbG9hdGluZy1wb2ludCBudW1iZXJzLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGFn
ZS9ET01UaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6dXBkYXRlVGltZXJJ
bnRlcnZhbElmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1
YWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRRdWFkOjppc1JlY3RpbGluZWFyKToKKwog
MjAxNC0xMS0wNyAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
W01hY10gQXZvaWQgcmVwYWludGluZyBzY3JvbGxiYXIgdHJhY2sgd2hlbiB0aGUgc2Nyb2xsYmFy
IHRyYWNrIGlzIHRyYW5zcGFyZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDNiMmRhNTllMzc2ODA0
Y2U2YTVkYmY2OTYxZGVkNGQ4MGJiYTAxMTkuLjZlZDk3ZmMwOTlmYTYwMGZjOWExYTEzNTQyZGY0
YTdlMDVhNDZiYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0xMS0w
NyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG1vcmUg
Y29ycmVjdCB3YXkgdG8gY29tcGFyZSBmbG9hdGluZyBwb2ludCBudW1iZXJzIGFuZCB1c2UgaXQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODUyNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0aGUg
bmV3IFdURjo6YXJlVmVyeUNsb3NlKCkgdXRpbGl0eSBmdW5jdGlvbiBmcm9tIE1hdGhFeHRyYXMu
aCB0bworICAgICAgICBjb21wYXJlIGZsb2F0aW5nLXBvaW50IG51bWJlcnMuCisKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfYWRqdXN0
ZWRCb3R0b21PZlBhZ2VXaXRoVG9wOmJvdHRvbTpsaW1pdDpdKToKKwogMjAxNC0xMS0wNyAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBVcGRh
dGUgb3B0aW1pemVkIGZ1bGxzY3JlZW4gbWVkaWEgY29udHJvbHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyMTc0
ODQ5ZTQwMDhjY2FlODNjYmVhYjZmZDE2MmY0ODdhNzI1NDM3Li4zNzkwZjdkMzc3NWM4ZWU2NzIx
N2ZjMDU1MDNjYTllYzcyOTliZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTQt
MTEtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBt
b3JlIGNvcnJlY3Qgd2F5IHRvIGNvbXBhcmUgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyBhbmQgdXNl
IGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg1
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ug
dGhlIG5ldyBXVEY6OmFyZVZlcnlDbG9zZSgpIHV0aWxpdHkgZnVuY3Rpb24gZnJvbSBNYXRoRXh0
cmFzLmggdG8KKyAgICAgICAgY29tcGFyZSBmbG9hdGluZy1wb2ludCBudW1iZXJzLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBfZGlkQ29tbWl0TGF5ZXJUcmVlOl0pOgorICAgICAgICAod2l0aGluRXBzaWxvbik6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdw
b3J0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xs
ZXI6OnVwZGF0ZU1pbmltdW1TY2FsZVRvRml0KToKKyAgICAgICAgKFdlYktpdDo6ZnV6enlDb21w
YXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Q
YWdlVmlld3BvcnRDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0Ojp3aXRoaW5FcHNpbG9uKToKKwogMjAx
NC0xMS0wNyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTnVsbCBk
ZXJlZiBwZXJmb3JtaW5nIExvb2t1cCBvbiBBcHBsZSBUcmFpbGVycyBmdWxsIHNjcmVlbiBidXR0
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01hdGhFeHRyYXMuaCBiL1NvdXJjZS9XVEYv
d3RmL01hdGhFeHRyYXMuaAppbmRleCBlMzM5YzFiMTQ1ZTg3YWZjNjU4ZDFhYmM1YmRiYTA5YjI4
MjEzZTg3Li4yZmQyODFiNjhlMDIyZmIzZjViYzhhYjQwNmQ4MjM3N2EzNGNhNTIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmgKKysrIGIvU291cmNlL1dURi93dGYvTWF0
aEV4dHJhcy5oCkBAIC0zOTIsMTAgKzM5MiwxNSBAQCBpbmxpbmUgdW5zaWduZWQgZmFzdExvZzIo
dW5zaWduZWQgaSkKICAgICByZXR1cm4gbG9nMjsKIH0KIAorLy8gRmxvYXRpbmcgcG9pbnQgbnVt
YmVycyBjb21wYXJpc29uLgorLy8gRnJvbSBLbnV0aCBELkUuIFRoZSBhcnQgb2YgY29tcHV0ZXIg
cHJvZ3JhbW1pbmcgKHZvbCBJSSk6CisvLyB8IHUgLSB2IHwgLyB8dXwgPD0gZSBhbmQgfCB1IC0g
diB8IC8gfHZ8IDw9IGUKKy8vIGRlZmluZXMgYSAidmVyeSBjbG9zZSB3aXRoIHRvbGVyYW5jZSBl
IiByZWxhdGlvbnNoaXAgYmV0d2VlbiB1IGFuZCB2CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWlu
bGluZSBib29sIHdpdGhpbkVwc2lsb24oVCBhLCBUIGIpCitpbmxpbmUgdHlwZW5hbWUgc3RkOjpl
bmFibGVfaWY8c3RkOjppc19mbG9hdGluZ19wb2ludDxUPjo6dmFsdWUsIGJvb2w+Ojp0eXBlIGFy
ZVZlcnlDbG9zZShUIHUsIFQgdiwgVCBlcHNpbG9uID0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6
ZXBzaWxvbigpKQogewotICAgIHJldHVybiBzdGQ6OmFicyhhIC0gYikgPD0gc3RkOjpudW1lcmlj
X2xpbWl0czxUPjo6ZXBzaWxvbigpOworICAgIGNvbnN0IFQgZGVsdGEgPSBzdGQ6OmFicyh1IC0g
dik7CisgICAgcmV0dXJuIGRlbHRhIC8gc3RkOjphYnModSkgPD0gZXBzaWxvbiAmJiBkZWx0YSAv
IHN0ZDo6YWJzKHYpIDw9IGVwc2lsb247CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVRpbWVyLmNwcAppbmRleCAxNjE4ZGYxNzczNGY5N2RiNjBmMGY3MDVhMThlNmZiYzhl
YTA5Nzc4Li5kMjlmMzE5NWI5MjU0MTRiMmE5MzhlNzc0NWExZTE5YTM1MjYxYTI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVRpbWVyLmNwcApAQCAtMjcwLDExICsyNzAsMTEgQEAgdm9pZCBET01UaW1lcjo6
dXBkYXRlVGltZXJJbnRlcnZhbElmTmVjZXNzYXJ5KCkKICAgICBkb3VibGUgcHJldmlvdXNJbnRl
cnZhbCA9IG1fY3VycmVudFRpbWVySW50ZXJ2YWw7CiAgICAgbV9jdXJyZW50VGltZXJJbnRlcnZh
bCA9IGludGVydmFsQ2xhbXBlZFRvTWluaW11bSgpOwogCi0gICAgaWYgKFdURjo6d2l0aGluRXBz
aWxvbihwcmV2aW91c0ludGVydmFsLCBtX2N1cnJlbnRUaW1lckludGVydmFsKSkKKyAgICBpZiAo
V1RGOjphcmVWZXJ5Q2xvc2UocHJldmlvdXNJbnRlcnZhbCwgbV9jdXJyZW50VGltZXJJbnRlcnZh
bCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChyZXBlYXRJbnRlcnZhbCgpKSB7Ci0gICAg
ICAgIEFTU0VSVChXVEY6OndpdGhpbkVwc2lsb24ocmVwZWF0SW50ZXJ2YWwoKSwgcHJldmlvdXNJ
bnRlcnZhbCkpOworICAgICAgICBBU1NFUlQoV1RGOjphcmVWZXJ5Q2xvc2UocmVwZWF0SW50ZXJ2
YWwoKSwgcHJldmlvdXNJbnRlcnZhbCkpOwogICAgICAgICBhdWdtZW50UmVwZWF0SW50ZXJ2YWwo
bV9jdXJyZW50VGltZXJJbnRlcnZhbCAtIHByZXZpb3VzSW50ZXJ2YWwpOwogICAgIH0gZWxzZQog
ICAgICAgICBhdWdtZW50RmlyZUludGVydmFsKG1fY3VycmVudFRpbWVySW50ZXJ2YWwgLSBwcmV2
aW91c0ludGVydmFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0UXVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9h
dFF1YWQuY3BwCmluZGV4IGI5NWZhYjJiZDEyZGJjMDEzNjA4NTJmNmQwNjVkYjY5ZjFlMWRhMjYu
Ljc3YzcwOTAxNjhhYjA5YjE1MmY1MWUwZTE3MDUwNTBmMjg3ZDdjNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UXVhZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRRdWFkLmNwcApAQCAtOTMsOCArOTMsOCBA
QCBGbG9hdFJlY3QgRmxvYXRRdWFkOjpib3VuZGluZ0JveCgpIGNvbnN0CiAKIGJvb2wgRmxvYXRR
dWFkOjppc1JlY3RpbGluZWFyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gKFdURjo6d2l0aGluRXBz
aWxvbihtX3AxLngoKSwgbV9wMi54KCkpICYmIFdURjo6d2l0aGluRXBzaWxvbihtX3AyLnkoKSwg
bV9wMy55KCkpICYmIFdURjo6d2l0aGluRXBzaWxvbihtX3AzLngoKSwgbV9wNC54KCkpICYmIFdU
Rjo6d2l0aGluRXBzaWxvbihtX3A0LnkoKSwgbV9wMS55KCkpKQotICAgICAgICB8fCAoV1RGOjp3
aXRoaW5FcHNpbG9uKG1fcDEueSgpLCBtX3AyLnkoKSkgJiYgV1RGOjp3aXRoaW5FcHNpbG9uKG1f
cDIueCgpLCBtX3AzLngoKSkgJiYgV1RGOjp3aXRoaW5FcHNpbG9uKG1fcDMueSgpLCBtX3A0Lnko
KSkgJiYgV1RGOjp3aXRoaW5FcHNpbG9uKG1fcDQueCgpLCBtX3AxLngoKSkpOworICAgIHJldHVy
biAoV1RGOjphcmVWZXJ5Q2xvc2UobV9wMS54KCksIG1fcDIueCgpKSAmJiBXVEY6OmFyZVZlcnlD
bG9zZShtX3AyLnkoKSwgbV9wMy55KCkpICYmIFdURjo6YXJlVmVyeUNsb3NlKG1fcDMueCgpLCBt
X3A0LngoKSkgJiYgV1RGOjphcmVWZXJ5Q2xvc2UobV9wNC55KCksIG1fcDEueSgpKSkKKyAgICAg
ICAgfHwgKFdURjo6YXJlVmVyeUNsb3NlKG1fcDEueSgpLCBtX3AyLnkoKSkgJiYgV1RGOjphcmVW
ZXJ5Q2xvc2UobV9wMi54KCksIG1fcDMueCgpKSAmJiBXVEY6OmFyZVZlcnlDbG9zZShtX3AzLnko
KSwgbV9wNC55KCkpICYmIFdURjo6YXJlVmVyeUNsb3NlKG1fcDQueCgpLCBtX3AxLngoKSkpOwog
fQogCiBib29sIEZsb2F0UXVhZDo6Y29udGFpbnNQb2ludChjb25zdCBGbG9hdFBvaW50JiBwKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMTdhNjUw
YTk5YzE2MWJmYjViZTNiZTg0ZDExNzA1MjI1M2UxMWFhYi4uYjE5OTIzNWFhMjllYzEwNWRhZmI2
NWM1Njg0ZmQxZGViODdjNzJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tCkBAIC0xMjYsNiArMTI2LDcgQEAKICNpbXBvcnQgPGxpbWl0cz4KICNpbXBvcnQgPHJ1
bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4K
KyNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvT2JqY1J1bnRpbWVFeHRy
YXMuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKQEAgLTI0MTIsNyArMjQxMyw3IEBAIHN0
YXRpYyBib29sIG1vdXNlRXZlbnRJc1BhcnRPZkNsaWNrT3JEcmFnKE5TRXZlbnQgKmV2ZW50KQog
I2lmZGVmIF9fTFA2NF9fCiAgICAgLy8gSWYgdGhlIG5ldyBib3R0b20gaXMgZXF1YWwgdG8gdGhl
IG9sZCBib3R0b20gKHdoZW4gYm90aCBhcmUgdHJlYXRlZCBhcyBmbG9hdHMpLCB3ZSBqdXN0IHJl
dHVybiB0aGUgb3JpZ2luYWwKICAgICAvLyBib3R0b20uIFRoaXMgcHJldmVudHMgcm91bmRpbmcg
ZXJyb3JzIHRoYXQgY2FuIG9jY3VyIHdoZW4gY29udmVydGluZyBuZXdCb3R0b20gdG8gYSBkb3Vi
bGUuCi0gICAgaWYgKGZhYnMoc3RhdGljX2Nhc3Q8ZmxvYXQ+KGJvdHRvbSkgLSBuZXdCb3R0b20p
IDw9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKCkpIAorICAgIGlmIChXVEY6
OmFyZVZlcnlDbG9zZShzdGF0aWNfY2FzdDxmbG9hdD4oYm90dG9tKSwgbmV3Qm90dG9tKSkKICAg
ICAgICAgcmV0dXJuIGJvdHRvbTsKICAgICBlbHNlCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggY2Y4YWQzZDJhYzcyYjQ3
OWM5YjU2MDk0ZDI2NTk0NjAyZWI0YTA5Ni4uOTUzZjMzZDA4MDVjNTk5ZWJhYjdlZTNlNWRmNjcx
ZjI0NjgxYzhjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KQEAgLTc1LDYgKzc1LDcgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pT
Q29udGV4dC5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNWYWx1ZS5oPgogI2ltcG9ydCA8
d3RmL0hhc2hNYXAuaD4KKyNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtODI5LDEw
ICs4MzAsOSBAQCBzdGF0aWMgdm9pZCBjaGFuZ2VDb250ZW50T2Zmc2V0Qm91bmRlZEluVmFsaWRS
YW5nZShVSVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcsIFdlYgogCiAvLyBXZWJDb3JlIHN0b3JlcyB0
aGUgcGFnZSBzY2FsZSBmYWN0b3IgYXMgZmxvYXQgaW5zdGVhZCBvZiBkb3VibGUuIFdoZW4gd2Ug
Z2V0IGEgc2NhbGUgZnJvbSBXZWJDb3JlLAogLy8gd2UgbmVlZCB0byBpZ25vcmUgZGlmZmVyZW5j
ZXMgdGhhdCBhcmUgd2l0aGluIGEgc21hbGwgcm91bmRpbmcgZXJyb3Igb24gZmxvYXRzLgotdGVt
cGxhdGUgPHR5cGVuYW1lIFR5cGVBLCB0eXBlbmFtZSBUeXBlQj4KLXN0YXRpYyBpbmxpbmUgYm9v
bCB3aXRoaW5FcHNpbG9uKFR5cGVBIGEsIFR5cGVCIGIpCitzdGF0aWMgaW5saW5lIGJvb2wgd2l0
aGluRXBzaWxvbihmbG9hdCBhLCBmbG9hdCBiKQogewotICAgIHJldHVybiBzdGQ6OmFicyhhIC0g
YikgPCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpOworICAgIHJldHVybiBX
VEY6OmFyZVZlcnlDbG9zZShhLCBiKTsKIH0KIAogLSAodm9pZClfZGlkQ29tbWl0TGF5ZXJUcmVl
Oihjb25zdCBXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJilsYXllclRyZWVUcmFu
c2FjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcAppbmRl
eCBjMzA0YWM0Mzg0MGNmYThiZTNmMzRlMTFlYzQzMDg2ZTliNTJlMzY0Li4zZDMzNTA1ZmQ1NDdk
NTZmOGFiODM0Yjk0YTE1Nzk5NTIxNmViODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmll
d3BvcnRDb250cm9sbGVyLmNwcApAQCAtMzMsMTEgKzMzLDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1ib29sIGZ1enp5Q29tcGFyZShmbG9hdCBh
LCBmbG9hdCBiLCBmbG9hdCBlcHNpbG9uKQotewotICAgIHJldHVybiBzdGQ6OmFicyhhIC0gYikg
PCBlcHNpbG9uOwotfQotCiBQYWdlVmlld3BvcnRDb250cm9sbGVyOjpQYWdlVmlld3BvcnRDb250
cm9sbGVyKFdlYktpdDo6V2ViUGFnZVByb3h5KiBwcm94eSwgUGFnZVZpZXdwb3J0Q29udHJvbGxl
ckNsaWVudCYgY2xpZW50KQogICAgIDogbV93ZWJQYWdlUHJveHkocHJveHkpCiAgICAgLCBtX2Ns
aWVudChjbGllbnQpCkBAIC0zMjcsMTQgKzMyMiwxNCBAQCBib29sIFBhZ2VWaWV3cG9ydENvbnRy
b2xsZXI6OnVwZGF0ZU1pbmltdW1TY2FsZVRvRml0KGJvb2wgdXNlckluaXRpYXRlZFVwZGF0ZSkK
ICAgICBpZiAobV92aWV3cG9ydFNpemUuaXNFbXB0eSgpIHx8IG1fY29udGVudHNTaXplLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYm9vbCBjdXJyZW50bHlTY2FsZWRU
b0ZpdCA9IGZ1enp5Q29tcGFyZShtX3BhZ2VTY2FsZUZhY3RvciwgbV9taW5pbXVtU2NhbGVUb0Zp
dCwgMC4wMDAxKTsKKyAgICBib29sIGN1cnJlbnRseVNjYWxlZFRvRml0ID0gV1RGOjphcmVWZXJ5
Q2xvc2UobV9wYWdlU2NhbGVGYWN0b3IsIG1fbWluaW11bVNjYWxlVG9GaXQsIDAuMDAwMSk7CiAK
ICAgICBmbG9hdCBtaW5pbXVtU2NhbGUgPSBXZWJDb3JlOjpjb21wdXRlTWluaW11bVNjYWxlRmFj
dG9yRm9yQ29udGVudENvbnRhaW5lZChtX3Jhd0F0dHJpYnV0ZXMsIFdlYkNvcmU6OnJvdW5kZWRJ
bnRTaXplKG1fdmlld3BvcnRTaXplKSwgV2ViQ29yZTo6cm91bmRlZEludFNpemUobV9jb250ZW50
c1NpemUpKTsKIAogICAgIGlmIChtaW5pbXVtU2NhbGUgPD0gMCkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKCFmdXp6eUNvbXBhcmUobWluaW11bVNjYWxlLCBtX21pbmltdW1TY2Fs
ZVRvRml0LCAwLjAwMDEpKSB7CisgICAgaWYgKCFXVEY6OmFyZVZlcnlDbG9zZShtaW5pbXVtU2Nh
bGUsIG1fbWluaW11bVNjYWxlVG9GaXQsIDAuMDAwMSkpIHsKICAgICAgICAgbV9taW5pbXVtU2Nh
bGVUb0ZpdCA9IG1pbmltdW1TY2FsZTsKIAogICAgICAgICBpZiAoIW1fd2ViUGFnZVByb3h5LT5h
cmVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9uc1N1c3BlbmRlZCgpKSB7CkBAIC0zNDMsNyAr
MzM4LDcgQEAgYm9vbCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1cGRhdGVNaW5pbXVtU2NhbGVU
b0ZpdChib29sIHVzZXJJbml0aWF0ZWRVcGRhdGUpCiAgICAgICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgICAgICAvLyBFbnN1cmUgdGhlIGVmZmVjdGl2ZSBzY2FsZSBzdGF5cyB3aXRoaW4gYm91
bmRzLgogICAgICAgICAgICAgICAgIGZsb2F0IGJvdW5kZWRTY2FsZSA9IGlubmVyQm91bmRlZFZp
ZXdwb3J0U2NhbGUobV9wYWdlU2NhbGVGYWN0b3IpOwotICAgICAgICAgICAgICAgIGlmICghZnV6
enlDb21wYXJlKGJvdW5kZWRTY2FsZSwgbV9wYWdlU2NhbGVGYWN0b3IsIDAuMDAwMSkpCisgICAg
ICAgICAgICAgICAgaWYgKCFXVEY6OmFyZVZlcnlDbG9zZShib3VuZGVkU2NhbGUsIG1fcGFnZVNj
YWxlRmFjdG9yLCAwLjAwMDEpKQogICAgICAgICAgICAgICAgICAgICBhcHBseVNjYWxlQWZ0ZXJS
ZW5kZXJpbmdDb250ZW50cyhib3VuZGVkU2NhbGUpOwogICAgICAgICAgICAgfQogICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmgKaW5kZXggYzQ4NjgyOTQ2
ZDIzMDE3ZjA2NmUwNzIwMzVmMmEwMTc0NjViM2EyNC4uNjMzN2YxNTRiMmU4MTliMTI1ZjJmMDk5
NzkxMjNmY2MyZGMxNDhiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xs
ZXIuaApAQCAtMTA4LDggKzEwOCw2IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0
IG1fbGFzdEZyYW1lQ292ZXJlZFJlY3Q7CiB9OwogCi1ib29sIGZ1enp5Q29tcGFyZShmbG9hdCwg
ZmxvYXQsIGZsb2F0IGVwc2lsb24pOwotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlm
IC8vIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDQ0Y2I2N2IwOGQxNzZmNGNh
NWU1NzJkMTdjY2VmMDNmMzg5ZDYyYjQuLmQyNmY2N2JkYzYxZDU4OWI1MWIyOTMwMmFmMmZhZjY0
YzVmMzQ3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0KQEAgLTg3LDYgKzg3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvVmlz
aWJsZVVuaXRzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dLQ29udGVudE9ic2VydmF0aW9uLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50Lmg+CisjaW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgog
I2ltcG9ydCA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKQEAgLTIyMTMsNyArMjIxNCw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0RGV2aWNlT3JpZW50YXRp
b24oaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbikKIAogc3RhdGljIGlubGluZSBib29sIHdpdGhp
bkVwc2lsb24oZmxvYXQgYSwgZmxvYXQgYikKIHsKLSAgICByZXR1cm4gZmFicyhhIC0gYikgPCBz
dGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpOworICAgIHJldHVybiBXVEY6OmFy
ZVZlcnlDbG9zZShhLCBiKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpyZXNldFRleHRBdXRvc2l6aW5n
QmVmb3JlTGF5b3V0SWZOZWVkZWQoY29uc3QgRmxvYXRTaXplJiBvbGRTaXplLCBjb25zdCBGbG9h
dFNpemUmIG5ld1NpemUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241242</attachid>
            <date>2014-11-08 16:54:30 -0800</date>
            <delta_ts>2014-11-08 23:39:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138527-20141108165430.patch</filename>
            <type>text/plain</type>
            <size>13715</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1Nzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVlNDVkMzc5ZDgxOWExNjRhYTUyZGZj
MGJjZWQ1ZWYwYWI1MWZjOTcuLjY2YWY5N2U2YjQ0OWY4NTE0NmI0ZWE0OGNkN2UxZmY0MjY2MmQx
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTQtMTEtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBtb3JlIGNvcnJlY3Qgd2F5IHRvIGNvbXBhcmUg
ZmxvYXRpbmcgcG9pbnQgbnVtYmVycyBhbmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg1MjcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBjb21wYXJlIGZsb2F0aW5nIHBvaW50IG51bWJl
cnMgaW4gdGhlIGNvZGUgYmFzZSwgd2Ugd291bGQgb2Z0ZW4gcmVseQorICAgICAgICBvbiB0aGUg
Zm9sbG93aW5nIGNoZWNrOgorICAgICAgICBzdGQ6OmFicyhhIC0gYikgPD0gc3RkOjpudW1lcmlj
X2xpbWl0czxUPjo6ZXBzaWxvbigpCisKKyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgY29y
cmVjdCBmb3IgYXJiaXRyYXJ5IGZsb2F0aW5nIHBvaW50IHZhbHVlcywgYW5kCisgICAgICAgIHdp
bGwgZmFpbCBmb3IgdmFsdWVzIHRoYXQgYXJlIG5vdCBjbG9zZSB0byB6ZXJvLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIFdURjo6YXJlVmVyeUNsb3NlKCkgdGVtcGxhdGVkIGZ1
bmN0aW9uIHRoYXQKKyAgICAgICAgY2FuIG9ubHkgYmUgY2FsbGVkIHdpdGggZmxvYXRpbmcgcG9p
bnQgdmFsdWVzIGFyZSByZWxpZXMgb24gdGhlCisgICAgICAgIGZvbGxvd2luZyBmb3JtdWxhIGZy
b20gWzFdOgorICAgICAgICB8IHUgLSB2IHwgLyB8dXwgPD0gZSBhbmQgfCB1IC0gdiB8IC8gfHZ8
IDw9IGUKKyAgICAgICAgd2hpY2ggZGVmaW5lcyBhICJ2ZXJ5IGNsb3NlIHdpdGggdG9sZXJhbmNl
IGUiIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHUKKyAgICAgICAgYW5kIHYuCisKKyAgICAgICAgWzFd
IEtudXRoIEQuRS4gVGhlIGFydCBvZiBjb21wdXRlciBwcm9ncmFtbWluZyAodm9sIElJKS4KKwor
ICAgICAgICAqIHd0Zi9NYXRoRXh0cmFzLmg6CisgICAgICAgIChXVEY6OmFyZVZlcnlDbG9zZSk6
CisgICAgICAgIChXVEY6OndpdGhpbkVwc2lsb24pOiBEZWxldGVkLgorCiAyMDE0LTExLTA1ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQXNzZXJ0aW9uIGhpdCBE
T01UaW1lcjo6dXBkYXRlVGltZXJJbnRlcnZhbElmTmVjZXNzYXJ5KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5
Y2I1YmExZDViZjI3ZDdmMjI0ZTVlMWI2NGQ4M2VlYzY1ZjYzMGVjLi5hNzFlYTg1ZDNiNTMzNDg0
ODZhM2MyMzcxZjIxZmU2ODMwODk4YmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIw
MTQtMTEtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQg
YSBtb3JlIGNvcnJlY3Qgd2F5IHRvIGNvbXBhcmUgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyBhbmQg
dXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzg1MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
c2UgdGhlIG5ldyBXVEY6OmFyZVZlcnlDbG9zZSgpIHV0aWxpdHkgZnVuY3Rpb24gZnJvbSBNYXRo
RXh0cmFzLmggdG8KKyAgICAgICAgY29tcGFyZSBmbG9hdGluZy1wb2ludCBudW1iZXJzLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGFn
ZS9ET01UaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6dXBkYXRlVGltZXJJ
bnRlcnZhbElmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1
YWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRRdWFkOjppc1JlY3RpbGluZWFyKToKKwor
MjAxNC0xMS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIFNw
ZWVkIHVwIEhUTUxJbnB1dEVsZW1lbnQ6OmlzRW1wdHlWYWx1ZSgpCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg1MTUKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IDNiMmRhNTllMzc2ODA0Y2U2YTVkYmY2OTYxZGVkNGQ4MGJiYTAxMTkuLjhhMjQ2YjZlZjEx
NzQ2MTkxMzI0ZmIwOGNkYzNhNzAzN2I2M2Q0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxNC0xMS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIEFkZCBhIG1vcmUgY29ycmVjdCB3YXkgdG8gY29tcGFyZSBmbG9hdGluZyBwb2ludCBu
dW1iZXJzIGFuZCB1c2UgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzODUyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzZSB0aGUgbmV3IFdURjo6YXJlVmVyeUNsb3NlKCkgdXRpbGl0eSBmdW5jdGlv
biBmcm9tIE1hdGhFeHRyYXMuaCB0bworICAgICAgICBjb21wYXJlIGZsb2F0aW5nLXBvaW50IG51
bWJlcnMuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBfYWRqdXN0ZWRCb3R0b21PZlBhZ2VXaXRoVG9wOmJvdHRvbTpsaW1pdDpdKToK
KwogMjAxNC0xMS0wNyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXSBVcGRhdGUgb3B0aW1pemVkIGZ1bGxzY3JlZW4gbWVkaWEgY29udHJvbHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzY2YwOTcxMzA0NjgzMGI5Nzc0Y2RkMDZjODUyNzdkNGI3MmRhOWRkLi5k
YzFkZTFlNDFmY2JkMzY3NDY2ZWVlMmE0NThlZmM5NWU0OGZhYjg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjMgQEAKKzIwMTQtMTEtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBBZGQgYSBtb3JlIGNvcnJlY3Qgd2F5IHRvIGNvbXBhcmUgZmxvYXRpbmcgcG9p
bnQgbnVtYmVycyBhbmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzg1MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVc2UgdGhlIG5ldyBXVEY6OmFyZVZlcnlDbG9zZSgpIHV0aWxpdHkgZnVu
Y3Rpb24gZnJvbSBNYXRoRXh0cmFzLmggdG8KKyAgICAgICAgY29tcGFyZSBmbG9hdGluZy1wb2lu
dCBudW1iZXJzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06
CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkQ29tbWl0TGF5ZXJUcmVlOl0pOgorICAgICAgICAo
d2l0aGluRXBzaWxvbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VWaWV3cG9ydENvbnRyb2xsZXI6OnVwZGF0ZU1pbmltdW1TY2FsZVRvRml0KToKKyAgICAgICAg
KFdlYktpdDo6ZnV6enlDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0Ojp3aXRo
aW5FcHNpbG9uKToKKwogMjAxNC0xMS0wOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQWxsb3cgdG8gY3JlYXRlIGEgdmlldyB3aXRo
IGEgcmVsYXRlZCBwYWdlIGluIFdUUgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWF0aEV4
dHJhcy5oIGIvU291cmNlL1dURi93dGYvTWF0aEV4dHJhcy5oCmluZGV4IGUzMzljMWIxNDVlODdh
ZmM2NThkMWFiYzViZGJhMDliMjgyMTNlODcuLmIxZDVmOWI3OTlkZGNlMTQ1NDVlMTkzZDY2N2M3
Y2Y0MmNiNWRjMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01hdGhFeHRyYXMuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmgKQEAgLTM5Myw5ICszOTMsMjggQEAgaW5saW5l
IHVuc2lnbmVkIGZhc3RMb2cyKHVuc2lnbmVkIGkpCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PgotaW5saW5lIGJvb2wgd2l0aGluRXBzaWxvbihUIGEsIFQgYikKK2lubGluZSB0eXBlbmFtZSBz
dGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX2Zsb2F0aW5nX3BvaW50PFQ+Ojp2YWx1ZSwgVD46OnR5cGUg
c2FmZUZQRGl2aXNpb24oVCB1LCBUIHYpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6YWJzKGEgLSBiKSA8
PSBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjplcHNpbG9uKCk7CisgICAgLy8gUHJvdGVjdCBhZ2Fp
bnN0IG92ZXJmbG93IC8gdW5kZXJmbG93LgorICAgIGlmICh2IDwgMSAgJiYgdSA+IHYgKiBzdGQ6
Om51bWVyaWNfbGltaXRzPFQ+OjptYXgoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19s
aW1pdHM8VD46Om1heCgpOworICAgIGlmICh2ID4gMSAmJiB1IDwgdiAqIHN0ZDo6bnVtZXJpY19s
aW1pdHM8VD46Om1pbigpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gdSAvIHY7Cit9
CisKKy8vIEZsb2F0aW5nIHBvaW50IG51bWJlcnMgY29tcGFyaXNvbi4KKy8vIEZyb20gS251dGgg
RC5FLiBUaGUgYXJ0IG9mIGNvbXB1dGVyIHByb2dyYW1taW5nICh2b2wgSUkpOgorLy8gfCB1IC0g
diB8IC8gfHV8IDw9IGUgYW5kIHwgdSAtIHYgfCAvIHx2fCA8PSBlCisvLyBkZWZpbmVzIGEgInZl
cnkgY2xvc2Ugd2l0aCB0b2xlcmFuY2UgZSIgcmVsYXRpb25zaGlwIGJldHdlZW4gdSBhbmQgdgor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3Rk
Ojppc19mbG9hdGluZ19wb2ludDxUPjo6dmFsdWUsIGJvb2w+Ojp0eXBlIGFyZVZlcnlDbG9zZShU
IHUsIFQgdiwgVCBlcHNpbG9uID0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6ZXBzaWxvbigpKQor
eworICAgIGlmICh1ID09IHYpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgY29uc3QgVCBk
ZWx0YSA9IHN0ZDo6YWJzKHUgLSB2KTsKKyAgICByZXR1cm4gc2FmZUZQRGl2aXNpb24oZGVsdGEs
IHN0ZDo6YWJzKHUpKSA8PSBlcHNpbG9uICYmIHNhZmVGUERpdmlzaW9uKGRlbHRhLCBzdGQ6OmFi
cyh2KSkgPD0gZXBzaWxvbjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
VGltZXIuY3BwCmluZGV4IDE2MThkZjE3NzM0Zjk3ZGI2MGYwZjcwNWExOGU2ZmJjOGVhMDk3Nzgu
LmQyOWYzMTk1YjkyNTQxNGIyYTkzOGU3NzQ1YTFlMTlhMzUyNjFhMjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NVGltZXIuY3BwCkBAIC0yNzAsMTEgKzI3MCwxMSBAQCB2b2lkIERPTVRpbWVyOjp1cGRhdGVU
aW1lckludGVydmFsSWZOZWNlc3NhcnkoKQogICAgIGRvdWJsZSBwcmV2aW91c0ludGVydmFsID0g
bV9jdXJyZW50VGltZXJJbnRlcnZhbDsKICAgICBtX2N1cnJlbnRUaW1lckludGVydmFsID0gaW50
ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKCk7CiAKLSAgICBpZiAoV1RGOjp3aXRoaW5FcHNpbG9uKHBy
ZXZpb3VzSW50ZXJ2YWwsIG1fY3VycmVudFRpbWVySW50ZXJ2YWwpKQorICAgIGlmIChXVEY6OmFy
ZVZlcnlDbG9zZShwcmV2aW91c0ludGVydmFsLCBtX2N1cnJlbnRUaW1lckludGVydmFsKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHJlcGVhdEludGVydmFsKCkpIHsKLSAgICAgICAgQVNT
RVJUKFdURjo6d2l0aGluRXBzaWxvbihyZXBlYXRJbnRlcnZhbCgpLCBwcmV2aW91c0ludGVydmFs
KSk7CisgICAgICAgIEFTU0VSVChXVEY6OmFyZVZlcnlDbG9zZShyZXBlYXRJbnRlcnZhbCgpLCBw
cmV2aW91c0ludGVydmFsKSk7CiAgICAgICAgIGF1Z21lbnRSZXBlYXRJbnRlcnZhbChtX2N1cnJl
bnRUaW1lckludGVydmFsIC0gcHJldmlvdXNJbnRlcnZhbCk7CiAgICAgfSBlbHNlCiAgICAgICAg
IGF1Z21lbnRGaXJlSW50ZXJ2YWwobV9jdXJyZW50VGltZXJJbnRlcnZhbCAtIHByZXZpb3VzSW50
ZXJ2YWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRRdWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UXVhZC5j
cHAKaW5kZXggYjk1ZmFiMmJkMTJkYmMwMTM2MDg1MmY2ZDA2NWRiNjlmMWUxZGEyNi4uNzdjNzA5
MDE2OGFiMDliMTUyZjUxZTBlMTcwNTA1MGYyODdkN2M3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRRdWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1YWQuY3BwCkBAIC05Myw4ICs5Myw4IEBAIEZsb2F0
UmVjdCBGbG9hdFF1YWQ6OmJvdW5kaW5nQm94KCkgY29uc3QKIAogYm9vbCBGbG9hdFF1YWQ6Omlz
UmVjdGlsaW5lYXIoKSBjb25zdAogewotICAgIHJldHVybiAoV1RGOjp3aXRoaW5FcHNpbG9uKG1f
cDEueCgpLCBtX3AyLngoKSkgJiYgV1RGOjp3aXRoaW5FcHNpbG9uKG1fcDIueSgpLCBtX3AzLnko
KSkgJiYgV1RGOjp3aXRoaW5FcHNpbG9uKG1fcDMueCgpLCBtX3A0LngoKSkgJiYgV1RGOjp3aXRo
aW5FcHNpbG9uKG1fcDQueSgpLCBtX3AxLnkoKSkpCi0gICAgICAgIHx8IChXVEY6OndpdGhpbkVw
c2lsb24obV9wMS55KCksIG1fcDIueSgpKSAmJiBXVEY6OndpdGhpbkVwc2lsb24obV9wMi54KCks
IG1fcDMueCgpKSAmJiBXVEY6OndpdGhpbkVwc2lsb24obV9wMy55KCksIG1fcDQueSgpKSAmJiBX
VEY6OndpdGhpbkVwc2lsb24obV9wNC54KCksIG1fcDEueCgpKSk7CisgICAgcmV0dXJuIChXVEY6
OmFyZVZlcnlDbG9zZShtX3AxLngoKSwgbV9wMi54KCkpICYmIFdURjo6YXJlVmVyeUNsb3NlKG1f
cDIueSgpLCBtX3AzLnkoKSkgJiYgV1RGOjphcmVWZXJ5Q2xvc2UobV9wMy54KCksIG1fcDQueCgp
KSAmJiBXVEY6OmFyZVZlcnlDbG9zZShtX3A0LnkoKSwgbV9wMS55KCkpKQorICAgICAgICB8fCAo
V1RGOjphcmVWZXJ5Q2xvc2UobV9wMS55KCksIG1fcDIueSgpKSAmJiBXVEY6OmFyZVZlcnlDbG9z
ZShtX3AyLngoKSwgbV9wMy54KCkpICYmIFdURjo6YXJlVmVyeUNsb3NlKG1fcDMueSgpLCBtX3A0
LnkoKSkgJiYgV1RGOjphcmVWZXJ5Q2xvc2UobV9wNC54KCksIG1fcDEueCgpKSk7CiB9CiAKIGJv
b2wgRmxvYXRRdWFkOjpjb250YWluc1BvaW50KGNvbnN0IEZsb2F0UG9pbnQmIHApIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRleCAxN2E2NTBhOTljMTYx
YmZiNWJlM2JlODRkMTE3MDUyMjUzZTExYWFiLi5iMTk5MjM1YWEyOWVjMTA1ZGFmYjY1YzU2ODRm
ZDFkZWI4N2M3MmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0K
QEAgLTEyNiw2ICsxMjYsNyBAQAogI2ltcG9ydCA8bGltaXRzPgogI2ltcG9ydCA8cnVudGltZS9J
bml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9y
dCA8d3RmL01hdGhFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgog
I2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KIApAQCAtMjQxMiw3ICsyNDEzLDcgQEAgLSAoQ0dGbG9h
dClfYWRqdXN0ZWRCb3R0b21PZlBhZ2VXaXRoVG9wOihDR0Zsb2F0KXRvcCBib3R0b206KENHRmxv
YXQpYm90dG9tIGxpbWkKICNpZmRlZiBfX0xQNjRfXwogICAgIC8vIElmIHRoZSBuZXcgYm90dG9t
IGlzIGVxdWFsIHRvIHRoZSBvbGQgYm90dG9tICh3aGVuIGJvdGggYXJlIHRyZWF0ZWQgYXMgZmxv
YXRzKSwgd2UganVzdCByZXR1cm4gdGhlIG9yaWdpbmFsCiAgICAgLy8gYm90dG9tLiBUaGlzIHBy
ZXZlbnRzIHJvdW5kaW5nIGVycm9ycyB0aGF0IGNhbiBvY2N1ciB3aGVuIGNvbnZlcnRpbmcgbmV3
Qm90dG9tIHRvIGEgZG91YmxlLgotICAgIGlmIChmYWJzKHN0YXRpY19jYXN0PGZsb2F0Pihib3R0
b20pIC0gbmV3Qm90dG9tKSA8PSBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigp
KSAKKyAgICBpZiAoV1RGOjphcmVWZXJ5Q2xvc2Uoc3RhdGljX2Nhc3Q8ZmxvYXQ+KGJvdHRvbSks
IG5ld0JvdHRvbSkpCiAgICAgICAgIHJldHVybiBib3R0b207CiAgICAgZWxzZQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4
IGNmOGFkM2QyYWM3MmI0NzljOWI1NjA5NGQyNjU5NDYwMmViNGEwOTYuLjk1M2YzM2QwODA1YzU5
OWViYWI3ZWUzZTVkZjY3MWYyNDY4MWM4Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC03NSw2ICs3NSw3IEBACiAjaW1wb3J0IDxK
YXZhU2NyaXB0Q29yZS9KU0NvbnRleHQuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTVmFs
dWUuaD4KICNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CisjaW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5o
PgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAKQEAgLTgyOSwxMCArODMwLDkgQEAgc3RhdGljIHZvaWQgY2hhbmdlQ29udGVudE9mZnNl
dEJvdW5kZWRJblZhbGlkUmFuZ2UoVUlTY3JvbGxWaWV3ICpzY3JvbGxWaWV3LCBXZWIKIAogLy8g
V2ViQ29yZSBzdG9yZXMgdGhlIHBhZ2Ugc2NhbGUgZmFjdG9yIGFzIGZsb2F0IGluc3RlYWQgb2Yg
ZG91YmxlLiBXaGVuIHdlIGdldCBhIHNjYWxlIGZyb20gV2ViQ29yZSwKIC8vIHdlIG5lZWQgdG8g
aWdub3JlIGRpZmZlcmVuY2VzIHRoYXQgYXJlIHdpdGhpbiBhIHNtYWxsIHJvdW5kaW5nIGVycm9y
IG9uIGZsb2F0cy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUeXBlQSwgdHlwZW5hbWUgVHlwZUI+Ci1z
dGF0aWMgaW5saW5lIGJvb2wgd2l0aGluRXBzaWxvbihUeXBlQSBhLCBUeXBlQiBiKQorc3RhdGlj
IGlubGluZSBib29sIHdpdGhpbkVwc2lsb24oZmxvYXQgYSwgZmxvYXQgYikKIHsKLSAgICByZXR1
cm4gc3RkOjphYnMoYSAtIGIpIDwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24o
KTsKKyAgICByZXR1cm4gV1RGOjphcmVWZXJ5Q2xvc2UoYSwgYik7CiB9CiAKIC0gKHZvaWQpX2Rp
ZENvbW1pdExheWVyVHJlZTooY29uc3QgV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
biYpbGF5ZXJUcmVlVHJhbnNhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdwb3J0Q29u
dHJvbGxlci5jcHAKaW5kZXggYzMwNGFjNDM4NDBjZmE4YmUzZjM0ZTExZWM0MzA4NmU5YjUyZTM2
NC4uZDRhM2JkNDFlOTEzMzU3NzE1OGRmMGM0ZDM2MzE4NmYzNzZjYjEwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdwb3J0
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKQEAgLTMzLDExICszMyw2IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotYm9vbCBmdXp6
eUNvbXBhcmUoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgZXBzaWxvbikKLXsKLSAgICByZXR1cm4g
c3RkOjphYnMoYSAtIGIpIDwgZXBzaWxvbjsKLX0KLQogUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6
UGFnZVZpZXdwb3J0Q29udHJvbGxlcihXZWJLaXQ6OldlYlBhZ2VQcm94eSogcHJveHksIFBhZ2VW
aWV3cG9ydENvbnRyb2xsZXJDbGllbnQmIGNsaWVudCkKICAgICA6IG1fd2ViUGFnZVByb3h5KHBy
b3h5KQogICAgICwgbV9jbGllbnQoY2xpZW50KQpAQCAtMzI3LDE0ICszMjIsMTQgQEAgYm9vbCBQ
YWdlVmlld3BvcnRDb250cm9sbGVyOjp1cGRhdGVNaW5pbXVtU2NhbGVUb0ZpdChib29sIHVzZXJJ
bml0aWF0ZWRVcGRhdGUpCiAgICAgaWYgKG1fdmlld3BvcnRTaXplLmlzRW1wdHkoKSB8fCBtX2Nv
bnRlbnRzU2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGJvb2wg
Y3VycmVudGx5U2NhbGVkVG9GaXQgPSBmdXp6eUNvbXBhcmUobV9wYWdlU2NhbGVGYWN0b3IsIG1f
bWluaW11bVNjYWxlVG9GaXQsIDAuMDAwMSk7CisgICAgYm9vbCBjdXJyZW50bHlTY2FsZWRUb0Zp
dCA9IFdURjo6YXJlVmVyeUNsb3NlKG1fcGFnZVNjYWxlRmFjdG9yLCBtX21pbmltdW1TY2FsZVRv
Rml0LCAwLjAwMDFmKTsKIAogICAgIGZsb2F0IG1pbmltdW1TY2FsZSA9IFdlYkNvcmU6OmNvbXB1
dGVNaW5pbXVtU2NhbGVGYWN0b3JGb3JDb250ZW50Q29udGFpbmVkKG1fcmF3QXR0cmlidXRlcywg
V2ViQ29yZTo6cm91bmRlZEludFNpemUobV92aWV3cG9ydFNpemUpLCBXZWJDb3JlOjpyb3VuZGVk
SW50U2l6ZShtX2NvbnRlbnRzU2l6ZSkpOwogCiAgICAgaWYgKG1pbmltdW1TY2FsZSA8PSAwKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWZ1enp5Q29tcGFyZShtaW5pbXVtU2Nh
bGUsIG1fbWluaW11bVNjYWxlVG9GaXQsIDAuMDAwMSkpIHsKKyAgICBpZiAoIVdURjo6YXJlVmVy
eUNsb3NlKG1pbmltdW1TY2FsZSwgbV9taW5pbXVtU2NhbGVUb0ZpdCwgMC4wMDAxZikpIHsKICAg
ICAgICAgbV9taW5pbXVtU2NhbGVUb0ZpdCA9IG1pbmltdW1TY2FsZTsKIAogICAgICAgICBpZiAo
IW1fd2ViUGFnZVByb3h5LT5hcmVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9uc1N1c3BlbmRl
ZCgpKSB7CkBAIC0zNDMsNyArMzM4LDcgQEAgYm9vbCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1
cGRhdGVNaW5pbXVtU2NhbGVUb0ZpdChib29sIHVzZXJJbml0aWF0ZWRVcGRhdGUpCiAgICAgICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBFbnN1cmUgdGhlIGVmZmVjdGl2ZSBzY2Fs
ZSBzdGF5cyB3aXRoaW4gYm91bmRzLgogICAgICAgICAgICAgICAgIGZsb2F0IGJvdW5kZWRTY2Fs
ZSA9IGlubmVyQm91bmRlZFZpZXdwb3J0U2NhbGUobV9wYWdlU2NhbGVGYWN0b3IpOwotICAgICAg
ICAgICAgICAgIGlmICghZnV6enlDb21wYXJlKGJvdW5kZWRTY2FsZSwgbV9wYWdlU2NhbGVGYWN0
b3IsIDAuMDAwMSkpCisgICAgICAgICAgICAgICAgaWYgKCFXVEY6OmFyZVZlcnlDbG9zZShib3Vu
ZGVkU2NhbGUsIG1fcGFnZVNjYWxlRmFjdG9yLCAwLjAwMDFmKSkKICAgICAgICAgICAgICAgICAg
ICAgYXBwbHlTY2FsZUFmdGVyUmVuZGVyaW5nQ29udGVudHMoYm91bmRlZFNjYWxlKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdwb3J0Q29udHJvbGxl
ci5oCmluZGV4IGM0ODY4Mjk0NmQyMzAxN2YwNjZlMDcyMDM1ZjJhMDE3NDY1YjNhMjQuLjYzMzdm
MTU0YjJlODE5YjEyNWYyZjA5OTc5MTIzZmNjMmRjMTQ4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Q
YWdlVmlld3BvcnRDb250cm9sbGVyLmgKQEAgLTEwOCw4ICsxMDgsNiBAQCBwcml2YXRlOgogICAg
IFdlYkNvcmU6OkZsb2F0UmVjdCBtX2xhc3RGcmFtZUNvdmVyZWRSZWN0OwogfTsKIAotYm9vbCBm
dXp6eUNvbXBhcmUoZmxvYXQsIGZsb2F0LCBmbG9hdCBlcHNpbG9uKTsKLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQYWdlVmlld3BvcnRDb250cm9sbGVyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRl
eCA0NGNiNjdiMDhkMTc2ZjRjYTVlNTcyZDE3Y2NlZjAzZjM4OWQ2MmI0Li5kMjZmNjdiZGM2MWQ1
ODliNTFiMjkzMDJhZjJmYWY2NGM1ZjM0N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC04Nyw2ICs4Nyw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL1Zpc2libGVVbml0cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XS0NvbnRl
bnRPYnNlcnZhdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgorI2ltcG9ydCA8
d3RmL01hdGhFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0yMjEzLDcgKzIyMTQsNyBAQCB2b2lkIFdlYlBhZ2U6
OnNldERldmljZU9yaWVudGF0aW9uKGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24pCiAKIHN0YXRp
YyBpbmxpbmUgYm9vbCB3aXRoaW5FcHNpbG9uKGZsb2F0IGEsIGZsb2F0IGIpCiB7Ci0gICAgcmV0
dXJuIGZhYnMoYSAtIGIpIDwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKTsK
KyAgICByZXR1cm4gV1RGOjphcmVWZXJ5Q2xvc2UoYSwgYik7CiB9CiAKIHZvaWQgV2ViUGFnZTo6
cmVzZXRUZXh0QXV0b3NpemluZ0JlZm9yZUxheW91dElmTmVlZGVkKGNvbnN0IEZsb2F0U2l6ZSYg
b2xkU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBuZXdTaXplKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241250</attachid>
            <date>2014-11-08 23:39:57 -0800</date>
            <delta_ts>2014-11-09 13:54:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138527-20141108233957.patch</filename>
            <type>text/plain</type>
            <size>14200</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1Nzg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM4ZGJkODU2OTc1YzI3ZTU4YzQ5YmVh
NjdlN2RlZTdiYzY4ODBmMGYuLmJmZjBlYmExMzRhZjg1ODZhMjllNDM3ZDc5MzU2MjQ5ZDIzZjEx
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTQtMTEtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBtb3JlIGNvcnJlY3Qgd2F5IHRvIGNvbXBhcmUg
ZmxvYXRpbmcgcG9pbnQgbnVtYmVycyBhbmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg1MjcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBjb21wYXJlIGZsb2F0aW5nIHBvaW50IG51bWJl
cnMgaW4gdGhlIGNvZGUgYmFzZSwgd2Ugd291bGQgb2Z0ZW4gcmVseQorICAgICAgICBvbiB0aGUg
Zm9sbG93aW5nIGNoZWNrOgorICAgICAgICBzdGQ6OmFicyhhIC0gYikgPD0gc3RkOjpudW1lcmlj
X2xpbWl0czxUPjo6ZXBzaWxvbigpCisKKyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgY29y
cmVjdCBmb3IgYXJiaXRyYXJ5IGZsb2F0aW5nIHBvaW50IHZhbHVlcywgYW5kCisgICAgICAgIHdp
bGwgZmFpbCBmb3IgdmFsdWVzIHRoYXQgYXJlIG5vdCBjbG9zZSB0byB6ZXJvLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbCgpIHRlbXBs
YXRlZCBmdW5jdGlvbgorICAgICAgICB0aGF0IGNhbiBvbmx5IGJlIGNhbGxlZCB3aXRoIGZsb2F0
aW5nIHBvaW50IHR5cGVzIGFuZCByZWxpZXMgb24gdGhlCisgICAgICAgIGZvbGxvd2luZyBmb3Jt
dWxhIGZyb20gWzFdWzJdIHRoYXQgZGVmaW5lcyB1IGFzIGJlaW5nICJlc3NlbnRpYWxseQorICAg
ICAgICBlcXVhbCIgdG8gdiBpZjogfCB1IC0gdiB8IC8gfHV8IDw9IGUgYW5kIHwgdSAtIHYgfCAv
IHx2fCA8PSBlCisKKyAgICAgICAgWzFdIEtudXRoLCBELiBFLiAiQWNjdXJhY3kgb2YgRmxvYXRp
bmcgUG9pbnQgQXJpdGhtZXRpYy4iIFRoZSBBcnQgb2YKKyAgICAgICAgICAgIENvbXB1dGVyIFBy
b2dyYW1taW5nLiAzcmQgZWQuIFZvbC4gMi4gQm9zdG9uOiBBZGRpc29uLVdlc2xleSwgMTk5OC4K
KyAgICAgICAgICAgIDIyOS00NS4KKyAgICAgICAgWzJdIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2Rv
Yy9saWJzLzFfMzRfMC9saWJzL3Rlc3QvZG9jL2NvbXBvbmVudHMvdGVzdF90b29scy9mbG9hdGlu
Z19wb2ludF9jb21wYXJpc29uLmh0bWwKKworICAgICAgICAqIHd0Zi9NYXRoRXh0cmFzLmg6Cisg
ICAgICAgIChXVEY6OnNhZmVGUERpdmlzaW9uKToKKyAgICAgICAgKFdURjo6YXJlRXNzZW50aWFs
bHlFcXVhbCk6CisgICAgICAgIChXVEY6OndpdGhpbkVwc2lsb24pOiBEZWxldGVkLgorCiAyMDE0
LTExLTA4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNl
IEZpbGVUaHJlYWQgY2xhc3Mgd2l0aCBhIHNpbmdsZSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA4
ZWQwYTRmMDQ4NGE1MzU0YWY2ZWJiODE4YjQ5OTIyMTRhMzVjZmQuLjJmMjQwNjZlOGI0MzNkOGM0
NmMwMGI2YjZmNTQxZDA5Y2I2OGQzY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMiBAQAogMjAx
NC0xMS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIEFkZCBh
IG1vcmUgY29ycmVjdCB3YXkgdG8gY29tcGFyZSBmbG9hdGluZyBwb2ludCBudW1iZXJzIGFuZCB1
c2UgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
ODUyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVz
ZSB0aGUgbmV3IFdURjo6YXJlRXNzZW50dWFsbHlFcXVhbCgpIHV0aWxpdHkgZnVuY3Rpb24gZnJv
bSBNYXRoRXh0cmFzLmgKKyAgICAgICAgdG8gY29tcGFyZSBmbG9hdGluZy1wb2ludCBudW1iZXJz
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAg
ICogcGFnZS9ET01UaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6dXBkYXRl
VGltZXJJbnRlcnZhbElmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9G
bG9hdFF1YWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRRdWFkOjppc1JlY3RpbGluZWFy
KToKKworMjAxNC0xMS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAg
ICAgIENhbGwgZmFzdGVyIEhUTUxFbGVtZW50OjpoYXNUYWdOYW1lKCkgaW4gSFRNTENvbGxlY3Rp
b24KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODUy
OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggN2Y3ODEyMjE0M2Y5NTI2M2ZiMjgyMmU1YjkxYWQxYTgz
YzgzOGNjNC4uNGNhYjFkYmMyODdkMjBlMDc4ODU4ZDM2ZGNjMWQyMmFkNjVjNGMxOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTExLTA4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbW9yZSBjb3JyZWN0IHdheSB0byBjb21w
YXJlIGZsb2F0aW5nIHBvaW50IG51bWJlcnMgYW5kIHVzZSBpdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NTI3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBuZXcgV1RGOjphcmVFc3NlbnR1
YWxseUVxdWFsKCkgdXRpbGl0eSBmdW5jdGlvbiBmcm9tIE1hdGhFeHRyYXMuaAorICAgICAgICB0
byBjb21wYXJlIGZsb2F0aW5nLXBvaW50IG51bWJlcnMuCisKKyAgICAgICAgKiBXZWJWaWV3L1dl
YkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfYWRqdXN0ZWRCb3R0b21PZlBh
Z2VXaXRoVG9wOmJvdHRvbTpsaW1pdDpdKToKKwogMjAxNC0xMS0wOCAgQWxleGV5IFByb3NrdXJ5
YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBEZWxldGUgY29va2llcyBiZXR3ZWVuIHRl
c3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggZjIwMjY0ZjVhOTdjOTEzZDg2ZmMxYmFmNDlmZDJkNTZjMDA4MGMy
Zi4uYWVhNjZlMGRlZjc0Mzk4MWUxMDc0NGQ3YWNiNmNlNmI5MzY3NTBlOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDE0LTExLTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgbW9yZSBjb3JyZWN0IHdheSB0byBjb21wYXJlIGZsb2F0aW5n
IHBvaW50IG51bWJlcnMgYW5kIHVzZSBpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBuZXcgV1RGOjphcmVFc3NlbnR1YWxseUVxdWFsKCkg
dXRpbGl0eSBmdW5jdGlvbiBmcm9tIE1hdGhFeHRyYXMuaAorICAgICAgICB0byBjb21wYXJlIGZs
b2F0aW5nLXBvaW50IG51bWJlcnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKHdpdGhpbkVwc2lsb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1cGRhdGVNaW5pbXVtU2NhbGVUb0Zp
dCk6CisgICAgICAgIChXZWJLaXQ6OmZ1enp5Q29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6d2l0aGluRXBzaWxvbik6CisKIDIwMTQtMTEtMDggIEJldGggRGFraW4gIDxiZGFr
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdLQWN0aW9uTWVudUNvbnRyb2xsZXIgbWV0aG9kcyBz
aG91bGQgYmUgbW9yZSBjYXJlZnVsIHRvIHVzZSB0aGUgYmVzdCAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL01hdGhFeHRyYXMuaCBiL1NvdXJjZS9XVEYvd3RmL01hdGhFeHRyYXMuaAppbmRl
eCBlMzM5YzFiMTQ1ZTg3YWZjNjU4ZDFhYmM1YmRiYTA5YjI4MjEzZTg3Li41YmRjMjc3N2QwYzBk
OWY0OTk0MjBhMTVhZTA3NTAzYmQzZDllNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9N
YXRoRXh0cmFzLmgKKysrIGIvU291cmNlL1dURi93dGYvTWF0aEV4dHJhcy5oCkBAIC0zOTMsOSAr
MzkzLDMwIEBAIGlubGluZSB1bnNpZ25lZCBmYXN0TG9nMih1bnNpZ25lZCBpKQogfQogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KLWlubGluZSBib29sIHdpdGhpbkVwc2lsb24oVCBhLCBUIGIpCitp
bmxpbmUgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19mbG9hdGluZ19wb2ludDxUPjo6
dmFsdWUsIFQ+Ojp0eXBlIHNhZmVGUERpdmlzaW9uKFQgdSwgVCB2KQogewotICAgIHJldHVybiBz
dGQ6OmFicyhhIC0gYikgPD0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6ZXBzaWxvbigpOworICAg
IC8vIFByb3RlY3QgYWdhaW5zdCBvdmVyZmxvdyAvIHVuZGVyZmxvdy4KKyAgICBpZiAodiA8IDEg
ICYmIHUgPiB2ICogc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4KCkpCisgICAgICAgIHJldHVy
biBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptYXgoKTsKKyAgICBpZiAodiA+IDEgJiYgdSA8IHYg
KiBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptaW4oKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIHUgLyB2OworfQorCisvLyBGbG9hdGluZyBwb2ludCBudW1iZXJzIGNvbXBhcmlzb246
CisvLyB1IGlzICJlc3NlbnRpYWxseSBlcXVhbCIgWzFdWzJdIHRvIHYgaWY6IHwgdSAtIHYgfCAv
IHx1fCA8PSBlIGFuZCB8IHUgLSB2IHwgLyB8dnwgPD0gZQorLy8KKy8vIFsxXSBLbnV0aCwgRC4g
RS4gIkFjY3VyYWN5IG9mIEZsb2F0aW5nIFBvaW50IEFyaXRobWV0aWMuIiBUaGUgQXJ0IG9mIENv
bXB1dGVyIFByb2dyYW1taW5nLiAzcmQgZWQuIFZvbC4gMi4KKy8vICAgICBCb3N0b246IEFkZGlz
b24tV2VzbGV5LCAxOTk4LiAyMjktNDUuCisvLyBbMl0gaHR0cDovL3d3dy5ib29zdC5vcmcvZG9j
L2xpYnMvMV8zNF8wL2xpYnMvdGVzdC9kb2MvY29tcG9uZW50cy90ZXN0X3Rvb2xzL2Zsb2F0aW5n
X3BvaW50X2NvbXBhcmlzb24uaHRtbAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUgdHlw
ZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19mbG9hdGluZ19wb2ludDxUPjo6dmFsdWUsIGJv
b2w+Ojp0eXBlIGFyZUVzc2VudGlhbGx5RXF1YWwoVCB1LCBUIHYsIFQgZXBzaWxvbiA9IHN0ZDo6
bnVtZXJpY19saW1pdHM8VD46OmVwc2lsb24oKSkKK3sKKyAgICBpZiAodSA9PSB2KQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIGNvbnN0IFQgZGVsdGEgPSBzdGQ6OmFicyh1IC0gdik7Cisg
ICAgcmV0dXJuIHNhZmVGUERpdmlzaW9uKGRlbHRhLCBzdGQ6OmFicyh1KSkgPD0gZXBzaWxvbiAm
JiBzYWZlRlBEaXZpc2lvbihkZWx0YSwgc3RkOjphYnModikpIDw9IGVwc2lsb247CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAppbmRleCAxNjE4ZGYxNzcz
NGY5N2RiNjBmMGY3MDVhMThlNmZiYzhlYTA5Nzc4Li40ZDIyNGFmNmQ5ZGQ1YjQwMmFiZTE3ZjU5
YjIyYWFjZDM5Y2QxNDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcApAQCAtMjcwLDExICsy
NzAsMTEgQEAgdm9pZCBET01UaW1lcjo6dXBkYXRlVGltZXJJbnRlcnZhbElmTmVjZXNzYXJ5KCkK
ICAgICBkb3VibGUgcHJldmlvdXNJbnRlcnZhbCA9IG1fY3VycmVudFRpbWVySW50ZXJ2YWw7CiAg
ICAgbV9jdXJyZW50VGltZXJJbnRlcnZhbCA9IGludGVydmFsQ2xhbXBlZFRvTWluaW11bSgpOwog
Ci0gICAgaWYgKFdURjo6d2l0aGluRXBzaWxvbihwcmV2aW91c0ludGVydmFsLCBtX2N1cnJlbnRU
aW1lckludGVydmFsKSkKKyAgICBpZiAoV1RGOjphcmVFc3NlbnRpYWxseUVxdWFsKHByZXZpb3Vz
SW50ZXJ2YWwsIG1fY3VycmVudFRpbWVySW50ZXJ2YWwpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBpZiAocmVwZWF0SW50ZXJ2YWwoKSkgewotICAgICAgICBBU1NFUlQoV1RGOjp3aXRoaW5FcHNp
bG9uKHJlcGVhdEludGVydmFsKCksIHByZXZpb3VzSW50ZXJ2YWwpKTsKKyAgICAgICAgQVNTRVJU
KFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbChyZXBlYXRJbnRlcnZhbCgpLCBwcmV2aW91c0ludGVy
dmFsKSk7CiAgICAgICAgIGF1Z21lbnRSZXBlYXRJbnRlcnZhbChtX2N1cnJlbnRUaW1lckludGVy
dmFsIC0gcHJldmlvdXNJbnRlcnZhbCk7CiAgICAgfSBlbHNlCiAgICAgICAgIGF1Z21lbnRGaXJl
SW50ZXJ2YWwobV9jdXJyZW50VGltZXJJbnRlcnZhbCAtIHByZXZpb3VzSW50ZXJ2YWwpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRRdWFkLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UXVhZC5jcHAKaW5kZXggYjk1
ZmFiMmJkMTJkYmMwMTM2MDg1MmY2ZDA2NWRiNjlmMWUxZGEyNi4uYzU2ODc3NjdjOTg5OWI4Njg5
M2IzZTE1YzlkMjU2MzdhY2ZjNjNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRRdWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdFF1YWQuY3BwCkBAIC05Myw4ICs5Myw4IEBAIEZsb2F0UmVjdCBGbG9hdFF1
YWQ6OmJvdW5kaW5nQm94KCkgY29uc3QKIAogYm9vbCBGbG9hdFF1YWQ6OmlzUmVjdGlsaW5lYXIo
KSBjb25zdAogewotICAgIHJldHVybiAoV1RGOjp3aXRoaW5FcHNpbG9uKG1fcDEueCgpLCBtX3Ay
LngoKSkgJiYgV1RGOjp3aXRoaW5FcHNpbG9uKG1fcDIueSgpLCBtX3AzLnkoKSkgJiYgV1RGOjp3
aXRoaW5FcHNpbG9uKG1fcDMueCgpLCBtX3A0LngoKSkgJiYgV1RGOjp3aXRoaW5FcHNpbG9uKG1f
cDQueSgpLCBtX3AxLnkoKSkpCi0gICAgICAgIHx8IChXVEY6OndpdGhpbkVwc2lsb24obV9wMS55
KCksIG1fcDIueSgpKSAmJiBXVEY6OndpdGhpbkVwc2lsb24obV9wMi54KCksIG1fcDMueCgpKSAm
JiBXVEY6OndpdGhpbkVwc2lsb24obV9wMy55KCksIG1fcDQueSgpKSAmJiBXVEY6OndpdGhpbkVw
c2lsb24obV9wNC54KCksIG1fcDEueCgpKSk7CisgICAgcmV0dXJuIChXVEY6OmFyZUVzc2VudGlh
bGx5RXF1YWwobV9wMS54KCksIG1fcDIueCgpKSAmJiBXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwo
bV9wMi55KCksIG1fcDMueSgpKSAmJiBXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwobV9wMy54KCks
IG1fcDQueCgpKSAmJiBXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwobV9wNC55KCksIG1fcDEueSgp
KSkKKyAgICAgICAgfHwgKFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbChtX3AxLnkoKSwgbV9wMi55
KCkpICYmIFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbChtX3AyLngoKSwgbV9wMy54KCkpICYmIFdU
Rjo6YXJlRXNzZW50aWFsbHlFcXVhbChtX3AzLnkoKSwgbV9wNC55KCkpICYmIFdURjo6YXJlRXNz
ZW50aWFsbHlFcXVhbChtX3A0LngoKSwgbV9wMS54KCkpKTsKIH0KIAogYm9vbCBGbG9hdFF1YWQ6
OmNvbnRhaW5zUG9pbnQoY29uc3QgRmxvYXRQb2ludCYgcCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDE3YTY1MGE5OWMxNjFiZmI1YmUzYmU4NGQx
MTcwNTIyNTNlMTFhYWIuLjU2YjBjNzk0ZWQwZGRhYTRiMTk2NGVhNWNhMjYxY2YyYTU4MzhjNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMTI2LDYgKzEy
Niw3IEBACiAjaW1wb3J0IDxsaW1pdHM+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJl
YWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvTWF0aEV4
dHJhcy5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYv
UnVuTG9vcC5oPgogCkBAIC0yNDEyLDcgKzI0MTMsNyBAQCAtIChDR0Zsb2F0KV9hZGp1c3RlZEJv
dHRvbU9mUGFnZVdpdGhUb3A6KENHRmxvYXQpdG9wIGJvdHRvbTooQ0dGbG9hdClib3R0b20gbGlt
aQogI2lmZGVmIF9fTFA2NF9fCiAgICAgLy8gSWYgdGhlIG5ldyBib3R0b20gaXMgZXF1YWwgdG8g
dGhlIG9sZCBib3R0b20gKHdoZW4gYm90aCBhcmUgdHJlYXRlZCBhcyBmbG9hdHMpLCB3ZSBqdXN0
IHJldHVybiB0aGUgb3JpZ2luYWwKICAgICAvLyBib3R0b20uIFRoaXMgcHJldmVudHMgcm91bmRp
bmcgZXJyb3JzIHRoYXQgY2FuIG9jY3VyIHdoZW4gY29udmVydGluZyBuZXdCb3R0b20gdG8gYSBk
b3VibGUuCi0gICAgaWYgKGZhYnMoc3RhdGljX2Nhc3Q8ZmxvYXQ+KGJvdHRvbSkgLSBuZXdCb3R0
b20pIDw9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKCkpIAorICAgIGlmIChX
VEY6OmFyZUVzc2VudGlhbGx5RXF1YWwoc3RhdGljX2Nhc3Q8ZmxvYXQ+KGJvdHRvbSksIG5ld0Jv
dHRvbSkpCiAgICAgICAgIHJldHVybiBib3R0b207CiAgICAgZWxzZQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IGNmOGFk
M2QyYWM3MmI0NzljOWI1NjA5NGQyNjU5NDYwMmViNGEwOTYuLmVjNThlNGMxNmY0OTJkMTNlYmUw
NjVhMThhMTU5MGFmMjE0MzIzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC03NSw2ICs3NSw3IEBACiAjaW1wb3J0IDxKYXZhU2Ny
aXB0Q29yZS9KU0NvbnRleHQuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTVmFsdWUuaD4K
ICNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CisjaW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgogI2lt
cG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAK
QEAgLTgyOSwxMCArODMwLDkgQEAgc3RhdGljIHZvaWQgY2hhbmdlQ29udGVudE9mZnNldEJvdW5k
ZWRJblZhbGlkUmFuZ2UoVUlTY3JvbGxWaWV3ICpzY3JvbGxWaWV3LCBXZWIKIAogLy8gV2ViQ29y
ZSBzdG9yZXMgdGhlIHBhZ2Ugc2NhbGUgZmFjdG9yIGFzIGZsb2F0IGluc3RlYWQgb2YgZG91Ymxl
LiBXaGVuIHdlIGdldCBhIHNjYWxlIGZyb20gV2ViQ29yZSwKIC8vIHdlIG5lZWQgdG8gaWdub3Jl
IGRpZmZlcmVuY2VzIHRoYXQgYXJlIHdpdGhpbiBhIHNtYWxsIHJvdW5kaW5nIGVycm9yIG9uIGZs
b2F0cy4KLXRlbXBsYXRlIDx0eXBlbmFtZSBUeXBlQSwgdHlwZW5hbWUgVHlwZUI+Ci1zdGF0aWMg
aW5saW5lIGJvb2wgd2l0aGluRXBzaWxvbihUeXBlQSBhLCBUeXBlQiBiKQorc3RhdGljIGlubGlu
ZSBib29sIHdpdGhpbkVwc2lsb24oZmxvYXQgYSwgZmxvYXQgYikKIHsKLSAgICByZXR1cm4gc3Rk
OjphYnMoYSAtIGIpIDwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKTsKKyAg
ICByZXR1cm4gV1RGOjphcmVFc3NlbnRpYWxseUVxdWFsKGEsIGIpOwogfQogCiAtICh2b2lkKV9k
aWRDb21taXRMYXllclRyZWU6KGNvbnN0IFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b24mKWxheWVyVHJlZVRyYW5zYWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENv
bnRyb2xsZXIuY3BwCmluZGV4IGMzMDRhYzQzODQwY2ZhOGJlM2YzNGUxMWVjNDMwODZlOWI1MmUz
NjQuLjg5ODM5MjhiY2JiMTk3ZWI2ZTk4ZGMyNTNmZTA2ODRjNjJlZjhkMGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9y
dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCkBAIC0zMywxMSArMzMsNiBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWJvb2wgZnV6
enlDb21wYXJlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IGVwc2lsb24pCi17Ci0gICAgcmV0dXJu
IHN0ZDo6YWJzKGEgLSBiKSA8IGVwc2lsb247Ci19Ci0KIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6
OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXIoV2ViS2l0OjpXZWJQYWdlUHJveHkqIHByb3h5LCBQYWdl
Vmlld3BvcnRDb250cm9sbGVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBtX3dlYlBhZ2VQcm94eShw
cm94eSkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKQEAgLTMyNywxNCArMzIyLDE0IEBAIGJvb2wg
UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6dXBkYXRlTWluaW11bVNjYWxlVG9GaXQoYm9vbCB1c2Vy
SW5pdGlhdGVkVXBkYXRlKQogICAgIGlmIChtX3ZpZXdwb3J0U2l6ZS5pc0VtcHR5KCkgfHwgbV9j
b250ZW50c1NpemUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBib29s
IGN1cnJlbnRseVNjYWxlZFRvRml0ID0gZnV6enlDb21wYXJlKG1fcGFnZVNjYWxlRmFjdG9yLCBt
X21pbmltdW1TY2FsZVRvRml0LCAwLjAwMDEpOworICAgIGJvb2wgY3VycmVudGx5U2NhbGVkVG9G
aXQgPSBXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwobV9wYWdlU2NhbGVGYWN0b3IsIG1fbWluaW11
bVNjYWxlVG9GaXQsIDAuMDAwMWYpOwogCiAgICAgZmxvYXQgbWluaW11bVNjYWxlID0gV2ViQ29y
ZTo6Y29tcHV0ZU1pbmltdW1TY2FsZUZhY3RvckZvckNvbnRlbnRDb250YWluZWQobV9yYXdBdHRy
aWJ1dGVzLCBXZWJDb3JlOjpyb3VuZGVkSW50U2l6ZShtX3ZpZXdwb3J0U2l6ZSksIFdlYkNvcmU6
OnJvdW5kZWRJbnRTaXplKG1fY29udGVudHNTaXplKSk7CiAKICAgICBpZiAobWluaW11bVNjYWxl
IDw9IDApCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZnV6enlDb21wYXJlKG1p
bmltdW1TY2FsZSwgbV9taW5pbXVtU2NhbGVUb0ZpdCwgMC4wMDAxKSkgeworICAgIGlmICghV1RG
OjphcmVFc3NlbnRpYWxseUVxdWFsKG1pbmltdW1TY2FsZSwgbV9taW5pbXVtU2NhbGVUb0ZpdCwg
MC4wMDAxZikpIHsKICAgICAgICAgbV9taW5pbXVtU2NhbGVUb0ZpdCA9IG1pbmltdW1TY2FsZTsK
IAogICAgICAgICBpZiAoIW1fd2ViUGFnZVByb3h5LT5hcmVBY3RpdmVET01PYmplY3RzQW5kQW5p
bWF0aW9uc1N1c3BlbmRlZCgpKSB7CkBAIC0zNDMsNyArMzM4LDcgQEAgYm9vbCBQYWdlVmlld3Bv
cnRDb250cm9sbGVyOjp1cGRhdGVNaW5pbXVtU2NhbGVUb0ZpdChib29sIHVzZXJJbml0aWF0ZWRV
cGRhdGUpCiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBFbnN1cmUgdGhl
IGVmZmVjdGl2ZSBzY2FsZSBzdGF5cyB3aXRoaW4gYm91bmRzLgogICAgICAgICAgICAgICAgIGZs
b2F0IGJvdW5kZWRTY2FsZSA9IGlubmVyQm91bmRlZFZpZXdwb3J0U2NhbGUobV9wYWdlU2NhbGVG
YWN0b3IpOwotICAgICAgICAgICAgICAgIGlmICghZnV6enlDb21wYXJlKGJvdW5kZWRTY2FsZSwg
bV9wYWdlU2NhbGVGYWN0b3IsIDAuMDAwMSkpCisgICAgICAgICAgICAgICAgaWYgKCFXVEY6OmFy
ZUVzc2VudGlhbGx5RXF1YWwoYm91bmRlZFNjYWxlLCBtX3BhZ2VTY2FsZUZhY3RvciwgMC4wMDAx
ZikpCiAgICAgICAgICAgICAgICAgICAgIGFwcGx5U2NhbGVBZnRlclJlbmRlcmluZ0NvbnRlbnRz
KGJvdW5kZWRTY2FsZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaAppbmRleCBjNDg2ODI5NDZkMjMwMTdmMDY2ZTA3MjAz
NWYyYTAxNzQ2NWIzYTI0Li42MzM3ZjE1NGIyZTgxOWIxMjVmMmYwOTk3OTEyM2ZjYzJkYzE0OGI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oCkBAIC0xMDgsOCAr
MTA4LDYgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV9sYXN0RnJhbWVDb3Zl
cmVkUmVjdDsKIH07CiAKLWJvb2wgZnV6enlDb21wYXJlKGZsb2F0LCBmbG9hdCwgZmxvYXQgZXBz
aWxvbik7Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUGFnZVZpZXdwb3J0
Q29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggNDRjYjY3YjA4ZDE3NmY0Y2E1ZTU3MmQxN2NjZWYwM2Yz
ODlkNjJiNC4uOTI0ODRlNWI1YjY1ZjM3MGIzN2YyOGFkMWEyZTBlYWFmMzZkOTU3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQpAQCAtODcsNiArODcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9WaXNpYmxlVW5pdHMuaD4KICNp
bXBvcnQgPFdlYkNvcmUvV0tDb250ZW50T2JzZXJ2YXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUv
V2ViRXZlbnQuaD4KKyNpbXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvVGVt
cG9yYXJ5Q2hhbmdlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMjIxMyw3ICsy
MjE0LDcgQEAgdm9pZCBXZWJQYWdlOjpzZXREZXZpY2VPcmllbnRhdGlvbihpbnQzMl90IGRldmlj
ZU9yaWVudGF0aW9uKQogCiBzdGF0aWMgaW5saW5lIGJvb2wgd2l0aGluRXBzaWxvbihmbG9hdCBh
LCBmbG9hdCBiKQogewotICAgIHJldHVybiBmYWJzKGEgLSBiKSA8IHN0ZDo6bnVtZXJpY19saW1p
dHM8ZmxvYXQ+OjplcHNpbG9uKCk7CisgICAgcmV0dXJuIFdURjo6YXJlRXNzZW50aWFsbHlFcXVh
bChhLCBiKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpyZXNldFRleHRBdXRvc2l6aW5nQmVmb3JlTGF5
b3V0SWZOZWVkZWQoY29uc3QgRmxvYXRTaXplJiBvbGRTaXplLCBjb25zdCBGbG9hdFNpemUmIG5l
d1NpemUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241258</attachid>
            <date>2014-11-09 13:54:33 -0800</date>
            <delta_ts>2014-11-09 15:36:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138527-20141109135434.patch</filename>
            <type>text/plain</type>
            <size>18078</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1NzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM4ZGJkODU2OTc1YzI3ZTU4YzQ5YmVh
NjdlN2RlZTdiYzY4ODBmMGYuLjkxNGYyMDI5NzUzMzIwYmEyMGM1ZTljMGQwODNjYWQzOTQyMWFh
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTQtMTEtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBtb3JlIGNvcnJlY3Qgd2F5IHRvIGNvbXBhcmUg
ZmxvYXRpbmcgcG9pbnQgbnVtYmVycyBhbmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg1MjcKKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICBUbyBjb21wYXJlIGZsb2F0aW5nIHBvaW50IG51bWJlcnMg
aW4gdGhlIGNvZGUgYmFzZSwgd2Ugd291bGQgb2Z0ZW4gcmVseQorICAgICAgICBvbiB0aGUgZm9s
bG93aW5nIGNoZWNrOgorICAgICAgICBzdGQ6OmFicyhhIC0gYikgPD0gc3RkOjpudW1lcmljX2xp
bWl0czxUPjo6ZXBzaWxvbigpCisKKyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgY29ycmVj
dCBmb3IgYXJiaXRyYXJ5IGZsb2F0aW5nIHBvaW50IHZhbHVlcywgYW5kCisgICAgICAgIHdpbGwg
ZmFpbCBmb3IgdmFsdWVzIHRoYXQgYXJlIG5vdCBjbG9zZSB0byB6ZXJvLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggaW50cm9kdWNlcyBhIFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbCgpIHRlbXBsYXRl
ZCBmdW5jdGlvbgorICAgICAgICB0aGF0IGNhbiBvbmx5IGJlIGNhbGxlZCB3aXRoIGZsb2F0aW5n
IHBvaW50IHR5cGVzIGFuZCByZWxpZXMgb24gdGhlCisgICAgICAgIGZvbGxvd2luZyBmb3JtdWxh
IGZyb20gWzFdWzJdIHRoYXQgZGVmaW5lcyB1IGFzIGJlaW5nICJlc3NlbnRpYWxseQorICAgICAg
ICBlcXVhbCIgdG8gdiBpZjogfCB1IC0gdiB8IC8gfHV8IDw9IGUgYW5kIHwgdSAtIHYgfCAvIHx2
fCA8PSBlCisKKyAgICAgICAgWzFdIEtudXRoLCBELiBFLiAiQWNjdXJhY3kgb2YgRmxvYXRpbmcg
UG9pbnQgQXJpdGhtZXRpYy4iIFRoZSBBcnQgb2YKKyAgICAgICAgICAgIENvbXB1dGVyIFByb2dy
YW1taW5nLiAzcmQgZWQuIFZvbC4gMi4gQm9zdG9uOiBBZGRpc29uLVdlc2xleSwgMTk5OC4KKyAg
ICAgICAgICAgIDIyOS00NS4KKyAgICAgICAgWzJdIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2RvYy9s
aWJzLzFfMzRfMC9saWJzL3Rlc3QvZG9jL2NvbXBvbmVudHMvdGVzdF90b29scy9mbG9hdGluZ19w
b2ludF9jb21wYXJpc29uLmh0bWwKKworICAgICAgICAqIHd0Zi9NYXRoRXh0cmFzLmg6CisgICAg
ICAgIChXVEY6OnNhZmVGUERpdmlzaW9uKToKKyAgICAgICAgKFdURjo6YXJlRXNzZW50aWFsbHlF
cXVhbCk6CisgICAgICAgIChXVEY6OndpdGhpbkVwc2lsb24pOiBEZWxldGVkLgorCiAyMDE0LTEx
LTA4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIEZp
bGVUaHJlYWQgY2xhc3Mgd2l0aCBhIHNpbmdsZSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk2NTYy
YzVhNzU2NzVlMjY2NDYwNzlmZmNmZWFhNjA0ZTg1YmVhMGQuLmQ2YTcyN2E3YTIwNDFhNmM0NGU3
YThmOGU5ZjM3ZjI3MGJhYmViYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNC0x
MS0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG1v
cmUgY29ycmVjdCB3YXkgdG8gY29tcGFyZSBmbG9hdGluZyBwb2ludCBudW1iZXJzIGFuZCB1c2Ug
aXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODUy
NworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSB0aGUg
bmV3IFdURjo6YXJlRXNzZW50dWFsbHlFcXVhbCgpIHV0aWxpdHkgZnVuY3Rpb24gZnJvbSBNYXRo
RXh0cmFzLmgKKyAgICAgICAgdG8gY29tcGFyZSBmbG9hdGluZy1wb2ludCBudW1iZXJzLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGFn
ZS9ET01UaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6dXBkYXRlVGltZXJJ
bnRlcnZhbElmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1
YWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRRdWFkOjppc1JlY3RpbGluZWFyKToKKwog
MjAxNC0xMS0wOSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IHZhcmlvdXMgY2FzZXMgb2YgaW5jb3JyZWN0IGNyb3NzLXRocmVhZCBjYXB0dXJlIG9mIG5vbi10
aHJlYWQtc2FmZSBSZWZDb3VudGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggN2Y3ODEyMjE0M2Y5NTI2
M2ZiMjgyMmU1YjkxYWQxYTgzYzgzOGNjNC4uMzZiYjY4NzhlMjU0OWI3MGQ4ODA4MjQwNThhZTZj
NGQ1ZGVmYTUzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTExLTA5
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbW9yZSBj
b3JyZWN0IHdheSB0byBjb21wYXJlIGZsb2F0aW5nIHBvaW50IG51bWJlcnMgYW5kIHVzZSBpdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NTI3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVXNlIHRoZSBuZXcg
V1RGOjphcmVFc3NlbnR1YWxseUVxdWFsKCkgdXRpbGl0eSBmdW5jdGlvbiBmcm9tIE1hdGhFeHRy
YXMuaAorICAgICAgICB0byBjb21wYXJlIGZsb2F0aW5nLXBvaW50IG51bWJlcnMuCisKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfYWRq
dXN0ZWRCb3R0b21PZlBhZ2VXaXRoVG9wOmJvdHRvbTpsaW1pdDpdKToKKwogMjAxNC0xMS0wOCAg
QWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBEZWxldGUgY29v
a2llcyBiZXR3ZWVuIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2M4ZDJhZDZhZmIzMWIxNzNlM2RiMTFi
MjgyZDAwMzc1ZWUwNjNiYy4uM2UyOWE5ZDk0ZjVhMmM1Mjg4MzI1NjM0NzIzODg1OTZlMzkzODc1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE0LTExLTA5ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgbW9yZSBjb3JyZWN0IHdheSB0byBj
b21wYXJlIGZsb2F0aW5nIHBvaW50IG51bWJlcnMgYW5kIHVzZSBpdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NTI3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVXNlIHRoZSBuZXcgV1RGOjphcmVFc3NlbnR1
YWxseUVxdWFsKCkgdXRpbGl0eSBmdW5jdGlvbiBmcm9tIE1hdGhFeHRyYXMuaAorICAgICAgICB0
byBjb21wYXJlIGZsb2F0aW5nLXBvaW50IG51bWJlcnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKHdpdGhpbkVwc2lsb24pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1cGRhdGVNaW5p
bXVtU2NhbGVUb0ZpdCk6CisgICAgICAgIChXZWJLaXQ6OmZ1enp5Q29tcGFyZSk6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdwb3J0Q29u
dHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6d2l0aGluRXBzaWxvbik6CisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKGFyZUVzc2VudGlhbGx5RXF1YWxB
c0Zsb2F0KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaWRDb21taXRMYXllclRyZWU6XSk6Cisg
ICAgICAgICh3aXRoaW5FcHNpbG9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6dXBkYXRlTWluaW11bVNjYWxlVG9GaXQpOgor
ICAgICAgICAoV2ViS2l0OjpmdXp6eUNvbXBhcmUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OmFyZUVzc2VudGlhbEVxdWFsQXNGbG9hdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0Ojp3aXRoaW5FcHNp
bG9uKTogRGVsZXRlZC4KKwogMjAxNC0xMS0wOSAgQ29ucmFkIFNodWx0eiAgPGNvbnJhZF9zaHVs
dHpAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgX2lnbm9yZXNOb25XaGVlbE1vdXNlRXZlbnRz
IGltcGxlbWVudGF0aW9uIHRvIFdLVmlldyhQcml2YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvTWF0aEV4dHJhcy5oIGIvU291cmNlL1dURi93dGYvTWF0aEV4dHJhcy5oCmluZGV4IGUz
MzljMWIxNDVlODdhZmM2NThkMWFiYzViZGJhMDliMjgyMTNlODcuLjNmNDFjNzJmNmY3Y2Q3NDE1
M2QwMTk0MDg1ZDU1ZTRkZmMwY2NjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01hdGhF
eHRyYXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmgKQEAgLTM5Myw5ICszOTMs
MzAgQEAgaW5saW5lIHVuc2lnbmVkIGZhc3RMb2cyKHVuc2lnbmVkIGkpCiB9CiAKIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgotaW5saW5lIGJvb2wgd2l0aGluRXBzaWxvbihUIGEsIFQgYikKK2lubGlu
ZSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX2Zsb2F0aW5nX3BvaW50PFQ+Ojp2YWx1
ZSwgVD46OnR5cGUgc2FmZUZQRGl2aXNpb24oVCB1LCBUIHYpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6
YWJzKGEgLSBiKSA8PSBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjplcHNpbG9uKCk7CisgICAgLy8g
UHJvdGVjdCBhZ2FpbnN0IG92ZXJmbG93IC8gdW5kZXJmbG93LgorICAgIGlmICh2IDwgMSAmJiB1
ID4gdiAqIHN0ZDo6bnVtZXJpY19saW1pdHM8VD46Om1heCgpKQorICAgICAgICByZXR1cm4gc3Rk
OjpudW1lcmljX2xpbWl0czxUPjo6bWF4KCk7CisgICAgaWYgKHYgPiAxICYmIHUgPCB2ICogc3Rk
OjpudW1lcmljX2xpbWl0czxUPjo6bWluKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVy
biB1IC8gdjsKK30KKworLy8gRmxvYXRpbmcgcG9pbnQgbnVtYmVycyBjb21wYXJpc29uOgorLy8g
dSBpcyAiZXNzZW50aWFsbHkgZXF1YWwiIFsxXVsyXSB0byB2IGlmOiB8IHUgLSB2IHwgLyB8dXwg
PD0gZSBhbmQgfCB1IC0gdiB8IC8gfHZ8IDw9IGUKKy8vCisvLyBbMV0gS251dGgsIEQuIEUuICJB
Y2N1cmFjeSBvZiBGbG9hdGluZyBQb2ludCBBcml0aG1ldGljLiIgVGhlIEFydCBvZiBDb21wdXRl
ciBQcm9ncmFtbWluZy4gM3JkIGVkLiBWb2wuIDIuCisvLyAgICAgQm9zdG9uOiBBZGRpc29uLVdl
c2xleSwgMTk5OC4gMjI5LTQ1LgorLy8gWzJdIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2RvYy9saWJz
LzFfMzRfMC9saWJzL3Rlc3QvZG9jL2NvbXBvbmVudHMvdGVzdF90b29scy9mbG9hdGluZ19wb2lu
dF9jb21wYXJpc29uLmh0bWwKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgoraW5saW5lIHR5cGVuYW1l
IHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfZmxvYXRpbmdfcG9pbnQ8VD46OnZhbHVlLCBib29sPjo6
dHlwZSBhcmVFc3NlbnRpYWxseUVxdWFsKFQgdSwgVCB2LCBUIGVwc2lsb24gPSBzdGQ6Om51bWVy
aWNfbGltaXRzPFQ+OjplcHNpbG9uKCkpCit7CisgICAgaWYgKHUgPT0gdikKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICBjb25zdCBUIGRlbHRhID0gc3RkOjphYnModSAtIHYpOworICAgIHJl
dHVybiBzYWZlRlBEaXZpc2lvbihkZWx0YSwgc3RkOjphYnModSkpIDw9IGVwc2lsb24gJiYgc2Fm
ZUZQRGl2aXNpb24oZGVsdGEsIHN0ZDo6YWJzKHYpKSA8PSBlcHNpbG9uOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKaW5kZXggMTYxOGRmMTc3MzRmOTdk
YjYwZjBmNzA1YTE4ZTZmYmM4ZWEwOTc3OC4uNGQyMjRhZjZkOWRkNWI0MDJhYmUxN2Y1OWIyMmFh
Y2QzOWNkMTQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKQEAgLTI3MCwxMSArMjcwLDEx
IEBAIHZvaWQgRE9NVGltZXI6OnVwZGF0ZVRpbWVySW50ZXJ2YWxJZk5lY2Vzc2FyeSgpCiAgICAg
ZG91YmxlIHByZXZpb3VzSW50ZXJ2YWwgPSBtX2N1cnJlbnRUaW1lckludGVydmFsOwogICAgIG1f
Y3VycmVudFRpbWVySW50ZXJ2YWwgPSBpbnRlcnZhbENsYW1wZWRUb01pbmltdW0oKTsKIAotICAg
IGlmIChXVEY6OndpdGhpbkVwc2lsb24ocHJldmlvdXNJbnRlcnZhbCwgbV9jdXJyZW50VGltZXJJ
bnRlcnZhbCkpCisgICAgaWYgKFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbChwcmV2aW91c0ludGVy
dmFsLCBtX2N1cnJlbnRUaW1lckludGVydmFsKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KHJlcGVhdEludGVydmFsKCkpIHsKLSAgICAgICAgQVNTRVJUKFdURjo6d2l0aGluRXBzaWxvbihy
ZXBlYXRJbnRlcnZhbCgpLCBwcmV2aW91c0ludGVydmFsKSk7CisgICAgICAgIEFTU0VSVChXVEY6
OmFyZUVzc2VudGlhbGx5RXF1YWwocmVwZWF0SW50ZXJ2YWwoKSwgcHJldmlvdXNJbnRlcnZhbCkp
OwogICAgICAgICBhdWdtZW50UmVwZWF0SW50ZXJ2YWwobV9jdXJyZW50VGltZXJJbnRlcnZhbCAt
IHByZXZpb3VzSW50ZXJ2YWwpOwogICAgIH0gZWxzZQogICAgICAgICBhdWdtZW50RmlyZUludGVy
dmFsKG1fY3VycmVudFRpbWVySW50ZXJ2YWwgLSBwcmV2aW91c0ludGVydmFsKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UXVhZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1YWQuY3BwCmluZGV4IGI5NWZhYjJi
ZDEyZGJjMDEzNjA4NTJmNmQwNjVkYjY5ZjFlMWRhMjYuLmM1Njg3NzY3Yzk4OTliODY4OTNiM2Ux
NWM5ZDI1NjM3YWNmYzYzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0Zsb2F0UXVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRmxvYXRRdWFkLmNwcApAQCAtOTMsOCArOTMsOCBAQCBGbG9hdFJlY3QgRmxvYXRRdWFkOjpi
b3VuZGluZ0JveCgpIGNvbnN0CiAKIGJvb2wgRmxvYXRRdWFkOjppc1JlY3RpbGluZWFyKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gKFdURjo6d2l0aGluRXBzaWxvbihtX3AxLngoKSwgbV9wMi54KCkp
ICYmIFdURjo6d2l0aGluRXBzaWxvbihtX3AyLnkoKSwgbV9wMy55KCkpICYmIFdURjo6d2l0aGlu
RXBzaWxvbihtX3AzLngoKSwgbV9wNC54KCkpICYmIFdURjo6d2l0aGluRXBzaWxvbihtX3A0Lnko
KSwgbV9wMS55KCkpKQotICAgICAgICB8fCAoV1RGOjp3aXRoaW5FcHNpbG9uKG1fcDEueSgpLCBt
X3AyLnkoKSkgJiYgV1RGOjp3aXRoaW5FcHNpbG9uKG1fcDIueCgpLCBtX3AzLngoKSkgJiYgV1RG
Ojp3aXRoaW5FcHNpbG9uKG1fcDMueSgpLCBtX3A0LnkoKSkgJiYgV1RGOjp3aXRoaW5FcHNpbG9u
KG1fcDQueCgpLCBtX3AxLngoKSkpOworICAgIHJldHVybiAoV1RGOjphcmVFc3NlbnRpYWxseUVx
dWFsKG1fcDEueCgpLCBtX3AyLngoKSkgJiYgV1RGOjphcmVFc3NlbnRpYWxseUVxdWFsKG1fcDIu
eSgpLCBtX3AzLnkoKSkgJiYgV1RGOjphcmVFc3NlbnRpYWxseUVxdWFsKG1fcDMueCgpLCBtX3A0
LngoKSkgJiYgV1RGOjphcmVFc3NlbnRpYWxseUVxdWFsKG1fcDQueSgpLCBtX3AxLnkoKSkpCisg
ICAgICAgIHx8IChXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwobV9wMS55KCksIG1fcDIueSgpKSAm
JiBXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwobV9wMi54KCksIG1fcDMueCgpKSAmJiBXVEY6OmFy
ZUVzc2VudGlhbGx5RXF1YWwobV9wMy55KCksIG1fcDQueSgpKSAmJiBXVEY6OmFyZUVzc2VudGlh
bGx5RXF1YWwobV9wNC54KCksIG1fcDEueCgpKSk7CiB9CiAKIGJvb2wgRmxvYXRRdWFkOjpjb250
YWluc1BvaW50KGNvbnN0IEZsb2F0UG9pbnQmIHApIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbQppbmRleCAxN2E2NTBhOTljMTYxYmZiNWJlM2JlODRkMTE3MDUy
MjUzZTExYWFiLi41NmIwYzc5NGVkMGRkYWE0YjE5NjRlYTVjYTI2MWNmMmE1ODM4YzYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTEyNiw2ICsxMjYsNyBA
QAogI2ltcG9ydCA8bGltaXRzPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5n
Lmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL01hdGhFeHRyYXMu
aD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1J1bkxv
b3AuaD4KIApAQCAtMjQxMiw3ICsyNDEzLDcgQEAgLSAoQ0dGbG9hdClfYWRqdXN0ZWRCb3R0b21P
ZlBhZ2VXaXRoVG9wOihDR0Zsb2F0KXRvcCBib3R0b206KENHRmxvYXQpYm90dG9tIGxpbWkKICNp
ZmRlZiBfX0xQNjRfXwogICAgIC8vIElmIHRoZSBuZXcgYm90dG9tIGlzIGVxdWFsIHRvIHRoZSBv
bGQgYm90dG9tICh3aGVuIGJvdGggYXJlIHRyZWF0ZWQgYXMgZmxvYXRzKSwgd2UganVzdCByZXR1
cm4gdGhlIG9yaWdpbmFsCiAgICAgLy8gYm90dG9tLiBUaGlzIHByZXZlbnRzIHJvdW5kaW5nIGVy
cm9ycyB0aGF0IGNhbiBvY2N1ciB3aGVuIGNvbnZlcnRpbmcgbmV3Qm90dG9tIHRvIGEgZG91Ymxl
LgotICAgIGlmIChmYWJzKHN0YXRpY19jYXN0PGZsb2F0Pihib3R0b20pIC0gbmV3Qm90dG9tKSA8
PSBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpKSAKKyAgICBpZiAoV1RGOjph
cmVFc3NlbnRpYWxseUVxdWFsKHN0YXRpY19jYXN0PGZsb2F0Pihib3R0b20pLCBuZXdCb3R0b20p
KQogICAgICAgICByZXR1cm4gYm90dG9tOwogICAgIGVsc2UKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBjZjhhZDNkMmFj
NzJiNDc5YzliNTYwOTRkMjY1OTQ2MDJlYjRhMDk2Li40NzVlYWEyMWJhOTMyZDM3YjE1MjhlNWEw
Yzk4NTgwNDY5YWVkYmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQpAQCAtNzUsNiArNzUsNyBAQAogI2ltcG9ydCA8SmF2YVNjcmlwdENv
cmUvSlNDb250ZXh0Lmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1ZhbHVlLmg+CiAjaW1w
b3J0IDx3dGYvSGFzaE1hcC5oPgorI2ltcG9ydCA8d3RmL01hdGhFeHRyYXMuaD4KICNpbXBvcnQg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCkBAIC04
MjksMTAgKzgzMCw5IEBAIHN0YXRpYyB2b2lkIGNoYW5nZUNvbnRlbnRPZmZzZXRCb3VuZGVkSW5W
YWxpZFJhbmdlKFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldywgV2ViCiAKIC8vIFdlYkNvcmUgc3Rv
cmVzIHRoZSBwYWdlIHNjYWxlIGZhY3RvciBhcyBmbG9hdCBpbnN0ZWFkIG9mIGRvdWJsZS4gV2hl
biB3ZSBnZXQgYSBzY2FsZSBmcm9tIFdlYkNvcmUsCiAvLyB3ZSBuZWVkIHRvIGlnbm9yZSBkaWZm
ZXJlbmNlcyB0aGF0IGFyZSB3aXRoaW4gYSBzbWFsbCByb3VuZGluZyBlcnJvciBvbiBmbG9hdHMu
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVHlwZUEsIHR5cGVuYW1lIFR5cGVCPgotc3RhdGljIGlubGlu
ZSBib29sIHdpdGhpbkVwc2lsb24oVHlwZUEgYSwgVHlwZUIgYikKK3N0YXRpYyBpbmxpbmUgYm9v
bCBhcmVFc3NlbnRpYWxseUVxdWFsQXNGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogewotICAgIHJl
dHVybiBzdGQ6OmFicyhhIC0gYikgPCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxv
bigpOworICAgIHJldHVybiBXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwoYSwgYik7CiB9CiAKIC0g
KHZvaWQpX2RpZENvbW1pdExheWVyVHJlZTooY29uc3QgV2ViS2l0OjpSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbiYpbGF5ZXJUcmVlVHJhbnNhY3Rpb24KQEAgLTg4Miw3ICs4ODIsNyBAQCAtICh2
b2lkKV9kaWRDb21taXRMYXllclRyZWU6KGNvbnN0IFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb24mKWxheWVyVHJlZQogICAgIGlmIChfbmVlZHNUb1Jlc3RvcmVFeHBvc2VkUmVjdCAm
JiBsYXllclRyZWVUcmFuc2FjdGlvbi50cmFuc2FjdGlvbklEKCkgPj0gX2ZpcnN0VHJhbnNhY3Rp
b25JREFmdGVyUGFnZVJlc3RvcmUpIHsKICAgICAgICAgX25lZWRzVG9SZXN0b3JlRXhwb3NlZFJl
Y3QgPSBOTzsKIAotICAgICAgICBpZiAod2l0aGluRXBzaWxvbihjb250ZW50Wm9vbVNjYWxlKHNl
bGYpLCBfc2NhbGVUb1Jlc3RvcmUpKSB7CisgICAgICAgIGlmIChhcmVFc3NlbnRpYWxseUVxdWFs
QXNGbG9hdChjb250ZW50Wm9vbVNjYWxlKHNlbGYpLCBfc2NhbGVUb1Jlc3RvcmUpKSB7CiAgICAg
ICAgICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IGV4cG9zZWRQb3NpdGlvbiA9IF9leHBvc2VkUmVj
dFRvUmVzdG9yZS5sb2NhdGlvbigpOwogICAgICAgICAgICAgZXhwb3NlZFBvc2l0aW9uLnNjYWxl
KF9zY2FsZVRvUmVzdG9yZSwgX3NjYWxlVG9SZXN0b3JlKTsKIApAQCAtODk0LDcgKzg5NCw3IEBA
IC0gKHZvaWQpX2RpZENvbW1pdExheWVyVHJlZTooY29uc3QgV2ViS2l0OjpSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbiYpbGF5ZXJUcmVlCiAgICAgaWYgKF9uZWVkc1RvUmVzdG9yZVVub2JzY3Vy
ZWRDZW50ZXIgJiYgbGF5ZXJUcmVlVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JRCgpID49IF9maXJz
dFRyYW5zYWN0aW9uSURBZnRlclBhZ2VSZXN0b3JlKSB7CiAgICAgICAgIF9uZWVkc1RvUmVzdG9y
ZVVub2JzY3VyZWRDZW50ZXIgPSBOTzsKIAotICAgICAgICBpZiAod2l0aGluRXBzaWxvbihjb250
ZW50Wm9vbVNjYWxlKHNlbGYpLCBfc2NhbGVUb1Jlc3RvcmUpKSB7CisgICAgICAgIGlmIChhcmVF
c3NlbnRpYWxseUVxdWFsQXNGbG9hdChjb250ZW50Wm9vbVNjYWxlKHNlbGYpLCBfc2NhbGVUb1Jl
c3RvcmUpKSB7CiAgICAgICAgICAgICBDR1JlY3QgdW5vYnNjdXJlZFJlY3QgPSBVSUVkZ2VJbnNl
dHNJbnNldFJlY3Qoc2VsZi5ib3VuZHMsIF9vYnNjdXJlZEluc2V0cyk7CiAgICAgICAgICAgICBX
ZWJDb3JlOjpGbG9hdFNpemUgdW5vYnNjdXJlZENvbnRlbnRTaXplQXROZXdTY2FsZSh1bm9ic2N1
cmVkUmVjdC5zaXplLndpZHRoIC8gX3NjYWxlVG9SZXN0b3JlLCB1bm9ic2N1cmVkUmVjdC5zaXpl
LmhlaWdodCAvIF9zY2FsZVRvUmVzdG9yZSk7CiAgICAgICAgICAgICBXZWJDb3JlOjpGbG9hdFBv
aW50IHRvcExlZnRJbkRvY3VtZW50Q29vcmRpbmF0ZShfdW5vYnNjdXJlZENlbnRlclRvUmVzdG9y
ZS54KCkgLSB1bm9ic2N1cmVkQ29udGVudFNpemVBdE5ld1NjYWxlLndpZHRoKCkgLyAyLCBfdW5v
YnNjdXJlZENlbnRlclRvUmVzdG9yZS55KCkgLSB1bm9ic2N1cmVkQ29udGVudFNpemVBdE5ld1Nj
YWxlLmhlaWdodCgpIC8gMik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xs
ZXIuY3BwCmluZGV4IGMzMDRhYzQzODQwY2ZhOGJlM2YzNGUxMWVjNDMwODZlOWI1MmUzNjQuLjFm
ZGY3MmZkYWM1ZmYwM2RhMDY5NTBlYjhjNzk4YTBjNjY2NzJhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCkBAIC0zMywxMSArMzMsNiBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWJvb2wgZnV6enlDb21w
YXJlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IGVwc2lsb24pCi17Ci0gICAgcmV0dXJuIHN0ZDo6
YWJzKGEgLSBiKSA8IGVwc2lsb247Ci19Ci0KIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OlBhZ2VW
aWV3cG9ydENvbnRyb2xsZXIoV2ViS2l0OjpXZWJQYWdlUHJveHkqIHByb3h5LCBQYWdlVmlld3Bv
cnRDb250cm9sbGVyQ2xpZW50JiBjbGllbnQpCiAgICAgOiBtX3dlYlBhZ2VQcm94eShwcm94eSkK
ICAgICAsIG1fY2xpZW50KGNsaWVudCkKQEAgLTMyNywxNCArMzIyLDE2IEBAIGJvb2wgUGFnZVZp
ZXdwb3J0Q29udHJvbGxlcjo6dXBkYXRlTWluaW11bVNjYWxlVG9GaXQoYm9vbCB1c2VySW5pdGlh
dGVkVXBkYXRlKQogICAgIGlmIChtX3ZpZXdwb3J0U2l6ZS5pc0VtcHR5KCkgfHwgbV9jb250ZW50
c1NpemUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBib29sIGN1cnJl
bnRseVNjYWxlZFRvRml0ID0gZnV6enlDb21wYXJlKG1fcGFnZVNjYWxlRmFjdG9yLCBtX21pbmlt
dW1TY2FsZVRvRml0LCAwLjAwMDEpOworICAgIC8vIEZJWE1FOiBXaHkgdGhpcyBhcmJpdHJhcnkg
cHJlY2lzaW9uPyBXZSBsaWtlbHkgd2FudCB0byBvbWl0IHRoZSB0aGlyZCBhcmd1bWVudCBzbyB0
aGF0CisgICAgLy8gc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKSBpcyB1c2Vk
IGluc3RlYWQsIHNpbWlsYXJseSB0byBNYWMgLyBpT1MuCisgICAgYm9vbCBjdXJyZW50bHlTY2Fs
ZWRUb0ZpdCA9IFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbChtX3BhZ2VTY2FsZUZhY3RvciwgbV9t
aW5pbXVtU2NhbGVUb0ZpdCwgMC4wMDAxZik7CiAKICAgICBmbG9hdCBtaW5pbXVtU2NhbGUgPSBX
ZWJDb3JlOjpjb21wdXRlTWluaW11bVNjYWxlRmFjdG9yRm9yQ29udGVudENvbnRhaW5lZChtX3Jh
d0F0dHJpYnV0ZXMsIFdlYkNvcmU6OnJvdW5kZWRJbnRTaXplKG1fdmlld3BvcnRTaXplKSwgV2Vi
Q29yZTo6cm91bmRlZEludFNpemUobV9jb250ZW50c1NpemUpKTsKIAogICAgIGlmIChtaW5pbXVt
U2NhbGUgPD0gMCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFmdXp6eUNvbXBh
cmUobWluaW11bVNjYWxlLCBtX21pbmltdW1TY2FsZVRvRml0LCAwLjAwMDEpKSB7CisgICAgaWYg
KCFXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwobWluaW11bVNjYWxlLCBtX21pbmltdW1TY2FsZVRv
Rml0LCAwLjAwMDFmKSkgewogICAgICAgICBtX21pbmltdW1TY2FsZVRvRml0ID0gbWluaW11bVNj
YWxlOwogCiAgICAgICAgIGlmICghbV93ZWJQYWdlUHJveHktPmFyZUFjdGl2ZURPTU9iamVjdHNB
bmRBbmltYXRpb25zU3VzcGVuZGVkKCkpIHsKQEAgLTM0Myw3ICszNDAsNyBAQCBib29sIFBhZ2VW
aWV3cG9ydENvbnRyb2xsZXI6OnVwZGF0ZU1pbmltdW1TY2FsZVRvRml0KGJvb2wgdXNlckluaXRp
YXRlZFVwZGF0ZSkKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIC8vIEVuc3Vy
ZSB0aGUgZWZmZWN0aXZlIHNjYWxlIHN0YXlzIHdpdGhpbiBib3VuZHMuCiAgICAgICAgICAgICAg
ICAgZmxvYXQgYm91bmRlZFNjYWxlID0gaW5uZXJCb3VuZGVkVmlld3BvcnRTY2FsZShtX3BhZ2VT
Y2FsZUZhY3Rvcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFmdXp6eUNvbXBhcmUoYm91bmRlZFNj
YWxlLCBtX3BhZ2VTY2FsZUZhY3RvciwgMC4wMDAxKSkKKyAgICAgICAgICAgICAgICBpZiAoIVdU
Rjo6YXJlRXNzZW50aWFsbHlFcXVhbChib3VuZGVkU2NhbGUsIG1fcGFnZVNjYWxlRmFjdG9yLCAw
LjAwMDFmKSkKICAgICAgICAgICAgICAgICAgICAgYXBwbHlTY2FsZUFmdGVyUmVuZGVyaW5nQ29u
dGVudHMoYm91bmRlZFNjYWxlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdw
b3J0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oCmluZGV4IGM0ODY4Mjk0NmQyMzAxN2YwNjZl
MDcyMDM1ZjJhMDE3NDY1YjNhMjQuLjYzMzdmMTU0YjJlODE5YjEyNWYyZjA5OTc5MTIzZmNjMmRj
MTQ4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmgKQEAgLTEw
OCw4ICsxMDgsNiBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX2xhc3RGcmFt
ZUNvdmVyZWRSZWN0OwogfTsKIAotYm9vbCBmdXp6eUNvbXBhcmUoZmxvYXQsIGZsb2F0LCBmbG9h
dCBlcHNpbG9uKTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQYWdlVmll
d3BvcnRDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA0NGNiNjdiMDhkMTc2ZjRjYTVlNTcyZDE3Y2Nl
ZjAzZjM4OWQ2MmI0Li4xMWEyYzQ5OTNkMjgzNWQ5OTA5MDIxNGVjNTEwYmFmMmExMjk4MmM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCkBAIC04Nyw2ICs4Nyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Zpc2libGVVbml0cy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9XS0NvbnRlbnRPYnNlcnZhdGlvbi5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9XZWJFdmVudC5oPgorI2ltcG9ydCA8d3RmL01hdGhFeHRyYXMuaD4KICNpbXBvcnQgPHd0
Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0yMjEx
LDkgKzIyMTIsMTEgQEAgdm9pZCBXZWJQYWdlOjpzZXREZXZpY2VPcmllbnRhdGlvbihpbnQzMl90
IGRldmljZU9yaWVudGF0aW9uKQogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkub3JpZW50YXRpb25D
aGFuZ2VkKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCB3aXRoaW5FcHNpbG9uKGZsb2F0IGEs
IGZsb2F0IGIpCisvLyBXZWJDb3JlIHN0b3JlcyB0aGUgcGFnZSBzY2FsZSBmYWN0b3IgYXMgZmxv
YXQgaW5zdGVhZCBvZiBkb3VibGUuIFdoZW4gd2UgZ2V0IGEgc2NhbGUgZnJvbSBXZWJDb3JlLAor
Ly8gd2UgbmVlZCB0byBpZ25vcmUgZGlmZmVyZW5jZXMgdGhhdCBhcmUgd2l0aGluIGEgc21hbGwg
cm91bmRpbmcgZXJyb3Igb24gZmxvYXRzLgorc3RhdGljIGlubGluZSBib29sIGFyZUVzc2VudGlh
bEVxdWFsQXNGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogewotICAgIHJldHVybiBmYWJzKGEgLSBi
KSA8IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKCk7CisgICAgcmV0dXJuIFdU
Rjo6YXJlRXNzZW50aWFsbHlFcXVhbChhLCBiKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpyZXNldFRl
eHRBdXRvc2l6aW5nQmVmb3JlTGF5b3V0SWZOZWVkZWQoY29uc3QgRmxvYXRTaXplJiBvbGRTaXpl
LCBjb25zdCBGbG9hdFNpemUmIG5ld1NpemUpCkBAIC0yMjgyLDcgKzIyODUsNyBAQCB2b2lkIFdl
YlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVt
TGF5b3V0U2l6ZSwgY29ucwogICAgIEZsb2F0UmVjdCBuZXdVbm9ic2N1cmVkQ29udGVudFJlY3Qg
PSB0YXJnZXRVbm9ic2N1cmVkUmVjdDsKICAgICBGbG9hdFJlY3QgbmV3RXhwb3NlZENvbnRlbnRS
ZWN0ID0gdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0OwogCi0gICAgYm9vbCBzY2FsZUNoYW5nZWQg
PSAhd2l0aGluRXBzaWxvbihzY2FsZSwgdGFyZ2V0U2NhbGUpOworICAgIGJvb2wgc2NhbGVDaGFu
Z2VkID0gIWFyZUVzc2VudGlhbEVxdWFsQXNGbG9hdChzY2FsZSwgdGFyZ2V0U2NhbGUpOwogICAg
IGlmIChzY2FsZUNoYW5nZWQpIHsKICAgICAgICAgLy8gVGhlIHRhcmdldCBzY2FsZSB0aGUgVUkg
aXMgdXNpbmcgY2Fubm90IGJlIHJlYWNoZWQgYnkgdGhlIGNvbnRlbnQuIFdlIG5lZWQgdG8gY29t
cHV0ZSBuZXcgdGFyZ2V0cyBiYXNlZAogICAgICAgICAvLyBvbiB0aGUgdmlld3BvcnQgY29uc3Ry
YWludCBhbmQgcmVwb3J0IGV2ZXJ5dGhpbmcgYmFjayB0byB0aGUgVUlQcm9jZXNzLgpAQCAtMjM0
Nyw3ICsyMzUwLDcgQEAgdm9pZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNv
bnN0IEZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnMKICAgICAgICAgICAgICAgICBu
ZXdFeHBvc2VkQ29udGVudFJlY3Quc2V0WSgwKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgYm9vbCBsaWtlbHlSZXNwb25zaXZlRGVzaWduVmlld3BvcnQgPSBuZXdMYXlvdXRTaXplLndp
ZHRoKCkgPT0gbWluaW11bUxheW91dFNpemUud2lkdGgoKSAmJiB3aXRoaW5FcHNpbG9uKHNjYWxl
LCAxKTsKKyAgICAgICAgICAgIGJvb2wgbGlrZWx5UmVzcG9uc2l2ZURlc2lnblZpZXdwb3J0ID0g
bmV3TGF5b3V0U2l6ZS53aWR0aCgpID09IG1pbmltdW1MYXlvdXRTaXplLndpZHRoKCkgJiYgYXJl
RXNzZW50aWFsRXF1YWxBc0Zsb2F0KHNjYWxlLCAxKTsKICAgICAgICAgICAgIGJvb2wgY29udGVu
dEJsZWVkc091dHNpZGVMYXlvdXRXaWR0aCA9IG5ld0NvbnRlbnRTaXplLndpZHRoKCkgPiBuZXdM
YXlvdXRTaXplLndpZHRoKCk7CiAgICAgICAgICAgICBib29sIG9yaWdpbmFsU2Nyb2xsUG9zaXRp
b25XYXNPblRoZUxlZnRFZGdlID0gdGFyZ2V0VW5vYnNjdXJlZFJlY3QueCgpIDw9IDA7CiAgICAg
ICAgICAgICBpZiAobGlrZWx5UmVzcG9uc2l2ZURlc2lnblZpZXdwb3J0ICYmIGNvbnRlbnRCbGVl
ZHNPdXRzaWRlTGF5b3V0V2lkdGggJiYgb3JpZ2luYWxTY3JvbGxQb3NpdGlvbldhc09uVGhlTGVm
dEVkZ2UpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241263</attachid>
            <date>2014-11-09 15:36:56 -0800</date>
            <delta_ts>2014-11-09 16:22:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138527-20141109153657.patch</filename>
            <type>text/plain</type>
            <size>20152</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1Nzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM4ZGJkODU2OTc1YzI3ZTU4YzQ5YmVh
NjdlN2RlZTdiYzY4ODBmMGYuLjkxNGYyMDI5NzUzMzIwYmEyMGM1ZTljMGQwODNjYWQzOTQyMWFh
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTQtMTEtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBtb3JlIGNvcnJlY3Qgd2F5IHRvIGNvbXBhcmUg
ZmxvYXRpbmcgcG9pbnQgbnVtYmVycyBhbmQgdXNlIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzg1MjcKKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICBUbyBjb21wYXJlIGZsb2F0aW5nIHBvaW50IG51bWJlcnMg
aW4gdGhlIGNvZGUgYmFzZSwgd2Ugd291bGQgb2Z0ZW4gcmVseQorICAgICAgICBvbiB0aGUgZm9s
bG93aW5nIGNoZWNrOgorICAgICAgICBzdGQ6OmFicyhhIC0gYikgPD0gc3RkOjpudW1lcmljX2xp
bWl0czxUPjo6ZXBzaWxvbigpCisKKyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgY29ycmVj
dCBmb3IgYXJiaXRyYXJ5IGZsb2F0aW5nIHBvaW50IHZhbHVlcywgYW5kCisgICAgICAgIHdpbGwg
ZmFpbCBmb3IgdmFsdWVzIHRoYXQgYXJlIG5vdCBjbG9zZSB0byB6ZXJvLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggaW50cm9kdWNlcyBhIFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbCgpIHRlbXBsYXRl
ZCBmdW5jdGlvbgorICAgICAgICB0aGF0IGNhbiBvbmx5IGJlIGNhbGxlZCB3aXRoIGZsb2F0aW5n
IHBvaW50IHR5cGVzIGFuZCByZWxpZXMgb24gdGhlCisgICAgICAgIGZvbGxvd2luZyBmb3JtdWxh
IGZyb20gWzFdWzJdIHRoYXQgZGVmaW5lcyB1IGFzIGJlaW5nICJlc3NlbnRpYWxseQorICAgICAg
ICBlcXVhbCIgdG8gdiBpZjogfCB1IC0gdiB8IC8gfHV8IDw9IGUgYW5kIHwgdSAtIHYgfCAvIHx2
fCA8PSBlCisKKyAgICAgICAgWzFdIEtudXRoLCBELiBFLiAiQWNjdXJhY3kgb2YgRmxvYXRpbmcg
UG9pbnQgQXJpdGhtZXRpYy4iIFRoZSBBcnQgb2YKKyAgICAgICAgICAgIENvbXB1dGVyIFByb2dy
YW1taW5nLiAzcmQgZWQuIFZvbC4gMi4gQm9zdG9uOiBBZGRpc29uLVdlc2xleSwgMTk5OC4KKyAg
ICAgICAgICAgIDIyOS00NS4KKyAgICAgICAgWzJdIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2RvYy9s
aWJzLzFfMzRfMC9saWJzL3Rlc3QvZG9jL2NvbXBvbmVudHMvdGVzdF90b29scy9mbG9hdGluZ19w
b2ludF9jb21wYXJpc29uLmh0bWwKKworICAgICAgICAqIHd0Zi9NYXRoRXh0cmFzLmg6CisgICAg
ICAgIChXVEY6OnNhZmVGUERpdmlzaW9uKToKKyAgICAgICAgKFdURjo6YXJlRXNzZW50aWFsbHlF
cXVhbCk6CisgICAgICAgIChXVEY6OndpdGhpbkVwc2lsb24pOiBEZWxldGVkLgorCiAyMDE0LTEx
LTA4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNlIEZp
bGVUaHJlYWQgY2xhc3Mgd2l0aCBhIHNpbmdsZSBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFiOThm
MTBmZGJlZTQ1MmZlNDYxNzI3ZmE0N2E1OGEzYTgyMWNlYzMuLmM2NmUzNTcwOTdlY2E5Zjc2MWRi
NzBiZGE0NjFmN2U2ZjE3OWI2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNC0x
MS0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG1v
cmUgY29ycmVjdCB3YXkgdG8gY29tcGFyZSBmbG9hdGluZyBwb2ludCBudW1iZXJzIGFuZCB1c2Ug
aXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODUy
NworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSB0aGUg
bmV3IFdURjo6YXJlRXNzZW50dWFsbHlFcXVhbCgpIHV0aWxpdHkgZnVuY3Rpb24gZnJvbSBNYXRo
RXh0cmFzLmgKKyAgICAgICAgdG8gY29tcGFyZSBmbG9hdGluZy1wb2ludCBudW1iZXJzLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGFn
ZS9ET01UaW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6dXBkYXRlVGltZXJJ
bnRlcnZhbElmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1
YWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRRdWFkOjppc1JlY3RpbGluZWFyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjppc1VuaWZvcm1Db3JuZXJSYWRpdXMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0U2l6ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6YXJlRXNzZW50aWFsbHlFcXVhbCk6CisgICAgICAgIChXZWJDb3JlOjp3aXRoaW5FcHNp
bG9uKTogRGVsZXRlZC4KKwogMjAxNC0xMS0wOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgcm91bmQtcmVjdCBjbGlwcGluZyBvbiB2
aWRlbyBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDdmNzgxMjIxNDNmOTUyNjNmYjI4MjJl
NWI5MWFkMWE4M2M4MzhjYzQuLjM2YmI2ODc4ZTI1NDliNzBkODgwODI0MDU4YWU2YzRkNWRlZmE1
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0xMS0wOSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG1vcmUgY29ycmVjdCB3
YXkgdG8gY29tcGFyZSBmbG9hdGluZyBwb2ludCBudW1iZXJzIGFuZCB1c2UgaXQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODUyNworCisgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSB0aGUgbmV3IFdURjo6YXJl
RXNzZW50dWFsbHlFcXVhbCgpIHV0aWxpdHkgZnVuY3Rpb24gZnJvbSBNYXRoRXh0cmFzLmgKKyAg
ICAgICAgdG8gY29tcGFyZSBmbG9hdGluZy1wb2ludCBudW1iZXJzLgorCisgICAgICAgICogV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2FkanVzdGVkQm90
dG9tT2ZQYWdlV2l0aFRvcDpib3R0b206bGltaXQ6XSk6CisKIDIwMTQtMTEtMDggIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgRGVsZXRlIGNvb2tpZXMgYmV0
d2VlbiB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk5OGY0NDBkMTE1ZWY2ZGJjYTJlYTI5ZDk5ZjllZTYy
OTdkNzkwYTIuLjVhM2ZjZmQ1ZDkwNjM4YTVhZTQ1MzE2ZTI4MzVjMzRjYzJkMjMxM2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxNC0xMS0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG1vcmUgY29ycmVjdCB3YXkgdG8gY29tcGFyZSBm
bG9hdGluZyBwb2ludCBudW1iZXJzIGFuZCB1c2UgaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODUyNworCisgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgorCisgICAgICAgIFVzZSB0aGUgbmV3IFdURjo6YXJlRXNzZW50dWFsbHlFcXVh
bCgpIHV0aWxpdHkgZnVuY3Rpb24gZnJvbSBNYXRoRXh0cmFzLmgKKyAgICAgICAgdG8gY29tcGFy
ZSBmbG9hdGluZy1wb2ludCBudW1iZXJzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW06CisgICAgICAgICh3aXRoaW5FcHNpbG9uKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6dXBkYXRlTWluaW11bVNjYWxl
VG9GaXQpOgorICAgICAgICAoV2ViS2l0OjpmdXp6eUNvbXBhcmUpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAg
ICAgIChXZWJLaXQ6OndpdGhpbkVwc2lsb24pOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgIChhcmVFc3NlbnRpYWxseUVxdWFsQXNGbG9hdCk6
CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkQ29tbWl0TGF5ZXJUcmVlOl0pOgorICAgICAgICAo
d2l0aGluRXBzaWxvbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VWaWV3cG9ydENvbnRyb2xsZXI6OnVwZGF0ZU1pbmltdW1TY2FsZVRvRml0KToKKyAgICAgICAg
KFdlYktpdDo6ZnV6enlDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjphcmVF
c3NlbnRpYWxFcXVhbEFzRmxvYXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWlj
Vmlld3BvcnRTaXplVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6d2l0aGluRXBzaWxvbik6IERl
bGV0ZWQuCisKIDIwMTQtMTEtMDggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgSW1wbGVtZW50IHJvdW5kLXJlY3QgY2xpcHBpbmcgb24gdmlkZW8gZWxl
bWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01hdGhFeHRyYXMuaCBiL1NvdXJjZS9X
VEYvd3RmL01hdGhFeHRyYXMuaAppbmRleCBlMzM5YzFiMTQ1ZTg3YWZjNjU4ZDFhYmM1YmRiYTA5
YjI4MjEzZTg3Li4zZjQxYzcyZjZmN2NkNzQxNTNkMDE5NDA4NWQ1NWU0ZGZjMGNjYzk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmgKKysrIGIvU291cmNlL1dURi93dGYv
TWF0aEV4dHJhcy5oCkBAIC0zOTMsOSArMzkzLDMwIEBAIGlubGluZSB1bnNpZ25lZCBmYXN0TG9n
Mih1bnNpZ25lZCBpKQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWlubGluZSBib29sIHdp
dGhpbkVwc2lsb24oVCBhLCBUIGIpCitpbmxpbmUgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3Rk
Ojppc19mbG9hdGluZ19wb2ludDxUPjo6dmFsdWUsIFQ+Ojp0eXBlIHNhZmVGUERpdmlzaW9uKFQg
dSwgVCB2KQogewotICAgIHJldHVybiBzdGQ6OmFicyhhIC0gYikgPD0gc3RkOjpudW1lcmljX2xp
bWl0czxUPjo6ZXBzaWxvbigpOworICAgIC8vIFByb3RlY3QgYWdhaW5zdCBvdmVyZmxvdyAvIHVu
ZGVyZmxvdy4KKyAgICBpZiAodiA8IDEgJiYgdSA+IHYgKiBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+
OjptYXgoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8VD46Om1heCgpOwor
ICAgIGlmICh2ID4gMSAmJiB1IDwgdiAqIHN0ZDo6bnVtZXJpY19saW1pdHM8VD46Om1pbigpKQor
ICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gdSAvIHY7Cit9CisKKy8vIEZsb2F0aW5nIHBv
aW50IG51bWJlcnMgY29tcGFyaXNvbjoKKy8vIHUgaXMgImVzc2VudGlhbGx5IGVxdWFsIiBbMV1b
Ml0gdG8gdiBpZjogfCB1IC0gdiB8IC8gfHV8IDw9IGUgYW5kIHwgdSAtIHYgfCAvIHx2fCA8PSBl
CisvLworLy8gWzFdIEtudXRoLCBELiBFLiAiQWNjdXJhY3kgb2YgRmxvYXRpbmcgUG9pbnQgQXJp
dGhtZXRpYy4iIFRoZSBBcnQgb2YgQ29tcHV0ZXIgUHJvZ3JhbW1pbmcuIDNyZCBlZC4gVm9sLiAy
LgorLy8gICAgIEJvc3RvbjogQWRkaXNvbi1XZXNsZXksIDE5OTguIDIyOS00NS4KKy8vIFsyXSBo
dHRwOi8vd3d3LmJvb3N0Lm9yZy9kb2MvbGlicy8xXzM0XzAvbGlicy90ZXN0L2RvYy9jb21wb25l
bnRzL3Rlc3RfdG9vbHMvZmxvYXRpbmdfcG9pbnRfY29tcGFyaXNvbi5odG1sCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KK2lubGluZSB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX2Zsb2F0
aW5nX3BvaW50PFQ+Ojp2YWx1ZSwgYm9vbD46OnR5cGUgYXJlRXNzZW50aWFsbHlFcXVhbChUIHUs
IFQgdiwgVCBlcHNpbG9uID0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6ZXBzaWxvbigpKQorewor
ICAgIGlmICh1ID09IHYpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgY29uc3QgVCBkZWx0
YSA9IHN0ZDo6YWJzKHUgLSB2KTsKKyAgICByZXR1cm4gc2FmZUZQRGl2aXNpb24oZGVsdGEsIHN0
ZDo6YWJzKHUpKSA8PSBlcHNpbG9uICYmIHNhZmVGUERpdmlzaW9uKGRlbHRhLCBzdGQ6OmFicyh2
KSkgPD0gZXBzaWxvbjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGlt
ZXIuY3BwCmluZGV4IDE2MThkZjE3NzM0Zjk3ZGI2MGYwZjcwNWExOGU2ZmJjOGVhMDk3NzguLjRk
MjI0YWY2ZDlkZDViNDAyYWJlMTdmNTliMjJhYWNkMzljZDE0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
VGltZXIuY3BwCkBAIC0yNzAsMTEgKzI3MCwxMSBAQCB2b2lkIERPTVRpbWVyOjp1cGRhdGVUaW1l
ckludGVydmFsSWZOZWNlc3NhcnkoKQogICAgIGRvdWJsZSBwcmV2aW91c0ludGVydmFsID0gbV9j
dXJyZW50VGltZXJJbnRlcnZhbDsKICAgICBtX2N1cnJlbnRUaW1lckludGVydmFsID0gaW50ZXJ2
YWxDbGFtcGVkVG9NaW5pbXVtKCk7CiAKLSAgICBpZiAoV1RGOjp3aXRoaW5FcHNpbG9uKHByZXZp
b3VzSW50ZXJ2YWwsIG1fY3VycmVudFRpbWVySW50ZXJ2YWwpKQorICAgIGlmIChXVEY6OmFyZUVz
c2VudGlhbGx5RXF1YWwocHJldmlvdXNJbnRlcnZhbCwgbV9jdXJyZW50VGltZXJJbnRlcnZhbCkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChyZXBlYXRJbnRlcnZhbCgpKSB7Ci0gICAgICAg
IEFTU0VSVChXVEY6OndpdGhpbkVwc2lsb24ocmVwZWF0SW50ZXJ2YWwoKSwgcHJldmlvdXNJbnRl
cnZhbCkpOworICAgICAgICBBU1NFUlQoV1RGOjphcmVFc3NlbnRpYWxseUVxdWFsKHJlcGVhdElu
dGVydmFsKCksIHByZXZpb3VzSW50ZXJ2YWwpKTsKICAgICAgICAgYXVnbWVudFJlcGVhdEludGVy
dmFsKG1fY3VycmVudFRpbWVySW50ZXJ2YWwgLSBwcmV2aW91c0ludGVydmFsKTsKICAgICB9IGVs
c2UKICAgICAgICAgYXVnbWVudEZpcmVJbnRlcnZhbChtX2N1cnJlbnRUaW1lckludGVydmFsIC0g
cHJldmlvdXNJbnRlcnZhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdFF1YWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRRdWFkLmNwcAppbmRleCBiOTVmYWIyYmQxMmRiYzAxMzYwODUyZjZkMDY1ZGI2OWYxZTFk
YTI2Li5jNTY4Nzc2N2M5ODk5Yjg2ODkzYjNlMTVjOWQyNTYzN2FjZmM2M2FjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1YWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UXVhZC5jcHAKQEAgLTkzLDggKzkz
LDggQEAgRmxvYXRSZWN0IEZsb2F0UXVhZDo6Ym91bmRpbmdCb3goKSBjb25zdAogCiBib29sIEZs
b2F0UXVhZDo6aXNSZWN0aWxpbmVhcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIChXVEY6OndpdGhp
bkVwc2lsb24obV9wMS54KCksIG1fcDIueCgpKSAmJiBXVEY6OndpdGhpbkVwc2lsb24obV9wMi55
KCksIG1fcDMueSgpKSAmJiBXVEY6OndpdGhpbkVwc2lsb24obV9wMy54KCksIG1fcDQueCgpKSAm
JiBXVEY6OndpdGhpbkVwc2lsb24obV9wNC55KCksIG1fcDEueSgpKSkKLSAgICAgICAgfHwgKFdU
Rjo6d2l0aGluRXBzaWxvbihtX3AxLnkoKSwgbV9wMi55KCkpICYmIFdURjo6d2l0aGluRXBzaWxv
bihtX3AyLngoKSwgbV9wMy54KCkpICYmIFdURjo6d2l0aGluRXBzaWxvbihtX3AzLnkoKSwgbV9w
NC55KCkpICYmIFdURjo6d2l0aGluRXBzaWxvbihtX3A0LngoKSwgbV9wMS54KCkpKTsKKyAgICBy
ZXR1cm4gKFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbChtX3AxLngoKSwgbV9wMi54KCkpICYmIFdU
Rjo6YXJlRXNzZW50aWFsbHlFcXVhbChtX3AyLnkoKSwgbV9wMy55KCkpICYmIFdURjo6YXJlRXNz
ZW50aWFsbHlFcXVhbChtX3AzLngoKSwgbV9wNC54KCkpICYmIFdURjo6YXJlRXNzZW50aWFsbHlF
cXVhbChtX3A0LnkoKSwgbV9wMS55KCkpKQorICAgICAgICB8fCAoV1RGOjphcmVFc3NlbnRpYWxs
eUVxdWFsKG1fcDEueSgpLCBtX3AyLnkoKSkgJiYgV1RGOjphcmVFc3NlbnRpYWxseUVxdWFsKG1f
cDIueCgpLCBtX3AzLngoKSkgJiYgV1RGOjphcmVFc3NlbnRpYWxseUVxdWFsKG1fcDMueSgpLCBt
X3A0LnkoKSkgJiYgV1RGOjphcmVFc3NlbnRpYWxseUVxdWFsKG1fcDQueCgpLCBtX3AxLngoKSkp
OwogfQogCiBib29sIEZsb2F0UXVhZDo6Y29udGFpbnNQb2ludChjb25zdCBGbG9hdFBvaW50JiBw
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRSb3VuZGVkUmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9h
dFJvdW5kZWRSZWN0LmNwcAppbmRleCA4OTMzYjBkMzU5ZWY5OTY3YmI2YWIyMDQ5MmZjZWYyMzIz
MmJhZGU1Li5kMzRlYzJhZTFmYTAyNzcyNjhkZDFmZmY4ZWYwODM3OTU0NjUxMDg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0
LmNwcApAQCAtNjQsMTAgKzY0LDEwIEBAIGJvb2wgRmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6Omlz
WmVybygpIGNvbnN0CiAKIGJvb2wgRmxvYXRSb3VuZGVkUmVjdDo6UmFkaWk6OmlzVW5pZm9ybUNv
cm5lclJhZGl1cygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdURjo6d2l0aGluRXBzaWxvbihtX3Rv
cExlZnQud2lkdGgoKSwgbV90b3BMZWZ0LmhlaWdodCgpKQotICAgICAgICAmJiB3aXRoaW5FcHNp
bG9uKG1fdG9wTGVmdCwgbV90b3BSaWdodCkKLSAgICAgICAgJiYgd2l0aGluRXBzaWxvbihtX3Rv
cExlZnQsIG1fYm90dG9tTGVmdCkKLSAgICAgICAgJiYgd2l0aGluRXBzaWxvbihtX3RvcExlZnQs
IG1fYm90dG9tUmlnaHQpOworICAgIHJldHVybiBXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwobV90
b3BMZWZ0LndpZHRoKCksIG1fdG9wTGVmdC5oZWlnaHQoKSkKKyAgICAgICAgJiYgYXJlRXNzZW50
aWFsbHlFcXVhbChtX3RvcExlZnQsIG1fdG9wUmlnaHQpCisgICAgICAgICYmIGFyZUVzc2VudGlh
bGx5RXF1YWwobV90b3BMZWZ0LCBtX2JvdHRvbUxlZnQpCisgICAgICAgICYmIGFyZUVzc2VudGlh
bGx5RXF1YWwobV90b3BMZWZ0LCBtX2JvdHRvbVJpZ2h0KTsKIH0KIAogdm9pZCBGbG9hdFJvdW5k
ZWRSZWN0OjpSYWRpaTo6c2NhbGUoZmxvYXQgZmFjdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaAppbmRleCA3M2E0ZDYyODBhYzM4MTk5NjlhMmRiYWIy
MzY0ZTUwOWRiMmEzYzZiLi40NmE3ZjUwMDg2ZmE4ZGNlYWVhNTI1OTEzMmMxOWVhNTU1OGQ3OTcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFNpemUuaApAQCAt
MTY4LDkgKzE2OCw5IEBAIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgRmxvYXRTaXplJiBh
LCBjb25zdCBGbG9hdFNpemUmIGIpCiAgICAgcmV0dXJuIGEud2lkdGgoKSA9PSBiLndpZHRoKCkg
JiYgYS5oZWlnaHQoKSA9PSBiLmhlaWdodCgpOwogfQogCi1pbmxpbmUgYm9vbCB3aXRoaW5FcHNp
bG9uKGNvbnN0IEZsb2F0U2l6ZSYgYSwgY29uc3QgRmxvYXRTaXplJiBiKQoraW5saW5lIGJvb2wg
YXJlRXNzZW50aWFsbHlFcXVhbChjb25zdCBGbG9hdFNpemUmIGEsIGNvbnN0IEZsb2F0U2l6ZSYg
YikKIHsKLSAgICByZXR1cm4gV1RGOjp3aXRoaW5FcHNpbG9uKGEud2lkdGgoKSwgYi53aWR0aCgp
KSAmJiBXVEY6OndpdGhpbkVwc2lsb24oYS5oZWlnaHQoKSwgYi5oZWlnaHQoKSk7CisgICAgcmV0
dXJuIFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbChhLndpZHRoKCksIGIud2lkdGgoKSkgJiYgV1RG
OjphcmVFc3NlbnRpYWxseUVxdWFsKGEuaGVpZ2h0KCksIGIuaGVpZ2h0KCkpOwogfQogCiBpbmxp
bmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZsb2F0U2l6ZSYgYSwgY29uc3QgRmxvYXRTaXplJiBi
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggMTdhNjUwYTk5
YzE2MWJmYjViZTNiZTg0ZDExNzA1MjI1M2UxMWFhYi4uNTZiMGM3OTRlZDBkZGFhNGIxOTY0ZWE1
Y2EyNjFjZjJhNTgzOGM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3
Lm1tCkBAIC0xMjYsNiArMTI2LDcgQEAKICNpbXBvcnQgPGxpbWl0cz4KICNpbXBvcnQgPHJ1bnRp
bWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNp
bXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvT2JqY1J1bnRpbWVFeHRyYXMu
aD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKQEAgLTI0MTIsNyArMjQxMyw3IEBAIC0gKENH
RmxvYXQpX2FkanVzdGVkQm90dG9tT2ZQYWdlV2l0aFRvcDooQ0dGbG9hdCl0b3AgYm90dG9tOihD
R0Zsb2F0KWJvdHRvbSBsaW1pCiAjaWZkZWYgX19MUDY0X18KICAgICAvLyBJZiB0aGUgbmV3IGJv
dHRvbSBpcyBlcXVhbCB0byB0aGUgb2xkIGJvdHRvbSAod2hlbiBib3RoIGFyZSB0cmVhdGVkIGFz
IGZsb2F0cyksIHdlIGp1c3QgcmV0dXJuIHRoZSBvcmlnaW5hbAogICAgIC8vIGJvdHRvbS4gVGhp
cyBwcmV2ZW50cyByb3VuZGluZyBlcnJvcnMgdGhhdCBjYW4gb2NjdXIgd2hlbiBjb252ZXJ0aW5n
IG5ld0JvdHRvbSB0byBhIGRvdWJsZS4KLSAgICBpZiAoZmFicyhzdGF0aWNfY2FzdDxmbG9hdD4o
Ym90dG9tKSAtIG5ld0JvdHRvbSkgPD0gc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2ls
b24oKSkgCisgICAgaWYgKFdURjo6YXJlRXNzZW50aWFsbHlFcXVhbChzdGF0aWNfY2FzdDxmbG9h
dD4oYm90dG9tKSwgbmV3Qm90dG9tKSkKICAgICAgICAgcmV0dXJuIGJvdHRvbTsKICAgICBlbHNl
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KaW5kZXggY2Y4YWQzZDJhYzcyYjQ3OWM5YjU2MDk0ZDI2NTk0NjAyZWI0YTA5Ni4uNDc1
ZWFhMjFiYTkzMmQzN2IxNTI4ZTVhMGM5ODU4MDQ2OWFlZGJkMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTc1LDYgKzc1LDcgQEAK
ICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTQ29udGV4dC5oPgogI2ltcG9ydCA8SmF2YVNjcmlw
dENvcmUvSlNWYWx1ZS5oPgogI2ltcG9ydCA8d3RmL0hhc2hNYXAuaD4KKyNpbXBvcnQgPHd0Zi9N
YXRoRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KIApAQCAtODI5LDEwICs4MzAsOSBAQCBzdGF0aWMgdm9pZCBjaGFuZ2VD
b250ZW50T2Zmc2V0Qm91bmRlZEluVmFsaWRSYW5nZShVSVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcs
IFdlYgogCiAvLyBXZWJDb3JlIHN0b3JlcyB0aGUgcGFnZSBzY2FsZSBmYWN0b3IgYXMgZmxvYXQg
aW5zdGVhZCBvZiBkb3VibGUuIFdoZW4gd2UgZ2V0IGEgc2NhbGUgZnJvbSBXZWJDb3JlLAogLy8g
d2UgbmVlZCB0byBpZ25vcmUgZGlmZmVyZW5jZXMgdGhhdCBhcmUgd2l0aGluIGEgc21hbGwgcm91
bmRpbmcgZXJyb3Igb24gZmxvYXRzLgotdGVtcGxhdGUgPHR5cGVuYW1lIFR5cGVBLCB0eXBlbmFt
ZSBUeXBlQj4KLXN0YXRpYyBpbmxpbmUgYm9vbCB3aXRoaW5FcHNpbG9uKFR5cGVBIGEsIFR5cGVC
IGIpCitzdGF0aWMgaW5saW5lIGJvb2wgYXJlRXNzZW50aWFsbHlFcXVhbEFzRmxvYXQoZmxvYXQg
YSwgZmxvYXQgYikKIHsKLSAgICByZXR1cm4gc3RkOjphYnMoYSAtIGIpIDwgc3RkOjpudW1lcmlj
X2xpbWl0czxmbG9hdD46OmVwc2lsb24oKTsKKyAgICByZXR1cm4gV1RGOjphcmVFc3NlbnRpYWxs
eUVxdWFsKGEsIGIpOwogfQogCiAtICh2b2lkKV9kaWRDb21taXRMYXllclRyZWU6KGNvbnN0IFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKWxheWVyVHJlZVRyYW5zYWN0aW9uCkBA
IC04ODIsNyArODgyLDcgQEAgLSAodm9pZClfZGlkQ29tbWl0TGF5ZXJUcmVlOihjb25zdCBXZWJL
aXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJilsYXllclRyZWUKICAgICBpZiAoX25lZWRz
VG9SZXN0b3JlRXhwb3NlZFJlY3QgJiYgbGF5ZXJUcmVlVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25J
RCgpID49IF9maXJzdFRyYW5zYWN0aW9uSURBZnRlclBhZ2VSZXN0b3JlKSB7CiAgICAgICAgIF9u
ZWVkc1RvUmVzdG9yZUV4cG9zZWRSZWN0ID0gTk87CiAKLSAgICAgICAgaWYgKHdpdGhpbkVwc2ls
b24oY29udGVudFpvb21TY2FsZShzZWxmKSwgX3NjYWxlVG9SZXN0b3JlKSkgeworICAgICAgICBp
ZiAoYXJlRXNzZW50aWFsbHlFcXVhbEFzRmxvYXQoY29udGVudFpvb21TY2FsZShzZWxmKSwgX3Nj
YWxlVG9SZXN0b3JlKSkgewogICAgICAgICAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBleHBvc2Vk
UG9zaXRpb24gPSBfZXhwb3NlZFJlY3RUb1Jlc3RvcmUubG9jYXRpb24oKTsKICAgICAgICAgICAg
IGV4cG9zZWRQb3NpdGlvbi5zY2FsZShfc2NhbGVUb1Jlc3RvcmUsIF9zY2FsZVRvUmVzdG9yZSk7
CiAKQEAgLTg5NCw3ICs4OTQsNyBAQCAtICh2b2lkKV9kaWRDb21taXRMYXllclRyZWU6KGNvbnN0
IFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKWxheWVyVHJlZQogICAgIGlmIChf
bmVlZHNUb1Jlc3RvcmVVbm9ic2N1cmVkQ2VudGVyICYmIGxheWVyVHJlZVRyYW5zYWN0aW9uLnRy
YW5zYWN0aW9uSUQoKSA+PSBfZmlyc3RUcmFuc2FjdGlvbklEQWZ0ZXJQYWdlUmVzdG9yZSkgewog
ICAgICAgICBfbmVlZHNUb1Jlc3RvcmVVbm9ic2N1cmVkQ2VudGVyID0gTk87CiAKLSAgICAgICAg
aWYgKHdpdGhpbkVwc2lsb24oY29udGVudFpvb21TY2FsZShzZWxmKSwgX3NjYWxlVG9SZXN0b3Jl
KSkgeworICAgICAgICBpZiAoYXJlRXNzZW50aWFsbHlFcXVhbEFzRmxvYXQoY29udGVudFpvb21T
Y2FsZShzZWxmKSwgX3NjYWxlVG9SZXN0b3JlKSkgewogICAgICAgICAgICAgQ0dSZWN0IHVub2Jz
Y3VyZWRSZWN0ID0gVUlFZGdlSW5zZXRzSW5zZXRSZWN0KHNlbGYuYm91bmRzLCBfb2JzY3VyZWRJ
bnNldHMpOwogICAgICAgICAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHVub2JzY3VyZWRDb250ZW50
U2l6ZUF0TmV3U2NhbGUodW5vYnNjdXJlZFJlY3Quc2l6ZS53aWR0aCAvIF9zY2FsZVRvUmVzdG9y
ZSwgdW5vYnNjdXJlZFJlY3Quc2l6ZS5oZWlnaHQgLyBfc2NhbGVUb1Jlc3RvcmUpOwogICAgICAg
ICAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCB0b3BMZWZ0SW5Eb2N1bWVudENvb3JkaW5hdGUoX3Vu
b2JzY3VyZWRDZW50ZXJUb1Jlc3RvcmUueCgpIC0gdW5vYnNjdXJlZENvbnRlbnRTaXplQXROZXdT
Y2FsZS53aWR0aCgpIC8gMiwgX3Vub2JzY3VyZWRDZW50ZXJUb1Jlc3RvcmUueSgpIC0gdW5vYnNj
dXJlZENvbnRlbnRTaXplQXROZXdTY2FsZS5oZWlnaHQoKSAvIDIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdwb3J0Q29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcAppbmRleCBjMzA0YWM0Mzg0MGNmYThiZTNmMzRl
MTFlYzQzMDg2ZTliNTJlMzY0Li4xZmRmNzJmZGFjNWZmMDNkYTA2OTUwZWI4Yzc5OGEwYzY2Njcy
YTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFw
aGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcApAQCAt
MzMsMTEgKzMzLDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1ib29sIGZ1enp5Q29tcGFyZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBlcHNpbG9u
KQotewotICAgIHJldHVybiBzdGQ6OmFicyhhIC0gYikgPCBlcHNpbG9uOwotfQotCiBQYWdlVmll
d3BvcnRDb250cm9sbGVyOjpQYWdlVmlld3BvcnRDb250cm9sbGVyKFdlYktpdDo6V2ViUGFnZVBy
b3h5KiBwcm94eSwgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudCYgY2xpZW50KQogICAgIDog
bV93ZWJQYWdlUHJveHkocHJveHkpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCkBAIC0zMjcsMTQg
KzMyMiwxNiBAQCBib29sIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnVwZGF0ZU1pbmltdW1TY2Fs
ZVRvRml0KGJvb2wgdXNlckluaXRpYXRlZFVwZGF0ZSkKICAgICBpZiAobV92aWV3cG9ydFNpemUu
aXNFbXB0eSgpIHx8IG1fY29udGVudHNTaXplLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgYm9vbCBjdXJyZW50bHlTY2FsZWRUb0ZpdCA9IGZ1enp5Q29tcGFyZShtX3Bh
Z2VTY2FsZUZhY3RvciwgbV9taW5pbXVtU2NhbGVUb0ZpdCwgMC4wMDAxKTsKKyAgICAvLyBGSVhN
RTogV2h5IHRoaXMgYXJiaXRyYXJ5IHByZWNpc2lvbj8gV2UgbGlrZWx5IHdhbnQgdG8gb21pdCB0
aGUgdGhpcmQgYXJndW1lbnQgc28gdGhhdAorICAgIC8vIHN0ZDo6bnVtZXJpY19saW1pdHM8Zmxv
YXQ+OjplcHNpbG9uKCkgaXMgdXNlZCBpbnN0ZWFkLCBzaW1pbGFybHkgdG8gTWFjIC8gaU9TLgor
ICAgIGJvb2wgY3VycmVudGx5U2NhbGVkVG9GaXQgPSBXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwo
bV9wYWdlU2NhbGVGYWN0b3IsIG1fbWluaW11bVNjYWxlVG9GaXQsIDAuMDAwMWYpOwogCiAgICAg
ZmxvYXQgbWluaW11bVNjYWxlID0gV2ViQ29yZTo6Y29tcHV0ZU1pbmltdW1TY2FsZUZhY3RvckZv
ckNvbnRlbnRDb250YWluZWQobV9yYXdBdHRyaWJ1dGVzLCBXZWJDb3JlOjpyb3VuZGVkSW50U2l6
ZShtX3ZpZXdwb3J0U2l6ZSksIFdlYkNvcmU6OnJvdW5kZWRJbnRTaXplKG1fY29udGVudHNTaXpl
KSk7CiAKICAgICBpZiAobWluaW11bVNjYWxlIDw9IDApCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIGlmICghZnV6enlDb21wYXJlKG1pbmltdW1TY2FsZSwgbV9taW5pbXVtU2NhbGVUb0Zp
dCwgMC4wMDAxKSkgeworICAgIGlmICghV1RGOjphcmVFc3NlbnRpYWxseUVxdWFsKG1pbmltdW1T
Y2FsZSwgbV9taW5pbXVtU2NhbGVUb0ZpdCwgMC4wMDAxZikpIHsKICAgICAgICAgbV9taW5pbXVt
U2NhbGVUb0ZpdCA9IG1pbmltdW1TY2FsZTsKIAogICAgICAgICBpZiAoIW1fd2ViUGFnZVByb3h5
LT5hcmVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9uc1N1c3BlbmRlZCgpKSB7CkBAIC0zNDMs
NyArMzQwLDcgQEAgYm9vbCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjp1cGRhdGVNaW5pbXVtU2Nh
bGVUb0ZpdChib29sIHVzZXJJbml0aWF0ZWRVcGRhdGUpCiAgICAgICAgICAgICBlbHNlIHsKICAg
ICAgICAgICAgICAgICAvLyBFbnN1cmUgdGhlIGVmZmVjdGl2ZSBzY2FsZSBzdGF5cyB3aXRoaW4g
Ym91bmRzLgogICAgICAgICAgICAgICAgIGZsb2F0IGJvdW5kZWRTY2FsZSA9IGlubmVyQm91bmRl
ZFZpZXdwb3J0U2NhbGUobV9wYWdlU2NhbGVGYWN0b3IpOwotICAgICAgICAgICAgICAgIGlmICgh
ZnV6enlDb21wYXJlKGJvdW5kZWRTY2FsZSwgbV9wYWdlU2NhbGVGYWN0b3IsIDAuMDAwMSkpCisg
ICAgICAgICAgICAgICAgaWYgKCFXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwoYm91bmRlZFNjYWxl
LCBtX3BhZ2VTY2FsZUZhY3RvciwgMC4wMDAxZikpCiAgICAgICAgICAgICAgICAgICAgIGFwcGx5
U2NhbGVBZnRlclJlbmRlcmluZ0NvbnRlbnRzKGJvdW5kZWRTY2FsZSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaAppbmRl
eCBjNDg2ODI5NDZkMjMwMTdmMDY2ZTA3MjAzNWYyYTAxNzQ2NWIzYTI0Li42MzM3ZjE1NGIyZTgx
OWIxMjVmMmYwOTk3OTEyM2ZjYzJkYzE0OGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvUGFnZVZpZXdw
b3J0Q29udHJvbGxlci5oCkBAIC0xMDgsOCArMTA4LDYgQEAgcHJpdmF0ZToKICAgICBXZWJDb3Jl
OjpGbG9hdFJlY3QgbV9sYXN0RnJhbWVDb3ZlcmVkUmVjdDsKIH07CiAKLWJvb2wgZnV6enlDb21w
YXJlKGZsb2F0LCBmbG9hdCwgZmxvYXQgZXBzaWxvbik7Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCiAjZW5kaWYgLy8gUGFnZVZpZXdwb3J0Q29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggNDRjYjY3
YjA4ZDE3NmY0Y2E1ZTU3MmQxN2NjZWYwM2YzODlkNjJiNC4uMTFhMmM0OTkzZDI4MzVkOTkwOTAy
MTRlYzUxMGJhZjJhMTI5ODJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtODcsNiArODcsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9WaXNpYmxlVW5pdHMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV0tDb250ZW50T2JzZXJ2
YXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViRXZlbnQuaD4KKyNpbXBvcnQgPHd0Zi9NYXRo
RXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwpAQCAtMjIxMSw5ICsyMjEyLDExIEBAIHZvaWQgV2ViUGFnZTo6c2V0RGV2
aWNlT3JpZW50YXRpb24oaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbikKICAgICBtX3BhZ2UtPm1h
aW5GcmFtZSgpLm9yaWVudGF0aW9uQ2hhbmdlZCgpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wg
d2l0aGluRXBzaWxvbihmbG9hdCBhLCBmbG9hdCBiKQorLy8gV2ViQ29yZSBzdG9yZXMgdGhlIHBh
Z2Ugc2NhbGUgZmFjdG9yIGFzIGZsb2F0IGluc3RlYWQgb2YgZG91YmxlLiBXaGVuIHdlIGdldCBh
IHNjYWxlIGZyb20gV2ViQ29yZSwKKy8vIHdlIG5lZWQgdG8gaWdub3JlIGRpZmZlcmVuY2VzIHRo
YXQgYXJlIHdpdGhpbiBhIHNtYWxsIHJvdW5kaW5nIGVycm9yIG9uIGZsb2F0cy4KK3N0YXRpYyBp
bmxpbmUgYm9vbCBhcmVFc3NlbnRpYWxFcXVhbEFzRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKIHsK
LSAgICByZXR1cm4gZmFicyhhIC0gYikgPCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBz
aWxvbigpOworICAgIHJldHVybiBXVEY6OmFyZUVzc2VudGlhbGx5RXF1YWwoYSwgYik7CiB9CiAK
IHZvaWQgV2ViUGFnZTo6cmVzZXRUZXh0QXV0b3NpemluZ0JlZm9yZUxheW91dElmTmVlZGVkKGNv
bnN0IEZsb2F0U2l6ZSYgb2xkU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBuZXdTaXplKQpAQCAtMjI4
Miw3ICsyMjg1LDcgQEAgdm9pZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNv
bnN0IEZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnMKICAgICBGbG9hdFJlY3QgbmV3
VW5vYnNjdXJlZENvbnRlbnRSZWN0ID0gdGFyZ2V0VW5vYnNjdXJlZFJlY3Q7CiAgICAgRmxvYXRS
ZWN0IG5ld0V4cG9zZWRDb250ZW50UmVjdCA9IHRhcmdldEV4cG9zZWRDb250ZW50UmVjdDsKIAot
ICAgIGJvb2wgc2NhbGVDaGFuZ2VkID0gIXdpdGhpbkVwc2lsb24oc2NhbGUsIHRhcmdldFNjYWxl
KTsKKyAgICBib29sIHNjYWxlQ2hhbmdlZCA9ICFhcmVFc3NlbnRpYWxFcXVhbEFzRmxvYXQoc2Nh
bGUsIHRhcmdldFNjYWxlKTsKICAgICBpZiAoc2NhbGVDaGFuZ2VkKSB7CiAgICAgICAgIC8vIFRo
ZSB0YXJnZXQgc2NhbGUgdGhlIFVJIGlzIHVzaW5nIGNhbm5vdCBiZSByZWFjaGVkIGJ5IHRoZSBj
b250ZW50LiBXZSBuZWVkIHRvIGNvbXB1dGUgbmV3IHRhcmdldHMgYmFzZWQKICAgICAgICAgLy8g
b24gdGhlIHZpZXdwb3J0IGNvbnN0cmFpbnQgYW5kIHJlcG9ydCBldmVyeXRoaW5nIGJhY2sgdG8g
dGhlIFVJUHJvY2Vzcy4KQEAgLTIzNDcsNyArMjM1MCw3IEBAIHZvaWQgV2ViUGFnZTo6ZHluYW1p
Y1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplLCBj
b25zCiAgICAgICAgICAgICAgICAgbmV3RXhwb3NlZENvbnRlbnRSZWN0LnNldFkoMCk7CiAgICAg
ICAgICAgICB9CiAKLSAgICAgICAgICAgIGJvb2wgbGlrZWx5UmVzcG9uc2l2ZURlc2lnblZpZXdw
b3J0ID0gbmV3TGF5b3V0U2l6ZS53aWR0aCgpID09IG1pbmltdW1MYXlvdXRTaXplLndpZHRoKCkg
JiYgd2l0aGluRXBzaWxvbihzY2FsZSwgMSk7CisgICAgICAgICAgICBib29sIGxpa2VseVJlc3Bv
bnNpdmVEZXNpZ25WaWV3cG9ydCA9IG5ld0xheW91dFNpemUud2lkdGgoKSA9PSBtaW5pbXVtTGF5
b3V0U2l6ZS53aWR0aCgpICYmIGFyZUVzc2VudGlhbEVxdWFsQXNGbG9hdChzY2FsZSwgMSk7CiAg
ICAgICAgICAgICBib29sIGNvbnRlbnRCbGVlZHNPdXRzaWRlTGF5b3V0V2lkdGggPSBuZXdDb250
ZW50U2l6ZS53aWR0aCgpID4gbmV3TGF5b3V0U2l6ZS53aWR0aCgpOwogICAgICAgICAgICAgYm9v
bCBvcmlnaW5hbFNjcm9sbFBvc2l0aW9uV2FzT25UaGVMZWZ0RWRnZSA9IHRhcmdldFVub2JzY3Vy
ZWRSZWN0LngoKSA8PSAwOwogICAgICAgICAgICAgaWYgKGxpa2VseVJlc3BvbnNpdmVEZXNpZ25W
aWV3cG9ydCAmJiBjb250ZW50QmxlZWRzT3V0c2lkZUxheW91dFdpZHRoICYmIG9yaWdpbmFsU2Ny
b2xsUG9zaXRpb25XYXNPblRoZUxlZnRFZGdlKSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>