<?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>26331</bug_id>
          
          <creation_ts>2009-06-11 14:42:38 -0700</creation_ts>
          <short_desc>[Canvas] add: lineStyle = none|solid|dotted|dashed</short_desc>
          <delta_ts>2012-02-28 14:22:53 -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>Layout and Rendering</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>DUPLICATE</resolution>
          <dup_id>63933</dup_id>
          
          <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="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ian</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>125380</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-06-11 14:42:38 -0700</bug_when>
    <thetext>It would helpful to have something like lineStyle, that draws a path dotted, solid, dashed or not at all (last is maybe senceless).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125383</commentid>
    <comment_count>1</comment_count>
      <attachid>31174</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-06-11 14:56:59 -0700</bug_when>
    <thetext>Created attachment 31174
canvas lineStyle

lineStyle is not in the spec of HTML 5 atm. This patch adds a basic concept for lineStyle and supports dashed, dotted or solid strokes as well as none. You can make use of it with:
context.webkitLineStyle = &apos;dashed|dotted|solid|none&apos;
the default is solid of course.
There are no configurations possible at the moment (size of gaps between dashes and so on). And maybe it would make it to difficult.

I hope to get some feedback or improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125387</commentid>
    <comment_count>2</comment_count>
      <attachid>31174</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-06-11 15:33:31 -0700</bug_when>
    <thetext>Comment on attachment 31174
canvas lineStyle

I&apos;m not sure what the correct approach to get webkitLineStyle vs. lineStyle -- i think sam would be the right person to ask.

Otherwise this patch is fine -- i&apos;m clearing the review flag so no one else reviews or tries to land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125665</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-06-13 13:47:25 -0700</bug_when>
    <thetext>I could just test it on gtk atm and I see a bad behavior of dotted paths. The length of a dot is not scaled to the thickness of the stroked path. That means that the distance between two dots is always the same, independently of the stroke width.
I looked to the css implemenatation and the benefit on css is that it only needs to stroke lines and circles. All ports have a special implementation (all the same?) to solve the problem in GraphicsContext.
I don&apos;t know if we can reuse the logic to calculate the size of the dot in a universal path. I&apos;ll take a look at this.
The situation for solid and none is clear. And dashed lines look ok, but we may use the same logic as for dotted paths.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141850</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-08-21 01:57:32 -0700</bug_when>
    <thetext>(In reply to comment #3)
The problems with dotted lines dont affect on Qt. I&apos;ll test the patch on Cg soon but this might be a cairo bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567091</commentid>
    <comment_count>5</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2012-02-28 14:22:53 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 63933 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31174</attachid>
            <date>2009-06-11 14:56:59 -0700</date>
            <delta_ts>2010-06-10 18:50:25 -0700</delta_ts>
            <desc>canvas lineStyle</desc>
            <filename>canvas-lineStyle.patch</filename>
            <type>text/plain</type>
            <size>9878</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDYxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMDYtMTEgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRz
IHdlYmtpdExpbmVTdHlsZSB0byBjYW52YXMuIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gZHJh
dworICAgICAgICBhIHBhdGggZG90dGVkLCBkYXNoZWQsIHNvbGlkIG9yIG5vdCBhdCBhbGwuIFRo
ZXJlIGlzIG5vIGludGVudGlvbgorICAgICAgICB0byBjb25maWd1cmUgdGhlIG9mZnNldCBvZiBk
YXNoZWQgc3R5bGUgb3IgYW55dGhpbmcgZWxzZSB5ZXQuCisKKyAgICAgICAgVGVzdDogZmFzdC9j
YW52YXMvY2FudmFzLWxpbmVTdHlsZS5odG1sCisKKyAgICAgICAgKiBodG1sL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHJva2VTdHlsZUFw
cGxpZXI6OnN0cm9rZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6U3RhdGU6OlN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6d2Via2l0TGluZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6c2V0V2Via2l0TGluZVN0eWxlKToKKyAgICAgICAgKiBodG1sL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpnZXRMaW5lU3R5bGUpOgorICAgICAgICAqIGh0bWwvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lU3R5
bGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6cGFyc2VMaW5lU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6bGluZVN0eWxlTmFtZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oOgorICAgICAgICAo
V2ViQ29yZTo6KToKKwogMjAwOS0wNi0wMyAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL2h0bWwv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAkocmV2aXNpb24gNDQ2MDkpCisrKyBXZWJDb3Jl
L2h0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMs
NiArODMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGMtPnNldFN0cm9rZVRoaWNrbmVzcyhtX2NhbnZh
c0NvbnRleHQtPmxpbmVXaWR0aCgpKTsKICAgICAgICAgYy0+c2V0TGluZUNhcChtX2NhbnZhc0Nv
bnRleHQtPmdldExpbmVDYXAoKSk7CiAgICAgICAgIGMtPnNldExpbmVKb2luKG1fY2FudmFzQ29u
dGV4dC0+Z2V0TGluZUpvaW4oKSk7CisgICAgICAgIGMtPnNldExpbmVTdHlsZShtX2NhbnZhc0Nv
bnRleHQtPmdldExpbmVTdHlsZSgpKTsKICAgICAgICAgYy0+c2V0TWl0ZXJMaW1pdChtX2NhbnZh
c0NvbnRleHQtPm1pdGVyTGltaXQoKSk7CiAgICAgfQogCkBAIC0xMjMsNiArMTI0LDcgQEAgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpTdGF0ZTo6U3RhdGUoKQogICAgICwgbV9saW5lV2lkdGgo
MSkKICAgICAsIG1fbGluZUNhcChCdXR0Q2FwKQogICAgICwgbV9saW5lSm9pbihNaXRlckpvaW4p
CisgICAgLCBtX2xpbmVTdHlsZShTb2xpZExpbmUpCiAgICAgLCBtX21pdGVyTGltaXQoMTApCiAg
ICAgLCBtX3NoYWRvd0JsdXIoMCkKICAgICAsIG1fc2hhZG93Q29sb3IoImJsYWNrIikKQEAgLTI1
OCw2ICsyNjAsMjMgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldExpbmVKbwog
ICAgIGMtPnNldExpbmVKb2luKGpvaW4pOwogfQogCitTdHJpbmcgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjp3ZWJraXRMaW5lU3R5bGUoKSBjb25zdAoreworICAgIHJldHVybiBsaW5lU3R5bGVO
YW1lKHN0YXRlKCkubV9saW5lU3R5bGUpOworfQorCit2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6c2V0V2Via2l0TGluZVN0eWxlKGNvbnN0IFN0cmluZyYgcykKK3sKKyAgICBMaW5lU3R5
bGUgc3R5bGU7CisgICAgaWYgKCFwYXJzZUxpbmVTdHlsZShzLCBzdHlsZSkpCisgICAgICAgIHJl
dHVybjsKKyAgICBzdGF0ZSgpLm1fbGluZVN0eWxlID0gc3R5bGU7CisgICAgR3JhcGhpY3NDb250
ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKTsKKyAgICBpZiAoIWMpCisgICAgICAgIHJldHVybjsK
KyAgICBjLT5zZXRMaW5lU3R5bGUoc3R5bGUpOworfQorCiBmbG9hdCBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6Om1pdGVyTGltaXQoKSBjb25zdAogewogICAgIHJldHVybiBzdGF0ZSgpLm1fbWl0
ZXJMaW1pdDsKSW5kZXg6IFdlYkNvcmUvaHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgJKHJl
dmlzaW9uIDQ0NjA5KQorKysgV2ViQ29yZS9odG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
CSh3b3JraW5nIGNvcHkpCkBAIC03Nyw2ICs3Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgU3RyaW5nIGxpbmVKb2luKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgc2V0TGluZUpvaW4o
Y29uc3QgU3RyaW5nJik7CiAKKyAgICAgICAgU3RyaW5nIHdlYmtpdExpbmVTdHlsZSgpIGNvbnN0
OworICAgICAgICB2b2lkIHNldFdlYmtpdExpbmVTdHlsZShjb25zdCBTdHJpbmcmKTsKKwogICAg
ICAgICBmbG9hdCBtaXRlckxpbWl0KCkgY29uc3Q7CiAgICAgICAgIHZvaWQgc2V0TWl0ZXJMaW1p
dChmbG9hdCk7CiAKQEAgLTE5Niw2ICsxOTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICAgICAgTGluZUNhcCBnZXRMaW5lQ2FwKCkgY29uc3QgeyByZXR1cm4gc3RhdGUoKS5tX2xpbmVD
YXA7IH0KICAgICAgICAgTGluZUpvaW4gZ2V0TGluZUpvaW4oKSBjb25zdCB7IHJldHVybiBzdGF0
ZSgpLm1fbGluZUpvaW47IH0KKyAgICAgICAgTGluZVN0eWxlIGdldExpbmVTdHlsZSgpIGNvbnN0
IHsgcmV0dXJuIHN0YXRlKCkubV9saW5lU3R5bGU7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAg
IHN0cnVjdCBTdGF0ZSB7CkBAIC0yMDYsNiArMjEwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICAgICAgZmxvYXQgbV9saW5lV2lkdGg7CiAgICAgICAgICAgICBMaW5lQ2FwIG1fbGlu
ZUNhcDsKICAgICAgICAgICAgIExpbmVKb2luIG1fbGluZUpvaW47CisgICAgICAgICAgICBMaW5l
U3R5bGUgbV9saW5lU3R5bGU7CiAgICAgICAgICAgICBmbG9hdCBtX21pdGVyTGltaXQ7CiAgICAg
ICAgICAgICBGbG9hdFNpemUgbV9zaGFkb3dPZmZzZXQ7CiAgICAgICAgICAgICBmbG9hdCBtX3No
YWRvd0JsdXI7CkluZGV4OiBXZWJDb3JlL2h0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlk
bAkocmV2aXNpb24gNDQ2MDkpCisrKyBXZWJDb3JlL2h0bWwvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsNyBAQCBtb2R1bGUgaHRtbCB7CiAg
ICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBsaW5lV2lkdGg7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29u
dmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBsaW5lQ2FwOwogICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbGluZUpvaW47CisgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB3ZWJraXRMaW5l
U3R5bGU7CiAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBtaXRlckxpbWl0OwogCiAgICAgICAgIGF0
dHJpYnV0ZSBmbG9hdCBzaGFkb3dPZmZzZXRYOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAkocmV2aXNpb24gNDQ2MDkpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEyMCw2ICsxMjAsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZVN0eWxlKGNv
bgogICAgIHNldFBsYXRmb3JtU3Ryb2tlU3R5bGUoc3R5bGUpOwogfQogCit2b2lkIEdyYXBoaWNz
Q29udGV4dDo6c2V0TGluZVN0eWxlKExpbmVTdHlsZSBzdHlsZSkKK3sKKyAgICBzZXRTdHJva2VT
dHlsZShzdGF0aWNfY2FzdDxTdHJva2VTdHlsZT4oc3R5bGUpKTsKK30KKwogdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OnNldFN0cm9rZUNvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKIHsKICAgICBtX2Nv
bW1vbi0+c3RhdGUuc3Ryb2tlQ29sb3JTcGFjZSA9IFNvbGlkQ29sb3JTcGFjZTsKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAkocmV2aXNpb24gNDQ2
MDkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNjksNiArMjY5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2b2lkIHNldExpbmVDYXAoTGluZUNhcCk7CiAgICAgICAgIHZvaWQgc2V0TGluZURhc2goY29u
c3QgRGFzaEFycmF5JiwgZmxvYXQgZGFzaE9mZnNldCk7CiAgICAgICAgIHZvaWQgc2V0TGluZUpv
aW4oTGluZUpvaW4pOworICAgICAgICB2b2lkIHNldExpbmVTdHlsZShMaW5lU3R5bGUpOwogICAg
ICAgICB2b2lkIHNldE1pdGVyTGltaXQoZmxvYXQpOwogCiAgICAgICAgIHZvaWQgc2V0QWxwaGEo
ZmxvYXQpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMu
Y3BwCShyZXZpc2lvbiA0NDYwOSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NUeXBlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNiw2ICsxMTYsMzUgQEAgU3RyaW5nIGxp
bmVKb2luTmFtZShMaW5lSm9pbiBqb2luKQogICAgIHJldHVybiBuYW1lc1tqb2luXTsKIH0KIAor
Ym9vbCBwYXJzZUxpbmVTdHlsZShjb25zdCBTdHJpbmcmIHMsIExpbmVTdHlsZSYgc3R5bGUpCit7
CisgICAgaWYgKHMgPT0gIm5vbmUiKSB7CisgICAgICAgIHN0eWxlID0gTm9MaW5lOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKHMgPT0gInNvbGlkIikgeworICAgICAgICBz
dHlsZSA9IFNvbGlkTGluZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmIChz
ID09ICJkb3R0ZWQiKSB7CisgICAgICAgIHN0eWxlID0gRG90dGVkTGluZTsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorICAgIGlmIChzID09ICJkYXNoZWQiKSB7CisgICAgICAgIHN0eWxl
ID0gRGFzaGVkTGluZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBm
YWxzZTsKK30KKworU3RyaW5nIGxpbmVTdHlsZU5hbWUoTGluZVN0eWxlIHN0eWxlKQoreworICAg
IEFTU0VSVChzdHlsZSA+PSAwKTsKKyAgICBBU1NFUlQoc3R5bGUgPCA0KTsKKyAgICBjb25zdCBj
aGFyKiBjb25zdCBuYW1lc1s0XSA9IHsgIm5vbmUiLCAic29saWQiLCAiZG90dGVkIiwgImRhc2hl
ZCIgfTsKKyAgICByZXR1cm4gbmFtZXNbc3R5bGVdOworfQorCiBTdHJpbmcgdGV4dEFsaWduTmFt
ZShUZXh0QWxpZ24gYWxpZ24pCiB7CiAgICAgQVNTRVJUKGFsaWduID49IDApOwpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmgJKHJldmlzaW9uIDQ0NjA5KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTYyLDYgKzYyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgZW51bSBMaW5l
Sm9pbiB7IE1pdGVySm9pbiwgUm91bmRKb2luLCBCZXZlbEpvaW4gfTsKIAorICAgIGVudW0gTGlu
ZVN0eWxlIHsgTm9MaW5lLCBTb2xpZExpbmUsIERvdHRlZExpbmUsIERhc2hlZExpbmUgfTsKKwog
ICAgIGVudW0gSG9yaXpvbnRhbEFsaWdubWVudCB7IEFsaWduTGVmdCwgQWxpZ25SaWdodCwgQWxp
Z25IQ2VudGVyIH07CiAKICAgICBlbnVtIFRleHRCYXNlbGluZSB7IEFscGhhYmV0aWNUZXh0QmFz
ZWxpbmUsIFRvcFRleHRCYXNlbGluZSwgTWlkZGxlVGV4dEJhc2VsaW5lLCBCb3R0b21UZXh0QmFz
ZWxpbmUsIElkZW9ncmFwaGljVGV4dEJhc2VsaW5lLCBIYW5naW5nVGV4dEJhc2VsaW5lIH07CkBA
IC03Nyw2ICs3OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBTdHJpbmcgbGluZUpvaW5O
YW1lKExpbmVKb2luKTsKICAgICBib29sIHBhcnNlTGluZUpvaW4oY29uc3QgU3RyaW5nJiwgTGlu
ZUpvaW4mKTsKIAorICAgIFN0cmluZyBsaW5lU3R5bGVOYW1lKExpbmVTdHlsZSk7CisgICAgYm9v
bCBwYXJzZUxpbmVTdHlsZShjb25zdCBTdHJpbmcmLCBMaW5lU3R5bGUmKTsKKwogICAgIFN0cmlu
ZyB0ZXh0QWxpZ25OYW1lKFRleHRBbGlnbik7CiAgICAgYm9vbCBwYXJzZVRleHRBbGlnbihjb25z
dCBTdHJpbmcmLCBUZXh0QWxpZ24mKTsKICAgICAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ0NjE3KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMDktMDYtMTEgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIHRlc3QgZm9yIGxpbmVTdHls
ZSBpbiBjYW52YXMuIFdpdGggbGluZVN0eWxlIGl0J3MgcG9zc2libGUgdG8KKyAgICAgICAgZHJh
dyBhIHBhdGggZGFzaGVkLCBkb3R0ZWQsIHNvbGlkIG9yIG5vdCBhdCBhbGwuCisKKyAgICAgICAg
KiBmYXN0L2NhbnZhcy9jYW52YXMtbGluZVN0eWxlLmh0bWw6IEFkZGVkLgorCiAyMDA5LTA2LTEx
ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChidWlsZC1maXgpLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LWxpbmVTdHlsZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2Nh
bnZhcy1saW5lU3R5bGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL2NhbnZhcy1saW5lU3R5bGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NiBAQAor
PGh0bWw+PGhlYWQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorZnVuY3Rpb24gZHJh
dygpeworICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FudmFzJyk7
CisgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworCisgICAgY3R4LmJlZ2lu
UGF0aCgpOworICAgIGN0eC5tb3ZlVG8oMTAsMTApOworICAgIGN0eC5saW5lVG8oMTIwLDEwKTsK
KyAgICBjdHgubW92ZVRvKDMwLDcwKTsKKyAgICBjdHguYXJjKDIwLDcwLDEwLDAsTWF0aC5QSSoy
LHRydWUpOworICAgIGN0eC5zdHJva2UoKTsKKworICAgIC8vIFNldCBsaW5lU3R5bGUgZG90dGVk
CisgICAgY3R4LndlYmtpdExpbmVTdHlsZSA9ICdkb3R0ZWQnOworCisgICAgY3R4LmJlZ2luUGF0
aCgpOworICAgIGN0eC5tb3ZlVG8oMTAsMjApOworICAgIGN0eC5saW5lVG8oMTIwLDIwKTsKKyAg
ICBjdHgubW92ZVRvKDYwLDcwKTsKKyAgICBjdHguYXJjKDUwLDcwLDEwLDAsTWF0aC5QSSoyLHRy
dWUpOworICAgIGN0eC5zdHJva2UoKTsKKworICAgIGN0eC5saW5lV2lkdGggPSAzOworICAgIGN0
eC5iZWdpblBhdGgoKTsKKyAgICBjdHgubW92ZVRvKDEwLDI1KTsKKyAgICBjdHgubGluZVRvKDEy
MCwyNSk7CisgICAgY3R4LnN0cm9rZSgpOworCisgICAgLy8gU2V0IGxpbmVTdHlsZSBkYXNoZWQK
KyAgICBjdHgud2Via2l0TGluZVN0eWxlID0gJ2Rhc2hlZCc7CisKKyAgICBjdHgubGluZVdpZHRo
ID0gMTsKKyAgICBjdHguYmVnaW5QYXRoKCk7CisgICAgY3R4Lm1vdmVUbygxMCwzNSk7CisgICAg
Y3R4LmxpbmVUbygxMjAsMzUpOworICAgIGN0eC5tb3ZlVG8oOTAsNzApOworICAgIGN0eC5hcmMo
ODAsNzAsMTAsMCxNYXRoLlBJKjIsdHJ1ZSk7CisgICAgY3R4LnN0cm9rZSgpOworCisgICAgY3R4
LmxpbmVXaWR0aCA9IDM7CisgICAgY3R4LmJlZ2luUGF0aCgpOworICAgIGN0eC5tb3ZlVG8oMTAs
NDApOworICAgIGN0eC5saW5lVG8oMTIwLDQwKTsKKyAgICBjdHguc3Ryb2tlKCk7CisKKyAgICAv
LyBTZXQgbGluZVN0eWxlIG5vbmUKKyAgICBjdHgud2Via2l0TGluZVN0eWxlID0gJ25vbmUnOwor
CisgICAgY3R4LmxpbmVXaWR0aCA9IDE7CisgICAgY3R4LmJlZ2luUGF0aCgpOworICAgIGN0eC5t
b3ZlVG8oMTAsNTApOworICAgIGN0eC5saW5lVG8oMTIwLDUwKTsKKyAgICBjdHgubW92ZVRvKDEy
MCw3MCk7CisgICAgY3R4LmFyYygxMTAsNzAsMTAsMCxNYXRoLlBJKjIsdHJ1ZSk7CisgICAgY3R4
LnN0cm9rZSgpOworCisgICAgY3R4LmxpbmVXaWR0aCA9IDM7CisgICAgY3R4LmJlZ2luUGF0aCgp
OworICAgIGN0eC5tb3ZlVG8oMTAsNTUpOworICAgIGN0eC5saW5lVG8oMTIwLDU1KTsKKyAgICBj
dHguc3Ryb2tlKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD48Ym9keSBvbmxvYWQ9ImRyYXcoKTsi
PgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+PC9jYW52YXM+
Cis8L2JvZHk+PC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>