<?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>26703</bug_id>
          
          <creation_ts>2009-06-24 18:43:23 -0700</creation_ts>
          <short_desc>bugzilla-tool apply-patches needs --local-commit and land-patches should support multiple bugs</short_desc>
          <delta_ts>2009-06-25 01:09:43 -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>Mac</rep_platform>
          <op_sys>OS X 10.5</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>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aroben</cc>
    
    <cc>levin</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>128063</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-24 18:43:23 -0700</bug_when>
    <thetext>bugzilla-tool apply-patches needs --local-commit and land-patches should support multiple bugs

Dave Levin asked about this feature when he first tried bugzilla-tool.  Basically it makes apply-patches into a &quot;git am&quot; equivalent, since now it can turn patches directly into local commits.

bugzilla-tool land-patches should also take multiple bug ids.  Makes it possible to land multiple bugs at once with a single command.  This is very useful for our current commit queue, since we can&apos;t just land the whole queue until we straighten out what r+ means.  But we can pre-screen a few bugs and then send the script off to build, test and land the pre-screened bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128064</commentid>
    <comment_count>1</comment_count>
      <attachid>31826</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-24 18:47:47 -0700</bug_when>
    <thetext>Created attachment 31826
Let land-patches take multiple bug ids

---
 2 files changed, 95 insertions(+), 36 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128065</commentid>
    <comment_count>2</comment_count>
      <attachid>31827</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-24 18:47:49 -0700</bug_when>
    <thetext>Created attachment 31827
Support local commits during apply-patches

---
 4 files changed, 23 insertions(+), 4 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128083</commentid>
    <comment_count>3</comment_count>
      <attachid>31826</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-24 20:05:32 -0700</bug_when>
    <thetext>Comment on attachment 31826
Let land-patches take multiple bug ids

A few things (most importantly the license) to address so r- for now.

&gt; diff --git a/WebKitTools/Scripts/bugzilla-tool b/WebKitTools/Scripts/bugzilla-tool

&gt; +# plural() is taken from http://python.developpez.com/cours/DiveIntoPython/php/endiveintopython/dynamic_functions/stage1.php

Unfortunately, this has a &quot;python license&quot; which is meant to be permissable (I think) but doesn&apos;t meet our requirements and I&apos;m fairly certain that http://diveintopython.org/dynamic_functions/stage1.html is the official source.


&gt; +    @staticmethod
&gt; +    def apply_patches(patches, scm, commit_each):
&gt; +        for patch in patches:
&gt; +            scm.apply_patch(patch)
&gt; +            if commit_each:
&gt; +                scm.commit_locally_with_message(patch[&apos;name&apos;])
&gt; +

This looks like it should be a scm method.  I also wish &quot;name&quot; was &quot;message&quot; since that how it seems to be used.



&gt; +    @classmethod
&gt; +    def build_and_commit(cls, scm, options):
&gt; +        if options.build:
&gt; +            cls.build_webkit()
&gt; +            if options.test:
&gt; +                cls.run_webkit_tests()

Is it possible to set test w/o build?  Should this error out if that is done?


&gt; +    def execute(self, options, args, tool):
&gt; +        bugs_and_patches = []

This feels more like a dictionary to me.

  bugs_to_patches = {}

&gt; +        for bug_id in args:
&gt; +            patches = tool.bugs.fetch_reviewed_patches_from_bug(bug_id)
...
&gt; +            bugs_and_patches.append([bug_id, patches])
  bugs_to_patches[bug_id] = patches


&gt; +        for bug_and_patches in bugs_and_patches:

for bug_id in bugs_to_patches:

&gt; +            patches = bug_and_patches[1]

patches = bugs_to_patches[bug_id]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128089</commentid>
    <comment_count>4</comment_count>
      <attachid>31827</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-24 20:55:51 -0700</bug_when>
    <thetext>Comment on attachment 31827
Support local commits during apply-patches

My real concern is the commit message so r- for that.


&gt; diff --git a/WebKitTools/Scripts/bugzilla-tool b/WebKitTools/Scripts/bugzilla-tool
&gt;          for patch in patches:
&gt;              tool.scm().apply_patch(patch)
&gt; +            if options.local_commit:
&gt; +                tool.scm().commit_locally_with_message(patch[&apos;name&apos;])

As discussed, the message given here doesn&apos;t seem like the right thing.


&gt; diff --git a/WebKitTools/Scripts/modules/scm.py b/WebKitTools/Scripts/modules/scm.py
&gt; index e226962..7c9593f 100644
&gt; --- a/WebKitTools/Scripts/modules/scm.py
&gt; +++ b/WebKitTools/Scripts/modules/scm.py
&gt; @@ -65,14 +65,14 @@ class SCM:
&gt;          output = process.communicate(input)[0].rstrip()
&gt;          exit_code = process.wait()
&gt;          if raise_on_failure and exit_code:
&gt; -            raise ScriptError(&quot;Failed to run &quot; + command)
&gt; +            raise ScriptError(&quot;Failed to run \&quot;%s\&quot;  exit_code: %d  cwd: %s&quot; % (command, exit_code, cwd))

Consider:
            raise ScriptError(&apos;Failed to run &quot;%s&quot;  exit_code: %d  cwd: %s&apos; % (command, exit_code, cwd))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128102</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-24 23:38:19 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 31826 [review])
&gt; Unfortunately, this has a &quot;python license&quot; which is meant to be permissable (I
&gt; think) but doesn&apos;t meet our requirements and I&apos;m fairly certain that
&gt; http://diveintopython.org/dynamic_functions/stage1.html is the official source.

I emailed the author about using it under BSD license.  I&apos;ve written a dumber implementation myself for now.

&gt; &gt; +    @staticmethod
&gt; &gt; +    def apply_patches(patches, scm, commit_each):
&gt; &gt; +        for patch in patches:
&gt; &gt; +            scm.apply_patch(patch)
&gt; &gt; +            if commit_each:
&gt; &gt; +                scm.commit_locally_with_message(patch[&apos;name&apos;])
&gt; &gt; +
&gt; 
&gt; This looks like it should be a scm method.  I also wish &quot;name&quot; was &quot;message&quot;
&gt; since that how it seems to be used.

Perhaps.  Right now I&apos;m going to leave it on that class.

&gt; &gt; +    @classmethod
&gt; &gt; +    def build_and_commit(cls, scm, options):
&gt; &gt; +        if options.build:
&gt; &gt; +            cls.build_webkit()
&gt; &gt; +            if options.test:
&gt; &gt; +                cls.run_webkit_tests()
&gt; 
&gt; Is it possible to set test w/o build?  Should this error out if that is done?

No, it&apos;s not possible.  It&apos;s also not possible to specifically enable testing.  Testing defaults to on, you can disable it by either --no-build or --no-test.  If someone only passes --no-build and not --no-test it doesn&apos;t make sense to error.  Maybe some day we&apos;ll support explicit --no-build and --test, and then we could have an error.

&gt; &gt; +    def execute(self, options, args, tool):
&gt; &gt; +        bugs_and_patches = []
&gt; 
&gt; This feels more like a dictionary to me.

Fixed.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128103</commentid>
    <comment_count>6</comment_count>
      <attachid>31832</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-24 23:42:22 -0700</bug_when>
    <thetext>Created attachment 31832
Patch updated and combined after David&apos;s review

---
 4 files changed, 103 insertions(+), 38 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128104</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-24 23:44:59 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 31827 [review])
&gt; &gt; +                tool.scm().commit_locally_with_message(patch[&apos;name&apos;])
&gt; 
&gt; As discussed, the message given here doesn&apos;t seem like the right thing.

commit_message = commit_message_for_this_commit(scm)
scm.commit_locally_with_message(commit_message or patch[&apos;name&apos;])

Which should &quot;do the right thing&quot; for both patches which have ChangeLogs and those which don&apos;t.

&gt; Consider:
&gt;             raise ScriptError(&apos;Failed to run &quot;%s&quot;  exit_code: %d  cwd: %s&apos; %
&gt; (command, exit_code, cwd))

Considered.  And changed! ;)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128108</commentid>
    <comment_count>8</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-06-24 23:52:00 -0700</bug_when>
    <thetext>fwiw,
  &quot;if not count or count &gt; 1:&quot;

Could also be written as
  &quot;if count != 1:&quot;

Whatever you like better.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128122</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-25 01:09:43 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebKitTools/ChangeLog
	M	WebKitTools/Scripts/bugzilla-tool
	M	WebKitTools/Scripts/modules/bugzilla.py
	M	WebKitTools/Scripts/modules/scm.py
Committed r45160
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31826</attachid>
            <date>2009-06-24 18:47:47 -0700</date>
            <delta_ts>2009-06-24 23:42:33 -0700</delta_ts>
            <desc>Let land-patches take multiple bug ids</desc>
            <filename>bugzilla_requires_a_filename.patch</filename>
            <type>text/plain</type>
            <size>8959</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ODQzZWM3M2Y4ODVlZGU4YjU5ODlmMTJmOGNmMmQxMTViN2IyODRkYQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDYwYWI2ZmIu
LjUxMWNiZjkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRU
b29scy9DaGFuZ2VMb2cKQEAgLTIsNiArMiwxOSBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIExldCBsYW5kLXBhdGNoZXMgdGFrZSBtdWx0aXBsZSBi
dWcgaWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NjcwMworCisgICAgICAgIEkgYWxzbyByZXN0cnVjdHVyZWQgcGFydHMgb2YgbGFuZC1wYXRjaGVz
IGludG8KKyAgICAgICAgY2xhc3MgbWV0aG9kcyBhbmQgc3RhdGljIG1ldGhvZHMgaW4gcHJlcGFy
YXRpb24KKyAgICAgICAgZm9yIGZ1dHVyZSBjb2RlIHNoYXJpbmcgd2l0aCBvdGhlciBjb21tYW5k
cy4KKworICAgICAgICAqIFNjcmlwdHMvYnVnemlsbGEtdG9vbDoKKworMjAwOS0wNi0yNCAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKICAgICAgICAgU3VwcG9ydCBsb2NhbCBjb21taXRzIGR1cmluZyBhcHBseS1w
YXRjaGVzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NjcwMwogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL2J1Z3ppbGxhLXRvb2wgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL2J1Z3ppbGxhLXRvb2wKaW5kZXggYmVjY2IzOS4uNWEwZTNmYiAx
MDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWd6aWxsYS10b29sCisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvYnVnemlsbGEtdG9vbApAQCAtNDcsNiArNDcsMjIgQEAgZGVmIGVycm9y
KHN0cmluZyk6CiAgICAgbG9nKHN0cmluZykKICAgICBleGl0KDEpCiAKKyMgcGx1cmFsKCkgaXMg
dGFrZW4gZnJvbSBodHRwOi8vcHl0aG9uLmRldmVsb3BwZXouY29tL2NvdXJzL0RpdmVJbnRvUHl0
aG9uL3BocC9lbmRpdmVpbnRvcHl0aG9uL2R5bmFtaWNfZnVuY3Rpb25zL3N0YWdlMS5waHAKK2Rl
ZiBwbHVyYWwobm91bik6CisgICAgaWYgcmUuc2VhcmNoKCdbc3h6XSQnLCBub3VuKToKKyAgICAg
ICAgcmV0dXJuIHJlLnN1YignJCcsICdlcycsIG5vdW4pCisgICAgZWxpZiByZS5zZWFyY2goJ1te
YWVpb3VkZ2twcnRdaCQnLCBub3VuKToKKyAgICAgICAgcmV0dXJuIHJlLnN1YignJCcsICdlcycs
IG5vdW4pCisgICAgZWxpZiByZS5zZWFyY2goJ1teYWVpb3VdeSQnLCBub3VuKToKKyAgICAgICAg
cmV0dXJuIHJlLnN1YigneSQnLCAnaWVzJywgbm91bikKKyAgICBlbHNlOgorICAgICAgICByZXR1
cm4gbm91biArICdzJworCitkZWYgcGx1cmFsaXplKG5vdW4sIGNvdW50KToKKyAgICBpZiBub3Qg
Y291bnQgb3IgY291bnQgPiAxOgorICAgICAgICBub3VuID0gcGx1cmFsKG5vdW4pCisgICAgcmV0
dXJuICIlZCAlcyIgJSAoY291bnQsIG5vdW4pCisKICMgVGhlc2UgY291bGQgYmUgcHV0IGluIHNv
bWUgc29ydCBvZiBjaGFuZ2Vsb2dzLnB5LgogZGVmIGxhdGVzdF9jaGFuZ2Vsb2dfZW50cnkoY2hh
bmdlbG9nX3BhdGgpOgogICAgICMgZS5nLiAyMDA5LTA2LTAzICBFcmljIFNlaWRlbCAgPGVyaWNA
d2Via2l0Lm9yZz4KQEAgLTE2Miw2ICsxNzgsMTMgQEAgY2xhc3MgQXBwbHlQYXRjaGVzRnJvbUJ1
ZyhDb21tYW5kKToKICAgICAgICAgXQogICAgICAgICBDb21tYW5kLl9faW5pdF9fKHNlbGYsICdB
cHBsaWVzIGFsbCBwYXRjaGVzIG9uIGEgYnVnIHRvIHRoZSBsb2NhbCB3b3JraW5nIGRpcmVjdG9y
eSB3aXRob3V0IGNvbW1pdHRpbmcuJywgJ0JVR0lEJywgb3B0aW9ucz1vcHRpb25zKQogCisgICAg
QHN0YXRpY21ldGhvZAorICAgIGRlZiBhcHBseV9wYXRjaGVzKHBhdGNoZXMsIHNjbSwgY29tbWl0
X2VhY2gpOgorICAgICAgICBmb3IgcGF0Y2ggaW4gcGF0Y2hlczoKKyAgICAgICAgICAgIHNjbS5h
cHBseV9wYXRjaChwYXRjaCkKKyAgICAgICAgICAgIGlmIGNvbW1pdF9lYWNoOgorICAgICAgICAg
ICAgICAgIHNjbS5jb21taXRfbG9jYWxseV93aXRoX21lc3NhZ2UocGF0Y2hbJ25hbWUnXSkKKwog
ICAgIGRlZiBleGVjdXRlKHNlbGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgogICAgICAgICBidWdf
aWQgPSBhcmdzWzBdCiAgICAgICAgIHBhdGNoZXMgPSB0b29sLmJ1Z3MuZmV0Y2hfcmV2aWV3ZWRf
cGF0Y2hlc19mcm9tX2J1ZyhidWdfaWQpCkBAIC0xNzQsMTEgKzE5Nyw3IEBAIGNsYXNzIEFwcGx5
UGF0Y2hlc0Zyb21CdWcoQ29tbWFuZCk6CiAgICAgICAgIGlmIG9wdGlvbnMubG9jYWxfY29tbWl0
IGFuZCBub3QgdG9vbC5zY20oKS5zdXBwb3J0c19sb2NhbF9jb21taXRzKCk6CiAgICAgICAgICAg
ICBlcnJvcigiLS1sb2NhbC1jb21taXQgcGFzc2VkLCBidXQgJXMgZG9lcyBub3Qgc3VwcG9ydCBs
b2NhbCBjb21taXRzIiAlIHRvb2wuc2NtKCkuZGlzcGxheV9uYW1lKCkpCiAgICAgICAgIAotICAg
ICAgICBmb3IgcGF0Y2ggaW4gcGF0Y2hlczoKLSAgICAgICAgICAgIHRvb2wuc2NtKCkuYXBwbHlf
cGF0Y2gocGF0Y2gpCi0gICAgICAgICAgICBpZiBvcHRpb25zLmxvY2FsX2NvbW1pdDoKLSAgICAg
ICAgICAgICAgICB0b29sLnNjbSgpLmNvbW1pdF9sb2NhbGx5X3dpdGhfbWVzc2FnZShwYXRjaFsn
bmFtZSddKQotCisgICAgICAgIHNlbGYuYXBwbHlfcGF0Y2hlcyhwYXRjaGVzLCB0b29sLnNjbSgp
LCBvcHRpb25zLmxvY2FsX2NvbW1pdCkKIAogZGVmIGJ1Z19jb21tZW50X2Zyb21fY29tbWl0X3Rl
eHQoY29tbWl0X3RleHQpOgogICAgIGNvbW1lbnRfbGluZXMgPSBbXQpAQCAtMjA2LDcgKzIyNSw3
IEBAIGNsYXNzIExhbmRBbmRVcGRhdGVCdWcoQ29tbWFuZCk6CiAgICAgICAgIHRvb2wuYnVncy5j
bG9zZV9idWdfYXNfZml4ZWQoYnVnX2lkLCBjb21tZW50X3RleHQpCiAKIAotY2xhc3MgTGFuZFBh
dGNoZXNGcm9tQnVnKENvbW1hbmQpOgorY2xhc3MgTGFuZFBhdGNoZXNGcm9tQnVncyhDb21tYW5k
KToKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIG9wdGlvbnMgPSBbCiAgICAgICAg
ICAgICBtYWtlX29wdGlvbigiLS1uby11cGRhdGUiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVz
dD0idXBkYXRlIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEb24ndCB1cGRhdGUgdGhlIHdvcmtpbmcg
ZGlyZWN0b3J5IGJlZm9yZSBhcHBseWluZyBwYXRjaGVzIiksCkBAIC0yMjIsMzcgKzI0MSw0MyBA
QCBjbGFzcyBMYW5kUGF0Y2hlc0Zyb21CdWcoQ29tbWFuZCk6CiAgICAgICAgIGJ1aWxkX3dlYmtp
dF9wcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihzY3JpcHRfbmFtZSwgc2hlbGw9VHJ1ZSkKICAg
ICAgICAgcmV0dXJuX2NvZGUgPSBidWlsZF93ZWJraXRfcHJvY2Vzcy53YWl0KCkKICAgICAgICAg
aWYgcmV0dXJuX2NvZGU6Ci0gICAgICAgICAgICByYWlzZSBTY3JpcHRFcnJvcihzY3JpcHRfbmFt
ZSArICIgZmFpbGVkIHdpdGggY29kZSAiICsgcmV0dXJuX2NvZGUpCisgICAgICAgICAgICByYWlz
ZSBTY3JpcHRFcnJvcigiJXMgZmFpbGVkIHdpdGggZXhpdCBjb2RlICVkIiAlIChzY3JpcHRfbmFt
ZSwgcmV0dXJuX2NvZGUpKQogCi0gICAgZGVmIGJ1aWxkX3dlYmtpdChzZWxmKToKLSAgICAgICAg
c2VsZi5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoImJ1aWxkLXdlYmtpdCIpCisgICAgQGNsYXNzbWV0
aG9kCisgICAgZGVmIGJ1aWxkX3dlYmtpdChjbHMpOgorICAgICAgICBjbHMucnVuX2FuZF90aHJv
d19pZl9mYWlsKCJidWlsZC13ZWJraXQiKQogCi0gICAgZGVmIHJ1bl93ZWJraXRfdGVzdHMoc2Vs
Zik6Ci0gICAgICAgIHNlbGYucnVuX2FuZF90aHJvd19pZl9mYWlsKCJydW4td2Via2l0LXRlc3Rz
IikKLQotICAgIGRlZiBleGVjdXRlKHNlbGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgotICAgICAg
ICBidWdfaWQgPSBhcmdzWzBdCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHJ1bl93ZWJraXRf
dGVzdHMoY2xzKToKKyAgICAgICAgY2xzLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbCgicnVuLXdlYmtp
dC10ZXN0cyIpCiAKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHNldHVwX2Zvcl9sYW5kaW5n
KHNjbSwgb3B0aW9ucyk6CisgICAgICAgIG9zLmNoZGlyKHNjbS5jaGVja291dF9yb290KQorICAg
ICAgICBzY20uZW5zdXJlX25vX2xvY2FsX2NvbW1pdHMob3B0aW9ucy5mb3JjZV9jbGVhbikKKyAg
ICAgICAgaWYgb3B0aW9ucy5jbGVhbjoKKyAgICAgICAgICAgIHNjbS5lbnN1cmVfY2xlYW5fd29y
a2luZ19kaXJlY3Rvcnkob3B0aW9ucy5mb3JjZV9jbGVhbikKKyAgICAgICAgaWYgb3B0aW9ucy51
cGRhdGU6CisgICAgICAgICAgICBzY20udXBkYXRlX3dlYmtpdCgpCisKKyAgICBAY2xhc3NtZXRo
b2QKKyAgICBkZWYgYnVpbGRfYW5kX2NvbW1pdChjbHMsIHNjbSwgb3B0aW9ucyk6CisgICAgICAg
IGlmIG9wdGlvbnMuYnVpbGQ6CisgICAgICAgICAgICBjbHMuYnVpbGRfd2Via2l0KCkKKyAgICAg
ICAgICAgIGlmIG9wdGlvbnMudGVzdDoKKyAgICAgICAgICAgICAgICBjbHMucnVuX3dlYmtpdF90
ZXN0cygpCisgICAgICAgIGNvbW1pdF9tZXNzYWdlID0gY29tbWl0X21lc3NhZ2VfZm9yX3RoaXNf
Y29tbWl0KHNjbSkKKyAgICAgICAgY29tbWl0X2xvZyA9IHNjbS5jb21taXRfd2l0aF9tZXNzYWdl
KGNvbW1pdF9tZXNzYWdlKQorICAgICAgICByZXR1cm4gYnVnX2NvbW1lbnRfZnJvbV9jb21taXRf
dGV4dChjb21taXRfbG9nKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGxhbmRfcGF0Y2hl
cyhjbHMsIGJ1Z19pZCwgcGF0Y2hlcywgb3B0aW9ucywgdG9vbCk6CiAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHBhdGNoZXMgPSB0b29sLmJ1Z3MuZmV0Y2hfcmV2aWV3ZWRfcGF0Y2hlc19mcm9t
X2J1ZyhidWdfaWQpCiAgICAgICAgICAgICBjb21tZW50X3RleHQgPSAiIgotCi0gICAgICAgICAg
ICBvcy5jaGRpcih0b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCi0gICAgICAgICAgICB0b29sLnNj
bSgpLmVuc3VyZV9ub19sb2NhbF9jb21taXRzKG9wdGlvbnMuZm9yY2VfY2xlYW4pCi0gICAgICAg
ICAgICBpZiBvcHRpb25zLmNsZWFuOgotICAgICAgICAgICAgICAgIHRvb2wuc2NtKCkuZW5zdXJl
X2NsZWFuX3dvcmtpbmdfZGlyZWN0b3J5KG9wdGlvbnMuZm9yY2VfY2xlYW4pCi0gICAgICAgICAg
ICBpZiBvcHRpb25zLnVwZGF0ZToKLSAgICAgICAgICAgICAgICB0b29sLnNjbSgpLnVwZGF0ZV93
ZWJraXQoKQotICAgICAgICAgICAgCiAgICAgICAgICAgICBmb3IgcGF0Y2ggaW4gcGF0Y2hlczoK
ICAgICAgICAgICAgICAgICB0b29sLnNjbSgpLmFwcGx5X3BhdGNoKHBhdGNoKQotICAgICAgICAg
ICAgICAgIGlmIG9wdGlvbnMuYnVpbGQ6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuYnVpbGRf
d2Via2l0KCkKLSAgICAgICAgICAgICAgICAgICAgaWYgb3B0aW9ucy50ZXN0OgotICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5ydW5fd2Via2l0X3Rlc3RzKCkKLSAgICAgICAgICAgICAgICBj
b21taXRfbWVzc2FnZSA9IGNvbW1pdF9tZXNzYWdlX2Zvcl90aGlzX2NvbW1pdCh0b29sLnNjbSgp
KQotICAgICAgICAgICAgICAgIGNvbW1pdF9sb2cgPSB0b29sLnNjbSgpLmNvbW1pdF93aXRoX21l
c3NhZ2UoY29tbWl0X21lc3NhZ2UpCi0gICAgICAgICAgICAgICAgY29tbWVudF90ZXh0ID0gYnVn
X2NvbW1lbnRfZnJvbV9jb21taXRfdGV4dChjb21taXRfbG9nKQorICAgICAgICAgICAgICAgIGNv
bW1lbnRfdGV4dCA9IGNscy5idWlsZF9hbmRfY29tbWl0KHRvb2wuc2NtKCksIG9wdGlvbnMpCisK
ICAgICAgICAgICAgICAgICAjIElmIHdlJ3JlIGNvbW1pdGluZyBtb3JlIHRoYW4gb25lIHBhdGNo
LCB1cGRhdGUgdGhlIGJ1ZyBhcyB3ZSBnby4KICAgICAgICAgICAgICAgICBpZiBsZW4ocGF0Y2hl
cykgPiAxOgogICAgICAgICAgICAgICAgICAgICB0b29sLmJ1Z3Mub2Jzb2xldGVfYXR0YWNobWVu
dChwYXRjaFsnaWQnXSwgY29tbWVudF90ZXh0KQpAQCAtMjYxLDEwICsyODYsMzEgQEAgY2xhc3Mg
TGFuZFBhdGNoZXNGcm9tQnVnKENvbW1hbmQpOgogICAgICAgICAgICAgICAgIGNvbW1lbnRfdGV4
dCA9ICJBbGwgcmV2aWV3ZWQgcGF0Y2hlcyBsYW5kZWQsIGNsb3NpbmcuIgogCiAgICAgICAgICAg
ICB0b29sLmJ1Z3MuY2xvc2VfYnVnX2FzX2ZpeGVkKGJ1Z19pZCwgY29tbWVudF90ZXh0KQotICAg
ICAgICBleGNlcHQgU2NyaXB0RXJyb3IsIGVycm9yOgotICAgICAgICAgICAgbG9nKGVycm9yKQot
ICAgICAgICAgICAgIyBXZSBjb3VsZCBhZGQgYSBjb21tZW50IHRvIHRoZSBidWcgYWJvdXQgdGhl
IGZhaWx1cmUuCisgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJvciwgZToKKyAgICAgICAgICAgICMg
V2Ugc2hvdWxkIGFkZCBhIGNvbW1lbnQgdG8gdGhlIGJ1ZywgYW5kIHItIHRoZSBwYXRjaCBvbiBm
YWlsdXJlCisgICAgICAgICAgICBlcnJvcihlKQorCisgICAgZGVmIGV4ZWN1dGUoc2VsZiwgb3B0
aW9ucywgYXJncywgdG9vbCk6CisgICAgICAgIGJ1Z3NfYW5kX3BhdGNoZXMgPSBbXQorICAgICAg
ICBpZiBub3QgbGVuKGFyZ3MpOgorICAgICAgICAgICAgZXJyb3IoImJ1Zy1pZChzKSByZXF1aXJl
ZCIpCisKKyAgICAgICAgcGF0Y2hfY291bnQgPSAwCisgICAgICAgIGZvciBidWdfaWQgaW4gYXJn
czoKKyAgICAgICAgICAgIHBhdGNoZXMgPSB0b29sLmJ1Z3MuZmV0Y2hfcmV2aWV3ZWRfcGF0Y2hl
c19mcm9tX2J1ZyhidWdfaWQpCisgICAgICAgICAgICBpZiBub3QgbGVuKHBhdGNoZXMpOgorICAg
ICAgICAgICAgICAgIGV4aXQoIk5vIHJldmlld2VkIHBhdGNoZXMgZm91bmQgb24gJXMiICUgYnVn
X2lkKQorICAgICAgICAgICAgcGF0Y2hfY291bnQgKz0gbGVuKHBhdGNoZXMpCisgICAgICAgICAg
ICBidWdzX2FuZF9wYXRjaGVzLmFwcGVuZChbYnVnX2lkLCBwYXRjaGVzXSkKKworICAgICAgICBs
b2coIkxhbmRpbmcgJXMgZnJvbSAlcy4iICUgKHBsdXJhbGl6ZSgicGF0Y2giLCBwYXRjaF9jb3Vu
dCksIHBsdXJhbGl6ZSgiYnVnIiwgbGVuKGJ1Z3NfYW5kX3BhdGNoZXMpKSkpCisgICAgICAgIAor
ICAgICAgICBzZWxmLnNldHVwX2Zvcl9sYW5kaW5nKHRvb2wuc2NtKCksIG9wdGlvbnMpCiAKKyAg
ICAgICAgZm9yIGJ1Z19hbmRfcGF0Y2hlcyBpbiBidWdzX2FuZF9wYXRjaGVzOgorICAgICAgICAg
ICAgYnVnX2lkID0gYnVnX2FuZF9wYXRjaGVzWzBdCisgICAgICAgICAgICBwYXRjaGVzID0gYnVn
X2FuZF9wYXRjaGVzWzFdCisgICAgICAgICAgICBzZWxmLmxhbmRfcGF0Y2hlcyhidWdfaWQsIHBh
dGNoZXMsIG9wdGlvbnMsIHRvb2wpCiAKIGNsYXNzIENvbW1pdE1lc3NhZ2VGb3JDdXJyZW50RGlm
ZihDb21tYW5kKToKICAgICBkZWYgX19pbml0X18oc2VsZik6CkBAIC0zMjIsMTEgKzM2OCwxMSBA
QCBjbGFzcyBQb3N0Q29tbWl0c0FzUGF0Y2hlc1RvQnVnKENvbW1hbmQpOgogICAgICAgICBjb21t
aXRfaWRzID0gdG9vbC5zY20oKS5jb21taXRfaWRzX2Zyb21fcmFuZ2VfYXJndW1lbnRzKGFyZ3Nb
MTpdKQogICAgICAgICAKICAgICAgICAgaWYgbGVuKGNvbW1pdF9pZHMpID4gMTA6Ci0gICAgICAg
ICAgICBsb2coIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBhdHRhY2ggJWQgcGF0Y2hlcyB0byBi
dWcgJXM/IiAlIChsZW4oY29tbWl0X2lkcyksIGJ1Z19pZCkpCisgICAgICAgICAgICBsb2coIkFy
ZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBhdHRhY2ggJXMgdG8gYnVnICVzPyIgJSAocGx1cmFsaXpl
KCdwYXRjaCcsIGxlbihjb21taXRfaWRzKSksIGJ1Z19pZCkpCiAgICAgICAgICAgICAjIENvdWxk
IGFkZCBhIC0tcGF0Y2hlcy1saW1pdCBvcHRpb24uCiAgICAgICAgICAgICBleGl0KDEpCiAgICAg
ICAgIAotICAgICAgICBsb2coIkF0dGFjaGluZyAlZCBjb21taXRzIGFzIHBhdGNoZXMgdG8gYnVn
ICVzIiAlIChsZW4oY29tbWl0X2lkcyksIGJ1Z19pZCkpCisgICAgICAgIGxvZygiQXR0YWNoaW5n
ICVzIGFzIHBhdGNoZXMgdG8gYnVnICVzIiAlIChwbHVyYWxpemUoJ2NvbW1pdCcsIGxlbihjb21t
aXRfaWRzKSksIGJ1Z19pZCkpCiAgICAgICAgIGZvciBjb21taXRfaWQgaW4gY29tbWl0X2lkczoK
ICAgICAgICAgICAgIGNvbW1pdF9tZXNzYWdlID0gdG9vbC5zY20oKS5jb21taXRfbWVzc2FnZV9m
b3JfY29tbWl0KGNvbW1pdF9pZCkKICAgICAgICAgICAgIGNvbW1pdF9saW5lcyA9IGNvbW1pdF9t
ZXNzYWdlLnNwbGl0bGluZXMoKQpAQCAtMzYyLDcgKzQwOCw3IEBAIGNsYXNzIEJ1Z3ppbGxhVG9v
bDoKICAgICAgICAgICAgIHsgJ25hbWUnIDogJ3Jldmlld2VkLXBhdGNoZXMnLCAnb2JqZWN0JyA6
IFJldmlld2VkUGF0Y2hlc09uQnVnKCkgfSwKICAgICAgICAgICAgIHsgJ25hbWUnIDogJ2FwcGx5
LXBhdGNoZXMnLCAnb2JqZWN0JyA6IEFwcGx5UGF0Y2hlc0Zyb21CdWcoKSB9LAogICAgICAgICAg
ICAgeyAnbmFtZScgOiAnbGFuZC1hbmQtdXBkYXRlJywgJ29iamVjdCcgOiBMYW5kQW5kVXBkYXRl
QnVnKCkgfSwKLSAgICAgICAgICAgIHsgJ25hbWUnIDogJ2xhbmQtcGF0Y2hlcycsICdvYmplY3Qn
IDogTGFuZFBhdGNoZXNGcm9tQnVnKCkgfSwKKyAgICAgICAgICAgIHsgJ25hbWUnIDogJ2xhbmQt
cGF0Y2hlcycsICdvYmplY3QnIDogTGFuZFBhdGNoZXNGcm9tQnVncygpIH0sCiAgICAgICAgICAg
ICB7ICduYW1lJyA6ICdjb21taXQtbWVzc2FnZScsICdvYmplY3QnIDogQ29tbWl0TWVzc2FnZUZv
ckN1cnJlbnREaWZmKCkgfSwKICAgICAgICAgICAgIHsgJ25hbWUnIDogJ29ic29sZXRlLWF0dGFj
aG1lbnRzJywgJ29iamVjdCcgOiBPYnNvbGV0ZUF0dGFjaG1lbnRzT25CdWcoKSB9LAogICAgICAg
ICAgICAgeyAnbmFtZScgOiAncG9zdC1kaWZmJywgJ29iamVjdCcgOiBQb3N0RGlmZkFzUGF0Y2hU
b0J1ZygpIH0sCg==
</data>
<flag name="review"
          id="16405"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31827</attachid>
            <date>2009-06-24 18:47:49 -0700</date>
            <delta_ts>2009-06-24 23:42:40 -0700</delta_ts>
            <desc>Support local commits during apply-patches</desc>
            <filename>bugzilla_requires_a_filename.patch</filename>
            <type>text/plain</type>
            <size>4510</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZTNlYzczMzc4YjgwZjQ0ZTU2ZjVkZDU0ZTFiNDI4Mjk3YmM3MzEyYwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDI4ZmM4ZTcu
LjYwYWI2ZmIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRU
b29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNiBAQAogMjAwOS0wNi0yNCAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3VwcG9ydCBsb2NhbCBjb21taXRzIGR1cmluZyBhcHBseS1wYXRjaGVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjcwMworCisg
ICAgICAgICogU2NyaXB0cy9idWd6aWxsYS10b29sOgorICAgICAgICAqIFNjcmlwdHMvbW9kdWxl
cy9idWd6aWxsYS5weToKKyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvc2NtLnB5OgorCisyMDA5
LTA2LTI0ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdl
ZCBieSBNYWNpZWogU3RhY2hvd2lhay4KICAgICAgICAgCiAgICAgICAgIFNwZWxsIE1hY2llaidz
IG5hbWUgcmlnaHQgYW5kIGFkZCBCcmFkeSBFaWRzb24uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL2J1Z3ppbGxhLXRvb2wgYi9XZWJLaXRUb29scy9TY3JpcHRzL2J1Z3ppbGxhLXRv
b2wKaW5kZXggYTA1YWRlNC4uYmVjY2IzOSAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy9idWd6aWxsYS10b29sCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvYnVnemlsbGEtdG9vbApA
QCAtMTU4LDYgKzE1OCw3IEBAIGNsYXNzIEFwcGx5UGF0Y2hlc0Zyb21CdWcoQ29tbWFuZCk6CiAg
ICAgICAgICAgICBtYWtlX29wdGlvbigiLS1uby11cGRhdGUiLCBhY3Rpb249InN0b3JlX2ZhbHNl
IiwgZGVzdD0idXBkYXRlIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEb24ndCB1cGRhdGUgdGhlIHdv
cmtpbmcgZGlyZWN0b3J5IGJlZm9yZSBhcHBseWluZyBwYXRjaGVzIiksCiAgICAgICAgICAgICBt
YWtlX29wdGlvbigiLS1mb3JjZS1jbGVhbiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImZv
cmNlX2NsZWFuIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iQ2xlYW4gd29ya2luZyBkaXJlY3Rvcnkg
YmVmb3JlIGFwcGx5aW5nIHBhdGNoZXMgKHJlbW92ZXMgbG9jYWwgY2hhbmdlcyBhbmQgY29tbWl0
cykiKSwKICAgICAgICAgICAgIG1ha2Vfb3B0aW9uKCItLW5vLWNsZWFuIiwgYWN0aW9uPSJzdG9y
ZV9mYWxzZSIsIGRlc3Q9ImNsZWFuIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEb24ndCBjaGVjayBp
ZiB0aGUgd29ya2luZyBkaXJlY3RvcnkgaXMgY2xlYW4gYmVmb3JlIGFwcGx5aW5nIHBhdGNoZXMi
KSwKKyAgICAgICAgICAgIG1ha2Vfb3B0aW9uKCItLWxvY2FsLWNvbW1pdCIsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsIGRlc3Q9ImxvY2FsX2NvbW1pdCIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik1ha2Ug
YSBsb2NhbCBjb21taXQgZm9yIGVhY2ggYXBwbGllZCBwYXRjaCIpLAogICAgICAgICBdCiAgICAg
ICAgIENvbW1hbmQuX19pbml0X18oc2VsZiwgJ0FwcGxpZXMgYWxsIHBhdGNoZXMgb24gYSBidWcg
dG8gdGhlIGxvY2FsIHdvcmtpbmcgZGlyZWN0b3J5IHdpdGhvdXQgY29tbWl0dGluZy4nLCAnQlVH
SUQnLCBvcHRpb25zPW9wdGlvbnMpCiAKQEAgLTE3MCw5ICsxNzEsMTMgQEAgY2xhc3MgQXBwbHlQ
YXRjaGVzRnJvbUJ1ZyhDb21tYW5kKToKICAgICAgICAgaWYgb3B0aW9ucy51cGRhdGU6CiAgICAg
ICAgICAgICB0b29sLnNjbSgpLnVwZGF0ZV93ZWJraXQoKQogICAgICAgICAKKyAgICAgICAgaWYg
b3B0aW9ucy5sb2NhbF9jb21taXQgYW5kIG5vdCB0b29sLnNjbSgpLnN1cHBvcnRzX2xvY2FsX2Nv
bW1pdHMoKToKKyAgICAgICAgICAgIGVycm9yKCItLWxvY2FsLWNvbW1pdCBwYXNzZWQsIGJ1dCAl
cyBkb2VzIG5vdCBzdXBwb3J0IGxvY2FsIGNvbW1pdHMiICUgdG9vbC5zY20oKS5kaXNwbGF5X25h
bWUoKSkKKyAgICAgICAgCiAgICAgICAgIGZvciBwYXRjaCBpbiBwYXRjaGVzOgotICAgICAgICAg
ICAgIyBGSVhNRTogU2hvdWxkIGhhdmUgYW4gb3B0aW9uIHRvIGxvY2FsLWNvbW1pdCBlYWNoIHBh
dGNoIGFmdGVyIGFwcGxpY2F0aW9uLgogICAgICAgICAgICAgdG9vbC5zY20oKS5hcHBseV9wYXRj
aChwYXRjaCkKKyAgICAgICAgICAgIGlmIG9wdGlvbnMubG9jYWxfY29tbWl0OgorICAgICAgICAg
ICAgICAgIHRvb2wuc2NtKCkuY29tbWl0X2xvY2FsbHlfd2l0aF9tZXNzYWdlKHBhdGNoWyduYW1l
J10pCiAKIAogZGVmIGJ1Z19jb21tZW50X2Zyb21fY29tbWl0X3RleHQoY29tbWl0X3RleHQpOgpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2J1Z3ppbGxhLnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2J1Z3ppbGxhLnB5CmluZGV4IGQ0ZTViN2MuLjBhZjY0
YmUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9idWd6aWxsYS5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvYnVnemlsbGEucHkKQEAgLTE0NCw3ICsx
NDQsNyBAQCBjbGFzcyBCdWd6aWxsYToKICAgICAgICAgICAgIGF0dGFjaG1lbnRfbGluayA9IGNl
bGxzWzBdLmZpbmQoJ2EnKQogICAgICAgICAgICAgYXR0YWNobWVudFsndXJsJ10gPSBzZWxmLmJ1
Z19zZXJ2ZXIgKyBhdHRhY2htZW50X2xpbmtbJ2hyZWYnXSAjIHVybHMgYXJlIHJlbGF0aXZlCiAg
ICAgICAgICAgICBhdHRhY2htZW50WydpZCddID0gYXR0YWNobWVudFsndXJsJ10uc3BsaXQoJz0n
KVsxXSAjIGUuZy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9MzEy
MjMKLSAgICAgICAgICAgIGF0dGFjaG1lbnRbJ25hbWUnXSA9IGF0dGFjaG1lbnRfbGluay5zdHJp
bmcKKyAgICAgICAgICAgIGF0dGFjaG1lbnRbJ25hbWUnXSA9IHN0cihhdHRhY2htZW50X2xpbmsu
c3RyaW5nKSAjIHcvbyBzdHIgaXQgcmV0dXJucyBzb21lIHNvcnQgb2Ygbm9uLXN0cmluZyBvYmpl
Y3QKICAgICAgICAgICAgICMgYXR0YWNobWVudFsndHlwZSddID0gY2VsbHNbMV0KICAgICAgICAg
ICAgICMgYXR0YWNobWVudFsnZGF0ZSddID0gY2VsbHNbMl0KICAgICAgICAgICAgICMgYXR0YWNo
bWVudFsnc2l6ZSddID0gY2VsbHNbM10KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
bW9kdWxlcy9zY20ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvc2NtLnB5CmluZGV4
IGUyMjY5NjIuLjdjOTU5M2YgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxl
cy9zY20ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3NjbS5weQpAQCAtNjUs
MTQgKzY1LDE0IEBAIGNsYXNzIFNDTToKICAgICAgICAgb3V0cHV0ID0gcHJvY2Vzcy5jb21tdW5p
Y2F0ZShpbnB1dClbMF0ucnN0cmlwKCkKICAgICAgICAgZXhpdF9jb2RlID0gcHJvY2Vzcy53YWl0
KCkKICAgICAgICAgaWYgcmFpc2Vfb25fZmFpbHVyZSBhbmQgZXhpdF9jb2RlOgotICAgICAgICAg
ICAgcmFpc2UgU2NyaXB0RXJyb3IoIkZhaWxlZCB0byBydW4gIiArIGNvbW1hbmQpCisgICAgICAg
ICAgICByYWlzZSBTY3JpcHRFcnJvcigiRmFpbGVkIHRvIHJ1biBcIiVzXCIgIGV4aXRfY29kZTog
JWQgIGN3ZDogJXMiICUgKGNvbW1hbmQsIGV4aXRfY29kZSwgY3dkKSkKICAgICAgICAgaWYgcmV0
dXJuX2V4aXRfY29kZToKICAgICAgICAgICAgIHJldHVybiBleGl0X2NvZGUKICAgICAgICAgcmV0
dXJuIG91dHB1dAogCiAgICAgZGVmIGVuc3VyZV9jbGVhbl93b3JraW5nX2RpcmVjdG9yeShzZWxm
LCBmb3JjZSk6CiAgICAgICAgIGlmIG5vdCBmb3JjZSBhbmQgbm90IHNlbGYud29ya2luZ19kaXJl
Y3RvcnlfaXNfY2xlYW4oKToKLSAgICAgICAgICAgIHByaW50IHNlbGYucnVuX2NvbW1hbmQoc2Vs
Zi5zdGF0dXNfY29tbWFuZCgpKQorICAgICAgICAgICAgcHJpbnQgc2VsZi5ydW5fY29tbWFuZChz
ZWxmLnN0YXR1c19jb21tYW5kKCksIHJhaXNlX29uX2ZhaWx1cmU9RmFsc2UpCiAgICAgICAgICAg
ICBlcnJvcigiV29ya2luZyBkaXJlY3RvcnkgaGFzIG1vZGlmaWNhdGlvbnMsIHBhc3MgLS1mb3Jj
ZS1jbGVhbiBvciAtLW5vLWNsZWFuIHRvIGNvbnRpbnVlLiIpCiAgICAgICAgIAogICAgICAgICBs
b2coIkNsZWFuaW5nIHdvcmtpbmcgZGlyZWN0b3J5IikKQEAgLTE0Myw2ICsxNDMsOSBAQCBjbGFz
cyBTQ006CiAgICAgZGVmIHN1cHBvcnRzX2xvY2FsX2NvbW1pdHMoc2VsZik6CiAgICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IsICJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IgogCisg
ICAgZGVmIGNvbW1pdF9sb2NhbGx5X3dpdGhfbWVzc2FnZShzZWxmLCBtZXNzYWdlKToKKyAgICAg
ICAgcGFzcworCiAgICAgZGVmIGRpc2NhcmRfbG9jYWxfY29tbWl0cyhzZWxmKToKICAgICAgICAg
cGFzcwogCg==
</data>
<flag name="review"
          id="16406"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31832</attachid>
            <date>2009-06-24 23:42:22 -0700</date>
            <delta_ts>2009-06-24 23:48:49 -0700</delta_ts>
            <desc>Patch updated and combined after David&apos;s review</desc>
            <filename>bugzilla_requires_a_filename.patch</filename>
            <type>text/plain</type>
            <size>11615</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">YWI1ZWFmNzYwMGQ3MWU1MTZmYTFkN2I0MzNiZTY0ODBmMzYwOWMxNgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDFjZGJjZDcu
LjQxZTM0ODggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRU
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAwOS0wNi0yNCAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU3VwcG9ydCBsb2NhbCBjb21taXRzIGR1cmluZyBhcHBseS1wYXRjaGVzCisg
ICAgICAgIGFuZCBsZXQgbGFuZC1wYXRjaGVzIHRha2UgbXVsdGlwbGUgYnVnIGlkcy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2NzAzCisKKyAgICAg
ICAgSSBhbHNvIHJlc3RydWN0dXJlZCBwYXJ0cyBvZiBsYW5kLXBhdGNoZXMgaW50bworICAgICAg
ICBjbGFzcyBtZXRob2RzIGFuZCBzdGF0aWMgbWV0aG9kcyBpbiBwcmVwYXJhdGlvbgorICAgICAg
ICBmb3IgZnV0dXJlIGNvZGUgc2hhcmluZyB3aXRoIG90aGVyIGNvbW1hbmRzLgorCisgICAgICAg
ICogU2NyaXB0cy9idWd6aWxsYS10b29sOgorICAgICAgICAqIFNjcmlwdHMvbW9kdWxlcy9idWd6
aWxsYS5weToKKyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvc2NtLnB5OgorCiAyMDA5LTA2LTI0
ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgV2luZG93
cyBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL2J1Z3ppbGxhLXRv
b2wgYi9XZWJLaXRUb29scy9TY3JpcHRzL2J1Z3ppbGxhLXRvb2wKaW5kZXggYTA1YWRlNC4uNzE4
NzVmMiAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWd6aWxsYS10b29sCisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvYnVnemlsbGEtdG9vbApAQCAtNDcsNiArNDcsMTggQEAgZGVm
IGVycm9yKHN0cmluZyk6CiAgICAgbG9nKHN0cmluZykKICAgICBleGl0KDEpCiAKK2RlZiBwbHVy
YWwobm91bik6CisgICAgIyBUaGlzIGlzIGEgZHVtYiBwbHVyYWwoKSBpbXBsZW1lbnRhdGlvbiB3
aGljaCB3YXMganVzdCBlbm91Z2ggZm9yIG91ciB1c2VzLgorICAgIGlmIHJlLnNlYXJjaCgnaCQn
LCBub3VuKToKKyAgICAgICAgcmV0dXJuIG5vdW4gKyAnZXMnCisgICAgZWxzZToKKyAgICAgICAg
cmV0dXJuIG5vdW4gKyAncycKKworZGVmIHBsdXJhbGl6ZShub3VuLCBjb3VudCk6CisgICAgaWYg
bm90IGNvdW50IG9yIGNvdW50ID4gMToKKyAgICAgICAgbm91biA9IHBsdXJhbChub3VuKQorICAg
IHJldHVybiAiJWQgJXMiICUgKGNvdW50LCBub3VuKQorCiAjIFRoZXNlIGNvdWxkIGJlIHB1dCBp
biBzb21lIHNvcnQgb2YgY2hhbmdlbG9ncy5weS4KIGRlZiBsYXRlc3RfY2hhbmdlbG9nX2VudHJ5
KGNoYW5nZWxvZ19wYXRoKToKICAgICAjIGUuZy4gMjAwOS0wNi0wMyAgRXJpYyBTZWlkZWwgIDxl
cmljQHdlYmtpdC5vcmc+CkBAIC0xNTgsOSArMTcwLDE4IEBAIGNsYXNzIEFwcGx5UGF0Y2hlc0Zy
b21CdWcoQ29tbWFuZCk6CiAgICAgICAgICAgICBtYWtlX29wdGlvbigiLS1uby11cGRhdGUiLCBh
Y3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0idXBkYXRlIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJE
b24ndCB1cGRhdGUgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IGJlZm9yZSBhcHBseWluZyBwYXRjaGVz
IiksCiAgICAgICAgICAgICBtYWtlX29wdGlvbigiLS1mb3JjZS1jbGVhbiIsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsIGRlc3Q9ImZvcmNlX2NsZWFuIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iQ2xlYW4g
d29ya2luZyBkaXJlY3RvcnkgYmVmb3JlIGFwcGx5aW5nIHBhdGNoZXMgKHJlbW92ZXMgbG9jYWwg
Y2hhbmdlcyBhbmQgY29tbWl0cykiKSwKICAgICAgICAgICAgIG1ha2Vfb3B0aW9uKCItLW5vLWNs
ZWFuIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9ImNsZWFuIiwgZGVmYXVsdD1UcnVlLCBo
ZWxwPSJEb24ndCBjaGVjayBpZiB0aGUgd29ya2luZyBkaXJlY3RvcnkgaXMgY2xlYW4gYmVmb3Jl
IGFwcGx5aW5nIHBhdGNoZXMiKSwKKyAgICAgICAgICAgIG1ha2Vfb3B0aW9uKCItLWxvY2FsLWNv
bW1pdCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImxvY2FsX2NvbW1pdCIsIGRlZmF1bHQ9
RmFsc2UsIGhlbHA9Ik1ha2UgYSBsb2NhbCBjb21taXQgZm9yIGVhY2ggYXBwbGllZCBwYXRjaCIp
LAogICAgICAgICBdCiAgICAgICAgIENvbW1hbmQuX19pbml0X18oc2VsZiwgJ0FwcGxpZXMgYWxs
IHBhdGNoZXMgb24gYSBidWcgdG8gdGhlIGxvY2FsIHdvcmtpbmcgZGlyZWN0b3J5IHdpdGhvdXQg
Y29tbWl0dGluZy4nLCAnQlVHSUQnLCBvcHRpb25zPW9wdGlvbnMpCiAKKyAgICBAc3RhdGljbWV0
aG9kCisgICAgZGVmIGFwcGx5X3BhdGNoZXMocGF0Y2hlcywgc2NtLCBjb21taXRfZWFjaCk6Cisg
ICAgICAgIGZvciBwYXRjaCBpbiBwYXRjaGVzOgorICAgICAgICAgICAgc2NtLmFwcGx5X3BhdGNo
KHBhdGNoKQorICAgICAgICAgICAgaWYgY29tbWl0X2VhY2g6CisgICAgICAgICAgICAgICAgY29t
bWl0X21lc3NhZ2UgPSBjb21taXRfbWVzc2FnZV9mb3JfdGhpc19jb21taXQoc2NtKQorICAgICAg
ICAgICAgICAgIHNjbS5jb21taXRfbG9jYWxseV93aXRoX21lc3NhZ2UoY29tbWl0X21lc3NhZ2Ug
b3IgcGF0Y2hbJ25hbWUnXSkKKwogICAgIGRlZiBleGVjdXRlKHNlbGYsIG9wdGlvbnMsIGFyZ3Ms
IHRvb2wpOgogICAgICAgICBidWdfaWQgPSBhcmdzWzBdCiAgICAgICAgIHBhdGNoZXMgPSB0b29s
LmJ1Z3MuZmV0Y2hfcmV2aWV3ZWRfcGF0Y2hlc19mcm9tX2J1ZyhidWdfaWQpCkBAIC0xNzAsMTAg
KzE5MSwxMCBAQCBjbGFzcyBBcHBseVBhdGNoZXNGcm9tQnVnKENvbW1hbmQpOgogICAgICAgICBp
ZiBvcHRpb25zLnVwZGF0ZToKICAgICAgICAgICAgIHRvb2wuc2NtKCkudXBkYXRlX3dlYmtpdCgp
CiAgICAgICAgIAotICAgICAgICBmb3IgcGF0Y2ggaW4gcGF0Y2hlczoKLSAgICAgICAgICAgICMg
RklYTUU6IFNob3VsZCBoYXZlIGFuIG9wdGlvbiB0byBsb2NhbC1jb21taXQgZWFjaCBwYXRjaCBh
ZnRlciBhcHBsaWNhdGlvbi4KLSAgICAgICAgICAgIHRvb2wuc2NtKCkuYXBwbHlfcGF0Y2gocGF0
Y2gpCi0KKyAgICAgICAgaWYgb3B0aW9ucy5sb2NhbF9jb21taXQgYW5kIG5vdCB0b29sLnNjbSgp
LnN1cHBvcnRzX2xvY2FsX2NvbW1pdHMoKToKKyAgICAgICAgICAgIGVycm9yKCItLWxvY2FsLWNv
bW1pdCBwYXNzZWQsIGJ1dCAlcyBkb2VzIG5vdCBzdXBwb3J0IGxvY2FsIGNvbW1pdHMiICUgdG9v
bC5zY20oKS5kaXNwbGF5X25hbWUoKSkKKyAgICAgICAgCisgICAgICAgIHNlbGYuYXBwbHlfcGF0
Y2hlcyhwYXRjaGVzLCB0b29sLnNjbSgpLCBvcHRpb25zLmxvY2FsX2NvbW1pdCkKIAogZGVmIGJ1
Z19jb21tZW50X2Zyb21fY29tbWl0X3RleHQoY29tbWl0X3RleHQpOgogICAgIGNvbW1lbnRfbGlu
ZXMgPSBbXQpAQCAtMjAxLDcgKzIyMiw3IEBAIGNsYXNzIExhbmRBbmRVcGRhdGVCdWcoQ29tbWFu
ZCk6CiAgICAgICAgIHRvb2wuYnVncy5jbG9zZV9idWdfYXNfZml4ZWQoYnVnX2lkLCBjb21tZW50
X3RleHQpCiAKIAotY2xhc3MgTGFuZFBhdGNoZXNGcm9tQnVnKENvbW1hbmQpOgorY2xhc3MgTGFu
ZFBhdGNoZXNGcm9tQnVncyhDb21tYW5kKToKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAg
ICAgIG9wdGlvbnMgPSBbCiAgICAgICAgICAgICBtYWtlX29wdGlvbigiLS1uby11cGRhdGUiLCBh
Y3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0idXBkYXRlIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJE
b24ndCB1cGRhdGUgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IGJlZm9yZSBhcHBseWluZyBwYXRjaGVz
IiksCkBAIC0yMTcsMzcgKzIzOCw0MyBAQCBjbGFzcyBMYW5kUGF0Y2hlc0Zyb21CdWcoQ29tbWFu
ZCk6CiAgICAgICAgIGJ1aWxkX3dlYmtpdF9wcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihzY3Jp
cHRfbmFtZSwgc2hlbGw9VHJ1ZSkKICAgICAgICAgcmV0dXJuX2NvZGUgPSBidWlsZF93ZWJraXRf
cHJvY2Vzcy53YWl0KCkKICAgICAgICAgaWYgcmV0dXJuX2NvZGU6Ci0gICAgICAgICAgICByYWlz
ZSBTY3JpcHRFcnJvcihzY3JpcHRfbmFtZSArICIgZmFpbGVkIHdpdGggY29kZSAiICsgcmV0dXJu
X2NvZGUpCi0KLSAgICBkZWYgYnVpbGRfd2Via2l0KHNlbGYpOgotICAgICAgICBzZWxmLnJ1bl9h
bmRfdGhyb3dfaWZfZmFpbCgiYnVpbGQtd2Via2l0IikKKyAgICAgICAgICAgIHJhaXNlIFNjcmlw
dEVycm9yKCIlcyBmYWlsZWQgd2l0aCBleGl0IGNvZGUgJWQiICUgKHNjcmlwdF9uYW1lLCByZXR1
cm5fY29kZSkpCiAKLSAgICBkZWYgcnVuX3dlYmtpdF90ZXN0cyhzZWxmKToKLSAgICAgICAgc2Vs
Zi5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoInJ1bi13ZWJraXQtdGVzdHMiKQorICAgIEBjbGFzc21l
dGhvZAorICAgIGRlZiBidWlsZF93ZWJraXQoY2xzKToKKyAgICAgICAgY2xzLnJ1bl9hbmRfdGhy
b3dfaWZfZmFpbCgiYnVpbGQtd2Via2l0IikKIAotICAgIGRlZiBleGVjdXRlKHNlbGYsIG9wdGlv
bnMsIGFyZ3MsIHRvb2wpOgotICAgICAgICBidWdfaWQgPSBhcmdzWzBdCisgICAgQGNsYXNzbWV0
aG9kCisgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHMoY2xzKToKKyAgICAgICAgY2xzLnJ1bl9hbmRf
dGhyb3dfaWZfZmFpbCgicnVuLXdlYmtpdC10ZXN0cyIpCiAKKyAgICBAc3RhdGljbWV0aG9kCisg
ICAgZGVmIHNldHVwX2Zvcl9sYW5kaW5nKHNjbSwgb3B0aW9ucyk6CisgICAgICAgIG9zLmNoZGly
KHNjbS5jaGVja291dF9yb290KQorICAgICAgICBzY20uZW5zdXJlX25vX2xvY2FsX2NvbW1pdHMo
b3B0aW9ucy5mb3JjZV9jbGVhbikKKyAgICAgICAgaWYgb3B0aW9ucy5jbGVhbjoKKyAgICAgICAg
ICAgIHNjbS5lbnN1cmVfY2xlYW5fd29ya2luZ19kaXJlY3Rvcnkob3B0aW9ucy5mb3JjZV9jbGVh
bikKKyAgICAgICAgaWYgb3B0aW9ucy51cGRhdGU6CisgICAgICAgICAgICBzY20udXBkYXRlX3dl
YmtpdCgpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgYnVpbGRfYW5kX2NvbW1pdChjbHMs
IHNjbSwgb3B0aW9ucyk6CisgICAgICAgIGlmIG9wdGlvbnMuYnVpbGQ6CisgICAgICAgICAgICBj
bHMuYnVpbGRfd2Via2l0KCkKKyAgICAgICAgICAgIGlmIG9wdGlvbnMudGVzdDoKKyAgICAgICAg
ICAgICAgICBjbHMucnVuX3dlYmtpdF90ZXN0cygpCisgICAgICAgIGNvbW1pdF9tZXNzYWdlID0g
Y29tbWl0X21lc3NhZ2VfZm9yX3RoaXNfY29tbWl0KHNjbSkKKyAgICAgICAgY29tbWl0X2xvZyA9
IHNjbS5jb21taXRfd2l0aF9tZXNzYWdlKGNvbW1pdF9tZXNzYWdlKQorICAgICAgICByZXR1cm4g
YnVnX2NvbW1lbnRfZnJvbV9jb21taXRfdGV4dChjb21taXRfbG9nKQorCisgICAgQGNsYXNzbWV0
aG9kCisgICAgZGVmIGxhbmRfcGF0Y2hlcyhjbHMsIGJ1Z19pZCwgcGF0Y2hlcywgb3B0aW9ucywg
dG9vbCk6CiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHBhdGNoZXMgPSB0b29sLmJ1Z3MuZmV0
Y2hfcmV2aWV3ZWRfcGF0Y2hlc19mcm9tX2J1ZyhidWdfaWQpCiAgICAgICAgICAgICBjb21tZW50
X3RleHQgPSAiIgotCi0gICAgICAgICAgICBvcy5jaGRpcih0b29sLnNjbSgpLmNoZWNrb3V0X3Jv
b3QpCi0gICAgICAgICAgICB0b29sLnNjbSgpLmVuc3VyZV9ub19sb2NhbF9jb21taXRzKG9wdGlv
bnMuZm9yY2VfY2xlYW4pCi0gICAgICAgICAgICBpZiBvcHRpb25zLmNsZWFuOgotICAgICAgICAg
ICAgICAgIHRvb2wuc2NtKCkuZW5zdXJlX2NsZWFuX3dvcmtpbmdfZGlyZWN0b3J5KG9wdGlvbnMu
Zm9yY2VfY2xlYW4pCi0gICAgICAgICAgICBpZiBvcHRpb25zLnVwZGF0ZToKLSAgICAgICAgICAg
ICAgICB0b29sLnNjbSgpLnVwZGF0ZV93ZWJraXQoKQotICAgICAgICAgICAgCiAgICAgICAgICAg
ICBmb3IgcGF0Y2ggaW4gcGF0Y2hlczoKICAgICAgICAgICAgICAgICB0b29sLnNjbSgpLmFwcGx5
X3BhdGNoKHBhdGNoKQotICAgICAgICAgICAgICAgIGlmIG9wdGlvbnMuYnVpbGQ6Ci0gICAgICAg
ICAgICAgICAgICAgIHNlbGYuYnVpbGRfd2Via2l0KCkKLSAgICAgICAgICAgICAgICAgICAgaWYg
b3B0aW9ucy50ZXN0OgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5ydW5fd2Via2l0X3Rl
c3RzKCkKLSAgICAgICAgICAgICAgICBjb21taXRfbWVzc2FnZSA9IGNvbW1pdF9tZXNzYWdlX2Zv
cl90aGlzX2NvbW1pdCh0b29sLnNjbSgpKQotICAgICAgICAgICAgICAgIGNvbW1pdF9sb2cgPSB0
b29sLnNjbSgpLmNvbW1pdF93aXRoX21lc3NhZ2UoY29tbWl0X21lc3NhZ2UpCi0gICAgICAgICAg
ICAgICAgY29tbWVudF90ZXh0ID0gYnVnX2NvbW1lbnRfZnJvbV9jb21taXRfdGV4dChjb21taXRf
bG9nKQorICAgICAgICAgICAgICAgIGNvbW1lbnRfdGV4dCA9IGNscy5idWlsZF9hbmRfY29tbWl0
KHRvb2wuc2NtKCksIG9wdGlvbnMpCisKICAgICAgICAgICAgICAgICAjIElmIHdlJ3JlIGNvbW1p
dGluZyBtb3JlIHRoYW4gb25lIHBhdGNoLCB1cGRhdGUgdGhlIGJ1ZyBhcyB3ZSBnby4KICAgICAg
ICAgICAgICAgICBpZiBsZW4ocGF0Y2hlcykgPiAxOgogICAgICAgICAgICAgICAgICAgICB0b29s
LmJ1Z3Mub2Jzb2xldGVfYXR0YWNobWVudChwYXRjaFsnaWQnXSwgY29tbWVudF90ZXh0KQpAQCAt
MjU2LDEwICsyODMsMjkgQEAgY2xhc3MgTGFuZFBhdGNoZXNGcm9tQnVnKENvbW1hbmQpOgogICAg
ICAgICAgICAgICAgIGNvbW1lbnRfdGV4dCA9ICJBbGwgcmV2aWV3ZWQgcGF0Y2hlcyBsYW5kZWQs
IGNsb3NpbmcuIgogCiAgICAgICAgICAgICB0b29sLmJ1Z3MuY2xvc2VfYnVnX2FzX2ZpeGVkKGJ1
Z19pZCwgY29tbWVudF90ZXh0KQotICAgICAgICBleGNlcHQgU2NyaXB0RXJyb3IsIGVycm9yOgot
ICAgICAgICAgICAgbG9nKGVycm9yKQotICAgICAgICAgICAgIyBXZSBjb3VsZCBhZGQgYSBjb21t
ZW50IHRvIHRoZSBidWcgYWJvdXQgdGhlIGZhaWx1cmUuCisgICAgICAgIGV4Y2VwdCBTY3JpcHRF
cnJvciwgZToKKyAgICAgICAgICAgICMgV2Ugc2hvdWxkIGFkZCBhIGNvbW1lbnQgdG8gdGhlIGJ1
ZywgYW5kIHItIHRoZSBwYXRjaCBvbiBmYWlsdXJlCisgICAgICAgICAgICBlcnJvcihlKQorCisg
ICAgZGVmIGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6CisgICAgICAgIGlmIG5v
dCBsZW4oYXJncyk6CisgICAgICAgICAgICBlcnJvcigiYnVnLWlkKHMpIHJlcXVpcmVkIikKKwor
ICAgICAgICBidWdzX3RvX3BhdGNoZXMgPSB7fQorICAgICAgICBwYXRjaF9jb3VudCA9IDAKKyAg
ICAgICAgZm9yIGJ1Z19pZCBpbiBhcmdzOgorICAgICAgICAgICAgcGF0Y2hlcyA9IHRvb2wuYnVn
cy5mZXRjaF9yZXZpZXdlZF9wYXRjaGVzX2Zyb21fYnVnKGJ1Z19pZCkKKyAgICAgICAgICAgIGlm
IG5vdCBsZW4ocGF0Y2hlcyk6CisgICAgICAgICAgICAgICAgZXhpdCgiTm8gcmV2aWV3ZWQgcGF0
Y2hlcyBmb3VuZCBvbiAlcyIgJSBidWdfaWQpCisgICAgICAgICAgICBwYXRjaF9jb3VudCArPSBs
ZW4ocGF0Y2hlcykKKyAgICAgICAgICAgIGJ1Z3NfdG9fcGF0Y2hlc1tidWdfaWRdID0gcGF0Y2hl
cworCisgICAgICAgIGxvZygiTGFuZGluZyAlcyBmcm9tICVzLiIgJSAocGx1cmFsaXplKCJwYXRj
aCIsIHBhdGNoX2NvdW50KSwgcGx1cmFsaXplKCJidWciLCBsZW4oYXJncykpKSkKKyAgICAgICAg
CisgICAgICAgIHNlbGYuc2V0dXBfZm9yX2xhbmRpbmcodG9vbC5zY20oKSwgb3B0aW9ucykKIAor
ICAgICAgICBmb3IgYnVnX2lkIGluIGFyZ3M6CisgICAgICAgICAgICBzZWxmLmxhbmRfcGF0Y2hl
cyhidWdfaWQsIGJ1Z3NfdG9fcGF0Y2hlc1tidWdfaWRdLCBvcHRpb25zLCB0b29sKQogCiBjbGFz
cyBDb21taXRNZXNzYWdlRm9yQ3VycmVudERpZmYoQ29tbWFuZCk6CiAgICAgZGVmIF9faW5pdF9f
KHNlbGYpOgpAQCAtMzE3LDExICszNjMsMTEgQEAgY2xhc3MgUG9zdENvbW1pdHNBc1BhdGNoZXNU
b0J1ZyhDb21tYW5kKToKICAgICAgICAgY29tbWl0X2lkcyA9IHRvb2wuc2NtKCkuY29tbWl0X2lk
c19mcm9tX3JhbmdlX2FyZ3VtZW50cyhhcmdzWzE6XSkKICAgICAgICAgCiAgICAgICAgIGlmIGxl
bihjb21taXRfaWRzKSA+IDEwOgotICAgICAgICAgICAgbG9nKCJBcmUgeW91IHN1cmUgeW91IHdh
bnQgdG8gYXR0YWNoICVkIHBhdGNoZXMgdG8gYnVnICVzPyIgJSAobGVuKGNvbW1pdF9pZHMpLCBi
dWdfaWQpKQorICAgICAgICAgICAgbG9nKCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gYXR0YWNo
ICVzIHRvIGJ1ZyAlcz8iICUgKHBsdXJhbGl6ZSgncGF0Y2gnLCBsZW4oY29tbWl0X2lkcykpLCBi
dWdfaWQpKQogICAgICAgICAgICAgIyBDb3VsZCBhZGQgYSAtLXBhdGNoZXMtbGltaXQgb3B0aW9u
LgogICAgICAgICAgICAgZXhpdCgxKQogICAgICAgICAKLSAgICAgICAgbG9nKCJBdHRhY2hpbmcg
JWQgY29tbWl0cyBhcyBwYXRjaGVzIHRvIGJ1ZyAlcyIgJSAobGVuKGNvbW1pdF9pZHMpLCBidWdf
aWQpKQorICAgICAgICBsb2coIkF0dGFjaGluZyAlcyBhcyBwYXRjaGVzIHRvIGJ1ZyAlcyIgJSAo
cGx1cmFsaXplKCdjb21taXQnLCBsZW4oY29tbWl0X2lkcykpLCBidWdfaWQpKQogICAgICAgICBm
b3IgY29tbWl0X2lkIGluIGNvbW1pdF9pZHM6CiAgICAgICAgICAgICBjb21taXRfbWVzc2FnZSA9
IHRvb2wuc2NtKCkuY29tbWl0X21lc3NhZ2VfZm9yX2NvbW1pdChjb21taXRfaWQpCiAgICAgICAg
ICAgICBjb21taXRfbGluZXMgPSBjb21taXRfbWVzc2FnZS5zcGxpdGxpbmVzKCkKQEAgLTM1Nyw3
ICs0MDMsNyBAQCBjbGFzcyBCdWd6aWxsYVRvb2w6CiAgICAgICAgICAgICB7ICduYW1lJyA6ICdy
ZXZpZXdlZC1wYXRjaGVzJywgJ29iamVjdCcgOiBSZXZpZXdlZFBhdGNoZXNPbkJ1ZygpIH0sCiAg
ICAgICAgICAgICB7ICduYW1lJyA6ICdhcHBseS1wYXRjaGVzJywgJ29iamVjdCcgOiBBcHBseVBh
dGNoZXNGcm9tQnVnKCkgfSwKICAgICAgICAgICAgIHsgJ25hbWUnIDogJ2xhbmQtYW5kLXVwZGF0
ZScsICdvYmplY3QnIDogTGFuZEFuZFVwZGF0ZUJ1ZygpIH0sCi0gICAgICAgICAgICB7ICduYW1l
JyA6ICdsYW5kLXBhdGNoZXMnLCAnb2JqZWN0JyA6IExhbmRQYXRjaGVzRnJvbUJ1ZygpIH0sCisg
ICAgICAgICAgICB7ICduYW1lJyA6ICdsYW5kLXBhdGNoZXMnLCAnb2JqZWN0JyA6IExhbmRQYXRj
aGVzRnJvbUJ1Z3MoKSB9LAogICAgICAgICAgICAgeyAnbmFtZScgOiAnY29tbWl0LW1lc3NhZ2Un
LCAnb2JqZWN0JyA6IENvbW1pdE1lc3NhZ2VGb3JDdXJyZW50RGlmZigpIH0sCiAgICAgICAgICAg
ICB7ICduYW1lJyA6ICdvYnNvbGV0ZS1hdHRhY2htZW50cycsICdvYmplY3QnIDogT2Jzb2xldGVB
dHRhY2htZW50c09uQnVnKCkgfSwKICAgICAgICAgICAgIHsgJ25hbWUnIDogJ3Bvc3QtZGlmZics
ICdvYmplY3QnIDogUG9zdERpZmZBc1BhdGNoVG9CdWcoKSB9LApkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2J1Z3ppbGxhLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9t
b2R1bGVzL2J1Z3ppbGxhLnB5CmluZGV4IGQ0ZTViN2MuLjBhZjY0YmUgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9idWd6aWxsYS5weQorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL21vZHVsZXMvYnVnemlsbGEucHkKQEAgLTE0NCw3ICsxNDQsNyBAQCBjbGFzcyBCdWd6
aWxsYToKICAgICAgICAgICAgIGF0dGFjaG1lbnRfbGluayA9IGNlbGxzWzBdLmZpbmQoJ2EnKQog
ICAgICAgICAgICAgYXR0YWNobWVudFsndXJsJ10gPSBzZWxmLmJ1Z19zZXJ2ZXIgKyBhdHRhY2ht
ZW50X2xpbmtbJ2hyZWYnXSAjIHVybHMgYXJlIHJlbGF0aXZlCiAgICAgICAgICAgICBhdHRhY2ht
ZW50WydpZCddID0gYXR0YWNobWVudFsndXJsJ10uc3BsaXQoJz0nKVsxXSAjIGUuZy4gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9MzEyMjMKLSAgICAgICAgICAgIGF0
dGFjaG1lbnRbJ25hbWUnXSA9IGF0dGFjaG1lbnRfbGluay5zdHJpbmcKKyAgICAgICAgICAgIGF0
dGFjaG1lbnRbJ25hbWUnXSA9IHN0cihhdHRhY2htZW50X2xpbmsuc3RyaW5nKSAjIHcvbyBzdHIg
aXQgcmV0dXJucyBzb21lIHNvcnQgb2Ygbm9uLXN0cmluZyBvYmplY3QKICAgICAgICAgICAgICMg
YXR0YWNobWVudFsndHlwZSddID0gY2VsbHNbMV0KICAgICAgICAgICAgICMgYXR0YWNobWVudFsn
ZGF0ZSddID0gY2VsbHNbMl0KICAgICAgICAgICAgICMgYXR0YWNobWVudFsnc2l6ZSddID0gY2Vs
bHNbM10KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9zY20ucHkgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvc2NtLnB5CmluZGV4IGUyMjY5NjIuLjM2YmM0Mzkg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9zY20ucHkKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3NjbS5weQpAQCAtNjUsMTQgKzY1LDE0IEBAIGNsYXNz
IFNDTToKICAgICAgICAgb3V0cHV0ID0gcHJvY2Vzcy5jb21tdW5pY2F0ZShpbnB1dClbMF0ucnN0
cmlwKCkKICAgICAgICAgZXhpdF9jb2RlID0gcHJvY2Vzcy53YWl0KCkKICAgICAgICAgaWYgcmFp
c2Vfb25fZmFpbHVyZSBhbmQgZXhpdF9jb2RlOgotICAgICAgICAgICAgcmFpc2UgU2NyaXB0RXJy
b3IoIkZhaWxlZCB0byBydW4gIiArIGNvbW1hbmQpCisgICAgICAgICAgICByYWlzZSBTY3JpcHRF
cnJvcignRmFpbGVkIHRvIHJ1biAiJXMiICBleGl0X2NvZGU6ICVkICBjd2Q6ICVzJyAlIChjb21t
YW5kLCBleGl0X2NvZGUsIGN3ZCkpCiAgICAgICAgIGlmIHJldHVybl9leGl0X2NvZGU6CiAgICAg
ICAgICAgICByZXR1cm4gZXhpdF9jb2RlCiAgICAgICAgIHJldHVybiBvdXRwdXQKIAogICAgIGRl
ZiBlbnN1cmVfY2xlYW5fd29ya2luZ19kaXJlY3Rvcnkoc2VsZiwgZm9yY2UpOgogICAgICAgICBp
ZiBub3QgZm9yY2UgYW5kIG5vdCBzZWxmLndvcmtpbmdfZGlyZWN0b3J5X2lzX2NsZWFuKCk6Ci0g
ICAgICAgICAgICBwcmludCBzZWxmLnJ1bl9jb21tYW5kKHNlbGYuc3RhdHVzX2NvbW1hbmQoKSkK
KyAgICAgICAgICAgIHByaW50IHNlbGYucnVuX2NvbW1hbmQoc2VsZi5zdGF0dXNfY29tbWFuZCgp
LCByYWlzZV9vbl9mYWlsdXJlPUZhbHNlKQogICAgICAgICAgICAgZXJyb3IoIldvcmtpbmcgZGly
ZWN0b3J5IGhhcyBtb2RpZmljYXRpb25zLCBwYXNzIC0tZm9yY2UtY2xlYW4gb3IgLS1uby1jbGVh
biB0byBjb250aW51ZS4iKQogICAgICAgICAKICAgICAgICAgbG9nKCJDbGVhbmluZyB3b3JraW5n
IGRpcmVjdG9yeSIpCkBAIC0xNDMsNiArMTQzLDkgQEAgY2xhc3MgU0NNOgogICAgIGRlZiBzdXBw
b3J0c19sb2NhbF9jb21taXRzKHNlbGYpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVy
cm9yLCAic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIKIAorICAgIGRlZiBjb21taXRfbG9jYWxs
eV93aXRoX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6CisgICAgICAgIHBhc3MKKwogICAgIGRlZiBk
aXNjYXJkX2xvY2FsX2NvbW1pdHMoc2VsZik6CiAgICAgICAgIHBhc3MKIAo=
</data>
<flag name="review"
          id="16409"
          type_id="1"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>