<?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>109771</bug_id>
          
          <creation_ts>2013-02-13 16:38:25 -0800</creation_ts>
          <short_desc>Message generation should handle nested templates</short_desc>
          <delta_ts>2013-02-13 17:51:11 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>benjamin</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>832509</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-13 16:38:25 -0800</bug_when>
    <thetext>Message generation should handle nested templates</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832520</commentid>
    <comment_count>1</comment_count>
      <attachid>188223</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-13 16:42:59 -0800</bug_when>
    <thetext>Created attachment 188223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832534</commentid>
    <comment_count>2</comment_count>
      <attachid>188223</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-13 16:57:57 -0800</bug_when>
    <thetext>Comment on attachment 188223
Patch

Attachment 188223 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16527418</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832554</commentid>
    <comment_count>3</comment_count>
      <attachid>188227</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-13 17:05:10 -0800</bug_when>
    <thetext>Created attachment 188227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832596</commentid>
    <comment_count>4</comment_count>
      <attachid>188227</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-13 17:35:46 -0800</bug_when>
    <thetext>Comment on attachment 188227
Patch

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

&gt; Source/WebKit2/ChangeLog:13
&gt; +        (template_parameters):
&gt; +        (class_template_headers):

Maybe explain that they&apos;re mutually recursive?

&gt; Source/WebKit2/Scripts/webkit2/messages.py:376
&gt; +        return ([], [template_string])

Why don&apos;t we use dictionary for the return value instead so that we don&apos;t have to remember which one is which?
Also, you don&apos;t need parenthesis here.

&gt; Source/WebKit2/Scripts/webkit2/messages.py:439
&gt; +    headers = []

How about using set() for headers so that we don&apos;t include the same header multiple times?

&gt; Source/WebKit2/Scripts/webkit2/messages.py:452
&gt; +        split = type.split(&apos;::&apos;)
&gt; +        if len(split) &lt; 2:
&gt; +            continue

Should we support fully qualified names like ::WTF::HashMap?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832601</commentid>
    <comment_count>5</comment_count>
      <attachid>188227</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-13 17:45:37 -0800</bug_when>
    <thetext>Comment on attachment 188227
Patch

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

&gt;&gt; Source/WebKit2/ChangeLog:13
&gt;&gt; +        (class_template_headers):
&gt; 
&gt; Maybe explain that they&apos;re mutually recursive?

Only class_template_headers is recursive. I’ll add that. Come to think of it, template_parameters can just call parser.split_parameters_string - I’ll do that.

&gt;&gt; Source/WebKit2/Scripts/webkit2/messages.py:376
&gt;&gt; +        return ([], [template_string])
&gt; 
&gt; Why don&apos;t we use dictionary for the return value instead so that we don&apos;t have to remember which one is which?
&gt; Also, you don&apos;t need parenthesis here.

OK!

&gt;&gt; Source/WebKit2/Scripts/webkit2/messages.py:439
&gt;&gt; +    headers = []
&gt; 
&gt; How about using set() for headers so that we don&apos;t include the same header multiple times?

Headers are uniqued later.

&gt;&gt; Source/WebKit2/Scripts/webkit2/messages.py:452
&gt;&gt; +            continue
&gt; 
&gt; Should we support fully qualified names like ::WTF::HashMap?

Nah, WTF:: is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832605</commentid>
    <comment_count>6</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-13 17:51:11 -0800</bug_when>
    <thetext>Committed r142835: &lt;http://trac.webkit.org/changeset/142835&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188223</attachid>
            <date>2013-02-13 16:42:59 -0800</date>
            <delta_ts>2013-02-13 17:05:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109771-20130213163927.patch</filename>
            <type>text/plain</type>
            <size>10681</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjYyZTQwYzFkNGZlZDZm
OWRlYTg3NTI3M2MyMmJjMzc5MGJmM2UxMC4uYjRjOGE1ZDFkYjdkZDc1ZTBiMDE1ZDEzOWVkNjJh
NGFiNjYyMGU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDEzLTAyLTEzICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgTWVzc2FnZSBnZW5l
cmF0aW9uIHNob3VsZCBoYW5kbGUgbmVzdGVkIHRlbXBsYXRlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NzcxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byBoYXZlIG5l
c3RlZCBjbGFzcyB0ZW1wbGF0ZSB0eXBlcyBhcyBtZXNzYWdlIHBhcmFtZXRlcnMgYW5kCisgICAg
ICAgIGNvcnJlY3RseSBnYXRoZXIgYWxsIHRoZSBuZWVkZWQgaGVhZGVycyBhbmQgYXJndW1lbnQg
Y29kZXIgaGVhZGVycy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weToK
KyAgICAgICAgKHRlbXBsYXRlX3BhcmFtZXRlcnMpOgorICAgICAgICAoY2xhc3NfdGVtcGxhdGVf
aGVhZGVycyk6CisgICAgICAgIChhcmd1bWVudF9jb2Rlcl9oZWFkZXJzX2Zvcl90eXBlKToKKyAg
ICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNz
YWdlc191bml0dGVzdC5weToKKyAgICAgICAgKENvcmVJUEMpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0Mi9wYXJzZXIucHk6CisgICAgICAgIChzcGxpdF9wYXJhbWV0ZXJzX3N0cmluZyk6Cisg
ICAgICAgIChwYXJzZV9wYXJhbWV0ZXJzX3N0cmluZyk6CisKKzIwMTMtMDItMTMgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBSZW1vdmUgQ29ubmVjdGlv
bjo6UXVldWVDbGllbnQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwOTc0NAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtp
dDIvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMu
cHkKaW5kZXggNWU5OWY1MDBjMWFmZDQ3NDViYzFmZGVhZDlkMmViYzQ4ODYzY2U0YS4uMzhhMzI0
Y2MxMzZmMTI0NDg2ZDU4Mzg3N2VmNTg3ZjQ0YzQ1MzM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1Nj
cmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQpAQCAtMzM2LDEyICszMzYsNTQgQEAgZGVmIHN5bmNf
bWVzc2FnZV9zdGF0ZW1lbnQocmVjZWl2ZXIsIG1lc3NhZ2UpOgogICAgIHJldHVybiBzdXJyb3Vu
ZF9pbl9jb25kaXRpb24oJycuam9pbihyZXN1bHQpLCBtZXNzYWdlLmNvbmRpdGlvbikKIAogCitk
ZWYgdGVtcGxhdGVfcGFyYW1ldGVycyhwYXJhbWV0ZXJfc3RyaW5nKToKKyAgICBwYXJhbWV0ZXJz
ID0gW10KKyAgICBjdXJyZW50X3BhcmFtZXRlciA9ICcnCisKKyAgICBuZXN0X2xldmVsID0gMAor
ICAgIGZvciBjaGFyYWN0ZXIgaW4gcGFyYW1ldGVyX3N0cmluZzoKKyAgICAgICAgaWYgY2hhcmFj
dGVyID09ICcsJyBhbmQgbmVzdF9sZXZlbCA9PSAwOgorICAgICAgICAgICAgcGFyYW1ldGVycy5h
cHBlbmQoY3VycmVudF9wYXJhbWV0ZXIpCisgICAgICAgICAgICBjdXJyZW50X3BhcmFtZXRlciA9
ICcnCisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgIGlmIGNoYXJhY3RlciA9PSAnPCc6
CisgICAgICAgICAgICBuZXN0X2xldmVsICs9IDEKKyAgICAgICAgZWxpZiBjaGFyYWN0ZXIgPT0g
Jz4nOgorICAgICAgICAgICAgbmVzdF9sZXZlbCAtPSAxCisKKyAgICAgICAgY3VycmVudF9wYXJh
bWV0ZXIgKz0gY2hhcmFjdGVyCisKKyAgICBwYXJhbWV0ZXJzLmFwcGVuZChjdXJyZW50X3BhcmFt
ZXRlcikKKyAgICByZXR1cm4gcGFyYW1ldGVycworCisKK2RlZiBjbGFzc190ZW1wbGF0ZV9oZWFk
ZXJzKHRlbXBsYXRlX3N0cmluZyk6CisgICAgdGVtcGxhdGVfc3RyaW5nID0gdGVtcGxhdGVfc3Ry
aW5nLnN0cmlwKCkKKworICAgIGNsYXNzX3RlbXBsYXRlX3R5cGVzID0geworICAgICAgICAnVmVj
dG9yJzogeydoZWFkZXJzJzogWyc8d3RmL1ZlY3Rvci5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVh
ZGVycyc6IFsnIkFyZ3VtZW50Q29kZXJzLmgiJ119LAorICAgICAgICAnSGFzaE1hcCc6IHsnaGVh
ZGVycyc6IFsnPHd0Zi9IYXNoTWFwLmg+J10sICdhcmd1bWVudF9jb2Rlcl9oZWFkZXJzJzogWyci
QXJndW1lbnRDb2RlcnMuaCInXX0sCisgICAgICAgICdzdGQ6OnBhaXInOiB7J2hlYWRlcnMnOiBb
Jzx1dGlsaXR5PiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIkFyZ3VtZW50Q29kZXJz
LmgiJ119LAorICAgIH0KKworICAgIG1hdGNoID0gcmUubWF0Y2goJyg/UDx0ZW1wbGF0ZV9uYW1l
Pi4rPyk8KD9QPHBhcmFtZXRlcl9zdHJpbmc+LispPicsIHRlbXBsYXRlX3N0cmluZykKKyAgICBp
ZiBub3QgbWF0Y2g6CisgICAgICAgIHJldHVybiAoW10sIFt0ZW1wbGF0ZV9zdHJpbmddKQorICAg
IGhlYWRlcnMgPSBbY2xhc3NfdGVtcGxhdGVfdHlwZXNbbWF0Y2guZ3JvdXBkaWN0KClbJ3RlbXBs
YXRlX25hbWUnXV1dCisgICAgdHlwZXMgPSBbXQorCisgICAgZm9yIHBhcmFtZXRlciBpbiB0ZW1w
bGF0ZV9wYXJhbWV0ZXJzKG1hdGNoLmdyb3VwZGljdCgpWydwYXJhbWV0ZXJfc3RyaW5nJ10pOgor
ICAgICAgICBwYXJhbWV0ZXJfaGVhZGVycywgcGFyYW1ldGVyX3R5cGVzID0gY2xhc3NfdGVtcGxh
dGVfaGVhZGVycyhwYXJhbWV0ZXIpCisKKyAgICAgICAgaGVhZGVycyArPSBwYXJhbWV0ZXJfaGVh
ZGVycworICAgICAgICB0eXBlcyArPSBwYXJhbWV0ZXJfdHlwZXMKKworICAgIHJldHVybiBoZWFk
ZXJzLCB0eXBlcworCisKIGRlZiBhcmd1bWVudF9jb2Rlcl9oZWFkZXJzX2Zvcl90eXBlKHR5cGUp
OgotICAgICMgQ2hlY2sgZm9yIFZlY3Rvci4KLSAgICBtYXRjaCA9IHJlLnNlYXJjaChyJ1ZlY3Rv
cjwoLispPicsIHR5cGUpCi0gICAgaWYgbWF0Y2g6Ci0gICAgICAgIGVsZW1lbnRfdHlwZSA9IG1h
dGNoLmdyb3VwcygpWzBdLnN0cmlwKCkKLSAgICAgICAgcmV0dXJuIFsnIkFyZ3VtZW50Q29kZXJz
LmgiJ10gKyBhcmd1bWVudF9jb2Rlcl9oZWFkZXJzX2Zvcl90eXBlKGVsZW1lbnRfdHlwZSkKKyAg
ICBoZWFkZXJfaW5mb3MsIHR5cGVzID0gY2xhc3NfdGVtcGxhdGVfaGVhZGVycyh0eXBlKQogCiAg
ICAgc3BlY2lhbF9jYXNlcyA9IHsKICAgICAgICAgJ1dURjo6U3RyaW5nJzogJyJBcmd1bWVudENv
ZGVycy5oIicsCkBAIC0zNDksMjQgKzM5MSwyNSBAQCBkZWYgYXJndW1lbnRfY29kZXJfaGVhZGVy
c19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYktpdDo6V2ViQ29udGV4dFVzZXJNZXNzYWdl
RW5jb2Rlcic6ICciV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgiJywKICAgICB9CiAKLSAg
ICBpZiB0eXBlIGluIHNwZWNpYWxfY2FzZXM6Ci0gICAgICAgIHJldHVybiBbc3BlY2lhbF9jYXNl
c1t0eXBlXV0KKyAgICBoZWFkZXJzID0gW10KKyAgICBmb3IgaGVhZGVyX2luZm8gaW4gaGVhZGVy
X2luZm9zOgorICAgICAgICBoZWFkZXJzICs9IGhlYWRlcl9pbmZvWydhcmd1bWVudF9jb2Rlcl9o
ZWFkZXJzJ10KIAotICAgIHNwbGl0ID0gdHlwZS5zcGxpdCgnOjonKQotICAgIGlmIGxlbihzcGxp
dCkgPCAyOgotICAgICAgICByZXR1cm4gW10KLSAgICBpZiBzcGxpdFswXSA9PSAnV2ViQ29yZSc6
Ci0gICAgICAgIHJldHVybiBbJyJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCInXQorICAgIGZvciB0
eXBlIGluIHR5cGVzOgorICAgICAgICBpZiB0eXBlIGluIHNwZWNpYWxfY2FzZXM6CisgICAgICAg
ICAgICBoZWFkZXJzLmFwcGVuZChzcGVjaWFsX2Nhc2VzW3R5cGVdKQorICAgICAgICAgICAgY29u
dGludWUKIAotICAgIHJldHVybiBbXQorICAgICAgICBzcGxpdCA9IHR5cGUuc3BsaXQoJzo6JykK
KyAgICAgICAgaWYgbGVuKHNwbGl0KSA8IDI6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAg
ICBpZiBzcGxpdFswXSA9PSAnV2ViQ29yZSc6CisgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgn
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIicpCiAKKyAgICByZXR1cm4gaGVhZGVycwogCiBkZWYg
aGVhZGVyc19mb3JfdHlwZSh0eXBlKToKLSAgICAjIENoZWNrIGZvciBWZWN0b3IuCi0gICAgbWF0
Y2ggPSByZS5zZWFyY2gocidWZWN0b3I8KC4rKT4nLCB0eXBlKQotICAgIGlmIG1hdGNoOgotICAg
ICAgICBlbGVtZW50X3R5cGUgPSBtYXRjaC5ncm91cHMoKVswXS5zdHJpcCgpCi0gICAgICAgIHJl
dHVybiBbJzx3dGYvVmVjdG9yLmg+J10gKyBoZWFkZXJzX2Zvcl90eXBlKGVsZW1lbnRfdHlwZSkK
KyAgICBoZWFkZXJfaW5mb3MsIHR5cGVzID0gY2xhc3NfdGVtcGxhdGVfaGVhZGVycyh0eXBlKQog
CiAgICAgc3BlY2lhbF9jYXNlcyA9IHsKICAgICAgICAgJ1dURjo6U3RyaW5nJzogWyc8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+J10sCkBAIC0zODgsMTggKzQzMSwyOCBAQCBkZWYgaGVhZGVyc19mb3Jf
dHlwZSh0eXBlKToKICAgICAgICAgJ1dlYktpdDo6V2ViVG91Y2hFdmVudCc6IFsnIldlYkV2ZW50
LmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OldlYldoZWVsRXZlbnQnOiBbJyJXZWJFdmVudC5oIidd
LAogICAgIH0KLSAgICBpZiB0eXBlIGluIHNwZWNpYWxfY2FzZXM6Ci0gICAgICAgIHJldHVybiBz
cGVjaWFsX2Nhc2VzW3R5cGVdCi0KLSAgICAjIFdlIGFzc3VtZSB0aGF0IHdlIG11c3QgaW5jbHVk
ZSBhIGhlYWRlciBmb3IgYSB0eXBlIGlmZiBpdCBoYXMgYSBzY29wZQotICAgICMgcmVzb2x1dGlv
biBvcGVyYXRvciAoOjopLgotICAgIHNwbGl0ID0gdHlwZS5zcGxpdCgnOjonKQotICAgIGlmIGxl
bihzcGxpdCkgPCAyOgotICAgICAgICByZXR1cm4gW10KLSAgICBpZiBzcGxpdFswXSA9PSAnV2Vi
S2l0JyBvciBzcGxpdFswXSA9PSAnQ29yZUlQQyc6Ci0gICAgICAgIHJldHVybiBbJyIlcy5oIicg
JSBzcGxpdFsxXV0KLSAgICByZXR1cm4gWyc8JXMvJXMuaD4nICUgdHVwbGUoc3BsaXQpXQogCisg
ICAgaGVhZGVycyA9IFtdCisgICAgZm9yIGhlYWRlcl9pbmZvIGluIGhlYWRlcl9pbmZvczoKKyAg
ICAgICAgaGVhZGVycyArPSBoZWFkZXJfaW5mb1snaGVhZGVycyddCisKKyAgICBmb3IgdHlwZSBp
biB0eXBlczoKKyAgICAgICAgaWYgdHlwZSBpbiBzcGVjaWFsX2Nhc2VzOgorICAgICAgICAgICAg
aGVhZGVycyArPSBzcGVjaWFsX2Nhc2VzW3R5cGVdCisgICAgICAgICAgICBjb250aW51ZQorCisg
ICAgICAgICMgV2UgYXNzdW1lIHRoYXQgd2UgbXVzdCBpbmNsdWRlIGEgaGVhZGVyIGZvciBhIHR5
cGUgaWZmIGl0IGhhcyBhIHNjb3BlCisgICAgICAgICMgcmVzb2x1dGlvbiBvcGVyYXRvciAoOjop
LgorICAgICAgICBzcGxpdCA9IHR5cGUuc3BsaXQoJzo6JykKKyAgICAgICAgaWYgbGVuKHNwbGl0
KSA8IDI6CisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgIGlmIHNwbGl0WzBdID09ICdX
ZWJLaXQnIG9yIHNwbGl0WzBdID09ICdDb3JlSVBDJzoKKyAgICAgICAgICAgIGhlYWRlcnMuYXBw
ZW5kKCciJXMuaCInICUgc3BsaXRbMV0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBoZWFk
ZXJzLmFwcGVuZCgnPCVzLyVzLmg+JyAlIHR1cGxlKHNwbGl0KSkKKworICAgIHJldHVybiBoZWFk
ZXJzCiAKIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIoZmlsZSk6CiAgICAgcmVjZWl2ZXIg
PSBwYXJzZXIucGFyc2UoZmlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMv
d2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Vi
a2l0Mi9tZXNzYWdlc191bml0dGVzdC5weQppbmRleCA4ZjJhNmMzYTA3NDlmODY3NTg4ZWMxZGNh
N2JkNjc2YmJhZDQ3ODEyLi5iYWQyYjdhMDdjN2M1YTE2ODhhOWJlNzljNmRmOTM3YTA4YzE3NWYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5p
dHRlc3QucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3Vu
aXR0ZXN0LnB5CkBAIC03Myw2ICs3Myw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVj
ZWl2ZXIgewogCiAgICAgVGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMoW0F0dHJpYnV0ZU9uZSBBdHRy
aWJ1dGVUd29dIHVpbnQ2NF90IGZvbywgZG91YmxlIGJhciwgW0F0dHJpYnV0ZVRocmVlXSBkb3Vi
bGUgYmF6KQogCisgICAgVGVtcGxhdGVUZXN0KEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8U3Ry
aW5nLCB1aW50NjRfdD4gPiBhKQorCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIERpZENyZWF0ZVdl
YlByb2Nlc3NDb25uZWN0aW9uKENvcmVJUEM6Ok1hY2hQb3J0IGNvbm5lY3Rpb25JZGVudGlmaWVy
KQogI2VuZGlmCkBAIC0yMDcsNiArMjA5LDEzIEBAIF9leHBlY3RlZF9yZXN1bHRzID0gewogICAg
ICAgICAgICAgJ2NvbmRpdGlvbnMnOiAoTm9uZSksCiAgICAgICAgIH0sCiAgICAgICAgIHsKKyAg
ICAgICAgICAgICduYW1lJzogJ1RlbXBsYXRlVGVzdCcsCisgICAgICAgICAgICAncGFyYW1ldGVy
cyc6ICgKKyAgICAgICAgICAgICAgICAoJ0hhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8U3RyaW5n
LCB1aW50NjRfdD4gPicsICdhJyksCisgICAgICAgICAgICApLAorICAgICAgICAgICAgJ2NvbmRp
dGlvbnMnOiAoTm9uZSksCisgICAgICAgIH0sCisgICAgICAgIHsKICAgICAgICAgICAgICduYW1l
JzogJ0RpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uJywKICAgICAgICAgICAgICdwYXJhbWV0
ZXJzJzogKAogICAgICAgICAgICAgICAgICgnQ29yZUlQQzo6TWFjaFBvcnQnLCAnY29ubmVjdGlv
bklkZW50aWZpZXInKSwKQEAgLTMxMiw2ICszMjEsOCBAQCBfZXhwZWN0ZWRfaGVhZGVyID0gIiIi
LyoKICNpbmNsdWRlICJTdHJpbmdSZWZlcmVuY2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0tleWJv
YXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KKyNpbmNsdWRlIDx1
dGlsaXR5PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNh
ZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC01MTUsNiArNTI2
LDE4IEBAIHN0cnVjdCBUZXN0UGFyYW1ldGVyQXR0cmlidXRlcyA6IENvcmVJUEM6OkFyZ3VtZW50
czM8dWludDY0X3QsIGRvdWJsZSwgZG91YmxlPiB7CiAgICAgfQogfTsKIAorc3RydWN0IFRlbXBs
YXRlVGVzdCA6IENvcmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6
cGFpcjxTdHJpbmcsIHVpbnQ2NF90PiA+Jj4geworICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9
CisgICAgc3RhdGljIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBuYW1lKCkgeyByZXR1cm4gQ29y
ZUlQQzo6U3RyaW5nUmVmZXJlbmNlKCJUZW1wbGF0ZVRlc3QiKTsgfQorICAgIHN0YXRpYyBjb25z
dCBib29sIGlzU3luYyA9IGZhbHNlOworCisgICAgdHlwZWRlZiBDb3JlSVBDOjpBcmd1bWVudHMx
PGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8U3RyaW5nLCB1aW50NjRfdD4gPiY+IERl
Y29kZVR5cGU7CisgICAgZXhwbGljaXQgVGVtcGxhdGVUZXN0KGNvbnN0IEhhc2hNYXA8U3RyaW5n
LCBzdGQ6OnBhaXI8U3RyaW5nLCB1aW50NjRfdD4gPiYgYSkKKyAgICAgICAgOiBDb3JlSVBDOjpB
cmd1bWVudHMxPGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8U3RyaW5nLCB1aW50NjRf
dD4gPiY+KGEpCisgICAgeworICAgIH0KK307CisKICNpZiBQTEFURk9STShNQUMpCiBzdHJ1Y3Qg
RGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gOiBDb3JlSVBDOjpBcmd1bWVudHMxPGNvbnN0
IENvcmVJUEM6Ok1hY2hQb3J0Jj4gewogICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgcmVjZWl2ZXJOYW1lKCkgeyByZXR1cm4gbWVzc2FnZVJlY2VpdmVyTmFtZSgpOyB9CkBAIC02
MzEsNiArNjU0LDggQEAgX2V4cGVjdGVkX3JlY2VpdmVyX2ltcGxlbWVudGF0aW9uID0gIiIiLyoK
ICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNlbmRpZgogI2luY2x1ZGUgPFdl
YkNvcmUvUGx1Z2luRGF0YS5oPgorI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKQEAgLTcxOSw2ICs3NDQsMTAgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZl
V2ViUGFnZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWMK
ICAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6VGVzdFBh
cmFtZXRlckF0dHJpYnV0ZXM+KGRlY29kZXIsIHRoaXMsICZXZWJQYWdlOjp0ZXN0UGFyYW1ldGVy
QXR0cmlidXRlcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgaWYgKGRlY29kZXIubWVz
c2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZTo6VGVtcGxhdGVUZXN0OjpuYW1lKCkpIHsK
KyAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2FnZTxNZXNzYWdlczo6V2ViUGFnZTo6VGVtcGxh
dGVUZXN0PihkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6dGVtcGxhdGVUZXN0KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKGRlY29kZXIubWVzc2Fn
ZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rp
b246Om5hbWUoKSkgewogICAgICAgICBDb3JlSVBDOjpoYW5kbGVNZXNzYWdlPE1lc3NhZ2VzOjpX
ZWJQYWdlOjpEaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbj4oZGVjb2RlciwgdGhpcywgJldl
YlBhZ2U6OmRpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9wYXJzZXIucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3Jp
cHRzL3dlYmtpdDIvcGFyc2VyLnB5CmluZGV4IDZhNjUxZTIzNGI0MGE2NGUyNWFmMWFjNjE2ZDNl
NjAyNGZkZGJkZTkuLmUxNjU5M2FlNjVjNWQ4NDViOTkxM2Q5ZmE2N2ExZWMwZjhjMDJhMWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9wYXJzZXIucHkKKysrIGIv
U291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL3BhcnNlci5weQpAQCAtNzgsOSArNzgsMzEg
QEAgZGVmIHBhcnNlX2F0dHJpYnV0ZXNfc3RyaW5nKGF0dHJpYnV0ZXNfc3RyaW5nKToKICAgICBy
ZXR1cm4gYXR0cmlidXRlc19zdHJpbmcuc3BsaXQoKQogCiAKK2RlZiBzcGxpdF9wYXJhbWV0ZXJz
X3N0cmluZyhwYXJhbWV0ZXJzX3N0cmluZyk6CisgICAgcGFyYW1ldGVycyA9IFtdCisgICAgY3Vy
cmVudF9wYXJhbWV0ZXJfc3RyaW5nID0gJycKKworICAgIG5lc3RfbGV2ZWwgPSAwCisgICAgZm9y
IGNoYXJhY3RlciBpbiBwYXJhbWV0ZXJzX3N0cmluZzoKKyAgICAgICAgaWYgY2hhcmFjdGVyID09
ICcsJyBhbmQgbmVzdF9sZXZlbCA9PSAwOgorICAgICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQo
Y3VycmVudF9wYXJhbWV0ZXJfc3RyaW5nKQorICAgICAgICAgICAgY3VycmVudF9wYXJhbWV0ZXJf
c3RyaW5nID0gJycKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgaWYgY2hhcmFjdGVy
ID09ICc8JzoKKyAgICAgICAgICAgIG5lc3RfbGV2ZWwgKz0gMQorICAgICAgICBlbGlmIGNoYXJh
Y3RlciA9PSAnPic6CisgICAgICAgICAgICBuZXN0X2xldmVsIC09IDEKKworICAgICAgICBjdXJy
ZW50X3BhcmFtZXRlcl9zdHJpbmcgKz0gY2hhcmFjdGVyCisKKyAgICBwYXJhbWV0ZXJzLmFwcGVu
ZChjdXJyZW50X3BhcmFtZXRlcl9zdHJpbmcpCisgICAgcmV0dXJuIHBhcmFtZXRlcnMKKwogZGVm
IHBhcnNlX3BhcmFtZXRlcnNfc3RyaW5nKHBhcmFtZXRlcnNfc3RyaW5nKToKICAgICBwYXJhbWV0
ZXJzID0gW10KLSAgICBmb3IgcGFyYW1ldGVyX3N0cmluZyBpbiBwYXJhbWV0ZXJzX3N0cmluZy5z
cGxpdCgnLCAnKToKKworICAgIGZvciBwYXJhbWV0ZXJfc3RyaW5nIGluIHNwbGl0X3BhcmFtZXRl
cnNfc3RyaW5nKHBhcmFtZXRlcnNfc3RyaW5nKToKICAgICAgICAgbWF0Y2ggPSByZS5zZWFyY2go
cidccyooPzpcWyg/UDxhdHRyaWJ1dGVzPi4qPylcXVxzKyk/KD9QPHR5cGVfYW5kX25hbWU+Liop
JywgcGFyYW1ldGVyX3N0cmluZykKICAgICAgICAgYXR0cmlidXRlc19zdHJpbmcsIHR5cGVfYW5k
X25hbWVfc3RyaW5nID0gbWF0Y2guZ3JvdXAoJ2F0dHJpYnV0ZXMnLCAndHlwZV9hbmRfbmFtZScp
CiAgICAgICAgIHBhcmFtZXRlcl90eXBlLCBwYXJhbWV0ZXJfbmFtZSA9IHR5cGVfYW5kX25hbWVf
c3RyaW5nLnJzcGxpdCgnICcsIDEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188227</attachid>
            <date>2013-02-13 17:05:10 -0800</date>
            <delta_ts>2013-02-13 17:45:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109771-20130213170139.patch</filename>
            <type>text/plain</type>
            <size>10979</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjYyZTQwYzFkNGZlZDZm
OWRlYTg3NTI3M2MyMmJjMzc5MGJmM2UxMC4uYjRjOGE1ZDFkYjdkZDc1ZTBiMDE1ZDEzOWVkNjJh
NGFiNjYyMGU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDEzLTAyLTEzICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgTWVzc2FnZSBnZW5l
cmF0aW9uIHNob3VsZCBoYW5kbGUgbmVzdGVkIHRlbXBsYXRlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NzcxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byBoYXZlIG5l
c3RlZCBjbGFzcyB0ZW1wbGF0ZSB0eXBlcyBhcyBtZXNzYWdlIHBhcmFtZXRlcnMgYW5kCisgICAg
ICAgIGNvcnJlY3RseSBnYXRoZXIgYWxsIHRoZSBuZWVkZWQgaGVhZGVycyBhbmQgYXJndW1lbnQg
Y29kZXIgaGVhZGVycy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weToK
KyAgICAgICAgKHRlbXBsYXRlX3BhcmFtZXRlcnMpOgorICAgICAgICAoY2xhc3NfdGVtcGxhdGVf
aGVhZGVycyk6CisgICAgICAgIChhcmd1bWVudF9jb2Rlcl9oZWFkZXJzX2Zvcl90eXBlKToKKyAg
ICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNz
YWdlc191bml0dGVzdC5weToKKyAgICAgICAgKENvcmVJUEMpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0Mi9wYXJzZXIucHk6CisgICAgICAgIChzcGxpdF9wYXJhbWV0ZXJzX3N0cmluZyk6Cisg
ICAgICAgIChwYXJzZV9wYXJhbWV0ZXJzX3N0cmluZyk6CisKKzIwMTMtMDItMTMgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBSZW1vdmUgQ29ubmVjdGlv
bjo6UXVldWVDbGllbnQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwOTc0NAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtp
dDIvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMu
cHkKaW5kZXggNWU5OWY1MDBjMWFmZDQ3NDViYzFmZGVhZDlkMmViYzQ4ODYzY2U0YS4uMWRlMzQ5
MGM4YTE0ODdkYmY1OTY1NGJkOTMzMmRjNTU5MjRlMDg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1Nj
cmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQpAQCAtMzM2LDEyICszMzYsNTggQEAgZGVmIHN5bmNf
bWVzc2FnZV9zdGF0ZW1lbnQocmVjZWl2ZXIsIG1lc3NhZ2UpOgogICAgIHJldHVybiBzdXJyb3Vu
ZF9pbl9jb25kaXRpb24oJycuam9pbihyZXN1bHQpLCBtZXNzYWdlLmNvbmRpdGlvbikKIAogCitk
ZWYgdGVtcGxhdGVfcGFyYW1ldGVycyhwYXJhbWV0ZXJfc3RyaW5nKToKKyAgICBwYXJhbWV0ZXJz
ID0gW10KKyAgICBjdXJyZW50X3BhcmFtZXRlciA9ICcnCisKKyAgICBuZXN0X2xldmVsID0gMAor
ICAgIGZvciBjaGFyYWN0ZXIgaW4gcGFyYW1ldGVyX3N0cmluZzoKKyAgICAgICAgaWYgY2hhcmFj
dGVyID09ICcsJyBhbmQgbmVzdF9sZXZlbCA9PSAwOgorICAgICAgICAgICAgcGFyYW1ldGVycy5h
cHBlbmQoY3VycmVudF9wYXJhbWV0ZXIpCisgICAgICAgICAgICBjdXJyZW50X3BhcmFtZXRlciA9
ICcnCisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgIGlmIGNoYXJhY3RlciA9PSAnPCc6
CisgICAgICAgICAgICBuZXN0X2xldmVsICs9IDEKKyAgICAgICAgZWxpZiBjaGFyYWN0ZXIgPT0g
Jz4nOgorICAgICAgICAgICAgbmVzdF9sZXZlbCAtPSAxCisKKyAgICAgICAgY3VycmVudF9wYXJh
bWV0ZXIgKz0gY2hhcmFjdGVyCisKKyAgICBwYXJhbWV0ZXJzLmFwcGVuZChjdXJyZW50X3BhcmFt
ZXRlcikKKyAgICByZXR1cm4gcGFyYW1ldGVycworCisKK2RlZiBjbGFzc190ZW1wbGF0ZV9oZWFk
ZXJzKHRlbXBsYXRlX3N0cmluZyk6CisgICAgdGVtcGxhdGVfc3RyaW5nID0gdGVtcGxhdGVfc3Ry
aW5nLnN0cmlwKCkKKworICAgIGNsYXNzX3RlbXBsYXRlX3R5cGVzID0geworICAgICAgICAjIEZJ
WE1FOiBSZW1vdmUgdGhlIHVucHJlZml4ZWQgdmVyc2lvbnMuCisgICAgICAgICdWZWN0b3InOiB7
J2hlYWRlcnMnOiBbJzx3dGYvVmVjdG9yLmg+J10sICdhcmd1bWVudF9jb2Rlcl9oZWFkZXJzJzog
WyciQXJndW1lbnRDb2RlcnMuaCInXX0sCisgICAgICAgICdIYXNoTWFwJzogeydoZWFkZXJzJzog
Wyc8d3RmL0hhc2hNYXAuaD4nXSwgJ2FyZ3VtZW50X2NvZGVyX2hlYWRlcnMnOiBbJyJBcmd1bWVu
dENvZGVycy5oIiddfSwKKworICAgICAgICAnV1RGOjpWZWN0b3InOiB7J2hlYWRlcnMnOiBbJzx3
dGYvVmVjdG9yLmg+J10sICdhcmd1bWVudF9jb2Rlcl9oZWFkZXJzJzogWyciQXJndW1lbnRDb2Rl
cnMuaCInXX0sCisgICAgICAgICdXVEY6Okhhc2hNYXAnOiB7J2hlYWRlcnMnOiBbJzx3dGYvSGFz
aE1hcC5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIkFyZ3VtZW50Q29kZXJzLmgi
J119LAorICAgICAgICAnc3RkOjpwYWlyJzogeydoZWFkZXJzJzogWyc8dXRpbGl0eT4nXSwgJ2Fy
Z3VtZW50X2NvZGVyX2hlYWRlcnMnOiBbJyJBcmd1bWVudENvZGVycy5oIiddfSwKKyAgICB9CisK
KyAgICBtYXRjaCA9IHJlLm1hdGNoKCcoP1A8dGVtcGxhdGVfbmFtZT4uKz8pPCg/UDxwYXJhbWV0
ZXJfc3RyaW5nPi4rKT4nLCB0ZW1wbGF0ZV9zdHJpbmcpCisgICAgaWYgbm90IG1hdGNoOgorICAg
ICAgICByZXR1cm4gKFtdLCBbdGVtcGxhdGVfc3RyaW5nXSkKKyAgICBoZWFkZXJzID0gW2NsYXNz
X3RlbXBsYXRlX3R5cGVzW21hdGNoLmdyb3VwZGljdCgpWyd0ZW1wbGF0ZV9uYW1lJ11dXQorICAg
IHR5cGVzID0gW10KKworICAgIGZvciBwYXJhbWV0ZXIgaW4gdGVtcGxhdGVfcGFyYW1ldGVycyht
YXRjaC5ncm91cGRpY3QoKVsncGFyYW1ldGVyX3N0cmluZyddKToKKyAgICAgICAgcGFyYW1ldGVy
X2hlYWRlcnMsIHBhcmFtZXRlcl90eXBlcyA9IGNsYXNzX3RlbXBsYXRlX2hlYWRlcnMocGFyYW1l
dGVyKQorCisgICAgICAgIGhlYWRlcnMgKz0gcGFyYW1ldGVyX2hlYWRlcnMKKyAgICAgICAgdHlw
ZXMgKz0gcGFyYW1ldGVyX3R5cGVzCisKKyAgICByZXR1cm4gaGVhZGVycywgdHlwZXMKKworCiBk
ZWYgYXJndW1lbnRfY29kZXJfaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKLSAgICAjIENoZWNrIGZv
ciBWZWN0b3IuCi0gICAgbWF0Y2ggPSByZS5zZWFyY2gocidWZWN0b3I8KC4rKT4nLCB0eXBlKQot
ICAgIGlmIG1hdGNoOgotICAgICAgICBlbGVtZW50X3R5cGUgPSBtYXRjaC5ncm91cHMoKVswXS5z
dHJpcCgpCi0gICAgICAgIHJldHVybiBbJyJBcmd1bWVudENvZGVycy5oIiddICsgYXJndW1lbnRf
Y29kZXJfaGVhZGVyc19mb3JfdHlwZShlbGVtZW50X3R5cGUpCisgICAgaGVhZGVyX2luZm9zLCB0
eXBlcyA9IGNsYXNzX3RlbXBsYXRlX2hlYWRlcnModHlwZSkKIAogICAgIHNwZWNpYWxfY2FzZXMg
PSB7CiAgICAgICAgICdXVEY6OlN0cmluZyc6ICciQXJndW1lbnRDb2RlcnMuaCInLApAQCAtMzQ5
LDI0ICszOTUsMjUgQEAgZGVmIGFyZ3VtZW50X2NvZGVyX2hlYWRlcnNfZm9yX3R5cGUodHlwZSk6
CiAgICAgICAgICdXZWJLaXQ6OldlYkNvbnRleHRVc2VyTWVzc2FnZUVuY29kZXInOiAnIldlYkNv
bnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIicsCiAgICAgfQogCi0gICAgaWYgdHlwZSBpbiBzcGVj
aWFsX2Nhc2VzOgotICAgICAgICByZXR1cm4gW3NwZWNpYWxfY2FzZXNbdHlwZV1dCisgICAgaGVh
ZGVycyA9IFtdCisgICAgZm9yIGhlYWRlcl9pbmZvIGluIGhlYWRlcl9pbmZvczoKKyAgICAgICAg
aGVhZGVycyArPSBoZWFkZXJfaW5mb1snYXJndW1lbnRfY29kZXJfaGVhZGVycyddCiAKLSAgICBz
cGxpdCA9IHR5cGUuc3BsaXQoJzo6JykKLSAgICBpZiBsZW4oc3BsaXQpIDwgMjoKLSAgICAgICAg
cmV0dXJuIFtdCi0gICAgaWYgc3BsaXRbMF0gPT0gJ1dlYkNvcmUnOgotICAgICAgICByZXR1cm4g
WyciV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiJ10KKyAgICBmb3IgdHlwZSBpbiB0eXBlczoKKyAg
ICAgICAgaWYgdHlwZSBpbiBzcGVjaWFsX2Nhc2VzOgorICAgICAgICAgICAgaGVhZGVycy5hcHBl
bmQoc3BlY2lhbF9jYXNlc1t0eXBlXSkKKyAgICAgICAgICAgIGNvbnRpbnVlCiAKLSAgICByZXR1
cm4gW10KKyAgICAgICAgc3BsaXQgPSB0eXBlLnNwbGl0KCc6OicpCisgICAgICAgIGlmIGxlbihz
cGxpdCkgPCAyOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaWYgc3BsaXRbMF0gPT0g
J1dlYkNvcmUnOgorICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoJyJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCInKQogCisgICAgcmV0dXJuIGhlYWRlcnMKIAogZGVmIGhlYWRlcnNfZm9yX3R5cGUo
dHlwZSk6Ci0gICAgIyBDaGVjayBmb3IgVmVjdG9yLgotICAgIG1hdGNoID0gcmUuc2VhcmNoKHIn
VmVjdG9yPCguKyk+JywgdHlwZSkKLSAgICBpZiBtYXRjaDoKLSAgICAgICAgZWxlbWVudF90eXBl
ID0gbWF0Y2guZ3JvdXBzKClbMF0uc3RyaXAoKQotICAgICAgICByZXR1cm4gWyc8d3RmL1ZlY3Rv
ci5oPiddICsgaGVhZGVyc19mb3JfdHlwZShlbGVtZW50X3R5cGUpCisgICAgaGVhZGVyX2luZm9z
LCB0eXBlcyA9IGNsYXNzX3RlbXBsYXRlX2hlYWRlcnModHlwZSkKIAogICAgIHNwZWNpYWxfY2Fz
ZXMgPSB7CiAgICAgICAgICdXVEY6OlN0cmluZyc6IFsnPHd0Zi90ZXh0L1dURlN0cmluZy5oPidd
LApAQCAtMzg4LDE4ICs0MzUsMjggQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAg
ICAgICdXZWJLaXQ6OldlYlRvdWNoRXZlbnQnOiBbJyJXZWJFdmVudC5oIiddLAogICAgICAgICAn
V2ViS2l0OjpXZWJXaGVlbEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwKICAgICB9Ci0gICAgaWYg
dHlwZSBpbiBzcGVjaWFsX2Nhc2VzOgotICAgICAgICByZXR1cm4gc3BlY2lhbF9jYXNlc1t0eXBl
XQotCi0gICAgIyBXZSBhc3N1bWUgdGhhdCB3ZSBtdXN0IGluY2x1ZGUgYSBoZWFkZXIgZm9yIGEg
dHlwZSBpZmYgaXQgaGFzIGEgc2NvcGUKLSAgICAjIHJlc29sdXRpb24gb3BlcmF0b3IgKDo6KS4K
LSAgICBzcGxpdCA9IHR5cGUuc3BsaXQoJzo6JykKLSAgICBpZiBsZW4oc3BsaXQpIDwgMjoKLSAg
ICAgICAgcmV0dXJuIFtdCi0gICAgaWYgc3BsaXRbMF0gPT0gJ1dlYktpdCcgb3Igc3BsaXRbMF0g
PT0gJ0NvcmVJUEMnOgotICAgICAgICByZXR1cm4gWyciJXMuaCInICUgc3BsaXRbMV1dCi0gICAg
cmV0dXJuIFsnPCVzLyVzLmg+JyAlIHR1cGxlKHNwbGl0KV0KIAorICAgIGhlYWRlcnMgPSBbXQor
ICAgIGZvciBoZWFkZXJfaW5mbyBpbiBoZWFkZXJfaW5mb3M6CisgICAgICAgIGhlYWRlcnMgKz0g
aGVhZGVyX2luZm9bJ2hlYWRlcnMnXQorCisgICAgZm9yIHR5cGUgaW4gdHlwZXM6CisgICAgICAg
IGlmIHR5cGUgaW4gc3BlY2lhbF9jYXNlczoKKyAgICAgICAgICAgIGhlYWRlcnMgKz0gc3BlY2lh
bF9jYXNlc1t0eXBlXQorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAjIFdlIGFzc3Vt
ZSB0aGF0IHdlIG11c3QgaW5jbHVkZSBhIGhlYWRlciBmb3IgYSB0eXBlIGlmZiBpdCBoYXMgYSBz
Y29wZQorICAgICAgICAjIHJlc29sdXRpb24gb3BlcmF0b3IgKDo6KS4KKyAgICAgICAgc3BsaXQg
PSB0eXBlLnNwbGl0KCc6OicpCisgICAgICAgIGlmIGxlbihzcGxpdCkgPCAyOgorICAgICAgICAg
ICAgY29udGludWUKKworICAgICAgICBpZiBzcGxpdFswXSA9PSAnV2ViS2l0JyBvciBzcGxpdFsw
XSA9PSAnQ29yZUlQQyc6CisgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgnIiVzLmgiJyAlIHNw
bGl0WzFdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoJzwlcy8l
cy5oPicgJSB0dXBsZShzcGxpdCkpCisKKyAgICByZXR1cm4gaGVhZGVycwogCiBkZWYgZ2VuZXJh
dGVfbWVzc2FnZV9oYW5kbGVyKGZpbGUpOgogICAgIHJlY2VpdmVyID0gcGFyc2VyLnBhcnNlKGZp
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNf
dW5pdHRlc3QucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXNfdW5p
dHRlc3QucHkKaW5kZXggOGYyYTZjM2EwNzQ5Zjg2NzU4OGVjMWRjYTdiZDY3NmJiYWQ0NzgxMi4u
ZTJkMmY1YmZjNDkwZDM0OGFkMGQ5OWVmN2E0MmVhZjhhYWIwODVkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzX3VuaXR0ZXN0LnB5CisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlc191bml0dGVzdC5weQpAQCAtNzMs
NiArNzMsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFRl
c3RQYXJhbWV0ZXJBdHRyaWJ1dGVzKFtBdHRyaWJ1dGVPbmUgQXR0cmlidXRlVHdvXSB1aW50NjRf
dCBmb28sIGRvdWJsZSBiYXIsIFtBdHRyaWJ1dGVUaHJlZV0gZG91YmxlIGJheikKIAorICAgIFRl
bXBsYXRlVGVzdChXVEY6Okhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8U3RyaW5nLCB1aW50NjRf
dD4gPiBhKQorCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIERpZENyZWF0ZVdlYlByb2Nlc3NDb25u
ZWN0aW9uKENvcmVJUEM6Ok1hY2hQb3J0IGNvbm5lY3Rpb25JZGVudGlmaWVyKQogI2VuZGlmCkBA
IC0yMDcsNiArMjA5LDEzIEBAIF9leHBlY3RlZF9yZXN1bHRzID0gewogICAgICAgICAgICAgJ2Nv
bmRpdGlvbnMnOiAoTm9uZSksCiAgICAgICAgIH0sCiAgICAgICAgIHsKKyAgICAgICAgICAgICdu
YW1lJzogJ1RlbXBsYXRlVGVzdCcsCisgICAgICAgICAgICAncGFyYW1ldGVycyc6ICgKKyAgICAg
ICAgICAgICAgICAoJ1dURjo6SGFzaE1hcDxTdHJpbmcsIHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQ2
NF90PiA+JywgJ2EnKSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAnY29uZGl0aW9ucyc6
IChOb25lKSwKKyAgICAgICAgfSwKKyAgICAgICAgewogICAgICAgICAgICAgJ25hbWUnOiAnRGlk
Q3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24nLAogICAgICAgICAgICAgJ3BhcmFtZXRlcnMnOiAo
CiAgICAgICAgICAgICAgICAgKCdDb3JlSVBDOjpNYWNoUG9ydCcsICdjb25uZWN0aW9uSWRlbnRp
ZmllcicpLApAQCAtMzEyLDYgKzMyMSw4IEBAIF9leHBlY3RlZF9oZWFkZXIgPSAiIiIvKgogI2lu
Y2x1ZGUgIlN0cmluZ1JlZmVyZW5jZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVu
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgorI2luY2x1ZGUgPHV0aWxpdHk+
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTUxNSw2ICs1MjYsMTggQEAg
c3RydWN0IFRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzIDogQ29yZUlQQzo6QXJndW1lbnRzMzx1aW50
NjRfdCwgZG91YmxlLCBkb3VibGU+IHsKICAgICB9CiB9OwogCitzdHJ1Y3QgVGVtcGxhdGVUZXN0
IDogQ29yZUlQQzo6QXJndW1lbnRzMTxjb25zdCBXVEY6Okhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBh
aXI8U3RyaW5nLCB1aW50NjRfdD4gPiY+IHsKKyAgICBzdGF0aWMgQ29yZUlQQzo6U3RyaW5nUmVm
ZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5hbWUoKTsgfQor
ICAgIHN0YXRpYyBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbmFtZSgpIHsgcmV0dXJuIENvcmVJ
UEM6OlN0cmluZ1JlZmVyZW5jZSgiVGVtcGxhdGVUZXN0Iik7IH0KKyAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBpc1N5bmMgPSBmYWxzZTsKKworICAgIHR5cGVkZWYgQ29yZUlQQzo6QXJndW1lbnRzMTxj
b25zdCBXVEY6Okhhc2hNYXA8U3RyaW5nLCBzdGQ6OnBhaXI8U3RyaW5nLCB1aW50NjRfdD4gPiY+
IERlY29kZVR5cGU7CisgICAgZXhwbGljaXQgVGVtcGxhdGVUZXN0KGNvbnN0IFdURjo6SGFzaE1h
cDxTdHJpbmcsIHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQ2NF90PiA+JiBhKQorICAgICAgICA6IENv
cmVJUEM6OkFyZ3VtZW50czE8Y29uc3QgV1RGOjpIYXNoTWFwPFN0cmluZywgc3RkOjpwYWlyPFN0
cmluZywgdWludDY0X3Q+ID4mPihhKQorICAgIHsKKyAgICB9Cit9OworCiAjaWYgUExBVEZPUk0o
TUFDKQogc3RydWN0IERpZENyZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uIDogQ29yZUlQQzo6QXJn
dW1lbnRzMTxjb25zdCBDb3JlSVBDOjpNYWNoUG9ydCY+IHsKICAgICBzdGF0aWMgQ29yZUlQQzo6
U3RyaW5nUmVmZXJlbmNlIHJlY2VpdmVyTmFtZSgpIHsgcmV0dXJuIG1lc3NhZ2VSZWNlaXZlck5h
bWUoKTsgfQpAQCAtNjMxLDYgKzY1NCw4IEBAIF9leHBlY3RlZF9yZWNlaXZlcl9pbXBsZW1lbnRh
dGlvbiA9ICIiIi8qCiAjaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjZW5kaWYK
ICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KKyNpbmNsdWRlIDx1dGlsaXR5PgorI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC03MTksNiArNzQ0LDEwIEBAIHZvaWQgV2ViUGFn
ZTo6ZGlkUmVjZWl2ZVdlYlBhZ2VNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlRGVjCiAgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6Oldl
YlBhZ2U6OlRlc3RQYXJhbWV0ZXJBdHRyaWJ1dGVzPihkZWNvZGVyLCB0aGlzLCAmV2ViUGFnZTo6
dGVzdFBhcmFtZXRlckF0dHJpYnV0ZXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2U6OlRlbXBsYXRlVGVz
dDo6bmFtZSgpKSB7CisgICAgICAgIENvcmVJUEM6OmhhbmRsZU1lc3NhZ2U8TWVzc2FnZXM6Oldl
YlBhZ2U6OlRlbXBsYXRlVGVzdD4oZGVjb2RlciwgdGhpcywgJldlYlBhZ2U6OnRlbXBsYXRlVGVz
dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGlmIChk
ZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENyZWF0ZVdlYlBy
b2Nlc3NDb25uZWN0aW9uOjpuYW1lKCkpIHsKICAgICAgICAgQ29yZUlQQzo6aGFuZGxlTWVzc2Fn
ZTxNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ3JlYXRlV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+KGRlY29k
ZXIsIHRoaXMsICZXZWJQYWdlOjpkaWRDcmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvcGFyc2VyLnB5IGIvU291cmNl
L1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL3BhcnNlci5weQppbmRleCA2YTY1MWUyMzRiNDBhNjRl
MjVhZjFhYzYxNmQzZTYwMjRmZGRiZGU5Li5lMTY1OTNhZTY1YzVkODQ1Yjk5MTNkOWZhNjdhMWVj
MGY4YzAyYTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvcGFy
c2VyLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9wYXJzZXIucHkKQEAg
LTc4LDkgKzc4LDMxIEBAIGRlZiBwYXJzZV9hdHRyaWJ1dGVzX3N0cmluZyhhdHRyaWJ1dGVzX3N0
cmluZyk6CiAgICAgcmV0dXJuIGF0dHJpYnV0ZXNfc3RyaW5nLnNwbGl0KCkKIAogCitkZWYgc3Bs
aXRfcGFyYW1ldGVyc19zdHJpbmcocGFyYW1ldGVyc19zdHJpbmcpOgorICAgIHBhcmFtZXRlcnMg
PSBbXQorICAgIGN1cnJlbnRfcGFyYW1ldGVyX3N0cmluZyA9ICcnCisKKyAgICBuZXN0X2xldmVs
ID0gMAorICAgIGZvciBjaGFyYWN0ZXIgaW4gcGFyYW1ldGVyc19zdHJpbmc6CisgICAgICAgIGlm
IGNoYXJhY3RlciA9PSAnLCcgYW5kIG5lc3RfbGV2ZWwgPT0gMDoKKyAgICAgICAgICAgIHBhcmFt
ZXRlcnMuYXBwZW5kKGN1cnJlbnRfcGFyYW1ldGVyX3N0cmluZykKKyAgICAgICAgICAgIGN1cnJl
bnRfcGFyYW1ldGVyX3N0cmluZyA9ICcnCisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAg
IGlmIGNoYXJhY3RlciA9PSAnPCc6CisgICAgICAgICAgICBuZXN0X2xldmVsICs9IDEKKyAgICAg
ICAgZWxpZiBjaGFyYWN0ZXIgPT0gJz4nOgorICAgICAgICAgICAgbmVzdF9sZXZlbCAtPSAxCisK
KyAgICAgICAgY3VycmVudF9wYXJhbWV0ZXJfc3RyaW5nICs9IGNoYXJhY3RlcgorCisgICAgcGFy
YW1ldGVycy5hcHBlbmQoY3VycmVudF9wYXJhbWV0ZXJfc3RyaW5nKQorICAgIHJldHVybiBwYXJh
bWV0ZXJzCisKIGRlZiBwYXJzZV9wYXJhbWV0ZXJzX3N0cmluZyhwYXJhbWV0ZXJzX3N0cmluZyk6
CiAgICAgcGFyYW1ldGVycyA9IFtdCi0gICAgZm9yIHBhcmFtZXRlcl9zdHJpbmcgaW4gcGFyYW1l
dGVyc19zdHJpbmcuc3BsaXQoJywgJyk6CisKKyAgICBmb3IgcGFyYW1ldGVyX3N0cmluZyBpbiBz
cGxpdF9wYXJhbWV0ZXJzX3N0cmluZyhwYXJhbWV0ZXJzX3N0cmluZyk6CiAgICAgICAgIG1hdGNo
ID0gcmUuc2VhcmNoKHInXHMqKD86XFsoP1A8YXR0cmlidXRlcz4uKj8pXF1ccyspPyg/UDx0eXBl
X2FuZF9uYW1lPi4qKScsIHBhcmFtZXRlcl9zdHJpbmcpCiAgICAgICAgIGF0dHJpYnV0ZXNfc3Ry
aW5nLCB0eXBlX2FuZF9uYW1lX3N0cmluZyA9IG1hdGNoLmdyb3VwKCdhdHRyaWJ1dGVzJywgJ3R5
cGVfYW5kX25hbWUnKQogICAgICAgICBwYXJhbWV0ZXJfdHlwZSwgcGFyYW1ldGVyX25hbWUgPSB0
eXBlX2FuZF9uYW1lX3N0cmluZy5yc3BsaXQoJyAnLCAxKQo=
</data>
<flag name="review"
          id="208281"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>