<?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>128915</bug_id>
          
          <creation_ts>2014-02-17 09:38:40 -0800</creation_ts>
          <short_desc>Add type-checked casts for StyleImage and subclasses</short_desc>
          <delta_ts>2014-02-18 13:22:12 -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>CSS</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>128671</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dino</cc>
    
    <cc>dstockwell</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>981509</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-02-17 09:38:40 -0800</bug_when>
    <thetext>Add type-checked casts for StyleImage and its subclasses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981510</commentid>
    <comment_count>1</comment_count>
      <attachid>224390</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-02-17 09:49:50 -0800</bug_when>
    <thetext>Created attachment 224390
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981980</commentid>
    <comment_count>2</comment_count>
      <attachid>224390</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-18 10:47:58 -0800</bug_when>
    <thetext>Comment on attachment 224390
Patch v1

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

Sweet patch, just some stylistic comments.

&gt; Source/WebCore/css/CSSCursorImageValue.cpp:198
&gt; +    return toStyleCachedImage(m_image.get())-&gt;cachedImage()-&gt;url();

Since we&apos;re sure that m_image can&apos;t be null, I&apos;d write this like so:
return toStyleCachedImage(*m_image).cachedImage()-&gt;url();

&gt; Source/WebCore/css/CSSImageSetValue.cpp:64
&gt; +        toStyleCachedImageSet(m_imageSet.get())-&gt;clearImageSetValue();

Same here.

&gt; Source/WebCore/css/CSSImageSetValue.cpp:194
&gt; +    CachedResource* cachedResource = toStyleCachedImageSet(m_imageSet.get())-&gt;cachedImage();

And here.

&gt; Source/WebCore/css/CSSImageValue.cpp:108
&gt; +    CachedResource* cachedResource = toStyleCachedImage(m_image.get())-&gt;cachedImage();

And here.

&gt; Source/WebCore/rendering/style/StyleImage.h:97
&gt; +    TYPE_CASTS_BASE(ToClassName, FromClassName, resource, resource-&gt;predicate(), resource.predicate())

Not that it matters much, but &quot;resource&quot; seems like a strange name for what&apos;s being passed around here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981981</commentid>
    <comment_count>3</comment_count>
      <attachid>224390</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-18 10:47:59 -0800</bug_when>
    <thetext>Comment on attachment 224390
Patch v1

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

Sweet patch, just some stylistic comments.

&gt; Source/WebCore/css/CSSCursorImageValue.cpp:198
&gt; +    return toStyleCachedImage(m_image.get())-&gt;cachedImage()-&gt;url();

Since we&apos;re sure that m_image can&apos;t be null, I&apos;d write this like so:
return toStyleCachedImage(*m_image).cachedImage()-&gt;url();

&gt; Source/WebCore/css/CSSImageSetValue.cpp:64
&gt; +        toStyleCachedImageSet(m_imageSet.get())-&gt;clearImageSetValue();

Same here.

&gt; Source/WebCore/css/CSSImageSetValue.cpp:194
&gt; +    CachedResource* cachedResource = toStyleCachedImageSet(m_imageSet.get())-&gt;cachedImage();

And here.

&gt; Source/WebCore/css/CSSImageValue.cpp:108
&gt; +    CachedResource* cachedResource = toStyleCachedImage(m_image.get())-&gt;cachedImage();

And here.

&gt; Source/WebCore/rendering/style/StyleImage.h:97
&gt; +    TYPE_CASTS_BASE(ToClassName, FromClassName, resource, resource-&gt;predicate(), resource.predicate())

Not that it matters much, but &quot;resource&quot; seems like a strange name for what&apos;s being passed around here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981990</commentid>
    <comment_count>4</comment_count>
      <attachid>224390</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-18 11:05:25 -0800</bug_when>
    <thetext>Comment on attachment 224390
Patch v1

Clearing flags on attachment: 224390

Committed r164298: &lt;http://trac.webkit.org/changeset/164298&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981991</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-18 11:05:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982060</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-02-18 13:22:12 -0800</bug_when>
    <thetext>Addressed style issues in Comment #3 in:

Committed r164310: &lt;http://trac.webkit.org/changeset/164310&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224390</attachid>
            <date>2014-02-17 09:49:50 -0800</date>
            <delta_ts>2014-02-18 11:05:24 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-128915-20140217094950.patch</filename>
            <type>text/plain</type>
            <size>18120</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0MjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJhNDc0Yjk1NTVhMDM0
MDY1MWRhODljNTFlMTBhN2M1YTgxYTRlMS4uZjBmMDc0NjRlNzViMjRjYzU0ZDVjZDg1NTM2MTA5
MTAzMTFlOGY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQyIEBACiAyMDE0LTAyLTE3ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIHR5cGUtY2hlY2tl
ZCBjYXN0cyBmb3IgU3R5bGVJbWFnZSBhbmQgc3ViY2xhc3NlcworICAgICAgICA8aHR0cDovL3dl
YmtpdC5vcmcvYi8xMjg5MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NDdXJzb3JJbWFnZVZhbHVlOjpkZXRhY2hQZW5kaW5nSW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2VVUkwpOgorICAgICAgICAqIGNz
cy9DU1NJbWFnZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlU2V0VmFs
dWU6OmRldGFjaFBlbmRpbmdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZh
bHVlOjp+Q1NTSW1hZ2VTZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZh
bHVlOjpjYWNoZWRJbWFnZVNldCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNldFZhbHVl
OjpoYXNGYWlsZWRPckNhbmNlbGVkU3VicmVzb3VyY2VzKToKKyAgICAgICAgKiBjc3MvQ1NTSW1h
Z2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVZhbHVlOjpkZXRhY2hQZW5k
aW5nSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1hZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6aGFzRmFpbGVkT3JDYW5jZWxlZFN1
YnJlc291cmNlcyk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdTaGFwZUltYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nSW1hZ2VzKToKKyAgICAgICAgKiBw
YWdlL1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVy
OjpyZXRyaWV2ZVJlc291cmNlc0ZvclByb3BlcnRpZXMpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0
aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJsZW5kRnVu
Yyk6CisgICAgICAgIC0gU3dpdGNoIGZyb20gc3RhdGljX2Nhc3Q8PigpIG9wZXJhdG9ycyB0byB0
b1R5cGVOYW1lKCkgbWV0aG9kcy4KKyAgICAgICAgLSBSZXBsYWNlIDAgd2l0aCBudWxscHRyIHdo
ZXJlIGNvbnZlbmllbnQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJ
bWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlU2V0Lmg6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVJbWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9TdHlsZVBlbmRpbmdJbWFnZS5oOgorICAgICAgICAtIERlZmluZSB0eXBlLWNoZWNrZWQg
Y2FzdCBtYWNyb3MuCisKKzIwMTQtMDItMTcgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxl
LmNvbT4KKwogICAgICAgICBDb3VudGVyQ29udGVudERhdGE6OmNvdW50ZXIoKSBhbmQgSW1hZ2VD
b250ZW50RGF0YTo6aW1hZ2UoKSBzaG91bGQgcmV0dXJuIHJlZmVyZW5jZXMKICAgICAgICAgPGh0
dHA6Ly93ZWJraXQub3JnL2IvMTI4NjcxPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29y
SW1hZ2VWYWx1ZS5jcHAKaW5kZXggNGNjNWU3MWU3ZTk3YjVlNWNjNTY0ZTFhMDkyZmExMWE0OGNj
MTgzYS4uYzY0Njc0NjMzYzQzNjdiYmIxZDNiNWQxNTNhNmJiODhjYmFiMDY5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcApAQCAtNjUsNyArNjUsNyBAQCBD
U1NDdXJzb3JJbWFnZVZhbHVlOjpDU1NDdXJzb3JJbWFnZVZhbHVlKFBhc3NSZWY8Q1NTVmFsdWU+
IGltYWdlVmFsdWUsIGJvb2wgaGFzSAogaW5saW5lIHZvaWQgQ1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6
ZGV0YWNoUGVuZGluZ0ltYWdlKCkKIHsKICAgICBpZiAobV9pbWFnZSAmJiBtX2ltYWdlLT5pc1Bl
bmRpbmdJbWFnZSgpKQotICAgICAgICBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSY+KCpt
X2ltYWdlKS5kZXRhY2hGcm9tQ1NTVmFsdWUoKTsKKyAgICAgICAgdG9TdHlsZVBlbmRpbmdJbWFn
ZSgqbV9pbWFnZSkuZGV0YWNoRnJvbUNTU1ZhbHVlKCk7CiB9CiAKIENTU0N1cnNvckltYWdlVmFs
dWU6On5DU1NDdXJzb3JJbWFnZVZhbHVlKCkKQEAgLTE2MSw5ICsxNjEsOSBAQCBTdHlsZUltYWdl
KiBDU1NDdXJzb3JJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciog
bG9hZGVyKQogICAgIH0KIAogICAgIGlmIChtX2ltYWdlICYmIG1faW1hZ2UtPmlzQ2FjaGVkSW1h
Z2UoKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFN0eWxlQ2FjaGVkSW1hZ2UqPihtX2lt
YWdlLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHRvU3R5bGVDYWNoZWRJbWFnZShtX2ltYWdlLmdl
dCgpKTsKIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBTdHlsZUlt
YWdlKiBDU1NDdXJzb3JJbWFnZVZhbHVlOjpjYWNoZWRPclBlbmRpbmdJbWFnZShEb2N1bWVudCYg
ZG9jdW1lbnQpCkBAIC0xOTUsNyArMTk1LDcgQEAgU3RyaW5nIENTU0N1cnNvckltYWdlVmFsdWU6
OmNhY2hlZEltYWdlVVJMKCkKIHsKICAgICBpZiAoIW1faW1hZ2UgfHwgIW1faW1hZ2UtPmlzQ2Fj
aGVkSW1hZ2UoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxTdHlsZUNhY2hlZEltYWdlKj4obV9pbWFnZS5nZXQoKSktPmNhY2hlZEltYWdlKCktPnVy
bCgpOworICAgIHJldHVybiB0b1N0eWxlQ2FjaGVkSW1hZ2UobV9pbWFnZS5nZXQoKSktPmNhY2hl
ZEltYWdlKCktPnVybCgpOwogfQogCiB2b2lkIENTU0N1cnNvckltYWdlVmFsdWU6OmNsZWFyQ2Fj
aGVkSW1hZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCmluZGV4IGIw
MzFjYzJlZTFiMzI3M2IwNDM3OTU3ZjRiMmUzZDUzNjNiYjkzY2YuLjc2NjExMjI2ODViODJkZjZk
ZWNmMTllYjdmOWNjZDk2YjFjNzc2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZVNldFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRW
YWx1ZS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgQ1NTSW1hZ2VTZXRWYWx1ZTo6Q1NTSW1hZ2VTZXRW
YWx1ZSgpCiBpbmxpbmUgdm9pZCBDU1NJbWFnZVNldFZhbHVlOjpkZXRhY2hQZW5kaW5nSW1hZ2Uo
KQogewogICAgIGlmIChtX2ltYWdlU2V0ICYmIG1faW1hZ2VTZXQtPmlzUGVuZGluZ0ltYWdlKCkp
Ci0gICAgICAgIHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ0ltYWdlJj4oKm1faW1hZ2VTZXQpLmRl
dGFjaEZyb21DU1NWYWx1ZSgpOworICAgICAgICB0b1N0eWxlUGVuZGluZ0ltYWdlKCptX2ltYWdl
U2V0KS5kZXRhY2hGcm9tQ1NTVmFsdWUoKTsKIH0KIAogQ1NTSW1hZ2VTZXRWYWx1ZTo6fkNTU0lt
YWdlU2V0VmFsdWUoKQpAQCAtNjEsNyArNjEsNyBAQCBDU1NJbWFnZVNldFZhbHVlOjp+Q1NTSW1h
Z2VTZXRWYWx1ZSgpCiAgICAgZGV0YWNoUGVuZGluZ0ltYWdlKCk7CiAKICAgICBpZiAobV9pbWFn
ZVNldCAmJiBtX2ltYWdlU2V0LT5pc0NhY2hlZEltYWdlU2V0KCkpCi0gICAgICAgIHN0YXRpY19j
YXN0PFN0eWxlQ2FjaGVkSW1hZ2VTZXQqPihtX2ltYWdlU2V0LmdldCgpKS0+Y2xlYXJJbWFnZVNl
dFZhbHVlKCk7CisgICAgICAgIHRvU3R5bGVDYWNoZWRJbWFnZVNldChtX2ltYWdlU2V0LmdldCgp
KS0+Y2xlYXJJbWFnZVNldFZhbHVlKCk7CiB9CiAKIHZvaWQgQ1NTSW1hZ2VTZXRWYWx1ZTo6Zmls
bEltYWdlU2V0KCkKQEAgLTEzMCw3ICsxMzAsNyBAQCBTdHlsZUNhY2hlZEltYWdlU2V0KiBDU1NJ
bWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNldChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZAog
ICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIChtX2ltYWdlU2V0ICYmIG1faW1hZ2VTZXQt
PmlzQ2FjaGVkSW1hZ2VTZXQoKSkgPyBzdGF0aWNfY2FzdDxTdHlsZUNhY2hlZEltYWdlU2V0Kj4o
bV9pbWFnZVNldC5nZXQoKSkgOiAwOworICAgIHJldHVybiAobV9pbWFnZVNldCAmJiBtX2ltYWdl
U2V0LT5pc0NhY2hlZEltYWdlU2V0KCkpID8gdG9TdHlsZUNhY2hlZEltYWdlU2V0KG1faW1hZ2VT
ZXQuZ2V0KCkpIDogbnVsbHB0cjsKIH0KIAogU3R5bGVDYWNoZWRJbWFnZVNldCogQ1NTSW1hZ2VT
ZXRWYWx1ZTo6Y2FjaGVkSW1hZ2VTZXQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKQEAg
LTE5MSw3ICsxOTEsNyBAQCBib29sIENTU0ltYWdlU2V0VmFsdWU6Omhhc0ZhaWxlZE9yQ2FuY2Vs
ZWRTdWJyZXNvdXJjZXMoKSBjb25zdAogewogICAgIGlmICghbV9pbWFnZVNldCB8fCAhbV9pbWFn
ZVNldC0+aXNDYWNoZWRJbWFnZVNldCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgQ2Fj
aGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gc3RhdGljX2Nhc3Q8U3R5bGVDYWNoZWRJbWFn
ZVNldCo+KG1faW1hZ2VTZXQuZ2V0KCkpLT5jYWNoZWRJbWFnZSgpOworICAgIENhY2hlZFJlc291
cmNlKiBjYWNoZWRSZXNvdXJjZSA9IHRvU3R5bGVDYWNoZWRJbWFnZVNldChtX2ltYWdlU2V0Lmdl
dCgpKS0+Y2FjaGVkSW1hZ2UoKTsKICAgICBpZiAoIWNhY2hlZFJlc291cmNlKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICByZXR1cm4gY2FjaGVkUmVzb3VyY2UtPmxvYWRGYWlsZWRPckNhbmNl
bGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKaW5kZXggNTQ0MDI1NzE5YjJi
OTVhMjBiMDFkZGY3ZGNhZGFhMzI4NDBlODc3Ny4uMDlkN2RhMGRlOTJmZWFiODNkNzcwZWE0MDZh
YWZhYzIxYTQ2MWRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcApAQCAtNTUs
NyArNTUsNyBAQCBDU1NJbWFnZVZhbHVlOjpDU1NJbWFnZVZhbHVlKGNvbnN0IFN0cmluZyYgdXJs
LCBTdHlsZUltYWdlKiBpbWFnZSkKIGlubGluZSB2b2lkIENTU0ltYWdlVmFsdWU6OmRldGFjaFBl
bmRpbmdJbWFnZSgpCiB7CiAgICAgaWYgKG1faW1hZ2UgJiYgbV9pbWFnZS0+aXNQZW5kaW5nSW1h
Z2UoKSkKLSAgICAgICAgc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UmPigqbV9pbWFnZSku
ZGV0YWNoRnJvbUNTU1ZhbHVlKCk7CisgICAgICAgIHRvU3R5bGVQZW5kaW5nSW1hZ2UoKm1faW1h
Z2UpLmRldGFjaEZyb21DU1NWYWx1ZSgpOwogfQogCiBDU1NJbWFnZVZhbHVlOjp+Q1NTSW1hZ2VW
YWx1ZSgpCkBAIC05Myw3ICs5Myw3IEBAIFN0eWxlQ2FjaGVkSW1hZ2UqIENTU0ltYWdlVmFsdWU6
OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIGNvbnN0CiAgICAgICAg
IH0KICAgICB9CiAKLSAgICByZXR1cm4gKG1faW1hZ2UgJiYgbV9pbWFnZS0+aXNDYWNoZWRJbWFn
ZSgpKSA/IHN0YXRpY19jYXN0PFN0eWxlQ2FjaGVkSW1hZ2UqPihtX2ltYWdlLmdldCgpKSA6IDA7
CisgICAgcmV0dXJuIChtX2ltYWdlICYmIG1faW1hZ2UtPmlzQ2FjaGVkSW1hZ2UoKSkgPyB0b1N0
eWxlQ2FjaGVkSW1hZ2UobV9pbWFnZS5nZXQoKSkgOiBudWxscHRyOwogfQogCiBTdHlsZUNhY2hl
ZEltYWdlKiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciog
bG9hZGVyKQpAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wgQ1NTSW1hZ2VWYWx1ZTo6aGFzRmFpbGVk
T3JDYW5jZWxlZFN1YnJlc291cmNlcygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ltYWdlIHx8ICFt
X2ltYWdlLT5pc0NhY2hlZEltYWdlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBDYWNo
ZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBzdGF0aWNfY2FzdDxTdHlsZUNhY2hlZEltYWdl
Kj4obV9pbWFnZS5nZXQoKSktPmNhY2hlZEltYWdlKCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIGNh
Y2hlZFJlc291cmNlID0gdG9TdHlsZUNhY2hlZEltYWdlKG1faW1hZ2UuZ2V0KCkpLT5jYWNoZWRJ
bWFnZSgpOwogICAgIGlmICghY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIHJldHVybiBjYWNoZWRSZXNvdXJjZS0+bG9hZEZhaWxlZE9yQ2FuY2VsZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBlYzMzZTc5YmJjZTBjNGI4YjZiZDY3OTQ5
NjQyNjA5OGZhZWVjMjU4Li5mMThkZWVmM2NlMjdmNjQ4NjFkYWU0MTZlYmU5MjIxYTBjNGQyMGQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0zNTE0LDcgKzM1MTQsNyBA
QCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nU2hhcGVJbWFnZShTaGFwZVZhbHVlKiBz
aGFwZVZhbHVlKQogICAgIGlmICghaW1hZ2UgfHwgIWltYWdlLT5pc1BlbmRpbmdJbWFnZSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBTdHlsZVBlbmRpbmdJbWFnZSogcGVuZGluZ0ltYWdlID0g
c3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihpbWFnZSk7CisgICAgU3R5bGVQZW5kaW5n
SW1hZ2UqIHBlbmRpbmdJbWFnZSA9IHRvU3R5bGVQZW5kaW5nSW1hZ2UoaW1hZ2UpOwogCiAgICAg
UmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVm
YXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOwogICAgIG9wdGlvbnMucmVxdWVzdE9yaWdpblBv
bGljeSA9IFBvdGVudGlhbGx5Q3Jvc3NPcmlnaW5FbmFibGVkOwpAQCAtMzUzNyw3ICszNTM3LDcg
QEAgdm9pZCBTdHlsZVJlc29sdmVyOjpsb2FkUGVuZGluZ0ltYWdlcygpCiAgICAgICAgIGNhc2Ug
Q1NTUHJvcGVydHlCYWNrZ3JvdW5kSW1hZ2U6IHsKICAgICAgICAgICAgIGZvciAoRmlsbExheWVy
KiBiYWNrZ3JvdW5kTGF5ZXIgPSBtX3N0YXRlLnN0eWxlKCktPmFjY2Vzc0JhY2tncm91bmRMYXll
cnMoKTsgYmFja2dyb3VuZExheWVyOyBiYWNrZ3JvdW5kTGF5ZXIgPSBiYWNrZ3JvdW5kTGF5ZXIt
Pm5leHQoKSkgewogICAgICAgICAgICAgICAgIGlmIChiYWNrZ3JvdW5kTGF5ZXItPmltYWdlKCkg
JiYgYmFja2dyb3VuZExheWVyLT5pbWFnZSgpLT5pc1BlbmRpbmdJbWFnZSgpKQotICAgICAgICAg
ICAgICAgICAgICBiYWNrZ3JvdW5kTGF5ZXItPnNldEltYWdlKGxvYWRQZW5kaW5nSW1hZ2Uoc3Rh
dGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2UqPihiYWNrZ3JvdW5kTGF5ZXItPmltYWdlKCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRMYXllci0+c2V0SW1hZ2UobG9hZFBlbmRp
bmdJbWFnZSh0b1N0eWxlUGVuZGluZ0ltYWdlKGJhY2tncm91bmRMYXllci0+aW1hZ2UoKSkpKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zNTQ2LDcg
KzM1NDYsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nSW1hZ2VzKCkKICAgICAg
ICAgICAgICAgICBpZiAoY29udGVudERhdGEtPmlzSW1hZ2UoKSkgewogICAgICAgICAgICAgICAg
ICAgICBhdXRvJiBzdHlsZUltYWdlID0gdG9JbWFnZUNvbnRlbnREYXRhKGNvbnRlbnREYXRhKS0+
aW1hZ2UoKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKHN0eWxlSW1hZ2UuaXNQZW5kaW5nSW1h
Z2UoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFN0eWxlSW1hZ2U+IGxvYWRl
ZEltYWdlID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+
KGNvbnN0X2Nhc3Q8U3R5bGVJbWFnZSo+KCZzdHlsZUltYWdlKSkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgUmVmUHRyPFN0eWxlSW1hZ2U+IGxvYWRlZEltYWdlID0gbG9hZFBlbmRpbmdJbWFn
ZSh0b1N0eWxlUGVuZGluZ0ltYWdlKGNvbnN0X2Nhc3Q8U3R5bGVJbWFnZSo+KCZzdHlsZUltYWdl
KSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxvYWRlZEltYWdlKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRvSW1hZ2VDb250ZW50RGF0YShjb250ZW50RGF0YSktPnNldElt
YWdlKGxvYWRlZEltYWdlLnJlbGVhc2UoKSk7CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTM1
NjAsNyArMzU2MCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdJbWFnZXMoKQog
ICAgICAgICAgICAgICAgICAgICBDdXJzb3JEYXRhJiBjdXJyZW50Q3Vyc29yID0gY3Vyc29yTGlz
dC0+YXQoaSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChTdHlsZUltYWdlKiBpbWFnZSA9IGN1
cnJlbnRDdXJzb3IuaW1hZ2UoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGltYWdl
LT5pc1BlbmRpbmdJbWFnZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRD
dXJzb3Iuc2V0SW1hZ2UobG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJ
bWFnZSo+KGltYWdlKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDdXJz
b3Iuc2V0SW1hZ2UobG9hZFBlbmRpbmdJbWFnZSh0b1N0eWxlUGVuZGluZ0ltYWdlKGltYWdlKSkp
OwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQpAQCAtMzU2OCwxOSArMzU2OCwxOSBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5n
SW1hZ2VzKCkKICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5TGlzdFN0eWxlSW1h
Z2U6IHsKICAgICAgICAgICAgIGlmIChtX3N0YXRlLnN0eWxlKCktPmxpc3RTdHlsZUltYWdlKCkg
JiYgbV9zdGF0ZS5zdHlsZSgpLT5saXN0U3R5bGVJbWFnZSgpLT5pc1BlbmRpbmdJbWFnZSgpKQot
ICAgICAgICAgICAgICAgIG1fc3RhdGUuc3R5bGUoKS0+c2V0TGlzdFN0eWxlSW1hZ2UobG9hZFBl
bmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KG1fc3RhdGUuc3R5bGUo
KS0+bGlzdFN0eWxlSW1hZ2UoKSkpKTsKKyAgICAgICAgICAgICAgICBtX3N0YXRlLnN0eWxlKCkt
PnNldExpc3RTdHlsZUltYWdlKGxvYWRQZW5kaW5nSW1hZ2UodG9TdHlsZVBlbmRpbmdJbWFnZSht
X3N0YXRlLnN0eWxlKCktPmxpc3RTdHlsZUltYWdlKCkpKSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVySW1hZ2VTb3VyY2U6IHsK
ICAgICAgICAgICAgIGlmIChtX3N0YXRlLnN0eWxlKCktPmJvcmRlckltYWdlU291cmNlKCkgJiYg
bV9zdGF0ZS5zdHlsZSgpLT5ib3JkZXJJbWFnZVNvdXJjZSgpLT5pc1BlbmRpbmdJbWFnZSgpKQot
ICAgICAgICAgICAgICAgIG1fc3RhdGUuc3R5bGUoKS0+c2V0Qm9yZGVySW1hZ2VTb3VyY2UobG9h
ZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KG1fc3RhdGUuc3R5
bGUoKS0+Ym9yZGVySW1hZ2VTb3VyY2UoKSkpKTsKKyAgICAgICAgICAgICAgICBtX3N0YXRlLnN0
eWxlKCktPnNldEJvcmRlckltYWdlU291cmNlKGxvYWRQZW5kaW5nSW1hZ2UodG9TdHlsZVBlbmRp
bmdJbWFnZShtX3N0YXRlLnN0eWxlKCktPmJvcmRlckltYWdlU291cmNlKCkpKSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Qm94
UmVmbGVjdDogewogICAgICAgICAgICAgaWYgKFN0eWxlUmVmbGVjdGlvbiogcmVmbGVjdGlvbiA9
IG1fc3RhdGUuc3R5bGUoKS0+Ym94UmVmbGVjdCgpKSB7CiAgICAgICAgICAgICAgICAgY29uc3Qg
TmluZVBpZWNlSW1hZ2UmIG1hc2tJbWFnZSA9IHJlZmxlY3Rpb24tPm1hc2soKTsKICAgICAgICAg
ICAgICAgICBpZiAobWFza0ltYWdlLmltYWdlKCkgJiYgbWFza0ltYWdlLmltYWdlKCktPmlzUGVu
ZGluZ0ltYWdlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFN0eWxlSW1hZ2U+IGxv
YWRlZEltYWdlID0gbG9hZFBlbmRpbmdJbWFnZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFn
ZSo+KG1hc2tJbWFnZS5pbWFnZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxTdHls
ZUltYWdlPiBsb2FkZWRJbWFnZSA9IGxvYWRQZW5kaW5nSW1hZ2UodG9TdHlsZVBlbmRpbmdJbWFn
ZShtYXNrSW1hZ2UuaW1hZ2UoKSkpOwogICAgICAgICAgICAgICAgICAgICByZWZsZWN0aW9uLT5z
ZXRNYXNrKE5pbmVQaWVjZUltYWdlKGxvYWRlZEltYWdlLnJlbGVhc2UoKSwgbWFza0ltYWdlLmlt
YWdlU2xpY2VzKCksIG1hc2tJbWFnZS5maWxsKCksIG1hc2tJbWFnZS5ib3JkZXJTbGljZXMoKSwg
bWFza0ltYWdlLm91dHNldCgpLCBtYXNrSW1hZ2UuaG9yaXpvbnRhbFJ1bGUoKSwgbWFza0ltYWdl
LnZlcnRpY2FsUnVsZSgpKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAt
MzU4OCwxMyArMzU4OCwxMyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nSW1hZ2Vz
KCkKICAgICAgICAgfQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFza0JveEltYWdl
U291cmNlOiB7CiAgICAgICAgICAgICBpZiAobV9zdGF0ZS5zdHlsZSgpLT5tYXNrQm94SW1hZ2VT
b3VyY2UoKSAmJiBtX3N0YXRlLnN0eWxlKCktPm1hc2tCb3hJbWFnZVNvdXJjZSgpLT5pc1BlbmRp
bmdJbWFnZSgpKQotICAgICAgICAgICAgICAgIG1fc3RhdGUuc3R5bGUoKS0+c2V0TWFza0JveElt
YWdlU291cmNlKGxvYWRQZW5kaW5nSW1hZ2Uoc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nSW1hZ2Uq
PihtX3N0YXRlLnN0eWxlKCktPm1hc2tCb3hJbWFnZVNvdXJjZSgpKSkpOworICAgICAgICAgICAg
ICAgIG1fc3RhdGUuc3R5bGUoKS0+c2V0TWFza0JveEltYWdlU291cmNlKGxvYWRQZW5kaW5nSW1h
Z2UodG9TdHlsZVBlbmRpbmdJbWFnZShtX3N0YXRlLnN0eWxlKCktPm1hc2tCb3hJbWFnZVNvdXJj
ZSgpKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdE1hc2tJbWFnZTogewogICAgICAgICAgICAgZm9yIChGaWxsTGF5ZXIqIG1h
c2tMYXllciA9IG1fc3RhdGUuc3R5bGUoKS0+YWNjZXNzTWFza0xheWVycygpOyBtYXNrTGF5ZXI7
IG1hc2tMYXllciA9IG1hc2tMYXllci0+bmV4dCgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKG1h
c2tMYXllci0+aW1hZ2UoKSAmJiBtYXNrTGF5ZXItPmltYWdlKCktPmlzUGVuZGluZ0ltYWdlKCkp
Ci0gICAgICAgICAgICAgICAgICAgIG1hc2tMYXllci0+c2V0SW1hZ2UobG9hZFBlbmRpbmdJbWFn
ZShzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdJbWFnZSo+KG1hc2tMYXllci0+aW1hZ2UoKSkpKTsK
KyAgICAgICAgICAgICAgICAgICAgbWFza0xheWVyLT5zZXRJbWFnZShsb2FkUGVuZGluZ0ltYWdl
KHRvU3R5bGVQZW5kaW5nSW1hZ2UobWFza0xheWVyLT5pbWFnZSgpKSkpOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2Vy
aWFsaXplci5jcHAKaW5kZXggNTVlZWFhOTQyZjQ4OGM0NmMwNmVmM2ZiNjcxZGY3OWYzY2IyNGZm
Ny4uYjcyMWE2NDdkZTQ1MTAxMWY2YmQ4YzgxODNkYzViNjA5NWVjZjQ3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKQEAgLTMzNSw3ICszMzUsNyBAQCB2b2lkIFBhZ2VT
ZXJpYWxpemVyOjpyZXRyaWV2ZVJlc291cmNlc0ZvclByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9w
ZXJ0aWVzKiBzdHlsZQogICAgICAgICBpZiAoIXN0eWxlSW1hZ2UgfHwgIXN0eWxlSW1hZ2UtPmlz
Q2FjaGVkSW1hZ2UoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIENhY2hlZElt
YWdlKiBpbWFnZSA9IHN0YXRpY19jYXN0PFN0eWxlQ2FjaGVkSW1hZ2UqPihzdHlsZUltYWdlKS0+
Y2FjaGVkSW1hZ2UoKTsKKyAgICAgICAgQ2FjaGVkSW1hZ2UqIGltYWdlID0gdG9TdHlsZUNhY2hl
ZEltYWdlKHN0eWxlSW1hZ2UpLT5jYWNoZWRJbWFnZSgpOwogCiAgICAgICAgIFVSTCB1cmwgPSBk
b2N1bWVudC0+Y29tcGxldGVVUkwoaW1hZ2UtPnVybCgpKTsKICAgICAgICAgYWRkSW1hZ2VUb1Jl
c291cmNlcyhpbWFnZSwgMCwgdXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAppbmRleCA3ZTExOWM0NWQzYTBhZjNl
Y2RiODU0NWEyYjZkYmE5ODQ0YzQ2ZjM3Li5mZWY3MDJmMDJhMzY4MzU4ZDUxZjNhNDY0MzQyYmI1
M2VkOGU0YjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
Q1NTUHJvcGVydHlBbmltYXRpb24uY3BwCkBAIC0zMjQsNyArMzI0LDcgQEAgc3RhdGljIGlubGlu
ZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBh
bmltLCBTdHlsZUkKICAgICAgICAgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYgZnJvbUdlbmVyYXRl
ZCA9IHRvU3R5bGVHZW5lcmF0ZWRJbWFnZShmcm9tKS0+aW1hZ2VWYWx1ZSgpOwogICAgICAgICBp
ZiAoZnJvbUdlbmVyYXRlZC5pc0ZpbHRlckltYWdlVmFsdWUoKSkgewogICAgICAgICAgICAgQ1NT
RmlsdGVySW1hZ2VWYWx1ZSYgZnJvbUZpbHRlciA9IHRvQ1NTRmlsdGVySW1hZ2VWYWx1ZShmcm9t
R2VuZXJhdGVkKTsKLSAgICAgICAgICAgIGlmIChmcm9tRmlsdGVyLmNhY2hlZEltYWdlKCkgJiYg
c3RhdGljX2Nhc3Q8U3R5bGVDYWNoZWRJbWFnZSo+KHRvKS0+Y2FjaGVkSW1hZ2UoKSA9PSBmcm9t
RmlsdGVyLmNhY2hlZEltYWdlKCkpCisgICAgICAgICAgICBpZiAoZnJvbUZpbHRlci5jYWNoZWRJ
bWFnZSgpICYmIHRvU3R5bGVDYWNoZWRJbWFnZSh0byktPmNhY2hlZEltYWdlKCkgPT0gZnJvbUZp
bHRlci5jYWNoZWRJbWFnZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBibGVuZEZpbHRlcihh
bmltLCBmcm9tRmlsdGVyLmNhY2hlZEltYWdlKCksIGZyb21GaWx0ZXIuZmlsdGVyT3BlcmF0aW9u
cygpLCBGaWx0ZXJPcGVyYXRpb25zKCksIHByb2dyZXNzKTsKICAgICAgICAgfQogICAgICAgICAv
LyBGSVhNRTogQWRkIGludGVycG9sYXRpb24gYmV0d2VlbiBjcm9zcy1mYWRlIGFuZCBpbWFnZSBz
b3VyY2UuCkBAIC0zMzIsNyArMzMyLDcgQEAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0eWxl
SW1hZ2U+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBTdHlsZUkKICAgICAg
ICAgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYgdG9HZW5lcmF0ZWQgPSB0b1N0eWxlR2VuZXJhdGVk
SW1hZ2UodG8pLT5pbWFnZVZhbHVlKCk7CiAgICAgICAgIGlmICh0b0dlbmVyYXRlZC5pc0ZpbHRl
ckltYWdlVmFsdWUoKSkgewogICAgICAgICAgICAgQ1NTRmlsdGVySW1hZ2VWYWx1ZSYgdG9GaWx0
ZXIgPSB0b0NTU0ZpbHRlckltYWdlVmFsdWUodG9HZW5lcmF0ZWQpOwotICAgICAgICAgICAgaWYg
KHRvRmlsdGVyLmNhY2hlZEltYWdlKCkgJiYgc3RhdGljX2Nhc3Q8U3R5bGVDYWNoZWRJbWFnZSo+
KGZyb20pLT5jYWNoZWRJbWFnZSgpID09IHRvRmlsdGVyLmNhY2hlZEltYWdlKCkpICAgICAKKyAg
ICAgICAgICAgIGlmICh0b0ZpbHRlci5jYWNoZWRJbWFnZSgpICYmIHRvU3R5bGVDYWNoZWRJbWFn
ZShmcm9tKS0+Y2FjaGVkSW1hZ2UoKSA9PSB0b0ZpbHRlci5jYWNoZWRJbWFnZSgpKSAgICAgCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGJsZW5kRmlsdGVyKGFuaW0sIHRvRmlsdGVyLmNhY2hlZElt
YWdlKCksIEZpbHRlck9wZXJhdGlvbnMoKSwgdG9GaWx0ZXIuZmlsdGVyT3BlcmF0aW9ucygpLCBw
cm9ncmVzcyk7CiAgICAgICAgIH0KICNlbmRpZgpAQCAtMzQyLDcgKzM0Miw3IEBAIHN0YXRpYyBp
bmxpbmUgUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFz
ZSogYW5pbSwgU3R5bGVJCiAgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGNyb3NzIGZhZGUgYmV0
d2VlbiBjYWNoZWQgYW5kIGdlbmVyYXRlZCBpbWFnZXMuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MjkzCiAgICAgaWYgKGZyb20tPmlzQ2FjaGVkSW1h
Z2UoKSAmJiB0by0+aXNDYWNoZWRJbWFnZSgpKQotICAgICAgICByZXR1cm4gY3Jvc3NmYWRlQmxl
bmQoYW5pbSwgc3RhdGljX2Nhc3Q8U3R5bGVDYWNoZWRJbWFnZSo+KGZyb20pLCBzdGF0aWNfY2Fz
dDxTdHlsZUNhY2hlZEltYWdlKj4odG8pLCBwcm9ncmVzcyk7CisgICAgICAgIHJldHVybiBjcm9z
c2ZhZGVCbGVuZChhbmltLCB0b1N0eWxlQ2FjaGVkSW1hZ2UoZnJvbSksIHRvU3R5bGVDYWNoZWRJ
bWFnZSh0byksIHByb2dyZXNzKTsKIAogICAgIHJldHVybiB0bzsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oCmluZGV4IDBlZjQ1ZDJk
NjkxZGM2MTRmNDFiMTFkMGRkMjc1ZTM0MDQ3OThiZDUuLjk1OTQxZmMwNTkxYTQ2MGM5ZDQ5MzA0
NDAwZDBhOTM0NWYzZDA1ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZUNhY2hlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaApAQCAtNjQsNSArNjQsNyBAQCBwcml2YXRlOgogICAgIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBtX2ltYWdlOwogfTsKIAorU1RZTEVfSU1B
R0VfVFlQRV9DQVNUUyhTdHlsZUNhY2hlZEltYWdlLCBTdHlsZUltYWdlLCBpc0NhY2hlZEltYWdl
KQorCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUNhY2hlZEltYWdlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVDYWNoZWRJbWFnZVNldC5oCmluZGV4IGQwYWQ1YzkxMzJlNmM5ZDY4MzY0NTQyNzhjZTc3
NGYyMmJiMjMxYjkuLmNkOWNmNWU0YjM3MzBlOTg2YmEwODllNzUwMDZmNGI0NjgzNTY2NWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdl
U2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1h
Z2VTZXQuaApAQCAtODMsNiArODMsOCBAQCBwcml2YXRlOgogICAgIENTU0ltYWdlU2V0VmFsdWUq
IG1faW1hZ2VTZXRWYWx1ZTsgLy8gTm90IHJldGFpbmVkOyBpdCBvd25zIHVzLgogfTsKIAorU1RZ
TEVfSU1BR0VfVFlQRV9DQVNUUyhTdHlsZUNhY2hlZEltYWdlU2V0LCBTdHlsZUltYWdlLCBpc0Nh
Y2hlZEltYWdlU2V0KQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoQ1NTX0lNQUdFX1NFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oCmluZGV4IDc1NmNhMjE1MjczZWMwNTdiMjMzMzFhMzBi
MjhiMzE0YmMwOTA3NmUuLjQyYTcwNWNlNzM1NzE4NjIzOThkNzlhYmQwNjJkYWE0MWU0M2M2NzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRl
ZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJh
dGVkSW1hZ2UuaApAQCAtNjMsMTEgKzYzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZml4ZWRT
aXplOwogfTsKIAotaW5saW5lIFN0eWxlR2VuZXJhdGVkSW1hZ2UqIHRvU3R5bGVHZW5lcmF0ZWRJ
bWFnZShTdHlsZUltYWdlKiBpbWFnZSkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTighaW1hZ2UgfHwgaW1hZ2UtPmlzR2VuZXJhdGVkSW1hZ2UoKSk7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PFN0eWxlR2VuZXJhdGVkSW1hZ2UqPihpbWFnZSk7Ci19CitTVFlMRV9JTUFH
RV9UWVBFX0NBU1RTKFN0eWxlR2VuZXJhdGVkSW1hZ2UsIFN0eWxlSW1hZ2UsIGlzR2VuZXJhdGVk
SW1hZ2UpCiAKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUltYWdlLmgKaW5kZXggYTBiZDQ1YTZmZWYwZDg1MTdkY2ViNWQxMThkNGFlODA5OGQwYzk0YS4u
ZjJkYzY4ODM2NTQ3MGMyMjBjNzlmZmNiMDE4NzY5NjQzNDkyZDYzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVJbWFnZS5oCkBAIC05Myw1ICs5Myw4IEBAIHByb3Rl
Y3RlZDoKICAgICBib29sIG1faXNDYWNoZWRJbWFnZVNldCA6IDE7CiB9OwogCisjZGVmaW5lIFNU
WUxFX0lNQUdFX1RZUEVfQ0FTVFMoVG9DbGFzc05hbWUsIEZyb21DbGFzc05hbWUsIHByZWRpY2F0
ZSkgXAorICAgIFRZUEVfQ0FTVFNfQkFTRShUb0NsYXNzTmFtZSwgRnJvbUNsYXNzTmFtZSwgcmVz
b3VyY2UsIHJlc291cmNlLT5wcmVkaWNhdGUoKSwgcmVzb3VyY2UucHJlZGljYXRlKCkpCisKIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UGVuZGluZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5k
aW5nSW1hZ2UuaAppbmRleCA2OGNhMWMyMjJlM2YxYTFlZTE2MzRkNTNkN2MwMzE5OGVhMzJmZTI1
Li4wZmExYTRiNjQ2YjMyZDYxOTI0MmJmMTg4M2ZjMjU5MjBkM2I2YjIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaApAQCAtODYs
NiArODYsOCBAQCBwcml2YXRlOgogICAgIENTU1ZhbHVlKiBtX3ZhbHVlOyAvLyBOb3QgcmV0YWlu
ZWQ7IGl0IG93bnMgdXMuCiB9OwogCitTVFlMRV9JTUFHRV9UWVBFX0NBU1RTKFN0eWxlUGVuZGlu
Z0ltYWdlLCBTdHlsZUltYWdlLCBpc1BlbmRpbmdJbWFnZSkKKwogfQogCiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>