<?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>237533</bug_id>
          
          <creation_ts>2022-03-07 08:23:10 -0800</creation_ts>
          <short_desc>iOS/iPad 15.3.1 slow drawElements with TRIANGLE_FAN mode</short_desc>
          <delta_ts>2022-10-11 05:14:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>Safari 15</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 15</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          <dependson>231180</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Marcin">msokalski</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dino</cc>
    
    <cc>gman</cc>
    
    <cc>johncunningham</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kpiddington</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1848763</commentid>
    <comment_count>0</comment_count>
    <who name="Marcin">msokalski</who>
    <bug_when>2022-03-07 08:23:10 -0800</bug_when>
    <thetext>On iOS/iPad 15.3.1 gl.drawElements with gl.UNSIGNED_INT index buffer containing ~0 to restart gl.TRIANGLE_FAN geometry is incredibly slow.
I haven&apos;t checked UNSIGNED_SHORT, UNSIGNED_BYTE types but switching to gl.TRIANGLES without primitive restarts works OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848853</commentid>
    <comment_count>1</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-07 11:15:53 -0800</bug_when>
    <thetext>Thanks for the report.
If you have a self contained test case, feel free to attach / link that, it always helps.
(Primitive restart is &quot;emulated&quot; when running on Metal, and the implementation might not be as tuned as the older OpenGL-based implementation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849201</commentid>
    <comment_count>2</comment_count>
      <attachid>454105</attachid>
    <who name="Marcin">msokalski</who>
    <bug_when>2022-03-08 05:01:55 -0800</bug_when>
    <thetext>Created attachment 454105
gl.drawElements primitive restart / regular performance comparison</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849203</commentid>
    <comment_count>3</comment_count>
    <who name="Marcin">msokalski</who>
    <bug_when>2022-03-08 05:03:22 -0800</bug_when>
    <thetext>You&apos;re welcome Kimmo.
Thank you for letting me know it has to be emulated in metal.

Please find performance comparison attached.
Note, adding burst loop was necessary to show the difference. If I&apos;d call gl.drawElements simply once per frame, there was no performance difference between TRIANGLES w/o restarts and TRIANGLE_FAN with restarts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849222</commentid>
    <comment_count>4</comment_count>
    <who name="Marcin">msokalski</who>
    <bug_when>2022-03-08 05:50:08 -0800</bug_when>
    <thetext>After playing a while with the test case, I&apos;ve noticed TRIANGLE_STRIP with primitive restart IS NOT affected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849223</commentid>
    <comment_count>5</comment_count>
      <attachid>454113</attachid>
    <who name="Marcin">msokalski</who>
    <bug_when>2022-03-08 05:51:27 -0800</bug_when>
    <thetext>Created attachment 454113
Added TRIANGLE_STRIP to the test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849241</commentid>
    <comment_count>6</comment_count>
    <who name="Marcin">msokalski</who>
    <bug_when>2022-03-08 06:55:52 -0800</bug_when>
    <thetext>Finally it appears the problem has nothing to do with primitive restarts.
I&apos;ve narrowed regression to drawElements with mode=TRIANGLE_FAN.
drawArrays is NOT AFFECTED.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849243</commentid>
    <comment_count>7</comment_count>
      <attachid>454117</attachid>
    <who name="Marcin">msokalski</who>
    <bug_when>2022-03-08 06:57:29 -0800</bug_when>
    <thetext>Created attachment 454117
drawElements with mode = TRIANGLE_STRIP vs TRIANGLE_FAN vs TRIANGLES</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850154</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-10 10:17:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/90106467&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860270</commentid>
    <comment_count>9</comment_count>
    <who name="Marcin">msokalski</who>
    <bug_when>2022-04-11 06:35:49 -0700</bug_when>
    <thetext>Still reproducible on iOS/iPad 15.4.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1902776</commentid>
    <comment_count>10</comment_count>
    <who name="Marcin">msokalski</who>
    <bug_when>2022-10-03 02:26:19 -0700</bug_when>
    <thetext>Still reproducible on iOS/iPad 15.7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904056</commentid>
    <comment_count>11</comment_count>
    <who name="Marcin">msokalski</who>
    <bug_when>2022-10-07 08:26:18 -0700</bug_when>
    <thetext>Disabling WebGL via Metal solves the problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904738</commentid>
    <comment_count>12</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-10-11 01:27:35 -0700</bug_when>
    <thetext>Thanks for continuing to investigate.

I filed upstream ANGLE bug at:
https://bugs.chromium.org/p/angleproject/issues/detail?id=7748

Metal does not support TRIANGLE_FAN drawing mode natively.
ANGLE emulates it.
The GPU implementation of the emulation is turned off when primitive restart is supported. For WebGL2 primitive restart is enabled.

To get an idea of the perf difference after the emulation is fixed to work with primitive restart, you can try to change the test case:
- use WebGL1
or
- change to drawArrays, where the emulation generates the emulated buffer once per draw after modification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904753</commentid>
    <comment_count>13</comment_count>
    <who name="Marcin">msokalski</who>
    <bug_when>2022-10-11 03:58:28 -0700</bug_when>
    <thetext>Thanks Kimmo,
Please note, performance issue happens also in drawArrays with triangle fan mode.
(last attachment)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904754</commentid>
    <comment_count>14</comment_count>
    <who name="Marcin">msokalski</who>
    <bug_when>2022-10-11 04:01:13 -0700</bug_when>
    <thetext>Oops, I messed drawArrays / drawElements test cases, I&apos;ll re-check what&apos;s going on ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904758</commentid>
    <comment_count>15</comment_count>
    <who name="Marcin">msokalski</who>
    <bug_when>2022-10-11 05:14:50 -0700</bug_when>
    <thetext>So, you are right, that&apos;s only drawElements issue, I&apos;m sorry for making unnecessary comments :(</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>454105</attachid>
            <date>2022-03-08 05:01:55 -0800</date>
            <delta_ts>2022-03-08 05:01:55 -0800</delta_ts>
            <desc>gl.drawElements primitive restart / regular performance comparison</desc>
            <filename>test_prim_restart.html</filename>
            <type>text/html</type>
            <size>9533</size>
            <attacher name="Marcin">msokalski</attacher>
            
              <data encoding="base64">77u/PCFET0NUWVBFIGh0bWw+DQoNCjxodG1sIGxhbmc9ImVuIiB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCI+DQo8aGVhZD4NCiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4N
CiAgICA8dGl0bGU+UXVpdGUgRWRneSBUZXN0PC90aXRsZT4NCg0KICAgIDxzY3JpcHQgaWQ9InRo
ZV92ZXJ0ZXhfc2hhZGVyIiB0eXBlPSJzaGFkZXIvZ2xzbCI+DQogICAgICAgIGxheW91dChsb2Nh
dGlvbiA9IDApIGluIHZlYzIgdmVydDsNCiAgICAgICAgb3V0IGxvd3AgdmVjNCBjb2xvcjsNCg0K
ICAgICAgICB2b2lkIG1haW4oKQ0KICAgICAgICB7DQogICAgICAgICAgICBnbF9Qb3NpdGlvbiA9
IHZlYzQodmVydC54eSwwLjAsMS4wKTsNCg0KICAgICAgICAgICAgZmxvYXQgeSA9IDAuNTsNCiAg
ICAgICAgICAgIGZsb2F0IGNvID0gMC41ICogdmVydC54Ow0KICAgICAgICAgICAgZmxvYXQgY2cg
PSAwLjUgKiB2ZXJ0Lnk7DQoNCgkJCWZsb2F0IHIgPSB5ICsgY28gLSBjZzsNCgkJCWZsb2F0IGcg
PSB5ICsgY2c7DQoJCQlmbG9hdCBiID0geSAtIGNvIC0gY2c7DQoNCiAgICAgICAgICAgIGNvbG9y
ID0gdmVjNChyLGcsYiwxLjApOw0KICAgICAgICB9DQoNCiAgICA8L3NjcmlwdD4NCg0KICAgIDxz
Y3JpcHQgaWQ9InRoZV9mcmFnbWVudF9zaGFkZXIiIHR5cGU9InNoYWRlci9nbHNsIj4gIA0KICAg
ICAgICBpbiBsb3dwIHZlYzQgY29sb3I7DQogICAgICAgIGxheW91dChsb2NhdGlvbiA9IDApIG91
dCBsb3dwIHZlYzQgZnJhZzsNCg0KICAgICAgICB2b2lkIG1haW4oKQ0KICAgICAgICB7DQogICAg
ICAgICAgICBmcmFnID0gY29sb3I7DQogICAgICAgIH0NCiAgICA8L3NjcmlwdD4NCg0KICAgIDxz
Y3JpcHQ+DQoNCiAgICAgICAgdmFyIHBlcmYgPSBudWxsOw0KICAgICAgICB2YXIgZ2wgPSBudWxs
Ow0KICAgICAgICB2YXIgdGhpbmdzID0gbnVsbDsNCiAgICAgICAgdmFyIGVyciA9IDA7DQoNCiAg
ICAgICAgZnVuY3Rpb24gaW5pdEdMKCkgew0KICAgICAgICAgICAgcGVyZiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJwZXJmIik7DQogICAgICAgICAgICBsZXQgYyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0aGVfY2FudmFzIik7DQogICAgICAgICAgICBpZiAoYykNCiAgICAgICAgICAg
IHsNCiAgICAgICAgICAgICAgICB0cnkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg
ICAgICAgIGdsID0gYy5nZXRDb250ZXh0KCJ3ZWJnbDIiKTsNCiAgICAgICAgICAgICAgICB9DQog
ICAgICAgICAgICAgICAgY2F0Y2ggKGUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg
ICAgICAgICBnbCA9IG51bGw7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAg
ICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIGdsID0gbnVsbDsNCg0KICAgICAgICAgICAg
aWYgKCFnbCkNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygid29uJ3Qgd29yayB0b2RheSIp
Ow0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChw
cmVwVGhpbmdzKCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoZHJhd1RoaW5ncyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAg
ICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGNv
bnNvbGUubG9nKCJnbCBpcyBtYWQgdG9kYXkiKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAg
ICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBwcmVwVGhpbmdzKCkgew0KDQog
ICAgICAgICAgICBsZXQgdnNfc3JjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRoZV92ZXJ0
ZXhfc2hhZGVyIikuaW5uZXJIVE1MOw0KICAgICAgICAgICAgbGV0IGZzX3NyYyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0aGVfZnJhZ21lbnRfc2hhZGVyIikuaW5uZXJIVE1MOw0KDQogICAg
ICAgICAgICBsZXQgbnVtX3ggPSAxNjsNCiAgICAgICAgICAgIGxldCBudW1feSA9IDE2Ow0KICAg
ICAgICAgICAgbGV0IHF1YWRzID0gbnVtX3gqbnVtX3k7DQogICAgICAgICAgICBsZXQgdmVydHMg
PSA0KnF1YWRzOyAvLyA0IHZlcnRzIHBlciBxdWFkDQogICAgICAgICAgICBsZXQgZmxvYXRzX3Bl
cl92ZXJ0ZXggPSAyOw0KICAgICAgICAgICAgbGV0IGFycl9zaXplICA9IGZsb2F0c19wZXJfdmVy
dGV4KnZlcnRzOw0KDQogICAgICAgICAgICBjb25zdCBmbG9hdF9ieXRlcyA9IDQ7DQogICAgICAg
ICAgICBsZXQgdmVydF9ieXRlcyA9IGZsb2F0X2J5dGVzICogZmxvYXRzX3Blcl92ZXJ0ZXg7DQoN
CiAgICAgICAgICAgIGxldCBjb29yZHMgPSBuZXcgRmxvYXQzMkFycmF5KGFycl9zaXplKTsNCg0K
ICAgICAgICAgICAgLy8gdmVydGV4IGRpc3BsYWNlbWVudCBpbiBhIHF1YWQNCiAgICAgICAgICAg
IGxldCBnYXAgPSAwLjA1OyAvLyBzcGFjaW5nDQogICAgICAgICAgICBsZXQgcXVhZCA9IFtnYXAs
Z2FwLCAxLjAtZ2FwLGdhcCwgMS4wLWdhcCwxLjAtZ2FwLCBnYXAsMS4wLWdhcF07IA0KDQogICAg
ICAgICAgICBmb3IgKGxldCB5ID0gMCwgaSA9IDA7IHkgPCBudW1feTsgeSsrKQ0KICAgICAgICAg
ICAgew0KICAgICAgICAgICAgICAgIGZvciAobGV0IHggPSAwOyB4IDwgbnVtX3g7IHgrKykNCiAg
ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHYgPSAwOyB2IDwg
NDsgdisrICwgaSArPSAyKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg
ICAgICAgICAvLyBzdHVmZmluZw0KICAgICAgICAgICAgICAgICAgICAgICAgY29vcmRzW2krMF0g
PSAyLjAgKiAoeCArIHF1YWRbMip2KzBdKSAvIG51bV94IC0gMS4wOw0KICAgICAgICAgICAgICAg
ICAgICAgICAgY29vcmRzW2krMV0gPSAyLjAgKiAoeSArIHF1YWRbMip2KzFdKSAvIG51bV95IC0g
MS4wOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAg
ICAgfQ0KDQogICAgICAgICAgICBsZXQgaW5kaWNlc190cmlmYW5fcHJpbV9yZXN0YXJ0ID0gbmV3
IFVpbnQzMkFycmF5KDUqcXVhZHMpOw0KICAgICAgICAgICAgZm9yIChsZXQgcSA9IDA7IHEgPCBx
dWFkczsgcSsrKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGxldCBpID0gNSpxOw0K
ICAgICAgICAgICAgICAgIGxldCB2ID0gNCpxOw0KICAgICAgICAgICAgICAgIGluZGljZXNfdHJp
ZmFuX3ByaW1fcmVzdGFydFtpKzBdID0gdiswOyAvLyBsbA0KICAgICAgICAgICAgICAgIGluZGlj
ZXNfdHJpZmFuX3ByaW1fcmVzdGFydFtpKzFdID0gdisxOyAvLyBscg0KICAgICAgICAgICAgICAg
IGluZGljZXNfdHJpZmFuX3ByaW1fcmVzdGFydFtpKzJdID0gdisyOyAvLyB1cg0KICAgICAgICAg
ICAgICAgIGluZGljZXNfdHJpZmFuX3ByaW1fcmVzdGFydFtpKzNdID0gdiszOyAvLyB1bA0KICAg
ICAgICAgICAgICAgIGluZGljZXNfdHJpZmFuX3ByaW1fcmVzdGFydFtpKzRdID0gMHhGRkZGRkZG
RjsgLy8gcmVzdGFydA0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBsZXQgaW5kaWNlc190
cmlhbmdsZXMgPSBuZXcgVWludDMyQXJyYXkoNipxdWFkcyk7DQogICAgICAgICAgICBmb3IgKGxl
dCBxID0gMDsgcSA8IHF1YWRzOyBxKyspDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg
bGV0IGkgPSA2KnE7DQogICAgICAgICAgICAgICAgbGV0IHYgPSA0KnE7DQogICAgICAgICAgICAg
ICAgDQogICAgICAgICAgICAgICAgaW5kaWNlc190cmlhbmdsZXNbaSswXSA9IHYrMDsgLy8gbGwN
CiAgICAgICAgICAgICAgICBpbmRpY2VzX3RyaWFuZ2xlc1tpKzFdID0gdisxOyAvLyBscg0KICAg
ICAgICAgICAgICAgIGluZGljZXNfdHJpYW5nbGVzW2krMl0gPSB2KzI7IC8vIHVyDQoNCiAgICAg
ICAgICAgICAgICBpbmRpY2VzX3RyaWFuZ2xlc1tpKzNdID0gdiswOyAvLyBsbA0KICAgICAgICAg
ICAgICAgIGluZGljZXNfdHJpYW5nbGVzW2krNF0gPSB2KzI7IC8vIHVyDQogICAgICAgICAgICAg
ICAgaW5kaWNlc190cmlhbmdsZXNbaSs1XSA9IHYrMzsgLy8gdWwNCiAgICAgICAgICAgIH0NCg0K
ICAgICAgICAgICAgbGV0IHByZyA9IGdsLmNyZWF0ZVByb2dyYW0oKTsNCiAgICAgICAgICAgIGxl
dCB2cyA9IGdsLmNyZWF0ZVNoYWRlcihnbC5WRVJURVhfU0hBREVSKTsNCiAgICAgICAgICAgIGxl
dCBmcyA9IGdsLmNyZWF0ZVNoYWRlcihnbC5GUkFHTUVOVF9TSEFERVIpOw0KDQogICAgICAgICAg
ICBnbC5zaGFkZXJTb3VyY2UodnMsICIjdmVyc2lvbiAzMDAgZXNcbiIgKyB2c19zcmMpOw0KICAg
ICAgICAgICAgZ2wuc2hhZGVyU291cmNlKGZzLCAiI3ZlcnNpb24gMzAwIGVzXG4iICsgZnNfc3Jj
KTsNCg0KICAgICAgICAgICAgZ2wuY29tcGlsZVNoYWRlcih2cyk7DQogICAgICAgICAgICBpZiAo
IWdsLmdldFNoYWRlclBhcmFtZXRlcih2cywgZ2wuQ09NUElMRV9TVEFUVVMpKQ0KICAgICAgICAg
ICAgew0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGdsLmdldFNoYWRlckluZm9Mb2codnMp
KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAg
ICAgICAgIGdsLmNvbXBpbGVTaGFkZXIoZnMpOw0KICAgICAgICAgICAgaWYgKCFnbC5nZXRTaGFk
ZXJQYXJhbWV0ZXIoZnMsIGdsLkNPTVBJTEVfU1RBVFVTKSkNCiAgICAgICAgICAgIHsNCiAgICAg
ICAgICAgICAgICBjb25zb2xlLmxvZyhnbC5nZXRTaGFkZXJJbmZvTG9nKGZzKSk7DQogICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBnbC5h
dHRhY2hTaGFkZXIocHJnLCB2cyk7DQogICAgICAgICAgICBnbC5hdHRhY2hTaGFkZXIocHJnLCBm
cyk7DQoNCiAgICAgICAgICAgIGdsLmxpbmtQcm9ncmFtKHByZyk7DQogICAgICAgICAgICBpZiAo
IWdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJnLCBnbC5MSU5LX1NUQVRVUykpDQogICAgICAgICAg
ICB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coZ2wuZ2V0UHJvZ3JhbUluZm9Mb2cocHJn
KSk7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAg
ICAgICAgICBnbC5kZWxldGVTaGFkZXIodnMpOw0KICAgICAgICAgICAgZ2wuZGVsZXRlU2hhZGVy
KGZzKTsNCg0KICAgICAgICAgICAgbGV0IGlkeF90cmlmYW5fcHJpbV9yZXN0YXJ0ID0gZ2wuY3Jl
YXRlQnVmZmVyKCk7DQogICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlf
QlVGRkVSLCBpZHhfdHJpZmFuX3ByaW1fcmVzdGFydCk7DQogICAgICAgICAgICBnbC5idWZmZXJE
YXRhKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRpY2VzX3RyaWZhbl9wcmltX3Jlc3RhcnQs
IGdsLlNUQVRJQ19EUkFXKTsNCiAgICAgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9B
UlJBWV9CVUZGRVIsIG51bGwpOw0KDQogICAgICAgICAgICBsZXQgaWR4X3RyaWFuZ2xlcyA9IGds
LmNyZWF0ZUJ1ZmZlcigpOw0KICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FS
UkFZX0JVRkZFUiwgaWR4X3RyaWFuZ2xlcyk7DQogICAgICAgICAgICBnbC5idWZmZXJEYXRhKGds
LkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRpY2VzX3RyaWFuZ2xlcywgZ2wuU1RBVElDX0RSQVcp
Ow0KICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgbnVs
bCk7DQoNCiAgICAgICAgICAgIGxldCB2Ym8gPSBnbC5jcmVhdGVCdWZmZXIoKTsNCiAgICAgICAg
ICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2Ym8pOw0KICAgICAgICAgICAgZ2wu
YnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIGNvb3JkcywgZ2wuU1RBVElDX0RSQVcpOw0KICAg
ICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIG51bGwpOw0KDQogICAgICAg
ICAgICBsZXQgdmFvX3RyaWZhbl9wcmltX3Jlc3RhcnQgPSBnbC5jcmVhdGVWZXJ0ZXhBcnJheSgp
Ow0KICAgICAgICAgICAgZ2wuYmluZFZlcnRleEFycmF5KHZhb190cmlmYW5fcHJpbV9yZXN0YXJ0
KTsNCiAgICAgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2Ym8pOw0KICAg
ICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaWR4X3RyaWZh
bl9wcmltX3Jlc3RhcnQpOw0KICAgICAgICAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAy
LCBnbC5GTE9BVCwgZ2wuRkFMU0UsIHZlcnRfYnl0ZXMsIDApOw0KICAgICAgICAgICAgZ2wuZW5h
YmxlVmVydGV4QXR0cmliQXJyYXkoMCk7DQogICAgICAgICAgICBnbC5iaW5kVmVydGV4QXJyYXko
bnVsbCk7DQoNCiAgICAgICAgICAgIGxldCB2YW9fdHJpYW5nbGVzID0gZ2wuY3JlYXRlVmVydGV4
QXJyYXkoKTsNCiAgICAgICAgICAgIGdsLmJpbmRWZXJ0ZXhBcnJheSh2YW9fdHJpYW5nbGVzKTsN
CiAgICAgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2Ym8pOw0KICAgICAg
ICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaWR4X3RyaWFuZ2xl
cyk7DQogICAgICAgICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDIsIGdsLkZMT0FULCBn
bC5GQUxTRSwgdmVydF9ieXRlcywgMCk7DQogICAgICAgICAgICBnbC5lbmFibGVWZXJ0ZXhBdHRy
aWJBcnJheSgwKTsNCiAgICAgICAgICAgIGdsLmJpbmRWZXJ0ZXhBcnJheShudWxsKTsNCg0KICAg
ICAgICAgICAgZXJyID0gZ2wuZ2V0RXJyb3IoKTsNCiAgICAgICAgICAgIGlmIChlcnIpDQogICAg
ICAgICAgICB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coImluIHByZXBUaGluZ3MoKSwg
Z2wgY29tcGxhaW5zOiAiICsgZXJyKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQog
ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHRoaW5ncyA9DQogICAgICAgICAgICB7DQogICAg
ICAgICAgICAgICAgc3RyOiBbIlRSSUFOR0xFX0ZBTiIsIlRSSUFOR0xFUyJdLA0KICAgICAgICAg
ICAgICAgIG1vZDogW2dsLlRSSUFOR0xFX0ZBTiwgZ2wuVFJJQU5HTEVTXSwNCiAgICAgICAgICAg
ICAgICBudW06IFs1KnF1YWRzLCA2KnF1YWRzXSwNCiAgICAgICAgICAgICAgICB2YW86IFt2YW9f
dHJpZmFuX3ByaW1fcmVzdGFydCwgdmFvX3RyaWFuZ2xlc10sDQogICAgICAgICAgICAgICAgaWR4
OiBbaWR4X3RyaWZhbl9wcmltX3Jlc3RhcnQsIGlkeF90cmlhbmdsZXNdLA0KICAgICAgICAgICAg
ICAgIHZibzogdmJvLA0KICAgICAgICAgICAgICAgIHByZzogcHJnLA0KICAgICAgICAgICAgfTsN
Cg0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAgICB2YXIgbWV0
aG9kID0gMDsNCiAgICAgICAgY29uc3QgbWV0aG9kcyA9IDI7DQoNCiAgICAgICAgdmFyIHRpbWVy
X2FjY3VtID0gbmV3IEFycmF5KG1ldGhvZHMpLmZpbGwoMCk7DQogICAgICAgIHZhciB0aW1lcl9z
YW1wbGVzID0gMDsNCiAgICAgICAgY29uc3QgdGltZXJfbWF4ID0gMzA7DQoNCiAgICAgICAgZnVu
Y3Rpb24gZHJhd1RoaW5ncyh0aW1lX3N0YW1wKQ0KICAgICAgICB7DQoNCiAgICAgICAgICAgIGxl
dCBtb2QgPSB0aGluZ3MubW9kW21ldGhvZF07DQogICAgICAgICAgICBsZXQgbnVtID0gdGhpbmdz
Lm51bVttZXRob2RdOw0KICAgICAgICAgICAgbGV0IHZhbyA9IHRoaW5ncy52YW9bbWV0aG9kXTsN
Cg0KICAgICAgICAgICAgZ2wuY2xlYXJDb2xvcigwLCAwLCAwLCAxKTsNCiAgICAgICAgICAgIGds
LmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOw0KDQogICAgICAgICAgICBnbC52aWV3cG9ydCgw
LCAwLCBnbC5jYW52YXMud2lkdGgsIGdsLmNhbnZhcy5oZWlnaHQpOw0KDQogICAgICAgICAgICBn
bC51c2VQcm9ncmFtKHRoaW5ncy5wcmcpOw0KDQogICAgICAgICAgICBnbC5iaW5kVmVydGV4QXJy
YXkodmFvKTsNCg0KICAgICAgICAgICAgbGV0IHRpbWVyID0gcGVyZm9ybWFuY2Uubm93KCk7DQog
ICAgICAgICAgICBmb3IgKGxldCBidXJzdD0wOyBidXJzdDwxMDA7IGJ1cnN0KyspDQogICAgICAg
ICAgICAgICAgZ2wuZHJhd0VsZW1lbnRzKG1vZCwgbnVtLCBnbC5VTlNJR05FRF9JTlQsIDApOw0K
ICAgICAgICAgICAgdGltZXJfYWNjdW1bbWV0aG9kXSArPSBwZXJmb3JtYW5jZS5ub3coKSAtIHRp
bWVyOw0KDQogICAgICAgICAgICBnbC51c2VQcm9ncmFtKG51bGwpOw0KICAgICAgICAgICAgZ2wu
YmluZFZlcnRleEFycmF5KG51bGwpOw0KICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJB
WV9CVUZGRVIsIG51bGwpOw0KDQoNCiAgICAgICAgICAgIGlmICghZXJyKQ0KICAgICAgICAgICAg
ew0KICAgICAgICAgICAgICAgIGVyciA9IGdsLmdldEVycm9yKCk7DQogICAgICAgICAgICAgICAg
aWYgKGVycikNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coImluIGRyYXdUaGluZ3Mo
KSwgZ2wgY29tcGxhaW5zOiAiICsgZXJyKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAg
bWV0aG9kKys7DQogICAgICAgICAgICBpZiAobWV0aG9kID49IG1ldGhvZHMpDQogICAgICAgICAg
ICB7DQogICAgICAgICAgICAgICAgbWV0aG9kID0gMDsNCiAgICAgICAgICAgICAgICB0aW1lcl9z
YW1wbGVzKys7DQogICAgICAgICAgICAgICAgaWYgKHRpbWVyX3NhbXBsZXM+PXRpbWVyX21heCkN
CiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGxldCBzdHIwID0gdGhpbmdz
LnN0clswXSArICIgPSAiICsgTWF0aC5yb3VuZCh0aW1lcl9hY2N1bVswXSoxMDAwL3RpbWVyX21h
eCkgKyAiJm1pY3JvO3MiOw0KICAgICAgICAgICAgICAgICAgICBsZXQgc3RyMSA9IHRoaW5ncy5z
dHJbMV0gKyAiID0gIiArIE1hdGgucm91bmQodGltZXJfYWNjdW1bMV0qMTAwMC90aW1lcl9tYXgp
ICsgIiZtaWNybztzIjsNCiAgICAgICAgICAgICAgICAgICAgcGVyZi5pbm5lckhUTUwgPSBzdHIw
ICsgIjxicj4iICsgc3RyMTsNCiAgICAgICAgICAgICAgICAgICAgdGltZXJfc2FtcGxlcyA9IDA7
DQogICAgICAgICAgICAgICAgICAgIHRpbWVyX2FjY3VtWzBdID0gMDsNCiAgICAgICAgICAgICAg
ICAgICAgdGltZXJfYWNjdW1bMV0gPSAwOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg
IH0NCg0KDQogICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZHJhd1RoaW5ncyk7DQog
ICAgICAgIH0NCg0KICAgIDwvc2NyaXB0Pg0KPC9oZWFkPg0KPGJvZHkgb25sb2FkPSJpbml0R0wo
KSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IzIyMiI+DQogICAgPGNhbnZhcyBpZD0idGhlX2Nh
bnZhcyIgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiIHN0eWxlPSJ3aWR0aDoyNTZweDsgaGVpZ2h0
OjI1NnB4Ij4NCiAgICA8L2NhbnZhcz4NCiAgICA8YnI+DQogICAgPGRpdiBpZD0icGVyZiIgc3R5
bGU9InRleHQtYWxpZ246cmlnaHQ7IHdpZHRoOjI1NnB4OyBjb2xvcjojRkZGIj48L2Rpdj4NCjwv
Ym9keT4NCjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>454113</attachid>
            <date>2022-03-08 05:51:27 -0800</date>
            <delta_ts>2022-03-08 05:51:27 -0800</delta_ts>
            <desc>Added TRIANGLE_STRIP to the test</desc>
            <filename>test_prim_restart_3.html</filename>
            <type>text/html</type>
            <size>10878</size>
            <attacher name="Marcin">msokalski</attacher>
            
              <data encoding="base64">77u/PCFET0NUWVBFIGh0bWw+DQoNCjxodG1sIGxhbmc9ImVuIiB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCI+DQo8aGVhZD4NCiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4N
CiAgICA8dGl0bGU+UXVpdGUgRWRneSBUZXN0PC90aXRsZT4NCg0KICAgIDxzY3JpcHQgaWQ9InRo
ZV92ZXJ0ZXhfc2hhZGVyIiB0eXBlPSJzaGFkZXIvZ2xzbCI+DQogICAgICAgIGxheW91dChsb2Nh
dGlvbiA9IDApIGluIHZlYzIgdmVydDsNCiAgICAgICAgb3V0IGxvd3AgdmVjNCBjb2xvcjsNCg0K
ICAgICAgICB2b2lkIG1haW4oKQ0KICAgICAgICB7DQogICAgICAgICAgICBnbF9Qb3NpdGlvbiA9
IHZlYzQodmVydC54eSwwLjAsMS4wKTsNCg0KICAgICAgICAgICAgZmxvYXQgeSA9IDAuNTsNCiAg
ICAgICAgICAgIGZsb2F0IGNvID0gMC41ICogdmVydC54Ow0KICAgICAgICAgICAgZmxvYXQgY2cg
PSAwLjUgKiB2ZXJ0Lnk7DQoNCgkJCWZsb2F0IHIgPSB5ICsgY28gLSBjZzsNCgkJCWZsb2F0IGcg
PSB5ICsgY2c7DQoJCQlmbG9hdCBiID0geSAtIGNvIC0gY2c7DQoNCiAgICAgICAgICAgIGNvbG9y
ID0gdmVjNChyLGcsYiwxLjApOw0KICAgICAgICB9DQoNCiAgICA8L3NjcmlwdD4NCg0KICAgIDxz
Y3JpcHQgaWQ9InRoZV9mcmFnbWVudF9zaGFkZXIiIHR5cGU9InNoYWRlci9nbHNsIj4gIA0KICAg
ICAgICBpbiBsb3dwIHZlYzQgY29sb3I7DQogICAgICAgIGxheW91dChsb2NhdGlvbiA9IDApIG91
dCBsb3dwIHZlYzQgZnJhZzsNCg0KICAgICAgICB2b2lkIG1haW4oKQ0KICAgICAgICB7DQogICAg
ICAgICAgICBmcmFnID0gY29sb3I7DQogICAgICAgIH0NCiAgICA8L3NjcmlwdD4NCg0KICAgIDxz
Y3JpcHQ+DQoNCiAgICAgICAgdmFyIHBlcmYgPSBudWxsOw0KICAgICAgICB2YXIgZ2wgPSBudWxs
Ow0KICAgICAgICB2YXIgdGhpbmdzID0gbnVsbDsNCiAgICAgICAgdmFyIGVyciA9IDA7DQoNCiAg
ICAgICAgZnVuY3Rpb24gaW5pdEdMKCkgew0KICAgICAgICAgICAgcGVyZiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJwZXJmIik7DQogICAgICAgICAgICBsZXQgYyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0aGVfY2FudmFzIik7DQogICAgICAgICAgICBpZiAoYykNCiAgICAgICAgICAg
IHsNCiAgICAgICAgICAgICAgICB0cnkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg
ICAgICAgIGdsID0gYy5nZXRDb250ZXh0KCJ3ZWJnbDIiKTsNCiAgICAgICAgICAgICAgICB9DQog
ICAgICAgICAgICAgICAgY2F0Y2ggKGUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg
ICAgICAgICBnbCA9IG51bGw7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAg
ICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIGdsID0gbnVsbDsNCg0KICAgICAgICAgICAg
aWYgKCFnbCkNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygid29uJ3Qgd29yayB0b2RheSIp
Ow0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChw
cmVwVGhpbmdzKCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoZHJhd1RoaW5ncyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAg
ICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGNv
bnNvbGUubG9nKCJnbCBpcyBtYWQgdG9kYXkiKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAg
ICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBwcmVwVGhpbmdzKCkgew0KDQog
ICAgICAgICAgICBsZXQgdnNfc3JjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRoZV92ZXJ0
ZXhfc2hhZGVyIikuaW5uZXJIVE1MOw0KICAgICAgICAgICAgbGV0IGZzX3NyYyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0aGVfZnJhZ21lbnRfc2hhZGVyIikuaW5uZXJIVE1MOw0KDQogICAg
ICAgICAgICBsZXQgbnVtX3ggPSAxNjsNCiAgICAgICAgICAgIGxldCBudW1feSA9IDE2Ow0KICAg
ICAgICAgICAgbGV0IHF1YWRzID0gbnVtX3gqbnVtX3k7DQogICAgICAgICAgICBsZXQgdmVydHMg
PSA0KnF1YWRzOyAvLyA0IHZlcnRzIHBlciBxdWFkDQogICAgICAgICAgICBsZXQgZmxvYXRzX3Bl
cl92ZXJ0ZXggPSAyOw0KICAgICAgICAgICAgbGV0IGFycl9zaXplICA9IGZsb2F0c19wZXJfdmVy
dGV4KnZlcnRzOw0KDQogICAgICAgICAgICBjb25zdCBmbG9hdF9ieXRlcyA9IDQ7DQogICAgICAg
ICAgICBsZXQgdmVydF9ieXRlcyA9IGZsb2F0X2J5dGVzICogZmxvYXRzX3Blcl92ZXJ0ZXg7DQoN
CiAgICAgICAgICAgIGxldCBjb29yZHMgPSBuZXcgRmxvYXQzMkFycmF5KGFycl9zaXplKTsNCg0K
ICAgICAgICAgICAgLy8gdmVydGV4IGRpc3BsYWNlbWVudCBpbiBhIHF1YWQNCiAgICAgICAgICAg
IGxldCBnYXAgPSAwLjA1OyAvLyBzcGFjaW5nDQogICAgICAgICAgICBsZXQgcXVhZCA9IFtnYXAs
Z2FwLCAxLjAtZ2FwLGdhcCwgMS4wLWdhcCwxLjAtZ2FwLCBnYXAsMS4wLWdhcF07IA0KDQogICAg
ICAgICAgICBmb3IgKGxldCB5ID0gMCwgaSA9IDA7IHkgPCBudW1feTsgeSsrKQ0KICAgICAgICAg
ICAgew0KICAgICAgICAgICAgICAgIGZvciAobGV0IHggPSAwOyB4IDwgbnVtX3g7IHgrKykNCiAg
ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHYgPSAwOyB2IDwg
NDsgdisrICwgaSArPSAyKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg
ICAgICAgICAvLyBzdHVmZmluZw0KICAgICAgICAgICAgICAgICAgICAgICAgY29vcmRzW2krMF0g
PSAyLjAgKiAoeCArIHF1YWRbMip2KzBdKSAvIG51bV94IC0gMS4wOw0KICAgICAgICAgICAgICAg
ICAgICAgICAgY29vcmRzW2krMV0gPSAyLjAgKiAoeSArIHF1YWRbMip2KzFdKSAvIG51bV95IC0g
MS4wOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAg
ICAgfQ0KDQogICAgICAgICAgICBsZXQgaW5kaWNlc190cmlzdHJpcF9wcmltX3Jlc3RhcnQgPSBu
ZXcgVWludDMyQXJyYXkoNSpxdWFkcyk7DQogICAgICAgICAgICBmb3IgKGxldCBxID0gMDsgcSA8
IHF1YWRzOyBxKyspDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbGV0IGkgPSA1KnE7
DQogICAgICAgICAgICAgICAgbGV0IHYgPSA0KnE7DQoNCiAgICAgICAgICAgICAgICBpbmRpY2Vz
X3RyaXN0cmlwX3ByaW1fcmVzdGFydFtpKzBdID0gdiswOyAvLyBsbA0KICAgICAgICAgICAgICAg
IGluZGljZXNfdHJpc3RyaXBfcHJpbV9yZXN0YXJ0W2krMV0gPSB2KzE7IC8vIGxyDQogICAgICAg
ICAgICAgICAgaW5kaWNlc190cmlzdHJpcF9wcmltX3Jlc3RhcnRbaSsyXSA9IHYrMzsgLy8gdWwN
CiAgICAgICAgICAgICAgICBpbmRpY2VzX3RyaXN0cmlwX3ByaW1fcmVzdGFydFtpKzNdID0gdisy
OyAvLyB1cg0KICAgICAgICAgICAgICAgIGluZGljZXNfdHJpc3RyaXBfcHJpbV9yZXN0YXJ0W2kr
NF0gPSAweEZGRkZGRkZGOyAvLyByZXN0YXJ0DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAg
IGxldCBpbmRpY2VzX3RyaWZhbl9wcmltX3Jlc3RhcnQgPSBuZXcgVWludDMyQXJyYXkoNSpxdWFk
cyk7DQogICAgICAgICAgICBmb3IgKGxldCBxID0gMDsgcSA8IHF1YWRzOyBxKyspDQogICAgICAg
ICAgICB7DQogICAgICAgICAgICAgICAgbGV0IGkgPSA1KnE7DQogICAgICAgICAgICAgICAgbGV0
IHYgPSA0KnE7DQoNCiAgICAgICAgICAgICAgICBpbmRpY2VzX3RyaWZhbl9wcmltX3Jlc3RhcnRb
aSswXSA9IHYrMDsgLy8gbGwNCiAgICAgICAgICAgICAgICBpbmRpY2VzX3RyaWZhbl9wcmltX3Jl
c3RhcnRbaSsxXSA9IHYrMTsgLy8gbHINCiAgICAgICAgICAgICAgICBpbmRpY2VzX3RyaWZhbl9w
cmltX3Jlc3RhcnRbaSsyXSA9IHYrMjsgLy8gdXINCiAgICAgICAgICAgICAgICBpbmRpY2VzX3Ry
aWZhbl9wcmltX3Jlc3RhcnRbaSszXSA9IHYrMzsgLy8gdWwNCiAgICAgICAgICAgICAgICBpbmRp
Y2VzX3RyaWZhbl9wcmltX3Jlc3RhcnRbaSs0XSA9IDB4RkZGRkZGRkY7IC8vIHJlc3RhcnQNCiAg
ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgbGV0IGluZGljZXNfdHJpYW5nbGVzID0gbmV3IFVp
bnQzMkFycmF5KDYqcXVhZHMpOw0KICAgICAgICAgICAgZm9yIChsZXQgcSA9IDA7IHEgPCBxdWFk
czsgcSsrKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGxldCBpID0gNipxOw0KICAg
ICAgICAgICAgICAgIGxldCB2ID0gNCpxOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAg
ICAgIGluZGljZXNfdHJpYW5nbGVzW2krMF0gPSB2KzA7IC8vIGxsDQogICAgICAgICAgICAgICAg
aW5kaWNlc190cmlhbmdsZXNbaSsxXSA9IHYrMTsgLy8gbHINCiAgICAgICAgICAgICAgICBpbmRp
Y2VzX3RyaWFuZ2xlc1tpKzJdID0gdisyOyAvLyB1cg0KDQogICAgICAgICAgICAgICAgaW5kaWNl
c190cmlhbmdsZXNbaSszXSA9IHYrMDsgLy8gbGwNCiAgICAgICAgICAgICAgICBpbmRpY2VzX3Ry
aWFuZ2xlc1tpKzRdID0gdisyOyAvLyB1cg0KICAgICAgICAgICAgICAgIGluZGljZXNfdHJpYW5n
bGVzW2krNV0gPSB2KzM7IC8vIHVsDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGxldCBw
cmcgPSBnbC5jcmVhdGVQcm9ncmFtKCk7DQogICAgICAgICAgICBsZXQgdnMgPSBnbC5jcmVhdGVT
aGFkZXIoZ2wuVkVSVEVYX1NIQURFUik7DQogICAgICAgICAgICBsZXQgZnMgPSBnbC5jcmVhdGVT
aGFkZXIoZ2wuRlJBR01FTlRfU0hBREVSKTsNCg0KICAgICAgICAgICAgZ2wuc2hhZGVyU291cmNl
KHZzLCAiI3ZlcnNpb24gMzAwIGVzXG4iICsgdnNfc3JjKTsNCiAgICAgICAgICAgIGdsLnNoYWRl
clNvdXJjZShmcywgIiN2ZXJzaW9uIDMwMCBlc1xuIiArIGZzX3NyYyk7DQoNCiAgICAgICAgICAg
IGdsLmNvbXBpbGVTaGFkZXIodnMpOw0KICAgICAgICAgICAgaWYgKCFnbC5nZXRTaGFkZXJQYXJh
bWV0ZXIodnMsIGdsLkNPTVBJTEVfU1RBVFVTKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAg
ICAgICBjb25zb2xlLmxvZyhnbC5nZXRTaGFkZXJJbmZvTG9nKHZzKSk7DQogICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBnbC5jb21waWxl
U2hhZGVyKGZzKTsNCiAgICAgICAgICAgIGlmICghZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKGZzLCBn
bC5DT01QSUxFX1NUQVRVUykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgY29uc29s
ZS5sb2coZ2wuZ2V0U2hhZGVySW5mb0xvZyhmcykpOw0KICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgZ2wuYXR0YWNoU2hhZGVyKHByZywg
dnMpOw0KICAgICAgICAgICAgZ2wuYXR0YWNoU2hhZGVyKHByZywgZnMpOw0KDQogICAgICAgICAg
ICBnbC5saW5rUHJvZ3JhbShwcmcpOw0KICAgICAgICAgICAgaWYgKCFnbC5nZXRQcm9ncmFtUGFy
YW1ldGVyKHByZywgZ2wuTElOS19TVEFUVVMpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAg
ICAgIGNvbnNvbGUubG9nKGdsLmdldFByb2dyYW1JbmZvTG9nKHByZykpOw0KICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgZ2wuZGVsZXRl
U2hhZGVyKHZzKTsNCiAgICAgICAgICAgIGdsLmRlbGV0ZVNoYWRlcihmcyk7DQoNCiAgICAgICAg
ICAgIGxldCBpZHhfdHJpc3RyaXBfcHJpbV9yZXN0YXJ0ID0gZ2wuY3JlYXRlQnVmZmVyKCk7DQog
ICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpZHhfdHJp
c3RyaXBfcHJpbV9yZXN0YXJ0KTsNCiAgICAgICAgICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVO
VF9BUlJBWV9CVUZGRVIsIGluZGljZXNfdHJpc3RyaXBfcHJpbV9yZXN0YXJ0LCBnbC5TVEFUSUNf
RFJBVyk7DQogICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVS
LCBudWxsKTsNCg0KICAgICAgICAgICAgbGV0IGlkeF90cmlmYW5fcHJpbV9yZXN0YXJ0ID0gZ2wu
Y3JlYXRlQnVmZmVyKCk7DQogICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJS
QVlfQlVGRkVSLCBpZHhfdHJpZmFuX3ByaW1fcmVzdGFydCk7DQogICAgICAgICAgICBnbC5idWZm
ZXJEYXRhKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRpY2VzX3RyaWZhbl9wcmltX3Jlc3Rh
cnQsIGdsLlNUQVRJQ19EUkFXKTsNCiAgICAgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVO
VF9BUlJBWV9CVUZGRVIsIG51bGwpOw0KDQogICAgICAgICAgICBsZXQgaWR4X3RyaWFuZ2xlcyA9
IGdsLmNyZWF0ZUJ1ZmZlcigpOw0KICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5U
X0FSUkFZX0JVRkZFUiwgaWR4X3RyaWFuZ2xlcyk7DQogICAgICAgICAgICBnbC5idWZmZXJEYXRh
KGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRpY2VzX3RyaWFuZ2xlcywgZ2wuU1RBVElDX0RS
QVcpOw0KICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwg
bnVsbCk7DQoNCiAgICAgICAgICAgIGxldCB2Ym8gPSBnbC5jcmVhdGVCdWZmZXIoKTsNCiAgICAg
ICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2Ym8pOw0KICAgICAgICAgICAg
Z2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIGNvb3JkcywgZ2wuU1RBVElDX0RSQVcpOw0K
ICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIG51bGwpOw0KDQogICAg
ICAgICAgICBsZXQgdmFvX3RyaXN0cmlwX3ByaW1fcmVzdGFydCA9IGdsLmNyZWF0ZVZlcnRleEFy
cmF5KCk7DQogICAgICAgICAgICBnbC5iaW5kVmVydGV4QXJyYXkodmFvX3RyaXN0cmlwX3ByaW1f
cmVzdGFydCk7DQogICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmJv
KTsNCiAgICAgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGlk
eF90cmlzdHJpcF9wcmltX3Jlc3RhcnQpOw0KICAgICAgICAgICAgZ2wudmVydGV4QXR0cmliUG9p
bnRlcigwLCAyLCBnbC5GTE9BVCwgZ2wuRkFMU0UsIHZlcnRfYnl0ZXMsIDApOw0KICAgICAgICAg
ICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoMCk7DQogICAgICAgICAgICBnbC5iaW5kVmVy
dGV4QXJyYXkobnVsbCk7DQoNCiAgICAgICAgICAgIGxldCB2YW9fdHJpZmFuX3ByaW1fcmVzdGFy
dCA9IGdsLmNyZWF0ZVZlcnRleEFycmF5KCk7DQogICAgICAgICAgICBnbC5iaW5kVmVydGV4QXJy
YXkodmFvX3RyaWZhbl9wcmltX3Jlc3RhcnQpOw0KICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihn
bC5BUlJBWV9CVUZGRVIsIHZibyk7DQogICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1F
TlRfQVJSQVlfQlVGRkVSLCBpZHhfdHJpZmFuX3ByaW1fcmVzdGFydCk7DQogICAgICAgICAgICBn
bC52ZXJ0ZXhBdHRyaWJQb2ludGVyKDAsIDIsIGdsLkZMT0FULCBnbC5GQUxTRSwgdmVydF9ieXRl
cywgMCk7DQogICAgICAgICAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsNCiAgICAg
ICAgICAgIGdsLmJpbmRWZXJ0ZXhBcnJheShudWxsKTsNCg0KICAgICAgICAgICAgbGV0IHZhb190
cmlhbmdsZXMgPSBnbC5jcmVhdGVWZXJ0ZXhBcnJheSgpOw0KICAgICAgICAgICAgZ2wuYmluZFZl
cnRleEFycmF5KHZhb190cmlhbmdsZXMpOw0KICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5B
UlJBWV9CVUZGRVIsIHZibyk7DQogICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRf
QVJSQVlfQlVGRkVSLCBpZHhfdHJpYW5nbGVzKTsNCiAgICAgICAgICAgIGdsLnZlcnRleEF0dHJp
YlBvaW50ZXIoMCwgMiwgZ2wuRkxPQVQsIGdsLkZBTFNFLCB2ZXJ0X2J5dGVzLCAwKTsNCiAgICAg
ICAgICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KDApOw0KICAgICAgICAgICAgZ2wuYmlu
ZFZlcnRleEFycmF5KG51bGwpOw0KDQogICAgICAgICAgICBlcnIgPSBnbC5nZXRFcnJvcigpOw0K
ICAgICAgICAgICAgaWYgKGVycikNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBjb25z
b2xlLmxvZygiaW4gcHJlcFRoaW5ncygpLCBnbCBjb21wbGFpbnM6ICIgKyBlcnIpOw0KICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgdGhp
bmdzID0NCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBzdHI6IFsiVFJJQU5HTEVfU1RS
SVAiLCJUUklBTkdMRV9GQU4iLCJUUklBTkdMRVMiXSwNCiAgICAgICAgICAgICAgICBtb2Q6IFtn
bC5UUklBTkdMRV9TVFJJUCxnbC5UUklBTkdMRV9GQU4sZ2wuVFJJQU5HTEVTXSwNCiAgICAgICAg
ICAgICAgICBudW06IFs1KnF1YWRzLCA1KnF1YWRzLCA2KnF1YWRzXSwNCiAgICAgICAgICAgICAg
ICB2YW86IFt2YW9fdHJpc3RyaXBfcHJpbV9yZXN0YXJ0LCB2YW9fdHJpZmFuX3ByaW1fcmVzdGFy
dCwgdmFvX3RyaWFuZ2xlc10sDQogICAgICAgICAgICAgICAgaWR4OiBbaWR4X3RyaXN0cmlwX3By
aW1fcmVzdGFydCwgaWR4X3RyaWZhbl9wcmltX3Jlc3RhcnQsIGlkeF90cmlhbmdsZXNdLA0KICAg
ICAgICAgICAgICAgIHZibzogdmJvLA0KICAgICAgICAgICAgICAgIHByZzogcHJnLA0KICAgICAg
ICAgICAgfTsNCg0KICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgIH0NCg0KICAgICAg
ICB2YXIgbWV0aG9kID0gMDsNCiAgICAgICAgY29uc3QgbWV0aG9kcyA9IDM7DQoNCiAgICAgICAg
dmFyIHRpbWVyX2FjY3VtID0gbmV3IEFycmF5KG1ldGhvZHMpLmZpbGwoMCk7DQogICAgICAgIHZh
ciB0aW1lcl9zYW1wbGVzID0gMDsNCiAgICAgICAgY29uc3QgdGltZXJfbWF4ID0gMzA7DQoNCiAg
ICAgICAgZnVuY3Rpb24gZHJhd1RoaW5ncyh0aW1lX3N0YW1wKQ0KICAgICAgICB7DQoNCiAgICAg
ICAgICAgIGxldCBtb2QgPSB0aGluZ3MubW9kW21ldGhvZF07DQogICAgICAgICAgICBsZXQgbnVt
ID0gdGhpbmdzLm51bVttZXRob2RdOw0KICAgICAgICAgICAgbGV0IHZhbyA9IHRoaW5ncy52YW9b
bWV0aG9kXTsNCg0KICAgICAgICAgICAgZ2wuY2xlYXJDb2xvcigwLCAwLCAwLCAxKTsNCiAgICAg
ICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOw0KDQogICAgICAgICAgICBnbC52
aWV3cG9ydCgwLCAwLCBnbC5jYW52YXMud2lkdGgsIGdsLmNhbnZhcy5oZWlnaHQpOw0KDQogICAg
ICAgICAgICBnbC51c2VQcm9ncmFtKHRoaW5ncy5wcmcpOw0KDQogICAgICAgICAgICBnbC5iaW5k
VmVydGV4QXJyYXkodmFvKTsNCg0KICAgICAgICAgICAgbGV0IHRpbWVyID0gcGVyZm9ybWFuY2Uu
bm93KCk7DQogICAgICAgICAgICBmb3IgKGxldCBidXJzdD0wOyBidXJzdDwxMDA7IGJ1cnN0Kysp
DQogICAgICAgICAgICAgICAgZ2wuZHJhd0VsZW1lbnRzKG1vZCwgbnVtLCBnbC5VTlNJR05FRF9J
TlQsIDApOw0KICAgICAgICAgICAgdGltZXJfYWNjdW1bbWV0aG9kXSArPSBwZXJmb3JtYW5jZS5u
b3coKSAtIHRpbWVyOw0KDQogICAgICAgICAgICBnbC51c2VQcm9ncmFtKG51bGwpOw0KICAgICAg
ICAgICAgZ2wuYmluZFZlcnRleEFycmF5KG51bGwpOw0KICAgICAgICAgICAgZ2wuYmluZEJ1ZmZl
cihnbC5BUlJBWV9CVUZGRVIsIG51bGwpOw0KDQoNCiAgICAgICAgICAgIGlmICghZXJyKQ0KICAg
ICAgICAgICAgew0KICAgICAgICAgICAgICAgIGVyciA9IGdsLmdldEVycm9yKCk7DQogICAgICAg
ICAgICAgICAgaWYgKGVycikNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coImluIGRy
YXdUaGluZ3MoKSwgZ2wgY29tcGxhaW5zOiAiICsgZXJyKTsNCiAgICAgICAgICAgIH0NCg0KICAg
ICAgICAgICAgbWV0aG9kKys7DQogICAgICAgICAgICBpZiAobWV0aG9kID49IG1ldGhvZHMpDQog
ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbWV0aG9kID0gMDsNCiAgICAgICAgICAgICAg
ICB0aW1lcl9zYW1wbGVzKys7DQogICAgICAgICAgICAgICAgaWYgKHRpbWVyX3NhbXBsZXM+PXRp
bWVyX21heCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGxldCBzdHIg
PSAiIjsNCiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgbT0wOyBtPG1ldGhvZHM7IG0rKykN
CiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9IHRo
aW5ncy5zdHJbbV0gKyAiID0gIiArIE1hdGgucm91bmQodGltZXJfYWNjdW1bbV0qMTAwMC90aW1l
cl9tYXgpICsgIiZtaWNybztzPGJyPiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0aW1lcl9h
Y2N1bVttXSA9IDA7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg
cGVyZi5pbm5lckhUTUwgPSBzdHI7DQogICAgICAgICAgICAgICAgICAgIHRpbWVyX3NhbXBsZXMg
PSAwOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgcmVx
dWVzdEFuaW1hdGlvbkZyYW1lKGRyYXdUaGluZ3MpOw0KICAgICAgICB9DQoNCiAgICA8L3Njcmlw
dD4NCjwvaGVhZD4NCjxib2R5IG9ubG9hZD0iaW5pdEdMKCkiIHN0eWxlPSJiYWNrZ3JvdW5kLWNv
bG9yOiMyMjIiPg0KICAgIDxjYW52YXMgaWQ9InRoZV9jYW52YXMiIHdpZHRoPSIyNTYiIGhlaWdo
dD0iMjU2IiBzdHlsZT0id2lkdGg6MjU2cHg7IGhlaWdodDoyNTZweCI+DQogICAgPC9jYW52YXM+
DQogICAgPGJyPg0KICAgIDxkaXYgaWQ9InBlcmYiIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0OyB3
aWR0aDoyNTZweDsgY29sb3I6I0ZGRiI+PC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>454117</attachid>
            <date>2022-03-08 06:57:29 -0800</date>
            <delta_ts>2022-03-08 06:57:29 -0800</delta_ts>
            <desc>drawElements with mode = TRIANGLE_STRIP vs TRIANGLE_FAN vs TRIANGLES</desc>
            <filename>strip_vs_fan.html</filename>
            <type>text/html</type>
            <size>9367</size>
            <attacher name="Marcin">msokalski</attacher>
            
              <data encoding="base64">77u/PCFET0NUWVBFIGh0bWw+DQoNCjxodG1sIGxhbmc9ImVuIiB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCI+DQo8aGVhZD4NCiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4N
CiAgICA8dGl0bGU+UXVpdGUgRWRneSBUZXN0PC90aXRsZT4NCg0KICAgIDxzY3JpcHQgaWQ9InRo
ZV92ZXJ0ZXhfc2hhZGVyIiB0eXBlPSJzaGFkZXIvZ2xzbCI+DQogICAgICAgIGxheW91dChsb2Nh
dGlvbiA9IDApIGluIHZlYzIgdmVydDsNCiAgICAgICAgb3V0IGxvd3AgdmVjNCBjb2xvcjsNCg0K
ICAgICAgICB2b2lkIG1haW4oKQ0KICAgICAgICB7DQogICAgICAgICAgICBnbF9Qb3NpdGlvbiA9
IHZlYzQodmVydC54eSwwLjAsMS4wKTsNCg0KICAgICAgICAgICAgZmxvYXQgeSA9IDAuNTsNCiAg
ICAgICAgICAgIGZsb2F0IGNvID0gMC41ICogdmVydC54Ow0KICAgICAgICAgICAgZmxvYXQgY2cg
PSAwLjUgKiB2ZXJ0Lnk7DQoNCgkJCWZsb2F0IHIgPSB5ICsgY28gLSBjZzsNCgkJCWZsb2F0IGcg
PSB5ICsgY2c7DQoJCQlmbG9hdCBiID0geSAtIGNvIC0gY2c7DQoNCiAgICAgICAgICAgIGNvbG9y
ID0gdmVjNChyLGcsYiwxLjApOw0KICAgICAgICB9DQoNCiAgICA8L3NjcmlwdD4NCg0KICAgIDxz
Y3JpcHQgaWQ9InRoZV9mcmFnbWVudF9zaGFkZXIiIHR5cGU9InNoYWRlci9nbHNsIj4gIA0KICAg
ICAgICBpbiBsb3dwIHZlYzQgY29sb3I7DQogICAgICAgIGxheW91dChsb2NhdGlvbiA9IDApIG91
dCBsb3dwIHZlYzQgZnJhZzsNCg0KICAgICAgICB2b2lkIG1haW4oKQ0KICAgICAgICB7DQogICAg
ICAgICAgICBmcmFnID0gY29sb3I7DQogICAgICAgIH0NCiAgICA8L3NjcmlwdD4NCg0KICAgIDxz
Y3JpcHQ+DQoNCiAgICAgICAgdmFyIHBlcmYgPSBudWxsOw0KICAgICAgICB2YXIgZ2wgPSBudWxs
Ow0KICAgICAgICB2YXIgdGhpbmdzID0gbnVsbDsNCiAgICAgICAgdmFyIGVyciA9IDA7DQoNCiAg
ICAgICAgZnVuY3Rpb24gaW5pdEdMKCkgew0KICAgICAgICAgICAgcGVyZiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJwZXJmIik7DQogICAgICAgICAgICBsZXQgYyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0aGVfY2FudmFzIik7DQogICAgICAgICAgICBpZiAoYykNCiAgICAgICAgICAg
IHsNCiAgICAgICAgICAgICAgICB0cnkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg
ICAgICAgIGdsID0gYy5nZXRDb250ZXh0KCJ3ZWJnbDIiKTsNCiAgICAgICAgICAgICAgICB9DQog
ICAgICAgICAgICAgICAgY2F0Y2ggKGUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg
ICAgICAgICBnbCA9IG51bGw7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAg
ICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIGdsID0gbnVsbDsNCg0KICAgICAgICAgICAg
aWYgKCFnbCkNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygid29uJ3Qgd29yayB0b2RheSIp
Ow0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGlmIChw
cmVwVGhpbmdzKCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUoZHJhd1RoaW5ncyk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAg
ICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGNv
bnNvbGUubG9nKCJnbCBpcyBtYWQgdG9kYXkiKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAg
ICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBwcmVwVGhpbmdzKCkgew0KDQog
ICAgICAgICAgICBsZXQgdnNfc3JjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRoZV92ZXJ0
ZXhfc2hhZGVyIikuaW5uZXJIVE1MOw0KICAgICAgICAgICAgbGV0IGZzX3NyYyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0aGVfZnJhZ21lbnRfc2hhZGVyIikuaW5uZXJIVE1MOw0KDQogICAg
ICAgICAgICBsZXQgdmVydHMgPSAzNjA7DQogICAgICAgICAgICBsZXQgZmxvYXRzX3Blcl92ZXJ0
ZXggPSAyOw0KICAgICAgICAgICAgbGV0IGFycl9zaXplICA9IGZsb2F0c19wZXJfdmVydGV4KnZl
cnRzOw0KDQogICAgICAgICAgICBjb25zdCBmbG9hdF9ieXRlcyA9IDQ7DQogICAgICAgICAgICBs
ZXQgdmVydF9ieXRlcyA9IGZsb2F0X2J5dGVzICogZmxvYXRzX3Blcl92ZXJ0ZXg7DQoNCiAgICAg
ICAgICAgIGxldCBjb29yZHMgPSBuZXcgRmxvYXQzMkFycmF5KGFycl9zaXplKTsNCg0KICAgICAg
ICAgICAgZm9yIChsZXQgdiA9IDA7IHYgPCB2ZXJ0czsgdisrKQ0KICAgICAgICAgICAgew0KICAg
ICAgICAgICAgICAgIC8vIHN0dWZmaW5nDQogICAgICAgICAgICAgICAgbGV0IGkgPSAyKnY7DQoN
CiAgICAgICAgICAgICAgICBsZXQgeCA9ICtNYXRoLmNvcyh2Kk1hdGguUEkvMTgwLjApOw0KICAg
ICAgICAgICAgICAgIGxldCB5ID0gLU1hdGguc2luKHYqTWF0aC5QSS8xODAuMCk7DQoNCiAgICAg
ICAgICAgICAgICBjb29yZHNbaSswXSA9IHg7DQogICAgICAgICAgICAgICAgY29vcmRzW2krMV0g
PSB5Ow0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBsZXQgaW5kaWNlc190cmlzdHJpcCA9
IG5ldyBVaW50MzJBcnJheSh2ZXJ0cyk7DQogICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IHZlcnRzOyBpKyspDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgbGV0IHYgPSBpPT0w
ID8gMCA6IGkmMSA/IChpKzEpPj4xIDogdmVydHMgLSAoaT4+MSk7DQogICAgICAgICAgICAgICAg
aW5kaWNlc190cmlzdHJpcFtpXSA9IHY7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGxl
dCBpbmRpY2VzX3RyaWZhbiA9IG5ldyBVaW50MzJBcnJheSh2ZXJ0cyk7DQogICAgICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IHZlcnRzOyBpKyspDQogICAgICAgICAgICB7DQogICAgICAgICAg
ICAgICAgbGV0IHYgPSBpOw0KICAgICAgICAgICAgICAgIGluZGljZXNfdHJpZmFuW2ldID0gdjsN
CiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgbGV0IGluZGljZXNfdHJpYW5nbGVzID0gbmV3
IFVpbnQzMkFycmF5KDMqKHZlcnRzLTIpKTsNCiAgICAgICAgICAgIGZvciAobGV0IHQgPSAwOyB0
IDwgdmVydHMtMjsgdCsrKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIGxldCBpID0g
Myp0Ow0KICAgICAgICAgICAgICAgIGluZGljZXNfdHJpYW5nbGVzW2krMF0gPSAwOw0KICAgICAg
ICAgICAgICAgIGluZGljZXNfdHJpYW5nbGVzW2krMV0gPSB0KzE7DQogICAgICAgICAgICAgICAg
aW5kaWNlc190cmlhbmdsZXNbaSsyXSA9IHQrMjsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAg
ICAgbGV0IHByZyA9IGdsLmNyZWF0ZVByb2dyYW0oKTsNCiAgICAgICAgICAgIGxldCB2cyA9IGds
LmNyZWF0ZVNoYWRlcihnbC5WRVJURVhfU0hBREVSKTsNCiAgICAgICAgICAgIGxldCBmcyA9IGds
LmNyZWF0ZVNoYWRlcihnbC5GUkFHTUVOVF9TSEFERVIpOw0KDQogICAgICAgICAgICBnbC5zaGFk
ZXJTb3VyY2UodnMsICIjdmVyc2lvbiAzMDAgZXNcbiIgKyB2c19zcmMpOw0KICAgICAgICAgICAg
Z2wuc2hhZGVyU291cmNlKGZzLCAiI3ZlcnNpb24gMzAwIGVzXG4iICsgZnNfc3JjKTsNCg0KICAg
ICAgICAgICAgZ2wuY29tcGlsZVNoYWRlcih2cyk7DQogICAgICAgICAgICBpZiAoIWdsLmdldFNo
YWRlclBhcmFtZXRlcih2cywgZ2wuQ09NUElMRV9TVEFUVVMpKQ0KICAgICAgICAgICAgew0KICAg
ICAgICAgICAgICAgIGNvbnNvbGUubG9nKGdsLmdldFNoYWRlckluZm9Mb2codnMpKTsNCiAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGds
LmNvbXBpbGVTaGFkZXIoZnMpOw0KICAgICAgICAgICAgaWYgKCFnbC5nZXRTaGFkZXJQYXJhbWV0
ZXIoZnMsIGdsLkNPTVBJTEVfU1RBVFVTKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg
ICBjb25zb2xlLmxvZyhnbC5nZXRTaGFkZXJJbmZvTG9nKGZzKSk7DQogICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBnbC5hdHRhY2hTaGFk
ZXIocHJnLCB2cyk7DQogICAgICAgICAgICBnbC5hdHRhY2hTaGFkZXIocHJnLCBmcyk7DQoNCiAg
ICAgICAgICAgIGdsLmxpbmtQcm9ncmFtKHByZyk7DQogICAgICAgICAgICBpZiAoIWdsLmdldFBy
b2dyYW1QYXJhbWV0ZXIocHJnLCBnbC5MSU5LX1NUQVRVUykpDQogICAgICAgICAgICB7DQogICAg
ICAgICAgICAgICAgY29uc29sZS5sb2coZ2wuZ2V0UHJvZ3JhbUluZm9Mb2cocHJnKSk7DQogICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBn
bC5kZWxldGVTaGFkZXIodnMpOw0KICAgICAgICAgICAgZ2wuZGVsZXRlU2hhZGVyKGZzKTsNCg0K
ICAgICAgICAgICAgbGV0IGlkeF90cmlzdHJpcCA9IGdsLmNyZWF0ZUJ1ZmZlcigpOw0KICAgICAg
ICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaWR4X3RyaXN0cmlw
KTsNCiAgICAgICAgICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGlu
ZGljZXNfdHJpc3RyaXAsIGdsLlNUQVRJQ19EUkFXKTsNCiAgICAgICAgICAgIGdsLmJpbmRCdWZm
ZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIG51bGwpOw0KDQogICAgICAgICAgICBsZXQgaWR4
X3RyaWZhbiA9IGdsLmNyZWF0ZUJ1ZmZlcigpOw0KICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihn
bC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgaWR4X3RyaWZhbik7DQogICAgICAgICAgICBnbC5idWZm
ZXJEYXRhKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpbmRpY2VzX3RyaWZhbiwgZ2wuU1RBVElD
X0RSQVcpOw0KICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZF
UiwgbnVsbCk7DQoNCiAgICAgICAgICAgIGxldCBpZHhfdHJpYW5nbGVzID0gZ2wuY3JlYXRlQnVm
ZmVyKCk7DQogICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVS
LCBpZHhfdHJpYW5nbGVzKTsNCiAgICAgICAgICAgIGdsLmJ1ZmZlckRhdGEoZ2wuRUxFTUVOVF9B
UlJBWV9CVUZGRVIsIGluZGljZXNfdHJpYW5nbGVzLCBnbC5TVEFUSUNfRFJBVyk7DQogICAgICAg
ICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBudWxsKTsNCg0KICAg
ICAgICAgICAgbGV0IHZibyA9IGdsLmNyZWF0ZUJ1ZmZlcigpOw0KICAgICAgICAgICAgZ2wuYmlu
ZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZibyk7DQogICAgICAgICAgICBnbC5idWZmZXJEYXRh
KGdsLkFSUkFZX0JVRkZFUiwgY29vcmRzLCBnbC5TVEFUSUNfRFJBVyk7DQogICAgICAgICAgICBn
bC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgbnVsbCk7DQoNCiAgICAgICAgICAgIGxldCB2
YW9fdHJpc3RyaXAgPSBnbC5jcmVhdGVWZXJ0ZXhBcnJheSgpOw0KICAgICAgICAgICAgZ2wuYmlu
ZFZlcnRleEFycmF5KHZhb190cmlzdHJpcCk7DQogICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGds
LkFSUkFZX0JVRkZFUiwgdmJvKTsNCiAgICAgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVO
VF9BUlJBWV9CVUZGRVIsIGlkeF90cmlzdHJpcCk7DQogICAgICAgICAgICBnbC52ZXJ0ZXhBdHRy
aWJQb2ludGVyKDAsIDIsIGdsLkZMT0FULCBnbC5GQUxTRSwgdmVydF9ieXRlcywgMCk7DQogICAg
ICAgICAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSgwKTsNCiAgICAgICAgICAgIGdsLmJp
bmRWZXJ0ZXhBcnJheShudWxsKTsNCg0KICAgICAgICAgICAgbGV0IHZhb190cmlmYW4gPSBnbC5j
cmVhdGVWZXJ0ZXhBcnJheSgpOw0KICAgICAgICAgICAgZ2wuYmluZFZlcnRleEFycmF5KHZhb190
cmlmYW4pOw0KICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZibyk7
DQogICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSLCBpZHhf
dHJpZmFuKTsNCiAgICAgICAgICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIoMCwgMiwgZ2wuRkxP
QVQsIGdsLkZBTFNFLCB2ZXJ0X2J5dGVzLCAwKTsNCiAgICAgICAgICAgIGdsLmVuYWJsZVZlcnRl
eEF0dHJpYkFycmF5KDApOw0KICAgICAgICAgICAgZ2wuYmluZFZlcnRleEFycmF5KG51bGwpOw0K
DQogICAgICAgICAgICBsZXQgdmFvX3RyaWFuZ2xlcyA9IGdsLmNyZWF0ZVZlcnRleEFycmF5KCk7
DQogICAgICAgICAgICBnbC5iaW5kVmVydGV4QXJyYXkodmFvX3RyaWFuZ2xlcyk7DQogICAgICAg
ICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmJvKTsNCiAgICAgICAgICAgIGds
LmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIGlkeF90cmlhbmdsZXMpOw0KICAg
ICAgICAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcigwLCAyLCBnbC5GTE9BVCwgZ2wuRkFMU0Us
IHZlcnRfYnl0ZXMsIDApOw0KICAgICAgICAgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXko
MCk7DQogICAgICAgICAgICBnbC5iaW5kVmVydGV4QXJyYXkobnVsbCk7DQoNCiAgICAgICAgICAg
IGVyciA9IGdsLmdldEVycm9yKCk7DQogICAgICAgICAgICBpZiAoZXJyKQ0KICAgICAgICAgICAg
ew0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJpbiBwcmVwVGhpbmdzKCksIGdsIGNvbXBs
YWluczogIiArIGVycik7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAg
ICAgfQ0KDQogICAgICAgICAgICB0aGluZ3MgPQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAg
ICAgIHN0cjogWyJUUklBTkdMRV9TVFJJUCIsIlRSSUFOR0xFX0ZBTiIsIlRSSUFOR0xFUyJdLA0K
ICAgICAgICAgICAgICAgIG1vZDogW2dsLlRSSUFOR0xFX1NUUklQLGdsLlRSSUFOR0xFX0ZBTixn
bC5UUklBTkdMRVNdLA0KICAgICAgICAgICAgICAgIG51bTogW3ZlcnRzLCB2ZXJ0cywgMyoodmVy
dHMtMildLA0KICAgICAgICAgICAgICAgIHZhbzogW3Zhb190cmlzdHJpcCwgdmFvX3RyaWZhbiwg
dmFvX3RyaWFuZ2xlc10sDQogICAgICAgICAgICAgICAgaWR4OiBbaWR4X3RyaXN0cmlwLCBpZHhf
dHJpZmFuLCBpZHhfdHJpYW5nbGVzXSwNCiAgICAgICAgICAgICAgICB2Ym86IHZibywNCiAgICAg
ICAgICAgICAgICBwcmc6IHByZywNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIHJldHVy
biB0cnVlOw0KICAgICAgICB9DQoNCiAgICAgICAgdmFyIG1ldGhvZCA9IDA7DQogICAgICAgIGNv
bnN0IG1ldGhvZHMgPSAzOw0KDQogICAgICAgIHZhciB0aW1lcl9hY2N1bSA9IG5ldyBBcnJheSht
ZXRob2RzKS5maWxsKDApOw0KICAgICAgICB2YXIgdGltZXJfc2FtcGxlcyA9IDA7DQogICAgICAg
IGNvbnN0IHRpbWVyX21heCA9IDMwOw0KDQogICAgICAgIGZ1bmN0aW9uIGRyYXdUaGluZ3ModGlt
ZV9zdGFtcCkNCiAgICAgICAgew0KDQogICAgICAgICAgICBsZXQgbW9kID0gdGhpbmdzLm1vZFtt
ZXRob2RdOw0KICAgICAgICAgICAgbGV0IG51bSA9IHRoaW5ncy5udW1bbWV0aG9kXTsNCiAgICAg
ICAgICAgIGxldCB2YW8gPSB0aGluZ3MudmFvW21ldGhvZF07DQoNCiAgICAgICAgICAgIGdsLmNs
ZWFyQ29sb3IoMCwgMCwgMCwgMSk7DQogICAgICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZG
RVJfQklUKTsNCg0KICAgICAgICAgICAgZ2wudmlld3BvcnQoMCwgMCwgZ2wuY2FudmFzLndpZHRo
LCBnbC5jYW52YXMuaGVpZ2h0KTsNCg0KICAgICAgICAgICAgZ2wudXNlUHJvZ3JhbSh0aGluZ3Mu
cHJnKTsNCg0KICAgICAgICAgICAgZ2wuYmluZFZlcnRleEFycmF5KHZhbyk7DQoNCiAgICAgICAg
ICAgIGxldCB0aW1lciA9IHBlcmZvcm1hbmNlLm5vdygpOw0KICAgICAgICAgICAgZm9yIChsZXQg
YnVyc3Q9MDsgYnVyc3Q8MTAwOyBidXJzdCsrKQ0KICAgICAgICAgICAgICAgIGdsLmRyYXdFbGVt
ZW50cyhtb2QsIG51bSwgZ2wuVU5TSUdORURfSU5ULCAwKTsNCiAgICAgICAgICAgIHRpbWVyX2Fj
Y3VtW21ldGhvZF0gKz0gcGVyZm9ybWFuY2Uubm93KCkgLSB0aW1lcjsNCg0KICAgICAgICAgICAg
Z2wudXNlUHJvZ3JhbShudWxsKTsNCiAgICAgICAgICAgIGdsLmJpbmRWZXJ0ZXhBcnJheShudWxs
KTsNCiAgICAgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCBudWxsKTsNCg0K
DQogICAgICAgICAgICBpZiAoIWVycikNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBl
cnIgPSBnbC5nZXRFcnJvcigpOw0KICAgICAgICAgICAgICAgIGlmIChlcnIpDQogICAgICAgICAg
ICAgICAgICAgIGNvbnNvbGUubG9nKCJpbiBkcmF3VGhpbmdzKCksIGdsIGNvbXBsYWluczogIiAr
IGVycik7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIG1ldGhvZCsrOw0KICAgICAgICAg
ICAgaWYgKG1ldGhvZCA+PSBtZXRob2RzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg
IG1ldGhvZCA9IDA7DQogICAgICAgICAgICAgICAgdGltZXJfc2FtcGxlcysrOw0KICAgICAgICAg
ICAgICAgIGlmICh0aW1lcl9zYW1wbGVzPj10aW1lcl9tYXgpDQogICAgICAgICAgICAgICAgew0K
ICAgICAgICAgICAgICAgICAgICBsZXQgc3RyID0gIiI7DQogICAgICAgICAgICAgICAgICAgIGZv
ciAobGV0IG09MDsgbTxtZXRob2RzOyBtKyspDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAg
ICAgICAgICAgICAgICAgICAgIHN0ciArPSB0aGluZ3Muc3RyW21dICsgIiA9ICIgKyBNYXRoLnJv
dW5kKHRpbWVyX2FjY3VtW21dKjEwMDAvdGltZXJfbWF4KSArICImbWljcm87czxicj4iOw0KICAg
ICAgICAgICAgICAgICAgICAgICAgdGltZXJfYWNjdW1bbV0gPSAwOw0KICAgICAgICAgICAgICAg
ICAgICB9DQogICAgICAgICAgICAgICAgICAgIHBlcmYuaW5uZXJIVE1MID0gc3RyOw0KICAgICAg
ICAgICAgICAgICAgICB0aW1lcl9zYW1wbGVzID0gMDsNCiAgICAgICAgICAgICAgICB9DQogICAg
ICAgICAgICB9DQoNCiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShkcmF3VGhpbmdz
KTsNCiAgICAgICAgfQ0KDQogICAgPC9zY3JpcHQ+DQo8L2hlYWQ+DQo8Ym9keSBvbmxvYWQ9Imlu
aXRHTCgpIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojMjIyIj4NCiAgICA8Y2FudmFzIGlkPSJ0
aGVfY2FudmFzIiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgc3R5bGU9IndpZHRoOjI1NnB4OyBo
ZWlnaHQ6MjU2cHgiPg0KICAgIDwvY2FudmFzPg0KICAgIDxicj4NCiAgICA8ZGl2IGlkPSJwZXJm
IiBzdHlsZT0idGV4dC1hbGlnbjpyaWdodDsgd2lkdGg6MjU2cHg7IGNvbG9yOiNGRkYiPjwvZGl2
Pg0KPC9ib2R5Pg0KPC9odG1sPg==
</data>

          </attachment>
      

    </bug>

</bugzilla>