<?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>84582</bug_id>
          
          <creation_ts>2012-04-23 03:11:49 -0700</creation_ts>
          <short_desc>webkitpy: changelog crashes when parsing authors containing + or ,</short_desc>
          <delta_ts>2013-04-10 00:36:29 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>110356</dup_id>
          
          <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>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>607578</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-23 03:11:49 -0700</bug_when>
    <thetext>E......
======================================================================
ERROR: test_parse_authors (webkitpy.common.checkout.changelog_unittest.ChangeLogTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File &quot;webkitpy/common/checkout/changelog_unittest.py&quot;, line 433, in test_parse_authors
    [(&apos;James Simonsen&apos;, &apos;simonjam+webkit@google.com&apos;)])
  File &quot;webkitpy/common/checkout/changelog_unittest.py&quot;, line 417, in _assert_parse_authors
    parsed_authors = [(author[&apos;name&apos;], author[&apos;email&apos;]) for author in self._entry_with_author(author_text).authors()]
  File &quot;webkitpy/common/checkout/changelog_unittest.py&quot;, line 376, in _entry_with_author
    &apos;&apos;&apos;.replace(&quot;AUTHOR_TEXT&quot;, author_text))
  File &quot;webkitpy/common/checkout/changelog.py&quot;, line 104, in __init__
    self._parse_entry()
  File &quot;webkitpy/common/checkout/changelog.py&quot;, line 165, in _parse_entry
    self._authors = ChangeLogEntry._parse_author_text(self._author_text)
  File &quot;webkitpy/common/checkout/changelog.py&quot;, line 156, in _parse_author_text
    return [ChangeLogEntry._parse_author_name_and_email(author) for author in authors]
  File &quot;webkitpy/common/checkout/changelog.py&quot;, line 148, in _parse_author_name_and_email
    return {&apos;name&apos;: match.group(&quot;name&quot;), &apos;email&apos;: match.group(&quot;email&quot;)}
AttributeError: &apos;NoneType&apos; object has no attribute &apos;group&apos;

----------------------------------------------------------------------
Ran 16 tests in 0.566s

FAILED (errors=1)

The problem is that _parse_author_name_and_email uses _split_contributor_names which splits the text using a set of separators when tey are found at any position of the text. Author names can contains &apos;,&apos; and email can contain +.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607581</commentid>
    <comment_count>1</comment_count>
      <attachid>138318</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-23 03:16:08 -0700</bug_when>
    <thetext>Created attachment 138318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607685</commentid>
    <comment_count>2</comment_count>
      <attachid>138318</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-23 07:57:22 -0700</bug_when>
    <thetext>Comment on attachment 138318
Patch

I feel like the ChangeLog might be missing the &quot;why.&quot; From your patch it looks like (unless I have misread) that you combined the regular expression to split things containing &quot;and&quot; or &quot;&amp;&quot; into multiple parts with the regular expression that parses the name and email combination. I don&apos;t understand exactly why that fixes the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607695</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-23 08:10:38 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 138318 [details])
&gt; I feel like the ChangeLog might be missing the &quot;why.&quot; From your patch it looks like (unless I have misread) that you combined the regular expression to split things containing &quot;and&quot; or &quot;&amp;&quot; into multiple parts with the regular expression that parses the name and email combination. I don&apos;t understand exactly why that fixes the problem.

As I said in the description _parse_author_name_and_email uses _split_contributor_names which splits the text using a set of separators when they are found *at any position of the text*. That means that a , or + in the inside an author name or email would split the name or email. Merging both, and using findall, it looks for name &lt;email&gt; patterns separated by the set of separators.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607696</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-23 08:14:14 -0700</bug_when>
    <thetext>(In reply to comment #3)

&gt; As I said in the description _parse_author_name_and_email uses _split_contributor_names which splits the text using a set of separators when they are found *at any position of the text*. That means that a , or + in the inside an author name or email would split the name or email. Merging both, and using findall, it looks for name &lt;email&gt; patterns separated by the set of separators.

Sorry, I missed that.

Would it be possible to modify the regular expression to simply enforce spaces around &apos;+&apos;?  That will allow us to keep the nice abstraction between splitting the name and email addresses and splitting things with &quot;and&quot;, &quot;&amp;&amp;&quot;, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607700</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-23 08:19:08 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; 
&gt; &gt; As I said in the description _parse_author_name_and_email uses _split_contributor_names which splits the text using a set of separators when they are found *at any position of the text*. That means that a , or + in the inside an author name or email would split the name or email. Merging both, and using findall, it looks for name &lt;email&gt; patterns separated by the set of separators.
&gt; 
&gt; Sorry, I missed that.
&gt; 
&gt; Would it be possible to modify the regular expression to simply enforce spaces around &apos;+&apos;?  That will allow us to keep the nice abstraction between splitting the name and email addresses and splitting things with &quot;and&quot;, &quot;&amp;&amp;&quot;, etc.

That would fix the case of +, but list of authors separated by , don&apos;t usually have spaces around.

Foo Bar &lt;foo@bar.com&gt;, Baz &lt;bazmail@webkit.org&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607708</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-23 08:42:44 -0700</bug_when>
    <thetext>(In reply to comment #5)

&gt; That would fix the case of +, but list of authors separated by , don&apos;t usually have spaces around.
&gt; 
&gt; Foo Bar &lt;foo@bar.com&gt;, Baz &lt;bazmail@webkit.org&gt;

It would probably be enough only to make this a requirement for characters that can also exist in names and email addresses. Specifically, the words &quot;and&quot; and &quot;+&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607719</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-23 08:53:40 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; 
&gt; &gt; That would fix the case of +, but list of authors separated by , don&apos;t usually have spaces around.
&gt; &gt; 
&gt; &gt; Foo Bar &lt;foo@bar.com&gt;, Baz &lt;bazmail@webkit.org&gt;
&gt; 
&gt; It would probably be enough only to make this a requirement for characters that can also exist in names and email addresses. Specifically, the words &quot;and&quot; and &quot;+&quot;.

that wouldn&apos;t fix the real test case I added to the unit tests where there&apos;s a , in the author name. What&apos;s wrong with the proposed regexp? It fixes all test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607869</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-23 11:25:11 -0700</bug_when>
    <thetext>(In reply to comment #7)

&gt; that wouldn&apos;t fix the real test case I added to the unit tests where there&apos;s a , in the author name. What&apos;s wrong with the proposed regexp? It fixes all test cases.

The new regular expressions look like it works great, but it has the downside of duplicating a fairly complicated regular expression in two places. Later if someone wants to add to the regex or fix a bug, they may miss one copy of it. Is there a way to reuse it in both places?Perhaps even just storing it as a string that you can use in both places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608031</commentid>
    <comment_count>9</comment_count>
      <attachid>138318</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-04-23 14:45:16 -0700</bug_when>
    <thetext>Comment on attachment 138318
Patch

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

&gt; Tools/Scripts/webkitpy/common/checkout/changelog.py:147
&gt; +        return [{&apos;name&apos;: name, &apos;email&apos;: email} for name, email in re.findall(r&apos;(?P&lt;name&gt;.+?)\s+&lt;(?P&lt;email&gt;[^&gt;]+)&gt;(?:\s*(?:,(?:\s+and\s+|&amp;)?|(?:^|\s+)and\s+|&amp;&amp;|[/+&amp;])\s*)?&apos;, text) if text]

Is it possible to implement this correctly without merging the regexps? Frankly, both of these regexps were already verging on unmaintainable.

I&apos;d be surprised if this code is particularly performance critical, so if it isn&apos;t, I would suggest splitting this (or at least _split_contributor_names() ) up into multiple regexps bracketed by if/elses in order to make the code easier to comprehend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608051</commentid>
    <comment_count>10</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-23 15:01:05 -0700</bug_when>
    <thetext>(In reply to comment #9)

&gt; Is it possible to implement this correctly without merging the regexps? Frankly, both of these regexps were already verging on unmaintainable.

This might be tricky. It&apos;s unclear what to do with a string like this &quot;Reviewed by Pawel Hadjan, Jr., Martin Robinson, and Carlos Garcia Campos.&quot; You could make it work for the attribution line by only splitting names if the comma is prefixed by the end of an email address ala &quot;Pawel Hadjan, Jr. &lt;foo@foo.com&gt;, Martin Robinson &lt;mrobinson@webkit.org&gt;, and Carlos Garcia Campos &lt;cgarcia@igalia.com&gt;.&quot; That means we&apos;d need two copies of the regex though, I think. Perhaps it&apos;s easiest to just strip &quot;, Jr.&quot; and the like from the string before processing. That would make things a lot simpler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608062</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-04-23 15:15:26 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; 
&gt; &gt; Is it possible to implement this correctly without merging the regexps? Frankly, both of these regexps were already verging on unmaintainable.
&gt; 
&gt; This might be tricky. It&apos;s unclear what to do with a string like this &quot;Reviewed by Pawel Hadjan, Jr., Martin Robinson, and Carlos Garcia Campos.&quot; 

Isn&apos;t that case is hard to deal with regardless of whether the regexps are merged?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608119</commentid>
    <comment_count>12</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-04-23 15:46:43 -0700</bug_when>
    <thetext>(In reply to comment #11)

&gt; &gt; This might be tricky. It&apos;s unclear what to do with a string like this &quot;Reviewed by Pawel Hadjan, Jr., Martin Robinson, and Carlos Garcia Campos.&quot; 
&gt; 
&gt; Isn&apos;t that case is hard to deal with regardless of whether the regexps are merged?

It seems so. :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608385</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-23 23:40:30 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; 
&gt; &gt; that wouldn&apos;t fix the real test case I added to the unit tests where there&apos;s a , in the author name. What&apos;s wrong with the proposed regexp? It fixes all test cases.
&gt; 
&gt; The new regular expressions look like it works great, but it has the downside of duplicating a fairly complicated regular expression in two places. Later if someone wants to add to the regex or fix a bug, they may miss one copy of it. Is there a way to reuse it in both places?Perhaps even just storing it as a string that you can use in both places.

Yes, that makes sense</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608388</commentid>
    <comment_count>14</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-23 23:45:27 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #9)
&gt; &gt; 
&gt; &gt; &gt; Is it possible to implement this correctly without merging the regexps? Frankly, both of these regexps were already verging on unmaintainable.
&gt; &gt; 
&gt; &gt; This might be tricky. It&apos;s unclear what to do with a string like this &quot;Reviewed by Pawel Hadjan, Jr., Martin Robinson, and Carlos Garcia Campos.&quot; 
&gt; 
&gt; Isn&apos;t that case is hard to deal with regardless of whether the regexps are merged?

Yes, this patch doesn&apos;t try to fix the reviewer text case, because it&apos;s impossible to know whether a , is part of a name or a separator. Fortunately multiple reviewers is not that common, so having a commit with multiple reviewers and one of them having a , in the name is very unlikely. Commits with multiple author is common though. 

I tried to fix the test cases I added to the unit tests using the existing functions, just playing with the regexp, but didn&apos;t manage to fix it until I merged both regexps, because we need the pattern name &lt;email&gt; in the regexp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702420</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-22 15:26:45 -0700</bug_when>
    <thetext>Ryosuke was the last person in this code. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702449</commentid>
    <comment_count>16</comment_count>
      <attachid>138318</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-22 15:38:50 -0700</bug_when>
    <thetext>Comment on attachment 138318
Patch

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

&gt; Tools/Scripts/webkitpy/common/checkout/changelog.py:-154
&gt; -        authors = ChangeLogEntry._split_contributor_names(text)

I don&apos;t think we want to duplicate reg exps here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872632</commentid>
    <comment_count>17</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-04-10 00:36:29 -0700</bug_when>
    <thetext>Tony fixed this already in r143504.

*** This bug has been marked as a duplicate of bug 110356 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138318</attachid>
            <date>2012-04-23 03:16:08 -0700</date>
            <delta_ts>2012-08-22 15:38:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>webkitpy-changelog-crash.diff</filename>
            <type>text/plain</type>
            <size>4745</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNzEx
Mzk1Li45MDNiNzcxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMDQtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIHdlYmtpdHB5OiBjaGFuZ2Vsb2cgY3Jh
c2hlcyB3aGVuIHBhcnNpbmcgYXV0aG9ycyBjb250YWluaW5nICsgb3IgLAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ1ODIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L2NoYW5nZWxvZy5weToKKyAgICAgICAgKENoYW5nZUxvZ0VudHJ5Ll9zcGxp
dF9yZXZpZXdlcl9uYW1lcyk6IFRoaXMgaXMKKyAgICAgICAgX3NwbGl0X2NvbnRyaWJ1dG9yX25h
bWVzIHJlbmFtZWQgYW5kIHVzZWQgb25seSB0byBzcGxpdCByZXZpZXdlcgorICAgICAgICBuYW1l
cy4KKyAgICAgICAgKENoYW5nZUxvZ0VudHJ5Ll9wYXJzZV9yZXZpZXdlcl90ZXh0KTogVXNlIF9z
cGxpdF9yZXZpZXdlcl9uYW1lcy4KKyAgICAgICAgKENoYW5nZUxvZ0VudHJ5Ll9wYXJzZV9hdXRo
b3JfdGV4dCk6IE1lcmdlIHRoZSByZWd1bHRhciBleHByZXNzaW9uCisgICAgICAgIHRvIHNwbGl0
IHRoZSBjb250cmlidXRvcnMgbmFtZSB3aXRoIHRoZSBvbmUgdG8gZXh0cmF4Y3QgbmFtZSBhbmQK
KyAgICAgICAgZW1haWwgdG8gYXZvaWQgc3BsaXR0aW5nIG5hbWVzIG9yIGVtYWlscy4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9jaGFuZ2Vsb2dfdW5pdHRlc3Qu
cHk6CisgICAgICAgICh0ZXN0X3BhcnNlX2F1dGhvcnMpOiBBZGQgbmV3IHRlc3QgY2FzZXMuCisK
IDIwMTItMDQtMjIgIFNyaXJhbSBOZWVsYWthbmRhbiAgPHNyaXJhbS5uZWVsYWthbmRhbkBnbWFp
bC5jb20+CiAKICAgICAgICAgW0d0a10gQWRkZWQgTU9aX1gxMSBidWlsZCBmbGFnIGZvciBUQVJH
RVRfWDExCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291
dC9jaGFuZ2Vsb2cucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9j
aGFuZ2Vsb2cucHkKaW5kZXggM2NmZTI1Zi4uYjdmMDM5ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY2hhbmdlbG9nLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5nZWxvZy5weQpAQCAtMTA0LDYgKzEw
NCwxMCBAQCBjbGFzcyBDaGFuZ2VMb2dFbnRyeShvYmplY3QpOgogICAgICAgICBzZWxmLl9wYXJz
ZV9lbnRyeSgpCiAKICAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIF9zcGxpdF9yZXZpZXdlcl9u
YW1lcyh0ZXh0KToKKyAgICAgICAgcmV0dXJuIHJlLnNwbGl0KHInXHMqKD86LCg/OlxzK2FuZFxz
K3wmKT98KD86XnxccyspYW5kXHMrfCYmfFsvKyZdKVxzKicsIHRleHQpCisKKyAgICBAc3RhdGlj
bWV0aG9kCiAgICAgZGVmIF9wYXJzZV9yZXZpZXdlcl90ZXh0KHRleHQpOgogICAgICAgICBtYXRj
aCA9IHJlLnNlYXJjaChDaGFuZ2VMb2dFbnRyeS5yZXZpZXdlZF9ieV9yZWdleHAsIHRleHQsIHJl
Lk1VTFRJTElORSB8IHJlLklHTk9SRUNBU0UpCiAgICAgICAgIGlmIG5vdCBtYXRjaDoKQEAgLTEy
Myw3ICsxMjcsNyBAQCBjbGFzcyBDaGFuZ2VMb2dFbnRyeShvYmplY3QpOgogICAgICAgICBpZiBu
b3QgbGVuKHJldmlld2VyX3RleHQpOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUKIAot
ICAgICAgICByZXZpZXdlcl9saXN0ID0gQ2hhbmdlTG9nRW50cnkuX3NwbGl0X2NvbnRyaWJ1dG9y
X25hbWVzKHJldmlld2VyX3RleHQpCisgICAgICAgIHJldmlld2VyX2xpc3QgPSBDaGFuZ2VMb2dF
bnRyeS5fc3BsaXRfcmV2aWV3ZXJfbmFtZXMocmV2aWV3ZXJfdGV4dCkKIAogICAgICAgICAjIEdl
dCByaWQgb2YgInJldmlld2VycyIgbGlrZSAiZXZlbiB0aG91Z2ggdGhpcyBpcyBqdXN0IGEuLi4i
IGluICJSZXZpZXdlZCBieSBTYW0gV2VpbmlnLCBldmVuIHRob3VnaCB0aGlzIGlzIGp1c3QgYS4u
LiIKICAgICAgICAgIyBhbmQgIndobyB3cm90ZSB0aGUgb3JpZ2luYWwgY29kZSIgaW4gIk5vYW0g
Um9zZW50aGFsLCB3aG8gd3JvdGUgdGhlIG9yaWdpbmFsIGNvZGUiCkBAIC0xMzEsMTAgKzEzNSw2
IEBAIGNsYXNzIENoYW5nZUxvZ0VudHJ5KG9iamVjdCk6CiAKICAgICAgICAgcmV0dXJuIHJldmll
d2VyX3RleHQsIHJldmlld2VyX2xpc3QKIAotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgX3Nw
bGl0X2NvbnRyaWJ1dG9yX25hbWVzKHRleHQpOgotICAgICAgICByZXR1cm4gcmUuc3BsaXQocidc
cyooPzosKD86XHMrYW5kXHMrfCYpP3woPzpefFxzKylhbmRccyt8JiZ8Wy8rJl0pXHMqJywgdGV4
dCkKLQogICAgIGRlZiBfZnV6el9tYXRjaF9yZXZpZXdlcnMoc2VsZiwgcmV2aWV3ZXJzX3RleHRf
bGlzdCk6CiAgICAgICAgIGlmIG5vdCByZXZpZXdlcnNfdGV4dF9saXN0OgogICAgICAgICAgICAg
cmV0dXJuIFtdCkBAIC0xNDMsMTcgKzE0Myw4IEBAIGNsYXNzIENoYW5nZUxvZ0VudHJ5KG9iamVj
dCk6CiAgICAgICAgIHJldHVybiBbcmV2aWV3ZXJzWzBdIGZvciByZXZpZXdlcnMgaW4gbGlzdF9v
Zl9yZXZpZXdlcnMgaWYgbGVuKHJldmlld2VycykgPT0gMV0KIAogICAgIEBzdGF0aWNtZXRob2QK
LSAgICBkZWYgX3BhcnNlX2F1dGhvcl9uYW1lX2FuZF9lbWFpbChhdXRob3JfbmFtZV9hbmRfZW1h
aWwpOgotICAgICAgICBtYXRjaCA9IHJlLm1hdGNoKHInKD9QPG5hbWU+Lis/KVxzKzwoP1A8ZW1h
aWw+W14+XSspPicsIGF1dGhvcl9uYW1lX2FuZF9lbWFpbCkKLSAgICAgICAgcmV0dXJuIHsnbmFt
ZSc6IG1hdGNoLmdyb3VwKCJuYW1lIiksICdlbWFpbCc6IG1hdGNoLmdyb3VwKCJlbWFpbCIpfQot
Ci0gICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBfcGFyc2VfYXV0aG9yX3RleHQodGV4dCk6Ci0g
ICAgICAgIGlmIG5vdCB0ZXh0OgotICAgICAgICAgICAgcmV0dXJuIFtdCi0gICAgICAgIGF1dGhv
cnMgPSBDaGFuZ2VMb2dFbnRyeS5fc3BsaXRfY29udHJpYnV0b3JfbmFtZXModGV4dCkKLSAgICAg
ICAgYXNzZXJ0KGF1dGhvcnMgYW5kIGxlbihhdXRob3JzKSA+PSAxKQotICAgICAgICByZXR1cm4g
W0NoYW5nZUxvZ0VudHJ5Ll9wYXJzZV9hdXRob3JfbmFtZV9hbmRfZW1haWwoYXV0aG9yKSBmb3Ig
YXV0aG9yIGluIGF1dGhvcnNdCisgICAgICAgIHJldHVybiBbeyduYW1lJzogbmFtZSwgJ2VtYWls
JzogZW1haWx9IGZvciBuYW1lLCBlbWFpbCBpbiByZS5maW5kYWxsKHInKD9QPG5hbWU+Lis/KVxz
KzwoP1A8ZW1haWw+W14+XSspPig/OlxzKig/OiwoPzpccythbmRccyt8Jik/fCg/Ol58XHMrKWFu
ZFxzK3wmJnxbLysmXSlccyopPycsIHRleHQpIGlmIHRleHRdCiAKICAgICBkZWYgX3BhcnNlX2Vu
dHJ5KHNlbGYpOgogICAgICAgICBtYXRjaCA9IHJlLm1hdGNoKHNlbGYuZGF0ZV9saW5lX3JlZ2V4
cCwgc2VsZi5fY29udGVudHMsIHJlLk1VTFRJTElORSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5nZWxvZ191bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NoYW5nZWxvZ191bml0dGVzdC5weQpp
bmRleCA1MjI2ODQyLi4xMDIwYjc3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9jaGVja291dC9jaGFuZ2Vsb2dfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY2hhbmdlbG9nX3VuaXR0ZXN0LnB5CkBAIC00Mjcs
NiArNDI3LDEwIEBAIGNsYXNzIENoYW5nZUxvZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICAgICAgWygnTmV3IENvbnRyaWJ1dG9yJywgJ25ld0B3ZWJraXQub3JnJyksICgnTm9vYics
ICdub29iQHdlYmtpdC5vcmcnKV0pCiAgICAgICAgIHNlbGYuX2Fzc2VydF9wYXJzZV9hdXRob3Jz
KCdBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+ICYmIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+JywKICAgICAgICAgICAgIFsoJ0FkYW0gQmFydGgnLCAnYWJhcnRo
QHdlYmtpdC5vcmcnKSwgKCdCZW5qYW1pbiBQb3VsYWluJywgJ2Jwb3VsYWluQGFwcGxlLmNvbScp
XSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X3BhcnNlX2F1dGhvcnMoJ0phbWVzIFNpbW9uc2VuICA8
c2ltb25qYW0rd2Via2l0QGdvb2dsZS5jb20+JywKKyAgICAgICAgICAgIFsoJ0phbWVzIFNpbW9u
c2VuJywgJ3NpbW9uamFtK3dlYmtpdEBnb29nbGUuY29tJyldKQorICAgICAgICBzZWxmLl9hc3Nl
cnRfcGFyc2VfYXV0aG9ycygnUGF3ZWwgSGFqZGFuLCBKci4gIDxwaGFqZGFuLmpyQGNocm9taXVt
Lm9yZz4nLAorICAgICAgICAgICAgWygnUGF3ZWwgSGFqZGFuLCBKci4nLCAncGhhamRhbi5qckBj
aHJvbWl1bS5vcmcnKV0pCiAKICAgICBkZWYgX2Fzc2VydF9oYXNfdmFsaWRfcmV2aWV3ZXIoc2Vs
ZiwgcmV2aWV3ZXJfbGluZSwgZXhwZWN0ZWQpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNl
bGYuX2VudHJ5X3dpdGhfcmV2aWV3ZXIocmV2aWV3ZXJfbGluZSkuaGFzX3ZhbGlkX3Jldmlld2Vy
KCksIGV4cGVjdGVkKQo=
</data>
<flag name="review"
          id="143629"
          type_id="1"
          status="-"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>