<?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>86694</bug_id>
          
          <creation_ts>2012-05-16 18:35:44 -0700</creation_ts>
          <short_desc>Implement DOM_KEY_LOCATION_LEFT and RIGHT of KeyboardEvent&apos;s location property</short_desc>
          <delta_ts>2012-06-22 00:28:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>87219</dependson>
          <blocked>69029</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Takashi Sakamoto">tasak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>jberlin</cc>
    
    <cc>morrita</cc>
    
    <cc>tasak</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yusukes</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>626120</commentid>
    <comment_count>0</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-16 18:35:44 -0700</bug_when>
    <thetext>Add DOM_KEY_LOCATION_LEFT and DOM_KEY_LOCATION_RIGHT to distinguish  between left-control and right-control, between left shift and right shift, and between left menu and right menu.
Currently only DOM_KEY_LOCATION_STANDARD and DOM_KEY_LOCATION_NUMPAD are implemented.

The location property is defined in the W3C DOM3 specification 
http://www.w3.org/TR/DOM-Level-3-Events/#events-keyboardevents</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626285</commentid>
    <comment_count>1</comment_count>
      <attachid>142419</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-16 23:10:37 -0700</bug_when>
    <thetext>Created attachment 142419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626706</commentid>
    <comment_count>2</comment_count>
      <attachid>142419</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-17 10:47:54 -0700</bug_when>
    <thetext>Comment on attachment 142419
Patch

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

Looks great.

&gt; Source/WebCore/ChangeLog:25
&gt; +        (WebCore):

Unhelpful cruft like this can be removed from ChangeLogs. This is just a bug in the script - it&apos;s meant to be helpful, not authoritative.

Thank you for providing helpful comments!

&gt; Source/WebCore/dom/KeyboardEvent.cpp:57
&gt; +static inline int getWindowsVirtualCodeWithoutLocation(int keycode)

In WebCore coding style, &quot;get&quot; prefix means that the result is returned via an out argument. So, just &quot;windowsVirtualCodeWithoutLocation&quot; would be right.

&gt; Source/WebCore/dom/KeyboardEvent.cpp:74
&gt; +static inline unsigned getKeyLocation(const PlatformKeyboardEvent&amp; key)

Ditto.

Also, I don&apos;t understand why this returns unsigned, and not KeyboardEvent::KeyLocationCode.

&gt; Tools/DumpRenderTree/mac/EventSendingController.mm:644
&gt; +    } else if ([character isEqualToString:@&quot;rightMenu&quot;]) {

Perhaps &quot;leftAlt&quot; and &quot;rightAlt&quot; would be better for these. On Windows, the key that maps to VK_MENU is Alt, and on Mac, it&apos;s Option - calling that &quot;Menu&quot; is surprising and confusing, regardless of how the Windows API constant is named.

&gt; LayoutTests/fast/events/keydown-leftright-keys.html:51
&gt; +    testKeyEventWithLocation(&quot;rightShift&quot;, VK_SHIFT, KEY_LOCATION_RIGHT);

If you put KEY_LOCATION_RIGHT in quotes, will test output become easier to read?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627370</commentid>
    <comment_count>3</comment_count>
      <attachid>142640</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-17 23:07:57 -0700</bug_when>
    <thetext>Created attachment 142640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627375</commentid>
    <comment_count>4</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-17 23:16:13 -0700</bug_when>
    <thetext>Thank you for reviewing.

(In reply to comment #2)
&gt; (From update of attachment 142419 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=142419&amp;action=review
&gt; 
&gt; Looks great.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:25
&gt; &gt; +        (WebCore):
&gt; 
&gt; Unhelpful cruft like this can be removed from ChangeLogs. This is just a bug in the script - it&apos;s meant to be helpful, not authoritative.

I see. I removed.

&gt; 
&gt; Thank you for providing helpful comments!
&gt; 
&gt; &gt; Source/WebCore/dom/KeyboardEvent.cpp:57
&gt; &gt; +static inline int getWindowsVirtualCodeWithoutLocation(int keycode)
&gt; 
&gt; In WebCore coding style, &quot;get&quot; prefix means that the result is returned via an out argument. So, just &quot;windowsVirtualCodeWithoutLocation&quot; would be right.

Done.

&gt; &gt; Source/WebCore/dom/KeyboardEvent.cpp:74
&gt; &gt; +static inline unsigned getKeyLocation(const PlatformKeyboardEvent&amp; key)
&gt; 
&gt; Ditto.

Done.

&gt; Also, I don&apos;t understand why this returns unsigned, and not KeyboardEvent::KeyLocationCode.

I see. I don&apos;t have enough reason.
Done.

&gt; &gt; Tools/DumpRenderTree/mac/EventSendingController.mm:644
&gt; &gt; +    } else if ([character isEqualToString:@&quot;rightMenu&quot;]) {
&gt; 
&gt; Perhaps &quot;leftAlt&quot; and &quot;rightAlt&quot; would be better for these. On Windows, the key that maps to VK_MENU is Alt, and on Mac, it&apos;s Option - calling that &quot;Menu&quot; is surprising and confusing, regardless of how the Windows API constant is named.

Done.

&gt; 
&gt; &gt; LayoutTests/fast/events/keydown-leftright-keys.html:51
&gt; &gt; +    testKeyEventWithLocation(&quot;rightShift&quot;, VK_SHIFT, KEY_LOCATION_RIGHT);
&gt; 
&gt; If you put KEY_LOCATION_RIGHT in quotes, will test output become easier to read?

I agree. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627781</commentid>
    <comment_count>5</comment_count>
      <attachid>142640</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-18 10:10:02 -0700</bug_when>
    <thetext>Comment on attachment 142640
Patch

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

&gt; Source/WebCore/dom/KeyboardEvent.cpp:74
&gt; +static inline int keyLocationCode(const PlatformKeyboardEvent&amp; key)

You changed the returned value to int, not to KeyboardEvent::KeyLocationCode. Is there something preventing you from using the latter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628828</commentid>
    <comment_count>6</comment_count>
      <attachid>142955</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-21 00:04:46 -0700</bug_when>
    <thetext>Created attachment 142955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628847</commentid>
    <comment_count>7</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-21 00:55:11 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 142640 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=142640&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/KeyboardEvent.cpp:74
&gt; &gt; +static inline int keyLocationCode(const PlatformKeyboardEvent&amp; key)
&gt; 
&gt; You changed the returned value to int, not to KeyboardEvent::KeyLocationCode. Is there something preventing you from using the latter?

Sorry. I misunderstood your comment. I changed the code to use KeyboardEvent::KeyLocationCode type for returning value type of the function: WebCore::keyLocationCode.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628861</commentid>
    <comment_count>8</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-21 01:16:14 -0700</bug_when>
    <thetext>SInce you already got r+, you can
- Rewrite &quot;Reviewed by&quot; line with the reviewer&apos;s name and
- Upload the refined patch with no r?, but with cq+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630004</commentid>
    <comment_count>9</comment_count>
      <attachid>143202</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-21 23:56:47 -0700</bug_when>
    <thetext>Created attachment 143202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630500</commentid>
    <comment_count>10</comment_count>
      <attachid>143202</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-22 10:16:29 -0700</bug_when>
    <thetext>Comment on attachment 143202
Patch

As long as you are not a committer, you could have just set cq? on the previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630531</commentid>
    <comment_count>11</comment_count>
      <attachid>143202</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-22 10:44:28 -0700</bug_when>
    <thetext>Comment on attachment 143202
Patch

Clearing flags on attachment: 143202

Committed r118001: &lt;http://trac.webkit.org/changeset/118001&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630532</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-22 10:44:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630811</commentid>
    <comment_count>13</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-05-22 15:16:16 -0700</bug_when>
    <thetext>You updated keyDown in DRT, but forgot about WTR:

http://build.webkit.org/results/Lion%20Release%20(WebKit2%20Tests)/r118030%20(7431)/fast/events/keydown-leftright-keys-pretty-diff.html

I have a fix for this, but please try to remember about WTR in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630822</commentid>
    <comment_count>14</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-05-22 15:23:39 -0700</bug_when>
    <thetext>Fixed WTR in http://trac.webkit.org/changeset/118064.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637994</commentid>
    <comment_count>15</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-05-30 21:57:52 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Fixed WTR in http://trac.webkit.org/changeset/118064.

Thank you for fixing WTR, Jessie.
I didn&apos;t notice that I had to modify WTR. 

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638451</commentid>
    <comment_count>16</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-05-31 08:33:51 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; Fixed WTR in http://trac.webkit.org/changeset/118064.
&gt; 
&gt; Thank you for fixing WTR, Jessie.
&gt; I didn&apos;t notice that I had to modify WTR. 
&gt; 
&gt; Best regards,
&gt; Takashi Sakamoto

Windows also needed fixing: http://trac.webkit.org/changeset/118540</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655275</commentid>
    <comment_count>17</comment_count>
    <who name="Yusuke Sato">yusukes</who>
    <bug_when>2012-06-21 23:57:56 -0700</bug_when>
    <thetext>It seems that on Chrome for Windows (canary channel) the location property is still always zero.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655292</commentid>
    <comment_count>18</comment_count>
    <who name="Yusuke Sato">yusukes</who>
    <bug_when>2012-06-22 00:28:04 -0700</bug_when>
    <thetext>Looks like you need to fix WebInputEventFactory::keyboardEvent() in Source/WebKit/chromium/src/win/WebInputEventFactory.cpp too:

WebKeyboardEvent WebInputEventFactory::keyboardEvent(HWND hwnd, UINT message,
                                                     WPARAM wparam, LPARAM lparam)
{
    WebKeyboardEvent result;

    // TODO(pkasting): http://b/1117926 Are we guaranteed that the message that  
    // GetMessageTime() refers to is the same one that we&apos;re passed in? Perhaps  
    // one of the construction parameters should be the time passed by the       
    // caller, who would know for sure.                                          
    result.timeStampSeconds = GetMessageTime() / 1000.0;

    result.windowsKeyCode = static_cast&lt;int&gt;(wparam);  // &lt;--------------- HERE</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142419</attachid>
            <date>2012-05-16 23:10:37 -0700</date>
            <delta_ts>2012-05-17 23:07:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86694-20120517151035.patch</filename>
            <type>text/plain</type>
            <size>17824</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3Mzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGYwMDVkNjc5ZTQyZmZk
NzE3NmJkZDEyMmUxYjVhZDBiODc3ZTUwNC4uODhjOGRmZTFmMDI2NTdkNTlkNGIxZjQyMjZmNzli
ZDJlMGNlMmMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTA1LTE2ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRE9N
X0tFWV9MT0NBVElPTl9MRUZUIGFuZCBSSUdIVCBvZiBLZXlib2FyZEV2ZW50J3MgbG9jYXRpb24g
cHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg2Njk0CisKKyAgICAgICAgQXMgS2V5Ym9hcmRFdmVudCBmb3IgbGVmdC9yaWdodCBsb2NhdGlv
biBrZXksIGUuZy4gbGVmdC1jb250cm9sLAorICAgICAgICByaWdodC1jb250cm9sLCBwcm92aWRl
cyBET01fS0VZX0xPQ0FUSU9OX1NUQU5EQVJEIGFzIGtleUxvY2F0aW9uIHByb3BlcnR5LAorICAg
ICAgICBtb2RpZmllZCBLZXlDb2RlQ29udmVyc2lvbiB0byBtYWtlIFBsYXRmb3JtS2V5Ym9hcmRF
dmVudAorICAgICAgICBwcm92aWRlIHZpcnR1YWwga2V5Y29kZXMgd2l0aCBsb2NhdGlvbiBpbmZv
cm1hdGlvbiwgZS5nLiBWS19MQ09OVFJPTCBvcgorICAgICAgICBWS19SQ09OVFJPTCwgYW5kIG1v
ZGlmaWVkIEtleWJvYXJkRXZlbnQgdG8gZ2VuZXJhdGUgbG9jYXRpb24gaW5mb3JtYXRpb24KKyAg
ICAgICAgZnJvbSB0aGUgdmlydHVhbCBrZXljb2RlcywgZS5nLiBnZW5yYXRpbmcgRE9NX0tFWV9M
T0NBVElPTl9MRUZUIGZvcgorICAgICAgICBWS19MQ09OVFJPTC4gS2V5Ym9hcmRFdmVudCBhbHNv
IHJlbW92ZXMgbG9jYXRpb24gaW5mb3JtYXRpb24gZnJvbQorICAgICAgICB0aGUgdmlydHVhbCBr
ZXljb2RlcywgZS5nLiBnZW5yYXRpbmcgVktfQ09OVFJPTCBmb3IgVktfTENPTlRST0wuCisgICAg
ICAgIFRoZSBsb2NhdGlvbiBwcm9wZXJ0eSBpcyBkZWZpbmVkIGluIHRoZSBXM0MgRE9NMyBzcGVj
aWZpY2F0aW9uOgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVu
dHMvI2V2ZW50cy1rZXlib2FyZGV2ZW50cworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL2tleWRvd24tbGVmdHJpZ2h0LWtl
eXMuaHRtbAorCisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Z2V0V2luZG93c1ZpcnR1YWxDb2RlV2l0aG91dExvY2F0aW9uKToKKyAgICAgICAgQWRk
ZWQgYSBmdW5jdGlvbiB3aGljaCByZW1vdmVzIGxvY2F0aW9uIGluZm9ybWF0aW9uIGZyb20gYSBn
aXZlbgorICAgICAgICBrZXljb2RlLiBGb3IgZXhhbXBsZSwgd2hlbiBWS19MQ09OVFJPTCBpcyBn
aXZlbiwgcmV0dXJucyBWS19DT05UUk9MLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpnZXRLZXlMb2NhdGlvbik6CisgICAgICAgIEFkZGVkIGEgZnVuY3Rpb24gd2hpY2gg
cHJvdmlkZXMgbG9jYXRpb24gaW5mb3JtYXRpb24gZnJvbSBhIGdpdmVuCisgICAgICAgIGtleWNv
ZGUuIEZvciBleGFtcGxlLCB3aGVuIFZLX0xDT05UUk9MIGlzIGdpdmVuLAorICAgICAgICByZXR1
cm5zIERPTV9LRVlfTE9DQVRJT05fTEVGVC4KKyAgICAgICAgKFdlYkNvcmU6OktleWJvYXJkRXZl
bnQ6OktleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudDo6a2V5
Q29kZSk6CisgICAgICAgIE1vZGlmaWVkIHRvIHVzZSB0aGUgYWJvdmUgdHdvIGZ1bmN0aW9ucyB0
byBpbml0aWFsaXplIGtleWNvZGUgcHJvcGVydHkKKyAgICAgICAgYW5kIGtleWxvY2F0aW9uIHBy
b3BlcnR5LgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0tleUNvZGVDb252ZXJzaW9uQW5k
cm9pZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9LZXlDb2RlQ29udmVyc2lvbkd0ay5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjp3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6d2luZG93
c0tleUNvZGVGb3JLZXlDb2RlKToKKyAgICAgICAgTW9kaWZpZWQgdGhlc2Uga2V5Y29kZSBjb252
ZXJzaW9ucyB0byByZXR1cm4ga2V5Y29kZXMgd2l0aCBsb2NhdGlvbgorICAgICAgICBpbmZvcm1h
dGlvbiwgZS5nLiBtb2RpZmllZCBrZXljb2RlIGNvbnZlcnNpb25zIHJldHVybnMgVktfTENPTlRS
T0wKKyAgICAgICAgZm9yIGxlZnQgY29udHJvbC4KKwogMjAxMi0wNS0xNiAgSGF5YXRvIEl0byAg
PGhheWF0b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IGEgU2hhZG93IERPTSBz
cGVjJ3Mgc2VjdGlvbiA2ICdFdmVudHMnLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0tleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3Bw
CmluZGV4IGRkZDA3YThkY2IyNDZhMjY3MDllNGViOGQ3Mjk1MmNjOWJhM2QyMGUuLjA3YThlZjg1
YjMwM2RmYTM0NmYxZGMzMTllYjViMzhjZjFhOGQ5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9h
cmRFdmVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5j
bHVkZSAiV2luZG93c0tleWJvYXJkQ29kZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC01Myw2ICs1NCw0NCBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlRm9yS2V5Ym9hcmRFdmVudFR5cGUoUGxhdGZvcm1FdmVudDo6VAogICAgIHJldHVybiBldmVu
dE5hbWVzKCkua2V5ZG93bkV2ZW50OwogfQogCitzdGF0aWMgaW5saW5lIGludCBnZXRXaW5kb3dz
VmlydHVhbENvZGVXaXRob3V0TG9jYXRpb24oaW50IGtleWNvZGUpCit7CisgICAgc3dpdGNoIChr
ZXljb2RlKSB7CisgICAgY2FzZSBWS19MQ09OVFJPTDoKKyAgICBjYXNlIFZLX1JDT05UUk9MOgor
ICAgICAgICByZXR1cm4gVktfQ09OVFJPTDsKKyAgICBjYXNlIFZLX0xTSElGVDoKKyAgICBjYXNl
IFZLX1JTSElGVDoKKyAgICAgICAgcmV0dXJuIFZLX1NISUZUOworICAgIGNhc2UgVktfTE1FTlU6
CisgICAgY2FzZSBWS19STUVOVToKKyAgICAgICAgcmV0dXJuIFZLX01FTlU7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgcmV0dXJuIGtleWNvZGU7CisgICAgfQorfQorCitzdGF0aWMgaW5saW5lIHVu
c2lnbmVkIGdldEtleUxvY2F0aW9uKGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYga2V5KQor
eworICAgIGlmIChrZXkuaXNLZXlwYWQoKSkKKyAgICAgICAgcmV0dXJuIEtleWJvYXJkRXZlbnQ6
OkRPTV9LRVlfTE9DQVRJT05fTlVNUEFEOworCisgICAgc3dpdGNoIChrZXkud2luZG93c1ZpcnR1
YWxLZXlDb2RlKCkpIHsKKyAgICBjYXNlIFZLX0xDT05UUk9MOgorICAgIGNhc2UgVktfTFNISUZU
OgorICAgIGNhc2UgVktfTE1FTlU6CisgICAgY2FzZSBWS19MV0lOOgorICAgICAgICByZXR1cm4g
S2V5Ym9hcmRFdmVudDo6RE9NX0tFWV9MT0NBVElPTl9MRUZUOworICAgIGNhc2UgVktfUkNPTlRS
T0w6CisgICAgY2FzZSBWS19SU0hJRlQ6CisgICAgY2FzZSBWS19STUVOVToKKyAgICBjYXNlIFZL
X1JXSU46CisgICAgICAgIHJldHVybiBLZXlib2FyZEV2ZW50OjpET01fS0VZX0xPQ0FUSU9OX1JJ
R0hUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBLZXlib2FyZEV2ZW50OjpET01fS0VZ
X0xPQ0FUSU9OX1NUQU5EQVJEOworICAgIH0KK30KKwogS2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRF
dmVudCgpCiAgICAgOiBtX2tleUxvY2F0aW9uKERPTV9LRVlfTE9DQVRJT05fU1RBTkRBUkQpCiAg
ICAgLCBtX2FsdEdyYXBoS2V5KGZhbHNlKQpAQCAtNjQsNyArMTAzLDcgQEAgS2V5Ym9hcmRFdmVu
dDo6S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgQWJzdHJh
Y3RWaWV3KiB2aWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgdHJ1ZSwgdmlldywg
MCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKSwga2V5Lm1ldGFL
ZXkoKSkKICAgICAsIG1fa2V5RXZlbnQoYWRvcHRQdHIobmV3IFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dChrZXkpKSkKICAgICAsIG1fa2V5SWRlbnRpZmllcihrZXkua2V5SWRlbnRpZmllcigpKQotICAg
ICwgbV9rZXlMb2NhdGlvbihrZXkuaXNLZXlwYWQoKSA/IERPTV9LRVlfTE9DQVRJT05fTlVNUEFE
IDogRE9NX0tFWV9MT0NBVElPTl9TVEFOREFSRCkgLy8gRklYTUU6IGRpZmZlcmVudGlhdGUgcmln
aHQvbGVmdCwgdG9vCisgICAgLCBtX2tleUxvY2F0aW9uKGdldEtleUxvY2F0aW9uKGtleSkpCiAg
ICAgLCBtX2FsdEdyYXBoS2V5KGZhbHNlKQogewogfQpAQCAtMTIyLDcgKzE2MSw4IEBAIGludCBL
ZXlib2FyZEV2ZW50OjprZXlDb2RlKCkgY29uc3QKICAgICBpZiAoIW1fa2V5RXZlbnQpCiAgICAg
ICAgIHJldHVybiAwOwogICAgIGlmICh0eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVu
dCB8fCB0eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXVwRXZlbnQpCi0gICAgICAgIHJldHVybiBt
X2tleUV2ZW50LT53aW5kb3dzVmlydHVhbEtleUNvZGUoKTsKKyAgICAgICAgcmV0dXJuIGdldFdp
bmRvd3NWaXJ0dWFsQ29kZVdpdGhvdXRMb2NhdGlvbihtX2tleUV2ZW50LT53aW5kb3dzVmlydHVh
bEtleUNvZGUoKSk7CisKICAgICByZXR1cm4gY2hhckNvZGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb25BbmRyb2lk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0tleUNvZGVDb252ZXJzaW9u
QW5kcm9pZC5jcHAKaW5kZXggNWNmOTI4YTg4YjY3NjFjMDdkYjdmNjEwNjczN2VhMDc0NDVhNWU0
MC4uZmJjNTdiMjhmMjE0NTMwNTQ5OTU2MzM0ZDVhMTA2MWM2Yzc4NTc4ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb25BbmRyb2lk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9LZXlDb2RlQ29udmVy
c2lvbkFuZHJvaWQuY3BwCkBAIC05Niw4ICs5Niw5IEBAIGludCB3aW5kb3dzS2V5Q29kZUZvcktl
eUV2ZW50KHVuc2lnbmVkIGludCBrZXlDb2RlKQogICAgIGNhc2UgQUtFWUNPREVfRU5URVI6CiAg
ICAgICAgIHJldHVybiBWS0VZX1JFVFVSTjsKICAgICBjYXNlIEFLRVlDT0RFX1NISUZUX0xFRlQ6
CisgICAgICAgIHJldHVybiBWS0VZX0xTSElGVDsKICAgICBjYXNlIEFLRVlDT0RFX1NISUZUX1JJ
R0hUOgotICAgICAgICByZXR1cm4gVktFWV9TSElGVDsKKyAgICAgICAgcmV0dXJuIFZLRVlfUlNI
SUZUOwogICAgIC8vIEJhY2sgd2lsbCBzZXJ2ZSBhcyBlc2NhcGUsIGFsdGhvdWdoIHdlIG1heSBu
b3QgaGF2ZSBhY2Nlc3MgdG8gaXQuCiAgICAgY2FzZSBBS0VZQ09ERV9CQUNLOgogICAgICAgICBy
ZXR1cm4gVktFWV9FU0NBUEU7CkBAIC0yMjcsOCArMjI4LDkgQEAgaW50IHdpbmRvd3NLZXlDb2Rl
Rm9yS2V5RXZlbnQodW5zaWduZWQgaW50IGtleUNvZGUpCiAgICAgY2FzZSBBS0VZQ09ERV9DQUxM
OgogICAgICAgICByZXR1cm4gVktFWV9FTkQ7CiAgICAgY2FzZSBBS0VZQ09ERV9BTFRfTEVGVDoK
KyAgICAgICAgcmV0dXJuIFZLRVlfTE1FTlU7CiAgICAgY2FzZSBBS0VZQ09ERV9BTFRfUklHSFQ6
Ci0gICAgICAgIHJldHVybiBWS0VZX01FTlU7CisgICAgICAgIHJldHVybiBWS0VZX1JNRU5VOwog
ICAgIGNhc2UgQUtFWUNPREVfR1JBVkU6CiAgICAgICAgIHJldHVybiBWS0VZX09FTV8zOwogICAg
IGNhc2UgQUtFWUNPREVfQVBPU1RST1BIRToKQEAgLTI0NCw4ICsyNDYsOSBAQCBpbnQgd2luZG93
c0tleUNvZGVGb3JLZXlFdmVudCh1bnNpZ25lZCBpbnQga2V5Q29kZSkKICAgICBjYXNlIEFLRVlD
T0RFX0ZPUldBUkRfREVMOgogICAgICAgICByZXR1cm4gVktFWV9ERUxFVEU7CiAgICAgY2FzZSBB
S0VZQ09ERV9DVFJMX0xFRlQ6CisgICAgICAgIHJldHVybiBWS0VZX0xDT05UUk9MOwogICAgIGNh
c2UgQUtFWUNPREVfQ1RSTF9SSUdIVDoKLSAgICAgICAgcmV0dXJuIFZLRVlfQ09OVFJPTDsKKyAg
ICAgICAgcmV0dXJuIFZLRVlfUkNPTlRST0w7CiAgICAgY2FzZSBBS0VZQ09ERV9DQVBTX0xPQ0s6
CiAgICAgICAgIHJldHVybiBWS0VZX0NBUElUQUw7CiAgICAgY2FzZSBBS0VZQ09ERV9TQ1JPTExf
TE9DSzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0tleUNv
ZGVDb252ZXJzaW9uR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0tl
eUNvZGVDb252ZXJzaW9uR3RrLmNwcAppbmRleCBhN2Y0MjQ1ODc4YTc0MjBmMjJlMzE4YjRiMzE5
MTAxNmE3NzA1YTdiLi41NzUzOTJmYTc5ZThkZDM2YzM2NjA2MjZlNWJjZmMyYmRhOGE0ZjFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9LZXlDb2RlQ29udmVy
c2lvbkd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vS2V5Q29k
ZUNvbnZlcnNpb25HdGsuY3BwCkBAIC0xMDIsMTYgKzEwMiwxOSBAQCBpbnQgd2luZG93c0tleUNv
ZGVGb3JLZXlFdmVudCh1bnNpZ25lZCBrZXljb2RlKQogICAgIGNhc2UgR0RLX1JldHVybjoKICAg
ICAgICAgcmV0dXJuIFZLRVlfUkVUVVJOOyAvLygwRCkgUmV0dXJuIGtleQogICAgIGNhc2UgR0RL
X1NoaWZ0X0w6CisgICAgICAgIHJldHVybiBWS0VZX0xTSElGVDsgLy8gKEEwKSBMZWZ0IFNISUZU
IGtleQogICAgIGNhc2UgR0RLX1NoaWZ0X1I6Ci0gICAgICAgIHJldHVybiBWS0VZX1NISUZUOyAv
LyAoMTApIFNISUZUIGtleQorICAgICAgICByZXR1cm4gVktFWV9SU0hJRlQ7IC8vIChBMSkgUmln
aHQgU0hJRlQga2V5CiAgICAgY2FzZSBHREtfQ29udHJvbF9MOgorICAgICAgICByZXR1cm4gVktF
WV9MQ09OVFJPTDsgLy8gKEEyKSBMZWZ0IENUUkwga2V5CiAgICAgY2FzZSBHREtfQ29udHJvbF9S
OgotICAgICAgICByZXR1cm4gVktFWV9DT05UUk9MOyAvLyAoMTEpIENUUkwga2V5CisgICAgICAg
IHJldHVybiBWS0VZX1JDT05UUk9MOyAvLyAoQTMpIFJpZ2h0IENUUkwga2V5CiAgICAgY2FzZSBH
REtfTWVudToKICAgICAgICAgcmV0dXJuIFZLRVlfQVBQUzsgIC8vICg1RCkgQXBwbGljYXRpb25z
IGtleSAoTmF0dXJhbCBrZXlib2FyZCkKICAgICBjYXNlIEdES19BbHRfTDoKKyAgICAgICAgcmV0
dXJuIFZLRVlfTE1FTlU7IC8vIChBNCkgTGVmdCBBTFQga2V5CiAgICAgY2FzZSBHREtfQWx0X1I6
Ci0gICAgICAgIHJldHVybiBWS0VZX01FTlU7IC8vICgxMikgQUxUIGtleQorICAgICAgICByZXR1
cm4gVktFWV9STUVOVTsgLy8gKEE1KSBSaWdodCBBTFQga2V5CiAKICAgICBjYXNlIEdES19QYXVz
ZToKICAgICAgICAgcmV0dXJuIFZLRVlfUEFVU0U7IC8vICgxMykgUEFVU0Uga2V5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQppbmRleCAyN2IwNGFl
Y2ViZWY4ZjA4M2U0YjhiMmU4NWUyYzk4NjlkZjYxNjA5Li40ZDFlNDFhOWVkNmRjNjc1MThjNWE5
YWRhNGY3ZGJiOTFmMjdhNGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9LZXlFdmVudENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L0tleUV2ZW50Q29jb2EubW0KQEAgLTM4OCwxMyArMzg4LDEzIEBAIGludCB3aW5kb3dzS2V5Q29k
ZUZvcktleUNvZGUodWludDE2X3Qga2V5Q29kZSkKICAgICAgICAgLyogMHgzNSAqLyBWS19FU0NB
UEUsCiAgICAgICAgIC8qIDB4MzYgKi8gVktfQVBQUywgLy8gUmlnaHQgQ29tbWFuZAogICAgICAg
ICAvKiAweDM3ICovIFZLX0xXSU4sIC8vIExlZnQgQ29tbWFuZAotICAgICAgICAvKiAweDM4ICov
IFZLX1NISUZULCAvLyBMZWZ0IFNoaWZ0CisgICAgICAgIC8qIDB4MzggKi8gVktfTFNISUZULCAv
LyBMZWZ0IFNoaWZ0CiAgICAgICAgIC8qIDB4MzkgKi8gVktfQ0FQSVRBTCwgLy8gQ2FwcyBMb2Nr
Ci0gICAgICAgIC8qIDB4M0EgKi8gVktfTUVOVSwgLy8gTGVmdCBPcHRpb24KLSAgICAgICAgLyog
MHgzQiAqLyBWS19DT05UUk9MLCAvLyBMZWZ0IEN0cmwKLSAgICAgICAgLyogMHgzQyAqLyBWS19T
SElGVCwgLy8gUmlnaHQgU2hpZnQKLSAgICAgICAgLyogMHgzRCAqLyBWS19NRU5VLCAvLyBSaWdo
dCBPcHRpb24KLSAgICAgICAgLyogMHgzRSAqLyBWS19DT05UUk9MLCAvLyBSaWdodCBDdHJsCisg
ICAgICAgIC8qIDB4M0EgKi8gVktfTE1FTlUsIC8vIExlZnQgT3B0aW9uCisgICAgICAgIC8qIDB4
M0IgKi8gVktfTENPTlRST0wsIC8vIExlZnQgQ3RybAorICAgICAgICAvKiAweDNDICovIFZLX1JT
SElGVCwgLy8gUmlnaHQgU2hpZnQKKyAgICAgICAgLyogMHgzRCAqLyBWS19STUVOVSwgLy8gUmln
aHQgT3B0aW9uCisgICAgICAgIC8qIDB4M0UgKi8gVktfUkNPTlRST0wsIC8vIFJpZ2h0IEN0cmwK
ICAgICAgICAgLyogMHgzRiAqLyAwLCAvLyBmbgogICAgICAgICAvKiAweDQwICovIFZLX0YxNywK
ICAgICAgICAgLyogMHg0MSAqLyBWS19ERUNJTUFMLCAvLyBOdW0gUGFkIC4KZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZDQ0ZmUwMmJhMDlmZmM5
MDhlOTJhN2VmNzQwODNhM2RiNmQ5NDFmLi4yY2E4ZjllMTRlZTBmNDA4Y2VlMTgxZTc1MzIzOGRi
MWRkNWYzYTIxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDUtMTYgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNh
a0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBET01fS0VZX0xPQ0FUSU9OX0xFRlQg
YW5kIFJJR0hUIG9mIEtleWJvYXJkRXZlbnQncyBsb2NhdGlvbiBwcm9wZXJ0eQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY2OTQKKworICAgICAgICBN
b2RpZnkga2V5RG93biB0byBjcmVhdGUgbGVmdC0gYW5kIHJpZ2h0LSBjb250cm9sLCBzaGlmdCwg
YW5kIG1lbnUKKyAgICAgICAga2V5ZXZlbnQgZm9yIGEgdGVzdCB0byBjaGVjayB0aGF0IGtleUxv
Y2F0aW9uIHByb3BlcnR5IGNhbiBoYXZlCisgICAgICAgIERPTV9LRVlfTE9DQVRJT05fTEVGVCBm
b3IgbGVmdC1jb250cm9sLCBzaGlmdCwgYW5kIG1lbnUsIGFuZAorICAgICAgICBET01fS0VZX0xP
Q0FUSU9OX1JJR0hUIGZvciByaWdodC1jb250cm9sLCBzaGlmdCwgYW5kIG1lbnUuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9FdmVudFNlbmRlci5jcHA6CisgICAgICAgIChFdmVudFNlbmRlcjo6a2V5RG93
bik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIu
bW06CisgICAgICAgICgtW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIga2V5RG93bjp3aXRoTW9kaWZp
ZXJzOndpdGhMb2NhdGlvbjpdKToKKwogMjAxMi0wNS0xNiAgS2VudGFybyBIYXJhICA8aGFyYWtl
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1BlcmZvcm1hbmNlIHRlc3RdIFN1cHBvcnQgImRl
c2NyaXB0aW9uIiBmb3IgUGVyZlRlc3RSdW5uZXIucnVuIGFuZCBQZXJmVGVzdFJ1bm5lci5ydW5Q
ZXJTZWNvbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0V2ZW50
U2VuZGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0V2ZW50U2VuZGVyLmNw
cAppbmRleCA3ZGRhYWZiZTZmMmQ2MmFlMzFjMWY4ODg2OThiN2JlNmMzYjJiYmQ4Li5hZTVmM2Fj
YTU4M2MzMjRiN2E5N2ViZDI5NDYzYjc3MmFlOGIxZmU3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVudFNlbmRlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vRXZlbnRTZW5kZXIuY3BwCkBAIC01NTcsNiArNTU3LDI0IEBAIHZvaWQg
RXZlbnRTZW5kZXI6OmtleURvd24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENw
cFZhcmlhbnQqIHJlc3VsdCkKICAgICBlbHNlIGlmICgibWVudSIgPT0gY29kZVN0cikKICAgICAg
ICAgLy8gRklYTUU6IENoYW5nZSB0aGlzIHRvIHdlYmtpdF9zdXBwb3J0OjpWS0VZX0FQUFMuCiAg
ICAgICAgIGNvZGUgPSAweDVEOworICAgIGVsc2UgaWYgKCJsZWZ0Q29udHJvbCIgPT0gY29kZVN0
cikKKyAgICAgICAgLy8gRklYTUU6IENoYW5nZSB0aGlzIHRvIHdlYmtpdF9zdXBwb3J0OjpWS0VZ
X0xDT05UUk9MLgorICAgICAgICBjb2RlID0gMHhBMjsKKyAgICBlbHNlIGlmICgicmlnaHRDb250
cm9sIiA9PSBjb2RlU3RyKQorICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0
X3N1cHBvcnQ6OlZLRVlfUkNPTlRST0wuCisgICAgICAgIGNvZGUgPSAweEEzOworICAgIGVsc2Ug
aWYgKCJsZWZ0U2hpZnQiID09IGNvZGVTdHIpCisgICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhp
cyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9MU0hJRlQuCisgICAgICAgIGNvZGUgPSAweEEwOwor
ICAgIGVsc2UgaWYgKCJyaWdodFNoaWZ0IiA9PSBjb2RlU3RyKQorICAgICAgICAvLyBGSVhNRTog
Q2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfUlNISUZULgorICAgICAgICBjb2Rl
ID0gMHhBMTsKKyAgICBlbHNlIGlmICgibGVmdE1lbnUiID09IGNvZGVTdHIpCisgICAgICAgIC8v
IEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9MTUVOVS4KKyAgICAg
ICAgY29kZSA9IDB4QTQ7CisgICAgZWxzZSBpZiAoInJpZ2h0TWVudSIgPT0gY29kZVN0cikKKyAg
ICAgICAgLy8gRklYTUU6IENoYW5nZSB0aGlzIHRvIHdlYmtpdF9zdXBwb3J0OjpWS0VZX1JNRU5V
LgorICAgICAgICBjb2RlID0gMHhBNTsKICAgICBlbHNlIHsKICAgICAgICAgLy8gQ29tcGFyZSB0
aGUgaW5wdXQgc3RyaW5nIHdpdGggdGhlIGZ1bmN0aW9uLWtleSBuYW1lcyBkZWZpbmVkIGJ5IHRo
ZQogICAgICAgICAvLyBET00gc3BlYyAoaS5lLiAiRjEiLC4uLiwiRjI0IikuIElmIHRoZSBpbnB1
dCBzdHJpbmcgaXMgYSBmdW5jdGlvbi1rZXkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0KaW5kZXggNzZhYzY5MjY3NDE5MmU1NTFlOTll
OTJkYjUxODFmZmQ4ZDhmYmU2Ny4uODJiYWQ4YzljYzhjYzVhNGE1YTBhYTJjNGQ5ZmFjMWUyMDYx
OTRjNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGluZ0Nv
bnRyb2xsZXIubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGluZ0Nv
bnRyb2xsZXIubW0KQEAgLTYyMSw2ICs2MjEsMzAgQEAgc3RhdGljIGludCBidWlsZE1vZGlmaWVy
RmxhZ3MoY29uc3QgV2ViU2NyaXB0T2JqZWN0KiBtb2RpZmllcnMpCiAgICAgICAgIGNvbnN0IHVu
aWNoYXIgY2ggPSAweDA0MzA7CiAgICAgICAgIGV2ZW50Q2hhcmFjdGVyID0gW05TU3RyaW5nIHN0
cmluZ1dpdGhDaGFyYWN0ZXJzOiZjaCBsZW5ndGg6MV07CiAgICAgICAgIGtleUNvZGUgPSAweDM7
IC8vIFNoYXJlcyBrZXkgd2l0aCAiRiIgb24gUnVzc2lhbiBsYXlvdXQuCisgICAgfSBlbHNlIGlm
IChbY2hhcmFjdGVyIGlzRXF1YWxUb1N0cmluZzpAImxlZnRDb250cm9sIl0pIHsKKyAgICAgICAg
Y29uc3QgdW5pY2hhciBjaCA9IDB4RkZFMzsKKyAgICAgICAgZXZlbnRDaGFyYWN0ZXIgPSBbTlNT
dHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6JmNoIGxlbmd0aDoxXTsKKyAgICAgICAga2V5Q29k
ZSA9IDB4M0I7CisgICAgfSBlbHNlIGlmIChbY2hhcmFjdGVyIGlzRXF1YWxUb1N0cmluZzpAImxl
ZnRTaGlmdCJdKSB7CisgICAgICAgIGNvbnN0IHVuaWNoYXIgY2ggPSAweEZGRTE7CisgICAgICAg
IGV2ZW50Q2hhcmFjdGVyID0gW05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZjaCBsZW5n
dGg6MV07CisgICAgICAgIGtleUNvZGUgPSAweDM4OworICAgIH0gZWxzZSBpZiAoW2NoYXJhY3Rl
ciBpc0VxdWFsVG9TdHJpbmc6QCJsZWZ0TWVudSJdKSB7CisgICAgICAgIGNvbnN0IHVuaWNoYXIg
Y2ggPSAweEZGRTc7CisgICAgICAgIGV2ZW50Q2hhcmFjdGVyID0gW05TU3RyaW5nIHN0cmluZ1dp
dGhDaGFyYWN0ZXJzOiZjaCBsZW5ndGg6MV07CisgICAgICAgIGtleUNvZGUgPSAweDNBOworICAg
IH0gZWxzZSBpZiAoW2NoYXJhY3RlciBpc0VxdWFsVG9TdHJpbmc6QCJyaWdodENvbnRyb2wiXSkg
eworICAgICAgICBjb25zdCB1bmljaGFyIGNoID0gMHhGRkU0OworICAgICAgICBldmVudENoYXJh
Y3RlciA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVyczomY2ggbGVuZ3RoOjFdOworICAg
ICAgICBrZXlDb2RlID0gMHgzRTsKKyAgICB9IGVsc2UgaWYgKFtjaGFyYWN0ZXIgaXNFcXVhbFRv
U3RyaW5nOkAicmlnaHRTaGlmdCJdKSB7CisgICAgICAgIGNvbnN0IHVuaWNoYXIgY2ggPSAweEZG
RTI7CisgICAgICAgIGV2ZW50Q2hhcmFjdGVyID0gW05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0
ZXJzOiZjaCBsZW5ndGg6MV07CisgICAgICAgIGtleUNvZGUgPSAweDNDOworICAgIH0gZWxzZSBp
ZiAoW2NoYXJhY3RlciBpc0VxdWFsVG9TdHJpbmc6QCJyaWdodE1lbnUiXSkgeworICAgICAgICBj
b25zdCB1bmljaGFyIGNoID0gMHhGRkU4OworICAgICAgICBldmVudENoYXJhY3RlciA9IFtOU1N0
cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVyczomY2ggbGVuZ3RoOjFdOworICAgICAgICBrZXlDb2Rl
ID0gMHgzRDsKICAgICB9CiAKICAgICAvLyBDb21wYXJlIHRoZSBpbnB1dCBzdHJpbmcgd2l0aCB0
aGUgZnVuY3Rpb24ta2V5IG5hbWVzIGRlZmluZWQgYnkgdGhlIERPTSBzcGVjIChpLmUuICJGMSIs
Li4uLCJGMjQiKS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBmNTVkNjY4YWRkZTdkYjg5NmM2MzlhNzUyZTRlY2RmNTI0Yzk1
NDE3Li4xOTE3OTkyZjdhMGEzYjA3MWVhODBkYTZkYWI2YzU1OGQyYzI0MDI1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTItMDUtMTYgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIEltcGxlbWVudCBET01fS0VZX0xPQ0FUSU9OX0xFRlQgYW5kIFJJR0hU
IG9mIEtleWJvYXJkRXZlbnQncyBsb2NhdGlvbiBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY2OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL2tleWRvd24tbGVmdHJp
Z2h0LWtleXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9rZXlk
b3duLWxlZnRyaWdodC1rZXlzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA1LTE2ICBLaWhvbmcgS3dv
biAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEZpeCBidWcgbnVt
YmVyIGZvciB2aWRlby1jb250cm9scy1kcmFnLmh0bWwgaW4gdGhlIHRlc3RfZXhwZWN0YXRpb24u
dHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9rZXlkb3duLWxlZnRyaWdo
dC1rZXlzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2tleWRvd24tbGVm
dHJpZ2h0LWtleXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyMDNiZjYxYTcyZWJjYzliOTJk
YTllYTRiMjE3YWM4YzQyMjE1NzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9rZXlkb3duLWxlZnRyaWdodC1rZXlzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4
IEBACisKK1RoaXMgdGVzdHMga2V5Ym9hcmQgZXZlbnRzIHdpdGggS2V5TG9jYXRpb25Db2RlIGFy
Z3VtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBsYXN0S2V5Ym9h
cmRFdmVudC50eXBlIGlzICJrZXlkb3duIgorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlDb2Rl
IGlzIDE2CitQQVNTIGxhc3RLZXlib2FyZEV2ZW50LmtleUxvY2F0aW9uIGlzIDEKK1BBU1MgbGFz
dEtleWJvYXJkRXZlbnQudHlwZSBpcyAia2V5ZG93biIKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQu
a2V5Q29kZSBpcyAxNworUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlMb2NhdGlvbiBpcyAxCitQ
QVNTIGxhc3RLZXlib2FyZEV2ZW50LnR5cGUgaXMgImtleWRvd24iCitQQVNTIGxhc3RLZXlib2Fy
ZEV2ZW50LmtleUNvZGUgaXMgMTgKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQua2V5TG9jYXRpb24g
aXMgMQorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC50eXBlIGlzICJrZXlkb3duIgorUEFTUyBsYXN0
S2V5Ym9hcmRFdmVudC5rZXlDb2RlIGlzIDE2CitQQVNTIGxhc3RLZXlib2FyZEV2ZW50LmtleUxv
Y2F0aW9uIGlzIDIKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQudHlwZSBpcyAia2V5ZG93biIKK1BB
U1MgbGFzdEtleWJvYXJkRXZlbnQua2V5Q29kZSBpcyAxNworUEFTUyBsYXN0S2V5Ym9hcmRFdmVu
dC5rZXlMb2NhdGlvbiBpcyAyCitQQVNTIGxhc3RLZXlib2FyZEV2ZW50LnR5cGUgaXMgImtleWRv
d24iCitQQVNTIGxhc3RLZXlib2FyZEV2ZW50LmtleUNvZGUgaXMgMTgKK1BBU1MgbGFzdEtleWJv
YXJkRXZlbnQua2V5TG9jYXRpb24gaXMgMgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2tleWRvd24tbGVmdHJpZ2h0LWtleXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2tl
eWRvd24tbGVmdHJpZ2h0LWtleXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjEwN2M0YmMxNWNmNWMwNzNk
MjQyYzFlODE3NGVkZDU1MWFlYzk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMva2V5ZG93bi1sZWZ0cmlnaHQta2V5cy5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGtl
eWJvYXJkIGV2ZW50cyB3aXRoIEtleUxvY2F0aW9uQ29kZSBhcmd1bWVudC4iKTsKKwordmFyIGxh
c3RLZXlib2FyZEV2ZW50OwordmFyIFZLX1NISUZUID0gMTY7Cit2YXIgVktfQ09OVFJPTCA9IDE3
OwordmFyIFZLX01FTlUgPSAxODsKK3ZhciBLRVlfTE9DQVRJT05fTEVGVCA9IDE7Cit2YXIgS0VZ
X0xPQ0FUSU9OX1JJR0hUID0gMjsKKworZnVuY3Rpb24gcmVjb3JkS2V5RXZlbnQoZXYpIHsKKyAg
ICBldiA9IGV2IHx8IGV2ZW50OworICAgIGV2LmtleUNvZGUgPSAoZXYud2hpY2ggfHwgZXYua2V5
Q29kZSk7CisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICBsYXN0S2V5Ym9h
cmRFdmVudCA9IGV2OworICAgIH0gZWxzZSB7CisgICAgICAgIGRlYnVnKCdUeXBlPScgKyBldi50
eXBlICsgJywnICsKKyAgICAgICAgICAgICAgJ2tleUNvZGU9JyArIGV2LmtleUNvZGUgKyAnLCcg
KworICAgICAgICAgICAgICAnY3RybEtleT0nICsgZXYuY3RybEtleSArICcsJyArCisgICAgICAg
ICAgICAgICdzaGlmdEtleT0nICsgZXYuc2hpZnRLZXkgKyAnLCcgKworICAgICAgICAgICAgICAn
YWx0S2V5PScgKyBldi5hbHRLZXkgKyAnLCcgKworICAgICAgICAgICAgICAnbWV0YUtleT0nICsg
ZXYubWV0YUtleSArICcsJyArCisgICAgICAgICAgICAgICdsb2NhdGlvbj0nICsgZXYua2V5TG9j
YXRpb24pOworICAgIH0KK30KKworZnVuY3Rpb24gdGVzdEtleUV2ZW50V2l0aExvY2F0aW9uKGV2
U3RyaW5nLCBleHBlY3RlZEtleUNvZGUsIGV4cGVjdGVkTG9jYXRpb24pIHsKKyAgICBldmVudFNl
bmRlci5rZXlEb3duKGV2U3RyaW5nLCBbXSk7CisgICAgc2hvdWxkQmUoImxhc3RLZXlib2FyZEV2
ZW50LnR5cGUiLCAnImtleWRvd24iJyk7CisgICAgc2hvdWxkRXZhbHVhdGVUbygibGFzdEtleWJv
YXJkRXZlbnQua2V5Q29kZSIsIGV4cGVjdGVkS2V5Q29kZSk7CisgICAgc2hvdWxkRXZhbHVhdGVU
bygibGFzdEtleWJvYXJkRXZlbnQua2V5TG9jYXRpb24iLCBleHBlY3RlZExvY2F0aW9uKTsKK30K
KwordmFyIHRleHRhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTsKK3Rl
eHRhcmVhLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCByZWNvcmRLZXlFdmVudCwgZmFsc2Up
OworZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUodGV4dGFyZWEsIGRvY3VtZW50LmJvZHkuZmly
c3RDaGlsZCk7Cit0ZXh0YXJlYS5mb2N1cygpOworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7
CisgICAgLy8gbG9jYXRpb249MCBpbmRpY2F0ZXMgdGhhdCB3ZSBzZW5kIGV2ZW50cyBhcyBzdGFu
ZGFyZCBrZXlzLgorICAgIHRlc3RLZXlFdmVudFdpdGhMb2NhdGlvbigibGVmdFNoaWZ0IiwgVktf
U0hJRlQsIEtFWV9MT0NBVElPTl9MRUZUKTsKKyAgICB0ZXN0S2V5RXZlbnRXaXRoTG9jYXRpb24o
ImxlZnRDb250cm9sIiwgVktfQ09OVFJPTCwgS0VZX0xPQ0FUSU9OX0xFRlQpOworICAgIHRlc3RL
ZXlFdmVudFdpdGhMb2NhdGlvbigibGVmdE1lbnUiLCBWS19NRU5VLCBLRVlfTE9DQVRJT05fTEVG
VCk7CisKKyAgICB0ZXN0S2V5RXZlbnRXaXRoTG9jYXRpb24oInJpZ2h0U2hpZnQiLCBWS19TSElG
VCwgS0VZX0xPQ0FUSU9OX1JJR0hUKTsKKyAgICB0ZXN0S2V5RXZlbnRXaXRoTG9jYXRpb24oInJp
Z2h0Q29udHJvbCIsIFZLX0NPTlRST0wsIEtFWV9MT0NBVElPTl9SSUdIVCk7CisgICAgdGVzdEtl
eUV2ZW50V2l0aExvY2F0aW9uKCJyaWdodE1lbnUiLCBWS19NRU5VLCBLRVlfTE9DQVRJT05fUklH
SFQpOworfSBlbHNlIHsKKyAgICBkZWJ1ZygiVGhpcyB0ZXN0IHJlcXVpcmVzIER1bXBSZW5kZXJU
cmVlLiIpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142640</attachid>
            <date>2012-05-17 23:07:57 -0700</date>
            <delta_ts>2012-05-21 00:04:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86694-20120518150756.patch</filename>
            <type>text/plain</type>
            <size>17975</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM4YjZkYTE4ZTRjNWJm
MmUwZDVlNTY0NzI2OTc3MmM1MWFjMDk4My4uYzBlMmMzZmQ0OWU5MGYzMzM5NGY5MGI4N2ZlYzJk
NzUzNzY0NjFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTA1LTE3ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRE9N
X0tFWV9MT0NBVElPTl9MRUZUIGFuZCBSSUdIVCBvZiBLZXlib2FyZEV2ZW50J3MgbG9jYXRpb24g
cHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg2Njk0CisKKyAgICAgICAgQXMgS2V5Ym9hcmRFdmVudCBmb3IgbGVmdC9yaWdodCBsb2NhdGlv
biBrZXksIGUuZy4gbGVmdC1jb250cm9sLAorICAgICAgICByaWdodC1jb250cm9sLCBwcm92aWRl
cyBET01fS0VZX0xPQ0FUSU9OX1NUQU5EQVJEIGFzIGtleUxvY2F0aW9uIHByb3BlcnR5LAorICAg
ICAgICBtb2RpZmllZCBLZXlDb2RlQ29udmVyc2lvbiB0byBtYWtlIFBsYXRmb3JtS2V5Ym9hcmRF
dmVudAorICAgICAgICBwcm92aWRlIHZpcnR1YWwga2V5Y29kZXMgd2l0aCBsb2NhdGlvbiBpbmZv
cm1hdGlvbiwgZS5nLiBWS19MQ09OVFJPTCBvcgorICAgICAgICBWS19SQ09OVFJPTCwgYW5kIG1v
ZGlmaWVkIEtleWJvYXJkRXZlbnQgdG8gZ2VuZXJhdGUgbG9jYXRpb24gaW5mb3JtYXRpb24KKyAg
ICAgICAgZnJvbSB0aGUgdmlydHVhbCBrZXljb2RlcywgZS5nLiBnZW5yYXRpbmcgRE9NX0tFWV9M
T0NBVElPTl9MRUZUIGZvcgorICAgICAgICBWS19MQ09OVFJPTC4gS2V5Ym9hcmRFdmVudCBhbHNv
IHJlbW92ZXMgbG9jYXRpb24gaW5mb3JtYXRpb24gZnJvbQorICAgICAgICB0aGUgdmlydHVhbCBr
ZXljb2RlcywgZS5nLiBnZW5yYXRpbmcgVktfQ09OVFJPTCBmb3IgVktfTENPTlRST0wuCisgICAg
ICAgIFRoZSBsb2NhdGlvbiBwcm9wZXJ0eSBpcyBkZWZpbmVkIGluIHRoZSBXM0MgRE9NMyBzcGVj
aWZpY2F0aW9uOgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVu
dHMvI2V2ZW50cy1rZXlib2FyZGV2ZW50cworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL2tleWRvd24tbGVmdHJpZ2h0LWtl
eXMuaHRtbAorCisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6d2luZG93c1ZpcnR1YWxLZXlDb2RlV2l0aG91dExvY2F0aW9uKToKKyAgICAgICAgQWRk
ZWQgYSBmdW5jdGlvbiB3aGljaCByZW1vdmVzIGxvY2F0aW9uIGluZm9ybWF0aW9uIGZyb20gYSBn
aXZlbgorICAgICAgICBrZXljb2RlLiBGb3IgZXhhbXBsZSwgd2hlbiBWS19MQ09OVFJPTCBpcyBn
aXZlbiwgcmV0dXJucyBWS19DT05UUk9MLgorICAgICAgICAoV2ViQ29yZTo6a2V5TG9jYXRpb25D
b2RlKToKKyAgICAgICAgQWRkZWQgYSBmdW5jdGlvbiB3aGljaCBwcm92aWRlcyBsb2NhdGlvbiBp
bmZvcm1hdGlvbiBmcm9tIGEgZ2l2ZW4KKyAgICAgICAga2V5Y29kZS4gRm9yIGV4YW1wbGUsIHdo
ZW4gVktfTENPTlRST0wgaXMgZ2l2ZW4sCisgICAgICAgIHJldHVybnMgRE9NX0tFWV9MT0NBVElP
Tl9MRUZULgorICAgICAgICAoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCk6
CisgICAgICAgIEluaXRpYWxpemVkIG1fa2V5TG9jYXRpb24gYnkgdXNpbmcgdGhlIGFib3ZlIGtl
eUxvY2F0aW9uQ29kZS4KKyAgICAgICAgKFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6OmtleUNvZGUp
OgorICAgICAgICBNb2RpZmllZCB0byB1c2UgdGhlIGFib3ZlIHR3byBmdW5jdGlvbnMgdG8gaW5p
dGlhbGl6ZSBrZXljb2RlIHByb3BlcnR5CisgICAgICAgIGFuZCBrZXlsb2NhdGlvbiBwcm9wZXJ0
eS4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9LZXlDb2RlQ29udmVyc2lvbkFuZHJvaWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6d2luZG93c0tleUNvZGVGb3JLZXlFdmVudCk6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb25HdGsuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6d2luZG93c0tleUNvZGVGb3JLZXlFdmVudCk6CisgICAgICAgICogcGxhdGZv
cm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NLZXlD
b2RlRm9yS2V5Q29kZSk6CisgICAgICAgIE1vZGlmaWVkIHRoZXNlIGtleWNvZGUgY29udmVyc2lv
bnMgdG8gcmV0dXJuIGtleWNvZGVzIHdpdGggbG9jYXRpb24KKyAgICAgICAgaW5mb3JtYXRpb24s
IGUuZy4gbW9kaWZpZWQga2V5Y29kZSBjb252ZXJzaW9ucyByZXR1cm5zIFZLX0xDT05UUk9MCisg
ICAgICAgIGZvciBsZWZ0IGNvbnRyb2wuCisKIDIwMTItMDUtMTcgIFdlaSBKYW1lcyAgPGphbWVz
LndlaUBpbnRlbC5jb20+CiAKICAgICAgICAgQXVkaW9CdWZmZXJTb3VyY2VOb2RlIGFuZCBNZWRp
YUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUgc2hvdWxkIHN1cHBvcnQgbXVsdGktY2hhbm5lbCA+IHN0
ZXJlbwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCmluZGV4IGRkZDA3YThkY2IyNDZh
MjY3MDllNGViOGQ3Mjk1MmNjOWJhM2QyMGUuLjBlNWFhYTE1MmI1MjI3NmU5ZDFiNGZmMGUzZTQy
MTFhYTFlNzZmNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRF
dmVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiV2luZG93c0tleWJvYXJk
Q29kZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Myw2ICs1NCw0NCBAQCBzdGF0
aWMgaW5saW5lIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlRm9yS2V5Ym9hcmRFdmVudFR5
cGUoUGxhdGZvcm1FdmVudDo6VAogICAgIHJldHVybiBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50
OwogfQogCitzdGF0aWMgaW5saW5lIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGVXaXRob3V0TG9j
YXRpb24oaW50IGtleWNvZGUpCit7CisgICAgc3dpdGNoIChrZXljb2RlKSB7CisgICAgY2FzZSBW
S19MQ09OVFJPTDoKKyAgICBjYXNlIFZLX1JDT05UUk9MOgorICAgICAgICByZXR1cm4gVktfQ09O
VFJPTDsKKyAgICBjYXNlIFZLX0xTSElGVDoKKyAgICBjYXNlIFZLX1JTSElGVDoKKyAgICAgICAg
cmV0dXJuIFZLX1NISUZUOworICAgIGNhc2UgVktfTE1FTlU6CisgICAgY2FzZSBWS19STUVOVToK
KyAgICAgICAgcmV0dXJuIFZLX01FTlU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGtl
eWNvZGU7CisgICAgfQorfQorCitzdGF0aWMgaW5saW5lIGludCBrZXlMb2NhdGlvbkNvZGUoY29u
c3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBrZXkpCit7CisgICAgaWYgKGtleS5pc0tleXBhZCgp
KQorICAgICAgICByZXR1cm4gS2V5Ym9hcmRFdmVudDo6RE9NX0tFWV9MT0NBVElPTl9OVU1QQUQ7
CisKKyAgICBzd2l0Y2ggKGtleS53aW5kb3dzVmlydHVhbEtleUNvZGUoKSkgeworICAgIGNhc2Ug
VktfTENPTlRST0w6CisgICAgY2FzZSBWS19MU0hJRlQ6CisgICAgY2FzZSBWS19MTUVOVToKKyAg
ICBjYXNlIFZLX0xXSU46CisgICAgICAgIHJldHVybiBLZXlib2FyZEV2ZW50OjpET01fS0VZX0xP
Q0FUSU9OX0xFRlQ7CisgICAgY2FzZSBWS19SQ09OVFJPTDoKKyAgICBjYXNlIFZLX1JTSElGVDoK
KyAgICBjYXNlIFZLX1JNRU5VOgorICAgIGNhc2UgVktfUldJTjoKKyAgICAgICAgcmV0dXJuIEtl
eWJvYXJkRXZlbnQ6OkRPTV9LRVlfTE9DQVRJT05fUklHSFQ7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgcmV0dXJuIEtleWJvYXJkRXZlbnQ6OkRPTV9LRVlfTE9DQVRJT05fU1RBTkRBUkQ7CisgICAg
fQorfQorCiBLZXlib2FyZEV2ZW50OjpLZXlib2FyZEV2ZW50KCkKICAgICA6IG1fa2V5TG9jYXRp
b24oRE9NX0tFWV9MT0NBVElPTl9TVEFOREFSRCkKICAgICAsIG1fYWx0R3JhcGhLZXkoZmFsc2Up
CkBAIC02NCw3ICsxMDMsNyBAQCBLZXlib2FyZEV2ZW50OjpLZXlib2FyZEV2ZW50KGNvbnN0IFBs
YXRmb3JtS2V5Ym9hcmRFdmVudCYga2V5LCBBYnN0cmFjdFZpZXcqIHZpZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICB0cnVlLCB0cnVlLCB2aWV3LCAwLCBrZXkuY3RybEtleSgpLCBrZXkuYWx0
S2V5KCksIGtleS5zaGlmdEtleSgpLCBrZXkubWV0YUtleSgpKQogICAgICwgbV9rZXlFdmVudChh
ZG9wdFB0cihuZXcgUGxhdGZvcm1LZXlib2FyZEV2ZW50KGtleSkpKQogICAgICwgbV9rZXlJZGVu
dGlmaWVyKGtleS5rZXlJZGVudGlmaWVyKCkpCi0gICAgLCBtX2tleUxvY2F0aW9uKGtleS5pc0tl
eXBhZCgpID8gRE9NX0tFWV9MT0NBVElPTl9OVU1QQUQgOiBET01fS0VZX0xPQ0FUSU9OX1NUQU5E
QVJEKSAvLyBGSVhNRTogZGlmZmVyZW50aWF0ZSByaWdodC9sZWZ0LCB0b28KKyAgICAsIG1fa2V5
TG9jYXRpb24oa2V5TG9jYXRpb25Db2RlKGtleSkpCiAgICAgLCBtX2FsdEdyYXBoS2V5KGZhbHNl
KQogewogfQpAQCAtMTIyLDcgKzE2MSw4IEBAIGludCBLZXlib2FyZEV2ZW50OjprZXlDb2RlKCkg
Y29uc3QKICAgICBpZiAoIW1fa2V5RXZlbnQpCiAgICAgICAgIHJldHVybiAwOwogICAgIGlmICh0
eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCB8fCB0eXBlKCkgPT0gZXZlbnROYW1l
cygpLmtleXVwRXZlbnQpCi0gICAgICAgIHJldHVybiBtX2tleUV2ZW50LT53aW5kb3dzVmlydHVh
bEtleUNvZGUoKTsKKyAgICAgICAgcmV0dXJuIHdpbmRvd3NWaXJ0dWFsS2V5Q29kZVdpdGhvdXRM
b2NhdGlvbihtX2tleUV2ZW50LT53aW5kb3dzVmlydHVhbEtleUNvZGUoKSk7CisKICAgICByZXR1
cm4gY2hhckNvZGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb25BbmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0tleUNvZGVDb252ZXJzaW9uQW5kcm9pZC5jcHAKaW5kZXggNWNmOTI4
YTg4YjY3NjFjMDdkYjdmNjEwNjczN2VhMDc0NDVhNWU0MC4uZmJjNTdiMjhmMjE0NTMwNTQ5OTU2
MzM0ZDVhMTA2MWM2Yzc4NTc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb25BbmRyb2lkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9LZXlDb2RlQ29udmVyc2lvbkFuZHJvaWQuY3BwCkBAIC05Niw4
ICs5Niw5IEBAIGludCB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KHVuc2lnbmVkIGludCBrZXlD
b2RlKQogICAgIGNhc2UgQUtFWUNPREVfRU5URVI6CiAgICAgICAgIHJldHVybiBWS0VZX1JFVFVS
TjsKICAgICBjYXNlIEFLRVlDT0RFX1NISUZUX0xFRlQ6CisgICAgICAgIHJldHVybiBWS0VZX0xT
SElGVDsKICAgICBjYXNlIEFLRVlDT0RFX1NISUZUX1JJR0hUOgotICAgICAgICByZXR1cm4gVktF
WV9TSElGVDsKKyAgICAgICAgcmV0dXJuIFZLRVlfUlNISUZUOwogICAgIC8vIEJhY2sgd2lsbCBz
ZXJ2ZSBhcyBlc2NhcGUsIGFsdGhvdWdoIHdlIG1heSBub3QgaGF2ZSBhY2Nlc3MgdG8gaXQuCiAg
ICAgY2FzZSBBS0VZQ09ERV9CQUNLOgogICAgICAgICByZXR1cm4gVktFWV9FU0NBUEU7CkBAIC0y
MjcsOCArMjI4LDkgQEAgaW50IHdpbmRvd3NLZXlDb2RlRm9yS2V5RXZlbnQodW5zaWduZWQgaW50
IGtleUNvZGUpCiAgICAgY2FzZSBBS0VZQ09ERV9DQUxMOgogICAgICAgICByZXR1cm4gVktFWV9F
TkQ7CiAgICAgY2FzZSBBS0VZQ09ERV9BTFRfTEVGVDoKKyAgICAgICAgcmV0dXJuIFZLRVlfTE1F
TlU7CiAgICAgY2FzZSBBS0VZQ09ERV9BTFRfUklHSFQ6Ci0gICAgICAgIHJldHVybiBWS0VZX01F
TlU7CisgICAgICAgIHJldHVybiBWS0VZX1JNRU5VOwogICAgIGNhc2UgQUtFWUNPREVfR1JBVkU6
CiAgICAgICAgIHJldHVybiBWS0VZX09FTV8zOwogICAgIGNhc2UgQUtFWUNPREVfQVBPU1RST1BI
RToKQEAgLTI0NCw4ICsyNDYsOSBAQCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudCh1bnNp
Z25lZCBpbnQga2V5Q29kZSkKICAgICBjYXNlIEFLRVlDT0RFX0ZPUldBUkRfREVMOgogICAgICAg
ICByZXR1cm4gVktFWV9ERUxFVEU7CiAgICAgY2FzZSBBS0VZQ09ERV9DVFJMX0xFRlQ6CisgICAg
ICAgIHJldHVybiBWS0VZX0xDT05UUk9MOwogICAgIGNhc2UgQUtFWUNPREVfQ1RSTF9SSUdIVDoK
LSAgICAgICAgcmV0dXJuIFZLRVlfQ09OVFJPTDsKKyAgICAgICAgcmV0dXJuIFZLRVlfUkNPTlRS
T0w7CiAgICAgY2FzZSBBS0VZQ09ERV9DQVBTX0xPQ0s6CiAgICAgICAgIHJldHVybiBWS0VZX0NB
UElUQUw7CiAgICAgY2FzZSBBS0VZQ09ERV9TQ1JPTExfTE9DSzoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0tleUNvZGVDb252ZXJzaW9uR3RrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0tleUNvZGVDb252ZXJzaW9uR3RrLmNwcApp
bmRleCBhN2Y0MjQ1ODc4YTc0MjBmMjJlMzE4YjRiMzE5MTAxNmE3NzA1YTdiLi41NzUzOTJmYTc5
ZThkZDM2YzM2NjA2MjZlNWJjZmMyYmRhOGE0ZjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9LZXlDb2RlQ29udmVyc2lvbkd0ay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb25HdGsuY3BwCkBAIC0x
MDIsMTYgKzEwMiwxOSBAQCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudCh1bnNpZ25lZCBr
ZXljb2RlKQogICAgIGNhc2UgR0RLX1JldHVybjoKICAgICAgICAgcmV0dXJuIFZLRVlfUkVUVVJO
OyAvLygwRCkgUmV0dXJuIGtleQogICAgIGNhc2UgR0RLX1NoaWZ0X0w6CisgICAgICAgIHJldHVy
biBWS0VZX0xTSElGVDsgLy8gKEEwKSBMZWZ0IFNISUZUIGtleQogICAgIGNhc2UgR0RLX1NoaWZ0
X1I6Ci0gICAgICAgIHJldHVybiBWS0VZX1NISUZUOyAvLyAoMTApIFNISUZUIGtleQorICAgICAg
ICByZXR1cm4gVktFWV9SU0hJRlQ7IC8vIChBMSkgUmlnaHQgU0hJRlQga2V5CiAgICAgY2FzZSBH
REtfQ29udHJvbF9MOgorICAgICAgICByZXR1cm4gVktFWV9MQ09OVFJPTDsgLy8gKEEyKSBMZWZ0
IENUUkwga2V5CiAgICAgY2FzZSBHREtfQ29udHJvbF9SOgotICAgICAgICByZXR1cm4gVktFWV9D
T05UUk9MOyAvLyAoMTEpIENUUkwga2V5CisgICAgICAgIHJldHVybiBWS0VZX1JDT05UUk9MOyAv
LyAoQTMpIFJpZ2h0IENUUkwga2V5CiAgICAgY2FzZSBHREtfTWVudToKICAgICAgICAgcmV0dXJu
IFZLRVlfQVBQUzsgIC8vICg1RCkgQXBwbGljYXRpb25zIGtleSAoTmF0dXJhbCBrZXlib2FyZCkK
ICAgICBjYXNlIEdES19BbHRfTDoKKyAgICAgICAgcmV0dXJuIFZLRVlfTE1FTlU7IC8vIChBNCkg
TGVmdCBBTFQga2V5CiAgICAgY2FzZSBHREtfQWx0X1I6Ci0gICAgICAgIHJldHVybiBWS0VZX01F
TlU7IC8vICgxMikgQUxUIGtleQorICAgICAgICByZXR1cm4gVktFWV9STUVOVTsgLy8gKEE1KSBS
aWdodCBBTFQga2V5CiAKICAgICBjYXNlIEdES19QYXVzZToKICAgICAgICAgcmV0dXJuIFZLRVlf
UEFVU0U7IC8vICgxMykgUEFVU0Uga2V5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvS2V5RXZlbnRDb2NvYS5tbQppbmRleCAyN2IwNGFlY2ViZWY4ZjA4M2U0YjhiMmU4NWUyYzk4
NjlkZjYxNjA5Li40ZDFlNDFhOWVkNmRjNjc1MThjNWE5YWRhNGY3ZGJiOTFmMjdhNGNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0KQEAgLTM4
OCwxMyArMzg4LDEzIEBAIGludCB3aW5kb3dzS2V5Q29kZUZvcktleUNvZGUodWludDE2X3Qga2V5
Q29kZSkKICAgICAgICAgLyogMHgzNSAqLyBWS19FU0NBUEUsCiAgICAgICAgIC8qIDB4MzYgKi8g
VktfQVBQUywgLy8gUmlnaHQgQ29tbWFuZAogICAgICAgICAvKiAweDM3ICovIFZLX0xXSU4sIC8v
IExlZnQgQ29tbWFuZAotICAgICAgICAvKiAweDM4ICovIFZLX1NISUZULCAvLyBMZWZ0IFNoaWZ0
CisgICAgICAgIC8qIDB4MzggKi8gVktfTFNISUZULCAvLyBMZWZ0IFNoaWZ0CiAgICAgICAgIC8q
IDB4MzkgKi8gVktfQ0FQSVRBTCwgLy8gQ2FwcyBMb2NrCi0gICAgICAgIC8qIDB4M0EgKi8gVktf
TUVOVSwgLy8gTGVmdCBPcHRpb24KLSAgICAgICAgLyogMHgzQiAqLyBWS19DT05UUk9MLCAvLyBM
ZWZ0IEN0cmwKLSAgICAgICAgLyogMHgzQyAqLyBWS19TSElGVCwgLy8gUmlnaHQgU2hpZnQKLSAg
ICAgICAgLyogMHgzRCAqLyBWS19NRU5VLCAvLyBSaWdodCBPcHRpb24KLSAgICAgICAgLyogMHgz
RSAqLyBWS19DT05UUk9MLCAvLyBSaWdodCBDdHJsCisgICAgICAgIC8qIDB4M0EgKi8gVktfTE1F
TlUsIC8vIExlZnQgT3B0aW9uCisgICAgICAgIC8qIDB4M0IgKi8gVktfTENPTlRST0wsIC8vIExl
ZnQgQ3RybAorICAgICAgICAvKiAweDNDICovIFZLX1JTSElGVCwgLy8gUmlnaHQgU2hpZnQKKyAg
ICAgICAgLyogMHgzRCAqLyBWS19STUVOVSwgLy8gUmlnaHQgT3B0aW9uCisgICAgICAgIC8qIDB4
M0UgKi8gVktfUkNPTlRST0wsIC8vIFJpZ2h0IEN0cmwKICAgICAgICAgLyogMHgzRiAqLyAwLCAv
LyBmbgogICAgICAgICAvKiAweDQwICovIFZLX0YxNywKICAgICAgICAgLyogMHg0MSAqLyBWS19E
RUNJTUFMLCAvLyBOdW0gUGFkIC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBjNDlkMjk5MjVhN2E2YmE3MmNhMDMzYTFmYzQzNzk3ZmY2OTcxNDVl
Li4xNTRiODk1NzY2YzQyMDZkMTYyZjQ5MWU4ZDE3NWFhZWU3ZDI3OGFiIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTItMDUtMTcgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCBET01fS0VZX0xPQ0FUSU9OX0xFRlQgYW5kIFJJR0hUIG9mIEtleWJvYXJkRXZl
bnQncyBsb2NhdGlvbiBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODY2OTQKKworICAgICAgICBNb2RpZnkga2V5RG93biB0byBjcmVhdGUg
bGVmdC0gYW5kIHJpZ2h0LSBjb250cm9sLCBzaGlmdCwgYW5kIGFsdAorICAgICAgICBrZXlldmVu
dCBmb3IgYSB0ZXN0IHRvIGNoZWNrIHRoYXQga2V5TG9jYXRpb24gcHJvcGVydHkgY2FuIGhhdmUK
KyAgICAgICAgRE9NX0tFWV9MT0NBVElPTl9MRUZUIGZvciBsZWZ0LWNvbnRyb2wsIHNoaWZ0LCBh
bmQgYWx0LCBhbmQKKyAgICAgICAgRE9NX0tFWV9MT0NBVElPTl9SSUdIVCBmb3IgcmlnaHQtY29u
dHJvbCwgc2hpZnQsIGFuZCBhbHQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVudFNlbmRlci5jcHA6
CisgICAgICAgIChFdmVudFNlbmRlcjo6a2V5RG93bik6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIga2V5RG93bjp3aXRoTW9kaWZpZXJzOndpdGhMb2NhdGlvbjpdKToKKwogMjAx
Mi0wNS0xNyAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8cmFrdWNvQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW0VGTF1bRFJUXSBDYWxsIHJlc2V0SW50ZXJuYWxzT2JqZWN0KCkgYWZ0ZXIgZWFjaCB0
ZXN0LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRXZlbnRTZW5k
ZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRXZlbnRTZW5kZXIuY3BwCmlu
ZGV4IDdkZGFhZmJlNmYyZDYyYWUzMWMxZjg4ODY5OGI3YmU2YzNiMmJiZDguLjA1ZTRlYjgzZmVi
N2Y5MTc2NGMwNDZiNDI3NTY4ZWNjYjM0MDU5ZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0V2ZW50U2VuZGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9FdmVudFNlbmRlci5jcHAKQEAgLTU1Nyw2ICs1NTcsMjQgQEAgdm9pZCBFdmVu
dFNlbmRlcjo6a2V5RG93bihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFy
aWFudCogcmVzdWx0KQogICAgIGVsc2UgaWYgKCJtZW51IiA9PSBjb2RlU3RyKQogICAgICAgICAv
LyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfQVBQUy4KICAgICAg
ICAgY29kZSA9IDB4NUQ7CisgICAgZWxzZSBpZiAoImxlZnRDb250cm9sIiA9PSBjb2RlU3RyKQor
ICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfTENP
TlRST0wuCisgICAgICAgIGNvZGUgPSAweEEyOworICAgIGVsc2UgaWYgKCJyaWdodENvbnRyb2wi
ID09IGNvZGVTdHIpCisgICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3Vw
cG9ydDo6VktFWV9SQ09OVFJPTC4KKyAgICAgICAgY29kZSA9IDB4QTM7CisgICAgZWxzZSBpZiAo
ImxlZnRTaGlmdCIgPT0gY29kZVN0cikKKyAgICAgICAgLy8gRklYTUU6IENoYW5nZSB0aGlzIHRv
IHdlYmtpdF9zdXBwb3J0OjpWS0VZX0xTSElGVC4KKyAgICAgICAgY29kZSA9IDB4QTA7CisgICAg
ZWxzZSBpZiAoInJpZ2h0U2hpZnQiID09IGNvZGVTdHIpCisgICAgICAgIC8vIEZJWE1FOiBDaGFu
Z2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9SU0hJRlQuCisgICAgICAgIGNvZGUgPSAw
eEExOworICAgIGVsc2UgaWYgKCJsZWZ0QWx0IiA9PSBjb2RlU3RyKQorICAgICAgICAvLyBGSVhN
RTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfTE1FTlUuCisgICAgICAgIGNv
ZGUgPSAweEE0OworICAgIGVsc2UgaWYgKCJyaWdodEFsdCIgPT0gY29kZVN0cikKKyAgICAgICAg
Ly8gRklYTUU6IENoYW5nZSB0aGlzIHRvIHdlYmtpdF9zdXBwb3J0OjpWS0VZX1JNRU5VLgorICAg
ICAgICBjb2RlID0gMHhBNTsKICAgICBlbHNlIHsKICAgICAgICAgLy8gQ29tcGFyZSB0aGUgaW5w
dXQgc3RyaW5nIHdpdGggdGhlIGZ1bmN0aW9uLWtleSBuYW1lcyBkZWZpbmVkIGJ5IHRoZQogICAg
ICAgICAvLyBET00gc3BlYyAoaS5lLiAiRjEiLC4uLiwiRjI0IikuIElmIHRoZSBpbnB1dCBzdHJp
bmcgaXMgYSBmdW5jdGlvbi1rZXkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2
ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0KaW5kZXggNzZhYzY5MjY3NDE5MmU1NTFlOTllOTJkYjUx
ODFmZmQ4ZDhmYmU2Ny4uZGM4YjI2NjkzYjExZTA0YmVmYmE5NjI4N2Q5ODMyZWExZGEzYzg5YyAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIubW0KQEAgLTYyMSw2ICs2MjEsMzAgQEAgc3RhdGljIGludCBidWlsZE1vZGlmaWVyRmxhZ3Mo
Y29uc3QgV2ViU2NyaXB0T2JqZWN0KiBtb2RpZmllcnMpCiAgICAgICAgIGNvbnN0IHVuaWNoYXIg
Y2ggPSAweDA0MzA7CiAgICAgICAgIGV2ZW50Q2hhcmFjdGVyID0gW05TU3RyaW5nIHN0cmluZ1dp
dGhDaGFyYWN0ZXJzOiZjaCBsZW5ndGg6MV07CiAgICAgICAgIGtleUNvZGUgPSAweDM7IC8vIFNo
YXJlcyBrZXkgd2l0aCAiRiIgb24gUnVzc2lhbiBsYXlvdXQuCisgICAgfSBlbHNlIGlmIChbY2hh
cmFjdGVyIGlzRXF1YWxUb1N0cmluZzpAImxlZnRDb250cm9sIl0pIHsKKyAgICAgICAgY29uc3Qg
dW5pY2hhciBjaCA9IDB4RkZFMzsKKyAgICAgICAgZXZlbnRDaGFyYWN0ZXIgPSBbTlNTdHJpbmcg
c3RyaW5nV2l0aENoYXJhY3RlcnM6JmNoIGxlbmd0aDoxXTsKKyAgICAgICAga2V5Q29kZSA9IDB4
M0I7CisgICAgfSBlbHNlIGlmIChbY2hhcmFjdGVyIGlzRXF1YWxUb1N0cmluZzpAImxlZnRTaGlm
dCJdKSB7CisgICAgICAgIGNvbnN0IHVuaWNoYXIgY2ggPSAweEZGRTE7CisgICAgICAgIGV2ZW50
Q2hhcmFjdGVyID0gW05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZjaCBsZW5ndGg6MV07
CisgICAgICAgIGtleUNvZGUgPSAweDM4OworICAgIH0gZWxzZSBpZiAoW2NoYXJhY3RlciBpc0Vx
dWFsVG9TdHJpbmc6QCJsZWZ0QWx0Il0pIHsKKyAgICAgICAgY29uc3QgdW5pY2hhciBjaCA9IDB4
RkZFNzsKKyAgICAgICAgZXZlbnRDaGFyYWN0ZXIgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aENoYXJh
Y3RlcnM6JmNoIGxlbmd0aDoxXTsKKyAgICAgICAga2V5Q29kZSA9IDB4M0E7CisgICAgfSBlbHNl
IGlmIChbY2hhcmFjdGVyIGlzRXF1YWxUb1N0cmluZzpAInJpZ2h0Q29udHJvbCJdKSB7CisgICAg
ICAgIGNvbnN0IHVuaWNoYXIgY2ggPSAweEZGRTQ7CisgICAgICAgIGV2ZW50Q2hhcmFjdGVyID0g
W05TU3RyaW5nIHN0cmluZ1dpdGhDaGFyYWN0ZXJzOiZjaCBsZW5ndGg6MV07CisgICAgICAgIGtl
eUNvZGUgPSAweDNFOworICAgIH0gZWxzZSBpZiAoW2NoYXJhY3RlciBpc0VxdWFsVG9TdHJpbmc6
QCJyaWdodFNoaWZ0Il0pIHsKKyAgICAgICAgY29uc3QgdW5pY2hhciBjaCA9IDB4RkZFMjsKKyAg
ICAgICAgZXZlbnRDaGFyYWN0ZXIgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6JmNo
IGxlbmd0aDoxXTsKKyAgICAgICAga2V5Q29kZSA9IDB4M0M7CisgICAgfSBlbHNlIGlmIChbY2hh
cmFjdGVyIGlzRXF1YWxUb1N0cmluZzpAInJpZ2h0QWx0Il0pIHsKKyAgICAgICAgY29uc3QgdW5p
Y2hhciBjaCA9IDB4RkZFODsKKyAgICAgICAgZXZlbnRDaGFyYWN0ZXIgPSBbTlNTdHJpbmcgc3Ry
aW5nV2l0aENoYXJhY3RlcnM6JmNoIGxlbmd0aDoxXTsKKyAgICAgICAga2V5Q29kZSA9IDB4M0Q7
CiAgICAgfQogCiAgICAgLy8gQ29tcGFyZSB0aGUgaW5wdXQgc3RyaW5nIHdpdGggdGhlIGZ1bmN0
aW9uLWtleSBuYW1lcyBkZWZpbmVkIGJ5IHRoZSBET00gc3BlYyAoaS5lLiAiRjEiLC4uLiwiRjI0
IikuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMzdkMDU3MGVmYjc0ZDdmMWZhNDNlNzA2N2RhM2I5YmE0N2NhNjA4Ni4uMmIy
YzIzOTE1OTM4MzQ1N2U5NjU0ZTgwYmNjYjBiMzExYmMwMDRjNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDEyLTA1LTE3ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgRE9NX0tFWV9MT0NBVElPTl9MRUZUIGFuZCBSSUdIVCBvZiBLZXli
b2FyZEV2ZW50J3MgbG9jYXRpb24gcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg2Njk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9rZXlkb3duLWxlZnRyaWdodC1rZXlz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMva2V5ZG93bi1sZWZ0
cmlnaHQta2V5cy5odG1sOiBBZGRlZC4KKwogMjAxMi0wNS0xNyAgRGFuIEJlcm5zdGVpbiAgPG1p
dHpAYXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMTQxOTkzMz4gUHJvYmxl
bXMgd2l0aCBmbGlwcGVkIHdyaXRpbmcgbW9kZXMgYW5kIGNvbXBvc2l0aW5nCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9rZXlkb3duLWxlZnRyaWdodC1rZXlzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2tleWRvd24tbGVmdHJpZ2h0LWtleXMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiZDQ4NDljZWNkOWE3Y2E1ODA2MDIzZTY4MTk2NzUyOTRm
ZTdkNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9rZXlkb3du
LWxlZnRyaWdodC1rZXlzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBACisKK1RoaXMgdGVz
dHMga2V5Ym9hcmQgZXZlbnRzIHdpdGggS2V5TG9jYXRpb25Db2RlIGFyZ3VtZW50LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC50eXBlIGlz
ICJrZXlkb3duIgorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlDb2RlIGlzIDE2CitQQVNTIGxh
c3RLZXlib2FyZEV2ZW50LmtleUxvY2F0aW9uIGlzIEtFWV9MT0NBVElPTl9MRUZUCitQQVNTIGxh
c3RLZXlib2FyZEV2ZW50LnR5cGUgaXMgImtleWRvd24iCitQQVNTIGxhc3RLZXlib2FyZEV2ZW50
LmtleUNvZGUgaXMgMTcKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQua2V5TG9jYXRpb24gaXMgS0VZ
X0xPQ0FUSU9OX0xFRlQKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQudHlwZSBpcyAia2V5ZG93biIK
K1BBU1MgbGFzdEtleWJvYXJkRXZlbnQua2V5Q29kZSBpcyAxOAorUEFTUyBsYXN0S2V5Ym9hcmRF
dmVudC5rZXlMb2NhdGlvbiBpcyBLRVlfTE9DQVRJT05fTEVGVAorUEFTUyBsYXN0S2V5Ym9hcmRF
dmVudC50eXBlIGlzICJrZXlkb3duIgorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlDb2RlIGlz
IDE2CitQQVNTIGxhc3RLZXlib2FyZEV2ZW50LmtleUxvY2F0aW9uIGlzIEtFWV9MT0NBVElPTl9S
SUdIVAorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC50eXBlIGlzICJrZXlkb3duIgorUEFTUyBsYXN0
S2V5Ym9hcmRFdmVudC5rZXlDb2RlIGlzIDE3CitQQVNTIGxhc3RLZXlib2FyZEV2ZW50LmtleUxv
Y2F0aW9uIGlzIEtFWV9MT0NBVElPTl9SSUdIVAorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC50eXBl
IGlzICJrZXlkb3duIgorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlDb2RlIGlzIDE4CitQQVNT
IGxhc3RLZXlib2FyZEV2ZW50LmtleUxvY2F0aW9uIGlzIEtFWV9MT0NBVElPTl9SSUdIVAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2tleWRvd24tbGVmdHJpZ2h0LWtleXMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2tleWRvd24tbGVmdHJpZ2h0LWtleXMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lMzAzNTQzZjBjMTg4YmYzMjMzNDVjYzcwZWQwMTNhMDYyODJiMzdmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMva2V5ZG93bi1sZWZ0cmlnaHQta2V5
cy5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGtleWJvYXJkIGV2ZW50cyB3aXRoIEtleUxvY2F0aW9u
Q29kZSBhcmd1bWVudC4iKTsKKwordmFyIGxhc3RLZXlib2FyZEV2ZW50OwordmFyIFZLX1NISUZU
ID0gMTY7Cit2YXIgVktfQ09OVFJPTCA9IDE3OwordmFyIFZLX01FTlUgPSAxODsKK3ZhciBLRVlf
TE9DQVRJT05fTEVGVCA9IDE7Cit2YXIgS0VZX0xPQ0FUSU9OX1JJR0hUID0gMjsKKworZnVuY3Rp
b24gcmVjb3JkS2V5RXZlbnQoZXYpIHsKKyAgICBldiA9IGV2IHx8IGV2ZW50OworICAgIGV2Lmtl
eUNvZGUgPSAoZXYud2hpY2ggfHwgZXYua2V5Q29kZSk7CisgICAgaWYgKHdpbmRvdy5ldmVudFNl
bmRlcikgeworICAgICAgICBsYXN0S2V5Ym9hcmRFdmVudCA9IGV2OworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGRlYnVnKCdUeXBlPScgKyBldi50eXBlICsgJywnICsKKyAgICAgICAgICAgICAgJ2tl
eUNvZGU9JyArIGV2LmtleUNvZGUgKyAnLCcgKworICAgICAgICAgICAgICAnY3RybEtleT0nICsg
ZXYuY3RybEtleSArICcsJyArCisgICAgICAgICAgICAgICdzaGlmdEtleT0nICsgZXYuc2hpZnRL
ZXkgKyAnLCcgKworICAgICAgICAgICAgICAnYWx0S2V5PScgKyBldi5hbHRLZXkgKyAnLCcgKwor
ICAgICAgICAgICAgICAnbWV0YUtleT0nICsgZXYubWV0YUtleSArICcsJyArCisgICAgICAgICAg
ICAgICdsb2NhdGlvbj0nICsgZXYua2V5TG9jYXRpb24pOworICAgIH0KK30KKworZnVuY3Rpb24g
dGVzdEtleUV2ZW50V2l0aExvY2F0aW9uKGV2U3RyaW5nLCBleHBlY3RlZEtleUNvZGUsIGV4cGVj
dGVkTG9jYXRpb24pIHsKKyAgICBldmVudFNlbmRlci5rZXlEb3duKGV2U3RyaW5nLCBbXSk7Cisg
ICAgc2hvdWxkQmUoImxhc3RLZXlib2FyZEV2ZW50LnR5cGUiLCAnImtleWRvd24iJyk7CisgICAg
c2hvdWxkRXZhbHVhdGVUbygibGFzdEtleWJvYXJkRXZlbnQua2V5Q29kZSIsIGV4cGVjdGVkS2V5
Q29kZSk7CisgICAgc2hvdWxkRXZhbHVhdGVUbygibGFzdEtleWJvYXJkRXZlbnQua2V5TG9jYXRp
b24iLCBleHBlY3RlZExvY2F0aW9uKTsKK30KKwordmFyIHRleHRhcmVhID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgidGV4dGFyZWEiKTsKK3RleHRhcmVhLmFkZEV2ZW50TGlzdGVuZXIoImtleWRv
d24iLCByZWNvcmRLZXlFdmVudCwgZmFsc2UpOworZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUo
dGV4dGFyZWEsIGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCk7Cit0ZXh0YXJlYS5mb2N1cygpOwor
CitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgLy8gbG9jYXRpb249MCBpbmRpY2F0ZXMg
dGhhdCB3ZSBzZW5kIGV2ZW50cyBhcyBzdGFuZGFyZCBrZXlzLgorICAgIHRlc3RLZXlFdmVudFdp
dGhMb2NhdGlvbigibGVmdFNoaWZ0IiwgVktfU0hJRlQsICJLRVlfTE9DQVRJT05fTEVGVCIpOwor
ICAgIHRlc3RLZXlFdmVudFdpdGhMb2NhdGlvbigibGVmdENvbnRyb2wiLCBWS19DT05UUk9MLCAi
S0VZX0xPQ0FUSU9OX0xFRlQiKTsKKyAgICB0ZXN0S2V5RXZlbnRXaXRoTG9jYXRpb24oImxlZnRB
bHQiLCBWS19NRU5VLCAiS0VZX0xPQ0FUSU9OX0xFRlQiKTsKKworICAgIHRlc3RLZXlFdmVudFdp
dGhMb2NhdGlvbigicmlnaHRTaGlmdCIsIFZLX1NISUZULCAiS0VZX0xPQ0FUSU9OX1JJR0hUIik7
CisgICAgdGVzdEtleUV2ZW50V2l0aExvY2F0aW9uKCJyaWdodENvbnRyb2wiLCBWS19DT05UUk9M
LCAiS0VZX0xPQ0FUSU9OX1JJR0hUIik7CisgICAgdGVzdEtleUV2ZW50V2l0aExvY2F0aW9uKCJy
aWdodEFsdCIsIFZLX01FTlUsICJLRVlfTE9DQVRJT05fUklHSFQiKTsKK30gZWxzZSB7CisgICAg
ZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBEdW1wUmVuZGVyVHJlZS4iKTsKK30KKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142955</attachid>
            <date>2012-05-21 00:04:46 -0700</date>
            <delta_ts>2012-05-21 23:56:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86694-20120521160444.patch</filename>
            <type>text/plain</type>
            <size>17986</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQwZTJiYjYxNjNkM2Y5
YWM5ZDdjMDIxMzgxNzgzODYyZTQwNzM2OS4uNzg2ZDQ5ZmZjYWRlYmMzZWNjN2M0NjAyYmRhMWE2
YTE1YThkOWI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTA1LTIwICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRE9N
X0tFWV9MT0NBVElPTl9MRUZUIGFuZCBSSUdIVCBvZiBLZXlib2FyZEV2ZW50J3MgbG9jYXRpb24g
cHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg2Njk0CisKKyAgICAgICAgQXMgS2V5Ym9hcmRFdmVudCBmb3IgbGVmdC9yaWdodCBsb2NhdGlv
biBrZXksIGUuZy4gbGVmdC1jb250cm9sLAorICAgICAgICByaWdodC1jb250cm9sLCBwcm92aWRl
cyBET01fS0VZX0xPQ0FUSU9OX1NUQU5EQVJEIGFzIGtleUxvY2F0aW9uIHByb3BlcnR5LAorICAg
ICAgICBtb2RpZmllZCBLZXlDb2RlQ29udmVyc2lvbiB0byBtYWtlIFBsYXRmb3JtS2V5Ym9hcmRF
dmVudAorICAgICAgICBwcm92aWRlIHZpcnR1YWwga2V5Y29kZXMgd2l0aCBsb2NhdGlvbiBpbmZv
cm1hdGlvbiwgZS5nLiBWS19MQ09OVFJPTCBvcgorICAgICAgICBWS19SQ09OVFJPTCwgYW5kIG1v
ZGlmaWVkIEtleWJvYXJkRXZlbnQgdG8gZ2VuZXJhdGUgbG9jYXRpb24gaW5mb3JtYXRpb24KKyAg
ICAgICAgZnJvbSB0aGUgdmlydHVhbCBrZXljb2RlcywgZS5nLiBnZW5yYXRpbmcgRE9NX0tFWV9M
T0NBVElPTl9MRUZUIGZvcgorICAgICAgICBWS19MQ09OVFJPTC4gS2V5Ym9hcmRFdmVudCBhbHNv
IHJlbW92ZXMgbG9jYXRpb24gaW5mb3JtYXRpb24gZnJvbQorICAgICAgICB0aGUgdmlydHVhbCBr
ZXljb2RlcywgZS5nLiBnZW5yYXRpbmcgVktfQ09OVFJPTCBmb3IgVktfTENPTlRST0wuCisgICAg
ICAgIFRoZSBsb2NhdGlvbiBwcm9wZXJ0eSBpcyBkZWZpbmVkIGluIHRoZSBXM0MgRE9NMyBzcGVj
aWZpY2F0aW9uOgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVu
dHMvI2V2ZW50cy1rZXlib2FyZGV2ZW50cworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL2tleWRvd24tbGVmdHJpZ2h0LWtl
eXMuaHRtbAorCisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6d2luZG93c1ZpcnR1YWxLZXlDb2RlV2l0aG91dExvY2F0aW9uKToKKyAgICAgICAgQWRk
ZWQgYSBmdW5jdGlvbiB3aGljaCByZW1vdmVzIGxvY2F0aW9uIGluZm9ybWF0aW9uIGZyb20gYSBn
aXZlbgorICAgICAgICBrZXljb2RlLiBGb3IgZXhhbXBsZSwgd2hlbiBWS19MQ09OVFJPTCBpcyBn
aXZlbiwgcmV0dXJucyBWS19DT05UUk9MLgorICAgICAgICAoV2ViQ29yZTo6a2V5TG9jYXRpb25D
b2RlKToKKyAgICAgICAgQWRkZWQgYSBmdW5jdGlvbiB3aGljaCBwcm92aWRlcyBsb2NhdGlvbiBp
bmZvcm1hdGlvbiBmcm9tIGEgZ2l2ZW4KKyAgICAgICAga2V5Y29kZS4gRm9yIGV4YW1wbGUsIHdo
ZW4gVktfTENPTlRST0wgaXMgZ2l2ZW4sCisgICAgICAgIHJldHVybnMgRE9NX0tFWV9MT0NBVElP
Tl9MRUZULgorICAgICAgICAoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCk6
CisgICAgICAgIEluaXRpYWxpemVkIG1fa2V5TG9jYXRpb24gYnkgdXNpbmcgdGhlIGFib3ZlIGtl
eUxvY2F0aW9uQ29kZS4KKyAgICAgICAgKFdlYkNvcmU6OktleWJvYXJkRXZlbnQ6OmtleUNvZGUp
OgorICAgICAgICBNb2RpZmllZCB0byB1c2UgdGhlIGFib3ZlIHR3byBmdW5jdGlvbnMgdG8gaW5p
dGlhbGl6ZSBrZXljb2RlIHByb3BlcnR5CisgICAgICAgIGFuZCBrZXlsb2NhdGlvbiBwcm9wZXJ0
eS4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9LZXlDb2RlQ29udmVyc2lvbkFuZHJvaWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6d2luZG93c0tleUNvZGVGb3JLZXlFdmVudCk6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb25HdGsuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6d2luZG93c0tleUNvZGVGb3JLZXlFdmVudCk6CisgICAgICAgICogcGxhdGZv
cm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NLZXlD
b2RlRm9yS2V5Q29kZSk6CisgICAgICAgIE1vZGlmaWVkIHRoZXNlIGtleWNvZGUgY29udmVyc2lv
bnMgdG8gcmV0dXJuIGtleWNvZGVzIHdpdGggbG9jYXRpb24KKyAgICAgICAgaW5mb3JtYXRpb24s
IGUuZy4gbW9kaWZpZWQga2V5Y29kZSBjb252ZXJzaW9ucyByZXR1cm5zIFZLX0xDT05UUk9MCisg
ICAgICAgIGZvciBsZWZ0IGNvbnRyb2wuCisKIDIwMTItMDUtMjAgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtWOF0gUGFzcyBJc29sYXRlIHRvIHRocm93
RXJyb3IoKXMgaW4gVjggY3VzdG9tIGJpbmRpbmdzIChQYXJ0IDIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5
Ym9hcmRFdmVudC5jcHAKaW5kZXggZGRkMDdhOGRjYjI0NmEyNjcwOWU0ZWI4ZDcyOTUyY2M5YmEz
ZDIwZS4uMWM2MTE5ZjViYTNjYmUyZDdiMmMxNjM2OGNiMjIyMjAwZmI1NmQzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKKyNpbmNsdWRlICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTUzLDYgKzU0LDQ0IEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGVGb3JLZXlib2FyZEV2ZW50VHlwZShQbGF0Zm9ybUV2ZW50OjpUCiAg
ICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUg
aW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZVdpdGhvdXRMb2NhdGlvbihpbnQga2V5Y29kZSkKK3sK
KyAgICBzd2l0Y2ggKGtleWNvZGUpIHsKKyAgICBjYXNlIFZLX0xDT05UUk9MOgorICAgIGNhc2Ug
VktfUkNPTlRST0w6CisgICAgICAgIHJldHVybiBWS19DT05UUk9MOworICAgIGNhc2UgVktfTFNI
SUZUOgorICAgIGNhc2UgVktfUlNISUZUOgorICAgICAgICByZXR1cm4gVktfU0hJRlQ7CisgICAg
Y2FzZSBWS19MTUVOVToKKyAgICBjYXNlIFZLX1JNRU5VOgorICAgICAgICByZXR1cm4gVktfTUVO
VTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4ga2V5Y29kZTsKKyAgICB9Cit9CisKK3N0
YXRpYyBpbmxpbmUgS2V5Ym9hcmRFdmVudDo6S2V5TG9jYXRpb25Db2RlIGtleUxvY2F0aW9uQ29k
ZShjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSkKK3sKKyAgICBpZiAoa2V5LmlzS2V5
cGFkKCkpCisgICAgICAgIHJldHVybiBLZXlib2FyZEV2ZW50OjpET01fS0VZX0xPQ0FUSU9OX05V
TVBBRDsKKworICAgIHN3aXRjaCAoa2V5LndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpKSB7CisgICAg
Y2FzZSBWS19MQ09OVFJPTDoKKyAgICBjYXNlIFZLX0xTSElGVDoKKyAgICBjYXNlIFZLX0xNRU5V
OgorICAgIGNhc2UgVktfTFdJTjoKKyAgICAgICAgcmV0dXJuIEtleWJvYXJkRXZlbnQ6OkRPTV9L
RVlfTE9DQVRJT05fTEVGVDsKKyAgICBjYXNlIFZLX1JDT05UUk9MOgorICAgIGNhc2UgVktfUlNI
SUZUOgorICAgIGNhc2UgVktfUk1FTlU6CisgICAgY2FzZSBWS19SV0lOOgorICAgICAgICByZXR1
cm4gS2V5Ym9hcmRFdmVudDo6RE9NX0tFWV9MT0NBVElPTl9SSUdIVDsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICByZXR1cm4gS2V5Ym9hcmRFdmVudDo6RE9NX0tFWV9MT0NBVElPTl9TVEFOREFSRDsK
KyAgICB9Cit9CisKIEtleWJvYXJkRXZlbnQ6OktleWJvYXJkRXZlbnQoKQogICAgIDogbV9rZXlM
b2NhdGlvbihET01fS0VZX0xPQ0FUSU9OX1NUQU5EQVJEKQogICAgICwgbV9hbHRHcmFwaEtleShm
YWxzZSkKQEAgLTY0LDcgKzEwMyw3IEBAIEtleWJvYXJkRXZlbnQ6OktleWJvYXJkRXZlbnQoY29u
c3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBrZXksIEFic3RyYWN0VmlldyogdmllCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRydWUsIHRydWUsIHZpZXcsIDAsIGtleS5jdHJsS2V5KCksIGtl
eS5hbHRLZXkoKSwga2V5LnNoaWZ0S2V5KCksIGtleS5tZXRhS2V5KCkpCiAgICAgLCBtX2tleUV2
ZW50KGFkb3B0UHRyKG5ldyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQoa2V5KSkpCiAgICAgLCBtX2tl
eUlkZW50aWZpZXIoa2V5LmtleUlkZW50aWZpZXIoKSkKLSAgICAsIG1fa2V5TG9jYXRpb24oa2V5
LmlzS2V5cGFkKCkgPyBET01fS0VZX0xPQ0FUSU9OX05VTVBBRCA6IERPTV9LRVlfTE9DQVRJT05f
U1RBTkRBUkQpIC8vIEZJWE1FOiBkaWZmZXJlbnRpYXRlIHJpZ2h0L2xlZnQsIHRvbworICAgICwg
bV9rZXlMb2NhdGlvbihrZXlMb2NhdGlvbkNvZGUoa2V5KSkKICAgICAsIG1fYWx0R3JhcGhLZXko
ZmFsc2UpCiB7CiB9CkBAIC0xMjIsNyArMTYxLDggQEAgaW50IEtleWJvYXJkRXZlbnQ6OmtleUNv
ZGUoKSBjb25zdAogICAgIGlmICghbV9rZXlFdmVudCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
aWYgKHR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50IHx8IHR5cGUoKSA9PSBldmVu
dE5hbWVzKCkua2V5dXBFdmVudCkKLSAgICAgICAgcmV0dXJuIG1fa2V5RXZlbnQtPndpbmRvd3NW
aXJ0dWFsS2V5Q29kZSgpOworICAgICAgICByZXR1cm4gd2luZG93c1ZpcnR1YWxLZXlDb2RlV2l0
aG91dExvY2F0aW9uKG1fa2V5RXZlbnQtPndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpKTsKKwogICAg
IHJldHVybiBjaGFyQ29kZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9LZXlDb2RlQ29udmVyc2lvbkFuZHJvaWQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb25BbmRyb2lkLmNwcAppbmRleCA1
Y2Y5MjhhODhiNjc2MWMwN2RiN2Y2MTA2NzM3ZWEwNzQ0NWE1ZTQwLi5mYmM1N2IyOGYyMTQ1MzA1
NDk5NTYzMzRkNWExMDYxYzZjNzg1NzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9LZXlDb2RlQ29udmVyc2lvbkFuZHJvaWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0tleUNvZGVDb252ZXJzaW9uQW5kcm9pZC5jcHAKQEAg
LTk2LDggKzk2LDkgQEAgaW50IHdpbmRvd3NLZXlDb2RlRm9yS2V5RXZlbnQodW5zaWduZWQgaW50
IGtleUNvZGUpCiAgICAgY2FzZSBBS0VZQ09ERV9FTlRFUjoKICAgICAgICAgcmV0dXJuIFZLRVlf
UkVUVVJOOwogICAgIGNhc2UgQUtFWUNPREVfU0hJRlRfTEVGVDoKKyAgICAgICAgcmV0dXJuIFZL
RVlfTFNISUZUOwogICAgIGNhc2UgQUtFWUNPREVfU0hJRlRfUklHSFQ6Ci0gICAgICAgIHJldHVy
biBWS0VZX1NISUZUOworICAgICAgICByZXR1cm4gVktFWV9SU0hJRlQ7CiAgICAgLy8gQmFjayB3
aWxsIHNlcnZlIGFzIGVzY2FwZSwgYWx0aG91Z2ggd2UgbWF5IG5vdCBoYXZlIGFjY2VzcyB0byBp
dC4KICAgICBjYXNlIEFLRVlDT0RFX0JBQ0s6CiAgICAgICAgIHJldHVybiBWS0VZX0VTQ0FQRTsK
QEAgLTIyNyw4ICsyMjgsOSBAQCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudCh1bnNpZ25l
ZCBpbnQga2V5Q29kZSkKICAgICBjYXNlIEFLRVlDT0RFX0NBTEw6CiAgICAgICAgIHJldHVybiBW
S0VZX0VORDsKICAgICBjYXNlIEFLRVlDT0RFX0FMVF9MRUZUOgorICAgICAgICByZXR1cm4gVktF
WV9MTUVOVTsKICAgICBjYXNlIEFLRVlDT0RFX0FMVF9SSUdIVDoKLSAgICAgICAgcmV0dXJuIFZL
RVlfTUVOVTsKKyAgICAgICAgcmV0dXJuIFZLRVlfUk1FTlU7CiAgICAgY2FzZSBBS0VZQ09ERV9H
UkFWRToKICAgICAgICAgcmV0dXJuIFZLRVlfT0VNXzM7CiAgICAgY2FzZSBBS0VZQ09ERV9BUE9T
VFJPUEhFOgpAQCAtMjQ0LDggKzI0Niw5IEBAIGludCB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50
KHVuc2lnbmVkIGludCBrZXlDb2RlKQogICAgIGNhc2UgQUtFWUNPREVfRk9SV0FSRF9ERUw6CiAg
ICAgICAgIHJldHVybiBWS0VZX0RFTEVURTsKICAgICBjYXNlIEFLRVlDT0RFX0NUUkxfTEVGVDoK
KyAgICAgICAgcmV0dXJuIFZLRVlfTENPTlRST0w7CiAgICAgY2FzZSBBS0VZQ09ERV9DVFJMX1JJ
R0hUOgotICAgICAgICByZXR1cm4gVktFWV9DT05UUk9MOworICAgICAgICByZXR1cm4gVktFWV9S
Q09OVFJPTDsKICAgICBjYXNlIEFLRVlDT0RFX0NBUFNfTE9DSzoKICAgICAgICAgcmV0dXJuIFZL
RVlfQ0FQSVRBTDsKICAgICBjYXNlIEFLRVlDT0RFX1NDUk9MTF9MT0NLOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb25HdGsuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb25HdGsu
Y3BwCmluZGV4IGE3ZjQyNDU4NzhhNzQyMGYyMmUzMThiNGIzMTkxMDE2YTc3MDVhN2IuLjU3NTM5
MmZhNzllOGRkMzZjMzY2MDYyNmU1YmNmYzJiZGE4YTRmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0tleUNvZGVDb252ZXJzaW9uR3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9LZXlDb2RlQ29udmVyc2lvbkd0ay5jcHAK
QEAgLTEwMiwxNiArMTAyLDE5IEBAIGludCB3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KHVuc2ln
bmVkIGtleWNvZGUpCiAgICAgY2FzZSBHREtfUmV0dXJuOgogICAgICAgICByZXR1cm4gVktFWV9S
RVRVUk47IC8vKDBEKSBSZXR1cm4ga2V5CiAgICAgY2FzZSBHREtfU2hpZnRfTDoKKyAgICAgICAg
cmV0dXJuIFZLRVlfTFNISUZUOyAvLyAoQTApIExlZnQgU0hJRlQga2V5CiAgICAgY2FzZSBHREtf
U2hpZnRfUjoKLSAgICAgICAgcmV0dXJuIFZLRVlfU0hJRlQ7IC8vICgxMCkgU0hJRlQga2V5Cisg
ICAgICAgIHJldHVybiBWS0VZX1JTSElGVDsgLy8gKEExKSBSaWdodCBTSElGVCBrZXkKICAgICBj
YXNlIEdES19Db250cm9sX0w6CisgICAgICAgIHJldHVybiBWS0VZX0xDT05UUk9MOyAvLyAoQTIp
IExlZnQgQ1RSTCBrZXkKICAgICBjYXNlIEdES19Db250cm9sX1I6Ci0gICAgICAgIHJldHVybiBW
S0VZX0NPTlRST0w7IC8vICgxMSkgQ1RSTCBrZXkKKyAgICAgICAgcmV0dXJuIFZLRVlfUkNPTlRS
T0w7IC8vIChBMykgUmlnaHQgQ1RSTCBrZXkKICAgICBjYXNlIEdES19NZW51OgogICAgICAgICBy
ZXR1cm4gVktFWV9BUFBTOyAgLy8gKDVEKSBBcHBsaWNhdGlvbnMga2V5IChOYXR1cmFsIGtleWJv
YXJkKQogICAgIGNhc2UgR0RLX0FsdF9MOgorICAgICAgICByZXR1cm4gVktFWV9MTUVOVTsgLy8g
KEE0KSBMZWZ0IEFMVCBrZXkKICAgICBjYXNlIEdES19BbHRfUjoKLSAgICAgICAgcmV0dXJuIFZL
RVlfTUVOVTsgLy8gKDEyKSBBTFQga2V5CisgICAgICAgIHJldHVybiBWS0VZX1JNRU5VOyAvLyAo
QTUpIFJpZ2h0IEFMVCBrZXkKIAogICAgIGNhc2UgR0RLX1BhdXNlOgogICAgICAgICByZXR1cm4g
VktFWV9QQVVTRTsgLy8gKDEzKSBQQVVTRSBrZXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9LZXlFdmVudENvY29hLm1tCmluZGV4IDI3YjA0YWVjZWJlZjhmMDgzZTRiOGIyZTg1
ZTJjOTg2OWRmNjE2MDkuLjRkMWU0MWE5ZWQ2ZGM2NzUxOGM1YTlhZGE0ZjdkYmI5MWYyN2E0Y2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQpA
QCAtMzg4LDEzICszODgsMTMgQEAgaW50IHdpbmRvd3NLZXlDb2RlRm9yS2V5Q29kZSh1aW50MTZf
dCBrZXlDb2RlKQogICAgICAgICAvKiAweDM1ICovIFZLX0VTQ0FQRSwKICAgICAgICAgLyogMHgz
NiAqLyBWS19BUFBTLCAvLyBSaWdodCBDb21tYW5kCiAgICAgICAgIC8qIDB4MzcgKi8gVktfTFdJ
TiwgLy8gTGVmdCBDb21tYW5kCi0gICAgICAgIC8qIDB4MzggKi8gVktfU0hJRlQsIC8vIExlZnQg
U2hpZnQKKyAgICAgICAgLyogMHgzOCAqLyBWS19MU0hJRlQsIC8vIExlZnQgU2hpZnQKICAgICAg
ICAgLyogMHgzOSAqLyBWS19DQVBJVEFMLCAvLyBDYXBzIExvY2sKLSAgICAgICAgLyogMHgzQSAq
LyBWS19NRU5VLCAvLyBMZWZ0IE9wdGlvbgotICAgICAgICAvKiAweDNCICovIFZLX0NPTlRST0ws
IC8vIExlZnQgQ3RybAotICAgICAgICAvKiAweDNDICovIFZLX1NISUZULCAvLyBSaWdodCBTaGlm
dAotICAgICAgICAvKiAweDNEICovIFZLX01FTlUsIC8vIFJpZ2h0IE9wdGlvbgotICAgICAgICAv
KiAweDNFICovIFZLX0NPTlRST0wsIC8vIFJpZ2h0IEN0cmwKKyAgICAgICAgLyogMHgzQSAqLyBW
S19MTUVOVSwgLy8gTGVmdCBPcHRpb24KKyAgICAgICAgLyogMHgzQiAqLyBWS19MQ09OVFJPTCwg
Ly8gTGVmdCBDdHJsCisgICAgICAgIC8qIDB4M0MgKi8gVktfUlNISUZULCAvLyBSaWdodCBTaGlm
dAorICAgICAgICAvKiAweDNEICovIFZLX1JNRU5VLCAvLyBSaWdodCBPcHRpb24KKyAgICAgICAg
LyogMHgzRSAqLyBWS19SQ09OVFJPTCwgLy8gUmlnaHQgQ3RybAogICAgICAgICAvKiAweDNGICov
IDAsIC8vIGZuCiAgICAgICAgIC8qIDB4NDAgKi8gVktfRjE3LAogICAgICAgICAvKiAweDQxICov
IFZLX0RFQ0lNQUwsIC8vIE51bSBQYWQgLgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDhjZTVjYjFkNGFiYjMwZWYzNzk2MDU0NDY0Yjc1MGU4YmUx
MGVhOGQuLmUyODlmN2E2M2YyYmZhYzAzODc2ODI0ZjAyZGI3Y2MyOGZkZTA1YTQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBA
QAorMjAxMi0wNS0yMCAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IERPTV9LRVlfTE9DQVRJT05fTEVGVCBhbmQgUklHSFQgb2YgS2V5Ym9h
cmRFdmVudCdzIGxvY2F0aW9uIHByb3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NjY5NAorCisgICAgICAgIE1vZGlmeSBrZXlEb3duIHRvIGNy
ZWF0ZSBsZWZ0LSBhbmQgcmlnaHQtIGNvbnRyb2wsIHNoaWZ0LCBhbmQgYWx0CisgICAgICAgIGtl
eWV2ZW50IGZvciBhIHRlc3QgdG8gY2hlY2sgdGhhdCBrZXlMb2NhdGlvbiBwcm9wZXJ0eSBjYW4g
aGF2ZQorICAgICAgICBET01fS0VZX0xPQ0FUSU9OX0xFRlQgZm9yIGxlZnQtY29udHJvbCwgc2hp
ZnQsIGFuZCBhbHQsIGFuZAorICAgICAgICBET01fS0VZX0xPQ0FUSU9OX1JJR0hUIGZvciByaWdo
dC1jb250cm9sLCBzaGlmdCwgYW5kIGFsdC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0V2ZW50U2VuZGVy
LmNwcDoKKyAgICAgICAgKEV2ZW50U2VuZGVyOjprZXlEb3duKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bRXZlbnRT
ZW5kaW5nQ29udHJvbGxlciBrZXlEb3duOndpdGhNb2RpZmllcnM6d2l0aExvY2F0aW9uOl0pOgor
CiAyMDEyLTA1LTIwICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBzdm4tYXBwbHkgY2Fubm90IGFwcGx5IHBhdGNoZXMgdG8gZmlsZXMgdGhhdCBjb250YWluIHNw
YWNlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVudFNlbmRl
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVudFNlbmRlci5jcHAKaW5k
ZXggN2RkYWFmYmU2ZjJkNjJhZTMxYzFmODg4Njk4YjdiZTZjM2IyYmJkOC4uMDVlNGViODNmZWI3
ZjkxNzY0YzA0NmI0Mjc1NjhlY2NiMzQwNTllZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vRXZlbnRTZW5kZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0V2ZW50U2VuZGVyLmNwcApAQCAtNTU3LDYgKzU1NywyNCBAQCB2b2lkIEV2ZW50
U2VuZGVyOjprZXlEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJp
YW50KiByZXN1bHQpCiAgICAgZWxzZSBpZiAoIm1lbnUiID09IGNvZGVTdHIpCiAgICAgICAgIC8v
IEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9BUFBTLgogICAgICAg
ICBjb2RlID0gMHg1RDsKKyAgICBlbHNlIGlmICgibGVmdENvbnRyb2wiID09IGNvZGVTdHIpCisg
ICAgICAgIC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9MQ09O
VFJPTC4KKyAgICAgICAgY29kZSA9IDB4QTI7CisgICAgZWxzZSBpZiAoInJpZ2h0Q29udHJvbCIg
PT0gY29kZVN0cikKKyAgICAgICAgLy8gRklYTUU6IENoYW5nZSB0aGlzIHRvIHdlYmtpdF9zdXBw
b3J0OjpWS0VZX1JDT05UUk9MLgorICAgICAgICBjb2RlID0gMHhBMzsKKyAgICBlbHNlIGlmICgi
bGVmdFNoaWZ0IiA9PSBjb2RlU3RyKQorICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8g
d2Via2l0X3N1cHBvcnQ6OlZLRVlfTFNISUZULgorICAgICAgICBjb2RlID0gMHhBMDsKKyAgICBl
bHNlIGlmICgicmlnaHRTaGlmdCIgPT0gY29kZVN0cikKKyAgICAgICAgLy8gRklYTUU6IENoYW5n
ZSB0aGlzIHRvIHdlYmtpdF9zdXBwb3J0OjpWS0VZX1JTSElGVC4KKyAgICAgICAgY29kZSA9IDB4
QTE7CisgICAgZWxzZSBpZiAoImxlZnRBbHQiID09IGNvZGVTdHIpCisgICAgICAgIC8vIEZJWE1F
OiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9MTUVOVS4KKyAgICAgICAgY29k
ZSA9IDB4QTQ7CisgICAgZWxzZSBpZiAoInJpZ2h0QWx0IiA9PSBjb2RlU3RyKQorICAgICAgICAv
LyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfUk1FTlUuCisgICAg
ICAgIGNvZGUgPSAweEE1OwogICAgIGVsc2UgewogICAgICAgICAvLyBDb21wYXJlIHRoZSBpbnB1
dCBzdHJpbmcgd2l0aCB0aGUgZnVuY3Rpb24ta2V5IG5hbWVzIGRlZmluZWQgYnkgdGhlCiAgICAg
ICAgIC8vIERPTSBzcGVjIChpLmUuICJGMSIsLi4uLCJGMjQiKS4gSWYgdGhlIGlucHV0IHN0cmlu
ZyBpcyBhIGZ1bmN0aW9uLWtleQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRXZl
bnRTZW5kaW5nQ29udHJvbGxlci5tbQppbmRleCA3NmFjNjkyNjc0MTkyZTU1MWU5OWU5MmRiNTE4
MWZmZDhkOGZiZTY3Li5kYzhiMjY2OTNiMTFlMDRiZWZiYTk2Mjg3ZDk4MzJlYTFkYTNjODljIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJvbGxl
ci5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJvbGxl
ci5tbQpAQCAtNjIxLDYgKzYyMSwzMCBAQCBzdGF0aWMgaW50IGJ1aWxkTW9kaWZpZXJGbGFncyhj
b25zdCBXZWJTY3JpcHRPYmplY3QqIG1vZGlmaWVycykKICAgICAgICAgY29uc3QgdW5pY2hhciBj
aCA9IDB4MDQzMDsKICAgICAgICAgZXZlbnRDaGFyYWN0ZXIgPSBbTlNTdHJpbmcgc3RyaW5nV2l0
aENoYXJhY3RlcnM6JmNoIGxlbmd0aDoxXTsKICAgICAgICAga2V5Q29kZSA9IDB4MzsgLy8gU2hh
cmVzIGtleSB3aXRoICJGIiBvbiBSdXNzaWFuIGxheW91dC4KKyAgICB9IGVsc2UgaWYgKFtjaGFy
YWN0ZXIgaXNFcXVhbFRvU3RyaW5nOkAibGVmdENvbnRyb2wiXSkgeworICAgICAgICBjb25zdCB1
bmljaGFyIGNoID0gMHhGRkUzOworICAgICAgICBldmVudENoYXJhY3RlciA9IFtOU1N0cmluZyBz
dHJpbmdXaXRoQ2hhcmFjdGVyczomY2ggbGVuZ3RoOjFdOworICAgICAgICBrZXlDb2RlID0gMHgz
QjsKKyAgICB9IGVsc2UgaWYgKFtjaGFyYWN0ZXIgaXNFcXVhbFRvU3RyaW5nOkAibGVmdFNoaWZ0
Il0pIHsKKyAgICAgICAgY29uc3QgdW5pY2hhciBjaCA9IDB4RkZFMTsKKyAgICAgICAgZXZlbnRD
aGFyYWN0ZXIgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6JmNoIGxlbmd0aDoxXTsK
KyAgICAgICAga2V5Q29kZSA9IDB4Mzg7CisgICAgfSBlbHNlIGlmIChbY2hhcmFjdGVyIGlzRXF1
YWxUb1N0cmluZzpAImxlZnRBbHQiXSkgeworICAgICAgICBjb25zdCB1bmljaGFyIGNoID0gMHhG
RkU3OworICAgICAgICBldmVudENoYXJhY3RlciA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ2hhcmFj
dGVyczomY2ggbGVuZ3RoOjFdOworICAgICAgICBrZXlDb2RlID0gMHgzQTsKKyAgICB9IGVsc2Ug
aWYgKFtjaGFyYWN0ZXIgaXNFcXVhbFRvU3RyaW5nOkAicmlnaHRDb250cm9sIl0pIHsKKyAgICAg
ICAgY29uc3QgdW5pY2hhciBjaCA9IDB4RkZFNDsKKyAgICAgICAgZXZlbnRDaGFyYWN0ZXIgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6JmNoIGxlbmd0aDoxXTsKKyAgICAgICAga2V5
Q29kZSA9IDB4M0U7CisgICAgfSBlbHNlIGlmIChbY2hhcmFjdGVyIGlzRXF1YWxUb1N0cmluZzpA
InJpZ2h0U2hpZnQiXSkgeworICAgICAgICBjb25zdCB1bmljaGFyIGNoID0gMHhGRkUyOworICAg
ICAgICBldmVudENoYXJhY3RlciA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVyczomY2gg
bGVuZ3RoOjFdOworICAgICAgICBrZXlDb2RlID0gMHgzQzsKKyAgICB9IGVsc2UgaWYgKFtjaGFy
YWN0ZXIgaXNFcXVhbFRvU3RyaW5nOkAicmlnaHRBbHQiXSkgeworICAgICAgICBjb25zdCB1bmlj
aGFyIGNoID0gMHhGRkU4OworICAgICAgICBldmVudENoYXJhY3RlciA9IFtOU1N0cmluZyBzdHJp
bmdXaXRoQ2hhcmFjdGVyczomY2ggbGVuZ3RoOjFdOworICAgICAgICBrZXlDb2RlID0gMHgzRDsK
ICAgICB9CiAKICAgICAvLyBDb21wYXJlIHRoZSBpbnB1dCBzdHJpbmcgd2l0aCB0aGUgZnVuY3Rp
b24ta2V5IG5hbWVzIGRlZmluZWQgYnkgdGhlIERPTSBzcGVjIChpLmUuICJGMSIsLi4uLCJGMjQi
KS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA5YzdjNTBhODAyYjVlYjM5MDQxM2RhZTEyMGVmZGZjZTZhZjZkZDBiLi5lMjA1
YWM0NTIyMDU3MjYzMjcxNzkwZmU1YjRmMDQ1YTViMDVjZTYyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMDUtMjAgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisg
ICAgICAgIEltcGxlbWVudCBET01fS0VZX0xPQ0FUSU9OX0xFRlQgYW5kIFJJR0hUIG9mIEtleWJv
YXJkRXZlbnQncyBsb2NhdGlvbiBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY2OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL2tleWRvd24tbGVmdHJpZ2h0LWtleXMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9rZXlkb3duLWxlZnRy
aWdodC1rZXlzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA1LTIwICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzaW5nIGNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudCB0
byBpbnNlcnQgYSA8c2NyaXB0PiBkb2VzIG5vdCBjYXVzZSB0aGUgc2NyaXB0IHRvIGV4ZWN1dGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2tleWRvd24tbGVmdHJpZ2h0LWtl
eXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMva2V5ZG93bi1sZWZ0cmln
aHQta2V5cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JkNDg0OWNlY2Q5YTdjYTU4MDYwMjNl
NjgxOTY3NTI5NGZlN2Q2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2tleWRvd24tbGVmdHJpZ2h0LWtleXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjggQEAK
KworVGhpcyB0ZXN0cyBrZXlib2FyZCBldmVudHMgd2l0aCBLZXlMb2NhdGlvbkNvZGUgYXJndW1l
bnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGxhc3RLZXlib2FyZEV2
ZW50LnR5cGUgaXMgImtleWRvd24iCitQQVNTIGxhc3RLZXlib2FyZEV2ZW50LmtleUNvZGUgaXMg
MTYKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQua2V5TG9jYXRpb24gaXMgS0VZX0xPQ0FUSU9OX0xF
RlQKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQudHlwZSBpcyAia2V5ZG93biIKK1BBU1MgbGFzdEtl
eWJvYXJkRXZlbnQua2V5Q29kZSBpcyAxNworUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlMb2Nh
dGlvbiBpcyBLRVlfTE9DQVRJT05fTEVGVAorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC50eXBlIGlz
ICJrZXlkb3duIgorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlDb2RlIGlzIDE4CitQQVNTIGxh
c3RLZXlib2FyZEV2ZW50LmtleUxvY2F0aW9uIGlzIEtFWV9MT0NBVElPTl9MRUZUCitQQVNTIGxh
c3RLZXlib2FyZEV2ZW50LnR5cGUgaXMgImtleWRvd24iCitQQVNTIGxhc3RLZXlib2FyZEV2ZW50
LmtleUNvZGUgaXMgMTYKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQua2V5TG9jYXRpb24gaXMgS0VZ
X0xPQ0FUSU9OX1JJR0hUCitQQVNTIGxhc3RLZXlib2FyZEV2ZW50LnR5cGUgaXMgImtleWRvd24i
CitQQVNTIGxhc3RLZXlib2FyZEV2ZW50LmtleUNvZGUgaXMgMTcKK1BBU1MgbGFzdEtleWJvYXJk
RXZlbnQua2V5TG9jYXRpb24gaXMgS0VZX0xPQ0FUSU9OX1JJR0hUCitQQVNTIGxhc3RLZXlib2Fy
ZEV2ZW50LnR5cGUgaXMgImtleWRvd24iCitQQVNTIGxhc3RLZXlib2FyZEV2ZW50LmtleUNvZGUg
aXMgMTgKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQua2V5TG9jYXRpb24gaXMgS0VZX0xPQ0FUSU9O
X1JJR0hUCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMva2V5ZG93bi1sZWZ0cmlnaHQt
a2V5cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMva2V5ZG93bi1sZWZ0cmlnaHQta2V5
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUzMDM1NDNmMGMxODhiZjMyMzM0NWNjNzBlZDAxM2EwNjI4MmIz
N2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9rZXlkb3duLWxl
ZnRyaWdodC1rZXlzLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMga2V5Ym9hcmQgZXZlbnRzIHdpdGgg
S2V5TG9jYXRpb25Db2RlIGFyZ3VtZW50LiIpOworCit2YXIgbGFzdEtleWJvYXJkRXZlbnQ7Cit2
YXIgVktfU0hJRlQgPSAxNjsKK3ZhciBWS19DT05UUk9MID0gMTc7Cit2YXIgVktfTUVOVSA9IDE4
OwordmFyIEtFWV9MT0NBVElPTl9MRUZUID0gMTsKK3ZhciBLRVlfTE9DQVRJT05fUklHSFQgPSAy
OworCitmdW5jdGlvbiByZWNvcmRLZXlFdmVudChldikgeworICAgIGV2ID0gZXYgfHwgZXZlbnQ7
CisgICAgZXYua2V5Q29kZSA9IChldi53aGljaCB8fCBldi5rZXlDb2RlKTsKKyAgICBpZiAod2lu
ZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGxhc3RLZXlib2FyZEV2ZW50ID0gZXY7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgZGVidWcoJ1R5cGU9JyArIGV2LnR5cGUgKyAnLCcgKworICAgICAg
ICAgICAgICAna2V5Q29kZT0nICsgZXYua2V5Q29kZSArICcsJyArCisgICAgICAgICAgICAgICdj
dHJsS2V5PScgKyBldi5jdHJsS2V5ICsgJywnICsKKyAgICAgICAgICAgICAgJ3NoaWZ0S2V5PScg
KyBldi5zaGlmdEtleSArICcsJyArCisgICAgICAgICAgICAgICdhbHRLZXk9JyArIGV2LmFsdEtl
eSArICcsJyArCisgICAgICAgICAgICAgICdtZXRhS2V5PScgKyBldi5tZXRhS2V5ICsgJywnICsK
KyAgICAgICAgICAgICAgJ2xvY2F0aW9uPScgKyBldi5rZXlMb2NhdGlvbik7CisgICAgfQorfQor
CitmdW5jdGlvbiB0ZXN0S2V5RXZlbnRXaXRoTG9jYXRpb24oZXZTdHJpbmcsIGV4cGVjdGVkS2V5
Q29kZSwgZXhwZWN0ZWRMb2NhdGlvbikgeworICAgIGV2ZW50U2VuZGVyLmtleURvd24oZXZTdHJp
bmcsIFtdKTsKKyAgICBzaG91bGRCZSgibGFzdEtleWJvYXJkRXZlbnQudHlwZSIsICcia2V5ZG93
biInKTsKKyAgICBzaG91bGRFdmFsdWF0ZVRvKCJsYXN0S2V5Ym9hcmRFdmVudC5rZXlDb2RlIiwg
ZXhwZWN0ZWRLZXlDb2RlKTsKKyAgICBzaG91bGRFdmFsdWF0ZVRvKCJsYXN0S2V5Ym9hcmRFdmVu
dC5rZXlMb2NhdGlvbiIsIGV4cGVjdGVkTG9jYXRpb24pOworfQorCit2YXIgdGV4dGFyZWEgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpOwordGV4dGFyZWEuYWRkRXZlbnRMaXN0
ZW5lcigia2V5ZG93biIsIHJlY29yZEtleUV2ZW50LCBmYWxzZSk7Citkb2N1bWVudC5ib2R5Lmlu
c2VydEJlZm9yZSh0ZXh0YXJlYSwgZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKTsKK3RleHRhcmVh
LmZvY3VzKCk7CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAvLyBsb2NhdGlvbj0w
IGluZGljYXRlcyB0aGF0IHdlIHNlbmQgZXZlbnRzIGFzIHN0YW5kYXJkIGtleXMuCisgICAgdGVz
dEtleUV2ZW50V2l0aExvY2F0aW9uKCJsZWZ0U2hpZnQiLCBWS19TSElGVCwgIktFWV9MT0NBVElP
Tl9MRUZUIik7CisgICAgdGVzdEtleUV2ZW50V2l0aExvY2F0aW9uKCJsZWZ0Q29udHJvbCIsIFZL
X0NPTlRST0wsICJLRVlfTE9DQVRJT05fTEVGVCIpOworICAgIHRlc3RLZXlFdmVudFdpdGhMb2Nh
dGlvbigibGVmdEFsdCIsIFZLX01FTlUsICJLRVlfTE9DQVRJT05fTEVGVCIpOworCisgICAgdGVz
dEtleUV2ZW50V2l0aExvY2F0aW9uKCJyaWdodFNoaWZ0IiwgVktfU0hJRlQsICJLRVlfTE9DQVRJ
T05fUklHSFQiKTsKKyAgICB0ZXN0S2V5RXZlbnRXaXRoTG9jYXRpb24oInJpZ2h0Q29udHJvbCIs
IFZLX0NPTlRST0wsICJLRVlfTE9DQVRJT05fUklHSFQiKTsKKyAgICB0ZXN0S2V5RXZlbnRXaXRo
TG9jYXRpb24oInJpZ2h0QWx0IiwgVktfTUVOVSwgIktFWV9MT0NBVElPTl9SSUdIVCIpOworfSBl
bHNlIHsKKyAgICBkZWJ1ZygiVGhpcyB0ZXN0IHJlcXVpcmVzIER1bXBSZW5kZXJUcmVlLiIpOwor
fQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143202</attachid>
            <date>2012-05-21 23:56:47 -0700</date>
            <delta_ts>2012-05-22 10:44:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86694-20120522155645.patch</filename>
            <type>text/plain</type>
            <size>17997</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3OTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRiNGI0ZjZmYWMwOWY4
OTczM2U0ZDZlODIzOTE4MTQ3ZDFkMTIzNy4uNzcxZmVkZmJiYmUxMDY1YjA1M2IyZDQyMjQxODc4
M2QxODAxNmY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTA1LTIwICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgRE9N
X0tFWV9MT0NBVElPTl9MRUZUIGFuZCBSSUdIVCBvZiBLZXlib2FyZEV2ZW50J3MgbG9jYXRpb24g
cHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg2Njk0CisKKyAgICAgICAgQXMgS2V5Ym9hcmRFdmVudCBmb3IgbGVmdC9yaWdodCBsb2NhdGlv
biBrZXksIGUuZy4gbGVmdC1jb250cm9sLAorICAgICAgICByaWdodC1jb250cm9sLCBwcm92aWRl
cyBET01fS0VZX0xPQ0FUSU9OX1NUQU5EQVJEIGFzIGtleUxvY2F0aW9uIHByb3BlcnR5LAorICAg
ICAgICBtb2RpZmllZCBLZXlDb2RlQ29udmVyc2lvbiB0byBtYWtlIFBsYXRmb3JtS2V5Ym9hcmRF
dmVudAorICAgICAgICBwcm92aWRlIHZpcnR1YWwga2V5Y29kZXMgd2l0aCBsb2NhdGlvbiBpbmZv
cm1hdGlvbiwgZS5nLiBWS19MQ09OVFJPTCBvcgorICAgICAgICBWS19SQ09OVFJPTCwgYW5kIG1v
ZGlmaWVkIEtleWJvYXJkRXZlbnQgdG8gZ2VuZXJhdGUgbG9jYXRpb24gaW5mb3JtYXRpb24KKyAg
ICAgICAgZnJvbSB0aGUgdmlydHVhbCBrZXljb2RlcywgZS5nLiBnZW5yYXRpbmcgRE9NX0tFWV9M
T0NBVElPTl9MRUZUIGZvcgorICAgICAgICBWS19MQ09OVFJPTC4gS2V5Ym9hcmRFdmVudCBhbHNv
IHJlbW92ZXMgbG9jYXRpb24gaW5mb3JtYXRpb24gZnJvbQorICAgICAgICB0aGUgdmlydHVhbCBr
ZXljb2RlcywgZS5nLiBnZW5yYXRpbmcgVktfQ09OVFJPTCBmb3IgVktfTENPTlRST0wuCisgICAg
ICAgIFRoZSBsb2NhdGlvbiBwcm9wZXJ0eSBpcyBkZWZpbmVkIGluIHRoZSBXM0MgRE9NMyBzcGVj
aWZpY2F0aW9uOgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVu
dHMvI2V2ZW50cy1rZXlib2FyZGV2ZW50cworCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQ
cm9za3VyeWFrb3YuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMva2V5ZG93bi1sZWZ0cmln
aHQta2V5cy5odG1sCisKKyAgICAgICAgKiBkb20vS2V5Ym9hcmRFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp3aW5kb3dzVmlydHVhbEtleUNvZGVXaXRob3V0TG9jYXRpb24pOgorICAgICAg
ICBBZGRlZCBhIGZ1bmN0aW9uIHdoaWNoIHJlbW92ZXMgbG9jYXRpb24gaW5mb3JtYXRpb24gZnJv
bSBhIGdpdmVuCisgICAgICAgIGtleWNvZGUuIEZvciBleGFtcGxlLCB3aGVuIFZLX0xDT05UUk9M
IGlzIGdpdmVuLCByZXR1cm5zIFZLX0NPTlRST0wuCisgICAgICAgIChXZWJDb3JlOjprZXlMb2Nh
dGlvbkNvZGUpOgorICAgICAgICBBZGRlZCBhIGZ1bmN0aW9uIHdoaWNoIHByb3ZpZGVzIGxvY2F0
aW9uIGluZm9ybWF0aW9uIGZyb20gYSBnaXZlbgorICAgICAgICBrZXljb2RlLiBGb3IgZXhhbXBs
ZSwgd2hlbiBWS19MQ09OVFJPTCBpcyBnaXZlbiwKKyAgICAgICAgcmV0dXJucyBET01fS0VZX0xP
Q0FUSU9OX0xFRlQuCisgICAgICAgIChXZWJDb3JlOjpLZXlib2FyZEV2ZW50OjpLZXlib2FyZEV2
ZW50KToKKyAgICAgICAgSW5pdGlhbGl6ZWQgbV9rZXlMb2NhdGlvbiBieSB1c2luZyB0aGUgYWJv
dmUga2V5TG9jYXRpb25Db2RlLgorICAgICAgICAoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudDo6a2V5
Q29kZSk6CisgICAgICAgIE1vZGlmaWVkIHRvIHVzZSB0aGUgYWJvdmUgdHdvIGZ1bmN0aW9ucyB0
byBpbml0aWFsaXplIGtleWNvZGUgcHJvcGVydHkKKyAgICAgICAgYW5kIGtleWxvY2F0aW9uIHBy
b3BlcnR5LgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0tleUNvZGVDb252ZXJzaW9uQW5k
cm9pZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9LZXlDb2RlQ29udmVyc2lvbkd0ay5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjp3aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6d2luZG93
c0tleUNvZGVGb3JLZXlDb2RlKToKKyAgICAgICAgTW9kaWZpZWQgdGhlc2Uga2V5Y29kZSBjb252
ZXJzaW9ucyB0byByZXR1cm4ga2V5Y29kZXMgd2l0aCBsb2NhdGlvbgorICAgICAgICBpbmZvcm1h
dGlvbiwgZS5nLiBtb2RpZmllZCBrZXljb2RlIGNvbnZlcnNpb25zIHJldHVybnMgVktfTENPTlRS
T0wKKyAgICAgICAgZm9yIGxlZnQgY29udHJvbC4KKwogMjAxMi0wNS0yMSAgU2FtIEQgIDxkc2Ft
MjkxMkBnbWFpbC5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogIkRlYWN0aXZhdGUgQWxs
IEJyZWFrcG9pbnRzIiBzaG91bGQgdmlzdWFsbHkgZ2V0IHJlZmxlY3RlZCBpbiBCcmVha3BvaW50
cyBwYW5lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCmluZGV4IGRkZDA3YThkY2Iy
NDZhMjY3MDllNGViOGQ3Mjk1MmNjOWJhM2QyMGUuLjFjNjExOWY1YmEzY2JlMmQ3YjJjMTYzNjhj
YjIyMjIwMGZiNTZkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9h
cmRFdmVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiV2luZG93c0tleWJv
YXJkQ29kZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Myw2ICs1NCw0NCBAQCBz
dGF0aWMgaW5saW5lIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlRm9yS2V5Ym9hcmRFdmVu
dFR5cGUoUGxhdGZvcm1FdmVudDo6VAogICAgIHJldHVybiBldmVudE5hbWVzKCkua2V5ZG93bkV2
ZW50OwogfQogCitzdGF0aWMgaW5saW5lIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGVXaXRob3V0
TG9jYXRpb24oaW50IGtleWNvZGUpCit7CisgICAgc3dpdGNoIChrZXljb2RlKSB7CisgICAgY2Fz
ZSBWS19MQ09OVFJPTDoKKyAgICBjYXNlIFZLX1JDT05UUk9MOgorICAgICAgICByZXR1cm4gVktf
Q09OVFJPTDsKKyAgICBjYXNlIFZLX0xTSElGVDoKKyAgICBjYXNlIFZLX1JTSElGVDoKKyAgICAg
ICAgcmV0dXJuIFZLX1NISUZUOworICAgIGNhc2UgVktfTE1FTlU6CisgICAgY2FzZSBWS19STUVO
VToKKyAgICAgICAgcmV0dXJuIFZLX01FTlU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJu
IGtleWNvZGU7CisgICAgfQorfQorCitzdGF0aWMgaW5saW5lIEtleWJvYXJkRXZlbnQ6OktleUxv
Y2F0aW9uQ29kZSBrZXlMb2NhdGlvbkNvZGUoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBr
ZXkpCit7CisgICAgaWYgKGtleS5pc0tleXBhZCgpKQorICAgICAgICByZXR1cm4gS2V5Ym9hcmRF
dmVudDo6RE9NX0tFWV9MT0NBVElPTl9OVU1QQUQ7CisKKyAgICBzd2l0Y2ggKGtleS53aW5kb3dz
VmlydHVhbEtleUNvZGUoKSkgeworICAgIGNhc2UgVktfTENPTlRST0w6CisgICAgY2FzZSBWS19M
U0hJRlQ6CisgICAgY2FzZSBWS19MTUVOVToKKyAgICBjYXNlIFZLX0xXSU46CisgICAgICAgIHJl
dHVybiBLZXlib2FyZEV2ZW50OjpET01fS0VZX0xPQ0FUSU9OX0xFRlQ7CisgICAgY2FzZSBWS19S
Q09OVFJPTDoKKyAgICBjYXNlIFZLX1JTSElGVDoKKyAgICBjYXNlIFZLX1JNRU5VOgorICAgIGNh
c2UgVktfUldJTjoKKyAgICAgICAgcmV0dXJuIEtleWJvYXJkRXZlbnQ6OkRPTV9LRVlfTE9DQVRJ
T05fUklHSFQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIEtleWJvYXJkRXZlbnQ6OkRP
TV9LRVlfTE9DQVRJT05fU1RBTkRBUkQ7CisgICAgfQorfQorCiBLZXlib2FyZEV2ZW50OjpLZXli
b2FyZEV2ZW50KCkKICAgICA6IG1fa2V5TG9jYXRpb24oRE9NX0tFWV9MT0NBVElPTl9TVEFOREFS
RCkKICAgICAsIG1fYWx0R3JhcGhLZXkoZmFsc2UpCkBAIC02NCw3ICsxMDMsNyBAQCBLZXlib2Fy
ZEV2ZW50OjpLZXlib2FyZEV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYga2V5LCBB
YnN0cmFjdFZpZXcqIHZpZQogICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCB0cnVlLCB2
aWV3LCAwLCBrZXkuY3RybEtleSgpLCBrZXkuYWx0S2V5KCksIGtleS5zaGlmdEtleSgpLCBrZXku
bWV0YUtleSgpKQogICAgICwgbV9rZXlFdmVudChhZG9wdFB0cihuZXcgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50KGtleSkpKQogICAgICwgbV9rZXlJZGVudGlmaWVyKGtleS5rZXlJZGVudGlmaWVyKCkp
Ci0gICAgLCBtX2tleUxvY2F0aW9uKGtleS5pc0tleXBhZCgpID8gRE9NX0tFWV9MT0NBVElPTl9O
VU1QQUQgOiBET01fS0VZX0xPQ0FUSU9OX1NUQU5EQVJEKSAvLyBGSVhNRTogZGlmZmVyZW50aWF0
ZSByaWdodC9sZWZ0LCB0b28KKyAgICAsIG1fa2V5TG9jYXRpb24oa2V5TG9jYXRpb25Db2RlKGtl
eSkpCiAgICAgLCBtX2FsdEdyYXBoS2V5KGZhbHNlKQogewogfQpAQCAtMTIyLDcgKzE2MSw4IEBA
IGludCBLZXlib2FyZEV2ZW50OjprZXlDb2RlKCkgY29uc3QKICAgICBpZiAoIW1fa2V5RXZlbnQp
CiAgICAgICAgIHJldHVybiAwOwogICAgIGlmICh0eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRv
d25FdmVudCB8fCB0eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXVwRXZlbnQpCi0gICAgICAgIHJl
dHVybiBtX2tleUV2ZW50LT53aW5kb3dzVmlydHVhbEtleUNvZGUoKTsKKyAgICAgICAgcmV0dXJu
IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZVdpdGhvdXRMb2NhdGlvbihtX2tleUV2ZW50LT53aW5kb3dz
VmlydHVhbEtleUNvZGUoKSk7CisKICAgICByZXR1cm4gY2hhckNvZGUoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb25B
bmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0tleUNvZGVDb252
ZXJzaW9uQW5kcm9pZC5jcHAKaW5kZXggNWNmOTI4YTg4YjY3NjFjMDdkYjdmNjEwNjczN2VhMDc0
NDVhNWU0MC4uZmJjNTdiMjhmMjE0NTMwNTQ5OTU2MzM0ZDVhMTA2MWM2Yzc4NTc4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb25B
bmRyb2lkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9LZXlDb2Rl
Q29udmVyc2lvbkFuZHJvaWQuY3BwCkBAIC05Niw4ICs5Niw5IEBAIGludCB3aW5kb3dzS2V5Q29k
ZUZvcktleUV2ZW50KHVuc2lnbmVkIGludCBrZXlDb2RlKQogICAgIGNhc2UgQUtFWUNPREVfRU5U
RVI6CiAgICAgICAgIHJldHVybiBWS0VZX1JFVFVSTjsKICAgICBjYXNlIEFLRVlDT0RFX1NISUZU
X0xFRlQ6CisgICAgICAgIHJldHVybiBWS0VZX0xTSElGVDsKICAgICBjYXNlIEFLRVlDT0RFX1NI
SUZUX1JJR0hUOgotICAgICAgICByZXR1cm4gVktFWV9TSElGVDsKKyAgICAgICAgcmV0dXJuIFZL
RVlfUlNISUZUOwogICAgIC8vIEJhY2sgd2lsbCBzZXJ2ZSBhcyBlc2NhcGUsIGFsdGhvdWdoIHdl
IG1heSBub3QgaGF2ZSBhY2Nlc3MgdG8gaXQuCiAgICAgY2FzZSBBS0VZQ09ERV9CQUNLOgogICAg
ICAgICByZXR1cm4gVktFWV9FU0NBUEU7CkBAIC0yMjcsOCArMjI4LDkgQEAgaW50IHdpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQodW5zaWduZWQgaW50IGtleUNvZGUpCiAgICAgY2FzZSBBS0VZQ09E
RV9DQUxMOgogICAgICAgICByZXR1cm4gVktFWV9FTkQ7CiAgICAgY2FzZSBBS0VZQ09ERV9BTFRf
TEVGVDoKKyAgICAgICAgcmV0dXJuIFZLRVlfTE1FTlU7CiAgICAgY2FzZSBBS0VZQ09ERV9BTFRf
UklHSFQ6Ci0gICAgICAgIHJldHVybiBWS0VZX01FTlU7CisgICAgICAgIHJldHVybiBWS0VZX1JN
RU5VOwogICAgIGNhc2UgQUtFWUNPREVfR1JBVkU6CiAgICAgICAgIHJldHVybiBWS0VZX09FTV8z
OwogICAgIGNhc2UgQUtFWUNPREVfQVBPU1RST1BIRToKQEAgLTI0NCw4ICsyNDYsOSBAQCBpbnQg
d2luZG93c0tleUNvZGVGb3JLZXlFdmVudCh1bnNpZ25lZCBpbnQga2V5Q29kZSkKICAgICBjYXNl
IEFLRVlDT0RFX0ZPUldBUkRfREVMOgogICAgICAgICByZXR1cm4gVktFWV9ERUxFVEU7CiAgICAg
Y2FzZSBBS0VZQ09ERV9DVFJMX0xFRlQ6CisgICAgICAgIHJldHVybiBWS0VZX0xDT05UUk9MOwog
ICAgIGNhc2UgQUtFWUNPREVfQ1RSTF9SSUdIVDoKLSAgICAgICAgcmV0dXJuIFZLRVlfQ09OVFJP
TDsKKyAgICAgICAgcmV0dXJuIFZLRVlfUkNPTlRST0w7CiAgICAgY2FzZSBBS0VZQ09ERV9DQVBT
X0xPQ0s6CiAgICAgICAgIHJldHVybiBWS0VZX0NBUElUQUw7CiAgICAgY2FzZSBBS0VZQ09ERV9T
Q1JPTExfTE9DSzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0tleUNvZGVDb252ZXJzaW9uR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0tleUNvZGVDb252ZXJzaW9uR3RrLmNwcAppbmRleCBhN2Y0MjQ1ODc4YTc0MjBmMjJlMzE4
YjRiMzE5MTAxNmE3NzA1YTdiLi41NzUzOTJmYTc5ZThkZDM2YzM2NjA2MjZlNWJjZmMyYmRhOGE0
ZjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9LZXlDb2Rl
Q29udmVyc2lvbkd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
S2V5Q29kZUNvbnZlcnNpb25HdGsuY3BwCkBAIC0xMDIsMTYgKzEwMiwxOSBAQCBpbnQgd2luZG93
c0tleUNvZGVGb3JLZXlFdmVudCh1bnNpZ25lZCBrZXljb2RlKQogICAgIGNhc2UgR0RLX1JldHVy
bjoKICAgICAgICAgcmV0dXJuIFZLRVlfUkVUVVJOOyAvLygwRCkgUmV0dXJuIGtleQogICAgIGNh
c2UgR0RLX1NoaWZ0X0w6CisgICAgICAgIHJldHVybiBWS0VZX0xTSElGVDsgLy8gKEEwKSBMZWZ0
IFNISUZUIGtleQogICAgIGNhc2UgR0RLX1NoaWZ0X1I6Ci0gICAgICAgIHJldHVybiBWS0VZX1NI
SUZUOyAvLyAoMTApIFNISUZUIGtleQorICAgICAgICByZXR1cm4gVktFWV9SU0hJRlQ7IC8vIChB
MSkgUmlnaHQgU0hJRlQga2V5CiAgICAgY2FzZSBHREtfQ29udHJvbF9MOgorICAgICAgICByZXR1
cm4gVktFWV9MQ09OVFJPTDsgLy8gKEEyKSBMZWZ0IENUUkwga2V5CiAgICAgY2FzZSBHREtfQ29u
dHJvbF9SOgotICAgICAgICByZXR1cm4gVktFWV9DT05UUk9MOyAvLyAoMTEpIENUUkwga2V5Cisg
ICAgICAgIHJldHVybiBWS0VZX1JDT05UUk9MOyAvLyAoQTMpIFJpZ2h0IENUUkwga2V5CiAgICAg
Y2FzZSBHREtfTWVudToKICAgICAgICAgcmV0dXJuIFZLRVlfQVBQUzsgIC8vICg1RCkgQXBwbGlj
YXRpb25zIGtleSAoTmF0dXJhbCBrZXlib2FyZCkKICAgICBjYXNlIEdES19BbHRfTDoKKyAgICAg
ICAgcmV0dXJuIFZLRVlfTE1FTlU7IC8vIChBNCkgTGVmdCBBTFQga2V5CiAgICAgY2FzZSBHREtf
QWx0X1I6Ci0gICAgICAgIHJldHVybiBWS0VZX01FTlU7IC8vICgxMikgQUxUIGtleQorICAgICAg
ICByZXR1cm4gVktFWV9STUVOVTsgLy8gKEE1KSBSaWdodCBBTFQga2V5CiAKICAgICBjYXNlIEdE
S19QYXVzZToKICAgICAgICAgcmV0dXJuIFZLRVlfUEFVU0U7IC8vICgxMykgUEFVU0Uga2V5CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQppbmRleCAy
N2IwNGFlY2ViZWY4ZjA4M2U0YjhiMmU4NWUyYzk4NjlkZjYxNjA5Li40ZDFlNDFhOWVkNmRjNjc1
MThjNWE5YWRhNGY3ZGJiOTFmMjdhNGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL0tleUV2ZW50Q29jb2EubW0KQEAgLTM4OCwxMyArMzg4LDEzIEBAIGludCB3aW5kb3dz
S2V5Q29kZUZvcktleUNvZGUodWludDE2X3Qga2V5Q29kZSkKICAgICAgICAgLyogMHgzNSAqLyBW
S19FU0NBUEUsCiAgICAgICAgIC8qIDB4MzYgKi8gVktfQVBQUywgLy8gUmlnaHQgQ29tbWFuZAog
ICAgICAgICAvKiAweDM3ICovIFZLX0xXSU4sIC8vIExlZnQgQ29tbWFuZAotICAgICAgICAvKiAw
eDM4ICovIFZLX1NISUZULCAvLyBMZWZ0IFNoaWZ0CisgICAgICAgIC8qIDB4MzggKi8gVktfTFNI
SUZULCAvLyBMZWZ0IFNoaWZ0CiAgICAgICAgIC8qIDB4MzkgKi8gVktfQ0FQSVRBTCwgLy8gQ2Fw
cyBMb2NrCi0gICAgICAgIC8qIDB4M0EgKi8gVktfTUVOVSwgLy8gTGVmdCBPcHRpb24KLSAgICAg
ICAgLyogMHgzQiAqLyBWS19DT05UUk9MLCAvLyBMZWZ0IEN0cmwKLSAgICAgICAgLyogMHgzQyAq
LyBWS19TSElGVCwgLy8gUmlnaHQgU2hpZnQKLSAgICAgICAgLyogMHgzRCAqLyBWS19NRU5VLCAv
LyBSaWdodCBPcHRpb24KLSAgICAgICAgLyogMHgzRSAqLyBWS19DT05UUk9MLCAvLyBSaWdodCBD
dHJsCisgICAgICAgIC8qIDB4M0EgKi8gVktfTE1FTlUsIC8vIExlZnQgT3B0aW9uCisgICAgICAg
IC8qIDB4M0IgKi8gVktfTENPTlRST0wsIC8vIExlZnQgQ3RybAorICAgICAgICAvKiAweDNDICov
IFZLX1JTSElGVCwgLy8gUmlnaHQgU2hpZnQKKyAgICAgICAgLyogMHgzRCAqLyBWS19STUVOVSwg
Ly8gUmlnaHQgT3B0aW9uCisgICAgICAgIC8qIDB4M0UgKi8gVktfUkNPTlRST0wsIC8vIFJpZ2h0
IEN0cmwKICAgICAgICAgLyogMHgzRiAqLyAwLCAvLyBmbgogICAgICAgICAvKiAweDQwICovIFZL
X0YxNywKICAgICAgICAgLyogMHg0MSAqLyBWS19ERUNJTUFMLCAvLyBOdW0gUGFkIC4KZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjMzJmYWE0NzNi
YWI0YTI0ZGIyM2Y2NTI3OWFiZWRhN2ZjMDU3Njk4Li4yMmI4MjY5NjRkOGE1N2ZmYTU5ZmVhMmYx
NGJkMDQyZDExZmY5ZWU4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDUtMjAgIFRha2FzaGkgU2FrYW1vdG8g
IDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBET01fS0VZX0xPQ0FUSU9O
X0xFRlQgYW5kIFJJR0hUIG9mIEtleWJvYXJkRXZlbnQncyBsb2NhdGlvbiBwcm9wZXJ0eQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY2OTQKKworICAg
ICAgICBNb2RpZnkga2V5RG93biB0byBjcmVhdGUgbGVmdC0gYW5kIHJpZ2h0LSBjb250cm9sLCBz
aGlmdCwgYW5kIGFsdAorICAgICAgICBrZXlldmVudCBmb3IgYSB0ZXN0IHRvIGNoZWNrIHRoYXQg
a2V5TG9jYXRpb24gcHJvcGVydHkgY2FuIGhhdmUKKyAgICAgICAgRE9NX0tFWV9MT0NBVElPTl9M
RUZUIGZvciBsZWZ0LWNvbnRyb2wsIHNoaWZ0LCBhbmQgYWx0LCBhbmQKKyAgICAgICAgRE9NX0tF
WV9MT0NBVElPTl9SSUdIVCBmb3IgcmlnaHQtY29udHJvbCwgc2hpZnQsIGFuZCBhbHQuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKEV2ZW50U2VuZGVy
OjprZXlEb3duKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29u
dHJvbGxlci5tbToKKyAgICAgICAgKC1bRXZlbnRTZW5kaW5nQ29udHJvbGxlciBrZXlEb3duOndp
dGhNb2RpZmllcnM6d2l0aExvY2F0aW9uOl0pOgorCiAyMDEyLTA1LTIxICBDaHJpc3RvcGhlIER1
bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gRUZMJ3Mg
RHVtcFJlbmRlclRyZWUgZG9lcyBub3QgcHJpbnQgZGlkUmVjZWl2ZVRpdGxlIG1lc3NhZ2VzCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVudFNlbmRlci5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVudFNlbmRlci5jcHAKaW5kZXggN2Rk
YWFmYmU2ZjJkNjJhZTMxYzFmODg4Njk4YjdiZTZjM2IyYmJkOC4uMDVlNGViODNmZWI3ZjkxNzY0
YzA0NmI0Mjc1NjhlY2NiMzQwNTllZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vRXZlbnRTZW5kZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0V2ZW50U2VuZGVyLmNwcApAQCAtNTU3LDYgKzU1NywyNCBAQCB2b2lkIEV2ZW50U2VuZGVy
OjprZXlEb3duKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiBy
ZXN1bHQpCiAgICAgZWxzZSBpZiAoIm1lbnUiID09IGNvZGVTdHIpCiAgICAgICAgIC8vIEZJWE1F
OiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9BUFBTLgogICAgICAgICBjb2Rl
ID0gMHg1RDsKKyAgICBlbHNlIGlmICgibGVmdENvbnRyb2wiID09IGNvZGVTdHIpCisgICAgICAg
IC8vIEZJWE1FOiBDaGFuZ2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9MQ09OVFJPTC4K
KyAgICAgICAgY29kZSA9IDB4QTI7CisgICAgZWxzZSBpZiAoInJpZ2h0Q29udHJvbCIgPT0gY29k
ZVN0cikKKyAgICAgICAgLy8gRklYTUU6IENoYW5nZSB0aGlzIHRvIHdlYmtpdF9zdXBwb3J0OjpW
S0VZX1JDT05UUk9MLgorICAgICAgICBjb2RlID0gMHhBMzsKKyAgICBlbHNlIGlmICgibGVmdFNo
aWZ0IiA9PSBjb2RlU3RyKQorICAgICAgICAvLyBGSVhNRTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0
X3N1cHBvcnQ6OlZLRVlfTFNISUZULgorICAgICAgICBjb2RlID0gMHhBMDsKKyAgICBlbHNlIGlm
ICgicmlnaHRTaGlmdCIgPT0gY29kZVN0cikKKyAgICAgICAgLy8gRklYTUU6IENoYW5nZSB0aGlz
IHRvIHdlYmtpdF9zdXBwb3J0OjpWS0VZX1JTSElGVC4KKyAgICAgICAgY29kZSA9IDB4QTE7Cisg
ICAgZWxzZSBpZiAoImxlZnRBbHQiID09IGNvZGVTdHIpCisgICAgICAgIC8vIEZJWE1FOiBDaGFu
Z2UgdGhpcyB0byB3ZWJraXRfc3VwcG9ydDo6VktFWV9MTUVOVS4KKyAgICAgICAgY29kZSA9IDB4
QTQ7CisgICAgZWxzZSBpZiAoInJpZ2h0QWx0IiA9PSBjb2RlU3RyKQorICAgICAgICAvLyBGSVhN
RTogQ2hhbmdlIHRoaXMgdG8gd2Via2l0X3N1cHBvcnQ6OlZLRVlfUk1FTlUuCisgICAgICAgIGNv
ZGUgPSAweEE1OwogICAgIGVsc2UgewogICAgICAgICAvLyBDb21wYXJlIHRoZSBpbnB1dCBzdHJp
bmcgd2l0aCB0aGUgZnVuY3Rpb24ta2V5IG5hbWVzIGRlZmluZWQgYnkgdGhlCiAgICAgICAgIC8v
IERPTSBzcGVjIChpLmUuICJGMSIsLi4uLCJGMjQiKS4gSWYgdGhlIGlucHV0IHN0cmluZyBpcyBh
IGZ1bmN0aW9uLWtleQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50
U2VuZGluZ0NvbnRyb2xsZXIubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5k
aW5nQ29udHJvbGxlci5tbQppbmRleCA3NmFjNjkyNjc0MTkyZTU1MWU5OWU5MmRiNTE4MWZmZDhk
OGZiZTY3Li5kYzhiMjY2OTNiMTFlMDRiZWZiYTk2Mjg3ZDk4MzJlYTFkYTNjODljIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5tbQor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5tbQpA
QCAtNjIxLDYgKzYyMSwzMCBAQCBzdGF0aWMgaW50IGJ1aWxkTW9kaWZpZXJGbGFncyhjb25zdCBX
ZWJTY3JpcHRPYmplY3QqIG1vZGlmaWVycykKICAgICAgICAgY29uc3QgdW5pY2hhciBjaCA9IDB4
MDQzMDsKICAgICAgICAgZXZlbnRDaGFyYWN0ZXIgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aENoYXJh
Y3RlcnM6JmNoIGxlbmd0aDoxXTsKICAgICAgICAga2V5Q29kZSA9IDB4MzsgLy8gU2hhcmVzIGtl
eSB3aXRoICJGIiBvbiBSdXNzaWFuIGxheW91dC4KKyAgICB9IGVsc2UgaWYgKFtjaGFyYWN0ZXIg
aXNFcXVhbFRvU3RyaW5nOkAibGVmdENvbnRyb2wiXSkgeworICAgICAgICBjb25zdCB1bmljaGFy
IGNoID0gMHhGRkUzOworICAgICAgICBldmVudENoYXJhY3RlciA9IFtOU1N0cmluZyBzdHJpbmdX
aXRoQ2hhcmFjdGVyczomY2ggbGVuZ3RoOjFdOworICAgICAgICBrZXlDb2RlID0gMHgzQjsKKyAg
ICB9IGVsc2UgaWYgKFtjaGFyYWN0ZXIgaXNFcXVhbFRvU3RyaW5nOkAibGVmdFNoaWZ0Il0pIHsK
KyAgICAgICAgY29uc3QgdW5pY2hhciBjaCA9IDB4RkZFMTsKKyAgICAgICAgZXZlbnRDaGFyYWN0
ZXIgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6JmNoIGxlbmd0aDoxXTsKKyAgICAg
ICAga2V5Q29kZSA9IDB4Mzg7CisgICAgfSBlbHNlIGlmIChbY2hhcmFjdGVyIGlzRXF1YWxUb1N0
cmluZzpAImxlZnRBbHQiXSkgeworICAgICAgICBjb25zdCB1bmljaGFyIGNoID0gMHhGRkU3Owor
ICAgICAgICBldmVudENoYXJhY3RlciA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVyczom
Y2ggbGVuZ3RoOjFdOworICAgICAgICBrZXlDb2RlID0gMHgzQTsKKyAgICB9IGVsc2UgaWYgKFtj
aGFyYWN0ZXIgaXNFcXVhbFRvU3RyaW5nOkAicmlnaHRDb250cm9sIl0pIHsKKyAgICAgICAgY29u
c3QgdW5pY2hhciBjaCA9IDB4RkZFNDsKKyAgICAgICAgZXZlbnRDaGFyYWN0ZXIgPSBbTlNTdHJp
bmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6JmNoIGxlbmd0aDoxXTsKKyAgICAgICAga2V5Q29kZSA9
IDB4M0U7CisgICAgfSBlbHNlIGlmIChbY2hhcmFjdGVyIGlzRXF1YWxUb1N0cmluZzpAInJpZ2h0
U2hpZnQiXSkgeworICAgICAgICBjb25zdCB1bmljaGFyIGNoID0gMHhGRkUyOworICAgICAgICBl
dmVudENoYXJhY3RlciA9IFtOU1N0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVyczomY2ggbGVuZ3Ro
OjFdOworICAgICAgICBrZXlDb2RlID0gMHgzQzsKKyAgICB9IGVsc2UgaWYgKFtjaGFyYWN0ZXIg
aXNFcXVhbFRvU3RyaW5nOkAicmlnaHRBbHQiXSkgeworICAgICAgICBjb25zdCB1bmljaGFyIGNo
ID0gMHhGRkU4OworICAgICAgICBldmVudENoYXJhY3RlciA9IFtOU1N0cmluZyBzdHJpbmdXaXRo
Q2hhcmFjdGVyczomY2ggbGVuZ3RoOjFdOworICAgICAgICBrZXlDb2RlID0gMHgzRDsKICAgICB9
CiAKICAgICAvLyBDb21wYXJlIHRoZSBpbnB1dCBzdHJpbmcgd2l0aCB0aGUgZnVuY3Rpb24ta2V5
IG5hbWVzIGRlZmluZWQgYnkgdGhlIERPTSBzcGVjIChpLmUuICJGMSIsLi4uLCJGMjQiKS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBhZmI4NzNjZjZjMTI5YjE1ZmI0YTBlYzhiM2E0ZTIxY2ViZmJjNGYyLi42YjJmM2JjOThm
MzljYzFmYWQwZjg1YmZjYjcwOTI1NTBiMGY3Mzc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTItMDUtMjAgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCBET01fS0VZX0xPQ0FUSU9OX0xFRlQgYW5kIFJJR0hUIG9mIEtleWJvYXJkRXZl
bnQncyBsb2NhdGlvbiBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODY2OTQKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1
cnlha292LgorCisgICAgICAgICogZmFzdC9ldmVudHMva2V5ZG93bi1sZWZ0cmlnaHQta2V5cy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2tleWRvd24tbGVmdHJp
Z2h0LWtleXMuaHRtbDogQWRkZWQuCisKIDIwMTItMDUtMjEgIEVtaWwgQSBFa2x1bmQgIDxlYWVA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgdGFibGUgcmViYXNlbGluZXMgZm9y
IGNocm9taXVtLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMva2V5ZG93bi1s
ZWZ0cmlnaHQta2V5cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9rZXlk
b3duLWxlZnRyaWdodC1rZXlzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmQ0ODQ5Y2VjZDlh
N2NhNTgwNjAyM2U2ODE5Njc1Mjk0ZmU3ZDY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMva2V5ZG93bi1sZWZ0cmlnaHQta2V5cy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyOCBAQAorCitUaGlzIHRlc3RzIGtleWJvYXJkIGV2ZW50cyB3aXRoIEtleUxvY2F0aW9u
Q29kZSBhcmd1bWVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbGFz
dEtleWJvYXJkRXZlbnQudHlwZSBpcyAia2V5ZG93biIKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQu
a2V5Q29kZSBpcyAxNgorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlMb2NhdGlvbiBpcyBLRVlf
TE9DQVRJT05fTEVGVAorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC50eXBlIGlzICJrZXlkb3duIgor
UEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlDb2RlIGlzIDE3CitQQVNTIGxhc3RLZXlib2FyZEV2
ZW50LmtleUxvY2F0aW9uIGlzIEtFWV9MT0NBVElPTl9MRUZUCitQQVNTIGxhc3RLZXlib2FyZEV2
ZW50LnR5cGUgaXMgImtleWRvd24iCitQQVNTIGxhc3RLZXlib2FyZEV2ZW50LmtleUNvZGUgaXMg
MTgKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQua2V5TG9jYXRpb24gaXMgS0VZX0xPQ0FUSU9OX0xF
RlQKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQudHlwZSBpcyAia2V5ZG93biIKK1BBU1MgbGFzdEtl
eWJvYXJkRXZlbnQua2V5Q29kZSBpcyAxNgorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlMb2Nh
dGlvbiBpcyBLRVlfTE9DQVRJT05fUklHSFQKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQudHlwZSBp
cyAia2V5ZG93biIKK1BBU1MgbGFzdEtleWJvYXJkRXZlbnQua2V5Q29kZSBpcyAxNworUEFTUyBs
YXN0S2V5Ym9hcmRFdmVudC5rZXlMb2NhdGlvbiBpcyBLRVlfTE9DQVRJT05fUklHSFQKK1BBU1Mg
bGFzdEtleWJvYXJkRXZlbnQudHlwZSBpcyAia2V5ZG93biIKK1BBU1MgbGFzdEtleWJvYXJkRXZl
bnQua2V5Q29kZSBpcyAxOAorUEFTUyBsYXN0S2V5Ym9hcmRFdmVudC5rZXlMb2NhdGlvbiBpcyBL
RVlfTE9DQVRJT05fUklHSFQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9rZXlkb3du
LWxlZnRyaWdodC1rZXlzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9rZXlkb3duLWxl
ZnRyaWdodC1rZXlzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMwMzU0M2YwYzE4OGJmMzIzMzQ1Y2M3MGVk
MDEzYTA2MjgyYjM3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2tleWRvd24tbGVmdHJpZ2h0LWtleXMuaHRtbApAQCAtMCwwICsxLDYwIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBrZXlib2FyZCBl
dmVudHMgd2l0aCBLZXlMb2NhdGlvbkNvZGUgYXJndW1lbnQuIik7CisKK3ZhciBsYXN0S2V5Ym9h
cmRFdmVudDsKK3ZhciBWS19TSElGVCA9IDE2OwordmFyIFZLX0NPTlRST0wgPSAxNzsKK3ZhciBW
S19NRU5VID0gMTg7Cit2YXIgS0VZX0xPQ0FUSU9OX0xFRlQgPSAxOwordmFyIEtFWV9MT0NBVElP
Tl9SSUdIVCA9IDI7CisKK2Z1bmN0aW9uIHJlY29yZEtleUV2ZW50KGV2KSB7CisgICAgZXYgPSBl
diB8fCBldmVudDsKKyAgICBldi5rZXlDb2RlID0gKGV2LndoaWNoIHx8IGV2LmtleUNvZGUpOwor
ICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgbGFzdEtleWJvYXJkRXZlbnQg
PSBldjsKKyAgICB9IGVsc2UgeworICAgICAgICBkZWJ1ZygnVHlwZT0nICsgZXYudHlwZSArICcs
JyArCisgICAgICAgICAgICAgICdrZXlDb2RlPScgKyBldi5rZXlDb2RlICsgJywnICsKKyAgICAg
ICAgICAgICAgJ2N0cmxLZXk9JyArIGV2LmN0cmxLZXkgKyAnLCcgKworICAgICAgICAgICAgICAn
c2hpZnRLZXk9JyArIGV2LnNoaWZ0S2V5ICsgJywnICsKKyAgICAgICAgICAgICAgJ2FsdEtleT0n
ICsgZXYuYWx0S2V5ICsgJywnICsKKyAgICAgICAgICAgICAgJ21ldGFLZXk9JyArIGV2Lm1ldGFL
ZXkgKyAnLCcgKworICAgICAgICAgICAgICAnbG9jYXRpb249JyArIGV2LmtleUxvY2F0aW9uKTsK
KyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3RLZXlFdmVudFdpdGhMb2NhdGlvbihldlN0cmluZywg
ZXhwZWN0ZWRLZXlDb2RlLCBleHBlY3RlZExvY2F0aW9uKSB7CisgICAgZXZlbnRTZW5kZXIua2V5
RG93bihldlN0cmluZywgW10pOworICAgIHNob3VsZEJlKCJsYXN0S2V5Ym9hcmRFdmVudC50eXBl
IiwgJyJrZXlkb3duIicpOworICAgIHNob3VsZEV2YWx1YXRlVG8oImxhc3RLZXlib2FyZEV2ZW50
LmtleUNvZGUiLCBleHBlY3RlZEtleUNvZGUpOworICAgIHNob3VsZEV2YWx1YXRlVG8oImxhc3RL
ZXlib2FyZEV2ZW50LmtleUxvY2F0aW9uIiwgZXhwZWN0ZWRMb2NhdGlvbik7Cit9CisKK3ZhciB0
ZXh0YXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7Cit0ZXh0YXJlYS5h
ZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgcmVjb3JkS2V5RXZlbnQsIGZhbHNlKTsKK2RvY3Vt
ZW50LmJvZHkuaW5zZXJ0QmVmb3JlKHRleHRhcmVhLCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQp
OwordGV4dGFyZWEuZm9jdXMoKTsKKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIC8v
IGxvY2F0aW9uPTAgaW5kaWNhdGVzIHRoYXQgd2Ugc2VuZCBldmVudHMgYXMgc3RhbmRhcmQga2V5
cy4KKyAgICB0ZXN0S2V5RXZlbnRXaXRoTG9jYXRpb24oImxlZnRTaGlmdCIsIFZLX1NISUZULCAi
S0VZX0xPQ0FUSU9OX0xFRlQiKTsKKyAgICB0ZXN0S2V5RXZlbnRXaXRoTG9jYXRpb24oImxlZnRD
b250cm9sIiwgVktfQ09OVFJPTCwgIktFWV9MT0NBVElPTl9MRUZUIik7CisgICAgdGVzdEtleUV2
ZW50V2l0aExvY2F0aW9uKCJsZWZ0QWx0IiwgVktfTUVOVSwgIktFWV9MT0NBVElPTl9MRUZUIik7
CisKKyAgICB0ZXN0S2V5RXZlbnRXaXRoTG9jYXRpb24oInJpZ2h0U2hpZnQiLCBWS19TSElGVCwg
IktFWV9MT0NBVElPTl9SSUdIVCIpOworICAgIHRlc3RLZXlFdmVudFdpdGhMb2NhdGlvbigicmln
aHRDb250cm9sIiwgVktfQ09OVFJPTCwgIktFWV9MT0NBVElPTl9SSUdIVCIpOworICAgIHRlc3RL
ZXlFdmVudFdpdGhMb2NhdGlvbigicmlnaHRBbHQiLCBWS19NRU5VLCAiS0VZX0xPQ0FUSU9OX1JJ
R0hUIik7Cit9IGVsc2UgeworICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgRHVtcFJlbmRl
clRyZWUuIik7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>