<?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>88270</bug_id>
          
          <creation_ts>2012-06-04 17:06:41 -0700</creation_ts>
          <short_desc>EventHandler shouldn&apos;t dispatch fake mousemove events when scrolling on devices that don&apos;t have a mouse</short_desc>
          <delta_ts>2012-06-06 02:45:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>66687</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>aelias</cc>
    
    <cc>aestes</cc>
    
    <cc>anilsson</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>efidler</cc>
    
    <cc>fishd</cc>
    
    <cc>gmak</cc>
    
    <cc>jamesr</cc>
    
    <cc>rbyers</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>641012</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-04 17:06:41 -0700</bug_when>
    <thetext>EventHandler shouldn&apos;t dispatch fake mouse events on devices that don&apos;t have a mouse</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641015</commentid>
    <comment_count>1</comment_count>
      <attachid>145660</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-04 17:08:17 -0700</bug_when>
    <thetext>Created attachment 145660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641016</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-04 17:09:48 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641017</commentid>
    <comment_count>3</comment_count>
      <attachid>145660</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-04 17:13:34 -0700</bug_when>
    <thetext>Comment on attachment 145660
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        EventHandler shouldn&apos;t dispatch fake mouse events on devices that don&apos;t have a mouse

this title is a bit misleading - it seems that the code change is only changing synthetic mouse move events, which is a much more limited thing.  we still want to fire (say) &quot;click&quot; events on taps, right?

&gt; Source/WebCore/ChangeLog:8
&gt; +        This patch adds a setting analogous to deviceSupportsTouch to determine

where da tests at, homie?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641018</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-04 17:13:54 -0700</bug_when>
    <thetext>Code change seems quite reasonable, but tests are the bests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641021</commentid>
    <comment_count>5</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-06-04 17:16:59 -0700</bug_when>
    <thetext>Thanks for the quick patch.

One nuance is that some Android devices support plugging in a mouse, for example the Xoom.  Is dynamically toggling a setting permitted, or must it be on startup?

I&apos;m also concerned like James that the setting as currently named may end up overused to disable more functionality than we intended.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641023</commentid>
    <comment_count>6</comment_count>
      <attachid>145660</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-04 17:24:48 -0700</bug_when>
    <thetext>Comment on attachment 145660
Patch

Alex raises a good point about dynamically changing - Settings is normally something that can&apos;t change over the lifetime of a Page, but this definitely does need to change.  That indicates that it probably should be routed in a different way.

A similar argument could apply (although it&apos;s much less common) to deviceSupportsTouch - someone _could_ plug a touchscreen monitor in while a browser is running, but that seems pretty far fetched.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641028</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-04 17:31:04 -0700</bug_when>
    <thetext>You can change Settings whenever you want.  A setting like this one is going to be queried each time its needed rather than cached, so it should work fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641031</commentid>
    <comment_count>8</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-06-04 17:32:41 -0700</bug_when>
    <thetext>Sounds good.  Since this will change in a very modal way, I&apos;m fine with it being a setting if that fits WebKit conventions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641041</commentid>
    <comment_count>9</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-04 17:37:59 -0700</bug_when>
    <thetext>Hmm, that&apos;s not generally true for Settings - various bits of code stash settings bits in various places without re-checking or handling transitions, so it&apos;s really hard for someone looking at the code or looking at an embedding layer to know if it&apos;s safe to change a Setting or not..  I think we&apos;ve discussed this dichotomy before but didn&apos;t get anywhere satisfactory.

Anyway, with tests this patch would be fine IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641055</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-04 17:53:35 -0700</bug_when>
    <thetext>I have a test locally, I&apos;m just making sure it passes.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641062</commentid>
    <comment_count>11</comment_count>
      <attachid>145668</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-04 17:58:23 -0700</bug_when>
    <thetext>Created attachment 145668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641071</commentid>
    <comment_count>12</comment_count>
      <attachid>145668</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-04 18:06:34 -0700</bug_when>
    <thetext>Comment on attachment 145668
Patch

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

&gt; LayoutTests/fast/events/touch/scroll-without-mouse-lacks-mousemove-events.html:13
&gt; +function listener() {

I&apos;m not sure that this test would actually fail without your code change (or without the window.internals.settings call), since synthetic mouse moves are dispatched asynchronously and by default DRT ends the test as soon as the load event fires - so there wouldn&apos;t be any opportunity to fire the event that fails the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641074</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-04 18:08:54 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 145668 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=145668&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/events/touch/scroll-without-mouse-lacks-mousemove-events.html:13
&gt; &gt; +function listener() {
&gt; 
&gt; I&apos;m not sure that this test would actually fail without your code change (or without the window.internals.settings call), since synthetic mouse moves are dispatched asynchronously and by default DRT ends the test as soon as the load event fires - so there wouldn&apos;t be any opportunity to fire the event that fails the test.

You&apos;re right.  I tested it in the browser, but not in DRT.  One moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641080</commentid>
    <comment_count>14</comment_count>
      <attachid>145672</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-04 18:16:19 -0700</bug_when>
    <thetext>Created attachment 145672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641081</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-04 18:17:00 -0700</bug_when>
    <thetext>It&apos;s not clear how to write a great test in this case since we&apos;re trying to prove that an async even never happens.  This test should pass reliably though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641085</commentid>
    <comment_count>16</comment_count>
      <attachid>145672</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-04 18:23:59 -0700</bug_when>
    <thetext>Comment on attachment 145672
Patch

You have to race it, yeah.  This seems pretty good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641251</commentid>
    <comment_count>17</comment_count>
      <attachid>145672</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-05 00:39:16 -0700</bug_when>
    <thetext>Comment on attachment 145672
Patch

Clearing flags on attachment: 145672

Committed r119465: &lt;http://trac.webkit.org/changeset/119465&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641252</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-05 00:39:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641420</commentid>
    <comment_count>19</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-06-05 04:36:31 -0700</bug_when>
    <thetext>Sorry, for jumping in late, but I am not sure this is the best way to handle this problem.

We (blackberry port) also suffer from this, but it is not desirable to fire mouse move events when (and only when) the user it performing a scrolling or zooming action. On the other hand, when the user is interacting with a webpage that handles the mouse-move events (with a listener/callback for example), the events should be fired.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641652</commentid>
    <comment_count>20</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-06-05 09:43:52 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 145660 [details])
&gt; Alex raises a good point about dynamically changing - Settings is normally something that can&apos;t change over the lifetime of a Page, but this definitely does need to change.  That indicates that it probably should be routed in a different way.
&gt; 
&gt; A similar argument could apply (although it&apos;s much less common) to deviceSupportsTouch - someone _could_ plug a touchscreen monitor in while a browser is running, but that seems pretty far fetched.

A less far-fetched scenario here that we&apos;d like to support is moving a window between a touch screen and 2nd monitor / projector that doesn&apos;t have touch.  Ideally pointer/hover media queries should update in that case.  This has been on my TODO list - I filed https://bugs.webkit.org/show_bug.cgi?id=88339 to track.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641657</commentid>
    <comment_count>21</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-06-05 09:47:34 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Sorry, for jumping in late, but I am not sure this is the best way to handle this problem.
&gt; 
&gt; We (blackberry port) also suffer from this, but it is not desirable to fire mouse move events when (and only when) the user it performing a scrolling or zooming action. On the other hand, when the user is interacting with a webpage that handles the mouse-move events (with a listener/callback for example), the events should be fired.

We believe firing mouse move events for touch in general is not possible.  Among other issues, it causes ambiguity around scrolling behavior.  If a page does preventDefault on mousemove should that prevent scrolling?  If not, how do they move the mouse up/down relative to a page with touch that supports scrolling?

In general, we (folks working on touch for chromium) believe that trying to emulate a mouse with touch (beyond click generation already done today) will break more things than it&apos;ll help.  More details here: http://code.google.com/p/chromium/issues/detail?id=115485</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641667</commentid>
    <comment_count>22</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-06-05 10:02:15 -0700</bug_when>
    <thetext>
&gt; We believe firing mouse move events for touch in general is not possible.  Among other issues, it causes ambiguity around scrolling behavior.  If a page does preventDefault on mousemove should that prevent scrolling?  If not, how do they move the mouse up/down relative to a page with touch that supports scrolling?

In our model it does prevent scrolling. That is how we support most of the mouse-oriented browsers with our touch-screen browser. We also have in blackberry devices

touch screens and track pads (mouse-like pointer input).

&gt; In general, we (folks working on touch for chromium) believe that trying to emulate a mouse with touch (beyond click generation already done today) will break more things than it&apos;ll help.  More details here: http://code.google.com/p/chromium/issues/detail?id=115485

Well, the solution as one pointed out is based on a Setting that should in theory no change in the life time of a Page. In this case, we need it at least to be dynamic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641668</commentid>
    <comment_count>23</comment_count>
    <who name="Eli Fidler">efidler</who>
    <bug_when>2012-06-05 10:04:55 -0700</bug_when>
    <thetext>We (BlackBerry) have been emulating mouse with touch for a while now, so this change breaks us. It&apos;s definitely tricky to get reasonable behaviour out of pages designed for mouse interaction using touch, but I don&apos;t agree that &quot;firing mouse move events for touch in general is not possible&quot; or that &quot;trying to emulate a mouse with touch (beyond click generation already done today) will break more things than it&apos;ll help&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641681</commentid>
    <comment_count>24</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-06-05 10:23:53 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; We (BlackBerry) have been emulating mouse with touch for a while now, so this change breaks us. It&apos;s definitely tricky to get reasonable behaviour out of pages designed for mouse interaction using touch, but I don&apos;t agree that &quot;firing mouse move events for touch in general is not possible&quot; or that &quot;trying to emulate a mouse with touch (beyond click generation already done today) will break more things than it&apos;ll help&quot;.

Cool!  In the short term, it sounds like we need to make sure WebCore supports both policies then.  In the longer term we should try to figure out what the right model for the web is.  Let&apos;s follow-up outside the context of this bug on that - I&apos;ll send you guys an e-mail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641714</commentid>
    <comment_count>25</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-05 10:52:44 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; We (BlackBerry) have been emulating mouse with touch for a while now, so this change breaks us.

This is impossible - this patch only changes behavior if you set a non-default Setting, which you can&apos;t already be doing since it just landed yesterday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641730</commentid>
    <comment_count>26</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-06-05 11:10:57 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #23)
&gt; &gt; We (BlackBerry) have been emulating mouse with touch for a while now, so this change breaks us.
&gt; 
&gt; This is impossible - this patch only changes behavior if you set a non-default Setting, which you can&apos;t already be doing since it just landed yesterday.

That is not the point, James.

If we do not set the setting (that landed yesterday) as you said, we will still get the mouse move events being fired when we pan or flick scroll, for example, that we do not want, which is what the bug is about. But if we set it, it will break our behavior.

So the point is, patch does not actually addresses the issue in a way that it works for us (the blackberry port), which I think is a valid reason to have this discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641738</commentid>
    <comment_count>27</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-05 11:18:41 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #25)
&gt; &gt; (In reply to comment #23)
&gt; &gt; &gt; We (BlackBerry) have been emulating mouse with touch for a while now, so this change breaks us.
&gt; &gt; 
&gt; &gt; This is impossible - this patch only changes behavior if you set a non-default Setting, which you can&apos;t already be doing since it just landed yesterday.
&gt; 
&gt; That is not the point, James.
&gt; 

You said this patch breaks you.  This patch doesn&apos;t change any behavior for you, so that&apos;s clearly incorrect.  Please be precise.

&gt; If we do not set the setting (that landed yesterday) as you said, we will still get the mouse move events being fired when we pan or flick scroll, for example, that we do not want, which is what the bug is about. But if we set it, it will break our behavior.
&gt; 
&gt; So the point is, patch does not actually addresses the issue in a way that it works for us (the blackberry port), which I think is a valid reason to have this discussion.

I think it&apos;s fine to discuss better ways to address this problem.  Please file a new bug describing the behaviors you want and we can figure out how to get a sane, consistent behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641744</commentid>
    <comment_count>28</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-06-05 11:21:38 -0700</bug_when>
    <thetext>
&gt; You said this patch breaks you.  This patch doesn&apos;t change any behavior for you, so that&apos;s clearly incorrect.  Please be precise.

Could you point out where I mentioned it breaks the BlackBerry port?
 
&gt; &gt; So the point is, patch does not actually addresses the issue in a way that it works for us (the blackberry port), which I think is a valid reason to have this discussion.
&gt; 
&gt; I think it&apos;s fine to discuss better ways to address this problem.  Please file a new bug describing the behaviors you want and we can figure out how to get a sane, consistent behavior.

Fair</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641750</commentid>
    <comment_count>29</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-05 11:27:00 -0700</bug_when>
    <thetext>(In reply to comment #23) (from Eli Fidler)
&gt; We (BlackBerry) have been emulating mouse with touch for a while now, so this change breaks us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641765</commentid>
    <comment_count>30</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-05 11:39:21 -0700</bug_when>
    <thetext>I&apos;m sorry, but I don&apos;t understand the discussion that ensued after this patch landed.  If there was something important for me to understand, would you be willing to explain it again?  As far as I can tell, this change can&apos;t possibly cause any problems for anyone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642019</commentid>
    <comment_count>31</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-06-05 17:07:13 -0700</bug_when>
    <thetext>Could we improve this by stopping m_fakeMouseMoveEventTimer from even being scheduled if our platform doesn&apos;t support mouse input? Seems unnecessary to schedule events that we know will be no-ops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642023</commentid>
    <comment_count>32</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-05 17:11:35 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; Could we improve this by stopping m_fakeMouseMoveEventTimer from even being scheduled if our platform doesn&apos;t support mouse input? Seems unnecessary to schedule events that we know will be no-ops.

That sounds like a great thing for you to file a new bug about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642031</commentid>
    <comment_count>33</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-06-05 17:16:25 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #31)
&gt; &gt; Could we improve this by stopping m_fakeMouseMoveEventTimer from even being scheduled if our platform doesn&apos;t support mouse input? Seems unnecessary to schedule events that we know will be no-ops.
&gt; 
&gt; That sounds like a great thing for you to file a new bug about.

Gladly: https://bugs.webkit.org/show_bug.cgi?id=88379</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642307</commentid>
    <comment_count>34</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2012-06-06 02:45:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/11602415&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145660</attachid>
            <date>2012-06-04 17:08:17 -0700</date>
            <delta_ts>2012-06-04 17:52:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88270-20120604170816.patch</filename>
            <type>text/plain</type>
            <size>6622</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmJjOThkMTVmY2FkYTUz
NWE4Y2FkODIzNTI3N2VkZTBmMmVkNTA0ZS4uNjk5ODU1YTFlMGJmZjlmYmNmOGJkYjI3OTQ1NmRh
OTNhYWU0OWY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA2LTA0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXZlbnRIYW5kbGVyIHNob3Vs
ZG4ndCBkaXNwYXRjaCBmYWtlIG1vdXNlIGV2ZW50cyBvbiBkZXZpY2VzIHRoYXQgZG9uJ3QgaGF2
ZSBhIG1vdXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04ODI3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggYWRkcyBhIHNldHRpbmcgYW5hbG9nb3VzIHRvIGRldmljZVN1cHBvcnRzVG91
Y2ggdG8gZGV0ZXJtaW5lCisgICAgICAgIHdoZXRoZXIgdGhlIGRldmljZSBzdXBwb3J0cyBtb3Vz
ZS4gV2UgdGhlbiBkb24ndCBkaXNwYXRjaCBmYWtlIG1vdXNlCisgICAgICAgIGV2ZW50cyBvbiBk
ZXZpY2VzIHRoYXQgZG9uJ3QgaGF2ZSBhIG1vdXNlIGluIHRoZSBmaXJzdCBwbGFjZS4KKworICAg
ICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCk6CisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAg
ICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXREZXZp
Y2VTdXBwb3J0c01vdXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpkZXZpY2VTdXBw
b3J0c01vdXNlKToKKyAgICAgICAgKFNldHRpbmdzKToKKwogMjAxMi0wNi0wNCAgQW5kcmV3IExv
ICA8YW5sb0ByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBTcGxpdCBBbmltYXRpb25G
cmFtZVJhdGVDb250cm9sbGVyIGludG8gaXRzIG93biBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGJmZThhNGI5OGUxNzBkMGFiNDMxNDg4OTBlZWM1NTg2MTRhNzk2MDAuLjgxODc2
NDk1ZDE1YmQzZDFiNjRjZDVhMTQwMTA0Njk0NzQxOTllMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDYtMDQgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBFdmVudEhhbmRsZXIgc2hvdWxkbid0IGRpc3BhdGNoIGZh
a2UgbW91c2UgZXZlbnRzIG9uIGRldmljZXMgdGhhdCBkb24ndCBoYXZlIGEgbW91c2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MjcwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2V0
dGluZ3MuaDoKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXREZXZpY2VTdXBwb3J0c01vdXNlKToKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgorICAgICAgICAoV2Vi
U2V0dGluZ3NJbXBsKToKKwogMjAxMi0wNi0wNCAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFsbG93IENDTGF5ZXJJbXBsIHRvIGZpbmQg
aXRzIGxheWVyIHRyZWUgaG9zdCwgYW5kIHVzZSB0aGlzIGZvciBDQ1ZpZGVvTGF5ZXJJbXBsIGlu
c3RlYWQgb2YgYWx3YXlzLW51bGwgcG9pbnRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAppbmRleCAxN2YyYTVlNGM1OWQ4ZGZkMjlmZGQ2NGRlYmY1MTVlMjExODhkMjZhLi5iNzky
NDYyYzRiOGQ4NjhlOTVkY2YzYzE4Y2I0YTI2ZTc4NDZlNmRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCkBAIC0yNjY0LDYgKzI2NjQsMTAgQEAgdm9pZCBFdmVudEhhbmRsZXI6
OmZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQoVGltZXI8RXZlbnRIYW5kbGVyPiogdGltZXIp
CiAgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fZmFrZU1vdXNlTW92ZUV2ZW50
VGltZXIpOwogICAgIEFTU0VSVCghbV9tb3VzZVByZXNzZWQpOwogCisgICAgU2V0dGluZ3MqIHNl
dHRpbmdzID0gbV9mcmFtZS0+c2V0dGluZ3MoKTsKKyAgICBpZiAoc2V0dGluZ3MgJiYgIXNldHRp
bmdzKCktPmRldmljZVN1cHBvcnRzTW91c2UoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgRnJh
bWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpOwogICAgIGlmICghdmlldykKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCA4YjdiMWQ3N2EwMWQ0MGNmMGUy
OTBmNWNjNzEzYzAyZTUxZGY3YTZkLi41ZmU5Yzk4NGYxNTE0YjY0NTU2NjcwMWRlMmNjZmNmNzVk
NmY5OGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMjcxLDYgKzI3MSw3IEBAIFNl
dHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV93YW50c0JhbGFuY2VkU2V0RGVm
ZXJzTG9hZGluZ0JlaGF2aW9yKGZhbHNlKQogICAgICwgbV9yZXF1ZXN0QW5pbWF0aW9uRnJhbWVF
bmFibGVkKHRydWUpCiAgICAgLCBtX2RldmljZVN1cHBvcnRzVG91Y2goZmFsc2UpCisgICAgLCBt
X2RldmljZVN1cHBvcnRzTW91c2UodHJ1ZSkKICAgICAsIG1fbmVlZHNEaWRGaW5pc2hMb2FkT3Jk
ZXJRdWlyayhmYWxzZSkKICAgICAsIG1fZml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRl
eHQoZmFsc2UpCiAgICAgLCBtX3N5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQodHJ1ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAppbmRleCBmYjFjZDNmZWZhMWU2NjczNDUwMTYwZGY3MzFmODVkNDQxMjFj
NjU3Li43ZjFlY2E3ZGJkMTM5NDU4N2RlNzJmMDFmN2E1ZmI3YzViNWI1Mzk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5oCkBAIC01NzgsNiArNTc4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2b2lkIHNldERldmljZVN1cHBvcnRzVG91Y2goYm9vbCBlbmFibGVkKSB7IG1fZGV2aWNl
U3VwcG9ydHNUb3VjaCA9IGVuYWJsZWQ7IH0KICAgICAgICAgYm9vbCBkZXZpY2VTdXBwb3J0c1Rv
dWNoKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VTdXBwb3J0c1RvdWNoOyB9CiAKKyAgICAgICAg
dm9pZCBzZXREZXZpY2VTdXBwb3J0c01vdXNlKGJvb2wgZW5hYmxlZCkgeyBtX2RldmljZVN1cHBv
cnRzTW91c2UgPSBlbmFibGVkOyB9CisgICAgICAgIGJvb2wgZGV2aWNlU3VwcG9ydHNNb3VzZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU3VwcG9ydHNNb3VzZTsgfQorCiAgICAgICAgIHZvaWQg
c2V0TmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyayhib29sIG5lZWRzUXVpcmspIHsgbV9uZWVk
c0RpZEZpbmlzaExvYWRPcmRlclF1aXJrID0gbmVlZHNRdWlyazsgfQogICAgICAgICBib29sIG5l
ZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsoKSBjb25zdCB7IHJldHVybiBtX25lZWRzRGlkRmlu
aXNoTG9hZE9yZGVyUXVpcms7IH0KIApAQCAtNzYzLDYgKzc2Niw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgYm9vbCBtX3dhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZp
b3IgOiAxOwogICAgICAgICBib29sIG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCA6IDE7
CiAgICAgICAgIGJvb2wgbV9kZXZpY2VTdXBwb3J0c1RvdWNoIDogMTsKKyAgICAgICAgYm9vbCBt
X2RldmljZVN1cHBvcnRzTW91c2UgOiAxOwogICAgICAgICBib29sIG1fbmVlZHNEaWRGaW5pc2hM
b2FkT3JkZXJRdWlyayA6IDE7CiAKICAgICAgICAgYm9vbCBtX2ZpeGVkUG9zaXRpb25DcmVhdGVz
U3RhY2tpbmdDb250ZXh0IDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJT
ZXR0aW5ncy5oCmluZGV4IGQ2ZTA2NTgxZDBmMmIxYjZkNGEwNGI1ODA4N2FhOGVkNmMxYmE5Yzcu
LmRkNzQxMmRhNTkyYmQ2MzA3NTFlN2EyOGMzOTRhZGU0NjNhM2I5N2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAtNjgsNiArNjgsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEZvbnRCb29zdGluZ0VuYWJsZWQoYm9vbCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShjb25zdCBXZWJTdHJp
bmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERldmljZVN1cHBvcnRzVG91Y2goYm9vbCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTdXBwb3J0c01vdXNlKGJvb2wpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdEVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRXZWJTZWN1cml0eUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCmluZGV4
IDUzNTEwNGI5ZDQ1Y2M0OGJmZWI0ODNmZjRmNGJiOGQ2ODFjYWE0OWUuLjI5YzRkOWMxMzA0MmMx
YTI4NGNjZGE5ZjA1Yzk2ZGJkMGU5MGRkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtMTI5LDYgKzEyOSwxMSBAQCB2b2lkIFdlYlNl
dHRpbmdzSW1wbDo6c2V0RGV2aWNlU3VwcG9ydHNUb3VjaChib29sIGRldmljZVN1cHBvcnRzVG91
Y2gpCiAgICAgbV9zZXR0aW5ncy0+c2V0RGV2aWNlU3VwcG9ydHNUb3VjaChkZXZpY2VTdXBwb3J0
c1RvdWNoKTsKIH0KIAordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldERldmljZVN1cHBvcnRzTW91
c2UoYm9vbCBkZXZpY2VTdXBwb3J0c01vdXNlKQoreworICAgIG1fc2V0dGluZ3MtPnNldERldmlj
ZVN1cHBvcnRzTW91c2UoZGV2aWNlU3VwcG9ydHNNb3VzZSk7Cit9CisKIGJvb2wgV2ViU2V0dGlu
Z3NJbXBsOjpkZXZpY2VTdXBwb3J0c1RvdWNoKCkKIHsKICAgICByZXR1cm4gbV9zZXR0aW5ncy0+
ZGV2aWNlU3VwcG9ydHNUb3VjaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
ZXR0aW5nc0ltcGwuaAppbmRleCA3MjkyMDA1Y2M3OWNjYWY1Y2ZiYzA3ODMzMWQwOWNmMWRmOWUz
ZTYwLi5hNWQxNzJiMWFlM2U4YzhiOTA3NDlmNTNjZWI5ZWJhYmFlNzQxMjE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaApAQCAtNjAsNiArNjAsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEZvbnRCb29zdGluZ0VuYWJsZWQoYm9vbCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFdlYlN0
cmluZyYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTdXBwb3J0c1RvdWNoKGJvb2wpOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTdXBwb3J0c01vdXNlKGJvb2wpOwogICAgIHZpcnR1
YWwgYm9vbCBkZXZpY2VTdXBwb3J0c1RvdWNoKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEphdmFT
Y3JpcHRFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRXZWJTZWN1cml0eUVuYWJs
ZWQoYm9vbCk7Cg==
</data>
<flag name="review"
          id="152824"
          type_id="1"
          status="-"
          setter="jamesr"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145668</attachid>
            <date>2012-06-04 17:58:23 -0700</date>
            <delta_ts>2012-06-04 18:16:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88270-20120604175822.patch</filename>
            <type>text/plain</type>
            <size>12811</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmJjOThkMTVmY2FkYTUz
NWE4Y2FkODIzNTI3N2VkZTBmMmVkNTA0ZS4uY2UwZGE5Njg2M2E3NWVjNTI0MjA3NzNmMjU0NWJl
ZjNjNjM3NmQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA2LTA0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXZlbnRIYW5kbGVyIHNob3Vs
ZG4ndCBkaXNwYXRjaCBmYWtlIG1vdXNlbW92ZSBldmVudHMgd2hlbiBzY3JvbGxpbmcgb24gZGV2
aWNlcyB0aGF0IGRvbid0IGhhdmUgYSBtb3VzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgyNzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBzZXR0aW5nIGFuYWxvZ291cyB0
byBkZXZpY2VTdXBwb3J0c1RvdWNoIHRvIGRldGVybWluZQorICAgICAgICB3aGV0aGVyIHRoZSBk
ZXZpY2Ugc3VwcG9ydHMgbW91c2UuIFdlIHRoZW4gZG9uJ3QgZGlzcGF0Y2ggZmFrZSBtb3VzZQor
ICAgICAgICBldmVudHMgb24gZGV2aWNlcyB0aGF0IGRvbid0IGhhdmUgYSBtb3VzZSBpbiB0aGUg
Zmlyc3QgcGxhY2UuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvdG91Y2gvc2Nyb2xsLXdp
dGhvdXQtbW91c2UtbGFja3MtbW91c2Vtb3ZlLWV2ZW50cy5odG1sCisKKyAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZha2VN
b3VzZU1vdmVFdmVudFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKiBwYWdlL1Nl
dHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0RGV2aWNlU3VwcG9ydHNN
b3VzZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6ZGV2aWNlU3VwcG9ydHNNb3VzZSk6
CisgICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkludGVybmFsU2V0dGlu
Z3MpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6cmVzdG9yZVRvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldERldmljZVN1cHBvcnRzTW91c2Up
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
Lmg6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaWRsOgorCiAyMDEyLTA2LTA0ICBBbmRyZXcgTG8gIDxhbmxvQHJpbS5jb20+
CiAKICAgICAgICAgW0JsYWNrQmVycnldIFNwbGl0IEFuaW1hdGlvbkZyYW1lUmF0ZUNvbnRyb2xs
ZXIgaW50byBpdHMgb3duIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYmZlOGE0
Yjk4ZTE3MGQwYWI0MzE0ODg5MGVlYzU1ODYxNGE3OTYwMC4uZDZmOWYwYmQ4NDEwZGY0ZjA0MDAw
MjhkMGY1ZDliZTVlYjI0Y2UxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMi0wNi0wNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisg
ICAgICAgIEV2ZW50SGFuZGxlciBzaG91bGRuJ3QgZGlzcGF0Y2ggZmFrZSBtb3VzZW1vdmUgZXZl
bnRzIHdoZW4gc2Nyb2xsaW5nIG9uIGRldmljZXMgdGhhdCBkb24ndCBoYXZlIGEgbW91c2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MjcwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2Vi
U2V0dGluZ3MuaDoKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXREZXZpY2VTdXBwb3J0c01vdXNlKToKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgorICAgICAgICAo
V2ViU2V0dGluZ3NJbXBsKToKKwogMjAxMi0wNi0wNCAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFsbG93IENDTGF5ZXJJbXBsIHRvIGZp
bmQgaXRzIGxheWVyIHRyZWUgaG9zdCwgYW5kIHVzZSB0aGlzIGZvciBDQ1ZpZGVvTGF5ZXJJbXBs
IGluc3RlYWQgb2YgYWx3YXlzLW51bGwgcG9pbnRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAppbmRleCAxN2YyYTVlNGM1OWQ4ZGZkMjlmZGQ2NGRlYmY1MTVlMjExODhkMjZhLi5l
ODlhNGM3ZTYxZGQ1ZWZkMTJmYmE4YWM2M2FhNGFlMWI3YzFjY2YzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yNjY0LDYgKzI2NjQsMTAgQEAgdm9pZCBFdmVudEhhbmRs
ZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQoVGltZXI8RXZlbnRIYW5kbGVyPiogdGlt
ZXIpCiAgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fZmFrZU1vdXNlTW92ZUV2
ZW50VGltZXIpOwogICAgIEFTU0VSVCghbV9tb3VzZVByZXNzZWQpOwogCisgICAgU2V0dGluZ3Mq
IHNldHRpbmdzID0gbV9mcmFtZS0+c2V0dGluZ3MoKTsKKyAgICBpZiAoc2V0dGluZ3MgJiYgIXNl
dHRpbmdzLT5kZXZpY2VTdXBwb3J0c01vdXNlKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIEZy
YW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKTsKICAgICBpZiAoIXZpZXcpCiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggOGI3YjFkNzdhMDFkNDBjZjBl
MjkwZjVjYzcxM2MwMmU1MWRmN2E2ZC4uNWZlOWM5ODRmMTUxNGI2NDU1NjY3MDFkZTJjY2ZjZjc1
ZDZmOThmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTI3MSw2ICsyNzEsNyBAQCBT
ZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fd2FudHNCYWxhbmNlZFNldERl
ZmVyc0xvYWRpbmdCZWhhdmlvcihmYWxzZSkKICAgICAsIG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1l
RW5hYmxlZCh0cnVlKQogICAgICwgbV9kZXZpY2VTdXBwb3J0c1RvdWNoKGZhbHNlKQorICAgICwg
bV9kZXZpY2VTdXBwb3J0c01vdXNlKHRydWUpCiAgICAgLCBtX25lZWRzRGlkRmluaXNoTG9hZE9y
ZGVyUXVpcmsoZmFsc2UpCiAgICAgLCBtX2ZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250
ZXh0KGZhbHNlKQogICAgICwgbV9zeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkKHRydWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmgKaW5kZXggZmIxY2QzZmVmYTFlNjY3MzQ1MDE2MGRmNzMxZjg1ZDQ0MTIx
YzY1Ny4uN2YxZWNhN2RiZDEzOTQ1ODdkZTcyZjAxZjdhNWZiN2M1YjViNTM5OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaApAQCAtNTc4LDYgKzU3OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdm9pZCBzZXREZXZpY2VTdXBwb3J0c1RvdWNoKGJvb2wgZW5hYmxlZCkgeyBtX2Rldmlj
ZVN1cHBvcnRzVG91Y2ggPSBlbmFibGVkOyB9CiAgICAgICAgIGJvb2wgZGV2aWNlU3VwcG9ydHNU
b3VjaCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU3VwcG9ydHNUb3VjaDsgfQogCisgICAgICAg
IHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNNb3VzZShib29sIGVuYWJsZWQpIHsgbV9kZXZpY2VTdXBw
b3J0c01vdXNlID0gZW5hYmxlZDsgfQorICAgICAgICBib29sIGRldmljZVN1cHBvcnRzTW91c2Uo
KSBjb25zdCB7IHJldHVybiBtX2RldmljZVN1cHBvcnRzTW91c2U7IH0KKwogICAgICAgICB2b2lk
IHNldE5lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsoYm9vbCBuZWVkc1F1aXJrKSB7IG1fbmVl
ZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyayA9IG5lZWRzUXVpcms7IH0KICAgICAgICAgYm9vbCBu
ZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0RpZEZp
bmlzaExvYWRPcmRlclF1aXJrOyB9CiAKQEAgLTc2Myw2ICs3NjYsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIGJvb2wgbV93YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2
aW9yIDogMTsKICAgICAgICAgYm9vbCBtX3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQgOiAx
OwogICAgICAgICBib29sIG1fZGV2aWNlU3VwcG9ydHNUb3VjaCA6IDE7CisgICAgICAgIGJvb2wg
bV9kZXZpY2VTdXBwb3J0c01vdXNlIDogMTsKICAgICAgICAgYm9vbCBtX25lZWRzRGlkRmluaXNo
TG9hZE9yZGVyUXVpcmsgOiAxOwogCiAgICAgICAgIGJvb2wgbV9maXhlZFBvc2l0aW9uQ3JlYXRl
c1N0YWNraW5nQ29udGV4dCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcAppbmRleCA3NTM2YjUwODFlMWI3OGRlMjA0ZWVlMjYwODQ1ZmJmN2Y2MWIzZGQ4
Li5lNGQwNjFlMjg1Y2UxNjQyNWZkOTY4Y2IzMGZlNTFiZTIwMzMyN2NmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTEwNiw2ICsxMDYsNyBAQCBJ
bnRlcm5hbFNldHRpbmdzOjpJbnRlcm5hbFNldHRpbmdzKEZyYW1lKiBmcmFtZSkKICNlbmRpZgog
ICAgICwgbV9vcmlnaW5hbFdpbmRvd0ZvY3VzUmVzdHJpY3RlZChzZXR0aW5ncygpLT53aW5kb3dG
b2N1c1Jlc3RyaWN0ZWQoKSkKICAgICAsIG1fb3JpZ2luYWxEZXZpY2VTdXBwb3J0c1RvdWNoKHNl
dHRpbmdzKCktPmRldmljZVN1cHBvcnRzVG91Y2goKSkKKyAgICAsIG1fb3JpZ2luYWxEZXZpY2VT
dXBwb3J0c01vdXNlKHNldHRpbmdzKCktPmRldmljZVN1cHBvcnRzTW91c2UoKSkKIHsKIH0KIApA
QCAtMTI2LDYgKzEyNyw3IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6cmVzdG9yZVRvKFNldHRp
bmdzKiBzZXR0aW5ncykKICNlbmRpZgogICAgIHNldHRpbmdzLT5zZXRXaW5kb3dGb2N1c1Jlc3Ry
aWN0ZWQobV9vcmlnaW5hbFdpbmRvd0ZvY3VzUmVzdHJpY3RlZCk7CiAgICAgc2V0dGluZ3MtPnNl
dERldmljZVN1cHBvcnRzVG91Y2gobV9vcmlnaW5hbERldmljZVN1cHBvcnRzVG91Y2gpOworICAg
IHNldHRpbmdzLT5zZXREZXZpY2VTdXBwb3J0c01vdXNlKG1fb3JpZ2luYWxEZXZpY2VTdXBwb3J0
c01vdXNlKTsKIH0KIAogU2V0dGluZ3MqIEludGVybmFsU2V0dGluZ3M6OnNldHRpbmdzKCkgY29u
c3QKQEAgLTI2OCw2ICsyNzAsMTIgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXREZXZpY2VT
dXBwb3J0c1RvdWNoKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgc2V0dGlu
Z3MoKS0+c2V0RGV2aWNlU3VwcG9ydHNUb3VjaChlbmFibGVkKTsKIH0KIAordm9pZCBJbnRlcm5h
bFNldHRpbmdzOjpzZXREZXZpY2VTdXBwb3J0c01vdXNlKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9u
Q29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKKyAg
ICBzZXR0aW5ncygpLT5zZXREZXZpY2VTdXBwb3J0c01vdXNlKGVuYWJsZWQpOworfQorCiB2b2lk
IEludGVybmFsU2V0dGluZ3M6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9y
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0
aW5ncygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCAy
M2I5ZmYxZjAyNzI4YTUwNjc3NDVlYWRmMzM3YTdlNjFjY2YwYmI3Li40ZmU4MjI2MzViNzViZDMy
NzM0YjYyZTUwMDY0NjZkNWQ3OGYwZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQZXJU
aWxlRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBzZXRUb3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICB2b2lkIHNldERldmljZVN1cHBvcnRzVG91Y2goYm9vbCBlbmFibGVkLCBFeGNl
cHRpb25Db2RlJik7CisgICAgdm9pZCBzZXREZXZpY2VTdXBwb3J0c01vdXNlKGJvb2wgZW5hYmxl
ZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQg
c2NhbGVGYWN0b3IsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFNoYWRvd0RPTUVuYWJs
ZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRTdGFuZGFyZEZv
bnRGYW1pbHkoY29uc3QgU3RyaW5nJiBmYW1pbHksIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBFeGNl
cHRpb25Db2RlJik7CkBAIC0xMDcsNiArMTA4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIGJv
b2wgbV9vcmlnaW5hbFdpbmRvd0ZvY3VzUmVzdHJpY3RlZDsKICAgICBib29sIG1fb3JpZ2luYWxE
ZXZpY2VTdXBwb3J0c1RvdWNoOworICAgIGJvb2wgbV9vcmlnaW5hbERldmljZVN1cHBvcnRzTW91
c2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCBmZjM1YTgyOTBjOTc1NzNiZmZjMTNlOTEyNGJm
YWYxOTYxZWQ3ZjNjLi40MjdmOTQ4OTM5M2Q0YWUwZjRjZDU0MTg5Y2RiNjVkYzI0MjBkOGU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTQyLDYg
KzQyLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9y
KGluIGZsb2F0IHNjYWxlRmFjdG9yLCBpbiBsb25nIHgsIGluIGxvbmcgeSkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0VG91Y2hFdmVudEVtdWxhdGlvbkVuYWJsZWQoaW4g
Ym9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRE
ZXZpY2VTdXBwb3J0c1RvdWNoKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNNb3VzZShpbiBib29sZWFuIGVuYWJs
ZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldERldmljZVNjYWxlRmFj
dG9yKGluIGZsb2F0IHNjYWxlRmFjdG9yKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
dm9pZCBzZXRTaGFkb3dET01FbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0U3RhbmRhcmRGb250RmFtaWx5KGluIERPTVN0cmlu
ZyBmYW1pbHksIGluIERPTVN0cmluZyBzY3JpcHQpIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggZDZlMDY1ODFk
MGYyYjFiNmQ0YTA0YjU4MDg3YWE4ZWQ2YzFiYTljNy4uZGQ3NDEyZGE1OTJiZDYzMDc1MWU3YTI4
YzM5NGFkZTQ2M2EzYjk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJT
ZXR0aW5ncy5oCkBAIC02OCw2ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Rm9udEJvb3N0aW5nRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmF1
bHRUZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFdlYlN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RGV2aWNlU3VwcG9ydHNUb3VjaChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dERldmljZVN1cHBvcnRzTW91c2UoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZh
U2NyaXB0RW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFdlYlNlY3VyaXR5
RW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKaW5kZXggNTM1MTA0YjlkNDVjYzQ4YmZlYjQ4M2Zm
NGY0YmI4ZDY4MWNhYTQ5ZS4uMjljNGQ5YzEzMDQyYzFhMjg0Y2NkYTlmMDVjOTZkYmQwZTkwZGQ1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3Bw
CkBAIC0xMjksNiArMTI5LDExIEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXREZXZpY2VTdXBw
b3J0c1RvdWNoKGJvb2wgZGV2aWNlU3VwcG9ydHNUb3VjaCkKICAgICBtX3NldHRpbmdzLT5zZXRE
ZXZpY2VTdXBwb3J0c1RvdWNoKGRldmljZVN1cHBvcnRzVG91Y2gpOwogfQogCit2b2lkIFdlYlNl
dHRpbmdzSW1wbDo6c2V0RGV2aWNlU3VwcG9ydHNNb3VzZShib29sIGRldmljZVN1cHBvcnRzTW91
c2UpCit7CisgICAgbV9zZXR0aW5ncy0+c2V0RGV2aWNlU3VwcG9ydHNNb3VzZShkZXZpY2VTdXBw
b3J0c01vdXNlKTsKK30KKwogYm9vbCBXZWJTZXR0aW5nc0ltcGw6OmRldmljZVN1cHBvcnRzVG91
Y2goKQogewogICAgIHJldHVybiBtX3NldHRpbmdzLT5kZXZpY2VTdXBwb3J0c1RvdWNoKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCmluZGV4IDcyOTIw
MDVjYzc5Y2NhZjVjZmJjMDc4MzMxZDA5Y2YxZGY5ZTNlNjAuLmE1ZDE3MmIxYWUzZThjOGI5MDc0
OWY1M2NlYjllYmFiYWU3NDEyMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNldHRpbmdzSW1wbC5oCkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Rm9udEJvb3N0aW5nRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVm
YXVsdFRleHRFbmNvZGluZ05hbWUoY29uc3QgV2ViU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lk
IHNldERldmljZVN1cHBvcnRzVG91Y2goYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNldERldmlj
ZVN1cHBvcnRzTW91c2UoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIGRldmljZVN1cHBvcnRzVG91
Y2goKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdEVuYWJsZWQoYm9vbCk7CiAgICAg
dmlydHVhbCB2b2lkIHNldFdlYlNlY3VyaXR5RW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1ZWQxNWRi
YTFlYzNlZGQ3MWRjZDU4MmQ0MjY2MDUxYjg4NmEwZTY0Li5jZDc3NTdmYjM0ZGZkNzFkZGZhNGFk
OTc1ZDI5MGRhZDVhMmZmOTU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYtMDQgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBFdmVudEhhbmRsZXIgc2hv
dWxkbid0IGRpc3BhdGNoIGZha2UgbW91c2Vtb3ZlIGV2ZW50cyB3aGVuIHNjcm9sbGluZyBvbiBk
ZXZpY2VzIHRoYXQgZG9uJ3QgaGF2ZSBhIG1vdXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODI3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvc2Nyb2xsLXdpdGhvdXQt
bW91c2UtbGFja3MtbW91c2Vtb3ZlLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3RvdWNoL3Njcm9sbC13aXRob3V0LW1vdXNlLWxhY2tzLW1vdXNlbW92
ZS1ldmVudHMuaHRtbDogQWRkZWQuCisKIDIwMTItMDYtMDQgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgYXJndW1lbnRzIHNpbXBsaWZpY2F0aW9uIHRha2Vz
IHVua2luZGx5IHRvIGRpcmVjdCBhY2Nlc3NlcyB0byB0aGUgYXJndW1lbnRzIHJlZ2lzdGVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JvbGwtd2l0aG91dC1t
b3VzZS1sYWNrcy1tb3VzZW1vdmUtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL3Njcm9sbC13aXRob3V0LW1vdXNlLWxhY2tzLW1vdXNlbW92ZS1ldmVu
dHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5MjQ0OTRmZWU1Zjc3NTk1NmMzNzM2N2Q1MmNm
MWRiNzcyODYyODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9zY3JvbGwtd2l0aG91dC1tb3VzZS1sYWNrcy1tb3VzZW1vdmUtZXZlbnRzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDIgQEAKK1RoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBhbGVy
dCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29yZCAiZmFpbCIuCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3Njcm9sbC13aXRob3V0LW1vdXNlLWxhY2tzLW1v
dXNlbW92ZS1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3Njcm9s
bC13aXRob3V0LW1vdXNlLWxhY2tzLW1vdXNlbW92ZS1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
ZjUwYzY3YTI0N2QxMmRjNjYzY2YzZGNjODdiMzNkZGIyZWRkMmIyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2Nyb2xsLXdpdGhvdXQtbW91c2UtbGFj
a3MtbW91c2Vtb3ZlLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldERldmljZVN1cHBvcnRzVG91Y2godHJ1ZSk7Citl
bHNlCisgICAgYWxlcnQoIlRoaXMgdGVzdCByZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzIik7CisK
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsaXN0ZW5lcigpIHsKKyAgICBhbGVydCgiRkFJ
TDogUmVjZWl2ZWQgbW91c2Vtb3ZlIGV2ZW50LiIpOworICAgIHdpbmRvdy5yZW1vdmVFdmVudExp
c3RlbmVyKCJtb3VzZW1vdmUiLCBsaXN0ZW5lciwgZmFsc2UpOworfQorCit3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgbGlzdGVuZXIsIGZhbHNlKTsKKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+CitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgYWxlcnQgYSBtZXNz
YWdlIGNvbnRhaW5pbmcgdGhlIHdvcmQgImZhaWwiLgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1j
b2xvcjogYmx1ZTsgaGVpZ2h0OiAxMDAwcHgiPjwvZGl2PgorPHNjcmlwdD4KK3dpbmRvdy5zY3Jv
bGxUbygwLCA1MDApOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145672</attachid>
            <date>2012-06-04 18:16:19 -0700</date>
            <delta_ts>2012-06-05 00:39:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88270-20120604181619.patch</filename>
            <type>text/plain</type>
            <size>13018</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmJjOThkMTVmY2FkYTUz
NWE4Y2FkODIzNTI3N2VkZTBmMmVkNTA0ZS4uY2UwZGE5Njg2M2E3NWVjNTI0MjA3NzNmMjU0NWJl
ZjNjNjM3NmQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA2LTA0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRXZlbnRIYW5kbGVyIHNob3Vs
ZG4ndCBkaXNwYXRjaCBmYWtlIG1vdXNlbW92ZSBldmVudHMgd2hlbiBzY3JvbGxpbmcgb24gZGV2
aWNlcyB0aGF0IGRvbid0IGhhdmUgYSBtb3VzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgyNzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBzZXR0aW5nIGFuYWxvZ291cyB0
byBkZXZpY2VTdXBwb3J0c1RvdWNoIHRvIGRldGVybWluZQorICAgICAgICB3aGV0aGVyIHRoZSBk
ZXZpY2Ugc3VwcG9ydHMgbW91c2UuIFdlIHRoZW4gZG9uJ3QgZGlzcGF0Y2ggZmFrZSBtb3VzZQor
ICAgICAgICBldmVudHMgb24gZGV2aWNlcyB0aGF0IGRvbid0IGhhdmUgYSBtb3VzZSBpbiB0aGUg
Zmlyc3QgcGxhY2UuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvdG91Y2gvc2Nyb2xsLXdp
dGhvdXQtbW91c2UtbGFja3MtbW91c2Vtb3ZlLWV2ZW50cy5odG1sCisKKyAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZha2VN
b3VzZU1vdmVFdmVudFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKiBwYWdlL1Nl
dHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0RGV2aWNlU3VwcG9ydHNN
b3VzZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6ZGV2aWNlU3VwcG9ydHNNb3VzZSk6
CisgICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkludGVybmFsU2V0dGlu
Z3MpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6cmVzdG9yZVRvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldERldmljZVN1cHBvcnRzTW91c2Up
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
Lmg6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaWRsOgorCiAyMDEyLTA2LTA0ICBBbmRyZXcgTG8gIDxhbmxvQHJpbS5jb20+
CiAKICAgICAgICAgW0JsYWNrQmVycnldIFNwbGl0IEFuaW1hdGlvbkZyYW1lUmF0ZUNvbnRyb2xs
ZXIgaW50byBpdHMgb3duIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYmZlOGE0
Yjk4ZTE3MGQwYWI0MzE0ODg5MGVlYzU1ODYxNGE3OTYwMC4uZDZmOWYwYmQ4NDEwZGY0ZjA0MDAw
MjhkMGY1ZDliZTVlYjI0Y2UxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMi0wNi0wNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisg
ICAgICAgIEV2ZW50SGFuZGxlciBzaG91bGRuJ3QgZGlzcGF0Y2ggZmFrZSBtb3VzZW1vdmUgZXZl
bnRzIHdoZW4gc2Nyb2xsaW5nIG9uIGRldmljZXMgdGhhdCBkb24ndCBoYXZlIGEgbW91c2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MjcwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2Vi
U2V0dGluZ3MuaDoKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXREZXZpY2VTdXBwb3J0c01vdXNlKToKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgorICAgICAgICAo
V2ViU2V0dGluZ3NJbXBsKToKKwogMjAxMi0wNi0wNCAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFsbG93IENDTGF5ZXJJbXBsIHRvIGZp
bmQgaXRzIGxheWVyIHRyZWUgaG9zdCwgYW5kIHVzZSB0aGlzIGZvciBDQ1ZpZGVvTGF5ZXJJbXBs
IGluc3RlYWQgb2YgYWx3YXlzLW51bGwgcG9pbnRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAppbmRleCAxN2YyYTVlNGM1OWQ4ZGZkMjlmZGQ2NGRlYmY1MTVlMjExODhkMjZhLi5l
ODlhNGM3ZTYxZGQ1ZWZkMTJmYmE4YWM2M2FhNGFlMWI3YzFjY2YzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yNjY0LDYgKzI2NjQsMTAgQEAgdm9pZCBFdmVudEhhbmRs
ZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQoVGltZXI8RXZlbnRIYW5kbGVyPiogdGlt
ZXIpCiAgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fZmFrZU1vdXNlTW92ZUV2
ZW50VGltZXIpOwogICAgIEFTU0VSVCghbV9tb3VzZVByZXNzZWQpOwogCisgICAgU2V0dGluZ3Mq
IHNldHRpbmdzID0gbV9mcmFtZS0+c2V0dGluZ3MoKTsKKyAgICBpZiAoc2V0dGluZ3MgJiYgIXNl
dHRpbmdzLT5kZXZpY2VTdXBwb3J0c01vdXNlKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIEZy
YW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKTsKICAgICBpZiAoIXZpZXcpCiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggOGI3YjFkNzdhMDFkNDBjZjBl
MjkwZjVjYzcxM2MwMmU1MWRmN2E2ZC4uNWZlOWM5ODRmMTUxNGI2NDU1NjY3MDFkZTJjY2ZjZjc1
ZDZmOThmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTI3MSw2ICsyNzEsNyBAQCBT
ZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fd2FudHNCYWxhbmNlZFNldERl
ZmVyc0xvYWRpbmdCZWhhdmlvcihmYWxzZSkKICAgICAsIG1fcmVxdWVzdEFuaW1hdGlvbkZyYW1l
RW5hYmxlZCh0cnVlKQogICAgICwgbV9kZXZpY2VTdXBwb3J0c1RvdWNoKGZhbHNlKQorICAgICwg
bV9kZXZpY2VTdXBwb3J0c01vdXNlKHRydWUpCiAgICAgLCBtX25lZWRzRGlkRmluaXNoTG9hZE9y
ZGVyUXVpcmsoZmFsc2UpCiAgICAgLCBtX2ZpeGVkUG9zaXRpb25DcmVhdGVzU3RhY2tpbmdDb250
ZXh0KGZhbHNlKQogICAgICwgbV9zeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkKHRydWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmgKaW5kZXggZmIxY2QzZmVmYTFlNjY3MzQ1MDE2MGRmNzMxZjg1ZDQ0MTIx
YzY1Ny4uN2YxZWNhN2RiZDEzOTQ1ODdkZTcyZjAxZjdhNWZiN2M1YjViNTM5OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaApAQCAtNTc4LDYgKzU3OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdm9pZCBzZXREZXZpY2VTdXBwb3J0c1RvdWNoKGJvb2wgZW5hYmxlZCkgeyBtX2Rldmlj
ZVN1cHBvcnRzVG91Y2ggPSBlbmFibGVkOyB9CiAgICAgICAgIGJvb2wgZGV2aWNlU3VwcG9ydHNU
b3VjaCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlU3VwcG9ydHNUb3VjaDsgfQogCisgICAgICAg
IHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNNb3VzZShib29sIGVuYWJsZWQpIHsgbV9kZXZpY2VTdXBw
b3J0c01vdXNlID0gZW5hYmxlZDsgfQorICAgICAgICBib29sIGRldmljZVN1cHBvcnRzTW91c2Uo
KSBjb25zdCB7IHJldHVybiBtX2RldmljZVN1cHBvcnRzTW91c2U7IH0KKwogICAgICAgICB2b2lk
IHNldE5lZWRzRGlkRmluaXNoTG9hZE9yZGVyUXVpcmsoYm9vbCBuZWVkc1F1aXJrKSB7IG1fbmVl
ZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWlyayA9IG5lZWRzUXVpcms7IH0KICAgICAgICAgYm9vbCBu
ZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0RpZEZp
bmlzaExvYWRPcmRlclF1aXJrOyB9CiAKQEAgLTc2Myw2ICs3NjYsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIGJvb2wgbV93YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2
aW9yIDogMTsKICAgICAgICAgYm9vbCBtX3JlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQgOiAx
OwogICAgICAgICBib29sIG1fZGV2aWNlU3VwcG9ydHNUb3VjaCA6IDE7CisgICAgICAgIGJvb2wg
bV9kZXZpY2VTdXBwb3J0c01vdXNlIDogMTsKICAgICAgICAgYm9vbCBtX25lZWRzRGlkRmluaXNo
TG9hZE9yZGVyUXVpcmsgOiAxOwogCiAgICAgICAgIGJvb2wgbV9maXhlZFBvc2l0aW9uQ3JlYXRl
c1N0YWNraW5nQ29udGV4dCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcAppbmRleCA3NTM2YjUwODFlMWI3OGRlMjA0ZWVlMjYwODQ1ZmJmN2Y2MWIzZGQ4
Li5lNGQwNjFlMjg1Y2UxNjQyNWZkOTY4Y2IzMGZlNTFiZTIwMzMyN2NmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTEwNiw2ICsxMDYsNyBAQCBJ
bnRlcm5hbFNldHRpbmdzOjpJbnRlcm5hbFNldHRpbmdzKEZyYW1lKiBmcmFtZSkKICNlbmRpZgog
ICAgICwgbV9vcmlnaW5hbFdpbmRvd0ZvY3VzUmVzdHJpY3RlZChzZXR0aW5ncygpLT53aW5kb3dG
b2N1c1Jlc3RyaWN0ZWQoKSkKICAgICAsIG1fb3JpZ2luYWxEZXZpY2VTdXBwb3J0c1RvdWNoKHNl
dHRpbmdzKCktPmRldmljZVN1cHBvcnRzVG91Y2goKSkKKyAgICAsIG1fb3JpZ2luYWxEZXZpY2VT
dXBwb3J0c01vdXNlKHNldHRpbmdzKCktPmRldmljZVN1cHBvcnRzTW91c2UoKSkKIHsKIH0KIApA
QCAtMTI2LDYgKzEyNyw3IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6cmVzdG9yZVRvKFNldHRp
bmdzKiBzZXR0aW5ncykKICNlbmRpZgogICAgIHNldHRpbmdzLT5zZXRXaW5kb3dGb2N1c1Jlc3Ry
aWN0ZWQobV9vcmlnaW5hbFdpbmRvd0ZvY3VzUmVzdHJpY3RlZCk7CiAgICAgc2V0dGluZ3MtPnNl
dERldmljZVN1cHBvcnRzVG91Y2gobV9vcmlnaW5hbERldmljZVN1cHBvcnRzVG91Y2gpOworICAg
IHNldHRpbmdzLT5zZXREZXZpY2VTdXBwb3J0c01vdXNlKG1fb3JpZ2luYWxEZXZpY2VTdXBwb3J0
c01vdXNlKTsKIH0KIAogU2V0dGluZ3MqIEludGVybmFsU2V0dGluZ3M6OnNldHRpbmdzKCkgY29u
c3QKQEAgLTI2OCw2ICsyNzAsMTIgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXREZXZpY2VT
dXBwb3J0c1RvdWNoKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgc2V0dGlu
Z3MoKS0+c2V0RGV2aWNlU3VwcG9ydHNUb3VjaChlbmFibGVkKTsKIH0KIAordm9pZCBJbnRlcm5h
bFNldHRpbmdzOjpzZXREZXZpY2VTdXBwb3J0c01vdXNlKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9u
Q29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKKyAg
ICBzZXR0aW5ncygpLT5zZXREZXZpY2VTdXBwb3J0c01vdXNlKGVuYWJsZWQpOworfQorCiB2b2lk
IEludGVybmFsU2V0dGluZ3M6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9y
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0
aW5ncygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCAy
M2I5ZmYxZjAyNzI4YTUwNjc3NDVlYWRmMzM3YTdlNjFjY2YwYmI3Li40ZmU4MjI2MzViNzViZDMy
NzM0YjYyZTUwMDY0NjZkNWQ3OGYwZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQZXJU
aWxlRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBzZXRUb3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICB2b2lkIHNldERldmljZVN1cHBvcnRzVG91Y2goYm9vbCBlbmFibGVkLCBFeGNl
cHRpb25Db2RlJik7CisgICAgdm9pZCBzZXREZXZpY2VTdXBwb3J0c01vdXNlKGJvb2wgZW5hYmxl
ZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQg
c2NhbGVGYWN0b3IsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFNoYWRvd0RPTUVuYWJs
ZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRTdGFuZGFyZEZv
bnRGYW1pbHkoY29uc3QgU3RyaW5nJiBmYW1pbHksIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBFeGNl
cHRpb25Db2RlJik7CkBAIC0xMDcsNiArMTA4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIGJv
b2wgbV9vcmlnaW5hbFdpbmRvd0ZvY3VzUmVzdHJpY3RlZDsKICAgICBib29sIG1fb3JpZ2luYWxE
ZXZpY2VTdXBwb3J0c1RvdWNoOworICAgIGJvb2wgbV9vcmlnaW5hbERldmljZVN1cHBvcnRzTW91
c2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCBmZjM1YTgyOTBjOTc1NzNiZmZjMTNlOTEyNGJm
YWYxOTYxZWQ3ZjNjLi40MjdmOTQ4OTM5M2Q0YWUwZjRjZDU0MTg5Y2RiNjVkYzI0MjBkOGU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTQyLDYg
KzQyLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9y
KGluIGZsb2F0IHNjYWxlRmFjdG9yLCBpbiBsb25nIHgsIGluIGxvbmcgeSkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0VG91Y2hFdmVudEVtdWxhdGlvbkVuYWJsZWQoaW4g
Ym9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRE
ZXZpY2VTdXBwb3J0c1RvdWNoKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNNb3VzZShpbiBib29sZWFuIGVuYWJs
ZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldERldmljZVNjYWxlRmFj
dG9yKGluIGZsb2F0IHNjYWxlRmFjdG9yKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
dm9pZCBzZXRTaGFkb3dET01FbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0U3RhbmRhcmRGb250RmFtaWx5KGluIERPTVN0cmlu
ZyBmYW1pbHksIGluIERPTVN0cmluZyBzY3JpcHQpIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggZDZlMDY1ODFk
MGYyYjFiNmQ0YTA0YjU4MDg3YWE4ZWQ2YzFiYTljNy4uZGQ3NDEyZGE1OTJiZDYzMDc1MWU3YTI4
YzM5NGFkZTQ2M2EzYjk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJT
ZXR0aW5ncy5oCkBAIC02OCw2ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Rm9udEJvb3N0aW5nRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmF1
bHRUZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFdlYlN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RGV2aWNlU3VwcG9ydHNUb3VjaChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dERldmljZVN1cHBvcnRzTW91c2UoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRKYXZh
U2NyaXB0RW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFdlYlNlY3VyaXR5
RW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKaW5kZXggNTM1MTA0YjlkNDVjYzQ4YmZlYjQ4M2Zm
NGY0YmI4ZDY4MWNhYTQ5ZS4uMjljNGQ5YzEzMDQyYzFhMjg0Y2NkYTlmMDVjOTZkYmQwZTkwZGQ1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3Bw
CkBAIC0xMjksNiArMTI5LDExIEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXREZXZpY2VTdXBw
b3J0c1RvdWNoKGJvb2wgZGV2aWNlU3VwcG9ydHNUb3VjaCkKICAgICBtX3NldHRpbmdzLT5zZXRE
ZXZpY2VTdXBwb3J0c1RvdWNoKGRldmljZVN1cHBvcnRzVG91Y2gpOwogfQogCit2b2lkIFdlYlNl
dHRpbmdzSW1wbDo6c2V0RGV2aWNlU3VwcG9ydHNNb3VzZShib29sIGRldmljZVN1cHBvcnRzTW91
c2UpCit7CisgICAgbV9zZXR0aW5ncy0+c2V0RGV2aWNlU3VwcG9ydHNNb3VzZShkZXZpY2VTdXBw
b3J0c01vdXNlKTsKK30KKwogYm9vbCBXZWJTZXR0aW5nc0ltcGw6OmRldmljZVN1cHBvcnRzVG91
Y2goKQogewogICAgIHJldHVybiBtX3NldHRpbmdzLT5kZXZpY2VTdXBwb3J0c1RvdWNoKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCmluZGV4IDcyOTIw
MDVjYzc5Y2NhZjVjZmJjMDc4MzMxZDA5Y2YxZGY5ZTNlNjAuLmE1ZDE3MmIxYWUzZThjOGI5MDc0
OWY1M2NlYjllYmFiYWU3NDEyMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNldHRpbmdzSW1wbC5oCkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Rm9udEJvb3N0aW5nRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVm
YXVsdFRleHRFbmNvZGluZ05hbWUoY29uc3QgV2ViU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lk
IHNldERldmljZVN1cHBvcnRzVG91Y2goYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNldERldmlj
ZVN1cHBvcnRzTW91c2UoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIGRldmljZVN1cHBvcnRzVG91
Y2goKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SmF2YVNjcmlwdEVuYWJsZWQoYm9vbCk7CiAgICAg
dmlydHVhbCB2b2lkIHNldFdlYlNlY3VyaXR5RW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1ZWQxNWRi
YTFlYzNlZGQ3MWRjZDU4MmQ0MjY2MDUxYjg4NmEwZTY0Li5jZDc3NTdmYjM0ZGZkNzFkZGZhNGFk
OTc1ZDI5MGRhZDVhMmZmOTU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYtMDQgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBFdmVudEhhbmRsZXIgc2hv
dWxkbid0IGRpc3BhdGNoIGZha2UgbW91c2Vtb3ZlIGV2ZW50cyB3aGVuIHNjcm9sbGluZyBvbiBk
ZXZpY2VzIHRoYXQgZG9uJ3QgaGF2ZSBhIG1vdXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODI3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvc2Nyb2xsLXdpdGhvdXQt
bW91c2UtbGFja3MtbW91c2Vtb3ZlLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3RvdWNoL3Njcm9sbC13aXRob3V0LW1vdXNlLWxhY2tzLW1vdXNlbW92
ZS1ldmVudHMuaHRtbDogQWRkZWQuCisKIDIwMTItMDYtMDQgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgYXJndW1lbnRzIHNpbXBsaWZpY2F0aW9uIHRha2Vz
IHVua2luZGx5IHRvIGRpcmVjdCBhY2Nlc3NlcyB0byB0aGUgYXJndW1lbnRzIHJlZ2lzdGVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JvbGwtd2l0aG91dC1t
b3VzZS1sYWNrcy1tb3VzZW1vdmUtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL3Njcm9sbC13aXRob3V0LW1vdXNlLWxhY2tzLW1vdXNlbW92ZS1ldmVu
dHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5MjQ0OTRmZWU1Zjc3NTk1NmMzNzM2N2Q1MmNm
MWRiNzcyODYyODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90
b3VjaC9zY3JvbGwtd2l0aG91dC1tb3VzZS1sYWNrcy1tb3VzZW1vdmUtZXZlbnRzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDIgQEAKK1RoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBhbGVy
dCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29yZCAiZmFpbCIuCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3Njcm9sbC13aXRob3V0LW1vdXNlLWxhY2tzLW1v
dXNlbW92ZS1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3Njcm9s
bC13aXRob3V0LW1vdXNlLWxhY2tzLW1vdXNlbW92ZS1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YWNjMTZjYzg4ZDdlMDAxYmM2MGI2YzAwMzczYTA1OWRmMGUzNGZmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2Nyb2xsLXdpdGhvdXQtbW91c2UtbGFj
a3MtbW91c2Vtb3ZlLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldERldmljZVN1cHBvcnRzTW91c2UoZmFsc2UpOwor
ZWxzZQorICAgIGFsZXJ0KCJUaGlzIHRlc3QgcmVxdWlyZXMgd2luZG93LmludGVybmFscyIpOwor
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKK30KKworZnVuY3Rpb24gbGlzdGVuZXIoKSB7CisgICAgYWxlcnQoIkZBSUw6IFJlY2Vp
dmVkIG1vdXNlbW92ZSBldmVudC4iKTsKKyAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigi
bW91c2Vtb3ZlIiwgbGlzdGVuZXIsIGZhbHNlKTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoIm1vdXNlbW92ZSIsIGxpc3RlbmVyLCBmYWxzZSk7CisKK3dpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCJzY3JvbGwiLCBmdW5jdGlvbigpIHsKKyAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlv
bigpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0s
IDIwMCk7Cit9LCBmYWxzZSk7CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRl
c3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgYWxlcnQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIHdv
cmQgImZhaWwiLgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsgaGVpZ2h0OiAx
MDAwcHgiPjwvZGl2PgorPHNjcmlwdD4KK3dpbmRvdy5zY3JvbGxUbygwLCA1MDApOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>