<?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>33819</bug_id>
          
          <creation_ts>2010-01-18 17:22:30 -0800</creation_ts>
          <short_desc>Style in WebCore/bridge/jni/jsc/JavaClassJSC needs fixing</short_desc>
          <delta_ts>2010-01-19 13:53:35 -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>WebCore Misc.</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>33561</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Steve Block">steveblock</reporter>
          <assigned_to name="Steve Block">steveblock</assigned_to>
          <cc>abarth</cc>
    
    <cc>android-webkit-unforking</cc>
    
    <cc>darin</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>182054</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-01-18 17:22:30 -0800</bug_when>
    <thetext>Style in WebCore/bridge/jni/jsc/JavaClassJSC needs fixing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182069</commentid>
    <comment_count>1</comment_count>
      <attachid>46871</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-01-18 17:52:17 -0800</bug_when>
    <thetext>Created attachment 46871
Patch 1 for Bug 33819</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182271</commentid>
    <comment_count>2</comment_count>
      <attachid>46871</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-19 09:09:08 -0800</bug_when>
    <thetext>Comment on attachment 46871
Patch 1 for Bug 33819

&gt; Index: WebCore/bridge/jni/jsc/JavaClassJSC.cpp
&gt; ===================================================================
&gt; --- WebCore/bridge/jni/jsc/JavaClassJSC.cpp	(revision 53443)
&gt; +++ WebCore/bridge/jni/jsc/JavaClassJSC.cpp	(working copy)
&gt; @@ -1,5 +1,5 @@
&gt;  /*
&gt; - * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
&gt; + * Copyright (C) 2010 Apple Computer, Inc.  All rights reserved.

Should be &quot;Copyright (C) 2003, 2010 Apple Inc. All rights reserved.&quot; and should also list any other years the code here had significant changes that were published (checked in to the open source repository). Would take a little research to determine that.

&gt; +    free((void*)m_name);

Since you&apos;re fixing style, this should be const_cast&lt;char*&gt;(m_name) instead of (void*)m_name.

&gt; - * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
&gt; + * Copyright (C) 2010 Apple Computer, Inc.  All rights reserved.

Same comment as above. Please don&apos;t erase earlier publication years.

&gt; +    JavaClass(jobject anInstance);

The argument name here does not make it any clearer what the argument is. If we can&apos;t do any better, then we should omit the argument name.

&gt; +    virtual MethodList methodsNamed(const Identifier&amp;, Instance* instance) const;
&gt; +    virtual Field* fieldNamed(const Identifier&amp;, Instance* instance) const;

The argument name &quot;instance&quot; should be omitted here.

review- because the copyright date should not be changed in this manner</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182304</commentid>
    <comment_count>3</comment_count>
      <attachid>46924</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-01-19 10:24:39 -0800</bug_when>
    <thetext>Created attachment 46924
Patch 2 for Bug 33819

Have addressed all comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182321</commentid>
    <comment_count>4</comment_count>
      <attachid>46924</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-01-19 10:57:44 -0800</bug_when>
    <thetext>Comment on attachment 46924
Patch 2 for Bug 33819


&gt; Index: WebCore/bridge/jni/jsc/JavaClassJSC.cpp
&gt; ===================================================================
&gt; --- WebCore/bridge/jni/jsc/JavaClassJSC.cpp	(revision 53450)
&gt; +++ WebCore/bridge/jni/jsc/JavaClassJSC.cpp	(working copy)
&gt; @@ -1,5 +1,5 @@
&gt;  /*
&gt; - * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
&gt; + * Copyright (C) 2003-2010 Apple Computer, Inc.  All rights reserved.

Folks prefer the years to be listed explicitly. Feel free to do 2003, 2010

&gt; +    return (!strcmp(m_name, &quot;java.lang.Byte&quot;)
&gt; +        || !strcmp(m_name, &quot;java.lang.Short&quot;)

Ideally this would line up with the parenthesis that is enclosing it like this:

    return (!strcmp(m_name, &quot;java.lang.Byte&quot;)
            || !strcmp(m_name, &quot;java.lang.Short&quot;)


&gt; +        || !strcmp(m_name, &quot;java.lang.Integer&quot;)
&gt; +        || !strcmp(m_name, &quot;java.lang.Long&quot;)
&gt; +        || !strcmp(m_name, &quot;java.lang.Float&quot;)
&gt; +        || !strcmp(m_name, &quot;java.lang.Double&quot;));

&gt; Index: WebCore/bridge/jni/jsc/JavaClassJSC.h
&gt; - * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
&gt; + * Copyright (C) 2003-2005, 2007, 2009, 2010 Apple Computer, Inc.  All rights reserved.

Same comment about year ranges.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182363</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-19 12:10:45 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; - * Copyright (C) 2003 Apple Computer, Inc.  All rights reserved.
&gt; &gt; + * Copyright (C) 2003-2010 Apple Computer, Inc.  All rights reserved.
&gt; 
&gt; Folks prefer the years to be listed explicitly. Feel free to do 2003, 2010

Actually: 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010

The company’s name is now Apple Inc. We use one space after the period.

&gt; &gt; +    return (!strcmp(m_name, &quot;java.lang.Byte&quot;)
&gt; &gt; +        || !strcmp(m_name, &quot;java.lang.Short&quot;)
&gt; 
&gt; Ideally this would line up with the parenthesis that is enclosing it like this:
&gt; 
&gt;     return (!strcmp(m_name, &quot;java.lang.Byte&quot;)
&gt;             || !strcmp(m_name, &quot;java.lang.Short&quot;)

I think we don’t do that. The guidelines even say not to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182436</commentid>
    <comment_count>6</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-01-19 13:53:35 -0800</bug_when>
    <thetext>Fixed patch according to Darin&apos;s comments

Landed manually as http://trac.webkit.org/changeset/53489

Closing bug as resolved</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46871</attachid>
            <date>2010-01-18 17:52:17 -0800</date>
            <delta_ts>2010-01-19 10:24:39 -0800</delta_ts>
            <desc>Patch 1 for Bug 33819</desc>
            <filename>javaClassStyle.txt</filename>
            <type>text/plain</type>
            <size>8660</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MzQ0NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDEtMTggIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZpeGVzIHN0eWxlIGluIFdlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUNsYXNzSlNDCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzgxOQorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cywgc3R5bGUgZml4ZXMgb25seS4KKworICAgICAgICAqIGJyaWRnZS9q
bmkvanNjL0phdmFDbGFzc0pTQy5jcHA6IE1vZGlmaWVkLgorICAgICAgICAqIGJyaWRnZS9qbmkv
anNjL0phdmFDbGFzc0pTQy5oOiBNb2RpZmllZC4KKwogMjAxMC0wMS0xOCAgRW5yaWNhIENhc3Vj
Y2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgpJbmRleDogV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhQ2xhc3NKU0MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUNsYXNzSlNDLmNwcAkocmV2aXNpb24g
NTM0NDMpCisrKyBXZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFDbGFzc0pTQy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzIEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMCw3ICsyMCw3IEBACiAgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKQEAgLTI5LDM5ICsyOSwzOSBAQAogI2lmIEVOQUJM
RShNQUNfSkFWQV9CUklER0UpCiAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgorI2luY2x1ZGUg
ImpuaV9ydW50aW1lLmgiCisjaW5jbHVkZSAiam5pX3V0aWxpdHkuaCIKICNpbmNsdWRlIDxydW50
aW1lL0lkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgotI2luY2x1ZGUg
ImpuaV91dGlsaXR5LmgiCi0jaW5jbHVkZSAiam5pX3J1bnRpbWUuaCIKIAogdXNpbmcgbmFtZXNw
YWNlIEpTQzo6QmluZGluZ3M7CiAKIEphdmFDbGFzczo6SmF2YUNsYXNzKGpvYmplY3QgYW5JbnN0
YW5jZSkKIHsKICAgICBqb2JqZWN0IGFDbGFzcyA9IGNhbGxKTklNZXRob2Q8am9iamVjdD4oYW5J
bnN0YW5jZSwgImdldENsYXNzIiwgIigpTGphdmEvbGFuZy9DbGFzczsiKTsKLSAgICAKKwogICAg
IGlmICghYUNsYXNzKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6ICB1bmFibGUgdG8g
Y2FsbCBnZXRDbGFzcyBvbiBpbnN0YW5jZSAlcFxuIiwgX19QUkVUVFlfRlVOQ1RJT05fXywgYW5J
bnN0YW5jZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCisKICAgICBqc3RyaW5nIGNs
YXNzTmFtZSA9IChqc3RyaW5nKWNhbGxKTklNZXRob2Q8am9iamVjdD4oYUNsYXNzLCAiZ2V0TmFt
ZSIsICIoKUxqYXZhL2xhbmcvU3RyaW5nOyIpOwotICAgIGNvbnN0IGNoYXIgKmNsYXNzTmFtZUMg
PSBnZXRDaGFyYWN0ZXJzRnJvbUpTdHJpbmcoY2xhc3NOYW1lKTsKLSAgICBfbmFtZSA9IHN0cmR1
cChjbGFzc05hbWVDKTsKKyAgICBjb25zdCBjaGFyKiBjbGFzc05hbWVDID0gZ2V0Q2hhcmFjdGVy
c0Zyb21KU3RyaW5nKGNsYXNzTmFtZSk7CisgICAgbV9uYW1lID0gc3RyZHVwKGNsYXNzTmFtZUMp
OwogICAgIHJlbGVhc2VDaGFyYWN0ZXJzRm9ySlN0cmluZyhjbGFzc05hbWUsIGNsYXNzTmFtZUMp
OwogCiAgICAgaW50IGk7Ci0gICAgSk5JRW52ICplbnYgPSBnZXRKTklFbnYoKTsKKyAgICBKTklF
bnYqIGVudiA9IGdldEpOSUVudigpOwogCiAgICAgLy8gR2V0IHRoZSBmaWVsZHMKICAgICBqYXJy
YXkgZmllbGRzID0gKGphcnJheSljYWxsSk5JTWV0aG9kPGpvYmplY3Q+KGFDbGFzcywgImdldEZp
ZWxkcyIsICIoKVtMamF2YS9sYW5nL3JlZmxlY3QvRmllbGQ7Iik7Ci0gICAgaW50IG51bUZpZWxk
cyA9IGVudi0+R2V0QXJyYXlMZW5ndGgoZmllbGRzKTsgICAgCisgICAgaW50IG51bUZpZWxkcyA9
IGVudi0+R2V0QXJyYXlMZW5ndGgoZmllbGRzKTsKICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtRmll
bGRzOyBpKyspIHsKICAgICAgICAgam9iamVjdCBhSkZpZWxkID0gZW52LT5HZXRPYmplY3RBcnJh
eUVsZW1lbnQoKGpvYmplY3RBcnJheSlmaWVsZHMsIGkpOwotICAgICAgICBKYXZhRmllbGQgKmFG
aWVsZCA9IG5ldyBKYXZhRmllbGQoZW52LCBhSkZpZWxkKTsgLy8gZGVsZXRlZCBpbiB0aGUgSmF2
YUNsYXNzIGRlc3RydWN0b3IKKyAgICAgICAgSmF2YUZpZWxkKiBhRmllbGQgPSBuZXcgSmF2YUZp
ZWxkKGVudiwgYUpGaWVsZCk7IC8vIGRlbGV0ZWQgaW4gdGhlIEphdmFDbGFzcyBkZXN0cnVjdG9y
CiAgICAgICAgIHsKICAgICAgICAgICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25s
eSk7Ci0gICAgICAgICAgICBfZmllbGRzLnNldChhRmllbGQtPm5hbWUoKSwgYUZpZWxkKTsKKyAg
ICAgICAgICAgIG1fZmllbGRzLnNldChhRmllbGQtPm5hbWUoKSwgYUZpZWxkKTsKICAgICAgICAg
fQogICAgICAgICBlbnYtPkRlbGV0ZUxvY2FsUmVmKGFKRmllbGQpOwogICAgIH0KQEAgLTcxLDc1
ICs3MSw3NiBAQCBKYXZhQ2xhc3M6OkphdmFDbGFzcyhqb2JqZWN0IGFuSW5zdGFuY2UpCiAgICAg
aW50IG51bU1ldGhvZHMgPSBlbnYtPkdldEFycmF5TGVuZ3RoKG1ldGhvZHMpOwogICAgIGZvciAo
aSA9IDA7IGkgPCBudW1NZXRob2RzOyBpKyspIHsKICAgICAgICAgam9iamVjdCBhSk1ldGhvZCA9
IGVudi0+R2V0T2JqZWN0QXJyYXlFbGVtZW50KChqb2JqZWN0QXJyYXkpbWV0aG9kcywgaSk7Ci0g
ICAgICAgIEphdmFNZXRob2QgKmFNZXRob2QgPSBuZXcgSmF2YU1ldGhvZChlbnYsIGFKTWV0aG9k
KTsgLy8gZGVsZXRlZCBpbiB0aGUgSmF2YUNsYXNzIGRlc3RydWN0b3IKKyAgICAgICAgSmF2YU1l
dGhvZCogYU1ldGhvZCA9IG5ldyBKYXZhTWV0aG9kKGVudiwgYUpNZXRob2QpOyAvLyBkZWxldGVk
IGluIHRoZSBKYXZhQ2xhc3MgZGVzdHJ1Y3RvcgogICAgICAgICBNZXRob2RMaXN0KiBtZXRob2RM
aXN0OwogICAgICAgICB7CiAgICAgICAgICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9u
c09ubHkpOwogCi0gICAgICAgICAgICBtZXRob2RMaXN0ID0gX21ldGhvZHMuZ2V0KGFNZXRob2Qt
Pm5hbWUoKSk7CisgICAgICAgICAgICBtZXRob2RMaXN0ID0gbV9tZXRob2RzLmdldChhTWV0aG9k
LT5uYW1lKCkpOwogICAgICAgICAgICAgaWYgKCFtZXRob2RMaXN0KSB7CiAgICAgICAgICAgICAg
ICAgbWV0aG9kTGlzdCA9IG5ldyBNZXRob2RMaXN0KCk7Ci0gICAgICAgICAgICAgICAgX21ldGhv
ZHMuc2V0KGFNZXRob2QtPm5hbWUoKSwgbWV0aG9kTGlzdCk7CisgICAgICAgICAgICAgICAgbV9t
ZXRob2RzLnNldChhTWV0aG9kLT5uYW1lKCksIG1ldGhvZExpc3QpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgICAgIG1ldGhvZExpc3QtPmFwcGVuZChhTWV0aG9kKTsKICAgICAgICAg
ZW52LT5EZWxldGVMb2NhbFJlZihhSk1ldGhvZCk7Ci0gICAgfSAgICAKKyAgICB9CiAKICAgICBl
bnYtPkRlbGV0ZUxvY2FsUmVmKGZpZWxkcyk7CiAgICAgZW52LT5EZWxldGVMb2NhbFJlZihtZXRo
b2RzKTsKICAgICBlbnYtPkRlbGV0ZUxvY2FsUmVmKGFDbGFzcyk7CiB9CiAKLUphdmFDbGFzczo6
fkphdmFDbGFzcygpIHsKLSAgICBmcmVlKCh2b2lkICopX25hbWUpOworSmF2YUNsYXNzOjp+SmF2
YUNsYXNzKCkKK3sKKyAgICBmcmVlKCh2b2lkKiltX25hbWUpOwogCiAgICAgSlNMb2NrIGxvY2so
U2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKIAotICAgIGRlbGV0ZUFsbFZhbHVlcyhfZmllbGRzKTsK
LSAgICBfZmllbGRzLmNsZWFyKCk7CisgICAgZGVsZXRlQWxsVmFsdWVzKG1fZmllbGRzKTsKKyAg
ICBtX2ZpZWxkcy5jbGVhcigpOwogCi0gICAgTWV0aG9kTGlzdE1hcDo6Y29uc3RfaXRlcmF0b3Ig
ZW5kID0gX21ldGhvZHMuZW5kKCk7Ci0gICAgZm9yIChNZXRob2RMaXN0TWFwOjpjb25zdF9pdGVy
YXRvciBpdCA9IF9tZXRob2RzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgIE1ldGhv
ZExpc3RNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fbWV0aG9kcy5lbmQoKTsKKyAgICBmb3Ig
KE1ldGhvZExpc3RNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9tZXRob2RzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkgewogICAgICAgICBjb25zdCBNZXRob2RMaXN0KiBtZXRob2RMaXN0ID0g
aXQtPnNlY29uZDsKICAgICAgICAgZGVsZXRlQWxsVmFsdWVzKCptZXRob2RMaXN0KTsKICAgICAg
ICAgZGVsZXRlIG1ldGhvZExpc3Q7CiAgICAgfQotICAgIF9tZXRob2RzLmNsZWFyKCk7CisgICAg
bV9tZXRob2RzLmNsZWFyKCk7CiB9CiAKIE1ldGhvZExpc3QgSmF2YUNsYXNzOjptZXRob2RzTmFt
ZWQoY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgSW5zdGFuY2UqKSBjb25zdAogewotICAg
IE1ldGhvZExpc3QgKm1ldGhvZExpc3QgPSBfbWV0aG9kcy5nZXQoaWRlbnRpZmllci51c3RyaW5n
KCkucmVwKCkpOwotICAgIAorICAgIE1ldGhvZExpc3QqIG1ldGhvZExpc3QgPSBtX21ldGhvZHMu
Z2V0KGlkZW50aWZpZXIudXN0cmluZygpLnJlcCgpKTsKKwogICAgIGlmIChtZXRob2RMaXN0KQog
ICAgICAgICByZXR1cm4gKm1ldGhvZExpc3Q7CiAgICAgcmV0dXJuIE1ldGhvZExpc3QoKTsKIH0K
IAotRmllbGQgKkphdmFDbGFzczo6ZmllbGROYW1lZChjb25zdCBJZGVudGlmaWVyJiBpZGVudGlm
aWVyLCBJbnN0YW5jZSopIGNvbnN0CitGaWVsZCogSmF2YUNsYXNzOjpmaWVsZE5hbWVkKGNvbnN0
IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEluc3RhbmNlKikgY29uc3QKIHsKLSAgICByZXR1cm4g
X2ZpZWxkcy5nZXQoaWRlbnRpZmllci51c3RyaW5nKCkucmVwKCkpOworICAgIHJldHVybiBtX2Zp
ZWxkcy5nZXQoaWRlbnRpZmllci51c3RyaW5nKCkucmVwKCkpOwogfQogCiBib29sIEphdmFDbGFz
czo6aXNOdW1iZXJDbGFzcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICgoc3RyY21wKF9uYW1lLCAi
amF2YS5sYW5nLkJ5dGUiKSA9PSAwIHx8Ci0gICAgICAgICAgICAgc3RyY21wKF9uYW1lLCAiamF2
YS5sYW5nLlNob3J0IikgPT0gMCB8fAotICAgICAgICAgICAgIHN0cmNtcChfbmFtZSwgImphdmEu
bGFuZy5JbnRlZ2VyIikgPT0gMCB8fAotICAgICAgICAgICAgIHN0cmNtcChfbmFtZSwgImphdmEu
bGFuZy5Mb25nIikgPT0gMCB8fAotICAgICAgICAgICAgIHN0cmNtcChfbmFtZSwgImphdmEubGFu
Zy5GbG9hdCIpID09IDAgfHwKLSAgICAgICAgICAgICBzdHJjbXAoX25hbWUsICJqYXZhLmxhbmcu
RG91YmxlIikgPT0gMCkgKTsKKyAgICByZXR1cm4gKCFzdHJjbXAobV9uYW1lLCAiamF2YS5sYW5n
LkJ5dGUiKQorICAgICAgICB8fCAhc3RyY21wKG1fbmFtZSwgImphdmEubGFuZy5TaG9ydCIpCisg
ICAgICAgIHx8ICFzdHJjbXAobV9uYW1lLCAiamF2YS5sYW5nLkludGVnZXIiKQorICAgICAgICB8
fCAhc3RyY21wKG1fbmFtZSwgImphdmEubGFuZy5Mb25nIikKKyAgICAgICAgfHwgIXN0cmNtcCht
X25hbWUsICJqYXZhLmxhbmcuRmxvYXQiKQorICAgICAgICB8fCAhc3RyY21wKG1fbmFtZSwgImph
dmEubGFuZy5Eb3VibGUiKSk7CiB9CiAKIGJvb2wgSmF2YUNsYXNzOjppc0Jvb2xlYW5DbGFzcygp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0cmNtcChfbmFtZSwgImphdmEubGFuZy5Cb29sZWFuIikg
PT0gMDsKKyAgICByZXR1cm4gIXN0cmNtcChtX25hbWUsICJqYXZhLmxhbmcuQm9vbGVhbiIpOwog
fQogCiBib29sIEphdmFDbGFzczo6aXNTdHJpbmdDbGFzcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IHN0cmNtcChfbmFtZSwgImphdmEubGFuZy5TdHJpbmciKSA9PSAwOworICAgIHJldHVybiAhc3Ry
Y21wKG1fbmFtZSwgImphdmEubGFuZy5TdHJpbmciKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShN
QUNfSkFWQV9CUklER0UpCkluZGV4OiBXZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFDbGFzc0pT
Qy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUNsYXNzSlNDLmgJ
KHJldmlzaW9uIDUzNDQzKQorKysgV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhQ2xhc3NKU0Mu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDMgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIwLDcgKzIwLDcgQEAKICAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAogI2lmbmRlZiBKYXZhQ2xhc3NKU0NfaApAQCAtMjgsNyArMjgsNyBAQAog
CiAjaWYgRU5BQkxFKE1BQ19KQVZBX0JSSURHRSkKIAotI2luY2x1ZGUgPGpuaV9ydW50aW1lLmg+
CisjaW5jbHVkZSAiam5pX3J1bnRpbWUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBu
YW1lc3BhY2UgSlNDIHsKQEAgLTM3LDIwICszNywyMCBAQCBuYW1lc3BhY2UgQmluZGluZ3Mgewog
CiBjbGFzcyBKYXZhQ2xhc3MgOiBwdWJsaWMgQ2xhc3MgewogcHVibGljOgotICAgIEphdmFDbGFz
cyAoam9iamVjdCBhbkluc3RhbmNlKTsKLSAgICB+SmF2YUNsYXNzICgpOworICAgIEphdmFDbGFz
cyhqb2JqZWN0IGFuSW5zdGFuY2UpOworICAgIH5KYXZhQ2xhc3MoKTsKKworICAgIHZpcnR1YWwg
TWV0aG9kTGlzdCBtZXRob2RzTmFtZWQoY29uc3QgSWRlbnRpZmllciYsIEluc3RhbmNlKiBpbnN0
YW5jZSkgY29uc3Q7CisgICAgdmlydHVhbCBGaWVsZCogZmllbGROYW1lZChjb25zdCBJZGVudGlm
aWVyJiwgSW5zdGFuY2UqIGluc3RhbmNlKSBjb25zdDsKIAotICAgIHZpcnR1YWwgTWV0aG9kTGlz
dCBtZXRob2RzTmFtZWQoY29uc3QgSWRlbnRpZmllciYsIEluc3RhbmNlKiBpbnN0YW5jZSkgY29u
c3Q7ICAgIAotICAgIHZpcnR1YWwgRmllbGQgKmZpZWxkTmFtZWQoY29uc3QgSWRlbnRpZmllciYs
IEluc3RhbmNlKiBpbnN0YW5jZSkgY29uc3Q7Ci0gICAgCiAgICAgYm9vbCBpc051bWJlckNsYXNz
KCkgY29uc3Q7CiAgICAgYm9vbCBpc0Jvb2xlYW5DbGFzcygpIGNvbnN0OwogICAgIGJvb2wgaXNT
dHJpbmdDbGFzcygpIGNvbnN0OwotICAgIAorCiBwcml2YXRlOgotICAgIGNvbnN0IGNoYXIgKl9u
YW1lOwotICAgIEZpZWxkTWFwIF9maWVsZHM7Ci0gICAgTWV0aG9kTGlzdE1hcCBfbWV0aG9kczsK
KyAgICBjb25zdCBjaGFyKiBtX25hbWU7CisgICAgRmllbGRNYXAgbV9maWVsZHM7CisgICAgTWV0
aG9kTGlzdE1hcCBtX21ldGhvZHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBCaW5kaW5ncwo=
</data>
<flag name="review"
          id="29205"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46924</attachid>
            <date>2010-01-19 10:24:39 -0800</date>
            <delta_ts>2010-01-19 10:57:43 -0800</delta_ts>
            <desc>Patch 2 for Bug 33819</desc>
            <filename>javaClassStyle2.txt</filename>
            <type>text/plain</type>
            <size>8779</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MzQ2OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDEtMTkgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZpeGVzIHN0eWxlIGluIFdlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUNsYXNzSlNDCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzgxOQorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cywgc3R5bGUgZml4ZXMgb25seS4KKworICAgICAgICAqIGJyaWRnZS9q
bmkvanNjL0phdmFDbGFzc0pTQy5jcHA6IE1vZGlmaWVkLgorICAgICAgICAqIGJyaWRnZS9qbmkv
anNjL0phdmFDbGFzc0pTQy5oOiBNb2RpZmllZC4KKwogMjAxMC0wMS0xOSAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBG
ZWxkbWFuLgpJbmRleDogV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhQ2xhc3NKU0MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUNsYXNzSlNDLmNwcAkocmV2
aXNpb24gNTM0NTApCisrKyBXZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFDbGFzc0pTQy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAz
IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDAzLTIwMTAgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIwLDcgKzIwLDcgQEAKICAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgpAQCAtMjksMzkgKzI5LDM5IEBA
CiAjaWYgRU5BQkxFKE1BQ19KQVZBX0JSSURHRSkKIAogI2luY2x1ZGUgIkpTRE9NV2luZG93Lmgi
CisjaW5jbHVkZSAiam5pX3J1bnRpbWUuaCIKKyNpbmNsdWRlICJqbmlfdXRpbGl0eS5oIgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+
Ci0jaW5jbHVkZSAiam5pX3V0aWxpdHkuaCIKLSNpbmNsdWRlICJqbmlfcnVudGltZS5oIgogCiB1
c2luZyBuYW1lc3BhY2UgSlNDOjpCaW5kaW5nczsKIAogSmF2YUNsYXNzOjpKYXZhQ2xhc3Moam9i
amVjdCBhbkluc3RhbmNlKQogewogICAgIGpvYmplY3QgYUNsYXNzID0gY2FsbEpOSU1ldGhvZDxq
b2JqZWN0Pihhbkluc3RhbmNlLCAiZ2V0Q2xhc3MiLCAiKClMamF2YS9sYW5nL0NsYXNzOyIpOwot
ICAgIAorCiAgICAgaWYgKCFhQ2xhc3MpIHsKICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczog
IHVuYWJsZSB0byBjYWxsIGdldENsYXNzIG9uIGluc3RhbmNlICVwXG4iLCBfX1BSRVRUWV9GVU5D
VElPTl9fLCBhbkluc3RhbmNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAKKwogICAg
IGpzdHJpbmcgY2xhc3NOYW1lID0gKGpzdHJpbmcpY2FsbEpOSU1ldGhvZDxqb2JqZWN0PihhQ2xh
c3MsICJnZXROYW1lIiwgIigpTGphdmEvbGFuZy9TdHJpbmc7Iik7Ci0gICAgY29uc3QgY2hhciAq
Y2xhc3NOYW1lQyA9IGdldENoYXJhY3RlcnNGcm9tSlN0cmluZyhjbGFzc05hbWUpOwotICAgIF9u
YW1lID0gc3RyZHVwKGNsYXNzTmFtZUMpOworICAgIGNvbnN0IGNoYXIqIGNsYXNzTmFtZUMgPSBn
ZXRDaGFyYWN0ZXJzRnJvbUpTdHJpbmcoY2xhc3NOYW1lKTsKKyAgICBtX25hbWUgPSBzdHJkdXAo
Y2xhc3NOYW1lQyk7CiAgICAgcmVsZWFzZUNoYXJhY3RlcnNGb3JKU3RyaW5nKGNsYXNzTmFtZSwg
Y2xhc3NOYW1lQyk7CiAKICAgICBpbnQgaTsKLSAgICBKTklFbnYgKmVudiA9IGdldEpOSUVudigp
OworICAgIEpOSUVudiogZW52ID0gZ2V0Sk5JRW52KCk7CiAKICAgICAvLyBHZXQgdGhlIGZpZWxk
cwogICAgIGphcnJheSBmaWVsZHMgPSAoamFycmF5KWNhbGxKTklNZXRob2Q8am9iamVjdD4oYUNs
YXNzLCAiZ2V0RmllbGRzIiwgIigpW0xqYXZhL2xhbmcvcmVmbGVjdC9GaWVsZDsiKTsKLSAgICBp
bnQgbnVtRmllbGRzID0gZW52LT5HZXRBcnJheUxlbmd0aChmaWVsZHMpOyAgICAKKyAgICBpbnQg
bnVtRmllbGRzID0gZW52LT5HZXRBcnJheUxlbmd0aChmaWVsZHMpOwogICAgIGZvciAoaSA9IDA7
IGkgPCBudW1GaWVsZHM7IGkrKykgewogICAgICAgICBqb2JqZWN0IGFKRmllbGQgPSBlbnYtPkdl
dE9iamVjdEFycmF5RWxlbWVudCgoam9iamVjdEFycmF5KWZpZWxkcywgaSk7Ci0gICAgICAgIEph
dmFGaWVsZCAqYUZpZWxkID0gbmV3IEphdmFGaWVsZChlbnYsIGFKRmllbGQpOyAvLyBkZWxldGVk
IGluIHRoZSBKYXZhQ2xhc3MgZGVzdHJ1Y3RvcgorICAgICAgICBKYXZhRmllbGQqIGFGaWVsZCA9
IG5ldyBKYXZhRmllbGQoZW52LCBhSkZpZWxkKTsgLy8gZGVsZXRlZCBpbiB0aGUgSmF2YUNsYXNz
IGRlc3RydWN0b3IKICAgICAgICAgewogICAgICAgICAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFz
c2VydGlvbnNPbmx5KTsKLSAgICAgICAgICAgIF9maWVsZHMuc2V0KCgoVVN0cmluZylhRmllbGQt
Pm5hbWUoKSkucmVwKCksIGFGaWVsZCk7CisgICAgICAgICAgICBtX2ZpZWxkcy5zZXQoKChVU3Ry
aW5nKWFGaWVsZC0+bmFtZSgpKS5yZXAoKSwgYUZpZWxkKTsKICAgICAgICAgfQogICAgICAgICBl
bnYtPkRlbGV0ZUxvY2FsUmVmKGFKRmllbGQpOwogICAgIH0KQEAgLTcxLDc1ICs3MSw3NiBAQCBK
YXZhQ2xhc3M6OkphdmFDbGFzcyhqb2JqZWN0IGFuSW5zdGFuY2UpCiAgICAgaW50IG51bU1ldGhv
ZHMgPSBlbnYtPkdldEFycmF5TGVuZ3RoKG1ldGhvZHMpOwogICAgIGZvciAoaSA9IDA7IGkgPCBu
dW1NZXRob2RzOyBpKyspIHsKICAgICAgICAgam9iamVjdCBhSk1ldGhvZCA9IGVudi0+R2V0T2Jq
ZWN0QXJyYXlFbGVtZW50KChqb2JqZWN0QXJyYXkpbWV0aG9kcywgaSk7Ci0gICAgICAgIEphdmFN
ZXRob2QgKmFNZXRob2QgPSBuZXcgSmF2YU1ldGhvZChlbnYsIGFKTWV0aG9kKTsgLy8gZGVsZXRl
ZCBpbiB0aGUgSmF2YUNsYXNzIGRlc3RydWN0b3IKKyAgICAgICAgSmF2YU1ldGhvZCogYU1ldGhv
ZCA9IG5ldyBKYXZhTWV0aG9kKGVudiwgYUpNZXRob2QpOyAvLyBkZWxldGVkIGluIHRoZSBKYXZh
Q2xhc3MgZGVzdHJ1Y3RvcgogICAgICAgICBNZXRob2RMaXN0KiBtZXRob2RMaXN0OwogICAgICAg
ICB7CiAgICAgICAgICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwogCi0g
ICAgICAgICAgICBtZXRob2RMaXN0ID0gX21ldGhvZHMuZ2V0KCgoVVN0cmluZylhTWV0aG9kLT5u
YW1lKCkpLnJlcCgpKTsKKyAgICAgICAgICAgIG1ldGhvZExpc3QgPSBtX21ldGhvZHMuZ2V0KCgo
VVN0cmluZylhTWV0aG9kLT5uYW1lKCkpLnJlcCgpKTsKICAgICAgICAgICAgIGlmICghbWV0aG9k
TGlzdCkgewogICAgICAgICAgICAgICAgIG1ldGhvZExpc3QgPSBuZXcgTWV0aG9kTGlzdCgpOwot
ICAgICAgICAgICAgICAgIF9tZXRob2RzLnNldCgoKFVTdHJpbmcpYU1ldGhvZC0+bmFtZSgpKS5y
ZXAoKSwgbWV0aG9kTGlzdCk7CisgICAgICAgICAgICAgICAgbV9tZXRob2RzLnNldCgoKFVTdHJp
bmcpYU1ldGhvZC0+bmFtZSgpKS5yZXAoKSwgbWV0aG9kTGlzdCk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICAgICAgbWV0aG9kTGlzdC0+YXBwZW5kKGFNZXRob2QpOwogICAgICAgICBl
bnYtPkRlbGV0ZUxvY2FsUmVmKGFKTWV0aG9kKTsKLSAgICB9ICAgIAorICAgIH0KIAogICAgIGVu
di0+RGVsZXRlTG9jYWxSZWYoZmllbGRzKTsKICAgICBlbnYtPkRlbGV0ZUxvY2FsUmVmKG1ldGhv
ZHMpOwogICAgIGVudi0+RGVsZXRlTG9jYWxSZWYoYUNsYXNzKTsKIH0KIAotSmF2YUNsYXNzOjp+
SmF2YUNsYXNzKCkgewotICAgIGZyZWUoKHZvaWQgKilfbmFtZSk7CitKYXZhQ2xhc3M6On5KYXZh
Q2xhc3MoKQoreworICAgIGZyZWUoY29uc3RfY2FzdDxjaGFyKj4obV9uYW1lKSk7CiAKICAgICBK
U0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwogCi0gICAgZGVsZXRlQWxsVmFsdWVz
KF9maWVsZHMpOwotICAgIF9maWVsZHMuY2xlYXIoKTsKKyAgICBkZWxldGVBbGxWYWx1ZXMobV9m
aWVsZHMpOworICAgIG1fZmllbGRzLmNsZWFyKCk7CiAKLSAgICBNZXRob2RMaXN0TWFwOjpjb25z
dF9pdGVyYXRvciBlbmQgPSBfbWV0aG9kcy5lbmQoKTsKLSAgICBmb3IgKE1ldGhvZExpc3RNYXA6
OmNvbnN0X2l0ZXJhdG9yIGl0ID0gX21ldGhvZHMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7
CisgICAgTWV0aG9kTGlzdE1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9tZXRob2RzLmVuZCgp
OworICAgIGZvciAoTWV0aG9kTGlzdE1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX21ldGhvZHMu
YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIGNvbnN0IE1ldGhvZExpc3QqIG1l
dGhvZExpc3QgPSBpdC0+c2Vjb25kOwogICAgICAgICBkZWxldGVBbGxWYWx1ZXMoKm1ldGhvZExp
c3QpOwogICAgICAgICBkZWxldGUgbWV0aG9kTGlzdDsKICAgICB9Ci0gICAgX21ldGhvZHMuY2xl
YXIoKTsKKyAgICBtX21ldGhvZHMuY2xlYXIoKTsKIH0KIAogTWV0aG9kTGlzdCBKYXZhQ2xhc3M6
Om1ldGhvZHNOYW1lZChjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBJbnN0YW5jZSopIGNv
bnN0CiB7Ci0gICAgTWV0aG9kTGlzdCAqbWV0aG9kTGlzdCA9IF9tZXRob2RzLmdldChpZGVudGlm
aWVyLnVzdHJpbmcoKS5yZXAoKSk7Ci0gICAgCisgICAgTWV0aG9kTGlzdCogbWV0aG9kTGlzdCA9
IG1fbWV0aG9kcy5nZXQoaWRlbnRpZmllci51c3RyaW5nKCkucmVwKCkpOworCiAgICAgaWYgKG1l
dGhvZExpc3QpCiAgICAgICAgIHJldHVybiAqbWV0aG9kTGlzdDsKICAgICByZXR1cm4gTWV0aG9k
TGlzdCgpOwogfQogCi1GaWVsZCAqSmF2YUNsYXNzOjpmaWVsZE5hbWVkKGNvbnN0IElkZW50aWZp
ZXImIGlkZW50aWZpZXIsIEluc3RhbmNlKikgY29uc3QKK0ZpZWxkKiBKYXZhQ2xhc3M6OmZpZWxk
TmFtZWQoY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgSW5zdGFuY2UqKSBjb25zdAogewot
ICAgIHJldHVybiBfZmllbGRzLmdldChpZGVudGlmaWVyLnVzdHJpbmcoKS5yZXAoKSk7CisgICAg
cmV0dXJuIG1fZmllbGRzLmdldChpZGVudGlmaWVyLnVzdHJpbmcoKS5yZXAoKSk7CiB9CiAKIGJv
b2wgSmF2YUNsYXNzOjppc051bWJlckNsYXNzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gKChzdHJj
bXAoX25hbWUsICJqYXZhLmxhbmcuQnl0ZSIpID09IDAgfHwKLSAgICAgICAgICAgICBzdHJjbXAo
X25hbWUsICJqYXZhLmxhbmcuU2hvcnQiKSA9PSAwIHx8Ci0gICAgICAgICAgICAgc3RyY21wKF9u
YW1lLCAiamF2YS5sYW5nLkludGVnZXIiKSA9PSAwIHx8Ci0gICAgICAgICAgICAgc3RyY21wKF9u
YW1lLCAiamF2YS5sYW5nLkxvbmciKSA9PSAwIHx8Ci0gICAgICAgICAgICAgc3RyY21wKF9uYW1l
LCAiamF2YS5sYW5nLkZsb2F0IikgPT0gMCB8fAotICAgICAgICAgICAgIHN0cmNtcChfbmFtZSwg
ImphdmEubGFuZy5Eb3VibGUiKSA9PSAwKSApOworICAgIHJldHVybiAoIXN0cmNtcChtX25hbWUs
ICJqYXZhLmxhbmcuQnl0ZSIpCisgICAgICAgIHx8ICFzdHJjbXAobV9uYW1lLCAiamF2YS5sYW5n
LlNob3J0IikKKyAgICAgICAgfHwgIXN0cmNtcChtX25hbWUsICJqYXZhLmxhbmcuSW50ZWdlciIp
CisgICAgICAgIHx8ICFzdHJjbXAobV9uYW1lLCAiamF2YS5sYW5nLkxvbmciKQorICAgICAgICB8
fCAhc3RyY21wKG1fbmFtZSwgImphdmEubGFuZy5GbG9hdCIpCisgICAgICAgIHx8ICFzdHJjbXAo
bV9uYW1lLCAiamF2YS5sYW5nLkRvdWJsZSIpKTsKIH0KIAogYm9vbCBKYXZhQ2xhc3M6OmlzQm9v
bGVhbkNsYXNzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RyY21wKF9uYW1lLCAiamF2YS5sYW5n
LkJvb2xlYW4iKSA9PSAwOworICAgIHJldHVybiAhc3RyY21wKG1fbmFtZSwgImphdmEubGFuZy5C
b29sZWFuIik7CiB9CiAKIGJvb2wgSmF2YUNsYXNzOjppc1N0cmluZ0NsYXNzKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gc3RyY21wKF9uYW1lLCAiamF2YS5sYW5nLlN0cmluZyIpID09IDA7CisgICAg
cmV0dXJuICFzdHJjbXAobV9uYW1lLCAiamF2YS5sYW5nLlN0cmluZyIpOwogfQogCiAjZW5kaWYg
Ly8gRU5BQkxFKE1BQ19KQVZBX0JSSURHRSkKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL2puaS9qc2Mv
SmF2YUNsYXNzSlNDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZh
Q2xhc3NKU0MuaAkocmV2aXNpb24gNTM0NTApCisrKyBXZWJDb3JlL2JyaWRnZS9qbmkvanNjL0ph
dmFDbGFzc0pTQy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwMyBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA1LCAyMDA3LCAyMDA5LCAyMDEwIEFwcGxlIENvbXB1
dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yMCw3ICsyMCw3IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpZm5kZWYg
SmF2YUNsYXNzSlNDX2gKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShNQUNfSkFWQV9C
UklER0UpCiAKLSNpbmNsdWRlIDxqbmlfcnVudGltZS5oPgorI2luY2x1ZGUgImpuaV9ydW50aW1l
LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zNywy
MCArMzcsMjAgQEAgbmFtZXNwYWNlIEJpbmRpbmdzIHsKIAogY2xhc3MgSmF2YUNsYXNzIDogcHVi
bGljIENsYXNzIHsKIHB1YmxpYzoKLSAgICBKYXZhQ2xhc3MgKGpvYmplY3QgYW5JbnN0YW5jZSk7
Ci0gICAgfkphdmFDbGFzcyAoKTsKKyAgICBKYXZhQ2xhc3Moam9iamVjdCk7CisgICAgfkphdmFD
bGFzcygpOworCisgICAgdmlydHVhbCBNZXRob2RMaXN0IG1ldGhvZHNOYW1lZChjb25zdCBJZGVu
dGlmaWVyJiwgSW5zdGFuY2UqKSBjb25zdDsKKyAgICB2aXJ0dWFsIEZpZWxkKiBmaWVsZE5hbWVk
KGNvbnN0IElkZW50aWZpZXImLCBJbnN0YW5jZSopIGNvbnN0OwogCi0gICAgdmlydHVhbCBNZXRo
b2RMaXN0IG1ldGhvZHNOYW1lZChjb25zdCBJZGVudGlmaWVyJiwgSW5zdGFuY2UqIGluc3RhbmNl
KSBjb25zdDsgICAgCi0gICAgdmlydHVhbCBGaWVsZCAqZmllbGROYW1lZChjb25zdCBJZGVudGlm
aWVyJiwgSW5zdGFuY2UqIGluc3RhbmNlKSBjb25zdDsKLSAgICAKICAgICBib29sIGlzTnVtYmVy
Q2xhc3MoKSBjb25zdDsKICAgICBib29sIGlzQm9vbGVhbkNsYXNzKCkgY29uc3Q7CiAgICAgYm9v
bCBpc1N0cmluZ0NsYXNzKCkgY29uc3Q7Ci0gICAgCisKIHByaXZhdGU6Ci0gICAgY29uc3QgY2hh
ciAqX25hbWU7Ci0gICAgRmllbGRNYXAgX2ZpZWxkczsKLSAgICBNZXRob2RMaXN0TWFwIF9tZXRo
b2RzOworICAgIGNvbnN0IGNoYXIqIG1fbmFtZTsKKyAgICBGaWVsZE1hcCBtX2ZpZWxkczsKKyAg
ICBNZXRob2RMaXN0TWFwIG1fbWV0aG9kczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEJpbmRpbmdz
Cg==
</data>
<flag name="review"
          id="29266"
          type_id="1"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>