<?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>179339</bug_id>
          
          <creation_ts>2017-11-06 12:47:03 -0800</creation_ts>
          <short_desc>[CG] Adopt CGContextDrawPathDirect()</short_desc>
          <delta_ts>2017-11-06 18:28:50 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1368764</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-11-06 12:47:03 -0800</bug_when>
    <thetext>This API is only available starting from macOS 10.12: Sierra. We should only use it if we want to draw a CGPath to the context. Instead of calling CGContextBeginPath() followed by CGContextAddPath() then followed by a drawing path function, we call CGContextDrawPathDirect() and pass the CGPath and the CGPathDrawingMode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368765</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-11-06 12:47:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/26283575&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368786</commentid>
    <comment_count>2</comment_count>
      <attachid>326155</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-11-06 13:55:39 -0800</bug_when>
    <thetext>Created attachment 326155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368787</commentid>
    <comment_count>3</comment_count>
      <attachid>326155</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-06 13:59:40 -0800</bug_when>
    <thetext>Comment on attachment 326155
Patch

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

&gt; Source/WebCore/ChangeLog:19
&gt; +        shadow because we add the CGPatn to the layerContext and at the end we

CGPatn?

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:645
&gt; -    CGContextBeginPath(context);
&gt; -    CGContextAddPath(context, path.platformPath());
&gt; -
&gt;      if (state.fillPattern)
&gt;          applyFillPattern();
&gt;      if (state.strokePattern)
&gt;          applyStrokePattern();

Is it OK for the add path to happen after applying the fill and stroke patterns?

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:649
&gt; +#if (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101200) || (PLATFORM(IOS) &amp;&amp; __IPHONE_OS_VERSION_MIN_REQUIRED &gt;= 100000)

Let&apos;s put a #define USE_DRAW_PATH_DIRECT ((PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101200) || (PLATFORM(IOS) &amp;&amp; __IPHONE_OS_VERSION_MIN_REQUIRED &gt;= 100000)) at the top of the file and use that.

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:711
&gt; -    CGContextBeginPath(context);
&gt; -    CGContextAddPath(context, path.platformPath());
&gt; -
&gt;      if (m_state.fillPattern)
&gt;          applyFillPattern();

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368817</commentid>
    <comment_count>4</comment_count>
      <attachid>326163</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-11-06 15:58:32 -0800</bug_when>
    <thetext>Created attachment 326163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368840</commentid>
    <comment_count>5</comment_count>
      <attachid>326155</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-11-06 16:51:53 -0800</bug_when>
    <thetext>Comment on attachment 326155
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:19
&gt;&gt; +        shadow because we add the CGPatn to the layerContext and at the end we
&gt; 
&gt; CGPatn?

Fixed.

&gt;&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:645
&gt;&gt;          applyStrokePattern();
&gt; 
&gt; Is it OK for the add path to happen after applying the fill and stroke patterns?

Yes. Setting the fill pattern, the stroke pattern or beginning and adding the path can happen in any order. Only the drawing function looks at these settings and use them to draw the path.

&gt;&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:649
&gt;&gt; +#if (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101200) || (PLATFORM(IOS) &amp;&amp; __IPHONE_OS_VERSION_MIN_REQUIRED &gt;= 100000)
&gt; 
&gt; Let&apos;s put a #define USE_DRAW_PATH_DIRECT ((PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101200) || (PLATFORM(IOS) &amp;&amp; __IPHONE_OS_VERSION_MIN_REQUIRED &gt;= 100000)) at the top of the file and use that.

Done. I dropped __IPHONE_OS_VERSION_MIN_REQUIRED &gt;= 100000 because it seems we do not support iOS less than 100000. We do similar thing with calling CGColorSpaceCreateWithName() in GraphicsContextCG.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368887</commentid>
    <comment_count>6</comment_count>
      <attachid>326163</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-06 18:28:49 -0800</bug_when>
    <thetext>Comment on attachment 326163
Patch

Clearing flags on attachment: 326163

Committed r224527: &lt;https://trac.webkit.org/changeset/224527&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1368888</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-06 18:28:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326155</attachid>
            <date>2017-11-06 13:55:39 -0800</date>
            <delta_ts>2017-11-06 15:58:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179339-20171106135538.patch</filename>
            <type>text/plain</type>
            <size>4777</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0MjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBlYzIxMWRkMDQ2YTQ3
NzdkN2RjZmJhMTEwYTIxZWM5NGY4MWIxZC4uOTZiMzVlODhiZTkxMzdiOWEyNjhlZmNmNjc1N2Yz
YTdiYjM3Y2MzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE3LTExLTA2ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NHXSBB
ZG9wdCBDR0NvbnRleHREcmF3UGF0aERpcmVjdCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzkzMzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI2
MjgzNTc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkb3B0IHRoaXMgZnVuY3Rpb24gb24gbWFjT1MgPj0gMTAuMTIgYW5kIGlPUyA+PSAxMC4wLiBJ
bnN0ZWFkIG9mIGNsZWFyaW5nCisgICAgICAgIHRoZSBjdXJyZW50IHBhdGggYW5kIGNyZWF0aW5n
IGEgbmV3IG9uZSBieSBjYWxsaW5nIENHQ29udGV4dEJlZ2luUGF0aCgpCisgICAgICAgIGFuZCB0
aGVuIGFkZGluZyBhIENHUGF0aCBieSBjYWxsaW5nIENHQ29udGV4dEFkZFBhdGgoKSBhbmQgdGhl
biBjYWxsaW5nIAorICAgICAgICBvbmUgb2YgdGhlIGRyYXdpbmcgcGF0aCBmdW5jdGlvbnMsIHdl
IGp1c3QgY2FsbCBDR0NvbnRleHREcmF3UGF0aERpcmVjdCgpLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OmZpbGxQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ry
b2tlUGF0aCk6IERvbid0IGNhbGwgQ0dDb250ZXh0QmVnaW5QYXRoKCkKKyAgICAgICAgYW5kIENH
Q29udGV4dEFkZFBhdGgoKSBmb3IgdGhlIGRyYXdpbmcgQ0dDb250ZXh0IGluIHRoZSBjYXNlIG9m
IGdyYWRpZW50CisgICAgICAgIHNoYWRvdyBiZWNhdXNlIHdlIGFkZCB0aGUgQ0dQYXRuIHRvIHRo
ZSBsYXllckNvbnRleHQgYW5kIGF0IHRoZSBlbmQgd2UKKyAgICAgICAgZHJhdyB0aGlzIENHTGF5
ZXIgaW50byB0aGUgZHJhd2luZyBjb250ZXh0LgorCiAyMDE3LTEwLTMxICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgc2hv
dWxkIGFsd2F5cyByZXR1cm4gdGhlIHNhbWUgb2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKaW5kZXgg
N2NmYWZjZTQzNGZhYWViYTI1OWNlOTA4MmE3Zjc4ZjkzMDJhMTFhYy4uYjU0NmI1NTM0OGIwZmI4
ZTg0MDA5NmUzNmFlYzE0OWRlZDU4YzJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAtNjM5LDE3
ICs2MzksMjEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdQYXRoKGNvbnN0IFBhdGgmIHBh
dGgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBDR0NvbnRleHRCZWdpblBhdGgoY29u
dGV4dCk7Ci0gICAgQ0dDb250ZXh0QWRkUGF0aChjb250ZXh0LCBwYXRoLnBsYXRmb3JtUGF0aCgp
KTsKLQogICAgIGlmIChzdGF0ZS5maWxsUGF0dGVybikKICAgICAgICAgYXBwbHlGaWxsUGF0dGVy
bigpOwogICAgIGlmIChzdGF0ZS5zdHJva2VQYXR0ZXJuKQogICAgICAgICBhcHBseVN0cm9rZVBh
dHRlcm4oKTsKIAogICAgIENHUGF0aERyYXdpbmdNb2RlIGRyYXdpbmdNb2RlOwotICAgIGlmIChj
YWxjdWxhdGVEcmF3aW5nTW9kZShzdGF0ZSwgZHJhd2luZ01vZGUpKQorICAgIGlmIChjYWxjdWxh
dGVEcmF3aW5nTW9kZShzdGF0ZSwgZHJhd2luZ01vZGUpKSB7CisjaWYgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDApIHx8IChQTEFURk9S
TShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMDAwMCkKKyAg
ICAgICAgQ0dDb250ZXh0RHJhd1BhdGhEaXJlY3QoY29udGV4dCwgZHJhd2luZ01vZGUsIHBhdGgu
cGxhdGZvcm1QYXRoKCksIG51bGxwdHIpOworI2Vsc2UKKyAgICAgICAgQ0dDb250ZXh0QmVnaW5Q
YXRoKGNvbnRleHQpOworICAgICAgICBDR0NvbnRleHRBZGRQYXRoKGNvbnRleHQsIHBhdGgucGxh
dGZvcm1QYXRoKCkpOwogICAgICAgICBDR0NvbnRleHREcmF3UGF0aChjb250ZXh0LCBkcmF3aW5n
TW9kZSk7CisjZW5kaWYKKyAgICB9CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0
aChjb25zdCBQYXRoJiBwYXRoKQpAQCAtNzAzLDE2ICs3MDcsMTkgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmZpbGxQYXRoKGNvbnN0IFBhdGgmIHBhdGgpCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBDR0NvbnRleHRCZWdpblBhdGgoY29udGV4dCk7Ci0gICAgQ0dDb250ZXh0QWRkUGF0
aChjb250ZXh0LCBwYXRoLnBsYXRmb3JtUGF0aCgpKTsKLQogICAgIGlmIChtX3N0YXRlLmZpbGxQ
YXR0ZXJuKQogICAgICAgICBhcHBseUZpbGxQYXR0ZXJuKCk7CiAKKyNpZiAoUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMCkgfHwgKFBMQVRG
T1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAwMDAwKQor
ICAgIENHQ29udGV4dERyYXdQYXRoRGlyZWN0KGNvbnRleHQsIGZpbGxSdWxlKCkgPT0gUlVMRV9F
VkVOT0REID8ga0NHUGF0aEVPRmlsbCA6IGtDR1BhdGhGaWxsLCBwYXRoLnBsYXRmb3JtUGF0aCgp
LCBudWxscHRyKTsKKyNlbHNlCisgICAgQ0dDb250ZXh0QmVnaW5QYXRoKGNvbnRleHQpOworICAg
IENHQ29udGV4dEFkZFBhdGgoY29udGV4dCwgcGF0aC5wbGF0Zm9ybVBhdGgoKSk7CiAgICAgaWYg
KGZpbGxSdWxlKCkgPT0gUlVMRV9FVkVOT0REKQogICAgICAgICBDR0NvbnRleHRFT0ZpbGxQYXRo
KGNvbnRleHQpOwogICAgIGVsc2UKICAgICAgICAgQ0dDb250ZXh0RmlsbFBhdGgoY29udGV4dCk7
CisjZW5kaWYKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoY29uc3QgUGF0
aCYgcGF0aCkKQEAgLTcyNyw5ICs3MzQsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tl
UGF0aChjb25zdCBQYXRoJiBwYXRoKQogCiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSBwbGF0
Zm9ybUNvbnRleHQoKTsKIAotICAgIENHQ29udGV4dEJlZ2luUGF0aChjb250ZXh0KTsKLSAgICBD
R0NvbnRleHRBZGRQYXRoKGNvbnRleHQsIHBhdGgucGxhdGZvcm1QYXRoKCkpOwotCiAgICAgaWYg
KG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQpIHsKICAgICAgICAgaWYgKGhhc1NoYWRvdygpKSB7CiAg
ICAgICAgICAgICBGbG9hdFJlY3QgcmVjdCA9IHBhdGguZmFzdEJvdW5kaW5nUmVjdCgpOwpAQCAt
NzY0LDYgKzc2OCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKGNvbnN0IFBh
dGgmIHBhdGgpCiAgICAgICAgICAgICBDR0xheWVyUmVsZWFzZShsYXllcik7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBDR0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4
dCk7CisgICAgICAgICAgICBDR0NvbnRleHRCZWdpblBhdGgoY29udGV4dCk7CisgICAgICAgICAg
ICBDR0NvbnRleHRBZGRQYXRoKGNvbnRleHQsIHBhdGgucGxhdGZvcm1QYXRoKCkpOwogICAgICAg
ICAgICAgQ0dDb250ZXh0UmVwbGFjZVBhdGhXaXRoU3Ryb2tlZFBhdGgoY29udGV4dCk7CiAgICAg
ICAgICAgICBDR0NvbnRleHRDbGlwKGNvbnRleHQpOwogICAgICAgICAgICAgQ0dDb250ZXh0Q29u
Y2F0Q1RNKGNvbnRleHQsIG1fc3RhdGUuc3Ryb2tlR3JhZGllbnQtPmdyYWRpZW50U3BhY2VUcmFu
c2Zvcm0oKSk7CkBAIC03NzQsNyArNzgwLDEzIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzdHJv
a2VQYXRoKGNvbnN0IFBhdGgmIHBhdGgpCiAKICAgICBpZiAobV9zdGF0ZS5zdHJva2VQYXR0ZXJu
KQogICAgICAgICBhcHBseVN0cm9rZVBhdHRlcm4oKTsKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMCkgfHwgKFBMQVRGT1JNKElP
UykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAwMDAwKQorICAgIENH
Q29udGV4dERyYXdQYXRoRGlyZWN0KGNvbnRleHQsIGtDR1BhdGhTdHJva2UsIHBhdGgucGxhdGZv
cm1QYXRoKCksIG51bGxwdHIpOworI2Vsc2UKKyAgICBDR0NvbnRleHRCZWdpblBhdGgoY29udGV4
dCk7CisgICAgQ0dDb250ZXh0QWRkUGF0aChjb250ZXh0LCBwYXRoLnBsYXRmb3JtUGF0aCgpKTsK
ICAgICBDR0NvbnRleHRTdHJva2VQYXRoKGNvbnRleHQpOworI2VuZGlmCiB9CiAKIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326163</attachid>
            <date>2017-11-06 15:58:32 -0800</date>
            <delta_ts>2017-11-06 18:28:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179339-20171106155831.patch</filename>
            <type>text/plain</type>
            <size>6307</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0MjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBlYzIxMWRkMDQ2YTQ3
NzdkN2RjZmJhMTEwYTIxZWM5NGY4MWIxZC4uYzYzZWE3OTFjN2E2NDZlMGUzZjA1NDBkNWQ5YmVi
NjRkODEzM2M0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE3LTExLTA2ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NHXSBB
ZG9wdCBDR0NvbnRleHREcmF3UGF0aERpcmVjdCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzkzMzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI2
MjgzNTc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBB
ZG9wdCB0aGlzIGZ1bmN0aW9uIG9uIG1hY09TID49IDEwLjEyIGFuZCBpT1MgPj0gMTAuMC4gSW5z
dGVhZCBvZiBjbGVhcmluZworICAgICAgICB0aGUgY3VycmVudCBwYXRoIGFuZCBjcmVhdGluZyBh
IG5ldyBvbmUgYnkgY2FsbGluZyBDR0NvbnRleHRCZWdpblBhdGgoKQorICAgICAgICBhbmQgdGhl
biBhZGRpbmcgYSBDR1BhdGggYnkgY2FsbGluZyBDR0NvbnRleHRBZGRQYXRoKCkgYW5kIHRoZW4g
Y2FsbGluZyAKKyAgICAgICAgb25lIG9mIHRoZSBkcmF3aW5nIHBhdGggZnVuY3Rpb25zLCB3ZSBq
dXN0IGNhbGwgQ0dDb250ZXh0RHJhd1BhdGhEaXJlY3QoKS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6ZHJhd1BhdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpmaWxsUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN0cm9r
ZVBhdGgpOiBEb24ndCBjYWxsIENHQ29udGV4dEJlZ2luUGF0aCgpCisgICAgICAgIGFuZCBDR0Nv
bnRleHRBZGRQYXRoKCkgZm9yIHRoZSBkcmF3aW5nIENHQ29udGV4dCBpbiB0aGUgY2FzZSBvZiBn
cmFkaWVudAorICAgICAgICBzaGFkb3cgYmVjYXVzZSB3ZSBhZGQgdGhlIENHUGF0aCB0byB0aGUg
bGF5ZXJDb250ZXh0IGFuZCBhdCB0aGUgZW5kIHdlCisgICAgICAgIGRyYXcgdGhpcyBDR0xheWVy
IGludG8gdGhlIGRyYXdpbmcgY29udGV4dC4KKwogMjAxNy0xMC0zMSAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyIHNob3Vs
ZCBhbHdheXMgcmV0dXJuIHRoZSBzYW1lIG9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggZjk1
YzdkZThjN2FmMTRhOGUzZjUyOWQ4NDA1ODdjYWRhNDEwNjJhMy4uYWE4ODhhNzBhNzcyYjUxMmIy
MWQ1MGJkOTZjYjYwYmQ4ZGViZTVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTctMTEtMDYgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNv
bT4KKworICAgICAgICBbQ0ddIEFkb3B0IENHQ29udGV4dERyYXdQYXRoRGlyZWN0KCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTMzOQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjYyODM1NzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24g
RnJhc2VyLgorCisgICAgICAgIEFkZCBDR0NvbnRleHREcmF3UGF0aERpcmVjdCgpIGFzIGEgbmV3
IENvcmVHcmFwaGljcyBTUEkuCisKKyAgICAgICAgKiBwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQ
SS5oOgorCiAyMDE3LTEwLTMxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIFtBdHRhY2htZW50IFN1cHBvcnRdIEltcGxlbWVudCBXS1dlYlZpZXcgU1BJ
IGZvciBpbnNlcnRpbmcgYXR0YWNobWVudCBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAppbmRleCAwYmZkODFmYmQyYmEyNDE1Mjc5
ODM0ZGE5YTUwNTdiM2FmZGI0ZTdjLi45YmFjMjVhMTcxMjI0MTUyYmVlYjdiNTVkOWRjYzY1NTBl
OTY1MmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3Jh
cGhpY3NTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZy9Db3JlR3JhcGhp
Y3NTUEkuaApAQCAtMjU0LDYgKzI1NCw3IEBAIGJvb2wgQ0dDb2xvclNwYWNlVXNlc0V4dGVuZGVk
UmFuZ2UoQ0dDb2xvclNwYWNlUmVmKTsKIHR5cGVkZWYgc3RydWN0IENHUERGQW5ub3RhdGlvbiAq
Q0dQREZBbm5vdGF0aW9uUmVmOwogdHlwZWRlZiBib29sICheQ0dQREZBbm5vdGF0aW9uRHJhd0Nh
bGxiYWNrVHlwZSkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUERGUGFnZVJlZiBwYWdlLCBDR1BE
RkFubm90YXRpb25SZWYgYW5ub3RhdGlvbik7CiB2b2lkIENHQ29udGV4dERyYXdQREZQYWdlV2l0
aEFubm90YXRpb25zKENHQ29udGV4dFJlZiwgQ0dQREZQYWdlUmVmLCBDR1BERkFubm90YXRpb25E
cmF3Q2FsbGJhY2tUeXBlKTsKK3ZvaWQgQ0dDb250ZXh0RHJhd1BhdGhEaXJlY3QoQ0dDb250ZXh0
UmVmLCBDR1BhdGhEcmF3aW5nTW9kZSwgQ0dQYXRoUmVmLCBjb25zdCBDR1JlY3QqIGJvdW5kaW5n
Qm94KTsKICNlbmRpZgogCiAjaWYgVVNFKElPU1VSRkFDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRl
eCA3Y2ZhZmNlNDM0ZmFhZWJhMjU5Y2U5MDgyYTdmNzhmOTMwMmExMWFjLi43YWJlZDhlZTVmZGIx
NzhiYjBiNTgzNmIxZDI3YWI3YWJmN2VlZjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC01Miw2
ICs1Miw4IEBACiAjaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlL1dlYktpdFN5c3RlbUlu
dGVyZmFjZS5oPgogI2VuZGlmCiAKKyNkZWZpbmUgVVNFX0RSQVdfUEFUSF9ESVJFQ1QgKFBMQVRG
T1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDEyMDApKQorCiAvLyBGSVhNRTogVGhlIGZvbGxvd2luZyB1c2luZyBkZWNsYXJh
dGlvbiBzaG91bGQgYmUgaW4gPHd0Zi9IYXNoRnVuY3Rpb25zLmg+LgogdXNpbmcgV1RGOjpwYWly
SW50SGFzaDsKIApAQCAtNjM5LDE3ICs2NDEsMjEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdQYXRoKGNvbnN0IFBhdGgmIHBhdGgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBD
R0NvbnRleHRCZWdpblBhdGgoY29udGV4dCk7Ci0gICAgQ0dDb250ZXh0QWRkUGF0aChjb250ZXh0
LCBwYXRoLnBsYXRmb3JtUGF0aCgpKTsKLQogICAgIGlmIChzdGF0ZS5maWxsUGF0dGVybikKICAg
ICAgICAgYXBwbHlGaWxsUGF0dGVybigpOwogICAgIGlmIChzdGF0ZS5zdHJva2VQYXR0ZXJuKQog
ICAgICAgICBhcHBseVN0cm9rZVBhdHRlcm4oKTsKIAogICAgIENHUGF0aERyYXdpbmdNb2RlIGRy
YXdpbmdNb2RlOwotICAgIGlmIChjYWxjdWxhdGVEcmF3aW5nTW9kZShzdGF0ZSwgZHJhd2luZ01v
ZGUpKQorICAgIGlmIChjYWxjdWxhdGVEcmF3aW5nTW9kZShzdGF0ZSwgZHJhd2luZ01vZGUpKSB7
CisjaWYgVVNFX0RSQVdfUEFUSF9ESVJFQ1QKKyAgICAgICAgQ0dDb250ZXh0RHJhd1BhdGhEaXJl
Y3QoY29udGV4dCwgZHJhd2luZ01vZGUsIHBhdGgucGxhdGZvcm1QYXRoKCksIG51bGxwdHIpOwor
I2Vsc2UKKyAgICAgICAgQ0dDb250ZXh0QmVnaW5QYXRoKGNvbnRleHQpOworICAgICAgICBDR0Nv
bnRleHRBZGRQYXRoKGNvbnRleHQsIHBhdGgucGxhdGZvcm1QYXRoKCkpOwogICAgICAgICBDR0Nv
bnRleHREcmF3UGF0aChjb250ZXh0LCBkcmF3aW5nTW9kZSk7CisjZW5kaWYKKyAgICB9CiB9CiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aChjb25zdCBQYXRoJiBwYXRoKQpAQCAtNzAz
LDE2ICs3MDksMTggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxQYXRoKGNvbnN0IFBhdGgm
IHBhdGgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBDR0NvbnRleHRCZWdpblBhdGgo
Y29udGV4dCk7Ci0gICAgQ0dDb250ZXh0QWRkUGF0aChjb250ZXh0LCBwYXRoLnBsYXRmb3JtUGF0
aCgpKTsKLQogICAgIGlmIChtX3N0YXRlLmZpbGxQYXR0ZXJuKQogICAgICAgICBhcHBseUZpbGxQ
YXR0ZXJuKCk7Ci0KKyNpZiBVU0VfRFJBV19QQVRIX0RJUkVDVAorICAgIENHQ29udGV4dERyYXdQ
YXRoRGlyZWN0KGNvbnRleHQsIGZpbGxSdWxlKCkgPT0gUlVMRV9FVkVOT0REID8ga0NHUGF0aEVP
RmlsbCA6IGtDR1BhdGhGaWxsLCBwYXRoLnBsYXRmb3JtUGF0aCgpLCBudWxscHRyKTsKKyNlbHNl
CisgICAgQ0dDb250ZXh0QmVnaW5QYXRoKGNvbnRleHQpOworICAgIENHQ29udGV4dEFkZFBhdGgo
Y29udGV4dCwgcGF0aC5wbGF0Zm9ybVBhdGgoKSk7CiAgICAgaWYgKGZpbGxSdWxlKCkgPT0gUlVM
RV9FVkVOT0REKQogICAgICAgICBDR0NvbnRleHRFT0ZpbGxQYXRoKGNvbnRleHQpOwogICAgIGVs
c2UKICAgICAgICAgQ0dDb250ZXh0RmlsbFBhdGgoY29udGV4dCk7CisjZW5kaWYKIH0KIAogdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoY29uc3QgUGF0aCYgcGF0aCkKQEAgLTcyNyw5
ICs3MzUsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aChjb25zdCBQYXRoJiBw
YXRoKQogCiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSBwbGF0Zm9ybUNvbnRleHQoKTsKIAot
ICAgIENHQ29udGV4dEJlZ2luUGF0aChjb250ZXh0KTsKLSAgICBDR0NvbnRleHRBZGRQYXRoKGNv
bnRleHQsIHBhdGgucGxhdGZvcm1QYXRoKCkpOwotCiAgICAgaWYgKG1fc3RhdGUuc3Ryb2tlR3Jh
ZGllbnQpIHsKICAgICAgICAgaWYgKGhhc1NoYWRvdygpKSB7CiAgICAgICAgICAgICBGbG9hdFJl
Y3QgcmVjdCA9IHBhdGguZmFzdEJvdW5kaW5nUmVjdCgpOwpAQCAtNzY0LDYgKzc2OSw4IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKGNvbnN0IFBhdGgmIHBhdGgpCiAgICAgICAg
ICAgICBDR0xheWVyUmVsZWFzZShsYXllcik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICBDR0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CisgICAgICAgICAgICBD
R0NvbnRleHRCZWdpblBhdGgoY29udGV4dCk7CisgICAgICAgICAgICBDR0NvbnRleHRBZGRQYXRo
KGNvbnRleHQsIHBhdGgucGxhdGZvcm1QYXRoKCkpOwogICAgICAgICAgICAgQ0dDb250ZXh0UmVw
bGFjZVBhdGhXaXRoU3Ryb2tlZFBhdGgoY29udGV4dCk7CiAgICAgICAgICAgICBDR0NvbnRleHRD
bGlwKGNvbnRleHQpOwogICAgICAgICAgICAgQ0dDb250ZXh0Q29uY2F0Q1RNKGNvbnRleHQsIG1f
c3RhdGUuc3Ryb2tlR3JhZGllbnQtPmdyYWRpZW50U3BhY2VUcmFuc2Zvcm0oKSk7CkBAIC03NzQs
NyArNzgxLDEzIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKGNvbnN0IFBhdGgm
IHBhdGgpCiAKICAgICBpZiAobV9zdGF0ZS5zdHJva2VQYXR0ZXJuKQogICAgICAgICBhcHBseVN0
cm9rZVBhdHRlcm4oKTsKKyNpZiBVU0VfRFJBV19QQVRIX0RJUkVDVAorICAgIENHQ29udGV4dERy
YXdQYXRoRGlyZWN0KGNvbnRleHQsIGtDR1BhdGhTdHJva2UsIHBhdGgucGxhdGZvcm1QYXRoKCks
IG51bGxwdHIpOworI2Vsc2UKKyAgICBDR0NvbnRleHRCZWdpblBhdGgoY29udGV4dCk7CisgICAg
Q0dDb250ZXh0QWRkUGF0aChjb250ZXh0LCBwYXRoLnBsYXRmb3JtUGF0aCgpKTsKICAgICBDR0Nv
bnRleHRTdHJva2VQYXRoKGNvbnRleHQpOworI2VuZGlmCiB9CiAKIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>