<?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>99188</bug_id>
          
          <creation_ts>2012-10-12 10:16:21 -0700</creation_ts>
          <short_desc>Incorrect keycodes for numpad /, -, +, .</short_desc>
          <delta_ts>2013-01-02 15:28:53 -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>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Viet-Trung Luu">viettrungluu</reporter>
          <assigned_to name="Sailesh Agrawal">sail</assigned_to>
          <cc>ap</cc>
    
    <cc>rniwa</cc>
    
    <cc>sail</cc>
    
    <cc>tony</cc>
    
    <cc>viettrungluu</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>741006</commentid>
    <comment_count>0</comment_count>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2012-10-12 10:16:21 -0700</bug_when>
    <thetext>(Okay, I didn&apos;t check them all. But the ones I did check were wrong. Safari gets them right.)

E.g., it should send VK_MULTIPLY (keycode 106) for the numpad *.

To check easily, just do something like

document.body.innerHTML = &apos;&lt;input onkeydown=&quot;console.log(window.event);&quot;&gt;&apos;;

from the dev console (from about:blank, say), and type in the input box.

This affects Pepper plugins (and in particular Pepper Flash).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741008</commentid>
    <comment_count>1</comment_count>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2012-10-12 10:17:41 -0700</bug_when>
    <thetext>I should have pointed out that Safari gets it right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741010</commentid>
    <comment_count>2</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-10-12 10:19:16 -0700</bug_when>
    <thetext>Working on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741013</commentid>
    <comment_count>3</comment_count>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2012-10-12 10:29:29 -0700</bug_when>
    <thetext>Agh, everyone gets * correct.

Recent Safari and Chrome get - (probably / also, dunno about +, .) wrong.

Old Safari (5.1.7, on 10.6) gets - (and probably the others) right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741019</commentid>
    <comment_count>4</comment_count>
    <who name="Viet-Trung Luu">viettrungluu</who>
    <bug_when>2012-10-12 10:41:43 -0700</bug_when>
    <thetext>I confirmed that on Windows IE9 sends the numpad-specific keycodes for /, *, -, +, and . (when numlock is down).

Chrome gets /, -, +, and . wrong. (Old Safari gets these right.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741649</commentid>
    <comment_count>5</comment_count>
      <attachid>168604</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-10-14 18:36:18 -0700</bug_when>
    <thetext>Created attachment 168604
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741651</commentid>
    <comment_count>6</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-10-14 18:40:53 -0700</bug_when>
    <thetext>For reference, here are the windows virtual key codes that changed
  decimal 110 -&gt; 190
  plus 107 -&gt; 187
  subtract 109 -&gt; 189
  divide 111 -&gt; 191

This regressed in http://trac.webkit.org/changeset/57951.
That change fixes key codes when the user has a different keyboard mapping (dvorak, azerty, etc..).

I don&apos;t think my change regress the original because those keyboard mappings don&apos;t modify the num pad keys.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742114</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-15 09:38:35 -0700</bug_when>
    <thetext>Please don&apos;t use [chromium] prefix on any bugs that touch cross-platform code. Such a prefix is a sign for non-chromium filks that they can ignore the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742120</commentid>
    <comment_count>8</comment_count>
      <attachid>168604</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-15 09:47:07 -0700</bug_when>
    <thetext>Comment on attachment 168604
Patch

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

The change makes sense.

Please add WebKitTestRunner and DumpRenderTree tests - there are similar ones already.

&gt; Source/WebKit/chromium/ChangeLog:8
&gt; +                In r57951 we switched to mapping keys by character code. This regressed the numpad keys which no longer match the Windows virtual key codes. This CL fixes this by never mapping numpad keys by character code.

Too many spaces here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742171</commentid>
    <comment_count>9</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-10-15 10:43:41 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 168604 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=168604&amp;action=review
&gt; 
&gt; The change makes sense.
&gt; 
&gt; Please add WebKitTestRunner and DumpRenderTree tests - there are similar ones already.

Hi Alexey, would you mind pointing out the existing tests? Sorry, I&apos;m not very familiar with WebKit.

Thanks

&gt; 
&gt; &gt; Source/WebKit/chromium/ChangeLog:8
&gt; &gt; +                In r57951 we switched to mapping keys by character code. This regressed the numpad keys which no longer match the Windows virtual key codes. This CL fixes this by never mapping numpad keys by character code.
&gt; 
&gt; Too many spaces here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742217</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-15 11:28:39 -0700</bug_when>
    <thetext>See e.g. platform/mac/fast/events/non-roman-key-code.html. Depending on how widely you implement DumpRenderTree/WebKitTestRunner support for the additional key, the test can be either in platform/mac or just in fast/events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743618</commentid>
    <comment_count>11</comment_count>
      <attachid>169038</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-10-16 15:09:54 -0700</bug_when>
    <thetext>Created attachment 169038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743621</commentid>
    <comment_count>12</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-10-16 15:10:41 -0700</bug_when>
    <thetext>Added a layout test for platform/mac. Please take another look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748763</commentid>
    <comment_count>13</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-10-23 10:16:17 -0700</bug_when>
    <thetext>Alexey, Ping!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748808</commentid>
    <comment_count>14</comment_count>
      <attachid>169038</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-10-23 11:09:38 -0700</bug_when>
    <thetext>Comment on attachment 169038
Patch

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

&gt; Source/WebKit/chromium/tests/WebInputEventFactoryTestMac.mm:47
&gt; +struct KeyMappingEntry
&gt; +{

Opening brace goes in the same line as struct.

&gt; Source/WebKit/chromium/tests/WebInputEventFactoryTestMac.mm:120
&gt; +    for (size_t i = 0; i &lt; arraysize(table); ++i)
&gt; +    {

Opening brace goes on the same line as &apos;for&apos;.

&gt; Tools/DumpRenderTree/mac/EventSendingController.mm:61
&gt; +struct KeyMappingEntry
&gt; +{

Opening brace goes on the same line as struct.

&gt; Tools/DumpRenderTree/mac/EventSendingController.mm:739
&gt; +    for (unsigned i = 0; i &lt; WTF_ARRAY_LENGTH(table); i++) {

Nit: ++i</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748845</commentid>
    <comment_count>15</comment_count>
      <attachid>169038</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-23 11:56:16 -0700</bug_when>
    <thetext>Comment on attachment 169038
Patch

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

Looks good to me.

&gt; Source/WebCore/ChangeLog:8
&gt; +        In r57951 we switched to mapping keys by character code. This regressed the numpad keys which no longer match the Windows virtual key codes. This CL fixes this by never mapping numpad keys by character code.

This line is long, I think that it needs to be wrapped.

&gt; LayoutTests/platform/mac/fast/events/numpad-keycode-mapping-expected.txt:9
&gt; +PASS lastKeyboardEvent.keyCode is 110
&gt; +PASS lastKeyboardEvent.keyCode is 106
&gt; +PASS lastKeyboardEvent.keyCode is 107
&gt; +PASS lastKeyboardEvent.keyCode is 12

Ideally, shouldBe test output should be self-descriptive. For example, if you change the tests to something like shouldBe(&quot;getKeyCode(&apos;.&apos;, 0x6E)&quot;,  &quot;110&quot;), the lines would not all look the same.

&gt; LayoutTests/platform/mac/fast/events/numpad-keycode-mapping.html:19
&gt; +    eventSender.keyDown(keyName, 0, 3);

Which one of these constants is keypad key location? Could you please define a named constant for it for clarity?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748867</commentid>
    <comment_count>16</comment_count>
      <attachid>170207</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-10-23 12:49:28 -0700</bug_when>
    <thetext>Created attachment 170207
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748868</commentid>
    <comment_count>17</comment_count>
      <attachid>169038</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-10-23 12:50:36 -0700</bug_when>
    <thetext>Comment on attachment 169038
Patch

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

Addressed review comments. Please take another look.

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        In r57951 we switched to mapping keys by character code. This regressed the numpad keys which no longer match the Windows virtual key codes. This CL fixes this by never mapping numpad keys by character code.
&gt; 
&gt; This line is long, I think that it needs to be wrapped.

Done.

&gt;&gt; Source/WebKit/chromium/tests/WebInputEventFactoryTestMac.mm:47
&gt;&gt; +{
&gt; 
&gt; Opening brace goes in the same line as struct.

Done.

&gt;&gt; Source/WebKit/chromium/tests/WebInputEventFactoryTestMac.mm:120
&gt;&gt; +    {
&gt; 
&gt; Opening brace goes on the same line as &apos;for&apos;.

Done.

&gt;&gt; Tools/DumpRenderTree/mac/EventSendingController.mm:61
&gt;&gt; +{
&gt; 
&gt; Opening brace goes on the same line as struct.

Done.

&gt;&gt; Tools/DumpRenderTree/mac/EventSendingController.mm:739
&gt;&gt; +    for (unsigned i = 0; i &lt; WTF_ARRAY_LENGTH(table); i++) {
&gt; 
&gt; Nit: ++i

Done.

&gt;&gt; LayoutTests/platform/mac/fast/events/numpad-keycode-mapping-expected.txt:9
&gt;&gt; +PASS lastKeyboardEvent.keyCode is 12
&gt; 
&gt; Ideally, shouldBe test output should be self-descriptive. For example, if you change the tests to something like shouldBe(&quot;getKeyCode(&apos;.&apos;, 0x6E)&quot;,  &quot;110&quot;), the lines would not all look the same.

Done.

&gt;&gt; LayoutTests/platform/mac/fast/events/numpad-keycode-mapping.html:19
&gt;&gt; +    eventSender.keyDown(keyName, 0, 3);
&gt; 
&gt; Which one of these constants is keypad key location? Could you please define a named constant for it for clarity?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748911</commentid>
    <comment_count>18</comment_count>
      <attachid>170207</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-23 13:32:16 -0700</bug_when>
    <thetext>Comment on attachment 170207
Patch

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

&gt; Source/WebKit/chromium/ChangeLog:8
&gt; +        In r57951 we switched to mapping keys by character code. This regressed the numpad keys which no longer match the Windows virtual key codes. This CL fixes this by never mapping numpad keys by character code.

This line is equally long.

&gt; LayoutTests/platform/mac/fast/events/numpad-keycode-mapping.html:42
&gt; +    finishJSTest()

Didn&apos;t notice this at first. This is not an async test, and shouldn&apos;t need finishJSTest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748931</commentid>
    <comment_count>19</comment_count>
      <attachid>170224</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-10-23 13:42:34 -0700</bug_when>
    <thetext>Created attachment 170224
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748934</commentid>
    <comment_count>20</comment_count>
      <attachid>170207</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-10-23 13:43:10 -0700</bug_when>
    <thetext>Comment on attachment 170207
Patch

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

&gt;&gt; Source/WebKit/chromium/ChangeLog:8
&gt;&gt; +        In r57951 we switched to mapping keys by character code. This regressed the numpad keys which no longer match the Windows virtual key codes. This CL fixes this by never mapping numpad keys by character code.
&gt; 
&gt; This line is equally long.

Done.
Oops, fixed.

&gt;&gt; LayoutTests/platform/mac/fast/events/numpad-keycode-mapping.html:42
&gt;&gt; +    finishJSTest()
&gt; 
&gt; Didn&apos;t notice this at first. This is not an async test, and shouldn&apos;t need finishJSTest.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750129</commentid>
    <comment_count>21</comment_count>
      <attachid>170224</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-24 15:36:41 -0700</bug_when>
    <thetext>Comment on attachment 170224
Patch for landing

Clearing flags on attachment: 170224

Committed r132411: &lt;http://trac.webkit.org/changeset/132411&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750130</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-24 15:36:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798966</commentid>
    <comment_count>23</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-02 15:20:59 -0800</bug_when>
    <thetext>Did you forget to update WebKitTestRunner (WebKit2)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798968</commentid>
    <comment_count>24</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-02 15:21:22 -0800</bug_when>
    <thetext>We’re seeing failure like this one:
http://build.webkit.org/results/Apple%20MountainLion%20Release%20WK2%20(Tests)/r138643%20(4408)/platform/mac/fast/events/numpad-keycode-mapping-pretty-diff.html

--- /Volumes/Data/slave/mountainlion-release-tests-wk2/build/layout-test-results/platform/mac/fast/events/numpad-keycode-mapping-expected.txt
+++ /Volumes/Data/slave/mountainlion-release-tests-wk2/build/layout-test-results/platform/mac/fast/events/numpad-keycode-mapping-actual.txt
@@ -3,24 +3,24 @@
 On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
 
 
-PASS getKeyCode(&apos;.&apos;) is 0x6E
-PASS getKeyCode(&apos;*&apos;) is 0x6A
-PASS getKeyCode(&apos;+&apos;) is 0x6B
-PASS getKeyCode(&apos;clear&apos;) is 0x0C
-PASS getKeyCode(&apos;/&apos;) is 0x6F
-PASS getKeyCode(&apos;enter&apos;) is 0x0D
-PASS getKeyCode(&apos;-&apos;) is 0x6D
-PASS getKeyCode(&apos;=&apos;) is 0xBB
-PASS getKeyCode(&apos;0&apos;) is 0x60
-PASS getKeyCode(&apos;1&apos;) is 0x61
-PASS getKeyCode(&apos;2&apos;) is 0x62
-PASS getKeyCode(&apos;3&apos;) is 0x63
-PASS getKeyCode(&apos;4&apos;) is 0x64
-PASS getKeyCode(&apos;5&apos;) is 0x65
-PASS getKeyCode(&apos;6&apos;) is 0x66
-PASS getKeyCode(&apos;7&apos;) is 0x67
-PASS getKeyCode(&apos;8&apos;) is 0x68
-PASS getKeyCode(&apos;9&apos;) is 0x69
+FAIL getKeyCode(&apos;.&apos;) should be 110. Was 65.
+FAIL getKeyCode(&apos;*&apos;) should be 106. Was 65.
+FAIL getKeyCode(&apos;+&apos;) should be 107. Was 65.
+FAIL getKeyCode(&apos;clear&apos;) should be 12. Was 65.
+FAIL getKeyCode(&apos;/&apos;) should be 111. Was 65.
+FAIL getKeyCode(&apos;enter&apos;) should be 13. Was 65.
+FAIL getKeyCode(&apos;-&apos;) should be 109. Was 65.
+FAIL getKeyCode(&apos;=&apos;) should be 187. Was 65.
+FAIL getKeyCode(&apos;0&apos;) should be 96. Was 48.
+FAIL getKeyCode(&apos;1&apos;) should be 97. Was 65.
+FAIL getKeyCode(&apos;2&apos;) should be 98. Was 65.
+FAIL getKeyCode(&apos;3&apos;) should be 99. Was 65.
+FAIL getKeyCode(&apos;4&apos;) should be 100. Was 65.
+FAIL getKeyCode(&apos;5&apos;) should be 101. Was 53.
+FAIL getKeyCode(&apos;6&apos;) should be 102. Was 65.
+FAIL getKeyCode(&apos;7&apos;) should be 103. Was 55.
+FAIL getKeyCode(&apos;8&apos;) should be 104. Was 65.
+FAIL getKeyCode(&apos;9&apos;) should be 105. Was 57.
 PASS successfullyParsed is true
 
 TEST COMPLETE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798977</commentid>
    <comment_count>25</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2013-01-02 15:27:16 -0800</bug_when>
    <thetext>&gt; Did you forget to update WebKitTestRunner (WebKit2)?

Hi Ryosuke. Looks like I did forget, sorry about that.

It looks like I just have to port my change from EventSendingController.mm to Tools/WebKitTestRunner/mac/EventSenderProxy.mm

Working on that right now. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798981</commentid>
    <comment_count>26</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-02 15:28:53 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; &gt; Did you forget to update WebKitTestRunner (WebKit2)?
&gt; 
&gt; Hi Ryosuke. Looks like I did forget, sorry about that.
&gt; 
&gt; It looks like I just have to port my change from EventSendingController.mm to Tools/WebKitTestRunner/mac/EventSenderProxy.mm
&gt; 
&gt; Working on that right now. Thanks.

Thanks. Note that I&apos;ve filed https://bugs.webkit.org/show_bug.cgi?id=105958.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168604</attachid>
            <date>2012-10-14 18:36:18 -0700</date>
            <delta_ts>2012-10-16 15:09:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99188-20121014183510.patch</filename>
            <type>text/plain</type>
            <size>6338</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUzNTgzNmI5ZDg3NDNh
ZDBiMDUzMThhY2I3OTcyYThkNDdkNzQ5Ni4uOWJhNmY3ZTM5MDRhYzdiMTJhNTEzNTZjNWExOTc5
M2U1MWY4MDk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEwLTE0ICBTYWls
ZXNoIEFncmF3YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW0gTWFj
XSBJbmNvcnJlY3Qga2V5Y29kZXMgZm9yIG51bXBhZCAvLCAtLCArLCAuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTE4OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHI1Nzk1MSB3ZSBzd2l0Y2hlZCB0
byBtYXBwaW5nIGtleXMgYnkgY2hhcmFjdGVyIGNvZGUuIFRoaXMgcmVncmVzc2VkIHRoZSBudW1w
YWQga2V5cyB3aGljaCBubyBsb25nZXIgbWF0Y2ggdGhlIFdpbmRvd3MgdmlydHVhbCBrZXkgY29k
ZXMuIFRoaXMgQ0wgZml4ZXMgdGhpcyBieSBuZXZlciBtYXBwaW5nIG51bXBhZCBrZXlzIGJ5IGNo
YXJhY3RlciBjb2RlLgorCisgICAgICAgIEFkZGVkIHRlc3QgaW4gV2ViSW5wdXRFdmVudEZhY3Rv
cnlUZXN0TWFjLk51bVBhZE1hcHBpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjp3aW5kb3dzS2V5Q29kZUZv
cktleUV2ZW50KToKKwogMjAxMi0xMC0xNCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFNpbXBsaWZ5IHVzZXIgY29udGVudCBpbiBXZWJLaXQyIGJ5IHVzaW5nIFdlYkNv
cmU6OlVzZXJTdHlsZVNoZWV0IGFuZCBXZWJDb3JlOjpVc2VyU2NyaXB0IGRpcmVjdGx5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDc2MjdhNGU0ODRlYTkwYTdjN2VhMTFjOTA3NzgzMDU3
ZTA5MjZlZWMuLjQ5NThhYmNhYjkwZmE5MzRhM2JiMTQ1NTFlOTYwYmU4MzU2NjRlMzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTAtMTQgIFNhaWxl
c2ggQWdyYXdhbCAgPHNhaWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bSBNYWNd
IEluY29ycmVjdCBrZXljb2RlcyBmb3IgbnVtcGFkIC8sIC0sICssIC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MTg4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgICAgICAgICBJbiByNTc5NTEgd2Ugc3dp
dGNoZWQgdG8gbWFwcGluZyBrZXlzIGJ5IGNoYXJhY3RlciBjb2RlLiBUaGlzIHJlZ3Jlc3NlZCB0
aGUgbnVtcGFkIGtleXMgd2hpY2ggbm8gbG9uZ2VyIG1hdGNoIHRoZSBXaW5kb3dzIHZpcnR1YWwg
a2V5IGNvZGVzLiBUaGlzIENMIGZpeGVzIHRoaXMgYnkgbmV2ZXIgbWFwcGluZyBudW1wYWQga2V5
cyBieSBjaGFyYWN0ZXIgY29kZS4KKworICAgICAgICAqIHNyYy9tYWMvV2ViSW5wdXRFdmVudEZh
Y3RvcnkubW06CisgICAgICAgIChXZWJLaXQ6OndpbmRvd3NLZXlDb2RlRm9yS2V5RXZlbnQpOiBE
aXNhbGxvdyBtYXBwaW5nIG51bXBhZCBrZXlzIGJ5IGNoYXJhY3RlciBjb2RlLgorICAgICAgICAq
IHRlc3RzL1dlYklucHV0RXZlbnRGYWN0b3J5VGVzdE1hYy5tbTogVGVzdCB0byB2ZXJpZnkgdGhh
dCBhbGwgbnVtcGFkIGtleXMgYXJlIGNvcnJlY3RseSBtYXBwZWQuCisgICAgICAgIChURVNUKToK
KwogMjAxMi0xMC0xNCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1h
a2UgVXNlclNjcmlwdCBhbmQgVXNlclN0eWxlU2hlZXQgdmFsdWUgb2JqZWN0cyB0aGF0IGFyZSBj
b3B5YWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IDJlYzUyNGMyMDM1NTYyZDJlYWQ5ZmQ4OGU0YjZiODZl
MmQ2OGQ0M2UuLmYxMTY0MjRiZjQ3YTVkOTZhODY2NGRlYzc4Nzc2NTA4OTFiNzAzZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3Rv
cnlNYWMubW0KQEAgLTMyNyw3ICszMjcsNyBAQCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVu
dChOU0V2ZW50KiBldmVudCkKICAgICAvLyAyLiBLZXlzIGZvciB3aGljaCB0aGVyZSBpcyBubyBr
bm93biBNYWMgdmlydHVhbCBrZXkgY29kZXMsIGxpa2UgUHJpbnRTY3JlZW4uCiAgICAgLy8gMy4g
Q2VydGFpbiBwdW5jdHVhdGlvbiBrZXlzLiBPbiBXaW5kb3dzLCB0aGVzZSBhcmUgYWxzbyByZW1h
cHBlZCBkZXBlbmRpbmcgb24gY3VycmVudCBrZXlib2FyZCBsYXlvdXQsCiAgICAgLy8gICAgYnV0
IHNlZSBjb21tZW50IGluIHdpbmRvd3NLZXlDb2RlRm9yQ2hhckNvZGUoKS4KLSAgICBpZiAoW2V2
ZW50IHR5cGVdID09IE5TS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCkgeworICAg
IGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtldmVudCB0eXBlXSA9PSBOU0tleURvd24g
fHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApKSB7CiAgICAgICAgIC8vIENtZCBzd2l0Y2hlcyBS
b21hbiBsZXR0ZXJzIGZvciBEdm9yYWstUVdFUlRZIGxheW91dCwgc28gdHJ5IG1vZGlmaWVkIGNo
YXJhY3RlcnMgZmlyc3QuCiAgICAgICAgIE5TU3RyaW5nKiBzID0gW2V2ZW50IGNoYXJhY3RlcnNd
OwogICAgICAgICBjb2RlID0gW3MgbGVuZ3RoXSA+IDAgPyB3aW5kb3dzS2V5Q29kZUZvckNoYXJD
b2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6MF0pIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbQppbmRleCA0ODU0YWUy
MThkMzk3MjgxOTU2NDNhZTljNGI2MzJlOGVhOGJiM2FlLi4wZjkzY2U2NjFmN2YyNDZiOTU1YzVl
ZDhiNDY5MTg5ZWJkZTI4YzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5Lm1tCkBAIC0xNjksNyArMTY5LDcgQEAgc3Rh
dGljIGludCB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogICAgIC8v
IDIuIEtleXMgZm9yIHdoaWNoIHRoZXJlIGlzIG5vIGtub3duIE1hYyB2aXJ0dWFsIGtleSBjb2Rl
cywgbGlrZSBQcmludFNjcmVlbi4KICAgICAvLyAzLiBDZXJ0YWluIHB1bmN0dWF0aW9uIGtleXMu
IE9uIFdpbmRvd3MsIHRoZXNlIGFyZSBhbHNvIHJlbWFwcGVkIGRlcGVuZGluZyBvbiBjdXJyZW50
IGtleWJvYXJkIGxheW91dCwKICAgICAvLyAgICBidXQgc2VlIGNvbW1lbnQgaW4gd2luZG93c0tl
eUNvZGVGb3JDaGFyQ29kZSgpLgotICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8
IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKSB7CisgICAgaWYgKCFpc0tleXBhZEV2ZW50KGV2ZW50
KSAmJiAoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlV
cCkpIHsKICAgICAgICAgLy8gQ21kIHN3aXRjaGVzIFJvbWFuIGxldHRlcnMgZm9yIER2b3Jhay1R
V0VSVFkgbGF5b3V0LCBzbyB0cnkgbW9kaWZpZWQgY2hhcmFjdGVycyBmaXJzdC4KICAgICAgICAg
TlNTdHJpbmcqIHMgPSBbZXZlbnQgY2hhcmFjdGVyc107CiAgICAgICAgIGNvZGUgPSBbcyBsZW5n
dGhdID4gMCA/IFdlYkNvcmU6OndpbmRvd3NLZXlDb2RlRm9yQ2hhckNvZGUoW3MgY2hhcmFjdGVy
QXRJbmRleDowXSkgOiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9XZWJJbnB1dEV2ZW50RmFjdG9yeVRlc3RNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1dlYklucHV0RXZlbnRGYWN0b3J5VGVzdE1hYy5tbQppbmRleCA3M2EyOWJjZDEwNjZk
MTU2ODAxZmE2Y2Q5NTJhY2QxZmQzM2ZlNWYyLi41MjZjZDRkZTBmMjRiYTBlMGRmNDA4Y2I3Yjg2
ZTkyNmE4ZWQ5MzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dl
YklucHV0RXZlbnRGYWN0b3J5VGVzdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1dlYklucHV0RXZlbnRGYWN0b3J5VGVzdE1hYy5tbQpAQCAtMzYsMTIgKzM2LDIwIEBA
CiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIK
ICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50RmFjdG9yeS5oIgorI2luY2x1ZGUgIldpbmRvd3NLZXli
b2FyZENvZGVzLmgiCiAKIHVzaW5nIFdlYktpdDo6V2ViSW5wdXRFdmVudEZhY3Rvcnk7CiB1c2lu
ZyBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ7CiAKIG5hbWVzcGFjZSB7CiAKK3N0cnVjdCBLZXlN
YXBwaW5nRW50cnkKK3sKKyAgICBpbnQgbWFjS2V5Q29kZTsKKyAgICB1bmljaGFyIGNoYXJhY3Rl
cjsKKyAgICBpbnQgd2luZG93c0tleUNvZGU7Cit9OworCiBOU0V2ZW50KiBCdWlsZEZha2VLZXlF
dmVudChOU1VJbnRlZ2VyIGtleUNvZGUsIHVuaWNoYXIgY2hhcmFjdGVyLCBOU1VJbnRlZ2VyIG1v
ZGlmaWVyRmxhZ3MpCiB7CiAgICAgTlNTdHJpbmcqIHN0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdX
aXRoQ2hhcmFjdGVyczomY2hhcmFjdGVyIGxlbmd0aDoxXTsKQEAgLTgyLDMgKzkwLDM2IEBAIFRF
U1QoV2ViSW5wdXRFdmVudEZhY3RvcnlUZXN0TWFjLCBBcnJvd0tleU51bVBhZCkKICAgICB3ZWJF
dmVudCA9IFdlYklucHV0RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2ZW50KG1hY0V2ZW50KTsKICAg
ICBFWFBFQ1RfRVEoMCwgd2ViRXZlbnQubW9kaWZpZXJzKTsKIH0KKworLy8gVGVzdCB0aGF0IG51
bXBhZCBrZXlzIGdldCBtYXBwZWQgY29ycmVjdGx5LgorVEVTVChXZWJJbnB1dEV2ZW50RmFjdG9y
eVRlc3RNYWMsIE51bVBhZE1hcHBpbmcpCit7CisgICAgS2V5TWFwcGluZ0VudHJ5IHRhYmxlW10g
PQorICAgIHsKKyAgICAgICAgezY1LCAnLicsIFZLX0RFQ0lNQUx9LAorICAgICAgICB7NjcsICcq
JywgVktfTVVMVElQTFl9LAorICAgICAgICB7NjksICcrJywgVktfQUREfSwKKyAgICAgICAgezcx
LCBOU0NsZWFyTGluZUZ1bmN0aW9uS2V5LCBWS19DTEVBUn0sCisgICAgICAgIHs3NSwgJy8nLCBW
S19ESVZJREV9LAorICAgICAgICB7NzYsIDMsICAgVktfUkVUVVJOfSwKKyAgICAgICAgezc4LCAn
LScsIFZLX1NVQlRSQUNUfSwKKyAgICAgICAgezgxLCAnPScsIFZLX09FTV9QTFVTfSwKKyAgICAg
ICAgezgyLCAnMCcsIFZLX05VTVBBRDB9LAorICAgICAgICB7ODMsICcxJywgVktfTlVNUEFEMX0s
CisgICAgICAgIHs4NCwgJzInLCBWS19OVU1QQUQyfSwKKyAgICAgICAgezg1LCAnMycsIFZLX05V
TVBBRDN9LAorICAgICAgICB7ODYsICc0JywgVktfTlVNUEFENH0sCisgICAgICAgIHs4NywgJzUn
LCBWS19OVU1QQUQ1fSwKKyAgICAgICAgezg4LCAnNicsIFZLX05VTVBBRDZ9LAorICAgICAgICB7
ODksICc3JywgVktfTlVNUEFEN30sCisgICAgICAgIHs5MSwgJzgnLCBWS19OVU1QQUQ4fSwKKyAg
ICAgICAgezkyLCAnOScsIFZLX05VTVBBRDl9LAorICAgIH07CisKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGFycmF5c2l6ZSh0YWJsZSk7ICsraSkKKyAgICB7CisgICAgICAgIE5TRXZlbnQq
IG1hY0V2ZW50ID0gQnVpbGRGYWtlS2V5RXZlbnQodGFibGVbaV0ubWFjS2V5Q29kZSwgdGFibGVb
aV0uY2hhcmFjdGVyLCAwKTsKKyAgICAgICAgV2ViS2V5Ym9hcmRFdmVudCB3ZWJFdmVudCA9IFdl
YklucHV0RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2ZW50KG1hY0V2ZW50KTsKKyAgICAgICAgRVhQ
RUNUX0VRKHRhYmxlW2ldLndpbmRvd3NLZXlDb2RlLCB3ZWJFdmVudC53aW5kb3dzS2V5Q29kZSk7
CisgICAgfQorfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169038</attachid>
            <date>2012-10-16 15:09:54 -0700</date>
            <delta_ts>2012-10-23 12:50:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99188-20121016150843.patch</filename>
            <type>text/plain</type>
            <size>13629</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUzNTgzNmI5ZDg3NDNh
ZDBiMDUzMThhY2I3OTcyYThkNDdkNzQ5Ni4uYjE1YWQ3N2M5MGM4YTY0MjhhNDJkZDYwYjJmYWM5
MmMxY2NlMjM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEwLTE2ICBTYWls
ZXNoIEFncmF3YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmNvcnJlY3Qga2V5
Y29kZXMgZm9yIG51bXBhZCAvLCAtLCArLCAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEluIHI1Nzk1MSB3ZSBzd2l0Y2hlZCB0byBtYXBwaW5nIGtleXMg
YnkgY2hhcmFjdGVyIGNvZGUuIFRoaXMgcmVncmVzc2VkIHRoZSBudW1wYWQga2V5cyB3aGljaCBu
byBsb25nZXIgbWF0Y2ggdGhlIFdpbmRvd3MgdmlydHVhbCBrZXkgY29kZXMuIFRoaXMgQ0wgZml4
ZXMgdGhpcyBieSBuZXZlciBtYXBwaW5nIG51bXBhZCBrZXlzIGJ5IGNoYXJhY3RlciBjb2RlLgor
CisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9mYXN0L2V2ZW50cy9udW1wYWQta2V5Y29kZS1t
YXBwaW5nLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9y
eU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NLZXlDb2RlRm9yS2V5RXZlbnQpOgor
CiAyMDEyLTEwLTE0ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU2lt
cGxpZnkgdXNlciBjb250ZW50IGluIFdlYktpdDIgYnkgdXNpbmcgV2ViQ29yZTo6VXNlclN0eWxl
U2hlZXQgYW5kIFdlYkNvcmU6OlVzZXJTY3JpcHQgZGlyZWN0bHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggNzYyN2E0ZTQ4NGVhOTBhN2M3ZWExMWM5MDc3ODMwNTdlMDkyNmVlYy4uMTRh
ZDcxOWU5MmQyODE3ZTVmOTRlZDY2MmRhNDcyYmRkOTA4ZTRkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMC0xNiAgU2FpbGVzaCBBZ3Jhd2FsICA8
c2FpbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5jb3JyZWN0IGtleWNvZGVzIGZvciBudW1w
YWQgLywgLSwgKywgLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTkxODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbiByNTc5NTEgd2Ugc3dpdGNoZWQgdG8gbWFwcGluZyBrZXlzIGJ5IGNoYXJhY3RlciBj
b2RlLiBUaGlzIHJlZ3Jlc3NlZCB0aGUgbnVtcGFkIGtleXMgd2hpY2ggbm8gbG9uZ2VyIG1hdGNo
IHRoZSBXaW5kb3dzIHZpcnR1YWwga2V5IGNvZGVzLiBUaGlzIENMIGZpeGVzIHRoaXMgYnkgbmV2
ZXIgbWFwcGluZyBudW1wYWQga2V5cyBieSBjaGFyYWN0ZXIgY29kZS4KKworICAgICAgICAqIHNy
Yy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW06IERpc2FsbG93IG1hcHBpbmcgbnVtcGFkIGtl
eXMgYnkgY2hhcmFjdGVyIGNvZGUuCisgICAgICAgIChXZWJLaXQ6OndpbmRvd3NLZXlDb2RlRm9y
S2V5RXZlbnQpOgorICAgICAgICAqIHRlc3RzL1dlYklucHV0RXZlbnRGYWN0b3J5VGVzdE1hYy5t
bTogVGVzdCB0byB2ZXJpZnkgdGhhdCBhbGwgbnVtcGFkIGtleXMgYXJlIGNvcnJlY3RseSBtYXBw
ZWQuCisgICAgICAgIChURVNUKToKKwogMjAxMi0xMC0xNCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIE1ha2UgVXNlclNjcmlwdCBhbmQgVXNlclN0eWxlU2hlZXQgdmFs
dWUgb2JqZWN0cyB0aGF0IGFyZSBjb3B5YWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IDJlYzUyNGMyMDM1
NTYyZDJlYWQ5ZmQ4OGU0YjZiODZlMmQ2OGQ0M2UuLmYxMTY0MjRiZjQ3YTVkOTZhODY2NGRlYzc4
Nzc2NTA4OTFiNzAzZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
bGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTMyNyw3ICszMjcsNyBAQCBpbnQgd2lu
ZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkKICAgICAvLyAyLiBLZXlzIGZv
ciB3aGljaCB0aGVyZSBpcyBubyBrbm93biBNYWMgdmlydHVhbCBrZXkgY29kZXMsIGxpa2UgUHJp
bnRTY3JlZW4uCiAgICAgLy8gMy4gQ2VydGFpbiBwdW5jdHVhdGlvbiBrZXlzLiBPbiBXaW5kb3dz
LCB0aGVzZSBhcmUgYWxzbyByZW1hcHBlZCBkZXBlbmRpbmcgb24gY3VycmVudCBrZXlib2FyZCBs
YXlvdXQsCiAgICAgLy8gICAgYnV0IHNlZSBjb21tZW50IGluIHdpbmRvd3NLZXlDb2RlRm9yQ2hh
ckNvZGUoKS4KLSAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8fCBbZXZlbnQgdHlw
ZV0gPT0gTlNLZXlVcCkgeworICAgIGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtldmVu
dCB0eXBlXSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApKSB7CiAgICAg
ICAgIC8vIENtZCBzd2l0Y2hlcyBSb21hbiBsZXR0ZXJzIGZvciBEdm9yYWstUVdFUlRZIGxheW91
dCwgc28gdHJ5IG1vZGlmaWVkIGNoYXJhY3RlcnMgZmlyc3QuCiAgICAgICAgIE5TU3RyaW5nKiBz
ID0gW2V2ZW50IGNoYXJhY3RlcnNdOwogICAgICAgICBjb2RlID0gW3MgbGVuZ3RoXSA+IDAgPyB3
aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6MF0pIDogMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFj
dG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFj
dG9yeS5tbQppbmRleCA0ODU0YWUyMThkMzk3MjgxOTU2NDNhZTljNGI2MzJlOGVhOGJiM2FlLi4w
ZjkzY2U2NjFmN2YyNDZiOTU1YzVlZDhiNDY5MTg5ZWJkZTI4YzhhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW0KKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5Lm1tCkBA
IC0xNjksNyArMTY5LDcgQEAgc3RhdGljIGludCB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KE5T
RXZlbnQqIGV2ZW50KQogICAgIC8vIDIuIEtleXMgZm9yIHdoaWNoIHRoZXJlIGlzIG5vIGtub3du
IE1hYyB2aXJ0dWFsIGtleSBjb2RlcywgbGlrZSBQcmludFNjcmVlbi4KICAgICAvLyAzLiBDZXJ0
YWluIHB1bmN0dWF0aW9uIGtleXMuIE9uIFdpbmRvd3MsIHRoZXNlIGFyZSBhbHNvIHJlbWFwcGVk
IGRlcGVuZGluZyBvbiBjdXJyZW50IGtleWJvYXJkIGxheW91dCwKICAgICAvLyAgICBidXQgc2Vl
IGNvbW1lbnQgaW4gd2luZG93c0tleUNvZGVGb3JDaGFyQ29kZSgpLgotICAgIGlmIChbZXZlbnQg
dHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKSB7CisgICAgaWYg
KCFpc0tleXBhZEV2ZW50KGV2ZW50KSAmJiAoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8fCBb
ZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCkpIHsKICAgICAgICAgLy8gQ21kIHN3aXRjaGVzIFJvbWFu
IGxldHRlcnMgZm9yIER2b3Jhay1RV0VSVFkgbGF5b3V0LCBzbyB0cnkgbW9kaWZpZWQgY2hhcmFj
dGVycyBmaXJzdC4KICAgICAgICAgTlNTdHJpbmcqIHMgPSBbZXZlbnQgY2hhcmFjdGVyc107CiAg
ICAgICAgIGNvZGUgPSBbcyBsZW5ndGhdID4gMCA/IFdlYkNvcmU6OndpbmRvd3NLZXlDb2RlRm9y
Q2hhckNvZGUoW3MgY2hhcmFjdGVyQXRJbmRleDowXSkgOiAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJJbnB1dEV2ZW50RmFjdG9yeVRlc3RNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYklucHV0RXZlbnRGYWN0b3J5VGVzdE1hYy5t
bQppbmRleCA3M2EyOWJjZDEwNjZkMTU2ODAxZmE2Y2Q5NTJhY2QxZmQzM2ZlNWYyLi41MjZjZDRk
ZTBmMjRiYTBlMGRmNDA4Y2I3Yjg2ZTkyNmE4ZWQ5MzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL1dlYklucHV0RXZlbnRGYWN0b3J5VGVzdE1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYklucHV0RXZlbnRGYWN0b3J5VGVzdE1hYy5t
bQpAQCAtMzYsMTIgKzM2LDIwIEBACiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1
ZGUgIldlYklucHV0RXZlbnQuaCIKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50RmFjdG9yeS5oIgor
I2luY2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCiAKIHVzaW5nIFdlYktpdDo6V2ViSW5w
dXRFdmVudEZhY3Rvcnk7CiB1c2luZyBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ7CiAKIG5hbWVz
cGFjZSB7CiAKK3N0cnVjdCBLZXlNYXBwaW5nRW50cnkKK3sKKyAgICBpbnQgbWFjS2V5Q29kZTsK
KyAgICB1bmljaGFyIGNoYXJhY3RlcjsKKyAgICBpbnQgd2luZG93c0tleUNvZGU7Cit9OworCiBO
U0V2ZW50KiBCdWlsZEZha2VLZXlFdmVudChOU1VJbnRlZ2VyIGtleUNvZGUsIHVuaWNoYXIgY2hh
cmFjdGVyLCBOU1VJbnRlZ2VyIG1vZGlmaWVyRmxhZ3MpCiB7CiAgICAgTlNTdHJpbmcqIHN0cmlu
ZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVyczomY2hhcmFjdGVyIGxlbmd0aDoxXTsK
QEAgLTgyLDMgKzkwLDM2IEBAIFRFU1QoV2ViSW5wdXRFdmVudEZhY3RvcnlUZXN0TWFjLCBBcnJv
d0tleU51bVBhZCkKICAgICB3ZWJFdmVudCA9IFdlYklucHV0RXZlbnRGYWN0b3J5OjprZXlib2Fy
ZEV2ZW50KG1hY0V2ZW50KTsKICAgICBFWFBFQ1RfRVEoMCwgd2ViRXZlbnQubW9kaWZpZXJzKTsK
IH0KKworLy8gVGVzdCB0aGF0IG51bXBhZCBrZXlzIGdldCBtYXBwZWQgY29ycmVjdGx5LgorVEVT
VChXZWJJbnB1dEV2ZW50RmFjdG9yeVRlc3RNYWMsIE51bVBhZE1hcHBpbmcpCit7CisgICAgS2V5
TWFwcGluZ0VudHJ5IHRhYmxlW10gPQorICAgIHsKKyAgICAgICAgezY1LCAnLicsIFZLX0RFQ0lN
QUx9LAorICAgICAgICB7NjcsICcqJywgVktfTVVMVElQTFl9LAorICAgICAgICB7NjksICcrJywg
VktfQUREfSwKKyAgICAgICAgezcxLCBOU0NsZWFyTGluZUZ1bmN0aW9uS2V5LCBWS19DTEVBUn0s
CisgICAgICAgIHs3NSwgJy8nLCBWS19ESVZJREV9LAorICAgICAgICB7NzYsIDMsICAgVktfUkVU
VVJOfSwKKyAgICAgICAgezc4LCAnLScsIFZLX1NVQlRSQUNUfSwKKyAgICAgICAgezgxLCAnPScs
IFZLX09FTV9QTFVTfSwKKyAgICAgICAgezgyLCAnMCcsIFZLX05VTVBBRDB9LAorICAgICAgICB7
ODMsICcxJywgVktfTlVNUEFEMX0sCisgICAgICAgIHs4NCwgJzInLCBWS19OVU1QQUQyfSwKKyAg
ICAgICAgezg1LCAnMycsIFZLX05VTVBBRDN9LAorICAgICAgICB7ODYsICc0JywgVktfTlVNUEFE
NH0sCisgICAgICAgIHs4NywgJzUnLCBWS19OVU1QQUQ1fSwKKyAgICAgICAgezg4LCAnNicsIFZL
X05VTVBBRDZ9LAorICAgICAgICB7ODksICc3JywgVktfTlVNUEFEN30sCisgICAgICAgIHs5MSwg
JzgnLCBWS19OVU1QQUQ4fSwKKyAgICAgICAgezkyLCAnOScsIFZLX05VTVBBRDl9LAorICAgIH07
CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFycmF5c2l6ZSh0YWJsZSk7ICsraSkKKyAg
ICB7CisgICAgICAgIE5TRXZlbnQqIG1hY0V2ZW50ID0gQnVpbGRGYWtlS2V5RXZlbnQodGFibGVb
aV0ubWFjS2V5Q29kZSwgdGFibGVbaV0uY2hhcmFjdGVyLCAwKTsKKyAgICAgICAgV2ViS2V5Ym9h
cmRFdmVudCB3ZWJFdmVudCA9IFdlYklucHV0RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2ZW50KG1h
Y0V2ZW50KTsKKyAgICAgICAgRVhQRUNUX0VRKHRhYmxlW2ldLndpbmRvd3NLZXlDb2RlLCB3ZWJF
dmVudC53aW5kb3dzS2V5Q29kZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM1NGZkODFkNGZiOGJjZTAwYzM2NGE5ZGM4Mzkw
NDg0MTlhYzViYjYuLmM4MWE4MjE4MDhiYjRiNmM1OTJlY2Q0NDJjZjg4OTc0ZTljYjM0YjggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMi0xMC0xNiAgU2FpbGVzaCBBZ3Jhd2FsICA8c2FpbEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgSW5jb3JyZWN0IGtleWNvZGVzIGZvciBudW1wYWQgLywgLSwgKywgLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkxODgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQga2V5IG1hcHBp
bmdzIGZvciBhbGwgbnVtcGFkIGtleXMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMv
RXZlbnRTZW5kaW5nQ29udHJvbGxlci5tbToKKyAgICAgICAgKEtleU1hcHBpbmdFbnRyeSk6Cisg
ICAgICAgICgtW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIga2V5RG93bjp3aXRoTW9kaWZpZXJzOndp
dGhMb2NhdGlvbjpdKTogQWRkZWQgYWxsIG51bXBhZCBrZXlzLgorCiAyMDEyLTEwLTE0ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBub3RpZmljYXRpb24gb3Jp
Z2luIHBlcm1pc3Npb24gcmVxdWVzdCB3aGVuIG5vIGpzIGNhbGxiYWNrIGlzIHByb3ZpZGVkCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJvbGxl
ci5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1t
CmluZGV4IDQ4MmJmOTNkYjBlNzAzOGI3OTBiYTAyNjMzZWYzOWUxY2Q2NTk4ZDAuLjY0NzMzMmNh
NjljYzk3MzU1Zjc5YjlhOWY5NjE5YmFiN2YyNDU5YzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tCkBAIC01Nyw2ICs1NywxNCBA
QCBlbnVtIE1vdXNlQnV0dG9uIHsKICAgICBOb01vdXNlQnV0dG9uID0gLTEKIH07CiAKK3N0cnVj
dCBLZXlNYXBwaW5nRW50cnkKK3sKKyAgICBpbnQgbWFjS2V5Q29kZTsKKyAgICBpbnQgbWFjTnVt
cGFkS2V5Q29kZTsKKyAgICB1bmljaGFyIGNoYXJhY3RlcjsKKyAgICBOU1N0cmluZyogY2hhcmFj
dGVyTmFtZTsKK307CisKIE5TUG9pbnQgbGFzdE1vdXNlUG9zaXRpb247CiBOU1BvaW50IGxhc3RD
bGlja1Bvc2l0aW9uOwogaW50IGxhc3RDbGlja0J1dHRvbiA9IE5vTW91c2VCdXR0b247CkBAIC02
OTksMTQgKzcwNyw2IEBAIHN0YXRpYyBpbnQgYnVpbGRNb2RpZmllckZsYWdzKGNvbnN0IFdlYlNj
cmlwdE9iamVjdCogbW9kaWZpZXJzKQogICAgICAgICBrZXlDb2RlID0gMHg0QzsKICAgICBlbHNl
IGlmIChbY2hhcmFjdGVyIGlzRXF1YWxUb1N0cmluZzpAIlx4OCJdKQogICAgICAgICBrZXlDb2Rl
ID0gMHgzMzsKLSAgICBlbHNlIGlmIChbY2hhcmFjdGVyIGlzRXF1YWxUb1N0cmluZzpAIjciXSkK
LSAgICAgICAga2V5Q29kZSA9IDB4MUE7Ci0gICAgZWxzZSBpZiAoW2NoYXJhY3RlciBpc0VxdWFs
VG9TdHJpbmc6QCI1Il0pCi0gICAgICAgIGtleUNvZGUgPSAweDE3OwotICAgIGVsc2UgaWYgKFtj
aGFyYWN0ZXIgaXNFcXVhbFRvU3RyaW5nOkAiOSJdKQotICAgICAgICBrZXlDb2RlID0gMHgxOTsK
LSAgICBlbHNlIGlmIChbY2hhcmFjdGVyIGlzRXF1YWxUb1N0cmluZzpAIjAiXSkKLSAgICAgICAg
a2V5Q29kZSA9IDB4MUQ7CiAgICAgZWxzZSBpZiAoW2NoYXJhY3RlciBpc0VxdWFsVG9TdHJpbmc6
QCJhIl0pCiAgICAgICAgIGtleUNvZGUgPSAweDAwOwogICAgIGVsc2UgaWYgKFtjaGFyYWN0ZXIg
aXNFcXVhbFRvU3RyaW5nOkAiYiJdKQpAQCAtNzE2LDYgKzcxNiwzOCBAQCBzdGF0aWMgaW50IGJ1
aWxkTW9kaWZpZXJGbGFncyhjb25zdCBXZWJTY3JpcHRPYmplY3QqIG1vZGlmaWVycykKICAgICBl
bHNlIGlmIChbY2hhcmFjdGVyIGlzRXF1YWxUb1N0cmluZzpAImUiXSkKICAgICAgICAga2V5Q29k
ZSA9IDB4MEU7CiAKKyAgICBLZXlNYXBwaW5nRW50cnkgdGFibGVbXSA9IHsKKyAgICAgICAgezB4
MkYsIDB4NDEsICcuJywgbmlsfSwKKyAgICAgICAgezAsICAgIDB4NDMsICcqJywgbmlsfSwKKyAg
ICAgICAgezAsICAgIDB4NDUsICcrJywgbmlsfSwKKyAgICAgICAgezAsICAgIDB4NDcsIE5TQ2xl
YXJMaW5lRnVuY3Rpb25LZXksIEAiY2xlYXIifSwKKyAgICAgICAgezB4MkMsIDB4NEIsICcvJywg
bmlsfSwKKyAgICAgICAgezAsICAgIDB4NEMsIDMsIEAiZW50ZXIiIH0sCisgICAgICAgIHsweDFC
LCAweDRFLCAnLScsIG5pbH0sCisgICAgICAgIHsweDE4LCAweDUxLCAnPScsIG5pbH0sCisgICAg
ICAgIHsweDFELCAweDUyLCAnMCcsIG5pbH0sCisgICAgICAgIHsweDEyLCAweDUzLCAnMScsIG5p
bH0sCisgICAgICAgIHsweDEzLCAweDU0LCAnMicsIG5pbH0sCisgICAgICAgIHsweDE0LCAweDU1
LCAnMycsIG5pbH0sCisgICAgICAgIHsweDE1LCAweDU2LCAnNCcsIG5pbH0sCisgICAgICAgIHsw
eDE3LCAweDU3LCAnNScsIG5pbH0sCisgICAgICAgIHsweDE2LCAweDU4LCAnNicsIG5pbH0sCisg
ICAgICAgIHsweDFBLCAweDU5LCAnNycsIG5pbH0sCisgICAgICAgIHsweDFDLCAweDVCLCAnOCcs
IG5pbH0sCisgICAgICAgIHsweDE5LCAweDVDLCAnOScsIG5pbH0sCisgICAgfTsKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSCh0YWJsZSk7IGkrKykgeworICAg
ICAgICBOU1N0cmluZyogY3VycmVudENoYXJhY3RlclN0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdX
aXRoQ2hhcmFjdGVyczomdGFibGVbaV0uY2hhcmFjdGVyIGxlbmd0aDoxXTsKKyAgICAgICAgaWYg
KFtjaGFyYWN0ZXIgaXNFcXVhbFRvU3RyaW5nOmN1cnJlbnRDaGFyYWN0ZXJTdHJpbmddIHx8IFtj
aGFyYWN0ZXIgaXNFcXVhbFRvU3RyaW5nOnRhYmxlW2ldLmNoYXJhY3Rlck5hbWVdKSB7CisgICAg
ICAgICAgICBpZiAoa2V5TG9jYXRpb24gPT0gRE9NX0tFWV9MT0NBVElPTl9OVU1QQUQpCisgICAg
ICAgICAgICAgICAga2V5Q29kZSA9IHRhYmxlW2ldLm1hY051bXBhZEtleUNvZGU7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAga2V5Q29kZSA9IHRhYmxlW2ldLm1hY0tleUNvZGU7
CisgICAgICAgICAgICBldmVudENoYXJhY3RlciA9IGN1cnJlbnRDaGFyYWN0ZXJTdHJpbmc7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKwogICAgIE5TU3RyaW5nICpjaGFy
YWN0ZXJzSWdub3JpbmdNb2RpZmllcnMgPSBldmVudENoYXJhY3RlcjsKIAogICAgIGludCBtb2Rp
ZmllckZsYWdzID0gMDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMzEwNmM1YmI5N2IxNjZiYTY1OWI4MThhMmU2NDUwMjg0
YzAwOGUwLi5iODk5MmQ4NGQxYzJmNTFjYTg2YWNiZGQ0MzU0ZTUxZDVlOGJmNjY1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTItMTAtMTYgIFNhaWxlc2ggQWdyYXdhbCAgPHNhaWxAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEluY29ycmVjdCBrZXljb2RlcyBmb3IgbnVtcGFkIC8sIC0sICss
IC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MTg4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
dGVzdCB0byBtYXAgbnVtcGFkIGtleXMgdG8gd2luZG93cyB2aXJ0dWFsIGtleWNvZGVzLiBUaGlz
IHRlc3QgaXMgZm9yIHRoZSBNYWMgcG9ydCBvbmx5LiBEdW1wUmVuZGVyVHJlZSBpbiB0aGUgY2hy
b21pdW0tbWFjIHBvcnQgZG9lc24ndCB1c2UgTWFjIGtleWNvZGVzIHNvIHRoaXMgY2FuJ3QgYmUg
dGVzdGVkIG9uIHRoYXQgcGxhdGZvcm0uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9l
dmVudHMvbnVtcGFkLWtleWNvZGUtbWFwcGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9mYXN0L2V2ZW50cy9udW1wYWQta2V5Y29kZS1tYXBwaW5nLmh0bWw6
IEFkZGVkLgorCiAyMDEyLTEwLTE0ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBbGxvdyBub3RpZmljYXRpb24gb3JpZ2luIHBlcm1pc3Npb24gcmVxdWVzdCB3aGVuIG5v
IGpzIGNhbGxiYWNrIGlzIHByb3ZpZGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9ldmVudHMvbnVtcGFkLWtleWNvZGUtbWFwcGluZy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvbnVtcGFkLWtleWNvZGUtbWFwcGlu
Zy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWZlZTk1NjEyMmY2ZGYzN2UxNzNhZjRmMTFlZWI1
M2Q4MjlhMTBhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L2V2ZW50cy9udW1wYWQta2V5Y29kZS1tYXBwaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDI3IEBACitUZXN0IHRoYXQgTWFjIG51bXBhZCBrZXlzIGFyZSBtYXBwZWQgdG8gdGhlIGNvcnJl
Y3QgV2luZG93cyB2aXJ0dWFsIGtleWNvZGVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlDb2RlIGlzIDExMAorUEFTUyBsYXN0S2V5
Ym9hcmRFdmVudC5rZXlDb2RlIGlzIDEwNgorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlDb2Rl
IGlzIDEwNworUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlDb2RlIGlzIDEyCitQQVNTIGxhc3RL
ZXlib2FyZEV2ZW50LmtleUNvZGUgaXMgMTExCitQQVNTIGxhc3RLZXlib2FyZEV2ZW50LmtleUNv
ZGUgaXMgMTMKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQua2V5Q29kZSBpcyAxMDkKK1BBU1MgbGFz
dEtleWJvYXJkRXZlbnQua2V5Q29kZSBpcyAxODcKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQua2V5
Q29kZSBpcyA5NgorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlDb2RlIGlzIDk3CitQQVNTIGxh
c3RLZXlib2FyZEV2ZW50LmtleUNvZGUgaXMgOTgKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQua2V5
Q29kZSBpcyA5OQorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlDb2RlIGlzIDEwMAorUEFTUyBs
YXN0S2V5Ym9hcmRFdmVudC5rZXlDb2RlIGlzIDEwMQorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5r
ZXlDb2RlIGlzIDEwMgorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlDb2RlIGlzIDEwMworUEFT
UyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlDb2RlIGlzIDEwNAorUEFTUyBsYXN0S2V5Ym9hcmRFdmVu
dC5rZXlDb2RlIGlzIDEwNQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2V2
ZW50cy9udW1wYWQta2V5Y29kZS1tYXBwaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9ldmVudHMvbnVtcGFkLWtleWNvZGUtbWFwcGluZy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZk
OTc3NTUxMGY2NDBhMjZjNmFkMjZjNTA3NmU3N2RiNDBlZWUyZmUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvbnVtcGFkLWtleWNvZGUtbWFw
cGluZy5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgTWFjIG51bXBhZCBrZXlzIGFyZSBt
YXBwZWQgdG8gdGhlIGNvcnJlY3QgV2luZG93cyB2aXJ0dWFsIGtleWNvZGVzLiIpOworCit2YXIg
bGFzdEtleWJvYXJkRXZlbnQ7Citkb2N1bWVudC5vbmtleWRvd24gPSBmdW5jdGlvbihldmVudCkg
eworICAgIGxhc3RLZXlib2FyZEV2ZW50ID0gZXZlbnQ7Cit9CisKK2Z1bmN0aW9uIHRlc3RLZXlF
dmVudChrZXlOYW1lLCBleHBlY3RlZEtleUNvZGUpIHsKKyAgICAvLyBsb2NhdGlvbj0zIGluZGlj
YXRlcyB0aGF0IHRoZSBldmVudCBpcyBsb2NhdGVkIG9uIHRoZSBudW1wYWQuCisgICAgZXZlbnRT
ZW5kZXIua2V5RG93bihrZXlOYW1lLCAwLCAzKTsKKyAgICBzaG91bGRFdmFsdWF0ZVRvKCJsYXN0
S2V5Ym9hcmRFdmVudC5rZXlDb2RlIiwgZXhwZWN0ZWRLZXlDb2RlKTsKK30KKworaWYgKHdpbmRv
dy5ldmVudFNlbmRlcikgeworICAgIHRlc3RLZXlFdmVudCgnLicsIDB4NkUpOworICAgIHRlc3RL
ZXlFdmVudCgnKicsIDB4NkEpOworICAgIHRlc3RLZXlFdmVudCgnKycsIDB4NkIpOworICAgIHRl
c3RLZXlFdmVudCgnY2xlYXInLCAweDBDKTsKKyAgICB0ZXN0S2V5RXZlbnQoJy8nLCAweDZGKTsK
KyAgICB0ZXN0S2V5RXZlbnQoJ2VudGVyJywgMHgwRCk7CisgICAgdGVzdEtleUV2ZW50KCctJywg
MHg2RCk7CisgICAgdGVzdEtleUV2ZW50KCc9JywgMHhCQik7CisgICAgdGVzdEtleUV2ZW50KCcw
JywgMHg2MCk7CisgICAgdGVzdEtleUV2ZW50KCcxJywgMHg2MSk7CisgICAgdGVzdEtleUV2ZW50
KCcyJywgMHg2Mik7CisgICAgdGVzdEtleUV2ZW50KCczJywgMHg2Myk7CisgICAgdGVzdEtleUV2
ZW50KCc0JywgMHg2NCk7CisgICAgdGVzdEtleUV2ZW50KCc1JywgMHg2NSk7CisgICAgdGVzdEtl
eUV2ZW50KCc2JywgMHg2Nik7CisgICAgdGVzdEtleUV2ZW50KCc3JywgMHg2Nyk7CisgICAgdGVz
dEtleUV2ZW50KCc4JywgMHg2OCk7CisgICAgdGVzdEtleUV2ZW50KCc5JywgMHg2OSk7CisgICAg
ZmluaXNoSlNUZXN0KCkKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170207</attachid>
            <date>2012-10-23 12:49:28 -0700</date>
            <delta_ts>2012-10-23 13:43:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99188-20121023124805.patch</filename>
            <type>text/plain</type>
            <size>13631</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUzNTgzNmI5ZDg3NDNh
ZDBiMDUzMThhY2I3OTcyYThkNDdkNzQ5Ni4uMTI2ZjRiNjJkYmE2NDAwOWQ2ZGUzM2ZmN2U0MTUx
MmU5ODM5ZGYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTEwLTE2ICBTYWls
ZXNoIEFncmF3YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmNvcnJlY3Qga2V5
Y29kZXMgZm9yIG51bXBhZCAvLCAtLCArLCAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEluIHI1Nzk1MSB3ZSBzd2l0Y2hlZCB0byBtYXBwaW5nIGtleXMg
YnkgY2hhcmFjdGVyIGNvZGUuCisgICAgICAgIFRoaXMgcmVncmVzc2VkIHRoZSBudW1wYWQga2V5
cyB3aGljaCBubyBsb25nZXIgbWF0Y2ggdGhlIFdpbmRvd3MgdmlydHVhbCBrZXkgY29kZXMuCisg
ICAgICAgIFRoaXMgQ0wgZml4ZXMgdGhpcyBieSBuZXZlciBtYXBwaW5nIG51bXBhZCBrZXlzIGJ5
IGNoYXJhY3RlciBjb2RlLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9mYXN0L2V2ZW50
cy9udW1wYWQta2V5Y29kZS1tYXBwaW5nLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL21hYy9Q
bGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NLZXlD
b2RlRm9yS2V5RXZlbnQpOgorCiAyMDEyLTEwLTE0ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgU2ltcGxpZnkgdXNlciBjb250ZW50IGluIFdlYktpdDIgYnkgdXNpbmcg
V2ViQ29yZTo6VXNlclN0eWxlU2hlZXQgYW5kIFdlYkNvcmU6OlVzZXJTY3JpcHQgZGlyZWN0bHkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNzYyN2E0ZTQ4NGVhOTBhN2M3ZWExMWM5MDc3
ODMwNTdlMDkyNmVlYy4uMTRhZDcxOWU5MmQyODE3ZTVmOTRlZDY2MmRhNDcyYmRkOTA4ZTRkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMC0xNiAg
U2FpbGVzaCBBZ3Jhd2FsICA8c2FpbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5jb3JyZWN0
IGtleWNvZGVzIGZvciBudW1wYWQgLywgLSwgKywgLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkxODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbiByNTc5NTEgd2Ugc3dpdGNoZWQgdG8gbWFwcGluZyBr
ZXlzIGJ5IGNoYXJhY3RlciBjb2RlLiBUaGlzIHJlZ3Jlc3NlZCB0aGUgbnVtcGFkIGtleXMgd2hp
Y2ggbm8gbG9uZ2VyIG1hdGNoIHRoZSBXaW5kb3dzIHZpcnR1YWwga2V5IGNvZGVzLiBUaGlzIENM
IGZpeGVzIHRoaXMgYnkgbmV2ZXIgbWFwcGluZyBudW1wYWQga2V5cyBieSBjaGFyYWN0ZXIgY29k
ZS4KKworICAgICAgICAqIHNyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW06IERpc2FsbG93
IG1hcHBpbmcgbnVtcGFkIGtleXMgYnkgY2hhcmFjdGVyIGNvZGUuCisgICAgICAgIChXZWJLaXQ6
OndpbmRvd3NLZXlDb2RlRm9yS2V5RXZlbnQpOgorICAgICAgICAqIHRlc3RzL1dlYklucHV0RXZl
bnRGYWN0b3J5VGVzdE1hYy5tbTogVGVzdCB0byB2ZXJpZnkgdGhhdCBhbGwgbnVtcGFkIGtleXMg
YXJlIGNvcnJlY3RseSBtYXBwZWQuCisgICAgICAgIChURVNUKToKKwogMjAxMi0xMC0xNCAgU2Ft
IFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgVXNlclNjcmlwdCBhbmQg
VXNlclN0eWxlU2hlZXQgdmFsdWUgb2JqZWN0cyB0aGF0IGFyZSBjb3B5YWJsZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1t
CmluZGV4IDJlYzUyNGMyMDM1NTYyZDJlYWQ5ZmQ4OGU0YjZiODZlMmQ2OGQ0M2UuLmYxMTY0MjRi
ZjQ3YTVkOTZhODY2NGRlYzc4Nzc2NTA4OTFiNzAzZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTMyNyw3
ICszMjcsNyBAQCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkK
ICAgICAvLyAyLiBLZXlzIGZvciB3aGljaCB0aGVyZSBpcyBubyBrbm93biBNYWMgdmlydHVhbCBr
ZXkgY29kZXMsIGxpa2UgUHJpbnRTY3JlZW4uCiAgICAgLy8gMy4gQ2VydGFpbiBwdW5jdHVhdGlv
biBrZXlzLiBPbiBXaW5kb3dzLCB0aGVzZSBhcmUgYWxzbyByZW1hcHBlZCBkZXBlbmRpbmcgb24g
Y3VycmVudCBrZXlib2FyZCBsYXlvdXQsCiAgICAgLy8gICAgYnV0IHNlZSBjb21tZW50IGluIHdp
bmRvd3NLZXlDb2RlRm9yQ2hhckNvZGUoKS4KLSAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TS2V5
RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCkgeworICAgIGlmICghaXNLZXlwYWRFdmVu
dChldmVudCkgJiYgKFtldmVudCB0eXBlXSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09
IE5TS2V5VXApKSB7CiAgICAgICAgIC8vIENtZCBzd2l0Y2hlcyBSb21hbiBsZXR0ZXJzIGZvciBE
dm9yYWstUVdFUlRZIGxheW91dCwgc28gdHJ5IG1vZGlmaWVkIGNoYXJhY3RlcnMgZmlyc3QuCiAg
ICAgICAgIE5TU3RyaW5nKiBzID0gW2V2ZW50IGNoYXJhY3RlcnNdOwogICAgICAgICBjb2RlID0g
W3MgbGVuZ3RoXSA+IDAgPyB3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0
SW5kZXg6MF0pIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21h
Yy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21h
Yy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbQppbmRleCA0ODU0YWUyMThkMzk3MjgxOTU2NDNhZTlj
NGI2MzJlOGVhOGJiM2FlLi4wZjkzY2U2NjFmN2YyNDZiOTU1YzVlZDhiNDY5MTg5ZWJkZTI4Yzhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViSW5wdXRFdmVu
dEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dlYklucHV0
RXZlbnRGYWN0b3J5Lm1tCkBAIC0xNjksNyArMTY5LDcgQEAgc3RhdGljIGludCB3aW5kb3dzS2V5
Q29kZUZvcktleUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogICAgIC8vIDIuIEtleXMgZm9yIHdoaWNo
IHRoZXJlIGlzIG5vIGtub3duIE1hYyB2aXJ0dWFsIGtleSBjb2RlcywgbGlrZSBQcmludFNjcmVl
bi4KICAgICAvLyAzLiBDZXJ0YWluIHB1bmN0dWF0aW9uIGtleXMuIE9uIFdpbmRvd3MsIHRoZXNl
IGFyZSBhbHNvIHJlbWFwcGVkIGRlcGVuZGluZyBvbiBjdXJyZW50IGtleWJvYXJkIGxheW91dCwK
ICAgICAvLyAgICBidXQgc2VlIGNvbW1lbnQgaW4gd2luZG93c0tleUNvZGVGb3JDaGFyQ29kZSgp
LgotICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBO
U0tleVVwKSB7CisgICAgaWYgKCFpc0tleXBhZEV2ZW50KGV2ZW50KSAmJiAoW2V2ZW50IHR5cGVd
ID09IE5TS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCkpIHsKICAgICAgICAgLy8g
Q21kIHN3aXRjaGVzIFJvbWFuIGxldHRlcnMgZm9yIER2b3Jhay1RV0VSVFkgbGF5b3V0LCBzbyB0
cnkgbW9kaWZpZWQgY2hhcmFjdGVycyBmaXJzdC4KICAgICAgICAgTlNTdHJpbmcqIHMgPSBbZXZl
bnQgY2hhcmFjdGVyc107CiAgICAgICAgIGNvZGUgPSBbcyBsZW5ndGhdID4gMCA/IFdlYkNvcmU6
OndpbmRvd3NLZXlDb2RlRm9yQ2hhckNvZGUoW3MgY2hhcmFjdGVyQXRJbmRleDowXSkgOiAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJJbnB1dEV2ZW50RmFj
dG9yeVRlc3RNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYklucHV0RXZl
bnRGYWN0b3J5VGVzdE1hYy5tbQppbmRleCA3M2EyOWJjZDEwNjZkMTU2ODAxZmE2Y2Q5NTJhY2Qx
ZmQzM2ZlNWYyLi5hYWJhYTEwNzYzNDkwM2Q0YzA4Mzk4NGMwMjNmMDFmMmZmMzI0YTc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYklucHV0RXZlbnRGYWN0b3J5
VGVzdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYklucHV0RXZl
bnRGYWN0b3J5VGVzdE1hYy5tbQpAQCAtMzYsMTIgKzM2LDE5IEBACiAjaW5jbHVkZSAiS2V5Ym9h
cmRFdmVudC5oIgogI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKICNpbmNsdWRlICJXZWJJbnB1
dEV2ZW50RmFjdG9yeS5oIgorI2luY2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCiAKIHVz
aW5nIFdlYktpdDo6V2ViSW5wdXRFdmVudEZhY3Rvcnk7CiB1c2luZyBXZWJLaXQ6OldlYktleWJv
YXJkRXZlbnQ7CiAKIG5hbWVzcGFjZSB7CiAKK3N0cnVjdCBLZXlNYXBwaW5nRW50cnkgeworICAg
IGludCBtYWNLZXlDb2RlOworICAgIHVuaWNoYXIgY2hhcmFjdGVyOworICAgIGludCB3aW5kb3dz
S2V5Q29kZTsKK307CisKIE5TRXZlbnQqIEJ1aWxkRmFrZUtleUV2ZW50KE5TVUludGVnZXIga2V5
Q29kZSwgdW5pY2hhciBjaGFyYWN0ZXIsIE5TVUludGVnZXIgbW9kaWZpZXJGbGFncykKIHsKICAg
ICBOU1N0cmluZyogc3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZjaGFy
YWN0ZXIgbGVuZ3RoOjFdOwpAQCAtODIsMyArODksMzUgQEAgVEVTVChXZWJJbnB1dEV2ZW50RmFj
dG9yeVRlc3RNYWMsIEFycm93S2V5TnVtUGFkKQogICAgIHdlYkV2ZW50ID0gV2ViSW5wdXRFdmVu
dEZhY3Rvcnk6OmtleWJvYXJkRXZlbnQobWFjRXZlbnQpOwogICAgIEVYUEVDVF9FUSgwLCB3ZWJF
dmVudC5tb2RpZmllcnMpOwogfQorCisvLyBUZXN0IHRoYXQgbnVtcGFkIGtleXMgZ2V0IG1hcHBl
ZCBjb3JyZWN0bHkuCitURVNUKFdlYklucHV0RXZlbnRGYWN0b3J5VGVzdE1hYywgTnVtUGFkTWFw
cGluZykKK3sKKyAgICBLZXlNYXBwaW5nRW50cnkgdGFibGVbXSA9CisgICAgeworICAgICAgICB7
NjUsICcuJywgVktfREVDSU1BTH0sCisgICAgICAgIHs2NywgJyonLCBWS19NVUxUSVBMWX0sCisg
ICAgICAgIHs2OSwgJysnLCBWS19BRER9LAorICAgICAgICB7NzEsIE5TQ2xlYXJMaW5lRnVuY3Rp
b25LZXksIFZLX0NMRUFSfSwKKyAgICAgICAgezc1LCAnLycsIFZLX0RJVklERX0sCisgICAgICAg
IHs3NiwgMywgICBWS19SRVRVUk59LAorICAgICAgICB7NzgsICctJywgVktfU1VCVFJBQ1R9LAor
ICAgICAgICB7ODEsICc9JywgVktfT0VNX1BMVVN9LAorICAgICAgICB7ODIsICcwJywgVktfTlVN
UEFEMH0sCisgICAgICAgIHs4MywgJzEnLCBWS19OVU1QQUQxfSwKKyAgICAgICAgezg0LCAnMics
IFZLX05VTVBBRDJ9LAorICAgICAgICB7ODUsICczJywgVktfTlVNUEFEM30sCisgICAgICAgIHs4
NiwgJzQnLCBWS19OVU1QQUQ0fSwKKyAgICAgICAgezg3LCAnNScsIFZLX05VTVBBRDV9LAorICAg
ICAgICB7ODgsICc2JywgVktfTlVNUEFENn0sCisgICAgICAgIHs4OSwgJzcnLCBWS19OVU1QQUQ3
fSwKKyAgICAgICAgezkxLCAnOCcsIFZLX05VTVBBRDh9LAorICAgICAgICB7OTIsICc5JywgVktf
TlVNUEFEOX0sCisgICAgfTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJyYXlzaXpl
KHRhYmxlKTsgKytpKSB7CisgICAgICAgIE5TRXZlbnQqIG1hY0V2ZW50ID0gQnVpbGRGYWtlS2V5
RXZlbnQodGFibGVbaV0ubWFjS2V5Q29kZSwgdGFibGVbaV0uY2hhcmFjdGVyLCAwKTsKKyAgICAg
ICAgV2ViS2V5Ym9hcmRFdmVudCB3ZWJFdmVudCA9IFdlYklucHV0RXZlbnRGYWN0b3J5OjprZXli
b2FyZEV2ZW50KG1hY0V2ZW50KTsKKyAgICAgICAgRVhQRUNUX0VRKHRhYmxlW2ldLndpbmRvd3NL
ZXlDb2RlLCB3ZWJFdmVudC53aW5kb3dzS2V5Q29kZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM1NGZkODFkNGZiOGJjZTAw
YzM2NGE5ZGM4MzkwNDg0MTlhYzViYjYuLmM4MWE4MjE4MDhiYjRiNmM1OTJlY2Q0NDJjZjg4OTc0
ZTljYjM0YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0xNiAgU2FpbGVzaCBBZ3Jhd2FsICA8c2FpbEBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5jb3JyZWN0IGtleWNvZGVzIGZvciBudW1wYWQgLywg
LSwgKywgLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTkxODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQga2V5IG1hcHBpbmdzIGZvciBhbGwgbnVtcGFkIGtleXMuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5tbToKKyAgICAgICAgKEtleU1hcHBp
bmdFbnRyeSk6CisgICAgICAgICgtW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIga2V5RG93bjp3aXRo
TW9kaWZpZXJzOndpdGhMb2NhdGlvbjpdKTogQWRkZWQgYWxsIG51bXBhZCBrZXlzLgorCiAyMDEy
LTEwLTE0ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBub3Rp
ZmljYXRpb24gb3JpZ2luIHBlcm1pc3Npb24gcmVxdWVzdCB3aGVuIG5vIGpzIGNhbGxiYWNrIGlz
IHByb3ZpZGVkCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5k
aW5nQ29udHJvbGxlci5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdD
b250cm9sbGVyLm1tCmluZGV4IDQ4MmJmOTNkYjBlNzAzOGI3OTBiYTAyNjMzZWYzOWUxY2Q2NTk4
ZDAuLjZmMzI4YTU2NjAzMGZjZGJkNDQ5YTRkZmQ1N2E3MDBmMWMzOTIwNjggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tCkBAIC01
Nyw2ICs1NywxMyBAQCBlbnVtIE1vdXNlQnV0dG9uIHsKICAgICBOb01vdXNlQnV0dG9uID0gLTEK
IH07CiAKK3N0cnVjdCBLZXlNYXBwaW5nRW50cnkgeworICAgIGludCBtYWNLZXlDb2RlOworICAg
IGludCBtYWNOdW1wYWRLZXlDb2RlOworICAgIHVuaWNoYXIgY2hhcmFjdGVyOworICAgIE5TU3Ry
aW5nKiBjaGFyYWN0ZXJOYW1lOworfTsKKwogTlNQb2ludCBsYXN0TW91c2VQb3NpdGlvbjsKIE5T
UG9pbnQgbGFzdENsaWNrUG9zaXRpb247CiBpbnQgbGFzdENsaWNrQnV0dG9uID0gTm9Nb3VzZUJ1
dHRvbjsKQEAgLTY5OSwxNCArNzA2LDYgQEAgc3RhdGljIGludCBidWlsZE1vZGlmaWVyRmxhZ3Mo
Y29uc3QgV2ViU2NyaXB0T2JqZWN0KiBtb2RpZmllcnMpCiAgICAgICAgIGtleUNvZGUgPSAweDRD
OwogICAgIGVsc2UgaWYgKFtjaGFyYWN0ZXIgaXNFcXVhbFRvU3RyaW5nOkAiXHg4Il0pCiAgICAg
ICAgIGtleUNvZGUgPSAweDMzOwotICAgIGVsc2UgaWYgKFtjaGFyYWN0ZXIgaXNFcXVhbFRvU3Ry
aW5nOkAiNyJdKQotICAgICAgICBrZXlDb2RlID0gMHgxQTsKLSAgICBlbHNlIGlmIChbY2hhcmFj
dGVyIGlzRXF1YWxUb1N0cmluZzpAIjUiXSkKLSAgICAgICAga2V5Q29kZSA9IDB4MTc7Ci0gICAg
ZWxzZSBpZiAoW2NoYXJhY3RlciBpc0VxdWFsVG9TdHJpbmc6QCI5Il0pCi0gICAgICAgIGtleUNv
ZGUgPSAweDE5OwotICAgIGVsc2UgaWYgKFtjaGFyYWN0ZXIgaXNFcXVhbFRvU3RyaW5nOkAiMCJd
KQotICAgICAgICBrZXlDb2RlID0gMHgxRDsKICAgICBlbHNlIGlmIChbY2hhcmFjdGVyIGlzRXF1
YWxUb1N0cmluZzpAImEiXSkKICAgICAgICAga2V5Q29kZSA9IDB4MDA7CiAgICAgZWxzZSBpZiAo
W2NoYXJhY3RlciBpc0VxdWFsVG9TdHJpbmc6QCJiIl0pCkBAIC03MTYsNiArNzE1LDM4IEBAIHN0
YXRpYyBpbnQgYnVpbGRNb2RpZmllckZsYWdzKGNvbnN0IFdlYlNjcmlwdE9iamVjdCogbW9kaWZp
ZXJzKQogICAgIGVsc2UgaWYgKFtjaGFyYWN0ZXIgaXNFcXVhbFRvU3RyaW5nOkAiZSJdKQogICAg
ICAgICBrZXlDb2RlID0gMHgwRTsKIAorICAgIEtleU1hcHBpbmdFbnRyeSB0YWJsZVtdID0gewor
ICAgICAgICB7MHgyRiwgMHg0MSwgJy4nLCBuaWx9LAorICAgICAgICB7MCwgICAgMHg0MywgJyon
LCBuaWx9LAorICAgICAgICB7MCwgICAgMHg0NSwgJysnLCBuaWx9LAorICAgICAgICB7MCwgICAg
MHg0NywgTlNDbGVhckxpbmVGdW5jdGlvbktleSwgQCJjbGVhciJ9LAorICAgICAgICB7MHgyQywg
MHg0QiwgJy8nLCBuaWx9LAorICAgICAgICB7MCwgICAgMHg0QywgMywgQCJlbnRlciIgfSwKKyAg
ICAgICAgezB4MUIsIDB4NEUsICctJywgbmlsfSwKKyAgICAgICAgezB4MTgsIDB4NTEsICc9Jywg
bmlsfSwKKyAgICAgICAgezB4MUQsIDB4NTIsICcwJywgbmlsfSwKKyAgICAgICAgezB4MTIsIDB4
NTMsICcxJywgbmlsfSwKKyAgICAgICAgezB4MTMsIDB4NTQsICcyJywgbmlsfSwKKyAgICAgICAg
ezB4MTQsIDB4NTUsICczJywgbmlsfSwKKyAgICAgICAgezB4MTUsIDB4NTYsICc0JywgbmlsfSwK
KyAgICAgICAgezB4MTcsIDB4NTcsICc1JywgbmlsfSwKKyAgICAgICAgezB4MTYsIDB4NTgsICc2
JywgbmlsfSwKKyAgICAgICAgezB4MUEsIDB4NTksICc3JywgbmlsfSwKKyAgICAgICAgezB4MUMs
IDB4NUIsICc4JywgbmlsfSwKKyAgICAgICAgezB4MTksIDB4NUMsICc5JywgbmlsfSwKKyAgICB9
OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKHRhYmxlKTsg
KytpKSB7CisgICAgICAgIE5TU3RyaW5nKiBjdXJyZW50Q2hhcmFjdGVyU3RyaW5nID0gW05TU3Ry
aW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZ0YWJsZVtpXS5jaGFyYWN0ZXIgbGVuZ3RoOjFdOwor
ICAgICAgICBpZiAoW2NoYXJhY3RlciBpc0VxdWFsVG9TdHJpbmc6Y3VycmVudENoYXJhY3RlclN0
cmluZ10gfHwgW2NoYXJhY3RlciBpc0VxdWFsVG9TdHJpbmc6dGFibGVbaV0uY2hhcmFjdGVyTmFt
ZV0pIHsKKyAgICAgICAgICAgIGlmIChrZXlMb2NhdGlvbiA9PSBET01fS0VZX0xPQ0FUSU9OX05V
TVBBRCkKKyAgICAgICAgICAgICAgICBrZXlDb2RlID0gdGFibGVbaV0ubWFjTnVtcGFkS2V5Q29k
ZTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBrZXlDb2RlID0gdGFibGVbaV0u
bWFjS2V5Q29kZTsKKyAgICAgICAgICAgIGV2ZW50Q2hhcmFjdGVyID0gY3VycmVudENoYXJhY3Rl
clN0cmluZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCiAgICAgTlNT
dHJpbmcgKmNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVycyA9IGV2ZW50Q2hhcmFjdGVyOwogCiAg
ICAgaW50IG1vZGlmaWVyRmxhZ3MgPSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYzMTA2YzViYjk3YjE2NmJhNjU5Yjgx
OGEyZTY0NTAyODRjMDA4ZTAuLmI4OTkyZDg0ZDFjMmY1MWNhODZhY2JkZDQzNTRlNTFkNWU4YmY2
NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMC0xNiAgU2FpbGVzaCBBZ3Jhd2FsICA8
c2FpbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5jb3JyZWN0IGtleWNvZGVzIGZvciBudW1w
YWQgLywgLSwgKywgLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTkxODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRlZCB0ZXN0IHRvIG1hcCBudW1wYWQga2V5cyB0byB3aW5kb3dzIHZpcnR1YWwga2V5
Y29kZXMuIFRoaXMgdGVzdCBpcyBmb3IgdGhlIE1hYyBwb3J0IG9ubHkuIER1bXBSZW5kZXJUcmVl
IGluIHRoZSBjaHJvbWl1bS1tYWMgcG9ydCBkb2Vzbid0IHVzZSBNYWMga2V5Y29kZXMgc28gdGhp
cyBjYW4ndCBiZSB0ZXN0ZWQgb24gdGhhdCBwbGF0Zm9ybS4KKworICAgICAgICAqIHBsYXRmb3Jt
L21hYy9mYXN0L2V2ZW50cy9udW1wYWQta2V5Y29kZS1tYXBwaW5nLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRzL251bXBhZC1rZXljb2RlLW1h
cHBpbmcuaHRtbDogQWRkZWQuCisKIDIwMTItMTAtMTQgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IG5vdGlmaWNhdGlvbiBvcmlnaW4gcGVybWlzc2lvbiByZXF1
ZXN0IHdoZW4gbm8ganMgY2FsbGJhY2sgaXMgcHJvdmlkZWQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L2V2ZW50cy9udW1wYWQta2V5Y29kZS1tYXBwaW5nLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2V2ZW50cy9udW1wYWQta2V5
Y29kZS1tYXBwaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWI4YjlhMTM2OWVhMzc3ZGY4
NWNjMjhiMTFjNjkwNGJhYTUyOTFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvZXZlbnRzL251bXBhZC1rZXljb2RlLW1hcHBpbmctZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjcgQEAKK1Rlc3QgdGhhdCBNYWMgbnVtcGFkIGtleXMgYXJlIG1hcHBlZCB0
byB0aGUgY29ycmVjdCBXaW5kb3dzIHZpcnR1YWwga2V5Y29kZXMuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIGdldEtleUNvZGUoJy4nKSBpcyAweDZFCitQQVNTIGdldEtl
eUNvZGUoJyonKSBpcyAweDZBCitQQVNTIGdldEtleUNvZGUoJysnKSBpcyAweDZCCitQQVNTIGdl
dEtleUNvZGUoJ2NsZWFyJykgaXMgMHgwQworUEFTUyBnZXRLZXlDb2RlKCcvJykgaXMgMHg2Rgor
UEFTUyBnZXRLZXlDb2RlKCdlbnRlcicpIGlzIDB4MEQKK1BBU1MgZ2V0S2V5Q29kZSgnLScpIGlz
IDB4NkQKK1BBU1MgZ2V0S2V5Q29kZSgnPScpIGlzIDB4QkIKK1BBU1MgZ2V0S2V5Q29kZSgnMCcp
IGlzIDB4NjAKK1BBU1MgZ2V0S2V5Q29kZSgnMScpIGlzIDB4NjEKK1BBU1MgZ2V0S2V5Q29kZSgn
MicpIGlzIDB4NjIKK1BBU1MgZ2V0S2V5Q29kZSgnMycpIGlzIDB4NjMKK1BBU1MgZ2V0S2V5Q29k
ZSgnNCcpIGlzIDB4NjQKK1BBU1MgZ2V0S2V5Q29kZSgnNScpIGlzIDB4NjUKK1BBU1MgZ2V0S2V5
Q29kZSgnNicpIGlzIDB4NjYKK1BBU1MgZ2V0S2V5Q29kZSgnNycpIGlzIDB4NjcKK1BBU1MgZ2V0
S2V5Q29kZSgnOCcpIGlzIDB4NjgKK1BBU1MgZ2V0S2V5Q29kZSgnOScpIGlzIDB4NjkKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvbnVtcGFkLWtleWNvZGUtbWFw
cGluZy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRzL251bXBhZC1r
ZXljb2RlLW1hcHBpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTNhOTcwZDMzMzc3OTdlYWMyYjFjMmU0
OGVkYTY3Yjc4YzhhZWZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvZXZlbnRzL251bXBhZC1rZXljb2RlLW1hcHBpbmcuaHRtbApAQCAtMCwwICsxLDQ4
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlv
bigiVGVzdCB0aGF0IE1hYyBudW1wYWQga2V5cyBhcmUgbWFwcGVkIHRvIHRoZSBjb3JyZWN0IFdp
bmRvd3MgdmlydHVhbCBrZXljb2Rlcy4iKTsKKwordmFyIGxhc3RLZXlib2FyZEV2ZW50OworZG9j
dW1lbnQub25rZXlkb3duID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBsYXN0S2V5Ym9hcmRFdmVu
dCA9IGV2ZW50OworfQorCitmdW5jdGlvbiBnZXRLZXlDb2RlKGtleU5hbWUpIHsKKyAgICB2YXIg
bnVtcGFkTG9jYXRpb24gPSAzOworICAgIGV2ZW50U2VuZGVyLmtleURvd24oa2V5TmFtZSwgMCwg
bnVtcGFkTG9jYXRpb24pOworICAgIHJldHVybiBsYXN0S2V5Ym9hcmRFdmVudC5rZXlDb2RlOwor
fQorCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgc2hvdWxkQmUoImdldEtleUNvZGUo
Jy4nKSIsICIweDZFIik7CisgICAgc2hvdWxkQmUoImdldEtleUNvZGUoJyonKSIsICIweDZBIik7
CisgICAgc2hvdWxkQmUoImdldEtleUNvZGUoJysnKSIsICIweDZCIik7CisgICAgc2hvdWxkQmUo
ImdldEtleUNvZGUoJ2NsZWFyJykiLCAiMHgwQyIpOworICAgIHNob3VsZEJlKCJnZXRLZXlDb2Rl
KCcvJykiLCAiMHg2RiIpOworICAgIHNob3VsZEJlKCJnZXRLZXlDb2RlKCdlbnRlcicpIiwgIjB4
MEQiKTsKKyAgICBzaG91bGRCZSgiZ2V0S2V5Q29kZSgnLScpIiwgIjB4NkQiKTsKKyAgICBzaG91
bGRCZSgiZ2V0S2V5Q29kZSgnPScpIiwgIjB4QkIiKTsKKyAgICBzaG91bGRCZSgiZ2V0S2V5Q29k
ZSgnMCcpIiwgIjB4NjAiKTsKKyAgICBzaG91bGRCZSgiZ2V0S2V5Q29kZSgnMScpIiwgIjB4NjEi
KTsKKyAgICBzaG91bGRCZSgiZ2V0S2V5Q29kZSgnMicpIiwgIjB4NjIiKTsKKyAgICBzaG91bGRC
ZSgiZ2V0S2V5Q29kZSgnMycpIiwgIjB4NjMiKTsKKyAgICBzaG91bGRCZSgiZ2V0S2V5Q29kZSgn
NCcpIiwgIjB4NjQiKTsKKyAgICBzaG91bGRCZSgiZ2V0S2V5Q29kZSgnNScpIiwgIjB4NjUiKTsK
KyAgICBzaG91bGRCZSgiZ2V0S2V5Q29kZSgnNicpIiwgIjB4NjYiKTsKKyAgICBzaG91bGRCZSgi
Z2V0S2V5Q29kZSgnNycpIiwgIjB4NjciKTsKKyAgICBzaG91bGRCZSgiZ2V0S2V5Q29kZSgnOCcp
IiwgIjB4NjgiKTsKKyAgICBzaG91bGRCZSgiZ2V0S2V5Q29kZSgnOScpIiwgIjB4NjkiKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKQorfQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170224</attachid>
            <date>2012-10-23 13:42:34 -0700</date>
            <delta_ts>2012-10-24 15:36:41 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-99188-20121023134110.patch</filename>
            <type>text/plain</type>
            <size>13613</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUzNTgzNmI5ZDg3NDNh
ZDBiMDUzMThhY2I3OTcyYThkNDdkNzQ5Ni4uNzk1ZDYyZDEzOGEyOWZmYWIyODg5ZjEwZDc2OWMz
NTM5ZGI0OWIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTEwLTE2ICBTYWls
ZXNoIEFncmF3YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmNvcnJlY3Qga2V5
Y29kZXMgZm9yIG51bXBhZCAvLCAtLCArLCAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hh
bmcuCisKKyAgICAgICAgSW4gcjU3OTUxIHdlIHN3aXRjaGVkIHRvIG1hcHBpbmcga2V5cyBieSBj
aGFyYWN0ZXIgY29kZS4KKyAgICAgICAgVGhpcyByZWdyZXNzZWQgdGhlIG51bXBhZCBrZXlzIHdo
aWNoIG5vIGxvbmdlciBtYXRjaCB0aGUgV2luZG93cyB2aXJ0dWFsIGtleSBjb2Rlcy4KKyAgICAg
ICAgVGhpcyBDTCBmaXhlcyB0aGlzIGJ5IG5ldmVyIG1hcHBpbmcgbnVtcGFkIGtleXMgYnkgY2hh
cmFjdGVyIGNvZGUuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRzL251
bXBhZC1rZXljb2RlLW1hcHBpbmcuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6d2luZG93c0tleUNvZGVG
b3JLZXlFdmVudCk6CisKIDIwMTItMTAtMTQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBTaW1wbGlmeSB1c2VyIGNvbnRlbnQgaW4gV2ViS2l0MiBieSB1c2luZyBXZWJD
b3JlOjpVc2VyU3R5bGVTaGVldCBhbmQgV2ViQ29yZTo6VXNlclNjcmlwdCBkaXJlY3RseQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA3NjI3YTRlNDg0ZWE5MGE3YzdlYTExYzkwNzc4MzA1
N2UwOTI2ZWVjLi5kODBhNzQwZjRkN2I5NDU4Yzc4Nzc2YTgxNjZlNjEzNTQwMmJjOGU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTEwLTE2ICBTYWls
ZXNoIEFncmF3YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmNvcnJlY3Qga2V5
Y29kZXMgZm9yIG51bXBhZCAvLCAtLCArLCAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hh
bmcuCisKKyAgICAgICAgSW4gcjU3OTUxIHdlIHN3aXRjaGVkIHRvIG1hcHBpbmcga2V5cyBieSBj
aGFyYWN0ZXIgY29kZS4KKyAgICAgICAgVGhpcyByZWdyZXNzZWQgdGhlIG51bXBhZCBrZXlzIHdo
aWNoIG5vIGxvbmdlciBtYXRjaCB0aGUgV2luZG93cyB2aXJ0dWFsIGtleSBjb2Rlcy4KKyAgICAg
ICAgVGhpcyBDTCBmaXhlcyB0aGlzIGJ5IG5ldmVyIG1hcHBpbmcgbnVtcGFkIGtleXMgYnkgY2hh
cmFjdGVyIGNvZGUuCisKKyAgICAgICAgKiBzcmMvbWFjL1dlYklucHV0RXZlbnRGYWN0b3J5Lm1t
OiBEaXNhbGxvdyBtYXBwaW5nIG51bXBhZCBrZXlzIGJ5IGNoYXJhY3RlciBjb2RlLgorICAgICAg
ICAoV2ViS2l0Ojp3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KToKKyAgICAgICAgKiB0ZXN0cy9X
ZWJJbnB1dEV2ZW50RmFjdG9yeVRlc3RNYWMubW06IFRlc3QgdG8gdmVyaWZ5IHRoYXQgYWxsIG51
bXBhZCBrZXlzIGFyZSBjb3JyZWN0bHkgbWFwcGVkLgorICAgICAgICAoVEVTVCk6CisKIDIwMTIt
MTAtMTQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIFVzZXJT
Y3JpcHQgYW5kIFVzZXJTdHlsZVNoZWV0IHZhbHVlIG9iamVjdHMgdGhhdCBhcmUgY29weWFibGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5tbQppbmRleCAyZWM1MjRjMjAzNTU2MmQyZWFkOWZkODhlNGI2Yjg2ZTJkNjhkNDNl
Li5mMTE2NDI0YmY0N2E1ZDk2YTg2NjRkZWM3ODc3NjUwODkxYjcwM2ZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1t
CkBAIC0zMjcsNyArMzI3LDcgQEAgaW50IHdpbmRvd3NLZXlDb2RlRm9yS2V5RXZlbnQoTlNFdmVu
dCogZXZlbnQpCiAgICAgLy8gMi4gS2V5cyBmb3Igd2hpY2ggdGhlcmUgaXMgbm8ga25vd24gTWFj
IHZpcnR1YWwga2V5IGNvZGVzLCBsaWtlIFByaW50U2NyZWVuLgogICAgIC8vIDMuIENlcnRhaW4g
cHVuY3R1YXRpb24ga2V5cy4gT24gV2luZG93cywgdGhlc2UgYXJlIGFsc28gcmVtYXBwZWQgZGVw
ZW5kaW5nIG9uIGN1cnJlbnQga2V5Ym9hcmQgbGF5b3V0LAogICAgIC8vICAgIGJ1dCBzZWUgY29t
bWVudCBpbiB3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKCkuCi0gICAgaWYgKFtldmVudCB0eXBl
XSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApIHsKKyAgICBpZiAoIWlz
S2V5cGFkRXZlbnQoZXZlbnQpICYmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVu
dCB0eXBlXSA9PSBOU0tleVVwKSkgewogICAgICAgICAvLyBDbWQgc3dpdGNoZXMgUm9tYW4gbGV0
dGVycyBmb3IgRHZvcmFrLVFXRVJUWSBsYXlvdXQsIHNvIHRyeSBtb2RpZmllZCBjaGFyYWN0ZXJz
IGZpcnN0LgogICAgICAgICBOU1N0cmluZyogcyA9IFtldmVudCBjaGFyYWN0ZXJzXTsKICAgICAg
ICAgY29kZSA9IFtzIGxlbmd0aF0gPiAwID8gd2luZG93c0tleUNvZGVGb3JDaGFyQ29kZShbcyBj
aGFyYWN0ZXJBdEluZGV4OjBdKSA6IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW0KaW5kZXggNDg1NGFlMjE4ZDM5NzI4
MTk1NjQzYWU5YzRiNjMyZThlYThiYjNhZS4uMGY5M2NlNjYxZjdmMjQ2Yjk1NWM1ZWQ4YjQ2OTE4
OWViZGUyOGM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvbWFjL1dl
YklucHV0RXZlbnRGYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL21h
Yy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbQpAQCAtMTY5LDcgKzE2OSw3IEBAIHN0YXRpYyBpbnQg
d2luZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkKICAgICAvLyAyLiBLZXlz
IGZvciB3aGljaCB0aGVyZSBpcyBubyBrbm93biBNYWMgdmlydHVhbCBrZXkgY29kZXMsIGxpa2Ug
UHJpbnRTY3JlZW4uCiAgICAgLy8gMy4gQ2VydGFpbiBwdW5jdHVhdGlvbiBrZXlzLiBPbiBXaW5k
b3dzLCB0aGVzZSBhcmUgYWxzbyByZW1hcHBlZCBkZXBlbmRpbmcgb24gY3VycmVudCBrZXlib2Fy
ZCBsYXlvdXQsCiAgICAgLy8gICAgYnV0IHNlZSBjb21tZW50IGluIHdpbmRvd3NLZXlDb2RlRm9y
Q2hhckNvZGUoKS4KLSAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8fCBbZXZlbnQg
dHlwZV0gPT0gTlNLZXlVcCkgeworICAgIGlmICghaXNLZXlwYWRFdmVudChldmVudCkgJiYgKFtl
dmVudCB0eXBlXSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApKSB7CiAg
ICAgICAgIC8vIENtZCBzd2l0Y2hlcyBSb21hbiBsZXR0ZXJzIGZvciBEdm9yYWstUVdFUlRZIGxh
eW91dCwgc28gdHJ5IG1vZGlmaWVkIGNoYXJhY3RlcnMgZmlyc3QuCiAgICAgICAgIE5TU3RyaW5n
KiBzID0gW2V2ZW50IGNoYXJhY3RlcnNdOwogICAgICAgICBjb2RlID0gW3MgbGVuZ3RoXSA+IDAg
PyBXZWJDb3JlOjp3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6
MF0pIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViSW5w
dXRFdmVudEZhY3RvcnlUZXN0TWFjLm1tIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9X
ZWJJbnB1dEV2ZW50RmFjdG9yeVRlc3RNYWMubW0KaW5kZXggNzNhMjliY2QxMDY2ZDE1NjgwMWZh
NmNkOTUyYWNkMWZkMzNmZTVmMi4uYWFiYWExMDc2MzQ5MDNkNGMwODM5ODRjMDIzZjAxZjJmZjMy
NGE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJJbnB1dEV2
ZW50RmFjdG9yeVRlc3RNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9X
ZWJJbnB1dEV2ZW50RmFjdG9yeVRlc3RNYWMubW0KQEAgLTM2LDEyICszNiwxOSBAQAogI2luY2x1
ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50LmgiCiAjaW5jbHVk
ZSAiV2ViSW5wdXRFdmVudEZhY3RvcnkuaCIKKyNpbmNsdWRlICJXaW5kb3dzS2V5Ym9hcmRDb2Rl
cy5oIgogCiB1c2luZyBXZWJLaXQ6OldlYklucHV0RXZlbnRGYWN0b3J5OwogdXNpbmcgV2ViS2l0
OjpXZWJLZXlib2FyZEV2ZW50OwogCiBuYW1lc3BhY2UgewogCitzdHJ1Y3QgS2V5TWFwcGluZ0Vu
dHJ5IHsKKyAgICBpbnQgbWFjS2V5Q29kZTsKKyAgICB1bmljaGFyIGNoYXJhY3RlcjsKKyAgICBp
bnQgd2luZG93c0tleUNvZGU7Cit9OworCiBOU0V2ZW50KiBCdWlsZEZha2VLZXlFdmVudChOU1VJ
bnRlZ2VyIGtleUNvZGUsIHVuaWNoYXIgY2hhcmFjdGVyLCBOU1VJbnRlZ2VyIG1vZGlmaWVyRmxh
Z3MpCiB7CiAgICAgTlNTdHJpbmcqIHN0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ2hhcmFj
dGVyczomY2hhcmFjdGVyIGxlbmd0aDoxXTsKQEAgLTgyLDMgKzg5LDM1IEBAIFRFU1QoV2ViSW5w
dXRFdmVudEZhY3RvcnlUZXN0TWFjLCBBcnJvd0tleU51bVBhZCkKICAgICB3ZWJFdmVudCA9IFdl
YklucHV0RXZlbnRGYWN0b3J5OjprZXlib2FyZEV2ZW50KG1hY0V2ZW50KTsKICAgICBFWFBFQ1Rf
RVEoMCwgd2ViRXZlbnQubW9kaWZpZXJzKTsKIH0KKworLy8gVGVzdCB0aGF0IG51bXBhZCBrZXlz
IGdldCBtYXBwZWQgY29ycmVjdGx5LgorVEVTVChXZWJJbnB1dEV2ZW50RmFjdG9yeVRlc3RNYWMs
IE51bVBhZE1hcHBpbmcpCit7CisgICAgS2V5TWFwcGluZ0VudHJ5IHRhYmxlW10gPQorICAgIHsK
KyAgICAgICAgezY1LCAnLicsIFZLX0RFQ0lNQUx9LAorICAgICAgICB7NjcsICcqJywgVktfTVVM
VElQTFl9LAorICAgICAgICB7NjksICcrJywgVktfQUREfSwKKyAgICAgICAgezcxLCBOU0NsZWFy
TGluZUZ1bmN0aW9uS2V5LCBWS19DTEVBUn0sCisgICAgICAgIHs3NSwgJy8nLCBWS19ESVZJREV9
LAorICAgICAgICB7NzYsIDMsICAgVktfUkVUVVJOfSwKKyAgICAgICAgezc4LCAnLScsIFZLX1NV
QlRSQUNUfSwKKyAgICAgICAgezgxLCAnPScsIFZLX09FTV9QTFVTfSwKKyAgICAgICAgezgyLCAn
MCcsIFZLX05VTVBBRDB9LAorICAgICAgICB7ODMsICcxJywgVktfTlVNUEFEMX0sCisgICAgICAg
IHs4NCwgJzInLCBWS19OVU1QQUQyfSwKKyAgICAgICAgezg1LCAnMycsIFZLX05VTVBBRDN9LAor
ICAgICAgICB7ODYsICc0JywgVktfTlVNUEFENH0sCisgICAgICAgIHs4NywgJzUnLCBWS19OVU1Q
QUQ1fSwKKyAgICAgICAgezg4LCAnNicsIFZLX05VTVBBRDZ9LAorICAgICAgICB7ODksICc3Jywg
VktfTlVNUEFEN30sCisgICAgICAgIHs5MSwgJzgnLCBWS19OVU1QQUQ4fSwKKyAgICAgICAgezky
LCAnOScsIFZLX05VTVBBRDl9LAorICAgIH07CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGFycmF5c2l6ZSh0YWJsZSk7ICsraSkgeworICAgICAgICBOU0V2ZW50KiBtYWNFdmVudCA9IEJ1
aWxkRmFrZUtleUV2ZW50KHRhYmxlW2ldLm1hY0tleUNvZGUsIHRhYmxlW2ldLmNoYXJhY3Rlciwg
MCk7CisgICAgICAgIFdlYktleWJvYXJkRXZlbnQgd2ViRXZlbnQgPSBXZWJJbnB1dEV2ZW50RmFj
dG9yeTo6a2V5Ym9hcmRFdmVudChtYWNFdmVudCk7CisgICAgICAgIEVYUEVDVF9FUSh0YWJsZVtp
XS53aW5kb3dzS2V5Q29kZSwgd2ViRXZlbnQud2luZG93c0tleUNvZGUpOworICAgIH0KK30KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjNTRmZDgx
ZDRmYjhiY2UwMGMzNjRhOWRjODM5MDQ4NDE5YWM1YmI2Li5lNTM4NmVlNTM4YmI0MmUzZjY0OTEx
NzhmMTU2YmM5NGE1ODc3OWJhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAtMTYgIFNhaWxlc2ggQWdyYXdh
bCAgPHNhaWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluY29ycmVjdCBrZXljb2RlcyBmb3Ig
bnVtcGFkIC8sIC0sICssIC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk5MTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAg
ICAgICBBZGQga2V5IG1hcHBpbmdzIGZvciBhbGwgbnVtcGFkIGtleXMuCisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5tbToKKyAgICAgICAgKEtl
eU1hcHBpbmdFbnRyeSk6CisgICAgICAgICgtW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIga2V5RG93
bjp3aXRoTW9kaWZpZXJzOndpdGhMb2NhdGlvbjpdKTogQWRkZWQgYWxsIG51bXBhZCBrZXlzLgor
CiAyMDEyLTEwLTE0ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxv
dyBub3RpZmljYXRpb24gb3JpZ2luIHBlcm1pc3Npb24gcmVxdWVzdCB3aGVuIG5vIGpzIGNhbGxi
YWNrIGlzIHByb3ZpZGVkCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRXZl
bnRTZW5kaW5nQ29udHJvbGxlci5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNl
bmRpbmdDb250cm9sbGVyLm1tCmluZGV4IDQ4MmJmOTNkYjBlNzAzOGI3OTBiYTAyNjMzZWYzOWUx
Y2Q2NTk4ZDAuLjZmMzI4YTU2NjAzMGZjZGJkNDQ5YTRkZmQ1N2E3MDBmMWMzOTIwNjggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1t
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1t
CkBAIC01Nyw2ICs1NywxMyBAQCBlbnVtIE1vdXNlQnV0dG9uIHsKICAgICBOb01vdXNlQnV0dG9u
ID0gLTEKIH07CiAKK3N0cnVjdCBLZXlNYXBwaW5nRW50cnkgeworICAgIGludCBtYWNLZXlDb2Rl
OworICAgIGludCBtYWNOdW1wYWRLZXlDb2RlOworICAgIHVuaWNoYXIgY2hhcmFjdGVyOworICAg
IE5TU3RyaW5nKiBjaGFyYWN0ZXJOYW1lOworfTsKKwogTlNQb2ludCBsYXN0TW91c2VQb3NpdGlv
bjsKIE5TUG9pbnQgbGFzdENsaWNrUG9zaXRpb247CiBpbnQgbGFzdENsaWNrQnV0dG9uID0gTm9N
b3VzZUJ1dHRvbjsKQEAgLTY5OSwxNCArNzA2LDYgQEAgc3RhdGljIGludCBidWlsZE1vZGlmaWVy
RmxhZ3MoY29uc3QgV2ViU2NyaXB0T2JqZWN0KiBtb2RpZmllcnMpCiAgICAgICAgIGtleUNvZGUg
PSAweDRDOwogICAgIGVsc2UgaWYgKFtjaGFyYWN0ZXIgaXNFcXVhbFRvU3RyaW5nOkAiXHg4Il0p
CiAgICAgICAgIGtleUNvZGUgPSAweDMzOwotICAgIGVsc2UgaWYgKFtjaGFyYWN0ZXIgaXNFcXVh
bFRvU3RyaW5nOkAiNyJdKQotICAgICAgICBrZXlDb2RlID0gMHgxQTsKLSAgICBlbHNlIGlmIChb
Y2hhcmFjdGVyIGlzRXF1YWxUb1N0cmluZzpAIjUiXSkKLSAgICAgICAga2V5Q29kZSA9IDB4MTc7
Ci0gICAgZWxzZSBpZiAoW2NoYXJhY3RlciBpc0VxdWFsVG9TdHJpbmc6QCI5Il0pCi0gICAgICAg
IGtleUNvZGUgPSAweDE5OwotICAgIGVsc2UgaWYgKFtjaGFyYWN0ZXIgaXNFcXVhbFRvU3RyaW5n
OkAiMCJdKQotICAgICAgICBrZXlDb2RlID0gMHgxRDsKICAgICBlbHNlIGlmIChbY2hhcmFjdGVy
IGlzRXF1YWxUb1N0cmluZzpAImEiXSkKICAgICAgICAga2V5Q29kZSA9IDB4MDA7CiAgICAgZWxz
ZSBpZiAoW2NoYXJhY3RlciBpc0VxdWFsVG9TdHJpbmc6QCJiIl0pCkBAIC03MTYsNiArNzE1LDM4
IEBAIHN0YXRpYyBpbnQgYnVpbGRNb2RpZmllckZsYWdzKGNvbnN0IFdlYlNjcmlwdE9iamVjdCog
bW9kaWZpZXJzKQogICAgIGVsc2UgaWYgKFtjaGFyYWN0ZXIgaXNFcXVhbFRvU3RyaW5nOkAiZSJd
KQogICAgICAgICBrZXlDb2RlID0gMHgwRTsKIAorICAgIEtleU1hcHBpbmdFbnRyeSB0YWJsZVtd
ID0geworICAgICAgICB7MHgyRiwgMHg0MSwgJy4nLCBuaWx9LAorICAgICAgICB7MCwgICAgMHg0
MywgJyonLCBuaWx9LAorICAgICAgICB7MCwgICAgMHg0NSwgJysnLCBuaWx9LAorICAgICAgICB7
MCwgICAgMHg0NywgTlNDbGVhckxpbmVGdW5jdGlvbktleSwgQCJjbGVhciJ9LAorICAgICAgICB7
MHgyQywgMHg0QiwgJy8nLCBuaWx9LAorICAgICAgICB7MCwgICAgMHg0QywgMywgQCJlbnRlciIg
fSwKKyAgICAgICAgezB4MUIsIDB4NEUsICctJywgbmlsfSwKKyAgICAgICAgezB4MTgsIDB4NTEs
ICc9JywgbmlsfSwKKyAgICAgICAgezB4MUQsIDB4NTIsICcwJywgbmlsfSwKKyAgICAgICAgezB4
MTIsIDB4NTMsICcxJywgbmlsfSwKKyAgICAgICAgezB4MTMsIDB4NTQsICcyJywgbmlsfSwKKyAg
ICAgICAgezB4MTQsIDB4NTUsICczJywgbmlsfSwKKyAgICAgICAgezB4MTUsIDB4NTYsICc0Jywg
bmlsfSwKKyAgICAgICAgezB4MTcsIDB4NTcsICc1JywgbmlsfSwKKyAgICAgICAgezB4MTYsIDB4
NTgsICc2JywgbmlsfSwKKyAgICAgICAgezB4MUEsIDB4NTksICc3JywgbmlsfSwKKyAgICAgICAg
ezB4MUMsIDB4NUIsICc4JywgbmlsfSwKKyAgICAgICAgezB4MTksIDB4NUMsICc5JywgbmlsfSwK
KyAgICB9OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKHRh
YmxlKTsgKytpKSB7CisgICAgICAgIE5TU3RyaW5nKiBjdXJyZW50Q2hhcmFjdGVyU3RyaW5nID0g
W05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZ0YWJsZVtpXS5jaGFyYWN0ZXIgbGVuZ3Ro
OjFdOworICAgICAgICBpZiAoW2NoYXJhY3RlciBpc0VxdWFsVG9TdHJpbmc6Y3VycmVudENoYXJh
Y3RlclN0cmluZ10gfHwgW2NoYXJhY3RlciBpc0VxdWFsVG9TdHJpbmc6dGFibGVbaV0uY2hhcmFj
dGVyTmFtZV0pIHsKKyAgICAgICAgICAgIGlmIChrZXlMb2NhdGlvbiA9PSBET01fS0VZX0xPQ0FU
SU9OX05VTVBBRCkKKyAgICAgICAgICAgICAgICBrZXlDb2RlID0gdGFibGVbaV0ubWFjTnVtcGFk
S2V5Q29kZTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBrZXlDb2RlID0gdGFi
bGVbaV0ubWFjS2V5Q29kZTsKKyAgICAgICAgICAgIGV2ZW50Q2hhcmFjdGVyID0gY3VycmVudENo
YXJhY3RlclN0cmluZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCiAg
ICAgTlNTdHJpbmcgKmNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVycyA9IGV2ZW50Q2hhcmFjdGVy
OwogCiAgICAgaW50IG1vZGlmaWVyRmxhZ3MgPSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYzMTA2YzViYjk3YjE2NmJh
NjU5YjgxOGEyZTY0NTAyODRjMDA4ZTAuLjg5MDFlZWNiYmYzZjY3Zjk0NzAzNjQ4OGI4NDAyOTll
Nzc4ODRmMWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMC0xNiAgU2FpbGVzaCBBZ3Jh
d2FsICA8c2FpbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5jb3JyZWN0IGtleWNvZGVzIGZv
ciBudW1wYWQgLywgLSwgKywgLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTkxODgKKworICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgorCisg
ICAgICAgIEFkZGVkIHRlc3QgdG8gbWFwIG51bXBhZCBrZXlzIHRvIHdpbmRvd3MgdmlydHVhbCBr
ZXljb2Rlcy4gVGhpcyB0ZXN0IGlzIGZvciB0aGUgTWFjIHBvcnQgb25seS4gRHVtcFJlbmRlclRy
ZWUgaW4gdGhlIGNocm9taXVtLW1hYyBwb3J0IGRvZXNuJ3QgdXNlIE1hYyBrZXljb2RlcyBzbyB0
aGlzIGNhbid0IGJlIHRlc3RlZCBvbiB0aGF0IHBsYXRmb3JtLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjL2Zhc3QvZXZlbnRzL251bXBhZC1rZXljb2RlLW1hcHBpbmctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvbnVtcGFkLWtleWNvZGUt
bWFwcGluZy5odG1sOiBBZGRlZC4KKwogMjAxMi0xMC0xNCAgSm9uIExlZSAgPGpvbmxlZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWxsb3cgbm90aWZpY2F0aW9uIG9yaWdpbiBwZXJtaXNzaW9uIHJl
cXVlc3Qgd2hlbiBubyBqcyBjYWxsYmFjayBpcyBwcm92aWRlZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRzL251bXBhZC1rZXljb2RlLW1hcHBpbmctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRzL251bXBhZC1r
ZXljb2RlLW1hcHBpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1YjhiOWExMzY5ZWEzNzdk
Zjg1Y2MyOGIxMWM2OTA0YmFhNTI5MWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvbnVtcGFkLWtleWNvZGUtbWFwcGluZy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyNyBAQAorVGVzdCB0aGF0IE1hYyBudW1wYWQga2V5cyBhcmUgbWFwcGVk
IHRvIHRoZSBjb3JyZWN0IFdpbmRvd3MgdmlydHVhbCBrZXljb2Rlcy4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgZ2V0S2V5Q29kZSgnLicpIGlzIDB4NkUKK1BBU1MgZ2V0
S2V5Q29kZSgnKicpIGlzIDB4NkEKK1BBU1MgZ2V0S2V5Q29kZSgnKycpIGlzIDB4NkIKK1BBU1Mg
Z2V0S2V5Q29kZSgnY2xlYXInKSBpcyAweDBDCitQQVNTIGdldEtleUNvZGUoJy8nKSBpcyAweDZG
CitQQVNTIGdldEtleUNvZGUoJ2VudGVyJykgaXMgMHgwRAorUEFTUyBnZXRLZXlDb2RlKCctJykg
aXMgMHg2RAorUEFTUyBnZXRLZXlDb2RlKCc9JykgaXMgMHhCQgorUEFTUyBnZXRLZXlDb2RlKCcw
JykgaXMgMHg2MAorUEFTUyBnZXRLZXlDb2RlKCcxJykgaXMgMHg2MQorUEFTUyBnZXRLZXlDb2Rl
KCcyJykgaXMgMHg2MgorUEFTUyBnZXRLZXlDb2RlKCczJykgaXMgMHg2MworUEFTUyBnZXRLZXlD
b2RlKCc0JykgaXMgMHg2NAorUEFTUyBnZXRLZXlDb2RlKCc1JykgaXMgMHg2NQorUEFTUyBnZXRL
ZXlDb2RlKCc2JykgaXMgMHg2NgorUEFTUyBnZXRLZXlDb2RlKCc3JykgaXMgMHg2NworUEFTUyBn
ZXRLZXlDb2RlKCc4JykgaXMgMHg2OAorUEFTUyBnZXRLZXlDb2RlKCc5JykgaXMgMHg2OQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2V2ZW50cy9udW1wYWQta2V5Y29kZS1t
YXBwaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvbnVtcGFk
LWtleWNvZGUtbWFwcGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkODIzNTJjNGJjOTc2ZmZhN2I1MWQ5
M2Y2MWM5MzgzYzkyNjRiNGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9ldmVudHMvbnVtcGFkLWtleWNvZGUtbWFwcGluZy5odG1sCkBAIC0wLDAgKzEs
NDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0
aW9uKCJUZXN0IHRoYXQgTWFjIG51bXBhZCBrZXlzIGFyZSBtYXBwZWQgdG8gdGhlIGNvcnJlY3Qg
V2luZG93cyB2aXJ0dWFsIGtleWNvZGVzLiIpOworCit2YXIgbGFzdEtleWJvYXJkRXZlbnQ7Citk
b2N1bWVudC5vbmtleWRvd24gPSBmdW5jdGlvbihldmVudCkgeworICAgIGxhc3RLZXlib2FyZEV2
ZW50ID0gZXZlbnQ7Cit9CisKK2Z1bmN0aW9uIGdldEtleUNvZGUoa2V5TmFtZSkgeworICAgIHZh
ciBudW1wYWRMb2NhdGlvbiA9IDM7CisgICAgZXZlbnRTZW5kZXIua2V5RG93bihrZXlOYW1lLCAw
LCBudW1wYWRMb2NhdGlvbik7CisgICAgcmV0dXJuIGxhc3RLZXlib2FyZEV2ZW50LmtleUNvZGU7
Cit9CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICBzaG91bGRCZSgiZ2V0S2V5Q29k
ZSgnLicpIiwgIjB4NkUiKTsKKyAgICBzaG91bGRCZSgiZ2V0S2V5Q29kZSgnKicpIiwgIjB4NkEi
KTsKKyAgICBzaG91bGRCZSgiZ2V0S2V5Q29kZSgnKycpIiwgIjB4NkIiKTsKKyAgICBzaG91bGRC
ZSgiZ2V0S2V5Q29kZSgnY2xlYXInKSIsICIweDBDIik7CisgICAgc2hvdWxkQmUoImdldEtleUNv
ZGUoJy8nKSIsICIweDZGIik7CisgICAgc2hvdWxkQmUoImdldEtleUNvZGUoJ2VudGVyJykiLCAi
MHgwRCIpOworICAgIHNob3VsZEJlKCJnZXRLZXlDb2RlKCctJykiLCAiMHg2RCIpOworICAgIHNo
b3VsZEJlKCJnZXRLZXlDb2RlKCc9JykiLCAiMHhCQiIpOworICAgIHNob3VsZEJlKCJnZXRLZXlD
b2RlKCcwJykiLCAiMHg2MCIpOworICAgIHNob3VsZEJlKCJnZXRLZXlDb2RlKCcxJykiLCAiMHg2
MSIpOworICAgIHNob3VsZEJlKCJnZXRLZXlDb2RlKCcyJykiLCAiMHg2MiIpOworICAgIHNob3Vs
ZEJlKCJnZXRLZXlDb2RlKCczJykiLCAiMHg2MyIpOworICAgIHNob3VsZEJlKCJnZXRLZXlDb2Rl
KCc0JykiLCAiMHg2NCIpOworICAgIHNob3VsZEJlKCJnZXRLZXlDb2RlKCc1JykiLCAiMHg2NSIp
OworICAgIHNob3VsZEJlKCJnZXRLZXlDb2RlKCc2JykiLCAiMHg2NiIpOworICAgIHNob3VsZEJl
KCJnZXRLZXlDb2RlKCc3JykiLCAiMHg2NyIpOworICAgIHNob3VsZEJlKCJnZXRLZXlDb2RlKCc4
JykiLCAiMHg2OCIpOworICAgIHNob3VsZEJlKCJnZXRLZXlDb2RlKCc5JykiLCAiMHg2OSIpOwor
fQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>