<?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>171510</bug_id>
          
          <creation_ts>2017-05-01 13:17:31 -0700</creation_ts>
          <short_desc>check-webkit-style exits with an error while parsing Source/WebKit2/Scripts/webkit/ directory: KeyError: &apos;st&apos;</short_desc>
          <delta_ts>2017-05-04 05:30:30 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>171627</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>andersca</cc>
    
    <cc>dbates</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>lforschler</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1303356</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-05-01 13:17:31 -0700</bug_when>
    <thetext>When running check-webkit-style on Source/WebKit2, it exits with an error while parsing the Source/WebKit2/Scripts/webkit/ directory:

$ ./Tools/Scripts/check-webkit-style Source/WebKit2/Scripts/webkit
ERROR: Source/WebKit2/Scripts/webkit/LegacyMessageReceiver-expected.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Scripts/webkit/LegacyMessageReceiver-expected.cpp:77:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit2/Scripts/webkit/LegacyMessageReceiver-expected.cpp:96:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit2/Scripts/webkit/LegacyMessages-expected.h:25:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Scripts/webkit/LegacyMessages-expected.h:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/Scripts/webkit/MessageReceiver-expected.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Scripts/webkit/MessageReceiver-expected.cpp:77:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit2/Scripts/webkit/MessageReceiver-expected.cpp:96:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit2/Scripts/webkit/MessageReceiverSuperclass-expected.cpp:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Scripts/webkit/Messages-expected.h:25:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Scripts/webkit/Messages-expected.h:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/Scripts/webkit/MessagesSuperclass-expected.h:25:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Scripts/webkit/MessagesSuperclass-expected.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:160:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:213:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:302:  missing whitespace after &apos;:&apos;  [pep8/E231] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:315:  multiple statements on one line (semicolon)  [pep8/E702] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:318:  missing whitespace after &apos;:&apos;  [pep8/E231] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:346:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:414:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:465:  too many blank lines (2)  [pep8/E303] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:52:  trailing whitespace  [pep8/W291] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:246:  whitespace before &apos;:&apos;  [pep8/E203] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:311:  too many blank lines (3)  [pep8/E303] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:262:  [MessagesTest.setUp] Module &apos;parser&apos; has no &apos;parse&apos; member  [pylint/E1101] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:263:  [MessagesTest.setUp] Module &apos;parser&apos; has no &apos;parse&apos; member  [pylint/E1101] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:264:  [MessagesTest.setUp] Module &apos;parser&apos; has no &apos;parse&apos; member  [pylint/E1101] [5]
ERROR: Source/WebKit2/Scripts/webkit/model.py:41:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Source/WebKit2/Scripts/webkit/parser.py:124:  expected 2 blank lines, found 1  [pep8/E302] [5]
Traceback (most recent call last):
  File &quot;./Tools/Scripts/check-webkit-style&quot;, line 48, in &lt;module&gt;
    sys.exit(CheckWebKitStyle().main())
  File &quot;./Tools/Scripts/webkitpy/style/main.py&quot;, line 149, in main
    file_reader.process_paths(paths)
  File &quot;./Tools/Scripts/webkitpy/style/filereader.py&quot;, line 134, in process_paths
    self._process_directory(directory=path)
  File &quot;./Tools/Scripts/webkitpy/style/filereader.py&quot;, line 129, in _process_directory
    self.process_file(file_path)
  File &quot;./Tools/Scripts/webkitpy/style/filereader.py&quot;, line 124, in process_file
    self._processor.process(lines, file_path, **kwargs)
  File &quot;./Tools/Scripts/webkitpy/style/checker.py&quot;, line 896, in process
    checker.check(lines)
  File &quot;./Tools/Scripts/webkitpy/style/checkers/python.py&quot;, line 43, in check
    self._check_pylint(lines)
  File &quot;./Tools/Scripts/webkitpy/style/checkers/python.py&quot;, line 71, in _check_pylint
    output = pylinter.run([&apos;-E&apos;, self._file_path])
  File &quot;./Tools/Scripts/webkitpy/style/checkers/python.py&quot;, line 106, in run
    lint.Run([&apos;--rcfile&apos;, self._pylintrc] + argv, reporter=ParseableTextReporter(output=output), exit=False)
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py&quot;, line 879, in __init__
    linter.check(args)
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py&quot;, line 502, in check
    self.check_astng_module(astng, walker, rawcheckers)
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py&quot;, line 574, in check_astng_module
    walker.walk(astng)
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/utils.py&quot;, line 528, in walk
    self.walk(child)
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/utils.py&quot;, line 525, in walk
    cb(astng)
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/checkers/base.py&quot;, line 157, in visit_class
    self._check_redefinition(&apos;class&apos;, node)
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/checkers/base.py&quot;, line 221, in _check_redefinition
    defined_self = node.parent.frame()[node.name]
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/logilab/astng/scoped_nodes.py&quot;, line 178, in __getitem__
    return self.locals[item][0]
KeyError: &apos;st&apos;
$</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303359</commentid>
    <comment_count>1</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-05-01 13:22:02 -0700</bug_when>
    <thetext>Deleting parser.py &quot;fixes&quot; the error:

$ rm -f Source/WebKit2/Scripts/webkit/parser.py
$ ./Tools/Scripts/check-webkit-style Source/WebKit2/Scripts/webkit/
ERROR: Source/WebKit2/Scripts/webkit/LegacyMessageReceiver-expected.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Scripts/webkit/LegacyMessageReceiver-expected.cpp:77:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit2/Scripts/webkit/LegacyMessageReceiver-expected.cpp:96:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit2/Scripts/webkit/LegacyMessages-expected.h:25:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Scripts/webkit/LegacyMessages-expected.h:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/Scripts/webkit/MessageReceiver-expected.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Scripts/webkit/MessageReceiver-expected.cpp:77:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit2/Scripts/webkit/MessageReceiver-expected.cpp:96:  _result is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit2/Scripts/webkit/MessageReceiverSuperclass-expected.cpp:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Scripts/webkit/Messages-expected.h:25:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Scripts/webkit/Messages-expected.h:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/Scripts/webkit/MessagesSuperclass-expected.h:25:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Scripts/webkit/MessagesSuperclass-expected.h:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:160:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:213:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:302:  missing whitespace after &apos;:&apos;  [pep8/E231] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:315:  multiple statements on one line (semicolon)  [pep8/E702] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:318:  missing whitespace after &apos;:&apos;  [pep8/E231] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:346:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:414:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages.py:465:  too many blank lines (2)  [pep8/E303] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:52:  trailing whitespace  [pep8/W291] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:246:  whitespace before &apos;:&apos;  [pep8/E203] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:311:  too many blank lines (3)  [pep8/E303] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:262:  [MessagesTest.setUp] Module &apos;parser&apos; has no &apos;parse&apos; member  [pylint/E1101] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:263:  [MessagesTest.setUp] Module &apos;parser&apos; has no &apos;parse&apos; member  [pylint/E1101] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:264:  [MessagesTest.setUp] Module &apos;parser&apos; has no &apos;parse&apos; member  [pylint/E1101] [5]
ERROR: Source/WebKit2/Scripts/webkit/model.py:41:  expected 2 blank lines, found 1  [pep8/E302] [5]
Total errors found: 28 in 17 files

However, running check-webkit-style on just parser.py works fine:

$ git checkout HEAD Source/WebKit2/Scripts/webkit/parser.py
$ ./Tools/Scripts/check-webkit-style Source/WebKit2/Scripts/webkit/parser.py
ERROR: Source/WebKit2/Scripts/webkit/parser.py:124:  expected 2 blank lines, found 1  [pep8/E302] [5]
Total errors found: 1 in 1 files

Okay, I&apos;ve narrowed it down to two just files:

$ ./Tools/Scripts/check-webkit-style Source/WebKit2/Scripts/webkit/messages_unittest.py Source/WebKit2/Scripts/webkit/parser.py
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:52:  trailing whitespace  [pep8/W291] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:246:  whitespace before &apos;:&apos;  [pep8/E203] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:311:  too many blank lines (3)  [pep8/E303] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:262:  [MessagesTest.setUp] Module &apos;parser&apos; has no &apos;parse&apos; member  [pylint/E1101] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:263:  [MessagesTest.setUp] Module &apos;parser&apos; has no &apos;parse&apos; member  [pylint/E1101] [5]
ERROR: Source/WebKit2/Scripts/webkit/messages_unittest.py:264:  [MessagesTest.setUp] Module &apos;parser&apos; has no &apos;parse&apos; member  [pylint/E1101] [5]
ERROR: Source/WebKit2/Scripts/webkit/parser.py:124:  expected 2 blank lines, found 1  [pep8/E302] [5]
Traceback (most recent call last):
  File &quot;./Tools/Scripts/check-webkit-style&quot;, line 48, in &lt;module&gt;
    sys.exit(CheckWebKitStyle().main())
  File &quot;./Tools/Scripts/webkitpy/style/main.py&quot;, line 149, in main
    file_reader.process_paths(paths)
  File &quot;./Tools/Scripts/webkitpy/style/filereader.py&quot;, line 136, in process_paths
    self.process_file(path)
  File &quot;./Tools/Scripts/webkitpy/style/filereader.py&quot;, line 124, in process_file
    self._processor.process(lines, file_path, **kwargs)
  File &quot;./Tools/Scripts/webkitpy/style/checker.py&quot;, line 896, in process
    checker.check(lines)
  File &quot;./Tools/Scripts/webkitpy/style/checkers/python.py&quot;, line 43, in check
    self._check_pylint(lines)
  File &quot;./Tools/Scripts/webkitpy/style/checkers/python.py&quot;, line 71, in _check_pylint
    output = pylinter.run([&apos;-E&apos;, self._file_path])
  File &quot;./Tools/Scripts/webkitpy/style/checkers/python.py&quot;, line 106, in run
    lint.Run([&apos;--rcfile&apos;, self._pylintrc] + argv, reporter=ParseableTextReporter(output=output), exit=False)
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py&quot;, line 879, in __init__
    linter.check(args)
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py&quot;, line 502, in check
    self.check_astng_module(astng, walker, rawcheckers)
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py&quot;, line 574, in check_astng_module
    walker.walk(astng)
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/utils.py&quot;, line 528, in walk
    self.walk(child)
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/utils.py&quot;, line 525, in walk
    cb(astng)
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/checkers/base.py&quot;, line 157, in visit_class
    self._check_redefinition(&apos;class&apos;, node)
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/checkers/base.py&quot;, line 221, in _check_redefinition
    defined_self = node.parent.frame()[node.name]
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/logilab/astng/scoped_nodes.py&quot;, line 178, in __getitem__
    return self.locals[item][0]
KeyError: &apos;st&apos;
$</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303568</commentid>
    <comment_count>2</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-05-01 20:15:38 -0700</bug_when>
    <thetext>For some reason the &quot;import parser&quot; line in Source/WebKit2/Scripts/webkit/messages_unittest.py is affecting check-webkit-style. It only seems to affect check-webkit-style when the file that has &quot;import parser&quot; (why?) is style checked before parser.py and when both files are in a subdirectory of the top-level WebKit checkout directory (why?) or outside the WebKit checkout directory (why?). Here is a simple way to reproduce this issue by running the following commands in a Terminal from inside the top-level WebKit checkout directory:

$ mkdir tmp
$ touch tmp/parser.py
$ echo &quot;import parser&quot; &gt; A.py
$ Tools/Scripts/check-webkit-style tmp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303569</commentid>
    <comment_count>3</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-05-01 20:21:18 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #2)
&gt; [...]
&gt; $ echo &quot;import parser&quot; &gt; A.py

This should read:

$ echo &quot;import parser&quot; &gt; tmp/A.py</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303957</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-05-02 21:26:25 -0700</bug_when>
    <thetext>As it turns out, fixing the warnings in messages_unittest.py (and parser.py) also fixes this error.

I think the source of the bug was a bad import statement:

-import parser
+from webkit import parser

The next step is to figure out how to make messages_unittest.py and messages.py both work with the same import statement (and still make check-webkit-style happy).

Note that running messages_unittest.py now fails as the expected output hasn&apos;t been updated with other changes (probably because messages_unittest.py isn&apos;t run regularly by anyone or any bot).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303958</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-05-02 21:27:06 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #4)
&gt; As it turns out, fixing the warnings in messages_unittest.py (and parser.py)
&gt; also fixes this error.
&gt; 
&gt; I think the source of the bug was a bad import statement:
&gt; 
&gt; -import parser
&gt; +from webkit import parser
&gt; 
&gt; The next step is to figure out how to make messages_unittest.py and
&gt; messages.py both work with the same import statement (and still make
&gt; check-webkit-style happy).
&gt; 
&gt; Note that running messages_unittest.py now fails as the expected output
&gt; hasn&apos;t been updated with other changes (probably because
&gt; messages_unittest.py isn&apos;t run regularly by anyone or any bot).

Dan basically covered this in the comments above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303995</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-05-03 04:30:00 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #3)
&gt; (In reply to Daniel Bates from comment #2)
&gt; &gt; [...]
&gt; &gt; $ echo &quot;import parser&quot; &gt; A.py
&gt; 
&gt; This should read:
&gt; 
&gt; $ echo &quot;import parser&quot; &gt; tmp/A.py

Using Dan&apos;s test case, I can may pylint itself hit this error:

$ PYTHONPATH=`pwd`/Tools/Scripts/webkitpy/thirdparty/autoinstalled ./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/bin/pylint tmp/A.py tmp/parser.py 
No config file found, using default configuration
************* Module A
C:  1,0: Invalid name &quot;A&quot; (should match (([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$)
C:  1,0: Missing docstring
W:  1,0: Unused import parser
************* Module parser
I:  1,0: Unable to run raw checkers on built-in module parser
W:  1,0: Redefining built-in &apos;__package__&apos;
Traceback (most recent call last):
  File &quot;./Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/bin/pylint&quot;, line 4, in &lt;module&gt;
    lint.Run(sys.argv[1:])
  File &quot;/.../Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py&quot;, line 879, in __init__
    linter.check(args)
  File &quot;/.../Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py&quot;, line 502, in check
    self.check_astng_module(astng, walker, rawcheckers)
  File &quot;/.../Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/lint.py&quot;, line 574, in check_astng_module
    walker.walk(astng)
  File &quot;/.../Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/utils.py&quot;, line 528, in walk
    self.walk(child)
  File &quot;/.../Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/utils.py&quot;, line 525, in walk
    cb(astng)
  File &quot;/.../Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/checkers/base.py&quot;, line 157, in visit_class
    self._check_redefinition(&apos;class&apos;, node)
  File &quot;/.../Tools/Scripts/webkitpy/thirdparty/autoinstalled/pylint/checkers/base.py&quot;, line 221, in _check_redefinition
    defined_self = node.parent.frame()[node.name]
  File &quot;/.../Tools/Scripts/webkitpy/thirdparty/autoinstalled/logilab/astng/scoped_nodes.py&quot;, line 178, in __getitem__
    return self.locals[item][0]
KeyError: &apos;st&apos;

It would appear that pylint is getting confused by the built-in &apos;parser&apos; module that comes with Python itself versus the local parser.py.

That&apos;s why changing this appears to fix the pylint issue (but may cause other issues at runtime depending on how the source is run):

-import parser
+from webkit import parser

Okay, I have a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303998</commentid>
    <comment_count>7</comment_count>
      <attachid>308894</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-05-03 04:43:54 -0700</bug_when>
    <thetext>Created attachment 308894
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1303999</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-05-03 04:46:15 -0700</bug_when>
    <thetext>Note that after this fix, you may run messages_unittests.py like this:

$ python ./Source/WebKit2/Scripts/webkit/messages_unittest.py

(The test fails because the expected files haven&apos;t been updated recently, but that&apos;s a separate issue.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304000</commentid>
    <comment_count>9</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-05-03 04:50:22 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #8)
&gt; Note that after this fix, you may run messages_unittests.py like this:
&gt; 
&gt; $ python ./Source/WebKit2/Scripts/webkit/messages_unittest.py

Prior to this, you had to set PYTHONPATH yourself (which still works after this change, but the PYTHONPATH is now redundant):

$ PYTHONPATH=`pwd`/Source/WebKit2/Scripts python ./Source/WebKit2/Scripts/webkit/messages_unittest.py</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304324</commentid>
    <comment_count>10</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-05-03 15:38:06 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #8)
&gt; Note that after this fix, you may run messages_unittests.py like this:
&gt; 
&gt; $ python ./Source/WebKit2/Scripts/webkit/messages_unittest.py
&gt; 
&gt; (The test fails because the expected files haven&apos;t been updated recently,
&gt; but that&apos;s a separate issue.)

I filed:

Bug 171627: messages_unittest.py should support an [-u|--update] switch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304512</commentid>
    <comment_count>11</comment_count>
      <attachid>308894</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-05-03 21:50:47 -0700</bug_when>
    <thetext>Comment on attachment 308894
Patch v1

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

&gt; Source/WebKit2/ChangeLog:8
&gt; +        The problem was that &apos;import parser&apos; was abiguous since there is

abiguous =&gt; ambiguous

&gt; Source/WebKit2/ChangeLog:9
&gt; +        a built-in parser module that comes with python.  Changing

python =&gt; Python

&gt; Source/WebKit2/ChangeLog:19
&gt; +        As an added bonus, this patch also fixes all webkit-style issues
&gt; +        in Source/WebKit2/Scripts/webkit/*.py files.

Yay!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304579</commentid>
    <comment_count>12</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-05-04 05:30:30 -0700</bug_when>
    <thetext>Committed r216181: &lt;http://trac.webkit.org/changeset/216181&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308894</attachid>
            <date>2017-05-03 04:43:54 -0700</date>
            <delta_ts>2017-05-03 21:50:47 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-171510-20170503044356.patch</filename>
            <type>text/plain</type>
            <size>8530</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDY3YTY0YTE2YjI1N2Jj
M2MxNDNiMzhlNTdiNjRkY2IzNGE0MjhhZC4uNTBiNzEyMGQ2Y2E1YzU2NTYyNWQ5ZjVhYmFmODM1
YjcyY2E2MzViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE3LTA1LTAzICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgY2hlY2std2Via2l0LXN0
eWxlIGV4aXRzIHdpdGggYW4gZXJyb3Igd2hpbGUgcGFyc2luZyBTb3VyY2UvV2ViS2l0Mi9TY3Jp
cHRzL3dlYmtpdC8gZGlyZWN0b3J5OiBLZXlFcnJvcjogJ3N0JworICAgICAgICA8aHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTUxMD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJvYmxlbSB3YXMgdGhhdCAnaW1w
b3J0IHBhcnNlcicgd2FzIGFiaWd1b3VzIHNpbmNlIHRoZXJlIGlzCisgICAgICAgIGEgYnVpbHQt
aW4gcGFyc2VyIG1vZHVsZSB0aGF0IGNvbWVzIHdpdGggcHl0aG9uLiAgQ2hhbmdpbmcKKyAgICAg
ICAgJ2ltcG9ydCBwYXJzZXInIHRvICdmcm9tIHdlYmtpdCBpbXBvcnQgcGFyc2VyJyBmaXhlZCB0
aGUgZXJyb3IKKyAgICAgICAgaW4gY2hlY2std2Via2l0LXN0eWxlIChhbmQgcHlsaW50KSBieSBm
b3JjaW5nIGl0IHRvIGxvYWQgdGhlCisgICAgICAgIGxvY2FsICdwYXJzZXInIG1vZHVsZSwgYnV0
IHRoZW4gcnVubmluZyBtZXNzYWdlc191bml0dGVzdC5weQorICAgICAgICBkaXJlY3RseSB3b3Vs
ZCBmYWlsIGJlY2F1c2UgLi4uL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMgd2FzIG5vdAorICAgICAg
ICBpbiB0aGUgbW9kdWxlIHNlYXJjaCBwYXRoIGJ5IGRlZmF1bHQuICBUaGlzIGlzIGZpeGVkIGJ5
IHVzaW5nCisgICAgICAgIHN5cy5wYXRoLmFwcGVuZCgpIHRvIGFkZCAuLi4vU291cmNlL1dlYktp
dDIvU2NyaXB0cyB0byB0aGUKKyAgICAgICAgbW9kdWxlIHNlYXJjaCBwYXRoIGJhc2VkIG9uIHRo
ZSBwYXRoIHRvIG1lc3NhZ2VzX3VuaXR0ZXN0LnB5LgorCisgICAgICAgIEFzIGFuIGFkZGVkIGJv
bnVzLCB0aGlzIHBhdGNoIGFsc28gZml4ZXMgYWxsIHdlYmtpdC1zdHlsZSBpc3N1ZXMKKyAgICAg
ICAgaW4gU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvKi5weSBmaWxlcy4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAtIFNlcGFyYXRlIGxvY2Fs
IG1vZHVsZSBpbXBvcnRzIGZyb20gYnVpbHQtaW4gbW9kdWxlcyBmb3IKKyAgICAgICAgICBjb25z
aXN0ZW5jeS4KKyAgICAgICAgLSBGaXggd2hpdGVzcGFjZSBpc3N1ZXMgZm9yIGNoZWNrLXdlYmtp
dC1zdHlsZSwgYW5kIHJlbW92ZSBzdHJheQorICAgICAgICAgIHNlbWktY29sb24uCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXNfdW5pdHRlc3QucHk6CisgICAgICAgIC0gVXBkYXRl
IHN5cy5wYXRoIHRvIGZpbmQgdGhlICd3ZWJraXQnIG1vZHVsZSBiYXNlZCBvbiB0aGUgcGF0aAor
ICAgICAgICAgIHRvIG1lc3NhZ2VzX3VuaXR0ZXN0LnB5LiAgVGhpcyBtYWtlcyAnZnJvbSB3ZWJr
aXQgaW1wb3J0IC4uLicKKyAgICAgICAgICBzdGF0ZW1lbnRzIHdvcmsgd2hlbiBydW5uaW5nIG1l
c3NhZ2VzX3VuaXR0ZXN0LnB5IGRpcmVjdGx5LgorICAgICAgICAtIENoYW5nZSAnbWVzc2FnZXMn
IGFuZCAncGFyc2VyJyBtb2R1bGVzIHRvIHVzZQorICAgICAgICAgICdmcm9tIHdlYmtpdCBpbXBv
cnQgLi4uJyBmb3JtYXQgZm9yIGNvbnNpc3RlbmN5LgorICAgICAgICAtIEZpeCB3aGl0ZXNwYWNl
IGlzc3VlcyBmb3IgY2hlY2std2Via2l0LXN0eWxlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
L21vZGVsLnB5OgorICAgICAgICAtIEZpeCB3aGl0ZXNwYWNlIGlzc3VlIGZvciBjaGVjay13ZWJr
aXQtc3R5bGUuCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvcGFyc2VyLnB5OgorICAgICAgICAt
IEZpeCB3aGl0ZXNwYWNlIGlzc3VlIGZvciBjaGVjay13ZWJraXQtc3R5bGUuCisKIDIwMTctMDUt
MDIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRHlu
YW1pY2FsbHkgYWRkZWQgcG9zaXRpb246Zml4ZWQgZWxlbWVudCBpcyBpbiB0aGUgd3JvbmcgcGxh
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZTQ1Y2Ux
NzE2YTdjYmU5NDk2MDI4MWRhNmZmNjY5MTRkZDM5NmFhNi4uNGI2MzY3NjlmMDM4YTNhZjM3ODZk
MDVhZTViZjk0OGQwYjlkMWM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMC0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjMsNiArMjMsNyBAQAogaW1wb3J0IGNvbGxlY3Rpb25zCiBpbXBvcnQgcmUKIGltcG9y
dCBzeXMKKwogZnJvbSB3ZWJraXQgaW1wb3J0IHBhcnNlcgogCiBXQU5UU19DT05ORUNUSU9OX0FU
VFJJQlVURSA9ICdXYW50c0Nvbm5lY3Rpb24nCkBAIC0xNTcsNiArMTU4LDcgQEAgZGVmIGZvcndh
cmRfZGVjbGFyYXRpb24obmFtZXNwYWNlLCBraW5kX2FuZF90eXBlKToKICAgICBlbHNlOgogICAg
ICAgICByZXR1cm4gJ2NsYXNzICVzJyAlIHR5cGUKIAorCiBkZWYgZm9yd2FyZF9kZWNsYXJhdGlv
bnNfZm9yX25hbWVzcGFjZShuYW1lc3BhY2UsIGtpbmRfYW5kX3R5cGVzKToKICAgICByZXN1bHQg
PSBbXQogICAgIHJlc3VsdC5hcHBlbmQoJ25hbWVzcGFjZSAlcyB7XG4nICUgbmFtZXNwYWNlKQpA
QCAtMjEwLDYgKzIxMiw3IEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVhZGVycyhy
ZWNlaXZlcik6CiAKICAgICByZXR1cm4gKGZvcndhcmRfZGVjbGFyYXRpb25zLCBoZWFkZXJzKQog
CisKIGRlZiBnZW5lcmF0ZV9tZXNzYWdlc19oZWFkZXIoZmlsZSk6CiAgICAgcmVjZWl2ZXIgPSBw
YXJzZXIucGFyc2UoZmlsZSkKIApAQCAtMjk5LDcgKzMwMiw3IEBAIGRlZiBjbGFzc190ZW1wbGF0
ZV9oZWFkZXJzKHRlbXBsYXRlX3N0cmluZyk6CiAKICAgICBtYXRjaCA9IHJlLm1hdGNoKCcoP1A8
dGVtcGxhdGVfbmFtZT4uKz8pPCg/UDxwYXJhbWV0ZXJfc3RyaW5nPi4rKT4nLCB0ZW1wbGF0ZV9z
dHJpbmcpCiAgICAgaWYgbm90IG1hdGNoOgotICAgICAgICByZXR1cm4geydoZWFkZXJfaW5mb3Mn
OltdLCAndHlwZXMnOlt0ZW1wbGF0ZV9zdHJpbmddfQorICAgICAgICByZXR1cm4geydoZWFkZXJf
aW5mb3MnOiBbXSwgJ3R5cGVzJzogW3RlbXBsYXRlX3N0cmluZ119CiAKICAgICB0ZW1wbGF0ZV9u
YW1lID0gbWF0Y2guZ3JvdXBkaWN0KClbJ3RlbXBsYXRlX25hbWUnXQogICAgIGlmIHRlbXBsYXRl
X25hbWUgbm90IGluIGNsYXNzX3RlbXBsYXRlX3R5cGVzOgpAQCAtMzEyLDEwICszMTUsMTAgQEAg
ZGVmIGNsYXNzX3RlbXBsYXRlX2hlYWRlcnModGVtcGxhdGVfc3RyaW5nKToKICAgICBmb3IgcGFy
YW1ldGVyIGluIHBhcnNlci5zcGxpdF9wYXJhbWV0ZXJzX3N0cmluZyhtYXRjaC5ncm91cGRpY3Qo
KVsncGFyYW1ldGVyX3N0cmluZyddKToKICAgICAgICAgcGFyYW1ldGVyX2hlYWRlcl9pbmZvc19h
bmRfdHlwZXMgPSBjbGFzc190ZW1wbGF0ZV9oZWFkZXJzKHBhcmFtZXRlcikKIAotICAgICAgICBo
ZWFkZXJfaW5mb3MgKz0gcGFyYW1ldGVyX2hlYWRlcl9pbmZvc19hbmRfdHlwZXNbJ2hlYWRlcl9p
bmZvcyddOworICAgICAgICBoZWFkZXJfaW5mb3MgKz0gcGFyYW1ldGVyX2hlYWRlcl9pbmZvc19h
bmRfdHlwZXNbJ2hlYWRlcl9pbmZvcyddCiAgICAgICAgIHR5cGVzICs9IHBhcmFtZXRlcl9oZWFk
ZXJfaW5mb3NfYW5kX3R5cGVzWyd0eXBlcyddCiAKLSAgICByZXR1cm4geydoZWFkZXJfaW5mb3Mn
OmhlYWRlcl9pbmZvcywgJ3R5cGVzJzp0eXBlc30KKyAgICByZXR1cm4geydoZWFkZXJfaW5mb3Mn
OiBoZWFkZXJfaW5mb3MsICd0eXBlcyc6IHR5cGVzfQogCiAKIGRlZiBhcmd1bWVudF9jb2Rlcl9o
ZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgpAQCAtMzQzLDYgKzM0Niw3IEBAIGRlZiBhcmd1bWVudF9j
b2Rlcl9oZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogCiAgICAgcmV0dXJuIGhlYWRlcnMKIAorCiBk
ZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICBoZWFkZXJfaW5mb3NfYW5kX3R5cGVzID0g
Y2xhc3NfdGVtcGxhdGVfaGVhZGVycyh0eXBlKQogCkBAIC00MTEsNiArNDE1LDcgQEAgZGVmIGhl
YWRlcnNfZm9yX3R5cGUodHlwZSk6CiAKICAgICByZXR1cm4gaGVhZGVycwogCisKIGRlZiBnZW5l
cmF0ZV9tZXNzYWdlX2hhbmRsZXIoZmlsZSk6CiAgICAgcmVjZWl2ZXIgPSBwYXJzZXIucGFyc2Uo
ZmlsZSkKICAgICBoZWFkZXJfY29uZGl0aW9ucyA9IHsKQEAgLTQ2MSw3ICs0NjYsNiBAQCBkZWYg
Z2VuZXJhdGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgICAgICAgICAgICAgICAgICAgICAg
aGVhZGVyX2NvbmRpdGlvbnNbaGVhZGVyXSA9IFtdCiAgICAgICAgICAgICAgICAgICAgIGhlYWRl
cl9jb25kaXRpb25zW2hlYWRlcl0uYXBwZW5kKG1lc3NhZ2UuY29uZGl0aW9uKQogCi0KICAgICBy
ZXN1bHQgPSBbXQogCiAgICAgcmVzdWx0LmFwcGVuZChfbGljZW5zZV9oZWFkZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlc191bml0dGVzdC5weSBi
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzX3VuaXR0ZXN0LnB5CmluZGV4
IGUxMmRmZDQxZTM0YjgwYzFjM2YzNDE2OGNiZjQ3OGUwZTQ2NjNlZWQuLmE3MmRmNDRkNmI3Nzc1
Yzk1ZDM2ZDMyMzBiMGZmMmIyMTFkOGUwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzX3VuaXR0ZXN0LnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIxLDExICsyMSwxMyBAQAogIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
CiBpbXBvcnQgb3MKK2ltcG9ydCBzeXMKIGltcG9ydCB1bml0dGVzdAogZnJvbSBTdHJpbmdJTyBp
bXBvcnQgU3RyaW5nSU8KIAotaW1wb3J0IG1lc3NhZ2VzCi1pbXBvcnQgcGFyc2VyCitzeXMucGF0
aC5hcHBlbmQob3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpKQorZnJv
bSB3ZWJraXQgaW1wb3J0IG1lc3NhZ2VzCitmcm9tIHdlYmtpdCBpbXBvcnQgcGFyc2VyCiAKIHBy
aW50IG9zLmdldGN3ZCgpCiAKQEAgLTQ5LDcgKzUxLDcgQEAgd2l0aCBvcGVuKG9zLnBhdGguam9p
bihzY3JpcHRfZGlyZWN0b3J5LCAnTGVnYWN5TWVzc2FnZXMtZXhwZWN0ZWQuaCcpKSBhcyBmaWxl
OgogCiB3aXRoIG9wZW4ob3MucGF0aC5qb2luKHNjcmlwdF9kaXJlY3RvcnksICdNZXNzYWdlc1N1
cGVyY2xhc3MtZXhwZWN0ZWQuaCcpKSBhcyBmaWxlOgogICAgIF9leHBlY3RlZF9zdXBlcmNsYXNz
X3JlY2VpdmVyX2hlYWRlciA9IGZpbGUucmVhZCgpCi0gICAgCisKIAogd2l0aCBvcGVuKG9zLnBh
dGguam9pbihzY3JpcHRfZGlyZWN0b3J5LCAnTWVzc2FnZVJlY2VpdmVyLWV4cGVjdGVkLmNwcCcp
KSBhcyBmaWxlOgogICAgIF9leHBlY3RlZF9yZWNlaXZlcl9pbXBsZW1lbnRhdGlvbiA9IGZpbGUu
cmVhZCgpCkBAIC0yNDMsNyArMjQ1LDcgQEAgX2V4cGVjdGVkX3Jlc3VsdHMgPSB7CiAKIF9leHBl
Y3RlZF9zdXBlcmNsYXNzX3Jlc3VsdHMgPSB7CiAgICAgJ25hbWUnOiAnV2ViUGFnZScsCi0gICAg
J3N1cGVyY2xhc3MnIDogJ1dlYlBhZ2VCYXNlJywKKyAgICAnc3VwZXJjbGFzcyc6ICdXZWJQYWdl
QmFzZScsCiAgICAgJ2NvbmRpdGlvbnMnOiBOb25lLAogICAgICdtZXNzYWdlcyc6ICgKICAgICAg
ICAgewpAQCAtMzA3LDcgKzMwOSw2IEBAIGNsYXNzIFBhcnNpbmdUZXN0KE1lc3NhZ2VzVGVzdCk6
CiAgICAgICAgICAgICBzZWxmLmNoZWNrX21lc3NhZ2UobWVzc2FnZSwgX2V4cGVjdGVkX3N1cGVy
Y2xhc3NfcmVzdWx0c1snbWVzc2FnZXMnXVtpbmRleF0pCiAKIAotCiBjbGFzcyBHZW5lcmF0ZWRG
aWxlQ29udGVudHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgYXNzZXJ0R2VuZXJh
dGVkRmlsZUNvbnRlbnRzRXF1YWwoc2VsZiwgZmlyc3QsIHNlY29uZCk6CiAgICAgICAgIGZpcnN0
X2xpc3QgPSBmaXJzdC5zcGxpdCgnXG4nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2Ny
aXB0cy93ZWJraXQvbW9kZWwucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9tb2Rl
bC5weQppbmRleCBlYmY3NWNjZDRhNTA5ZGIyMjE0NTQ3ODU0ZTkxZDdiYmNiZmMzMjY4Li5kMDgz
MDQ0MGRlOTVlZDAyYzBiOGNkYTRkMmVjNTA4NGZlYTc5M2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9tb2RlbC5weQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3Jp
cHRzL3dlYmtpdC9tb2RlbC5weQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEw
LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAy
MDEwLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zOCw2ICszOCw3IEBAIGNsYXNzIE1lc3NhZ2VSZWNlaXZlcihvYmpl
Y3QpOgogICAgIGRlZiBoYXNfYXR0cmlidXRlKHNlbGYsIGF0dHJpYnV0ZSk6CiAgICAgICAgIHJl
dHVybiBhdHRyaWJ1dGUgaW4gc2VsZi5hdHRyaWJ1dGVzCiAKKwogY2xhc3MgTWVzc2FnZShvYmpl
Y3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBwYXJhbWV0ZXJzLCByZXBseV9wYXJh
bWV0ZXJzLCBhdHRyaWJ1dGVzLCBjb25kaXRpb24pOgogICAgICAgICBzZWxmLm5hbWUgPSBuYW1l
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9wYXJzZXIucHkgYi9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9wYXJzZXIucHkKaW5kZXggMWU0Y2FkZWU1OWQ3
MzE3MDQ5M2FkZTAwMmFkN2VmYTIxY2Q1YmMxZS4uMTg4MzNhYjVhY2FiMjY1ZmQzN2IzMDdmNzVm
ZGIxZGUyNjM2YzA5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQv
cGFyc2VyLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L3BhcnNlci5weQpA
QCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjEs
NiArMTIxLDcgQEAgZGVmIHNwbGl0X3BhcmFtZXRlcnNfc3RyaW5nKHBhcmFtZXRlcnNfc3RyaW5n
KToKICAgICBwYXJhbWV0ZXJzLmFwcGVuZChjdXJyZW50X3BhcmFtZXRlcl9zdHJpbmcpCiAgICAg
cmV0dXJuIHBhcmFtZXRlcnMKIAorCiBkZWYgcGFyc2VfcGFyYW1ldGVyc19zdHJpbmcocGFyYW1l
dGVyc19zdHJpbmcpOgogICAgIHBhcmFtZXRlcnMgPSBbXQogCg==
</data>
<flag name="review"
          id="330062"
          type_id="1"
          status="+"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="330063"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
      

    </bug>

</bugzilla>