<?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>243449</bug_id>
          
          <creation_ts>2022-08-02 02:39:31 -0700</creation_ts>
          <short_desc>[CSS Container Queries] Update query grammar to the spec</short_desc>
          <delta_ts>2022-08-02 08:33:37 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>229659</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>clopez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ntim</cc>
    
    <cc>pangle</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1888343</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-08-02 02:39:31 -0700</bug_when>
    <thetext>The spec was changed to allow logical operators on top level without parenthesis making

@container not (foo)

legal.

https://drafts.csswg.org/css-contain-3/#container-rule</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1888344</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-08-02 02:42:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/97967682&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1888345</commentid>
    <comment_count>2</comment_count>
      <attachid>461354</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-08-02 03:05:17 -0700</bug_when>
    <thetext>Created attachment 461354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1888346</commentid>
    <comment_count>3</comment_count>
      <attachid>461355</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-08-02 03:09:36 -0700</bug_when>
    <thetext>Created attachment 461355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1888368</commentid>
    <comment_count>4</comment_count>
      <attachid>461355</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-08-02 05:45:41 -0700</bug_when>
    <thetext>Comment on attachment 461355
Patch

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

&gt; Source/WebCore/css/ContainerQueryParser.cpp:98
&gt;  

For posterity (and anyone else looking at this patch), the `not` part is handled just below (click expand to make it appear in the diff view).

&gt; Source/WebCore/css/StyleRule.cpp:466
&gt; +    , m_containerdQuery(WTFMove(query))
&gt;  {
&gt;  }
&gt;  
&gt;  StyleRuleContainer::StyleRuleContainer(const StyleRuleContainer&amp; other)
&gt;      : StyleRuleGroup(other)
&gt; -    , m_filteredQuery(other.m_filteredQuery)
&gt; +    , m_containerdQuery(other.m_containerdQuery)

typo: m_containerdQuery (extra d)

&gt; Source/WebCore/css/StyleRule.h:303
&gt; +    CQ::ContainerQuery m_containerdQuery;

ditto in this file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1888369</commentid>
    <comment_count>5</comment_count>
      <attachid>461357</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-08-02 05:57:01 -0700</bug_when>
    <thetext>Created attachment 461357
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1888370</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-08-02 05:58:25 -0700</bug_when>
    <thetext>Commit message contains (OOPS!), blocking PR #None</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1888371</commentid>
    <comment_count>7</comment_count>
      <attachid>461358</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-08-02 05:59:00 -0700</bug_when>
    <thetext>Created attachment 461358
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1888397</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-08-02 08:33:34 -0700</bug_when>
    <thetext>Committed 253035@main (2956c932c8f4): &lt;https://commits.webkit.org/253035@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 461358.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461354</attachid>
            <date>2022-08-02 03:05:17 -0700</date>
            <delta_ts>2022-08-02 03:09:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-243449-20220802130515.patch</filename>
            <type>text/plain</type>
            <size>44143</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSA3ZjM0NTY3OGI1M2QyYzNiNjk2NWMyYjQ2ZDE1MWYxNzVjZThiM2QyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBUdWUsIDIgQXVnIDIwMjIgMTI6NTM6MDkgKzAzMDAKU3ViamVjdDogW1BBVENIXSBbQ1NTIENv
bnRhaW5lciBRdWVyaWVzXSBVcGRhdGUgcXVlcnkgZ3JhbW1hciB0byB0aGUgc3BlYwogaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MzQ0OSA8cmRhcjovLzk3OTY3Njgy
PgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpUaGUgc3BlYyB3YXMgY2hhbmdlZCB0byBh
bGxvdyBsb2dpY2FsIG9wZXJhdG9ycyBvbiB0b3AgbGV2ZWwgd2l0aG91dCBwYXJlbnRoZXNpcyBt
YWtpbmcKCkBjb250YWluZXIgbm90IChmb28pCgpsZWdhbC4KCmh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3MtY29udGFpbi0zLyNjb250YWluZXItcnVsZQoKKiBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmll
cy9hdC1jb250YWluZXItcGFyc2luZy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJp
ZXMvYXQtY29udGFpbmVyLXBhcnNpbmcuaHRtbDoKKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFz
aHRlc3RzL2Nocm9tZS1idWctMTM0Njk2OS1jcmFzaC5odG1sOiBBZGRlZC4KKiBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWlu
ZXItcXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1yZW1vdmUtaW5zZXJ0LWV2YWx1YXRvci1jcmFz
aC5odG1sOiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL3czYy1pbXBv
cnQubG9nOgoqIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb250YWluZXJSdWxlLmNwcDoKKFdlYkNv
cmU6OkNTU0NvbnRhaW5lclJ1bGU6OmNzc1RleHQgY29uc3QpOgoKRmFjdG9yIHF1ZXJ5IHNlcmlh
bGl6YXRpb24gdG8gYSBmdW5jdGlvbiBpbiBDUSBuYW1lc3BhY2UuCgooV2ViQ29yZTo6Q1NTQ29u
dGFpbmVyUnVsZTo6Y29uZGl0aW9uVGV4dCBjb25zdCk6CihXZWJDb3JlOjpDU1NDb250YWluZXJS
dWxlOjpuYW1lVGV4dCBjb25zdCk6CihXZWJDb3JlOjpDU1NDb250YWluZXJSdWxlOjpuYW1lRmls
dGVyVGV4dCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbnRhaW5l
clJ1bGUuaDoKKiBTb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuY3BwOgooV2ViQ29y
ZTo6Q1E6OnNlcmlhbGl6ZSk6CihXZWJDb3JlOjpzZXJpYWxpemUpOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeS5oOgoKVXBkYXRlIHRvIHRoZSBzcGVjIGdyYW1t
YXIgYW5kIHRlcm1pbm9sb2d5LgpDb250YWluZXJRdWVyeSBub3cgaW5jbHVkZXMgdGhlIG5hbWUg
cGFydCBhbmQgcmVwbGFjZXMgRmlsdGVyZWRDb250YWluZXJRdWVyeS4KUXVlcnlJblBhcmVucyBy
ZXBsYWNlcyBDb250YWluZXJRdWVyeS4KQWxzbyBtb3ZlIENvbnRhaW5lclF1ZXJ5IHRvIENRIG5h
bWVzcGFjZS4KCiogU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmNwcDoK
KFdlYkNvcmU6OkNvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lQ29udGFpbmVyUXVlcnkpOgoo
V2ViQ29yZTo6Q29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVRdWVyeUluUGFyZW5zKToKKFdl
YkNvcmU6OkNvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lQ29uZGl0aW9uKToKKFdlYkNvcmU6
OkNvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lRmlsdGVyZWRDb250YWluZXJRdWVyeSk6IERl
bGV0ZWQuCiogU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmg6CiogU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHA6CihXZWJDb3JlOjpTdHlsZVJ1bGVDb250YWlu
ZXI6OlN0eWxlUnVsZUNvbnRhaW5lcik6CihXZWJDb3JlOjpTdHlsZVJ1bGVDb250YWluZXI6OmNy
ZWF0ZSk6CiogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oOgoqIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5jcHA6CihXZWJDb3JlOjpDU1NQYXJzZXJJbXBsOjpj
b25zdW1lQ29udGFpbmVyUnVsZSk6CiogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwOgooV2ViQ29yZTo6YnVpbGRBcnJheUZvckdyb3VwaW5ncyk6CiogU291
cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwOgooV2ViQ29yZTo6
U3R5bGU6OkNvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZSBjb25zdCk6CihXZWJDb3Jl
OjpTdHlsZTo6Q29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OnNlbGVjdENvbnRhaW5lciBjb25zdCk6
CihXZWJDb3JlOjpTdHlsZTo6Q29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlUXVlcnlJ
blBhcmVucyBjb25zdCk6CihXZWJDb3JlOjpTdHlsZTo6Q29udGFpbmVyUXVlcnlFdmFsdWF0b3I6
OmV2YWx1YXRlQ29uZGl0aW9uIGNvbnN0KToKKFdlYkNvcmU6OlN0eWxlOjpDb250YWluZXJRdWVy
eUV2YWx1YXRvcjo6ZXZhbHVhdGVRdWVyeSBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNv
cmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuaDoKKiBTb3VyY2UvV2ViQ29yZS9zdHls
ZS9SdWxlU2V0Lmg6CihXZWJDb3JlOjpTdHlsZTo6IGNvbnN0KToKLS0tCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29udGFpbmVyUnVsZS5jcHAgICAgICAgfCAgMTQgKy0KIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb250YWluZXJSdWxlLmggICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUv
Y3NzL0NvbnRhaW5lclF1ZXJ5LmNwcCAgICAgICAgIHwgIDE2ICstCiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ29udGFpbmVyUXVlcnkuaCAgICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9Db250YWluZXJRdWVyeVBhcnNlci5jcHAgICB8ICAxNiArLQogU291cmNlL1dlYkNvcmUvY3Nz
L0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmggICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSdWxlLmNwcCAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJ1bGUuaCAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJJbXBsLmNwcCAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgfCAgIDYgKy0KIC4uLi9XZWJDb3JlL3N0eWxlL0NvbnRh
aW5lclF1ZXJ5RXZhbHVhdG9yLmNwcCB8ICAyMCArLQogLi4uL1dlYkNvcmUvc3R5bGUvQ29udGFp
bmVyUXVlcnlFdmFsdWF0b3IuaCAgIHwgICA2ICstCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxl
U2V0LmggICAgICAgICAgICAgICAgfCAgIDggKy0KIC4uLi9hdC1jb250YWluZXItcGFyc2luZy1l
eHBlY3RlZC50eHQgICAgICAgICB8ICA1NCArKy0tCiAuLi4vYXQtY29udGFpbmVyLXBhcnNpbmcu
aHRtbCAgICAgICAgICAgICAgICAgfCAyODUgKysrKysrKysrLS0tLS0tLS0tCiAuLi4vY3Jhc2h0
ZXN0cy9jaHJvbWUtYnVnLTEzNDY5NjktY3Jhc2guaHRtbCAgfCAgMTQgKwogLi4uL2Nocm9tZS1y
ZW1vdmUtaW5zZXJ0LWV2YWx1YXRvci1jcmFzaC5odG1sIHwgIDE1ICsKIC4uLi9jcmFzaHRlc3Rz
L3czYy1pbXBvcnQubG9nICAgICAgICAgICAgICAgICB8ICAgMiArCiAxOCBmaWxlcyBjaGFuZ2Vk
LCAyNzQgaW5zZXJ0aW9ucygrKSwgMjI3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY2hyb21lLWJ1Zy0xMzQ2OTY5LWNyYXNo
Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3Rz
L2Nocm9tZS1yZW1vdmUtaW5zZXJ0LWV2YWx1YXRvci1jcmFzaC5odG1sCgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbnRhaW5lclJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbnRhaW5lclJ1bGUuY3BwCmluZGV4IDIxNTBhMDNhYTU5Zi4uODFiZTBmNmE2NTE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29udGFpbmVyUnVsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbnRhaW5lclJ1bGUuY3BwCkBAIC01NCwxMyArNTQs
NyBAQCBTdHJpbmcgQ1NTQ29udGFpbmVyUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAKICAgICBidWls
ZGVyLmFwcGVuZCgiQGNvbnRhaW5lciAiKTsKIAotICAgIGF1dG8gbmFtZSA9IHN0eWxlUnVsZUNv
bnRhaW5lcigpLmZpbHRlcmVkUXVlcnkoKS5uYW1lRmlsdGVyOwotICAgIGlmICghbmFtZS5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgc2VyaWFsaXplSWRlbnRpZmllcihuYW1lLCBidWlsZGVyKTsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICB9Ci0KLSAgICBzZXJpYWxpemUoYnVpbGRl
ciwgc3R5bGVSdWxlQ29udGFpbmVyKCkuZmlsdGVyZWRRdWVyeSgpLnF1ZXJ5KTsKKyAgICBDUTo6
c2VyaWFsaXplKGJ1aWxkZXIsIHN0eWxlUnVsZUNvbnRhaW5lcigpLmNvbnRhaW5lclF1ZXJ5KCkp
OwogCiAgICAgYnVpbGRlci5hcHBlbmQoIiB7XG4iKTsKICAgICBhcHBlbmRDU1NUZXh0Rm9ySXRl
bXMoYnVpbGRlcik7CkBAIC03MiwxNSArNjYsMTUgQEAgU3RyaW5nIENTU0NvbnRhaW5lclJ1bGU6
OmNzc1RleHQoKSBjb25zdAogU3RyaW5nIENTU0NvbnRhaW5lclJ1bGU6OmNvbmRpdGlvblRleHQo
KSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBzZXJpYWxpemUoYnVp
bGRlciwgc3R5bGVSdWxlQ29udGFpbmVyKCkuZmlsdGVyZWRRdWVyeSgpLnF1ZXJ5KTsKKyAgICBD
UTo6c2VyaWFsaXplKGJ1aWxkZXIsIHN0eWxlUnVsZUNvbnRhaW5lcigpLmNvbnRhaW5lclF1ZXJ5
KCkuY29uZGl0aW9uKTsKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCi1TdHJp
bmcgQ1NTQ29udGFpbmVyUnVsZTo6bmFtZUZpbHRlclRleHQoKSBjb25zdAorU3RyaW5nIENTU0Nv
bnRhaW5lclJ1bGU6Om5hbWVUZXh0KCkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgCi0gICAgYXV0byBuYW1lID0gc3R5bGVSdWxlQ29udGFpbmVyKCkuZmlsdGVyZWRR
dWVyeSgpLm5hbWVGaWx0ZXI7CisgICAgYXV0byBuYW1lID0gc3R5bGVSdWxlQ29udGFpbmVyKCku
Y29udGFpbmVyUXVlcnkoKS5uYW1lOwogICAgIGlmICghbmFtZS5pc0VtcHR5KCkpCiAgICAgICAg
IHNlcmlhbGl6ZUlkZW50aWZpZXIobmFtZSwgYnVpbGRlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb250YWluZXJSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29udGFpbmVyUnVsZS5oCmluZGV4IDVjOTUzMjU4NTJlYS4uMWVjNjRmMTJhYWNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29udGFpbmVyUnVsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDb250YWluZXJSdWxlLmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgog
CiAgICAgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgY29uZGl0aW9u
VGV4dCgpIGNvbnN0IGZpbmFsOwotICAgIFN0cmluZyBuYW1lRmlsdGVyVGV4dCgpIGNvbnN0Owor
ICAgIFN0cmluZyBuYW1lVGV4dCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGNvbnN0IFN0eWxl
UnVsZUNvbnRhaW5lciYgc3R5bGVSdWxlQ29udGFpbmVyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NvbnRhaW5lclF1ZXJ5LmNwcAppbmRleCAzODVmZWRmM2ZkZDkuLjEwMzQ2MDkxOGY4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuY3BwCkBAIC05MCw5ICs5MCw5IEBAIE9wdGlv
blNldDxBeGlzPiByZXF1aXJlZEF4ZXNGb3JGZWF0dXJlKGNvbnN0IEF0b21TdHJpbmcmIGZlYXR1
cmVOYW1lKQogdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYsIGNvbnN0IFNpemVGZWF0dXJl
Jik7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb25kaXRpb25UeXBlPiB2b2lkIHNlcmlhbGl6ZShTdHJp
bmdCdWlsZGVyJiwgY29uc3QgQ29uZGl0aW9uVHlwZSYpOwogCi1zdGF0aWMgdm9pZCBzZXJpYWxp
emUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgQ29udGFpbmVyUXVlcnkmIGNvbnRhaW5l
clF1ZXJ5KQorc3RhdGljIHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNv
bnN0IFF1ZXJ5SW5QYXJlbnMmIHF1ZXJ5KQogewotICAgIFdURjo6c3dpdGNoT24oY29udGFpbmVy
UXVlcnksIFsmXShhdXRvJiBub2RlKSB7CisgICAgV1RGOjpzd2l0Y2hPbihxdWVyeSwgWyZdKGF1
dG8mIG5vZGUpIHsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJygnKTsKICAgICAgICAgc2VyaWFs
aXplKGJ1aWxkZXIsIG5vZGUpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwpAQCAtMTg2
LDEyICsxODYsMjIgQEAgdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29u
c3QgQ29uZGl0aW9uVHlwZSYgY29uZGl0aW9uKQogICAgIH0KIH0KIAordm9pZCBzZXJpYWxpemUo
U3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgQ29udGFpbmVyQ29uZGl0aW9uJiBjb25kaXRp
b24pCit7CisgICAgc2VyaWFsaXplPENvbnRhaW5lckNvbmRpdGlvbj4oYnVpbGRlciwgY29uZGl0
aW9uKTsKIH0KIAogdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3Qg
Q29udGFpbmVyUXVlcnkmIHF1ZXJ5KQogewotICAgIENROjpzZXJpYWxpemUoYnVpbGRlciwgcXVl
cnkpOworICAgIGF1dG8gbmFtZSA9IHF1ZXJ5Lm5hbWU7CisgICAgaWYgKCFuYW1lLmlzRW1wdHko
KSkgeworICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKG5hbWUsIGJ1aWxkZXIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgIH0KKworICAgIHNlcmlhbGl6ZTxDb250YWluZXJD
b25kaXRpb24+KGJ1aWxkZXIsIHF1ZXJ5LmNvbmRpdGlvbik7CiB9CiAKIH0KK30KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ29udGFpbmVyUXVlcnkuaAppbmRleCA1OGU2OWY5Yzk4MWQuLmQxMTgyOTNiM2UwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgc3RydWN0
IFVua25vd25RdWVyeSB7CiAgICAgU3RyaW5nIHRleHQ7CiB9OwogCi11c2luZyBDb250YWluZXJR
dWVyeSA9IHN0ZDo6dmFyaWFudDxDb250YWluZXJDb25kaXRpb24sIFNpemVGZWF0dXJlLCBVbmtu
b3duUXVlcnk+OwordXNpbmcgUXVlcnlJblBhcmVucyA9IHN0ZDo6dmFyaWFudDxDb250YWluZXJD
b25kaXRpb24sIFNpemVGZWF0dXJlLCBVbmtub3duUXVlcnk+OwogCiBlbnVtIGNsYXNzIExvZ2lj
YWxPcGVyYXRvciA6IHVpbnQ4X3QgeyBBbmQsIE9yLCBOb3QgfTsKIGVudW0gY2xhc3MgQ29tcGFy
aXNvbk9wZXJhdG9yIDogdWludDhfdCB7IExlc3NUaGFuLCBMZXNzVGhhbk9yRXF1YWwsIEVxdWFs
LCBHcmVhdGVyVGhhbiwgR3JlYXRlclRoYW5PckVxdWFsIH07CkBAIC01Miw3ICs1Miw3IEBAIGVu
dW0gY2xhc3MgU3ludGF4IDogdWludDhfdCB7IEJvb2xlYW4sIENvbG9uLCBSYW5nZSB9OwogCiBz
dHJ1Y3QgQ29udGFpbmVyQ29uZGl0aW9uIHsKICAgICBMb2dpY2FsT3BlcmF0b3IgbG9naWNhbE9w
ZXJhdG9yIHsgTG9naWNhbE9wZXJhdG9yOjpBbmQgfTsKLSAgICBWZWN0b3I8Q29udGFpbmVyUXVl
cnk+IHF1ZXJpZXM7CisgICAgVmVjdG9yPFF1ZXJ5SW5QYXJlbnM+IHF1ZXJpZXM7CiB9OwogCiBz
dHJ1Y3QgQ29tcGFyaXNvbiB7CkBAIC04NCwxOCArODQsMTcgQEAgZW51bSBjbGFzcyBBeGlzIDog
dWludDhfdCB7CiB9OwogT3B0aW9uU2V0PEF4aXM+IHJlcXVpcmVkQXhlc0ZvckZlYXR1cmUoY29u
c3QgQXRvbVN0cmluZyYpOwogCi19Ci0KLXVzaW5nIENvbnRhaW5lclF1ZXJ5ID0gQ1E6OkNvbnRh
aW5lclF1ZXJ5OwotCi1zdHJ1Y3QgRmlsdGVyZWRDb250YWluZXJRdWVyeSB7Ci0gICAgQXRvbVN0
cmluZyBuYW1lRmlsdGVyOworc3RydWN0IENvbnRhaW5lclF1ZXJ5IHsKKyAgICBBdG9tU3RyaW5n
IG5hbWU7CiAgICAgT3B0aW9uU2V0PENROjpBeGlzPiBheGlzRmlsdGVyOwotICAgIENvbnRhaW5l
clF1ZXJ5IHF1ZXJ5OworICAgIENROjpDb250YWluZXJDb25kaXRpb24gY29uZGl0aW9uOwogfTsK
IAotdXNpbmcgQ2FjaGVkUXVlcnlDb250YWluZXJzID0gVmVjdG9yPFJlZjxjb25zdCBFbGVtZW50
Pj47Ci0KK3ZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImLCBjb25zdCBDb250YWluZXJDb25k
aXRpb24mKTsKIHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImLCBjb25zdCBDb250YWluZXJR
dWVyeSYpOwogCiB9CisKK3VzaW5nIENhY2hlZFF1ZXJ5Q29udGFpbmVycyA9IFZlY3RvcjxSZWY8
Y29uc3QgRWxlbWVudD4+OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29u
dGFpbmVyUXVlcnlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5
UGFyc2VyLmNwcAppbmRleCA0MTEzMWQ1MzU2NTEuLjQ1ODliYWJhZDFkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIuY3BwCkBAIC0zMCwxMyArMzAsMTMgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGQ6Om9wdGlvbmFsPEZpbHRlcmVkQ29udGFpbmVy
UXVlcnk+IENvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lRmlsdGVyZWRDb250YWluZXJRdWVy
eShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29u
dGV4dCkKK3N0ZDo6b3B0aW9uYWw8Q1E6OkNvbnRhaW5lclF1ZXJ5PiBDb250YWluZXJRdWVyeVBh
cnNlcjo6Y29uc3VtZUNvbnRhaW5lclF1ZXJ5KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBj
b25zdCBDU1NQYXJzZXJDb250ZXh0JiBjb250ZXh0KQogewogICAgIENvbnRhaW5lclF1ZXJ5UGFy
c2VyIHBhcnNlcihjb250ZXh0KTsKLSAgICByZXR1cm4gcGFyc2VyLmNvbnN1bWVGaWx0ZXJlZENv
bnRhaW5lclF1ZXJ5KHJhbmdlKTsKKyAgICByZXR1cm4gcGFyc2VyLmNvbnN1bWVDb250YWluZXJR
dWVyeShyYW5nZSk7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8RmlsdGVyZWRDb250YWluZXJRdWVyeT4g
Q29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5KENTU1Bh
cnNlclRva2VuUmFuZ2UmIHJhbmdlKQorc3RkOjpvcHRpb25hbDxDUTo6Q29udGFpbmVyUXVlcnk+
IENvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lQ29udGFpbmVyUXVlcnkoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAgYXV0byBjb25zdW1lTmFtZSA9IFsmXSB7CiAgICAgICAg
IGlmIChyYW5nZS5wZWVrKCkudHlwZSgpID09IExlZnRQYXJlbnRoZXNpc1Rva2VuIHx8IHJhbmdl
LnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbikKQEAgLTUxLDE0ICs1MSwxNCBAQCBzdGQ6
Om9wdGlvbmFsPEZpbHRlcmVkQ29udGFpbmVyUXVlcnk+IENvbnRhaW5lclF1ZXJ5UGFyc2VyOjpj
b25zdW1lRmlsdGVyZWRDb250YQogCiAgICAgbV9yZXF1aXJlZEF4ZXMgPSB7IH07CiAKLSAgICBh
dXRvIHF1ZXJ5ID0gY29uc3VtZUNvbnRhaW5lclF1ZXJ5KHJhbmdlKTsKLSAgICBpZiAoIXF1ZXJ5
KQorICAgIGF1dG8gY29uZGl0aW9uID0gY29uc3VtZUNvbmRpdGlvbjxDUTo6Q29udGFpbmVyQ29u
ZGl0aW9uPihyYW5nZSk7CisgICAgaWYgKCFjb25kaXRpb24pCiAgICAgICAgIHJldHVybiB7IH07
CiAKLSAgICByZXR1cm4gRmlsdGVyZWRDb250YWluZXJRdWVyeSB7IG5hbWUsIG1fcmVxdWlyZWRB
eGVzLCAqcXVlcnkgfTsKKyAgICByZXR1cm4gQ1E6OkNvbnRhaW5lclF1ZXJ5IHsgbmFtZSwgbV9y
ZXF1aXJlZEF4ZXMsICpjb25kaXRpb24gfTsKIH0KIAotc3RkOjpvcHRpb25hbDxDUTo6Q29udGFp
bmVyUXVlcnk+IENvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lQ29udGFpbmVyUXVlcnkoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCitzdGQ6Om9wdGlvbmFsPENROjpRdWVyeUluUGFyZW5z
PiBDb250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3VtZVF1ZXJ5SW5QYXJlbnMoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rp
b25Ub2tlbikgewogICAgICAgICBhdXRvIG5hbWUgPSByYW5nZS5wZWVrKCkudmFsdWUoKTsKQEAg
LTkyLDcgKzkyLDcgQEAgc3RkOjpvcHRpb25hbDxDb25kaXRpb25UeXBlPiBDb250YWluZXJRdWVy
eVBhcnNlcjo6Y29uc3VtZUNvbmRpdGlvbihDU1NQYXJzZXJUb2sKIHsKICAgICBhdXRvIGNvbnN1
bWVRdWVyeSA9IFsmXShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSkgewogICAgICAgICBpZiBj
b25zdGV4cHIgKHN0ZDo6aXNfc2FtZV92PENROjpDb250YWluZXJDb25kaXRpb24sIENvbmRpdGlv
blR5cGU+KQotICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWVDb250YWluZXJRdWVyeShyYW5nZSk7
CisgICAgICAgICAgICByZXR1cm4gY29uc3VtZVF1ZXJ5SW5QYXJlbnMocmFuZ2UpOwogICAgICAg
ICAvLyBTdHlsZSBxdWVyeSBzdXBwb3J0IHdvdWxkIGJlIGhlcmUuCiAgICAgfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIuaAppbmRleCA4NWM2YmI4NzVhMDMuLmRl
N2FkZDVjYjc4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5
UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmgK
QEAgLTM0LDExICszNCwxMSBAQCBjbGFzcyBDU1NQYXJzZXJUb2tlblJhbmdlOwogCiBjbGFzcyBD
b250YWluZXJRdWVyeVBhcnNlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
RmlsdGVyZWRDb250YWluZXJRdWVyeT4gY29uc3VtZUZpbHRlcmVkQ29udGFpbmVyUXVlcnkoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmKTsKKyAgICBzdGF0aWMg
c3RkOjpvcHRpb25hbDxDUTo6Q29udGFpbmVyUXVlcnk+IGNvbnN1bWVDb250YWluZXJRdWVyeShD
U1NQYXJzZXJUb2tlblJhbmdlJiwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYpOwogCiBwcml2YXRl
OgotICAgIHN0ZDo6b3B0aW9uYWw8RmlsdGVyZWRDb250YWluZXJRdWVyeT4gY29uc3VtZUZpbHRl
cmVkQ29udGFpbmVyUXVlcnkoQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOwogICAgIHN0ZDo6b3B0aW9u
YWw8Q1E6OkNvbnRhaW5lclF1ZXJ5PiBjb25zdW1lQ29udGFpbmVyUXVlcnkoQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8Q1E6OlF1ZXJ5SW5QYXJlbnM+IGNvbnN1bWVR
dWVyeUluUGFyZW5zKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDb25kaXRpb25UeXBlPiBzdGQ6Om9wdGlvbmFsPENvbmRpdGlvblR5cGU+IGNvbnN1bWVDb25k
aXRpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOwogICAgIHN0ZDo6b3B0aW9uYWw8Q1E6OlNpemVG
ZWF0dXJlPiBjb25zdW1lU2l6ZUZlYXR1cmUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOwogICAgIHN0
ZDo6b3B0aW9uYWw8Q1E6OlNpemVGZWF0dXJlPiBjb25zdW1lUGxhaW5TaXplRmVhdHVyZShDU1NQ
YXJzZXJUb2tlblJhbmdlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
dWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCmluZGV4IGY4ZGNkYjdl
NGIzMi4uOWNiNDdiNWUyZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
dWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcApAQCAtNDU1LDE5
ICs0NTUsMTkgQEAgUmVmPFN0eWxlUnVsZUxheWVyPiBTdHlsZVJ1bGVMYXllcjo6Y3JlYXRlQmxv
Y2soQ2FzY2FkZUxheWVyTmFtZSYmIG5hbWUsIFZlY3RvcjwKICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTdHlsZVJ1bGVMYXllcihXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKHJ1bGVzKSkpOwogfQog
Ci1TdHlsZVJ1bGVDb250YWluZXI6OlN0eWxlUnVsZUNvbnRhaW5lcihGaWx0ZXJlZENvbnRhaW5l
clF1ZXJ5JiYgcXVlcnksIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiYgcnVsZXMpCitT
dHlsZVJ1bGVDb250YWluZXI6OlN0eWxlUnVsZUNvbnRhaW5lcihDUTo6Q29udGFpbmVyUXVlcnkm
JiBxdWVyeSwgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4mJiBydWxlcykKICAgICA6IFN0
eWxlUnVsZUdyb3VwKFN0eWxlUnVsZVR5cGU6OkNvbnRhaW5lciwgV1RGTW92ZShydWxlcykpCi0g
ICAgLCBtX2ZpbHRlcmVkUXVlcnkoV1RGTW92ZShxdWVyeSkpCisgICAgLCBtX2NvbnRhaW5lcmRR
dWVyeShXVEZNb3ZlKHF1ZXJ5KSkKIHsKIH0KIAogU3R5bGVSdWxlQ29udGFpbmVyOjpTdHlsZVJ1
bGVDb250YWluZXIoY29uc3QgU3R5bGVSdWxlQ29udGFpbmVyJiBvdGhlcikKICAgICA6IFN0eWxl
UnVsZUdyb3VwKG90aGVyKQotICAgICwgbV9maWx0ZXJlZFF1ZXJ5KG90aGVyLm1fZmlsdGVyZWRR
dWVyeSkKKyAgICAsIG1fY29udGFpbmVyZFF1ZXJ5KG90aGVyLm1fY29udGFpbmVyZFF1ZXJ5KQog
ewogfQogCi1SZWY8U3R5bGVSdWxlQ29udGFpbmVyPiBTdHlsZVJ1bGVDb250YWluZXI6OmNyZWF0
ZShGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5JiYgcXVlcnksIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxl
QmFzZT4+JiYgcnVsZXMpCitSZWY8U3R5bGVSdWxlQ29udGFpbmVyPiBTdHlsZVJ1bGVDb250YWlu
ZXI6OmNyZWF0ZShDUTo6Q29udGFpbmVyUXVlcnkmJiBxdWVyeSwgVmVjdG9yPFJlZlB0cjxTdHls
ZVJ1bGVCYXNlPj4mJiBydWxlcykKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHlsZVJ1
bGVDb250YWluZXIoV1RGTW92ZShxdWVyeSksIFdURk1vdmUocnVsZXMpKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSdWxlLmgKaW5kZXggMjMzMGUyMTQ0ZGZlLi5kMmVmZDVkZWI1NmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSdWxlLmgKQEAgLTI5MSwxNiArMjkxLDE2IEBAIHByaXZhdGU6CiAKIGNsYXNzIFN0eWxl
UnVsZUNvbnRhaW5lciBmaW5hbCA6IHB1YmxpYyBTdHlsZVJ1bGVHcm91cCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxTdHlsZVJ1bGVDb250YWluZXI+IGNyZWF0ZShGaWx0ZXJlZENvbnRhaW5l
clF1ZXJ5JiYsIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiYpOworICAgIHN0YXRpYyBS
ZWY8U3R5bGVSdWxlQ29udGFpbmVyPiBjcmVhdGUoQ1E6OkNvbnRhaW5lclF1ZXJ5JiYsIFZlY3Rv
cjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiYpOwogICAgIFJlZjxTdHlsZVJ1bGVDb250YWluZXI+
IGNvcHkoKSBjb25zdCB7IHJldHVybiBhZG9wdFJlZigqbmV3IFN0eWxlUnVsZUNvbnRhaW5lcigq
dGhpcykpOyB9CiAKLSAgICBjb25zdCBGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5JiBmaWx0ZXJlZFF1
ZXJ5KCkgY29uc3QgeyByZXR1cm4gbV9maWx0ZXJlZFF1ZXJ5OyB9CisgICAgY29uc3QgQ1E6OkNv
bnRhaW5lclF1ZXJ5JiBjb250YWluZXJRdWVyeSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbmVy
ZFF1ZXJ5OyB9CiAKIHByaXZhdGU6Ci0gICAgU3R5bGVSdWxlQ29udGFpbmVyKEZpbHRlcmVkQ29u
dGFpbmVyUXVlcnkmJiwgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4mJik7CisgICAgU3R5
bGVSdWxlQ29udGFpbmVyKENROjpDb250YWluZXJRdWVyeSYmLCBWZWN0b3I8UmVmUHRyPFN0eWxl
UnVsZUJhc2U+PiYmKTsKICAgICBTdHlsZVJ1bGVDb250YWluZXIoY29uc3QgU3R5bGVSdWxlQ29u
dGFpbmVyJik7CiAKLSAgICBGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5IG1fZmlsdGVyZWRRdWVyeTsK
KyAgICBDUTo6Q29udGFpbmVyUXVlcnkgbV9jb250YWluZXJkUXVlcnk7CiB9OwogCiAvLyBUaGlz
IGlzIG9ubHkgdXNlZCBieSB0aGUgQ1NTIHBhcnNlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1BhcnNlckltcGwuY3BwCmluZGV4IDEzODllZTgzZmVhMC4uNDdlOWRlMmYyODAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5jcHAKQEAgLTc4MCw3
ICs3ODAsNyBAQCBSZWZQdHI8U3R5bGVSdWxlQ29udGFpbmVyPiBDU1NQYXJzZXJJbXBsOjpjb25z
dW1lQ29udGFpbmVyUnVsZShDU1NQYXJzZXJUb2tlblJhbgogICAgIGlmIChwcmVsdWRlLmF0RW5k
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBxdWVyeSA9IENvbnRhaW5l
clF1ZXJ5UGFyc2VyOjpjb25zdW1lRmlsdGVyZWRDb250YWluZXJRdWVyeShwcmVsdWRlLCBtX2Nv
bnRleHQpOworICAgIGF1dG8gcXVlcnkgPSBDb250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3VtZUNv
bnRhaW5lclF1ZXJ5KHByZWx1ZGUsIG1fY29udGV4dCk7CiAgICAgaWYgKCFxdWVyeSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRleCA5NDBmNDA1OWI1MmEuLjQxNDdjOTRiZDEzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcApA
QCAtNTE5LDkgKzUxOSw5IEBAIHN0YXRpYyBSZWY8SlNPTjo6QXJyYXlPZjxQcm90b2NvbDo6Q1NT
OjpHcm91cGluZz4+IGJ1aWxkQXJyYXlGb3JHcm91cGluZ3MoQ1NTUnVsCiAgICAgICAgICAgICAg
ICAgLnJlbGVhc2UoKTsKIAogICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAg
ICAgICAgICAgYXV0byBuYW1lRmlsdGVyID0gY29udGFpbmVyUnVsZS0+bmFtZUZpbHRlclRleHQo
KTsKLSAgICAgICAgICAgIGlmICghbmFtZUZpbHRlci5pc0VtcHR5KCkpCi0gICAgICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQobmFtZUZpbHRlciwgJyAnKTsKKyAgICAgICAgICAgIGF1dG8gbmFt
ZVRleHQgPSBjb250YWluZXJSdWxlLT5uYW1lVGV4dCgpOworICAgICAgICAgICAgaWYgKCFuYW1l
VGV4dC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobmFtZVRleHQs
ICcgJyk7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChjb250YWluZXJSdWxlLT5jb25kaXRp
b25UZXh0KCkpOwogICAgICAgICAgICAgY29udGFpbmVyUnVsZVBheWxvYWQtPnNldFRleHQoYnVp
bGRlci50b1N0cmluZygpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ29u
dGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVy
UXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGY5YzVmNmMyY2RkNy4uNjE0NzRmZTg3ZDA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwCkBA
IC01MywxNiArNTMsMTYgQEAgQ29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OkNvbnRhaW5lclF1ZXJ5
RXZhbHVhdG9yKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIFNlbGVjdGkKIHsKIH0KIAotYm9vbCBD
b250YWluZXJRdWVyeUV2YWx1YXRvcjo6ZXZhbHVhdGUoY29uc3QgRmlsdGVyZWRDb250YWluZXJR
dWVyeSYgZmlsdGVyZWRDb250YWluZXJRdWVyeSkgY29uc3QKK2Jvb2wgQ29udGFpbmVyUXVlcnlF
dmFsdWF0b3I6OmV2YWx1YXRlKGNvbnN0IENROjpDb250YWluZXJRdWVyeSYgY29udGFpbmVyUXVl
cnkpIGNvbnN0CiB7Ci0gICAgYXV0byBjb250YWluZXIgPSBzZWxlY3RDb250YWluZXIoZmlsdGVy
ZWRDb250YWluZXJRdWVyeSk7CisgICAgYXV0byBjb250YWluZXIgPSBzZWxlY3RDb250YWluZXIo
Y29udGFpbmVyUXVlcnkpOwogICAgIGlmICghY29udGFpbmVyKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICByZXR1cm4gZXZhbHVhdGVRdWVyeShmaWx0ZXJlZENvbnRhaW5lclF1ZXJ5LnF1
ZXJ5LCAqY29udGFpbmVyKSA9PSBFdmFsdWF0aW9uUmVzdWx0OjpUcnVlOworICAgIHJldHVybiBl
dmFsdWF0ZUNvbmRpdGlvbihjb250YWluZXJRdWVyeS5jb25kaXRpb24sICpjb250YWluZXIpID09
IEV2YWx1YXRpb25SZXN1bHQ6OlRydWU7CiB9CiAKLWF1dG8gQ29udGFpbmVyUXVlcnlFdmFsdWF0
b3I6OnNlbGVjdENvbnRhaW5lcihjb25zdCBGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5JiBmaWx0ZXJl
ZENvbnRhaW5lclF1ZXJ5KSBjb25zdCAtPiBzdGQ6Om9wdGlvbmFsPFNlbGVjdGVkQ29udGFpbmVy
PgorYXV0byBDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6c2VsZWN0Q29udGFpbmVyKGNvbnN0IENR
OjpDb250YWluZXJRdWVyeSYgY29udGFpbmVyUXVlcnkpIGNvbnN0IC0+IHN0ZDo6b3B0aW9uYWw8
U2VsZWN0ZWRDb250YWluZXI+CiB7CiAgICAgLy8gIkZvciBlYWNoIGVsZW1lbnQsIHRoZSBxdWVy
eSBjb250YWluZXIgdG8gYmUgcXVlcmllZCBpcyBzZWxlY3RlZCBmcm9tIGFtb25nIHRoZSBlbGVt
ZW504oCZcwogICAgIC8vIGFuY2VzdG9yIHF1ZXJ5IGNvbnRhaW5lcnMgdGhhdCBoYXZlIGEgdmFs
aWQgY29udGFpbmVyLXR5cGUgZm9yIGFsbCB0aGUgY29udGFpbmVyIGZlYXR1cmVzCkBAIC04Miw3
ICs4Miw3IEBAIGF1dG8gQ29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OnNlbGVjdENvbnRhaW5lcihj
b25zdCBGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5JiBmaWx0CiAKICAgICBhdXRvKiBjYWNoZWRRdWVy
eUNvbnRhaW5lcnMgPSBtX3NlbGVjdG9yTWF0Y2hpbmdTdGF0ZSA/ICZtX3NlbGVjdG9yTWF0Y2hp
bmdTdGF0ZS0+cXVlcnlDb250YWluZXJzIDogbnVsbHB0cjsKIAotICAgIGF1dG8qIGNvbnRhaW5l
ciA9IHNlbGVjdENvbnRhaW5lcihmaWx0ZXJlZENvbnRhaW5lclF1ZXJ5LmF4aXNGaWx0ZXIsIGZp
bHRlcmVkQ29udGFpbmVyUXVlcnkubmFtZUZpbHRlciwgbV9lbGVtZW50LmdldCgpLCBtX3NlbGVj
dGlvbk1vZGUsIG1fc2NvcGVPcmRpbmFsLCBjYWNoZWRRdWVyeUNvbnRhaW5lcnMpOworICAgIGF1
dG8qIGNvbnRhaW5lciA9IHNlbGVjdENvbnRhaW5lcihjb250YWluZXJRdWVyeS5heGlzRmlsdGVy
LCBjb250YWluZXJRdWVyeS5uYW1lLCBtX2VsZW1lbnQuZ2V0KCksIG1fc2VsZWN0aW9uTW9kZSwg
bV9zY29wZU9yZGluYWwsIGNhY2hlZFF1ZXJ5Q29udGFpbmVycyk7CiAgICAgaWYgKCFjb250YWlu
ZXIpCiAgICAgICAgIHJldHVybiB7IH07CiAKQEAgLTE2NCw5ICsxNjQsOSBAQCBjb25zdCBFbGVt
ZW50KiBDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6c2VsZWN0Q29udGFpbmVyKE9wdGlvblNldDxD
UTo6QXhpcz4gYXhlcwogICAgIHJldHVybiB7IH07CiB9CiAKLWF1dG8gQ29udGFpbmVyUXVlcnlF
dmFsdWF0b3I6OmV2YWx1YXRlUXVlcnkoY29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5JiBjb250YWlu
ZXJRdWVyeSwgY29uc3QgU2VsZWN0ZWRDb250YWluZXImIGNvbnRhaW5lcikgY29uc3QgLT4gRXZh
bHVhdGlvblJlc3VsdAorYXV0byBDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6ZXZhbHVhdGVRdWVy
eUluUGFyZW5zKGNvbnN0IENROjpRdWVyeUluUGFyZW5zJiBxdWVyeUluUGFyZW5zLCBjb25zdCBT
ZWxlY3RlZENvbnRhaW5lciYgY29udGFpbmVyKSBjb25zdCAtPiBFdmFsdWF0aW9uUmVzdWx0CiB7
Ci0gICAgcmV0dXJuIFdURjo6c3dpdGNoT24oY29udGFpbmVyUXVlcnksIFsmXShjb25zdCBDUTo6
Q29udGFpbmVyQ29uZGl0aW9uJiBjb250YWluZXJDb25kaXRpb24pIHsKKyAgICByZXR1cm4gV1RG
Ojpzd2l0Y2hPbihxdWVyeUluUGFyZW5zLCBbJl0oY29uc3QgQ1E6OkNvbnRhaW5lckNvbmRpdGlv
biYgY29udGFpbmVyQ29uZGl0aW9uKSB7CiAgICAgICAgIHJldHVybiBldmFsdWF0ZUNvbmRpdGlv
bihjb250YWluZXJDb25kaXRpb24sIGNvbnRhaW5lcik7CiAgICAgfSwgWyZdKGNvbnN0IENROjpT
aXplRmVhdHVyZSYgc2l6ZUZlYXR1cmUpIHsKICAgICAgICAgcmV0dXJuIGV2YWx1YXRlU2l6ZUZl
YXR1cmUoc2l6ZUZlYXR1cmUsIGNvbnRhaW5lcik7CkBAIC0xODMsMTEgKzE4MywxMSBAQCBhdXRv
IENvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZUNvbmRpdGlvbihjb25zdCBDb25kaXRp
b25UeXBlJiBjb25kaXRpb24sCiAKICAgICBzd2l0Y2ggKGNvbmRpdGlvbi5sb2dpY2FsT3BlcmF0
b3IpIHsKICAgICBjYXNlIENROjpMb2dpY2FsT3BlcmF0b3I6Ok5vdDoKLSAgICAgICAgcmV0dXJu
ICFldmFsdWF0ZVF1ZXJ5KGNvbmRpdGlvbi5xdWVyaWVzLmZpcnN0KCksIGNvbnRhaW5lcik7Cisg
ICAgICAgIHJldHVybiAhZXZhbHVhdGVRdWVyeUluUGFyZW5zKGNvbmRpdGlvbi5xdWVyaWVzLmZp
cnN0KCksIGNvbnRhaW5lcik7CiAgICAgY2FzZSBDUTo6TG9naWNhbE9wZXJhdG9yOjpBbmQ6IHsK
ICAgICAgICAgYXV0byByZXN1bHQgPSBFdmFsdWF0aW9uUmVzdWx0OjpUcnVlOwogICAgICAgICBm
b3IgKGF1dG8gcXVlcnkgOiBjb25kaXRpb24ucXVlcmllcykgewotICAgICAgICAgICAgYXV0byBx
dWVyeVJlc3VsdCA9IGV2YWx1YXRlUXVlcnkocXVlcnksIGNvbnRhaW5lcik7CisgICAgICAgICAg
ICBhdXRvIHF1ZXJ5UmVzdWx0ID0gZXZhbHVhdGVRdWVyeUluUGFyZW5zKHF1ZXJ5LCBjb250YWlu
ZXIpOwogICAgICAgICAgICAgaWYgKHF1ZXJ5UmVzdWx0ID09IEV2YWx1YXRpb25SZXN1bHQ6OkZh
bHNlKQogICAgICAgICAgICAgICAgIHJldHVybiBFdmFsdWF0aW9uUmVzdWx0OjpGYWxzZTsKICAg
ICAgICAgICAgIGlmIChxdWVyeVJlc3VsdCA9PSBFdmFsdWF0aW9uUmVzdWx0OjpVbmtub3duKQpA
QCAtMTk4LDcgKzE5OCw3IEBAIGF1dG8gQ29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRl
Q29uZGl0aW9uKGNvbnN0IENvbmRpdGlvblR5cGUmIGNvbmRpdGlvbiwKICAgICBjYXNlIENROjpM
b2dpY2FsT3BlcmF0b3I6Ok9yOiB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gRXZhbHVhdGlvblJl
c3VsdDo6RmFsc2U7CiAgICAgICAgIGZvciAoYXV0byBxdWVyeSA6IGNvbmRpdGlvbi5xdWVyaWVz
KSB7Ci0gICAgICAgICAgICBhdXRvIHF1ZXJ5UmVzdWx0ID0gZXZhbHVhdGVRdWVyeShxdWVyeSwg
Y29udGFpbmVyKTsKKyAgICAgICAgICAgIGF1dG8gcXVlcnlSZXN1bHQgPSBldmFsdWF0ZVF1ZXJ5
SW5QYXJlbnMocXVlcnksIGNvbnRhaW5lcik7CiAgICAgICAgICAgICBpZiAocXVlcnlSZXN1bHQg
PT0gRXZhbHVhdGlvblJlc3VsdDo6VHJ1ZSkKICAgICAgICAgICAgICAgICByZXR1cm4gRXZhbHVh
dGlvblJlc3VsdDo6VHJ1ZTsKICAgICAgICAgICAgIGlmIChxdWVyeVJlc3VsdCA9PSBFdmFsdWF0
aW9uUmVzdWx0OjpVbmtub3duKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvQ29u
dGFpbmVyUXVlcnlFdmFsdWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1
ZXJ5RXZhbHVhdG9yLmgKaW5kZXggMWI3Mzc4ODAzNmNmLi5jNzcxOTlkYjc3NDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuaApAQCAtNDIsMTUg
KzQyLDE1IEBAIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIFNlbGVjdGlvbk1vZGUgOiBib29sIHsg
RWxlbWVudCwgUHNldWRvRWxlbWVudCB9OwogICAgIENvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yKGNv
bnN0IEVsZW1lbnQmLCBTZWxlY3Rpb25Nb2RlLCBTY29wZU9yZGluYWwsIFNlbGVjdG9yTWF0Y2hp
bmdTdGF0ZSopOwogCi0gICAgYm9vbCBldmFsdWF0ZShjb25zdCBGaWx0ZXJlZENvbnRhaW5lclF1
ZXJ5JikgY29uc3Q7CisgICAgYm9vbCBldmFsdWF0ZShjb25zdCBDUTo6Q29udGFpbmVyUXVlcnkm
KSBjb25zdDsKIAogICAgIHN0YXRpYyBjb25zdCBFbGVtZW50KiBzZWxlY3RDb250YWluZXIoT3B0
aW9uU2V0PENROjpBeGlzPiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBFbGVtZW50JiwgU2Vs
ZWN0aW9uTW9kZSA9IFNlbGVjdGlvbk1vZGU6OkVsZW1lbnQsIFNjb3BlT3JkaW5hbCA9IFNjb3Bl
T3JkaW5hbDo6RWxlbWVudCwgY29uc3QgQ2FjaGVkUXVlcnlDb250YWluZXJzKiA9IG51bGxwdHIp
OwogCiBwcml2YXRlOgogICAgIHN0cnVjdCBTZWxlY3RlZENvbnRhaW5lcjsKLSAgICBzdGQ6Om9w
dGlvbmFsPFNlbGVjdGVkQ29udGFpbmVyPiBzZWxlY3RDb250YWluZXIoY29uc3QgRmlsdGVyZWRD
b250YWluZXJRdWVyeSYpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8U2VsZWN0ZWRDb250YWlu
ZXI+IHNlbGVjdENvbnRhaW5lcihjb25zdCBDUTo6Q29udGFpbmVyUXVlcnkmKSBjb25zdDsKIAot
ICAgIEV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGVRdWVyeShjb25zdCBDUTo6Q29udGFpbmVyUXVl
cnkmLCBjb25zdCBTZWxlY3RlZENvbnRhaW5lciYpIGNvbnN0OworICAgIEV2YWx1YXRpb25SZXN1
bHQgZXZhbHVhdGVRdWVyeUluUGFyZW5zKGNvbnN0IENROjpRdWVyeUluUGFyZW5zJiwgY29uc3Qg
U2VsZWN0ZWRDb250YWluZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb25kaXRp
b25UeXBlPiBFdmFsdWF0aW9uUmVzdWx0IGV2YWx1YXRlQ29uZGl0aW9uKGNvbnN0IENvbmRpdGlv
blR5cGUmLCBjb25zdCBTZWxlY3RlZENvbnRhaW5lciYpIGNvbnN0OwogICAgIEV2YWx1YXRpb25S
ZXN1bHQgZXZhbHVhdGVTaXplRmVhdHVyZShjb25zdCBDUTo6U2l6ZUZlYXR1cmUmLCBjb25zdCBT
ZWxlY3RlZENvbnRhaW5lciYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKaW5kZXggMTZm
ZmEyOTA2Mzg2Li5mZTcxMTU3MGM0NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1J1bGVTZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKQEAgLTExMyw3
ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAgQ2FzY2FkZUxheWVyUHJpb3JpdHkgY2FzY2FkZUxheWVy
UHJpb3JpdHlGb3IoY29uc3QgUnVsZURhdGEmKSBjb25zdDsKIAogICAgIGJvb2wgaGFzQ29udGFp
bmVyUXVlcmllcygpIGNvbnN0IHsgcmV0dXJuICFtX2NvbnRhaW5lclF1ZXJpZXMuaXNFbXB0eSgp
OyB9Ci0gICAgVmVjdG9yPGNvbnN0IEZpbHRlcmVkQ29udGFpbmVyUXVlcnkqPiBjb250YWluZXJR
dWVyaWVzRm9yKGNvbnN0IFJ1bGVEYXRhJikgY29uc3Q7CisgICAgVmVjdG9yPGNvbnN0IENROjpD
b250YWluZXJRdWVyeSo+IGNvbnRhaW5lclF1ZXJpZXNGb3IoY29uc3QgUnVsZURhdGEmKSBjb25z
dDsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUnVsZVNldEJ1aWxkZXI7CkBAIC0yMzAs
MTcgKzIzMCwxNyBAQCBpbmxpbmUgQ2FzY2FkZUxheWVyUHJpb3JpdHkgUnVsZVNldDo6Y2FzY2Fk
ZUxheWVyUHJpb3JpdHlGb3IoY29uc3QgUnVsZURhdGEmIHJ1bAogICAgIHJldHVybiBjYXNjYWRl
TGF5ZXJQcmlvcml0eUZvcklkZW50aWZpZXIoaWRlbnRpZmllcik7CiB9CiAKLWlubGluZSBWZWN0
b3I8Y29uc3QgRmlsdGVyZWRDb250YWluZXJRdWVyeSo+IFJ1bGVTZXQ6OmNvbnRhaW5lclF1ZXJp
ZXNGb3IoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKSBjb25zdAoraW5saW5lIFZlY3Rvcjxjb25z
dCBDUTo6Q29udGFpbmVyUXVlcnkqPiBSdWxlU2V0Ojpjb250YWluZXJRdWVyaWVzRm9yKGNvbnN0
IFJ1bGVEYXRhJiBydWxlRGF0YSkgY29uc3QKIHsKICAgICBpZiAobV9jb250YWluZXJRdWVyeUlk
ZW50aWZpZXJGb3JSdWxlUG9zaXRpb24uc2l6ZSgpIDw9IHJ1bGVEYXRhLnBvc2l0aW9uKCkpCiAg
ICAgICAgIHJldHVybiB7IH07CiAKLSAgICBWZWN0b3I8Y29uc3QgRmlsdGVyZWRDb250YWluZXJR
dWVyeSo+IHF1ZXJpZXM7CisgICAgVmVjdG9yPGNvbnN0IENROjpDb250YWluZXJRdWVyeSo+IHF1
ZXJpZXM7CiAKICAgICBhdXRvIGlkZW50aWZpZXIgPSBtX2NvbnRhaW5lclF1ZXJ5SWRlbnRpZmll
ckZvclJ1bGVQb3NpdGlvbltydWxlRGF0YS5wb3NpdGlvbigpXTsKICAgICB3aGlsZSAoaWRlbnRp
ZmllcikgewogICAgICAgICBhdXRvJiBxdWVyeSA9IG1fY29udGFpbmVyUXVlcmllc1tpZGVudGlm
aWVyIC0gMV07Ci0gICAgICAgIHF1ZXJpZXMuYXBwZW5kKCZxdWVyeS5jb250YWluZXJSdWxlLT5m
aWx0ZXJlZFF1ZXJ5KCkpOworICAgICAgICBxdWVyaWVzLmFwcGVuZCgmcXVlcnkuY29udGFpbmVy
UnVsZS0+Y29udGFpbmVyUXVlcnkoKSk7CiAgICAgICAgIGlkZW50aWZpZXIgPSBxdWVyeS5wYXJl
bnQ7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvYXQtY29udGFp
bmVyLXBhcnNpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvYXQtY29udGFp
bmVyLXBhcnNpbmctZXhwZWN0ZWQudHh0CmluZGV4IDI5ZGFlODUyNDExYy4uZmU2ZmI4NzkyMTJh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9hdC1jb250YWluZXItcGFyc2luZy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvYXQtY29udGFpbmVyLXBhcnNp
bmctZXhwZWN0ZWQudHh0CkBAIC0yMSw3ICsyMSw3IEBAIFBBU1MgKG5vdCAod2lkdGg6IDEwMHB4
KSkKIFBBU1MgKCh3aWR0aDogMTAwcHgpIGFuZCAoaGVpZ2h0OiAxMDBweCkpCiBQQVNTICgoKHdp
ZHRoOiA0MHB4KSBvciAod2lkdGg6IDUwcHgpKSBhbmQgKGhlaWdodDogMTAwcHgpKQogUEFTUyAo
KHdpZHRoOiAxMDBweCkgYW5kICgoaGVpZ2h0OiA0MHB4KSBvciAoaGVpZ2h0OiA1MHB4KSkpCi1Q
QVNTICgoKHdpZHRoOiA0MHgpIGFuZCAoaGVpZ2h0OiA1MHB4KSkgb3IgKGhlaWdodDogMTAwcHgp
KQorUEFTUyAoKCh3aWR0aDogNDBweCkgYW5kIChoZWlnaHQ6IDUwcHgpKSBvciAoaGVpZ2h0OiAx
MDBweCkpCiBQQVNTICgod2lkdGg6IDUwcHgpIG9yICgod2lkdGg6IDQwcHgpIGFuZCAoaGVpZ2h0
OiA1MHB4KSkpCiBQQVNTICgod2lkdGg6IDEwMHB4KSBhbmQgKG5vdCAoaGVpZ2h0OiAxMDBweCkp
KQogUEFTUyAod2lkdGggPCAxMDBweCkKQEAgLTQ3LDYgKzQ3LDkgQEAgUEFTUyAod2lkdGggPCBj
YWxjKDEwcHggKyAxMGVtKSkKIFBBU1MgKHdpZHRoIDwgbWF4KDEwcHgsIDEwZW0pKQogUEFTUyAo
Y2FsYygxMHB4ICsgMTBlbSkgPCB3aWR0aCkKIFBBU1MgKGNhbGMoMTBweCArIDEwZW0pIDwgd2lk
dGggPCBtYXgoMzBweCwgMzBlbSkpCitQQVNTICh3aWR0aDogMTAwcHgpIGFuZCAoaGVpZ2h0OiAx
MDBweCkKK1BBU1MgKHdpZHRoOiAxMDBweCkgb3IgKGhlaWdodDogMTAwcHgpCitQQVNTIG5vdCAo
d2lkdGg6IDEwMHB4KQogUEFTUyBmb28od2lkdGgpCiBQQVNTIHNpemUod2lkdGgpCiBQQVNTIChh
c2RmKQpAQCAtNzQsMzIgKzc3LDMxIEBAIFBBU1Mgc2NyZWVuIG9yICh3aWR0aDogMTAwcHgpCiBQ
QVNTIG5vdCBzY3JlZW4gYW5kICh3aWR0aDogMTAwcHgpCiBQQVNTIG5vdCBzY3JlZW4gb3IgKHdp
ZHRoOiAxMDBweCkKIFBBU1MgKHdpZHRoOiAxMDBweCksIChoZWlnaHQ6IDEwMHB4KQotUEFTUyAo
d2lkdGg6IDEwMHB4KSBhbmQgKGhlaWdodDogMTAwcHgpCi1QQVNTICh3aWR0aDogMTAwcHgpIG9y
IChoZWlnaHQ6IDEwMHB4KQotUEFTUyBub3QgKHdpZHRoOiAxMDBweCkKIFBBU1MgZm9vICh3aWR0
aDogMTAwcHgpCi1QQVNTIENvbnRhaW5lciBzZWxlY3RvcjogZm9vCi1QQVNTIENvbnRhaW5lciBz
ZWxlY3RvcjogIGZvbwotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6ICBmb28KLVBBU1MgQ29udGFp
bmVyIHNlbGVjdG9yOiBmb28gZm9vCi1QQVNTIENvbnRhaW5lciBzZWxlY3RvcjogMXB4Ci1QQVNT
IENvbnRhaW5lciBzZWxlY3RvcjogNTBnaWwKLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiBuYW1l
KGZvbykKLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiB0eXBlKGlubGluZS1zaXplKQotUEFTUyBD
b250YWluZXIgc2VsZWN0b3I6ICJmb28iCi1QQVNTIENvbnRhaW5lciBzZWxlY3RvcjogImluaGVy
aXQiCi1QQVNTIENvbnRhaW5lciBzZWxlY3Rvcjogbm9uZQotUEFTUyBDb250YWluZXIgc2VsZWN0
b3I6IE5vbmUKLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiBub3JtYWwKLVBBU1MgQ29udGFpbmVy
IHNlbGVjdG9yOiBOb3JtYWwKLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiBhdXRvCi1QQVNTIENv
bnRhaW5lciBzZWxlY3RvcjogQXV0bwotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6IGFuZAotUEFT
UyBDb250YWluZXIgc2VsZWN0b3I6IG9yCi1QQVNTIENvbnRhaW5lciBzZWxlY3Rvcjogbm90Ci1Q
QVNTIENvbnRhaW5lciBzZWxlY3RvcjogQW5kCi1QQVNTIENvbnRhaW5lciBzZWxlY3Rvcjogb1IK
LVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiBuT3QKK1BBU1MgbmFtZSBub3QgKHdpZHRoIDw9IDUw
MHB4KQorUEFTUyBub3QgKHdpZHRoIDw9IDUwMHB4KQorUEFTUyBDb250YWluZXIgbmFtZTogZm9v
CitQQVNTIENvbnRhaW5lciBuYW1lOiAgZm9vCitQQVNTIENvbnRhaW5lciBuYW1lOiAgZm9vCitQ
QVNTIENvbnRhaW5lciBuYW1lOiBmb28gZm9vCitQQVNTIENvbnRhaW5lciBuYW1lOiAxcHgKK1BB
U1MgQ29udGFpbmVyIG5hbWU6IDUwZ2lsCitQQVNTIENvbnRhaW5lciBuYW1lOiBuYW1lKGZvbykK
K1BBU1MgQ29udGFpbmVyIG5hbWU6IHR5cGUoaW5saW5lLXNpemUpCitQQVNTIENvbnRhaW5lciBu
YW1lOiAiZm9vIgorUEFTUyBDb250YWluZXIgbmFtZTogImluaGVyaXQiCitQQVNTIENvbnRhaW5l
ciBuYW1lOiBub25lCitQQVNTIENvbnRhaW5lciBuYW1lOiBOb25lCitQQVNTIENvbnRhaW5lciBu
YW1lOiBub3JtYWwKK1BBU1MgQ29udGFpbmVyIG5hbWU6IE5vcm1hbAorUEFTUyBDb250YWluZXIg
bmFtZTogYXV0bworUEFTUyBDb250YWluZXIgbmFtZTogQXV0bworUEFTUyBDb250YWluZXIgbmFt
ZTogYW5kCitQQVNTIENvbnRhaW5lciBuYW1lOiBvcgorUEFTUyBDb250YWluZXIgbmFtZTogbm90
CitQQVNTIENvbnRhaW5lciBuYW1lOiBBbmQKK1BBU1MgQ29udGFpbmVyIG5hbWU6IG9SCitQQVNT
IENvbnRhaW5lciBuYW1lOiBuT3QKIEZBSUwgc3R5bGUoLS1teS1wcm9wOiBmb28pIGFzc2VydF9l
cXVhbHM6IGV4cGVjdGVkICJ0cnVlIiBidXQgZ290ICIiCiBGQUlMIHN0eWxlKC0tbXktcHJvcDog
Zm9vIC0gYmFyICgpKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidHJ1ZSIgYnV0IGdvdCAiIgog
RkFJTCBzdHlsZShub3QgKCgtLWZvbzogY2FsYygxMHB4ICsgMmVtKSkgYW5kICgoLS1mb286IHVy
bCh4KSkpKSkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRydWUiIGJ1dCBnb3QgIiIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2F0LWNvbnRhaW5lci1wYXJzaW5nLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFp
bi9jb250YWluZXItcXVlcmllcy9hdC1jb250YWluZXItcGFyc2luZy5odG1sCmluZGV4IDYyNzhm
ODgyMTZmMy4uM2NmN2YzYTAyNTFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9h
dC1jb250YWluZXItcGFyc2luZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2F0LWNv
bnRhaW5lci1wYXJzaW5nLmh0bWwKQEAgLTIyLDE3MCArMjIsMTgxIEBACiAgICAgcmV0dXJuIHN0
eWxlOwogICB9CiAKLSAgZnVuY3Rpb24gdGVzdF9xdWVyeV9pbnZhbGlkKHF1ZXJ5KSB7CisgIGZ1
bmN0aW9uIHRlc3RfcnVsZV92YWxpZChxdWVyeSkgewogICAgIHRlc3QodCA9PiB7CiAgICAgICB0
LmFkZF9jbGVhbnVwKGNsZWFudXBfbWFpbik7Ci0gICAgICBsZXQgc3R5bGUgPSBzZXRfc3R5bGUo
YEBjb250YWluZXIgbmFtZSAke3F1ZXJ5fSB7fWApOwotICAgICAgYXNzZXJ0X2VxdWFscyhzdHls
ZS5zaGVldC5ydWxlcy5sZW5ndGgsIDApOworICAgICAgbGV0IHN0eWxlID0gc2V0X3N0eWxlKGBA
Y29udGFpbmVyICR7cXVlcnl9IHt9YCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHN0eWxlLnNoZWV0
LnJ1bGVzLmxlbmd0aCwgMSk7CiAgICAgfSwgcXVlcnkpOwogICB9CiAKLSAgLy8gVGVzdHMgdGhh
dCAxKSB0aGUgcXVlcnkgcGFyc2VzLCBhbmQgMikgaXMgZWl0aGVyICJ1bmtub3duIiBvciBub3Qs
IGFzCisgIGZ1bmN0aW9uIHRlc3RfY29uZGl0aW9uX2ludmFsaWQoY29uZGl0aW9uKSB7CisgICAg
dGVzdCh0ID0+IHsKKyAgICAgIHQuYWRkX2NsZWFudXAoY2xlYW51cF9tYWluKTsKKyAgICAgIGxl
dCBzdHlsZSA9IHNldF9zdHlsZShgQGNvbnRhaW5lciBuYW1lICR7Y29uZGl0aW9ufSB7fWApOwor
ICAgICAgYXNzZXJ0X2VxdWFscyhzdHlsZS5zaGVldC5ydWxlcy5sZW5ndGgsIDApOworICAgIH0s
IGNvbmRpdGlvbik7CisgIH0KKworICAvLyBUZXN0cyB0aGF0IDEpIHRoZSBjb25kaXRpb24gcGFy
c2VzLCBhbmQgMikgaXMgZWl0aGVyICJ1bmtub3duIiBvciBub3QsIGFzCiAgIC8vIHNwZWNpZmll
ZC4KLSAgZnVuY3Rpb24gdGVzdF9xdWVyeV92YWxpZChxdWVyeSwgdW5rbm93bikgeworICBmdW5j
dGlvbiB0ZXN0X2NvbmRpdGlvbl92YWxpZChjb25kaXRpb24sIHVua25vd24pIHsKICAgICB0ZXN0
KHQgPT4gewogICAgICAgdC5hZGRfY2xlYW51cChjbGVhbnVwX21haW4pOwogICAgICAgbGV0IHN0
eWxlID0gc2V0X3N0eWxlKGAKLSAgICAgICAgQGNvbnRhaW5lciBuYW1lICR7cXVlcnl9IHt9Ci0g
ICAgICAgIEBjb250YWluZXIgbmFtZSAoJHtxdWVyeX0gb3IgKG5vdCAke3F1ZXJ5fSkpIHsgbWFp
biB7IC0tbWF0Y2g6dHJ1ZTsgfSB9CisgICAgICAgIEBjb250YWluZXIgbmFtZSAke2NvbmRpdGlv
bn0ge30KKyAgICAgICAgQGNvbnRhaW5lciBuYW1lICgke2NvbmRpdGlvbn0pIG9yIChub3QgKCR7
Y29uZGl0aW9ufSkpIHsgbWFpbiB7IC0tbWF0Y2g6dHJ1ZTsgfSB9CiAgICAgICBgKTsKICAgICAg
IGFzc2VydF9lcXVhbHMoc3R5bGUuc2hlZXQucnVsZXMubGVuZ3RoLCAyKTsKICAgICAgIGNvbnN0
IGV4cGVjdGVkID0gdW5rbm93biA/ICcnIDogJ3RydWUnOwogICAgICAgYXNzZXJ0X2VxdWFscyhn
ZXRDb21wdXRlZFN0eWxlKG1haW4pLmdldFByb3BlcnR5VmFsdWUoJy0tbWF0Y2gnKSwgZXhwZWN0
ZWQpOwotICAgIH0sIHF1ZXJ5KTsKKyAgICB9LCBjb25kaXRpb24pOwogICB9CiAKLSAgZnVuY3Rp
b24gdGVzdF9xdWVyeV9rbm93bihxdWVyeSkgewotICAgIHRlc3RfcXVlcnlfdmFsaWQocXVlcnks
IGZhbHNlIC8qIHVua25vd24gKi8pOworICBmdW5jdGlvbiB0ZXN0X2NvbmRpdGlvbl9rbm93bihj
b25kaXRpb24pIHsKKyAgICB0ZXN0X2NvbmRpdGlvbl92YWxpZChjb25kaXRpb24sIGZhbHNlIC8q
IHVua25vd24gKi8pOwogICB9CiAKLSAgZnVuY3Rpb24gdGVzdF9xdWVyeV91bmtub3duKHF1ZXJ5
KSB7Ci0gICAgdGVzdF9xdWVyeV92YWxpZChxdWVyeSwgdHJ1ZSAvKiB1bmtub3duICovKTsKKyAg
ZnVuY3Rpb24gdGVzdF9jb25kaXRpb25fdW5rbm93bihjb25kaXRpb24pIHsKKyAgICB0ZXN0X2Nv
bmRpdGlvbl92YWxpZChjb25kaXRpb24sIHRydWUgLyogdW5rbm93biAqLyk7CiAgIH0KIAotICBm
dW5jdGlvbiB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKGNvbnRhaW5lcl9zZWxlY3Rv
cikgeworICBmdW5jdGlvbiB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQoY29udGFpbmVyX25h
bWUpIHsKICAgICB0ZXN0KHQgPT4gewogICAgICAgdC5hZGRfY2xlYW51cChjbGVhbnVwX21haW4p
OwotICAgICAgbGV0IHN0eWxlID0gc2V0X3N0eWxlKGBAY29udGFpbmVyICR7Y29udGFpbmVyX3Nl
bGVjdG9yfSAod2lkdGgpIHt9YCk7CisgICAgICBsZXQgc3R5bGUgPSBzZXRfc3R5bGUoYEBjb250
YWluZXIgJHtjb250YWluZXJfbmFtZX0gbm90ICh3aWR0aCkge31gKTsKICAgICAgIGFzc2VydF9l
cXVhbHMoc3R5bGUuc2hlZXQucnVsZXMubGVuZ3RoLCAwKTsKLSAgICB9LCBgQ29udGFpbmVyIHNl
bGVjdG9yOiAke2NvbnRhaW5lcl9zZWxlY3Rvcn1gKTsKKyAgICB9LCBgQ29udGFpbmVyIG5hbWU6
ICR7Y29udGFpbmVyX25hbWV9YCk7CiAgIH0KIAotICBmdW5jdGlvbiB0ZXN0X2NvbnRhaW5lcl9z
ZWxlY3Rvcl92YWxpZChjb250YWluZXJfc2VsZWN0b3IpIHsKKyAgZnVuY3Rpb24gdGVzdF9jb250
YWluZXJfbmFtZV92YWxpZChjb250YWluZXJfbmFtZSkgewogICAgIHRlc3QodCA9PiB7CiAgICAg
ICB0LmFkZF9jbGVhbnVwKGNsZWFudXBfbWFpbik7Ci0gICAgICBsZXQgc3R5bGUgPSBzZXRfc3R5
bGUoYEBjb250YWluZXIgJHtjb250YWluZXJfc2VsZWN0b3J9ICh3aWR0aCkge31gKTsKKyAgICAg
IGxldCBzdHlsZSA9IHNldF9zdHlsZShgQGNvbnRhaW5lciAke2NvbnRhaW5lcl9uYW1lfSBub3Qg
KHdpZHRoKSB7fWApOwogICAgICAgYXNzZXJ0X2VxdWFscyhzdHlsZS5zaGVldC5ydWxlcy5sZW5n
dGgsIDEpOwotICAgIH0sIGBDb250YWluZXIgc2VsZWN0b3I6ICR7Y29udGFpbmVyX3NlbGVjdG9y
fWApOworICAgIH0sIGBDb250YWluZXIgbmFtZTogJHtjb250YWluZXJfbmFtZX1gKTsKICAgfQog
Ci0gIHRlc3RfcXVlcnlfa25vd24oJyh3aWR0aCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKG1p
bi13aWR0aDogMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcobWF4LXdpZHRoOiAwcHgpJyk7
Ci0gIHRlc3RfcXVlcnlfa25vd24oJyhoZWlnaHQpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyht
aW4taGVpZ2h0OiAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyhtYXgtaGVpZ2h0OiAwcHgp
Jyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyhhc3BlY3QtcmF0aW8pJyk7Ci0gIHRlc3RfcXVlcnlf
a25vd24oJyhtaW4tYXNwZWN0LXJhdGlvOiAxLzIpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyht
YXgtYXNwZWN0LXJhdGlvOiAxLzIpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyhvcmllbnRhdGlv
bjogcG9ydHJhaXQpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyhpbmxpbmUtc2l6ZSknKTsKLSAg
dGVzdF9xdWVyeV9rbm93bignKG1pbi1pbmxpbmUtc2l6ZTogMHB4KScpOwotICB0ZXN0X3F1ZXJ5
X2tub3duKCcobWF4LWlubGluZS1zaXplOiAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyhi
bG9jay1zaXplKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcobWluLWJsb2NrLXNpemU6IDBweCkn
KTsKLSAgdGVzdF9xdWVyeV9rbm93bignKG1heC1ibG9jay1zaXplOiAwcHgpJyk7Ci0KLSAgdGVz
dF9xdWVyeV9rbm93bignKHdpZHRoOiAxMDBweCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKCh3
aWR0aDogMTAwcHgpKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcobm90ICh3aWR0aDogMTAwcHgp
KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoKHdpZHRoOiAxMDBweCkgYW5kIChoZWlnaHQ6IDEw
MHB4KSknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKCgod2lkdGg6IDQwcHgpIG9yICh3aWR0aDog
NTBweCkpIGFuZCAoaGVpZ2h0OiAxMDBweCkpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJygod2lk
dGg6IDEwMHB4KSBhbmQgKChoZWlnaHQ6IDQwcHgpIG9yIChoZWlnaHQ6IDUwcHgpKSknKTsKLSAg
dGVzdF9xdWVyeV9rbm93bignKCgod2lkdGg6IDQweCkgYW5kIChoZWlnaHQ6IDUwcHgpKSBvciAo
aGVpZ2h0OiAxMDBweCkpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJygod2lkdGg6IDUwcHgpIG9y
ICgod2lkdGg6IDQwcHgpIGFuZCAoaGVpZ2h0OiA1MHB4KSkpJyk7Ci0gIHRlc3RfcXVlcnlfa25v
d24oJygod2lkdGg6IDEwMHB4KSBhbmQgKG5vdCAoaGVpZ2h0OiAxMDBweCkpKScpOwotICB0ZXN0
X3F1ZXJ5X2tub3duKCcod2lkdGggPCAxMDBweCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKHdp
ZHRoIDw9IDEwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcod2lkdGggPSAxMDBweCknKTsK
LSAgdGVzdF9xdWVyeV9rbm93bignKHdpZHRoID4gMTAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfa25v
d24oJyh3aWR0aCA+PSAxMDBweCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKDEwMHB4IDwgd2lk
dGgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJygxMDBweCA8PSB3aWR0aCknKTsKLSAgdGVzdF9x
dWVyeV9rbm93bignKDEwMHB4ID0gd2lkdGgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJygxMDBw
eCA+IHdpZHRoKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoMTAwcHggPj0gd2lkdGgpJyk7Ci0g
IHRlc3RfcXVlcnlfa25vd24oJygxMDBweCA8IHdpZHRoIDwgMjAwcHgpJyk7Ci0gIHRlc3RfcXVl
cnlfa25vd24oJygxMDBweCA8IHdpZHRoIDw9IDIwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tub3du
KCcoMTAwcHggPD0gd2lkdGggPCAyMDBweCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKDEwMHB4
ID4gd2lkdGggPiAyMDBweCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKDEwMHB4ID4gd2lkdGgg
Pj0gMjAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJygxMDBweCA+PSB3aWR0aCA+IDIwMHB4
KScpOwotCi0gIHRlc3RfcXVlcnlfa25vd24oJyh3aWR0aDogY2FsYygxMHB4KSknKTsKLSAgdGVz
dF9xdWVyeV9rbm93bignKHdpZHRoOiBjYWxjKDEwZW0pKScpOwotICB0ZXN0X3F1ZXJ5X2tub3du
KCcod2lkdGg6IGNhbGMoMTBweCArIDEwZW0pKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcod2lk
dGggPCBjYWxjKDEwcHggKyAxMGVtKSknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKHdpZHRoIDwg
bWF4KDEwcHgsIDEwZW0pKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoY2FsYygxMHB4ICsgMTBl
bSkgPCB3aWR0aCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKGNhbGMoMTBweCArIDEwZW0pIDwg
d2lkdGggPCBtYXgoMzBweCwgMzBlbSkpJyk7Ci0KLSAgdGVzdF9xdWVyeV91bmtub3duKCdmb28o
d2lkdGgpJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignc2l6ZSh3aWR0aCknKTsKLSAgdGVzdF9x
dWVyeV91bmtub3duKCcoYXNkZiknKTsKLSAgdGVzdF9xdWVyeV91bmtub3duKCcocmVzb2x1dGlv
biA+IDEwMGRwaSknKTsKLSAgdGVzdF9xdWVyeV91bmtub3duKCcocmVzb2x1dGlvbjogMTUwZHBp
KScpOwotICB0ZXN0X3F1ZXJ5X3Vua25vd24oJyhjb2xvciknKTsKLSAgdGVzdF9xdWVyeV91bmtu
b3duKCcobWluLWNvbG9yOiAxKScpOwotICB0ZXN0X3F1ZXJ5X3Vua25vd24oJyhjb2xvci1pbmRl
eCA+PSAxKScpOwotICB0ZXN0X3F1ZXJ5X3Vua25vd24oJ3NpemUoZ3JpZCknKTsKLSAgdGVzdF9x
dWVyeV91bmtub3duKCcoZ3JpZCknKTsKLSAgdGVzdF9xdWVyeV91bmtub3duKCcod2lkdGggPT0g
MTAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignKDEwMHB4ID09IHdpZHRoKScpOwotICB0
ZXN0X3F1ZXJ5X3Vua25vd24oJygxMDBweCA9IHdpZHRoID0gMjAwcHgpJyk7Ci0gIHRlc3RfcXVl
cnlfdW5rbm93bignKDEwMHB4IDwgd2lkdGggPiAyMDBweCknKTsKLSAgdGVzdF9xdWVyeV91bmtu
b3duKCcoMTAwcHggPD0gd2lkdGggPj0gMjAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bign
KDEwMHB4IDw9IHdpZHRoID4gMjAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignKDEwMHB4
IDwgd2lkdGggPj0gMjAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignKDEwMHB4IDogd2lk
dGggOiAyMDBweCknKTsKLQotICB0ZXN0X3F1ZXJ5X2ludmFsaWQoJ3NjcmVlbicpOwotICB0ZXN0
X3F1ZXJ5X2ludmFsaWQoJ3ByaW50Jyk7Ci0gIHRlc3RfcXVlcnlfaW52YWxpZCgnbm90IHByaW50
Jyk7Ci0gIHRlc3RfcXVlcnlfaW52YWxpZCgnb25seSBwcmludCcpOwotICB0ZXN0X3F1ZXJ5X2lu
dmFsaWQoJ3NjcmVlbiBhbmQgKHdpZHRoOiAxMDBweCknKTsKLSAgdGVzdF9xdWVyeV9pbnZhbGlk
KCdzY3JlZW4gb3IgKHdpZHRoOiAxMDBweCknKTsKLSAgdGVzdF9xdWVyeV9pbnZhbGlkKCdub3Qg
c2NyZWVuIGFuZCAod2lkdGg6IDEwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2ludmFsaWQoJ25vdCBz
Y3JlZW4gb3IgKHdpZHRoOiAxMDBweCknKTsKLSAgdGVzdF9xdWVyeV9pbnZhbGlkKCcod2lkdGg6
IDEwMHB4KSwgKGhlaWdodDogMTAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfaW52YWxpZCgnKHdpZHRo
OiAxMDBweCkgYW5kIChoZWlnaHQ6IDEwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2ludmFsaWQoJyh3
aWR0aDogMTAwcHgpIG9yIChoZWlnaHQ6IDEwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2ludmFsaWQo
J25vdCAod2lkdGg6IDEwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2ludmFsaWQoJ2ZvbyAod2lkdGg6
IDEwMHB4KScpOwotCi0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX3ZhbGlkKCdmb28nKTsKLSAg
dGVzdF9jb250YWluZXJfc2VsZWN0b3JfdmFsaWQoJyBmb28nKTsKLSAgdGVzdF9jb250YWluZXJf
c2VsZWN0b3JfdmFsaWQoJyBmb28gJyk7Ci0KLSAgdGVzdF9jb250YWluZXJfc2VsZWN0b3JfaW52
YWxpZCgnZm9vIGZvbycpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCcxcHgn
KTsKLSAgdGVzdF9jb250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnNTBnaWwnKTsKLSAgdGVzdF9j
b250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnbmFtZShmb28pJyk7Ci0gIHRlc3RfY29udGFpbmVy
X3NlbGVjdG9yX2ludmFsaWQoJ3R5cGUoaW5saW5lLXNpemUpJyk7Ci0gIHRlc3RfY29udGFpbmVy
X3NlbGVjdG9yX2ludmFsaWQoJyJmb28iJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX2lu
dmFsaWQoJyJpbmhlcml0IicpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCdu
b25lJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX2ludmFsaWQoJ05vbmUnKTsKLSAgdGVz
dF9jb250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnbm9ybWFsJyk7Ci0gIHRlc3RfY29udGFpbmVy
X3NlbGVjdG9yX2ludmFsaWQoJ05vcm1hbCcpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9p
bnZhbGlkKCdhdXRvJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX2ludmFsaWQoJ0F1dG8n
KTsKLSAgdGVzdF9jb250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnYW5kJyk7Ci0gIHRlc3RfY29u
dGFpbmVyX3NlbGVjdG9yX2ludmFsaWQoJ29yJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9y
X2ludmFsaWQoJ25vdCcpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCdBbmQn
KTsKLSAgdGVzdF9jb250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnb1InKTsKLSAgdGVzdF9jb250
YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnbk90Jyk7Ci0KLSAgdGVzdF9xdWVyeV9rbm93bignc3R5
bGUoLS1teS1wcm9wOiBmb28pJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJ3N0eWxlKC0tbXktcHJv
cDogZm9vIC0gYmFyICgpKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCdzdHlsZShub3QgKCgtLWZv
bzogY2FsYygxMHB4ICsgMmVtKSkgYW5kICgoLS1mb286IHVybCh4KSkpKSknKTsKLSAgdGVzdF9x
dWVyeV9rbm93bignc3R5bGUoKC0tZm9vOiBiYXIpIG9yICgtLWJhcjogMTBweCkpJyk7Ci0gIHRl
c3RfcXVlcnlfa25vd24oJ3N0eWxlKC0tZm9vOiBiYXIgIWltcG9ydGFudCknKTsKLSAgdGVzdF9x
dWVyeV9rbm93bignc3R5bGUoLS1teS1wcm9wOiknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignc3R5
bGUoLS1teS1wcm9wOiApJyk7Ci0KLSAgdGVzdF9xdWVyeV91bmtub3duKCdzdHlsZSgtLWZvbzog
YmFyOyknKTsKLSAgdGVzdF9xdWVyeV91bmtub3duKCdzdHlsZSgtLWZvbyknKTsKLSAgdGVzdF9x
dWVyeV91bmtub3duKCdzdHlsZShzdHlsZSgtLWZvbzogYmFyKSknKTsKKyAgdGVzdF9jb25kaXRp
b25fa25vd24oJyh3aWR0aCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyhtaW4td2lkdGg6
IDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyhtYXgtd2lkdGg6IDBweCknKTsKKyAg
dGVzdF9jb25kaXRpb25fa25vd24oJyhoZWlnaHQpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3du
KCcobWluLWhlaWdodDogMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKG1heC1oZWln
aHQ6IDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyhhc3BlY3QtcmF0aW8pJyk7Cisg
IHRlc3RfY29uZGl0aW9uX2tub3duKCcobWluLWFzcGVjdC1yYXRpbzogMS8yKScpOworICB0ZXN0
X2NvbmRpdGlvbl9rbm93bignKG1heC1hc3BlY3QtcmF0aW86IDEvMiknKTsKKyAgdGVzdF9jb25k
aXRpb25fa25vd24oJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyk7CisgIHRlc3RfY29uZGl0aW9u
X2tub3duKCcoaW5saW5lLXNpemUpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcobWluLWlu
bGluZS1zaXplOiAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcobWF4LWlubGluZS1z
aXplOiAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoYmxvY2stc2l6ZSknKTsKKyAg
dGVzdF9jb25kaXRpb25fa25vd24oJyhtaW4tYmxvY2stc2l6ZTogMHB4KScpOworICB0ZXN0X2Nv
bmRpdGlvbl9rbm93bignKG1heC1ibG9jay1zaXplOiAwcHgpJyk7CisKKyAgdGVzdF9jb25kaXRp
b25fa25vd24oJyh3aWR0aDogMTAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoKHdp
ZHRoOiAxMDBweCkpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcobm90ICh3aWR0aDogMTAw
cHgpKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKCh3aWR0aDogMTAwcHgpIGFuZCAoaGVp
Z2h0OiAxMDBweCkpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoKCh3aWR0aDogNDBweCkg
b3IgKHdpZHRoOiA1MHB4KSkgYW5kIChoZWlnaHQ6IDEwMHB4KSknKTsKKyAgdGVzdF9jb25kaXRp
b25fa25vd24oJygod2lkdGg6IDEwMHB4KSBhbmQgKChoZWlnaHQ6IDQwcHgpIG9yIChoZWlnaHQ6
IDUwcHgpKSknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJygoKHdpZHRoOiA0MHB4KSBhbmQg
KGhlaWdodDogNTBweCkpIG9yIChoZWlnaHQ6IDEwMHB4KSknKTsKKyAgdGVzdF9jb25kaXRpb25f
a25vd24oJygod2lkdGg6IDUwcHgpIG9yICgod2lkdGg6IDQwcHgpIGFuZCAoaGVpZ2h0OiA1MHB4
KSkpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoKHdpZHRoOiAxMDBweCkgYW5kIChub3Qg
KGhlaWdodDogMTAwcHgpKSknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyh3aWR0aCA8IDEw
MHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoIDw9IDEwMHB4KScpOworICB0
ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoID0gMTAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9u
X2tub3duKCcod2lkdGggPiAxMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyh3aWR0
aCA+PSAxMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJygxMDBweCA8IHdpZHRoKScp
OworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKDEwMHB4IDw9IHdpZHRoKScpOworICB0ZXN0X2Nv
bmRpdGlvbl9rbm93bignKDEwMHB4ID0gd2lkdGgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3du
KCcoMTAwcHggPiB3aWR0aCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJygxMDBweCA+PSB3
aWR0aCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJygxMDBweCA8IHdpZHRoIDwgMjAwcHgp
Jyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoMTAwcHggPCB3aWR0aCA8PSAyMDBweCknKTsK
KyAgdGVzdF9jb25kaXRpb25fa25vd24oJygxMDBweCA8PSB3aWR0aCA8IDIwMHB4KScpOworICB0
ZXN0X2NvbmRpdGlvbl9rbm93bignKDEwMHB4ID4gd2lkdGggPiAyMDBweCknKTsKKyAgdGVzdF9j
b25kaXRpb25fa25vd24oJygxMDBweCA+IHdpZHRoID49IDIwMHB4KScpOworICB0ZXN0X2NvbmRp
dGlvbl9rbm93bignKDEwMHB4ID49IHdpZHRoID4gMjAwcHgpJyk7CisKKyAgdGVzdF9jb25kaXRp
b25fa25vd24oJyh3aWR0aDogY2FsYygxMHB4KSknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24o
Jyh3aWR0aDogY2FsYygxMGVtKSknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyh3aWR0aDog
Y2FsYygxMHB4ICsgMTBlbSkpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcod2lkdGggPCBj
YWxjKDEwcHggKyAxMGVtKSknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyh3aWR0aCA8IG1h
eCgxMHB4LCAxMGVtKSknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyhjYWxjKDEwcHggKyAx
MGVtKSA8IHdpZHRoKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKGNhbGMoMTBweCArIDEw
ZW0pIDwgd2lkdGggPCBtYXgoMzBweCwgMzBlbSkpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3du
KCcod2lkdGg6IDEwMHB4KSBhbmQgKGhlaWdodDogMTAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9u
X2tub3duKCcod2lkdGg6IDEwMHB4KSBvciAoaGVpZ2h0OiAxMDBweCknKTsKKyAgdGVzdF9jb25k
aXRpb25fa25vd24oJ25vdCAod2lkdGg6IDEwMHB4KScpOworCisgIHRlc3RfY29uZGl0aW9uX3Vu
a25vd24oJ2Zvbyh3aWR0aCknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignc2l6ZSh3aWR0
aCknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignKGFzZGYpJyk7CisgIHRlc3RfY29uZGl0
aW9uX3Vua25vd24oJyhyZXNvbHV0aW9uID4gMTAwZHBpKScpOworICB0ZXN0X2NvbmRpdGlvbl91
bmtub3duKCcocmVzb2x1dGlvbjogMTUwZHBpKScpOworICB0ZXN0X2NvbmRpdGlvbl91bmtub3du
KCcoY29sb3IpJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJyhtaW4tY29sb3I6IDEpJyk7
CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJyhjb2xvci1pbmRleCA+PSAxKScpOworICB0ZXN0
X2NvbmRpdGlvbl91bmtub3duKCdzaXplKGdyaWQpJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25v
d24oJyhncmlkKScpOworICB0ZXN0X2NvbmRpdGlvbl91bmtub3duKCcod2lkdGggPT0gMTAwcHgp
Jyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJygxMDBweCA9PSB3aWR0aCknKTsKKyAgdGVz
dF9jb25kaXRpb25fdW5rbm93bignKDEwMHB4ID0gd2lkdGggPSAyMDBweCknKTsKKyAgdGVzdF9j
b25kaXRpb25fdW5rbm93bignKDEwMHB4IDwgd2lkdGggPiAyMDBweCknKTsKKyAgdGVzdF9jb25k
aXRpb25fdW5rbm93bignKDEwMHB4IDw9IHdpZHRoID49IDIwMHB4KScpOworICB0ZXN0X2NvbmRp
dGlvbl91bmtub3duKCcoMTAwcHggPD0gd2lkdGggPiAyMDBweCknKTsKKyAgdGVzdF9jb25kaXRp
b25fdW5rbm93bignKDEwMHB4IDwgd2lkdGggPj0gMjAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9u
X3Vua25vd24oJygxMDBweCA6IHdpZHRoIDogMjAwcHgpJyk7CisKKyAgdGVzdF9jb25kaXRpb25f
aW52YWxpZCgnc2NyZWVuJyk7CisgIHRlc3RfY29uZGl0aW9uX2ludmFsaWQoJ3ByaW50Jyk7Cisg
IHRlc3RfY29uZGl0aW9uX2ludmFsaWQoJ25vdCBwcmludCcpOworICB0ZXN0X2NvbmRpdGlvbl9p
bnZhbGlkKCdvbmx5IHByaW50Jyk7CisgIHRlc3RfY29uZGl0aW9uX2ludmFsaWQoJ3NjcmVlbiBh
bmQgKHdpZHRoOiAxMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25faW52YWxpZCgnc2NyZWVuIG9y
ICh3aWR0aDogMTAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2ludmFsaWQoJ25vdCBzY3JlZW4g
YW5kICh3aWR0aDogMTAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2ludmFsaWQoJ25vdCBzY3Jl
ZW4gb3IgKHdpZHRoOiAxMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25faW52YWxpZCgnKHdpZHRo
OiAxMDBweCksIChoZWlnaHQ6IDEwMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl9pbnZhbGlkKCdm
b28gKHdpZHRoOiAxMDBweCknKTsKKworICB0ZXN0X3J1bGVfdmFsaWQoJ25hbWUgbm90ICh3aWR0
aCA8PSA1MDBweCknKTsKKyAgdGVzdF9ydWxlX3ZhbGlkKCdub3QgKHdpZHRoIDw9IDUwMHB4KScp
OworCisgIHRlc3RfY29udGFpbmVyX25hbWVfdmFsaWQoJ2ZvbycpOworICB0ZXN0X2NvbnRhaW5l
cl9uYW1lX3ZhbGlkKCcgZm9vJyk7CisgIHRlc3RfY29udGFpbmVyX25hbWVfdmFsaWQoJyBmb28g
Jyk7CisKKyAgdGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCdmb28gZm9vJyk7CisgIHRlc3Rf
Y29udGFpbmVyX25hbWVfaW52YWxpZCgnMXB4Jyk7CisgIHRlc3RfY29udGFpbmVyX25hbWVfaW52
YWxpZCgnNTBnaWwnKTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCduYW1lKGZvbykn
KTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCd0eXBlKGlubGluZS1zaXplKScpOwor
ICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQoJyJmb28iJyk7CisgIHRlc3RfY29udGFpbmVy
X25hbWVfaW52YWxpZCgnImluaGVyaXQiJyk7CisgIHRlc3RfY29udGFpbmVyX25hbWVfaW52YWxp
ZCgnbm9uZScpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQoJ05vbmUnKTsKKyAgdGVz
dF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCdub3JtYWwnKTsKKyAgdGVzdF9jb250YWluZXJfbmFt
ZV9pbnZhbGlkKCdOb3JtYWwnKTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCdhdXRv
Jyk7CisgIHRlc3RfY29udGFpbmVyX25hbWVfaW52YWxpZCgnQXV0bycpOworICB0ZXN0X2NvbnRh
aW5lcl9uYW1lX2ludmFsaWQoJ2FuZCcpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQo
J29yJyk7CisgIHRlc3RfY29udGFpbmVyX25hbWVfaW52YWxpZCgnbm90Jyk7CisgIHRlc3RfY29u
dGFpbmVyX25hbWVfaW52YWxpZCgnQW5kJyk7CisgIHRlc3RfY29udGFpbmVyX25hbWVfaW52YWxp
ZCgnb1InKTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCduT3QnKTsKKworICB0ZXN0
X2NvbmRpdGlvbl9rbm93bignc3R5bGUoLS1teS1wcm9wOiBmb28pJyk7CisgIHRlc3RfY29uZGl0
aW9uX2tub3duKCdzdHlsZSgtLW15LXByb3A6IGZvbyAtIGJhciAoKSknKTsKKyAgdGVzdF9jb25k
aXRpb25fa25vd24oJ3N0eWxlKG5vdCAoKC0tZm9vOiBjYWxjKDEwcHggKyAyZW0pKSBhbmQgKCgt
LWZvbzogdXJsKHgpKSkpKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignc3R5bGUoKC0tZm9v
OiBiYXIpIG9yICgtLWJhcjogMTBweCkpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCdzdHls
ZSgtLWZvbzogYmFyICFpbXBvcnRhbnQpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCdzdHls
ZSgtLW15LXByb3A6KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignc3R5bGUoLS1teS1wcm9w
OiApJyk7CisKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignc3R5bGUoLS1mb286IGJhcjspJyk7
CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJ3N0eWxlKC0tZm9vKScpOworICB0ZXN0X2NvbmRp
dGlvbl91bmtub3duKCdzdHlsZShzdHlsZSgtLWZvbzogYmFyKSknKTsKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvY3Jhc2h0ZXN0cy9jaHJvbWUtYnVnLTEzNDY5
NjktY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY2hyb21lLWJ1
Zy0xMzQ2OTY5LWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi4zN2M3NGNmOGNiMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmll
cy9jcmFzaHRlc3RzL2Nocm9tZS1idWctMTM0Njk2OS1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMTQg
QEAKKzwhZG9jdHlwZSBodG1sPgorPHRpdGxlPkNocm9tZSBjcmFzaCBidWcgMTM0Njk2OTwvdGl0
bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vY3JidWcuY29tLzEzNDY5NjkiPgor
PHRhYmxlIGlkPSJ0YWJsZSI+IDwvdGFibGU+Cis8c2NyaXB0PgorICBkb2N1bWVudC5ib2R5Lm9m
ZnNldFRvcDsKKyAgdGFibGUuc3R5bGUuY29udGFpbmVyVHlwZSA9ICJpbmxpbmUtc2l6ZSI7Cisg
IHRhYmxlLnN0eWxlLmFwcGVhcmFuY2UgPSAiYXV0byI7CisgIHRhYmxlLnN0eWxlLmNvbHVtbkNv
dW50ID0gMjsKKyAgdGFibGUuY3JlYXRlVEJvZHkoKTsKKyAgdGFibGUuY3JlYXRlQ2FwdGlvbigp
OworICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKKyAgdGFibGUuc3R5bGUud2hpdGVTcGFjZSA9
ICJwcmUtd3JhcCI7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVz
L2NyYXNodGVzdHMvY2hyb21lLXJlbW92ZS1pbnNlcnQtZXZhbHVhdG9yLWNyYXNoLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFp
bi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1yZW1vdmUtaW5zZXJ0LWV2YWx1
YXRvci1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
OTg2ZjZiMGJmNjlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvY3Jh
c2h0ZXN0cy9jaHJvbWUtcmVtb3ZlLWluc2VydC1ldmFsdWF0b3ItY3Jhc2guaHRtbApAQCAtMCww
ICsxLDE1IEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5SZW1vdmluZyBhbmQgcmUtaW5zZXJ0
aW5nIGEgY29udGFpbmVyIHNob3VsZCBjcmFzaDwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vY3JidWcuY29tLzEzNDI3NTAiPgorPHN0eWxlPgorICAjY29udGFpbmVyIHsg
Y29udGFpbmVyLXR5cGU6IGlubGluZS1zaXplIH0KKzwvc3R5bGU+Cis8ZGl2IGlkPSJvdXRlciI+
CisgIDxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgIGNvbnRh
aW5lci5vZmZzZXRUb3A7CisgIGxldCByZW1vdmVkID0gY29udGFpbmVyOworICBjb250YWluZXIu
cmVtb3ZlKCk7CisgIG91dGVyLmFwcGVuZENoaWxkKHJlbW92ZWQpOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGFpbmVyLXF1ZXJpZXMvY3Jhc2h0ZXN0cy93M2MtaW1wb3J0LmxvZwppbmRleCBkMzFm
ZjQ2YmQ5YTUuLjdhMTE4NmZkNTY4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMv
Y3Jhc2h0ZXN0cy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFz
aHRlc3RzL3czYy1pbXBvcnQubG9nCkBAIC0xOCw3ICsxOCw5IEBAIExpc3Qgb2YgZmlsZXM6CiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGFpbmVyLXF1ZXJpZXMvY3Jhc2h0ZXN0cy9jYW52YXMtYXMtY29udGFpbmVyLWNyYXNo
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1idWctMTI4OTcx
OC0wMDAtY3Jhc2guaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY2hyb21l
LWJ1Zy0xMjg5NzE4LTAwMS1jcmFzaC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvY3Jhc2h0
ZXN0cy9jaHJvbWUtYnVnLTEzNDY5NjktY3Jhc2guaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVz
L2NyYXNodGVzdHMvY2hyb21lLXF1b3Rlcy1jcmFzaC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJp
ZXMvY3Jhc2h0ZXN0cy9jaHJvbWUtcmVtb3ZlLWluc2VydC1ldmFsdWF0b3ItY3Jhc2guaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY29sdW1ucy1pbi10YWJsZS0wMDEtY3Jh
c2guaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY29sdW1ucy1pbi10YWJs
ZS0wMDItY3Jhc2guaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY29udGFp
bmVyLWluLWNhbnZhcy1jcmFzaC5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461355</attachid>
            <date>2022-08-02 03:09:36 -0700</date>
            <delta_ts>2022-08-02 05:56:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-243449-20220802130934.patch</filename>
            <type>text/plain</type>
            <size>44123</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSAyNjg1NzI1YWZhM2M3YjYzMzgwNGEwZjhmNTVjODcyZmQwZmYxMjRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBUdWUsIDIgQXVnIDIwMjIgMTI6NTM6MDkgKzAzMDAKU3ViamVjdDogW1BBVENIXSBbQ1NTIENv
bnRhaW5lciBRdWVyaWVzXSBVcGRhdGUgcXVlcnkgZ3JhbW1hciB0byB0aGUgc3BlYwogaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MzQ0OSA8cmRhcjovLzk3OTY3Njgy
PgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpUaGUgc3BlYyB3YXMgY2hhbmdlZCB0byBh
bGxvdyBsb2dpY2FsIG9wZXJhdG9ycyBvbiB0b3AgbGV2ZWwgd2l0aG91dCBwYXJlbnRoZXNpcyBt
YWtpbmcKCkBjb250YWluZXIgbm90IChmb28pCgpsZWdhbC4KCmh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3MtY29udGFpbi0zLyNjb250YWluZXItcnVsZQoKKiBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmll
cy9hdC1jb250YWluZXItcGFyc2luZy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJp
ZXMvYXQtY29udGFpbmVyLXBhcnNpbmcuaHRtbDoKKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFz
aHRlc3RzL2Nocm9tZS1idWctMTM0Njk2OS1jcmFzaC5odG1sOiBBZGRlZC4KKiBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWlu
ZXItcXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1yZW1vdmUtaW5zZXJ0LWV2YWx1YXRvci1jcmFz
aC5odG1sOiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL3czYy1pbXBv
cnQubG9nOgoqIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb250YWluZXJSdWxlLmNwcDoKKFdlYkNv
cmU6OkNTU0NvbnRhaW5lclJ1bGU6OmNzc1RleHQgY29uc3QpOgoKRmFjdG9yIHF1ZXJ5IHNlcmlh
bGl6YXRpb24gdG8gYSBmdW5jdGlvbiBpbiBDUSBuYW1lc3BhY2UuCgooV2ViQ29yZTo6Q1NTQ29u
dGFpbmVyUnVsZTo6Y29uZGl0aW9uVGV4dCBjb25zdCk6CihXZWJDb3JlOjpDU1NDb250YWluZXJS
dWxlOjpuYW1lVGV4dCBjb25zdCk6CihXZWJDb3JlOjpDU1NDb250YWluZXJSdWxlOjpuYW1lRmls
dGVyVGV4dCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbnRhaW5l
clJ1bGUuaDoKKiBTb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuY3BwOgooV2ViQ29y
ZTo6Q1E6OnNlcmlhbGl6ZSk6CihXZWJDb3JlOjpzZXJpYWxpemUpOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeS5oOgoKVXBkYXRlIHRvIHRoZSBzcGVjIGdyYW1t
YXIgYW5kIHRlcm1pbm9sb2d5LgpDb250YWluZXJRdWVyeSBub3cgaW5jbHVkZXMgdGhlIG5hbWUg
cGFydCBhbmQgcmVwbGFjZXMgRmlsdGVyZWRDb250YWluZXJRdWVyeS4KUXVlcnlJblBhcmVucyBy
ZXBsYWNlcyBDb250YWluZXJRdWVyeS4KQWxzbyBtb3ZlIENvbnRhaW5lclF1ZXJ5IHRvIENRIG5h
bWVzcGFjZS4KCiogU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmNwcDoK
KFdlYkNvcmU6OkNvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lQ29udGFpbmVyUXVlcnkpOgoo
V2ViQ29yZTo6Q29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVRdWVyeUluUGFyZW5zKToKKFdl
YkNvcmU6OkNvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lQ29uZGl0aW9uKToKKFdlYkNvcmU6
OkNvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lRmlsdGVyZWRDb250YWluZXJRdWVyeSk6IERl
bGV0ZWQuCiogU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmg6CiogU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHA6CihXZWJDb3JlOjpTdHlsZVJ1bGVDb250YWlu
ZXI6OlN0eWxlUnVsZUNvbnRhaW5lcik6CihXZWJDb3JlOjpTdHlsZVJ1bGVDb250YWluZXI6OmNy
ZWF0ZSk6CiogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oOgoqIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5jcHA6CihXZWJDb3JlOjpDU1NQYXJzZXJJbXBsOjpj
b25zdW1lQ29udGFpbmVyUnVsZSk6CiogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwOgooV2ViQ29yZTo6YnVpbGRBcnJheUZvckdyb3VwaW5ncyk6CiogU291
cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwOgooV2ViQ29yZTo6
U3R5bGU6OkNvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZSBjb25zdCk6CihXZWJDb3Jl
OjpTdHlsZTo6Q29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OnNlbGVjdENvbnRhaW5lciBjb25zdCk6
CihXZWJDb3JlOjpTdHlsZTo6Q29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlUXVlcnlJ
blBhcmVucyBjb25zdCk6CihXZWJDb3JlOjpTdHlsZTo6Q29udGFpbmVyUXVlcnlFdmFsdWF0b3I6
OmV2YWx1YXRlQ29uZGl0aW9uIGNvbnN0KToKKFdlYkNvcmU6OlN0eWxlOjpDb250YWluZXJRdWVy
eUV2YWx1YXRvcjo6ZXZhbHVhdGVRdWVyeSBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNv
cmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuaDoKKiBTb3VyY2UvV2ViQ29yZS9zdHls
ZS9SdWxlU2V0Lmg6CihXZWJDb3JlOjpTdHlsZTo6IGNvbnN0KToKLS0tCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29udGFpbmVyUnVsZS5jcHAgICAgICAgfCAgMTQgKy0KIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb250YWluZXJSdWxlLmggICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUv
Y3NzL0NvbnRhaW5lclF1ZXJ5LmNwcCAgICAgICAgIHwgIDE2ICstCiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ29udGFpbmVyUXVlcnkuaCAgICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9Db250YWluZXJRdWVyeVBhcnNlci5jcHAgICB8ICAxNiArLQogU291cmNlL1dlYkNvcmUvY3Nz
L0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmggICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSdWxlLmNwcCAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJ1bGUuaCAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJJbXBsLmNwcCAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgfCAgIDYgKy0KIC4uLi9XZWJDb3JlL3N0eWxlL0NvbnRh
aW5lclF1ZXJ5RXZhbHVhdG9yLmNwcCB8ICAyMCArLQogLi4uL1dlYkNvcmUvc3R5bGUvQ29udGFp
bmVyUXVlcnlFdmFsdWF0b3IuaCAgIHwgICA2ICstCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxl
U2V0LmggICAgICAgICAgICAgICAgfCAgIDggKy0KIC4uLi9hdC1jb250YWluZXItcGFyc2luZy1l
eHBlY3RlZC50eHQgICAgICAgICB8ICA1NCArKy0tCiAuLi4vYXQtY29udGFpbmVyLXBhcnNpbmcu
aHRtbCAgICAgICAgICAgICAgICAgfCAyODUgKysrKysrKysrLS0tLS0tLS0tCiAuLi4vY3Jhc2h0
ZXN0cy9jaHJvbWUtYnVnLTEzNDY5NjktY3Jhc2guaHRtbCAgfCAgMTQgKwogLi4uL2Nocm9tZS1y
ZW1vdmUtaW5zZXJ0LWV2YWx1YXRvci1jcmFzaC5odG1sIHwgIDE1ICsKIC4uLi9jcmFzaHRlc3Rz
L3czYy1pbXBvcnQubG9nICAgICAgICAgICAgICAgICB8ICAgMiArCiAxOCBmaWxlcyBjaGFuZ2Vk
LCAyNzQgaW5zZXJ0aW9ucygrKSwgMjI3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY2hyb21lLWJ1Zy0xMzQ2OTY5LWNyYXNo
Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3Rz
L2Nocm9tZS1yZW1vdmUtaW5zZXJ0LWV2YWx1YXRvci1jcmFzaC5odG1sCgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbnRhaW5lclJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbnRhaW5lclJ1bGUuY3BwCmluZGV4IDIxNTBhMDNhYTU5Zi4uODFiZTBmNmE2NTE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29udGFpbmVyUnVsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbnRhaW5lclJ1bGUuY3BwCkBAIC01NCwxMyArNTQs
NyBAQCBTdHJpbmcgQ1NTQ29udGFpbmVyUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAKICAgICBidWls
ZGVyLmFwcGVuZCgiQGNvbnRhaW5lciAiKTsKIAotICAgIGF1dG8gbmFtZSA9IHN0eWxlUnVsZUNv
bnRhaW5lcigpLmZpbHRlcmVkUXVlcnkoKS5uYW1lRmlsdGVyOwotICAgIGlmICghbmFtZS5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgc2VyaWFsaXplSWRlbnRpZmllcihuYW1lLCBidWlsZGVyKTsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICB9Ci0KLSAgICBzZXJpYWxpemUoYnVpbGRl
ciwgc3R5bGVSdWxlQ29udGFpbmVyKCkuZmlsdGVyZWRRdWVyeSgpLnF1ZXJ5KTsKKyAgICBDUTo6
c2VyaWFsaXplKGJ1aWxkZXIsIHN0eWxlUnVsZUNvbnRhaW5lcigpLmNvbnRhaW5lclF1ZXJ5KCkp
OwogCiAgICAgYnVpbGRlci5hcHBlbmQoIiB7XG4iKTsKICAgICBhcHBlbmRDU1NUZXh0Rm9ySXRl
bXMoYnVpbGRlcik7CkBAIC03MiwxNSArNjYsMTUgQEAgU3RyaW5nIENTU0NvbnRhaW5lclJ1bGU6
OmNzc1RleHQoKSBjb25zdAogU3RyaW5nIENTU0NvbnRhaW5lclJ1bGU6OmNvbmRpdGlvblRleHQo
KSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBzZXJpYWxpemUoYnVp
bGRlciwgc3R5bGVSdWxlQ29udGFpbmVyKCkuZmlsdGVyZWRRdWVyeSgpLnF1ZXJ5KTsKKyAgICBD
UTo6c2VyaWFsaXplKGJ1aWxkZXIsIHN0eWxlUnVsZUNvbnRhaW5lcigpLmNvbnRhaW5lclF1ZXJ5
KCkuY29uZGl0aW9uKTsKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCi1TdHJp
bmcgQ1NTQ29udGFpbmVyUnVsZTo6bmFtZUZpbHRlclRleHQoKSBjb25zdAorU3RyaW5nIENTU0Nv
bnRhaW5lclJ1bGU6Om5hbWVUZXh0KCkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgCi0gICAgYXV0byBuYW1lID0gc3R5bGVSdWxlQ29udGFpbmVyKCkuZmlsdGVyZWRR
dWVyeSgpLm5hbWVGaWx0ZXI7CisgICAgYXV0byBuYW1lID0gc3R5bGVSdWxlQ29udGFpbmVyKCku
Y29udGFpbmVyUXVlcnkoKS5uYW1lOwogICAgIGlmICghbmFtZS5pc0VtcHR5KCkpCiAgICAgICAg
IHNlcmlhbGl6ZUlkZW50aWZpZXIobmFtZSwgYnVpbGRlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb250YWluZXJSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29udGFpbmVyUnVsZS5oCmluZGV4IDVjOTUzMjU4NTJlYS4uMWVjNjRmMTJhYWNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29udGFpbmVyUnVsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDb250YWluZXJSdWxlLmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgog
CiAgICAgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgY29uZGl0aW9u
VGV4dCgpIGNvbnN0IGZpbmFsOwotICAgIFN0cmluZyBuYW1lRmlsdGVyVGV4dCgpIGNvbnN0Owor
ICAgIFN0cmluZyBuYW1lVGV4dCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGNvbnN0IFN0eWxl
UnVsZUNvbnRhaW5lciYgc3R5bGVSdWxlQ29udGFpbmVyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NvbnRhaW5lclF1ZXJ5LmNwcAppbmRleCAzODVmZWRmM2ZkZDkuLjAxMzViZmFiNGE3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuY3BwCkBAIC05MCw5ICs5MCw5IEBAIE9wdGlv
blNldDxBeGlzPiByZXF1aXJlZEF4ZXNGb3JGZWF0dXJlKGNvbnN0IEF0b21TdHJpbmcmIGZlYXR1
cmVOYW1lKQogdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYsIGNvbnN0IFNpemVGZWF0dXJl
Jik7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb25kaXRpb25UeXBlPiB2b2lkIHNlcmlhbGl6ZShTdHJp
bmdCdWlsZGVyJiwgY29uc3QgQ29uZGl0aW9uVHlwZSYpOwogCi1zdGF0aWMgdm9pZCBzZXJpYWxp
emUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgQ29udGFpbmVyUXVlcnkmIGNvbnRhaW5l
clF1ZXJ5KQorc3RhdGljIHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNv
bnN0IFF1ZXJ5SW5QYXJlbnMmIHF1ZXJ5KQogewotICAgIFdURjo6c3dpdGNoT24oY29udGFpbmVy
UXVlcnksIFsmXShhdXRvJiBub2RlKSB7CisgICAgV1RGOjpzd2l0Y2hPbihxdWVyeSwgWyZdKGF1
dG8mIG5vZGUpIHsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJygnKTsKICAgICAgICAgc2VyaWFs
aXplKGJ1aWxkZXIsIG5vZGUpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwpAQCAtMTg2
LDEyICsxODYsMjIgQEAgdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29u
c3QgQ29uZGl0aW9uVHlwZSYgY29uZGl0aW9uKQogICAgIH0KIH0KIAordm9pZCBzZXJpYWxpemUo
U3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgQ29udGFpbmVyQ29uZGl0aW9uJiBjb25kaXRp
b24pCit7CisgICAgc2VyaWFsaXplPENvbnRhaW5lckNvbmRpdGlvbj4oYnVpbGRlciwgY29uZGl0
aW9uKTsKIH0KIAogdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3Qg
Q29udGFpbmVyUXVlcnkmIHF1ZXJ5KQogewotICAgIENROjpzZXJpYWxpemUoYnVpbGRlciwgcXVl
cnkpOworICAgIGF1dG8gbmFtZSA9IHF1ZXJ5Lm5hbWU7CisgICAgaWYgKCFuYW1lLmlzRW1wdHko
KSkgeworICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKG5hbWUsIGJ1aWxkZXIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgIH0KKworICAgIHNlcmlhbGl6ZShidWlsZGVyLCBx
dWVyeS5jb25kaXRpb24pOwogfQogCiB9Cit9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Db250YWluZXJRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5
LmgKaW5kZXggNThlNjlmOWM5ODFkLi5kMTE4MjkzYjNlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250
YWluZXJRdWVyeS5oCkBAIC00NCw3ICs0NCw3IEBAIHN0cnVjdCBVbmtub3duUXVlcnkgewogICAg
IFN0cmluZyB0ZXh0OwogfTsKIAotdXNpbmcgQ29udGFpbmVyUXVlcnkgPSBzdGQ6OnZhcmlhbnQ8
Q29udGFpbmVyQ29uZGl0aW9uLCBTaXplRmVhdHVyZSwgVW5rbm93blF1ZXJ5PjsKK3VzaW5nIFF1
ZXJ5SW5QYXJlbnMgPSBzdGQ6OnZhcmlhbnQ8Q29udGFpbmVyQ29uZGl0aW9uLCBTaXplRmVhdHVy
ZSwgVW5rbm93blF1ZXJ5PjsKIAogZW51bSBjbGFzcyBMb2dpY2FsT3BlcmF0b3IgOiB1aW50OF90
IHsgQW5kLCBPciwgTm90IH07CiBlbnVtIGNsYXNzIENvbXBhcmlzb25PcGVyYXRvciA6IHVpbnQ4
X3QgeyBMZXNzVGhhbiwgTGVzc1RoYW5PckVxdWFsLCBFcXVhbCwgR3JlYXRlclRoYW4sIEdyZWF0
ZXJUaGFuT3JFcXVhbCB9OwpAQCAtNTIsNyArNTIsNyBAQCBlbnVtIGNsYXNzIFN5bnRheCA6IHVp
bnQ4X3QgeyBCb29sZWFuLCBDb2xvbiwgUmFuZ2UgfTsKIAogc3RydWN0IENvbnRhaW5lckNvbmRp
dGlvbiB7CiAgICAgTG9naWNhbE9wZXJhdG9yIGxvZ2ljYWxPcGVyYXRvciB7IExvZ2ljYWxPcGVy
YXRvcjo6QW5kIH07Ci0gICAgVmVjdG9yPENvbnRhaW5lclF1ZXJ5PiBxdWVyaWVzOworICAgIFZl
Y3RvcjxRdWVyeUluUGFyZW5zPiBxdWVyaWVzOwogfTsKIAogc3RydWN0IENvbXBhcmlzb24gewpA
QCAtODQsMTggKzg0LDE3IEBAIGVudW0gY2xhc3MgQXhpcyA6IHVpbnQ4X3QgewogfTsKIE9wdGlv
blNldDxBeGlzPiByZXF1aXJlZEF4ZXNGb3JGZWF0dXJlKGNvbnN0IEF0b21TdHJpbmcmKTsKIAot
fQotCi11c2luZyBDb250YWluZXJRdWVyeSA9IENROjpDb250YWluZXJRdWVyeTsKLQotc3RydWN0
IEZpbHRlcmVkQ29udGFpbmVyUXVlcnkgewotICAgIEF0b21TdHJpbmcgbmFtZUZpbHRlcjsKK3N0
cnVjdCBDb250YWluZXJRdWVyeSB7CisgICAgQXRvbVN0cmluZyBuYW1lOwogICAgIE9wdGlvblNl
dDxDUTo6QXhpcz4gYXhpc0ZpbHRlcjsKLSAgICBDb250YWluZXJRdWVyeSBxdWVyeTsKKyAgICBD
UTo6Q29udGFpbmVyQ29uZGl0aW9uIGNvbmRpdGlvbjsKIH07CiAKLXVzaW5nIENhY2hlZFF1ZXJ5
Q29udGFpbmVycyA9IFZlY3RvcjxSZWY8Y29uc3QgRWxlbWVudD4+OwotCit2b2lkIHNlcmlhbGl6
ZShTdHJpbmdCdWlsZGVyJiwgY29uc3QgQ29udGFpbmVyQ29uZGl0aW9uJik7CiB2b2lkIHNlcmlh
bGl6ZShTdHJpbmdCdWlsZGVyJiwgY29uc3QgQ29udGFpbmVyUXVlcnkmKTsKIAogfQorCit1c2lu
ZyBDYWNoZWRRdWVyeUNvbnRhaW5lcnMgPSBWZWN0b3I8UmVmPGNvbnN0IEVsZW1lbnQ+PjsKKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5jcHAKaW5kZXggNDEx
MzFkNTM1NjUxLi40NTg5YmFiYWQxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
b250YWluZXJRdWVyeVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5l
clF1ZXJ5UGFyc2VyLmNwcApAQCAtMzAsMTMgKzMwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotc3RkOjpvcHRpb25hbDxGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5PiBDb250YWluZXJRdWVy
eVBhcnNlcjo6Y29uc3VtZUZpbHRlcmVkQ29udGFpbmVyUXVlcnkoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgcmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCitzdGQ6Om9wdGlvbmFs
PENROjpDb250YWluZXJRdWVyeT4gQ29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVDb250YWlu
ZXJRdWVyeShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4
dCYgY29udGV4dCkKIHsKICAgICBDb250YWluZXJRdWVyeVBhcnNlciBwYXJzZXIoY29udGV4dCk7
Ci0gICAgcmV0dXJuIHBhcnNlci5jb25zdW1lRmlsdGVyZWRDb250YWluZXJRdWVyeShyYW5nZSk7
CisgICAgcmV0dXJuIHBhcnNlci5jb25zdW1lQ29udGFpbmVyUXVlcnkocmFuZ2UpOwogfQogCi1z
dGQ6Om9wdGlvbmFsPEZpbHRlcmVkQ29udGFpbmVyUXVlcnk+IENvbnRhaW5lclF1ZXJ5UGFyc2Vy
Ojpjb25zdW1lRmlsdGVyZWRDb250YWluZXJRdWVyeShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5n
ZSkKK3N0ZDo6b3B0aW9uYWw8Q1E6OkNvbnRhaW5lclF1ZXJ5PiBDb250YWluZXJRdWVyeVBhcnNl
cjo6Y29uc3VtZUNvbnRhaW5lclF1ZXJ5KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewog
ICAgIGF1dG8gY29uc3VtZU5hbWUgPSBbJl0gewogICAgICAgICBpZiAocmFuZ2UucGVlaygpLnR5
cGUoKSA9PSBMZWZ0UGFyZW50aGVzaXNUb2tlbiB8fCByYW5nZS5wZWVrKCkudHlwZSgpID09IEZ1
bmN0aW9uVG9rZW4pCkBAIC01MSwxNCArNTEsMTQgQEAgc3RkOjpvcHRpb25hbDxGaWx0ZXJlZENv
bnRhaW5lclF1ZXJ5PiBDb250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3VtZUZpbHRlcmVkQ29udGEK
IAogICAgIG1fcmVxdWlyZWRBeGVzID0geyB9OwogCi0gICAgYXV0byBxdWVyeSA9IGNvbnN1bWVD
b250YWluZXJRdWVyeShyYW5nZSk7Ci0gICAgaWYgKCFxdWVyeSkKKyAgICBhdXRvIGNvbmRpdGlv
biA9IGNvbnN1bWVDb25kaXRpb248Q1E6OkNvbnRhaW5lckNvbmRpdGlvbj4ocmFuZ2UpOworICAg
IGlmICghY29uZGl0aW9uKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIEZpbHRl
cmVkQ29udGFpbmVyUXVlcnkgeyBuYW1lLCBtX3JlcXVpcmVkQXhlcywgKnF1ZXJ5IH07CisgICAg
cmV0dXJuIENROjpDb250YWluZXJRdWVyeSB7IG5hbWUsIG1fcmVxdWlyZWRBeGVzLCAqY29uZGl0
aW9uIH07CiB9CiAKLXN0ZDo6b3B0aW9uYWw8Q1E6OkNvbnRhaW5lclF1ZXJ5PiBDb250YWluZXJR
dWVyeVBhcnNlcjo6Y29uc3VtZUNvbnRhaW5lclF1ZXJ5KENTU1BhcnNlclRva2VuUmFuZ2UmIHJh
bmdlKQorc3RkOjpvcHRpb25hbDxDUTo6UXVlcnlJblBhcmVucz4gQ29udGFpbmVyUXVlcnlQYXJz
ZXI6OmNvbnN1bWVRdWVyeUluUGFyZW5zKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewog
ICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pIHsKICAgICAgICAg
YXV0byBuYW1lID0gcmFuZ2UucGVlaygpLnZhbHVlKCk7CkBAIC05Miw3ICs5Miw3IEBAIHN0ZDo6
b3B0aW9uYWw8Q29uZGl0aW9uVHlwZT4gQ29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVDb25k
aXRpb24oQ1NTUGFyc2VyVG9rCiB7CiAgICAgYXV0byBjb25zdW1lUXVlcnkgPSBbJl0oQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgcmFuZ2UpIHsKICAgICAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX3Nh
bWVfdjxDUTo6Q29udGFpbmVyQ29uZGl0aW9uLCBDb25kaXRpb25UeXBlPikKLSAgICAgICAgICAg
IHJldHVybiBjb25zdW1lQ29udGFpbmVyUXVlcnkocmFuZ2UpOworICAgICAgICAgICAgcmV0dXJu
IGNvbnN1bWVRdWVyeUluUGFyZW5zKHJhbmdlKTsKICAgICAgICAgLy8gU3R5bGUgcXVlcnkgc3Vw
cG9ydCB3b3VsZCBiZSBoZXJlLgogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5l
clF1ZXJ5UGFyc2VyLmgKaW5kZXggODVjNmJiODc1YTAzLi5kZTdhZGQ1Y2I3ODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5oCkBAIC0zNCwxMSArMzQsMTEgQEAg
Y2xhc3MgQ1NTUGFyc2VyVG9rZW5SYW5nZTsKIAogY2xhc3MgQ29udGFpbmVyUXVlcnlQYXJzZXIg
ewogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEZpbHRlcmVkQ29udGFpbmVyUXVl
cnk+IGNvbnN1bWVGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5KENTU1BhcnNlclRva2VuUmFuZ2UmLCBj
b25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q1E6OkNv
bnRhaW5lclF1ZXJ5PiBjb25zdW1lQ29udGFpbmVyUXVlcnkoQ1NTUGFyc2VyVG9rZW5SYW5nZSYs
IGNvbnN0IENTU1BhcnNlckNvbnRleHQmKTsKIAogcHJpdmF0ZToKLSAgICBzdGQ6Om9wdGlvbmFs
PEZpbHRlcmVkQ29udGFpbmVyUXVlcnk+IGNvbnN1bWVGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5KENT
U1BhcnNlclRva2VuUmFuZ2UmKTsKICAgICBzdGQ6Om9wdGlvbmFsPENROjpDb250YWluZXJRdWVy
eT4gY29uc3VtZUNvbnRhaW5lclF1ZXJ5KENTU1BhcnNlclRva2VuUmFuZ2UmKTsKKyAgICBzdGQ6
Om9wdGlvbmFsPENROjpRdWVyeUluUGFyZW5zPiBjb25zdW1lUXVlcnlJblBhcmVucyhDU1NQYXJz
ZXJUb2tlblJhbmdlJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29uZGl0aW9uVHlwZT4gc3Rk
OjpvcHRpb25hbDxDb25kaXRpb25UeXBlPiBjb25zdW1lQ29uZGl0aW9uKENTU1BhcnNlclRva2Vu
UmFuZ2UmKTsKICAgICBzdGQ6Om9wdGlvbmFsPENROjpTaXplRmVhdHVyZT4gY29uc3VtZVNpemVG
ZWF0dXJlKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKICAgICBzdGQ6Om9wdGlvbmFsPENROjpTaXpl
RmVhdHVyZT4gY29uc3VtZVBsYWluU2l6ZUZlYXR1cmUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSdWxlLmNwcAppbmRleCBmOGRjZGI3ZTRiMzIuLjljYjQ3YjVlMmUxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKQEAgLTQ1NSwxOSArNDU1LDE5IEBAIFJlZjxTdHls
ZVJ1bGVMYXllcj4gU3R5bGVSdWxlTGF5ZXI6OmNyZWF0ZUJsb2NrKENhc2NhZGVMYXllck5hbWUm
JiBuYW1lLCBWZWN0b3I8CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3R5bGVSdWxlTGF5ZXIo
V1RGTW92ZShuYW1lKSwgV1RGTW92ZShydWxlcykpKTsKIH0KIAotU3R5bGVSdWxlQ29udGFpbmVy
OjpTdHlsZVJ1bGVDb250YWluZXIoRmlsdGVyZWRDb250YWluZXJRdWVyeSYmIHF1ZXJ5LCBWZWN0
b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+PiYmIHJ1bGVzKQorU3R5bGVSdWxlQ29udGFpbmVyOjpT
dHlsZVJ1bGVDb250YWluZXIoQ1E6OkNvbnRhaW5lclF1ZXJ5JiYgcXVlcnksIFZlY3RvcjxSZWZQ
dHI8U3R5bGVSdWxlQmFzZT4+JiYgcnVsZXMpCiAgICAgOiBTdHlsZVJ1bGVHcm91cChTdHlsZVJ1
bGVUeXBlOjpDb250YWluZXIsIFdURk1vdmUocnVsZXMpKQotICAgICwgbV9maWx0ZXJlZFF1ZXJ5
KFdURk1vdmUocXVlcnkpKQorICAgICwgbV9jb250YWluZXJkUXVlcnkoV1RGTW92ZShxdWVyeSkp
CiB7CiB9CiAKIFN0eWxlUnVsZUNvbnRhaW5lcjo6U3R5bGVSdWxlQ29udGFpbmVyKGNvbnN0IFN0
eWxlUnVsZUNvbnRhaW5lciYgb3RoZXIpCiAgICAgOiBTdHlsZVJ1bGVHcm91cChvdGhlcikKLSAg
ICAsIG1fZmlsdGVyZWRRdWVyeShvdGhlci5tX2ZpbHRlcmVkUXVlcnkpCisgICAgLCBtX2NvbnRh
aW5lcmRRdWVyeShvdGhlci5tX2NvbnRhaW5lcmRRdWVyeSkKIHsKIH0KIAotUmVmPFN0eWxlUnVs
ZUNvbnRhaW5lcj4gU3R5bGVSdWxlQ29udGFpbmVyOjpjcmVhdGUoRmlsdGVyZWRDb250YWluZXJR
dWVyeSYmIHF1ZXJ5LCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+PiYmIHJ1bGVzKQorUmVm
PFN0eWxlUnVsZUNvbnRhaW5lcj4gU3R5bGVSdWxlQ29udGFpbmVyOjpjcmVhdGUoQ1E6OkNvbnRh
aW5lclF1ZXJ5JiYgcXVlcnksIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiYgcnVsZXMp
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3R5bGVSdWxlQ29udGFpbmVyKFdURk1vdmUo
cXVlcnkpLCBXVEZNb3ZlKHJ1bGVzKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oCmluZGV4IDIz
MzBlMjE0NGRmZS4uZDJlZmQ1ZGViNTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oCkBAIC0yOTEs
MTYgKzI5MSwxNiBAQCBwcml2YXRlOgogCiBjbGFzcyBTdHlsZVJ1bGVDb250YWluZXIgZmluYWwg
OiBwdWJsaWMgU3R5bGVSdWxlR3JvdXAgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U3R5bGVS
dWxlQ29udGFpbmVyPiBjcmVhdGUoRmlsdGVyZWRDb250YWluZXJRdWVyeSYmLCBWZWN0b3I8UmVm
UHRyPFN0eWxlUnVsZUJhc2U+PiYmKTsKKyAgICBzdGF0aWMgUmVmPFN0eWxlUnVsZUNvbnRhaW5l
cj4gY3JlYXRlKENROjpDb250YWluZXJRdWVyeSYmLCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJh
c2U+PiYmKTsKICAgICBSZWY8U3R5bGVSdWxlQ29udGFpbmVyPiBjb3B5KCkgY29uc3QgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTdHlsZVJ1bGVDb250YWluZXIoKnRoaXMpKTsgfQogCi0gICAgY29u
c3QgRmlsdGVyZWRDb250YWluZXJRdWVyeSYgZmlsdGVyZWRRdWVyeSgpIGNvbnN0IHsgcmV0dXJu
IG1fZmlsdGVyZWRRdWVyeTsgfQorICAgIGNvbnN0IENROjpDb250YWluZXJRdWVyeSYgY29udGFp
bmVyUXVlcnkoKSBjb25zdCB7IHJldHVybiBtX2NvbnRhaW5lcmRRdWVyeTsgfQogCiBwcml2YXRl
OgotICAgIFN0eWxlUnVsZUNvbnRhaW5lcihGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5JiYsIFZlY3Rv
cjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiYpOworICAgIFN0eWxlUnVsZUNvbnRhaW5lcihDUTo6
Q29udGFpbmVyUXVlcnkmJiwgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4mJik7CiAgICAg
U3R5bGVSdWxlQ29udGFpbmVyKGNvbnN0IFN0eWxlUnVsZUNvbnRhaW5lciYpOwogCi0gICAgRmls
dGVyZWRDb250YWluZXJRdWVyeSBtX2ZpbHRlcmVkUXVlcnk7CisgICAgQ1E6OkNvbnRhaW5lclF1
ZXJ5IG1fY29udGFpbmVyZFF1ZXJ5OwogfTsKIAogLy8gVGhpcyBpcyBvbmx5IHVzZWQgYnkgdGhl
IENTUyBwYXJzZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Bh
cnNlckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJbXBsLmNw
cAppbmRleCAxMzg5ZWU4M2ZlYTAuLjQ3ZTlkZTJmMjgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1BhcnNlckltcGwuY3BwCkBAIC03ODAsNyArNzgwLDcgQEAgUmVmUHRyPFN0
eWxlUnVsZUNvbnRhaW5lcj4gQ1NTUGFyc2VySW1wbDo6Y29uc3VtZUNvbnRhaW5lclJ1bGUoQ1NT
UGFyc2VyVG9rZW5SYW4KICAgICBpZiAocHJlbHVkZS5hdEVuZCgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIGF1dG8gcXVlcnkgPSBDb250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3Vt
ZUZpbHRlcmVkQ29udGFpbmVyUXVlcnkocHJlbHVkZSwgbV9jb250ZXh0KTsKKyAgICBhdXRvIHF1
ZXJ5ID0gQ29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVDb250YWluZXJRdWVyeShwcmVsdWRl
LCBtX2NvbnRleHQpOwogICAgIGlmICghcXVlcnkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVl
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAK
aW5kZXggOTQwZjQwNTliNTJhLi40MTQ3Yzk0YmQxMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTUxOSw5ICs1MTksOSBAQCBz
dGF0aWMgUmVmPEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OkNTUzo6R3JvdXBpbmc+PiBidWlsZEFy
cmF5Rm9yR3JvdXBpbmdzKENTU1J1bAogICAgICAgICAgICAgICAgIC5yZWxlYXNlKCk7CiAKICAg
ICAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgICAgIGF1dG8gbmFtZUZp
bHRlciA9IGNvbnRhaW5lclJ1bGUtPm5hbWVGaWx0ZXJUZXh0KCk7Ci0gICAgICAgICAgICBpZiAo
IW5hbWVGaWx0ZXIuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG5h
bWVGaWx0ZXIsICcgJyk7CisgICAgICAgICAgICBhdXRvIG5hbWVUZXh0ID0gY29udGFpbmVyUnVs
ZS0+bmFtZVRleHQoKTsKKyAgICAgICAgICAgIGlmICghbmFtZVRleHQuaXNFbXB0eSgpKQorICAg
ICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG5hbWVUZXh0LCAnICcpOwogICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQoY29udGFpbmVyUnVsZS0+Y29uZGl0aW9uVGV4dCgpKTsKICAgICAgICAg
ICAgIGNvbnRhaW5lclJ1bGVQYXlsb2FkLT5zZXRUZXh0KGJ1aWxkZXIudG9TdHJpbmcoKSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcApp
bmRleCBmOWM1ZjZjMmNkZDcuLjYxNDc0ZmU4N2QwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtNTMsMTYgKzUzLDE2IEBAIENv
bnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpDb250YWluZXJRdWVyeUV2YWx1YXRvcihjb25zdCBFbGVt
ZW50JiBlbGVtZW50LCBTZWxlY3RpCiB7CiB9CiAKLWJvb2wgQ29udGFpbmVyUXVlcnlFdmFsdWF0
b3I6OmV2YWx1YXRlKGNvbnN0IEZpbHRlcmVkQ29udGFpbmVyUXVlcnkmIGZpbHRlcmVkQ29udGFp
bmVyUXVlcnkpIGNvbnN0Citib29sIENvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZShj
b25zdCBDUTo6Q29udGFpbmVyUXVlcnkmIGNvbnRhaW5lclF1ZXJ5KSBjb25zdAogewotICAgIGF1
dG8gY29udGFpbmVyID0gc2VsZWN0Q29udGFpbmVyKGZpbHRlcmVkQ29udGFpbmVyUXVlcnkpOwor
ICAgIGF1dG8gY29udGFpbmVyID0gc2VsZWN0Q29udGFpbmVyKGNvbnRhaW5lclF1ZXJ5KTsKICAg
ICBpZiAoIWNvbnRhaW5lcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGV2
YWx1YXRlUXVlcnkoZmlsdGVyZWRDb250YWluZXJRdWVyeS5xdWVyeSwgKmNvbnRhaW5lcikgPT0g
RXZhbHVhdGlvblJlc3VsdDo6VHJ1ZTsKKyAgICByZXR1cm4gZXZhbHVhdGVDb25kaXRpb24oY29u
dGFpbmVyUXVlcnkuY29uZGl0aW9uLCAqY29udGFpbmVyKSA9PSBFdmFsdWF0aW9uUmVzdWx0OjpU
cnVlOwogfQogCi1hdXRvIENvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpzZWxlY3RDb250YWluZXIo
Y29uc3QgRmlsdGVyZWRDb250YWluZXJRdWVyeSYgZmlsdGVyZWRDb250YWluZXJRdWVyeSkgY29u
c3QgLT4gc3RkOjpvcHRpb25hbDxTZWxlY3RlZENvbnRhaW5lcj4KK2F1dG8gQ29udGFpbmVyUXVl
cnlFdmFsdWF0b3I6OnNlbGVjdENvbnRhaW5lcihjb25zdCBDUTo6Q29udGFpbmVyUXVlcnkmIGNv
bnRhaW5lclF1ZXJ5KSBjb25zdCAtPiBzdGQ6Om9wdGlvbmFsPFNlbGVjdGVkQ29udGFpbmVyPgog
ewogICAgIC8vICJGb3IgZWFjaCBlbGVtZW50LCB0aGUgcXVlcnkgY29udGFpbmVyIHRvIGJlIHF1
ZXJpZWQgaXMgc2VsZWN0ZWQgZnJvbSBhbW9uZyB0aGUgZWxlbWVudOKAmXMKICAgICAvLyBhbmNl
c3RvciBxdWVyeSBjb250YWluZXJzIHRoYXQgaGF2ZSBhIHZhbGlkIGNvbnRhaW5lci10eXBlIGZv
ciBhbGwgdGhlIGNvbnRhaW5lciBmZWF0dXJlcwpAQCAtODIsNyArODIsNyBAQCBhdXRvIENvbnRh
aW5lclF1ZXJ5RXZhbHVhdG9yOjpzZWxlY3RDb250YWluZXIoY29uc3QgRmlsdGVyZWRDb250YWlu
ZXJRdWVyeSYgZmlsdAogCiAgICAgYXV0byogY2FjaGVkUXVlcnlDb250YWluZXJzID0gbV9zZWxl
Y3Rvck1hdGNoaW5nU3RhdGUgPyAmbV9zZWxlY3Rvck1hdGNoaW5nU3RhdGUtPnF1ZXJ5Q29udGFp
bmVycyA6IG51bGxwdHI7CiAKLSAgICBhdXRvKiBjb250YWluZXIgPSBzZWxlY3RDb250YWluZXIo
ZmlsdGVyZWRDb250YWluZXJRdWVyeS5heGlzRmlsdGVyLCBmaWx0ZXJlZENvbnRhaW5lclF1ZXJ5
Lm5hbWVGaWx0ZXIsIG1fZWxlbWVudC5nZXQoKSwgbV9zZWxlY3Rpb25Nb2RlLCBtX3Njb3BlT3Jk
aW5hbCwgY2FjaGVkUXVlcnlDb250YWluZXJzKTsKKyAgICBhdXRvKiBjb250YWluZXIgPSBzZWxl
Y3RDb250YWluZXIoY29udGFpbmVyUXVlcnkuYXhpc0ZpbHRlciwgY29udGFpbmVyUXVlcnkubmFt
ZSwgbV9lbGVtZW50LmdldCgpLCBtX3NlbGVjdGlvbk1vZGUsIG1fc2NvcGVPcmRpbmFsLCBjYWNo
ZWRRdWVyeUNvbnRhaW5lcnMpOwogICAgIGlmICghY29udGFpbmVyKQogICAgICAgICByZXR1cm4g
eyB9OwogCkBAIC0xNjQsOSArMTY0LDkgQEAgY29uc3QgRWxlbWVudCogQ29udGFpbmVyUXVlcnlF
dmFsdWF0b3I6OnNlbGVjdENvbnRhaW5lcihPcHRpb25TZXQ8Q1E6OkF4aXM+IGF4ZXMKICAgICBy
ZXR1cm4geyB9OwogfQogCi1hdXRvIENvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZVF1
ZXJ5KGNvbnN0IENROjpDb250YWluZXJRdWVyeSYgY29udGFpbmVyUXVlcnksIGNvbnN0IFNlbGVj
dGVkQ29udGFpbmVyJiBjb250YWluZXIpIGNvbnN0IC0+IEV2YWx1YXRpb25SZXN1bHQKK2F1dG8g
Q29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlUXVlcnlJblBhcmVucyhjb25zdCBDUTo6
UXVlcnlJblBhcmVucyYgcXVlcnlJblBhcmVucywgY29uc3QgU2VsZWN0ZWRDb250YWluZXImIGNv
bnRhaW5lcikgY29uc3QgLT4gRXZhbHVhdGlvblJlc3VsdAogewotICAgIHJldHVybiBXVEY6OnN3
aXRjaE9uKGNvbnRhaW5lclF1ZXJ5LCBbJl0oY29uc3QgQ1E6OkNvbnRhaW5lckNvbmRpdGlvbiYg
Y29udGFpbmVyQ29uZGl0aW9uKSB7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24ocXVlcnlJblBh
cmVucywgWyZdKGNvbnN0IENROjpDb250YWluZXJDb25kaXRpb24mIGNvbnRhaW5lckNvbmRpdGlv
bikgewogICAgICAgICByZXR1cm4gZXZhbHVhdGVDb25kaXRpb24oY29udGFpbmVyQ29uZGl0aW9u
LCBjb250YWluZXIpOwogICAgIH0sIFsmXShjb25zdCBDUTo6U2l6ZUZlYXR1cmUmIHNpemVGZWF0
dXJlKSB7CiAgICAgICAgIHJldHVybiBldmFsdWF0ZVNpemVGZWF0dXJlKHNpemVGZWF0dXJlLCBj
b250YWluZXIpOwpAQCAtMTgzLDExICsxODMsMTEgQEAgYXV0byBDb250YWluZXJRdWVyeUV2YWx1
YXRvcjo6ZXZhbHVhdGVDb25kaXRpb24oY29uc3QgQ29uZGl0aW9uVHlwZSYgY29uZGl0aW9uLAog
CiAgICAgc3dpdGNoIChjb25kaXRpb24ubG9naWNhbE9wZXJhdG9yKSB7CiAgICAgY2FzZSBDUTo6
TG9naWNhbE9wZXJhdG9yOjpOb3Q6Ci0gICAgICAgIHJldHVybiAhZXZhbHVhdGVRdWVyeShjb25k
aXRpb24ucXVlcmllcy5maXJzdCgpLCBjb250YWluZXIpOworICAgICAgICByZXR1cm4gIWV2YWx1
YXRlUXVlcnlJblBhcmVucyhjb25kaXRpb24ucXVlcmllcy5maXJzdCgpLCBjb250YWluZXIpOwog
ICAgIGNhc2UgQ1E6OkxvZ2ljYWxPcGVyYXRvcjo6QW5kOiB7CiAgICAgICAgIGF1dG8gcmVzdWx0
ID0gRXZhbHVhdGlvblJlc3VsdDo6VHJ1ZTsKICAgICAgICAgZm9yIChhdXRvIHF1ZXJ5IDogY29u
ZGl0aW9uLnF1ZXJpZXMpIHsKLSAgICAgICAgICAgIGF1dG8gcXVlcnlSZXN1bHQgPSBldmFsdWF0
ZVF1ZXJ5KHF1ZXJ5LCBjb250YWluZXIpOworICAgICAgICAgICAgYXV0byBxdWVyeVJlc3VsdCA9
IGV2YWx1YXRlUXVlcnlJblBhcmVucyhxdWVyeSwgY29udGFpbmVyKTsKICAgICAgICAgICAgIGlm
IChxdWVyeVJlc3VsdCA9PSBFdmFsdWF0aW9uUmVzdWx0OjpGYWxzZSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gRXZhbHVhdGlvblJlc3VsdDo6RmFsc2U7CiAgICAgICAgICAgICBpZiAocXVlcnlS
ZXN1bHQgPT0gRXZhbHVhdGlvblJlc3VsdDo6VW5rbm93bikKQEAgLTE5OCw3ICsxOTgsNyBAQCBh
dXRvIENvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZUNvbmRpdGlvbihjb25zdCBDb25k
aXRpb25UeXBlJiBjb25kaXRpb24sCiAgICAgY2FzZSBDUTo6TG9naWNhbE9wZXJhdG9yOjpPcjog
ewogICAgICAgICBhdXRvIHJlc3VsdCA9IEV2YWx1YXRpb25SZXN1bHQ6OkZhbHNlOwogICAgICAg
ICBmb3IgKGF1dG8gcXVlcnkgOiBjb25kaXRpb24ucXVlcmllcykgewotICAgICAgICAgICAgYXV0
byBxdWVyeVJlc3VsdCA9IGV2YWx1YXRlUXVlcnkocXVlcnksIGNvbnRhaW5lcik7CisgICAgICAg
ICAgICBhdXRvIHF1ZXJ5UmVzdWx0ID0gZXZhbHVhdGVRdWVyeUluUGFyZW5zKHF1ZXJ5LCBjb250
YWluZXIpOwogICAgICAgICAgICAgaWYgKHF1ZXJ5UmVzdWx0ID09IEV2YWx1YXRpb25SZXN1bHQ6
OlRydWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1bHQ6OlRydWU7CiAg
ICAgICAgICAgICBpZiAocXVlcnlSZXN1bHQgPT0gRXZhbHVhdGlvblJlc3VsdDo6VW5rbm93bikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5oCmluZGV4
IDFiNzM3ODgwMzZjZi4uYzc3MTk5ZGI3NzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmgKQEAgLTQyLDE1ICs0MiwxNSBAQCBwdWJsaWM6CiAg
ICAgZW51bSBjbGFzcyBTZWxlY3Rpb25Nb2RlIDogYm9vbCB7IEVsZW1lbnQsIFBzZXVkb0VsZW1l
bnQgfTsKICAgICBDb250YWluZXJRdWVyeUV2YWx1YXRvcihjb25zdCBFbGVtZW50JiwgU2VsZWN0
aW9uTW9kZSwgU2NvcGVPcmRpbmFsLCBTZWxlY3Rvck1hdGNoaW5nU3RhdGUqKTsKIAotICAgIGJv
b2wgZXZhbHVhdGUoY29uc3QgRmlsdGVyZWRDb250YWluZXJRdWVyeSYpIGNvbnN0OworICAgIGJv
b2wgZXZhbHVhdGUoY29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5JikgY29uc3Q7CiAKICAgICBzdGF0
aWMgY29uc3QgRWxlbWVudCogc2VsZWN0Q29udGFpbmVyKE9wdGlvblNldDxDUTo6QXhpcz4sIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgRWxlbWVudCYsIFNlbGVjdGlvbk1vZGUgPSBTZWxlY3Rp
b25Nb2RlOjpFbGVtZW50LCBTY29wZU9yZGluYWwgPSBTY29wZU9yZGluYWw6OkVsZW1lbnQsIGNv
bnN0IENhY2hlZFF1ZXJ5Q29udGFpbmVycyogPSBudWxscHRyKTsKIAogcHJpdmF0ZToKICAgICBz
dHJ1Y3QgU2VsZWN0ZWRDb250YWluZXI7Ci0gICAgc3RkOjpvcHRpb25hbDxTZWxlY3RlZENvbnRh
aW5lcj4gc2VsZWN0Q29udGFpbmVyKGNvbnN0IEZpbHRlcmVkQ29udGFpbmVyUXVlcnkmKSBjb25z
dDsKKyAgICBzdGQ6Om9wdGlvbmFsPFNlbGVjdGVkQ29udGFpbmVyPiBzZWxlY3RDb250YWluZXIo
Y29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5JikgY29uc3Q7CiAKLSAgICBFdmFsdWF0aW9uUmVzdWx0
IGV2YWx1YXRlUXVlcnkoY29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5JiwgY29uc3QgU2VsZWN0ZWRD
b250YWluZXImKSBjb25zdDsKKyAgICBFdmFsdWF0aW9uUmVzdWx0IGV2YWx1YXRlUXVlcnlJblBh
cmVucyhjb25zdCBDUTo6UXVlcnlJblBhcmVucyYsIGNvbnN0IFNlbGVjdGVkQ29udGFpbmVyJikg
Y29uc3Q7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29uZGl0aW9uVHlwZT4gRXZhbHVhdGlvblJl
c3VsdCBldmFsdWF0ZUNvbmRpdGlvbihjb25zdCBDb25kaXRpb25UeXBlJiwgY29uc3QgU2VsZWN0
ZWRDb250YWluZXImKSBjb25zdDsKICAgICBFdmFsdWF0aW9uUmVzdWx0IGV2YWx1YXRlU2l6ZUZl
YXR1cmUoY29uc3QgQ1E6OlNpemVGZWF0dXJlJiwgY29uc3QgU2VsZWN0ZWRDb250YWluZXImKSBj
b25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCmluZGV4IDE2ZmZhMjkwNjM4Ni4uZmU3MTE1NzBj
NDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCkBAIC0xMTMsNyArMTEzLDcgQEAgcHVibGljOgog
ICAgIENhc2NhZGVMYXllclByaW9yaXR5IGNhc2NhZGVMYXllclByaW9yaXR5Rm9yKGNvbnN0IFJ1
bGVEYXRhJikgY29uc3Q7CiAKICAgICBib29sIGhhc0NvbnRhaW5lclF1ZXJpZXMoKSBjb25zdCB7
IHJldHVybiAhbV9jb250YWluZXJRdWVyaWVzLmlzRW1wdHkoKTsgfQotICAgIFZlY3Rvcjxjb25z
dCBGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5Kj4gY29udGFpbmVyUXVlcmllc0Zvcihjb25zdCBSdWxl
RGF0YSYpIGNvbnN0OworICAgIFZlY3Rvcjxjb25zdCBDUTo6Q29udGFpbmVyUXVlcnkqPiBjb250
YWluZXJRdWVyaWVzRm9yKGNvbnN0IFJ1bGVEYXRhJikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAg
ZnJpZW5kIGNsYXNzIFJ1bGVTZXRCdWlsZGVyOwpAQCAtMjMwLDE3ICsyMzAsMTcgQEAgaW5saW5l
IENhc2NhZGVMYXllclByaW9yaXR5IFJ1bGVTZXQ6OmNhc2NhZGVMYXllclByaW9yaXR5Rm9yKGNv
bnN0IFJ1bGVEYXRhJiBydWwKICAgICByZXR1cm4gY2FzY2FkZUxheWVyUHJpb3JpdHlGb3JJZGVu
dGlmaWVyKGlkZW50aWZpZXIpOwogfQogCi1pbmxpbmUgVmVjdG9yPGNvbnN0IEZpbHRlcmVkQ29u
dGFpbmVyUXVlcnkqPiBSdWxlU2V0Ojpjb250YWluZXJRdWVyaWVzRm9yKGNvbnN0IFJ1bGVEYXRh
JiBydWxlRGF0YSkgY29uc3QKK2lubGluZSBWZWN0b3I8Y29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5
Kj4gUnVsZVNldDo6Y29udGFpbmVyUXVlcmllc0Zvcihjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEp
IGNvbnN0CiB7CiAgICAgaWYgKG1fY29udGFpbmVyUXVlcnlJZGVudGlmaWVyRm9yUnVsZVBvc2l0
aW9uLnNpemUoKSA8PSBydWxlRGF0YS5wb3NpdGlvbigpKQogICAgICAgICByZXR1cm4geyB9Owog
Ci0gICAgVmVjdG9yPGNvbnN0IEZpbHRlcmVkQ29udGFpbmVyUXVlcnkqPiBxdWVyaWVzOworICAg
IFZlY3Rvcjxjb25zdCBDUTo6Q29udGFpbmVyUXVlcnkqPiBxdWVyaWVzOwogCiAgICAgYXV0byBp
ZGVudGlmaWVyID0gbV9jb250YWluZXJRdWVyeUlkZW50aWZpZXJGb3JSdWxlUG9zaXRpb25bcnVs
ZURhdGEucG9zaXRpb24oKV07CiAgICAgd2hpbGUgKGlkZW50aWZpZXIpIHsKICAgICAgICAgYXV0
byYgcXVlcnkgPSBtX2NvbnRhaW5lclF1ZXJpZXNbaWRlbnRpZmllciAtIDFdOwotICAgICAgICBx
dWVyaWVzLmFwcGVuZCgmcXVlcnkuY29udGFpbmVyUnVsZS0+ZmlsdGVyZWRRdWVyeSgpKTsKKyAg
ICAgICAgcXVlcmllcy5hcHBlbmQoJnF1ZXJ5LmNvbnRhaW5lclJ1bGUtPmNvbnRhaW5lclF1ZXJ5
KCkpOwogICAgICAgICBpZGVudGlmaWVyID0gcXVlcnkucGFyZW50OwogICAgIH07CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2F0LWNvbnRhaW5lci1wYXJzaW5nLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2F0LWNvbnRhaW5lci1wYXJzaW5nLWV4cGVjdGVk
LnR4dAppbmRleCAyOWRhZTg1MjQxMWMuLmZlNmZiODc5MjEyYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGFpbmVyLXF1ZXJpZXMvYXQtY29udGFpbmVyLXBhcnNpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRhaW5lci1xdWVyaWVzL2F0LWNvbnRhaW5lci1wYXJzaW5nLWV4cGVjdGVkLnR4dApAQCAt
MjEsNyArMjEsNyBAQCBQQVNTIChub3QgKHdpZHRoOiAxMDBweCkpCiBQQVNTICgod2lkdGg6IDEw
MHB4KSBhbmQgKGhlaWdodDogMTAwcHgpKQogUEFTUyAoKCh3aWR0aDogNDBweCkgb3IgKHdpZHRo
OiA1MHB4KSkgYW5kIChoZWlnaHQ6IDEwMHB4KSkKIFBBU1MgKCh3aWR0aDogMTAwcHgpIGFuZCAo
KGhlaWdodDogNDBweCkgb3IgKGhlaWdodDogNTBweCkpKQotUEFTUyAoKCh3aWR0aDogNDB4KSBh
bmQgKGhlaWdodDogNTBweCkpIG9yIChoZWlnaHQ6IDEwMHB4KSkKK1BBU1MgKCgod2lkdGg6IDQw
cHgpIGFuZCAoaGVpZ2h0OiA1MHB4KSkgb3IgKGhlaWdodDogMTAwcHgpKQogUEFTUyAoKHdpZHRo
OiA1MHB4KSBvciAoKHdpZHRoOiA0MHB4KSBhbmQgKGhlaWdodDogNTBweCkpKQogUEFTUyAoKHdp
ZHRoOiAxMDBweCkgYW5kIChub3QgKGhlaWdodDogMTAwcHgpKSkKIFBBU1MgKHdpZHRoIDwgMTAw
cHgpCkBAIC00Nyw2ICs0Nyw5IEBAIFBBU1MgKHdpZHRoIDwgY2FsYygxMHB4ICsgMTBlbSkpCiBQ
QVNTICh3aWR0aCA8IG1heCgxMHB4LCAxMGVtKSkKIFBBU1MgKGNhbGMoMTBweCArIDEwZW0pIDwg
d2lkdGgpCiBQQVNTIChjYWxjKDEwcHggKyAxMGVtKSA8IHdpZHRoIDwgbWF4KDMwcHgsIDMwZW0p
KQorUEFTUyAod2lkdGg6IDEwMHB4KSBhbmQgKGhlaWdodDogMTAwcHgpCitQQVNTICh3aWR0aDog
MTAwcHgpIG9yIChoZWlnaHQ6IDEwMHB4KQorUEFTUyBub3QgKHdpZHRoOiAxMDBweCkKIFBBU1Mg
Zm9vKHdpZHRoKQogUEFTUyBzaXplKHdpZHRoKQogUEFTUyAoYXNkZikKQEAgLTc0LDMyICs3Nywz
MSBAQCBQQVNTIHNjcmVlbiBvciAod2lkdGg6IDEwMHB4KQogUEFTUyBub3Qgc2NyZWVuIGFuZCAo
d2lkdGg6IDEwMHB4KQogUEFTUyBub3Qgc2NyZWVuIG9yICh3aWR0aDogMTAwcHgpCiBQQVNTICh3
aWR0aDogMTAwcHgpLCAoaGVpZ2h0OiAxMDBweCkKLVBBU1MgKHdpZHRoOiAxMDBweCkgYW5kICho
ZWlnaHQ6IDEwMHB4KQotUEFTUyAod2lkdGg6IDEwMHB4KSBvciAoaGVpZ2h0OiAxMDBweCkKLVBB
U1Mgbm90ICh3aWR0aDogMTAwcHgpCiBQQVNTIGZvbyAod2lkdGg6IDEwMHB4KQotUEFTUyBDb250
YWluZXIgc2VsZWN0b3I6IGZvbwotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6ICBmb28KLVBBU1Mg
Q29udGFpbmVyIHNlbGVjdG9yOiAgZm9vCi1QQVNTIENvbnRhaW5lciBzZWxlY3RvcjogZm9vIGZv
bwotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6IDFweAotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6
IDUwZ2lsCi1QQVNTIENvbnRhaW5lciBzZWxlY3RvcjogbmFtZShmb28pCi1QQVNTIENvbnRhaW5l
ciBzZWxlY3RvcjogdHlwZShpbmxpbmUtc2l6ZSkKLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiAi
Zm9vIgotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6ICJpbmhlcml0IgotUEFTUyBDb250YWluZXIg
c2VsZWN0b3I6IG5vbmUKLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiBOb25lCi1QQVNTIENvbnRh
aW5lciBzZWxlY3Rvcjogbm9ybWFsCi1QQVNTIENvbnRhaW5lciBzZWxlY3RvcjogTm9ybWFsCi1Q
QVNTIENvbnRhaW5lciBzZWxlY3RvcjogYXV0bwotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6IEF1
dG8KLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiBhbmQKLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9y
OiBvcgotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6IG5vdAotUEFTUyBDb250YWluZXIgc2VsZWN0
b3I6IEFuZAotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6IG9SCi1QQVNTIENvbnRhaW5lciBzZWxl
Y3Rvcjogbk90CitQQVNTIG5hbWUgbm90ICh3aWR0aCA8PSA1MDBweCkKK1BBU1Mgbm90ICh3aWR0
aCA8PSA1MDBweCkKK1BBU1MgQ29udGFpbmVyIG5hbWU6IGZvbworUEFTUyBDb250YWluZXIgbmFt
ZTogIGZvbworUEFTUyBDb250YWluZXIgbmFtZTogIGZvbworUEFTUyBDb250YWluZXIgbmFtZTog
Zm9vIGZvbworUEFTUyBDb250YWluZXIgbmFtZTogMXB4CitQQVNTIENvbnRhaW5lciBuYW1lOiA1
MGdpbAorUEFTUyBDb250YWluZXIgbmFtZTogbmFtZShmb28pCitQQVNTIENvbnRhaW5lciBuYW1l
OiB0eXBlKGlubGluZS1zaXplKQorUEFTUyBDb250YWluZXIgbmFtZTogImZvbyIKK1BBU1MgQ29u
dGFpbmVyIG5hbWU6ICJpbmhlcml0IgorUEFTUyBDb250YWluZXIgbmFtZTogbm9uZQorUEFTUyBD
b250YWluZXIgbmFtZTogTm9uZQorUEFTUyBDb250YWluZXIgbmFtZTogbm9ybWFsCitQQVNTIENv
bnRhaW5lciBuYW1lOiBOb3JtYWwKK1BBU1MgQ29udGFpbmVyIG5hbWU6IGF1dG8KK1BBU1MgQ29u
dGFpbmVyIG5hbWU6IEF1dG8KK1BBU1MgQ29udGFpbmVyIG5hbWU6IGFuZAorUEFTUyBDb250YWlu
ZXIgbmFtZTogb3IKK1BBU1MgQ29udGFpbmVyIG5hbWU6IG5vdAorUEFTUyBDb250YWluZXIgbmFt
ZTogQW5kCitQQVNTIENvbnRhaW5lciBuYW1lOiBvUgorUEFTUyBDb250YWluZXIgbmFtZTogbk90
CiBGQUlMIHN0eWxlKC0tbXktcHJvcDogZm9vKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidHJ1
ZSIgYnV0IGdvdCAiIgogRkFJTCBzdHlsZSgtLW15LXByb3A6IGZvbyAtIGJhciAoKSkgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgInRydWUiIGJ1dCBnb3QgIiIKIEZBSUwgc3R5bGUobm90ICgoLS1m
b286IGNhbGMoMTBweCArIDJlbSkpIGFuZCAoKC0tZm9vOiB1cmwoeCkpKSkpIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJ0cnVlIiBidXQgZ290ICIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXIt
cXVlcmllcy9hdC1jb250YWluZXItcGFyc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMv
YXQtY29udGFpbmVyLXBhcnNpbmcuaHRtbAppbmRleCA2Mjc4Zjg4MjE2ZjMuLjNjZjdmM2EwMjUx
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvYXQtY29udGFpbmVyLXBhcnNpbmcu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9hdC1jb250YWluZXItcGFyc2luZy5odG1s
CkBAIC0yMiwxNzAgKzIyLDE4MSBAQAogICAgIHJldHVybiBzdHlsZTsKICAgfQogCi0gIGZ1bmN0
aW9uIHRlc3RfcXVlcnlfaW52YWxpZChxdWVyeSkgeworICBmdW5jdGlvbiB0ZXN0X3J1bGVfdmFs
aWQocXVlcnkpIHsKICAgICB0ZXN0KHQgPT4gewogICAgICAgdC5hZGRfY2xlYW51cChjbGVhbnVw
X21haW4pOwotICAgICAgbGV0IHN0eWxlID0gc2V0X3N0eWxlKGBAY29udGFpbmVyIG5hbWUgJHtx
dWVyeX0ge31gKTsKLSAgICAgIGFzc2VydF9lcXVhbHMoc3R5bGUuc2hlZXQucnVsZXMubGVuZ3Ro
LCAwKTsKKyAgICAgIGxldCBzdHlsZSA9IHNldF9zdHlsZShgQGNvbnRhaW5lciAke3F1ZXJ5fSB7
fWApOworICAgICAgYXNzZXJ0X2VxdWFscyhzdHlsZS5zaGVldC5ydWxlcy5sZW5ndGgsIDEpOwog
ICAgIH0sIHF1ZXJ5KTsKICAgfQogCi0gIC8vIFRlc3RzIHRoYXQgMSkgdGhlIHF1ZXJ5IHBhcnNl
cywgYW5kIDIpIGlzIGVpdGhlciAidW5rbm93biIgb3Igbm90LCBhcworICBmdW5jdGlvbiB0ZXN0
X2NvbmRpdGlvbl9pbnZhbGlkKGNvbmRpdGlvbikgeworICAgIHRlc3QodCA9PiB7CisgICAgICB0
LmFkZF9jbGVhbnVwKGNsZWFudXBfbWFpbik7CisgICAgICBsZXQgc3R5bGUgPSBzZXRfc3R5bGUo
YEBjb250YWluZXIgbmFtZSAke2NvbmRpdGlvbn0ge31gKTsKKyAgICAgIGFzc2VydF9lcXVhbHMo
c3R5bGUuc2hlZXQucnVsZXMubGVuZ3RoLCAwKTsKKyAgICB9LCBjb25kaXRpb24pOworICB9CisK
KyAgLy8gVGVzdHMgdGhhdCAxKSB0aGUgY29uZGl0aW9uIHBhcnNlcywgYW5kIDIpIGlzIGVpdGhl
ciAidW5rbm93biIgb3Igbm90LCBhcwogICAvLyBzcGVjaWZpZWQuCi0gIGZ1bmN0aW9uIHRlc3Rf
cXVlcnlfdmFsaWQocXVlcnksIHVua25vd24pIHsKKyAgZnVuY3Rpb24gdGVzdF9jb25kaXRpb25f
dmFsaWQoY29uZGl0aW9uLCB1bmtub3duKSB7CiAgICAgdGVzdCh0ID0+IHsKICAgICAgIHQuYWRk
X2NsZWFudXAoY2xlYW51cF9tYWluKTsKICAgICAgIGxldCBzdHlsZSA9IHNldF9zdHlsZShgCi0g
ICAgICAgIEBjb250YWluZXIgbmFtZSAke3F1ZXJ5fSB7fQotICAgICAgICBAY29udGFpbmVyIG5h
bWUgKCR7cXVlcnl9IG9yIChub3QgJHtxdWVyeX0pKSB7IG1haW4geyAtLW1hdGNoOnRydWU7IH0g
fQorICAgICAgICBAY29udGFpbmVyIG5hbWUgJHtjb25kaXRpb259IHt9CisgICAgICAgIEBjb250
YWluZXIgbmFtZSAoJHtjb25kaXRpb259KSBvciAobm90ICgke2NvbmRpdGlvbn0pKSB7IG1haW4g
eyAtLW1hdGNoOnRydWU7IH0gfQogICAgICAgYCk7CiAgICAgICBhc3NlcnRfZXF1YWxzKHN0eWxl
LnNoZWV0LnJ1bGVzLmxlbmd0aCwgMik7CiAgICAgICBjb25zdCBleHBlY3RlZCA9IHVua25vd24g
PyAnJyA6ICd0cnVlJzsKICAgICAgIGFzc2VydF9lcXVhbHMoZ2V0Q29tcHV0ZWRTdHlsZShtYWlu
KS5nZXRQcm9wZXJ0eVZhbHVlKCctLW1hdGNoJyksIGV4cGVjdGVkKTsKLSAgICB9LCBxdWVyeSk7
CisgICAgfSwgY29uZGl0aW9uKTsKICAgfQogCi0gIGZ1bmN0aW9uIHRlc3RfcXVlcnlfa25vd24o
cXVlcnkpIHsKLSAgICB0ZXN0X3F1ZXJ5X3ZhbGlkKHF1ZXJ5LCBmYWxzZSAvKiB1bmtub3duICov
KTsKKyAgZnVuY3Rpb24gdGVzdF9jb25kaXRpb25fa25vd24oY29uZGl0aW9uKSB7CisgICAgdGVz
dF9jb25kaXRpb25fdmFsaWQoY29uZGl0aW9uLCBmYWxzZSAvKiB1bmtub3duICovKTsKICAgfQog
Ci0gIGZ1bmN0aW9uIHRlc3RfcXVlcnlfdW5rbm93bihxdWVyeSkgewotICAgIHRlc3RfcXVlcnlf
dmFsaWQocXVlcnksIHRydWUgLyogdW5rbm93biAqLyk7CisgIGZ1bmN0aW9uIHRlc3RfY29uZGl0
aW9uX3Vua25vd24oY29uZGl0aW9uKSB7CisgICAgdGVzdF9jb25kaXRpb25fdmFsaWQoY29uZGl0
aW9uLCB0cnVlIC8qIHVua25vd24gKi8pOwogICB9CiAKLSAgZnVuY3Rpb24gdGVzdF9jb250YWlu
ZXJfc2VsZWN0b3JfaW52YWxpZChjb250YWluZXJfc2VsZWN0b3IpIHsKKyAgZnVuY3Rpb24gdGVz
dF9jb250YWluZXJfbmFtZV9pbnZhbGlkKGNvbnRhaW5lcl9uYW1lKSB7CiAgICAgdGVzdCh0ID0+
IHsKICAgICAgIHQuYWRkX2NsZWFudXAoY2xlYW51cF9tYWluKTsKLSAgICAgIGxldCBzdHlsZSA9
IHNldF9zdHlsZShgQGNvbnRhaW5lciAke2NvbnRhaW5lcl9zZWxlY3Rvcn0gKHdpZHRoKSB7fWAp
OworICAgICAgbGV0IHN0eWxlID0gc2V0X3N0eWxlKGBAY29udGFpbmVyICR7Y29udGFpbmVyX25h
bWV9IG5vdCAod2lkdGgpIHt9YCk7CiAgICAgICBhc3NlcnRfZXF1YWxzKHN0eWxlLnNoZWV0LnJ1
bGVzLmxlbmd0aCwgMCk7Ci0gICAgfSwgYENvbnRhaW5lciBzZWxlY3RvcjogJHtjb250YWluZXJf
c2VsZWN0b3J9YCk7CisgICAgfSwgYENvbnRhaW5lciBuYW1lOiAke2NvbnRhaW5lcl9uYW1lfWAp
OwogICB9CiAKLSAgZnVuY3Rpb24gdGVzdF9jb250YWluZXJfc2VsZWN0b3JfdmFsaWQoY29udGFp
bmVyX3NlbGVjdG9yKSB7CisgIGZ1bmN0aW9uIHRlc3RfY29udGFpbmVyX25hbWVfdmFsaWQoY29u
dGFpbmVyX25hbWUpIHsKICAgICB0ZXN0KHQgPT4gewogICAgICAgdC5hZGRfY2xlYW51cChjbGVh
bnVwX21haW4pOwotICAgICAgbGV0IHN0eWxlID0gc2V0X3N0eWxlKGBAY29udGFpbmVyICR7Y29u
dGFpbmVyX3NlbGVjdG9yfSAod2lkdGgpIHt9YCk7CisgICAgICBsZXQgc3R5bGUgPSBzZXRfc3R5
bGUoYEBjb250YWluZXIgJHtjb250YWluZXJfbmFtZX0gbm90ICh3aWR0aCkge31gKTsKICAgICAg
IGFzc2VydF9lcXVhbHMoc3R5bGUuc2hlZXQucnVsZXMubGVuZ3RoLCAxKTsKLSAgICB9LCBgQ29u
dGFpbmVyIHNlbGVjdG9yOiAke2NvbnRhaW5lcl9zZWxlY3Rvcn1gKTsKKyAgICB9LCBgQ29udGFp
bmVyIG5hbWU6ICR7Y29udGFpbmVyX25hbWV9YCk7CiAgIH0KIAotICB0ZXN0X3F1ZXJ5X2tub3du
KCcod2lkdGgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyhtaW4td2lkdGg6IDBweCknKTsKLSAg
dGVzdF9xdWVyeV9rbm93bignKG1heC13aWR0aDogMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tub3du
KCcoaGVpZ2h0KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcobWluLWhlaWdodDogMHB4KScpOwot
ICB0ZXN0X3F1ZXJ5X2tub3duKCcobWF4LWhlaWdodDogMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tu
b3duKCcoYXNwZWN0LXJhdGlvKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcobWluLWFzcGVjdC1y
YXRpbzogMS8yKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcobWF4LWFzcGVjdC1yYXRpbzogMS8y
KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcob3JpZW50YXRpb246IHBvcnRyYWl0KScpOwotICB0
ZXN0X3F1ZXJ5X2tub3duKCcoaW5saW5lLXNpemUpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyht
aW4taW5saW5lLXNpemU6IDBweCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKG1heC1pbmxpbmUt
c2l6ZTogMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoYmxvY2stc2l6ZSknKTsKLSAgdGVz
dF9xdWVyeV9rbm93bignKG1pbi1ibG9jay1zaXplOiAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfa25v
d24oJyhtYXgtYmxvY2stc2l6ZTogMHB4KScpOwotCi0gIHRlc3RfcXVlcnlfa25vd24oJyh3aWR0
aDogMTAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJygod2lkdGg6IDEwMHB4KSknKTsKLSAg
dGVzdF9xdWVyeV9rbm93bignKG5vdCAod2lkdGg6IDEwMHB4KSknKTsKLSAgdGVzdF9xdWVyeV9r
bm93bignKCh3aWR0aDogMTAwcHgpIGFuZCAoaGVpZ2h0OiAxMDBweCkpJyk7Ci0gIHRlc3RfcXVl
cnlfa25vd24oJygoKHdpZHRoOiA0MHB4KSBvciAod2lkdGg6IDUwcHgpKSBhbmQgKGhlaWdodDog
MTAwcHgpKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoKHdpZHRoOiAxMDBweCkgYW5kICgoaGVp
Z2h0OiA0MHB4KSBvciAoaGVpZ2h0OiA1MHB4KSkpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJygo
KHdpZHRoOiA0MHgpIGFuZCAoaGVpZ2h0OiA1MHB4KSkgb3IgKGhlaWdodDogMTAwcHgpKScpOwot
ICB0ZXN0X3F1ZXJ5X2tub3duKCcoKHdpZHRoOiA1MHB4KSBvciAoKHdpZHRoOiA0MHB4KSBhbmQg
KGhlaWdodDogNTBweCkpKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoKHdpZHRoOiAxMDBweCkg
YW5kIChub3QgKGhlaWdodDogMTAwcHgpKSknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKHdpZHRo
IDwgMTAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyh3aWR0aCA8PSAxMDBweCknKTsKLSAg
dGVzdF9xdWVyeV9rbm93bignKHdpZHRoID0gMTAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24o
Jyh3aWR0aCA+IDEwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcod2lkdGggPj0gMTAwcHgp
Jyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJygxMDBweCA8IHdpZHRoKScpOwotICB0ZXN0X3F1ZXJ5
X2tub3duKCcoMTAwcHggPD0gd2lkdGgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJygxMDBweCA9
IHdpZHRoKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoMTAwcHggPiB3aWR0aCknKTsKLSAgdGVz
dF9xdWVyeV9rbm93bignKDEwMHB4ID49IHdpZHRoKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCco
MTAwcHggPCB3aWR0aCA8IDIwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoMTAwcHggPCB3
aWR0aCA8PSAyMDBweCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKDEwMHB4IDw9IHdpZHRoIDwg
MjAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJygxMDBweCA+IHdpZHRoID4gMjAwcHgpJyk7
Ci0gIHRlc3RfcXVlcnlfa25vd24oJygxMDBweCA+IHdpZHRoID49IDIwMHB4KScpOwotICB0ZXN0
X3F1ZXJ5X2tub3duKCcoMTAwcHggPj0gd2lkdGggPiAyMDBweCknKTsKLQotICB0ZXN0X3F1ZXJ5
X2tub3duKCcod2lkdGg6IGNhbGMoMTBweCkpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyh3aWR0
aDogY2FsYygxMGVtKSknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKHdpZHRoOiBjYWxjKDEwcHgg
KyAxMGVtKSknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKHdpZHRoIDwgY2FsYygxMHB4ICsgMTBl
bSkpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyh3aWR0aCA8IG1heCgxMHB4LCAxMGVtKSknKTsK
LSAgdGVzdF9xdWVyeV9rbm93bignKGNhbGMoMTBweCArIDEwZW0pIDwgd2lkdGgpJyk7Ci0gIHRl
c3RfcXVlcnlfa25vd24oJyhjYWxjKDEwcHggKyAxMGVtKSA8IHdpZHRoIDwgbWF4KDMwcHgsIDMw
ZW0pKScpOwotCi0gIHRlc3RfcXVlcnlfdW5rbm93bignZm9vKHdpZHRoKScpOwotICB0ZXN0X3F1
ZXJ5X3Vua25vd24oJ3NpemUod2lkdGgpJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignKGFzZGYp
Jyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignKHJlc29sdXRpb24gPiAxMDBkcGkpJyk7Ci0gIHRl
c3RfcXVlcnlfdW5rbm93bignKHJlc29sdXRpb246IDE1MGRwaSknKTsKLSAgdGVzdF9xdWVyeV91
bmtub3duKCcoY29sb3IpJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignKG1pbi1jb2xvcjogMSkn
KTsKLSAgdGVzdF9xdWVyeV91bmtub3duKCcoY29sb3ItaW5kZXggPj0gMSknKTsKLSAgdGVzdF9x
dWVyeV91bmtub3duKCdzaXplKGdyaWQpJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignKGdyaWQp
Jyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignKHdpZHRoID09IDEwMHB4KScpOwotICB0ZXN0X3F1
ZXJ5X3Vua25vd24oJygxMDBweCA9PSB3aWR0aCknKTsKLSAgdGVzdF9xdWVyeV91bmtub3duKCco
MTAwcHggPSB3aWR0aCA9IDIwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X3Vua25vd24oJygxMDBweCA8
IHdpZHRoID4gMjAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignKDEwMHB4IDw9IHdpZHRo
ID49IDIwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X3Vua25vd24oJygxMDBweCA8PSB3aWR0aCA+IDIw
MHB4KScpOwotICB0ZXN0X3F1ZXJ5X3Vua25vd24oJygxMDBweCA8IHdpZHRoID49IDIwMHB4KScp
OwotICB0ZXN0X3F1ZXJ5X3Vua25vd24oJygxMDBweCA6IHdpZHRoIDogMjAwcHgpJyk7Ci0KLSAg
dGVzdF9xdWVyeV9pbnZhbGlkKCdzY3JlZW4nKTsKLSAgdGVzdF9xdWVyeV9pbnZhbGlkKCdwcmlu
dCcpOwotICB0ZXN0X3F1ZXJ5X2ludmFsaWQoJ25vdCBwcmludCcpOwotICB0ZXN0X3F1ZXJ5X2lu
dmFsaWQoJ29ubHkgcHJpbnQnKTsKLSAgdGVzdF9xdWVyeV9pbnZhbGlkKCdzY3JlZW4gYW5kICh3
aWR0aDogMTAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfaW52YWxpZCgnc2NyZWVuIG9yICh3aWR0aDog
MTAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfaW52YWxpZCgnbm90IHNjcmVlbiBhbmQgKHdpZHRoOiAx
MDBweCknKTsKLSAgdGVzdF9xdWVyeV9pbnZhbGlkKCdub3Qgc2NyZWVuIG9yICh3aWR0aDogMTAw
cHgpJyk7Ci0gIHRlc3RfcXVlcnlfaW52YWxpZCgnKHdpZHRoOiAxMDBweCksIChoZWlnaHQ6IDEw
MHB4KScpOwotICB0ZXN0X3F1ZXJ5X2ludmFsaWQoJyh3aWR0aDogMTAwcHgpIGFuZCAoaGVpZ2h0
OiAxMDBweCknKTsKLSAgdGVzdF9xdWVyeV9pbnZhbGlkKCcod2lkdGg6IDEwMHB4KSBvciAoaGVp
Z2h0OiAxMDBweCknKTsKLSAgdGVzdF9xdWVyeV9pbnZhbGlkKCdub3QgKHdpZHRoOiAxMDBweCkn
KTsKLSAgdGVzdF9xdWVyeV9pbnZhbGlkKCdmb28gKHdpZHRoOiAxMDBweCknKTsKLQotICB0ZXN0
X2NvbnRhaW5lcl9zZWxlY3Rvcl92YWxpZCgnZm9vJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVj
dG9yX3ZhbGlkKCcgZm9vJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX3ZhbGlkKCcgZm9v
ICcpOwotCi0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX2ludmFsaWQoJ2ZvbyBmb28nKTsKLSAg
dGVzdF9jb250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnMXB4Jyk7Ci0gIHRlc3RfY29udGFpbmVy
X3NlbGVjdG9yX2ludmFsaWQoJzUwZ2lsJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX2lu
dmFsaWQoJ25hbWUoZm9vKScpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCd0
eXBlKGlubGluZS1zaXplKScpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCci
Zm9vIicpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCciaW5oZXJpdCInKTsK
LSAgdGVzdF9jb250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnbm9uZScpOwotICB0ZXN0X2NvbnRh
aW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCdOb25lJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9y
X2ludmFsaWQoJ25vcm1hbCcpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCdO
b3JtYWwnKTsKLSAgdGVzdF9jb250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnYXV0bycpOwotICB0
ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCdBdXRvJyk7Ci0gIHRlc3RfY29udGFpbmVy
X3NlbGVjdG9yX2ludmFsaWQoJ2FuZCcpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZh
bGlkKCdvcicpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCdub3QnKTsKLSAg
dGVzdF9jb250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnQW5kJyk7Ci0gIHRlc3RfY29udGFpbmVy
X3NlbGVjdG9yX2ludmFsaWQoJ29SJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX2ludmFs
aWQoJ25PdCcpOwotCi0gIHRlc3RfcXVlcnlfa25vd24oJ3N0eWxlKC0tbXktcHJvcDogZm9vKScp
OwotICB0ZXN0X3F1ZXJ5X2tub3duKCdzdHlsZSgtLW15LXByb3A6IGZvbyAtIGJhciAoKSknKTsK
LSAgdGVzdF9xdWVyeV9rbm93bignc3R5bGUobm90ICgoLS1mb286IGNhbGMoMTBweCArIDJlbSkp
IGFuZCAoKC0tZm9vOiB1cmwoeCkpKSkpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJ3N0eWxlKCgt
LWZvbzogYmFyKSBvciAoLS1iYXI6IDEwcHgpKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCdzdHls
ZSgtLWZvbzogYmFyICFpbXBvcnRhbnQpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJ3N0eWxlKC0t
bXktcHJvcDopJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJ3N0eWxlKC0tbXktcHJvcDogKScpOwot
Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignc3R5bGUoLS1mb286IGJhcjspJyk7Ci0gIHRlc3RfcXVl
cnlfdW5rbm93bignc3R5bGUoLS1mb28pJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignc3R5bGUo
c3R5bGUoLS1mb286IGJhcikpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcod2lkdGgpJyk7
CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcobWluLXdpZHRoOiAwcHgpJyk7CisgIHRlc3RfY29u
ZGl0aW9uX2tub3duKCcobWF4LXdpZHRoOiAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3du
KCcoaGVpZ2h0KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKG1pbi1oZWlnaHQ6IDBweCkn
KTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyhtYXgtaGVpZ2h0OiAwcHgpJyk7CisgIHRlc3Rf
Y29uZGl0aW9uX2tub3duKCcoYXNwZWN0LXJhdGlvKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93
bignKG1pbi1hc3BlY3QtcmF0aW86IDEvMiknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyht
YXgtYXNwZWN0LXJhdGlvOiAxLzIpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcob3JpZW50
YXRpb246IHBvcnRyYWl0KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKGlubGluZS1zaXpl
KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKG1pbi1pbmxpbmUtc2l6ZTogMHB4KScpOwor
ICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKG1heC1pbmxpbmUtc2l6ZTogMHB4KScpOworICB0ZXN0
X2NvbmRpdGlvbl9rbm93bignKGJsb2NrLXNpemUpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3du
KCcobWluLWJsb2NrLXNpemU6IDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyhtYXgt
YmxvY2stc2l6ZTogMHB4KScpOworCisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcod2lkdGg6IDEw
MHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKCh3aWR0aDogMTAwcHgpKScpOworICB0
ZXN0X2NvbmRpdGlvbl9rbm93bignKG5vdCAod2lkdGg6IDEwMHB4KSknKTsKKyAgdGVzdF9jb25k
aXRpb25fa25vd24oJygod2lkdGg6IDEwMHB4KSBhbmQgKGhlaWdodDogMTAwcHgpKScpOworICB0
ZXN0X2NvbmRpdGlvbl9rbm93bignKCgod2lkdGg6IDQwcHgpIG9yICh3aWR0aDogNTBweCkpIGFu
ZCAoaGVpZ2h0OiAxMDBweCkpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoKHdpZHRoOiAx
MDBweCkgYW5kICgoaGVpZ2h0OiA0MHB4KSBvciAoaGVpZ2h0OiA1MHB4KSkpJyk7CisgIHRlc3Rf
Y29uZGl0aW9uX2tub3duKCcoKCh3aWR0aDogNDBweCkgYW5kIChoZWlnaHQ6IDUwcHgpKSBvciAo
aGVpZ2h0OiAxMDBweCkpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoKHdpZHRoOiA1MHB4
KSBvciAoKHdpZHRoOiA0MHB4KSBhbmQgKGhlaWdodDogNTBweCkpKScpOworICB0ZXN0X2NvbmRp
dGlvbl9rbm93bignKCh3aWR0aDogMTAwcHgpIGFuZCAobm90IChoZWlnaHQ6IDEwMHB4KSkpJyk7
CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcod2lkdGggPCAxMDBweCknKTsKKyAgdGVzdF9jb25k
aXRpb25fa25vd24oJyh3aWR0aCA8PSAxMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24o
Jyh3aWR0aCA9IDEwMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoID4gMTAw
cHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcod2lkdGggPj0gMTAwcHgpJyk7CisgIHRl
c3RfY29uZGl0aW9uX2tub3duKCcoMTAwcHggPCB3aWR0aCknKTsKKyAgdGVzdF9jb25kaXRpb25f
a25vd24oJygxMDBweCA8PSB3aWR0aCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJygxMDBw
eCA9IHdpZHRoKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKDEwMHB4ID4gd2lkdGgpJyk7
CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoMTAwcHggPj0gd2lkdGgpJyk7CisgIHRlc3RfY29u
ZGl0aW9uX2tub3duKCcoMTAwcHggPCB3aWR0aCA8IDIwMHB4KScpOworICB0ZXN0X2NvbmRpdGlv
bl9rbm93bignKDEwMHB4IDwgd2lkdGggPD0gMjAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tu
b3duKCcoMTAwcHggPD0gd2lkdGggPCAyMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24o
JygxMDBweCA+IHdpZHRoID4gMjAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoMTAw
cHggPiB3aWR0aCA+PSAyMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJygxMDBweCA+
PSB3aWR0aCA+IDIwMHB4KScpOworCisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcod2lkdGg6IGNh
bGMoMTBweCkpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcod2lkdGg6IGNhbGMoMTBlbSkp
Jyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcod2lkdGg6IGNhbGMoMTBweCArIDEwZW0pKScp
OworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoIDwgY2FsYygxMHB4ICsgMTBlbSkpJyk7
CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcod2lkdGggPCBtYXgoMTBweCwgMTBlbSkpJyk7Cisg
IHRlc3RfY29uZGl0aW9uX2tub3duKCcoY2FsYygxMHB4ICsgMTBlbSkgPCB3aWR0aCknKTsKKyAg
dGVzdF9jb25kaXRpb25fa25vd24oJyhjYWxjKDEwcHggKyAxMGVtKSA8IHdpZHRoIDwgbWF4KDMw
cHgsIDMwZW0pKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoOiAxMDBweCkgYW5k
IChoZWlnaHQ6IDEwMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoOiAxMDBw
eCkgb3IgKGhlaWdodDogMTAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCdub3QgKHdp
ZHRoOiAxMDBweCknKTsKKworICB0ZXN0X2NvbmRpdGlvbl91bmtub3duKCdmb28od2lkdGgpJyk7
CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJ3NpemUod2lkdGgpJyk7CisgIHRlc3RfY29uZGl0
aW9uX3Vua25vd24oJyhhc2RmKScpOworICB0ZXN0X2NvbmRpdGlvbl91bmtub3duKCcocmVzb2x1
dGlvbiA+IDEwMGRwaSknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignKHJlc29sdXRpb246
IDE1MGRwaSknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignKGNvbG9yKScpOworICB0ZXN0
X2NvbmRpdGlvbl91bmtub3duKCcobWluLWNvbG9yOiAxKScpOworICB0ZXN0X2NvbmRpdGlvbl91
bmtub3duKCcoY29sb3ItaW5kZXggPj0gMSknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bign
c2l6ZShncmlkKScpOworICB0ZXN0X2NvbmRpdGlvbl91bmtub3duKCcoZ3JpZCknKTsKKyAgdGVz
dF9jb25kaXRpb25fdW5rbm93bignKHdpZHRoID09IDEwMHB4KScpOworICB0ZXN0X2NvbmRpdGlv
bl91bmtub3duKCcoMTAwcHggPT0gd2lkdGgpJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24o
JygxMDBweCA9IHdpZHRoID0gMjAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJygx
MDBweCA8IHdpZHRoID4gMjAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJygxMDBw
eCA8PSB3aWR0aCA+PSAyMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignKDEwMHB4
IDw9IHdpZHRoID4gMjAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJygxMDBweCA8
IHdpZHRoID49IDIwMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl91bmtub3duKCcoMTAwcHggOiB3
aWR0aCA6IDIwMHB4KScpOworCisgIHRlc3RfY29uZGl0aW9uX2ludmFsaWQoJ3NjcmVlbicpOwor
ICB0ZXN0X2NvbmRpdGlvbl9pbnZhbGlkKCdwcmludCcpOworICB0ZXN0X2NvbmRpdGlvbl9pbnZh
bGlkKCdub3QgcHJpbnQnKTsKKyAgdGVzdF9jb25kaXRpb25faW52YWxpZCgnb25seSBwcmludCcp
OworICB0ZXN0X2NvbmRpdGlvbl9pbnZhbGlkKCdzY3JlZW4gYW5kICh3aWR0aDogMTAwcHgpJyk7
CisgIHRlc3RfY29uZGl0aW9uX2ludmFsaWQoJ3NjcmVlbiBvciAod2lkdGg6IDEwMHB4KScpOwor
ICB0ZXN0X2NvbmRpdGlvbl9pbnZhbGlkKCdub3Qgc2NyZWVuIGFuZCAod2lkdGg6IDEwMHB4KScp
OworICB0ZXN0X2NvbmRpdGlvbl9pbnZhbGlkKCdub3Qgc2NyZWVuIG9yICh3aWR0aDogMTAwcHgp
Jyk7CisgIHRlc3RfY29uZGl0aW9uX2ludmFsaWQoJyh3aWR0aDogMTAwcHgpLCAoaGVpZ2h0OiAx
MDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25faW52YWxpZCgnZm9vICh3aWR0aDogMTAwcHgpJyk7
CisKKyAgdGVzdF9ydWxlX3ZhbGlkKCduYW1lIG5vdCAod2lkdGggPD0gNTAwcHgpJyk7CisgIHRl
c3RfcnVsZV92YWxpZCgnbm90ICh3aWR0aCA8PSA1MDBweCknKTsKKworICB0ZXN0X2NvbnRhaW5l
cl9uYW1lX3ZhbGlkKCdmb28nKTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV92YWxpZCgnIGZvbycp
OworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX3ZhbGlkKCcgZm9vICcpOworCisgIHRlc3RfY29udGFp
bmVyX25hbWVfaW52YWxpZCgnZm9vIGZvbycpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFs
aWQoJzFweCcpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQoJzUwZ2lsJyk7CisgIHRl
c3RfY29udGFpbmVyX25hbWVfaW52YWxpZCgnbmFtZShmb28pJyk7CisgIHRlc3RfY29udGFpbmVy
X25hbWVfaW52YWxpZCgndHlwZShpbmxpbmUtc2l6ZSknKTsKKyAgdGVzdF9jb250YWluZXJfbmFt
ZV9pbnZhbGlkKCciZm9vIicpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQoJyJpbmhl
cml0IicpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQoJ25vbmUnKTsKKyAgdGVzdF9j
b250YWluZXJfbmFtZV9pbnZhbGlkKCdOb25lJyk7CisgIHRlc3RfY29udGFpbmVyX25hbWVfaW52
YWxpZCgnbm9ybWFsJyk7CisgIHRlc3RfY29udGFpbmVyX25hbWVfaW52YWxpZCgnTm9ybWFsJyk7
CisgIHRlc3RfY29udGFpbmVyX25hbWVfaW52YWxpZCgnYXV0bycpOworICB0ZXN0X2NvbnRhaW5l
cl9uYW1lX2ludmFsaWQoJ0F1dG8nKTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCdh
bmQnKTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCdvcicpOworICB0ZXN0X2NvbnRh
aW5lcl9uYW1lX2ludmFsaWQoJ25vdCcpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQo
J0FuZCcpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQoJ29SJyk7CisgIHRlc3RfY29u
dGFpbmVyX25hbWVfaW52YWxpZCgnbk90Jyk7CisKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJ3N0
eWxlKC0tbXktcHJvcDogZm9vKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignc3R5bGUoLS1t
eS1wcm9wOiBmb28gLSBiYXIgKCkpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCdzdHlsZShu
b3QgKCgtLWZvbzogY2FsYygxMHB4ICsgMmVtKSkgYW5kICgoLS1mb286IHVybCh4KSkpKSknKTsK
KyAgdGVzdF9jb25kaXRpb25fa25vd24oJ3N0eWxlKCgtLWZvbzogYmFyKSBvciAoLS1iYXI6IDEw
cHgpKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignc3R5bGUoLS1mb286IGJhciAhaW1wb3J0
YW50KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignc3R5bGUoLS1teS1wcm9wOiknKTsKKyAg
dGVzdF9jb25kaXRpb25fa25vd24oJ3N0eWxlKC0tbXktcHJvcDogKScpOworCisgIHRlc3RfY29u
ZGl0aW9uX3Vua25vd24oJ3N0eWxlKC0tZm9vOiBiYXI7KScpOworICB0ZXN0X2NvbmRpdGlvbl91
bmtub3duKCdzdHlsZSgtLWZvbyknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignc3R5bGUo
c3R5bGUoLS1mb286IGJhcikpJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5l
ci1xdWVyaWVzL2NyYXNodGVzdHMvY2hyb21lLWJ1Zy0xMzQ2OTY5LWNyYXNoLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1idWctMTM0Njk2OS1jcmFzaC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzdjNzRjZjhjYjFjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvY3Jhc2h0ZXN0cy9jaHJvbWUt
YnVnLTEzNDY5NjktY3Jhc2guaHRtbApAQCAtMCwwICsxLDE0IEBACis8IWRvY3R5cGUgaHRtbD4K
Kzx0aXRsZT5DaHJvbWUgY3Jhc2ggYnVnIDEzNDY5Njk8L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2NyYnVnLmNvbS8xMzQ2OTY5Ij4KKzx0YWJsZSBpZD0idGFibGUiPiA8
L3RhYmxlPgorPHNjcmlwdD4KKyAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisgIHRhYmxlLnN0
eWxlLmNvbnRhaW5lclR5cGUgPSAiaW5saW5lLXNpemUiOworICB0YWJsZS5zdHlsZS5hcHBlYXJh
bmNlID0gImF1dG8iOworICB0YWJsZS5zdHlsZS5jb2x1bW5Db3VudCA9IDI7CisgIHRhYmxlLmNy
ZWF0ZVRCb2R5KCk7CisgIHRhYmxlLmNyZWF0ZUNhcHRpb24oKTsKKyAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRUb3A7CisgIHRhYmxlLnN0eWxlLndoaXRlU3BhY2UgPSAicHJlLXdyYXAiOworPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1y
ZW1vdmUtaW5zZXJ0LWV2YWx1YXRvci1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMv
Y3Jhc2h0ZXN0cy9jaHJvbWUtcmVtb3ZlLWluc2VydC1ldmFsdWF0b3ItY3Jhc2guaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjk4NmY2YjBiZjY5ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY2hyb21lLXJlbW92
ZS1pbnNlcnQtZXZhbHVhdG9yLWNyYXNoLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8dGl0bGU+UmVtb3ZpbmcgYW5kIHJlLWluc2VydGluZyBhIGNvbnRhaW5lciBzaG91
bGQgY3Jhc2g8L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2NyYnVnLmNv
bS8xMzQyNzUwIj4KKzxzdHlsZT4KKyAgI2NvbnRhaW5lciB7IGNvbnRhaW5lci10eXBlOiBpbmxp
bmUtc2l6ZSB9Cis8L3N0eWxlPgorPGRpdiBpZD0ib3V0ZXIiPgorICA8ZGl2IGlkPSJjb250YWlu
ZXIiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorICBjb250YWluZXIub2Zmc2V0VG9wOworICBs
ZXQgcmVtb3ZlZCA9IGNvbnRhaW5lcjsKKyAgY29udGFpbmVyLnJlbW92ZSgpOworICBvdXRlci5h
cHBlbmRDaGlsZChyZW1vdmVkKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVy
LXF1ZXJpZXMvY3Jhc2h0ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVz
L2NyYXNodGVzdHMvdzNjLWltcG9ydC5sb2cKaW5kZXggZDMxZmY0NmJkOWE1Li43YTExODZmZDU2
ODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvdzNjLWltcG9y
dC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvY3Jhc2h0ZXN0cy93M2MtaW1wb3J0Lmxv
ZwpAQCAtMTgsNyArMTgsOSBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVz
L2NyYXNodGVzdHMvY2FudmFzLWFzLWNvbnRhaW5lci1jcmFzaC5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVy
LXF1ZXJpZXMvY3Jhc2h0ZXN0cy9jaHJvbWUtYnVnLTEyODk3MTgtMDAwLWNyYXNoLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFp
bi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1idWctMTI4OTcxOC0wMDEtY3Jh
c2guaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY2hyb21lLWJ1Zy0xMzQ2
OTY5LWNyYXNoLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1x
dW90ZXMtY3Jhc2guaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY2hyb21l
LXJlbW92ZS1pbnNlcnQtZXZhbHVhdG9yLWNyYXNoLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmll
cy9jcmFzaHRlc3RzL2NvbHVtbnMtaW4tdGFibGUtMDAxLWNyYXNoLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWlu
ZXItcXVlcmllcy9jcmFzaHRlc3RzL2NvbHVtbnMtaW4tdGFibGUtMDAyLWNyYXNoLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFp
bi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL2NvbnRhaW5lci1pbi1jYW52YXMtY3Jhc2gu
aHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461357</attachid>
            <date>2022-08-02 05:57:01 -0700</date>
            <delta_ts>2022-08-02 05:58:51 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-243449-20220802155700.patch</filename>
            <type>text/plain</type>
            <size>44118</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSBjMzVlMDBhNzliZDMxODRmOGRjODU2OThkZDQ1ZjllMWZjNGRhZjZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBUdWUsIDIgQXVnIDIwMjIgMTI6NTM6MDkgKzAzMDAKU3ViamVjdDogW1BBVENIXSBbQ1NTIENv
bnRhaW5lciBRdWVyaWVzXSBVcGRhdGUgcXVlcnkgZ3JhbW1hciB0byB0aGUgc3BlYwogaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MzQ0OSA8cmRhcjovLzk3OTY3Njgy
PgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpUaGUgc3BlYyB3YXMgY2hhbmdlZCB0byBh
bGxvdyBsb2dpY2FsIG9wZXJhdG9ycyBvbiB0b3AgbGV2ZWwgd2l0aG91dCBwYXJlbnRoZXNpcyBt
YWtpbmcKCkBjb250YWluZXIgbm90IChmb28pCgpsZWdhbC4KCmh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3MtY29udGFpbi0zLyNjb250YWluZXItcnVsZQoKKiBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmll
cy9hdC1jb250YWluZXItcGFyc2luZy1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJp
ZXMvYXQtY29udGFpbmVyLXBhcnNpbmcuaHRtbDoKKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFz
aHRlc3RzL2Nocm9tZS1idWctMTM0Njk2OS1jcmFzaC5odG1sOiBBZGRlZC4KKiBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWlu
ZXItcXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1yZW1vdmUtaW5zZXJ0LWV2YWx1YXRvci1jcmFz
aC5odG1sOiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL3czYy1pbXBv
cnQubG9nOgoqIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb250YWluZXJSdWxlLmNwcDoKKFdlYkNv
cmU6OkNTU0NvbnRhaW5lclJ1bGU6OmNzc1RleHQgY29uc3QpOgoKRmFjdG9yIHF1ZXJ5IHNlcmlh
bGl6YXRpb24gdG8gYSBmdW5jdGlvbiBpbiBDUSBuYW1lc3BhY2UuCgooV2ViQ29yZTo6Q1NTQ29u
dGFpbmVyUnVsZTo6Y29uZGl0aW9uVGV4dCBjb25zdCk6CihXZWJDb3JlOjpDU1NDb250YWluZXJS
dWxlOjpuYW1lVGV4dCBjb25zdCk6CihXZWJDb3JlOjpDU1NDb250YWluZXJSdWxlOjpuYW1lRmls
dGVyVGV4dCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbnRhaW5l
clJ1bGUuaDoKKiBTb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuY3BwOgooV2ViQ29y
ZTo6Q1E6OnNlcmlhbGl6ZSk6CihXZWJDb3JlOjpzZXJpYWxpemUpOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeS5oOgoKVXBkYXRlIHRvIHRoZSBzcGVjIGdyYW1t
YXIgYW5kIHRlcm1pbm9sb2d5LgpDb250YWluZXJRdWVyeSBub3cgaW5jbHVkZXMgdGhlIG5hbWUg
cGFydCBhbmQgcmVwbGFjZXMgRmlsdGVyZWRDb250YWluZXJRdWVyeS4KUXVlcnlJblBhcmVucyBy
ZXBsYWNlcyBDb250YWluZXJRdWVyeS4KQWxzbyBtb3ZlIENvbnRhaW5lclF1ZXJ5IHRvIENRIG5h
bWVzcGFjZS4KCiogU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmNwcDoK
KFdlYkNvcmU6OkNvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lQ29udGFpbmVyUXVlcnkpOgoo
V2ViQ29yZTo6Q29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVRdWVyeUluUGFyZW5zKToKKFdl
YkNvcmU6OkNvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lQ29uZGl0aW9uKToKKFdlYkNvcmU6
OkNvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lRmlsdGVyZWRDb250YWluZXJRdWVyeSk6IERl
bGV0ZWQuCiogU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmg6CiogU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHA6CihXZWJDb3JlOjpTdHlsZVJ1bGVDb250YWlu
ZXI6OlN0eWxlUnVsZUNvbnRhaW5lcik6CihXZWJDb3JlOjpTdHlsZVJ1bGVDb250YWluZXI6OmNy
ZWF0ZSk6CiogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oOgoqIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5jcHA6CihXZWJDb3JlOjpDU1NQYXJzZXJJbXBsOjpj
b25zdW1lQ29udGFpbmVyUnVsZSk6CiogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuY3BwOgooV2ViQ29yZTo6YnVpbGRBcnJheUZvckdyb3VwaW5ncyk6CiogU291
cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwOgooV2ViQ29yZTo6
U3R5bGU6OkNvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZSBjb25zdCk6CihXZWJDb3Jl
OjpTdHlsZTo6Q29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OnNlbGVjdENvbnRhaW5lciBjb25zdCk6
CihXZWJDb3JlOjpTdHlsZTo6Q29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlUXVlcnlJ
blBhcmVucyBjb25zdCk6CihXZWJDb3JlOjpTdHlsZTo6Q29udGFpbmVyUXVlcnlFdmFsdWF0b3I6
OmV2YWx1YXRlQ29uZGl0aW9uIGNvbnN0KToKKFdlYkNvcmU6OlN0eWxlOjpDb250YWluZXJRdWVy
eUV2YWx1YXRvcjo6ZXZhbHVhdGVRdWVyeSBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNv
cmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuaDoKKiBTb3VyY2UvV2ViQ29yZS9zdHls
ZS9SdWxlU2V0Lmg6CihXZWJDb3JlOjpTdHlsZTo6IGNvbnN0KToKLS0tCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29udGFpbmVyUnVsZS5jcHAgICAgICAgfCAgMTQgKy0KIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb250YWluZXJSdWxlLmggICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUv
Y3NzL0NvbnRhaW5lclF1ZXJ5LmNwcCAgICAgICAgIHwgIDE2ICstCiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ29udGFpbmVyUXVlcnkuaCAgICAgICAgICAgfCAgMjEgKy0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9Db250YWluZXJRdWVyeVBhcnNlci5jcHAgICB8ICAxNiArLQogU291cmNlL1dlYkNvcmUvY3Nz
L0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmggICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSdWxlLmNwcCAgICAgICAgICAgICAgfCAgIDggKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJ1bGUuaCAgICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJJbXBsLmNwcCAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgfCAgIDYgKy0KIC4uLi9XZWJDb3JlL3N0eWxlL0NvbnRh
aW5lclF1ZXJ5RXZhbHVhdG9yLmNwcCB8ICAyMCArLQogLi4uL1dlYkNvcmUvc3R5bGUvQ29udGFp
bmVyUXVlcnlFdmFsdWF0b3IuaCAgIHwgICA2ICstCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxl
U2V0LmggICAgICAgICAgICAgICAgfCAgIDggKy0KIC4uLi9hdC1jb250YWluZXItcGFyc2luZy1l
eHBlY3RlZC50eHQgICAgICAgICB8ICA1NCArKy0tCiAuLi4vYXQtY29udGFpbmVyLXBhcnNpbmcu
aHRtbCAgICAgICAgICAgICAgICAgfCAyODUgKysrKysrKysrLS0tLS0tLS0tCiAuLi4vY3Jhc2h0
ZXN0cy9jaHJvbWUtYnVnLTEzNDY5NjktY3Jhc2guaHRtbCAgfCAgMTQgKwogLi4uL2Nocm9tZS1y
ZW1vdmUtaW5zZXJ0LWV2YWx1YXRvci1jcmFzaC5odG1sIHwgIDE1ICsKIC4uLi9jcmFzaHRlc3Rz
L3czYy1pbXBvcnQubG9nICAgICAgICAgICAgICAgICB8ICAgMiArCiAxOCBmaWxlcyBjaGFuZ2Vk
LCAyNzQgaW5zZXJ0aW9ucygrKSwgMjI3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY2hyb21lLWJ1Zy0xMzQ2OTY5LWNyYXNo
Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3Rz
L2Nocm9tZS1yZW1vdmUtaW5zZXJ0LWV2YWx1YXRvci1jcmFzaC5odG1sCgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbnRhaW5lclJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbnRhaW5lclJ1bGUuY3BwCmluZGV4IDIxNTBhMDNhYTU5Zi4uODFiZTBmNmE2NTE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29udGFpbmVyUnVsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbnRhaW5lclJ1bGUuY3BwCkBAIC01NCwxMyArNTQs
NyBAQCBTdHJpbmcgQ1NTQ29udGFpbmVyUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAKICAgICBidWls
ZGVyLmFwcGVuZCgiQGNvbnRhaW5lciAiKTsKIAotICAgIGF1dG8gbmFtZSA9IHN0eWxlUnVsZUNv
bnRhaW5lcigpLmZpbHRlcmVkUXVlcnkoKS5uYW1lRmlsdGVyOwotICAgIGlmICghbmFtZS5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgc2VyaWFsaXplSWRlbnRpZmllcihuYW1lLCBidWlsZGVyKTsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICB9Ci0KLSAgICBzZXJpYWxpemUoYnVpbGRl
ciwgc3R5bGVSdWxlQ29udGFpbmVyKCkuZmlsdGVyZWRRdWVyeSgpLnF1ZXJ5KTsKKyAgICBDUTo6
c2VyaWFsaXplKGJ1aWxkZXIsIHN0eWxlUnVsZUNvbnRhaW5lcigpLmNvbnRhaW5lclF1ZXJ5KCkp
OwogCiAgICAgYnVpbGRlci5hcHBlbmQoIiB7XG4iKTsKICAgICBhcHBlbmRDU1NUZXh0Rm9ySXRl
bXMoYnVpbGRlcik7CkBAIC03MiwxNSArNjYsMTUgQEAgU3RyaW5nIENTU0NvbnRhaW5lclJ1bGU6
OmNzc1RleHQoKSBjb25zdAogU3RyaW5nIENTU0NvbnRhaW5lclJ1bGU6OmNvbmRpdGlvblRleHQo
KSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBzZXJpYWxpemUoYnVp
bGRlciwgc3R5bGVSdWxlQ29udGFpbmVyKCkuZmlsdGVyZWRRdWVyeSgpLnF1ZXJ5KTsKKyAgICBD
UTo6c2VyaWFsaXplKGJ1aWxkZXIsIHN0eWxlUnVsZUNvbnRhaW5lcigpLmNvbnRhaW5lclF1ZXJ5
KCkuY29uZGl0aW9uKTsKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCi1TdHJp
bmcgQ1NTQ29udGFpbmVyUnVsZTo6bmFtZUZpbHRlclRleHQoKSBjb25zdAorU3RyaW5nIENTU0Nv
bnRhaW5lclJ1bGU6Om5hbWVUZXh0KCkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgCi0gICAgYXV0byBuYW1lID0gc3R5bGVSdWxlQ29udGFpbmVyKCkuZmlsdGVyZWRR
dWVyeSgpLm5hbWVGaWx0ZXI7CisgICAgYXV0byBuYW1lID0gc3R5bGVSdWxlQ29udGFpbmVyKCku
Y29udGFpbmVyUXVlcnkoKS5uYW1lOwogICAgIGlmICghbmFtZS5pc0VtcHR5KCkpCiAgICAgICAg
IHNlcmlhbGl6ZUlkZW50aWZpZXIobmFtZSwgYnVpbGRlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb250YWluZXJSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29udGFpbmVyUnVsZS5oCmluZGV4IDVjOTUzMjU4NTJlYS4uMWVjNjRmMTJhYWNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29udGFpbmVyUnVsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDb250YWluZXJSdWxlLmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgog
CiAgICAgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgY29uZGl0aW9u
VGV4dCgpIGNvbnN0IGZpbmFsOwotICAgIFN0cmluZyBuYW1lRmlsdGVyVGV4dCgpIGNvbnN0Owor
ICAgIFN0cmluZyBuYW1lVGV4dCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGNvbnN0IFN0eWxl
UnVsZUNvbnRhaW5lciYgc3R5bGVSdWxlQ29udGFpbmVyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NvbnRhaW5lclF1ZXJ5LmNwcAppbmRleCAzODVmZWRmM2ZkZDkuLjAxMzViZmFiNGE3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuY3BwCkBAIC05MCw5ICs5MCw5IEBAIE9wdGlv
blNldDxBeGlzPiByZXF1aXJlZEF4ZXNGb3JGZWF0dXJlKGNvbnN0IEF0b21TdHJpbmcmIGZlYXR1
cmVOYW1lKQogdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYsIGNvbnN0IFNpemVGZWF0dXJl
Jik7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb25kaXRpb25UeXBlPiB2b2lkIHNlcmlhbGl6ZShTdHJp
bmdCdWlsZGVyJiwgY29uc3QgQ29uZGl0aW9uVHlwZSYpOwogCi1zdGF0aWMgdm9pZCBzZXJpYWxp
emUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgQ29udGFpbmVyUXVlcnkmIGNvbnRhaW5l
clF1ZXJ5KQorc3RhdGljIHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNv
bnN0IFF1ZXJ5SW5QYXJlbnMmIHF1ZXJ5KQogewotICAgIFdURjo6c3dpdGNoT24oY29udGFpbmVy
UXVlcnksIFsmXShhdXRvJiBub2RlKSB7CisgICAgV1RGOjpzd2l0Y2hPbihxdWVyeSwgWyZdKGF1
dG8mIG5vZGUpIHsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoJygnKTsKICAgICAgICAgc2VyaWFs
aXplKGJ1aWxkZXIsIG5vZGUpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOwpAQCAtMTg2
LDEyICsxODYsMjIgQEAgdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29u
c3QgQ29uZGl0aW9uVHlwZSYgY29uZGl0aW9uKQogICAgIH0KIH0KIAordm9pZCBzZXJpYWxpemUo
U3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgQ29udGFpbmVyQ29uZGl0aW9uJiBjb25kaXRp
b24pCit7CisgICAgc2VyaWFsaXplPENvbnRhaW5lckNvbmRpdGlvbj4oYnVpbGRlciwgY29uZGl0
aW9uKTsKIH0KIAogdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3Qg
Q29udGFpbmVyUXVlcnkmIHF1ZXJ5KQogewotICAgIENROjpzZXJpYWxpemUoYnVpbGRlciwgcXVl
cnkpOworICAgIGF1dG8gbmFtZSA9IHF1ZXJ5Lm5hbWU7CisgICAgaWYgKCFuYW1lLmlzRW1wdHko
KSkgeworICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKG5hbWUsIGJ1aWxkZXIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgIH0KKworICAgIHNlcmlhbGl6ZShidWlsZGVyLCBx
dWVyeS5jb25kaXRpb24pOwogfQogCiB9Cit9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Db250YWluZXJRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5
LmgKaW5kZXggNThlNjlmOWM5ODFkLi5kMTE4MjkzYjNlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250
YWluZXJRdWVyeS5oCkBAIC00NCw3ICs0NCw3IEBAIHN0cnVjdCBVbmtub3duUXVlcnkgewogICAg
IFN0cmluZyB0ZXh0OwogfTsKIAotdXNpbmcgQ29udGFpbmVyUXVlcnkgPSBzdGQ6OnZhcmlhbnQ8
Q29udGFpbmVyQ29uZGl0aW9uLCBTaXplRmVhdHVyZSwgVW5rbm93blF1ZXJ5PjsKK3VzaW5nIFF1
ZXJ5SW5QYXJlbnMgPSBzdGQ6OnZhcmlhbnQ8Q29udGFpbmVyQ29uZGl0aW9uLCBTaXplRmVhdHVy
ZSwgVW5rbm93blF1ZXJ5PjsKIAogZW51bSBjbGFzcyBMb2dpY2FsT3BlcmF0b3IgOiB1aW50OF90
IHsgQW5kLCBPciwgTm90IH07CiBlbnVtIGNsYXNzIENvbXBhcmlzb25PcGVyYXRvciA6IHVpbnQ4
X3QgeyBMZXNzVGhhbiwgTGVzc1RoYW5PckVxdWFsLCBFcXVhbCwgR3JlYXRlclRoYW4sIEdyZWF0
ZXJUaGFuT3JFcXVhbCB9OwpAQCAtNTIsNyArNTIsNyBAQCBlbnVtIGNsYXNzIFN5bnRheCA6IHVp
bnQ4X3QgeyBCb29sZWFuLCBDb2xvbiwgUmFuZ2UgfTsKIAogc3RydWN0IENvbnRhaW5lckNvbmRp
dGlvbiB7CiAgICAgTG9naWNhbE9wZXJhdG9yIGxvZ2ljYWxPcGVyYXRvciB7IExvZ2ljYWxPcGVy
YXRvcjo6QW5kIH07Ci0gICAgVmVjdG9yPENvbnRhaW5lclF1ZXJ5PiBxdWVyaWVzOworICAgIFZl
Y3RvcjxRdWVyeUluUGFyZW5zPiBxdWVyaWVzOwogfTsKIAogc3RydWN0IENvbXBhcmlzb24gewpA
QCAtODQsMTggKzg0LDE3IEBAIGVudW0gY2xhc3MgQXhpcyA6IHVpbnQ4X3QgewogfTsKIE9wdGlv
blNldDxBeGlzPiByZXF1aXJlZEF4ZXNGb3JGZWF0dXJlKGNvbnN0IEF0b21TdHJpbmcmKTsKIAot
fQotCi11c2luZyBDb250YWluZXJRdWVyeSA9IENROjpDb250YWluZXJRdWVyeTsKLQotc3RydWN0
IEZpbHRlcmVkQ29udGFpbmVyUXVlcnkgewotICAgIEF0b21TdHJpbmcgbmFtZUZpbHRlcjsKK3N0
cnVjdCBDb250YWluZXJRdWVyeSB7CisgICAgQXRvbVN0cmluZyBuYW1lOwogICAgIE9wdGlvblNl
dDxDUTo6QXhpcz4gYXhpc0ZpbHRlcjsKLSAgICBDb250YWluZXJRdWVyeSBxdWVyeTsKKyAgICBD
UTo6Q29udGFpbmVyQ29uZGl0aW9uIGNvbmRpdGlvbjsKIH07CiAKLXVzaW5nIENhY2hlZFF1ZXJ5
Q29udGFpbmVycyA9IFZlY3RvcjxSZWY8Y29uc3QgRWxlbWVudD4+OwotCit2b2lkIHNlcmlhbGl6
ZShTdHJpbmdCdWlsZGVyJiwgY29uc3QgQ29udGFpbmVyQ29uZGl0aW9uJik7CiB2b2lkIHNlcmlh
bGl6ZShTdHJpbmdCdWlsZGVyJiwgY29uc3QgQ29udGFpbmVyUXVlcnkmKTsKIAogfQorCit1c2lu
ZyBDYWNoZWRRdWVyeUNvbnRhaW5lcnMgPSBWZWN0b3I8UmVmPGNvbnN0IEVsZW1lbnQ+PjsKKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5jcHAKaW5kZXggNDEx
MzFkNTM1NjUxLi40NTg5YmFiYWQxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
b250YWluZXJRdWVyeVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5l
clF1ZXJ5UGFyc2VyLmNwcApAQCAtMzAsMTMgKzMwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotc3RkOjpvcHRpb25hbDxGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5PiBDb250YWluZXJRdWVy
eVBhcnNlcjo6Y29uc3VtZUZpbHRlcmVkQ29udGFpbmVyUXVlcnkoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgcmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCitzdGQ6Om9wdGlvbmFs
PENROjpDb250YWluZXJRdWVyeT4gQ29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVDb250YWlu
ZXJRdWVyeShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4
dCYgY29udGV4dCkKIHsKICAgICBDb250YWluZXJRdWVyeVBhcnNlciBwYXJzZXIoY29udGV4dCk7
Ci0gICAgcmV0dXJuIHBhcnNlci5jb25zdW1lRmlsdGVyZWRDb250YWluZXJRdWVyeShyYW5nZSk7
CisgICAgcmV0dXJuIHBhcnNlci5jb25zdW1lQ29udGFpbmVyUXVlcnkocmFuZ2UpOwogfQogCi1z
dGQ6Om9wdGlvbmFsPEZpbHRlcmVkQ29udGFpbmVyUXVlcnk+IENvbnRhaW5lclF1ZXJ5UGFyc2Vy
Ojpjb25zdW1lRmlsdGVyZWRDb250YWluZXJRdWVyeShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5n
ZSkKK3N0ZDo6b3B0aW9uYWw8Q1E6OkNvbnRhaW5lclF1ZXJ5PiBDb250YWluZXJRdWVyeVBhcnNl
cjo6Y29uc3VtZUNvbnRhaW5lclF1ZXJ5KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewog
ICAgIGF1dG8gY29uc3VtZU5hbWUgPSBbJl0gewogICAgICAgICBpZiAocmFuZ2UucGVlaygpLnR5
cGUoKSA9PSBMZWZ0UGFyZW50aGVzaXNUb2tlbiB8fCByYW5nZS5wZWVrKCkudHlwZSgpID09IEZ1
bmN0aW9uVG9rZW4pCkBAIC01MSwxNCArNTEsMTQgQEAgc3RkOjpvcHRpb25hbDxGaWx0ZXJlZENv
bnRhaW5lclF1ZXJ5PiBDb250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3VtZUZpbHRlcmVkQ29udGEK
IAogICAgIG1fcmVxdWlyZWRBeGVzID0geyB9OwogCi0gICAgYXV0byBxdWVyeSA9IGNvbnN1bWVD
b250YWluZXJRdWVyeShyYW5nZSk7Ci0gICAgaWYgKCFxdWVyeSkKKyAgICBhdXRvIGNvbmRpdGlv
biA9IGNvbnN1bWVDb25kaXRpb248Q1E6OkNvbnRhaW5lckNvbmRpdGlvbj4ocmFuZ2UpOworICAg
IGlmICghY29uZGl0aW9uKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIEZpbHRl
cmVkQ29udGFpbmVyUXVlcnkgeyBuYW1lLCBtX3JlcXVpcmVkQXhlcywgKnF1ZXJ5IH07CisgICAg
cmV0dXJuIENROjpDb250YWluZXJRdWVyeSB7IG5hbWUsIG1fcmVxdWlyZWRBeGVzLCAqY29uZGl0
aW9uIH07CiB9CiAKLXN0ZDo6b3B0aW9uYWw8Q1E6OkNvbnRhaW5lclF1ZXJ5PiBDb250YWluZXJR
dWVyeVBhcnNlcjo6Y29uc3VtZUNvbnRhaW5lclF1ZXJ5KENTU1BhcnNlclRva2VuUmFuZ2UmIHJh
bmdlKQorc3RkOjpvcHRpb25hbDxDUTo6UXVlcnlJblBhcmVucz4gQ29udGFpbmVyUXVlcnlQYXJz
ZXI6OmNvbnN1bWVRdWVyeUluUGFyZW5zKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewog
ICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pIHsKICAgICAgICAg
YXV0byBuYW1lID0gcmFuZ2UucGVlaygpLnZhbHVlKCk7CkBAIC05Miw3ICs5Miw3IEBAIHN0ZDo6
b3B0aW9uYWw8Q29uZGl0aW9uVHlwZT4gQ29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVDb25k
aXRpb24oQ1NTUGFyc2VyVG9rCiB7CiAgICAgYXV0byBjb25zdW1lUXVlcnkgPSBbJl0oQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgcmFuZ2UpIHsKICAgICAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX3Nh
bWVfdjxDUTo6Q29udGFpbmVyQ29uZGl0aW9uLCBDb25kaXRpb25UeXBlPikKLSAgICAgICAgICAg
IHJldHVybiBjb25zdW1lQ29udGFpbmVyUXVlcnkocmFuZ2UpOworICAgICAgICAgICAgcmV0dXJu
IGNvbnN1bWVRdWVyeUluUGFyZW5zKHJhbmdlKTsKICAgICAgICAgLy8gU3R5bGUgcXVlcnkgc3Vw
cG9ydCB3b3VsZCBiZSBoZXJlLgogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5l
clF1ZXJ5UGFyc2VyLmgKaW5kZXggODVjNmJiODc1YTAzLi5kZTdhZGQ1Y2I3ODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5oCkBAIC0zNCwxMSArMzQsMTEgQEAg
Y2xhc3MgQ1NTUGFyc2VyVG9rZW5SYW5nZTsKIAogY2xhc3MgQ29udGFpbmVyUXVlcnlQYXJzZXIg
ewogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEZpbHRlcmVkQ29udGFpbmVyUXVl
cnk+IGNvbnN1bWVGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5KENTU1BhcnNlclRva2VuUmFuZ2UmLCBj
b25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q1E6OkNv
bnRhaW5lclF1ZXJ5PiBjb25zdW1lQ29udGFpbmVyUXVlcnkoQ1NTUGFyc2VyVG9rZW5SYW5nZSYs
IGNvbnN0IENTU1BhcnNlckNvbnRleHQmKTsKIAogcHJpdmF0ZToKLSAgICBzdGQ6Om9wdGlvbmFs
PEZpbHRlcmVkQ29udGFpbmVyUXVlcnk+IGNvbnN1bWVGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5KENT
U1BhcnNlclRva2VuUmFuZ2UmKTsKICAgICBzdGQ6Om9wdGlvbmFsPENROjpDb250YWluZXJRdWVy
eT4gY29uc3VtZUNvbnRhaW5lclF1ZXJ5KENTU1BhcnNlclRva2VuUmFuZ2UmKTsKKyAgICBzdGQ6
Om9wdGlvbmFsPENROjpRdWVyeUluUGFyZW5zPiBjb25zdW1lUXVlcnlJblBhcmVucyhDU1NQYXJz
ZXJUb2tlblJhbmdlJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29uZGl0aW9uVHlwZT4gc3Rk
OjpvcHRpb25hbDxDb25kaXRpb25UeXBlPiBjb25zdW1lQ29uZGl0aW9uKENTU1BhcnNlclRva2Vu
UmFuZ2UmKTsKICAgICBzdGQ6Om9wdGlvbmFsPENROjpTaXplRmVhdHVyZT4gY29uc3VtZVNpemVG
ZWF0dXJlKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKICAgICBzdGQ6Om9wdGlvbmFsPENROjpTaXpl
RmVhdHVyZT4gY29uc3VtZVBsYWluU2l6ZUZlYXR1cmUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSdWxlLmNwcAppbmRleCBmOGRjZGI3ZTRiMzIuLjZiZmY3MjVlYzRjMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAKQEAgLTQ1NSwxOSArNDU1LDE5IEBAIFJlZjxTdHls
ZVJ1bGVMYXllcj4gU3R5bGVSdWxlTGF5ZXI6OmNyZWF0ZUJsb2NrKENhc2NhZGVMYXllck5hbWUm
JiBuYW1lLCBWZWN0b3I8CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3R5bGVSdWxlTGF5ZXIo
V1RGTW92ZShuYW1lKSwgV1RGTW92ZShydWxlcykpKTsKIH0KIAotU3R5bGVSdWxlQ29udGFpbmVy
OjpTdHlsZVJ1bGVDb250YWluZXIoRmlsdGVyZWRDb250YWluZXJRdWVyeSYmIHF1ZXJ5LCBWZWN0
b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+PiYmIHJ1bGVzKQorU3R5bGVSdWxlQ29udGFpbmVyOjpT
dHlsZVJ1bGVDb250YWluZXIoQ1E6OkNvbnRhaW5lclF1ZXJ5JiYgcXVlcnksIFZlY3RvcjxSZWZQ
dHI8U3R5bGVSdWxlQmFzZT4+JiYgcnVsZXMpCiAgICAgOiBTdHlsZVJ1bGVHcm91cChTdHlsZVJ1
bGVUeXBlOjpDb250YWluZXIsIFdURk1vdmUocnVsZXMpKQotICAgICwgbV9maWx0ZXJlZFF1ZXJ5
KFdURk1vdmUocXVlcnkpKQorICAgICwgbV9jb250YWluZXJRdWVyeShXVEZNb3ZlKHF1ZXJ5KSkK
IHsKIH0KIAogU3R5bGVSdWxlQ29udGFpbmVyOjpTdHlsZVJ1bGVDb250YWluZXIoY29uc3QgU3R5
bGVSdWxlQ29udGFpbmVyJiBvdGhlcikKICAgICA6IFN0eWxlUnVsZUdyb3VwKG90aGVyKQotICAg
ICwgbV9maWx0ZXJlZFF1ZXJ5KG90aGVyLm1fZmlsdGVyZWRRdWVyeSkKKyAgICAsIG1fY29udGFp
bmVyUXVlcnkob3RoZXIubV9jb250YWluZXJRdWVyeSkKIHsKIH0KIAotUmVmPFN0eWxlUnVsZUNv
bnRhaW5lcj4gU3R5bGVSdWxlQ29udGFpbmVyOjpjcmVhdGUoRmlsdGVyZWRDb250YWluZXJRdWVy
eSYmIHF1ZXJ5LCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+PiYmIHJ1bGVzKQorUmVmPFN0
eWxlUnVsZUNvbnRhaW5lcj4gU3R5bGVSdWxlQ29udGFpbmVyOjpjcmVhdGUoQ1E6OkNvbnRhaW5l
clF1ZXJ5JiYgcXVlcnksIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiYgcnVsZXMpCiB7
CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3R5bGVSdWxlQ29udGFpbmVyKFdURk1vdmUocXVl
cnkpLCBXVEZNb3ZlKHJ1bGVzKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oCmluZGV4IDIzMzBl
MjE0NGRmZS4uY2VkNTBkODc1ZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5oCkBAIC0yOTEsMTYg
KzI5MSwxNiBAQCBwcml2YXRlOgogCiBjbGFzcyBTdHlsZVJ1bGVDb250YWluZXIgZmluYWwgOiBw
dWJsaWMgU3R5bGVSdWxlR3JvdXAgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U3R5bGVSdWxl
Q29udGFpbmVyPiBjcmVhdGUoRmlsdGVyZWRDb250YWluZXJRdWVyeSYmLCBWZWN0b3I8UmVmUHRy
PFN0eWxlUnVsZUJhc2U+PiYmKTsKKyAgICBzdGF0aWMgUmVmPFN0eWxlUnVsZUNvbnRhaW5lcj4g
Y3JlYXRlKENROjpDb250YWluZXJRdWVyeSYmLCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+
PiYmKTsKICAgICBSZWY8U3R5bGVSdWxlQ29udGFpbmVyPiBjb3B5KCkgY29uc3QgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTdHlsZVJ1bGVDb250YWluZXIoKnRoaXMpKTsgfQogCi0gICAgY29uc3Qg
RmlsdGVyZWRDb250YWluZXJRdWVyeSYgZmlsdGVyZWRRdWVyeSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZmlsdGVyZWRRdWVyeTsgfQorICAgIGNvbnN0IENROjpDb250YWluZXJRdWVyeSYgY29udGFpbmVy
UXVlcnkoKSBjb25zdCB7IHJldHVybiBtX2NvbnRhaW5lclF1ZXJ5OyB9CiAKIHByaXZhdGU6Ci0g
ICAgU3R5bGVSdWxlQ29udGFpbmVyKEZpbHRlcmVkQ29udGFpbmVyUXVlcnkmJiwgVmVjdG9yPFJl
ZlB0cjxTdHlsZVJ1bGVCYXNlPj4mJik7CisgICAgU3R5bGVSdWxlQ29udGFpbmVyKENROjpDb250
YWluZXJRdWVyeSYmLCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+PiYmKTsKICAgICBTdHls
ZVJ1bGVDb250YWluZXIoY29uc3QgU3R5bGVSdWxlQ29udGFpbmVyJik7CiAKLSAgICBGaWx0ZXJl
ZENvbnRhaW5lclF1ZXJ5IG1fZmlsdGVyZWRRdWVyeTsKKyAgICBDUTo6Q29udGFpbmVyUXVlcnkg
bV9jb250YWluZXJRdWVyeTsKIH07CiAKIC8vIFRoaXMgaXMgb25seSB1c2VkIGJ5IHRoZSBDU1Mg
cGFyc2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5jcHAKaW5k
ZXggMTM4OWVlODNmZWEwLi40N2U5ZGUyZjI4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJJbXBsLmNwcApAQCAtNzgwLDcgKzc4MCw3IEBAIFJlZlB0cjxTdHlsZVJ1
bGVDb250YWluZXI+IENTU1BhcnNlckltcGw6OmNvbnN1bWVDb250YWluZXJSdWxlKENTU1BhcnNl
clRva2VuUmFuCiAgICAgaWYgKHByZWx1ZGUuYXRFbmQoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICBhdXRvIHF1ZXJ5ID0gQ29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVGaWx0
ZXJlZENvbnRhaW5lclF1ZXJ5KHByZWx1ZGUsIG1fY29udGV4dCk7CisgICAgYXV0byBxdWVyeSA9
IENvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lQ29udGFpbmVyUXVlcnkocHJlbHVkZSwgbV9j
b250ZXh0KTsKICAgICBpZiAoIXF1ZXJ5KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCmluZGV4
IDk0MGY0MDU5YjUyYS4uNDE0N2M5NGJkMTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC01MTksOSArNTE5LDkgQEAgc3RhdGlj
IFJlZjxKU09OOjpBcnJheU9mPFByb3RvY29sOjpDU1M6Okdyb3VwaW5nPj4gYnVpbGRBcnJheUZv
ckdyb3VwaW5ncyhDU1NSdWwKICAgICAgICAgICAgICAgICAucmVsZWFzZSgpOwogCiAgICAgICAg
ICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgICAgICBhdXRvIG5hbWVGaWx0ZXIg
PSBjb250YWluZXJSdWxlLT5uYW1lRmlsdGVyVGV4dCgpOwotICAgICAgICAgICAgaWYgKCFuYW1l
RmlsdGVyLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChuYW1lRmls
dGVyLCAnICcpOworICAgICAgICAgICAgYXV0byBuYW1lVGV4dCA9IGNvbnRhaW5lclJ1bGUtPm5h
bWVUZXh0KCk7CisgICAgICAgICAgICBpZiAoIW5hbWVUZXh0LmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZChuYW1lVGV4dCwgJyAnKTsKICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKGNvbnRhaW5lclJ1bGUtPmNvbmRpdGlvblRleHQoKSk7CiAgICAgICAgICAgICBj
b250YWluZXJSdWxlUGF5bG9hZC0+c2V0VGV4dChidWlsZGVyLnRvU3RyaW5nKCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5jcHAKaW5kZXgg
ZjljNWY2YzJjZGQ3Li42MTQ3NGZlODdkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTUzLDE2ICs1MywxNiBAQCBDb250YWlu
ZXJRdWVyeUV2YWx1YXRvcjo6Q29udGFpbmVyUXVlcnlFdmFsdWF0b3IoY29uc3QgRWxlbWVudCYg
ZWxlbWVudCwgU2VsZWN0aQogewogfQogCi1ib29sIENvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpl
dmFsdWF0ZShjb25zdCBGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5JiBmaWx0ZXJlZENvbnRhaW5lclF1
ZXJ5KSBjb25zdAorYm9vbCBDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6ZXZhbHVhdGUoY29uc3Qg
Q1E6OkNvbnRhaW5lclF1ZXJ5JiBjb250YWluZXJRdWVyeSkgY29uc3QKIHsKLSAgICBhdXRvIGNv
bnRhaW5lciA9IHNlbGVjdENvbnRhaW5lcihmaWx0ZXJlZENvbnRhaW5lclF1ZXJ5KTsKKyAgICBh
dXRvIGNvbnRhaW5lciA9IHNlbGVjdENvbnRhaW5lcihjb250YWluZXJRdWVyeSk7CiAgICAgaWYg
KCFjb250YWluZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBldmFsdWF0
ZVF1ZXJ5KGZpbHRlcmVkQ29udGFpbmVyUXVlcnkucXVlcnksICpjb250YWluZXIpID09IEV2YWx1
YXRpb25SZXN1bHQ6OlRydWU7CisgICAgcmV0dXJuIGV2YWx1YXRlQ29uZGl0aW9uKGNvbnRhaW5l
clF1ZXJ5LmNvbmRpdGlvbiwgKmNvbnRhaW5lcikgPT0gRXZhbHVhdGlvblJlc3VsdDo6VHJ1ZTsK
IH0KIAotYXV0byBDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6c2VsZWN0Q29udGFpbmVyKGNvbnN0
IEZpbHRlcmVkQ29udGFpbmVyUXVlcnkmIGZpbHRlcmVkQ29udGFpbmVyUXVlcnkpIGNvbnN0IC0+
IHN0ZDo6b3B0aW9uYWw8U2VsZWN0ZWRDb250YWluZXI+CithdXRvIENvbnRhaW5lclF1ZXJ5RXZh
bHVhdG9yOjpzZWxlY3RDb250YWluZXIoY29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5JiBjb250YWlu
ZXJRdWVyeSkgY29uc3QgLT4gc3RkOjpvcHRpb25hbDxTZWxlY3RlZENvbnRhaW5lcj4KIHsKICAg
ICAvLyAiRm9yIGVhY2ggZWxlbWVudCwgdGhlIHF1ZXJ5IGNvbnRhaW5lciB0byBiZSBxdWVyaWVk
IGlzIHNlbGVjdGVkIGZyb20gYW1vbmcgdGhlIGVsZW1lbnTigJlzCiAgICAgLy8gYW5jZXN0b3Ig
cXVlcnkgY29udGFpbmVycyB0aGF0IGhhdmUgYSB2YWxpZCBjb250YWluZXItdHlwZSBmb3IgYWxs
IHRoZSBjb250YWluZXIgZmVhdHVyZXMKQEAgLTgyLDcgKzgyLDcgQEAgYXV0byBDb250YWluZXJR
dWVyeUV2YWx1YXRvcjo6c2VsZWN0Q29udGFpbmVyKGNvbnN0IEZpbHRlcmVkQ29udGFpbmVyUXVl
cnkmIGZpbHQKIAogICAgIGF1dG8qIGNhY2hlZFF1ZXJ5Q29udGFpbmVycyA9IG1fc2VsZWN0b3JN
YXRjaGluZ1N0YXRlID8gJm1fc2VsZWN0b3JNYXRjaGluZ1N0YXRlLT5xdWVyeUNvbnRhaW5lcnMg
OiBudWxscHRyOwogCi0gICAgYXV0byogY29udGFpbmVyID0gc2VsZWN0Q29udGFpbmVyKGZpbHRl
cmVkQ29udGFpbmVyUXVlcnkuYXhpc0ZpbHRlciwgZmlsdGVyZWRDb250YWluZXJRdWVyeS5uYW1l
RmlsdGVyLCBtX2VsZW1lbnQuZ2V0KCksIG1fc2VsZWN0aW9uTW9kZSwgbV9zY29wZU9yZGluYWws
IGNhY2hlZFF1ZXJ5Q29udGFpbmVycyk7CisgICAgYXV0byogY29udGFpbmVyID0gc2VsZWN0Q29u
dGFpbmVyKGNvbnRhaW5lclF1ZXJ5LmF4aXNGaWx0ZXIsIGNvbnRhaW5lclF1ZXJ5Lm5hbWUsIG1f
ZWxlbWVudC5nZXQoKSwgbV9zZWxlY3Rpb25Nb2RlLCBtX3Njb3BlT3JkaW5hbCwgY2FjaGVkUXVl
cnlDb250YWluZXJzKTsKICAgICBpZiAoIWNvbnRhaW5lcikKICAgICAgICAgcmV0dXJuIHsgfTsK
IApAQCAtMTY0LDkgKzE2NCw5IEBAIGNvbnN0IEVsZW1lbnQqIENvbnRhaW5lclF1ZXJ5RXZhbHVh
dG9yOjpzZWxlY3RDb250YWluZXIoT3B0aW9uU2V0PENROjpBeGlzPiBheGVzCiAgICAgcmV0dXJu
IHsgfTsKIH0KIAotYXV0byBDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6ZXZhbHVhdGVRdWVyeShj
b25zdCBDUTo6Q29udGFpbmVyUXVlcnkmIGNvbnRhaW5lclF1ZXJ5LCBjb25zdCBTZWxlY3RlZENv
bnRhaW5lciYgY29udGFpbmVyKSBjb25zdCAtPiBFdmFsdWF0aW9uUmVzdWx0CithdXRvIENvbnRh
aW5lclF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZVF1ZXJ5SW5QYXJlbnMoY29uc3QgQ1E6OlF1ZXJ5
SW5QYXJlbnMmIHF1ZXJ5SW5QYXJlbnMsIGNvbnN0IFNlbGVjdGVkQ29udGFpbmVyJiBjb250YWlu
ZXIpIGNvbnN0IC0+IEV2YWx1YXRpb25SZXN1bHQKIHsKLSAgICByZXR1cm4gV1RGOjpzd2l0Y2hP
bihjb250YWluZXJRdWVyeSwgWyZdKGNvbnN0IENROjpDb250YWluZXJDb25kaXRpb24mIGNvbnRh
aW5lckNvbmRpdGlvbikgeworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKHF1ZXJ5SW5QYXJlbnMs
IFsmXShjb25zdCBDUTo6Q29udGFpbmVyQ29uZGl0aW9uJiBjb250YWluZXJDb25kaXRpb24pIHsK
ICAgICAgICAgcmV0dXJuIGV2YWx1YXRlQ29uZGl0aW9uKGNvbnRhaW5lckNvbmRpdGlvbiwgY29u
dGFpbmVyKTsKICAgICB9LCBbJl0oY29uc3QgQ1E6OlNpemVGZWF0dXJlJiBzaXplRmVhdHVyZSkg
ewogICAgICAgICByZXR1cm4gZXZhbHVhdGVTaXplRmVhdHVyZShzaXplRmVhdHVyZSwgY29udGFp
bmVyKTsKQEAgLTE4MywxMSArMTgzLDExIEBAIGF1dG8gQ29udGFpbmVyUXVlcnlFdmFsdWF0b3I6
OmV2YWx1YXRlQ29uZGl0aW9uKGNvbnN0IENvbmRpdGlvblR5cGUmIGNvbmRpdGlvbiwKIAogICAg
IHN3aXRjaCAoY29uZGl0aW9uLmxvZ2ljYWxPcGVyYXRvcikgewogICAgIGNhc2UgQ1E6OkxvZ2lj
YWxPcGVyYXRvcjo6Tm90OgotICAgICAgICByZXR1cm4gIWV2YWx1YXRlUXVlcnkoY29uZGl0aW9u
LnF1ZXJpZXMuZmlyc3QoKSwgY29udGFpbmVyKTsKKyAgICAgICAgcmV0dXJuICFldmFsdWF0ZVF1
ZXJ5SW5QYXJlbnMoY29uZGl0aW9uLnF1ZXJpZXMuZmlyc3QoKSwgY29udGFpbmVyKTsKICAgICBj
YXNlIENROjpMb2dpY2FsT3BlcmF0b3I6OkFuZDogewogICAgICAgICBhdXRvIHJlc3VsdCA9IEV2
YWx1YXRpb25SZXN1bHQ6OlRydWU7CiAgICAgICAgIGZvciAoYXV0byBxdWVyeSA6IGNvbmRpdGlv
bi5xdWVyaWVzKSB7Ci0gICAgICAgICAgICBhdXRvIHF1ZXJ5UmVzdWx0ID0gZXZhbHVhdGVRdWVy
eShxdWVyeSwgY29udGFpbmVyKTsKKyAgICAgICAgICAgIGF1dG8gcXVlcnlSZXN1bHQgPSBldmFs
dWF0ZVF1ZXJ5SW5QYXJlbnMocXVlcnksIGNvbnRhaW5lcik7CiAgICAgICAgICAgICBpZiAocXVl
cnlSZXN1bHQgPT0gRXZhbHVhdGlvblJlc3VsdDo6RmFsc2UpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIEV2YWx1YXRpb25SZXN1bHQ6OkZhbHNlOwogICAgICAgICAgICAgaWYgKHF1ZXJ5UmVzdWx0
ID09IEV2YWx1YXRpb25SZXN1bHQ6OlVua25vd24pCkBAIC0xOTgsNyArMTk4LDcgQEAgYXV0byBD
b250YWluZXJRdWVyeUV2YWx1YXRvcjo6ZXZhbHVhdGVDb25kaXRpb24oY29uc3QgQ29uZGl0aW9u
VHlwZSYgY29uZGl0aW9uLAogICAgIGNhc2UgQ1E6OkxvZ2ljYWxPcGVyYXRvcjo6T3I6IHsKICAg
ICAgICAgYXV0byByZXN1bHQgPSBFdmFsdWF0aW9uUmVzdWx0OjpGYWxzZTsKICAgICAgICAgZm9y
IChhdXRvIHF1ZXJ5IDogY29uZGl0aW9uLnF1ZXJpZXMpIHsKLSAgICAgICAgICAgIGF1dG8gcXVl
cnlSZXN1bHQgPSBldmFsdWF0ZVF1ZXJ5KHF1ZXJ5LCBjb250YWluZXIpOworICAgICAgICAgICAg
YXV0byBxdWVyeVJlc3VsdCA9IGV2YWx1YXRlUXVlcnlJblBhcmVucyhxdWVyeSwgY29udGFpbmVy
KTsKICAgICAgICAgICAgIGlmIChxdWVyeVJlc3VsdCA9PSBFdmFsdWF0aW9uUmVzdWx0OjpUcnVl
KQogICAgICAgICAgICAgICAgIHJldHVybiBFdmFsdWF0aW9uUmVzdWx0OjpUcnVlOwogICAgICAg
ICAgICAgaWYgKHF1ZXJ5UmVzdWx0ID09IEV2YWx1YXRpb25SZXN1bHQ6OlVua25vd24pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5oIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuaAppbmRleCAxYjcz
Nzg4MDM2Y2YuLmM3NzE5OWRiNzc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
Q29udGFpbmVyUXVlcnlFdmFsdWF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250
YWluZXJRdWVyeUV2YWx1YXRvci5oCkBAIC00MiwxNSArNDIsMTUgQEAgcHVibGljOgogICAgIGVu
dW0gY2xhc3MgU2VsZWN0aW9uTW9kZSA6IGJvb2wgeyBFbGVtZW50LCBQc2V1ZG9FbGVtZW50IH07
CiAgICAgQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IoY29uc3QgRWxlbWVudCYsIFNlbGVjdGlvbk1v
ZGUsIFNjb3BlT3JkaW5hbCwgU2VsZWN0b3JNYXRjaGluZ1N0YXRlKik7CiAKLSAgICBib29sIGV2
YWx1YXRlKGNvbnN0IEZpbHRlcmVkQ29udGFpbmVyUXVlcnkmKSBjb25zdDsKKyAgICBib29sIGV2
YWx1YXRlKGNvbnN0IENROjpDb250YWluZXJRdWVyeSYpIGNvbnN0OwogCiAgICAgc3RhdGljIGNv
bnN0IEVsZW1lbnQqIHNlbGVjdENvbnRhaW5lcihPcHRpb25TZXQ8Q1E6OkF4aXM+LCBjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IEVsZW1lbnQmLCBTZWxlY3Rpb25Nb2RlID0gU2VsZWN0aW9uTW9k
ZTo6RWxlbWVudCwgU2NvcGVPcmRpbmFsID0gU2NvcGVPcmRpbmFsOjpFbGVtZW50LCBjb25zdCBD
YWNoZWRRdWVyeUNvbnRhaW5lcnMqID0gbnVsbHB0cik7CiAKIHByaXZhdGU6CiAgICAgc3RydWN0
IFNlbGVjdGVkQ29udGFpbmVyOwotICAgIHN0ZDo6b3B0aW9uYWw8U2VsZWN0ZWRDb250YWluZXI+
IHNlbGVjdENvbnRhaW5lcihjb25zdCBGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5JikgY29uc3Q7Cisg
ICAgc3RkOjpvcHRpb25hbDxTZWxlY3RlZENvbnRhaW5lcj4gc2VsZWN0Q29udGFpbmVyKGNvbnN0
IENROjpDb250YWluZXJRdWVyeSYpIGNvbnN0OwogCi0gICAgRXZhbHVhdGlvblJlc3VsdCBldmFs
dWF0ZVF1ZXJ5KGNvbnN0IENROjpDb250YWluZXJRdWVyeSYsIGNvbnN0IFNlbGVjdGVkQ29udGFp
bmVyJikgY29uc3Q7CisgICAgRXZhbHVhdGlvblJlc3VsdCBldmFsdWF0ZVF1ZXJ5SW5QYXJlbnMo
Y29uc3QgQ1E6OlF1ZXJ5SW5QYXJlbnMmLCBjb25zdCBTZWxlY3RlZENvbnRhaW5lciYpIGNvbnN0
OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbmRpdGlvblR5cGU+IEV2YWx1YXRpb25SZXN1bHQg
ZXZhbHVhdGVDb25kaXRpb24oY29uc3QgQ29uZGl0aW9uVHlwZSYsIGNvbnN0IFNlbGVjdGVkQ29u
dGFpbmVyJikgY29uc3Q7CiAgICAgRXZhbHVhdGlvblJlc3VsdCBldmFsdWF0ZVNpemVGZWF0dXJl
KGNvbnN0IENROjpTaXplRmVhdHVyZSYsIGNvbnN0IFNlbGVjdGVkQ29udGFpbmVyJikgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1J1bGVTZXQuaAppbmRleCAxNmZmYTI5MDYzODYuLmZlNzExNTcwYzQ1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1J1bGVTZXQuaApAQCAtMTEzLDcgKzExMyw3IEBAIHB1YmxpYzoKICAgICBD
YXNjYWRlTGF5ZXJQcmlvcml0eSBjYXNjYWRlTGF5ZXJQcmlvcml0eUZvcihjb25zdCBSdWxlRGF0
YSYpIGNvbnN0OwogCiAgICAgYm9vbCBoYXNDb250YWluZXJRdWVyaWVzKCkgY29uc3QgeyByZXR1
cm4gIW1fY29udGFpbmVyUXVlcmllcy5pc0VtcHR5KCk7IH0KLSAgICBWZWN0b3I8Y29uc3QgRmls
dGVyZWRDb250YWluZXJRdWVyeSo+IGNvbnRhaW5lclF1ZXJpZXNGb3IoY29uc3QgUnVsZURhdGEm
KSBjb25zdDsKKyAgICBWZWN0b3I8Y29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5Kj4gY29udGFpbmVy
UXVlcmllc0Zvcihjb25zdCBSdWxlRGF0YSYpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBSdWxlU2V0QnVpbGRlcjsKQEAgLTIzMCwxNyArMjMwLDE3IEBAIGlubGluZSBDYXNj
YWRlTGF5ZXJQcmlvcml0eSBSdWxlU2V0OjpjYXNjYWRlTGF5ZXJQcmlvcml0eUZvcihjb25zdCBS
dWxlRGF0YSYgcnVsCiAgICAgcmV0dXJuIGNhc2NhZGVMYXllclByaW9yaXR5Rm9ySWRlbnRpZmll
cihpZGVudGlmaWVyKTsKIH0KIAotaW5saW5lIFZlY3Rvcjxjb25zdCBGaWx0ZXJlZENvbnRhaW5l
clF1ZXJ5Kj4gUnVsZVNldDo6Y29udGFpbmVyUXVlcmllc0Zvcihjb25zdCBSdWxlRGF0YSYgcnVs
ZURhdGEpIGNvbnN0CitpbmxpbmUgVmVjdG9yPGNvbnN0IENROjpDb250YWluZXJRdWVyeSo+IFJ1
bGVTZXQ6OmNvbnRhaW5lclF1ZXJpZXNGb3IoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKSBjb25z
dAogewogICAgIGlmIChtX2NvbnRhaW5lclF1ZXJ5SWRlbnRpZmllckZvclJ1bGVQb3NpdGlvbi5z
aXplKCkgPD0gcnVsZURhdGEucG9zaXRpb24oKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAg
IFZlY3Rvcjxjb25zdCBGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5Kj4gcXVlcmllczsKKyAgICBWZWN0
b3I8Y29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5Kj4gcXVlcmllczsKIAogICAgIGF1dG8gaWRlbnRp
ZmllciA9IG1fY29udGFpbmVyUXVlcnlJZGVudGlmaWVyRm9yUnVsZVBvc2l0aW9uW3J1bGVEYXRh
LnBvc2l0aW9uKCldOwogICAgIHdoaWxlIChpZGVudGlmaWVyKSB7CiAgICAgICAgIGF1dG8mIHF1
ZXJ5ID0gbV9jb250YWluZXJRdWVyaWVzW2lkZW50aWZpZXIgLSAxXTsKLSAgICAgICAgcXVlcmll
cy5hcHBlbmQoJnF1ZXJ5LmNvbnRhaW5lclJ1bGUtPmZpbHRlcmVkUXVlcnkoKSk7CisgICAgICAg
IHF1ZXJpZXMuYXBwZW5kKCZxdWVyeS5jb250YWluZXJSdWxlLT5jb250YWluZXJRdWVyeSgpKTsK
ICAgICAgICAgaWRlbnRpZmllciA9IHF1ZXJ5LnBhcmVudDsKICAgICB9OwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250YWluZXItcXVlcmllcy9hdC1jb250YWluZXItcGFyc2luZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250YWluZXItcXVlcmllcy9hdC1jb250YWluZXItcGFyc2luZy1leHBlY3RlZC50eHQK
aW5kZXggMjlkYWU4NTI0MTFjLi5mZTZmYjg3OTIxMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5l
ci1xdWVyaWVzL2F0LWNvbnRhaW5lci1wYXJzaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250
YWluZXItcXVlcmllcy9hdC1jb250YWluZXItcGFyc2luZy1leHBlY3RlZC50eHQKQEAgLTIxLDcg
KzIxLDcgQEAgUEFTUyAobm90ICh3aWR0aDogMTAwcHgpKQogUEFTUyAoKHdpZHRoOiAxMDBweCkg
YW5kIChoZWlnaHQ6IDEwMHB4KSkKIFBBU1MgKCgod2lkdGg6IDQwcHgpIG9yICh3aWR0aDogNTBw
eCkpIGFuZCAoaGVpZ2h0OiAxMDBweCkpCiBQQVNTICgod2lkdGg6IDEwMHB4KSBhbmQgKChoZWln
aHQ6IDQwcHgpIG9yIChoZWlnaHQ6IDUwcHgpKSkKLVBBU1MgKCgod2lkdGg6IDQweCkgYW5kICho
ZWlnaHQ6IDUwcHgpKSBvciAoaGVpZ2h0OiAxMDBweCkpCitQQVNTICgoKHdpZHRoOiA0MHB4KSBh
bmQgKGhlaWdodDogNTBweCkpIG9yIChoZWlnaHQ6IDEwMHB4KSkKIFBBU1MgKCh3aWR0aDogNTBw
eCkgb3IgKCh3aWR0aDogNDBweCkgYW5kIChoZWlnaHQ6IDUwcHgpKSkKIFBBU1MgKCh3aWR0aDog
MTAwcHgpIGFuZCAobm90IChoZWlnaHQ6IDEwMHB4KSkpCiBQQVNTICh3aWR0aCA8IDEwMHB4KQpA
QCAtNDcsNiArNDcsOSBAQCBQQVNTICh3aWR0aCA8IGNhbGMoMTBweCArIDEwZW0pKQogUEFTUyAo
d2lkdGggPCBtYXgoMTBweCwgMTBlbSkpCiBQQVNTIChjYWxjKDEwcHggKyAxMGVtKSA8IHdpZHRo
KQogUEFTUyAoY2FsYygxMHB4ICsgMTBlbSkgPCB3aWR0aCA8IG1heCgzMHB4LCAzMGVtKSkKK1BB
U1MgKHdpZHRoOiAxMDBweCkgYW5kIChoZWlnaHQ6IDEwMHB4KQorUEFTUyAod2lkdGg6IDEwMHB4
KSBvciAoaGVpZ2h0OiAxMDBweCkKK1BBU1Mgbm90ICh3aWR0aDogMTAwcHgpCiBQQVNTIGZvbyh3
aWR0aCkKIFBBU1Mgc2l6ZSh3aWR0aCkKIFBBU1MgKGFzZGYpCkBAIC03NCwzMiArNzcsMzEgQEAg
UEFTUyBzY3JlZW4gb3IgKHdpZHRoOiAxMDBweCkKIFBBU1Mgbm90IHNjcmVlbiBhbmQgKHdpZHRo
OiAxMDBweCkKIFBBU1Mgbm90IHNjcmVlbiBvciAod2lkdGg6IDEwMHB4KQogUEFTUyAod2lkdGg6
IDEwMHB4KSwgKGhlaWdodDogMTAwcHgpCi1QQVNTICh3aWR0aDogMTAwcHgpIGFuZCAoaGVpZ2h0
OiAxMDBweCkKLVBBU1MgKHdpZHRoOiAxMDBweCkgb3IgKGhlaWdodDogMTAwcHgpCi1QQVNTIG5v
dCAod2lkdGg6IDEwMHB4KQogUEFTUyBmb28gKHdpZHRoOiAxMDBweCkKLVBBU1MgQ29udGFpbmVy
IHNlbGVjdG9yOiBmb28KLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiAgZm9vCi1QQVNTIENvbnRh
aW5lciBzZWxlY3RvcjogIGZvbwotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6IGZvbyBmb28KLVBB
U1MgQ29udGFpbmVyIHNlbGVjdG9yOiAxcHgKLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiA1MGdp
bAotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6IG5hbWUoZm9vKQotUEFTUyBDb250YWluZXIgc2Vs
ZWN0b3I6IHR5cGUoaW5saW5lLXNpemUpCi1QQVNTIENvbnRhaW5lciBzZWxlY3RvcjogImZvbyIK
LVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiAiaW5oZXJpdCIKLVBBU1MgQ29udGFpbmVyIHNlbGVj
dG9yOiBub25lCi1QQVNTIENvbnRhaW5lciBzZWxlY3RvcjogTm9uZQotUEFTUyBDb250YWluZXIg
c2VsZWN0b3I6IG5vcm1hbAotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6IE5vcm1hbAotUEFTUyBD
b250YWluZXIgc2VsZWN0b3I6IGF1dG8KLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiBBdXRvCi1Q
QVNTIENvbnRhaW5lciBzZWxlY3RvcjogYW5kCi1QQVNTIENvbnRhaW5lciBzZWxlY3Rvcjogb3IK
LVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiBub3QKLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiBB
bmQKLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiBvUgotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6
IG5PdAorUEFTUyBuYW1lIG5vdCAod2lkdGggPD0gNTAwcHgpCitQQVNTIG5vdCAod2lkdGggPD0g
NTAwcHgpCitQQVNTIENvbnRhaW5lciBuYW1lOiBmb28KK1BBU1MgQ29udGFpbmVyIG5hbWU6ICBm
b28KK1BBU1MgQ29udGFpbmVyIG5hbWU6ICBmb28KK1BBU1MgQ29udGFpbmVyIG5hbWU6IGZvbyBm
b28KK1BBU1MgQ29udGFpbmVyIG5hbWU6IDFweAorUEFTUyBDb250YWluZXIgbmFtZTogNTBnaWwK
K1BBU1MgQ29udGFpbmVyIG5hbWU6IG5hbWUoZm9vKQorUEFTUyBDb250YWluZXIgbmFtZTogdHlw
ZShpbmxpbmUtc2l6ZSkKK1BBU1MgQ29udGFpbmVyIG5hbWU6ICJmb28iCitQQVNTIENvbnRhaW5l
ciBuYW1lOiAiaW5oZXJpdCIKK1BBU1MgQ29udGFpbmVyIG5hbWU6IG5vbmUKK1BBU1MgQ29udGFp
bmVyIG5hbWU6IE5vbmUKK1BBU1MgQ29udGFpbmVyIG5hbWU6IG5vcm1hbAorUEFTUyBDb250YWlu
ZXIgbmFtZTogTm9ybWFsCitQQVNTIENvbnRhaW5lciBuYW1lOiBhdXRvCitQQVNTIENvbnRhaW5l
ciBuYW1lOiBBdXRvCitQQVNTIENvbnRhaW5lciBuYW1lOiBhbmQKK1BBU1MgQ29udGFpbmVyIG5h
bWU6IG9yCitQQVNTIENvbnRhaW5lciBuYW1lOiBub3QKK1BBU1MgQ29udGFpbmVyIG5hbWU6IEFu
ZAorUEFTUyBDb250YWluZXIgbmFtZTogb1IKK1BBU1MgQ29udGFpbmVyIG5hbWU6IG5PdAogRkFJ
TCBzdHlsZSgtLW15LXByb3A6IGZvbykgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgInRydWUiIGJ1
dCBnb3QgIiIKIEZBSUwgc3R5bGUoLS1teS1wcm9wOiBmb28gLSBiYXIgKCkpIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJ0cnVlIiBidXQgZ290ICIiCiBGQUlMIHN0eWxlKG5vdCAoKC0tZm9vOiBj
YWxjKDEwcHggKyAyZW0pKSBhbmQgKCgtLWZvbzogdXJsKHgpKSkpKSBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAidHJ1ZSIgYnV0IGdvdCAiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJp
ZXMvYXQtY29udGFpbmVyLXBhcnNpbmcuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2F0LWNv
bnRhaW5lci1wYXJzaW5nLmh0bWwKaW5kZXggNjI3OGY4ODIxNmYzLi4zY2Y3ZjNhMDI1MWQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2F0LWNvbnRhaW5lci1wYXJzaW5nLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvYXQtY29udGFpbmVyLXBhcnNpbmcuaHRtbApAQCAt
MjIsMTcwICsyMiwxODEgQEAKICAgICByZXR1cm4gc3R5bGU7CiAgIH0KIAotICBmdW5jdGlvbiB0
ZXN0X3F1ZXJ5X2ludmFsaWQocXVlcnkpIHsKKyAgZnVuY3Rpb24gdGVzdF9ydWxlX3ZhbGlkKHF1
ZXJ5KSB7CiAgICAgdGVzdCh0ID0+IHsKICAgICAgIHQuYWRkX2NsZWFudXAoY2xlYW51cF9tYWlu
KTsKLSAgICAgIGxldCBzdHlsZSA9IHNldF9zdHlsZShgQGNvbnRhaW5lciBuYW1lICR7cXVlcnl9
IHt9YCk7Ci0gICAgICBhc3NlcnRfZXF1YWxzKHN0eWxlLnNoZWV0LnJ1bGVzLmxlbmd0aCwgMCk7
CisgICAgICBsZXQgc3R5bGUgPSBzZXRfc3R5bGUoYEBjb250YWluZXIgJHtxdWVyeX0ge31gKTsK
KyAgICAgIGFzc2VydF9lcXVhbHMoc3R5bGUuc2hlZXQucnVsZXMubGVuZ3RoLCAxKTsKICAgICB9
LCBxdWVyeSk7CiAgIH0KIAotICAvLyBUZXN0cyB0aGF0IDEpIHRoZSBxdWVyeSBwYXJzZXMsIGFu
ZCAyKSBpcyBlaXRoZXIgInVua25vd24iIG9yIG5vdCwgYXMKKyAgZnVuY3Rpb24gdGVzdF9jb25k
aXRpb25faW52YWxpZChjb25kaXRpb24pIHsKKyAgICB0ZXN0KHQgPT4geworICAgICAgdC5hZGRf
Y2xlYW51cChjbGVhbnVwX21haW4pOworICAgICAgbGV0IHN0eWxlID0gc2V0X3N0eWxlKGBAY29u
dGFpbmVyIG5hbWUgJHtjb25kaXRpb259IHt9YCk7CisgICAgICBhc3NlcnRfZXF1YWxzKHN0eWxl
LnNoZWV0LnJ1bGVzLmxlbmd0aCwgMCk7CisgICAgfSwgY29uZGl0aW9uKTsKKyAgfQorCisgIC8v
IFRlc3RzIHRoYXQgMSkgdGhlIGNvbmRpdGlvbiBwYXJzZXMsIGFuZCAyKSBpcyBlaXRoZXIgInVu
a25vd24iIG9yIG5vdCwgYXMKICAgLy8gc3BlY2lmaWVkLgotICBmdW5jdGlvbiB0ZXN0X3F1ZXJ5
X3ZhbGlkKHF1ZXJ5LCB1bmtub3duKSB7CisgIGZ1bmN0aW9uIHRlc3RfY29uZGl0aW9uX3ZhbGlk
KGNvbmRpdGlvbiwgdW5rbm93bikgewogICAgIHRlc3QodCA9PiB7CiAgICAgICB0LmFkZF9jbGVh
bnVwKGNsZWFudXBfbWFpbik7CiAgICAgICBsZXQgc3R5bGUgPSBzZXRfc3R5bGUoYAotICAgICAg
ICBAY29udGFpbmVyIG5hbWUgJHtxdWVyeX0ge30KLSAgICAgICAgQGNvbnRhaW5lciBuYW1lICgk
e3F1ZXJ5fSBvciAobm90ICR7cXVlcnl9KSkgeyBtYWluIHsgLS1tYXRjaDp0cnVlOyB9IH0KKyAg
ICAgICAgQGNvbnRhaW5lciBuYW1lICR7Y29uZGl0aW9ufSB7fQorICAgICAgICBAY29udGFpbmVy
IG5hbWUgKCR7Y29uZGl0aW9ufSkgb3IgKG5vdCAoJHtjb25kaXRpb259KSkgeyBtYWluIHsgLS1t
YXRjaDp0cnVlOyB9IH0KICAgICAgIGApOwogICAgICAgYXNzZXJ0X2VxdWFscyhzdHlsZS5zaGVl
dC5ydWxlcy5sZW5ndGgsIDIpOwogICAgICAgY29uc3QgZXhwZWN0ZWQgPSB1bmtub3duID8gJycg
OiAndHJ1ZSc7CiAgICAgICBhc3NlcnRfZXF1YWxzKGdldENvbXB1dGVkU3R5bGUobWFpbikuZ2V0
UHJvcGVydHlWYWx1ZSgnLS1tYXRjaCcpLCBleHBlY3RlZCk7Ci0gICAgfSwgcXVlcnkpOworICAg
IH0sIGNvbmRpdGlvbik7CiAgIH0KIAotICBmdW5jdGlvbiB0ZXN0X3F1ZXJ5X2tub3duKHF1ZXJ5
KSB7Ci0gICAgdGVzdF9xdWVyeV92YWxpZChxdWVyeSwgZmFsc2UgLyogdW5rbm93biAqLyk7Cisg
IGZ1bmN0aW9uIHRlc3RfY29uZGl0aW9uX2tub3duKGNvbmRpdGlvbikgeworICAgIHRlc3RfY29u
ZGl0aW9uX3ZhbGlkKGNvbmRpdGlvbiwgZmFsc2UgLyogdW5rbm93biAqLyk7CiAgIH0KIAotICBm
dW5jdGlvbiB0ZXN0X3F1ZXJ5X3Vua25vd24ocXVlcnkpIHsKLSAgICB0ZXN0X3F1ZXJ5X3ZhbGlk
KHF1ZXJ5LCB0cnVlIC8qIHVua25vd24gKi8pOworICBmdW5jdGlvbiB0ZXN0X2NvbmRpdGlvbl91
bmtub3duKGNvbmRpdGlvbikgeworICAgIHRlc3RfY29uZGl0aW9uX3ZhbGlkKGNvbmRpdGlvbiwg
dHJ1ZSAvKiB1bmtub3duICovKTsKICAgfQogCi0gIGZ1bmN0aW9uIHRlc3RfY29udGFpbmVyX3Nl
bGVjdG9yX2ludmFsaWQoY29udGFpbmVyX3NlbGVjdG9yKSB7CisgIGZ1bmN0aW9uIHRlc3RfY29u
dGFpbmVyX25hbWVfaW52YWxpZChjb250YWluZXJfbmFtZSkgewogICAgIHRlc3QodCA9PiB7CiAg
ICAgICB0LmFkZF9jbGVhbnVwKGNsZWFudXBfbWFpbik7Ci0gICAgICBsZXQgc3R5bGUgPSBzZXRf
c3R5bGUoYEBjb250YWluZXIgJHtjb250YWluZXJfc2VsZWN0b3J9ICh3aWR0aCkge31gKTsKKyAg
ICAgIGxldCBzdHlsZSA9IHNldF9zdHlsZShgQGNvbnRhaW5lciAke2NvbnRhaW5lcl9uYW1lfSBu
b3QgKHdpZHRoKSB7fWApOwogICAgICAgYXNzZXJ0X2VxdWFscyhzdHlsZS5zaGVldC5ydWxlcy5s
ZW5ndGgsIDApOwotICAgIH0sIGBDb250YWluZXIgc2VsZWN0b3I6ICR7Y29udGFpbmVyX3NlbGVj
dG9yfWApOworICAgIH0sIGBDb250YWluZXIgbmFtZTogJHtjb250YWluZXJfbmFtZX1gKTsKICAg
fQogCi0gIGZ1bmN0aW9uIHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX3ZhbGlkKGNvbnRhaW5lcl9z
ZWxlY3RvcikgeworICBmdW5jdGlvbiB0ZXN0X2NvbnRhaW5lcl9uYW1lX3ZhbGlkKGNvbnRhaW5l
cl9uYW1lKSB7CiAgICAgdGVzdCh0ID0+IHsKICAgICAgIHQuYWRkX2NsZWFudXAoY2xlYW51cF9t
YWluKTsKLSAgICAgIGxldCBzdHlsZSA9IHNldF9zdHlsZShgQGNvbnRhaW5lciAke2NvbnRhaW5l
cl9zZWxlY3Rvcn0gKHdpZHRoKSB7fWApOworICAgICAgbGV0IHN0eWxlID0gc2V0X3N0eWxlKGBA
Y29udGFpbmVyICR7Y29udGFpbmVyX25hbWV9IG5vdCAod2lkdGgpIHt9YCk7CiAgICAgICBhc3Nl
cnRfZXF1YWxzKHN0eWxlLnNoZWV0LnJ1bGVzLmxlbmd0aCwgMSk7Ci0gICAgfSwgYENvbnRhaW5l
ciBzZWxlY3RvcjogJHtjb250YWluZXJfc2VsZWN0b3J9YCk7CisgICAgfSwgYENvbnRhaW5lciBu
YW1lOiAke2NvbnRhaW5lcl9uYW1lfWApOwogICB9CiAKLSAgdGVzdF9xdWVyeV9rbm93bignKHdp
ZHRoKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcobWluLXdpZHRoOiAwcHgpJyk7Ci0gIHRlc3Rf
cXVlcnlfa25vd24oJyhtYXgtd2lkdGg6IDBweCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKGhl
aWdodCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKG1pbi1oZWlnaHQ6IDBweCknKTsKLSAgdGVz
dF9xdWVyeV9rbm93bignKG1heC1oZWlnaHQ6IDBweCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bign
KGFzcGVjdC1yYXRpbyknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKG1pbi1hc3BlY3QtcmF0aW86
IDEvMiknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKG1heC1hc3BlY3QtcmF0aW86IDEvMiknKTsK
LSAgdGVzdF9xdWVyeV9rbm93bignKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknKTsKLSAgdGVzdF9x
dWVyeV9rbm93bignKGlubGluZS1zaXplKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcobWluLWlu
bGluZS1zaXplOiAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyhtYXgtaW5saW5lLXNpemU6
IDBweCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKGJsb2NrLXNpemUpJyk7Ci0gIHRlc3RfcXVl
cnlfa25vd24oJyhtaW4tYmxvY2stc2l6ZTogMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCco
bWF4LWJsb2NrLXNpemU6IDBweCknKTsKLQotICB0ZXN0X3F1ZXJ5X2tub3duKCcod2lkdGg6IDEw
MHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoKHdpZHRoOiAxMDBweCkpJyk7Ci0gIHRlc3Rf
cXVlcnlfa25vd24oJyhub3QgKHdpZHRoOiAxMDBweCkpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24o
Jygod2lkdGg6IDEwMHB4KSBhbmQgKGhlaWdodDogMTAwcHgpKScpOwotICB0ZXN0X3F1ZXJ5X2tu
b3duKCcoKCh3aWR0aDogNDBweCkgb3IgKHdpZHRoOiA1MHB4KSkgYW5kIChoZWlnaHQ6IDEwMHB4
KSknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKCh3aWR0aDogMTAwcHgpIGFuZCAoKGhlaWdodDog
NDBweCkgb3IgKGhlaWdodDogNTBweCkpKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoKCh3aWR0
aDogNDB4KSBhbmQgKGhlaWdodDogNTBweCkpIG9yIChoZWlnaHQ6IDEwMHB4KSknKTsKLSAgdGVz
dF9xdWVyeV9rbm93bignKCh3aWR0aDogNTBweCkgb3IgKCh3aWR0aDogNDBweCkgYW5kIChoZWln
aHQ6IDUwcHgpKSknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKCh3aWR0aDogMTAwcHgpIGFuZCAo
bm90IChoZWlnaHQ6IDEwMHB4KSkpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyh3aWR0aCA8IDEw
MHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcod2lkdGggPD0gMTAwcHgpJyk7Ci0gIHRlc3Rf
cXVlcnlfa25vd24oJyh3aWR0aCA9IDEwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcod2lk
dGggPiAxMDBweCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKHdpZHRoID49IDEwMHB4KScpOwot
ICB0ZXN0X3F1ZXJ5X2tub3duKCcoMTAwcHggPCB3aWR0aCknKTsKLSAgdGVzdF9xdWVyeV9rbm93
bignKDEwMHB4IDw9IHdpZHRoKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoMTAwcHggPSB3aWR0
aCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKDEwMHB4ID4gd2lkdGgpJyk7Ci0gIHRlc3RfcXVl
cnlfa25vd24oJygxMDBweCA+PSB3aWR0aCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKDEwMHB4
IDwgd2lkdGggPCAyMDBweCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKDEwMHB4IDwgd2lkdGgg
PD0gMjAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJygxMDBweCA8PSB3aWR0aCA8IDIwMHB4
KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoMTAwcHggPiB3aWR0aCA+IDIwMHB4KScpOwotICB0
ZXN0X3F1ZXJ5X2tub3duKCcoMTAwcHggPiB3aWR0aCA+PSAyMDBweCknKTsKLSAgdGVzdF9xdWVy
eV9rbm93bignKDEwMHB4ID49IHdpZHRoID4gMjAwcHgpJyk7Ci0KLSAgdGVzdF9xdWVyeV9rbm93
bignKHdpZHRoOiBjYWxjKDEwcHgpKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcod2lkdGg6IGNh
bGMoMTBlbSkpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyh3aWR0aDogY2FsYygxMHB4ICsgMTBl
bSkpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyh3aWR0aCA8IGNhbGMoMTBweCArIDEwZW0pKScp
OwotICB0ZXN0X3F1ZXJ5X2tub3duKCcod2lkdGggPCBtYXgoMTBweCwgMTBlbSkpJyk7Ci0gIHRl
c3RfcXVlcnlfa25vd24oJyhjYWxjKDEwcHggKyAxMGVtKSA8IHdpZHRoKScpOwotICB0ZXN0X3F1
ZXJ5X2tub3duKCcoY2FsYygxMHB4ICsgMTBlbSkgPCB3aWR0aCA8IG1heCgzMHB4LCAzMGVtKSkn
KTsKLQotICB0ZXN0X3F1ZXJ5X3Vua25vd24oJ2Zvbyh3aWR0aCknKTsKLSAgdGVzdF9xdWVyeV91
bmtub3duKCdzaXplKHdpZHRoKScpOwotICB0ZXN0X3F1ZXJ5X3Vua25vd24oJyhhc2RmKScpOwot
ICB0ZXN0X3F1ZXJ5X3Vua25vd24oJyhyZXNvbHV0aW9uID4gMTAwZHBpKScpOwotICB0ZXN0X3F1
ZXJ5X3Vua25vd24oJyhyZXNvbHV0aW9uOiAxNTBkcGkpJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93
bignKGNvbG9yKScpOwotICB0ZXN0X3F1ZXJ5X3Vua25vd24oJyhtaW4tY29sb3I6IDEpJyk7Ci0g
IHRlc3RfcXVlcnlfdW5rbm93bignKGNvbG9yLWluZGV4ID49IDEpJyk7Ci0gIHRlc3RfcXVlcnlf
dW5rbm93bignc2l6ZShncmlkKScpOwotICB0ZXN0X3F1ZXJ5X3Vua25vd24oJyhncmlkKScpOwot
ICB0ZXN0X3F1ZXJ5X3Vua25vd24oJyh3aWR0aCA9PSAxMDBweCknKTsKLSAgdGVzdF9xdWVyeV91
bmtub3duKCcoMTAwcHggPT0gd2lkdGgpJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignKDEwMHB4
ID0gd2lkdGggPSAyMDBweCknKTsKLSAgdGVzdF9xdWVyeV91bmtub3duKCcoMTAwcHggPCB3aWR0
aCA+IDIwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X3Vua25vd24oJygxMDBweCA8PSB3aWR0aCA+PSAy
MDBweCknKTsKLSAgdGVzdF9xdWVyeV91bmtub3duKCcoMTAwcHggPD0gd2lkdGggPiAyMDBweCkn
KTsKLSAgdGVzdF9xdWVyeV91bmtub3duKCcoMTAwcHggPCB3aWR0aCA+PSAyMDBweCknKTsKLSAg
dGVzdF9xdWVyeV91bmtub3duKCcoMTAwcHggOiB3aWR0aCA6IDIwMHB4KScpOwotCi0gIHRlc3Rf
cXVlcnlfaW52YWxpZCgnc2NyZWVuJyk7Ci0gIHRlc3RfcXVlcnlfaW52YWxpZCgncHJpbnQnKTsK
LSAgdGVzdF9xdWVyeV9pbnZhbGlkKCdub3QgcHJpbnQnKTsKLSAgdGVzdF9xdWVyeV9pbnZhbGlk
KCdvbmx5IHByaW50Jyk7Ci0gIHRlc3RfcXVlcnlfaW52YWxpZCgnc2NyZWVuIGFuZCAod2lkdGg6
IDEwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2ludmFsaWQoJ3NjcmVlbiBvciAod2lkdGg6IDEwMHB4
KScpOwotICB0ZXN0X3F1ZXJ5X2ludmFsaWQoJ25vdCBzY3JlZW4gYW5kICh3aWR0aDogMTAwcHgp
Jyk7Ci0gIHRlc3RfcXVlcnlfaW52YWxpZCgnbm90IHNjcmVlbiBvciAod2lkdGg6IDEwMHB4KScp
OwotICB0ZXN0X3F1ZXJ5X2ludmFsaWQoJyh3aWR0aDogMTAwcHgpLCAoaGVpZ2h0OiAxMDBweCkn
KTsKLSAgdGVzdF9xdWVyeV9pbnZhbGlkKCcod2lkdGg6IDEwMHB4KSBhbmQgKGhlaWdodDogMTAw
cHgpJyk7Ci0gIHRlc3RfcXVlcnlfaW52YWxpZCgnKHdpZHRoOiAxMDBweCkgb3IgKGhlaWdodDog
MTAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfaW52YWxpZCgnbm90ICh3aWR0aDogMTAwcHgpJyk7Ci0g
IHRlc3RfcXVlcnlfaW52YWxpZCgnZm9vICh3aWR0aDogMTAwcHgpJyk7Ci0KLSAgdGVzdF9jb250
YWluZXJfc2VsZWN0b3JfdmFsaWQoJ2ZvbycpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl92
YWxpZCgnIGZvbycpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl92YWxpZCgnIGZvbyAnKTsK
LQotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCdmb28gZm9vJyk7Ci0gIHRlc3Rf
Y29udGFpbmVyX3NlbGVjdG9yX2ludmFsaWQoJzFweCcpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxl
Y3Rvcl9pbnZhbGlkKCc1MGdpbCcpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlk
KCduYW1lKGZvbyknKTsKLSAgdGVzdF9jb250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgndHlwZShp
bmxpbmUtc2l6ZSknKTsKLSAgdGVzdF9jb250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnImZvbyIn
KTsKLSAgdGVzdF9jb250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnImluaGVyaXQiJyk7Ci0gIHRl
c3RfY29udGFpbmVyX3NlbGVjdG9yX2ludmFsaWQoJ25vbmUnKTsKLSAgdGVzdF9jb250YWluZXJf
c2VsZWN0b3JfaW52YWxpZCgnTm9uZScpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZh
bGlkKCdub3JtYWwnKTsKLSAgdGVzdF9jb250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnTm9ybWFs
Jyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX2ludmFsaWQoJ2F1dG8nKTsKLSAgdGVzdF9j
b250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnQXV0bycpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxl
Y3Rvcl9pbnZhbGlkKCdhbmQnKTsKLSAgdGVzdF9jb250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgn
b3InKTsKLSAgdGVzdF9jb250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnbm90Jyk7Ci0gIHRlc3Rf
Y29udGFpbmVyX3NlbGVjdG9yX2ludmFsaWQoJ0FuZCcpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxl
Y3Rvcl9pbnZhbGlkKCdvUicpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCdu
T3QnKTsKLQotICB0ZXN0X3F1ZXJ5X2tub3duKCdzdHlsZSgtLW15LXByb3A6IGZvbyknKTsKLSAg
dGVzdF9xdWVyeV9rbm93bignc3R5bGUoLS1teS1wcm9wOiBmb28gLSBiYXIgKCkpJyk7Ci0gIHRl
c3RfcXVlcnlfa25vd24oJ3N0eWxlKG5vdCAoKC0tZm9vOiBjYWxjKDEwcHggKyAyZW0pKSBhbmQg
KCgtLWZvbzogdXJsKHgpKSkpKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCdzdHlsZSgoLS1mb286
IGJhcikgb3IgKC0tYmFyOiAxMHB4KSknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignc3R5bGUoLS1m
b286IGJhciAhaW1wb3J0YW50KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCdzdHlsZSgtLW15LXBy
b3A6KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCdzdHlsZSgtLW15LXByb3A6ICknKTsKLQotICB0
ZXN0X3F1ZXJ5X3Vua25vd24oJ3N0eWxlKC0tZm9vOiBiYXI7KScpOwotICB0ZXN0X3F1ZXJ5X3Vu
a25vd24oJ3N0eWxlKC0tZm9vKScpOwotICB0ZXN0X3F1ZXJ5X3Vua25vd24oJ3N0eWxlKHN0eWxl
KC0tZm9vOiBiYXIpKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoKScpOworICB0
ZXN0X2NvbmRpdGlvbl9rbm93bignKG1pbi13aWR0aDogMHB4KScpOworICB0ZXN0X2NvbmRpdGlv
bl9rbm93bignKG1heC13aWR0aDogMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKGhl
aWdodCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyhtaW4taGVpZ2h0OiAwcHgpJyk7Cisg
IHRlc3RfY29uZGl0aW9uX2tub3duKCcobWF4LWhlaWdodDogMHB4KScpOworICB0ZXN0X2NvbmRp
dGlvbl9rbm93bignKGFzcGVjdC1yYXRpbyknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyht
aW4tYXNwZWN0LXJhdGlvOiAxLzIpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcobWF4LWFz
cGVjdC1yYXRpbzogMS8yKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKG9yaWVudGF0aW9u
OiBwb3J0cmFpdCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyhpbmxpbmUtc2l6ZSknKTsK
KyAgdGVzdF9jb25kaXRpb25fa25vd24oJyhtaW4taW5saW5lLXNpemU6IDBweCknKTsKKyAgdGVz
dF9jb25kaXRpb25fa25vd24oJyhtYXgtaW5saW5lLXNpemU6IDBweCknKTsKKyAgdGVzdF9jb25k
aXRpb25fa25vd24oJyhibG9jay1zaXplKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKG1p
bi1ibG9jay1zaXplOiAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcobWF4LWJsb2Nr
LXNpemU6IDBweCknKTsKKworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoOiAxMDBweCkn
KTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJygod2lkdGg6IDEwMHB4KSknKTsKKyAgdGVzdF9j
b25kaXRpb25fa25vd24oJyhub3QgKHdpZHRoOiAxMDBweCkpJyk7CisgIHRlc3RfY29uZGl0aW9u
X2tub3duKCcoKHdpZHRoOiAxMDBweCkgYW5kIChoZWlnaHQ6IDEwMHB4KSknKTsKKyAgdGVzdF9j
b25kaXRpb25fa25vd24oJygoKHdpZHRoOiA0MHB4KSBvciAod2lkdGg6IDUwcHgpKSBhbmQgKGhl
aWdodDogMTAwcHgpKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKCh3aWR0aDogMTAwcHgp
IGFuZCAoKGhlaWdodDogNDBweCkgb3IgKGhlaWdodDogNTBweCkpKScpOworICB0ZXN0X2NvbmRp
dGlvbl9rbm93bignKCgod2lkdGg6IDQwcHgpIGFuZCAoaGVpZ2h0OiA1MHB4KSkgb3IgKGhlaWdo
dDogMTAwcHgpKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKCh3aWR0aDogNTBweCkgb3Ig
KCh3aWR0aDogNDBweCkgYW5kIChoZWlnaHQ6IDUwcHgpKSknKTsKKyAgdGVzdF9jb25kaXRpb25f
a25vd24oJygod2lkdGg6IDEwMHB4KSBhbmQgKG5vdCAoaGVpZ2h0OiAxMDBweCkpKScpOworICB0
ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoIDwgMTAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9u
X2tub3duKCcod2lkdGggPD0gMTAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcod2lk
dGggPSAxMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyh3aWR0aCA+IDEwMHB4KScp
OworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoID49IDEwMHB4KScpOworICB0ZXN0X2Nv
bmRpdGlvbl9rbm93bignKDEwMHB4IDwgd2lkdGgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3du
KCcoMTAwcHggPD0gd2lkdGgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoMTAwcHggPSB3
aWR0aCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJygxMDBweCA+IHdpZHRoKScpOworICB0
ZXN0X2NvbmRpdGlvbl9rbm93bignKDEwMHB4ID49IHdpZHRoKScpOworICB0ZXN0X2NvbmRpdGlv
bl9rbm93bignKDEwMHB4IDwgd2lkdGggPCAyMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25v
d24oJygxMDBweCA8IHdpZHRoIDw9IDIwMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bign
KDEwMHB4IDw9IHdpZHRoIDwgMjAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoMTAw
cHggPiB3aWR0aCA+IDIwMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKDEwMHB4ID4g
d2lkdGggPj0gMjAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoMTAwcHggPj0gd2lk
dGggPiAyMDBweCknKTsKKworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoOiBjYWxjKDEw
cHgpKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoOiBjYWxjKDEwZW0pKScpOwor
ICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoOiBjYWxjKDEwcHggKyAxMGVtKSknKTsKKyAg
dGVzdF9jb25kaXRpb25fa25vd24oJyh3aWR0aCA8IGNhbGMoMTBweCArIDEwZW0pKScpOworICB0
ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoIDwgbWF4KDEwcHgsIDEwZW0pKScpOworICB0ZXN0
X2NvbmRpdGlvbl9rbm93bignKGNhbGMoMTBweCArIDEwZW0pIDwgd2lkdGgpJyk7CisgIHRlc3Rf
Y29uZGl0aW9uX2tub3duKCcoY2FsYygxMHB4ICsgMTBlbSkgPCB3aWR0aCA8IG1heCgzMHB4LCAz
MGVtKSknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyh3aWR0aDogMTAwcHgpIGFuZCAoaGVp
Z2h0OiAxMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyh3aWR0aDogMTAwcHgpIG9y
IChoZWlnaHQ6IDEwMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignbm90ICh3aWR0aDog
MTAwcHgpJyk7CisKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignZm9vKHdpZHRoKScpOworICB0
ZXN0X2NvbmRpdGlvbl91bmtub3duKCdzaXplKHdpZHRoKScpOworICB0ZXN0X2NvbmRpdGlvbl91
bmtub3duKCcoYXNkZiknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignKHJlc29sdXRpb24g
PiAxMDBkcGkpJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJyhyZXNvbHV0aW9uOiAxNTBk
cGkpJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJyhjb2xvciknKTsKKyAgdGVzdF9jb25k
aXRpb25fdW5rbm93bignKG1pbi1jb2xvcjogMSknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93
bignKGNvbG9yLWluZGV4ID49IDEpJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJ3NpemUo
Z3JpZCknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignKGdyaWQpJyk7CisgIHRlc3RfY29u
ZGl0aW9uX3Vua25vd24oJyh3aWR0aCA9PSAxMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5r
bm93bignKDEwMHB4ID09IHdpZHRoKScpOworICB0ZXN0X2NvbmRpdGlvbl91bmtub3duKCcoMTAw
cHggPSB3aWR0aCA9IDIwMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl91bmtub3duKCcoMTAwcHgg
PCB3aWR0aCA+IDIwMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl91bmtub3duKCcoMTAwcHggPD0g
d2lkdGggPj0gMjAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJygxMDBweCA8PSB3
aWR0aCA+IDIwMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl91bmtub3duKCcoMTAwcHggPCB3aWR0
aCA+PSAyMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignKDEwMHB4IDogd2lkdGgg
OiAyMDBweCknKTsKKworICB0ZXN0X2NvbmRpdGlvbl9pbnZhbGlkKCdzY3JlZW4nKTsKKyAgdGVz
dF9jb25kaXRpb25faW52YWxpZCgncHJpbnQnKTsKKyAgdGVzdF9jb25kaXRpb25faW52YWxpZCgn
bm90IHByaW50Jyk7CisgIHRlc3RfY29uZGl0aW9uX2ludmFsaWQoJ29ubHkgcHJpbnQnKTsKKyAg
dGVzdF9jb25kaXRpb25faW52YWxpZCgnc2NyZWVuIGFuZCAod2lkdGg6IDEwMHB4KScpOworICB0
ZXN0X2NvbmRpdGlvbl9pbnZhbGlkKCdzY3JlZW4gb3IgKHdpZHRoOiAxMDBweCknKTsKKyAgdGVz
dF9jb25kaXRpb25faW52YWxpZCgnbm90IHNjcmVlbiBhbmQgKHdpZHRoOiAxMDBweCknKTsKKyAg
dGVzdF9jb25kaXRpb25faW52YWxpZCgnbm90IHNjcmVlbiBvciAod2lkdGg6IDEwMHB4KScpOwor
ICB0ZXN0X2NvbmRpdGlvbl9pbnZhbGlkKCcod2lkdGg6IDEwMHB4KSwgKGhlaWdodDogMTAwcHgp
Jyk7CisgIHRlc3RfY29uZGl0aW9uX2ludmFsaWQoJ2ZvbyAod2lkdGg6IDEwMHB4KScpOworCisg
IHRlc3RfcnVsZV92YWxpZCgnbmFtZSBub3QgKHdpZHRoIDw9IDUwMHB4KScpOworICB0ZXN0X3J1
bGVfdmFsaWQoJ25vdCAod2lkdGggPD0gNTAwcHgpJyk7CisKKyAgdGVzdF9jb250YWluZXJfbmFt
ZV92YWxpZCgnZm9vJyk7CisgIHRlc3RfY29udGFpbmVyX25hbWVfdmFsaWQoJyBmb28nKTsKKyAg
dGVzdF9jb250YWluZXJfbmFtZV92YWxpZCgnIGZvbyAnKTsKKworICB0ZXN0X2NvbnRhaW5lcl9u
YW1lX2ludmFsaWQoJ2ZvbyBmb28nKTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCcx
cHgnKTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCc1MGdpbCcpOworICB0ZXN0X2Nv
bnRhaW5lcl9uYW1lX2ludmFsaWQoJ25hbWUoZm9vKScpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1l
X2ludmFsaWQoJ3R5cGUoaW5saW5lLXNpemUpJyk7CisgIHRlc3RfY29udGFpbmVyX25hbWVfaW52
YWxpZCgnImZvbyInKTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCciaW5oZXJpdCIn
KTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCdub25lJyk7CisgIHRlc3RfY29udGFp
bmVyX25hbWVfaW52YWxpZCgnTm9uZScpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQo
J25vcm1hbCcpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQoJ05vcm1hbCcpOworICB0
ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQoJ2F1dG8nKTsKKyAgdGVzdF9jb250YWluZXJfbmFt
ZV9pbnZhbGlkKCdBdXRvJyk7CisgIHRlc3RfY29udGFpbmVyX25hbWVfaW52YWxpZCgnYW5kJyk7
CisgIHRlc3RfY29udGFpbmVyX25hbWVfaW52YWxpZCgnb3InKTsKKyAgdGVzdF9jb250YWluZXJf
bmFtZV9pbnZhbGlkKCdub3QnKTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCdBbmQn
KTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCdvUicpOworICB0ZXN0X2NvbnRhaW5l
cl9uYW1lX2ludmFsaWQoJ25PdCcpOworCisgIHRlc3RfY29uZGl0aW9uX2tub3duKCdzdHlsZSgt
LW15LXByb3A6IGZvbyknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJ3N0eWxlKC0tbXktcHJv
cDogZm9vIC0gYmFyICgpKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignc3R5bGUobm90ICgo
LS1mb286IGNhbGMoMTBweCArIDJlbSkpIGFuZCAoKC0tZm9vOiB1cmwoeCkpKSkpJyk7CisgIHRl
c3RfY29uZGl0aW9uX2tub3duKCdzdHlsZSgoLS1mb286IGJhcikgb3IgKC0tYmFyOiAxMHB4KSkn
KTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJ3N0eWxlKC0tZm9vOiBiYXIgIWltcG9ydGFudCkn
KTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJ3N0eWxlKC0tbXktcHJvcDopJyk7CisgIHRlc3Rf
Y29uZGl0aW9uX2tub3duKCdzdHlsZSgtLW15LXByb3A6ICknKTsKKworICB0ZXN0X2NvbmRpdGlv
bl91bmtub3duKCdzdHlsZSgtLWZvbzogYmFyOyknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93
bignc3R5bGUoLS1mb28pJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJ3N0eWxlKHN0eWxl
KC0tZm9vOiBiYXIpKScpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVl
cmllcy9jcmFzaHRlc3RzL2Nocm9tZS1idWctMTM0Njk2OS1jcmFzaC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFp
bmVyLXF1ZXJpZXMvY3Jhc2h0ZXN0cy9jaHJvbWUtYnVnLTEzNDY5NjktY3Jhc2guaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM3Yzc0Y2Y4Y2IxYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY2hyb21lLWJ1Zy0x
MzQ2OTY5LWNyYXNoLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8dGl0
bGU+Q2hyb21lIGNyYXNoIGJ1ZyAxMzQ2OTY5PC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9jcmJ1Zy5jb20vMTM0Njk2OSI+Cis8dGFibGUgaWQ9InRhYmxlIj4gPC90YWJs
ZT4KKzxzY3JpcHQ+CisgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOworICB0YWJsZS5zdHlsZS5j
b250YWluZXJUeXBlID0gImlubGluZS1zaXplIjsKKyAgdGFibGUuc3R5bGUuYXBwZWFyYW5jZSA9
ICJhdXRvIjsKKyAgdGFibGUuc3R5bGUuY29sdW1uQ291bnQgPSAyOworICB0YWJsZS5jcmVhdGVU
Qm9keSgpOworICB0YWJsZS5jcmVhdGVDYXB0aW9uKCk7CisgIGRvY3VtZW50LmJvZHkub2Zmc2V0
VG9wOworICB0YWJsZS5zdHlsZS53aGl0ZVNwYWNlID0gInByZS13cmFwIjsKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvY3Jhc2h0ZXN0cy9jaHJvbWUtcmVtb3Zl
LWluc2VydC1ldmFsdWF0b3ItY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNo
dGVzdHMvY2hyb21lLXJlbW92ZS1pbnNlcnQtZXZhbHVhdG9yLWNyYXNoLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45ODZmNmIwYmY2OWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1yZW1vdmUtaW5z
ZXJ0LWV2YWx1YXRvci1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhZG9jdHlwZSBodG1s
PgorPHRpdGxlPlJlbW92aW5nIGFuZCByZS1pbnNlcnRpbmcgYSBjb250YWluZXIgc2hvdWxkIGNy
YXNoPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9jcmJ1Zy5jb20vMTM0
Mjc1MCI+Cis8c3R5bGU+CisgICNjb250YWluZXIgeyBjb250YWluZXItdHlwZTogaW5saW5lLXNp
emUgfQorPC9zdHlsZT4KKzxkaXYgaWQ9Im91dGVyIj4KKyAgPGRpdiBpZD0iY29udGFpbmVyIj48
L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgY29udGFpbmVyLm9mZnNldFRvcDsKKyAgbGV0IHJl
bW92ZWQgPSBjb250YWluZXI7CisgIGNvbnRhaW5lci5yZW1vdmUoKTsKKyAgb3V0ZXIuYXBwZW5k
Q2hpbGQocmVtb3ZlZCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVy
aWVzL2NyYXNodGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFz
aHRlc3RzL3czYy1pbXBvcnQubG9nCmluZGV4IGQzMWZmNDZiZDlhNS4uN2ExMTg2ZmQ1Njg1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL3czYy1pbXBvcnQubG9n
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvdzNjLWltcG9ydC5sb2cKQEAg
LTE4LDcgKzE4LDkgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFz
aHRlc3RzL2NhbnZhcy1hcy1jb250YWluZXItY3Jhc2guaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVy
aWVzL2NyYXNodGVzdHMvY2hyb21lLWJ1Zy0xMjg5NzE4LTAwMC1jcmFzaC5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGFpbmVyLXF1ZXJpZXMvY3Jhc2h0ZXN0cy9jaHJvbWUtYnVnLTEyODk3MTgtMDAxLWNyYXNoLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1idWctMTM0Njk2OS1j
cmFzaC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvY3Jhc2h0ZXN0cy9jaHJvbWUtcXVvdGVz
LWNyYXNoLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1yZW1v
dmUtaW5zZXJ0LWV2YWx1YXRvci1jcmFzaC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvY3Jh
c2h0ZXN0cy9jb2x1bW5zLWluLXRhYmxlLTAwMS1jcmFzaC5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1
ZXJpZXMvY3Jhc2h0ZXN0cy9jb2x1bW5zLWluLXRhYmxlLTAwMi1jcmFzaC5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGFpbmVyLXF1ZXJpZXMvY3Jhc2h0ZXN0cy9jb250YWluZXItaW4tY2FudmFzLWNyYXNoLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461358</attachid>
            <date>2022-08-02 05:59:00 -0700</date>
            <delta_ts>2022-08-02 08:33:35 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-243449-20220802155858.patch</filename>
            <type>text/plain</type>
            <size>44114</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSA2ZGE0NzQ1ODYwNjU0MjVjMjBhMDEzNWMyZDUwOThjYTI3ODQ4MTY0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBUdWUsIDIgQXVnIDIwMjIgMTI6NTM6MDkgKzAzMDAKU3ViamVjdDogW1BBVENIXSBbQ1NTIENv
bnRhaW5lciBRdWVyaWVzXSBVcGRhdGUgcXVlcnkgZ3JhbW1hciB0byB0aGUgc3BlYwogaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MzQ0OSA8cmRhcjovLzk3OTY3Njgy
PgoKUmV2aWV3ZWQgYnkgVGltIE5ndXllbi4KClRoZSBzcGVjIHdhcyBjaGFuZ2VkIHRvIGFsbG93
IGxvZ2ljYWwgb3BlcmF0b3JzIG9uIHRvcCBsZXZlbCB3aXRob3V0IHBhcmVudGhlc2lzIG1ha2lu
ZwoKQGNvbnRhaW5lciBub3QgKGZvbykKCmxlZ2FsLgoKaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L2Nzcy1jb250YWluLTMvI2NvbnRhaW5lci1ydWxlCgoqIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2F0
LWNvbnRhaW5lci1wYXJzaW5nLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9h
dC1jb250YWluZXItcGFyc2luZy5odG1sOgoqIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVz
dHMvY2hyb21lLWJ1Zy0xMzQ2OTY5LWNyYXNoLmh0bWw6IEFkZGVkLgoqIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1x
dWVyaWVzL2NyYXNodGVzdHMvY2hyb21lLXJlbW92ZS1pbnNlcnQtZXZhbHVhdG9yLWNyYXNoLmh0
bWw6IEFkZGVkLgoqIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvdzNjLWltcG9ydC5s
b2c6CiogU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbnRhaW5lclJ1bGUuY3BwOgooV2ViQ29yZTo6
Q1NTQ29udGFpbmVyUnVsZTo6Y3NzVGV4dCBjb25zdCk6CgpGYWN0b3IgcXVlcnkgc2VyaWFsaXph
dGlvbiB0byBhIGZ1bmN0aW9uIGluIENRIG5hbWVzcGFjZS4KCihXZWJDb3JlOjpDU1NDb250YWlu
ZXJSdWxlOjpjb25kaXRpb25UZXh0IGNvbnN0KToKKFdlYkNvcmU6OkNTU0NvbnRhaW5lclJ1bGU6
Om5hbWVUZXh0IGNvbnN0KToKKFdlYkNvcmU6OkNTU0NvbnRhaW5lclJ1bGU6Om5hbWVGaWx0ZXJU
ZXh0IGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29udGFpbmVyUnVs
ZS5oOgoqIFNvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeS5jcHA6CihXZWJDb3JlOjpD
UTo6c2VyaWFsaXplKToKKFdlYkNvcmU6OnNlcmlhbGl6ZSk6IERlbGV0ZWQuCiogU291cmNlL1dl
YkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5Lmg6CgpVcGRhdGUgdG8gdGhlIHNwZWMgZ3JhbW1hciBh
bmQgdGVybWlub2xvZ3kuCkNvbnRhaW5lclF1ZXJ5IG5vdyBpbmNsdWRlcyB0aGUgbmFtZSBwYXJ0
IGFuZCByZXBsYWNlcyBGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5LgpRdWVyeUluUGFyZW5zIHJlcGxh
Y2VzIENvbnRhaW5lclF1ZXJ5LgpBbHNvIG1vdmUgQ29udGFpbmVyUXVlcnkgdG8gQ1EgbmFtZXNw
YWNlLgoKKiBTb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIuY3BwOgooV2Vi
Q29yZTo6Q29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVDb250YWluZXJRdWVyeSk6CihXZWJD
b3JlOjpDb250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3VtZVF1ZXJ5SW5QYXJlbnMpOgooV2ViQ29y
ZTo6Q29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVDb25kaXRpb24pOgooV2ViQ29yZTo6Q29u
dGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5KTogRGVsZXRl
ZC4KKiBTb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIuaDoKKiBTb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcDoKKFdlYkNvcmU6OlN0eWxlUnVsZUNvbnRhaW5lcjo6
U3R5bGVSdWxlQ29udGFpbmVyKToKKFdlYkNvcmU6OlN0eWxlUnVsZUNvbnRhaW5lcjo6Y3JlYXRl
KToKKiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmg6CiogU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXJJbXBsLmNwcDoKKFdlYkNvcmU6OkNTU1BhcnNlckltcGw6OmNvbnN1
bWVDb250YWluZXJSdWxlKToKKiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5
bGVTaGVldC5jcHA6CihXZWJDb3JlOjpidWlsZEFycmF5Rm9yR3JvdXBpbmdzKToKKiBTb3VyY2Uv
V2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5jcHA6CihXZWJDb3JlOjpTdHls
ZTo6Q29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlIGNvbnN0KToKKFdlYkNvcmU6OlN0
eWxlOjpDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6c2VsZWN0Q29udGFpbmVyIGNvbnN0KToKKFdl
YkNvcmU6OlN0eWxlOjpDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6ZXZhbHVhdGVRdWVyeUluUGFy
ZW5zIGNvbnN0KToKKFdlYkNvcmU6OlN0eWxlOjpDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6ZXZh
bHVhdGVDb25kaXRpb24gY29uc3QpOgooV2ViQ29yZTo6U3R5bGU6OkNvbnRhaW5lclF1ZXJ5RXZh
bHVhdG9yOjpldmFsdWF0ZVF1ZXJ5IGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9z
dHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5oOgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1J1
bGVTZXQuaDoKKFdlYkNvcmU6OlN0eWxlOjogY29uc3QpOgotLS0KIFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb250YWluZXJSdWxlLmNwcCAgICAgICB8ICAxNCArLQogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbnRhaW5lclJ1bGUuaCAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q29udGFpbmVyUXVlcnkuY3BwICAgICAgICAgfCAgMTYgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
b250YWluZXJRdWVyeS5oICAgICAgICAgICB8ICAyMSArLQogU291cmNlL1dlYkNvcmUvY3NzL0Nv
bnRhaW5lclF1ZXJ5UGFyc2VyLmNwcCAgIHwgIDE2ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ29u
dGFpbmVyUXVlcnlQYXJzZXIuaCAgICAgfCAgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJ1bGUuY3BwICAgICAgICAgICAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UnVsZS5oICAgICAgICAgICAgICAgIHwgICA4ICstCiBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckltcGwuY3BwICAgfCAgIDIgKy0KIC4uLi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcCB8ICAgNiArLQogLi4uL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVy
UXVlcnlFdmFsdWF0b3IuY3BwIHwgIDIwICstCiAuLi4vV2ViQ29yZS9zdHlsZS9Db250YWluZXJR
dWVyeUV2YWx1YXRvci5oICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQu
aCAgICAgICAgICAgICAgICB8ICAgOCArLQogLi4uL2F0LWNvbnRhaW5lci1wYXJzaW5nLWV4cGVj
dGVkLnR4dCAgICAgICAgIHwgIDU0ICsrLS0KIC4uLi9hdC1jb250YWluZXItcGFyc2luZy5odG1s
ICAgICAgICAgICAgICAgICB8IDI4NSArKysrKysrKystLS0tLS0tLS0KIC4uLi9jcmFzaHRlc3Rz
L2Nocm9tZS1idWctMTM0Njk2OS1jcmFzaC5odG1sICB8ICAxNCArCiAuLi4vY2hyb21lLXJlbW92
ZS1pbnNlcnQtZXZhbHVhdG9yLWNyYXNoLmh0bWwgfCAgMTUgKwogLi4uL2NyYXNodGVzdHMvdzNj
LWltcG9ydC5sb2cgICAgICAgICAgICAgICAgIHwgICAyICsKIDE4IGZpbGVzIGNoYW5nZWQsIDI3
NCBpbnNlcnRpb25zKCspLCAyMjcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGFpbmVyLXF1ZXJpZXMvY3Jhc2h0ZXN0cy9jaHJvbWUtYnVnLTEzNDY5NjktY3Jhc2guaHRt
bAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY2hy
b21lLXJlbW92ZS1pbnNlcnQtZXZhbHVhdG9yLWNyYXNoLmh0bWwKCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29udGFpbmVyUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ29udGFpbmVyUnVsZS5jcHAKaW5kZXggMjE1MGEwM2FhNTlmLi44MWJlMGY2YTY1MTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb250YWluZXJSdWxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29udGFpbmVyUnVsZS5jcHAKQEAgLTU0LDEzICs1NCw3IEBA
IFN0cmluZyBDU1NDb250YWluZXJSdWxlOjpjc3NUZXh0KCkgY29uc3QKIAogICAgIGJ1aWxkZXIu
YXBwZW5kKCJAY29udGFpbmVyICIpOwogCi0gICAgYXV0byBuYW1lID0gc3R5bGVSdWxlQ29udGFp
bmVyKCkuZmlsdGVyZWRRdWVyeSgpLm5hbWVGaWx0ZXI7Ci0gICAgaWYgKCFuYW1lLmlzRW1wdHko
KSkgewotICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKG5hbWUsIGJ1aWxkZXIpOwotICAgICAg
ICBidWlsZGVyLmFwcGVuZCgnICcpOwotICAgIH0KLQotICAgIHNlcmlhbGl6ZShidWlsZGVyLCBz
dHlsZVJ1bGVDb250YWluZXIoKS5maWx0ZXJlZFF1ZXJ5KCkucXVlcnkpOworICAgIENROjpzZXJp
YWxpemUoYnVpbGRlciwgc3R5bGVSdWxlQ29udGFpbmVyKCkuY29udGFpbmVyUXVlcnkoKSk7CiAK
ICAgICBidWlsZGVyLmFwcGVuZCgiIHtcbiIpOwogICAgIGFwcGVuZENTU1RleHRGb3JJdGVtcyhi
dWlsZGVyKTsKQEAgLTcyLDE1ICs2NiwxNSBAQCBTdHJpbmcgQ1NTQ29udGFpbmVyUnVsZTo6Y3Nz
VGV4dCgpIGNvbnN0CiBTdHJpbmcgQ1NTQ29udGFpbmVyUnVsZTo6Y29uZGl0aW9uVGV4dCgpIGNv
bnN0CiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIHNlcmlhbGl6ZShidWlsZGVy
LCBzdHlsZVJ1bGVDb250YWluZXIoKS5maWx0ZXJlZFF1ZXJ5KCkucXVlcnkpOworICAgIENROjpz
ZXJpYWxpemUoYnVpbGRlciwgc3R5bGVSdWxlQ29udGFpbmVyKCkuY29udGFpbmVyUXVlcnkoKS5j
b25kaXRpb24pOwogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CiB9CiAKLVN0cmluZyBD
U1NDb250YWluZXJSdWxlOjpuYW1lRmlsdGVyVGV4dCgpIGNvbnN0CitTdHJpbmcgQ1NTQ29udGFp
bmVyUnVsZTo6bmFtZVRleHQoKSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsK
ICAgICAKLSAgICBhdXRvIG5hbWUgPSBzdHlsZVJ1bGVDb250YWluZXIoKS5maWx0ZXJlZFF1ZXJ5
KCkubmFtZUZpbHRlcjsKKyAgICBhdXRvIG5hbWUgPSBzdHlsZVJ1bGVDb250YWluZXIoKS5jb250
YWluZXJRdWVyeSgpLm5hbWU7CiAgICAgaWYgKCFuYW1lLmlzRW1wdHkoKSkKICAgICAgICAgc2Vy
aWFsaXplSWRlbnRpZmllcihuYW1lLCBidWlsZGVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0NvbnRhaW5lclJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb250
YWluZXJSdWxlLmgKaW5kZXggNWM5NTMyNTg1MmVhLi4xZWM2NGYxMmFhY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb250YWluZXJSdWxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbnRhaW5lclJ1bGUuaApAQCAtMzcsNyArMzcsNyBAQCBwdWJsaWM6CiAKICAg
ICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyBjb25kaXRpb25UZXh0
KCkgY29uc3QgZmluYWw7Ci0gICAgU3RyaW5nIG5hbWVGaWx0ZXJUZXh0KCkgY29uc3Q7CisgICAg
U3RyaW5nIG5hbWVUZXh0KCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgY29uc3QgU3R5bGVSdWxl
Q29udGFpbmVyJiBzdHlsZVJ1bGVDb250YWluZXIoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29u
dGFpbmVyUXVlcnkuY3BwCmluZGV4IDM4NWZlZGYzZmRkOS4uMDEzNWJmYWI0YTcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeS5jcHAKQEAgLTkwLDkgKzkwLDkgQEAgT3B0aW9uU2V0
PEF4aXM+IHJlcXVpcmVkQXhlc0ZvckZlYXR1cmUoY29uc3QgQXRvbVN0cmluZyYgZmVhdHVyZU5h
bWUpCiB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiwgY29uc3QgU2l6ZUZlYXR1cmUmKTsK
IHRlbXBsYXRlPHR5cGVuYW1lIENvbmRpdGlvblR5cGU+IHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1
aWxkZXImLCBjb25zdCBDb25kaXRpb25UeXBlJik7CiAKLXN0YXRpYyB2b2lkIHNlcmlhbGl6ZShT
dHJpbmdCdWlsZGVyJiBidWlsZGVyLCBjb25zdCBDb250YWluZXJRdWVyeSYgY29udGFpbmVyUXVl
cnkpCitzdGF0aWMgdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3Qg
UXVlcnlJblBhcmVucyYgcXVlcnkpCiB7Ci0gICAgV1RGOjpzd2l0Y2hPbihjb250YWluZXJRdWVy
eSwgWyZdKGF1dG8mIG5vZGUpIHsKKyAgICBXVEY6OnN3aXRjaE9uKHF1ZXJ5LCBbJl0oYXV0byYg
bm9kZSkgewogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKCcpOwogICAgICAgICBzZXJpYWxpemUo
YnVpbGRlciwgbm9kZSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7CkBAIC0xODYsMTIg
KzE4NiwyMiBAQCB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBjb25zdCBD
b25kaXRpb25UeXBlJiBjb25kaXRpb24pCiAgICAgfQogfQogCit2b2lkIHNlcmlhbGl6ZShTdHJp
bmdCdWlsZGVyJiBidWlsZGVyLCBjb25zdCBDb250YWluZXJDb25kaXRpb24mIGNvbmRpdGlvbikK
K3sKKyAgICBzZXJpYWxpemU8Q29udGFpbmVyQ29uZGl0aW9uPihidWlsZGVyLCBjb25kaXRpb24p
OwogfQogCiB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBjb25zdCBDb250
YWluZXJRdWVyeSYgcXVlcnkpCiB7Ci0gICAgQ1E6OnNlcmlhbGl6ZShidWlsZGVyLCBxdWVyeSk7
CisgICAgYXV0byBuYW1lID0gcXVlcnkubmFtZTsKKyAgICBpZiAoIW5hbWUuaXNFbXB0eSgpKSB7
CisgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIobmFtZSwgYnVpbGRlcik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgfQorCisgICAgc2VyaWFsaXplKGJ1aWxkZXIsIHF1ZXJ5
LmNvbmRpdGlvbik7CiB9CiAKIH0KK30KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NvbnRhaW5lclF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnkuaApp
bmRleCA1OGU2OWY5Yzk4MWQuLmQxMTgyOTNiM2UwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5l
clF1ZXJ5LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgc3RydWN0IFVua25vd25RdWVyeSB7CiAgICAgU3Ry
aW5nIHRleHQ7CiB9OwogCi11c2luZyBDb250YWluZXJRdWVyeSA9IHN0ZDo6dmFyaWFudDxDb250
YWluZXJDb25kaXRpb24sIFNpemVGZWF0dXJlLCBVbmtub3duUXVlcnk+OwordXNpbmcgUXVlcnlJ
blBhcmVucyA9IHN0ZDo6dmFyaWFudDxDb250YWluZXJDb25kaXRpb24sIFNpemVGZWF0dXJlLCBV
bmtub3duUXVlcnk+OwogCiBlbnVtIGNsYXNzIExvZ2ljYWxPcGVyYXRvciA6IHVpbnQ4X3QgeyBB
bmQsIE9yLCBOb3QgfTsKIGVudW0gY2xhc3MgQ29tcGFyaXNvbk9wZXJhdG9yIDogdWludDhfdCB7
IExlc3NUaGFuLCBMZXNzVGhhbk9yRXF1YWwsIEVxdWFsLCBHcmVhdGVyVGhhbiwgR3JlYXRlclRo
YW5PckVxdWFsIH07CkBAIC01Miw3ICs1Miw3IEBAIGVudW0gY2xhc3MgU3ludGF4IDogdWludDhf
dCB7IEJvb2xlYW4sIENvbG9uLCBSYW5nZSB9OwogCiBzdHJ1Y3QgQ29udGFpbmVyQ29uZGl0aW9u
IHsKICAgICBMb2dpY2FsT3BlcmF0b3IgbG9naWNhbE9wZXJhdG9yIHsgTG9naWNhbE9wZXJhdG9y
OjpBbmQgfTsKLSAgICBWZWN0b3I8Q29udGFpbmVyUXVlcnk+IHF1ZXJpZXM7CisgICAgVmVjdG9y
PFF1ZXJ5SW5QYXJlbnM+IHF1ZXJpZXM7CiB9OwogCiBzdHJ1Y3QgQ29tcGFyaXNvbiB7CkBAIC04
NCwxOCArODQsMTcgQEAgZW51bSBjbGFzcyBBeGlzIDogdWludDhfdCB7CiB9OwogT3B0aW9uU2V0
PEF4aXM+IHJlcXVpcmVkQXhlc0ZvckZlYXR1cmUoY29uc3QgQXRvbVN0cmluZyYpOwogCi19Ci0K
LXVzaW5nIENvbnRhaW5lclF1ZXJ5ID0gQ1E6OkNvbnRhaW5lclF1ZXJ5OwotCi1zdHJ1Y3QgRmls
dGVyZWRDb250YWluZXJRdWVyeSB7Ci0gICAgQXRvbVN0cmluZyBuYW1lRmlsdGVyOworc3RydWN0
IENvbnRhaW5lclF1ZXJ5IHsKKyAgICBBdG9tU3RyaW5nIG5hbWU7CiAgICAgT3B0aW9uU2V0PENR
OjpBeGlzPiBheGlzRmlsdGVyOwotICAgIENvbnRhaW5lclF1ZXJ5IHF1ZXJ5OworICAgIENROjpD
b250YWluZXJDb25kaXRpb24gY29uZGl0aW9uOwogfTsKIAotdXNpbmcgQ2FjaGVkUXVlcnlDb250
YWluZXJzID0gVmVjdG9yPFJlZjxjb25zdCBFbGVtZW50Pj47Ci0KK3ZvaWQgc2VyaWFsaXplKFN0
cmluZ0J1aWxkZXImLCBjb25zdCBDb250YWluZXJDb25kaXRpb24mKTsKIHZvaWQgc2VyaWFsaXpl
KFN0cmluZ0J1aWxkZXImLCBjb25zdCBDb250YWluZXJRdWVyeSYpOwogCiB9CisKK3VzaW5nIENh
Y2hlZFF1ZXJ5Q29udGFpbmVycyA9IFZlY3RvcjxSZWY8Y29uc3QgRWxlbWVudD4+OworCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmNwcAppbmRleCA0MTEzMWQ1
MzU2NTEuLjQ1ODliYWJhZDFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRh
aW5lclF1ZXJ5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVl
cnlQYXJzZXIuY3BwCkBAIC0zMCwxMyArMzAsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1zdGQ6Om9wdGlvbmFsPEZpbHRlcmVkQ29udGFpbmVyUXVlcnk+IENvbnRhaW5lclF1ZXJ5UGFy
c2VyOjpjb25zdW1lRmlsdGVyZWRDb250YWluZXJRdWVyeShDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKK3N0ZDo6b3B0aW9uYWw8Q1E6
OkNvbnRhaW5lclF1ZXJ5PiBDb250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3VtZUNvbnRhaW5lclF1
ZXJ5KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBj
b250ZXh0KQogewogICAgIENvbnRhaW5lclF1ZXJ5UGFyc2VyIHBhcnNlcihjb250ZXh0KTsKLSAg
ICByZXR1cm4gcGFyc2VyLmNvbnN1bWVGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5KHJhbmdlKTsKKyAg
ICByZXR1cm4gcGFyc2VyLmNvbnN1bWVDb250YWluZXJRdWVyeShyYW5nZSk7CiB9CiAKLXN0ZDo6
b3B0aW9uYWw8RmlsdGVyZWRDb250YWluZXJRdWVyeT4gQ29udGFpbmVyUXVlcnlQYXJzZXI6OmNv
bnN1bWVGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQor
c3RkOjpvcHRpb25hbDxDUTo6Q29udGFpbmVyUXVlcnk+IENvbnRhaW5lclF1ZXJ5UGFyc2VyOjpj
b25zdW1lQ29udGFpbmVyUXVlcnkoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAg
YXV0byBjb25zdW1lTmFtZSA9IFsmXSB7CiAgICAgICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgp
ID09IExlZnRQYXJlbnRoZXNpc1Rva2VuIHx8IHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rp
b25Ub2tlbikKQEAgLTUxLDE0ICs1MSwxNCBAQCBzdGQ6Om9wdGlvbmFsPEZpbHRlcmVkQ29udGFp
bmVyUXVlcnk+IENvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lRmlsdGVyZWRDb250YQogCiAg
ICAgbV9yZXF1aXJlZEF4ZXMgPSB7IH07CiAKLSAgICBhdXRvIHF1ZXJ5ID0gY29uc3VtZUNvbnRh
aW5lclF1ZXJ5KHJhbmdlKTsKLSAgICBpZiAoIXF1ZXJ5KQorICAgIGF1dG8gY29uZGl0aW9uID0g
Y29uc3VtZUNvbmRpdGlvbjxDUTo6Q29udGFpbmVyQ29uZGl0aW9uPihyYW5nZSk7CisgICAgaWYg
KCFjb25kaXRpb24pCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gRmlsdGVyZWRD
b250YWluZXJRdWVyeSB7IG5hbWUsIG1fcmVxdWlyZWRBeGVzLCAqcXVlcnkgfTsKKyAgICByZXR1
cm4gQ1E6OkNvbnRhaW5lclF1ZXJ5IHsgbmFtZSwgbV9yZXF1aXJlZEF4ZXMsICpjb25kaXRpb24g
fTsKIH0KIAotc3RkOjpvcHRpb25hbDxDUTo6Q29udGFpbmVyUXVlcnk+IENvbnRhaW5lclF1ZXJ5
UGFyc2VyOjpjb25zdW1lQ29udGFpbmVyUXVlcnkoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2Up
CitzdGQ6Om9wdGlvbmFsPENROjpRdWVyeUluUGFyZW5zPiBDb250YWluZXJRdWVyeVBhcnNlcjo6
Y29uc3VtZVF1ZXJ5SW5QYXJlbnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAg
aWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbikgewogICAgICAgICBhdXRv
IG5hbWUgPSByYW5nZS5wZWVrKCkudmFsdWUoKTsKQEAgLTkyLDcgKzkyLDcgQEAgc3RkOjpvcHRp
b25hbDxDb25kaXRpb25UeXBlPiBDb250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3VtZUNvbmRpdGlv
bihDU1NQYXJzZXJUb2sKIHsKICAgICBhdXRvIGNvbnN1bWVRdWVyeSA9IFsmXShDU1NQYXJzZXJU
b2tlblJhbmdlJiByYW5nZSkgewogICAgICAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfc2FtZV92
PENROjpDb250YWluZXJDb25kaXRpb24sIENvbmRpdGlvblR5cGU+KQotICAgICAgICAgICAgcmV0
dXJuIGNvbnN1bWVDb250YWluZXJRdWVyeShyYW5nZSk7CisgICAgICAgICAgICByZXR1cm4gY29u
c3VtZVF1ZXJ5SW5QYXJlbnMocmFuZ2UpOwogICAgICAgICAvLyBTdHlsZSBxdWVyeSBzdXBwb3J0
IHdvdWxkIGJlIGhlcmUuCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVl
cnlQYXJzZXIuaAppbmRleCA4NWM2YmI4NzVhMDMuLmRlN2FkZDVjYjc4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmgKQEAgLTM0LDExICszNCwxMSBAQCBjbGFz
cyBDU1NQYXJzZXJUb2tlblJhbmdlOwogCiBjbGFzcyBDb250YWluZXJRdWVyeVBhcnNlciB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RmlsdGVyZWRDb250YWluZXJRdWVyeT4g
Y29uc3VtZUZpbHRlcmVkQ29udGFpbmVyUXVlcnkoQ1NTUGFyc2VyVG9rZW5SYW5nZSYsIGNvbnN0
IENTU1BhcnNlckNvbnRleHQmKTsKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDUTo6Q29udGFp
bmVyUXVlcnk+IGNvbnN1bWVDb250YWluZXJRdWVyeShDU1NQYXJzZXJUb2tlblJhbmdlJiwgY29u
c3QgQ1NTUGFyc2VyQ29udGV4dCYpOwogCiBwcml2YXRlOgotICAgIHN0ZDo6b3B0aW9uYWw8Rmls
dGVyZWRDb250YWluZXJRdWVyeT4gY29uc3VtZUZpbHRlcmVkQ29udGFpbmVyUXVlcnkoQ1NTUGFy
c2VyVG9rZW5SYW5nZSYpOwogICAgIHN0ZDo6b3B0aW9uYWw8Q1E6OkNvbnRhaW5lclF1ZXJ5PiBj
b25zdW1lQ29udGFpbmVyUXVlcnkoQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOworICAgIHN0ZDo6b3B0
aW9uYWw8Q1E6OlF1ZXJ5SW5QYXJlbnM+IGNvbnN1bWVRdWVyeUluUGFyZW5zKENTU1BhcnNlclRv
a2VuUmFuZ2UmKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb25kaXRpb25UeXBlPiBzdGQ6Om9w
dGlvbmFsPENvbmRpdGlvblR5cGU+IGNvbnN1bWVDb25kaXRpb24oQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYpOwogICAgIHN0ZDo6b3B0aW9uYWw8Q1E6OlNpemVGZWF0dXJlPiBjb25zdW1lU2l6ZUZlYXR1
cmUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOwogICAgIHN0ZDo6b3B0aW9uYWw8Q1E6OlNpemVGZWF0
dXJlPiBjb25zdW1lUGxhaW5TaXplRmVhdHVyZShDU1NQYXJzZXJUb2tlblJhbmdlJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJ1bGUuY3BwCmluZGV4IGY4ZGNkYjdlNGIzMi4uNmJmZjcyNWVjNGMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSdWxlLmNwcApAQCAtNDU1LDE5ICs0NTUsMTkgQEAgUmVmPFN0eWxlUnVs
ZUxheWVyPiBTdHlsZVJ1bGVMYXllcjo6Y3JlYXRlQmxvY2soQ2FzY2FkZUxheWVyTmFtZSYmIG5h
bWUsIFZlY3RvcjwKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHlsZVJ1bGVMYXllcihXVEZN
b3ZlKG5hbWUpLCBXVEZNb3ZlKHJ1bGVzKSkpOwogfQogCi1TdHlsZVJ1bGVDb250YWluZXI6OlN0
eWxlUnVsZUNvbnRhaW5lcihGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5JiYgcXVlcnksIFZlY3RvcjxS
ZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiYgcnVsZXMpCitTdHlsZVJ1bGVDb250YWluZXI6OlN0eWxl
UnVsZUNvbnRhaW5lcihDUTo6Q29udGFpbmVyUXVlcnkmJiBxdWVyeSwgVmVjdG9yPFJlZlB0cjxT
dHlsZVJ1bGVCYXNlPj4mJiBydWxlcykKICAgICA6IFN0eWxlUnVsZUdyb3VwKFN0eWxlUnVsZVR5
cGU6OkNvbnRhaW5lciwgV1RGTW92ZShydWxlcykpCi0gICAgLCBtX2ZpbHRlcmVkUXVlcnkoV1RG
TW92ZShxdWVyeSkpCisgICAgLCBtX2NvbnRhaW5lclF1ZXJ5KFdURk1vdmUocXVlcnkpKQogewog
fQogCiBTdHlsZVJ1bGVDb250YWluZXI6OlN0eWxlUnVsZUNvbnRhaW5lcihjb25zdCBTdHlsZVJ1
bGVDb250YWluZXImIG90aGVyKQogICAgIDogU3R5bGVSdWxlR3JvdXAob3RoZXIpCi0gICAgLCBt
X2ZpbHRlcmVkUXVlcnkob3RoZXIubV9maWx0ZXJlZFF1ZXJ5KQorICAgICwgbV9jb250YWluZXJR
dWVyeShvdGhlci5tX2NvbnRhaW5lclF1ZXJ5KQogewogfQogCi1SZWY8U3R5bGVSdWxlQ29udGFp
bmVyPiBTdHlsZVJ1bGVDb250YWluZXI6OmNyZWF0ZShGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5JiYg
cXVlcnksIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiYgcnVsZXMpCitSZWY8U3R5bGVS
dWxlQ29udGFpbmVyPiBTdHlsZVJ1bGVDb250YWluZXI6OmNyZWF0ZShDUTo6Q29udGFpbmVyUXVl
cnkmJiBxdWVyeSwgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4mJiBydWxlcykKIHsKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHlsZVJ1bGVDb250YWluZXIoV1RGTW92ZShxdWVyeSks
IFdURk1vdmUocnVsZXMpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgKaW5kZXggMjMzMGUyMTQ0
ZGZlLi5jZWQ1MGQ4NzVlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmgKQEAgLTI5MSwxNiArMjkx
LDE2IEBAIHByaXZhdGU6CiAKIGNsYXNzIFN0eWxlUnVsZUNvbnRhaW5lciBmaW5hbCA6IHB1Ymxp
YyBTdHlsZVJ1bGVHcm91cCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTdHlsZVJ1bGVDb250
YWluZXI+IGNyZWF0ZShGaWx0ZXJlZENvbnRhaW5lclF1ZXJ5JiYsIFZlY3RvcjxSZWZQdHI8U3R5
bGVSdWxlQmFzZT4+JiYpOworICAgIHN0YXRpYyBSZWY8U3R5bGVSdWxlQ29udGFpbmVyPiBjcmVh
dGUoQ1E6OkNvbnRhaW5lclF1ZXJ5JiYsIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiYp
OwogICAgIFJlZjxTdHlsZVJ1bGVDb250YWluZXI+IGNvcHkoKSBjb25zdCB7IHJldHVybiBhZG9w
dFJlZigqbmV3IFN0eWxlUnVsZUNvbnRhaW5lcigqdGhpcykpOyB9CiAKLSAgICBjb25zdCBGaWx0
ZXJlZENvbnRhaW5lclF1ZXJ5JiBmaWx0ZXJlZFF1ZXJ5KCkgY29uc3QgeyByZXR1cm4gbV9maWx0
ZXJlZFF1ZXJ5OyB9CisgICAgY29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5JiBjb250YWluZXJRdWVy
eSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbmVyUXVlcnk7IH0KIAogcHJpdmF0ZToKLSAgICBT
dHlsZVJ1bGVDb250YWluZXIoRmlsdGVyZWRDb250YWluZXJRdWVyeSYmLCBWZWN0b3I8UmVmUHRy
PFN0eWxlUnVsZUJhc2U+PiYmKTsKKyAgICBTdHlsZVJ1bGVDb250YWluZXIoQ1E6OkNvbnRhaW5l
clF1ZXJ5JiYsIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiYpOwogICAgIFN0eWxlUnVs
ZUNvbnRhaW5lcihjb25zdCBTdHlsZVJ1bGVDb250YWluZXImKTsKIAotICAgIEZpbHRlcmVkQ29u
dGFpbmVyUXVlcnkgbV9maWx0ZXJlZFF1ZXJ5OworICAgIENROjpDb250YWluZXJRdWVyeSBtX2Nv
bnRhaW5lclF1ZXJ5OwogfTsKIAogLy8gVGhpcyBpcyBvbmx5IHVzZWQgYnkgdGhlIENTUyBwYXJz
ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckltcGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJJbXBsLmNwcAppbmRleCAx
Mzg5ZWU4M2ZlYTAuLjQ3ZTlkZTJmMjgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2Vy
L0NTU1BhcnNlckltcGwuY3BwCkBAIC03ODAsNyArNzgwLDcgQEAgUmVmUHRyPFN0eWxlUnVsZUNv
bnRhaW5lcj4gQ1NTUGFyc2VySW1wbDo6Y29uc3VtZUNvbnRhaW5lclJ1bGUoQ1NTUGFyc2VyVG9r
ZW5SYW4KICAgICBpZiAocHJlbHVkZS5hdEVuZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgIGF1dG8gcXVlcnkgPSBDb250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3VtZUZpbHRlcmVk
Q29udGFpbmVyUXVlcnkocHJlbHVkZSwgbV9jb250ZXh0KTsKKyAgICBhdXRvIHF1ZXJ5ID0gQ29u
dGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVDb250YWluZXJRdWVyeShwcmVsdWRlLCBtX2NvbnRl
eHQpOwogICAgIGlmICghcXVlcnkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5kZXggOTQw
ZjQwNTliNTJhLi40MTQ3Yzk0YmQxMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKQEAgLTUxOSw5ICs1MTksOSBAQCBzdGF0aWMgUmVm
PEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OkNTUzo6R3JvdXBpbmc+PiBidWlsZEFycmF5Rm9yR3Jv
dXBpbmdzKENTU1J1bAogICAgICAgICAgICAgICAgIC5yZWxlYXNlKCk7CiAKICAgICAgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgICAgIGF1dG8gbmFtZUZpbHRlciA9IGNv
bnRhaW5lclJ1bGUtPm5hbWVGaWx0ZXJUZXh0KCk7Ci0gICAgICAgICAgICBpZiAoIW5hbWVGaWx0
ZXIuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG5hbWVGaWx0ZXIs
ICcgJyk7CisgICAgICAgICAgICBhdXRvIG5hbWVUZXh0ID0gY29udGFpbmVyUnVsZS0+bmFtZVRl
eHQoKTsKKyAgICAgICAgICAgIGlmICghbmFtZVRleHQuaXNFbXB0eSgpKQorICAgICAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKG5hbWVUZXh0LCAnICcpOwogICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoY29udGFpbmVyUnVsZS0+Y29uZGl0aW9uVGV4dCgpKTsKICAgICAgICAgICAgIGNvbnRh
aW5lclJ1bGVQYXlsb2FkLT5zZXRUZXh0KGJ1aWxkZXIudG9TdHJpbmcoKSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCBmOWM1
ZjZjMmNkZDcuLjYxNDc0ZmU4N2QwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
Q29udGFpbmVyUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0Nv
bnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtNTMsMTYgKzUzLDE2IEBAIENvbnRhaW5lclF1
ZXJ5RXZhbHVhdG9yOjpDb250YWluZXJRdWVyeUV2YWx1YXRvcihjb25zdCBFbGVtZW50JiBlbGVt
ZW50LCBTZWxlY3RpCiB7CiB9CiAKLWJvb2wgQ29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OmV2YWx1
YXRlKGNvbnN0IEZpbHRlcmVkQ29udGFpbmVyUXVlcnkmIGZpbHRlcmVkQ29udGFpbmVyUXVlcnkp
IGNvbnN0Citib29sIENvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZShjb25zdCBDUTo6
Q29udGFpbmVyUXVlcnkmIGNvbnRhaW5lclF1ZXJ5KSBjb25zdAogewotICAgIGF1dG8gY29udGFp
bmVyID0gc2VsZWN0Q29udGFpbmVyKGZpbHRlcmVkQ29udGFpbmVyUXVlcnkpOworICAgIGF1dG8g
Y29udGFpbmVyID0gc2VsZWN0Q29udGFpbmVyKGNvbnRhaW5lclF1ZXJ5KTsKICAgICBpZiAoIWNv
bnRhaW5lcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGV2YWx1YXRlUXVl
cnkoZmlsdGVyZWRDb250YWluZXJRdWVyeS5xdWVyeSwgKmNvbnRhaW5lcikgPT0gRXZhbHVhdGlv
blJlc3VsdDo6VHJ1ZTsKKyAgICByZXR1cm4gZXZhbHVhdGVDb25kaXRpb24oY29udGFpbmVyUXVl
cnkuY29uZGl0aW9uLCAqY29udGFpbmVyKSA9PSBFdmFsdWF0aW9uUmVzdWx0OjpUcnVlOwogfQog
Ci1hdXRvIENvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpzZWxlY3RDb250YWluZXIoY29uc3QgRmls
dGVyZWRDb250YWluZXJRdWVyeSYgZmlsdGVyZWRDb250YWluZXJRdWVyeSkgY29uc3QgLT4gc3Rk
OjpvcHRpb25hbDxTZWxlY3RlZENvbnRhaW5lcj4KK2F1dG8gQ29udGFpbmVyUXVlcnlFdmFsdWF0
b3I6OnNlbGVjdENvbnRhaW5lcihjb25zdCBDUTo6Q29udGFpbmVyUXVlcnkmIGNvbnRhaW5lclF1
ZXJ5KSBjb25zdCAtPiBzdGQ6Om9wdGlvbmFsPFNlbGVjdGVkQ29udGFpbmVyPgogewogICAgIC8v
ICJGb3IgZWFjaCBlbGVtZW50LCB0aGUgcXVlcnkgY29udGFpbmVyIHRvIGJlIHF1ZXJpZWQgaXMg
c2VsZWN0ZWQgZnJvbSBhbW9uZyB0aGUgZWxlbWVudOKAmXMKICAgICAvLyBhbmNlc3RvciBxdWVy
eSBjb250YWluZXJzIHRoYXQgaGF2ZSBhIHZhbGlkIGNvbnRhaW5lci10eXBlIGZvciBhbGwgdGhl
IGNvbnRhaW5lciBmZWF0dXJlcwpAQCAtODIsNyArODIsNyBAQCBhdXRvIENvbnRhaW5lclF1ZXJ5
RXZhbHVhdG9yOjpzZWxlY3RDb250YWluZXIoY29uc3QgRmlsdGVyZWRDb250YWluZXJRdWVyeSYg
ZmlsdAogCiAgICAgYXV0byogY2FjaGVkUXVlcnlDb250YWluZXJzID0gbV9zZWxlY3Rvck1hdGNo
aW5nU3RhdGUgPyAmbV9zZWxlY3Rvck1hdGNoaW5nU3RhdGUtPnF1ZXJ5Q29udGFpbmVycyA6IG51
bGxwdHI7CiAKLSAgICBhdXRvKiBjb250YWluZXIgPSBzZWxlY3RDb250YWluZXIoZmlsdGVyZWRD
b250YWluZXJRdWVyeS5heGlzRmlsdGVyLCBmaWx0ZXJlZENvbnRhaW5lclF1ZXJ5Lm5hbWVGaWx0
ZXIsIG1fZWxlbWVudC5nZXQoKSwgbV9zZWxlY3Rpb25Nb2RlLCBtX3Njb3BlT3JkaW5hbCwgY2Fj
aGVkUXVlcnlDb250YWluZXJzKTsKKyAgICBhdXRvKiBjb250YWluZXIgPSBzZWxlY3RDb250YWlu
ZXIoY29udGFpbmVyUXVlcnkuYXhpc0ZpbHRlciwgY29udGFpbmVyUXVlcnkubmFtZSwgbV9lbGVt
ZW50LmdldCgpLCBtX3NlbGVjdGlvbk1vZGUsIG1fc2NvcGVPcmRpbmFsLCBjYWNoZWRRdWVyeUNv
bnRhaW5lcnMpOwogICAgIGlmICghY29udGFpbmVyKQogICAgICAgICByZXR1cm4geyB9OwogCkBA
IC0xNjQsOSArMTY0LDkgQEAgY29uc3QgRWxlbWVudCogQ29udGFpbmVyUXVlcnlFdmFsdWF0b3I6
OnNlbGVjdENvbnRhaW5lcihPcHRpb25TZXQ8Q1E6OkF4aXM+IGF4ZXMKICAgICByZXR1cm4geyB9
OwogfQogCi1hdXRvIENvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZVF1ZXJ5KGNvbnN0
IENROjpDb250YWluZXJRdWVyeSYgY29udGFpbmVyUXVlcnksIGNvbnN0IFNlbGVjdGVkQ29udGFp
bmVyJiBjb250YWluZXIpIGNvbnN0IC0+IEV2YWx1YXRpb25SZXN1bHQKK2F1dG8gQ29udGFpbmVy
UXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlUXVlcnlJblBhcmVucyhjb25zdCBDUTo6UXVlcnlJblBh
cmVucyYgcXVlcnlJblBhcmVucywgY29uc3QgU2VsZWN0ZWRDb250YWluZXImIGNvbnRhaW5lcikg
Y29uc3QgLT4gRXZhbHVhdGlvblJlc3VsdAogewotICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKGNv
bnRhaW5lclF1ZXJ5LCBbJl0oY29uc3QgQ1E6OkNvbnRhaW5lckNvbmRpdGlvbiYgY29udGFpbmVy
Q29uZGl0aW9uKSB7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24ocXVlcnlJblBhcmVucywgWyZd
KGNvbnN0IENROjpDb250YWluZXJDb25kaXRpb24mIGNvbnRhaW5lckNvbmRpdGlvbikgewogICAg
ICAgICByZXR1cm4gZXZhbHVhdGVDb25kaXRpb24oY29udGFpbmVyQ29uZGl0aW9uLCBjb250YWlu
ZXIpOwogICAgIH0sIFsmXShjb25zdCBDUTo6U2l6ZUZlYXR1cmUmIHNpemVGZWF0dXJlKSB7CiAg
ICAgICAgIHJldHVybiBldmFsdWF0ZVNpemVGZWF0dXJlKHNpemVGZWF0dXJlLCBjb250YWluZXIp
OwpAQCAtMTgzLDExICsxODMsMTEgQEAgYXV0byBDb250YWluZXJRdWVyeUV2YWx1YXRvcjo6ZXZh
bHVhdGVDb25kaXRpb24oY29uc3QgQ29uZGl0aW9uVHlwZSYgY29uZGl0aW9uLAogCiAgICAgc3dp
dGNoIChjb25kaXRpb24ubG9naWNhbE9wZXJhdG9yKSB7CiAgICAgY2FzZSBDUTo6TG9naWNhbE9w
ZXJhdG9yOjpOb3Q6Ci0gICAgICAgIHJldHVybiAhZXZhbHVhdGVRdWVyeShjb25kaXRpb24ucXVl
cmllcy5maXJzdCgpLCBjb250YWluZXIpOworICAgICAgICByZXR1cm4gIWV2YWx1YXRlUXVlcnlJ
blBhcmVucyhjb25kaXRpb24ucXVlcmllcy5maXJzdCgpLCBjb250YWluZXIpOwogICAgIGNhc2Ug
Q1E6OkxvZ2ljYWxPcGVyYXRvcjo6QW5kOiB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gRXZhbHVh
dGlvblJlc3VsdDo6VHJ1ZTsKICAgICAgICAgZm9yIChhdXRvIHF1ZXJ5IDogY29uZGl0aW9uLnF1
ZXJpZXMpIHsKLSAgICAgICAgICAgIGF1dG8gcXVlcnlSZXN1bHQgPSBldmFsdWF0ZVF1ZXJ5KHF1
ZXJ5LCBjb250YWluZXIpOworICAgICAgICAgICAgYXV0byBxdWVyeVJlc3VsdCA9IGV2YWx1YXRl
UXVlcnlJblBhcmVucyhxdWVyeSwgY29udGFpbmVyKTsKICAgICAgICAgICAgIGlmIChxdWVyeVJl
c3VsdCA9PSBFdmFsdWF0aW9uUmVzdWx0OjpGYWxzZSkKICAgICAgICAgICAgICAgICByZXR1cm4g
RXZhbHVhdGlvblJlc3VsdDo6RmFsc2U7CiAgICAgICAgICAgICBpZiAocXVlcnlSZXN1bHQgPT0g
RXZhbHVhdGlvblJlc3VsdDo6VW5rbm93bikKQEAgLTE5OCw3ICsxOTgsNyBAQCBhdXRvIENvbnRh
aW5lclF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZUNvbmRpdGlvbihjb25zdCBDb25kaXRpb25UeXBl
JiBjb25kaXRpb24sCiAgICAgY2FzZSBDUTo6TG9naWNhbE9wZXJhdG9yOjpPcjogewogICAgICAg
ICBhdXRvIHJlc3VsdCA9IEV2YWx1YXRpb25SZXN1bHQ6OkZhbHNlOwogICAgICAgICBmb3IgKGF1
dG8gcXVlcnkgOiBjb25kaXRpb24ucXVlcmllcykgewotICAgICAgICAgICAgYXV0byBxdWVyeVJl
c3VsdCA9IGV2YWx1YXRlUXVlcnkocXVlcnksIGNvbnRhaW5lcik7CisgICAgICAgICAgICBhdXRv
IHF1ZXJ5UmVzdWx0ID0gZXZhbHVhdGVRdWVyeUluUGFyZW5zKHF1ZXJ5LCBjb250YWluZXIpOwog
ICAgICAgICAgICAgaWYgKHF1ZXJ5UmVzdWx0ID09IEV2YWx1YXRpb25SZXN1bHQ6OlRydWUpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1bHQ6OlRydWU7CiAgICAgICAgICAg
ICBpZiAocXVlcnlSZXN1bHQgPT0gRXZhbHVhdGlvblJlc3VsdDo6VW5rbm93bikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5oCmluZGV4IDFiNzM3ODgw
MzZjZi4uYzc3MTk5ZGI3NzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250
YWluZXJRdWVyeUV2YWx1YXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5l
clF1ZXJ5RXZhbHVhdG9yLmgKQEAgLTQyLDE1ICs0MiwxNSBAQCBwdWJsaWM6CiAgICAgZW51bSBj
bGFzcyBTZWxlY3Rpb25Nb2RlIDogYm9vbCB7IEVsZW1lbnQsIFBzZXVkb0VsZW1lbnQgfTsKICAg
ICBDb250YWluZXJRdWVyeUV2YWx1YXRvcihjb25zdCBFbGVtZW50JiwgU2VsZWN0aW9uTW9kZSwg
U2NvcGVPcmRpbmFsLCBTZWxlY3Rvck1hdGNoaW5nU3RhdGUqKTsKIAotICAgIGJvb2wgZXZhbHVh
dGUoY29uc3QgRmlsdGVyZWRDb250YWluZXJRdWVyeSYpIGNvbnN0OworICAgIGJvb2wgZXZhbHVh
dGUoY29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5JikgY29uc3Q7CiAKICAgICBzdGF0aWMgY29uc3Qg
RWxlbWVudCogc2VsZWN0Q29udGFpbmVyKE9wdGlvblNldDxDUTo6QXhpcz4sIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgRWxlbWVudCYsIFNlbGVjdGlvbk1vZGUgPSBTZWxlY3Rpb25Nb2RlOjpF
bGVtZW50LCBTY29wZU9yZGluYWwgPSBTY29wZU9yZGluYWw6OkVsZW1lbnQsIGNvbnN0IENhY2hl
ZFF1ZXJ5Q29udGFpbmVycyogPSBudWxscHRyKTsKIAogcHJpdmF0ZToKICAgICBzdHJ1Y3QgU2Vs
ZWN0ZWRDb250YWluZXI7Ci0gICAgc3RkOjpvcHRpb25hbDxTZWxlY3RlZENvbnRhaW5lcj4gc2Vs
ZWN0Q29udGFpbmVyKGNvbnN0IEZpbHRlcmVkQ29udGFpbmVyUXVlcnkmKSBjb25zdDsKKyAgICBz
dGQ6Om9wdGlvbmFsPFNlbGVjdGVkQ29udGFpbmVyPiBzZWxlY3RDb250YWluZXIoY29uc3QgQ1E6
OkNvbnRhaW5lclF1ZXJ5JikgY29uc3Q7CiAKLSAgICBFdmFsdWF0aW9uUmVzdWx0IGV2YWx1YXRl
UXVlcnkoY29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5JiwgY29uc3QgU2VsZWN0ZWRDb250YWluZXIm
KSBjb25zdDsKKyAgICBFdmFsdWF0aW9uUmVzdWx0IGV2YWx1YXRlUXVlcnlJblBhcmVucyhjb25z
dCBDUTo6UXVlcnlJblBhcmVucyYsIGNvbnN0IFNlbGVjdGVkQ29udGFpbmVyJikgY29uc3Q7CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29uZGl0aW9uVHlwZT4gRXZhbHVhdGlvblJlc3VsdCBldmFs
dWF0ZUNvbmRpdGlvbihjb25zdCBDb25kaXRpb25UeXBlJiwgY29uc3QgU2VsZWN0ZWRDb250YWlu
ZXImKSBjb25zdDsKICAgICBFdmFsdWF0aW9uUmVzdWx0IGV2YWx1YXRlU2l6ZUZlYXR1cmUoY29u
c3QgQ1E6OlNpemVGZWF0dXJlJiwgY29uc3QgU2VsZWN0ZWRDb250YWluZXImKSBjb25zdDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvUnVsZVNldC5oCmluZGV4IDE2ZmZhMjkwNjM4Ni4uZmU3MTE1NzBjNDUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvUnVsZVNldC5oCkBAIC0xMTMsNyArMTEzLDcgQEAgcHVibGljOgogICAgIENhc2Nh
ZGVMYXllclByaW9yaXR5IGNhc2NhZGVMYXllclByaW9yaXR5Rm9yKGNvbnN0IFJ1bGVEYXRhJikg
Y29uc3Q7CiAKICAgICBib29sIGhhc0NvbnRhaW5lclF1ZXJpZXMoKSBjb25zdCB7IHJldHVybiAh
bV9jb250YWluZXJRdWVyaWVzLmlzRW1wdHkoKTsgfQotICAgIFZlY3Rvcjxjb25zdCBGaWx0ZXJl
ZENvbnRhaW5lclF1ZXJ5Kj4gY29udGFpbmVyUXVlcmllc0Zvcihjb25zdCBSdWxlRGF0YSYpIGNv
bnN0OworICAgIFZlY3Rvcjxjb25zdCBDUTo6Q29udGFpbmVyUXVlcnkqPiBjb250YWluZXJRdWVy
aWVzRm9yKGNvbnN0IFJ1bGVEYXRhJikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNs
YXNzIFJ1bGVTZXRCdWlsZGVyOwpAQCAtMjMwLDE3ICsyMzAsMTcgQEAgaW5saW5lIENhc2NhZGVM
YXllclByaW9yaXR5IFJ1bGVTZXQ6OmNhc2NhZGVMYXllclByaW9yaXR5Rm9yKGNvbnN0IFJ1bGVE
YXRhJiBydWwKICAgICByZXR1cm4gY2FzY2FkZUxheWVyUHJpb3JpdHlGb3JJZGVudGlmaWVyKGlk
ZW50aWZpZXIpOwogfQogCi1pbmxpbmUgVmVjdG9yPGNvbnN0IEZpbHRlcmVkQ29udGFpbmVyUXVl
cnkqPiBSdWxlU2V0Ojpjb250YWluZXJRdWVyaWVzRm9yKGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0
YSkgY29uc3QKK2lubGluZSBWZWN0b3I8Y29uc3QgQ1E6OkNvbnRhaW5lclF1ZXJ5Kj4gUnVsZVNl
dDo6Y29udGFpbmVyUXVlcmllc0Zvcihjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEpIGNvbnN0CiB7
CiAgICAgaWYgKG1fY29udGFpbmVyUXVlcnlJZGVudGlmaWVyRm9yUnVsZVBvc2l0aW9uLnNpemUo
KSA8PSBydWxlRGF0YS5wb3NpdGlvbigpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgVmVj
dG9yPGNvbnN0IEZpbHRlcmVkQ29udGFpbmVyUXVlcnkqPiBxdWVyaWVzOworICAgIFZlY3Rvcjxj
b25zdCBDUTo6Q29udGFpbmVyUXVlcnkqPiBxdWVyaWVzOwogCiAgICAgYXV0byBpZGVudGlmaWVy
ID0gbV9jb250YWluZXJRdWVyeUlkZW50aWZpZXJGb3JSdWxlUG9zaXRpb25bcnVsZURhdGEucG9z
aXRpb24oKV07CiAgICAgd2hpbGUgKGlkZW50aWZpZXIpIHsKICAgICAgICAgYXV0byYgcXVlcnkg
PSBtX2NvbnRhaW5lclF1ZXJpZXNbaWRlbnRpZmllciAtIDFdOwotICAgICAgICBxdWVyaWVzLmFw
cGVuZCgmcXVlcnkuY29udGFpbmVyUnVsZS0+ZmlsdGVyZWRRdWVyeSgpKTsKKyAgICAgICAgcXVl
cmllcy5hcHBlbmQoJnF1ZXJ5LmNvbnRhaW5lclJ1bGUtPmNvbnRhaW5lclF1ZXJ5KCkpOwogICAg
ICAgICBpZGVudGlmaWVyID0gcXVlcnkucGFyZW50OwogICAgIH07CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRhaW5lci1xdWVyaWVzL2F0LWNvbnRhaW5lci1wYXJzaW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRhaW5lci1xdWVyaWVzL2F0LWNvbnRhaW5lci1wYXJzaW5nLWV4cGVjdGVkLnR4dAppbmRl
eCAyOWRhZTg1MjQxMWMuLmZlNmZiODc5MjEyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1
ZXJpZXMvYXQtY29udGFpbmVyLXBhcnNpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5l
ci1xdWVyaWVzL2F0LWNvbnRhaW5lci1wYXJzaW5nLWV4cGVjdGVkLnR4dApAQCAtMjEsNyArMjEs
NyBAQCBQQVNTIChub3QgKHdpZHRoOiAxMDBweCkpCiBQQVNTICgod2lkdGg6IDEwMHB4KSBhbmQg
KGhlaWdodDogMTAwcHgpKQogUEFTUyAoKCh3aWR0aDogNDBweCkgb3IgKHdpZHRoOiA1MHB4KSkg
YW5kIChoZWlnaHQ6IDEwMHB4KSkKIFBBU1MgKCh3aWR0aDogMTAwcHgpIGFuZCAoKGhlaWdodDog
NDBweCkgb3IgKGhlaWdodDogNTBweCkpKQotUEFTUyAoKCh3aWR0aDogNDB4KSBhbmQgKGhlaWdo
dDogNTBweCkpIG9yIChoZWlnaHQ6IDEwMHB4KSkKK1BBU1MgKCgod2lkdGg6IDQwcHgpIGFuZCAo
aGVpZ2h0OiA1MHB4KSkgb3IgKGhlaWdodDogMTAwcHgpKQogUEFTUyAoKHdpZHRoOiA1MHB4KSBv
ciAoKHdpZHRoOiA0MHB4KSBhbmQgKGhlaWdodDogNTBweCkpKQogUEFTUyAoKHdpZHRoOiAxMDBw
eCkgYW5kIChub3QgKGhlaWdodDogMTAwcHgpKSkKIFBBU1MgKHdpZHRoIDwgMTAwcHgpCkBAIC00
Nyw2ICs0Nyw5IEBAIFBBU1MgKHdpZHRoIDwgY2FsYygxMHB4ICsgMTBlbSkpCiBQQVNTICh3aWR0
aCA8IG1heCgxMHB4LCAxMGVtKSkKIFBBU1MgKGNhbGMoMTBweCArIDEwZW0pIDwgd2lkdGgpCiBQ
QVNTIChjYWxjKDEwcHggKyAxMGVtKSA8IHdpZHRoIDwgbWF4KDMwcHgsIDMwZW0pKQorUEFTUyAo
d2lkdGg6IDEwMHB4KSBhbmQgKGhlaWdodDogMTAwcHgpCitQQVNTICh3aWR0aDogMTAwcHgpIG9y
IChoZWlnaHQ6IDEwMHB4KQorUEFTUyBub3QgKHdpZHRoOiAxMDBweCkKIFBBU1MgZm9vKHdpZHRo
KQogUEFTUyBzaXplKHdpZHRoKQogUEFTUyAoYXNkZikKQEAgLTc0LDMyICs3NywzMSBAQCBQQVNT
IHNjcmVlbiBvciAod2lkdGg6IDEwMHB4KQogUEFTUyBub3Qgc2NyZWVuIGFuZCAod2lkdGg6IDEw
MHB4KQogUEFTUyBub3Qgc2NyZWVuIG9yICh3aWR0aDogMTAwcHgpCiBQQVNTICh3aWR0aDogMTAw
cHgpLCAoaGVpZ2h0OiAxMDBweCkKLVBBU1MgKHdpZHRoOiAxMDBweCkgYW5kIChoZWlnaHQ6IDEw
MHB4KQotUEFTUyAod2lkdGg6IDEwMHB4KSBvciAoaGVpZ2h0OiAxMDBweCkKLVBBU1Mgbm90ICh3
aWR0aDogMTAwcHgpCiBQQVNTIGZvbyAod2lkdGg6IDEwMHB4KQotUEFTUyBDb250YWluZXIgc2Vs
ZWN0b3I6IGZvbwotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6ICBmb28KLVBBU1MgQ29udGFpbmVy
IHNlbGVjdG9yOiAgZm9vCi1QQVNTIENvbnRhaW5lciBzZWxlY3RvcjogZm9vIGZvbwotUEFTUyBD
b250YWluZXIgc2VsZWN0b3I6IDFweAotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6IDUwZ2lsCi1Q
QVNTIENvbnRhaW5lciBzZWxlY3RvcjogbmFtZShmb28pCi1QQVNTIENvbnRhaW5lciBzZWxlY3Rv
cjogdHlwZShpbmxpbmUtc2l6ZSkKLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiAiZm9vIgotUEFT
UyBDb250YWluZXIgc2VsZWN0b3I6ICJpbmhlcml0IgotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6
IG5vbmUKLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiBOb25lCi1QQVNTIENvbnRhaW5lciBzZWxl
Y3Rvcjogbm9ybWFsCi1QQVNTIENvbnRhaW5lciBzZWxlY3RvcjogTm9ybWFsCi1QQVNTIENvbnRh
aW5lciBzZWxlY3RvcjogYXV0bwotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6IEF1dG8KLVBBU1Mg
Q29udGFpbmVyIHNlbGVjdG9yOiBhbmQKLVBBU1MgQ29udGFpbmVyIHNlbGVjdG9yOiBvcgotUEFT
UyBDb250YWluZXIgc2VsZWN0b3I6IG5vdAotUEFTUyBDb250YWluZXIgc2VsZWN0b3I6IEFuZAot
UEFTUyBDb250YWluZXIgc2VsZWN0b3I6IG9SCi1QQVNTIENvbnRhaW5lciBzZWxlY3Rvcjogbk90
CitQQVNTIG5hbWUgbm90ICh3aWR0aCA8PSA1MDBweCkKK1BBU1Mgbm90ICh3aWR0aCA8PSA1MDBw
eCkKK1BBU1MgQ29udGFpbmVyIG5hbWU6IGZvbworUEFTUyBDb250YWluZXIgbmFtZTogIGZvbwor
UEFTUyBDb250YWluZXIgbmFtZTogIGZvbworUEFTUyBDb250YWluZXIgbmFtZTogZm9vIGZvbwor
UEFTUyBDb250YWluZXIgbmFtZTogMXB4CitQQVNTIENvbnRhaW5lciBuYW1lOiA1MGdpbAorUEFT
UyBDb250YWluZXIgbmFtZTogbmFtZShmb28pCitQQVNTIENvbnRhaW5lciBuYW1lOiB0eXBlKGlu
bGluZS1zaXplKQorUEFTUyBDb250YWluZXIgbmFtZTogImZvbyIKK1BBU1MgQ29udGFpbmVyIG5h
bWU6ICJpbmhlcml0IgorUEFTUyBDb250YWluZXIgbmFtZTogbm9uZQorUEFTUyBDb250YWluZXIg
bmFtZTogTm9uZQorUEFTUyBDb250YWluZXIgbmFtZTogbm9ybWFsCitQQVNTIENvbnRhaW5lciBu
YW1lOiBOb3JtYWwKK1BBU1MgQ29udGFpbmVyIG5hbWU6IGF1dG8KK1BBU1MgQ29udGFpbmVyIG5h
bWU6IEF1dG8KK1BBU1MgQ29udGFpbmVyIG5hbWU6IGFuZAorUEFTUyBDb250YWluZXIgbmFtZTog
b3IKK1BBU1MgQ29udGFpbmVyIG5hbWU6IG5vdAorUEFTUyBDb250YWluZXIgbmFtZTogQW5kCitQ
QVNTIENvbnRhaW5lciBuYW1lOiBvUgorUEFTUyBDb250YWluZXIgbmFtZTogbk90CiBGQUlMIHN0
eWxlKC0tbXktcHJvcDogZm9vKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAidHJ1ZSIgYnV0IGdv
dCAiIgogRkFJTCBzdHlsZSgtLW15LXByb3A6IGZvbyAtIGJhciAoKSkgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgInRydWUiIGJ1dCBnb3QgIiIKIEZBSUwgc3R5bGUobm90ICgoLS1mb286IGNhbGMo
MTBweCArIDJlbSkpIGFuZCAoKC0tZm9vOiB1cmwoeCkpKSkpIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICJ0cnVlIiBidXQgZ290ICIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9h
dC1jb250YWluZXItcGFyc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvYXQtY29udGFp
bmVyLXBhcnNpbmcuaHRtbAppbmRleCA2Mjc4Zjg4MjE2ZjMuLjNjZjdmM2EwMjUxZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvYXQtY29udGFpbmVyLXBhcnNpbmcuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250YWluZXItcXVlcmllcy9hdC1jb250YWluZXItcGFyc2luZy5odG1sCkBAIC0yMiwx
NzAgKzIyLDE4MSBAQAogICAgIHJldHVybiBzdHlsZTsKICAgfQogCi0gIGZ1bmN0aW9uIHRlc3Rf
cXVlcnlfaW52YWxpZChxdWVyeSkgeworICBmdW5jdGlvbiB0ZXN0X3J1bGVfdmFsaWQocXVlcnkp
IHsKICAgICB0ZXN0KHQgPT4gewogICAgICAgdC5hZGRfY2xlYW51cChjbGVhbnVwX21haW4pOwot
ICAgICAgbGV0IHN0eWxlID0gc2V0X3N0eWxlKGBAY29udGFpbmVyIG5hbWUgJHtxdWVyeX0ge31g
KTsKLSAgICAgIGFzc2VydF9lcXVhbHMoc3R5bGUuc2hlZXQucnVsZXMubGVuZ3RoLCAwKTsKKyAg
ICAgIGxldCBzdHlsZSA9IHNldF9zdHlsZShgQGNvbnRhaW5lciAke3F1ZXJ5fSB7fWApOworICAg
ICAgYXNzZXJ0X2VxdWFscyhzdHlsZS5zaGVldC5ydWxlcy5sZW5ndGgsIDEpOwogICAgIH0sIHF1
ZXJ5KTsKICAgfQogCi0gIC8vIFRlc3RzIHRoYXQgMSkgdGhlIHF1ZXJ5IHBhcnNlcywgYW5kIDIp
IGlzIGVpdGhlciAidW5rbm93biIgb3Igbm90LCBhcworICBmdW5jdGlvbiB0ZXN0X2NvbmRpdGlv
bl9pbnZhbGlkKGNvbmRpdGlvbikgeworICAgIHRlc3QodCA9PiB7CisgICAgICB0LmFkZF9jbGVh
bnVwKGNsZWFudXBfbWFpbik7CisgICAgICBsZXQgc3R5bGUgPSBzZXRfc3R5bGUoYEBjb250YWlu
ZXIgbmFtZSAke2NvbmRpdGlvbn0ge31gKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoc3R5bGUuc2hl
ZXQucnVsZXMubGVuZ3RoLCAwKTsKKyAgICB9LCBjb25kaXRpb24pOworICB9CisKKyAgLy8gVGVz
dHMgdGhhdCAxKSB0aGUgY29uZGl0aW9uIHBhcnNlcywgYW5kIDIpIGlzIGVpdGhlciAidW5rbm93
biIgb3Igbm90LCBhcwogICAvLyBzcGVjaWZpZWQuCi0gIGZ1bmN0aW9uIHRlc3RfcXVlcnlfdmFs
aWQocXVlcnksIHVua25vd24pIHsKKyAgZnVuY3Rpb24gdGVzdF9jb25kaXRpb25fdmFsaWQoY29u
ZGl0aW9uLCB1bmtub3duKSB7CiAgICAgdGVzdCh0ID0+IHsKICAgICAgIHQuYWRkX2NsZWFudXAo
Y2xlYW51cF9tYWluKTsKICAgICAgIGxldCBzdHlsZSA9IHNldF9zdHlsZShgCi0gICAgICAgIEBj
b250YWluZXIgbmFtZSAke3F1ZXJ5fSB7fQotICAgICAgICBAY29udGFpbmVyIG5hbWUgKCR7cXVl
cnl9IG9yIChub3QgJHtxdWVyeX0pKSB7IG1haW4geyAtLW1hdGNoOnRydWU7IH0gfQorICAgICAg
ICBAY29udGFpbmVyIG5hbWUgJHtjb25kaXRpb259IHt9CisgICAgICAgIEBjb250YWluZXIgbmFt
ZSAoJHtjb25kaXRpb259KSBvciAobm90ICgke2NvbmRpdGlvbn0pKSB7IG1haW4geyAtLW1hdGNo
OnRydWU7IH0gfQogICAgICAgYCk7CiAgICAgICBhc3NlcnRfZXF1YWxzKHN0eWxlLnNoZWV0LnJ1
bGVzLmxlbmd0aCwgMik7CiAgICAgICBjb25zdCBleHBlY3RlZCA9IHVua25vd24gPyAnJyA6ICd0
cnVlJzsKICAgICAgIGFzc2VydF9lcXVhbHMoZ2V0Q29tcHV0ZWRTdHlsZShtYWluKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctLW1hdGNoJyksIGV4cGVjdGVkKTsKLSAgICB9LCBxdWVyeSk7CisgICAgfSwg
Y29uZGl0aW9uKTsKICAgfQogCi0gIGZ1bmN0aW9uIHRlc3RfcXVlcnlfa25vd24ocXVlcnkpIHsK
LSAgICB0ZXN0X3F1ZXJ5X3ZhbGlkKHF1ZXJ5LCBmYWxzZSAvKiB1bmtub3duICovKTsKKyAgZnVu
Y3Rpb24gdGVzdF9jb25kaXRpb25fa25vd24oY29uZGl0aW9uKSB7CisgICAgdGVzdF9jb25kaXRp
b25fdmFsaWQoY29uZGl0aW9uLCBmYWxzZSAvKiB1bmtub3duICovKTsKICAgfQogCi0gIGZ1bmN0
aW9uIHRlc3RfcXVlcnlfdW5rbm93bihxdWVyeSkgewotICAgIHRlc3RfcXVlcnlfdmFsaWQocXVl
cnksIHRydWUgLyogdW5rbm93biAqLyk7CisgIGZ1bmN0aW9uIHRlc3RfY29uZGl0aW9uX3Vua25v
d24oY29uZGl0aW9uKSB7CisgICAgdGVzdF9jb25kaXRpb25fdmFsaWQoY29uZGl0aW9uLCB0cnVl
IC8qIHVua25vd24gKi8pOwogICB9CiAKLSAgZnVuY3Rpb24gdGVzdF9jb250YWluZXJfc2VsZWN0
b3JfaW52YWxpZChjb250YWluZXJfc2VsZWN0b3IpIHsKKyAgZnVuY3Rpb24gdGVzdF9jb250YWlu
ZXJfbmFtZV9pbnZhbGlkKGNvbnRhaW5lcl9uYW1lKSB7CiAgICAgdGVzdCh0ID0+IHsKICAgICAg
IHQuYWRkX2NsZWFudXAoY2xlYW51cF9tYWluKTsKLSAgICAgIGxldCBzdHlsZSA9IHNldF9zdHls
ZShgQGNvbnRhaW5lciAke2NvbnRhaW5lcl9zZWxlY3Rvcn0gKHdpZHRoKSB7fWApOworICAgICAg
bGV0IHN0eWxlID0gc2V0X3N0eWxlKGBAY29udGFpbmVyICR7Y29udGFpbmVyX25hbWV9IG5vdCAo
d2lkdGgpIHt9YCk7CiAgICAgICBhc3NlcnRfZXF1YWxzKHN0eWxlLnNoZWV0LnJ1bGVzLmxlbmd0
aCwgMCk7Ci0gICAgfSwgYENvbnRhaW5lciBzZWxlY3RvcjogJHtjb250YWluZXJfc2VsZWN0b3J9
YCk7CisgICAgfSwgYENvbnRhaW5lciBuYW1lOiAke2NvbnRhaW5lcl9uYW1lfWApOwogICB9CiAK
LSAgZnVuY3Rpb24gdGVzdF9jb250YWluZXJfc2VsZWN0b3JfdmFsaWQoY29udGFpbmVyX3NlbGVj
dG9yKSB7CisgIGZ1bmN0aW9uIHRlc3RfY29udGFpbmVyX25hbWVfdmFsaWQoY29udGFpbmVyX25h
bWUpIHsKICAgICB0ZXN0KHQgPT4gewogICAgICAgdC5hZGRfY2xlYW51cChjbGVhbnVwX21haW4p
OwotICAgICAgbGV0IHN0eWxlID0gc2V0X3N0eWxlKGBAY29udGFpbmVyICR7Y29udGFpbmVyX3Nl
bGVjdG9yfSAod2lkdGgpIHt9YCk7CisgICAgICBsZXQgc3R5bGUgPSBzZXRfc3R5bGUoYEBjb250
YWluZXIgJHtjb250YWluZXJfbmFtZX0gbm90ICh3aWR0aCkge31gKTsKICAgICAgIGFzc2VydF9l
cXVhbHMoc3R5bGUuc2hlZXQucnVsZXMubGVuZ3RoLCAxKTsKLSAgICB9LCBgQ29udGFpbmVyIHNl
bGVjdG9yOiAke2NvbnRhaW5lcl9zZWxlY3Rvcn1gKTsKKyAgICB9LCBgQ29udGFpbmVyIG5hbWU6
ICR7Y29udGFpbmVyX25hbWV9YCk7CiAgIH0KIAotICB0ZXN0X3F1ZXJ5X2tub3duKCcod2lkdGgp
Jyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyhtaW4td2lkdGg6IDBweCknKTsKLSAgdGVzdF9xdWVy
eV9rbm93bignKG1heC13aWR0aDogMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoaGVpZ2h0
KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcobWluLWhlaWdodDogMHB4KScpOwotICB0ZXN0X3F1
ZXJ5X2tub3duKCcobWF4LWhlaWdodDogMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoYXNw
ZWN0LXJhdGlvKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcobWluLWFzcGVjdC1yYXRpbzogMS8y
KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcobWF4LWFzcGVjdC1yYXRpbzogMS8yKScpOwotICB0
ZXN0X3F1ZXJ5X2tub3duKCcob3JpZW50YXRpb246IHBvcnRyYWl0KScpOwotICB0ZXN0X3F1ZXJ5
X2tub3duKCcoaW5saW5lLXNpemUpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyhtaW4taW5saW5l
LXNpemU6IDBweCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKG1heC1pbmxpbmUtc2l6ZTogMHB4
KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoYmxvY2stc2l6ZSknKTsKLSAgdGVzdF9xdWVyeV9r
bm93bignKG1pbi1ibG9jay1zaXplOiAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyhtYXgt
YmxvY2stc2l6ZTogMHB4KScpOwotCi0gIHRlc3RfcXVlcnlfa25vd24oJyh3aWR0aDogMTAwcHgp
Jyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJygod2lkdGg6IDEwMHB4KSknKTsKLSAgdGVzdF9xdWVy
eV9rbm93bignKG5vdCAod2lkdGg6IDEwMHB4KSknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKCh3
aWR0aDogMTAwcHgpIGFuZCAoaGVpZ2h0OiAxMDBweCkpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24o
JygoKHdpZHRoOiA0MHB4KSBvciAod2lkdGg6IDUwcHgpKSBhbmQgKGhlaWdodDogMTAwcHgpKScp
OwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoKHdpZHRoOiAxMDBweCkgYW5kICgoaGVpZ2h0OiA0MHB4
KSBvciAoaGVpZ2h0OiA1MHB4KSkpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJygoKHdpZHRoOiA0
MHgpIGFuZCAoaGVpZ2h0OiA1MHB4KSkgb3IgKGhlaWdodDogMTAwcHgpKScpOwotICB0ZXN0X3F1
ZXJ5X2tub3duKCcoKHdpZHRoOiA1MHB4KSBvciAoKHdpZHRoOiA0MHB4KSBhbmQgKGhlaWdodDog
NTBweCkpKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoKHdpZHRoOiAxMDBweCkgYW5kIChub3Qg
KGhlaWdodDogMTAwcHgpKSknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKHdpZHRoIDwgMTAwcHgp
Jyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyh3aWR0aCA8PSAxMDBweCknKTsKLSAgdGVzdF9xdWVy
eV9rbm93bignKHdpZHRoID0gMTAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyh3aWR0aCA+
IDEwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcod2lkdGggPj0gMTAwcHgpJyk7Ci0gIHRl
c3RfcXVlcnlfa25vd24oJygxMDBweCA8IHdpZHRoKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCco
MTAwcHggPD0gd2lkdGgpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJygxMDBweCA9IHdpZHRoKScp
OwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoMTAwcHggPiB3aWR0aCknKTsKLSAgdGVzdF9xdWVyeV9r
bm93bignKDEwMHB4ID49IHdpZHRoKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoMTAwcHggPCB3
aWR0aCA8IDIwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCcoMTAwcHggPCB3aWR0aCA8PSAy
MDBweCknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKDEwMHB4IDw9IHdpZHRoIDwgMjAwcHgpJyk7
Ci0gIHRlc3RfcXVlcnlfa25vd24oJygxMDBweCA+IHdpZHRoID4gMjAwcHgpJyk7Ci0gIHRlc3Rf
cXVlcnlfa25vd24oJygxMDBweCA+IHdpZHRoID49IDIwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X2tu
b3duKCcoMTAwcHggPj0gd2lkdGggPiAyMDBweCknKTsKLQotICB0ZXN0X3F1ZXJ5X2tub3duKCco
d2lkdGg6IGNhbGMoMTBweCkpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJyh3aWR0aDogY2FsYygx
MGVtKSknKTsKLSAgdGVzdF9xdWVyeV9rbm93bignKHdpZHRoOiBjYWxjKDEwcHggKyAxMGVtKSkn
KTsKLSAgdGVzdF9xdWVyeV9rbm93bignKHdpZHRoIDwgY2FsYygxMHB4ICsgMTBlbSkpJyk7Ci0g
IHRlc3RfcXVlcnlfa25vd24oJyh3aWR0aCA8IG1heCgxMHB4LCAxMGVtKSknKTsKLSAgdGVzdF9x
dWVyeV9rbm93bignKGNhbGMoMTBweCArIDEwZW0pIDwgd2lkdGgpJyk7Ci0gIHRlc3RfcXVlcnlf
a25vd24oJyhjYWxjKDEwcHggKyAxMGVtKSA8IHdpZHRoIDwgbWF4KDMwcHgsIDMwZW0pKScpOwot
Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignZm9vKHdpZHRoKScpOwotICB0ZXN0X3F1ZXJ5X3Vua25v
d24oJ3NpemUod2lkdGgpJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignKGFzZGYpJyk7Ci0gIHRl
c3RfcXVlcnlfdW5rbm93bignKHJlc29sdXRpb24gPiAxMDBkcGkpJyk7Ci0gIHRlc3RfcXVlcnlf
dW5rbm93bignKHJlc29sdXRpb246IDE1MGRwaSknKTsKLSAgdGVzdF9xdWVyeV91bmtub3duKCco
Y29sb3IpJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignKG1pbi1jb2xvcjogMSknKTsKLSAgdGVz
dF9xdWVyeV91bmtub3duKCcoY29sb3ItaW5kZXggPj0gMSknKTsKLSAgdGVzdF9xdWVyeV91bmtu
b3duKCdzaXplKGdyaWQpJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignKGdyaWQpJyk7Ci0gIHRl
c3RfcXVlcnlfdW5rbm93bignKHdpZHRoID09IDEwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X3Vua25v
d24oJygxMDBweCA9PSB3aWR0aCknKTsKLSAgdGVzdF9xdWVyeV91bmtub3duKCcoMTAwcHggPSB3
aWR0aCA9IDIwMHB4KScpOwotICB0ZXN0X3F1ZXJ5X3Vua25vd24oJygxMDBweCA8IHdpZHRoID4g
MjAwcHgpJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignKDEwMHB4IDw9IHdpZHRoID49IDIwMHB4
KScpOwotICB0ZXN0X3F1ZXJ5X3Vua25vd24oJygxMDBweCA8PSB3aWR0aCA+IDIwMHB4KScpOwot
ICB0ZXN0X3F1ZXJ5X3Vua25vd24oJygxMDBweCA8IHdpZHRoID49IDIwMHB4KScpOwotICB0ZXN0
X3F1ZXJ5X3Vua25vd24oJygxMDBweCA6IHdpZHRoIDogMjAwcHgpJyk7Ci0KLSAgdGVzdF9xdWVy
eV9pbnZhbGlkKCdzY3JlZW4nKTsKLSAgdGVzdF9xdWVyeV9pbnZhbGlkKCdwcmludCcpOwotICB0
ZXN0X3F1ZXJ5X2ludmFsaWQoJ25vdCBwcmludCcpOwotICB0ZXN0X3F1ZXJ5X2ludmFsaWQoJ29u
bHkgcHJpbnQnKTsKLSAgdGVzdF9xdWVyeV9pbnZhbGlkKCdzY3JlZW4gYW5kICh3aWR0aDogMTAw
cHgpJyk7Ci0gIHRlc3RfcXVlcnlfaW52YWxpZCgnc2NyZWVuIG9yICh3aWR0aDogMTAwcHgpJyk7
Ci0gIHRlc3RfcXVlcnlfaW52YWxpZCgnbm90IHNjcmVlbiBhbmQgKHdpZHRoOiAxMDBweCknKTsK
LSAgdGVzdF9xdWVyeV9pbnZhbGlkKCdub3Qgc2NyZWVuIG9yICh3aWR0aDogMTAwcHgpJyk7Ci0g
IHRlc3RfcXVlcnlfaW52YWxpZCgnKHdpZHRoOiAxMDBweCksIChoZWlnaHQ6IDEwMHB4KScpOwot
ICB0ZXN0X3F1ZXJ5X2ludmFsaWQoJyh3aWR0aDogMTAwcHgpIGFuZCAoaGVpZ2h0OiAxMDBweCkn
KTsKLSAgdGVzdF9xdWVyeV9pbnZhbGlkKCcod2lkdGg6IDEwMHB4KSBvciAoaGVpZ2h0OiAxMDBw
eCknKTsKLSAgdGVzdF9xdWVyeV9pbnZhbGlkKCdub3QgKHdpZHRoOiAxMDBweCknKTsKLSAgdGVz
dF9xdWVyeV9pbnZhbGlkKCdmb28gKHdpZHRoOiAxMDBweCknKTsKLQotICB0ZXN0X2NvbnRhaW5l
cl9zZWxlY3Rvcl92YWxpZCgnZm9vJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX3ZhbGlk
KCcgZm9vJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX3ZhbGlkKCcgZm9vICcpOwotCi0g
IHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX2ludmFsaWQoJ2ZvbyBmb28nKTsKLSAgdGVzdF9jb250
YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnMXB4Jyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9y
X2ludmFsaWQoJzUwZ2lsJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX2ludmFsaWQoJ25h
bWUoZm9vKScpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCd0eXBlKGlubGlu
ZS1zaXplKScpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCciZm9vIicpOwot
ICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCciaW5oZXJpdCInKTsKLSAgdGVzdF9j
b250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnbm9uZScpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxl
Y3Rvcl9pbnZhbGlkKCdOb25lJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX2ludmFsaWQo
J25vcm1hbCcpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCdOb3JtYWwnKTsK
LSAgdGVzdF9jb250YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnYXV0bycpOwotICB0ZXN0X2NvbnRh
aW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCdBdXRvJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9y
X2ludmFsaWQoJ2FuZCcpOwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCdvcicp
OwotICB0ZXN0X2NvbnRhaW5lcl9zZWxlY3Rvcl9pbnZhbGlkKCdub3QnKTsKLSAgdGVzdF9jb250
YWluZXJfc2VsZWN0b3JfaW52YWxpZCgnQW5kJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9y
X2ludmFsaWQoJ29SJyk7Ci0gIHRlc3RfY29udGFpbmVyX3NlbGVjdG9yX2ludmFsaWQoJ25PdCcp
OwotCi0gIHRlc3RfcXVlcnlfa25vd24oJ3N0eWxlKC0tbXktcHJvcDogZm9vKScpOwotICB0ZXN0
X3F1ZXJ5X2tub3duKCdzdHlsZSgtLW15LXByb3A6IGZvbyAtIGJhciAoKSknKTsKLSAgdGVzdF9x
dWVyeV9rbm93bignc3R5bGUobm90ICgoLS1mb286IGNhbGMoMTBweCArIDJlbSkpIGFuZCAoKC0t
Zm9vOiB1cmwoeCkpKSkpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJ3N0eWxlKCgtLWZvbzogYmFy
KSBvciAoLS1iYXI6IDEwcHgpKScpOwotICB0ZXN0X3F1ZXJ5X2tub3duKCdzdHlsZSgtLWZvbzog
YmFyICFpbXBvcnRhbnQpJyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJ3N0eWxlKC0tbXktcHJvcDop
Jyk7Ci0gIHRlc3RfcXVlcnlfa25vd24oJ3N0eWxlKC0tbXktcHJvcDogKScpOwotCi0gIHRlc3Rf
cXVlcnlfdW5rbm93bignc3R5bGUoLS1mb286IGJhcjspJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93
bignc3R5bGUoLS1mb28pJyk7Ci0gIHRlc3RfcXVlcnlfdW5rbm93bignc3R5bGUoc3R5bGUoLS1m
b286IGJhcikpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcod2lkdGgpJyk7CisgIHRlc3Rf
Y29uZGl0aW9uX2tub3duKCcobWluLXdpZHRoOiAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tu
b3duKCcobWF4LXdpZHRoOiAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoaGVpZ2h0
KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKG1pbi1oZWlnaHQ6IDBweCknKTsKKyAgdGVz
dF9jb25kaXRpb25fa25vd24oJyhtYXgtaGVpZ2h0OiAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9u
X2tub3duKCcoYXNwZWN0LXJhdGlvKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKG1pbi1h
c3BlY3QtcmF0aW86IDEvMiknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyhtYXgtYXNwZWN0
LXJhdGlvOiAxLzIpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcob3JpZW50YXRpb246IHBv
cnRyYWl0KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKGlubGluZS1zaXplKScpOworICB0
ZXN0X2NvbmRpdGlvbl9rbm93bignKG1pbi1pbmxpbmUtc2l6ZTogMHB4KScpOworICB0ZXN0X2Nv
bmRpdGlvbl9rbm93bignKG1heC1pbmxpbmUtc2l6ZTogMHB4KScpOworICB0ZXN0X2NvbmRpdGlv
bl9rbm93bignKGJsb2NrLXNpemUpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcobWluLWJs
b2NrLXNpemU6IDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyhtYXgtYmxvY2stc2l6
ZTogMHB4KScpOworCisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcod2lkdGg6IDEwMHB4KScpOwor
ICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKCh3aWR0aDogMTAwcHgpKScpOworICB0ZXN0X2NvbmRp
dGlvbl9rbm93bignKG5vdCAod2lkdGg6IDEwMHB4KSknKTsKKyAgdGVzdF9jb25kaXRpb25fa25v
d24oJygod2lkdGg6IDEwMHB4KSBhbmQgKGhlaWdodDogMTAwcHgpKScpOworICB0ZXN0X2NvbmRp
dGlvbl9rbm93bignKCgod2lkdGg6IDQwcHgpIG9yICh3aWR0aDogNTBweCkpIGFuZCAoaGVpZ2h0
OiAxMDBweCkpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoKHdpZHRoOiAxMDBweCkgYW5k
ICgoaGVpZ2h0OiA0MHB4KSBvciAoaGVpZ2h0OiA1MHB4KSkpJyk7CisgIHRlc3RfY29uZGl0aW9u
X2tub3duKCcoKCh3aWR0aDogNDBweCkgYW5kIChoZWlnaHQ6IDUwcHgpKSBvciAoaGVpZ2h0OiAx
MDBweCkpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoKHdpZHRoOiA1MHB4KSBvciAoKHdp
ZHRoOiA0MHB4KSBhbmQgKGhlaWdodDogNTBweCkpKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93
bignKCh3aWR0aDogMTAwcHgpIGFuZCAobm90IChoZWlnaHQ6IDEwMHB4KSkpJyk7CisgIHRlc3Rf
Y29uZGl0aW9uX2tub3duKCcod2lkdGggPCAxMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25v
d24oJyh3aWR0aCA8PSAxMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJyh3aWR0aCA9
IDEwMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoID4gMTAwcHgpJyk7Cisg
IHRlc3RfY29uZGl0aW9uX2tub3duKCcod2lkdGggPj0gMTAwcHgpJyk7CisgIHRlc3RfY29uZGl0
aW9uX2tub3duKCcoMTAwcHggPCB3aWR0aCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJygx
MDBweCA8PSB3aWR0aCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJygxMDBweCA9IHdpZHRo
KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKDEwMHB4ID4gd2lkdGgpJyk7CisgIHRlc3Rf
Y29uZGl0aW9uX2tub3duKCcoMTAwcHggPj0gd2lkdGgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tu
b3duKCcoMTAwcHggPCB3aWR0aCA8IDIwMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bign
KDEwMHB4IDwgd2lkdGggPD0gMjAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoMTAw
cHggPD0gd2lkdGggPCAyMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJygxMDBweCA+
IHdpZHRoID4gMjAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcoMTAwcHggPiB3aWR0
aCA+PSAyMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJygxMDBweCA+PSB3aWR0aCA+
IDIwMHB4KScpOworCisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcod2lkdGg6IGNhbGMoMTBweCkp
Jyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCcod2lkdGg6IGNhbGMoMTBlbSkpJyk7CisgIHRl
c3RfY29uZGl0aW9uX2tub3duKCcod2lkdGg6IGNhbGMoMTBweCArIDEwZW0pKScpOworICB0ZXN0
X2NvbmRpdGlvbl9rbm93bignKHdpZHRoIDwgY2FsYygxMHB4ICsgMTBlbSkpJyk7CisgIHRlc3Rf
Y29uZGl0aW9uX2tub3duKCcod2lkdGggPCBtYXgoMTBweCwgMTBlbSkpJyk7CisgIHRlc3RfY29u
ZGl0aW9uX2tub3duKCcoY2FsYygxMHB4ICsgMTBlbSkgPCB3aWR0aCknKTsKKyAgdGVzdF9jb25k
aXRpb25fa25vd24oJyhjYWxjKDEwcHggKyAxMGVtKSA8IHdpZHRoIDwgbWF4KDMwcHgsIDMwZW0p
KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoOiAxMDBweCkgYW5kIChoZWlnaHQ6
IDEwMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignKHdpZHRoOiAxMDBweCkgb3IgKGhl
aWdodDogMTAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCdub3QgKHdpZHRoOiAxMDBw
eCknKTsKKworICB0ZXN0X2NvbmRpdGlvbl91bmtub3duKCdmb28od2lkdGgpJyk7CisgIHRlc3Rf
Y29uZGl0aW9uX3Vua25vd24oJ3NpemUod2lkdGgpJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25v
d24oJyhhc2RmKScpOworICB0ZXN0X2NvbmRpdGlvbl91bmtub3duKCcocmVzb2x1dGlvbiA+IDEw
MGRwaSknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignKHJlc29sdXRpb246IDE1MGRwaSkn
KTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignKGNvbG9yKScpOworICB0ZXN0X2NvbmRpdGlv
bl91bmtub3duKCcobWluLWNvbG9yOiAxKScpOworICB0ZXN0X2NvbmRpdGlvbl91bmtub3duKCco
Y29sb3ItaW5kZXggPj0gMSknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignc2l6ZShncmlk
KScpOworICB0ZXN0X2NvbmRpdGlvbl91bmtub3duKCcoZ3JpZCknKTsKKyAgdGVzdF9jb25kaXRp
b25fdW5rbm93bignKHdpZHRoID09IDEwMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl91bmtub3du
KCcoMTAwcHggPT0gd2lkdGgpJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJygxMDBweCA9
IHdpZHRoID0gMjAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJygxMDBweCA8IHdp
ZHRoID4gMjAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJygxMDBweCA8PSB3aWR0
aCA+PSAyMDBweCknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignKDEwMHB4IDw9IHdpZHRo
ID4gMjAwcHgpJyk7CisgIHRlc3RfY29uZGl0aW9uX3Vua25vd24oJygxMDBweCA8IHdpZHRoID49
IDIwMHB4KScpOworICB0ZXN0X2NvbmRpdGlvbl91bmtub3duKCcoMTAwcHggOiB3aWR0aCA6IDIw
MHB4KScpOworCisgIHRlc3RfY29uZGl0aW9uX2ludmFsaWQoJ3NjcmVlbicpOworICB0ZXN0X2Nv
bmRpdGlvbl9pbnZhbGlkKCdwcmludCcpOworICB0ZXN0X2NvbmRpdGlvbl9pbnZhbGlkKCdub3Qg
cHJpbnQnKTsKKyAgdGVzdF9jb25kaXRpb25faW52YWxpZCgnb25seSBwcmludCcpOworICB0ZXN0
X2NvbmRpdGlvbl9pbnZhbGlkKCdzY3JlZW4gYW5kICh3aWR0aDogMTAwcHgpJyk7CisgIHRlc3Rf
Y29uZGl0aW9uX2ludmFsaWQoJ3NjcmVlbiBvciAod2lkdGg6IDEwMHB4KScpOworICB0ZXN0X2Nv
bmRpdGlvbl9pbnZhbGlkKCdub3Qgc2NyZWVuIGFuZCAod2lkdGg6IDEwMHB4KScpOworICB0ZXN0
X2NvbmRpdGlvbl9pbnZhbGlkKCdub3Qgc2NyZWVuIG9yICh3aWR0aDogMTAwcHgpJyk7CisgIHRl
c3RfY29uZGl0aW9uX2ludmFsaWQoJyh3aWR0aDogMTAwcHgpLCAoaGVpZ2h0OiAxMDBweCknKTsK
KyAgdGVzdF9jb25kaXRpb25faW52YWxpZCgnZm9vICh3aWR0aDogMTAwcHgpJyk7CisKKyAgdGVz
dF9ydWxlX3ZhbGlkKCduYW1lIG5vdCAod2lkdGggPD0gNTAwcHgpJyk7CisgIHRlc3RfcnVsZV92
YWxpZCgnbm90ICh3aWR0aCA8PSA1MDBweCknKTsKKworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX3Zh
bGlkKCdmb28nKTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV92YWxpZCgnIGZvbycpOworICB0ZXN0
X2NvbnRhaW5lcl9uYW1lX3ZhbGlkKCcgZm9vICcpOworCisgIHRlc3RfY29udGFpbmVyX25hbWVf
aW52YWxpZCgnZm9vIGZvbycpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQoJzFweCcp
OworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQoJzUwZ2lsJyk7CisgIHRlc3RfY29udGFp
bmVyX25hbWVfaW52YWxpZCgnbmFtZShmb28pJyk7CisgIHRlc3RfY29udGFpbmVyX25hbWVfaW52
YWxpZCgndHlwZShpbmxpbmUtc2l6ZSknKTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlk
KCciZm9vIicpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQoJyJpbmhlcml0IicpOwor
ICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQoJ25vbmUnKTsKKyAgdGVzdF9jb250YWluZXJf
bmFtZV9pbnZhbGlkKCdOb25lJyk7CisgIHRlc3RfY29udGFpbmVyX25hbWVfaW52YWxpZCgnbm9y
bWFsJyk7CisgIHRlc3RfY29udGFpbmVyX25hbWVfaW52YWxpZCgnTm9ybWFsJyk7CisgIHRlc3Rf
Y29udGFpbmVyX25hbWVfaW52YWxpZCgnYXV0bycpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2lu
dmFsaWQoJ0F1dG8nKTsKKyAgdGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCdhbmQnKTsKKyAg
dGVzdF9jb250YWluZXJfbmFtZV9pbnZhbGlkKCdvcicpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1l
X2ludmFsaWQoJ25vdCcpOworICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQoJ0FuZCcpOwor
ICB0ZXN0X2NvbnRhaW5lcl9uYW1lX2ludmFsaWQoJ29SJyk7CisgIHRlc3RfY29udGFpbmVyX25h
bWVfaW52YWxpZCgnbk90Jyk7CisKKyAgdGVzdF9jb25kaXRpb25fa25vd24oJ3N0eWxlKC0tbXkt
cHJvcDogZm9vKScpOworICB0ZXN0X2NvbmRpdGlvbl9rbm93bignc3R5bGUoLS1teS1wcm9wOiBm
b28gLSBiYXIgKCkpJyk7CisgIHRlc3RfY29uZGl0aW9uX2tub3duKCdzdHlsZShub3QgKCgtLWZv
bzogY2FsYygxMHB4ICsgMmVtKSkgYW5kICgoLS1mb286IHVybCh4KSkpKSknKTsKKyAgdGVzdF9j
b25kaXRpb25fa25vd24oJ3N0eWxlKCgtLWZvbzogYmFyKSBvciAoLS1iYXI6IDEwcHgpKScpOwor
ICB0ZXN0X2NvbmRpdGlvbl9rbm93bignc3R5bGUoLS1mb286IGJhciAhaW1wb3J0YW50KScpOwor
ICB0ZXN0X2NvbmRpdGlvbl9rbm93bignc3R5bGUoLS1teS1wcm9wOiknKTsKKyAgdGVzdF9jb25k
aXRpb25fa25vd24oJ3N0eWxlKC0tbXktcHJvcDogKScpOworCisgIHRlc3RfY29uZGl0aW9uX3Vu
a25vd24oJ3N0eWxlKC0tZm9vOiBiYXI7KScpOworICB0ZXN0X2NvbmRpdGlvbl91bmtub3duKCdz
dHlsZSgtLWZvbyknKTsKKyAgdGVzdF9jb25kaXRpb25fdW5rbm93bignc3R5bGUoc3R5bGUoLS1m
b286IGJhcikpJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVz
L2NyYXNodGVzdHMvY2hyb21lLWJ1Zy0xMzQ2OTY5LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXIt
cXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1idWctMTM0Njk2OS1jcmFzaC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzdjNzRjZjhjYjFjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvY3Jhc2h0ZXN0cy9jaHJvbWUtYnVnLTEzNDY5
NjktY3Jhc2guaHRtbApAQCAtMCwwICsxLDE0IEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5D
aHJvbWUgY3Jhc2ggYnVnIDEzNDY5Njk8L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2NyYnVnLmNvbS8xMzQ2OTY5Ij4KKzx0YWJsZSBpZD0idGFibGUiPiA8L3RhYmxlPgor
PHNjcmlwdD4KKyAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisgIHRhYmxlLnN0eWxlLmNvbnRh
aW5lclR5cGUgPSAiaW5saW5lLXNpemUiOworICB0YWJsZS5zdHlsZS5hcHBlYXJhbmNlID0gImF1
dG8iOworICB0YWJsZS5zdHlsZS5jb2x1bW5Db3VudCA9IDI7CisgIHRhYmxlLmNyZWF0ZVRCb2R5
KCk7CisgIHRhYmxlLmNyZWF0ZUNhcHRpb24oKTsKKyAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7
CisgIHRhYmxlLnN0eWxlLndoaXRlU3BhY2UgPSAicHJlLXdyYXAiOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1yZW1vdmUtaW5z
ZXJ0LWV2YWx1YXRvci1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvY3Jhc2h0ZXN0
cy9jaHJvbWUtcmVtb3ZlLWluc2VydC1ldmFsdWF0b3ItY3Jhc2guaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjk4NmY2YjBiZjY5ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY2hyb21lLXJlbW92ZS1pbnNlcnQt
ZXZhbHVhdG9yLWNyYXNoLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
dGl0bGU+UmVtb3ZpbmcgYW5kIHJlLWluc2VydGluZyBhIGNvbnRhaW5lciBzaG91bGQgY3Jhc2g8
L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2NyYnVnLmNvbS8xMzQyNzUw
Ij4KKzxzdHlsZT4KKyAgI2NvbnRhaW5lciB7IGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZSB9
Cis8L3N0eWxlPgorPGRpdiBpZD0ib3V0ZXIiPgorICA8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2
PgorPC9kaXY+Cis8c2NyaXB0PgorICBjb250YWluZXIub2Zmc2V0VG9wOworICBsZXQgcmVtb3Zl
ZCA9IGNvbnRhaW5lcjsKKyAgY29udGFpbmVyLnJlbW92ZSgpOworICBvdXRlci5hcHBlbmRDaGls
ZChyZW1vdmVkKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMv
Y3Jhc2h0ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVz
dHMvdzNjLWltcG9ydC5sb2cKaW5kZXggZDMxZmY0NmJkOWE1Li43YTExODZmZDU2ODUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvdzNjLWltcG9ydC5sb2cKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGFpbmVyLXF1ZXJpZXMvY3Jhc2h0ZXN0cy93M2MtaW1wb3J0LmxvZwpAQCAtMTgs
NyArMTgsOSBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVz
dHMvY2FudmFzLWFzLWNvbnRhaW5lci1jcmFzaC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbmVyLXF1ZXJpZXMv
Y3Jhc2h0ZXN0cy9jaHJvbWUtYnVnLTEyODk3MTgtMDAwLWNyYXNoLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWlu
ZXItcXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1idWctMTI4OTcxOC0wMDEtY3Jhc2guaHRtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY2hyb21lLWJ1Zy0xMzQ2OTY5LWNyYXNo
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRlc3RzL2Nocm9tZS1xdW90ZXMtY3Jh
c2guaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRhaW5lci1xdWVyaWVzL2NyYXNodGVzdHMvY2hyb21lLXJlbW92ZS1p
bnNlcnQtZXZhbHVhdG9yLWNyYXNoLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmllcy9jcmFzaHRl
c3RzL2NvbHVtbnMtaW4tdGFibGUtMDAxLWNyYXNoLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluZXItcXVlcmll
cy9jcmFzaHRlc3RzL2NvbHVtbnMtaW4tdGFibGUtMDAyLWNyYXNoLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWlu
ZXItcXVlcmllcy9jcmFzaHRlc3RzL2NvbnRhaW5lci1pbi1jYW52YXMtY3Jhc2guaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>