<?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>235693</bug_id>
          
          <creation_ts>2022-01-26 23:42:10 -0800</creation_ts>
          <short_desc>Migrate _UITextSearching implementation to be backed by WebFoundTextRangeController</short_desc>
          <delta_ts>2023-01-04 08:58:02 -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>Other</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>235691</dependson>
          <blocked>235830</blocked>
    
    <blocked>250078</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1834429</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-01-26 23:42:10 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834430</commentid>
    <comment_count>1</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-01-26 23:42:19 -0800</bug_when>
    <thetext>rdar://88117303</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834631</commentid>
    <comment_count>2</comment_count>
      <attachid>450164</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-01-27 11:58:05 -0800</bug_when>
    <thetext>Created attachment 450164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834709</commentid>
    <comment_count>3</comment_count>
      <attachid>450180</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-01-27 14:32:14 -0800</bug_when>
    <thetext>Created attachment 450180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834839</commentid>
    <comment_count>4</comment_count>
      <attachid>450208</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-01-27 23:40:15 -0800</bug_when>
    <thetext>Created attachment 450208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835103</commentid>
    <comment_count>5</comment_count>
      <attachid>450208</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-01-28 12:23:05 -0800</bug_when>
    <thetext>Comment on attachment 450208
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:10084
&gt; +    _page-&gt;findTextRangesForStringMatches(string, findOptions, 1000, [string, aggregator = retainPtr(aggregator)](const Vector&lt;WebKit::WebFoundTextRange&gt; ranges) {

Not a regression but kind of odd that this `1000` is just chilling here inline without a name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835142</commentid>
    <comment_count>6</comment_count>
      <attachid>450275</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-01-28 14:04:58 -0800</bug_when>
    <thetext>Created attachment 450275
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835143</commentid>
    <comment_count>7</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-01-28 14:06:00 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #5)
&gt; Comment on attachment 450208 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=450208&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:10084
&gt; &gt; +    _page-&gt;findTextRangesForStringMatches(string, findOptions, 1000, [string, aggregator = retainPtr(aggregator)](const Vector&lt;WebKit::WebFoundTextRange&gt; ranges) {
&gt; 
&gt; Not a regression but kind of odd that this `1000` is just chilling here
&gt; inline without a name.

Added a comment and a variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835161</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-28 15:13:52 -0800</bug_when>
    <thetext>Committed r288762 (246550@main): &lt;https://commits.webkit.org/246550@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450275.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450164</attachid>
            <date>2022-01-27 11:58:05 -0800</date>
            <delta_ts>2022-01-27 14:46:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235693-20220127115804.patch</filename>
            <type>text/plain</type>
            <size>20776</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc3MmI1ZWI4NDkyOWZjN2Zl
YzI4ZGE3MWY5ZTg1ODhjMjAyNDY5MTguLjJmNDVjNWE1NmVkZWQwOTU0ZDEyNWRhYThlY2MyMTFi
NWU1MjQxYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMjItMDEtMjcgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIE1pZ3JhdGUgX1VJVGV4dFNl
YXJjaGluZyBpbXBsZW1lbnRhdGlvbiB0byBiZSBiYWNrZWQgYnkgV2ViRm91bmRUZXh0UmFuZ2VD
b250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzU2OTMKKyAgICAgICAgcmRhcjovLzg4MTE3MzAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWlncmF0ZSBfVUlUZXh0U2VhcmNoaW5nIGltcGxl
bWVudGF0aW9uIHRvIGJlIGJhY2tlZCBieQorICAgICAgICBXZWJGb3VuZFRleHRSYW5nZUNvbnRy
b2xsZXIgdG8gc3VwcG9ydCByZXN0b3JlYWJsZSBmaW5kIHJlc3VsdHMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmlldyBz
Y3JvbGxSYW5nZVRvVmlzaWJsZTppbkRvY3VtZW50Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
ZGlkQmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9uXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBkaWRF
bmRUZXh0U2VhcmNoT3BlcmF0aW9uXSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZmluZFRleHRSYW5nZXNGb3JT
dHJpbmdNYXRjaGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNvcmF0ZVRl
eHRSYW5nZVdpdGhTdHlsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2Nyb2xs
VGV4dFJhbmdlVG9WaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjbGVh
ckFsbERlY29yYXRlZEZvdW5kVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
ZGlkQmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRFbmRUZXh0U2VhcmNoT3BlcmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgb2Zmc2V0RnJvbVBvc2l0aW9uOnRv
UG9zaXRpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcGVyZm9ybVRleHRTZWFyY2hX
aXRoUXVlcnlTdHJpbmc6dXNpbmdPcHRpb25zOnJlc3VsdEFnZ3JlZ2F0b3I6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgZGVjb3JhdGVGb3VuZFRleHRSYW5nZTppbkRvY3VtZW50OnVzaW5n
U3R5bGU6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2Nyb2xsUmFuZ2VUb1Zpc2libGU6
aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhckFsbERlY29yYXRl
ZEZvdW5kVGV4dF0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRpZEJlZ2luVGV4dFNlYXJj
aE9wZXJhdGlvbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRpZEVuZFRleHRTZWFyY2hP
cGVyYXRpb25dKToKKyAgICAgICAgKCtbV0tGb3VuZFRleHRSYW5nZSBmb3VuZFRleHRSYW5nZVdp
dGhXZWJGb3VuZFRleHRSYW5nZTpdKToKKyAgICAgICAgKC1bV0tGb3VuZFRleHRSYW5nZSBzdGFy
dF0pOgorICAgICAgICAoLVtXS0ZvdW5kVGV4dFJhbmdlIGVuZF0pOgorICAgICAgICAoLVtXS0Zv
dW5kVGV4dFJhbmdlIHdlYkZvdW5kVGV4dFJhbmdlXSk6CisgICAgICAgICgrW1dLRm91bmRUZXh0
UG9zaXRpb24gdGV4dFBvc2l0aW9uV2l0aE9mZnNldDpvcmRlcjpdKToKKyAgICAgICAgKCtbV0tG
b3VuZFRleHRSYW5nZSBmb3VuZFRleHRSYW5nZVdpdGhSZWN0OmluZGV4Ol0pOiBEZWxldGVkLgor
ICAgICAgICAoK1tXS0ZvdW5kVGV4dFBvc2l0aW9uIHRleHRQb3NpdGlvbldpdGhJbmRleDpdKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmZpbmRUZXh0UmFuZ2VzRm9yU3RyaW5nTWF0Y2hlcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRlY29yYXRlVGV4dFJhbmdlV2l0aFN0eWxlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2Nyb2xsVGV4dFJhbmdlVG9WaXNpYmxlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6Y2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRleHQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRCZWdpblRleHRTZWFyY2hPcGVyYXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRFbmRUZXh0U2VhcmNoT3BlcmF0aW9uKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
Ojpmb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIyLTAxLTI3ICBBZGl0eWEgS2VlcnRoaSAgPGFr
ZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgV2ViRm91bmRUZXh0UmFuZ2Ug
YW5kIFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlciB0byBzdXBwb3J0IHJlc3RvcmFibGUgZmlu
ZCByZXN1bHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dL
V2ViVmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3
SU9TLm1tCmluZGV4IDhmNTk4M2EyOWZiNmZhNjg5NWNjOTZhNzJmZGRhNGRlNjJlYTU3OGUuLjJm
NDQ5MDZkNDdiYTNmMzZmZWY5ZjQ1OWIyNzJkYjhlYTY2MmIwMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCkBAIC0zNTMzLDExICszNTMz
LDI2IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB2
aWV3cG9ydEFyZ3VtZW50c0Zyb21EaWN0aW9uYXJ5CiAgICAgW19jb250ZW50VmlldyBkZWNvcmF0
ZUZvdW5kVGV4dFJhbmdlOnJhbmdlIGluRG9jdW1lbnQ6ZG9jdW1lbnQgdXNpbmdTdHlsZTpzdHls
ZV07CiB9CiAKKy0gKHZvaWQpc2Nyb2xsUmFuZ2VUb1Zpc2libGU6KFVJVGV4dFJhbmdlICopcmFu
Z2UgaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAor
eworICAgIFtfY29udGVudFZpZXcgc2Nyb2xsUmFuZ2VUb1Zpc2libGU6cmFuZ2UgaW5Eb2N1bWVu
dDpkb2N1bWVudF07Cit9CisKIC0gKHZvaWQpY2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRleHQKIHsK
ICAgICBbX2NvbnRlbnRWaWV3IGNsZWFyQWxsRGVjb3JhdGVkRm91bmRUZXh0XTsKIH0KIAorLSAo
dm9pZClkaWRCZWdpblRleHRTZWFyY2hPcGVyYXRpb24KK3sKKyAgICBbX2NvbnRlbnRWaWV3IGRp
ZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbl07Cit9CisKKy0gKHZvaWQpZGlkRW5kVGV4dFNlYXJj
aE9wZXJhdGlvbgoreworICAgIFtfY29udGVudFZpZXcgZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlv
bl07Cit9CisKICNlbmRpZiAvLyBIQVZFKFVJRklORElOVEVSQUNUSU9OKQogCiBAZW5kIC8vIFdL
V2ViVmlldyAoV0tQcml2YXRlSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggZjRiMzEwZmFjYjdkMTA0NWY0M2JiNTZmZGYwMzIzM2E2ZGU3YjY3Ny4uYTBi
ZDQwNmY3ZWJjMmViYTlkODM0MWFlZGZkOWU0MDlkZGVkN2EyMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMDgsNiArMTA4LDcgQEAKICNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFZGl0Q29tbWFuZFByb3h5Lmgi
CiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCisjaW5jbHVkZSAiV2ViRm91bmRUZXh0
UmFuZ2UuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lUG9saWN5
TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIK
QEAgLTQyODAsNiArNDI4MSwzNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZmluZFJlY3RzRm9yU3Ry
aW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmIHN0cmluZywgT3B0aW9uU2V0PFdlYgogICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6RmluZFJlY3RzRm9yU3RyaW5nTWF0Y2hl
cyhzdHJpbmcsIG9wdGlvbnMsIG1heE1hdGNoQ291bnQpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rp
b24pKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmZpbmRUZXh0UmFuZ2VzRm9yU3RyaW5nTWF0
Y2hlcyhjb25zdCBTdHJpbmcmIHN0cmluZywgT3B0aW9uU2V0PEZpbmRPcHRpb25zPiBvcHRpb25z
LCB1bnNpZ25lZCBtYXhNYXRjaENvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxX
ZWJGb3VuZFRleHRSYW5nZT4mJik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3sKKyAgICBzZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OkZpbmRUZXh0UmFuZ2VzRm9yU3RyaW5nTWF0
Y2hlcyhzdHJpbmcsIG9wdGlvbnMsIG1heE1hdGNoQ291bnQpLCBXVEZNb3ZlKGNhbGxiYWNrRnVu
Y3Rpb24pKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRlY29yYXRlVGV4dFJhbmdlV2l0aFN0
eWxlKGNvbnN0IFdlYkZvdW5kVGV4dFJhbmdlJiByYW5nZSwgRmluZERlY29yYXRpb25TdHlsZSBz
dHlsZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEZWNvcmF0ZVRleHRSYW5nZVdp
dGhTdHlsZShyYW5nZSwgc3R5bGUpKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNjcm9sbFRl
eHRSYW5nZVRvVmlzaWJsZShjb25zdCBXZWJGb3VuZFRleHRSYW5nZSYgcmFuZ2UpCit7CisgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2Nyb2xsVGV4dFJhbmdlVG9WaXNpYmxlKHJhbmdlKSk7
Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpjbGVhckFsbERlY29yYXRlZEZvdW5kVGV4dCgpCit7
CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRleHQo
KSk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRCZWdpblRleHRTZWFyY2hPcGVyYXRpb24o
KQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZEJlZ2luVGV4dFNlYXJjaE9wZXJh
dGlvbigpKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRpZEVuZFRleHRTZWFyY2hPcGVyYXRp
b24oKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZEVuZFRleHRTZWFyY2hPcGVy
YXRpb24oKSk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRJbWFnZUZvckZpbmRNYXRjaChp
bnQzMl90IG1hdGNoSW5kZXgpCiB7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0SW1h
Z2VGb3JGaW5kTWF0Y2gobWF0Y2hJbmRleCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCA4YzY1OTlkYTk3NTFlMjgzYTM3NTA4Zjk5MGI1ZTVlOWM3ZWQxNjM2Li4z
NGFiN2NlMTNlMzhmZGJiOTdhMWY5NjBlZWQ4ZjhkZjYxZjdiYzc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDEwLDYgKzQxMCw3IEBAIHN0cnVjdCBVUkxTY2hl
bWVUYXNrUGFyYW1ldGVyczsKIHN0cnVjdCBVc2VyTWVzc2FnZTsKIHN0cnVjdCBXZWJBdXRvY29y
cmVjdGlvbkRhdGE7CiBzdHJ1Y3QgV2ViQmFja0ZvcndhcmRMaXN0Q291bnRzOworc3RydWN0IFdl
YkZvdW5kVGV4dFJhbmdlOwogc3RydWN0IFdlYkhpdFRlc3RSZXN1bHREYXRhOwogc3RydWN0IFdl
Yk5hdmlnYXRpb25EYXRhU3RvcmU7CiBzdHJ1Y3QgV2ViUG9wdXBJdGVtOwpAQCAtMTIwOCw2ICsx
MjA5LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZhaWxUb0ZpbmRTdHJpbmcoY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCBkaWRGaW5kU3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBjb25z
dCBWZWN0b3I8VmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+PiYgbWF0Y2hSZWN0cywgaW50MzJfdCBm
aXJzdEluZGV4QWZ0ZXJTZWxlY3Rpb24pOwogCisgICAgdm9pZCBmaW5kVGV4dFJhbmdlc0ZvclN0
cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiwgT3B0aW9uU2V0PEZpbmRPcHRpb25zPiwgdW5zaWdu
ZWQgbWF4TWF0Y2hDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViRm91bmRU
ZXh0UmFuZ2U+JiYpPiYmKTsKKyAgICB2b2lkIGRlY29yYXRlVGV4dFJhbmdlV2l0aFN0eWxlKGNv
bnN0IFdlYkZvdW5kVGV4dFJhbmdlJiwgRmluZERlY29yYXRpb25TdHlsZSk7CisgICAgdm9pZCBz
Y3JvbGxUZXh0UmFuZ2VUb1Zpc2libGUoY29uc3QgV2ViRm91bmRUZXh0UmFuZ2UmKTsKKyAgICB2
b2lkIGNsZWFyQWxsRGVjb3JhdGVkRm91bmRUZXh0KCk7CisgICAgdm9pZCBkaWRCZWdpblRleHRT
ZWFyY2hPcGVyYXRpb24oKTsKKyAgICB2b2lkIGRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24oKTsK
KwogICAgIHZvaWQgZ2V0Q29udGVudHNBc1N0cmluZyhDb250ZW50QXNTdHJpbmdJbmNsdWRlc0No
aWxkRnJhbWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmKTsKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIGdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5n
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6QXR0cmlidXRlZFN0cmluZyYp
PiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDY2YzhhNjVhNmUzNmJjNDQ5MzYyMGVjZDQ1MDRlZmY2
MTA0OTEwYWQuLmUwYWIwN2ZjMzYzMzg0M2I5ZmMxYTBlNmRmZWQzZDNhMTVjYjQ0MGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQpAQCAtODMsNiArODMsNyBAQAogI2ltcG9ydCAiV2ViQXV0b2NvcnJlY3Rpb25E
YXRhLmgiCiAjaW1wb3J0ICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MuaCIKICNp
bXBvcnQgIldlYkV2ZW50LmgiCisjaW1wb3J0ICJXZWJGb3VuZFRleHRSYW5nZS5oIgogI2ltcG9y
dCAiV2ViSU9TRXZlbnRGYWN0b3J5LmgiCiAjaW1wb3J0ICJXZWJQYWdlTWVzc2FnZXMuaCIKICNp
bXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCkBAIC00MDUsMTggKzQwNiwyMyBAQCBjb25z
dGV4cHIgZG91YmxlIGZhc3RlclRhcFNpZ25pZmljYW50Wm9vbVRocmVzaG9sZCA9IDAuODsKIAog
QGludGVyZmFjZSBXS0ZvdW5kVGV4dFJhbmdlIDogVUlUZXh0UmFuZ2UKIAotQHByb3BlcnR5IChu
b25hdG9taWMpIENHUmVjdCByZWN0OwotQHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIg
aW5kZXg7CitAcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdlciBsb2NhdGlvbjsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIGxlbmd0aDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSBOU1N0cmluZyAqZnJhbWVJZGVudGlmaWVyOworQHByb3BlcnR5IChub25hdG9taWMp
IE5TVUludGVnZXIgb3JkZXI7CiAKLSsgKFdLRm91bmRUZXh0UmFuZ2UgKilmb3VuZFRleHRSYW5n
ZVdpdGhSZWN0OihDR1JlY3QpcmVjdCBpbmRleDooTlNVSW50ZWdlcilpbmRleDsKKysgKFdLRm91
bmRUZXh0UmFuZ2UgKilmb3VuZFRleHRSYW5nZVdpdGhXZWJGb3VuZFRleHRSYW5nZTooV2ViS2l0
OjpXZWJGb3VuZFRleHRSYW5nZSlyYW5nZTsKKworLSAoV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5n
ZSl3ZWJGb3VuZFRleHRSYW5nZTsKIAogQGVuZAogCiBAaW50ZXJmYWNlIFdLRm91bmRUZXh0UG9z
aXRpb24gOiBVSVRleHRQb3NpdGlvbgogCi1AcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdl
ciBpbmRleDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIG9mZnNldDsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIG9yZGVyOwogCi0rIChXS0ZvdW5kVGV4dFBvc2l0
aW9uICopdGV4dFBvc2l0aW9uV2l0aEluZGV4OihOU1VJbnRlZ2VyKWluZGV4OworKyAoV0tGb3Vu
ZFRleHRQb3NpdGlvbiAqKXRleHRQb3NpdGlvbldpdGhPZmZzZXQ6KE5TVUludGVnZXIpb2Zmc2V0
IG9yZGVyOihOU1VJbnRlZ2VyKW9yZGVyOwogCiBAZW5kCiAKQEAgLTUyOTgsMTEgKzUzMDQsMTkg
QEAgc3RhdGljIFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvbkhpZ2hsaWdodD4gY29tcG9zaXRp
b25IaWdobGlnaHRzKE5TQXR0cmlidXRlZFMKICAgICByZXR1cm4gTlNPcmRlcmVkU2FtZTsKIH0K
IAotLSAoTlNJbnRlZ2VyKW9mZnNldEZyb21Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24gKilmcm9t
IHRvUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopdG9Qb3NpdGlvbgorLSAoTlNJbnRlZ2VyKW9m
ZnNldEZyb21Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24gKilmcm9tIHRvUG9zaXRpb246KFVJVGV4
dFBvc2l0aW9uICopdG8KIHsKICNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQotICAgIGlmIChb
ZnJvbSBpc0tpbmRPZkNsYXNzOltXS0ZvdW5kVGV4dFBvc2l0aW9uIGNsYXNzXV0gJiYgW3RvUG9z
aXRpb24gaXNLaW5kT2ZDbGFzczpbV0tGb3VuZFRleHRQb3NpdGlvbiBjbGFzc11dKQotICAgICAg
ICByZXR1cm4gKChXS0ZvdW5kVGV4dFBvc2l0aW9uICopZnJvbSkuaW5kZXggLSAoKFdLRm91bmRU
ZXh0UG9zaXRpb24gKil0b1Bvc2l0aW9uKS5pbmRleDsKKyAgICBpZiAoW2Zyb20gaXNLaW5kT2ZD
bGFzczpbV0tGb3VuZFRleHRQb3NpdGlvbiBjbGFzc11dICYmIFt0byBpc0tpbmRPZkNsYXNzOltX
S0ZvdW5kVGV4dFBvc2l0aW9uIGNsYXNzXV0pIHsKKyAgICAgICAgV0tGb3VuZFRleHRQb3NpdGlv
biAqZnJvbVBvc2l0aW9uID0gKFdLRm91bmRUZXh0UG9zaXRpb24gKilmcm9tOworICAgICAgICBX
S0ZvdW5kVGV4dFBvc2l0aW9uICp0b1Bvc2l0aW9uID0gKFdLRm91bmRUZXh0UG9zaXRpb24gKil0
bzsKKworICAgICAgICBpZiAoZnJvbVBvc2l0aW9uLm9yZGVyID09IHRvUG9zaXRpb24ub3JkZXIp
CisgICAgICAgICAgICByZXR1cm4gZnJvbVBvc2l0aW9uLm9mZnNldCAtIHRvUG9zaXRpb24ub2Zm
c2V0OworCisgICAgICAgIHJldHVybiBmcm9tUG9zaXRpb24ub3JkZXIgLSB0b1Bvc2l0aW9uLm9y
ZGVyOworICAgIH0KKwogI2VuZGlmCiAKICAgICByZXR1cm4gMDsKQEAgLTEwMDY3LDEyICsxMDA4
MSwxMCBAQCBzdGF0aWMgUmV0YWluUHRyPE5TSXRlbVByb3ZpZGVyPiBjcmVhdGVJdGVtUHJvdmlk
ZXIoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmCiAgICAgaWYgKG9wdGlvbnMuc3RyaW5nQ29t
cGFyZU9wdGlvbnMgJiBOU0Nhc2VJbnNlbnNpdGl2ZVNlYXJjaCkKICAgICAgICAgZmluZE9wdGlv
bnMuYWRkKFdlYktpdDo6RmluZE9wdGlvbnM6OkNhc2VJbnNlbnNpdGl2ZSk7CiAKLSAgICBfcGFn
ZS0+ZmluZFJlY3RzRm9yU3RyaW5nTWF0Y2hlcyhzdHJpbmcsIGZpbmRPcHRpb25zLCAxMDAwLCBb
c3RyaW5nLCBhZ2dyZWdhdG9yID0gcmV0YWluUHRyKGFnZ3JlZ2F0b3IpXShjb25zdCBWZWN0b3I8
V2ViQ29yZTo6RmxvYXRSZWN0PiYgcmVjdHMpIHsKLSAgICAgICAgTlNVSW50ZWdlciBpbmRleCA9
IDA7Ci0gICAgICAgIGZvciAoYXV0byYgcmVjdCA6IHJlY3RzKSB7Ci0gICAgICAgICAgICBXS0Zv
dW5kVGV4dFJhbmdlICpyYW5nZSA9IFtXS0ZvdW5kVGV4dFJhbmdlIGZvdW5kVGV4dFJhbmdlV2l0
aFJlY3Q6cmVjdCBpbmRleDppbmRleF07Ci0gICAgICAgICAgICBbYWdncmVnYXRvciBmb3VuZFJh
bmdlOnJhbmdlIGZvclNlYXJjaFN0cmluZzpzdHJpbmcgaW5Eb2N1bWVudDpuaWxdOwotICAgICAg
ICAgICAgaW5kZXgrKzsKKyAgICBfcGFnZS0+ZmluZFRleHRSYW5nZXNGb3JTdHJpbmdNYXRjaGVz
KHN0cmluZywgZmluZE9wdGlvbnMsIDEwMDAsIFtzdHJpbmcsIGFnZ3JlZ2F0b3IgPSByZXRhaW5Q
dHIoYWdncmVnYXRvcildKGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlPiBy
YW5nZXMpIHsKKyAgICAgICAgZm9yIChhdXRvJiByYW5nZSA6IHJhbmdlcykgeworICAgICAgICAg
ICAgV0tGb3VuZFRleHRSYW5nZSAqdGV4dFJhbmdlID0gW1dLRm91bmRUZXh0UmFuZ2UgZm91bmRU
ZXh0UmFuZ2VXaXRoV2ViRm91bmRUZXh0UmFuZ2U6cmFuZ2VdOworICAgICAgICAgICAgW2FnZ3Jl
Z2F0b3IgZm91bmRSYW5nZTp0ZXh0UmFuZ2UgZm9yU2VhcmNoU3RyaW5nOnN0cmluZyBpbkRvY3Vt
ZW50Om5pbF07CiAgICAgICAgIH0KIAogICAgICAgICBbYWdncmVnYXRvciBmaW5pc2hlZFNlYXJj
aGluZ107CkBAIC0xMDA4NCwxOCArMTAwOTYsMzggQEAgc3RhdGljIFJldGFpblB0cjxOU0l0ZW1Q
cm92aWRlcj4gY3JlYXRlSXRlbVByb3ZpZGVyKGNvbnN0IFdlYktpdDo6V2ViUGFnZVByb3h5Jgog
ICAgIGlmICghW3JhbmdlIGlzS2luZE9mQ2xhc3M6W1dLRm91bmRUZXh0UmFuZ2UgY2xhc3NdXSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKHN0eWxlID09IF9VSUZvdW5kVGV4dFN0eWxlSGln
aGxpZ2h0ZWQpIHsKLSAgICAgICAgX2ZvdW5kSGlnaGxpZ2h0ZWRUZXh0UmFuZ2UgPSByYW5nZTsK
LSAgICAgICAgV0tGb3VuZFRleHRSYW5nZSAqZm91bmRSYW5nZSA9IChXS0ZvdW5kVGV4dFJhbmdl
ICopcmFuZ2U7Ci0gICAgICAgIF9wYWdlLT5pbmRpY2F0ZUZpbmRNYXRjaChmb3VuZFJhbmdlLmlu
ZGV4KTsKLSAgICB9IGVsc2UgaWYgKHN0eWxlID09IF9VSUZvdW5kVGV4dFN0eWxlRm91bmQgJiYg
X2ZvdW5kSGlnaGxpZ2h0ZWRUZXh0UmFuZ2UgPT0gcmFuZ2UpCi0gICAgICAgIF9wYWdlLT5oaWRl
RmluZEluZGljYXRvcigpOworICAgIGF1dG8gZGVjb3JhdGlvblN0eWxlID0gV2ViS2l0OjpGaW5k
RGVjb3JhdGlvblN0eWxlOjpOb3JtYWw7CisgICAgaWYgKHN0eWxlID09IF9VSUZvdW5kVGV4dFN0
eWxlRm91bmQpCisgICAgICAgIGRlY29yYXRpb25TdHlsZSA9IFdlYktpdDo6RmluZERlY29yYXRp
b25TdHlsZTo6Rm91bmQ7CisgICAgZWxzZSBpZiAoc3R5bGUgPT0gX1VJRm91bmRUZXh0U3R5bGVI
aWdobGlnaHRlZCkKKyAgICAgICAgZGVjb3JhdGlvblN0eWxlID0gV2ViS2l0OjpGaW5kRGVjb3Jh
dGlvblN0eWxlOjpIaWdobGlnaHRlZDsKKworICAgIFdLRm91bmRUZXh0UmFuZ2UgKmZvdW5kVGV4
dFJhbmdlID0gKFdLRm91bmRUZXh0UmFuZ2UgKilyYW5nZTsKKyAgICBfcGFnZS0+ZGVjb3JhdGVU
ZXh0UmFuZ2VXaXRoU3R5bGUoW2ZvdW5kVGV4dFJhbmdlIHdlYkZvdW5kVGV4dFJhbmdlXSwgZGVj
b3JhdGlvblN0eWxlKTsKK30KKworLSAodm9pZClzY3JvbGxSYW5nZVRvVmlzaWJsZTooVUlUZXh0
UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVy
KWRvY3VtZW50Cit7CisgICAgaWYgKCFbcmFuZ2UgaXNLaW5kT2ZDbGFzczpbV0tGb3VuZFRleHRS
YW5nZSBjbGFzc11dKQorICAgICAgICByZXR1cm47CisKKyAgICBXS0ZvdW5kVGV4dFJhbmdlICpm
b3VuZFRleHRSYW5nZSA9IChXS0ZvdW5kVGV4dFJhbmdlICopcmFuZ2U7CisgICAgX3BhZ2UtPnNj
cm9sbFRleHRSYW5nZVRvVmlzaWJsZShbZm91bmRUZXh0UmFuZ2Ugd2ViRm91bmRUZXh0UmFuZ2Vd
KTsKIH0KIAogLSAodm9pZCljbGVhckFsbERlY29yYXRlZEZvdW5kVGV4dAogewotICAgIF9mb3Vu
ZEhpZ2hsaWdodGVkVGV4dFJhbmdlID0gbmlsOwotICAgIF9wYWdlLT5oaWRlRmluZFVJKCk7Cisg
ICAgX3BhZ2UtPmNsZWFyQWxsRGVjb3JhdGVkRm91bmRUZXh0KCk7Cit9CisKKy0gKHZvaWQpZGlk
QmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9uCit7CisgICAgX3BhZ2UtPmRpZEJlZ2luVGV4dFNlYXJj
aE9wZXJhdGlvbigpOworfQorCistICh2b2lkKWRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24KK3sK
KyAgICBfcGFnZS0+ZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbigpOwogfQogCiAtIChOU0ludGVn
ZXIpb2Zmc2V0RnJvbVBvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAqKWZyb20gdG9Qb3NpdGlvbjoo
VUlUZXh0UG9zaXRpb24gKil0b1Bvc2l0aW9uIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1
bWVudElkZW50aWZpZXIpZG9jdW1lbnQKQEAgLTExOTcyLDIzICsxMjAwNCwyNyBAQCBzdGF0aWMg
VUlNZW51ICptZW51RnJvbUxlZ2FjeVByZXZpZXdPckRlZmF1bHRBY3Rpb25zKFVJVmlld0NvbnRy
b2xsZXIgKnByZXZpZXdWaQogCiBAaW1wbGVtZW50YXRpb24gV0tGb3VuZFRleHRSYW5nZQogCi0r
IChXS0ZvdW5kVGV4dFJhbmdlICopZm91bmRUZXh0UmFuZ2VXaXRoUmVjdDooQ0dSZWN0KXJlY3Qg
aW5kZXg6KE5TVUludGVnZXIpaW5kZXgKKworKyAoV0tGb3VuZFRleHRSYW5nZSAqKWZvdW5kVGV4
dFJhbmdlV2l0aFdlYkZvdW5kVGV4dFJhbmdlOihXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlKXdl
YlJhbmdlCiB7CiAgICAgYXV0byByYW5nZSA9IGFkb3B0TlMoW1tXS0ZvdW5kVGV4dFJhbmdlIGFs
bG9jXSBpbml0XSk7Ci0gICAgW3JhbmdlIHNldFJlY3Q6cmVjdF07Ci0gICAgW3JhbmdlIHNldElu
ZGV4OmluZGV4XTsKKyAgICBbcmFuZ2Ugc2V0TG9jYXRpb246d2ViUmFuZ2UubG9jYXRpb25dOwor
ICAgIFtyYW5nZSBzZXRMZW5ndGg6d2ViUmFuZ2UubGVuZ3RoXTsKKyAgICBbcmFuZ2Ugc2V0RnJh
bWVJZGVudGlmaWVyOndlYlJhbmdlLmZyYW1lSWRlbnRpZmllcl07CisgICAgW3JhbmdlIHNldE9y
ZGVyOndlYlJhbmdlLm9yZGVyXTsKICAgICByZXR1cm4gcmFuZ2UuYXV0b3JlbGVhc2UoKTsKIH0K
IAogLSAoV0tGb3VuZFRleHRQb3NpdGlvbiAqKXN0YXJ0CiB7Ci0gICAgV0tGb3VuZFRleHRQb3Np
dGlvbiAqcG9zaXRpb24gPSBbV0tGb3VuZFRleHRQb3NpdGlvbiB0ZXh0UG9zaXRpb25XaXRoSW5k
ZXg6c2VsZi5pbmRleF07CisgICAgV0tGb3VuZFRleHRQb3NpdGlvbiAqcG9zaXRpb24gPSBbV0tG
b3VuZFRleHRQb3NpdGlvbiB0ZXh0UG9zaXRpb25XaXRoT2Zmc2V0OnNlbGYubG9jYXRpb24gb3Jk
ZXI6c2VsZi5vcmRlcl07CiAgICAgcmV0dXJuIHBvc2l0aW9uOwogfQogCiAtIChVSVRleHRQb3Np
dGlvbiAqKWVuZAogewotICAgIHJldHVybiBzZWxmLnN0YXJ0OworICAgIFdLRm91bmRUZXh0UG9z
aXRpb24gKnBvc2l0aW9uID0gW1dLRm91bmRUZXh0UG9zaXRpb24gdGV4dFBvc2l0aW9uV2l0aE9m
ZnNldDooc2VsZi5sb2NhdGlvbiArIHNlbGYubGVuZ3RoKSBvcmRlcjpzZWxmLm9yZGVyXTsKKyAg
ICByZXR1cm4gcG9zaXRpb247CiB9CiAKIC0gKEJPT0wpaXNFbXB0eQpAQCAtMTE5OTYsMTQgKzEy
MDMyLDIwIEBAIHN0YXRpYyBVSU1lbnUgKm1lbnVGcm9tTGVnYWN5UHJldmlld09yRGVmYXVsdEFj
dGlvbnMoVUlWaWV3Q29udHJvbGxlciAqcHJldmlld1ZpCiAgICAgcmV0dXJuIE5POwogfQogCist
IChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlKXdlYkZvdW5kVGV4dFJhbmdlCit7CisgICAgcmV0
dXJuIHsgc2VsZi5sb2NhdGlvbiwgc2VsZi5sZW5ndGgsIHNlbGYuZnJhbWVJZGVudGlmaWVyLCBz
ZWxmLm9yZGVyIH07Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLRm91bmRUZXh0UG9z
aXRpb24KIAotKyAoV0tGb3VuZFRleHRQb3NpdGlvbiAqKXRleHRQb3NpdGlvbldpdGhJbmRleDoo
TlNVSW50ZWdlcilpbmRleAorKyAoV0tGb3VuZFRleHRQb3NpdGlvbiAqKXRleHRQb3NpdGlvbldp
dGhPZmZzZXQ6KE5TVUludGVnZXIpb2Zmc2V0IG9yZGVyOihOU1VJbnRlZ2VyKW9yZGVyCiB7CiAg
ICAgYXV0byBwb3MgPSBhZG9wdE5TKFtbV0tGb3VuZFRleHRQb3NpdGlvbiBhbGxvY10gaW5pdF0p
OwotICAgIFtwb3Mgc2V0SW5kZXg6aW5kZXhdOworICAgIFtwb3Mgc2V0T2Zmc2V0Om9mZnNldF07
CisgICAgW3BvcyBzZXRPcmRlcjpvcmRlcl07CiAgICAgcmV0dXJuIHBvcy5hdXRvcmVsZWFzZSgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IDZhMGVjOGY1MjZiN2ZlZTA3ZmZmZGU1YzMzZDFlN2E5ZWU0NmQ4OWQuLjM3MmQ2YmI4MTBk
OTNmNTAwZjBhM2UxOWY2YzUzYmU4MzUyOTcwN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05MSw2ICs5MSw4IEBACiAjaW5jbHVkZSAiV2Vi
RWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW5jbHVk
ZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisjaW5jbHVkZSAiV2ViRm91bmRUZXh0UmFuZ2UuaCIKKyNp
bmNsdWRlICJXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJGcmFt
ZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRnVs
bFNjcmVlbk1hbmFnZXIuaCIKQEAgLTUwOSw2ICs1MTEsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRl
cnMpCiAgICAgLCBtX3Jlc291cmNlTG9hZENsaWVudChtYWtlVW5pcXVlPEFQSTo6SW5qZWN0ZWRC
dW5kbGU6OlJlc291cmNlTG9hZENsaWVudD4oKSkKICAgICAsIG1fdWlDbGllbnQobWFrZVVuaXF1
ZTxBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdlVUlDbGllbnQ+KCkpCiAgICAgLCBtX2ZpbmRDb250
cm9sbGVyKG1ha2VVbmlxdWVSZWY8RmluZENvbnRyb2xsZXI+KHRoaXMpKQorICAgICwgbV9mb3Vu
ZFRleHRSYW5nZUNvbnRyb2xsZXIobWFrZVVuaXF1ZVJlZjxXZWJGb3VuZFRleHRSYW5nZUNvbnRy
b2xsZXI+KHRoaXMpKQogICAgICwgbV9pbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyKG1ha2VVbmlx
dWU8V2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI+KCp0aGlzKSkKICAgICAsIG1fdXNl
ckNvbnRlbnRDb250cm9sbGVyKFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6Z2V0T3JDcmVhdGUo
cGFyYW1ldGVycy51c2VyQ29udGVudENvbnRyb2xsZXJQYXJhbWV0ZXJzLmlkZW50aWZpZXIpKQog
I2lmIEVOQUJMRShHRU9MT0NBVElPTikKQEAgLTQ2OTIsNiArNDY5NSwzNiBAQCB2b2lkIFdlYlBh
Z2U6OmhpZGVGaW5kSW5kaWNhdG9yKCkKICAgICBmaW5kQ29udHJvbGxlcigpLmhpZGVGaW5kSW5k
aWNhdG9yKCk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6ZmluZFRleHRSYW5nZXNGb3JTdHJpbmdNYXRj
aGVzKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBPcHRpb25TZXQ8RmluZE9wdGlvbnM+IG9wdGlvbnMs
IHVpbnQzMl90IG1heE1hdGNoQ291bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdl
YkZvdW5kVGV4dFJhbmdlPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBmb3VuZFRl
eHRSYW5nZUNvbnRyb2xsZXIoKS5maW5kVGV4dFJhbmdlc0ZvclN0cmluZ01hdGNoZXMoc3RyaW5n
LCBvcHRpb25zLCBtYXhNYXRjaENvdW50LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9
CisKK3ZvaWQgV2ViUGFnZTo6ZGVjb3JhdGVUZXh0UmFuZ2VXaXRoU3R5bGUoY29uc3QgV2ViRm91
bmRUZXh0UmFuZ2UmIHJhbmdlLCBXZWJLaXQ6OkZpbmREZWNvcmF0aW9uU3R5bGUgc3R5bGUpCit7
CisgICAgZm91bmRUZXh0UmFuZ2VDb250cm9sbGVyKCkuZGVjb3JhdGVUZXh0UmFuZ2VXaXRoU3R5
bGUocmFuZ2UsIHN0eWxlKTsKK30KKwordm9pZCBXZWJQYWdlOjpzY3JvbGxUZXh0UmFuZ2VUb1Zp
c2libGUoY29uc3QgV2ViRm91bmRUZXh0UmFuZ2UmIHJhbmdlKQoreworICAgIGZvdW5kVGV4dFJh
bmdlQ29udHJvbGxlcigpLnNjcm9sbFRleHRSYW5nZVRvVmlzaWJsZShyYW5nZSk7Cit9CisKK3Zv
aWQgV2ViUGFnZTo6Y2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRleHQoKQoreworICAgIGZvdW5kVGV4
dFJhbmdlQ29udHJvbGxlcigpLmNsZWFyQWxsRGVjb3JhdGVkRm91bmRUZXh0KCk7Cit9CisKK3Zv
aWQgV2ViUGFnZTo6ZGlkQmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9uKCkKK3sKKyAgICBmb3VuZFRl
eHRSYW5nZUNvbnRyb2xsZXIoKS5kaWRCZWdpblRleHRTZWFyY2hPcGVyYXRpb24oKTsKK30KKwor
dm9pZCBXZWJQYWdlOjpkaWRFbmRUZXh0U2VhcmNoT3BlcmF0aW9uKCkKK3sKKyAgICBmb3VuZFRl
eHRSYW5nZUNvbnRyb2xsZXIoKS5kaWRFbmRUZXh0U2VhcmNoT3BlcmF0aW9uKCk7Cit9CisKIHZv
aWQgV2ViUGFnZTo6Z2V0SW1hZ2VGb3JGaW5kTWF0Y2godWludDMyX3QgbWF0Y2hJbmRleCkKIHsK
ICAgICBmaW5kQ29udHJvbGxlcigpLmdldEltYWdlRm9yRmluZE1hdGNoKG1hdGNoSW5kZXgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDAyOTIwNzRl
ZmRlMmQ3ZGRiNmIwNmFiMmQ1YjFjYzFiOGM4NWQzNjUuLjNjN2MyOGM1OWU1OTk4ZjBhYjczODkz
N2NhMDFiMDY5NWUwMzlhZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKQEAgLTI5Niw2ICsyOTYsNyBAQCBjbGFzcyBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXI7CiBjbGFzcyBXZWJEYXRlVGltZUNob29zZXI7CiBjbGFzcyBXZWJEb2N1bWVudExvYWRl
cjsKIGNsYXNzIFdlYkV2ZW50OworY2xhc3MgV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyOwog
Y2xhc3MgUGxheWJhY2tTZXNzaW9uTWFuYWdlcjsKIGNsYXNzIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI7CiBjbGFzcyBXZWJGcmFtZTsKQEAgLTMyMyw2ICszMjQsNyBAQCBjbGFzcyBXZWJXaGVlbEV2
ZW50OwogY2xhc3MgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247CiAKIGVudW0gY2xhc3MgRmlu
ZE9wdGlvbnMgOiB1aW50MTZfdDsKK2VudW0gY2xhc3MgRmluZERlY29yYXRpb25TdHlsZSA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIERyYWdDb250cm9sbGVyQWN0aW9uIDogdWludDhfdDsKIGVudW0g
Y2xhc3MgVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0IDogdWludDhfdDsKIGVudW0gY2xhc3Mg
U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlIDogdWludDhfdDsKQEAgLTM0Myw2ICszNDUsNyBA
QCBzdHJ1Y3QgVGV4dElucHV0Q29udGV4dDsKIHN0cnVjdCBVc2VyTWVzc2FnZTsKIHN0cnVjdCBX
ZWJBdXRvY29ycmVjdGlvbkRhdGE7CiBzdHJ1Y3QgV2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0Owor
c3RydWN0IFdlYkZvdW5kVGV4dFJhbmdlOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnM7CiBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsKIHN0cnVjdCBXZWJzaXRlUG9saWNpZXNE
YXRhOwpAQCAtNzA1LDYgKzcwOCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgV2ViRXZl
bnQqIGN1cnJlbnRFdmVudCgpOwogCiAgICAgRmluZENvbnRyb2xsZXImIGZpbmRDb250cm9sbGVy
KCkgeyByZXR1cm4gbV9maW5kQ29udHJvbGxlci5nZXQoKTsgfQorICAgIFdlYkZvdW5kVGV4dFJh
bmdlQ29udHJvbGxlciYgZm91bmRUZXh0UmFuZ2VDb250cm9sbGVyKCkgeyByZXR1cm4gbV9mb3Vu
ZFRleHRSYW5nZUNvbnRyb2xsZXIuZ2V0KCk7IH0KIAogI2lmIEVOQUJMRShHRU9MT0NBVElPTikK
ICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYgZ2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmdldCgpOyB9CkBAIC0xNzU1LDYgKzE3NTksMTMgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGZpbmRSZWN0c0ZvclN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiwgT3B0aW9uU2V0
PEZpbmRPcHRpb25zPiwgdWludDMyX3QgbWF4TWF0Y2hDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChWZWN0b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiYmKT4mJik7CiAgICAgdm9pZCBoaWRlRmlu
ZEluZGljYXRvcigpOwogCisgICAgdm9pZCBmaW5kVGV4dFJhbmdlc0ZvclN0cmluZ01hdGNoZXMo
Y29uc3QgU3RyaW5nJiwgT3B0aW9uU2V0PEZpbmRPcHRpb25zPiwgdWludDMyX3QgbWF4TWF0Y2hD
b3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViRm91bmRUZXh0UmFuZ2U+JiYp
PiYmKTsKKyAgICB2b2lkIGRlY29yYXRlVGV4dFJhbmdlV2l0aFN0eWxlKGNvbnN0IFdlYkZvdW5k
VGV4dFJhbmdlJiwgV2ViS2l0OjpGaW5kRGVjb3JhdGlvblN0eWxlKTsKKyAgICB2b2lkIHNjcm9s
bFRleHRSYW5nZVRvVmlzaWJsZShjb25zdCBXZWJGb3VuZFRleHRSYW5nZSYpOworICAgIHZvaWQg
Y2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRleHQoKTsKKyAgICB2b2lkIGRpZEJlZ2luVGV4dFNlYXJj
aE9wZXJhdGlvbigpOworICAgIHZvaWQgZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbigpOworCiAj
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIHZvaWQgc2VuZFZpZXdwb3J0QXR0cmli
dXRlc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmKTsKICNlbmRpZgpA
QCAtMjA2MCw2ICsyMDcxLDggQEAgcHJpdmF0ZToKIAogICAgIFVuaXF1ZVJlZjxGaW5kQ29udHJv
bGxlcj4gbV9maW5kQ29udHJvbGxlcjsKIAorICAgIFVuaXF1ZVJlZjxXZWJGb3VuZFRleHRSYW5n
ZUNvbnRyb2xsZXI+IG1fZm91bmRUZXh0UmFuZ2VDb250cm9sbGVyOworCiAgICAgUmVmUHRyPFdl
Ykluc3BlY3Rvcj4gbV9pbnNwZWN0b3I7CiAgICAgUmVmUHRyPFdlYkluc3BlY3RvclVJPiBtX2lu
c3BlY3RvclVJOwogICAgIFJlZlB0cjxSZW1vdGVXZWJJbnNwZWN0b3JVST4gbV9yZW1vdGVJbnNw
ZWN0b3JVSTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCmluZGV4IDZmOTFhMmE3NzQxNjZjZDJiODg2ZGZlYmI0YmJhOGY1MWZl
ZjhmM2QuLjFhZGExYjMzMzMxMjMyNmZmOWYzMzhkNjZjZDVjNWVjYzEwYjMzZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgpAQCAtMzExLDYgKzMxMSwxMyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVu
dW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogCiAgICAgRmlu
ZFJlY3RzRm9yU3RyaW5nTWF0Y2hlcyhTdHJpbmcgc3RyaW5nLCBPcHRpb25TZXQ8V2ViS2l0OjpG
aW5kT3B0aW9ucz4gZmluZE9wdGlvbnMsIHVuc2lnbmVkIG1heE1hdGNoQ291bnQpIC0+IChWZWN0
b3I8V2ViQ29yZTo6RmxvYXRSZWN0PiBtYXRjaGVzKSBBc3luYwogICAgIEhpZGVGaW5kSW5kaWNh
dG9yKCkKKworICAgIEZpbmRUZXh0UmFuZ2VzRm9yU3RyaW5nTWF0Y2hlcyhTdHJpbmcgc3RyaW5n
LCBPcHRpb25TZXQ8V2ViS2l0OjpGaW5kT3B0aW9ucz4gZmluZE9wdGlvbnMsIHVuc2lnbmVkIG1h
eE1hdGNoQ291bnQpIC0+IChWZWN0b3I8V2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZT4gcmFuZ2Vz
KSBBc3luYworICAgIERlY29yYXRlVGV4dFJhbmdlV2l0aFN0eWxlKHN0cnVjdCBXZWJLaXQ6Oldl
YkZvdW5kVGV4dFJhbmdlIHJhbmdlLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpGaW5kRGVjb3JhdGlv
blN0eWxlIHN0eWxlKQorICAgIFNjcm9sbFRleHRSYW5nZVRvVmlzaWJsZShzdHJ1Y3QgV2ViS2l0
OjpXZWJGb3VuZFRleHRSYW5nZSByYW5nZSkKKyAgICBDbGVhckFsbERlY29yYXRlZEZvdW5kVGV4
dCgpOworICAgIERpZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbigpOworICAgIERpZEVuZFRleHRT
ZWFyY2hPcGVyYXRpb24oKTsKICAgICAKICAgICBBZGRNSU1FVHlwZVdpdGhDdXN0b21Db250ZW50
UHJvdmlkZXIoU3RyaW5nIG1pbWVUeXBlKQogCg==
</data>
<flag name="commit-queue"
          id="476504"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450180</attachid>
            <date>2022-01-27 14:32:14 -0800</date>
            <delta_ts>2022-01-27 23:40:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235693-20220127143212.patch</filename>
            <type>text/plain</type>
            <size>20777</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc3MmI1ZWI4NDkyOWZjN2Zl
YzI4ZGE3MWY5ZTg1ODhjMjAyNDY5MTguLjJmNDVjNWE1NmVkZWQwOTU0ZDEyNWRhYThlY2MyMTFi
NWU1MjQxYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMjItMDEtMjcgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIE1pZ3JhdGUgX1VJVGV4dFNl
YXJjaGluZyBpbXBsZW1lbnRhdGlvbiB0byBiZSBiYWNrZWQgYnkgV2ViRm91bmRUZXh0UmFuZ2VD
b250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzU2OTMKKyAgICAgICAgcmRhcjovLzg4MTE3MzAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWlncmF0ZSBfVUlUZXh0U2VhcmNoaW5nIGltcGxl
bWVudGF0aW9uIHRvIGJlIGJhY2tlZCBieQorICAgICAgICBXZWJGb3VuZFRleHRSYW5nZUNvbnRy
b2xsZXIgdG8gc3VwcG9ydCByZXN0b3JlYWJsZSBmaW5kIHJlc3VsdHMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmlldyBz
Y3JvbGxSYW5nZVRvVmlzaWJsZTppbkRvY3VtZW50Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
ZGlkQmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9uXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBkaWRF
bmRUZXh0U2VhcmNoT3BlcmF0aW9uXSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZmluZFRleHRSYW5nZXNGb3JT
dHJpbmdNYXRjaGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNvcmF0ZVRl
eHRSYW5nZVdpdGhTdHlsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2Nyb2xs
VGV4dFJhbmdlVG9WaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjbGVh
ckFsbERlY29yYXRlZEZvdW5kVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
ZGlkQmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRFbmRUZXh0U2VhcmNoT3BlcmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgb2Zmc2V0RnJvbVBvc2l0aW9uOnRv
UG9zaXRpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcGVyZm9ybVRleHRTZWFyY2hX
aXRoUXVlcnlTdHJpbmc6dXNpbmdPcHRpb25zOnJlc3VsdEFnZ3JlZ2F0b3I6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgZGVjb3JhdGVGb3VuZFRleHRSYW5nZTppbkRvY3VtZW50OnVzaW5n
U3R5bGU6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2Nyb2xsUmFuZ2VUb1Zpc2libGU6
aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhckFsbERlY29yYXRl
ZEZvdW5kVGV4dF0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRpZEJlZ2luVGV4dFNlYXJj
aE9wZXJhdGlvbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRpZEVuZFRleHRTZWFyY2hP
cGVyYXRpb25dKToKKyAgICAgICAgKCtbV0tGb3VuZFRleHRSYW5nZSBmb3VuZFRleHRSYW5nZVdp
dGhXZWJGb3VuZFRleHRSYW5nZTpdKToKKyAgICAgICAgKC1bV0tGb3VuZFRleHRSYW5nZSBzdGFy
dF0pOgorICAgICAgICAoLVtXS0ZvdW5kVGV4dFJhbmdlIGVuZF0pOgorICAgICAgICAoLVtXS0Zv
dW5kVGV4dFJhbmdlIHdlYkZvdW5kVGV4dFJhbmdlXSk6CisgICAgICAgICgrW1dLRm91bmRUZXh0
UG9zaXRpb24gdGV4dFBvc2l0aW9uV2l0aE9mZnNldDpvcmRlcjpdKToKKyAgICAgICAgKCtbV0tG
b3VuZFRleHRSYW5nZSBmb3VuZFRleHRSYW5nZVdpdGhSZWN0OmluZGV4Ol0pOiBEZWxldGVkLgor
ICAgICAgICAoK1tXS0ZvdW5kVGV4dFBvc2l0aW9uIHRleHRQb3NpdGlvbldpdGhJbmRleDpdKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmZpbmRUZXh0UmFuZ2VzRm9yU3RyaW5nTWF0Y2hlcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRlY29yYXRlVGV4dFJhbmdlV2l0aFN0eWxlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2Nyb2xsVGV4dFJhbmdlVG9WaXNpYmxlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6Y2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRleHQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRCZWdpblRleHRTZWFyY2hPcGVyYXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRFbmRUZXh0U2VhcmNoT3BlcmF0aW9uKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
Ojpmb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIyLTAxLTI3ICBBZGl0eWEgS2VlcnRoaSAgPGFr
ZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgV2ViRm91bmRUZXh0UmFuZ2Ug
YW5kIFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlciB0byBzdXBwb3J0IHJlc3RvcmFibGUgZmlu
ZCByZXN1bHRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dL
V2ViVmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3
SU9TLm1tCmluZGV4IDhmNTk4M2EyOWZiNmZhNjg5NWNjOTZhNzJmZGRhNGRlNjJlYTU3OGUuLjJm
NDQ5MDZkNDdiYTNmMzZmZWY5ZjQ1OWIyNzJkYjhlYTY2MmIwMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCkBAIC0zNTMzLDExICszNTMz
LDI2IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB2
aWV3cG9ydEFyZ3VtZW50c0Zyb21EaWN0aW9uYXJ5CiAgICAgW19jb250ZW50VmlldyBkZWNvcmF0
ZUZvdW5kVGV4dFJhbmdlOnJhbmdlIGluRG9jdW1lbnQ6ZG9jdW1lbnQgdXNpbmdTdHlsZTpzdHls
ZV07CiB9CiAKKy0gKHZvaWQpc2Nyb2xsUmFuZ2VUb1Zpc2libGU6KFVJVGV4dFJhbmdlICopcmFu
Z2UgaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAor
eworICAgIFtfY29udGVudFZpZXcgc2Nyb2xsUmFuZ2VUb1Zpc2libGU6cmFuZ2UgaW5Eb2N1bWVu
dDpkb2N1bWVudF07Cit9CisKIC0gKHZvaWQpY2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRleHQKIHsK
ICAgICBbX2NvbnRlbnRWaWV3IGNsZWFyQWxsRGVjb3JhdGVkRm91bmRUZXh0XTsKIH0KIAorLSAo
dm9pZClkaWRCZWdpblRleHRTZWFyY2hPcGVyYXRpb24KK3sKKyAgICBbX2NvbnRlbnRWaWV3IGRp
ZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbl07Cit9CisKKy0gKHZvaWQpZGlkRW5kVGV4dFNlYXJj
aE9wZXJhdGlvbgoreworICAgIFtfY29udGVudFZpZXcgZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlv
bl07Cit9CisKICNlbmRpZiAvLyBIQVZFKFVJRklORElOVEVSQUNUSU9OKQogCiBAZW5kIC8vIFdL
V2ViVmlldyAoV0tQcml2YXRlSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggZjRiMzEwZmFjYjdkMTA0NWY0M2JiNTZmZGYwMzIzM2E2ZGU3YjY3Ny4uYTBi
ZDQwNmY3ZWJjMmViYTlkODM0MWFlZGZkOWU0MDlkZGVkN2EyMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMDgsNiArMTA4LDcgQEAKICNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFZGl0Q29tbWFuZFByb3h5Lmgi
CiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCisjaW5jbHVkZSAiV2ViRm91bmRUZXh0
UmFuZ2UuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lUG9saWN5
TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIK
QEAgLTQyODAsNiArNDI4MSwzNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZmluZFJlY3RzRm9yU3Ry
aW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmIHN0cmluZywgT3B0aW9uU2V0PFdlYgogICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6RmluZFJlY3RzRm9yU3RyaW5nTWF0Y2hl
cyhzdHJpbmcsIG9wdGlvbnMsIG1heE1hdGNoQ291bnQpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rp
b24pKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmZpbmRUZXh0UmFuZ2VzRm9yU3RyaW5nTWF0
Y2hlcyhjb25zdCBTdHJpbmcmIHN0cmluZywgT3B0aW9uU2V0PEZpbmRPcHRpb25zPiBvcHRpb25z
LCB1bnNpZ25lZCBtYXhNYXRjaENvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxX
ZWJGb3VuZFRleHRSYW5nZT4mJik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3sKKyAgICBzZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OkZpbmRUZXh0UmFuZ2VzRm9yU3RyaW5nTWF0
Y2hlcyhzdHJpbmcsIG9wdGlvbnMsIG1heE1hdGNoQ291bnQpLCBXVEZNb3ZlKGNhbGxiYWNrRnVu
Y3Rpb24pKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRlY29yYXRlVGV4dFJhbmdlV2l0aFN0
eWxlKGNvbnN0IFdlYkZvdW5kVGV4dFJhbmdlJiByYW5nZSwgRmluZERlY29yYXRpb25TdHlsZSBz
dHlsZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEZWNvcmF0ZVRleHRSYW5nZVdp
dGhTdHlsZShyYW5nZSwgc3R5bGUpKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNjcm9sbFRl
eHRSYW5nZVRvVmlzaWJsZShjb25zdCBXZWJGb3VuZFRleHRSYW5nZSYgcmFuZ2UpCit7CisgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2Nyb2xsVGV4dFJhbmdlVG9WaXNpYmxlKHJhbmdlKSk7
Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpjbGVhckFsbERlY29yYXRlZEZvdW5kVGV4dCgpCit7
CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRleHQo
KSk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRCZWdpblRleHRTZWFyY2hPcGVyYXRpb24o
KQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZEJlZ2luVGV4dFNlYXJjaE9wZXJh
dGlvbigpKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRpZEVuZFRleHRTZWFyY2hPcGVyYXRp
b24oKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZEVuZFRleHRTZWFyY2hPcGVy
YXRpb24oKSk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRJbWFnZUZvckZpbmRNYXRjaChp
bnQzMl90IG1hdGNoSW5kZXgpCiB7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0SW1h
Z2VGb3JGaW5kTWF0Y2gobWF0Y2hJbmRleCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCA4YzY1OTlkYTk3NTFlMjgzYTM3NTA4Zjk5MGI1ZTVlOWM3ZWQxNjM2Li4z
NGFiN2NlMTNlMzhmZGJiOTdhMWY5NjBlZWQ4ZjhkZjYxZjdiYzc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDEwLDYgKzQxMCw3IEBAIHN0cnVjdCBVUkxTY2hl
bWVUYXNrUGFyYW1ldGVyczsKIHN0cnVjdCBVc2VyTWVzc2FnZTsKIHN0cnVjdCBXZWJBdXRvY29y
cmVjdGlvbkRhdGE7CiBzdHJ1Y3QgV2ViQmFja0ZvcndhcmRMaXN0Q291bnRzOworc3RydWN0IFdl
YkZvdW5kVGV4dFJhbmdlOwogc3RydWN0IFdlYkhpdFRlc3RSZXN1bHREYXRhOwogc3RydWN0IFdl
Yk5hdmlnYXRpb25EYXRhU3RvcmU7CiBzdHJ1Y3QgV2ViUG9wdXBJdGVtOwpAQCAtMTIwOCw2ICsx
MjA5LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZhaWxUb0ZpbmRTdHJpbmcoY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCBkaWRGaW5kU3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBjb25z
dCBWZWN0b3I8VmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+PiYgbWF0Y2hSZWN0cywgaW50MzJfdCBm
aXJzdEluZGV4QWZ0ZXJTZWxlY3Rpb24pOwogCisgICAgdm9pZCBmaW5kVGV4dFJhbmdlc0ZvclN0
cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiwgT3B0aW9uU2V0PEZpbmRPcHRpb25zPiwgdW5zaWdu
ZWQgbWF4TWF0Y2hDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViRm91bmRU
ZXh0UmFuZ2U+JiYpPiYmKTsKKyAgICB2b2lkIGRlY29yYXRlVGV4dFJhbmdlV2l0aFN0eWxlKGNv
bnN0IFdlYkZvdW5kVGV4dFJhbmdlJiwgRmluZERlY29yYXRpb25TdHlsZSk7CisgICAgdm9pZCBz
Y3JvbGxUZXh0UmFuZ2VUb1Zpc2libGUoY29uc3QgV2ViRm91bmRUZXh0UmFuZ2UmKTsKKyAgICB2
b2lkIGNsZWFyQWxsRGVjb3JhdGVkRm91bmRUZXh0KCk7CisgICAgdm9pZCBkaWRCZWdpblRleHRT
ZWFyY2hPcGVyYXRpb24oKTsKKyAgICB2b2lkIGRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24oKTsK
KwogICAgIHZvaWQgZ2V0Q29udGVudHNBc1N0cmluZyhDb250ZW50QXNTdHJpbmdJbmNsdWRlc0No
aWxkRnJhbWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmKTsKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIGdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5n
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6QXR0cmlidXRlZFN0cmluZyYp
PiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDY2YzhhNjVhNmUzNmJjNDQ5MzYyMGVjZDQ1MDRlZmY2
MTA0OTEwYWQuLmUwYWIwN2ZjMzYzMzg0M2I5ZmMxYTBlNmRmZWQzZDNhMTVjYjQ0MGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQpAQCAtODMsNiArODMsNyBAQAogI2ltcG9ydCAiV2ViQXV0b2NvcnJlY3Rpb25E
YXRhLmgiCiAjaW1wb3J0ICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MuaCIKICNp
bXBvcnQgIldlYkV2ZW50LmgiCisjaW1wb3J0ICJXZWJGb3VuZFRleHRSYW5nZS5oIgogI2ltcG9y
dCAiV2ViSU9TRXZlbnRGYWN0b3J5LmgiCiAjaW1wb3J0ICJXZWJQYWdlTWVzc2FnZXMuaCIKICNp
bXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCkBAIC00MDUsMTggKzQwNiwyMyBAQCBjb25z
dGV4cHIgZG91YmxlIGZhc3RlclRhcFNpZ25pZmljYW50Wm9vbVRocmVzaG9sZCA9IDAuODsKIAog
QGludGVyZmFjZSBXS0ZvdW5kVGV4dFJhbmdlIDogVUlUZXh0UmFuZ2UKIAotQHByb3BlcnR5IChu
b25hdG9taWMpIENHUmVjdCByZWN0OwotQHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIg
aW5kZXg7CitAcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdlciBsb2NhdGlvbjsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIGxlbmd0aDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSBOU1N0cmluZyAqZnJhbWVJZGVudGlmaWVyOworQHByb3BlcnR5IChub25hdG9taWMp
IE5TVUludGVnZXIgb3JkZXI7CiAKLSsgKFdLRm91bmRUZXh0UmFuZ2UgKilmb3VuZFRleHRSYW5n
ZVdpdGhSZWN0OihDR1JlY3QpcmVjdCBpbmRleDooTlNVSW50ZWdlcilpbmRleDsKKysgKFdLRm91
bmRUZXh0UmFuZ2UgKilmb3VuZFRleHRSYW5nZVdpdGhXZWJGb3VuZFRleHRSYW5nZTooV2ViS2l0
OjpXZWJGb3VuZFRleHRSYW5nZSlyYW5nZTsKKworLSAoV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5n
ZSl3ZWJGb3VuZFRleHRSYW5nZTsKIAogQGVuZAogCiBAaW50ZXJmYWNlIFdLRm91bmRUZXh0UG9z
aXRpb24gOiBVSVRleHRQb3NpdGlvbgogCi1AcHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdl
ciBpbmRleDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIG9mZnNldDsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIG9yZGVyOwogCi0rIChXS0ZvdW5kVGV4dFBvc2l0
aW9uICopdGV4dFBvc2l0aW9uV2l0aEluZGV4OihOU1VJbnRlZ2VyKWluZGV4OworKyAoV0tGb3Vu
ZFRleHRQb3NpdGlvbiAqKXRleHRQb3NpdGlvbldpdGhPZmZzZXQ6KE5TVUludGVnZXIpb2Zmc2V0
IG9yZGVyOihOU1VJbnRlZ2VyKW9yZGVyOwogCiBAZW5kCiAKQEAgLTUyOTgsMTEgKzUzMDQsMTkg
QEAgc3RhdGljIFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvbkhpZ2hsaWdodD4gY29tcG9zaXRp
b25IaWdobGlnaHRzKE5TQXR0cmlidXRlZFMKICAgICByZXR1cm4gTlNPcmRlcmVkU2FtZTsKIH0K
IAotLSAoTlNJbnRlZ2VyKW9mZnNldEZyb21Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24gKilmcm9t
IHRvUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopdG9Qb3NpdGlvbgorLSAoTlNJbnRlZ2VyKW9m
ZnNldEZyb21Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24gKilmcm9tIHRvUG9zaXRpb246KFVJVGV4
dFBvc2l0aW9uICopdG8KIHsKICNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQotICAgIGlmIChb
ZnJvbSBpc0tpbmRPZkNsYXNzOltXS0ZvdW5kVGV4dFBvc2l0aW9uIGNsYXNzXV0gJiYgW3RvUG9z
aXRpb24gaXNLaW5kT2ZDbGFzczpbV0tGb3VuZFRleHRQb3NpdGlvbiBjbGFzc11dKQotICAgICAg
ICByZXR1cm4gKChXS0ZvdW5kVGV4dFBvc2l0aW9uICopZnJvbSkuaW5kZXggLSAoKFdLRm91bmRU
ZXh0UG9zaXRpb24gKil0b1Bvc2l0aW9uKS5pbmRleDsKKyAgICBpZiAoW2Zyb20gaXNLaW5kT2ZD
bGFzczpbV0tGb3VuZFRleHRQb3NpdGlvbiBjbGFzc11dICYmIFt0byBpc0tpbmRPZkNsYXNzOltX
S0ZvdW5kVGV4dFBvc2l0aW9uIGNsYXNzXV0pIHsKKyAgICAgICAgV0tGb3VuZFRleHRQb3NpdGlv
biAqZnJvbVBvc2l0aW9uID0gKFdLRm91bmRUZXh0UG9zaXRpb24gKilmcm9tOworICAgICAgICBX
S0ZvdW5kVGV4dFBvc2l0aW9uICp0b1Bvc2l0aW9uID0gKFdLRm91bmRUZXh0UG9zaXRpb24gKil0
bzsKKworICAgICAgICBpZiAoZnJvbVBvc2l0aW9uLm9yZGVyID09IHRvUG9zaXRpb24ub3JkZXIp
CisgICAgICAgICAgICByZXR1cm4gZnJvbVBvc2l0aW9uLm9mZnNldCAtIHRvUG9zaXRpb24ub2Zm
c2V0OworCisgICAgICAgIHJldHVybiBmcm9tUG9zaXRpb24ub3JkZXIgLSB0b1Bvc2l0aW9uLm9y
ZGVyOworICAgIH0KKwogI2VuZGlmCiAKICAgICByZXR1cm4gMDsKQEAgLTEwMDY3LDEyICsxMDA4
MSwxMCBAQCBzdGF0aWMgUmV0YWluUHRyPE5TSXRlbVByb3ZpZGVyPiBjcmVhdGVJdGVtUHJvdmlk
ZXIoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmCiAgICAgaWYgKG9wdGlvbnMuc3RyaW5nQ29t
cGFyZU9wdGlvbnMgJiBOU0Nhc2VJbnNlbnNpdGl2ZVNlYXJjaCkKICAgICAgICAgZmluZE9wdGlv
bnMuYWRkKFdlYktpdDo6RmluZE9wdGlvbnM6OkNhc2VJbnNlbnNpdGl2ZSk7CiAKLSAgICBfcGFn
ZS0+ZmluZFJlY3RzRm9yU3RyaW5nTWF0Y2hlcyhzdHJpbmcsIGZpbmRPcHRpb25zLCAxMDAwLCBb
c3RyaW5nLCBhZ2dyZWdhdG9yID0gcmV0YWluUHRyKGFnZ3JlZ2F0b3IpXShjb25zdCBWZWN0b3I8
V2ViQ29yZTo6RmxvYXRSZWN0PiYgcmVjdHMpIHsKLSAgICAgICAgTlNVSW50ZWdlciBpbmRleCA9
IDA7Ci0gICAgICAgIGZvciAoYXV0byYgcmVjdCA6IHJlY3RzKSB7Ci0gICAgICAgICAgICBXS0Zv
dW5kVGV4dFJhbmdlICpyYW5nZSA9IFtXS0ZvdW5kVGV4dFJhbmdlIGZvdW5kVGV4dFJhbmdlV2l0
aFJlY3Q6cmVjdCBpbmRleDppbmRleF07Ci0gICAgICAgICAgICBbYWdncmVnYXRvciBmb3VuZFJh
bmdlOnJhbmdlIGZvclNlYXJjaFN0cmluZzpzdHJpbmcgaW5Eb2N1bWVudDpuaWxdOwotICAgICAg
ICAgICAgaW5kZXgrKzsKKyAgICBfcGFnZS0+ZmluZFRleHRSYW5nZXNGb3JTdHJpbmdNYXRjaGVz
KHN0cmluZywgZmluZE9wdGlvbnMsIDEwMDAsIFtzdHJpbmcsIGFnZ3JlZ2F0b3IgPSByZXRhaW5Q
dHIoYWdncmVnYXRvcildKGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlPiBy
YW5nZXMpIHsKKyAgICAgICAgZm9yIChhdXRvJiByYW5nZSA6IHJhbmdlcykgeworICAgICAgICAg
ICAgV0tGb3VuZFRleHRSYW5nZSAqdGV4dFJhbmdlID0gW1dLRm91bmRUZXh0UmFuZ2UgZm91bmRU
ZXh0UmFuZ2VXaXRoV2ViRm91bmRUZXh0UmFuZ2U6cmFuZ2VdOworICAgICAgICAgICAgW2FnZ3Jl
Z2F0b3IgZm91bmRSYW5nZTp0ZXh0UmFuZ2UgZm9yU2VhcmNoU3RyaW5nOnN0cmluZyBpbkRvY3Vt
ZW50Om5pbF07CiAgICAgICAgIH0KIAogICAgICAgICBbYWdncmVnYXRvciBmaW5pc2hlZFNlYXJj
aGluZ107CkBAIC0xMDA4NCwxOCArMTAwOTYsMzggQEAgc3RhdGljIFJldGFpblB0cjxOU0l0ZW1Q
cm92aWRlcj4gY3JlYXRlSXRlbVByb3ZpZGVyKGNvbnN0IFdlYktpdDo6V2ViUGFnZVByb3h5Jgog
ICAgIGlmICghW3JhbmdlIGlzS2luZE9mQ2xhc3M6W1dLRm91bmRUZXh0UmFuZ2UgY2xhc3NdXSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKHN0eWxlID09IF9VSUZvdW5kVGV4dFN0eWxlSGln
aGxpZ2h0ZWQpIHsKLSAgICAgICAgX2ZvdW5kSGlnaGxpZ2h0ZWRUZXh0UmFuZ2UgPSByYW5nZTsK
LSAgICAgICAgV0tGb3VuZFRleHRSYW5nZSAqZm91bmRSYW5nZSA9IChXS0ZvdW5kVGV4dFJhbmdl
ICopcmFuZ2U7Ci0gICAgICAgIF9wYWdlLT5pbmRpY2F0ZUZpbmRNYXRjaChmb3VuZFJhbmdlLmlu
ZGV4KTsKLSAgICB9IGVsc2UgaWYgKHN0eWxlID09IF9VSUZvdW5kVGV4dFN0eWxlRm91bmQgJiYg
X2ZvdW5kSGlnaGxpZ2h0ZWRUZXh0UmFuZ2UgPT0gcmFuZ2UpCi0gICAgICAgIF9wYWdlLT5oaWRl
RmluZEluZGljYXRvcigpOworICAgIGF1dG8gZGVjb3JhdGlvblN0eWxlID0gV2ViS2l0OjpGaW5k
RGVjb3JhdGlvblN0eWxlOjpOb3JtYWw7CisgICAgaWYgKHN0eWxlID09IF9VSUZvdW5kVGV4dFN0
eWxlRm91bmQpCisgICAgICAgIGRlY29yYXRpb25TdHlsZSA9IFdlYktpdDo6RmluZERlY29yYXRp
b25TdHlsZTo6Rm91bmQ7CisgICAgZWxzZSBpZiAoc3R5bGUgPT0gX1VJRm91bmRUZXh0U3R5bGVI
aWdobGlnaHRlZCkKKyAgICAgICAgZGVjb3JhdGlvblN0eWxlID0gV2ViS2l0OjpGaW5kRGVjb3Jh
dGlvblN0eWxlOjpIaWdobGlnaHRlZDsKKworICAgIFdLRm91bmRUZXh0UmFuZ2UgKmZvdW5kVGV4
dFJhbmdlID0gKFdLRm91bmRUZXh0UmFuZ2UgKilyYW5nZTsKKyAgICBfcGFnZS0+ZGVjb3JhdGVU
ZXh0UmFuZ2VXaXRoU3R5bGUoW2ZvdW5kVGV4dFJhbmdlIHdlYkZvdW5kVGV4dFJhbmdlXSwgZGVj
b3JhdGlvblN0eWxlKTsKK30KKworLSAodm9pZClzY3JvbGxSYW5nZVRvVmlzaWJsZTooVUlUZXh0
UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVy
KWRvY3VtZW50Cit7CisgICAgaWYgKCFbcmFuZ2UgaXNLaW5kT2ZDbGFzczpbV0tGb3VuZFRleHRS
YW5nZSBjbGFzc11dKQorICAgICAgICByZXR1cm47CisKKyAgICBXS0ZvdW5kVGV4dFJhbmdlICpm
b3VuZFRleHRSYW5nZSA9IChXS0ZvdW5kVGV4dFJhbmdlICopcmFuZ2U7CisgICAgX3BhZ2UtPnNj
cm9sbFRleHRSYW5nZVRvVmlzaWJsZShbZm91bmRUZXh0UmFuZ2Ugd2ViRm91bmRUZXh0UmFuZ2Vd
KTsKIH0KIAogLSAodm9pZCljbGVhckFsbERlY29yYXRlZEZvdW5kVGV4dAogewotICAgIF9mb3Vu
ZEhpZ2hsaWdodGVkVGV4dFJhbmdlID0gbmlsOwotICAgIF9wYWdlLT5oaWRlRmluZFVJKCk7Cisg
ICAgX3BhZ2UtPmNsZWFyQWxsRGVjb3JhdGVkRm91bmRUZXh0KCk7Cit9CisKKy0gKHZvaWQpZGlk
QmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9uCit7CisgICAgX3BhZ2UtPmRpZEJlZ2luVGV4dFNlYXJj
aE9wZXJhdGlvbigpOworfQorCistICh2b2lkKWRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24KK3sK
KyAgICBfcGFnZS0+ZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbigpOwogfQogCiAtIChOU0ludGVn
ZXIpb2Zmc2V0RnJvbVBvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAqKWZyb20gdG9Qb3NpdGlvbjoo
VUlUZXh0UG9zaXRpb24gKil0b1Bvc2l0aW9uIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1
bWVudElkZW50aWZpZXIpZG9jdW1lbnQKQEAgLTExOTcyLDIzICsxMjAwNCwyNyBAQCBzdGF0aWMg
VUlNZW51ICptZW51RnJvbUxlZ2FjeVByZXZpZXdPckRlZmF1bHRBY3Rpb25zKFVJVmlld0NvbnRy
b2xsZXIgKnByZXZpZXdWaQogCiBAaW1wbGVtZW50YXRpb24gV0tGb3VuZFRleHRSYW5nZQogCi0r
IChXS0ZvdW5kVGV4dFJhbmdlICopZm91bmRUZXh0UmFuZ2VXaXRoUmVjdDooQ0dSZWN0KXJlY3Qg
aW5kZXg6KE5TVUludGVnZXIpaW5kZXgKKworKyAoV0tGb3VuZFRleHRSYW5nZSAqKWZvdW5kVGV4
dFJhbmdlV2l0aFdlYkZvdW5kVGV4dFJhbmdlOihXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlKXdl
YlJhbmdlCiB7CiAgICAgYXV0byByYW5nZSA9IGFkb3B0TlMoW1tXS0ZvdW5kVGV4dFJhbmdlIGFs
bG9jXSBpbml0XSk7Ci0gICAgW3JhbmdlIHNldFJlY3Q6cmVjdF07Ci0gICAgW3JhbmdlIHNldElu
ZGV4OmluZGV4XTsKKyAgICBbcmFuZ2Ugc2V0TG9jYXRpb246d2ViUmFuZ2UubG9jYXRpb25dOwor
ICAgIFtyYW5nZSBzZXRMZW5ndGg6d2ViUmFuZ2UubGVuZ3RoXTsKKyAgICBbcmFuZ2Ugc2V0RnJh
bWVJZGVudGlmaWVyOndlYlJhbmdlLmZyYW1lSWRlbnRpZmllcl07CisgICAgW3JhbmdlIHNldE9y
ZGVyOndlYlJhbmdlLm9yZGVyXTsKICAgICByZXR1cm4gcmFuZ2UuYXV0b3JlbGVhc2UoKTsKIH0K
IAogLSAoV0tGb3VuZFRleHRQb3NpdGlvbiAqKXN0YXJ0CiB7Ci0gICAgV0tGb3VuZFRleHRQb3Np
dGlvbiAqcG9zaXRpb24gPSBbV0tGb3VuZFRleHRQb3NpdGlvbiB0ZXh0UG9zaXRpb25XaXRoSW5k
ZXg6c2VsZi5pbmRleF07CisgICAgV0tGb3VuZFRleHRQb3NpdGlvbiAqcG9zaXRpb24gPSBbV0tG
b3VuZFRleHRQb3NpdGlvbiB0ZXh0UG9zaXRpb25XaXRoT2Zmc2V0OnNlbGYubG9jYXRpb24gb3Jk
ZXI6c2VsZi5vcmRlcl07CiAgICAgcmV0dXJuIHBvc2l0aW9uOwogfQogCiAtIChVSVRleHRQb3Np
dGlvbiAqKWVuZAogewotICAgIHJldHVybiBzZWxmLnN0YXJ0OworICAgIFdLRm91bmRUZXh0UG9z
aXRpb24gKnBvc2l0aW9uID0gW1dLRm91bmRUZXh0UG9zaXRpb24gdGV4dFBvc2l0aW9uV2l0aE9m
ZnNldDooc2VsZi5sb2NhdGlvbiArIHNlbGYubGVuZ3RoKSBvcmRlcjpzZWxmLm9yZGVyXTsKKyAg
ICByZXR1cm4gcG9zaXRpb247CiB9CiAKIC0gKEJPT0wpaXNFbXB0eQpAQCAtMTE5OTYsMTQgKzEy
MDMyLDIwIEBAIHN0YXRpYyBVSU1lbnUgKm1lbnVGcm9tTGVnYWN5UHJldmlld09yRGVmYXVsdEFj
dGlvbnMoVUlWaWV3Q29udHJvbGxlciAqcHJldmlld1ZpCiAgICAgcmV0dXJuIE5POwogfQogCist
IChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlKXdlYkZvdW5kVGV4dFJhbmdlCit7CisgICAgcmV0
dXJuIHsgc2VsZi5sb2NhdGlvbiwgc2VsZi5sZW5ndGgsIHNlbGYuZnJhbWVJZGVudGlmaWVyLCBz
ZWxmLm9yZGVyIH07Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLRm91bmRUZXh0UG9z
aXRpb24KIAotKyAoV0tGb3VuZFRleHRQb3NpdGlvbiAqKXRleHRQb3NpdGlvbldpdGhJbmRleDoo
TlNVSW50ZWdlcilpbmRleAorKyAoV0tGb3VuZFRleHRQb3NpdGlvbiAqKXRleHRQb3NpdGlvbldp
dGhPZmZzZXQ6KE5TVUludGVnZXIpb2Zmc2V0IG9yZGVyOihOU1VJbnRlZ2VyKW9yZGVyCiB7CiAg
ICAgYXV0byBwb3MgPSBhZG9wdE5TKFtbV0tGb3VuZFRleHRQb3NpdGlvbiBhbGxvY10gaW5pdF0p
OwotICAgIFtwb3Mgc2V0SW5kZXg6aW5kZXhdOworICAgIFtwb3Mgc2V0T2Zmc2V0Om9mZnNldF07
CisgICAgW3BvcyBzZXRPcmRlcjpvcmRlcl07CiAgICAgcmV0dXJuIHBvcy5hdXRvcmVsZWFzZSgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IDZhMGVjOGY1MjZiN2ZlZTA3ZmZmZGU1YzMzZDFlN2E5ZWU0NmQ4OWQuLjgxYjc0MDYyOTQ0
NDk3M2I0MDc4OTQ5YjM3ZDkzNTg5N2Q3OTk1NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05MSw2ICs5MSw4IEBACiAjaW5jbHVkZSAiV2Vi
RWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW5jbHVk
ZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisjaW5jbHVkZSAiV2ViRm91bmRUZXh0UmFuZ2UuaCIKKyNp
bmNsdWRlICJXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJGcmFt
ZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRnVs
bFNjcmVlbk1hbmFnZXIuaCIKQEAgLTUwOSw2ICs1MTEsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRl
cnMpCiAgICAgLCBtX3Jlc291cmNlTG9hZENsaWVudChtYWtlVW5pcXVlPEFQSTo6SW5qZWN0ZWRC
dW5kbGU6OlJlc291cmNlTG9hZENsaWVudD4oKSkKICAgICAsIG1fdWlDbGllbnQobWFrZVVuaXF1
ZTxBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdlVUlDbGllbnQ+KCkpCiAgICAgLCBtX2ZpbmRDb250
cm9sbGVyKG1ha2VVbmlxdWVSZWY8RmluZENvbnRyb2xsZXI+KHRoaXMpKQorICAgICwgbV9mb3Vu
ZFRleHRSYW5nZUNvbnRyb2xsZXIobWFrZVVuaXF1ZVJlZjxXZWJGb3VuZFRleHRSYW5nZUNvbnRy
b2xsZXI+KCp0aGlzKSkKICAgICAsIG1faW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlcihtYWtlVW5p
cXVlPFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyPigqdGhpcykpCiAgICAgLCBtX3Vz
ZXJDb250ZW50Q29udHJvbGxlcihXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmdldE9yQ3JlYXRl
KHBhcmFtZXRlcnMudXNlckNvbnRlbnRDb250cm9sbGVyUGFyYW1ldGVycy5pZGVudGlmaWVyKSkK
ICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCkBAIC00NjkyLDYgKzQ2OTUsMzYgQEAgdm9pZCBXZWJQ
YWdlOjpoaWRlRmluZEluZGljYXRvcigpCiAgICAgZmluZENvbnRyb2xsZXIoKS5oaWRlRmluZElu
ZGljYXRvcigpOwogfQogCit2b2lkIFdlYlBhZ2U6OmZpbmRUZXh0UmFuZ2VzRm9yU3RyaW5nTWF0
Y2hlcyhjb25zdCBTdHJpbmcmIHN0cmluZywgT3B0aW9uU2V0PEZpbmRPcHRpb25zPiBvcHRpb25z
LCB1aW50MzJfdCBtYXhNYXRjaENvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxX
ZWJGb3VuZFRleHRSYW5nZT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgZm91bmRU
ZXh0UmFuZ2VDb250cm9sbGVyKCkuZmluZFRleHRSYW5nZXNGb3JTdHJpbmdNYXRjaGVzKHN0cmlu
Zywgb3B0aW9ucywgbWF4TWF0Y2hDb3VudCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
fQorCit2b2lkIFdlYlBhZ2U6OmRlY29yYXRlVGV4dFJhbmdlV2l0aFN0eWxlKGNvbnN0IFdlYkZv
dW5kVGV4dFJhbmdlJiByYW5nZSwgV2ViS2l0OjpGaW5kRGVjb3JhdGlvblN0eWxlIHN0eWxlKQor
eworICAgIGZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcigpLmRlY29yYXRlVGV4dFJhbmdlV2l0aFN0
eWxlKHJhbmdlLCBzdHlsZSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6c2Nyb2xsVGV4dFJhbmdlVG9W
aXNpYmxlKGNvbnN0IFdlYkZvdW5kVGV4dFJhbmdlJiByYW5nZSkKK3sKKyAgICBmb3VuZFRleHRS
YW5nZUNvbnRyb2xsZXIoKS5zY3JvbGxUZXh0UmFuZ2VUb1Zpc2libGUocmFuZ2UpOworfQorCit2
b2lkIFdlYlBhZ2U6OmNsZWFyQWxsRGVjb3JhdGVkRm91bmRUZXh0KCkKK3sKKyAgICBmb3VuZFRl
eHRSYW5nZUNvbnRyb2xsZXIoKS5jbGVhckFsbERlY29yYXRlZEZvdW5kVGV4dCgpOworfQorCit2
b2lkIFdlYlBhZ2U6OmRpZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbigpCit7CisgICAgZm91bmRU
ZXh0UmFuZ2VDb250cm9sbGVyKCkuZGlkQmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9uKCk7Cit9CisK
K3ZvaWQgV2ViUGFnZTo6ZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbigpCit7CisgICAgZm91bmRU
ZXh0UmFuZ2VDb250cm9sbGVyKCkuZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbigpOworfQorCiB2
b2lkIFdlYlBhZ2U6OmdldEltYWdlRm9yRmluZE1hdGNoKHVpbnQzMl90IG1hdGNoSW5kZXgpCiB7
CiAgICAgZmluZENvbnRyb2xsZXIoKS5nZXRJbWFnZUZvckZpbmRNYXRjaChtYXRjaEluZGV4KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAwMjkyMDc0
ZWZkZTJkN2RkYjZiMDZhYjJkNWIxY2MxYjhjODVkMzY1Li4zYzdjMjhjNTllNTk5OGYwYWI3Mzg5
MzdjYTAxYjA2OTVlMDM5YWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC0yOTYsNiArMjk2LDcgQEAgY2xhc3MgV2ViRGF0YUxpc3RTdWdnZXN0aW9u
UGlja2VyOwogY2xhc3MgV2ViRGF0ZVRpbWVDaG9vc2VyOwogY2xhc3MgV2ViRG9jdW1lbnRMb2Fk
ZXI7CiBjbGFzcyBXZWJFdmVudDsKK2NsYXNzIFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcjsK
IGNsYXNzIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXI7CiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOwogY2xhc3MgV2ViRnJhbWU7CkBAIC0zMjMsNiArMzI0LDcgQEAgY2xhc3MgV2ViV2hlZWxF
dmVudDsKIGNsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogCiBlbnVtIGNsYXNzIEZp
bmRPcHRpb25zIDogdWludDE2X3Q7CitlbnVtIGNsYXNzIEZpbmREZWNvcmF0aW9uU3R5bGUgOiB1
aW50OF90OwogZW51bSBjbGFzcyBEcmFnQ29udHJvbGxlckFjdGlvbiA6IHVpbnQ4X3Q7CiBlbnVt
IGNsYXNzIFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNz
IFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZSA6IHVpbnQ4X3Q7CkBAIC0zNDMsNiArMzQ1LDcg
QEAgc3RydWN0IFRleHRJbnB1dENvbnRleHQ7CiBzdHJ1Y3QgVXNlck1lc3NhZ2U7CiBzdHJ1Y3Qg
V2ViQXV0b2NvcnJlY3Rpb25EYXRhOwogc3RydWN0IFdlYkF1dG9jb3JyZWN0aW9uQ29udGV4dDsK
K3N0cnVjdCBXZWJGb3VuZFRleHRSYW5nZTsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOwogc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3QgV2Vic2l0ZVBvbGljaWVz
RGF0YTsKQEAgLTcwNSw2ICs3MDgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFdlYkV2
ZW50KiBjdXJyZW50RXZlbnQoKTsKIAogICAgIEZpbmRDb250cm9sbGVyJiBmaW5kQ29udHJvbGxl
cigpIHsgcmV0dXJuIG1fZmluZENvbnRyb2xsZXIuZ2V0KCk7IH0KKyAgICBXZWJGb3VuZFRleHRS
YW5nZUNvbnRyb2xsZXImIGZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcigpIHsgcmV0dXJuIG1fZm91
bmRUZXh0UmFuZ2VDb250cm9sbGVyLmdldCgpOyB9CiAKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04p
CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXImIGdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgeyByZXR1cm4gbV9nZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5nZXQoKTsgfQpAQCAtMTc1NSw2ICsxNzU5LDEzIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBmaW5kUmVjdHNGb3JTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYsIE9wdGlvblNl
dDxGaW5kT3B0aW9ucz4sIHVpbnQzMl90IG1heE1hdGNoQ291bnQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4mJik+JiYpOwogICAgIHZvaWQgaGlkZUZp
bmRJbmRpY2F0b3IoKTsKIAorICAgIHZvaWQgZmluZFRleHRSYW5nZXNGb3JTdHJpbmdNYXRjaGVz
KGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxGaW5kT3B0aW9ucz4sIHVpbnQzMl90IG1heE1hdGNo
Q291bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkZvdW5kVGV4dFJhbmdlPiYm
KT4mJik7CisgICAgdm9pZCBkZWNvcmF0ZVRleHRSYW5nZVdpdGhTdHlsZShjb25zdCBXZWJGb3Vu
ZFRleHRSYW5nZSYsIFdlYktpdDo6RmluZERlY29yYXRpb25TdHlsZSk7CisgICAgdm9pZCBzY3Jv
bGxUZXh0UmFuZ2VUb1Zpc2libGUoY29uc3QgV2ViRm91bmRUZXh0UmFuZ2UmKTsKKyAgICB2b2lk
IGNsZWFyQWxsRGVjb3JhdGVkRm91bmRUZXh0KCk7CisgICAgdm9pZCBkaWRCZWdpblRleHRTZWFy
Y2hPcGVyYXRpb24oKTsKKyAgICB2b2lkIGRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24oKTsKKwog
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICB2b2lkIHNlbmRWaWV3cG9ydEF0dHJp
YnV0ZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJik7CiAjZW5kaWYK
QEAgLTIwNjAsNiArMjA3MSw4IEBAIHByaXZhdGU6CiAKICAgICBVbmlxdWVSZWY8RmluZENvbnRy
b2xsZXI+IG1fZmluZENvbnRyb2xsZXI7CiAKKyAgICBVbmlxdWVSZWY8V2ViRm91bmRUZXh0UmFu
Z2VDb250cm9sbGVyPiBtX2ZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcjsKKwogICAgIFJlZlB0cjxX
ZWJJbnNwZWN0b3I+IG1faW5zcGVjdG9yOwogICAgIFJlZlB0cjxXZWJJbnNwZWN0b3JVST4gbV9p
bnNwZWN0b3JVSTsKICAgICBSZWZQdHI8UmVtb3RlV2ViSW5zcGVjdG9yVUk+IG1fcmVtb3RlSW5z
cGVjdG9yVUk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgppbmRleCA2ZjkxYTJhNzc0MTY2Y2QyYjg4NmRmZWJiNGJiYThmNTFm
ZWY4ZjNkLi4xYWRhMWIzMzMzMTIzMjZmZjlmMzM4ZDY2Y2Q1YzVlY2MxMGIzM2VlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4KQEAgLTMxMSw2ICszMTEsMTMgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChl
bnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKIAogICAgIEZp
bmRSZWN0c0ZvclN0cmluZ01hdGNoZXMoU3RyaW5nIHN0cmluZywgT3B0aW9uU2V0PFdlYktpdDo6
RmluZE9wdGlvbnM+IGZpbmRPcHRpb25zLCB1bnNpZ25lZCBtYXhNYXRjaENvdW50KSAtPiAoVmVj
dG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4gbWF0Y2hlcykgQXN5bmMKICAgICBIaWRlRmluZEluZGlj
YXRvcigpCisKKyAgICBGaW5kVGV4dFJhbmdlc0ZvclN0cmluZ01hdGNoZXMoU3RyaW5nIHN0cmlu
ZywgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlvbnM+IGZpbmRPcHRpb25zLCB1bnNpZ25lZCBt
YXhNYXRjaENvdW50KSAtPiAoVmVjdG9yPFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2U+IHJhbmdl
cykgQXN5bmMKKyAgICBEZWNvcmF0ZVRleHRSYW5nZVdpdGhTdHlsZShzdHJ1Y3QgV2ViS2l0OjpX
ZWJGb3VuZFRleHRSYW5nZSByYW5nZSwgZW51bTp1aW50OF90IFdlYktpdDo6RmluZERlY29yYXRp
b25TdHlsZSBzdHlsZSkKKyAgICBTY3JvbGxUZXh0UmFuZ2VUb1Zpc2libGUoc3RydWN0IFdlYktp
dDo6V2ViRm91bmRUZXh0UmFuZ2UgcmFuZ2UpCisgICAgQ2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRl
eHQoKTsKKyAgICBEaWRCZWdpblRleHRTZWFyY2hPcGVyYXRpb24oKTsKKyAgICBEaWRFbmRUZXh0
U2VhcmNoT3BlcmF0aW9uKCk7CiAgICAgCiAgICAgQWRkTUlNRVR5cGVXaXRoQ3VzdG9tQ29udGVu
dFByb3ZpZGVyKFN0cmluZyBtaW1lVHlwZSkKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450208</attachid>
            <date>2022-01-27 23:40:15 -0800</date>
            <delta_ts>2022-01-28 12:23:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235693-20220127234013.patch</filename>
            <type>text/plain</type>
            <size>21555</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI4OTNiMTQ1YmRiMDgwZGNi
MDZjOWU0NjI0NTdjNzM0ZDhmZTA3YjEuLjE0MGYwNDU0NDZhMjMyY2U5MzlkNzYxMjk2OTRlYWNi
MTUwODk5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjItMDEtMjcgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIE1pZ3JhdGUgX1VJVGV4dFNl
YXJjaGluZyBpbXBsZW1lbnRhdGlvbiB0byBiZSBiYWNrZWQgYnkgV2ViRm91bmRUZXh0UmFuZ2VD
b250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzU2OTMKKyAgICAgICAgcmRhcjovLzg4MTE3MzAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWlncmF0ZSBfVUlUZXh0U2VhcmNoaW5nIGltcGxl
bWVudGF0aW9uIHRvIGJlIGJhY2tlZCBieQorICAgICAgICBXZWJGb3VuZFRleHRSYW5nZUNvbnRy
b2xsZXIgdG8gc3VwcG9ydCByZXN0b3JlYWJsZSBmaW5kIHJlc3VsdHMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmlldyBz
Y3JvbGxSYW5nZVRvVmlzaWJsZTppbkRvY3VtZW50Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
ZGlkQmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9uXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBkaWRF
bmRUZXh0U2VhcmNoT3BlcmF0aW9uXSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZmluZFRleHRSYW5nZXNGb3JT
dHJpbmdNYXRjaGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNvcmF0ZVRl
eHRSYW5nZVdpdGhTdHlsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2Nyb2xs
VGV4dFJhbmdlVG9WaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjbGVh
ckFsbERlY29yYXRlZEZvdW5kVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
ZGlkQmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRFbmRUZXh0U2VhcmNoT3BlcmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBvZmZzZXRGcm9tUG9zaXRpb246dG9Qb3Np
dGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwZXJmb3JtVGV4dFNlYXJjaFdpdGhR
dWVyeVN0cmluZzp1c2luZ09wdGlvbnM6cmVzdWx0QWdncmVnYXRvcjpdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOmluRG9jdW1lbnQ6dXNpbmdTdHls
ZTpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzY3JvbGxSYW5nZVRvVmlzaWJsZTppbkRv
Y3VtZW50Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFyQWxsRGVjb3JhdGVkRm91
bmRUZXh0XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGlkQmVnaW5UZXh0U2VhcmNoT3Bl
cmF0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGlkRW5kVGV4dFNlYXJjaE9wZXJh
dGlvbl0pOgorICAgICAgICAoK1tXS0ZvdW5kVGV4dFJhbmdlIGZvdW5kVGV4dFJhbmdlV2l0aFdl
YkZvdW5kVGV4dFJhbmdlOl0pOgorICAgICAgICAoLVtXS0ZvdW5kVGV4dFJhbmdlIHN0YXJ0XSk6
CisgICAgICAgICgtW1dLRm91bmRUZXh0UmFuZ2UgZW5kXSk6CisgICAgICAgICgtW1dLRm91bmRU
ZXh0UmFuZ2Ugd2ViRm91bmRUZXh0UmFuZ2VdKToKKyAgICAgICAgKCtbV0tGb3VuZFRleHRQb3Np
dGlvbiB0ZXh0UG9zaXRpb25XaXRoT2Zmc2V0Om9yZGVyOl0pOgorICAgICAgICAoK1tXS0ZvdW5k
VGV4dFJhbmdlIGZvdW5kVGV4dFJhbmdlV2l0aFJlY3Q6aW5kZXg6XSk6IERlbGV0ZWQuCisgICAg
ICAgICgrW1dLRm91bmRUZXh0UG9zaXRpb24gdGV4dFBvc2l0aW9uV2l0aEluZGV4Ol0pOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6ZmluZFRleHRSYW5nZXNGb3JTdHJpbmdNYXRjaGVzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6ZGVjb3JhdGVUZXh0UmFuZ2VXaXRoU3R5bGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpzY3JvbGxUZXh0UmFuZ2VUb1Zpc2libGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpjbGVhckFsbERlY29yYXRlZEZvdW5kVGV4dCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmRpZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmZv
dW5kVGV4dFJhbmdlQ29udHJvbGxlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjItMDEtMjcgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0
aGlAYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBXZWJGb3VuZFRleHRSYW5nZSBhbmQg
V2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyIHRvIHN1cHBvcnQgcmVzdG9yYWJsZSBmaW5kIHJl
c3VsdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJW
aWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1Mu
bW0KaW5kZXggOGY1OTgzYTI5ZmI2ZmE2ODk1Y2M5NmE3MmZkZGE0ZGU2MmVhNTc4ZS4uMmY0NDkw
NmQ0N2JhM2YzNmZlZjlmNDU5YjI3MmRiOGVhNjYyYjAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KQEAgLTM1MzMsMTEgKzM1MzMsMjYg
QEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM+IHZpZXdw
b3J0QXJndW1lbnRzRnJvbURpY3Rpb25hcnkKICAgICBbX2NvbnRlbnRWaWV3IGRlY29yYXRlRm91
bmRUZXh0UmFuZ2U6cmFuZ2UgaW5Eb2N1bWVudDpkb2N1bWVudCB1c2luZ1N0eWxlOnN0eWxlXTsK
IH0KIAorLSAodm9pZClzY3JvbGxSYW5nZVRvVmlzaWJsZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBp
bkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50Cit7Cisg
ICAgW19jb250ZW50VmlldyBzY3JvbGxSYW5nZVRvVmlzaWJsZTpyYW5nZSBpbkRvY3VtZW50OmRv
Y3VtZW50XTsKK30KKwogLSAodm9pZCljbGVhckFsbERlY29yYXRlZEZvdW5kVGV4dAogewogICAg
IFtfY29udGVudFZpZXcgY2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRleHRdOwogfQogCistICh2b2lk
KWRpZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbgoreworICAgIFtfY29udGVudFZpZXcgZGlkQmVn
aW5UZXh0U2VhcmNoT3BlcmF0aW9uXTsKK30KKworLSAodm9pZClkaWRFbmRUZXh0U2VhcmNoT3Bl
cmF0aW9uCit7CisgICAgW19jb250ZW50VmlldyBkaWRFbmRUZXh0U2VhcmNoT3BlcmF0aW9uXTsK
K30KKwogI2VuZGlmIC8vIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCiAKIEBlbmQgLy8gV0tXZWJW
aWV3IChXS1ByaXZhdGVJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCBmNGIzMTBmYWNiN2QxMDQ1ZjQzYmI1NmZkZjAzMjMzYTZkZTdiNjc3Li5hMGJkNDA2
ZjdlYmMyZWJhOWQ4MzQxYWVkZmQ5ZTQwOWRkZWQ3YTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwOCw2ICsxMDgsNyBAQAogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVkaXRDb21tYW5kUHJveHkuaCIKICNp
bmNsdWRlICJXZWJFdmVudENvbnZlcnNpb24uaCIKKyNpbmNsdWRlICJXZWJGb3VuZFRleHRSYW5n
ZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQb2xpY3lMaXN0
ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oIgpAQCAt
NDI4MCw2ICs0MjgxLDM2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpmaW5kUmVjdHNGb3JTdHJpbmdN
YXRjaGVzKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBPcHRpb25TZXQ8V2ViCiAgICAgc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpGaW5kUmVjdHNGb3JTdHJpbmdNYXRjaGVzKHN0
cmluZywgb3B0aW9ucywgbWF4TWF0Y2hDb3VudCksIFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbikp
OwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZmluZFRleHRSYW5nZXNGb3JTdHJpbmdNYXRjaGVz
KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBPcHRpb25TZXQ8RmluZE9wdGlvbnM+IG9wdGlvbnMsIHVu
c2lnbmVkIG1heE1hdGNoQ291bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkZv
dW5kVGV4dFJhbmdlPiYmKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQoreworICAgIHNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6RmluZFRleHRSYW5nZXNGb3JTdHJpbmdNYXRjaGVz
KHN0cmluZywgb3B0aW9ucywgbWF4TWF0Y2hDb3VudCksIFdURk1vdmUoY2FsbGJhY2tGdW5jdGlv
bikpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjb3JhdGVUZXh0UmFuZ2VXaXRoU3R5bGUo
Y29uc3QgV2ViRm91bmRUZXh0UmFuZ2UmIHJhbmdlLCBGaW5kRGVjb3JhdGlvblN0eWxlIHN0eWxl
KQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRlY29yYXRlVGV4dFJhbmdlV2l0aFN0
eWxlKHJhbmdlLCBzdHlsZSkpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2Nyb2xsVGV4dFJh
bmdlVG9WaXNpYmxlKGNvbnN0IFdlYkZvdW5kVGV4dFJhbmdlJiByYW5nZSkKK3sKKyAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpTY3JvbGxUZXh0UmFuZ2VUb1Zpc2libGUocmFuZ2UpKTsKK30K
Kwordm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyQWxsRGVjb3JhdGVkRm91bmRUZXh0KCkKK3sKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDbGVhckFsbERlY29yYXRlZEZvdW5kVGV4dCgpKTsK
K30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRpZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbigpCit7
CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9u
KCkpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbigp
Cit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlv
bigpKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OmdldEltYWdlRm9yRmluZE1hdGNoKGludDMy
X3QgbWF0Y2hJbmRleCkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXRJbWFnZUZv
ckZpbmRNYXRjaChtYXRjaEluZGV4KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IDhjNjU5OWRhOTc1MWUyODNhMzc1MDhmOTkwYjVlNWU5YzdlZDE2MzYuLjM0YWI3
Y2UxM2UzOGZkYmI5N2ExZjk2MGVlZDhmOGRmNjFmN2JjNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC00MTAsNiArNDEwLDcgQEAgc3RydWN0IFVSTFNjaGVtZVRh
c2tQYXJhbWV0ZXJzOwogc3RydWN0IFVzZXJNZXNzYWdlOwogc3RydWN0IFdlYkF1dG9jb3JyZWN0
aW9uRGF0YTsKIHN0cnVjdCBXZWJCYWNrRm9yd2FyZExpc3RDb3VudHM7CitzdHJ1Y3QgV2ViRm91
bmRUZXh0UmFuZ2U7CiBzdHJ1Y3QgV2ViSGl0VGVzdFJlc3VsdERhdGE7CiBzdHJ1Y3QgV2ViTmF2
aWdhdGlvbkRhdGFTdG9yZTsKIHN0cnVjdCBXZWJQb3B1cEl0ZW07CkBAIC0xMjA4LDYgKzEyMDks
MTMgQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmFpbFRvRmluZFN0cmluZyhjb25zdCBTdHJpbmcm
KTsKICAgICB2b2lkIGRpZEZpbmRTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYsIGNvbnN0IFZl
Y3RvcjxWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4+JiBtYXRjaFJlY3RzLCBpbnQzMl90IGZpcnN0
SW5kZXhBZnRlclNlbGVjdGlvbik7CiAKKyAgICB2b2lkIGZpbmRUZXh0UmFuZ2VzRm9yU3RyaW5n
TWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8RmluZE9wdGlvbnM+LCB1bnNpZ25lZCBt
YXhNYXRjaENvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJGb3VuZFRleHRS
YW5nZT4mJik+JiYpOworICAgIHZvaWQgZGVjb3JhdGVUZXh0UmFuZ2VXaXRoU3R5bGUoY29uc3Qg
V2ViRm91bmRUZXh0UmFuZ2UmLCBGaW5kRGVjb3JhdGlvblN0eWxlKTsKKyAgICB2b2lkIHNjcm9s
bFRleHRSYW5nZVRvVmlzaWJsZShjb25zdCBXZWJGb3VuZFRleHRSYW5nZSYpOworICAgIHZvaWQg
Y2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRleHQoKTsKKyAgICB2b2lkIGRpZEJlZ2luVGV4dFNlYXJj
aE9wZXJhdGlvbigpOworICAgIHZvaWQgZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbigpOworCiAg
ICAgdm9pZCBnZXRDb250ZW50c0FzU3RyaW5nKENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRG
cmFtZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpOwogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIHZvaWQgZ2V0Q29udGVudHNBc0F0dHJpYnV0ZWRTdHJpbmcoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpBdHRyaWJ1dGVkU3RyaW5nJik+JiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oCmluZGV4IDAyMzM5ZTAxYjM3MTBmZDg0NGQ5MzU4OGFhYWEyODE2Mzc1ZWJi
OTIuLjkzNzUzYjVkNmJmOTU2YmI1MWRiNzQ0OTc3OWE2ZmRmYzE4NTM3ZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKQEAgLTQyMSwxMCArNDIxLDYgQEAgdXNpbmcgSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlm
aWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW4KICAgICBXZWFr
T2JqQ1B0cjxXS0RhdGFMaXN0U3VnZ2VzdGlvbnNDb250cm9sPiBfZGF0YUxpc3RTdWdnZXN0aW9u
c0NvbnRyb2w7CiAjZW5kaWYKIAotI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCi0gICAgUmV0
YWluUHRyPFVJVGV4dFJhbmdlPiBfZm91bmRIaWdobGlnaHRlZFRleHRSYW5nZTsKLSNlbmRpZgot
CiAgICAgQk9PTCBfaXNFZGl0YWJsZTsKICAgICBCT09MIF9zaG93aW5nVGV4dFN0eWxlT3B0aW9u
czsKICAgICBCT09MIF9oYXNWYWxpZFBvc2l0aW9uSW5mb3JtYXRpb247CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpp
bmRleCA2NmM4YTY1YTZlMzZiYzQ0OTM2MjBlY2Q0NTA0ZWZmNjEwNDkxMGFkLi5lMGFiMDdmYzM2
MzM4NDNiOWZjMWEwZTZkZmVkM2QzYTE1Y2I0NDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTgzLDYg
KzgzLDcgQEAKICNpbXBvcnQgIldlYkF1dG9jb3JyZWN0aW9uRGF0YS5oIgogI2ltcG9ydCAiV2Vi
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmgiCiAjaW1wb3J0ICJXZWJFdmVudC5oIgor
I2ltcG9ydCAiV2ViRm91bmRUZXh0UmFuZ2UuaCIKICNpbXBvcnQgIldlYklPU0V2ZW50RmFjdG9y
eS5oIgogI2ltcG9ydCAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHlN
ZXNzYWdlcy5oIgpAQCAtNDA1LDE4ICs0MDYsMjMgQEAgY29uc3RleHByIGRvdWJsZSBmYXN0ZXJU
YXBTaWduaWZpY2FudFpvb21UaHJlc2hvbGQgPSAwLjg7CiAKIEBpbnRlcmZhY2UgV0tGb3VuZFRl
eHRSYW5nZSA6IFVJVGV4dFJhbmdlCiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBDR1JlY3QgcmVj
dDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIGluZGV4OworQHByb3BlcnR5IChu
b25hdG9taWMpIE5TVUludGVnZXIgbG9jYXRpb247CitAcHJvcGVydHkgKG5vbmF0b21pYykgTlNV
SW50ZWdlciBsZW5ndGg7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmZy
YW1lSWRlbnRpZmllcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIG9yZGVyOwog
Ci0rIChXS0ZvdW5kVGV4dFJhbmdlICopZm91bmRUZXh0UmFuZ2VXaXRoUmVjdDooQ0dSZWN0KXJl
Y3QgaW5kZXg6KE5TVUludGVnZXIpaW5kZXg7CisrIChXS0ZvdW5kVGV4dFJhbmdlICopZm91bmRU
ZXh0UmFuZ2VXaXRoV2ViRm91bmRUZXh0UmFuZ2U6KFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2Up
cmFuZ2U7CisKKy0gKFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2Upd2ViRm91bmRUZXh0UmFuZ2U7
CiAKIEBlbmQKIAogQGludGVyZmFjZSBXS0ZvdW5kVGV4dFBvc2l0aW9uIDogVUlUZXh0UG9zaXRp
b24KIAotQHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIgaW5kZXg7CitAcHJvcGVydHkg
KG5vbmF0b21pYykgTlNVSW50ZWdlciBvZmZzZXQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgTlNV
SW50ZWdlciBvcmRlcjsKIAotKyAoV0tGb3VuZFRleHRQb3NpdGlvbiAqKXRleHRQb3NpdGlvbldp
dGhJbmRleDooTlNVSW50ZWdlcilpbmRleDsKKysgKFdLRm91bmRUZXh0UG9zaXRpb24gKil0ZXh0
UG9zaXRpb25XaXRoT2Zmc2V0OihOU1VJbnRlZ2VyKW9mZnNldCBvcmRlcjooTlNVSW50ZWdlcilv
cmRlcjsKIAogQGVuZAogCkBAIC01Mjk4LDExICs1MzA0LDE5IEBAIHN0YXRpYyBWZWN0b3I8V2Vi
Q29yZTo6Q29tcG9zaXRpb25IaWdobGlnaHQ+IGNvbXBvc2l0aW9uSGlnaGxpZ2h0cyhOU0F0dHJp
YnV0ZWRTCiAgICAgcmV0dXJuIE5TT3JkZXJlZFNhbWU7CiB9CiAKLS0gKE5TSW50ZWdlcilvZmZz
ZXRGcm9tUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopZnJvbSB0b1Bvc2l0aW9uOihVSVRleHRQ
b3NpdGlvbiAqKXRvUG9zaXRpb24KKy0gKE5TSW50ZWdlcilvZmZzZXRGcm9tUG9zaXRpb246KFVJ
VGV4dFBvc2l0aW9uICopZnJvbSB0b1Bvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAqKXRvCiB7CiAj
aWYgSEFWRShVSUZJTkRJTlRFUkFDVElPTikKLSAgICBpZiAoW2Zyb20gaXNLaW5kT2ZDbGFzczpb
V0tGb3VuZFRleHRQb3NpdGlvbiBjbGFzc11dICYmIFt0b1Bvc2l0aW9uIGlzS2luZE9mQ2xhc3M6
W1dLRm91bmRUZXh0UG9zaXRpb24gY2xhc3NdXSkKLSAgICAgICAgcmV0dXJuICgoV0tGb3VuZFRl
eHRQb3NpdGlvbiAqKWZyb20pLmluZGV4IC0gKChXS0ZvdW5kVGV4dFBvc2l0aW9uICopdG9Qb3Np
dGlvbikuaW5kZXg7CisgICAgaWYgKFtmcm9tIGlzS2luZE9mQ2xhc3M6W1dLRm91bmRUZXh0UG9z
aXRpb24gY2xhc3NdXSAmJiBbdG8gaXNLaW5kT2ZDbGFzczpbV0tGb3VuZFRleHRQb3NpdGlvbiBj
bGFzc11dKSB7CisgICAgICAgIFdLRm91bmRUZXh0UG9zaXRpb24gKmZyb21Qb3NpdGlvbiA9IChX
S0ZvdW5kVGV4dFBvc2l0aW9uICopZnJvbTsKKyAgICAgICAgV0tGb3VuZFRleHRQb3NpdGlvbiAq
dG9Qb3NpdGlvbiA9IChXS0ZvdW5kVGV4dFBvc2l0aW9uICopdG87CisKKyAgICAgICAgaWYgKGZy
b21Qb3NpdGlvbi5vcmRlciA9PSB0b1Bvc2l0aW9uLm9yZGVyKQorICAgICAgICAgICAgcmV0dXJu
IGZyb21Qb3NpdGlvbi5vZmZzZXQgLSB0b1Bvc2l0aW9uLm9mZnNldDsKKworICAgICAgICByZXR1
cm4gZnJvbVBvc2l0aW9uLm9yZGVyIC0gdG9Qb3NpdGlvbi5vcmRlcjsKKyAgICB9CisKICNlbmRp
ZgogCiAgICAgcmV0dXJuIDA7CkBAIC0xMDA2NywxMiArMTAwODEsMTAgQEAgc3RhdGljIFJldGFp
blB0cjxOU0l0ZW1Qcm92aWRlcj4gY3JlYXRlSXRlbVByb3ZpZGVyKGNvbnN0IFdlYktpdDo6V2Vi
UGFnZVByb3h5JgogICAgIGlmIChvcHRpb25zLnN0cmluZ0NvbXBhcmVPcHRpb25zICYgTlNDYXNl
SW5zZW5zaXRpdmVTZWFyY2gpCiAgICAgICAgIGZpbmRPcHRpb25zLmFkZChXZWJLaXQ6OkZpbmRP
cHRpb25zOjpDYXNlSW5zZW5zaXRpdmUpOwogCi0gICAgX3BhZ2UtPmZpbmRSZWN0c0ZvclN0cmlu
Z01hdGNoZXMoc3RyaW5nLCBmaW5kT3B0aW9ucywgMTAwMCwgW3N0cmluZywgYWdncmVnYXRvciA9
IHJldGFpblB0cihhZ2dyZWdhdG9yKV0oY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4m
IHJlY3RzKSB7Ci0gICAgICAgIE5TVUludGVnZXIgaW5kZXggPSAwOwotICAgICAgICBmb3IgKGF1
dG8mIHJlY3QgOiByZWN0cykgewotICAgICAgICAgICAgV0tGb3VuZFRleHRSYW5nZSAqcmFuZ2Ug
PSBbV0tGb3VuZFRleHRSYW5nZSBmb3VuZFRleHRSYW5nZVdpdGhSZWN0OnJlY3QgaW5kZXg6aW5k
ZXhdOwotICAgICAgICAgICAgW2FnZ3JlZ2F0b3IgZm91bmRSYW5nZTpyYW5nZSBmb3JTZWFyY2hT
dHJpbmc6c3RyaW5nIGluRG9jdW1lbnQ6bmlsXTsKLSAgICAgICAgICAgIGluZGV4Kys7CisgICAg
X3BhZ2UtPmZpbmRUZXh0UmFuZ2VzRm9yU3RyaW5nTWF0Y2hlcyhzdHJpbmcsIGZpbmRPcHRpb25z
LCAxMDAwLCBbc3RyaW5nLCBhZ2dyZWdhdG9yID0gcmV0YWluUHRyKGFnZ3JlZ2F0b3IpXShjb25z
dCBWZWN0b3I8V2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZT4gcmFuZ2VzKSB7CisgICAgICAgIGZv
ciAoYXV0byYgcmFuZ2UgOiByYW5nZXMpIHsKKyAgICAgICAgICAgIFdLRm91bmRUZXh0UmFuZ2Ug
KnRleHRSYW5nZSA9IFtXS0ZvdW5kVGV4dFJhbmdlIGZvdW5kVGV4dFJhbmdlV2l0aFdlYkZvdW5k
VGV4dFJhbmdlOnJhbmdlXTsKKyAgICAgICAgICAgIFthZ2dyZWdhdG9yIGZvdW5kUmFuZ2U6dGV4
dFJhbmdlIGZvclNlYXJjaFN0cmluZzpzdHJpbmcgaW5Eb2N1bWVudDpuaWxdOwogICAgICAgICB9
CiAKICAgICAgICAgW2FnZ3JlZ2F0b3IgZmluaXNoZWRTZWFyY2hpbmddOwpAQCAtMTAwODQsMTgg
KzEwMDk2LDM4IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNJdGVtUHJvdmlkZXI+IGNyZWF0ZUl0ZW1Q
cm92aWRlcihjb25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYKICAgICBpZiAoIVtyYW5nZSBpc0tp
bmRPZkNsYXNzOltXS0ZvdW5kVGV4dFJhbmdlIGNsYXNzXV0pCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmIChzdHlsZSA9PSBfVUlGb3VuZFRleHRTdHlsZUhpZ2hsaWdodGVkKSB7Ci0gICAgICAg
IF9mb3VuZEhpZ2hsaWdodGVkVGV4dFJhbmdlID0gcmFuZ2U7Ci0gICAgICAgIFdLRm91bmRUZXh0
UmFuZ2UgKmZvdW5kUmFuZ2UgPSAoV0tGb3VuZFRleHRSYW5nZSAqKXJhbmdlOwotICAgICAgICBf
cGFnZS0+aW5kaWNhdGVGaW5kTWF0Y2goZm91bmRSYW5nZS5pbmRleCk7Ci0gICAgfSBlbHNlIGlm
IChzdHlsZSA9PSBfVUlGb3VuZFRleHRTdHlsZUZvdW5kICYmIF9mb3VuZEhpZ2hsaWdodGVkVGV4
dFJhbmdlID09IHJhbmdlKQotICAgICAgICBfcGFnZS0+aGlkZUZpbmRJbmRpY2F0b3IoKTsKKyAg
ICBhdXRvIGRlY29yYXRpb25TdHlsZSA9IFdlYktpdDo6RmluZERlY29yYXRpb25TdHlsZTo6Tm9y
bWFsOworICAgIGlmIChzdHlsZSA9PSBfVUlGb3VuZFRleHRTdHlsZUZvdW5kKQorICAgICAgICBk
ZWNvcmF0aW9uU3R5bGUgPSBXZWJLaXQ6OkZpbmREZWNvcmF0aW9uU3R5bGU6OkZvdW5kOworICAg
IGVsc2UgaWYgKHN0eWxlID09IF9VSUZvdW5kVGV4dFN0eWxlSGlnaGxpZ2h0ZWQpCisgICAgICAg
IGRlY29yYXRpb25TdHlsZSA9IFdlYktpdDo6RmluZERlY29yYXRpb25TdHlsZTo6SGlnaGxpZ2h0
ZWQ7CisKKyAgICBXS0ZvdW5kVGV4dFJhbmdlICpmb3VuZFRleHRSYW5nZSA9IChXS0ZvdW5kVGV4
dFJhbmdlICopcmFuZ2U7CisgICAgX3BhZ2UtPmRlY29yYXRlVGV4dFJhbmdlV2l0aFN0eWxlKFtm
b3VuZFRleHRSYW5nZSB3ZWJGb3VuZFRleHRSYW5nZV0sIGRlY29yYXRpb25TdHlsZSk7Cit9CisK
Ky0gKHZvaWQpc2Nyb2xsUmFuZ2VUb1Zpc2libGU6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1
bWVudDooX1VJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAoreworICAgIGlm
ICghW3JhbmdlIGlzS2luZE9mQ2xhc3M6W1dLRm91bmRUZXh0UmFuZ2UgY2xhc3NdXSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgV0tGb3VuZFRleHRSYW5nZSAqZm91bmRUZXh0UmFuZ2UgPSAoV0tG
b3VuZFRleHRSYW5nZSAqKXJhbmdlOworICAgIF9wYWdlLT5zY3JvbGxUZXh0UmFuZ2VUb1Zpc2li
bGUoW2ZvdW5kVGV4dFJhbmdlIHdlYkZvdW5kVGV4dFJhbmdlXSk7CiB9CiAKIC0gKHZvaWQpY2xl
YXJBbGxEZWNvcmF0ZWRGb3VuZFRleHQKIHsKLSAgICBfZm91bmRIaWdobGlnaHRlZFRleHRSYW5n
ZSA9IG5pbDsKLSAgICBfcGFnZS0+aGlkZUZpbmRVSSgpOworICAgIF9wYWdlLT5jbGVhckFsbERl
Y29yYXRlZEZvdW5kVGV4dCgpOworfQorCistICh2b2lkKWRpZEJlZ2luVGV4dFNlYXJjaE9wZXJh
dGlvbgoreworICAgIF9wYWdlLT5kaWRCZWdpblRleHRTZWFyY2hPcGVyYXRpb24oKTsKK30KKwor
LSAodm9pZClkaWRFbmRUZXh0U2VhcmNoT3BlcmF0aW9uCit7CisgICAgX3BhZ2UtPmRpZEVuZFRl
eHRTZWFyY2hPcGVyYXRpb24oKTsKIH0KIAogLSAoTlNJbnRlZ2VyKW9mZnNldEZyb21Qb3NpdGlv
bjooVUlUZXh0UG9zaXRpb24gKilmcm9tIHRvUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopdG9Q
b3NpdGlvbiBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3Vt
ZW50CkBAIC0xMTk3MiwyMyArMTIwMDQsMjcgQEAgc3RhdGljIFVJTWVudSAqbWVudUZyb21MZWdh
Y3lQcmV2aWV3T3JEZWZhdWx0QWN0aW9ucyhVSVZpZXdDb250cm9sbGVyICpwcmV2aWV3VmkKIAog
QGltcGxlbWVudGF0aW9uIFdLRm91bmRUZXh0UmFuZ2UKIAotKyAoV0tGb3VuZFRleHRSYW5nZSAq
KWZvdW5kVGV4dFJhbmdlV2l0aFJlY3Q6KENHUmVjdClyZWN0IGluZGV4OihOU1VJbnRlZ2VyKWlu
ZGV4CisKKysgKFdLRm91bmRUZXh0UmFuZ2UgKilmb3VuZFRleHRSYW5nZVdpdGhXZWJGb3VuZFRl
eHRSYW5nZTooV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZSl3ZWJSYW5nZQogewogICAgIGF1dG8g
cmFuZ2UgPSBhZG9wdE5TKFtbV0tGb3VuZFRleHRSYW5nZSBhbGxvY10gaW5pdF0pOwotICAgIFty
YW5nZSBzZXRSZWN0OnJlY3RdOwotICAgIFtyYW5nZSBzZXRJbmRleDppbmRleF07CisgICAgW3Jh
bmdlIHNldExvY2F0aW9uOndlYlJhbmdlLmxvY2F0aW9uXTsKKyAgICBbcmFuZ2Ugc2V0TGVuZ3Ro
OndlYlJhbmdlLmxlbmd0aF07CisgICAgW3JhbmdlIHNldEZyYW1lSWRlbnRpZmllcjp3ZWJSYW5n
ZS5mcmFtZUlkZW50aWZpZXJdOworICAgIFtyYW5nZSBzZXRPcmRlcjp3ZWJSYW5nZS5vcmRlcl07
CiAgICAgcmV0dXJuIHJhbmdlLmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0gKFdLRm91bmRUZXh0UG9z
aXRpb24gKilzdGFydAogewotICAgIFdLRm91bmRUZXh0UG9zaXRpb24gKnBvc2l0aW9uID0gW1dL
Rm91bmRUZXh0UG9zaXRpb24gdGV4dFBvc2l0aW9uV2l0aEluZGV4OnNlbGYuaW5kZXhdOworICAg
IFdLRm91bmRUZXh0UG9zaXRpb24gKnBvc2l0aW9uID0gW1dLRm91bmRUZXh0UG9zaXRpb24gdGV4
dFBvc2l0aW9uV2l0aE9mZnNldDpzZWxmLmxvY2F0aW9uIG9yZGVyOnNlbGYub3JkZXJdOwogICAg
IHJldHVybiBwb3NpdGlvbjsKIH0KIAogLSAoVUlUZXh0UG9zaXRpb24gKillbmQKIHsKLSAgICBy
ZXR1cm4gc2VsZi5zdGFydDsKKyAgICBXS0ZvdW5kVGV4dFBvc2l0aW9uICpwb3NpdGlvbiA9IFtX
S0ZvdW5kVGV4dFBvc2l0aW9uIHRleHRQb3NpdGlvbldpdGhPZmZzZXQ6KHNlbGYubG9jYXRpb24g
KyBzZWxmLmxlbmd0aCkgb3JkZXI6c2VsZi5vcmRlcl07CisgICAgcmV0dXJuIHBvc2l0aW9uOwog
fQogCiAtIChCT09MKWlzRW1wdHkKQEAgLTExOTk2LDE0ICsxMjAzMiwyMCBAQCBzdGF0aWMgVUlN
ZW51ICptZW51RnJvbUxlZ2FjeVByZXZpZXdPckRlZmF1bHRBY3Rpb25zKFVJVmlld0NvbnRyb2xs
ZXIgKnByZXZpZXdWaQogICAgIHJldHVybiBOTzsKIH0KIAorLSAoV2ViS2l0OjpXZWJGb3VuZFRl
eHRSYW5nZSl3ZWJGb3VuZFRleHRSYW5nZQoreworICAgIHJldHVybiB7IHNlbGYubG9jYXRpb24s
IHNlbGYubGVuZ3RoLCBzZWxmLmZyYW1lSWRlbnRpZmllciwgc2VsZi5vcmRlciB9OworfQorCiBA
ZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS0ZvdW5kVGV4dFBvc2l0aW9uCiAKLSsgKFdLRm91bmRU
ZXh0UG9zaXRpb24gKil0ZXh0UG9zaXRpb25XaXRoSW5kZXg6KE5TVUludGVnZXIpaW5kZXgKKysg
KFdLRm91bmRUZXh0UG9zaXRpb24gKil0ZXh0UG9zaXRpb25XaXRoT2Zmc2V0OihOU1VJbnRlZ2Vy
KW9mZnNldCBvcmRlcjooTlNVSW50ZWdlcilvcmRlcgogewogICAgIGF1dG8gcG9zID0gYWRvcHRO
UyhbW1dLRm91bmRUZXh0UG9zaXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBbcG9zIHNldEluZGV4
OmluZGV4XTsKKyAgICBbcG9zIHNldE9mZnNldDpvZmZzZXRdOworICAgIFtwb3Mgc2V0T3JkZXI6
b3JkZXJdOwogICAgIHJldHVybiBwb3MuYXV0b3JlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA2YTBlYzhmNTI2YjdmZWUw
N2ZmZmRlNWMzM2QxZTdhOWVlNDZkODlkLi44MWI3NDA2Mjk0NDQ5NzNiNDA3ODk0OWIzN2Q5MzU4
OTdkNzk5NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtOTEsNiArOTEsOCBAQAogI2luY2x1ZGUgIldlYkVkaXRvckNsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYkV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5o
IgorI2luY2x1ZGUgIldlYkZvdW5kVGV4dFJhbmdlLmgiCisjaW5jbHVkZSAiV2ViRm91bmRUZXh0
UmFuZ2VDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJG
cmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyLmgiCkBA
IC01MDksNiArNTExLDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQs
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgICwgbV9yZXNvdXJj
ZUxvYWRDbGllbnQobWFrZVVuaXF1ZTxBUEk6OkluamVjdGVkQnVuZGxlOjpSZXNvdXJjZUxvYWRD
bGllbnQ+KCkpCiAgICAgLCBtX3VpQ2xpZW50KG1ha2VVbmlxdWU8QVBJOjpJbmplY3RlZEJ1bmRs
ZTo6UGFnZVVJQ2xpZW50PigpKQogICAgICwgbV9maW5kQ29udHJvbGxlcihtYWtlVW5pcXVlUmVm
PEZpbmRDb250cm9sbGVyPih0aGlzKSkKKyAgICAsIG1fZm91bmRUZXh0UmFuZ2VDb250cm9sbGVy
KG1ha2VVbmlxdWVSZWY8V2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyPigqdGhpcykpCiAgICAg
LCBtX2luc3BlY3RvclRhcmdldENvbnRyb2xsZXIobWFrZVVuaXF1ZTxXZWJQYWdlSW5zcGVjdG9y
VGFyZ2V0Q29udHJvbGxlcj4oKnRoaXMpKQogICAgICwgbV91c2VyQ29udGVudENvbnRyb2xsZXIo
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpnZXRPckNyZWF0ZShwYXJhbWV0ZXJzLnVzZXJDb250
ZW50Q29udHJvbGxlclBhcmFtZXRlcnMuaWRlbnRpZmllcikpCiAjaWYgRU5BQkxFKEdFT0xPQ0FU
SU9OKQpAQCAtNDY5Miw2ICs0Njk1LDM2IEBAIHZvaWQgV2ViUGFnZTo6aGlkZUZpbmRJbmRpY2F0
b3IoKQogICAgIGZpbmRDb250cm9sbGVyKCkuaGlkZUZpbmRJbmRpY2F0b3IoKTsKIH0KIAordm9p
ZCBXZWJQYWdlOjpmaW5kVGV4dFJhbmdlc0ZvclN0cmluZ01hdGNoZXMoY29uc3QgU3RyaW5nJiBz
dHJpbmcsIE9wdGlvblNldDxGaW5kT3B0aW9ucz4gb3B0aW9ucywgdWludDMyX3QgbWF4TWF0Y2hD
b3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViRm91bmRUZXh0UmFuZ2U+JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcigp
LmZpbmRUZXh0UmFuZ2VzRm9yU3RyaW5nTWF0Y2hlcyhzdHJpbmcsIG9wdGlvbnMsIG1heE1hdGNo
Q291bnQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBXZWJQYWdlOjpk
ZWNvcmF0ZVRleHRSYW5nZVdpdGhTdHlsZShjb25zdCBXZWJGb3VuZFRleHRSYW5nZSYgcmFuZ2Us
IFdlYktpdDo6RmluZERlY29yYXRpb25TdHlsZSBzdHlsZSkKK3sKKyAgICBmb3VuZFRleHRSYW5n
ZUNvbnRyb2xsZXIoKS5kZWNvcmF0ZVRleHRSYW5nZVdpdGhTdHlsZShyYW5nZSwgc3R5bGUpOwor
fQorCit2b2lkIFdlYlBhZ2U6OnNjcm9sbFRleHRSYW5nZVRvVmlzaWJsZShjb25zdCBXZWJGb3Vu
ZFRleHRSYW5nZSYgcmFuZ2UpCit7CisgICAgZm91bmRUZXh0UmFuZ2VDb250cm9sbGVyKCkuc2Ny
b2xsVGV4dFJhbmdlVG9WaXNpYmxlKHJhbmdlKTsKK30KKwordm9pZCBXZWJQYWdlOjpjbGVhckFs
bERlY29yYXRlZEZvdW5kVGV4dCgpCit7CisgICAgZm91bmRUZXh0UmFuZ2VDb250cm9sbGVyKCku
Y2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRleHQoKTsKK30KKwordm9pZCBXZWJQYWdlOjpkaWRCZWdp
blRleHRTZWFyY2hPcGVyYXRpb24oKQoreworICAgIGZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcigp
LmRpZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbigpOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZEVu
ZFRleHRTZWFyY2hPcGVyYXRpb24oKQoreworICAgIGZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcigp
LmRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24oKTsKK30KKwogdm9pZCBXZWJQYWdlOjpnZXRJbWFn
ZUZvckZpbmRNYXRjaCh1aW50MzJfdCBtYXRjaEluZGV4KQogewogICAgIGZpbmRDb250cm9sbGVy
KCkuZ2V0SW1hZ2VGb3JGaW5kTWF0Y2gobWF0Y2hJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMDI5MjA3NGVmZGUyZDdkZGI2YjA2YWIyZDVi
MWNjMWI4Yzg1ZDM2NS4uM2M3YzI4YzU5ZTU5OThmMGFiNzM4OTM3Y2EwMWIwNjk1ZTAzOWFkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjk2LDYg
KzI5Niw3IEBAIGNsYXNzIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlcjsKIGNsYXNzIFdlYkRh
dGVUaW1lQ2hvb3NlcjsKIGNsYXNzIFdlYkRvY3VtZW50TG9hZGVyOwogY2xhc3MgV2ViRXZlbnQ7
CitjbGFzcyBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI7CiBjbGFzcyBQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyOwogY2xhc3MgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjsKIGNsYXNzIFdlYkZyYW1l
OwpAQCAtMzIzLDYgKzMyNCw3IEBAIGNsYXNzIFdlYldoZWVsRXZlbnQ7CiBjbGFzcyBSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjsKIAogZW51bSBjbGFzcyBGaW5kT3B0aW9ucyA6IHVpbnQxNl90
OworZW51bSBjbGFzcyBGaW5kRGVjb3JhdGlvblN0eWxlIDogdWludDhfdDsKIGVudW0gY2xhc3Mg
RHJhZ0NvbnRyb2xsZXJBY3Rpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBUZXh0UmVjb2duaXRp
b25VcGRhdGVSZXN1bHQgOiB1aW50OF90OwogZW51bSBjbGFzcyBTeW50aGV0aWNFZGl0aW5nQ29t
bWFuZFR5cGUgOiB1aW50OF90OwpAQCAtMzQzLDYgKzM0NSw3IEBAIHN0cnVjdCBUZXh0SW5wdXRD
b250ZXh0Owogc3RydWN0IFVzZXJNZXNzYWdlOwogc3RydWN0IFdlYkF1dG9jb3JyZWN0aW9uRGF0
YTsKIHN0cnVjdCBXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQ7CitzdHJ1Y3QgV2ViRm91bmRUZXh0
UmFuZ2U7CiBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQcmVm
ZXJlbmNlc1N0b3JlOwogc3RydWN0IFdlYnNpdGVQb2xpY2llc0RhdGE7CkBAIC03MDUsNiArNzA4
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBXZWJFdmVudCogY3VycmVudEV2ZW50KCk7
CiAKICAgICBGaW5kQ29udHJvbGxlciYgZmluZENvbnRyb2xsZXIoKSB7IHJldHVybiBtX2ZpbmRD
b250cm9sbGVyLmdldCgpOyB9CisgICAgV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyJiBmb3Vu
ZFRleHRSYW5nZUNvbnRyb2xsZXIoKSB7IHJldHVybiBtX2ZvdW5kVGV4dFJhbmdlQ29udHJvbGxl
ci5nZXQoKTsgfQogCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyJiBnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cigpIHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuZ2V0KCk7
IH0KQEAgLTE3NTUsNiArMTc1OSwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmluZFJlY3RzRm9y
U3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8RmluZE9wdGlvbnM+LCB1aW50
MzJfdCBtYXhNYXRjaENvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3Jl
OjpGbG9hdFJlY3Q+JiYpPiYmKTsKICAgICB2b2lkIGhpZGVGaW5kSW5kaWNhdG9yKCk7CiAKKyAg
ICB2b2lkIGZpbmRUZXh0UmFuZ2VzRm9yU3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBPcHRp
b25TZXQ8RmluZE9wdGlvbnM+LCB1aW50MzJfdCBtYXhNYXRjaENvdW50LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFZlY3RvcjxXZWJGb3VuZFRleHRSYW5nZT4mJik+JiYpOworICAgIHZvaWQgZGVj
b3JhdGVUZXh0UmFuZ2VXaXRoU3R5bGUoY29uc3QgV2ViRm91bmRUZXh0UmFuZ2UmLCBXZWJLaXQ6
OkZpbmREZWNvcmF0aW9uU3R5bGUpOworICAgIHZvaWQgc2Nyb2xsVGV4dFJhbmdlVG9WaXNpYmxl
KGNvbnN0IFdlYkZvdW5kVGV4dFJhbmdlJik7CisgICAgdm9pZCBjbGVhckFsbERlY29yYXRlZEZv
dW5kVGV4dCgpOworICAgIHZvaWQgZGlkQmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9uKCk7CisgICAg
dm9pZCBkaWRFbmRUZXh0U2VhcmNoT3BlcmF0aW9uKCk7CisKICNpZiBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1MpCiAgICAgdm9pZCBzZW5kVmlld3BvcnRBdHRyaWJ1dGVzQ2hhbmdlZChjb25zdCBX
ZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOwogI2VuZGlmCkBAIC0yMDYwLDYgKzIwNzEsOCBA
QCBwcml2YXRlOgogCiAgICAgVW5pcXVlUmVmPEZpbmRDb250cm9sbGVyPiBtX2ZpbmRDb250cm9s
bGVyOwogCisgICAgVW5pcXVlUmVmPFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcj4gbV9mb3Vu
ZFRleHRSYW5nZUNvbnRyb2xsZXI7CisKICAgICBSZWZQdHI8V2ViSW5zcGVjdG9yPiBtX2luc3Bl
Y3RvcjsKICAgICBSZWZQdHI8V2ViSW5zcGVjdG9yVUk+IG1faW5zcGVjdG9yVUk7CiAgICAgUmVm
UHRyPFJlbW90ZVdlYkluc3BlY3RvclVJPiBtX3JlbW90ZUluc3BlY3RvclVJOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5k
ZXggNmY5MWEyYTc3NDE2NmNkMmI4ODZkZmViYjRiYmE4ZjUxZmVmOGYzZC4uMWFkYTFiMzMzMzEy
MzI2ZmY5ZjMzOGQ2NmNkNWM1ZWNjMTBiMzNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zMTEsNiArMzExLDEz
IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6
U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAKICAgICBGaW5kUmVjdHNGb3JTdHJpbmdNYXRj
aGVzKFN0cmluZyBzdHJpbmcsIE9wdGlvblNldDxXZWJLaXQ6OkZpbmRPcHRpb25zPiBmaW5kT3B0
aW9ucywgdW5zaWduZWQgbWF4TWF0Y2hDb3VudCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpGbG9hdFJl
Y3Q+IG1hdGNoZXMpIEFzeW5jCiAgICAgSGlkZUZpbmRJbmRpY2F0b3IoKQorCisgICAgRmluZFRl
eHRSYW5nZXNGb3JTdHJpbmdNYXRjaGVzKFN0cmluZyBzdHJpbmcsIE9wdGlvblNldDxXZWJLaXQ6
OkZpbmRPcHRpb25zPiBmaW5kT3B0aW9ucywgdW5zaWduZWQgbWF4TWF0Y2hDb3VudCkgLT4gKFZl
Y3RvcjxXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlPiByYW5nZXMpIEFzeW5jCisgICAgRGVjb3Jh
dGVUZXh0UmFuZ2VXaXRoU3R5bGUoc3RydWN0IFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2UgcmFu
Z2UsIGVudW06dWludDhfdCBXZWJLaXQ6OkZpbmREZWNvcmF0aW9uU3R5bGUgc3R5bGUpCisgICAg
U2Nyb2xsVGV4dFJhbmdlVG9WaXNpYmxlKHN0cnVjdCBXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdl
IHJhbmdlKQorICAgIENsZWFyQWxsRGVjb3JhdGVkRm91bmRUZXh0KCk7CisgICAgRGlkQmVnaW5U
ZXh0U2VhcmNoT3BlcmF0aW9uKCk7CisgICAgRGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbigpOwog
ICAgIAogICAgIEFkZE1JTUVUeXBlV2l0aEN1c3RvbUNvbnRlbnRQcm92aWRlcihTdHJpbmcgbWlt
ZVR5cGUpCiAK
</data>
<flag name="review"
          id="476551"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="476566"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450275</attachid>
            <date>2022-01-28 14:04:58 -0800</date>
            <delta_ts>2022-01-28 15:13:54 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-235693-20220128140456.patch</filename>
            <type>text/plain</type>
            <size>22289</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ1NjMwMmYwYjMyMDdmNjI4
MDdlZmRiZDcyNGRmZTc2MGIyZjcwYzguLjhiNjc5M2Y0MTRiYWZkZjA5ZGQ2MWJhNmFmZDU3N2Fj
ZjZiY2M1NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjItMDEtMjcgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIE1pZ3JhdGUgX1VJVGV4dFNl
YXJjaGluZyBpbXBsZW1lbnRhdGlvbiB0byBiZSBiYWNrZWQgYnkgV2ViRm91bmRUZXh0UmFuZ2VD
b250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzU2OTMKKyAgICAgICAgcmRhcjovLzg4MTE3MzAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
VGltIEhvcnRvbi4KKworICAgICAgICBNaWdyYXRlIF9VSVRleHRTZWFyY2hpbmcgaW1wbGVtZW50
YXRpb24gdG8gYmUgYmFja2VkIGJ5CisgICAgICAgIFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxl
ciB0byBzdXBwb3J0IHJlc3RvcmVhYmxlIGZpbmQgcmVzdWx0cy4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9s
bFJhbmdlVG9WaXNpYmxlOmluRG9jdW1lbnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBkaWRC
ZWdpblRleHRTZWFyY2hPcGVyYXRpb25dKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGRpZEVuZFRl
eHRTZWFyY2hPcGVyYXRpb25dKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpmaW5kVGV4dFJhbmdlc0ZvclN0cmlu
Z01hdGNoZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY29yYXRlVGV4dFJh
bmdlV2l0aFN0eWxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzY3JvbGxUZXh0
UmFuZ2VUb1Zpc2libGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNsZWFyQWxs
RGVjb3JhdGVkRm91bmRUZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRC
ZWdpblRleHRTZWFyY2hPcGVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IG9mZnNldEZyb21Qb3NpdGlvbjp0b1Bvc2l0aW9u
Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1ZXJ5
U3RyaW5nOnVzaW5nT3B0aW9uczpyZXN1bHRBZ2dyZWdhdG9yOl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IGRlY29yYXRlRm91bmRUZXh0UmFuZ2U6aW5Eb2N1bWVudDp1c2luZ1N0eWxlOl0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNjcm9sbFJhbmdlVG9WaXNpYmxlOmluRG9jdW1l
bnQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRl
eHRdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkaWRCZWdpblRleHRTZWFyY2hPcGVyYXRp
b25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkaWRFbmRUZXh0U2VhcmNoT3BlcmF0aW9u
XSk6CisgICAgICAgICgrW1dLRm91bmRUZXh0UmFuZ2UgZm91bmRUZXh0UmFuZ2VXaXRoV2ViRm91
bmRUZXh0UmFuZ2U6XSk6CisgICAgICAgICgtW1dLRm91bmRUZXh0UmFuZ2Ugc3RhcnRdKToKKyAg
ICAgICAgKC1bV0tGb3VuZFRleHRSYW5nZSBlbmRdKToKKyAgICAgICAgKC1bV0tGb3VuZFRleHRS
YW5nZSB3ZWJGb3VuZFRleHRSYW5nZV0pOgorICAgICAgICAoK1tXS0ZvdW5kVGV4dFBvc2l0aW9u
IHRleHRQb3NpdGlvbldpdGhPZmZzZXQ6b3JkZXI6XSk6CisgICAgICAgICgrW1dLRm91bmRUZXh0
UmFuZ2UgZm91bmRUZXh0UmFuZ2VXaXRoUmVjdDppbmRleDpdKTogRGVsZXRlZC4KKyAgICAgICAg
KCtbV0tGb3VuZFRleHRQb3NpdGlvbiB0ZXh0UG9zaXRpb25XaXRoSW5kZXg6XSk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpmaW5kVGV4dFJhbmdlc0ZvclN0cmluZ01hdGNoZXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpkZWNvcmF0ZVRleHRSYW5nZVdpdGhTdHlsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnNjcm9sbFRleHRSYW5nZVRvVmlzaWJsZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmNsZWFyQWxsRGVjb3JhdGVkRm91bmRUZXh0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZGlkQmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Zm91bmRU
ZXh0UmFuZ2VDb250cm9sbGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbjoKKwogMjAyMi0wMS0yNyAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGRlY29yYXRpbmcgYW5kIHNjcm9s
bGluZyB0byByYW5nZXMgaW4gV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IDhmNTk4M2Ey
OWZiNmZhNjg5NWNjOTZhNzJmZGRhNGRlNjJlYTU3OGUuLjJmNDQ5MDZkNDdiYTNmMzZmZWY5ZjQ1
OWIyNzJkYjhlYTY2MmIwMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3SU9TLm1tCkBAIC0zNTMzLDExICszNTMzLDI2IEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB2aWV3cG9ydEFyZ3VtZW50c0Zyb21E
aWN0aW9uYXJ5CiAgICAgW19jb250ZW50VmlldyBkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOnJhbmdl
IGluRG9jdW1lbnQ6ZG9jdW1lbnQgdXNpbmdTdHlsZTpzdHlsZV07CiB9CiAKKy0gKHZvaWQpc2Ny
b2xsUmFuZ2VUb1Zpc2libGU6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4
dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAoreworICAgIFtfY29udGVudFZpZXcg
c2Nyb2xsUmFuZ2VUb1Zpc2libGU6cmFuZ2UgaW5Eb2N1bWVudDpkb2N1bWVudF07Cit9CisKIC0g
KHZvaWQpY2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRleHQKIHsKICAgICBbX2NvbnRlbnRWaWV3IGNs
ZWFyQWxsRGVjb3JhdGVkRm91bmRUZXh0XTsKIH0KIAorLSAodm9pZClkaWRCZWdpblRleHRTZWFy
Y2hPcGVyYXRpb24KK3sKKyAgICBbX2NvbnRlbnRWaWV3IGRpZEJlZ2luVGV4dFNlYXJjaE9wZXJh
dGlvbl07Cit9CisKKy0gKHZvaWQpZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbgoreworICAgIFtf
Y29udGVudFZpZXcgZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbl07Cit9CisKICNlbmRpZiAvLyBI
QVZFKFVJRklORElOVEVSQUNUSU9OKQogCiBAZW5kIC8vIFdLV2ViVmlldyAoV0tQcml2YXRlSU9T
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjRiMzEwZmFj
YjdkMTA0NWY0M2JiNTZmZGYwMzIzM2E2ZGU3YjY3Ny4uYTBiZDQwNmY3ZWJjMmViYTlkODM0MWFl
ZGZkOWU0MDlkZGVkN2EyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC0xMDgsNiArMTA4LDcgQEAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKICNpbmNsdWRlICJXZWJFZGl0Q29tbWFuZFByb3h5LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRD
b252ZXJzaW9uLmgiCisjaW5jbHVkZSAiV2ViRm91bmRUZXh0UmFuZ2UuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIKQEAgLTQyODAsNiArNDI4MSwzNiBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZmluZFJlY3RzRm9yU3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJp
bmcmIHN0cmluZywgT3B0aW9uU2V0PFdlYgogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6V2ViUGFnZTo6RmluZFJlY3RzRm9yU3RyaW5nTWF0Y2hlcyhzdHJpbmcsIG9wdGlvbnMsIG1h
eE1hdGNoQ291bnQpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKIH0KIAordm9pZCBXZWJQ
YWdlUHJveHk6OmZpbmRUZXh0UmFuZ2VzRm9yU3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmIHN0
cmluZywgT3B0aW9uU2V0PEZpbmRPcHRpb25zPiBvcHRpb25zLCB1bnNpZ25lZCBtYXhNYXRjaENv
dW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJGb3VuZFRleHRSYW5nZT4mJik+
JiYgY2FsbGJhY2tGdW5jdGlvbikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYlBhZ2U6OkZpbmRUZXh0UmFuZ2VzRm9yU3RyaW5nTWF0Y2hlcyhzdHJpbmcsIG9wdGlvbnMs
IG1heE1hdGNoQ291bnQpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKK30KKwordm9pZCBX
ZWJQYWdlUHJveHk6OmRlY29yYXRlVGV4dFJhbmdlV2l0aFN0eWxlKGNvbnN0IFdlYkZvdW5kVGV4
dFJhbmdlJiByYW5nZSwgRmluZERlY29yYXRpb25TdHlsZSBzdHlsZSkKK3sKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpEZWNvcmF0ZVRleHRSYW5nZVdpdGhTdHlsZShyYW5nZSwgc3R5bGUp
KTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNjcm9sbFRleHRSYW5nZVRvVmlzaWJsZShjb25z
dCBXZWJGb3VuZFRleHRSYW5nZSYgcmFuZ2UpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6U2Nyb2xsVGV4dFJhbmdlVG9WaXNpYmxlKHJhbmdlKSk7Cit9CisKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpjbGVhckFsbERlY29yYXRlZEZvdW5kVGV4dCgpCit7CisgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6Q2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRleHQoKSk7Cit9CisKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRCZWdpblRleHRTZWFyY2hPcGVyYXRpb24oKQoreworICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkRpZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbigpKTsKK30KKwordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24oKQoreworICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24oKSk7Cit9CisKIHZvaWQg
V2ViUGFnZVByb3h5OjpnZXRJbWFnZUZvckZpbmRNYXRjaChpbnQzMl90IG1hdGNoSW5kZXgpCiB7
CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R2V0SW1hZ2VGb3JGaW5kTWF0Y2gobWF0Y2hJ
bmRleCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4YzY1OTlk
YTk3NTFlMjgzYTM3NTA4Zjk5MGI1ZTVlOWM3ZWQxNjM2Li4zNGFiN2NlMTNlMzhmZGJiOTdhMWY5
NjBlZWQ4ZjhkZjYxZjdiYzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtNDEwLDYgKzQxMCw3IEBAIHN0cnVjdCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVyczsKIHN0
cnVjdCBVc2VyTWVzc2FnZTsKIHN0cnVjdCBXZWJBdXRvY29ycmVjdGlvbkRhdGE7CiBzdHJ1Y3Qg
V2ViQmFja0ZvcndhcmRMaXN0Q291bnRzOworc3RydWN0IFdlYkZvdW5kVGV4dFJhbmdlOwogc3Ry
dWN0IFdlYkhpdFRlc3RSZXN1bHREYXRhOwogc3RydWN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmU7
CiBzdHJ1Y3QgV2ViUG9wdXBJdGVtOwpAQCAtMTIwOCw2ICsxMjA5LDEzIEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpZEZhaWxUb0ZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBkaWRG
aW5kU3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8VmVjdG9yPFdlYkNv
cmU6OkludFJlY3Q+PiYgbWF0Y2hSZWN0cywgaW50MzJfdCBmaXJzdEluZGV4QWZ0ZXJTZWxlY3Rp
b24pOwogCisgICAgdm9pZCBmaW5kVGV4dFJhbmdlc0ZvclN0cmluZ01hdGNoZXMoY29uc3QgU3Ry
aW5nJiwgT3B0aW9uU2V0PEZpbmRPcHRpb25zPiwgdW5zaWduZWQgbWF4TWF0Y2hDb3VudCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViRm91bmRUZXh0UmFuZ2U+JiYpPiYmKTsKKyAg
ICB2b2lkIGRlY29yYXRlVGV4dFJhbmdlV2l0aFN0eWxlKGNvbnN0IFdlYkZvdW5kVGV4dFJhbmdl
JiwgRmluZERlY29yYXRpb25TdHlsZSk7CisgICAgdm9pZCBzY3JvbGxUZXh0UmFuZ2VUb1Zpc2li
bGUoY29uc3QgV2ViRm91bmRUZXh0UmFuZ2UmKTsKKyAgICB2b2lkIGNsZWFyQWxsRGVjb3JhdGVk
Rm91bmRUZXh0KCk7CisgICAgdm9pZCBkaWRCZWdpblRleHRTZWFyY2hPcGVyYXRpb24oKTsKKyAg
ICB2b2lkIGRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24oKTsKKwogICAgIHZvaWQgZ2V0Q29udGVu
dHNBc1N0cmluZyhDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICB2b2lkIGdldENvbnRlbnRzQXNBdHRyaWJ1dGVkU3RyaW5nKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgV2ViQ29yZTo6QXR0cmlidXRlZFN0cmluZyYpPiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRl
eCAwMjMzOWUwMWIzNzEwZmQ4NDRkOTM1ODhhYWFhMjgxNjM3NWViYjkyLi45Mzc1M2I1ZDZiZjk1
NmJiNTFkYjc0NDk3NzlhNmZkZmMxODUzN2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC00MjEsMTAgKzQy
MSw2IEBAIHVzaW5nIEltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9IE9iamVjdElkZW50
aWZpZXI8SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVuCiAgICAgV2Vha09iakNQdHI8V0tEYXRhTGlz
dFN1Z2dlc3Rpb25zQ29udHJvbD4gX2RhdGFMaXN0U3VnZ2VzdGlvbnNDb250cm9sOwogI2VuZGlm
CiAKLSNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQotICAgIFJldGFpblB0cjxVSVRleHRSYW5n
ZT4gX2ZvdW5kSGlnaGxpZ2h0ZWRUZXh0UmFuZ2U7Ci0jZW5kaWYKLQogICAgIEJPT0wgX2lzRWRp
dGFibGU7CiAgICAgQk9PTCBfc2hvd2luZ1RleHRTdHlsZU9wdGlvbnM7CiAgICAgQk9PTCBfaGFz
VmFsaWRQb3NpdGlvbkluZm9ybWF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNjZjOGE2NWE2ZTM2
YmM0NDkzNjIwZWNkNDUwNGVmZjYxMDQ5MTBhZC4uMmY4NmJlNThkN2EwZjYyY2Q5MGVjNjc0NmIw
YWY0NjYyOThmYTc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC04Myw2ICs4Myw3IEBACiAjaW1wb3J0
ICJXZWJBdXRvY29ycmVjdGlvbkRhdGEuaCIKICNpbXBvcnQgIldlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bklPUy5oIgogI2ltcG9ydCAiV2ViRXZlbnQuaCIKKyNpbXBvcnQgIldlYkZvdW5k
VGV4dFJhbmdlLmgiCiAjaW1wb3J0ICJXZWJJT1NFdmVudEZhY3RvcnkuaCIKICNpbXBvcnQgIldl
YlBhZ2VNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKQEAgLTQw
NSwxOCArNDA2LDIzIEBAIGNvbnN0ZXhwciBkb3VibGUgZmFzdGVyVGFwU2lnbmlmaWNhbnRab29t
VGhyZXNob2xkID0gMC44OwogCiBAaW50ZXJmYWNlIFdLRm91bmRUZXh0UmFuZ2UgOiBVSVRleHRS
YW5nZQogCi1AcHJvcGVydHkgKG5vbmF0b21pYykgQ0dSZWN0IHJlY3Q7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYykgTlNVSW50ZWdlciBpbmRleDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRl
Z2VyIGxvY2F0aW9uOworQHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIgbGVuZ3RoOwor
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpmcmFtZUlkZW50aWZpZXI7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgTlNVSW50ZWdlciBvcmRlcjsKIAotKyAoV0tGb3VuZFRleHRS
YW5nZSAqKWZvdW5kVGV4dFJhbmdlV2l0aFJlY3Q6KENHUmVjdClyZWN0IGluZGV4OihOU1VJbnRl
Z2VyKWluZGV4OworKyAoV0tGb3VuZFRleHRSYW5nZSAqKWZvdW5kVGV4dFJhbmdlV2l0aFdlYkZv
dW5kVGV4dFJhbmdlOihXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlKXJhbmdlOworCistIChXZWJL
aXQ6OldlYkZvdW5kVGV4dFJhbmdlKXdlYkZvdW5kVGV4dFJhbmdlOwogCiBAZW5kCiAKIEBpbnRl
cmZhY2UgV0tGb3VuZFRleHRQb3NpdGlvbiA6IFVJVGV4dFBvc2l0aW9uCiAKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBOU1VJbnRlZ2VyIGluZGV4OworQHByb3BlcnR5IChub25hdG9taWMpIE5TVUlu
dGVnZXIgb2Zmc2V0OworQHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIgb3JkZXI7CiAK
LSsgKFdLRm91bmRUZXh0UG9zaXRpb24gKil0ZXh0UG9zaXRpb25XaXRoSW5kZXg6KE5TVUludGVn
ZXIpaW5kZXg7CisrIChXS0ZvdW5kVGV4dFBvc2l0aW9uICopdGV4dFBvc2l0aW9uV2l0aE9mZnNl
dDooTlNVSW50ZWdlcilvZmZzZXQgb3JkZXI6KE5TVUludGVnZXIpb3JkZXI7CiAKIEBlbmQKIApA
QCAtNTI5OCwxMSArNTMwNCwxOCBAQCBzdGF0aWMgVmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9u
SGlnaGxpZ2h0PiBjb21wb3NpdGlvbkhpZ2hsaWdodHMoTlNBdHRyaWJ1dGVkUwogICAgIHJldHVy
biBOU09yZGVyZWRTYW1lOwogfQogCi0tIChOU0ludGVnZXIpb2Zmc2V0RnJvbVBvc2l0aW9uOihV
SVRleHRQb3NpdGlvbiAqKWZyb20gdG9Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24gKil0b1Bvc2l0
aW9uCistIChOU0ludGVnZXIpb2Zmc2V0RnJvbVBvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAqKWZy
b20gdG9Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24gKil0bwogewogI2lmIEhBVkUoVUlGSU5ESU5U
RVJBQ1RJT04pCi0gICAgaWYgKFtmcm9tIGlzS2luZE9mQ2xhc3M6W1dLRm91bmRUZXh0UG9zaXRp
b24gY2xhc3NdXSAmJiBbdG9Qb3NpdGlvbiBpc0tpbmRPZkNsYXNzOltXS0ZvdW5kVGV4dFBvc2l0
aW9uIGNsYXNzXV0pCi0gICAgICAgIHJldHVybiAoKFdLRm91bmRUZXh0UG9zaXRpb24gKilmcm9t
KS5pbmRleCAtICgoV0tGb3VuZFRleHRQb3NpdGlvbiAqKXRvUG9zaXRpb24pLmluZGV4OworICAg
IGlmIChbZnJvbSBpc0tpbmRPZkNsYXNzOltXS0ZvdW5kVGV4dFBvc2l0aW9uIGNsYXNzXV0gJiYg
W3RvIGlzS2luZE9mQ2xhc3M6W1dLRm91bmRUZXh0UG9zaXRpb24gY2xhc3NdXSkgeworICAgICAg
ICBXS0ZvdW5kVGV4dFBvc2l0aW9uICpmcm9tUG9zaXRpb24gPSAoV0tGb3VuZFRleHRQb3NpdGlv
biAqKWZyb207CisgICAgICAgIFdLRm91bmRUZXh0UG9zaXRpb24gKnRvUG9zaXRpb24gPSAoV0tG
b3VuZFRleHRQb3NpdGlvbiAqKXRvOworCisgICAgICAgIGlmIChmcm9tUG9zaXRpb24ub3JkZXIg
PT0gdG9Qb3NpdGlvbi5vcmRlcikKKyAgICAgICAgICAgIHJldHVybiBmcm9tUG9zaXRpb24ub2Zm
c2V0IC0gdG9Qb3NpdGlvbi5vZmZzZXQ7CisKKyAgICAgICAgcmV0dXJuIGZyb21Qb3NpdGlvbi5v
cmRlciAtIHRvUG9zaXRpb24ub3JkZXI7CisgICAgfQogI2VuZGlmCiAKICAgICByZXR1cm4gMDsK
QEAgLTEwMDUxLDggKzEwMDY0LDYgQEAgc3RhdGljIFJldGFpblB0cjxOU0l0ZW1Qcm92aWRlcj4g
Y3JlYXRlSXRlbVByb3ZpZGVyKGNvbnN0IFdlYktpdDo6V2ViUGFnZVByb3h5JgogLSAodm9pZClw
ZXJmb3JtVGV4dFNlYXJjaFdpdGhRdWVyeVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgdXNpbmdP
cHRpb25zOihfVUlUZXh0U2VhcmNoT3B0aW9ucyAqKW9wdGlvbnMgcmVzdWx0QWdncmVnYXRvcjoo
aWQ8X1VJVGV4dFNlYXJjaEFnZ3JlZ2F0b3I+KWFnZ3JlZ2F0b3IKIHsKICAgICBPcHRpb25TZXQ8
V2ViS2l0OjpGaW5kT3B0aW9ucz4gZmluZE9wdGlvbnM7Ci0gICAgZmluZE9wdGlvbnMuYWRkKFdl
YktpdDo6RmluZE9wdGlvbnM6OlNob3dPdmVybGF5KTsKLQogICAgIHN3aXRjaCAob3B0aW9ucy53
b3JkTWF0Y2hNZXRob2QpIHsKICAgICBjYXNlIF9VSVRleHRTZWFyY2hNYXRjaE1ldGhvZFN0YXJ0
c1dpdGg6CiAgICAgICAgIGZpbmRPcHRpb25zLmFkZChXZWJLaXQ6OkZpbmRPcHRpb25zOjpBdFdv
cmRTdGFydHMpOwpAQCAtMTAwNjcsMTIgKzEwMDc4LDEyIEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNJ
dGVtUHJvdmlkZXI+IGNyZWF0ZUl0ZW1Qcm92aWRlcihjb25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94
eSYKICAgICBpZiAob3B0aW9ucy5zdHJpbmdDb21wYXJlT3B0aW9ucyAmIE5TQ2FzZUluc2Vuc2l0
aXZlU2VhcmNoKQogICAgICAgICBmaW5kT3B0aW9ucy5hZGQoV2ViS2l0OjpGaW5kT3B0aW9uczo6
Q2FzZUluc2Vuc2l0aXZlKTsKIAotICAgIF9wYWdlLT5maW5kUmVjdHNGb3JTdHJpbmdNYXRjaGVz
KHN0cmluZywgZmluZE9wdGlvbnMsIDEwMDAsIFtzdHJpbmcsIGFnZ3JlZ2F0b3IgPSByZXRhaW5Q
dHIoYWdncmVnYXRvcildKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+JiByZWN0cykg
ewotICAgICAgICBOU1VJbnRlZ2VyIGluZGV4ID0gMDsKLSAgICAgICAgZm9yIChhdXRvJiByZWN0
IDogcmVjdHMpIHsKLSAgICAgICAgICAgIFdLRm91bmRUZXh0UmFuZ2UgKnJhbmdlID0gW1dLRm91
bmRUZXh0UmFuZ2UgZm91bmRUZXh0UmFuZ2VXaXRoUmVjdDpyZWN0IGluZGV4OmluZGV4XTsKLSAg
ICAgICAgICAgIFthZ2dyZWdhdG9yIGZvdW5kUmFuZ2U6cmFuZ2UgZm9yU2VhcmNoU3RyaW5nOnN0
cmluZyBpbkRvY3VtZW50Om5pbF07Ci0gICAgICAgICAgICBpbmRleCsrOworICAgIC8vIFRoZSBs
aW1pdCBtYXRjaGVzIHRoZSBsaW1pdCBzZXQgb24gZXhpc3RpbmcgV0tXZWJWaWV3IGZpbmQgQVBJ
LgorICAgIGNvbnN0ZXhwciBhdXRvIG1heE1hdGNoZXMgPSAxMDAwOworICAgIF9wYWdlLT5maW5k
VGV4dFJhbmdlc0ZvclN0cmluZ01hdGNoZXMoc3RyaW5nLCBmaW5kT3B0aW9ucywgbWF4TWF0Y2hl
cywgW3N0cmluZywgYWdncmVnYXRvciA9IHJldGFpblB0cihhZ2dyZWdhdG9yKV0oY29uc3QgVmVj
dG9yPFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2U+IHJhbmdlcykgeworICAgICAgICBmb3IgKGF1
dG8mIHJhbmdlIDogcmFuZ2VzKSB7CisgICAgICAgICAgICBXS0ZvdW5kVGV4dFJhbmdlICp0ZXh0
UmFuZ2UgPSBbV0tGb3VuZFRleHRSYW5nZSBmb3VuZFRleHRSYW5nZVdpdGhXZWJGb3VuZFRleHRS
YW5nZTpyYW5nZV07CisgICAgICAgICAgICBbYWdncmVnYXRvciBmb3VuZFJhbmdlOnRleHRSYW5n
ZSBmb3JTZWFyY2hTdHJpbmc6c3RyaW5nIGluRG9jdW1lbnQ6bmlsXTsKICAgICAgICAgfQogCiAg
ICAgICAgIFthZ2dyZWdhdG9yIGZpbmlzaGVkU2VhcmNoaW5nXTsKQEAgLTEwMDgxLDIxICsxMDA5
MiwzOCBAQCBzdGF0aWMgUmV0YWluUHRyPE5TSXRlbVByb3ZpZGVyPiBjcmVhdGVJdGVtUHJvdmlk
ZXIoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmCiAKIC0gKHZvaWQpZGVjb3JhdGVGb3VuZFRl
eHRSYW5nZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9j
dW1lbnRJZGVudGlmaWVyKWRvY3VtZW50IHVzaW5nU3R5bGU6KF9VSUZvdW5kVGV4dFN0eWxlKXN0
eWxlCiB7Ci0gICAgaWYgKCFbcmFuZ2UgaXNLaW5kT2ZDbGFzczpbV0tGb3VuZFRleHRSYW5nZSBj
bGFzc11dKQorICAgIGF1dG8gZm91bmRUZXh0UmFuZ2UgPSBkeW5hbWljX29iamNfY2FzdDxXS0Zv
dW5kVGV4dFJhbmdlPihyYW5nZSk7CisgICAgaWYgKCFmb3VuZFRleHRSYW5nZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgaWYgKHN0eWxlID09IF9VSUZvdW5kVGV4dFN0eWxlSGlnaGxpZ2h0ZWQp
IHsKLSAgICAgICAgX2ZvdW5kSGlnaGxpZ2h0ZWRUZXh0UmFuZ2UgPSByYW5nZTsKLSAgICAgICAg
V0tGb3VuZFRleHRSYW5nZSAqZm91bmRSYW5nZSA9IChXS0ZvdW5kVGV4dFJhbmdlICopcmFuZ2U7
Ci0gICAgICAgIF9wYWdlLT5pbmRpY2F0ZUZpbmRNYXRjaChmb3VuZFJhbmdlLmluZGV4KTsKLSAg
ICB9IGVsc2UgaWYgKHN0eWxlID09IF9VSUZvdW5kVGV4dFN0eWxlRm91bmQgJiYgX2ZvdW5kSGln
aGxpZ2h0ZWRUZXh0UmFuZ2UgPT0gcmFuZ2UpCi0gICAgICAgIF9wYWdlLT5oaWRlRmluZEluZGlj
YXRvcigpOworICAgIGF1dG8gZGVjb3JhdGlvblN0eWxlID0gV2ViS2l0OjpGaW5kRGVjb3JhdGlv
blN0eWxlOjpOb3JtYWw7CisgICAgaWYgKHN0eWxlID09IF9VSUZvdW5kVGV4dFN0eWxlRm91bmQp
CisgICAgICAgIGRlY29yYXRpb25TdHlsZSA9IFdlYktpdDo6RmluZERlY29yYXRpb25TdHlsZTo6
Rm91bmQ7CisgICAgZWxzZSBpZiAoc3R5bGUgPT0gX1VJRm91bmRUZXh0U3R5bGVIaWdobGlnaHRl
ZCkKKyAgICAgICAgZGVjb3JhdGlvblN0eWxlID0gV2ViS2l0OjpGaW5kRGVjb3JhdGlvblN0eWxl
OjpIaWdobGlnaHRlZDsKKworICAgIF9wYWdlLT5kZWNvcmF0ZVRleHRSYW5nZVdpdGhTdHlsZShb
Zm91bmRUZXh0UmFuZ2Ugd2ViRm91bmRUZXh0UmFuZ2VdLCBkZWNvcmF0aW9uU3R5bGUpOworfQor
CistICh2b2lkKXNjcm9sbFJhbmdlVG9WaXNpYmxlOihVSVRleHRSYW5nZSAqKXJhbmdlIGluRG9j
dW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQKK3sKKyAgICBp
ZiAoYXV0byBmb3VuZFRleHRSYW5nZSA9IGR5bmFtaWNfb2JqY19jYXN0PFdLRm91bmRUZXh0UmFu
Z2U+KHJhbmdlKSkKKyAgICAgICAgX3BhZ2UtPnNjcm9sbFRleHRSYW5nZVRvVmlzaWJsZShbZm91
bmRUZXh0UmFuZ2Ugd2ViRm91bmRUZXh0UmFuZ2VdKTsKIH0KIAogLSAodm9pZCljbGVhckFsbERl
Y29yYXRlZEZvdW5kVGV4dAogewotICAgIF9mb3VuZEhpZ2hsaWdodGVkVGV4dFJhbmdlID0gbmls
OwotICAgIF9wYWdlLT5oaWRlRmluZFVJKCk7CisgICAgX3BhZ2UtPmNsZWFyQWxsRGVjb3JhdGVk
Rm91bmRUZXh0KCk7Cit9CisKKy0gKHZvaWQpZGlkQmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9uCit7
CisgICAgX3BhZ2UtPmRpZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbigpOworfQorCistICh2b2lk
KWRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb24KK3sKKyAgICBfcGFnZS0+ZGlkRW5kVGV4dFNlYXJj
aE9wZXJhdGlvbigpOwogfQogCiAtIChOU0ludGVnZXIpb2Zmc2V0RnJvbVBvc2l0aW9uOihVSVRl
eHRQb3NpdGlvbiAqKWZyb20gdG9Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24gKil0b1Bvc2l0aW9u
IGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQKQEAg
LTExOTcyLDIzICsxMjAwMCwyNyBAQCBzdGF0aWMgVUlNZW51ICptZW51RnJvbUxlZ2FjeVByZXZp
ZXdPckRlZmF1bHRBY3Rpb25zKFVJVmlld0NvbnRyb2xsZXIgKnByZXZpZXdWaQogCiBAaW1wbGVt
ZW50YXRpb24gV0tGb3VuZFRleHRSYW5nZQogCi0rIChXS0ZvdW5kVGV4dFJhbmdlICopZm91bmRU
ZXh0UmFuZ2VXaXRoUmVjdDooQ0dSZWN0KXJlY3QgaW5kZXg6KE5TVUludGVnZXIpaW5kZXgKKwor
KyAoV0tGb3VuZFRleHRSYW5nZSAqKWZvdW5kVGV4dFJhbmdlV2l0aFdlYkZvdW5kVGV4dFJhbmdl
OihXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdlKXdlYlJhbmdlCiB7CiAgICAgYXV0byByYW5nZSA9
IGFkb3B0TlMoW1tXS0ZvdW5kVGV4dFJhbmdlIGFsbG9jXSBpbml0XSk7Ci0gICAgW3JhbmdlIHNl
dFJlY3Q6cmVjdF07Ci0gICAgW3JhbmdlIHNldEluZGV4OmluZGV4XTsKKyAgICBbcmFuZ2Ugc2V0
TG9jYXRpb246d2ViUmFuZ2UubG9jYXRpb25dOworICAgIFtyYW5nZSBzZXRMZW5ndGg6d2ViUmFu
Z2UubGVuZ3RoXTsKKyAgICBbcmFuZ2Ugc2V0RnJhbWVJZGVudGlmaWVyOndlYlJhbmdlLmZyYW1l
SWRlbnRpZmllcl07CisgICAgW3JhbmdlIHNldE9yZGVyOndlYlJhbmdlLm9yZGVyXTsKICAgICBy
ZXR1cm4gcmFuZ2UuYXV0b3JlbGVhc2UoKTsKIH0KIAogLSAoV0tGb3VuZFRleHRQb3NpdGlvbiAq
KXN0YXJ0CiB7Ci0gICAgV0tGb3VuZFRleHRQb3NpdGlvbiAqcG9zaXRpb24gPSBbV0tGb3VuZFRl
eHRQb3NpdGlvbiB0ZXh0UG9zaXRpb25XaXRoSW5kZXg6c2VsZi5pbmRleF07CisgICAgV0tGb3Vu
ZFRleHRQb3NpdGlvbiAqcG9zaXRpb24gPSBbV0tGb3VuZFRleHRQb3NpdGlvbiB0ZXh0UG9zaXRp
b25XaXRoT2Zmc2V0OnNlbGYubG9jYXRpb24gb3JkZXI6c2VsZi5vcmRlcl07CiAgICAgcmV0dXJu
IHBvc2l0aW9uOwogfQogCiAtIChVSVRleHRQb3NpdGlvbiAqKWVuZAogewotICAgIHJldHVybiBz
ZWxmLnN0YXJ0OworICAgIFdLRm91bmRUZXh0UG9zaXRpb24gKnBvc2l0aW9uID0gW1dLRm91bmRU
ZXh0UG9zaXRpb24gdGV4dFBvc2l0aW9uV2l0aE9mZnNldDooc2VsZi5sb2NhdGlvbiArIHNlbGYu
bGVuZ3RoKSBvcmRlcjpzZWxmLm9yZGVyXTsKKyAgICByZXR1cm4gcG9zaXRpb247CiB9CiAKIC0g
KEJPT0wpaXNFbXB0eQpAQCAtMTE5OTYsMTQgKzEyMDI4LDIwIEBAIHN0YXRpYyBVSU1lbnUgKm1l
bnVGcm9tTGVnYWN5UHJldmlld09yRGVmYXVsdEFjdGlvbnMoVUlWaWV3Q29udHJvbGxlciAqcHJl
dmlld1ZpCiAgICAgcmV0dXJuIE5POwogfQogCistIChXZWJLaXQ6OldlYkZvdW5kVGV4dFJhbmdl
KXdlYkZvdW5kVGV4dFJhbmdlCit7CisgICAgcmV0dXJuIHsgc2VsZi5sb2NhdGlvbiwgc2VsZi5s
ZW5ndGgsIHNlbGYuZnJhbWVJZGVudGlmaWVyLCBzZWxmLm9yZGVyIH07Cit9CisKIEBlbmQKIAog
QGltcGxlbWVudGF0aW9uIFdLRm91bmRUZXh0UG9zaXRpb24KIAotKyAoV0tGb3VuZFRleHRQb3Np
dGlvbiAqKXRleHRQb3NpdGlvbldpdGhJbmRleDooTlNVSW50ZWdlcilpbmRleAorKyAoV0tGb3Vu
ZFRleHRQb3NpdGlvbiAqKXRleHRQb3NpdGlvbldpdGhPZmZzZXQ6KE5TVUludGVnZXIpb2Zmc2V0
IG9yZGVyOihOU1VJbnRlZ2VyKW9yZGVyCiB7CiAgICAgYXV0byBwb3MgPSBhZG9wdE5TKFtbV0tG
b3VuZFRleHRQb3NpdGlvbiBhbGxvY10gaW5pdF0pOwotICAgIFtwb3Mgc2V0SW5kZXg6aW5kZXhd
OworICAgIFtwb3Mgc2V0T2Zmc2V0Om9mZnNldF07CisgICAgW3BvcyBzZXRPcmRlcjpvcmRlcl07
CiAgICAgcmV0dXJuIHBvcy5hdXRvcmVsZWFzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDZhMGVjOGY1MjZiN2ZlZTA3ZmZmZGU1
YzMzZDFlN2E5ZWU0NmQ4OWQuLjgxYjc0MDYyOTQ0NDk3M2I0MDc4OTQ5YjM3ZDkzNTg5N2Q3OTk1
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC05MSw2ICs5MSw4IEBACiAjaW5jbHVkZSAiV2ViRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAi
V2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisjaW5j
bHVkZSAiV2ViRm91bmRUZXh0UmFuZ2UuaCIKKyNpbmNsdWRlICJXZWJGb3VuZFRleHRSYW5nZUNv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXIuaCIKQEAgLTUwOSw2
ICs1MTEsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgLCBtX3Jlc291cmNlTG9hZENs
aWVudChtYWtlVW5pcXVlPEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlJlc291cmNlTG9hZENsaWVudD4o
KSkKICAgICAsIG1fdWlDbGllbnQobWFrZVVuaXF1ZTxBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdl
VUlDbGllbnQ+KCkpCiAgICAgLCBtX2ZpbmRDb250cm9sbGVyKG1ha2VVbmlxdWVSZWY8RmluZENv
bnRyb2xsZXI+KHRoaXMpKQorICAgICwgbV9mb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIobWFrZVVu
aXF1ZVJlZjxXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXI+KCp0aGlzKSkKICAgICAsIG1faW5z
cGVjdG9yVGFyZ2V0Q29udHJvbGxlcihtYWtlVW5pcXVlPFdlYlBhZ2VJbnNwZWN0b3JUYXJnZXRD
b250cm9sbGVyPigqdGhpcykpCiAgICAgLCBtX3VzZXJDb250ZW50Q29udHJvbGxlcihXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXI6OmdldE9yQ3JlYXRlKHBhcmFtZXRlcnMudXNlckNvbnRlbnRDb250
cm9sbGVyUGFyYW1ldGVycy5pZGVudGlmaWVyKSkKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCkBA
IC00NjkyLDYgKzQ2OTUsMzYgQEAgdm9pZCBXZWJQYWdlOjpoaWRlRmluZEluZGljYXRvcigpCiAg
ICAgZmluZENvbnRyb2xsZXIoKS5oaWRlRmluZEluZGljYXRvcigpOwogfQogCit2b2lkIFdlYlBh
Z2U6OmZpbmRUZXh0UmFuZ2VzRm9yU3RyaW5nTWF0Y2hlcyhjb25zdCBTdHJpbmcmIHN0cmluZywg
T3B0aW9uU2V0PEZpbmRPcHRpb25zPiBvcHRpb25zLCB1aW50MzJfdCBtYXhNYXRjaENvdW50LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJGb3VuZFRleHRSYW5nZT4mJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgZm91bmRUZXh0UmFuZ2VDb250cm9sbGVyKCkuZmluZFRl
eHRSYW5nZXNGb3JTdHJpbmdNYXRjaGVzKHN0cmluZywgb3B0aW9ucywgbWF4TWF0Y2hDb3VudCwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYlBhZ2U6OmRlY29yYXRl
VGV4dFJhbmdlV2l0aFN0eWxlKGNvbnN0IFdlYkZvdW5kVGV4dFJhbmdlJiByYW5nZSwgV2ViS2l0
OjpGaW5kRGVjb3JhdGlvblN0eWxlIHN0eWxlKQoreworICAgIGZvdW5kVGV4dFJhbmdlQ29udHJv
bGxlcigpLmRlY29yYXRlVGV4dFJhbmdlV2l0aFN0eWxlKHJhbmdlLCBzdHlsZSk7Cit9CisKK3Zv
aWQgV2ViUGFnZTo6c2Nyb2xsVGV4dFJhbmdlVG9WaXNpYmxlKGNvbnN0IFdlYkZvdW5kVGV4dFJh
bmdlJiByYW5nZSkKK3sKKyAgICBmb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIoKS5zY3JvbGxUZXh0
UmFuZ2VUb1Zpc2libGUocmFuZ2UpOworfQorCit2b2lkIFdlYlBhZ2U6OmNsZWFyQWxsRGVjb3Jh
dGVkRm91bmRUZXh0KCkKK3sKKyAgICBmb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIoKS5jbGVhckFs
bERlY29yYXRlZEZvdW5kVGV4dCgpOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZEJlZ2luVGV4dFNl
YXJjaE9wZXJhdGlvbigpCit7CisgICAgZm91bmRUZXh0UmFuZ2VDb250cm9sbGVyKCkuZGlkQmVn
aW5UZXh0U2VhcmNoT3BlcmF0aW9uKCk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6ZGlkRW5kVGV4dFNl
YXJjaE9wZXJhdGlvbigpCit7CisgICAgZm91bmRUZXh0UmFuZ2VDb250cm9sbGVyKCkuZGlkRW5k
VGV4dFNlYXJjaE9wZXJhdGlvbigpOworfQorCiB2b2lkIFdlYlBhZ2U6OmdldEltYWdlRm9yRmlu
ZE1hdGNoKHVpbnQzMl90IG1hdGNoSW5kZXgpCiB7CiAgICAgZmluZENvbnRyb2xsZXIoKS5nZXRJ
bWFnZUZvckZpbmRNYXRjaChtYXRjaEluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAwMjkyMDc0ZWZkZTJkN2RkYjZiMDZhYjJkNWIxY2MxYjhj
ODVkMzY1Li4zYzdjMjhjNTllNTk5OGYwYWI3Mzg5MzdjYTAxYjA2OTVlMDM5YWQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yOTYsNiArMjk2LDcg
QEAgY2xhc3MgV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyOwogY2xhc3MgV2ViRGF0ZVRpbWVD
aG9vc2VyOwogY2xhc3MgV2ViRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBXZWJFdmVudDsKK2NsYXNz
IFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlcjsKIGNsYXNzIFBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXI7CiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOwogY2xhc3MgV2ViRnJhbWU7CkBAIC0z
MjMsNiArMzI0LDcgQEAgY2xhc3MgV2ViV2hlZWxFdmVudDsKIGNsYXNzIFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOwogCiBlbnVtIGNsYXNzIEZpbmRPcHRpb25zIDogdWludDE2X3Q7CitlbnVt
IGNsYXNzIEZpbmREZWNvcmF0aW9uU3R5bGUgOiB1aW50OF90OwogZW51bSBjbGFzcyBEcmFnQ29u
dHJvbGxlckFjdGlvbiA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFRleHRSZWNvZ25pdGlvblVwZGF0
ZVJlc3VsdCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlw
ZSA6IHVpbnQ4X3Q7CkBAIC0zNDMsNiArMzQ1LDcgQEAgc3RydWN0IFRleHRJbnB1dENvbnRleHQ7
CiBzdHJ1Y3QgVXNlck1lc3NhZ2U7CiBzdHJ1Y3QgV2ViQXV0b2NvcnJlY3Rpb25EYXRhOwogc3Ry
dWN0IFdlYkF1dG9jb3JyZWN0aW9uQ29udGV4dDsKK3N0cnVjdCBXZWJGb3VuZFRleHRSYW5nZTsK
IHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogc3RydWN0IFdlYlByZWZlcmVuY2Vz
U3RvcmU7CiBzdHJ1Y3QgV2Vic2l0ZVBvbGljaWVzRGF0YTsKQEAgLTcwNSw2ICs3MDgsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFdlYkV2ZW50KiBjdXJyZW50RXZlbnQoKTsKIAogICAg
IEZpbmRDb250cm9sbGVyJiBmaW5kQ29udHJvbGxlcigpIHsgcmV0dXJuIG1fZmluZENvbnRyb2xs
ZXIuZ2V0KCk7IH0KKyAgICBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXImIGZvdW5kVGV4dFJh
bmdlQ29udHJvbGxlcigpIHsgcmV0dXJuIG1fZm91bmRUZXh0UmFuZ2VDb250cm9sbGVyLmdldCgp
OyB9CiAKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXImIGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgeyBy
ZXR1cm4gbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5nZXQoKTsgfQpAQCAt
MTc1NSw2ICsxNzU5LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBmaW5kUmVjdHNGb3JTdHJpbmdN
YXRjaGVzKGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxGaW5kT3B0aW9ucz4sIHVpbnQzMl90IG1h
eE1hdGNoQ291bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkZsb2F0
UmVjdD4mJik+JiYpOwogICAgIHZvaWQgaGlkZUZpbmRJbmRpY2F0b3IoKTsKIAorICAgIHZvaWQg
ZmluZFRleHRSYW5nZXNGb3JTdHJpbmdNYXRjaGVzKGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxG
aW5kT3B0aW9ucz4sIHVpbnQzMl90IG1heE1hdGNoQ291bnQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoVmVjdG9yPFdlYkZvdW5kVGV4dFJhbmdlPiYmKT4mJik7CisgICAgdm9pZCBkZWNvcmF0ZVRl
eHRSYW5nZVdpdGhTdHlsZShjb25zdCBXZWJGb3VuZFRleHRSYW5nZSYsIFdlYktpdDo6RmluZERl
Y29yYXRpb25TdHlsZSk7CisgICAgdm9pZCBzY3JvbGxUZXh0UmFuZ2VUb1Zpc2libGUoY29uc3Qg
V2ViRm91bmRUZXh0UmFuZ2UmKTsKKyAgICB2b2lkIGNsZWFyQWxsRGVjb3JhdGVkRm91bmRUZXh0
KCk7CisgICAgdm9pZCBkaWRCZWdpblRleHRTZWFyY2hPcGVyYXRpb24oKTsKKyAgICB2b2lkIGRp
ZEVuZFRleHRTZWFyY2hPcGVyYXRpb24oKTsKKwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKICAgICB2b2lkIHNlbmRWaWV3cG9ydEF0dHJpYnV0ZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6
OlZpZXdwb3J0QXJndW1lbnRzJik7CiAjZW5kaWYKQEAgLTIwNjAsNiArMjA3MSw4IEBAIHByaXZh
dGU6CiAKICAgICBVbmlxdWVSZWY8RmluZENvbnRyb2xsZXI+IG1fZmluZENvbnRyb2xsZXI7CiAK
KyAgICBVbmlxdWVSZWY8V2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyPiBtX2ZvdW5kVGV4dFJh
bmdlQ29udHJvbGxlcjsKKwogICAgIFJlZlB0cjxXZWJJbnNwZWN0b3I+IG1faW5zcGVjdG9yOwog
ICAgIFJlZlB0cjxXZWJJbnNwZWN0b3JVST4gbV9pbnNwZWN0b3JVSTsKICAgICBSZWZQdHI8UmVt
b3RlV2ViSW5zcGVjdG9yVUk+IG1fcmVtb3RlSW5zcGVjdG9yVUk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA2Zjkx
YTJhNzc0MTY2Y2QyYjg4NmRmZWJiNGJiYThmNTFmZWY4ZjNkLi4xYWRhMWIzMzMzMTIzMjZmZjlm
MzM4ZDY2Y2Q1YzVlY2MxMGIzM2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTMxMSw2ICszMTEsMTMgQEAgR2Vu
ZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZFR5cGUKIAogICAgIEZpbmRSZWN0c0ZvclN0cmluZ01hdGNoZXMoU3Ry
aW5nIHN0cmluZywgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlvbnM+IGZpbmRPcHRpb25zLCB1
bnNpZ25lZCBtYXhNYXRjaENvdW50KSAtPiAoVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4gbWF0
Y2hlcykgQXN5bmMKICAgICBIaWRlRmluZEluZGljYXRvcigpCisKKyAgICBGaW5kVGV4dFJhbmdl
c0ZvclN0cmluZ01hdGNoZXMoU3RyaW5nIHN0cmluZywgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9w
dGlvbnM+IGZpbmRPcHRpb25zLCB1bnNpZ25lZCBtYXhNYXRjaENvdW50KSAtPiAoVmVjdG9yPFdl
YktpdDo6V2ViRm91bmRUZXh0UmFuZ2U+IHJhbmdlcykgQXN5bmMKKyAgICBEZWNvcmF0ZVRleHRS
YW5nZVdpdGhTdHlsZShzdHJ1Y3QgV2ViS2l0OjpXZWJGb3VuZFRleHRSYW5nZSByYW5nZSwgZW51
bTp1aW50OF90IFdlYktpdDo6RmluZERlY29yYXRpb25TdHlsZSBzdHlsZSkKKyAgICBTY3JvbGxU
ZXh0UmFuZ2VUb1Zpc2libGUoc3RydWN0IFdlYktpdDo6V2ViRm91bmRUZXh0UmFuZ2UgcmFuZ2Up
CisgICAgQ2xlYXJBbGxEZWNvcmF0ZWRGb3VuZFRleHQoKTsKKyAgICBEaWRCZWdpblRleHRTZWFy
Y2hPcGVyYXRpb24oKTsKKyAgICBEaWRFbmRUZXh0U2VhcmNoT3BlcmF0aW9uKCk7CiAgICAgCiAg
ICAgQWRkTUlNRVR5cGVXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVyKFN0cmluZyBtaW1lVHlwZSkK
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>