<?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>220944</bug_id>
          
          <creation_ts>2021-01-25 13:45:17 -0800</creation_ts>
          <short_desc>Expose the value of `&lt;meta name=&quot;theme-color&quot; content=&quot;...&quot;&gt;` as SPI</short_desc>
          <delta_ts>2021-04-13 14:29:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=221015</see_also>
          <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>
          
          <blocked>224509</blocked>
    
    <blocked>224389</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>kangil.han</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1722245</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-01-25 13:45:17 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722246</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-25 13:46:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/73586711&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722247</commentid>
    <comment_count>2</comment_count>
      <attachid>418330</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-01-25 13:46:38 -0800</bug_when>
    <thetext>Created attachment 418330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722263</commentid>
    <comment_count>3</comment_count>
      <attachid>418330</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-01-25 14:03:33 -0800</bug_when>
    <thetext>Comment on attachment 418330
Patch

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

&gt; Source/WebCore/html/HTMLMetaElement.cpp:70
&gt; +        process();

This seems... surprising? Did we really not support dynamic change of name before? Should we bother now?

&gt; Source/WebKit/UIProcess/WebPageProxy.h:649
&gt; +    // Set by the WebProcess when parsing `&lt;meta name=&quot;theme-color&quot; content=&quot;...&quot;&gt;`.

Maybe &quot;corresponds to the web content&apos;s `&lt;meta name=&quot;theme-color&quot; ...`&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722265</commentid>
    <comment_count>4</comment_count>
      <attachid>418330</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-01-25 14:07:35 -0800</bug_when>
    <thetext>Comment on attachment 418330
Patch

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

&gt;&gt; Source/WebCore/html/HTMLMetaElement.cpp:70
&gt;&gt; +        process();
&gt; 
&gt; This seems... surprising? Did we really not support dynamic change of name before? Should we bother now?

AFAIK we did not.  I was surprised as well.  According to the spec we should &lt;https://html.spec.whatwg.org/multipage/semantics.html#meta-theme-color&gt;
&gt; If any meta elements are inserted into the document or removed from the document, or existing meta elements have their name or content attributes changed, user agents must re-run the above algorithm and apply the result to any affected UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722266</commentid>
    <comment_count>5</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-01-25 14:08:37 -0800</bug_when>
    <thetext>Also, something I just realized, I should double-check and make sure that the `_themeColor` is `nil`-d out if the page navigates and the new page doesn&apos;t have a `&lt;meta name=&quot;theme-color&quot; content=&quot;...&quot;&gt;` (or at least that `_themeColor` stays `nil` until that node is processed).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722638</commentid>
    <comment_count>6</comment_count>
      <attachid>418457</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-01-26 11:50:10 -0800</bug_when>
    <thetext>Created attachment 418457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722645</commentid>
    <comment_count>7</comment_count>
      <attachid>418457</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-01-26 12:00:10 -0800</bug_when>
    <thetext>Comment on attachment 418457
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:3911
&gt; +    layerTransaction.setThemeColor(corePage()-&gt;themeColor());

Should this reset m_pendingThemeColorChange? I guess it doesn&apos;t matter, it&apos;s just a bit funny that it gets stuck if UI-side compositing is on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722653</commentid>
    <comment_count>8</comment_count>
      <attachid>418460</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-01-26 12:16:21 -0800</bug_when>
    <thetext>Created attachment 418460
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722771</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-26 16:31:28 -0800</bug_when>
    <thetext>Committed r271920: &lt;https://trac.webkit.org/changeset/271920&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418460.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418330</attachid>
            <date>2021-01-25 13:46:38 -0800</date>
            <delta_ts>2021-01-26 11:50:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>72198083.diff</filename>
            <type>text/plain</type>
            <size>30028</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ZjQ5ZTA2NGU0YzEuLjMwMTc1NDljNjVhNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI5IEBACisyMDIxLTAxLTI1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBFeHBvc2UgdGhlIHZhbHVlIG9mIGA8bWV0YSBuYW1lPSJ0aGVtZS1jb2xv
ciIgY29udGVudD0iLi4uIj5gIGFzIFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIwOTQ0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjE5ODA4
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0
bWwvSFRNTE1ldGFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGFFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0YUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRhRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3Rv
cik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGFFbGVtZW50Ojpwcm9jZXNzKToK
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cHJvY2Vzc1RoZW1lQ29sb3IpOiBBZGRlZC4K
KyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50Ojp0aGVtZUNvbG9yQ2hhbmdlZCBjb25zdCk6IEFkZGVkLgorICAgICAgICBDb252ZXJ0
IHRoZSBgY29udGVudGAgdmFsdWUgdG8gYSBgQ29sb3JgIGFuZCBzZW5kIGl0IHRvIHRoZSBVSVBy
b2Nlc3MuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Db2xvckNvY29hLmg6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBF
eHBvc2UgdGhpcyBmaWxlIGFuZCBleHBvcnQgaXRzIGZ1bmN0aW9ucyBzbyB0aGV5IGNhbiBiZSB1
c2VkIGluIFdlYktpdC4KKwogMjAyMC0xMi0wOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIEludmFsaWRhdGUgbGluZSBsYXlv
dXQgcGF0aCBmb3IgY2hpbGRyZW4gb2YgaW5saW5lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRhYWVjNTc1NDk3MS4uYTQzODYx
OGU5ZmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC01MjUxLDcgKzUyNTEsNyBAQAogCQlGNDgyMjMxMzFFMzg2RTI0MDA2NkZD
NzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNDgyMjMxMjFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0
ZWJvYXJkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRjQ4RDJBNkMyMTU2MjNCNDAwQzY3NTJCIC8qIEZvbnRTaGFkb3cuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEQyQTZBMjE1NjIzQjQwMEM2NzUy
QiAvKiBGb250U2hhZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRjQ4RDJBN0UyMTU3MTgyNjAwQzY3NTJCIC8qIEZvbnRBdHRyaWJ1dGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkE3MTIx
NTZEQzBBMDBDNjc1MkIgLyogRm9udEF0dHJpYnV0ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGNDhEMkFBNTIxNTk3NDBEMDBDNjc1MkIgLyog
Q29sb3JDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQ4RDJBQTMyMTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29jb2EuaCAqLzsgfTsKKwkJRjQ4
RDJBQTUyMTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEQyQUEzMjE1OTc0MEQwMEM2NzUyQiAvKiBD
b2xvckNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRjQ5Nzg2ODgxRkY0NUZBNTAwRTA2MEFCIC8qIFBhc3RlYm9hcmRJdGVtSW5mby5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5Nzg2ODcxRkY0
NUZBNTAwRTA2MEFCIC8qIFBhc3RlYm9hcmRJdGVtSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0QjQyMkM0MjIwQzA1NjgwMDlFMUU3RCAv
KiBET01QYXN0ZUFjY2Vzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjRCNDIyQzIyMjBDMDAwMDAwOUUxRTdEIC8qIERPTVBhc3RlQWNjZXNzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjRCRkI5ODUx
RTFEREY5QjAwODYyQzI0IC8qIER1bXBFZGl0aW5nSGlzdG9yeS5qcyBpbiBDb3B5IFNjcmlwdHMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4Mzg5ODMxRTFEREYyQjAwNzZC
N0VBIC8qIER1bXBFZGl0aW5nSGlzdG9yeS5qcyAqLzsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IDhkMzJiMDQ4NmExMS4uMzA3NjI4MjY4OGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJCZWZvcmVVbmxvYWRFdmVudC5oIgogI2lu
Y2x1ZGUgIkNEQVRBU2VjdGlvbi5oIgogI2luY2x1ZGUgIkNTU0ZvbnRTZWxlY3Rvci5oIgorI2lu
Y2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKICNp
bmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5o
IgpAQCAtMzc5NCw2ICszNzk1LDE1IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVZpZXdwb3J0QXJn
dW1lbnRzKCkKICAgICB9CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OnByb2Nlc3NUaGVtZUNvbG9yKGNv
bnN0IFN0cmluZyYgdGhlbWVDb2xvcikKK3sKKyAgICBhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgp
OworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZS0+Y2hyb21lKCku
Y2xpZW50KCkudGhlbWVDb2xvckNoYW5nZWQoQ1NTUGFyc2VyOjpwYXJzZUNvbG9yKHRoZW1lQ29s
b3IpKTsKK30KKwogI2lmIEVOQUJMRShEQVJLX01PREVfQ1NTKQogc3RhdGljIHZvaWQgcHJvY2Vz
c0NvbG9yU2NoZW1lU3RyaW5nKFN0cmluZ1ZpZXcgY29sb3JTY2hlbWUsIGNvbnN0IFdURjo6RnVu
Y3Rpb248dm9pZChTdHJpbmdWaWV3IGtleSk+JiBjYWxsYmFjaykKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKaW5kZXggZWUwM2Y1ZjRiZmZhLi5lNGU0NzU0ZTdjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC05MDQsNiArOTA0LDcgQEAgcHVibGljOgogICAgIHZvaWQgcHJvY2Vzc0Rpc2FibGVkQWRh
cHRhdGlvbnMoY29uc3QgU3RyaW5nJiBhZGFwdGF0aW9ucyk7CiAgICAgdm9pZCB1cGRhdGVWaWV3
cG9ydEFyZ3VtZW50cygpOwogICAgIHZvaWQgcHJvY2Vzc1JlZmVycmVyUG9saWN5KGNvbnN0IFN0
cmluZyYgcG9saWN5LCBSZWZlcnJlclBvbGljeVNvdXJjZSk7CisgICAgdm9pZCBwcm9jZXNzVGhl
bWVDb2xvcihjb25zdCBTdHJpbmcmIHRoZW1lQ29sb3IpOwogCiAjaWYgRU5BQkxFKERBUktfTU9E
RV9DU1MpCiAgICAgdm9pZCBwcm9jZXNzQ29sb3JTY2hlbWUoY29uc3QgU3RyaW5nJiBjb2xvclNj
aGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5jcHAKaW5kZXggYTQzYjg4
YWQ3NzgyLi5kM2NjMTQ3YTcyYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1ldGFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVu
dC5jcHAKQEAgLTUyLDE1ICs1MiwyMyBAQCBSZWY8SFRNTE1ldGFFbGVtZW50PiBIVE1MTWV0YUVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bQogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEhUTUxNZXRhRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCit2b2lkIEhUTUxNZXRhRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiByZWFzb24pCit7CisgICAg
SFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBy
ZWFzb24pOworCisgICAgaWYgKG5hbWUgPT0gbmFtZUF0dHIgJiYgZXF1YWxMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2Uob2xkVmFsdWUsICJ0aGVtZS1jb2xvciIpICYmICFlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShuZXdWYWx1ZSwgInRoZW1lLWNvbG9yIikpCisgICAgICAgIGRvY3VtZW50
KCkucHJvY2Vzc1RoZW1lQ29sb3IoZW1wdHlTdHJpbmcoKSk7Cit9CisKIHZvaWQgSFRNTE1ldGFF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAobmFtZSA9PSBodHRwX2VxdWl2QXR0cikKICAg
ICAgICAgcHJvY2VzcygpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gY29udGVudEF0dHIpCiAgICAg
ICAgIHByb2Nlc3MoKTsKLSAgICBlbHNlIGlmIChuYW1lID09IG5hbWVBdHRyKSB7Ci0gICAgICAg
IC8vIERvIG5vdGhpbmcKLSAgICB9IGVsc2UKKyAgICBlbHNlIGlmIChuYW1lID09IG5hbWVBdHRy
KQorICAgICAgICBwcm9jZXNzKCk7CisgICAgZWxzZQogICAgICAgICBIVE1MRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCkBAIC03Nyw2ICs4NSwxNCBAQCB2b2lkIEhU
TUxNZXRhRWxlbWVudDo6ZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpCiAgICAgcHJvY2VzcygpOwog
fQogCit2b2lkIEhUTUxNZXRhRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlw
ZSByZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSkKK3sK
KyAgICBIVE1MRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihyZW1vdmFsVHlwZSwgb2xkUGFy
ZW50T2ZSZW1vdmVkVHJlZSk7CisKKyAgICBpZiAoIWlzQ29ubmVjdGVkKCkgJiYgZXF1YWxMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2UobmFtZSgpLCAidGhlbWUtY29sb3IiKSkKKyAgICAgICAgb2xk
UGFyZW50T2ZSZW1vdmVkVHJlZS5kb2N1bWVudCgpLnByb2Nlc3NUaGVtZUNvbG9yKGVtcHR5U3Ry
aW5nKCkpOworfQorCiB2b2lkIEhUTUxNZXRhRWxlbWVudDo6cHJvY2VzcygpCiB7CiAgICAgLy8g
Q2hhbmdpbmcgYSBtZXRhIHRhZyB3aGlsZSBpdCdzIG5vdCBpbiB0aGUgdHJlZSBzaG91bGRuJ3Qg
aGF2ZSBhbnkgZWZmZWN0IG9uIHRoZSBkb2N1bWVudC4KQEAgLTk1LDYgKzExMSw4IEBAIHZvaWQg
SFRNTE1ldGFFbGVtZW50Ojpwcm9jZXNzKCkKICAgICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShuYW1lKCksICJjb2xvci1zY2hlbWUiKSB8fCBlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShuYW1lKCksICJzdXBwb3J0ZWQtY29sb3Itc2NoZW1lcyIpKQogICAgICAg
ICBkb2N1bWVudCgpLnByb2Nlc3NDb2xvclNjaGVtZShjb250ZW50VmFsdWUpOwogI2VuZGlmCisg
ICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobmFtZSgpLCAidGhlbWUt
Y29sb3IiKSkKKyAgICAgICAgZG9jdW1lbnQoKS5wcm9jZXNzVGhlbWVDb2xvcihjb250ZW50VmFs
dWUpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2UobmFtZSgpLCAiZm9ybWF0LWRldGVjdGlvbiIpKQogICAgICAgICBk
b2N1bWVudCgpLnByb2Nlc3NGb3JtYXREZXRlY3Rpb24oY29udGVudFZhbHVlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCmluZGV4IDQzZTA5ZWY4NDE1OS4uMzM1MGYxZTgzNGY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKQEAgLTM5LDkgKzM5LDExIEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTE1ldGFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwogCisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYg
bmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiA9IE1vZGlmaWVkRGlyZWN0bHkp
IGZpbmFsOwogICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKICAgICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBp
bnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7
CiAgICAgdm9pZCBkaWRGaW5pc2hJbnNlcnRpbmdOb2RlKCk7CisgICAgdm9pZCByZW1vdmVkRnJv
bUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAKICAgICB2b2lk
IHByb2Nlc3MoKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAzYTllMWQ2
NjkwOTcuLmRhYTgzYWIzODU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0y
MjYsNiArMjI2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBDb2xvciB1bmRlcmxheUNvbG9y
KCkgY29uc3QgeyByZXR1cm4gQ29sb3IoKTsgfQogCisgICAgdmlydHVhbCB2b2lkIHRoZW1lQ29s
b3JDaGFuZ2VkKENvbG9yKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFnZUV4dGVuZGVk
QmFja2dyb3VuZENvbG9yRGlkQ2hhbmdlKENvbG9yKSBjb25zdCB7IH0KIAogICAgIHZpcnR1YWwg
dm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUmLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNl
TmFtZSwgRGF0YWJhc2VEZXRhaWxzKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Db2xvckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Db2xvckNvY29hLmgKaW5kZXggZjcwNjQ3MDdmZDA4Li5mMTMx
MTNkYWM0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0NvbG9yQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9Db2xvckNvY29hLmgKQEAgLTMzLDExICszMywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBDb2xvcjsKIAogI2lmIFVTRShBUFBLSVQpCi1OU0NvbG9yICpwbGF0Zm9ybUNvbG9y
KGNvbnN0IENvbG9yJik7CitXRUJDT1JFX0VYUE9SVCBOU0NvbG9yICpwbGF0Zm9ybUNvbG9yKGNv
bnN0IENvbG9yJik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1VSUNvbG9y
ICpwbGF0Zm9ybUNvbG9yKGNvbnN0IENvbG9yJik7CitXRUJDT1JFX0VYUE9SVCBVSUNvbG9yICpw
bGF0Zm9ybUNvbG9yKGNvbnN0IENvbG9yJik7CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCAwOTQyMGZmNWNkOTAuLjg4NDNkMzk2YmY4NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNCBAQAorMjAyMS0wMS0yNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CisKKyAgICAgICAgRXhwb3NlIHRoZSB2YWx1ZSBvZiBgPG1ldGEgbmFtZT0idGhlbWUtY29s
b3IiIGNvbnRlbnQ9Ii4uLiI+YCBhcyBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyMDk0NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzIxOTgw
ODM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp0aGVtZUNvbG9yQ2hhbmdlZCBjb25zdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dGhlbWVD
b2xvciBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnRoZW1lQ29sb3JDaGFuZ2VkKTogQWRk
ZWQuCisgICAgICAgIFNlbmQgdGhlIGBDb2xvcmAgdmFsdWUgZnJvbSBXZWJDb3JlIHRvIHRoZSBV
SVByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50Ojp0aGVtZUNvbG9yV2lsbENoYW5nZSk6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50Ojp0aGVtZUNvbG9yRGlkQ2hhbmdlKTogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGxDb2NvYTo6dGhlbWVDb2xvcldpbGxDaGFuZ2UpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGxDb2NvYTo6dGhlbWVDb2xvckRpZENoYW5nZSk6IEFk
ZGVkLgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgT2JqQyBLVk8gb2YgYC1bV0tXZWJWaWV3IF90
aGVtZUNvbG9yXWAuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF90aGVtZUNvbG9yXSk6IEFkZGVkLgorCiAyMDIwLTEyLTA4ICBQ
ZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIENy
ZWF0ZSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgYXVkaW8gc2VydmljZSB3aGVuIE1lZGlhIGluIEdQ
VSBwcm9jZXNzIGlzIG5vdCBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAyZGQ3ZWE1ZWE5YzEuLmFkMDc5MjgwOWJhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0z
MCw2ICszMCw3IEBACiAjaW1wb3J0ICJBUElGcmFtZVRyZWVOb2RlLmgiCiAjaW1wb3J0ICJBUElQ
YWdlQ29uZmlndXJhdGlvbi5oIgogI2ltcG9ydCAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgi
CisjaW1wb3J0ICJDb2NvYUNvbG9yLmgiCiAjaW1wb3J0ICJDb2NvYUltYWdlLmgiCiAjaW1wb3J0
ICJDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmgiCiAjaW1wb3J0ICJDb250ZW50QXNTdHJp
bmdJbmNsdWRlc0NoaWxkRnJhbWVzLmgiCkBAIC0xMTQsNiArMTE1LDcgQEAKICNpbXBvcnQgIl9X
S1Zpc2l0ZWRMaW5rU3RvcmVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLV2Vic2l0ZVBvbGljaWVz
SW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvQXR0cmlidXRlZFN0cmluZy5oPgorI2ltcG9y
dCA8V2ViQ29yZS9Db2xvckNvY29hLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yU2VyaWFsaXph
dGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9FbGVtZW50Q29udGV4dC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9KU0RPTUJpbmRpbmcuaD4KQEAgLTI3MjYsNiArMjcyOCwxNCBAQCAtICh2b2lkKV9zZXRD
YW5Vc2VDcmVkZW50aWFsU3RvcmFnZTooQk9PTCljYW5Vc2VDcmVkZW50aWFsU3RvcmFnZQogICAg
IF9wYWdlLT5zZXRDYW5Vc2VDcmVkZW50aWFsU3RvcmFnZShjYW5Vc2VDcmVkZW50aWFsU3RvcmFn
ZSk7CiB9CiAKKy0gKENvY29hQ29sb3IgKilfdGhlbWVDb2xvcgoreworICAgIGF1dG8gdGhlbWVD
b2xvciA9IF9wYWdlLT50aGVtZUNvbG9yKCk7CisgICAgaWYgKCF0aGVtZUNvbG9yLmlzVmFsaWQo
KSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICByZXR1cm4gV2ViQ29yZTo6cGxhdGZvcm1Db2xv
cih0aGVtZUNvbG9yKTsKK30KKwogLSAoaWQgPF9XS0lucHV0RGVsZWdhdGU+KV9pbnB1dERlbGVn
YXRlCiB7CiAgICAgcmV0dXJuIF9pbnB1dERlbGVnYXRlLmdldEF1dG9yZWxlYXNlZCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
LmgKaW5kZXggODU0YjIzMzEwMTMyLi41NzQwZGExYThjZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMzU3LDYg
KzM1NywyMCBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIAogQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2U6KSBCT09MIF9jYW5Vc2VDcmVkZW50aWFs
U3RvcmFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogCisvKiEgQGFic3RyYWN0IFRoZSB0aGVtZSBjb2xvciBvZiB0aGUgYWN0aXZlIHBhZ2Uu
CisgQGRpc2N1c3Npb24gVGhpcyBpcyB0aGUgdmFsdWUgb2YgdGhlIG1vc3QgcmVjZW50bHkgY3Jl
YXRlZCBvciBtb2RpZmllZAorIEB0ZXh0YmxvY2sKKyAgICA8bWV0YSBuYW1lPSJ0aGVtZS1jb2xv
ciIgY29udGVudHM9Ii4uLiI+CisgQC90ZXh0YmxvY2sKKyBAbGluayBXS1dlYlZpZXcgQC9saW5r
IGlzIGtleS12YWx1ZSBvYnNlcnZpbmcgKEtWTykgY29tcGxpYW50IGZvciB0aGlzCisgcHJvcGVy
dHkuCisgKi8KKyNpZiBUQVJHRVRfT1NfSVBIT05FCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIFVJQ29sb3IgKl90aGVtZUNvbG9yIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19U
QkEpKTsKKyNlbHNlCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQ29sb3IgKl90
aGVtZUNvbG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworI2VuZGlmCisK
IEBlbmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EuaAppbmRleCBhNDgwYjM4NGNmZWUuLjU2
ZTU2NTdkM2JmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFn
ZUNsaWVudEltcGxDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Bh
Z2VDbGllbnRJbXBsQ29jb2EuaApAQCAtNDksNiArNDksOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHBhZ2VDbG9zZWQoKSBvdmVycmlkZTsKIAorICAgIHZvaWQgdGhlbWVDb2xvcldpbGxDaGFuZ2Uo
KSBmaW5hbDsKKyAgICB2b2lkIHRoZW1lQ29sb3JEaWRDaGFuZ2UoKSBmaW5hbDsKICAgICB2b2lk
IGlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpIGZpbmFsOwogICAgIHZvaWQgaXNQbGF5aW5nQXVk
aW9EaWRDaGFuZ2UoKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0KaW5kZXggODA2MWJmYmQ0NjJhLi41N2QzNzAy
NDE2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGll
bnRJbXBsQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNs
aWVudEltcGxDb2NvYS5tbQpAQCAtNDQsNiArNDQsMTYgQEAgUGFnZUNsaWVudEltcGxDb2NvYTo6
UGFnZUNsaWVudEltcGxDb2NvYShXS1dlYlZpZXcgKndlYlZpZXcpCiAKIFBhZ2VDbGllbnRJbXBs
Q29jb2E6On5QYWdlQ2xpZW50SW1wbENvY29hKCkgPSBkZWZhdWx0OwogCit2b2lkIFBhZ2VDbGll
bnRJbXBsQ29jb2E6OnRoZW1lQ29sb3JXaWxsQ2hhbmdlKCkKK3sKKyAgICBbbV93ZWJWaWV3IHdp
bGxDaGFuZ2VWYWx1ZUZvcktleTpAIl90aGVtZUNvbG9yIl07Cit9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGxDb2NvYTo6dGhlbWVDb2xvckRpZENoYW5nZSgpCit7CisgICAgW21fd2ViVmlldyBkaWRD
aGFuZ2VWYWx1ZUZvcktleTpAIl90aGVtZUNvbG9yIl07Cit9CisKIHZvaWQgUGFnZUNsaWVudElt
cGxDb2NvYTo6aXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCkKIHsKICAgICBbbV93ZWJWaWV3IHdp
bGxDaGFuZ2VWYWx1ZUZvcktleTpOU1N0cmluZ0Zyb21TZWxlY3RvcihAc2VsZWN0b3IoX2lzUGxh
eWluZ0F1ZGlvKSldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IGM0Yzcx
ODc0YTEwZC4uMTUyNmY3MmM0YmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
CkBAIC00ODgsNiArNDg4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTmF2
aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNhbWVE
b2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUp
ID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNvbG9yV2lsbENoYW5nZSgpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCB0aGVtZUNvbG9yRGlkQ2hhbmdlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGRpZENoYW5nZUJhY2tncm91bmRDb2xvcigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5
aW5nQXVkaW9XaWxsQ2hhbmdlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdBdWRp
b0RpZENoYW5nZSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IGFiODdkMDBkNzljYS4uNjE3MDE3YmI5ZTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgzNDgsNiArODM0OCwxNiBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkQ2hhbmdlUGFnZUNvdW50KHVuc2lnbmVkIHBhZ2VDb3VudCkKICAgICBtX3BhZ2VD
b3VudCA9IHBhZ2VDb3VudDsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnRoZW1lQ29sb3JDaGFu
Z2VkKGNvbnN0IENvbG9yJiB0aGVtZUNvbG9yKQoreworICAgIGlmIChtX3RoZW1lQ29sb3IgPT0g
dGhlbWVDb2xvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZUNsaWVudCgpLnRoZW1lQ29s
b3JXaWxsQ2hhbmdlKCk7CisgICAgbV90aGVtZUNvbG9yID0gdGhlbWVDb2xvcjsKKyAgICBwYWdl
Q2xpZW50KCkudGhlbWVDb2xvckRpZENoYW5nZSgpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6
cGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yRGlkQ2hhbmdlKGNvbnN0IENvbG9yJiBiYWNrZ3Jv
dW5kQ29sb3IpCiB7CiAgICAgbV9wYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IgPSBiYWNrZ3Jv
dW5kQ29sb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDIzMmVk
MzdiZDFiZi4uYmUwNWI2ZTEwMzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtNjQ2LDYgKzY0Niw5IEBAIHB1YmxpYzoKICAgICBmbG9hdCB0b3BDb250ZW50SW5z
ZXQoKSBjb25zdCB7IHJldHVybiBtX3RvcENvbnRlbnRJbnNldDsgfQogICAgIHZvaWQgc2V0VG9w
Q29udGVudEluc2V0KGZsb2F0KTsKIAorICAgIC8vIFNldCBieSB0aGUgV2ViUHJvY2VzcyB3aGVu
IHBhcnNpbmcgYDxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIuLi4iPmAuCisgICAg
V2ViQ29yZTo6Q29sb3IgdGhlbWVDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fdGhlbWVDb2xvcjsg
fQorCiAgICAgV2ViQ29yZTo6Q29sb3IgdW5kZXJsYXlDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1f
dW5kZXJsYXlDb2xvcjsgfQogICAgIHZvaWQgc2V0VW5kZXJsYXlDb2xvcihjb25zdCBXZWJDb3Jl
OjpDb2xvciYpOwogCkBAIC0xOTk3LDYgKzIwMDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
Q2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFtZShib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIs
IGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIpOwogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsT2Zm
c2V0UGlubmluZ0Zvck1haW5GcmFtZShib29sIHBpbm5lZFRvTGVmdFNpZGUsIGJvb2wgcGlubmVk
VG9SaWdodFNpZGUsIGJvb2wgcGlubmVkVG9Ub3BTaWRlLCBib29sIHBpbm5lZFRvQm90dG9tU2lk
ZSk7CiAgICAgdm9pZCBkaWRDaGFuZ2VQYWdlQ291bnQodW5zaWduZWQpOworICAgIHZvaWQgdGhl
bWVDb2xvckNoYW5nZWQoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKICAgICB2b2lkIHBhZ2VFeHRl
bmRlZEJhY2tncm91bmRDb2xvckRpZENoYW5nZShjb25zdCBXZWJDb3JlOjpDb2xvciYpOwogI2lm
IEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHZvaWQgZGlkRmFpbFRvSW5pdGlhbGl6
ZVBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcpOwpAQCAtMjU0OCw2ICsyNTUyLDcgQEAg
cHJpdmF0ZToKIAogICAgIExheWVySG9zdGluZ01vZGUgbV9sYXllckhvc3RpbmdNb2RlIHsgTGF5
ZXJIb3N0aW5nTW9kZTo6SW5Qcm9jZXNzIH07CiAKKyAgICBXZWJDb3JlOjpDb2xvciBtX3RoZW1l
Q29sb3I7CiAgICAgV2ViQ29yZTo6Q29sb3IgbV91bmRlcmxheUNvbG9yOwogICAgIFdlYkNvcmU6
OkNvbG9yIG1fcGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggM2JjNjdhYjU1ZDIx
Li4wNTRmMDc2N2U0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTc3LDYgKzc3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICAgICBEaWRDaGFuZ2VTY3JvbGxiYXJzRm9yTWFpbkZyYW1lKGJvb2wgaGFzSG9yaXpv
bnRhbFNjcm9sbGJhciwgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcikKICAgICBEaWRDaGFuZ2VT
Y3JvbGxPZmZzZXRQaW5uaW5nRm9yTWFpbkZyYW1lKGJvb2wgcGlubmVkVG9MZWZ0U2lkZSwgYm9v
bCBwaW5uZWRUb1JpZ2h0U2lkZSwgYm9vbCBwaW5uZWRUb1RvcFNpZGUsIGJvb2wgcGlubmVkVG9C
b3R0b21TaWRlKQogICAgIERpZENoYW5nZVBhZ2VDb3VudCh1bnNpZ25lZCBwYWdlQ291bnQpCisg
ICAgVGhlbWVDb2xvckNoYW5nZWQoV2ViQ29yZTo6Q29sb3IgdGhlbWVDb2xvcikKICAgICBQYWdl
RXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3JEaWRDaGFuZ2UoV2ViQ29yZTo6Q29sb3IgYmFja2dyb3Vu
ZENvbG9yKQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIERpZEZhaWxUb0lu
aXRpYWxpemVQbHVnaW4oU3RyaW5nIG1pbWVUeXBlLCBTdHJpbmcgZnJhbWVVUkxTdHJpbmcsIFN0
cmluZyBwYWdlVVJMU3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAzMzQ3NjRhY2Uy
YTguLmFiZjcwMzA2YWYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTExMTksNiArMTEx
OSwxMSBAQCBDb2xvciBXZWJDaHJvbWVDbGllbnQ6OnVuZGVybGF5Q29sb3IoKSBjb25zdAogICAg
IHJldHVybiBtX3BhZ2UudW5kZXJsYXlDb2xvcigpOwogfQogCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6dGhlbWVDb2xvckNoYW5nZWQoQ29sb3IgdGhlbWVDb2xvcikgY29uc3QKK3sKKyAgICBtX3Bh
Z2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpUaGVtZUNvbG9yQ2hhbmdlZCh0aGVtZUNv
bG9yKSk7Cit9CisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwYWdlRXh0ZW5kZWRCYWNrZ3JvdW5k
Q29sb3JEaWRDaGFuZ2UoQ29sb3IgYmFja2dyb3VuZENvbG9yKSBjb25zdAogewogI2lmIFBMQVRG
T1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBlYzE0ZmRiMTZjODEuLjQyMDE0ZGUxYjk5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzI0LDYgKzMyNCw3IEBAIHByaXZhdGU6CiAKICAg
ICBXZWJDb3JlOjpDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgZmluYWw7CiAKKyAgICB2b2lk
IHRoZW1lQ29sb3JDaGFuZ2VkKFdlYkNvcmU6OkNvbG9yKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IHBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvckRpZENoYW5nZShXZWJDb3JlOjpDb2xvcikgY29u
c3QgZmluYWw7CiAgICAgCiAgICAgdm9pZCB3aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGJvb2wp
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDUwZjY2ZWM0NWQ5ZC4uY2E1YTM5M2M1ZmI5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDEtMjUgIERl
dmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSB0aGUgdmFs
dWUgb2YgYDxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIuLi4iPmAgYXMgU1BJCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA5NDQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcyMTk4MDgzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9IVE1MTWV0YVRoZW1lQ29sb3IubW06IEFkZGVkLgorICAgICAgICAoLVtXS1dlYlZpZXdUaGVt
ZUNvbG9yT2JzZXJ2ZXIgaW5pdFdpdGhXZWJWaWV3Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXdU
aGVtZUNvbG9yT2JzZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6
Y29udGV4dDpdKToKKyAgICAgICAgKFRFU1QuSFRNTE1ldGFUaGVtZUNvbG9yLk9uTG9hZCk6Cisg
ICAgICAgIChURVNULkhUTUxNZXRhVGhlbWVDb2xvci5NdWx0aXBsZVRhZ3MpOgorICAgICAgICAo
VEVTVC5IVE1MTWV0YVRoZW1lQ29sb3IuS1ZPKToKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIwLTEyLTA4ICBK
b25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2Via2l0Y29y
ZXB5XSBGaXggY2FzZSB3aGVyZSBjYWNoZWQ9VHJ1ZSB3aXRoIG90aGVyIGFyZ3VtZW50cwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA4MDY3ZDQ1ODMxYjIuLmNmMjM5M2FhZDQ1OCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTg0MCw2ICs4NDAsNyBAQAogCQk5M0Y1NkRBOTFFNUY5MTlE
MDAzRURFODQgLyogV0tXZWJWaWV3U25hcHNob3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NkRBODFFNUY5MTgxMDAzRURFODQgLyogV0tXZWJW
aWV3U25hcHNob3QubW0gKi87IH07CiAJCTkzRjdFODZGMTREQzhFNUMwMEM4NEE5OSAvKiBOZXdG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjdFODZFMTREQzhFNUIwMEM4NEE5
OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCAqLzsg
fTsKIAkJOTUwRTRDQzEyNTJFNzUyNDAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBFNENDMDI1MkU3
NTIzMDA3MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSAqLzsgfTsKKwkJOTVBNTI0OTUyNTgx
QTEwRDAwNDYxRkU5IC8qIEhUTUxNZXRhVGhlbWVDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBI
VE1MTWV0YVRoZW1lQ29sb3IubW0gKi87IH07CiAJCTk1QjZCM0I3MjUxRUJGMkYwMEZDNDM4MiAv
KiBNZWRpYURvY3VtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTVCNkIzQjYyNTFFQkYyRjAwRkM0MzgyIC8qIE1lZGlhRG9jdW1lbnQubW0gKi87
IH07CiAJCTk5ODRGQUNDMUNGRkFGNjAwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTg0RkFDQTFD
RkZBRUVFMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tICovOyB9OwogCQk5OTg0RkFD
RTFDRkZCMDkwMDA4RDE5OEMgLyogZWRpdGFibGUtYm9keS5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODRGQUNEMUNGRkIwMzgwMDhE
MTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0bWwgKi87IH07CkBAIC0yNDY5LDYgKzI0NzAsNyBAQAog
CQk5M0Y3RTg2QjE0REM4RTREMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0RnJhbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ld0Zp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzRjdFODZFMTREQzhFNUIwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTBFNENDMDI1MkU3NTIzMDA3MTY1OUYg
LyogaU9TU3R5bHVzU3VwcG9ydC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IGlPU1N0eWx1c1N1cHBvcnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk1QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBIVE1MTWV0YVRoZW1lQ29sb3IubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBIVE1MTWV0YVRoZW1lQ29sb3IubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1QjZCM0I2MjUxRUJGMkYwMEZDNDM4MiAv
KiBNZWRpYURvY3VtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gTWVkaWFEb2N1bWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk4NEZB
Q0ExQ0ZGQUVFRTAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1RleHRJbnB1dC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk4NEZBQ0QxQ0ZGQjAzODAwOEQxOThDIC8qIGVkaXRh
YmxlLWJvZHkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJlZGl0YWJsZS1ib2R5
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzI5MCw2ICszMjkyLDcgQEAK
IAkJCQkwN0UxRjZBMDFGRkMzQTA4MDA5NkM3RUMgLyogR2V0RGlzcGxheU1lZGlhLm1tICovLAog
CQkJCTJEQURGMjYyMjFDQjhGMzIwMDNEM0UzQSAvKiBHZXRSZXNvdXJjZURhdGEubW0gKi8sCiAJ
CQkJNDY1RTI4MDYyNTVCMkE2OTAwNjNBNzg3IC8qIEdQVVByb2Nlc3MubW0gKi8sCisJCQkJOTVB
NTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8qIEhUTUxNZXRhVGhlbWVDb2xvci5tbSAqLywKIAkJCQk1
MUFGMjNERTFFRjFBMzcyMDA3MkYyODEgLyogSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbSAqLywKIAkJ
CQlFQjIzMEQzRTI0NUU3MjYzMDBDNjZBRDEgLyogSURCQ2hlY2twb2ludFdBTC5tbSAqLywKIAkJ
CQk1MTA0Nzc3NTFEMjk4RTAzMDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3ZlcnkubW0gKi8sCkBA
IC01MjQ0LDYgKzUyNDcsNyBAQAogCQkJCUNEQjIxM0JEMjRFRjUyMjgwMEZERTMwMSAvKiBGdWxs
c2NyZWVuRm9jdXMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDREJGQ0M0NTFBOUZGNDUzMDBBN0I2
OTEgLyogRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0gaW4gU291cmNlcyAqLywKIAkJCQk4
M0RCNzk2OTFFRjYzQjNDMDBCRkE1RTUgLyogRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJOTVBNTI0OTUyNTgxQTEwRDAwNDYxRkU5IC8qIEhUTUxNZXRhVGhlbWVDb2xvci5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTdDQ0U3RUY4MUE0MTFBRTYwMDQ0N0M0QyAvKiBHZW9sb2NhdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk2MzFFRkZGNjFFN0I1RThEMDBEMkVCQjggLyogR2VvbG9j
YXRpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFMTFBNDExQTlBMDA0NDdDNEMgLyog
R2V0QmFja2luZ1NjYWxlRmFjdG9yLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0hUTUxNZXRhVGhlbWVDb2xvci5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSFRNTE1ldGFUaGVtZUNvbG9y
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTFjYjlkYTFkOGIz
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9IVE1MTWV0YVRoZW1lQ29sb3IubW0KQEAgLTAsMCArMSwxNTQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiVGVzdENvY29hLmgiCisjaW1wb3J0ICJUZXN0
V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorCisjZGVmaW5lIEVYUEVDVF9OU1NUUklOR19FUShleHBlY3Rl
ZCwgYWN0dWFsKSBcCisgICAgRVhQRUNUX1RSVUUoW2FjdHVhbCBpc0tpbmRPZkNsYXNzOltOU1N0
cmluZyBjbGFzc11dKTsgXAorICAgIEVYUEVDVF9XS19TVFJFUShleHBlY3RlZCwgKE5TU3RyaW5n
ICopYWN0dWFsKTsKKworQGludGVyZmFjZSBXS1dlYlZpZXdUaGVtZUNvbG9yT2JzZXJ2ZXIgOiBO
U09iamVjdAorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3OworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLV2ViVmlldyAqd2Vi
VmlldzsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqc3RhdGU7CisKK0Bl
bmQKKworQGltcGxlbWVudGF0aW9uIFdLV2ViVmlld1RoZW1lQ29sb3JPYnNlcnZlcgorCistIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3Cit7CisgICAg
aWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBf
c3RhdGUgPSBAImJlZm9yZS1pbml0IjsKKworICAgIF93ZWJWaWV3ID0gd2ViVmlldzsKKyAgICBb
X3dlYlZpZXcgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiX3RoZW1lQ29sb3IiIG9wdGlv
bnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDpuaWxdOworCisgICAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJp
bmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKilj
aGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQKK3sKKyAgICBpZiAoW19zdGF0ZSBpc0VxdWFs
VG9TdHJpbmc6QCJiZWZvcmUtaW5pdCJdKSB7CisgICAgICAgIF9zdGF0ZSA9IEAiYWZ0ZXItaW5p
dCI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoW19zdGF0ZSBpc0VxdWFsVG9T
dHJpbmc6QCJiZWZvcmUtbG9hZCJdKSB7CisgICAgICAgIF9zdGF0ZSA9IEAiYWZ0ZXItbG9hZCI7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoW19zdGF0ZSBpc0VxdWFsVG9TdHJp
bmc6QCJiZWZvcmUtY29udGVudC1jaGFuZ2UiXSkgeworICAgICAgICBfc3RhdGUgPSBAImFmdGVy
LWNvbnRlbnQtY2hhbmdlIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChbX3N0
YXRlIGlzRXF1YWxUb1N0cmluZzpAImJlZm9yZS1uYW1lLWNoYW5nZS1ub3QtdGhlbWUtY29sb3Ii
XSkgeworICAgICAgICBfc3RhdGUgPSBAImFmdGVyLW5hbWUtY2hhbmdlLW5vdC10aGVtZS1jb2xv
ciI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoW19zdGF0ZSBpc0VxdWFsVG9T
dHJpbmc6QCJiZWZvcmUtbmFtZS1jaGFuZ2UtdGhlbWUtY29sb3IiXSkgeworICAgICAgICBfc3Rh
dGUgPSBAImFmdGVyLW5hbWUtY2hhbmdlLXRoZW1lLWNvbG9yIjsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChbX3N0YXRlIGlzRXF1YWxUb1N0cmluZzpAImJlZm9yZS1ub2RlLXJl
bW92ZWQiXSkgeworICAgICAgICBfc3RhdGUgPSBAImFmdGVyLW5vZGUtcmVtb3ZlZCI7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
fQorCitAZW5kCisKK1RFU1QoSFRNTE1ldGFUaGVtZUNvbG9yLCBPbkxvYWQpCit7CisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICBFWFBFQ1RfVFJVRSghW3dlYlZpZXcg
X3RoZW1lQ29sb3JdKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmlu
ZzpAIjxtZXRhIG5hbWU9J3RoZW1lLWNvbG9yJyBjb250ZW50PSdyZWQnPiJdOworCisgICAgYXV0
byByZWRDb2xvciA9IGFkb3B0Q0YoQ0dDb2xvckNyZWF0ZVNSR0IoMSwgMCwgMCwgMSkpOworICAg
IEVYUEVDVF9UUlVFKENHQ29sb3JFcXVhbFRvQ29sb3IoW3dlYlZpZXcgX3RoZW1lQ29sb3JdLkNH
Q29sb3IsIHJlZENvbG9yLmdldCgpKSk7Cit9CisKK1RFU1QoSFRNTE1ldGFUaGVtZUNvbG9yLCBN
dWx0aXBsZVRhZ3MpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKyAg
ICBFWFBFQ1RfVFJVRSghW3dlYlZpZXcgX3RoZW1lQ29sb3JdKTsKKworICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxtZXRhIG5hbWU9J3RoZW1lLWNvbG9yJyBjb250
ZW50PSdyZWQnPjxtZXRhIG5hbWU9J3RoZW1lLWNvbG9yJyBjb250ZW50PSdibHVlJz4iXTsKKwor
ICAgIGF1dG8gYmx1ZUNvbG9yID0gYWRvcHRDRihDR0NvbG9yQ3JlYXRlU1JHQigwLCAwLCAxLCAx
KSk7CisgICAgRVhQRUNUX1RSVUUoQ0dDb2xvckVxdWFsVG9Db2xvcihbd2ViVmlldyBfdGhlbWVD
b2xvcl0uQ0dDb2xvciwgYmx1ZUNvbG9yLmdldCgpKSk7Cit9CisKK1RFU1QoSFRNTE1ldGFUaGVt
ZUNvbG9yLCBLVk8pCit7CisgICAgYXV0byByZWRDb2xvciA9IGFkb3B0Q0YoQ0dDb2xvckNyZWF0
ZVNSR0IoMSwgMCwgMCwgMSkpOworICAgIGF1dG8gYmx1ZUNvbG9yID0gYWRvcHRDRihDR0NvbG9y
Q3JlYXRlU1JHQigwLCAwLCAxLCAxKSk7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwg
NjAwKV0pOworICAgIGF1dG8gdGhlbWVDb2xvck9ic2VydmVyID0gYWRvcHROUyhbW1dLV2ViVmll
d1RoZW1lQ29sb3JPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhXZWJWaWV3OndlYlZpZXcuZ2V0KCld
KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImFmdGVyLWluaXQiLCBbdGhlbWVDb2xvck9ic2Vy
dmVyIHN0YXRlXSk7CisgICAgRVhQRUNUX1RSVUUoIVt3ZWJWaWV3IF90aGVtZUNvbG9yXSk7CisK
KyAgICBbdGhlbWVDb2xvck9ic2VydmVyIHNldFN0YXRlOkAiYmVmb3JlLWxvYWQiXTsKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8bWV0YSBuYW1lPSd0aGVtZS1j
b2xvcicgY29udGVudD0ncmVkJz4iXTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImFmdGVyLWxv
YWQiLCBbdGhlbWVDb2xvck9ic2VydmVyIHN0YXRlXSk7CisgICAgRVhQRUNUX1RSVUUoQ0dDb2xv
ckVxdWFsVG9Db2xvcihbd2ViVmlldyBfdGhlbWVDb2xvcl0uQ0dDb2xvciwgcmVkQ29sb3IuZ2V0
KCkpKTsKKworICAgIFt0aGVtZUNvbG9yT2JzZXJ2ZXIgc2V0U3RhdGU6QCJiZWZvcmUtY29udGVu
dC1jaGFuZ2UiXTsKKyAgICBbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWV0YScpLnNldEF0dHJpYnV0ZSgnY29udGVudCcsICdi
bHVlJykiXTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImFmdGVyLWNvbnRlbnQtY2hhbmdlIiwg
W3RoZW1lQ29sb3JPYnNlcnZlciBzdGF0ZV0pOworICAgIEVYUEVDVF9UUlVFKENHQ29sb3JFcXVh
bFRvQ29sb3IoW3dlYlZpZXcgX3RoZW1lQ29sb3JdLkNHQ29sb3IsIGJsdWVDb2xvci5nZXQoKSkp
OworCisgICAgW3RoZW1lQ29sb3JPYnNlcnZlciBzZXRTdGF0ZTpAImJlZm9yZS1uYW1lLWNoYW5n
ZS1ub3QtdGhlbWUtY29sb3IiXTsKKyAgICBbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWV0YScpLnNldEF0dHJpYnV0ZSgnbmFt
ZScsICdub3QtdGhlbWUtY29sb3InKSJdOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiYWZ0ZXIt
bmFtZS1jaGFuZ2Utbm90LXRoZW1lLWNvbG9yIiwgW3RoZW1lQ29sb3JPYnNlcnZlciBzdGF0ZV0p
OworICAgIEVYUEVDVF9UUlVFKCFbd2ViVmlldyBfdGhlbWVDb2xvcl0pOworCisgICAgW3RoZW1l
Q29sb3JPYnNlcnZlciBzZXRTdGF0ZTpAImJlZm9yZS1uYW1lLWNoYW5nZS10aGVtZS1jb2xvciJd
OworICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCdtZXRhJykuc2V0QXR0cmlidXRlKCduYW1lJywgJ3RoZW1lLWNvbG9yJyki
XTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImFmdGVyLW5hbWUtY2hhbmdlLXRoZW1lLWNvbG9y
IiwgW3RoZW1lQ29sb3JPYnNlcnZlciBzdGF0ZV0pOworICAgIEVYUEVDVF9UUlVFKENHQ29sb3JF
cXVhbFRvQ29sb3IoW3dlYlZpZXcgX3RoZW1lQ29sb3JdLkNHQ29sb3IsIGJsdWVDb2xvci5nZXQo
KSkpOworCisgICAgW3RoZW1lQ29sb3JPYnNlcnZlciBzZXRTdGF0ZTpAImJlZm9yZS1ub2RlLXJl
bW92ZWQiXTsKKyAgICBbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9j
dW1lbnQucXVlcnlTZWxlY3RvcignbWV0YScpLnJlbW92ZSgpIl07CisgICAgRVhQRUNUX05TU1RS
SU5HX0VRKCJhZnRlci1ub2RlLXJlbW92ZWQiLCBbdGhlbWVDb2xvck9ic2VydmVyIHN0YXRlXSk7
CisgICAgRVhQRUNUX1RSVUUoIVt3ZWJWaWV3IF90aGVtZUNvbG9yXSk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418457</attachid>
            <date>2021-01-26 11:50:10 -0800</date>
            <delta_ts>2021-01-26 12:16:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220944-20210126125009.patch</filename>
            <type>text/plain</type>
            <size>42213</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4OGI3ODllNDI0NDczYzQ3ZDkxOTBhYjQ2MTgwYjc5MWE0Mzg4OTFkLi40
NGI2NTU4OGI3NGFlNTRhN2NkZWUxZDVhZjExMmY2OWQ1ZjM0OTZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzQgQEAKKzIwMjEtMDEtMjYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIEV4cG9zZSB0aGUgdmFsdWUgb2YgYDxtZXRhIG5hbWU9InRoZW1lLWNvbG9y
IiBjb250ZW50PSIuLi4iPmAgYXMgU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjA5NDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcyMTk4MDgz
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHRt
bC9IVE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRhRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0YUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGFFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9y
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0YUVsZW1lbnQ6OnByb2Nlc3MpOgor
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
dGhlbWVDb2xvciBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cHJvY2Vzc1RoZW1lQ29sb3IpOiBBZGRlZC4KKyAg
ICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6dGhlbWVDb2xvciBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIHBhZ2Uv
Q2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnRoZW1lQ29s
b3JDaGFuZ2VkIGNvbnN0KTogQWRkZWQuCisgICAgICAgIFNhdmUgdGhlIGBDb2xvcmAgdG8gYSB2
YXJpYWJsZSBzbyBpdCBjYW4gYmUgYWNjZXNzZWQgbGF0ZXIgZHVyaW5nIHJlbmRlcmluZyBzbyB0
aGF0IHVwZGF0ZXMKKyAgICAgICAgYXJlIGtlcHQgaW4gc3luYyB3aXRoIG90aGVyIGNoYW5nZXMg
KGUuZy4gbW9kaWZ5aW5nIHRoZSBDU1MgYGJhY2tncm91bmQtY29sb3JgKS4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0NvbG9yQ29jb2EuaDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEV4cG9zZSB0aGlzIGZpbGUgYW5k
IGV4cG9ydCBpdHMgZnVuY3Rpb25zIHNvIHRoZXkgY2FuIGJlIHVzZWQgaW4gV2ViS2l0LgorCiAy
MDIxLTAxLTI1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OIChyMjcwODc0KTogU29tZSBSZWFjdCBOYXRpdmUgYXBwcyBhcmUgcmVw
b3J0ZWQgYnJva2VuIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2NTc2NzI2OGEzMTYxMmJmZjY1MGEzNWU3
Y2ZiMmMzZjFlOGZiYzEwLi5lODFjODE0MzJlZmI3Mjc0ZGE3MjkyMWZiOGUzYzQwOWY3ZTE1MDRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIxLTAxLTI2ICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgdGhlIHZhbHVlIG9mIGA8bWV0YSBu
YW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iLi4uIj5gIGFzIFNQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwOTQ0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MjE5ODA4Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnRoZW1lQ29sb3JDaGFuZ2VkKTogQWRkZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp3aWxs
Q29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tbWl0TG9h
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmZsdXNoUGVuZGluZ1RoZW1lQ29sb3JDaGFu
Z2UpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp0aGVtZUNvbG9y
Q2hhbmdlZCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZyk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp0aGVtZUNvbG9yQ2hhbmdl
ZCk6IEFkZGVkLgorICAgICAgICBPbiBtYWNPUywga2VlcCBhIGZsYWcgaW5kaWNhdGluZyB3aGV0
aGVyIHRoZSBgdGhlbWVDb2xvcmAgaGFzIGNoYW5nZWQuIFVzZSB0aGlzIGZsYWcgd2hlbgorICAg
ICAgICB1cGRhdGluZyByZW5kZXJpbmcgdG8gc2VuZCB0aGUgYENvbG9yYCB0byB0aGUgVUlQcm9j
ZXNzIHNvIHRoYXQgaXQncyBrZXB0IGluIHN5bmMgd2l0aCBvdGhlcgorICAgICAgICBjaGFuZ2Vz
IChlLmcuIG1vZGlmeWluZyB0aGUgQ1NTIGBiYWNrZ3JvdW5kLWNvbG9yYCkuCisKKyAgICAgICAg
KiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjp0aGVtZUNvbG9yIGNv
bnN0KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpzZXRUaGVtZUNvbG9yKTogQWRkZWQuCisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRp
ZENvbW1pdExheWVyVHJlZSk6CisgICAgICAgIE9uIGlPUywgaW5jbHVkZSB0aGUgYHRoZW1lQ29s
b3JgIGluIGV2ZXJ5IGBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbmAgc28gdGhhdCBpdCdzIGtl
cHQgaW4KKyAgICAgICAgc3luYyB3aXRoIG90aGVyIGNoYW5nZXMgKGUuZy4gbW9kaWZ5aW5nIHRo
ZSBDU1MgYGJhY2tncm91bmQtY29sb3JgKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnRoZW1lQ29sb3JXaWxsQ2hhbmdl
KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnRoZW1lQ29sb3JEaWRDaGFu
Z2UpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2Nv
YS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbENvY29hOjp0aGVtZUNvbG9yV2lsbENoYW5n
ZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbENvY29hOjp0aGVtZUNv
bG9yRGlkQ2hhbmdlKTogQWRkZWQuCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBPYmpDIEtWTyBv
ZiBgLVtXS1dlYlZpZXcgX3RoZW1lQ29sb3JdYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp0aGVtZUNvbG9yIGNv
bnN0KTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAg
ICAgICgtW1dLV2ViVmlldyBfdGhlbWVDb2xvcl0pOiBBZGRlZC4KKwogMjAyMS0wMS0yNSAgQWxl
eGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TiAocjI3MDg3NCk6IFNvbWUgUmVhY3QgTmF0aXZlIGFwcHMgYXJlIHJlcG9ydGVkIGJyb2tlbiBv
biBpT1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAwNTNiZDg3ZGE3Y2RhODQ1MWFmMTNlZGIzMWMxMzhhZjY2NDU5NWUyLi5hYTM5
YWY2MTcwZmE2YjczNjA5MzkwNWE4ZTYxZWE2MWY4MjNlMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MjY5LDcgKzUyNjks
NyBAQAogCQlGNDgyMjMxMzFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgyMjMxMjFF
Mzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ4RDJBNkMyMTU2MjNCNDAwQzY3NTJC
IC8qIEZvbnRTaGFkb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0OEQyQTZBMjE1NjIzQjQwMEM2NzUyQiAvKiBGb250U2hhZG93LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ4RDJBN0UyMTU3MTgy
NjAwQzY3NTJCIC8qIEZvbnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNDhEMkE3MTIxNTZEQzBBMDBDNjc1MkIgLyogRm9udEF0dHJp
YnV0ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQlGNDhEMkFBNTIxNTk3NDBEMDBDNjc1MkIgLyogQ29sb3JDb2NvYS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4RDJBQTMyMTU5NzQwRDAwQzY3NTJC
IC8qIENvbG9yQ29jb2EuaCAqLzsgfTsKKwkJRjQ4RDJBQTUyMTU5NzQwRDAwQzY3NTJCIC8qIENv
bG9yQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0OEQyQUEzMjE1OTc0MEQwMEM2NzUyQiAvKiBDb2xvckNvY29hLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ5Nzg2ODgxRkY0NUZBNTAwRTA2
MEFCIC8qIFBhc3RlYm9hcmRJdGVtSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQ5Nzg2ODcxRkY0NUZBNTAwRTA2MEFCIC8qIFBhc3RlYm9hcmRJ
dGVtSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUY0QjQyMkM0MjIwQzA1NjgwMDlFMUU3RCAvKiBET01QYXN0ZUFjY2Vzcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRCNDIyQzIyMjBDMDAwMDAw
OUUxRTdEIC8qIERPTVBhc3RlQWNjZXNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjRCRkI5ODUxRTFEREY5QjAwODYyQzI0IC8qIER1bXBFZGl0
aW5nSGlzdG9yeS5qcyBpbiBDb3B5IFNjcmlwdHMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQ4Mzg5ODMxRTFEREYyQjAwNzZCN0VBIC8qIER1bXBFZGl0aW5nSGlzdG9yeS5q
cyAqLzsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDk5Y2E2YTEzYzAwZGRkZjdkMGNk
Zjk1ZmVhYTIwMTI1MmFiOTc5NjQuLmY1MDY3ODMyM2NmNTE4OTY1M2NkZTFkNjZlZDg2MzNjNjMx
YTM3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkJlZm9yZVVubG9hZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ0RBVEFTZWN0aW9uLmgiCiAjaW5j
bHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVk
ZSAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNp
bmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCkBAIC0zODAzLDYgKzM4MDQsMjAgQEAgdm9p
ZCBEb2N1bWVudDo6dXBkYXRlVmlld3BvcnRBcmd1bWVudHMoKQogICAgIH0KIH0KIAordm9pZCBE
b2N1bWVudDo6cHJvY2Vzc1RoZW1lQ29sb3IoY29uc3QgU3RyaW5nJiB0aGVtZUNvbG9yU3RyaW5n
KQoreworICAgIGF1dG8gdGhlbWVDb2xvciA9IENTU1BhcnNlcjo6cGFyc2VDb2xvcih0aGVtZUNv
bG9yU3RyaW5nKTsKKyAgICBpZiAodGhlbWVDb2xvciA9PSBtX3RoZW1lQ29sb3IpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fdGhlbWVDb2xvciA9IFdURk1vdmUodGhlbWVDb2xvcik7CisKKyAg
ICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSh7IH0pOworCisgICAgaWYgKGF1dG8qIHBhZ2UgPSB0
aGlzLT5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnRoZW1lQ29sb3JD
aGFuZ2VkKG1fdGhlbWVDb2xvcik7Cit9CisKICNpZiBFTkFCTEUoREFSS19NT0RFX0NTUykKIHN0
YXRpYyB2b2lkIHByb2Nlc3NDb2xvclNjaGVtZVN0cmluZyhTdHJpbmdWaWV3IGNvbG9yU2NoZW1l
LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoU3RyaW5nVmlldyBrZXkpPiYgY2FsbGJhY2spCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGQ3ZjBhMDk4YjIxNzRmN2YyMjc3MjY4OGYxZTYzYTdk
OTg1Njc1OGIuLjI0ZjBjMmFmMzZlYmE0YWE5NGI2ODdjNzdmMGQwMWZjNzhiODExODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC03MzksNiArNzM5LDkgQEAgcHVibGljOgogI2lmICFMT0dfRElT
QUJMRUQKICAgICBTZWNvbmRzIHRpbWVTaW5jZURvY3VtZW50Q3JlYXRpb24oKSBjb25zdCB7IHJl
dHVybiBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fZG9jdW1lbnRDcmVhdGlvblRpbWU7IH07CiAj
ZW5kaWYKKworICAgIGNvbnN0IENvbG9yJiB0aGVtZUNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV90
aGVtZUNvbG9yOyB9CisKICAgICB2b2lkIHNldFRleHRDb2xvcihjb25zdCBDb2xvciYgY29sb3Ip
IHsgbV90ZXh0Q29sb3IgPSBjb2xvcjsgfQogICAgIGNvbnN0IENvbG9yJiB0ZXh0Q29sb3IoKSBj
b25zdCB7IHJldHVybiBtX3RleHRDb2xvcjsgfQogCkBAIC05MDgsNiArOTExLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgcHJvY2Vzc0Rpc2FibGVkQWRhcHRhdGlvbnMoY29uc3QgU3RyaW5nJiBhZGFw
dGF0aW9ucyk7CiAgICAgdm9pZCB1cGRhdGVWaWV3cG9ydEFyZ3VtZW50cygpOwogICAgIHZvaWQg
cHJvY2Vzc1JlZmVycmVyUG9saWN5KGNvbnN0IFN0cmluZyYgcG9saWN5LCBSZWZlcnJlclBvbGlj
eVNvdXJjZSk7CisgICAgdm9pZCBwcm9jZXNzVGhlbWVDb2xvcihjb25zdCBTdHJpbmcmIHRoZW1l
Q29sb3IpOwogCiAjaWYgRU5BQkxFKERBUktfTU9ERV9DU1MpCiAgICAgdm9pZCBwcm9jZXNzQ29s
b3JTY2hlbWUoY29uc3QgU3RyaW5nJiBjb2xvclNjaGVtZSk7CkBAIC0xNzc2LDYgKzE3ODAsNyBA
QCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEZvcm1Db250cm9sbGVyPiBtX2Zvcm1D
b250cm9sbGVyOwogCisgICAgQ29sb3IgbV90aGVtZUNvbG9yOwogICAgIENvbG9yIG1fdGV4dENv
bG9yIHsgQ29sb3I6OmJsYWNrIH07CiAgICAgQ29sb3IgbV9saW5rQ29sb3I7CiAgICAgQ29sb3Ig
bV92aXNpdGVkTGlua0NvbG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWV0YUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3Bw
CmluZGV4IGE0M2I4OGFkNzc4MjVlZjg3YzgxYzhiMGI1NWVhNzg0MGU5NzNhNTMuLmQzY2MxNDdh
NzJiNDA5YjM4ZmI3YjM3YjE3MWQyMzM2MTNlMTY0MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZXRhRWxlbWVudC5jcHAKQEAgLTUyLDE1ICs1MiwyMyBAQCBSZWY8SFRNTE1ldGFFbGVtZW50
PiBIVE1MTWV0YUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxNZXRhRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOwogfQogCit2b2lkIEhUTUxNZXRhRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiByZWFz
b24pCit7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUs
IG5ld1ZhbHVlLCByZWFzb24pOworCisgICAgaWYgKG5hbWUgPT0gbmFtZUF0dHIgJiYgZXF1YWxM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uob2xkVmFsdWUsICJ0aGVtZS1jb2xvciIpICYmICFlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShuZXdWYWx1ZSwgInRoZW1lLWNvbG9yIikpCisgICAg
ICAgIGRvY3VtZW50KCkucHJvY2Vzc1RoZW1lQ29sb3IoZW1wdHlTdHJpbmcoKSk7Cit9CisKIHZv
aWQgSFRNTE1ldGFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAobmFtZSA9PSBodHRwX2Vx
dWl2QXR0cikKICAgICAgICAgcHJvY2VzcygpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gY29udGVu
dEF0dHIpCiAgICAgICAgIHByb2Nlc3MoKTsKLSAgICBlbHNlIGlmIChuYW1lID09IG5hbWVBdHRy
KSB7Ci0gICAgICAgIC8vIERvIG5vdGhpbmcKLSAgICB9IGVsc2UKKyAgICBlbHNlIGlmIChuYW1l
ID09IG5hbWVBdHRyKQorICAgICAgICBwcm9jZXNzKCk7CisgICAgZWxzZQogICAgICAgICBIVE1M
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCkBAIC03Nyw2ICs4NSwx
NCBAQCB2b2lkIEhUTUxNZXRhRWxlbWVudDo6ZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpCiAgICAg
cHJvY2VzcygpOwogfQogCit2b2lkIEhUTUxNZXRhRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3Rv
cihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYgb2xkUGFyZW50T2ZSZW1v
dmVkVHJlZSkKK3sKKyAgICBIVE1MRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihyZW1vdmFs
VHlwZSwgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSk7CisKKyAgICBpZiAoIWlzQ29ubmVjdGVkKCkg
JiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobmFtZSgpLCAidGhlbWUtY29sb3IiKSkK
KyAgICAgICAgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZS5kb2N1bWVudCgpLnByb2Nlc3NUaGVtZUNv
bG9yKGVtcHR5U3RyaW5nKCkpOworfQorCiB2b2lkIEhUTUxNZXRhRWxlbWVudDo6cHJvY2Vzcygp
CiB7CiAgICAgLy8gQ2hhbmdpbmcgYSBtZXRhIHRhZyB3aGlsZSBpdCdzIG5vdCBpbiB0aGUgdHJl
ZSBzaG91bGRuJ3QgaGF2ZSBhbnkgZWZmZWN0IG9uIHRoZSBkb2N1bWVudC4KQEAgLTk1LDYgKzEx
MSw4IEBAIHZvaWQgSFRNTE1ldGFFbGVtZW50Ojpwcm9jZXNzKCkKICAgICBlbHNlIGlmIChlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lKCksICJjb2xvci1zY2hlbWUiKSB8fCBlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShuYW1lKCksICJzdXBwb3J0ZWQtY29sb3Itc2NoZW1l
cyIpKQogICAgICAgICBkb2N1bWVudCgpLnByb2Nlc3NDb2xvclNjaGVtZShjb250ZW50VmFsdWUp
OwogI2VuZGlmCisgICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobmFt
ZSgpLCAidGhlbWUtY29sb3IiKSkKKyAgICAgICAgZG9jdW1lbnQoKS5wcm9jZXNzVGhlbWVDb2xv
cihjb250ZW50VmFsdWUpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgZWxzZSBpZiAo
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobmFtZSgpLCAiZm9ybWF0LWRldGVjdGlvbiIp
KQogICAgICAgICBkb2N1bWVudCgpLnByb2Nlc3NGb3JtYXREZXRlY3Rpb24oY29udGVudFZhbHVl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCmluZGV4IDQzZTA5ZWY4NDE1OTkz
YzY2MjcyYjc1NDI3MDdjMDIxYmFhZThmNjAuLjMzNTBmMWU4MzRmOGU5Njg5Y2Y5N2FlYmU4N2Q0
MmU1OTJhZmFhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaApAQCAtMzks
OSArMzksMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MTWV0YUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uID0gTW9kaWZp
ZWREaXJlY3RseSkgZmluYWw7CiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwogICAgIEluc2VydGVkSW50b0FuY2Vz
dG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5v
ZGUmKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaEluc2VydGluZ05vZGUoKTsKKyAgICB2b2lk
IHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsK
IAogICAgIHZvaWQgcHJvY2VzcygpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmlu
ZGV4IDVmZDRiNjUxYWRiOWM4NDcxZTEwMjY1YmQ5N2NmYjgwYjcyNzc5NjIuLmQ3MDEwMWQyMTdm
OTI2MWJlYzY2ZTg2YzJkNTA1MjVmMmIxZTI5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaApAQCAtMjI2LDYgKzIyNiw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgQ29sb3IgdW5k
ZXJsYXlDb2xvcigpIGNvbnN0IHsgcmV0dXJuIENvbG9yKCk7IH0KIAorICAgIHZpcnR1YWwgdm9p
ZCB0aGVtZUNvbG9yQ2hhbmdlZChDb2xvcikgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIHBh
Z2VFeHRlbmRlZEJhY2tncm91bmRDb2xvckRpZENoYW5nZShDb2xvcikgY29uc3QgeyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lJiwgY29uc3QgU3RyaW5n
JiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscykgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5k
ZXggNmZjNGViZjA4ZTk1MDkxMzJiMzA2YzgyZDE1YmU4NzA3ZjVlYmVkZS4uOWNkZDk1ODdkMzkw
NmZmMzBkNjBhZGViMjM3NDQwNTU3OWYyODU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0yNDMw
LDYgKzI0MzAsMTUgQEAgdm9pZCBQYWdlOjpyZW1vdmVMYXlvdXRNaWxlc3RvbmVzKE9wdGlvblNl
dDxMYXlvdXRNaWxlc3RvbmU+IG1pbGVzdG9uZXMpCiAgICAgbV9yZXF1ZXN0ZWRMYXlvdXRNaWxl
c3RvbmVzLnJlbW92ZShtaWxlc3RvbmVzKTsKIH0KIAorQ29sb3IgUGFnZTo6dGhlbWVDb2xvcigp
IGNvbnN0Cit7CisgICAgYXV0byogZG9jdW1lbnQgPSBtYWluRnJhbWUoKS5kb2N1bWVudCgpOwor
ICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gZG9j
dW1lbnQtPnRoZW1lQ29sb3IoKTsKK30KKwogQ29sb3IgUGFnZTo6cGFnZUV4dGVuZGVkQmFja2dy
b3VuZENvbG9yKCkgY29uc3QKIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1haW5GcmFt
ZSgpLnZpZXcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNmVhNWE5NTc2NGY3ZGNmYzE1ZjNjYjJlM2My
ODgyOTc5OTkwZjQyMi4uODc4ZmM1ODdmNzE0MzQ2MDFjOWQyZmZhMjc1OGUyZDkyY2VjNmJjNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKQEAgLTYxMCw2ICs2MTAsNyBAQCBwdWJsaWM6CiAgICAgaW50IGhlYWRl
ckhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVhZGVySGVpZ2h0OyB9CiAgICAgaW50IGZvb3Rl
ckhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9vdGVySGVpZ2h0OyB9CiAKKyAgICBXRUJDT1JF
X0VYUE9SVCBDb2xvciB0aGVtZUNvbG9yKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgQ29s
b3IgcGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7CiAKICAgICBib29sIGlzQ291
bnRpbmdSZWxldmFudFJlcGFpbnRlZE9iamVjdHMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0NvbG9yQ29jb2EuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0NvbG9yQ29jb2EuaAppbmRleCBmNzA2NDcw
N2ZkMDgxZWU2Y2YwODA5NzE0NzA3OTFlN2I2MTg5Y2IyLi5mMTMxMTNkYWM0MGQ1YzEwZDU4OTZk
YmE2OTIzZDI2YTRkYWEzMGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Db2xvckNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvQ29sb3JDb2NvYS5oCkBAIC0zMywxMSArMzMsMTEgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgQ29sb3I7CiAKICNpZiBVU0UoQVBQS0lUKQotTlNDb2xvciAqcGxh
dGZvcm1Db2xvcihjb25zdCBDb2xvciYpOworV0VCQ09SRV9FWFBPUlQgTlNDb2xvciAqcGxhdGZv
cm1Db2xvcihjb25zdCBDb2xvciYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotVUlDb2xvciAqcGxhdGZvcm1Db2xvcihjb25zdCBDb2xvciYpOworV0VCQ09SRV9FWFBPUlQg
VUlDb2xvciAqcGxhdGZvcm1Db2xvcihjb25zdCBDb2xvciYpOwogI2VuZGlmCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKaW5kZXggOWYx
NDE4YWVmYjIzZjI1NmU4YWQ3NmI0NWRlY2Q1YjQzN2E1NGM0ZS4uNmViMzZiYTVhMTgwZmE5NWEw
YjJjNGY4ODIzMDUxMmYwYzdmZDU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
LmgKQEAgLTIyNiw3ICsyMjYsMTAgQEAgcHVibGljOgogICAgIAogICAgIFdlYkNvcmU6OkxheW91
dFBvaW50IG1heFN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9t
YXhTdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbjsgfQogICAgIHZvaWQgc2V0TWF4U3RhYmxlTGF5
b3V0Vmlld3BvcnRPcmlnaW4oY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmIHBvaW50KSB7IG1f
bWF4U3RhYmxlTGF5b3V0Vmlld3BvcnRPcmlnaW4gPSBwb2ludDsgfTsKLSAgICAKKworICAgIFdl
YkNvcmU6OkNvbG9yIHRoZW1lQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX3RoZW1lQ29sb3I7IH0K
KyAgICB2b2lkIHNldFRoZW1lQ29sb3IoV2ViQ29yZTo6Q29sb3IgY29sb3IpIHsgbV90aGVtZUNv
bG9yID0gY29sb3I7IH0KKwogICAgIFdlYkNvcmU6OkNvbG9yIHBhZ2VFeHRlbmRlZEJhY2tncm91
bmRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yOyB9
CiAgICAgdm9pZCBzZXRQYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IoV2ViQ29yZTo6Q29sb3Ig
Y29sb3IpIHsgbV9wYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IgPSBjb2xvcjsgfQogCkBAIC0z
MDcsNiArMzEwLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpMYXlvdXRQb2ludCBtX21pblN0
YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luOwogICAgIFdlYkNvcmU6OkxheW91dFBvaW50IG1fbWF4
U3RhYmxlTGF5b3V0Vmlld3BvcnRPcmlnaW47CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9zY3Jv
bGxQb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpDb2xvciBtX3RoZW1lQ29sb3I7CiAgICAgV2ViQ29y
ZTo6Q29sb3IgbV9wYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3I7CiAgICAgZG91YmxlIG1fcGFn
ZVNjYWxlRmFjdG9yIHsgMSB9OwogICAgIGRvdWJsZSBtX21pbmltdW1TY2FsZUZhY3RvciB7IDEg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQppbmRleCA3MjdmMjM3YzdlM2Y4
MTc4ODA0NTExMjUzM2ZkYTIxOWMyMDk0MmQwLi4wMmVjMzNkYTAzZTQwMDgzZTE2YjlmNzNiMDA5
NDViOTE3YWE3ODU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCkBAIC01
NjQsNiArNTY0LDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZW5jb2RlKElQ
Qzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAogICAgIGVuY29kZXIgPDwgbV9zY3JvbGxQb3Np
dGlvbjsKIAorICAgIGVuY29kZXIgPDwgbV90aGVtZUNvbG9yOwogICAgIGVuY29kZXIgPDwgbV9w
YWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3I7CiAgICAgZW5jb2RlciA8PCBtX3BhZ2VTY2FsZUZh
Y3RvcjsKICAgICBlbmNvZGVyIDw8IG1fbWluaW11bVNjYWxlRmFjdG9yOwpAQCAtNjU4LDcgKzY1
OSwxMCBAQCBib29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpkZWNvZGUoSVBDOjpEZWNv
ZGVyJiBkZWNvZGVyLCBSZW1vdGVMYXllclRyZWVUcgogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQubV9zY3JvbGxQb3NpdGlvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAK
KworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fdGhlbWVDb2xvcikpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fcGFnZUV4
dGVuZGVkQmFja2dyb3VuZENvbG9yKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAxN2M2YmU5
MWEyNDliZDQxNzcwMTE0NGZlMzIzYWY1NGRjMjZmOTM1Li5mMDFiNjNmNTIyNGNlNzA0MGRjYjBj
OGNmOWJiZWRiYTU4MDI4OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIkFQSUZyYW1lVHJl
ZU5vZGUuaCIKICNpbXBvcnQgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW1wb3J0ICJBUElT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbXBvcnQgIkNvY29hQ29sb3IuaCIKICNpbXBvcnQg
IkNvY29hSW1hZ2UuaCIKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIK
ICNpbXBvcnQgIkNvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCIKQEAgLTExNyw2
ICsxMTgsNyBAQAogI2ltcG9ydCAiX1dLVmlzaXRlZExpbmtTdG9yZUludGVybmFsLmgiCiAjaW1w
b3J0ICJfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9BdHRy
aWJ1dGVkU3RyaW5nLmg+CisjaW1wb3J0IDxXZWJDb3JlL0NvbG9yQ29jb2EuaD4KICNpbXBvcnQg
PFdlYkNvcmUvQ29sb3JTZXJpYWxpemF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0VsZW1lbnRD
b250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTRE9NQmluZGluZy5oPgpAQCAtMjc4Niw2ICsy
Nzg4LDE0IEBAIC0gKHZvaWQpX3NldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlOihCT09MKWNhblVz
ZUNyZWRlbnRpYWxTdG9yYWdlCiAgICAgX3BhZ2UtPnNldENhblVzZUNyZWRlbnRpYWxTdG9yYWdl
KGNhblVzZUNyZWRlbnRpYWxTdG9yYWdlKTsKIH0KIAorLSAoQ29jb2FDb2xvciAqKV90aGVtZUNv
bG9yCit7CisgICAgYXV0byB0aGVtZUNvbG9yID0gX3BhZ2UtPnRoZW1lQ29sb3IoKTsKKyAgICBp
ZiAoIXRoZW1lQ29sb3IuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gbmlsOworICAgIHJldHVy
biBXZWJDb3JlOjpwbGF0Zm9ybUNvbG9yKHRoZW1lQ29sb3IpOworfQorCiAtIChpZCA8X1dLSW5w
dXREZWxlZ2F0ZT4pX2lucHV0RGVsZWdhdGUKIHsKICAgICByZXR1cm4gX2lucHV0RGVsZWdhdGUu
Z2V0QXV0b3JlbGVhc2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCAzZDk0MGRmNGZiNmE5OTkzYjYzMjNhYjYw
ZDc0NmU2MzRhNDhiZGNmLi43ZTdkYWViZGY5NmE2ZTM4MzBkOTQ3YmJmNWU0M2E3ZWI3OGRkOWYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKQEAgLTM2Miw2ICszNjIsMjEgQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAtICh2
b2lkKV9kaWRFbmFibGVCcm93c2VyRXh0ZW5zaW9uczooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICos
IE5TU3RyaW5nICo+ICopZXh0ZW5zaW9uSURUb05hbWVNYXAgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX2RpZERpc2FibGVCcm93
c2VyRXh0ZW5zaW9uczooTlNTZXQ8TlNTdHJpbmcgKj4gKilleHRlbnNpb25JRHMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAorLyohIEBhYnN0
cmFjdCBUaGUgdGhlbWUgY29sb3Igb2YgdGhlIGFjdGl2ZSBwYWdlLgorIEBkaXNjdXNzaW9uIFRo
aXMgaXMgdGhlIHZhbHVlIG9mIHRoZSBtb3N0IHJlY2VudGx5IGNyZWF0ZWQgb3IgbW9kaWZpZWQK
KyBAdGV4dGJsb2NrCisgICAgPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnRzPSIuLi4i
PgorIEAvdGV4dGJsb2NrCisgaW4gdGhlIGN1cnJlbnQgcGFnZS4KKyBAbGluayBXS1dlYlZpZXcg
QC9saW5rIGlzIGtleS12YWx1ZSBvYnNlcnZpbmcgKEtWTykgY29tcGxpYW50IGZvciB0aGlzCisg
cHJvcGVydHkuCisgKi8KKyNpZiBUQVJHRVRfT1NfSVBIT05FCitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIFVJQ29sb3IgKl90aGVtZUNvbG9yIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKTsKKyNlbHNlCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQ29s
b3IgKl90aGVtZUNvbG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworI2Vu
ZGlmCisKIEBlbmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EuaAppbmRleCBhNDgwYjM4NGNm
ZWU0NzgwZTE3MWJhNzZlMDRiYjY1NTg1YTFiYTdjLi41NmU1NjU3ZDNiZjk4ZWU3ZmFhOWUxMGFh
YmMxYmQ2YTJiN2ZmZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9QYWdlQ2xpZW50SW1wbENvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvUGFnZUNsaWVudEltcGxDb2NvYS5oCkBAIC00OSw2ICs0OSw4IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgcGFnZUNsb3NlZCgpIG92ZXJyaWRlOwogCisgICAgdm9pZCB0aGVtZUNvbG9yV2lsbENo
YW5nZSgpIGZpbmFsOworICAgIHZvaWQgdGhlbWVDb2xvckRpZENoYW5nZSgpIGZpbmFsOwogICAg
IHZvaWQgaXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCkgZmluYWw7CiAgICAgdm9pZCBpc1BsYXlp
bmdBdWRpb0RpZENoYW5nZSgpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbQppbmRleCA4MDYxYmZiZDQ2MmFmMGQ1
MWRhODZjZjRmOTUyNWY3YTdiZTNhMjlmLi41N2QzNzAyNDE2MTA5NGY5Yjk3MGRhODFjZjRhYjUw
NTZhOTQ4NzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdl
Q2xpZW50SW1wbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Bh
Z2VDbGllbnRJbXBsQ29jb2EubW0KQEAgLTQ0LDYgKzQ0LDE2IEBAIFBhZ2VDbGllbnRJbXBsQ29j
b2E6OlBhZ2VDbGllbnRJbXBsQ29jb2EoV0tXZWJWaWV3ICp3ZWJWaWV3KQogCiBQYWdlQ2xpZW50
SW1wbENvY29hOjp+UGFnZUNsaWVudEltcGxDb2NvYSgpID0gZGVmYXVsdDsKIAordm9pZCBQYWdl
Q2xpZW50SW1wbENvY29hOjp0aGVtZUNvbG9yV2lsbENoYW5nZSgpCit7CisgICAgW21fd2ViVmll
dyB3aWxsQ2hhbmdlVmFsdWVGb3JLZXk6QCJfdGhlbWVDb2xvciJdOworfQorCit2b2lkIFBhZ2VD
bGllbnRJbXBsQ29jb2E6OnRoZW1lQ29sb3JEaWRDaGFuZ2UoKQoreworICAgIFttX3dlYlZpZXcg
ZGlkQ2hhbmdlVmFsdWVGb3JLZXk6QCJfdGhlbWVDb2xvciJdOworfQorCiB2b2lkIFBhZ2VDbGll
bnRJbXBsQ29jb2E6OmlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpCiB7CiAgICAgW21fd2ViVmll
dyB3aWxsQ2hhbmdlVmFsdWVGb3JLZXk6TlNTdHJpbmdGcm9tU2VsZWN0b3IoQHNlbGVjdG9yKF9p
c1BsYXlpbmdBdWRpbykpXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBl
OGQyN2MyYTEzYTM0MGExZjc4NWUwOGE2ZWJmMzI1MmY5YzUyZjU4Li4xNDg1Nzk2YmM1ZjgxZTRj
MzM0OGYzMmZmYTk4ODc4YTEyOWU2ZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCkBAIC00OTIsNiArNDkyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWls
TmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNh
bWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGUpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNvbG9yV2lsbENoYW5nZSgpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNvbG9yRGlkQ2hhbmdlKCkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGRpZENoYW5nZUJhY2tncm91bmRDb2xvcigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaXNQ
bGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdB
dWRpb0RpZENoYW5nZSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IGU0OTM5ZTY3NGRkNGZiMzEzMzYxMzkzMzliNGM1YmM5MjkxMzdjN2EuLmU5NGEx
MmZiM2NiY2JjZjU2MmMxYTQzMTQzMTA3YTM5MTdhYWQ4NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODQxNyw2ICs4NDE3LDE2IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRDaGFuZ2VQYWdlQ291bnQodW5zaWduZWQgcGFnZUNvdW50KQogICAgIG1fcGFn
ZUNvdW50ID0gcGFnZUNvdW50OwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6dGhlbWVDb2xvckNo
YW5nZWQoY29uc3QgQ29sb3ImIHRoZW1lQ29sb3IpCit7CisgICAgaWYgKG1fdGhlbWVDb2xvciA9
PSB0aGVtZUNvbG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBwYWdlQ2xpZW50KCkudGhlbWVD
b2xvcldpbGxDaGFuZ2UoKTsKKyAgICBtX3RoZW1lQ29sb3IgPSB0aGVtZUNvbG9yOworICAgIHBh
Z2VDbGllbnQoKS50aGVtZUNvbG9yRGlkQ2hhbmdlKCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5
OjpwYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3JEaWRDaGFuZ2UoY29uc3QgQ29sb3ImIGJhY2tn
cm91bmRDb2xvcikKIHsKICAgICBtX3BhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvciA9IGJhY2tn
cm91bmRDb2xvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDZm
ZDIwMjk0ODQyMGI2YWI3NDM4MTE5MDEzZDk5NmJjMjdmODk1Yy4uMjQyYzQ1ZjBkOTM1OWZlMTcw
MTUyMWQxZWY4Y2Q3NTUwODU3MmZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTYyOSw2ICs2MjksOSBAQCBwdWJsaWM6CiAgICAgZmxvYXQgdG9wQ29udGVudElu
c2V0KCkgY29uc3QgeyByZXR1cm4gbV90b3BDb250ZW50SW5zZXQ7IH0KICAgICB2b2lkIHNldFRv
cENvbnRlbnRJbnNldChmbG9hdCk7CiAKKyAgICAvLyBDb3JyZXNwb25kcyB0byB0aGUgd2ViIGNv
bnRlbnQncyBgPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnQ9Ii4uLiI+YC4KKyAgICBX
ZWJDb3JlOjpDb2xvciB0aGVtZUNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV90aGVtZUNvbG9yOyB9
CisKICAgICBXZWJDb3JlOjpDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV91
bmRlcmxheUNvbG9yOyB9CiAgICAgdm9pZCBzZXRVbmRlcmxheUNvbG9yKGNvbnN0IFdlYkNvcmU6
OkNvbG9yJik7CiAKQEAgLTE5OTYsNiArMTk5OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRD
aGFuZ2VTY3JvbGxiYXJzRm9yTWFpbkZyYW1lKGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhciwg
Ym9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcik7CiAgICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxPZmZz
ZXRQaW5uaW5nRm9yTWFpbkZyYW1lKGJvb2wgcGlubmVkVG9MZWZ0U2lkZSwgYm9vbCBwaW5uZWRU
b1JpZ2h0U2lkZSwgYm9vbCBwaW5uZWRUb1RvcFNpZGUsIGJvb2wgcGlubmVkVG9Cb3R0b21TaWRl
KTsKICAgICB2b2lkIGRpZENoYW5nZVBhZ2VDb3VudCh1bnNpZ25lZCk7CisgICAgdm9pZCB0aGVt
ZUNvbG9yQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpDb2xvciYpOwogICAgIHZvaWQgcGFnZUV4dGVu
ZGVkQmFja2dyb3VuZENvbG9yRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CiAjaWYg
RU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgdm9pZCBkaWRGYWlsVG9Jbml0aWFsaXpl
UGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJp
bmcsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZyk7CkBAIC0yNTQxLDYgKzI1NDUsNyBAQCBw
cml2YXRlOgogCiAgICAgTGF5ZXJIb3N0aW5nTW9kZSBtX2xheWVySG9zdGluZ01vZGUgeyBMYXll
ckhvc3RpbmdNb2RlOjpJblByb2Nlc3MgfTsKIAorICAgIFdlYkNvcmU6OkNvbG9yIG1fdGhlbWVD
b2xvcjsKICAgICBXZWJDb3JlOjpDb2xvciBtX3VuZGVybGF5Q29sb3I7CiAgICAgV2ViQ29yZTo6
Q29sb3IgbV9wYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmZDAxZDU1M2NjNGVh
MGQ1M2Y4NjQ5MzQwZjRjY2MxYWJmYTU3NWY3Li5hN2YyYmU3NmEyNTVjOTQwYzk2ZjZkOWU5NWQ5
ZWE0ZjBjY2ZkZGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC03Nyw2ICs3Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94
eSB7CiAgICAgRGlkQ2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFtZShib29sIGhhc0hvcml6b250
YWxTY3JvbGxiYXIsIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIpCiAgICAgRGlkQ2hhbmdlU2Ny
b2xsT2Zmc2V0UGlubmluZ0Zvck1haW5GcmFtZShib29sIHBpbm5lZFRvTGVmdFNpZGUsIGJvb2wg
cGlubmVkVG9SaWdodFNpZGUsIGJvb2wgcGlubmVkVG9Ub3BTaWRlLCBib29sIHBpbm5lZFRvQm90
dG9tU2lkZSkKICAgICBEaWRDaGFuZ2VQYWdlQ291bnQodW5zaWduZWQgcGFnZUNvdW50KQorICAg
IFRoZW1lQ29sb3JDaGFuZ2VkKFdlYkNvcmU6OkNvbG9yIHRoZW1lQ29sb3IpCiAgICAgUGFnZUV4
dGVuZGVkQmFja2dyb3VuZENvbG9yRGlkQ2hhbmdlKFdlYkNvcmU6OkNvbG9yIGJhY2tncm91bmRD
b2xvcikKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBEaWRGYWlsVG9Jbml0
aWFsaXplUGx1Z2luKFN0cmluZyBtaW1lVHlwZSwgU3RyaW5nIGZyYW1lVVJMU3RyaW5nLCBTdHJp
bmcgcGFnZVVSTFN0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tCmluZGV4IGIwOWNjOTJmYjE0MmZkYTlkNDMyMzBkZjY0NjgxNTNiMTFkMjc2
NzMuLjYxODkyYzI3MzYyODU0NWVlZjVkZjNkN2U1ZGYwOWRlZGNiMzUwNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMzM1LDYgKzMz
NSw3IEBAIHN0YXRpYyBib29sIGV4Y2VlZHNSZW5kZXJUcmVlU2l6ZVNpemVUaHJlc2hvbGQodWlu
dDY0X3QgdGhyZXNob2xkU2l6ZSwgdWludDY0X3QKIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZENv
bW1pdExheWVyVHJlZShjb25zdCBXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiBs
YXllclRyZWVUcmFuc2FjdGlvbikKIHsKKyAgICB0aGVtZUNvbG9yQ2hhbmdlZChsYXllclRyZWVU
cmFuc2FjdGlvbi50aGVtZUNvbG9yKCkpOwogICAgIG1fcGFnZUV4dGVuZGVkQmFja2dyb3VuZENv
bG9yID0gbGF5ZXJUcmVlVHJhbnNhY3Rpb24ucGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKCk7
CiAKICAgICBpZiAoIW1faGFzUmVjZWl2ZWRMYXllclRyZWVUcmFuc2FjdGlvbkFmdGVyRGlkQ29t
bWl0TG9hZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBmZWMwZmVlZmQ1NTNkNmVjMjJj
NGQ4Y2RkZjlhOGVjN2ZlMThmZGRiLi4zOTNiMDdhY2FlZDMwYzQzMmIzMTY4MWE2OGE2NWU4MWI3
YzhkZjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTEzOSw2ICsxMTM5LDExIEBAIENv
bG9yIFdlYkNocm9tZUNsaWVudDo6dW5kZXJsYXlDb2xvcigpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cGFnZS51bmRlcmxheUNvbG9yKCk7CiB9CiAKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp0aGVtZUNv
bG9yQ2hhbmdlZChDb2xvciAvKiB0aGVtZUNvbG9yICovKSBjb25zdAoreworICAgIG1fcGFnZS50
aGVtZUNvbG9yQ2hhbmdlZCgpOworfQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6cGFnZUV4dGVu
ZGVkQmFja2dyb3VuZENvbG9yRGlkQ2hhbmdlKENvbG9yIGJhY2tncm91bmRDb2xvcikgY29uc3QK
IHsKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMDU4MjJiOTk3YmE4
NDE1MDkzYTYzZmQxNWY1NDM4Yzk2OTRlZmU5Yi4uZTQ5NjNkNjQ2Y2I2ZWQ4MTNhMWZkNGNjNGU5
N2Y5MGZlNWQ3ZjIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzI4LDYgKzMyOCw3IEBAIHBy
aXZhdGU6CiAKICAgICBXZWJDb3JlOjpDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgZmluYWw7
CiAKKyAgICB2b2lkIHRoZW1lQ29sb3JDaGFuZ2VkKFdlYkNvcmU6OkNvbG9yKSBjb25zdCBmaW5h
bDsKICAgICB2b2lkIHBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvckRpZENoYW5nZShXZWJDb3Jl
OjpDb2xvcikgY29uc3QgZmluYWw7CiAgICAgCiAgICAgdm9pZCB3aGVlbEV2ZW50SGFuZGxlcnND
aGFuZ2VkKGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCA5ZTUwOTEwNDQ3NTlhZDA3YjBkYjdjNzg3Nzc3ZGNlZDc4NTA3ZmQ0
Li42NWZjZjZiMzdmNTUxN2YwZGE1Y2I5ZGU4Mzg1MGRiZGRlN2I5YTAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzkwOCw2ICszOTA4LDcg
QEAgdm9pZCBXZWJQYWdlOjp3aWxsQ29tbWl0TGF5ZXJUcmVlKFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uJiBsYXllclRyYW5zYWN0aW9uKQogICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0U2Nyb2xs
T3JpZ2luKGZyYW1lVmlldy0+c2Nyb2xsT3JpZ2luKCkpOwogICAgIGxheWVyVHJhbnNhY3Rpb24u
c2V0UGFnZVNjYWxlRmFjdG9yKGNvcmVQYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpKTsKICAgICBs
YXllclRyYW5zYWN0aW9uLnNldFJlbmRlclRyZWVTaXplKGNvcmVQYWdlKCktPnJlbmRlclRyZWVT
aXplKCkpOworICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0VGhlbWVDb2xvcihjb3JlUGFnZSgpLT50
aGVtZUNvbG9yKCkpOwogICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0UGFnZUV4dGVuZGVkQmFja2dy
b3VuZENvbG9yKGNvcmVQYWdlKCktPnBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcigpKTsKIAog
ICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0QmFzZUxheW91dFZpZXdwb3J0U2l6ZShmcmFtZVZpZXct
PmJhc2VMYXlvdXRWaWV3cG9ydFNpemUoKSk7CkBAIC02MTI3LDYgKzYxMjgsOCBAQCB2b2lkIFdl
YlBhZ2U6OmRpZENvbW1pdExvYWQoV2ViRnJhbWUqIGZyYW1lKQogICAgIG1fbG9hZENvbW1pdFRp
bWUgPSBXYWxsVGltZTo6bm93KCk7CiAjZW5kaWYKIAorICAgIHRoZW1lQ29sb3JDaGFuZ2VkKCk7
CisKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS51cGRhdGVBY3RpdmVQYWdlcyhtX3Byb2Nl
c3NEaXNwbGF5TmFtZSk7CiAKICAgICB1cGRhdGVNYWluRnJhbWVTY3JvbGxPZmZzZXRQaW5uaW5n
KCk7CkBAIC02MjY0LDYgKzYyNjcsMTYgQEAgdm9pZCBXZWJQYWdlOjpzZW5kVG91Y2hCYXJNZW51
SXRlbURhdGFSZW1vdmVkVXBkYXRlKEhUTUxNZW51SXRlbUVsZW1lbnQmIGVsZW1lbnQKIH0KICNl
bmRpZgogCit2b2lkIFdlYlBhZ2U6OmZsdXNoUGVuZGluZ1RoZW1lQ29sb3JDaGFuZ2UoKQorewor
ICAgIGlmICghbV9wZW5kaW5nVGhlbWVDb2xvckNoYW5nZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9wZW5kaW5nVGhlbWVDb2xvckNoYW5nZSA9IGZhbHNlOworCisgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpUaGVtZUNvbG9yQ2hhbmdlZChtX3BhZ2UtPnRoZW1lQ29sb3IoKSkp
OworfQorCiB2b2lkIFdlYlBhZ2U6OmZsdXNoUGVuZGluZ0VkaXRvclN0YXRlVXBkYXRlKCkKIHsK
ICAgICBpZiAoIW1faGFzUGVuZGluZ0VkaXRvclN0YXRlVXBkYXRlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGE0NDc3ZGM3ZWVkMmQxYWU3OTFiZjc1
MTViOTY0NGYzZjYxMzNkN2MuLmJiYzFhMGViMTljODE2ZGU0ZWY1NTM2NzFiMTI2YjUwZTcwMTBm
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEy
MTUsNiArMTIxNSw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQbHVnaW5WaWV3KiBwbHVnaW5W
aWV3Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqKTsKIAorICAgIHZvaWQgdGhlbWVDb2xvckNoYW5n
ZWQoKSB7IG1fcGVuZGluZ1RoZW1lQ29sb3JDaGFuZ2UgPSB0cnVlOyB9CisgICAgdm9pZCBmbHVz
aFBlbmRpbmdUaGVtZUNvbG9yQ2hhbmdlKCk7CisKICAgICB2b2lkIGZsdXNoUGVuZGluZ0VkaXRv
clN0YXRlVXBkYXRlKCk7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpA
QCAtMjAzMSw2ICsyMDM0LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6RWxlbWVu
dD4gbV9mb2N1c2VkRWxlbWVudDsKICAgICBSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4gbV9yZWNl
bnRseUJsdXJyZWRFbGVtZW50OwogICAgIGJvb2wgbV9oYXNQZW5kaW5nSW5wdXRDb250ZXh0VXBk
YXRlQWZ0ZXJCbHVycmluZ0FuZFJlZm9jdXNpbmdFbGVtZW50IHsgZmFsc2UgfTsKKyAgICBib29s
IG1fcGVuZGluZ1RoZW1lQ29sb3JDaGFuZ2UgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNQZW5k
aW5nRWRpdG9yU3RhdGVVcGRhdGUgeyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggOWYx
ZjBmZWYzZTMzN2UzMjU4YzJjYTE0NmZkMGUwYTNiMjAxOWVlMS4uMzRlZTU3MmE2MTYwYjQzNmM2
OWVhMzBiOTQ1NWNhZTVkNmIwZmM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5tbQpAQCAtNDQ2LDYgKzQ0Niw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZyhVcGRhdGVSZW5kZXJpbmdUeXBlIGZsdXNoVHlwCiAg
ICAgICAgIHNjYWxlVmlld1RvRml0RG9jdW1lbnRJZk5lZWRlZCgpOwogCiAgICAgICAgIG1fd2Vi
UGFnZS51cGRhdGVSZW5kZXJpbmcoKTsKKyAgICAgICAgbV93ZWJQYWdlLmZsdXNoUGVuZGluZ1Ro
ZW1lQ29sb3JDaGFuZ2UoKTsKICAgICAgICAgbV93ZWJQYWdlLmZsdXNoUGVuZGluZ0VkaXRvclN0
YXRlVXBkYXRlKCk7CiAgICAgICAgIG1fd2ViUGFnZS5mbHVzaFBlbmRpbmdJbnRyaW5zaWNDb250
ZW50U2l6ZVVwZGF0ZSgpOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggM2YxN2Y5YjVkYjg4Zjg0MDJiYmQwZDQ0OGQ2MWFmZjFmZmUzYmFlZi4u
NTc2ODA4YjRhMWE0YjNiNTlhNTgxYzUzNjk0YjI0YTZhYjRkYTExMyAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIx
LTAxLTI2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBv
c2UgdGhlIHZhbHVlIG9mIGA8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iLi4uIj5g
IGFzIFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIwOTQ0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjE5ODA4Mz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvSFRNTE1ldGFUaGVtZUNvbG9yLm1tOiBBZGRlZC4KKyAgICAgICAgKFRFU1Qu
SFRNTE1ldGFUaGVtZUNvbG9yLk9uTG9hZCk6CisgICAgICAgIChURVNULkhUTUxNZXRhVGhlbWVD
b2xvci5NdWx0aXBsZVRhZ3MpOgorICAgICAgICAoLVtXS1dlYlZpZXdUaGVtZUNvbG9yT2JzZXJ2
ZXIgaW5pdFdpdGhXZWJWaWV3Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXdUaGVtZUNvbG9yT2Jz
ZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29udGV4dDpdKToK
KyAgICAgICAgKFRFU1QuSFRNTE1ldGFUaGVtZUNvbG9yLktWTyk6CisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAy
MS0wMS0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBU1NFUlQgTk9UIFJFQUNIRUQgaW4gV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzRHJhd2luZ0l0
ZW0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjdmYmY4NTI2MjI3OTg3ZGI5NWVkOTYxZDE0
NGQ4YTIyMmIxZTkyNC4uMWQ2ZTg3NjU0YjQ0NWQ2NTcyOTcyZjRiYmNkMTRhNjEzMjgwMzViNCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0Myw2ICs4NDMsNyBAQAogCQk5M0Y1NkRBOTFF
NUY5MTlEMDAzRURFODQgLyogV0tXZWJWaWV3U25hcHNob3QubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NkRBODFFNUY5MTgxMDAzRURFODQgLyog
V0tXZWJWaWV3U25hcHNob3QubW0gKi87IH07CiAJCTkzRjdFODZGMTREQzhFNUMwMEM4NEE5OSAv
KiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjdFODZFMTREQzhFNUIw
MEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNw
cCAqLzsgfTsKIAkJOTUwRTRDQzEyNTJFNzUyNDAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBFNEND
MDI1MkU3NTIzMDA3MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSAqLzsgfTsKKwkJOTVBNTI0
OTUyNTgxQTEwRDAwNDYxRkU5IC8qIEhUTUxNZXRhVGhlbWVDb2xvci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QTUyNDk0MjU4MUExMEQwMDQ2MUZF
OSAvKiBIVE1MTWV0YVRoZW1lQ29sb3IubW0gKi87IH07CiAJCTk1QjZCM0I3MjUxRUJGMkYwMEZD
NDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTVCNkIzQjYyNTFFQkYyRjAwRkM0MzgyIC8qIE1lZGlhRG9jdW1lbnQu
bW0gKi87IH07CiAJCTk5ODRGQUNDMUNGRkFGNjAwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5w
dXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTg0
RkFDQTFDRkZBRUVFMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tICovOyB9OwogCQk5
OTg0RkFDRTFDRkZCMDkwMDA4RDE5OEMgLyogZWRpdGFibGUtYm9keS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODRGQUNEMUNGRkIw
MzgwMDhEMTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0bWwgKi87IH07CkBAIC0yNDg0LDYgKzI0ODUs
NyBAQAogCQk5M0Y3RTg2QjE0REM4RTREMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0RnJhbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzRjdFODZFMTREQzhFNUIwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5k
bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTBFNENDMDI1MkU3NTIzMDA3
MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IGlPU1N0eWx1c1N1cHBvcnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTk1QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBIVE1MTWV0YVRoZW1lQ29sb3IubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBIVE1MTWV0YVRoZW1lQ29s
b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1QjZCM0I2MjUxRUJGMkYwMEZD
NDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTWVkaWFEb2N1bWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTk4NEZBQ0ExQ0ZGQUVFRTAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1RleHRJbnB1dC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk4NEZBQ0QxQ0ZGQjAzODAwOEQxOThDIC8q
IGVkaXRhYmxlLWJvZHkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJlZGl0YWJs
ZS1ib2R5Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzMxNiw2ICszMzE4
LDcgQEAKIAkJCQkwN0UxRjZBMDFGRkMzQTA4MDA5NkM3RUMgLyogR2V0RGlzcGxheU1lZGlhLm1t
ICovLAogCQkJCTJEQURGMjYyMjFDQjhGMzIwMDNEM0UzQSAvKiBHZXRSZXNvdXJjZURhdGEubW0g
Ki8sCiAJCQkJNDY1RTI4MDYyNTVCMkE2OTAwNjNBNzg3IC8qIEdQVVByb2Nlc3MubW0gKi8sCisJ
CQkJOTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8qIEhUTUxNZXRhVGhlbWVDb2xvci5tbSAqLywK
IAkJCQk1MUFGMjNERTFFRjFBMzcyMDA3MkYyODEgLyogSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbSAq
LywKIAkJCQlFQjIzMEQzRTI0NUU3MjYzMDBDNjZBRDEgLyogSURCQ2hlY2twb2ludFdBTC5tbSAq
LywKIAkJCQk1MTA0Nzc3NTFEMjk4RTAzMDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3ZlcnkubW0g
Ki8sCkBAIC01MzAwLDYgKzUzMDMsNyBAQAogCQkJCTdDQ0U3RUZBMUE0MTFBRTYwMDQ0N0M0QyAv
KiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VD
MTFBNDExQTdFMDA0NDdDNEMgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3Q0NFN0VDMjFBNDExQTdFMDA0NDdDNEMgLyogSFRNTEZvcm1Db2xsZWN0aW9u
TmFtZWRJdGVtLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTVBNTI0OTUyNTgxQTEwRDAwNDYxRkU5
IC8qIEhUTUxNZXRhVGhlbWVDb2xvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMDUwMUQw
QTY0MTgwMEZFQkNGMyAvKiBIVE1MUGFyc2VySWRpb21zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTVDQTFERUM4MUY3MUY3MDEwMEU3MUJEMyAvKiBIVFRQSGVhZGVyRmllbGQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDZGQTJGRUUyMzg0NkNBNTAwMENDQjBDIC8qIEhUVFBIZWFkZXJNYXAuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0hUTUxNZXRhVGhlbWVDb2xvci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvSFRNTE1ldGFUaGVtZUNvbG9yLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5NGI5NzUy
MTI2ODlkMjA2YzRkMDc3NTY0ZGU4MTMxNTgwMDRjYTMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0hUTUxNZXRhVGhlbWVDb2xvci5tbQpA
QCAtMCwwICsxLDE2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1w
b3J0ICJDb2NvYUNvbG9yLmgiCisjaW1wb3J0ICJUZXN0Q29jb2EuaCIKKyNpbXBvcnQgIlRlc3RX
S1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+CisKKyNkZWZpbmUgRVhQRUNUX05TU1RSSU5HX0VRKGV4cGVjdGVk
LCBhY3R1YWwpIFwKKyAgICBFWFBFQ1RfVFJVRShbYWN0dWFsIGlzS2luZE9mQ2xhc3M6W05TU3Ry
aW5nIGNsYXNzXV0pOyBcCisgICAgRVhQRUNUX1dLX1NUUkVRKGV4cGVjdGVkLCAoTlNTdHJpbmcg
KilhY3R1YWwpOworCitjb25zdGV4cHIgQ0dGbG9hdCByZWRDb2xvckNvbXBvbmVudHNbNF0gPSB7
IDEsIDAsIDAsIDEgfTsKK2NvbnN0ZXhwciBDR0Zsb2F0IGJsdWVDb2xvckNvbXBvbmVudHNbNF0g
PSB7IDAsIDAsIDEsIDEgfTsKKworVEVTVChIVE1MTWV0YVRoZW1lQ29sb3IsIE9uTG9hZCkKK3sK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIEVYUEVDVF9UUlVFKCFb
d2ViVmlldyBfdGhlbWVDb2xvcl0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nQW5kV2FpdFVudGlsQWxsSW1tZWRpYXRlQ2hpbGRGcmFtZXNQYWludDpAIjxtZXRh
IG5hbWU9J3RoZW1lLWNvbG9yJyBjb250ZW50PSdyZWQnPiJdOworCisgICAgYXV0byBzUkdCQ29s
b3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aE5hbWUoa0NHQ29sb3JTcGFj
ZVNSR0IpKTsKKyAgICBhdXRvIHJlZENvbG9yID0gYWRvcHRDRihDR0NvbG9yQ3JlYXRlKHNSR0JD
b2xvclNwYWNlLmdldCgpLCByZWRDb2xvckNvbXBvbmVudHMpKTsKKyAgICBFWFBFQ1RfVFJVRShD
R0NvbG9yRXF1YWxUb0NvbG9yKFt3ZWJWaWV3IF90aGVtZUNvbG9yXS5DR0NvbG9yLCByZWRDb2xv
ci5nZXQoKSkpOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nQW5k
V2FpdFVudGlsQWxsSW1tZWRpYXRlQ2hpbGRGcmFtZXNQYWludDpAIjxtZXRhIG5hbWU9J25vdC10
aGVtZS1jb2xvcicgY29udGVudD0ncmVkJz4iXTsKKworICAgIEVYUEVDVF9UUlVFKCFbd2ViVmll
dyBfdGhlbWVDb2xvcl0pOworfQorCitURVNUKEhUTUxNZXRhVGhlbWVDb2xvciwgTXVsdGlwbGVU
YWdzKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgRVhQRUNU
X1RSVUUoIVt3ZWJWaWV3IF90aGVtZUNvbG9yXSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91
c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50aWxBbGxJbW1lZGlhdGVDaGlsZEZyYW1lc1BhaW50
OkAiPG1ldGEgbmFtZT0ndGhlbWUtY29sb3InIGNvbnRlbnQ9J3JlZCc+PG1ldGEgbmFtZT0ndGhl
bWUtY29sb3InIGNvbnRlbnQ9J2JsdWUnPiJdOworCisgICAgYXV0byBzUkdCQ29sb3JTcGFjZSA9
IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aE5hbWUoa0NHQ29sb3JTcGFjZVNSR0IpKTsK
KyAgICBhdXRvIGJsdWVDb2xvciA9IGFkb3B0Q0YoQ0dDb2xvckNyZWF0ZShzUkdCQ29sb3JTcGFj
ZS5nZXQoKSwgYmx1ZUNvbG9yQ29tcG9uZW50cykpOworICAgIEVYUEVDVF9UUlVFKENHQ29sb3JF
cXVhbFRvQ29sb3IoW3dlYlZpZXcgX3RoZW1lQ29sb3JdLkNHQ29sb3IsIGJsdWVDb2xvci5nZXQo
KSkpOworfQorCitAaW50ZXJmYWNlIFdLV2ViVmlld1RoZW1lQ29sb3JPYnNlcnZlciA6IE5TT2Jq
ZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXc7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tXZWJWaWV3ICp3ZWJWaWV3
OworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpzdGF0ZTsKKworQGVuZAor
CitAaW1wbGVtZW50YXRpb24gV0tXZWJWaWV3VGhlbWVDb2xvck9ic2VydmVyCisKKy0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aFdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcKK3sKKyAgICBpZiAo
IShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9zdGF0
ZSA9IEAiYmVmb3JlLWluaXQiOworCisgICAgX3dlYlZpZXcgPSB3ZWJWaWV3OworICAgIFtfd2Vi
VmlldyBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJfdGhlbWVDb2xvciIgb3B0aW9uczpO
U0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uSW5pdGlhbCBjb250ZXh0Om5pbF07CisKKyAgICByZXR1
cm4gc2VsZjsKK30KKworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAq
KWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5n
ZSBjb250ZXh0Oih2b2lkICopY29udGV4dAoreworICAgIGlmIChbX3N0YXRlIGlzRXF1YWxUb1N0
cmluZzpAImJlZm9yZS1pbml0Il0pIHsKKyAgICAgICAgX3N0YXRlID0gQCJhZnRlci1pbml0IjsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChbX3N0YXRlIGlzRXF1YWxUb1N0cmlu
ZzpAImJlZm9yZS1sb2FkIl0pIHsKKyAgICAgICAgX3N0YXRlID0gQCJhZnRlci1sb2FkIjsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChbX3N0YXRlIGlzRXF1YWxUb1N0cmluZzpA
ImJlZm9yZS1jb250ZW50LWNoYW5nZSJdKSB7CisgICAgICAgIF9zdGF0ZSA9IEAiYWZ0ZXItY29u
dGVudC1jaGFuZ2UiOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKFtfc3RhdGUg
aXNFcXVhbFRvU3RyaW5nOkAiYmVmb3JlLW5hbWUtY2hhbmdlLW5vdC10aGVtZS1jb2xvciJdKSB7
CisgICAgICAgIF9zdGF0ZSA9IEAiYWZ0ZXItbmFtZS1jaGFuZ2Utbm90LXRoZW1lLWNvbG9yIjsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChbX3N0YXRlIGlzRXF1YWxUb1N0cmlu
ZzpAImJlZm9yZS1uYW1lLWNoYW5nZS10aGVtZS1jb2xvciJdKSB7CisgICAgICAgIF9zdGF0ZSA9
IEAiYWZ0ZXItbmFtZS1jaGFuZ2UtdGhlbWUtY29sb3IiOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKFtfc3RhdGUgaXNFcXVhbFRvU3RyaW5nOkAiYmVmb3JlLW5vZGUtcmVtb3Zl
ZCJdKSB7CisgICAgICAgIF9zdGF0ZSA9IEAiYWZ0ZXItbm9kZS1yZW1vdmVkIjsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
K0BlbmQKKworVEVTVChIVE1MTWV0YVRoZW1lQ29sb3IsIEtWTykKK3sKKyAgICBhdXRvIHNSR0JD
b2xvclNwYWNlID0gYWRvcHRDRihDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShrQ0dDb2xvclNw
YWNlU1JHQikpOworICAgIGF1dG8gcmVkQ29sb3IgPSBhZG9wdENGKENHQ29sb3JDcmVhdGUoc1JH
QkNvbG9yU3BhY2UuZ2V0KCksIHJlZENvbG9yQ29tcG9uZW50cykpOworICAgIGF1dG8gYmx1ZUNv
bG9yID0gYWRvcHRDRihDR0NvbG9yQ3JlYXRlKHNSR0JDb2xvclNwYWNlLmdldCgpLCBibHVlQ29s
b3JDb21wb25lbnRzKSk7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwor
ICAgIGF1dG8gdGhlbWVDb2xvck9ic2VydmVyID0gYWRvcHROUyhbW1dLV2ViVmlld1RoZW1lQ29s
b3JPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhXZWJWaWV3OndlYlZpZXcuZ2V0KCldKTsKKyAgICBF
WFBFQ1RfTlNTVFJJTkdfRVEoImFmdGVyLWluaXQiLCBbdGhlbWVDb2xvck9ic2VydmVyIHN0YXRl
XSk7CisgICAgRVhQRUNUX1RSVUUoIVt3ZWJWaWV3IF90aGVtZUNvbG9yXSk7CisKKyAgICBbdGhl
bWVDb2xvck9ic2VydmVyIHNldFN0YXRlOkAiYmVmb3JlLWxvYWQiXTsKKyAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50aWxBbGxJbW1lZGlhdGVDaGlsZEZy
YW1lc1BhaW50OkAiPG1ldGEgbmFtZT0ndGhlbWUtY29sb3InIGNvbnRlbnQ9J3JlZCc+Il07Cisg
ICAgRVhQRUNUX05TU1RSSU5HX0VRKCJhZnRlci1sb2FkIiwgW3RoZW1lQ29sb3JPYnNlcnZlciBz
dGF0ZV0pOworICAgIEVYUEVDVF9UUlVFKENHQ29sb3JFcXVhbFRvQ29sb3IoW3dlYlZpZXcgX3Ro
ZW1lQ29sb3JdLkNHQ29sb3IsIHJlZENvbG9yLmdldCgpKSk7CisKKyAgICBbdGhlbWVDb2xvck9i
c2VydmVyIHNldFN0YXRlOkAiYmVmb3JlLWNvbnRlbnQtY2hhbmdlIl07CisgICAgW3dlYlZpZXcg
b2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ21l
dGEnKS5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnLCAnYmx1ZScpIl07CisgICAgW3dlYlZpZXcgd2Fp
dEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiYWZ0
ZXItY29udGVudC1jaGFuZ2UiLCBbdGhlbWVDb2xvck9ic2VydmVyIHN0YXRlXSk7CisgICAgRVhQ
RUNUX1RSVUUoQ0dDb2xvckVxdWFsVG9Db2xvcihbd2ViVmlldyBfdGhlbWVDb2xvcl0uQ0dDb2xv
ciwgYmx1ZUNvbG9yLmdldCgpKSk7CisKKyAgICBbdGhlbWVDb2xvck9ic2VydmVyIHNldFN0YXRl
OkAiYmVmb3JlLW5hbWUtY2hhbmdlLW5vdC10aGVtZS1jb2xvciJdOworICAgIFt3ZWJWaWV3IG9i
amVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRh
Jykuc2V0QXR0cmlidXRlKCduYW1lJywgJ25vdC10aGVtZS1jb2xvcicpIl07CisgICAgW3dlYlZp
ZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9OU1NUUklOR19F
USgiYWZ0ZXItbmFtZS1jaGFuZ2Utbm90LXRoZW1lLWNvbG9yIiwgW3RoZW1lQ29sb3JPYnNlcnZl
ciBzdGF0ZV0pOworICAgIEVYUEVDVF9UUlVFKCFbd2ViVmlldyBfdGhlbWVDb2xvcl0pOworCisg
ICAgW3RoZW1lQ29sb3JPYnNlcnZlciBzZXRTdGF0ZTpAImJlZm9yZS1uYW1lLWNoYW5nZS10aGVt
ZS1jb2xvciJdOworICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhJykuc2V0QXR0cmlidXRlKCduYW1lJywgJ3RoZW1l
LWNvbG9yJykiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07
CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJhZnRlci1uYW1lLWNoYW5nZS10aGVtZS1jb2xvciIs
IFt0aGVtZUNvbG9yT2JzZXJ2ZXIgc3RhdGVdKTsKKyAgICBFWFBFQ1RfVFJVRShDR0NvbG9yRXF1
YWxUb0NvbG9yKFt3ZWJWaWV3IF90aGVtZUNvbG9yXS5DR0NvbG9yLCBibHVlQ29sb3IuZ2V0KCkp
KTsKKworICAgIFt0aGVtZUNvbG9yT2JzZXJ2ZXIgc2V0U3RhdGU6QCJiZWZvcmUtbm9kZS1yZW1v
dmVkIl07CisgICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJ21ldGEnKS5yZW1vdmUoKSJdOworICAgIFt3ZWJWaWV3IHdhaXRG
b3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImFmdGVy
LW5vZGUtcmVtb3ZlZCIsIFt0aGVtZUNvbG9yT2JzZXJ2ZXIgc3RhdGVdKTsKKyAgICBFWFBFQ1Rf
VFJVRSghW3dlYlZpZXcgX3RoZW1lQ29sb3JdKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418460</attachid>
            <date>2021-01-26 12:16:21 -0800</date>
            <delta_ts>2021-01-26 17:11:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220944-20210126131620.patch</filename>
            <type>text/plain</type>
            <size>42479</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzZjEzNmNhYzQ4OGY0NGU4YTBhNWNiODc3M2FkMjZiOWY4MjE2OTNiLi40
YzRmYzE4ODNlYjY1NWNlYzlhNmI1N2Y0ZjQ1YmJiZDE0ZTdhNzMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzQgQEAKKzIwMjEtMDEtMjYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIEV4cG9zZSB0aGUgdmFsdWUgb2YgYDxtZXRhIG5hbWU9InRoZW1lLWNvbG9y
IiBjb250ZW50PSIuLi4iPmAgYXMgU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjA5NDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcyMTk4MDgz
PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBodG1sL0hU
TUxNZXRhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1ldGFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZXRhRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZCk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWV0YUVsZW1lbnQ6OnJlbW92ZWRGcm9tQW5jZXN0b3IpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRhRWxlbWVudDo6cHJvY2Vzcyk6CisKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0aGVt
ZUNvbG9yIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpwcm9jZXNzVGhlbWVDb2xvcik6IEFkZGVkLgorICAgICAg
ICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjp0aGVtZUNvbG9yIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogcGFnZS9DaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6dGhlbWVDb2xvckNo
YW5nZWQgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgU2F2ZSB0aGUgYENvbG9yYCB0byBhIHZhcmlh
YmxlIHNvIGl0IGNhbiBiZSBhY2Nlc3NlZCBsYXRlciBkdXJpbmcgcmVuZGVyaW5nIHNvIHRoYXQg
dXBkYXRlcworICAgICAgICBhcmUga2VwdCBpbiBzeW5jIHdpdGggb3RoZXIgY2hhbmdlcyAoZS5n
LiBtb2RpZnlpbmcgdGhlIENTUyBgYmFja2dyb3VuZC1jb2xvcmApLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvQ29sb3JDb2NvYS5oOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgRXhwb3NlIHRoaXMgZmlsZSBhbmQgZXhw
b3J0IGl0cyBmdW5jdGlvbnMgc28gdGhleSBjYW4gYmUgdXNlZCBpbiBXZWJLaXQuCisKIDIwMjEt
MDEtMjYgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJ
RkNdIEluY29ycmVjdCBpbmxpbmUgYm94IHdpZHRoIHdpdGggaG9yaXpvbnRhbCBhbGlnbm1lbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNDY4OGU0ZTllZGM3ZGE5OTkxZjY0ZTgzMDk3MzRhMTFlNzQ4NDljYS4uY2Zh
ZGE0OWM5M2Q0NmQ0MzAzOTMzNWQzNDVmNjRlZWQ3ZmZiYTMzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1NSBAQAorMjAyMS0wMS0yNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgRXhwb3NlIHRoZSB2YWx1ZSBvZiBgPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNv
bnRlbnQ9Ii4uLiI+YCBhcyBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMDk0NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzIxOTgwODM+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRoZW1lQ29sb3JD
aGFuZ2VkKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp3aWxsQ29tbWl0TGF5ZXJUcmVlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmZsdXNoUGVuZGluZ1RoZW1lQ29sb3JDaGFuZ2UpOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp0aGVtZUNvbG9yQ2hhbmdlZCBjb25zdCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5t
bToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0
ZVJlbmRlcmluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojp0aGVtZUNvbG9yQ2hhbmdlZCk6IEFkZGVkLgorICAgICAgICBPbiBt
YWNPUywga2VlcCBhIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBgdGhlbWVDb2xvcmAgaGFz
IGNoYW5nZWQuIFVzZSB0aGlzIGZsYWcgd2hlbgorICAgICAgICB1cGRhdGluZyByZW5kZXJpbmcg
dG8gc2VuZCB0aGUgYENvbG9yYCB0byB0aGUgVUlQcm9jZXNzIHNvIHRoYXQgaXQncyBrZXB0IGlu
IHN5bmMgd2l0aCBvdGhlcgorICAgICAgICBjaGFuZ2VzIChlLmcuIG1vZGlmeWluZyB0aGUgQ1NT
IGBiYWNrZ3JvdW5kLWNvbG9yYCkuCisKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjp0aGVtZUNvbG9yIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpzZXRUaGVtZUNvbG9yKTogQWRkZWQu
CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENvbW1pdExheWVyVHJlZSk6CisgICAg
ICAgIE9uIGlPUywgaW5jbHVkZSB0aGUgYHRoZW1lQ29sb3JgIGluIGV2ZXJ5IGBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbmAgc28gdGhhdCBpdCdzIGtlcHQgaW4KKyAgICAgICAgc3luYyB3aXRo
IG90aGVyIGNoYW5nZXMgKGUuZy4gbW9kaWZ5aW5nIHRoZSBDU1MgYGJhY2tncm91bmQtY29sb3Jg
KS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnQ6OnRoZW1lQ29sb3JXaWxsQ2hhbmdlKTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnQ6OnRoZW1lQ29sb3JEaWRDaGFuZ2UpOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbENvY29hOjp0aGVtZUNvbG9yV2lsbENoYW5nZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbENvY29hOjp0aGVtZUNvbG9yRGlkQ2hhbmdlKTogQWRkZWQuCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciBPYmpDIEtWTyBvZiBgLVtXS1dlYlZpZXcgX3RoZW1lQ29s
b3JdYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojp0aGVtZUNvbG9yIGNvbnN0KTogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfdGhlbWVD
b2xvcl0pOiBBZGRlZC4KKwogMjAyMS0wMS0yNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmVydCBwYXJ0IG9mIHIyNzE0OTMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBk
YmVkNzQ2NjNmMWZjNTkzMGMxZDY1YWVjZDI2YWVmZjBmMDU0OTFjLi5iZGQxNmVkZjE2ZGQyZTIx
NWYzMWFmMjkzYTMxOTQ0NzNlMTQyZmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MjcyLDcgKzUyNzIsNyBAQAogCQlGNDgy
MjMxMzFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgyMjMxMjFFMzg2RTI0MDA2NkZD
NzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ4RDJBNkMyMTU2MjNCNDAwQzY3NTJCIC8qIEZvbnRTaGFk
b3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEQy
QTZBMjE1NjIzQjQwMEM2NzUyQiAvKiBGb250U2hhZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ4RDJBN0UyMTU3MTgyNjAwQzY3NTJCIC8q
IEZvbnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNDhEMkE3MTIxNTZEQzBBMDBDNjc1MkIgLyogRm9udEF0dHJpYnV0ZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGNDhEMkFBNTIx
NTk3NDBEMDBDNjc1MkIgLyogQ29sb3JDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4RDJBQTMyMTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29j
b2EuaCAqLzsgfTsKKwkJRjQ4RDJBQTUyMTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29jb2EuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OEQyQUEzMjE1
OTc0MEQwMEM2NzUyQiAvKiBDb2xvckNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ5Nzg2ODgxRkY0NUZBNTAwRTA2MEFCIC8qIFBhc3Rl
Ym9hcmRJdGVtSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQ5Nzg2ODcxRkY0NUZBNTAwRTA2MEFCIC8qIFBhc3RlYm9hcmRJdGVtSW5mby5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0QjQyMkM0
MjIwQzA1NjgwMDlFMUU3RCAvKiBET01QYXN0ZUFjY2Vzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRCNDIyQzIyMjBDMDAwMDAwOUUxRTdEIC8qIERP
TVBhc3RlQWNjZXNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRjRCRkI5ODUxRTFEREY5QjAwODYyQzI0IC8qIER1bXBFZGl0aW5nSGlzdG9yeS5q
cyBpbiBDb3B5IFNjcmlwdHMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4
Mzg5ODMxRTFEREYyQjAwNzZCN0VBIC8qIER1bXBFZGl0aW5nSGlzdG9yeS5qcyAqLzsgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDZjNDI4MTE4MmRjODU0NmRkNzVmNDQ1OTJiNTBkMjU5
NzY2MGNmMGUuLmM2NDE1YzI3OGI0MmNmZGZiYWE3MTgyMzlhZjM2YmM1YWM5NmI0NjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkJlZm9yZVVu
bG9hZEV2ZW50LmgiCiAjaW5jbHVkZSAiQ0RBVEFTZWN0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTRm9u
dFNlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNo
ZWRDU1NTdHlsZVNoZWV0LmgiCkBAIC0zNzk3LDYgKzM3OTgsMjAgQEAgdm9pZCBEb2N1bWVudDo6
dXBkYXRlVmlld3BvcnRBcmd1bWVudHMoKQogICAgIH0KIH0KIAordm9pZCBEb2N1bWVudDo6cHJv
Y2Vzc1RoZW1lQ29sb3IoY29uc3QgU3RyaW5nJiB0aGVtZUNvbG9yU3RyaW5nKQoreworICAgIGF1
dG8gdGhlbWVDb2xvciA9IENTU1BhcnNlcjo6cGFyc2VDb2xvcih0aGVtZUNvbG9yU3RyaW5nKTsK
KyAgICBpZiAodGhlbWVDb2xvciA9PSBtX3RoZW1lQ29sb3IpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fdGhlbWVDb2xvciA9IFdURk1vdmUodGhlbWVDb2xvcik7CisKKyAgICBzY2hlZHVsZVJl
bmRlcmluZ1VwZGF0ZSh7IH0pOworCisgICAgaWYgKGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCkp
CisgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnRoZW1lQ29sb3JDaGFuZ2VkKG1fdGhl
bWVDb2xvcik7Cit9CisKICNpZiBFTkFCTEUoREFSS19NT0RFX0NTUykKIHN0YXRpYyB2b2lkIHBy
b2Nlc3NDb2xvclNjaGVtZVN0cmluZyhTdHJpbmdWaWV3IGNvbG9yU2NoZW1lLCBjb25zdCBXVEY6
OkZ1bmN0aW9uPHZvaWQoU3RyaW5nVmlldyBrZXkpPiYgY2FsbGJhY2spCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IDg0ODEyODVmMjkxNGRhZGY4ZWE4ZDgyNzgzMjcwZGRkOWJjNjNmYzkuLjQ5
NGM4ZjBlZWY3ZjcyMDc0ZTliYTQwNGUwMWUwMWY3Yzg1OWY5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCkBAIC03MzksNiArNzM5LDkgQEAgcHVibGljOgogI2lmICFMT0dfRElTQUJMRUQKICAgICBT
ZWNvbmRzIHRpbWVTaW5jZURvY3VtZW50Q3JlYXRpb24oKSBjb25zdCB7IHJldHVybiBNb25vdG9u
aWNUaW1lOjpub3coKSAtIG1fZG9jdW1lbnRDcmVhdGlvblRpbWU7IH07CiAjZW5kaWYKKworICAg
IGNvbnN0IENvbG9yJiB0aGVtZUNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV90aGVtZUNvbG9yOyB9
CisKICAgICB2b2lkIHNldFRleHRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpIHsgbV90ZXh0Q29s
b3IgPSBjb2xvcjsgfQogICAgIGNvbnN0IENvbG9yJiB0ZXh0Q29sb3IoKSBjb25zdCB7IHJldHVy
biBtX3RleHRDb2xvcjsgfQogCkBAIC05MDgsNiArOTExLDcgQEAgcHVibGljOgogICAgIHZvaWQg
cHJvY2Vzc0Rpc2FibGVkQWRhcHRhdGlvbnMoY29uc3QgU3RyaW5nJiBhZGFwdGF0aW9ucyk7CiAg
ICAgdm9pZCB1cGRhdGVWaWV3cG9ydEFyZ3VtZW50cygpOwogICAgIHZvaWQgcHJvY2Vzc1JlZmVy
cmVyUG9saWN5KGNvbnN0IFN0cmluZyYgcG9saWN5LCBSZWZlcnJlclBvbGljeVNvdXJjZSk7Cisg
ICAgdm9pZCBwcm9jZXNzVGhlbWVDb2xvcihjb25zdCBTdHJpbmcmIHRoZW1lQ29sb3IpOwogCiAj
aWYgRU5BQkxFKERBUktfTU9ERV9DU1MpCiAgICAgdm9pZCBwcm9jZXNzQ29sb3JTY2hlbWUoY29u
c3QgU3RyaW5nJiBjb2xvclNjaGVtZSk7CkBAIC0xNzc2LDYgKzE3ODAsNyBAQCBwcml2YXRlOgog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEZvcm1Db250cm9sbGVyPiBtX2Zvcm1Db250cm9sbGVyOwog
CisgICAgQ29sb3IgbV90aGVtZUNvbG9yOwogICAgIENvbG9yIG1fdGV4dENvbG9yIHsgQ29sb3I6
OmJsYWNrIH07CiAgICAgQ29sb3IgbV9saW5rQ29sb3I7CiAgICAgQ29sb3IgbV92aXNpdGVkTGlu
a0NvbG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwCmluZGV4IGE0M2I4
OGFkNzc4MjVlZjg3YzgxYzhiMGI1NWVhNzg0MGU5NzNhNTMuLmQzY2MxNDdhNzJiNDA5YjM4ZmI3
YjM3YjE3MWQyMzM2MTNlMTY0MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1ldGFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVu
dC5jcHAKQEAgLTUyLDE1ICs1MiwyMyBAQCBSZWY8SFRNTE1ldGFFbGVtZW50PiBIVE1MTWV0YUVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bQogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEhUTUxNZXRhRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCit2b2lkIEhUTUxNZXRhRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiByZWFzb24pCit7CisgICAg
SFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBy
ZWFzb24pOworCisgICAgaWYgKG5hbWUgPT0gbmFtZUF0dHIgJiYgZXF1YWxMZXR0ZXJzSWdub3Jp
bmdBU0NJSUNhc2Uob2xkVmFsdWUsICJ0aGVtZS1jb2xvciIpICYmICFlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShuZXdWYWx1ZSwgInRoZW1lLWNvbG9yIikpCisgICAgICAgIGRvY3VtZW50
KCkucHJvY2Vzc1RoZW1lQ29sb3IoZW1wdHlTdHJpbmcoKSk7Cit9CisKIHZvaWQgSFRNTE1ldGFF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAobmFtZSA9PSBodHRwX2VxdWl2QXR0cikKICAg
ICAgICAgcHJvY2VzcygpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gY29udGVudEF0dHIpCiAgICAg
ICAgIHByb2Nlc3MoKTsKLSAgICBlbHNlIGlmIChuYW1lID09IG5hbWVBdHRyKSB7Ci0gICAgICAg
IC8vIERvIG5vdGhpbmcKLSAgICB9IGVsc2UKKyAgICBlbHNlIGlmIChuYW1lID09IG5hbWVBdHRy
KQorICAgICAgICBwcm9jZXNzKCk7CisgICAgZWxzZQogICAgICAgICBIVE1MRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCkBAIC03Nyw2ICs4NSwxNCBAQCB2b2lkIEhU
TUxNZXRhRWxlbWVudDo6ZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpCiAgICAgcHJvY2VzcygpOwog
fQogCit2b2lkIEhUTUxNZXRhRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlw
ZSByZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSkKK3sK
KyAgICBIVE1MRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihyZW1vdmFsVHlwZSwgb2xkUGFy
ZW50T2ZSZW1vdmVkVHJlZSk7CisKKyAgICBpZiAoIWlzQ29ubmVjdGVkKCkgJiYgZXF1YWxMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2UobmFtZSgpLCAidGhlbWUtY29sb3IiKSkKKyAgICAgICAgb2xk
UGFyZW50T2ZSZW1vdmVkVHJlZS5kb2N1bWVudCgpLnByb2Nlc3NUaGVtZUNvbG9yKGVtcHR5U3Ry
aW5nKCkpOworfQorCiB2b2lkIEhUTUxNZXRhRWxlbWVudDo6cHJvY2VzcygpCiB7CiAgICAgLy8g
Q2hhbmdpbmcgYSBtZXRhIHRhZyB3aGlsZSBpdCdzIG5vdCBpbiB0aGUgdHJlZSBzaG91bGRuJ3Qg
aGF2ZSBhbnkgZWZmZWN0IG9uIHRoZSBkb2N1bWVudC4KQEAgLTk1LDYgKzExMSw4IEBAIHZvaWQg
SFRNTE1ldGFFbGVtZW50Ojpwcm9jZXNzKCkKICAgICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShuYW1lKCksICJjb2xvci1zY2hlbWUiKSB8fCBlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShuYW1lKCksICJzdXBwb3J0ZWQtY29sb3Itc2NoZW1lcyIpKQogICAgICAg
ICBkb2N1bWVudCgpLnByb2Nlc3NDb2xvclNjaGVtZShjb250ZW50VmFsdWUpOwogI2VuZGlmCisg
ICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobmFtZSgpLCAidGhlbWUt
Y29sb3IiKSkKKyAgICAgICAgZG9jdW1lbnQoKS5wcm9jZXNzVGhlbWVDb2xvcihjb250ZW50VmFs
dWUpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJz
SWdub3JpbmdBU0NJSUNhc2UobmFtZSgpLCAiZm9ybWF0LWRldGVjdGlvbiIpKQogICAgICAgICBk
b2N1bWVudCgpLnByb2Nlc3NGb3JtYXREZXRlY3Rpb24oY29udGVudFZhbHVlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCmluZGV4IDQzZTA5ZWY4NDE1OTkzYzY2MjcyYjc1NDI3
MDdjMDIxYmFhZThmNjAuLjMzNTBmMWU4MzRmOGU5Njg5Y2Y5N2FlYmU4N2Q0MmU1OTJhZmFhNGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaApAQCAtMzksOSArMzksMTEgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MTWV0YUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiAKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBu
ZXdWYWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uID0gTW9kaWZpZWREaXJlY3RseSkg
ZmluYWw7CiAgICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYpIGZpbmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGlu
c2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsK
ICAgICB2b2lkIGRpZEZpbmlzaEluc2VydGluZ05vZGUoKTsKKyAgICB2b2lkIHJlbW92ZWRGcm9t
QW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKIAogICAgIHZvaWQg
cHJvY2VzcygpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDVmZDRiNjUx
YWRiOWM4NDcxZTEwMjY1YmQ5N2NmYjgwYjcyNzc5NjIuLmQ3MDEwMWQyMTdmOTI2MWJlYzY2ZTg2
YzJkNTA1MjVmMmIxZTI5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMjI2
LDYgKzIyNiw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgQ29sb3IgdW5kZXJsYXlDb2xvcigp
IGNvbnN0IHsgcmV0dXJuIENvbG9yKCk7IH0KIAorICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNvbG9y
Q2hhbmdlZChDb2xvcikgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VFeHRlbmRlZEJh
Y2tncm91bmRDb2xvckRpZENoYW5nZShDb2xvcikgY29uc3QgeyB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lJiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5h
bWUsIERhdGFiYXNlRGV0YWlscykgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNmZjNGViZjA4
ZTk1MDkxMzJiMzA2YzgyZDE1YmU4NzA3ZjVlYmVkZS4uOWNkZDk1ODdkMzkwNmZmMzBkNjBhZGVi
MjM3NDQwNTU3OWYyODU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0yNDMwLDYgKzI0MzAsMTUg
QEAgdm9pZCBQYWdlOjpyZW1vdmVMYXlvdXRNaWxlc3RvbmVzKE9wdGlvblNldDxMYXlvdXRNaWxl
c3RvbmU+IG1pbGVzdG9uZXMpCiAgICAgbV9yZXF1ZXN0ZWRMYXlvdXRNaWxlc3RvbmVzLnJlbW92
ZShtaWxlc3RvbmVzKTsKIH0KIAorQ29sb3IgUGFnZTo6dGhlbWVDb2xvcigpIGNvbnN0Cit7Cisg
ICAgYXV0byogZG9jdW1lbnQgPSBtYWluRnJhbWUoKS5kb2N1bWVudCgpOworICAgIGlmICghZG9j
dW1lbnQpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gZG9jdW1lbnQtPnRoZW1l
Q29sb3IoKTsKK30KKwogQ29sb3IgUGFnZTo6cGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKCkg
Y29uc3QKIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1haW5GcmFtZSgpLnZpZXcoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKaW5kZXggNmVhNWE5NTc2NGY3ZGNmYzE1ZjNjYjJlM2MyODgyOTc5OTkwZjQy
Mi4uODc4ZmM1ODdmNzE0MzQ2MDFjOWQyZmZhMjc1OGUyZDkyY2VjNmJjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgKQEAgLTYxMCw2ICs2MTAsNyBAQCBwdWJsaWM6CiAgICAgaW50IGhlYWRlckhlaWdodCgpIGNv
bnN0IHsgcmV0dXJuIG1faGVhZGVySGVpZ2h0OyB9CiAgICAgaW50IGZvb3RlckhlaWdodCgpIGNv
bnN0IHsgcmV0dXJuIG1fZm9vdGVySGVpZ2h0OyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBDb2xv
ciB0aGVtZUNvbG9yKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgQ29sb3IgcGFnZUV4dGVu
ZGVkQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7CiAKICAgICBib29sIGlzQ291bnRpbmdSZWxldmFu
dFJlcGFpbnRlZE9iamVjdHMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0NvbG9yQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0NvbG9yQ29jb2EuaAppbmRleCBmNzA2NDcwN2ZkMDgxZWU2Y2Yw
ODA5NzE0NzA3OTFlN2I2MTg5Y2IyLi5mMTMxMTNkYWM0MGQ1YzEwZDU4OTZkYmE2OTIzZDI2YTRk
YWEzMGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Db2xvckNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvQ29sb3JDb2NvYS5oCkBAIC0zMywxMSArMzMsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgQ29sb3I7CiAKICNpZiBVU0UoQVBQS0lUKQotTlNDb2xvciAqcGxhdGZvcm1Db2xvcihj
b25zdCBDb2xvciYpOworV0VCQ09SRV9FWFBPUlQgTlNDb2xvciAqcGxhdGZvcm1Db2xvcihjb25z
dCBDb2xvciYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotVUlDb2xvciAq
cGxhdGZvcm1Db2xvcihjb25zdCBDb2xvciYpOworV0VCQ09SRV9FWFBPUlQgVUlDb2xvciAqcGxh
dGZvcm1Db2xvcihjb25zdCBDb2xvciYpOwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKaW5kZXggOWYxNDE4YWVmYjIzZjI1
NmU4YWQ3NmI0NWRlY2Q1YjQzN2E1NGM0ZS4uNmViMzZiYTVhMTgwZmE5NWEwYjJjNGY4ODIzMDUx
MmYwYzdmZDU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKQEAgLTIyNiw3
ICsyMjYsMTAgQEAgcHVibGljOgogICAgIAogICAgIFdlYkNvcmU6OkxheW91dFBvaW50IG1heFN0
YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9tYXhTdGFibGVMYXlv
dXRWaWV3cG9ydE9yaWdpbjsgfQogICAgIHZvaWQgc2V0TWF4U3RhYmxlTGF5b3V0Vmlld3BvcnRP
cmlnaW4oY29uc3QgV2ViQ29yZTo6TGF5b3V0UG9pbnQmIHBvaW50KSB7IG1fbWF4U3RhYmxlTGF5
b3V0Vmlld3BvcnRPcmlnaW4gPSBwb2ludDsgfTsKLSAgICAKKworICAgIFdlYkNvcmU6OkNvbG9y
IHRoZW1lQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX3RoZW1lQ29sb3I7IH0KKyAgICB2b2lkIHNl
dFRoZW1lQ29sb3IoV2ViQ29yZTo6Q29sb3IgY29sb3IpIHsgbV90aGVtZUNvbG9yID0gY29sb3I7
IH0KKwogICAgIFdlYkNvcmU6OkNvbG9yIHBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcigpIGNv
bnN0IHsgcmV0dXJuIG1fcGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yOyB9CiAgICAgdm9pZCBz
ZXRQYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IoV2ViQ29yZTo6Q29sb3IgY29sb3IpIHsgbV9w
YWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IgPSBjb2xvcjsgfQogCkBAIC0zMDcsNiArMzEwLDcg
QEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpMYXlvdXRQb2ludCBtX21pblN0YWJsZUxheW91dFZp
ZXdwb3J0T3JpZ2luOwogICAgIFdlYkNvcmU6OkxheW91dFBvaW50IG1fbWF4U3RhYmxlTGF5b3V0
Vmlld3BvcnRPcmlnaW47CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9zY3JvbGxQb3NpdGlvbjsK
KyAgICBXZWJDb3JlOjpDb2xvciBtX3RoZW1lQ29sb3I7CiAgICAgV2ViQ29yZTo6Q29sb3IgbV9w
YWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3I7CiAgICAgZG91YmxlIG1fcGFnZVNjYWxlRmFjdG9y
IHsgMSB9OwogICAgIGRvdWJsZSBtX21pbmltdW1TY2FsZUZhY3RvciB7IDEgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQppbmRleCA3MjdmMjM3YzdlM2Y4MTc4ODA0NTExMjUz
M2ZkYTIxOWMyMDk0MmQwLi4wMmVjMzNkYTAzZTQwMDgzZTE2YjlmNzNiMDA5NDViOTE3YWE3ODU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCkBAIC01NjQsNiArNTY0LDcg
QEAgdm9pZCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIAogICAgIGVuY29kZXIgPDwgbV9zY3JvbGxQb3NpdGlvbjsKIAorICAg
IGVuY29kZXIgPDwgbV90aGVtZUNvbG9yOwogICAgIGVuY29kZXIgPDwgbV9wYWdlRXh0ZW5kZWRC
YWNrZ3JvdW5kQ29sb3I7CiAgICAgZW5jb2RlciA8PCBtX3BhZ2VTY2FsZUZhY3RvcjsKICAgICBl
bmNvZGVyIDw8IG1fbWluaW11bVNjYWxlRmFjdG9yOwpAQCAtNjU4LDcgKzY1OSwxMCBAQCBib29s
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBSZW1vdGVMYXllclRyZWVUcgogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9z
Y3JvbGxQb3NpdGlvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fdGhlbWVDb2xvcikpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fcGFnZUV4dGVuZGVkQmFja2dy
b3VuZENvbG9yKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAxN2M2YmU5MWEyNDliZDQxNzcw
MTE0NGZlMzIzYWY1NGRjMjZmOTM1Li5mMDFiNjNmNTIyNGNlNzA0MGRjYjBjOGNmOWJiZWRiYTU4
MDI4OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIkFQSUZyYW1lVHJlZU5vZGUuaCIKICNp
bXBvcnQgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW1wb3J0ICJBUElTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCIKKyNpbXBvcnQgIkNvY29hQ29sb3IuaCIKICNpbXBvcnQgIkNvY29hSW1hZ2Uu
aCIKICNpbXBvcnQgIkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIuaCIKICNpbXBvcnQgIkNv
bnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCIKQEAgLTExNyw2ICsxMTgsNyBAQAog
I2ltcG9ydCAiX1dLVmlzaXRlZExpbmtTdG9yZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tXZWJz
aXRlUG9saWNpZXNJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9BdHRyaWJ1dGVkU3RyaW5n
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0NvbG9yQ29jb2EuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29s
b3JTZXJpYWxpemF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0VsZW1lbnRDb250ZXh0Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0pTRE9NQmluZGluZy5oPgpAQCAtMjc4Niw2ICsyNzg4LDE0IEBAIC0g
KHZvaWQpX3NldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlOihCT09MKWNhblVzZUNyZWRlbnRpYWxT
dG9yYWdlCiAgICAgX3BhZ2UtPnNldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlKGNhblVzZUNyZWRl
bnRpYWxTdG9yYWdlKTsKIH0KIAorLSAoQ29jb2FDb2xvciAqKV90aGVtZUNvbG9yCit7CisgICAg
YXV0byB0aGVtZUNvbG9yID0gX3BhZ2UtPnRoZW1lQ29sb3IoKTsKKyAgICBpZiAoIXRoZW1lQ29s
b3IuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gbmlsOworICAgIHJldHVybiBXZWJDb3JlOjpw
bGF0Zm9ybUNvbG9yKHRoZW1lQ29sb3IpOworfQorCiAtIChpZCA8X1dLSW5wdXREZWxlZ2F0ZT4p
X2lucHV0RGVsZWdhdGUKIHsKICAgICByZXR1cm4gX2lucHV0RGVsZWdhdGUuZ2V0QXV0b3JlbGVh
c2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaAppbmRleCAzZDk0MGRmNGZiNmE5OTkzYjYzMjNhYjYwZDc0NmU2MzRhNDhi
ZGNmLi43ZTdkYWViZGY5NmE2ZTM4MzBkOTQ3YmJmNWU0M2E3ZWI3OGRkOWYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgK
QEAgLTM2Miw2ICszNjIsMjEgQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAtICh2b2lkKV9kaWRFbmFi
bGVCcm93c2VyRXh0ZW5zaW9uczooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TU3RyaW5nICo+
ICopZXh0ZW5zaW9uSURUb05hbWVNYXAgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX2RpZERpc2FibGVCcm93c2VyRXh0ZW5zaW9u
czooTlNTZXQ8TlNTdHJpbmcgKj4gKilleHRlbnNpb25JRHMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAorLyohIEBhYnN0cmFjdCBUaGUgdGhl
bWUgY29sb3Igb2YgdGhlIGFjdGl2ZSBwYWdlLgorIEBkaXNjdXNzaW9uIFRoaXMgaXMgdGhlIHZh
bHVlIG9mIHRoZSBtb3N0IHJlY2VudGx5IGNyZWF0ZWQgb3IgbW9kaWZpZWQKKyBAdGV4dGJsb2Nr
CisgICAgPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnRzPSIuLi4iPgorIEAvdGV4dGJs
b2NrCisgaW4gdGhlIGN1cnJlbnQgcGFnZS4KKyBAbGluayBXS1dlYlZpZXcgQC9saW5rIGlzIGtl
eS12YWx1ZSBvYnNlcnZpbmcgKEtWTykgY29tcGxpYW50IGZvciB0aGlzCisgcHJvcGVydHkuCisg
Ki8KKyNpZiBUQVJHRVRfT1NfSVBIT05FCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IFVJQ29sb3IgKl90aGVtZUNvbG9yIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsK
KyNlbHNlCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQ29sb3IgKl90aGVtZUNv
bG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworI2VuZGlmCisKIEBlbmQK
IAogI2lmIFRBUkdFVF9PU19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EuaAppbmRleCBhNDgwYjM4NGNmZWU0NzgwZTE3MWJh
NzZlMDRiYjY1NTg1YTFiYTdjLi41NmU1NjU3ZDNiZjk4ZWU3ZmFhOWUxMGFhYmMxYmQ2YTJiN2Zm
ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50
SW1wbENvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVu
dEltcGxDb2NvYS5oCkBAIC00OSw2ICs0OSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcGFnZUNs
b3NlZCgpIG92ZXJyaWRlOwogCisgICAgdm9pZCB0aGVtZUNvbG9yV2lsbENoYW5nZSgpIGZpbmFs
OworICAgIHZvaWQgdGhlbWVDb2xvckRpZENoYW5nZSgpIGZpbmFsOwogICAgIHZvaWQgaXNQbGF5
aW5nQXVkaW9XaWxsQ2hhbmdlKCkgZmluYWw7CiAgICAgdm9pZCBpc1BsYXlpbmdBdWRpb0RpZENo
YW5nZSgpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9QYWdlQ2xpZW50SW1wbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
UGFnZUNsaWVudEltcGxDb2NvYS5tbQppbmRleCA4MDYxYmZiZDQ2MmFmMGQ1MWRhODZjZjRmOTUy
NWY3YTdiZTNhMjlmLi41N2QzNzAyNDE2MTA5NGY5Yjk3MGRhODFjZjRhYjUwNTZhOTQ4NzVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBs
Q29jb2EubW0KQEAgLTQ0LDYgKzQ0LDE2IEBAIFBhZ2VDbGllbnRJbXBsQ29jb2E6OlBhZ2VDbGll
bnRJbXBsQ29jb2EoV0tXZWJWaWV3ICp3ZWJWaWV3KQogCiBQYWdlQ2xpZW50SW1wbENvY29hOjp+
UGFnZUNsaWVudEltcGxDb2NvYSgpID0gZGVmYXVsdDsKIAordm9pZCBQYWdlQ2xpZW50SW1wbENv
Y29hOjp0aGVtZUNvbG9yV2lsbENoYW5nZSgpCit7CisgICAgW21fd2ViVmlldyB3aWxsQ2hhbmdl
VmFsdWVGb3JLZXk6QCJfdGhlbWVDb2xvciJdOworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsQ29j
b2E6OnRoZW1lQ29sb3JEaWRDaGFuZ2UoKQoreworICAgIFttX3dlYlZpZXcgZGlkQ2hhbmdlVmFs
dWVGb3JLZXk6QCJfdGhlbWVDb2xvciJdOworfQorCiB2b2lkIFBhZ2VDbGllbnRJbXBsQ29jb2E6
OmlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpCiB7CiAgICAgW21fd2ViVmlldyB3aWxsQ2hhbmdl
VmFsdWVGb3JLZXk6TlNTdHJpbmdGcm9tU2VsZWN0b3IoQHNlbGVjdG9yKF9pc1BsYXlpbmdBdWRp
bykpXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBlOGQyN2MyYTEzYTM0
MGExZjc4NWUwOGE2ZWJmMzI1MmY5YzUyZjU4Li4xNDg1Nzk2YmM1ZjgxZTRjMzM0OGYzMmZmYTk4
ODc4YTEyOWU2ZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC00OTIs
NiArNDkyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTmF2aWdhdGlvbihB
UEk6Ok5hdmlnYXRpb24qKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNhbWVEb2N1bWVudE5h
dmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpID0gMDsKIAor
ICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNvbG9yV2lsbENoYW5nZSgpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCB0aGVtZUNvbG9yRGlkQ2hhbmdlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5n
ZUJhY2tncm91bmRDb2xvcigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nQXVkaW9X
aWxsQ2hhbmdlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdBdWRpb0RpZENoYW5n
ZSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGU0
OTM5ZTY3NGRkNGZiMzEzMzYxMzkzMzliNGM1YmM5MjkxMzdjN2EuLmU5NGExMmZiM2NiY2JjZjU2
MmMxYTQzMTQzMTA3YTM5MTdhYWQ4NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtODQxNyw2ICs4NDE3LDE2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRD
aGFuZ2VQYWdlQ291bnQodW5zaWduZWQgcGFnZUNvdW50KQogICAgIG1fcGFnZUNvdW50ID0gcGFn
ZUNvdW50OwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6dGhlbWVDb2xvckNoYW5nZWQoY29uc3Qg
Q29sb3ImIHRoZW1lQ29sb3IpCit7CisgICAgaWYgKG1fdGhlbWVDb2xvciA9PSB0aGVtZUNvbG9y
KQorICAgICAgICByZXR1cm47CisKKyAgICBwYWdlQ2xpZW50KCkudGhlbWVDb2xvcldpbGxDaGFu
Z2UoKTsKKyAgICBtX3RoZW1lQ29sb3IgPSB0aGVtZUNvbG9yOworICAgIHBhZ2VDbGllbnQoKS50
aGVtZUNvbG9yRGlkQ2hhbmdlKCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpwYWdlRXh0ZW5k
ZWRCYWNrZ3JvdW5kQ29sb3JEaWRDaGFuZ2UoY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvcikK
IHsKICAgICBtX3BhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvciA9IGJhY2tncm91bmRDb2xvcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDZmZDIwMjk0ODQyMGI2
YWI3NDM4MTE5MDEzZDk5NmJjMjdmODk1Yy4uMjQyYzQ1ZjBkOTM1OWZlMTcwMTUyMWQxZWY4Y2Q3
NTUwODU3MmZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTYy
OSw2ICs2MjksOSBAQCBwdWJsaWM6CiAgICAgZmxvYXQgdG9wQ29udGVudEluc2V0KCkgY29uc3Qg
eyByZXR1cm4gbV90b3BDb250ZW50SW5zZXQ7IH0KICAgICB2b2lkIHNldFRvcENvbnRlbnRJbnNl
dChmbG9hdCk7CiAKKyAgICAvLyBDb3JyZXNwb25kcyB0byB0aGUgd2ViIGNvbnRlbnQncyBgPG1l
dGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnQ9Ii4uLiI+YC4KKyAgICBXZWJDb3JlOjpDb2xv
ciB0aGVtZUNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV90aGVtZUNvbG9yOyB9CisKICAgICBXZWJD
b3JlOjpDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV91bmRlcmxheUNvbG9y
OyB9CiAgICAgdm9pZCBzZXRVbmRlcmxheUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CiAK
QEAgLTE5OTYsNiArMTk5OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxi
YXJzRm9yTWFpbkZyYW1lKGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhciwgYm9vbCBoYXNWZXJ0
aWNhbFNjcm9sbGJhcik7CiAgICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxPZmZzZXRQaW5uaW5nRm9y
TWFpbkZyYW1lKGJvb2wgcGlubmVkVG9MZWZ0U2lkZSwgYm9vbCBwaW5uZWRUb1JpZ2h0U2lkZSwg
Ym9vbCBwaW5uZWRUb1RvcFNpZGUsIGJvb2wgcGlubmVkVG9Cb3R0b21TaWRlKTsKICAgICB2b2lk
IGRpZENoYW5nZVBhZ2VDb3VudCh1bnNpZ25lZCk7CisgICAgdm9pZCB0aGVtZUNvbG9yQ2hhbmdl
ZChjb25zdCBXZWJDb3JlOjpDb2xvciYpOwogICAgIHZvaWQgcGFnZUV4dGVuZGVkQmFja2dyb3Vu
ZENvbG9yRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CiAjaWYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCiAgICAgdm9pZCBkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgcGFnZVVSTFN0cmluZyk7CkBAIC0yNTQxLDYgKzI1NDUsNyBAQCBwcml2YXRlOgogCiAg
ICAgTGF5ZXJIb3N0aW5nTW9kZSBtX2xheWVySG9zdGluZ01vZGUgeyBMYXllckhvc3RpbmdNb2Rl
OjpJblByb2Nlc3MgfTsKIAorICAgIFdlYkNvcmU6OkNvbG9yIG1fdGhlbWVDb2xvcjsKICAgICBX
ZWJDb3JlOjpDb2xvciBtX3VuZGVybGF5Q29sb3I7CiAgICAgV2ViQ29yZTo6Q29sb3IgbV9wYWdl
RXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmZDAxZDU1M2NjNGVhMGQ1M2Y4NjQ5MzQw
ZjRjY2MxYWJmYTU3NWY3Li5hN2YyYmU3NmEyNTVjOTQwYzk2ZjZkOWU5NWQ5ZWE0ZjBjY2ZkZGJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC03Nyw2ICs3Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlk
Q2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFtZShib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIs
IGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIpCiAgICAgRGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0UGlu
bmluZ0Zvck1haW5GcmFtZShib29sIHBpbm5lZFRvTGVmdFNpZGUsIGJvb2wgcGlubmVkVG9SaWdo
dFNpZGUsIGJvb2wgcGlubmVkVG9Ub3BTaWRlLCBib29sIHBpbm5lZFRvQm90dG9tU2lkZSkKICAg
ICBEaWRDaGFuZ2VQYWdlQ291bnQodW5zaWduZWQgcGFnZUNvdW50KQorICAgIFRoZW1lQ29sb3JD
aGFuZ2VkKFdlYkNvcmU6OkNvbG9yIHRoZW1lQ29sb3IpCiAgICAgUGFnZUV4dGVuZGVkQmFja2dy
b3VuZENvbG9yRGlkQ2hhbmdlKFdlYkNvcmU6OkNvbG9yIGJhY2tncm91bmRDb2xvcikKICNpZiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBEaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2lu
KFN0cmluZyBtaW1lVHlwZSwgU3RyaW5nIGZyYW1lVVJMU3RyaW5nLCBTdHJpbmcgcGFnZVVSTFN0
cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
CmluZGV4IGIwOWNjOTJmYjE0MmZkYTlkNDMyMzBkZjY0NjgxNTNiMTFkMjc2NzMuLjYxODkyYzI3
MzYyODU0NWVlZjVkZjNkN2U1ZGYwOWRlZGNiMzUwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMzM1LDYgKzMzNSw3IEBAIHN0YXRp
YyBib29sIGV4Y2VlZHNSZW5kZXJUcmVlU2l6ZVNpemVUaHJlc2hvbGQodWludDY0X3QgdGhyZXNo
b2xkU2l6ZSwgdWludDY0X3QKIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExheWVyVHJl
ZShjb25zdCBXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiBsYXllclRyZWVUcmFu
c2FjdGlvbikKIHsKKyAgICB0aGVtZUNvbG9yQ2hhbmdlZChsYXllclRyZWVUcmFuc2FjdGlvbi50
aGVtZUNvbG9yKCkpOwogICAgIG1fcGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yID0gbGF5ZXJU
cmVlVHJhbnNhY3Rpb24ucGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKCk7CiAKICAgICBpZiAo
IW1faGFzUmVjZWl2ZWRMYXllclRyZWVUcmFuc2FjdGlvbkFmdGVyRGlkQ29tbWl0TG9hZCkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBmZWMwZmVlZmQ1NTNkNmVjMjJjNGQ4Y2RkZjlhOGVj
N2ZlMThmZGRiLi4zOTNiMDdhY2FlZDMwYzQzMmIzMTY4MWE2OGE2NWU4MWI3YzhkZjk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTEzOSw2ICsxMTM5LDExIEBAIENvbG9yIFdlYkNocm9t
ZUNsaWVudDo6dW5kZXJsYXlDb2xvcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS51bmRlcmxh
eUNvbG9yKCk7CiB9CiAKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp0aGVtZUNvbG9yQ2hhbmdlZChD
b2xvciAvKiB0aGVtZUNvbG9yICovKSBjb25zdAoreworICAgIG1fcGFnZS50aGVtZUNvbG9yQ2hh
bmdlZCgpOworfQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6cGFnZUV4dGVuZGVkQmFja2dyb3Vu
ZENvbG9yRGlkQ2hhbmdlKENvbG9yIGJhY2tncm91bmRDb2xvcikgY29uc3QKIHsKICNpZiBQTEFU
Rk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMDU4MjJiOTk3YmE4NDE1MDkzYTYzZmQx
NWY1NDM4Yzk2OTRlZmU5Yi4uZTQ5NjNkNjQ2Y2I2ZWQ4MTNhMWZkNGNjNGU5N2Y5MGZlNWQ3ZjIz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzI4LDYgKzMyOCw3IEBAIHByaXZhdGU6CiAKICAg
ICBXZWJDb3JlOjpDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgZmluYWw7CiAKKyAgICB2b2lk
IHRoZW1lQ29sb3JDaGFuZ2VkKFdlYkNvcmU6OkNvbG9yKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IHBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvckRpZENoYW5nZShXZWJDb3JlOjpDb2xvcikgY29u
c3QgZmluYWw7CiAgICAgCiAgICAgdm9pZCB3aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGJvb2wp
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCA5ZTUwOTEwNDQ3NTlhZDA3YjBkYjdjNzg3Nzc3ZGNlZDc4NTA3ZmQ0Li5lMjE1N2RlMTU1
MzQ3ODhlOTkxNDgwMjJmMDM0MTVlN2MzODMwNDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzkwOCw2ICszOTA4LDcgQEAgdm9pZCBXZWJQ
YWdlOjp3aWxsQ29tbWl0TGF5ZXJUcmVlKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiBsYXll
clRyYW5zYWN0aW9uKQogICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0U2Nyb2xsT3JpZ2luKGZyYW1l
Vmlldy0+c2Nyb2xsT3JpZ2luKCkpOwogICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0UGFnZVNjYWxl
RmFjdG9yKGNvcmVQYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpKTsKICAgICBsYXllclRyYW5zYWN0
aW9uLnNldFJlbmRlclRyZWVTaXplKGNvcmVQYWdlKCktPnJlbmRlclRyZWVTaXplKCkpOworICAg
IGxheWVyVHJhbnNhY3Rpb24uc2V0VGhlbWVDb2xvcihjb3JlUGFnZSgpLT50aGVtZUNvbG9yKCkp
OwogICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0UGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKGNv
cmVQYWdlKCktPnBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcigpKTsKIAogICAgIGxheWVyVHJh
bnNhY3Rpb24uc2V0QmFzZUxheW91dFZpZXdwb3J0U2l6ZShmcmFtZVZpZXctPmJhc2VMYXlvdXRW
aWV3cG9ydFNpemUoKSk7CkBAIC0zOTM3LDYgKzM5MzgsOCBAQCB2b2lkIFdlYlBhZ2U6OndpbGxD
b21taXRMYXllclRyZWUoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mIGxheWVyVHJhbnNhY3Rp
b24pCiAKICAgICBsYXllclRyYW5zYWN0aW9uLnNldFNjcm9sbFBvc2l0aW9uKGZyYW1lVmlldy0+
c2Nyb2xsUG9zaXRpb24oKSk7CiAKKyAgICBtX3BlbmRpbmdUaGVtZUNvbG9yQ2hhbmdlID0gZmFs
c2U7CisKICAgICBpZiAobV9oYXNQZW5kaW5nRWRpdG9yU3RhdGVVcGRhdGUpIHsKICAgICAgICAg
bGF5ZXJUcmFuc2FjdGlvbi5zZXRFZGl0b3JTdGF0ZShlZGl0b3JTdGF0ZSgpKTsKICAgICAgICAg
bV9oYXNQZW5kaW5nRWRpdG9yU3RhdGVVcGRhdGUgPSBmYWxzZTsKQEAgLTYxMjcsNiArNjEzMCw4
IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ29tbWl0TG9hZChXZWJGcmFtZSogZnJhbWUpCiAgICAgbV9s
b2FkQ29tbWl0VGltZSA9IFdhbGxUaW1lOjpub3coKTsKICNlbmRpZgogCisgICAgdGhlbWVDb2xv
ckNoYW5nZWQoKTsKKwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVwZGF0ZUFjdGl2ZVBh
Z2VzKG1fcHJvY2Vzc0Rpc3BsYXlOYW1lKTsKIAogICAgIHVwZGF0ZU1haW5GcmFtZVNjcm9sbE9m
ZnNldFBpbm5pbmcoKTsKQEAgLTYyNjQsNiArNjI2OSwxNiBAQCB2b2lkIFdlYlBhZ2U6OnNlbmRU
b3VjaEJhck1lbnVJdGVtRGF0YVJlbW92ZWRVcGRhdGUoSFRNTE1lbnVJdGVtRWxlbWVudCYgZWxl
bWVudAogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUGFnZTo6Zmx1c2hQZW5kaW5nVGhlbWVDb2xvckNo
YW5nZSgpCit7CisgICAgaWYgKCFtX3BlbmRpbmdUaGVtZUNvbG9yQ2hhbmdlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3BlbmRpbmdUaGVtZUNvbG9yQ2hhbmdlID0gZmFsc2U7CisKKyAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlRoZW1lQ29sb3JDaGFuZ2VkKG1fcGFnZS0+dGhl
bWVDb2xvcigpKSk7Cit9CisKIHZvaWQgV2ViUGFnZTo6Zmx1c2hQZW5kaW5nRWRpdG9yU3RhdGVV
cGRhdGUoKQogewogICAgIGlmICghbV9oYXNQZW5kaW5nRWRpdG9yU3RhdGVVcGRhdGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYTQ0NzdkYzdlZWQy
ZDFhZTc5MWJmNzUxNWI5NjQ0ZjNmNjEzM2Q3Yy4uYmJjMWEwZWIxOWM4MTZkZTRlZjU1MzY3MWIx
MjZiNTBlNzAxMGZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaApAQCAtMTIxNSw2ICsxMjE1LDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFBsdWdpblZp
ZXcqIHBsdWdpblZpZXdGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSopOwogCisgICAgdm9pZCB0aGVt
ZUNvbG9yQ2hhbmdlZCgpIHsgbV9wZW5kaW5nVGhlbWVDb2xvckNoYW5nZSA9IHRydWU7IH0KKyAg
ICB2b2lkIGZsdXNoUGVuZGluZ1RoZW1lQ29sb3JDaGFuZ2UoKTsKKwogICAgIHZvaWQgZmx1c2hQ
ZW5kaW5nRWRpdG9yU3RhdGVVcGRhdGUoKTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCkBAIC0yMDMxLDYgKzIwMzQsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJD
b3JlOjpFbGVtZW50PiBtX2ZvY3VzZWRFbGVtZW50OwogICAgIFJlZlB0cjxXZWJDb3JlOjpFbGVt
ZW50PiBtX3JlY2VudGx5Qmx1cnJlZEVsZW1lbnQ7CiAgICAgYm9vbCBtX2hhc1BlbmRpbmdJbnB1
dENvbnRleHRVcGRhdGVBZnRlckJsdXJyaW5nQW5kUmVmb2N1c2luZ0VsZW1lbnQgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9wZW5kaW5nVGhlbWVDb2xvckNoYW5nZSB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2hhc1BlbmRpbmdFZGl0b3JTdGF0ZVVwZGF0ZSB7IGZhbHNlIH07CiAKICNpZiBFTkFCTEUo
SU9TX1RPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5t
bQppbmRleCA5ZjFmMGZlZjNlMzM3ZTMyNThjMmNhMTQ2ZmQwZTBhM2IyMDE5ZWUxLi4zNGVlNTcy
YTYxNjBiNDM2YzY5ZWEzMGI5NDU1Y2FlNWQ2YjBmYzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLm1tCkBAIC00NDYsNiArNDQ2LDcgQEAgdm9pZCBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlUmVuZGVyaW5nKFVwZGF0ZVJlbmRlcmluZ1R5cGUg
Zmx1c2hUeXAKICAgICAgICAgc2NhbGVWaWV3VG9GaXREb2N1bWVudElmTmVlZGVkKCk7CiAKICAg
ICAgICAgbV93ZWJQYWdlLnVwZGF0ZVJlbmRlcmluZygpOworICAgICAgICBtX3dlYlBhZ2UuZmx1
c2hQZW5kaW5nVGhlbWVDb2xvckNoYW5nZSgpOwogICAgICAgICBtX3dlYlBhZ2UuZmx1c2hQZW5k
aW5nRWRpdG9yU3RhdGVVcGRhdGUoKTsKICAgICAgICAgbV93ZWJQYWdlLmZsdXNoUGVuZGluZ0lu
dHJpbnNpY0NvbnRlbnRTaXplVXBkYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2OTY3MjQ3NmM5Mzk2MDJjMTM0MTliN2QxNjQyOWRk
NTA1YjhlNTgwLi4wNTlkYzAwODg2ZjNmNTFiYzJhZmIwZTdhN2VjZjBmOGE1ODNiYTAyIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMjEtMDEtMjYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisg
ICAgICAgIEV4cG9zZSB0aGUgdmFsdWUgb2YgYDxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250
ZW50PSIuLi4iPmAgYXMgU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjA5NDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcyMTk4MDgzPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0hUTUxNZXRhVGhlbWVDb2xvci5tbTogQWRkZWQuCisgICAgICAg
IChURVNULkhUTUxNZXRhVGhlbWVDb2xvci5PbkxvYWQpOgorICAgICAgICAoVEVTVC5IVE1MTWV0
YVRoZW1lQ29sb3IuTXVsdGlwbGVUYWdzKToKKyAgICAgICAgKC1bV0tXZWJWaWV3VGhlbWVDb2xv
ck9ic2VydmVyIGluaXRXaXRoV2ViVmlldzpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3VGhlbWVD
b2xvck9ic2VydmVyIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRl
eHQ6XSk6CisgICAgICAgIChURVNULkhUTUxNZXRhVGhlbWVDb2xvci5LVk8pOgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKIDIwMjEtMDEtMjYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjcxNTc4LgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBiN2ZiZjg1MjYyMjc5ODdkYjk1ZWQ5NjFkMTQ0ZDhhMjIyYjFlOTI0Li4xZDZl
ODc2NTRiNDQ1ZDY1NzI5NzJmNGJiY2QxNGE2MTMyODAzNWI0IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtODQzLDYgKzg0Myw3IEBACiAJCTkzRjU2REE5MUU1RjkxOUQwMDNFREU4NCAvKiBX
S1dlYlZpZXdTbmFwc2hvdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRjU2REE4MUU1RjkxODEwMDNFREU4NCAvKiBXS1dlYlZpZXdTbmFwc2hvdC5t
bSAqLzsgfTsKIAkJOTNGN0U4NkYxNERDOEU1QzAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGN0U4NkUxNERDOEU1QjAwQzg0QTk5IC8qIE5ld0ZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwICovOyB9OwogCQk5NTBFNEND
MTI1MkU3NTI0MDA3MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAv
KiBpT1NTdHlsdXNTdXBwb3J0Lm1tICovOyB9OworCQk5NUE1MjQ5NTI1ODFBMTBEMDA0NjFGRTkg
LyogSFRNTE1ldGFUaGVtZUNvbG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8qIEhUTUxNZXRhVGhlbWVD
b2xvci5tbSAqLzsgfTsKIAkJOTVCNkIzQjcyNTFFQkYyRjAwRkM0MzgyIC8qIE1lZGlhRG9jdW1l
bnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUI2
QjNCNjI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSAqLzsgfTsKIAkJOTk4NEZB
Q0MxQ0ZGQUY2MDAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODRGQUNBMUNGRkFFRUUwMDhEMTk4
QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi87IH07CiAJCTk5ODRGQUNFMUNGRkIwOTAwMDhE
MTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk4NEZBQ0QxQ0ZGQjAzODAwOEQxOThDIC8qIGVkaXRh
YmxlLWJvZHkuaHRtbCAqLzsgfTsKQEAgLTI0ODQsNiArMjQ4NSw3IEBACiAJCTkzRjdFODZCMTRE
QzhFNEQwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV3Rmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0RnJhbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNG
N0U4NkUxNERDOEU1QjAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZy
YW1lc19CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV3
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk1MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NTdHlsdXNT
dXBwb3J0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gaU9TU3R5
bHVzU3VwcG9ydC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTVBNTI0OTQyNTgx
QTEwRDAwNDYxRkU5IC8qIEhUTUxNZXRhVGhlbWVDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEhUTUxNZXRhVGhlbWVDb2xvci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTVCNkIzQjYyNTFFQkYyRjAwRkM0MzgyIC8qIE1lZGlhRG9jdW1l
bnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYURvY3Vt
ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTg0RkFDQTFDRkZBRUVFMDA4
RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3VGV4dElucHV0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5OTg0RkFDRDFDRkZCMDM4MDA4RDE5OEMgLyogZWRpdGFibGUtYm9keS5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImVkaXRhYmxlLWJvZHkuaHRtbCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMzE2LDYgKzMzMTgsNyBAQAogCQkJCTA3RTFGNkEw
MUZGQzNBMDgwMDk2QzdFQyAvKiBHZXREaXNwbGF5TWVkaWEubW0gKi8sCiAJCQkJMkRBREYyNjIy
MUNCOEYzMjAwM0QzRTNBIC8qIEdldFJlc291cmNlRGF0YS5tbSAqLywKIAkJCQk0NjVFMjgwNjI1
NUIyQTY5MDA2M0E3ODcgLyogR1BVUHJvY2Vzcy5tbSAqLywKKwkJCQk5NUE1MjQ5NDI1ODFBMTBE
MDA0NjFGRTkgLyogSFRNTE1ldGFUaGVtZUNvbG9yLm1tICovLAogCQkJCTUxQUYyM0RFMUVGMUEz
NzIwMDcyRjI4MSAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLm1tICovLAogCQkJCUVCMjMwRDNFMjQ1
RTcyNjMwMEM2NkFEMSAvKiBJREJDaGVja3BvaW50V0FMLm1tICovLAogCQkJCTUxMDQ3Nzc1MUQy
OThFMDMwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5tbSAqLywKQEAgLTUzMDAsNiArNTMw
Myw3IEBACiAJCQkJN0NDRTdFRkExQTQxMUFFNjAwNDQ3QzRDIC8qIEhpdFRlc3RSZXN1bHROb2Rl
SGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUMxMUE0MTFBN0UwMDQ0N0M0QyAv
KiBIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUMy
MUE0MTFBN0UwMDQ0N0M0QyAvKiBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gaW4gU291
cmNlcyAqLywKKwkJCQk5NUE1MjQ5NTI1ODFBMTBEMDA0NjFGRTkgLyogSFRNTE1ldGFUaGVtZUNv
bG9yLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwNTAxRDBBNjQxODAwRkVCQ0YzIC8qIEhU
TUxQYXJzZXJJZGlvbXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNBMURFQzgxRjcxRjcwMTAw
RTcxQkQzIC8qIEhUVFBIZWFkZXJGaWVsZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NkZBMkZF
RTIzODQ2Q0E1MDAwQ0NCMEMgLyogSFRUUEhlYWRlck1hcC5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSFRNTE1ldGFU
aGVtZUNvbG9yLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9IVE1M
TWV0YVRoZW1lQ29sb3IubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk0Yjk3NTIxMjY4OWQyMDZjNGQwNzc1NjRk
ZTgxMzE1ODAwNGNhMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvSFRNTE1ldGFUaGVtZUNvbG9yLm1tCkBAIC0wLDAgKzEsMTY5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIkNvY29hQ29sb3IuaCIK
KyNpbXBvcnQgIlRlc3RDb2NvYS5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9y
dCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KworI2RlZmluZSBFWFBFQ1RfTlNTVFJJTkdfRVEoZXhwZWN0ZWQsIGFjdHVhbCkgXAorICAgIEVY
UEVDVF9UUlVFKFthY3R1YWwgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7IFwKKyAg
ICBFWFBFQ1RfV0tfU1RSRVEoZXhwZWN0ZWQsIChOU1N0cmluZyAqKWFjdHVhbCk7CisKK2NvbnN0
ZXhwciBDR0Zsb2F0IHJlZENvbG9yQ29tcG9uZW50c1s0XSA9IHsgMSwgMCwgMCwgMSB9OworY29u
c3RleHByIENHRmxvYXQgYmx1ZUNvbG9yQ29tcG9uZW50c1s0XSA9IHsgMCwgMCwgMSwgMSB9Owor
CitURVNUKEhUTUxNZXRhVGhlbWVDb2xvciwgT25Mb2FkKQoreworICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApXSk7CisgICAgRVhQRUNUX1RSVUUoIVt3ZWJWaWV3IF90aGVtZUNvbG9y
XSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50
aWxBbGxJbW1lZGlhdGVDaGlsZEZyYW1lc1BhaW50OkAiPG1ldGEgbmFtZT0ndGhlbWUtY29sb3In
IGNvbnRlbnQ9J3JlZCc+Il07CisKKyAgICBhdXRvIHNSR0JDb2xvclNwYWNlID0gYWRvcHRDRihD
R0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShrQ0dDb2xvclNwYWNlU1JHQikpOworICAgIGF1dG8g
cmVkQ29sb3IgPSBhZG9wdENGKENHQ29sb3JDcmVhdGUoc1JHQkNvbG9yU3BhY2UuZ2V0KCksIHJl
ZENvbG9yQ29tcG9uZW50cykpOworICAgIEVYUEVDVF9UUlVFKENHQ29sb3JFcXVhbFRvQ29sb3Io
W3dlYlZpZXcgX3RoZW1lQ29sb3JdLkNHQ29sb3IsIHJlZENvbG9yLmdldCgpKSk7CisKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50aWxBbGxJbW1lZGlh
dGVDaGlsZEZyYW1lc1BhaW50OkAiPG1ldGEgbmFtZT0nbm90LXRoZW1lLWNvbG9yJyBjb250ZW50
PSdyZWQnPiJdOworCisgICAgRVhQRUNUX1RSVUUoIVt3ZWJWaWV3IF90aGVtZUNvbG9yXSk7Cit9
CisKK1RFU1QoSFRNTE1ldGFUaGVtZUNvbG9yLCBNdWx0aXBsZVRhZ3MpCit7CisgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNN
YWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICBFWFBFQ1RfVFJVRSghW3dlYlZpZXcgX3Ro
ZW1lQ29sb3JdKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZ0Fu
ZFdhaXRVbnRpbEFsbEltbWVkaWF0ZUNoaWxkRnJhbWVzUGFpbnQ6QCI8bWV0YSBuYW1lPSd0aGVt
ZS1jb2xvcicgY29udGVudD0ncmVkJz48bWV0YSBuYW1lPSd0aGVtZS1jb2xvcicgY29udGVudD0n
Ymx1ZSc+Il07CisKKyAgICBhdXRvIHNSR0JDb2xvclNwYWNlID0gYWRvcHRDRihDR0NvbG9yU3Bh
Y2VDcmVhdGVXaXRoTmFtZShrQ0dDb2xvclNwYWNlU1JHQikpOworICAgIGF1dG8gYmx1ZUNvbG9y
ID0gYWRvcHRDRihDR0NvbG9yQ3JlYXRlKHNSR0JDb2xvclNwYWNlLmdldCgpLCBibHVlQ29sb3JD
b21wb25lbnRzKSk7CisgICAgRVhQRUNUX1RSVUUoQ0dDb2xvckVxdWFsVG9Db2xvcihbd2ViVmll
dyBfdGhlbWVDb2xvcl0uQ0dDb2xvciwgYmx1ZUNvbG9yLmdldCgpKSk7Cit9CisKK0BpbnRlcmZh
Y2UgV0tXZWJWaWV3VGhlbWVDb2xvck9ic2VydmVyIDogTlNPYmplY3QKKworLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldzsKKworQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBXS1dlYlZpZXcgKndlYlZpZXc7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSkgTlNTdHJpbmcgKnN0YXRlOworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBX
S1dlYlZpZXdUaGVtZUNvbG9yT2JzZXJ2ZXIKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldworeworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5p
dF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3N0YXRlID0gQCJiZWZvcmUtaW5pdCI7
CisKKyAgICBfd2ViVmlldyA9IHdlYlZpZXc7CisgICAgW193ZWJWaWV3IGFkZE9ic2VydmVyOnNl
bGYgZm9yS2V5UGF0aDpAIl90aGVtZUNvbG9yIiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdP
cHRpb25Jbml0aWFsIGNvbnRleHQ6bmlsXTsKKworICAgIHJldHVybiBzZWxmOworfQorCistICh2
b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDoo
aWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRleHQ6KHZvaWQgKilj
b250ZXh0Cit7CisgICAgaWYgKFtfc3RhdGUgaXNFcXVhbFRvU3RyaW5nOkAiYmVmb3JlLWluaXQi
XSkgeworICAgICAgICBfc3RhdGUgPSBAImFmdGVyLWluaXQiOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKFtfc3RhdGUgaXNFcXVhbFRvU3RyaW5nOkAiYmVmb3JlLWxvYWQiXSkg
eworICAgICAgICBfc3RhdGUgPSBAImFmdGVyLWxvYWQiOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKFtfc3RhdGUgaXNFcXVhbFRvU3RyaW5nOkAiYmVmb3JlLWNvbnRlbnQtY2hh
bmdlIl0pIHsKKyAgICAgICAgX3N0YXRlID0gQCJhZnRlci1jb250ZW50LWNoYW5nZSI7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoW19zdGF0ZSBpc0VxdWFsVG9TdHJpbmc6QCJi
ZWZvcmUtbmFtZS1jaGFuZ2Utbm90LXRoZW1lLWNvbG9yIl0pIHsKKyAgICAgICAgX3N0YXRlID0g
QCJhZnRlci1uYW1lLWNoYW5nZS1ub3QtdGhlbWUtY29sb3IiOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKFtfc3RhdGUgaXNFcXVhbFRvU3RyaW5nOkAiYmVmb3JlLW5hbWUtY2hh
bmdlLXRoZW1lLWNvbG9yIl0pIHsKKyAgICAgICAgX3N0YXRlID0gQCJhZnRlci1uYW1lLWNoYW5n
ZS10aGVtZS1jb2xvciI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoW19zdGF0
ZSBpc0VxdWFsVG9TdHJpbmc6QCJiZWZvcmUtbm9kZS1yZW1vdmVkIl0pIHsKKyAgICAgICAgX3N0
YXRlID0gQCJhZnRlci1ub2RlLXJlbW92ZWQiOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworQGVuZAorCitURVNUKEhUTUxN
ZXRhVGhlbWVDb2xvciwgS1ZPKQoreworICAgIGF1dG8gc1JHQkNvbG9yU3BhY2UgPSBhZG9wdENG
KENHQ29sb3JTcGFjZUNyZWF0ZVdpdGhOYW1lKGtDR0NvbG9yU3BhY2VTUkdCKSk7CisgICAgYXV0
byByZWRDb2xvciA9IGFkb3B0Q0YoQ0dDb2xvckNyZWF0ZShzUkdCQ29sb3JTcGFjZS5nZXQoKSwg
cmVkQ29sb3JDb21wb25lbnRzKSk7CisgICAgYXV0byBibHVlQ29sb3IgPSBhZG9wdENGKENHQ29s
b3JDcmVhdGUoc1JHQkNvbG9yU3BhY2UuZ2V0KCksIGJsdWVDb2xvckNvbXBvbmVudHMpKTsKKwor
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgYXV0byB0aGVtZUNvbG9y
T2JzZXJ2ZXIgPSBhZG9wdE5TKFtbV0tXZWJWaWV3VGhlbWVDb2xvck9ic2VydmVyIGFsbG9jXSBp
bml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgi
YWZ0ZXItaW5pdCIsIFt0aGVtZUNvbG9yT2JzZXJ2ZXIgc3RhdGVdKTsKKyAgICBFWFBFQ1RfVFJV
RSghW3dlYlZpZXcgX3RoZW1lQ29sb3JdKTsKKworICAgIFt0aGVtZUNvbG9yT2JzZXJ2ZXIgc2V0
U3RhdGU6QCJiZWZvcmUtbG9hZCJdOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRN
TFN0cmluZ0FuZFdhaXRVbnRpbEFsbEltbWVkaWF0ZUNoaWxkRnJhbWVzUGFpbnQ6QCI8bWV0YSBu
YW1lPSd0aGVtZS1jb2xvcicgY29udGVudD0ncmVkJz4iXTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdf
RVEoImFmdGVyLWxvYWQiLCBbdGhlbWVDb2xvck9ic2VydmVyIHN0YXRlXSk7CisgICAgRVhQRUNU
X1RSVUUoQ0dDb2xvckVxdWFsVG9Db2xvcihbd2ViVmlldyBfdGhlbWVDb2xvcl0uQ0dDb2xvciwg
cmVkQ29sb3IuZ2V0KCkpKTsKKworICAgIFt0aGVtZUNvbG9yT2JzZXJ2ZXIgc2V0U3RhdGU6QCJi
ZWZvcmUtY29udGVudC1jaGFuZ2UiXTsKKyAgICBbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWV0YScpLnNldEF0dHJpYnV0ZSgn
Y29udGVudCcsICdibHVlJykiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlv
blVwZGF0ZV07CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJhZnRlci1jb250ZW50LWNoYW5nZSIs
IFt0aGVtZUNvbG9yT2JzZXJ2ZXIgc3RhdGVdKTsKKyAgICBFWFBFQ1RfVFJVRShDR0NvbG9yRXF1
YWxUb0NvbG9yKFt3ZWJWaWV3IF90aGVtZUNvbG9yXS5DR0NvbG9yLCBibHVlQ29sb3IuZ2V0KCkp
KTsKKworICAgIFt0aGVtZUNvbG9yT2JzZXJ2ZXIgc2V0U3RhdGU6QCJiZWZvcmUtbmFtZS1jaGFu
Z2Utbm90LXRoZW1lLWNvbG9yIl07CisgICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ21ldGEnKS5zZXRBdHRyaWJ1dGUoJ25h
bWUnLCAnbm90LXRoZW1lLWNvbG9yJykiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNl
bnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJhZnRlci1uYW1lLWNoYW5n
ZS1ub3QtdGhlbWUtY29sb3IiLCBbdGhlbWVDb2xvck9ic2VydmVyIHN0YXRlXSk7CisgICAgRVhQ
RUNUX1RSVUUoIVt3ZWJWaWV3IF90aGVtZUNvbG9yXSk7CisKKyAgICBbdGhlbWVDb2xvck9ic2Vy
dmVyIHNldFN0YXRlOkAiYmVmb3JlLW5hbWUtY2hhbmdlLXRoZW1lLWNvbG9yIl07CisgICAgW3dl
YlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJ21ldGEnKS5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAndGhlbWUtY29sb3InKSJdOworICAgIFt3
ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfTlNTVFJJ
TkdfRVEoImFmdGVyLW5hbWUtY2hhbmdlLXRoZW1lLWNvbG9yIiwgW3RoZW1lQ29sb3JPYnNlcnZl
ciBzdGF0ZV0pOworICAgIEVYUEVDVF9UUlVFKENHQ29sb3JFcXVhbFRvQ29sb3IoW3dlYlZpZXcg
X3RoZW1lQ29sb3JdLkNHQ29sb3IsIGJsdWVDb2xvci5nZXQoKSkpOworCisgICAgW3RoZW1lQ29s
b3JPYnNlcnZlciBzZXRTdGF0ZTpAImJlZm9yZS1ub2RlLXJlbW92ZWQiXTsKKyAgICBbd2ViVmll
dyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3Rvcign
bWV0YScpLnJlbW92ZSgpIl07CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25V
cGRhdGVdOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiYWZ0ZXItbm9kZS1yZW1vdmVkIiwgW3Ro
ZW1lQ29sb3JPYnNlcnZlciBzdGF0ZV0pOworICAgIEVYUEVDVF9UUlVFKCFbd2ViVmlldyBfdGhl
bWVDb2xvcl0pOworfQo=
</data>
<flag name="commit-queue"
          id="436472"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>