<?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>34178</bug_id>
          
          <creation_ts>2010-01-26 12:22:20 -0800</creation_ts>
          <short_desc>Add KeyboardTest to WebKit API tests</short_desc>
          <delta_ts>2010-01-26 21:54:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yaar Schnitman">yaar</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>184671</commentid>
    <comment_count>0</comment_count>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2010-01-26 12:22:20 -0800</bug_when>
    <thetext>Add KeyboardTest to WebKit API tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184676</commentid>
    <comment_count>1</comment_count>
      <attachid>47433</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2010-01-26 12:34:57 -0800</bug_when>
    <thetext>Created attachment 47433
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184677</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-26 12:36:33 -0800</bug_when>
    <thetext>Attachment 47433 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/chromium/tests/KeyboardTest.cpp:33:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit/chromium/tests/KeyboardTest.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184678</commentid>
    <comment_count>3</comment_count>
      <attachid>47433</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2010-01-26 12:38:12 -0800</bug_when>
    <thetext>Comment on attachment 47433
Patch

Style checker can&apos;t chew on the special headers structure of this gtest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184680</commentid>
    <comment_count>4</comment_count>
      <attachid>47433</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-01-26 12:43:42 -0800</bug_when>
    <thetext>Comment on attachment 47433
Patch

&gt; +++ b/WebKit/chromium/tests/KeyboardTest.cpp

&gt; +#include &quot;../src/EditorClientImpl.h&quot;
&gt; +#include &quot;../src/WebInputEventConversion.h&quot;

how about just adding src to include_dirs in WebKit.gyp?


&gt; +using WebCore::PlatformKeyboardEvent;
&gt; +using WebCore::KeyboardEvent;
&gt; +
&gt; +using WebKit::EditorClientImpl;
&gt; +using WebKit::PlatformKeyboardEventBuilder;
&gt; +using WebKit::WebInputEvent;
&gt; +using WebKit::WebKeyboardEvent;

let&apos;s just do &apos;using namespace Webcore&apos; and &apos;using namespace WebKit&apos;


&gt; +class KeyboardTest : public testing::Test {
&gt; +public:
&gt; +    void SetUp()
&gt; +    {
&gt; +        WTF::initializeThreading();

^^^ you should be able to delete this function.  RunAllTests.cpp takes care of it.


&gt; +    const char* InterpretKeyEvent(
&gt; +    void SetupKeyDownEvent(WebKeyboardEvent* keyboardEvent,
&gt; +    const char* InterpretOSModifierKeyPress(char keyCode)
&gt; +    const char* InterpretCtrlKeyPress(char keyCode)
&gt; +    const char* InterpretTab(int modifiers)
&gt; +    const char* InterpretNewLine(int modifiers)

nit: change these to camelCase style


&gt; +#if !defined(OS_MACOSX)

the OS_MACOSX macro is a chromium define.  i don&apos;t think we have access
to it here.  this should be changed to OS(DARWIN).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184685</commentid>
    <comment_count>5</comment_count>
      <attachid>47435</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2010-01-26 12:54:16 -0800</bug_when>
    <thetext>Created attachment 47435
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184689</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-26 13:00:22 -0800</bug_when>
    <thetext>Attachment 47435 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/chromium/tests/KeyboardTest.cpp:33:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit/chromium/tests/KeyboardTest.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184936</commentid>
    <comment_count>7</comment_count>
      <attachid>47435</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-26 21:54:22 -0800</bug_when>
    <thetext>Comment on attachment 47435
Patch

Clearing flags on attachment: 47435

Committed r53898: &lt;http://trac.webkit.org/changeset/53898&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184937</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-26 21:54:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47433</attachid>
            <date>2010-01-26 12:34:57 -0800</date>
            <delta_ts>2010-01-26 12:54:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34178-20100126123456.patch</filename>
            <type>text/plain</type>
            <size>8399</size>
            <attacher name="Yaar Schnitman">yaar</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGY2YjllYjcuLjczNDRkN2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEwLTAxLTI2ICBZYWFyIFNjaG5pdG1hbiAgPHlhYXJAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBLZXli
b2FyZFRlc3QgdG8gV2ViS2l0IEFQSSB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQxNzgKKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAg
ICAgICogdGVzdHMvS2V5Ym9hcmRUZXN0LmNwcDogQWRkZWQuCisKIDIwMTAtMDEtMTggIEpvbmF0
aGFuIERpeG9uICA8am90aEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggMGY4NGVmZS4uMDkwMDhjNSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAKQEAgLTQxNyw2ICs0MTcsNyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMnLAogICAgICAg
ICAgICAgXSwKICAgICAgICAgICAgICdzb3VyY2VzJzogWworICAgICAgICAgICAgICAgICd0ZXN0
cy9LZXlib2FyZFRlc3QuY3BwJywKICAgICAgICAgICAgICAgICAndGVzdHMvS1VSTFRlc3QuY3Bw
JywKICAgICAgICAgICAgICAgICAndGVzdHMvUnVuQWxsVGVzdHMuY3BwJywKICAgICAgICAgICAg
IF0sCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvS2V5Ym9hcmRUZXN0LmNwcCBi
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9LZXlib2FyZFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjc4YTJjYWYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvS2V5Ym9hcmRUZXN0LmNwcApAQCAtMCwwICsxLDIyMiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNpbmNsdWRlICIuLi9zcmMv
RWRpdG9yQ2xpZW50SW1wbC5oIgorI2luY2x1ZGUgIi4uL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVy
c2lvbi5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiS2V5Ym9hcmRDb2Rl
cy5oIgorI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJJbnB1dEV2ZW50
LmgiCisKK3VzaW5nIFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDsKK3VzaW5nIFdlYkNv
cmU6OktleWJvYXJkRXZlbnQ7CisKK3VzaW5nIFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDsKK3Vz
aW5nIFdlYktpdDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcjsKK3VzaW5nIFdlYktpdDo6
V2ViSW5wdXRFdmVudDsKK3VzaW5nIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDsKKworbmFtZXNw
YWNlIHsKKworY2xhc3MgS2V5Ym9hcmRUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgeworcHVi
bGljOgorICAgIHZvaWQgU2V0VXAoKQorICAgIHsKKyAgICAgICAgV1RGOjppbml0aWFsaXplVGhy
ZWFkaW5nKCk7CisgICAgfQorCisgICAgLy8gUGFzcyBhIFdlYktleWJvYXJkRXZlbnQgaW50byB0
aGUgRWRpdG9yQ2xpZW50IGFuZCBnZXQgYmFjayB0aGUgc3RyaW5nCisgICAgLy8gbmFtZSBvZiB3
aGljaCBlZGl0aW5nIGV2ZW50IHRoYXQga2V5IGNhdXNlcy4KKyAgICAvLyBFLmcuLCBzZW5kaW5n
IGluIHRoZSBlbnRlciBrZXkgZ2l2ZXMgYmFjayAiSW5zZXJ0TmV3bGluZSIuCisgICAgY29uc3Qg
Y2hhciogSW50ZXJwcmV0S2V5RXZlbnQoCisgICAgICAgIGNvbnN0IFdlYktleWJvYXJkRXZlbnQm
IHdlYktleWJvYXJkRXZlbnQsCisgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6VHlwZSBr
ZXlUeXBlKQorICAgIHsKKyAgICAgICAgRWRpdG9yQ2xpZW50SW1wbCBlZGl0b3JJbXBsKDApOwor
ICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyIGV2dCh3ZWJLZXlib2FyZEV2ZW50
KTsKKyAgICAgICAgZXZ0LnNldEtleVR5cGUoa2V5VHlwZSk7CisgICAgICAgIFJlZlB0cjxLZXli
b2FyZEV2ZW50PiBrZXlib2FyZEV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKGV2dCwgMCk7
CisgICAgICAgIHJldHVybiBlZGl0b3JJbXBsLmludGVycHJldEtleUV2ZW50KGtleWJvYXJkRXZl
bnQuZ2V0KCkpOworICAgIH0KKworICAgIC8vIFNldCB1cCBhIFdlYktleWJvYXJkRXZlbnQgS0VZ
X0RPV04gZXZlbnQgd2l0aCBrZXkgY29kZSBhbmQgbW9kaWZpZXJzLgorICAgIHZvaWQgU2V0dXBL
ZXlEb3duRXZlbnQoV2ViS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdmVudCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNoYXIga2V5Q29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCBtb2RpZmllcnMpCisgICAgeworICAgICAgICBrZXlib2FyZEV2ZW50LT53aW5kb3dzS2V5
Q29kZSA9IGtleUNvZGU7CisgICAgICAgIGtleWJvYXJkRXZlbnQtPm1vZGlmaWVycyA9IG1vZGlm
aWVyczsKKyAgICAgICAga2V5Ym9hcmRFdmVudC0+dHlwZSA9IFdlYklucHV0RXZlbnQ6OktleURv
d247CisgICAgICAgIGtleWJvYXJkRXZlbnQtPnRleHRbMF0gPSBrZXlDb2RlOworICAgICAgICBr
ZXlib2FyZEV2ZW50LT5zZXRLZXlJZGVudGlmaWVyRnJvbVdpbmRvd3NLZXlDb2RlKCk7CisgICAg
fQorCisgICAgLy8gTGlrZSBJbnRlcnByZXRLZXlFdmVudCwgYnV0IHdpdGggcHJlc3NpbmcgZG93
biBPU01vZGlmaWVyK3xrZXlDb2RlfC4KKyAgICAvLyBPU01vZGlmaWVyIGlzIHRoZSBwbGF0Zm9y
bSdzIHN0YW5kYXJkIG1vZGlmaWVyIGtleTogY29udHJvbCBvbiBtb3N0CisgICAgLy8gcGxhdGZv
cm1zLCBidXQgbWV0YSAoY29tbWFuZCkgb24gTWFjLgorICAgIGNvbnN0IGNoYXIqIEludGVycHJl
dE9TTW9kaWZpZXJLZXlQcmVzcyhjaGFyIGtleUNvZGUpCisgICAgeworICAgICAgICBXZWJLZXli
b2FyZEV2ZW50IGtleWJvYXJkRXZlbnQ7CisjaWYgZGVmaW5lZChPU19NQUNPU1gpCisgICAgICAg
IFdlYklucHV0RXZlbnQ6Ok1vZGlmaWVycyBvc01vZGlmaWVyID0gV2ViSW5wdXRFdmVudDo6TWV0
YUtleTsKKyNlbHNlCisgICAgICAgIFdlYklucHV0RXZlbnQ6Ok1vZGlmaWVycyBvc01vZGlmaWVy
ID0gV2ViSW5wdXRFdmVudDo6Q29udHJvbEtleTsKKyNlbmRpZgorICAgICAgICBTZXR1cEtleURv
d25FdmVudCgma2V5Ym9hcmRFdmVudCwga2V5Q29kZSwgb3NNb2RpZmllcik7CisgICAgICAgIHJl
dHVybiBJbnRlcnByZXRLZXlFdmVudChrZXlib2FyZEV2ZW50LCBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQ6OlJhd0tleURvd24pOworICAgIH0KKworICAgIC8vIExpa2UgSW50ZXJwcmV0S2V5RXZlbnQs
IGJ1dCB3aXRoIHByZXNzaW5nIGRvd24gY3RybCt8a2V5Q29kZXwuCisgICAgY29uc3QgY2hhciog
SW50ZXJwcmV0Q3RybEtleVByZXNzKGNoYXIga2V5Q29kZSkKKyAgICB7CisgICAgICAgIFdlYktl
eWJvYXJkRXZlbnQga2V5Ym9hcmRFdmVudDsKKyAgICAgICAgU2V0dXBLZXlEb3duRXZlbnQoJmtl
eWJvYXJkRXZlbnQsIGtleUNvZGUsIFdlYklucHV0RXZlbnQ6OkNvbnRyb2xLZXkpOworICAgICAg
ICByZXR1cm4gSW50ZXJwcmV0S2V5RXZlbnQoa2V5Ym9hcmRFdmVudCwgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50OjpSYXdLZXlEb3duKTsKKyAgICB9CisKKyAgICAvLyBMaWtlIEludGVycHJldEtleUV2
ZW50LCBidXQgd2l0aCB0eXBpbmcgYSB0YWIuCisgICAgY29uc3QgY2hhciogSW50ZXJwcmV0VGFi
KGludCBtb2RpZmllcnMpCisgICAgeworICAgICAgICBXZWJLZXlib2FyZEV2ZW50IGtleWJvYXJk
RXZlbnQ7CisgICAgICAgIFNldHVwS2V5RG93bkV2ZW50KCZrZXlib2FyZEV2ZW50LCAnXHQnLCBt
b2RpZmllcnMpOworICAgICAgICByZXR1cm4gSW50ZXJwcmV0S2V5RXZlbnQoa2V5Ym9hcmRFdmVu
dCwgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpDaGFyKTsKKyAgICB9CisKKyAgICAvLyBMaWtlIElu
dGVycHJldEtleUV2ZW50LCBidXQgd2l0aCB0eXBpbmcgYSBuZXdsaW5lLgorICAgIGNvbnN0IGNo
YXIqIEludGVycHJldE5ld0xpbmUoaW50IG1vZGlmaWVycykKKyAgICB7CisgICAgICAgIFdlYktl
eWJvYXJkRXZlbnQga2V5Ym9hcmRFdmVudDsKKyAgICAgICAgU2V0dXBLZXlEb3duRXZlbnQoJmtl
eWJvYXJkRXZlbnQsICdccicsIG1vZGlmaWVycyk7CisgICAgICAgIHJldHVybiBJbnRlcnByZXRL
ZXlFdmVudChrZXlib2FyZEV2ZW50LCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OkNoYXIpOworICAg
IH0KKworICAgIC8vIEEgbmFtZSBmb3IgIm5vIG1vZGlmaWVycyBzZXQiLgorICAgIHN0YXRpYyBj
b25zdCBpbnQgbm9Nb2RpZmllcnMgPSAwOworfTsKKworVEVTVF9GKEtleWJvYXJkVGVzdCwgVGVz
dEN0cmxSZXR1cm4pCit7CisgICAgRVhQRUNUX1NUUkVRKCJJbnNlcnROZXdsaW5lIiwgSW50ZXJw
cmV0Q3RybEtleVByZXNzKDB4RCkpOworfQorCitURVNUX0YoS2V5Ym9hcmRUZXN0LCBUZXN0T1NN
b2RpZmllclopCit7CisjaWYgIWRlZmluZWQoT1NfTUFDT1NYKQorICAgIEVYUEVDVF9TVFJFUSgi
VW5kbyIsIEludGVycHJldE9TTW9kaWZpZXJLZXlQcmVzcygnWicpKTsKKyNlbmRpZgorfQorCitU
RVNUX0YoS2V5Ym9hcmRUZXN0LCBUZXN0T1NNb2RpZmllclkpCit7CisjaWYgIWRlZmluZWQoT1Nf
TUFDT1NYKQorICAgIEVYUEVDVF9TVFJFUSgiUmVkbyIsIEludGVycHJldE9TTW9kaWZpZXJLZXlQ
cmVzcygnWScpKTsKKyNlbmRpZgorfQorCitURVNUX0YoS2V5Ym9hcmRUZXN0LCBUZXN0T1NNb2Rp
ZmllckEpCit7CisjaWYgIWRlZmluZWQoT1NfTUFDT1NYKQorICAgIEVYUEVDVF9TVFJFUSgiU2Vs
ZWN0QWxsIiwgSW50ZXJwcmV0T1NNb2RpZmllcktleVByZXNzKCdBJykpOworI2VuZGlmCit9CisK
K1RFU1RfRihLZXlib2FyZFRlc3QsIFRlc3RPU01vZGlmaWVyWCkKK3sKKyNpZiAhZGVmaW5lZChP
U19NQUNPU1gpCisgICAgRVhQRUNUX1NUUkVRKCJDdXQiLCBJbnRlcnByZXRPU01vZGlmaWVyS2V5
UHJlc3MoJ1gnKSk7CisjZW5kaWYKK30KKworVEVTVF9GKEtleWJvYXJkVGVzdCwgVGVzdE9TTW9k
aWZpZXJDKQoreworI2lmICFkZWZpbmVkKE9TX01BQ09TWCkKKyAgICBFWFBFQ1RfU1RSRVEoIkNv
cHkiLCBJbnRlcnByZXRPU01vZGlmaWVyS2V5UHJlc3MoJ0MnKSk7CisjZW5kaWYKK30KKworVEVT
VF9GKEtleWJvYXJkVGVzdCwgVGVzdE9TTW9kaWZpZXJWKQoreworI2lmICFkZWZpbmVkKE9TX01B
Q09TWCkKKyAgICBFWFBFQ1RfU1RSRVEoIlBhc3RlIiwgSW50ZXJwcmV0T1NNb2RpZmllcktleVBy
ZXNzKCdWJykpOworI2VuZGlmCit9CisKK1RFU1RfRihLZXlib2FyZFRlc3QsIFRlc3RFc2NhcGUp
Cit7CisgICAgV2ViS2V5Ym9hcmRFdmVudCBrZXlib2FyZEV2ZW50OworICAgIFNldHVwS2V5RG93
bkV2ZW50KCZrZXlib2FyZEV2ZW50LCBXZWJDb3JlOjpWS0VZX0VTQ0FQRSwgbm9Nb2RpZmllcnMp
OworCisgICAgY29uc3QgY2hhciogcmVzdWx0ID0gSW50ZXJwcmV0S2V5RXZlbnQoa2V5Ym9hcmRF
dmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQ6OlJhd0tleURvd24pOworICAgIEVYUEVDVF9TVFJFUSgiQ2FuY2VsIiwg
cmVzdWx0KTsKK30KKworVEVTVF9GKEtleWJvYXJkVGVzdCwgVGVzdEluc2VydFRhYikKK3sKKyAg
ICBFWFBFQ1RfU1RSRVEoIkluc2VydFRhYiIsIEludGVycHJldFRhYihub01vZGlmaWVycykpOwor
fQorCitURVNUX0YoS2V5Ym9hcmRUZXN0LCBUZXN0SW5zZXJ0QmFja1RhYikKK3sKKyAgICBFWFBF
Q1RfU1RSRVEoIkluc2VydEJhY2t0YWIiLCBJbnRlcnByZXRUYWIoV2ViSW5wdXRFdmVudDo6U2hp
ZnRLZXkpKTsKK30KKworVEVTVF9GKEtleWJvYXJkVGVzdCwgVGVzdEluc2VydE5ld2xpbmUpCit7
CisgICAgRVhQRUNUX1NUUkVRKCJJbnNlcnROZXdsaW5lIiwgSW50ZXJwcmV0TmV3TGluZShub01v
ZGlmaWVycykpOworfQorCitURVNUX0YoS2V5Ym9hcmRUZXN0LCBUZXN0SW5zZXJ0TmV3bGluZTIp
Cit7CisgICAgRVhQRUNUX1NUUkVRKCJJbnNlcnROZXdsaW5lIiwgSW50ZXJwcmV0TmV3TGluZShX
ZWJJbnB1dEV2ZW50OjpDb250cm9sS2V5KSk7Cit9CisKK1RFU1RfRihLZXlib2FyZFRlc3QsIFRl
c3RJbnNlcnRMaW5lQnJlYWspCit7CisgICAgRVhQRUNUX1NUUkVRKCJJbnNlcnRMaW5lQnJlYWsi
LCBJbnRlcnByZXROZXdMaW5lKFdlYklucHV0RXZlbnQ6OlNoaWZ0S2V5KSk7Cit9CisKK1RFU1Rf
RihLZXlib2FyZFRlc3QsIFRlc3RJbnNlcnROZXdsaW5lMykKK3sKKyAgICBFWFBFQ1RfU1RSRVEo
Ikluc2VydE5ld2xpbmUiLCBJbnRlcnByZXROZXdMaW5lKFdlYklucHV0RXZlbnQ6OkFsdEtleSkp
OworfQorCitURVNUX0YoS2V5Ym9hcmRUZXN0LCBUZXN0SW5zZXJ0TmV3bGluZTQpCit7CisgICAg
aW50IG1vZGlmaWVycyA9IFdlYklucHV0RXZlbnQ6OkFsdEtleSB8IFdlYklucHV0RXZlbnQ6OlNo
aWZ0S2V5OworICAgIGNvbnN0IGNoYXIqIHJlc3VsdCA9IEludGVycHJldE5ld0xpbmUobW9kaWZp
ZXJzKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkluc2VydE5ld2xpbmUiLCByZXN1bHQpOworfQorCit9
IC8vIGVtcHR5IG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47435</attachid>
            <date>2010-01-26 12:54:16 -0800</date>
            <delta_ts>2010-01-26 21:54:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34178-20100126125415.patch</filename>
            <type>text/plain</type>
            <size>8170</size>
            <attacher name="Yaar Schnitman">yaar</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGY2YjllYjcuLjczNDRkN2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEwLTAxLTI2ICBZYWFyIFNjaG5pdG1hbiAgPHlhYXJAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBLZXli
b2FyZFRlc3QgdG8gV2ViS2l0IEFQSSB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQxNzgKKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAg
ICAgICogdGVzdHMvS2V5Ym9hcmRUZXN0LmNwcDogQWRkZWQuCisKIDIwMTAtMDEtMTggIEpvbmF0
aGFuIERpeG9uICA8am90aEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggMGY4NGVmZS4uNGZlZDI1NyAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAKQEAgLTQxNSw4ICs0MTUsMTAgQEAKICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAnaW5j
bHVkZV9kaXJzJzogWwogICAgICAgICAgICAgICAgICdwdWJsaWMnLAorICAgICAgICAgICAgICAg
ICdzcmMnLAogICAgICAgICAgICAgXSwKICAgICAgICAgICAgICdzb3VyY2VzJzogWworICAgICAg
ICAgICAgICAgICd0ZXN0cy9LZXlib2FyZFRlc3QuY3BwJywKICAgICAgICAgICAgICAgICAndGVz
dHMvS1VSTFRlc3QuY3BwJywKICAgICAgICAgICAgICAgICAndGVzdHMvUnVuQWxsVGVzdHMuY3Bw
JywKICAgICAgICAgICAgIF0sCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvS2V5
Ym9hcmRUZXN0LmNwcCBiL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9LZXlib2FyZFRlc3QuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3YmVkM2MKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXQvY2hyb21pdW0vdGVzdHMvS2V5Ym9hcmRUZXN0LmNwcApAQCAtMCwwICsxLDIx
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNp
bmNsdWRlICJFZGl0b3JDbGllbnRJbXBsLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNp
bmNsdWRlICJLZXlib2FyZENvZGVzLmgiCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgorI2lu
Y2x1ZGUgIldlYklucHV0RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJJbnB1dEV2ZW50Q29udmVyc2lv
bi5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CisKK25hbWVzcGFjZSB7CisKK2NsYXNzIEtleWJvYXJkVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpU
ZXN0IHsKK3B1YmxpYzoKKworICAgIC8vIFBhc3MgYSBXZWJLZXlib2FyZEV2ZW50IGludG8gdGhl
IEVkaXRvckNsaWVudCBhbmQgZ2V0IGJhY2sgdGhlIHN0cmluZworICAgIC8vIG5hbWUgb2Ygd2hp
Y2ggZWRpdGluZyBldmVudCB0aGF0IGtleSBjYXVzZXMuCisgICAgLy8gRS5nLiwgc2VuZGluZyBp
biB0aGUgZW50ZXIga2V5IGdpdmVzIGJhY2sgIkluc2VydE5ld2xpbmUiLgorICAgIGNvbnN0IGNo
YXIqIGludGVycHJldEtleUV2ZW50KAorICAgICAgICBjb25zdCBXZWJLZXlib2FyZEV2ZW50JiB3
ZWJLZXlib2FyZEV2ZW50LAorICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlR5cGUga2V5
VHlwZSkKKyAgICB7CisgICAgICAgIEVkaXRvckNsaWVudEltcGwgZWRpdG9ySW1wbCgwKTsKKyAg
ICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlciBldnQod2ViS2V5Ym9hcmRFdmVudCk7
CisgICAgICAgIGV2dC5zZXRLZXlUeXBlKGtleVR5cGUpOworICAgICAgICBSZWZQdHI8S2V5Ym9h
cmRFdmVudD4ga2V5Ym9hcmRFdmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShldnQsIDApOwor
ICAgICAgICByZXR1cm4gZWRpdG9ySW1wbC5pbnRlcnByZXRLZXlFdmVudChrZXlib2FyZEV2ZW50
LmdldCgpKTsKKyAgICB9CisKKyAgICAvLyBTZXQgdXAgYSBXZWJLZXlib2FyZEV2ZW50IEtFWV9E
T1dOIGV2ZW50IHdpdGgga2V5IGNvZGUgYW5kIG1vZGlmaWVycy4KKyAgICB2b2lkIHNldHVwS2V5
RG93bkV2ZW50KFdlYktleWJvYXJkRXZlbnQqIGtleWJvYXJkRXZlbnQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGFyIGtleUNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgbW9kaWZpZXJzKQorICAgIHsKKyAgICAgICAga2V5Ym9hcmRFdmVudC0+d2luZG93c0tleUNv
ZGUgPSBrZXlDb2RlOworICAgICAgICBrZXlib2FyZEV2ZW50LT5tb2RpZmllcnMgPSBtb2RpZmll
cnM7CisgICAgICAgIGtleWJvYXJkRXZlbnQtPnR5cGUgPSBXZWJJbnB1dEV2ZW50OjpLZXlEb3du
OworICAgICAgICBrZXlib2FyZEV2ZW50LT50ZXh0WzBdID0ga2V5Q29kZTsKKyAgICAgICAga2V5
Ym9hcmRFdmVudC0+c2V0S2V5SWRlbnRpZmllckZyb21XaW5kb3dzS2V5Q29kZSgpOworICAgIH0K
KworICAgIC8vIExpa2UgaW50ZXJwcmV0S2V5RXZlbnQsIGJ1dCB3aXRoIHByZXNzaW5nIGRvd24g
T1NNb2RpZmllcit8a2V5Q29kZXwuCisgICAgLy8gT1NNb2RpZmllciBpcyB0aGUgcGxhdGZvcm0n
cyBzdGFuZGFyZCBtb2RpZmllciBrZXk6IGNvbnRyb2wgb24gbW9zdAorICAgIC8vIHBsYXRmb3Jt
cywgYnV0IG1ldGEgKGNvbW1hbmQpIG9uIE1hYy4KKyAgICBjb25zdCBjaGFyKiBpbnRlcnByZXRP
U01vZGlmaWVyS2V5UHJlc3MoY2hhciBrZXlDb2RlKQorICAgIHsKKyAgICAgICAgV2ViS2V5Ym9h
cmRFdmVudCBrZXlib2FyZEV2ZW50OworI2lmIE9TKERBUldJTikKKyAgICAgICAgV2ViSW5wdXRF
dmVudDo6TW9kaWZpZXJzIG9zTW9kaWZpZXIgPSBXZWJJbnB1dEV2ZW50OjpNZXRhS2V5OworI2Vs
c2UKKyAgICAgICAgV2ViSW5wdXRFdmVudDo6TW9kaWZpZXJzIG9zTW9kaWZpZXIgPSBXZWJJbnB1
dEV2ZW50OjpDb250cm9sS2V5OworI2VuZGlmCisgICAgICAgIHNldHVwS2V5RG93bkV2ZW50KCZr
ZXlib2FyZEV2ZW50LCBrZXlDb2RlLCBvc01vZGlmaWVyKTsKKyAgICAgICAgcmV0dXJuIGludGVy
cHJldEtleUV2ZW50KGtleWJvYXJkRXZlbnQsIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UmF3S2V5
RG93bik7CisgICAgfQorCisgICAgLy8gTGlrZSBpbnRlcnByZXRLZXlFdmVudCwgYnV0IHdpdGgg
cHJlc3NpbmcgZG93biBjdHJsK3xrZXlDb2RlfC4KKyAgICBjb25zdCBjaGFyKiBpbnRlcnByZXRD
dHJsS2V5UHJlc3MoY2hhciBrZXlDb2RlKQorICAgIHsKKyAgICAgICAgV2ViS2V5Ym9hcmRFdmVu
dCBrZXlib2FyZEV2ZW50OworICAgICAgICBzZXR1cEtleURvd25FdmVudCgma2V5Ym9hcmRFdmVu
dCwga2V5Q29kZSwgV2ViSW5wdXRFdmVudDo6Q29udHJvbEtleSk7CisgICAgICAgIHJldHVybiBp
bnRlcnByZXRLZXlFdmVudChrZXlib2FyZEV2ZW50LCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlJh
d0tleURvd24pOworICAgIH0KKworICAgIC8vIExpa2UgaW50ZXJwcmV0S2V5RXZlbnQsIGJ1dCB3
aXRoIHR5cGluZyBhIHRhYi4KKyAgICBjb25zdCBjaGFyKiBpbnRlcnByZXRUYWIoaW50IG1vZGlm
aWVycykKKyAgICB7CisgICAgICAgIFdlYktleWJvYXJkRXZlbnQga2V5Ym9hcmRFdmVudDsKKyAg
ICAgICAgc2V0dXBLZXlEb3duRXZlbnQoJmtleWJvYXJkRXZlbnQsICdcdCcsIG1vZGlmaWVycyk7
CisgICAgICAgIHJldHVybiBpbnRlcnByZXRLZXlFdmVudChrZXlib2FyZEV2ZW50LCBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQ6OkNoYXIpOworICAgIH0KKworICAgIC8vIExpa2UgaW50ZXJwcmV0S2V5
RXZlbnQsIGJ1dCB3aXRoIHR5cGluZyBhIG5ld2xpbmUuCisgICAgY29uc3QgY2hhciogaW50ZXJw
cmV0TmV3TGluZShpbnQgbW9kaWZpZXJzKQorICAgIHsKKyAgICAgICAgV2ViS2V5Ym9hcmRFdmVu
dCBrZXlib2FyZEV2ZW50OworICAgICAgICBzZXR1cEtleURvd25FdmVudCgma2V5Ym9hcmRFdmVu
dCwgJ1xyJywgbW9kaWZpZXJzKTsKKyAgICAgICAgcmV0dXJuIGludGVycHJldEtleUV2ZW50KGtl
eWJvYXJkRXZlbnQsIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Q2hhcik7CisgICAgfQorCisgICAg
Ly8gQSBuYW1lIGZvciAibm8gbW9kaWZpZXJzIHNldCIuCisgICAgc3RhdGljIGNvbnN0IGludCBu
b01vZGlmaWVycyA9IDA7Cit9OworCitURVNUX0YoS2V5Ym9hcmRUZXN0LCBUZXN0Q3RybFJldHVy
bikKK3sKKyAgICBFWFBFQ1RfU1RSRVEoIkluc2VydE5ld2xpbmUiLCBpbnRlcnByZXRDdHJsS2V5
UHJlc3MoMHhEKSk7Cit9CisKK1RFU1RfRihLZXlib2FyZFRlc3QsIFRlc3RPU01vZGlmaWVyWikK
K3sKKyNpZiAhT1MoREFSV0lOKQorICAgIEVYUEVDVF9TVFJFUSgiVW5kbyIsIGludGVycHJldE9T
TW9kaWZpZXJLZXlQcmVzcygnWicpKTsKKyNlbmRpZgorfQorCitURVNUX0YoS2V5Ym9hcmRUZXN0
LCBUZXN0T1NNb2RpZmllclkpCit7CisjaWYgIU9TKERBUldJTikKKyAgICBFWFBFQ1RfU1RSRVEo
IlJlZG8iLCBpbnRlcnByZXRPU01vZGlmaWVyS2V5UHJlc3MoJ1knKSk7CisjZW5kaWYKK30KKwor
VEVTVF9GKEtleWJvYXJkVGVzdCwgVGVzdE9TTW9kaWZpZXJBKQoreworI2lmICFPUyhEQVJXSU4p
CisgICAgRVhQRUNUX1NUUkVRKCJTZWxlY3RBbGwiLCBpbnRlcnByZXRPU01vZGlmaWVyS2V5UHJl
c3MoJ0EnKSk7CisjZW5kaWYKK30KKworVEVTVF9GKEtleWJvYXJkVGVzdCwgVGVzdE9TTW9kaWZp
ZXJYKQoreworI2lmICFPUyhEQVJXSU4pCisgICAgRVhQRUNUX1NUUkVRKCJDdXQiLCBpbnRlcnBy
ZXRPU01vZGlmaWVyS2V5UHJlc3MoJ1gnKSk7CisjZW5kaWYKK30KKworVEVTVF9GKEtleWJvYXJk
VGVzdCwgVGVzdE9TTW9kaWZpZXJDKQoreworI2lmICFPUyhEQVJXSU4pCisgICAgRVhQRUNUX1NU
UkVRKCJDb3B5IiwgaW50ZXJwcmV0T1NNb2RpZmllcktleVByZXNzKCdDJykpOworI2VuZGlmCit9
CisKK1RFU1RfRihLZXlib2FyZFRlc3QsIFRlc3RPU01vZGlmaWVyVikKK3sKKyNpZiAhT1MoREFS
V0lOKQorICAgIEVYUEVDVF9TVFJFUSgiUGFzdGUiLCBpbnRlcnByZXRPU01vZGlmaWVyS2V5UHJl
c3MoJ1YnKSk7CisjZW5kaWYKK30KKworVEVTVF9GKEtleWJvYXJkVGVzdCwgVGVzdEVzY2FwZSkK
K3sKKyAgICBXZWJLZXlib2FyZEV2ZW50IGtleWJvYXJkRXZlbnQ7CisgICAgc2V0dXBLZXlEb3du
RXZlbnQoJmtleWJvYXJkRXZlbnQsIFdlYkNvcmU6OlZLRVlfRVNDQVBFLCBub01vZGlmaWVycyk7
CisKKyAgICBjb25zdCBjaGFyKiByZXN1bHQgPSBpbnRlcnByZXRLZXlFdmVudChrZXlib2FyZEV2
ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudDo6UmF3S2V5RG93bik7CisgICAgRVhQRUNUX1NUUkVRKCJDYW5jZWwiLCBy
ZXN1bHQpOworfQorCitURVNUX0YoS2V5Ym9hcmRUZXN0LCBUZXN0SW5zZXJ0VGFiKQoreworICAg
IEVYUEVDVF9TVFJFUSgiSW5zZXJ0VGFiIiwgaW50ZXJwcmV0VGFiKG5vTW9kaWZpZXJzKSk7Cit9
CisKK1RFU1RfRihLZXlib2FyZFRlc3QsIFRlc3RJbnNlcnRCYWNrVGFiKQoreworICAgIEVYUEVD
VF9TVFJFUSgiSW5zZXJ0QmFja3RhYiIsIGludGVycHJldFRhYihXZWJJbnB1dEV2ZW50OjpTaGlm
dEtleSkpOworfQorCitURVNUX0YoS2V5Ym9hcmRUZXN0LCBUZXN0SW5zZXJ0TmV3bGluZSkKK3sK
KyAgICBFWFBFQ1RfU1RSRVEoIkluc2VydE5ld2xpbmUiLCBpbnRlcnByZXROZXdMaW5lKG5vTW9k
aWZpZXJzKSk7Cit9CisKK1RFU1RfRihLZXlib2FyZFRlc3QsIFRlc3RJbnNlcnROZXdsaW5lMikK
K3sKKyAgICBFWFBFQ1RfU1RSRVEoIkluc2VydE5ld2xpbmUiLCBpbnRlcnByZXROZXdMaW5lKFdl
YklucHV0RXZlbnQ6OkNvbnRyb2xLZXkpKTsKK30KKworVEVTVF9GKEtleWJvYXJkVGVzdCwgVGVz
dEluc2VydExpbmVCcmVhaykKK3sKKyAgICBFWFBFQ1RfU1RSRVEoIkluc2VydExpbmVCcmVhayIs
IGludGVycHJldE5ld0xpbmUoV2ViSW5wdXRFdmVudDo6U2hpZnRLZXkpKTsKK30KKworVEVTVF9G
KEtleWJvYXJkVGVzdCwgVGVzdEluc2VydE5ld2xpbmUzKQoreworICAgIEVYUEVDVF9TVFJFUSgi
SW5zZXJ0TmV3bGluZSIsIGludGVycHJldE5ld0xpbmUoV2ViSW5wdXRFdmVudDo6QWx0S2V5KSk7
Cit9CisKK1RFU1RfRihLZXlib2FyZFRlc3QsIFRlc3RJbnNlcnROZXdsaW5lNCkKK3sKKyAgICBp
bnQgbW9kaWZpZXJzID0gV2ViSW5wdXRFdmVudDo6QWx0S2V5IHwgV2ViSW5wdXRFdmVudDo6U2hp
ZnRLZXk7CisgICAgY29uc3QgY2hhciogcmVzdWx0ID0gaW50ZXJwcmV0TmV3TGluZShtb2RpZmll
cnMpOworICAgIEVYUEVDVF9TVFJFUSgiSW5zZXJ0TmV3bGluZSIsIHJlc3VsdCk7Cit9CisKK30g
Ly8gZW1wdHkgbmFtZXNwYWNlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>