<?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>45799</bug_id>
          
          <creation_ts>2010-09-14 18:52:02 -0700</creation_ts>
          <short_desc>bugs.webkit.org should autocomplete WebKit Committers and Reviewers</short_desc>
          <delta_ts>2010-09-14 21:28:22 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>aroben</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric</cc>
    
    <cc>jparent</cc>
    
    <cc>levin</cc>
    
    <cc>ojan</cc>
    
    <cc>wsiegrist</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>279312</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-14 18:52:02 -0700</bug_when>
    <thetext>bugs.webkit.org should autocomplete WebKit Committers and Reviewers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279318</commentid>
    <comment_count>1</comment_count>
      <attachid>67633</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-14 18:55:44 -0700</bug_when>
    <thetext>Created attachment 67633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279322</commentid>
    <comment_count>2</comment_count>
      <attachid>67633</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-14 19:00:42 -0700</bug_when>
    <thetext>Comment on attachment 67633
Patch

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

&gt; BugsSite/template/en/default/global/footer.html.tmpl:46
&gt; +&lt;script src=&quot;/committers-autocomplete.js&quot;&gt;&lt;/script&gt;
Should this really be on every page?  Also seems we should use the new defer or async hotness.

I think Ojan and wms should see this, but looks sane to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279323</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-14 19:02:29 -0700</bug_when>
    <thetext>CCing bugzilla hackers.  It&apos;s sooo sooo sad that bugzilla doesn&apos;t have this, even in new versions it seems.  We really should be pulling from bugzilla&apos;s own user list.

If we&apos;re not going to pull from bugzilla&apos;s user list, then we have the popup have a link to explain where this list comes from and how to fix it.  Many of the emails it choses are wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279325</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-14 19:05:09 -0700</bug_when>
    <thetext>Committed r67528: &lt;http://trac.webkit.org/changeset/67528&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279327</commentid>
    <comment_count>5</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-09-14 19:07:36 -0700</bug_when>
    <thetext>&gt; CCing bugzilla hackers.  It&apos;s sooo sooo sad that bugzilla doesn&apos;t have this, even in new versions it seems.  We really should be pulling from bugzilla&apos;s own user list.
&gt; 
&gt; If we&apos;re not going to pull from bugzilla&apos;s user list, then we have the popup have a link to explain where this list comes from and how to fix it.  Many of the emails it choses are wrong.

The only time it chooses the wrong one is when the person&apos;s bugzilla email address is not the first one listed in committers.py. There are other scripts that expect the first entry to be the bugzilla address as well, so this isn&apos;t the only thing that would break.

I&apos;m not sure we really want it to pull from bugzilla&apos;s user list. For example, I have my personal email address in bugzilla as well, but I don&apos;t want people CCing that address by mistake. Maybe we could have the entry in committers.py override bugzilla? In either case, with the exception of the issue above, I think what&apos;s here works fine.

Eric beat me to the r+. I&apos;m happy to kill the extension. It was only an extension to start with in order to get around cross-domain request restrictions.

&gt; BugsSite/committers-autocomplete.js:384
&gt; +    WebKitCommitters.getCommitters(function (committers) {
Not sure it&apos;s worth keeping this a separate object. It was just done that way to work with the way extensions work (i.e. the injected script can&apos;t access committers.py.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279371</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-14 21:28:22 -0700</bug_when>
    <thetext>I did it that way because I expect other scripts to use it in the future ....</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67633</attachid>
            <date>2010-09-14 18:55:44 -0700</date>
            <delta_ts>2010-09-14 19:02:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45799-20100914185542.patch</filename>
            <type>text/plain</type>
            <size>14466</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IEJ1Z3NTaXRlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBCdWdzU2l0ZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDY3NTI1KQorKysgQnVnc1NpdGUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjggQEAKKzIwMTAtMDktMTQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBi
dWdzLndlYmtpdC5vcmcgc2hvdWxkIGF1dG9jb21wbGV0ZSBXZWJLaXQgQ29tbWl0dGVycyBhbmQg
UmV2aWV3ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NTc5OQorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBhbiBhdXRvY29tcGxldGUg
ZHJvcGRvd24gdGhhdCBoZWxwcyB1c2VycyB0eXBlCisgICAgICAgIHRoZSBuYW1lcyBvZiBXZWJL
aXQgY29tbWl0dGVycyBhbmQgcmV2aWV3ZXJzLiAgVGhlIHNjcmlwdCBncmFicyB0aGUKKyAgICAg
ICAgZGF0YSBmcm9tIFNWTiBub3cgdGhhdCB3bXMgc2V0IHVwIENPUlMgZm9yIGh0dHA6Ly9zdm4u
d2Via2l0Lm9yZy4KKyAgICAgICAgU2VjdXJpdHkgdGVjaG5vbG9neSBmb3IgdGhlIHdpbi4KKwor
ICAgICAgICBUaGlzIHNjcmlwdCBpcyBiYXNlZCBvbiAod2VsbCwgZXNzZW50aWFsbHkgY29waWVk
IGZyb20pIHRoZSBwb3B1bGFyCisgICAgICAgIGF1dG9jb21wbGV0ZSBleHRlbnNpb246CisKKyAg
ICAgICAgaHR0cHM6Ly9jaHJvbWUuZ29vZ2xlLmNvbS9leHRlbnNpb25zL2RldGFpbC9vbGFhYmhj
Z2RvZ2NiY29pb2xvbWxjb2RrbmduZW1mYgorCisgICAgICAgIEkgYXNrZWQgT2phbiwgYW5kIHNh
aWQgaGUgd2FzIGZpbmUgbGljZW5zaW5nIHRoZSBjb2RlIHVuZGVyIHRoZSBCU0QKKyAgICAgICAg
bGljZW5zZS4gIEknbSBub3Qgc3VyZSBob3cgdGhlIHBhdGNoIGludGVyYWN0cyB3aXRoIHRoZSBl
eHRlbnNpb24sIGJ1dAorICAgICAgICB3ZSBjYW4gcmV0aXJlIHRoZSBleHRlbnNpb24gaWYgdGhl
eSBpbnRlcmFjdCBwb29ybHkuCisKKyAgICAgICAgKiBjb21taXR0ZXJzLWF1dG9jb21wbGV0ZS5q
czogQWRkZWQuCisgICAgICAgICogdGVtcGxhdGUvZW4vZGVmYXVsdC9nbG9iYWwvZm9vdGVyLmh0
bWwudG1wbDoKKyAgICAgICAgICAgIC0gQWRkIHRoZSBzY3JpcHQgdG8gZXZlcnkgcGFnZSBvbiBi
dWdzLndlYmtpdC5vcmcKKwogMjAxMC0wOS0xNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIEFkZCBhIGxpY2Vuc2UgYmxvY2sgdG8gdGhlIHJldmlld3Rvb2wuICBJ
IHNob3VsZCBoYXZlIGFkZGVkIHRoaXMgZnJvbQpJbmRleDogQnVnc1NpdGUvY29tbWl0dGVycy1h
dXRvY29tcGxldGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQnVnc1NpdGUvY29tbWl0dGVycy1hdXRvY29t
cGxldGUuanMJKHJldmlzaW9uIDApCisrKyBCdWdzU2l0ZS9jb21taXR0ZXJzLWF1dG9jb21wbGV0
ZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzODcgQEAKKy8vIENvcHlyaWdodCAoQykgMjAx
MCBPamFuIFZhZmFpLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IChDKSAyMDEw
IEFkYW0gQmFydGguIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlIG1ldDoKKy8vCisvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisvLyB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8KKy8vIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0IG5vdGljZSwKKy8vIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKy8vIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLy8KKy8vIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKy8vIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKy8vIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKy8vIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisvLyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisvLyBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorLy8g
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKy8vIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorLy8gTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorLy8g
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNICisvLyBEQU1BR0UuCisKK1dlYktpdENvbW1pdHRlcnMgPSAoZnVu
Y3Rpb24oKSB7CisgICAgdmFyIENPTU1JVFRFUlNfVVJMID0gJ2h0dHA6Ly9zdm4ud2Via2l0Lm9y
Zy9yZXBvc2l0b3J5L3dlYmtpdC90cnVuay9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jb25maWcvY29tbWl0dGVycy5weSc7CisgICAgdmFyIG1fY29tbWl0dGVyczsKKworICAg
IGZ1bmN0aW9uIGdldFZhbHVlcyhwYXJhbSkgeworICAgICAgICB2YXIgbmV4dFF1b3RlID0gL15b
XiJdKiIvZzsKKyAgICAgICAgdmFyIHZhbHVlcyA9IFtdOworICAgICAgICBuZXh0UXVvdGUubGFz
dEluZGV4ID0gMDsKKyAgICAgICAgd2hpbGUgKG5leHRRdW90ZS5leGVjKHBhcmFtKSAhPSBudWxs
KSB7CisgICAgICAgICAgICB2YXIgbmV4dEluZGV4ID0gcGFyYW0uaW5kZXhPZignIicsIG5leHRR
dW90ZS5sYXN0SW5kZXgpOyAvLyBGb3IgZW1hY3MgIiB0byBiYWxhbmNlIHRoZSBxdW90ZXMuCisg
ICAgICAgICAgICB2YWx1ZXMucHVzaChwYXJhbS5zdWJzdHJpbmcobmV4dFF1b3RlLmxhc3RJbmRl
eCwgbmV4dEluZGV4KSk7CisgICAgICAgICAgICBwYXJhbSA9IHBhcmFtLnN1YnN0cmluZyhuZXh0
SW5kZXggKyAxKTsKKyAgICAgICAgICAgIG5leHRRdW90ZS5sYXN0SW5kZXggPSAwOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiB2YWx1ZXM7CisgICAgfQorCisgICAgZnVuY3Rpb24gcGFyc2VS
ZWNvcmQoa2V5LCByZWNvcmQpIHsKKyAgICAgICAgdmFyIGtleUluZGV4ID0gcmVjb3JkLmluZGV4
T2Yoa2V5KTsKKyAgICAgICAgaWYgKGtleUluZGV4IDwgMCkKKyAgICAgICAgICAgIHJldHVybiBu
dWxsOworICAgICAgICByZWNvcmQgPSByZWNvcmQuc3Vic3RyaW5nKGtleUluZGV4ICsga2V5Lmxl
bmd0aCk7CisKKyAgICAgICAgdmFyIGZpcnN0UGFyZW4gPSAvXlxzKlwoXHMqL2c7CisgICAgICAg
IGZpcnN0UGFyZW4ubGFzdEluZGV4ID0gMDsKKyAgICAgICAgaWYgKCFmaXJzdFBhcmVuLmV4ZWMo
cmVjb3JkKSkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICByZWNvcmQgPSByZWNv
cmQuc3Vic3RyaW5nKGZpcnN0UGFyZW4ubGFzdEluZGV4KTsKKworICAgICAgICB2YXIgcGFyc2Vk
UmVzdWx0ID0ge307CisKKyAgICAgICAgLy8gZnVsbCBuYW1lCisgICAgICAgIHZhciBwYXJhbSA9
IC9eXHMqKChcW1teXF1dK1xdKXwoIlteIl0rIikpXHMqL2c7IC8vIEZvciBlbWFjcyAiIHRvIGJh
bGFuY2UgdGhlIHF1b3Rlcy4KKyAgICAgICAgcGFyYW0ubGFzdEluZGV4ID0gMDsKKyAgICAgICAg
dmFyIG5hbWVQYXJhbSA9IHBhcmFtLmV4ZWMocmVjb3JkKTsKKyAgICAgICAgaWYgKCFuYW1lUGFy
YW0pCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgcmVjb3JkID0gcmVjb3JkLnN1
YnN0cmluZyhwYXJhbS5sYXN0SW5kZXgpOworCisgICAgICAgIC8vIFNhdmUgdGhlIG5hbWUgd2l0
aG91dCB0aGUgcXVvdGVzLgorICAgICAgICBwYXJzZWRSZXN1bHQubmFtZSA9IG5hbWVQYXJhbVsw
XS5zbGljZSgxLCBuYW1lUGFyYW1bMF0ubGVuZ3RoIC0gMSk7CisKKyAgICAgICAgdmFyIHBhcmFt
U2VwYXJhdG9yID0gL15ccyosXHMqL2c7CisgICAgICAgIHBhcmFtU2VwYXJhdG9yLmxhc3RJbmRl
eCA9IDA7CisgICAgICAgIGlmICghcGFyYW1TZXBhcmF0b3IuZXhlYyhyZWNvcmQpKQorICAgICAg
ICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIHJlY29yZCA9IHJlY29yZC5zdWJzdHJpbmcocGFy
YW1TZXBhcmF0b3IubGFzdEluZGV4KTsKKworICAgICAgICAvLyBlbWFpbAorICAgICAgICBwYXJh
bS5sYXN0SW5kZXggPSAwOworICAgICAgICBlbWFpbFBhcmFtID0gcGFyYW0uZXhlYyhyZWNvcmQp
OworICAgICAgICBpZiAoIWVtYWlsUGFyYW0pCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKwor
ICAgICAgICBlbWFpbHMgPSBnZXRWYWx1ZXMoZW1haWxQYXJhbVswXSk7CisgICAgICAgIHBhcnNl
ZFJlc3VsdC5lbWFpbHMgPSBlbWFpbHM7CisgICAgICAgIHJlY29yZCA9IHJlY29yZC5zdWJzdHJp
bmcocGFyYW0ubGFzdEluZGV4KTsKKworICAgICAgICBwYXJhbVNlcGFyYXRvci5sYXN0SW5kZXgg
PSAwOworICAgICAgICBpZiAoIXBhcmFtU2VwYXJhdG9yLmV4ZWMocmVjb3JkKSkKKyAgICAgICAg
ICAgIHJldHVybiBwYXJzZWRSZXN1bHQ7CisgICAgICAgIHJlY29yZCA9IHJlY29yZC5zdWJzdHJp
bmcocGFyYW1TZXBhcmF0b3IubGFzdEluZGV4KTsKKworICAgICAgICAvLyBpcmMKKyAgICAgICAg
cGFyYW0ubGFzdEluZGV4ID0gMDsKKyAgICAgICAgaXJjUGFyYW0gPSBwYXJhbS5leGVjKHJlY29y
ZCk7CisgICAgICAgIGlmICghaXJjUGFyYW0pCisgICAgICAgICAgICByZXR1cm4gcGFyc2VkUmVz
dWx0OworICAgICAgICByZWNvcmQgPSByZWNvcmQuc3Vic3RyaW5nKHBhcmFtLmxhc3RJbmRleCk7
CisKKyAgICAgICAgaXJjID0gZ2V0VmFsdWVzKGlyY1BhcmFtWzBdKTsKKyAgICAgICAgcGFyc2Vk
UmVzdWx0LmlyYyA9IGlyYzsKKyAgICAgICAgcmV0dXJuIHBhcnNlZFJlc3VsdDsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBwYXJzZVR5cGUoa2V5LCByZWNvcmRzLCB0eXBlKSB7CisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFy
IHJlY29yZCA9IHJlY29yZHNbaV07CisgICAgICAgICAgICB2YXIgcmVzdWx0ID0gcGFyc2VSZWNv
cmQoa2V5LCByZWNvcmQpOworICAgICAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICByZXN1bHQudHlwZSA9IHR5cGU7CisgICAgICAgICAg
ICBtX2NvbW1pdHRlcnMucHVzaChyZXN1bHQpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcGFyc2VDb21taXR0ZXJzUHkodGV4dCkgeworICAgICAgICBtX2NvbW1pdHRlcnMgPSBb
XTsKKworICAgICAgICB2YXIgcmVjb3JkcyA9IHRleHQuc3BsaXQoJ1xuJyk7CisgICAgICAgIHBh
cnNlVHlwZSgnQ29tbWl0dGVyJywgcmVjb3JkcywgJ2MnKTsKKyAgICAgICAgcGFyc2VUeXBlKCdS
ZXZpZXdlcicsIHJlY29yZHMsICdyJyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9hZENvbW1p
dHRlcnMoY2FsbGJhY2spIHsKKyAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgp
OworICAgICAgICB4aHIub3BlbignR0VUJywgQ09NTUlUVEVSU19VUkwpOworCisgICAgICAgIHho
ci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHBhcnNlQ29tbWl0dGVyc1B5KHho
ci5yZXNwb25zZVRleHQpOworICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfTsKKwor
ICAgICAgICB4aHIub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgY29uc29sZS5s
b2coJ1VuYWJsZSB0byBsb2FkIGNvbW1pdHRlcnMucHknKTsKKyAgICAgICAgICAgIGNhbGxiYWNr
KCk7CisgICAgICAgIH07CisKKyAgICAgICAgeGhyLnNlbmQoKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBnZXRDb21taXR0ZXJzKGNhbGxiYWNrKSB7CisgICAgICAgIGlmIChtX2NvbW1pdHRlcnMp
IHsKKyAgICAgICAgICAgIGNhbGxiYWNrKG1fY29tbWl0dGVycyk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBsb2FkQ29tbWl0dGVycyhmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGNhbGxiYWNrKG1fY29tbWl0dGVycyk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIHJldHVybiB7CisgICAgICAgICJnZXRDb21taXR0ZXJzIjogZ2V0Q29tbWl0dGVycworICAg
IH07Cit9KSgpOworCisoZnVuY3Rpb24oKSB7CisgICAgdmFyIFNJTkdMRV9FTUFJTF9JTlBVVFMg
PSBbJ2VtYWlsMScsICdlbWFpbDInLCAncmVxdWVzdGVyJywgJ3JlcXVlc3RlZScsICdhc3NpZ25l
ZF90byddOworICAgIHZhciBFTUFJTF9JTlBVVFMgPSBTSU5HTEVfRU1BSUxfSU5QVVRTLmNvbmNh
dChbJ2NjJywgJ25ld2NjJywgJ25ld193YXRjaGVkdXNlcnMnXSk7CisKKyAgICB2YXIgbV9tZW51
cyA9IHt9OworICAgIHZhciBtX2ZvY3VzZWRJbnB1dDsKKyAgICB2YXIgbV9jb21taXR0ZXJzOwor
ICAgIHZhciBtX3ByZWZpeDsKKyAgICB2YXIgbV9zZWxlY3RlZEluZGV4OworCisgICAgZnVuY3Rp
b24gY29udGFjdHNNYXRjaGluZyhwcmVmaXgpIHsKKyAgICAgICAgdmFyIGxpc3QgPSBbXTsKKyAg
ICAgICAgaWYgKCFwcmVmaXgpCisgICAgICAgICAgICByZXR1cm4gbGlzdDsKKworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IG1fY29tbWl0dGVycy5sZW5ndGg7IGkrKykgeworICAgICAgICAg
ICAgaWYgKGlzTWF0Y2gobV9jb21taXR0ZXJzW2ldLCBwcmVmaXgpKQorICAgICAgICAgICAgICAg
IGxpc3QucHVzaChtX2NvbW1pdHRlcnNbaV0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBs
aXN0OworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0YXJ0c1dpdGgoc3RyLCBwcmVmaXgpIHsKKyAg
ICAgICAgcmV0dXJuIHN0ci50b0xvd2VyQ2FzZSgpLmluZGV4T2YocHJlZml4LnRvTG93ZXJDYXNl
KCkpID09IDA7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RhcnRzV2l0aEFueShhcnJ5LCBwcmVm
aXgpIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJ5Lmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgICAgICBpZiAoc3RhcnRzV2l0aChhcnJ5W2ldLCBwcmVmaXgpKQorICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBpc01hdGNoKGNvbnRhY3QsIHByZWZpeCkgeworICAgICAgICBpZiAo
c3RhcnRzV2l0aEFueShjb250YWN0LmVtYWlscywgcHJlZml4KSkKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgICAgIGlmIChjb250YWN0LmlyYyAmJiBzdGFydHNXaXRoQW55KGNvbnRh
Y3QuaXJjLCBwcmVmaXgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgdmFy
IG5hbWVzID0gY29udGFjdC5uYW1lLnNwbGl0KCcgJyk7CisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChzdGFydHNXaXRoKG5h
bWVzW2ldLCBwcmVmaXgpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgZnVuY3Rpb24g
aXNNZW51VmlzaWJsZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldE1lbnUoKS5zdHlsZS5kaXNwbGF5
ICE9ICdub25lJzsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzaG93TWVudShzaG91bGRTaG93KSB7
CisgICAgICAgIGdldE1lbnUoKS5zdHlsZS5kaXNwbGF5ID0gc2hvdWxkU2hvdyA/ICcnIDogJ25v
bmUnOworICAgIH0KKworICAgIGZ1bmN0aW9uIHVwZGF0ZU1lbnUoKSB7CisgICAgICAgIHZhciBu
ZXdQcmVmaXggPSBtX2ZvY3VzZWRJbnB1dC52YWx1ZTsKKyAgICAgICAgaWYgKG5ld1ByZWZpeCkg
eworICAgICAgICAgICAgbmV3UHJlZml4ID0gbmV3UHJlZml4LnNsaWNlKGdldFN0YXJ0KCksIGdl
dEVuZCgpKTsKKyAgICAgICAgICAgIG5ld1ByZWZpeCA9IG5ld1ByZWZpeC5yZXBsYWNlKC9eXHMr
LywgJycpOworICAgICAgICAgICAgbmV3UHJlZml4ID0gbmV3UHJlZml4LnJlcGxhY2UoL1xzKyQv
LCAnJyk7CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9wcmVmaXggPT0gbmV3UHJlZml4KQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fcHJlZml4ID0gbmV3UHJlZml4OworCisg
ICAgICAgIHZhciBjb250YWN0cyA9IGNvbnRhY3RzTWF0Y2hpbmcobV9wcmVmaXgpOworICAgICAg
ICBpZiAoY29udGFjdHMubGVuZ3RoID09IDAgfHwgY29udGFjdHMubGVuZ3RoID09IDEgJiYgY29u
dGFjdHNbMF0uZW1haWxzWzBdID09IG1fcHJlZml4KSB7CisgICAgICAgICAgICBzaG93TWVudShm
YWxzZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB2YXIgaHRt
bCA9IFtdOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbnRhY3RzLmxlbmd0aDsgaSsr
KSB7CisgICAgICAgICAgICB2YXIgY29udGFjdCA9IGNvbnRhY3RzW2ldOworICAgICAgICAgICAg
aHRtbC5wdXNoKCc8ZGl2IHN0eWxlPSJwYWRkaW5nOjFweCAycHg7IiAnICsgJ2VtYWlsPScgKwor
ICAgICAgICAgICAgICAgIGNvbnRhY3QuZW1haWxzWzBdICsgJz4nICsgY29udGFjdC5uYW1lICsg
JyAtICcgKyBjb250YWN0LmVtYWlsc1swXSk7CisgICAgICAgICAgICBpZiAoY29udGFjdC5pcmMp
CisgICAgICAgICAgICAgICAgaHRtbC5wdXNoKCcgKDonICsgY29udGFjdC5pcmMgKyAnKScpOwor
ICAgICAgICAgICAgaHRtbC5wdXNoKCcgKCcgKyBjb250YWN0LnR5cGUgKyAnKScpOworICAgICAg
ICAgICAgaHRtbC5wdXNoKCc8L2Rpdj4nKTsKKyAgICAgICAgfQorICAgICAgICBnZXRNZW51KCku
aW5uZXJIVE1MID0gaHRtbC5qb2luKCcnKTsKKyAgICAgICAgc2VsZWN0SXRlbSgwKTsKKyAgICAg
ICAgc2hvd01lbnUodHJ1ZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZ2V0SW5kZXgoaXRlbSkg
eworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdldE1lbnUoKS5jaGlsZE5vZGVzLmxlbmd0
aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBnZXRNZW51KCkuY2hpbGROb2Rlc1tp
XSkKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgfQorICAgICAgICBjb25zb2xl
LmVycm9yKCJDb3VsZG4ndCBmaW5kIGl0ZW0uIik7CisgICAgfQorCisgICAgZnVuY3Rpb24gZ2V0
TWVudSgpIHsKKyAgICAgICAgcmV0dXJuIG1fbWVudXNbbV9mb2N1c2VkSW5wdXQubmFtZV07Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gY3JlYXRlTWVudShuYW1lLCBpbnB1dCkgeworICAgICAgICBp
ZiAoIW1fbWVudXNbbmFtZV0pIHsKKyAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICBtZW51LnN0eWxlLmNzc1RleHQgPQorICAg
ICAgICAgICAgICAgICJwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6MXB4IHNvbGlkIGJsYWNrO2Jh
Y2tncm91bmQtY29sb3I6d2hpdGU7LXdlYmtpdC1ib3gtc2hhZG93OjNweCAzcHggM3B4ICM4ODg7
IjsKKyAgICAgICAgICAgIG1lbnUuc3R5bGUubWluV2lkdGggPSBtX2ZvY3VzZWRJbnB1dC5vZmZz
ZXRXaWR0aCArICdweCc7CisgICAgICAgICAgICBtX2ZvY3VzZWRJbnB1dC5wYXJlbnROb2RlLmlu
c2VydEJlZm9yZShtZW51LCBtX2ZvY3VzZWRJbnB1dC5uZXh0U2libGluZyk7CisKKyAgICAgICAg
ICAgIG1lbnUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgICAgIHNlbGVjdEl0ZW0oZ2V0SW5kZXgoZS50YXJnZXQpKTsKKyAgICAgICAgICAg
ICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
bWVudS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgICAgIGlmIChtX3NlbGVjdGVkSW5kZXggPT0gZ2V0SW5kZXgoZS50YXJnZXQpKQorICAgICAg
ICAgICAgICAgICAgICBpbnNlcnRTZWxlY3RlZEl0ZW0oKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBtX21lbnVzW25hbWVdID0gbWVudTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGdldFN0YXJ0KCkgeworICAgICAgICB2YXIgaW5kZXggPSBt
X2ZvY3VzZWRJbnB1dC52YWx1ZS5sYXN0SW5kZXhPZignLCcsIG1fZm9jdXNlZElucHV0LnNlbGVj
dGlvblN0YXJ0IC0gMSk7CisgICAgICAgIGlmIChpbmRleCA9PSAtMSkKKyAgICAgICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gaW5kZXggKyAxOworICAgIH0KKworICAgIGZ1bmN0aW9u
IGdldEVuZCgpIHsKKyAgICAgICAgdmFyIGluZGV4ID0gbV9mb2N1c2VkSW5wdXQudmFsdWUuaW5k
ZXhPZignLCcsIG1fZm9jdXNlZElucHV0LnNlbGVjdGlvblN0YXJ0KTsKKyAgICAgICAgaWYgKGlu
ZGV4ID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIG1fZm9jdXNlZElucHV0LnZhbHVlLmxlbmd0
aDsKKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KKworICAgIGZ1bmN0aW9uIGdldEl0ZW0o
aW5kZXgpIHsKKyAgICAgICAgcmV0dXJuIGdldE1lbnUoKS5jaGlsZE5vZGVzW2luZGV4XTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBzZWxlY3RJdGVtKGluZGV4KSB7CisgICAgICAgIGlmIChpbmRl
eCA8IDAgfHwgaW5kZXggPj0gZ2V0TWVudSgpLmNoaWxkTm9kZXMubGVuZ3RoKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIGlmIChtX3NlbGVjdGVkSW5kZXggIT0gdW5kZWZpbmVkKSB7
CisgICAgICAgICAgICBnZXRJdGVtKG1fc2VsZWN0ZWRJbmRleCkuc3R5bGUuYmFja2dyb3VuZENv
bG9yID0gJyc7CisgICAgICAgICAgICBnZXRJdGVtKG1fc2VsZWN0ZWRJbmRleCkuc3R5bGUuY29s
b3IgPSAnJzsKKyAgICAgICAgfQorCisgICAgICAgIGdldEl0ZW0oaW5kZXgpLnN0eWxlLmJhY2tn
cm91bmRDb2xvciA9ICcjMDM5JzsKKyAgICAgICAgZ2V0SXRlbShpbmRleCkuc3R5bGUuY29sb3Ig
PSAnd2hpdGUnOworCisgICAgICAgIG1fc2VsZWN0ZWRJbmRleCA9IGluZGV4OworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGluc2VydFNlbGVjdGVkSXRlbSgpIHsKKyAgICAgICAgdmFyIHNlbGVjdGVk
RW1haWwgPSBnZXRJdGVtKG1fc2VsZWN0ZWRJbmRleCkuZ2V0QXR0cmlidXRlKCdlbWFpbCcpOwor
ICAgICAgICB2YXIgb2xkVmFsdWUgPSBtX2ZvY3VzZWRJbnB1dC52YWx1ZTsKKworICAgICAgICB2
YXIgbmV3VmFsdWUgPSBvbGRWYWx1ZS5zbGljZSgwLCBnZXRTdGFydCgpKSArIHNlbGVjdGVkRW1h
aWwgKyBvbGRWYWx1ZS5zbGljZShnZXRFbmQoKSk7CisgICAgICAgIGlmIChTSU5HTEVfRU1BSUxf
SU5QVVRTLmluZGV4T2YobV9mb2N1c2VkSW5wdXQubmFtZSkgPT0gLTEgJiYKKyAgICAgICAgICAg
IG5ld1ZhbHVlLmNoYXJBdChuZXdWYWx1ZS5sZW5ndGggLSAxKSAhPSAnLCcpCisgICAgICAgICAg
ICBuZXdWYWx1ZSA9IG5ld1ZhbHVlICsgJywnOworCisgICAgICAgIG1fZm9jdXNlZElucHV0LnZh
bHVlID0gbmV3VmFsdWU7CisgICAgICAgIHNob3dNZW51KGZhbHNlKTsgICAgCisgICAgfQorCisg
ICAgZnVuY3Rpb24gaGFuZGxlS2V5RG93bihlKSB7CisgICAgICAgIGlmICghaXNNZW51VmlzaWJs
ZSgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHN3aXRjaCAoZS5rZXlJZGVudGlm
aWVyKSB7CisgICAgICAgICAgICBjYXNlICdVcCc6CisgICAgICAgICAgICAgICAgc2VsZWN0SXRl
bShtX3NlbGVjdGVkSW5kZXggLSAxKTsKKyAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0
KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNh
c2UgJ0Rvd24nOgorICAgICAgICAgICAgICAgIHNlbGVjdEl0ZW0obV9zZWxlY3RlZEluZGV4ICsg
MSk7CisgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSAnRW50ZXInOgorICAg
ICAgICAgICAgICAgIGluc2VydFNlbGVjdGVkSXRlbSgpOworICAgICAgICAgICAgICAgIGUucHJl
dmVudERlZmF1bHQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGZ1bmN0aW9uIGhhbmRsZUtleVVwKGUpIHsKKyAgICAgICAgaWYgKGUua2V5SWRlbnRp
ZmllciA9PSAnRW50ZXInKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChtX2Zv
Y3VzZWRJbnB1dC5zZWxlY3Rpb25TdGFydCA9PSBtX2ZvY3VzZWRJbnB1dC5zZWxlY3Rpb25FbmQp
CisgICAgICAgICAgICB1cGRhdGVNZW51KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNo
b3dNZW51KGZhbHNlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBlbmFibGVBdXRvQ29tcGxldGUo
aW5wdXQpIHsKKyAgICAgICAgbV9mb2N1c2VkSW5wdXQgPSBpbnB1dDsKKworICAgICAgICBpZiAo
IWdldE1lbnUoKSkgeworICAgICAgICAgICAgY3JlYXRlTWVudShtX2ZvY3VzZWRJbnB1dC5uYW1l
KTsKKyAgICAgICAgICAgIG1fZm9jdXNlZElucHV0LnNldEF0dHJpYnV0ZSgnYXV0b2NvbXBsZXRl
JywgJ29mZicpOworICAgICAgICAgICAgbV9mb2N1c2VkSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcign
a2V5dXAnLCBoYW5kbGVLZXlVcCk7CisgICAgICAgICAgICBtX2ZvY3VzZWRJbnB1dC5hZGRFdmVu
dExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93bik7CisgICAgICAgICAgICBtX2ZvY3Vz
ZWRJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgc2hvd01lbnUoZmFsc2UpOworICAgICAgICAgICAgICAgIG1fcHJlZml4ID0gbnVsbDsK
KyAgICAgICAgICAgICAgICBtX3NlbGVjdGVkSW5kZXggPSAwOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHVwZGF0ZU1lbnUoKTsKKyAgICB9CisKKyAgICBk
b2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgZnVuY3Rpb24oZSkgeworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IEVNQUlMX0lOUFVUUy5sZW5ndGg7IGkrKykgeworICAgICAg
ICAgICAgaWYgKGUudGFyZ2V0Lm5hbWUgPT0gRU1BSUxfSU5QVVRTW2ldKSB7CisgICAgICAgICAg
ICAgICAgZW5hYmxlQXV0b0NvbXBsZXRlKGUudGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgV2ViS2l0Q29tbWl0
dGVycy5nZXRDb21taXR0ZXJzKGZ1bmN0aW9uIChjb21taXR0ZXJzKSB7CisgICAgICAgIG1fY29t
bWl0dGVycyA9IGNvbW1pdHRlcnM7CisgICAgfSk7Cit9KSgpOwpJbmRleDogQnVnc1NpdGUvdGVt
cGxhdGUvZW4vZGVmYXVsdC9nbG9iYWwvZm9vdGVyLmh0bWwudG1wbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBC
dWdzU2l0ZS90ZW1wbGF0ZS9lbi9kZWZhdWx0L2dsb2JhbC9mb290ZXIuaHRtbC50bXBsCShyZXZp
c2lvbiA2NzUxOCkKKysrIEJ1Z3NTaXRlL3RlbXBsYXRlL2VuL2RlZmF1bHQvZ2xvYmFsL2Zvb3Rl
ci5odG1sLnRtcGwJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAKIAogICA8ZGl2IGNs
YXNzPSJvdXRybyI+PC9kaXY+CiA8L2Rpdj4KLQorPHNjcmlwdCBzcmM9Ii9jb21taXR0ZXJzLWF1
dG9jb21wbGV0ZS5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CiAK
</data>
<flag name="review"
          id="56988"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>