<?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>42580</bug_id>
          
          <creation_ts>2010-07-19 11:40:21 -0700</creation_ts>
          <short_desc>DOMFocusIn/DOMFocusOut return focusin/focusout Event.type</short_desc>
          <delta_ts>2010-10-01 13:59:13 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nate Chapin">japhet</reporter>
          <assigned_to name="Nate Chapin">japhet</assigned_to>
          <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>hyatt</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>253303</commentid>
    <comment_count>0</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-07-19 11:40:21 -0700</bug_when>
    <thetext>Original report: http://code.google.com/p/chromium/issues/detail?id=42631

Because of the way we alias focusin/DOMFocusIn and focusout/DOMFocusOut to each other, DOMFocusIn and DOMFocusOut events return the wrong type attribute to script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253308</commentid>
    <comment_count>1</comment_count>
      <attachid>61972</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-07-19 11:47:41 -0700</bug_when>
    <thetext>Created attachment 61972
patch + layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253310</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-19 11:48:51 -0700</bug_when>
    <thetext>Attachment 61972 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/dom/Event.h:81:  More than one command on the same line in if  [whitespace/parens] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253313</commentid>
    <comment_count>3</comment_count>
      <attachid>61972</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-19 11:52:10 -0700</bug_when>
    <thetext>Comment on attachment 61972
patch + layout test

This seems a bit too clever to me. The kind of cleverness that often leads to unhappiness later. There are a couple things I don&apos;t understand:

    1) How does calling switchToAliasedType a second time return the type to the original? I don&apos;t see any code in that function that will do it.

    2) When calling these listeners, what&apos;s the guarantee that some other code doesn&apos;t already have a pointer to the event? The listener could call any code at all, and you could actually observe the event object in both states. Seems unnecessary.

How about having two separate event objects instead? Do we really need to mutate a single event for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253318</commentid>
    <comment_count>4</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-07-19 11:59:27 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 61972 [details])
&gt; This seems a bit too clever to me. The kind of cleverness that often leads to unhappiness later. There are a couple things I don&apos;t understand:
&gt; 
&gt;     1) How does calling switchToAliasedType a second time return the type to the original? I don&apos;t see any code in that function that will do it.

It&apos;s dependent on an existing assumption (that only 2 events can be aliased to each other, and that there&apos;s no such thing as a one-way alias).  With the existing aliasedType relationships, calling switchToAliasedType() a second time will always reverse the first call.  If that&apos;s safe to leave in, it should probably at least be commented.

&gt; 
&gt;     2) When calling these listeners, what&apos;s the guarantee that some other code doesn&apos;t already have a pointer to the event? The listener could call any code at all, and you could actually observe the event object in both states. Seems unnecessary.
&gt; 
&gt; How about having two separate event objects instead? Do we really need to mutate a single event for this?

This could work, but it would require cleverness of a different flavor to ensure that we don&apos;t end up generating incorrect events (or in an endless loop of aliased events).  I&apos;m happy to move to that solution if you feel it&apos;s more sane than this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253482</commentid>
    <comment_count>5</comment_count>
      <attachid>62014</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-07-19 17:07:57 -0700</bug_when>
    <thetext>Created attachment 62014
patch #2

This patch creates an entirely new Event for the aliased event and ensures that an aliased event will be created exactly once per original event.

Note that this reverses the order of the events (aliased first, then original).  I don&apos;t think that&apos;s an issue, but I can do some more research on the topic if that would be helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253490</commentid>
    <comment_count>6</comment_count>
      <attachid>62014</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-19 17:47:18 -0700</bug_when>
    <thetext>Comment on attachment 62014
patch #2

&gt;          const AtomicString&amp; aliasedType() const;
&gt;          bool hasAliasedType() const;
&gt; +        virtual void dispatchAliasedEvent() { }

I missed when all this aliased event machinery was added to Event. I don&apos;t understand why this is being baked in at such a low level.

It seems to me that we could simply dispatch both pairs of events in Document::setFocusedNode and get exactly the same results.

What are the test cases that aliased events support that can&apos;t be done by simply dispatching two different events one after another?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253756</commentid>
    <comment_count>7</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-07-20 09:26:30 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 62014 [details])
&gt; &gt;          const AtomicString&amp; aliasedType() const;
&gt; &gt;          bool hasAliasedType() const;
&gt; &gt; +        virtual void dispatchAliasedEvent() { }
&gt; 
&gt; I missed when all this aliased event machinery was added to Event. I don&apos;t understand why this is being baked in at such a low level.
&gt; 
&gt; It seems to me that we could simply dispatch both pairs of events in Document::setFocusedNode and get exactly the same results.
&gt; 
&gt; What are the test cases that aliased events support that can&apos;t be done by simply dispatching two different events one after another?

I don&apos;t know, but it appears it was introduced in http://trac.webkit.org/changeset/56402. (cc:ing hyatt and weinig, who wrote and reviewed it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253757</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-20 09:28:15 -0700</bug_when>
    <thetext>Sam, Hyatt, can we just dump this &quot;aliased event&quot; concept?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271186</commentid>
    <comment_count>9</comment_count>
      <attachid>62014</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-29 12:35:59 -0700</bug_when>
    <thetext>Comment on attachment 62014
patch #2

Instead of tis patch, we should fix this by getting rid of the aliased event concept entirely. That should be relatively straightforward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288041</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-30 20:37:02 -0700</bug_when>
    <thetext>*** Bug 46949 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288046</commentid>
    <comment_count>11</comment_count>
      <attachid>69419</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-30 21:25:29 -0700</bug_when>
    <thetext>Created attachment 69419
(hopefully) demo to illustrate difference between dispatching aliased events and two distinct events

(In reply to comment #6)
&gt; I missed when all this aliased event machinery was added to Event. I don&apos;t understand why this is being baked in at such a low level.
&gt; It seems to me that we could simply dispatch both pairs of events in Document::setFocusedNode and get exactly the same results.

That sounds like the simplest solution to this problem.  I&apos;m curious as to know why we&apos;re reusing the same event.

&gt; What are the test cases that aliased events support that can&apos;t be done by simply dispatching two different events one after another?

What if JavaScript added some information to the event object?  If we dispatched two different events, won&apos;t we get two different JS objects as well?  I wanted to see what happens in other browsers but no other browser seems to implement FocusIn so I can&apos;t even tell whether or not my test is correct.  The question (if my assumption is right)then becomes whether or not JS event listeners should see the same event object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288047</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-30 21:27:33 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; What if JavaScript added some information to the event object?  If we dispatched two different events, won&apos;t we get two different JS objects as well?  I wanted to see what happens in other browsers but no other browser seems to implement FocusIn so I can&apos;t even tell whether or not my test is correct.  The question (if my assumption is right)then becomes whether or not JS event listeners should see the same event object.

It seems quite clear to me that two events of different types are not the same event. I can’t imagine someone making code that would depend on them being the same event object!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288048</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-30 21:46:59 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; What if JavaScript added some information to the event object?  If we dispatched two different events, won&apos;t we get two different JS objects as well?  I wanted to see what happens in other browsers but no other browser seems to implement FocusIn so I can&apos;t even tell whether or not my test is correct.  The question (if my assumption is right)then becomes whether or not JS event listeners should see the same event object.
&gt; 
&gt; It seems quite clear to me that two events of different types are not the same event. I can’t imagine someone making code that would depend on them being the same event object!

That&apos;s my intuition as well.  And I can&apos;t find any remarks about sharing the same objects for focusIn and DOMFocusIn in http://www.w3.org/TR/DOM-Level-3-Events/#event-type-DOMFocusIn either.  So I think you&apos;re right that we shouldn&apos;t be reusing the same event object for DOMFocusIn and FocusIn and likewise for DOMFocusOut and FocusOut.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288417</commentid>
    <comment_count>14</comment_count>
      <attachid>69503</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-10-01 12:36:23 -0700</bug_when>
    <thetext>Created attachment 69503
Patch

As discussed with Dave, Darin and Dan, this patch removes the aliasedType concept and fires 2 events, one with the new name and one with the old name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288420</commentid>
    <comment_count>15</comment_count>
      <attachid>69503</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-01 12:40:35 -0700</bug_when>
    <thetext>Comment on attachment 69503
Patch

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

&gt; WebCore/dom/Document.cpp:3108
&gt; +        // FIXME: We should remove firing the old event in the future.

I’m not sure “the old event” and “in the future” are clear enough. A better comment would be more specific that DOMFocusOut is “the old event” and use wording that talks specifically about when this would be appropriate. For example we could say, “when we are sure no content depends on it”, and perhaps even mention the Mail issue or point to a bug number that mentions that. We want the FIXME to be actionable.

&gt; LayoutTests/fast/events/focusinout.html:22
&gt; +        writeFailed(&apos;result1&apos;, &quot;Wrong even type&quot;);

Typo: &quot;even type&quot; instead of &quot;event type&quot;. Same typo in all three places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288432</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-01 13:02:09 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Created an attachment (id=69503) [details]
&gt; Patch
&gt; 
&gt; As discussed with Dave, Darin and Dan, this patch removes the aliasedType concept and fires 2 events, one with the new name and one with the old name.

Will my test say undefined for both events with your patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288443</commentid>
    <comment_count>17</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-10-01 13:26:02 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #14)
&gt; &gt; Created an attachment (id=69503) [details] [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; As discussed with Dave, Darin and Dan, this patch removes the aliasedType concept and fires 2 events, one with the new name and one with the old name.
&gt; 
&gt; Will my test say undefined for both events with your patch?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288453</commentid>
    <comment_count>18</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-10-01 13:51:38 -0700</bug_when>
    <thetext>Committed revision 68923.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288460</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-01 13:59:13 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; Will my test say undefined for both events with your patch?
&gt; 
&gt; Yes.

Great!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61972</attachid>
            <date>2010-07-19 11:47:41 -0700</date>
            <delta_ts>2010-07-19 17:07:57 -0700</delta_ts>
            <desc>patch + layout test</desc>
            <filename>eventaliasing.txt</filename>
            <type>text/plain</type>
            <size>4410</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL0V2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRXZl
bnQuaAkocmV2aXNpb24gNjM2NzkpCisrKyBXZWJDb3JlL2RvbS9FdmVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC03OCw2ICs3OCw3IEBACiAgICAgICAgIAogICAgICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIGFsaWFzZWRUeXBlKCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaGFzQWxpYXNlZFR5cGUoKSBj
b25zdDsKKyAgICAgICAgdm9pZCBzd2l0Y2hUb0FsaWFzZWRUeXBlKCkgeyBpZiAoaGFzQWxpYXNl
ZFR5cGUoKSkgbV90eXBlID0gYWxpYXNlZFR5cGUoKTsgfSAKIAogICAgICAgICBFdmVudFRhcmdl
dCogdGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXQuZ2V0KCk7IH0KICAgICAgICAgdm9p
ZCBzZXRUYXJnZXQoUGFzc1JlZlB0cjxFdmVudFRhcmdldD4pOwpJbmRleDogV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNw
cAkocmV2aXNpb24gNjM2NzkpCisrKyBXZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI5NCw4ICsyOTQsMTIgQEAKICAgICAvLyBuYW1lcyBpbiB0aGUgZnV0dXJl
IGFuZCBzdGlsbCBtYWtlIHRoZW0gYmUgaW50ZXJvcGVyYWJsZS4KICAgICBpZiAoZXZlbnQtPmhh
c0FsaWFzZWRUeXBlKCkgJiYgIWV2ZW50LT5pbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSkg
ewogICAgICAgICBFdmVudExpc3RlbmVyTWFwOjppdGVyYXRvciByZXN1bHQgPSBkLT5ldmVudExp
c3RlbmVyTWFwLmZpbmQoZXZlbnQtPmFsaWFzZWRUeXBlKCkpOworICAgICAgICAvLyBzd2l0Y2hU
b0FsaWFzZWRUeXBlKCkgd2lsbCBjYXVzZSB0aGUgZXZlbnQgdG8gcmV0dXJuIHRoZSBhbGlhc2Vk
IHR5cGUgd2hlbiB0eXBlKCkKKyAgICAgICAgLy8gaXMgY2FsbGVkLiBDYWxsaW5nIGl0IGFnYWlu
IHdpbGwgcmV0dXJuIGl0cyB0eXBlIHRvIHRoZSBvcmlnaW5hbC4KKyAgICAgICAgZXZlbnQtPnN3
aXRjaFRvQWxpYXNlZFR5cGUoKTsKICAgICAgICAgaWYgKHJlc3VsdCAhPSBkLT5ldmVudExpc3Rl
bmVyTWFwLmVuZCgpKQogICAgICAgICAgICAgZmlyZUV2ZW50TGlzdGVuZXJzKGV2ZW50LCBkLCAq
cmVzdWx0LT5zZWNvbmQpOworICAgICAgICBldmVudC0+c3dpdGNoVG9BbGlhc2VkVHlwZSgpOwog
ICAgIH0KICAgICByZXR1cm4gIWV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCk7CiB9CkluZGV4OiBX
ZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNp
b24gNjM2NzkpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDI0IEBACisyMDEwLTA3LTE5ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJlIGFs
aWFzZWQgZXZlbnQgdHlwZXMgKERPTUZvY3VzSW4vZm9jdXNpbiBhbmQgCisgICAgICAgIERPTUZv
Y3VzT3V0L2ZvY3Vzb3V0KSByZXR1cm4gdGhlIGNvcnJlY3QgdHlwZQorICAgICAgICBhdHRyaWJ1
dGUgdG8gdGhlaXIgZXZlbnQgbGlzdGVuZXJzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU4MAorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRz
L2FsaWFzZWQtZXZlbnQtdHlwZS5odG1sCisKKyAgICAgICAgKiBkb20vRXZlbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50Ojpzd2l0Y2hUb0FsaWFzZWRUeXBlKTogQWRkIGEgd2F5IHRvCisg
ICAgICAgICAgICB0ZW1wb3JhcmlseSByZXR1cm4gdGhlIGFsaWFzZWQgdHlwZSBpbnN0ZWFkIG9m
CisgICAgICAgICAgICB0aGUgb3JpZ2luYWwgdHlwZSB3aGVuIEV2ZW50Ojp0eXBlKCkgaXMgY2Fs
bGVkLgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudFRhcmdldDo6ZmlyZUV2ZW50TGlzdGVuZXJzKTogU3dpdGNoCisgICAgICAgICAgICB0aGUg
ZXZlbnQgdG8gdGhlIGFsaWFzZWQgdHlwZSBhbmQgYmFjayBhZ2FpbiB3aGVuCisgICAgICAgICAg
ICBjYWxsaW5nIGV2ZW50IGxpc3RlbmVycyBvZiB0aGUgYWxpYXNlZCB0eXBlLgorCiAyMDEwLTA3
LTE5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgU2ltb24gRnJhc2VyLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYWxpYXNlZC1l
dmVudC10eXBlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYWxp
YXNlZC1ldmVudC10eXBlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9hbGlhc2VkLWV2ZW50LXR5cGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNiBA
QAorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlwdD4NCitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQ0KKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOw0K
Kw0KK2Z1bmN0aW9uIGhhbmRsZXIoZXZlbnQpDQorew0KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGV2ZW50
LnR5cGUgKyAiXG4iKSk7DQorfQ0KKzwvc2NyaXB0Pg0KKzwvaGVhZD4NCis8Ym9keSBvbmxvYWQ9
ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWVsZCcpLmZvY3VzKCk7ZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2ZpZWxkJykuYmx1cigpIj4NCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCisN
Cis8Zm9ybT4NCis8aW5wdXQgdHlwZT10ZXh0IGlkPSJmaWVsZCI+DQorPC9mb3JtPg0KKzxzY3Jp
cHQ+DQorZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4i
LCBoYW5kbGVyLCBmYWxzZSk7DQorZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImZvY3Vzb3V0IiwgaGFuZGxlciwgZmFsc2UpOw0KK2RvY3VtZW50LmRvY3VtZW50RWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Gb2N1c0luIiwgaGFuZGxlciwgZmFsc2UpOw0KK2Rv
Y3VtZW50LmRvY3VtZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Gb2N1c091dCIsIGhh
bmRsZXIsIGZhbHNlKTsNCis8L3NjcmlwdD4NCis8L2JvZHk+DQorPC9odG1sPg0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL2FsaWFzZWQtZXZlbnQtdHlwZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYWxpYXNlZC1ldmVudC10eXBlLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2FsaWFz
ZWQtZXZlbnQtdHlwZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMiBAQAor
Zm9jdXNpbiBET01Gb2N1c0luIGZvY3Vzb3V0IERPTUZvY3VzT3V0CisKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDYzNjc5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTAtMDctMTkgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
IGZvciBET01Gb2N1c0luIGFuZCBET01Gb2N1c091dCBldmVudCB0eXBlIGFsaWFzaW5nLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjU4MAorCisg
ICAgICAgICogZmFzdC9ldmVudHMvYWxpYXNlZC1ldmVudC10eXBlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvYWxpYXNlZC1ldmVudC10eXBlLmh0bWw6IEFkZGVk
LgorCiAyMDEwLTA3LTE5ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZC4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62014</attachid>
            <date>2010-07-19 17:07:57 -0700</date>
            <delta_ts>2010-08-29 12:35:59 -0700</delta_ts>
            <desc>patch #2</desc>
            <filename>eventaliasing2.txt</filename>
            <type>text/plain</type>
            <size>7733</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL1VJRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9V
SUV2ZW50LmgJKHJldmlzaW9uIDYzNjc5KQorKysgV2ViQ29yZS9kb20vVUlFdmVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MCw2ICs2MCw4IEBACiAgICAgICAgIHZpcnR1YWwgaW50IHBhZ2VZKCkg
Y29uc3Q7CiAKICAgICAgICAgdmlydHVhbCBpbnQgd2hpY2goKSBjb25zdDsKKyAgICAgICAgCisg
ICAgICAgIHZvaWQgZGlzcGF0Y2hBbGlhc2VkRXZlbnQoKTsKIAogICAgIHByb3RlY3RlZDoKICAg
ICAgICAgVUlFdmVudCgpOwpJbmRleDogV2ViQ29yZS9kb20vRXZlbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZG9tL0V2ZW50LmNwcAkocmV2aXNpb24gNjM2NzkpCisrKyBXZWJDb3JlL2Rv
bS9FdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICAgICAsIG1fZGVm
YXVsdFByZXZlbnRlZChmYWxzZSkKICAgICAsIG1fZGVmYXVsdEhhbmRsZWQoZmFsc2UpCiAgICAg
LCBtX2NhbmNlbEJ1YmJsZShmYWxzZSkKKyAgICAsIG1fcHJldmVudEFsaWFzaW5nKGZhbHNlKQog
ICAgICwgbV9ldmVudFBoYXNlKDApCiAgICAgLCBtX2N1cnJlbnRUYXJnZXQoMCkKICAgICAsIG1f
Y3JlYXRlVGltZShzdGF0aWNfY2FzdDxET01UaW1lU3RhbXA+KGN1cnJlbnRUaW1lKCkgKiAxMDAw
LjApKQpAQCAtNTIsNiArNTMsNyBAQAogICAgICwgbV9kZWZhdWx0UHJldmVudGVkKGZhbHNlKQog
ICAgICwgbV9kZWZhdWx0SGFuZGxlZChmYWxzZSkKICAgICAsIG1fY2FuY2VsQnViYmxlKGZhbHNl
KQorICAgICwgbV9wcmV2ZW50QWxpYXNpbmcoZmFsc2UpCiAgICAgLCBtX2V2ZW50UGhhc2UoMCkK
ICAgICAsIG1fY3VycmVudFRhcmdldCgwKQogICAgICwgbV9jcmVhdGVUaW1lKHN0YXRpY19jYXN0
PERPTVRpbWVTdGFtcD4oY3VycmVudFRpbWUoKSAqIDEwMDAuMCkpCkBAIC0yNzQsNiArMjc2LDcg
QEAKIAogY29uc3QgQXRvbWljU3RyaW5nJiBFdmVudDo6YWxpYXNlZFR5cGUoKSBjb25zdAogewor
ICAgIEFTU0VSVCghbV9wcmV2ZW50QWxpYXNpbmcpOwogICAgIGlmICh0eXBlKCkgPT0gZXZlbnRO
YW1lcygpLmZvY3VzaW5FdmVudCkKICAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5ET01Gb2N1
c0luRXZlbnQ7CiAgICAgaWYgKHR5cGUoKSA9PSBldmVudE5hbWVzKCkuZm9jdXNvdXRFdmVudCkK
QEAgLTI4OSw4ICsyOTIsOCBAQAogCiBib29sIEV2ZW50OjpoYXNBbGlhc2VkVHlwZSgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIHR5cGUoKSA9PSBldmVudE5hbWVzKCkuZm9jdXNpbkV2ZW50IHx8IHR5
cGUoKSA9PSBldmVudE5hbWVzKCkuZm9jdXNvdXRFdmVudCB8fAotICAgICAgICAgICB0eXBlKCkg
PT0gZXZlbnROYW1lcygpLkRPTUZvY3VzSW5FdmVudCB8fCB0eXBlKCkgPT0gZXZlbnROYW1lcygp
LkRPTUZvY3VzT3V0RXZlbnQ7CisgICAgcmV0dXJuICFtX3ByZXZlbnRBbGlhc2luZyAmJiAodHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5mb2N1c2luRXZlbnQgfHwgdHlwZSgpID09IGV2ZW50TmFtZXMo
KS5mb2N1c291dEV2ZW50CisgICAgICAgIHx8IHR5cGUoKSA9PSBldmVudE5hbWVzKCkuRE9NRm9j
dXNJbkV2ZW50IHx8IHR5cGUoKSA9PSBldmVudE5hbWVzKCkuRE9NRm9jdXNPdXRFdmVudCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvZG9tL0V2ZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9kb20vRXZlbnQuaAkocmV2aXNpb24gNjM2NzkpCisrKyBXZWJD
b3JlL2RvbS9FdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03OCw2ICs3OCw3IEBACiAgICAgICAg
IAogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFsaWFzZWRUeXBlKCkgY29uc3Q7CiAgICAg
ICAgIGJvb2wgaGFzQWxpYXNlZFR5cGUoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoQWxpYXNlZEV2ZW50KCkgeyB9CiAKICAgICAgICAgRXZlbnRUYXJnZXQqIHRhcmdldCgp
IGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0LmdldCgpOyB9CiAgICAgICAgIHZvaWQgc2V0VGFyZ2V0
KFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+KTsKQEAgLTE3MSw2ICsxNzIsOCBAQAogCiAgICAgICAg
IHZpcnR1YWwgdm9pZCByZWNlaXZlZFRhcmdldCgpOwogICAgICAgICBib29sIGRpc3BhdGNoZWQo
KSBjb25zdCB7IHJldHVybiBtX3RhcmdldDsgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBzZXRQ
cmV2ZW50QWxpYXNpbmcoYm9vbCBwcmV2ZW50QWxpYXNpbmcpIHsgbV9wcmV2ZW50QWxpYXNpbmcg
PSBwcmV2ZW50QWxpYXNpbmc7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIEF0b21pY1N0cmlu
ZyBtX3R5cGU7CkBAIC0xODIsNiArMTg1LDcgQEAKICAgICAgICAgYm9vbCBtX2RlZmF1bHRQcmV2
ZW50ZWQ7CiAgICAgICAgIGJvb2wgbV9kZWZhdWx0SGFuZGxlZDsKICAgICAgICAgYm9vbCBtX2Nh
bmNlbEJ1YmJsZTsKKyAgICAgICAgYm9vbCBtX3ByZXZlbnRBbGlhc2luZzsKIAogICAgICAgICB1
bnNpZ25lZCBzaG9ydCBtX2V2ZW50UGhhc2U7CiAgICAgICAgIEV2ZW50VGFyZ2V0KiBtX2N1cnJl
bnRUYXJnZXQ7CkluZGV4OiBXZWJDb3JlL2RvbS9VSUV2ZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2RvbS9VSUV2ZW50LmNwcAkocmV2aXNpb24gNjM2NzkpCisrKyBXZWJDb3JlL2RvbS9V
SUV2ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQsNCArOTQsMTQgQEAKICAgICByZXR1cm4g
MDsKIH0KIAordm9pZCBVSUV2ZW50OjpkaXNwYXRjaEFsaWFzZWRFdmVudCgpCit7CisgICAgQVNT
RVJUKGhhc0FsaWFzZWRUeXBlKCkpOworICAgIFJlZlB0cjxVSUV2ZW50PiBhbGlhc2VkRXZlbnQg
PSBVSUV2ZW50OjpjcmVhdGUoYWxpYXNlZFR5cGUoKSwgYnViYmxlcygpLCBjYW5jZWxhYmxlKCks
IHZpZXcoKSwgZGV0YWlsKCkpOworICAgIGFsaWFzZWRFdmVudC0+c2V0VW5kZXJseWluZ0V2ZW50
KHRoaXMpOworICAgIGFsaWFzZWRFdmVudC0+c2V0UHJldmVudEFsaWFzaW5nKHRydWUpOworICAg
IHNldFByZXZlbnRBbGlhc2luZyh0cnVlKTsKKyAgICB0YXJnZXQoKS0+ZGlzcGF0Y2hFdmVudChh
bGlhc2VkRXZlbnQucmVsZWFzZSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9t
L0V2ZW50VGFyZ2V0LmNwcAkocmV2aXNpb24gNjM2NzkpCisrKyBXZWJDb3JlL2RvbS9FdmVudFRh
cmdldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5MiwxMSArMjkyLDggQEAKICAgICAvLyBBbGlh
cyBET01Gb2N1c0luL0RPTUZvY3VzT3V0IHRvIGZvY3VzaW4vZm9jdXNvdXQgKGFuZCB2aWNlIHZl
cnNhKS4gSnVzdCBjb25zaWRlciB0aGVtIHRvIGJlIHRoZQogICAgIC8vIHNhbWUgZXZlbnQgKHRy
aWdnZXJpbmcgb25lIGFub3RoZXIncyBoYW5kbGVycykuICBUaGlzIG1lY2hhbmlzbSBhbGxvd3Mg
dXMgdG8gZGVwcmVjYXRlIG9yIGNoYW5nZSBldmVudAogICAgIC8vIG5hbWVzIGluIHRoZSBmdXR1
cmUgYW5kIHN0aWxsIG1ha2UgdGhlbSBiZSBpbnRlcm9wZXJhYmxlLgotICAgIGlmIChldmVudC0+
aGFzQWxpYXNlZFR5cGUoKSAmJiAhZXZlbnQtPmltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgp
KSB7Ci0gICAgICAgIEV2ZW50TGlzdGVuZXJNYXA6Oml0ZXJhdG9yIHJlc3VsdCA9IGQtPmV2ZW50
TGlzdGVuZXJNYXAuZmluZChldmVudC0+YWxpYXNlZFR5cGUoKSk7Ci0gICAgICAgIGlmIChyZXN1
bHQgIT0gZC0+ZXZlbnRMaXN0ZW5lck1hcC5lbmQoKSkKLSAgICAgICAgICAgIGZpcmVFdmVudExp
c3RlbmVycyhldmVudCwgZCwgKnJlc3VsdC0+c2Vjb25kKTsKLSAgICB9CisgICAgaWYgKGV2ZW50
LT5oYXNBbGlhc2VkVHlwZSgpICYmICFldmVudC0+aW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVk
KCkpCisgICAgICAgIGV2ZW50LT5kaXNwYXRjaEFsaWFzZWRFdmVudCgpOwogICAgIHJldHVybiAh
ZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKIH0KICAgICAgICAgCkluZGV4OiBXZWJDb3JlL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNjM3MDAp
CisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisy
MDEwLTA3LTE5ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJlIGFsaWFzZWQgZXZl
bnQgdHlwZXMgKERPTUZvY3VzSW4vZm9jdXNpbiBhbmQgCisgICAgICAgIERPTUZvY3VzT3V0L2Zv
Y3Vzb3V0KSByZXR1cm4gdGhlIGNvcnJlY3QgdHlwZQorICAgICAgICBhdHRyaWJ1dGUgdG8gdGhl
aXIgZXZlbnQgbGlzdGVuZXJzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MjU4MAorCisgICAgICAgIFRlc3Q6IGZhc3QvZXZlbnRzL2FsaWFzZWQt
ZXZlbnQtdHlwZS5odG1sCisKKyAgICAgICAgKiBkb20vRXZlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnQ6OkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50OjphbGlhc2VkVHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudDo6aGFzQWxpYXNlZFR5cGUpOiBEb24ndCByZXR1
cm4gdHJ1ZSBpZiB3ZQorICAgICAgICAgICAgYXJlIHByZXZlbnRpbmcgYWxpYXNpbmcuCisgICAg
ICAgICogZG9tL0V2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpFdmVudDo6ZGlzcGF0Y2hBbGlh
c2VkRXZlbnQpOiBFbXB0eSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnQ6OnNldFByZXZlbnRBbGlhc2luZyk6IEFsbG93cyBhbiBFdmVudCB0byBiZSBzZXQg
c3VjaAorICAgICAgICAgICAgdGhhdCBpdCB3b24ndCBjYXVzZSBhbGlhc2VkIGV2ZW50cyB0byBi
ZSBnZW5lcmF0ZWQuCisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5lcnMpOiBTaW1wbGlmeSBhbGlhc2Vk
IGV2ZW50IGxvZ2ljLgorICAgICAgICAqIGRvbS9VSUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlVJRXZlbnQ6OmRpc3BhdGNoQWxpYXNlZEV2ZW50KTogQ29uZmlndXJlIChleGFjdGx5IG9u
ZSkgbmV3IEV2ZW50CisgICAgICAgICAgICBmb3IgYWxpYXNlZCBldmVudHMgaW5zdGVhZCBvZiBz
aW1wbHkgZmlyaW5nIHRoZWlyIGV2ZW50IGxpc3RlbmVycy4KKyAgICAgICAgKiBkb20vVUlFdmVu
dC5oOgorCiAyMDEwLTA3LTE5ICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9hbGlhc2VkLWV2ZW50LXR5cGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9hbGlhc2VkLWV2ZW50LXR5cGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL2FsaWFzZWQtZXZlbnQtdHlwZS5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDI2IEBACis8aHRtbD4NCis8aGVhZD4NCis8c2NyaXB0Pg0KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpDQorICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7DQorDQorZnVuY3Rpb24gaGFuZGxlcihldmVudCkNCit7DQorICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoZXZlbnQudHlwZSArICJcbiIpKTsNCit9DQorPC9zY3JpcHQ+DQorPC9oZWFk
Pg0KKzxib2R5IG9ubG9hZD0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpZWxkJykuZm9jdXMo
KTtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmllbGQnKS5ibHVyKCkiPg0KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2Pg0KKw0KKzxmb3JtPg0KKzxpbnB1dCB0eXBlPXRleHQgaWQ9ImZpZWxkIj4N
Cis8L2Zvcm0+DQorPHNjcmlwdD4NCitkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigiZm9jdXNpbiIsIGhhbmRsZXIsIGZhbHNlKTsNCitkb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLCBoYW5kbGVyLCBmYWxzZSk7DQorZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUZvY3VzSW4iLCBoYW5k
bGVyLCBmYWxzZSk7DQorZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo
IkRPTUZvY3VzT3V0IiwgaGFuZGxlciwgZmFsc2UpOw0KKzwvc2NyaXB0Pg0KKzwvYm9keT4NCis8
L2h0bWw+DQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYWxpYXNlZC1ldmVudC10eXBl
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9hbGlh
c2VkLWV2ZW50LXR5cGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvYWxpYXNlZC1ldmVudC10eXBlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyIEBACitET01Gb2N1c0luIGZvY3VzaW4gRE9NRm9jdXNPdXQgZm9jdXNvdXQK
KwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNjM2NzkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wNy0xOSAgTmF0ZSBDaGFwaW4gIDxq
YXBoZXRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3QgZm9yIERPTUZvY3VzSW4gYW5kIERPTUZvY3VzT3V0IGV2ZW50IHR5
cGUgYWxpYXNpbmcuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQyNTgwCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9hbGlhc2VkLWV2ZW50LXR5cGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9hbGlhc2VkLWV2ZW50
LXR5cGUuaHRtbDogQWRkZWQuCisKIDIwMTAtMDctMTkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9z
c3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLgo=
</data>
<flag name="review"
          id="50127"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="50128"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>69419</attachid>
            <date>2010-09-30 21:25:29 -0700</date>
            <delta_ts>2010-09-30 21:25:29 -0700</delta_ts>
            <desc>(hopefully) demo to illustrate difference between dispatching aliased events and two distinct events</desc>
            <filename>focus-test.html</filename>
            <type>text/html</type>
            <size>693</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8Ym9keT4KPGRpdiBpZD0idGVzdCI+PGlucHV0IHR5cGU9
InRleHQiPjwvZGl2Pgo8c2NyaXB0PgoKZnVuY3Rpb24gbG9nKG1zZykgewogICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtc2cpKTsKICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnInKSk7Cn0KCmZ1
bmN0aW9uIGZvY3VzSW4oZXZlbnQpIHsKICAgIGxvZygnZm9jdXNJbiBzYXc6JyArIGV2ZW50Lmhh
c1Byb2Nlc3NzZWRCeSk7CiAgICBldmVudC5oYXNQcm9jZXNzc2VkQnkgPSAnZm9jdXNJbic7Cn0K
CmZ1bmN0aW9uIERPTWZvY3VzSW4oZXZlbnQpIHsKICAgIGxvZygnRE9NZm9jdXNJbiBzYXc6JyAr
IGV2ZW50Lmhhc1Byb2Nlc3NzZWRCeSk7CiAgICBldmVudC5oYXNQcm9jZXNzc2VkQnkgPSAnRE9N
Rm9jdXNJbic7Cn0KCnZhciB0ZXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsK
dGVzdC5maXJzdENoaWxkLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBmb2N1c0luLCBmYWxz
ZSk7CnRlc3QuZmlyc3RDaGlsZC5hZGRFdmVudExpc3RlbmVyKCdET01Gb2N1c0luJywgRE9NZm9j
dXNJbiwgZmFsc2UpOwp0ZXN0LmZpcnN0Q2hpbGQuZm9jdXMoKTsKCjwvc2NyaXB0Pgo8L2JvZHk+
CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69503</attachid>
            <date>2010-10-01 12:36:23 -0700</date>
            <delta_ts>2010-10-01 12:40:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug8107311.txt</filename>
            <type>text/plain</type>
            <size>6554</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODkxMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMTAtMDEgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBE
T01Gb2N1c0luL0RPTUZvY3VzT3V0IHJldHVybiBmb2N1c2luL2ZvY3Vzb3V0IEV2ZW50LnR5cGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTgwCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MTA3MzExPgorICAgICAgICAKKyAgICAgICAgVGhpcyBj
aGFuZ2UgcmVtb3ZlcyB0aGUgYWxpYXNlZCB0eXBlIG1hY2hpbmVyeSBmcm9tIHRoZSBFdmVudCBj
bGFzcy4KKyAgICAgICAgV2Ugbm93IGZpcmUgdGhlIGV2ZW50IHdpdGggdGhlIG5ldyBuYW1lIGFu
ZCB0aGUgb2xkbmFtZS4KKyAgICAgICAgCisgICAgICAgIFRlc3RzOiBNb2RpZmllZCBmYXN0L2V2
ZW50cy9mb2N1c2lub3V0Lmh0bWwgdG8gY2hlY2sgdGhlIGV2ZW50CisgICAgICAgIHR5cGUuCisK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
OnNldEZvY3VzZWROb2RlKToKKyAgICAgICAgKiBkb20vRXZlbnQuY3BwOiBSZW1vdmVkIGFsaWFz
ZWRUeXBlIGFuZCBoYXNBbGlhc2VkVHlwZS4KKyAgICAgICAgKiBkb20vRXZlbnQuaDogUmVtb3Zl
ZCBhbGlhc2VkVHlwZSBhbmQgaGFzQWxpYXNlZFR5cGUuCisgICAgICAgICogZG9tL0V2ZW50VGFy
Z2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpmaXJlRXZlbnRMaXN0ZW5l
cnMpOiBSZW1vdmVkIGFsaWFzZWRUeXBlIHJlbGF0ZWQgY29kZS4KKwogMjAxMC0xMC0wMSAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkZWxl
IFBldGVyc29uLgpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gNjg4OTcpCisrKyBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxMDUsNiArMzEwNSw4IEBAIGJvb2wg
RG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHIKICAgICAgICAgfQogICAgICAgICAK
ICAgICAgICAgb2xkRm9jdXNlZE5vZGUtPmRpc3BhdGNoVUlFdmVudChldmVudE5hbWVzKCkuZm9j
dXNvdXRFdmVudCwgMCwgMCk7IC8vIERPTSBsZXZlbCAzIG5hbWUgZm9yIHRoZSBidWJibGluZyBi
bHVyIGV2ZW50LgorICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlbW92ZSBmaXJpbmcgdGhl
IG9sZCBldmVudCBpbiB0aGUgZnV0dXJlLgorICAgICAgICBvbGRGb2N1c2VkTm9kZS0+ZGlzcGF0
Y2hVSUV2ZW50KGV2ZW50TmFtZXMoKS5ET01Gb2N1c091dEV2ZW50LCAwLCAwKTsgLy8gRE9NIGxl
dmVsIDIgbmFtZSBmb3IgY29tcGF0aWJpbGl0eS4KIAogICAgICAgICBpZiAobV9mb2N1c2VkTm9k
ZSkgewogICAgICAgICAgICAgLy8gaGFuZGxlciBzaGlmdGVkIGZvY3VzCkBAIC0zMTQ1LDYgKzMx
NDcsOCBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyCiAgICAgICAg
IH0KIAogICAgICAgICBtX2ZvY3VzZWROb2RlLT5kaXNwYXRjaFVJRXZlbnQoZXZlbnROYW1lcygp
LmZvY3VzaW5FdmVudCwgMCwgMCk7IC8vIERPTSBsZXZlbCAzIGJ1YmJsaW5nIGZvY3VzIGV2ZW50
LgorICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlbW92ZSBmaXJpbmcgdGhlIG9sZCBldmVu
dCBpbiB0aGUgZnV0dXJlLgorICAgICAgICBtX2ZvY3VzZWROb2RlLT5kaXNwYXRjaFVJRXZlbnQo
ZXZlbnROYW1lcygpLkRPTUZvY3VzSW5FdmVudCwgMCwgMCk7IC8vIERPTSBsZXZlbCAyIGZvciBj
b21wYXRpYmlsaXR5LgogCiAgICAgICAgIGlmIChtX2ZvY3VzZWROb2RlICE9IG5ld0ZvY3VzZWRO
b2RlKSB7IAogICAgICAgICAgICAgLy8gaGFuZGxlciBzaGlmdGVkIGZvY3VzCkluZGV4OiBXZWJD
b3JlL2RvbS9FdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRXZlbnQuY3BwCShy
ZXZpc2lvbiA2ODg5NykKKysrIFdlYkNvcmUvZG9tL0V2ZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgyLDI1ICsyODIsNCBAQCB2b2lkIEV2ZW50OjpzZXRVbmRlcmx5aW5nRXZlbnQoUGFzc1Jl
ZlB0CiAgICAgbV91bmRlcmx5aW5nRXZlbnQgPSB1ZTsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5n
JiBFdmVudDo6YWxpYXNlZFR5cGUoKSBjb25zdAotewotICAgIGlmICh0eXBlKCkgPT0gZXZlbnRO
YW1lcygpLmZvY3VzaW5FdmVudCkKLSAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5ET01Gb2N1
c0luRXZlbnQ7Ci0gICAgaWYgKHR5cGUoKSA9PSBldmVudE5hbWVzKCkuZm9jdXNvdXRFdmVudCkK
LSAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5ET01Gb2N1c091dEV2ZW50OwotICAgIGlmICh0
eXBlKCkgPT0gZXZlbnROYW1lcygpLkRPTUZvY3VzSW5FdmVudCkKLSAgICAgICAgcmV0dXJuIGV2
ZW50TmFtZXMoKS5mb2N1c2luRXZlbnQ7Ci0gICAgaWYgKHR5cGUoKSA9PSBldmVudE5hbWVzKCku
RE9NRm9jdXNPdXRFdmVudCkKLSAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMoKS5mb2N1c291dEV2
ZW50OwotICAgIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiB0eXBlKCk7
Ci19Ci0KLWJvb2wgRXZlbnQ6Omhhc0FsaWFzZWRUeXBlKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5mb2N1c2luRXZlbnQgfHwgdHlwZSgpID09IGV2ZW50TmFt
ZXMoKS5mb2N1c291dEV2ZW50IHx8Ci0gICAgICAgICAgIHR5cGUoKSA9PSBldmVudE5hbWVzKCku
RE9NRm9jdXNJbkV2ZW50IHx8IHR5cGUoKSA9PSBldmVudE5hbWVzKCkuRE9NRm9jdXNPdXRFdmVu
dDsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9kb20vRXZlbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9FdmVudC5oCShyZXZpc2lvbiA2ODg5NykKKysr
IFdlYkNvcmUvZG9tL0V2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDkgKzc2LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgICAgICAKLSAgICAgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBhbGlhc2VkVHlwZSgpIGNvbnN0OwotICAgICAgICBib29sIGhhc0FsaWFzZWRUeXBlKCkg
Y29uc3Q7Ci0KICAgICAgICAgRXZlbnRUYXJnZXQqIHRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIG1f
dGFyZ2V0LmdldCgpOyB9CiAgICAgICAgIHZvaWQgc2V0VGFyZ2V0KFBhc3NSZWZQdHI8RXZlbnRU
YXJnZXQ+KTsKIApJbmRleDogV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAkocmV2aXNpb24gNjg4OTcpCisrKyBXZWJD
b3JlL2RvbS9FdmVudFRhcmdldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5OSwxNCArMjk5LDYg
QEAgYm9vbCBFdmVudFRhcmdldDo6ZmlyZUV2ZW50TGlzdGVuZXJzKEV2ZQogICAgIGlmIChyZXN1
bHQgIT0gZC0+ZXZlbnRMaXN0ZW5lck1hcC5lbmQoKSkKICAgICAgICAgZmlyZUV2ZW50TGlzdGVu
ZXJzKGV2ZW50LCBkLCAqcmVzdWx0LT5zZWNvbmQpOwogICAgIAotICAgIC8vIEFsaWFzIERPTUZv
Y3VzSW4vRE9NRm9jdXNPdXQgdG8gZm9jdXNpbi9mb2N1c291dCAoYW5kIHZpY2UgdmVyc2EpLiBK
dXN0IGNvbnNpZGVyIHRoZW0gdG8gYmUgdGhlCi0gICAgLy8gc2FtZSBldmVudCAodHJpZ2dlcmlu
ZyBvbmUgYW5vdGhlcidzIGhhbmRsZXJzKS4gIFRoaXMgbWVjaGFuaXNtIGFsbG93cyB1cyB0byBk
ZXByZWNhdGUgb3IgY2hhbmdlIGV2ZW50Ci0gICAgLy8gbmFtZXMgaW4gdGhlIGZ1dHVyZSBhbmQg
c3RpbGwgbWFrZSB0aGVtIGJlIGludGVyb3BlcmFibGUuCi0gICAgaWYgKGV2ZW50LT5oYXNBbGlh
c2VkVHlwZSgpICYmICFldmVudC0+aW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkpIHsKLSAg
ICAgICAgRXZlbnRMaXN0ZW5lck1hcDo6aXRlcmF0b3IgcmVzdWx0ID0gZC0+ZXZlbnRMaXN0ZW5l
ck1hcC5maW5kKGV2ZW50LT5hbGlhc2VkVHlwZSgpKTsKLSAgICAgICAgaWYgKHJlc3VsdCAhPSBk
LT5ldmVudExpc3RlbmVyTWFwLmVuZCgpKQotICAgICAgICAgICAgZmlyZUV2ZW50TGlzdGVuZXJz
KGV2ZW50LCBkLCAqcmVzdWx0LT5zZWNvbmQpOwotICAgIH0KICAgICByZXR1cm4gIWV2ZW50LT5k
ZWZhdWx0UHJldmVudGVkKCk7CiB9CiAgICAgICAgIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjg5MTIp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBA
QAorMjAxMC0xMC0wMSAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERPTUZvY3VzSW4vRE9N
Rm9jdXNPdXQgcmV0dXJuIGZvY3VzaW4vZm9jdXNvdXQgRXZlbnQudHlwZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1ODAKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzgxMDczMTE+CisgICAgICAgIAorICAgICAgICAqIGZhc3QvZXZlbnRzL2ZvY3Vz
aW5vdXQuaHRtbDogTW9kaWZpZWQgdG8gY2hlY2sgdGhlIGV2ZW50IHR5cGUuCisKIDIwMTAtMTAt
MDEgIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBOb3QgcmV2aWV3
ZWQuIEJ1aWxkIGZpeC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ZvY3VzaW5vdXQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9mb2N1c2lub3V0Lmh0
bWwJKHJldmlzaW9uIDY4ODk3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZm9jdXNpbm91
dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDI0ICs5LDQxIEBAIGZ1bmN0aW9uIHdyaXRlUGFz
cyhpZCkKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuaW5uZXJIVE1MID0gIlBBU1Mi
OwogfQogCitmdW5jdGlvbiB3cml0ZUZhaWxlZChpZCwgcmVhc29uKQoreworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGlkKS5pbm5lckhUTUwgPSAiRkFJTDogIiArIHJlYXNvbjsKK30KKwog
ZnVuY3Rpb24gZm9jdXNIYW5kbGVyKGV2ZW50KQogewotICAgIHdyaXRlUGFzcygncmVzdWx0MScp
OworICAgIGlmIChldmVudC50eXBlID09ICJmb2N1c2luIikKKyAgICAgICAgd3JpdGVQYXNzKCdy
ZXN1bHQxJyk7CisgICAgZWxzZQorICAgICAgICB3cml0ZUZhaWxlZCgncmVzdWx0MScsICJXcm9u
ZyBldmVuIHR5cGUiKTsKIH0KIAogZnVuY3Rpb24gYmx1ckhhbmRsZXIoZXZlbnQpCiB7Ci0gICAg
d3JpdGVQYXNzKCdyZXN1bHQyJyk7CisgICAgaWYgKGV2ZW50LnR5cGUgPT0gImZvY3Vzb3V0IikK
KyAgICAgICAgd3JpdGVQYXNzKCdyZXN1bHQyJyk7CisgICAgZWxzZQorICAgICAgICB3cml0ZUZh
aWxlZCgncmVzdWx0MicsICJXcm9uZyBldmVuIHR5cGUiKTsKIH0KIAogZnVuY3Rpb24gZm9jdXNI
YW5kbGVyVHdvKGV2ZW50KQogewotICAgIHdyaXRlUGFzcygncmVzdWx0MycpOworICAgIGlmIChl
dmVudC50eXBlID09ICJET01Gb2N1c0luIikKKyAgICAgICAgd3JpdGVQYXNzKCdyZXN1bHQzJyk7
CisgICAgZWxzZQorICAgICAgICB3cml0ZUZhaWxlZCgncmVzdWx0MycsICJXcm9uZyBldmVuIHR5
cGUiKTsKIH0KIAogZnVuY3Rpb24gYmx1ckhhbmRsZXJUd28oZXZlbnQpCiB7Ci0gICAgd3JpdGVQ
YXNzKCdyZXN1bHQ0Jyk7CisgICAgaWYgKGV2ZW50LnR5cGUgPT0gIkRPTUZvY3VzT3V0IikKKyAg
ICAgICAgd3JpdGVQYXNzKCdyZXN1bHQ0Jyk7CisgICAgZWxzZQorICAgICAgICB3cml0ZUZhaWxl
ZCgncmVzdWx0NCcsICJXcm9uZyBldmVuIHR5cGUiKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgo=
</data>
<flag name="review"
          id="59207"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>