<?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>34550</bug_id>
          
          <creation_ts>2010-02-03 17:59:59 -0800</creation_ts>
          <short_desc>REGRESSION (r51644): WebCore/manual-tests/linkjump-1.html fails</short_desc>
          <delta_ts>2010-02-03 19:44:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>187576</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-03 17:59:59 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/51644 caused manual-tests/linkjump to fail.

Previously, fragment scrolls didn&apos;t actually update a Document&apos;s URL.  After r51644, they did, causing improper relative URL calculation when clicking on anchors that only contain an (empty) fragment identifier.

Turns out that when computing a new URL with a base and relative URL, KURL didn&apos;t correctly handle the case of an empty fragment ID.

A comment in the relevant code correctly called out the fact that the RFC notes that an empty reference relative to an absolute URL means the new URL refers to the same document, but left out the fact that it refers to the same document *with any existing fragment identifier removed*

One line fix + layout tests are coming up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187578</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-03 18:05:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/7595694&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187580</commentid>
    <comment_count>2</comment_count>
      <attachid>48088</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-03 18:08:04 -0800</bug_when>
    <thetext>Created attachment 48088
1 line fix, updated comment, and a veritable cornucopia of layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187598</commentid>
    <comment_count>3</comment_count>
      <attachid>48088</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-03 19:15:11 -0800</bug_when>
    <thetext>Comment on attachment 48088
1 line fix, updated comment, and a veritable cornucopia of layout tests 

r=me

Do these tests cover cases that used to be covered by manual tests? If not, can the latter be converted to automated ones, as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187601</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-03 19:26:31 -0800</bug_when>
    <thetext>These tests definitely (largely) overlap with the original manual-tests/linkjump-1.html test using &quot;EventSender Technology™&quot; unavailable in the dark ages, and I suspect they cover the original manual test.

If you think it should be removed, I&apos;d like to do that in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187602</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-03 19:28:56 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/54321</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187603</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-03 19:34:10 -0800</bug_when>
    <thetext>&gt;If you think it should be removed, I&apos;d like to do that in a separate patch.

It&apos;s nice to reduce the number of manual tests when possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187607</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2010-02-03 19:44:42 -0800</bug_when>
    <thetext>rs=you on removing it and logging that commit here?  :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48088</attachid>
            <date>2010-02-03 18:08:04 -0800</date>
            <delta_ts>2010-02-03 19:15:11 -0800</delta_ts>
            <desc>1 line fix, updated comment, and a veritable cornucopia of layout tests </desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>14336</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDMxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDItMDMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJF
R1JFU1NJT04gKHI1MTY0NCk6IFdlYkNvcmUvbWFudWFsLXRlc3RzL2xpbmtqdW1wLTEuaHRtbCBm
YWlscworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU5NTY5ND4gYW5kIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDU1MAorCisgICAgICAgIFRlc3RzOiBmYXN0L2xv
YWRlci9kb2N1bWVudC13aXRoLWZyYWdtZW50LXVybC0xLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvbG9hZGVyL2RvY3VtZW50LXdpdGgtZnJhZ21lbnQtdXJsLTIuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9sb2FkZXIvZG9jdW1lbnQtd2l0aC1mcmFnbWVudC11cmwtMy5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2xvYWRlci9kb2N1bWVudC13aXRoLWZyYWdtZW50LXVybC00Lmh0bWwKKwor
ICAgICAgICAqIHBsYXRmb3JtL0tVUkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S1VSTDo6aW5p
dCk6IFdoZW4gcmVzb2x2aW5nIG5ldyBVUkwgZnJvbSBhbiBlbXB0eSByZWZlcmVuY2UgcmVsYXRp
dmUgdG8gYW4gYWJzb2x1dGUgVVJMLAorICAgICAgICAgIGFueSBmcmFnbWVudCBpZGVudGlmaWVy
IGZyb20gdGhlIGFic29sdXRlIFVSTCBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIHRoZSByZXN1bHRp
bmcgcmVzb2x1dGlvbi4KKwogMjAxMC0wMi0wMyAgQWRlbGUgUGV0ZXJzb24gIDxhZGVsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9LVVJMLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0tVUkwu
Y3BwCShyZXZpc2lvbiA1NDMxNikKKysrIFdlYkNvcmUvcGxhdGZvcm0vS1VSTC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQyMiw5ICs0MjIsOSBAQCB2b2lkIEtVUkw6OmluaXQoY29uc3QgS1VSTCYg
YmFzZSwgY29uc3QgCiAKICAgICAgICAgc3dpdGNoIChzdHJbMF0pIHsKICAgICAgICAgY2FzZSAn
XDAnOgotICAgICAgICAgICAgLy8gdGhlIHJlZmVyZW5jZSBtdXN0IGJlIGVtcHR5IC0gdGhlIFJG
QyBzYXlzIHRoaXMgaXMgYQotICAgICAgICAgICAgLy8gcmVmZXJlbmNlIHRvIHRoZSBzYW1lIGRv
Y3VtZW50CisgICAgICAgICAgICAvLyBUaGUgcmVmZXJlbmNlIGlzIGVtcHR5LCBzbyB0aGlzIGlz
IGEgcmVmZXJlbmNlIHRvIHRoZSBzYW1lIGRvY3VtZW50IHdpdGggYW55IGZyYWdtZW50IGlkZW50
aWZpZXIgcmVtb3ZlZC4KICAgICAgICAgICAgICp0aGlzID0gYmFzZTsKKyAgICAgICAgICAgIHJl
bW92ZUZyYWdtZW50SWRlbnRpZmllcigpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgJyMnOiB7CiAgICAgICAgICAgICAvLyBtdXN0IGJlIGZyYWdtZW50LW9ubHkgcmVmZXJlbmNl
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA1NDMxNykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEwLTAyLTAzICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSRUdSRVNTSU9OIChyNTE2NDQpOiBXZWJDb3JlL21hbnVhbC10ZXN0cy9saW5r
anVtcC0xLmh0bWwgZmFpbHMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1OTU2OTQ+IGFuZCBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ1NTAKKworICAgICAgICAq
IGZhc3QvbG9hZGVyL2RvY3VtZW50LXdpdGgtZnJhZ21lbnQtdXJsLTEtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2xvYWRlci9kb2N1bWVudC13aXRoLWZyYWdtZW50LXVybC0x
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL2RvY3VtZW50LXdpdGgtZnJhZ21l
bnQtdXJsLTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2xvYWRlci9kb2N1
bWVudC13aXRoLWZyYWdtZW50LXVybC0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9h
ZGVyL2RvY3VtZW50LXdpdGgtZnJhZ21lbnQtdXJsLTMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2xvYWRlci9kb2N1bWVudC13aXRoLWZyYWdtZW50LXVybC0zLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL2RvY3VtZW50LXdpdGgtZnJhZ21lbnQtdXJsLTQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2xvYWRlci9kb2N1bWVudC13aXRo
LWZyYWdtZW50LXVybC00Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL3Jlc291
cmNlcy9kb2N1bWVudC13aXRoLWZyYWdtZW50LXVybC10ZXN0Lmh0bWw6IEFkZGVkLgorCiAyMDEw
LTAyLTAzICBBZGVsZSBQZXRlcnNvbiAgPGFkZWxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBGcmFzZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9kb2N1
bWVudC13aXRoLWZyYWdtZW50LXVybC0xLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2xvYWRlci9kb2N1bWVudC13aXRoLWZyYWdtZW50LXVybC0xLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2RvY3VtZW50LXdp
dGgtZnJhZ21lbnQtdXJsLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYg
QEAKK0FMRVJUOiBGaXJzdCBsb2FkIGNvbXBsZXRlLiAgVVJMJ3MgY3VycmVudCBoYXNoIGlzIAor
QUxFUlQ6IEhhc2ggY2hhbmdlZCB0byAjZm9vCitBTEVSVDogU2Vjb25kIGxvYWQgY29tcGxldGUu
ICBVUkwncyBjdXJyZW50IGhhc2ggaXMgCitDbGljayB0aGUgZm9sbG93aW5nIGxpbmsgdG8gbmF2
aWdhdGUgdG8gI2ZvbyBvbiB0aGlzIHBhZ2UuIFRoZW4gY2xpY2sgdGhlIHNlY29uZCBsaW5rLCB3
aGljaCBoYXMgYW4gZW1wdHkgaHJlZiBhbmQgc2hvdWxkIHRha2UgeW91IGJhY2sgdG8gdGhlIG9y
aWdpbmFsIFVSTCB3aXRob3V0IHRoZSAjZm9vLgorQ2xpY2sgaGVyZSB0byBnbyB0byAjZm9vCitD
bGljayBoZXJlIHRvIHJldHVybiB0byB0aGUgb3JpZ2luYWwgcGFnZSB3aXRoIHRoZSBvcmlnaW5h
bCB1cmwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2RvY3VtZW50LXdpdGgtZnJhZ21l
bnQtdXJsLTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9kb2N1
bWVudC13aXRoLWZyYWdtZW50LXVybC0xLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9kb2N1bWVudC13aXRoLWZyYWdtZW50LXVybC0xLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNTUgQEAKKzxzY3JpcHQ+CisKK2lmICghc2Vzc2lvblN0b3JhZ2UuaW5f
ZG9jdW1lbnRfd2l0aF9mcmFnbWVudF91cmxfMSkKKyAgICBzZXNzaW9uU3RvcmFnZS5pbl9kb2N1
bWVudF93aXRoX2ZyYWdtZW50X3VybF8xID0gdHJ1ZTsKK2Vsc2UKKyAgICBkZWxldGUgc2Vzc2lv
blN0b3JhZ2UuaW5fZG9jdW1lbnRfd2l0aF9mcmFnbWVudF91cmxfMTsKKworaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1
bmN0aW9uIGRvY3VtZW50VVJMSGFzaCgpCit7CisgICAgdmFyIGluZGV4ID0gZG9jdW1lbnQuVVJM
Lmxhc3RJbmRleE9mKCIjIik7CisgICAgaWYgKGluZGV4ID09IC0xKQorICAgICAgICByZXR1cm4g
IiI7CisgICAgcmV0dXJuIGRvY3VtZW50LlVSTC5zdWJzdHJpbmcoaW5kZXgpOworfQorCitmdW5j
dGlvbiBoYXNoQ2hhbmdlZCgpCit7CisgICAgYWxlcnQoIkhhc2ggY2hhbmdlZCB0byAiICsgZG9j
dW1lbnRVUkxIYXNoKCkpOworICAgIHNldFRpbWVvdXQoImNsaWNrU2Vjb25kQW5jaG9yKCk7Iiwg
MCk7Cit9CisKK2Z1bmN0aW9uIGNsaWNrU2Vjb25kQW5jaG9yKCkKK3sKKyAgICB2YXIgcmVjdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWNvbmRhbmNob3IiKS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhyZWN0LmxlZnQgKyByZWN0Lndp
ZHRoIC8gMiwgcmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDIpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gbG9h
ZGVkKCkKK3sKKyAgICBpZiAoc2Vzc2lvblN0b3JhZ2UuaW5fZG9jdW1lbnRfd2l0aF9mcmFnbWVu
dF91cmxfMSkgeworICAgICAgICBhbGVydCgiRmlyc3QgbG9hZCBjb21wbGV0ZS4gIFVSTCdzIGN1
cnJlbnQgaGFzaCBpcyAiICsgZG9jdW1lbnRVUkxIYXNoKCkpOworICAgICAgICB2YXIgcmVjdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaXJzdGFuY2hvciIpLmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhyZWN0LmxlZnQgKyByZWN0
LndpZHRoIC8gMiwgcmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDIpOworICAgICAgICBldmVudFNl
bmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIGFsZXJ0KCJTZWNvbmQgbG9hZCBjb21wbGV0ZS4gIFVSTCdzIGN1cnJl
bnQgaGFzaCBpcyAiICsgZG9jdW1lbnRVUkxIYXNoKCkpOworICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8Ym9keSBvbmhhc2hjaGFuZ2U9Imhh
c2hDaGFuZ2VkKCk7IiBvbmxvYWQ9ImxvYWRlZCgpOyI+CitDbGljayB0aGUgZm9sbG93aW5nIGxp
bmsgdG8gbmF2aWdhdGUgdG8gI2ZvbyBvbiB0aGlzIHBhZ2UuICBUaGVuIGNsaWNrIHRoZSBzZWNv
bmQgbGluaywgd2hpY2ggaGFzIGFuIGVtcHR5IGhyZWYgYW5kIHNob3VsZCB0YWtlIHlvdSBiYWNr
IHRvIHRoZSBvcmlnaW5hbCBVUkwgd2l0aG91dCB0aGUgI2Zvby48YnI+Cis8YSBpZD0iZmlyc3Rh
bmNob3IiIGhyZWY9IiNmb28iPkNsaWNrIGhlcmUgdG8gZ28gdG8gI2ZvbzwvYT48YnI+Cis8ZGl2
IGlkPSJmb28iPjxhIGlkPSJzZWNvbmRhbmNob3IiIGhyZWY9IiI+Q2xpY2sgaGVyZSB0byByZXR1
cm4gdG8gdGhlIG9yaWdpbmFsIHBhZ2Ugd2l0aCB0aGUgb3JpZ2luYWwgdXJsPC9hPjwvZGl2Pgor
PC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZG9jdW1lbnQtd2l0aC1mcmFn
bWVudC11cmwtMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9s
b2FkZXIvZG9jdW1lbnQtd2l0aC1mcmFnbWVudC11cmwtMi1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9kb2N1bWVudC13aXRoLWZyYWdtZW50LXVy
bC0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1IEBACitBTEVSVDogRmly
c3QgbG9hZCBjb21wbGV0ZS4gIFVSTCdzIGN1cnJlbnQgaGFzaCBpcyAjZm9vCitBTEVSVDogU2Vj
b25kIGxvYWQgY29tcGxldGUuICBVUkwncyBjdXJyZW50IGhhc2ggaXMgCitDbGljayBoZXJlIHRv
IGdvIHRvIHRoZSB0b3Agb2YgdGhlIHBhZ2UKKworVGhpcyBwYWdlIHNob3VsZCBtYW51YWxseSBi
ZSBsb2FkZWQgd2l0aCAiI2ZvbyIgYXBwZW5kZWQgdG8gdGhlIFVSTC4gV2hlbiB5b3UgdGhlbiBj
bGljayB0aGUgbGluaywgdGhlIHBhZ2Ugc2hvdWxkIG5hdmlnYXRlIHRvIHRoZSB1cmwgd2l0aG91
dCAjZm9vLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZG9jdW1lbnQtd2l0aC1mcmFn
bWVudC11cmwtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Rv
Y3VtZW50LXdpdGgtZnJhZ21lbnQtdXJsLTIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvbG9hZGVyL2RvY3VtZW50LXdpdGgtZnJhZ21lbnQtdXJsLTIuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw5IEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cit9CisKK2xvY2F0aW9uID0gInJl
c291cmNlcy9kb2N1bWVudC13aXRoLWZyYWdtZW50LXVybC10ZXN0Lmh0bWwjZm9vIjsKKworPC9z
Y3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9kb2N1bWVudC13aXRoLWZyYWdt
ZW50LXVybC0zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9kb2N1bWVudC13aXRoLWZyYWdtZW50LXVybC0zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2RvY3VtZW50LXdpdGgtZnJhZ21lbnQtdXJs
LTMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUgQEAKK0FMRVJUOiBGaXJz
dCBsb2FkIGNvbXBsZXRlLiAgVVJMJ3MgY3VycmVudCBoYXNoIGlzIAorQUxFUlQ6IEFmdGVyIHB1
c2hTdGF0ZSwgdGhlIFVSTCdzIGN1cnJlbnQgaGFzaCBpcyAjZm9vCitBTEVSVDogU2Vjb25kIGxv
YWQgY29tcGxldGUuICBVUkwncyBjdXJyZW50IGhhc2ggaXMgCitUaGlzIHBhZ2UgdXNlcyBoaXN0
b3J5LnB1c2hTdGF0ZSgpIHRvIGFkZCAjZm9vIHRvIGl0cyBVUkwuIFRoZW4gY2xpY2sgdGhlIHNl
Y29uZCBsaW5rLCB3aGljaCBoYXMgYW4gZW1wdHkgaHJlZiBhbmQgc2hvdWxkIHRha2UgeW91IGJh
Y2sgdG8gdGhlIG9yaWdpbmFsIFVSTCB3aXRob3V0IHRoZSAjZm9vLgorQ2xpY2sgaGVyZSB0byBy
ZXR1cm4gdG8gdGhlIG9yaWdpbmFsIHBhZ2Ugd2l0aCB0aGUgb3JpZ2luYWwgdXJsCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9kb2N1bWVudC13aXRoLWZyYWdtZW50LXVybC0zLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZG9jdW1lbnQtd2l0aC1mcmFn
bWVudC11cmwtMy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
ZG9jdW1lbnQtd2l0aC1mcmFnbWVudC11cmwtMy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQ3IEBACis8c2NyaXB0PgorCitpZiAoIXNlc3Npb25TdG9yYWdlLmluX2RvY3VtZW50X3dpdGhf
ZnJhZ21lbnRfdXJsXzMpCisgICAgc2Vzc2lvblN0b3JhZ2UuaW5fZG9jdW1lbnRfd2l0aF9mcmFn
bWVudF91cmxfMyA9IHRydWU7CitlbHNlCisgICAgZGVsZXRlIHNlc3Npb25TdG9yYWdlLmluX2Rv
Y3VtZW50X3dpdGhfZnJhZ21lbnRfdXJsXzM7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBkb2N1bWVu
dFVSTEhhc2goKQoreworICAgIHZhciBpbmRleCA9IGRvY3VtZW50LlVSTC5sYXN0SW5kZXhPZigi
IyIpOworICAgIGlmIChpbmRleCA9PSAtMSkKKyAgICAgICAgcmV0dXJuICIiOworICAgIHJldHVy
biBkb2N1bWVudC5VUkwuc3Vic3RyaW5nKGluZGV4KTsKK30KKworZnVuY3Rpb24gaGFzaENoYW5n
ZWQoKQoreworICAgIGFsZXJ0KCJIYXNoIGNoYW5nZWQgdG8gIiArIGRvY3VtZW50VVJMSGFzaCgp
ICsgIiB3aGljaCBpcyBpbnRlcmVzdGluZyBiZWNhdXNlIHdlIHNob3VsZG4ndCBnZXQgYSBoYXNo
Y2hhbmdlIGV2ZW50IGluIHRoaXMgdGVzdC4iKTsKK30KKworZnVuY3Rpb24gbG9hZGVkKCkKK3sK
KyAgICBpZiAoc2Vzc2lvblN0b3JhZ2UuaW5fZG9jdW1lbnRfd2l0aF9mcmFnbWVudF91cmxfMykg
eworICAgICAgICBhbGVydCgiRmlyc3QgbG9hZCBjb21wbGV0ZS4gIFVSTCdzIGN1cnJlbnQgaGFz
aCBpcyAiICsgZG9jdW1lbnRVUkxIYXNoKCkpOworICAgICAgICBoaXN0b3J5LnB1c2hTdGF0ZShu
dWxsLCBudWxsLCAiI2ZvbyIpOworICAgICAgICBhbGVydCgiQWZ0ZXIgcHVzaFN0YXRlLCB0aGUg
VVJMJ3MgY3VycmVudCBoYXNoIGlzICIgKyBkb2N1bWVudFVSTEhhc2goKSk7CisgICAgICAgIHZh
ciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsaWNrYW5jaG9yIikuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHJlY3QubGVm
dCArIHJlY3Qud2lkdGggLyAyLCByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMik7CisgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgYWxlcnQoIlNlY29uZCBsb2FkIGNvbXBsZXRlLiAgVVJM
J3MgY3VycmVudCBoYXNoIGlzICIgKyBkb2N1bWVudFVSTEhhc2goKSk7CisgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzxib2R5IG9uaGFzaGNo
YW5nZT0iaGFzaENoYW5nZWQoKTsiIG9ubG9hZD0ibG9hZGVkKCk7Ij4KK1RoaXMgcGFnZSB1c2Vz
IGhpc3RvcnkucHVzaFN0YXRlKCkgdG8gYWRkICNmb28gdG8gaXRzIFVSTC4gIFRoZW4gY2xpY2sg
dGhlIHNlY29uZCBsaW5rLCB3aGljaCBoYXMgYW4gZW1wdHkgaHJlZiBhbmQgc2hvdWxkIHRha2Ug
eW91IGJhY2sgdG8gdGhlIG9yaWdpbmFsIFVSTCB3aXRob3V0IHRoZSAjZm9vLjxicj4KKzxhIGlk
PSJjbGlja2FuY2hvciIgaHJlZj0iIj5DbGljayBoZXJlIHRvIHJldHVybiB0byB0aGUgb3JpZ2lu
YWwgcGFnZSB3aXRoIHRoZSBvcmlnaW5hbCB1cmw8L2E+Cis8L2JvZHk+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2xvYWRlci9kb2N1bWVudC13aXRoLWZyYWdtZW50LXVybC00LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9kb2N1bWVudC13aXRoLWZy
YWdtZW50LXVybC00LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvbG9hZGVyL2RvY3VtZW50LXdpdGgtZnJhZ21lbnQtdXJsLTQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDUgQEAKK0FMRVJUOiBGaXJzdCBsb2FkIGNvbXBsZXRlLiAgVVJM
J3MgY3VycmVudCBoYXNoIGlzIAorQUxFUlQ6IEFmdGVyIHJlcGxhY2VTdGF0ZSwgdGhlIFVSTCdz
IGN1cnJlbnQgaGFzaCBpcyAjZm9vCitBTEVSVDogU2Vjb25kIGxvYWQgY29tcGxldGUuICBVUkwn
cyBjdXJyZW50IGhhc2ggaXMgCitUaGlzIHBhZ2UgdXNlcyBoaXN0b3J5LnJlcGxhY2VTdGF0ZSgp
IHRvIGFkZCAjZm9vIHRvIGl0cyBVUkwuIFRoZW4gY2xpY2sgdGhlIHNlY29uZCBsaW5rLCB3aGlj
aCBoYXMgYW4gZW1wdHkgaHJlZiBhbmQgc2hvdWxkIHRha2UgeW91IGJhY2sgdG8gdGhlIG9yaWdp
bmFsIFVSTCB3aXRob3V0IHRoZSAjZm9vLgorQ2xpY2sgaGVyZSB0byByZXR1cm4gdG8gdGhlIG9y
aWdpbmFsIHBhZ2Ugd2l0aCB0aGUgb3JpZ2luYWwgdXJsCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2xvYWRlci9kb2N1bWVudC13aXRoLWZyYWdtZW50LXVybC00Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZG9jdW1lbnQtd2l0aC1mcmFnbWVudC11cmwtNC5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZG9jdW1lbnQtd2l0aC1m
cmFnbWVudC11cmwtNC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBACis8c2NyaXB0
PgorCitpZiAoIXNlc3Npb25TdG9yYWdlLmluX2RvY3VtZW50X3dpdGhfZnJhZ21lbnRfdXJsXzQp
CisgICAgc2Vzc2lvblN0b3JhZ2UuaW5fZG9jdW1lbnRfd2l0aF9mcmFnbWVudF91cmxfNCA9IHRy
dWU7CitlbHNlCisgICAgZGVsZXRlIHNlc3Npb25TdG9yYWdlLmluX2RvY3VtZW50X3dpdGhfZnJh
Z21lbnRfdXJsXzQ7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBkb2N1bWVudFVSTEhhc2goKQorewor
ICAgIHZhciBpbmRleCA9IGRvY3VtZW50LlVSTC5sYXN0SW5kZXhPZigiIyIpOworICAgIGlmIChp
bmRleCA9PSAtMSkKKyAgICAgICAgcmV0dXJuICIiOworICAgIHJldHVybiBkb2N1bWVudC5VUkwu
c3Vic3RyaW5nKGluZGV4KTsKK30KKworZnVuY3Rpb24gaGFzaENoYW5nZWQoKQoreworICAgIGFs
ZXJ0KCJIYXNoIGNoYW5nZWQgdG8gIiArIGRvY3VtZW50VVJMSGFzaCgpICsgIiB3aGljaCBpcyBp
bnRlcmVzdGluZyBiZWNhdXNlIHdlIHNob3VsZG4ndCBnZXQgYSBoYXNoY2hhbmdlIGV2ZW50IGlu
IHRoaXMgdGVzdC4iKTsKK30KKworZnVuY3Rpb24gbG9hZGVkKCkKK3sKKyAgICBpZiAoc2Vzc2lv
blN0b3JhZ2UuaW5fZG9jdW1lbnRfd2l0aF9mcmFnbWVudF91cmxfNCkgeworICAgICAgICBhbGVy
dCgiRmlyc3QgbG9hZCBjb21wbGV0ZS4gIFVSTCdzIGN1cnJlbnQgaGFzaCBpcyAiICsgZG9jdW1l
bnRVUkxIYXNoKCkpOworICAgICAgICBoaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCBudWxsLCAi
I2ZvbyIpOworICAgICAgICBhbGVydCgiQWZ0ZXIgcmVwbGFjZVN0YXRlLCB0aGUgVVJMJ3MgY3Vy
cmVudCBoYXNoIGlzICIgKyBkb2N1bWVudFVSTEhhc2goKSk7CisgICAgICAgIHZhciByZWN0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsaWNrYW5jaG9yIikuZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHJlY3QubGVmdCArIHJlY3Qu
d2lkdGggLyAyLCByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMik7CisgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgYWxlcnQoIlNlY29uZCBsb2FkIGNvbXBsZXRlLiAgVVJMJ3MgY3VycmVu
dCBoYXNoIGlzICIgKyBkb2N1bWVudFVSTEhhc2goKSk7CisgICAgICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzxib2R5IG9uaGFzaGNoYW5nZT0iaGFz
aENoYW5nZWQoKTsiIG9ubG9hZD0ibG9hZGVkKCk7Ij4KK1RoaXMgcGFnZSB1c2VzIGhpc3Rvcnku
cmVwbGFjZVN0YXRlKCkgdG8gYWRkICNmb28gdG8gaXRzIFVSTC4gIFRoZW4gY2xpY2sgdGhlIHNl
Y29uZCBsaW5rLCB3aGljaCBoYXMgYW4gZW1wdHkgaHJlZiBhbmQgc2hvdWxkIHRha2UgeW91IGJh
Y2sgdG8gdGhlIG9yaWdpbmFsIFVSTCB3aXRob3V0IHRoZSAjZm9vLjxicj4KKzxhIGlkPSJjbGlj
a2FuY2hvciIgaHJlZj0iIj5DbGljayBoZXJlIHRvIHJldHVybiB0byB0aGUgb3JpZ2luYWwgcGFn
ZSB3aXRoIHRoZSBvcmlnaW5hbCB1cmw8L2E+Cis8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2xvYWRlci9yZXNvdXJjZXMvZG9jdW1lbnQtd2l0aC1mcmFnbWVudC11cmwtdGVzdC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9kb2N1bWVu
dC13aXRoLWZyYWdtZW50LXVybC10ZXN0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvZG9jdW1lbnQtd2l0aC1mcmFnbWVudC11cmwtdGVzdC5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACis8c2NyaXB0PgorCitpZiAoIXNlc3Np
b25TdG9yYWdlLmluX2RvY3VtZW50X3dpdGhfZnJhZ21lbnRfdXJsXzIpCisgICAgc2Vzc2lvblN0
b3JhZ2UuaW5fZG9jdW1lbnRfd2l0aF9mcmFnbWVudF91cmxfMiA9IHRydWU7CitlbHNlCisgICAg
ZGVsZXRlIHNlc3Npb25TdG9yYWdlLmluX2RvY3VtZW50X3dpdGhfZnJhZ21lbnRfdXJsXzI7CisK
K2Z1bmN0aW9uIGRvY3VtZW50VVJMSGFzaCgpCit7CisgICAgdmFyIGluZGV4ID0gZG9jdW1lbnQu
VVJMLmxhc3RJbmRleE9mKCIjIik7CisgICAgaWYgKGluZGV4ID09IC0xKQorICAgICAgICByZXR1
cm4gIiI7CisgICAgcmV0dXJuIGRvY3VtZW50LlVSTC5zdWJzdHJpbmcoaW5kZXgpOworfQorICAg
IAorZnVuY3Rpb24gaGFzaENoYW5nZWQoKQoreworICAgIGFsZXJ0KCJoYXNoQ2hhbmdlZCB0byAi
ICsgZG9jdW1lbnRVUkxIYXNoKCkgKyAiIHdoaWNoIGlzIGludGVyZXN0aW5nIGJlY2F1c2UgdGhp
cyBwYXJ0aWN1bGFyIHRlc3Qgc2hvdWxkbid0IGdlbmVyYXRlZCBhIGhhc2hjaGFuZ2UgZXZlbnQi
KTsKK30KKworZnVuY3Rpb24gbG9hZGVkKCkKK3sKKyAgICBpZiAoc2Vzc2lvblN0b3JhZ2UuaW5f
ZG9jdW1lbnRfd2l0aF9mcmFnbWVudF91cmxfMikgeworICAgICAgICBhbGVydCgiRmlyc3QgbG9h
ZCBjb21wbGV0ZS4gIFVSTCdzIGN1cnJlbnQgaGFzaCBpcyAiICsgZG9jdW1lbnRVUkxIYXNoKCkp
OworICAgICAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGlja0VsZW1l
bnQiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8ocmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDIsIHJlY3QudG9wICsgcmVjdC5oZWlnaHQg
LyAyKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBhbGVydCgiU2Vjb25kIGxvYWQg
Y29tcGxldGUuICBVUkwncyBjdXJyZW50IGhhc2ggaXMgIiArIGRvY3VtZW50VVJMSGFzaCgpKTsK
KyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CisKKzwvc2NyaXB0Pgor
PGJvZHkgb25oYXNoY2hhbmdlPSJoYXNoQ2hhbmdlZCgpOyIgb25sb2FkPSJsb2FkZWQoKTsiPgor
PGRpdiBpZD0iZm9vIj48YSBpZD0iY2xpY2tFbGVtZW50IiBocmVmPSIiPkNsaWNrIGhlcmUgdG8g
Z28gdG8gdGhlIHRvcCBvZiB0aGUgcGFnZTwvYT48L2Rpdj48YnI+CitUaGlzIHBhZ2Ugc2hvdWxk
IG1hbnVhbGx5IGJlIGxvYWRlZCB3aXRoICIjZm9vIiBhcHBlbmRlZCB0byB0aGUgVVJMLiAgV2hl
biB5b3UgdGhlbiBjbGljayB0aGUgbGluaywgdGhlIHBhZ2Ugc2hvdWxkIG5hdmlnYXRlIHRvIHRo
ZSB1cmwgd2l0aG91dCAjZm9vLgorPC9ib2R5Pgo=
</data>
<flag name="review"
          id="30708"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="30709"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>