<?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>137733</bug_id>
          
          <creation_ts>2014-10-14 20:26:53 -0700</creation_ts>
          <short_desc>Use is&lt;&gt;() / downcast&lt;&gt;() for ClipPathOperation subclasses</short_desc>
          <delta_ts>2014-10-15 10:13:57 -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>Layout and Rendering</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>137424</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mihnea</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1041776</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-14 20:26:53 -0700</bug_when>
    <thetext>Use is&lt;&gt;() / downcast&lt;&gt;() for ClipPathOperation subclasses</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041778</commentid>
    <comment_count>1</comment_count>
      <attachid>239845</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-14 20:35:19 -0700</bug_when>
    <thetext>Created attachment 239845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041853</commentid>
    <comment_count>2</comment_count>
      <attachid>239845</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2014-10-15 07:38:10 -0700</bug_when>
    <thetext>Comment on attachment 239845
Patch

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

r=me with some comments.

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2856
&gt; +                ReferenceClipPathOperation&amp; referenceOperation = downcast&lt;ReferenceClipPathOperation&gt;(*operation);

I guess you can use const auto&amp; referenceOperation instead.

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2861
&gt; +                ShapeClipPathOperation&amp; shapeOperation = downcast&lt;ShapeClipPathOperation&gt;(*operation);

ShapeClipPathOperation&amp; shapeOperation -&gt; const auto&amp; shapeOperation

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2867
&gt; +                BoxClipPathOperation&amp; boxOperation = downcast&lt;BoxClipPathOperation&gt;(*operation);

BoxClipPathOperation&amp; boxOperation -&gt; const auto&amp; boxOperation

&gt; Source/WebCore/rendering/RenderBlock.cpp:2456
&gt; +            ShapeClipPathOperation&amp; clipPath = downcast&lt;ShapeClipPathOperation&gt;(*style().clipPath());

ShapeClipPathOperation&amp; clipPath -&gt; const auto&amp; clipPath

&gt; Source/WebCore/rendering/RenderLayer.cpp:3929
&gt; +        ShapeClipPathOperation&amp; clippingPath = downcast&lt;ShapeClipPathOperation&gt;(*style.clipPath());

ShapeClipPathOperation&amp; clippingPath -&gt; const auto&amp; clipPath. I noticed that in general we use clipPath and I think we should use clipPath here too (and for the same reason below).

&gt; Source/WebCore/rendering/RenderLayer.cpp:3938
&gt; +        BoxClipPathOperation&amp; clippingPath = downcast&lt;BoxClipPathOperation&gt;(*style.clipPath());

BoxClipPathOperation&amp; clippingPath -&gt; const auto&amp; clipPath

&gt; Source/WebCore/rendering/svg/SVGRenderingContext.cpp:140
&gt; +        ShapeClipPathOperation&amp; clipPath = downcast&lt;ShapeClipPathOperation&gt;(*clipPathOperation);

ShapeClipPathOperation&amp; clipPath -&gt; const auto&amp; clipPath</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041867</commentid>
    <comment_count>3</comment_count>
      <attachid>239874</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-15 09:29:54 -0700</bug_when>
    <thetext>Created attachment 239874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041882</commentid>
    <comment_count>4</comment_count>
      <attachid>239874</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-15 10:13:49 -0700</bug_when>
    <thetext>Comment on attachment 239874
Patch

Clearing flags on attachment: 239874

Committed r174729: &lt;http://trac.webkit.org/changeset/174729&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041883</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-15 10:13:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239845</attachid>
            <date>2014-10-14 20:35:19 -0700</date>
            <delta_ts>2014-10-15 09:29:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137733-20141014203526.patch</filename>
            <type>text/plain</type>
            <size>10117</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDc2MDJmZjY0NWQ4MDY4
ZDg0MmNjYzhlNWVhNTNlMmJhYTY4NjI0MC4uZGM2MTcxMTdmNTM4Y2NlZTgzMWZlM2MyZTg3ZDli
Y2NiMTk0MDA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTEwLTE0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25j
YXN0PD4oKSBmb3IgQ2xpcFBhdGhPcGVyYXRpb24gc3ViY2xhc3NlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3NzMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25jYXN0PD4o
KSBmb3IgQ2xpcFBhdGhPcGVyYXRpb24gc3ViY2xhc3Nlcy4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rv
cjo6cHJvcGVydHlWYWx1ZSk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUNsaXBQYXRoOjphcHBseVZhbHVl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRpb24uaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
Om5vZGVBdFBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNldHVwQ2xpcFBhdGgpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdSZW5kZXJpbmdDb250ZXh0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KToKKwogMjAxNC0x
MC0xNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OIChyMTU5MjA4KTogQ3Jhc2ggd2hlbiBjbGlja2luZyBzY3J1YmJlciBhZnRlciBuYXZpZ2F0
aW5nIGF3YXkvYmFjayB0byB2aWRlbwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA2Yjc4MzZiYjkzNGRhNDcyZGI4YzlmMzBl
NzZiY2Q1NTRlYjhkOTkzLi5jZmM1NTAwMTcxZDI5ZjEwMGIzOGQ4ZGVjMDdkNjdhMWM4MjM2MDEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcApAQCAtMjg1MiwxOSArMjg1MiwxOSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDb21w
dXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydAog
ICAgICAgICAgICAgQ2xpcFBhdGhPcGVyYXRpb24qIG9wZXJhdGlvbiA9IHN0eWxlLT5jbGlwUGF0
aCgpOwogICAgICAgICAgICAgaWYgKCFvcGVyYXRpb24pCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOwotICAg
ICAgICAgICAgaWYgKG9wZXJhdGlvbi0+dHlwZSgpID09IENsaXBQYXRoT3BlcmF0aW9uOjpSZWZl
cmVuY2UpIHsKLSAgICAgICAgICAgICAgICBSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbiYgcmVm
ZXJlbmNlT3BlcmF0aW9uID0gdG9SZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbigqb3BlcmF0aW9u
KTsKKyAgICAgICAgICAgIGlmIChpczxSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbj4oKm9wZXJh
dGlvbikpIHsKKyAgICAgICAgICAgICAgICBSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbiYgcmVm
ZXJlbmNlT3BlcmF0aW9uID0gZG93bmNhc3Q8UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24+KCpv
cGVyYXRpb24pOwogICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3Jl
YXRlKHJlZmVyZW5jZU9wZXJhdGlvbi51cmwoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkkp
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9
IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKLSAgICAgICAgICAgIGlmIChv
cGVyYXRpb24tPnR5cGUoKSA9PSBDbGlwUGF0aE9wZXJhdGlvbjo6U2hhcGUpIHsKLSAgICAgICAg
ICAgICAgICBTaGFwZUNsaXBQYXRoT3BlcmF0aW9uJiBzaGFwZU9wZXJhdGlvbiA9IHRvU2hhcGVD
bGlwUGF0aE9wZXJhdGlvbigqb3BlcmF0aW9uKTsKKyAgICAgICAgICAgIGlmIChpczxTaGFwZUNs
aXBQYXRoT3BlcmF0aW9uPigqb3BlcmF0aW9uKSkgeworICAgICAgICAgICAgICAgIFNoYXBlQ2xp
cFBhdGhPcGVyYXRpb24mIHNoYXBlT3BlcmF0aW9uID0gZG93bmNhc3Q8U2hhcGVDbGlwUGF0aE9w
ZXJhdGlvbj4oKm9wZXJhdGlvbik7CiAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKHZhbHVl
Rm9yQmFzaWNTaGFwZShzdHlsZS5nZXQoKSwgc2hhcGVPcGVyYXRpb24uYmFzaWNTaGFwZSgpKSk7
CiAgICAgICAgICAgICAgICAgaWYgKHNoYXBlT3BlcmF0aW9uLnJlZmVyZW5jZUJveCgpICE9IEJv
eE1pc3NpbmcpCiAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2wo
KS5jcmVhdGVWYWx1ZShzaGFwZU9wZXJhdGlvbi5yZWZlcmVuY2VCb3goKSkpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaWYgKG9wZXJhdGlvbi0+dHlwZSgpID09IENsaXBQYXRoT3BlcmF0
aW9uOjpCb3gpIHsKLSAgICAgICAgICAgICAgICBCb3hDbGlwUGF0aE9wZXJhdGlvbiYgYm94T3Bl
cmF0aW9uID0gdG9Cb3hDbGlwUGF0aE9wZXJhdGlvbigqb3BlcmF0aW9uKTsKKyAgICAgICAgICAg
IGlmIChpczxCb3hDbGlwUGF0aE9wZXJhdGlvbj4oKm9wZXJhdGlvbikpIHsKKyAgICAgICAgICAg
ICAgICBCb3hDbGlwUGF0aE9wZXJhdGlvbiYgYm94T3BlcmF0aW9uID0gZG93bmNhc3Q8Qm94Q2xp
cFBhdGhPcGVyYXRpb24+KCpvcGVyYXRpb24pOwogICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVu
ZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShib3hPcGVyYXRpb24ucmVmZXJlbmNlQm94KCkp
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAppbmRleCA1Mjll
YWQ3ZmJhNzg1ZjQzM2I4NGQwNThhZmJmMDI1NTg5ODAzMjhhLi5jYjgyOWVlZWNjN2E0Yzk4Zjgy
YmNlODQzYTkzYjE2YTMyNWUwM2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVw
cmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0
ZWRTdHlsZUJ1aWxkZXIuY3BwCkBAIC0yMTYzLDcgKzIxNjMsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgb3BlcmF0aW9uID0gQm94Q2xpcFBhdGhPcGVy
YXRpb246OmNyZWF0ZShyZWZlcmVuY2VCb3gpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IHRvU2hhcGVDbGlwUGF0aE9wZXJhdGlvbihvcGVyYXRpb24uZ2V0KCkpLT5zZXRSZWZlcmVuY2VC
b3gocmVmZXJlbmNlQm94KTsKKyAgICAgICAgICAgIGRvd25jYXN0PFNoYXBlQ2xpcFBhdGhPcGVy
YXRpb24+KCpvcGVyYXRpb24pLnNldFJlZmVyZW5jZUJveChyZWZlcmVuY2VCb3gpOwogICAgICAg
ICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBvcGVyYXRpb24ucmVsZWFzZSgpKTsK
ICAgICB9CiAgICAgc3RhdGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NsaXBQYXRoT3BlcmF0aW9uLmgKaW5kZXggYWY2MGE5ODU5
MjA4OWU4ZTc0YjY4NTc5MmNhZGU5OTg2YWY4NGVmMi4uNjdmZTU1OTQyM2Q5YmYwMmVkNjIyMzgx
NGE3NjRkOTI4M2YxNjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Ns
aXBQYXRoT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NsaXBQYXRo
T3BlcmF0aW9uLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJQYXRoLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTY2LDEzICsxNjcsMTUgQEAgcHJpdmF0ZToK
ICAgICBDU1NCb3hUeXBlIG1fcmVmZXJlbmNlQm94OwogfTsKIAotI2RlZmluZSBDTElQX1BBVEhf
T1BFUkFUSU9OX0NBU1RTKFRvVmFsdWVUeXBlTmFtZSwgcHJlZGljYXRlKSBcCi0gICAgVFlQRV9D
QVNUU19CQVNFKFRvVmFsdWVUeXBlTmFtZSwgQ2xpcFBhdGhPcGVyYXRpb24sIG9wZXJhdGlvbiwg
b3BlcmF0aW9uLT50eXBlKCkgPT0gQ2xpcFBhdGhPcGVyYXRpb246OnByZWRpY2F0ZSwgb3BlcmF0
aW9uLnR5cGUoKSA9PSBDbGlwUGF0aE9wZXJhdGlvbjo6cHJlZGljYXRlKQorfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCi1DTElQX1BBVEhfT1BFUkFUSU9OX0NBU1RTKFJlZmVyZW5jZUNsaXBQYXRo
T3BlcmF0aW9uLCBSZWZlcmVuY2UpCi1DTElQX1BBVEhfT1BFUkFUSU9OX0NBU1RTKFNoYXBlQ2xp
cFBhdGhPcGVyYXRpb24sIFNoYXBlKQotQ0xJUF9QQVRIX09QRVJBVElPTl9DQVNUUyhCb3hDbGlw
UGF0aE9wZXJhdGlvbiwgQm94KQorI2RlZmluZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NMSVBf
UEFUSF9PUEVSQVRJT04oVG9WYWx1ZVR5cGVOYW1lLCBwcmVkaWNhdGUpIFwKK1NQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6VG9WYWx1ZVR5cGVOYW1lKSBcCisgICAgc3RhdGlj
IGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkNsaXBQYXRoT3BlcmF0aW9uJiBvcGVyYXRpb24p
IHsgcmV0dXJuIG9wZXJhdGlvbi50eXBlKCkgPT0gV2ViQ29yZTo6cHJlZGljYXRlOyB9IFwKK1NQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19DTElQX1BBVEhfT1BFUkFUSU9OKFJlZmVyZW5jZUNsaXBQYXRo
T3BlcmF0aW9uLCBDbGlwUGF0aE9wZXJhdGlvbjo6UmVmZXJlbmNlKQorU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19DTElQX1BBVEhfT1BFUkFUSU9OKFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24sIENsaXBQ
YXRoT3BlcmF0aW9uOjpTaGFwZSkKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0xJUF9QQVRIX09Q
RVJBVElPTihCb3hDbGlwUGF0aE9wZXJhdGlvbiwgQ2xpcFBhdGhPcGVyYXRpb246OkJveCkKIAog
I2VuZGlmIC8vIENsaXBQYXRoT3BlcmF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCmluZGV4IGYwNjYxNDA1OGEwMmJlMTI2MWVjMDc4YTQ3MTBhNzQ5NDc3ZWRk
MWEuLmM0NzQxOWQxMmRlZDFiODVjMDJjMGE1NGYxYWI5NjA1N2ZjYjY4MmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMjQ1MywxMCArMjQ1MywxMCBAQCBi
b29sIFJlbmRlckJsb2NrOjpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVz
dCwgSGl0VGVzdFJlc3VsdCYgcmVzdQogICAgIGlmIChzdHlsZSgpLmNsaXBQYXRoKCkpIHsKICAg
ICAgICAgc3dpdGNoIChzdHlsZSgpLmNsaXBQYXRoKCktPnR5cGUoKSkgewogICAgICAgICBjYXNl
IENsaXBQYXRoT3BlcmF0aW9uOjpTaGFwZTogewotICAgICAgICAgICAgU2hhcGVDbGlwUGF0aE9w
ZXJhdGlvbiogY2xpcFBhdGggPSB0b1NoYXBlQ2xpcFBhdGhPcGVyYXRpb24oc3R5bGUoKS5jbGlw
UGF0aCgpKTsKKyAgICAgICAgICAgIFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24mIGNsaXBQYXRoID0g
ZG93bmNhc3Q8U2hhcGVDbGlwUGF0aE9wZXJhdGlvbj4oKnN0eWxlKCkuY2xpcFBhdGgoKSk7CiAK
ICAgICAgICAgICAgIExheW91dFJlY3QgcmVmZXJlbmNlQm94UmVjdDsKLSAgICAgICAgICAgIHN3
aXRjaCAoY2xpcFBhdGgtPnJlZmVyZW5jZUJveCgpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGNs
aXBQYXRoLnJlZmVyZW5jZUJveCgpKSB7CiAgICAgICAgICAgICBjYXNlIENTU0JveFR5cGU6Ok1h
cmdpbkJveDoKICAgICAgICAgICAgICAgICByZWZlcmVuY2VCb3hSZWN0ID0gbWFyZ2luQm94UmVj
dCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjQ3NSw3ICsyNDc1LDcgQEAgYm9vbCBS
ZW5kZXJCbG9jazo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhp
dFRlc3RSZXN1bHQmIHJlc3UKICAgICAgICAgICAgIGNhc2UgQ1NTQm94VHlwZTo6Vmlld0JveDoK
ICAgICAgICAgICAgICAgICByZWZlcmVuY2VCb3hSZWN0ID0gYm9yZGVyQm94UmVjdCgpOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCFjbGlwUGF0aC0+cGF0aEZvclJlZmVyZW5jZVJl
Y3QocmVmZXJlbmNlQm94UmVjdCkuY29udGFpbnMobG9jYXRpb25JbkNvbnRhaW5lci5wb2ludCgp
IC0gbG9jYWxPZmZzZXQsIGNsaXBQYXRoLT53aW5kUnVsZSgpKSkKKyAgICAgICAgICAgIGlmICgh
Y2xpcFBhdGgucGF0aEZvclJlZmVyZW5jZVJlY3QocmVmZXJlbmNlQm94UmVjdCkuY29udGFpbnMo
bG9jYXRpb25JbkNvbnRhaW5lci5wb2ludCgpIC0gbG9jYWxPZmZzZXQsIGNsaXBQYXRoLndpbmRS
dWxlKCkpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRl
eCBjNDBiZmE4MzNiZmI4ZWRmNTM3NWVmNmVhNjAyZDQ5OWNmYTg1NzlmLi5mZDVjZjQ0NTMwMDRj
YzdhYzdiYjZjNmEwYWU1YTcxYTAzMDJmYjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKQEAgLTM5MjUsOCArMzkyNSw4IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnNl
dHVwQ2xpcFBhdGgoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXllclBhaW50aW5n
SW5mCiAKICAgICBSZW5kZXJTdHlsZSYgc3R5bGUgPSByZW5kZXJlcigpLnN0eWxlKCk7CiAgICAg
QVNTRVJUKHN0eWxlLmNsaXBQYXRoKCkpOwotICAgIGlmIChzdHlsZS5jbGlwUGF0aCgpLT50eXBl
KCkgPT0gQ2xpcFBhdGhPcGVyYXRpb246OlNoYXBlKSB7Ci0gICAgICAgIFNoYXBlQ2xpcFBhdGhP
cGVyYXRpb24mIGNsaXBwaW5nUGF0aCA9IHRvU2hhcGVDbGlwUGF0aE9wZXJhdGlvbigqKHN0eWxl
LmNsaXBQYXRoKCkpKTsKKyAgICBpZiAoaXM8U2hhcGVDbGlwUGF0aE9wZXJhdGlvbj4oKnN0eWxl
LmNsaXBQYXRoKCkpKSB7CisgICAgICAgIFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24mIGNsaXBwaW5n
UGF0aCA9IGRvd25jYXN0PFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24+KCpzdHlsZS5jbGlwUGF0aCgp
KTsKIAogICAgICAgICBMYXlvdXRSZWN0IHJlZmVyZW5jZUJveCA9IGNvbXB1dGVSZWZlcmVuY2VC
b3gocmVuZGVyZXIoKSwgY2xpcHBpbmdQYXRoLCBvZmZzZXRGcm9tUm9vdCwgcm9vdFJlbGF0aXZl
Qm91bmRzKTsKICAgICAgICAgY29udGV4dC0+c2F2ZSgpOwpAQCAtMzkzNCwxMCArMzkzNCwxMCBA
QCBib29sIFJlbmRlckxheWVyOjpzZXR1cENsaXBQYXRoKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
LSAgICBpZiAoc3R5bGUuY2xpcFBhdGgoKS0+dHlwZSgpID09IENsaXBQYXRoT3BlcmF0aW9uOjpC
b3ggJiYgcmVuZGVyZXIoKS5pc0JveCgpKSB7Ci0gICAgICAgIEJveENsaXBQYXRoT3BlcmF0aW9u
JiBjbGlwcGluZ1BhdGggPSB0b0JveENsaXBQYXRoT3BlcmF0aW9uKCooc3R5bGUuY2xpcFBhdGgo
KSkpOworICAgIGlmIChpczxCb3hDbGlwUGF0aE9wZXJhdGlvbj4oKnN0eWxlLmNsaXBQYXRoKCkp
ICYmIGlzPFJlbmRlckJveD4ocmVuZGVyZXIoKSkpIHsKKyAgICAgICAgQm94Q2xpcFBhdGhPcGVy
YXRpb24mIGNsaXBwaW5nUGF0aCA9IGRvd25jYXN0PEJveENsaXBQYXRoT3BlcmF0aW9uPigqc3R5
bGUuY2xpcFBhdGgoKSk7CiAKLSAgICAgICAgUm91bmRlZFJlY3Qgc2hhcGVSZWN0ID0gY29tcHV0
ZVJvdW5kZWRSZWN0Rm9yQm94U2hhcGUoY2xpcHBpbmdQYXRoLnJlZmVyZW5jZUJveCgpLCB0b1Jl
bmRlckJveChyZW5kZXJlcigpKSk7CisgICAgICAgIFJvdW5kZWRSZWN0IHNoYXBlUmVjdCA9IGNv
bXB1dGVSb3VuZGVkUmVjdEZvckJveFNoYXBlKGNsaXBwaW5nUGF0aC5yZWZlcmVuY2VCb3goKSwg
ZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcigpKSk7CiAgICAgICAgIHNoYXBlUmVjdC5tb3Zl
KG9mZnNldEZyb21Sb290KTsKIAogICAgICAgICBjb250ZXh0LT5zYXZlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRl
eCBlYjZiODliNWUwYWQ0ZmZiODNlMWJmZjE4N2MxY2I2NzlmOGZkN2EyLi5iMDJhNTE4MGRmMzg0
ZTU3ODE5ZjI4MDZhMWM2NmMxNWYxMjBhYjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTEzNiw4ICsxMzYsOCBA
QCB2b2lkIFNWR1JlbmRlcmluZ0NvbnRleHQ6OnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQoUmVu
ZGVyRWxlbWVudCYgcmVuZGVyZXIsIFBhaQogICAgIH0KIAogICAgIENsaXBQYXRoT3BlcmF0aW9u
KiBjbGlwUGF0aE9wZXJhdGlvbiA9IHN0eWxlLmNsaXBQYXRoKCk7Ci0gICAgaWYgKGNsaXBQYXRo
T3BlcmF0aW9uICYmIGNsaXBQYXRoT3BlcmF0aW9uLT50eXBlKCkgPT0gQ2xpcFBhdGhPcGVyYXRp
b246OlNoYXBlKSB7Ci0gICAgICAgIFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24mIGNsaXBQYXRoID0g
dG9TaGFwZUNsaXBQYXRoT3BlcmF0aW9uKCpjbGlwUGF0aE9wZXJhdGlvbik7CisgICAgaWYgKGlz
PFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24+KGNsaXBQYXRoT3BlcmF0aW9uKSkgeworICAgICAgICBT
aGFwZUNsaXBQYXRoT3BlcmF0aW9uJiBjbGlwUGF0aCA9IGRvd25jYXN0PFNoYXBlQ2xpcFBhdGhP
cGVyYXRpb24+KCpjbGlwUGF0aE9wZXJhdGlvbik7CiAgICAgICAgIEZsb2F0UmVjdCByZWZlcmVu
Y2VCb3g7CiAgICAgICAgIGlmIChjbGlwUGF0aC5yZWZlcmVuY2VCb3goKSA9PSBTdHJva2UpCiAg
ICAgICAgICAgICAvLyBGSVhNRTogc3Ryb2tlQm91bmRpbmdCb3goKSB0YWtlcyBkYXNoYXJyYXkg
aW50byBhY2NvdW50IGJ1dCBzaG91bGRuJ3QuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239874</attachid>
            <date>2014-10-15 09:29:54 -0700</date>
            <delta_ts>2014-10-15 10:13:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137733-20141015093004.patch</filename>
            <type>text/plain</type>
            <size>10392</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0NzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVmNDk5MTU3NzJlODc1
MzIyYmEzYmE4OTNiNGM3YWRmYmVhZDg2My4uM2NkMzU3ZjI5Y2M4MzIyOTNlYjQ0MzU0YTcyOGJj
MWViNDVkYzI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTEwLTE0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25j
YXN0PD4oKSBmb3IgQ2xpcFBhdGhPcGVyYXRpb24gc3ViY2xhc3NlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3NzMzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTWlobmVhIE92aWRlbmllLgorCisgICAgICAgIFVzZSBpczw+KCkgLyBkb3duY2FzdDw+
KCkgZm9yIENsaXBQYXRoT3BlcmF0aW9uIHN1YmNsYXNzZXMuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRyYWN0
b3I6OnByb3BlcnR5VmFsdWUpOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlDbGlwUGF0aDo6YXBwbHlWYWx1
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0NsaXBQYXRoT3BlcmF0aW9uLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
Ojpub2RlQXRQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzZXR1cENsaXBQYXRoKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUmVuZGVyaW5nQ29udGV4dDo6cHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudCk6CisKIDIwMTQt
MTAtMTUgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CiAKICAgICAgICAgVXNl
IG1vZGVybiBsb29wcyBpbiBzdWJ0cmVlcyBzZWxlY3Rpb24gY29kZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA2Yjc4MzZi
YjkzNGRhNDcyZGI4YzlmMzBlNzZiY2Q1NTRlYjhkOTkzLi5iMWI4ODhjY2RhNzJjYzU2OTJmYTA2
YWIwYTUzNjllZWQxZWNhYzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjg1MiwxOSArMjg1MiwxOSBAQCBQYXNzUmVm
UHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKENTU1By
b3BlcnR5SUQgcHJvcGVydAogICAgICAgICAgICAgQ2xpcFBhdGhPcGVyYXRpb24qIG9wZXJhdGlv
biA9IHN0eWxlLT5jbGlwUGF0aCgpOwogICAgICAgICAgICAgaWYgKCFvcGVyYXRpb24pCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShD
U1NWYWx1ZU5vbmUpOwotICAgICAgICAgICAgaWYgKG9wZXJhdGlvbi0+dHlwZSgpID09IENsaXBQ
YXRoT3BlcmF0aW9uOjpSZWZlcmVuY2UpIHsKLSAgICAgICAgICAgICAgICBSZWZlcmVuY2VDbGlw
UGF0aE9wZXJhdGlvbiYgcmVmZXJlbmNlT3BlcmF0aW9uID0gdG9SZWZlcmVuY2VDbGlwUGF0aE9w
ZXJhdGlvbigqb3BlcmF0aW9uKTsKKyAgICAgICAgICAgIGlmIChpczxSZWZlcmVuY2VDbGlwUGF0
aE9wZXJhdGlvbj4oKm9wZXJhdGlvbikpIHsKKyAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBy
ZWZlcmVuY2VPcGVyYXRpb24gPSBkb3duY2FzdDxSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbj4o
Km9wZXJhdGlvbik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpj
cmVhdGUocmVmZXJlbmNlT3BlcmF0aW9uLnVybCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VS
SSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0
ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOwotICAgICAgICAgICAgaWYg
KG9wZXJhdGlvbi0+dHlwZSgpID09IENsaXBQYXRoT3BlcmF0aW9uOjpTaGFwZSkgewotICAgICAg
ICAgICAgICAgIFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24mIHNoYXBlT3BlcmF0aW9uID0gdG9TaGFw
ZUNsaXBQYXRoT3BlcmF0aW9uKCpvcGVyYXRpb24pOworICAgICAgICAgICAgaWYgKGlzPFNoYXBl
Q2xpcFBhdGhPcGVyYXRpb24+KCpvcGVyYXRpb24pKSB7CisgICAgICAgICAgICAgICAgY29uc3Qg
YXV0byYgc2hhcGVPcGVyYXRpb24gPSBkb3duY2FzdDxTaGFwZUNsaXBQYXRoT3BlcmF0aW9uPigq
b3BlcmF0aW9uKTsKICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQodmFsdWVGb3JCYXNpY1No
YXBlKHN0eWxlLmdldCgpLCBzaGFwZU9wZXJhdGlvbi5iYXNpY1NoYXBlKCkpKTsKICAgICAgICAg
ICAgICAgICBpZiAoc2hhcGVPcGVyYXRpb24ucmVmZXJlbmNlQm94KCkgIT0gQm94TWlzc2luZykK
ICAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZh
bHVlKHNoYXBlT3BlcmF0aW9uLnJlZmVyZW5jZUJveCgpKSk7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBpZiAob3BlcmF0aW9uLT50eXBlKCkgPT0gQ2xpcFBhdGhPcGVyYXRpb246OkJveCkg
ewotICAgICAgICAgICAgICAgIEJveENsaXBQYXRoT3BlcmF0aW9uJiBib3hPcGVyYXRpb24gPSB0
b0JveENsaXBQYXRoT3BlcmF0aW9uKCpvcGVyYXRpb24pOworICAgICAgICAgICAgaWYgKGlzPEJv
eENsaXBQYXRoT3BlcmF0aW9uPigqb3BlcmF0aW9uKSkgeworICAgICAgICAgICAgICAgIGNvbnN0
IGF1dG8mIGJveE9wZXJhdGlvbiA9IGRvd25jYXN0PEJveENsaXBQYXRoT3BlcmF0aW9uPigqb3Bl
cmF0aW9uKTsKICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3Jl
YXRlVmFsdWUoYm94T3BlcmF0aW9uLnJlZmVyZW5jZUJveCgpKSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKaW5kZXggNTI5ZWFkN2ZiYTc4NWY0MzNiODRkMDU4
YWZiZjAyNTU4OTgwMzI4YS4uY2I4MjllZWVjYzdhNGM5OGY4MmJjZTg0M2E5M2IxNmEzMjVlMDNh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcApA
QCAtMjE2Myw3ICsyMTYzLDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIG9wZXJhdGlvbiA9IEJveENsaXBQYXRoT3BlcmF0aW9uOjpjcmVhdGUocmVmZXJl
bmNlQm94KTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICB0b1NoYXBlQ2xpcFBhdGhPcGVy
YXRpb24ob3BlcmF0aW9uLmdldCgpKS0+c2V0UmVmZXJlbmNlQm94KHJlZmVyZW5jZUJveCk7Cisg
ICAgICAgICAgICBkb3duY2FzdDxTaGFwZUNsaXBQYXRoT3BlcmF0aW9uPigqb3BlcmF0aW9uKS5z
ZXRSZWZlcmVuY2VCb3gocmVmZXJlbmNlQm94KTsKICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNv
bHZlci0+c3R5bGUoKSwgb3BlcmF0aW9uLnJlbGVhc2UoKSk7CiAgICAgfQogICAgIHN0YXRpYyBQ
cm9wZXJ0eUhhbmRsZXIgY3JlYXRlSGFuZGxlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9DbGlwUGF0aE9wZXJhdGlvbi5oCmluZGV4IGFmNjBhOTg1OTIwODllOGU3NGI2ODU3OTJjYWRl
OTk4NmFmODRlZjIuLjY3ZmU1NTk0MjNkOWJmMDJlZDYyMjM4MTRhNzY0ZDkyODNmMTYwNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiUGF0aC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3Rh
bnRzLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVHlwZUNh
c3RzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTE2NiwxMyArMTY3LDE1IEBAIHByaXZhdGU6CiAgICAgQ1NTQm94VHlwZSBtX3Jl
ZmVyZW5jZUJveDsKIH07CiAKLSNkZWZpbmUgQ0xJUF9QQVRIX09QRVJBVElPTl9DQVNUUyhUb1Zh
bHVlVHlwZU5hbWUsIHByZWRpY2F0ZSkgXAotICAgIFRZUEVfQ0FTVFNfQkFTRShUb1ZhbHVlVHlw
ZU5hbWUsIENsaXBQYXRoT3BlcmF0aW9uLCBvcGVyYXRpb24sIG9wZXJhdGlvbi0+dHlwZSgpID09
IENsaXBQYXRoT3BlcmF0aW9uOjpwcmVkaWNhdGUsIG9wZXJhdGlvbi50eXBlKCkgPT0gQ2xpcFBh
dGhPcGVyYXRpb246OnByZWRpY2F0ZSkKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotQ0xJUF9Q
QVRIX09QRVJBVElPTl9DQVNUUyhSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbiwgUmVmZXJlbmNl
KQotQ0xJUF9QQVRIX09QRVJBVElPTl9DQVNUUyhTaGFwZUNsaXBQYXRoT3BlcmF0aW9uLCBTaGFw
ZSkKLUNMSVBfUEFUSF9PUEVSQVRJT05fQ0FTVFMoQm94Q2xpcFBhdGhPcGVyYXRpb24sIEJveCkK
KyNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DTElQX1BBVEhfT1BFUkFUSU9OKFRvVmFs
dWVUeXBlTmFtZSwgcHJlZGljYXRlKSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdl
YkNvcmU6OlRvVmFsdWVUeXBlTmFtZSkgXAorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBX
ZWJDb3JlOjpDbGlwUGF0aE9wZXJhdGlvbiYgb3BlcmF0aW9uKSB7IHJldHVybiBvcGVyYXRpb24u
dHlwZSgpID09IFdlYkNvcmU6OnByZWRpY2F0ZTsgfSBcCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0VORCgpCiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
Q0xJUF9QQVRIX09QRVJBVElPTihSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbiwgQ2xpcFBhdGhP
cGVyYXRpb246OlJlZmVyZW5jZSkKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0xJUF9QQVRIX09Q
RVJBVElPTihTaGFwZUNsaXBQYXRoT3BlcmF0aW9uLCBDbGlwUGF0aE9wZXJhdGlvbjo6U2hhcGUp
CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NMSVBfUEFUSF9PUEVSQVRJT04oQm94Q2xpcFBhdGhP
cGVyYXRpb24sIENsaXBQYXRoT3BlcmF0aW9uOjpCb3gpCiAKICNlbmRpZiAvLyBDbGlwUGF0aE9w
ZXJhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBm
MDY2MTQwNThhMDJiZTEyNjFlYzA3OGE0NzEwYTc0OTQ3N2VkZDFhLi5lMTRmMDRhZjllZDc5ODEw
NWFjMzgyN2U4NTAyZTQ1Y2MwOGQ1ODg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKQEAgLTI0NTMsMTAgKzI0NTMsMTAgQEAgYm9vbCBSZW5kZXJCbG9jazo6bm9k
ZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJl
c3UKICAgICBpZiAoc3R5bGUoKS5jbGlwUGF0aCgpKSB7CiAgICAgICAgIHN3aXRjaCAoc3R5bGUo
KS5jbGlwUGF0aCgpLT50eXBlKCkpIHsKICAgICAgICAgY2FzZSBDbGlwUGF0aE9wZXJhdGlvbjo6
U2hhcGU6IHsKLSAgICAgICAgICAgIFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24qIGNsaXBQYXRoID0g
dG9TaGFwZUNsaXBQYXRoT3BlcmF0aW9uKHN0eWxlKCkuY2xpcFBhdGgoKSk7CisgICAgICAgICAg
ICBjb25zdCBhdXRvJiBjbGlwUGF0aCA9IGRvd25jYXN0PFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24+
KCpzdHlsZSgpLmNsaXBQYXRoKCkpOwogCiAgICAgICAgICAgICBMYXlvdXRSZWN0IHJlZmVyZW5j
ZUJveFJlY3Q7Ci0gICAgICAgICAgICBzd2l0Y2ggKGNsaXBQYXRoLT5yZWZlcmVuY2VCb3goKSkg
eworICAgICAgICAgICAgc3dpdGNoIChjbGlwUGF0aC5yZWZlcmVuY2VCb3goKSkgewogICAgICAg
ICAgICAgY2FzZSBDU1NCb3hUeXBlOjpNYXJnaW5Cb3g6CiAgICAgICAgICAgICAgICAgcmVmZXJl
bmNlQm94UmVjdCA9IG1hcmdpbkJveFJlY3QoKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAg
LTI0NzUsNyArMjQ3NSw3IEBAIGJvb2wgUmVuZGVyQmxvY2s6Om5vZGVBdFBvaW50KGNvbnN0IEhp
dFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1CiAgICAgICAgICAgICBj
YXNlIENTU0JveFR5cGU6OlZpZXdCb3g6CiAgICAgICAgICAgICAgICAgcmVmZXJlbmNlQm94UmVj
dCA9IGJvcmRlckJveFJlY3QoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghY2xp
cFBhdGgtPnBhdGhGb3JSZWZlcmVuY2VSZWN0KHJlZmVyZW5jZUJveFJlY3QpLmNvbnRhaW5zKGxv
Y2F0aW9uSW5Db250YWluZXIucG9pbnQoKSAtIGxvY2FsT2Zmc2V0LCBjbGlwUGF0aC0+d2luZFJ1
bGUoKSkpCisgICAgICAgICAgICBpZiAoIWNsaXBQYXRoLnBhdGhGb3JSZWZlcmVuY2VSZWN0KHJl
ZmVyZW5jZUJveFJlY3QpLmNvbnRhaW5zKGxvY2F0aW9uSW5Db250YWluZXIucG9pbnQoKSAtIGxv
Y2FsT2Zmc2V0LCBjbGlwUGF0aC53aW5kUnVsZSgpKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggYzQwYmZhODMzYmZiOGVkZjUzNzVlZjZlYTYwMmQ0
OTljZmE4NTc5Zi4uOGQ2OTdiNTllYTZmZTEwMjcyOWJhNDQ2NWQ5MGVkMGEwNDJlN2JjNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0zOTI1LDIzICszOTI1
LDIzIEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnNldHVwQ2xpcFBhdGgoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBMYXllclBhaW50aW5nSW5mCiAKICAgICBSZW5kZXJTdHlsZSYgc3R5bGUg
PSByZW5kZXJlcigpLnN0eWxlKCk7CiAgICAgQVNTRVJUKHN0eWxlLmNsaXBQYXRoKCkpOwotICAg
IGlmIChzdHlsZS5jbGlwUGF0aCgpLT50eXBlKCkgPT0gQ2xpcFBhdGhPcGVyYXRpb246OlNoYXBl
KSB7Ci0gICAgICAgIFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24mIGNsaXBwaW5nUGF0aCA9IHRvU2hh
cGVDbGlwUGF0aE9wZXJhdGlvbigqKHN0eWxlLmNsaXBQYXRoKCkpKTsKKyAgICBpZiAoaXM8U2hh
cGVDbGlwUGF0aE9wZXJhdGlvbj4oKnN0eWxlLmNsaXBQYXRoKCkpKSB7CisgICAgICAgIGNvbnN0
IGF1dG8mIGNsaXBQYXRoID0gZG93bmNhc3Q8U2hhcGVDbGlwUGF0aE9wZXJhdGlvbj4oKnN0eWxl
LmNsaXBQYXRoKCkpOwogCi0gICAgICAgIExheW91dFJlY3QgcmVmZXJlbmNlQm94ID0gY29tcHV0
ZVJlZmVyZW5jZUJveChyZW5kZXJlcigpLCBjbGlwcGluZ1BhdGgsIG9mZnNldEZyb21Sb290LCBy
b290UmVsYXRpdmVCb3VuZHMpOworICAgICAgICBMYXlvdXRSZWN0IHJlZmVyZW5jZUJveCA9IGNv
bXB1dGVSZWZlcmVuY2VCb3gocmVuZGVyZXIoKSwgY2xpcFBhdGgsIG9mZnNldEZyb21Sb290LCBy
b290UmVsYXRpdmVCb3VuZHMpOwogICAgICAgICBjb250ZXh0LT5zYXZlKCk7Ci0gICAgICAgIGNv
bnRleHQtPmNsaXBQYXRoKGNsaXBwaW5nUGF0aC5wYXRoRm9yUmVmZXJlbmNlUmVjdChyZWZlcmVu
Y2VCb3gpLCBjbGlwcGluZ1BhdGgud2luZFJ1bGUoKSk7CisgICAgICAgIGNvbnRleHQtPmNsaXBQ
YXRoKGNsaXBQYXRoLnBhdGhGb3JSZWZlcmVuY2VSZWN0KHJlZmVyZW5jZUJveCksIGNsaXBQYXRo
LndpbmRSdWxlKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAoc3R5
bGUuY2xpcFBhdGgoKS0+dHlwZSgpID09IENsaXBQYXRoT3BlcmF0aW9uOjpCb3ggJiYgcmVuZGVy
ZXIoKS5pc0JveCgpKSB7Ci0gICAgICAgIEJveENsaXBQYXRoT3BlcmF0aW9uJiBjbGlwcGluZ1Bh
dGggPSB0b0JveENsaXBQYXRoT3BlcmF0aW9uKCooc3R5bGUuY2xpcFBhdGgoKSkpOworICAgIGlm
IChpczxCb3hDbGlwUGF0aE9wZXJhdGlvbj4oKnN0eWxlLmNsaXBQYXRoKCkpICYmIGlzPFJlbmRl
ckJveD4ocmVuZGVyZXIoKSkpIHsKKyAgICAgICAgY29uc3QgYXV0byYgY2xpcFBhdGggPSBkb3du
Y2FzdDxCb3hDbGlwUGF0aE9wZXJhdGlvbj4oKnN0eWxlLmNsaXBQYXRoKCkpOwogCi0gICAgICAg
IFJvdW5kZWRSZWN0IHNoYXBlUmVjdCA9IGNvbXB1dGVSb3VuZGVkUmVjdEZvckJveFNoYXBlKGNs
aXBwaW5nUGF0aC5yZWZlcmVuY2VCb3goKSwgdG9SZW5kZXJCb3gocmVuZGVyZXIoKSkpOworICAg
ICAgICBSb3VuZGVkUmVjdCBzaGFwZVJlY3QgPSBjb21wdXRlUm91bmRlZFJlY3RGb3JCb3hTaGFw
ZShjbGlwUGF0aC5yZWZlcmVuY2VCb3goKSwgZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcigp
KSk7CiAgICAgICAgIHNoYXBlUmVjdC5tb3ZlKG9mZnNldEZyb21Sb290KTsKIAogICAgICAgICBj
b250ZXh0LT5zYXZlKCk7Ci0gICAgICAgIGNvbnRleHQtPmNsaXBQYXRoKGNsaXBwaW5nUGF0aC5w
YXRoRm9yUmVmZXJlbmNlUmVjdChzaGFwZVJlY3QpLCBSVUxFX05PTlpFUk8pOworICAgICAgICBj
b250ZXh0LT5jbGlwUGF0aChjbGlwUGF0aC5wYXRoRm9yUmVmZXJlbmNlUmVjdChzaGFwZVJlY3Qp
LCBSVUxFX05PTlpFUk8pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwCmlu
ZGV4IGViNmI4OWI1ZTBhZDRmZmI4M2UxYmZmMTg3YzFjYjY3OWY4ZmQ3YTIuLjE3NjhhNjA0OGMy
NGNhNzVhYmFjZTcwNjVlYWViOTczOTcxZjVhZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMTM2LDggKzEzNiw4
IEBAIHZvaWQgU1ZHUmVuZGVyaW5nQ29udGV4dDo6cHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudChS
ZW5kZXJFbGVtZW50JiByZW5kZXJlciwgUGFpCiAgICAgfQogCiAgICAgQ2xpcFBhdGhPcGVyYXRp
b24qIGNsaXBQYXRoT3BlcmF0aW9uID0gc3R5bGUuY2xpcFBhdGgoKTsKLSAgICBpZiAoY2xpcFBh
dGhPcGVyYXRpb24gJiYgY2xpcFBhdGhPcGVyYXRpb24tPnR5cGUoKSA9PSBDbGlwUGF0aE9wZXJh
dGlvbjo6U2hhcGUpIHsKLSAgICAgICAgU2hhcGVDbGlwUGF0aE9wZXJhdGlvbiYgY2xpcFBhdGgg
PSB0b1NoYXBlQ2xpcFBhdGhPcGVyYXRpb24oKmNsaXBQYXRoT3BlcmF0aW9uKTsKKyAgICBpZiAo
aXM8U2hhcGVDbGlwUGF0aE9wZXJhdGlvbj4oY2xpcFBhdGhPcGVyYXRpb24pKSB7CisgICAgICAg
IGNvbnN0IGF1dG8mIGNsaXBQYXRoID0gZG93bmNhc3Q8U2hhcGVDbGlwUGF0aE9wZXJhdGlvbj4o
KmNsaXBQYXRoT3BlcmF0aW9uKTsKICAgICAgICAgRmxvYXRSZWN0IHJlZmVyZW5jZUJveDsKICAg
ICAgICAgaWYgKGNsaXBQYXRoLnJlZmVyZW5jZUJveCgpID09IFN0cm9rZSkKICAgICAgICAgICAg
IC8vIEZJWE1FOiBzdHJva2VCb3VuZGluZ0JveCgpIHRha2VzIGRhc2hhcnJheSBpbnRvIGFjY291
bnQgYnV0IHNob3VsZG4ndC4K
</data>

          </attachment>
      

    </bug>

</bugzilla>