<?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>52190</bug_id>
          
          <creation_ts>2011-01-10 19:22:45 -0800</creation_ts>
          <short_desc>getUniform should support SAMPLER_2D or SAMPLER_CUBE</short_desc>
          <delta_ts>2011-02-01 15:42:23 -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>WebGL</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>53542</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Vanik">ben.vanik</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>enne</cc>
    
    <cc>kbr</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>332127</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Vanik">ben.vanik</who>
    <bug_when>2011-01-10 19:22:45 -0800</bug_when>
    <thetext>The getUniform call will return &apos;null&apos; and set INVALID_VALUE when any uniforms of type SAMPLER_2D or SAMPLER_CUBE are queried. Looking at the implementation in WebGLRenderContext.cpp line 2122, there is a &apos;// FIXME: what to do about samplers?&apos; and both type values get ignored.

SAMPLER_2D and SAMPLER_CUBE are both integer values set with glUniformi[v] and as such can be queried from GL with glGetUniformiv. Firefox currently implements this and as such in that browser getUniform works for these types.

I&apos;ve tested Chromium on both OSX and Windows (with ANGLE) with the following simple change and it works in my tests:
@@ -2117,9 +2117,13 @@
                     baseType = GraphicsContext3D::FLOAT;
                     length = 16;
                     break;
+                case GraphicsContext3D::SAMPLER_2D:
+                case GraphicsContext3D::SAMPLER_CUBE:
+                    baseType = GraphicsContext3D::INT;
+                    length = 1;
+                    break;
                 default:
                     // Can&apos;t handle this type
-                    // FIXME: what to do about samplers?
                     m_context-&gt;synthesizeGLError(GraphicsContext3D::INVALID_VALUE);
                     return WebGLGetInfo();
                 }


With these changes, you should actually be able to do things like this:
var samplerLoc = gl.getUniformLocation(program, &quot;mySampler&quot;);
gl.uniform1i(samplerLoc, 1);
var value = gl.getUniform(program, samplerLoc);
assert(value == 1);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332131</commentid>
    <comment_count>1</comment_count>
    <who name="Ben Vanik">ben.vanik</who>
    <bug_when>2011-01-10 19:47:22 -0800</bug_when>
    <thetext>Here&apos;s the current workaround I&apos;m using until this is fixed, in case anyone else needs it - just call installUniformHack after getting the gl context.

    function installUniformHack(gl) {
        var uniqueUniformId = 0;
        var original_getUniformLocation = gl.getUniformLocation;
        gl.getUniformLocation = function (program, name) {
            var result = original_getUniformLocation.apply(this, arguments);
            if (result) {
                if (!result.hasOwnProperty(&quot;__uniqueId&quot;)) {
                    result.__uniqueId = String(uniqueUniformId++);
                }
            }
            return result;
        };
        var original_uniform1i = gl.uniform1i;
        gl.uniform1i = function (loc, value) {
            var program = this.getParameter(this.CURRENT_PROGRAM);
            var lookaside = program.__uniformLookaside;
            if (!lookaside) {
                lookaside = program.__uniformLookaside = {};
            }
            lookaside[loc.__uniqueId] = value;
            original_uniform1i.apply(this, arguments);
        };
        var original_uniform1iv = gl.uniform1iv;
        gl.uniform1iv = function (loc, value) {
            var program = this.getParameter(this.CURRENT_PROGRAM);
            var lookaside = program.__uniformLookaside;
            if (!lookaside) {
                lookaside = program.__uniformLookaside = {};
            }
            lookaside[loc.__uniqueId] = value[0];
            original_uniform1iv.apply(this, arguments);
        };
        var original_getUniform = gl.getUniform;
        gl.getUniform = function (program, loc) {
            var lookaside = program.__uniformLookaside;
            if (lookaside) {
                if (lookaside.hasOwnProperty(loc.__uniqueId)) {
                    return lookaside[loc.__uniqueId];
                }
            }
            return original_getUniform.apply(this, arguments);
        };
    };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341290</commentid>
    <comment_count>2</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-27 20:36:06 -0800</bug_when>
    <thetext>I&apos;ll incorporate Ben&apos;s patch and add some test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343296</commentid>
    <comment_count>3</comment_count>
      <attachid>80779</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-02-01 10:07:23 -0800</bug_when>
    <thetext>Created attachment 80779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343297</commentid>
    <comment_count>4</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-02-01 10:07:51 -0800</bug_when>
    <thetext>Will update the khronos side test once this is reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343536</commentid>
    <comment_count>5</comment_count>
      <attachid>80779</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-02-01 14:18:13 -0800</bug_when>
    <thetext>Comment on attachment 80779
Patch

Looks good. Thanks for cleaning this up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343558</commentid>
    <comment_count>6</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-02-01 14:43:16 -0800</bug_when>
    <thetext>Committed r77311: &lt;http://trac.webkit.org/changeset/77311&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80779</attachid>
            <date>2011-02-01 10:07:23 -0800</date>
            <delta_ts>2011-02-01 14:18:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52190-20110201100722.patch</filename>
            <type>text/plain</type>
            <size>5621</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3MjU1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDItMDEgIFpoZW55YW8g
TW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBnZXRVbmlmb3JtIHNob3VsZCBzdXBwb3J0IFNBTVBMRVJfMkQgb3IgU0FN
UExFUl9DVUJFCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MjE5MAorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZm9ybSk6
CisKIDIwMTEtMDItMDEgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZp
c2lvbiA3NzEzMSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMTgsOSArMjMxOCwxMyBAQCBXZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVCiAgICAgICAgICAgICAgICAgICAgIGJh
c2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUOwogICAgICAgICAgICAgICAgICAgICBs
ZW5ndGggPSAxNjsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U0FNUExFUl8yRDoKKyAgICAgICAgICAgICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTQU1QTEVSX0NVQkU6CisgICAgICAgICAgICAgICAgICAgIGJh
c2VUeXBlID0gR3JhcGhpY3NDb250ZXh0M0Q6OklOVDsKKyAgICAgICAgICAgICAgICAgICAgbGVu
Z3RoID0gMTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgICAgICAgICAgLy8gQ2FuJ3QgaGFuZGxlIHRoaXMgdHlwZQotICAg
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2hhdCB0byBkbyBhYm91dCBzYW1wbGVycz8KICAg
ICAgICAgICAgICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9WQUxVRSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oKTsKICAgICAgICAgICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3NzI1NSkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDExLTAyLTAxICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZ2V0VW5pZm9ybSBzaG91bGQgc3Vw
cG9ydCBTQU1QTEVSXzJEIG9yIFNBTVBMRVJfQ1VCRQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxOTAKKworICAgICAgICAqIGZhc3QvY2FudmFzL3dl
YmdsL2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2Fu
dmFzL3dlYmdsL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbDogVGVzdCBnZXRVbmlmb3JtIHdpdGgg
c2FtcGxlcjJEIGFuZCBzYW1wbGVyQ3ViZSB1bmlmb3Jtcy4KKyAgICAgICAgKiBmYXN0L2NhbnZh
cy93ZWJnbC9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIudmVydDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3NhbXBsZXJVbmlmb3JtU2hhZGVyLmZyYWc6
IEFkZGVkLgorCiAyMDExLTAyLTAxICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVXBkYXRlZCBmbGFreSB0ZXN0IGV4cGVjdGF0aW9ucyBhY2NvcmRp
bmcgdG8gYnVpbGQgYm90IHJlc3VsdHMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9nbC1vYmplY3QtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC1vYmplY3QtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNzcxMzMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC1v
YmplY3QtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIs
MTAgQEAgUEFTUyBnbC5nZXRVbmlmb3JtKGZsb2F0UHJvZ3JhbSwgZnZhbExvYwogUEFTUyBnbC5n
ZXRVbmlmb3JtKGZsb2F0UHJvZ3JhbSwgZnZhbDJMb2MpIGlzIFsxMiwgMTNdCiBQQVNTIGdsLmdl
dFVuaWZvcm0oZmxvYXRQcm9ncmFtLCBmdmFsM0xvYykgaXMgWzE0LCAxNSwgMTZdCiBQQVNTIGds
LmdldFVuaWZvcm0oZmxvYXRQcm9ncmFtLCBmdmFsNExvYykgaXMgWzE3LCAxOCwgMTksIDIwXQor
UEFTUyBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHNhbXBsZXJQcm9ncmFtLCBnbC5MSU5LX1NUQVRV
UykgaXMgdHJ1ZQorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
CitQQVNTIGdsLmdldFVuaWZvcm0oc2FtcGxlclByb2dyYW0sIHMyRFZhbExvYykgaXMgMAorUEFT
UyBnbC5nZXRVbmlmb3JtKHNhbXBsZXJQcm9ncmFtLCBzQ3ViZVZhbExvYykgaXMgMQogUEFTUyBn
bC5nZXRQcm9ncmFtUGFyYW1ldGVyKG1hdFByb2dyYW0sIGdsLkxJTktfU1RBVFVTKSBpcyB0cnVl
CiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKIFBBU1MgZ2wu
Z2V0VW5pZm9ybShtYXRQcm9ncmFtLCBtdmFsMkxvYykgaXMgWzEsIDIsIDMsIDRdCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC1vYmplY3QtZ2V0LWNhbGxzLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZ2wtb2JqZWN0LWdldC1j
YWxscy5odG1sCShyZXZpc2lvbiA3NzEzMykKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTgyLDYgKzE4
MiwxNyBAQCBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2CiBzaG91bGRC
ZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWwyTG9jKScsICdbMTIsIDEzXScpOwog
c2hvdWxkQmUoJ2dsLmdldFVuaWZvcm0oZmxvYXRQcm9ncmFtLCBmdmFsM0xvYyknLCAnWzE0LCAx
NSwgMTZdJyk7CiBzaG91bGRCZSgnZ2wuZ2V0VW5pZm9ybShmbG9hdFByb2dyYW0sIGZ2YWw0TG9j
KScsICdbMTcsIDE4LCAxOSwgMjBdJyk7CisvLyBTYW1wbGVyIHVuaWZvcm0gdmFyaWFibGVzCit2
YXIgc2FtcGxlclByb2dyYW0gPSBsb2FkUHJvZ3JhbShnbCwgInJlc291cmNlcy9ub29wVW5pZm9y
bVNoYWRlci52ZXJ0IiwgInJlc291cmNlcy9zYW1wbGVyVW5pZm9ybVNoYWRlci5mcmFnIik7Citz
aG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzYW1wbGVyUHJvZ3JhbSwgZ2wuTElOS19T
VEFUVVMpJywgJ3RydWUnKTsKK3ZhciBzMkRWYWxMb2MgPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24o
c2FtcGxlclByb2dyYW0sICJzMkQiKTsKK3ZhciBzQ3ViZVZhbExvYyA9IGdsLmdldFVuaWZvcm1M
b2NhdGlvbihzYW1wbGVyUHJvZ3JhbSwgInNDdWJlIik7CitnbC51c2VQcm9ncmFtKHNhbXBsZXJQ
cm9ncmFtKTsKK2dsLnVuaWZvcm0xaShzMkRWYWxMb2MsIDApOworZ2wudW5pZm9ybTFpKHNDdWJl
VmFsTG9jLCAxKTsKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworc2hvdWxkQmUo
J2dsLmdldFVuaWZvcm0oc2FtcGxlclByb2dyYW0sIHMyRFZhbExvYyknLCAnMCcpOworc2hvdWxk
QmUoJ2dsLmdldFVuaWZvcm0oc2FtcGxlclByb2dyYW0sIHNDdWJlVmFsTG9jKScsICcxJyk7CiAv
LyBNYXRyaXggdW5pZm9ybSB2YXJpYWJsZXMKIHZhciBtYXRQcm9ncmFtID0gbG9hZFByb2dyYW0o
Z2wsICJyZXNvdXJjZXMvbWF0VW5pZm9ybVNoYWRlci52ZXJ0IiwgInJlc291cmNlcy9ub29wVW5p
Zm9ybVNoYWRlci5mcmFnIik7CiBzaG91bGRCZSgnZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihtYXRQ
cm9ncmFtLCBnbC5MSU5LX1NUQVRVUyknLCAndHJ1ZScpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL25vb3BVbmlmb3JtU2hhZGVyLnZlcnQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL25vb3BVbmlmb3Jt
U2hhZGVyLnZlcnQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9yZXNvdXJjZXMvbm9vcFVuaWZvcm1TaGFkZXIudmVydAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0IEBACit2b2lkIG1haW4oKQoreworICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAuMCwg
MC4wLCAxLjApOworfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3Vy
Y2VzL3NhbXBsZXJVbmlmb3JtU2hhZGVyLmZyYWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3NhbXBsZXJVbmlmb3JtU2hhZGVyLmZyYWcJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvc2Ft
cGxlclVuaWZvcm1TaGFkZXIuZnJhZwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4IEBACitwcmVj
aXNpb24gbWVkaXVtcCBmbG9hdDsKK3VuaWZvcm0gc2FtcGxlcjJEIHMyRDsKK3VuaWZvcm0gc2Ft
cGxlckN1YmUgc0N1YmU7Cit2b2lkIG1haW4oKQoreworICAgIGdsX0ZyYWdDb2xvciA9IHRleHR1
cmUyRChzMkQsIHZlYzIoMC41LCAwLjUpKSArCisgICAgICAgICAgICAgICAgICAgdGV4dHVyZUN1
YmUoc0N1YmUsIHZlYzMoMC41LCAwLjUsIDAuNSkpOworfQo=
</data>
<flag name="review"
          id="72273"
          type_id="1"
          status="+"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>