<?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>162841</bug_id>
          
          <creation_ts>2016-10-01 03:11:31 -0700</creation_ts>
          <short_desc>Remove FetchBody::m_type</short_desc>
          <delta_ts>2016-10-01 09:34:13 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1235613</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-01 03:11:31 -0700</bug_when>
    <thetext>Most of FetchBody::m_type is already covered in m_data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235614</commentid>
    <comment_count>1</comment_count>
      <attachid>290435</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-01 03:21:22 -0700</bug_when>
    <thetext>Created attachment 290435
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235616</commentid>
    <comment_count>2</comment_count>
      <attachid>290436</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-01 04:46:32 -0700</bug_when>
    <thetext>Created attachment 290436
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235623</commentid>
    <comment_count>3</comment_count>
      <attachid>290436</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-01 09:34:09 -0700</bug_when>
    <thetext>Comment on attachment 290436
Patch

Clearing flags on attachment: 290436

Committed r206708: &lt;http://trac.webkit.org/changeset/206708&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235624</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-01 09:34:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290435</attachid>
            <date>2016-10-01 03:21:22 -0700</date>
            <delta_ts>2016-10-01 04:46:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162841-20161001121816.patch</filename>
            <type>text/plain</type>
            <size>22912</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTE1OWU2NzM5ZTNlY2Nm
M2ExNzEwOTE5MmM2YmMyMjNlN2E4NmM5Yi4uYzFlNWU4ZTBmMjRiOWExMWI4YWE1YTBiYjg2Mzhm
NWNlYjQxMTA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE2LTEwLTAxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICByZW1vdmluZyBGZXRjaEJv
eWQ6Om1fdHlwZQorCisgICAgICAgIFJlbW92ZSBGZXRjaEJvZHk6Om1fdHlwZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyODQxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gY2hhbmdlIG9mIGJlaGF2
aW9yLgorCisgICAgICAgIFJlbW92aW5nIEZldGNoQm9keTo6bV90eXBlIGFuZCB1c2luZyBtX2Rh
dGEgaW4gbGlldS4KKyAgICAgICAgSW50cm9kdWNpbmcgdGVtcG9yYXJpbHkgRmV0Y2hCb2R5Ojpt
X2lzRW1wdHkgdG8gaGFuZGxlIHRoZSBjYXNlIG9mIG51bGwgYm9kaWVzLgorICAgICAgICBOdWxs
IGJvZHkgaGFuZGxpbmcgc2hvdWxkIGJlIG1vdmVkIHRvIEZldGNoQm9keU93bmVyIGluIGEgZm9s
bG93LXVwIHBhdGNoLgorCisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5OjpGZXRjaEJvZHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RmV0Y2hCb2R5OjpleHRyYWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6YXJy
YXlCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5OjpibG9iKToKKyAgICAgICAg
KFdlYkNvcmU6OkZldGNoQm9keTo6anNvbik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6
OnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpjb25zdW1lT25jZUxvYWRpbmdG
aW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmNvbnN1bWUpOgorICAgICAg
ICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpjb25zdW1lQXNTdHJlYW0pOgorICAgICAgICAoV2ViQ29y
ZTo6RmV0Y2hCb2R5Ojpsb2FkaW5nU3VjY2VlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
Qm9keTo6Ym9keUZvckludGVybmFsUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJv
ZHk6OmNsb25lKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6Y29uc3VtZVRleHQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpjb25zdW1lQmxvYik6IERlbGV0
ZWQuCisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkZldGNoQm9keTo6aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6Omlz
QmxvYik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmlzRm9ybURhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojppc0FycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoQm9keTo6aXNBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hC
b2R5Ojppc1VSTFNlYXJjaFBhcmFtcyk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6Omlz
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OkZldGNoQm9keSk6CisgICAgICAg
IChXZWJDb3JlOjpGZXRjaEJvZHk6OnNldENvbnRlbnRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkZldGNoQm9keTo6dXJsU2VhcmNoUGFyYW1zQm9keSk6IERlbGV0ZWQuCisgICAg
ICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGZXRjaEJvZHlPd25lcjo6Y29uc3VtZU9uY2VMb2FkaW5nRmluaXNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RmV0Y2hCb2R5T3duZXI6OmJsb2JMb2FkaW5nU3VjY2VlZGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkZldGNoQm9keU93bmVyOjpmaW5pc2hCbG9iTG9hZGluZyk6IERlbGV0ZWQuCisg
ICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RmV0Y2hCb2R5T3duZXI6OmJvZHkpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6c2V0
Qm9keSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OmZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoUmVzcG9uc2U6OkJvZHlMb2FkZXI6OmRpZFN1Y2NlZWQpOgorICAgICAgICAoV2ViQ29yZTo6
RmV0Y2hSZXNwb25zZTo6Y29uc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNl
Ojpjb25zdW1lQm9keUFzU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6
OmNyZWF0ZVJlYWRhYmxlU3RyZWFtU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVz
cG9uc2U6OmZpbmlzaENvbnN1bWluZ1N0cmVhbSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9GZXRjaFJlc3BvbnNlLmg6CisKIDIwMTYtMDktMzAgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIER1bXBSZW5kZXJUcmVlIGNyYXNoZWQgaW4gY29t
LmFwcGxlLldlYkNvcmU6IFdURjo6T3B0aW9uYWw8V2ViQ29yZTo6RmV0Y2hCb2R5T3duZXI6OkJs
b2JMb2FkZXI+OjpvcGVyYXRvciBib29sIGNvbnN0ICsgMTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcAppbmRleCBiY2ViOWVkNTk1MzhkNWEzNzBiMWQzZGM5NDNi
ZTk1NzFmZjYzNWIzLi42YTQ4ZWJmNjhhYWRjODg0ODgxYWE5NTc1NGRlYTljMDZmNjk0NWM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwCkBAIC01Nyw0OCAr
NTcsNDEgQEAgc3RhdGljIFZlY3Rvcjx1aW50OF90PiBleHRyYWN0Qnl0ZXNGcm9tVGV4dChjb25z
dCBTdHJpbmcmIHRleHQpCiB9CiAKIEZldGNoQm9keTo6RmV0Y2hCb2R5KFJlZjxjb25zdCBCbG9i
PiYmIGJsb2IpCi0gICAgOiBtX3R5cGUoVHlwZTo6QmxvYikKLSAgICAsIG1fZGF0YShXVEZNb3Zl
KGJsb2IpKQorICAgIDogbV9kYXRhKFdURk1vdmUoYmxvYikpCiAgICAgLCBtX2NvbnRlbnRUeXBl
KHRoaXMtPmJsb2JCb2R5KCkudHlwZSgpKQogewogfQogCiBGZXRjaEJvZHk6OkZldGNoQm9keShE
T01Gb3JtRGF0YSYgZm9ybURhdGEsIERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IG1fdHlwZShU
eXBlOjpGb3JtRGF0YSkKLSAgICAsIG1fZGF0YShGb3JtRGF0YTo6Y3JlYXRlTXVsdGlQYXJ0KGZv
cm1EYXRhLCBmb3JtRGF0YS5lbmNvZGluZygpLCAmZG9jdW1lbnQpKQorICAgIDogbV9kYXRhKEZv
cm1EYXRhOjpjcmVhdGVNdWx0aVBhcnQoZm9ybURhdGEsIGZvcm1EYXRhLmVuY29kaW5nKCksICZk
b2N1bWVudCkpCiAgICAgLCBtX2NvbnRlbnRUeXBlKG1ha2VTdHJpbmcoIm11bHRpcGFydC9mb3Jt
LWRhdGE7Ym91bmRhcnk9IiwgdGhpcy0+Zm9ybURhdGFCb2R5KCkuYm91bmRhcnkoKS5kYXRhKCkp
KQogewogfQogCiBGZXRjaEJvZHk6OkZldGNoQm9keShTdHJpbmcmJiB0ZXh0KQotICAgIDogbV90
eXBlKFR5cGU6OlRleHQpCi0gICAgLCBtX2RhdGEoV1RGTW92ZSh0ZXh0KSkKKyAgICA6IG1fZGF0
YShXVEZNb3ZlKHRleHQpKQogICAgICwgbV9jb250ZW50VHlwZShBU0NJSUxpdGVyYWwoInRleHQv
cGxhaW47Y2hhcnNldD1VVEYtOCIpKQogewogfQogCiBGZXRjaEJvZHk6OkZldGNoQm9keShSZWY8
Y29uc3QgQXJyYXlCdWZmZXI+JiYgZGF0YSkKLSAgICA6IG1fdHlwZShUeXBlOjpBcnJheUJ1ZmZl
cikKLSAgICAsIG1fZGF0YShXVEZNb3ZlKGRhdGEpKQorICAgIDogbV9kYXRhKFdURk1vdmUoZGF0
YSkpCiB7CiB9CiAKIEZldGNoQm9keTo6RmV0Y2hCb2R5KFJlZjxjb25zdCBBcnJheUJ1ZmZlclZp
ZXc+JiYgZGF0YVZpZXcpCi0gICAgOiBtX3R5cGUoVHlwZTo6QXJyYXlCdWZmZXJWaWV3KQotICAg
ICwgbV9kYXRhKFdURk1vdmUoZGF0YVZpZXcpKQorICAgIDogbV9kYXRhKFdURk1vdmUoZGF0YVZp
ZXcpKQogewogfQogCiBGZXRjaEJvZHk6OkZldGNoQm9keShSZWY8Y29uc3QgVVJMU2VhcmNoUGFy
YW1zPiYmIHVybCkKLSAgICA6IG1fdHlwZShUeXBlOjpVUkxTZWFjaFBhcmFtcykKLSAgICAsIG1f
ZGF0YShXVEZNb3ZlKHVybCkpCisgICAgOiBtX2RhdGEoV1RGTW92ZSh1cmwpKQogICAgICwgbV9j
b250ZW50VHlwZShBU0NJSUxpdGVyYWwoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2Rl
ZDtjaGFyc2V0PVVURi04IikpCiB7CiB9CiAKLUZldGNoQm9keTo6RmV0Y2hCb2R5KFR5cGUgdHlw
ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgRmV0Y2hCb2R5Q29uc3VtZXImIGNv
bnN1bWVyKQotICAgIDogbV90eXBlKHR5cGUpCi0gICAgLCBtX2NvbnRlbnRUeXBlKGNvbnRlbnRU
eXBlKQorRmV0Y2hCb2R5OjpGZXRjaEJvZHkoY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29u
c3QgRmV0Y2hCb2R5Q29uc3VtZXImIGNvbnN1bWVyKQorICAgIDogbV9jb250ZW50VHlwZShjb250
ZW50VHlwZSkKICAgICAsIG1fY29uc3VtZXIoY29uc3VtZXIpCiB7CiB9CkBAIC0xMTUsOSArMTA4
LDExIEBAIEZldGNoQm9keSBGZXRjaEJvZHk6OmV4dHJhY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgSlNDOjpFeGVjU3RhdGUmIHN0CiAgICAgICAgIHJldHVybiBGZXRjaEJvZHko
dmFsdWUudG9XVEZTdHJpbmcoJnN0YXRlKSk7CiAgICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTVVJM
U2VhcmNoUGFyYW1zOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gRmV0Y2hCb2R5KCpKU1VSTFNl
YXJjaFBhcmFtczo6dG9XcmFwcGVkKHZhbHVlKSk7Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKEpT
UmVhZGFibGVTdHJlYW06OmluZm8oKSkpCi0gICAgICAgIHJldHVybiB7IFR5cGU6OlJlYWRhYmxl
U3RyZWFtIH07Ci0gICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTQzo6SlNBcnJheUJ1ZmZlcjo6aW5m
bygpKSkgeworICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU1JlYWRhYmxlU3RyZWFtOjppbmZvKCkp
KSB7CisgICAgICAgIEZldGNoQm9keSBib2R5OworICAgICAgICBib2R5Lm1faXNFbXB0eSA9IGZh
bHNlOworICAgICAgICByZXR1cm4gYm9keTsKKyAgICB9IGlmICh2YWx1ZS5pbmhlcml0cyhKU0M6
OkpTQXJyYXlCdWZmZXI6OmluZm8oKSkpIHsKICAgICAgICAgQXJyYXlCdWZmZXIqIGRhdGEgPSB0
b0FycmF5QnVmZmVyKHZhbHVlKTsKICAgICAgICAgQVNTRVJUKGRhdGEpOwogICAgICAgICByZXR1
cm4geyAqZGF0YSB9OwpAQCAtMTUyLDE0ICsxNDcsMTIgQEAgdm9pZCBGZXRjaEJvZHk6OnVwZGF0
ZUNvbnRlbnRUeXBlKEZldGNoSGVhZGVycyYgaGVhZGVycykKIAogdm9pZCBGZXRjaEJvZHk6OmFy
cmF5QnVmZmVyKEZldGNoQm9keU93bmVyJiBvd25lciwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQogewotICAgIEFTU0VSVChtX3R5cGUgIT0gVHlwZTo6Tm9uZSk7CiAgICAgbV9jb25z
dW1lci5zZXRUeXBlKEZldGNoQm9keUNvbnN1bWVyOjpUeXBlOjpBcnJheUJ1ZmZlcik7CiAgICAg
Y29uc3VtZShvd25lciwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKIHZvaWQgRmV0Y2hCb2R5Ojpi
bG9iKEZldGNoQm9keU93bmVyJiBvd25lciwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNl
KQogewotICAgIEFTU0VSVChtX3R5cGUgIT0gVHlwZTo6Tm9uZSk7CiAgICAgbV9jb25zdW1lci5z
ZXRUeXBlKEZldGNoQm9keUNvbnN1bWVyOjpUeXBlOjpCbG9iKTsKICAgICBtX2NvbnN1bWVyLnNl
dENvbnRlbnRUeXBlKEJsb2I6Om5vcm1hbGl6ZWRDb250ZW50VHlwZShleHRyYWN0TUlNRVR5cGVG
cm9tTWVkaWFUeXBlKG1fY29udGVudFR5cGUpKSk7CiAgICAgY29uc3VtZShvd25lciwgV1RGTW92
ZShwcm9taXNlKSk7CkBAIC0xNjcsOSArMTYwLDcgQEAgdm9pZCBGZXRjaEJvZHk6OmJsb2IoRmV0
Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAKIHZv
aWQgRmV0Y2hCb2R5Ojpqc29uKEZldGNoQm9keU93bmVyJiBvd25lciwgUmVmPERlZmVycmVkUHJv
bWlzZT4mJiBwcm9taXNlKQogewotICAgIEFTU0VSVChtX3R5cGUgIT0gVHlwZTo6Tm9uZSk7Ci0K
LSAgICBpZiAobV90eXBlID09IFR5cGU6OlRleHQpIHsKKyAgICBpZiAoaXNUZXh0KCkpIHsKICAg
ICAgICAgZnVsZmlsbFByb21pc2VXaXRoSlNPTihXVEZNb3ZlKHByb21pc2UpLCB0ZXh0Qm9keSgp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE3OSw5ICsxNzAsNyBAQCB2b2lkIEZldGNo
Qm9keTo6anNvbihGZXRjaEJvZHlPd25lciYgb3duZXIsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYg
cHJvbWlzZSkKIAogdm9pZCBGZXRjaEJvZHk6OnRleHQoRmV0Y2hCb2R5T3duZXImIG93bmVyLCBS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgQVNTRVJUKG1fdHlwZSAhPSBU
eXBlOjpOb25lKTsKLQotICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6VGV4dCkgeworICAgIGlmIChp
c1RleHQoKSkgewogICAgICAgICBwcm9taXNlLT5yZXNvbHZlKHRleHRCb2R5KCkpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMTg5LDg5ICsxNzgsNzMgQEAgdm9pZCBGZXRjaEJvZHk6OnRl
eHQoRmV0Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2Up
CiAgICAgY29uc3VtZShvd25lciwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKLXZvaWQgRmV0Y2hC
b2R5Ojpjb25zdW1lKEZldGNoQm9keU93bmVyJiBvd25lciwgUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlKQordm9pZCBGZXRjaEJvZHk6OmNvbnN1bWVPbmNlTG9hZGluZ0ZpbmlzaGVkKEZl
dGNoQm9keUNvbnN1bWVyOjpUeXBlIHR5cGUsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlz
ZSkKIHsKLSAgICAvLyBUaGlzIHNob3VsZCBiZSBoYW5kbGVkIGJ5IEZldGNoQm9keU93bmVyCi0g
ICAgQVNTRVJUKG1fdHlwZSAhPSBUeXBlOjpOb25lKTsKLSAgICAvLyBUaGlzIHNob3VsZCBiZSBo
YW5kbGVkIGJ5IEpTIGJ1aWx0LWlucwotICAgIEFTU0VSVChtX3R5cGUgIT0gVHlwZTo6UmVhZGFi
bGVTdHJlYW0pOworICAgIG1fY29uc3VtZXIuc2V0VHlwZSh0eXBlKTsKKyAgICBtX2NvbnN1bWVQ
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKTsKK30KIAotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0g
ICAgY2FzZSBUeXBlOjpBcnJheUJ1ZmZlcjoKK3ZvaWQgRmV0Y2hCb2R5Ojpjb25zdW1lKEZldGNo
Qm9keU93bmVyJiBvd25lciwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQoreworICAg
IGlmIChpc0FycmF5QnVmZmVyKCkpIHsKICAgICAgICAgY29uc3VtZUFycmF5QnVmZmVyKFdURk1v
dmUocHJvbWlzZSkpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBUeXBlOjpBcnJheUJ1ZmZl
clZpZXc6CisgICAgfQorICAgIGlmIChpc0FycmF5QnVmZmVyVmlldygpKSB7CiAgICAgICAgIGNv
bnN1bWVBcnJheUJ1ZmZlclZpZXcoV1RGTW92ZShwcm9taXNlKSk7CiAgICAgICAgIHJldHVybjsK
LSAgICBjYXNlIFR5cGU6OlRleHQ6CisgICAgfQorICAgIGlmIChpc1RleHQoKSkgewogICAgICAg
ICBjb25zdW1lVGV4dChXVEZNb3ZlKHByb21pc2UpLCB0ZXh0Qm9keSgpKTsKICAgICAgICAgcmV0
dXJuOwotICAgIGNhc2UgVHlwZTo6VVJMU2VhY2hQYXJhbXM6CisgICAgfQorICAgIGlmIChpc1VS
TFNlYXJjaFBhcmFtcygpKSB7CiAgICAgICAgIGNvbnN1bWVUZXh0KFdURk1vdmUocHJvbWlzZSks
IHVybFNlYXJjaFBhcmFtc0JvZHkoKS50b1N0cmluZygpKTsKICAgICAgICAgcmV0dXJuOwotICAg
IGNhc2UgVHlwZTo6QmxvYjoKKyAgICB9CisgICAgaWYgKGlzQmxvYigpKSB7CiAgICAgICAgIGNv
bnN1bWVCbG9iKG93bmVyLCBXVEZNb3ZlKHByb21pc2UpKTsKICAgICAgICAgcmV0dXJuOwotICAg
IGNhc2UgVHlwZTo6TG9hZGluZzoKLSAgICAgICAgbV9jb25zdW1lUHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIFR5cGU6OkxvYWRlZDoKKyAgICB9
CisgICAgaWYgKG1fY29uc3VtZXIuaGFzRGF0YSgpKSB7CiAgICAgICAgIG1fY29uc3VtZXIucmVz
b2x2ZShXVEZNb3ZlKHByb21pc2UpKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgVHlwZTo6
Rm9ybURhdGE6CisgICAgfQorICAgIGlmIChpc0Zvcm1EYXRhKCkpIHsKICAgICAgICAgLy8gRklY
TUU6IFN1cHBvcnQgY29uc3VtaW5nIEZvcm1EYXRhLgogICAgICAgICBwcm9taXNlLT5yZWplY3Qo
MCk7CiAgICAgICAgIHJldHVybjsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKICNpZiBFTkFC
TEUoUkVBREFCTEVfU1RSRUFNX0FQSSkKIHZvaWQgRmV0Y2hCb2R5Ojpjb25zdW1lQXNTdHJlYW0o
RmV0Y2hCb2R5T3duZXImIG93bmVyLCBGZXRjaFJlc3BvbnNlU291cmNlJiBzb3VyY2UpCiB7Ci0g
ICAgLy8gVGhpcyBzaG91bGQgYmUgaGFuZGxlZCBieSBGZXRjaFJlc3BvbnNlCi0gICAgQVNTRVJU
KG1fdHlwZSAhPSBUeXBlOjpMb2FkaW5nKTsKLSAgICAvLyBUaGlzIHNob3VsZCBiZSBoYW5kbGVk
IGJ5IEpTIGJ1aWx0LWlucwotICAgIEFTU0VSVChtX3R5cGUgIT0gVHlwZTo6UmVhZGFibGVTdHJl
YW0pOwotCiAgICAgYm9vbCBjbG9zZVN0cmVhbSA9IGZhbHNlOwotICAgIHN3aXRjaCAobV90eXBl
KSB7Ci0gICAgY2FzZSBUeXBlOjpBcnJheUJ1ZmZlcjoKKyAgICBpZiAoaXNBcnJheUJ1ZmZlcigp
KSB7CiAgICAgICAgIGNsb3NlU3RyZWFtID0gc291cmNlLmVucXVldWUoQXJyYXlCdWZmZXI6OnRy
eUNyZWF0ZShhcnJheUJ1ZmZlckJvZHkoKS5kYXRhKCksIGFycmF5QnVmZmVyQm9keSgpLmJ5dGVM
ZW5ndGgoKSkpOwogICAgICAgICBtX2RhdGEgPSBudWxscHRyOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFR5cGU6OkFycmF5QnVmZmVyVmlldzogeworICAgIH0gZWxzZSBpZiAoaXNBcnJheUJ1
ZmZlclZpZXcoKSkgewogICAgICAgICBjbG9zZVN0cmVhbSA9IHNvdXJjZS5lbnF1ZXVlKEFycmF5
QnVmZmVyOjp0cnlDcmVhdGUoYXJyYXlCdWZmZXJWaWV3Qm9keSgpLmJhc2VBZGRyZXNzKCksIGFy
cmF5QnVmZmVyVmlld0JvZHkoKS5ieXRlTGVuZ3RoKCkpKTsKICAgICAgICAgbV9kYXRhID0gbnVs
bHB0cjsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgVHlwZTo6VGV4dDogeworICAg
IH0gZWxzZSBpZiAoaXNUZXh0KCkpIHsKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGEgPSBl
eHRyYWN0Qnl0ZXNGcm9tVGV4dCh0ZXh0Qm9keSgpKTsKICAgICAgICAgY2xvc2VTdHJlYW0gPSBz
b3VyY2UuZW5xdWV1ZShBcnJheUJ1ZmZlcjo6dHJ5Q3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNp
emUoKSkpOwogICAgICAgICBtX2RhdGEgPSBudWxscHRyOwotICAgICAgICBicmVhazsKLSAgICB9
Ci0gICAgY2FzZSBUeXBlOjpVUkxTZWFjaFBhcmFtczogeworICAgIH0gZWxzZSBpZiAoaXNVUkxT
ZWFyY2hQYXJhbXMoKSkgewogICAgICAgICBWZWN0b3I8dWludDhfdD4gZGF0YSA9IGV4dHJhY3RC
eXRlc0Zyb21UZXh0KHVybFNlYXJjaFBhcmFtc0JvZHkoKS50b1N0cmluZygpKTsKICAgICAgICAg
Y2xvc2VTdHJlYW0gPSBzb3VyY2UuZW5xdWV1ZShBcnJheUJ1ZmZlcjo6dHJ5Q3JlYXRlKGRhdGEu
ZGF0YSgpLCBkYXRhLnNpemUoKSkpOwogICAgICAgICBtX2RhdGEgPSBudWxscHRyOwotICAgICAg
ICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBUeXBlOjpCbG9iOgorICAgIH0gZWxzZSBpZiAoaXNC
bG9iKCkpIHsKICAgICAgICAgb3duZXIubG9hZEJsb2IoYmxvYkJvZHkoKSwgbnVsbHB0cik7CiAg
ICAgICAgIG1fZGF0YSA9IG51bGxwdHI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHlwZTo6
Tm9uZToKLSAgICAgICAgY2xvc2VTdHJlYW0gPSB0cnVlOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIFR5cGU6OkxvYWRlZDogeworICAgIH0gZWxzZSBpZiAobV9jb25zdW1lci5oYXNEYXRhKCkp
CiAgICAgICAgIGNsb3NlU3RyZWFtID0gc291cmNlLmVucXVldWUobV9jb25zdW1lci50YWtlQXNB
cnJheUJ1ZmZlcigpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGRlZmF1bHQ6CisgICAg
ZWxzZSBpZiAoaXNFbXB0eSgpKQorICAgICAgICBjbG9zZVN0cmVhbSA9IHRydWU7CisgICAgZWxz
ZQogICAgICAgICBzb3VyY2UuZXJyb3IoQVNDSUlMaXRlcmFsKCJub3QgaW1wbGVtZW50ZWQiKSk7
Ci0gICAgfQogCiAgICAgaWYgKGNsb3NlU3RyZWFtKQogICAgICAgICBzb3VyY2UuY2xvc2UoKTsK
QEAgLTMxNCw3MSArMjg3LDU2IEBAIHZvaWQgRmV0Y2hCb2R5Ojpsb2FkaW5nRmFpbGVkKCkKIAog
dm9pZCBGZXRjaEJvZHk6OmxvYWRpbmdTdWNjZWVkZWQoKQogewotICAgIG1fdHlwZSA9IG1fY29u
c3VtZXIuaGFzRGF0YSgpID8gVHlwZTo6TG9hZGVkIDogVHlwZTo6Tm9uZTsKKyAgICBtX2lzRW1w
dHkgPSAhbV9jb25zdW1lci5oYXNEYXRhKCk7CiAgICAgaWYgKG1fY29uc3VtZVByb21pc2UpCiAg
ICAgICAgIG1fY29uc3VtZXIucmVzb2x2ZShtX2NvbnN1bWVQcm9taXNlLnJlbGVhc2VOb25OdWxs
KCkpOwogfQogCiBSZWZQdHI8Rm9ybURhdGE+IEZldGNoQm9keTo6Ym9keUZvckludGVybmFsUmVx
dWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAogewotICAgIHN3aXRj
aCAobV90eXBlKSB7Ci0gICAgY2FzZSBUeXBlOjpOb25lOgorICAgIGlmIChpc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGNhc2UgVHlwZTo6VGV4dDoKKyAgICBpZiAoaXNU
ZXh0KCkpCiAgICAgICAgIHJldHVybiBGb3JtRGF0YTo6Y3JlYXRlKFVURjhFbmNvZGluZygpLmVu
Y29kZSh0ZXh0Qm9keSgpLCBFbnRpdGllc0ZvclVuZW5jb2RhYmxlcykpOwotICAgIGNhc2UgVHlw
ZTo6VVJMU2VhY2hQYXJhbXM6CisgICAgaWYgKGlzVVJMU2VhcmNoUGFyYW1zKCkpCiAgICAgICAg
IHJldHVybiBGb3JtRGF0YTo6Y3JlYXRlKFVURjhFbmNvZGluZygpLmVuY29kZSh1cmxTZWFyY2hQ
YXJhbXNCb2R5KCkudG9TdHJpbmcoKSwgRW50aXRpZXNGb3JVbmVuY29kYWJsZXMpKTsKLSAgICBj
YXNlIFR5cGU6OkJsb2I6IHsKKyAgICBpZiAoaXNCbG9iKCkpIHsKICAgICAgICAgUmVmUHRyPEZv
cm1EYXRhPiBib2R5ID0gRm9ybURhdGE6OmNyZWF0ZSgpOwogICAgICAgICBib2R5LT5hcHBlbmRC
bG9iKGJsb2JCb2R5KCkudXJsKCkpOwogICAgICAgICByZXR1cm4gYm9keTsKICAgICB9Ci0gICAg
Y2FzZSBUeXBlOjpBcnJheUJ1ZmZlcjoKKyAgICBpZiAoaXNBcnJheUJ1ZmZlcigpKQogICAgICAg
ICByZXR1cm4gRm9ybURhdGE6OmNyZWF0ZShhcnJheUJ1ZmZlckJvZHkoKS5kYXRhKCksIGFycmF5
QnVmZmVyQm9keSgpLmJ5dGVMZW5ndGgoKSk7Ci0gICAgY2FzZSBUeXBlOjpBcnJheUJ1ZmZlclZp
ZXc6CisgICAgaWYgKGlzQXJyYXlCdWZmZXJWaWV3KCkpCiAgICAgICAgIHJldHVybiBGb3JtRGF0
YTo6Y3JlYXRlKGFycmF5QnVmZmVyVmlld0JvZHkoKS5iYXNlQWRkcmVzcygpLCBhcnJheUJ1ZmZl
clZpZXdCb2R5KCkuYnl0ZUxlbmd0aCgpKTsKLSAgICBjYXNlIFR5cGU6OkZvcm1EYXRhOiB7Cisg
ICAgaWYgKGlzRm9ybURhdGEoKSkgewogICAgICAgICBBU1NFUlQoIWNvbnRleHQuaXNXb3JrZXJH
bG9iYWxTY29wZSgpKTsKICAgICAgICAgUmVmUHRyPEZvcm1EYXRhPiBib2R5ID0gY29uc3RfY2Fz
dDxGb3JtRGF0YSo+KCZmb3JtRGF0YUJvZHkoKSk7CiAgICAgICAgIGJvZHktPmdlbmVyYXRlRmls
ZXMoc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPigmY29udGV4dCkpOwogICAgICAgICByZXR1cm4gYm9k
eTsKICAgICB9Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogRmV0Y2hCb2R5IEZldGNoQm9keTo6Y2xvbmUoKSBj
b25zdAogewogICAgIEFTU0VSVCghbV9jb25zdW1lUHJvbWlzZSk7Ci0gICAgRmV0Y2hCb2R5IGNs
b25lKG1fdHlwZSwgbV9jb250ZW50VHlwZSwgbV9jb25zdW1lcik7CisgICAgRmV0Y2hCb2R5IGNs
b25lKG1fY29udGVudFR5cGUsIG1fY29uc3VtZXIpOworICAgIGNsb25lLm1faXNFbXB0eSA9IG1f
aXNFbXB0eTsKIAotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBUeXBlOjpBcnJheUJ1
ZmZlcjoKKyAgICBpZiAoaXNBcnJheUJ1ZmZlcigpKQogICAgICAgICBjbG9uZS5tX2RhdGEgPSBh
cnJheUJ1ZmZlckJvZHkoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBUeXBlOjpBcnJheUJ1
ZmZlclZpZXc6CisgICAgZWxzZSBpZiAoaXNBcnJheUJ1ZmZlclZpZXcoKSkKICAgICAgICAgY2xv
bmUubV9kYXRhID0gYXJyYXlCdWZmZXJWaWV3Qm9keSgpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIFR5cGU6OkJsb2I6CisgICAgZWxzZSBpZiAoaXNCbG9iKCkpCiAgICAgICAgIGNsb25lLm1f
ZGF0YSA9IGJsb2JCb2R5KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHlwZTo6Rm9ybURh
dGE6CisgICAgZWxzZSBpZiAoaXNGb3JtRGF0YSgpKQogICAgICAgICBjbG9uZS5tX2RhdGEgPSBj
b25zdF9jYXN0PEZvcm1EYXRhJj4oZm9ybURhdGFCb2R5KCkpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFR5cGU6OlRleHQ6CisgICAgZWxzZSBpZiAoaXNUZXh0KCkpCiAgICAgICAgIGNsb25l
Lm1fZGF0YSA9IHRleHRCb2R5KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHlwZTo6VVJM
U2VhY2hQYXJhbXM6CisgICAgZWxzZSBpZiAoaXNVUkxTZWFyY2hQYXJhbXMoKSkKICAgICAgICAg
Y2xvbmUubV9kYXRhID0gdXJsU2VhcmNoUGFyYW1zQm9keSgpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFR5cGU6OkxvYWRlZDoKLSAgICBjYXNlIFR5cGU6Ok5vbmU6Ci0gICAgY2FzZSBUeXBl
OjpMb2FkaW5nOgotICAgIGNhc2UgVHlwZTo6UmVhZGFibGVTdHJlYW06Ci0gICAgICAgIGJyZWFr
OwotICAgIH0KICAgICByZXR1cm4gY2xvbmU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keS5oCmluZGV4IDdiMTRiZGY3NGMzYzBiZjkzMjM5N2NmNjFhN2YwZjI2NzNi
ZjA4N2YuLjlkNWQ3ZmExOGE5YjFjMDJhZmMwODQ4Njk0OTI3OWQzZTVhMTI0NTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaApAQCAtNjQsNyArNjQsMTMgQEAgcHVi
bGljOgogICAgIHZvaWQgY29uc3VtZUFzU3RyZWFtKEZldGNoQm9keU93bmVyJiwgRmV0Y2hSZXNw
b25zZVNvdXJjZSYpOwogI2VuZGlmCiAKLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVy
biBtX3R5cGUgPT0gVHlwZTo6Tm9uZTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0
dXJuIG1faXNFbXB0eTsgfQorICAgIGJvb2wgaXNCbG9iKCkgY29uc3QgeyByZXR1cm4gc3RkOjpl
eHBlcmltZW50YWw6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxjb25zdCBCbG9iPj4obV9kYXRhKTsg
fQorICAgIGJvb2wgaXNGb3JtRGF0YSgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6ZXhwZXJpbWVudGFs
Ojpob2xkc19hbHRlcm5hdGl2ZTxSZWY8Rm9ybURhdGE+PihtX2RhdGEpOyB9CisgICAgYm9vbCBp
c0FycmF5QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gc3RkOjpleHBlcmltZW50YWw6OmhvbGRzX2Fs
dGVybmF0aXZlPFJlZjxjb25zdCBBcnJheUJ1ZmZlcj4+KG1fZGF0YSk7IH0KKyAgICBib29sIGlz
QXJyYXlCdWZmZXJWaWV3KCkgY29uc3QgeyByZXR1cm4gc3RkOjpleHBlcmltZW50YWw6OmhvbGRz
X2FsdGVybmF0aXZlPFJlZjxjb25zdCBBcnJheUJ1ZmZlclZpZXc+PihtX2RhdGEpOyB9CisgICAg
Ym9vbCBpc1VSTFNlYXJjaFBhcmFtcygpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6ZXhwZXJpbWVudGFs
Ojpob2xkc19hbHRlcm5hdGl2ZTxSZWY8Y29uc3QgVVJMU2VhcmNoUGFyYW1zPj4obV9kYXRhKTsg
fQorICAgIGJvb2wgaXNUZXh0KCkgY29uc3QgeyByZXR1cm4gc3RkOjpleHBlcmltZW50YWw6Omhv
bGRzX2FsdGVybmF0aXZlPFN0cmluZz4obV9kYXRhKTsgfQogCiAgICAgdm9pZCB1cGRhdGVDb250
ZW50VHlwZShGZXRjaEhlYWRlcnMmKTsKICAgICB2b2lkIHNldENvbnRlbnRUeXBlKGNvbnN0IFN0
cmluZyYgY29udGVudFR5cGUpIHsgbV9jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlOyB9CkBAIC03
MiwxOSArNzgsMTYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEZldGNoQm9keSBleHRyYWN0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSk7CiAg
ICAgc3RhdGljIEZldGNoQm9keSBleHRyYWN0RnJvbUJvZHkoRmV0Y2hCb2R5Kik7Ci0gICAgc3Rh
dGljIEZldGNoQm9keSBsb2FkaW5nQm9keSgpIHsgcmV0dXJuIHsgVHlwZTo6TG9hZGluZyB9OyB9
Ci0gICAgRmV0Y2hCb2R5KCkgPSBkZWZhdWx0OworICAgIEZldGNoQm9keSgpIDogbV9pc0VtcHR5
KHRydWUpIHsgfQogCiAgICAgdm9pZCBsb2FkaW5nRmFpbGVkKCk7CiAgICAgdm9pZCBsb2FkaW5n
U3VjY2VlZGVkKCk7CiAKICAgICBSZWZQdHI8Rm9ybURhdGE+IGJvZHlGb3JJbnRlcm5hbFJlcXVl
c3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIGNvbnN0OwogCi0gICAgZW51bSBjbGFzcyBUeXBl
IHsgTm9uZSwgQXJyYXlCdWZmZXIsIEFycmF5QnVmZmVyVmlldywgQmxvYiwgRm9ybURhdGEsIFRl
eHQsIFVSTFNlYWNoUGFyYW1zLCBMb2FkaW5nLCBMb2FkZWQsIFJlYWRhYmxlU3RyZWFtIH07Ci0g
ICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0KICAgICBGZXRjaEJvZHlD
b25zdW1lciYgY29uc3VtZXIoKSB7IHJldHVybiBtX2NvbnN1bWVyOyB9CiAKKyAgICB2b2lkIGNv
bnN1bWVPbmNlTG9hZGluZ0ZpbmlzaGVkKEZldGNoQm9keUNvbnN1bWVyOjpUeXBlLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmKTsKICAgICB2b2lkIGNsZWFuQ29uc3VtZVByb21pc2UoKSB7IG1fY29u
c3VtZVByb21pc2UgPSBudWxscHRyOyB9CiAKICAgICBGZXRjaEJvZHkgY2xvbmUoKSBjb25zdDsK
QEAgLTk2LDggKzk5LDcgQEAgcHJpdmF0ZToKICAgICBGZXRjaEJvZHkoRE9NRm9ybURhdGEmLCBE
b2N1bWVudCYpOwogICAgIEZldGNoQm9keShTdHJpbmcmJik7CiAgICAgRmV0Y2hCb2R5KFJlZjxj
b25zdCBVUkxTZWFyY2hQYXJhbXM+JiYpOwotICAgIEZldGNoQm9keShUeXBlLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBGZXRjaEJvZHlDb25zdW1lciYpOwotICAgIEZldGNoQm9keShUeXBlIHR5cGUp
IDogbV90eXBlKHR5cGUpIHsgfQorICAgIEZldGNoQm9keShjb25zdCBTdHJpbmcmLCBjb25zdCBG
ZXRjaEJvZHlDb25zdW1lciYpOwogCiAgICAgdm9pZCBjb25zdW1lKEZldGNoQm9keU93bmVyJiwg
UmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAKQEAgLTExNSwxMSArMTE3LDExIEBAIHByaXZhdGU6
CiAgICAgY29uc3QgU3RyaW5nJiB0ZXh0Qm9keSgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6ZXhwZXJp
bWVudGFsOjpnZXQ8U3RyaW5nPihtX2RhdGEpOyB9CiAgICAgY29uc3QgVVJMU2VhcmNoUGFyYW1z
JiB1cmxTZWFyY2hQYXJhbXNCb2R5KCkgY29uc3QgeyByZXR1cm4gc3RkOjpleHBlcmltZW50YWw6
OmdldDxSZWY8Y29uc3QgVVJMU2VhcmNoUGFyYW1zPj4obV9kYXRhKS5nZXQoKTsgfQogCi0gICAg
VHlwZSBtX3R5cGUgeyBUeXBlOjpOb25lIH07Ci0KLSAgICBzdGQ6OmV4cGVyaW1lbnRhbDo6dmFy
aWFudDxzdGQ6Om51bGxwdHJfdCwgUmVmPGNvbnN0IEJsb2I+LCBSZWY8Rm9ybURhdGE+LCBSZWY8
Y29uc3QgQXJyYXlCdWZmZXI+LCBSZWY8Y29uc3QgQXJyYXlCdWZmZXJWaWV3PiwgUmVmPGNvbnN0
IFVSTFNlYXJjaFBhcmFtcz4sIFN0cmluZz4gbV9kYXRhOworICAgIHN0ZDo6ZXhwZXJpbWVudGFs
Ojp2YXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8Y29uc3QgQmxvYj4sIFJlZjxGb3JtRGF0YT4s
IFJlZjxjb25zdCBBcnJheUJ1ZmZlcj4sIFJlZjxjb25zdCBBcnJheUJ1ZmZlclZpZXc+LCBSZWY8
Y29uc3QgVVJMU2VhcmNoUGFyYW1zPiwgU3RyaW5nPiBtX2RhdGEgeyBudWxscHRyIH07CiAgICAg
U3RyaW5nIG1fY29udGVudFR5cGU7CiAKKyAgICBib29sIG1faXNFbXB0eSB7IGZhbHNlIH07CisK
ICAgICBGZXRjaEJvZHlDb25zdW1lciBtX2NvbnN1bWVyIHsgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5
cGU6Ok5vbmUgfTsKICAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBtX2NvbnN1bWVQcm9taXNl
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5
T3duZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5j
cHAKaW5kZXggYWM0ZmFkNmM3NjdlYmY1M2VjYjFiNTI5OTY3MzQzMzQwMmIyYjNhOC4uOGM5N2M0
MDM2YjZkZTM4OGEyNWQyYzAyZTk5YWVlYmFiN2E2NTVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHAKQEAgLTEwMSw2ICsxMDEsMTYgQEAg
dm9pZCBGZXRjaEJvZHlPd25lcjo6YmxvYihSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2Up
CiAgICAgbV9ib2R5LmJsb2IoKnRoaXMsIFdURk1vdmUocHJvbWlzZSkpOwogfQogCit2b2lkIEZl
dGNoQm9keU93bmVyOjpjb25zdW1lT25jZUxvYWRpbmdGaW5pc2hlZChGZXRjaEJvZHlDb25zdW1l
cjo6VHlwZSB0eXBlLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCit7CisgICAgaWYg
KGlzRGlzdHVyYmVkT3JMb2NrZWQoKSkgeworICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVy
cm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX2lzRGlzdHVyYmVkID0gdHJ1ZTsK
KyAgICBtX2JvZHkuY29uc3VtZU9uY2VMb2FkaW5nRmluaXNoZWQodHlwZSwgV1RGTW92ZShwcm9t
aXNlKSk7Cit9CisKIHZvaWQgRmV0Y2hCb2R5T3duZXI6OmZvcm1EYXRhKFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSkKIHsKICAgICBpZiAobV9ib2R5LmlzRW1wdHkoKSkgewpAQCAtMTc2
LDggKzE4Niw2IEBAIHZvaWQgRmV0Y2hCb2R5T3duZXI6OmZpbmlzaEJsb2JMb2FkaW5nKCkKIAog
dm9pZCBGZXRjaEJvZHlPd25lcjo6YmxvYkxvYWRpbmdTdWNjZWVkZWQoKQogewotICAgIEFTU0VS
VChtX2JvZHkudHlwZSgpID09IEZldGNoQm9keTo6VHlwZTo6QmxvYik7Ci0KICNpZiBFTkFCTEUo
UkVBREFCTEVfU1RSRUFNX0FQSSkKICAgICBpZiAobV9yZWFkYWJsZVN0cmVhbVNvdXJjZSkgewog
ICAgICAgICBtX3JlYWRhYmxlU3RyZWFtU291cmNlLT5jbG9zZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oCmluZGV4IDJmNDJhOGVkNmNlZTFkOWY3
MzIwMjQyMDJkOThhM2ZmMDRiNzg2NWIuLjRiNDM2N2RiMGM0YTU5NDM4OWMwNmFmZjI3YmY1MGVl
YTliNGM0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hC
b2R5T3duZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93
bmVyLmgKQEAgLTU4LDExICs1OCwxMCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQWN0aXZlKCkg
Y29uc3QgeyByZXR1cm4gISFtX2Jsb2JMb2FkZXI7IH0KIAotICAgIEZldGNoQm9keTo6VHlwZSBi
b2R5VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fYm9keS50eXBlKCk7IH0KLQogcHJvdGVjdGVkOgog
ICAgIGNvbnN0IEZldGNoQm9keSYgYm9keSgpIGNvbnN0IHsgcmV0dXJuIG1fYm9keTsgfQogICAg
IEZldGNoQm9keSYgYm9keSgpIHsgcmV0dXJuIG1fYm9keTsgfQorICAgIHZvaWQgY29uc3VtZU9u
Y2VMb2FkaW5nRmluaXNoZWQoRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGUsIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSQogICAgIHZvaWQgc3RvcCgp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRj
aFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3Qu
Y3BwCmluZGV4IGRhNDA0NDY2ZmUxZDk2ODI4NWJkM2ZmZWZjYTM2NzRjYTBiNjY1MGYuLjc2N2Yz
NjNmYzhiMTM1MjUyYTAzYjMzYWNiNTI2NTNhOWNiZTUyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKQEAgLTI2Miw3ICsyNjIsNyBAQCB2b2lk
IEZldGNoUmVxdWVzdDo6c2V0Qm9keShKU0M6OkV4ZWNTdGF0ZSYgZXhlY1N0YXRlLCBKU0M6OkpT
VmFsdWUgYm9keSwgRmV0Y2hSZQogCiAgICAgICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOwogICAgICAgICBtX2JvZHkgPSBGZXRjaEJvZHk6OmV4dHJhY3QoKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgZXhlY1N0YXRlLCBib2R5KTsKLSAgICAgICAgaWYgKG1fYm9keS50eXBl
KCkgPT0gRmV0Y2hCb2R5OjpUeXBlOjpOb25lKSB7CisgICAgICAgIGlmIChtX2JvZHkuaXNFbXB0
eSgpKSB7CiAgICAgICAgICAgICBlYyA9IFR5cGVFcnJvcjsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRj
aFJlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25z
ZS5jcHAKaW5kZXggZGQyYzFkMzQzZjkxZjhhOGJiZWQ5MzQyYTQ1MDk5ZGRmYThlMjlhNC4uNDI0
NjMzMjQ3MjZiZGE3NjIwNDJjNjMwMTYzMmMwOGVlODMzMjFjYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAg
UmVmPEZldGNoUmVzcG9uc2U+IEZldGNoUmVzcG9uc2U6OmNsb25lRm9ySlMoKQogCiB2b2lkIEZl
dGNoUmVzcG9uc2U6OmZldGNoKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZldGNo
UmVxdWVzdCYgcmVxdWVzdCwgRmV0Y2hQcm9taXNlJiYgcHJvbWlzZSkKIHsKLSAgICBhdXRvIHJl
c3BvbnNlID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJlc3BvbnNlKGNvbnRleHQsIEZldGNoQm9keTo6
bG9hZGluZ0JvZHkoKSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6
SW1tdXRhYmxlKSwgeyB9KSk7CisgICAgYXV0byByZXNwb25zZSA9IGFkb3B0UmVmKCpuZXcgRmV0
Y2hSZXNwb25zZShjb250ZXh0LCB7IH0sIEZldGNoSGVhZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVy
czo6R3VhcmQ6OkltbXV0YWJsZSksIHsgfSkpOwogCiAgICAgLy8gU2V0dGluZyBwZW5kaW5nIGFj
dGl2aXR5IHVudGlsIEJvZHlMb2FkZXIgZGlkRmFpbCBvciBkaWRTdWNjZWVkIGNhbGxiYWNrIGlz
IGNhbGxlZC4KICAgICByZXNwb25zZS0+c2V0UGVuZGluZ0FjdGl2aXR5KHJlc3BvbnNlLnB0cigp
KTsKQEAgLTEyNiw5ICsxMjYsOSBAQCB2b2lkIEZldGNoUmVzcG9uc2U6OkJvZHlMb2FkZXI6OmRp
ZFN1Y2NlZWQoKQogICAgIG1fcmVzcG9uc2UubV9ib2R5LmxvYWRpbmdTdWNjZWVkZWQoKTsKIAog
I2lmIEVOQUJMRShSRUFEQUJMRV9TVFJFQU1fQVBJKQotICAgIGlmIChtX3Jlc3BvbnNlLm1fcmVh
ZGFibGVTdHJlYW1Tb3VyY2UgJiYgbV9yZXNwb25zZS5tX2JvZHkudHlwZSgpICE9IEZldGNoQm9k
eTo6VHlwZTo6TG9hZGVkKSB7Ci0gICAgICAgIC8vIFdlIG9ubHkgY2xvc2UgdGhlIHN0cmVhbSBp
ZiBGZXRjaEJvZHkgYWxyZWFkeSBlbnF1ZXVlZCBkYXRhLgotICAgICAgICAvLyBPdGhlcndpc2Us
IEZldGNoQm9keSB3aWxsIGNsb3NlIHRoZSBzdHJlYW0gd2hlbiBlbnF1ZXVpbmcgZGF0YS4KKyAg
ICBpZiAobV9yZXNwb25zZS5tX3JlYWRhYmxlU3RyZWFtU291cmNlICYmIG1fcmVzcG9uc2UuYm9k
eSgpLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBXZSBvbmx5IGNsb3NlIHRoZSBzdHJlYW0gaWYg
RmV0Y2hCb2R5IGFscmVhZHkgZW5xdWV1ZWQgYWxsIGRhdGEuCisgICAgICAgIC8vIE90aGVyd2lz
ZSwgRmV0Y2hCb2R5IHdpbGwgY2xvc2UgdGhlIHN0cmVhbSBhZnRlciBlbnF1ZXVpbmcgdGhlIGRh
dGEuCiAgICAgICAgIG1fcmVzcG9uc2UubV9yZWFkYWJsZVN0cmVhbVNvdXJjZS0+Y2xvc2UoKTsK
ICAgICAgICAgbV9yZXNwb25zZS5tX3JlYWRhYmxlU3RyZWFtU291cmNlID0gbnVsbHB0cjsKICAg
ICB9CkBAIC0yMDksOCArMjA5LDE0IEBAIHZvaWQgRmV0Y2hSZXNwb25zZTo6Qm9keUxvYWRlcjo6
c3RvcCgpCiB2b2lkIEZldGNoUmVzcG9uc2U6OmNvbnN1bWUodW5zaWduZWQgdHlwZSwgUmVmPERl
ZmVycmVkUHJvbWlzZT4mJiB3cmFwcGVyKQogewogICAgIEFTU0VSVCh0eXBlIDw9IHN0YXRpY19j
YXN0PHVuc2lnbmVkPihGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6VGV4dCkpOworICAgIGF1dG8g
Y29uc3VtZXJUeXBlID0gc3RhdGljX2Nhc3Q8RmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU+KHR5cGUp
OworCisgICAgaWYgKGlzTG9hZGluZygpKSB7CisgICAgICAgIGNvbnN1bWVPbmNlTG9hZGluZ0Zp
bmlzaGVkKGNvbnN1bWVyVHlwZSwgV1RGTW92ZSh3cmFwcGVyKSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CiAKLSAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PEZldGNoQm9keUNvbnN1bWVyOjpUeXBl
Pih0eXBlKSkgeworICAgIHN3aXRjaCAoY29uc3VtZXJUeXBlKSB7CiAgICAgY2FzZSBGZXRjaEJv
ZHlDb25zdW1lcjo6VHlwZTo6QXJyYXlCdWZmZXI6CiAgICAgICAgIGFycmF5QnVmZmVyKFdURk1v
dmUod3JhcHBlcikpOwogICAgICAgICByZXR1cm47CkBAIC0yNTAsNyArMjU2LDcgQEAgdm9pZCBG
ZXRjaFJlc3BvbnNlOjpjb25zdW1lQm9keUFzU3RyZWFtKCkKIHsKICAgICBBU1NFUlQobV9yZWFk
YWJsZVN0cmVhbVNvdXJjZSk7CiAgICAgbV9pc0Rpc3R1cmJlZCA9IHRydWU7Ci0gICAgaWYgKGJv
ZHkoKS50eXBlKCkgIT0gRmV0Y2hCb2R5OjpUeXBlOjpMb2FkaW5nKSB7CisgICAgaWYgKCFpc0xv
YWRpbmcoKSkgewogICAgICAgICBib2R5KCkuY29uc3VtZUFzU3RyZWFtKCp0aGlzLCAqbV9yZWFk
YWJsZVN0cmVhbVNvdXJjZSk7CiAgICAgICAgIGlmICghbV9yZWFkYWJsZVN0cmVhbVNvdXJjZS0+
aXNTdGFydGluZygpKQogICAgICAgICAgICAgbV9yZWFkYWJsZVN0cmVhbVNvdXJjZSA9IG51bGxw
dHI7CkBAIC0yNzIsNyArMjc4LDcgQEAgUmVhZGFibGVTdHJlYW1Tb3VyY2UqIEZldGNoUmVzcG9u
c2U6OmNyZWF0ZVJlYWRhYmxlU3RyZWFtU291cmNlKCkKICAgICBBU1NFUlQoIW1fcmVhZGFibGVT
dHJlYW1Tb3VyY2UpOwogICAgIEFTU0VSVCghbV9pc0Rpc3R1cmJlZCk7CiAKLSAgICBpZiAoYm9k
eSgpLmlzRW1wdHkoKSkKKyAgICBpZiAoYm9keSgpLmlzRW1wdHkoKSAmJiAhaXNMb2FkaW5nKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgbV9yZWFkYWJsZVN0cmVhbVNvdXJjZSA9
IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXNwb25zZVNvdXJjZSgqdGhpcykpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaAppbmRleCBhNmZiYjQyZTVkNGVmYTZk
MmYyYzQzZDc5NTYzNjgzYmZkMGMyNDRhLi5hZDg4NTJjNDc4YmQwNmUxYTAwYjY5N2Y4ZDZiYjU1
ZDI3YWQ4N2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
UmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9u
c2UuaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb25zdW1lQm9keUFzU3Ry
ZWFtKCk7CiAgICAgdm9pZCBjYW5jZWwoKTsKICNlbmRpZgotICAgIGJvb2wgaXNMb2FkaW5nKCkg
Y29uc3QgeyByZXR1cm4gYm9keSgpLnR5cGUoKSA9PSBGZXRjaEJvZHk6OlR5cGU6OkxvYWRpbmc7
IH0KKyAgICBib29sIGlzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuICEhbV9ib2R5TG9hZGVyOyB9
CiAKIHByaXZhdGU6CiAgICAgRmV0Y2hSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
RmV0Y2hCb2R5JiYsIFJlZjxGZXRjaEhlYWRlcnM+JiYsIFJlc291cmNlUmVzcG9uc2UmJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290436</attachid>
            <date>2016-10-01 04:46:32 -0700</date>
            <delta_ts>2016-10-01 09:34:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162841-20161001134326.patch</filename>
            <type>text/plain</type>
            <size>22906</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFjZmI2NjViYTZlY2Yz
NmE2MTBiZDU0YzEyMGM3NzljZDcxNTZmNi4uYzI1ZTc0MzQxNGU1OGIyNDc3ZWEzMmM2NGM1ZDFj
ZjAyNDJlMWIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE2LTEwLTAxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICByZW1vdmluZyBGZXRjaEJv
eWQ6Om1fdHlwZQorCisgICAgICAgIFJlbW92ZSBGZXRjaEJvZHk6Om1fdHlwZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyODQxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gY2hhbmdlIG9mIGJlaGF2
aW9yLgorCisgICAgICAgIFJlbW92aW5nIEZldGNoQm9keTo6bV90eXBlIGFuZCB1c2luZyBtX2Rh
dGEgaW4gbGlldS4KKyAgICAgICAgSW50cm9kdWNpbmcgdGVtcG9yYXJpbHkgRmV0Y2hCb2R5Ojpt
X2lzRW1wdHkgdG8gaGFuZGxlIHRoZSBjYXNlIG9mIG51bGwgYm9kaWVzLgorICAgICAgICBOdWxs
IGJvZHkgaGFuZGxpbmcgc2hvdWxkIGJlIG1vdmVkIHRvIEZldGNoQm9keU93bmVyIGluIGEgZm9s
bG93LXVwIHBhdGNoLgorCisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5OjpGZXRjaEJvZHkpOgorICAgICAgICAoV2ViQ29y
ZTo6RmV0Y2hCb2R5OjpleHRyYWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6YXJy
YXlCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5OjpibG9iKToKKyAgICAgICAg
KFdlYkNvcmU6OkZldGNoQm9keTo6anNvbik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6
OnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpjb25zdW1lT25jZUxvYWRpbmdG
aW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmNvbnN1bWUpOgorICAgICAg
ICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpjb25zdW1lQXNTdHJlYW0pOgorICAgICAgICAoV2ViQ29y
ZTo6RmV0Y2hCb2R5Ojpsb2FkaW5nU3VjY2VlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
Qm9keTo6Ym9keUZvckludGVybmFsUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJv
ZHk6OmNsb25lKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6Y29uc3VtZVRleHQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpjb25zdW1lQmxvYik6IERlbGV0
ZWQuCisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkZldGNoQm9keTo6aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6Omlz
QmxvYik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmlzRm9ybURhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojppc0FycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoQm9keTo6aXNBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hC
b2R5Ojppc1VSTFNlYXJjaFBhcmFtcyk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6Omlz
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OkZldGNoQm9keSk6CisgICAgICAg
IChXZWJDb3JlOjpGZXRjaEJvZHk6OnNldENvbnRlbnRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkZldGNoQm9keTo6dXJsU2VhcmNoUGFyYW1zQm9keSk6IERlbGV0ZWQuCisgICAg
ICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGZXRjaEJvZHlPd25lcjo6Y29uc3VtZU9uY2VMb2FkaW5nRmluaXNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RmV0Y2hCb2R5T3duZXI6OmJsb2JMb2FkaW5nU3VjY2VlZGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkZldGNoQm9keU93bmVyOjpmaW5pc2hCbG9iTG9hZGluZyk6IERlbGV0ZWQuCisg
ICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oOgorICAgICAgICAoV2ViQ29y
ZTo6RmV0Y2hCb2R5T3duZXI6OmJvZHkpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6c2V0
Qm9keSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OmZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoUmVzcG9uc2U6OkJvZHlMb2FkZXI6OmRpZFN1Y2NlZWQpOgorICAgICAgICAoV2ViQ29yZTo6
RmV0Y2hSZXNwb25zZTo6Y29uc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNl
Ojpjb25zdW1lQm9keUFzU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6
OmNyZWF0ZVJlYWRhYmxlU3RyZWFtU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVz
cG9uc2U6OmZpbmlzaENvbnN1bWluZ1N0cmVhbSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9GZXRjaFJlc3BvbnNlLmg6CisKIDIwMTYtMDktMzAgIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjAzNDI0KTogV2ViQ29y
ZTo6SW1hZ2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoKSBpbiBJbWFnZUJ1ZmZlckNH
LmNwcCBvdmVyLXJlbGVhc2VzIENHQ29sb3JTcGFjZVJlZiBvYmplY3RzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKaW5kZXggZjE5ZGZhMTIxNTFiZWI1MjE2YzRj
MTgzYjU4MTIzY2E3NmMxN2ZjOS4uOTg2NWE2NDBiNDBmNDk1Mzk4ZDZjM2IxNWQ0MzA2ODc0NGMy
MmMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcApAQCAt
NDgsNDggKzQ4LDQxIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZldGNoQm9keTo6RmV0Y2hC
b2R5KFJlZjxjb25zdCBCbG9iPiYmIGJsb2IpCi0gICAgOiBtX3R5cGUoVHlwZTo6QmxvYikKLSAg
ICAsIG1fZGF0YShXVEZNb3ZlKGJsb2IpKQorICAgIDogbV9kYXRhKFdURk1vdmUoYmxvYikpCiAg
ICAgLCBtX2NvbnRlbnRUeXBlKHRoaXMtPmJsb2JCb2R5KCkudHlwZSgpKQogewogfQogCiBGZXRj
aEJvZHk6OkZldGNoQm9keShET01Gb3JtRGF0YSYgZm9ybURhdGEsIERvY3VtZW50JiBkb2N1bWVu
dCkKLSAgICA6IG1fdHlwZShUeXBlOjpGb3JtRGF0YSkKLSAgICAsIG1fZGF0YShGb3JtRGF0YTo6
Y3JlYXRlTXVsdGlQYXJ0KGZvcm1EYXRhLCBmb3JtRGF0YS5lbmNvZGluZygpLCAmZG9jdW1lbnQp
KQorICAgIDogbV9kYXRhKEZvcm1EYXRhOjpjcmVhdGVNdWx0aVBhcnQoZm9ybURhdGEsIGZvcm1E
YXRhLmVuY29kaW5nKCksICZkb2N1bWVudCkpCiAgICAgLCBtX2NvbnRlbnRUeXBlKG1ha2VTdHJp
bmcoIm11bHRpcGFydC9mb3JtLWRhdGE7Ym91bmRhcnk9IiwgdGhpcy0+Zm9ybURhdGFCb2R5KCku
Ym91bmRhcnkoKS5kYXRhKCkpKQogewogfQogCiBGZXRjaEJvZHk6OkZldGNoQm9keShTdHJpbmcm
JiB0ZXh0KQotICAgIDogbV90eXBlKFR5cGU6OlRleHQpCi0gICAgLCBtX2RhdGEoV1RGTW92ZSh0
ZXh0KSkKKyAgICA6IG1fZGF0YShXVEZNb3ZlKHRleHQpKQogICAgICwgbV9jb250ZW50VHlwZShB
U0NJSUxpdGVyYWwoInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCIpKQogewogfQogCiBGZXRjaEJv
ZHk6OkZldGNoQm9keShSZWY8Y29uc3QgQXJyYXlCdWZmZXI+JiYgZGF0YSkKLSAgICA6IG1fdHlw
ZShUeXBlOjpBcnJheUJ1ZmZlcikKLSAgICAsIG1fZGF0YShXVEZNb3ZlKGRhdGEpKQorICAgIDog
bV9kYXRhKFdURk1vdmUoZGF0YSkpCiB7CiB9CiAKIEZldGNoQm9keTo6RmV0Y2hCb2R5KFJlZjxj
b25zdCBBcnJheUJ1ZmZlclZpZXc+JiYgZGF0YVZpZXcpCi0gICAgOiBtX3R5cGUoVHlwZTo6QXJy
YXlCdWZmZXJWaWV3KQotICAgICwgbV9kYXRhKFdURk1vdmUoZGF0YVZpZXcpKQorICAgIDogbV9k
YXRhKFdURk1vdmUoZGF0YVZpZXcpKQogewogfQogCiBGZXRjaEJvZHk6OkZldGNoQm9keShSZWY8
Y29uc3QgVVJMU2VhcmNoUGFyYW1zPiYmIHVybCkKLSAgICA6IG1fdHlwZShUeXBlOjpVUkxTZWFj
aFBhcmFtcykKLSAgICAsIG1fZGF0YShXVEZNb3ZlKHVybCkpCisgICAgOiBtX2RhdGEoV1RGTW92
ZSh1cmwpKQogICAgICwgbV9jb250ZW50VHlwZShBU0NJSUxpdGVyYWwoImFwcGxpY2F0aW9uL3gt
d3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IikpCiB7CiB9CiAKLUZldGNoQm9keTo6
RmV0Y2hCb2R5KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgRmV0
Y2hCb2R5Q29uc3VtZXImIGNvbnN1bWVyKQotICAgIDogbV90eXBlKHR5cGUpCi0gICAgLCBtX2Nv
bnRlbnRUeXBlKGNvbnRlbnRUeXBlKQorRmV0Y2hCb2R5OjpGZXRjaEJvZHkoY29uc3QgU3RyaW5n
JiBjb250ZW50VHlwZSwgY29uc3QgRmV0Y2hCb2R5Q29uc3VtZXImIGNvbnN1bWVyKQorICAgIDog
bV9jb250ZW50VHlwZShjb250ZW50VHlwZSkKICAgICAsIG1fY29uc3VtZXIoY29uc3VtZXIpCiB7
CiB9CkBAIC0xMDYsOSArOTksMTEgQEAgRmV0Y2hCb2R5IEZldGNoQm9keTo6ZXh0cmFjdChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6OkV4ZWNTdGF0ZSYgc3QKICAgICAgICAg
cmV0dXJuIEZldGNoQm9keSh2YWx1ZS50b1dURlN0cmluZygmc3RhdGUpKTsKICAgICBpZiAodmFs
dWUuaW5oZXJpdHMoSlNVUkxTZWFyY2hQYXJhbXM6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiBG
ZXRjaEJvZHkoKkpTVVJMU2VhcmNoUGFyYW1zOjp0b1dyYXBwZWQodmFsdWUpKTsKLSAgICBpZiAo
dmFsdWUuaW5oZXJpdHMoSlNSZWFkYWJsZVN0cmVhbTo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJu
IHsgVHlwZTo6UmVhZGFibGVTdHJlYW0gfTsKLSAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNDOjpK
U0FycmF5QnVmZmVyOjppbmZvKCkpKSB7CisgICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTUmVhZGFi
bGVTdHJlYW06OmluZm8oKSkpIHsKKyAgICAgICAgRmV0Y2hCb2R5IGJvZHk7CisgICAgICAgIGJv
ZHkubV9pc0VtcHR5ID0gZmFsc2U7CisgICAgICAgIHJldHVybiBib2R5OworICAgIH0gaWYgKHZh
bHVlLmluaGVyaXRzKEpTQzo6SlNBcnJheUJ1ZmZlcjo6aW5mbygpKSkgewogICAgICAgICBBcnJh
eUJ1ZmZlciogZGF0YSA9IHRvQXJyYXlCdWZmZXIodmFsdWUpOwogICAgICAgICBBU1NFUlQoZGF0
YSk7CiAgICAgICAgIHJldHVybiB7ICpkYXRhIH07CkBAIC0xNDAsMTQgKzEzNSwxMiBAQCB2b2lk
IEZldGNoQm9keTo6dXBkYXRlQ29udGVudFR5cGUoRmV0Y2hIZWFkZXJzJiBoZWFkZXJzKQogCiB2
b2lkIEZldGNoQm9keTo6YXJyYXlCdWZmZXIoRmV0Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgQVNTRVJUKG1fdHlwZSAhPSBUeXBlOjpO
b25lKTsKICAgICBtX2NvbnN1bWVyLnNldFR5cGUoRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6OkFy
cmF5QnVmZmVyKTsKICAgICBjb25zdW1lKG93bmVyLCBXVEZNb3ZlKHByb21pc2UpKTsKIH0KIAog
dm9pZCBGZXRjaEJvZHk6OmJsb2IoRmV0Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgQVNTRVJUKG1fdHlwZSAhPSBUeXBlOjpOb25lKTsK
ICAgICBtX2NvbnN1bWVyLnNldFR5cGUoRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6OkJsb2IpOwog
ICAgIG1fY29uc3VtZXIuc2V0Q29udGVudFR5cGUoQmxvYjo6bm9ybWFsaXplZENvbnRlbnRUeXBl
KGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUobV9jb250ZW50VHlwZSkpKTsKICAgICBjb25z
dW1lKG93bmVyLCBXVEZNb3ZlKHByb21pc2UpKTsKQEAgLTE1NSw5ICsxNDgsNyBAQCB2b2lkIEZl
dGNoQm9keTo6YmxvYihGZXRjaEJvZHlPd25lciYgb3duZXIsIFJlZjxEZWZlcnJlZFByb21pc2U+
JiYgcHJvbWlzZSkKIAogdm9pZCBGZXRjaEJvZHk6Ompzb24oRmV0Y2hCb2R5T3duZXImIG93bmVy
LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgQVNTRVJUKG1fdHlwZSAh
PSBUeXBlOjpOb25lKTsKLQotICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6VGV4dCkgeworICAgIGlm
IChpc1RleHQoKSkgewogICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhKU09OKFdURk1vdmUocHJv
bWlzZSksIHRleHRCb2R5KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTY3LDkgKzE1
OCw3IEBAIHZvaWQgRmV0Y2hCb2R5Ojpqc29uKEZldGNoQm9keU93bmVyJiBvd25lciwgUmVmPERl
ZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogCiB2b2lkIEZldGNoQm9keTo6dGV4dChGZXRjaEJv
ZHlPd25lciYgb3duZXIsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBB
U1NFUlQobV90eXBlICE9IFR5cGU6Ok5vbmUpOwotCi0gICAgaWYgKG1fdHlwZSA9PSBUeXBlOjpU
ZXh0KSB7CisgICAgaWYgKGlzVGV4dCgpKSB7CiAgICAgICAgIHByb21pc2UtPnJlc29sdmUodGV4
dEJvZHkoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNzcsODkgKzE2Niw3MyBAQCB2
b2lkIEZldGNoQm9keTo6dGV4dChGZXRjaEJvZHlPd25lciYgb3duZXIsIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSkKICAgICBjb25zdW1lKG93bmVyLCBXVEZNb3ZlKHByb21pc2UpKTsK
IH0KIAotdm9pZCBGZXRjaEJvZHk6OmNvbnN1bWUoRmV0Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8
RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCit2b2lkIEZldGNoQm9keTo6Y29uc3VtZU9uY2VM
b2FkaW5nRmluaXNoZWQoRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGUgdHlwZSwgUmVmPERlZmVycmVk
UHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIC8vIFRoaXMgc2hvdWxkIGJlIGhhbmRsZWQgYnkg
RmV0Y2hCb2R5T3duZXIKLSAgICBBU1NFUlQobV90eXBlICE9IFR5cGU6Ok5vbmUpOwotICAgIC8v
IFRoaXMgc2hvdWxkIGJlIGhhbmRsZWQgYnkgSlMgYnVpbHQtaW5zCi0gICAgQVNTRVJUKG1fdHlw
ZSAhPSBUeXBlOjpSZWFkYWJsZVN0cmVhbSk7CisgICAgbV9jb25zdW1lci5zZXRUeXBlKHR5cGUp
OworICAgIG1fY29uc3VtZVByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpOworfQogCi0gICAgc3dp
dGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFR5cGU6OkFycmF5QnVmZmVyOgordm9pZCBGZXRjaEJv
ZHk6OmNvbnN1bWUoRmV0Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYm
IHByb21pc2UpCit7CisgICAgaWYgKGlzQXJyYXlCdWZmZXIoKSkgewogICAgICAgICBjb25zdW1l
QXJyYXlCdWZmZXIoV1RGTW92ZShwcm9taXNlKSk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNl
IFR5cGU6OkFycmF5QnVmZmVyVmlldzoKKyAgICB9CisgICAgaWYgKGlzQXJyYXlCdWZmZXJWaWV3
KCkpIHsKICAgICAgICAgY29uc3VtZUFycmF5QnVmZmVyVmlldyhXVEZNb3ZlKHByb21pc2UpKTsK
ICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgVHlwZTo6VGV4dDoKKyAgICB9CisgICAgaWYgKGlz
VGV4dCgpKSB7CiAgICAgICAgIGNvbnN1bWVUZXh0KFdURk1vdmUocHJvbWlzZSksIHRleHRCb2R5
KCkpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBUeXBlOjpVUkxTZWFjaFBhcmFtczoKKyAg
ICB9CisgICAgaWYgKGlzVVJMU2VhcmNoUGFyYW1zKCkpIHsKICAgICAgICAgY29uc3VtZVRleHQo
V1RGTW92ZShwcm9taXNlKSwgdXJsU2VhcmNoUGFyYW1zQm9keSgpLnRvU3RyaW5nKCkpOwogICAg
ICAgICByZXR1cm47Ci0gICAgY2FzZSBUeXBlOjpCbG9iOgorICAgIH0KKyAgICBpZiAoaXNCbG9i
KCkpIHsKICAgICAgICAgY29uc3VtZUJsb2Iob3duZXIsIFdURk1vdmUocHJvbWlzZSkpOwogICAg
ICAgICByZXR1cm47Ci0gICAgY2FzZSBUeXBlOjpMb2FkaW5nOgotICAgICAgICBtX2NvbnN1bWVQ
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgVHlw
ZTo6TG9hZGVkOgorICAgIH0KKyAgICBpZiAobV9jb25zdW1lci5oYXNEYXRhKCkpIHsKICAgICAg
ICAgbV9jb25zdW1lci5yZXNvbHZlKFdURk1vdmUocHJvbWlzZSkpOwogICAgICAgICByZXR1cm47
Ci0gICAgY2FzZSBUeXBlOjpGb3JtRGF0YToKKyAgICB9CisgICAgaWYgKGlzRm9ybURhdGEoKSkg
ewogICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBjb25zdW1pbmcgRm9ybURhdGEuCiAgICAgICAg
IHByb21pc2UtPnJlamVjdCgwKTsKICAgICAgICAgcmV0dXJuOwotICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKIH0KIAogI2lmIEVOQUJMRShSRUFEQUJMRV9TVFJFQU1fQVBJKQogdm9pZCBGZXRjaEJvZHk6
OmNvbnN1bWVBc1N0cmVhbShGZXRjaEJvZHlPd25lciYgb3duZXIsIEZldGNoUmVzcG9uc2VTb3Vy
Y2UmIHNvdXJjZSkKIHsKLSAgICAvLyBUaGlzIHNob3VsZCBiZSBoYW5kbGVkIGJ5IEZldGNoUmVz
cG9uc2UKLSAgICBBU1NFUlQobV90eXBlICE9IFR5cGU6OkxvYWRpbmcpOwotICAgIC8vIFRoaXMg
c2hvdWxkIGJlIGhhbmRsZWQgYnkgSlMgYnVpbHQtaW5zCi0gICAgQVNTRVJUKG1fdHlwZSAhPSBU
eXBlOjpSZWFkYWJsZVN0cmVhbSk7Ci0KICAgICBib29sIGNsb3NlU3RyZWFtID0gZmFsc2U7Ci0g
ICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFR5cGU6OkFycmF5QnVmZmVyOgorICAgIGlm
IChpc0FycmF5QnVmZmVyKCkpIHsKICAgICAgICAgY2xvc2VTdHJlYW0gPSBzb3VyY2UuZW5xdWV1
ZShBcnJheUJ1ZmZlcjo6dHJ5Q3JlYXRlKGFycmF5QnVmZmVyQm9keSgpLmRhdGEoKSwgYXJyYXlC
dWZmZXJCb2R5KCkuYnl0ZUxlbmd0aCgpKSk7CiAgICAgICAgIG1fZGF0YSA9IG51bGxwdHI7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHlwZTo6QXJyYXlCdWZmZXJWaWV3OiB7CisgICAgfSBl
bHNlIGlmIChpc0FycmF5QnVmZmVyVmlldygpKSB7CiAgICAgICAgIGNsb3NlU3RyZWFtID0gc291
cmNlLmVucXVldWUoQXJyYXlCdWZmZXI6OnRyeUNyZWF0ZShhcnJheUJ1ZmZlclZpZXdCb2R5KCku
YmFzZUFkZHJlc3MoKSwgYXJyYXlCdWZmZXJWaWV3Qm9keSgpLmJ5dGVMZW5ndGgoKSkpOwogICAg
ICAgICBtX2RhdGEgPSBudWxscHRyOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBU
eXBlOjpUZXh0OiB7CisgICAgfSBlbHNlIGlmIChpc1RleHQoKSkgewogICAgICAgICBhdXRvIGRh
dGEgPSBVVEY4RW5jb2RpbmcoKS5lbmNvZGUodGV4dEJvZHkoKSwgRW50aXRpZXNGb3JVbmVuY29k
YWJsZXMpOwogICAgICAgICBjbG9zZVN0cmVhbSA9IHNvdXJjZS5lbnF1ZXVlKEFycmF5QnVmZmVy
Ojp0cnlDcmVhdGUoZGF0YS5kYXRhKCksIGRhdGEubGVuZ3RoKCkpKTsKICAgICAgICAgbV9kYXRh
ID0gbnVsbHB0cjsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgVHlwZTo6VVJMU2Vh
Y2hQYXJhbXM6IHsKKyAgICB9IGVsc2UgaWYgKGlzVVJMU2VhcmNoUGFyYW1zKCkpIHsKICAgICAg
ICAgYXV0byBkYXRhID0gVVRGOEVuY29kaW5nKCkuZW5jb2RlKHVybFNlYXJjaFBhcmFtc0JvZHko
KS50b1N0cmluZygpLCBFbnRpdGllc0ZvclVuZW5jb2RhYmxlcyk7CiAgICAgICAgIGNsb3NlU3Ry
ZWFtID0gc291cmNlLmVucXVldWUoQXJyYXlCdWZmZXI6OnRyeUNyZWF0ZShkYXRhLmRhdGEoKSwg
ZGF0YS5sZW5ndGgoKSkpOwogICAgICAgICBtX2RhdGEgPSBudWxscHRyOwotICAgICAgICBicmVh
azsKLSAgICB9Ci0gICAgY2FzZSBUeXBlOjpCbG9iOgorICAgIH0gZWxzZSBpZiAoaXNCbG9iKCkp
IHsKICAgICAgICAgb3duZXIubG9hZEJsb2IoYmxvYkJvZHkoKSwgbnVsbHB0cik7CiAgICAgICAg
IG1fZGF0YSA9IG51bGxwdHI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHlwZTo6Tm9uZToK
LSAgICAgICAgY2xvc2VTdHJlYW0gPSB0cnVlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFR5
cGU6OkxvYWRlZDogeworICAgIH0gZWxzZSBpZiAobV9jb25zdW1lci5oYXNEYXRhKCkpCiAgICAg
ICAgIGNsb3NlU3RyZWFtID0gc291cmNlLmVucXVldWUobV9jb25zdW1lci50YWtlQXNBcnJheUJ1
ZmZlcigpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGRlZmF1bHQ6CisgICAgZWxzZSBp
ZiAoaXNFbXB0eSgpKQorICAgICAgICBjbG9zZVN0cmVhbSA9IHRydWU7CisgICAgZWxzZQogICAg
ICAgICBzb3VyY2UuZXJyb3IoQVNDSUlMaXRlcmFsKCJub3QgaW1wbGVtZW50ZWQiKSk7Ci0gICAg
fQogCiAgICAgaWYgKGNsb3NlU3RyZWFtKQogICAgICAgICBzb3VyY2UuY2xvc2UoKTsKQEAgLTMw
Miw3MSArMjc1LDU2IEBAIHZvaWQgRmV0Y2hCb2R5Ojpsb2FkaW5nRmFpbGVkKCkKIAogdm9pZCBG
ZXRjaEJvZHk6OmxvYWRpbmdTdWNjZWVkZWQoKQogewotICAgIG1fdHlwZSA9IG1fY29uc3VtZXIu
aGFzRGF0YSgpID8gVHlwZTo6TG9hZGVkIDogVHlwZTo6Tm9uZTsKKyAgICBtX2lzRW1wdHkgPSAh
bV9jb25zdW1lci5oYXNEYXRhKCk7CiAgICAgaWYgKG1fY29uc3VtZVByb21pc2UpCiAgICAgICAg
IG1fY29uc3VtZXIucmVzb2x2ZShtX2NvbnN1bWVQcm9taXNlLnJlbGVhc2VOb25OdWxsKCkpOwog
fQogCiBSZWZQdHI8Rm9ybURhdGE+IEZldGNoQm9keTo6Ym9keUZvckludGVybmFsUmVxdWVzdChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAogewotICAgIHN3aXRjaCAobV90
eXBlKSB7Ci0gICAgY2FzZSBUeXBlOjpOb25lOgorICAgIGlmIChpc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwotICAgIGNhc2UgVHlwZTo6VGV4dDoKKyAgICBpZiAoaXNUZXh0KCkp
CiAgICAgICAgIHJldHVybiBGb3JtRGF0YTo6Y3JlYXRlKFVURjhFbmNvZGluZygpLmVuY29kZSh0
ZXh0Qm9keSgpLCBFbnRpdGllc0ZvclVuZW5jb2RhYmxlcykpOwotICAgIGNhc2UgVHlwZTo6VVJM
U2VhY2hQYXJhbXM6CisgICAgaWYgKGlzVVJMU2VhcmNoUGFyYW1zKCkpCiAgICAgICAgIHJldHVy
biBGb3JtRGF0YTo6Y3JlYXRlKFVURjhFbmNvZGluZygpLmVuY29kZSh1cmxTZWFyY2hQYXJhbXNC
b2R5KCkudG9TdHJpbmcoKSwgRW50aXRpZXNGb3JVbmVuY29kYWJsZXMpKTsKLSAgICBjYXNlIFR5
cGU6OkJsb2I6IHsKKyAgICBpZiAoaXNCbG9iKCkpIHsKICAgICAgICAgUmVmUHRyPEZvcm1EYXRh
PiBib2R5ID0gRm9ybURhdGE6OmNyZWF0ZSgpOwogICAgICAgICBib2R5LT5hcHBlbmRCbG9iKGJs
b2JCb2R5KCkudXJsKCkpOwogICAgICAgICByZXR1cm4gYm9keTsKICAgICB9Ci0gICAgY2FzZSBU
eXBlOjpBcnJheUJ1ZmZlcjoKKyAgICBpZiAoaXNBcnJheUJ1ZmZlcigpKQogICAgICAgICByZXR1
cm4gRm9ybURhdGE6OmNyZWF0ZShhcnJheUJ1ZmZlckJvZHkoKS5kYXRhKCksIGFycmF5QnVmZmVy
Qm9keSgpLmJ5dGVMZW5ndGgoKSk7Ci0gICAgY2FzZSBUeXBlOjpBcnJheUJ1ZmZlclZpZXc6Cisg
ICAgaWYgKGlzQXJyYXlCdWZmZXJWaWV3KCkpCiAgICAgICAgIHJldHVybiBGb3JtRGF0YTo6Y3Jl
YXRlKGFycmF5QnVmZmVyVmlld0JvZHkoKS5iYXNlQWRkcmVzcygpLCBhcnJheUJ1ZmZlclZpZXdC
b2R5KCkuYnl0ZUxlbmd0aCgpKTsKLSAgICBjYXNlIFR5cGU6OkZvcm1EYXRhOiB7CisgICAgaWYg
KGlzRm9ybURhdGEoKSkgewogICAgICAgICBBU1NFUlQoIWNvbnRleHQuaXNXb3JrZXJHbG9iYWxT
Y29wZSgpKTsKICAgICAgICAgUmVmUHRyPEZvcm1EYXRhPiBib2R5ID0gY29uc3RfY2FzdDxGb3Jt
RGF0YSo+KCZmb3JtRGF0YUJvZHkoKSk7CiAgICAgICAgIGJvZHktPmdlbmVyYXRlRmlsZXMoc3Rh
dGljX2Nhc3Q8RG9jdW1lbnQqPigmY29udGV4dCkpOwogICAgICAgICByZXR1cm4gYm9keTsKICAg
ICB9Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IHJldHVybiBudWxscHRyOwotICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KIAogRmV0Y2hCb2R5IEZldGNoQm9keTo6Y2xvbmUoKSBjb25zdAog
ewogICAgIEFTU0VSVCghbV9jb25zdW1lUHJvbWlzZSk7Ci0gICAgRmV0Y2hCb2R5IGNsb25lKG1f
dHlwZSwgbV9jb250ZW50VHlwZSwgbV9jb25zdW1lcik7CisgICAgRmV0Y2hCb2R5IGNsb25lKG1f
Y29udGVudFR5cGUsIG1fY29uc3VtZXIpOworICAgIGNsb25lLm1faXNFbXB0eSA9IG1faXNFbXB0
eTsKIAotICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBUeXBlOjpBcnJheUJ1ZmZlcjoK
KyAgICBpZiAoaXNBcnJheUJ1ZmZlcigpKQogICAgICAgICBjbG9uZS5tX2RhdGEgPSBhcnJheUJ1
ZmZlckJvZHkoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBUeXBlOjpBcnJheUJ1ZmZlclZp
ZXc6CisgICAgZWxzZSBpZiAoaXNBcnJheUJ1ZmZlclZpZXcoKSkKICAgICAgICAgY2xvbmUubV9k
YXRhID0gYXJyYXlCdWZmZXJWaWV3Qm9keSgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFR5
cGU6OkJsb2I6CisgICAgZWxzZSBpZiAoaXNCbG9iKCkpCiAgICAgICAgIGNsb25lLm1fZGF0YSA9
IGJsb2JCb2R5KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHlwZTo6Rm9ybURhdGE6Cisg
ICAgZWxzZSBpZiAoaXNGb3JtRGF0YSgpKQogICAgICAgICBjbG9uZS5tX2RhdGEgPSBjb25zdF9j
YXN0PEZvcm1EYXRhJj4oZm9ybURhdGFCb2R5KCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFR5cGU6OlRleHQ6CisgICAgZWxzZSBpZiAoaXNUZXh0KCkpCiAgICAgICAgIGNsb25lLm1fZGF0
YSA9IHRleHRCb2R5KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHlwZTo6VVJMU2VhY2hQ
YXJhbXM6CisgICAgZWxzZSBpZiAoaXNVUkxTZWFyY2hQYXJhbXMoKSkKICAgICAgICAgY2xvbmUu
bV9kYXRhID0gdXJsU2VhcmNoUGFyYW1zQm9keSgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFR5cGU6OkxvYWRlZDoKLSAgICBjYXNlIFR5cGU6Ok5vbmU6Ci0gICAgY2FzZSBUeXBlOjpMb2Fk
aW5nOgotICAgIGNhc2UgVHlwZTo6UmVhZGFibGVTdHJlYW06Ci0gICAgICAgIGJyZWFrOwotICAg
IH0KICAgICByZXR1cm4gY2xvbmU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoQm9keS5oCmluZGV4IDdiMTRiZGY3NGMzYzBiZjkzMjM5N2NmNjFhN2YwZjI2NzNiZjA4N2Yu
LjlkNWQ3ZmExOGE5YjFjMDJhZmMwODQ4Njk0OTI3OWQzZTVhMTI0NTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaApAQCAtNjQsNyArNjQsMTMgQEAgcHVibGljOgog
ICAgIHZvaWQgY29uc3VtZUFzU3RyZWFtKEZldGNoQm9keU93bmVyJiwgRmV0Y2hSZXNwb25zZVNv
dXJjZSYpOwogI2VuZGlmCiAKLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gVHlwZTo6Tm9uZTsgfQorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNFbXB0eTsgfQorICAgIGJvb2wgaXNCbG9iKCkgY29uc3QgeyByZXR1cm4gc3RkOjpleHBlcmlt
ZW50YWw6OmhvbGRzX2FsdGVybmF0aXZlPFJlZjxjb25zdCBCbG9iPj4obV9kYXRhKTsgfQorICAg
IGJvb2wgaXNGb3JtRGF0YSgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6ZXhwZXJpbWVudGFsOjpob2xk
c19hbHRlcm5hdGl2ZTxSZWY8Rm9ybURhdGE+PihtX2RhdGEpOyB9CisgICAgYm9vbCBpc0FycmF5
QnVmZmVyKCkgY29uc3QgeyByZXR1cm4gc3RkOjpleHBlcmltZW50YWw6OmhvbGRzX2FsdGVybmF0
aXZlPFJlZjxjb25zdCBBcnJheUJ1ZmZlcj4+KG1fZGF0YSk7IH0KKyAgICBib29sIGlzQXJyYXlC
dWZmZXJWaWV3KCkgY29uc3QgeyByZXR1cm4gc3RkOjpleHBlcmltZW50YWw6OmhvbGRzX2FsdGVy
bmF0aXZlPFJlZjxjb25zdCBBcnJheUJ1ZmZlclZpZXc+PihtX2RhdGEpOyB9CisgICAgYm9vbCBp
c1VSTFNlYXJjaFBhcmFtcygpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6ZXhwZXJpbWVudGFsOjpob2xk
c19hbHRlcm5hdGl2ZTxSZWY8Y29uc3QgVVJMU2VhcmNoUGFyYW1zPj4obV9kYXRhKTsgfQorICAg
IGJvb2wgaXNUZXh0KCkgY29uc3QgeyByZXR1cm4gc3RkOjpleHBlcmltZW50YWw6OmhvbGRzX2Fs
dGVybmF0aXZlPFN0cmluZz4obV9kYXRhKTsgfQogCiAgICAgdm9pZCB1cGRhdGVDb250ZW50VHlw
ZShGZXRjaEhlYWRlcnMmKTsKICAgICB2b2lkIHNldENvbnRlbnRUeXBlKGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpIHsgbV9jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlOyB9CkBAIC03MiwxOSAr
NzgsMTYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEZldGNoQm9keSBleHRyYWN0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNWYWx1ZSk7CiAgICAgc3Rh
dGljIEZldGNoQm9keSBleHRyYWN0RnJvbUJvZHkoRmV0Y2hCb2R5Kik7Ci0gICAgc3RhdGljIEZl
dGNoQm9keSBsb2FkaW5nQm9keSgpIHsgcmV0dXJuIHsgVHlwZTo6TG9hZGluZyB9OyB9Ci0gICAg
RmV0Y2hCb2R5KCkgPSBkZWZhdWx0OworICAgIEZldGNoQm9keSgpIDogbV9pc0VtcHR5KHRydWUp
IHsgfQogCiAgICAgdm9pZCBsb2FkaW5nRmFpbGVkKCk7CiAgICAgdm9pZCBsb2FkaW5nU3VjY2Vl
ZGVkKCk7CiAKICAgICBSZWZQdHI8Rm9ybURhdGE+IGJvZHlGb3JJbnRlcm5hbFJlcXVlc3QoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYpIGNvbnN0OwogCi0gICAgZW51bSBjbGFzcyBUeXBlIHsgTm9u
ZSwgQXJyYXlCdWZmZXIsIEFycmF5QnVmZmVyVmlldywgQmxvYiwgRm9ybURhdGEsIFRleHQsIFVS
TFNlYWNoUGFyYW1zLCBMb2FkaW5nLCBMb2FkZWQsIFJlYWRhYmxlU3RyZWFtIH07Ci0gICAgVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0KICAgICBGZXRjaEJvZHlDb25zdW1l
ciYgY29uc3VtZXIoKSB7IHJldHVybiBtX2NvbnN1bWVyOyB9CiAKKyAgICB2b2lkIGNvbnN1bWVP
bmNlTG9hZGluZ0ZpbmlzaGVkKEZldGNoQm9keUNvbnN1bWVyOjpUeXBlLCBSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmKTsKICAgICB2b2lkIGNsZWFuQ29uc3VtZVByb21pc2UoKSB7IG1fY29uc3VtZVBy
b21pc2UgPSBudWxscHRyOyB9CiAKICAgICBGZXRjaEJvZHkgY2xvbmUoKSBjb25zdDsKQEAgLTk2
LDggKzk5LDcgQEAgcHJpdmF0ZToKICAgICBGZXRjaEJvZHkoRE9NRm9ybURhdGEmLCBEb2N1bWVu
dCYpOwogICAgIEZldGNoQm9keShTdHJpbmcmJik7CiAgICAgRmV0Y2hCb2R5KFJlZjxjb25zdCBV
UkxTZWFyY2hQYXJhbXM+JiYpOwotICAgIEZldGNoQm9keShUeXBlLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBGZXRjaEJvZHlDb25zdW1lciYpOwotICAgIEZldGNoQm9keShUeXBlIHR5cGUpIDogbV90
eXBlKHR5cGUpIHsgfQorICAgIEZldGNoQm9keShjb25zdCBTdHJpbmcmLCBjb25zdCBGZXRjaEJv
ZHlDb25zdW1lciYpOwogCiAgICAgdm9pZCBjb25zdW1lKEZldGNoQm9keU93bmVyJiwgUmVmPERl
ZmVycmVkUHJvbWlzZT4mJik7CiAKQEAgLTExNSwxMSArMTE3LDExIEBAIHByaXZhdGU6CiAgICAg
Y29uc3QgU3RyaW5nJiB0ZXh0Qm9keSgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6ZXhwZXJpbWVudGFs
OjpnZXQ8U3RyaW5nPihtX2RhdGEpOyB9CiAgICAgY29uc3QgVVJMU2VhcmNoUGFyYW1zJiB1cmxT
ZWFyY2hQYXJhbXNCb2R5KCkgY29uc3QgeyByZXR1cm4gc3RkOjpleHBlcmltZW50YWw6OmdldDxS
ZWY8Y29uc3QgVVJMU2VhcmNoUGFyYW1zPj4obV9kYXRhKS5nZXQoKTsgfQogCi0gICAgVHlwZSBt
X3R5cGUgeyBUeXBlOjpOb25lIH07Ci0KLSAgICBzdGQ6OmV4cGVyaW1lbnRhbDo6dmFyaWFudDxz
dGQ6Om51bGxwdHJfdCwgUmVmPGNvbnN0IEJsb2I+LCBSZWY8Rm9ybURhdGE+LCBSZWY8Y29uc3Qg
QXJyYXlCdWZmZXI+LCBSZWY8Y29uc3QgQXJyYXlCdWZmZXJWaWV3PiwgUmVmPGNvbnN0IFVSTFNl
YXJjaFBhcmFtcz4sIFN0cmluZz4gbV9kYXRhOworICAgIHN0ZDo6ZXhwZXJpbWVudGFsOjp2YXJp
YW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8Y29uc3QgQmxvYj4sIFJlZjxGb3JtRGF0YT4sIFJlZjxj
b25zdCBBcnJheUJ1ZmZlcj4sIFJlZjxjb25zdCBBcnJheUJ1ZmZlclZpZXc+LCBSZWY8Y29uc3Qg
VVJMU2VhcmNoUGFyYW1zPiwgU3RyaW5nPiBtX2RhdGEgeyBudWxscHRyIH07CiAgICAgU3RyaW5n
IG1fY29udGVudFR5cGU7CiAKKyAgICBib29sIG1faXNFbXB0eSB7IGZhbHNlIH07CisKICAgICBG
ZXRjaEJvZHlDb25zdW1lciBtX2NvbnN1bWVyIHsgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6Ok5v
bmUgfTsKICAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBtX2NvbnN1bWVQcm9taXNlOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3duZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHAKaW5k
ZXggYWM0ZmFkNmM3NjdlYmY1M2VjYjFiNTI5OTY3MzQzMzQwMmIyYjNhOC4uOGM5N2M0MDM2YjZk
ZTM4OGEyNWQyYzAyZTk5YWVlYmFiN2E2NTVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHAKQEAgLTEwMSw2ICsxMDEsMTYgQEAgdm9pZCBG
ZXRjaEJvZHlPd25lcjo6YmxvYihSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAg
bV9ib2R5LmJsb2IoKnRoaXMsIFdURk1vdmUocHJvbWlzZSkpOwogfQogCit2b2lkIEZldGNoQm9k
eU93bmVyOjpjb25zdW1lT25jZUxvYWRpbmdGaW5pc2hlZChGZXRjaEJvZHlDb25zdW1lcjo6VHlw
ZSB0eXBlLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCit7CisgICAgaWYgKGlzRGlz
dHVyYmVkT3JMb2NrZWQoKSkgeworICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX2lzRGlzdHVyYmVkID0gdHJ1ZTsKKyAgICBt
X2JvZHkuY29uc3VtZU9uY2VMb2FkaW5nRmluaXNoZWQodHlwZSwgV1RGTW92ZShwcm9taXNlKSk7
Cit9CisKIHZvaWQgRmV0Y2hCb2R5T3duZXI6OmZvcm1EYXRhKFJlZjxEZWZlcnJlZFByb21pc2U+
JiYgcHJvbWlzZSkKIHsKICAgICBpZiAobV9ib2R5LmlzRW1wdHkoKSkgewpAQCAtMTc2LDggKzE4
Niw2IEBAIHZvaWQgRmV0Y2hCb2R5T3duZXI6OmZpbmlzaEJsb2JMb2FkaW5nKCkKIAogdm9pZCBG
ZXRjaEJvZHlPd25lcjo6YmxvYkxvYWRpbmdTdWNjZWVkZWQoKQogewotICAgIEFTU0VSVChtX2Jv
ZHkudHlwZSgpID09IEZldGNoQm9keTo6VHlwZTo6QmxvYik7Ci0KICNpZiBFTkFCTEUoUkVBREFC
TEVfU1RSRUFNX0FQSSkKICAgICBpZiAobV9yZWFkYWJsZVN0cmVhbVNvdXJjZSkgewogICAgICAg
ICBtX3JlYWRhYmxlU3RyZWFtU291cmNlLT5jbG9zZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5oCmluZGV4IDJmNDJhOGVkNmNlZTFkOWY3MzIwMjQy
MDJkOThhM2ZmMDRiNzg2NWIuLjRiNDM2N2RiMGM0YTU5NDM4OWMwNmFmZjI3YmY1MGVlYTliNGM0
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5T3du
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmgK
QEAgLTU4LDExICs1OCwxMCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQWN0aXZlKCkgY29uc3Qg
eyByZXR1cm4gISFtX2Jsb2JMb2FkZXI7IH0KIAotICAgIEZldGNoQm9keTo6VHlwZSBib2R5VHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYm9keS50eXBlKCk7IH0KLQogcHJvdGVjdGVkOgogICAgIGNv
bnN0IEZldGNoQm9keSYgYm9keSgpIGNvbnN0IHsgcmV0dXJuIG1fYm9keTsgfQogICAgIEZldGNo
Qm9keSYgYm9keSgpIHsgcmV0dXJuIG1fYm9keTsgfQorICAgIHZvaWQgY29uc3VtZU9uY2VMb2Fk
aW5nRmluaXNoZWQoRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGUsIFJlZjxEZWZlcnJlZFByb21pc2U+
JiYpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0IEFQSQogICAgIHZvaWQgc3RvcCgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCmlu
ZGV4IGRhNDA0NDY2ZmUxZDk2ODI4NWJkM2ZmZWZjYTM2NzRjYTBiNjY1MGYuLjc2N2YzNjNmYzhi
MTM1MjUyYTAzYjMzYWNiNTI2NTNhOWNiZTUyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKQEAgLTI2Miw3ICsyNjIsNyBAQCB2b2lkIEZldGNo
UmVxdWVzdDo6c2V0Qm9keShKU0M6OkV4ZWNTdGF0ZSYgZXhlY1N0YXRlLCBKU0M6OkpTVmFsdWUg
Ym9keSwgRmV0Y2hSZQogCiAgICAgICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OwogICAgICAgICBtX2JvZHkgPSBGZXRjaEJvZHk6OmV4dHJhY3QoKnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSwgZXhlY1N0YXRlLCBib2R5KTsKLSAgICAgICAgaWYgKG1fYm9keS50eXBlKCkgPT0g
RmV0Y2hCb2R5OjpUeXBlOjpOb25lKSB7CisgICAgICAgIGlmIChtX2JvZHkuaXNFbXB0eSgpKSB7
CiAgICAgICAgICAgICBlYyA9IFR5cGVFcnJvcjsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3Bv
bnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAK
aW5kZXggZGQyYzFkMzQzZjkxZjhhOGJiZWQ5MzQyYTQ1MDk5ZGRmYThlMjlhNC4uNDI0NjMzMjQ3
MjZiZGE3NjIwNDJjNjMwMTYzMmMwOGVlODMzMjFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgUmVmPEZl
dGNoUmVzcG9uc2U+IEZldGNoUmVzcG9uc2U6OmNsb25lRm9ySlMoKQogCiB2b2lkIEZldGNoUmVz
cG9uc2U6OmZldGNoKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZldGNoUmVxdWVz
dCYgcmVxdWVzdCwgRmV0Y2hQcm9taXNlJiYgcHJvbWlzZSkKIHsKLSAgICBhdXRvIHJlc3BvbnNl
ID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJlc3BvbnNlKGNvbnRleHQsIEZldGNoQm9keTo6bG9hZGlu
Z0JvZHkoKSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6SW1tdXRh
YmxlKSwgeyB9KSk7CisgICAgYXV0byByZXNwb25zZSA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXNw
b25zZShjb250ZXh0LCB7IH0sIEZldGNoSGVhZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVyczo6R3Vh
cmQ6OkltbXV0YWJsZSksIHsgfSkpOwogCiAgICAgLy8gU2V0dGluZyBwZW5kaW5nIGFjdGl2aXR5
IHVudGlsIEJvZHlMb2FkZXIgZGlkRmFpbCBvciBkaWRTdWNjZWVkIGNhbGxiYWNrIGlzIGNhbGxl
ZC4KICAgICByZXNwb25zZS0+c2V0UGVuZGluZ0FjdGl2aXR5KHJlc3BvbnNlLnB0cigpKTsKQEAg
LTEyNiw5ICsxMjYsOSBAQCB2b2lkIEZldGNoUmVzcG9uc2U6OkJvZHlMb2FkZXI6OmRpZFN1Y2Nl
ZWQoKQogICAgIG1fcmVzcG9uc2UubV9ib2R5LmxvYWRpbmdTdWNjZWVkZWQoKTsKIAogI2lmIEVO
QUJMRShSRUFEQUJMRV9TVFJFQU1fQVBJKQotICAgIGlmIChtX3Jlc3BvbnNlLm1fcmVhZGFibGVT
dHJlYW1Tb3VyY2UgJiYgbV9yZXNwb25zZS5tX2JvZHkudHlwZSgpICE9IEZldGNoQm9keTo6VHlw
ZTo6TG9hZGVkKSB7Ci0gICAgICAgIC8vIFdlIG9ubHkgY2xvc2UgdGhlIHN0cmVhbSBpZiBGZXRj
aEJvZHkgYWxyZWFkeSBlbnF1ZXVlZCBkYXRhLgotICAgICAgICAvLyBPdGhlcndpc2UsIEZldGNo
Qm9keSB3aWxsIGNsb3NlIHRoZSBzdHJlYW0gd2hlbiBlbnF1ZXVpbmcgZGF0YS4KKyAgICBpZiAo
bV9yZXNwb25zZS5tX3JlYWRhYmxlU3RyZWFtU291cmNlICYmIG1fcmVzcG9uc2UuYm9keSgpLmlz
RW1wdHkoKSkgeworICAgICAgICAvLyBXZSBvbmx5IGNsb3NlIHRoZSBzdHJlYW0gaWYgRmV0Y2hC
b2R5IGFscmVhZHkgZW5xdWV1ZWQgYWxsIGRhdGEuCisgICAgICAgIC8vIE90aGVyd2lzZSwgRmV0
Y2hCb2R5IHdpbGwgY2xvc2UgdGhlIHN0cmVhbSBhZnRlciBlbnF1ZXVpbmcgdGhlIGRhdGEuCiAg
ICAgICAgIG1fcmVzcG9uc2UubV9yZWFkYWJsZVN0cmVhbVNvdXJjZS0+Y2xvc2UoKTsKICAgICAg
ICAgbV9yZXNwb25zZS5tX3JlYWRhYmxlU3RyZWFtU291cmNlID0gbnVsbHB0cjsKICAgICB9CkBA
IC0yMDksOCArMjA5LDE0IEBAIHZvaWQgRmV0Y2hSZXNwb25zZTo6Qm9keUxvYWRlcjo6c3RvcCgp
CiB2b2lkIEZldGNoUmVzcG9uc2U6OmNvbnN1bWUodW5zaWduZWQgdHlwZSwgUmVmPERlZmVycmVk
UHJvbWlzZT4mJiB3cmFwcGVyKQogewogICAgIEFTU0VSVCh0eXBlIDw9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6VGV4dCkpOworICAgIGF1dG8gY29uc3Vt
ZXJUeXBlID0gc3RhdGljX2Nhc3Q8RmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU+KHR5cGUpOworCisg
ICAgaWYgKGlzTG9hZGluZygpKSB7CisgICAgICAgIGNvbnN1bWVPbmNlTG9hZGluZ0ZpbmlzaGVk
KGNvbnN1bWVyVHlwZSwgV1RGTW92ZSh3cmFwcGVyKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CiAKLSAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PEZldGNoQm9keUNvbnN1bWVyOjpUeXBlPih0eXBl
KSkgeworICAgIHN3aXRjaCAoY29uc3VtZXJUeXBlKSB7CiAgICAgY2FzZSBGZXRjaEJvZHlDb25z
dW1lcjo6VHlwZTo6QXJyYXlCdWZmZXI6CiAgICAgICAgIGFycmF5QnVmZmVyKFdURk1vdmUod3Jh
cHBlcikpOwogICAgICAgICByZXR1cm47CkBAIC0yNTAsNyArMjU2LDcgQEAgdm9pZCBGZXRjaFJl
c3BvbnNlOjpjb25zdW1lQm9keUFzU3RyZWFtKCkKIHsKICAgICBBU1NFUlQobV9yZWFkYWJsZVN0
cmVhbVNvdXJjZSk7CiAgICAgbV9pc0Rpc3R1cmJlZCA9IHRydWU7Ci0gICAgaWYgKGJvZHkoKS50
eXBlKCkgIT0gRmV0Y2hCb2R5OjpUeXBlOjpMb2FkaW5nKSB7CisgICAgaWYgKCFpc0xvYWRpbmco
KSkgewogICAgICAgICBib2R5KCkuY29uc3VtZUFzU3RyZWFtKCp0aGlzLCAqbV9yZWFkYWJsZVN0
cmVhbVNvdXJjZSk7CiAgICAgICAgIGlmICghbV9yZWFkYWJsZVN0cmVhbVNvdXJjZS0+aXNTdGFy
dGluZygpKQogICAgICAgICAgICAgbV9yZWFkYWJsZVN0cmVhbVNvdXJjZSA9IG51bGxwdHI7CkBA
IC0yNzIsNyArMjc4LDcgQEAgUmVhZGFibGVTdHJlYW1Tb3VyY2UqIEZldGNoUmVzcG9uc2U6OmNy
ZWF0ZVJlYWRhYmxlU3RyZWFtU291cmNlKCkKICAgICBBU1NFUlQoIW1fcmVhZGFibGVTdHJlYW1T
b3VyY2UpOwogICAgIEFTU0VSVCghbV9pc0Rpc3R1cmJlZCk7CiAKLSAgICBpZiAoYm9keSgpLmlz
RW1wdHkoKSkKKyAgICBpZiAoYm9keSgpLmlzRW1wdHkoKSAmJiAhaXNMb2FkaW5nKCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCiAgICAgbV9yZWFkYWJsZVN0cmVhbVNvdXJjZSA9IGFkb3B0
UmVmKCpuZXcgRmV0Y2hSZXNwb25zZVNvdXJjZSgqdGhpcykpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaAppbmRleCBhNmZiYjQyZTVkNGVmYTZkMmYyYzQz
ZDc5NTYzNjgzYmZkMGMyNDRhLi5hZDg4NTJjNDc4YmQwNmUxYTAwYjY5N2Y4ZDZiYjU1ZDI3YWQ4
N2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9u
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaApA
QCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb25zdW1lQm9keUFzU3RyZWFtKCk7
CiAgICAgdm9pZCBjYW5jZWwoKTsKICNlbmRpZgotICAgIGJvb2wgaXNMb2FkaW5nKCkgY29uc3Qg
eyByZXR1cm4gYm9keSgpLnR5cGUoKSA9PSBGZXRjaEJvZHk6OlR5cGU6OkxvYWRpbmc7IH0KKyAg
ICBib29sIGlzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuICEhbV9ib2R5TG9hZGVyOyB9CiAKIHBy
aXZhdGU6CiAgICAgRmV0Y2hSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRmV0Y2hC
b2R5JiYsIFJlZjxGZXRjaEhlYWRlcnM+JiYsIFJlc291cmNlUmVzcG9uc2UmJik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>