<?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>29034</bug_id>
          
          <creation_ts>2009-09-08 08:18:42 -0700</creation_ts>
          <short_desc>ARM compiler does not understand reinterpret_cast&lt;void*&gt;</short_desc>
          <delta_ts>2009-10-13 14:34:01 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>27065</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Laszlo Gombos">laszlo.gombos</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>145359</commentid>
    <comment_count>0</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-09-08 08:18:42 -0700</bug_when>
    <thetext>The error message is the following:
armcc [...] jitopcodes.cpp
&quot;\webkit\JavaScriptCore\jit\jitopcodes.cpp&quot;, line 1751: Error:  #694: reinterpret_cast cannot cast away const or other type qualifiers
      move(ImmPtr(reinterpret_cast&lt;void*&gt;(ctiVMThrowTrampoline)), regT2);
                  ^

Changing reinterpret_cast to static_cast does not help either...
armcc [...] jitopcodes.cpp
&quot;\webkit\JavaScriptCore\jit\jitopcodes.cpp&quot;, line 1751: Error:  #171: invalid type conversion
      move(ImmPtr(static_cast&lt;void*&gt;(ctiVMThrowTrampoline)), regT2);
                  ^</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145364</commentid>
    <comment_count>1</comment_count>
      <attachid>39190</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-09-08 08:41:53 -0700</bug_when>
    <thetext>Created attachment 39190
proposed patch.

Change reinterpret_cast&lt;void*&gt; to regular C style (void*) cast.

I share the view that reinterpret_cast is more descriptive, however when it comes to casting to void* I&apos;m less certain about the difference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145383</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-08 09:24:27 -0700</bug_when>
    <thetext>reinterpret_cast cannot cast away const or other type qualifiers

Did you try casting to &lt;const void*&gt; to see if that made the compiler happy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145410</commentid>
    <comment_count>3</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-09-08 10:04:47 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; reinterpret_cast cannot cast away const or other type qualifiers
&gt; 
&gt; Did you try casting to &lt;const void*&gt; to see if that made the compiler happy?

Eric casting it to const void* does not help in fact it just makes it worse. The armcc error message is confusing. Here are the build logs from casting to const void*:

armcc [...] jitopcodes.cpp
&quot;\webkit\JavaScriptCore\jit\jitopcodes.cpp&quot;, line 1751: Error:  #694: reinterpret_cast cannot cast away const or other type qualifiers
      move(ImmPtr(reinterpret_cast&lt;const void*&gt;(ctiVMThrowTrampoline)), regT2);
                  ^
&quot;\webkit\JavaScriptCore\jit\jitopcodes.cpp&quot;, line 1751: Error:  #289: no instance of constructor &quot;JSC::AbstractMacroAssembler&lt;AssemblerType&gt;::ImmPtr::ImmPtr [with AssemblerType=JSC::ARMAssembler]&quot; matches the argument list argument types are: (const void *)
      move(ImmPtr(reinterpret_cast&lt;const void*&gt;(ctiVMThrowTrampoline)), regT2);
                  ^
\webkit\JavaScriptCore\jit\jitopcodes.cpp: 0 warnings, 2 errors


armcc [...] jitopcodes.cpp
&quot;\webkit\JavaScriptCore\jit\jitopcodes.cpp&quot;, line 1751: Error:  #171: invalid ty
pe conversion
      move(ImmPtr(static_cast&lt;const void*&gt;(ctiVMThrowTrampoline)), regT2);
                  ^
\webkit\JavaScriptCore\jit\jitopcodes.cpp: 0 warnings, 1 error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145421</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-08 10:20:00 -0700</bug_when>
    <thetext>Sure, so maybe you&apos;d have to use const_cast in addition to reinterpret_cast.  You&apos;d have to ask someone with more c++ knowledge than I.  You could certainly try using both and seeing if that makes the compiler happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145430</commentid>
    <comment_count>5</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-09-08 10:30:58 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Sure, so maybe you&apos;d have to use const_cast in addition to reinterpret_cast. 
&gt; You&apos;d have to ask someone with more c++ knowledge than I.  You could certainly
&gt; try using both and seeing if that makes the compiler happy.

Eric, thanks for the reviews !

Given that the regular C style (const void*) cast fails - but cast to (void*) succeeds - , I belie we want to cast it to (void*) - and not to const - regardless of what armcc complains about.

armcc [...] jitopcodes.cpp
&quot;\webkit\JavaScriptCore\jit\jitopcodes.cpp&quot;, line 1751: Error:  #289: no instance of constructor &quot;JSC::AbstractMacroAssembler&lt;AssemblerType&gt;::ImmPtr::ImmPtr [with AssemblerType=JSC::ARMAssembler]&quot; matches the argument list argument types are: (const void *)
      move(ImmPtr((const void*)(ctiVMThrowTrampoline)), regT2);
                  ^
\webkit\JavaScriptCore\jit\jitopcodes.cpp: 0 warnings, 1 error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145432</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-08 10:33:43 -0700</bug_when>
    <thetext>Example of what I mean:
reinterpret_cast&lt;void*&gt;(const_cast&lt;const void*&gt;(value))

Again, you&apos;d have to ask a c++ expert if that really should be necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145433</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-08 10:34:24 -0700</bug_when>
    <thetext>Sorry, I flipped those:
const_cast&lt;void*&gt;(reinterpret_cast &lt;const void*&gt;(value))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145460</commentid>
    <comment_count>8</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-09-08 11:11:47 -0700</bug_when>
    <thetext>Adding Darin to the CC list. Darin can you help to review this patch ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145508</commentid>
    <comment_count>9</comment_count>
      <attachid>39190</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-08 13:03:26 -0700</bug_when>
    <thetext>Comment on attachment 39190
proposed patch.

These are all casts that convert a function pointer into a void*. It&apos;s not really a reinterpret_cast issue, but rather the need for a way to convert function pointers to a single type (specifically, void*, I guess, but it might work to use some generic function pointer type instead).

I&apos;d prefer that we come up with a way of doing this other than sprinkling the C-style casts in -- something easier to search for later. Maybe a template function like this:

    template &lt;typename T&gt; void* function_pointer_cast(T functionPointer) { return (void*)functionPointer; }

And then later we could change it to work only with function pointers if we can get that to happen. Not sure about the name, but I&apos;d like to avoid having to modify so many different sites to deal with this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145549</commentid>
    <comment_count>10</comment_count>
      <attachid>39190</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-08 14:47:34 -0700</bug_when>
    <thetext>Comment on attachment 39190
proposed patch.

r- based on Darin&apos;s comment above.  Introduction of a function to do this would be a better solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154262</commentid>
    <comment_count>11</comment_count>
      <attachid>41086</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-10-12 22:21:28 -0700</bug_when>
    <thetext>Created attachment 41086
2nd try

Darin, Eric thanks for the feedback.

It seems to me that existing FunctionPtr class in assembler/MacroAssemblerCodeRef.h could be the single place where we could special-case for RVCT, instead of sprinkling the C-style casts all over - as Darin suggested. 

SunSpider reports no change in JIT mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154343</commentid>
    <comment_count>12</comment_count>
      <attachid>41086</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-13 08:54:19 -0700</bug_when>
    <thetext>Comment on attachment 41086
2nd try

Looks much better!

&gt; +        Change reinterpret_cast&lt;void*&gt; to regular C style (void*) cast 
&gt; +        for the ARM RVCT compiler.
&gt; +
&gt; +        * assembler/MacroAssemblerCodeRef.h:
&gt; +        (JSC::FunctionPtr::FunctionPtr):
&gt; +        * jit/JITOpcodes.cpp:
&gt; +        * jit/JITStubCall.h:
&gt; +        (JSC::JITStubCall::JITStubCall):
&gt; +        * jit/JITStubs.cpp:
&gt; +        (JSC::DEFINE_STUB_FUNCTION):

I believe this patch does not change the DEFINE_STUB_FUNCTION macro, nor is a macro something that&apos;s inside a namespace, so this is wrong. Please keep in mind that prepare-ChangeLog helps you write the change log, but you need to read it over and correct it if it&apos;s wrong. I think that per-file and per-function comments help make things clearer and I wish you would write those.

&gt; +#if COMPILER(RVCT)
&gt; +        : m_value((void*)(value))
&gt; +#else
&gt;          : m_value(reinterpret_cast&lt;void*&gt;(value))
&gt; +#endif

This needs a comment. It&apos;s not obvious why the compiler is relevant here.

&gt; -    move(ImmPtr(reinterpret_cast&lt;void*&gt;(ctiVMThrowTrampoline)), regT2);
&gt; +    move(ImmPtr(FunctionPtr(ctiVMThrowTrampoline).value()), regT2);

I&apos;m not sure I understand why you used value() here and executableAddress() elsewhere.

&gt;  #include &lt;wtf/Platform.h&gt;
&gt;  
&gt; +#include &quot;MacroAssemblerCodeRef.h&quot;

Since MacroAssemblerCodeRef.h already includes Platform.h you should replace the existing include with it rather than keeping the old include around.

&gt; -            m_jit-&gt;m_calls.append(CallRecord(call, m_jit-&gt;m_bytecodeIndex, m_stub));
&gt; +            m_jit-&gt;m_calls.append(CallRecord(call, m_jit-&gt;m_bytecodeIndex, m_stub.value()));

Same comment here.

I&apos;m going to say review+ with this, but it might be better to address the issues I mentioned first instead of landing it as-is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154431</commentid>
    <comment_count>13</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-10-13 14:34:01 -0700</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/49509 with the changes suggested by Darin. Thanks for the review again.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39190</attachid>
            <date>2009-09-08 08:41:53 -0700</date>
            <delta_ts>2009-10-12 22:21:28 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>patch_29034.txt</filename>
            <type>text/plain</type>
            <size>5210</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4MTU1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDktMDggIExhc3psbyBH
b21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFSTSBjb21waWxlciBkb2VzIG5vdCB1bmRlcnN0
YW5kIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yOTAzNAorCisgICAgICAgIENoYW5nZSByZWludGVycHJldF9j
YXN0PHZvaWQqPiB0byByZWd1bGFyIEMgc3R5bGUgKHZvaWQqKSBjYXN0LgorCisgICAgICAgICog
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oOgorICAgICAgICAoSlNDOjpGdW5jdGlv
blB0cjo6RnVuY3Rpb25QdHIpOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAg
ICAgKiBqaXQvSklUU3R1YkNhbGwuaDoKKyAgICAgICAgKEpTQzo6SklUU3R1YkNhbGw6OkpJVFN0
dWJDYWxsKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJ
TkVfU1RVQl9GVU5DVElPTik6CisKIDIwMDktMDktMDcgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBK
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCShy
ZXZpc2lvbiA0ODE1MykKKysrIEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckNvZGVSZWYuaAkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGU+CiAgICAgZXhwbGljaXQgRnVuY3Rpb25Q
dHIoRnVuY3Rpb25UeXBlKiB2YWx1ZSkKLSAgICAgICAgOiBtX3ZhbHVlKHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCo+KHZhbHVlKSkKKyAgICAgICAgOiBtX3ZhbHVlKCh2b2lkKikodmFsdWUpKQogICAg
IHsKICAgICAgICAgQVNTRVJUX1ZBTElEX0NPREVfUE9JTlRFUihtX3ZhbHVlKTsKICAgICB9Cklu
ZGV4OiBKYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCShyZXZpc2lvbiA0ODE1MykKKysrIEphdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcwLDcgKzI3
MCw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUNUSU1hY2hpbmVUcmFtcG8KICAgICBlbWl0
R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OlJldHVyblBDLCByZWdUMSk7
CiAgICAgbW92ZShJbW1QdHIoJmdsb2JhbERhdGEtPmV4Y2VwdGlvbkxvY2F0aW9uKSwgcmVnVDIp
OwogICAgIHN0b3JlUHRyKHJlZ1QxLCByZWdUMik7Ci0gICAgbW92ZShJbW1QdHIocmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4oY3RpVk1UaHJvd1RyYW1wb2xpbmUpKSwgcmVnVDIpOworICAgIG1vdmUo
SW1tUHRyKCh2b2lkKikoY3RpVk1UaHJvd1RyYW1wb2xpbmUpKSwgcmVnVDIpOwogICAgIGVtaXRH
ZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVyRnJhbWUsIGNhbGxG
cmFtZVJlZ2lzdGVyKTsKICAgICBwb2tlKGNhbGxGcmFtZVJlZ2lzdGVyLCBPQkpFQ1RfT0ZGU0VU
T0Yoc3RydWN0IEpJVFN0YWNrRnJhbWUsIGNhbGxGcmFtZSkgLyBzaXplb2YgKHZvaWQqKSk7CiAg
ICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4ocmVnVDIpOwpJbmRleDogSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJDYWxsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
aml0L0pJVFN0dWJDYWxsLmgJKHJldmlzaW9uIDQ4MTUzKQorKysgSmF2YVNjcmlwdENvcmUvaml0
L0pJVFN0dWJDYWxsLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgcHVibGljOgogICAgICAgICBKSVRTdHViQ2FsbChKSVQqIGppdCwgSlNPYmpl
Y3QqIChKSVRfU1RVQiAqc3R1YikoU1RVQl9BUkdTX0RFQ0xBUkFUSU9OKSkKICAgICAgICAgICAg
IDogbV9qaXQoaml0KQotICAgICAgICAgICAgLCBtX3N0dWIocmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4oc3R1YikpCisgICAgICAgICAgICAsIG1fc3R1Yigodm9pZCopKHN0dWIpKQogICAgICAgICAg
ICAgLCBtX3JldHVyblR5cGUoQ2VsbCkKICAgICAgICAgICAgICwgbV9zdGFja0luZGV4KHN0YWNr
SW5kZXhTdGFydCkKICAgICAgICAgewpAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICBKSVRTdHViQ2FsbChKSVQqIGppdCwgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciog
KEpJVF9TVFVCICpzdHViKShTVFVCX0FSR1NfREVDTEFSQVRJT04pKQogICAgICAgICAgICAgOiBt
X2ppdChqaXQpCi0gICAgICAgICAgICAsIG1fc3R1YihyZWludGVycHJldF9jYXN0PHZvaWQqPihz
dHViKSkKKyAgICAgICAgICAgICwgbV9zdHViKCh2b2lkKikoc3R1YikpCiAgICAgICAgICAgICAs
IG1fcmV0dXJuVHlwZShDZWxsKQogICAgICAgICAgICAgLCBtX3N0YWNrSW5kZXgoc3RhY2tJbmRl
eFN0YXJ0KQogICAgICAgICB7CkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgICAgIEpJVFN0dWJDYWxsKEpJVCogaml0LCB2b2lkKiAoSklUX1NUVUIgKnN0dWIpKFNUVUJf
QVJHU19ERUNMQVJBVElPTikpCiAgICAgICAgICAgICA6IG1faml0KGppdCkKLSAgICAgICAgICAg
ICwgbV9zdHViKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHN0dWIpKQorICAgICAgICAgICAgLCBt
X3N0dWIoKHZvaWQqKShzdHViKSkKICAgICAgICAgICAgICwgbV9yZXR1cm5UeXBlKFZvaWRQdHIp
CiAgICAgICAgICAgICAsIG1fc3RhY2tJbmRleChzdGFja0luZGV4U3RhcnQpCiAgICAgICAgIHsK
QEAgLTYwLDcgKzYwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgSklUU3R1YkNhbGwo
SklUKiBqaXQsIGludCAoSklUX1NUVUIgKnN0dWIpKFNUVUJfQVJHU19ERUNMQVJBVElPTikpCiAg
ICAgICAgICAgICA6IG1faml0KGppdCkKLSAgICAgICAgICAgICwgbV9zdHViKHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KHN0dWIpKQorICAgICAgICAgICAgLCBtX3N0dWIoKHZvaWQqKShzdHViKSkK
ICAgICAgICAgICAgICwgbV9yZXR1cm5UeXBlKEludCkKICAgICAgICAgICAgICwgbV9zdGFja0lu
ZGV4KHN0YWNrSW5kZXhTdGFydCkKICAgICAgICAgewpAQCAtNjgsNyArNjgsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBKSVRTdHViQ2FsbChKSVQqIGppdCwgYm9vbCAoSklUX1NUVUIg
KnN0dWIpKFNUVUJfQVJHU19ERUNMQVJBVElPTikpCiAgICAgICAgICAgICA6IG1faml0KGppdCkK
LSAgICAgICAgICAgICwgbV9zdHViKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHN0dWIpKQorICAg
ICAgICAgICAgLCBtX3N0dWIoKHZvaWQqKShzdHViKSkKICAgICAgICAgICAgICwgbV9yZXR1cm5U
eXBlKEludCkKICAgICAgICAgICAgICwgbV9zdGFja0luZGV4KHN0YWNrSW5kZXhTdGFydCkKICAg
ICAgICAgewpAQCAtNzYsNyArNzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBKSVRT
dHViQ2FsbChKSVQqIGppdCwgdm9pZCAoSklUX1NUVUIgKnN0dWIpKFNUVUJfQVJHU19ERUNMQVJB
VElPTikpCiAgICAgICAgICAgICA6IG1faml0KGppdCkKLSAgICAgICAgICAgICwgbV9zdHViKHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHN0dWIpKQorICAgICAgICAgICAgLCBtX3N0dWIoKHZvaWQq
KShzdHViKSkKICAgICAgICAgICAgICwgbV9yZXR1cm5UeXBlKFZvaWQpCiAgICAgICAgICAgICAs
IG1fc3RhY2tJbmRleChzdGFja0luZGV4U3RhcnQpCiAgICAgICAgIHsKQEAgLTg1LDcgKzg1LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgSklUU3R1
YkNhbGwoSklUKiBqaXQsIEVuY29kZWRKU1ZhbHVlIChKSVRfU1RVQiAqc3R1YikoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSkKICAgICAgICAgICAgIDogbV9qaXQoaml0KQotICAgICAgICAgICAgLCBt
X3N0dWIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3R1YikpCisgICAgICAgICAgICAsIG1fc3R1
Yigodm9pZCopKHN0dWIpKQogICAgICAgICAgICAgLCBtX3JldHVyblR5cGUoVmFsdWUpCiAgICAg
ICAgICAgICAsIG1fc3RhY2tJbmRleChzdGFja0luZGV4U3RhcnQpCiAgICAgICAgIHsKSW5kZXg6
IEphdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlw
dENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gNDgxNTMpCisrKyBKYXZhU2NyaXB0Q29y
ZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjY2LDcgKzI2NjYsNyBAQCBE
RUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwgb3BfCiAKICAgICBpZiAoIWhhbmRs
ZXIpIHsKICAgICAgICAgKnN0YWNrRnJhbWUuZXhjZXB0aW9uID0gZXhjZXB0aW9uVmFsdWU7Ci0g
ICAgICAgIFNUVUJfU0VUX1JFVFVSTl9BRERSRVNTKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGN0
aU9wVGhyb3dOb3RDYXVnaHQpKTsKKyAgICAgICAgU1RVQl9TRVRfUkVUVVJOX0FERFJFU1MoKHZv
aWQqKShjdGlPcFRocm93Tm90Q2F1Z2h0KSk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOdWxsKCkpOwogICAgIH0KIAo=
</data>
<flag name="review"
          id="20251"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41086</attachid>
            <date>2009-10-12 22:21:28 -0700</date>
            <delta_ts>2009-10-13 14:33:17 -0700</delta_ts>
            <desc>2nd try</desc>
            <filename>patch_29034_3.txt</filename>
            <type>text/plain</type>
            <size>6669</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ5NDg5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMTAtMTIgIExhc3psbyBH
b21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFSTSBjb21waWxlciBkb2VzIG5vdCB1bmRlcnN0
YW5kIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yOTAzNAorCisgICAgICAgIENoYW5nZSByZWludGVycHJldF9j
YXN0PHZvaWQqPiB0byByZWd1bGFyIEMgc3R5bGUgKHZvaWQqKSBjYXN0IAorICAgICAgICBmb3Ig
dGhlIEFSTSBSVkNUIGNvbXBpbGVyLgorCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQ29kZVJlZi5oOgorICAgICAgICAoSlNDOjpGdW5jdGlvblB0cjo6RnVuY3Rpb25QdHIpOgor
ICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKiBqaXQvSklUU3R1YkNhbGwu
aDoKKyAgICAgICAgKEpTQzo6SklUU3R1YkNhbGw6OkpJVFN0dWJDYWxsKToKKyAgICAgICAgKiBq
aXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6CisK
IDIwMDktMTAtMTEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZS1lbmFibGUgdGhlIEpJVC4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckNvZGVSZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgJKHJldmlzaW9uIDQ5NDIyKQorKysgSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC02
OSw3ICs2OSwxMSBAQCBwdWJsaWM6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5
cGU+CiAgICAgZXhwbGljaXQgRnVuY3Rpb25QdHIoRnVuY3Rpb25UeXBlKiB2YWx1ZSkKKyNpZiBD
T01QSUxFUihSVkNUKQorICAgICAgICA6IG1fdmFsdWUoKHZvaWQqKSh2YWx1ZSkpCisjZWxzZQog
ICAgICAgICA6IG1fdmFsdWUocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odmFsdWUpKQorI2VuZGlm
CiAgICAgewogICAgICAgICBBU1NFUlRfVkFMSURfQ09ERV9QT0lOVEVSKG1fdmFsdWUpOwogICAg
IH0KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHJldmlzaW9uIDQ5NDIyKQorKysg
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjcs
NyArMjY3LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlQ1RJTWFjaGluZVRyYW1wbwogICAg
IGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMsIHJl
Z1QxKTsKICAgICBtb3ZlKEltbVB0cigmZ2xvYmFsRGF0YS0+ZXhjZXB0aW9uTG9jYXRpb24pLCBy
ZWdUMik7CiAgICAgc3RvcmVQdHIocmVnVDEsIHJlZ1QyKTsKLSAgICBtb3ZlKEltbVB0cihyZWlu
dGVycHJldF9jYXN0PHZvaWQqPihjdGlWTVRocm93VHJhbXBvbGluZSkpLCByZWdUMik7CisgICAg
bW92ZShJbW1QdHIoRnVuY3Rpb25QdHIoY3RpVk1UaHJvd1RyYW1wb2xpbmUpLnZhbHVlKCkpLCBy
ZWdUMik7CiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpD
YWxsZXJGcmFtZSwgY2FsbEZyYW1lUmVnaXN0ZXIpOwogICAgIHBva2UoY2FsbEZyYW1lUmVnaXN0
ZXIsIE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgY2FsbEZyYW1lKSAvIHNp
emVvZiAodm9pZCopKTsKICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihyZWdU
Mik7CkBAIC0xNzQ5LDcgKzE3NDksNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElNYWNo
aW5lVHJhbXBvCiAgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxl
OjpSZXR1cm5QQywgcmVnVDEpOwogICAgIG1vdmUoSW1tUHRyKCZnbG9iYWxEYXRhLT5leGNlcHRp
b25Mb2NhdGlvbiksIHJlZ1QyKTsKICAgICBzdG9yZVB0cihyZWdUMSwgcmVnVDIpOwotICAgIG1v
dmUoSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGN0aVZNVGhyb3dUcmFtcG9saW5lKSks
IHJlZ1QyKTsKKyAgICBtb3ZlKEltbVB0cihGdW5jdGlvblB0cihjdGlWTVRocm93VHJhbXBvbGlu
ZSkudmFsdWUoKSksIHJlZ1QyKTsKICAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihS
ZWdpc3RlckZpbGU6OkNhbGxlckZyYW1lLCBjYWxsRnJhbWVSZWdpc3Rlcik7CiAgICAgcG9rZShj
YWxsRnJhbWVSZWdpc3RlciwgT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCBj
YWxsRnJhbWUpIC8gc2l6ZW9mICh2b2lkKikpOwogICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVm
b3JlUmV0dXJuKHJlZ1QyKTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViQ2FsbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViQ2FsbC5oCShyZXZpc2lv
biA0OTQyMikKKysrIEphdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHViQ2FsbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KIAorI2lu
Y2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgorCiAjaWYgRU5BQkxFKEpJVCkKIAogbmFt
ZXNwYWNlIEpTQyB7CkBAIC0zNiw3ICszOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1Ymxp
YzoKICAgICAgICAgSklUU3R1YkNhbGwoSklUKiBqaXQsIEpTT2JqZWN0KiAoSklUX1NUVUIgKnN0
dWIpKFNUVUJfQVJHU19ERUNMQVJBVElPTikpCiAgICAgICAgICAgICA6IG1faml0KGppdCkKLSAg
ICAgICAgICAgICwgbV9zdHViKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHN0dWIpKQorICAgICAg
ICAgICAgLCBtX3N0dWIoc3R1YikKICAgICAgICAgICAgICwgbV9yZXR1cm5UeXBlKENlbGwpCiAg
ICAgICAgICAgICAsIG1fc3RhY2tJbmRleChzdGFja0luZGV4U3RhcnQpCiAgICAgICAgIHsKQEAg
LTQ0LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgSklUU3R1YkNhbGwoSklU
KiBqaXQsIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIChKSVRfU1RVQiAqc3R1YikoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKSkKICAgICAgICAgICAgIDogbV9qaXQoaml0KQotICAgICAgICAgICAgLCBt
X3N0dWIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3R1YikpCisgICAgICAgICAgICAsIG1fc3R1
YihzdHViKQogICAgICAgICAgICAgLCBtX3JldHVyblR5cGUoQ2VsbCkKICAgICAgICAgICAgICwg
bV9zdGFja0luZGV4KHN0YWNrSW5kZXhTdGFydCkKICAgICAgICAgewpAQCAtNTIsNyArNTQsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBKSVRTdHViQ2FsbChKSVQqIGppdCwgdm9pZCog
KEpJVF9TVFVCICpzdHViKShTVFVCX0FSR1NfREVDTEFSQVRJT04pKQogICAgICAgICAgICAgOiBt
X2ppdChqaXQpCi0gICAgICAgICAgICAsIG1fc3R1YihyZWludGVycHJldF9jYXN0PHZvaWQqPihz
dHViKSkKKyAgICAgICAgICAgICwgbV9zdHViKHN0dWIpCiAgICAgICAgICAgICAsIG1fcmV0dXJu
VHlwZShWb2lkUHRyKQogICAgICAgICAgICAgLCBtX3N0YWNrSW5kZXgoc3RhY2tJbmRleFN0YXJ0
KQogICAgICAgICB7CkBAIC02MCw3ICs2Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAg
IEpJVFN0dWJDYWxsKEpJVCogaml0LCBpbnQgKEpJVF9TVFVCICpzdHViKShTVFVCX0FSR1NfREVD
TEFSQVRJT04pKQogICAgICAgICAgICAgOiBtX2ppdChqaXQpCi0gICAgICAgICAgICAsIG1fc3R1
YihyZWludGVycHJldF9jYXN0PHZvaWQqPihzdHViKSkKKyAgICAgICAgICAgICwgbV9zdHViKHN0
dWIpCiAgICAgICAgICAgICAsIG1fcmV0dXJuVHlwZShJbnQpCiAgICAgICAgICAgICAsIG1fc3Rh
Y2tJbmRleChzdGFja0luZGV4U3RhcnQpCiAgICAgICAgIHsKQEAgLTY4LDcgKzcwLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICAgICAgSklUU3R1YkNhbGwoSklUKiBqaXQsIGJvb2wgKEpJVF9T
VFVCICpzdHViKShTVFVCX0FSR1NfREVDTEFSQVRJT04pKQogICAgICAgICAgICAgOiBtX2ppdChq
aXQpCi0gICAgICAgICAgICAsIG1fc3R1YihyZWludGVycHJldF9jYXN0PHZvaWQqPihzdHViKSkK
KyAgICAgICAgICAgICwgbV9zdHViKHN0dWIpCiAgICAgICAgICAgICAsIG1fcmV0dXJuVHlwZShJ
bnQpCiAgICAgICAgICAgICAsIG1fc3RhY2tJbmRleChzdGFja0luZGV4U3RhcnQpCiAgICAgICAg
IHsKQEAgLTc2LDcgKzc4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgSklUU3R1YkNh
bGwoSklUKiBqaXQsIHZvaWQgKEpJVF9TVFVCICpzdHViKShTVFVCX0FSR1NfREVDTEFSQVRJT04p
KQogICAgICAgICAgICAgOiBtX2ppdChqaXQpCi0gICAgICAgICAgICAsIG1fc3R1YihyZWludGVy
cHJldF9jYXN0PHZvaWQqPihzdHViKSkKKyAgICAgICAgICAgICwgbV9zdHViKHN0dWIpCiAgICAg
ICAgICAgICAsIG1fcmV0dXJuVHlwZShWb2lkKQogICAgICAgICAgICAgLCBtX3N0YWNrSW5kZXgo
c3RhY2tJbmRleFN0YXJ0KQogICAgICAgICB7CkBAIC04NSw3ICs4Nyw3IEBAIG5hbWVzcGFjZSBK
U0MgewogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgICAgIEpJVFN0dWJDYWxsKEpJVCogaml0
LCBFbmNvZGVkSlNWYWx1ZSAoSklUX1NUVUIgKnN0dWIpKFNUVUJfQVJHU19ERUNMQVJBVElPTikp
CiAgICAgICAgICAgICA6IG1faml0KGppdCkKLSAgICAgICAgICAgICwgbV9zdHViKHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCo+KHN0dWIpKQorICAgICAgICAgICAgLCBtX3N0dWIoc3R1YikKICAgICAg
ICAgICAgICwgbV9yZXR1cm5UeXBlKFZhbHVlKQogICAgICAgICAgICAgLCBtX3N0YWNrSW5kZXgo
c3RhY2tJbmRleFN0YXJ0KQogICAgICAgICB7CkBAIC0xNzEsNyArMTczLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgICAgIG1faml0LT5yZXN0b3JlQXJndW1lbnRSZWZlcmVuY2UoKTsK
ICAgICAgICAgICAgIEpJVDo6Q2FsbCBjYWxsID0gbV9qaXQtPmNhbGwoKTsKLSAgICAgICAgICAg
IG1faml0LT5tX2NhbGxzLmFwcGVuZChDYWxsUmVjb3JkKGNhbGwsIG1faml0LT5tX2J5dGVjb2Rl
SW5kZXgsIG1fc3R1YikpOworICAgICAgICAgICAgbV9qaXQtPm1fY2FsbHMuYXBwZW5kKENhbGxS
ZWNvcmQoY2FsbCwgbV9qaXQtPm1fYnl0ZWNvZGVJbmRleCwgbV9zdHViLnZhbHVlKCkpKTsKIAog
I2lmIEVOQUJMRShPUENPREVfU0FNUExJTkcpCiAgICAgICAgICAgICBpZiAobV9qaXQtPm1fYnl0
ZWNvZGVJbmRleCAhPSAodW5zaWduZWQpLTEpCkBAIC0yMjUsNyArMjI3LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgc3RhY2tJbmRleFN0YXJ0ID0gMTsg
Ly8gSW5kZXggMCBpcyByZXNlcnZlZCBmb3IgcmVzdG9yZUFyZ3VtZW50UmVmZXJlbmNlKCkuCiAK
ICAgICAgICAgSklUKiBtX2ppdDsKLSAgICAgICAgdm9pZCogbV9zdHViOworICAgICAgICBGdW5j
dGlvblB0ciBtX3N0dWI7CiAgICAgICAgIGVudW0geyBWb2lkLCBWb2lkUHRyLCBJbnQsIFZhbHVl
LCBDZWxsIH0gbV9yZXR1cm5UeXBlOwogICAgICAgICBzaXplX3QgbV9zdGFja0luZGV4OwogICAg
IH07CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJldmlzaW9uIDQ5NDIyKQorKysgSmF2
YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY1Niw3ICsy
NjU2LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wXwogCiAgICAg
aWYgKCFoYW5kbGVyKSB7CiAgICAgICAgICpzdGFja0ZyYW1lLmV4Y2VwdGlvbiA9IGV4Y2VwdGlv
blZhbHVlOwotICAgICAgICBTVFVCX1NFVF9SRVRVUk5fQUREUkVTUyhyZWludGVycHJldF9jYXN0
PHZvaWQqPihjdGlPcFRocm93Tm90Q2F1Z2h0KSk7CisgICAgICAgIFNUVUJfU0VUX1JFVFVSTl9B
RERSRVNTKEZ1bmN0aW9uUHRyKGN0aU9wVGhyb3dOb3RDYXVnaHQpLmV4ZWN1dGFibGVBZGRyZXNz
KCkpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKICAgICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>