<?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>49578</bug_id>
          
          <creation_ts>2010-11-15 22:14:04 -0800</creation_ts>
          <short_desc>ScriptElementData should be a private member of ScriptElement</short_desc>
          <delta_ts>2010-11-17 12:22:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>buildbot</cc>
    
    <cc>darin</cc>
    
    <cc>tonyg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>309587</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-15 22:14:04 -0800</bug_when>
    <thetext>ScriptElementData is a protected membre variable of ScriptElement but it should be a private member variable since HTMLScriptElement and SVGScriptElement only use a small subset of ScriptElementData&apos;s methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309591</commentid>
    <comment_count>1</comment_count>
      <attachid>73963</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-15 22:29:31 -0800</bug_when>
    <thetext>Created attachment 73963
cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309687</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-11-16 05:31:42 -0800</bug_when>
    <thetext>Attachment 73963 did not build on win:
Build output: http://queues.webkit.org/results/6102015</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309780</commentid>
    <comment_count>3</comment_count>
      <attachid>74005</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-16 09:45:17 -0800</bug_when>
    <thetext>Created attachment 74005
fixed haveFiredLoadEvent</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309801</commentid>
    <comment_count>4</comment_count>
      <attachid>74005</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-16 10:29:00 -0800</bug_when>
    <thetext>Comment on attachment 74005
fixed haveFiredLoadEvent

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

&gt; WebCore/dom/ScriptElement.h:95
&gt;  protected:
&gt; +    bool haveFiredLoadEvent() const { return m_data.haveFiredLoadEvent(); }

Why are any members of ScriptElementData protected? Is there a class that derives from ScriptElementData? If not, then protected and private mean the same thing, and these should be private rather than protected.

&gt; WebCore/html/HTMLScriptElement.h:41
&gt; -    bool haveFiredLoadEvent() const { return m_data.haveFiredLoadEvent(); }
&gt; +    bool haveFiredLoadEvent() const { return ScriptElement::haveFiredLoadEvent(); }

You can accomplish the same thing here by just removing this function altogether.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309816</commentid>
    <comment_count>5</comment_count>
      <attachid>74005</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-16 10:48:35 -0800</bug_when>
    <thetext>Comment on attachment 74005
fixed haveFiredLoadEvent

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

&gt;&gt; WebCore/dom/ScriptElement.h:95
&gt;&gt; +    bool haveFiredLoadEvent() const { return m_data.haveFiredLoadEvent(); }
&gt; 
&gt; Why are any members of ScriptElementData protected? Is there a class that derives from ScriptElementData? If not, then protected and private mean the same thing, and these should be private rather than protected.

On this isn&apos;t a part of ScriptElementData.  It&apos;s a part of ScriptElement, which is inherited by HTMLScriptElement and SVGScriptElement.

&gt;&gt; WebCore/html/HTMLScriptElement.h:41
&gt;&gt; +    bool haveFiredLoadEvent() const { return ScriptElement::haveFiredLoadEvent(); }
&gt; 
&gt; You can accomplish the same thing here by just removing this function altogether.

SVGScriptElement doesn&apos;t define this function so making haveFiredLoadEvent() public in ScriptElement means we&apos;re adding haveFiredLoadEvent to SVGScriptElement as well.  If that&apos;s desirable, I&apos;ll do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310121</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-16 21:56:56 -0800</bug_when>
    <thetext>Committed r72172: &lt;http://trac.webkit.org/changeset/72172&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310443</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-17 12:22:48 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt;&gt; WebCore/html/HTMLScriptElement.h:41
&gt; &gt;&gt; +    bool haveFiredLoadEvent() const { return ScriptElement::haveFiredLoadEvent(); }
&gt; &gt; 
&gt; &gt; You can accomplish the same thing here by just removing this function altogether.
&gt; 
&gt; SVGScriptElement doesn&apos;t define this function so making haveFiredLoadEvent() public in ScriptElement means we&apos;re adding haveFiredLoadEvent to SVGScriptElement as well.  If that&apos;s desirable, I&apos;ll do.

It’s fine to add it to SVGScriptElement.

If we did not want it public in SVGScriptElement, there are two solutions:

    1) Make this protected in ScriptElement, and put &quot;using ScriptElement::haveFiredLoadingEvent&quot; in the public section of HTMLScriptElement.

    2) Make this public in ScriptElement, and put &quot;using ScriptElement::haveFiredLoadingEvent&quot; in the private section of SVGScriptElement.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73963</attachid>
            <date>2010-11-15 22:29:31 -0800</date>
            <delta_ts>2010-11-16 09:45:14 -0800</delta_ts>
            <desc>cleanup</desc>
            <filename>bug-49578-20101115222930.patch</filename>
            <type>text/plain</type>
            <size>10319</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MjA2MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTAtMTEtMTUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2Ny
aXB0RWxlbWVudERhdGEgc2hvdWxkIGJlIGEgcHJpdmF0ZSBtZW1iZXIgb2YgU2NyaXB0RWxlbWVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk1NzgK
KworICAgICAgICBQcml2YXRpemVkIG1fZGF0YSBvZiBTY3JpcHRFbGVtZW50LiBBZGRlZCBoYXZl
RmlyZWRMb2FkRXZlbnQsIHNldEhhdmVGaXJlZExvYWRFdmVudCwgY3JlYXRlZEJ5UGFyc2VyLAor
ICAgICAgICBhbmQgaXNFdmFsdWF0ZWQgdG8gU2NyaXB0RWxlbWVudCB0byBwcm94eSBjYWxscyBm
cm9tIEhUTUxTY3JpcHRFbGVtZW50IGFuZCBTVkdTY3JpcHRFbGVtZW50IHRvIFNjcmlwdEVsZW1l
bnREYXRhLgorCisgICAgICAgIE5vIHRlc3RzIGFyZSBhZGRlZCBzaW5jZSB0aGlzIGlzIGEgY2xl
YW51cC4KKworICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRFbGVtZW50OjpoYXZlRmlyZWRMb2FkRXZlbnQpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnNldEhhdmVGaXJlZExvYWRFdmVudCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6Y3JlYXRlZEJ5UGFyc2VyKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojppc0V2YWx1YXRlZCk6IEFkZGVkLgorICAg
ICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFNjcmlwdEVsZW1lbnQ6OmRpc3BhdGNoTG9hZEV2ZW50KTogQ2FsbHMgaGF2ZUZpcmVkTG9hZEV2
ZW50IGFuZCBzZXRIYXZlRmlyZWRMb2FkRXZlbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Ny
aXB0RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbik6IENh
bGxzIGlzRXZhbHVhdGVkLgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50Ojp0ZXh0KTogQ2FsbHMgc2NyaXB0Q29u
dGVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50OjpoYXZlRmlyZWRMb2Fk
RXZlbnQpOiBDYWxscyBoYXZlRmlyZWRMb2FkRXZlbnQuCisgICAgICAgICogc3ZnL1NWR1Njcmlw
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZCk6IENhbGxzIGhhdmVGaXJlZExvYWRFdmVudCBhbmQgY3JlYXRlZEJ5UGFy
c2VyLgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9j
dW1lbnQpOiBDYWxscyBjcmVhdGVkQnlQYXJzZXIuCisgICAgICAgIChXZWJDb3JlOjpTVkdTY3Jp
cHRFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4pOiBDYWxscyBzZXRIYXZlRmlyZWRMb2Fk
RXZlbnQuCisgICAgICAgIChXZWJDb3JlOjpTVkdTY3JpcHRFbGVtZW50OjpoYXZlTG9hZGVkUmVx
dWlyZWRSZXNvdXJjZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1l
bnQ6OmRpc3BhdGNoTG9hZEV2ZW50KTogQ2FsbHMgaGF2ZUZpcmVkTG9hZEV2ZW50LgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0
ZXNBbmRDaGlsZHJlbik6IENhbGxzIGNyZWF0ZWRCeVBhcnNlciwKKyAgICAgICAgaGF2ZUZpcmVk
TG9hZEV2ZW50LCBhbmQgc2V0SGF2ZUZpcmVkTG9hZEV2ZW50LgorCiAyMDEwLTExLTE1ICBEaW1p
dHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCShyZXZpc2lvbiA3MjA2MCkKKysr
IFdlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsOCArMzEs
NiBAQCBjbGFzcyBFbGVtZW50OwogY2xhc3MgU2NyaXB0RWxlbWVudDsKIGNsYXNzIFNjcmlwdFNv
dXJjZUNvZGU7CiAKLS8vIEhUTUwvU1ZHU2NyaXB0RWxlbWVudCBob2xkIHRoaXMgc3RydWN0IGFz
IG1lbWJlciB2YXJpYWJsZQotLy8gYW5kIHBhc3MgaXQgdG8gdGhlIHN0YXRpYyBoZWxwZXIgZnVu
Y3Rpb25zIGluIFNjcmlwdEVsZW1lbnQKIGNsYXNzIFNjcmlwdEVsZW1lbnREYXRhIDogcHJpdmF0
ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgU2NyaXB0RWxlbWVudERhdGEo
U2NyaXB0RWxlbWVudCosIEVsZW1lbnQqLCBib29sIGlzRXZhbHVhdGVkKTsKQEAgLTg3LDIwICs4
NSwxOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHNjcmlwdENvbnRlbnQoKSBjb25zdDsKICAgICBi
b29sIHNob3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQoKSBjb25zdDsKICAgICB2b2lkIGV4ZWN1dGVT
Y3JpcHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOwotICAgIAotICAgIHZpcnR1YWwgU3RyaW5n
IHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNo
YXJzZXRBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyB0eXBl
QXR0cmlidXRlVmFsdWUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgbGFuZ3VhZ2VB
dHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBmb3JBdHRyaWJ1
dGVWYWx1ZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBldmVudEF0dHJpYnV0ZVZh
bHVlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkg
Y29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qg
PSAwOwogCisgICAgLy8gWE1MIHBhcnNlciBjYWxscyB0aGVzZQorICAgIHZpcnR1YWwgU3RyaW5n
IHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaExvYWRFdmVudCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hFcnJvckV2ZW50
KCkgPSAwOwogCiBwcm90ZWN0ZWQ6CisgICAgYm9vbCBoYXZlRmlyZWRMb2FkRXZlbnQoKSBjb25z
dCB7IHJldHVybiBtX2RhdGEuaGF2ZUZpcmVkTG9hZEV2ZW50KCk7IH0KKyAgICB2b2lkIHNldEhh
dmVGaXJlZExvYWRFdmVudChib29sIGZpcmVkTG9hZCkgeyByZXR1cm4gbV9kYXRhLnNldEhhdmVG
aXJlZExvYWRFdmVudChmaXJlZExvYWQpOyB9CisgICAgYm9vbCBjcmVhdGVkQnlQYXJzZXIoKSBj
b25zdCB7IHJldHVybiBtX2RhdGEuY3JlYXRlZEJ5UGFyc2VyKCk7IH0KKyAgICBib29sIGlzRXZh
bHVhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmlzRXZhbHVhdGVkKCk7IH0KKwogICAgIC8v
IEhlbHBlciBmdW5jdGlvbnMgdXNlZCBieSBvdXIgcGFyZW50IGNsYXNzZXMuCiAgICAgdm9pZCBp
bnNlcnRlZEludG9Eb2N1bWVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVybCk7CiAgICAgdm9pZCBy
ZW1vdmVkRnJvbURvY3VtZW50KCk7CkBAIC0xMDgsNiArMTA0LDE3IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbihjb25zdCBTdHJpbmcmIHNvdXJjZVVybCk7CiAg
ICAgdm9pZCBoYW5kbGVTb3VyY2VBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpOwog
Citwcml2YXRlOgorICAgIHZpcnR1YWwgU3RyaW5nIGNoYXJzZXRBdHRyaWJ1dGVWYWx1ZSgpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyB0eXBlQXR0cmlidXRlVmFsdWUoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBTdHJpbmcgbGFuZ3VhZ2VBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIFN0cmluZyBldmVudEF0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOworCisgICAgZnJpZW5kIGNsYXNz
IFNjcmlwdEVsZW1lbnREYXRhOworCiAgICAgU2NyaXB0RWxlbWVudERhdGEgbV9kYXRhOwogfTsK
IApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCShyZXZpc2lvbiA3MjA2MCkKKysr
IFdlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTky
LDExICs5Miw2IEBAIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnJlbW92ZWRGcm9tRG9jdW0KICAg
ICBTY3JpcHRFbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KCk7CiB9CiAKLVN0cmluZyBIVE1M
U2NyaXB0RWxlbWVudDo6dGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZGF0YS5zY3JpcHRD
b250ZW50KCk7Ci19Ci0KIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnNldFRleHQoY29uc3QgU3Ry
aW5nICZ2YWx1ZSkKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTE2Nyw4ICsxNjIs
OCBAQCBib29sIEhUTUxTY3JpcHRFbGVtZW50OjpkZWZlckF0dHJpYnV0ZVZhCiAKIHZvaWQgSFRN
TFNjcmlwdEVsZW1lbnQ6OmRpc3BhdGNoTG9hZEV2ZW50KCkKIHsKLSAgICBBU1NFUlQoIW1fZGF0
YS5oYXZlRmlyZWRMb2FkRXZlbnQoKSk7Ci0gICAgbV9kYXRhLnNldEhhdmVGaXJlZExvYWRFdmVu
dCh0cnVlKTsKKyAgICBBU1NFUlQoIWhhdmVGaXJlZExvYWRFdmVudCgpKTsKKyAgICBzZXRIYXZl
RmlyZWRMb2FkRXZlbnQodHJ1ZSk7CiAKICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmxvYWRFdmVudCwgZmFsc2UsIGZhbHNlKSk7CiB9CkBAIC0xODAsNyArMTc1
LDcgQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6ZGlzcGF0Y2hFcnJvckV2ZQogCiBQYXNzUmVm
UHRyPEVsZW1lbnQ+IEhUTUxTY3JpcHRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmli
dXRlc0FuZENoaWxkcmVuKCkgY29uc3QKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxT
Y3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIGRvY3VtZW50KCksIGZhbHNlLCBtX2RhdGEuaXNFdmFs
dWF0ZWQoKSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFNjcmlwdEVsZW1lbnQodGFn
UU5hbWUoKSwgZG9jdW1lbnQoKSwgZmFsc2UsIGlzRXZhbHVhdGVkKCkpKTsKIH0KIAogfQpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgJKHJldmlzaW9uIDcyMDYwKQorKysgV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDEyICszMywxMiBA
QCBjbGFzcyBIVE1MU2NyaXB0RWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlCiBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKLSAgICBTdHJpbmcg
dGV4dCgpIGNvbnN0OworICAgIFN0cmluZyB0ZXh0KCkgY29uc3QgeyByZXR1cm4gc2NyaXB0Q29u
dGVudCgpOyB9CiAgICAgdm9pZCBzZXRUZXh0KGNvbnN0IFN0cmluZyYpOwogCiAgICAgS1VSTCBz
cmMoKSBjb25zdDsKIAotICAgIGJvb2wgaGF2ZUZpcmVkTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1
cm4gbV9kYXRhLmhhdmVGaXJlZExvYWRFdmVudCgpOyB9CisgICAgYm9vbCBoYXZlRmlyZWRMb2Fk
RXZlbnQoKSBjb25zdCB7IHJldHVybiBoYXZlRmlyZWRMb2FkRXZlbnQoKTsgfQogCiBwcml2YXRl
OgogICAgIEhUTUxTY3JpcHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCos
IGJvb2wgY3JlYXRlZEJ5UGFyc2VyLCBib29sIGlzRXZhbHVhdGVkKTsKSW5kZXg6IFdlYkNvcmUv
c3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1Nj
cmlwdEVsZW1lbnQuY3BwCShyZXZpc2lvbiA3MjA2MCkKKysrIFdlYkNvcmUvc3ZnL1NWR1Njcmlw
dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw4ICs2OCw4IEBAIHZvaWQgU1ZHU2Ny
aXB0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmcKICAgICAgICAgLy8gSGFuZGxlIGR5bmFtaWMg
dXBkYXRlcyBvZiB0aGUgJ2V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQnIGF0dHJpYnV0ZS4gT25s
eSBwb3NzaWJsZSBjYXNlOiBjaGFuZ2luZyBmcm9tICd0cnVlJyB0byAnZmFsc2UnCiAgICAgICAg
IC8vIGNhdXNlcyBhbiBpbW1lZGlhdGUgZGlzcGF0Y2ggb2YgdGhlIFNWR0xvYWQgZXZlbnQuIElm
IHRoZSBhdHRyaWJ1dGUgdmFsdWUgd2FzICdmYWxzZScgYmVmb3JlIGluc2VydGluZyB0aGUgc2Ny
aXB0IGVsZW1lbnQKICAgICAgICAgLy8gaW4gdGhlIGRvY3VtZW50LCB0aGUgU1ZHTG9hZCBldmVu
dCBoYXMgYWxyZWFkeSBiZWVuIGRpc3BhdGNoZWQuCi0gICAgICAgIGlmICghZXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZEJhc2VWYWx1ZSgpICYmICFtX2RhdGEuaGF2ZUZpcmVkTG9hZEV2ZW50KCkg
JiYgIW1fZGF0YS5jcmVhdGVkQnlQYXJzZXIoKSkgewotICAgICAgICAgICAgbV9kYXRhLnNldEhh
dmVGaXJlZExvYWRFdmVudCh0cnVlKTsKKyAgICAgICAgaWYgKCFleHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkQmFzZVZhbHVlKCkgJiYgIWhhdmVGaXJlZExvYWRFdmVudCgpICYmICFjcmVhdGVkQnlQ
YXJzZXIoKSkgeworICAgICAgICAgICAgc2V0SGF2ZUZpcmVkTG9hZEV2ZW50KHRydWUpOwogICAg
ICAgICAgICAgQVNTRVJUKGhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcygpKTsKIAogICAgICAg
ICAgICAgc2VuZFNWR0xvYWRFdmVudElmUG9zc2libGUoKTsKQEAgLTk4LDEyICs5OCwxMiBAQCB2
b2lkIFNWR1NjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtCiAgICAgU1ZHRWxlbWVudDo6
aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKICAgICBTY3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9E
b2N1bWVudChzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpKTsKIAotICAgIGlmIChtX2RhdGEuY3JlYXRl
ZEJ5UGFyc2VyKCkpCisgICAgaWYgKGNyZWF0ZWRCeVBhcnNlcigpKQogICAgICAgICByZXR1cm47
CiAKICAgICAvLyBFdmVudHVhbGx5IHNlbmQgU1ZHTG9hZCBldmVudCBub3cgZm9yIHRoZSBkeW5h
bWljYWxseSBpbnNlcnRlZCBzY3JpcHQgZWxlbWVudAogICAgIGlmICghZXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZEJhc2VWYWx1ZSgpKSB7Ci0gICAgICAgIG1fZGF0YS5zZXRIYXZlRmlyZWRMb2Fk
RXZlbnQodHJ1ZSk7CisgICAgICAgIHNldEhhdmVGaXJlZExvYWRFdmVudCh0cnVlKTsKICAgICAg
ICAgc2VuZFNWR0xvYWRFdmVudElmUG9zc2libGUoKTsKICAgICB9CiB9CkBAIC0xMzIsNyArMTMy
LDcgQEAgdm9pZCBTVkdTY3JpcHRFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbAogCiAgICAgLy8g
QSBTVkdMb2FkIGV2ZW50IGhhcyBiZWVuIGZpcmVkIGJ5IFNWR0VsZW1lbnQ6OmZpbmlzaFBhcnNp
bmdDaGlsZHJlbi4KICAgICBpZiAoIWV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRCYXNlVmFsdWUo
KSkKLSAgICAgICAgbV9kYXRhLnNldEhhdmVGaXJlZExvYWRFdmVudCh0cnVlKTsKKyAgICAgICAg
c2V0SGF2ZUZpcmVkTG9hZEV2ZW50KHRydWUpOwogfQogCiBTdHJpbmcgU1ZHU2NyaXB0RWxlbWVu
dDo6dHlwZSgpIGNvbnN0CkBAIC0xNTQsNyArMTU0LDcgQEAgdm9pZCBTVkdTY3JpcHRFbGVtZW50
OjphZGRTdWJyZXNvdXJjZUF0dAogCiBib29sIFNWR1NjcmlwdEVsZW1lbnQ6OmhhdmVMb2FkZWRS
ZXF1aXJlZFJlc291cmNlcygpCiB7Ci0gICAgcmV0dXJuICFleHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkQmFzZVZhbHVlKCkgfHwgbV9kYXRhLmhhdmVGaXJlZExvYWRFdmVudCgpOworICAgIHJldHVy
biAhZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEJhc2VWYWx1ZSgpIHx8IGhhdmVGaXJlZExvYWRF
dmVudCgpOwogfQogCiBTdHJpbmcgU1ZHU2NyaXB0RWxlbWVudDo6c291cmNlQXR0cmlidXRlVmFs
dWUoKSBjb25zdApAQCAtMjAxLDkgKzIwMSw5IEBAIHZvaWQgU1ZHU2NyaXB0RWxlbWVudDo6ZGlz
cGF0Y2hMb2FkRXZlbnQKIHsKICAgICBib29sIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgPSBl
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQmFzZVZhbHVlKCk7CiAKLSAgICBpZiAobV9kYXRhLmNy
ZWF0ZWRCeVBhcnNlcigpKQotICAgICAgICBBU1NFUlQoZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCAhPSBtX2RhdGEuaGF2ZUZpcmVkTG9hZEV2ZW50KCkpOwotICAgIGVsc2UgaWYgKG1fZGF0YS5o
YXZlRmlyZWRMb2FkRXZlbnQoKSkgeworICAgIGlmIChjcmVhdGVkQnlQYXJzZXIoKSkKKyAgICAg
ICAgQVNTRVJUKGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgIT0gaGF2ZUZpcmVkTG9hZEV2ZW50
KCkpOworICAgIGVsc2UgaWYgKGhhdmVGaXJlZExvYWRFdmVudCgpKSB7CiAgICAgICAgIC8vIElm
IHdlJ3ZlIGFscmVhZHkgZmlyZWQgYW4gbG9hZCBldmVudCBhbmQgZXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCBpcyBzZXQgdG8gJ3RydWUnCiAgICAgICAgIC8vIGV4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQgaGFzIGJlZW4gbW9kaWZpZWQgd2hpbGUgbG9hZGluZyB0aGUgPHNjcmlwdD4uIERvbid0
IGRpc3BhdGNoIHR3aWNlLgogICAgICAgICBpZiAoZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkK
QEAgLTIxNSwxMCArMjE1LDEwIEBAIHZvaWQgU1ZHU2NyaXB0RWxlbWVudDo6ZGlzcGF0Y2hMb2Fk
RXZlbnQKICAgICAvLyBTVkcgZmlyZXMgdGhlIFNWR0xvYWQgZXZlbnQgaW1tZWRpYXRlbHkgYWZ0
ZXIgcGFyc2luZyB0aGUgPHNjcmlwdD4gZWxlbWVudCwgaWYgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZAogICAgIC8vIGlzIHNldCB0byAnZmFsc2UnLCBvdGhlcndoaXNlIGl0IGRpc3BhdGNoZXMg
dGhlICdTVkdMb2FkJyBldmVudCBqdXN0IGFmdGVyIGxvYWRpbmcgdGhlIHJlbW90ZSByZXNvdXJj
ZS4KICAgICBpZiAoZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkgewotICAgICAgICBBU1NFUlQo
IW1fZGF0YS5oYXZlRmlyZWRMb2FkRXZlbnQoKSk7CisgICAgICAgIEFTU0VSVCghaGF2ZUZpcmVk
TG9hZEV2ZW50KCkpOwogCiAgICAgICAgIC8vIERpc3BhdGNoIFNWR0xvYWQgZXZlbnQKLSAgICAg
ICAgbV9kYXRhLnNldEhhdmVGaXJlZExvYWRFdmVudCh0cnVlKTsKKyAgICAgICAgc2V0SGF2ZUZp
cmVkTG9hZEV2ZW50KHRydWUpOwogICAgICAgICBBU1NFUlQoaGF2ZUxvYWRlZFJlcXVpcmVkUmVz
b3VyY2VzKCkpOwogCiAgICAgICAgIHNlbmRTVkdMb2FkRXZlbnRJZlBvc3NpYmxlKCk7CkBAIC0y
MzIsNyArMjMyLDcgQEAgdm9pZCBTVkdTY3JpcHRFbGVtZW50OjpkaXNwYXRjaEVycm9yRXZlbgog
CiBQYXNzUmVmUHRyPEVsZW1lbnQ+IFNWR1NjcmlwdEVsZW1lbnQ6OmNsb25lRWxlbWVudFdpdGhv
dXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKSBjb25zdAogewotICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU1ZHU2NyaXB0RWxlbWVudCh0YWdRTmFtZSgpLCBkb2N1bWVudCgpLCBmYWxzZSwgbV9kYXRh
LmlzRXZhbHVhdGVkKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1NjcmlwdEVsZW1l
bnQodGFnUU5hbWUoKSwgZG9jdW1lbnQoKSwgZmFsc2UsIGlzRXZhbHVhdGVkKCkpKTsKIH0KIAog
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74005</attachid>
            <date>2010-11-16 09:45:17 -0800</date>
            <delta_ts>2010-11-16 10:48:35 -0800</delta_ts>
            <desc>fixed haveFiredLoadEvent</desc>
            <filename>bug-49578-20101116094516.patch</filename>
            <type>text/plain</type>
            <size>10334</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MjA2MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTAtMTEtMTUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2Ny
aXB0RWxlbWVudERhdGEgc2hvdWxkIGJlIGEgcHJpdmF0ZSBtZW1iZXIgb2YgU2NyaXB0RWxlbWVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk1NzgK
KworICAgICAgICBQcml2YXRpemVkIG1fZGF0YSBvZiBTY3JpcHRFbGVtZW50LiBBZGRlZCBoYXZl
RmlyZWRMb2FkRXZlbnQsIHNldEhhdmVGaXJlZExvYWRFdmVudCwgY3JlYXRlZEJ5UGFyc2VyLAor
ICAgICAgICBhbmQgaXNFdmFsdWF0ZWQgdG8gU2NyaXB0RWxlbWVudCB0byBwcm94eSBjYWxscyBm
cm9tIEhUTUxTY3JpcHRFbGVtZW50IGFuZCBTVkdTY3JpcHRFbGVtZW50IHRvIFNjcmlwdEVsZW1l
bnREYXRhLgorCisgICAgICAgIE5vIHRlc3RzIGFyZSBhZGRlZCBzaW5jZSB0aGlzIGlzIGEgY2xl
YW51cC4KKworICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRFbGVtZW50OjpoYXZlRmlyZWRMb2FkRXZlbnQpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnNldEhhdmVGaXJlZExvYWRFdmVudCk6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6Y3JlYXRlZEJ5UGFyc2VyKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojppc0V2YWx1YXRlZCk6IEFkZGVkLgorICAg
ICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFNjcmlwdEVsZW1lbnQ6OmRpc3BhdGNoTG9hZEV2ZW50KTogQ2FsbHMgaGF2ZUZpcmVkTG9hZEV2
ZW50IGFuZCBzZXRIYXZlRmlyZWRMb2FkRXZlbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Ny
aXB0RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbik6IENh
bGxzIGlzRXZhbHVhdGVkLgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50Ojp0ZXh0KTogQ2FsbHMgc2NyaXB0Q29u
dGVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50OjpoYXZlRmlyZWRMb2Fk
RXZlbnQpOiBDYWxscyBoYXZlRmlyZWRMb2FkRXZlbnQuCisgICAgICAgICogc3ZnL1NWR1Njcmlw
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZCk6IENhbGxzIGhhdmVGaXJlZExvYWRFdmVudCBhbmQgY3JlYXRlZEJ5UGFy
c2VyLgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9j
dW1lbnQpOiBDYWxscyBjcmVhdGVkQnlQYXJzZXIuCisgICAgICAgIChXZWJDb3JlOjpTVkdTY3Jp
cHRFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4pOiBDYWxscyBzZXRIYXZlRmlyZWRMb2Fk
RXZlbnQuCisgICAgICAgIChXZWJDb3JlOjpTVkdTY3JpcHRFbGVtZW50OjpoYXZlTG9hZGVkUmVx
dWlyZWRSZXNvdXJjZXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1l
bnQ6OmRpc3BhdGNoTG9hZEV2ZW50KTogQ2FsbHMgaGF2ZUZpcmVkTG9hZEV2ZW50LgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6Y2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0
ZXNBbmRDaGlsZHJlbik6IENhbGxzIGNyZWF0ZWRCeVBhcnNlciwKKyAgICAgICAgaGF2ZUZpcmVk
TG9hZEV2ZW50LCBhbmQgc2V0SGF2ZUZpcmVkTG9hZEV2ZW50LgorCiAyMDEwLTExLTE1ICBEaW1p
dHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCShyZXZpc2lvbiA3MjA2MCkKKysr
IFdlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsOCArMzEs
NiBAQCBjbGFzcyBFbGVtZW50OwogY2xhc3MgU2NyaXB0RWxlbWVudDsKIGNsYXNzIFNjcmlwdFNv
dXJjZUNvZGU7CiAKLS8vIEhUTUwvU1ZHU2NyaXB0RWxlbWVudCBob2xkIHRoaXMgc3RydWN0IGFz
IG1lbWJlciB2YXJpYWJsZQotLy8gYW5kIHBhc3MgaXQgdG8gdGhlIHN0YXRpYyBoZWxwZXIgZnVu
Y3Rpb25zIGluIFNjcmlwdEVsZW1lbnQKIGNsYXNzIFNjcmlwdEVsZW1lbnREYXRhIDogcHJpdmF0
ZSBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgU2NyaXB0RWxlbWVudERhdGEo
U2NyaXB0RWxlbWVudCosIEVsZW1lbnQqLCBib29sIGlzRXZhbHVhdGVkKTsKQEAgLTg3LDIwICs4
NSwxOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHNjcmlwdENvbnRlbnQoKSBjb25zdDsKICAgICBi
b29sIHNob3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQoKSBjb25zdDsKICAgICB2b2lkIGV4ZWN1dGVT
Y3JpcHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYpOwotICAgIAotICAgIHZpcnR1YWwgU3RyaW5n
IHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGNo
YXJzZXRBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyB0eXBl
QXR0cmlidXRlVmFsdWUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgbGFuZ3VhZ2VB
dHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBmb3JBdHRyaWJ1
dGVWYWx1ZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFN0cmluZyBldmVudEF0dHJpYnV0ZVZh
bHVlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkg
Y29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qg
PSAwOwogCisgICAgLy8gWE1MIHBhcnNlciBjYWxscyB0aGVzZQorICAgIHZpcnR1YWwgU3RyaW5n
IHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaExvYWRFdmVudCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hFcnJvckV2ZW50
KCkgPSAwOwogCiBwcm90ZWN0ZWQ6CisgICAgYm9vbCBoYXZlRmlyZWRMb2FkRXZlbnQoKSBjb25z
dCB7IHJldHVybiBtX2RhdGEuaGF2ZUZpcmVkTG9hZEV2ZW50KCk7IH0KKyAgICB2b2lkIHNldEhh
dmVGaXJlZExvYWRFdmVudChib29sIGZpcmVkTG9hZCkgeyByZXR1cm4gbV9kYXRhLnNldEhhdmVG
aXJlZExvYWRFdmVudChmaXJlZExvYWQpOyB9CisgICAgYm9vbCBjcmVhdGVkQnlQYXJzZXIoKSBj
b25zdCB7IHJldHVybiBtX2RhdGEuY3JlYXRlZEJ5UGFyc2VyKCk7IH0KKyAgICBib29sIGlzRXZh
bHVhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmlzRXZhbHVhdGVkKCk7IH0KKwogICAgIC8v
IEhlbHBlciBmdW5jdGlvbnMgdXNlZCBieSBvdXIgcGFyZW50IGNsYXNzZXMuCiAgICAgdm9pZCBp
bnNlcnRlZEludG9Eb2N1bWVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVybCk7CiAgICAgdm9pZCBy
ZW1vdmVkRnJvbURvY3VtZW50KCk7CkBAIC0xMDgsNiArMTA0LDE3IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbihjb25zdCBTdHJpbmcmIHNvdXJjZVVybCk7CiAg
ICAgdm9pZCBoYW5kbGVTb3VyY2VBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpOwog
Citwcml2YXRlOgorICAgIHZpcnR1YWwgU3RyaW5nIGNoYXJzZXRBdHRyaWJ1dGVWYWx1ZSgpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyB0eXBlQXR0cmlidXRlVmFsdWUoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBTdHJpbmcgbGFuZ3VhZ2VBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIFN0cmluZyBldmVudEF0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgYm9vbCBhc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3QgPSAwOworCisgICAgZnJpZW5kIGNsYXNz
IFNjcmlwdEVsZW1lbnREYXRhOworCiAgICAgU2NyaXB0RWxlbWVudERhdGEgbV9kYXRhOwogfTsK
IApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCShyZXZpc2lvbiA3MjA2MCkKKysr
IFdlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTky
LDExICs5Miw2IEBAIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnJlbW92ZWRGcm9tRG9jdW0KICAg
ICBTY3JpcHRFbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KCk7CiB9CiAKLVN0cmluZyBIVE1M
U2NyaXB0RWxlbWVudDo6dGV4dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZGF0YS5zY3JpcHRD
b250ZW50KCk7Ci19Ci0KIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnNldFRleHQoY29uc3QgU3Ry
aW5nICZ2YWx1ZSkKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTE2Nyw4ICsxNjIs
OCBAQCBib29sIEhUTUxTY3JpcHRFbGVtZW50OjpkZWZlckF0dHJpYnV0ZVZhCiAKIHZvaWQgSFRN
TFNjcmlwdEVsZW1lbnQ6OmRpc3BhdGNoTG9hZEV2ZW50KCkKIHsKLSAgICBBU1NFUlQoIW1fZGF0
YS5oYXZlRmlyZWRMb2FkRXZlbnQoKSk7Ci0gICAgbV9kYXRhLnNldEhhdmVGaXJlZExvYWRFdmVu
dCh0cnVlKTsKKyAgICBBU1NFUlQoIWhhdmVGaXJlZExvYWRFdmVudCgpKTsKKyAgICBzZXRIYXZl
RmlyZWRMb2FkRXZlbnQodHJ1ZSk7CiAKICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmxvYWRFdmVudCwgZmFsc2UsIGZhbHNlKSk7CiB9CkBAIC0xODAsNyArMTc1
LDcgQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6ZGlzcGF0Y2hFcnJvckV2ZQogCiBQYXNzUmVm
UHRyPEVsZW1lbnQ+IEhUTUxTY3JpcHRFbGVtZW50OjpjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmli
dXRlc0FuZENoaWxkcmVuKCkgY29uc3QKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxT
Y3JpcHRFbGVtZW50KHRhZ1FOYW1lKCksIGRvY3VtZW50KCksIGZhbHNlLCBtX2RhdGEuaXNFdmFs
dWF0ZWQoKSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFNjcmlwdEVsZW1lbnQodGFn
UU5hbWUoKSwgZG9jdW1lbnQoKSwgZmFsc2UsIGlzRXZhbHVhdGVkKCkpKTsKIH0KIAogfQpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgJKHJldmlzaW9uIDcyMDYwKQorKysgV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDEyICszMywxMiBA
QCBjbGFzcyBIVE1MU2NyaXB0RWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlCiBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8SFRNTFNjcmlwdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKLSAgICBTdHJpbmcg
dGV4dCgpIGNvbnN0OworICAgIFN0cmluZyB0ZXh0KCkgY29uc3QgeyByZXR1cm4gc2NyaXB0Q29u
dGVudCgpOyB9CiAgICAgdm9pZCBzZXRUZXh0KGNvbnN0IFN0cmluZyYpOwogCiAgICAgS1VSTCBz
cmMoKSBjb25zdDsKIAotICAgIGJvb2wgaGF2ZUZpcmVkTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1
cm4gbV9kYXRhLmhhdmVGaXJlZExvYWRFdmVudCgpOyB9CisgICAgYm9vbCBoYXZlRmlyZWRMb2Fk
RXZlbnQoKSBjb25zdCB7IHJldHVybiBTY3JpcHRFbGVtZW50OjpoYXZlRmlyZWRMb2FkRXZlbnQo
KTsgfQogCiBwcml2YXRlOgogICAgIEhUTUxTY3JpcHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyLCBib29sIGlzRXZhbHVhdGVkKTsK
SW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCShyZXZpc2lvbiA3MjA2MCkKKysrIFdlYkNv
cmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw4ICs2OCw4
IEBAIHZvaWQgU1ZHU2NyaXB0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmcKICAgICAgICAgLy8g
SGFuZGxlIGR5bmFtaWMgdXBkYXRlcyBvZiB0aGUgJ2V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQn
IGF0dHJpYnV0ZS4gT25seSBwb3NzaWJsZSBjYXNlOiBjaGFuZ2luZyBmcm9tICd0cnVlJyB0byAn
ZmFsc2UnCiAgICAgICAgIC8vIGNhdXNlcyBhbiBpbW1lZGlhdGUgZGlzcGF0Y2ggb2YgdGhlIFNW
R0xvYWQgZXZlbnQuIElmIHRoZSBhdHRyaWJ1dGUgdmFsdWUgd2FzICdmYWxzZScgYmVmb3JlIGlu
c2VydGluZyB0aGUgc2NyaXB0IGVsZW1lbnQKICAgICAgICAgLy8gaW4gdGhlIGRvY3VtZW50LCB0
aGUgU1ZHTG9hZCBldmVudCBoYXMgYWxyZWFkeSBiZWVuIGRpc3BhdGNoZWQuCi0gICAgICAgIGlm
ICghZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEJhc2VWYWx1ZSgpICYmICFtX2RhdGEuaGF2ZUZp
cmVkTG9hZEV2ZW50KCkgJiYgIW1fZGF0YS5jcmVhdGVkQnlQYXJzZXIoKSkgewotICAgICAgICAg
ICAgbV9kYXRhLnNldEhhdmVGaXJlZExvYWRFdmVudCh0cnVlKTsKKyAgICAgICAgaWYgKCFleHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkQmFzZVZhbHVlKCkgJiYgIWhhdmVGaXJlZExvYWRFdmVudCgp
ICYmICFjcmVhdGVkQnlQYXJzZXIoKSkgeworICAgICAgICAgICAgc2V0SGF2ZUZpcmVkTG9hZEV2
ZW50KHRydWUpOwogICAgICAgICAgICAgQVNTRVJUKGhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNl
cygpKTsKIAogICAgICAgICAgICAgc2VuZFNWR0xvYWRFdmVudElmUG9zc2libGUoKTsKQEAgLTk4
LDEyICs5OCwxMiBAQCB2b2lkIFNWR1NjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtCiAg
ICAgU1ZHRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKICAgICBTY3JpcHRFbGVtZW50
OjppbnNlcnRlZEludG9Eb2N1bWVudChzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpKTsKIAotICAgIGlm
IChtX2RhdGEuY3JlYXRlZEJ5UGFyc2VyKCkpCisgICAgaWYgKGNyZWF0ZWRCeVBhcnNlcigpKQog
ICAgICAgICByZXR1cm47CiAKICAgICAvLyBFdmVudHVhbGx5IHNlbmQgU1ZHTG9hZCBldmVudCBu
b3cgZm9yIHRoZSBkeW5hbWljYWxseSBpbnNlcnRlZCBzY3JpcHQgZWxlbWVudAogICAgIGlmICgh
ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEJhc2VWYWx1ZSgpKSB7Ci0gICAgICAgIG1fZGF0YS5z
ZXRIYXZlRmlyZWRMb2FkRXZlbnQodHJ1ZSk7CisgICAgICAgIHNldEhhdmVGaXJlZExvYWRFdmVu
dCh0cnVlKTsKICAgICAgICAgc2VuZFNWR0xvYWRFdmVudElmUG9zc2libGUoKTsKICAgICB9CiB9
CkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBTVkdTY3JpcHRFbGVtZW50OjpmaW5pc2hQYXJzaW5n
Q2hpbAogCiAgICAgLy8gQSBTVkdMb2FkIGV2ZW50IGhhcyBiZWVuIGZpcmVkIGJ5IFNWR0VsZW1l
bnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbi4KICAgICBpZiAoIWV4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWRCYXNlVmFsdWUoKSkKLSAgICAgICAgbV9kYXRhLnNldEhhdmVGaXJlZExvYWRFdmVudCh0
cnVlKTsKKyAgICAgICAgc2V0SGF2ZUZpcmVkTG9hZEV2ZW50KHRydWUpOwogfQogCiBTdHJpbmcg
U1ZHU2NyaXB0RWxlbWVudDo6dHlwZSgpIGNvbnN0CkBAIC0xNTQsNyArMTU0LDcgQEAgdm9pZCBT
VkdTY3JpcHRFbGVtZW50OjphZGRTdWJyZXNvdXJjZUF0dAogCiBib29sIFNWR1NjcmlwdEVsZW1l
bnQ6OmhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcygpCiB7Ci0gICAgcmV0dXJuICFleHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkQmFzZVZhbHVlKCkgfHwgbV9kYXRhLmhhdmVGaXJlZExvYWRFdmVu
dCgpOworICAgIHJldHVybiAhZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEJhc2VWYWx1ZSgpIHx8
IGhhdmVGaXJlZExvYWRFdmVudCgpOwogfQogCiBTdHJpbmcgU1ZHU2NyaXB0RWxlbWVudDo6c291
cmNlQXR0cmlidXRlVmFsdWUoKSBjb25zdApAQCAtMjAxLDkgKzIwMSw5IEBAIHZvaWQgU1ZHU2Ny
aXB0RWxlbWVudDo6ZGlzcGF0Y2hMb2FkRXZlbnQKIHsKICAgICBib29sIGV4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQgPSBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQmFzZVZhbHVlKCk7CiAKLSAg
ICBpZiAobV9kYXRhLmNyZWF0ZWRCeVBhcnNlcigpKQotICAgICAgICBBU1NFUlQoZXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZCAhPSBtX2RhdGEuaGF2ZUZpcmVkTG9hZEV2ZW50KCkpOwotICAgIGVs
c2UgaWYgKG1fZGF0YS5oYXZlRmlyZWRMb2FkRXZlbnQoKSkgeworICAgIGlmIChjcmVhdGVkQnlQ
YXJzZXIoKSkKKyAgICAgICAgQVNTRVJUKGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgIT0gaGF2
ZUZpcmVkTG9hZEV2ZW50KCkpOworICAgIGVsc2UgaWYgKGhhdmVGaXJlZExvYWRFdmVudCgpKSB7
CiAgICAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZmlyZWQgYW4gbG9hZCBldmVudCBhbmQgZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCBpcyBzZXQgdG8gJ3RydWUnCiAgICAgICAgIC8vIGV4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQgaGFzIGJlZW4gbW9kaWZpZWQgd2hpbGUgbG9hZGluZyB0aGUg
PHNjcmlwdD4uIERvbid0IGRpc3BhdGNoIHR3aWNlLgogICAgICAgICBpZiAoZXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZCkKQEAgLTIxNSwxMCArMjE1LDEwIEBAIHZvaWQgU1ZHU2NyaXB0RWxlbWVu
dDo6ZGlzcGF0Y2hMb2FkRXZlbnQKICAgICAvLyBTVkcgZmlyZXMgdGhlIFNWR0xvYWQgZXZlbnQg
aW1tZWRpYXRlbHkgYWZ0ZXIgcGFyc2luZyB0aGUgPHNjcmlwdD4gZWxlbWVudCwgaWYgZXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZAogICAgIC8vIGlzIHNldCB0byAnZmFsc2UnLCBvdGhlcndoaXNl
IGl0IGRpc3BhdGNoZXMgdGhlICdTVkdMb2FkJyBldmVudCBqdXN0IGFmdGVyIGxvYWRpbmcgdGhl
IHJlbW90ZSByZXNvdXJjZS4KICAgICBpZiAoZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkgewot
ICAgICAgICBBU1NFUlQoIW1fZGF0YS5oYXZlRmlyZWRMb2FkRXZlbnQoKSk7CisgICAgICAgIEFT
U0VSVCghaGF2ZUZpcmVkTG9hZEV2ZW50KCkpOwogCiAgICAgICAgIC8vIERpc3BhdGNoIFNWR0xv
YWQgZXZlbnQKLSAgICAgICAgbV9kYXRhLnNldEhhdmVGaXJlZExvYWRFdmVudCh0cnVlKTsKKyAg
ICAgICAgc2V0SGF2ZUZpcmVkTG9hZEV2ZW50KHRydWUpOwogICAgICAgICBBU1NFUlQoaGF2ZUxv
YWRlZFJlcXVpcmVkUmVzb3VyY2VzKCkpOwogCiAgICAgICAgIHNlbmRTVkdMb2FkRXZlbnRJZlBv
c3NpYmxlKCk7CkBAIC0yMzIsNyArMjMyLDcgQEAgdm9pZCBTVkdTY3JpcHRFbGVtZW50OjpkaXNw
YXRjaEVycm9yRXZlbgogCiBQYXNzUmVmUHRyPEVsZW1lbnQ+IFNWR1NjcmlwdEVsZW1lbnQ6OmNs
b25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKSBjb25zdAogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgU1ZHU2NyaXB0RWxlbWVudCh0YWdRTmFtZSgpLCBkb2N1bWVudCgp
LCBmYWxzZSwgbV9kYXRhLmlzRXZhbHVhdGVkKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFNWR1NjcmlwdEVsZW1lbnQodGFnUU5hbWUoKSwgZG9jdW1lbnQoKSwgZmFsc2UsIGlzRXZhbHVh
dGVkKCkpKTsKIH0KIAogfQo=
</data>
<flag name="review"
          id="64537"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>