<?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>127290</bug_id>
          
          <creation_ts>2014-01-20 07:32:16 -0800</creation_ts>
          <short_desc>Let RenderImage construct its RenderImageResource.</short_desc>
          <delta_ts>2014-01-20 09:22:50 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>969833</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-01-20 07:32:16 -0800</bug_when>
    <thetext>Let RenderImage construct its RenderImageResource.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969834</commentid>
    <comment_count>1</comment_count>
      <attachid>221657</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-01-20 07:33:10 -0800</bug_when>
    <thetext>Created attachment 221657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969879</commentid>
    <comment_count>2</comment_count>
      <attachid>221657</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-20 09:22:48 -0800</bug_when>
    <thetext>Comment on attachment 221657
Patch

Clearing flags on attachment: 221657

Committed r162356: &lt;http://trac.webkit.org/changeset/162356&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969880</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-20 09:22:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221657</attachid>
            <date>2014-01-20 07:33:10 -0800</date>
            <delta_ts>2014-01-20 09:22:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127290.diff</filename>
            <type>text/plain</type>
            <size>37172</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MGE5ZGY3Li44YTllMjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMg
QEAKKzIwMTQtMDEtMjAgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIExldCBSZW5kZXJJbWFnZSBjb25zdHJ1Y3QgaXRzIFJlbmRlckltYWdlUmVzb3VyY2UuCisg
ICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMjcyOTA+CisKKyAgICAgICAgRXZlcnlvbmUg
d2hvIGNyZWF0ZXMgYSBSZW5kZXJJbWFnZSBpbW1lZGlhdGVseSBmb2xsb3dzIHVwIHdpdGgKKyAg
ICAgICAgY3JlYXRpbmcgYSBSZW5kZXJJbWFnZVJlc291cmNlIGFuZCBhc3NpZ25pbmcgaXQgdG8g
dGhlIGltYWdlLgorCisgICAgICAgIExldCB0aGUgUmVuZGVySW1hZ2UgY29uc3RydWN0b3IgZG8g
dGhpcyBpbnN0ZWFkLCBhbmQgbWFrZSB0aGUKKyAgICAgICAgaW1hZ2VSZXNvdXJjZSgpIGFjY2Vz
c29ycyByZXR1cm4gcmVmZXJlbmNlcy4gVGhpcyBleHBvc2VkIGEKKyAgICAgICAgbnVtYmVyIG9m
IHVubmVjZXNzYXJ5IG51bGwgY2hlY2tzLgorCisgICAgICAgIEFsc28gbW9kZXJuaXplZCB0aGUg
dG91Y2hlZCBjb2RlIHdpdGggc3RkOjp1bmlxdWVfcHRyLgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJl
cnMpOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIp
OgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVmlkZW9FbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFZpZGVvRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSW1h
Z2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1dFR5cGU6OmNyZWF0
ZUlucHV0UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1dFR5cGU6OmF0dGFj
aCk6CisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlTG9hZGVyOjpyZW5kZXJJbWFnZVJlc291cmNlKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpjcmVh
dGVGb3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJJbWFnZTo6UmVuZGVySW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVySW1hZ2U6On5SZW5kZXJJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6
c3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmltYWdlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6dXBkYXRlSW50cmluc2ljU2l6
ZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjp1cGRhdGVJbm5lckNv
bnRlbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjppbWFnZURpbWVuc2lv
bnNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjpub3RpZnlGaW5pc2hl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6cGFpbnRSZXBsYWNlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJJbWFnZTo6Zm9yZWdyb3VuZElzS25vd25Ub0JlT3BhcXVlSW5SZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjptaW5pbXVtUmVwbGFjZWRIZWlnaHQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjplbWJlZGRlZENvbnRlbnRCb3gp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVySW1hZ2U6OmltYWdlUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1h
Z2U6OmNhY2hlZEltYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2VSZXNvdXJj
ZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZS5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJNZWRpYTo6UmVuZGVyTWVkaWEpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4pOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWRl
by5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWRlbzo6Y2FsY3VsYXRlSW50cmluc2lj
U2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlQ29udGVudERhdGE6OmNyZWF0ZUNvbnRlbnRSZW5kZXJlcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTVkdJbWFnZTo6UmVuZGVyU1ZHSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU1ZHSW1hZ2U6On5SZW5kZXJTVkdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdJbWFnZTo6dXBkYXRlSW1hZ2VWaWV3cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdJbWFnZTo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW1hZ2U6OnBh
aW50Rm9yZWdyb3VuZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5o
OgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSW1hZ2VFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMpOgorCiAyMDE0LTAxLTE5ICBBbmRy
ZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBDb21wcmVzcyBEb2N1bWVu
dExvYWRlcidzIFJlc291cmNlUmVzcG9uc2UgaGlzdG9yeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGFjNzgyN2IuLjNhOTY3NWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApAQCAtMTc5LDkgKzE3OSw3IEBAIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UGFzc1JlZjxSZW5kZXJTCiAgICAgaWYgKHN0eWxlLmdldCgpLmhhc0NvbnRlbnQoKSkKICAgICAg
ICAgcmV0dXJuIFJlbmRlckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgc3RkOjptb3ZlKHN0eWxl
KSk7CiAKLSAgICBhdXRvIGltYWdlID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW1hZ2U+KCp0aGlz
LCBzdGQ6Om1vdmUoc3R5bGUpKTsKLSAgICBpbWFnZS0+c2V0SW1hZ2VSZXNvdXJjZShSZW5kZXJJ
bWFnZVJlc291cmNlOjpjcmVhdGUoKSk7Ci0gICAgcmV0dXJuIHN0ZDo6bW92ZShpbWFnZSk7Cisg
ICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlckltYWdlPigqdGhpcywgc3RkOjptb3ZlKHN0
eWxlKSk7CiB9CiAKIGJvb2wgSFRNTEltYWdlRWxlbWVudDo6Y2FuU3RhcnRTZWxlY3Rpb24oKSBj
b25zdApAQCAtMTk5LDE0ICsxOTcsMTQgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpkaWRBdHRh
Y2hSZW5kZXJlcnMoKQogICAgIGlmIChtX2ltYWdlTG9hZGVyLmhhc1BlbmRpbmdCZWZvcmVMb2Fk
RXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIFJlbmRlckltYWdlKiByZW5kZXJJbWFnZSA9
IHRvUmVuZGVySW1hZ2UocmVuZGVyZXIoKSk7Ci0gICAgUmVuZGVySW1hZ2VSZXNvdXJjZSogcmVu
ZGVySW1hZ2VSZXNvdXJjZSA9IHJlbmRlckltYWdlLT5pbWFnZVJlc291cmNlKCk7Ci0gICAgaWYg
KHJlbmRlckltYWdlUmVzb3VyY2UtPmhhc0ltYWdlKCkpCisgICAgUmVuZGVySW1hZ2VSZXNvdXJj
ZSYgcmVuZGVySW1hZ2VSZXNvdXJjZSA9IHJlbmRlckltYWdlLT5pbWFnZVJlc291cmNlKCk7Cisg
ICAgaWYgKHJlbmRlckltYWdlUmVzb3VyY2UuaGFzSW1hZ2UoKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIHJlbmRlckltYWdlUmVzb3VyY2UtPnNldENhY2hlZEltYWdlKG1faW1hZ2VMb2FkZXIuaW1h
Z2UoKSk7CisgICAgcmVuZGVySW1hZ2VSZXNvdXJjZS5zZXRDYWNoZWRJbWFnZShtX2ltYWdlTG9h
ZGVyLmltYWdlKCkpOwogCiAgICAgLy8gSWYgd2UgaGF2ZSBubyBpbWFnZSBhdCBhbGwgYmVjYXVz
ZSB3ZSBoYXZlIG5vIHNyYyBhdHRyaWJ1dGUsIHNldAogICAgIC8vIGltYWdlIGhlaWdodCBhbmQg
d2lkdGggZm9yIHRoZSBhbHQgdGV4dCBpbnN0ZWFkLgotICAgIGlmICghbV9pbWFnZUxvYWRlci5p
bWFnZSgpICYmICFyZW5kZXJJbWFnZVJlc291cmNlLT5jYWNoZWRJbWFnZSgpKQorICAgIGlmICgh
bV9pbWFnZUxvYWRlci5pbWFnZSgpICYmICFyZW5kZXJJbWFnZVJlc291cmNlLmNhY2hlZEltYWdl
KCkpCiAgICAgICAgIHJlbmRlckltYWdlLT5zZXRJbWFnZVNpemVGb3JBbHRUZXh0KCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCmluZGV4
IDU4MDgxMGEuLjE4ZWYyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50LmNwcApAQCAtMjIyLDExICsyMjIsOCBAQCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NS
ZWY8UgogICAgIGlmICh1c2VGYWxsYmFja0NvbnRlbnQoKSkKICAgICAgICAgcmV0dXJuIFJlbmRl
ckVsZW1lbnQ6OmNyZWF0ZUZvcigqdGhpcywgc3RkOjptb3ZlKHN0eWxlKSk7CiAKLSAgICBpZiAo
aXNJbWFnZVR5cGUoKSkgewotICAgICAgICBhdXRvIGltYWdlID0gY3JlYXRlUmVuZGVyZXI8UmVu
ZGVySW1hZ2U+KCp0aGlzLCBzdGQ6Om1vdmUoc3R5bGUpKTsKLSAgICAgICAgaW1hZ2UtPnNldElt
YWdlUmVzb3VyY2UoUmVuZGVySW1hZ2VSZXNvdXJjZTo6Y3JlYXRlKCkpOwotICAgICAgICByZXR1
cm4gc3RkOjptb3ZlKGltYWdlKTsKLSAgICB9CisgICAgaWYgKGlzSW1hZ2VUeXBlKCkpCisgICAg
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJbWFnZT4oKnRoaXMsIHN0ZDo6bW92ZShz
dHlsZSkpOwogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChTaGFkb3dSb290KiBzaGFkb3dS
b290ID0gdGhpcy0+c2hhZG93Um9vdCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmNwcAppbmRleCAzY2ZmNjVmLi42OTIzN2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBIVE1MVmlkZW9FbGVt
ZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKQogICAgICAgICAgICAgICAgIG1faW1hZ2VMb2FkZXIg
PSBhZG9wdFB0cihuZXcgSFRNTEltYWdlTG9hZGVyKHRoaXMpKTsKICAgICAgICAgICAgIG1faW1h
Z2VMb2FkZXItPnVwZGF0ZUZyb21FbGVtZW50KCk7CiAgICAgICAgICAgICBpZiAocmVuZGVyZXIo
KSkKLSAgICAgICAgICAgICAgICB0b1JlbmRlckltYWdlKHJlbmRlcmVyKCkpLT5pbWFnZVJlc291
cmNlKCktPnNldENhY2hlZEltYWdlKG1faW1hZ2VMb2FkZXItPmltYWdlKCkpOyAKKyAgICAgICAg
ICAgICAgICB0b1JlbmRlckltYWdlKHJlbmRlcmVyKCkpLT5pbWFnZVJlc291cmNlKCkuc2V0Q2Fj
aGVkSW1hZ2UobV9pbWFnZUxvYWRlci0+aW1hZ2UoKSk7CiAgICAgICAgIH0KICNpZiBFTkFCTEUo
UExVR0lOX1BST1hZX0ZPUl9WSURFTykKICAgICB9CkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBI
VE1MVmlkZW9FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9taWNTdHIKICAgICAgICAgICAgIG1faW1hZ2VMb2FkZXItPnVwZGF0ZUZyb21F
bGVtZW50SWdub3JpbmdQcmV2aW91c0Vycm9yKCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBpZiAocmVuZGVyZXIoKSkKLSAgICAgICAgICAgICAgICB0b1JlbmRlckltYWdlKHJlbmRl
cmVyKCkpLT5pbWFnZVJlc291cmNlKCktPnNldENhY2hlZEltYWdlKDApOyAKKyAgICAgICAgICAg
ICAgICB0b1JlbmRlckltYWdlKHJlbmRlcmVyKCkpLT5pbWFnZVJlc291cmNlKCkuc2V0Q2FjaGVk
SW1hZ2UoMCk7CiAgICAgICAgIH0KICAgICB9CiAjaWYgRU5BQkxFKElPU19BSVJQTEFZKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAppbmRleCAyOGZlNzUwLi44MDMzNThlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcApAQCAtMTAzLDkgKzEwMyw3IEBA
IHZvaWQgSW1hZ2VJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQqIGV2ZW50
KQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gSW1hZ2VJbnB1dFR5cGU6OmNyZWF0ZUlucHV0
UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiB7Ci0gICAgYXV0byBpbWFnZSA9
IGNyZWF0ZVJlbmRlcmVyPFJlbmRlckltYWdlPihlbGVtZW50KCksIHN0ZDo6bW92ZShzdHlsZSkp
OwotICAgIGltYWdlLT5zZXRJbWFnZVJlc291cmNlKFJlbmRlckltYWdlUmVzb3VyY2U6OmNyZWF0
ZSgpKTsKLSAgICByZXR1cm4gc3RkOjptb3ZlKGltYWdlKTsKKyAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVySW1hZ2U+KGVsZW1lbnQoKSwgc3RkOjptb3ZlKHN0eWxlKSk7CiB9CiAKIHZv
aWQgSW1hZ2VJbnB1dFR5cGU6OmFsdEF0dHJpYnV0ZUNoYW5nZWQoKQpAQCAtMTM3LDEyICsxMzUs
MTIgQEAgdm9pZCBJbWFnZUlucHV0VHlwZTo6YXR0YWNoKCkKICAgICBpZiAoaW1hZ2VMb2FkZXIt
Pmhhc1BlbmRpbmdCZWZvcmVMb2FkRXZlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVu
ZGVySW1hZ2VSZXNvdXJjZSogaW1hZ2VSZXNvdXJjZSA9IHJlbmRlcmVyLT5pbWFnZVJlc291cmNl
KCk7Ci0gICAgaW1hZ2VSZXNvdXJjZS0+c2V0Q2FjaGVkSW1hZ2UoaW1hZ2VMb2FkZXItPmltYWdl
KCkpOyAKKyAgICBhdXRvJiBpbWFnZVJlc291cmNlID0gcmVuZGVyZXItPmltYWdlUmVzb3VyY2Uo
KTsKKyAgICBpbWFnZVJlc291cmNlLnNldENhY2hlZEltYWdlKGltYWdlTG9hZGVyLT5pbWFnZSgp
KTsKIAogICAgIC8vIElmIHdlIGhhdmUgbm8gaW1hZ2UgYXQgYWxsIGJlY2F1c2Ugd2UgaGF2ZSBu
byBzcmMgYXR0cmlidXRlLCBzZXQKICAgICAvLyBpbWFnZSBoZWlnaHQgYW5kIHdpZHRoIGZvciB0
aGUgYWx0IHRleHQgaW5zdGVhZC4KLSAgICBpZiAoIWltYWdlTG9hZGVyLT5pbWFnZSgpICYmICFp
bWFnZVJlc291cmNlLT5jYWNoZWRJbWFnZSgpKQorICAgIGlmICghaW1hZ2VMb2FkZXItPmltYWdl
KCkgJiYgIWltYWdlUmVzb3VyY2UuY2FjaGVkSW1hZ2UoKSkKICAgICAgICAgcmVuZGVyZXItPnNl
dEltYWdlU2l6ZUZvckFsdFRleHQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRl
ci5jcHAKaW5kZXggNjBlYjk0Ni4uYzYwOTUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VM
b2FkZXIuY3BwCkBAIC0zMjYsMTYgKzMyNiwxNiBAQCBSZW5kZXJJbWFnZVJlc291cmNlKiBJbWFn
ZUxvYWRlcjo6cmVuZGVySW1hZ2VSZXNvdXJjZSgpCiAgICAgLy8gV2UgZG9uJ3QgcmV0dXJuIHN0
eWxlIGdlbmVyYXRlZCBpbWFnZSBiZWNhdXNlIGl0IGRvZXNuJ3QgYmVsb25nIHRvIHRoZSBJbWFn
ZUxvYWRlci4KICAgICAvLyBTZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00Mjg0MD4KICAgICBpZiAocmVuZGVyZXItPmlzSW1hZ2UoKSAmJiAhdG9SZW5kZXJJbWFn
ZSgqcmVuZGVyZXIpLmlzR2VuZXJhdGVkQ29udGVudCgpKQotICAgICAgICByZXR1cm4gdG9SZW5k
ZXJJbWFnZSgqcmVuZGVyZXIpLmltYWdlUmVzb3VyY2UoKTsKKyAgICAgICAgcmV0dXJuICZ0b1Jl
bmRlckltYWdlKCpyZW5kZXJlcikuaW1hZ2VSZXNvdXJjZSgpOwogCiAjaWYgRU5BQkxFKFNWRykK
ICAgICBpZiAocmVuZGVyZXItPmlzU1ZHSW1hZ2UoKSkKLSAgICAgICAgcmV0dXJuIHRvUmVuZGVy
U1ZHSW1hZ2UocmVuZGVyZXIpLT5pbWFnZVJlc291cmNlKCk7CisgICAgICAgIHJldHVybiAmdG9S
ZW5kZXJTVkdJbWFnZShyZW5kZXJlciktPmltYWdlUmVzb3VyY2UoKTsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKFZJREVPKQogICAgIGlmIChyZW5kZXJlci0+aXNWaWRlbygpKQotICAgICAgICByZXR1
cm4gdG9SZW5kZXJWaWRlbygqcmVuZGVyZXIpLmltYWdlUmVzb3VyY2UoKTsKKyAgICAgICAgcmV0
dXJuICZ0b1JlbmRlclZpZGVvKCpyZW5kZXJlcikuaW1hZ2VSZXNvdXJjZSgpOwogI2VuZGlmCiAK
ICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50LmNwcAppbmRleCA0ZjFjMTIyLi45ZTQ3MDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC0xMzEsMTIgKzEzMSwxMCBAQCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gUmVuZGVyRWxlbWVudDo6Y3JlYXRlRm9yKEVsZW1lbnQmIGVsZW1lbnQsIFBh
c3NSZWY8UmVuZAogICAgIC8vIE90aGVyd2lzZSBhY3RzIGFzIGlmIHdlIGRpZG4ndCBzdXBwb3J0
IHRoaXMgZmVhdHVyZS4KICAgICBjb25zdCBDb250ZW50RGF0YSogY29udGVudERhdGEgPSBzdHls
ZS5nZXQoKS5jb250ZW50RGF0YSgpOwogICAgIGlmIChjb250ZW50RGF0YSAmJiAhY29udGVudERh
dGEtPm5leHQoKSAmJiBjb250ZW50RGF0YS0+aXNJbWFnZSgpICYmICFlbGVtZW50LmlzUHNldWRv
RWxlbWVudCgpKSB7Ci0gICAgICAgIGF1dG8gaW1hZ2UgPSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJJ
bWFnZT4oZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSk7Ci0gICAgICAgIGlmIChjb25zdCBTdHls
ZUltYWdlKiBzdHlsZUltYWdlID0gc3RhdGljX2Nhc3Q8Y29uc3QgSW1hZ2VDb250ZW50RGF0YSo+
KGNvbnRlbnREYXRhKS0+aW1hZ2UoKSkgewotICAgICAgICAgICAgaW1hZ2UtPnNldEltYWdlUmVz
b3VyY2UoUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2U6OmNyZWF0ZShjb25zdF9jYXN0PFN0
eWxlSW1hZ2UmPigqc3R5bGVJbWFnZSkpKTsKKyAgICAgICAgYXV0byBzdHlsZUltYWdlID0gY29u
c3RfY2FzdDxTdHlsZUltYWdlKj4oc3RhdGljX2Nhc3Q8Y29uc3QgSW1hZ2VDb250ZW50RGF0YSo+
KGNvbnRlbnREYXRhKS0+aW1hZ2UoKSk7CisgICAgICAgIGF1dG8gaW1hZ2UgPSBjcmVhdGVSZW5k
ZXJlcjxSZW5kZXJJbWFnZT4oZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSwgc3R5bGVJbWFnZSk7
CisgICAgICAgIGlmIChzdHlsZUltYWdlKQogICAgICAgICAgICAgaW1hZ2UtPnNldElzR2VuZXJh
dGVkQ29udGVudCgpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGltYWdlLT5zZXRJbWFn
ZVJlc291cmNlKFJlbmRlckltYWdlUmVzb3VyY2U6OmNyZWF0ZSgpKTsKICAgICAgICAgcmV0dXJu
IHN0ZDo6bW92ZShpbWFnZSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlLmNwcAppbmRleCBjYjliNWY1Li5kMjUzNDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJJbmxpbmVF
bGVtZW50Qm94LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhaW50SW5mby5oIgor
I2luY2x1ZGUgIlJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVmlldy5oIgogI2luY2x1ZGUgIlNWR0ltYWdlLmgiCiAjaW5jbHVkZSA8d3RmL1N0YWNrU3Rh
dHMuaD4KQEAgLTExNSwyNyArMTE2LDMwIEBAIHZvaWQgUmVuZGVySW1hZ2U6OmNvbGxlY3RTZWxl
Y3Rpb25SZWN0cyhWZWN0b3I8U2VsZWN0aW9uUmVjdD4mIHJlY3RzLCB1bnNpZ25lZCwKIAogdXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotUmVuZGVySW1hZ2U6OlJlbmRlckltYWdlKEVsZW1l
bnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVySW1hZ2U6OlJl
bmRlckltYWdlKEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlLCBT
dHlsZUltYWdlKiBzdHlsZUltYWdlKQogICAgIDogUmVuZGVyUmVwbGFjZWQoZWxlbWVudCwgc3Rk
Ojptb3ZlKHN0eWxlKSwgSW50U2l6ZSgpKQorICAgICwgbV9pbWFnZVJlc291cmNlKHN0eWxlSW1h
Z2UgPyBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlPigqc3R5
bGVJbWFnZSkgOiBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlckltYWdlUmVzb3VyY2U+KCkpCiAgICAg
LCBtX25lZWRzVG9TZXRTaXplRm9yQWx0VGV4dChmYWxzZSkKICAgICAsIG1fZGlkSW5jcmVtZW50
VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQoZmFsc2UpCiAgICAgLCBtX2lzR2VuZXJhdGVkQ29u
dGVudChmYWxzZSkKIHsKICAgICB1cGRhdGVBbHRUZXh0KCk7CisgICAgaW1hZ2VSZXNvdXJjZSgp
LmluaXRpYWxpemUodGhpcyk7CiB9CiAKLVJlbmRlckltYWdlOjpSZW5kZXJJbWFnZShEb2N1bWVu
dCYgZG9jdW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQorUmVuZGVySW1hZ2U6OlJl
bmRlckltYWdlKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUs
IFN0eWxlSW1hZ2UqIHN0eWxlSW1hZ2UpCiAgICAgOiBSZW5kZXJSZXBsYWNlZChkb2N1bWVudCwg
c3RkOjptb3ZlKHN0eWxlKSwgSW50U2l6ZSgpKQorICAgICwgbV9pbWFnZVJlc291cmNlKHN0eWxl
SW1hZ2UgPyBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlPigq
c3R5bGVJbWFnZSkgOiBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlckltYWdlUmVzb3VyY2U+KCkpCiAg
ICAgLCBtX25lZWRzVG9TZXRTaXplRm9yQWx0VGV4dChmYWxzZSkKICAgICAsIG1fZGlkSW5jcmVt
ZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQoZmFsc2UpCiAgICAgLCBtX2lzR2VuZXJhdGVk
Q29udGVudChmYWxzZSkKIHsKKyAgICBpbWFnZVJlc291cmNlKCkuaW5pdGlhbGl6ZSh0aGlzKTsK
IH0KIAogUmVuZGVySW1hZ2U6On5SZW5kZXJJbWFnZSgpCiB7Ci0gICAgQVNTRVJUKG1faW1hZ2VS
ZXNvdXJjZSk7Ci0gICAgbV9pbWFnZVJlc291cmNlLT5zaHV0ZG93bigpOworICAgIGltYWdlUmVz
b3VyY2UoKS5zaHV0ZG93bigpOwogfQogCiBQYXNzUmVmPFJlbmRlclN0eWxlPiBSZW5kZXJJbWFn
ZTo6Y3JlYXRlU3R5bGVJbmhlcml0aW5nRnJvbVBzZXVkb1N0eWxlKGNvbnN0IFJlbmRlclN0eWxl
JiBwc2V1ZG9TdHlsZSkKQEAgLTE1MCwxMyArMTU0LDYgQEAgUGFzc1JlZjxSZW5kZXJTdHlsZT4g
UmVuZGVySW1hZ2U6OmNyZWF0ZVN0eWxlSW5oZXJpdGluZ0Zyb21Qc2V1ZG9TdHlsZShjb25zdCBS
ZW4KICAgICByZXR1cm4gc3R5bGU7CiB9CiAKLXZvaWQgUmVuZGVySW1hZ2U6OnNldEltYWdlUmVz
b3VyY2UoUGFzc093blB0cjxSZW5kZXJJbWFnZVJlc291cmNlPiBpbWFnZVJlc291cmNlKQotewot
ICAgIEFTU0VSVCghbV9pbWFnZVJlc291cmNlKTsKLSAgICBtX2ltYWdlUmVzb3VyY2UgPSBpbWFn
ZVJlc291cmNlOwotICAgIG1faW1hZ2VSZXNvdXJjZS0+aW5pdGlhbGl6ZSh0aGlzKTsKLX0KLQog
Ly8gSWYgd2UnbGwgYmUgZGlzcGxheWluZyBlaXRoZXIgYWx0IHRleHQgb3IgYW4gaW1hZ2UsIGFk
ZCBzb21lIHBhZGRpbmcuCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgcGFkZGluZ1dpZHRo
ID0gNDsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBwYWRkaW5nSGVpZ2h0ID0gNDsKQEAg
LTIxNyw3ICsyMTQsNyBAQCB2b2lkIFJlbmRlckltYWdlOjpzdHlsZURpZENoYW5nZShTdHlsZURp
ZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eQogewogICAgIFJlbmRlclJl
cGxhY2VkOjpzdHlsZURpZENoYW5nZShkaWZmLCBvbGRTdHlsZSk7CiAgICAgaWYgKG1fbmVlZHNU
b1NldFNpemVGb3JBbHRUZXh0KSB7Ci0gICAgICAgIGlmICghbV9hbHRUZXh0LmlzRW1wdHkoKSAm
JiBzZXRJbWFnZVNpemVGb3JBbHRUZXh0KG1faW1hZ2VSZXNvdXJjZS0+Y2FjaGVkSW1hZ2UoKSkp
CisgICAgICAgIGlmICghbV9hbHRUZXh0LmlzRW1wdHkoKSAmJiBzZXRJbWFnZVNpemVGb3JBbHRU
ZXh0KGltYWdlUmVzb3VyY2UoKS5jYWNoZWRJbWFnZSgpKSkKICAgICAgICAgICAgIGltYWdlRGlt
ZW5zaW9uc0NoYW5nZWQodHJ1ZSAvKiBpbWFnZVNpemVDaGFuZ2VkICovKTsKICAgICAgICAgbV9u
ZWVkc1RvU2V0U2l6ZUZvckFsdFRleHQgPSBmYWxzZTsKICAgICB9CkBAIC0yNDYsMjIgKzI0Mywx
OSBAQCB2b2lkIFJlbmRlckltYWdlOjppbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyIG5ld0lt
YWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQogICAgIGlmIChoYXNCb3hEZWNvcmF0aW9ucygpIHx8
IGhhc01hc2soKSkKICAgICAgICAgUmVuZGVyUmVwbGFjZWQ6OmltYWdlQ2hhbmdlZChuZXdJbWFn
ZSwgcmVjdCk7CiAKLSAgICBpZiAoIW1faW1hZ2VSZXNvdXJjZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgaWYgKG5ld0ltYWdlICE9IG1faW1hZ2VSZXNvdXJjZS0+aW1hZ2VQdHIoKSB8fCAhbmV3
SW1hZ2UpCisgICAgaWYgKG5ld0ltYWdlICE9IGltYWdlUmVzb3VyY2UoKS5pbWFnZVB0cigpIHx8
ICFuZXdJbWFnZSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlmICghbV9kaWRJbmNyZW1l
bnRWaXN1YWxseU5vbkVtcHR5UGl4ZWxDb3VudCkgewogICAgICAgICAvLyBBdCBhIHpvb20gbGV2
ZWwgb2YgMSB0aGUgaW1hZ2UgaXMgZ3VhcmFudGVlZCB0byBoYXZlIGFuIGludGVnZXIgc2l6ZS4K
LSAgICAgICAgdmlldygpLmZyYW1lVmlldygpLmluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhl
bENvdW50KGZsb29yZWRJbnRTaXplKG1faW1hZ2VSZXNvdXJjZS0+aW1hZ2VTaXplKDEuMGYpKSk7
CisgICAgICAgIHZpZXcoKS5mcmFtZVZpZXcoKS5pbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5UGl4
ZWxDb3VudChmbG9vcmVkSW50U2l6ZShpbWFnZVJlc291cmNlKCkuaW1hZ2VTaXplKDEuMGYpKSk7
CiAgICAgICAgIG1fZGlkSW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQgPSB0cnVl
OwogICAgIH0KIAogICAgIGJvb2wgaW1hZ2VTaXplQ2hhbmdlZCA9IGZhbHNlOwogCiAgICAgLy8g
U2V0IGltYWdlIGRpbWVuc2lvbnMsIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHNpemUgb2YgdGhl
IGFsdCB0ZXh0LgotICAgIGlmIChtX2ltYWdlUmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSkgewor
ICAgIGlmIChpbWFnZVJlc291cmNlKCkuZXJyb3JPY2N1cnJlZCgpKSB7CiAgICAgICAgIGlmICgh
bV9hbHRUZXh0LmlzRW1wdHkoKSAmJiBkb2N1bWVudCgpLmhhc1BlbmRpbmdTdHlsZVJlY2FsYygp
KSB7CiAgICAgICAgICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICAgICAgICAgIGlmIChlbGVt
ZW50KCkpIHsKQEAgLTI3MCw3ICsyNjQsNyBAQCB2b2lkIFJlbmRlckltYWdlOjppbWFnZUNoYW5n
ZWQoV3JhcHBlZEltYWdlUHRyIG5ld0ltYWdlLCBjb25zdCBJbnRSZWN0KiByZWN0KQogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGltYWdlU2l6
ZUNoYW5nZWQgPSBzZXRJbWFnZVNpemVGb3JBbHRUZXh0KG1faW1hZ2VSZXNvdXJjZS0+Y2FjaGVk
SW1hZ2UoKSk7CisgICAgICAgIGltYWdlU2l6ZUNoYW5nZWQgPSBzZXRJbWFnZVNpemVGb3JBbHRU
ZXh0KGltYWdlUmVzb3VyY2UoKS5jYWNoZWRJbWFnZSgpKTsKICAgICB9CiAKICAgICBpbWFnZURp
bWVuc2lvbnNDaGFuZ2VkKGltYWdlU2l6ZUNoYW5nZWQsIHJlY3QpOwpAQCAtMjgwLDcgKzI3NCw3
IEBAIGJvb2wgUmVuZGVySW1hZ2U6OnVwZGF0ZUludHJpbnNpY1NpemVJZk5lZWRlZChjb25zdCBM
YXlvdXRTaXplJiBuZXdTaXplLCBib29sIGltCiB7CiAgICAgaWYgKG5ld1NpemUgPT0gaW50cmlu
c2ljU2l6ZSgpICYmICFpbWFnZVNpemVDaGFuZ2VkKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgaWYgKG1faW1hZ2VSZXNvdXJjZS0+ZXJyb3JPY2N1cnJlZCgpKQorICAgIGlmIChpbWFnZVJl
c291cmNlKCkuZXJyb3JPY2N1cnJlZCgpKQogICAgICAgICByZXR1cm4gaW1hZ2VTaXplQ2hhbmdl
ZDsKICAgICBzZXRJbnRyaW5zaWNTaXplKG5ld1NpemUpOwogICAgIHJldHVybiB0cnVlOwpAQCAt
MjkyLDcgKzI4Niw3IEBAIHZvaWQgUmVuZGVySW1hZ2U6OnVwZGF0ZUlubmVyQ29udGVudFJlY3Qo
KQogICAgIExheW91dFJlY3QgcGFpbnRSZWN0ID0gcmVwbGFjZWRDb250ZW50UmVjdChpbnRyaW5z
aWNTaXplKCkpOwogICAgIEludFNpemUgY29udGFpbmVyU2l6ZShwYWludFJlY3Qud2lkdGgoKSwg
cGFpbnRSZWN0LmhlaWdodCgpKTsKICAgICBpZiAoIWNvbnRhaW5lclNpemUuaXNFbXB0eSgpKQot
ICAgICAgICBtX2ltYWdlUmVzb3VyY2UtPnNldENvbnRhaW5lclNpemVGb3JSZW5kZXJlcihjb250
YWluZXJTaXplKTsKKyAgICAgICAgaW1hZ2VSZXNvdXJjZSgpLnNldENvbnRhaW5lclNpemVGb3JS
ZW5kZXJlcihjb250YWluZXJTaXplKTsKIH0KIAogdm9pZCBSZW5kZXJJbWFnZTo6aW1hZ2VEaW1l
bnNpb25zQ2hhbmdlZChib29sIGltYWdlU2l6ZUNoYW5nZWQsIGNvbnN0IEludFJlY3QqIHJlY3Qp
CkBAIC0zMDMsOSArMjk3LDkgQEAgdm9pZCBSZW5kZXJJbWFnZTo6aW1hZ2VEaW1lbnNpb25zQ2hh
bmdlZChib29sIGltYWdlU2l6ZUNoYW5nZWQsIGNvbnN0IEludFJlY3QqIHIKICAgICAgICAgc2Nh
bGUgPSByb3VuZEZvckltcHJlY2lzZUNvbnZlcnNpb248aW50PihzY2FsZSk7CiAgICAgaWYgKHNj
YWxlIDw9IDApCiAgICAgICAgIHNjYWxlID0gMTsKLSAgICBib29sIGludHJpbnNpY1NpemVDaGFu
Z2VkID0gdXBkYXRlSW50cmluc2ljU2l6ZUlmTmVlZGVkKG1faW1hZ2VSZXNvdXJjZS0+aW50cmlu
c2ljU2l6ZShzdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSAvIHNjYWxlKSwgaW1hZ2VTaXplQ2hhbmdl
ZCk7CisgICAgYm9vbCBpbnRyaW5zaWNTaXplQ2hhbmdlZCA9IHVwZGF0ZUludHJpbnNpY1NpemVJ
Zk5lZWRlZChpbWFnZVJlc291cmNlKCkuaW50cmluc2ljU2l6ZShzdHlsZSgpLmVmZmVjdGl2ZVpv
b20oKSAvIHNjYWxlKSwgaW1hZ2VTaXplQ2hhbmdlZCk7CiAjZWxzZQotICAgIGJvb2wgaW50cmlu
c2ljU2l6ZUNoYW5nZWQgPSB1cGRhdGVJbnRyaW5zaWNTaXplSWZOZWVkZWQobV9pbWFnZVJlc291
cmNlLT5pbnRyaW5zaWNTaXplKHN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKSwgaW1hZ2VTaXplQ2hh
bmdlZCk7CisgICAgYm9vbCBpbnRyaW5zaWNTaXplQ2hhbmdlZCA9IHVwZGF0ZUludHJpbnNpY1Np
emVJZk5lZWRlZChpbWFnZVJlc291cmNlKCkuaW50cmluc2ljU2l6ZShzdHlsZSgpLmVmZmVjdGl2
ZVpvb20oKSksIGltYWdlU2l6ZUNoYW5nZWQpOwogI2VuZGlmCiAKICAgICAvLyBJbiB0aGUgY2Fz
ZSBvZiBnZW5lcmF0ZWQgaW1hZ2UgY29udGVudCB1c2luZyA6YmVmb3JlLzphZnRlci9jb250ZW50
LCB3ZSBtaWdodCBub3QgYmUKQEAgLTM2Miw3ICszNTYsNyBAQCB2b2lkIFJlbmRlckltYWdlOjpp
bWFnZURpbWVuc2lvbnNDaGFuZ2VkKGJvb2wgaW1hZ2VTaXplQ2hhbmdlZCwgY29uc3QgSW50UmVj
dCogcgogICAgICAgICBpZiAocmVjdCkgewogICAgICAgICAgICAgLy8gVGhlIGltYWdlIGNoYW5n
ZWQgcmVjdCBpcyBpbiBzb3VyY2UgaW1hZ2UgY29vcmRpbmF0ZXMgKHByZS16b29taW5nKSwKICAg
ICAgICAgICAgIC8vIHNvIG1hcCBmcm9tIHRoZSBib3VuZHMgb2YgdGhlIGltYWdlIHRvIHRoZSBj
b250ZW50c0JveC4KLSAgICAgICAgICAgIHJlcGFpbnRSZWN0ID0gZW5jbG9zaW5nSW50UmVjdCht
YXBSZWN0KCpyZWN0LCBGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBtX2ltYWdlUmVzb3VyY2UtPmlt
YWdlU2l6ZSgxLjBmKSksIGNvbnRlbnRCb3hSZWN0KCkpKTsKKyAgICAgICAgICAgIHJlcGFpbnRS
ZWN0ID0gZW5jbG9zaW5nSW50UmVjdChtYXBSZWN0KCpyZWN0LCBGbG9hdFJlY3QoRmxvYXRQb2lu
dCgpLCBpbWFnZVJlc291cmNlKCkuaW1hZ2VTaXplKDEuMGYpKSwgY29udGVudEJveFJlY3QoKSkp
OwogICAgICAgICAgICAgLy8gR3VhcmQgYWdhaW5zdCB0b28tbGFyZ2UgY2hhbmdlZCByZWN0cy4K
ICAgICAgICAgICAgIHJlcGFpbnRSZWN0LmludGVyc2VjdChjb250ZW50Qm94UmVjdCgpKTsKICAg
ICAgICAgfSBlbHNlCkBAIC0zNzksMTYgKzM3MywxMyBAQCB2b2lkIFJlbmRlckltYWdlOjppbWFn
ZURpbWVuc2lvbnNDaGFuZ2VkKGJvb2wgaW1hZ2VTaXplQ2hhbmdlZCwgY29uc3QgSW50UmVjdCog
cgogCiB2b2lkIFJlbmRlckltYWdlOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogbmV3
SW1hZ2UpCiB7Ci0gICAgaWYgKCFtX2ltYWdlUmVzb3VyY2UpCi0gICAgICAgIHJldHVybjsKLSAg
ICAKICAgICBpZiAoZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQogICAgICAgICByZXR1cm47CiAK
ICAgICBpbnZhbGlkYXRlQmFja2dyb3VuZE9ic2N1cmF0aW9uU3RhdHVzKCk7CiAKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKG5ld0ltYWdlID09IG1faW1hZ2VSZXNv
dXJjZS0+Y2FjaGVkSW1hZ2UoKSkgeworICAgIGlmIChuZXdJbWFnZSA9PSBpbWFnZVJlc291cmNl
KCkuY2FjaGVkSW1hZ2UoKSkgewogICAgICAgICAvLyB0ZWxsIGFueSBwb3RlbnRpYWwgY29tcG9z
aXRpbmcgbGF5ZXJzCiAgICAgICAgIC8vIHRoYXQgdGhlIGltYWdlIGlzIGRvbmUgYW5kIHRoZXkg
Y2FuIHJlZmVyZW5jZSBpdCBkaXJlY3RseS4KICAgICAgICAgY29udGVudENoYW5nZWQoSW1hZ2VD
aGFuZ2VkKTsKQEAgLTQxMSw3ICs0MDIsNyBAQCB2b2lkIFJlbmRlckltYWdlOjpwYWludFJlcGxh
Y2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZgogCiAg
ICAgUGFnZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwogCi0gICAgaWYgKCFtX2ltYWdlUmVzb3Vy
Y2UtPmhhc0ltYWdlKCkgfHwgbV9pbWFnZVJlc291cmNlLT5lcnJvck9jY3VycmVkKCkpIHsKKyAg
ICBpZiAoIWltYWdlUmVzb3VyY2UoKS5oYXNJbWFnZSgpIHx8IGltYWdlUmVzb3VyY2UoKS5lcnJv
ck9jY3VycmVkKCkpIHsKICAgICAgICAgaWYgKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNl
U2VsZWN0aW9uKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC00MzQsMTIgKzQyNSwxMiBAQCB2
b2lkIFJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBMYXlvdXRQb2ludCYgcGFpbnRPZgogICAgICAgICAgICAgTGF5b3V0VW5pdCB1c2FibGVXaWR0
aCA9IGNXaWR0aCAtIDIgKiBib3JkZXJXaWR0aDsKICAgICAgICAgICAgIExheW91dFVuaXQgdXNh
YmxlSGVpZ2h0ID0gY0hlaWdodCAtIDIgKiBib3JkZXJXaWR0aDsKIAotICAgICAgICAgICAgUmVm
UHRyPEltYWdlPiBpbWFnZSA9IG1faW1hZ2VSZXNvdXJjZS0+aW1hZ2UoKTsKKyAgICAgICAgICAg
IFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBpbWFnZVJlc291cmNlKCkuaW1hZ2UoKTsKIAotICAgICAg
ICAgICAgaWYgKG1faW1hZ2VSZXNvdXJjZS0+ZXJyb3JPY2N1cnJlZCgpICYmICFpbWFnZS0+aXNO
dWxsKCkgJiYgdXNhYmxlV2lkdGggPj0gaW1hZ2UtPndpZHRoKCkgJiYgdXNhYmxlSGVpZ2h0ID49
IGltYWdlLT5oZWlnaHQoKSkgeworICAgICAgICAgICAgaWYgKGltYWdlUmVzb3VyY2UoKS5lcnJv
ck9jY3VycmVkKCkgJiYgIWltYWdlLT5pc051bGwoKSAmJiB1c2FibGVXaWR0aCA+PSBpbWFnZS0+
d2lkdGgoKSAmJiB1c2FibGVIZWlnaHQgPj0gaW1hZ2UtPmhlaWdodCgpKSB7CiAgICAgICAgICAg
ICAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBXZWJDb3JlOjpkZXZpY2VTY2FsZUZhY3Rv
cigmZnJhbWUoKSk7CiAgICAgICAgICAgICAgICAgLy8gQ2FsbCBicm9rZW5JbWFnZSgpIGV4cGxp
Y2l0bHkgdG8gZW5zdXJlIHdlIGdldCB0aGUgYnJva2VuIGltYWdlIGljb24gYXQgdGhlIGFwcHJv
cHJpYXRlIHJlc29sdXRpb24uCi0gICAgICAgICAgICAgICAgc3RkOjpwYWlyPEltYWdlKiwgZmxv
YXQ+IGJyb2tlbkltYWdlQW5kSW1hZ2VTY2FsZUZhY3RvciA9IG1faW1hZ2VSZXNvdXJjZS0+Y2Fj
aGVkSW1hZ2UoKS0+YnJva2VuSW1hZ2UoZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICAgICAg
ICAgIHN0ZDo6cGFpcjxJbWFnZSosIGZsb2F0PiBicm9rZW5JbWFnZUFuZEltYWdlU2NhbGVGYWN0
b3IgPSBpbWFnZVJlc291cmNlKCkuY2FjaGVkSW1hZ2UoKS0+YnJva2VuSW1hZ2UoZGV2aWNlU2Nh
bGVGYWN0b3IpOwogICAgICAgICAgICAgICAgIGltYWdlID0gYnJva2VuSW1hZ2VBbmRJbWFnZVNj
YWxlRmFjdG9yLmZpcnN0OwogICAgICAgICAgICAgICAgIEludFNpemUgaW1hZ2VTaXplID0gaW1h
Z2UtPnNpemUoKTsKICAgICAgICAgICAgICAgICBpbWFnZVNpemUuc2NhbGUoMSAvIGJyb2tlbklt
YWdlQW5kSW1hZ2VTY2FsZUZhY3Rvci5zZWNvbmQpOwpAQCAtNDgwLDggKzQ3MSw4IEBAIHZvaWQg
UmVuZGVySW1hZ2U6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW50JiBwYWludE9mCiAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUZXh0
KGZvbnQsIHRleHRSdW4sIGFsdFRleHRPZmZzZXQpOwogICAgICAgICAgICAgfQogICAgICAgICB9
Ci0gICAgfSBlbHNlIGlmIChtX2ltYWdlUmVzb3VyY2UtPmhhc0ltYWdlKCkgJiYgY1dpZHRoID4g
MCAmJiBjSGVpZ2h0ID4gMCkgewotICAgICAgICBSZWZQdHI8SW1hZ2U+IGltZyA9IG1faW1hZ2VS
ZXNvdXJjZS0+aW1hZ2UoY1dpZHRoLCBjSGVpZ2h0KTsKKyAgICB9IGVsc2UgaWYgKGltYWdlUmVz
b3VyY2UoKS5oYXNJbWFnZSgpICYmIGNXaWR0aCA+IDAgJiYgY0hlaWdodCA+IDApIHsKKyAgICAg
ICAgUmVmUHRyPEltYWdlPiBpbWcgPSBpbWFnZVJlc291cmNlKCkuaW1hZ2UoY1dpZHRoLCBjSGVp
Z2h0KTsKICAgICAgICAgaWYgKCFpbWcgfHwgaW1nLT5pc051bGwoKSkgewogICAgICAgICAgICAg
aWYgKHBhZ2UgJiYgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKQogICAg
ICAgICAgICAgICAgIHBhZ2UtPmFkZFJlbGV2YW50VW5wYWludGVkT2JqZWN0KHRoaXMsIHZpc3Vh
bE92ZXJmbG93UmVjdCgpKTsKQEAgLTU3NiwyMiArNTY3LDIyIEBAIHZvaWQgUmVuZGVySW1hZ2U6
OmFyZWFFbGVtZW50Rm9jdXNDaGFuZ2VkKEhUTUxBcmVhRWxlbWVudCogZWxlbWVudCkKIHZvaWQg
UmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBMYXlvdXRSZWN0JiByZWN0KQogewogICAgIEludFJlY3QgYWxpZ25lZFJlY3QgPSBwaXhlbFNu
YXBwZWRJbnRSZWN0KHJlY3QpOwotICAgIGlmICghbV9pbWFnZVJlc291cmNlLT5oYXNJbWFnZSgp
IHx8IG1faW1hZ2VSZXNvdXJjZS0+ZXJyb3JPY2N1cnJlZCgpIHx8IGFsaWduZWRSZWN0LndpZHRo
KCkgPD0gMCB8fCBhbGlnbmVkUmVjdC5oZWlnaHQoKSA8PSAwKQorICAgIGlmICghaW1hZ2VSZXNv
dXJjZSgpLmhhc0ltYWdlKCkgfHwgaW1hZ2VSZXNvdXJjZSgpLmVycm9yT2NjdXJyZWQoKSB8fCBh
bGlnbmVkUmVjdC53aWR0aCgpIDw9IDAgfHwgYWxpZ25lZFJlY3QuaGVpZ2h0KCkgPD0gMCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPEltYWdlPiBpbWcgPSBtX2ltYWdlUmVzb3VyY2Ut
PmltYWdlKGFsaWduZWRSZWN0LndpZHRoKCksIGFsaWduZWRSZWN0LmhlaWdodCgpKTsKKyAgICBS
ZWZQdHI8SW1hZ2U+IGltZyA9IGltYWdlUmVzb3VyY2UoKS5pbWFnZShhbGlnbmVkUmVjdC53aWR0
aCgpLCBhbGlnbmVkUmVjdC5oZWlnaHQoKSk7CiAgICAgaWYgKCFpbWcgfHwgaW1nLT5pc051bGwo
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgSFRNTEltYWdlRWxlbWVudCogaW1hZ2VFbHQgPSAo
ZWxlbWVudCgpICYmIGlzSFRNTEltYWdlRWxlbWVudChlbGVtZW50KCkpKSA/IHRvSFRNTEltYWdl
RWxlbWVudChlbGVtZW50KCkpIDogMDsKICAgICBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVP
cGVyYXRvciA9IGltYWdlRWx0ID8gaW1hZ2VFbHQtPmNvbXBvc2l0ZU9wZXJhdG9yKCkgOiBDb21w
b3NpdGVTb3VyY2VPdmVyOwotICAgIEltYWdlKiBpbWFnZSA9IG1faW1hZ2VSZXNvdXJjZS0+aW1h
Z2UoKS5nZXQoKTsKKyAgICBJbWFnZSogaW1hZ2UgPSBpbWFnZVJlc291cmNlKCkuaW1hZ2UoKS5n
ZXQoKTsKICAgICBib29sIHVzZUxvd1F1YWxpdHlTY2FsaW5nID0gc2hvdWxkUGFpbnRBdExvd1F1
YWxpdHkoY29udGV4dCwgaW1hZ2UsIGltYWdlLCBhbGlnbmVkUmVjdC5zaXplKCkpOwogICAgIElt
YWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBvcmllbnRhdGlvbkRlc2NyaXB0aW9uKHNob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uKCkpOwogI2lmIEVOQUJMRShDU1NfSU1BR0VfT1JJRU5UQVRJ
T04pCiAgICAgb3JpZW50YXRpb25EZXNjcmlwdGlvbi5zZXRJbWFnZU9yaWVudGF0aW9uRW51bShz
dHlsZSgpLmltYWdlT3JpZW50YXRpb24oKSk7CiAjZW5kaWYKLSAgICBjb250ZXh0LT5kcmF3SW1h
Z2UobV9pbWFnZVJlc291cmNlLT5pbWFnZShhbGlnbmVkUmVjdC53aWR0aCgpLCBhbGlnbmVkUmVj
dC5oZWlnaHQoKSkuZ2V0KCksIHN0eWxlKCkuY29sb3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgY29t
cG9zaXRlT3BlcmF0b3IsIG9yaWVudGF0aW9uRGVzY3JpcHRpb24sIHVzZUxvd1F1YWxpdHlTY2Fs
aW5nKTsKKyAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2VSZXNvdXJjZSgpLmltYWdlKGFsaWdu
ZWRSZWN0LndpZHRoKCksIGFsaWduZWRSZWN0LmhlaWdodCgpKS5nZXQoKSwgc3R5bGUoKS5jb2xv
clNwYWNlKCksIGFsaWduZWRSZWN0LCBjb21wb3NpdGVPcGVyYXRvciwgb3JpZW50YXRpb25EZXNj
cmlwdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxpbmcpOwogfQogCiBib29sIFJlbmRlckltYWdlOjpi
b3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoQmFja2dyb3VuZEJsZWVkQXZvaWRh
bmNlIGJsZWVkQXZvaWRhbmNlLCBJbmxpbmVGbG93Qm94KikgY29uc3QKQEAgLTYwNSw5ICs1OTYs
OSBAQCBib29sIFJlbmRlckltYWdlOjpib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91
bmQoQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlCiBib29sIFJlbmRlckltYWdlOjpmb3JlZ3JvdW5k
SXNLbm93blRvQmVPcGFxdWVJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgbG9jYWxSZWN0LCB1bnNp
Z25lZCBtYXhEZXB0aFRvVGVzdCkgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0obWF4RGVwdGhU
b1Rlc3QpOwotICAgIGlmICghbV9pbWFnZVJlc291cmNlLT5oYXNJbWFnZSgpIHx8IG1faW1hZ2VS
ZXNvdXJjZS0+ZXJyb3JPY2N1cnJlZCgpKQorICAgIGlmICghaW1hZ2VSZXNvdXJjZSgpLmhhc0lt
YWdlKCkgfHwgaW1hZ2VSZXNvdXJjZSgpLmVycm9yT2NjdXJyZWQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGlmIChtX2ltYWdlUmVzb3VyY2UtPmNhY2hlZEltYWdlKCkgJiYgIW1faW1h
Z2VSZXNvdXJjZS0+Y2FjaGVkSW1hZ2UoKS0+aXNMb2FkZWQoKSkKKyAgICBpZiAoaW1hZ2VSZXNv
dXJjZSgpLmNhY2hlZEltYWdlKCkgJiYgIWltYWdlUmVzb3VyY2UoKS5jYWNoZWRJbWFnZSgpLT5p
c0xvYWRlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFjb250ZW50Qm94UmVj
dCgpLmNvbnRhaW5zKGxvY2FsUmVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTYyMyw3
ICs2MTQsNyBAQCBib29sIFJlbmRlckltYWdlOjpmb3JlZ3JvdW5kSXNLbm93blRvQmVPcGFxdWVJ
blJlY3QoY29uc3QgTGF5b3V0UmVjdCYgbG9jYWxSZWN0LAogICAgIGlmIChvYmplY3RGaXQgIT0g
T2JqZWN0Rml0RmlsbCAmJiBvYmplY3RGaXQgIT0gT2JqZWN0Rml0Q292ZXIpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAvLyBDaGVjayBmb3IgaW1hZ2Ugd2l0aCBhbHBoYS4KLSAgICByZXR1
cm4gbV9pbWFnZVJlc291cmNlLT5jYWNoZWRJbWFnZSgpICYmIG1faW1hZ2VSZXNvdXJjZS0+Y2Fj
aGVkSW1hZ2UoKS0+Y3VycmVudEZyYW1lS25vd25Ub0JlT3BhcXVlKHRoaXMpOworICAgIHJldHVy
biBpbWFnZVJlc291cmNlKCkuY2FjaGVkSW1hZ2UoKSAmJiBpbWFnZVJlc291cmNlKCkuY2FjaGVk
SW1hZ2UoKS0+Y3VycmVudEZyYW1lS25vd25Ub0JlT3BhcXVlKHRoaXMpOwogfQogCiBib29sIFJl
bmRlckltYWdlOjpjb21wdXRlQmFja2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQoKQpAQCAtNjM5
LDcgKzYzMCw3IEBAIGJvb2wgUmVuZGVySW1hZ2U6OmNvbXB1dGVCYWNrZ3JvdW5kSXNLbm93blRv
QmVPYnNjdXJlZCgpCiAKIExheW91dFVuaXQgUmVuZGVySW1hZ2U6Om1pbmltdW1SZXBsYWNlZEhl
aWdodCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faW1hZ2VSZXNvdXJjZS0+ZXJyb3JPY2N1cnJl
ZCgpID8gaW50cmluc2ljU2l6ZSgpLmhlaWdodCgpIDogTGF5b3V0VW5pdCgpOworICAgIHJldHVy
biBpbWFnZVJlc291cmNlKCkuZXJyb3JPY2N1cnJlZCgpID8gaW50cmluc2ljU2l6ZSgpLmhlaWdo
dCgpIDogTGF5b3V0VW5pdCgpOwogfQogCiBIVE1MTWFwRWxlbWVudCogUmVuZGVySW1hZ2U6Omlt
YWdlTWFwKCkgY29uc3QKQEAgLTY5NSw3ICs2ODYsNyBAQCB2b2lkIFJlbmRlckltYWdlOjpjb21w
dXRlSW50cmluc2ljUmF0aW9JbmZvcm1hdGlvbihGbG9hdFNpemUmIGludHJpbnNpY1NpemUsIGRv
dQogICAgIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljUmF0aW9JbmZvcm1hdGlvbihp
bnRyaW5zaWNTaXplLCBpbnRyaW5zaWNSYXRpbywgaXNQZXJjZW50YWdlSW50cmluc2ljU2l6ZSk7
CiAKICAgICAvLyBPdXIgaW50cmluc2ljU2l6ZSBpcyBlbXB0eSBpZiB3ZSdyZSByZW5kZXJpbmcg
Z2VuZXJhdGVkIGltYWdlcyB3aXRoIHJlbGF0aXZlIHdpZHRoL2hlaWdodC4gRmlndXJlIG91dCB0
aGUgcmlnaHQgaW50cmluc2ljIHNpemUgdG8gdXNlLgotICAgIGlmIChpbnRyaW5zaWNTaXplLmlz
RW1wdHkoKSAmJiAobV9pbWFnZVJlc291cmNlLT5pbWFnZUhhc1JlbGF0aXZlV2lkdGgoKSB8fCBt
X2ltYWdlUmVzb3VyY2UtPmltYWdlSGFzUmVsYXRpdmVIZWlnaHQoKSkpIHsKKyAgICBpZiAoaW50
cmluc2ljU2l6ZS5pc0VtcHR5KCkgJiYgKGltYWdlUmVzb3VyY2UoKS5pbWFnZUhhc1JlbGF0aXZl
V2lkdGgoKSB8fCBpbWFnZVJlc291cmNlKCkuaW1hZ2VIYXNSZWxhdGl2ZUhlaWdodCgpKSkgewog
ICAgICAgICBSZW5kZXJPYmplY3QqIGNvbnRhaW5pbmdCbG9jayA9IGlzT3V0T2ZGbG93UG9zaXRp
b25lZCgpID8gY29udGFpbmVyKCkgOiB0aGlzLT5jb250YWluaW5nQmxvY2soKTsKICAgICAgICAg
aWYgKGNvbnRhaW5pbmdCbG9jay0+aXNCb3goKSkgewogICAgICAgICAgICAgUmVuZGVyQm94KiBi
b3ggPSB0b1JlbmRlckJveChjb250YWluaW5nQmxvY2spOwpAQCAtNzA0LDcgKzY5NSw3IEBAIHZv
aWQgUmVuZGVySW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0aW9uKEZsb2F0U2l6
ZSYgaW50cmluc2ljU2l6ZSwgZG91CiAgICAgICAgIH0KICAgICB9CiAgICAgLy8gRG9uJ3QgY29t
cHV0ZSBhbiBpbnRyaW5zaWMgcmF0aW8gdG8gcHJlc2VydmUgaGlzdG9yaWNhbCBXZWJLaXQgYmVo
YXZpb3IgaWYgd2UncmUgcGFpbnRpbmcgYWx0IHRleHQgYW5kL29yIGEgYnJva2VuIGltYWdlLgot
ICAgIGlmIChtX2ltYWdlUmVzb3VyY2UgJiYgbV9pbWFnZVJlc291cmNlLT5lcnJvck9jY3VycmVk
KCkpIHsKKyAgICBpZiAoaW1hZ2VSZXNvdXJjZSgpLmVycm9yT2NjdXJyZWQoKSkgewogICAgICAg
ICBpbnRyaW5zaWNSYXRpbyA9IDE7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC03MTksMTEg
KzcxMCw4IEBAIGJvb2wgUmVuZGVySW1hZ2U6Om5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxh
dGlvbigpIGNvbnN0CiAKIFJlbmRlckJveCogUmVuZGVySW1hZ2U6OmVtYmVkZGVkQ29udGVudEJv
eCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2ltYWdlUmVzb3VyY2UpCi0gICAgICAgIHJldHVybiAw
OwotCiAjaWYgRU5BQkxFKFNWRykKLSAgICBDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2UgPSBtX2lt
YWdlUmVzb3VyY2UtPmNhY2hlZEltYWdlKCk7CisgICAgQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdl
ID0gaW1hZ2VSZXNvdXJjZSgpLmNhY2hlZEltYWdlKCk7CiAgICAgaWYgKGNhY2hlZEltYWdlICYm
IGNhY2hlZEltYWdlLT5pbWFnZSgpICYmIGNhY2hlZEltYWdlLT5pbWFnZSgpLT5pc1NWR0ltYWdl
KCkpCiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxTVkdJbWFnZSo+KGNhY2hlZEltYWdlLT5p
bWFnZSgpKS0+ZW1iZWRkZWRDb250ZW50Qm94KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlLmgKaW5kZXggZDdkZDMzNS4uZjdiYTUzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckltYWdlLmgKQEAgLTM1LDE4ICszNSwxNiBAQCBjbGFzcyBIVE1MTWFw
RWxlbWVudDsKIAogY2xhc3MgUmVuZGVySW1hZ2UgOiBwdWJsaWMgUmVuZGVyUmVwbGFjZWQgewog
cHVibGljOgotICAgIGV4cGxpY2l0IFJlbmRlckltYWdlKEVsZW1lbnQmLCBQYXNzUmVmPFJlbmRl
clN0eWxlPik7Ci0gICAgZXhwbGljaXQgUmVuZGVySW1hZ2UoRG9jdW1lbnQmLCBQYXNzUmVmPFJl
bmRlclN0eWxlPik7CisgICAgUmVuZGVySW1hZ2UoRWxlbWVudCYsIFBhc3NSZWY8UmVuZGVyU3R5
bGU+LCBTdHlsZUltYWdlKiA9IG51bGxwdHIpOworICAgIFJlbmRlckltYWdlKERvY3VtZW50Jiwg
UGFzc1JlZjxSZW5kZXJTdHlsZT4sIFN0eWxlSW1hZ2UqID0gbnVsbHB0cik7CiAgICAgdmlydHVh
bCB+UmVuZGVySW1hZ2UoKTsKIAogICAgIC8vIENyZWF0ZSBhIFJlbmRlclN0eWxlIGZvciBnZW5l
cmF0ZWQgY29udGVudCBieSBpbmhlcml0aW5nIGZyb20gYSBwc2V1ZG8gc3R5bGUuCiAgICAgc3Rh
dGljIFBhc3NSZWY8UmVuZGVyU3R5bGU+IGNyZWF0ZVN0eWxlSW5oZXJpdGluZ0Zyb21Qc2V1ZG9T
dHlsZShjb25zdCBSZW5kZXJTdHlsZSYpOwogCi0gICAgdm9pZCBzZXRJbWFnZVJlc291cmNlKFBh
c3NPd25QdHI8UmVuZGVySW1hZ2VSZXNvdXJjZT4pOwotCi0gICAgUmVuZGVySW1hZ2VSZXNvdXJj
ZSogaW1hZ2VSZXNvdXJjZSgpIHsgcmV0dXJuIG1faW1hZ2VSZXNvdXJjZS5nZXQoKTsgfQotICAg
IGNvbnN0IFJlbmRlckltYWdlUmVzb3VyY2UqIGltYWdlUmVzb3VyY2UoKSBjb25zdCB7IHJldHVy
biBtX2ltYWdlUmVzb3VyY2UuZ2V0KCk7IH0KLSAgICBDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2Uo
KSBjb25zdCB7IHJldHVybiBtX2ltYWdlUmVzb3VyY2UgPyBtX2ltYWdlUmVzb3VyY2UtPmNhY2hl
ZEltYWdlKCkgOiAwOyB9CisgICAgUmVuZGVySW1hZ2VSZXNvdXJjZSYgaW1hZ2VSZXNvdXJjZSgp
IHsgcmV0dXJuICptX2ltYWdlUmVzb3VyY2U7IH0KKyAgICBjb25zdCBSZW5kZXJJbWFnZVJlc291
cmNlJiBpbWFnZVJlc291cmNlKCkgY29uc3QgeyByZXR1cm4gKm1faW1hZ2VSZXNvdXJjZTsgfQor
ICAgIENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGltYWdlUmVzb3Vy
Y2UoKS5jYWNoZWRJbWFnZSgpOyB9CiAKICAgICBib29sIHNldEltYWdlU2l6ZUZvckFsdFRleHQo
Q2FjaGVkSW1hZ2UqIG5ld0ltYWdlID0gMCk7CiAKQEAgLTg0LDggKzgyLDcgQEAgcHJvdGVjdGVk
OgogCiAgICAgdmlydHVhbCB2b2lkIGludHJpbnNpY1NpemVDaGFuZ2VkKCkgb3ZlcnJpZGUKICAg
ICB7Ci0gICAgICAgIGlmIChtX2ltYWdlUmVzb3VyY2UpCi0gICAgICAgICAgICBpbWFnZUNoYW5n
ZWQobV9pbWFnZVJlc291cmNlLT5pbWFnZVB0cigpKTsKKyAgICAgICAgaW1hZ2VDaGFuZ2VkKGlt
YWdlUmVzb3VyY2UoKS5pbWFnZVB0cigpKTsKICAgICB9CiAKIHByaXZhdGU6CkBAIC0xMTUsNyAr
MTEyLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFRleHQgdG8gZGlzcGxheSBhcyBsb25nIGFzIHRo
ZSBpbWFnZSBpc24ndCBhdmFpbGFibGUuCiAgICAgU3RyaW5nIG1fYWx0VGV4dDsKLSAgICBPd25Q
dHI8UmVuZGVySW1hZ2VSZXNvdXJjZT4gbV9pbWFnZVJlc291cmNlOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxSZW5kZXJJbWFnZVJlc291cmNlPiBtX2ltYWdlUmVzb3VyY2U7CiAgICAgYm9vbCBtX25l
ZWRzVG9TZXRTaXplRm9yQWx0VGV4dDsKICAgICBib29sIG1fZGlkSW5jcmVtZW50VmlzdWFsbHlO
b25FbXB0eVBpeGVsQ291bnQ7CiAgICAgYm9vbCBtX2lzR2VuZXJhdGVkQ29udGVudDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2VSZXNvdXJjZS5oCmluZGV4IGI3NjMw
YjQuLjAwNDRmMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bWFnZVJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
UmVzb3VyY2UuaApAQCAtMzgsMTMgKzM4LDkgQEAgY2xhc3MgUmVuZGVyRWxlbWVudDsKIGNsYXNz
IFJlbmRlckltYWdlUmVzb3VyY2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlbmRlcklt
YWdlUmVzb3VyY2UpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBSZW5k
ZXJJbWFnZVJlc291cmNlKCk7CiAgICAgdmlydHVhbCB+UmVuZGVySW1hZ2VSZXNvdXJjZSgpOwog
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UmVuZGVySW1hZ2VSZXNvdXJjZT4gY3JlYXRlKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgUmVuZGVySW1hZ2VSZXNvdXJjZSk7Ci0g
ICAgfQotCiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoUmVuZGVyRWxlbWVudCopOwogICAg
IHZpcnR1YWwgdm9pZCBzaHV0ZG93bigpOwogCkBAIC02Nyw4ICs2Myw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIFdyYXBwZWRJbWFnZVB0ciBpbWFnZVB0cigpIGNvbnN0IHsgcmV0dXJuIG1fY2Fj
aGVkSW1hZ2UuZ2V0KCk7IH0KIAogcHJvdGVjdGVkOgotICAgIFJlbmRlckltYWdlUmVzb3VyY2Uo
KTsKLQogICAgIFJlbmRlckVsZW1lbnQqIG1fcmVuZGVyZXI7CiAgICAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkSW1hZ2U+IG1fY2FjaGVkSW1hZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2UuaAppbmRl
eCAzZWNlN2RmNy4uZTU1NTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmgKQEAgLTM0LDE1ICszNCwxMSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlckVsZW1lbnQ7CiAKLWNsYXNzIFJl
bmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlIDogcHVibGljIFJlbmRlckltYWdlUmVzb3VyY2Ug
eworY2xhc3MgUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2UgZmluYWwgOiBwdWJsaWMgUmVu
ZGVySW1hZ2VSZXNvdXJjZSB7CiBwdWJsaWM6CisgICAgZXhwbGljaXQgUmVuZGVySW1hZ2VSZXNv
dXJjZVN0eWxlSW1hZ2UoU3R5bGVJbWFnZSYpOwogICAgIHZpcnR1YWwgflJlbmRlckltYWdlUmVz
b3VyY2VTdHlsZUltYWdlKCk7CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxSZW5kZXJJbWFnZVJl
c291cmNlPiBjcmVhdGUoU3R5bGVJbWFnZSYgc3R5bGVJbWFnZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2Uoc3R5bGVJbWFn
ZSkpOwotICAgIH0KLQogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZShSZW5k
ZXJFbGVtZW50Kikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNodXRkb3duKCkgb3ZlcnJp
ZGU7CkBAIC02MCw3ICs1Niw2IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFdyYXBwZWRJbWFn
ZVB0ciBpbWFnZVB0cigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc3R5bGVJbWFnZS0+ZGF0
YSgpOyB9CiAKLSAgICBleHBsaWNpdCBSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZShTdHls
ZUltYWdlJik7CiAgICAgUmVmPFN0eWxlSW1hZ2U+IG1fc3R5bGVJbWFnZTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwCmluZGV4IGRmZTdjOTYuLjQzOGFiNjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcApAQCAtMzcsMTMgKzM3
LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFJlbmRlck1lZGlhOjpSZW5kZXJNZWRpYShIVE1M
TWVkaWFFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkKICAgICA6
IFJlbmRlckltYWdlKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCiB7Ci0gICAgc2V0SW1hZ2VS
ZXNvdXJjZShSZW5kZXJJbWFnZVJlc291cmNlOjpjcmVhdGUoKSk7CiB9CiAKIFJlbmRlck1lZGlh
OjpSZW5kZXJNZWRpYShIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0
eWxlPiBzdHlsZSwgY29uc3QgSW50U2l6ZSYgaW50cmluc2ljU2l6ZSkKICAgICA6IFJlbmRlcklt
YWdlKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSkpCiB7Ci0gICAgc2V0SW1hZ2VSZXNvdXJjZShS
ZW5kZXJJbWFnZVJlc291cmNlOjpjcmVhdGUoKSk7CiAgICAgc2V0SW50cmluc2ljU2l6ZShpbnRy
aW5zaWNTaXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKaW5kZXggNTllNjAxNS4uNDJlZWM0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3Bw
CkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQm
IGVsZW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogICAgIDogUmVuZGVyRW1iZWRk
ZWRPYmplY3QoZWxlbWVudCwgc3RkOjptb3ZlKHN0eWxlKSkKLSAgICAsIG1fc25hcHNob3RSZXNv
dXJjZShSZW5kZXJJbWFnZVJlc291cmNlOjpjcmVhdGUoKSkKKyAgICAsIG1fc25hcHNob3RSZXNv
dXJjZShzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlckltYWdlUmVzb3VyY2U+KCkpCiAgICAgLCBtX2lz
UG90ZW50aWFsTW91c2VBY3RpdmF0aW9uKGZhbHNlKQogewogICAgIG1fc25hcHNob3RSZXNvdXJj
ZS0+aW5pdGlhbGl6ZSh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNuYXBzaG90dGVkUGx1Z0luLmgKaW5kZXggNGFhM2ZmMzE0Li5lZGY1NzUxYWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5o
CkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkg
b3ZlcnJpZGU7CiAKLSAgICBPd25QdHI8UmVuZGVySW1hZ2VSZXNvdXJjZT4gbV9zbmFwc2hvdFJl
c291cmNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJJbWFnZVJlc291cmNlPiBtX3NuYXBz
aG90UmVzb3VyY2U7CiAgICAgYm9vbCBtX2lzUG90ZW50aWFsTW91c2VBY3RpdmF0aW9uOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKaW5kZXggNjEwMjMxZC4u
ZjYzOTgyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVv
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCkBAIC0x
MTMsNyArMTEzLDcgQEAgTGF5b3V0U2l6ZSBSZW5kZXJWaWRlbzo6Y2FsY3VsYXRlSW50cmluc2lj
U2l6ZSgpCiAgICAgICAgICAgICByZXR1cm4gc2l6ZTsKICAgICB9CiAKLSAgICBpZiAodmlkZW9F
bGVtZW50KCkuc2hvdWxkRGlzcGxheVBvc3RlckltYWdlKCkgJiYgIW1fY2FjaGVkSW1hZ2VTaXpl
LmlzRW1wdHkoKSAmJiAhaW1hZ2VSZXNvdXJjZSgpLT5lcnJvck9jY3VycmVkKCkpCisgICAgaWYg
KHZpZGVvRWxlbWVudCgpLnNob3VsZERpc3BsYXlQb3N0ZXJJbWFnZSgpICYmICFtX2NhY2hlZElt
YWdlU2l6ZS5pc0VtcHR5KCkgJiYgIWltYWdlUmVzb3VyY2UoKS5lcnJvck9jY3VycmVkKCkpCiAg
ICAgICAgIHJldHVybiBtX2NhY2hlZEltYWdlU2l6ZTsKIAogICAgIC8vIDx2aWRlbz4gaW4gc3Rh
bmRhbG9uZSBtZWRpYSBkb2N1bWVudHMgc2hvdWxkIG5vdCB1c2UgdGhlIGRlZmF1bHQgMzAweDE1
MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5jcHAKaW5k
ZXggYjUwNTQ3YS4uMmZjNWQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0NvbnRlbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvQ29udGVudERhdGEuY3BwCkBAIC00OSwxMyArNDksOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29u
dGVudERhdGE+IENvbnRlbnREYXRhOjpjbG9uZSgpIGNvbnN0CiAKIFJlbmRlclB0cjxSZW5kZXJP
YmplY3Q+IEltYWdlQ29udGVudERhdGE6OmNyZWF0ZUNvbnRlbnRSZW5kZXJlcihEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFJlbmRlclN0eWxlJiBwc2V1ZG9TdHlsZSkgY29uc3QKIHsKLSAgICBh
dXRvIGltYWdlID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVySW1hZ2U+KGRvY3VtZW50LCBSZW5kZXJJ
bWFnZTo6Y3JlYXRlU3R5bGVJbmhlcml0aW5nRnJvbVBzZXVkb1N0eWxlKHBzZXVkb1N0eWxlKSk7
CisgICAgYXV0byBpbWFnZSA9IGNyZWF0ZVJlbmRlcmVyPFJlbmRlckltYWdlPihkb2N1bWVudCwg
UmVuZGVySW1hZ2U6OmNyZWF0ZVN0eWxlSW5oZXJpdGluZ0Zyb21Qc2V1ZG9TdHlsZShwc2V1ZG9T
dHlsZSksIG1faW1hZ2UuZ2V0KCkpOwogICAgIGltYWdlLT5pbml0aWFsaXplU3R5bGUoKTsKICAg
ICBpbWFnZS0+c2V0QWx0VGV4dChhbHRUZXh0KCkpOwotICAgIGlmIChtX2ltYWdlKQotICAgICAg
ICBpbWFnZS0+c2V0SW1hZ2VSZXNvdXJjZShSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZTo6
Y3JlYXRlKCptX2ltYWdlKSk7Ci0gICAgZWxzZQotICAgICAgICBpbWFnZS0+c2V0SW1hZ2VSZXNv
dXJjZShSZW5kZXJJbWFnZVJlc291cmNlOjpjcmVhdGUoKSk7CiAgICAgcmV0dXJuIHN0ZDo6bW92
ZShpbWFnZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdJbWFnZS5jcHAKaW5kZXggMWUwNTY4Ni4uNThkYzE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKQEAgLTQ5LDE0ICs0OSwxNCBAQCBS
ZW5kZXJTVkdJbWFnZTo6UmVuZGVyU1ZHSW1hZ2UoU1ZHSW1hZ2VFbGVtZW50JiBlbGVtZW50LCBQ
YXNzUmVmPFJlbmRlclN0eWxlPiBzdAogICAgIDogUmVuZGVyU1ZHTW9kZWxPYmplY3QoZWxlbWVu
dCwgc3RkOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlKHRydWUp
CiAgICAgLCBtX25lZWRzVHJhbnNmb3JtVXBkYXRlKHRydWUpCi0gICAgLCBtX2ltYWdlUmVzb3Vy
Y2UoUmVuZGVySW1hZ2VSZXNvdXJjZTo6Y3JlYXRlKCkpCisgICAgLCBtX2ltYWdlUmVzb3VyY2Uo
c3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJJbWFnZVJlc291cmNlPigpKQogewotICAgIG1faW1hZ2VS
ZXNvdXJjZS0+aW5pdGlhbGl6ZSh0aGlzKTsKKyAgICBpbWFnZVJlc291cmNlKCkuaW5pdGlhbGl6
ZSh0aGlzKTsKIH0KIAogUmVuZGVyU1ZHSW1hZ2U6On5SZW5kZXJTVkdJbWFnZSgpCiB7Ci0gICAg
bV9pbWFnZVJlc291cmNlLT5zaHV0ZG93bigpOworICAgIGltYWdlUmVzb3VyY2UoKS5zaHV0ZG93
bigpOwogfQogCiBTVkdJbWFnZUVsZW1lbnQmIFJlbmRlclNWR0ltYWdlOjppbWFnZUVsZW1lbnQo
KSBjb25zdApAQCAtNzQsNyArNzQsNyBAQCBib29sIFJlbmRlclNWR0ltYWdlOjp1cGRhdGVJbWFn
ZVZpZXdwb3J0KCkKICAgICBpZiAob2xkQm91bmRhcmllcyA9PSBtX29iamVjdEJvdW5kaW5nQm94
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX2ltYWdlUmVzb3VyY2UtPnNldENvbnRh
aW5lclNpemVGb3JSZW5kZXJlcihlbmNsb3NpbmdJbnRSZWN0KG1fb2JqZWN0Qm91bmRpbmdCb3gp
LnNpemUoKSk7CisgICAgaW1hZ2VSZXNvdXJjZSgpLnNldENvbnRhaW5lclNpemVGb3JSZW5kZXJl
cihlbmNsb3NpbmdJbnRSZWN0KG1fb2JqZWN0Qm91bmRpbmdCb3gpLnNpemUoKSk7CiAgICAgbV9u
ZWVkc0JvdW5kYXJpZXNVcGRhdGUgPSB0cnVlOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTE3
LDcgKzExNyw3IEBAIHZvaWQgUmVuZGVyU1ZHSW1hZ2U6OmxheW91dCgpCiAKIHZvaWQgUmVuZGVy
U1ZHSW1hZ2U6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYp
CiB7Ci0gICAgaWYgKHBhaW50SW5mby5jb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkgfHwgc3R5
bGUoKS52aXNpYmlsaXR5KCkgPT0gSElEREVOIHx8ICFtX2ltYWdlUmVzb3VyY2UtPmhhc0ltYWdl
KCkpCisgICAgaWYgKHBhaW50SW5mby5jb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkgfHwgc3R5
bGUoKS52aXNpYmlsaXR5KCkgPT0gSElEREVOIHx8ICFpbWFnZVJlc291cmNlKCkuaGFzSW1hZ2Uo
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94ID0gcmVwYWlu
dFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKTsKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFJlbmRl
clNWR0ltYWdlOjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQm
KQogCiB2b2lkIFJlbmRlclNWR0ltYWdlOjpwYWludEZvcmVncm91bmQoUGFpbnRJbmZvJiBwYWlu
dEluZm8pCiB7Ci0gICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IG1faW1hZ2VSZXNvdXJjZS0+aW1h
Z2UoKTsKKyAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gaW1hZ2VSZXNvdXJjZSgpLmltYWdlKCk7
CiAgICAgRmxvYXRSZWN0IGRlc3RSZWN0ID0gbV9vYmplY3RCb3VuZGluZ0JveDsKICAgICBGbG9h
dFJlY3Qgc3JjUmVjdCgwLCAwLCBpbWFnZS0+d2lkdGgoKSwgaW1hZ2UtPmhlaWdodCgpKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oCmluZGV4IDZl
Njk2YTcuLmJiMTAxY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR0ltYWdlLmgKQEAgLTQ3LDggKzQ3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBu
ZWVkc0JvdW5kYXJpZXNVcGRhdGUoKSBvdmVycmlkZSB7IHJldHVybiBtX25lZWRzQm91bmRhcmll
c1VwZGF0ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpIHsg
bV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSA9IHRydWU7IH0KIAotICAgIFJlbmRlckltYWdlUmVzb3Vy
Y2UqIGltYWdlUmVzb3VyY2UoKSB7IHJldHVybiBtX2ltYWdlUmVzb3VyY2UuZ2V0KCk7IH0KLSAg
ICBjb25zdCBSZW5kZXJJbWFnZVJlc291cmNlKiBpbWFnZVJlc291cmNlKCkgY29uc3QgeyByZXR1
cm4gbV9pbWFnZVJlc291cmNlLmdldCgpOyB9CisgICAgUmVuZGVySW1hZ2VSZXNvdXJjZSYgaW1h
Z2VSZXNvdXJjZSgpIHsgcmV0dXJuICptX2ltYWdlUmVzb3VyY2U7IH0KKyAgICBjb25zdCBSZW5k
ZXJJbWFnZVJlc291cmNlJiBpbWFnZVJlc291cmNlKCkgY29uc3QgeyByZXR1cm4gKm1faW1hZ2VS
ZXNvdXJjZTsgfQogCiAgICAgLy8gTm90ZTogQXNzdW1lcyB0aGUgUGFpbnRJbmZvIGNvbnRleHQg
aGFzIGhhZCBhbGwgbG9jYWwgdHJhbnNmb3JtcyBhcHBsaWVkLgogICAgIHZvaWQgcGFpbnRGb3Jl
Z3JvdW5kKFBhaW50SW5mbyYpOwpAQCAtODcsOCArODcsNyBAQCBwcml2YXRlOgogICAgIEZsb2F0
UmVjdCBtX29iamVjdEJvdW5kaW5nQm94OwogICAgIEZsb2F0UmVjdCBtX3JlcGFpbnRCb3VuZGlu
Z0JveDsKICAgICBGbG9hdFJlY3QgbV9yZXBhaW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7
Ci0gICAgT3duUHRyPFJlbmRlckltYWdlUmVzb3VyY2U+IG1faW1hZ2VSZXNvdXJjZTsKLQorICAg
IHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJJbWFnZVJlc291cmNlPiBtX2ltYWdlUmVzb3VyY2U7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBtX2J1ZmZlcmVkRm9yZWdyb3VuZDsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKaW5kZXggMjJhOGY4ZS4uMGFk
OGY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKQEAgLTE5NSwxMCAr
MTk1LDEwIEBAIGJvb2wgU1ZHSW1hZ2VFbGVtZW50OjpoYXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJj
ZXMoKQogdm9pZCBTVkdJbWFnZUVsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVycygpCiB7CiAgICAg
aWYgKFJlbmRlclNWR0ltYWdlKiBpbWFnZU9iaiA9IHRvUmVuZGVyU1ZHSW1hZ2UocmVuZGVyZXIo
KSkpIHsKLSAgICAgICAgaWYgKGltYWdlT2JqLT5pbWFnZVJlc291cmNlKCktPmhhc0ltYWdlKCkp
CisgICAgICAgIGlmIChpbWFnZU9iai0+aW1hZ2VSZXNvdXJjZSgpLmhhc0ltYWdlKCkpCiAgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaW1hZ2VPYmotPmltYWdlUmVzb3VyY2UoKS0+c2V0
Q2FjaGVkSW1hZ2UobV9pbWFnZUxvYWRlci5pbWFnZSgpKTsKKyAgICAgICAgaW1hZ2VPYmotPmlt
YWdlUmVzb3VyY2UoKS5zZXRDYWNoZWRJbWFnZShtX2ltYWdlTG9hZGVyLmltYWdlKCkpOwogICAg
IH0KIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>