<?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>68079</bug_id>
          
          <creation_ts>2011-09-14 07:04:43 -0700</creation_ts>
          <short_desc>Set but unused variables cleanup in v8 bindings (gcc 4.6)</short_desc>
          <delta_ts>2011-09-26 16:20:53 -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>New Bugs</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter>mperepelitsyn</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>467010</commentid>
    <comment_count>0</comment_count>
    <who name="">mperepelitsyn</who>
    <bug_when>2011-09-14 07:04:43 -0700</bug_when>
    <thetext>Set but unused variables cleanup in v8 bindings (gcc 4.6)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467050</commentid>
    <comment_count>1</comment_count>
      <attachid>107336</attachid>
    <who name="">mperepelitsyn</who>
    <bug_when>2011-09-14 09:02:19 -0700</bug_when>
    <thetext>Created attachment 107336
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467104</commentid>
    <comment_count>2</comment_count>
      <attachid>107336</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-14 10:17:54 -0700</bug_when>
    <thetext>Comment on attachment 107336
Patch

Attachment 107336 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9661524</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467200</commentid>
    <comment_count>3</comment_count>
      <attachid>107336</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-14 11:59:44 -0700</bug_when>
    <thetext>Comment on attachment 107336
Patch

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

&gt; Source/WebCore/bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:105
&gt;          imp-&gt;setLength(value-&gt;Uint32Value(), ec);

Are you sure we&apos;re not supposed to use newLength there?

&gt; Source/WebCore/bindings/v8/custom/V8WebSocketCustom.cpp:137
&gt; -        v8::Handle&lt;v8::String&gt; stringMessage = message-&gt;ToString();
&gt; +        message-&gt;ToString();

What&apos;s the point of calling ToString on this object and ignoring the result?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467648</commentid>
    <comment_count>4</comment_count>
    <who name="">mperepelitsyn</who>
    <bug_when>2011-09-14 22:57:09 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:105
&gt; &gt;          imp-&gt;setLength(value-&gt;Uint32Value(), ec);
&gt; 
&gt; Are you sure we&apos;re not supposed to use newLength there?

Of course I&apos;m not sure, as I&apos;m not so familiar with the codebase :) My only goal was to fix about 500+ warnings that pops up during Chromium build. But as far as I could see there was no intended use of this variable, so why don&apos;t we add extra variables when it will be really needed?


&gt; &gt; Source/WebCore/bindings/v8/custom/V8WebSocketCustom.cpp:137
&gt; &gt; -        v8::Handle&lt;v8::String&gt; stringMessage = message-&gt;ToString();
&gt; &gt; +        message-&gt;ToString();
&gt; 
&gt; What&apos;s the point of calling ToString on this object and ignoring the result?

I thought the point was in the exception checking, as it was surrounded by &quot;try catch&quot;

Any suggestions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467917</commentid>
    <comment_count>5</comment_count>
      <attachid>107336</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-15 11:15:08 -0700</bug_when>
    <thetext>Comment on attachment 107336
Patch

You&apos;ve definitely found parts of the code that have problems, but I don&apos;t think you&apos;ve resolved them in quite the right way.  For example, result = webSocket-&gt;send(toWebCoreString(message), ec) shouldn&apos;t call toString again.  It should use the value stored in stringMessage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468393</commentid>
    <comment_count>6</comment_count>
      <attachid>107626</attachid>
    <who name="">mperepelitsyn</who>
    <bug_when>2011-09-16 02:13:43 -0700</bug_when>
    <thetext>Created attachment 107626
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468394</commentid>
    <comment_count>7</comment_count>
    <who name="">mperepelitsyn</who>
    <bug_when>2011-09-16 02:15:51 -0700</bug_when>
    <thetext>Got it, PTAL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468690</commentid>
    <comment_count>8</comment_count>
      <attachid>107626</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-16 12:08:35 -0700</bug_when>
    <thetext>Comment on attachment 107626
Patch

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

&gt; Source/WebCore/bindings/v8/WorkerScriptDebugServer.cpp:-93
&gt;      WorkerContextExecutionProxy* proxy = workerContext-&gt;script()-&gt;proxy();
&gt;      if (!proxy)
&gt;          return;
&gt; -    v8::Handle&lt;v8::Context&gt; context = proxy-&gt;context();

Looks like proxy is almost entirely unused now.  Maybe add a comment asking whether we should remove it?

&gt; Source/WebCore/bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:112
&gt; -        imp-&gt;setLength(value-&gt;Uint32Value(), ec);
&gt; +        imp-&gt;setLength(newLength, ec);

Can we write a test for this change?  Maybe passing a length greater than UINT_MAX?

&gt; Source/WebCore/bindings/v8/custom/V8WebSocketCustom.cpp:140
&gt; -        result = webSocket-&gt;send(toWebCoreString(message), ec);
&gt; +        result = webSocket-&gt;send(toWebCoreString(stringMessage), ec);

This should also be testable by checking whether the toString method is called on message twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469418</commentid>
    <comment_count>9</comment_count>
    <who name="">mperepelitsyn</who>
    <bug_when>2011-09-19 08:41:09 -0700</bug_when>
    <thetext>&gt;Can we write a test for this change?

Oh, I&apos;d be happy to write them, but have no clue where to get started. I haven&apos;t found any common place in the source code where unit tests are supposed to be. 

I&apos;ll be very appreciated if you give me some tips.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469520</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-19 10:54:15 -0700</bug_when>
    <thetext>&gt; Oh, I&apos;d be happy to write them, but have no clue where to get started. I haven&apos;t found any common place in the source code where unit tests are supposed to be. 

Almost all the tests are in the LayoutTests directory.  They aren&apos;t unit tests, but rather medium-sized end-to-end tests.

&gt; I&apos;ll be very appreciated if you give me some tips.

Here&apos;s some documentation about writing tests:

http://www.webkit.org/quality/testing.html
http://www.webkit.org/quality/testwriting.html

For the WebSocket change, you&apos;ll probably want to add your test somewhere in this directory:

http://trac.webkit.org/browser/trunk/LayoutTests/http/tests/websocket/tests

For the HTMLOptionsCollection, I&apos;m not entirely sure which tests cover that object, but you can probably find some by looking at the history of the file.  That should give you some inspiration about how and where to add the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473064</commentid>
    <comment_count>11</comment_count>
      <attachid>108655</attachid>
    <who name="">mperepelitsyn</who>
    <bug_when>2011-09-26 05:31:17 -0700</bug_when>
    <thetext>Created attachment 108655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473067</commentid>
    <comment_count>12</comment_count>
    <who name="">mperepelitsyn</who>
    <bug_when>2011-09-26 05:40:09 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:112
&gt; &gt; -        imp-&gt;setLength(value-&gt;Uint32Value(), ec);
&gt; &gt; +        imp-&gt;setLength(newLength, ec);
&gt; 
&gt; Can we write a test for this change?  Maybe passing a length greater than UINT_MAX?

I think there is no point, because the length is limited to 10k ( http://google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/html/HTMLSelectElement.cpp&amp;type=cs&amp;l=479 ) and must have been covered by tests somewhere :)

I&apos;ve uploaded a new patch, take a look please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473084</commentid>
    <comment_count>13</comment_count>
      <attachid>108661</attachid>
    <who name="">mperepelitsyn</who>
    <bug_when>2011-09-26 06:55:53 -0700</bug_when>
    <thetext>Created attachment 108661
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473262</commentid>
    <comment_count>14</comment_count>
      <attachid>108661</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-26 11:53:39 -0700</bug_when>
    <thetext>Comment on attachment 108661
Patch

Looks good.  Thanks for iterating on this patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473512</commentid>
    <comment_count>15</comment_count>
      <attachid>108661</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-26 16:20:48 -0700</bug_when>
    <thetext>Comment on attachment 108661
Patch

Clearing flags on attachment: 108661

Committed r96030: &lt;http://trac.webkit.org/changeset/96030&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473513</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-26 16:20:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107336</attachid>
            <date>2011-09-14 09:02:19 -0700</date>
            <delta_ts>2011-09-16 02:13:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68079-20110914220216.patch</filename>
            <type>text/plain</type>
            <size>4609</size>
            <attacher>mperepelitsyn</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1MDg4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDktMTQgIE1heCBQZXJl
cGVsaXRzeW4gIDxwcGgzNHJAZ21haWwuY29tPgorCisgICAgICAgIFNldCBidXQgdW51c2VkIHZh
cmlhYmxlcyBjbGVhbnVwIGluIHY4IGJpbmRpbmdzIChnY2MgNC42KQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdERlYnVnU2Vy
dmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdERlYnVnU2VydmVyOjphZGRM
aXN0ZW5lcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTE9wdGlvbnNDb2xs
ZWN0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SFRNTE9wdGlvbnNDb2xsZWN0
aW9uOjpsZW5ndGhBY2Nlc3NvclNldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V2ViU29ja2V0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViU29ja2V0Ojpz
ZW5kQ2FsbGJhY2spOgorCiAyMDExLTA5LTE0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByOTUwODAu
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQkocmV2aXNpb24gOTUwODcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkod29ya2luZyBjb3B5KQpAQCAtMjE5NCwxMCArMjE5
NCwxMyBAQCBFTkQKICAgICB9IGVsc2UgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxF
TkQpOwogICAgICAgICAwLCAwKTsKLSAgICBVTlVTRURfUEFSQU0oZGVmYXVsdFNpZ25hdHVyZSk7
IC8vIEluIHNvbWUgY2FzZXMsIGl0IHdpbGwgbm90IGJlIHVzZWQuCiBFTkQKLSAgICAgICAgQWRk
VG9JbXBsSW5jbHVkZXMoInd0Zi9VbnVzZWRQYXJhbS5oIik7CiAgICAgfQorICAgIAorICAgIEFk
ZFRvSW1wbEluY2x1ZGVzKCJ3dGYvVW51c2VkUGFyYW0uaCIpOworICAgIHB1c2goQGltcGxDb250
ZW50LCA8PEVORCk7CisgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRTaWduYXR1cmUpOyAvLyBJbiBz
b21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1c2VkLgorRU5ECiAKICAgICBpZiAoJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FuQmVDb25zdHJ1Y3RlZCJ9IHx8ICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0gfHwgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhDdXN0b21Db25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdGVyIn0pIHsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsIDw8RU5EKTsKQEAgLTIyMDksNiArMjIxMiw4IEBAIEVORAogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIDw8RU5EKTsKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdFRlbXBsYXRl
PiBpbnN0YW5jZSA9IGRlc2MtPkluc3RhbmNlVGVtcGxhdGUoKTsKICAgICB2ODo6TG9jYWw8djg6
Ok9iamVjdFRlbXBsYXRlPiBwcm90byA9IGRlc2MtPlByb3RvdHlwZVRlbXBsYXRlKCk7CisgICAg
VU5VU0VEX1BBUkFNKGluc3RhbmNlKTsgLy8gSW4gc29tZSBjYXNlcywgaXQgd2lsbCBub3QgYmUg
dXNlZC4KKyAgICBVTlVTRURfUEFSQU0ocHJvdG8pOyAvLyBJbiBzb21lIGNhc2VzLCBpdCB3aWxs
IG5vdCBiZSB1c2VkLgogRU5ECiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCShyZXZpc2lvbiA5
NTA4NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdERlYnVnU2Vy
dmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTAsNyArOTAsNiBAQCB2b2lkIFdvcmtlclNjcmlw
dERlYnVnU2VydmVyOjphZGRMaXN0ZW5lCiAgICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5
KiBwcm94eSA9IHdvcmtlckNvbnRleHQtPnNjcmlwdCgpLT5wcm94eSgpOwogICAgIGlmICghcHJv
eHkpCiAgICAgICAgIHJldHVybjsKLSAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0
ID0gcHJveHktPmNvbnRleHQoKTsKIAogICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBnZXRT
Y3JpcHRzRnVuY3Rpb24gPSB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPjo6Q2FzdChtX2RlYnVnZ2Vy
U2NyaXB0LmdldCgpLT5HZXQodjg6OlN0cmluZzo6TmV3KCJnZXRXb3JrZXJTY3JpcHRzIikpKTsK
ICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdID0geyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4oKSB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTE9w
dGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwCShyZXZp
c2lvbiA5NTA4NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxP
cHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk4LDE2ICs5OCw5
IEBAIHZvaWQgVjhIVE1MT3B0aW9uc0NvbGxlY3Rpb246Omxlbmd0aEFjY2UKICAgICBJTkNfU1RB
VFMoIkRPTS5IVE1MT3B0aW9uc0NvbGxlY3Rpb24ubGVuZ3RoLl9zZXQiKTsKICAgICBIVE1MT3B0
aW9uc0NvbGxlY3Rpb24qIGltcCA9IFY4SFRNTE9wdGlvbnNDb2xsZWN0aW9uOjp0b05hdGl2ZShp
bmZvLkhvbGRlcigpKTsKICAgICBkb3VibGUgdiA9IHZhbHVlLT5OdW1iZXJWYWx1ZSgpOwotICAg
IHVuc2lnbmVkIG5ld0xlbmd0aCA9IDA7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAg
aWYgKCFpc25hbih2KSAmJiAhaXNpbmYodikpIHsKLSAgICAgICAgaWYgKHYgPCAwLjApCi0gICAg
ICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwotICAgICAgICBlbHNlIGlmICh2ID4gc3RhdGlj
X2Nhc3Q8ZG91YmxlPihVSU5UX01BWCkpCi0gICAgICAgICAgICBuZXdMZW5ndGggPSBVSU5UX01B
WDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbmV3TGVuZ3RoID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHYpOwotICAgIH0KKyAgICBpZiAoIWlzbmFuKHYpICYmICFpc2luZih2KSAmJiB2IDwg
MC4wKQorICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwogICAgIGlmICghZWMpCiAgICAgICAg
IGltcC0+c2V0TGVuZ3RoKHZhbHVlLT5VaW50MzJWYWx1ZSgpLCBlYyk7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYlNvY2tldEN1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0Q3Vz
dG9tLmNwcAkocmV2aXNpb24gOTUwODcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhXZWJTb2NrZXRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsNyArMTM0
LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViU29ja2V0OjpzZW5kQwogICAgICAgICBy
ZXN1bHQgPSB3ZWJTb2NrZXQtPnNlbmQoYmxvYiwgZWMpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IHY4OjpUcnlDYXRjaCB0cnlDYXRjaDsKLSAgICAgICAgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBz
dHJpbmdNZXNzYWdlID0gbWVzc2FnZS0+VG9TdHJpbmcoKTsKKyAgICAgICAgbWVzc2FnZS0+VG9T
dHJpbmcoKTsKICAgICAgICAgaWYgKHRyeUNhdGNoLkhhc0NhdWdodCgpKQogICAgICAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IodHJ5Q2F0Y2guRXhjZXB0aW9uKCkpOwogICAgICAgICByZXN1bHQg
PSB3ZWJTb2NrZXQtPnNlbmQodG9XZWJDb3JlU3RyaW5nKG1lc3NhZ2UpLCBlYyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107626</attachid>
            <date>2011-09-16 02:13:43 -0700</date>
            <delta_ts>2011-09-26 05:31:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68079-20110916151340.patch</filename>
            <type>text/plain</type>
            <size>4180</size>
            <attacher>mperepelitsyn</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1MjgwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDktMTYgIE1heCBQZXJl
cGVsaXRzeW4gIDxwcGgzNHJAZ21haWwuY29tPgorCisgICAgICAgIFNldCBidXQgdW51c2VkIHZh
cmlhYmxlcyBjbGVhbnVwIGluIHY4IGJpbmRpbmdzIChnY2MgNC42KQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdERlYnVnU2Vy
dmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdERlYnVnU2VydmVyOjphZGRM
aXN0ZW5lcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTE9wdGlvbnNDb2xs
ZWN0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SFRNTE9wdGlvbnNDb2xsZWN0
aW9uOjpsZW5ndGhBY2Nlc3NvclNldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9t
L1Y4V2ViU29ja2V0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViU29ja2V0Ojpz
ZW5kQ2FsbGJhY2spOgorCiAyMDExLTA5LTE2ICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8YWxleEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIEZpeCBHVEsgYnVpbGQgYWZ0ZXIgcjk1MjQ1LgpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0JKHJldmlzaW9uIDk1MDg3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG0JKHdvcmtpbmcgY29weSkKQEAgLTIxOTQsMTAgKzIxOTQsMTMgQEAg
RU5ECiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKICAg
ICAgICAgMCwgMCk7Ci0gICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRTaWduYXR1cmUpOyAvLyBJbiBz
b21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1c2VkLgogRU5ECi0gICAgICAgIEFkZFRvSW1wbElu
Y2x1ZGVzKCJ3dGYvVW51c2VkUGFyYW0uaCIpOwogICAgIH0KKyAgICAKKyAgICBBZGRUb0ltcGxJ
bmNsdWRlcygid3RmL1VudXNlZFBhcmFtLmgiKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxF
TkQpOworICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0U2lnbmF0dXJlKTsgLy8gSW4gc29tZSBjYXNl
cywgaXQgd2lsbCBub3QgYmUgdXNlZC4KK0VORAogCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkNhbkJlQ29uc3RydWN0ZWQifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlY4Q3VzdG9tQ29uc3RydWN0b3IifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RlciJ9KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCA8PEVORCk7CkBAIC0yMjA5LDYgKzIyMTIsOCBAQCBFTkQKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICA8PEVORCk7CiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3RUZW1wbGF0ZT4gaW5zdGFu
Y2UgPSBkZXNjLT5JbnN0YW5jZVRlbXBsYXRlKCk7CiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3RU
ZW1wbGF0ZT4gcHJvdG8gPSBkZXNjLT5Qcm90b3R5cGVUZW1wbGF0ZSgpOworICAgIFVOVVNFRF9Q
QVJBTShpbnN0YW5jZSk7IC8vIEluIHNvbWUgY2FzZXMsIGl0IHdpbGwgbm90IGJlIHVzZWQuCisg
ICAgVU5VU0VEX1BBUkFNKHByb3RvKTsgLy8gSW4gc29tZSBjYXNlcywgaXQgd2lsbCBub3QgYmUg
dXNlZC4KIEVORAogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29y
a2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcAkocmV2aXNpb24gOTUwODcpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTkwLDcgKzkwLDYgQEAgdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1Nl
cnZlcjo6YWRkTGlzdGVuZQogICAgIFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eSogcHJveHkg
PSB3b3JrZXJDb250ZXh0LT5zY3JpcHQoKS0+cHJveHkoKTsKICAgICBpZiAoIXByb3h5KQogICAg
ICAgICByZXR1cm47Ci0gICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dCA9IHByb3h5
LT5jb250ZXh0KCk7CiAKICAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4gZ2V0U2NyaXB0c0Z1
bmN0aW9uID0gdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj46OkNhc3QobV9kZWJ1Z2dlclNjcmlwdC5n
ZXQoKS0+R2V0KHY4OjpTdHJpbmc6Ok5ldygiZ2V0V29ya2VyU2NyaXB0cyIpKSk7CiAgICAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSA9IHsgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCkgfTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxPcHRpb25zQ29s
bGVjdGlvbkN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcAkocmV2aXNpb24gOTUw
ODcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MT3B0aW9uc0Nv
bGxlY3Rpb25DdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNyArMTA5LDcgQEAgdm9p
ZCBWOEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6bGVuZ3RoQWNjZQogICAgICAgICAgICAgbmV3TGVu
Z3RoID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHYpOwogICAgIH0KICAgICBpZiAoIWVjKQotICAg
ICAgICBpbXAtPnNldExlbmd0aCh2YWx1ZS0+VWludDMyVmFsdWUoKSwgZWMpOworICAgICAgICBp
bXAtPnNldExlbmd0aChuZXdMZW5ndGgsIGVjKTsKIAogICAgIFY4UHJveHk6OnNldERPTUV4Y2Vw
dGlvbihlYyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJTb2NrZXRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFdlYlNvY2tldEN1c3RvbS5jcHAJKHJldmlzaW9uIDk1MDg3KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0Q3VzdG9tLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTM3LDcgKzEzNyw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdl
YlNvY2tldDo6c2VuZEMKICAgICAgICAgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBzdHJpbmdNZXNz
YWdlID0gbWVzc2FnZS0+VG9TdHJpbmcoKTsKICAgICAgICAgaWYgKHRyeUNhdGNoLkhhc0NhdWdo
dCgpKQogICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IodHJ5Q2F0Y2guRXhjZXB0aW9uKCkp
OwotICAgICAgICByZXN1bHQgPSB3ZWJTb2NrZXQtPnNlbmQodG9XZWJDb3JlU3RyaW5nKG1lc3Nh
Z2UpLCBlYyk7CisgICAgICAgIHJlc3VsdCA9IHdlYlNvY2tldC0+c2VuZCh0b1dlYkNvcmVTdHJp
bmcoc3RyaW5nTWVzc2FnZSksIGVjKTsKICAgICB9CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcihlYyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108655</attachid>
            <date>2011-09-26 05:31:17 -0700</date>
            <delta_ts>2011-09-26 06:55:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68079-20110926183115.patch</filename>
            <type>text/plain</type>
            <size>7297</size>
            <attacher>mperepelitsyn</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1OTQ0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDktMjYgIE1heCBQZXJl
cGVsaXRzeW4gIDxwcGgzNHJAZ21haWwuY29tPgorCisgICAgICAgIFNldCBidXQgdW51c2VkIHZh
cmlhYmxlcyBjbGVhbnVwIGluIHY4IGJpbmRpbmdzIChnY2MgNC42KQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL3NlbmQtb2JqZWN0LXRvc3RyaW5nLWNoZWNrLmh0bWwKKworICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clNjcmlwdERlYnVnU2VydmVyOjphZGRMaXN0ZW5lcik6CisgICAgICAgICogYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4SFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpsZW5ndGhBY2Nlc3NvclNldHRlcik6CisgICAg
ICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4V2ViU29ja2V0OjpzZW5kQ2FsbGJhY2spOgorCiAyMDExLTA5LTI2ICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogW0V4dGVuc2lvbnMgQVBJXSBhbGxvdyByZXNvdXJjZXMgdG8gaG9vayBvbiBjbGljayBvbiBy
ZXNvdXJjZSBsaW5rcwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yVjgucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0JKHJldmlzaW9uIDk1OTM0KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0JKHdvcmtpbmcgY29weSkKQEAg
LTIxOTQsMTAgKzIxOTQsMTMgQEAgRU5ECiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsIDw8RU5EKTsKICAgICAgICAgMCwgMCk7Ci0gICAgVU5VU0VEX1BBUkFNKGRlZmF1
bHRTaWduYXR1cmUpOyAvLyBJbiBzb21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1c2VkLgogRU5E
Ci0gICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJ3dGYvVW51c2VkUGFyYW0uaCIpOwogICAgIH0K
KyAgICAKKyAgICBBZGRUb0ltcGxJbmNsdWRlcygid3RmL1VudXNlZFBhcmFtLmgiKTsKKyAgICBw
dXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOworICAgIFVOVVNFRF9QQVJBTShkZWZhdWx0U2lnbmF0
dXJlKTsgLy8gSW4gc29tZSBjYXNlcywgaXQgd2lsbCBub3QgYmUgdXNlZC4KK0VORAogCiAgICAg
aWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbkJlQ29uc3RydWN0ZWQifSB8
fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9IHx8
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4Q3VzdG9tQ29uc3RydWN0b3IifSB8
fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RlciJ9KSB7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CkBAIC0yMjA5LDYgKzIyMTIsOCBAQCBFTkQK
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICA8PEVORCk7CiAgICAgdjg6OkxvY2FsPHY4OjpP
YmplY3RUZW1wbGF0ZT4gaW5zdGFuY2UgPSBkZXNjLT5JbnN0YW5jZVRlbXBsYXRlKCk7CiAgICAg
djg6OkxvY2FsPHY4OjpPYmplY3RUZW1wbGF0ZT4gcHJvdG8gPSBkZXNjLT5Qcm90b3R5cGVUZW1w
bGF0ZSgpOworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7IC8vIEluIHNvbWUgY2FzZXMsIGl0
IHdpbGwgbm90IGJlIHVzZWQuCisgICAgVU5VU0VEX1BBUkFNKHByb3RvKTsgLy8gSW4gc29tZSBj
YXNlcywgaXQgd2lsbCBub3QgYmUgdXNlZC4KIEVORAogICAgIH0KIApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNw
cAkocmV2aXNpb24gOTU5MzQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJT
Y3JpcHREZWJ1Z1NlcnZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3LDEwICs4NywxMCBAQCB2
b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjphZGRMaXN0ZW5lCiAgICAgfQogICAgIG1fbGlz
dGVuZXJzTWFwLnNldCh3b3JrZXJDb250ZXh0LCBsaXN0ZW5lcik7CiAgICAgCisgICAgLy8gVE9E
TzogU2hvdWxkIHdlIHJlbW92ZSB8cHJveHl8PyBJdCBsb29rcyBsaWtlIHVudXNlZCBub3cuCiAg
ICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KiBwcm94eSA9IHdvcmtlckNvbnRleHQtPnNj
cmlwdCgpLT5wcm94eSgpOwogICAgIGlmICghcHJveHkpCiAgICAgICAgIHJldHVybjsKLSAgICB2
ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gcHJveHktPmNvbnRleHQoKTsKIAogICAg
IHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBnZXRTY3JpcHRzRnVuY3Rpb24gPSB2ODo6TG9jYWw8
djg6OkZ1bmN0aW9uPjo6Q2FzdChtX2RlYnVnZ2VyU2NyaXB0LmdldCgpLT5HZXQodjg6OlN0cmlu
Zzo6TmV3KCJnZXRXb3JrZXJTY3JpcHRzIikpKTsKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
YXJndltdID0geyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKSB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MT3B0
aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwCShyZXZpc2lvbiA5NTkzNCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIFY4SFRNTE9wdGlvbnNDb2xs
ZWN0aW9uOjpsZW5ndGhBY2NlCiAgICAgICAgICAgICBuZXdMZW5ndGggPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4odik7CiAgICAgfQogICAgIGlmICghZWMpCi0gICAgICAgIGltcC0+c2V0TGVuZ3Ro
KHZhbHVlLT5VaW50MzJWYWx1ZSgpLCBlYyk7CisgICAgICAgIGltcC0+c2V0TGVuZ3RoKG5ld0xl
bmd0aCwgZWMpOwogCiAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYlNvY2tldEN1c3RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29j
a2V0Q3VzdG9tLmNwcAkocmV2aXNpb24gOTU5MzQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcs
NyArMTM3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViU29ja2V0OjpzZW5kQwogICAg
ICAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHN0cmluZ01lc3NhZ2UgPSBtZXNzYWdlLT5Ub1N0
cmluZygpOwogICAgICAgICBpZiAodHJ5Q2F0Y2guSGFzQ2F1Z2h0KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gdGhyb3dFcnJvcih0cnlDYXRjaC5FeGNlcHRpb24oKSk7Ci0gICAgICAgIHJlc3VsdCA9
IHdlYlNvY2tldC0+c2VuZCh0b1dlYkNvcmVTdHJpbmcobWVzc2FnZSksIGVjKTsKKyAgICAgICAg
cmVzdWx0ID0gd2ViU29ja2V0LT5zZW5kKHRvV2ViQ29yZVN0cmluZyhzdHJpbmdNZXNzYWdlKSwg
ZWMpOwogICAgIH0KICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVjKTsK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDk1OTQ0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDktMjYgIE1heCBQZXJlcGVsaXRzeW4g
IDxwcGgzNHJAZ21haWwuY29tPgorCisgICAgICAgIFNldCBidXQgdW51c2VkIHZhcmlhYmxlcyBj
bGVhbnVwIGluIHY4IGJpbmRpbmdzIChnY2MgNC42KQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
c2VuZC1vYmplY3QtdG9zdHJpbmctY2hlY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtb2JqZWN0LXRvc3RyaW5nLWNo
ZWNrLmh0bWw6IEFkZGVkLgorCiAyMDExLTA5LTI2ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogW0V4dGVuc2lvbnMgQVBJXSBh
bGxvdyByZXNvdXJjZXMgdG8gaG9vayBvbiBjbGljayBvbiByZXNvdXJjZSBsaW5rcwpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLW9iamVjdC10
b3N0cmluZy1jaGVjay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLW9iamVjdC10b3N0cmluZy1jaGVjay1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL3NlbmQtb2JqZWN0LXRvc3RyaW5nLWNoZWNrLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorV2ViU29ja2V0OiBPYmplY3QncyB0b1N0cmlu
ZyBtZXRob2Qgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IG9uY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworUEFTUyB0ZXN0T2JqLmNhbGxDb3VudGVyIGlzIDEKK1BBU1MgY2xvc2VFdmVu
dC53YXNDbGVhbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9zZW5kLW9iamVjdC10b3N0cmluZy1jaGVjay5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1vYmplY3QtdG9z
dHJpbmctY2hlY2suaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1vYmplY3QtdG9zdHJpbmctY2hlY2suaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK2Rlc2NyaXB0aW9uKCJXZWJTb2NrZXQ6IE9i
amVjdCdzIHRvU3RyaW5nIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkIG9ubHkgb25jZS4iKTsKKwor
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktp
dEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAwKTsKKworCit2YXIgdGVzdE9iaiA9
IG5ldyBmdW5jdGlvbigpIHsKKyAgICB0aGlzLmNhbGxDb3VudGVyID0gMDsKKyAgICB0aGlzLnRv
U3RyaW5nID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuY2FsbENvdW50ZXIrKzsKKyAgICB9
OworfQorCit2YXIgdXJsID0gIndzOi8vMTI3LjAuMC4xOjg4ODAvIjsKK3ZhciB3cyA9IG5ldyBX
ZWJTb2NrZXQodXJsKTsKK3ZhciBjbG9zZUV2ZW50OworCisKK3dzLm9ub3BlbiA9IGZ1bmN0aW9u
KCkKK3sKKyAgICB3cy5zZW5kKHRlc3RPYmopOworfTsKKword3Mub25jbG9zZSA9IGZ1bmN0aW9u
KGV2ZW50KQoreworICAgIGNsb3NlRXZlbnQgPSBldmVudDsKKyAgICBzaG91bGRFdmFsdWF0ZVRv
KCJ0ZXN0T2JqLmNhbGxDb3VudGVyIiwgMSk7CisgICAgc2hvdWxkQmVUcnVlKCJjbG9zZUV2ZW50
Lndhc0NsZWFuIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9OworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108661</attachid>
            <date>2011-09-26 06:55:53 -0700</date>
            <delta_ts>2011-09-26 16:20:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68079-20110926195551.patch</filename>
            <type>text/plain</type>
            <size>10033</size>
            <attacher>mperepelitsyn</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1OTQ4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDktMjYgIE1heCBQZXJl
cGVsaXRzeW4gIDxwcGgzNHJAZ21haWwuY29tPgorCisgICAgICAgIFNldCBidXQgdW51c2VkIHZh
cmlhYmxlcyBjbGVhbnVwIGluIHY4IGJpbmRpbmdzIChnY2MgNC42KQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL3NlbmQtb2JqZWN0LXRvc3RyaW5nLWNoZWNrLmh0bWwKKworICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUZW1wbGF0
ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb25maWd1cmVWOFRlc3RPYmpUZW1wbGF0ZSk6CisgICAgICAgICog
YmluZGluZ3MvdjgvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVyKToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9jdXN0b20vVjhIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VjhIVE1MT3B0aW9uc0NvbGxlY3Rpb246Omxlbmd0aEFjY2Vzc29yU2V0dGVy
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VjhXZWJTb2NrZXQ6OnNlbmRDYWxsYmFjayk6CisKIDIwMTEtMDkt
MjYgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW51
c2VkIHZhcmlhYmxlIGluIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpzZW5kTmV0d29ya1JlcXVlc3Qu
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQkocmV2aXNpb24gOTU5MzQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkod29ya2luZyBjb3B5KQpAQCAtMjE5NCwxMCArMjE5
NCwxMyBAQCBFTkQKICAgICB9IGVsc2UgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxF
TkQpOwogICAgICAgICAwLCAwKTsKLSAgICBVTlVTRURfUEFSQU0oZGVmYXVsdFNpZ25hdHVyZSk7
IC8vIEluIHNvbWUgY2FzZXMsIGl0IHdpbGwgbm90IGJlIHVzZWQuCiBFTkQKLSAgICAgICAgQWRk
VG9JbXBsSW5jbHVkZXMoInd0Zi9VbnVzZWRQYXJhbS5oIik7CiAgICAgfQorICAgIAorICAgIEFk
ZFRvSW1wbEluY2x1ZGVzKCJ3dGYvVW51c2VkUGFyYW0uaCIpOworICAgIHB1c2goQGltcGxDb250
ZW50LCA8PEVORCk7CisgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRTaWduYXR1cmUpOyAvLyBJbiBz
b21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1c2VkLgorRU5ECiAKICAgICBpZiAoJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FuQmVDb25zdHJ1Y3RlZCJ9IHx8ICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0gfHwgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhDdXN0b21Db25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdGVyIn0pIHsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsIDw8RU5EKTsKQEAgLTIyMDksNiArMjIxMiw4IEBAIEVORAogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIDw8RU5EKTsKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdFRlbXBsYXRl
PiBpbnN0YW5jZSA9IGRlc2MtPkluc3RhbmNlVGVtcGxhdGUoKTsKICAgICB2ODo6TG9jYWw8djg6
Ok9iamVjdFRlbXBsYXRlPiBwcm90byA9IGRlc2MtPlByb3RvdHlwZVRlbXBsYXRlKCk7CisgICAg
VU5VU0VEX1BBUkFNKGluc3RhbmNlKTsgLy8gSW4gc29tZSBjYXNlcywgaXQgd2lsbCBub3QgYmUg
dXNlZC4KKyAgICBVTlVTRURfUEFSQU0ocHJvdG8pOyAvLyBJbiBzb21lIGNhc2VzLCBpdCB3aWxs
IG5vdCBiZSB1c2VkLgogRU5ECiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCShyZXZpc2lvbiA5NTkzNCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlY4RE9NV3Jh
cHBlci5oIgogI2luY2x1ZGUgIlY4SXNvbGF0ZWRDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhQcm94
eS5oIgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTYxLDggKzYyLDExIEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGEKICAgICB2ODo6TG9jYWw8djg6OlNpZ25hdHVyZT4gZGVmYXVsdFNpZ25hdHVyZSA9IGNv
bmZpZ3VyZVRlbXBsYXRlKGRlc2MsICJUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciIsIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCBWOFRlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyOjppbnRlcm5hbEZpZWxkQ291bnQsCiAgICAgICAgIDAsIDAsCiAgICAgICAgIFRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ2FsbGJhY2tzLCBXVEZfQVJSQVlfTEVOR1RIKFRlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyQ2FsbGJhY2tzKSk7CisgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRT
aWduYXR1cmUpOyAvLyBJbiBzb21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1c2VkLgogICAgIHY4
OjpMb2NhbDx2ODo6T2JqZWN0VGVtcGxhdGU+IGluc3RhbmNlID0gZGVzYy0+SW5zdGFuY2VUZW1w
bGF0ZSgpOwogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0VGVtcGxhdGU+IHByb3RvID0gZGVzYy0+
UHJvdG90eXBlVGVtcGxhdGUoKTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOyAvLyBJbiBz
b21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1c2VkLgorICAgIFVOVVNFRF9QQVJBTShwcm90byk7
IC8vIEluIHNvbWUgY2FzZXMsIGl0IHdpbGwgbm90IGJlIHVzZWQuCiAgICAgCiAKICAgICAvLyBD
dXN0b20gdG9TdHJpbmcgdGVtcGxhdGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCShyZXZpc2lvbiA5NTkzNCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCiAj
aW5jbHVkZSAiVjhUZXN0T2JqZWN0QS5oIgpAQCAtMTQwOCw4ICsxNDA5LDExIEBAIHN0YXRpYyB2
ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGEKICAgICB2ODo6TG9jYWw8djg6OlNpZ25h
dHVyZT4gZGVmYXVsdFNpZ25hdHVyZSA9IGNvbmZpZ3VyZVRlbXBsYXRlKGRlc2MsICJUZXN0T2Jq
Iiwgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIFY4VGVzdE9iajo6aW50
ZXJuYWxGaWVsZENvdW50LAogICAgICAgICBUZXN0T2JqQXR0cnMsIFdURl9BUlJBWV9MRU5HVEgo
VGVzdE9iakF0dHJzKSwKICAgICAgICAgVGVzdE9iakNhbGxiYWNrcywgV1RGX0FSUkFZX0xFTkdU
SChUZXN0T2JqQ2FsbGJhY2tzKSk7CisgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRTaWduYXR1cmUp
OyAvLyBJbiBzb21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1c2VkLgogICAgIHY4OjpMb2NhbDx2
ODo6T2JqZWN0VGVtcGxhdGU+IGluc3RhbmNlID0gZGVzYy0+SW5zdGFuY2VUZW1wbGF0ZSgpOwog
ICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0VGVtcGxhdGU+IHByb3RvID0gZGVzYy0+UHJvdG90eXBl
VGVtcGxhdGUoKTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOyAvLyBJbiBzb21lIGNhc2Vz
LCBpdCB3aWxsIG5vdCBiZSB1c2VkLgorICAgIFVOVVNFRF9QQVJBTShwcm90byk7IC8vIEluIHNv
bWUgY2FzZXMsIGl0IHdpbGwgbm90IGJlIHVzZWQuCiAgICAgCiAgICAgaWYgKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OmVuYWJsZWRBdFJ1bnRpbWVBdHRyMUVuYWJsZWQoKSkgewogICAgICAgICBz
dGF0aWMgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSBhdHRyRGF0YSA9XApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNw
cAkocmV2aXNpb24gOTU5MzQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJT
Y3JpcHREZWJ1Z1NlcnZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3LDEwICs4NywxMCBAQCB2
b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjphZGRMaXN0ZW5lCiAgICAgfQogICAgIG1fbGlz
dGVuZXJzTWFwLnNldCh3b3JrZXJDb250ZXh0LCBsaXN0ZW5lcik7CiAgICAgCisgICAgLy8gVE9E
TzogU2hvdWxkIHdlIHJlbW92ZSB8cHJveHl8PyBJdCBsb29rcyBsaWtlIHVudXNlZCBub3cuCiAg
ICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KiBwcm94eSA9IHdvcmtlckNvbnRleHQtPnNj
cmlwdCgpLT5wcm94eSgpOwogICAgIGlmICghcHJveHkpCiAgICAgICAgIHJldHVybjsKLSAgICB2
ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gcHJveHktPmNvbnRleHQoKTsKIAogICAg
IHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBnZXRTY3JpcHRzRnVuY3Rpb24gPSB2ODo6TG9jYWw8
djg6OkZ1bmN0aW9uPjo6Q2FzdChtX2RlYnVnZ2VyU2NyaXB0LmdldCgpLT5HZXQodjg6OlN0cmlu
Zzo6TmV3KCJnZXRXb3JrZXJTY3JpcHRzIikpKTsKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
YXJndltdID0geyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKSB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhIVE1MT3B0
aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwCShyZXZpc2lvbiA5NTkzNCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIFY4SFRNTE9wdGlvbnNDb2xs
ZWN0aW9uOjpsZW5ndGhBY2NlCiAgICAgICAgICAgICBuZXdMZW5ndGggPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4odik7CiAgICAgfQogICAgIGlmICghZWMpCi0gICAgICAgIGltcC0+c2V0TGVuZ3Ro
KHZhbHVlLT5VaW50MzJWYWx1ZSgpLCBlYyk7CisgICAgICAgIGltcC0+c2V0TGVuZ3RoKG5ld0xl
bmd0aCwgZWMpOwogCiAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYlNvY2tldEN1c3RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29j
a2V0Q3VzdG9tLmNwcAkocmV2aXNpb24gOTU5MzQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcs
NyArMTM3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViU29ja2V0OjpzZW5kQwogICAg
ICAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHN0cmluZ01lc3NhZ2UgPSBtZXNzYWdlLT5Ub1N0
cmluZygpOwogICAgICAgICBpZiAodHJ5Q2F0Y2guSGFzQ2F1Z2h0KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gdGhyb3dFcnJvcih0cnlDYXRjaC5FeGNlcHRpb24oKSk7Ci0gICAgICAgIHJlc3VsdCA9
IHdlYlNvY2tldC0+c2VuZCh0b1dlYkNvcmVTdHJpbmcobWVzc2FnZSksIGVjKTsKKyAgICAgICAg
cmVzdWx0ID0gd2ViU29ja2V0LT5zZW5kKHRvV2ViQ29yZVN0cmluZyhzdHJpbmdNZXNzYWdlKSwg
ZWMpOwogICAgIH0KICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVjKTsK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDk1OTQ4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDktMjYgIE1heCBQZXJlcGVsaXRzeW4g
IDxwcGgzNHJAZ21haWwuY29tPgorCisgICAgICAgIFNldCBidXQgdW51c2VkIHZhcmlhYmxlcyBj
bGVhbnVwIGluIHY4IGJpbmRpbmdzIChnY2MgNC42KQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
c2VuZC1vYmplY3QtdG9zdHJpbmctY2hlY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtb2JqZWN0LXRvc3RyaW5nLWNo
ZWNrLmh0bWw6IEFkZGVkLgorCiAyMDExLTA5LTI2ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogW0V4dGVuc2lvbnMgQVBJXSBh
bGxvdyByZXNvdXJjZXMgdG8gaG9vayBvbiBjbGljayBvbiByZXNvdXJjZSBsaW5rcwpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLW9iamVjdC10
b3N0cmluZy1jaGVjay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLW9iamVjdC10b3N0cmluZy1jaGVjay1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL3NlbmQtb2JqZWN0LXRvc3RyaW5nLWNoZWNrLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorV2ViU29ja2V0OiBPYmplY3QncyB0b1N0cmlu
ZyBtZXRob2Qgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IG9uY2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworUEFTUyB0ZXN0T2JqLmNhbGxDb3VudGVyIGlzIDEKK1BBU1MgY2xvc2VFdmVu
dC53YXNDbGVhbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9zZW5kLW9iamVjdC10b3N0cmluZy1jaGVjay5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1vYmplY3QtdG9z
dHJpbmctY2hlY2suaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1vYmplY3QtdG9zdHJpbmctY2hlY2suaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK2Rlc2NyaXB0aW9uKCJXZWJTb2NrZXQ6IE9i
amVjdCdzIHRvU3RyaW5nIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkIG9ubHkgb25jZS4iKTsKKwor
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktp
dEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAwKTsKKworCit2YXIgdGVzdE9iaiA9
IG5ldyBmdW5jdGlvbigpIHsKKyAgICB0aGlzLmNhbGxDb3VudGVyID0gMDsKKyAgICB0aGlzLnRv
U3RyaW5nID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuY2FsbENvdW50ZXIrKzsKKyAgICB9
OworfQorCit2YXIgdXJsID0gIndzOi8vMTI3LjAuMC4xOjg4ODAvIjsKK3ZhciB3cyA9IG5ldyBX
ZWJTb2NrZXQodXJsKTsKK3ZhciBjbG9zZUV2ZW50OworCisKK3dzLm9ub3BlbiA9IGZ1bmN0aW9u
KCkKK3sKKyAgICB3cy5zZW5kKHRlc3RPYmopOworfTsKKword3Mub25jbG9zZSA9IGZ1bmN0aW9u
KGV2ZW50KQoreworICAgIGNsb3NlRXZlbnQgPSBldmVudDsKKyAgICBzaG91bGRFdmFsdWF0ZVRv
KCJ0ZXN0T2JqLmNhbGxDb3VudGVyIiwgMSk7CisgICAgc2hvdWxkQmVUcnVlKCJjbG9zZUV2ZW50
Lndhc0NsZWFuIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9OworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>