<?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>167609</bug_id>
          
          <creation_ts>2017-01-30 15:11:21 -0800</creation_ts>
          <short_desc>[QuickLook] QLPreviewConverter and QuickLookHandle have different lifetime requirements</short_desc>
          <delta_ts>2017-01-30 17:55:31 -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>New Bugs</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="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1271429</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-30 15:11:21 -0800</bug_when>
    <thetext>[QuickLook] QLPreviewConverter and QuickLookHandle have different lifetime requirements</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271440</commentid>
    <comment_count>1</comment_count>
      <attachid>300151</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-30 15:34:23 -0800</bug_when>
    <thetext>Created attachment 300151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271442</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-30 15:36:44 -0800</bug_when>
    <thetext>Attachment 300151 did not pass style-queue:


ERROR: Source/WebCore/platform/network/ios/PreviewConverter.mm:51:  Missing spaces around :  [whitespace/init] [4]
ERROR: Source/WebCore/platform/network/ios/PreviewConverter.mm:56:  Missing spaces around :  [whitespace/init] [4]
ERROR: Source/WebCore/loader/ios/QuickLook.mm:327:  Missing spaces around :  [whitespace/init] [4]
ERROR: Source/WebCore/loader/ios/QuickLook.mm:352:  Extra space in capture list.  [whitespace/brackets] [4]
Total errors found: 4 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271507</commentid>
    <comment_count>3</comment_count>
      <attachid>300151</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2017-01-30 17:28:54 -0800</bug_when>
    <thetext>Comment on attachment 300151
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271525</commentid>
    <comment_count>4</comment_count>
      <attachid>300151</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-30 17:55:26 -0800</bug_when>
    <thetext>Comment on attachment 300151
Patch

Clearing flags on attachment: 300151

Committed r211398: &lt;http://trac.webkit.org/changeset/211398&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271526</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-30 17:55:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300151</attachid>
            <date>2017-01-30 15:34:23 -0800</date>
            <delta_ts>2017-01-30 17:55:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167609-20170130153213.patch</filename>
            <type>text/plain</type>
            <size>37554</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA1OGY2NTAyY2JkNjJj
NGU2M2UzOTM4ZDg0Mzk1ZjZmNTcyMmRlZC4uZmI0YjY4OGJjNDQyMzU5NjYwOWJhZTkyMzFlMzdh
NGM0ZWYxMTMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDE3LTAxLTMwICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbUXVpY2tMb29rXSBRTFByZXZp
ZXdDb252ZXJ0ZXIgYW5kIFF1aWNrTG9va0hhbmRsZSBoYXZlIGRpZmZlcmVudCBsaWZldGltZSBy
ZXF1aXJlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2NzYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAg
ICAKKyAgICAgICAgQ3VycmVudGx5LCBRdWlja0xvb2tIYW5kbGVzIGFyZSBvd25lZCBieSBEb2N1
bWVudExvYWRlciBzbyB0aGF0IHRoZSB1bmRlcmx5aW5nCisgICAgICAgIFFMUHJldmlld0NvbnZl
cnRlciBzdGF5cyBhbGl2ZSB0byBzZXJ2aWNlIHN1YnJlc291cmNlIHJlcXVlc3RzLiBIb3dldmVy
LCB0aGUgUXVpY2tMb29rSGFuZGxlCisgICAgICAgIGl0c2VsZiBvbmx5IG5lZWRzIHRvIGxpdmUg
bG9uZyBlbm91Z2ggdG8gaGFuZGxlIHRoZSBtYWluIHJlc291cmNlIGxvYWQuIEFuZCBpbiBhIGZv
bGxvdy1vbgorICAgICAgICBwYXRjaCB3ZSB3aWxsIG5lZWQgdG8gY3JlYXRlIFFMUHJldmlld0Nv
bnZlcnRlcnMgaW5kZXBlbmRlbnQgb2YgUXVpY2tMb29rSGFuZGxlLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggbW92ZXMgb3duZXJzaGlwIG9mIFF1aWNrTG9va0hhbmRsZSBmcm9tIERvY3VtZW50TG9h
ZGVyIHRvIFJlc291cmNlTG9hZGVyLiBJdCBhbHNvCisgICAgICAgIGNyZWF0ZXMgYSBDKysgd3Jh
cHBlciBhcm91bmQgUUxQcmV2aWV3Q29udmVydGVyIGFuZCB0ZWFjaGVzIFF1aWNrTG9va0hhbmRs
ZSB0byB0cmFuc2ZlcgorICAgICAgICBvd25lcnNoaXAgb2YgdGhlIHdyYXBwZXIgdG8gRG9jdW1l
bnRMb2FkZXIgb25jZSB0aGUgbWFpbiByZXNvdXJjZSBjb252ZXJzaW9uIGlzIGNvbXBsZXRlLgor
CisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4gQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0
cy4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkZWQg
UHJldmlld0NvbnZlcnRlci57aCxtbX0uCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzZXRQcmV2aWV3Q29udmVy
dGVyKTogUmVuYW1lZCBmcm9tIHNldFF1aWNrTG9va0hhbmRsZSgpLgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXI6OnByZXZpZXdDb252ZXJ0ZXIpOiBSZW5hbWVkIGZyb20gcXVpY2tM
b29rSGFuZGxlKCkuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2V0UXVpY2tM
b29rSGFuZGxlKTogUmVuYW1lZCB0byBzZXRQcmV2aWV3Q29udmVydGVyKCkuCisgICAgICAgICog
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
cjo6cXVpY2tMb29rSGFuZGxlKTogUmVuYW1lZCB0byBxdWlja0xvb2tIYW5kbGUoKS4KKyAgICAg
ICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdEludGVybmFsKTogQ2hhbmdlZCB0byBjYWxsIFByZXZp
ZXdDb252ZXJ0ZXI6OnNhZmVSZXF1ZXN0KCkuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRlcjo6aXNRdWlja0xvb2tSZXNvdXJjZSk6IENoYW5nZWQgdG8gY2hlY2sgaWYgbV9xdWlja0xv
b2tIYW5kbGUgaXMgbnVsbC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRD
cmVhdGVRdWlja0xvb2tIYW5kbGUpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9SZXNvdXJj
ZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6c2hvdWxkQ3JlYXRlUXVpY2tMb29rSGFu
ZGxlRm9yUmVzcG9uc2UpOiBDaGFuZ2VkIHRvIGFjY2VzcyBtX3F1aWNrTG9va0hhbmRsZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0
YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVCdWZmZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxv
YWRlcjo6ZGlkRmFpbCk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSYXdS
ZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZTo6ZmluaXNo
TG9hZGluZyk6IFdyYXBwZWQgdGhlIGNhbGwgdG8gUmVzb3VyY2VMb2FkZXI6OmlzUXVpY2tMb29r
UmVzb3VyY2UoKSBpbiBVU0UoUVVJQ0tfTE9PSykuCisgICAgICAgICogbG9hZGVyL2lvcy9RdWlj
a0xvb2suaDogUmVuYW1lZCBtX2NvbnZlcnRlciB0byBtX3ByZXZpZXdMb2FkZXIuCisgICAgICAg
ICogbG9hZGVyL2lvcy9RdWlja0xvb2subW06IFJlbmFtZWQgV2ViUHJldmlld0NvbnZlcnRlciB0
byBXZWJQcmV2aWV3TG9hZGVyLgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJRTFByZXZpZXdD
b252ZXJ0ZXJJZk5lZWRlZCk6IENyZWF0ZWQgYSBQcmV2aWV3Q29udmVydGVyIGluc3RlYWQgb2Yg
YSBRTFByZXZpZXdDb252ZXJ0ZXIuCisgICAgICAgICgtW1dlYlByZXZpZXdMb2FkZXIgaW5pdFdp
dGhSZXNvdXJjZUxvYWRlcjpyZXNvdXJjZVJlc3BvbnNlOnF1aWNrTG9va0hhbmRsZTpdKTogRGl0
dG8uCisgICAgICAgICgtW1dlYlByZXZpZXdMb2FkZXIgYXBwZW5kRGF0YUFycmF5Ol0pOiBBY2Nl
c3NlZCB0aGUgUUxQcmV2aWV3Q29udmVydGVyIGZyb20gdGhlIFByZXZpZXdDb252ZXJ0ZXIuCisg
ICAgICAgICgtW1dlYlByZXZpZXdMb2FkZXIgZmluaXNoZWRBcHBlbmRpbmddKTogRGl0dG8uCisg
ICAgICAgICgtW1dlYlByZXZpZXdMb2FkZXIgZmFpbGVkXSk6IERpdHRvLgorICAgICAgICAoLVtX
ZWJQcmV2aWV3TG9hZGVyIGNvbnZlcnRlcl0pOiBSZW5hbWVkIGZyb20gcGxhdGZvcm1Db252ZXJ0
ZXIuIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBQcmV2aWV3Q29udmVydGVyLgorICAgICAgICAo
LVtXZWJQcmV2aWV3TG9hZGVyIF9zZW5kRGlkUmVjZWl2ZVJlc3BvbnNlSWZOZWNlc3NhcnldKTog
TW92ZWQgX2NvbnZlcnRlciB0byBEb2N1bWVudExvYWRlci4KKyAgICAgICAgKC1bV2ViUHJldmll
d0xvYWRlciBjb25uZWN0aW9uOmRpZEZhaWxXaXRoRXJyb3I6XSk6IENyZWF0ZWQgYSBQcmV2aWV3
Q29udmVydGVyIGluc3RlYWQgb2YgYSBRTFByZXZpZXdDb252ZXJ0ZXIuCisgICAgICAgIChXZWJD
b3JlOjpRdWlja0xvb2tIYW5kbGU6OlF1aWNrTG9va0hhbmRsZSk6IENhbGxlZCBGcmFtZUxvYWRl
ckNsaWVudDo6ZGlkQ3JlYXRlUXVpY2tMb29rSGFuZGxlKCkgaW5zdGVhZCBvZiBnb2luZyB0aHJv
dWdoIEZyYW1lTG9hZGVyLgorICAgICAgICAoV2ViQ29yZTo6UXVpY2tMb29rSGFuZGxlOjpkaWRS
ZWNlaXZlRGF0YSk6IFJlbmFtZWQgbV9jb252ZXJ0ZXIgdG8gbV9wcmV2aWV3TG9hZGVyLgorICAg
ICAgICAoV2ViQ29yZTo6UXVpY2tMb29rSGFuZGxlOjpkaWRSZWNlaXZlQnVmZmVyKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGU6OmRpZEZpbmlzaExvYWRpbmcpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6ZGlkRmFpbCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6UXVpY2tMb29rSGFuZGxlOjpzZXRDbGllbnQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6cHJldmlld0ZpbGVOYW1lKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGU6OnByZXZpZXdVVEkpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6d2lsbFNlbmRSZXF1ZXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUXVpY2tMb29rU29mdExpbmsuaDogUmVt
b3ZlZCBzb2Z0LWxpbmtpbmcgb2YgUUxQcmV2aWV3Q29udmVydGVyIGFuZCBrUUxQcmV2aWV3T3B0
aW9uUGFzc3dvcmRLZXkuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1F1aWNrTG9va1NvZnRMaW5r
Lm1tOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9QcmV2aWV3Q29udmVy
dGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJldmlld0NvbnZlcnRlcjo6cGxhdGZv
cm1Db252ZXJ0ZXIpOiBBZGRlZC4gUmV0dXJucyB0aGUgdW5kZXJseWluZyBRTFByZXZpZXdDb252
ZXJ0ZXIuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9pb3MvUHJldmlld0NvbnZlcnRlci5t
bTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpvcHRpb25zV2l0aFBhc3N3b3JkKTogQ3JlYXRl
cyBhIGRpY3Rpb25hcnkgd2l0aCB0aGUga1FMUHJldmlld09wdGlvblBhc3N3b3JkS2V5IG9wdGlv
biBzZXQgaWYgcGFzc3dvcmQgaXMgbm9uLW51bGwuCisgICAgICAgIChXZWJDb3JlOjpQcmV2aWV3
Q29udmVydGVyOjpQcmV2aWV3Q29udmVydGVyKTogQWRkZWQgY29uc3RydWN0b3JzIGZvciB0aGUg
ZGVsZWdhdGUvcmVzcG9uc2UgYW5kIGRhdGEvdXRpIGNhc2VzLgorICAgICAgICAoV2ViQ29yZTo6
UHJldmlld0NvbnZlcnRlcjo6c2FmZVJlcXVlc3QpOiBXcmFwcyAtW1FMUHJldmlld0NvbnZlcnRl
ciBzYWZlUmVxdWVzdEZvclJlcXVlc3Q6XS4KKyAgICAgICAgKFdlYkNvcmU6OlByZXZpZXdDb252
ZXJ0ZXI6OnByZXZpZXdSZXF1ZXN0KTogV3JhcHMgLVtRTFByZXZpZXdDb252ZXJ0ZXIgcHJldmll
d1JlcXVlc3RdLgorICAgICAgICAoV2ViQ29yZTo6UHJldmlld0NvbnZlcnRlcjo6cHJldmlld1Jl
c3BvbnNlKTogV3JhcHMgLVtRTFByZXZpZXdDb252ZXJ0ZXIgcHJldmlld1Jlc3BvbnNlXS4KKyAg
ICAgICAgKFdlYkNvcmU6OlByZXZpZXdDb252ZXJ0ZXI6OnByZXZpZXdGaWxlTmFtZSk6IFdyYXBz
IC1bUUxQcmV2aWV3Q29udmVydGVyIHByZXZpZXdGaWxlTmFtZV0uCisgICAgICAgIChXZWJDb3Jl
OjpQcmV2aWV3Q29udmVydGVyOjpwcmV2aWV3VVRJKTogV3JhcHMgLVtRTFByZXZpZXdDb252ZXJ0
ZXIgcHJldmlld1VUSV0uCisKIDIwMTctMDEtMjkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtUaHJlYWRlZCBDb21wb3NpdG9yXSBDcmFzaCBv
biBXZWJDb3JlOjpHTENvbnRleHQ6OnZlcnNpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEzZWJiZDFiYWIwMmFiZTdhNGFh
ZWExMmUyMGMxNTc5ZjE2ZTVkZTQuLjNkOTU1N2E5NDVkMTZhNmZiYmU0OWEyZmI5MzMyNjhjNWRh
Y2I0MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTM5NjYsNiArMzk2Niw4IEBACiAJCUExQjVCMjlGMUFBQTg0NkYwMDhCNjA0
MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUI1QjI5RDFBQUE4NDZFMDA4QjYwNDIgLyogTW9ja0Nv
bnRlbnRGaWx0ZXJTZXR0aW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUExQkY2QjgyMUFBOTZDN0QwMEFGNEE4QSAvKiBNb2NrQ29udGVudEZp
bHRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MUJGNkI4MDFBQTk2QzdEMDBBRjRBOEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIuY3BwICovOyB9Owog
CQlBMUJGNkI4MzFBQTk2QzdEMDBBRjRBOEEgLyogTW9ja0NvbnRlbnRGaWx0ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkY2QjgxMUFBOTZDN0Qw
MEFGNEE4QSAvKiBNb2NrQ29udGVudEZpbHRlci5oICovOyB9OworCQlBMUMxNTA3OTFFM0YyQjNF
MDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQzE1MDc3MUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3
Q29udmVydGVyLm1tICovOyB9OworCQlBMUMxNTA3QTFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmll
d0NvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTFDMTUwNzgxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXIuaCAqLzsgfTsK
IAkJQTFDN0ZBQTIxMzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDN0ZBQTExMzNB
NUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwICovOyB9OwogCQlBMURFNzEy
RDE4NjEyQUMxMDA3MzQxOTIgLyogVG91Y2hFdmVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFERTcxMkIxODYxMkFDMTAwNzM0MTkyIC8qIFRv
dWNoRXZlbnRzLmNwcCAqLzsgfTsKIAkJQTFERTcxMzIxODYxMzIyMjAwNzM0MTkyIC8qIFRvdWNo
Q29uc3RydWN0b3JzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExREU3MTMwMTg2MTMyMjIwMDczNDE5MiAvKiBUb3VjaENvbnN0cnVjdG9ycy5jcHAg
Ki87IH07CkBAIC0xMTY3Niw2ICsxMTY3OCw4IEBACiAJCUExQjVCMjlEMUFBQTg0NkUwMDhCNjA0
MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTFCRjZCODAxQUE5NkM3RDAwQUY0QThBIC8qIE1vY2tDb250ZW50RmlsdGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vY2tDb250ZW50Rmls
dGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFCRjZCODExQUE5NkM3RDAw
QUY0QThBIC8qIE1vY2tDb250ZW50RmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1vY2tDb250ZW50RmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUExQzE1MDc3MUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVydGVyLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJldmlld0NvbnZlcnRlci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTFDMTUwNzgxRTNGMkIzRTAwMzJDOThDIC8qIFBy
ZXZpZXdDb252ZXJ0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJldmll
d0NvbnZlcnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUM3RkFBMTEzM0E1
RDM1MDBENjczMkQgLyogSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTFERTcxMkIxODYxMkFDMTAwNzM0MTkyIC8qIFRvdWNoRXZlbnRz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRvdWNoRXZlbnRzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFERTcxMzAxODYxMzIyMjAwNzM0MTky
IC8qIFRvdWNoQ29uc3RydWN0b3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFRvdWNoQ29uc3RydWN0b3JzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE2OTM2LDYgKzE2OTQwLDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTQ0M0YwNDI2MEU3
NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3RpZmllcklPUy5tbSAqLywKIAkJCQlBMTBE
QkY0NjE4RjkyMzE3MDAwRDcwQzYgLyogUXVpY2tMb29rSGFuZGxlQ2xpZW50LmggKi8sCisJCQkJ
QTFDMTUwNzgxRTNGMkIzRTAwMzJDOThDIC8qIFByZXZpZXdDb252ZXJ0ZXIuaCAqLywKKwkJCQlB
MUMxNTA3NzFFM0YyQjNFMDAzMkM5OEMgLyogUHJldmlld0NvbnZlcnRlci5tbSAqLywKIAkJCQk3
RTQyOENFNDEzRTM0MDdGMDAzQjY2MUMgLyogUmVzb3VyY2VIYW5kbGVJT1MubW0gKi8sCiAJCQkJ
N0U3REUyMDExOTVDRUZDRDAwMzUzNjNCIC8qIFJlc291cmNlUmVxdWVzdElPUy5tbSAqLywKIAkJ
CQk0NEEyMERCODBGODQxNjZDMDBCM0UxRkUgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLmggKi8s
CkBAIC0yODU1NCw2ICsyODU2MCw3IEBACiAJCQkJOTNGMTk5RUMwODI0NUU1OTAwMUU5QUJDIC8q
IFhTTFN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRjFFODMwMEMzQzJCQjkwMDZE
QjM5MSAvKiBYU0xURXh0ZW5zaW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5RUQwODI0
NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUExQzE1
MDdBMUUzRjJCM0UwMDMyQzk4QyAvKiBQcmV2aWV3Q29udmVydGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzgwIC8qIFhTU0F1ZGl0b3JE
ZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTM0OCw2ICsyOTM1NSw3IEBACiAJCQkJMEY2
QTEyQkQxQTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQ1RkVBNUNGMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4QzIyOEEyMTFENTcyMkUwMEQ1QTdEMyAvKiBEZWNvZGVkRGF0YURvY3Vt
ZW50UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExQzE1MDc5MUUzRjJCM0UwMDMyQzk4
QyAvKiBQcmV2aWV3Q29udmVydGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2MkE0NTAxMDEx
NDVBRTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxQTNENThFMTAxQzE1MkQwMDMxNkQwNyAvKiBEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQwNkRGQTUxMzRBNERFRjAwNkY1RDdEIC8qIERl
ZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDEwNDZmMjA1ODI0MWI1Mzk2NGQ1MmNm
M2ZmMjY5MmYyNTEyZTEzNDguLmNlYjY4ODNlMjg5MzcxZmNiN2Y0NWMxZjhkNDQ0YjU2MDlkNjU1
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtODYsNiAr
ODYsNyBAQAogI2VuZGlmCiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKKyNpbmNsdWRlICJQcmV2aWV3
Q29udmVydGVyLmgiCiAjaW5jbHVkZSAiUXVpY2tMb29rLmgiCiAjZW5kaWYKIApAQCAtMTcyMiw5
ICsxNzIzLDE0IEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dl
ZCgpIGNvbnN0CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKIAotdm9pZCBEb2N1bWVudExvYWRlcjo6
c2V0UXVpY2tMb29rSGFuZGxlKHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IHF1aWNr
TG9va0hhbmRsZSkKK3ZvaWQgRG9jdW1lbnRMb2FkZXI6OnNldFByZXZpZXdDb252ZXJ0ZXIoc3Rk
Ojp1bmlxdWVfcHRyPFByZXZpZXdDb252ZXJ0ZXI+JiYgcHJldmlld0NvbnZlcnRlcikKIHsKLSAg
ICBtX3F1aWNrTG9va0hhbmRsZSA9IFdURk1vdmUocXVpY2tMb29rSGFuZGxlKTsKKyAgICBtX3By
ZXZpZXdDb252ZXJ0ZXIgPSBXVEZNb3ZlKHByZXZpZXdDb252ZXJ0ZXIpOworfQorCitQcmV2aWV3
Q29udmVydGVyKiBEb2N1bWVudExvYWRlcjo6cHJldmlld0NvbnZlcnRlcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcHJldmlld0NvbnZlcnRlci5nZXQoKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4IDJkNTM3YjNkNDM5MDBlZDdjMDczZjg0
NDQxYTcwNWY0NzYxYTMwOWIuLjY3ZTczMmIyODQzYTdmYzg1NjQxZjMyYzA5YjA1YWExZTBmN2Y4
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCkBAIC03MCw3ICs3MCw3
IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJhbWVMb2FkZXI7CiBjbGFzcyBJY29uTG9hZGVyOwog
Y2xhc3MgUGFnZTsKLWNsYXNzIFF1aWNrTG9va0hhbmRsZTsKK2NsYXNzIFByZXZpZXdDb252ZXJ0
ZXI7CiBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFN1
YnJlc291cmNlTG9hZGVyOwpAQCAtMjcxLDggKzI3MSw4IEBAIHB1YmxpYzoKICAgICBVUkwgZG9j
dW1lbnRVUkwoKSBjb25zdDsKIAogI2lmIFVTRShRVUlDS19MT09LKQotICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0UXVpY2tMb29rSGFuZGxlKHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5k
bGU+KTsKLSAgICBRdWlja0xvb2tIYW5kbGUqIHF1aWNrTG9va0hhbmRsZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcXVpY2tMb29rSGFuZGxlLmdldCgpOyB9CisgICAgdm9pZCBzZXRQcmV2aWV3Q29udmVy
dGVyKHN0ZDo6dW5pcXVlX3B0cjxQcmV2aWV3Q29udmVydGVyPiYmKTsKKyAgICBQcmV2aWV3Q29u
dmVydGVyKiBwcmV2aWV3Q29udmVydGVyKCkgY29uc3Q7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShD
T05URU5UX0VYVEVOU0lPTlMpCkBAIC00NjMsNyArNDYzLDcgQEAgcHJpdmF0ZToKICNlbmRpZgog
CiAjaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRs
ZT4gbV9xdWlja0xvb2tIYW5kbGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFByZXZpZXdDb252ZXJ0
ZXI+IG1fcHJldmlld0NvbnZlcnRlcjsKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhU
RU5TSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGZm
NzYxOWQzOTVlOWFkODJhYzNjZjMyNDUxM2NhNWRkNjEzODliYzcuLjBmYmIwYzM4ZTcyYzIwYWJh
ZTE5Mjc0YjVjMmU0YmI3ZmU3OTlmYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2VuZGlmCiAKICNpZiBVU0UoUVVJQ0tfTE9P
SykKKyNpbmNsdWRlICJQcmV2aWV3Q29udmVydGVyLmgiCiAjaW5jbHVkZSAiUXVpY2tMb29rLmgi
CiAjZW5kaWYKIApAQCAtMzc2LDggKzM3Nyw4IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxT
ZW5kUmVxdWVzdEludGVybmFsKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzCiAg
ICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KG1fZnJhbWUu
Z2V0KCksIG1faWRlbnRpZmllciwgbV9mcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSwg
cmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKLSAgICBp
ZiAoYXV0byBxdWlja0xvb2tIYW5kbGUgPSBtX2RvY3VtZW50TG9hZGVyLT5xdWlja0xvb2tIYW5k
bGUoKSkKLSAgICAgICAgcXVpY2tMb29rSGFuZGxlLT53aWxsU2VuZFJlcXVlc3QocmVxdWVzdCk7
CisgICAgaWYgKGF1dG8gcHJldmlld0NvbnZlcnRlciA9IG1fZG9jdW1lbnRMb2FkZXItPnByZXZp
ZXdDb252ZXJ0ZXIoKSkKKyAgICAgICAgcmVxdWVzdCA9IHByZXZpZXdDb252ZXJ0ZXItPnNhZmVS
ZXF1ZXN0KHJlcXVlc3QpOwogI2VuZGlmCiAKICAgICBib29sIGlzUmVkaXJlY3QgPSAhcmVkaXJl
Y3RSZXNwb25zZS5pc051bGwoKTsKQEAgLTc0MSwxMCArNzQyLDkgQEAgdm9pZCBSZXNvdXJjZUxv
YWRlcjo6dW5zY2hlZHVsZShTY2hlZHVsZVBhaXImIHBhaXIpCiAjZW5kaWYKIAogI2lmIFVTRShR
VUlDS19MT09LKQotdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkQ3JlYXRlUXVpY2tMb29rSGFuZGxl
KFF1aWNrTG9va0hhbmRsZSYgaGFuZGxlKQorYm9vbCBSZXNvdXJjZUxvYWRlcjo6aXNRdWlja0xv
b2tSZXNvdXJjZSgpIGNvbnN0CiB7Ci0gICAgbV9pc1F1aWNrTG9va1Jlc291cmNlID0gdHJ1ZTsK
LSAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5kaWRDcmVhdGVRdWlja0xvb2tIYW5kbGUoaGFu
ZGxlKTsKKyAgICByZXR1cm4gISFtX3F1aWNrTG9va0hhbmRsZTsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IGRkOGFjNjI4ZTQ3Mjc4YTlmN2Mz
ZWEzYmQ0ZjM4YmM3N2FlMjNlZmMuLjViYjFlZGEwYTAwNmJlMjUyYjYwZTI1Y2Q0MzI5MjA2MGI2
YzBlNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC0xMTcsOSAr
MTE3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZENhbmNlbGxhdGlvbihj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogCiAjaWYgVVNFKFFVSUNLX0xPT0spCi0g
ICAgdm9pZCBkaWRDcmVhdGVRdWlja0xvb2tIYW5kbGUoUXVpY2tMb29rSGFuZGxlJik7CisgICAg
Ym9vbCBpc1F1aWNrTG9va1Jlc291cmNlKCkgY29uc3Q7CiAjZW5kaWYKLSAgICBib29sIGlzUXVp
Y2tMb29rUmVzb3VyY2UoKSB7IHJldHVybiBtX2lzUXVpY2tMb29rUmVzb3VyY2U7IH0KIAogICAg
IGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0LnVybCgpOyB9CiAgICAg
UmVzb3VyY2VIYW5kbGUqIGhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlLmdldCgpOyB9
CkBAIC0xNzQsNiArMTczLDkgQEAgcHJvdGVjdGVkOgogICAgIFJlZlB0cjxEb2N1bWVudExvYWRl
cj4gbV9kb2N1bWVudExvYWRlcjsKICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAg
ICAgTG9hZFRpbWluZyBtX2xvYWRUaW1pbmc7CisjaWYgVVNFKFFVSUNLX0xPT0spCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gbV9xdWlja0xvb2tIYW5kbGU7CisjZW5kaWYK
IAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgd2lsbENhbmNlbChjb25zdCBSZXNvdXJjZUVy
cm9yJikgPSAwOwpAQCAtMjMwLDcgKzIzMiw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RlZmVy
c0xvYWRpbmc7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fZGVmZXJyZWRSZXF1ZXN0OwogICAgIFJl
c291cmNlTG9hZGVyT3B0aW9ucyBtX29wdGlvbnM7Ci0gICAgYm9vbCBtX2lzUXVpY2tMb29rUmVz
b3VyY2UgeyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKIHByb3Rl
Y3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IGJkODcyNjM0ZWFhNWI4MTcwZmY2YzMwNjQ3YTU5MzZhOGQ1MDA3ZjUuLjE4N2JkNzgxNzBkMTNh
Y2M2ZTQyODZlMTc3MDAyNWI4MzRjZWY3Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1
YnJlc291cmNlTG9hZGVyLmNwcApAQCAtMjYyLDcgKzI2Miw3IEBAIGJvb2wgU3VicmVzb3VyY2VM
b2FkZXI6OnNob3VsZENyZWF0ZVF1aWNrTG9va0hhbmRsZUZvclJlc3BvbnNlKGNvbnN0IFJlc291
cmNlUmVzCiAgICAgaWYgKG1fcmVzb3VyY2UtPnR5cGUoKSAhPSBDYWNoZWRSZXNvdXJjZTo6TWFp
blJlc291cmNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAobV9kb2N1bWVudExv
YWRlci0+cXVpY2tMb29rSGFuZGxlKCkpCisgICAgaWYgKG1fcXVpY2tMb29rSGFuZGxlKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gUXVpY2tMb29rSGFuZGxlOjpzaG91bGRD
cmVhdGVGb3JNSU1FVHlwZShyZXNwb25zZS5taW1lVHlwZSgpKTsKQEAgLTI3Nyw3ICsyNzcsNyBA
QCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICBpZiAoc2hv
dWxkQ3JlYXRlUXVpY2tMb29rSGFuZGxlRm9yUmVzcG9uc2UocmVzcG9uc2UpKSB7Ci0gICAgICAg
IG1fZG9jdW1lbnRMb2FkZXItPnNldFF1aWNrTG9va0hhbmRsZShRdWlja0xvb2tIYW5kbGU6OmNy
ZWF0ZSgqdGhpcywgcmVzcG9uc2UpKTsKKyAgICAgICAgbV9xdWlja0xvb2tIYW5kbGUgPSBRdWlj
a0xvb2tIYW5kbGU6OmNyZWF0ZSgqdGhpcywgcmVzcG9uc2UpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogI2VuZGlmCkBAIC0zNTYsNyArMzU2LDcgQEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogdm9p
ZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5z
aWduZWQgbGVuZ3RoLCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlw
ZSBkYXRhUGF5bG9hZFR5cGUpCiB7CiAjaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgaWYgKGF1dG8g
cXVpY2tMb29rSGFuZGxlID0gbV9kb2N1bWVudExvYWRlci0+cXVpY2tMb29rSGFuZGxlKCkpIHsK
KyAgICBpZiAoYXV0byBxdWlja0xvb2tIYW5kbGUgPSBtX3F1aWNrTG9va0hhbmRsZS5nZXQoKSkg
ewogICAgICAgICBpZiAocXVpY2tMb29rSGFuZGxlLT5kaWRSZWNlaXZlRGF0YShkYXRhLCBsZW5n
dGgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTM2OCw3ICszNjgsNyBAQCB2b2lk
IFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1bnNp
Z25lZCBsZW5ndGgsIGxvbmcgbAogdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUJ1
ZmZlcihSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlciwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVu
Z3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRUeXBlKQogewogI2lmIFVTRShRVUlDS19M
T09LKQotICAgIGlmIChhdXRvIHF1aWNrTG9va0hhbmRsZSA9IG1fZG9jdW1lbnRMb2FkZXItPnF1
aWNrTG9va0hhbmRsZSgpKSB7CisgICAgaWYgKGF1dG8gcXVpY2tMb29rSGFuZGxlID0gbV9xdWlj
a0xvb2tIYW5kbGUuZ2V0KCkpIHsKICAgICAgICAgaWYgKHF1aWNrTG9va0hhbmRsZS0+ZGlkUmVj
ZWl2ZUJ1ZmZlcihidWZmZXIuZ2V0KCkpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTUxMyw3ICs1MTMsNyBAQCBib29sIFN1YnJlc291cmNlTG9hZGVyOjpjaGVja1JlZGlyZWN0aW9u
Q3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sKGNvbnN0IFJlc291cmNlUgogdm9pZCBTdWJyZXNvdXJj
ZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSkKIHsKICNpZiBVU0Uo
UVVJQ0tfTE9PSykKLSAgICBpZiAoYXV0byBxdWlja0xvb2tIYW5kbGUgPSBtX2RvY3VtZW50TG9h
ZGVyLT5xdWlja0xvb2tIYW5kbGUoKSkgeworICAgIGlmIChhdXRvIHF1aWNrTG9va0hhbmRsZSA9
IG1fcXVpY2tMb29rSGFuZGxlLmdldCgpKSB7CiAgICAgICAgIGlmIChxdWlja0xvb2tIYW5kbGUt
PmRpZEZpbmlzaExvYWRpbmcoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01NjQs
NyArNTY0LDcgQEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhkb3Vi
bGUgZmluaXNoVGltZSkKIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwoY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IpCiB7CiAjaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgaWYgKGF1dG8g
cXVpY2tMb29rSGFuZGxlID0gbV9kb2N1bWVudExvYWRlci0+cXVpY2tMb29rSGFuZGxlKCkpCisg
ICAgaWYgKGF1dG8gcXVpY2tMb29rSGFuZGxlID0gbV9xdWlja0xvb2tIYW5kbGUuZ2V0KCkpCiAg
ICAgICAgIHF1aWNrTG9va0hhbmRsZS0+ZGlkRmFpbCgpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCmluZGV4IDdmY2Jl
ODMzODlhZTA4OWMxZjkzZWIyMjM5NTkxYWE5NGQ4MjgxN2MuLmMzY2QxNDg2MGQ5OWMwMDI3OTcy
N2ViYjhmMTBkOTcwYWU0YzAwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtOTcsNyArOTcsOSBAQCB2b2lkIENhY2hlZFJh
d1Jlc291cmNlOjpmaW5pc2hMb2FkaW5nKFNoYXJlZEJ1ZmZlciogZGF0YSkKICAgICAgICAgbm90
aWZ5Q2xpZW50c0RhdGFXYXNSZWNlaXZlZChpbmNyZW1lbnRhbERhdGEsIGluY3JlbWVudGFsRGF0
YUxlbmd0aCk7CiAgICAgfQogCisjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgbV9hbGxvd0VuY29k
ZWREYXRhUmVwbGFjZW1lbnQgPSAhbV9sb2FkZXItPmlzUXVpY2tMb29rUmVzb3VyY2UoKTsKKyNl
bmRpZgogCiAgICAgQ2FjaGVkUmVzb3VyY2U6OmZpbmlzaExvYWRpbmcoZGF0YSk7CiAgICAgaWYg
KGRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gQnVmZmVyRGF0YSAmJiB0aGlzLT5kYXRhQnVmZmVyaW5n
UG9saWN5KCkgPT0gRG9Ob3RCdWZmZXJEYXRhKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvaW9zL1F1aWNrTG9vay5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9RdWlj
a0xvb2suaAppbmRleCBjZDc2YWM5OTEwMjY5MzdiZTBlOWUxMGRiYThjZGRkZGM1M2U0NmYwLi5m
ZDI5ZTRmNzc0OTM4MWY5YzAzMTA4ODMyNWM3Mjc0YTY2Yzc3MTBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvaW9zL1F1aWNrTG9vay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9pb3MvUXVpY2tMb29rLmgKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2lmIFVTRShRVUlDS19M
T09LKQogCi0jaW5jbHVkZSA8b2JqYy9vYmpjLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTM2LDcgKzM1LDcgQEAgT0JKQ19DTEFT
UyBOU1NldDsKIE9CSkNfQ0xBU1MgTlNTdHJpbmc7CiBPQkpDX0NMQVNTIE5TVVJMOwogT0JKQ19D
TEFTUyBOU1VSTFJlcXVlc3Q7Ci1PQkpDX0NMQVNTIFdlYlByZXZpZXdDb252ZXJ0ZXI7CitPQkpD
X0NMQVNTIFdlYlByZXZpZXdMb2FkZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTks
NyArNTgsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tI
YW5kbGU+IGNyZWF0ZShSZXNvdXJjZUxvYWRlciYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
ICAgICB+UXVpY2tMb29rSGFuZGxlKCk7CiAKLSAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QmKTsKICAgICBib29sIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEs
IHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgYm9vbCBkaWRSZWNlaXZlQnVmZmVyKGNvbnN0IFNoYXJl
ZEJ1ZmZlciYpOwogICAgIGJvb2wgZGlkRmluaXNoTG9hZGluZygpOwpAQCAtNzUsNyArNzMsNyBA
QCBwcml2YXRlOgogICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tMb29rSGFuZGxlPiBz
dGQ6Om1ha2VfdW5pcXVlPFF1aWNrTG9va0hhbmRsZT4oUmVzb3VyY2VMb2FkZXImLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgUXVpY2tMb29rSGFuZGxlKFJlc291cmNlTG9hZGVyJiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgUmV0YWluUHRyPFdlYlByZXZpZXdDb252
ZXJ0ZXI+IG1fY29udmVydGVyOworICAgIFJldGFpblB0cjxXZWJQcmV2aWV3TG9hZGVyPiBtX3By
ZXZpZXdMb2FkZXI7CiAgICAgYm9vbCBtX2ZpbmlzaGVkTG9hZGluZ0RhdGFJbnRvQ29udmVydGVy
IHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pb3Mv
UXVpY2tMb29rLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9RdWlja0xvb2subW0KaW5k
ZXggZjg2ZTQ1MWM3ZmE0MjA0YTk2ZjE1MzQ3OTc4OTQ4Y2E2NDVhZjJiNS4uNWNjYmI3NThhNDkx
NWFjMGY0NTRiZTcxODZmNjFkZTBmYmI4MmFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2lvcy9RdWlja0xvb2subW0KKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9R
dWlja0xvb2subW0KQEAgLTI4LDkgKzI4LDEzIEBACiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKIAor
I2ltcG9ydCAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbXBvcnQgIkZpbGVTeXN0ZW1JT1MuaCIKKyNp
bXBvcnQgIkZyYW1lTG9hZGVyLmgiCisjaW1wb3J0ICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2lt
cG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTlNGaWxlTWFuYWdlclNQSS5oIgorI2ltcG9ydCAi
UHJldmlld0NvbnZlcnRlci5oIgogI2ltcG9ydCAiUXVpY2tMb29rSGFuZGxlQ2xpZW50LmgiCiAj
aW1wb3J0ICJSZXNvdXJjZUVycm9yLmgiCiAjaW1wb3J0ICJSZXNvdXJjZUxvYWRlci5oIgpAQCAt
OTEsMTQgKzk1LDE0IEBAIFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+IFdlYkNvcmU6OnJlZ2lzdGVy
UUxQcmV2aWV3Q29udmVydGVySWZOZWVkZWQoTlNVUkwgKnVybCwKICAgICBpZiAoW1FMUHJldmll
d0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCgpIGNvbnRhaW5zT2JqZWN0OnVwZGF0ZWRNSU1FVHlw
ZS5nZXQoKV0pIHsKICAgICAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiB1dGkgPSBhZG9wdE5TKFFM
VHlwZUNvcHlVVElGb3JVUkxBbmRNaW1lVHlwZSh1cmwsIHVwZGF0ZWRNSU1FVHlwZS5nZXQoKSkp
OwogCi0gICAgICAgIFJldGFpblB0cjxRTFByZXZpZXdDb252ZXJ0ZXI+IGNvbnZlcnRlciA9IGFk
b3B0TlMoW2FsbG9jUUxQcmV2aWV3Q29udmVydGVySW5zdGFuY2UoKSBpbml0V2l0aERhdGE6ZGF0
YSBuYW1lOm5pbCB1dGk6dXRpLmdldCgpIG9wdGlvbnM6bmlsXSk7Ci0gICAgICAgIE5TVVJMUmVx
dWVzdCAqcmVxdWVzdCA9IFtjb252ZXJ0ZXIgcHJldmlld1JlcXVlc3RdOworICAgICAgICBhdXRv
IGNvbnZlcnRlciA9IHN0ZDo6bWFrZV91bmlxdWU8UHJldmlld0NvbnZlcnRlcj4oZGF0YSwgdXRp
LmdldCgpKTsKKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHByZXZpZXdSZXF1ZXN0ID0gY29udmVy
dGVyLT5wcmV2aWV3UmVxdWVzdCgpOwogCiAgICAgICAgIC8vIFdlIHVzZSBbcmVxdWVzdCBVUkxd
IGhlcmUgaW5zdGVhZCBvZiB1cmwgc2luY2UgaXQgd2lsbCBiZQogICAgICAgICAvLyB0aGUgVVJM
IHRoYXQgdGhlIFdlYkRhdGFTb3VyY2Ugd2lsbCBzZWUgZHVyaW5nIC1kZWFsbG9jLgotICAgICAg
ICBhZGRRTFByZXZpZXdDb252ZXJ0ZXJXaXRoRmlsZUZvclVSTChbcmVxdWVzdCBVUkxdLCBjb252
ZXJ0ZXIuZ2V0KCksIG5pbCk7CisgICAgICAgIGFkZFFMUHJldmlld0NvbnZlcnRlcldpdGhGaWxl
Rm9yVVJMKHByZXZpZXdSZXF1ZXN0LnVybCgpLCBjb252ZXJ0ZXItPnBsYXRmb3JtQ29udmVydGVy
KCksIG5pbCk7CiAKLSAgICAgICAgcmV0dXJuIHJlcXVlc3Q7CisgICAgICAgIHJldHVybiBwcmV2
aWV3UmVxdWVzdC5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSk7CiAgICAgfQogCiAg
ICAgcmV0dXJuIG5pbDsKQEAgLTEzNywxMiArMTQxLDEyIEBAIHN0YXRpYyBRdWlja0xvb2tIYW5k
bGVDbGllbnQmIHRlc3RpbmdPckVtcHR5Q2xpZW50KCkKICAgICByZXR1cm4gZW1wdHlDbGllbnQo
KTsKIH0KIAotQGludGVyZmFjZSBXZWJQcmV2aWV3Q29udmVydGVyIDogTlNPYmplY3QgeworQGlu
dGVyZmFjZSBXZWJQcmV2aWV3TG9hZGVyIDogTlNPYmplY3QgewogICAgIFJlZlB0cjxSZXNvdXJj
ZUxvYWRlcj4gX3Jlc291cmNlTG9hZGVyOworICAgIFJlc291cmNlUmVzcG9uc2UgX3Jlc3BvbnNl
OwogICAgIFF1aWNrTG9va0hhbmRsZSogX2hhbmRsZTsKICAgICBSZWZQdHI8UXVpY2tMb29rSGFu
ZGxlQ2xpZW50PiBfY2xpZW50OwotICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiBfb3JpZ2lu
YWxSZXNwb25zZTsKLSAgICBSZXRhaW5QdHI8UUxQcmV2aWV3Q29udmVydGVyPiBfcGxhdGZvcm1D
b252ZXJ0ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFByZXZpZXdDb252ZXJ0ZXI+IF9jb252ZXJ0
ZXI7CiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBfYnVmZmVyZWREYXRhQXJyYXk7CiAg
ICAgQk9PTCBfaGFzU2VudERpZFJlY2VpdmVSZXNwb25zZTsKIH0KQEAgLTE1MywxMSArMTU3LDEx
IEBAIC0gKHZvaWQpYXBwZW5kRGF0YUFycmF5OihOU0FycmF5PE5TRGF0YSAqPiAqKWRhdGFBcnJh
eTsKIC0gKHZvaWQpZmluaXNoZWRBcHBlbmRpbmc7CiAtICh2b2lkKWZhaWxlZDsKIAotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBRTFByZXZpZXdDb252ZXJ0ZXIgKnBsYXRmb3JtQ29u
dmVydGVyOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBQcmV2aWV3Q29udmVydGVy
KiBjb252ZXJ0ZXI7CiAKIEBlbmQKIAotQGltcGxlbWVudGF0aW9uIFdlYlByZXZpZXdDb252ZXJ0
ZXIKK0BpbXBsZW1lbnRhdGlvbiBXZWJQcmV2aWV3TG9hZGVyCiAKIC0gKGluc3RhbmNldHlwZSlp
bml0V2l0aFJlc291cmNlTG9hZGVyOihSZXNvdXJjZUxvYWRlciYpcmVzb3VyY2VMb2FkZXIgcmVz
b3VyY2VSZXNwb25zZTooY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzb3VyY2VSZXNwb25zZSBx
dWlja0xvb2tIYW5kbGU6KFF1aWNrTG9va0hhbmRsZSYpcXVpY2tMb29rSGFuZGxlCiB7CkBAIC0x
NjYsMTMgKzE3MCwxMyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhSZXNvdXJjZUxvYWRlcjoo
UmVzb3VyY2VMb2FkZXImKXJlc291cmNlTG9hZGVyIHJlc291cmNlUgogICAgICAgICByZXR1cm4g
bmlsOwogCiAgICAgX3Jlc291cmNlTG9hZGVyID0gJnJlc291cmNlTG9hZGVyOworICAgIF9yZXNw
b25zZSA9IHJlc291cmNlUmVzcG9uc2U7CiAgICAgX2hhbmRsZSA9ICZxdWlja0xvb2tIYW5kbGU7
CiAgICAgX2NsaWVudCA9ICZ0ZXN0aW5nT3JFbXB0eUNsaWVudCgpOwotICAgIF9vcmlnaW5hbFJl
c3BvbnNlID0gcmVzb3VyY2VSZXNwb25zZS5uc1VSTFJlc3BvbnNlKCk7Ci0gICAgX3BsYXRmb3Jt
Q29udmVydGVyID0gYWRvcHROUyhbYWxsb2NRTFByZXZpZXdDb252ZXJ0ZXJJbnN0YW5jZSgpIGlu
aXRXaXRoQ29ubmVjdGlvbjpuaWwgZGVsZWdhdGU6c2VsZiByZXNwb25zZTpfb3JpZ2luYWxSZXNw
b25zZS5nZXQoKSBvcHRpb25zOm5pbF0pOworICAgIF9jb252ZXJ0ZXIgPSBzdGQ6Om1ha2VfdW5p
cXVlPFByZXZpZXdDb252ZXJ0ZXI+KHNlbGYsIF9yZXNwb25zZSk7CiAgICAgX2J1ZmZlcmVkRGF0
YUFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CiAKLSAgICBM
T0coTmV0d29yaywgIldlYlByZXZpZXdDb252ZXJ0ZXIgY3JlYXRlZCB3aXRoIHByZXZpZXcgZmls
ZSBuYW1lIFwiJXNcIi4iLCBbX3BsYXRmb3JtQ29udmVydGVyIHByZXZpZXdGaWxlTmFtZV0pOwor
ICAgIExPRyhOZXR3b3JrLCAiV2ViUHJldmlld0NvbnZlcnRlciBjcmVhdGVkIHdpdGggcHJldmll
dyBmaWxlIG5hbWUgXCIlc1wiLiIsIF9jb252ZXJ0ZXItPnByZXZpZXdGaWxlTmFtZSgpLnV0Zjgo
KS5kYXRhKCkpOwogICAgIHJldHVybiBzZWxmOwogfQogCkBAIC0xODUsNyArMTg5LDcgQEAgLSAo
dm9pZClzZXRDbGllbnQ6KFJlZjxRdWlja0xvb2tIYW5kbGVDbGllbnQ+JiYpY2xpZW50CiAtICh2
b2lkKWFwcGVuZERhdGFBcnJheTooTlNBcnJheTxOU0RhdGEgKj4gKilkYXRhQXJyYXkKIHsKICAg
ICBMT0coTmV0d29yaywgIldlYlByZXZpZXdDb252ZXJ0ZXIgYXBwZW5kaW5nIGRhdGEgYXJyYXkg
d2l0aCBjb3VudCAlbGQuIiwgZGF0YUFycmF5LmNvdW50KTsKLSAgICBbX3BsYXRmb3JtQ29udmVy
dGVyIGFwcGVuZERhdGFBcnJheTpkYXRhQXJyYXldOworICAgIFtfY29udmVydGVyLT5wbGF0Zm9y
bUNvbnZlcnRlcigpIGFwcGVuZERhdGFBcnJheTpkYXRhQXJyYXldOwogICAgIFtfYnVmZmVyZWRE
YXRhQXJyYXkgYWRkT2JqZWN0c0Zyb21BcnJheTpkYXRhQXJyYXldOwogICAgIF9jbGllbnQtPmRp
ZFJlY2VpdmVEYXRhQXJyYXkoKENGQXJyYXlSZWYpZGF0YUFycmF5KTsKIH0KQEAgLTE5MywyMCAr
MTk3LDIwIEBAIC0gKHZvaWQpYXBwZW5kRGF0YUFycmF5OihOU0FycmF5PE5TRGF0YSAqPiAqKWRh
dGFBcnJheQogLSAodm9pZClmaW5pc2hlZEFwcGVuZGluZwogewogICAgIExPRyhOZXR3b3JrLCAi
V2ViUHJldmlld0NvbnZlcnRlciBmaW5pc2hlZCBhcHBlbmRpbmcgZGF0YS4iKTsKLSAgICBbX3Bs
YXRmb3JtQ29udmVydGVyIGZpbmlzaGVkQXBwZW5kaW5nRGF0YV07CisgICAgW19jb252ZXJ0ZXIt
PnBsYXRmb3JtQ29udmVydGVyKCkgZmluaXNoZWRBcHBlbmRpbmdEYXRhXTsKICAgICBfY2xpZW50
LT5kaWRGaW5pc2hMb2FkaW5nKCk7CiB9CiAKIC0gKHZvaWQpZmFpbGVkCiB7CiAgICAgTE9HKE5l
dHdvcmssICJXZWJQcmV2aWV3Q29udmVydGVyIGZhaWxlZC4iKTsKLSAgICBbX3BsYXRmb3JtQ29u
dmVydGVyIGZpbmlzaENvbnZlcnRpbmddOworICAgIFtfY29udmVydGVyLT5wbGF0Zm9ybUNvbnZl
cnRlcigpIGZpbmlzaENvbnZlcnRpbmddOwogICAgIF9jbGllbnQtPmRpZEZhaWwoKTsKIH0KIAot
LSAoUUxQcmV2aWV3Q29udmVydGVyICopcGxhdGZvcm1Db252ZXJ0ZXIKKy0gKFByZXZpZXdDb252
ZXJ0ZXIqKWNvbnZlcnRlcgogewotICAgIHJldHVybiBfcGxhdGZvcm1Db252ZXJ0ZXIuZ2V0KCk7
CisgICAgcmV0dXJuIF9jb252ZXJ0ZXIuZ2V0KCk7CiB9CiAKIC0gKHZvaWQpX3NlbmREaWRSZWNl
aXZlUmVzcG9uc2VJZk5lY2Vzc2FyeQpAQCAtMjE2LDEwICsyMjAsMTIgQEAgLSAodm9pZClfc2Vu
ZERpZFJlY2VpdmVSZXNwb25zZUlmTmVjZXNzYXJ5CiAKICAgICBbX2J1ZmZlcmVkRGF0YUFycmF5
IHJlbW92ZUFsbE9iamVjdHNdOwogCi0gICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSB7IFtf
cGxhdGZvcm1Db252ZXJ0ZXIgcHJldmlld1Jlc3BvbnNlXSB9OworICAgIFJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2UgeyBfY29udmVydGVyLT5wcmV2aWV3UmVzcG9uc2UoKSB9OwogICAgIHJlc3Bv
bnNlLnNldElzUXVpY2tMb29rKHRydWUpOwogICAgIEFTU0VSVChyZXNwb25zZS5taW1lVHlwZSgp
Lmxlbmd0aCgpKTsKIAorICAgIF9yZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+c2V0
UHJldmlld0NvbnZlcnRlcihXVEZNb3ZlKF9jb252ZXJ0ZXIpKTsKKwogICAgIF9oYXNTZW50RGlk
UmVjZWl2ZVJlc3BvbnNlID0gWUVTOwogICAgIF9yZXNvdXJjZUxvYWRlci0+ZGlkUmVjZWl2ZVJl
c3BvbnNlKHJlc3BvbnNlKTsKIH0KQEAgLTI2MywxMSArMjY5LDExIEBAIC0gKHZvaWQpY29ubmVj
dGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRGYWlsV2l0aEVycm9yOihOU0Vy
cm9yICopZXJyCiAgICAgfQogCiAgICAgX2NsaWVudC0+ZGlkUmVxdWVzdFBhc3N3b3JkKFtyZXRh
aW5lZFNlbGYgPSByZXRhaW5QdHIoc2VsZildIChjb25zdCBTdHJpbmcmIHBhc3N3b3JkKSB7Ci0g
ICAgICAgIE5TRGljdGlvbmFyeSAqcGFzc3dvcmRPcHRpb24gPSBAeyAoTlNTdHJpbmcgKilrUUxQ
cmV2aWV3T3B0aW9uUGFzc3dvcmRLZXkgOiBwYXNzd29yZCB9OwotICAgICAgICBhdXRvIGNvbnZl
cnRlcldpdGhQYXNzd29yZCA9IGFkb3B0TlMoW2FsbG9jUUxQcmV2aWV3Q29udmVydGVySW5zdGFu
Y2UoKSBpbml0V2l0aENvbm5lY3Rpb246bmlsIGRlbGVnYXRlOnJldGFpbmVkU2VsZi5nZXQoKSBy
ZXNwb25zZTpyZXRhaW5lZFNlbGYtPl9vcmlnaW5hbFJlc3BvbnNlLmdldCgpIG9wdGlvbnM6cGFz
c3dvcmRPcHRpb25dKTsKLSAgICAgICAgW2NvbnZlcnRlcldpdGhQYXNzd29yZCBhcHBlbmREYXRh
QXJyYXk6cmV0YWluZWRTZWxmLT5fYnVmZmVyZWREYXRhQXJyYXkuZ2V0KCldOwotICAgICAgICBb
Y29udmVydGVyV2l0aFBhc3N3b3JkIGZpbmlzaGVkQXBwZW5kaW5nRGF0YV07Ci0gICAgICAgIHJl
dGFpbmVkU2VsZi0+X3BsYXRmb3JtQ29udmVydGVyID0gV1RGTW92ZShjb252ZXJ0ZXJXaXRoUGFz
c3dvcmQpOworICAgICAgICBhdXRvIGNvbnZlcnRlciA9IHN0ZDo6bWFrZV91bmlxdWU8UHJldmll
d0NvbnZlcnRlcj4ocmV0YWluZWRTZWxmLmdldCgpLCByZXRhaW5lZFNlbGYtPl9yZXNwb25zZSwg
cGFzc3dvcmQpOworICAgICAgICBRTFByZXZpZXdDb252ZXJ0ZXIgKnBsYXRmb3JtQ29udmVydGVy
ID0gY29udmVydGVyLT5wbGF0Zm9ybUNvbnZlcnRlcigpOworICAgICAgICBbcGxhdGZvcm1Db252
ZXJ0ZXIgYXBwZW5kRGF0YUFycmF5OnJldGFpbmVkU2VsZi0+X2J1ZmZlcmVkRGF0YUFycmF5Lmdl
dCgpXTsKKyAgICAgICAgW3BsYXRmb3JtQ29udmVydGVyIGZpbmlzaGVkQXBwZW5kaW5nRGF0YV07
CisgICAgICAgIHJldGFpbmVkU2VsZi0+X2NvbnZlcnRlciA9IFdURk1vdmUoY29udmVydGVyKTsK
ICAgICB9KTsKIH0KIApAQCAtMzE4LDkgKzMyNCw5IEBAIE5TU3RyaW5nICpjcmVhdGVUZW1wb3Jh
cnlGaWxlRm9yUXVpY2tMb29rKE5TU3RyaW5nICpmaWxlTmFtZSkKIH0KIAogUXVpY2tMb29rSGFu
ZGxlOjpRdWlja0xvb2tIYW5kbGUoUmVzb3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCi0gICAgOiBtX2NvbnZlcnRlciB7IGFkb3B0TlMoW1tXZWJQ
cmV2aWV3Q29udmVydGVyIGFsbG9jXSBpbml0V2l0aFJlc291cmNlTG9hZGVyOmxvYWRlciByZXNv
dXJjZVJlc3BvbnNlOnJlc3BvbnNlIHF1aWNrTG9va0hhbmRsZToqdGhpc10pIH0KKyAgICA6IG1f
cHJldmlld0xvYWRlciB7IGFkb3B0TlMoW1tXZWJQcmV2aWV3TG9hZGVyIGFsbG9jXSBpbml0V2l0
aFJlc291cmNlTG9hZGVyOmxvYWRlciByZXNvdXJjZVJlc3BvbnNlOnJlc3BvbnNlIHF1aWNrTG9v
a0hhbmRsZToqdGhpc10pIH0KIHsKLSAgICBsb2FkZXIuZGlkQ3JlYXRlUXVpY2tMb29rSGFuZGxl
KCp0aGlzKTsKKyAgICBsb2FkZXIuZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuZGlkQ3JlYXRlUXVp
Y2tMb29rSGFuZGxlKCp0aGlzKTsKIH0KIAogUXVpY2tMb29rSGFuZGxlOjp+UXVpY2tMb29rSGFu
ZGxlKCkKQEAgLTMzOCwxOCArMzQ0LDEyIEBAIHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5k
bGU+IFF1aWNrTG9va0hhbmRsZTo6Y3JlYXRlKFJlc291cmNlTG9hZGVyJiBsb2FkZXIsCiAgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UXVpY2tMb29rSGFuZGxlPihsb2FkZXIsIHJlc3BvbnNl
KTsKIH0KIAotdm9pZCBRdWlja0xvb2tIYW5kbGU6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgaWYgKHJlcXVlc3QudXJsKCkucHJvdG9jb2xJcyhRTFBy
ZXZpZXdQcm90b2NvbCgpKSkKLSAgICAgICAgcmVxdWVzdCA9IFtbbV9jb252ZXJ0ZXIgcGxhdGZv
cm1Db252ZXJ0ZXJdIHNhZmVSZXF1ZXN0Rm9yUmVxdWVzdDpyZXF1ZXN0Lm5zVVJMUmVxdWVzdChE
b05vdFVwZGF0ZUhUVFBCb2R5KV07Ci19Ci0KIGJvb2wgUXVpY2tMb29rSGFuZGxlOjpkaWRSZWNl
aXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgaWYgKG1f
ZmluaXNoZWRMb2FkaW5nRGF0YUludG9Db252ZXJ0ZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIFttX2NvbnZlcnRlciBhcHBlbmREYXRhQXJyYXk6QFsgW05TRGF0YSBkYXRhV2l0aEJ5
dGVzOmRhdGEgbGVuZ3RoOmxlbmd0aF0gXV07CisgICAgW21fcHJldmlld0xvYWRlciBhcHBlbmRE
YXRhQXJyYXk6QFsgW05TRGF0YSBkYXRhV2l0aEJ5dGVzOmRhdGEgbGVuZ3RoOmxlbmd0aF0gXV07
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTM1OCw3ICszNTgsNyBAQCBib29sIFF1aWNrTG9v
a0hhbmRsZTo6ZGlkUmVjZWl2ZUJ1ZmZlcihjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKICAg
ICBpZiAobV9maW5pc2hlZExvYWRpbmdEYXRhSW50b0NvbnZlcnRlcikKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgW21fY29udmVydGVyIGFwcGVuZERhdGFBcnJheTpidWZmZXIuY3JlYXRl
TlNEYXRhQXJyYXkoKS5nZXQoKV07CisgICAgW21fcHJldmlld0xvYWRlciBhcHBlbmREYXRhQXJy
YXk6YnVmZmVyLmNyZWF0ZU5TRGF0YUFycmF5KCkuZ2V0KCldOwogICAgIHJldHVybiB0cnVlOwog
fQogCkBAIC0zNjgsMTkgKzM2OCwxOSBAQCBib29sIFF1aWNrTG9va0hhbmRsZTo6ZGlkRmluaXNo
TG9hZGluZygpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fZmluaXNoZWRMb2FkaW5n
RGF0YUludG9Db252ZXJ0ZXIgPSB0cnVlOwotICAgIFttX2NvbnZlcnRlciBmaW5pc2hlZEFwcGVu
ZGluZ107CisgICAgW21fcHJldmlld0xvYWRlciBmaW5pc2hlZEFwcGVuZGluZ107CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKIHZvaWQgUXVpY2tMb29rSGFuZGxlOjpkaWRGYWlsKCkKIHsKLSAgICBb
bV9jb252ZXJ0ZXIgZmFpbGVkXTsKLSAgICBtX2NvbnZlcnRlciA9IG51bGxwdHI7CisgICAgW21f
cHJldmlld0xvYWRlciBmYWlsZWRdOworICAgIG1fcHJldmlld0xvYWRlciA9IG51bGxwdHI7CiB9
CiAKIHZvaWQgUXVpY2tMb29rSGFuZGxlOjpzZXRDbGllbnQoUmVmPFF1aWNrTG9va0hhbmRsZUNs
aWVudD4mJiBjbGllbnQpCiB7Ci0gICAgW21fY29udmVydGVyIHNldENsaWVudDpXVEZNb3ZlKGNs
aWVudCldOworICAgIFttX3ByZXZpZXdMb2FkZXIgc2V0Q2xpZW50OldURk1vdmUoY2xpZW50KV07
CiB9CiAKIHZvaWQgUXVpY2tMb29rSGFuZGxlOjpzZXRDbGllbnRGb3JUZXN0aW5nKFJlZlB0cjxR
dWlja0xvb2tIYW5kbGVDbGllbnQ+JiYgY2xpZW50KQpAQCAtMzkwLDEyICszOTAsMTIgQEAgdm9p
ZCBRdWlja0xvb2tIYW5kbGU6OnNldENsaWVudEZvclRlc3RpbmcoUmVmUHRyPFF1aWNrTG9va0hh
bmRsZUNsaWVudD4mJiBjbGllbnQKIAogU3RyaW5nIFF1aWNrTG9va0hhbmRsZTo6cHJldmlld0Zp
bGVOYW1lKCkgY29uc3QKIHsKLSAgICByZXR1cm4gW21fY29udmVydGVyIHBsYXRmb3JtQ29udmVy
dGVyXS5wcmV2aWV3RmlsZU5hbWU7CisgICAgcmV0dXJuIFttX3ByZXZpZXdMb2FkZXIgY29udmVy
dGVyXS0+cHJldmlld0ZpbGVOYW1lKCk7CiB9CiAKIFN0cmluZyBRdWlja0xvb2tIYW5kbGU6OnBy
ZXZpZXdVVEkoKSBjb25zdAogewotICAgIHJldHVybiBbbV9jb252ZXJ0ZXIgcGxhdGZvcm1Db252
ZXJ0ZXJdLnByZXZpZXdVVEk7CisgICAgcmV0dXJuIFttX3ByZXZpZXdMb2FkZXIgY29udmVydGVy
XS0+cHJldmlld1VUSSgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvUXVpY2tMb29rU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9RdWlja0xvb2tTb2Z0TGluay5oCmluZGV4IDMzNjg1ZDNhYTdhOWU3ODliMDMwZTFjOGIxY2Rj
NzhkZjdiNTczNjQuLjlmNDAzOGFhNTcxZGY5YjRkOTc2YmUzZjkyNTA2ZGQ1MTZhY2ViNzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2tTb2Z0TGluay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2tTb2Z0TGluay5oCkBA
IC0yOSw4ICsyOSw2IEBACiAKIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihXZWJDb3Jl
LCBRdWlja0xvb2spCiAKLVNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNr
TG9vaywgUUxQcmV2aWV3Q29udmVydGVyKQotCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihXZWJDb3JlLCBRdWlja0xvb2ssIFFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcywgTlNT
ZXQgKiwgKCksICgpKQogI2RlZmluZSBRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXMgc29m
dExpbmtfUXVpY2tMb29rX1FMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcwogU09GVF9MSU5L
X0ZVTkNUSU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1p
bWVUeXBlRm9yRmlsZU5hbWVBbmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TU3RyaW5nICpmaWxl
TmFtZSwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKGZpbGVOYW1lLCBtaW1lVHlwZSkpCkBAIC00Myw3
ICs0MSw0IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNrTG9v
aywgUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlCiBTT0ZUX0xJTktfUE9JTlRFUl9GT1Jf
SEVBREVSKFdlYkNvcmUsIFF1aWNrTG9vaywgUUxQcmV2aWV3U2NoZW1lLCBOU1N0cmluZyAqKQog
I2RlZmluZSBRTFByZXZpZXdTY2hlbWUgZ2V0X1F1aWNrTG9va19RTFByZXZpZXdTY2hlbWUoKQog
Ci1TT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBRdWlja0xvb2ssIGtRTFBy
ZXZpZXdPcHRpb25QYXNzd29yZEtleSwgQ0ZTdHJpbmdSZWYpCi0jZGVmaW5lIGtRTFByZXZpZXdP
cHRpb25QYXNzd29yZEtleSBnZXRfUXVpY2tMb29rX2tRTFByZXZpZXdPcHRpb25QYXNzd29yZEtl
eSgpCi0KICNlbmRpZiAvLyBVU0UoUVVJQ0tfTE9PSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2tTb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9RdWlja0xvb2tTb2Z0TGluay5tbQppbmRleCA2MzA2MzUxMTdkYzBlMmViNTIw
NzU0NGJmNWU1MzIzMGFlY2QxMzI4Li5lYzUwZjE0ODgwMTdlZDk0NzAwMDY2YTZmMjhlMTZiNWQ1
NzM4Njk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUXVpY2tMb29r
U29mdExpbmsubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9va1Nv
ZnRMaW5rLm1tCkBAIC0zMSw4ICszMSw2IEBACiAKIFNPRlRfTElOS19GUkFNRVdPUktfRk9SX1NP
VVJDRShXZWJDb3JlLCBRdWlja0xvb2spCiAKLVNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFKFdl
YkNvcmUsIFF1aWNrTG9vaywgUUxQcmV2aWV3Q29udmVydGVyKQotCiBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMUHJldmlld0dldFN1cHBvcnRlZE1J
TUVUeXBlcywgTlNTZXQgKiwgKCksICgpKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
V2ViQ29yZSwgUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmlsZU5hbWVBbmRN
aW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TU3RyaW5nICpmaWxlTmFtZSwgTlNTdHJpbmcgKm1pbWVU
eXBlKSwgKGZpbGVOYW1lLCBtaW1lVHlwZSkpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShXZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1l
VHlwZSwgTlNTdHJpbmcgKiwgKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSksICh1cmws
IG1pbWVUeXBlKSkKQEAgLTQwLDYgKzM4LDQgQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VS
Q0UoV2ViQ29yZSwgUXVpY2tMb29rLCBRTFR5cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUKIAog
U09GVF9MSU5LX1BPSU5URVJfRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMUHJldmll
d1NjaGVtZSwgTlNTdHJpbmcgKikKIAotU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0UoV2Vi
Q29yZSwgUXVpY2tMb29rLCBrUUxQcmV2aWV3T3B0aW9uUGFzc3dvcmRLZXksIENGU3RyaW5nUmVm
KQotCiAjZW5kaWYgLy8gVVNFKFFVSUNLX0xPT0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9QcmV2aWV3Q29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9QcmV2aWV3Q29udmVydGVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFj
N2QyNTU5NjM2MWU5ZGFhZjYxY2EyNTBjMmJmYjcxMTFkMjlmNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1ByZXZpZXdDb252ZXJ0ZXIuaApA
QCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPG9iamMvb2JqYy5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworT0JKQ19DTEFTUyBOU0RhdGE7CitPQkpDX0NMQVNTIFFMUHJldmlld0NvbnZlcnRlcjsKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBSZXNv
dXJjZVJlc3BvbnNlOworCitjbGFzcyBQcmV2aWV3Q29udmVydGVyIHsKKyAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShQcmV2aWV3Q29udmVydGVyKTsKK3B1YmxpYzoKKyAgICBQcmV2aWV3Q29udmVy
dGVyKGlkIGRlbGVnYXRlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgU3RyaW5nJiBw
YXNzd29yZCA9IHsgfSk7CisgICAgUHJldmlld0NvbnZlcnRlcihOU0RhdGEgKiwgY29uc3QgU3Ry
aW5nJiB1dGksIGNvbnN0IFN0cmluZyYgcGFzc3dvcmQgPSB7IH0pOworCisgICAgUUxQcmV2aWV3
Q29udmVydGVyICpwbGF0Zm9ybUNvbnZlcnRlcigpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1D
b252ZXJ0ZXIuZ2V0KCk7IH0KKyAgICBSZXNvdXJjZVJlcXVlc3Qgc2FmZVJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7CisgICAgUmVzb3VyY2VSZXF1ZXN0IHByZXZpZXdSZXF1
ZXN0KCkgY29uc3Q7CisgICAgUmVzb3VyY2VSZXNwb25zZSBwcmV2aWV3UmVzcG9uc2UoKSBjb25z
dDsKKyAgICBTdHJpbmcgcHJldmlld0ZpbGVOYW1lKCkgY29uc3Q7CisgICAgU3RyaW5nIHByZXZp
ZXdVVEkoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBSZXRhaW5QdHI8UUxQcmV2aWV3Q29udmVy
dGVyPiBtX3BsYXRmb3JtQ29udmVydGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUHJldmlld0Nv
bnZlcnRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1ByZXZpZXdD
b252ZXJ0ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYxYjA4ZDVhNWIwMTFmZjAzNGNlZDM1MjI0ZjBhYTdm
OTcyODVlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvaW9zL1ByZXZpZXdDb252ZXJ0ZXIubW0KQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUHJldmlld0NvbnZlcnRlci5oIgorCisjaWYg
VVNFKFFVSUNLX0xPT0spCisKKyNpbXBvcnQgIlF1aWNrTG9va1NQSS5oIgorI2ltcG9ydCAiUmVz
b3VyY2VSZXF1ZXN0LmgiCisjaW1wb3J0ICJSZXNvdXJjZVJlc3BvbnNlLmgiCisjaW1wb3J0ICJT
b2Z0TGlua2luZy5oIgorCitTT0ZUX0xJTktfRlJBTUVXT1JLKFF1aWNrTG9vayk7CitTT0ZUX0xJ
TktfQ0xBU1MoUXVpY2tMb29rLCBRTFByZXZpZXdDb252ZXJ0ZXIpOworU09GVF9MSU5LX0NPTlNU
QU5UKFF1aWNrTG9vaywga1FMUHJldmlld09wdGlvblBhc3N3b3JkS2V5LCBDRlN0cmluZ1JlZik7
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIE5TRGljdGlvbmFyeSAqb3B0aW9uc1dp
dGhQYXNzd29yZChjb25zdCBTdHJpbmcmIHBhc3N3b3JkKQoreworICAgIGlmIChwYXNzd29yZC5p
c051bGwoKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHJldHVybiBAeyAoTlNTdHJpbmcg
KilnZXRrUUxQcmV2aWV3T3B0aW9uUGFzc3dvcmRLZXkoKSA6IHBhc3N3b3JkIH07Cit9CisKK1By
ZXZpZXdDb252ZXJ0ZXI6OlByZXZpZXdDb252ZXJ0ZXIoaWQgZGVsZWdhdGUsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBTdHJpbmcmIHBhc3N3b3JkKQorICAgIDogbV9w
bGF0Zm9ybUNvbnZlcnRlciB7IGFkb3B0TlMoW1tnZXRRTFByZXZpZXdDb252ZXJ0ZXJDbGFzcygp
IGFsbG9jXSBpbml0V2l0aENvbm5lY3Rpb246bmlsIGRlbGVnYXRlOmRlbGVnYXRlIHJlc3BvbnNl
OnJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKSBvcHRpb25zOm9wdGlvbnNXaXRoUGFzc3dvcmQocGFz
c3dvcmQpXSkgfQoreworfQorCitQcmV2aWV3Q29udmVydGVyOjpQcmV2aWV3Q29udmVydGVyKE5T
RGF0YSAqZGF0YSwgY29uc3QgU3RyaW5nJiB1dGksIGNvbnN0IFN0cmluZyYgcGFzc3dvcmQpCisg
ICAgOiBtX3BsYXRmb3JtQ29udmVydGVyIHsgYWRvcHROUyhbW2dldFFMUHJldmlld0NvbnZlcnRl
ckNsYXNzKCkgYWxsb2NdIGluaXRXaXRoRGF0YTpkYXRhIG5hbWU6bmlsIHV0aTp1dGkgb3B0aW9u
czpvcHRpb25zV2l0aFBhc3N3b3JkKHBhc3N3b3JkKV0pIH0KK3sKK30KKworUmVzb3VyY2VSZXF1
ZXN0IFByZXZpZXdDb252ZXJ0ZXI6OnNhZmVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkgY29uc3QKK3sKKyAgICByZXR1cm4gW21fcGxhdGZvcm1Db252ZXJ0ZXIgc2FmZVJl
cXVlc3RGb3JSZXF1ZXN0OnJlcXVlc3QubnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkp
XTsKK30KKworUmVzb3VyY2VSZXF1ZXN0IFByZXZpZXdDb252ZXJ0ZXI6OnByZXZpZXdSZXF1ZXN0
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gW21fcGxhdGZvcm1Db252ZXJ0ZXIgcHJldmlld1JlcXVl
c3RdOworfQorCitSZXNvdXJjZVJlc3BvbnNlIFByZXZpZXdDb252ZXJ0ZXI6OnByZXZpZXdSZXNw
b25zZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFttX3BsYXRmb3JtQ29udmVydGVyIHByZXZpZXdS
ZXNwb25zZV07Cit9CisKK1N0cmluZyBQcmV2aWV3Q29udmVydGVyOjpwcmV2aWV3RmlsZU5hbWUo
KSBjb25zdAoreworICAgIHJldHVybiBbbV9wbGF0Zm9ybUNvbnZlcnRlciBwcmV2aWV3RmlsZU5h
bWVdOworfQorCitTdHJpbmcgUHJldmlld0NvbnZlcnRlcjo6cHJldmlld1VUSSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIFttX3BsYXRmb3JtQ29udmVydGVyIHByZXZpZXdVVEldOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoUVVJQ0tfTE9PSykK
</data>

          </attachment>
      

    </bug>

</bugzilla>