<?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>33350</bug_id>
          
          <creation_ts>2010-01-07 15:40:52 -0800</creation_ts>
          <short_desc>WebGLArray subclasses do the wrong conversion in indexSetter</short_desc>
          <delta_ts>2010-01-08 14:30:10 -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>PC</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="Chris Marrin">cmarrin</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>178414</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-01-07 15:40:52 -0800</bug_when>
    <thetext>If you look at JSWebGLFloatArrayCustom.cpp you will see this in indexSetter:

    impl()-&gt;set(index, static_cast&lt;float&gt;(value.toInt32(exec)));

So the value is getting truncated to an int. It needs to use toNumber instead. This error appears again in the ::set() method. 

There are a couple other problems. In the UnsignedInt variant, it is also using toInt32, which will truncate large positive numbers. It should use toUInt32 instead. In fact, I think all of the unsigned variants should use toUInt32 to avoid wrapping of negative numbers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178422</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-01-07 15:54:13 -0800</bug_when>
    <thetext>Are you looking at the latest code? I don&apos;t see the errors in either JSWebGLFloatArrayCustom.cpp nor JSWebGLUnsignedIntArrayCustom.cpp. I am pretty sure I fixed all of these bugs in https://bugs.webkit.org/show_bug.cgi?id=32456 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178454</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-01-07 17:20:49 -0800</bug_when>
    <thetext>Looks like you fixed it in JSWebGLFloatArray::set, but not in JSWebGLFloatArray::indexSetter. Also, JSWebGLUnsignedIntArray::indexSetter still uses toInt32 rather than toUInt32. JSWebGLUnsignedByteArray and JSWebGLUnsignedShortArray cases are still using toInt32 as well.

Technically, I think the right solution for all the integer cases is to remember the sign then do abs() of the number, do toUint32() on that, restore the sign if needed and then cast the result. I think that&apos;s the only way to always get the correct result, isn&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178455</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-01-07 17:22:11 -0800</bug_when>
    <thetext>We should also have testcases for all these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178463</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-01-07 17:38:38 -0800</bug_when>
    <thetext>I see. I&apos;ll fix these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178471</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-01-07 18:00:39 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Looks like you fixed it in JSWebGLFloatArray::set, but not in
&gt; JSWebGLFloatArray::indexSetter. Also, JSWebGLUnsignedIntArray::indexSetter
&gt; still uses toInt32 rather than toUInt32. JSWebGLUnsignedByteArray and
&gt; JSWebGLUnsignedShortArray cases are still using toInt32 as well.
&gt; 
&gt; Technically, I think the right solution for all the integer cases is to
&gt; remember the sign then do abs() of the number, do toUint32() on that, restore
&gt; the sign if needed and then cast the result. I think that&apos;s the only way to
&gt; always get the correct result, isn&apos;t it?

I don&apos;t think such complex logic is needed for the integer cases. We do not and should not have tests for how out-of-range values are coerced. We already have tests verifying that the in-range values can be represented by the various WebGLArray types. The only thing I see that needs to be fixed for these types is JSWebGLUnsignedIntArray::indexSetter needing to use toUInt32 -- although it already seems to work for all valid values because of how toInt32SlowCase in JSValue.cpp works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178490</commentid>
    <comment_count>6</comment_count>
      <attachid>46107</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-01-07 18:58:19 -0800</bug_when>
    <thetext>Created attachment 46107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178491</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-07 19:01:58 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 46107 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178689</commentid>
    <comment_count>8</comment_count>
      <attachid>46107</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-08 08:34:30 -0800</bug_when>
    <thetext>Comment on attachment 46107
Patch

Which test case is fixed by the change from toInt32 to toUInt32? I don&apos;t see a test case that covers that. Can we make that change separately?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178692</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-01-08 08:47:35 -0800</bug_when>
    <thetext>I wasn&apos;t able to show incorrect answers because of the toInt32 call for the in-range values for this data type (0..4294967295). I think this is because of how toInt32SlowCase works. Still, it&apos;s clear from code inspection that this change is correct and I&apos;d rather do both at once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178724</commentid>
    <comment_count>10</comment_count>
      <attachid>46107</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-01-08 11:29:47 -0800</bug_when>
    <thetext>Comment on attachment 46107
Patch

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178812</commentid>
    <comment_count>11</comment_count>
      <attachid>46107</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-08 14:30:03 -0800</bug_when>
    <thetext>Comment on attachment 46107
Patch

Clearing flags on attachment: 46107

Committed r53009: &lt;http://trac.webkit.org/changeset/53009&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178813</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-08 14:30:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46107</attachid>
            <date>2010-01-07 18:58:19 -0800</date>
            <delta_ts>2010-01-08 14:30:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>array-setters.patch</filename>
            <type>text/plain</type>
            <size>10331</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1Mjk2NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDEtMDcgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
YkdMQXJyYXkgc3ViY2xhc3NlcyBkbyB0aGUgd3JvbmcgY29udmVyc2lvbiBpbiBpbmRleFNldHRl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzMzNTAK
KworICAgICAgICBUZXN0OiBmYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1zZXR0ZXJzLmh0bWwKKwor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViR0xGbG9hdEFycmF5Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTV2ViR0xGbG9hdEFycmF5OjppbmRleFNldHRlcik6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNXZWJHTFVuc2lnbmVkSW50QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNXZWJHTFVuc2lnbmVkSW50QXJyYXk6OmluZGV4U2V0dGVyKToKKwogMjAxMC0w
MS0wNyAgU3RlcGhhbmllIExld2lzICA8c2xld2lzQGFwcGxlLmNvbT4KIAogICAgICAgICBSb2xs
b3V0IGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzUyNzU2IGR1ZSB0byBhIGxhcmdl
IHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24uCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
R0xGbG9hdEFycmF5Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViR0xGbG9hdEFycmF5Q3VzdG9tLmNwcAkocmV2aXNpb24gNTI5NTIpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV2ViR0xGbG9hdEFycmF5Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgSlNXZWJHTEZsb2F0
QXJyYXk6OmluZGV4U2V0dGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwg
SlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGltcGwoKS0+c2V0KGluZGV4LCBzdGF0aWNfY2Fz
dDxmbG9hdD4odmFsdWUudG9JbnQzMihleGVjKSkpOworICAgIGltcGwoKS0+c2V0KGluZGV4LCBz
dGF0aWNfY2FzdDxmbG9hdD4odmFsdWUudG9OdW1iZXIoZXhlYykpKTsKIH0KIAogSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFdlYkdMRmxvYXRBcnJheSogb2JqZWN0KQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dlYkdMVW5zaWduZWRJbnRBcnJheUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYkdMVW5zaWduZWRJbnRBcnJheUN1c3RvbS5jcHAJKHJldmlzaW9u
IDUyOTUyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMVW5zaWduZWRJbnRBcnJheUN1
c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB2b2lkIEpTV2ViR0xVbnNpZ25lZEludEFycmF5OjppbmRleFNldHRlcihKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAg
ICBpbXBsKCktPnNldChpbmRleCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pih2YWx1ZS50b0lu
dDMyKGV4ZWMpKSk7CisgICAgaW1wbCgpLT5zZXQoaW5kZXgsIHN0YXRpY19jYXN0PHVuc2lnbmVk
IGludD4odmFsdWUudG9VSW50MzIoZXhlYykpKTsKIH0KIAogSlNDOjpKU1ZhbHVlIHRvSlMoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYkdM
VW5zaWduZWRJbnRBcnJheSogb2JqZWN0KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTI5NjYpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAx
MC0wMS0wNyAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViR0xBcnJheSBzdWJjbGFzc2Vz
IGRvIHRoZSB3cm9uZyBjb252ZXJzaW9uIGluIGluZGV4U2V0dGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzM1MAorCisgICAgICAgICogZmFzdC9j
YW52YXMvd2ViZ2wvYXJyYXktc2V0dGVycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvY2FudmFzL3dlYmdsL2FycmF5LXNldHRlcnMuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktdW5pdC10ZXN0cy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktdW5pdC10ZXN0cy5odG1sOgorCiAyMDEwLTAxLTA3
ICBTdGVwaGFuaWUgTGV3aXMgIDxzbGV3aXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJvbGxvdXQg
aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNTI3NTYgZHVlIHRvIGEgbGFyZ2UgcGVy
Zm9ybWFuY2UgcmVncmVzc2lvbi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2FycmF5LXNldHRlcnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2FycmF5LXNldHRlcnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0dGVycy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTA3IEBACitUZXN0IGFsbCBwZXJtdXRhdGlvbnMg
b2YgV2ViR0xBcnJheSBzZXR0ZXJzIHRvIG1ha2Ugc3VyZSB2YWx1ZXMgZG9uJ3QgZ2V0IHRydW5j
YXRlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1JlZ3Jlc3Npb24gdGVzdCBmb3Ig
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzMzUwIDogV2ViR0xBcnJh
eSBzdWJjbGFzc2VzIGRvIHRoZSB3cm9uZyBjb252ZXJzaW9uIGluIGluZGV4U2V0dGVyCitUZXN0
aW5nIFdlYkdMQnl0ZUFycmF5CitQQVNTIHdlYkdMQXJyYXkgaXMgYXJyYXkKK1BBU1Mgd2ViR0xB
cnJheVswXSBpcyBhcnJheVswXQorUEFTUyB3ZWJHTEFycmF5LmdldCgwKSBpcyBhcnJheVswXQor
UEFTUyB3ZWJHTEFycmF5WzFdIGlzIGFycmF5WzFdCitQQVNTIHdlYkdMQXJyYXkuZ2V0KDEpIGlz
IGFycmF5WzFdCitQQVNTIHdlYkdMQXJyYXlbMF0gaXMgMAorUEFTUyB3ZWJHTEFycmF5LmdldCgw
KSBpcyAwCitQQVNTIHdlYkdMQXJyYXlbMV0gaXMgMAorUEFTUyB3ZWJHTEFycmF5LmdldCgxKSBp
cyAwCitQQVNTIHdlYkdMQXJyYXlbMF0gaXMgYXJyYXlbMF0KK1BBU1Mgd2ViR0xBcnJheS5nZXQo
MCkgaXMgYXJyYXlbMF0KK1BBU1Mgd2ViR0xBcnJheVsxXSBpcyBhcnJheVsxXQorUEFTUyB3ZWJH
TEFycmF5LmdldCgxKSBpcyBhcnJheVsxXQorVGVzdGluZyBXZWJHTFVuc2lnbmVkQnl0ZUFycmF5
CitQQVNTIHdlYkdMQXJyYXkgaXMgYXJyYXkKK1BBU1Mgd2ViR0xBcnJheVswXSBpcyBhcnJheVsw
XQorUEFTUyB3ZWJHTEFycmF5LmdldCgwKSBpcyBhcnJheVswXQorUEFTUyB3ZWJHTEFycmF5WzFd
IGlzIGFycmF5WzFdCitQQVNTIHdlYkdMQXJyYXkuZ2V0KDEpIGlzIGFycmF5WzFdCitQQVNTIHdl
YkdMQXJyYXlbMF0gaXMgMAorUEFTUyB3ZWJHTEFycmF5LmdldCgwKSBpcyAwCitQQVNTIHdlYkdM
QXJyYXlbMV0gaXMgMAorUEFTUyB3ZWJHTEFycmF5LmdldCgxKSBpcyAwCitQQVNTIHdlYkdMQXJy
YXlbMF0gaXMgYXJyYXlbMF0KK1BBU1Mgd2ViR0xBcnJheS5nZXQoMCkgaXMgYXJyYXlbMF0KK1BB
U1Mgd2ViR0xBcnJheVsxXSBpcyBhcnJheVsxXQorUEFTUyB3ZWJHTEFycmF5LmdldCgxKSBpcyBh
cnJheVsxXQorVGVzdGluZyBXZWJHTFNob3J0QXJyYXkKK1BBU1Mgd2ViR0xBcnJheSBpcyBhcnJh
eQorUEFTUyB3ZWJHTEFycmF5WzBdIGlzIGFycmF5WzBdCitQQVNTIHdlYkdMQXJyYXkuZ2V0KDAp
IGlzIGFycmF5WzBdCitQQVNTIHdlYkdMQXJyYXlbMV0gaXMgYXJyYXlbMV0KK1BBU1Mgd2ViR0xB
cnJheS5nZXQoMSkgaXMgYXJyYXlbMV0KK1BBU1Mgd2ViR0xBcnJheVswXSBpcyAwCitQQVNTIHdl
YkdMQXJyYXkuZ2V0KDApIGlzIDAKK1BBU1Mgd2ViR0xBcnJheVsxXSBpcyAwCitQQVNTIHdlYkdM
QXJyYXkuZ2V0KDEpIGlzIDAKK1BBU1Mgd2ViR0xBcnJheVswXSBpcyBhcnJheVswXQorUEFTUyB3
ZWJHTEFycmF5LmdldCgwKSBpcyBhcnJheVswXQorUEFTUyB3ZWJHTEFycmF5WzFdIGlzIGFycmF5
WzFdCitQQVNTIHdlYkdMQXJyYXkuZ2V0KDEpIGlzIGFycmF5WzFdCitUZXN0aW5nIFdlYkdMVW5z
aWduZWRTaG9ydEFycmF5CitQQVNTIHdlYkdMQXJyYXkgaXMgYXJyYXkKK1BBU1Mgd2ViR0xBcnJh
eVswXSBpcyBhcnJheVswXQorUEFTUyB3ZWJHTEFycmF5LmdldCgwKSBpcyBhcnJheVswXQorUEFT
UyB3ZWJHTEFycmF5WzFdIGlzIGFycmF5WzFdCitQQVNTIHdlYkdMQXJyYXkuZ2V0KDEpIGlzIGFy
cmF5WzFdCitQQVNTIHdlYkdMQXJyYXlbMF0gaXMgMAorUEFTUyB3ZWJHTEFycmF5LmdldCgwKSBp
cyAwCitQQVNTIHdlYkdMQXJyYXlbMV0gaXMgMAorUEFTUyB3ZWJHTEFycmF5LmdldCgxKSBpcyAw
CitQQVNTIHdlYkdMQXJyYXlbMF0gaXMgYXJyYXlbMF0KK1BBU1Mgd2ViR0xBcnJheS5nZXQoMCkg
aXMgYXJyYXlbMF0KK1BBU1Mgd2ViR0xBcnJheVsxXSBpcyBhcnJheVsxXQorUEFTUyB3ZWJHTEFy
cmF5LmdldCgxKSBpcyBhcnJheVsxXQorVGVzdGluZyBXZWJHTEludEFycmF5CitQQVNTIHdlYkdM
QXJyYXkgaXMgYXJyYXkKK1BBU1Mgd2ViR0xBcnJheVswXSBpcyBhcnJheVswXQorUEFTUyB3ZWJH
TEFycmF5LmdldCgwKSBpcyBhcnJheVswXQorUEFTUyB3ZWJHTEFycmF5WzFdIGlzIGFycmF5WzFd
CitQQVNTIHdlYkdMQXJyYXkuZ2V0KDEpIGlzIGFycmF5WzFdCitQQVNTIHdlYkdMQXJyYXlbMF0g
aXMgMAorUEFTUyB3ZWJHTEFycmF5LmdldCgwKSBpcyAwCitQQVNTIHdlYkdMQXJyYXlbMV0gaXMg
MAorUEFTUyB3ZWJHTEFycmF5LmdldCgxKSBpcyAwCitQQVNTIHdlYkdMQXJyYXlbMF0gaXMgYXJy
YXlbMF0KK1BBU1Mgd2ViR0xBcnJheS5nZXQoMCkgaXMgYXJyYXlbMF0KK1BBU1Mgd2ViR0xBcnJh
eVsxXSBpcyBhcnJheVsxXQorUEFTUyB3ZWJHTEFycmF5LmdldCgxKSBpcyBhcnJheVsxXQorVGVz
dGluZyBXZWJHTFVuc2lnbmVkSW50QXJyYXkKK1BBU1Mgd2ViR0xBcnJheSBpcyBhcnJheQorUEFT
UyB3ZWJHTEFycmF5WzBdIGlzIGFycmF5WzBdCitQQVNTIHdlYkdMQXJyYXkuZ2V0KDApIGlzIGFy
cmF5WzBdCitQQVNTIHdlYkdMQXJyYXlbMV0gaXMgYXJyYXlbMV0KK1BBU1Mgd2ViR0xBcnJheS5n
ZXQoMSkgaXMgYXJyYXlbMV0KK1BBU1Mgd2ViR0xBcnJheVswXSBpcyAwCitQQVNTIHdlYkdMQXJy
YXkuZ2V0KDApIGlzIDAKK1BBU1Mgd2ViR0xBcnJheVsxXSBpcyAwCitQQVNTIHdlYkdMQXJyYXku
Z2V0KDEpIGlzIDAKK1BBU1Mgd2ViR0xBcnJheVswXSBpcyBhcnJheVswXQorUEFTUyB3ZWJHTEFy
cmF5LmdldCgwKSBpcyBhcnJheVswXQorUEFTUyB3ZWJHTEFycmF5WzFdIGlzIGFycmF5WzFdCitQ
QVNTIHdlYkdMQXJyYXkuZ2V0KDEpIGlzIGFycmF5WzFdCitUZXN0aW5nIFdlYkdMRmxvYXRBcnJh
eQorUEFTUyB3ZWJHTEFycmF5IGlzIGFycmF5CitQQVNTIHdlYkdMQXJyYXlbMF0gaXMgYXJyYXlb
MF0KK1BBU1Mgd2ViR0xBcnJheS5nZXQoMCkgaXMgYXJyYXlbMF0KK1BBU1Mgd2ViR0xBcnJheVsx
XSBpcyBhcnJheVsxXQorUEFTUyB3ZWJHTEFycmF5LmdldCgxKSBpcyBhcnJheVsxXQorUEFTUyB3
ZWJHTEFycmF5WzBdIGlzIDAKK1BBU1Mgd2ViR0xBcnJheS5nZXQoMCkgaXMgMAorUEFTUyB3ZWJH
TEFycmF5WzFdIGlzIDAKK1BBU1Mgd2ViR0xBcnJheS5nZXQoMSkgaXMgMAorUEFTUyB3ZWJHTEFy
cmF5WzBdIGlzIGFycmF5WzBdCitQQVNTIHdlYkdMQXJyYXkuZ2V0KDApIGlzIGFycmF5WzBdCitQ
QVNTIHdlYkdMQXJyYXlbMV0gaXMgYXJyYXlbMV0KK1BBU1Mgd2ViR0xBcnJheS5nZXQoMSkgaXMg
YXJyYXlbMV0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS1zZXR0ZXJzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktc2V0
dGVycy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
YXJyYXktc2V0dGVycy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU3IEBACis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwv
ZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigi
VGVzdCBhbGwgcGVybXV0YXRpb25zIG9mIFdlYkdMQXJyYXkgc2V0dGVycyB0byBtYWtlIHN1cmUg
dmFsdWVzIGRvbid0IGdldCB0cnVuY2F0ZWQiKTsKKworZGVidWcoJ1JlZ3Jlc3Npb24gdGVzdCBm
b3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzMzUw
Ij5odHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzMzNTA8L2E+IDogPGNv
ZGU+V2ViR0xBcnJheSBzdWJjbGFzc2VzIGRvIHRoZSB3cm9uZyBjb252ZXJzaW9uIGluIGluZGV4
U2V0dGVyPC9jb2RlPicpOworCit2YXIgd2ViR0xBcnJheSA9IG51bGw7Cit2YXIgYXJyYXkgPSBu
dWxsOworCitmdW5jdGlvbiB0ZXN0U2V0dGVycyh0eXBlTmFtZSwgbG93LCBoaWdoKSB7CisgICAg
dmFyIHR5cGUgPSB3aW5kb3dbdHlwZU5hbWVdOworICAgIHdlYkdMQXJyYXkgPSBuZXcgdHlwZSgy
KTsKKyAgICBhcnJheSA9IFtsb3csIGhpZ2hdOworICAgIGRlYnVnKCJUZXN0aW5nICIgKyB0eXBl
TmFtZSk7CisgICAgd2ViR0xBcnJheS5zZXQoYXJyYXkpOworICAgIHNob3VsZEJlKCJ3ZWJHTEFy
cmF5IiwgImFycmF5Iik7CisgICAgc2hvdWxkQmUoIndlYkdMQXJyYXlbMF0iLCAiYXJyYXlbMF0i
KTsKKyAgICBzaG91bGRCZSgid2ViR0xBcnJheS5nZXQoMCkiLCAiYXJyYXlbMF0iKTsKKyAgICBz
aG91bGRCZSgid2ViR0xBcnJheVsxXSIsICJhcnJheVsxXSIpOworICAgIHNob3VsZEJlKCJ3ZWJH
TEFycmF5LmdldCgxKSIsICJhcnJheVsxXSIpOworICAgIHdlYkdMQXJyYXlbMF0gPSAwOworICAg
IHdlYkdMQXJyYXlbMV0gPSAwOworICAgIHNob3VsZEJlKCJ3ZWJHTEFycmF5WzBdIiwgIjAiKTsK
KyAgICBzaG91bGRCZSgid2ViR0xBcnJheS5nZXQoMCkiLCAiMCIpOworICAgIHNob3VsZEJlKCJ3
ZWJHTEFycmF5WzFdIiwgIjAiKTsKKyAgICBzaG91bGRCZSgid2ViR0xBcnJheS5nZXQoMSkiLCAi
MCIpOworICAgIHdlYkdMQXJyYXlbMF0gPSBhcnJheVswXTsKKyAgICBzaG91bGRCZSgid2ViR0xB
cnJheVswXSIsICJhcnJheVswXSIpOworICAgIHNob3VsZEJlKCJ3ZWJHTEFycmF5LmdldCgwKSIs
ICJhcnJheVswXSIpOworICAgIHdlYkdMQXJyYXkuc2V0KDEsIGFycmF5WzFdKTsKKyAgICBzaG91
bGRCZSgid2ViR0xBcnJheVsxXSIsICJhcnJheVsxXSIpOworICAgIHNob3VsZEJlKCJ3ZWJHTEFy
cmF5LmdldCgxKSIsICJhcnJheVsxXSIpOworfQorCit0ZXN0U2V0dGVycygiV2ViR0xCeXRlQXJy
YXkiLCAtMTI4LCAxMjcpOwordGVzdFNldHRlcnMoIldlYkdMVW5zaWduZWRCeXRlQXJyYXkiLCAw
LCAyNTUpOwordGVzdFNldHRlcnMoIldlYkdMU2hvcnRBcnJheSIsIC0zMjc2OCwgMzI3NjcpOwor
dGVzdFNldHRlcnMoIldlYkdMVW5zaWduZWRTaG9ydEFycmF5IiwgMCwgNjU1MzUpOwordGVzdFNl
dHRlcnMoIldlYkdMSW50QXJyYXkiLCAtMjE0NzQ4MzY0OCwgMjE0NzQ4MzY0Nyk7Cit0ZXN0U2V0
dGVycygiV2ViR0xVbnNpZ25lZEludEFycmF5IiwgMCwgNDI5NDk2NzI5NSk7Cit0ZXN0U2V0dGVy
cygiV2ViR0xGbG9hdEFycmF5IiwgLTIuNSwgMy41KTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS11bml0LXRlc3RzLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS11bml0LXRlc3RzLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gNTI5NTIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9hcnJheS11bml0LXRlc3RzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjMs
NyArMjMsNyBAQCBQQVNTIG5lZ2F0aXZlVGVzdCBXZWJHTEZsb2F0QXJyYXkgU2V0RnJvCiBQQVNT
IHRlc3QgV2ViR0xGbG9hdEFycmF5IFNldEZyb21BcnJheQogUEFTUyB0ZXN0IFdlYkdMRmxvYXRB
cnJheSBTbGljZQogUEFTUyBuZWdhdGl2ZVRlc3QgV2ViR0xGbG9hdEFycmF5IFNsaWNlCi1QQVNT
IHRlc3QgV2ViR0xGbG9hdEFycmF5IEJvdW5kYXJ5Q29uZGl0aW9ucygtNTAwLCAtNTAwLCA1MDAs
IDUwMCkKK1BBU1MgdGVzdCBXZWJHTEZsb2F0QXJyYXkgQm91bmRhcnlDb25kaXRpb25zKC01MDAu
NSwgLTUwMC41LCA1MDAuNSwgNTAwLjUpCiBQQVNTIHRlc3QgV2ViR0xJbnRBcnJheSBTZXRBbmRH
ZXRQb3MxMFRvTmVnMTAKIFBBU1MgdGVzdCBXZWJHTEludEFycmF5IFNldEFuZEdldE1ldGhvZHNQ
b3MxMFRvTmVnMTAKIFBBU1MgdGVzdCBXZWJHTEludEFycmF5IENvbnN0cnVjdFdpdGhBcnJheU9m
U2lnbmVkVmFsdWVzCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS11
bml0LXRlc3RzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvYXJyYXktdW5pdC10ZXN0cy5odG1sCShyZXZpc2lvbiA1Mjk1MikKKysrIExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMzY2LDEwICszNjYsMTAgQEAgZnVuY3Rpb24gcnVuVGVzdHMoKSB7CiAgICAgICB7bmFtZTog
IldlYkdMRmxvYXRBcnJheSIsCiAgICAgICAgdW5zaWduZWQ6IGZhbHNlLAogICAgICAgIGVsZW1l
bnRTaXplSW5CeXRlczogNCwKLSAgICAgICBsb3c6IC01MDAsCi0gICAgICAgZXhwZWN0ZWRMb3c6
IC01MDAsCi0gICAgICAgaGlnaDogNTAwLAotICAgICAgIGV4cGVjdGVkSGlnaDogNTAwfSwKKyAg
ICAgICBsb3c6IC01MDAuNSwKKyAgICAgICBleHBlY3RlZExvdzogLTUwMC41LAorICAgICAgIGhp
Z2g6IDUwMC41LAorICAgICAgIGV4cGVjdGVkSGlnaDogNTAwLjV9LAogICAgICAge25hbWU6ICJX
ZWJHTEludEFycmF5IiwKICAgICAgICB1bnNpZ25lZDogZmFsc2UsCiAgICAgICAgZWxlbWVudFNp
emVJbkJ5dGVzOiA0LAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>