<?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>27918</bug_id>
          
          <creation_ts>2009-07-31 23:00:19 -0700</creation_ts>
          <short_desc>commit-queue mode for bugzilla-tool</short_desc>
          <delta_ts>2009-08-04 01:19:34 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>27970</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>136410</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-31 23:00:19 -0700</bug_when>
    <thetext>We should be able to run bugzilla-tool in a commit-queue mode that recovers from errors gracefully.  I have a wrapper script that knows how to restart bugzilla-tool when it errors out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136411</commentid>
    <comment_count>1</comment_count>
      <attachid>33932</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-31 23:01:17 -0700</bug_when>
    <thetext>Created attachment 33932
commit-queue script

Here&apos;s the script i&apos;m using.  Could probably use some iteration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136418</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-31 23:22:31 -0700</bug_when>
    <thetext>Sometimes patch requires user interaction.  There doesn&apos;t to be an obvious flag that does what we want.  --batch is close, but it will assume the patch is reversed if it appears that way, which is kind of like an automated rollout...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136430</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-01 00:47:11 -0700</bug_when>
    <thetext>Also, failing tests pop up safari, which needs to be closed.  The build bots must have a flag that suppresses this behavior.  More investigation needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136882</commentid>
    <comment_count>4</comment_count>
      <attachid>34032</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-03 18:40:09 -0700</bug_when>
    <thetext>Created attachment 34032
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136888</commentid>
    <comment_count>5</comment_count>
      <attachid>34032</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-03 19:23:00 -0700</bug_when>
    <thetext>Comment on attachment 34032
Work in progress

Worked at least for a simple test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136891</commentid>
    <comment_count>6</comment_count>
      <attachid>34032</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-03 19:40:29 -0700</bug_when>
    <thetext>Comment on attachment 34032
Work in progress

We could key this choice off of an option some day:
6         for bug_id in bug_ids:
147              print &quot;%s&quot; % tool.bugs.bug_url_for_bug_id(bug_id)
 147             print &quot;%s&quot; % bug_id

Danger Danger will robinson!
 366         options.force_clean = True

I don&apos;t think we should --force-clean automagically.

Seems we should check the value of [&apos;commit-queue&apos;] here:
 239             if &apos;commit-queue&apos; in attachment and not attachment[&apos;is_obsolete&apos;]:

attachment.get(&apos;commit-queue&apos;, False) might do the trick.  I think [&apos;commit-queue&apos;] might throw an exception.

Otherwise looks good.  We need to fix the &quot;destroying your current work state&quot; problem by forcing --force-clean.  We need to require something to be passed before we go destroying data.

You should be aware of the proposed refactoring in:
https://bugs.webkit.org/show_bug.cgi?id=26715

(I really should split out the refactoring bits into a separate patch and get it landed.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136899</commentid>
    <comment_count>7</comment_count>
      <attachid>34036</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-03 22:56:11 -0700</bug_when>
    <thetext>Created attachment 34036
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136911</commentid>
    <comment_count>8</comment_count>
      <attachid>34036</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-04 00:04:53 -0700</bug_when>
    <thetext>Comment on attachment 34036
Patch v1

Oops.  Didn&apos;t mean to obsolete this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136922</commentid>
    <comment_count>9</comment_count>
      <attachid>34036</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-04 00:30:45 -0700</bug_when>
    <thetext>Comment on attachment 34036
Patch v1

Seems you should combine this with teh one I just reviewed.  No sense in adding the command only to remove it again.

 217                 attachment[&apos;commit-queue&apos;] = True # FIXME: Validate that the flag was set by a committer.

validation is possible as soon as bug 27972 is reviewed.

Otherwise this looks great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136930</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-04 01:19:34 -0700</bug_when>
    <thetext>Committed revision 46751.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>33932</attachid>
            <date>2009-07-31 23:01:17 -0700</date>
            <delta_ts>2009-08-01 09:52:01 -0700</delta_ts>
            <desc>commit-queue script</desc>
            <filename>commit-queue</filename>
            <type>text/plain</type>
            <size>192</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">IyEvYmluL3NoCmVjaG8gIkVudGVyIGJ1Z3MgdG8gcXVldWUgZm9yIGNvbW1pdCwgb25lIHBlciBs
aW5lLiIKZWNobyAiUHJlc3MgXkQgd2hlbiBkb25lLiIKZWNobyBgY2F0YCB8IHhhcmdzIC1uMSAu
L1dlYktpdFRvb2xzL1NjcmlwdHMvYnVnemlsbGEtdG9vbCBsYW5kLXBhdGNoZXMgLS1mb3JjZS1j
bGVhbgplY2hvICIkMCBkb25lISIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34032</attachid>
            <date>2009-08-03 18:40:09 -0700</date>
            <delta_ts>2009-08-03 22:56:01 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-27918-20090803184008.patch</filename>
            <type>text/plain</type>
            <size>6969</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4NTU1Y2E4Li5lYjg1N2IyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMDktMDgt
MDMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBjb21taXQtcXVldWUgbW9kZSBmb3IgYnVnemls
bGEtdG9vbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mjc5MTgKKworICAgICAgICBNYWtlIGJ1Z3ppbGxhIHRvb2wgc21hcnQgZW5vdWdoIHRvIGZpbmQg
dGhlIGNvbW1pdC1xdWV1ZSsgZmxhZ3MgYW5kCisgICAgICAgIGxhbmQgdGhvc2UgcGF0Y2hlcy4K
KworICAgICAgICAqIFNjcmlwdHMvYnVnemlsbGEtdG9vbDoKKyAgICAgICAgKiBTY3JpcHRzL21v
ZHVsZXMvYnVnemlsbGEucHk6CisKKzIwMDktMDgtMDMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KIAogICAgICAgICBi
dWd6aWxsYS10b29sIGxhbmQtcGF0Y2hlcyBuZWVkcyAtLXF1ZXVlIG1vZGUKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvYnVnemlsbGEtdG9vbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
YnVnemlsbGEtdG9vbAppbmRleCBkZjAwNDJjLi5iMTg3OWY0IDEwMDc1NQotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL2J1Z3ppbGxhLXRvb2wKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWd6
aWxsYS10b29sCkBAIC0xNDQsMTIgKzE0NCwxMiBAQCBjbGFzcyBCdWdzSW5Db21taXRRdWV1ZShD
b21tYW5kKToKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29sKToKICAg
ICAgICAgYnVnX2lkcyA9IHRvb2wuYnVncy5mZXRjaF9idWdfaWRzX2Zyb21fY29tbWl0X3F1ZXVl
KCkKICAgICAgICAgZm9yIGJ1Z19pZCBpbiBidWdfaWRzOgotICAgICAgICAgICAgcHJpbnQgIiVz
IiAlIHRvb2wuYnVncy5idWdfdXJsX2Zvcl9idWdfaWQoYnVnX2lkKQorICAgICAgICAgICAgcHJp
bnQgIiVzIiAlIGJ1Z19pZAogCiAKIGNsYXNzIFBhdGNoZXNJbkNvbW1pdFF1ZXVlKENvbW1hbmQp
OgogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgQ29tbWFuZC5fX2luaXRfXyhzZWxm
LCAnUGF0Y2hlcyBhdHRhY2hlZCB0byBidWdzIGluIHRoZSBjb21taXQgcXVldWUnKQorICAgICAg
ICBDb21tYW5kLl9faW5pdF9fKHNlbGYsICdQYXRjaGVzIGluIHRoZSBjb21taXQgcXVldWUnKQog
CiAgICAgZGVmIGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6CiAgICAgICAgIHBh
dGNoZXMgPSB0b29sLmJ1Z3MuZmV0Y2hfcGF0Y2hlc19mcm9tX2NvbW1pdF9xdWV1ZSgpCkBAIC0z
NTEsMTIgKzM1MSw0MiBAQCBjbGFzcyBMYW5kUGF0Y2hlc0Zyb21CdWdzKENvbW1hbmQpOgogICAg
ICAgICAgICAgYnVnc190b19wYXRjaGVzW2J1Z19pZF0gPSBwYXRjaGVzCiAKICAgICAgICAgbG9n
KCJMYW5kaW5nICVzIGZyb20gJXMuIiAlIChwbHVyYWxpemUoInBhdGNoIiwgcGF0Y2hfY291bnQp
LCBwbHVyYWxpemUoImJ1ZyIsIGxlbihhcmdzKSkpKQotICAgICAgICAKKwogICAgICAgICBzZWxm
LnNldHVwX2Zvcl9sYW5kaW5nKHRvb2wuc2NtKCksIG9wdGlvbnMpCiAKICAgICAgICAgZm9yIGJ1
Z19pZCBpbiBhcmdzOgogICAgICAgICAgICAgc2VsZi5sYW5kX3BhdGNoZXMoYnVnX2lkLCBidWdz
X3RvX3BhdGNoZXNbYnVnX2lkXSwgb3B0aW9ucywgdG9vbCkKIAorY2xhc3MgTGFuZFBhdGNoZXNG
cm9tQ29tbWl0UXVldWUoQ29tbWFuZCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAg
ICBDb21tYW5kLl9faW5pdF9fKHNlbGYsICdMYW5kcyBhbGwgcGF0Y2hlcyBpbiB0aGUgY29tbWl0
IHF1ZXVlJykKKworICAgIGRlZiBleGVjdXRlKHNlbGYsIG9wdGlvbnMsIGFyZ3MsIHRvb2wpOgor
ICAgICAgICAjIFNldCB1cCB0aGUgb3B0aW9ucyBmb3IgdGhlIGNvbW1pdCBxdWV1ZS4KKyAgICAg
ICAgb3B0aW9ucy5mb3JjZV9jbGVhbiA9IFRydWUKKyAgICAgICAgb3B0aW9ucy5jbGVhbiA9IFRy
dWUKKyAgICAgICAgb3B0aW9ucy5jbG9zZV9idWcgPSBUcnVlCisgICAgICAgIG9wdGlvbnMuYnVp
bGQgPSBUcnVlCisgICAgICAgIG9wdGlvbnMudGVzdCA9IFRydWUKKyAgICAgICAgb3B0aW9ucy5j
b21taXRfcXVldWUgPSBUcnVlCisKKyAgICAgICAgYnVnc190b19wYXRjaGVzID0ge30KKyAgICAg
ICAgcGF0Y2hfY291bnQgPSAwCisgICAgICAgIGJ1Z3MgPSB0b29sLmJ1Z3MuZmV0Y2hfYnVnX2lk
c19mcm9tX2NvbW1pdF9xdWV1ZSgpCisgICAgICAgIGZvciBidWdfaWQgaW4gYnVnczoKKyAgICAg
ICAgICAgIHBhdGNoZXMgPSB0b29sLmJ1Z3MuZmV0Y2hfY29tbWl0X3F1ZXVlX3BhdGNoZXNfZnJv
bV9idWcoYnVnX2lkKQorICAgICAgICAgICAgaWYgbm90IGxlbihwYXRjaGVzKToKKyAgICAgICAg
ICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgcGF0Y2hfY291bnQgKz0gbGVuKHBhdGNoZXMp
CisgICAgICAgICAgICBidWdzX3RvX3BhdGNoZXNbYnVnX2lkXSA9IHBhdGNoZXMKKworICAgICAg
ICBsb2coIkxhbmRpbmcgJXMgZnJvbSAlcy4iICUgKHBsdXJhbGl6ZSgicGF0Y2giLCBwYXRjaF9j
b3VudCksIHBsdXJhbGl6ZSgiYnVnIiwgbGVuKGJ1Z3MpKSkpCisKKyAgICAgICAgTGFuZFBhdGNo
ZXNGcm9tQnVncy5zZXR1cF9mb3JfbGFuZGluZyh0b29sLnNjbSgpLCBvcHRpb25zKQorCisgICAg
ICAgIGZvciBidWdfaWQgaW4gYnVnczoKKyAgICAgICAgICAgIExhbmRQYXRjaGVzRnJvbUJ1Z3Mu
bGFuZF9wYXRjaGVzKGJ1Z19pZCwgYnVnc190b19wYXRjaGVzW2J1Z19pZF0sIG9wdGlvbnMsIHRv
b2wpCisKIAogY2xhc3MgQ29tbWl0TWVzc2FnZUZvckN1cnJlbnREaWZmKENvbW1hbmQpOgogICAg
IGRlZiBfX2luaXRfXyhzZWxmKToKQEAgLTU0OSw2ICs1NzksNyBAQCBjbGFzcyBCdWd6aWxsYVRv
b2w6CiAgICAgICAgIHNlbGYuY2FjaGVkX3NjbSA9IE5vbmUKICAgICAgICAgc2VsZi5idWdzID0g
QnVnemlsbGEoKQogICAgICAgICBzZWxmLmNvbW1hbmRzID0gWworICAgICAgICAgICAgeyAnbmFt
ZScgOiAnbGFuZC1jb21taXQtcXVldWUnLCAnb2JqZWN0JyA6IExhbmRQYXRjaGVzRnJvbUNvbW1p
dFF1ZXVlKCkgfSwKICAgICAgICAgICAgIHsgJ25hbWUnIDogJ2J1Z3MtdG8tY29tbWl0JywgJ29i
amVjdCcgOiBCdWdzSW5Db21taXRRdWV1ZSgpIH0sCiAgICAgICAgICAgICB7ICduYW1lJyA6ICdw
YXRjaGVzLXRvLWNvbW1pdCcsICdvYmplY3QnIDogUGF0Y2hlc0luQ29tbWl0UXVldWUoKSB9LAog
ICAgICAgICAgICAgeyAnbmFtZScgOiAncmV2aWV3ZWQtcGF0Y2hlcycsICdvYmplY3QnIDogUmV2
aWV3ZWRQYXRjaGVzT25CdWcoKSB9LApAQCAtNTYxLDcgKzU5Miw3IEBAIGNsYXNzIEJ1Z3ppbGxh
VG9vbDoKICAgICAgICAgICAgIHsgJ25hbWUnIDogJ3Bvc3QtZGlmZicsICdvYmplY3QnIDogUG9z
dERpZmZBc1BhdGNoVG9CdWcoKSB9LAogICAgICAgICAgICAgeyAnbmFtZScgOiAncG9zdC1jb21t
aXRzJywgJ29iamVjdCcgOiBQb3N0Q29tbWl0c0FzUGF0Y2hlc1RvQnVnKCkgfSwKICAgICAgICAg
XQotICAgICAgICAKKwogICAgICAgICBzZWxmLmdsb2JhbF9vcHRpb25fcGFyc2VyID0gSGVscFBy
aW50aW5nT3B0aW9uUGFyc2VyKHVzYWdlPXNlbGYudXNhZ2VfbGluZSgpLCBmb3JtYXR0ZXI9Tm9u
V3JhcHBpbmdFcGlsb2dJbmRlbnRlZEhlbHBGb3JtYXR0ZXIoKSwgZXBpbG9nPXNlbGYuY29tbWFu
ZHNfdXNhZ2UoKSkKICAgICAgICAgc2VsZi5nbG9iYWxfb3B0aW9uX3BhcnNlci5hZGRfb3B0aW9u
KCItLWRyeS1ydW4iLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJkcnlydW4iLCBoZWxwPSJk
byBub3QgdG91Y2ggcmVtb3RlIHNlcnZlcnMiLCBkZWZhdWx0PUZhbHNlKQogCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvYnVnemlsbGEucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL21vZHVsZXMvYnVnemlsbGEucHkKaW5kZXggMzc5NzcxZS4uMTlhOTkxOCAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2J1Z3ppbGxhLnB5CisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9idWd6aWxsYS5weQpAQCAtMTkzLDcgKzE5Myw3IEBAIGNs
YXNzIEJ1Z3ppbGxhOgogCiAgICAgICAgIHBhZ2UgPSB1cmxsaWIyLnVybG9wZW4oYnVnX3VybCkK
ICAgICAgICAgc291cCA9IEJlYXV0aWZ1bFNvdXAocGFnZSkKLSAgICAKKwogICAgICAgICBhdHRh
Y2htZW50cyA9IFtdCiAgICAgICAgIGZvciBlbGVtZW50IGluIHNvdXAuZmluZEFsbCgnYXR0YWNo
bWVudCcpOgogICAgICAgICAgICAgYXR0YWNobWVudCA9IHt9CkBAIC0yMTIsNiArMjEyLDEwIEBA
IGNsYXNzIEJ1Z3ppbGxhOgogICAgICAgICAgICAgICAgIGJ1Z3ppbGxhX25hbWUgPSByZXZpZXdl
cl9lbWFpbC5zcGxpdCgnQCcpWzBdCiAgICAgICAgICAgICAgICAgYXR0YWNobWVudFsncmV2aWV3
ZXInXSA9IHNlbGYuZnVsbF9uYW1lX2Zyb21fYnVnemlsbGFfbmFtZShidWd6aWxsYV9uYW1lKQog
CisgICAgICAgICAgICBjb21taXRfcXVldWVfZmxhZyA9IGVsZW1lbnQuZmluZCgnZmxhZycsIGF0
dHJzPXsibmFtZSIgOiAiY29tbWl0LXF1ZXVlIn0pCisgICAgICAgICAgICBpZiBjb21taXRfcXVl
dWVfZmxhZyBhbmQgY29tbWl0X3F1ZXVlX2ZsYWdbJ3N0YXR1cyddID09ICcrJzoKKyAgICAgICAg
ICAgICAgICBhdHRhY2htZW50Wydjb21taXQtcXVldWUnXSA9IFRydWUKKwogICAgICAgICAgICAg
YXR0YWNobWVudHMuYXBwZW5kKGF0dGFjaG1lbnQpCiAgICAgICAgIHJldHVybiBhdHRhY2htZW50
cwogCkBAIC0yMjksMjcgKzIzMywzMSBAQCBjbGFzcyBCdWd6aWxsYToKICAgICAgICAgICAgICAg
ICByZXZpZXdlZF9wYXRjaGVzLmFwcGVuZChhdHRhY2htZW50KQogICAgICAgICByZXR1cm4gcmV2
aWV3ZWRfcGF0Y2hlcwogCisgICAgZGVmIGZldGNoX2NvbW1pdF9xdWV1ZV9wYXRjaGVzX2Zyb21f
YnVnKHNlbGYsIGJ1Z19pZCk6CisgICAgICAgIGNvbW1pdF9xdWV1ZV9wYXRjaGVzID0gW10KKyAg
ICAgICAgZm9yIGF0dGFjaG1lbnQgaW4gc2VsZi5mZXRjaF9yZXZpZXdlZF9wYXRjaGVzX2Zyb21f
YnVnKGJ1Z19pZCk6CisgICAgICAgICAgICBpZiAnY29tbWl0LXF1ZXVlJyBpbiBhdHRhY2htZW50
IGFuZCBub3QgYXR0YWNobWVudFsnaXNfb2Jzb2xldGUnXToKKyAgICAgICAgICAgICAgICBjb21t
aXRfcXVldWVfcGF0Y2hlcy5hcHBlbmQoYXR0YWNobWVudCkKKyAgICAgICAgcmV0dXJuIGNvbW1p
dF9xdWV1ZV9wYXRjaGVzCisKICAgICBkZWYgZmV0Y2hfYnVnX2lkc19mcm9tX2NvbW1pdF9xdWV1
ZShzZWxmKToKLSAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGhhdmUgYW4gb3B0aW9uIGZvciBy
ZXN0cmljdGluZyB0aGUgc2VhcmNoIGJ5IGVtYWlsLiAgRXhhbXBsZToKLSAgICAgICAgIyB1bmFz
c2lnbmVkX29ubHkgPSAiJmVtYWlsYXNzaWduZWRfdG8xPTEmZW1haWx0eXBlMT1zdWJzdHJpbmcm
ZW1haWwxPXVuYXNzaWduZWQiCi0gICAgICAgIGNvbW1pdF9xdWV1ZV91cmwgPSBzZWxmLmJ1Z19z
ZXJ2ZXJfdXJsICsgImJ1Z2xpc3QuY2dpP3F1ZXJ5X2Zvcm1hdD1hZHZhbmNlZCZidWdfc3RhdHVz
PVVOQ09ORklSTUVEJmJ1Z19zdGF0dXM9TkVXJmJ1Z19zdGF0dXM9QVNTSUdORUQmYnVnX3N0YXR1
cz1SRU9QRU5FRCZmaWVsZDAtMC0wPWZsYWd0eXBlcy5uYW1lJnR5cGUwLTAtMD1lcXVhbHMmdmFs
dWUwLTAtMD1yZXZpZXclMkIiCi0gICAgICAgIGxvZygiTG9hZGluZyBjb21taXQgcXVldWUiKQor
ICAgICAgICBjb21taXRfcXVldWVfdXJsID0gc2VsZi5idWdfc2VydmVyX3VybCArICJidWdsaXN0
LmNnaT9xdWVyeV9mb3JtYXQ9YWR2YW5jZWQmYnVnX3N0YXR1cz1VTkNPTkZJUk1FRCZidWdfc3Rh
dHVzPU5FVyZidWdfc3RhdHVzPUFTU0lHTkVEJmJ1Z19zdGF0dXM9UkVPUEVORUQmZmllbGQwLTAt
MD1mbGFndHlwZXMubmFtZSZ0eXBlMC0wLTA9ZXF1YWxzJnZhbHVlMC0wLTA9Y29tbWl0LXF1ZXVl
JTJCIgogCiAgICAgICAgIHBhZ2UgPSB1cmxsaWIyLnVybG9wZW4oY29tbWl0X3F1ZXVlX3VybCkK
ICAgICAgICAgc291cCA9IEJlYXV0aWZ1bFNvdXAocGFnZSkKLSAgICAKKwogICAgICAgICBidWdf
aWRzID0gW10KICAgICAgICAgIyBHcmFiIHRoZSBjZWxscyBpbiB0aGUgZmlyc3QgY29sdW1uICh3
aGljaCBoYXBwZW5zIHRvIGJlIHRoZSBidWcgaWRzKQogICAgICAgICBmb3IgYnVnX2xpbmtfY2Vs
bCBpbiBzb3VwKCd0ZCcsICJmaXJzdC1jaGlsZCIpOiAjIHRkcyB3aXRoIHRoZSBjbGFzcyAiZmly
c3QtY2hpbGQiCiAgICAgICAgICAgICBidWdfbGluayA9IGJ1Z19saW5rX2NlbGwuZmluZCgiYSIp
CiAgICAgICAgICAgICBidWdfaWRzLmFwcGVuZChidWdfbGluay5zdHJpbmcpICMgdGhlIGNvbnRl
bnRzIGhhcHBlbiB0byBiZSB0aGUgYnVnIGlkCi0gICAgCisKICAgICAgICAgcmV0dXJuIGJ1Z19p
ZHMKIAogICAgIGRlZiBmZXRjaF9wYXRjaGVzX2Zyb21fY29tbWl0X3F1ZXVlKHNlbGYpOgogICAg
ICAgICBwYXRjaGVzX3RvX2xhbmQgPSBbXQogICAgICAgICBmb3IgYnVnX2lkIGluIHNlbGYuZmV0
Y2hfYnVnX2lkc19mcm9tX2NvbW1pdF9xdWV1ZSgpOgotICAgICAgICAgICAgcGF0Y2hlcyA9IHNl
bGYuZmV0Y2hfcmV2aWV3ZWRfcGF0Y2hlc19mcm9tX2J1ZyhidWdfaWQpCisgICAgICAgICAgICBw
YXRjaGVzID0gc2VsZi5mZXRjaF9jb21taXRfcXVldWVfcGF0Y2hlc19mcm9tX2J1ZyhidWdfaWQp
CiAgICAgICAgICAgICBwYXRjaGVzX3RvX2xhbmQgKz0gcGF0Y2hlcwogICAgICAgICByZXR1cm4g
cGF0Y2hlc190b19sYW5k
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34036</attachid>
            <date>2009-08-03 22:56:11 -0700</date>
            <delta_ts>2009-08-04 00:30:45 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-27918-20090803225608.patch</filename>
            <type>text/plain</type>
            <size>7708</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4NTU1Y2E4Li5lYjg1N2IyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMDktMDgt
MDMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBjb21taXQtcXVldWUgbW9kZSBmb3IgYnVnemls
bGEtdG9vbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mjc5MTgKKworICAgICAgICBNYWtlIGJ1Z3ppbGxhIHRvb2wgc21hcnQgZW5vdWdoIHRvIGZpbmQg
dGhlIGNvbW1pdC1xdWV1ZSsgZmxhZ3MgYW5kCisgICAgICAgIGxhbmQgdGhvc2UgcGF0Y2hlcy4K
KworICAgICAgICAqIFNjcmlwdHMvYnVnemlsbGEtdG9vbDoKKyAgICAgICAgKiBTY3JpcHRzL21v
ZHVsZXMvYnVnemlsbGEucHk6CisKKzIwMDktMDgtMDMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KIAogICAgICAgICBi
dWd6aWxsYS10b29sIGxhbmQtcGF0Y2hlcyBuZWVkcyAtLXF1ZXVlIG1vZGUKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvYnVnemlsbGEtdG9vbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
YnVnemlsbGEtdG9vbAppbmRleCBkZjAwNDJjLi40OThhODA3IDEwMDc1NQotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL2J1Z3ppbGxhLXRvb2wKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWd6
aWxsYS10b29sCkBAIC0xNDQsMTIgKzE0NCwxMiBAQCBjbGFzcyBCdWdzSW5Db21taXRRdWV1ZShD
b21tYW5kKToKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29sKToKICAg
ICAgICAgYnVnX2lkcyA9IHRvb2wuYnVncy5mZXRjaF9idWdfaWRzX2Zyb21fY29tbWl0X3F1ZXVl
KCkKICAgICAgICAgZm9yIGJ1Z19pZCBpbiBidWdfaWRzOgotICAgICAgICAgICAgcHJpbnQgIiVz
IiAlIHRvb2wuYnVncy5idWdfdXJsX2Zvcl9idWdfaWQoYnVnX2lkKQorICAgICAgICAgICAgcHJp
bnQgIiVzIiAlIGJ1Z19pZAogCiAKIGNsYXNzIFBhdGNoZXNJbkNvbW1pdFF1ZXVlKENvbW1hbmQp
OgogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgQ29tbWFuZC5fX2luaXRfXyhzZWxm
LCAnUGF0Y2hlcyBhdHRhY2hlZCB0byBidWdzIGluIHRoZSBjb21taXQgcXVldWUnKQorICAgICAg
ICBDb21tYW5kLl9faW5pdF9fKHNlbGYsICdQYXRjaGVzIGluIHRoZSBjb21taXQgcXVldWUnKQog
CiAgICAgZGVmIGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6CiAgICAgICAgIHBh
dGNoZXMgPSB0b29sLmJ1Z3MuZmV0Y2hfcGF0Y2hlc19mcm9tX2NvbW1pdF9xdWV1ZSgpCkBAIC0z
NTEsMTIgKzM1MSw0NCBAQCBjbGFzcyBMYW5kUGF0Y2hlc0Zyb21CdWdzKENvbW1hbmQpOgogICAg
ICAgICAgICAgYnVnc190b19wYXRjaGVzW2J1Z19pZF0gPSBwYXRjaGVzCiAKICAgICAgICAgbG9n
KCJMYW5kaW5nICVzIGZyb20gJXMuIiAlIChwbHVyYWxpemUoInBhdGNoIiwgcGF0Y2hfY291bnQp
LCBwbHVyYWxpemUoImJ1ZyIsIGxlbihhcmdzKSkpKQotICAgICAgICAKKwogICAgICAgICBzZWxm
LnNldHVwX2Zvcl9sYW5kaW5nKHRvb2wuc2NtKCksIG9wdGlvbnMpCiAKICAgICAgICAgZm9yIGJ1
Z19pZCBpbiBhcmdzOgogICAgICAgICAgICAgc2VsZi5sYW5kX3BhdGNoZXMoYnVnX2lkLCBidWdz
X3RvX3BhdGNoZXNbYnVnX2lkXSwgb3B0aW9ucywgdG9vbCkKIAorY2xhc3MgTGFuZFBhdGNoZXNG
cm9tQ29tbWl0UXVldWUoQ29tbWFuZCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAg
ICBvcHRpb25zID0gWworICAgICAgICAgICAgbWFrZV9vcHRpb24oIi0tZm9yY2UtY2xlYW4iLCBh
Y3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJmb3JjZV9jbGVhbiIsIGRlZmF1bHQ9RmFsc2UsIGhl
bHA9IkNsZWFuIHdvcmtpbmcgZGlyZWN0b3J5IGJlZm9yZSBhcHBseWluZyBwYXRjaGVzIChyZW1v
dmVzIGxvY2FsIGNoYW5nZXMgYW5kIGNvbW1pdHMpIiksCisgICAgICAgICAgICBtYWtlX29wdGlv
bigiLS1uby1jbGVhbiIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJjbGVhbiIsIGRlZmF1
bHQ9VHJ1ZSwgaGVscD0iRG9uJ3QgY2hlY2sgaWYgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IGlzIGNs
ZWFuIGJlZm9yZSBhcHBseWluZyBwYXRjaGVzIiksCisgICAgICAgICAgICBtYWtlX29wdGlvbigi
LS1uby1jbG9zZSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJjbG9zZV9idWciLCBkZWZh
dWx0PVRydWUsIGhlbHA9IkxlYXZlIGJ1ZyBvcGVuIGFmdGVyIGxhbmRpbmcuIiksCisgICAgICAg
ICAgICBtYWtlX29wdGlvbigiLS1uby1idWlsZCIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0
PSJidWlsZCIsIGRlZmF1bHQ9VHJ1ZSwgaGVscD0iQ29tbWl0IHdpdGhvdXQgYnVpbGRpbmcgZmly
c3QsIGltcGxpZXMgLS1uby10ZXN0LiIpLAorICAgICAgICAgICAgbWFrZV9vcHRpb24oIi0tbm8t
dGVzdCIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJ0ZXN0IiwgZGVmYXVsdD1UcnVlLCBo
ZWxwPSJDb21taXQgd2l0aG91dCBydW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMuIiksCisgICAgICAg
IF0KKyAgICAgICAgQ29tbWFuZC5fX2luaXRfXyhzZWxmLCAnTGFuZHMgYWxsIHBhdGNoZXMgb24g
YSBidWcgb3B0aW9uYWxseSB0ZXN0aW5nIHRoZW0gZmlyc3QnLCAnQlVHSUQnLCBvcHRpb25zPW9w
dGlvbnMpCisKKyAgICBkZWYgZXhlY3V0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29sKToKKyAg
ICAgICAgIyBEZWZhdWx0IHRvIGNvbW1pdF9xdWV1ZSBtb2RlLgorICAgICAgICBvcHRpb25zLmNv
bW1pdF9xdWV1ZSA9IFRydWUKKworICAgICAgICBidWdzX3RvX3BhdGNoZXMgPSB7fQorICAgICAg
ICBwYXRjaF9jb3VudCA9IDAKKyAgICAgICAgYnVncyA9IHRvb2wuYnVncy5mZXRjaF9idWdfaWRz
X2Zyb21fY29tbWl0X3F1ZXVlKCkKKyAgICAgICAgZm9yIGJ1Z19pZCBpbiBidWdzOgorICAgICAg
ICAgICAgcGF0Y2hlcyA9IHRvb2wuYnVncy5mZXRjaF9jb21taXRfcXVldWVfcGF0Y2hlc19mcm9t
X2J1ZyhidWdfaWQpCisgICAgICAgICAgICBpZiBub3QgbGVuKHBhdGNoZXMpOgorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBwYXRjaF9jb3VudCArPSBsZW4ocGF0Y2hlcykK
KyAgICAgICAgICAgIGJ1Z3NfdG9fcGF0Y2hlc1tidWdfaWRdID0gcGF0Y2hlcworCisgICAgICAg
IGxvZygiTGFuZGluZyAlcyBmcm9tICVzLiIgJSAocGx1cmFsaXplKCJwYXRjaCIsIHBhdGNoX2Nv
dW50KSwgcGx1cmFsaXplKCJidWciLCBsZW4oYnVncykpKSkKKworICAgICAgICBMYW5kUGF0Y2hl
c0Zyb21CdWdzLnNldHVwX2Zvcl9sYW5kaW5nKHRvb2wuc2NtKCksIG9wdGlvbnMpCisKKyAgICAg
ICAgZm9yIGJ1Z19pZCBpbiBidWdzOgorICAgICAgICAgICAgTGFuZFBhdGNoZXNGcm9tQnVncy5s
YW5kX3BhdGNoZXMoYnVnX2lkLCBidWdzX3RvX3BhdGNoZXNbYnVnX2lkXSwgb3B0aW9ucywgdG9v
bCkKKwogCiBjbGFzcyBDb21taXRNZXNzYWdlRm9yQ3VycmVudERpZmYoQ29tbWFuZCk6CiAgICAg
ZGVmIF9faW5pdF9fKHNlbGYpOgpAQCAtNTQ5LDYgKzU4MSw3IEBAIGNsYXNzIEJ1Z3ppbGxhVG9v
bDoKICAgICAgICAgc2VsZi5jYWNoZWRfc2NtID0gTm9uZQogICAgICAgICBzZWxmLmJ1Z3MgPSBC
dWd6aWxsYSgpCiAgICAgICAgIHNlbGYuY29tbWFuZHMgPSBbCisgICAgICAgICAgICB7ICduYW1l
JyA6ICdsYW5kLWNvbW1pdC1xdWV1ZScsICdvYmplY3QnIDogTGFuZFBhdGNoZXNGcm9tQ29tbWl0
UXVldWUoKSB9LAogICAgICAgICAgICAgeyAnbmFtZScgOiAnYnVncy10by1jb21taXQnLCAnb2Jq
ZWN0JyA6IEJ1Z3NJbkNvbW1pdFF1ZXVlKCkgfSwKICAgICAgICAgICAgIHsgJ25hbWUnIDogJ3Bh
dGNoZXMtdG8tY29tbWl0JywgJ29iamVjdCcgOiBQYXRjaGVzSW5Db21taXRRdWV1ZSgpIH0sCiAg
ICAgICAgICAgICB7ICduYW1lJyA6ICdyZXZpZXdlZC1wYXRjaGVzJywgJ29iamVjdCcgOiBSZXZp
ZXdlZFBhdGNoZXNPbkJ1ZygpIH0sCkBAIC01NjEsNyArNTk0LDcgQEAgY2xhc3MgQnVnemlsbGFU
b29sOgogICAgICAgICAgICAgeyAnbmFtZScgOiAncG9zdC1kaWZmJywgJ29iamVjdCcgOiBQb3N0
RGlmZkFzUGF0Y2hUb0J1ZygpIH0sCiAgICAgICAgICAgICB7ICduYW1lJyA6ICdwb3N0LWNvbW1p
dHMnLCAnb2JqZWN0JyA6IFBvc3RDb21taXRzQXNQYXRjaGVzVG9CdWcoKSB9LAogICAgICAgICBd
Ci0gICAgICAgIAorCiAgICAgICAgIHNlbGYuZ2xvYmFsX29wdGlvbl9wYXJzZXIgPSBIZWxwUHJp
bnRpbmdPcHRpb25QYXJzZXIodXNhZ2U9c2VsZi51c2FnZV9saW5lKCksIGZvcm1hdHRlcj1Ob25X
cmFwcGluZ0VwaWxvZ0luZGVudGVkSGVscEZvcm1hdHRlcigpLCBlcGlsb2c9c2VsZi5jb21tYW5k
c191c2FnZSgpKQogICAgICAgICBzZWxmLmdsb2JhbF9vcHRpb25fcGFyc2VyLmFkZF9vcHRpb24o
Ii0tZHJ5LXJ1biIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImRyeXJ1biIsIGhlbHA9ImRv
IG5vdCB0b3VjaCByZW1vdGUgc2VydmVycyIsIGRlZmF1bHQ9RmFsc2UpCiAKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9idWd6aWxsYS5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvbW9kdWxlcy9idWd6aWxsYS5weQppbmRleCAzNzk3NzFlLi5kNTY3ZWE2IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvYnVnemlsbGEucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2J1Z3ppbGxhLnB5CkBAIC0xOTMsNyArMTkzLDcgQEAgY2xh
c3MgQnVnemlsbGE6CiAKICAgICAgICAgcGFnZSA9IHVybGxpYjIudXJsb3BlbihidWdfdXJsKQog
ICAgICAgICBzb3VwID0gQmVhdXRpZnVsU291cChwYWdlKQotICAgIAorCiAgICAgICAgIGF0dGFj
aG1lbnRzID0gW10KICAgICAgICAgZm9yIGVsZW1lbnQgaW4gc291cC5maW5kQWxsKCdhdHRhY2ht
ZW50Jyk6CiAgICAgICAgICAgICBhdHRhY2htZW50ID0ge30KQEAgLTIxMiw2ICsyMTIsMTAgQEAg
Y2xhc3MgQnVnemlsbGE6CiAgICAgICAgICAgICAgICAgYnVnemlsbGFfbmFtZSA9IHJldmlld2Vy
X2VtYWlsLnNwbGl0KCdAJylbMF0KICAgICAgICAgICAgICAgICBhdHRhY2htZW50WydyZXZpZXdl
ciddID0gc2VsZi5mdWxsX25hbWVfZnJvbV9idWd6aWxsYV9uYW1lKGJ1Z3ppbGxhX25hbWUpCiAK
KyAgICAgICAgICAgIGNvbW1pdF9xdWV1ZV9mbGFnID0gZWxlbWVudC5maW5kKCdmbGFnJywgYXR0
cnM9eyJuYW1lIiA6ICJjb21taXQtcXVldWUifSkKKyAgICAgICAgICAgIGlmIGNvbW1pdF9xdWV1
ZV9mbGFnIGFuZCBjb21taXRfcXVldWVfZmxhZ1snc3RhdHVzJ10gPT0gJysnOgorICAgICAgICAg
ICAgICAgIGF0dGFjaG1lbnRbJ2NvbW1pdC1xdWV1ZSddID0gVHJ1ZSAjIEZJWE1FOiBWYWxpZGF0
ZSB0aGF0IHRoZSBmbGFnIHdhcyBzZXQgYnkgYSBjb21taXR0ZXIuCisKICAgICAgICAgICAgIGF0
dGFjaG1lbnRzLmFwcGVuZChhdHRhY2htZW50KQogICAgICAgICByZXR1cm4gYXR0YWNobWVudHMK
IApAQCAtMjI5LDI3ICsyMzMsMzEgQEAgY2xhc3MgQnVnemlsbGE6CiAgICAgICAgICAgICAgICAg
cmV2aWV3ZWRfcGF0Y2hlcy5hcHBlbmQoYXR0YWNobWVudCkKICAgICAgICAgcmV0dXJuIHJldmll
d2VkX3BhdGNoZXMKIAorICAgIGRlZiBmZXRjaF9jb21taXRfcXVldWVfcGF0Y2hlc19mcm9tX2J1
ZyhzZWxmLCBidWdfaWQpOgorICAgICAgICBjb21taXRfcXVldWVfcGF0Y2hlcyA9IFtdCisgICAg
ICAgIGZvciBhdHRhY2htZW50IGluIHNlbGYuZmV0Y2hfcmV2aWV3ZWRfcGF0Y2hlc19mcm9tX2J1
ZyhidWdfaWQpOgorICAgICAgICAgICAgaWYgJ2NvbW1pdC1xdWV1ZScgaW4gYXR0YWNobWVudCBh
bmQgbm90IGF0dGFjaG1lbnRbJ2lzX29ic29sZXRlJ106CisgICAgICAgICAgICAgICAgY29tbWl0
X3F1ZXVlX3BhdGNoZXMuYXBwZW5kKGF0dGFjaG1lbnQpCisgICAgICAgIHJldHVybiBjb21taXRf
cXVldWVfcGF0Y2hlcworCiAgICAgZGVmIGZldGNoX2J1Z19pZHNfZnJvbV9jb21taXRfcXVldWUo
c2VsZik6Ci0gICAgICAgICMgRklYTUU6IFdlIHNob3VsZCBoYXZlIGFuIG9wdGlvbiBmb3IgcmVz
dHJpY3RpbmcgdGhlIHNlYXJjaCBieSBlbWFpbC4gIEV4YW1wbGU6Ci0gICAgICAgICMgdW5hc3Np
Z25lZF9vbmx5ID0gIiZlbWFpbGFzc2lnbmVkX3RvMT0xJmVtYWlsdHlwZTE9c3Vic3RyaW5nJmVt
YWlsMT11bmFzc2lnbmVkIgotICAgICAgICBjb21taXRfcXVldWVfdXJsID0gc2VsZi5idWdfc2Vy
dmVyX3VybCArICJidWdsaXN0LmNnaT9xdWVyeV9mb3JtYXQ9YWR2YW5jZWQmYnVnX3N0YXR1cz1V
TkNPTkZJUk1FRCZidWdfc3RhdHVzPU5FVyZidWdfc3RhdHVzPUFTU0lHTkVEJmJ1Z19zdGF0dXM9
UkVPUEVORUQmZmllbGQwLTAtMD1mbGFndHlwZXMubmFtZSZ0eXBlMC0wLTA9ZXF1YWxzJnZhbHVl
MC0wLTA9cmV2aWV3JTJCIgotICAgICAgICBsb2coIkxvYWRpbmcgY29tbWl0IHF1ZXVlIikKKyAg
ICAgICAgY29tbWl0X3F1ZXVlX3VybCA9IHNlbGYuYnVnX3NlcnZlcl91cmwgKyAiYnVnbGlzdC5j
Z2k/cXVlcnlfZm9ybWF0PWFkdmFuY2VkJmJ1Z19zdGF0dXM9VU5DT05GSVJNRUQmYnVnX3N0YXR1
cz1ORVcmYnVnX3N0YXR1cz1BU1NJR05FRCZidWdfc3RhdHVzPVJFT1BFTkVEJmZpZWxkMC0wLTA9
ZmxhZ3R5cGVzLm5hbWUmdHlwZTAtMC0wPWVxdWFscyZ2YWx1ZTAtMC0wPWNvbW1pdC1xdWV1ZSUy
QiIKIAogICAgICAgICBwYWdlID0gdXJsbGliMi51cmxvcGVuKGNvbW1pdF9xdWV1ZV91cmwpCiAg
ICAgICAgIHNvdXAgPSBCZWF1dGlmdWxTb3VwKHBhZ2UpCi0gICAgCisKICAgICAgICAgYnVnX2lk
cyA9IFtdCiAgICAgICAgICMgR3JhYiB0aGUgY2VsbHMgaW4gdGhlIGZpcnN0IGNvbHVtbiAod2hp
Y2ggaGFwcGVucyB0byBiZSB0aGUgYnVnIGlkcykKICAgICAgICAgZm9yIGJ1Z19saW5rX2NlbGwg
aW4gc291cCgndGQnLCAiZmlyc3QtY2hpbGQiKTogIyB0ZHMgd2l0aCB0aGUgY2xhc3MgImZpcnN0
LWNoaWxkIgogICAgICAgICAgICAgYnVnX2xpbmsgPSBidWdfbGlua19jZWxsLmZpbmQoImEiKQog
ICAgICAgICAgICAgYnVnX2lkcy5hcHBlbmQoYnVnX2xpbmsuc3RyaW5nKSAjIHRoZSBjb250ZW50
cyBoYXBwZW4gdG8gYmUgdGhlIGJ1ZyBpZAotICAgIAorCiAgICAgICAgIHJldHVybiBidWdfaWRz
CiAKICAgICBkZWYgZmV0Y2hfcGF0Y2hlc19mcm9tX2NvbW1pdF9xdWV1ZShzZWxmKToKICAgICAg
ICAgcGF0Y2hlc190b19sYW5kID0gW10KICAgICAgICAgZm9yIGJ1Z19pZCBpbiBzZWxmLmZldGNo
X2J1Z19pZHNfZnJvbV9jb21taXRfcXVldWUoKToKLSAgICAgICAgICAgIHBhdGNoZXMgPSBzZWxm
LmZldGNoX3Jldmlld2VkX3BhdGNoZXNfZnJvbV9idWcoYnVnX2lkKQorICAgICAgICAgICAgcGF0
Y2hlcyA9IHNlbGYuZmV0Y2hfY29tbWl0X3F1ZXVlX3BhdGNoZXNfZnJvbV9idWcoYnVnX2lkKQog
ICAgICAgICAgICAgcGF0Y2hlc190b19sYW5kICs9IHBhdGNoZXMKICAgICAgICAgcmV0dXJuIHBh
dGNoZXNfdG9fbGFuZA==
</data>
<flag name="review"
          id="18205"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>