<?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>113091</bug_id>
          
          <creation_ts>2013-03-22 13:25:13 -0700</creation_ts>
          <short_desc>[V8] IndexedDB: Exceptions thrown inconsistently for non-cloneable values</short_desc>
          <delta_ts>2013-04-01 12:37:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>113689</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>haraken</cc>
    
    <cc>michael</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>861796</commentid>
    <comment_count>0</comment_count>
      <attachid>194623</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-22 13:25:13 -0700</bug_when>
    <thetext>Created attachment 194623
Repro case

Attached repro &quot;clone_no_exception.html&quot; does the following twice:

* Creates a new database and object store
* Attempts to put a non-cloneable value into it

Watch the console for output. For some reason, the first attempt doesn&apos;t throw!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861798</commentid>
    <comment_count>1</comment_count>
      <attachid>194624</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-22 13:26:55 -0700</bug_when>
    <thetext>Created attachment 194624
Second repro case

For more fun, try the attachment &quot;clone_double_throw.html&quot;. Again, watch the console.

This tries to add with both an invalid key (DataError) and an invalid value (DataCloneError) in the same call. The DataError is thrown and caught as expected.

Unexpectedly, the *console* reports an uncaught DataCloneError. It&apos;s like the call is generating two exceptions simultaneously!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861828</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-22 14:01:10 -0700</bug_when>
    <thetext>I should clarify that the above steps repro in Chrome. I&apos;m assuming there&apos;s a bug in the bindings code somewhere and/or the IDB usage of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861852</commentid>
    <comment_count>3</comment_count>
      <attachid>194633</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-22 14:37:13 -0700</bug_when>
    <thetext>Created attachment 194633
layout test

A layout test version of the &quot;first exception not thrown&quot;. Assumes running from LayoutTests/storage/indexeddb</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861899</commentid>
    <comment_count>4</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-22 15:19:11 -0700</bug_when>
    <thetext>Applying this patch to IDBObjectStore resolves the first issue, but it seems like it should not be necessary.

-    RefPtr&lt;SerializedScriptValue&gt; serializedValue = value.serialize(state);
-    if (state-&gt;hadException()) {
+    bool didThrow = false;
+    RefPtr&lt;SerializedScriptValue&gt; serializedValue = value.serialize(state, 0, 0, didThrow);
+    if (didThrow || state-&gt;hadException()) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861909</commentid>
    <comment_count>5</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-22 15:27:18 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Applying this patch to IDBObjectStore resolves the first issue, but it seems like it should not be necessary.
&gt; 
&gt; -    RefPtr&lt;SerializedScriptValue&gt; serializedValue = value.serialize(state);
&gt; -    if (state-&gt;hadException()) {
&gt; +    bool didThrow = false;
&gt; +    RefPtr&lt;SerializedScriptValue&gt; serializedValue = value.serialize(state, 0, 0, didThrow);
&gt; +    if (didThrow || state-&gt;hadException()) {

Actually, prior to wkrev.com/128379 the conversion to SerializedScriptValue took place in the generated binding code rather than via ScriptValue. That code only looked at the &quot;didThrow&quot; out param from serialize().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861918</commentid>
    <comment_count>6</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-22 15:39:06 -0700</bug_when>
    <thetext>Second case spews this in a debug build:

#
# Fatal error in ../../v8/src/execution.cc, line 215
# CHECK(isolate-&gt;external_caught_exception()) failed
#</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861928</commentid>
    <comment_count>7</comment_count>
      <attachid>194648</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-22 15:53:07 -0700</bug_when>
    <thetext>Created attachment 194648
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861931</commentid>
    <comment_count>8</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-22 15:55:11 -0700</bug_when>
    <thetext>Okay, here&apos;s a correct patch.

It looks uglier and less intuitive than the previous code, which means (unsurprisingly) that the SSV API isn&apos;t as clear as it should be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861935</commentid>
    <comment_count>9</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-22 16:02:44 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Okay, here&apos;s a correct patch.
&gt; 
&gt; It looks uglier and less intuitive than the previous code, which means (unsurprisingly) that the SSV API isn&apos;t as clear as it should be.

The fact that we have both didThrow and state-&gt;hadException() is confusing. Would it be hard to fix the confusing API now? If it&apos;s hard, I&apos;m willing to go with your current patch as an immediate fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861948</commentid>
    <comment_count>10</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-22 16:21:05 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Okay, here&apos;s a correct patch.
&gt; &gt; 
&gt; &gt; It looks uglier and less intuitive than the previous code, which means (unsurprisingly) that the SSV API isn&apos;t as clear as it should be.
&gt; 
&gt; The fact that we have both didThrow and state-&gt;hadException() is confusing. Would it be hard to fix the confusing API now? If it&apos;s hard, I&apos;m willing to go with your current patch as an immediate fix.

I was hoping you could tell me. :) I&apos;ll dig in a bit more. 

V8ThrowException::setDOMException() (called when didThrow is set to true in SSV) is actually calling into v8::ThrowException, whereas state-&gt;hadException() is merely keeping an exception around so it can later be thrown by the generated binding code in a handful of cases.

So... one possibility for unifying them is to pass a ScriptState into SerializedScriptValue and ensure it only registers an exception there. (That would require reworking V8ThrowException since that&apos;s where the DOMException mapping happens.) That seems... non-trivial.

Another is making ScriptState more general so it&apos;s notion of &quot;was there an exception?&quot; handles both pending exceptions (like it has now) and exceptions already thrown w/in V8. The latter seems like it would require getting access to a wrapping tryCatch block and rethrowing on exit. Also a fair bit of work.

Any advice? I think I&apos;d need to better understand the intent of ScriptState to know how to proceed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>862166</commentid>
    <comment_count>11</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-23 00:48:17 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Another is making ScriptState more general so it&apos;s notion of &quot;was there an exception?&quot; handles both pending exceptions (like it has now) and exceptions already thrown w/in V8. The latter seems like it would require getting access to a wrapping tryCatch block and rethrowing on exit. Also a fair bit of work.

This approach sounds good to me (although I&apos;ve not studied how much work will be needed to accomplish the work).


&gt; Any advice? I think I&apos;d need to better understand the intent of ScriptState to know how to proceed.

Ideally, we should have ScriptState piggyback all information about a script state, including an exception thrown inside WebKit. Thus, making ScriptState more general sounds like a reasonable approach to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863949</commentid>
    <comment_count>12</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-26 13:19:06 -0700</bug_when>
    <thetext>I&apos;m probably not going to get to a refactor any time soon. It looks like ScriptState&apos;s use is quite limited at the moment and I don&apos;t see ways for it to introspect the engine state without making quite intrusive changes into the generated binding code; passing it in to deserialize() is probably less impactful, but still quite a big change to SSV.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866267</commentid>
    <comment_count>13</comment_count>
      <attachid>195771</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-29 11:52:36 -0700</bug_when>
    <thetext>Created attachment 195771
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866268</commentid>
    <comment_count>14</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-29 11:53:05 -0700</bug_when>
    <thetext>haraken@ - I added a FIXME, but I think we should land this now and tackle SSV/ScriptState refactoring separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866270</commentid>
    <comment_count>15</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-03-29 11:53:35 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; haraken@ - I added a FIXME, but I think we should land this now and tackle SSV/ScriptState refactoring separately.

Oh, and: r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866286</commentid>
    <comment_count>16</comment_count>
      <attachid>195771</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-29 12:10:45 -0700</bug_when>
    <thetext>Comment on attachment 195771
Patch

&gt; I added a FIXME, but I think we should land this now and tackle SSV/ScriptState refactoring separately.

Sounds reasonable to me. Let&apos;s fix a bug first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866304</commentid>
    <comment_count>17</comment_count>
      <attachid>195771</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-29 12:34:55 -0700</bug_when>
    <thetext>Comment on attachment 195771
Patch

Clearing flags on attachment: 195771

Committed r147241: &lt;http://trac.webkit.org/changeset/147241&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866305</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-29 12:34:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>194623</attachid>
            <date>2013-03-22 13:25:13 -0700</date>
            <delta_ts>2013-03-22 13:25:13 -0700</delta_ts>
            <desc>Repro case</desc>
            <filename>clone_no_exception.html</filename>
            <type>text/html</type>
            <size>458</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxzY3JpcHQ+Cgp2YXIgTk9OX0NMT05FQUJMRSA9IHNlbGY7CgppbmRl
eGVkREIub3BlbigiZGIxIiArIERhdGUubm93KCkpLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKICAgIHRyeSB7IGUudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUi
KS5wdXQoTk9OX0NMT05FQUJMRSwgMCk7IH0gY2F0Y2ggKGV4KSB7IGNvbnNvbGUubG9nKCJ0aHJl
dzogIiArIGV4Lm5hbWUpOyB9Cn0KCmluZGV4ZWREQi5vcGVuKCJkYjIiICsgRGF0ZS5ub3coKSku
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewogICAgdHJ5IHsgZS50YXJnZXQucmVzdWx0
LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpLnB1dChOT05fQ0xPTkVBQkxFLCAwKTsgfSBjYXRj
aCAoZXgpIHsgY29uc29sZS5sb2coInRocmV3OiAiICsgZXgubmFtZSk7IH0KfTsKCjwvc2NyaXB0
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>194624</attachid>
            <date>2013-03-22 13:26:55 -0700</date>
            <delta_ts>2013-03-22 13:26:55 -0700</delta_ts>
            <desc>Second repro case</desc>
            <filename>clone_double_throw.html</filename>
            <type>text/html</type>
            <size>292</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxzY3JpcHQ+Cgp2YXIgTk9OX0NMT05FQUJMRSA9IHNlbGY7CnZhciBJ
TlZBTElEX0tFWSA9IHt9OwoKaW5kZXhlZERCLm9wZW4oImRiMSIgKyBEYXRlLm5vdygpKS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CiAgICB0cnkgeyBlLnRhcmdldC5yZXN1bHQuY3Jl
YXRlT2JqZWN0U3RvcmUoInN0b3JlIikucHV0KE5PTl9DTE9ORUFCTEUsIElOVkFMSURfS0VZKTsg
fSBjYXRjaCAoZXgpIHsgY29uc29sZS5sb2coInRocmV3OiAiICsgZXgubmFtZSk7IH0KfQoKPC9z
Y3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>194633</attachid>
            <date>2013-03-22 14:37:13 -0700</date>
            <delta_ts>2013-03-22 14:37:13 -0700</delta_ts>
            <desc>layout test</desc>
            <filename>clone-exception.html</filename>
            <type>text/html</type>
            <size>1069</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48
L3NjcmlwdD4KPHNjcmlwdD4KCmRlc2NyaXB0aW9uKCJFbnN1cmUgRGF0YUNsb25lRXJyb3IgaXMg
Y29uc2lzdGVudGx5IHRocm93biBieSBJbmRleGVkREIgbWV0aG9kcyIpOwoKdmFyIE5PTl9DTE9O
RUFCTEUgPSBzZWxmOwoKc2V0REJOYW1lRnJvbVBhdGgoKTsKZG9GaXJzdE9wZW4oKTsKCmZ1bmN0
aW9uIGRvRmlyc3RPcGVuKCkKewogICAgcHJlYW1ibGUoKTsKICAgIHJlcXVlc3QgPSBldmFsQW5k
TG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUgKyAnMScpIik7CiAgICByZXF1ZXN0Lm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uIG9uVXBncmFkZU5lZWRlZChlKSB7CiAgICAgICAgcHJlYW1ibGUo
KTsKICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKICAgICAgICBldmFsQW5kRXhwZWN0RXhj
ZXB0aW9uKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoTk9OX0NMT05FQUJMRSwg
MCk7IiwgIjI1IiwgIidEYXRhQ2xvbmVFcnJvciciKTsKICAgICAgICBkb1NlY29uZE9wZW4oKTsK
ICAgIH07Cn0KCmZ1bmN0aW9uIGRvU2Vjb25kT3BlbigpCnsKICAgIHByZWFtYmxlKCk7CiAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lICsgJzInKSIpOwogICAg
cmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiBvblVwZ3JhZGVOZWVkZWQoZSkgewog
ICAgICAgIHByZWFtYmxlKCk7CiAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CiAgICAgICAg
ZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykucHV0
KE5PTl9DTE9ORUFCTEUsIDApOyIsICIyNSIsICInRGF0YUNsb25lRXJyb3InIik7CiAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CiAgICB9Owp9Cgo8L3NjcmlwdD4KPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194648</attachid>
            <date>2013-03-22 15:53:07 -0700</date>
            <delta_ts>2013-03-29 11:52:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113091-20130322154854.patch</filename>
            <type>text/plain</type>
            <size>5611</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2NTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYxMzE5NTU0MDdkY2I2
NDZlNWQxOTZiZjM0NmVlMmJiZjMzN2MxMi4uNzQzYmQxNGIxNThjMzNkM2YxY2QzZjY5NGIxMDky
M2Q2OGI5Yzk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTAzLTIyICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Y4XSBJbmRleGVkREI6
IEV4Y2VwdGlvbnMgdGhyb3duIGluY29uc2lzdGVudGx5IGZvciBub24tY2xvbmVhYmxlIHZhbHVl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzMDkx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXNrIHRo
ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWUgZGlyZWN0bHkgaWYgaXQgZmFpbGVkIHRvIGNsb25lLiBJ
ZiBzbywgZG9uJ3QKKyAgICAgICAgc2V0IGFuIGV4Y2VwdGlvbiAtIG9uZSB3YXMgYWxyZWFkeSBz
ZXQgc28gbGV0IHRoYXQgYmUgcHJvY2Vzc2VkIG5vcm1hbGx5LgorCisgICAgICAgIFRlc3Q6IHN0
b3JhZ2UvaW5kZXhlZGRiL2Nsb25lLWV4Y2VwdGlvbi5odG1sCisKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmpl
Y3RTdG9yZTo6cHV0KToKKwogMjAxMy0wMy0yMiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3
LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0NjUz
NCBhbmQgcjE0NjU2NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9iamVjdFN0b3JlLmNwcAppbmRleCA1ODkwZWMzN2ZjMWMyNTdkZWFkMmZmZTVmZWU4NjEz
N2UwN2JlNTIzLi4xMDk2OTZjM2JmODI4NDUwNjEzNGY2MzZiYzljYjU0MjQ2ZTA2YjVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUu
Y3BwCkBAIC0xNjgsOSArMTY4LDEwIEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0
U3RvcmU6OnB1dChJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQogCi0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2Vy
aWFsaXplZFZhbHVlID0gdmFsdWUuc2VyaWFsaXplKHN0YXRlKTsKLSAgICBpZiAoc3RhdGUtPmhh
ZEV4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRhdGFD
bG9uZUVycm9yOworICAgIGJvb2wgZGlkVGhyb3cgPSBmYWxzZTsKKyAgICBSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkVmFsdWUgPSB2YWx1ZS5zZXJpYWxpemUoc3RhdGUs
IDAsIDAsIGRpZFRocm93KTsKKyAgICBpZiAoZGlkVGhyb3cpIHsKKyAgICAgICAgLy8gU2V0dGlu
ZyBhbiBleHBsaWNpdCBFeGNlcHRpb25Db2RlIGhlcmUgd291bGQgZGVmZXIgaGFuZGxpbmcgdGhl
IGFscmVhZHkgdGhyb3duIGV4Y2VwdGlvbi4KICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMmFkNTE0NGVkZjcwYzU1Zjc3YzVhMGQ5MTU1ZDU0YTM0MGZjYzM1YS4uZTExNWNhMjBj
MmUxNTE4NGUzMGFlMzg4YmFhY2U0Y2VjOTk3NGJmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDEzLTAzLTIyICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
W1Y4XSBJbmRleGVkREI6IEV4Y2VwdGlvbnMgdGhyb3duIGluY29uc2lzdGVudGx5IGZvciBub24t
Y2xvbmVhYmxlIHZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEzMDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jbG9uZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jbG9uZS1leGNlcHRpb24uaHRt
bDogQWRkZWQuCisKIDIwMTMtMDMtMjIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDY1MzQgYW5k
IHIxNDY1NjUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jbG9u
ZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
Y2xvbmUtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Y2ZlM2Q1NTI4ZTA3OWM2
OTc4ZTRiYTcyNzAwOGE4MTBlMWZkNzdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvY2xvbmUtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDM3IEBACitFbnN1cmUgRGF0YUNsb25lRXJyb3IgaXMgY29uc2lzdGVudGx5IHRocm93biBieSBJ
bmRleGVkREIgbWV0aG9kcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworZGJuYW1l
ID0gImNsb25lLWV4Y2VwdGlvbi5odG1sIgorCitkb0ZpcnN0T3BlbigpOgoraW5kZXhlZERCLm9w
ZW4oZGJuYW1lICsgJzEnKQorCitvblVwZ3JhZGVOZWVkZWQoKToKK0V4cGVjdGluZyBleGNlcHRp
b24gZnJvbSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoTk9OX0NMT05FQUJMRSwg
MCk7CitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIDI1CitQQVNTIGVu
YW1lIGlzICdEYXRhQ2xvbmVFcnJvcicKKworZG9TZWNvbmRPcGVuKCk6CitpbmRleGVkREIub3Bl
bihkYm5hbWUgKyAnMicpCisKK29uVXBncmFkZU5lZWRlZCgpOgorRXhwZWN0aW5nIGV4Y2VwdGlv
biBmcm9tIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpLnB1dChOT05fQ0xPTkVBQkxFLCAw
KTsKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgMjUKK1BBU1MgZW5h
bWUgaXMgJ0RhdGFDbG9uZUVycm9yJworCitkb1RoaXJkT3BlbigpOgoraW5kZXhlZERCLm9wZW4o
ZGJuYW1lICsgJzMnKQorCitvblVwZ3JhZGVOZWVkZWQoKToKK0V4cGVjdGluZyBleGNlcHRpb24g
ZnJvbSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoTk9OX0NMT05FQUJMRSwgSU5W
QUxJRF9LRVkpOworUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyAyNQor
UEFTUyBlbmFtZSBpcyAnRGF0YUNsb25lRXJyb3InCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvY2xvbmUtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9jbG9uZS1leGNlcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDk3OWIwZmNhYzYyM2Jk
MTMxYTcxZjRlYzM0ZDkyOWE5MzEwZTNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvY2xvbmUtZXhjZXB0aW9uLmh0bWwKQEAgLTAsMCArMSw1MSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIkVuc3VyZSBEYXRhQ2xvbmVFcnJv
ciBpcyBjb25zaXN0ZW50bHkgdGhyb3duIGJ5IEluZGV4ZWREQiBtZXRob2RzIik7CisKK3ZhciBO
T05fQ0xPTkVBQkxFID0gc2VsZjsKK3ZhciBJTlZBTElEX0tFWSA9IHt9OworCitzZXREQk5hbWVG
cm9tUGF0aCgpOworZG9GaXJzdE9wZW4oKTsKKworZnVuY3Rpb24gZG9GaXJzdE9wZW4oKQorewor
ICAgIHByZWFtYmxlKCk7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVu
KGRibmFtZSArICcxJykiKTsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
IG9uVXBncmFkZU5lZWRlZChlKSB7CisgICAgICAgIHByZWFtYmxlKCk7CisgICAgICAgIGRiID0g
ZS50YXJnZXQucmVzdWx0OworICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi5jcmVh
dGVPYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoTk9OX0NMT05FQUJMRSwgMCk7IiwgIjI1IiwgIidE
YXRhQ2xvbmVFcnJvciciKTsKKyAgICAgICAgZG9TZWNvbmRPcGVuKCk7CisgICAgfTsKK30KKwor
ZnVuY3Rpb24gZG9TZWNvbmRPcGVuKCkKK3sKKyAgICBwcmVhbWJsZSgpOworICAgIHJlcXVlc3Qg
PSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUgKyAnMicpIik7CisgICAgcmVxdWVz
dC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiBvblVwZ3JhZGVOZWVkZWQoZSkgeworICAgICAg
ICBwcmVhbWJsZSgpOworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZXZh
bEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykucHV0KE5P
Tl9DTE9ORUFCTEUsIDApOyIsICIyNSIsICInRGF0YUNsb25lRXJyb3InIik7CisgICAgICAgIGRv
VGhpcmRPcGVuKCk7CisgICAgfTsKK30KKworZnVuY3Rpb24gZG9UaGlyZE9wZW4oKQoreworICAg
IHByZWFtYmxlKCk7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKGRi
bmFtZSArICczJykiKTsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIG9u
VXBncmFkZU5lZWRlZChlKSB7CisgICAgICAgIHByZWFtYmxlKCk7CisgICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OworICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi5jcmVhdGVP
YmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoTk9OX0NMT05FQUJMRSwgSU5WQUxJRF9LRVkpOyIsICIy
NSIsICInRGF0YUNsb25lRXJyb3InIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH07
Cit9CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195771</attachid>
            <date>2013-03-29 11:52:36 -0700</date>
            <delta_ts>2013-03-29 12:34:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113091-20130329115232.patch</filename>
            <type>text/plain</type>
            <size>5911</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3MTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWFkZDM2NjEyZTUyM2E3
MGQ2MTMxZTM5OTE2ZDhlMTM2NGY3MDAzZS4uMzhkZjk1MTVkMmZmMjI1NWQwYWRmZWZjZmRkZDMw
MmE5NTFlNGY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAzLTIyICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Y4XSBJbmRleGVkREI6
IEV4Y2VwdGlvbnMgdGhyb3duIGluY29uc2lzdGVudGx5IGZvciBub24tY2xvbmVhYmxlIHZhbHVl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzMDkx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGV4
Y2VwdGlvbiB0aHJvd24gYnkgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGludG8gdGhlIEpTIGVuZ2lu
ZSBpcyBub3QKKyAgICAgICAgb2JzZXJ2YWJsZSBieSBTY3JpcHRTdGF0ZS4gKFdlIHNob3VsZCBm
aXggdGhhdCwgYnV0IGl0IGFwcGVhcnMgbm9uLXRyaXZpYWwuKQorICAgICAgICBBc2sgdGhlIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSBkaXJlY3RseSBpZiBpdCBmYWlsZWQgdG8gY2xvbmUuIElmIHNv
LCBkb24ndAorICAgICAgICBzZXQgYW4gZXhjZXB0aW9uIC0gb25lIHdhcyBhbHJlYWR5IHNldCBz
byBsZXQgdGhhdCBiZSBwcm9jZXNzZWQgbm9ybWFsbHkuCisKKyAgICAgICAgVGVzdDogc3RvcmFn
ZS9pbmRleGVkZGIvY2xvbmUtZXhjZXB0aW9uLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0
b3JlOjpwdXQpOgorCiAyMDEzLTAzLTI4ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2sub2hAY29s
bGFib3JhLmNvbT4KIAogICAgICAgICBbR1RLXVtBQ10gQW5pbWF0aW5nIGxheWVyIGRpc2FwcGVh
cnMgd2hpbGUgcnVubmluZyB3aXRoIGNsdXR0ZXIgYmFja2VuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCmluZGV4IDIzZGQ4NWZk
YWMyNWU3MGEzOWMxN2RiYmM5MjU0ZGZhYzIxM2Y4N2EuLjVjM2I2Y2E1ZDBiYThjMGQzNjA3MDli
NzI1OTljNmEzMjZiNTllYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKQEAgLTE2OCw5ICsxNjgsMTEgQEAgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6cHV0KElEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZTo6UHV0TW9kZQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkVmFsdWUgPSB2YWx1ZS5zZXJpYWxpemUoc3Rh
dGUpOwotICAgIGlmIChzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgZWMgPSBJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6RGF0YUNsb25lRXJyb3I7CisgICAgLy8gRklYTUU6IEV4cG9zZSB0
aGUgSlMgZW5naW5lIGV4Y2VwdGlvbiBzdGF0ZSB0aHJvdWdoIFNjcmlwdFN0YXRlLgorICAgIGJv
b2wgZGlkVGhyb3cgPSBmYWxzZTsKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBz
ZXJpYWxpemVkVmFsdWUgPSB2YWx1ZS5zZXJpYWxpemUoc3RhdGUsIDAsIDAsIGRpZFRocm93KTsK
KyAgICBpZiAoZGlkVGhyb3cpIHsKKyAgICAgICAgLy8gU2V0dGluZyBhbiBleHBsaWNpdCBFeGNl
cHRpb25Db2RlIGhlcmUgd291bGQgZGVmZXIgaGFuZGxpbmcgdGhlIGFscmVhZHkgdGhyb3duIGV4
Y2VwdGlvbi4KICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGFjZDlhY2IwZDAw
ZmM1MDk2Y2RlNmYwZDBlMDkwM2UxZjJmYjMxYi4uMGYwOWRkNGU3MmIzZTliODg5NDYwMWFjNGU4
NjIxNGZkMGZkMjBhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAzLTIyICBKb3NodWEg
QmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Y4XSBJbmRleGVkREI6IEV4
Y2VwdGlvbnMgdGhyb3duIGluY29uc2lzdGVudGx5IGZvciBub24tY2xvbmVhYmxlIHZhbHVlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzMDkxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9jbG9uZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9jbG9uZS1leGNlcHRpb24uaHRtbDogQWRkZWQuCisKIDIwMTMt
MDMtMjggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgR1RLIGdhcmRlbmluZy4gQWRkaW5nIGZhaWx1cmUgZXhwZWN0YXRpb24gZm9yIGEg
cmVmdGVzdCBhZGRlZCBpbiByMTQ3MTExCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9jbG9uZS1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvY2xvbmUtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
Y2ZlM2Q1NTI4ZTA3OWM2OTc4ZTRiYTcyNzAwOGE4MTBlMWZkNzdmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY2xvbmUtZXhjZXB0aW9uLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDM3IEBACitFbnN1cmUgRGF0YUNsb25lRXJyb3IgaXMgY29uc2lzdGVu
dGx5IHRocm93biBieSBJbmRleGVkREIgbWV0aG9kcworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworZGJuYW1lID0gImNsb25lLWV4Y2VwdGlvbi5odG1sIgorCitkb0ZpcnN0T3Blbigp
OgoraW5kZXhlZERCLm9wZW4oZGJuYW1lICsgJzEnKQorCitvblVwZ3JhZGVOZWVkZWQoKToKK0V4
cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQo
Tk9OX0NMT05FQUJMRSwgMCk7CitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2Rl
IGlzIDI1CitQQVNTIGVuYW1lIGlzICdEYXRhQ2xvbmVFcnJvcicKKworZG9TZWNvbmRPcGVuKCk6
CitpbmRleGVkREIub3BlbihkYm5hbWUgKyAnMicpCisKK29uVXBncmFkZU5lZWRlZCgpOgorRXhw
ZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpLnB1dChO
T05fQ0xPTkVBQkxFLCAwKTsKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUg
aXMgMjUKK1BBU1MgZW5hbWUgaXMgJ0RhdGFDbG9uZUVycm9yJworCitkb1RoaXJkT3BlbigpOgor
aW5kZXhlZERCLm9wZW4oZGJuYW1lICsgJzMnKQorCitvblVwZ3JhZGVOZWVkZWQoKToKK0V4cGVj
dGluZyBleGNlcHRpb24gZnJvbSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoTk9O
X0NMT05FQUJMRSwgSU5WQUxJRF9LRVkpOworUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BB
U1MgY29kZSBpcyAyNQorUEFTUyBlbmFtZSBpcyAnRGF0YUNsb25lRXJyb3InCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY2xvbmUtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jbG9uZS1leGNlcHRpb24uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
NDk3OWIwZmNhYzYyM2JkMTMxYTcxZjRlYzM0ZDkyOWE5MzEwZTNhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY2xvbmUtZXhjZXB0aW9uLmh0bWwKQEAg
LTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIkVuc3Vy
ZSBEYXRhQ2xvbmVFcnJvciBpcyBjb25zaXN0ZW50bHkgdGhyb3duIGJ5IEluZGV4ZWREQiBtZXRo
b2RzIik7CisKK3ZhciBOT05fQ0xPTkVBQkxFID0gc2VsZjsKK3ZhciBJTlZBTElEX0tFWSA9IHt9
OworCitzZXREQk5hbWVGcm9tUGF0aCgpOworZG9GaXJzdE9wZW4oKTsKKworZnVuY3Rpb24gZG9G
aXJzdE9wZW4oKQoreworICAgIHByZWFtYmxlKCk7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5vcGVuKGRibmFtZSArICcxJykiKTsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uIG9uVXBncmFkZU5lZWRlZChlKSB7CisgICAgICAgIHByZWFtYmxlKCk7
CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBldmFsQW5kRXhwZWN0RXhj
ZXB0aW9uKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoTk9OX0NMT05FQUJMRSwg
MCk7IiwgIjI1IiwgIidEYXRhQ2xvbmVFcnJvciciKTsKKyAgICAgICAgZG9TZWNvbmRPcGVuKCk7
CisgICAgfTsKK30KKworZnVuY3Rpb24gZG9TZWNvbmRPcGVuKCkKK3sKKyAgICBwcmVhbWJsZSgp
OworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUgKyAnMicp
Iik7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiBvblVwZ3JhZGVOZWVk
ZWQoZSkgeworICAgICAgICBwcmVhbWJsZSgpOworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dDsKKyAgICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J3N0b3JlJykucHV0KE5PTl9DTE9ORUFCTEUsIDApOyIsICIyNSIsICInRGF0YUNsb25lRXJyb3In
Iik7CisgICAgICAgIGRvVGhpcmRPcGVuKCk7CisgICAgfTsKK30KKworZnVuY3Rpb24gZG9UaGly
ZE9wZW4oKQoreworICAgIHByZWFtYmxlKCk7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImlu
ZGV4ZWREQi5vcGVuKGRibmFtZSArICczJykiKTsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uIG9uVXBncmFkZU5lZWRlZChlKSB7CisgICAgICAgIHByZWFtYmxlKCk7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0
aW9uKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKS5wdXQoTk9OX0NMT05FQUJMRSwgSU5W
QUxJRF9LRVkpOyIsICIyNSIsICInRGF0YUNsb25lRXJyb3InIik7CisgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgIH07Cit9CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>