<?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>89742</bug_id>
          
          <creation_ts>2012-06-21 23:27:59 -0700</creation_ts>
          <short_desc>[Win] key event&apos;s location does not work on Windows platform.</short_desc>
          <delta_ts>2012-11-15 16:30:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Windows Vista</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Takashi Sakamoto">tasak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>eric</cc>
    
    <cc>jberlin</cc>
    
    <cc>lforschler</cc>
    
    <cc>morrita</cc>
    
    <cc>pkasting</cc>
    
    <cc>rniwa</cc>
    
    <cc>sfalken</cc>
    
    <cc>tasak</cc>
    
    <cc>yusukes</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>655263</commentid>
    <comment_count>0</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-06-21 23:27:59 -0700</bug_when>
    <thetext>As WM_KEYDOWN or WM_KEYUP doesn&apos;t provide WM_LCONTROL, VM_RCONTROL, ..., WebInputFactory::keyboardEvent (i.e. Source/WebKit/chromium/src/win/WebInputEventFactory.cpp) should check which key is pressed, left or right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656363</commentid>
    <comment_count>1</comment_count>
      <attachid>149232</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-06-24 20:46:09 -0700</bug_when>
    <thetext>Created attachment 149232
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689963</commentid>
    <comment_count>2</comment_count>
      <attachid>149232</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-07 23:28:52 -0700</bug_when>
    <thetext>Comment on attachment 149232
Patch

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

&gt; Source/WebKit/chromium/ChangeLog:10
&gt; +        As WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, and WM_SYSKEYUP doesn&apos;t provide
&gt; +        a virtual keycode which distinguish between left-hand and right-hand
&gt; +        keys. So modified keybordEvent to see a scancode and an extended key

You mean in wParam? It&apos;s inaccurate to say those window messages don&apos;t supply key code that distinguishes left and right keys because they DO in lParam.

&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:99
&gt; +static int windowsKeycodeWithLocation(WPARAM wparam, LPARAM lParam)

Why is &quot;param&quot; in lParam capitalized?
It appears that the convention is not to capitalize it.

&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:101
&gt; +    int keycode = static_cast&lt;int&gt;(wparam);

Why are we casting it to int?

&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:118
&gt; +

Where is the closing } ??

&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:124
&gt; +    int scancode = (lParam &gt;&gt; 16) &amp; 0xFF;
&gt; +    // WindowsVista or new Windows can support 0xe0 or 0xe1 to specify
&gt; +    // the extended scancode. In this case, if extended key bit is set,
&gt; +    // extended scancode is 0xe000 | scancode or 0xe100 | scancode.
&gt; +    int virtualKeycode = ::MapVirtualKey(scancode, MAPVK_VSC_TO_VK_EX);
&gt; +    return virtualKeyCode ? virtualKeyCode : keycode;

For which virtual key code is this code used?

&gt; Tools/DumpRenderTree/win/EventSender.cpp:486
&gt; +        // Keyboard Scan Code Specification:
&gt; +        // http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/scancode.doc
&gt; +        keyData += 0x1d &lt;&lt; 16; // Left control&apos;s scancode

Why are we not calling MapVirtualKey with MAPVK_VK_TO_VSC?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690415</commentid>
    <comment_count>3</comment_count>
      <attachid>149232</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-08 09:44:09 -0700</bug_when>
    <thetext>Comment on attachment 149232
Patch

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

r- mostly due to Ryosuke&apos;s comments - it&apos;s clear that a new patch and another round of review will be needed.

&gt; Source/WebKit/chromium/ChangeLog:14
&gt; +        * src/win/WebInputEventFactory.cpp:
&gt; +        (WebKit::windowsKeycodeWithLocation):

This code seems port neutral. Why does it have to be in chromium directory? What do other ports do?

&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:123
&gt; +    // WindowsVista or new Windows can support 0xe0 or 0xe1 to specify
&gt; +    // the extended scancode. In this case, if extended key bit is set,
&gt; +    // extended scancode is 0xe000 | scancode or 0xe100 | scancode.
&gt; +    int virtualKeycode = ::MapVirtualKey(scancode, MAPVK_VSC_TO_VK_EX);

I have a lot of difficulty understanding this comment, and how it relates to the code below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703811</commentid>
    <comment_count>4</comment_count>
      <attachid>149232</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-23 23:29:17 -0700</bug_when>
    <thetext>Comment on attachment 149232
Patch

r- per my and ap&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710501</commentid>
    <comment_count>5</comment_count>
      <attachid>161883</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-03 02:22:06 -0700</bug_when>
    <thetext>Created attachment 161883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710503</commentid>
    <comment_count>6</comment_count>
      <attachid>149232</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-03 02:24:01 -0700</bug_when>
    <thetext>Comment on attachment 149232
Patch

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

Thank you for reviewing.

&gt;&gt; Source/WebKit/chromium/ChangeLog:10
&gt;&gt; +        keys. So modified keybordEvent to see a scancode and an extended key
&gt; 
&gt; You mean in wParam? It&apos;s inaccurate to say those window messages don&apos;t supply key code that distinguishes left and right keys because they DO in lParam.

Yes, I mean wParam. I know lParam has extended key bit. However, it is not A VIRTUAL KEYCODE. We have to re-create a new virtual keycode by using the given scancode, extended key bit, and virtual keycode. So I wrote &quot;So modified keybordEvent to see a scancode and an extended key bit in lParam to distinguish.&quot;

&gt;&gt; Source/WebKit/chromium/ChangeLog:14
&gt;&gt; +        (WebKit::windowsKeycodeWithLocation):
&gt; 
&gt; This code seems port neutral. Why does it have to be in chromium directory? What do other ports do?

I think, this code is very windows-specific. As far as I know, Linux+GTK uses XKeyEvent and it contains a key symbol which distinguishes between left- and right-hand keys (e.g. keysym 0xffe1, Shift_L or keysym 0xffe2, Shift_R).
(I read chromium/src/content/browser/renderer_host/native_web_keyboard_event_gtk.cc)

&gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:99
&gt;&gt; +static int windowsKeycodeWithLocation(WPARAM wparam, LPARAM lParam)
&gt; 
&gt; Why is &quot;param&quot; in lParam capitalized?
&gt; It appears that the convention is not to capitalize it.

Done.

&gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:118
&gt;&gt; +
&gt; 
&gt; Where is the closing } ??

I&apos;m sorry. I have just prepared windows development environment. (So I was planning to see WebKit bot&apos;s result.) Now I can build and do tests in Windows. I tested my new patch.

&gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:123
&gt;&gt; +    int virtualKeycode = ::MapVirtualKey(scancode, MAPVK_VSC_TO_VK_EX);
&gt; 
&gt; I have a lot of difficulty understanding this comment, and how it relates to the code below.

I rewrote the comment and moved the comment before &quot;if ((lParam &gt;&gt; 16) &amp; KF_EXTENDED)&quot;. I mean, for example, the code always returns VK_RCONTROL in the case where the given lparam&apos;s extended key bit is set and the wparam is VK_CONTROL. However, it might be better to use MapVirtualKey to recreate a new virtual keycode. I think, the conversion should be done by Windows API.

&gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:124
&gt;&gt; +    return virtualKeyCode ? virtualKeyCode : keycode;
&gt; 
&gt; For which virtual key code is this code used?

Done.

&gt;&gt; Tools/DumpRenderTree/win/EventSender.cpp:486
&gt;&gt; +        keyData += 0x1d &lt;&lt; 16; // Left control&apos;s scancode
&gt; 
&gt; Why are we not calling MapVirtualKey with MAPVK_VK_TO_VSC?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710513</commentid>
    <comment_count>7</comment_count>
      <attachid>161883</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-03 02:50:35 -0700</bug_when>
    <thetext>Comment on attachment 161883
Patch

Attachment 161883 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13729804</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710870</commentid>
    <comment_count>8</comment_count>
      <attachid>161982</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-04 01:06:58 -0700</bug_when>
    <thetext>Created attachment 161982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710883</commentid>
    <comment_count>9</comment_count>
      <attachid>161982</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-04 01:31:14 -0700</bug_when>
    <thetext>Comment on attachment 161982
Patch

Attachment 161982 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13745377</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710949</commentid>
    <comment_count>10</comment_count>
      <attachid>162003</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-04 04:02:25 -0700</bug_when>
    <thetext>Created attachment 162003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711175</commentid>
    <comment_count>11</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-09-04 09:32:32 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 149232 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149232&amp;action=review
&gt; 
&gt; Thank you for reviewing.
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/ChangeLog:10
&gt; &gt;&gt; +        keys. So modified keybordEvent to see a scancode and an extended key
&gt; &gt; 
&gt; &gt; You mean in wParam? It&apos;s inaccurate to say those window messages don&apos;t supply key code that distinguishes left and right keys because they DO in lParam.
&gt; 
&gt; Yes, I mean wParam. I know lParam has extended key bit. However, it is not A VIRTUAL KEYCODE. We have to re-create a new virtual keycode by using the given scancode, extended key bit, and virtual keycode. So I wrote &quot;So modified keybordEvent to see a scancode and an extended key bit in lParam to distinguish.&quot;
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/ChangeLog:14
&gt; &gt;&gt; +        (WebKit::windowsKeycodeWithLocation):
&gt; &gt; 
&gt; &gt; This code seems port neutral. Why does it have to be in chromium directory? What do other ports do?
&gt; 
&gt; I think, this code is very windows-specific. As far as I know, Linux+GTK uses XKeyEvent and it contains a key symbol which distinguishes between left- and right-hand keys (e.g. keysym 0xffe1, Shift_L or keysym 0xffe2, Shift_R).
&gt; (I read chromium/src/content/browser/renderer_host/native_web_keyboard_event_gtk.cc)

Sure, but can it be shared with the Apple Windows port?

&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:99
&gt; &gt;&gt; +static int windowsKeycodeWithLocation(WPARAM wparam, LPARAM lParam)
&gt; &gt; 
&gt; &gt; Why is &quot;param&quot; in lParam capitalized?
&gt; &gt; It appears that the convention is not to capitalize it.
&gt; 
&gt; Done.
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:118
&gt; &gt;&gt; +
&gt; &gt; 
&gt; &gt; Where is the closing } ??
&gt; 
&gt; I&apos;m sorry. I have just prepared windows development environment. (So I was planning to see WebKit bot&apos;s result.) Now I can build and do tests in Windows. I tested my new patch.
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:123
&gt; &gt;&gt; +    int virtualKeycode = ::MapVirtualKey(scancode, MAPVK_VSC_TO_VK_EX);
&gt; &gt; 
&gt; &gt; I have a lot of difficulty understanding this comment, and how it relates to the code below.
&gt; 
&gt; I rewrote the comment and moved the comment before &quot;if ((lParam &gt;&gt; 16) &amp; KF_EXTENDED)&quot;. I mean, for example, the code always returns VK_RCONTROL in the case where the given lparam&apos;s extended key bit is set and the wparam is VK_CONTROL. However, it might be better to use MapVirtualKey to recreate a new virtual keycode. I think, the conversion should be done by Windows API.
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:124
&gt; &gt;&gt; +    return virtualKeyCode ? virtualKeyCode : keycode;
&gt; &gt; 
&gt; &gt; For which virtual key code is this code used?
&gt; 
&gt; Done.
&gt; 
&gt; &gt;&gt; Tools/DumpRenderTree/win/EventSender.cpp:486
&gt; &gt;&gt; +        keyData += 0x1d &lt;&lt; 16; // Left control&apos;s scancode
&gt; &gt; 
&gt; &gt; Why are we not calling MapVirtualKey with MAPVK_VK_TO_VSC?
&gt; 
&gt; Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711935</commentid>
    <comment_count>12</comment_count>
      <attachid>162214</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-05 04:29:29 -0700</bug_when>
    <thetext>Created attachment 162214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711938</commentid>
    <comment_count>13</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-05 04:32:31 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 149232 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=149232&amp;action=review
&gt; &gt; 
&gt; &gt; Thank you for reviewing.
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebKit/chromium/ChangeLog:10
&gt; &gt; &gt;&gt; +        keys. So modified keybordEvent to see a scancode and an extended key
&gt; &gt; &gt; 
&gt; &gt; &gt; You mean in wParam? It&apos;s inaccurate to say those window messages don&apos;t supply key code that distinguishes left and right keys because they DO in lParam.
&gt; &gt; 
&gt; &gt; Yes, I mean wParam. I know lParam has extended key bit. However, it is not A VIRTUAL KEYCODE. We have to re-create a new virtual keycode by using the given scancode, extended key bit, and virtual keycode. So I wrote &quot;So modified keybordEvent to see a scancode and an extended key bit in lParam to distinguish.&quot;
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebKit/chromium/ChangeLog:14
&gt; &gt; &gt;&gt; +        (WebKit::windowsKeycodeWithLocation):
&gt; &gt; &gt; 
&gt; &gt; &gt; This code seems port neutral. Why does it have to be in chromium directory? What do other ports do?
&gt; &gt; 
&gt; &gt; I think, this code is very windows-specific. As far as I know, Linux+GTK uses XKeyEvent and it contains a key symbol which distinguishes between left- and right-hand keys (e.g. keysym 0xffe1, Shift_L or keysym 0xffe2, Shift_R).
&gt; &gt; (I read chromium/src/content/browser/renderer_host/native_web_keyboard_event_gtk.cc)
&gt; 
&gt; Sure, but can it be shared with the Apple Windows port?


I see. I moved the code to WebCore/platform/win/KeyEventWin.cpp.

Best regards,
Takashi Sakamoto

&gt; 
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:99
&gt; &gt; &gt;&gt; +static int windowsKeycodeWithLocation(WPARAM wparam, LPARAM lParam)
&gt; &gt; &gt; 
&gt; &gt; &gt; Why is &quot;param&quot; in lParam capitalized?
&gt; &gt; &gt; It appears that the convention is not to capitalize it.
&gt; &gt; 
&gt; &gt; Done.
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:118
&gt; &gt; &gt;&gt; +
&gt; &gt; &gt; 
&gt; &gt; &gt; Where is the closing } ??
&gt; &gt; 
&gt; &gt; I&apos;m sorry. I have just prepared windows development environment. (So I was planning to see WebKit bot&apos;s result.) Now I can build and do tests in Windows. I tested my new patch.
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:123
&gt; &gt; &gt;&gt; +    int virtualKeycode = ::MapVirtualKey(scancode, MAPVK_VSC_TO_VK_EX);
&gt; &gt; &gt; 
&gt; &gt; &gt; I have a lot of difficulty understanding this comment, and how it relates to the code below.
&gt; &gt; 
&gt; &gt; I rewrote the comment and moved the comment before &quot;if ((lParam &gt;&gt; 16) &amp; KF_EXTENDED)&quot;. I mean, for example, the code always returns VK_RCONTROL in the case where the given lparam&apos;s extended key bit is set and the wparam is VK_CONTROL. However, it might be better to use MapVirtualKey to recreate a new virtual keycode. I think, the conversion should be done by Windows API.
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebKit/chromium/src/win/WebInputEventFactory.cpp:124
&gt; &gt; &gt;&gt; +    return virtualKeyCode ? virtualKeyCode : keycode;
&gt; &gt; &gt; 
&gt; &gt; &gt; For which virtual key code is this code used?
&gt; &gt; 
&gt; &gt; Done.
&gt; &gt; 
&gt; &gt; &gt;&gt; Tools/DumpRenderTree/win/EventSender.cpp:486
&gt; &gt; &gt;&gt; +        keyData += 0x1d &lt;&lt; 16; // Left control&apos;s scancode
&gt; &gt; &gt; 
&gt; &gt; &gt; Why are we not calling MapVirtualKey with MAPVK_VK_TO_VSC?
&gt; &gt; 
&gt; &gt; Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711954</commentid>
    <comment_count>14</comment_count>
      <attachid>162214</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-05 04:54:01 -0700</bug_when>
    <thetext>Comment on attachment 162214
Patch

Attachment 162214 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13742877</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712870</commentid>
    <comment_count>15</comment_count>
      <attachid>162416</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-05 21:59:27 -0700</bug_when>
    <thetext>Created attachment 162416
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728046</commentid>
    <comment_count>16</comment_count>
      <attachid>162416</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-25 15:57:03 -0700</bug_when>
    <thetext>Comment on attachment 162416
Patch

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

r- due to style issues.

&gt; Source/WebCore/ChangeLog:9
&gt; +        Additional information of the change such as approach, rationale. Pleas        As WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, and WM_SYSKEYUP doesn&apos;t
&gt; +        directly provide a virtual keycode which distinguish between left-hand

These two lines of changelogs are messed up.

&gt; Source/WebCore/platform/win/KeyEventWin.cpp:189
&gt; +static int windowsKeycodeWithLocation(WPARAM wparam, LPARAM lparam)

It&apos;s better to give these argument variable more descriptive names like keycode.

&gt; Source/WebCore/platform/win/KeyEventWin.cpp:196
&gt; +    // 24bit: Indicates whether the key is an extended key, such as
&gt; +    // the right-hand ALT and CTRL keys.

This is quite obvious from the code.

&gt; Source/WebCore/platform/win/KeyEventWin.cpp:197
&gt; +    // However, if we don&apos;t need to support WindowsXP or older Windows,

Nit: Windows XP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730279</commentid>
    <comment_count>17</comment_count>
      <attachid>166148</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-27 23:23:44 -0700</bug_when>
    <thetext>Created attachment 166148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730290</commentid>
    <comment_count>18</comment_count>
      <attachid>166154</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-27 23:50:45 -0700</bug_when>
    <thetext>Created attachment 166154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730324</commentid>
    <comment_count>19</comment_count>
      <attachid>162416</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-28 00:48:55 -0700</bug_when>
    <thetext>Comment on attachment 162416
Patch

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

Thank you for reviewing.

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        directly provide a virtual keycode which distinguish between left-hand
&gt; 
&gt; These two lines of changelogs are messed up.

Done.

&gt;&gt; Source/WebCore/platform/win/KeyEventWin.cpp:196
&gt;&gt; +    // the right-hand ALT and CTRL keys.
&gt; 
&gt; This is quite obvious from the code.

Done.

&gt;&gt; Source/WebCore/platform/win/KeyEventWin.cpp:197
&gt;&gt; +    // However, if we don&apos;t need to support WindowsXP or older Windows,
&gt; 
&gt; Nit: Windows XP.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737189</commentid>
    <comment_count>20</comment_count>
      <attachid>162416</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-08 16:15:41 -0700</bug_when>
    <thetext>Comment on attachment 162416
Patch

Cleared review? from obsolete attachment 162416 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738604</commentid>
    <comment_count>21</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-09 23:21:08 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 162416 [details])
&gt; Cleared review? from obsolete attachment 162416 [details] so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).

I see.
I uploaded a new patch, i.e. https://bug-89742-attachments.webkit.org/attachment.cgi?id=166154.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768202</commentid>
    <comment_count>22</comment_count>
      <attachid>166154</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2012-11-15 09:55:13 -0800</bug_when>
    <thetext>Comment on attachment 166154
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768651</commentid>
    <comment_count>23</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2012-11-15 16:30:48 -0800</bug_when>
    <thetext>Committed r134855: &lt;http://trac.webkit.org/changeset/134855&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149232</attachid>
            <date>2012-06-24 20:46:09 -0700</date>
            <delta_ts>2012-09-03 02:24:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89742-20120625124608.patch</filename>
            <type>text/plain</type>
            <size>8347</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDNjYmIyZTgwMzRjNWVmOWI4YjhkNTVmN2RiNWEwNzQ0MDcwMTc3YjYuLmFmODM1OGM3MzIwYTBl
MDczZjBjZWU3NzYyMzYyNzJmNWY0ZTQ3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTItMDYtMjIgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29n
bGUuY29tPgorCisgICAgICAgIFtXaW5dIGtleSBldmVudCdzIGxvY2F0aW9uIGRvZXMgbm90IHdv
cmsgb24gV2luZG93cyBwbGF0Zm9ybS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg5NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQXMgV01fS0VZRE9XTiwgV01fS0VZVVAsIFdNX1NZU0tFWURPV04sIGFu
ZCBXTV9TWVNLRVlVUCBkb2Vzbid0IHByb3ZpZGUKKyAgICAgICAgYSB2aXJ0dWFsIGtleWNvZGUg
d2hpY2ggZGlzdGluZ3Vpc2ggYmV0d2VlbiBsZWZ0LWhhbmQgYW5kIHJpZ2h0LWhhbmQKKyAgICAg
ICAga2V5cy4gU28gbW9kaWZpZWQga2V5Ym9yZEV2ZW50IHRvIHNlZSBhIHNjYW5jb2RlIGFuZCBh
biBleHRlbmRlZCBrZXkKKyAgICAgICAgYml0IGluIGxQYXJhbSB0byBkaXN0aW5ndWlzaC4KKwor
ICAgICAgICAqIHNyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwOgorICAgICAgICAoV2Vi
S2l0Ojp3aW5kb3dzS2V5Y29kZVdpdGhMb2NhdGlvbik6CisgICAgICAgIE5ld2x5IGFkZGVkIHRv
IGNvbnZlcnQgdmlydHVhbCBrZXljb2RlIHdpdGhvdXQgbG9jYXRpb24gaW50bworICAgICAgICB2
aXJ0dWFsIGtleWNvZGUgd2l0aCBsb2NhdGlvbiBieSB1c2luZyBNYXBWaXJ0dWFsS2V5IGFuZCBh
biBleHRlbmRlZAorICAgICAgICBrZXkgYml0LiBJbiB3aW5kb3dzIHZpc3RhIG9yIG5ld2VyIHdp
bmRvd3MgcGxhdGZvcm0sIE1hcFZpcnR1YWxLZXkKKyAgICAgICAgc3VwcG9ydHMgZXh0ZW5kZWQg
c2NhbmNvZGVzLCBpLmUuIDB4ZTBubm5uIG9yIDB4ZTFubm5uLiBIb3dldmVyIHdpbmRvd3MKKyAg
ICAgICAgeHAgYW5kIHdpbmRvd3MyMDAwIChhbmQgb2xkZXIgd2luZG93cykgZG9uJ3QgaGF2ZSBz
dWNoIE1hcFZpcnR1YWxLZXkuCisgICAgICAgIFNvIGlmIHNvbWUga2V5IG5vdGlmaWNhdGlvbiBo
YXMgYW4gZXh0ZW5kZWQga2V5IGJpdCBzZXQgYW5kIGl0cyB2aXJ0dWFsCisgICAgICAgIGtleWNv
ZGUgaXMgVktfQ09OVFJPTCwgVktfU0hJRlQgb3IgVktfQUxULCB0cmVhdCBhcyByaWdodC1oYW5k
IGtleXMuCisgICAgICAgIElmIG5vdCwgdXNlIE1hcFZpcnR1YWxLZXkgdG8gY29udmVydCBpdHMg
c2NhbmNvZGUgaW50byBhIHZpcnR1YWwKKyAgICAgICAga2V5Y29kZSB3aGljaCBkaXN0aW5ndWlz
aGVzIGJldHdlZW4gbGVmdC1oYW5kIGFuZCByaWdodC1oYW5kIGtleXMuCisgICAgICAgIFRvIGNo
ZWNrIG9ubHkgd2hldGhlciBjb250cm9sLCBzaGlmdCBvciBhbHQga2V5IGlzIHByZXNzZWQgb3Ig
bm90LAorICAgICAgICBHZXRLZXlTdGF0ZSB3b3JrcyB3ZWxsLiBIb3dldmVyLCBpZiBhIG5ldyBX
TV9LRVlET1dOIHdob3NlIHZpcnR1YWwKKyAgICAgICAga2V5Y29kZSBpcyBWS19DT05UUk9MIGFu
ZCBsZWZ0LWhhbmQgb3IgcmlnaHQtaGFuZCBjb250cm9sIGhhcyBiZWVuCisgICAgICAgIGFscmVh
ZCBwcmVzc2VkLCBpdCBpcyBkaWZmaWN1bHQgdG8gZGlzdGluZ3Vpc2ggd2hpY2ggY29udHJvbCBo
YXMgYmVlbgorICAgICAgICBqdXN0IHByZXNzZWQuIEkgdGhpbmssIGl0IHdvdWxkIGJlIG5vdC1n
b29kIHRvIGtlZXAgcHJldmlvdXMga2V5CisgICAgICAgIGluZm9ybWF0aW9uIGluIFdlYklucHV0
RXZlbnRGYWN0b3J5IGNsYXNzLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnB1dEV2ZW50RmFjdG9y
eTo6a2V5Ym9hcmRFdmVudCk6CisgICAgICAgIE1vZGlmeSB0byB1c2UgdGhlIGFib3ZlIHdpbmRv
d3NLZXljb2RlV2l0aExvY2F0aW9uIGZvciBpbmlmaWFsaXppbmcKKyAgICAgICAgV2ViS2V5Ym9h
cmRFdmVudCdzIHdpbmRvd3NLZXljb2RlLgorCiAyMDEyLTA2LTI0ICBMdWtlIE1hY3BoZXJzb24g
IDxtYWNwaGVyc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgcnVudGltZSBmbGFnIHRv
IGVuYWJsZS9kaXNhYmxlIENTUyB2YXJpYWJsZXMgKGluIGFkZGl0aW9uIHRvIGV4aXN0aW5nIGNv
bXBpbGUtdGltZSBmbGFnKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwCmluZGV4IDlkYTRiNGEyNzk4YWFiY2Q1ZmI4
NzJhNjVkNTZkZjU1YzIwMTYwMDkuLjY2NGRmZTQxMDlkZmM1YTM3Mjc2ZDllMTBkZGRhZWQ2MDdh
NTlhN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL3dpbi9XZWJJbnB1
dEV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvd2luL1dl
YklucHV0RXZlbnRGYWN0b3J5LmNwcApAQCAtOTYsNiArOTYsMzQgQEAgc3RhdGljIHZvaWQgU2V0
VG9nZ2xlS2V5U3RhdGUoV2ViSW5wdXRFdmVudCogZXZlbnQpCiAgICAgICAgIGV2ZW50LT5tb2Rp
ZmllcnMgfD0gV2ViSW5wdXRFdmVudDo6Q2Fwc0xvY2tPbjsKIH0KIAorc3RhdGljIGludCB3aW5k
b3dzS2V5Y29kZVdpdGhMb2NhdGlvbihXUEFSQU0gd3BhcmFtLCBMUEFSQU0gbFBhcmFtKQorewor
ICAgIGludCBrZXljb2RlID0gc3RhdGljX2Nhc3Q8aW50Pih3cGFyYW0pOworICAgIGlmIChrZXlj
b2RlICE9IFZLX0NPTlRST0wgJiYga2V5Y29kZSAhPSBWS19NRU5VICYmIGtleWNvZGUgIT0gVktf
U0hJRlQpCisgICAgICAgIHJldHVybiBrZXljb2RlOworCisgICAgLy8gMjRiaXQ6IEluZGljYXRl
cyB3aGV0aGVyIHRoZSBrZXkgaXMgYW4gZXh0ZW5kZWQga2V5LCBzdWNoIGFzCisgICAgLy8gdGhl
IHJpZ2h0LWhhbmQgQUxUIGFuZCBDVFJMIGtleXMuCisgICAgaWYgKChsUGFyYW0gPj4gMTYpICYg
S0ZfRVhURU5ERUQpIHsKKyAgICAgICAgc3dpdGNoIChrZXljb2RlKSB7CisgICAgICAgIGNhc2Ug
VktfQ09OVFJPTDoKKyAgICAgICAgICAgIHJldHVybiBWS19SQ09OVFJPTDsKKyAgICAgICAgY2Fz
ZSBWS19TSElGVDoKKyAgICAgICAgICAgIHJldHVybiBWS19SU0hJRlQ7CisgICAgICAgIGNhc2Ug
VktfTUVOVToKKyAgICAgICAgICAgIHJldHVybiBWS19STUVOVTsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICBpbnQgc2NhbmNvZGUgPSAobFBh
cmFtID4+IDE2KSAmIDB4RkY7CisgICAgLy8gV2luZG93c1Zpc3RhIG9yIG5ldyBXaW5kb3dzIGNh
biBzdXBwb3J0IDB4ZTAgb3IgMHhlMSB0byBzcGVjaWZ5CisgICAgLy8gdGhlIGV4dGVuZGVkIHNj
YW5jb2RlLiBJbiB0aGlzIGNhc2UsIGlmIGV4dGVuZGVkIGtleSBiaXQgaXMgc2V0LAorICAgIC8v
IGV4dGVuZGVkIHNjYW5jb2RlIGlzIDB4ZTAwMCB8IHNjYW5jb2RlIG9yIDB4ZTEwMCB8IHNjYW5j
b2RlLgorICAgIGludCB2aXJ0dWFsS2V5Y29kZSA9IDo6TWFwVmlydHVhbEtleShzY2FuY29kZSwg
TUFQVktfVlNDX1RPX1ZLX0VYKTsKKyAgICByZXR1cm4gdmlydHVhbEtleUNvZGUgPyB2aXJ0dWFs
S2V5Q29kZSA6IGtleWNvZGU7Cit9CisKIFdlYktleWJvYXJkRXZlbnQgV2ViSW5wdXRFdmVudEZh
Y3Rvcnk6OmtleWJvYXJkRXZlbnQoSFdORCBod25kLCBVSU5UIG1lc3NhZ2UsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdQQVJBTSB3cGFyYW0s
IExQQVJBTSBscGFyYW0pCiB7CkBAIC0xMDcsNyArMTM1LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBX
ZWJJbnB1dEV2ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVudChIV05EIGh3bmQsIFVJTlQgbWVzc2Fn
ZSwKICAgICAvLyBjYWxsZXIsIHdobyB3b3VsZCBrbm93IGZvciBzdXJlLgogICAgIHJlc3VsdC50
aW1lU3RhbXBTZWNvbmRzID0gR2V0TWVzc2FnZVRpbWUoKSAvIDEwMDAuMDsKIAotICAgIHJlc3Vs
dC53aW5kb3dzS2V5Q29kZSA9IHN0YXRpY19jYXN0PGludD4od3BhcmFtKTsKKyAgICByZXN1bHQu
d2luZG93c0tleUNvZGUgPSB3aW5kb3dzS2V5Y29kZVdpdGhMb2NhdGlvbih3cGFyYW0sIGxwYXJh
bSk7CiAgICAgLy8gUmVjb3JkIHRoZSBzY2FuIGNvZGUgKGFsb25nIHdpdGggb3RoZXIgY29udGV4
dCBiaXRzKSBmb3IgdGhpcyBrZXkgZXZlbnQuCiAgICAgcmVzdWx0Lm5hdGl2ZUtleUNvZGUgPSBz
dGF0aWNfY2FzdDxpbnQ+KGxwYXJhbSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjYzZiMjExZDE2NTNhMWIxMzdmY2QxYTViM2FjZTBhYmJk
OWM5Y2U2Li4xN2RiNTZmNGI2ZWVmNDkzNTE3YWIyM2Q3NDRlYmVlM2JiNzc3NzZkIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDYtMjIgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisg
ICAgICAgIFtXaW5dIGtleSBldmVudCdzIGxvY2F0aW9uIGRvZXMgbm90IHdvcmsgb24gV2luZG93
cyBwbGF0Zm9ybS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg5NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU2luY2UgV01fS0VZRE9XTiwgV01fU1lTS0VZRE9XTiwgV01fU1lTS0VZVVAgYW5kIFdNX0tF
WVVQIGRvZXNuJ3QKKyAgICAgICAgcHJvdmlkZSBsZWZ0LSBvciByaWdodC0gdmlydHVhbCBrZXlj
b2RlLCBpLmUuIFZLX0xDT05UUk9MLCBWS19SQ09OVFJPTCwKKyAgICAgICAgYW5kIHNvIG9uLCBX
ZWJJbnB1dEV2ZW50RmFjdG9yeSB1c2VzIGEgc2NhbmNvZGUgYW5kIGFuIGV4dGVuZGVkIGtleSBi
aXQKKyAgICAgICAgaW4gbFBhcmFtIHRvIGRpc3Rpbmd1aXNoIHdoaWNoIGtleSBpcyBwcmVzc2Vk
IG9yIHJlbGVhc2VkLgorICAgICAgICBTbyBFdmVudFNlbmRlciBoYXMgdG8gYWRkIHNjYW5jb2Rl
cyB0byBzdWNoIGtleWV2ZW50IG1lc3NhZ2VzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
d2luL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKGtleURvd25DYWxsYmFjayk6CisgICAgICAg
IE1vZGlmaWVkIHRvIHVzZSBrZXlEYXRhIHdoZW4gY29udHJvbCwgc2hpZnQgb3IgbWVudSBrZXkg
aXMgc3BlY2lmaWVkLgorICAgICAgICBTY2FuY29kZSBpbmZvcm1hdGlvbiBpcyBvYnRhaW5lZCBm
cm9tIEtleWJvYXJkIFNjYW4gQ29kZSBTcGVjaWZpY2F0aW9uOgorICAgICAgICBodHRwOi8vZG93
bmxvYWQubWljcm9zb2Z0LmNvbS9kb3dubG9hZC8xLzYvMS8xNjFiYTUxMi00MGUyLTRjYzktODQz
YS05MjMxNDNmMzQ1NmMvc2NhbmNvZGUuZG9jCisKIDIwMTItMDYtMjQgIERhbiBCZXJuc3RlaW4g
IDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWRlIGRlYnVnLXttaW5pYnJvd3NlcixzYWZh
cmksdGVzdC1ydW5uZXJ9IHdvcmsgd2l0aCBMTERCLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL0V2ZW50U2VuZGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9F
dmVudFNlbmRlci5jcHAKaW5kZXggNzZkYWZkOTQ4ZWQ2MDQzYTM1YjQxNzllMTEyOGJiNDdlYzc5
ZDEzZS4uNWEzYjc3ODY4ZjEwYTM3ZTU2N2JiNzlhY2EyNmJiOTMwZDI0YmVlYiAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0V2ZW50U2VuZGVyLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS93aW4vRXZlbnRTZW5kZXIuY3BwCkBAIC00NzksMTkgKzQ3OSwyOSBAQCBz
dGF0aWMgSlNWYWx1ZVJlZiBrZXlEb3duQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpT
T2JqZWN0UmVmIGZ1bmN0aW9uLCBKUwogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1NOQVBT
SE9UOwogICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVy
LCAibWVudSIpKQogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0FQUFM7Ci0gICAgZWxzZSBp
ZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJsZWZ0Q29udHJvbCIp
KQotICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0xDT05UUk9MOwotICAgIGVsc2UgaWYgKEpT
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdFNoaWZ0IikpCi0gICAg
ICAgIHZpcnR1YWxLZXlDb2RlID0gVktfTFNISUZUOwotICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNF
cXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdEFsdCIpKQotICAgICAgICB2aXJ0dWFs
S2V5Q29kZSA9IFZLX0xNRU5VOwotICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENT
dHJpbmcoY2hhcmFjdGVyLCAicmlnaHRDb250cm9sIikpCi0gICAgICAgIHZpcnR1YWxLZXlDb2Rl
ID0gVktfUkNPTlRST0w7Ci0gICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhjaGFyYWN0ZXIsICJyaWdodFNoaWZ0IikpCi0gICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktf
UlNISUZUOwotICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFj
dGVyLCAicmlnaHRBbHQiKSkKLSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19STUVOVTsKLSAg
ICBlbHNlIHsKKyAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJh
Y3RlciwgImxlZnRDb250cm9sIikpIHsKKyAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19DT05U
Uk9MOworICAgICAgICAvLyBLZXlib2FyZCBTY2FuIENvZGUgU3BlY2lmaWNhdGlvbjoKKyAgICAg
ICAgLy8gaHR0cDovL2Rvd25sb2FkLm1pY3Jvc29mdC5jb20vZG93bmxvYWQvMS82LzEvMTYxYmE1
MTItNDBlMi00Y2M5LTg0M2EtOTIzMTQzZjM0NTZjL3NjYW5jb2RlLmRvYworICAgICAgICBrZXlE
YXRhICs9IDB4MWQgPDwgMTY7IC8vIExlZnQgY29udHJvbCdzIHNjYW5jb2RlCisgICAgfSBlbHNl
IGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgImxlZnRTaGlmdCIp
KSB7CisgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfU0hJRlQ7CisgICAgICAgIGtleURhdGEg
Kz0gMHgyYSA8PCAxNjsgLy8gTGVmdCBzaGlmdCdzIHNjYW5jb2RlCisgICAgfSBlbHNlIGlmIChK
U1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgImxlZnRBbHQiKSkgeworICAg
ICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX01FTlU7CisgICAgICAgIGtleURhdGEgKz0gMHgzOCA8
PCAxNjsgLy8gTGVmdCBhbHQncyBzY2FuY29kZQorICAgIH0gZWxzZSBpZiAoSlNTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJyaWdodENvbnRyb2wiKSkgeworICAgICAgICB2
aXJ0dWFsS2V5Q29kZSA9IFZLX0NPTlRST0w7CisgICAgICAgIC8vIFJpZ2h0IGNvbnRyb2wncyBz
Y2FuY29kZSBpcyAweGUwMWQsIHNvIGV4dGVuZGVkIGJpdCBpcyBzZXQuCisgICAgICAgIGtleURh
dGEgKz0gKEtGX0VYVEVOREVEICsgMHgxZCkgPDwgMTY7CisgICAgfSBlbHNlIGlmIChKU1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0U2hpZnQiKSkgeworICAgICAg
ICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1NISUZUOworICAgICAgICBrZXlEYXRhICs9IDB4MzYgPDwg
MTY7IC8vIFJpZ2h0IHNoaWZ0J3Mgc2NhbmNvZGUuCisgICAgfSBlbHNlIGlmIChKU1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0QWx0IikpIHsKKyAgICAgICAgdmly
dHVhbEtleUNvZGUgPSBWS19NRU5VOworICAgICAgICAvLyBSaWdodCBhbHQncyBzY2FuY29kZSBp
cyAweGUwMzgsIHNvIGV4dGVuZGVkIGJpdCBpcyBzZXQuCisgICAgICAgIGtleURhdGEgKz0gKEtG
X0VYVEVOREVEICsgMHgzOCkgPDwgMTY7CisgICAgfSBlbHNlIHsKICAgICAgICAgY2hhckNvZGUg
PSBKU1N0cmluZ0dldENoYXJhY3RlcnNQdHIoY2hhcmFjdGVyKVswXTsKICAgICAgICAgdmlydHVh
bEtleUNvZGUgPSBMT0JZVEUoVmtLZXlTY2FuKGNoYXJDb2RlKSk7CiAgICAgICAgIGlmIChXVEY6
OmlzQVNDSUlVcHBlcihjaGFyQ29kZSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161883</attachid>
            <date>2012-09-03 02:22:06 -0700</date>
            <delta_ts>2012-09-04 01:06:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89742-20120903182101.patch</filename>
            <type>text/plain</type>
            <size>7866</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3Mzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGQ1ZTQxOGRjM2U1MjFmZDE4NDQ0ODZhOWU2Y2VlNGExMWEyMjExMmQuLjE1OThmY2RkMzlhYTZm
M2YyM2FlOWU3ODgxZGI3ZDRlNzBlYTdlNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTItMDktMDMgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29n
bGUuY29tPgorCisgICAgICAgIFtXaW5dIGtleSBldmVudCdzIGxvY2F0aW9uIGRvZXMgbm90IHdv
cmsgb24gV2luZG93cyBwbGF0Zm9ybS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg5NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQXMgV01fS0VZRE9XTiwgV01fS0VZVVAsIFdNX1NZU0tFWURPV04sIGFu
ZCBXTV9TWVNLRVlVUCBkb2Vzbid0CisgICAgICAgIGRpcmVjdGx5IHByb3ZpZGUgYSB2aXJ0dWFs
IGtleWNvZGUgd2hpY2ggZGlzdGluZ3Vpc2ggYmV0d2VlbiBsZWZ0LWhhbmQKKyAgICAgICAgYW5k
IHJpZ2h0LWhhbmQga2V5cy4gVG8gb2J0YWluIGEgdmlydHVhbCBrZXljb2RlLCB3ZSBoYXZlIHRv
IGxvb2sgYXQKKyAgICAgICAgbHBhcmFtLCBpLmUuIHNjYW5jb2RlIGFuZCBleHRlbmRlZCBrZXkg
Yml0LiBTbyBpZiB0aGUgZ2l2ZW4gdmlydHVhbAorICAgICAgICBrZXljb2RlIGlzIGNvbnRyb2ws
IHNoaWZ0LCBvciBtZW51LCB1c2UgTWFwVmlydHVhbEtleSB3aXRoIHNjYW5jb2RlIGFuZAorICAg
ICAgICBleHRlbmRlZCBrZXkgYml0IGFuZCByZWNyZWF0ZSBhIHZpcnR1YWwga2V5Y29kZSB3aGlj
aCBkaXN0aW5ndWlzaGVzCisgICAgICAgIGJldHdlZW4gbGVmdC1oYW5kIGFuZCByaWdodC1oYW5k
LgorCisgICAgICAgICogc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OndpbmRvd3NLZXljb2RlV2l0aExvY2F0aW9uKToKKyAgICAgICAgVXNlIHdwYXJh
bSBhbmQgbHBhcmFtIHRvIHJlY3JlYXRlIGEgdmlydHVhbCBrZXljb2RlIHdoaWNoIGRpc3Rpbmd1
aXNoZXMKKyAgICAgICAgYmV0d2VlbiBsZWZ0LWhhbmQgYW5kIHJpZ2h0LWhhbmQgaWYgdGhlIGdp
dmVuIHdwYXJhbSAoPXZpcnR1YWwga2V5Y29kZSkKKyAgICAgICAgaXMgY29udHJvbCwgc2hpZnQs
IG9yIG1lbnUuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnB1dEV2
ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVudCk6CisgICAgICAgIFVzZSB0aGUgbmV3bHkgYWRkZWQg
bWV0aG9kIHRvIG9idGFpbiByZXN1bHQud2luZG93c0tleUNvZGUuCisKIDIwMTItMDktMDEgIEph
bWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
IGNocm9taXVtIGJ1aWxkZml4IHdoZW4gdXNlX2xpYmNjX2Zvcl9jb21wb3NpdG9yPTEKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9y
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy93aW4vV2ViSW5wdXRFdmVudEZhY3Rv
cnkuY3BwCmluZGV4IDlkYTRiNGEyNzk4YWFiY2Q1ZmI4NzJhNjVkNTZkZjU1YzIwMTYwMDkuLjQ0
ZTJkYTk0ZGNlYWU3ODgwOGJkM2M3NjIwOGE1YWYxNzgxZTk1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvd2luL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcApA
QCAtOTYsNiArOTYsMzUgQEAgc3RhdGljIHZvaWQgU2V0VG9nZ2xlS2V5U3RhdGUoV2ViSW5wdXRF
dmVudCogZXZlbnQpCiAgICAgICAgIGV2ZW50LT5tb2RpZmllcnMgfD0gV2ViSW5wdXRFdmVudDo6
Q2Fwc0xvY2tPbjsKIH0KIAorc3RhdGljIGludCB3aW5kb3dzS2V5Y29kZVdpdGhMb2NhdGlvbihX
UEFSQU0gd3BhcmFtLCBMUEFSQU0gbHBhcmFtKQoreworICAgIGludCBrZXljb2RlID0gd3BhcmFt
OworICAgIGlmIChrZXljb2RlICE9IFZLX0NPTlRST0wgJiYga2V5Y29kZSAhPSBWS19NRU5VICYm
IGtleWNvZGUgIT0gVktfU0hJRlQpCisgICAgICAgIHJldHVybiBrZXljb2RlOworCisgICAgLy8g
MjRiaXQ6IEluZGljYXRlcyB3aGV0aGVyIHRoZSBrZXkgaXMgYW4gZXh0ZW5kZWQga2V5LCBzdWNo
IGFzCisgICAgLy8gdGhlIHJpZ2h0LWhhbmQgQUxUIGFuZCBDVFJMIGtleXMuCisgICAgLy8gSG93
ZXZlciwgaWYgd2UgZG9uJ3QgbmVlZCB0byBzdXBwb3J0IFdpbmRvd3NYUCBvciBvbGRlciBXaW5k
b3dzLAorICAgIC8vIGl0IG1pZ2h0IGJlIGJldHRlciB0byB1c2UgTWFwVmlydHVhbEtleUV4IHdp
dGggc2NhbmNvZGUgYW5kCisgICAgLy8gZXh0ZW5kZWQga2V5Y29kZSAoaS5lLiAweGUwIG9yIDB4
ZTEpLgorICAgIGlmICgobHBhcmFtID4+IDE2KSAmIEtGX0VYVEVOREVEKSB7CisgICAgICAgIHN3
aXRjaCAoa2V5Y29kZSkgeworICAgICAgICBjYXNlIFZLX0NPTlRST0w6CisgICAgICAgICAgICBy
ZXR1cm4gVktfUkNPTlRST0w7CisgICAgICAgIGNhc2UgVktfU0hJRlQ6CisgICAgICAgICAgICBy
ZXR1cm4gVktfUlNISUZUOworICAgICAgICBjYXNlIFZLX01FTlU6CisgICAgICAgICAgICByZXR1
cm4gVktfUk1FTlU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIGludCBzY2FuY29kZSA9IChscGFyYW0gPj4gMTYpICYgMHhGRjsK
KyAgICBpbnQgcmVnZW5lcmF0ZWRWaXJ0dWFsS2V5Q29kZSA9IDo6TWFwVmlydHVhbEtleShzY2Fu
Y29kZSwgTUFQVktfVlNDX1RPX1ZLX0VYKTsKKyAgICByZXR1cm4gcmVnZW5lcmF0ZWRWaXJ0dWFs
S2V5Q29kZSA/IHJlZ2VuZXJhdGVkVmlydHVhbEtleUNvZGUgOiBrZXljb2RlOworfQorCiBXZWJL
ZXlib2FyZEV2ZW50IFdlYklucHV0RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2ZW50KEhXTkQgaHdu
ZCwgVUlOVCBtZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXUEFSQU0gd3BhcmFtLCBMUEFSQU0gbHBhcmFtKQogewpAQCAtMTA3LDcg
KzEzNiw3IEBAIFdlYktleWJvYXJkRXZlbnQgV2ViSW5wdXRFdmVudEZhY3Rvcnk6OmtleWJvYXJk
RXZlbnQoSFdORCBod25kLCBVSU5UIG1lc3NhZ2UsCiAgICAgLy8gY2FsbGVyLCB3aG8gd291bGQg
a25vdyBmb3Igc3VyZS4KICAgICByZXN1bHQudGltZVN0YW1wU2Vjb25kcyA9IEdldE1lc3NhZ2VU
aW1lKCkgLyAxMDAwLjA7CiAKLSAgICByZXN1bHQud2luZG93c0tleUNvZGUgPSBzdGF0aWNfY2Fz
dDxpbnQ+KHdwYXJhbSk7CisgICAgcmVzdWx0LndpbmRvd3NLZXlDb2RlID0gd2luZG93c0tleWNv
ZGVXaXRoTG9jYXRpb24od3BhcmFtLCBscGFyYW0pOwogICAgIC8vIFJlY29yZCB0aGUgc2NhbiBj
b2RlIChhbG9uZyB3aXRoIG90aGVyIGNvbnRleHQgYml0cykgZm9yIHRoaXMga2V5IGV2ZW50Lgog
ICAgIHJlc3VsdC5uYXRpdmVLZXlDb2RlID0gc3RhdGljX2Nhc3Q8aW50PihscGFyYW0pOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTk2YjRj
YzNkYzc5NzQzYjBlY2I0OTM1MGU4NWQ0NzY4MmFmNTM5Mi4uYmUxOTcxNTdmMjY4NDBmNTc1ZDg1
YWFkNzlkNzJhZmY2MGVmMGY5MCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA5LTAzICBUYWthc2hpIFNha2Ft
b3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbV2luXSBrZXkgZXZlbnQncyBsb2Nh
dGlvbiBkb2VzIG5vdCB3b3JrIG9uIFdpbmRvd3MgcGxhdGZvcm0uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTc0MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb2Yg
dGhlIGNoYW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBhZGQgcGVyLWZ1
bmN0aW9uIGRlc2NyaXB0aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvd2luL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKG1ha2VLZXlEYXRhRm9yU2NhbkNv
ZGUpOgorICAgICAgICBHaXZlbiBhIHZpcnR1YWwga2V5Y29kZSwgZ2VuZXJhdGUgc2NhbmNvZGUg
YW5kIGV4dGVuZGVkIGtleSBiaXQgb2YKKyAgICAgICAgbHBhcmFtLgorICAgICAgICAoa2V5RG93
bkNhbGxiYWNrKToKKyAgICAgICAgVXNlIGxwYXJhbSBmb3IgbGVmdC1oYW5kIGFuZCByaWdodC1o
YW5kIGtleXMsIGJlY2F1c2UgV2luZG93cyBkb2Vzbid0CisgICAgICAgIGRpcmVjdGx5IHByb3Zp
ZGUgYSB2aXJ0dWFsIGtleWNvZGUgd2hpY2ggZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuCisgICAgICAg
IGxlZnQtaGFuZCBhbmQgcmlnaHQtaGFuZC4gRm9yIGV4YW1wbGUsIHdoZW4gY29udHJvbCBrZXkg
aXMgcHJlc3NlZCwKKyAgICAgICAgd3BhcmFtIGhhcyBWS19DT05UUk9MLCBuZWl0aGVyIFZLX1JD
T05UUk9MIG5vciBWS19MQ09OVFJPTC4KKwogMjAxMi0wOS0wMSAgWGlhbnpodSBXYW5nICA8d2Fu
Z3hpYW56aHVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bS1BbmRyb2lkXSBSZW1v
dmUgaGFyZC1jb2RlZCBza2lwcGVkIGRpcmVjdG9yaWVzIGluIGNocm9taXVtX2FuZHJvaWQucHkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vRXZlbnRTZW5kZXIuY3BwCmluZGV4IDc2ZGFmZDk0OGVk
NjA0M2EzNWI0MTc5ZTExMjhiYjQ3ZWM3OWQxM2UuLmIxNGRmNTkwMGU2MjQ1ZWFlN2E0YTk2YzY3
MmIyZDI5YmU0OTg2YTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9FdmVu
dFNlbmRlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0V2ZW50U2VuZGVyLmNw
cApAQCAtNDM0LDYgKzQzNCwxNiBAQCB2b2lkIHJlcGxheVNhdmVkRXZlbnRzKEhSRVNVTFQqIG9s
ZURyYWdBbmREcm9wUmV0dXJuVmFsdWUpCiAgICAgcmVwbGF5aW5nU2F2ZWRFdmVudHMgPSBmYWxz
ZTsKIH0KIAorc3RhdGljIGludCBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKGludCB2aXJ0dWFsS2V5
Q29kZSkKK3sKKyAgICB1bnNpZ25lZCBpbnQgc2NhbmNvZGUgPSBNYXBWaXJ0dWFsS2V5KFZLX0xB
TFQsIE1BUFZLX1ZLX1RPX1ZTQyk7CisgICAgaW50IGtleURhdGEgPSBzY2FuY29kZSAmIDB4RkY7
CisgICAgc2NhbmNvZGUgPSBzY2FuY29kZSA+PiA4OworICAgIGlmIChzY2FuY29kZSA9PSAweGUw
IHx8IHNjYW5jb2RlID09IDB4ZTEpCisgICAgICAgIGtleURhdGEgKz0gS0ZfRVhURU5ERUQ7Cisg
ICAgcmV0dXJuIGtleURhdGEgPDwgMTY7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIGtleURvd25D
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2Jq
ZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50
Q291bnQgPCAxKQpAQCAtNDc5LDE5ICs0ODksMjUgQEAgc3RhdGljIEpTVmFsdWVSZWYga2V5RG93
bkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlMK
ICAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19TTkFQU0hPVDsKICAgICBlbHNlIGlmIChKU1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgIm1lbnUiKSkKICAgICAgICAgdmly
dHVhbEtleUNvZGUgPSBWS19BUFBTOwotICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdENvbnRyb2wiKSkKLSAgICAgICAgdmlydHVhbEtleUNv
ZGUgPSBWS19MQ09OVFJPTDsKLSAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKGNoYXJhY3RlciwgImxlZnRTaGlmdCIpKQotICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZL
X0xTSElGVDsKLSAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJh
Y3RlciwgImxlZnRBbHQiKSkKLSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19MTUVOVTsKLSAg
ICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0
Q29udHJvbCIpKQotICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1JDT05UUk9MOwotICAgIGVs
c2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAicmlnaHRTaGlm
dCIpKQotICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1JTSElGVDsKLSAgICBlbHNlIGlmIChK
U1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0QWx0IikpCi0gICAg
ICAgIHZpcnR1YWxLZXlDb2RlID0gVktfUk1FTlU7Ci0gICAgZWxzZSB7CisgICAgZWxzZSBpZiAo
SlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJsZWZ0Q29udHJvbCIpKSB7
CisgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfQ09OVFJPTDsKKyAgICAgICAga2V5RGF0YSAr
PSBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKFZLX0xDT05UUk9MKTsKKyAgICB9IGVsc2UgaWYgKEpT
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdFNoaWZ0IikpIHsKKyAg
ICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19TSElGVDsKKyAgICAgICAga2V5RGF0YSArPSBtYWtl
S2V5RGF0YUZvclNjYW5Db2RlKFZLX0xTSElGVCk7CisgICAgfSBlbHNlIGlmIChKU1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgImxlZnRBbHQiKSkgeworICAgICAgICB2aXJ0
dWFsS2V5Q29kZSA9IFZLX01FTlU7CisgICAgICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JT
Y2FuQ29kZShWS19MTUVOVSk7CisgICAgfSBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0Q29udHJvbCIpKSB7CisgICAgICAgIHZpcnR1YWxLZXlD
b2RlID0gVktfQ09OVFJPTDsKKyAgICAgICAga2V5RGF0YSArPSBtYWtlS2V5RGF0YUZvclNjYW5D
b2RlKFZLX1JDT05UUk9MKTsKKyAgICB9IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENT
dHJpbmcoY2hhcmFjdGVyLCAicmlnaHRTaGlmdCIpKSB7CisgICAgICAgIHZpcnR1YWxLZXlDb2Rl
ID0gVktfU0hJRlQ7CisgICAgICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29kZShW
S19SU0hJRlQpOworICAgIH0gZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhj
aGFyYWN0ZXIsICJyaWdodEFsdCIpKSB7CisgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfTUVO
VTsKKyAgICAgICAga2V5RGF0YSArPSBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKFZLX1JNRU5VKTsK
KyAgICB9IGVsc2UgewogICAgICAgICBjaGFyQ29kZSA9IEpTU3RyaW5nR2V0Q2hhcmFjdGVyc1B0
cihjaGFyYWN0ZXIpWzBdOwogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IExPQllURShWa0tleVNj
YW4oY2hhckNvZGUpKTsKICAgICAgICAgaWYgKFdURjo6aXNBU0NJSVVwcGVyKGNoYXJDb2RlKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161982</attachid>
            <date>2012-09-04 01:06:58 -0700</date>
            <delta_ts>2012-09-04 04:02:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89742-20120904170619.patch</filename>
            <type>text/plain</type>
            <size>7852</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGZjNDhlNTllMGFlNjZiYTA0MDU5MTg1Yjg2ZmY0MmY1NDg5MTZlYzkuLmFiNGRkMjZmZTgyMWJj
NTI2OTIyNTE3YmExOWRhZmJkYWVjNTM1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTItMDktMDMgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29n
bGUuY29tPgorCisgICAgICAgIFtXaW5dIGtleSBldmVudCdzIGxvY2F0aW9uIGRvZXMgbm90IHdv
cmsgb24gV2luZG93cyBwbGF0Zm9ybS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg5NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQXMgV01fS0VZRE9XTiwgV01fS0VZVVAsIFdNX1NZU0tFWURPV04sIGFu
ZCBXTV9TWVNLRVlVUCBkb2Vzbid0CisgICAgICAgIGRpcmVjdGx5IHByb3ZpZGUgYSB2aXJ0dWFs
IGtleWNvZGUgd2hpY2ggZGlzdGluZ3Vpc2ggYmV0d2VlbiBsZWZ0LWhhbmQKKyAgICAgICAgYW5k
IHJpZ2h0LWhhbmQga2V5cy4gVG8gb2J0YWluIGEgdmlydHVhbCBrZXljb2RlLCB3ZSBoYXZlIHRv
IGxvb2sgYXQKKyAgICAgICAgbHBhcmFtLCBpLmUuIHNjYW5jb2RlIGFuZCBleHRlbmRlZCBrZXkg
Yml0LiBTbyBpZiB0aGUgZ2l2ZW4gdmlydHVhbAorICAgICAgICBrZXljb2RlIGlzIGNvbnRyb2ws
IHNoaWZ0LCBvciBtZW51LCB1c2UgTWFwVmlydHVhbEtleSB3aXRoIHNjYW5jb2RlIGFuZAorICAg
ICAgICBleHRlbmRlZCBrZXkgYml0IGFuZCByZWNyZWF0ZSBhIHZpcnR1YWwga2V5Y29kZSB3aGlj
aCBkaXN0aW5ndWlzaGVzCisgICAgICAgIGJldHdlZW4gbGVmdC1oYW5kIGFuZCByaWdodC1oYW5k
LgorCisgICAgICAgICogc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OndpbmRvd3NLZXljb2RlV2l0aExvY2F0aW9uKToKKyAgICAgICAgVXNlIHdwYXJh
bSBhbmQgbHBhcmFtIHRvIHJlY3JlYXRlIGEgdmlydHVhbCBrZXljb2RlIHdoaWNoIGRpc3Rpbmd1
aXNoZXMKKyAgICAgICAgYmV0d2VlbiBsZWZ0LWhhbmQgYW5kIHJpZ2h0LWhhbmQgaWYgdGhlIGdp
dmVuIHdwYXJhbSAoPXZpcnR1YWwga2V5Y29kZSkKKyAgICAgICAgaXMgY29udHJvbCwgc2hpZnQs
IG9yIG1lbnUuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnB1dEV2
ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVudCk6CisgICAgICAgIFVzZSB0aGUgbmV3bHkgYWRkZWQg
bWV0aG9kIHRvIG9idGFpbiByZXN1bHQud2luZG93c0tleUNvZGUuCisKIDIwMTItMDktMDMgIFRh
byBCYWkgIDxtaWNoYWVsYmFpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGRlZCBBTkRST0lE
X0dEQlNFUlZFUiBkZWZpbml0aW9uIGZvciBBbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwCmluZGV4IDlkYTRiNGEy
Nzk4YWFiY2Q1ZmI4NzJhNjVkNTZkZjU1YzIwMTYwMDkuLjQ0ZTJkYTk0ZGNlYWU3ODgwOGJkM2M3
NjIwOGE1YWYxNzgxZTk1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvd2luL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcApAQCAtOTYsNiArOTYsMzUgQEAgc3Rh
dGljIHZvaWQgU2V0VG9nZ2xlS2V5U3RhdGUoV2ViSW5wdXRFdmVudCogZXZlbnQpCiAgICAgICAg
IGV2ZW50LT5tb2RpZmllcnMgfD0gV2ViSW5wdXRFdmVudDo6Q2Fwc0xvY2tPbjsKIH0KIAorc3Rh
dGljIGludCB3aW5kb3dzS2V5Y29kZVdpdGhMb2NhdGlvbihXUEFSQU0gd3BhcmFtLCBMUEFSQU0g
bHBhcmFtKQoreworICAgIGludCBrZXljb2RlID0gd3BhcmFtOworICAgIGlmIChrZXljb2RlICE9
IFZLX0NPTlRST0wgJiYga2V5Y29kZSAhPSBWS19NRU5VICYmIGtleWNvZGUgIT0gVktfU0hJRlQp
CisgICAgICAgIHJldHVybiBrZXljb2RlOworCisgICAgLy8gMjRiaXQ6IEluZGljYXRlcyB3aGV0
aGVyIHRoZSBrZXkgaXMgYW4gZXh0ZW5kZWQga2V5LCBzdWNoIGFzCisgICAgLy8gdGhlIHJpZ2h0
LWhhbmQgQUxUIGFuZCBDVFJMIGtleXMuCisgICAgLy8gSG93ZXZlciwgaWYgd2UgZG9uJ3QgbmVl
ZCB0byBzdXBwb3J0IFdpbmRvd3NYUCBvciBvbGRlciBXaW5kb3dzLAorICAgIC8vIGl0IG1pZ2h0
IGJlIGJldHRlciB0byB1c2UgTWFwVmlydHVhbEtleUV4IHdpdGggc2NhbmNvZGUgYW5kCisgICAg
Ly8gZXh0ZW5kZWQga2V5Y29kZSAoaS5lLiAweGUwIG9yIDB4ZTEpLgorICAgIGlmICgobHBhcmFt
ID4+IDE2KSAmIEtGX0VYVEVOREVEKSB7CisgICAgICAgIHN3aXRjaCAoa2V5Y29kZSkgeworICAg
ICAgICBjYXNlIFZLX0NPTlRST0w6CisgICAgICAgICAgICByZXR1cm4gVktfUkNPTlRST0w7Cisg
ICAgICAgIGNhc2UgVktfU0hJRlQ6CisgICAgICAgICAgICByZXR1cm4gVktfUlNISUZUOworICAg
ICAgICBjYXNlIFZLX01FTlU6CisgICAgICAgICAgICByZXR1cm4gVktfUk1FTlU7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlu
dCBzY2FuY29kZSA9IChscGFyYW0gPj4gMTYpICYgMHhGRjsKKyAgICBpbnQgcmVnZW5lcmF0ZWRW
aXJ0dWFsS2V5Q29kZSA9IDo6TWFwVmlydHVhbEtleShzY2FuY29kZSwgTUFQVktfVlNDX1RPX1ZL
X0VYKTsKKyAgICByZXR1cm4gcmVnZW5lcmF0ZWRWaXJ0dWFsS2V5Q29kZSA/IHJlZ2VuZXJhdGVk
VmlydHVhbEtleUNvZGUgOiBrZXljb2RlOworfQorCiBXZWJLZXlib2FyZEV2ZW50IFdlYklucHV0
RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2ZW50KEhXTkQgaHduZCwgVUlOVCBtZXNzYWdlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXUEFSQU0g
d3BhcmFtLCBMUEFSQU0gbHBhcmFtKQogewpAQCAtMTA3LDcgKzEzNiw3IEBAIFdlYktleWJvYXJk
RXZlbnQgV2ViSW5wdXRFdmVudEZhY3Rvcnk6OmtleWJvYXJkRXZlbnQoSFdORCBod25kLCBVSU5U
IG1lc3NhZ2UsCiAgICAgLy8gY2FsbGVyLCB3aG8gd291bGQga25vdyBmb3Igc3VyZS4KICAgICBy
ZXN1bHQudGltZVN0YW1wU2Vjb25kcyA9IEdldE1lc3NhZ2VUaW1lKCkgLyAxMDAwLjA7CiAKLSAg
ICByZXN1bHQud2luZG93c0tleUNvZGUgPSBzdGF0aWNfY2FzdDxpbnQ+KHdwYXJhbSk7CisgICAg
cmVzdWx0LndpbmRvd3NLZXlDb2RlID0gd2luZG93c0tleWNvZGVXaXRoTG9jYXRpb24od3BhcmFt
LCBscGFyYW0pOwogICAgIC8vIFJlY29yZCB0aGUgc2NhbiBjb2RlIChhbG9uZyB3aXRoIG90aGVy
IGNvbnRleHQgYml0cykgZm9yIHRoaXMga2V5IGV2ZW50LgogICAgIHJlc3VsdC5uYXRpdmVLZXlD
b2RlID0gc3RhdGljX2Nhc3Q8aW50PihscGFyYW0pOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTM2MDllMmUzZWNhMTFlMjNjYzA5NjM2NDFk
ZjNmYzYzOTZmNzA2MC4uNWE5YmIxODJmOTU0ZDBiOThlNWRiNTE5NGJhMWEyNTM0NWU3Y2I3MCAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDEyLTA5LTAzICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNv
bT4KKworICAgICAgICBbV2luXSBrZXkgZXZlbnQncyBsb2NhdGlvbiBkb2VzIG5vdCB3b3JrIG9u
IFdpbmRvd3MgcGxhdGZvcm0uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04OTc0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb2YgdGhlIGNoYW5nZSBzdWNoIGFzIGFw
cHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBhZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0aW9ucyBi
ZWxvdyAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0V2ZW50U2VuZGVy
LmNwcDoKKyAgICAgICAgKG1ha2VLZXlEYXRhRm9yU2NhbkNvZGUpOgorICAgICAgICBHaXZlbiBh
IHZpcnR1YWwga2V5Y29kZSwgZ2VuZXJhdGUgc2NhbmNvZGUgYW5kIGV4dGVuZGVkIGtleSBiaXQg
b2YKKyAgICAgICAgbHBhcmFtLgorICAgICAgICAoa2V5RG93bkNhbGxiYWNrKToKKyAgICAgICAg
VXNlIGxwYXJhbSBmb3IgbGVmdC1oYW5kIGFuZCByaWdodC1oYW5kIGtleXMsIGJlY2F1c2UgV2lu
ZG93cyBkb2Vzbid0CisgICAgICAgIGRpcmVjdGx5IHByb3ZpZGUgYSB2aXJ0dWFsIGtleWNvZGUg
d2hpY2ggZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuCisgICAgICAgIGxlZnQtaGFuZCBhbmQgcmlnaHQt
aGFuZC4gRm9yIGV4YW1wbGUsIHdoZW4gY29udHJvbCBrZXkgaXMgcHJlc3NlZCwKKyAgICAgICAg
d3BhcmFtIGhhcyBWS19DT05UUk9MLCBuZWl0aGVyIFZLX1JDT05UUk9MIG5vciBWS19MQ09OVFJP
TC4KKwogMjAxMi0wOS0wMyAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgW0VGTF0gQ2hhbmdlIHRoZSBmb2N1cyB3aGVuIHRoZSB3ZWIgdmlldyBpcyBjbGlj
a2VkIGluIE1pbmlCcm93c2VyIGFuZCBFV2ViTGF1bmNoZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRXZlbnRTZW5kZXIuY3BwCmluZGV4IDc2ZGFmZDk0OGVkNjA0M2EzNWI0MTc5ZTExMjhiYjQ3
ZWM3OWQxM2UuLjYwOGY2MTdjYjg5ZTcyZjliN2E2NDRhODVmNjczZmI3NDU0ZTIwNTUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0V2ZW50U2VuZGVyLmNwcApAQCAtNDM0LDYgKzQzNCwxNiBA
QCB2b2lkIHJlcGxheVNhdmVkRXZlbnRzKEhSRVNVTFQqIG9sZURyYWdBbmREcm9wUmV0dXJuVmFs
dWUpCiAgICAgcmVwbGF5aW5nU2F2ZWRFdmVudHMgPSBmYWxzZTsKIH0KIAorc3RhdGljIGludCBt
YWtlS2V5RGF0YUZvclNjYW5Db2RlKGludCB2aXJ0dWFsS2V5Q29kZSkKK3sKKyAgICB1bnNpZ25l
ZCBpbnQgc2NhbmNvZGUgPSBNYXBWaXJ0dWFsS2V5KHZpcnR1YWxLZXlDb2RlLCBNQVBWS19WS19U
T19WU0MpOworICAgIGludCBrZXlEYXRhID0gc2NhbmNvZGUgJiAweEZGOworICAgIHNjYW5jb2Rl
ID0gc2NhbmNvZGUgPj4gODsKKyAgICBpZiAoc2NhbmNvZGUgPT0gMHhlMCB8fCBzY2FuY29kZSA9
PSAweGUxKQorICAgICAgICBrZXlEYXRhICs9IEtGX0VYVEVOREVEOworICAgIHJldHVybiBrZXlE
YXRhIDw8IDE2OworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBrZXlEb3duQ2FsbGJhY2soSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKQEAg
LTQ3OSwxOSArNDg5LDI1IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGtleURvd25DYWxsYmFjayhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTCiAgICAgICAgIHZpcnR1
YWxLZXlDb2RlID0gVktfU05BUFNIT1Q7CiAgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJtZW51IikpCiAgICAgICAgIHZpcnR1YWxLZXlDb2RlID0g
VktfQVBQUzsKLSAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJh
Y3RlciwgImxlZnRDb250cm9sIikpCi0gICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfTENPTlRS
T0w7Ci0gICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIs
ICJsZWZ0U2hpZnQiKSkKLSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19MU0hJRlQ7Ci0gICAg
ZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJsZWZ0QWx0
IikpCi0gICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfTE1FTlU7Ci0gICAgZWxzZSBpZiAoSlNT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJyaWdodENvbnRyb2wiKSkKLSAg
ICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19SQ09OVFJPTDsKLSAgICBlbHNlIGlmIChKU1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0U2hpZnQiKSkKLSAgICAgICAg
dmlydHVhbEtleUNvZGUgPSBWS19SU0hJRlQ7Ci0gICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJyaWdodEFsdCIpKQotICAgICAgICB2aXJ0dWFsS2V5
Q29kZSA9IFZLX1JNRU5VOwotICAgIGVsc2UgeworICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVh
bFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdENvbnRyb2wiKSkgeworICAgICAgICB2aXJ0
dWFsS2V5Q29kZSA9IFZLX0NPTlRST0w7CisgICAgICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFG
b3JTY2FuQ29kZShWS19MQ09OVFJPTCk7CisgICAgfSBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKGNoYXJhY3RlciwgImxlZnRTaGlmdCIpKSB7CisgICAgICAgIHZpcnR1YWxL
ZXlDb2RlID0gVktfU0hJRlQ7CisgICAgICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2Fu
Q29kZShWS19MU0hJRlQpOworICAgIH0gZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhjaGFyYWN0ZXIsICJsZWZ0QWx0IikpIHsKKyAgICAgICAgdmlydHVhbEtleUNvZGUgPSBW
S19NRU5VOworICAgICAgICBrZXlEYXRhICs9IG1ha2VLZXlEYXRhRm9yU2NhbkNvZGUoVktfTE1F
TlUpOworICAgIH0gZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0
ZXIsICJyaWdodENvbnRyb2wiKSkgeworICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0NPTlRS
T0w7CisgICAgICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29kZShWS19SQ09OVFJP
TCk7CisgICAgfSBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3Rl
ciwgInJpZ2h0U2hpZnQiKSkgeworICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1NISUZUOwor
ICAgICAgICBrZXlEYXRhICs9IG1ha2VLZXlEYXRhRm9yU2NhbkNvZGUoVktfUlNISUZUKTsKKyAg
ICB9IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAicmln
aHRBbHQiKSkgeworICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX01FTlU7CisgICAgICAgIGtl
eURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29kZShWS19STUVOVSk7CisgICAgfSBlbHNlIHsK
ICAgICAgICAgY2hhckNvZGUgPSBKU1N0cmluZ0dldENoYXJhY3RlcnNQdHIoY2hhcmFjdGVyKVsw
XTsKICAgICAgICAgdmlydHVhbEtleUNvZGUgPSBMT0JZVEUoVmtLZXlTY2FuKGNoYXJDb2RlKSk7
CiAgICAgICAgIGlmIChXVEY6OmlzQVNDSUlVcHBlcihjaGFyQ29kZSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162003</attachid>
            <date>2012-09-04 04:02:25 -0700</date>
            <delta_ts>2012-09-05 04:29:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89742-20120904200118.patch</filename>
            <type>text/plain</type>
            <size>8028</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGZjNDhlNTllMGFlNjZiYTA0MDU5MTg1Yjg2ZmY0MmY1NDg5MTZlYzkuLmFiNGRkMjZmZTgyMWJj
NTI2OTIyNTE3YmExOWRhZmJkYWVjNTM1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTItMDktMDMgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29n
bGUuY29tPgorCisgICAgICAgIFtXaW5dIGtleSBldmVudCdzIGxvY2F0aW9uIGRvZXMgbm90IHdv
cmsgb24gV2luZG93cyBwbGF0Zm9ybS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg5NzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQXMgV01fS0VZRE9XTiwgV01fS0VZVVAsIFdNX1NZU0tFWURPV04sIGFu
ZCBXTV9TWVNLRVlVUCBkb2Vzbid0CisgICAgICAgIGRpcmVjdGx5IHByb3ZpZGUgYSB2aXJ0dWFs
IGtleWNvZGUgd2hpY2ggZGlzdGluZ3Vpc2ggYmV0d2VlbiBsZWZ0LWhhbmQKKyAgICAgICAgYW5k
IHJpZ2h0LWhhbmQga2V5cy4gVG8gb2J0YWluIGEgdmlydHVhbCBrZXljb2RlLCB3ZSBoYXZlIHRv
IGxvb2sgYXQKKyAgICAgICAgbHBhcmFtLCBpLmUuIHNjYW5jb2RlIGFuZCBleHRlbmRlZCBrZXkg
Yml0LiBTbyBpZiB0aGUgZ2l2ZW4gdmlydHVhbAorICAgICAgICBrZXljb2RlIGlzIGNvbnRyb2ws
IHNoaWZ0LCBvciBtZW51LCB1c2UgTWFwVmlydHVhbEtleSB3aXRoIHNjYW5jb2RlIGFuZAorICAg
ICAgICBleHRlbmRlZCBrZXkgYml0IGFuZCByZWNyZWF0ZSBhIHZpcnR1YWwga2V5Y29kZSB3aGlj
aCBkaXN0aW5ndWlzaGVzCisgICAgICAgIGJldHdlZW4gbGVmdC1oYW5kIGFuZCByaWdodC1oYW5k
LgorCisgICAgICAgICogc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OndpbmRvd3NLZXljb2RlV2l0aExvY2F0aW9uKToKKyAgICAgICAgVXNlIHdwYXJh
bSBhbmQgbHBhcmFtIHRvIHJlY3JlYXRlIGEgdmlydHVhbCBrZXljb2RlIHdoaWNoIGRpc3Rpbmd1
aXNoZXMKKyAgICAgICAgYmV0d2VlbiBsZWZ0LWhhbmQgYW5kIHJpZ2h0LWhhbmQgaWYgdGhlIGdp
dmVuIHdwYXJhbSAoPXZpcnR1YWwga2V5Y29kZSkKKyAgICAgICAgaXMgY29udHJvbCwgc2hpZnQs
IG9yIG1lbnUuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnB1dEV2
ZW50RmFjdG9yeTo6a2V5Ym9hcmRFdmVudCk6CisgICAgICAgIFVzZSB0aGUgbmV3bHkgYWRkZWQg
bWV0aG9kIHRvIG9idGFpbiByZXN1bHQud2luZG93c0tleUNvZGUuCisKIDIwMTItMDktMDMgIFRh
byBCYWkgIDxtaWNoYWVsYmFpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGRlZCBBTkRST0lE
X0dEQlNFUlZFUiBkZWZpbml0aW9uIGZvciBBbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwCmluZGV4IDlkYTRiNGEy
Nzk4YWFiY2Q1ZmI4NzJhNjVkNTZkZjU1YzIwMTYwMDkuLjQ0ZTJkYTk0ZGNlYWU3ODgwOGJkM2M3
NjIwOGE1YWYxNzgxZTk1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvd2luL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcApAQCAtOTYsNiArOTYsMzUgQEAgc3Rh
dGljIHZvaWQgU2V0VG9nZ2xlS2V5U3RhdGUoV2ViSW5wdXRFdmVudCogZXZlbnQpCiAgICAgICAg
IGV2ZW50LT5tb2RpZmllcnMgfD0gV2ViSW5wdXRFdmVudDo6Q2Fwc0xvY2tPbjsKIH0KIAorc3Rh
dGljIGludCB3aW5kb3dzS2V5Y29kZVdpdGhMb2NhdGlvbihXUEFSQU0gd3BhcmFtLCBMUEFSQU0g
bHBhcmFtKQoreworICAgIGludCBrZXljb2RlID0gd3BhcmFtOworICAgIGlmIChrZXljb2RlICE9
IFZLX0NPTlRST0wgJiYga2V5Y29kZSAhPSBWS19NRU5VICYmIGtleWNvZGUgIT0gVktfU0hJRlQp
CisgICAgICAgIHJldHVybiBrZXljb2RlOworCisgICAgLy8gMjRiaXQ6IEluZGljYXRlcyB3aGV0
aGVyIHRoZSBrZXkgaXMgYW4gZXh0ZW5kZWQga2V5LCBzdWNoIGFzCisgICAgLy8gdGhlIHJpZ2h0
LWhhbmQgQUxUIGFuZCBDVFJMIGtleXMuCisgICAgLy8gSG93ZXZlciwgaWYgd2UgZG9uJ3QgbmVl
ZCB0byBzdXBwb3J0IFdpbmRvd3NYUCBvciBvbGRlciBXaW5kb3dzLAorICAgIC8vIGl0IG1pZ2h0
IGJlIGJldHRlciB0byB1c2UgTWFwVmlydHVhbEtleUV4IHdpdGggc2NhbmNvZGUgYW5kCisgICAg
Ly8gZXh0ZW5kZWQga2V5Y29kZSAoaS5lLiAweGUwIG9yIDB4ZTEpLgorICAgIGlmICgobHBhcmFt
ID4+IDE2KSAmIEtGX0VYVEVOREVEKSB7CisgICAgICAgIHN3aXRjaCAoa2V5Y29kZSkgeworICAg
ICAgICBjYXNlIFZLX0NPTlRST0w6CisgICAgICAgICAgICByZXR1cm4gVktfUkNPTlRST0w7Cisg
ICAgICAgIGNhc2UgVktfU0hJRlQ6CisgICAgICAgICAgICByZXR1cm4gVktfUlNISUZUOworICAg
ICAgICBjYXNlIFZLX01FTlU6CisgICAgICAgICAgICByZXR1cm4gVktfUk1FTlU7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlu
dCBzY2FuY29kZSA9IChscGFyYW0gPj4gMTYpICYgMHhGRjsKKyAgICBpbnQgcmVnZW5lcmF0ZWRW
aXJ0dWFsS2V5Q29kZSA9IDo6TWFwVmlydHVhbEtleShzY2FuY29kZSwgTUFQVktfVlNDX1RPX1ZL
X0VYKTsKKyAgICByZXR1cm4gcmVnZW5lcmF0ZWRWaXJ0dWFsS2V5Q29kZSA/IHJlZ2VuZXJhdGVk
VmlydHVhbEtleUNvZGUgOiBrZXljb2RlOworfQorCiBXZWJLZXlib2FyZEV2ZW50IFdlYklucHV0
RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2ZW50KEhXTkQgaHduZCwgVUlOVCBtZXNzYWdlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXUEFSQU0g
d3BhcmFtLCBMUEFSQU0gbHBhcmFtKQogewpAQCAtMTA3LDcgKzEzNiw3IEBAIFdlYktleWJvYXJk
RXZlbnQgV2ViSW5wdXRFdmVudEZhY3Rvcnk6OmtleWJvYXJkRXZlbnQoSFdORCBod25kLCBVSU5U
IG1lc3NhZ2UsCiAgICAgLy8gY2FsbGVyLCB3aG8gd291bGQga25vdyBmb3Igc3VyZS4KICAgICBy
ZXN1bHQudGltZVN0YW1wU2Vjb25kcyA9IEdldE1lc3NhZ2VUaW1lKCkgLyAxMDAwLjA7CiAKLSAg
ICByZXN1bHQud2luZG93c0tleUNvZGUgPSBzdGF0aWNfY2FzdDxpbnQ+KHdwYXJhbSk7CisgICAg
cmVzdWx0LndpbmRvd3NLZXlDb2RlID0gd2luZG93c0tleWNvZGVXaXRoTG9jYXRpb24od3BhcmFt
LCBscGFyYW0pOwogICAgIC8vIFJlY29yZCB0aGUgc2NhbiBjb2RlIChhbG9uZyB3aXRoIG90aGVy
IGNvbnRleHQgYml0cykgZm9yIHRoaXMga2V5IGV2ZW50LgogICAgIHJlc3VsdC5uYXRpdmVLZXlD
b2RlID0gc3RhdGljX2Nhc3Q8aW50PihscGFyYW0pOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTM2MDllMmUzZWNhMTFlMjNjYzA5NjM2NDFk
ZjNmYzYzOTZmNzA2MC4uNWE5YmIxODJmOTU0ZDBiOThlNWRiNTE5NGJhMWEyNTM0NWU3Y2I3MCAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDEyLTA5LTAzICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNv
bT4KKworICAgICAgICBbV2luXSBrZXkgZXZlbnQncyBsb2NhdGlvbiBkb2VzIG5vdCB3b3JrIG9u
IFdpbmRvd3MgcGxhdGZvcm0uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04OTc0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb2YgdGhlIGNoYW5nZSBzdWNoIGFzIGFw
cHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBhZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0aW9ucyBi
ZWxvdyAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0V2ZW50U2VuZGVy
LmNwcDoKKyAgICAgICAgKG1ha2VLZXlEYXRhRm9yU2NhbkNvZGUpOgorICAgICAgICBHaXZlbiBh
IHZpcnR1YWwga2V5Y29kZSwgZ2VuZXJhdGUgc2NhbmNvZGUgYW5kIGV4dGVuZGVkIGtleSBiaXQg
b2YKKyAgICAgICAgbHBhcmFtLgorICAgICAgICAoa2V5RG93bkNhbGxiYWNrKToKKyAgICAgICAg
VXNlIGxwYXJhbSBmb3IgbGVmdC1oYW5kIGFuZCByaWdodC1oYW5kIGtleXMsIGJlY2F1c2UgV2lu
ZG93cyBkb2Vzbid0CisgICAgICAgIGRpcmVjdGx5IHByb3ZpZGUgYSB2aXJ0dWFsIGtleWNvZGUg
d2hpY2ggZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuCisgICAgICAgIGxlZnQtaGFuZCBhbmQgcmlnaHQt
aGFuZC4gRm9yIGV4YW1wbGUsIHdoZW4gY29udHJvbCBrZXkgaXMgcHJlc3NlZCwKKyAgICAgICAg
d3BhcmFtIGhhcyBWS19DT05UUk9MLCBuZWl0aGVyIFZLX1JDT05UUk9MIG5vciBWS19MQ09OVFJP
TC4KKwogMjAxMi0wOS0wMyAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgW0VGTF0gQ2hhbmdlIHRoZSBmb2N1cyB3aGVuIHRoZSB3ZWIgdmlldyBpcyBjbGlj
a2VkIGluIE1pbmlCcm93c2VyIGFuZCBFV2ViTGF1bmNoZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRXZlbnRTZW5kZXIuY3BwCmluZGV4IDc2ZGFmZDk0OGVkNjA0M2EzNWI0MTc5ZTExMjhiYjQ3
ZWM3OWQxM2UuLjE5ZDc0ZGUzYmJkYzJmMzA0MWZiZGE3NDIxN2U2MTZhY2ZhZWUxYjcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0V2ZW50U2VuZGVyLmNwcApAQCAtNDUsNiArNDUsNyBAQAog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjZGVmaW5lIFdNX0RSVF9TRU5EX1FV
RVVFRF9FVkVOVCAoV01fQVBQKzEpCisjZGVmaW5lIE1BUFZLX1ZLX1RPX1ZTQyAwCiAKIHN0YXRp
YyBib29sIGRvd247CiBzdGF0aWMgYm9vbCBkcmFnTW9kZSA9IHRydWU7CkBAIC00MzQsNiArNDM1
LDE2IEBAIHZvaWQgcmVwbGF5U2F2ZWRFdmVudHMoSFJFU1VMVCogb2xlRHJhZ0FuZERyb3BSZXR1
cm5WYWx1ZSkKICAgICByZXBsYXlpbmdTYXZlZEV2ZW50cyA9IGZhbHNlOwogfQogCitzdGF0aWMg
aW50IG1ha2VLZXlEYXRhRm9yU2NhbkNvZGUoaW50IHZpcnR1YWxLZXlDb2RlKQoreworICAgIHVu
c2lnbmVkIGludCBzY2FuY29kZSA9IE1hcFZpcnR1YWxLZXkodmlydHVhbEtleUNvZGUsIE1BUFZL
X1ZLX1RPX1ZTQyk7CisgICAgaW50IGtleURhdGEgPSBzY2FuY29kZSAmIDB4RkY7CisgICAgc2Nh
bmNvZGUgPSBzY2FuY29kZSA+PiA4OworICAgIGlmIChzY2FuY29kZSA9PSAweGUwIHx8IHNjYW5j
b2RlID09IDB4ZTEpCisgICAgICAgIGtleURhdGEgKz0gS0ZfRVhURU5ERUQ7CisgICAgcmV0dXJu
IGtleURhdGEgPDwgMTY7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIGtleURvd25DYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAx
KQpAQCAtNDc5LDE5ICs0OTAsMjUgQEAgc3RhdGljIEpTVmFsdWVSZWYga2V5RG93bkNhbGxiYWNr
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlMKICAgICAgICAg
dmlydHVhbEtleUNvZGUgPSBWS19TTkFQU0hPVDsKICAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgIm1lbnUiKSkKICAgICAgICAgdmlydHVhbEtleUNv
ZGUgPSBWS19BUFBTOwotICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
Y2hhcmFjdGVyLCAibGVmdENvbnRyb2wiKSkKLSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19M
Q09OVFJPTDsKLSAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJh
Y3RlciwgImxlZnRTaGlmdCIpKQotICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0xTSElGVDsK
LSAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgImxl
ZnRBbHQiKSkKLSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19MTUVOVTsKLSAgICBlbHNlIGlm
IChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0Q29udHJvbCIp
KQotICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1JDT05UUk9MOwotICAgIGVsc2UgaWYgKEpT
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAicmlnaHRTaGlmdCIpKQotICAg
ICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1JTSElGVDsKLSAgICBlbHNlIGlmIChKU1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0QWx0IikpCi0gICAgICAgIHZpcnR1
YWxLZXlDb2RlID0gVktfUk1FTlU7Ci0gICAgZWxzZSB7CisgICAgZWxzZSBpZiAoSlNTdHJpbmdJ
c0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJsZWZ0Q29udHJvbCIpKSB7CisgICAgICAg
IHZpcnR1YWxLZXlDb2RlID0gVktfQ09OVFJPTDsKKyAgICAgICAga2V5RGF0YSArPSBtYWtlS2V5
RGF0YUZvclNjYW5Db2RlKFZLX0xDT05UUk9MKTsKKyAgICB9IGVsc2UgaWYgKEpTU3RyaW5nSXNF
cXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdFNoaWZ0IikpIHsKKyAgICAgICAgdmly
dHVhbEtleUNvZGUgPSBWS19TSElGVDsKKyAgICAgICAga2V5RGF0YSArPSBtYWtlS2V5RGF0YUZv
clNjYW5Db2RlKFZLX0xTSElGVCk7CisgICAgfSBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VU
RjhDU3RyaW5nKGNoYXJhY3RlciwgImxlZnRBbHQiKSkgeworICAgICAgICB2aXJ0dWFsS2V5Q29k
ZSA9IFZLX01FTlU7CisgICAgICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29kZShW
S19MTUVOVSk7CisgICAgfSBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNo
YXJhY3RlciwgInJpZ2h0Q29udHJvbCIpKSB7CisgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktf
Q09OVFJPTDsKKyAgICAgICAga2V5RGF0YSArPSBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKFZLX1JD
T05UUk9MKTsKKyAgICB9IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hh
cmFjdGVyLCAicmlnaHRTaGlmdCIpKSB7CisgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfU0hJ
RlQ7CisgICAgICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29kZShWS19SU0hJRlQp
OworICAgIH0gZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIs
ICJyaWdodEFsdCIpKSB7CisgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfTUVOVTsKKyAgICAg
ICAga2V5RGF0YSArPSBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKFZLX1JNRU5VKTsKKyAgICB9IGVs
c2UgewogICAgICAgICBjaGFyQ29kZSA9IEpTU3RyaW5nR2V0Q2hhcmFjdGVyc1B0cihjaGFyYWN0
ZXIpWzBdOwogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IExPQllURShWa0tleVNjYW4oY2hhckNv
ZGUpKTsKICAgICAgICAgaWYgKFdURjo6aXNBU0NJSVVwcGVyKGNoYXJDb2RlKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162214</attachid>
            <date>2012-09-05 04:29:29 -0700</date>
            <delta_ts>2012-09-05 21:59:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89742-20120905202807.patch</filename>
            <type>text/plain</type>
            <size>8289</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFkNmM4M2E0Y2Y0Yzgz
MTAxOGVmMmFhNzkzNGQzNjE5M2QxZWI1Ny4uNzcwZDczZGY3N2YxMTQ0ZjRmNjZkODNmYTNlZGU1
ZDhlZGJhZjZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA5LTA1ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbV2luXSBrZXkgZXZl
bnQncyBsb2NhdGlvbiBkb2VzIG5vdCB3b3JrIG9uIFdpbmRvd3MgcGxhdGZvcm0uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTc0MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3Jt
YXRpb24gb2YgdGhlIGNoYW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzICAg
ICAgICBBcyBXTV9LRVlET1dOLCBXTV9LRVlVUCwgV01fU1lTS0VZRE9XTiwgYW5kIFdNX1NZU0tF
WVVQIGRvZXNuJ3QKKyAgICAgICAgZGlyZWN0bHkgcHJvdmlkZSBhIHZpcnR1YWwga2V5Y29kZSB3
aGljaCBkaXN0aW5ndWlzaCBiZXR3ZWVuIGxlZnQtaGFuZAorICAgICAgICBhbmQgcmlnaHQtaGFu
ZCBrZXlzLiBUbyBvYnRhaW4gYSB2aXJ0dWFsIGtleWNvZGUsIHdlIGhhdmUgdG8gbG9vayBhdAor
ICAgICAgICBscGFyYW0sIGkuZS4gc2NhbmNvZGUgYW5kIGV4dGVuZGVkIGtleSBiaXQuIFNvIGlm
IHRoZSBnaXZlbiB2aXJ0dWFsCisgICAgICAgIGtleWNvZGUgaXMgY29udHJvbCwgc2hpZnQsIG9y
IG1lbnUsIHVzZSBNYXBWaXJ0dWFsS2V5IHdpdGggc2NhbmNvZGUgYW5kCisgICAgICAgIGV4dGVu
ZGVkIGtleSBiaXQgYW5kIHJlY3JlYXRlIGEgdmlydHVhbCBrZXljb2RlIHdoaWNoIGRpc3Rpbmd1
aXNoZXMKKyAgICAgICAgYmV0d2VlbiBsZWZ0LWhhbmQgYW5kIHJpZ2h0LWhhbmQuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBiZWNhdXNlIGxlZnQtaGFuZCBrZXlzLCByaWdodC1oYW5kIGtleXMg
bGF5b3V0IHRlc3RzCisgICAgICAgIGhhdmUgYmVlbiBhbHJlYWR5IGFkZGVkLgorCisgICAgICAg
ICogcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndpbmRv
d3NLZXljb2RlV2l0aExvY2F0aW9uKToKKyAgICAgICAgVXNlIHdwYXJhbSBhbmQgbHBhcmFtIHRv
IHJlY3JlYXRlIGEgdmlydHVhbCBrZXljb2RlIHdoaWNoIGRpc3Rpbmd1aXNoZXMKKyAgICAgICAg
YmV0d2VlbiBsZWZ0LWhhbmQgYW5kIHJpZ2h0LWhhbmQgaWYgdGhlIGdpdmVuIHdwYXJhbSAoPXZp
cnR1YWwga2V5Y29kZSkKKyAgICAgICAgaXMgY29udHJvbCwgc2hpZnQsIG9yIG1lbnUuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6
UGxhdGZvcm1LZXlib2FyZEV2ZW50KToKKyAgICAgICAgVXNlIHRoZSBuZXdseSBhZGRlZCBmdW5j
dGlvbiB0byBvYnRhaW4gd2luZG93cyB2aXJ0dWFsIGtleWNvZGUuCisKIDIwMTItMDktMDQgIEFs
ZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjog
cmVtb3ZlIGZpbmFsIGNyZWF0ZUluZGV4IGJhY2tlbmQgZ2x1ZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAKaW5kZXggOGZkOTc3ZDJkOTcyZGJjOWY3YzZhNDk1
MWFhYTg5Yzc3MjAzYTFjNy4uNzZiOTBkOTgyNDFkMmQ1ZDUyMmMyYTMxMzhhYTViNjM3NjAzYTEw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwCkBAIC0x
ODQsNiArMTg0LDM1IEBAIHN0YXRpYyBib29sIGlzS2V5cGFkRXZlbnQoV1BBUkFNIGNvZGUsIExQ
QVJBTSBrZXlEYXRhLCBQbGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUpCiAgICAgfQogfQogCitzdGF0
aWMgaW50IHdpbmRvd3NLZXljb2RlV2l0aExvY2F0aW9uKFdQQVJBTSB3cGFyYW0sIExQQVJBTSBs
cGFyYW0pCit7CisgICAgaW50IGtleWNvZGUgPSB3cGFyYW07CisgICAgaWYgKGtleWNvZGUgIT0g
VktfQ09OVFJPTCAmJiBrZXljb2RlICE9IFZLX01FTlUgJiYga2V5Y29kZSAhPSBWS19TSElGVCkK
KyAgICAgICAgcmV0dXJuIGtleWNvZGU7CisKKyAgICAvLyAyNGJpdDogSW5kaWNhdGVzIHdoZXRo
ZXIgdGhlIGtleSBpcyBhbiBleHRlbmRlZCBrZXksIHN1Y2ggYXMKKyAgICAvLyB0aGUgcmlnaHQt
aGFuZCBBTFQgYW5kIENUUkwga2V5cy4KKyAgICAvLyBIb3dldmVyLCBpZiB3ZSBkb24ndCBuZWVk
IHRvIHN1cHBvcnQgV2luZG93c1hQIG9yIG9sZGVyIFdpbmRvd3MsCisgICAgLy8gaXQgbWlnaHQg
YmUgYmV0dGVyIHRvIHVzZSBNYXBWaXJ0dWFsS2V5RXggd2l0aCBzY2FuY29kZSBhbmQKKyAgICAv
LyBleHRlbmRlZCBrZXljb2RlIChpLmUuIDB4ZTAgb3IgMHhlMSkuCisgICAgaWYgKChscGFyYW0g
Pj4gMTYpICYgS0ZfRVhURU5ERUQpIHsKKyAgICAgICAgc3dpdGNoIChrZXljb2RlKSB7CisgICAg
ICAgIGNhc2UgVktfQ09OVFJPTDoKKyAgICAgICAgICAgIHJldHVybiBWS19SQ09OVFJPTDsKKyAg
ICAgICAgY2FzZSBWS19TSElGVDoKKyAgICAgICAgICAgIHJldHVybiBWS19SU0hJRlQ7CisgICAg
ICAgIGNhc2UgVktfTUVOVToKKyAgICAgICAgICAgIHJldHVybiBWS19STUVOVTsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaW50
IHNjYW5jb2RlID0gKGxwYXJhbSA+PiAxNikgJiAweEZGOworICAgIGludCByZWdlbmVyYXRlZFZp
cnR1YWxLZXlDb2RlID0gOjpNYXBWaXJ0dWFsS2V5KHNjYW5jb2RlLCBNQVBWS19WU0NfVE9fVktf
RVgpOworICAgIHJldHVybiByZWdlbmVyYXRlZFZpcnR1YWxLZXlDb2RlID8gcmVnZW5lcmF0ZWRW
aXJ0dWFsS2V5Q29kZSA6IGtleWNvZGU7Cit9CisKIHN0YXRpYyBpbmxpbmUgU3RyaW5nIHNpbmds
ZUNoYXJhY3RlclN0cmluZyhVQ2hhciBjKQogewogICAgIHJldHVybiBTdHJpbmcoJmMsIDEpOwpA
QCAtMTk0LDcgKzIyMyw3IEBAIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2Fy
ZEV2ZW50KEhXTkQsIFdQQVJBTSBjb2RlLCBMUEFSQU0ga2V5RGF0YSwKICAgICAsIG1fdGV4dCgo
dHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2Rl
KSA6IFN0cmluZygpKQogICAgICwgbV91bm1vZGlmaWVkVGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2
ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQogICAg
ICwgbV9rZXlJZGVudGlmaWVyKCh0eXBlID09IFBsYXRmb3JtRXZlbnQ6OkNoYXIpID8gU3RyaW5n
KCkgOiBrZXlJZGVudGlmaWVyRm9yV2luZG93c0tleUNvZGUoY29kZSkpCi0gICAgLCBtX3dpbmRv
d3NWaXJ0dWFsS2V5Q29kZSgodHlwZSA9PSBSYXdLZXlEb3duIHx8IHR5cGUgPT0gS2V5VXApID8g
Y29kZSA6IDApCisgICAgLCBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSgodHlwZSA9PSBSYXdLZXlE
b3duIHx8IHR5cGUgPT0gS2V5VXApID8gd2luZG93c0tleWNvZGVXaXRoTG9jYXRpb24oY29kZSwg
a2V5RGF0YSkgOiAwKQogICAgICwgbV9uYXRpdmVWaXJ0dWFsS2V5Q29kZShtX3dpbmRvd3NWaXJ0
dWFsS2V5Q29kZSkKICAgICAsIG1fbWFjQ2hhckNvZGUoMCkKICAgICAsIG1fYXV0b1JlcGVhdChI
SVdPUkQoa2V5RGF0YSkgJiBLRl9SRVBFQVQpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjU0NjVhY2QwODA1YWU0ZTFlYmFiMWI1YzIyODc2MmE1
ZDcwZDRhMi4uZWUzMDJlZDJhN2RiOGIzOTBlNzI0ZWNhYjQ1Y2NlZDhmNTU1MjRjZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDEyLTA5LTA1ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBbV2luXSBrZXkgZXZlbnQncyBsb2NhdGlvbiBkb2VzIG5vdCB3b3JrIG9uIFdpbmRv
d3MgcGxhdGZvcm0uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04OTc0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1vZGlmaWVkIGtleURvd25DYWxsYmFjayB0byB1c2UgbHBhcmFtIHRvIHNwZWNpZnkgbGVm
dC1oYW5kIGtleXMgb3IKKyAgICAgICAgcmlnaHQtaGFuZCBrZXlzLgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvd2luL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKG1ha2VLZXlEYXRhRm9y
U2NhbkNvZGUpOgorICAgICAgICBHaXZlbiBhIHZpcnR1YWwga2V5Y29kZSwgZ2VuZXJhdGUgc2Nh
bmNvZGUgYW5kIGV4dGVuZGVkIGtleSBiaXQgb2YKKyAgICAgICAgbHBhcmFtLgorICAgICAgICAo
a2V5RG93bkNhbGxiYWNrKToKKyAgICAgICAgVXNlIGxwYXJhbSBmb3IgbGVmdC1oYW5kIGFuZCBy
aWdodC1oYW5kIGtleXMsIGJlY2F1c2UgV2luZG93cyBkb2Vzbid0CisgICAgICAgIGRpcmVjdGx5
IHByb3ZpZGUgYSB2aXJ0dWFsIGtleWNvZGUgd2hpY2ggZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuCisg
ICAgICAgIGxlZnQtaGFuZCBhbmQgcmlnaHQtaGFuZC4gRm9yIGV4YW1wbGUsIHdoZW4gY29udHJv
bCBrZXkgaXMgcHJlc3NlZCwKKyAgICAgICAgd3BhcmFtIGhhcyBWS19DT05UUk9MLCBuZWl0aGVy
IFZLX1JDT05UUk9MIG5vciBWS19MQ09OVFJPTC4KKwogMjAxMi0wOS0wNCAgWGlhbnpodSBXYW5n
ICA8d2FuZ3hpYW56aHVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bS1BbmRyb2lk
XSBJbmNsdWRlIGRldmljZSBzZXJpYWwgbnVtYmVyIGluIENocm9taXVtQW5kcm9pZERyaXZlciBs
b2cgbWVzc2FnZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9FdmVudFNl
bmRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRXZlbnRTZW5kZXIuY3BwCmluZGV4
IDc2ZGFmZDk0OGVkNjA0M2EzNWI0MTc5ZTExMjhiYjQ3ZWM3OWQxM2UuLjE5ZDc0ZGUzYmJkYzJm
MzA0MWZiZGE3NDIxN2U2MTZhY2ZhZWUxYjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9FdmVudFNlbmRlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0V2
ZW50U2VuZGVyLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiAjZGVmaW5lIFdNX0RSVF9TRU5EX1FVRVVFRF9FVkVOVCAoV01fQVBQKzEpCisj
ZGVmaW5lIE1BUFZLX1ZLX1RPX1ZTQyAwCiAKIHN0YXRpYyBib29sIGRvd247CiBzdGF0aWMgYm9v
bCBkcmFnTW9kZSA9IHRydWU7CkBAIC00MzQsNiArNDM1LDE2IEBAIHZvaWQgcmVwbGF5U2F2ZWRF
dmVudHMoSFJFU1VMVCogb2xlRHJhZ0FuZERyb3BSZXR1cm5WYWx1ZSkKICAgICByZXBsYXlpbmdT
YXZlZEV2ZW50cyA9IGZhbHNlOwogfQogCitzdGF0aWMgaW50IG1ha2VLZXlEYXRhRm9yU2NhbkNv
ZGUoaW50IHZpcnR1YWxLZXlDb2RlKQoreworICAgIHVuc2lnbmVkIGludCBzY2FuY29kZSA9IE1h
cFZpcnR1YWxLZXkodmlydHVhbEtleUNvZGUsIE1BUFZLX1ZLX1RPX1ZTQyk7CisgICAgaW50IGtl
eURhdGEgPSBzY2FuY29kZSAmIDB4RkY7CisgICAgc2NhbmNvZGUgPSBzY2FuY29kZSA+PiA4Owor
ICAgIGlmIChzY2FuY29kZSA9PSAweGUwIHx8IHNjYW5jb2RlID09IDB4ZTEpCisgICAgICAgIGtl
eURhdGEgKz0gS0ZfRVhURU5ERUQ7CisgICAgcmV0dXJuIGtleURhdGEgPDwgMTY7Cit9CisKIHN0
YXRpYyBKU1ZhbHVlUmVmIGtleURvd25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVu
dENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQpAQCAtNDc5LDE5ICs0OTAsMjUgQEAg
c3RhdGljIEpTVmFsdWVSZWYga2V5RG93bkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlMKICAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19TTkFQ
U0hPVDsKICAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3Rl
ciwgIm1lbnUiKSkKICAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19BUFBTOwotICAgIGVsc2Ug
aWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdENvbnRyb2wi
KSkKLSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19MQ09OVFJPTDsKLSAgICBlbHNlIGlmIChK
U1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgImxlZnRTaGlmdCIpKQotICAg
ICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0xTSElGVDsKLSAgICBlbHNlIGlmIChKU1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgImxlZnRBbHQiKSkKLSAgICAgICAgdmlydHVh
bEtleUNvZGUgPSBWS19MTUVOVTsKLSAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0Q29udHJvbCIpKQotICAgICAgICB2aXJ0dWFsS2V5Q29k
ZSA9IFZLX1JDT05UUk9MOwotICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcoY2hhcmFjdGVyLCAicmlnaHRTaGlmdCIpKQotICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZL
X1JTSElGVDsKLSAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJh
Y3RlciwgInJpZ2h0QWx0IikpCi0gICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfUk1FTlU7Ci0g
ICAgZWxzZSB7CisgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFy
YWN0ZXIsICJsZWZ0Q29udHJvbCIpKSB7CisgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfQ09O
VFJPTDsKKyAgICAgICAga2V5RGF0YSArPSBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKFZLX0xDT05U
Uk9MKTsKKyAgICB9IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFj
dGVyLCAibGVmdFNoaWZ0IikpIHsKKyAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19TSElGVDsK
KyAgICAgICAga2V5RGF0YSArPSBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKFZLX0xTSElGVCk7Cisg
ICAgfSBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgImxl
ZnRBbHQiKSkgeworICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX01FTlU7CisgICAgICAgIGtl
eURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29kZShWS19MTUVOVSk7CisgICAgfSBlbHNlIGlm
IChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0Q29udHJvbCIp
KSB7CisgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfQ09OVFJPTDsKKyAgICAgICAga2V5RGF0
YSArPSBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKFZLX1JDT05UUk9MKTsKKyAgICB9IGVsc2UgaWYg
KEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAicmlnaHRTaGlmdCIpKSB7
CisgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfU0hJRlQ7CisgICAgICAgIGtleURhdGEgKz0g
bWFrZUtleURhdGFGb3JTY2FuQ29kZShWS19SU0hJRlQpOworICAgIH0gZWxzZSBpZiAoSlNTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJyaWdodEFsdCIpKSB7CisgICAgICAg
IHZpcnR1YWxLZXlDb2RlID0gVktfTUVOVTsKKyAgICAgICAga2V5RGF0YSArPSBtYWtlS2V5RGF0
YUZvclNjYW5Db2RlKFZLX1JNRU5VKTsKKyAgICB9IGVsc2UgewogICAgICAgICBjaGFyQ29kZSA9
IEpTU3RyaW5nR2V0Q2hhcmFjdGVyc1B0cihjaGFyYWN0ZXIpWzBdOwogICAgICAgICB2aXJ0dWFs
S2V5Q29kZSA9IExPQllURShWa0tleVNjYW4oY2hhckNvZGUpKTsKICAgICAgICAgaWYgKFdURjo6
aXNBU0NJSVVwcGVyKGNoYXJDb2RlKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162416</attachid>
            <date>2012-09-05 21:59:27 -0700</date>
            <delta_ts>2012-10-08 16:15:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89742-20120906135658.patch</filename>
            <type>text/plain</type>
            <size>8408</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWJkMjI2YTBkNTg4N2I4
YzljYmFjZTE4N2M3YzgyM2JiOTcxYWFlMi4uOGY1OWNhZDQ0OWNlNmZkZmJkNzc4ZDI4YWYwMjI0
NmU1YmE0NmVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA5LTA1ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbV2luXSBrZXkgZXZl
bnQncyBsb2NhdGlvbiBkb2VzIG5vdCB3b3JrIG9uIFdpbmRvd3MgcGxhdGZvcm0uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTc0MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3Jt
YXRpb24gb2YgdGhlIGNoYW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzICAg
ICAgICBBcyBXTV9LRVlET1dOLCBXTV9LRVlVUCwgV01fU1lTS0VZRE9XTiwgYW5kIFdNX1NZU0tF
WVVQIGRvZXNuJ3QKKyAgICAgICAgZGlyZWN0bHkgcHJvdmlkZSBhIHZpcnR1YWwga2V5Y29kZSB3
aGljaCBkaXN0aW5ndWlzaCBiZXR3ZWVuIGxlZnQtaGFuZAorICAgICAgICBhbmQgcmlnaHQtaGFu
ZCBrZXlzLiBUbyBvYnRhaW4gYSB2aXJ0dWFsIGtleWNvZGUsIHdlIGhhdmUgdG8gbG9vayBhdAor
ICAgICAgICBscGFyYW0sIGkuZS4gc2NhbmNvZGUgYW5kIGV4dGVuZGVkIGtleSBiaXQuIFNvIGlm
IHRoZSBnaXZlbiB2aXJ0dWFsCisgICAgICAgIGtleWNvZGUgaXMgY29udHJvbCwgc2hpZnQsIG9y
IG1lbnUsIHVzZSBNYXBWaXJ0dWFsS2V5IHdpdGggc2NhbmNvZGUgYW5kCisgICAgICAgIGV4dGVu
ZGVkIGtleSBiaXQgYW5kIHJlY3JlYXRlIGEgdmlydHVhbCBrZXljb2RlIHdoaWNoIGRpc3Rpbmd1
aXNoZXMKKyAgICAgICAgYmV0d2VlbiBsZWZ0LWhhbmQgYW5kIHJpZ2h0LWhhbmQuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBiZWNhdXNlIGxlZnQtaGFuZCBrZXlzLCByaWdodC1oYW5kIGtleXMg
bGF5b3V0IHRlc3RzCisgICAgICAgIGhhdmUgYmVlbiBhbHJlYWR5IGFkZGVkLgorCisgICAgICAg
ICogcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndpbmRv
d3NLZXljb2RlV2l0aExvY2F0aW9uKToKKyAgICAgICAgVXNlIHdwYXJhbSBhbmQgbHBhcmFtIHRv
IHJlY3JlYXRlIGEgdmlydHVhbCBrZXljb2RlIHdoaWNoIGRpc3Rpbmd1aXNoZXMKKyAgICAgICAg
YmV0d2VlbiBsZWZ0LWhhbmQgYW5kIHJpZ2h0LWhhbmQgaWYgdGhlIGdpdmVuIHdwYXJhbSAoPXZp
cnR1YWwga2V5Y29kZSkKKyAgICAgICAgaXMgY29udHJvbCwgc2hpZnQsIG9yIG1lbnUuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6
UGxhdGZvcm1LZXlib2FyZEV2ZW50KToKKyAgICAgICAgVXNlIHRoZSBuZXdseSBhZGRlZCBmdW5j
dGlvbiB0byBvYnRhaW4gd2luZG93cyB2aXJ0dWFsIGtleWNvZGUuCisKIDIwMTItMDktMDUgIE1h
dHQgRmFsa2VuaGFnZW4gIDxmYWxrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFZlcnRpY2Fs
bHkgY2VudGVyIG5vbi1hbmNob3JlZCA8ZGlhbG9nPiBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAKaW5kZXggOGZkOTc3ZDJkOTcyZGJjOWY3YzZh
NDk1MWFhYTg5Yzc3MjAzYTFjNy4uN2VmMTlhZGZmZjdjNTBlZTgzMTE4NGNlMjEwN2Q5Mzg3NTcw
NzczZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwCkBA
IC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUgPHd0Zi9BU0NJ
SUNUeXBlLmg+CiAKKyNkZWZpbmUgTUFQVktfVlNDX1RPX1ZLX0VYIDMKKwogdXNpbmcgbmFtZXNw
YWNlIFdURjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTg0LDYgKzE4NiwzNSBAQCBzdGF0
aWMgYm9vbCBpc0tleXBhZEV2ZW50KFdQQVJBTSBjb2RlLCBMUEFSQU0ga2V5RGF0YSwgUGxhdGZv
cm1FdmVudDo6VHlwZSB0eXBlKQogICAgIH0KIH0KIAorc3RhdGljIGludCB3aW5kb3dzS2V5Y29k
ZVdpdGhMb2NhdGlvbihXUEFSQU0gd3BhcmFtLCBMUEFSQU0gbHBhcmFtKQoreworICAgIGludCBr
ZXljb2RlID0gd3BhcmFtOworICAgIGlmIChrZXljb2RlICE9IFZLX0NPTlRST0wgJiYga2V5Y29k
ZSAhPSBWS19NRU5VICYmIGtleWNvZGUgIT0gVktfU0hJRlQpCisgICAgICAgIHJldHVybiBrZXlj
b2RlOworCisgICAgLy8gMjRiaXQ6IEluZGljYXRlcyB3aGV0aGVyIHRoZSBrZXkgaXMgYW4gZXh0
ZW5kZWQga2V5LCBzdWNoIGFzCisgICAgLy8gdGhlIHJpZ2h0LWhhbmQgQUxUIGFuZCBDVFJMIGtl
eXMuCisgICAgLy8gSG93ZXZlciwgaWYgd2UgZG9uJ3QgbmVlZCB0byBzdXBwb3J0IFdpbmRvd3NY
UCBvciBvbGRlciBXaW5kb3dzLAorICAgIC8vIGl0IG1pZ2h0IGJlIGJldHRlciB0byB1c2UgTWFw
VmlydHVhbEtleUV4IHdpdGggc2NhbmNvZGUgYW5kCisgICAgLy8gZXh0ZW5kZWQga2V5Y29kZSAo
aS5lLiAweGUwIG9yIDB4ZTEpLgorICAgIGlmICgobHBhcmFtID4+IDE2KSAmIEtGX0VYVEVOREVE
KSB7CisgICAgICAgIHN3aXRjaCAoa2V5Y29kZSkgeworICAgICAgICBjYXNlIFZLX0NPTlRST0w6
CisgICAgICAgICAgICByZXR1cm4gVktfUkNPTlRST0w7CisgICAgICAgIGNhc2UgVktfU0hJRlQ6
CisgICAgICAgICAgICByZXR1cm4gVktfUlNISUZUOworICAgICAgICBjYXNlIFZLX01FTlU6Cisg
ICAgICAgICAgICByZXR1cm4gVktfUk1FTlU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGludCBzY2FuY29kZSA9IChscGFyYW0g
Pj4gMTYpICYgMHhGRjsKKyAgICBpbnQgcmVnZW5lcmF0ZWRWaXJ0dWFsS2V5Q29kZSA9IDo6TWFw
VmlydHVhbEtleShzY2FuY29kZSwgTUFQVktfVlNDX1RPX1ZLX0VYKTsKKyAgICByZXR1cm4gcmVn
ZW5lcmF0ZWRWaXJ0dWFsS2V5Q29kZSA/IHJlZ2VuZXJhdGVkVmlydHVhbEtleUNvZGUgOiBrZXlj
b2RlOworfQorCiBzdGF0aWMgaW5saW5lIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoVUNo
YXIgYykKIHsKICAgICByZXR1cm4gU3RyaW5nKCZjLCAxKTsKQEAgLTE5NCw3ICsyMjUsNyBAQCBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudChIV05ELCBXUEFSQU0g
Y29kZSwgTFBBUkFNIGtleURhdGEsCiAgICAgLCBtX3RleHQoKHR5cGUgPT0gUGxhdGZvcm1FdmVu
dDo6Q2hhcikgPyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoY29kZSkgOiBTdHJpbmcoKSkKICAgICAs
IG1fdW5tb2RpZmllZFRleHQoKHR5cGUgPT0gUGxhdGZvcm1FdmVudDo6Q2hhcikgPyBzaW5nbGVD
aGFyYWN0ZXJTdHJpbmcoY29kZSkgOiBTdHJpbmcoKSkKICAgICAsIG1fa2V5SWRlbnRpZmllcigo
dHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IFN0cmluZygpIDoga2V5SWRlbnRpZmllckZv
cldpbmRvd3NLZXlDb2RlKGNvZGUpKQotICAgICwgbV93aW5kb3dzVmlydHVhbEtleUNvZGUoKHR5
cGUgPT0gUmF3S2V5RG93biB8fCB0eXBlID09IEtleVVwKSA/IGNvZGUgOiAwKQorICAgICwgbV93
aW5kb3dzVmlydHVhbEtleUNvZGUoKHR5cGUgPT0gUmF3S2V5RG93biB8fCB0eXBlID09IEtleVVw
KSA/IHdpbmRvd3NLZXljb2RlV2l0aExvY2F0aW9uKGNvZGUsIGtleURhdGEpIDogMCkKICAgICAs
IG1fbmF0aXZlVmlydHVhbEtleUNvZGUobV93aW5kb3dzVmlydHVhbEtleUNvZGUpCiAgICAgLCBt
X21hY0NoYXJDb2RlKDApCiAgICAgLCBtX2F1dG9SZXBlYXQoSElXT1JEKGtleURhdGEpICYgS0Zf
UkVQRUFUKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGQ1NjE2NmNlMGNhMjI5MDFjYzc2M2E1MTZmNmExNWY0YzI3YjFlZmUuLjY2Y2IzNWNmNTgw
Mjg3OWY4NDhkMzgzNDA5MDZiZDkzMGE0NzdkMDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMi0wOS0wNSAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgW1dpbl0ga2V5IGV2
ZW50J3MgbG9jYXRpb24gZG9lcyBub3Qgd29yayBvbiBXaW5kb3dzIHBsYXRmb3JtLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk3NDIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2RpZmllZCBrZXlEb3du
Q2FsbGJhY2sgdG8gdXNlIGxwYXJhbSB0byBzcGVjaWZ5IGxlZnQtaGFuZCBrZXlzIG9yCisgICAg
ICAgIHJpZ2h0LWhhbmQga2V5cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9FdmVu
dFNlbmRlci5jcHA6CisgICAgICAgIChtYWtlS2V5RGF0YUZvclNjYW5Db2RlKToKKyAgICAgICAg
R2l2ZW4gYSB2aXJ0dWFsIGtleWNvZGUsIGdlbmVyYXRlIHNjYW5jb2RlIGFuZCBleHRlbmRlZCBr
ZXkgYml0IG9mCisgICAgICAgIGxwYXJhbS4KKyAgICAgICAgKGtleURvd25DYWxsYmFjayk6Cisg
ICAgICAgIFVzZSBscGFyYW0gZm9yIGxlZnQtaGFuZCBhbmQgcmlnaHQtaGFuZCBrZXlzLCBiZWNh
dXNlIFdpbmRvd3MgZG9lc24ndAorICAgICAgICBkaXJlY3RseSBwcm92aWRlIGEgdmlydHVhbCBr
ZXljb2RlIHdoaWNoIGRpc3Rpbmd1aXNoZXMgYmV0d2VlbgorICAgICAgICBsZWZ0LWhhbmQgYW5k
IHJpZ2h0LWhhbmQuIEZvciBleGFtcGxlLCB3aGVuIGNvbnRyb2wga2V5IGlzIHByZXNzZWQsCisg
ICAgICAgIHdwYXJhbSBoYXMgVktfQ09OVFJPTCwgbmVpdGhlciBWS19SQ09OVFJPTCBub3IgVktf
TENPTlRST0wuCisKIDIwMTItMDktMDUgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjc2MTIsIHIxMjc2
NjAsIGFuZCByMTI3NjY0LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0V2
ZW50U2VuZGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHAK
aW5kZXggNzZkYWZkOTQ4ZWQ2MDQzYTM1YjQxNzllMTEyOGJiNDdlYzc5ZDEzZS4uMTlkNzRkZTNi
YmRjMmYzMDQxZmJkYTc0MjE3ZTYxNmFjZmFlZTFiNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL0V2ZW50U2VuZGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRXZlbnRTZW5kZXIuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKICNkZWZpbmUgV01fRFJUX1NFTkRfUVVFVUVEX0VWRU5UIChXTV9BUFAr
MSkKKyNkZWZpbmUgTUFQVktfVktfVE9fVlNDIDAKIAogc3RhdGljIGJvb2wgZG93bjsKIHN0YXRp
YyBib29sIGRyYWdNb2RlID0gdHJ1ZTsKQEAgLTQzNCw2ICs0MzUsMTYgQEAgdm9pZCByZXBsYXlT
YXZlZEV2ZW50cyhIUkVTVUxUKiBvbGVEcmFnQW5kRHJvcFJldHVyblZhbHVlKQogICAgIHJlcGxh
eWluZ1NhdmVkRXZlbnRzID0gZmFsc2U7CiB9CiAKK3N0YXRpYyBpbnQgbWFrZUtleURhdGFGb3JT
Y2FuQ29kZShpbnQgdmlydHVhbEtleUNvZGUpCit7CisgICAgdW5zaWduZWQgaW50IHNjYW5jb2Rl
ID0gTWFwVmlydHVhbEtleSh2aXJ0dWFsS2V5Q29kZSwgTUFQVktfVktfVE9fVlNDKTsKKyAgICBp
bnQga2V5RGF0YSA9IHNjYW5jb2RlICYgMHhGRjsKKyAgICBzY2FuY29kZSA9IHNjYW5jb2RlID4+
IDg7CisgICAgaWYgKHNjYW5jb2RlID09IDB4ZTAgfHwgc2NhbmNvZGUgPT0gMHhlMSkKKyAgICAg
ICAga2V5RGF0YSArPSBLRl9FWFRFTkRFRDsKKyAgICByZXR1cm4ga2V5RGF0YSA8PCAxNjsKK30K
Kwogc3RhdGljIEpTVmFsdWVSZWYga2V5RG93bkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKIHsKICAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCkBAIC00NzksMTkgKzQ5MCwy
NSBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBrZXlEb3duQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKUwogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZL
X1NOQVBTSE9UOwogICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hh
cmFjdGVyLCAibWVudSIpKQogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0FQUFM7Ci0gICAg
ZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJsZWZ0Q29u
dHJvbCIpKQotICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0xDT05UUk9MOwotICAgIGVsc2Ug
aWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdFNoaWZ0Iikp
Ci0gICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfTFNISUZUOwotICAgIGVsc2UgaWYgKEpTU3Ry
aW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdEFsdCIpKQotICAgICAgICB2
aXJ0dWFsS2V5Q29kZSA9IFZLX0xNRU5VOwotICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcoY2hhcmFjdGVyLCAicmlnaHRDb250cm9sIikpCi0gICAgICAgIHZpcnR1YWxL
ZXlDb2RlID0gVktfUkNPTlRST0w7Ci0gICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhjaGFyYWN0ZXIsICJyaWdodFNoaWZ0IikpCi0gICAgICAgIHZpcnR1YWxLZXlDb2Rl
ID0gVktfUlNISUZUOwotICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
Y2hhcmFjdGVyLCAicmlnaHRBbHQiKSkKLSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19STUVO
VTsKLSAgICBlbHNlIHsKKyAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5n
KGNoYXJhY3RlciwgImxlZnRDb250cm9sIikpIHsKKyAgICAgICAgdmlydHVhbEtleUNvZGUgPSBW
S19DT05UUk9MOworICAgICAgICBrZXlEYXRhICs9IG1ha2VLZXlEYXRhRm9yU2NhbkNvZGUoVktf
TENPTlRST0wpOworICAgIH0gZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhj
aGFyYWN0ZXIsICJsZWZ0U2hpZnQiKSkgeworICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1NI
SUZUOworICAgICAgICBrZXlEYXRhICs9IG1ha2VLZXlEYXRhRm9yU2NhbkNvZGUoVktfTFNISUZU
KTsKKyAgICB9IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVy
LCAibGVmdEFsdCIpKSB7CisgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfTUVOVTsKKyAgICAg
ICAga2V5RGF0YSArPSBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKFZLX0xNRU5VKTsKKyAgICB9IGVs
c2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAicmlnaHRDb250
cm9sIikpIHsKKyAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19DT05UUk9MOworICAgICAgICBr
ZXlEYXRhICs9IG1ha2VLZXlEYXRhRm9yU2NhbkNvZGUoVktfUkNPTlRST0wpOworICAgIH0gZWxz
ZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJyaWdodFNoaWZ0
IikpIHsKKyAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19TSElGVDsKKyAgICAgICAga2V5RGF0
YSArPSBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKFZLX1JTSElGVCk7CisgICAgfSBlbHNlIGlmIChK
U1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0QWx0IikpIHsKKyAg
ICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19NRU5VOworICAgICAgICBrZXlEYXRhICs9IG1ha2VL
ZXlEYXRhRm9yU2NhbkNvZGUoVktfUk1FTlUpOworICAgIH0gZWxzZSB7CiAgICAgICAgIGNoYXJD
b2RlID0gSlNTdHJpbmdHZXRDaGFyYWN0ZXJzUHRyKGNoYXJhY3RlcilbMF07CiAgICAgICAgIHZp
cnR1YWxLZXlDb2RlID0gTE9CWVRFKFZrS2V5U2NhbihjaGFyQ29kZSkpOwogICAgICAgICBpZiAo
V1RGOjppc0FTQ0lJVXBwZXIoY2hhckNvZGUpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166148</attachid>
            <date>2012-09-27 23:23:44 -0700</date>
            <delta_ts>2012-09-27 23:50:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89742-20120928152301.patch</filename>
            <type>text/plain</type>
            <size>8206</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQ2M2Y2ZGM4ZmFkZWQ0
ODg0NGEzMDRiMTE3ZGQyMDY5MDMxMjgxNi4uODY0OTFlNTVkMTk2ZTY5YTk5ZjI5N2VlMWQ4YzE5
NGQwMjRjODRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA5LTA1ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbV2luXSBrZXkgZXZl
bnQncyBsb2NhdGlvbiBkb2VzIG5vdCB3b3JrIG9uIFdpbmRvd3MgcGxhdGZvcm0uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTc0MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFzIFdNX0tFWURPV04sIFdN
X0tFWVVQLCBXTV9TWVNLRVlET1dOLCBhbmQgV01fU1lTS0VZVVAgZG9lc24ndAorICAgICAgICBk
aXJlY3RseSBwcm92aWRlIGEgdmlydHVhbCBrZXljb2RlIHdoaWNoIGRpc3Rpbmd1aXNoIGJldHdl
ZW4gbGVmdC1oYW5kCisgICAgICAgIGFuZCByaWdodC1oYW5kIGtleXMuIFRvIG9idGFpbiBhIHZp
cnR1YWwga2V5Y29kZSwgd2UgaGF2ZSB0byBsb29rIGF0CisgICAgICAgIGxwYXJhbSwgaS5lLiBz
Y2FuY29kZSBhbmQgZXh0ZW5kZWQga2V5IGJpdC4gU28gaWYgdGhlIGdpdmVuIHZpcnR1YWwKKyAg
ICAgICAga2V5Y29kZSBpcyBjb250cm9sLCBzaGlmdCwgb3IgbWVudSwgdXNlIE1hcFZpcnR1YWxL
ZXkgd2l0aCBzY2FuY29kZSBhbmQKKyAgICAgICAgZXh0ZW5kZWQga2V5IGJpdCBhbmQgcmVjcmVh
dGUgYSB2aXJ0dWFsIGtleWNvZGUgd2hpY2ggZGlzdGluZ3Vpc2hlcworICAgICAgICBiZXR3ZWVu
IGxlZnQtaGFuZCBhbmQgcmlnaHQtaGFuZC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGJlY2F1
c2UgbGVmdC1oYW5kIGtleXMsIHJpZ2h0LWhhbmQga2V5cyBsYXlvdXQgdGVzdHMKKyAgICAgICAg
aGF2ZSBiZWVuIGFscmVhZHkgYWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vS2V5RXZl
bnRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6d2luZG93c0tleWNvZGVXaXRoTG9jYXRpb24p
OgorICAgICAgICBVc2Ugd3BhcmFtIGFuZCBscGFyYW0gdG8gcmVjcmVhdGUgYSB2aXJ0dWFsIGtl
eWNvZGUgd2hpY2ggZGlzdGluZ3Vpc2hlcworICAgICAgICBiZXR3ZWVuIGxlZnQtaGFuZCBhbmQg
cmlnaHQtaGFuZCBpZiB0aGUgZ2l2ZW4gd3BhcmFtICg9dmlydHVhbCBrZXljb2RlKQorICAgICAg
ICBpcyBjb250cm9sLCBzaGlmdCwgb3IgbWVudS4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQp
OgorICAgICAgICBVc2UgdGhlIG5ld2x5IGFkZGVkIGZ1bmN0aW9uIHRvIG9idGFpbiB3aW5kb3dz
IHZpcnR1YWwga2V5Y29kZS4KKwogMjAxMi0wOS0yNyAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBSZW1vdmUgdW51c2VkIFBsYXRmb3Jt
U3VwcG9ydCByZWZlcmVuY2UgaW4gQ2xpcGJvYXJkQ2hyb21pdW0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwCmluZGV4IDhmZDk3N2QyZDk3MmRiYzlmN2M2YTQ5
NTFhYWE4OWM3NzIwM2ExYzcuLjRjOTM4YzMwZDY3MjM0MGQzOTQ5YmZmMDcwOWU3NjhkMmNjOWE2
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcApAQCAt
MjksNiArMjksOCBAQAogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDx3dGYvQVNDSUlD
VHlwZS5oPgogCisjZGVmaW5lIE1BUFZLX1ZTQ19UT19WS19FWCAzCisKIHVzaW5nIG5hbWVzcGFj
ZSBXVEY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4NCw2ICsxODYsMzIgQEAgc3RhdGlj
IGJvb2wgaXNLZXlwYWRFdmVudChXUEFSQU0gY29kZSwgTFBBUkFNIGtleURhdGEsIFBsYXRmb3Jt
RXZlbnQ6OlR5cGUgdHlwZSkKICAgICB9CiB9CiAKK3N0YXRpYyBpbnQgd2luZG93c0tleWNvZGVX
aXRoTG9jYXRpb24oV1BBUkFNIGtleWNvZGUsIExQQVJBTSBrZXlEYXRhKQoreworICAgIGlmIChr
ZXljb2RlICE9IFZLX0NPTlRST0wgJiYga2V5Y29kZSAhPSBWS19NRU5VICYmIGtleWNvZGUgIT0g
VktfU0hJRlQpCisgICAgICAgIHJldHVybiBrZXljb2RlOworCisgICAgLy8gSWYgd2UgZG9uJ3Qg
bmVlZCB0byBzdXBwb3J0IFdpbmRvd3MgWFAgb3Igb2xkZXIgV2luZG93cywKKyAgICAvLyBpdCBt
aWdodCBiZSBiZXR0ZXIgdG8gdXNlIE1hcFZpcnR1YWxLZXlFeCB3aXRoIHNjYW5jb2RlIGFuZAor
ICAgIC8vIGV4dGVuZGVkIGtleWNvZGUgKGkuZS4gMHhlMCBvciAweGUxKS4KKyAgICBpZiAoKGtl
eURhdGEgPj4gMTYpICYgS0ZfRVhURU5ERUQpIHsKKyAgICAgICAgc3dpdGNoIChrZXljb2RlKSB7
CisgICAgICAgIGNhc2UgVktfQ09OVFJPTDoKKyAgICAgICAgICAgIHJldHVybiBWS19SQ09OVFJP
TDsKKyAgICAgICAgY2FzZSBWS19TSElGVDoKKyAgICAgICAgICAgIHJldHVybiBWS19SU0hJRlQ7
CisgICAgICAgIGNhc2UgVktfTUVOVToKKyAgICAgICAgICAgIHJldHVybiBWS19STUVOVTsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisg
ICAgaW50IHNjYW5jb2RlID0gKGtleURhdGEgPj4gMTYpICYgMHhGRjsKKyAgICBpbnQgcmVnZW5l
cmF0ZWRWaXJ0dWFsS2V5Q29kZSA9IDo6TWFwVmlydHVhbEtleShzY2FuY29kZSwgTUFQVktfVlND
X1RPX1ZLX0VYKTsKKyAgICByZXR1cm4gcmVnZW5lcmF0ZWRWaXJ0dWFsS2V5Q29kZSA/IHJlZ2Vu
ZXJhdGVkVmlydHVhbEtleUNvZGUgOiBrZXljb2RlOworfQorCiBzdGF0aWMgaW5saW5lIFN0cmlu
ZyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoVUNoYXIgYykKIHsKICAgICByZXR1cm4gU3RyaW5nKCZj
LCAxKTsKQEAgLTE5NCw3ICsyMjIsNyBAQCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3Jt
S2V5Ym9hcmRFdmVudChIV05ELCBXUEFSQU0gY29kZSwgTFBBUkFNIGtleURhdGEsCiAgICAgLCBt
X3RleHQoKHR5cGUgPT0gUGxhdGZvcm1FdmVudDo6Q2hhcikgPyBzaW5nbGVDaGFyYWN0ZXJTdHJp
bmcoY29kZSkgOiBTdHJpbmcoKSkKICAgICAsIG1fdW5tb2RpZmllZFRleHQoKHR5cGUgPT0gUGxh
dGZvcm1FdmVudDo6Q2hhcikgPyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoY29kZSkgOiBTdHJpbmco
KSkKICAgICAsIG1fa2V5SWRlbnRpZmllcigodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/
IFN0cmluZygpIDoga2V5SWRlbnRpZmllckZvcldpbmRvd3NLZXlDb2RlKGNvZGUpKQotICAgICwg
bV93aW5kb3dzVmlydHVhbEtleUNvZGUoKHR5cGUgPT0gUmF3S2V5RG93biB8fCB0eXBlID09IEtl
eVVwKSA/IGNvZGUgOiAwKQorICAgICwgbV93aW5kb3dzVmlydHVhbEtleUNvZGUoKHR5cGUgPT0g
UmF3S2V5RG93biB8fCB0eXBlID09IEtleVVwKSA/IHdpbmRvd3NLZXljb2RlV2l0aExvY2F0aW9u
KGNvZGUsIGtleURhdGEpIDogMCkKICAgICAsIG1fbmF0aXZlVmlydHVhbEtleUNvZGUobV93aW5k
b3dzVmlydHVhbEtleUNvZGUpCiAgICAgLCBtX21hY0NoYXJDb2RlKDApCiAgICAgLCBtX2F1dG9S
ZXBlYXQoSElXT1JEKGtleURhdGEpICYgS0ZfUkVQRUFUKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGExMTI3YjJiNTljOWE0ZjMxNmU4ODlmYjU2
ZDVlNThiZmNiZGRiZmQuLmQ4M2ZjNTM3MTJhNGZkODlhNGRjODZiNzVmMWY0YTQxZjM5NDlkY2Yg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMi0wOS0wNSAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5j
b20+CisKKyAgICAgICAgW1dpbl0ga2V5IGV2ZW50J3MgbG9jYXRpb24gZG9lcyBub3Qgd29yayBv
biBXaW5kb3dzIHBsYXRmb3JtLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODk3NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNb2RpZmllZCBrZXlEb3duQ2FsbGJhY2sgdG8gdXNlIGxwYXJhbSB0byBzcGVj
aWZ5IGxlZnQtaGFuZCBrZXlzIG9yCisgICAgICAgIHJpZ2h0LWhhbmQga2V5cy4KKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHA6CisgICAgICAgIChtYWtlS2V5
RGF0YUZvclNjYW5Db2RlKToKKyAgICAgICAgR2l2ZW4gYSB2aXJ0dWFsIGtleWNvZGUsIGdlbmVy
YXRlIHNjYW5jb2RlIGFuZCBleHRlbmRlZCBrZXkgYml0IG9mCisgICAgICAgIGxwYXJhbS4KKyAg
ICAgICAgKGtleURvd25DYWxsYmFjayk6CisgICAgICAgIFVzZSBscGFyYW0gZm9yIGxlZnQtaGFu
ZCBhbmQgcmlnaHQtaGFuZCBrZXlzLCBiZWNhdXNlIFdpbmRvd3MgZG9lc24ndAorICAgICAgICBk
aXJlY3RseSBwcm92aWRlIGEgdmlydHVhbCBrZXljb2RlIHdoaWNoIGRpc3Rpbmd1aXNoZXMgYmV0
d2VlbgorICAgICAgICBsZWZ0LWhhbmQgYW5kIHJpZ2h0LWhhbmQuIEZvciBleGFtcGxlLCB3aGVu
IGNvbnRyb2wga2V5IGlzIHByZXNzZWQsCisgICAgICAgIHdwYXJhbSBoYXMgVktfQ09OVFJPTCwg
bmVpdGhlciBWS19SQ09OVFJPTCBub3IgVktfTENPTlRST0wuCisKIDIwMTItMDktMjcgIEFsZXhh
bmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBE
dW1wUmVuZGVyVHJlZSBzdXBwb3J0IGZvciBzb2Z0d2FyZSBjb21wb3NpdGluZwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0V2ZW50U2VuZGVyLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHAKaW5kZXggNzZkYWZkOTQ4ZWQ2MDQzYTM1YjQx
NzllMTEyOGJiNDdlYzc5ZDEzZS4uMWRkNDQzODEyODQ5NTQ2YTFjNzE4ODA4MGY3NzhiZDY1ODM4
MTkxYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0V2ZW50U2VuZGVyLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRXZlbnRTZW5kZXIuY3BwCkBAIC00NSw2
ICs0NSw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNkZWZpbmUgV01f
RFJUX1NFTkRfUVVFVUVEX0VWRU5UIChXTV9BUFArMSkKKyNkZWZpbmUgTUFQVktfVktfVE9fVlND
IDAKIAogc3RhdGljIGJvb2wgZG93bjsKIHN0YXRpYyBib29sIGRyYWdNb2RlID0gdHJ1ZTsKQEAg
LTQzNCw2ICs0MzUsMTYgQEAgdm9pZCByZXBsYXlTYXZlZEV2ZW50cyhIUkVTVUxUKiBvbGVEcmFn
QW5kRHJvcFJldHVyblZhbHVlKQogICAgIHJlcGxheWluZ1NhdmVkRXZlbnRzID0gZmFsc2U7CiB9
CiAKK3N0YXRpYyBpbnQgbWFrZUtleURhdGFGb3JTY2FuQ29kZShpbnQgdmlydHVhbEtleUNvZGUp
Cit7CisgICAgdW5zaWduZWQgc2NhbmNvZGUgPSBNYXBWaXJ0dWFsS2V5KHZpcnR1YWxLZXlDb2Rl
LCBNQVBWS19WS19UT19WU0MpOworICAgIGludCBrZXlEYXRhID0gc2NhbmNvZGUgJiAweEZGOwor
ICAgIHNjYW5jb2RlID0gc2NhbmNvZGUgPj4gODsKKyAgICBpZiAoc2NhbmNvZGUgPT0gMHhlMCB8
fCBzY2FuY29kZSA9PSAweGUxKQorICAgICAgICBrZXlEYXRhICs9IEtGX0VYVEVOREVEOworICAg
IHJldHVybiBrZXlEYXRhIDw8IDE2OworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBrZXlEb3duQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVj
dFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBh
cmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlmIChhcmd1bWVudENv
dW50IDwgMSkKQEAgLTQ3OSwxOSArNDkwLDI1IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGtleURvd25D
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTCiAg
ICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfU05BUFNIT1Q7CiAgICAgZWxzZSBpZiAoSlNTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJtZW51IikpCiAgICAgICAgIHZpcnR1
YWxLZXlDb2RlID0gVktfQVBQUzsKLSAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKGNoYXJhY3RlciwgImxlZnRDb250cm9sIikpCi0gICAgICAgIHZpcnR1YWxLZXlDb2Rl
ID0gVktfTENPTlRST0w7Ci0gICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhjaGFyYWN0ZXIsICJsZWZ0U2hpZnQiKSkKLSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19M
U0hJRlQ7Ci0gICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0
ZXIsICJsZWZ0QWx0IikpCi0gICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfTE1FTlU7Ci0gICAg
ZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJyaWdodENv
bnRyb2wiKSkKLSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19SQ09OVFJPTDsKLSAgICBlbHNl
IGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0U2hpZnQi
KSkKLSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19SU0hJRlQ7Ci0gICAgZWxzZSBpZiAoSlNT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJyaWdodEFsdCIpKQotICAgICAg
ICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1JNRU5VOwotICAgIGVsc2UgeworICAgIGVsc2UgaWYgKEpT
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdENvbnRyb2wiKSkgewor
ICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0NPTlRST0w7CisgICAgICAgIGtleURhdGEgKz0g
bWFrZUtleURhdGFGb3JTY2FuQ29kZShWS19MQ09OVFJPTCk7CisgICAgfSBlbHNlIGlmIChKU1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgImxlZnRTaGlmdCIpKSB7CisgICAg
ICAgIHZpcnR1YWxLZXlDb2RlID0gVktfU0hJRlQ7CisgICAgICAgIGtleURhdGEgKz0gbWFrZUtl
eURhdGFGb3JTY2FuQ29kZShWS19MU0hJRlQpOworICAgIH0gZWxzZSBpZiAoSlNTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJsZWZ0QWx0IikpIHsKKyAgICAgICAgdmlydHVh
bEtleUNvZGUgPSBWS19NRU5VOworICAgICAgICBrZXlEYXRhICs9IG1ha2VLZXlEYXRhRm9yU2Nh
bkNvZGUoVktfTE1FTlUpOworICAgIH0gZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhjaGFyYWN0ZXIsICJyaWdodENvbnRyb2wiKSkgeworICAgICAgICB2aXJ0dWFsS2V5Q29k
ZSA9IFZLX0NPTlRST0w7CisgICAgICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29k
ZShWS19SQ09OVFJPTCk7CisgICAgfSBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKGNoYXJhY3RlciwgInJpZ2h0U2hpZnQiKSkgeworICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9
IFZLX1NISUZUOworICAgICAgICBrZXlEYXRhICs9IG1ha2VLZXlEYXRhRm9yU2NhbkNvZGUoVktf
UlNISUZUKTsKKyAgICB9IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hh
cmFjdGVyLCAicmlnaHRBbHQiKSkgeworICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX01FTlU7
CisgICAgICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29kZShWS19STUVOVSk7Cisg
ICAgfSBlbHNlIHsKICAgICAgICAgY2hhckNvZGUgPSBKU1N0cmluZ0dldENoYXJhY3RlcnNQdHIo
Y2hhcmFjdGVyKVswXTsKICAgICAgICAgdmlydHVhbEtleUNvZGUgPSBMT0JZVEUoVmtLZXlTY2Fu
KGNoYXJDb2RlKSk7CiAgICAgICAgIGlmIChXVEY6OmlzQVNDSUlVcHBlcihjaGFyQ29kZSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166154</attachid>
            <date>2012-09-27 23:50:45 -0700</date>
            <delta_ts>2012-11-15 09:55:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89742-20120928155002.patch</filename>
            <type>text/plain</type>
            <size>8206</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5ODM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQ2M2Y2ZGM4ZmFkZWQ0
ODg0NGEzMDRiMTE3ZGQyMDY5MDMxMjgxNi4uODY0OTFlNTVkMTk2ZTY5YTk5ZjI5N2VlMWQ4YzE5
NGQwMjRjODRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA5LTA1ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbV2luXSBrZXkgZXZl
bnQncyBsb2NhdGlvbiBkb2VzIG5vdCB3b3JrIG9uIFdpbmRvd3MgcGxhdGZvcm0uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTc0MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFzIFdNX0tFWURPV04sIFdN
X0tFWVVQLCBXTV9TWVNLRVlET1dOLCBhbmQgV01fU1lTS0VZVVAgZG9lc24ndAorICAgICAgICBk
aXJlY3RseSBwcm92aWRlIGEgdmlydHVhbCBrZXljb2RlIHdoaWNoIGRpc3Rpbmd1aXNoIGJldHdl
ZW4gbGVmdC1oYW5kCisgICAgICAgIGFuZCByaWdodC1oYW5kIGtleXMuIFRvIG9idGFpbiBhIHZp
cnR1YWwga2V5Y29kZSwgd2UgaGF2ZSB0byBsb29rIGF0CisgICAgICAgIGxwYXJhbSwgaS5lLiBz
Y2FuY29kZSBhbmQgZXh0ZW5kZWQga2V5IGJpdC4gU28gaWYgdGhlIGdpdmVuIHZpcnR1YWwKKyAg
ICAgICAga2V5Y29kZSBpcyBjb250cm9sLCBzaGlmdCwgb3IgbWVudSwgdXNlIE1hcFZpcnR1YWxL
ZXkgd2l0aCBzY2FuY29kZSBhbmQKKyAgICAgICAgZXh0ZW5kZWQga2V5IGJpdCBhbmQgcmVjcmVh
dGUgYSB2aXJ0dWFsIGtleWNvZGUgd2hpY2ggZGlzdGluZ3Vpc2hlcworICAgICAgICBiZXR3ZWVu
IGxlZnQtaGFuZCBhbmQgcmlnaHQtaGFuZC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGJlY2F1
c2UgbGVmdC1oYW5kIGtleXMsIHJpZ2h0LWhhbmQga2V5cyBsYXlvdXQgdGVzdHMKKyAgICAgICAg
aGF2ZSBiZWVuIGFscmVhZHkgYWRkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vS2V5RXZl
bnRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6d2luZG93c0tleWNvZGVXaXRoTG9jYXRpb24p
OgorICAgICAgICBVc2Ugd3BhcmFtIGFuZCBscGFyYW0gdG8gcmVjcmVhdGUgYSB2aXJ0dWFsIGtl
eWNvZGUgd2hpY2ggZGlzdGluZ3Vpc2hlcworICAgICAgICBiZXR3ZWVuIGxlZnQtaGFuZCBhbmQg
cmlnaHQtaGFuZCBpZiB0aGUgZ2l2ZW4gd3BhcmFtICg9dmlydHVhbCBrZXljb2RlKQorICAgICAg
ICBpcyBjb250cm9sLCBzaGlmdCwgb3IgbWVudS4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQp
OgorICAgICAgICBVc2UgdGhlIG5ld2x5IGFkZGVkIGZ1bmN0aW9uIHRvIG9idGFpbiB3aW5kb3dz
IHZpcnR1YWwga2V5Y29kZS4KKwogMjAxMi0wOS0yNyAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBSZW1vdmUgdW51c2VkIFBsYXRmb3Jt
U3VwcG9ydCByZWZlcmVuY2UgaW4gQ2xpcGJvYXJkQ2hyb21pdW0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwCmluZGV4IDhmZDk3N2QyZDk3MmRiYzlmN2M2YTQ5
NTFhYWE4OWM3NzIwM2ExYzcuLjRjOTM4YzMwZDY3MjM0MGQzOTQ5YmZmMDcwOWU3NjhkMmNjOWE2
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcApAQCAt
MjksNiArMjksOCBAQAogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDx3dGYvQVNDSUlD
VHlwZS5oPgogCisjZGVmaW5lIE1BUFZLX1ZTQ19UT19WS19FWCAzCisKIHVzaW5nIG5hbWVzcGFj
ZSBXVEY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4NCw2ICsxODYsMzIgQEAgc3RhdGlj
IGJvb2wgaXNLZXlwYWRFdmVudChXUEFSQU0gY29kZSwgTFBBUkFNIGtleURhdGEsIFBsYXRmb3Jt
RXZlbnQ6OlR5cGUgdHlwZSkKICAgICB9CiB9CiAKK3N0YXRpYyBpbnQgd2luZG93c0tleWNvZGVX
aXRoTG9jYXRpb24oV1BBUkFNIGtleWNvZGUsIExQQVJBTSBrZXlEYXRhKQoreworICAgIGlmIChr
ZXljb2RlICE9IFZLX0NPTlRST0wgJiYga2V5Y29kZSAhPSBWS19NRU5VICYmIGtleWNvZGUgIT0g
VktfU0hJRlQpCisgICAgICAgIHJldHVybiBrZXljb2RlOworCisgICAgLy8gSWYgd2UgZG9uJ3Qg
bmVlZCB0byBzdXBwb3J0IFdpbmRvd3MgWFAgb3Igb2xkZXIgV2luZG93cywKKyAgICAvLyBpdCBt
aWdodCBiZSBiZXR0ZXIgdG8gdXNlIE1hcFZpcnR1YWxLZXlFeCB3aXRoIHNjYW5jb2RlIGFuZAor
ICAgIC8vIGV4dGVuZGVkIGtleWNvZGUgKGkuZS4gMHhlMCBvciAweGUxKS4KKyAgICBpZiAoKGtl
eURhdGEgPj4gMTYpICYgS0ZfRVhURU5ERUQpIHsKKyAgICAgICAgc3dpdGNoIChrZXljb2RlKSB7
CisgICAgICAgIGNhc2UgVktfQ09OVFJPTDoKKyAgICAgICAgICAgIHJldHVybiBWS19SQ09OVFJP
TDsKKyAgICAgICAgY2FzZSBWS19TSElGVDoKKyAgICAgICAgICAgIHJldHVybiBWS19SU0hJRlQ7
CisgICAgICAgIGNhc2UgVktfTUVOVToKKyAgICAgICAgICAgIHJldHVybiBWS19STUVOVTsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisg
ICAgaW50IHNjYW5jb2RlID0gKGtleURhdGEgPj4gMTYpICYgMHhGRjsKKyAgICBpbnQgcmVnZW5l
cmF0ZWRWaXJ0dWFsS2V5Q29kZSA9IDo6TWFwVmlydHVhbEtleShzY2FuY29kZSwgTUFQVktfVlND
X1RPX1ZLX0VYKTsKKyAgICByZXR1cm4gcmVnZW5lcmF0ZWRWaXJ0dWFsS2V5Q29kZSA/IHJlZ2Vu
ZXJhdGVkVmlydHVhbEtleUNvZGUgOiBrZXljb2RlOworfQorCiBzdGF0aWMgaW5saW5lIFN0cmlu
ZyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoVUNoYXIgYykKIHsKICAgICByZXR1cm4gU3RyaW5nKCZj
LCAxKTsKQEAgLTE5NCw3ICsyMjIsNyBAQCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3Jt
S2V5Ym9hcmRFdmVudChIV05ELCBXUEFSQU0gY29kZSwgTFBBUkFNIGtleURhdGEsCiAgICAgLCBt
X3RleHQoKHR5cGUgPT0gUGxhdGZvcm1FdmVudDo6Q2hhcikgPyBzaW5nbGVDaGFyYWN0ZXJTdHJp
bmcoY29kZSkgOiBTdHJpbmcoKSkKICAgICAsIG1fdW5tb2RpZmllZFRleHQoKHR5cGUgPT0gUGxh
dGZvcm1FdmVudDo6Q2hhcikgPyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoY29kZSkgOiBTdHJpbmco
KSkKICAgICAsIG1fa2V5SWRlbnRpZmllcigodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/
IFN0cmluZygpIDoga2V5SWRlbnRpZmllckZvcldpbmRvd3NLZXlDb2RlKGNvZGUpKQotICAgICwg
bV93aW5kb3dzVmlydHVhbEtleUNvZGUoKHR5cGUgPT0gUmF3S2V5RG93biB8fCB0eXBlID09IEtl
eVVwKSA/IGNvZGUgOiAwKQorICAgICwgbV93aW5kb3dzVmlydHVhbEtleUNvZGUoKHR5cGUgPT0g
UmF3S2V5RG93biB8fCB0eXBlID09IEtleVVwKSA/IHdpbmRvd3NLZXljb2RlV2l0aExvY2F0aW9u
KGNvZGUsIGtleURhdGEpIDogMCkKICAgICAsIG1fbmF0aXZlVmlydHVhbEtleUNvZGUobV93aW5k
b3dzVmlydHVhbEtleUNvZGUpCiAgICAgLCBtX21hY0NoYXJDb2RlKDApCiAgICAgLCBtX2F1dG9S
ZXBlYXQoSElXT1JEKGtleURhdGEpICYgS0ZfUkVQRUFUKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGExMTI3YjJiNTljOWE0ZjMxNmU4ODlmYjU2
ZDVlNThiZmNiZGRiZmQuLmQ4M2ZjNTM3MTJhNGZkODlhNGRjODZiNzVmMWY0YTQxZjM5NDlkY2Yg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMi0wOS0wNSAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5j
b20+CisKKyAgICAgICAgW1dpbl0ga2V5IGV2ZW50J3MgbG9jYXRpb24gZG9lcyBub3Qgd29yayBv
biBXaW5kb3dzIHBsYXRmb3JtLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODk3NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNb2RpZmllZCBrZXlEb3duQ2FsbGJhY2sgdG8gdXNlIGxwYXJhbSB0byBzcGVj
aWZ5IGxlZnQtaGFuZCBrZXlzIG9yCisgICAgICAgIHJpZ2h0LWhhbmQga2V5cy4KKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHA6CisgICAgICAgIChtYWtlS2V5
RGF0YUZvclNjYW5Db2RlKToKKyAgICAgICAgR2l2ZW4gYSB2aXJ0dWFsIGtleWNvZGUsIGdlbmVy
YXRlIHNjYW5jb2RlIGFuZCBleHRlbmRlZCBrZXkgYml0IG9mCisgICAgICAgIGxwYXJhbS4KKyAg
ICAgICAgKGtleURvd25DYWxsYmFjayk6CisgICAgICAgIFVzZSBscGFyYW0gZm9yIGxlZnQtaGFu
ZCBhbmQgcmlnaHQtaGFuZCBrZXlzLCBiZWNhdXNlIFdpbmRvd3MgZG9lc24ndAorICAgICAgICBk
aXJlY3RseSBwcm92aWRlIGEgdmlydHVhbCBrZXljb2RlIHdoaWNoIGRpc3Rpbmd1aXNoZXMgYmV0
d2VlbgorICAgICAgICBsZWZ0LWhhbmQgYW5kIHJpZ2h0LWhhbmQuIEZvciBleGFtcGxlLCB3aGVu
IGNvbnRyb2wga2V5IGlzIHByZXNzZWQsCisgICAgICAgIHdwYXJhbSBoYXMgVktfQ09OVFJPTCwg
bmVpdGhlciBWS19SQ09OVFJPTCBub3IgVktfTENPTlRST0wuCisKIDIwMTItMDktMjcgIEFsZXhh
bmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBE
dW1wUmVuZGVyVHJlZSBzdXBwb3J0IGZvciBzb2Z0d2FyZSBjb21wb3NpdGluZwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0V2ZW50U2VuZGVyLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHAKaW5kZXggNzZkYWZkOTQ4ZWQ2MDQzYTM1YjQx
NzllMTEyOGJiNDdlYzc5ZDEzZS4uMWRkNDQzODEyODQ5NTQ2YTFjNzE4ODA4MGY3NzhiZDY1ODM4
MTkxYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0V2ZW50U2VuZGVyLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRXZlbnRTZW5kZXIuY3BwCkBAIC00NSw2
ICs0NSw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNkZWZpbmUgV01f
RFJUX1NFTkRfUVVFVUVEX0VWRU5UIChXTV9BUFArMSkKKyNkZWZpbmUgTUFQVktfVktfVE9fVlND
IDAKIAogc3RhdGljIGJvb2wgZG93bjsKIHN0YXRpYyBib29sIGRyYWdNb2RlID0gdHJ1ZTsKQEAg
LTQzNCw2ICs0MzUsMTYgQEAgdm9pZCByZXBsYXlTYXZlZEV2ZW50cyhIUkVTVUxUKiBvbGVEcmFn
QW5kRHJvcFJldHVyblZhbHVlKQogICAgIHJlcGxheWluZ1NhdmVkRXZlbnRzID0gZmFsc2U7CiB9
CiAKK3N0YXRpYyBpbnQgbWFrZUtleURhdGFGb3JTY2FuQ29kZShpbnQgdmlydHVhbEtleUNvZGUp
Cit7CisgICAgdW5zaWduZWQgc2NhbmNvZGUgPSBNYXBWaXJ0dWFsS2V5KHZpcnR1YWxLZXlDb2Rl
LCBNQVBWS19WS19UT19WU0MpOworICAgIGludCBrZXlEYXRhID0gc2NhbmNvZGUgJiAweEZGOwor
ICAgIHNjYW5jb2RlID0gc2NhbmNvZGUgPj4gODsKKyAgICBpZiAoc2NhbmNvZGUgPT0gMHhlMCB8
fCBzY2FuY29kZSA9PSAweGUxKQorICAgICAgICBrZXlEYXRhICs9IEtGX0VYVEVOREVEOworICAg
IHJldHVybiBrZXlEYXRhIDw8IDE2OworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBrZXlEb3duQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVj
dFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBh
cmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlmIChhcmd1bWVudENv
dW50IDwgMSkKQEAgLTQ3OSwxOSArNDkwLDI1IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGtleURvd25D
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTCiAg
ICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfU05BUFNIT1Q7CiAgICAgZWxzZSBpZiAoSlNTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJtZW51IikpCiAgICAgICAgIHZpcnR1
YWxLZXlDb2RlID0gVktfQVBQUzsKLSAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKGNoYXJhY3RlciwgImxlZnRDb250cm9sIikpCi0gICAgICAgIHZpcnR1YWxLZXlDb2Rl
ID0gVktfTENPTlRST0w7Ci0gICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhjaGFyYWN0ZXIsICJsZWZ0U2hpZnQiKSkKLSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19M
U0hJRlQ7Ci0gICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0
ZXIsICJsZWZ0QWx0IikpCi0gICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfTE1FTlU7Ci0gICAg
ZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJyaWdodENv
bnRyb2wiKSkKLSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19SQ09OVFJPTDsKLSAgICBlbHNl
IGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0U2hpZnQi
KSkKLSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19SU0hJRlQ7Ci0gICAgZWxzZSBpZiAoSlNT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJyaWdodEFsdCIpKQotICAgICAg
ICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1JNRU5VOwotICAgIGVsc2UgeworICAgIGVsc2UgaWYgKEpT
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdENvbnRyb2wiKSkgewor
ICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0NPTlRST0w7CisgICAgICAgIGtleURhdGEgKz0g
bWFrZUtleURhdGFGb3JTY2FuQ29kZShWS19MQ09OVFJPTCk7CisgICAgfSBlbHNlIGlmIChKU1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgImxlZnRTaGlmdCIpKSB7CisgICAg
ICAgIHZpcnR1YWxLZXlDb2RlID0gVktfU0hJRlQ7CisgICAgICAgIGtleURhdGEgKz0gbWFrZUtl
eURhdGFGb3JTY2FuQ29kZShWS19MU0hJRlQpOworICAgIH0gZWxzZSBpZiAoSlNTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJsZWZ0QWx0IikpIHsKKyAgICAgICAgdmlydHVh
bEtleUNvZGUgPSBWS19NRU5VOworICAgICAgICBrZXlEYXRhICs9IG1ha2VLZXlEYXRhRm9yU2Nh
bkNvZGUoVktfTE1FTlUpOworICAgIH0gZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhjaGFyYWN0ZXIsICJyaWdodENvbnRyb2wiKSkgeworICAgICAgICB2aXJ0dWFsS2V5Q29k
ZSA9IFZLX0NPTlRST0w7CisgICAgICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29k
ZShWS19SQ09OVFJPTCk7CisgICAgfSBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKGNoYXJhY3RlciwgInJpZ2h0U2hpZnQiKSkgeworICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9
IFZLX1NISUZUOworICAgICAgICBrZXlEYXRhICs9IG1ha2VLZXlEYXRhRm9yU2NhbkNvZGUoVktf
UlNISUZUKTsKKyAgICB9IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hh
cmFjdGVyLCAicmlnaHRBbHQiKSkgeworICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX01FTlU7
CisgICAgICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29kZShWS19STUVOVSk7Cisg
ICAgfSBlbHNlIHsKICAgICAgICAgY2hhckNvZGUgPSBKU1N0cmluZ0dldENoYXJhY3RlcnNQdHIo
Y2hhcmFjdGVyKVswXTsKICAgICAgICAgdmlydHVhbEtleUNvZGUgPSBMT0JZVEUoVmtLZXlTY2Fu
KGNoYXJDb2RlKSk7CiAgICAgICAgIGlmIChXVEY6OmlzQVNDSUlVcHBlcihjaGFyQ29kZSkpCg==
</data>
<flag name="review"
          id="178408"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>