<?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>137431</bug_id>
          
          <creation_ts>2014-10-04 22:48:02 -0700</creation_ts>
          <short_desc>Use is&lt;&gt;() / downcast&lt;&gt;() for CachedResource subclasses</short_desc>
          <delta_ts>2014-10-05 17:31:15 -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>Page Loading</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>137056</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>darin</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1039568</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-04 22:48:02 -0700</bug_when>
    <thetext>Use is&lt;&gt;() / downcast&lt;&gt;() for CachedResource subclasses</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039571</commentid>
    <comment_count>1</comment_count>
      <attachid>239293</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-04 23:04:48 -0700</bug_when>
    <thetext>Created attachment 239293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039609</commentid>
    <comment_count>2</comment_count>
      <attachid>239293</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-05 16:06:09 -0700</bug_when>
    <thetext>Comment on attachment 239293
Patch

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

&gt; Source/WebCore/loader/cache/CachedResourceLoader.cpp:708
&gt; +            CachedImage&amp; image = downcast&lt;CachedImage&gt;(*resource);
&gt; +            image.load(this, defaultCachedResourceOptions());

Darin would probably prefer this on one line. Personally I like the named temporary here.

Your call.

&gt; Source/WebKit/mac/Misc/WebCache.mm:205
&gt;      if (!cachedResource || !cachedResource-&gt;isImage())

Why keep this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039620</commentid>
    <comment_count>3</comment_count>
      <attachid>239293</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-05 16:46:40 -0700</bug_when>
    <thetext>Comment on attachment 239293
Patch

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

&gt;&gt; Source/WebCore/loader/cache/CachedResourceLoader.cpp:708
&gt;&gt; +            image.load(this, defaultCachedResourceOptions());
&gt; 
&gt; Darin would probably prefer this on one line. Personally I like the named temporary here.
&gt; 
&gt; Your call.

Will drop the variable.

&gt;&gt; Source/WebKit/mac/Misc/WebCache.mm:205
&gt;&gt;      if (!cachedResource || !cachedResource-&gt;isImage())
&gt; 
&gt; Why keep this?

I missed it, will use is&lt;&gt;()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039621</commentid>
    <comment_count>4</comment_count>
      <attachid>239304</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-05 16:47:22 -0700</bug_when>
    <thetext>Created attachment 239304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039632</commentid>
    <comment_count>5</comment_count>
      <attachid>239304</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-05 17:31:10 -0700</bug_when>
    <thetext>Comment on attachment 239304
Patch

Clearing flags on attachment: 239304

Committed r174333: &lt;http://trac.webkit.org/changeset/174333&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039633</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-05 17:31:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239293</attachid>
            <date>2014-10-04 23:04:48 -0700</date>
            <delta_ts>2014-10-05 16:47:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137431-20141004230449.patch</filename>
            <type>text/plain</type>
            <size>18480</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDk2NTIwOTRmODk1YjM0
NWE3NTk5NjI4YThkN2M3YTZjMzk0YmY4OC4uYjY3NTg1OTE5MTE5Mjg3ZThkM2NhZjhkMTU1NDlh
YjQ4OGJhOGQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTEwLTA0ICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgaXM8PigpIC8g
ZG93bmNhc3Q8PigpIGZvciBDYWNoZWRSZXNvdXJjZSBzdWJjbGFzc2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc0MzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgaXM8PigpIC8gZG93bmNhc3Q8
PigpIGZvciBDYWNoZWRSZXNvdXJjZSBzdWJjbGFzc2VzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hl
ZFJlc291cmNlQ29udGVudCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxl
U2hlZXQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJ
bWFnZTo6c3dpdGNoQ2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSk6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZEltYWdlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RGb250KToK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VGV4dFRyYWNr
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Q1NTU3R5
bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFVzZXJDU1NTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0WFNMU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVxdWVzdFNWR0RvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZWxvYWRJbWFnZXNJZk5vdERlZmVycmVkKToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
Q2FjaGVkU2NyaXB0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5o
OgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0Lmg6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9y
eUNhY2hlOjpyZW1vdmVJbWFnZUZyb21DYWNoZSk6CisKIDIwMTQtMTAtMDQgIERoaSBBdXJyYWht
YW4gIDxkaW9yYWhtYW5Acm9ja3liYXJzLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgRWxlbWVu
dC5jbG9zZXN0KCkgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYTEwYzVmYTEyODc5MzI0ZjIxYzQw
ZTUxODhkOWU5ODk2ZTMxZTlkZi4uOTQ1MTllN2Y2MjA0NTY3M2E0ODVkZjEyOWY1ZmJlOTlhZWJk
YzkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTEwLTA0ICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgaXM8PigpIC8g
ZG93bmNhc3Q8PigpIGZvciBDYWNoZWRSZXNvdXJjZSBzdWJjbGFzc2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc0MzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgaXM8PigpIC8gZG93bmNhc3Q8
PigpIGZvciBDYWNoZWRSZXNvdXJjZSBzdWJjbGFzc2VzLgorCisgICAgICAgICogTWlzYy9XZWJD
YWNoZS5tbToKKyAgICAgICAgKCtbV2ViQ2FjaGUgaW1hZ2VGb3JVUkw6XSk6CisKIDIwMTQtMTAt
MDIgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSB2ZXJz
aW9uIG51bWJlciAxMDEwMDAgaW5zdGVhZCBvZiAxMDEwMCBmb3IgT1MgWCBZb3NlbWl0ZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCA0
MDk5YjI5ZjQzNzE5NjgxYjFjNGY0OGNmN2QxYWUzMjAxNTg0ZDIwLi5mYzNiYzI3ZDE5NDVmMGFi
NjgyZWRhZWRjOTM3MDlmYjQ1NTFiMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMTYyLDEwICsxNjIsMTAgQEAgYm9vbCBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlQ29udGVudChDYWNoZWRSZXNvdXJjZSogY2Fj
aGVkUmVzb3VyY2UsIFMKICAgICBpZiAoY2FjaGVkUmVzb3VyY2UpIHsKICAgICAgICAgc3dpdGNo
IChjYWNoZWRSZXNvdXJjZS0+dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6
OkNTU1N0eWxlU2hlZXQ6Ci0gICAgICAgICAgICAqcmVzdWx0ID0gdG9DYWNoZWRDU1NTdHlsZVNo
ZWV0KGNhY2hlZFJlc291cmNlKS0+c2hlZXRUZXh0KGZhbHNlKTsKKyAgICAgICAgICAgICpyZXN1
bHQgPSBkb3duY2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0PigqY2FjaGVkUmVzb3VyY2UpLnNoZWV0
VGV4dChmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBDYWNo
ZWRSZXNvdXJjZTo6U2NyaXB0OgotICAgICAgICAgICAgKnJlc3VsdCA9IHRvQ2FjaGVkU2NyaXB0
KGNhY2hlZFJlc291cmNlKS0+c2NyaXB0KCk7CisgICAgICAgICAgICAqcmVzdWx0ID0gZG93bmNh
c3Q8Q2FjaGVkU2NyaXB0PigqY2FjaGVkUmVzb3VyY2UpLnNjcmlwdCgpOwogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOiB7
CiAgICAgICAgICAgICBSZXNvdXJjZUJ1ZmZlciogYnVmZmVyID0gY2FjaGVkUmVzb3VyY2UtPnJl
c291cmNlQnVmZmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkQ1NTU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZENTU1N0eWxlU2hlZXQuaAppbmRleCAyMmNlNWFmZWE4NjJkZDg1NmRjZDNiODk3NmRjODU4MDY3
YTY2YzI4Li44MGY5OTRjYjMwMmYyM2I2NTc4MmRkM2Y2MzkyNjNlNmIxYTlhMmQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKQEAg
LTY2LDggKzY2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBSZWZQdHI8U3R5bGVT
aGVldENvbnRlbnRzPiBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZTsKICAgICB9OwogCi1DQUNIRURf
UkVTT1VSQ0VfVFlQRV9DQVNUUyhDYWNoZWRDU1NTdHlsZVNoZWV0LCBDYWNoZWRSZXNvdXJjZSwg
Q2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
LX0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0FDSEVEX1JFU09VUkNFKENhY2hlZENTU1N0eWxl
U2hlZXQsIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0KQogCi0jZW5kaWYKKyNlbmRpZiAv
LyBDYWNoZWRDU1NTdHlsZVNoZWV0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRGb250LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
Rm9udC5oCmluZGV4IDU0ZWNlZDNmNTcxMGUxNzFkM2MxMzkwNmJhOTIxYzI0ZDk0YjZjNTguLmQ5
NDM3MzA1NTA2NDMxOTJjOTY2MzU3MWE1ZmRkNGQyNDA5YmI2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaApAQCAtNzgsOCArNzgsOCBAQCBwcml2YXRlOgogICAg
IGZyaWVuZCBjbGFzcyBNZW1vcnlDYWNoZTsKIH07CiAKLUNBQ0hFRF9SRVNPVVJDRV9UWVBFX0NB
U1RTKENhY2hlZEZvbnQsIENhY2hlZFJlc291cmNlLCBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291
cmNlKQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
Q0FDSEVEX1JFU09VUkNFKENhY2hlZEZvbnQsIENhY2hlZFJlc291cmNlOjpGb250UmVzb3VyY2Up
CisKICNlbmRpZiAvLyBDYWNoZWRGb250X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkSW1hZ2UuY3BwCmluZGV4IDMyN2FlM2ZjMDhjYTM5N2YzY2Q0YmFmMDI0MDQyMmNlYjEx
YWU3MWQuLjZhMWQyYjQ1ZWUyYjM1YzYyNjg2MGE3OTViYTMyODBmMjM0MTM5MjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtMTQ1LDggKzE0NSw3
IEBAIHZvaWQgQ2FjaGVkSW1hZ2U6OmRpZFJlbW92ZUNsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVu
dCogYykKIAogdm9pZCBDYWNoZWRJbWFnZTo6c3dpdGNoQ2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNv
dXJjZSgpCiB7Ci0gICAgQVNTRVJUKHJlc291cmNlVG9SZXZhbGlkYXRlKCkpOwotICAgIEFTU0VS
VChyZXNvdXJjZVRvUmV2YWxpZGF0ZSgpLT5pc0ltYWdlKCkpOworICAgIEFTU0VSVChpczxDYWNo
ZWRJbWFnZT4ocmVzb3VyY2VUb1JldmFsaWRhdGUoKSkpOwogICAgIC8vIFBlbmRpbmcgY29udGFp
bmVyIHNpemUgcmVxdWVzdHMgbmVlZCB0byBiZSB0cmFuc2ZlcnJlZCB0byB0aGUgcmV2YWxpZGF0
ZWQgcmVzb3VyY2UuCiAgICAgaWYgKCFtX3BlbmRpbmdDb250YWluZXJTaXplUmVxdWVzdHMuaXNF
bXB0eSgpKSB7CiAgICAgICAgIC8vIEEgY29weSBvZiBwZW5kaW5nIHNpemUgcmVxdWVzdHMgaXMg
bmVlZGVkIGFzIHRoZXkgYXJlIGRlbGV0ZWQgZHVyaW5nIENhY2hlZFJlc291cmNlOjpzd2l0Y2hD
bGllbnRzVG9SZXZhbGlkYXRlUmVzb3VjZSgpLgpAQCAtMTU0LDkgKzE1Myw5IEBAIHZvaWQgQ2Fj
aGVkSW1hZ2U6OnN3aXRjaENsaWVudHNUb1JldmFsaWRhdGVkUmVzb3VyY2UoKQogICAgICAgICBm
b3IgKENvbnRhaW5lclNpemVSZXF1ZXN0czo6aXRlcmF0b3IgaXQgPSBtX3BlbmRpbmdDb250YWlu
ZXJTaXplUmVxdWVzdHMuYmVnaW4oKTsgaXQgIT0gbV9wZW5kaW5nQ29udGFpbmVyU2l6ZVJlcXVl
c3RzLmVuZCgpOyArK2l0KQogICAgICAgICAgICAgc3dpdGNoQ29udGFpbmVyU2l6ZVJlcXVlc3Rz
LnNldChpdC0+a2V5LCBpdC0+dmFsdWUpOwogICAgICAgICBDYWNoZWRSZXNvdXJjZTo6c3dpdGNo
Q2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSgpOwotICAgICAgICBDYWNoZWRJbWFnZSogcmV2
YWxpZGF0ZWRDYWNoZWRJbWFnZSA9IHRvQ2FjaGVkSW1hZ2UocmVzb3VyY2VUb1JldmFsaWRhdGUo
KSk7CisgICAgICAgIENhY2hlZEltYWdlJiByZXZhbGlkYXRlZENhY2hlZEltYWdlID0gZG93bmNh
c3Q8Q2FjaGVkSW1hZ2U+KCpyZXNvdXJjZVRvUmV2YWxpZGF0ZSgpKTsKICAgICAgICAgZm9yIChD
b250YWluZXJTaXplUmVxdWVzdHM6Oml0ZXJhdG9yIGl0ID0gc3dpdGNoQ29udGFpbmVyU2l6ZVJl
cXVlc3RzLmJlZ2luKCk7IGl0ICE9IHN3aXRjaENvbnRhaW5lclNpemVSZXF1ZXN0cy5lbmQoKTsg
KytpdCkKLSAgICAgICAgICAgIHJldmFsaWRhdGVkQ2FjaGVkSW1hZ2UtPnNldENvbnRhaW5lclNp
emVGb3JSZW5kZXJlcihpdC0+a2V5LCBpdC0+dmFsdWUuZmlyc3QsIGl0LT52YWx1ZS5zZWNvbmQp
OworICAgICAgICAgICAgcmV2YWxpZGF0ZWRDYWNoZWRJbWFnZS5zZXRDb250YWluZXJTaXplRm9y
UmVuZGVyZXIoaXQtPmtleSwgaXQtPnZhbHVlLmZpcnN0LCBpdC0+dmFsdWUuc2Vjb25kKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
SW1hZ2UuaAppbmRleCBjYjRlMmEwMjQ5ZTk4MTliNmYyYzU3Y2JmMWI3ZjcxOTYyYjY5Y2RhLi5m
ZWVmNDUyYzZjZmQzNjcyNDc4OTQ5YzE2YWM2OTA2OTMzMTU0MzM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaApAQCAtODQsMTIgKzg0LDExIEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgaXNNYW51YWxseUNhY2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNNYW51YWxs
eUNhY2hlZDsgfQogICAgIHZpcnR1YWwgYm9vbCBtdXN0UmV2YWxpZGF0ZUR1ZVRvQ2FjaGVIZWFk
ZXJzKENhY2hlUG9saWN5KSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNv
dXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpIG92ZXJyaWRlOwogCiAg
ICAgYm9vbCBpc09yaWdpbkNsZWFuKFNlY3VyaXR5T3JpZ2luKik7CiAKIHByaXZhdGU6Ci0gICAg
dmlydHVhbCB2b2lkIGxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBSZXNvdXJjZUxv
YWRlck9wdGlvbnMmKSBvdmVycmlkZTsKLQogICAgIHZvaWQgY2xlYXIoKTsKIAogICAgIHZvaWQg
Y3JlYXRlSW1hZ2UoKTsKQEAgLTEzNSw4ICsxMzQsOCBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVk
IGNoYXIgbV9zaG91bGRQYWludEJyb2tlbkltYWdlIDogMTsKIH07CiAKLUNBQ0hFRF9SRVNPVVJD
RV9UWVBFX0NBU1RTKENhY2hlZEltYWdlLCBDYWNoZWRSZXNvdXJjZSwgQ2FjaGVkUmVzb3VyY2U6
OkltYWdlUmVzb3VyY2UpCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLX0KK1NQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfQ0FDSEVEX1JFU09VUkNFKENhY2hlZEltYWdlLCBDYWNoZWRSZXNvdXJjZTo6
SW1hZ2VSZXNvdXJjZSkKIAotI2VuZGlmCisjZW5kaWYgLy8gQ2FjaGVkSW1hZ2VfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCBiY2IyNjY0OTc1
OTRlMzU4MzczMGY5YTczMzE0ZjlhNzM5NmViMDMzLi5iZTMyZWJjNjEzOTcwNTBiNTUwNzYxOGE5
Nzk2YTc5ZDExNzQxMWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2UuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTM2MCw5ICszNjEsMTEgQEAgcHJpdmF0
ZToKICAgICBkb3VibGUgbV9yZWRpcmVjdENoYWluRW5kT2ZWYWxpZGl0eTsKIH07CiAKLSNkZWZp
bmUgQ0FDSEVEX1JFU09VUkNFX1RZUEVfQ0FTVFMoVG9DbGFzc05hbWUsIEZyb21DbGFzc05hbWUs
IENhY2hlZFJlc291cmNlVHlwZSkgXAotICAgIFRZUEVfQ0FTVFNfQkFTRShUb0NsYXNzTmFtZSwg
RnJvbUNsYXNzTmFtZSwgcmVzb3VyY2UsIHJlc291cmNlLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3Vy
Y2VUeXBlLCByZXNvdXJjZS50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2VUeXBlKQorfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCi19CisjZGVmaW5lIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0FDSEVE
X1JFU09VUkNFKFRvQ2xhc3NOYW1lLCBDYWNoZWRSZXNvdXJjZVR5cGUpIFwKK1NQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6VG9DbGFzc05hbWUpIFwKKyAgICBzdGF0aWMgYm9v
bCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2UmIHJlc291cmNlKSB7IHJldHVy
biByZXNvdXJjZS50eXBlKCkgPT0gV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VUeXBlOyB9IFwKK1NQ
RUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKIAotI2VuZGlmCisjZW5kaWYgLy8gQ2FjaGVkUmVz
b3VyY2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAKaW5kZXggNTc1NzNlM2I2NzUzY2Q5ZDMwYWQ5NGIyMjNiYjQ3YjVjYTZl
ZTRjZS4uOGU0YWVkZmM3YmZkZjQ5YTcyZjMzMjgxNzExOTEwZmE3NWZhNTQ0ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CkBAIC0xNzAsMjQgKzE3MCwyNCBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4g
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZShDYWNoZWRSZXNvdQogICAgIH0KICAg
ICAKICAgICByZXF1ZXN0LnNldERlZmVyKGNsaWVudERlZmVyc0ltYWdlKHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCkudXJsKCkpID8gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpEZWZlcnJlZEJ5Q2xp
ZW50IDogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpOb0RlZmVyKTsKLSAgICByZXR1cm4gdG9DYWNo
ZWRJbWFnZShyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UsIHJl
cXVlc3QpLmdldCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8Q2FjaGVkSW1hZ2U+KHJlcXVlc3RS
ZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwog
fQogCiBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdEZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJl
dHVybiB0b0NhY2hlZEZvbnQocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpGb250UmVz
b3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8Q2FjaGVkRm9udD4o
cmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpGb250UmVzb3VyY2UsIHJlcXVlc3QpLmdl
dCgpKTsKIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFRleHRUcmFjaz4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RUZXh0VHJhY2so
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiB0b0NhY2hlZFRl
eHRUcmFjayhyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNl
LCByZXF1ZXN0KS5nZXQoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PENhY2hlZFRleHRUcmFjaz4o
cmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZSwgcmVxdWVz
dCkuZ2V0KCkpOwogfQogI2VuZGlmCiAKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0
eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Q1NTU3R5bGVTaGVldChDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHRvQ2FjaGVkQ1NTU3R5
bGVTaGVldChyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQsIHJl
cXVlc3QpLmdldCgpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8Q2FjaGVkQ1NTU3R5bGVTaGVldD4o
cmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0LCByZXF1ZXN0KS5n
ZXQoKSk7CiB9CiAKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQpAQCAtMTk5LDggKzE5OSw4IEBAIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNl
ckNTU1N0CiAjZW5kaWYKIAogICAgIGlmIChDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmcgPSBtZW1v
cnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwg
c2Vzc2lvbklEKCkpKSB7Ci0gICAgICAgIGlmIChleGlzdGluZy0+dHlwZSgpID09IENhY2hlZFJl
c291cmNlOjpDU1NTdHlsZVNoZWV0KQotICAgICAgICAgICAgcmV0dXJuIHRvQ2FjaGVkQ1NTU3R5
bGVTaGVldChleGlzdGluZyk7CisgICAgICAgIGlmIChpczxDYWNoZWRDU1NTdHlsZVNoZWV0Pigq
ZXhpc3RpbmcpKQorICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENhY2hlZENTU1N0eWxlU2hl
ZXQ+KGV4aXN0aW5nKTsKICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKGV4aXN0aW5nKTsK
ICAgICB9CiAgICAgaWYgKHVybC5zdHJpbmcoKSAhPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgp
LnVybCgpKQpAQCAtMjE4LDE5ICsyMTgsMTkgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
Q1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3QKIAog
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0
dXJuIHRvQ2FjaGVkU2NyaXB0KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6U2NyaXB0
LCByZXF1ZXN0KS5nZXQoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PENhY2hlZFNjcmlwdD4ocmVx
dWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTY3JpcHQsIHJlcXVlc3QpLmdldCgpKTsKIH0K
IAogI2lmIEVOQUJMRShYU0xUKQogQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkWFNMU3R5bGVT
aGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RYU0xTdHlsZVNoZWV0KENhY2hlZFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gdG9DYWNoZWRYU0xTdHlsZVNo
ZWV0KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldCwgcmVxdWVz
dCkuZ2V0KCkpOworICAgIHJldHVybiBkb3duY2FzdDxDYWNoZWRYU0xTdHlsZVNoZWV0PihyZXF1
ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQsIHJlcXVlc3QpLmdldCgp
KTsKIH0KICNlbmRpZgogCiBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4g
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudChDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHRvQ2FjaGVkU1ZHRG9jdW1lbnQocmVxdWVz
dFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTVkdEb2N1bWVudFJlc291cmNlLCByZXF1ZXN0KS5n
ZXQoKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PENhY2hlZFNWR0RvY3VtZW50PihyZXF1ZXN0UmVz
b3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNWR0RvY3VtZW50UmVzb3VyY2UsIHJlcXVlc3QpLmdldCgp
KTsKIH0KIAogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQpAQCAtNzAzLDggKzcwMywxMCBAQCB2
b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZWxvYWRJbWFnZXNJZk5vdERlZmVycmVkKCkKICAg
ICBEb2N1bWVudFJlc291cmNlTWFwOjppdGVyYXRvciBlbmQgPSBtX2RvY3VtZW50UmVzb3VyY2Vz
LmVuZCgpOwogICAgIGZvciAoRG9jdW1lbnRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2Rv
Y3VtZW50UmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdC0+dmFsdWUuZ2V0KCk7Ci0gICAgICAgIGlmIChyZXNv
dXJjZS0+aXNJbWFnZSgpICYmIHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgpICYmICFjbGllbnRE
ZWZlcnNJbWFnZShyZXNvdXJjZS0+dXJsKCkpKQotICAgICAgICAgICAgY29uc3RfY2FzdDxDYWNo
ZWRSZXNvdXJjZSo+KHJlc291cmNlKS0+bG9hZCh0aGlzLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VP
cHRpb25zKCkpOworICAgICAgICBpZiAoaXM8Q2FjaGVkSW1hZ2U+KCpyZXNvdXJjZSkgJiYgcmVz
b3VyY2UtPnN0aWxsTmVlZHNMb2FkKCkgJiYgIWNsaWVudERlZmVyc0ltYWdlKHJlc291cmNlLT51
cmwoKSkpIHsKKyAgICAgICAgICAgIENhY2hlZEltYWdlJiBpbWFnZSA9IGRvd25jYXN0PENhY2hl
ZEltYWdlPigqcmVzb3VyY2UpOworICAgICAgICAgICAgaW1hZ2UubG9hZCh0aGlzLCBkZWZhdWx0
Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpOworICAgICAgICB9CiAgICAgfQogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oCmluZGV4IDdkNDZm
YTQ1YzQ1NTNhNzIwZWNkNTY2NzVlNmFmZTNlYWViZjJlNzcuLmMxYzYwM2YzNDI5Y2MxZWM4YmE1
NTBjMGM1NTAwZmI5YWJjMjY2YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRTVkdEb2N1bWVudC5oCkBAIC00OCw4ICs0OCw4IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIGZpbmlzaExvYWRpbmcoUmVzb3VyY2VCdWZmZXIqKSBvdmVycmlkZTsKIH07CiAK
LUNBQ0hFRF9SRVNPVVJDRV9UWVBFX0NBU1RTKENhY2hlZFNWR0RvY3VtZW50LCBDYWNoZWRSZXNv
dXJjZSwgQ2FjaGVkUmVzb3VyY2U6OlNWR0RvY3VtZW50UmVzb3VyY2UpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DQUNIRURfUkVTT1VSQ0UoQ2Fj
aGVkU1ZHRG9jdW1lbnQsIENhY2hlZFJlc291cmNlOjpTVkdEb2N1bWVudFJlc291cmNlKQorCiAj
ZW5kaWYgLy8gQ2FjaGVkU1ZHRG9jdW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFNjcmlwdC5oCmluZGV4IDVkMTQzNzY4MjE4Yjk2YzY0ZjNhNDAwZTc0NTc4MThiM2Y2
OTk1MzIuLjkxYzk4NmEyNTRiOWMzNzFjMmZkMTlmM2RmOTg5NDU3NDdlOWJlMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgKQEAgLTYxLDggKzYxLDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4g
bV9kZWNvZGVyOwogICAgIH07CiAKLUNBQ0hFRF9SRVNPVVJDRV9UWVBFX0NBU1RTKENhY2hlZFNj
cmlwdCwgQ2FjaGVkUmVzb3VyY2UsIENhY2hlZFJlc291cmNlOjpTY3JpcHQpCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKLX0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0FDSEVEX1JFU09VUkNF
KENhY2hlZFNjcmlwdCwgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCkKIAotI2VuZGlmCisjZW5kaWYg
Ly8gQ2FjaGVkU2NyaXB0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRU
ZXh0VHJhY2suaAppbmRleCA3OTNhYzk5YzczZmMyNDBkY2FlZWNmYWVjNWNhYzE3MjAxYmY2ZmZl
Li40YzNmMzhhZDQ2OGUxNTFhODAxMmE5ZDljZTkxNGZiMzhiM2IyZDUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oCkBAIC00NCw5ICs0NCwxMCBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hMb2FkaW5nKFJlc291cmNlQnVmZmVy
Kikgb3ZlcnJpZGU7CiB9OwogCi1DQUNIRURfUkVTT1VSQ0VfVFlQRV9DQVNUUyhDYWNoZWRUZXh0
VHJhY2ssIENhY2hlZFJlc291cmNlLCBDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2Up
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLX0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0FD
SEVEX1JFU09VUkNFKENhY2hlZFRleHRUcmFjaywgQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jl
c291cmNlKQogCi0jZW5kaWYKLSNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykK
KworI2VuZGlmIC8vIENhY2hlZFRleHRUcmFja19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaAppbmRleCAzNjk5MjNhNGJlZmM4MjFjZTA2
N2M4ZWYxYzdmZmMzOWM1ZTZlZWFhLi5kOTkyMWMyYzU4MDMxNjcyZGEyMzg3YThjNmI3MmRhNTIy
NWM0NWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNM
U3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xT
dHlsZVNoZWV0LmgKQEAgLTI2LDYgKzI2LDggQEAKICNpZm5kZWYgQ2FjaGVkWFNMU3R5bGVTaGVl
dF9oCiAjZGVmaW5lIENhY2hlZFhTTFN0eWxlU2hlZXRfaAogCisjaWYgRU5BQkxFKFhTTFQpCisK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApA
QCAtMzQsNyArMzYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQ2FjaGVkUmVz
b3VyY2VMb2FkZXI7CiAgICAgY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsKIAotI2lmIEVOQUJM
RShYU0xUKQogICAgIGNsYXNzIENhY2hlZFhTTFN0eWxlU2hlZXQgZmluYWwgOiBwdWJsaWMgQ2Fj
aGVkUmVzb3VyY2UgewogICAgIHB1YmxpYzoKICAgICAgICAgQ2FjaGVkWFNMU3R5bGVTaGVldChj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQpOwpAQCAtNTcsMTAgKzU4LDEwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGZpbmlzaExvYWRpbmcoUmVz
b3VyY2VCdWZmZXIqKSBvdmVycmlkZTsKICAgICB9OwogCi1DQUNIRURfUkVTT1VSQ0VfVFlQRV9D
QVNUUyhDYWNoZWRYU0xTdHlsZVNoZWV0LCBDYWNoZWRSZXNvdXJjZSwgQ2FjaGVkUmVzb3VyY2U6
OlhTTFN0eWxlU2hlZXQpCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZgorU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19DQUNIRURfUkVTT1VSQ0UoQ2FjaGVkWFNMU3R5bGVTaGVldCwgQ2Fj
aGVkUmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQpCiAKLX0KKyNlbmRpZiAvLyBFTkFCTEUoWFNMVCkK
IAotI2VuZGlmCisjZW5kaWYgLy8gQ2FjaGVkWFNMU3R5bGVTaGVldF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAppbmRleCBjYzk0YmU5NmQ1ZjY1ODhkYzQz
ZDU4YTIxY2IxYjQyMjkwOGNkY2Q2Li43MThiZmM5OTQ0Y2YzYzExY2NhNWQ2MDBlZTVlMzFlMTE4
OWZhMDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2Fj
aGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAK
QEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVJbWFnZUZyb21DYWNo
ZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjYWNoZVBhcnRpdAogICAgICAgICByZXR1
cm47CiAKICAgICAvLyBBIHJlc291cmNlIGV4aXN0cyBhbmQgaXMgbm90IGEgbWFudWFsbHkgY2Fj
aGVkIGltYWdlLCBzbyBqdXN0IHJlbW92ZSBpdC4KLSAgICBpZiAoIXJlc291cmNlLT5pc0ltYWdl
KCkgfHwgIXRvQ2FjaGVkSW1hZ2UocmVzb3VyY2UpLT5pc01hbnVhbGx5Q2FjaGVkKCkpIHsKKyAg
ICBpZiAoIWlzPENhY2hlZEltYWdlPigqcmVzb3VyY2UpIHx8ICFkb3duY2FzdDxDYWNoZWRJbWFn
ZT4oKnJlc291cmNlKS5pc01hbnVhbGx5Q2FjaGVkKCkpIHsKICAgICAgICAgZXZpY3QocmVzb3Vy
Y2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjgzLDcgKzI4Myw3IEBAIHZvaWQgTWVt
b3J5Q2FjaGU6OnJlbW92ZUltYWdlRnJvbUNhY2hlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIGNhY2hlUGFydGl0CiAgICAgLy8gZGVhZCByZXNvdXJjZXMgYXJlIHBydW5lZC4gVGhhdCBt
aWdodCBiZSBpbW1lZGlhdGVseSBzaW5jZQogICAgIC8vIHJlbW92aW5nIHRoZSBsYXN0IGNsaWVu
dCB0cmlnZ2VycyBhIE1lbW9yeUNhY2hlOjpwcnVuZSwgc28gdGhlCiAgICAgLy8gcmVzb3VyY2Ug
bWF5IGJlIGRlbGV0ZWQgYWZ0ZXIgdGhpcyBjYWxsLgotICAgIHRvQ2FjaGVkSW1hZ2UocmVzb3Vy
Y2UpLT5yZW1vdmVDbGllbnQoJmR1bW15Q2FjaGVkSW1hZ2VDbGllbnQoKSk7CisgICAgZG93bmNh
c3Q8Q2FjaGVkSW1hZ2U+KCpyZXNvdXJjZSkucmVtb3ZlQ2xpZW50KCZkdW1teUNhY2hlZEltYWdl
Q2xpZW50KCkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViQ2FjaGUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNhY2hlLm1tCmluZGV4
IDk0MzJhOTFiOWZiYzVjMzhjYWUwMWI3ZmMwMzgwNjk3MzEzMmNmN2IuLjBmMzAzMmQ3ZjM1YzYx
N2M2ZjY4NjU0ZTk1ODQ0Y2NlYWIwMWVlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L01pc2MvV2ViQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5t
bQpAQCAtMjA0LDEwICsyMDQsMTAgQEAgKyAoQ0dJbWFnZVJlZilpbWFnZUZvclVSTDooTlNVUkwg
Kil1cmwKICAgICBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBXZWJD
b3JlOjptZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclVSTCh1cmwpOwogICAgIGlmICghY2FjaGVk
UmVzb3VyY2UgfHwgIWNhY2hlZFJlc291cmNlLT5pc0ltYWdlKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwotICAgIFdlYkNvcmU6OkNhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSA9IFdlYkNvcmU6
OnRvQ2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2UpOwotICAgIGlmICghY2FjaGVkSW1hZ2UgfHwg
IWNhY2hlZEltYWdlLT5oYXNJbWFnZSgpKQorICAgIFdlYkNvcmU6OkNhY2hlZEltYWdlJiBjYWNo
ZWRJbWFnZSA9IGRvd25jYXN0PENhY2hlZEltYWdlPigqY2FjaGVkUmVzb3VyY2UpOworICAgIGlm
ICghY2FjaGVkSW1hZ2UuaGFzSW1hZ2UoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
cmV0dXJuIGNhY2hlZEltYWdlLT5pbWFnZSgpLT5nZXRDR0ltYWdlUmVmKCk7CisgICAgcmV0dXJu
IGNhY2hlZEltYWdlLmltYWdlKCktPmdldENHSW1hZ2VSZWYoKTsKIH0KIAogI2VuZGlmIC8vIFBM
QVRGT1JNKElPUykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239304</attachid>
            <date>2014-10-05 16:47:22 -0700</date>
            <delta_ts>2014-10-05 17:31:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137431-20141005164724.patch</filename>
            <type>text/plain</type>
            <size>18534</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWZkYjAxMzhlOThmYTAy
MjgyZjc5NDk2NWQ3MDY3MmUyYzVlNzUxYS4uMTA4NmY2YTIyOGE5MzM3MTMwNWMxZmE3OWNjZmI4
YjUwZjc4NTQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTEwLTA0ICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgaXM8PigpIC8g
ZG93bmNhc3Q8PigpIGZvciBDYWNoZWRSZXNvdXJjZSBzdWJjbGFzc2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc0MzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBCZW5qYW1pbiBQb3VsYWluLgorCisgICAgICAgIFVzZSBpczw+KCkgLyBkb3duY2Fz
dDw+KCkgZm9yIENhY2hlZFJlc291cmNlIHN1YmNsYXNzZXMuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6Y2Fj
aGVkUmVzb3VyY2VDb250ZW50KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5
bGVTaGVldC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250Lmg6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZEltYWdlOjpzd2l0Y2hDbGllbnRzVG9SZXZhbGlkYXRlZFJlc291cmNlKToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEZvbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RUZXh0VHJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RDU1NT
dHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0VXNlckNTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RYU0xTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0U1ZHRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnJlbG9hZEltYWdlc0lmTm90RGVmZXJyZWQpOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRTY3JpcHQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNr
Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaDoKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVt
b3J5Q2FjaGU6OnJlbW92ZUltYWdlRnJvbUNhY2hlKToKKwogMjAxNC0xMC0wNSAgQ2hyaXN0b3Bo
ZSBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25j
YXN0PD4oKSBmb3IgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyBzdWJjbGFzc2VzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggYTEwYzVmYTEyODc5MzI0ZjIxYzQwZTUxODhkOWU5ODk2ZTMxZTlkZi4uNTdi
Y2Q3ZDA4ZTRiN2YwNDNhN2ViZTBlMDZjYTg1YjZlZDA0ZmIzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDE0LTEwLTA0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KKworICAgICAgICBVc2UgaXM8PigpIC8gZG93bmNhc3Q8PigpIGZvciBDYWNoZWRS
ZXNvdXJjZSBzdWJjbGFzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzc0MzEKKworICAgICAgICBSZXZpZXdlZCBieSBCZW5qYW1pbiBQb3VsYWlu
LgorCisgICAgICAgIFVzZSBpczw+KCkgLyBkb3duY2FzdDw+KCkgZm9yIENhY2hlZFJlc291cmNl
IHN1YmNsYXNzZXMuCisKKyAgICAgICAgKiBNaXNjL1dlYkNhY2hlLm1tOgorICAgICAgICAoK1tX
ZWJDYWNoZSBpbWFnZUZvclVSTDpdKToKKwogMjAxNC0xMC0wMiAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHZlcnNpb24gbnVtYmVyIDEwMTAwMCBpbnN0
ZWFkIG9mIDEwMTAwIGZvciBPUyBYIFlvc2VtaXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDQwOTliMjlmNDM3MTk2ODFiMWM0ZjQ4
Y2Y3ZDFhZTMyMDE1ODRkMjAuLmZjM2JjMjdkMTk0NWYwYWI2ODJlZGFlZGM5MzcwOWZiNDU1MWIx
OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwCkBAIC0xNjIsMTAgKzE2MiwxMCBAQCBib29sIEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVk
UmVzb3VyY2VDb250ZW50KENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSwgUwogICAgIGlm
IChjYWNoZWRSZXNvdXJjZSkgewogICAgICAgICBzd2l0Y2ggKGNhY2hlZFJlc291cmNlLT50eXBl
KCkpIHsKICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDoKLSAgICAg
ICAgICAgICpyZXN1bHQgPSB0b0NhY2hlZENTU1N0eWxlU2hlZXQoY2FjaGVkUmVzb3VyY2UpLT5z
aGVldFRleHQoZmFsc2UpOworICAgICAgICAgICAgKnJlc3VsdCA9IGRvd25jYXN0PENhY2hlZENT
U1N0eWxlU2hlZXQ+KCpjYWNoZWRSZXNvdXJjZSkuc2hlZXRUZXh0KGZhbHNlKTsKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpTY3JpcHQ6Ci0g
ICAgICAgICAgICAqcmVzdWx0ID0gdG9DYWNoZWRTY3JpcHQoY2FjaGVkUmVzb3VyY2UpLT5zY3Jp
cHQoKTsKKyAgICAgICAgICAgICpyZXN1bHQgPSBkb3duY2FzdDxDYWNoZWRTY3JpcHQ+KCpjYWNo
ZWRSZXNvdXJjZSkuc2NyaXB0KCk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2U6IHsKICAgICAgICAgICAgIFJlc291cmNl
QnVmZmVyKiBidWZmZXIgPSBjYWNoZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCmluZGV4
IDIyY2U1YWZlYTg2MmRkODU2ZGNkM2I4OTc2ZGM4NTgwNjdhNjZjMjguLjgwZjk5NGNiMzAyZjIz
YjY1NzgyZGQzZjYzOTI2M2U2YjFhOWEyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaApAQCAtNjYsOCArNjYsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIFJlZlB0cjxTdHlsZVNoZWV0Q29udGVudHM+IG1fcGFyc2Vk
U3R5bGVTaGVldENhY2hlOwogICAgIH07CiAKLUNBQ0hFRF9SRVNPVVJDRV9UWVBFX0NBU1RTKENh
Y2hlZENTU1N0eWxlU2hlZXQsIENhY2hlZFJlc291cmNlLCBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5
bGVTaGVldCkKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotfQorU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19DQUNIRURfUkVTT1VSQ0UoQ2FjaGVkQ1NTU3R5bGVTaGVldCwgQ2FjaGVkUmVzb3VyY2U6
OkNTU1N0eWxlU2hlZXQpCiAKLSNlbmRpZgorI2VuZGlmIC8vIENhY2hlZENTU1N0eWxlU2hlZXRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKaW5kZXggNTRlY2VkM2Y1
NzEwZTE3MWQzYzEzOTA2YmE5MjFjMjRkOTRiNmM1OC4uZDk0MzczMDU1MDY0MzE5MmM5NjYzNTcx
YTVmZGQ0ZDI0MDliYjZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9u
dC5oCkBAIC03OCw4ICs3OCw4IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE1lbW9yeUNh
Y2hlOwogfTsKIAotQ0FDSEVEX1JFU09VUkNFX1RZUEVfQ0FTVFMoQ2FjaGVkRm9udCwgQ2FjaGVk
UmVzb3VyY2UsIENhY2hlZFJlc291cmNlOjpGb250UmVzb3VyY2UpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DQUNIRURfUkVTT1VSQ0UoQ2FjaGVk
Rm9udCwgQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZSkKKwogI2VuZGlmIC8vIENhY2hlZEZv
bnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXgg
MzI3YWUzZmMwOGNhMzk3ZjNjZDRiYWYwMjQwNDIyY2ViMTFhZTcxZC4uNmExZDJiNDVlZTJiMzVj
NjI2ODYwYTc5NWJhMzI4MGYyMzQxMzkyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC0xNDUsOCArMTQ1LDcgQEAgdm9pZCBDYWNoZWRJbWFnZTo6
ZGlkUmVtb3ZlQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50KiBjKQogCiB2b2lkIENhY2hlZElt
YWdlOjpzd2l0Y2hDbGllbnRzVG9SZXZhbGlkYXRlZFJlc291cmNlKCkKIHsKLSAgICBBU1NFUlQo
cmVzb3VyY2VUb1JldmFsaWRhdGUoKSk7Ci0gICAgQVNTRVJUKHJlc291cmNlVG9SZXZhbGlkYXRl
KCktPmlzSW1hZ2UoKSk7CisgICAgQVNTRVJUKGlzPENhY2hlZEltYWdlPihyZXNvdXJjZVRvUmV2
YWxpZGF0ZSgpKSk7CiAgICAgLy8gUGVuZGluZyBjb250YWluZXIgc2l6ZSByZXF1ZXN0cyBuZWVk
IHRvIGJlIHRyYW5zZmVycmVkIHRvIHRoZSByZXZhbGlkYXRlZCByZXNvdXJjZS4KICAgICBpZiAo
IW1fcGVuZGluZ0NvbnRhaW5lclNpemVSZXF1ZXN0cy5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8g
QSBjb3B5IG9mIHBlbmRpbmcgc2l6ZSByZXF1ZXN0cyBpcyBuZWVkZWQgYXMgdGhleSBhcmUgZGVs
ZXRlZCBkdXJpbmcgQ2FjaGVkUmVzb3VyY2U6OnN3aXRjaENsaWVudHNUb1JldmFsaWRhdGVSZXNv
dWNlKCkuCkBAIC0xNTQsOSArMTUzLDkgQEAgdm9pZCBDYWNoZWRJbWFnZTo6c3dpdGNoQ2xpZW50
c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSgpCiAgICAgICAgIGZvciAoQ29udGFpbmVyU2l6ZVJlcXVl
c3RzOjppdGVyYXRvciBpdCA9IG1fcGVuZGluZ0NvbnRhaW5lclNpemVSZXF1ZXN0cy5iZWdpbigp
OyBpdCAhPSBtX3BlbmRpbmdDb250YWluZXJTaXplUmVxdWVzdHMuZW5kKCk7ICsraXQpCiAgICAg
ICAgICAgICBzd2l0Y2hDb250YWluZXJTaXplUmVxdWVzdHMuc2V0KGl0LT5rZXksIGl0LT52YWx1
ZSk7CiAgICAgICAgIENhY2hlZFJlc291cmNlOjpzd2l0Y2hDbGllbnRzVG9SZXZhbGlkYXRlZFJl
c291cmNlKCk7Ci0gICAgICAgIENhY2hlZEltYWdlKiByZXZhbGlkYXRlZENhY2hlZEltYWdlID0g
dG9DYWNoZWRJbWFnZShyZXNvdXJjZVRvUmV2YWxpZGF0ZSgpKTsKKyAgICAgICAgQ2FjaGVkSW1h
Z2UmIHJldmFsaWRhdGVkQ2FjaGVkSW1hZ2UgPSBkb3duY2FzdDxDYWNoZWRJbWFnZT4oKnJlc291
cmNlVG9SZXZhbGlkYXRlKCkpOwogICAgICAgICBmb3IgKENvbnRhaW5lclNpemVSZXF1ZXN0czo6
aXRlcmF0b3IgaXQgPSBzd2l0Y2hDb250YWluZXJTaXplUmVxdWVzdHMuYmVnaW4oKTsgaXQgIT0g
c3dpdGNoQ29udGFpbmVyU2l6ZVJlcXVlc3RzLmVuZCgpOyArK2l0KQotICAgICAgICAgICAgcmV2
YWxpZGF0ZWRDYWNoZWRJbWFnZS0+c2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKGl0LT5rZXks
IGl0LT52YWx1ZS5maXJzdCwgaXQtPnZhbHVlLnNlY29uZCk7CisgICAgICAgICAgICByZXZhbGlk
YXRlZENhY2hlZEltYWdlLnNldENvbnRhaW5lclNpemVGb3JSZW5kZXJlcihpdC0+a2V5LCBpdC0+
dmFsdWUuZmlyc3QsIGl0LT52YWx1ZS5zZWNvbmQpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCmluZGV4IGNiNGUyYTAy
NDllOTgxOWI2ZjJjNTdjYmYxYjdmNzE5NjJiNjljZGEuLmZlZWY0NTJjNmNmZDM2NzI0Nzg5NDlj
MTZhYzY5MDY5MzMxNTQzMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZS5oCkBAIC04NCwxMiArODQsMTEgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc01hbnVhbGx5
Q2FjaGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc01hbnVhbGx5Q2FjaGVkOyB9CiAgICAgdmlydHVh
bCBib29sIG11c3RSZXZhbGlkYXRlRHVlVG9DYWNoZUhlYWRlcnMoQ2FjaGVQb2xpY3kpIGNvbnN0
OworICAgIHZpcnR1YWwgdm9pZCBsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVz
b3VyY2VMb2FkZXJPcHRpb25zJikgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzT3JpZ2luQ2xlYW4o
U2VjdXJpdHlPcmlnaW4qKTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNo
ZWRSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpIG92ZXJyaWRl
OwotCiAgICAgdm9pZCBjbGVhcigpOwogCiAgICAgdm9pZCBjcmVhdGVJbWFnZSgpOwpAQCAtMTM1
LDggKzEzNCw4IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgY2hhciBtX3Nob3VsZFBhaW50QnJv
a2VuSW1hZ2UgOiAxOwogfTsKIAotQ0FDSEVEX1JFU09VUkNFX1RZUEVfQ0FTVFMoQ2FjaGVkSW1h
Z2UsIENhY2hlZFJlc291cmNlLCBDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSkKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAotfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DQUNIRURfUkVT
T1VSQ0UoQ2FjaGVkSW1hZ2UsIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlKQogCi0jZW5k
aWYKKyNlbmRpZiAvLyBDYWNoZWRJbWFnZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IGJjYjI2NjQ5NzU5NGUzNTgzNzMwZjlhNzMzMTRmOWE3
Mzk2ZWIwMzMuLmJlMzJlYmM2MTM5NzA1MGI1NTA3NjE4YTk3OTZhNzlkMTE3NDExYTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0zNiw2ICsz
Niw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1R5cGVDYXN0
cy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIApAQCAtMzYwLDkgKzM2MSwxMSBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX3JlZGly
ZWN0Q2hhaW5FbmRPZlZhbGlkaXR5OwogfTsKIAotI2RlZmluZSBDQUNIRURfUkVTT1VSQ0VfVFlQ
RV9DQVNUUyhUb0NsYXNzTmFtZSwgRnJvbUNsYXNzTmFtZSwgQ2FjaGVkUmVzb3VyY2VUeXBlKSBc
Ci0gICAgVFlQRV9DQVNUU19CQVNFKFRvQ2xhc3NOYW1lLCBGcm9tQ2xhc3NOYW1lLCByZXNvdXJj
ZSwgcmVzb3VyY2UtPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZVR5cGUsIHJlc291cmNlLnR5cGUo
KSA9PSBDYWNoZWRSZXNvdXJjZVR5cGUpCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLX0KKyNk
ZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DQUNIRURfUkVTT1VSQ0UoVG9DbGFzc05hbWUs
IENhY2hlZFJlc291cmNlVHlwZSkgXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJD
b3JlOjpUb0NsYXNzTmFtZSkgXAorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpIHsgcmV0dXJuIHJlc291cmNlLnR5cGUoKSA9PSBX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVR5cGU7IH0gXAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19F
TkQoKQogCi0jZW5kaWYKKyNlbmRpZiAvLyBDYWNoZWRSZXNvdXJjZV9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCA1
NzU3M2UzYjY3NTNjZDlkMzBhZDk0YjIyM2JiNDdiNWNhNmVlNGNlLi4zZDI4MDI4YjZlYzkxYjI0
ZjBkMTk5ODdhNDY2ZDQyMjNhNGE2NGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE3MCwyNCArMTcwLDI0IEBA
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdEltYWdlKENhY2hlZFJlc291CiAgICAgfQogICAgIAogICAgIHJlcXVlc3Quc2V0RGVm
ZXIoY2xpZW50RGVmZXJzSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSkgPyBD
YWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkRlZmVycmVkQnlDbGllbnQgOiBDYWNoZWRSZXNvdXJjZVJl
cXVlc3Q6Ok5vRGVmZXIpOwotICAgIHJldHVybiB0b0NhY2hlZEltYWdlKHJlcXVlc3RSZXNvdXJj
ZShDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOworICAgIHJl
dHVybiBkb3duY2FzdDxDYWNoZWRJbWFnZT4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNl
OjpJbWFnZVJlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAKIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZEZvbnQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Rm9udChDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHRvQ2FjaGVkRm9udChyZXF1
ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkp
OworICAgIHJldHVybiBkb3duY2FzdDxDYWNoZWRGb250PihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2U6OkZvbnRSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkVGV4dFRyYWNrPiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFRleHRUcmFjayhDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIHRvQ2FjaGVkVGV4dFRyYWNrKHJlcXVlc3RSZXNvdXJj
ZShDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKKyAg
ICByZXR1cm4gZG93bmNhc3Q8Q2FjaGVkVGV4dFRyYWNrPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlLCByZXF1ZXN0KS5nZXQoKSk7CiB9CiAjZW5kaWYK
IAogQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OnJlcXVlc3RDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKIHsKLSAgICByZXR1cm4gdG9DYWNoZWRDU1NTdHlsZVNoZWV0KHJlcXVlc3RSZXNvdXJj
ZShDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCwgcmVxdWVzdCkuZ2V0KCkpOworICAgIHJl
dHVybiBkb3duY2FzdDxDYWNoZWRDU1NTdHlsZVNoZWV0PihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQsIHJlcXVlc3QpLmdldCgpKTsKIH0KIAogQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RVc2VyQ1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCkBA
IC0xOTksOCArMTk5LDggQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVl
dD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3QKICNlbmRpZgogCiAgICAg
aWYgKENhY2hlZFJlc291cmNlKiBleGlzdGluZyA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9y
UmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQoKSkpIHsKLSAgICAg
ICAgaWYgKGV4aXN0aW5nLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQp
Ci0gICAgICAgICAgICByZXR1cm4gdG9DYWNoZWRDU1NTdHlsZVNoZWV0KGV4aXN0aW5nKTsKKyAg
ICAgICAgaWYgKGlzPENhY2hlZENTU1N0eWxlU2hlZXQ+KCpleGlzdGluZykpCisgICAgICAgICAg
ICByZXR1cm4gZG93bmNhc3Q8Q2FjaGVkQ1NTU3R5bGVTaGVldD4oZXhpc3RpbmcpOwogICAgICAg
ICBtZW1vcnlDYWNoZSgpLT5yZW1vdmUoZXhpc3RpbmcpOwogICAgIH0KICAgICBpZiAodXJsLnN0
cmluZygpICE9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpCkBAIC0yMTgsMTkgKzIx
OCwxOSBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdAogCiBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTY3JpcHQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2NyaXB0KENhY2hlZFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gdG9DYWNoZWRTY3JpcHQocmVx
dWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTY3JpcHQsIHJlcXVlc3QpLmdldCgpKTsKKyAg
ICByZXR1cm4gZG93bmNhc3Q8Q2FjaGVkU2NyaXB0PihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OlNjcmlwdCwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCiAjaWYgRU5BQkxFKFhTTFQpCiBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQogewotICAgIHJldHVybiB0b0NhY2hlZFhTTFN0eWxlU2hlZXQocmVxdWVzdFJlc291cmNlKENh
Y2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0LCByZXF1ZXN0KS5nZXQoKSk7CisgICAgcmV0dXJu
IGRvd25jYXN0PENhY2hlZFhTTFN0eWxlU2hlZXQ+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNv
dXJjZTo6WFNMU3R5bGVTaGVldCwgcmVxdWVzdCkuZ2V0KCkpOwogfQogI2VuZGlmCiAKIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdFNWR0RvY3VtZW50KENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAg
ICByZXR1cm4gdG9DYWNoZWRTVkdEb2N1bWVudChyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlNWR0RvY3VtZW50UmVzb3VyY2UsIHJlcXVlc3QpLmdldCgpKTsKKyAgICByZXR1cm4gZG93
bmNhc3Q8Q2FjaGVkU1ZHRG9jdW1lbnQ+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
U1ZHRG9jdW1lbnRSZXNvdXJjZSwgcmVxdWVzdCkuZ2V0KCkpOwogfQogCiAjaWYgRU5BQkxFKExJ
TktfUFJFRkVUQ0gpCkBAIC03MDMsOCArNzAzLDggQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVsb2FkSW1hZ2VzSWZOb3REZWZlcnJlZCgpCiAgICAgRG9jdW1lbnRSZXNvdXJjZU1hcDo6
aXRlcmF0b3IgZW5kID0gbV9kb2N1bWVudFJlc291cmNlcy5lbmQoKTsKICAgICBmb3IgKERvY3Vt
ZW50UmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kb2N1bWVudFJlc291cmNlcy5iZWdpbigp
OyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0g
aXQtPnZhbHVlLmdldCgpOwotICAgICAgICBpZiAocmVzb3VyY2UtPmlzSW1hZ2UoKSAmJiByZXNv
dXJjZS0+c3RpbGxOZWVkc0xvYWQoKSAmJiAhY2xpZW50RGVmZXJzSW1hZ2UocmVzb3VyY2UtPnVy
bCgpKSkKLSAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Q2FjaGVkUmVzb3VyY2UqPihyZXNvdXJjZSkt
PmxvYWQodGhpcywgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKTsKKyAgICAgICAgaWYg
KGlzPENhY2hlZEltYWdlPigqcmVzb3VyY2UpICYmIHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgp
ICYmICFjbGllbnREZWZlcnNJbWFnZShyZXNvdXJjZS0+dXJsKCkpKQorICAgICAgICAgICAgZG93
bmNhc3Q8Q2FjaGVkSW1hZ2U+KCpyZXNvdXJjZSkubG9hZCh0aGlzLCBkZWZhdWx0Q2FjaGVkUmVz
b3VyY2VPcHRpb25zKCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaAppbmRleCA3ZDQ2ZmE0NWM0NTUzYTcyMGVjZDU2Njc1
ZTZhZmUzZWFlYmYyZTc3Li5jMWM2MDNmMzQyOWNjMWVjOGJhNTUwYzBjNTUwMGZiOWFiYzI2NmFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQu
aApAQCAtNDgsOCArNDgsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hMb2Fk
aW5nKFJlc291cmNlQnVmZmVyKikgb3ZlcnJpZGU7CiB9OwogCi1DQUNIRURfUkVTT1VSQ0VfVFlQ
RV9DQVNUUyhDYWNoZWRTVkdEb2N1bWVudCwgQ2FjaGVkUmVzb3VyY2UsIENhY2hlZFJlc291cmNl
OjpTVkdEb2N1bWVudFJlc291cmNlKQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfQ0FDSEVEX1JFU09VUkNFKENhY2hlZFNWR0RvY3VtZW50LCBDYWNo
ZWRSZXNvdXJjZTo6U1ZHRG9jdW1lbnRSZXNvdXJjZSkKKwogI2VuZGlmIC8vIENhY2hlZFNWR0Rv
Y3VtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
Y3JpcHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaAppbmRl
eCA1ZDE0Mzc2ODIxOGI5NmM2NGYzYTQwMGU3NDU3ODE4YjNmNjk5NTMyLi45MWM5ODZhMjU0Yjlj
MzcxYzJmZDE5ZjNkZjk4OTQ1NzQ3ZTliZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFNjcmlwdC5oCkBAIC02MSw4ICs2MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgUmVmUHRyPFRleHRSZXNvdXJjZURlY29kZXI+IG1fZGVjb2RlcjsKICAgICB9Owog
Ci1DQUNIRURfUkVTT1VSQ0VfVFlQRV9DQVNUUyhDYWNoZWRTY3JpcHQsIENhY2hlZFJlc291cmNl
LCBDYWNoZWRSZXNvdXJjZTo6U2NyaXB0KQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi19CitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NBQ0hFRF9SRVNPVVJDRShDYWNoZWRTY3JpcHQsIENhY2hl
ZFJlc291cmNlOjpTY3JpcHQpCiAKLSNlbmRpZgorI2VuZGlmIC8vIENhY2hlZFNjcmlwdF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmgKaW5kZXggNzkz
YWM5OWM3M2ZjMjQwZGNhZWVjZmFlYzVjYWMxNzIwMWJmNmZmZS4uNGMzZjM4YWQ0NjhlMTUxYTgw
MTJhOWQ5Y2U5MTRmYjM4YjNiMmQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRUZXh0VHJhY2suaApAQCAtNDQsOSArNDQsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgZmluaXNoTG9hZGluZyhSZXNvdXJjZUJ1ZmZlciopIG92ZXJyaWRlOwogfTsKIAot
Q0FDSEVEX1JFU09VUkNFX1RZUEVfQ0FTVFMoQ2FjaGVkVGV4dFRyYWNrLCBDYWNoZWRSZXNvdXJj
ZSwgQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlKQorfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCi19CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NBQ0hFRF9SRVNPVVJDRShDYWNoZWRU
ZXh0VHJhY2ssIENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZSkKIAotI2VuZGlmCi0j
ZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoVklERU9fVFJBQ0spCisKKyNlbmRpZiAvLyBDYWNoZWRU
ZXh0VHJhY2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFhTTFN0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xT
dHlsZVNoZWV0LmgKaW5kZXggMzY5OTIzYTRiZWZjODIxY2UwNjdjOGVmMWM3ZmZjMzljNWU2ZWVh
YS4uZDk5MjFjMmM1ODAzMTY3MmRhMjM4N2E4YzZiNzJkYTUyMjVjNDViOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oCkBAIC0yNiw2
ICsyNiw4IEBACiAjaWZuZGVmIENhY2hlZFhTTFN0eWxlU2hlZXRfaAogI2RlZmluZSBDYWNoZWRY
U0xTdHlsZVNoZWV0X2gKIAorI2lmIEVOQUJMRShYU0xUKQorCiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTM0LDcgKzM2LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogICAgIGNs
YXNzIFRleHRSZXNvdXJjZURlY29kZXI7CiAKLSNpZiBFTkFCTEUoWFNMVCkKICAgICBjbGFzcyBD
YWNoZWRYU0xTdHlsZVNoZWV0IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKICAgICBw
dWJsaWM6CiAgICAgICAgIENhY2hlZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgU2Vzc2lvbklEKTsKQEAgLTU3LDEwICs1OCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hMb2FkaW5nKFJlc291cmNlQnVmZmVyKikgb3ZlcnJp
ZGU7CiAgICAgfTsKIAotQ0FDSEVEX1JFU09VUkNFX1RZUEVfQ0FTVFMoQ2FjaGVkWFNMU3R5bGVT
aGVldCwgQ2FjaGVkUmVzb3VyY2UsIENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0KQorfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ0FD
SEVEX1JFU09VUkNFKENhY2hlZFhTTFN0eWxlU2hlZXQsIENhY2hlZFJlc291cmNlOjpYU0xTdHls
ZVNoZWV0KQogCi19CisjZW5kaWYgLy8gRU5BQkxFKFhTTFQpCiAKLSNlbmRpZgorI2VuZGlmIC8v
IENhY2hlZFhTTFN0eWxlU2hlZXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL01lbW9yeUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1v
cnlDYWNoZS5jcHAKaW5kZXggY2M5NGJlOTZkNWY2NTg4ZGM0M2Q1OGEyMWNiMWI0MjI5MDhjZGNk
Ni4uNzE4YmZjOTk0NGNmM2MxMWNjYTVkNjAwZWU1ZTMxZTExODlmYTAwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCkBAIC0yNzMsNyArMjczLDcgQEAg
dm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgY2FjaGVQYXJ0aXQKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gQSByZXNv
dXJjZSBleGlzdHMgYW5kIGlzIG5vdCBhIG1hbnVhbGx5IGNhY2hlZCBpbWFnZSwgc28ganVzdCBy
ZW1vdmUgaXQuCi0gICAgaWYgKCFyZXNvdXJjZS0+aXNJbWFnZSgpIHx8ICF0b0NhY2hlZEltYWdl
KHJlc291cmNlKS0+aXNNYW51YWxseUNhY2hlZCgpKSB7CisgICAgaWYgKCFpczxDYWNoZWRJbWFn
ZT4oKnJlc291cmNlKSB8fCAhZG93bmNhc3Q8Q2FjaGVkSW1hZ2U+KCpyZXNvdXJjZSkuaXNNYW51
YWxseUNhY2hlZCgpKSB7CiAgICAgICAgIGV2aWN0KHJlc291cmNlKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTI4Myw3ICsyODMsNyBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVJbWFn
ZUZyb21DYWNoZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjYWNoZVBhcnRpdAogICAg
IC8vIGRlYWQgcmVzb3VyY2VzIGFyZSBwcnVuZWQuIFRoYXQgbWlnaHQgYmUgaW1tZWRpYXRlbHkg
c2luY2UKICAgICAvLyByZW1vdmluZyB0aGUgbGFzdCBjbGllbnQgdHJpZ2dlcnMgYSBNZW1vcnlD
YWNoZTo6cHJ1bmUsIHNvIHRoZQogICAgIC8vIHJlc291cmNlIG1heSBiZSBkZWxldGVkIGFmdGVy
IHRoaXMgY2FsbC4KLSAgICB0b0NhY2hlZEltYWdlKHJlc291cmNlKS0+cmVtb3ZlQ2xpZW50KCZk
dW1teUNhY2hlZEltYWdlQ2xpZW50KCkpOworICAgIGRvd25jYXN0PENhY2hlZEltYWdlPigqcmVz
b3VyY2UpLnJlbW92ZUNsaWVudCgmZHVtbXlDYWNoZWRJbWFnZUNsaWVudCgpKTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNhY2hlLm1tIGIvU291
cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbQppbmRleCA5NDMyYTkxYjlmYmM1YzM4Y2Fl
MDFiN2ZjMDM4MDY5NzMxMzJjZjdiLi40Njk3OGExMzk4YWE4NDJmOTQ2MDcxMmQwZjQ3NjZiNjc4
Yjc3YTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNhY2hlLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ2FjaGUubW0KQEAgLTIwMiwxMiArMjAyLDEy
IEBAICsgKENHSW1hZ2VSZWYpaW1hZ2VGb3JVUkw6KE5TVVJMICopdXJsCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIAogICAgIFdlYkNvcmU6OkNhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNv
dXJjZSA9IFdlYkNvcmU6Om1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKHVybCk7Ci0gICAg
aWYgKCFjYWNoZWRSZXNvdXJjZSB8fCAhY2FjaGVkUmVzb3VyY2UtPmlzSW1hZ2UoKSkKKyAgICBp
ZiAoIWlzPENhY2hlZEltYWdlPihjYWNoZWRSZXNvdXJjZSkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIFdlYkNvcmU6OkNhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSA9IFdlYkNvcmU6OnRv
Q2FjaGVkSW1hZ2UoY2FjaGVkUmVzb3VyY2UpOwotICAgIGlmICghY2FjaGVkSW1hZ2UgfHwgIWNh
Y2hlZEltYWdlLT5oYXNJbWFnZSgpKQorICAgIFdlYkNvcmU6OkNhY2hlZEltYWdlJiBjYWNoZWRJ
bWFnZSA9IGRvd25jYXN0PENhY2hlZEltYWdlPigqY2FjaGVkUmVzb3VyY2UpOworICAgIGlmICgh
Y2FjaGVkSW1hZ2UuaGFzSW1hZ2UoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0
dXJuIGNhY2hlZEltYWdlLT5pbWFnZSgpLT5nZXRDR0ltYWdlUmVmKCk7CisgICAgcmV0dXJuIGNh
Y2hlZEltYWdlLmltYWdlKCktPmdldENHSW1hZ2VSZWYoKTsKIH0KIAogI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykK
</data>

          </attachment>
      

    </bug>

</bugzilla>