<?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>92914</bug_id>
          
          <creation_ts>2012-08-01 15:15:13 -0700</creation_ts>
          <short_desc>Apply target fuzzing when sending a context menu event</short_desc>
          <delta_ts>2012-08-03 12:50:00 -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>UI Events</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>
          <dependson>92911</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Terry Anderson">tdanderson</reporter>
          <assigned_to name="Terry Anderson">tdanderson</assigned_to>
          <cc>abarth</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>hugo.lima</cc>
    
    <cc>kenneth</cc>
    
    <cc>kevers</cc>
    
    <cc>rbyers</cc>
    
    <cc>rjkroege</cc>
    
    <cc>sadrul</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>684638</commentid>
    <comment_count>0</comment_count>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-08-01 15:15:13 -0700</bug_when>
    <thetext>If TOUCH_ADJUSTMENT is enabled, use bestClickableNodeForTouchPoint to possibly adjust the location of a context menu event. This change uses the same set of candidates for touch adjustment as is used for a GestureTap event (which admittedly is a simplifying assumption).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684654</commentid>
    <comment_count>1</comment_count>
      <attachid>155902</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-08-01 15:28:50 -0700</bug_when>
    <thetext>Created attachment 155902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684655</commentid>
    <comment_count>2</comment_count>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-08-01 15:29:52 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=155902) [details]
&gt; Patch

I have not yet added tests, so this patch is only for initial discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684756</commentid>
    <comment_count>3</comment_count>
      <attachid>155920</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-08-01 16:34:53 -0700</bug_when>
    <thetext>Created attachment 155920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685102</commentid>
    <comment_count>4</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-08-02 01:47:46 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; If TOUCH_ADJUSTMENT is enabled, use bestClickableNodeForTouchPoint to possibly adjust the location of a context menu event. This change uses the same set of candidates for touch adjustment as is used for a GestureTap event (which admittedly is a simplifying assumption).

That is a good start, if we want better targets later we can use the same algorithm but with a more specific filter. 

Specifically though, I guess the current implementation will miss elements with oncontextmenu event handlers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685343</commentid>
    <comment_count>5</comment_count>
      <attachid>155920</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-08-02 07:13:09 -0700</bug_when>
    <thetext>Comment on attachment 155920
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        If TOUCH_ADJUSTMENT is enabled, use bestClickableNodeForTouchPoint to possibly
&gt; +        adjust the location of a context menu event. This change uses the same set of
&gt; +        candidates for touch adjustment as is used for a GestureTap event (which
&gt; +        admittedly is a simplifying assumption).

I am going to tell you: if you do care about touch and hold entering text selection (i.e. make a #text a target) that won&apos;t work as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685439</commentid>
    <comment_count>6</comment_count>
      <attachid>155920</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-08-02 08:41:56 -0700</bug_when>
    <thetext>Comment on attachment 155920
Patch

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

&gt; Source/WebCore/page/EventHandler.h:173
&gt; +    bool adjustGesturePosition(const PlatformGestureEvent&amp;, IntPoint&amp; adjustedPoint);

You might want to add a Gesture Type parameter to adjustGesturePosition, so it later will be able to choose the correct touch-adjustment algorithm or filter to use.

The parameter might not be used yet, but you could explain that in a FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685733</commentid>
    <comment_count>7</comment_count>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-08-02 13:31:45 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 155920 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=155920&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.h:173
&gt; &gt; +    bool adjustGesturePosition(const PlatformGestureEvent&amp;, IntPoint&amp; adjustedPoint);
&gt; 
&gt; You might want to add a Gesture Type parameter to adjustGesturePosition, so it later will be able to choose the correct touch-adjustment algorithm or filter to use.
&gt; 
&gt; The parameter might not be used yet, but you could explain that in a FIXME.

Good suggestion. I will add a FIXME to explain this but will hold off on adding the parameter until it is actually going to be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685764</commentid>
    <comment_count>8</comment_count>
      <attachid>156155</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-08-02 13:45:29 -0700</bug_when>
    <thetext>Created attachment 156155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685775</commentid>
    <comment_count>9</comment_count>
      <attachid>156155</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-08-02 13:51:34 -0700</bug_when>
    <thetext>Comment on attachment 156155
Patch

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

&gt; Source/WebCore/page/EventHandler.cpp:2542
&gt; +    return (targetNode);

no () needed

&gt; LayoutTests/touchadjustment/touch-links-longpress.html:42
&gt; +    function testLongPress(touchpoint)
&gt; +    {
&gt; +        if (eventSender.gestureLongPress)
&gt; +            eventSender.gestureLongPress(touchpoint.left, touchpoint.top);
&gt; +        else
&gt; +            debug(&quot;gestureLongPress not implemented by this platform.&quot;);
&gt; +    }

does it mean it will pass on chromium only?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685784</commentid>
    <comment_count>10</comment_count>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-08-02 13:59:22 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 156155 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=156155&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:2542
&gt; &gt; +    return (targetNode);
&gt; 
&gt; no () needed

I will update this in my next patch.

&gt; 
&gt; &gt; LayoutTests/touchadjustment/touch-links-longpress.html:42
&gt; &gt; +    function testLongPress(touchpoint)
&gt; &gt; +    {
&gt; &gt; +        if (eventSender.gestureLongPress)
&gt; &gt; +            eventSender.gestureLongPress(touchpoint.left, touchpoint.top);
&gt; &gt; +        else
&gt; &gt; +            debug(&quot;gestureLongPress not implemented by this platform.&quot;);
&gt; &gt; +    }
&gt; 
&gt; does it mean it will pass on chromium only?

Since it is in touchadjustment/ it will only be run by chromium and qt. But since I believe qt does not implement gestureLongPress, I expect it to fail. So I will go ahead and skip this in the qt TestExpectations file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685805</commentid>
    <comment_count>11</comment_count>
      <attachid>156164</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-08-02 14:10:22 -0700</bug_when>
    <thetext>Created attachment 156164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685819</commentid>
    <comment_count>12</comment_count>
      <attachid>156164</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-08-02 14:28:02 -0700</bug_when>
    <thetext>Comment on attachment 156164
Patch

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

&gt; LayoutTests/touchadjustment/touch-links-longpress.html:38
&gt; +        if (eventSender.gestureLongPress)

my previous question was more:

is gestureLongPress support by chromium only? Qt might fail and it is skipped,but what about mac,mac-win,gtk,efl,blackerry,etc?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685827</commentid>
    <comment_count>13</comment_count>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-08-02 14:31:25 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 156164 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=156164&amp;action=review
&gt; 
&gt; &gt; LayoutTests/touchadjustment/touch-links-longpress.html:38
&gt; &gt; +        if (eventSender.gestureLongPress)
&gt; 
&gt; my previous question was more:
&gt; 
&gt; is gestureLongPress support by chromium only? Qt might fail and it is skipped,but what about mac,mac-win,gtk,efl,blackerry,etc?

I am not sure whether or not the other platforms support gestureLongPress. But since this new test is inside of touchadjustment/ and only chromium and qt have this directory unskipped, there should be no failures on the other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686652</commentid>
    <comment_count>14</comment_count>
      <attachid>156164</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-08-03 06:46:16 -0700</bug_when>
    <thetext>Comment on attachment 156164
Patch

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

Looks good. I have two questions left:

&gt; Source/WebCore/page/EventHandler.cpp:2473
&gt; +    // For now we use the adjusted position to ensure the later redundant hit-tests hits the right node.

this comment reads  a bit strange to me.

&gt; Source/WebCore/page/EventHandler.cpp:2661
&gt; +    PlatformMouseEvent mouseEvent(adjustedPoint, event.globalPosition(), RightButton, eventType, 1, false, false, false, false, WTF::currentTime());

do we care about adjusting the globalPosition as well?

&gt;&gt;&gt; LayoutTests/touchadjustment/touch-links-longpress.html:38
&gt;&gt;&gt; +        if (eventSender.gestureLongPress)
&gt;&gt; 
&gt;&gt; my previous question was more:
&gt;&gt; 
&gt;&gt; is gestureLongPress support by chromium only? Qt might fail and it is skipped,but what about mac,mac-win,gtk,efl,blackerry,etc?
&gt; 
&gt; I am not sure whether or not the other platforms support gestureLongPress. But since this new test is inside of touchadjustment/ and only chromium and qt have this directory unskipped, there should be no failures on the other platforms.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686785</commentid>
    <comment_count>15</comment_count>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-08-03 08:46:19 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 156164 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=156164&amp;action=review
&gt; 
&gt; Looks good. I have two questions left:
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:2473
&gt; &gt; +    // For now we use the adjusted position to ensure the later redundant hit-tests hits the right node.
&gt; 
&gt; this comment reads  a bit strange to me.

This refers to the FIXME in EventHandler::handleGestureTap. I have moved the comment and changed the wording to hopefully make it a bit clearer.

&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:2661
&gt; &gt; +    PlatformMouseEvent mouseEvent(adjustedPoint, event.globalPosition(), RightButton, eventType, 1, false, false, false, false, WTF::currentTime());
&gt; 
&gt; do we care about adjusting the globalPosition as well?

Based on an IRC chat with Allan Jensen (carewolf), so far as we know the global position is not used, so it is not set in this patch or when creating the synthetic mouse events in EventHandler::handleGestureTap.

&gt; 
&gt; &gt;&gt;&gt; LayoutTests/touchadjustment/touch-links-longpress.html:38
&gt; &gt;&gt;&gt; +        if (eventSender.gestureLongPress)
&gt; &gt;&gt; 
&gt; &gt;&gt; my previous question was more:
&gt; &gt;&gt; 
&gt; &gt;&gt; is gestureLongPress support by chromium only? Qt might fail and it is skipped,but what about mac,mac-win,gtk,efl,blackerry,etc?
&gt; &gt; 
&gt; &gt; I am not sure whether or not the other platforms support gestureLongPress. But since this new test is inside of touchadjustment/ and only chromium and qt have this directory unskipped, there should be no failures on the other platforms.
&gt; 
&gt; Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686797</commentid>
    <comment_count>16</comment_count>
      <attachid>156391</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-08-03 08:55:46 -0700</bug_when>
    <thetext>Created attachment 156391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686801</commentid>
    <comment_count>17</comment_count>
      <attachid>156391</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-08-03 08:57:47 -0700</bug_when>
    <thetext>Comment on attachment 156391
Patch

The previous patch received an r+ from tonikitoo. Since there is a chromium change I will also need approval from abarth.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686840</commentid>
    <comment_count>18</comment_count>
      <attachid>156391</attachid>
    <who name="Terry Anderson">tdanderson</who>
    <bug_when>2012-08-03 09:36:21 -0700</bug_when>
    <thetext>Comment on attachment 156391
Patch

I will need to make some small changes now that https://bugs.webkit.org/show_bug.cgi?id=91012 is in the commit queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686967</commentid>
    <comment_count>19</comment_count>
      <attachid>156391</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-03 11:17:39 -0700</bug_when>
    <thetext>Comment on attachment 156391
Patch

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

&gt; Source/WebKit/chromium/src/WebInputEventConversion.cpp:168
&gt; +        m_area = IntSize(e.boundingBox.width, e.boundingBox.height);

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687052</commentid>
    <comment_count>20</comment_count>
      <attachid>156391</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-03 12:49:54 -0700</bug_when>
    <thetext>Comment on attachment 156391
Patch

Clearing flags on attachment: 156391

Committed r124642: &lt;http://trac.webkit.org/changeset/124642&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687053</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-03 12:50:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155902</attachid>
            <date>2012-08-01 15:28:50 -0700</date>
            <delta_ts>2012-08-01 16:34:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92914-20120801182832.patch</filename>
            <type>text/plain</type>
            <size>5117</size>
            <attacher name="Terry Anderson">tdanderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQzNTY1NDlkMmU0MzRi
YTE4OTY2ZmIwODg1ZTgxMjRhYjUzZDBhMy4uNDdhZjkyN2E0YTExM2I1NWU2YmYzZjRjZmE3NmZl
ZjU0NWYyYTdhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA4LTAxICBUZXJy
eSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFwcGx5IHRh
cmdldCBmdXp6aW5nIHdoZW4gc2VuZGluZyBhIGNvbnRleHQgbWVudSBldmVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI5MTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiBUT1VDSF9BREpVU1RNRU5U
IGlzIGVuYWJsZWQsIHVzZSBiZXN0Q2xpY2thYmxlTm9kZUZvclRvdWNoUG9pbnQgdG8gcG9zc2li
bHkKKyAgICAgICAgYWRqdXN0IHRoZSBsb2NhdGlvbiBvZiBhIGNvbnRleHQgbWVudSBldmVudC4g
VGhpcyBjaGFuZ2UgdXNlcyB0aGUgc2FtZSBzZXQgb2YKKyAgICAgICAgY2FuZGlkYXRlcyBmb3Ig
dG91Y2ggYWRqdXN0bWVudCBhcyBpcyB1c2VkIGZvciBhIEdlc3R1cmVUYXAgZXZlbnQgKHdoaWNo
CisgICAgICAgIGFkbWl0dGVkbHkgaXMgYSBzaW1wbGlmeWluZyBhc3N1bXB0aW9uKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZVRhcCk6
CisgICAgICAgIFNvbWUgY29kZSBtb3ZlZCB0byB0aGUgbmV3IGZ1bmN0aW9uIGFkanVzdEdlc3R1
cmVQb3NpdGlvbi4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjphZGp1c3RHZXN0dXJlUG9zaXRpb24pOgorICAgICAgICBBZGRlZCB0aGlzIGZ1bmN0
aW9uIHRvIGF2b2lkIHJlcGVhdGVkIGNvZGUgaW4gaGFuZGxlR2VzdHVyZVRhcCBhbmQKKyAgICAg
ICAgc2VuZENvbnRleHRNZW51RXZlbnRGb3JHZXN0dXJlLgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvckdlc3R1cmUpOgorICAgICAgICBUcnkg
dG8gYWRqdXN0IHRoZSBsb2NhdGlvbiBvZiB8bW91c2VFdmVudHwgdG8gY29ycmVzcG9uZCB0byB0
aGUgbW9zdAorICAgICAgICBwcm9iYWJsZSBnZXN0dXJlIHRhcmdldC4gSWYgbm8gc3VjaCB0YXJn
ZXQgZXhpc3RzLCB0aGUgbG9jYXRpb24gb2YKKyAgICAgICAgfG1vdXNlRXZlbnR8IGlzIHVuY2hh
bmdlZC4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAoRXZlbnRIYW5k
bGVyKToKKwogMjAxMi0wNy0zMSAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQ1NTIDIuMSBmYWlsdXJlOiBtYXJnaW4tY29sbGFwc2UtMDEyIGZhaWxzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMDYxZDgzMzBmNTY3ZjliYjQwNzI2MWU5
ZmJhNDlmMjE2MmMyNGNiOC4uYWQxZGYzNWZmNDg5MTc5MGU1YTVmMTdjYTk5ZmZjNzNjOTM4MTgy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjQ3MCwxMyArMjQ3MCw5
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlVGFwKGNvbnN0IFBsYXRmb3JtR2Vz
dHVyZUV2ZW50JiBnZXN0dXJlRXZlbnQpCiAgICAgLy8gRklYTUU6IFJlZmFjdG9yIHRoaXMgY29k
ZSB0byBub3QgaGl0IHRlc3QgbXVsdGlwbGUgdGltZXMuCiAgICAgSW50UG9pbnQgYWRqdXN0ZWRQ
b2ludCA9IGdlc3R1cmVFdmVudC5wb3NpdGlvbigpOwogI2lmIEVOQUJMRShUT1VDSF9BREpVU1RN
RU5UKQotICAgIGlmICghZ2VzdHVyZUV2ZW50LmFyZWEoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAg
Tm9kZSogdGFyZ2V0Tm9kZSA9IDA7Ci0gICAgICAgIC8vIEZvciBub3cgd2UgdXNlIHRoZSBhZGp1
c3RlZCBwb3NpdGlvbiB0byBlbnN1cmUgdGhlIGxhdGVyIHJlZHVuZGFudCBoaXQtdGVzdHMgaGl0
cyB0aGUgcmlnaHQgbm9kZS4KLSAgICAgICAgYmVzdENsaWNrYWJsZU5vZGVGb3JUb3VjaFBvaW50
KGdlc3R1cmVFdmVudC5wb3NpdGlvbigpLCBJbnRTaXplKGdlc3R1cmVFdmVudC5hcmVhKCkud2lk
dGgoKSAvIDIsIGdlc3R1cmVFdmVudC5hcmVhKCkuaGVpZ2h0KCkgLyAyKSwgYWRqdXN0ZWRQb2lu
dCwgdGFyZ2V0Tm9kZSk7Ci0gICAgICAgIGlmICghdGFyZ2V0Tm9kZSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9CisgICAgLy8gRm9yIG5vdyB3ZSB1c2UgdGhlIGFkanVzdGVkIHBv
c2l0aW9uIHRvIGVuc3VyZSB0aGUgbGF0ZXIgcmVkdW5kYW50IGhpdC10ZXN0cyBoaXRzIHRoZSBy
aWdodCBub2RlLgorICAgIGlmICghZ2VzdHVyZUV2ZW50LmFyZWEoKS5pc0VtcHR5KCkgJiYgIWFk
anVzdEdlc3R1cmVQb3NpdGlvbihnZXN0dXJlRXZlbnQsIGFkanVzdGVkUG9pbnQpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIAogICAgIGJvb2wgZGVmYXVsdFByZXZlbnRlZCA9IGZh
bHNlOwpAQCAtMjUzOCw2ICsyNTM0LDEzIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpiZXN0Wm9vbWFi
bGVBcmVhRm9yVG91Y2hQb2ludChjb25zdCBJbnRQb2ludCYgdG91Y2hDZW50ZXIsIGNvCiAgICAg
UmVmUHRyPFN0YXRpY0hhc2hTZXROb2RlTGlzdD4gbm9kZUxpc3QgPSBTdGF0aWNIYXNoU2V0Tm9k
ZUxpc3Q6OmFkb3B0KHJlc3VsdC5yZWN0QmFzZWRUZXN0UmVzdWx0KCkpOwogICAgIHJldHVybiBm
aW5kQmVzdFpvb21hYmxlQXJlYSh0YXJnZXROb2RlLCB0YXJnZXRBcmVhLCB0b3VjaENlbnRlciwg
dG91Y2hSZWN0LCAqbm9kZUxpc3QuZ2V0KCkpOwogfQorCitib29sIEV2ZW50SGFuZGxlcjo6YWRq
dXN0R2VzdHVyZVBvc2l0aW9uKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZl
bnQsIEludFBvaW50JiBhZGp1c3RlZFBvaW50KQoreworICAgIE5vZGUqIHRhcmdldE5vZGUgPSAw
OworICAgIGJlc3RDbGlja2FibGVOb2RlRm9yVG91Y2hQb2ludChnZXN0dXJlRXZlbnQucG9zaXRp
b24oKSwgSW50U2l6ZShnZXN0dXJlRXZlbnQuYXJlYSgpLndpZHRoKCkgLyAyLCBnZXN0dXJlRXZl
bnQuYXJlYSgpLmhlaWdodCgpIC8gMiksIGFkanVzdGVkUG9pbnQsIHRhcmdldE5vZGUpOworICAg
IHJldHVybiAodGFyZ2V0Tm9kZSk7Cit9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05URVhUX01F
TlVTKQpAQCAtMjY0OSw3ICsyNjUyLDE1IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4
dE1lbnVFdmVudEZvckdlc3R1cmUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGV2CiAjZWxz
ZQogICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUgZXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6TW91
c2VQcmVzc2VkOwogI2VuZGlmCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQoZXZl
bnQucG9zaXRpb24oKSwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgUmlnaHRCdXR0b24sIGV2ZW50
VHlwZSwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSk7
CisKKyAgICBJbnRQb2ludCBhZGp1c3RlZFBvaW50ID0gZXZlbnQucG9zaXRpb24oKTsKKyNpZiBF
TkFCTEUoVE9VQ0hfQURKVVNUTUVOVCkKKyAgICAvLyBVbmxpa2UgdGhlIEdlc3R1cmVUYXAgY2Fz
ZSwgd2Ugc3RpbGwgd2FudCB0byBoYW5kbGUgdGhlIGV2ZW50IGV2ZW4gaWYgfGFkanVzdGVkUG9p
bnR8CisgICAgLy8gZG9lcyBub3QgY2hhbmdlIGFzIGEgcmVzdWx0IG9mIGNhbGxpbmcgYWRqdXN0
R2VzdHVyZVBvc2l0aW9uLgorICAgIGlmICghZXZlbnQuYXJlYSgpLmlzRW1wdHkoKSkKKyAgICAg
ICAgYWRqdXN0R2VzdHVyZVBvc2l0aW9uKGV2ZW50LCBhZGp1c3RlZFBvaW50KTsKKyNlbmRpZgor
ICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KGFkanVzdGVkUG9pbnQsIGV2ZW50Lmds
b2JhbFBvc2l0aW9uKCksIFJpZ2h0QnV0dG9uLCBldmVudFR5cGUsIDEsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBXVEY6OmN1cnJlbnRUaW1lKCkpOwogICAgIHJldHVybiBzZW5kQ29udGV4
dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoR0VTVFVSRV9FVkVO
VFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCBlZTI2OTQ0MzNkYjFjMjc5OWQ1
MDRiMmQ0ODRmMDRlMzU0NzAzMGUzLi5hNzU3YWNkZjNkZmI5OWZiYjY2ZWQyY2QyMGQ1Zjc4NTlj
NDg2YzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTE3MCw2ICsxNzAsNyBA
QCBwdWJsaWM6CiAjaWYgRU5BQkxFKFRPVUNIX0FESlVTVE1FTlQpCiAgICAgYm9vbCBiZXN0Q2xp
Y2thYmxlTm9kZUZvclRvdWNoUG9pbnQoY29uc3QgSW50UG9pbnQmIHRvdWNoQ2VudGVyLCBjb25z
dCBJbnRTaXplJiB0b3VjaFJhZGl1cywgSW50UG9pbnQmIHRhcmdldFBvaW50LCBOb2RlKiYgdGFy
Z2V0Tm9kZSk7CiAgICAgYm9vbCBiZXN0Wm9vbWFibGVBcmVhRm9yVG91Y2hQb2ludChjb25zdCBJ
bnRQb2ludCYgdG91Y2hDZW50ZXIsIGNvbnN0IEludFNpemUmIHRvdWNoUmFkaXVzLCBJbnRSZWN0
JiB0YXJnZXRBcmVhLCBOb2RlKiYgdGFyZ2V0Tm9kZSk7CisgICAgYm9vbCBhZGp1c3RHZXN0dXJl
UG9zaXRpb24oY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmLCBJbnRQb2ludCYgYWRqdXN0ZWRQ
b2ludCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155920</attachid>
            <date>2012-08-01 16:34:53 -0700</date>
            <delta_ts>2012-08-02 13:45:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92914-20120801193434.patch</filename>
            <type>text/plain</type>
            <size>6534</size>
            <attacher name="Terry Anderson">tdanderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQzNTY1NDlkMmU0MzRi
YTE4OTY2ZmIwODg1ZTgxMjRhYjUzZDBhMy4uNDdhZjkyN2E0YTExM2I1NWU2YmYzZjRjZmE3NmZl
ZjU0NWYyYTdhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA4LTAxICBUZXJy
eSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFwcGx5IHRh
cmdldCBmdXp6aW5nIHdoZW4gc2VuZGluZyBhIGNvbnRleHQgbWVudSBldmVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI5MTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiBUT1VDSF9BREpVU1RNRU5U
IGlzIGVuYWJsZWQsIHVzZSBiZXN0Q2xpY2thYmxlTm9kZUZvclRvdWNoUG9pbnQgdG8gcG9zc2li
bHkKKyAgICAgICAgYWRqdXN0IHRoZSBsb2NhdGlvbiBvZiBhIGNvbnRleHQgbWVudSBldmVudC4g
VGhpcyBjaGFuZ2UgdXNlcyB0aGUgc2FtZSBzZXQgb2YKKyAgICAgICAgY2FuZGlkYXRlcyBmb3Ig
dG91Y2ggYWRqdXN0bWVudCBhcyBpcyB1c2VkIGZvciBhIEdlc3R1cmVUYXAgZXZlbnQgKHdoaWNo
CisgICAgICAgIGFkbWl0dGVkbHkgaXMgYSBzaW1wbGlmeWluZyBhc3N1bXB0aW9uKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZVRhcCk6
CisgICAgICAgIFNvbWUgY29kZSBtb3ZlZCB0byB0aGUgbmV3IGZ1bmN0aW9uIGFkanVzdEdlc3R1
cmVQb3NpdGlvbi4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjphZGp1c3RHZXN0dXJlUG9zaXRpb24pOgorICAgICAgICBBZGRlZCB0aGlzIGZ1bmN0
aW9uIHRvIGF2b2lkIHJlcGVhdGVkIGNvZGUgaW4gaGFuZGxlR2VzdHVyZVRhcCBhbmQKKyAgICAg
ICAgc2VuZENvbnRleHRNZW51RXZlbnRGb3JHZXN0dXJlLgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvckdlc3R1cmUpOgorICAgICAgICBUcnkg
dG8gYWRqdXN0IHRoZSBsb2NhdGlvbiBvZiB8bW91c2VFdmVudHwgdG8gY29ycmVzcG9uZCB0byB0
aGUgbW9zdAorICAgICAgICBwcm9iYWJsZSBnZXN0dXJlIHRhcmdldC4gSWYgbm8gc3VjaCB0YXJn
ZXQgZXhpc3RzLCB0aGUgbG9jYXRpb24gb2YKKyAgICAgICAgfG1vdXNlRXZlbnR8IGlzIHVuY2hh
bmdlZC4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAoRXZlbnRIYW5k
bGVyKToKKwogMjAxMi0wNy0zMSAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQ1NTIDIuMSBmYWlsdXJlOiBtYXJnaW4tY29sbGFwc2UtMDEyIGZhaWxzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGViM2Q4NjgxMGVjZGJkMWIxMWQ0NmViM2NjZDVkNjNi
YjM4MTFiNjMuLmQ3YjQyYzYyM2U0NWVmZmY4YThjMzkwYjI0YWQ1ZmZmMmQ3MDI5YWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDgtMDEgIFRlcnJ5
IEFuZGVyc29uICA8dGRhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQXBwbHkgdGFy
Z2V0IGZ1enppbmcgd2hlbiBzZW5kaW5nIGEgY29udGV4dCBtZW51IGV2ZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjkxNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gY29uc3RydWN0aW5nIGEg
UGxhdGZvcm1FdmVudDo6R2VzdHVyZUxvbmdQcmVzcyBpbiBXZWJJbnB1dEV2ZW50Q29udmVyc2lv
bi5jcHAsCisgICAgICAgIHVzZSB8Ym91bmRpbmdCb3h8IHRvIHNwZWNpZnkgfG1fYXJlYXwuCisK
KyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXI6OlBsYXRmb3JtR2VzdHVyZUV2ZW50QnVp
bGRlcik6CisKIDIwMTItMDgtMDEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUm9sbCBjaHJvbWl1bSBERVBTIHRvIDE0OTQxNi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAppbmRleCAwNjFkODMzMGY1NjdmOWJiNDA3MjYxZTlmYmE0OWYyMTYy
YzI0Y2I4Li5iOWYyOWE4MGQ3MGYxMWZlZTYxNzI1NjhjZWJjOGNjNmZhYmQ0MzgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yNDcwLDEzICsyNDcwLDkgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVUYXAoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQm
IGdlc3R1cmVFdmVudCkKICAgICAvLyBGSVhNRTogUmVmYWN0b3IgdGhpcyBjb2RlIHRvIG5vdCBo
aXQgdGVzdCBtdWx0aXBsZSB0aW1lcy4KICAgICBJbnRQb2ludCBhZGp1c3RlZFBvaW50ID0gZ2Vz
dHVyZUV2ZW50LnBvc2l0aW9uKCk7CiAjaWYgRU5BQkxFKFRPVUNIX0FESlVTVE1FTlQpCi0gICAg
aWYgKCFnZXN0dXJlRXZlbnQuYXJlYSgpLmlzRW1wdHkoKSkgewotICAgICAgICBOb2RlKiB0YXJn
ZXROb2RlID0gMDsKLSAgICAgICAgLy8gRm9yIG5vdyB3ZSB1c2UgdGhlIGFkanVzdGVkIHBvc2l0
aW9uIHRvIGVuc3VyZSB0aGUgbGF0ZXIgcmVkdW5kYW50IGhpdC10ZXN0cyBoaXRzIHRoZSByaWdo
dCBub2RlLgotICAgICAgICBiZXN0Q2xpY2thYmxlTm9kZUZvclRvdWNoUG9pbnQoZ2VzdHVyZUV2
ZW50LnBvc2l0aW9uKCksIEludFNpemUoZ2VzdHVyZUV2ZW50LmFyZWEoKS53aWR0aCgpIC8gMiwg
Z2VzdHVyZUV2ZW50LmFyZWEoKS5oZWlnaHQoKSAvIDIpLCBhZGp1c3RlZFBvaW50LCB0YXJnZXRO
b2RlKTsKLSAgICAgICAgaWYgKCF0YXJnZXROb2RlKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KKyAgICAvLyBGb3Igbm93IHdlIHVzZSB0aGUgYWRqdXN0ZWQgcG9zaXRpb24gdG8g
ZW5zdXJlIHRoZSBsYXRlciByZWR1bmRhbnQgaGl0LXRlc3RzIGhpdHMgdGhlIHJpZ2h0IG5vZGUu
CisgICAgaWYgKCFnZXN0dXJlRXZlbnQuYXJlYSgpLmlzRW1wdHkoKSAmJiAhYWRqdXN0R2VzdHVy
ZVBvc2l0aW9uKGdlc3R1cmVFdmVudCwgYWRqdXN0ZWRQb2ludCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKICNlbmRpZgogCiAgICAgYm9vbCBkZWZhdWx0UHJldmVudGVkID0gZmFsc2U7CkBAIC0y
NTM4LDYgKzI1MzQsMTMgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmJlc3Rab29tYWJsZUFyZWFGb3JU
b3VjaFBvaW50KGNvbnN0IEludFBvaW50JiB0b3VjaENlbnRlciwgY28KICAgICBSZWZQdHI8U3Rh
dGljSGFzaFNldE5vZGVMaXN0PiBub2RlTGlzdCA9IFN0YXRpY0hhc2hTZXROb2RlTGlzdDo6YWRv
cHQocmVzdWx0LnJlY3RCYXNlZFRlc3RSZXN1bHQoKSk7CiAgICAgcmV0dXJuIGZpbmRCZXN0Wm9v
bWFibGVBcmVhKHRhcmdldE5vZGUsIHRhcmdldEFyZWEsIHRvdWNoQ2VudGVyLCB0b3VjaFJlY3Qs
ICpub2RlTGlzdC5nZXQoKSk7CiB9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjphZGp1c3RHZXN0dXJl
UG9zaXRpb24oY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCwgSW50UG9p
bnQmIGFkanVzdGVkUG9pbnQpCit7CisgICAgTm9kZSogdGFyZ2V0Tm9kZSA9IDA7CisgICAgYmVz
dENsaWNrYWJsZU5vZGVGb3JUb3VjaFBvaW50KGdlc3R1cmVFdmVudC5wb3NpdGlvbigpLCBJbnRT
aXplKGdlc3R1cmVFdmVudC5hcmVhKCkud2lkdGgoKSAvIDIsIGdlc3R1cmVFdmVudC5hcmVhKCku
aGVpZ2h0KCkgLyAyKSwgYWRqdXN0ZWRQb2ludCwgdGFyZ2V0Tm9kZSk7CisgICAgcmV0dXJuICh0
YXJnZXROb2RlKTsKK30KICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0y
NjQ5LDcgKzI2NTIsMTMgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50
Rm9yR2VzdHVyZShjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZXYKICNlbHNlCiAgICAgUGxh
dGZvcm1FdmVudDo6VHlwZSBldmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7
CiAjZW5kaWYKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VFdmVudChldmVudC5wb3NpdGlv
bigpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpKTsKKworICAgIElu
dFBvaW50IGFkanVzdGVkUG9pbnQgPSBldmVudC5wb3NpdGlvbigpOworI2lmIEVOQUJMRShUT1VD
SF9BREpVU1RNRU5UKQorICAgIGlmICghZXZlbnQuYXJlYSgpLmlzRW1wdHkoKSkKKyAgICAgICAg
YWRqdXN0R2VzdHVyZVBvc2l0aW9uKGV2ZW50LCBhZGp1c3RlZFBvaW50KTsKKyNlbmRpZgorICAg
IFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KGFkanVzdGVkUG9pbnQsIGV2ZW50Lmdsb2Jh
bFBvc2l0aW9uKCksIFJpZ2h0QnV0dG9uLCBldmVudFR5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBXVEY6OmN1cnJlbnRUaW1lKCkpOwogICAgIHJldHVybiBzZW5kQ29udGV4dE1l
bnVFdmVudChtb3VzZUV2ZW50KTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoR0VTVFVSRV9FVkVOVFMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCBlZTI2OTQ0MzNkYjFjMjc5OWQ1MDRi
MmQ0ODRmMDRlMzU0NzAzMGUzLi5hNzU3YWNkZjNkZmI5OWZiYjY2ZWQyY2QyMGQ1Zjc4NTljNDg2
YzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTE3MCw2ICsxNzAsNyBAQCBw
dWJsaWM6CiAjaWYgRU5BQkxFKFRPVUNIX0FESlVTVE1FTlQpCiAgICAgYm9vbCBiZXN0Q2xpY2th
YmxlTm9kZUZvclRvdWNoUG9pbnQoY29uc3QgSW50UG9pbnQmIHRvdWNoQ2VudGVyLCBjb25zdCBJ
bnRTaXplJiB0b3VjaFJhZGl1cywgSW50UG9pbnQmIHRhcmdldFBvaW50LCBOb2RlKiYgdGFyZ2V0
Tm9kZSk7CiAgICAgYm9vbCBiZXN0Wm9vbWFibGVBcmVhRm9yVG91Y2hQb2ludChjb25zdCBJbnRQ
b2ludCYgdG91Y2hDZW50ZXIsIGNvbnN0IEludFNpemUmIHRvdWNoUmFkaXVzLCBJbnRSZWN0JiB0
YXJnZXRBcmVhLCBOb2RlKiYgdGFyZ2V0Tm9kZSk7CisgICAgYm9vbCBhZGp1c3RHZXN0dXJlUG9z
aXRpb24oY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmLCBJbnRQb2ludCYgYWRqdXN0ZWRQb2lu
dCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4
IDMzNDI4YzMyOTRmNjllNjM1MDRlNjRhZTllZDQyOGQ3ZWQ4MTkzMjguLmMwYWNhMmQ0OTNlZWMx
OGRhOTU5ZjM2OWQ1Yzk3MGE3YTg1OTZiNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTE2NSw2ICsxNjUs
NyBAQCBQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXI6OlBsYXRmb3JtR2VzdHVyZUV2ZW50QnVp
bGRlcihXaWRnZXQqIHdpZGdldCwgY29uc3QgVwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdl
YklucHV0RXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M6CiAgICAgICAgIG1fdHlwZSA9IFBsYXRmb3Jt
RXZlbnQ6Okdlc3R1cmVMb25nUHJlc3M7CisgICAgICAgIG1fYXJlYSA9IEludFNpemUoZS5ib3Vu
ZGluZ0JveC53aWR0aCwgZS5ib3VuZGluZ0JveC5oZWlnaHQpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdlYklucHV0RXZlbnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgogICAgICAgICBtX3R5cGUg
PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlUGluY2hCZWdpbjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156155</attachid>
            <date>2012-08-02 13:45:29 -0700</date>
            <delta_ts>2012-08-02 14:10:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92914-20120802164510.patch</filename>
            <type>text/plain</type>
            <size>11395</size>
            <attacher name="Terry Anderson">tdanderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMzMWYwZDRkZTk4ZDM2
OGUxNGExMzExZDM2NjljNjBjYTUzODFlMC4uYWZiN2ZmMWIxYWY1ZjZlYjcyM2U5MjAwNmJjMDM5
NjU2NmFiOTczOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA4LTAyICBUZXJy
eSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFwcGx5IHRh
cmdldCBmdXp6aW5nIHdoZW4gc2VuZGluZyBhIGNvbnRleHQgbWVudSBldmVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI5MTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiB0b3VjaGFkanVzdG1l
bnQvdG91Y2gtbGlua3MtbG9uZ3ByZXNzLmh0bWwKKworICAgICAgICBJZiBUT1VDSF9BREpVU1RN
RU5UIGlzIGVuYWJsZWQsIHVzZSBiZXN0Q2xpY2thYmxlTm9kZUZvclRvdWNoUG9pbnQgdG8gcG9z
c2libHkKKyAgICAgICAgYWRqdXN0IHRoZSBsb2NhdGlvbiBvZiBhIGNvbnRleHQgbWVudSBldmVu
dC4gVGhpcyBjaGFuZ2UgdXNlcyB0aGUgc2FtZSBzZXQgb2YKKyAgICAgICAgY2FuZGlkYXRlcyBm
b3IgdG91Y2ggYWRqdXN0bWVudCBhcyBpcyB1c2VkIGZvciBhIEdlc3R1cmVUYXAgZXZlbnQgKHdo
aWNoCisgICAgICAgIGFkbWl0dGVkbHkgaXMgYSBzaW1wbGlmeWluZyBhc3N1bXB0aW9uKS4KKwor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6aGFuZGxlR2VzdHVyZVRhcCk6CisgICAgICAgIFNvbWUgY29kZSBtb3ZlZCB0byB0
aGUgbmV3IGZ1bmN0aW9uIGFkanVzdEdlc3R1cmVQb3NpdGlvbi4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjphZGp1c3RHZXN0dXJlUG9zaXRpb24p
OgorICAgICAgICBBZGRlZCB0aGlzIGZ1bmN0aW9uIHRvIGF2b2lkIHJlcGVhdGVkIGNvZGUgaW4g
aGFuZGxlR2VzdHVyZVRhcCBhbmQKKyAgICAgICAgc2VuZENvbnRleHRNZW51RXZlbnRGb3JHZXN0
dXJlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVu
dEZvckdlc3R1cmUpOgorICAgICAgICBUcnkgdG8gYWRqdXN0IHRoZSBsb2NhdGlvbiBvZiB8bW91
c2VFdmVudHwgdG8gY29ycmVzcG9uZCB0byB0aGUgbW9zdAorICAgICAgICBwcm9iYWJsZSBnZXN0
dXJlIHRhcmdldC4gSWYgbm8gc3VjaCB0YXJnZXQgZXhpc3RzLCB0aGUgbG9jYXRpb24gb2YKKyAg
ICAgICAgfG1vdXNlRXZlbnR8IGlzIHVuY2hhbmdlZC4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFu
ZGxlci5oOgorICAgICAgICAoRXZlbnRIYW5kbGVyKToKKwogMjAxMi0wOC0wMiAgRXJpYyBTZWlk
ZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIGJhY2sgQVNTRVJUKCFuZWVkc0xh
eW91dCkgdG8gUmVuZGVyVGFibGVTZWN0aW9uIHdoaWNoIGlzIG5vdyB2YWxpZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCBjN2IzNmY4NjIxM2E1ZTc4MDBlYWRmZTU0ZTRlZTZjMzk4ZDhk
ZTdhLi5kNTFlMmJlZjZlMWZhZTk2NGE5MTgyNTNiMzk2NjQwZDFlYjNmNzBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA4LTAyICBUZXJyeSBBbmRl
cnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFwcGx5IHRhcmdldCBm
dXp6aW5nIHdoZW4gc2VuZGluZyBhIGNvbnRleHQgbWVudSBldmVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI5MTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGNvbnN0cnVjdGluZyBhIFBsYXRm
b3JtRXZlbnQ6Okdlc3R1cmVMb25nUHJlc3MgaW4gV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3Bw
LAorICAgICAgICB1c2UgfGJvdW5kaW5nQm94fCB0byBzcGVjaWZ5IHxtX2FyZWF8LgorCisgICAg
ICAgICogc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGxhdGZvcm1HZXN0dXJlRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIp
OgorCiAyMDEyLTA4LTAyICBQZXRlciBCZXZlcmxvbyAgPHBldGVyQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbQ2hyb21pdW1dIEFkZCBhIHN0dWIgZm9yIFdlYlZpZXc6OmdldFRvdWNoSGlnaGxp
Z2h0UXVhZHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGY1NDZiMWE5
ZWFlNDU3ZGY1ZWQxOTAzNGMxYTBjNzFhZmZhMGMzMjQuLmIwZDU2ZWIwZTY3NjFhYzk4NTNjMGZh
Yjc5OTg0NWViZmE5Y2QwN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAg
LTI0NzAsMTMgKzI0NzAsOSBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZVRhcChj
b25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogICAgIC8vIEZJWE1FOiBS
ZWZhY3RvciB0aGlzIGNvZGUgdG8gbm90IGhpdCB0ZXN0IG11bHRpcGxlIHRpbWVzLgogICAgIElu
dFBvaW50IGFkanVzdGVkUG9pbnQgPSBnZXN0dXJlRXZlbnQucG9zaXRpb24oKTsKICNpZiBFTkFC
TEUoVE9VQ0hfQURKVVNUTUVOVCkKLSAgICBpZiAoIWdlc3R1cmVFdmVudC5hcmVhKCkuaXNFbXB0
eSgpKSB7Ci0gICAgICAgIE5vZGUqIHRhcmdldE5vZGUgPSAwOwotICAgICAgICAvLyBGb3Igbm93
IHdlIHVzZSB0aGUgYWRqdXN0ZWQgcG9zaXRpb24gdG8gZW5zdXJlIHRoZSBsYXRlciByZWR1bmRh
bnQgaGl0LXRlc3RzIGhpdHMgdGhlIHJpZ2h0IG5vZGUuCi0gICAgICAgIGJlc3RDbGlja2FibGVO
b2RlRm9yVG91Y2hQb2ludChnZXN0dXJlRXZlbnQucG9zaXRpb24oKSwgSW50U2l6ZShnZXN0dXJl
RXZlbnQuYXJlYSgpLndpZHRoKCkgLyAyLCBnZXN0dXJlRXZlbnQuYXJlYSgpLmhlaWdodCgpIC8g
MiksIGFkanVzdGVkUG9pbnQsIHRhcmdldE5vZGUpOwotICAgICAgICBpZiAoIXRhcmdldE5vZGUp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQorICAgIC8vIEZvciBub3cgd2UgdXNl
IHRoZSBhZGp1c3RlZCBwb3NpdGlvbiB0byBlbnN1cmUgdGhlIGxhdGVyIHJlZHVuZGFudCBoaXQt
dGVzdHMgaGl0cyB0aGUgcmlnaHQgbm9kZS4KKyAgICBpZiAoIWdlc3R1cmVFdmVudC5hcmVhKCku
aXNFbXB0eSgpICYmICFhZGp1c3RHZXN0dXJlUG9zaXRpb24oZ2VzdHVyZUV2ZW50LCBhZGp1c3Rl
ZFBvaW50KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKICAgICBib29sIGRlZmF1
bHRQcmV2ZW50ZWQgPSBmYWxzZTsKQEAgLTI1MzgsNiArMjUzNCwxMyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6YmVzdFpvb21hYmxlQXJlYUZvclRvdWNoUG9pbnQoY29uc3QgSW50UG9pbnQmIHRvdWNo
Q2VudGVyLCBjbwogICAgIFJlZlB0cjxTdGF0aWNIYXNoU2V0Tm9kZUxpc3Q+IG5vZGVMaXN0ID0g
U3RhdGljSGFzaFNldE5vZGVMaXN0OjphZG9wdChyZXN1bHQucmVjdEJhc2VkVGVzdFJlc3VsdCgp
KTsKICAgICByZXR1cm4gZmluZEJlc3Rab29tYWJsZUFyZWEodGFyZ2V0Tm9kZSwgdGFyZ2V0QXJl
YSwgdG91Y2hDZW50ZXIsIHRvdWNoUmVjdCwgKm5vZGVMaXN0LmdldCgpKTsKIH0KKworYm9vbCBF
dmVudEhhbmRsZXI6OmFkanVzdEdlc3R1cmVQb3NpdGlvbihjb25zdCBQbGF0Zm9ybUdlc3R1cmVF
dmVudCYgZ2VzdHVyZUV2ZW50LCBJbnRQb2ludCYgYWRqdXN0ZWRQb2ludCkKK3sKKyAgICBOb2Rl
KiB0YXJnZXROb2RlID0gMDsKKyAgICBiZXN0Q2xpY2thYmxlTm9kZUZvclRvdWNoUG9pbnQoZ2Vz
dHVyZUV2ZW50LnBvc2l0aW9uKCksIEludFNpemUoZ2VzdHVyZUV2ZW50LmFyZWEoKS53aWR0aCgp
IC8gMiwgZ2VzdHVyZUV2ZW50LmFyZWEoKS5oZWlnaHQoKSAvIDIpLCBhZGp1c3RlZFBvaW50LCB0
YXJnZXROb2RlKTsKKyAgICByZXR1cm4gKHRhcmdldE5vZGUpOworfQogI2VuZGlmCiAKICNpZiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTI2NDksNyArMjY1MiwxMyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnRGb3JHZXN0dXJlKGNvbnN0IFBsYXRmb3JtR2VzdHVy
ZUV2ZW50JiBldgogI2Vsc2UKICAgICBQbGF0Zm9ybUV2ZW50OjpUeXBlIGV2ZW50VHlwZSA9IFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKICNlbmRpZgotICAgIFBsYXRmb3JtTW91c2VFdmVu
dCBtb3VzZUV2ZW50KGV2ZW50LnBvc2l0aW9uKCksIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCksIFJp
Z2h0QnV0dG9uLCBldmVudFR5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXVEY6
OmN1cnJlbnRUaW1lKCkpOworCisgICAgSW50UG9pbnQgYWRqdXN0ZWRQb2ludCA9IGV2ZW50LnBv
c2l0aW9uKCk7CisjaWYgRU5BQkxFKFRPVUNIX0FESlVTVE1FTlQpCisgICAgaWYgKCFldmVudC5h
cmVhKCkuaXNFbXB0eSgpKQorICAgICAgICBhZGp1c3RHZXN0dXJlUG9zaXRpb24oZXZlbnQsIGFk
anVzdGVkUG9pbnQpOworI2VuZGlmCisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQo
YWRqdXN0ZWRQb2ludCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgUmlnaHRCdXR0b24sIGV2ZW50
VHlwZSwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSk7
CiAgICAgcmV0dXJuIHNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQpOwogfQogI2VuZGlm
IC8vIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmlu
ZGV4IGVlMjY5NDQzM2RiMWMyNzk5ZDUwNGIyZDQ4NGYwNGUzNTQ3MDMwZTMuLjdkZDFjOTM2NjI0
OWRmZGE0YjI2NzIyMTU3MzYyNTk1ZjQ0Zjg3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaApAQCAtMTcwLDYgKzE3MCwxMCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFRPVUNIX0FESlVT
VE1FTlQpCiAgICAgYm9vbCBiZXN0Q2xpY2thYmxlTm9kZUZvclRvdWNoUG9pbnQoY29uc3QgSW50
UG9pbnQmIHRvdWNoQ2VudGVyLCBjb25zdCBJbnRTaXplJiB0b3VjaFJhZGl1cywgSW50UG9pbnQm
IHRhcmdldFBvaW50LCBOb2RlKiYgdGFyZ2V0Tm9kZSk7CiAgICAgYm9vbCBiZXN0Wm9vbWFibGVB
cmVhRm9yVG91Y2hQb2ludChjb25zdCBJbnRQb2ludCYgdG91Y2hDZW50ZXIsIGNvbnN0IEludFNp
emUmIHRvdWNoUmFkaXVzLCBJbnRSZWN0JiB0YXJnZXRBcmVhLCBOb2RlKiYgdGFyZ2V0Tm9kZSk7
CisKKyAgICAvLyBGSVhNRTogQWRkIGEgZ2VzdHVyZSB0eXBlIHBhcmFtZXRlciBzbyB0aGF0IGRp
ZmZlcmVudCBjYW5kaWRhdGUgc2VsZWN0aW9uIGNyaXRlcmlhIG1heSBiZSB1c2VkIGZvcgorICAg
IC8vIGRpZmZlcmVudCBnZXN0dXJlIHR5cGVzLiBDdXJyZW50bHkgVG91Y2hBZGp1c3RtZW50Ojpu
b2RlUmVzcG9uZHNUb1RhcEdlc3R1cmUgaXMgdXNlZCBmb3IgYWxsIHR5cGVzLgorICAgIGJvb2wg
YWRqdXN0R2VzdHVyZVBvc2l0aW9uKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiwgSW50UG9p
bnQmIGFkanVzdGVkUG9pbnQpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252
ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252
ZXJzaW9uLmNwcAppbmRleCAzMzQyOGMzMjk0ZjY5ZTYzNTA0ZTY0YWU5ZWQ0MjhkN2VkODE5MzI4
Li5jMGFjYTJkNDkzZWVjMThkYTk1OWYzNjlkNWM5NzBhN2E4NTk2YjVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3Bw
CkBAIC0xNjUsNiArMTY1LDcgQEAgUGxhdGZvcm1HZXN0dXJlRXZlbnRCdWlsZGVyOjpQbGF0Zm9y
bUdlc3R1cmVFdmVudEJ1aWxkZXIoV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IFcKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOgogICAgICAgICBt
X3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlTG9uZ1ByZXNzOworICAgICAgICBtX2FyZWEg
PSBJbnRTaXplKGUuYm91bmRpbmdCb3gud2lkdGgsIGUuYm91bmRpbmdCb3guaGVpZ2h0KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBXZWJJbnB1dEV2ZW50OjpHZXN0dXJlUGluY2hCZWdpbjoK
ICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZVBpbmNoQmVnaW47CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggOGE3ZDNjYzkyNGNiYWNmODkzODg4ZTBiZmMzZWY2MGMyMDEzN2NkNS4uZDJlNGIwYjkzZjVh
N2M3NGVmZjI0NTlhODhiMTVlYWUxNTVkZDI1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEy
LTA4LTAyICBUZXJyeSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIEFwcGx5IHRhcmdldCBmdXp6aW5nIHdoZW4gc2VuZGluZyBhIGNvbnRleHQgbWVudSBldmVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI5MTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgbGF5
b3V0IHRlc3QgdG8gdmVyaWZ5IHRoYXQgY29udGV4dCBtZW51cyBhcHBlYXIgb24gbGlua3MgZm9y
IGEgbG9uZyBwcmVzcworICAgICAgICBnZXN0dXJlIHdoZW4gVE9VQ0hfQURKVVNUTUVOVCBpcyBl
bmFibGVkLgorCisgICAgICAgICogdG91Y2hhZGp1c3RtZW50L3RvdWNoLWxpbmtzLWxvbmdwcmVz
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRvdWNoYWRqdXN0bWVudC90b3VjaC1s
aW5rcy1sb25ncHJlc3MuaHRtbDogQWRkZWQuCisKIDIwMTItMDgtMDIgIFJvZ2VyIEZvbmcgIDxy
b2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBMYXlvdXQgVGVzdDogY29tcG9zaXRpbmcv
YmFja2ZhY2UtdmlzaWJpbGl0eS9iYWNrZmFjZS12aXNpYmlsaXR5LXdlYmdsLmh0bWwgaXMgbm90
IHN1cHBvcnRlZCBvbiBXaW5kb3dzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1
c3RtZW50L3RvdWNoLWxpbmtzLWxvbmdwcmVzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90
b3VjaGFkanVzdG1lbnQvdG91Y2gtbGlua3MtbG9uZ3ByZXNzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xOTUxZjk3NjE3MDMyYWYxMGMwY2ZkMTE0ZDYwMTJhYWUzMmM3YTUwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3RvdWNoLWxpbmtzLWxvbmdwcmVz
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgaWYgYSBsb25nIHByZXNzIGdl
c3R1cmUgb24gbGlua3Mgd2lsbCB0cmlnZ2VyIGEgY29udGV4dCBtZW51IHdoZW4gdG91Y2ggYWRq
dXN0bWVudCBpcyB1c2VkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdGlu
ZyBkaXJlY3QgaGl0cy4KK1BBU1MKK1BBU1MKK1BBU1MKK1Rlc3RpbmcgaW5kaXJlY3QgaGl0cy4K
K1BBU1MKK1BBU1MKK1BBU1MKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvdG91
Y2gtbGlua3MtbG9uZ3ByZXNzLmh0bWwgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvdG91
Y2gtbGlua3MtbG9uZ3ByZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTE2ODQ2YTBiZjdhNGVmMmIwNjZh
ZDAxMjJlYTExMTJlMmM4ZGMxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RvdWNo
YWRqdXN0bWVudC90b3VjaC1saW5rcy1sb25ncHJlc3MuaHRtbApAQCAtMCwwICsxLDg3IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPlRvdWNoIEFkanVzdG1l
bnQgOiBUZXN0aW5nIHRoYXQgYSBjb250ZXh0IG1lbnUgd2lsbCBhcHBlYXIgb24gYSBsb25nIHBy
ZXNzIC0gYnVnIDkyOTE0PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdG91Y2hhZGp1c3RtZW50LmpzIj48L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgICNz
YW5kYm94IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgICAgIGxl
ZnQ6IDBweDsKKyAgICAgICAgICAgIHRvcDogMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4K
KzwvaGVhZD4KKworPGJvZHk+CisKKzxkaXYgaWQ9InNhbmRib3giPgorPHA+PGEgaHJlZj0iIiBp
ZD0ibGluazEiPkk8L2E+IHByb3Bvc2UgdG8gY29uc2lkZXIgPGEgaHJlZj0iIiBpZD0ibGluazIi
PnRoZSBxdWVzdGlvbjwvYT4sICJDYW4gbWFjaGluZXMgdGhpbms/Ijxicj5UaGlzIHNob3VsZCBi
ZWdpbiB3aXRoIGRlZmluaXRpb25zIG9mIHRoZSBtZWFuaW5nIG9mIHRoZSB0ZXJtcyAibWFjaGlu
ZSIgYW5kIDxhIGhyZWY9IiIgaWQ9ImxpbmszIj4idGhpbmsuIjwvYT48L3A+Cis8L2Rpdj4KKwor
PHAgaWQ9J2Rlc2NyaXB0aW9uJz48L3A+Cis8ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4KKworPHNj
cmlwdD4KKyAgICB2YXIgZWxlbWVudDsKKyAgICB2YXIgYWRqdXN0ZWROb2RlOworICAgIC8vIFNl
dCB1cCBzaG9ydGN1dCBhY2Nlc3MgdG8gZWxlbWVudHMKKyAgICB2YXIgZSA9IHt9OworICAgIFsn
c2FuZGJveCcsICdsaW5rMScsICdsaW5rMicsICdsaW5rMyddLmZvckVhY2goZnVuY3Rpb24oYSkg
eworICAgICAgICBlW2FdID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSk7CisgICAgfSk7CisK
KyAgICBkb2N1bWVudC5vbmNvbnRleHRtZW51ID0gZnVuY3Rpb24oKSB7IGRlYnVnKCJQQVNTIik7
IH0KKworICAgIGZ1bmN0aW9uIHRlc3RMb25nUHJlc3ModG91Y2hwb2ludCkKKyAgICB7CisgICAg
ICAgIGlmIChldmVudFNlbmRlci5nZXN0dXJlTG9uZ1ByZXNzKQorICAgICAgICAgICAgZXZlbnRT
ZW5kZXIuZ2VzdHVyZUxvbmdQcmVzcyh0b3VjaHBvaW50LmxlZnQsIHRvdWNocG9pbnQudG9wKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgZGVidWcoImdlc3R1cmVMb25nUHJlc3Mgbm90IGlt
cGxlbWVudGVkIGJ5IHRoaXMgcGxhdGZvcm0uIik7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVz
dERpcmVjdFRvdWNoKGVsZW1lbnQpCisgICAgeworICAgICAgICAvLyBUb3VjaCBkaXJlY3RseSBp
biB0aGUgY2VudGVyIG9mIHRoZSBlbGVtZW50LgorICAgICAgICB2YXIgdG91Y2hwb2ludCA9IG9m
ZnNldFRvdWNoUG9pbnQoZmluZEFic29sdXRlQm91bmRzKGVsZW1lbnQpLCAnY2VudGVyJywgMCwg
MjAsIDMwKTsKKyAgICAgICAgdGVzdExvbmdQcmVzcyh0b3VjaHBvaW50KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB0ZXN0SW5kaXJlY3RUb3VjaChlbGVtZW50KQorICAgIHsKKyAgICAgICAgLy8g
VG91Y2gganVzdCByaWdodCBvZiB0aGUgZWxlbWVudC4KKyAgICAgICAgdmFyIHRvdWNocG9pbnQg
PSBvZmZzZXRUb3VjaFBvaW50KGZpbmRBYnNvbHV0ZUJvdW5kcyhlbGVtZW50KSwgJ3JpZ2h0Jywg
MTAsIDMwLCAyMCk7CisgICAgICAgIHRlc3RMb25nUHJlc3ModG91Y2hwb2ludCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gdGVzdERpcmVjdFRvdWNoZXMoKQorICAgIHsKKyAgICAgICAgZGVidWco
J1Rlc3RpbmcgZGlyZWN0IGhpdHMuJyk7CisgICAgICAgIHRlc3REaXJlY3RUb3VjaChlLmxpbmsx
KTsKKyAgICAgICAgdGVzdERpcmVjdFRvdWNoKGUubGluazIpOworICAgICAgICB0ZXN0RGlyZWN0
VG91Y2goZS5saW5rMyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdEluZGlyZWN0VG91Y2hl
cygpCisgICAgeworICAgICAgICBkZWJ1ZygnVGVzdGluZyBpbmRpcmVjdCBoaXRzLicpOworICAg
ICAgICB0ZXN0SW5kaXJlY3RUb3VjaChlLmxpbmsxKTsKKyAgICAgICAgdGVzdEluZGlyZWN0VG91
Y2goZS5saW5rMik7CisgICAgICAgIHRlc3RJbmRpcmVjdFRvdWNoKGUubGluazMpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKKyAgICB7CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1c3Rl
ZFRvQmVzdENsaWNrYWJsZU5vZGUpIHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdUZXN0cyBp
ZiBhIGxvbmcgcHJlc3MgZ2VzdHVyZSBvbiBsaW5rcyB3aWxsIHRyaWdnZXIgYSBjb250ZXh0IG1l
bnUgd2hlbiB0b3VjaCBhZGp1c3RtZW50IGlzIHVzZWQuJyk7CisgICAgICAgICAgICB0ZXN0RGly
ZWN0VG91Y2hlcygpOworICAgICAgICAgICAgdGVzdEluZGlyZWN0VG91Y2hlcygpOworICAgICAg
ICAgICAgZS5zYW5kYm94LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgICAgIH0KKyAgICB9
CisgICAgcnVuVGVzdHMoKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156164</attachid>
            <date>2012-08-02 14:10:22 -0700</date>
            <delta_ts>2012-08-03 08:55:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92914-20120802171003.patch</filename>
            <type>text/plain</type>
            <size>12018</size>
            <attacher name="Terry Anderson">tdanderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMzMWYwZDRkZTk4ZDM2
OGUxNGExMzExZDM2NjljNjBjYTUzODFlMC4uMTlkODg1Mjc0MTI1MWJlZjI2ZGQwNDhlYjA3NzY4
Yjc3YWJlNWM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA4LTAyICBUZXJy
eSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFwcGx5IHRh
cmdldCBmdXp6aW5nIHdoZW4gc2VuZGluZyBhIGNvbnRleHQgbWVudSBldmVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI5MTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiBUT1VDSF9BREpVU1RNRU5U
IGlzIGVuYWJsZWQsIHVzZSBiZXN0Q2xpY2thYmxlTm9kZUZvclRvdWNoUG9pbnQgdG8gcG9zc2li
bHkKKyAgICAgICAgYWRqdXN0IHRoZSBsb2NhdGlvbiBvZiBhIGNvbnRleHQgbWVudSBldmVudC4g
VGhpcyBjaGFuZ2UgdXNlcyB0aGUgc2FtZSBzZXQgb2YKKyAgICAgICAgY2FuZGlkYXRlcyBmb3Ig
dG91Y2ggYWRqdXN0bWVudCBhcyBpcyB1c2VkIGZvciBhIEdlc3R1cmVUYXAgZXZlbnQgKHdoaWNo
CisgICAgICAgIGFkbWl0dGVkbHkgaXMgYSBzaW1wbGlmeWluZyBhc3N1bXB0aW9uKS4KKworICAg
ICAgICBUZXN0OiB0b3VjaGFkanVzdG1lbnQvdG91Y2gtbGlua3MtbG9uZ3ByZXNzLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6aGFuZGxlR2VzdHVyZVRhcCk6CisgICAgICAgIFNvbWUgY29kZSBtb3ZlZCB0byB0
aGUgbmV3IGZ1bmN0aW9uIGFkanVzdEdlc3R1cmVQb3NpdGlvbi4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjphZGp1c3RHZXN0dXJlUG9zaXRpb24p
OgorICAgICAgICBBZGRlZCB0aGlzIGZ1bmN0aW9uIHRvIGF2b2lkIHJlcGVhdGVkIGNvZGUgaW4g
aGFuZGxlR2VzdHVyZVRhcCBhbmQKKyAgICAgICAgc2VuZENvbnRleHRNZW51RXZlbnRGb3JHZXN0
dXJlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVu
dEZvckdlc3R1cmUpOgorICAgICAgICBUcnkgdG8gYWRqdXN0IHRoZSBsb2NhdGlvbiBvZiB8bW91
c2VFdmVudHwgdG8gY29ycmVzcG9uZCB0byB0aGUgbW9zdAorICAgICAgICBwcm9iYWJsZSBnZXN0
dXJlIHRhcmdldC4gSWYgbm8gc3VjaCB0YXJnZXQgZXhpc3RzLCB0aGUgbG9jYXRpb24gb2YKKyAg
ICAgICAgfG1vdXNlRXZlbnR8IGlzIHVuY2hhbmdlZC4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFu
ZGxlci5oOgorICAgICAgICAoRXZlbnRIYW5kbGVyKToKKwogMjAxMi0wOC0wMiAgRXJpYyBTZWlk
ZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIGJhY2sgQVNTRVJUKCFuZWVkc0xh
eW91dCkgdG8gUmVuZGVyVGFibGVTZWN0aW9uIHdoaWNoIGlzIG5vdyB2YWxpZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCBjN2IzNmY4NjIxM2E1ZTc4MDBlYWRmZTU0ZTRlZTZjMzk4ZDhk
ZTdhLi5kNTFlMmJlZjZlMWZhZTk2NGE5MTgyNTNiMzk2NjQwZDFlYjNmNzBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA4LTAyICBUZXJyeSBBbmRl
cnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFwcGx5IHRhcmdldCBm
dXp6aW5nIHdoZW4gc2VuZGluZyBhIGNvbnRleHQgbWVudSBldmVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI5MTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGNvbnN0cnVjdGluZyBhIFBsYXRm
b3JtRXZlbnQ6Okdlc3R1cmVMb25nUHJlc3MgaW4gV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3Bw
LAorICAgICAgICB1c2UgfGJvdW5kaW5nQm94fCB0byBzcGVjaWZ5IHxtX2FyZWF8LgorCisgICAg
ICAgICogc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGxhdGZvcm1HZXN0dXJlRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXIp
OgorCiAyMDEyLTA4LTAyICBQZXRlciBCZXZlcmxvbyAgPHBldGVyQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbQ2hyb21pdW1dIEFkZCBhIHN0dWIgZm9yIFdlYlZpZXc6OmdldFRvdWNoSGlnaGxp
Z2h0UXVhZHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGY1NDZiMWE5
ZWFlNDU3ZGY1ZWQxOTAzNGMxYTBjNzFhZmZhMGMzMjQuLjVjMDVlNDY5OWZmYWM0NjA3NTgwMWEz
ZGE4NmE3NWUyODU0YmQwNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAg
LTI0NzAsMTMgKzI0NzAsOSBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZVRhcChj
b25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogICAgIC8vIEZJWE1FOiBS
ZWZhY3RvciB0aGlzIGNvZGUgdG8gbm90IGhpdCB0ZXN0IG11bHRpcGxlIHRpbWVzLgogICAgIElu
dFBvaW50IGFkanVzdGVkUG9pbnQgPSBnZXN0dXJlRXZlbnQucG9zaXRpb24oKTsKICNpZiBFTkFC
TEUoVE9VQ0hfQURKVVNUTUVOVCkKLSAgICBpZiAoIWdlc3R1cmVFdmVudC5hcmVhKCkuaXNFbXB0
eSgpKSB7Ci0gICAgICAgIE5vZGUqIHRhcmdldE5vZGUgPSAwOwotICAgICAgICAvLyBGb3Igbm93
IHdlIHVzZSB0aGUgYWRqdXN0ZWQgcG9zaXRpb24gdG8gZW5zdXJlIHRoZSBsYXRlciByZWR1bmRh
bnQgaGl0LXRlc3RzIGhpdHMgdGhlIHJpZ2h0IG5vZGUuCi0gICAgICAgIGJlc3RDbGlja2FibGVO
b2RlRm9yVG91Y2hQb2ludChnZXN0dXJlRXZlbnQucG9zaXRpb24oKSwgSW50U2l6ZShnZXN0dXJl
RXZlbnQuYXJlYSgpLndpZHRoKCkgLyAyLCBnZXN0dXJlRXZlbnQuYXJlYSgpLmhlaWdodCgpIC8g
MiksIGFkanVzdGVkUG9pbnQsIHRhcmdldE5vZGUpOwotICAgICAgICBpZiAoIXRhcmdldE5vZGUp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQorICAgIC8vIEZvciBub3cgd2UgdXNl
IHRoZSBhZGp1c3RlZCBwb3NpdGlvbiB0byBlbnN1cmUgdGhlIGxhdGVyIHJlZHVuZGFudCBoaXQt
dGVzdHMgaGl0cyB0aGUgcmlnaHQgbm9kZS4KKyAgICBpZiAoIWdlc3R1cmVFdmVudC5hcmVhKCku
aXNFbXB0eSgpICYmICFhZGp1c3RHZXN0dXJlUG9zaXRpb24oZ2VzdHVyZUV2ZW50LCBhZGp1c3Rl
ZFBvaW50KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKICAgICBib29sIGRlZmF1
bHRQcmV2ZW50ZWQgPSBmYWxzZTsKQEAgLTI1MzgsNiArMjUzNCwxMyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6YmVzdFpvb21hYmxlQXJlYUZvclRvdWNoUG9pbnQoY29uc3QgSW50UG9pbnQmIHRvdWNo
Q2VudGVyLCBjbwogICAgIFJlZlB0cjxTdGF0aWNIYXNoU2V0Tm9kZUxpc3Q+IG5vZGVMaXN0ID0g
U3RhdGljSGFzaFNldE5vZGVMaXN0OjphZG9wdChyZXN1bHQucmVjdEJhc2VkVGVzdFJlc3VsdCgp
KTsKICAgICByZXR1cm4gZmluZEJlc3Rab29tYWJsZUFyZWEodGFyZ2V0Tm9kZSwgdGFyZ2V0QXJl
YSwgdG91Y2hDZW50ZXIsIHRvdWNoUmVjdCwgKm5vZGVMaXN0LmdldCgpKTsKIH0KKworYm9vbCBF
dmVudEhhbmRsZXI6OmFkanVzdEdlc3R1cmVQb3NpdGlvbihjb25zdCBQbGF0Zm9ybUdlc3R1cmVF
dmVudCYgZ2VzdHVyZUV2ZW50LCBJbnRQb2ludCYgYWRqdXN0ZWRQb2ludCkKK3sKKyAgICBOb2Rl
KiB0YXJnZXROb2RlID0gMDsKKyAgICBiZXN0Q2xpY2thYmxlTm9kZUZvclRvdWNoUG9pbnQoZ2Vz
dHVyZUV2ZW50LnBvc2l0aW9uKCksIEludFNpemUoZ2VzdHVyZUV2ZW50LmFyZWEoKS53aWR0aCgp
IC8gMiwgZ2VzdHVyZUV2ZW50LmFyZWEoKS5oZWlnaHQoKSAvIDIpLCBhZGp1c3RlZFBvaW50LCB0
YXJnZXROb2RlKTsKKyAgICByZXR1cm4gdGFyZ2V0Tm9kZTsKK30KICNlbmRpZgogCiAjaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpCkBAIC0yNjQ5LDcgKzI2NTIsMTMgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50Rm9yR2VzdHVyZShjb25zdCBQbGF0Zm9ybUdlc3R1cmVF
dmVudCYgZXYKICNlbHNlCiAgICAgUGxhdGZvcm1FdmVudDo6VHlwZSBldmVudFR5cGUgPSBQbGF0
Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7CiAjZW5kaWYKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
bW91c2VFdmVudChldmVudC5wb3NpdGlvbigpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLCBSaWdo
dEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpj
dXJyZW50VGltZSgpKTsKKworICAgIEludFBvaW50IGFkanVzdGVkUG9pbnQgPSBldmVudC5wb3Np
dGlvbigpOworI2lmIEVOQUJMRShUT1VDSF9BREpVU1RNRU5UKQorICAgIGlmICghZXZlbnQuYXJl
YSgpLmlzRW1wdHkoKSkKKyAgICAgICAgYWRqdXN0R2VzdHVyZVBvc2l0aW9uKGV2ZW50LCBhZGp1
c3RlZFBvaW50KTsKKyNlbmRpZgorICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KGFk
anVzdGVkUG9pbnQsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCksIFJpZ2h0QnV0dG9uLCBldmVudFR5
cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXVEY6OmN1cnJlbnRUaW1lKCkpOwog
ICAgIHJldHVybiBzZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKIH0KICNlbmRpZiAv
LyBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRl
eCBlZTI2OTQ0MzNkYjFjMjc5OWQ1MDRiMmQ0ODRmMDRlMzU0NzAzMGUzLi43ZGQxYzkzNjYyNDlk
ZmRhNGIyNjcyMjE1NzM2MjU5NWY0NGY4N2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmgKQEAgLTE3MCw2ICsxNzAsMTAgQEAgcHVibGljOgogI2lmIEVOQUJMRShUT1VDSF9BREpVU1RN
RU5UKQogICAgIGJvb2wgYmVzdENsaWNrYWJsZU5vZGVGb3JUb3VjaFBvaW50KGNvbnN0IEludFBv
aW50JiB0b3VjaENlbnRlciwgY29uc3QgSW50U2l6ZSYgdG91Y2hSYWRpdXMsIEludFBvaW50JiB0
YXJnZXRQb2ludCwgTm9kZSomIHRhcmdldE5vZGUpOwogICAgIGJvb2wgYmVzdFpvb21hYmxlQXJl
YUZvclRvdWNoUG9pbnQoY29uc3QgSW50UG9pbnQmIHRvdWNoQ2VudGVyLCBjb25zdCBJbnRTaXpl
JiB0b3VjaFJhZGl1cywgSW50UmVjdCYgdGFyZ2V0QXJlYSwgTm9kZSomIHRhcmdldE5vZGUpOwor
CisgICAgLy8gRklYTUU6IEFkZCBhIGdlc3R1cmUgdHlwZSBwYXJhbWV0ZXIgc28gdGhhdCBkaWZm
ZXJlbnQgY2FuZGlkYXRlIHNlbGVjdGlvbiBjcml0ZXJpYSBtYXkgYmUgdXNlZCBmb3IKKyAgICAv
LyBkaWZmZXJlbnQgZ2VzdHVyZSB0eXBlcy4gQ3VycmVudGx5IFRvdWNoQWRqdXN0bWVudDo6bm9k
ZVJlc3BvbmRzVG9UYXBHZXN0dXJlIGlzIHVzZWQgZm9yIGFsbCB0eXBlcy4KKyAgICBib29sIGFk
anVzdEdlc3R1cmVQb3NpdGlvbihjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYsIEludFBvaW50
JiBhZGp1c3RlZFBvaW50KTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVy
c2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVy
c2lvbi5jcHAKaW5kZXggMzM0MjhjMzI5NGY2OWU2MzUwNGU2NGFlOWVkNDI4ZDdlZDgxOTMyOC4u
YzBhY2EyZDQ5M2VlYzE4ZGE5NTlmMzY5ZDVjOTcwYTdhODU5NmI1YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcApA
QCAtMTY1LDYgKzE2NSw3IEBAIFBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlcjo6UGxhdGZvcm1H
ZXN0dXJlRXZlbnRCdWlsZGVyKFdpZGdldCogd2lkZ2V0LCBjb25zdCBXCiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZUxvbmdQcmVzczoKICAgICAgICAgbV90
eXBlID0gUGxhdGZvcm1FdmVudDo6R2VzdHVyZUxvbmdQcmVzczsKKyAgICAgICAgbV9hcmVhID0g
SW50U2l6ZShlLmJvdW5kaW5nQm94LndpZHRoLCBlLmJvdW5kaW5nQm94LmhlaWdodCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVBpbmNoQmVnaW46CiAg
ICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVQaW5jaEJlZ2luOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDhhN2QzY2M5MjRjYmFjZjg5Mzg4OGUwYmZjM2VmNjBjMjAxMzdjZDUuLmYzODM5YTU4MTFjZDY2
NTkzMWUzYjg1Y2UzMjQxZjM2MTBiZjY5NmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0w
OC0wMiAgVGVycnkgQW5kZXJzb24gIDx0ZGFuZGVyc29uQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBBcHBseSB0YXJnZXQgZnV6emluZyB3aGVuIHNlbmRpbmcgYSBjb250ZXh0IG1lbnUgZXZlbnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyOTE0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IGxheW91
dCB0ZXN0IHRvIHZlcmlmeSB0aGF0IGNvbnRleHQgbWVudXMgYXBwZWFyIG9uIGxpbmtzIGZvciBh
IGxvbmcgcHJlc3MKKyAgICAgICAgZ2VzdHVyZSB3aGVuIFRPVUNIX0FESlVTVE1FTlQgaXMgZW5h
YmxlZC4KKworICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisgICAgICAgIFNraXBwZWQg
b24gcXQgYmVjYXVzZSBnZXN0dXJlTG9uZ1ByZXNzIGlzIG5vdCB1c2VkIGZvciBjb250ZXh0IG1l
bnVzLgorICAgICAgICAqIHRvdWNoYWRqdXN0bWVudC90b3VjaC1saW5rcy1sb25ncHJlc3MtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0b3VjaGFkanVzdG1lbnQvdG91Y2gtbGlua3Mt
bG9uZ3ByZXNzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4LTAyICBSb2dlciBGb25nICA8cm9nZXJf
Zm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgTGF5b3V0IFRlc3Q6IGNvbXBvc2l0aW5nL2JhY2tm
YWNlLXZpc2liaWxpdHkvYmFja2ZhY2UtdmlzaWJpbGl0eS13ZWJnbC5odG1sIGlzIG5vdCBzdXBw
b3J0ZWQgb24gV2luZG93cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IDA4OGI3MWRmOGI4
ZmRmMjk4YWE3NDEzYzE3NjE2Zjk2Mzk4MWI4ODMuLmNlZjQ5ZjczYTg1NTEzZWE0M2VjMmMxNTY4
ZWZkYjJjODI3YjEzNDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMjY5OSwzICsyNjk5
LDYgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvb2JqZWN0LXNy
Yy1ub25lLWJsb2NrZWQuaHRtbAogCiAjIEVOQUJMRShXSURHRVRfUkVHSU9OKSBpcyBkaXNhYmxl
ZAogZmFzdC9jc3Mvd2lkZ2V0LXJlZ2lvbi1wYXJzZXIuaHRtbAorCisjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjkxNAordG91Y2hhZGp1c3RtZW50L3RvdWNoLWxp
bmtzLWxvbmdwcmVzcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1l
bnQvdG91Y2gtbGlua3MtbG9uZ3ByZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RvdWNo
YWRqdXN0bWVudC90b3VjaC1saW5rcy1sb25ncHJlc3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE5NTFmOTc2MTcwMzJhZjEwYzBjZmQxMTRkNjAxMmFhZTMyYzdhNTAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvdG91Y2gtbGlua3MtbG9uZ3ByZXNzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0cyBpZiBhIGxvbmcgcHJlc3MgZ2VzdHVy
ZSBvbiBsaW5rcyB3aWxsIHRyaWdnZXIgYSBjb250ZXh0IG1lbnUgd2hlbiB0b3VjaCBhZGp1c3Rt
ZW50IGlzIHVzZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0aW5nIGRp
cmVjdCBoaXRzLgorUEFTUworUEFTUworUEFTUworVGVzdGluZyBpbmRpcmVjdCBoaXRzLgorUEFT
UworUEFTUworUEFTUworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC90b3VjaC1s
aW5rcy1sb25ncHJlc3MuaHRtbCBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC90b3VjaC1s
aW5rcy1sb25ncHJlc3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTY4NDZhMGJmN2E0ZWYyYjA2NmFkMDEy
MmVhMTExMmUyYzhkYzEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1
c3RtZW50L3RvdWNoLWxpbmtzLWxvbmdwcmVzcy5odG1sCkBAIC0wLDAgKzEsODcgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+VG91Y2ggQWRqdXN0bWVudCA6
IFRlc3RpbmcgdGhhdCBhIGNvbnRleHQgbWVudSB3aWxsIGFwcGVhciBvbiBhIGxvbmcgcHJlc3Mg
LSBidWcgOTI5MTQ8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90
b3VjaGFkanVzdG1lbnQuanMiPjwvc2NyaXB0PgorICAgIDxzdHlsZT4KKyAgICAgICAgI3NhbmRi
b3ggeworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDog
MHB4OworICAgICAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9o
ZWFkPgorCis8Ym9keT4KKworPGRpdiBpZD0ic2FuZGJveCI+Cis8cD48YSBocmVmPSIiIGlkPSJs
aW5rMSI+STwvYT4gcHJvcG9zZSB0byBjb25zaWRlciA8YSBocmVmPSIiIGlkPSJsaW5rMiI+dGhl
IHF1ZXN0aW9uPC9hPiwgIkNhbiBtYWNoaW5lcyB0aGluaz8iPGJyPlRoaXMgc2hvdWxkIGJlZ2lu
IHdpdGggZGVmaW5pdGlvbnMgb2YgdGhlIG1lYW5pbmcgb2YgdGhlIHRlcm1zICJtYWNoaW5lIiBh
bmQgPGEgaHJlZj0iIiBpZD0ibGluazMiPiJ0aGluay4iPC9hPjwvcD4KKzwvZGl2PgorCis8cCBp
ZD0nZGVzY3JpcHRpb24nPjwvcD4KKzxkaXYgaWQ9J2NvbnNvbGUnPjwvZGl2PgorCis8c2NyaXB0
PgorICAgIHZhciBlbGVtZW50OworICAgIHZhciBhZGp1c3RlZE5vZGU7CisgICAgLy8gU2V0IHVw
IHNob3J0Y3V0IGFjY2VzcyB0byBlbGVtZW50cworICAgIHZhciBlID0ge307CisgICAgWydzYW5k
Ym94JywgJ2xpbmsxJywgJ2xpbmsyJywgJ2xpbmszJ10uZm9yRWFjaChmdW5jdGlvbihhKSB7Cisg
ICAgICAgIGVbYV0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKTsKKyAgICB9KTsKKworICAg
IGRvY3VtZW50Lm9uY29udGV4dG1lbnUgPSBmdW5jdGlvbigpIHsgZGVidWcoIlBBU1MiKTsgfQor
CisgICAgZnVuY3Rpb24gdGVzdExvbmdQcmVzcyh0b3VjaHBvaW50KQorICAgIHsKKyAgICAgICAg
aWYgKGV2ZW50U2VuZGVyLmdlc3R1cmVMb25nUHJlc3MpCisgICAgICAgICAgICBldmVudFNlbmRl
ci5nZXN0dXJlTG9uZ1ByZXNzKHRvdWNocG9pbnQubGVmdCwgdG91Y2hwb2ludC50b3ApOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBkZWJ1ZygiZ2VzdHVyZUxvbmdQcmVzcyBub3QgaW1wbGVt
ZW50ZWQgYnkgdGhpcyBwbGF0Zm9ybS4iKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0RGly
ZWN0VG91Y2goZWxlbWVudCkKKyAgICB7CisgICAgICAgIC8vIFRvdWNoIGRpcmVjdGx5IGluIHRo
ZSBjZW50ZXIgb2YgdGhlIGVsZW1lbnQuCisgICAgICAgIHZhciB0b3VjaHBvaW50ID0gb2Zmc2V0
VG91Y2hQb2ludChmaW5kQWJzb2x1dGVCb3VuZHMoZWxlbWVudCksICdjZW50ZXInLCAwLCAyMCwg
MzApOworICAgICAgICB0ZXN0TG9uZ1ByZXNzKHRvdWNocG9pbnQpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHRlc3RJbmRpcmVjdFRvdWNoKGVsZW1lbnQpCisgICAgeworICAgICAgICAvLyBUb3Vj
aCBqdXN0IHJpZ2h0IG9mIHRoZSBlbGVtZW50LgorICAgICAgICB2YXIgdG91Y2hwb2ludCA9IG9m
ZnNldFRvdWNoUG9pbnQoZmluZEFic29sdXRlQm91bmRzKGVsZW1lbnQpLCAncmlnaHQnLCAxMCwg
MzAsIDIwKTsKKyAgICAgICAgdGVzdExvbmdQcmVzcyh0b3VjaHBvaW50KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB0ZXN0RGlyZWN0VG91Y2hlcygpCisgICAgeworICAgICAgICBkZWJ1ZygnVGVz
dGluZyBkaXJlY3QgaGl0cy4nKTsKKyAgICAgICAgdGVzdERpcmVjdFRvdWNoKGUubGluazEpOwor
ICAgICAgICB0ZXN0RGlyZWN0VG91Y2goZS5saW5rMik7CisgICAgICAgIHRlc3REaXJlY3RUb3Vj
aChlLmxpbmszKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0SW5kaXJlY3RUb3VjaGVzKCkK
KyAgICB7CisgICAgICAgIGRlYnVnKCdUZXN0aW5nIGluZGlyZWN0IGhpdHMuJyk7CisgICAgICAg
IHRlc3RJbmRpcmVjdFRvdWNoKGUubGluazEpOworICAgICAgICB0ZXN0SW5kaXJlY3RUb3VjaChl
LmxpbmsyKTsKKyAgICAgICAgdGVzdEluZGlyZWN0VG91Y2goZS5saW5rMyk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcnVuVGVzdHMoKQorICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMgJiYgaW50ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9C
ZXN0Q2xpY2thYmxlTm9kZSkgeworICAgICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3RzIGlmIGEg
bG9uZyBwcmVzcyBnZXN0dXJlIG9uIGxpbmtzIHdpbGwgdHJpZ2dlciBhIGNvbnRleHQgbWVudSB3
aGVuIHRvdWNoIGFkanVzdG1lbnQgaXMgdXNlZC4nKTsKKyAgICAgICAgICAgIHRlc3REaXJlY3RU
b3VjaGVzKCk7CisgICAgICAgICAgICB0ZXN0SW5kaXJlY3RUb3VjaGVzKCk7CisgICAgICAgICAg
ICBlLnNhbmRib3guc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBydW5UZXN0cygpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156391</attachid>
            <date>2012-08-03 08:55:46 -0700</date>
            <delta_ts>2012-08-03 12:49:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92914-20120803115526.patch</filename>
            <type>text/plain</type>
            <size>12110</size>
            <attacher name="Terry Anderson">tdanderson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NjE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM2Zjc4MzA4ZDdlMTBi
OWMzNjYwYzUxZTQ2NTNkOTg1YzA1NDYxMS4uMDY4NWI1Yzg3MjAxNzBiZGMwNDJhYjRkNzM0M2Mz
NDBkZDUyYTk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA4LTAzICBUZXJy
eSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFwcGx5IHRh
cmdldCBmdXp6aW5nIHdoZW4gc2VuZGluZyBhIGNvbnRleHQgbWVudSBldmVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI5MTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiBUT1VDSF9BREpVU1RNRU5U
IGlzIGVuYWJsZWQsIHVzZSBiZXN0Q2xpY2thYmxlTm9kZUZvclRvdWNoUG9pbnQgdG8gcG9zc2li
bHkKKyAgICAgICAgYWRqdXN0IHRoZSBsb2NhdGlvbiBvZiBhIGNvbnRleHQgbWVudSBldmVudC4g
VGhpcyBjaGFuZ2UgdXNlcyB0aGUgc2FtZSBzZXQgb2YKKyAgICAgICAgY2FuZGlkYXRlcyBmb3Ig
dG91Y2ggYWRqdXN0bWVudCBhcyBpcyB1c2VkIGZvciBhIEdlc3R1cmVUYXAgZXZlbnQgKHdoaWNo
CisgICAgICAgIGFkbWl0dGVkbHkgaXMgYSBzaW1wbGlmeWluZyBhc3N1bXB0aW9uKS4KKworICAg
ICAgICBUZXN0OiB0b3VjaGFkanVzdG1lbnQvdG91Y2gtbGlua3MtbG9uZ3ByZXNzLmh0bWwKKwor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6aGFuZGxlR2VzdHVyZVRhcCk6CisgICAgICAgIFNvbWUgY29kZSBtb3ZlZCB0byB0
aGUgbmV3IGZ1bmN0aW9uIGFkanVzdEdlc3R1cmVQb3NpdGlvbi4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjphZGp1c3RHZXN0dXJlUG9zaXRpb24p
OgorICAgICAgICBBZGRlZCB0aGlzIGZ1bmN0aW9uIHRvIGF2b2lkIHJlcGVhdGVkIGNvZGUgaW4g
aGFuZGxlR2VzdHVyZVRhcCBhbmQKKyAgICAgICAgc2VuZENvbnRleHRNZW51RXZlbnRGb3JHZXN0
dXJlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVu
dEZvckdlc3R1cmUpOgorICAgICAgICBUcnkgdG8gYWRqdXN0IHRoZSBsb2NhdGlvbiBvZiB8bW91
c2VFdmVudHwgdG8gY29ycmVzcG9uZCB0byB0aGUgbW9zdAorICAgICAgICBwcm9iYWJsZSBnZXN0
dXJlIHRhcmdldC4gSWYgbm8gc3VjaCB0YXJnZXQgZXhpc3RzLCB0aGUgbG9jYXRpb24gb2YKKyAg
ICAgICAgfG1vdXNlRXZlbnR8IGlzIHVuY2hhbmdlZC4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFu
ZGxlci5oOgorICAgICAgICAoRXZlbnRIYW5kbGVyKToKKwogMjAxMi0wOC0wMyAgUGhpbGlwcGUg
Tm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bamhidWlsZF0g
U3dpdGNoIHRvIEdTdHJlYW1lciAwLjExIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IGZiYzE5NDdhMjY2ZGZhOGIyNWM2ZWY5OGFlYWQ5YzhjODA0NzljOTAuLmI1NzBiZDdkNGNm
MGUzZjExYWExMTFjYzE3MjBiOTJmZWUyMjkyZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDgtMDMgIFRlcnJ5IEFuZGVyc29uICA8dGRhbmRlcnNv
bkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQXBwbHkgdGFyZ2V0IGZ1enppbmcgd2hlbiBzZW5k
aW5nIGEgY29udGV4dCBtZW51IGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MjkxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdoZW4gY29uc3RydWN0aW5nIGEgUGxhdGZvcm1FdmVudDo6R2VzdHVy
ZUxvbmdQcmVzcyBpbiBXZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAsCisgICAgICAgIHVzZSB8
Ym91bmRpbmdCb3h8IHRvIHNwZWNpZnkgfG1fYXJlYXwuCisKKyAgICAgICAgKiBzcmMvV2ViSW5w
dXRFdmVudENvbnZlcnNpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybUdlc3R1cmVF
dmVudEJ1aWxkZXI6OlBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlcik6CisKIDIwMTItMDgtMDMg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBWOFByb3h5OjpyZXRy
aWV2ZSgqKSBsZWFkcyB0byByZWFsbHkgb2JmdXNjYXRlZCBjb2RlIGFuZCBzaG91bGQgYmUgcmVt
b3ZlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGY1NDZiMWE5ZWFlNDU3
ZGY1ZWQxOTAzNGMxYTBjNzFhZmZhMGMzMjQuLmFlYWYwZjA5OWRlNmU2YzIxMTE5NDA0NWE2YmM5
ZmFiNDNiODM1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI0Njcs
MTYgKzI0NjcsMTEgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1cmVFdmVudChjb25z
dCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogCiBib29sIEV2ZW50SGFuZGxl
cjo6aGFuZGxlR2VzdHVyZVRhcChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2
ZW50KQogewotICAgIC8vIEZJWE1FOiBSZWZhY3RvciB0aGlzIGNvZGUgdG8gbm90IGhpdCB0ZXN0
IG11bHRpcGxlIHRpbWVzLgorICAgIC8vIEZJWE1FOiBSZWZhY3RvciB0aGlzIGNvZGUgdG8gbm90
IGhpdCB0ZXN0IG11bHRpcGxlIHRpbWVzLiBXZSB1c2UgdGhlIGFkanVzdGVkIHBvc2l0aW9uIHRv
IGVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IG5vZGUgaXMgdGFyZ2V0ZWQgYnkgdGhlIGxhdGVyIHJl
ZHVuZGFudCBoaXQgdGVzdHMuCiAgICAgSW50UG9pbnQgYWRqdXN0ZWRQb2ludCA9IGdlc3R1cmVF
dmVudC5wb3NpdGlvbigpOwogI2lmIEVOQUJMRShUT1VDSF9BREpVU1RNRU5UKQotICAgIGlmICgh
Z2VzdHVyZUV2ZW50LmFyZWEoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgTm9kZSogdGFyZ2V0Tm9k
ZSA9IDA7Ci0gICAgICAgIC8vIEZvciBub3cgd2UgdXNlIHRoZSBhZGp1c3RlZCBwb3NpdGlvbiB0
byBlbnN1cmUgdGhlIGxhdGVyIHJlZHVuZGFudCBoaXQtdGVzdHMgaGl0cyB0aGUgcmlnaHQgbm9k
ZS4KLSAgICAgICAgYmVzdENsaWNrYWJsZU5vZGVGb3JUb3VjaFBvaW50KGdlc3R1cmVFdmVudC5w
b3NpdGlvbigpLCBJbnRTaXplKGdlc3R1cmVFdmVudC5hcmVhKCkud2lkdGgoKSAvIDIsIGdlc3R1
cmVFdmVudC5hcmVhKCkuaGVpZ2h0KCkgLyAyKSwgYWRqdXN0ZWRQb2ludCwgdGFyZ2V0Tm9kZSk7
Ci0gICAgICAgIGlmICghdGFyZ2V0Tm9kZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICB9CisgICAgaWYgKCFnZXN0dXJlRXZlbnQuYXJlYSgpLmlzRW1wdHkoKSAmJiAhYWRqdXN0R2Vz
dHVyZVBvc2l0aW9uKGdlc3R1cmVFdmVudCwgYWRqdXN0ZWRQb2ludCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKICNlbmRpZgogCiAgICAgYm9vbCBkZWZhdWx0UHJldmVudGVkID0gZmFsc2U7CkBA
IC0yNTM4LDYgKzI1MzMsMTMgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmJlc3Rab29tYWJsZUFyZWFG
b3JUb3VjaFBvaW50KGNvbnN0IEludFBvaW50JiB0b3VjaENlbnRlciwgY28KICAgICBSZWZQdHI8
U3RhdGljSGFzaFNldE5vZGVMaXN0PiBub2RlTGlzdCA9IFN0YXRpY0hhc2hTZXROb2RlTGlzdDo6
YWRvcHQocmVzdWx0LnJlY3RCYXNlZFRlc3RSZXN1bHQoKSk7CiAgICAgcmV0dXJuIGZpbmRCZXN0
Wm9vbWFibGVBcmVhKHRhcmdldE5vZGUsIHRhcmdldEFyZWEsIHRvdWNoQ2VudGVyLCB0b3VjaFJl
Y3QsICpub2RlTGlzdC5nZXQoKSk7CiB9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjphZGp1c3RHZXN0
dXJlUG9zaXRpb24oY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCwgSW50
UG9pbnQmIGFkanVzdGVkUG9pbnQpCit7CisgICAgTm9kZSogdGFyZ2V0Tm9kZSA9IDA7CisgICAg
YmVzdENsaWNrYWJsZU5vZGVGb3JUb3VjaFBvaW50KGdlc3R1cmVFdmVudC5wb3NpdGlvbigpLCBJ
bnRTaXplKGdlc3R1cmVFdmVudC5hcmVhKCkud2lkdGgoKSAvIDIsIGdlc3R1cmVFdmVudC5hcmVh
KCkuaGVpZ2h0KCkgLyAyKSwgYWRqdXN0ZWRQb2ludCwgdGFyZ2V0Tm9kZSk7CisgICAgcmV0dXJu
IHRhcmdldE5vZGU7Cit9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpAQCAt
MjY0OSw3ICsyNjUxLDEzIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVu
dEZvckdlc3R1cmUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGV2CiAjZWxzZQogICAgIFBs
YXRmb3JtRXZlbnQ6OlR5cGUgZXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2Vk
OwogI2VuZGlmCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQoZXZlbnQucG9zaXRp
b24oKSwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSk7CisKKyAgICBJ
bnRQb2ludCBhZGp1c3RlZFBvaW50ID0gZXZlbnQucG9zaXRpb24oKTsKKyNpZiBFTkFCTEUoVE9V
Q0hfQURKVVNUTUVOVCkKKyAgICBpZiAoIWV2ZW50LmFyZWEoKS5pc0VtcHR5KCkpCisgICAgICAg
IGFkanVzdEdlc3R1cmVQb3NpdGlvbihldmVudCwgYWRqdXN0ZWRQb2ludCk7CisjZW5kaWYKKyAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VFdmVudChhZGp1c3RlZFBvaW50LCBldmVudC5nbG9i
YWxQb3NpdGlvbigpLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpKTsKICAgICByZXR1cm4gc2VuZENvbnRleHRN
ZW51RXZlbnQobW91c2VFdmVudCk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKEdFU1RVUkVfRVZFTlRT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggZWUyNjk0NDMzZGIxYzI3OTlkNTA0
YjJkNDg0ZjA0ZTM1NDcwMzBlMy4uN2RkMWM5MzY2MjQ5ZGZkYTRiMjY3MjIxNTczNjI1OTVmNDRm
ODdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0xNzAsNiArMTcwLDEwIEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoVE9VQ0hfQURKVVNUTUVOVCkKICAgICBib29sIGJlc3RDbGlj
a2FibGVOb2RlRm9yVG91Y2hQb2ludChjb25zdCBJbnRQb2ludCYgdG91Y2hDZW50ZXIsIGNvbnN0
IEludFNpemUmIHRvdWNoUmFkaXVzLCBJbnRQb2ludCYgdGFyZ2V0UG9pbnQsIE5vZGUqJiB0YXJn
ZXROb2RlKTsKICAgICBib29sIGJlc3Rab29tYWJsZUFyZWFGb3JUb3VjaFBvaW50KGNvbnN0IElu
dFBvaW50JiB0b3VjaENlbnRlciwgY29uc3QgSW50U2l6ZSYgdG91Y2hSYWRpdXMsIEludFJlY3Qm
IHRhcmdldEFyZWEsIE5vZGUqJiB0YXJnZXROb2RlKTsKKworICAgIC8vIEZJWE1FOiBBZGQgYSBn
ZXN0dXJlIHR5cGUgcGFyYW1ldGVyIHNvIHRoYXQgZGlmZmVyZW50IGNhbmRpZGF0ZSBzZWxlY3Rp
b24gY3JpdGVyaWEgbWF5IGJlIHVzZWQgZm9yCisgICAgLy8gZGlmZmVyZW50IGdlc3R1cmUgdHlw
ZXMuIEN1cnJlbnRseSBUb3VjaEFkanVzdG1lbnQ6Om5vZGVSZXNwb25kc1RvVGFwR2VzdHVyZSBp
cyB1c2VkIGZvciBhbGwgdHlwZXMuCisgICAgYm9vbCBhZGp1c3RHZXN0dXJlUG9zaXRpb24oY29u
c3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmLCBJbnRQb2ludCYgYWRqdXN0ZWRQb2ludCk7CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDMzNDI4YzMy
OTRmNjllNjM1MDRlNjRhZTllZDQyOGQ3ZWQ4MTkzMjguLmMwYWNhMmQ0OTNlZWMxOGRhOTU5ZjM2
OWQ1Yzk3MGE3YTg1OTZiNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTE2NSw2ICsxNjUsNyBAQCBQbGF0
Zm9ybUdlc3R1cmVFdmVudEJ1aWxkZXI6OlBsYXRmb3JtR2VzdHVyZUV2ZW50QnVpbGRlcihXaWRn
ZXQqIHdpZGdldCwgY29uc3QgVwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYklucHV0RXZl
bnQ6Okdlc3R1cmVMb25nUHJlc3M6CiAgICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6Okdl
c3R1cmVMb25nUHJlc3M7CisgICAgICAgIG1fYXJlYSA9IEludFNpemUoZS5ib3VuZGluZ0JveC53
aWR0aCwgZS5ib3VuZGluZ0JveC5oZWlnaHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFdl
YklucHV0RXZlbnQ6Okdlc3R1cmVQaW5jaEJlZ2luOgogICAgICAgICBtX3R5cGUgPSBQbGF0Zm9y
bUV2ZW50OjpHZXN0dXJlUGluY2hCZWdpbjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjZWQxNTlmNGY3N2YwZmY3ZTQxNWQ0
ZjE5YjllZDcyNjJlZmZlOWZmLi4yMDRjZDJhODcyMTIwNWQ3Y2VhYmU2ZmFmMWI5MmI3MjQyMGIw
MzJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDgtMDMgIFRlcnJ5IEFuZGVyc29uICA8
dGRhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQXBwbHkgdGFyZ2V0IGZ1enppbmcg
d2hlbiBzZW5kaW5nIGEgY29udGV4dCBtZW51IGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjkxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBsYXlvdXQgdGVzdCB0byB2ZXJpZnkgdGhhdCBj
b250ZXh0IG1lbnVzIGFwcGVhciBvbiBsaW5rcyBmb3IgYSBsb25nIHByZXNzCisgICAgICAgIGdl
c3R1cmUgd2hlbiBUT1VDSF9BREpVU1RNRU5UIGlzIGVuYWJsZWQuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICBTa2lwcGVkIG9uIHF0IGJlY2F1c2UgZ2VzdHVyZUxv
bmdQcmVzcyBpcyBub3QgdXNlZCBmb3IgY29udGV4dCBtZW51cy4KKyAgICAgICAgKiB0b3VjaGFk
anVzdG1lbnQvdG91Y2gtbGlua3MtbG9uZ3ByZXNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogdG91Y2hhZGp1c3RtZW50L3RvdWNoLWxpbmtzLWxvbmdwcmVzcy5odG1sOiBBZGRlZC4K
KwogMjAxMi0wOC0wMyAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBBZGQga2V5Ym9hcmQgc3VwcG9ydCBmb3IgY29sb3Igc3VnZ2VzdGlvbiBwb3B1cApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQKaW5kZXggNmFhYjFmN2ZlYjczOWUxNjBmYmRhOWU1OTdlNzI3MDIx
Njg2NTVmZi4uMzQxMDVmMTZhOWMxNjUyZDRlZjg3ZTFkZmU3YTIyNzFiOWYwMGZiYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0yNzAzLDMgKzI3MDMsNiBAQCBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9vYmplY3Qtc3JjLW5vbmUtYmxvY2tlZC5odG1sCiAK
ICMgRU5BQkxFKFdJREdFVF9SRUdJT04pIGlzIGRpc2FibGVkCiBmYXN0L2Nzcy93aWRnZXQtcmVn
aW9uLXBhcnNlci5odG1sCisKKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkyOTE0Cit0b3VjaGFkanVzdG1lbnQvdG91Y2gtbGlua3MtbG9uZ3ByZXNzLmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC90b3VjaC1saW5rcy1sb25ncHJl
c3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3RvdWNoLWxpbmtz
LWxvbmdwcmVzcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTk1MWY5NzYxNzAzMmFmMTBjMGNm
ZDExNGQ2MDEyYWFlMzJjN2E1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RvdWNo
YWRqdXN0bWVudC90b3VjaC1saW5rcy1sb25ncHJlc3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTcgQEAKK1Rlc3RzIGlmIGEgbG9uZyBwcmVzcyBnZXN0dXJlIG9uIGxpbmtzIHdpbGwgdHJpZ2dl
ciBhIGNvbnRleHQgbWVudSB3aGVuIHRvdWNoIGFkanVzdG1lbnQgaXMgdXNlZC4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3RpbmcgZGlyZWN0IGhpdHMuCitQQVNTCitQQVNT
CitQQVNTCitUZXN0aW5nIGluZGlyZWN0IGhpdHMuCitQQVNTCitQQVNTCitQQVNTCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3RvdWNoLWxpbmtzLWxvbmdwcmVzcy5odG1sIGIv
TGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3RvdWNoLWxpbmtzLWxvbmdwcmVzcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjExNjg0NmEwYmY3YTRlZjJiMDY2YWQwMTIyZWExMTEyZTJjOGRjMTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvdG91Y2gtbGlua3MtbG9u
Z3ByZXNzLmh0bWwKQEAgLTAsMCArMSw4NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDx0aXRsZT5Ub3VjaCBBZGp1c3RtZW50IDogVGVzdGluZyB0aGF0IGEgY29udGV4
dCBtZW51IHdpbGwgYXBwZWFyIG9uIGEgbG9uZyBwcmVzcyAtIGJ1ZyA5MjkxNDwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RvdWNoYWRqdXN0bWVudC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAgICAjc2FuZGJveCB7CisgICAgICAgICAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgICAgICB0b3A6
IDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorCis8ZGl2
IGlkPSJzYW5kYm94Ij4KKzxwPjxhIGhyZWY9IiIgaWQ9ImxpbmsxIj5JPC9hPiBwcm9wb3NlIHRv
IGNvbnNpZGVyIDxhIGhyZWY9IiIgaWQ9ImxpbmsyIj50aGUgcXVlc3Rpb248L2E+LCAiQ2FuIG1h
Y2hpbmVzIHRoaW5rPyI8YnI+VGhpcyBzaG91bGQgYmVnaW4gd2l0aCBkZWZpbml0aW9ucyBvZiB0
aGUgbWVhbmluZyBvZiB0aGUgdGVybXMgIm1hY2hpbmUiIGFuZCA8YSBocmVmPSIiIGlkPSJsaW5r
MyI+InRoaW5rLiI8L2E+PC9wPgorPC9kaXY+CisKKzxwIGlkPSdkZXNjcmlwdGlvbic+PC9wPgor
PGRpdiBpZD0nY29uc29sZSc+PC9kaXY+CisKKzxzY3JpcHQ+CisgICAgdmFyIGVsZW1lbnQ7Cisg
ICAgdmFyIGFkanVzdGVkTm9kZTsKKyAgICAvLyBTZXQgdXAgc2hvcnRjdXQgYWNjZXNzIHRvIGVs
ZW1lbnRzCisgICAgdmFyIGUgPSB7fTsKKyAgICBbJ3NhbmRib3gnLCAnbGluazEnLCAnbGluazIn
LCAnbGluazMnXS5mb3JFYWNoKGZ1bmN0aW9uKGEpIHsKKyAgICAgICAgZVthXSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGEpOworICAgIH0pOworCisgICAgZG9jdW1lbnQub25jb250ZXh0bWVu
dSA9IGZ1bmN0aW9uKCkgeyBkZWJ1ZygiUEFTUyIpOyB9CisKKyAgICBmdW5jdGlvbiB0ZXN0TG9u
Z1ByZXNzKHRvdWNocG9pbnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnRTZW5kZXIuZ2VzdHVy
ZUxvbmdQcmVzcykKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmdlc3R1cmVMb25nUHJlc3ModG91
Y2hwb2ludC5sZWZ0LCB0b3VjaHBvaW50LnRvcCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGRlYnVnKCJnZXN0dXJlTG9uZ1ByZXNzIG5vdCBpbXBsZW1lbnRlZCBieSB0aGlzIHBsYXRmb3Jt
LiIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3REaXJlY3RUb3VjaChlbGVtZW50KQorICAg
IHsKKyAgICAgICAgLy8gVG91Y2ggZGlyZWN0bHkgaW4gdGhlIGNlbnRlciBvZiB0aGUgZWxlbWVu
dC4KKyAgICAgICAgdmFyIHRvdWNocG9pbnQgPSBvZmZzZXRUb3VjaFBvaW50KGZpbmRBYnNvbHV0
ZUJvdW5kcyhlbGVtZW50KSwgJ2NlbnRlcicsIDAsIDIwLCAzMCk7CisgICAgICAgIHRlc3RMb25n
UHJlc3ModG91Y2hwb2ludCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdEluZGlyZWN0VG91
Y2goZWxlbWVudCkKKyAgICB7CisgICAgICAgIC8vIFRvdWNoIGp1c3QgcmlnaHQgb2YgdGhlIGVs
ZW1lbnQuCisgICAgICAgIHZhciB0b3VjaHBvaW50ID0gb2Zmc2V0VG91Y2hQb2ludChmaW5kQWJz
b2x1dGVCb3VuZHMoZWxlbWVudCksICdyaWdodCcsIDEwLCAzMCwgMjApOworICAgICAgICB0ZXN0
TG9uZ1ByZXNzKHRvdWNocG9pbnQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3REaXJlY3RU
b3VjaGVzKCkKKyAgICB7CisgICAgICAgIGRlYnVnKCdUZXN0aW5nIGRpcmVjdCBoaXRzLicpOwor
ICAgICAgICB0ZXN0RGlyZWN0VG91Y2goZS5saW5rMSk7CisgICAgICAgIHRlc3REaXJlY3RUb3Vj
aChlLmxpbmsyKTsKKyAgICAgICAgdGVzdERpcmVjdFRvdWNoKGUubGluazMpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHRlc3RJbmRpcmVjdFRvdWNoZXMoKQorICAgIHsKKyAgICAgICAgZGVidWco
J1Rlc3RpbmcgaW5kaXJlY3QgaGl0cy4nKTsKKyAgICAgICAgdGVzdEluZGlyZWN0VG91Y2goZS5s
aW5rMSk7CisgICAgICAgIHRlc3RJbmRpcmVjdFRvdWNoKGUubGluazIpOworICAgICAgICB0ZXN0
SW5kaXJlY3RUb3VjaChlLmxpbmszKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygp
CisgICAgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFs
cyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVOb2RlKSB7Cisg
ICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdHMgaWYgYSBsb25nIHByZXNzIGdlc3R1cmUgb24g
bGlua3Mgd2lsbCB0cmlnZ2VyIGEgY29udGV4dCBtZW51IHdoZW4gdG91Y2ggYWRqdXN0bWVudCBp
cyB1c2VkLicpOworICAgICAgICAgICAgdGVzdERpcmVjdFRvdWNoZXMoKTsKKyAgICAgICAgICAg
IHRlc3RJbmRpcmVjdFRvdWNoZXMoKTsKKyAgICAgICAgICAgIGUuc2FuZGJveC5zdHlsZS5kaXNw
bGF5ID0gJ25vbmUnOworICAgICAgICB9CisgICAgfQorICAgIHJ1blRlc3RzKCk7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>