<?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>27544</bug_id>
          
          <creation_ts>2009-07-22 09:08:24 -0700</creation_ts>
          <short_desc>cpplint generates false positives for primary includes</short_desc>
          <delta_ts>2009-07-22 12:25:40 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Jakob Petsovits">jpetsovits</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>manyoso</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>133778</commentid>
    <comment_count>0</comment_count>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2009-07-22 09:08:24 -0700</bug_when>
    <thetext>The test for primary includes is intentionally broad in order to catch platform-specific variations (e.g. &quot;BlahQt.h&quot;, &quot;BlahWince.h&quot;, etc.). However, that might lead to a situation where an include file is classified as primary include even though it&apos;s not. The patch below avoids this situation for code where cpplint would detect multiple primary includes - obviously, only one can be the real thing, which is (hopefully) the first one.

By introducing a bit more state into the _IncludeState class, subsequent &quot;primary&quot; includes after the actual (first) one can be treated as regular &quot;other&quot; includes, fixing the false positive. See the test case for a less abstract example of this situation.

Brought to attention by Yong Li.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133781</commentid>
    <comment_count>1</comment_count>
      <attachid>33264</attachid>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2009-07-22 09:17:21 -0700</bug_when>
    <thetext>Created attachment 33264
Fix cpplint generating false positives for primary includes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133783</commentid>
    <comment_count>2</comment_count>
      <attachid>33264</attachid>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-07-22 09:30:09 -0700</bug_when>
    <thetext>Comment on attachment 33264
Fix cpplint generating false positives for primary includes

&gt; Fix false positives for instances when cpplint would
&gt; normally classify multiple includes as primary: After
&gt; the first primary include, classify all other ones as
&gt; &quot;other&quot; includes even if they look like primary ones.

Almost right I think.  Rather, what we want to do is make the primary header check even more strict after we&apos;ve found the first one IMO.

&gt; +        self._visited_primary_section = False
&gt; +        self.header_types = dict();
&gt; +
&gt; +    def visited_primary_section(self):
&gt; +        return self._visited_primary_section

Why did you add &apos;self.header_types = dic();&apos;

&gt;      if target_base.startswith(include_base):
&gt; -        return _PRIMARY_HEADER
&gt; +        # If we already had a primary header before, chances are that this one
&gt; +        # is a false positive (e.g. &quot;ScrollbarThemeWince.h&quot; and &quot;Scrollbar.h&quot;
&gt; +        # might both be classified as primary header, but only the first one
&gt; +        # is actually it).
&gt; +        if not include_state.visited_primary_section():
&gt; +            return _PRIMARY_HEADER

First, you could have combined the two &apos;if&apos;s&apos;.

Second, I&apos;m not sure this is what we want.  Like I said above, I think we want to make the header check more strict if we&apos;ve already found the first one. Make it check for exact match of target_base and include_base if we&apos;ve already found one.  And add a testcase for this.
&gt; +            include_state.header_types[line_number] = header_type

Purpose?

&gt; -                    previous_include = previous_match.group(2)
&gt; -                    previous_header_type = _classify_include(filename, previous_include, (previous_match.group(1) == &apos;&lt;&apos;))
&gt; +                    previous_header_type = include_state.header_types[previous_line_number]

Ahh, now I see.  Perhaps is ok, but not strictly necessary for this patch.

&gt; +                                          False, include_state))
&gt; +        # Tricky example where both includes might be classified as primary.
&gt; +        self.assert_language_rules_check(&apos;ScrollbarThemeWince.cpp&apos;,
&gt; +                                         &apos;#include &quot;config.h&quot;\n&apos;
&gt; +                                         &apos;#include &quot;ScrollbarThemeWince.h&quot;\n&apos;
&gt; +                                         &apos;\n&apos;
&gt; +                                         &apos;#include &quot;Scrollbar.h&quot;\n&apos;,
&gt; +                                         &apos;&apos;)

Otherwise looks good I think. r- for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133811</commentid>
    <comment_count>3</comment_count>
      <attachid>33272</attachid>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2009-07-22 11:10:26 -0700</bug_when>
    <thetext>Created attachment 33272
Fix cpplint generating false positives for primary includes (try 2)

Combined the two ifs into one condition in this new patch. This also makes it apparent that there is no need to make the check stricter than startswith() after encountering the first occurrence, because it won&apos;t be triggered anyways.

&gt; (regarding header_types dict)
&gt; Ahh, now I see.  Perhaps is ok, but not strictly necessary for this patch.

It was actually necessary, because the second _classify_include() apparently caused some state change which in turn caused some test case to fail. So this change makes the first _classify_include() to be the only one that&apos;s being called, which ensures proper state tracking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133828</commentid>
    <comment_count>4</comment_count>
      <attachid>33279</attachid>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2009-07-22 11:58:37 -0700</bug_when>
    <thetext>Created attachment 33279
Fix cpplint generating false positives for primary includes (try 3)

Ok, new try: This one still regards subsequent includes as primary if they strictly match the implementation&apos;s filename. Plus a new testcase to verify that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133836</commentid>
    <comment_count>5</comment_count>
      <attachid>33280</attachid>
    <who name="Jakob Petsovits">jpetsovits</who>
    <bug_when>2009-07-22 12:10:59 -0700</bug_when>
    <thetext>Created attachment 33280
Fix cpplint generating false positives for primary includes (try 4)

One more try, with (hopefully) clearer comments, incorporating suggestions by Adam Treat on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133837</commentid>
    <comment_count>6</comment_count>
      <attachid>33280</attachid>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-07-22 12:14:33 -0700</bug_when>
    <thetext>Comment on attachment 33280
Fix cpplint generating false positives for primary includes (try 4)

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133839</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2009-07-22 12:25:40 -0700</bug_when>
    <thetext>Landed with r46230.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33264</attachid>
            <date>2009-07-22 09:17:21 -0700</date>
            <delta_ts>2009-07-22 11:10:26 -0700</delta_ts>
            <desc>Fix cpplint generating false positives for primary includes</desc>
            <filename>0001-Fix-cpplint-generating-false-positives-for-primary-i.patch</filename>
            <type>text/plain</type>
            <size>8237</size>
            <attacher name="Jakob Petsovits">jpetsovits</attacher>
            
              <data encoding="base64">RnJvbSAxODBjNDNlNzUyNDA3MjNkODMzNjJkOWRlZWVmODc0NTVhMDdiMzgyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtvYiBQZXRzb3ZpdHMgPGpha29iLnBldHNvdml0c0B0b3Jj
aG1vYmlsZS5jb20+CkRhdGU6IFdlZCwgMjIgSnVsIDIwMDkgMTI6MTY6MjggLTA0MDAKU3ViamVj
dDogW1BBVENIXSBGaXggY3BwbGludCBnZW5lcmF0aW5nIGZhbHNlIHBvc2l0aXZlcyBmb3IgcHJp
bWFyeSBpbmNsdWRlcy4KCkZpeCBmYWxzZSBwb3NpdGl2ZXMgZm9yIGluc3RhbmNlcyB3aGVuIGNw
cGxpbnQgd291bGQKbm9ybWFsbHkgY2xhc3NpZnkgbXVsdGlwbGUgaW5jbHVkZXMgYXMgcHJpbWFy
eTogQWZ0ZXIKdGhlIGZpcnN0IHByaW1hcnkgaW5jbHVkZSwgY2xhc3NpZnkgYWxsIG90aGVyIG9u
ZXMgYXMKIm90aGVyIiBpbmNsdWRlcyBldmVuIGlmIHRoZXkgbG9vayBsaWtlIHByaW1hcnkgb25l
cy4KLS0tCiBXZWJLaXRUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTUgKysrKysrKysrKysrKysrCiBXZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3BwbGlu
dC5weSAgICAgICAgICB8ICAgMjIgKysrKysrKysrKysrKysrKystLS0tLQogV2ViS2l0VG9vbHMv
U2NyaXB0cy9tb2R1bGVzL2NwcGxpbnRfdW5pdHRlc3QucHkgfCAgIDIwICsrKysrKysrKysrKysr
LS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5n
ZUxvZwppbmRleCBkZjhjMjlhLi44OGQzOGU5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMDkt
MDctMjIgIEpha29iIFBldHNvdml0cyAgPGpha29iLnBldHNvdml0c0B0b3JjaG1vYmlsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgY3BwbGlu
dCBnZW5lcmF0ZXMgZmFsc2UgcG9zaXRpdmVzIGZvciBwcmltYXJ5IGluY2x1ZGVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzU0NAorCisgICAgICAg
IEZpeCBmYWxzZSBwb3NpdGl2ZXMgZm9yIGluc3RhbmNlcyB3aGVuIGNwcGxpbnQgd291bGQKKyAg
ICAgICAgbm9ybWFsbHkgY2xhc3NpZnkgbXVsdGlwbGUgaW5jbHVkZXMgYXMgcHJpbWFyeTogQWZ0
ZXIKKyAgICAgICAgdGhlIGZpcnN0IHByaW1hcnkgaW5jbHVkZSwgY2xhc3NpZnkgYWxsIG90aGVy
IG9uZXMgYXMKKyAgICAgICAgIm90aGVyIiBpbmNsdWRlcyBldmVuIGlmIHRoZXkgbG9vayBsaWtl
IHByaW1hcnkgb25lcy4KKworICAgICAgICAqIFNjcmlwdHMvbW9kdWxlcy9jcHBsaW50LnB5Ogor
ICAgICAgICAqIFNjcmlwdHMvbW9kdWxlcy9jcHBsaW50X3VuaXR0ZXN0LnB5OgorCiAyMDA5LTA3
LTIxICBKYWtvYiBQZXRzb3ZpdHMgIDxqYWtvYi5wZXRzb3ZpdHNAdG9yY2htb2JpbGUuY29tPgog
CiAgICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFRyZWF0LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVs
ZXMvY3BwbGludC5weQppbmRleCBjNmY5M2I3Li4yMDU4ZmZkIDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL21vZHVsZXMvY3BwbGludC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L21vZHVsZXMvY3BwbGludC5weQpAQCAtMjkxLDYgKzI5MSwxMSBAQCBjbGFzcyBfSW5jbHVkZVN0
YXRlKGRpY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgZGljdC5fX2luaXRf
XyhzZWxmKQogICAgICAgICBzZWxmLl9zZWN0aW9uID0gc2VsZi5fSU5JVElBTF9TRUNUSU9OCisg
ICAgICAgIHNlbGYuX3Zpc2l0ZWRfcHJpbWFyeV9zZWN0aW9uID0gRmFsc2UKKyAgICAgICAgc2Vs
Zi5oZWFkZXJfdHlwZXMgPSBkaWN0KCk7CisKKyAgICBkZWYgdmlzaXRlZF9wcmltYXJ5X3NlY3Rp
b24oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl92aXNpdGVkX3ByaW1hcnlfc2VjdGlvbgog
CiAgICAgZGVmIGNoZWNrX25leHRfaW5jbHVkZV9vcmRlcihzZWxmLCBoZWFkZXJfdHlwZSwgZmls
ZV9pc19oZWFkZXIpOgogICAgICAgICAiIiJSZXR1cm5zIGEgbm9uLWVtcHR5IGVycm9yIG1lc3Nh
Z2UgaWYgdGhlIG5leHQgaGVhZGVyIGlzIG91dCBvZiBvcmRlci4KQEAgLTMzMSw2ICszMzYsNyBA
QCBjbGFzcyBfSW5jbHVkZVN0YXRlKGRpY3QpOgogICAgICAgICAgICAgZWxpZiBzZWxmLl9zZWN0
aW9uIDwgc2VsZi5fQ09ORklHX1NFQ1RJT046CiAgICAgICAgICAgICAgICAgZXJyb3JfbWVzc2Fn
ZSA9IGJlZm9yZV9lcnJvcl9tZXNzYWdlCiAgICAgICAgICAgICBzZWxmLl9zZWN0aW9uID0gc2Vs
Zi5fUFJJTUFSWV9TRUNUSU9OCisgICAgICAgICAgICBzZWxmLl92aXNpdGVkX3ByaW1hcnlfc2Vj
dGlvbiA9IFRydWUKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGFzc2VydCBoZWFkZXJfdHlw
ZSA9PSBfT1RIRVJfSEVBREVSCiAgICAgICAgICAgICBpZiBub3QgZmlsZV9pc19oZWFkZXIgYW5k
IHNlbGYuX3NlY3Rpb24gPCBzZWxmLl9QUklNQVJZX1NFQ1RJT046CkBAIC0yMTA0LDEzICsyMTEw
LDE0IEBAIGRlZiBfaXNfdGVzdF9maWxlbmFtZShmaWxlbmFtZSk6CiAgICAgcmV0dXJuIEZhbHNl
CiAKIAotZGVmIF9jbGFzc2lmeV9pbmNsdWRlKGZpbGVuYW1lLCBpbmNsdWRlLCBpc19zeXN0ZW0p
OgorZGVmIF9jbGFzc2lmeV9pbmNsdWRlKGZpbGVuYW1lLCBpbmNsdWRlLCBpc19zeXN0ZW0sIGlu
Y2x1ZGVfc3RhdGUpOgogICAgICIiIkZpZ3VyZXMgb3V0IHdoYXQga2luZCBvZiBoZWFkZXIgJ2lu
Y2x1ZGUnIGlzLgogCiAgICAgQXJnczoKICAgICAgIGZpbGVuYW1lOiBUaGUgY3VycmVudCBmaWxl
IGNwcGxpbnQgaXMgcnVubmluZyBvdmVyLgogICAgICAgaW5jbHVkZTogVGhlIHBhdGggdG8gYSAj
aW5jbHVkZWQgZmlsZS4KICAgICAgIGlzX3N5c3RlbTogVHJ1ZSBpZiB0aGUgI2luY2x1ZGUgdXNl
ZCA8PiByYXRoZXIgdGhhbiAiIi4KKyAgICAgIGluY2x1ZGVfc3RhdGU6IEFuIF9JbmNsdWRlU3Rh
dGUgaW5zdGFuY2UgaW4gd2hpY2ggdGhlIGhlYWRlcnMgYXJlIGluc2VydGVkLgogCiAgICAgUmV0
dXJuczoKICAgICAgIE9uZSBvZiB0aGUgX1hYWF9IRUFERVIgY29uc3RhbnRzLgpAQCAtMjEzOCw3
ICsyMTQ1LDEyIEBAIGRlZiBfY2xhc3NpZnlfaW5jbHVkZShmaWxlbmFtZSwgaW5jbHVkZSwgaXNf
c3lzdGVtKToKICAgICBpbmNsdWRlX2Jhc2UgPSBGaWxlSW5mbyhpbmNsdWRlKS5iYXNlX25hbWUo
KQogCiAgICAgaWYgdGFyZ2V0X2Jhc2Uuc3RhcnRzd2l0aChpbmNsdWRlX2Jhc2UpOgotICAgICAg
ICByZXR1cm4gX1BSSU1BUllfSEVBREVSCisgICAgICAgICMgSWYgd2UgYWxyZWFkeSBoYWQgYSBw
cmltYXJ5IGhlYWRlciBiZWZvcmUsIGNoYW5jZXMgYXJlIHRoYXQgdGhpcyBvbmUKKyAgICAgICAg
IyBpcyBhIGZhbHNlIHBvc2l0aXZlIChlLmcuICJTY3JvbGxiYXJUaGVtZVdpbmNlLmgiIGFuZCAi
U2Nyb2xsYmFyLmgiCisgICAgICAgICMgbWlnaHQgYm90aCBiZSBjbGFzc2lmaWVkIGFzIHByaW1h
cnkgaGVhZGVyLCBidXQgb25seSB0aGUgZmlyc3Qgb25lCisgICAgICAgICMgaXMgYWN0dWFsbHkg
aXQpLgorICAgICAgICBpZiBub3QgaW5jbHVkZV9zdGF0ZS52aXNpdGVkX3ByaW1hcnlfc2VjdGlv
bigpOgorICAgICAgICAgICAgcmV0dXJuIF9QUklNQVJZX0hFQURFUgogCiAgICAgcmV0dXJuIF9P
VEhFUl9IRUFERVIKIApAQCAtMjE4Myw4ICsyMTk1LDkgQEAgZGVmIGNoZWNrX2luY2x1ZGVfbGlu
ZShmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBpbmNsdWRlX3N0YXRlLCBlcnJv
cikKICAgICAgICAgICAgICMgdXNpbmcgYSBudW1iZXIgb2YgdGVjaG5pcXVlcy4gVGhlIGluY2x1
ZGVfc3RhdGUgb2JqZWN0IGtlZXBzCiAgICAgICAgICAgICAjIHRyYWNrIG9mIHRoZSBoaWdoZXN0
IHR5cGUgc2VlbiwgYW5kIGNvbXBsYWlucyBpZiB3ZSBzZWUgYQogICAgICAgICAgICAgIyBsb3dl
ciB0eXBlIGFmdGVyIHRoYXQuCi0gICAgICAgICAgICBoZWFkZXJfdHlwZSA9IF9jbGFzc2lmeV9p
bmNsdWRlKGZpbGVuYW1lLCBpbmNsdWRlLCBpc19zeXN0ZW0pCisgICAgICAgICAgICBoZWFkZXJf
dHlwZSA9IF9jbGFzc2lmeV9pbmNsdWRlKGZpbGVuYW1lLCBpbmNsdWRlLCBpc19zeXN0ZW0sIGlu
Y2x1ZGVfc3RhdGUpCiAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlID0gaW5jbHVkZV9zdGF0ZS5j
aGVja19uZXh0X2luY2x1ZGVfb3JkZXIoaGVhZGVyX3R5cGUsIGZpbGVuYW1lLmVuZHN3aXRoKCcu
aCcpKQorICAgICAgICAgICAgaW5jbHVkZV9zdGF0ZS5oZWFkZXJfdHlwZXNbbGluZV9udW1iZXJd
ID0gaGVhZGVyX3R5cGUKIAogICAgICAgICAgICAgIyBDaGVjayB0byBtYWtlIHN1cmUgd2UgaGF2
ZSBhIGJsYW5rIGxpbmUgYWZ0ZXIgcHJpbWFyeSBoZWFkZXIuCiAgICAgICAgICAgICBpZiBub3Qg
ZXJyb3JfbWVzc2FnZSBhbmQgaGVhZGVyX3R5cGUgPT0gX1BSSU1BUllfSEVBREVSOgpAQCAtMjIw
NSw4ICsyMjE4LDcgQEAgZGVmIGNoZWNrX2luY2x1ZGVfbGluZShmaWxlbmFtZSwgY2xlYW5fbGlu
ZXMsIGxpbmVfbnVtYmVyLCBpbmNsdWRlX3N0YXRlLCBlcnJvcikKICAgICAgICAgICAgICAgICAg
ICAgcHJldmlvdXNfbGluZSA9IGNsZWFuX2xpbmVzLmxpbmVzW3ByZXZpb3VzX2xpbmVfbnVtYmVy
XQogICAgICAgICAgICAgICAgICAgICBwcmV2aW91c19tYXRjaCA9IF9SRV9QQVRURVJOX0lOQ0xV
REUuc2VhcmNoKHByZXZpb3VzX2xpbmUpCiAgICAgICAgICAgICAgICAgIGlmIHByZXZpb3VzX21h
dGNoOgotICAgICAgICAgICAgICAgICAgICBwcmV2aW91c19pbmNsdWRlID0gcHJldmlvdXNfbWF0
Y2guZ3JvdXAoMikKLSAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNfaGVhZGVyX3R5cGUgPSBf
Y2xhc3NpZnlfaW5jbHVkZShmaWxlbmFtZSwgcHJldmlvdXNfaW5jbHVkZSwgKHByZXZpb3VzX21h
dGNoLmdyb3VwKDEpID09ICc8JykpCisgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzX2hlYWRl
cl90eXBlID0gaW5jbHVkZV9zdGF0ZS5oZWFkZXJfdHlwZXNbcHJldmlvdXNfbGluZV9udW1iZXJd
CiAgICAgICAgICAgICAgICAgICAgIGlmIHByZXZpb3VzX2hlYWRlcl90eXBlID09IF9PVEhFUl9I
RUFERVIgYW5kIHByZXZpb3VzX2xpbmUuc3RyaXAoKSA+IGxpbmUuc3RyaXAoKToKICAgICAgICAg
ICAgICAgICAgICAgICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ2J1aWxkL2luY2x1
ZGVfb3JkZXInLCA0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FscGhhYmV0aWNh
bCBzb3J0aW5nIHByb2JsZW0uJykKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9k
dWxlcy9jcHBsaW50X3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2Nw
cGxpbnRfdW5pdHRlc3QucHkKaW5kZXggMThlYzAwYS4uZWM3M2U1NCAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnRfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnRfdW5pdHRlc3QucHkKQEAgLTIxNzQsMzAgKzIx
NzQsMzggQEAgY2xhc3MgT3JkZXJPZkluY2x1ZGVzVGVzdChDcHBsaW50VGVzdEJhc2UpOgogCiAg
ICAgZGVmIHRlc3RfY2xhc3NpZnlfaW5jbHVkZShzZWxmKToKICAgICAgICAgY2xhc3NpZnlfaW5j
bHVkZSA9IGNwcGxpbnQuX2NsYXNzaWZ5X2luY2x1ZGUKKyAgICAgICAgaW5jbHVkZV9zdGF0ZSA9
IGNwcGxpbnQuX0luY2x1ZGVTdGF0ZSgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3BwbGlu
dC5fQ09ORklHX0hFQURFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2lmeV9pbmNs
dWRlKCdmb28vZm9vLmNwcCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnY29uZmlnLmgnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRmFsc2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFs
c2UsIGluY2x1ZGVfc3RhdGUpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNwcGxpbnQuX1BS
SU1BUllfSEVBREVSLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzaWZ5X2luY2x1ZGUo
J2Zvby9pbnRlcm5hbC9mb28uY3BwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdmb28vcHVibGljL2Zvby5oJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEZhbHNlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEZhbHNlLCBpbmNsdWRlX3N0YXRlKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjcHBsaW50Ll9QUklNQVJZX0hFQURFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFz
c2lmeV9pbmNsdWRlKCdmb28vaW50ZXJuYWwvZm9vLmNwcCcsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnZm9vL290aGVyL3B1YmxpYy9mb28uaCcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSwgaW5jbHVkZV9zdGF0ZSkpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3BwbGludC5fT1RIRVJfSEVBREVSLAogICAgICAgICAgICAg
ICAgICAgICAgICAgIGNsYXNzaWZ5X2luY2x1ZGUoJ2Zvby9pbnRlcm5hbC9mb28uY3BwJywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb28vb3RoZXIvcHVibGlj
L2Zvb3AuaCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxz
ZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSwgaW5j
bHVkZV9zdGF0ZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3BwbGludC5fT1RIRVJfSEVB
REVSLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzaWZ5X2luY2x1ZGUoJ2Zvby9mb28u
Y3BwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdHJpbmcn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcnVlLCBpbmNsdWRlX3N0YXRl
KSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcHBsaW50Ll9QUklNQVJZX0hFQURFUiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2lmeV9pbmNsdWRlKCdmb29DdXN0b20uY3BwJywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb28uaCcsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSwgaW5jbHVkZV9zdGF0ZSkpCisg
ICAgICAgICMgVHJpY2t5IGV4YW1wbGUgd2hlcmUgYm90aCBpbmNsdWRlcyBtaWdodCBiZSBjbGFz
c2lmaWVkIGFzIHByaW1hcnkuCisgICAgICAgIHNlbGYuYXNzZXJ0X2xhbmd1YWdlX3J1bGVzX2No
ZWNrKCdTY3JvbGxiYXJUaGVtZVdpbmNlLmNwcCcsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICcjaW5jbHVkZSAiY29uZmlnLmgiXG4nCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICcjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVXaW5jZS5o
IlxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjaW5jbHVkZSAiU2Nyb2xsYmFy
LmgiXG4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJykKIAog
ICAgIGRlZiB0ZXN0X3RyeV9kcm9wX2NvbW1vbl9zdWZmaXhlcyhzZWxmKToKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnZm9vL2ZvbycsIGNwcGxpbnQuX2Ryb3BfY29tbW9uX3N1ZmZpeGVzKCdm
b28vZm9vLWlubC5oJykpCi0tIAoxLjYuMy4zCgo=
</data>
<flag name="review"
          id="17571"
          type_id="1"
          status="-"
          setter="manyoso"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33272</attachid>
            <date>2009-07-22 11:10:26 -0700</date>
            <delta_ts>2009-07-22 11:58:37 -0700</delta_ts>
            <desc>Fix cpplint generating false positives for primary includes (try 2)</desc>
            <filename>0001-Fix-cpplint-generating-false-positives-for-primary-i.patch</filename>
            <type>text/plain</type>
            <size>8261</size>
            <attacher name="Jakob Petsovits">jpetsovits</attacher>
            
              <data encoding="base64">RnJvbSBlZmY3MDUyYTY2ZmJiZDE5MDY4NjgzOTIyOWViYjU5MDRhMjI5YTlkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtvYiBQZXRzb3ZpdHMgPGpha29iLnBldHNvdml0c0B0b3Jj
aG1vYmlsZS5jb20+CkRhdGU6IFdlZCwgMjIgSnVsIDIwMDkgMTM6MDM6NTIgLTA0MDAKU3ViamVj
dDogW1BBVENIXSBGaXggY3BwbGludCBnZW5lcmF0aW5nIGZhbHNlIHBvc2l0aXZlcyBmb3IgcHJp
bWFyeSBpbmNsdWRlcy4KCkZpeCBmYWxzZSBwb3NpdGl2ZXMgZm9yIGluc3RhbmNlcyB3aGVuIGNw
cGxpbnQgd291bGQKbm9ybWFsbHkgY2xhc3NpZnkgbXVsdGlwbGUgaW5jbHVkZXMgYXMgcHJpbWFy
eTogQWZ0ZXIKdGhlIGZpcnN0IHByaW1hcnkgaW5jbHVkZSwgY2xhc3NpZnkgYWxsIG90aGVyIG9u
ZXMgYXMKIm90aGVyIiBpbmNsdWRlcyBldmVuIGlmIHRoZXkgbG9vayBsaWtlIHByaW1hcnkgb25l
cy4KLS0tCiBXZWJLaXRUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTUgKysrKysrKysrKysrKysrCiBXZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3BwbGlu
dC5weSAgICAgICAgICB8ICAgMjAgKysrKysrKysrKysrKysrLS0tLS0KIFdlYktpdFRvb2xzL1Nj
cmlwdHMvbW9kdWxlcy9jcHBsaW50X3VuaXR0ZXN0LnB5IHwgICAyMCArKysrKysrKysrKysrKy0t
LS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKaW5kZXggZGY4YzI5YS4uODhkMzhlOSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDA5LTA3
LTIyICBKYWtvYiBQZXRzb3ZpdHMgIDxqYWtvYi5wZXRzb3ZpdHNAdG9yY2htb2JpbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNwcGxpbnQg
Z2VuZXJhdGVzIGZhbHNlIHBvc2l0aXZlcyBmb3IgcHJpbWFyeSBpbmNsdWRlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc1NDQKKworICAgICAgICBG
aXggZmFsc2UgcG9zaXRpdmVzIGZvciBpbnN0YW5jZXMgd2hlbiBjcHBsaW50IHdvdWxkCisgICAg
ICAgIG5vcm1hbGx5IGNsYXNzaWZ5IG11bHRpcGxlIGluY2x1ZGVzIGFzIHByaW1hcnk6IEFmdGVy
CisgICAgICAgIHRoZSBmaXJzdCBwcmltYXJ5IGluY2x1ZGUsIGNsYXNzaWZ5IGFsbCBvdGhlciBv
bmVzIGFzCisgICAgICAgICJvdGhlciIgaW5jbHVkZXMgZXZlbiBpZiB0aGV5IGxvb2sgbGlrZSBw
cmltYXJ5IG9uZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvY3BwbGludC5weToKKyAg
ICAgICAgKiBTY3JpcHRzL21vZHVsZXMvY3BwbGludF91bml0dGVzdC5weToKKwogMjAwOS0wNy0y
MSAgSmFrb2IgUGV0c292aXRzICA8amFrb2IucGV0c292aXRzQHRvcmNobW9iaWxlLmNvbT4KIAog
ICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBUcmVhdC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvbW9kdWxlcy9jcHBsaW50LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVz
L2NwcGxpbnQucHkKaW5kZXggYzZmOTNiNy4uNTMzMGQ1NCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9t
b2R1bGVzL2NwcGxpbnQucHkKQEAgLTI5MSw2ICsyOTEsMTEgQEAgY2xhc3MgX0luY2x1ZGVTdGF0
ZShkaWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIGRpY3QuX19pbml0X18o
c2VsZikKICAgICAgICAgc2VsZi5fc2VjdGlvbiA9IHNlbGYuX0lOSVRJQUxfU0VDVElPTgorICAg
ICAgICBzZWxmLl92aXNpdGVkX3ByaW1hcnlfc2VjdGlvbiA9IEZhbHNlCisgICAgICAgIHNlbGYu
aGVhZGVyX3R5cGVzID0gZGljdCgpOworCisgICAgZGVmIHZpc2l0ZWRfcHJpbWFyeV9zZWN0aW9u
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdmlzaXRlZF9wcmltYXJ5X3NlY3Rpb24KIAog
ICAgIGRlZiBjaGVja19uZXh0X2luY2x1ZGVfb3JkZXIoc2VsZiwgaGVhZGVyX3R5cGUsIGZpbGVf
aXNfaGVhZGVyKToKICAgICAgICAgIiIiUmV0dXJucyBhIG5vbi1lbXB0eSBlcnJvciBtZXNzYWdl
IGlmIHRoZSBuZXh0IGhlYWRlciBpcyBvdXQgb2Ygb3JkZXIuCkBAIC0zMzEsNiArMzM2LDcgQEAg
Y2xhc3MgX0luY2x1ZGVTdGF0ZShkaWN0KToKICAgICAgICAgICAgIGVsaWYgc2VsZi5fc2VjdGlv
biA8IHNlbGYuX0NPTkZJR19TRUNUSU9OOgogICAgICAgICAgICAgICAgIGVycm9yX21lc3NhZ2Ug
PSBiZWZvcmVfZXJyb3JfbWVzc2FnZQogICAgICAgICAgICAgc2VsZi5fc2VjdGlvbiA9IHNlbGYu
X1BSSU1BUllfU0VDVElPTgorICAgICAgICAgICAgc2VsZi5fdmlzaXRlZF9wcmltYXJ5X3NlY3Rp
b24gPSBUcnVlCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBhc3NlcnQgaGVhZGVyX3R5cGUg
PT0gX09USEVSX0hFQURFUgogICAgICAgICAgICAgaWYgbm90IGZpbGVfaXNfaGVhZGVyIGFuZCBz
ZWxmLl9zZWN0aW9uIDwgc2VsZi5fUFJJTUFSWV9TRUNUSU9OOgpAQCAtMjEwNCwxMyArMjExMCwx
NCBAQCBkZWYgX2lzX3Rlc3RfZmlsZW5hbWUoZmlsZW5hbWUpOgogICAgIHJldHVybiBGYWxzZQog
CiAKLWRlZiBfY2xhc3NpZnlfaW5jbHVkZShmaWxlbmFtZSwgaW5jbHVkZSwgaXNfc3lzdGVtKToK
K2RlZiBfY2xhc3NpZnlfaW5jbHVkZShmaWxlbmFtZSwgaW5jbHVkZSwgaXNfc3lzdGVtLCBpbmNs
dWRlX3N0YXRlKToKICAgICAiIiJGaWd1cmVzIG91dCB3aGF0IGtpbmQgb2YgaGVhZGVyICdpbmNs
dWRlJyBpcy4KIAogICAgIEFyZ3M6CiAgICAgICBmaWxlbmFtZTogVGhlIGN1cnJlbnQgZmlsZSBj
cHBsaW50IGlzIHJ1bm5pbmcgb3Zlci4KICAgICAgIGluY2x1ZGU6IFRoZSBwYXRoIHRvIGEgI2lu
Y2x1ZGVkIGZpbGUuCiAgICAgICBpc19zeXN0ZW06IFRydWUgaWYgdGhlICNpbmNsdWRlIHVzZWQg
PD4gcmF0aGVyIHRoYW4gIiIuCisgICAgICBpbmNsdWRlX3N0YXRlOiBBbiBfSW5jbHVkZVN0YXRl
IGluc3RhbmNlIGluIHdoaWNoIHRoZSBoZWFkZXJzIGFyZSBpbnNlcnRlZC4KIAogICAgIFJldHVy
bnM6CiAgICAgICBPbmUgb2YgdGhlIF9YWFhfSEVBREVSIGNvbnN0YW50cy4KQEAgLTIxMzcsNyAr
MjE0NCwxMCBAQCBkZWYgX2NsYXNzaWZ5X2luY2x1ZGUoZmlsZW5hbWUsIGluY2x1ZGUsIGlzX3N5
c3RlbSk6CiAgICAgdGFyZ2V0X2Jhc2UgPSBGaWxlSW5mbyhmaWxlbmFtZSkuYmFzZV9uYW1lKCkK
ICAgICBpbmNsdWRlX2Jhc2UgPSBGaWxlSW5mbyhpbmNsdWRlKS5iYXNlX25hbWUoKQogCi0gICAg
aWYgdGFyZ2V0X2Jhc2Uuc3RhcnRzd2l0aChpbmNsdWRlX2Jhc2UpOgorICAgICMgSWYgd2UgYWxy
ZWFkeSBoYWQgYSBwcmltYXJ5IGhlYWRlciBiZWZvcmUsIGNoYW5jZXMgYXJlIHRoYXQgdGhpcyBv
bmUgaXMgYQorICAgICMgZmFsc2UgcG9zaXRpdmUgKGUuZy4gIlNjcm9sbGJhclRoZW1lV2luY2Uu
aCIgYW5kICJTY3JvbGxiYXIuaCIgbWlnaHQgYm90aAorICAgICMgYmUgY2xhc3NpZmllZCBhcyBw
cmltYXJ5IGhlYWRlciwgYnV0IG9ubHkgdGhlIGZpcnN0IG9uZSBpcyBhY3R1YWxseSBpdCkuCisg
ICAgaWYgbm90IGluY2x1ZGVfc3RhdGUudmlzaXRlZF9wcmltYXJ5X3NlY3Rpb24oKSBhbmQgdGFy
Z2V0X2Jhc2Uuc3RhcnRzd2l0aChpbmNsdWRlX2Jhc2UpOgogICAgICAgICByZXR1cm4gX1BSSU1B
UllfSEVBREVSCiAKICAgICByZXR1cm4gX09USEVSX0hFQURFUgpAQCAtMjE4Myw4ICsyMTkzLDkg
QEAgZGVmIGNoZWNrX2luY2x1ZGVfbGluZShmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVt
YmVyLCBpbmNsdWRlX3N0YXRlLCBlcnJvcikKICAgICAgICAgICAgICMgdXNpbmcgYSBudW1iZXIg
b2YgdGVjaG5pcXVlcy4gVGhlIGluY2x1ZGVfc3RhdGUgb2JqZWN0IGtlZXBzCiAgICAgICAgICAg
ICAjIHRyYWNrIG9mIHRoZSBoaWdoZXN0IHR5cGUgc2VlbiwgYW5kIGNvbXBsYWlucyBpZiB3ZSBz
ZWUgYQogICAgICAgICAgICAgIyBsb3dlciB0eXBlIGFmdGVyIHRoYXQuCi0gICAgICAgICAgICBo
ZWFkZXJfdHlwZSA9IF9jbGFzc2lmeV9pbmNsdWRlKGZpbGVuYW1lLCBpbmNsdWRlLCBpc19zeXN0
ZW0pCisgICAgICAgICAgICBoZWFkZXJfdHlwZSA9IF9jbGFzc2lmeV9pbmNsdWRlKGZpbGVuYW1l
LCBpbmNsdWRlLCBpc19zeXN0ZW0sIGluY2x1ZGVfc3RhdGUpCiAgICAgICAgICAgICBlcnJvcl9t
ZXNzYWdlID0gaW5jbHVkZV9zdGF0ZS5jaGVja19uZXh0X2luY2x1ZGVfb3JkZXIoaGVhZGVyX3R5
cGUsIGZpbGVuYW1lLmVuZHN3aXRoKCcuaCcpKQorICAgICAgICAgICAgaW5jbHVkZV9zdGF0ZS5o
ZWFkZXJfdHlwZXNbbGluZV9udW1iZXJdID0gaGVhZGVyX3R5cGUKIAogICAgICAgICAgICAgIyBD
aGVjayB0byBtYWtlIHN1cmUgd2UgaGF2ZSBhIGJsYW5rIGxpbmUgYWZ0ZXIgcHJpbWFyeSBoZWFk
ZXIuCiAgICAgICAgICAgICBpZiBub3QgZXJyb3JfbWVzc2FnZSBhbmQgaGVhZGVyX3R5cGUgPT0g
X1BSSU1BUllfSEVBREVSOgpAQCAtMjIwNSw4ICsyMjE2LDcgQEAgZGVmIGNoZWNrX2luY2x1ZGVf
bGluZShmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBpbmNsdWRlX3N0YXRlLCBl
cnJvcikKICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNfbGluZSA9IGNsZWFuX2xpbmVzLmxp
bmVzW3ByZXZpb3VzX2xpbmVfbnVtYmVyXQogICAgICAgICAgICAgICAgICAgICBwcmV2aW91c19t
YXRjaCA9IF9SRV9QQVRURVJOX0lOQ0xVREUuc2VhcmNoKHByZXZpb3VzX2xpbmUpCiAgICAgICAg
ICAgICAgICAgIGlmIHByZXZpb3VzX21hdGNoOgotICAgICAgICAgICAgICAgICAgICBwcmV2aW91
c19pbmNsdWRlID0gcHJldmlvdXNfbWF0Y2guZ3JvdXAoMikKLSAgICAgICAgICAgICAgICAgICAg
cHJldmlvdXNfaGVhZGVyX3R5cGUgPSBfY2xhc3NpZnlfaW5jbHVkZShmaWxlbmFtZSwgcHJldmlv
dXNfaW5jbHVkZSwgKHByZXZpb3VzX21hdGNoLmdyb3VwKDEpID09ICc8JykpCisgICAgICAgICAg
ICAgICAgICAgIHByZXZpb3VzX2hlYWRlcl90eXBlID0gaW5jbHVkZV9zdGF0ZS5oZWFkZXJfdHlw
ZXNbcHJldmlvdXNfbGluZV9udW1iZXJdCiAgICAgICAgICAgICAgICAgICAgIGlmIHByZXZpb3Vz
X2hlYWRlcl90eXBlID09IF9PVEhFUl9IRUFERVIgYW5kIHByZXZpb3VzX2xpbmUuc3RyaXAoKSA+
IGxpbmUuc3RyaXAoKToKICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKGZpbGVuYW1lLCBs
aW5lX251bWJlciwgJ2J1aWxkL2luY2x1ZGVfb3JkZXInLCA0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ0FscGhhYmV0aWNhbCBzb3J0aW5nIHByb2JsZW0uJykKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBsaW50X3VuaXR0ZXN0LnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnRfdW5pdHRlc3QucHkKaW5kZXggMThlYzAwYS4u
ZWM3M2U1NCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnRf
dW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnRfdW5p
dHRlc3QucHkKQEAgLTIxNzQsMzAgKzIxNzQsMzggQEAgY2xhc3MgT3JkZXJPZkluY2x1ZGVzVGVz
dChDcHBsaW50VGVzdEJhc2UpOgogCiAgICAgZGVmIHRlc3RfY2xhc3NpZnlfaW5jbHVkZShzZWxm
KToKICAgICAgICAgY2xhc3NpZnlfaW5jbHVkZSA9IGNwcGxpbnQuX2NsYXNzaWZ5X2luY2x1ZGUK
KyAgICAgICAgaW5jbHVkZV9zdGF0ZSA9IGNwcGxpbnQuX0luY2x1ZGVTdGF0ZSgpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY3BwbGludC5fQ09ORklHX0hFQURFUiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICBjbGFzc2lmeV9pbmNsdWRlKCdmb28vZm9vLmNwcCcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uZmlnLmgnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRmFsc2UsIGluY2x1ZGVfc3RhdGUpKQogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNwcGxpbnQuX1BSSU1BUllfSEVBREVSLAogICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsYXNzaWZ5X2luY2x1ZGUoJ2Zvby9pbnRlcm5hbC9mb28uY3BwJywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb28vcHVibGljL2Zvby5oJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlLCBpbmNsdWRlX3N0YXRlKSkK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcHBsaW50Ll9QUklNQVJZX0hFQURFUiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICBjbGFzc2lmeV9pbmNsdWRlKCdmb28vaW50ZXJuYWwvZm9vLmNw
cCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9vL290aGVy
L3B1YmxpYy9mb28uaCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBGYWxzZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxz
ZSwgaW5jbHVkZV9zdGF0ZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3BwbGludC5fT1RI
RVJfSEVBREVSLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzaWZ5X2luY2x1ZGUoJ2Zv
by9pbnRlcm5hbC9mb28uY3BwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdmb28vb3RoZXIvcHVibGljL2Zvb3AuaCcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBGYWxzZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBGYWxzZSwgaW5jbHVkZV9zdGF0ZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY3BwbGludC5fT1RIRVJfSEVBREVSLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNs
YXNzaWZ5X2luY2x1ZGUoJ2Zvby9mb28uY3BwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdzdHJpbmcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVHJ1ZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBUcnVlLCBpbmNsdWRlX3N0YXRlKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcHBs
aW50Ll9QUklNQVJZX0hFQURFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2lmeV9p
bmNsdWRlKCdmb29DdXN0b20uY3BwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdmb28uaCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBGYWxzZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG
YWxzZSwgaW5jbHVkZV9zdGF0ZSkpCisgICAgICAgICMgVHJpY2t5IGV4YW1wbGUgd2hlcmUgYm90
aCBpbmNsdWRlcyBtaWdodCBiZSBjbGFzc2lmaWVkIGFzIHByaW1hcnkuCisgICAgICAgIHNlbGYu
YXNzZXJ0X2xhbmd1YWdlX3J1bGVzX2NoZWNrKCdTY3JvbGxiYXJUaGVtZVdpbmNlLmNwcCcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjaW5jbHVkZSAiY29uZmln
LmgiXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjaW5jbHVk
ZSAiU2Nyb2xsYmFyVGhlbWVXaW5jZS5oIlxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICcjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiXG4nLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnJykKIAogICAgIGRlZiB0ZXN0X3RyeV9kcm9wX2NvbW1vbl9zdWZm
aXhlcyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZm9vL2ZvbycsIGNwcGxpbnQu
X2Ryb3BfY29tbW9uX3N1ZmZpeGVzKCdmb28vZm9vLWlubC5oJykpCi0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33279</attachid>
            <date>2009-07-22 11:58:37 -0700</date>
            <delta_ts>2009-07-22 12:10:59 -0700</delta_ts>
            <desc>Fix cpplint generating false positives for primary includes (try 3)</desc>
            <filename>0001-Fix-cpplint-generating-false-positives-for-primary-i.patch</filename>
            <type>text/plain</type>
            <size>9146</size>
            <attacher name="Jakob Petsovits">jpetsovits</attacher>
            
              <data encoding="base64">RnJvbSAyMGQwMGIwODk5OTk2MTBkNmVjZmQyYjk0ZGQ3YzRlYjhiNGE4YWYzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtvYiBQZXRzb3ZpdHMgPGpha29iLnBldHNvdml0c0B0b3Jj
aG1vYmlsZS5jb20+CkRhdGU6IFdlZCwgMjIgSnVsIDIwMDkgMTQ6NTY6MTMgLTA0MDAKU3ViamVj
dDogW1BBVENIXSBGaXggY3BwbGludCBnZW5lcmF0aW5nIGZhbHNlIHBvc2l0aXZlcyBmb3IgcHJp
bWFyeSBpbmNsdWRlcy4KCkZpeCBmYWxzZSBwb3NpdGl2ZXMgZm9yIGluc3RhbmNlcyB3aGVuIGNw
cGxpbnQgd291bGQKbm9ybWFsbHkgY2xhc3NpZnkgbXVsdGlwbGUgaW5jbHVkZXMgYXMgcHJpbWFy
eTogQWZ0ZXIKdGhlIGZpcnN0IHByaW1hcnkgaW5jbHVkZSwgY2xhc3NpZnkgYWxsIG90aGVyIG9u
ZXMgYXMKIm90aGVyIiBpbmNsdWRlcyBldmVuIGlmIHRoZXkgbG9vayBsaWtlIHByaW1hcnkgb25l
cy4KLS0tCiBXZWJLaXRUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTUgKysrKysrKysrKysrCiBXZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3BwbGludC5w
eSAgICAgICAgICB8ICAgMjQgKysrKysrKysrKysrKysrLS0tLQogV2ViS2l0VG9vbHMvU2NyaXB0
cy9tb2R1bGVzL2NwcGxpbnRfdW5pdHRlc3QucHkgfCAgIDI4ICsrKysrKysrKysrKysrKysrKy0t
LS0tCiAzIGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBkZjhjMjlhLi44OGQzOGU5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDct
MjIgIEpha29iIFBldHNvdml0cyAgPGpha29iLnBldHNvdml0c0B0b3JjaG1vYmlsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgY3BwbGludCBn
ZW5lcmF0ZXMgZmFsc2UgcG9zaXRpdmVzIGZvciBwcmltYXJ5IGluY2x1ZGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzU0NAorCisgICAgICAgIEZp
eCBmYWxzZSBwb3NpdGl2ZXMgZm9yIGluc3RhbmNlcyB3aGVuIGNwcGxpbnQgd291bGQKKyAgICAg
ICAgbm9ybWFsbHkgY2xhc3NpZnkgbXVsdGlwbGUgaW5jbHVkZXMgYXMgcHJpbWFyeTogQWZ0ZXIK
KyAgICAgICAgdGhlIGZpcnN0IHByaW1hcnkgaW5jbHVkZSwgY2xhc3NpZnkgYWxsIG90aGVyIG9u
ZXMgYXMKKyAgICAgICAgIm90aGVyIiBpbmNsdWRlcyBldmVuIGlmIHRoZXkgbG9vayBsaWtlIHBy
aW1hcnkgb25lcy4KKworICAgICAgICAqIFNjcmlwdHMvbW9kdWxlcy9jcHBsaW50LnB5OgorICAg
ICAgICAqIFNjcmlwdHMvbW9kdWxlcy9jcHBsaW50X3VuaXR0ZXN0LnB5OgorCiAyMDA5LTA3LTIx
ICBKYWtvYiBQZXRzb3ZpdHMgIDxqYWtvYi5wZXRzb3ZpdHNAdG9yY2htb2JpbGUuY29tPgogCiAg
ICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFRyZWF0LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy9tb2R1bGVzL2NwcGxpbnQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMv
Y3BwbGludC5weQppbmRleCBjNmY5M2I3Li4xNDBiOTk0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL21vZHVsZXMvY3BwbGludC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL21v
ZHVsZXMvY3BwbGludC5weQpAQCAtMjkxLDYgKzI5MSwxMSBAQCBjbGFzcyBfSW5jbHVkZVN0YXRl
KGRpY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgZGljdC5fX2luaXRfXyhz
ZWxmKQogICAgICAgICBzZWxmLl9zZWN0aW9uID0gc2VsZi5fSU5JVElBTF9TRUNUSU9OCisgICAg
ICAgIHNlbGYuX3Zpc2l0ZWRfcHJpbWFyeV9zZWN0aW9uID0gRmFsc2UKKyAgICAgICAgc2VsZi5o
ZWFkZXJfdHlwZXMgPSBkaWN0KCk7CisKKyAgICBkZWYgdmlzaXRlZF9wcmltYXJ5X3NlY3Rpb24o
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl92aXNpdGVkX3ByaW1hcnlfc2VjdGlvbgogCiAg
ICAgZGVmIGNoZWNrX25leHRfaW5jbHVkZV9vcmRlcihzZWxmLCBoZWFkZXJfdHlwZSwgZmlsZV9p
c19oZWFkZXIpOgogICAgICAgICAiIiJSZXR1cm5zIGEgbm9uLWVtcHR5IGVycm9yIG1lc3NhZ2Ug
aWYgdGhlIG5leHQgaGVhZGVyIGlzIG91dCBvZiBvcmRlci4KQEAgLTMzMSw2ICszMzYsNyBAQCBj
bGFzcyBfSW5jbHVkZVN0YXRlKGRpY3QpOgogICAgICAgICAgICAgZWxpZiBzZWxmLl9zZWN0aW9u
IDwgc2VsZi5fQ09ORklHX1NFQ1RJT046CiAgICAgICAgICAgICAgICAgZXJyb3JfbWVzc2FnZSA9
IGJlZm9yZV9lcnJvcl9tZXNzYWdlCiAgICAgICAgICAgICBzZWxmLl9zZWN0aW9uID0gc2VsZi5f
UFJJTUFSWV9TRUNUSU9OCisgICAgICAgICAgICBzZWxmLl92aXNpdGVkX3ByaW1hcnlfc2VjdGlv
biA9IFRydWUKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGFzc2VydCBoZWFkZXJfdHlwZSA9
PSBfT1RIRVJfSEVBREVSCiAgICAgICAgICAgICBpZiBub3QgZmlsZV9pc19oZWFkZXIgYW5kIHNl
bGYuX3NlY3Rpb24gPCBzZWxmLl9QUklNQVJZX1NFQ1RJT046CkBAIC0yMTA0LDEzICsyMTEwLDE0
IEBAIGRlZiBfaXNfdGVzdF9maWxlbmFtZShmaWxlbmFtZSk6CiAgICAgcmV0dXJuIEZhbHNlCiAK
IAotZGVmIF9jbGFzc2lmeV9pbmNsdWRlKGZpbGVuYW1lLCBpbmNsdWRlLCBpc19zeXN0ZW0pOgor
ZGVmIF9jbGFzc2lmeV9pbmNsdWRlKGZpbGVuYW1lLCBpbmNsdWRlLCBpc19zeXN0ZW0sIGluY2x1
ZGVfc3RhdGUpOgogICAgICIiIkZpZ3VyZXMgb3V0IHdoYXQga2luZCBvZiBoZWFkZXIgJ2luY2x1
ZGUnIGlzLgogCiAgICAgQXJnczoKICAgICAgIGZpbGVuYW1lOiBUaGUgY3VycmVudCBmaWxlIGNw
cGxpbnQgaXMgcnVubmluZyBvdmVyLgogICAgICAgaW5jbHVkZTogVGhlIHBhdGggdG8gYSAjaW5j
bHVkZWQgZmlsZS4KICAgICAgIGlzX3N5c3RlbTogVHJ1ZSBpZiB0aGUgI2luY2x1ZGUgdXNlZCA8
PiByYXRoZXIgdGhhbiAiIi4KKyAgICAgIGluY2x1ZGVfc3RhdGU6IEFuIF9JbmNsdWRlU3RhdGUg
aW5zdGFuY2UgaW4gd2hpY2ggdGhlIGhlYWRlcnMgYXJlIGluc2VydGVkLgogCiAgICAgUmV0dXJu
czoKICAgICAgIE9uZSBvZiB0aGUgX1hYWF9IRUFERVIgY29uc3RhbnRzLgpAQCAtMjEzNyw3ICsy
MTQ0LDE0IEBAIGRlZiBfY2xhc3NpZnlfaW5jbHVkZShmaWxlbmFtZSwgaW5jbHVkZSwgaXNfc3lz
dGVtKToKICAgICB0YXJnZXRfYmFzZSA9IEZpbGVJbmZvKGZpbGVuYW1lKS5iYXNlX25hbWUoKQog
ICAgIGluY2x1ZGVfYmFzZSA9IEZpbGVJbmZvKGluY2x1ZGUpLmJhc2VfbmFtZSgpCiAKLSAgICBp
ZiB0YXJnZXRfYmFzZS5zdGFydHN3aXRoKGluY2x1ZGVfYmFzZSk6CisgICAgIyBJZiB3ZSBhbHJl
YWR5IGhhZCBhIHByaW1hcnkgaGVhZGVyIGJlZm9yZSwgY2hhbmNlcyBhcmUgdGhhdCB0aGlzIG9u
ZSBpcyBhCisgICAgIyBmYWxzZSBwb3NpdGl2ZSAoZS5nLiAiU2Nyb2xsYmFyVGhlbWVXaW5jZS5o
IiBhbmQgIlNjcm9sbGJhci5oIiBtaWdodCBib3RoCisgICAgIyBiZSBjbGFzc2lmaWVkIGFzIHBy
aW1hcnkgaGVhZGVyLCBidXQgb25seSB0aGUgZmlyc3Qgb25lIGlzIGFjdHVhbGx5IGl0KS4KKyAg
ICBpZiBub3QgaW5jbHVkZV9zdGF0ZS52aXNpdGVkX3ByaW1hcnlfc2VjdGlvbigpIGFuZCB0YXJn
ZXRfYmFzZS5zdGFydHN3aXRoKGluY2x1ZGVfYmFzZSk6CisgICAgICAgIHJldHVybiBfUFJJTUFS
WV9IRUFERVIKKyAgICAjIElmIHRoZXJlJ3MgYW4gZXhhY3QgZmlsZW5hbWUgbWF0Y2gsIHdlIHBy
b2JhYmx5IGdvdCB0aGUgZmlyc3Qgb25lIHdyb25nLAorICAgICMgYW5kIHRoaXMgaXMgb3VyIGFj
dHVhbCBwcmltYXJ5IGhlYWRlci4KKyAgICBlbGlmIGluY2x1ZGVfc3RhdGUudmlzaXRlZF9wcmlt
YXJ5X3NlY3Rpb24oKSBhbmQgdGFyZ2V0X2Jhc2UgPT0gaW5jbHVkZV9iYXNlOgogICAgICAgICBy
ZXR1cm4gX1BSSU1BUllfSEVBREVSCiAKICAgICByZXR1cm4gX09USEVSX0hFQURFUgpAQCAtMjE4
Myw4ICsyMTk3LDkgQEAgZGVmIGNoZWNrX2luY2x1ZGVfbGluZShmaWxlbmFtZSwgY2xlYW5fbGlu
ZXMsIGxpbmVfbnVtYmVyLCBpbmNsdWRlX3N0YXRlLCBlcnJvcikKICAgICAgICAgICAgICMgdXNp
bmcgYSBudW1iZXIgb2YgdGVjaG5pcXVlcy4gVGhlIGluY2x1ZGVfc3RhdGUgb2JqZWN0IGtlZXBz
CiAgICAgICAgICAgICAjIHRyYWNrIG9mIHRoZSBoaWdoZXN0IHR5cGUgc2VlbiwgYW5kIGNvbXBs
YWlucyBpZiB3ZSBzZWUgYQogICAgICAgICAgICAgIyBsb3dlciB0eXBlIGFmdGVyIHRoYXQuCi0g
ICAgICAgICAgICBoZWFkZXJfdHlwZSA9IF9jbGFzc2lmeV9pbmNsdWRlKGZpbGVuYW1lLCBpbmNs
dWRlLCBpc19zeXN0ZW0pCisgICAgICAgICAgICBoZWFkZXJfdHlwZSA9IF9jbGFzc2lmeV9pbmNs
dWRlKGZpbGVuYW1lLCBpbmNsdWRlLCBpc19zeXN0ZW0sIGluY2x1ZGVfc3RhdGUpCiAgICAgICAg
ICAgICBlcnJvcl9tZXNzYWdlID0gaW5jbHVkZV9zdGF0ZS5jaGVja19uZXh0X2luY2x1ZGVfb3Jk
ZXIoaGVhZGVyX3R5cGUsIGZpbGVuYW1lLmVuZHN3aXRoKCcuaCcpKQorICAgICAgICAgICAgaW5j
bHVkZV9zdGF0ZS5oZWFkZXJfdHlwZXNbbGluZV9udW1iZXJdID0gaGVhZGVyX3R5cGUKIAogICAg
ICAgICAgICAgIyBDaGVjayB0byBtYWtlIHN1cmUgd2UgaGF2ZSBhIGJsYW5rIGxpbmUgYWZ0ZXIg
cHJpbWFyeSBoZWFkZXIuCiAgICAgICAgICAgICBpZiBub3QgZXJyb3JfbWVzc2FnZSBhbmQgaGVh
ZGVyX3R5cGUgPT0gX1BSSU1BUllfSEVBREVSOgpAQCAtMjIwNSw4ICsyMjIwLDcgQEAgZGVmIGNo
ZWNrX2luY2x1ZGVfbGluZShmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBpbmNs
dWRlX3N0YXRlLCBlcnJvcikKICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNfbGluZSA9IGNs
ZWFuX2xpbmVzLmxpbmVzW3ByZXZpb3VzX2xpbmVfbnVtYmVyXQogICAgICAgICAgICAgICAgICAg
ICBwcmV2aW91c19tYXRjaCA9IF9SRV9QQVRURVJOX0lOQ0xVREUuc2VhcmNoKHByZXZpb3VzX2xp
bmUpCiAgICAgICAgICAgICAgICAgIGlmIHByZXZpb3VzX21hdGNoOgotICAgICAgICAgICAgICAg
ICAgICBwcmV2aW91c19pbmNsdWRlID0gcHJldmlvdXNfbWF0Y2guZ3JvdXAoMikKLSAgICAgICAg
ICAgICAgICAgICAgcHJldmlvdXNfaGVhZGVyX3R5cGUgPSBfY2xhc3NpZnlfaW5jbHVkZShmaWxl
bmFtZSwgcHJldmlvdXNfaW5jbHVkZSwgKHByZXZpb3VzX21hdGNoLmdyb3VwKDEpID09ICc8Jykp
CisgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzX2hlYWRlcl90eXBlID0gaW5jbHVkZV9zdGF0
ZS5oZWFkZXJfdHlwZXNbcHJldmlvdXNfbGluZV9udW1iZXJdCiAgICAgICAgICAgICAgICAgICAg
IGlmIHByZXZpb3VzX2hlYWRlcl90eXBlID09IF9PVEhFUl9IRUFERVIgYW5kIHByZXZpb3VzX2xp
bmUuc3RyaXAoKSA+IGxpbmUuc3RyaXAoKToKICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9y
KGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ2J1aWxkL2luY2x1ZGVfb3JkZXInLCA0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ0FscGhhYmV0aWNhbCBzb3J0aW5nIHByb2JsZW0uJykK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBsaW50X3VuaXR0ZXN0
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnRfdW5pdHRlc3QucHkKaW5k
ZXggMThlYzAwYS4uYzk0ZDdhMSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1
bGVzL2NwcGxpbnRfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVz
L2NwcGxpbnRfdW5pdHRlc3QucHkKQEAgLTIxNzQsMzAgKzIxNzQsNDYgQEAgY2xhc3MgT3JkZXJP
ZkluY2x1ZGVzVGVzdChDcHBsaW50VGVzdEJhc2UpOgogCiAgICAgZGVmIHRlc3RfY2xhc3NpZnlf
aW5jbHVkZShzZWxmKToKICAgICAgICAgY2xhc3NpZnlfaW5jbHVkZSA9IGNwcGxpbnQuX2NsYXNz
aWZ5X2luY2x1ZGUKKyAgICAgICAgaW5jbHVkZV9zdGF0ZSA9IGNwcGxpbnQuX0luY2x1ZGVTdGF0
ZSgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3BwbGludC5fQ09ORklHX0hFQURFUiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2lmeV9pbmNsdWRlKCdmb28vZm9vLmNwcCcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uZmlnLmgnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UsIGluY2x1ZGVfc3RhdGUpKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNwcGxpbnQuX1BSSU1BUllfSEVBREVSLAogICAgICAg
ICAgICAgICAgICAgICAgICAgIGNsYXNzaWZ5X2luY2x1ZGUoJ2Zvby9pbnRlcm5hbC9mb28uY3Bw
JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb28vcHVibGlj
L2Zvby5oJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNl
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlLCBpbmNs
dWRlX3N0YXRlKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcHBsaW50Ll9QUklNQVJZX0hF
QURFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2lmeV9pbmNsdWRlKCdmb28vaW50
ZXJuYWwvZm9vLmNwcCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnZm9vL290aGVyL3B1YmxpYy9mb28uaCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBGYWxzZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBGYWxzZSwgaW5jbHVkZV9zdGF0ZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y3BwbGludC5fT1RIRVJfSEVBREVSLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzaWZ5
X2luY2x1ZGUoJ2Zvby9pbnRlcm5hbC9mb28uY3BwJywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdmb28vb3RoZXIvcHVibGljL2Zvb3AuaCcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSwgaW5jbHVkZV9zdGF0ZSkpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY3BwbGludC5fT1RIRVJfSEVBREVSLAogICAgICAgICAgICAgICAg
ICAgICAgICAgIGNsYXNzaWZ5X2luY2x1ZGUoJ2Zvby9mb28uY3BwJywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdHJpbmcnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUcnVlLCBpbmNsdWRlX3N0YXRlKSkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjcHBsaW50Ll9QUklNQVJZX0hFQURFUiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICBjbGFzc2lmeV9pbmNsdWRlKCdmb29DdXN0b20uY3BwJywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdmb28uaCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGYWxzZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGYWxzZSwgaW5jbHVkZV9zdGF0ZSkpCisgICAgICAgICMgVHJpY2t5IGV4YW1w
bGUgd2hlcmUgYm90aCBpbmNsdWRlcyBtaWdodCBiZSBjbGFzc2lmaWVkIGFzIHByaW1hcnkuCisg
ICAgICAgIHNlbGYuYXNzZXJ0X2xhbmd1YWdlX3J1bGVzX2NoZWNrKCdTY3JvbGxiYXJUaGVtZVdp
bmNlLmNwcCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjaW5j
bHVkZSAiY29uZmlnLmgiXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICcjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVXaW5jZS5oIlxuJworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICcjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiXG4nLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGFu
Z3VhZ2VfcnVsZXNfY2hlY2soJ1Njcm9sbGJhclRoZW1lV2luY2UuY3BwJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNpbmNsdWRlICJjb25maWcuaCJcbicKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNpbmNsdWRlICJTY3JvbGxi
YXIuaCJcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2luY2x1ZGUgIlNjcm9s
bGJhclRoZW1lV2luY2UuaCJcbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdGb3VuZCBoZWFkZXIgdGhpcyBmaWxlIGltcGxlbWVudHMgYWZ0ZXIgYSBoZWFkZXIg
dGhpcyBmaWxlIGltcGxlbWVudHMuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnIFNob3VsZCBiZTogY29uZmlnLmgsIHByaW1hcnkgaGVhZGVyLCBibGFuayBsaW5l
LCBhbmQgdGhlbiBhbHBoYWJldGljYWxseSBzb3J0ZWQuJworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnICBbYnVpbGQvaW5jbHVkZV9vcmRlcl0gWzRdJykKIAogICAg
IGRlZiB0ZXN0X3RyeV9kcm9wX2NvbW1vbl9zdWZmaXhlcyhzZWxmKToKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnZm9vL2ZvbycsIGNwcGxpbnQuX2Ryb3BfY29tbW9uX3N1ZmZpeGVzKCdmb28v
Zm9vLWlubC5oJykpCi0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33280</attachid>
            <date>2009-07-22 12:10:59 -0700</date>
            <delta_ts>2009-07-22 12:14:33 -0700</delta_ts>
            <desc>Fix cpplint generating false positives for primary includes (try 4)</desc>
            <filename>0001-Fix-cpplint-generating-false-positives-for-primary-i.patch</filename>
            <type>text/plain</type>
            <size>9057</size>
            <attacher name="Jakob Petsovits">jpetsovits</attacher>
            
              <data encoding="base64">RnJvbSA3MjhiNDNiNDE4YmQ1YjRmNDgwMWIzZmM3ZjAzYTk1N2ZkOGFkMWUwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtvYiBQZXRzb3ZpdHMgPGpha29iLnBldHNvdml0c0B0b3Jj
aG1vYmlsZS5jb20+CkRhdGU6IFdlZCwgMjIgSnVsIDIwMDkgMTU6MDk6MTAgLTA0MDAKU3ViamVj
dDogW1BBVENIXSBGaXggY3BwbGludCBnZW5lcmF0aW5nIGZhbHNlIHBvc2l0aXZlcyBmb3IgcHJp
bWFyeSBpbmNsdWRlcy4KCkZpeCBmYWxzZSBwb3NpdGl2ZXMgZm9yIGluc3RhbmNlcyB3aGVuIGNw
cGxpbnQgd291bGQKbm9ybWFsbHkgY2xhc3NpZnkgbXVsdGlwbGUgaW5jbHVkZXMgYXMgcHJpbWFy
eTogQWZ0ZXIKdGhlIGZpcnN0IHByaW1hcnkgaW5jbHVkZSwgY2xhc3NpZnkgc3Vic2VxdWVudCBv
bmVzIGFzCiJvdGhlciIgaW5jbHVkZXMgZXZlbiBpZiB0aGV5IGxvb2sgbGlrZSBwcmltYXJ5IG9u
ZXMuCi0tLQogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDE1ICsrKysrKysrKysrKwogV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnQu
cHkgICAgICAgICAgfCAgIDIzICsrKysrKysrKysrKysrLS0tLQogV2ViS2l0VG9vbHMvU2NyaXB0
cy9tb2R1bGVzL2NwcGxpbnRfdW5pdHRlc3QucHkgfCAgIDI4ICsrKysrKysrKysrKysrKysrKy0t
LS0tCiAzIGZpbGVzIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBkZjhjMjlhLi5jYTBmZmRhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDct
MjIgIEpha29iIFBldHNvdml0cyAgPGpha29iLnBldHNvdml0c0B0b3JjaG1vYmlsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgY3BwbGludCBn
ZW5lcmF0ZXMgZmFsc2UgcG9zaXRpdmVzIGZvciBwcmltYXJ5IGluY2x1ZGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzU0NAorCisgICAgICAgIEZp
eCBmYWxzZSBwb3NpdGl2ZXMgZm9yIGluc3RhbmNlcyB3aGVuIGNwcGxpbnQgd291bGQKKyAgICAg
ICAgbm9ybWFsbHkgY2xhc3NpZnkgbXVsdGlwbGUgaW5jbHVkZXMgYXMgcHJpbWFyeTogQWZ0ZXIK
KyAgICAgICAgdGhlIGZpcnN0IHByaW1hcnkgaW5jbHVkZSwgY2xhc3NpZnkgc3Vic2VxdWVudCBv
bmVzIGFzCisgICAgICAgICJvdGhlciIgaW5jbHVkZXMgZXZlbiBpZiB0aGV5IGxvb2sgbGlrZSBw
cmltYXJ5IG9uZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvY3BwbGludC5weToKKyAg
ICAgICAgKiBTY3JpcHRzL21vZHVsZXMvY3BwbGludF91bml0dGVzdC5weToKKwogMjAwOS0wNy0y
MSAgSmFrb2IgUGV0c292aXRzICA8amFrb2IucGV0c292aXRzQHRvcmNobW9iaWxlLmNvbT4KIAog
ICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBUcmVhdC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvbW9kdWxlcy9jcHBsaW50LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVz
L2NwcGxpbnQucHkKaW5kZXggYzZmOTNiNy4uNjA0ZTEyOCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy9tb2R1bGVzL2NwcGxpbnQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9t
b2R1bGVzL2NwcGxpbnQucHkKQEAgLTI5MSw2ICsyOTEsMTEgQEAgY2xhc3MgX0luY2x1ZGVTdGF0
ZShkaWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIGRpY3QuX19pbml0X18o
c2VsZikKICAgICAgICAgc2VsZi5fc2VjdGlvbiA9IHNlbGYuX0lOSVRJQUxfU0VDVElPTgorICAg
ICAgICBzZWxmLl92aXNpdGVkX3ByaW1hcnlfc2VjdGlvbiA9IEZhbHNlCisgICAgICAgIHNlbGYu
aGVhZGVyX3R5cGVzID0gZGljdCgpOworCisgICAgZGVmIHZpc2l0ZWRfcHJpbWFyeV9zZWN0aW9u
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdmlzaXRlZF9wcmltYXJ5X3NlY3Rpb24KIAog
ICAgIGRlZiBjaGVja19uZXh0X2luY2x1ZGVfb3JkZXIoc2VsZiwgaGVhZGVyX3R5cGUsIGZpbGVf
aXNfaGVhZGVyKToKICAgICAgICAgIiIiUmV0dXJucyBhIG5vbi1lbXB0eSBlcnJvciBtZXNzYWdl
IGlmIHRoZSBuZXh0IGhlYWRlciBpcyBvdXQgb2Ygb3JkZXIuCkBAIC0zMzEsNiArMzM2LDcgQEAg
Y2xhc3MgX0luY2x1ZGVTdGF0ZShkaWN0KToKICAgICAgICAgICAgIGVsaWYgc2VsZi5fc2VjdGlv
biA8IHNlbGYuX0NPTkZJR19TRUNUSU9OOgogICAgICAgICAgICAgICAgIGVycm9yX21lc3NhZ2Ug
PSBiZWZvcmVfZXJyb3JfbWVzc2FnZQogICAgICAgICAgICAgc2VsZi5fc2VjdGlvbiA9IHNlbGYu
X1BSSU1BUllfU0VDVElPTgorICAgICAgICAgICAgc2VsZi5fdmlzaXRlZF9wcmltYXJ5X3NlY3Rp
b24gPSBUcnVlCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBhc3NlcnQgaGVhZGVyX3R5cGUg
PT0gX09USEVSX0hFQURFUgogICAgICAgICAgICAgaWYgbm90IGZpbGVfaXNfaGVhZGVyIGFuZCBz
ZWxmLl9zZWN0aW9uIDwgc2VsZi5fUFJJTUFSWV9TRUNUSU9OOgpAQCAtMjEwNCwxMyArMjExMCwx
NCBAQCBkZWYgX2lzX3Rlc3RfZmlsZW5hbWUoZmlsZW5hbWUpOgogICAgIHJldHVybiBGYWxzZQog
CiAKLWRlZiBfY2xhc3NpZnlfaW5jbHVkZShmaWxlbmFtZSwgaW5jbHVkZSwgaXNfc3lzdGVtKToK
K2RlZiBfY2xhc3NpZnlfaW5jbHVkZShmaWxlbmFtZSwgaW5jbHVkZSwgaXNfc3lzdGVtLCBpbmNs
dWRlX3N0YXRlKToKICAgICAiIiJGaWd1cmVzIG91dCB3aGF0IGtpbmQgb2YgaGVhZGVyICdpbmNs
dWRlJyBpcy4KIAogICAgIEFyZ3M6CiAgICAgICBmaWxlbmFtZTogVGhlIGN1cnJlbnQgZmlsZSBj
cHBsaW50IGlzIHJ1bm5pbmcgb3Zlci4KICAgICAgIGluY2x1ZGU6IFRoZSBwYXRoIHRvIGEgI2lu
Y2x1ZGVkIGZpbGUuCiAgICAgICBpc19zeXN0ZW06IFRydWUgaWYgdGhlICNpbmNsdWRlIHVzZWQg
PD4gcmF0aGVyIHRoYW4gIiIuCisgICAgICBpbmNsdWRlX3N0YXRlOiBBbiBfSW5jbHVkZVN0YXRl
IGluc3RhbmNlIGluIHdoaWNoIHRoZSBoZWFkZXJzIGFyZSBpbnNlcnRlZC4KIAogICAgIFJldHVy
bnM6CiAgICAgICBPbmUgb2YgdGhlIF9YWFhfSEVBREVSIGNvbnN0YW50cy4KQEAgLTIxMzcsNyAr
MjE0NCwxMyBAQCBkZWYgX2NsYXNzaWZ5X2luY2x1ZGUoZmlsZW5hbWUsIGluY2x1ZGUsIGlzX3N5
c3RlbSk6CiAgICAgdGFyZ2V0X2Jhc2UgPSBGaWxlSW5mbyhmaWxlbmFtZSkuYmFzZV9uYW1lKCkK
ICAgICBpbmNsdWRlX2Jhc2UgPSBGaWxlSW5mbyhpbmNsdWRlKS5iYXNlX25hbWUoKQogCi0gICAg
aWYgdGFyZ2V0X2Jhc2Uuc3RhcnRzd2l0aChpbmNsdWRlX2Jhc2UpOgorICAgICMgSWYgd2UgaGF2
ZW4ndCBlbmNvdW50ZXJlZCBhIHByaW1hcnkgaGVhZGVyLCB0aGVuIGJlIGxlbmllbnQgaW4gY2hl
Y2tpbmcuCisgICAgaWYgbm90IGluY2x1ZGVfc3RhdGUudmlzaXRlZF9wcmltYXJ5X3NlY3Rpb24o
KSBhbmQgdGFyZ2V0X2Jhc2Uuc3RhcnRzd2l0aChpbmNsdWRlX2Jhc2UpOgorICAgICAgICByZXR1
cm4gX1BSSU1BUllfSEVBREVSCisgICAgIyBJZiB3ZSBhbHJlYWR5IGVuY291bnRlcmVkIGEgcHJp
bWFyeSBoZWFkZXIsIHBlcmZvcm0gYSBzdHJpY3QgY29tcGFyaXNvbi4KKyAgICAjIEluIGNhc2Ug
dGhlIHR3byBmaWxlbmFtZSBiYXNlcyBhcmUgdGhlIHNhbWUgdGhlbiB0aGUgYWJvdmUgbGVuaWVu
dCBjaGVjaworICAgICMgcHJvYmFibHkgd2FzIGEgZmFsc2UgcG9zaXRpdmUuCisgICAgZWxpZiBp
bmNsdWRlX3N0YXRlLnZpc2l0ZWRfcHJpbWFyeV9zZWN0aW9uKCkgYW5kIHRhcmdldF9iYXNlID09
IGluY2x1ZGVfYmFzZToKICAgICAgICAgcmV0dXJuIF9QUklNQVJZX0hFQURFUgogCiAgICAgcmV0
dXJuIF9PVEhFUl9IRUFERVIKQEAgLTIxODMsOCArMjE5Niw5IEBAIGRlZiBjaGVja19pbmNsdWRl
X2xpbmUoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgaW5jbHVkZV9zdGF0ZSwg
ZXJyb3IpCiAgICAgICAgICAgICAjIHVzaW5nIGEgbnVtYmVyIG9mIHRlY2huaXF1ZXMuIFRoZSBp
bmNsdWRlX3N0YXRlIG9iamVjdCBrZWVwcwogICAgICAgICAgICAgIyB0cmFjayBvZiB0aGUgaGln
aGVzdCB0eXBlIHNlZW4sIGFuZCBjb21wbGFpbnMgaWYgd2Ugc2VlIGEKICAgICAgICAgICAgICMg
bG93ZXIgdHlwZSBhZnRlciB0aGF0LgotICAgICAgICAgICAgaGVhZGVyX3R5cGUgPSBfY2xhc3Np
ZnlfaW5jbHVkZShmaWxlbmFtZSwgaW5jbHVkZSwgaXNfc3lzdGVtKQorICAgICAgICAgICAgaGVh
ZGVyX3R5cGUgPSBfY2xhc3NpZnlfaW5jbHVkZShmaWxlbmFtZSwgaW5jbHVkZSwgaXNfc3lzdGVt
LCBpbmNsdWRlX3N0YXRlKQogICAgICAgICAgICAgZXJyb3JfbWVzc2FnZSA9IGluY2x1ZGVfc3Rh
dGUuY2hlY2tfbmV4dF9pbmNsdWRlX29yZGVyKGhlYWRlcl90eXBlLCBmaWxlbmFtZS5lbmRzd2l0
aCgnLmgnKSkKKyAgICAgICAgICAgIGluY2x1ZGVfc3RhdGUuaGVhZGVyX3R5cGVzW2xpbmVfbnVt
YmVyXSA9IGhlYWRlcl90eXBlCiAKICAgICAgICAgICAgICMgQ2hlY2sgdG8gbWFrZSBzdXJlIHdl
IGhhdmUgYSBibGFuayBsaW5lIGFmdGVyIHByaW1hcnkgaGVhZGVyLgogICAgICAgICAgICAgaWYg
bm90IGVycm9yX21lc3NhZ2UgYW5kIGhlYWRlcl90eXBlID09IF9QUklNQVJZX0hFQURFUjoKQEAg
LTIyMDUsOCArMjIxOSw3IEBAIGRlZiBjaGVja19pbmNsdWRlX2xpbmUoZmlsZW5hbWUsIGNsZWFu
X2xpbmVzLCBsaW5lX251bWJlciwgaW5jbHVkZV9zdGF0ZSwgZXJyb3IpCiAgICAgICAgICAgICAg
ICAgICAgIHByZXZpb3VzX2xpbmUgPSBjbGVhbl9saW5lcy5saW5lc1twcmV2aW91c19saW5lX251
bWJlcl0KICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNfbWF0Y2ggPSBfUkVfUEFUVEVSTl9J
TkNMVURFLnNlYXJjaChwcmV2aW91c19saW5lKQogICAgICAgICAgICAgICAgICBpZiBwcmV2aW91
c19tYXRjaDoKLSAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNfaW5jbHVkZSA9IHByZXZpb3Vz
X21hdGNoLmdyb3VwKDIpCi0gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzX2hlYWRlcl90eXBl
ID0gX2NsYXNzaWZ5X2luY2x1ZGUoZmlsZW5hbWUsIHByZXZpb3VzX2luY2x1ZGUsIChwcmV2aW91
c19tYXRjaC5ncm91cCgxKSA9PSAnPCcpKQorICAgICAgICAgICAgICAgICAgICBwcmV2aW91c19o
ZWFkZXJfdHlwZSA9IGluY2x1ZGVfc3RhdGUuaGVhZGVyX3R5cGVzW3ByZXZpb3VzX2xpbmVfbnVt
YmVyXQogICAgICAgICAgICAgICAgICAgICBpZiBwcmV2aW91c19oZWFkZXJfdHlwZSA9PSBfT1RI
RVJfSEVBREVSIGFuZCBwcmV2aW91c19saW5lLnN0cmlwKCkgPiBsaW5lLnN0cmlwKCk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIsICdidWlsZC9p
bmNsdWRlX29yZGVyJywgNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBbHBoYWJl
dGljYWwgc29ydGluZyBwcm9ibGVtLicpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L21vZHVsZXMvY3BwbGludF91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxl
cy9jcHBsaW50X3VuaXR0ZXN0LnB5CmluZGV4IDE4ZWMwMGEuLmM5NGQ3YTEgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBsaW50X3VuaXR0ZXN0LnB5CisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBsaW50X3VuaXR0ZXN0LnB5CkBAIC0yMTc0LDMw
ICsyMTc0LDQ2IEBAIGNsYXNzIE9yZGVyT2ZJbmNsdWRlc1Rlc3QoQ3BwbGludFRlc3RCYXNlKToK
IAogICAgIGRlZiB0ZXN0X2NsYXNzaWZ5X2luY2x1ZGUoc2VsZik6CiAgICAgICAgIGNsYXNzaWZ5
X2luY2x1ZGUgPSBjcHBsaW50Ll9jbGFzc2lmeV9pbmNsdWRlCisgICAgICAgIGluY2x1ZGVfc3Rh
dGUgPSBjcHBsaW50Ll9JbmNsdWRlU3RhdGUoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNw
cGxpbnQuX0NPTkZJR19IRUFERVIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NpZnlf
aW5jbHVkZSgnZm9vL2Zvby5jcHAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2NvbmZpZy5oJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEZhbHNlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEZhbHNlLCBpbmNsdWRlX3N0YXRlKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcHBsaW50
Ll9QUklNQVJZX0hFQURFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2lmeV9pbmNs
dWRlKCdmb28vaW50ZXJuYWwvZm9vLmNwcCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnZm9vL3B1YmxpYy9mb28uaCcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBGYWxzZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBGYWxzZSwgaW5jbHVkZV9zdGF0ZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY3BwbGludC5fUFJJTUFSWV9IRUFERVIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xhc3NpZnlfaW5jbHVkZSgnZm9vL2ludGVybmFsL2Zvby5jcHAnLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvby9vdGhlci9wdWJsaWMvZm9vLmgnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UsIGluY2x1ZGVfc3RhdGUpKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNwcGxpbnQuX09USEVSX0hFQURFUiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICBjbGFzc2lmeV9pbmNsdWRlKCdmb28vaW50ZXJuYWwvZm9vLmNwcCcs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9vL290aGVyL3B1
YmxpYy9mb29wLmgnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RmFsc2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2Us
IGluY2x1ZGVfc3RhdGUpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNwcGxpbnQuX09USEVS
X0hFQURFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2lmeV9pbmNsdWRlKCdmb28v
Zm9vLmNwcCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3Ry
aW5nJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRydWUpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZSwgaW5jbHVkZV9z
dGF0ZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3BwbGludC5fUFJJTUFSWV9IRUFERVIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NpZnlfaW5jbHVkZSgnZm9vQ3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9vLmgnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UsIGluY2x1ZGVfc3RhdGUp
KQorICAgICAgICAjIFRyaWNreSBleGFtcGxlIHdoZXJlIGJvdGggaW5jbHVkZXMgbWlnaHQgYmUg
Y2xhc3NpZmllZCBhcyBwcmltYXJ5LgorICAgICAgICBzZWxmLmFzc2VydF9sYW5ndWFnZV9ydWxl
c19jaGVjaygnU2Nyb2xsYmFyVGhlbWVXaW5jZS5jcHAnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnI2luY2x1ZGUgImNvbmZpZy5oIlxuJworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lV2lu
Y2UuaCJcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2luY2x1ZGUgIlNjcm9s
bGJhci5oIlxuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycp
CisgICAgICAgIHNlbGYuYXNzZXJ0X2xhbmd1YWdlX3J1bGVzX2NoZWNrKCdTY3JvbGxiYXJUaGVt
ZVdpbmNlLmNwcCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcj
aW5jbHVkZSAiY29uZmlnLmgiXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICcjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiXG4nCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdcbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJyNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZVdpbmNlLmgiXG4nLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRm91bmQgaGVhZGVyIHRoaXMgZmlsZSBp
bXBsZW1lbnRzIGFmdGVyIGEgaGVhZGVyIHRoaXMgZmlsZSBpbXBsZW1lbnRzLicKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBTaG91bGQgYmU6IGNvbmZpZy5oLCBw
cmltYXJ5IGhlYWRlciwgYmxhbmsgbGluZSwgYW5kIHRoZW4gYWxwaGFiZXRpY2FsbHkgc29ydGVk
LicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgW2J1aWxkL2lu
Y2x1ZGVfb3JkZXJdIFs0XScpCiAKICAgICBkZWYgdGVzdF90cnlfZHJvcF9jb21tb25fc3VmZml4
ZXMoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2Zvby9mb28nLCBjcHBsaW50Ll9k
cm9wX2NvbW1vbl9zdWZmaXhlcygnZm9vL2Zvby1pbmwuaCcpKQotLSAKMS42LjMuMwoK
</data>
<flag name="review"
          id="17585"
          type_id="1"
          status="+"
          setter="manyoso"
    />
          </attachment>
      

    </bug>

</bugzilla>