<?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>24891</bug_id>
          
          <creation_ts>2009-03-27 12:06:38 -0700</creation_ts>
          <short_desc>WebCore can be 600K smaller</short_desc>
          <delta_ts>2009-07-31 15:04:46 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="Greg Bolsinga">bolsinga</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>aroben</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>115581</commentid>
    <comment_count>0</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-03-27 12:06:38 -0700</bug_when>
    <thetext>With exported C++ and Obj-C++ files in WebCore and WebKit, you&apos;ll see the C++ namespaces strings repeated often in the binaries.

By renaming the namespaces (WebCore -&gt; W, WTF -&gt; F, JSC -&gt; J) the total size of the 3 binaries can be reduced by ~600K, in my testing.

This is extremely advantageous on memory constrained platforms. You can see some Obj-C++ strings in WebCore (via strings - &lt;WebCoreLibrary&gt;| grep WebCore) that are extremely long. These affect performance.

We have learned that all of these strings are touched during library use. The smaller the library, and the shorter the strings the better on memory constrained platforms.

This patch fixes this in a ham-handed way (#defines at in Platform.h) and post-processes the .exp files, but it is a proof of concept.

Our performance team indicates this is a big win on our platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115583</commentid>
    <comment_count>1</comment_count>
      <attachid>29021</attachid>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-03-27 12:07:28 -0700</bug_when>
    <thetext>Created attachment 29021
Patch makes WebCore ~600K smaller

This is a ham-handed patch so that this can be tested out for performance testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115637</commentid>
    <comment_count>2</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-03-27 16:00:36 -0700</bug_when>
    <thetext>And by indicates  I mean believes. Testing is currently in progress.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115670</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-28 09:32:54 -0700</bug_when>
    <thetext>I would expect memory-constrained platforms to just strip the binary of all method names, for a much bigger win. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115687</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-03-28 11:43:24 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I would expect memory-constrained platforms to just strip the binary of all
&gt; method names, for a much bigger win. 

Objective-C method names can&apos;t be stripped, though, and some selectors in Objective-C++ source code (which include C++-mangled type names) are multiple *kilobytes*--for a single selector.  That&apos;s where the benefit lies for this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115689</commentid>
    <comment_count>5</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-03-28 11:45:48 -0700</bug_when>
    <thetext>There are small size wins in JavaScriptCore as well, so it isn&apos;t just all Obj-C++.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117500</commentid>
    <comment_count>6</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-04-14 11:41:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/6729586&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117917</commentid>
    <comment_count>7</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-04-17 09:20:59 -0700</bug_when>
    <thetext>Here&apos;s some bugs that address this problem at a better level:

https://bugs.webkit.org/show_bug.cgi?id=25210
https://bugs.webkit.org/show_bug.cgi?id=25266</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120527</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-05-09 14:29:48 -0700</bug_when>
    <thetext>How much is saved after fixing Bug 25210?  Is this still worth doing?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122065</commentid>
    <comment_count>9</comment_count>
      <attachid>29021</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-19 22:31:46 -0700</bug_when>
    <thetext>Comment on attachment 29021
Patch makes WebCore ~600K smaller

The patch looks great!  Given your own reluctance in your last comment, I&apos;m marking this r- for now.  Please feel encouraged to re-mark this r=? if this should actually still be reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136260</commentid>
    <comment_count>10</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-07-31 15:04:46 -0700</bug_when>
    <thetext>I think the other bugs are better fixes for this, and iPhone already had a big win from Bug 25210. So I&apos;m closing this as NTBF.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29021</attachid>
            <date>2009-03-27 12:07:28 -0700</date>
            <delta_ts>2009-05-19 22:31:46 -0700</delta_ts>
            <desc>Patch makes WebCore ~600K smaller</desc>
            <filename>smaller.patch.txt</filename>
            <type>text/plain</type>
            <size>11800</size>
            <attacher name="Greg Bolsinga">bolsinga</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQyMDQ3KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDMtMjcgIEdyZWcgQm9s
c2luZ2EgIDxib2xzaW5nYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisgICAgICAgIAorICAgICAgICBVc2luZyBzaG9ydGVyIG5hbWVzcGFjZXMgc2F2
ZXMgNjAwSyBpbiBXZWJDb3JlLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlw
dENvcmUueGNjb25maWc6CisgICAgICAgIFVzZSBmb3IgdGhlIHNob3J0IG5hbWVzcGFjZXMgZXhw
IGZpbGVzLgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgIFJ1biB0aGUgNjQgYml0IGFuZCBzaG9ydCBuYW1lc3BhY2Ugc2NyaXB0cyBp
biBEZXJpdmVkIFNvdXJjZXMgc28gdGhleSBhcmUgcnVuIGJlZm9yZSBsaW5raW5nLgorICAgICAg
ICAqIGppdC9KSVQuY3BwOgorICAgICAgICBDaGVjayBFTkFCTEUoU0hPUlRfTkFNRVNQQUNFUykg
d2hlcmUgbmVlZGVkLgorICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorICAgICAgICBJZiBFTkFC
TEVfU0hPUlRfTkFNRVNQQUNFUywgdXNlciBzaG9ydGVyIG5hbWVzcGFjZXMsIHNhdmluZyA2MDBL
IGluIFdlYkNvcmUuCisKIDIwMDktMDMtMjcgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21i
b3NAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDog
SmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvSmF2YVNjcmlwdENvcmUu
eGNjb25maWcJKHJldmlzaW9uIDQyMDM3KQorKysgSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlv
bnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzEsMTAg
QEAKICNpbmNsdWRlICJWZXJzaW9uLnhjY29uZmlnIgogRVhQT1JURURfU1lNQk9MU19GSUxFID0g
JChFWFBPUlRFRF9TWU1CT0xTX0ZJTEVfJChDVVJSRU5UX0FSQ0gpKTsKLUVYUE9SVEVEX1NZTUJP
TFNfRklMRV8gPSBKYXZhU2NyaXB0Q29yZS5leHA7Ci1FWFBPUlRFRF9TWU1CT0xTX0ZJTEVfaTM4
NiA9IEphdmFTY3JpcHRDb3JlLmV4cDsKLUVYUE9SVEVEX1NZTUJPTFNfRklMRV9wcGMgPSBKYXZh
U2NyaXB0Q29yZS5leHA7Ci1FWFBPUlRFRF9TWU1CT0xTX0ZJTEVfcHBjNjQgPSAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
TFA2NC5leHA7Ci1FWFBPUlRFRF9TWU1CT0xTX0ZJTEVfeDg2XzY0ID0gJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLkxQNjQu
ZXhwOworRVhQT1JURURfU1lNQk9MU19GSUxFXyA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5zaG9ydC5leHA7CitFWFBP
UlRFRF9TWU1CT0xTX0ZJTEVfaTM4NiA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5zaG9ydC5leHA7CitFWFBPUlRFRF9T
WU1CT0xTX0ZJTEVfcHBjID0gJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnNob3J0LmV4cDsKK0VYUE9SVEVEX1NZTUJPTFNf
RklMRV9wcGM2NCA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5MUDY0LnNob3J0LmV4cDsKK0VYUE9SVEVEX1NZTUJPTFNf
RklMRV94ODZfNjQgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuTFA2NC5zaG9ydC5leHA7CiBPVEhFUl9MREZMQUdTID0g
LWxvYmpjIC1zdWJfbGlicmFyeSBsaWJvYmpjIC1XbCwtWSwzOwogR0NDX1BSRUZJWF9IRUFERVIg
PSBKYXZhU2NyaXB0Q29yZVByZWZpeC5oOwogSEVBREVSX1NFQVJDSF9QQVRIUyA9ICIke0JVSUxU
X1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUiICQoSEVBREVSX1NF
QVJDSF9QQVRIUyk7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDQyMDM3KQorKysgSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtMTMsNiArMTMsOCBAQAogCQkJYnVpbGRQaGFzZXMgPSAoCiAJCQkJNjVG
QjNGNjUwOUQxMUU5MTAwRjQ5REVCIC8qIEdlbmVyYXRlIERlcml2ZWQgU291cmNlcyAqLywKIAkJ
CQk1RDM1REVFMTBDN0MxNDBCMDA4NjQ4QjIgLyogR2VuZXJhdGUgRFRyYWNlIGhlYWRlciAqLywK
KwkJCQkxQzM5NUNCQzBDNkJDQzE2MDAwRDFFNTIgLyogR2VuZXJhdGUgNjQtYml0IEV4cG9ydCBG
aWxlICovLAorCQkJCUZFQ0UyNkNCMEY3RDMwODEwMEEwMUFBQiAvKiBHZW5lcmF0ZSBTaG9ydCBO
YW1lc3BhY2VzIEV4cG9ydCBGaWxlICovLAogCQkJKTsKIAkJCW5hbWUgPSAiRGVyaXZlZCBTb3Vy
Y2VzIjsKIAkJCXByb2R1Y3ROYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CkBAIC0xODAyLDcgKzE4
MDQsNiBAQAogCQkJCTkzMzQ1NzIwMEVCRkRDM0YwMEI4MDg5NCAvKiBDaGVjayBGb3IgRXhpdCBU
aW1lIERlc3RydWN0b3JzICovLAogCQkJCTVEMjlEOEJFMEU5ODYwQjQwMEMzRDJEMCAvKiBDaGVj
ayBGb3IgV2VhayBWVGFibGVzICovLAogCQkJCTkzMkY1QkQyMDgyMkExQzcwMDczNjk3NSAvKiBG
cmFtZXdvcmtzICovLAotCQkJCTFDMzk1Q0JDMEM2QkNDMTYwMDBEMUU1MiAvKiBHZW5lcmF0ZSA2
NC1iaXQgRXhwb3J0IEZpbGUgKi8sCiAJCQkpOwogCQkJYnVpbGRSdWxlcyA9ICgKIAkJCSk7CkBA
IC0yMDA0LDYgKzIwMDUsMjIgQEAKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CiAJCQlzaGVsbFNj
cmlwdCA9ICJpZiBbIC1mIC4uL1dlYktpdFRvb2xzL1NjcmlwdHMvY2hlY2stZm9yLWV4aXQtdGlt
ZS1kZXN0cnVjdG9ycyBdOyB0aGVuXG4gICAgLi4vV2ViS2l0VG9vbHMvU2NyaXB0cy9jaGVjay1m
b3ItZXhpdC10aW1lLWRlc3RydWN0b3JzIHx8IGV4aXQgJD9cbmZpIjsKIAkJfTsKKwkJRkVDRTI2
Q0IwRjdEMzA4MTAwQTAxQUFCIC8qIEdlbmVyYXRlIFNob3J0IE5hbWVzcGFjZXMgRXhwb3J0IEZp
bGUgKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRo
cyA9ICgKKwkJCQkiJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLkxQNjQuZXhwIiwKKwkJCSk7CisJCQluYW1lID0gIkdlbmVy
YXRlIFNob3J0IE5hbWVzcGFjZXMgRXhwb3J0IEZpbGUiOworCQkJb3V0cHV0UGF0aHMgPSAoCisJ
CQkJIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5zaG9ydC5leHAiLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2Ny
aXB0ID0gIiMgU2hvcnRlbiBDKysgbmFtZXNwYWNlc1xuc2VkIC1lIHMvM0pTQy8xSi9nIC1lIHMv
M1dURi8xRi9nIC1lIHMvN1dlYkNvcmUvMVcvZyBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJp
dmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5MUDY0LmV4cFwiID4gXCIk
e0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuc2hvcnQuZXhwXCIiOworCQl9OwogLyogRW5kIFBCWFNoZWxsU2NyaXB0QnVpbGRQ
aGFzZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24g
Ki8KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL2ppdC9KSVQuY3BwCShyZXZpc2lvbiA0MjAzNykKKysrIEphdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSwxNCArNzksMjIgQEAgYXNtKAogIi5n
bG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKIFNZTUJPTF9T
VFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCiAjaWYgVVNFKEpJVF9TVFVCX0FS
R1VNRU5UX1ZBX0xJU1QpCisjaWYgIUVOQUJMRShTSE9SVF9OQU1FU1BBQ0VTKQogICAgICJjYWxs
ICIgU1lNQk9MX1NUUklORyhfWk4zSlNDOEpJVFN0dWJzMTJjdGlfdm1fdGhyb3dFUHZ6KSAiXG4i
CiAjZWxzZQorICAgICJjYWxsICIgU1lNQk9MX1NUUklORyhfWk4xSjhKSVRTdHViczEyY3RpX3Zt
X3Rocm93RVB2eikgIlxuIgorI2VuZGlmCisjZWxzZQogI2lmIFVTRShKSVRfU1RVQl9BUkdVTUVO
VF9SRUdJU1RFUikKICAgICAibW92bCAlZXNwLCAlZWN4IiAiXG4iCiAjZWxzZSAvLyBKSVRfU1RV
Ql9BUkdVTUVOVF9TVEFDSwogICAgICJtb3ZsICVlc3AsIDAoJWVzcCkiICJcbiIKICNlbmRpZgor
I2lmICFFTkFCTEUoU0hPUlRfTkFNRVNQQUNFUykKICAgICAiY2FsbCAiIFNZTUJPTF9TVFJJTkco
X1pOM0pTQzhKSVRTdHViczEyY3RpX3ZtX3Rocm93RVBQdikgIlxuIgorI2Vsc2UKKyAgICAiY2Fs
bCAiIFNZTUJPTF9TVFJJTkcoX1pOMUo4SklUU3R1YnMxMmN0aV92bV90aHJvd0VQUHYpICJcbiIK
KyNlbmRpZgogI2VuZGlmCiAgICAgImFkZGwgJDB4MWMsICVlc3AiICJcbiIKICAgICAicG9wbCAl
ZWJ4IiAiXG4iCkBAIC0xMzgsNyArMTQ2LDExIEBAIGFzbSgKIFNZTUJPTF9TVFJJTkcoY3RpVk1U
aHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCiAjaWYgVVNFKEpJVF9TVFVCX0FSR1VNRU5UX1JFR0lT
VEVSKQogICAgICJtb3ZxICVyc3AsICVyZGkiICJcbiIKKyNpZiAhRU5BQkxFKFNIT1JUX05BTUVT
UEFDRVMpCiAgICAgImNhbGwgIiBTWU1CT0xfU1RSSU5HKF9aTjNKU0M4SklUU3R1YnMxMmN0aV92
bV90aHJvd0VQUHYpICJcbiIKKyNlbHNlCisgICAgImNhbGwgIiBTWU1CT0xfU1RSSU5HKF9aTjFK
OEpJVFN0dWJzMTJjdGlfdm1fdGhyb3dFUFB2KSAiXG4iCisjZW5kaWYKICNlbHNlIC8vIEpJVF9T
VFVCX0FSR1VNRU5UX1ZBX0xJU1Qgb3IgSklUX1NUVUJfQVJHVU1FTlRfU1RBQ0sKICNlcnJvciAi
SklUX1NUVUJfQVJHVU1FTlQgY29uZmlndXJhdGlvbiBub3Qgc3VwcG9ydGVkLiIKICNlbmRpZgpJ
bmRleDogSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNj
cmlwdENvcmUvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDQyMDM3KQorKysgSmF2YVNjcmlwdENv
cmUvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxMiw2ICszMTIsNyBAQAogI2Vu
ZGlmCiAjZGVmaW5lIEhBVkVfUkVBRExJTkUgMQogI2RlZmluZSBIQVZFX1JVTkxPT1BfVElNRVIg
MQorI2RlZmluZSBFTkFCTEVfU0hPUlRfTkFNRVNQQUNFUyAxCiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKENIUk9NSVVNKSAmJiBQTEFURk9STShEQVJXSU4pCkBAIC00NjMsNiArNDY0LDEwIEBACiAj
ZGVmaW5lIEVOQUJMRV9SRVBBSU5UX1RIUk9UVExJTkcgMAogI2VuZGlmCiAKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfU0hPUlRfTkFNRVNQQUNFUykKKyNkZWZpbmUgRU5BQkxFX1NIT1JUX05BTUVTUEFD
RVMgMAorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVfSklUKQogLyogVGhlIEpJVCBpcyB0
ZXN0ZWQgJiB3b3JraW5nIG9uIHg4Nl82NCBNYWMgKi8KICNpZiBQTEFURk9STShYODZfNjQpICYm
IFBMQVRGT1JNKE1BQykKQEAgLTUyMiw0ICs1MjcsMTAgQEAKICNkZWZpbmUgV1RGX1VTRV9GT05U
X0ZBU1RfUEFUSCAxCiAjZW5kaWYKIAorI2lmIEVOQUJMRShTSE9SVF9OQU1FU1BBQ0VTKQorI2Rl
ZmluZSBXVEYgRgorI2RlZmluZSBXZWJDb3JlIFcKKyNkZWZpbmUgSlNDIEoKKyNlbmRpZgorCiAj
ZW5kaWYgLyogV1RGX1BsYXRmb3JtX2ggKi8KSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MjA0NykKKysrIFdlYkNvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDMtMjcgIEdy
ZWcgQm9sc2luZ2EgIDxib2xzaW5nYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNpbmcgc2hvcnRlciBuYW1lc3BhY2VzIHNhdmVz
IDYwMEsgaW4gV2ViQ29yZS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNj
b25maWc6CisgICAgICAgIFVzZSBmb3IgdGhlIHNob3J0IG5hbWVzcGFjZXMgZXhwIGZpbGVzLgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgUnVu
IHRoZSA2NCBiaXQgYW5kIHNob3J0IG5hbWVzcGFjZSBzY3JpcHRzIGluIERlcml2ZWQgU291cmNl
cyBzbyB0aGV5IGFyZSBydW4gYmVmb3JlIGxpbmtpbmcuCisgICAgICAgICogY3NzL21ha2UtY3Nz
LWZpbGUtYXJyYXlzLnBsOgorICAgICAgICAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CisKIDIw
MDktMDMtMjcgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0
IGluY2x1ZGUgc3Vic3RpdHV0ZSBkYXRhIFVSTHMgaW4gZ2xvYmFsIGhpc3RvcnkgcmVkaXJlY3Qg
Y2hhaW5zCkluZGV4OiBXZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnCShyZXZp
c2lvbiA0MjAzNykKKysrIFdlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZwko
d29ya2luZyBjb3B5KQpAQCAtMSwxMCArMSwxMCBAQAogI2luY2x1ZGUgIlZlcnNpb24ueGNjb25m
aWciCiBFWFBPUlRFRF9TWU1CT0xTX0ZJTEUgPSAkKEVYUE9SVEVEX1NZTUJPTFNfRklMRV8kKENV
UlJFTlRfQVJDSCkpOwotRVhQT1JURURfU1lNQk9MU19GSUxFXyA9ICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL1dlYkNvcmUuZXhwOwotRVhQT1JURURfU1lNQk9M
U19GSUxFX2kzODYgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9XZWJDb3JlLmV4cDsKLUVYUE9SVEVEX1NZTUJPTFNfRklMRV9wcGMgPSAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9XZWJDb3JlLmV4cDsKLUVYUE9SVEVEX1NZ
TUJPTFNfRklMRV9wcGM2NCA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL1dlYkNvcmUuTFA2NC5leHA7Ci1FWFBPUlRFRF9TWU1CT0xTX0ZJTEVfeDg2XzY0ID0g
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvV2ViQ29yZS5MUDY0
LmV4cDsKK0VYUE9SVEVEX1NZTUJPTFNfRklMRV8gPSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9XZWJDb3JlLnNob3J0LmV4cDsKK0VYUE9SVEVEX1NZTUJPTFNf
RklMRV9pMzg2ID0gJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
V2ViQ29yZS5zaG9ydC5leHA7CitFWFBPUlRFRF9TWU1CT0xTX0ZJTEVfcHBjID0gJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvV2ViQ29yZS5zaG9ydC5leHA7CitF
WFBPUlRFRF9TWU1CT0xTX0ZJTEVfcHBjNjQgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9XZWJDb3JlLkxQNjQuc2hvcnQuZXhwOworRVhQT1JURURfU1lNQk9M
U19GSUxFX3g4Nl82NCA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL1dlYkNvcmUuTFA2NC5zaG9ydC5leHA7CiBHQ0NfUFJFRklYX0hFQURFUiA9IFdlYkNvcmVQ
cmVmaXguaDsKIEdDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlMgPSAkKERFQlVHX0RFRklORVMp
ICQoRkVBVFVSRV9ERUZJTkVTKSBXRUJLSVRfVkVSU0lPTl9NSU5fUkVRVUlSRUQ9V0VCS0lUX1ZF
UlNJT05fTEFURVNUICQoR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyk7CiBGUkFNRVdPUktf
U0VBUkNIX1BBVEhTID0gJChTWVNURU1fTElCUkFSWV9ESVIpL0ZyYW1ld29ya3MvQ2FyYm9uLmZy
YW1ld29yay9GcmFtZXdvcmtzICQoU1lTVEVNX0xJQlJBUllfRElSKS9GcmFtZXdvcmtzL0FwcGxp
Y2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL0ZyYW1ld29ya3MgJChGUkFNRVdPUktfU0VBUkNIX1BB
VEhTKTsKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiA0MjAzNykKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw2ICsxMiw4IEBACiAJCQlidWlsZENvbmZpZ3VyYXRp
b25MaXN0ID0gREQwNDFGQzEwOUQ5REREQzAwMTBBRjJBIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24g
bGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovOwogCQkJYnVp
bGRQaGFzZXMgPSAoCiAJCQkJREQwNDFGQkQwOUQ5RERCRTAwMTBBRjJBIC8qIEdlbmVyYXRlIERl
cml2ZWQgU291cmNlcyAqLywKKwkJCQlGRUNFMjcwNTBGN0QzNDM1MDBBMDFBQUIgLyogR2VuZXJh
dGUgU2hvcnQgTmFtZXNwYWNlcyBFeHBvcnQgRmlsZSAqLywKKwkJCQkxQ0I3MUQ0QTBCMDI2NThE
MDA2MUVBNDUgLyogR2VuZXJhdGUgNjQtYml0IEV4cG9ydCBGaWxlICovLAogCQkJKTsKIAkJCWRl
cGVuZGVuY2llcyA9ICgKIAkJCSk7CkBAIC0xNzE4MSw2ICsxNzE4MywyMyBAQAogCQkJc2hlbGxQ
YXRoID0gL2Jpbi9zaDsKIAkJCXNoZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9E
VUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmVcIlxuY2QgXCIke0JVSUxUX1BST0RVQ1RT
X0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViQ29yZVwiXG5cbmV4cG9ydCBDUkVBVEVfSEFTSF9UQUJM
RT1cIiR7SkFWQVNDUklQVENPUkVfUFJJVkFURV9IRUFERVJTX0RJUn0vY3JlYXRlX2hhc2hfdGFi
bGVcIlxuXG5sbiAtc2ZoIFwiJHtTUkNST09UfVwiIFdlYkNvcmVcbmV4cG9ydCBXZWJDb3JlPVwi
V2ViQ29yZVwiXG5cbmlmIFsgXCIke0FDVElPTn1cIiA9IFwiYnVpbGRcIiAtbyBcIiR7QUNUSU9O
fVwiID0gXCJpbnN0YWxsXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGhkcnNcIiBdOyB0
aGVuXG4gICAgbWFrZSAtZiBcIldlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZVwiIC1qIGAvdXNy
L3NiaW4vc3lzY3RsIC1uIGh3LmF2YWlsY3B1YFxuZmlcbiI7CiAJCX07CisJCUZFQ0UyNzA1MEY3
RDM0MzUwMEEwMUFBQiAvKiBHZW5lcmF0ZSBTaG9ydCBOYW1lc3BhY2VzIEV4cG9ydCBGaWxlICov
ID0geworCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25N
YXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAo
CisJCQkJIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL1dlYkNv
cmUuTFA2NC5leHAiLAorCQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUgU2hvcnQgTmFtZXNwYWNl
cyBFeHBvcnQgRmlsZSI7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCQkiJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvV2ViQ29yZS5zaG9ydC5leHAiLAorCQkJCSIk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9XZWJDb3JlLkxQNjQu
c2hvcnQuZXhwIiwKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICIjIFNob3J0
ZW4gQysrIG5hbWVzcGFjZXNcbnNlZCAtZSBzLzNKU0MvMUovZyAtZSBzLzNXVEYvMUYvZyAtZSBz
LzdXZWJDb3JlLzFXL2cgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9XZWJDb3JlLmV4cFwiID4gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9XZWJDb3JlLnNob3J0LmV4cFwiXG5zZWQgLWUgcy8zSlNDLzFKL2cgLWUgcy8z
V1RGLzFGL2cgLWUgcy83V2ViQ29yZS8xVy9nIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvV2ViQ29yZS5MUDY0LmV4cFwiID4gXCIke0JVSUxUX1BST0RVQ1RT
X0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9XZWJDb3JlLkxQNjQuc2hvcnQuZXhwXCIiOwor
CQl9OwogLyogRW5kIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCiAKIC8qIEJl
Z2luIFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KSW5kZXg6IFdlYkNvcmUvY3NzL21h
a2UtY3NzLWZpbGUtYXJyYXlzLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL21ha2UtY3Nz
LWZpbGUtYXJyYXlzLnBsCShyZXZpc2lvbiA0MjAzNykKKysrIFdlYkNvcmUvY3NzL21ha2UtY3Nz
LWZpbGUtYXJyYXlzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw4IEBAIHNoaWZ0Owog
b3BlbiBIRUFERVIsICI+IiwgJGhlYWRlciBvciBkaWU7CiBvcGVuIE9VVCwgIj4iLCAkb3V0IG9y
IGRpZTsKIAorcHJpbnQgSEVBREVSICIjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+XG4iOworcHJp
bnQgT1VUICIjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+XG4iOwogcHJpbnQgSEVBREVSICJuYW1l
c3BhY2UgV2ViQ29yZSB7XG4iOwogcHJpbnQgT1VUICJuYW1lc3BhY2UgV2ViQ29yZSB7XG4iOwog
Cg==
</data>
<flag name="review"
          id="14365"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>