<?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>19159</bug_id>
          
          <creation_ts>2008-05-20 16:17:17 -0700</creation_ts>
          <short_desc>Inspector should support console.time/console.timeEnd</short_desc>
          <delta_ts>2008-07-26 22:44:38 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>14354</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Keishi Hattori">keishi</assigned_to>
          <cc>aroben</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>81050</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-05-20 16:17:17 -0700</bug_when>
    <thetext>The Inspector should support console.time/console.timeEnd for Firebug parity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81059</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-05-20 16:23:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/5950864&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84563</commentid>
    <comment_count>2</comment_count>
      <attachid>21971</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2008-06-27 08:23:50 -0700</bug_when>
    <thetext>Created attachment 21971
Proposed patch

Maybe needs some error management code but otherwise works.

By the way aroben, I found out you were right that Firebug tells you the source file that time or timeEnd was called from. I&apos;ll file it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84572</commentid>
    <comment_count>3</comment_count>
      <attachid>21973</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2008-06-27 09:06:19 -0700</bug_when>
    <thetext>Created attachment 21973
Slightly better

Added error managing code.

I tried to match Firebug so that calling time/timeEnd with the title paramenter undefiened gets ignored, but I did title==&quot;undefined&quot; so that doesn&apos;t work when you want to pass a string &quot;undefined&quot; as the title. Is there some way to get around this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84583</commentid>
    <comment_count>4</comment_count>
      <attachid>21973</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-06-27 09:33:33 -0700</bug_when>
    <thetext>Comment on attachment 21973
Slightly better

+        void time(const String&amp; title);
+        void timeEnd(const String&amp; title);

These functions should take const UString&amp; parameters instead, to avoid an unnecessary conversion from UString -&gt; String. InspectorController::{start,stop}Timing should also take const UString&amp;.

+void Console::time(const String&amp; title)
+{
+    if (title == &quot;undefined&quot;)
+        return;

Is this what Firebug does?

+    double elapsed = page-&gt;inspectorController()-&gt;stopTiming(title);
+    if (!isfinite(elapsed))
+        return;

Will isfinite return false if time() was never called with this title? I think a clearer way of accomplishing this would be something like:

bool InspectorController::stopTiming(const UString&amp; title, double&amp; elapsed);

And then your code could look like this:

double elapsed;
if (!page-&gt;inspectorController()-&gt;stopTiming(title, elapsed))
   return;

I think you should move time/timeEnd to just below profile/profileEnd in Console.cpp, Console.h, and Console.idl.

+void InspectorController::startTiming(const String&amp; title)
+{
+    m_times.set(title, currentTime() * 1000);
+}

This will overwrite any existing timer for &quot;title&quot;. Is that what Firebug does?

+    HashMap&lt;String, double&gt; m_times;

This should store UStrings instead of Strings to avoid unnecessary string conversions.

r- for now so you can address the above, plus:

1. You&apos;ll need a ChangeLog entry (it&apos;s helpful to write a ChangeLog even for the first version of your patch -- it helps you be clearer in your own mind about what you did, and helps the reviewer understand your patch)
2. I&apos;d like to see some manual tests added to WebCore/manual-tests/inspector. These are useful for making sure that we match Firebug&apos;s behavior (or do better than it), and for catching regressions in the future.

Looking good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84584</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-06-27 09:36:47 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=21973) [edit]
&gt; I tried to match Firebug so that calling time/timeEnd with the title paramenter
&gt; undefiened gets ignored, but I did title==&quot;undefined&quot; so that doesn&apos;t work when
&gt; you want to pass a string &quot;undefined&quot; as the title. Is there some way to get
&gt; around this?

I think if you specify your function like this in the IDL:

[ConvertUndefinedOrNullToNullString] void time(in DOMString title)

then you&apos;ll end up with a null string (title.isNull() will return true) when undefined or null is passed to the function. That&apos;s probably what you want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84593</commentid>
    <comment_count>6</comment_count>
      <attachid>21974</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2008-06-27 11:10:02 -0700</bug_when>
    <thetext>Created attachment 21974
Fixed.

I did [ConvertUndefinedOrNullToNullString] but isNull seems to return true. Strange.

Below is the test run in Firebug.

&gt;&gt;&gt;console.timeEnd(&quot;1&quot;)
&gt;&gt;&gt;console.time(&quot;2&quot;)
&gt;&gt;&gt;console.time(&quot;3&quot;)
&gt;&gt;&gt;console.timeEnd(&quot;3&quot;)
3: 3ms
&gt;&gt;&gt;console.timeEnd(&quot;3&quot;)
&gt;&gt;&gt;console.time()
&gt;&gt;&gt;console.timeEnd()
&gt;&gt;&gt;console.time(&quot;2&quot;)
&gt;&gt;&gt;console.timeEnd(&quot;2&quot;)
2: 1014ms
2: If it says ~1000ms the first time is not overwritten.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84615</commentid>
    <comment_count>7</comment_count>
      <attachid>21978</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2008-06-27 20:31:03 -0700</bug_when>
    <thetext>Created attachment 21978
Fixed bug.

I changed it to
    void time(in [ConvertUndefinedOrNullToNullString] DOMString title);
and it works now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84630</commentid>
    <comment_count>8</comment_count>
      <attachid>21978</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-27 22:42:42 -0700</bug_when>
    <thetext>Comment on attachment 21978
Fixed bug.

This looks good.

For this here, there&apos;s a more efficient, but less good looking way to do it:

+    if (!m_times.contains(title))
+        return false;
+    
+    double startTime = m_times.take(title);

Instead you can do:

    HashMap&lt;String, double&gt;::iterator it = m_times.find(title);
    if (it == m_times.end())
        return false;

    double startTime = it-&gt;second;
    m_times.remove(it);

The more complicated version does only one hash table lookup and so is more efficient.

r=me as-is</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84655</commentid>
    <comment_count>9</comment_count>
      <attachid>21985</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2008-06-28 05:20:31 -0700</bug_when>
    <thetext>Created attachment 21985
fixed mistakes

Thank you Darin. I really learn a lot.

I realized I&apos;ve made a few mistakes.

I forgot these
if (!m_frame)
        return;

and I realized that bug #19791 Inspector should show the source file that called console.time and console.timeEnd
was my complete misunderstanding.
I think we can show the source files by passing m_frame-&gt;loader()-&gt;url()-&gt;string() as sourceURL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84660</commentid>
    <comment_count>10</comment_count>
      <attachid>21985</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-28 09:02:10 -0700</bug_when>
    <thetext>Comment on attachment 21985
fixed mistakes

+     const KURL&amp; url = m_frame-&gt;loader()-&gt;url();

This is the URL of the source of the frame. That&apos;s not what we want for the console. The console wants the URL and line number of the source code of the call site where we&apos;re calling timeEnd from. I don&apos;t know the proper mechanism for getting that information from JavaScriptCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84750</commentid>
    <comment_count>11</comment_count>
      <attachid>22006</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2008-06-30 04:24:24 -0700</bug_when>
    <thetext>Created attachment 22006
reverted

I see. I didn&apos;t test it thoroughly enough to notice. I put the FIXME back in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84876</commentid>
    <comment_count>12</comment_count>
      <attachid>22006</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-07-01 07:58:36 -0700</bug_when>
    <thetext>Comment on attachment 22006
reverted

+void Console::time(const KJS::UString&amp; title)

In this .cpp file you shouldn&apos;t need the &quot;KJS::&quot; prefix, because near the top of the file is the line:

using namespace KJS;

which means that prefix is determined automatically by the compiler.

+    const KURL&amp; url = m_frame-&gt;loader()-&gt;url();
+    
+    double elapsed;
+    if (!page-&gt;inspectorController()-&gt;stopTiming(title, elapsed))
+        return;
+    
+    String message = String(title) + String::format(&quot;: %.0fms&quot;, elapsed);
+    // FIXME: &lt;https://bugs.webkit.org/show_bug.cgi?id=19791&gt; We should pass in the real sourceURL here so that the Inspector can show it.
+    page-&gt;inspectorController()-&gt;addMessageToConsole(JSMessageSource, LogMessageLevel, message, 0, url.string());

Looks like we&apos;re still passing the page&apos;s URL in here. I wonder if it would be better to pass no URL at all, to avoid confusion.

+void InspectorController::startTiming(const KJS::UString&amp; title)

You don&apos;t need &quot;KJS::&quot; in this .cpp file either.

+    HashMap&lt;String, double&gt; m_times;

I still think we should make this store UStrings instead of Strings:

HashMap&lt;KJS::UString, double&gt; m_times;

Other than that, this looks great! r=me, but feel free to upload a new version that fixes the above issues. Sorry for the delay in reviewing this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84981</commentid>
    <comment_count>13</comment_count>
      <attachid>22043</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2008-07-02 09:20:29 -0700</bug_when>
    <thetext>Created attachment 22043
fixed

fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84982</commentid>
    <comment_count>14</comment_count>
      <attachid>22043</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-07-02 09:31:56 -0700</bug_when>
    <thetext>Comment on attachment 22043
fixed

+    HashMap&lt;String, double&gt; m_times;

I&apos;d still like to use KJS::UString here.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84983</commentid>
    <comment_count>15</comment_count>
      <attachid>22006</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-07-02 09:32:14 -0700</bug_when>
    <thetext>Comment on attachment 22006
reverted

Clearing review flag since there&apos;s a newer patch available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85323</commentid>
    <comment_count>16</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2008-07-07 04:55:22 -0700</bug_when>
    <thetext>When I change that to UString I get the compile errors below

/Users/keishi_hattori/WebKit/WebCore/page/InspectorController.h:225: error: invalid use of undefined type &apos;struct WTF::DefaultHash&lt;KJS::UString&gt;&apos;
/Users/keishi_hattori/WebKit/WebKitBuild/Release/JavaScriptCore.framework/PrivateHeaders/HashFunctions.h:130: error: declaration of &apos;struct WTF::DefaultHash&lt;KJS::UString&gt;&apos;
/Users/keishi_hattori/WebKit/WebCore/page/InspectorController.h:225: error: template argument 3 is invalid

is this because a default comparing function for UString is not defined?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85331</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-07-07 07:21:03 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; When I change that to UString I get the compile errors below
&gt; 
&gt; /Users/keishi_hattori/WebKit/WebCore/page/InspectorController.h:225: error:
&gt; invalid use of undefined type &apos;struct WTF::DefaultHash&lt;KJS::UString&gt;&apos;
&gt; /Users/keishi_hattori/WebKit/WebKitBuild/Release/JavaScriptCore.framework/PrivateHeaders/HashFunctions.h:130:
&gt; error: declaration of &apos;struct WTF::DefaultHash&lt;KJS::UString&gt;&apos;
&gt; /Users/keishi_hattori/WebKit/WebCore/page/InspectorController.h:225: error:
&gt; template argument 3 is invalid
&gt; 
&gt; is this because a default comparing function for UString is not defined?
&gt; 

I think it just means we need to include &lt;kjs/ustring.h&gt; in InspectorController.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85451</commentid>
    <comment_count>18</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2008-07-08 07:27:20 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; I think it just means we need to include &lt;kjs/ustring.h&gt; in
&gt; InspectorController.h.
&gt; 
 
I did that but I get the same errors.
When I read ustring.h, it looks like it only defines a DefaultHash for KJS::UString::Rep*. So I tried that and it gives me fewer errors but I can&apos;t get it to compile.
I did a grep for HasMap and UString to find some examples but I couldn&apos;t find a good one to copy. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87043</commentid>
    <comment_count>19</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-07-26 22:44:38 -0700</bug_when>
    <thetext>Landed in r35392.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21971</attachid>
            <date>2008-06-27 08:23:50 -0700</date>
            <delta_ts>2008-06-27 09:06:19 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>MyPatch2.txt</filename>
            <type>text/plain</type>
            <size>3719</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvQ29uc29sZS5jcHAJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9wYWdlL0NvbnNvbGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTQsNCArMjk0LDI0IEBAIHZvaWQgQ29uc29sZTo6d2Fy
bihFeGVjU3RhdGUqIGV4ZWMsIGNvbnMKICAgICBwcmludFRvU3RhbmRhcmRPdXQoV2FybmluZ01l
c3NhZ2VMZXZlbCwgZXhlYywgYXJndW1lbnRzLCB1cmwpOwogfQogCit2b2lkIENvbnNvbGU6OnRp
bWUoY29uc3QgU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFn
ZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIHBhZ2UtPmlu
c3BlY3RvckNvbnRyb2xsZXIoKS0+c3RhcnRUaW1pbmcodGl0bGUpOworfQorCit2b2lkIENvbnNv
bGU6OnRpbWVFbmQoY29uc3QgU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBQYWdlKiBwYWdlID0gbV9m
cmFtZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAg
IGRvdWJsZSBlbGFwc2VkID0gcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5zdG9wVGltaW5n
KHRpdGxlKTsKKyAgICBTdHJpbmcgbWVzc2FnZSA9IHRpdGxlICsgU3RyaW5nOjpmb3JtYXQoIjog
JS4wZm1zIiwgZWxhcHNlZCk7CisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5hZGRN
ZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZUxldmVsLCBtZXNzYWdl
LCAwLCBTdHJpbmcoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNv
cmUvcGFnZS9Db25zb2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAko
cmV2aXNpb24gMzQ4MjcpCisrKyBXZWJDb3JlL3BhZ2UvQ29uc29sZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC03Myw2ICs3Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBpbmZv
KEtKUzo6RXhlY1N0YXRlKiwgY29uc3QgS0pTOjpBcmdMaXN0JiBhcmd1bWVudHMpOwogICAgICAg
ICB2b2lkIGxvZyhLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEtKUzo6QXJnTGlzdCYgYXJndW1lbnRz
KTsKICAgICAgICAgdm9pZCB3YXJuKEtKUzo6RXhlY1N0YXRlKiwgY29uc3QgS0pTOjpBcmdMaXN0
JiBhcmd1bWVudHMpOworICAgICAgICB2b2lkIHRpbWUoY29uc3QgU3RyaW5nJiB0aXRsZSk7Cisg
ICAgICAgIHZvaWQgdGltZUVuZChjb25zdCBTdHJpbmcmIHRpdGxlKTsKICAgICAgICAgdm9pZCBh
c3NlcnRDb25kaXRpb24oYm9vbCBjb25kaXRpb24sIEtKUzo6RXhlY1N0YXRlKiwgY29uc3QgS0pT
OjpBcmdMaXN0JiBhcmd1bWVudHMpOwogICAgICAgICB2b2lkIHByb2ZpbGUoS0pTOjpFeGVjU3Rh
dGUqLCBjb25zdCBLSlM6OkFyZ0xpc3QmIGFyZ3VtZW50cyk7CiAgICAgICAgIHZvaWQgcHJvZmls
ZUVuZChLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEtKUzo6QXJnTGlzdCYgYXJndW1lbnRzKTsKSW5k
ZXg6IFdlYkNvcmUvcGFnZS9Db25zb2xlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2Uv
Q29uc29sZS5pZGwJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9wYWdlL0NvbnNvbGUuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw4IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAg
ICBbQ3VzdG9tXSB2b2lkIGluZm8oKTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBsb2coKTsKICAg
ICAgICAgW0N1c3RvbV0gdm9pZCB3YXJuKCk7CisgICAgICAgIHZvaWQgdGltZShpbiBET01TdHJp
bmcgdGl0bGUpOworICAgICAgICB2b2lkIHRpbWVFbmQoaW4gRE9NU3RyaW5nIHRpdGxlKTsKICAg
ICAgICAgW0N1c3RvbSwgSW1wbGVtZW50YXRpb25GdW5jdGlvbj1hc3NlcnRDb25kaXRpb25dIHZv
aWQgYXNzZXJ0KGluIGJvb2xlYW4gY29uZGl0aW9uKTsKIAogICAgICAgICBbQ3VzdG9tXSB2b2lk
IHByb2ZpbGUoaW4gRE9NU3RyaW5nIHRpdGxlKTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9JbnNwZWN0
b3JDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9wYWdlL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIxLDYgKzI0MjEsMTYgQEAgdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpkcmF3Tm9kZUhpZ2hsaQogICAgIGRyYXdIaWdobGlnaHRGb3JC
b3hlcyhjb250ZXh0LCBsaW5lQm94UmVjdHMsIGNvbnRlbnRCb3gsIHBhZGRpbmdCb3gsIGJvcmRl
ckJveCwgbWFyZ2luQm94KTsKIH0KIAordm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzdGFydFRp
bWluZyhjb25zdCBTdHJpbmcmIHRpdGxlKQoreworICAgIG1fdGltZXMuc2V0KHRpdGxlLCBjdXJy
ZW50VGltZSgpICogMTAwMCk7Cit9CisKK2RvdWJsZSBJbnNwZWN0b3JDb250cm9sbGVyOjpzdG9w
VGltaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUpCit7CisgICAgcmV0dXJuIGN1cnJlbnRUaW1lKCkg
KiAxMDAwIC0gbV90aW1lcy5nZXQodGl0bGUpOworfQorCiBib29sIEluc3BlY3RvckNvbnRyb2xs
ZXI6OmhhbmRsZUV4Y2VwdGlvbihKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBleGNl
cHRpb24sIHVuc2lnbmVkIGxpbmVOdW1iZXIpIGNvbnN0CiB7CiAgICAgaWYgKCFleGNlcHRpb24p
CkluZGV4OiBXZWJDb3JlL3BhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGFnZS9JbnNwZWN0b3JDb250cm9sbGVyLmgJKHJldmlzaW9uIDM0ODI3KQorKysg
V2ViQ29yZS9wYWdlL0luc3BlY3RvckNvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTY4
LDYgKzE2OCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0ZXBPdXRPZkZ1bmN0aW9uSW5EZWJ1Z2dl
cigpOwogCiAgICAgdm9pZCBkcmF3Tm9kZUhpZ2hsaWdodChHcmFwaGljc0NvbnRleHQmKSBjb25z
dDsKKyAgICAKKyAgICB2b2lkIHN0YXJ0VGltaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUpOworICAg
IGRvdWJsZSBzdG9wVGltaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUpOwogCiBwcml2YXRlOgogICAg
IHZvaWQgZm9jdXNOb2RlKCk7CkBAIC0yMTksNiArMjIyLDcgQEAgcHJpdmF0ZToKICAgICBGcmFt
ZVJlc291cmNlc01hcCBtX2ZyYW1lUmVzb3VyY2VzOwogICAgIFZlY3RvcjxDb25zb2xlTWVzc2Fn
ZSo+IG1fY29uc29sZU1lc3NhZ2VzOwogICAgIFZlY3RvcjxSZWZQdHI8S0pTOjpQcm9maWxlPiA+
IG1fcHJvZmlsZXM7CisgICAgSGFzaE1hcDxTdHJpbmcsIGRvdWJsZT4gbV90aW1lczsKICNpZiBF
TkFCTEUoREFUQUJBU0UpCiAgICAgRGF0YWJhc2VSZXNvdXJjZXNTZXQgbV9kYXRhYmFzZVJlc291
cmNlczsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21973</attachid>
            <date>2008-06-27 09:06:19 -0700</date>
            <delta_ts>2008-06-27 11:10:02 -0700</delta_ts>
            <desc>Slightly better</desc>
            <filename>MyPatch3.txt</filename>
            <type>text/plain</type>
            <size>4020</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvQ29uc29sZS5jcHAJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9wYWdlL0NvbnNvbGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTQsNCArMjk0LDM0IEBAIHZvaWQgQ29uc29sZTo6d2Fy
bihFeGVjU3RhdGUqIGV4ZWMsIGNvbnMKICAgICBwcmludFRvU3RhbmRhcmRPdXQoV2FybmluZ01l
c3NhZ2VMZXZlbCwgZXhlYywgYXJndW1lbnRzLCB1cmwpOwogfQogCit2b2lkIENvbnNvbGU6OnRp
bWUoY29uc3QgU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBpZiAodGl0bGUgPT0gInVuZGVmaW5lZCIp
CisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgp
OworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIHBhZ2UtPmluc3Bl
Y3RvckNvbnRyb2xsZXIoKS0+c3RhcnRUaW1pbmcodGl0bGUpOworfQorCit2b2lkIENvbnNvbGU6
OnRpbWVFbmQoY29uc3QgU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBpZiAodGl0bGUgPT0gInVuZGVm
aW5lZCIpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+
cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGRvdWJs
ZSBlbGFwc2VkID0gcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5zdG9wVGltaW5nKHRpdGxl
KTsKKyAgICBpZiAoIWlzZmluaXRlKGVsYXBzZWQpKQorICAgICAgICByZXR1cm47CisgICAgCisg
ICAgU3RyaW5nIG1lc3NhZ2UgPSB0aXRsZSArIFN0cmluZzo6Zm9ybWF0KCI6ICUuMGZtcyIsIGVs
YXBzZWQpOworICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5NzkxPiBXZSBzaG91bGQgcGFzcyBpbiB0aGUgcmVhbCBzb3VyY2VVUkwgaGVyZSBz
byB0aGF0IHRoZSBJbnNwZWN0b3IgY2FuIHNob3cgaXQuCisgICAgcGFnZS0+aW5zcGVjdG9yQ29u
dHJvbGxlcigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2Fn
ZUxldmVsLCBtZXNzYWdlLCAwLCBTdHJpbmcoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFdlYkNvcmUvcGFnZS9Db25zb2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
YWdlL0NvbnNvbGUuaAkocmV2aXNpb24gMzQ4MjcpCisrKyBXZWJDb3JlL3BhZ2UvQ29uc29sZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC03Myw2ICs3Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdm9pZCBpbmZvKEtKUzo6RXhlY1N0YXRlKiwgY29uc3QgS0pTOjpBcmdMaXN0JiBhcmd1
bWVudHMpOwogICAgICAgICB2b2lkIGxvZyhLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEtKUzo6QXJn
TGlzdCYgYXJndW1lbnRzKTsKICAgICAgICAgdm9pZCB3YXJuKEtKUzo6RXhlY1N0YXRlKiwgY29u
c3QgS0pTOjpBcmdMaXN0JiBhcmd1bWVudHMpOworICAgICAgICB2b2lkIHRpbWUoY29uc3QgU3Ry
aW5nJiB0aXRsZSk7CisgICAgICAgIHZvaWQgdGltZUVuZChjb25zdCBTdHJpbmcmIHRpdGxlKTsK
ICAgICAgICAgdm9pZCBhc3NlcnRDb25kaXRpb24oYm9vbCBjb25kaXRpb24sIEtKUzo6RXhlY1N0
YXRlKiwgY29uc3QgS0pTOjpBcmdMaXN0JiBhcmd1bWVudHMpOwogICAgICAgICB2b2lkIHByb2Zp
bGUoS0pTOjpFeGVjU3RhdGUqLCBjb25zdCBLSlM6OkFyZ0xpc3QmIGFyZ3VtZW50cyk7CiAgICAg
ICAgIHZvaWQgcHJvZmlsZUVuZChLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEtKUzo6QXJnTGlzdCYg
YXJndW1lbnRzKTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9Db25zb2xlLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BhZ2UvQ29uc29sZS5pZGwJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9w
YWdlL0NvbnNvbGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw4IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICBbQ3VzdG9tXSB2b2lkIGluZm8oKTsKICAgICAgICAgW0N1c3RvbV0g
dm9pZCBsb2coKTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCB3YXJuKCk7CisgICAgICAgIHZvaWQg
dGltZShpbiBET01TdHJpbmcgdGl0bGUpOworICAgICAgICB2b2lkIHRpbWVFbmQoaW4gRE9NU3Ry
aW5nIHRpdGxlKTsKICAgICAgICAgW0N1c3RvbSwgSW1wbGVtZW50YXRpb25GdW5jdGlvbj1hc3Nl
cnRDb25kaXRpb25dIHZvaWQgYXNzZXJ0KGluIGJvb2xlYW4gY29uZGl0aW9uKTsKIAogICAgICAg
ICBbQ3VzdG9tXSB2b2lkIHByb2ZpbGUoaW4gRE9NU3RyaW5nIHRpdGxlKTsKSW5kZXg6IFdlYkNv
cmUvcGFnZS9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9w
YWdlL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIxLDYgKzI0
MjEsMTYgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkcmF3Tm9kZUhpZ2hsaQogICAgIGRy
YXdIaWdobGlnaHRGb3JCb3hlcyhjb250ZXh0LCBsaW5lQm94UmVjdHMsIGNvbnRlbnRCb3gsIHBh
ZGRpbmdCb3gsIGJvcmRlckJveCwgbWFyZ2luQm94KTsKIH0KIAordm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpzdGFydFRpbWluZyhjb25zdCBTdHJpbmcmIHRpdGxlKQoreworICAgIG1fdGltZXMu
c2V0KHRpdGxlLCBjdXJyZW50VGltZSgpICogMTAwMCk7Cit9CisKK2RvdWJsZSBJbnNwZWN0b3JD
b250cm9sbGVyOjpzdG9wVGltaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUpCit7CisgICAgcmV0dXJu
IGN1cnJlbnRUaW1lKCkgKiAxMDAwIC0gbV90aW1lcy50YWtlKHRpdGxlKTsKK30KKwogYm9vbCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpoYW5kbGVFeGNlcHRpb24oSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTVmFsdWVSZWYgZXhjZXB0aW9uLCB1bnNpZ25lZCBsaW5lTnVtYmVyKSBjb25zdAogewogICAg
IGlmICghZXhjZXB0aW9uKQpJbmRleDogV2ViQ29yZS9wYWdlL0luc3BlY3RvckNvbnRyb2xsZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5oCShyZXZp
c2lvbiAzNDgyNykKKysrIFdlYkNvcmUvcGFnZS9JbnNwZWN0b3JDb250cm9sbGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTE2OCw2ICsxNjgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGVwT3V0T2ZG
dW5jdGlvbkluRGVidWdnZXIoKTsKIAogICAgIHZvaWQgZHJhd05vZGVIaWdobGlnaHQoR3JhcGhp
Y3NDb250ZXh0JikgY29uc3Q7CisgICAgCisgICAgdm9pZCBzdGFydFRpbWluZyhjb25zdCBTdHJp
bmcmIHRpdGxlKTsKKyAgICBkb3VibGUgc3RvcFRpbWluZyhjb25zdCBTdHJpbmcmIHRpdGxlKTsK
IAogcHJpdmF0ZToKICAgICB2b2lkIGZvY3VzTm9kZSgpOwpAQCAtMjE5LDYgKzIyMiw3IEBAIHBy
aXZhdGU6CiAgICAgRnJhbWVSZXNvdXJjZXNNYXAgbV9mcmFtZVJlc291cmNlczsKICAgICBWZWN0
b3I8Q29uc29sZU1lc3NhZ2UqPiBtX2NvbnNvbGVNZXNzYWdlczsKICAgICBWZWN0b3I8UmVmUHRy
PEtKUzo6UHJvZmlsZT4gPiBtX3Byb2ZpbGVzOworICAgIEhhc2hNYXA8U3RyaW5nLCBkb3VibGU+
IG1fdGltZXM7CiAjaWYgRU5BQkxFKERBVEFCQVNFKQogICAgIERhdGFiYXNlUmVzb3VyY2VzU2V0
IG1fZGF0YWJhc2VSZXNvdXJjZXM7CiAjZW5kaWYK
</data>
<flag name="review"
          id="9658"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21974</attachid>
            <date>2008-06-27 11:10:02 -0700</date>
            <delta_ts>2008-06-27 20:31:03 -0700</delta_ts>
            <desc>Fixed.</desc>
            <filename>MyPatch4.txt</filename>
            <type>text/plain</type>
            <size>6634</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNDgzMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDgtMDYtMjcgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgQWRkZWQgY29uc29sZS50aW1lL3RpbWVFbmQuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTU5CisgICAg
ICAgIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1h
bnVhbC10ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10aW1lLmh0bWw6IEFkZGVkLiBUZXN0IGNhc2Vz
IGZvciBjb25zb2xlLnRpbWUvdGltZUVuZC4KKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6dGltZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q29uc29sZTo6dGltZUVuZCk6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgor
ICAgICAgICAqIHBhZ2UvQ29uc29sZS5pZGw6IEFkZGVkIGNvbnNvbGUudGltZS90aW1lRW5kLgor
ICAgICAgICAqIHBhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDb250cm9sbGVyOjpzdGFydFRpbWluZyk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6c3RvcFRpbWluZyk6IEFkZGVkLgorICAgICAgICAq
IHBhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorCiAyMDA4LTA2LTI3ICBBbnR0aSBLb2l2aXN0
byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIuCkluZGV4
OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10aW1lLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9tYW51YWwtdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGltZS5odG1s
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9tYW51YWwtdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUt
dGltZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMzIEBACis8c2NyaXB0PgorZnVuY3Rp
b24gdGVzdCgpIHsKKyAgICAvLyBUZXN0IDE6IGNhbGwgdGltZUVuZCBiZWZvcmUgdGltZQorICAg
IGNvbnNvbGUubG9nKCI+Pj5jb25zb2xlLnRpbWVFbmQoXCIxXCIpIik7CisgICAgY29uc29sZS50
aW1lRW5kKCIxIik7CisgICAgLy8gVGVzdCAyOiBjYWxsIHRpbWUgdHdvIHRpbWVzIGJlZm9yZSB0
aW1lRW5kCisgICAgY29uc29sZS5sb2coIj4+PmNvbnNvbGUudGltZShcIjJcIikiKTsKKyAgICBj
b25zb2xlLnRpbWUoIjIiKTsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBj
b25zb2xlLmxvZygiPj4+Y29uc29sZS50aW1lKFwiMlwiKSIpOworICAgICAgICBjb25zb2xlLnRp
bWUoIjIiKTsKKyAgICAgICAgY29uc29sZS5sb2coIj4+PmNvbnNvbGUudGltZUVuZChcIjJcIiki
KTsKKyAgICAgICAgY29uc29sZS50aW1lRW5kKCIyIik7CisgICAgICAgIGNvbnNvbGUubG9nKCIy
OiBJZiBpdCBzYXlzIH4xMDAwbXMgdGhlIGZpcnN0IHRpbWUgaXMgbm90IG92ZXJ3cml0dGVuLiIp
OworICAgIH0sIDEwMDApOworICAgIC8vIFRlc3QgMzogY2FsbCB0aW1lRW5kIHR3byB0aW1lcwor
ICAgIGNvbnNvbGUubG9nKCI+Pj5jb25zb2xlLnRpbWUoXCIzXCIpIik7CisgICAgY29uc29sZS50
aW1lKCIzIik7CisgICAgY29uc29sZS5sb2coIj4+PmNvbnNvbGUudGltZUVuZChcIjNcIikiKTsK
KyAgICBjb25zb2xlLnRpbWVFbmQoIjMiKTsKKyAgICBjb25zb2xlLmxvZygiPj4+Y29uc29sZS50
aW1lRW5kKFwiM1wiKSIpOworICAgIGNvbnNvbGUudGltZUVuZCgiMyIpOworICAgIC8vIFRlc3Qg
NDogY2FsbCB0aW1lL3RpbWVFbmQgd2l0aG91dCB0aXRsZSBwYXJhbWV0ZXIKKyAgICBjb25zb2xl
LmxvZygiPj4+Y29uc29sZS50aW1lKCkiKTsKKyAgICBjb25zb2xlLnRpbWUoKTsKKyAgICBjb25z
b2xlLmxvZygiPj4+Y29uc29sZS50aW1lRW5kKCkiKTsKKyAgICBjb25zb2xlLnRpbWVFbmQoKTsK
K307CisKKzwvc2NyaXB0PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTU5Ij5CdWcgMTkxNTk6IEluc3BlY3RvciBzaG91bGQg
c3VwcG9ydCBjb25zb2xlLnRpbWUvY29uc29sZS50aW1lRW5kPC9hPi48L3A+Cis8cD5PcGVuIHRo
ZSBJbnNwZWN0b3IgKHJpZ2h0LWNsaWNrIGFuZCBjaG9vc2UgIkluc3BlY3QgRWxlbWVudCIpLCB0
aGVuIGNsaWNrIHRoZSAiUnVuIFRlc3RzIiBidXR0b24uPC9wPgorPGJ1dHRvbiBvbmNsaWNrPSJ0
ZXN0KCkiPlJ1biBUZXN0czwvYnV0dG9uPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5k
ZXg6IFdlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2Uv
Q29uc29sZS5jcHAJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNjYsNiArMjY2LDM2IEBAIHZvaWQgQ29uc29sZTo6cHJvZmls
ZUVuZChFeGVjU3RhdGUqIGV4ZWMKICAgICBQcm9maWxlcjo6cHJvZmlsZXIoKS0+c3RvcFByb2Zp
bGluZyhleGVjLCB0aXRsZSk7CiB9CiAKK3ZvaWQgQ29uc29sZTo6dGltZShjb25zdCBLSlM6OlVT
dHJpbmcmIHRpdGxlKQoreworICAgIGlmICh0aXRsZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdl
KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LT5zdGFydFRpbWluZyh0aXRsZSk7Cit9CisKK3ZvaWQgQ29uc29sZTo6dGltZUVuZChjb25zdCBL
SlM6OlVTdHJpbmcmIHRpdGxlKQoreworICAgIGlmICh0aXRsZS5pc051bGwoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIAorICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYg
KCFwYWdlKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgZG91YmxlIGVsYXBzZWQ7CisgICAg
aWYgKCFwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnN0b3BUaW1pbmcodGl0bGUsIGVsYXBz
ZWQpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmco
dGl0bGUpICsgU3RyaW5nOjpmb3JtYXQoIjogJS4wZm1zIiwgZWxhcHNlZCk7CisgICAgLy8gRklY
TUU6IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTE+IFdlIHNo
b3VsZCBwYXNzIGluIHRoZSByZWFsIHNvdXJjZVVSTCBoZXJlIHNvIHRoYXQgdGhlIEluc3BlY3Rv
ciBjYW4gc2hvdyBpdC4KKyAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmFkZE1lc3Nh
Z2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAs
IFN0cmluZygpKTsKK30KKwogdm9pZCBDb25zb2xlOjpmaW5pc2hlZFByb2ZpbGluZyhQYXNzUmVm
UHRyPFByb2ZpbGU+IHBycFByb2ZpbGUpCiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1l
LT5wYWdlKCkpCkluZGV4OiBXZWJDb3JlL3BhZ2UvQ29uc29sZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGFnZS9Db25zb2xlLmgJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9wYWdlL0Nv
bnNvbGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzYsNiArNzYsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZvaWQgYXNzZXJ0Q29uZGl0aW9uKGJvb2wgY29uZGl0aW9uLCBLSlM6OkV4
ZWNTdGF0ZSosIGNvbnN0IEtKUzo6QXJnTGlzdCYgYXJndW1lbnRzKTsKICAgICAgICAgdm9pZCBw
cm9maWxlKEtKUzo6RXhlY1N0YXRlKiwgY29uc3QgS0pTOjpBcmdMaXN0JiBhcmd1bWVudHMpOwog
ICAgICAgICB2b2lkIHByb2ZpbGVFbmQoS0pTOjpFeGVjU3RhdGUqLCBjb25zdCBLSlM6OkFyZ0xp
c3QmIGFyZ3VtZW50cyk7CisgICAgICAgIHZvaWQgdGltZShjb25zdCBLSlM6OlVTdHJpbmcmIHRp
dGxlKTsKKyAgICAgICAgdm9pZCB0aW1lRW5kKGNvbnN0IEtKUzo6VVN0cmluZyYgdGl0bGUpOwog
CiAgICAgICAgIHZvaWQgZmluaXNoZWRQcm9maWxpbmcoUGFzc1JlZlB0cjxLSlM6OlByb2ZpbGU+
KTsKIApJbmRleDogV2ViQ29yZS9wYWdlL0NvbnNvbGUuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGFnZS9Db25zb2xlLmlkbAkocmV2aXNpb24gMzQ4MjcpCisrKyBXZWJDb3JlL3BhZ2UvQ29u
c29sZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDggQEAgbW9kdWxlIHdpbmRvdyB7
CiAKICAgICAgICAgW0N1c3RvbV0gdm9pZCBwcm9maWxlKGluIERPTVN0cmluZyB0aXRsZSk7CiAg
ICAgICAgIFtDdXN0b21dIHZvaWQgcHJvZmlsZUVuZCgpOworICAgICAgICBbQ29udmVydFVuZGVm
aW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gdm9pZCB0aW1lKGluIERPTVN0cmluZyB0aXRsZSk7Cisg
ICAgICAgIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSB2b2lkIHRpbWVFbmQo
aW4gRE9NU3RyaW5nIHRpdGxlKTsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAzNDgyNykKKysrIFdlYkNvcmUvcGFnZS9JbnNwZWN0
b3JDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQyMSw2ICsyNDIxLDIxIEBAIHZv
aWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZHJhd05vZGVIaWdobGkKICAgICBkcmF3SGlnaGxpZ2h0
Rm9yQm94ZXMoY29udGV4dCwgbGluZUJveFJlY3RzLCBjb250ZW50Qm94LCBwYWRkaW5nQm94LCBi
b3JkZXJCb3gsIG1hcmdpbkJveCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c3Rh
cnRUaW1pbmcoY29uc3QgS0pTOjpVU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBtX3RpbWVzLmFkZCh0
aXRsZSwgY3VycmVudFRpbWUoKSAqIDEwMDApOworfQorCitib29sIEluc3BlY3RvckNvbnRyb2xs
ZXI6OnN0b3BUaW1pbmcoY29uc3QgS0pTOjpVU3RyaW5nJiB0aXRsZSwgZG91YmxlJiBlbGFwc2Vk
KQoreworICAgIGlmICghbV90aW1lcy5jb250YWlucyh0aXRsZSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAKKyAgICBkb3VibGUgc3RhcnRUaW1lID0gbV90aW1lcy50YWtlKHRpdGxlKTsK
KyAgICBlbGFwc2VkID0gY3VycmVudFRpbWUoKSAqIDEwMDAgLSBzdGFydFRpbWU7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKIGJvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6aGFuZGxlRXhjZXB0aW9u
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiwgdW5zaWduZWQgbGlu
ZU51bWJlcikgY29uc3QKIHsKICAgICBpZiAoIWV4Y2VwdGlvbikKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9JbnNwZWN0b3JDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0luc3Bl
Y3RvckNvbnRyb2xsZXIuaAkocmV2aXNpb24gMzQ4MjcpCisrKyBXZWJDb3JlL3BhZ2UvSW5zcGVj
dG9yQ29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjgsNiArMTY4LDkgQEAgcHVibGlj
OgogICAgIHZvaWQgc3RlcE91dE9mRnVuY3Rpb25JbkRlYnVnZ2VyKCk7CiAKICAgICB2b2lkIGRy
YXdOb2RlSGlnaGxpZ2h0KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworICAgIAorICAgIHZvaWQg
c3RhcnRUaW1pbmcoY29uc3QgS0pTOjpVU3RyaW5nJiB0aXRsZSk7CisgICAgYm9vbCBzdG9wVGlt
aW5nKGNvbnN0IEtKUzo6VVN0cmluZyYgdGl0bGUsIGRvdWJsZSYgZWxhcHNlZCk7CiAKIHByaXZh
dGU6CiAgICAgdm9pZCBmb2N1c05vZGUoKTsKQEAgLTIxOSw2ICsyMjIsNyBAQCBwcml2YXRlOgog
ICAgIEZyYW1lUmVzb3VyY2VzTWFwIG1fZnJhbWVSZXNvdXJjZXM7CiAgICAgVmVjdG9yPENvbnNv
bGVNZXNzYWdlKj4gbV9jb25zb2xlTWVzc2FnZXM7CiAgICAgVmVjdG9yPFJlZlB0cjxLSlM6OlBy
b2ZpbGU+ID4gbV9wcm9maWxlczsKKyAgICBIYXNoTWFwPFN0cmluZywgZG91YmxlPiBtX3RpbWVz
OwogI2lmIEVOQUJMRShEQVRBQkFTRSkKICAgICBEYXRhYmFzZVJlc291cmNlc1NldCBtX2RhdGFi
YXNlUmVzb3VyY2VzOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21978</attachid>
            <date>2008-06-27 20:31:03 -0700</date>
            <delta_ts>2008-06-28 09:00:15 -0700</delta_ts>
            <desc>Fixed bug.</desc>
            <filename>MyPatch5.txt</filename>
            <type>text/plain</type>
            <size>6634</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNDgzMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDgtMDYtMjcgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgQWRkZWQgY29uc29sZS50aW1lL3RpbWVFbmQuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTU5CisgICAg
ICAgIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1h
bnVhbC10ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10aW1lLmh0bWw6IEFkZGVkLiBUZXN0IGNhc2Vz
IGZvciBjb25zb2xlLnRpbWUvdGltZUVuZC4KKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6dGltZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q29uc29sZTo6dGltZUVuZCk6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgor
ICAgICAgICAqIHBhZ2UvQ29uc29sZS5pZGw6IEFkZGVkIGNvbnNvbGUudGltZS90aW1lRW5kLgor
ICAgICAgICAqIHBhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDb250cm9sbGVyOjpzdGFydFRpbWluZyk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6c3RvcFRpbWluZyk6IEFkZGVkLgorICAgICAgICAq
IHBhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorCiAyMDA4LTA2LTI3ICBBbnR0aSBLb2l2aXN0
byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIuCkluZGV4
OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10aW1lLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9tYW51YWwtdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGltZS5odG1s
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9tYW51YWwtdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUt
dGltZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMzIEBACis8c2NyaXB0PgorZnVuY3Rp
b24gdGVzdCgpIHsKKyAgICAvLyBUZXN0IDE6IGNhbGwgdGltZUVuZCBiZWZvcmUgdGltZQorICAg
IGNvbnNvbGUubG9nKCI+Pj5jb25zb2xlLnRpbWVFbmQoXCIxXCIpIik7CisgICAgY29uc29sZS50
aW1lRW5kKCIxIik7CisgICAgLy8gVGVzdCAyOiBjYWxsIHRpbWUgdHdvIHRpbWVzIGJlZm9yZSB0
aW1lRW5kCisgICAgY29uc29sZS5sb2coIj4+PmNvbnNvbGUudGltZShcIjJcIikiKTsKKyAgICBj
b25zb2xlLnRpbWUoIjIiKTsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBj
b25zb2xlLmxvZygiPj4+Y29uc29sZS50aW1lKFwiMlwiKSIpOworICAgICAgICBjb25zb2xlLnRp
bWUoIjIiKTsKKyAgICAgICAgY29uc29sZS5sb2coIj4+PmNvbnNvbGUudGltZUVuZChcIjJcIiki
KTsKKyAgICAgICAgY29uc29sZS50aW1lRW5kKCIyIik7CisgICAgICAgIGNvbnNvbGUubG9nKCIy
OiBJZiBpdCBzYXlzIH4xMDAwbXMgdGhlIGZpcnN0IHRpbWUgaXMgbm90IG92ZXJ3cml0dGVuLiIp
OworICAgIH0sIDEwMDApOworICAgIC8vIFRlc3QgMzogY2FsbCB0aW1lRW5kIHR3byB0aW1lcwor
ICAgIGNvbnNvbGUubG9nKCI+Pj5jb25zb2xlLnRpbWUoXCIzXCIpIik7CisgICAgY29uc29sZS50
aW1lKCIzIik7CisgICAgY29uc29sZS5sb2coIj4+PmNvbnNvbGUudGltZUVuZChcIjNcIikiKTsK
KyAgICBjb25zb2xlLnRpbWVFbmQoIjMiKTsKKyAgICBjb25zb2xlLmxvZygiPj4+Y29uc29sZS50
aW1lRW5kKFwiM1wiKSIpOworICAgIGNvbnNvbGUudGltZUVuZCgiMyIpOworICAgIC8vIFRlc3Qg
NDogY2FsbCB0aW1lL3RpbWVFbmQgd2l0aG91dCB0aXRsZSBwYXJhbWV0ZXIKKyAgICBjb25zb2xl
LmxvZygiPj4+Y29uc29sZS50aW1lKCkiKTsKKyAgICBjb25zb2xlLnRpbWUoKTsKKyAgICBjb25z
b2xlLmxvZygiPj4+Y29uc29sZS50aW1lRW5kKCkiKTsKKyAgICBjb25zb2xlLnRpbWVFbmQoKTsK
K307CisKKzwvc2NyaXB0PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTU5Ij5CdWcgMTkxNTk6IEluc3BlY3RvciBzaG91bGQg
c3VwcG9ydCBjb25zb2xlLnRpbWUvY29uc29sZS50aW1lRW5kPC9hPi48L3A+Cis8cD5PcGVuIHRo
ZSBJbnNwZWN0b3IgKHJpZ2h0LWNsaWNrIGFuZCBjaG9vc2UgIkluc3BlY3QgRWxlbWVudCIpLCB0
aGVuIGNsaWNrIHRoZSAiUnVuIFRlc3RzIiBidXR0b24uPC9wPgorPGJ1dHRvbiBvbmNsaWNrPSJ0
ZXN0KCkiPlJ1biBUZXN0czwvYnV0dG9uPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5k
ZXg6IFdlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2Uv
Q29uc29sZS5jcHAJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNjYsNiArMjY2LDM2IEBAIHZvaWQgQ29uc29sZTo6cHJvZmls
ZUVuZChFeGVjU3RhdGUqIGV4ZWMKICAgICBQcm9maWxlcjo6cHJvZmlsZXIoKS0+c3RvcFByb2Zp
bGluZyhleGVjLCB0aXRsZSk7CiB9CiAKK3ZvaWQgQ29uc29sZTo6dGltZShjb25zdCBLSlM6OlVT
dHJpbmcmIHRpdGxlKQoreworICAgIGlmICh0aXRsZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdl
KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LT5zdGFydFRpbWluZyh0aXRsZSk7Cit9CisKK3ZvaWQgQ29uc29sZTo6dGltZUVuZChjb25zdCBL
SlM6OlVTdHJpbmcmIHRpdGxlKQoreworICAgIGlmICh0aXRsZS5pc051bGwoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIAorICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYg
KCFwYWdlKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgZG91YmxlIGVsYXBzZWQ7CisgICAg
aWYgKCFwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnN0b3BUaW1pbmcodGl0bGUsIGVsYXBz
ZWQpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmco
dGl0bGUpICsgU3RyaW5nOjpmb3JtYXQoIjogJS4wZm1zIiwgZWxhcHNlZCk7CisgICAgLy8gRklY
TUU6IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTE+IFdlIHNo
b3VsZCBwYXNzIGluIHRoZSByZWFsIHNvdXJjZVVSTCBoZXJlIHNvIHRoYXQgdGhlIEluc3BlY3Rv
ciBjYW4gc2hvdyBpdC4KKyAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmFkZE1lc3Nh
Z2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAs
IFN0cmluZygpKTsKK30KKwogdm9pZCBDb25zb2xlOjpmaW5pc2hlZFByb2ZpbGluZyhQYXNzUmVm
UHRyPFByb2ZpbGU+IHBycFByb2ZpbGUpCiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1l
LT5wYWdlKCkpCkluZGV4OiBXZWJDb3JlL3BhZ2UvQ29uc29sZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGFnZS9Db25zb2xlLmgJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9wYWdlL0Nv
bnNvbGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzYsNiArNzYsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZvaWQgYXNzZXJ0Q29uZGl0aW9uKGJvb2wgY29uZGl0aW9uLCBLSlM6OkV4
ZWNTdGF0ZSosIGNvbnN0IEtKUzo6QXJnTGlzdCYgYXJndW1lbnRzKTsKICAgICAgICAgdm9pZCBw
cm9maWxlKEtKUzo6RXhlY1N0YXRlKiwgY29uc3QgS0pTOjpBcmdMaXN0JiBhcmd1bWVudHMpOwog
ICAgICAgICB2b2lkIHByb2ZpbGVFbmQoS0pTOjpFeGVjU3RhdGUqLCBjb25zdCBLSlM6OkFyZ0xp
c3QmIGFyZ3VtZW50cyk7CisgICAgICAgIHZvaWQgdGltZShjb25zdCBLSlM6OlVTdHJpbmcmIHRp
dGxlKTsKKyAgICAgICAgdm9pZCB0aW1lRW5kKGNvbnN0IEtKUzo6VVN0cmluZyYgdGl0bGUpOwog
CiAgICAgICAgIHZvaWQgZmluaXNoZWRQcm9maWxpbmcoUGFzc1JlZlB0cjxLSlM6OlByb2ZpbGU+
KTsKIApJbmRleDogV2ViQ29yZS9wYWdlL0NvbnNvbGUuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGFnZS9Db25zb2xlLmlkbAkocmV2aXNpb24gMzQ4MjcpCisrKyBXZWJDb3JlL3BhZ2UvQ29u
c29sZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDggQEAgbW9kdWxlIHdpbmRvdyB7
CiAKICAgICAgICAgW0N1c3RvbV0gdm9pZCBwcm9maWxlKGluIERPTVN0cmluZyB0aXRsZSk7CiAg
ICAgICAgIFtDdXN0b21dIHZvaWQgcHJvZmlsZUVuZCgpOworICAgICAgICB2b2lkIHRpbWUoaW4g
W0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB0aXRsZSk7Cisg
ICAgICAgIHZvaWQgdGltZUVuZChpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIHRpdGxlKTsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAzNDgyNykKKysrIFdlYkNvcmUvcGFnZS9JbnNwZWN0
b3JDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQyMSw2ICsyNDIxLDIxIEBAIHZv
aWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZHJhd05vZGVIaWdobGkKICAgICBkcmF3SGlnaGxpZ2h0
Rm9yQm94ZXMoY29udGV4dCwgbGluZUJveFJlY3RzLCBjb250ZW50Qm94LCBwYWRkaW5nQm94LCBi
b3JkZXJCb3gsIG1hcmdpbkJveCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c3Rh
cnRUaW1pbmcoY29uc3QgS0pTOjpVU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBtX3RpbWVzLmFkZCh0
aXRsZSwgY3VycmVudFRpbWUoKSAqIDEwMDApOworfQorCitib29sIEluc3BlY3RvckNvbnRyb2xs
ZXI6OnN0b3BUaW1pbmcoY29uc3QgS0pTOjpVU3RyaW5nJiB0aXRsZSwgZG91YmxlJiBlbGFwc2Vk
KQoreworICAgIGlmICghbV90aW1lcy5jb250YWlucyh0aXRsZSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAKKyAgICBkb3VibGUgc3RhcnRUaW1lID0gbV90aW1lcy50YWtlKHRpdGxlKTsK
KyAgICBlbGFwc2VkID0gY3VycmVudFRpbWUoKSAqIDEwMDAgLSBzdGFydFRpbWU7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKIGJvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6aGFuZGxlRXhjZXB0aW9u
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiwgdW5zaWduZWQgbGlu
ZU51bWJlcikgY29uc3QKIHsKICAgICBpZiAoIWV4Y2VwdGlvbikKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9JbnNwZWN0b3JDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0luc3Bl
Y3RvckNvbnRyb2xsZXIuaAkocmV2aXNpb24gMzQ4MjcpCisrKyBXZWJDb3JlL3BhZ2UvSW5zcGVj
dG9yQ29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjgsNiArMTY4LDkgQEAgcHVibGlj
OgogICAgIHZvaWQgc3RlcE91dE9mRnVuY3Rpb25JbkRlYnVnZ2VyKCk7CiAKICAgICB2b2lkIGRy
YXdOb2RlSGlnaGxpZ2h0KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworICAgIAorICAgIHZvaWQg
c3RhcnRUaW1pbmcoY29uc3QgS0pTOjpVU3RyaW5nJiB0aXRsZSk7CisgICAgYm9vbCBzdG9wVGlt
aW5nKGNvbnN0IEtKUzo6VVN0cmluZyYgdGl0bGUsIGRvdWJsZSYgZWxhcHNlZCk7CiAKIHByaXZh
dGU6CiAgICAgdm9pZCBmb2N1c05vZGUoKTsKQEAgLTIxOSw2ICsyMjIsNyBAQCBwcml2YXRlOgog
ICAgIEZyYW1lUmVzb3VyY2VzTWFwIG1fZnJhbWVSZXNvdXJjZXM7CiAgICAgVmVjdG9yPENvbnNv
bGVNZXNzYWdlKj4gbV9jb25zb2xlTWVzc2FnZXM7CiAgICAgVmVjdG9yPFJlZlB0cjxLSlM6OlBy
b2ZpbGU+ID4gbV9wcm9maWxlczsKKyAgICBIYXNoTWFwPFN0cmluZywgZG91YmxlPiBtX3RpbWVz
OwogI2lmIEVOQUJMRShEQVRBQkFTRSkKICAgICBEYXRhYmFzZVJlc291cmNlc1NldCBtX2RhdGFi
YXNlUmVzb3VyY2VzOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21985</attachid>
            <date>2008-06-28 05:20:31 -0700</date>
            <delta_ts>2008-06-30 04:24:24 -0700</delta_ts>
            <desc>fixed mistakes</desc>
            <filename>MyPatch6.txt</filename>
            <type>text/plain</type>
            <size>6717</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNDgzMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDgtMDYtMjcgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgQWRkZWQgY29uc29sZS50aW1lL3RpbWVFbmQuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTU5CisgICAg
ICAgIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1h
bnVhbC10ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10aW1lLmh0bWw6IEFkZGVkLiBUZXN0IGNhc2Vz
IGZvciBjb25zb2xlLnRpbWUvdGltZUVuZC4KKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6dGltZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q29uc29sZTo6dGltZUVuZCk6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgor
ICAgICAgICAqIHBhZ2UvQ29uc29sZS5pZGw6IEFkZGVkIGNvbnNvbGUudGltZS90aW1lRW5kLgor
ICAgICAgICAqIHBhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDb250cm9sbGVyOjpzdGFydFRpbWluZyk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6c3RvcFRpbWluZyk6IEFkZGVkLgorICAgICAgICAq
IHBhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorCiAyMDA4LTA2LTI3ICBBbnR0aSBLb2l2aXN0
byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIuCkluZGV4
OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10aW1lLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9tYW51YWwtdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGltZS5odG1s
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9tYW51YWwtdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUt
dGltZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMzIEBACis8c2NyaXB0PgorZnVuY3Rp
b24gdGVzdCgpIHsKKyAgICAvLyBUZXN0IDE6IGNhbGwgdGltZUVuZCBiZWZvcmUgdGltZQorICAg
IGNvbnNvbGUubG9nKCI+Pj5jb25zb2xlLnRpbWVFbmQoXCIxXCIpIik7CisgICAgY29uc29sZS50
aW1lRW5kKCIxIik7CisgICAgLy8gVGVzdCAyOiBjYWxsIHRpbWUgdHdvIHRpbWVzIGJlZm9yZSB0
aW1lRW5kCisgICAgY29uc29sZS5sb2coIj4+PmNvbnNvbGUudGltZShcIjJcIikiKTsKKyAgICBj
b25zb2xlLnRpbWUoIjIiKTsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBj
b25zb2xlLmxvZygiPj4+Y29uc29sZS50aW1lKFwiMlwiKSIpOworICAgICAgICBjb25zb2xlLnRp
bWUoIjIiKTsKKyAgICAgICAgY29uc29sZS5sb2coIj4+PmNvbnNvbGUudGltZUVuZChcIjJcIiki
KTsKKyAgICAgICAgY29uc29sZS50aW1lRW5kKCIyIik7CisgICAgICAgIGNvbnNvbGUubG9nKCIy
OiBJZiBpdCBzYXlzIH4xMDAwbXMgdGhlIGZpcnN0IHRpbWUgaXMgbm90IG92ZXJ3cml0dGVuLiIp
OworICAgIH0sIDEwMDApOworICAgIC8vIFRlc3QgMzogY2FsbCB0aW1lRW5kIHR3byB0aW1lcwor
ICAgIGNvbnNvbGUubG9nKCI+Pj5jb25zb2xlLnRpbWUoXCIzXCIpIik7CisgICAgY29uc29sZS50
aW1lKCIzIik7CisgICAgY29uc29sZS5sb2coIj4+PmNvbnNvbGUudGltZUVuZChcIjNcIikiKTsK
KyAgICBjb25zb2xlLnRpbWVFbmQoIjMiKTsKKyAgICBjb25zb2xlLmxvZygiPj4+Y29uc29sZS50
aW1lRW5kKFwiM1wiKSIpOworICAgIGNvbnNvbGUudGltZUVuZCgiMyIpOworICAgIC8vIFRlc3Qg
NDogY2FsbCB0aW1lL3RpbWVFbmQgd2l0aG91dCB0aXRsZSBwYXJhbWV0ZXIKKyAgICBjb25zb2xl
LmxvZygiPj4+Y29uc29sZS50aW1lKCkiKTsKKyAgICBjb25zb2xlLnRpbWUoKTsKKyAgICBjb25z
b2xlLmxvZygiPj4+Y29uc29sZS50aW1lRW5kKCkiKTsKKyAgICBjb25zb2xlLnRpbWVFbmQoKTsK
K307CisKKzwvc2NyaXB0PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTU5Ij5CdWcgMTkxNTk6IEluc3BlY3RvciBzaG91bGQg
c3VwcG9ydCBjb25zb2xlLnRpbWUvY29uc29sZS50aW1lRW5kPC9hPi48L3A+Cis8cD5PcGVuIHRo
ZSBJbnNwZWN0b3IgKHJpZ2h0LWNsaWNrIGFuZCBjaG9vc2UgIkluc3BlY3QgRWxlbWVudCIpLCB0
aGVuIGNsaWNrIHRoZSAiUnVuIFRlc3RzIiBidXR0b24uPC9wPgorPGJ1dHRvbiBvbmNsaWNrPSJ0
ZXN0KCkiPlJ1biBUZXN0czwvYnV0dG9uPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5k
ZXg6IFdlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2Uv
Q29uc29sZS5jcHAJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNjYsNiArMjY2LDcyIEBAIHZvaWQgQ29uc29sZTo6cHJvZmls
ZUVuZChFeGVjU3RhdGUqIGV4ZWMKICAgICBQcm9maWxlcjo6cHJvZmlsZXIoKS0+c3RvcFByb2Zp
bGluZyhleGVjLCB0aXRsZSk7CiB9CiAKK3ZvaWQgQ29uc29sZTo6dGltZShjb25zdCBLSlM6OlVT
dHJpbmcmIHRpdGxlKQoreworICAgIGlmICh0aXRsZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFBh
Z2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm47CisgICAgCisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5zdGFydFRpbWluZyh0
aXRsZSk7Cit9CisKK3ZvaWQgQ29uc29sZTo6dGltZUVuZChjb25zdCBLSlM6OlVTdHJpbmcmIHRp
dGxlKQoreworICAgIGlmICh0aXRsZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAor
ICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFBhZ2UqIHBhZ2Ug
PSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgY29uc3QgS1VSTCYgdXJsID0gbV9mcmFtZS0+bG9hZGVyKCktPnVybCgpOworICAgIAor
ICAgIGRvdWJsZSBlbGFwc2VkOworICAgIGlmICghcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LT5zdG9wVGltaW5nKHRpdGxlLCBlbGFwc2VkKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAg
IFN0cmluZyBtZXNzYWdlID0gU3RyaW5nKHRpdGxlKSArIFN0cmluZzo6Zm9ybWF0KCI6ICUuMGZt
cyIsIGVsYXBzZWQpOworICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+YWRkTWVzc2Fn
ZVRvQ29uc29sZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMCwg
dXJsLnN0cmluZygpKTsKK30KKwogdm9pZCBDb25zb2xlOjpmaW5pc2hlZFByb2ZpbGluZyhQYXNz
UmVmUHRyPFByb2ZpbGU+IHBycFByb2ZpbGUpCiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2Zy
YW1lLT5wYWdlKCkpCkluZGV4OiBXZWJDb3JlL3BhZ2UvQ29uc29sZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGFnZS9Db25zb2xlLmgJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9wYWdl
L0NvbnNvbGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzYsNiArNzYsMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2b2lkIGFzc2VydENvbmRpdGlvbihib29sIGNvbmRpdGlvbiwgS0pT
OjpFeGVjU3RhdGUqLCBjb25zdCBLSlM6OkFyZ0xpc3QmIGFyZ3VtZW50cyk7CiAgICAgICAgIHZv
aWQgcHJvZmlsZShLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEtKUzo6QXJnTGlzdCYgYXJndW1lbnRz
KTsKICAgICAgICAgdm9pZCBwcm9maWxlRW5kKEtKUzo6RXhlY1N0YXRlKiwgY29uc3QgS0pTOjpB
cmdMaXN0JiBhcmd1bWVudHMpOworICAgICAgICB2b2lkIHRpbWUoY29uc3QgS0pTOjpVU3RyaW5n
JiB0aXRsZSk7CisgICAgICAgIHZvaWQgdGltZUVuZChjb25zdCBLSlM6OlVTdHJpbmcmIHRpdGxl
KTsKIAogICAgICAgICB2b2lkIGZpbmlzaGVkUHJvZmlsaW5nKFBhc3NSZWZQdHI8S0pTOjpQcm9m
aWxlPik7CiAKSW5kZXg6IFdlYkNvcmUvcGFnZS9Db25zb2xlLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BhZ2UvQ29uc29sZS5pZGwJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9wYWdl
L0NvbnNvbGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCwxMCBAQCBtb2R1bGUgd2lu
ZG93IHsKIAogICAgICAgICBbQ3VzdG9tXSB2b2lkIHByb2ZpbGUoaW4gRE9NU3RyaW5nIHRpdGxl
KTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBwcm9maWxlRW5kKCk7CisgICAgICAgIHZvaWQgdGlt
ZShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHRpdGxl
KTsKKyAgICAgICAgdm9pZCB0aW1lRW5kKGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgdGl0bGUpOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGFn
ZS9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9wYWdlL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIxLDYgKzI0MjEsMjQg
QEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkcmF3Tm9kZUhpZ2hsaQogICAgIGRyYXdIaWdo
bGlnaHRGb3JCb3hlcyhjb250ZXh0LCBsaW5lQm94UmVjdHMsIGNvbnRlbnRCb3gsIHBhZGRpbmdC
b3gsIGJvcmRlckJveCwgbWFyZ2luQm94KTsKIH0KIAordm9pZCBJbnNwZWN0b3JDb250cm9sbGVy
OjpzdGFydFRpbWluZyhjb25zdCBLSlM6OlVTdHJpbmcmIHRpdGxlKQoreworICAgIG1fdGltZXMu
YWRkKHRpdGxlLCBjdXJyZW50VGltZSgpICogMTAwMCk7Cit9CisKK2Jvb2wgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6c3RvcFRpbWluZyhjb25zdCBLSlM6OlVTdHJpbmcmIHRpdGxlLCBkb3VibGUmIGVs
YXBzZWQpCit7CisgICAgSGFzaE1hcDxTdHJpbmcsIGRvdWJsZT46Oml0ZXJhdG9yIGl0ID0gbV90
aW1lcy5maW5kKHRpdGxlKTsKKyAgICBpZiAoaXQgPT0gbV90aW1lcy5lbmQoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgZG91YmxlIHN0YXJ0VGltZSA9IGl0LT5zZWNvbmQ7CisgICAg
bV90aW1lcy5yZW1vdmUoaXQpOworICAgIAorICAgIGVsYXBzZWQgPSBjdXJyZW50VGltZSgpICog
MTAwMCAtIHN0YXJ0VGltZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBJbnNwZWN0b3JD
b250cm9sbGVyOjpoYW5kbGVFeGNlcHRpb24oSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVS
ZWYgZXhjZXB0aW9uLCB1bnNpZ25lZCBsaW5lTnVtYmVyKSBjb25zdAogewogICAgIGlmICghZXhj
ZXB0aW9uKQpJbmRleDogV2ViQ29yZS9wYWdlL0luc3BlY3RvckNvbnRyb2xsZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5oCShyZXZpc2lvbiAzNDgy
NykKKysrIFdlYkNvcmUvcGFnZS9JbnNwZWN0b3JDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE2OCw2ICsxNjgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGVwT3V0T2ZGdW5jdGlvbklu
RGVidWdnZXIoKTsKIAogICAgIHZvaWQgZHJhd05vZGVIaWdobGlnaHQoR3JhcGhpY3NDb250ZXh0
JikgY29uc3Q7CisgICAgCisgICAgdm9pZCBzdGFydFRpbWluZyhjb25zdCBLSlM6OlVTdHJpbmcm
IHRpdGxlKTsKKyAgICBib29sIHN0b3BUaW1pbmcoY29uc3QgS0pTOjpVU3RyaW5nJiB0aXRsZSwg
ZG91YmxlJiBlbGFwc2VkKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGZvY3VzTm9kZSgpOwpAQCAt
MjE5LDYgKzIyMiw3IEBAIHByaXZhdGU6CiAgICAgRnJhbWVSZXNvdXJjZXNNYXAgbV9mcmFtZVJl
c291cmNlczsKICAgICBWZWN0b3I8Q29uc29sZU1lc3NhZ2UqPiBtX2NvbnNvbGVNZXNzYWdlczsK
ICAgICBWZWN0b3I8UmVmUHRyPEtKUzo6UHJvZmlsZT4gPiBtX3Byb2ZpbGVzOworICAgIEhhc2hN
YXA8U3RyaW5nLCBkb3VibGU+IG1fdGltZXM7CiAjaWYgRU5BQkxFKERBVEFCQVNFKQogICAgIERh
dGFiYXNlUmVzb3VyY2VzU2V0IG1fZGF0YWJhc2VSZXNvdXJjZXM7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22006</attachid>
            <date>2008-06-30 04:24:24 -0700</date>
            <delta_ts>2008-07-02 09:32:14 -0700</delta_ts>
            <desc>reverted</desc>
            <filename>MyPatch6.txt</filename>
            <type>text/plain</type>
            <size>6857</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNDgzMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDgtMDYtMjcgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgQWRkZWQgY29uc29sZS50aW1lL3RpbWVFbmQuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTU5CisgICAg
ICAgIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1h
bnVhbC10ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10aW1lLmh0bWw6IEFkZGVkLiBUZXN0IGNhc2Vz
IGZvciBjb25zb2xlLnRpbWUvdGltZUVuZC4KKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6dGltZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q29uc29sZTo6dGltZUVuZCk6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgor
ICAgICAgICAqIHBhZ2UvQ29uc29sZS5pZGw6IEFkZGVkIGNvbnNvbGUudGltZS90aW1lRW5kLgor
ICAgICAgICAqIHBhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDb250cm9sbGVyOjpzdGFydFRpbWluZyk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6c3RvcFRpbWluZyk6IEFkZGVkLgorICAgICAgICAq
IHBhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorCiAyMDA4LTA2LTI3ICBBbnR0aSBLb2l2aXN0
byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIuCkluZGV4
OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10aW1lLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9tYW51YWwtdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGltZS5odG1s
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9tYW51YWwtdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUt
dGltZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMzIEBACis8c2NyaXB0PgorZnVuY3Rp
b24gdGVzdCgpIHsKKyAgICAvLyBUZXN0IDE6IGNhbGwgdGltZUVuZCBiZWZvcmUgdGltZQorICAg
IGNvbnNvbGUubG9nKCI+Pj5jb25zb2xlLnRpbWVFbmQoXCIxXCIpIik7CisgICAgY29uc29sZS50
aW1lRW5kKCIxIik7CisgICAgLy8gVGVzdCAyOiBjYWxsIHRpbWUgdHdvIHRpbWVzIGJlZm9yZSB0
aW1lRW5kCisgICAgY29uc29sZS5sb2coIj4+PmNvbnNvbGUudGltZShcIjJcIikiKTsKKyAgICBj
b25zb2xlLnRpbWUoIjIiKTsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBj
b25zb2xlLmxvZygiPj4+Y29uc29sZS50aW1lKFwiMlwiKSIpOworICAgICAgICBjb25zb2xlLnRp
bWUoIjIiKTsKKyAgICAgICAgY29uc29sZS5sb2coIj4+PmNvbnNvbGUudGltZUVuZChcIjJcIiki
KTsKKyAgICAgICAgY29uc29sZS50aW1lRW5kKCIyIik7CisgICAgICAgIGNvbnNvbGUubG9nKCIy
OiBJZiBpdCBzYXlzIH4xMDAwbXMgdGhlIGZpcnN0IHRpbWUgaXMgbm90IG92ZXJ3cml0dGVuLiIp
OworICAgIH0sIDEwMDApOworICAgIC8vIFRlc3QgMzogY2FsbCB0aW1lRW5kIHR3byB0aW1lcwor
ICAgIGNvbnNvbGUubG9nKCI+Pj5jb25zb2xlLnRpbWUoXCIzXCIpIik7CisgICAgY29uc29sZS50
aW1lKCIzIik7CisgICAgY29uc29sZS5sb2coIj4+PmNvbnNvbGUudGltZUVuZChcIjNcIikiKTsK
KyAgICBjb25zb2xlLnRpbWVFbmQoIjMiKTsKKyAgICBjb25zb2xlLmxvZygiPj4+Y29uc29sZS50
aW1lRW5kKFwiM1wiKSIpOworICAgIGNvbnNvbGUudGltZUVuZCgiMyIpOworICAgIC8vIFRlc3Qg
NDogY2FsbCB0aW1lL3RpbWVFbmQgd2l0aG91dCB0aXRsZSBwYXJhbWV0ZXIKKyAgICBjb25zb2xl
LmxvZygiPj4+Y29uc29sZS50aW1lKCkiKTsKKyAgICBjb25zb2xlLnRpbWUoKTsKKyAgICBjb25z
b2xlLmxvZygiPj4+Y29uc29sZS50aW1lRW5kKCkiKTsKKyAgICBjb25zb2xlLnRpbWVFbmQoKTsK
K307CisKKzwvc2NyaXB0PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTU5Ij5CdWcgMTkxNTk6IEluc3BlY3RvciBzaG91bGQg
c3VwcG9ydCBjb25zb2xlLnRpbWUvY29uc29sZS50aW1lRW5kPC9hPi48L3A+Cis8cD5PcGVuIHRo
ZSBJbnNwZWN0b3IgKHJpZ2h0LWNsaWNrIGFuZCBjaG9vc2UgIkluc3BlY3QgRWxlbWVudCIpLCB0
aGVuIGNsaWNrIHRoZSAiUnVuIFRlc3RzIiBidXR0b24uPC9wPgorPGJ1dHRvbiBvbmNsaWNrPSJ0
ZXN0KCkiPlJ1biBUZXN0czwvYnV0dG9uPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5k
ZXg6IFdlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2Uv
Q29uc29sZS5jcHAJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNjYsNiArMjY2LDcyIEBAIHZvaWQgQ29uc29sZTo6cHJvZmls
ZUVuZChFeGVjU3RhdGUqIGV4ZWMKICAgICBQcm9maWxlcjo6cHJvZmlsZXIoKS0+c3RvcFByb2Zp
bGluZyhleGVjLCB0aXRsZSk7CiB9CiAKK3ZvaWQgQ29uc29sZTo6dGltZShjb25zdCBLSlM6OlVT
dHJpbmcmIHRpdGxlKQoreworICAgIGlmICh0aXRsZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFBh
Z2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm47CisgICAgCisgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5zdGFydFRpbWluZyh0
aXRsZSk7Cit9CisKK3ZvaWQgQ29uc29sZTo6dGltZUVuZChjb25zdCBLSlM6OlVTdHJpbmcmIHRp
dGxlKQoreworICAgIGlmICh0aXRsZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAor
ICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFBhZ2UqIHBhZ2Ug
PSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgY29uc3QgS1VSTCYgdXJsID0gbV9mcmFtZS0+bG9hZGVyKCktPnVybCgpOworICAgIAor
ICAgIGRvdWJsZSBlbGFwc2VkOworICAgIGlmICghcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LT5zdG9wVGltaW5nKHRpdGxlLCBlbGFwc2VkKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAg
IFN0cmluZyBtZXNzYWdlID0gU3RyaW5nKHRpdGxlKSArIFN0cmluZzo6Zm9ybWF0KCI6ICUuMGZt
cyIsIGVsYXBzZWQpOworICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5NzkxPiBXZSBzaG91bGQgcGFzcyBpbiB0aGUgcmVhbCBzb3VyY2VVUkwg
aGVyZSBzbyB0aGF0IHRoZSBJbnNwZWN0b3IgY2FuIHNob3cgaXQuCisgICAgcGFnZS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLT5hZGRNZXNzYWdlVG9Db25zb2xlKEpTTWVzc2FnZVNvdXJjZSwgTG9n
TWVzc2FnZUxldmVsLCBtZXNzYWdlLCAwLCB1cmwuc3RyaW5nKCkpOworfQorCiB2b2lkIENvbnNv
bGU6OmZpbmlzaGVkUHJvZmlsaW5nKFBhc3NSZWZQdHI8UHJvZmlsZT4gcHJwUHJvZmlsZSkKIHsK
ICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9Db25zb2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAkocmV2aXNp
b24gMzQ4MjcpCisrKyBXZWJDb3JlL3BhZ2UvQ29uc29sZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03
Niw2ICs3NiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgYXNzZXJ0Q29u
ZGl0aW9uKGJvb2wgY29uZGl0aW9uLCBLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEtKUzo6QXJnTGlz
dCYgYXJndW1lbnRzKTsKICAgICAgICAgdm9pZCBwcm9maWxlKEtKUzo6RXhlY1N0YXRlKiwgY29u
c3QgS0pTOjpBcmdMaXN0JiBhcmd1bWVudHMpOwogICAgICAgICB2b2lkIHByb2ZpbGVFbmQoS0pT
OjpFeGVjU3RhdGUqLCBjb25zdCBLSlM6OkFyZ0xpc3QmIGFyZ3VtZW50cyk7CisgICAgICAgIHZv
aWQgdGltZShjb25zdCBLSlM6OlVTdHJpbmcmIHRpdGxlKTsKKyAgICAgICAgdm9pZCB0aW1lRW5k
KGNvbnN0IEtKUzo6VVN0cmluZyYgdGl0bGUpOwogCiAgICAgICAgIHZvaWQgZmluaXNoZWRQcm9m
aWxpbmcoUGFzc1JlZlB0cjxLSlM6OlByb2ZpbGU+KTsKIApJbmRleDogV2ViQ29yZS9wYWdlL0Nv
bnNvbGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9Db25zb2xlLmlkbAkocmV2aXNp
b24gMzQ4MjcpCisrKyBXZWJDb3JlL3BhZ2UvQ29uc29sZS5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTM4LDYgKzM4LDEwIEBAIG1vZHVsZSB3aW5kb3cgewogCiAgICAgICAgIFtDdXN0b21dIHZvaWQg
cHJvZmlsZShpbiBET01TdHJpbmcgdGl0bGUpOwogICAgICAgICBbQ3VzdG9tXSB2b2lkIHByb2Zp
bGVFbmQoKTsKKyAgICAgICAgdm9pZCB0aW1lKGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgdGl0bGUpOworICAgICAgICB2b2lkIHRpbWVFbmQoaW4gW0Nv
bnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB0aXRsZSk7CiAgICAg
fTsKIAogfQpJbmRleDogV2ViQ29yZS9wYWdlL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAkocmV2aXNpb24g
MzQ4MjcpCisrKyBXZWJDb3JlL3BhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI0MjEsNiArMjQyMSwyNCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRy
YXdOb2RlSGlnaGxpCiAgICAgZHJhd0hpZ2hsaWdodEZvckJveGVzKGNvbnRleHQsIGxpbmVCb3hS
ZWN0cywgY29udGVudEJveCwgcGFkZGluZ0JveCwgYm9yZGVyQm94LCBtYXJnaW5Cb3gpOwogfQog
Cit2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0VGltaW5nKGNvbnN0IEtKUzo6VVN0cmlu
ZyYgdGl0bGUpCit7CisgICAgbV90aW1lcy5hZGQodGl0bGUsIGN1cnJlbnRUaW1lKCkgKiAxMDAw
KTsKK30KKworYm9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjpzdG9wVGltaW5nKGNvbnN0IEtKUzo6
VVN0cmluZyYgdGl0bGUsIGRvdWJsZSYgZWxhcHNlZCkKK3sKKyAgICBIYXNoTWFwPFN0cmluZywg
ZG91YmxlPjo6aXRlcmF0b3IgaXQgPSBtX3RpbWVzLmZpbmQodGl0bGUpOworICAgIGlmIChpdCA9
PSBtX3RpbWVzLmVuZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBkb3VibGUgc3Rh
cnRUaW1lID0gaXQtPnNlY29uZDsKKyAgICBtX3RpbWVzLnJlbW92ZShpdCk7CisgICAgCisgICAg
ZWxhcHNlZCA9IGN1cnJlbnRUaW1lKCkgKiAxMDAwIC0gc3RhcnRUaW1lOworICAgIHJldHVybiB0
cnVlOworfQorCiBib29sIEluc3BlY3RvckNvbnRyb2xsZXI6OmhhbmRsZUV4Y2VwdGlvbihKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBleGNlcHRpb24sIHVuc2lnbmVkIGxpbmVOdW1i
ZXIpIGNvbnN0CiB7CiAgICAgaWYgKCFleGNlcHRpb24pCkluZGV4OiBXZWJDb3JlL3BhZ2UvSW5z
cGVjdG9yQ29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9JbnNwZWN0b3JD
b250cm9sbGVyLmgJKHJldmlzaW9uIDM0ODI3KQorKysgV2ViQ29yZS9wYWdlL0luc3BlY3RvckNv
bnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTY4LDYgKzE2OCw5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHN0ZXBPdXRPZkZ1bmN0aW9uSW5EZWJ1Z2dlcigpOwogCiAgICAgdm9pZCBkcmF3Tm9k
ZUhpZ2hsaWdodChHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKyAgICAKKyAgICB2b2lkIHN0YXJ0
VGltaW5nKGNvbnN0IEtKUzo6VVN0cmluZyYgdGl0bGUpOworICAgIGJvb2wgc3RvcFRpbWluZyhj
b25zdCBLSlM6OlVTdHJpbmcmIHRpdGxlLCBkb3VibGUmIGVsYXBzZWQpOwogCiBwcml2YXRlOgog
ICAgIHZvaWQgZm9jdXNOb2RlKCk7CkBAIC0yMTksNiArMjIyLDcgQEAgcHJpdmF0ZToKICAgICBG
cmFtZVJlc291cmNlc01hcCBtX2ZyYW1lUmVzb3VyY2VzOwogICAgIFZlY3RvcjxDb25zb2xlTWVz
c2FnZSo+IG1fY29uc29sZU1lc3NhZ2VzOwogICAgIFZlY3RvcjxSZWZQdHI8S0pTOjpQcm9maWxl
PiA+IG1fcHJvZmlsZXM7CisgICAgSGFzaE1hcDxTdHJpbmcsIGRvdWJsZT4gbV90aW1lczsKICNp
ZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgRGF0YWJhc2VSZXNvdXJjZXNTZXQgbV9kYXRhYmFzZVJl
c291cmNlczsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22043</attachid>
            <date>2008-07-02 09:20:29 -0700</date>
            <delta_ts>2008-07-02 09:31:56 -0700</delta_ts>
            <desc>fixed</desc>
            <filename>MyPatch8.txt</filename>
            <type>text/plain</type>
            <size>6789</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNDkxMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDgtMDYtMjcgIEtlaXNoaSBIYXR0b3JpICA8Y2FzZXkuaGF0dG9y
aUBnbWFpbC5jb20+CisKKyAgICAgICAgQWRkZWQgY29uc29sZS50aW1lL3RpbWVFbmQuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTU5CisgICAg
ICAgIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1h
bnVhbC10ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10aW1lLmh0bWw6IEFkZGVkLiBUZXN0IGNhc2Vz
IGZvciBjb25zb2xlLnRpbWUvdGltZUVuZC4KKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6dGltZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q29uc29sZTo6dGltZUVuZCk6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgor
ICAgICAgICAqIHBhZ2UvQ29uc29sZS5pZGw6IEFkZGVkIGNvbnNvbGUudGltZS90aW1lRW5kLgor
ICAgICAgICAqIHBhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDb250cm9sbGVyOjpzdGFydFRpbWluZyk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6c3RvcFRpbWluZyk6IEFkZGVkLgorICAgICAgICAq
IHBhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorCiAyMDA4LTA3LTAxICBOaWtvbGFzIFppbW1l
cm1hbm4gIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkg
JiBFcmljLgpJbmRleDogV2ViQ29yZS9tYW51YWwtdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUtdGlt
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbWFudWFsLXRlc3RzL2luc3BlY3Rvci9jb25z
b2xlLXRpbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvbWFudWFsLXRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLXRpbWUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMyBAQAorPHNj
cmlwdD4KK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgLy8gVGVzdCAxOiBjYWxsIHRpbWVFbmQgYmVm
b3JlIHRpbWUKKyAgICBjb25zb2xlLmxvZygiPj4+Y29uc29sZS50aW1lRW5kKFwiMVwiKSIpOwor
ICAgIGNvbnNvbGUudGltZUVuZCgiMSIpOworICAgIC8vIFRlc3QgMjogY2FsbCB0aW1lIHR3byB0
aW1lcyBiZWZvcmUgdGltZUVuZAorICAgIGNvbnNvbGUubG9nKCI+Pj5jb25zb2xlLnRpbWUoXCIy
XCIpIik7CisgICAgY29uc29sZS50aW1lKCIyIik7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigp
IHsKKyAgICAgICAgY29uc29sZS5sb2coIj4+PmNvbnNvbGUudGltZShcIjJcIikiKTsKKyAgICAg
ICAgY29uc29sZS50aW1lKCIyIik7CisgICAgICAgIGNvbnNvbGUubG9nKCI+Pj5jb25zb2xlLnRp
bWVFbmQoXCIyXCIpIik7CisgICAgICAgIGNvbnNvbGUudGltZUVuZCgiMiIpOworICAgICAgICBj
b25zb2xlLmxvZygiMjogSWYgaXQgc2F5cyB+MTAwMG1zIHRoZSBmaXJzdCB0aW1lIGlzIG5vdCBv
dmVyd3JpdHRlbi4iKTsKKyAgICB9LCAxMDAwKTsKKyAgICAvLyBUZXN0IDM6IGNhbGwgdGltZUVu
ZCB0d28gdGltZXMKKyAgICBjb25zb2xlLmxvZygiPj4+Y29uc29sZS50aW1lKFwiM1wiKSIpOwor
ICAgIGNvbnNvbGUudGltZSgiMyIpOworICAgIGNvbnNvbGUubG9nKCI+Pj5jb25zb2xlLnRpbWVF
bmQoXCIzXCIpIik7CisgICAgY29uc29sZS50aW1lRW5kKCIzIik7CisgICAgY29uc29sZS5sb2co
Ij4+PmNvbnNvbGUudGltZUVuZChcIjNcIikiKTsKKyAgICBjb25zb2xlLnRpbWVFbmQoIjMiKTsK
KyAgICAvLyBUZXN0IDQ6IGNhbGwgdGltZS90aW1lRW5kIHdpdGhvdXQgdGl0bGUgcGFyYW1ldGVy
CisgICAgY29uc29sZS5sb2coIj4+PmNvbnNvbGUudGltZSgpIik7CisgICAgY29uc29sZS50aW1l
KCk7CisgICAgY29uc29sZS5sb2coIj4+PmNvbnNvbGUudGltZUVuZCgpIik7CisgICAgY29uc29s
ZS50aW1lRW5kKCk7Cit9OworCis8L3NjcmlwdD4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE1OSI+QnVnIDE5MTU5OiBJbnNw
ZWN0b3Igc2hvdWxkIHN1cHBvcnQgY29uc29sZS50aW1lL2NvbnNvbGUudGltZUVuZDwvYT4uPC9w
PgorPHA+T3BlbiB0aGUgSW5zcGVjdG9yIChyaWdodC1jbGljayBhbmQgY2hvb3NlICJJbnNwZWN0
IEVsZW1lbnQiKSwgdGhlbiBjbGljayB0aGUgIlJ1biBUZXN0cyIgYnV0dG9uLjwvcD4KKzxidXR0
b24gb25jbGljaz0idGVzdCgpIj5SdW4gVGVzdHM8L2J1dHRvbj4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCkluZGV4OiBXZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCShyZXZpc2lvbiAzNDkwNSkKKysrIFdlYkNvcmUvcGFn
ZS9Db25zb2xlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY2LDYgKzI2Niw0MiBAQCB2b2lkIENv
bnNvbGU6OnByb2ZpbGVFbmQoRXhlY1N0YXRlKiBleGVjCiAgICAgUHJvZmlsZXI6OnByb2ZpbGVy
KCktPnN0b3BQcm9maWxpbmcoZXhlYywgdGl0bGUpOwogfQogCit2b2lkIENvbnNvbGU6OnRpbWUo
Y29uc3QgVVN0cmluZyYgdGl0bGUpCit7CisgICAgaWYgKHRpdGxlLmlzTnVsbCgpKQorICAgICAg
ICByZXR1cm47CisgICAgCisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAg
ICAgIHJldHVybjsKKyAgICAKKyAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnN0YXJ0
VGltaW5nKHRpdGxlKTsKK30KKwordm9pZCBDb25zb2xlOjp0aW1lRW5kKGNvbnN0IFVTdHJpbmcm
IHRpdGxlKQoreworICAgIGlmICh0aXRsZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IAorICAgIGlmICghbV9mcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFBhZ2UqIHBh
Z2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47Cisg
ICAgCisgICAgZG91YmxlIGVsYXBzZWQ7CisgICAgaWYgKCFwYWdlLT5pbnNwZWN0b3JDb250cm9s
bGVyKCktPnN0b3BUaW1pbmcodGl0bGUsIGVsYXBzZWQpKQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmcodGl0bGUpICsgU3RyaW5nOjpmb3JtYXQoIjog
JS4wZm1zIiwgZWxhcHNlZCk7CisgICAgLy8gRklYTUU6IDxodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk3OTE+IFdlIHNob3VsZCBwYXNzIGluIHRoZSByZWFsIHNvdXJj
ZVVSTCBoZXJlIHNvIHRoYXQgdGhlIEluc3BlY3RvciBjYW4gc2hvdyBpdC4KKyAgICBwYWdlLT5p
bnNwZWN0b3JDb250cm9sbGVyKCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNNZXNzYWdlU291cmNl
LCBMb2dNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAsIFN0cmluZygpKTsKK30KKwogdm9pZCBDb25z
b2xlOjpmaW5pc2hlZFByb2ZpbGluZyhQYXNzUmVmUHRyPFByb2ZpbGU+IHBycFByb2ZpbGUpCiB7
CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCkluZGV4OiBXZWJDb3JlL3Bh
Z2UvQ29uc29sZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9Db25zb2xlLmgJKHJldmlz
aW9uIDM0OTA1KQorKysgV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAkod29ya2luZyBjb3B5KQpAQCAt
NzYsNiArNzYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgYXNzZXJ0Q29u
ZGl0aW9uKGJvb2wgY29uZGl0aW9uLCBLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEtKUzo6QXJnTGlz
dCYgYXJndW1lbnRzKTsKICAgICAgICAgdm9pZCBwcm9maWxlKEtKUzo6RXhlY1N0YXRlKiwgY29u
c3QgS0pTOjpBcmdMaXN0JiBhcmd1bWVudHMpOwogICAgICAgICB2b2lkIHByb2ZpbGVFbmQoS0pT
OjpFeGVjU3RhdGUqLCBjb25zdCBLSlM6OkFyZ0xpc3QmIGFyZ3VtZW50cyk7CisgICAgICAgIHZv
aWQgdGltZShjb25zdCBLSlM6OlVTdHJpbmcmIHRpdGxlKTsKKyAgICAgICAgdm9pZCB0aW1lRW5k
KGNvbnN0IEtKUzo6VVN0cmluZyYgdGl0bGUpOwogCiAgICAgICAgIHZvaWQgZmluaXNoZWRQcm9m
aWxpbmcoUGFzc1JlZlB0cjxLSlM6OlByb2ZpbGU+KTsKIApJbmRleDogV2ViQ29yZS9wYWdlL0Nv
bnNvbGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9Db25zb2xlLmlkbAkocmV2aXNp
b24gMzQ5MDUpCisrKyBXZWJDb3JlL3BhZ2UvQ29uc29sZS5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTM4LDYgKzM4LDggQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAgICAgW0N1c3RvbV0gdm9pZCBw
cm9maWxlKGluIERPTVN0cmluZyB0aXRsZSk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgcHJvZmls
ZUVuZCgpOworICAgICAgICB2b2lkIHRpbWUoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051
bGxTdHJpbmddIERPTVN0cmluZyB0aXRsZSk7CisgICAgICAgIHZvaWQgdGltZUVuZChpbiBbQ29u
dmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHRpdGxlKTsKICAgICB9
OwogCiB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wYWdlL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAz
NDkwNSkKKysrIFdlYkNvcmUvcGFnZS9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQyMSw2ICsyNDIxLDI0IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZHJh
d05vZGVIaWdobGkKICAgICBkcmF3SGlnaGxpZ2h0Rm9yQm94ZXMoY29udGV4dCwgbGluZUJveFJl
Y3RzLCBjb250ZW50Qm94LCBwYWRkaW5nQm94LCBib3JkZXJCb3gsIG1hcmdpbkJveCk7CiB9CiAK
K3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRUaW1pbmcoY29uc3QgVVN0cmluZyYgdGl0
bGUpCit7CisgICAgbV90aW1lcy5hZGQodGl0bGUsIGN1cnJlbnRUaW1lKCkgKiAxMDAwKTsKK30K
KworYm9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjpzdG9wVGltaW5nKGNvbnN0IFVTdHJpbmcmIHRp
dGxlLCBkb3VibGUmIGVsYXBzZWQpCit7CisgICAgSGFzaE1hcDxTdHJpbmcsIGRvdWJsZT46Oml0
ZXJhdG9yIGl0ID0gbV90aW1lcy5maW5kKHRpdGxlKTsKKyAgICBpZiAoaXQgPT0gbV90aW1lcy5l
bmQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZG91YmxlIHN0YXJ0VGltZSA9IGl0
LT5zZWNvbmQ7CisgICAgbV90aW1lcy5yZW1vdmUoaXQpOworICAgIAorICAgIGVsYXBzZWQgPSBj
dXJyZW50VGltZSgpICogMTAwMCAtIHN0YXJ0VGltZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwog
Ym9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjpoYW5kbGVFeGNlcHRpb24oSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTVmFsdWVSZWYgZXhjZXB0aW9uLCB1bnNpZ25lZCBsaW5lTnVtYmVyKSBjb25zdAog
ewogICAgIGlmICghZXhjZXB0aW9uKQpJbmRleDogV2ViQ29yZS9wYWdlL0luc3BlY3RvckNvbnRy
b2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvSW5zcGVjdG9yQ29udHJvbGxlci5o
CShyZXZpc2lvbiAzNDkwNSkKKysrIFdlYkNvcmUvcGFnZS9JbnNwZWN0b3JDb250cm9sbGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE2OCw2ICsxNjgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGVw
T3V0T2ZGdW5jdGlvbkluRGVidWdnZXIoKTsKIAogICAgIHZvaWQgZHJhd05vZGVIaWdobGlnaHQo
R3JhcGhpY3NDb250ZXh0JikgY29uc3Q7CisgICAgCisgICAgdm9pZCBzdGFydFRpbWluZyhjb25z
dCBLSlM6OlVTdHJpbmcmIHRpdGxlKTsKKyAgICBib29sIHN0b3BUaW1pbmcoY29uc3QgS0pTOjpV
U3RyaW5nJiB0aXRsZSwgZG91YmxlJiBlbGFwc2VkKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGZv
Y3VzTm9kZSgpOwpAQCAtMjE5LDYgKzIyMiw3IEBAIHByaXZhdGU6CiAgICAgRnJhbWVSZXNvdXJj
ZXNNYXAgbV9mcmFtZVJlc291cmNlczsKICAgICBWZWN0b3I8Q29uc29sZU1lc3NhZ2UqPiBtX2Nv
bnNvbGVNZXNzYWdlczsKICAgICBWZWN0b3I8UmVmUHRyPEtKUzo6UHJvZmlsZT4gPiBtX3Byb2Zp
bGVzOworICAgIEhhc2hNYXA8U3RyaW5nLCBkb3VibGU+IG1fdGltZXM7CiAjaWYgRU5BQkxFKERB
VEFCQVNFKQogICAgIERhdGFiYXNlUmVzb3VyY2VzU2V0IG1fZGF0YWJhc2VSZXNvdXJjZXM7CiAj
ZW5kaWYK
</data>
<flag name="review"
          id="9704"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>