<?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>211743</bug_id>
          
          <creation_ts>2020-05-11 13:50:53 -0700</creation_ts>
          <short_desc>[clang-tidy] Run modernize-use-override over JSC, then ensure as much as possible is final</short_desc>
          <delta_ts>2020-05-12 12:08:42 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=211772</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tsavell</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1651422</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-11 13:50:53 -0700</bug_when>
    <thetext>[clang-tidy] Run modernize-use-override over JSC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651423</commentid>
    <comment_count>1</comment_count>
      <attachid>399053</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-11 13:51:42 -0700</bug_when>
    <thetext>Created attachment 399053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651425</commentid>
    <comment_count>2</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-11 13:54:09 -0700</bug_when>
    <thetext>Looks like most of these are marking destructors in derived classes, but there are a handful of nice corrections for where `virtual` was used when `override` was intended.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651427</commentid>
    <comment_count>3</comment_count>
      <attachid>399053</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-11 13:55:49 -0700</bug_when>
    <thetext>Comment on attachment 399053
Patch

This doesn’t follow the WebKit project guideline of using &quot;final&quot; rather than &quot;override&quot; whenever possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651428</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-11 13:56:45 -0700</bug_when>
    <thetext>I’m not sure I love that guideline, but I don’t want a tool to change that guideline for us! We should decide first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651429</commentid>
    <comment_count>5</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-11 13:57:01 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 399053 [details]
&gt; Patch
&gt; 
&gt; This doesn’t follow the WebKit project guideline of using &quot;final&quot; rather
&gt; than &quot;override&quot; whenever possible.

Hmm, I was thinking it would do so if the class itself was marked final. I can go over the cases individually to make sure...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651433</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-11 13:59:27 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #5)
&gt; Hmm, I was thinking it would do so if the class itself was marked final. I
&gt; can go over the cases individually to make sure...

JITThunks.h shows that it does not. Many of these classes *could* be marked final.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651534</commentid>
    <comment_count>7</comment_count>
      <attachid>399071</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-11 17:24:48 -0700</bug_when>
    <thetext>Created attachment 399071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651548</commentid>
    <comment_count>8</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-11 17:40:30 -0700</bug_when>
    <thetext>There doesn&apos;t seem to be a way to automate making things `final`, but this goes through all the classes which had `override` corrections and makes as many of them `final` as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651550</commentid>
    <comment_count>9</comment_count>
      <attachid>399078</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-11 17:47:13 -0700</bug_when>
    <thetext>Created attachment 399078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651563</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-11 18:32:33 -0700</bug_when>
    <thetext>I like that. This is particularly useful for JSObject hierarchy: due to IsoSubspace etc. we need to be extra careful about the hierarchy of JSObject. This `final` makes it explicit that this class is final class. This is really good for readability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651564</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-11 18:33:45 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #10)
&gt; I like that. This is particularly useful for JSObject hierarchy: due to
&gt; IsoSubspace etc. we need to be extra careful about the hierarchy of
&gt; JSObject. This `final` makes it explicit that this class is final class.
&gt; This is really good for readability.

And because this is driven by tooling, we can rather consider that the given class A could have derived class if it does not have `final` annotation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651587</commentid>
    <comment_count>12</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-11 19:46:42 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #11)
&gt; (In reply to Yusuke Suzuki from comment #10)
&gt; &gt; I like that. This is particularly useful for JSObject hierarchy: due to
&gt; &gt; IsoSubspace etc. we need to be extra careful about the hierarchy of
&gt; &gt; JSObject. This `final` makes it explicit that this class is final class.
&gt; &gt; This is really good for readability.
&gt; 
&gt; And because this is driven by tooling, we can rather consider that the given
&gt; class A could have derived class if it does not have `final` annotation.

It&apos;s definitely a nice step in the right direction, but I guess we&apos;d need to write our own rule if we wanted to statically analyze &quot;classes which should be final&quot;. Going through every class in JSC by hand is a bit much, but I could probably go through the rest of the `override` cases (because in this patch, I just touched the files that clang-tidy had already touched).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651596</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-11 20:04:16 -0700</bug_when>
    <thetext>Committed r261542: &lt;https://trac.webkit.org/changeset/261542&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399078.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651597</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-11 20:05:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/63117947&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651752</commentid>
    <comment_count>15</comment_count>
      <attachid>399078</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-05-12 09:02:55 -0700</bug_when>
    <thetext>Comment on attachment 399078
Patch

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

&gt; Source/JavaScriptCore/API/JSScriptRef.cpp:49
&gt; -struct OpaqueJSScript : public SourceProvider {
&gt; +struct OpaqueJSScript final : public SourceProvider {
&gt;  public:
&gt;      static WTF::Ref&lt;OpaqueJSScript&gt; create(VM&amp; vm, const SourceOrigin&amp; sourceOrigin, URL&amp;&amp; url, int startingLineNumber, const String&amp; source)
&gt;      {
&gt;          return WTF::adoptRef(*new OpaqueJSScript(vm, sourceOrigin, WTFMove(url), startingLineNumber, source));
&gt;      }
&gt;  
&gt; -    unsigned hash() const override
&gt; +    unsigned hash() const final

What is the point of having final functions in final classes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651755</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-05-12 09:11:52 -0700</bug_when>
    <thetext>This somehow broke internal build, seemingly with newer clang versions. I don&apos;t see how, but build failure history is clear.

Undefined symbols for architecture arm64:
  &quot;JSC::B3::PatchpointSpecial::~PatchpointSpecial()&quot;, referenced from:
      std::__1::default_delete&lt;JSC::B3::PatchpointSpecial&gt;::operator()(JSC::B3::PatchpointSpecial*) const in testair.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Not just arm64, all platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651756</commentid>
    <comment_count>17</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2020-05-12 09:12:30 -0700</bug_when>
    <thetext>Reverted r261542 for reason:

Broke internal builds

Committed r261556: &lt;https://trac.webkit.org/changeset/261556&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651763</commentid>
    <comment_count>18</comment_count>
      <attachid>399078</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-12 09:23:02 -0700</bug_when>
    <thetext>Comment on attachment 399078
Patch

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

&gt; Source/JavaScriptCore/b3/B3PatchpointSpecial.h:47
&gt; +    ~PatchpointSpecial() final;

Internal Apple builds are failing. I think this needs to be exported too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651764</commentid>
    <comment_count>19</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-12 09:24:12 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #18)
&gt; Comment on attachment 399078 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399078&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3PatchpointSpecial.h:47
&gt; &gt; +    ~PatchpointSpecial() final;
&gt; 
&gt; Internal Apple builds are failing. I think this needs to be exported too.

Seems like this was pointed out.

My guess is this turns into a direct call to the destructor in some places instead of a virtual call</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651807</commentid>
    <comment_count>20</comment_count>
      <attachid>399078</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-12 10:45:37 -0700</bug_when>
    <thetext>Comment on attachment 399078
Patch

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

&gt;&gt; Source/JavaScriptCore/API/JSScriptRef.cpp:49
&gt;&gt; +    unsigned hash() const final
&gt; 
&gt; What is the point of having final functions in final classes?

In a class marked final, there are multiple ways to annotate overriding functions. We could use &quot;override&quot;, &quot;final&quot;, &quot;override final&quot;, or &quot;final override&quot; and all would be equivalent. When we noticed this we had a conversation about which to choose on the webkit-dev mailing list. We selected &quot;final&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651814</commentid>
    <comment_count>21</comment_count>
      <attachid>399145</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-12 11:12:42 -0700</bug_when>
    <thetext>Created attachment 399145
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651815</commentid>
    <comment_count>22</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-05-12 11:16:13 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #19)
&gt; My guess is this turns into a direct call to the destructor in some places
&gt; instead of a virtual call

Yeah, EWS saw this happen in a couple of places in the patch that follows this (bug 211772) too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651823</commentid>
    <comment_count>23</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-05-12 11:31:02 -0700</bug_when>
    <thetext>&gt; In a class marked final, there are multiple ways to annotate overriding
&gt; functions. We could use &quot;override&quot;, &quot;final&quot;, &quot;override final&quot;, or &quot;final
&gt; override&quot; and all would be equivalent.

No annotation would be equivalent too, correct?

&gt; When we noticed this we had a
&gt; conversation about which to choose on the webkit-dev mailing list. We
&gt; selected &quot;final&quot;.

I see. I forgot that discussion because it didn&apos;t feel like there was any decision made, and it certainly isn&apos;t in the style guide. This option seems like the strangest one to me, as it&apos;s most obviously unnecessary. Is the purpose of adding an annotation to make it clear that the function is virtual, or something else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651827</commentid>
    <comment_count>24</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-12 11:38:21 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #23)
&gt; &gt; In a class marked final, there are multiple ways to annotate overriding
&gt; &gt; functions. We could use &quot;override&quot;, &quot;final&quot;, &quot;override final&quot;, or &quot;final
&gt; &gt; override&quot; and all would be equivalent.
&gt; 
&gt; No annotation would be equivalent too, correct?

No. Without annotation, we would *not* get a compilation error if it’s not actually overriding something. I believe the thing that these all have in common is that they all *do* provide that error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651832</commentid>
    <comment_count>25</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-12 11:48:08 -0700</bug_when>
    <thetext>Committed r261567: &lt;https://trac.webkit.org/changeset/261567&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399145.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651838</commentid>
    <comment_count>26</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-12 12:08:42 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #23)
&gt; I see. I forgot that discussion because it didn&apos;t feel like there was any
&gt; decision made

OK. I remember a decision made.

&gt; it certainly isn&apos;t in the style guide

We can fix that.

&gt; Is the
&gt; purpose of adding an annotation to make it clear that the function is
&gt; virtual, or something else?

It’s to make it clear that the function is overriding something, not a newly introduced function.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399053</attachid>
            <date>2020-05-11 13:51:42 -0700</date>
            <delta_ts>2020-05-11 17:24:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211743-20200511135141.patch</filename>
            <type>text/plain</type>
            <size>47487</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
OWNjODYyZWZhNDUyN2VkZjA0ZTM4MDRiYjIxODhjZDU4NTM2OTYyLi4xNDk4YTQxZTVjZWUyMmZm
MGQzNjdjOTJmYjZlOTE2NzNlYmZjNTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NiBAQAorMjAyMC0wNS0xMSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW2NsYW5nLXRpZHldIFJ1biBtb2Rlcm5pemUtdXNlLW92ZXJyaWRl
IG92ZXIgSlNDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTE3NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIEFQSS9KU1NjcmlwdFJlZi5jcHA6CisgICAgICAgICogYjMvQjNBcmd1bWVudFJlZ1ZhbHVl
Lmg6CisgICAgICAgICogYjMvQjNBdG9taWNWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzQ0NhbGxW
YWx1ZS5oOgorICAgICAgICAqIGIzL0IzQ2hlY2tTcGVjaWFsLmg6CisgICAgICAgICogYjMvQjND
aGVja1ZhbHVlLmg6CisgICAgICAgICogYjMvQjNDb25zdDMyVmFsdWUuaDoKKyAgICAgICAgKiBi
My9CM0NvbnN0NjRWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzQ29uc3REb3VibGVWYWx1ZS5oOgor
ICAgICAgICAqIGIzL0IzQ29uc3RGbG9hdFZhbHVlLmg6CisgICAgICAgICogYjMvQjNEYXRhU2Vj
dGlvbi5oOgorICAgICAgICAqIGIzL0IzRXh0cmFjdFZhbHVlLmg6CisgICAgICAgICogYjMvQjNG
ZW5jZVZhbHVlLmg6CisgICAgICAgICogYjMvQjNNZW1vcnlWYWx1ZS5oOgorICAgICAgICAqIGIz
L0IzUGF0Y2hwb2ludFNwZWNpYWwuaDoKKyAgICAgICAgKiBiMy9CM1BhdGNocG9pbnRWYWx1ZS5o
OgorICAgICAgICAqIGIzL0IzU2xvdEJhc2VWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzU3RhY2tt
YXBTcGVjaWFsLmg6CisgICAgICAgICogYjMvQjNTdGFja21hcFZhbHVlLmg6CisgICAgICAgICog
YjMvQjNTd2l0Y2hWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzVXBzaWxvblZhbHVlLmg6CisgICAg
ICAgICogYjMvQjNWYXJpYWJsZVZhbHVlLmg6CisgICAgICAgICogYjMvQjNXYXNtQWRkcmVzc1Zh
bHVlLmg6CisgICAgICAgICogYjMvQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5oOgorICAgICAgICAq
IGIzL2Fpci9BaXJDQ2FsbFNwZWNpYWwuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyUHJpbnRTcGVj
aWFsLmg6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuaDoKKyAgICAgICAgKiBi
eXRlY29kZS9HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmg6CisgICAgICAgICogYnl0ZWNvZGUvSW5z
dGFuY2VPZkFjY2Vzc0Nhc2UuaDoKKyAgICAgICAgKiBieXRlY29kZS9JbnRyaW5zaWNHZXR0ZXJB
Y2Nlc3NDYXNlLmg6CisgICAgICAgICogYnl0ZWNvZGUvTW9kdWxlTmFtZXNwYWNlQWNjZXNzQ2Fz
ZS5oOgorICAgICAgICAqIGJ5dGVjb2RlL1Byb3h5YWJsZUFjY2Vzc0Nhc2UuaDoKKyAgICAgICAg
KiBieXRlY29kZS9XYXRjaHBvaW50Lmg6CisgICAgICAgICogZGZnL0RGR0ZhaWxlZEZpbmFsaXpl
ci5oOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAqIGRmZy9ERkdKSVRDb2Rl
Lmg6CisgICAgICAgICogZGZnL0RGR0pJVEZpbmFsaXplci5oOgorICAgICAgICAqIGRmZy9ERkdU
b0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oOgorICAgICAgICAqIGRmZy9ERkdUb0ZU
TEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgICogZnRs
L0ZUTEZvck9TUkVudHJ5SklUQ29kZS5oOgorICAgICAgICAqIGZ0bC9GVExKSVRDb2RlLmg6Cisg
ICAgICAgICogZnRsL0ZUTEpJVEZpbmFsaXplci5oOgorICAgICAgICAqIGhlYXAvQ29tcGxldGVT
dWJzcGFjZS5oOgorICAgICAgICAqIGhlYXAvRmFzdE1hbGxvY0FsaWduZWRNZW1vcnlBbGxvY2F0
b3IuaDoKKyAgICAgICAgKiBoZWFwL0dpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvci5oOgor
ICAgICAgICAqIGhlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5oOgorICAgICAgICAqIGhlYXAvSXNv
QWxpZ25lZE1lbW9yeUFsbG9jYXRvci5oOgorICAgICAgICAqIGhlYXAvSXNvU3Vic3BhY2UuaDoK
KyAgICAgICAgKiBoZWFwL0lzb1N1YnNwYWNlUGVyVk0uY3BwOgorICAgICAgICAqIGhlYXAvTWFy
a1N0YWNrTWVyZ2luZ0NvbnN0cmFpbnQuaDoKKyAgICAgICAgKiBoZWFwL1NpbXBsZU1hcmtpbmdD
b25zdHJhaW50Lmg6CisgICAgICAgICogaGVhcC9TcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmg6
CisgICAgICAgICogaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5oOgor
ICAgICAgICAqIGhlYXAvU3luY2hyb25vdXNTdG9wVGhlV29ybGRNdXRhdG9yU2NoZWR1bGVyLmg6
CisgICAgICAgICogaml0L0dDQXdhcmVKSVRTdHViUm91dGluZS5oOgorICAgICAgICAqIGppdC9K
SVRDb2RlLmg6CisgICAgICAgICogaml0L0pJVFRodW5rcy5oOgorICAgICAgICAqIGppdC9KSVRU
b0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oOgorICAgICAgICAqIGppdC9Qb2x5bW9y
cGhpY0NhbGxTdHViUm91dGluZS5oOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogcnVu
dGltZS9KU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oOgorICAgICAgICAqIHJ1bnRp
bWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVj
dHVyZS5oOgorICAgICAgICAqIHJ1bnRpbWUvV2Vha0dDTWFwLmg6CisgICAgICAgICogd2FzbS9X
YXNtRW50cnlQbGFuLmg6CisKIDIwMjAtMDUtMTAgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNs
aW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtjbGFuZy10aWR5XSBSdW4gbW9kZXJuaXplLXVzZS1u
dWxscHRyIG92ZXIgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
U2NyaXB0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3Bw
CmluZGV4IGJiOTZlYmNjZTYyY2Q0ZWVkMDA2ZDQ0MjdlNzYwYTJlZDE5YWMxZmYuLjYxYTVkMzVl
NzYzOWU4ZDUxODBlMmU1YzM1MjM3YzJlNDIxMmFiNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNTY3JpcHRSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNTY3JpcHRSZWYuY3BwCkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgewog
ICAgIH0KIAotICAgIHZpcnR1YWwgfk9wYXF1ZUpTU2NyaXB0KCkgeyB9CisgICAgfk9wYXF1ZUpT
U2NyaXB0KCkgb3ZlcnJpZGUgeyB9CiAKICAgICBWTSYgbV92bTsKICAgICBSZWY8U3RyaW5nSW1w
bD4gbV9zb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNBcmd1
bWVudFJlZ1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNBcmd1bWVudFJlZ1Zh
bHVlLmgKaW5kZXggODc5ZTAxY2JlZGVjZGYwYWQ0OGYyYmM4MWFiNjA4YmI1YmVlOGY0ZS4uYWQ4
ZjBlYTEyZDdmMWVhYjkyZTI2N2FlMThmYjJkN2I2Mjg5N2JkNyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQXJndW1lbnRSZWdWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0FyZ3VtZW50UmVnVmFsdWUuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFz
cyBKU19FWFBPUlRfUFJJVkFURSBBcmd1bWVudFJlZ1ZhbHVlIDogcHVibGljIFZhbHVlIHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9
PSBBcmd1bWVudFJlZzsgfQogICAgIAotICAgIH5Bcmd1bWVudFJlZ1ZhbHVlKCk7CisgICAgfkFy
Z3VtZW50UmVnVmFsdWUoKSBvdmVycmlkZTsKIAogICAgIFJlZyBhcmd1bWVudFJlZygpIGNvbnN0
IHsgcmV0dXJuIG1fcmVnOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0F0b21pY1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNBdG9taWNWYWx1
ZS5oCmluZGV4IDlmMmI1MmQ3YTI3NjFlOGU0MTZmODMwMmE5NjZmZTA3YzcwZGViN2YuLmEwM2Mw
MGI4NmY0MGRlM2ZmNzFlMTMyMDEzNTVlOWI3Mzg3ZGFlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0F0b21pY1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQXRvbWljVmFsdWUuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBpc0F0b20oa2luZC5vcGNvZGUoKSk7CiAgICAgfQogICAgIAotICAgIH5BdG9taWNW
YWx1ZSgpOworICAgIH5BdG9taWNWYWx1ZSgpIG92ZXJyaWRlOwogICAgIAogICAgIFR5cGUgYWNj
ZXNzVHlwZSgpIGNvbnN0IHsgcmV0dXJuIGNoaWxkKDApLT50eXBlKCk7IH0KICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NDYWxsVmFsdWUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NDYWxsVmFsdWUuaAppbmRleCAyZjYwYTAxZTI3ODU0NjFjZjJh
OTE4NThmMjVkZDBjMWQ3NTIzMzYwLi45OTNjYTM5NjhhM2QwNzQ2NjFkNDAyNjI1MzYwZmM3NzYx
OTA4OTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDQ2FsbFZhbHVl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ0NhbGxWYWx1ZS5oCkBAIC0zNiw3
ICszNiw3IEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIENDYWxsVmFsdWUgOiBwdWJsaWMgVmFs
dWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVy
biBraW5kID09IENDYWxsOyB9CiAKLSAgICB+Q0NhbGxWYWx1ZSgpOworICAgIH5DQ2FsbFZhbHVl
KCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGFwcGVuZEFyZ3MoY29uc3QgVmVjdG9yPFZhbHVlKj4m
KTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3Bl
Y2lhbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFsLmgKaW5kZXgg
YjFhZDA1MTQyNzczMTYyZDVmNWRlNTZiOWZiZTMzYTI1MjE0ZGY0Ny4uYjUzYjJkMTA3ZWQwMTI2
N2I0MTA0YTlmZmExNDc0MjBjNmEyMDg2MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ2hlY2tTcGVjaWFsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q2hlY2tTcGVjaWFsLmgKQEAgLTExMyw3ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgQ2hl
Y2tTcGVjaWFsKEFpcjo6S2luZCwgdW5zaWduZWQgbnVtQXJncywgUm9sZU1vZGUgc3RhY2ttYXBS
b2xlID0gU2FtZUFzUmVwKTsKICAgICBDaGVja1NwZWNpYWwoY29uc3QgS2V5Jik7Ci0gICAgfkNo
ZWNrU3BlY2lhbCgpOworICAgIH5DaGVja1NwZWNpYWwoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVk
OgogICAgIC8vIENvbnN0cnVjdHMgYW5kIHJldHVybnMgdGhlIEluc3QgcmVwcmVzZW50aW5nIHRo
ZSBicmFuY2ggdGhhdCB0aGlzIHdpbGwgdXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ2hlY2tWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hl
Y2tWYWx1ZS5oCmluZGV4IDg5NzMyMGNkNTI2MGFjN2RkY2ZlOTA2NDhiMDRiMTZiOWY2MzRiMmUu
LmE2ZTFmZmQzNTQwNDc5M2M5N2IzN2NhOWQ1M2E4NTFjMzViZDdlNWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNDaGVja1ZhbHVlLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAg
ICAgICB9CiAgICAgfQogCi0gICAgfkNoZWNrVmFsdWUoKTsKKyAgICB+Q2hlY2tWYWx1ZSgpIG92
ZXJyaWRlOwogCiAgICAgdm9pZCBjb252ZXJ0VG9BZGQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb25zdDMyVmFsdWUuaAppbmRleCA0ZmZlZTExNDI0N2VhMzA2ZDhiYTk4OGQ4ZGJl
ODZlYWIwOWFkYzc3Li5mYjE5MDQzMTliOTAzNjJkYTVkN2VmZDk5ZGI4NjM3YWYxMjQ1N2M2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdDMyVmFsdWUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdDMyVmFsdWUuaApAQCAtMzUsNyArMzUs
NyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBDb25zdDMyVmFsdWUgOiBwdWJsaWMgVmFsdWUg
ewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBr
aW5kID09IENvbnN0MzI7IH0KICAgICAKLSAgICB+Q29uc3QzMlZhbHVlKCk7CisgICAgfkNvbnN0
MzJWYWx1ZSgpIG92ZXJyaWRlOwogICAgIAogICAgIGludDMyX3QgdmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX3ZhbHVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0NvbnN0NjRWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Q2NFZhbHVl
LmgKaW5kZXggNDdjMWI1NjNhZTM4MDkxYTAwOTNhYmY1OTU5NjZkN2U3NzMxOTk1MC4uZjNmYzVl
ZWJmMjU1MWRlMjRlMTZkMDc3YzU0MDVjMzQ0ZGE5ZmFiNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Q2NFZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ29uc3Q2NFZhbHVlLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgSlNfRVhQT1JU
X1BSSVZBVEUgQ29uc3Q2NFZhbHVlIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9PSBDb25zdDY0OyB9CiAg
ICAgCi0gICAgfkNvbnN0NjRWYWx1ZSgpOworICAgIH5Db25zdDY0VmFsdWUoKSBvdmVycmlkZTsK
ICAgICAKICAgICBpbnQ2NF90IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmgKaW5kZXggNDAz
YmQzZjg1NWMyOWFiODNjNjZiNmIwYTdiMTcxMmJjOTJlZmJmMS4uMWMwMTM0NjgzMzg0MmZlOTAy
MGEwNzVjMWUyMzVkNjU4ZjFiYzJhMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQ29uc3REb3VibGVWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0NvbnN0RG91YmxlVmFsdWUuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJ
VkFURSBDb25zdERvdWJsZVZhbHVlIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9PSBDb25zdERvdWJsZTsg
fQogICAgIAotICAgIH5Db25zdERvdWJsZVZhbHVlKCk7CisgICAgfkNvbnN0RG91YmxlVmFsdWUo
KSBvdmVycmlkZTsKICAgICAKICAgICBkb3VibGUgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0Rmxv
YXRWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVlLmgK
aW5kZXggYmMzYmJlZTQ4MjM0NjVhYzIwZDliMGE4ZTZhZTI4N2FjNjJmYjkyYi4uMTAzMDNkNWVh
MDZmZGYxNzdjZjFiMWMzZGYxYzU1YmI3NmYzNjE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVlLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgSlNfRVhQ
T1JUX1BSSVZBVEUgQ29uc3RGbG9hdFZhbHVlIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9PSBDb25zdEZs
b2F0OyB9CiAKLSAgICB+Q29uc3RGbG9hdFZhbHVlKCk7CisgICAgfkNvbnN0RmxvYXRWYWx1ZSgp
IG92ZXJyaWRlOwogCiAgICAgZmxvYXQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5oCmluZGV4IDBiY2E0MGVk
NDM3YmU5MWU4NWM1N2NiOGRmNjMwYmI1Yzc5Zjk0ZGUuLjA1ZjkwOWJmNGM5NjEzODdkM2YxYWZl
YTE0ZTA2N2I3NzYyYjU5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0RhdGFTZWN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rp
b24uaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIGNs
YXNzIERhdGFTZWN0aW9uIDogcHVibGljIE9wYXF1ZUJ5cHJvZHVjdCB7CiBwdWJsaWM6CiAgICAg
RGF0YVNlY3Rpb24oc2l6ZV90IHNpemUpOwotICAgIHZpcnR1YWwgfkRhdGFTZWN0aW9uKCk7Cisg
ICAgfkRhdGFTZWN0aW9uKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkKiBkYXRhKCkgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhOyB9CiAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0V4dHJhY3RWYWx1ZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRXh0cmFjdFZhbHVlLmgKaW5kZXggMjEyNWI3
YjZhMzZjYjVmMTc1ZjUxOWFjMTAyNGJiNWRiMDNjZGE2MS4uZmUzMDE4N2I3YWQ0NmRkMmM5Yzk2
YTlkNGVhZDBkOTQzYTViOTU2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzRXh0cmFjdFZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRXh0cmFj
dFZhbHVlLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgRXh0cmFj
dFZhbHVlIGZpbmFsIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBh
Y2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9PSBFeHRyYWN0OyB9CiAKLSAgICB+RXh0
cmFjdFZhbHVlKCk7CisgICAgfkV4dHJhY3RWYWx1ZSgpIG92ZXJyaWRlOwogCiAgICAgaW50MzJf
dCBpbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXg7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzRmVuY2VWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzRmVuY2VWYWx1ZS5oCmluZGV4IDUxM2JhZDVjNzFkZjQwNzE5ZTI3OWU2OTVjYzMzMDZi
N2YyMDVjNmQuLmQ2NGQ2YWUwYWQ1MjA4OTkzODFlODk2YjZlOWI2MmZmNmQxZWMyZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZlbmNlVmFsdWUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGZW5jZVZhbHVlLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xh
c3MgSlNfRVhQT1JUX1BSSVZBVEUgRmVuY2VWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhLaW5kIGtpbmQpIHsgcmV0dXJuIGtpbmQgPT0gRmVu
Y2U7IH0KICAgICAKLSAgICB+RmVuY2VWYWx1ZSgpOworICAgIH5GZW5jZVZhbHVlKCkgb3ZlcnJp
ZGU7CiAgICAgCiAgICAgLy8gVGhlIHJlYWQvd3JpdGUgaGVhcHMgYXJlIHJlZmxlY3RlZCBpbiB0
aGUgZWZmZWN0cygpIG9mIHRoaXMgdmFsdWUuIFRoZSBjb21waWxlciBtYXkgY2hhbmdlCiAgICAg
Ly8gdGhlIGxvd2VyaW5nIG9mIGEgRmVuY2UgYmFzZWQgb24gdGhlIGhlYXBzLiBGb3IgZXhhbXBs
ZSwgaWYgYSBmZW5jZSBkb2VzIG5vdCB3cml0ZSBhbnl0aGluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzTWVtb3J5VmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM01lbW9yeVZhbHVlLmgKaW5kZXggZjYxZGNmZDI3NmYyYjUwMjIxYTY2MDFiYzFjMTVh
YjYwYzcxOWZkYy4uZTc2ODI2NGMxM2YxNjdlZjUwNmJiZWEyNjYxNjY3OTNjNjc1NzMzZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWVtb3J5VmFsdWUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNZW1vcnlWYWx1ZS5oCkBAIC00MSw3ICs0MSw3IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGlzTWVtb3J5QWNjZXNzKGtpbmQub3Bjb2RlKCkpOwog
ICAgIH0KIAotICAgIH5NZW1vcnlWYWx1ZSgpOworICAgIH5NZW1vcnlWYWx1ZSgpIG92ZXJyaWRl
OwogCiAgICAgT2Zmc2V0VHlwZSBvZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX29mZnNldDsgfQog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEludCwgdHlwZW5hbWUgPSBJc0xlZ2FsT2Zmc2V0PEludD4+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lh
bC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaAppbmRl
eCA3Y2M3NmFiOTM2OTYxMTFmMzliZTUwZTA1NDU3OGI3MTkxYzdlZjQ1Li5jNTBmNDg2NGYyMmJj
MWE1MDYwYTdiMjk2ZjgwMThhY2RiM2RlMTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBCMyB7CiBjbGFzcyBQYXRjaHBvaW50U3BlY2lhbCA6IHB1YmxpYyBTdGFj
a21hcFNwZWNpYWwgewogcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIFBhdGNocG9pbnRT
cGVjaWFsKCk7Ci0gICAgdmlydHVhbCB+UGF0Y2hwb2ludFNwZWNpYWwoKTsKKyAgICB+UGF0Y2hw
b2ludFNwZWNpYWwoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgZm9yRWFjaEFy
ZyhBaXI6Okluc3QmLCBjb25zdCBTY29wZWRMYW1iZGE8QWlyOjpJbnN0OjpFYWNoQXJnQ2FsbGJh
Y2s+JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRj
aHBvaW50VmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRWYWx1
ZS5oCmluZGV4IGYzYTQxYTQ3MTVmZjVlYTc5MWRhNDMyZTkzNGMwMWJkNTRkODIxY2MuLjQ0NjE2
NGRkYWUxN2IxYmZlZjU3MzhmNjE4NjIwNTg5MWE3ZTNmYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1BhdGNocG9pbnRWYWx1ZS5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoK
ICAgICAKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9
PSBQYXRjaHBvaW50OyB9CiAKLSAgICB+UGF0Y2hwb2ludFZhbHVlKCk7CisgICAgflBhdGNocG9p
bnRWYWx1ZSgpIG92ZXJyaWRlOwogCiAgICAgLy8gVGhlIGVmZmVjdHMgb2YgdGhlIHBhdGNocG9p
bnQuIFRoaXMgZGVmYXVsdHMgdG8gRWZmZWN0czo6Zm9yQ2FsbCgpLCBidXQgeW91IGNhbiBzZXQg
aXQgdG8gYW55dGhpbmcuCiAgICAgLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1Nsb3RCYXNlVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Nsb3RC
YXNlVmFsdWUuaAppbmRleCA3NjAwZDgxMmFlYjFkMDdjYzY5ZmJjY2E4N2EwYjNiYWEyN2QxZGVm
Li5iYWMzMjc1ODJiZWI2MzMyMTk5MjJmM2FhNWExZmI2MDNiYThjMDRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTbG90QmFzZVZhbHVlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzU2xvdEJhc2VWYWx1ZS5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNz
IEpTX0VYUE9SVF9QUklWQVRFIFNsb3RCYXNlVmFsdWUgOiBwdWJsaWMgVmFsdWUgewogcHVibGlj
OgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IFNs
b3RCYXNlOyB9CiAKLSAgICB+U2xvdEJhc2VWYWx1ZSgpOworICAgIH5TbG90QmFzZVZhbHVlKCkg
b3ZlcnJpZGU7CiAKICAgICBTdGFja1Nsb3QqIHNsb3QoKSBjb25zdCB7IHJldHVybiBtX3Nsb3Q7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBTcGVj
aWFsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFNwZWNpYWwuaAppbmRl
eCA1OGI4Yzk2YzIyYjk3ZmYwNjUwMjY4MDc4ZGU3Nzk5YTc2M2EwNDhlLi5jOGZmOTBkMjYwNjUz
NDQ5N2RkYTk0ZjNmNTdjZWNmMTQ2M2Q0MTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNTdGFja21hcFNwZWNpYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNTdGFja21hcFNwZWNpYWwuaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgQWlyIHsg
Y2xhc3MgQ29kZTsgfQogY2xhc3MgU3RhY2ttYXBTcGVjaWFsIDogcHVibGljIEFpcjo6U3BlY2lh
bCB7CiBwdWJsaWM6CiAgICAgU3RhY2ttYXBTcGVjaWFsKCk7Ci0gICAgdmlydHVhbCB+U3RhY2tt
YXBTcGVjaWFsKCk7CisgICAgflN0YWNrbWFwU3BlY2lhbCgpIG92ZXJyaWRlOwogCiAgICAgZW51
bSBSb2xlTW9kZSA6IGludDhfdCB7CiAgICAgICAgIFNhbWVBc1JlcCwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1N0YWNrbWFwVmFsdWUuaAppbmRleCBkZTBkYzk2M2ZlODJjZTY1MWZlZDAz
OGI1ZmM0YjhjZWI5NzhmYjY2Li44N2YwMDlkNDkwMTFlNzhhY2IwMDcyMjIzMzhmZDdmMGNiNTQz
YTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFZhbHVl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBWYWx1ZS5oCkBAIC02
MSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAgIH5TdGFja21hcFZh
bHVlKCk7CisgICAgflN0YWNrbWFwVmFsdWUoKSBvdmVycmlkZTsKIAogICAgIC8vIFVzZSB0aGlz
IHRvIGFkZCBjaGlsZHJlbi4KICAgICB2b2lkIGFwcGVuZChjb25zdCBDb25zdHJhaW5lZFZhbHVl
JiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZh
bHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5oCmluZGV4IGFj
YTg3NzA0OGFiMGEwNGFhOGJjNThlMGUyOWQwODRkYjc0N2JjNjEuLjMyZTZjOTViYzhkMDYzNjI0
NTgyOTRkYTk1MWQ5MmE4ZDJmNTVkN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1N3aXRjaFZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dp
dGNoVmFsdWUuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBTd2l0Y2hWYWx1ZSA6IHB1YmxpYyBW
YWx1ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhLaW5kIGtpbmQpIHsgcmV0
dXJuIGtpbmQgPT0gU3dpdGNoOyB9CiAKLSAgICB+U3dpdGNoVmFsdWUoKTsKKyAgICB+U3dpdGNo
VmFsdWUoKSBvdmVycmlkZTsKIAogICAgIC8vIG51bUNhc2VWYWx1ZXMoKSArIDEgPT0gbnVtU3Vj
Y2Vzc29ycygpLgogICAgIHVuc2lnbmVkIG51bUNhc2VWYWx1ZXMoKSBjb25zdCB7IHJldHVybiBt
X3ZhbHVlcy5zaXplKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1Vwc2lsb25WYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVXBzaWxvblZhbHVl
LmgKaW5kZXggOWQ2M2M0NjE5ZDA2YjA1Nzk3ZTBlMTU3YzljNDRlNTU1YjNhNmRmNC4uYTBjNzZh
ODkzZTMwNzkyNDM0YTkwODc1ODU3MTc2NzM3OGJjNzM0MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVXBzaWxvblZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzVXBzaWxvblZhbHVlLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgSlNfRVhQT1JU
X1BSSVZBVEUgVXBzaWxvblZhbHVlIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9PSBVcHNpbG9uOyB9CiAK
LSAgICB+VXBzaWxvblZhbHVlKCk7CisgICAgflVwc2lsb25WYWx1ZSgpIG92ZXJyaWRlOwogCiAg
ICAgVmFsdWUqIHBoaSgpIGNvbnN0IHsgcmV0dXJuIG1fcGhpOyB9CiAgICAgdm9pZCBzZXRQaGko
VmFsdWUqIHBoaSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Zhcmlh
YmxlVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhcmlhYmxlVmFsdWUuaApp
bmRleCAxZWNjN2U0NDhmOWVlNGQwOTlmYTgxMDZjM2I5OTQ0YWE1OTVhODAxLi5iMmQwNThlYWE2
MTQ3YmRkNGJhMTAzZDYxZTVhYzM3ZWZiM2FmMzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYXJpYWJsZVZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzVmFyaWFibGVWYWx1ZS5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIEpTX0VYUE9SVF9Q
UklWQVRFIFZhcmlhYmxlVmFsdWUgOiBwdWJsaWMgVmFsdWUgewogcHVibGljOgogICAgIHN0YXRp
YyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IEdldCB8fCBraW5kID09
IFNldDsgfQogCi0gICAgflZhcmlhYmxlVmFsdWUoKTsKKyAgICB+VmFyaWFibGVWYWx1ZSgpIG92
ZXJyaWRlOwogCiAgICAgVmFyaWFibGUqIHZhcmlhYmxlKCkgY29uc3QgeyByZXR1cm4gbV92YXJp
YWJsZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXYXNtQWRk
cmVzc1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXYXNtQWRkcmVzc1ZhbHVl
LmgKaW5kZXggNTliYjExMDI5MWUzYWE5NTY1ZTdjODg4ZDA3M2RlYWFiZWNhNWY1OS4uYzM1Zjgx
NDA1ZWJiNDcwMjI1MWU4YmRlZjBjNjIxMmE3ZWNkZTAyNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzV2FzbUFkZHJlc3NWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1dhc21BZGRyZXNzVmFsdWUuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBK
U19FWFBPUlRfUFJJVkFURSBXYXNtQWRkcmVzc1ZhbHVlIDogcHVibGljIFZhbHVlIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9PSBX
YXNtQWRkcmVzczsgfQogCi0gICAgfldhc21BZGRyZXNzVmFsdWUoKTsKKyAgICB+V2FzbUFkZHJl
c3NWYWx1ZSgpIG92ZXJyaWRlOwogCiAgICAgR1BSUmVnIHBpbm5lZEdQUigpIGNvbnN0IHsgcmV0
dXJuIG1fcGlubmVkR1BSOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1dhc21Cb3VuZHNDaGVja1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNX
YXNtQm91bmRzQ2hlY2tWYWx1ZS5oCmluZGV4IGI2OWQyNGU4ZmNmMjgyMmQ5OTE2OTk0YzQ2MjM2
NzY1OWRlZTUwYmMuLmRmN2ZjZDA2MDI0OGY4YmQzYTgzMjhiNDgzOGYxMTZiZWY5NTE0MDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dhc21Cb3VuZHNDaGVja1ZhbHVl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzV2FzbUJvdW5kc0NoZWNrVmFsdWUu
aApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBXYXNtQm91bmRzQ2hlY2tWYWx1ZSA6IHB1YmxpYyBW
YWx1ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhLaW5kIGtpbmQpIHsgcmV0
dXJuIGtpbmQgPT0gV2FzbUJvdW5kc0NoZWNrOyB9CiAgICAgCi0gICAgfldhc21Cb3VuZHNDaGVj
a1ZhbHVlKCk7CisgICAgfldhc21Cb3VuZHNDaGVja1ZhbHVlKCkgb3ZlcnJpZGU7CiAKICAgICBl
bnVtIGNsYXNzIFR5cGUgewogICAgICAgICBQaW5uZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxsU3BlY2lhbC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwuaAppbmRleCBiY2FkMDBhZWFiNDg5Yjk4N2QzODA4
MDA5YjM0OGNiMjAwYmZjZWI1Li5jNDcxOTMzOTdjMDU4MWM1NmE1NzBiMmU2ODQ1MDYxYjkxMDlk
NzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxsU3Bl
Y2lhbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFs
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVz
cGFjZSBBaXIgewogY2xhc3MgQ0NhbGxTcGVjaWFsIDogcHVibGljIFNwZWNpYWwgewogcHVibGlj
OgogICAgIENDYWxsU3BlY2lhbCgpOwotICAgIH5DQ2FsbFNwZWNpYWwoKTsKKyAgICB+Q0NhbGxT
cGVjaWFsKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBZb3UgY2Fubm90IHVzZSB0aGlzIHJlZ2lzdGVy
IHRvIHBhc3MgYXJndW1lbnRzLiBJdCBqdXN0IHNvIGhhcHBlbnMgdGhhdCB0aGlzIHJlZ2lzdGVy
IGlzIG5vdAogICAgIC8vIHVzZWQgZm9yIGFyZ3VtZW50cyBpbiB0aGUgQyBjYWxsaW5nIGNvbnZl
bnRpb24uIEJ5IHRoZSB3YXksIHRoaXMgaXMgdGhlIG9ubHkgdGhpbmcgdGhhdCBjYXVzZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5oCmluZGV4IGZm
ZDJkN2JmNjRkMTZkNjBhMDA1MmZmNGMyNGQyMDNmYjk3ZDRmNzIuLjViYWRmMjlhMWI5YjJkZDBi
MzllYWYyM2JhOWZlZWFjMGNiMTg2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJQcmludFNwZWNpYWwuaApAQCAtOTUsNyArOTUsNyBAQCBuYW1lc3BhY2UgQjMgeyBu
YW1lc3BhY2UgQWlyIHsKIGNsYXNzIFByaW50U3BlY2lhbCA6IHB1YmxpYyBTcGVjaWFsIHsKIHB1
YmxpYzoKICAgICBQcmludFNwZWNpYWwoUHJpbnRlcjo6UHJpbnRSZWNvcmRMaXN0Kik7Ci0gICAg
flByaW50U3BlY2lhbCgpOworICAgIH5QcmludFNwZWNpYWwoKSBvdmVycmlkZTsKICAgICAKICAg
ICAvLyBZb3UgY2Fubm90IHVzZSB0aGlzIHJlZ2lzdGVyIHRvIHBhc3MgYXJndW1lbnRzLiBJdCBq
dXN0IHNvIGhhcHBlbnMgdGhhdCB0aGlzIHJlZ2lzdGVyIGlzIG5vdAogICAgIC8vIHVzZWQgZm9y
IGFyZ3VtZW50cyBpbiB0aGUgQyBjYWxsaW5nIGNvbnZlbnRpb24uIEJ5IHRoZSB3YXksIHRoaXMg
aXMgdGhlIG9ubHkgdGhpbmcgdGhhdCBjYXVzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgKaW5kZXggZWRiMTEyOTIxYWY3NTNlNjNkODYxMzcy
ZmJkZTBlZWY4OWZjYTE1OS4uMGY3ZjZlZTBlZDdjZWQzYTczOTJhNjAyNGFmZWFhNjQ0MDEyY2Vj
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVt
cGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVy
LmgKQEAgLTg0LDcgKzg0LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IH5CeXRlY29kZUR1bXBlcigpIHsgfQorICAgIH5CeXRlY29kZUR1bXBlcigpIG92ZXJyaWRlIHsg
fQogCiBwcm90ZWN0ZWQ6CiAgICAgQmxvY2sqIGJsb2NrKCkgY29uc3QgeyByZXR1cm4gbV9ibG9j
azsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldHRlclNl
dHRlckFjY2Vzc0Nhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXR0ZXJT
ZXR0ZXJBY2Nlc3NDYXNlLmgKaW5kZXggMjZkMjVjZjNjZDYwYjI2M2NkMDRkMGQ3ZjE5Y2NmZmI0
OWM3MjA1Yy4uNzA3YWNkZTNkMmI3ZDgzY2IyODYxNWJlYzkzMjNkZmIwMDA3NjUyZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldHRlclNldHRlckFjY2Vzc0Nh
c2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0dGVyU2V0dGVyQWNj
ZXNzQ2FzZS5oCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGR1bXBJbXBsKFBy
aW50U3RyZWFtJiwgQ29tbWFQcmludGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPEFjY2Vzc0Nhc2U+IGNsb25lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB+R2V0dGVy
U2V0dGVyQWNjZXNzQ2FzZSgpOworICAgIH5HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlKCkgb3ZlcnJp
ZGU7CiAKICAgICBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+IGN1c3RvbUFjY2Vzc29yKCkg
Y29uc3QgeyByZXR1cm4gbV9jdXN0b21BY2Nlc3NvcjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5zdGFuY2VPZkFjY2Vzc0Nhc2UuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnN0YW5jZU9mQWNjZXNzQ2FzZS5oCmluZGV4IGQ2Mzg4
ZDczNmZlZTgyOGQxYjg2NzBjODUxNjVhMTNjODE1Y2Q5YzYuLmI5MTA5OGNiZmQ4ZGQyMGExOWZl
MDU1MGI2ZDEyZmUwNzFmZGU5NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9JbnN0YW5jZU9mQWNjZXNzQ2FzZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9JbnN0YW5jZU9mQWNjZXNzQ2FzZS5oCkBAIC00NCw3ICs0NCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGR1bXBJbXBsKFByaW50U3RyZWFtJiwgQ29tbWFQcmludGVyJikgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IGNsb25lKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgCi0gICAgfkluc3RhbmNlT2ZBY2Nlc3NDYXNlKCk7CisgICAgfkluc3Rh
bmNlT2ZBY2Nlc3NDYXNlKCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBJbnN0YW5jZU9m
QWNjZXNzQ2FzZSgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9J
bnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvSW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZS5oCmluZGV4IDY5NmRhYjQwYjI0NGViYjIxZGMz
YmYwZTkxZTQwMzIwNDdlZTQ2YTkuLmZhNjJlMGQ0MTQ2YTY2ZjY2NTk0NDJkYzY2N2I5NmIzZGYy
YWVmZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnRyaW5z
aWNHZXR0ZXJBY2Nlc3NDYXNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0ludHJpbnNpY0dldHRlckFjY2Vzc0Nhc2UuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBjb25zdCBvdmVycmlkZTsK
IAotICAgIH5JbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlKCk7CisgICAgfkludHJpbnNpY0dldHRl
ckFjY2Vzc0Nhc2UoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBJbnRyaW5zaWNHZXR0ZXJB
Y2Nlc3NDYXNlKFZNJiwgSlNDZWxsKiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgUHJvcGVydHlPZmZz
ZXQsIFN0cnVjdHVyZSosIGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0JiwgSlNGdW5j
dGlvbiogaW50cmluc2ljRnVuY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxQb2x5UHJvdG9BY2Nlc3ND
aGFpbj4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01vZHVs
ZU5hbWVzcGFjZUFjY2Vzc0Nhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9N
b2R1bGVOYW1lc3BhY2VBY2Nlc3NDYXNlLmgKaW5kZXggNWVjYzRiM2FjOTE4YWViMzA5M2E0MGEy
MzEyNDI3ZjBkZDU5ZWJiYS4uYmQ4ZmE2OTQ0MzBkZGNkMmQ1MTI2NGFiOWRhODY2ZjkxYzY5ZjRl
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01vZHVsZU5hbWVz
cGFjZUFjY2Vzc0Nhc2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTW9k
dWxlTmFtZXNwYWNlQWNjZXNzQ2FzZS5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgZW1pdChBY2Nlc3NHZW5lcmF0aW9uU3RhdGUmLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcExp
c3QmIGZhbGxUaHJvdWdoKTsKIAotICAgIH5Nb2R1bGVOYW1lc3BhY2VBY2Nlc3NDYXNlKCk7Cisg
ICAgfk1vZHVsZU5hbWVzcGFjZUFjY2Vzc0Nhc2UoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAg
ICBNb2R1bGVOYW1lc3BhY2VBY2Nlc3NDYXNlKFZNJiwgSlNDZWxsKiBvd25lciwgQ2FjaGVhYmxl
SWRlbnRpZmllciwgSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QqLCBKU01vZHVsZUVudmlyb25tZW50
KiwgU2NvcGVPZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1Byb3h5YWJsZUFjY2Vzc0Nhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Qcm94eWFibGVBY2Nlc3NDYXNlLmgKaW5kZXggM2U3Mzc2MWQ3MmYwMzg1NzI0YjZiNWY0YTBl
ZDdkOWEzMjU2ZjQwMS4uM2NiYmU3MWI5YWEzNTMzNzA1NDg4ZThiYmJjODZjODRiYTFhNWJkNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb3h5YWJsZUFjY2Vz
c0Nhc2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJveHlhYmxlQWNj
ZXNzQ2FzZS5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGR1bXBJbXBsKFBy
aW50U3RyZWFtJiwgQ29tbWFQcmludGVyJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPEFjY2Vzc0Nhc2U+IGNsb25lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB+UHJveHlh
YmxlQWNjZXNzQ2FzZSgpOworICAgIH5Qcm94eWFibGVBY2Nlc3NDYXNlKCkgb3ZlcnJpZGU7CiAK
IHByb3RlY3RlZDoKICAgICBQcm94eWFibGVBY2Nlc3NDYXNlKFZNJiwgSlNDZWxsKiwgQWNjZXNz
VHlwZSwgQ2FjaGVhYmxlSWRlbnRpZmllciwgUHJvcGVydHlPZmZzZXQsIFN0cnVjdHVyZSosIGNv
bnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0JiwgYm9vbCB2aWFQcm94eSwgV2F0Y2hwb2lu
dFNldCogYWRkaXRpb25hbFNldCwgc3RkOjp1bmlxdWVfcHRyPFBvbHlQcm90b0FjY2Vzc0NoYWlu
Pik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2lu
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuaAppbmRleCA0
YjI0YTUwZTIzOWZmOGY2MTE3ZTJiMDAxZDRhNDI0Njc2MDAwNTNkLi41MWJjZTM4MDAzNGUwNWI2
MWZlZTYyOWVlNjg0MTE3ZTAyMjkzYWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9XYXRjaHBvaW50LmgKQEAgLTUzMyw3ICs1MzMsNyBAQCBjbGFzcyBEZWZlcnJlZFdhdGNo
cG9pbnRGaXJlIDogcHVibGljIEZpcmVEZXRhaWwgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KERlZmVycmVkV2F0Y2hwb2ludEZpcmUpOwogcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRF
IERlZmVycmVkV2F0Y2hwb2ludEZpcmUoVk0mKTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSB+RGVm
ZXJyZWRXYXRjaHBvaW50RmlyZSgpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIH5EZWZlcnJlZFdh
dGNocG9pbnRGaXJlKCkgb3ZlcnJpZGU7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHRh
a2VXYXRjaHBvaW50c1RvRmlyZShXYXRjaHBvaW50U2V0Kik7CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBmaXJlQWxsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZhaWxlZEZpbmFsaXplci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGYWls
ZWRGaW5hbGl6ZXIuaAppbmRleCBmMTQzY2NjMmQ2OGU0NTliZGJkYWMxZTdjYmZiMDY2NDk5MzQ0
MzE2Li5mOTg0YTkwNGJiYjI0N2RkMjljZGEyYjMyNmEzN2UyNjUxZTA2NjIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmgKQEAgLTM0LDcgKzM0
LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogY2xhc3MgRmFpbGVkRmluYWxp
emVyIDogcHVibGljIEZpbmFsaXplciB7CiBwdWJsaWM6CiAgICAgRmFpbGVkRmluYWxpemVyKFBs
YW4mKTsKLSAgICB2aXJ0dWFsIH5GYWlsZWRGaW5hbGl6ZXIoKTsKKyAgICB+RmFpbGVkRmluYWxp
emVyKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgc2l6ZV90IGNvZGVTaXplKCkgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBmaW5hbGl6ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFw
aC5oCmluZGV4IDU0ZmU1NTI5ZDU5OTA4MjY3ZDhmNjZhZWY1MTU1ZWViMDkzYWFkNTcuLmMzMDJh
NTk2OWRlMTI1NDlhMTFmNWQxYjk0YzdjODBlNmRkOGZlYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0dyYXBoLmgKQEAgLTE2Miw3ICsxNjIsNyBAQCBwcml2YXRlOgogY2xhc3MgR3JhcGgg
OiBwdWJsaWMgdmlydHVhbCBTY2FubmFibGUgewogcHVibGljOgogICAgIEdyYXBoKFZNJiwgUGxh
biYpOwotICAgIH5HcmFwaCgpOworICAgIH5HcmFwaCgpIG92ZXJyaWRlOwogICAgIAogICAgIHZv
aWQgY2hhbmdlQ2hpbGQoRWRnZSYgZWRnZSwgTm9kZSogbmV3Tm9kZSkKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oCmluZGV4IGNkOTc0NjQ1NzE5OTFkM2Q1ZTEzZWJm
ODE2NzM4MDkzM2Q5YjE4MjkuLjdmYmVhYWE2Mzc3YWIxZmE4ZDc4NDQ2ODlkMzZjNDI1NDlhZmQ1
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oCkBAIC00OSw3ICs0OSw3
IEBAIGNsYXNzIEpJVENvbXBpbGVyOwogY2xhc3MgSklUQ29kZSA6IHB1YmxpYyBEaXJlY3RKSVRD
b2RlIHsKIHB1YmxpYzoKICAgICBKSVRDb2RlKCk7Ci0gICAgdmlydHVhbCB+SklUQ29kZSgpOwor
ICAgIH5KSVRDb2RlKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgQ29tbW9uRGF0YSogZGZnQ29tbW9u
KCkgb3ZlcnJpZGU7CiAgICAgSklUQ29kZSogZGZnKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIuaAppbmRleCAyZmMyNzQ1YTkzYTU3YTE2Yzhm
Y2NiZDA3ZTU1NTlhODMwNzk0YWVkLi4yMjNiYjJiZDBiZDY2N2RlNzQwNTE2NjY4MGNjNTM3MmVl
NjkwNGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFs
aXplci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmgK
QEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogY2xhc3Mg
SklURmluYWxpemVyIDogcHVibGljIEZpbmFsaXplciB7CiBwdWJsaWM6CiAgICAgSklURmluYWxp
emVyKFBsYW4mLCBSZWY8SklUQ29kZT4mJiwgc3RkOjp1bmlxdWVfcHRyPExpbmtCdWZmZXI+LCBN
YWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gd2l0aEFyaXR5Q2hlY2sgPSBNYWNy
b0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4oTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpT
RW50cnlQdHJUYWc+OjpFbXB0eVZhbHVlKSk7Ci0gICAgdmlydHVhbCB+SklURmluYWxpemVyKCk7
CisgICAgfkpJVEZpbmFsaXplcigpIG92ZXJyaWRlOwogICAgIAogICAgIHNpemVfdCBjb2RlU2l6
ZSgpIG92ZXJyaWRlOwogICAgIGJvb2wgZmluYWxpemUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBp
bGF0aW9uQ2FsbGJhY2suaAppbmRleCA4Zjc4MDI5MjRjYTgwMjI0ZGIzOWIxMjUyM2U4ZDEwYzU5
NTUxMmQwLi5kNGMzOTQ0ODU2NWU2MDcwNzg0YzRkMWQwZjcwMjllMmNjZTczZjZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlv
bkNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCkBAIC00MSwxMiArNDEsMTIgQEAgcHJvdGVjdGVkOgog
ICAgIFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCk7CiAKIHB1YmxpYzoKLSAgICB2
aXJ0dWFsIH5Ub0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpOworICAgIH5Ub0ZUTERl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpIG92ZXJyaWRlOwogCiAgICAgc3RhdGljIFJlZjxU
b0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gY3JlYXRlKCk7CiAgICAgCi0gICAgdmly
dHVhbCB2b2lkIGNvbXBpbGF0aW9uRGlkQmVjb21lUmVhZHlBc3luY2hyb25vdXNseShDb2RlQmxv
Y2sqLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrKTsKLSAgICB2aXJ0dWFsIHZvaWQg
Y29tcGlsYXRpb25EaWRDb21wbGV0ZShDb2RlQmxvY2sqLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZH
Q29kZUJsb2NrLCBDb21waWxhdGlvblJlc3VsdCk7CisgICAgdm9pZCBjb21waWxhdGlvbkRpZEJl
Y29tZVJlYWR5QXN5bmNocm9ub3VzbHkoQ29kZUJsb2NrKiwgQ29kZUJsb2NrKiBwcm9maWxlZERG
R0NvZGVCbG9jaykgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21waWxhdGlvbkRpZENvbXBsZXRlKENv
ZGVCbG9jayosIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2ssIENvbXBpbGF0aW9uUmVz
dWx0KSBvdmVycmlkZTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZU
TEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKaW5kZXggZWUwNTJhZGEz
MDA3MTgyNDI0ZjAzMmE3ZDgyYTVkYjYyNjUxOWJhNS4uNTEwNWU4OGQwZGVhMzYzZjRlYjlkNzVl
ODQ0NmI4ZjY1MGEwMjEwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrLmgKQEAgLTQyLDEyICs0MiwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgVG9GVExG
b3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayhKSVRDb2RlOjpUcmlnZ2VyUmVh
c29uKiBmb3JjZWRPU1JFbnRyeVRyaWdnZXIpOwogCiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+VG9G
VExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpOworICAgIH5Ub0ZUTEZv
ck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCkgb3ZlcnJpZGU7CiAKICAgICBz
dGF0aWMgUmVmPFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNy
ZWF0ZShKSVRDb2RlOjpUcmlnZ2VyUmVhc29uKiBmb3JjZWRPU1JFbnRyeVRyaWdnZXIpOwogICAg
IAotICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5bmNocm9ub3Vz
bHkoQ29kZUJsb2NrKiwgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jayk7Ci0gICAgdmly
dHVhbCB2b2lkIGNvbXBpbGF0aW9uRGlkQ29tcGxldGUoQ29kZUJsb2NrKiwgQ29kZUJsb2NrKiBw
cm9maWxlZERGR0NvZGVCbG9jaywgQ29tcGlsYXRpb25SZXN1bHQpOworICAgIHZvaWQgY29tcGls
YXRpb25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KENvZGVCbG9jayosIENvZGVCbG9jayog
cHJvZmlsZWRERkdDb2RlQmxvY2spIG92ZXJyaWRlOworICAgIHZvaWQgY29tcGlsYXRpb25EaWRD
b21wbGV0ZShDb2RlQmxvY2sqLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBDb21w
aWxhdGlvblJlc3VsdCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgSklUQ29kZTo6VHJpZ2dl
clJlYXNvbiogbV9mb3JjZWRPU1JFbnRyeVRyaWdnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEZvck9TUkVudHJ5SklUQ29kZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExGb3JPU1JFbnRyeUpJVENvZGUuaAppbmRleCAyNjg5ZDNhNzE2Yjc1M2Y1
ZDY4MmNlZDBjYzU0NzE1ZjhhNzU5N2ExLi4yNWNkNDY2ZTdiZjgxMjNhZGJmNWY5Y2EyMzhiMGQ3
MTgwMjNmNTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEZvck9T
UkVudHJ5SklUQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRm9yT1NS
RW50cnlKSVRDb2RlLmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBGVEwgewogY2xhc3MgRm9yT1NSRW50cnlKSVRDb2RlIDogcHVibGljIEZUTDo6SklUQ29kZSB7
CiBwdWJsaWM6CiAgICAgRm9yT1NSRW50cnlKSVRDb2RlKCk7Ci0gICAgfkZvck9TUkVudHJ5SklU
Q29kZSgpOworICAgIH5Gb3JPU1JFbnRyeUpJVENvZGUoKSBvdmVycmlkZTsKICAgICAKICAgICB2
b2lkIGluaXRpYWxpemVFbnRyeUJ1ZmZlcihWTSYsIHVuc2lnbmVkIG51bUNhbGxlZUxvY2Fscyk7
CiAgICAgU2NyYXRjaEJ1ZmZlciogZW50cnlCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2VudHJ5
QnVmZmVyOyB9CkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvdW50RW50cnlG
YWlsdXJlKCkgeyBtX2VudHJ5RmFpbHVyZUNvdW50Kys7IH0KICAgICB1bnNpZ25lZCBlbnRyeUZh
aWx1cmVDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZW50cnlGYWlsdXJlQ291bnQ7IH0KICAgICAK
LSAgICBGb3JPU1JFbnRyeUpJVENvZGUqIGZ0bEZvck9TUkVudHJ5KCk7CisgICAgRm9yT1NSRW50
cnlKSVRDb2RlKiBmdGxGb3JPU1JFbnRyeSgpIG92ZXJyaWRlOwogICAgIAogcHJpdmF0ZToKICAg
ICBTY3JhdGNoQnVmZmVyKiBtX2VudHJ5QnVmZmVyOyAvLyBPbmx5IGZvciBPU1IgZW50cnkgY29k
ZSBibG9ja3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENv
ZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5oCmluZGV4IDAwYmFh
MmNiODcyODEzMjA4MDhkYWYzNDRiMGNmMDY2YmEyM2EyNWIuLmNmMTY2NzE0YjkwYTFhYWQyZDQ5
NWZiZjI1NjBkYjk1ZDU4NmU0ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMSklUQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29k
ZS5oCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBGVEwgewogY2xhc3MgSklUQ29kZSA6IHB1
YmxpYyBKU0M6OkpJVENvZGUgewogcHVibGljOgogICAgIEpJVENvZGUoKTsKLSAgICB+SklUQ29k
ZSgpOworICAgIH5KSVRDb2RlKCkgb3ZlcnJpZGU7CiAKICAgICBDb2RlUHRyPEpTRW50cnlQdHJU
YWc+IGFkZHJlc3NGb3JDYWxsKEFyaXR5Q2hlY2tNb2RlKSBvdmVycmlkZTsKICAgICB2b2lkKiBl
eGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgKaW5kZXggNjc5YmJmZjYwOTlk
ZjVkYTVhYjA0ZjlkMDBhY2Y3MGJlZjEyYTUyMi4uNjg3MzkyMzg2OWRjMzcwOWU4NzAyYzcwN2Y1
MjM2NjE4ODA4NjhjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExK
SVRGaW5hbGl6ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFs
aXplci5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKIGNsYXNzIEpJVEZpbmFsaXplciA6IHB1
YmxpYyBERkc6OkZpbmFsaXplciB7CiBwdWJsaWM6CiAgICAgSklURmluYWxpemVyKERGRzo6UGxh
biYpOwotICAgIHZpcnR1YWwgfkpJVEZpbmFsaXplcigpOworICAgIH5KSVRGaW5hbGl6ZXIoKSBv
dmVycmlkZTsKIAogICAgIHNpemVfdCBjb2RlU2l6ZSgpIG92ZXJyaWRlOwogICAgIGJvb2wgZmlu
YWxpemUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0NvbXBsZXRlU3Vic3BhY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRl
U3Vic3BhY2UuaAppbmRleCA0YzhhODY0MTUwOGZkMGVjOGE1N2ViYjc1YTc1YjUwZDQ2Y2Q4MWY4
Li40M2M0NTgxMzJhZDQyOWVjZjEyNjViYzRkZWFkOGEwOGVjNmYzYTdkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVTdWJzcGFjZS5oCkBAIC0zMiw3ICszMiw3IEBA
IG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQ29tcGxldGVTdWJzcGFjZSA6IHB1YmxpYyBTdWJzcGFj
ZSB7CiBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQ29tcGxldGVTdWJzcGFjZShDU3Ry
aW5nIG5hbWUsIEhlYXAmLCBIZWFwQ2VsbFR5cGUqLCBBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKik7
Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgfkNvbXBsZXRlU3Vic3BhY2UoKTsKKyAgICBKU19FWFBP
UlRfUFJJVkFURSB+Q29tcGxldGVTdWJzcGFjZSgpIG92ZXJyaWRlOwogCiAgICAgLy8gSW4gc29t
ZSBjb2RlIHBhdGhzLCB3ZSBuZWVkIGl0IHRvIGJlIGEgY29tcGlsZSBlcnJvciB0byBjYWxsIHRo
ZSB2aXJ0dWFsIHZlcnNpb24gb2Ygb25lIG9mCiAgICAgLy8gdGhlc2UgZnVuY3Rpb25zLiBUaGF0
J3Mgd2h5IHdlIGRvIGZpbmFsIG1ldGhvZHMgdGhlIG9sZCBzY2hvb2wgd2F5LgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRmFzdE1hbGxvY0FsaWduZWRNZW1vcnlBbGxv
Y2F0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Zhc3RNYWxsb2NBbGlnbmVkTWVt
b3J5QWxsb2NhdG9yLmgKaW5kZXggMzcyYWY0MWRiNTg4NmY3MTc2ZjFiNDkyZGM5MDBjMjAxZmVh
NjczZi4uNmY5ZjM3NTNkYzgwMWJlNDY0ZmI5Y2U3Yjg5MWFhMTE0MTg4ZTRjNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRmFzdE1hbGxvY0FsaWduZWRNZW1vcnlBbGxv
Y2F0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GYXN0TWFsbG9jQWxpZ25l
ZE1lbW9yeUFsbG9jYXRvci5oCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xh
c3MgRmFzdE1hbGxvY0FsaWduZWRNZW1vcnlBbGxvY2F0b3IgOiBwdWJsaWMgQWxpZ25lZE1lbW9y
eUFsbG9jYXRvciB7CiBwdWJsaWM6CiAgICAgRmFzdE1hbGxvY0FsaWduZWRNZW1vcnlBbGxvY2F0
b3IoKTsKLSAgICB+RmFzdE1hbGxvY0FsaWduZWRNZW1vcnlBbGxvY2F0b3IoKTsKKyAgICB+RmFz
dE1hbGxvY0FsaWduZWRNZW1vcnlBbGxvY2F0b3IoKSBvdmVycmlkZTsKICAgICAKICAgICB2b2lk
KiB0cnlBbGxvY2F0ZUFsaWduZWRNZW1vcnkoc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUp
IG92ZXJyaWRlOwogICAgIHZvaWQgZnJlZUFsaWduZWRNZW1vcnkodm9pZCopIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR2lnYWNhZ2VBbGlnbmVkTWVt
b3J5QWxsb2NhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HaWdhY2FnZUFsaWdu
ZWRNZW1vcnlBbGxvY2F0b3IuaAppbmRleCBkNDUzNTQwNTE2MGZlM2ZjYzlmYmE0MTU0MmEwNjkx
ZWFkNmJhYjQ0Li5iYTQwMDhlMmE0NjVlYTE5ZmQ0ZjA2Y2M1YTg4MGY3YWM4ZWE5NmI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HaWdhY2FnZUFsaWduZWRNZW1vcnlB
bGxvY2F0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HaWdhY2FnZUFsaWdu
ZWRNZW1vcnlBbGxvY2F0b3IuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNs
YXNzIEdpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvciA6IHB1YmxpYyBBbGlnbmVkTWVtb3J5
QWxsb2NhdG9yIHsKIHB1YmxpYzoKICAgICBHaWdhY2FnZUFsaWduZWRNZW1vcnlBbGxvY2F0b3Io
R2lnYWNhZ2U6OktpbmQpOwotICAgIH5HaWdhY2FnZUFsaWduZWRNZW1vcnlBbGxvY2F0b3IoKTsK
KyAgICB+R2lnYWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKCkgb3ZlcnJpZGU7CiAgICAgCiAg
ICAgdm9pZCogdHJ5QWxsb2NhdGVBbGlnbmVkTWVtb3J5KHNpemVfdCBhbGlnbm1lbnQsIHNpemVf
dCBzaXplKSBvdmVycmlkZTsKICAgICB2b2lkIGZyZWVBbGlnbmVkTWVtb3J5KHZvaWQqKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hv
dEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1aWxk
ZXIuaAppbmRleCAyZDA4NWExZjRlOGZiZWFiYzgzNTMzZWNmZTZmYTJhMjkxNmEwMGZhLi40ZTVm
YjMzOGI4OTc4MjZhNzEyNjVhOTcwZjVjZDQwM2U5MGE5YjJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5oCkBAIC0xMDgsNyArMTA4LDcg
QEAgcHVibGljOgogICAgIGVudW0gU25hcHNob3RUeXBlIHsgSW5zcGVjdG9yU25hcHNob3QsIEdD
RGVidWdnaW5nU25hcHNob3QgfTsKIAogICAgIEhlYXBTbmFwc2hvdEJ1aWxkZXIoSGVhcFByb2Zp
bGVyJiwgU25hcHNob3RUeXBlID0gU25hcHNob3RUeXBlOjpJbnNwZWN0b3JTbmFwc2hvdCk7Ci0g
ICAgfkhlYXBTbmFwc2hvdEJ1aWxkZXIoKTsKKyAgICB+SGVhcFNuYXBzaG90QnVpbGRlcigpIG92
ZXJyaWRlOwogCiAgICAgc3RhdGljIHZvaWQgcmVzZXROZXh0QXZhaWxhYmxlT2JqZWN0SWRlbnRp
ZmllcigpOwogCkBAIC0xMTYsMTcgKzExNiwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBidWlsZFNu
YXBzaG90KCk7CiAKICAgICAvLyBBIHJvb3Qgb3IgbWFya2VkIGNlbGwuCi0gICAgdm9pZCBhbmFs
eXplTm9kZShKU0NlbGwqKTsKKyAgICB2b2lkIGFuYWx5emVOb2RlKEpTQ2VsbCopIG92ZXJyaWRl
OwogCiAgICAgLy8gQSByZWZlcmVuY2UgZnJvbSBvbmUgY2VsbCB0byBhbm90aGVyLgotICAgIHZv
aWQgYW5hbHl6ZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCBTbG90VmlzaXRvcjo6Um9v
dE1hcmtSZWFzb24pOwotICAgIHZvaWQgYW5hbHl6ZVByb3BlcnR5TmFtZUVkZ2UoSlNDZWxsKiBm
cm9tLCBKU0NlbGwqIHRvLCBVbmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHlOYW1lKTsKLSAgICB2
b2lkIGFuYWx5emVWYXJpYWJsZU5hbWVFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgVW5p
cXVlZFN0cmluZ0ltcGwqIHZhcmlhYmxlTmFtZSk7Ci0gICAgdm9pZCBhbmFseXplSW5kZXhFZGdl
KEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgdWludDMyX3QgaW5kZXgpOwotCi0gICAgdm9pZCBz
ZXRPcGFxdWVSb290UmVhY2hhYmlsaXR5UmVhc29uRm9yQ2VsbChKU0NlbGwqLCBjb25zdCBjaGFy
Kik7Ci0gICAgdm9pZCBzZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChKU0NlbGwqLCB2b2lkKik7Ci0g
ICAgdm9pZCBzZXRMYWJlbEZvckNlbGwoSlNDZWxsKiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9p
ZCBhbmFseXplRWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIFNsb3RWaXNpdG9yOjpSb290
TWFya1JlYXNvbikgb3ZlcnJpZGU7CisgICAgdm9pZCBhbmFseXplUHJvcGVydHlOYW1lRWRnZShK
U0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIFVuaXF1ZWRTdHJpbmdJbXBsKiBwcm9wZXJ0eU5hbWUp
IG92ZXJyaWRlOworICAgIHZvaWQgYW5hbHl6ZVZhcmlhYmxlTmFtZUVkZ2UoSlNDZWxsKiBmcm9t
LCBKU0NlbGwqIHRvLCBVbmlxdWVkU3RyaW5nSW1wbCogdmFyaWFibGVOYW1lKSBvdmVycmlkZTsK
KyAgICB2b2lkIGFuYWx5emVJbmRleEVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCB1aW50
MzJfdCBpbmRleCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHNldE9wYXF1ZVJvb3RSZWFjaGFiaWxp
dHlSZWFzb25Gb3JDZWxsKEpTQ2VsbCosIGNvbnN0IGNoYXIqKSBvdmVycmlkZTsKKyAgICB2b2lk
IHNldFdyYXBwZWRPYmplY3RGb3JDZWxsKEpTQ2VsbCosIHZvaWQqKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNldExhYmVsRm9yQ2VsbChKU0NlbGwqLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKIAog
ICAgIFN0cmluZyBqc29uKCk7CiAgICAgU3RyaW5nIGpzb24oRnVuY3Rpb248Ym9vbCAoY29uc3Qg
SGVhcFNuYXBzaG90Tm9kZSYpPiBhbGxvd05vZGVDYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29BbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29BbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmgKaW5kZXgg
Y2RiNzk5MmUxMzJlNThlOTVhNTlmNDEzNjQ0OTJmZTI3MmExYzEwNC4uOTg5Y2Q5NTZiNmRjNDA1
YmIzMmViNjU2YTRhY2ZkMmEzNmZmNmY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSXNvQWxpZ25lZE1lbW9yeUFsbG9jYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0lzb0FsaWduZWRNZW1vcnlBbGxvY2F0b3IuaApAQCAtMzcsNyArMzcsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIElzb0FsaWduZWRNZW1vcnlBbGxvY2F0b3IgOiBwdWJs
aWMgQWxpZ25lZE1lbW9yeUFsbG9jYXRvciB7CiBwdWJsaWM6CiAgICAgSXNvQWxpZ25lZE1lbW9y
eUFsbG9jYXRvcihDU3RyaW5nKTsKLSAgICB+SXNvQWxpZ25lZE1lbW9yeUFsbG9jYXRvcigpOwor
ICAgIH5Jc29BbGlnbmVkTWVtb3J5QWxsb2NhdG9yKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkKiB0
cnlBbGxvY2F0ZUFsaWduZWRNZW1vcnkoc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpIG92
ZXJyaWRlOwogICAgIHZvaWQgZnJlZUFsaWduZWRNZW1vcnkodm9pZCopIG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2UuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlLmgKaW5kZXggYTM3YjRiYjQ0YWVhOWJh
NjExZDgwODI3ODkyMGU0MTcyNDZjMzE1YS4uYTVmODE1ZTEyOGIyOWY1OTE4Mjg0YWMxYWUwYzE2
YmY4MTUxY2NkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vi
c3BhY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5oCkBA
IC0zOCw3ICszOCw3IEBAIGNsYXNzIElzb0NlbGxTZXQ7CiBjbGFzcyBJc29TdWJzcGFjZSA6IHB1
YmxpYyBTdWJzcGFjZSB7CiBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgSXNvU3Vic3Bh
Y2UoQ1N0cmluZyBuYW1lLCBIZWFwJiwgSGVhcENlbGxUeXBlKiwgc2l6ZV90IHNpemUsIHVpbnQ4
X3QgbnVtYmVyT2ZMb3dlclRpZXJDZWxscyk7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgfklzb1N1
YnNwYWNlKCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgfklzb1N1YnNwYWNlKCkgb3ZlcnJpZGU7
CiAKICAgICBzaXplX3QgY2VsbFNpemUoKSB7IHJldHVybiBtX2RpcmVjdG9yeS5jZWxsU2l6ZSgp
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNl
UGVyVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2VQZXJWTS5j
cHAKaW5kZXggYzVlM2UzODgwYjYzNTQ4Mjg1N2M2ZTJjYzllNzZmMDJjMzM5YjdjNi4uNGFiYWEz
Y2UxM2FjNjg2NmVjMDU5NTc0ZjMwMmY1MjQ0Yzk2ZWFiZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2VQZXJWTS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2VQZXJWTS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgcHVi
bGljOgogICAgIHsKICAgICB9CiAgICAgCi0gICAgfkF1dG9yZW1vdmluZ0lzb1N1YnNwYWNlKCkK
KyAgICB+QXV0b3JlbW92aW5nSXNvU3Vic3BhY2UoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3BlclZNLm1fbG9jayk7CiAgICAgICAgIG1fcGVyVk0u
bV9zdWJzcGFjZVBlclZNLnJlbW92ZSgmc3BhY2UoKS5oZWFwKCkudm0oKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2tNZXJnaW5nQ29uc3RyYWludC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrTWVyZ2luZ0NvbnN0cmFpbnQu
aAppbmRleCBlOTkzNTc0ZmQ5MDdmZTc2ZWU0ZjgxZDYwMzRkOGFkNTA3NmYyMjUwLi4wOTA5OGJi
NTU3NjJjNDA1ZmM3ZGI0YjdiOWEyMDhjMGFlYTEzYTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2tNZXJnaW5nQ29uc3RyYWludC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFja01lcmdpbmdDb25zdHJhaW50LmgKQEAgLTM1
LDcgKzM1LDcgQEAgY2xhc3MgU2xvdFZpc2l0b3I7CiBjbGFzcyBNYXJrU3RhY2tNZXJnaW5nQ29u
c3RyYWludCA6IHB1YmxpYyBNYXJraW5nQ29uc3RyYWludCB7CiBwdWJsaWM6CiAgICAgTWFya1N0
YWNrTWVyZ2luZ0NvbnN0cmFpbnQoSGVhcCYpOwotICAgIH5NYXJrU3RhY2tNZXJnaW5nQ29uc3Ry
YWludCgpOworICAgIH5NYXJrU3RhY2tNZXJnaW5nQ29uc3RyYWludCgpIG92ZXJyaWRlOwogICAg
IAogICAgIGRvdWJsZSBxdWlja1dvcmtFc3RpbWF0ZShTbG90VmlzaXRvciYpIG92ZXJyaWRlOwog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2ltcGxlTWFya2lu
Z0NvbnN0cmFpbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1NpbXBsZU1hcmtpbmdD
b25zdHJhaW50LmgKaW5kZXggZjAyMTg4Y2JlYmZiOGY5MzI2MDUzOTYyMDNkNDVlZGRkN2E3YzU0
Yy4uMjczYTA2MTU2YzdkY2I0ODY0MDJmY2ZiY2IyNmFhZGU3YjRlMmRmMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2ltcGxlTWFya2luZ0NvbnN0cmFpbnQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TaW1wbGVNYXJraW5nQ29uc3RyYWludC5oCkBA
IC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAgIEpTX0VYUE9S
VF9QUklWQVRFIH5TaW1wbGVNYXJraW5nQ29uc3RyYWludCgpOworICAgIEpTX0VYUE9SVF9QUklW
QVRFIH5TaW1wbGVNYXJraW5nQ29uc3RyYWludCgpIG92ZXJyaWRlOwogICAgIAogcHJpdmF0ZToK
ICAgICB2b2lkIGV4ZWN1dGVJbXBsKFNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmgK
aW5kZXggZWJkZWQyNTU5ZmRiY2U2NzlhOWFmNWYyNDk4YWU4ZGMxYzc2N2Y1OS4uYmEzNTNjZGY4
NjNiMTUwOTZhODEwZjRiNmRiZWIwYjI1OGMzN2M4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaApAQCAtNDEsNyAr
NDEsNyBAQCBjbGFzcyBIZWFwOwogY2xhc3MgU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlciA6IHB1
YmxpYyBNdXRhdG9yU2NoZWR1bGVyIHsKIHB1YmxpYzoKICAgICBTcGFjZVRpbWVNdXRhdG9yU2No
ZWR1bGVyKEhlYXAmKTsKLSAgICB+U3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcigpOworICAgIH5T
cGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgU3RhdGUgc3Rh
dGUoKSBjb25zdCBvdmVycmlkZTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1N0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5o
CmluZGV4IDRlY2E5MDg1NmIzNDI2YTZjYzYzNTUyNWVmYjcwNzUxYjc5YWIzMWEuLjVjNzM3NWRl
ZWRkY2Q0ZDc3MmQ3YzdhZTllYjM0ZTUzMWNiM2ZkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1N0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JT
Y2hlZHVsZXIuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBIZWFwOwogY2xhc3MgU3RvY2hhc3Rp
Y1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIgOiBwdWJsaWMgTXV0YXRvclNjaGVkdWxlciB7CiBw
dWJsaWM6CiAgICAgU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIoSGVhcCYpOwot
ICAgIH5TdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcigpOworICAgIH5TdG9jaGFz
dGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcigpIG92ZXJyaWRlOwogICAgIAogICAgIFN0YXRl
IHN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9TeW5jaHJvbm91c1N0b3BUaGVXb3JsZE11dGF0b3JTY2hlZHVsZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N5bmNocm9ub3VzU3RvcFRoZVdvcmxkTXV0YXRv
clNjaGVkdWxlci5oCmluZGV4IDQ2YWY0MGQ3M2Q1MTI3ZDVjOTQ4ZGMzN2M4YzY2ZTQ4OTdkNjE3
MDEuLjgyZjIwZmU0MzNlYjdhYjI1MDU0NmE1NzU4MjYxZjViODIyY2ExYzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N5bmNocm9ub3VzU3RvcFRoZVdvcmxkTXV0YXRv
clNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N5bmNocm9ub3Vz
U3RvcFRoZVdvcmxkTXV0YXRvclNjaGVkdWxlci5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogY2xhc3MgU3luY2hyb25vdXNTdG9wVGhlV29ybGRNdXRhdG9yU2NoZWR1bGVyIDog
cHVibGljIE11dGF0b3JTY2hlZHVsZXIgewogcHVibGljOgogICAgIFN5bmNocm9ub3VzU3RvcFRo
ZVdvcmxkTXV0YXRvclNjaGVkdWxlcigpOwotICAgIH5TeW5jaHJvbm91c1N0b3BUaGVXb3JsZE11
dGF0b3JTY2hlZHVsZXIoKTsKKyAgICB+U3luY2hyb25vdXNTdG9wVGhlV29ybGRNdXRhdG9yU2No
ZWR1bGVyKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgU3RhdGUgc3RhdGUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NBd2FyZUpJ
VFN0dWJSb3V0aW5lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dDQXdhcmVKSVRTdHVi
Um91dGluZS5oCmluZGV4IGM2NGZjMjQ0ZjBiY2IyZjM0YmUwNWVlNDA3MGE5NjBmOWIxNTNhOGIu
LmY1N2RjZDQ4ZDg4Yjg4OGY3OWUxYTNkMDA4MjY4MDgwMjdiYmJmNTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuaApAQCAtNTEsNyAr
NTEsNyBAQCBjbGFzcyBKSVRTdHViUm91dGluZVNldDsKIGNsYXNzIEdDQXdhcmVKSVRTdHViUm91
dGluZSA6IHB1YmxpYyBKSVRTdHViUm91dGluZSB7CiBwdWJsaWM6CiAgICAgR0NBd2FyZUpJVFN0
dWJSb3V0aW5lKGNvbnN0IE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRTdHViUm91dGluZVB0clRh
Zz4mLCBWTSYpOwotICAgIHZpcnR1YWwgfkdDQXdhcmVKSVRTdHViUm91dGluZSgpOworICAgIH5H
Q0F3YXJlSklUU3R1YlJvdXRpbmUoKSBvdmVycmlkZTsKIAogICAgIHN0YXRpYyBSZWY8SklUU3R1
YlJvdXRpbmU+IGNyZWF0ZShjb25zdCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUU3R1YlJvdXRp
bmVQdHJUYWc+JiBjb2RlLCBWTSYgdm0pCiAgICAgewpAQCAtODMsNyArODMsNyBAQCBjbGFzcyBN
YXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lIDogcHVibGljIEdDQXdhcmVKSVRTdHViUm91dGlu
ZSB7CiBwdWJsaWM6CiAgICAgTWFya2luZ0dDQXdhcmVKSVRTdHViUm91dGluZSgKICAgICAgICAg
Y29uc3QgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiYsIFZNJiwg
Y29uc3QgSlNDZWxsKiBvd25lciwgY29uc3QgVmVjdG9yPEpTQ2VsbCo+JiwgQmFnPENhbGxMaW5r
SW5mbz4mJik7Ci0gICAgdmlydHVhbCB+TWFya2luZ0dDQXdhcmVKSVRTdHViUm91dGluZSgpOwor
ICAgIH5NYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lKCkgb3ZlcnJpZGU7CiAgICAgCiBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBtYXJrUmVxdWlyZWRPYmplY3RzSW50ZXJuYWwoU2xvdFZpc2l0b3Im
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29k
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKaW5kZXggMDMxOGZiMGRi
YWNlYWJhYWYxNmQ5MmEwYzEzOWExOTA0MGExYjFlZC4uYWQ1YmIwMzBjODcwYmM3NGViYzhmMDBk
MDdkYTE5NmY2MTdhYjcwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKQEAgLTIy
Niw3ICsyMjYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgSklUQ29kZVdpdGhDb2RlUmVmKENvZGVSZWY8
SlNFbnRyeVB0clRhZz4sIEpJVFR5cGUsIEpJVENvZGU6OlNoYXJlQXR0cmlidXRlKTsKIAogcHVi
bGljOgotICAgIHZpcnR1YWwgfkpJVENvZGVXaXRoQ29kZVJlZigpOworICAgIH5KSVRDb2RlV2l0
aENvZGVSZWYoKSBvdmVycmlkZTsKIAogICAgIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzQXRPZmZz
ZXQoc2l6ZV90IG9mZnNldCkgb3ZlcnJpZGU7CiAgICAgdm9pZCogZGF0YUFkZHJlc3NBdE9mZnNl
dChzaXplX3Qgb2Zmc2V0KSBvdmVycmlkZTsKQEAgLTI0NSw3ICsyNDUsNyBAQCBwdWJsaWM6CiAg
ICAgRGlyZWN0SklUQ29kZShKSVRUeXBlKTsKICAgICBEaXJlY3RKSVRDb2RlKENvZGVSZWY8SlNF
bnRyeVB0clRhZz4sIENvZGVQdHI8SlNFbnRyeVB0clRhZz4gd2l0aEFyaXR5Q2hlY2ssIEpJVFR5
cGUsIEpJVENvZGU6OlNoYXJlQXR0cmlidXRlID0gSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGU6Ok5v
dFNoYXJlZCk7CiAgICAgRGlyZWN0SklUQ29kZShDb2RlUmVmPEpTRW50cnlQdHJUYWc+LCBDb2Rl
UHRyPEpTRW50cnlQdHJUYWc+IHdpdGhBcml0eUNoZWNrLCBKSVRUeXBlLCBJbnRyaW5zaWMsIEpJ
VENvZGU6OlNoYXJlQXR0cmlidXRlID0gSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGU6Ok5vdFNoYXJl
ZCk7IC8vIEZvciBnZW5lcmF0ZWQgdGh1bmsuCi0gICAgdmlydHVhbCB+RGlyZWN0SklUQ29kZSgp
OworICAgIH5EaXJlY3RKSVRDb2RlKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgQ29kZVB0cjxKU0Vu
dHJ5UHRyVGFnPiBhZGRyZXNzRm9yQ2FsbChBcml0eUNoZWNrTW9kZSkgb3ZlcnJpZGU7CiAKQEAg
LTI2MCw3ICsyNjAsNyBAQCBjbGFzcyBOYXRpdmVKSVRDb2RlIDogcHVibGljIEpJVENvZGVXaXRo
Q29kZVJlZiB7CiBwdWJsaWM6CiAgICAgTmF0aXZlSklUQ29kZShKSVRUeXBlKTsKICAgICBOYXRp
dmVKSVRDb2RlKENvZGVSZWY8SlNFbnRyeVB0clRhZz4sIEpJVFR5cGUsIEludHJpbnNpYywgSklU
Q29kZTo6U2hhcmVBdHRyaWJ1dGUgPSBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZTo6Tm90U2hhcmVk
KTsKLSAgICB2aXJ0dWFsIH5OYXRpdmVKSVRDb2RlKCk7CisgICAgfk5hdGl2ZUpJVENvZGUoKSBv
dmVycmlkZTsKIAogICAgIENvZGVQdHI8SlNFbnRyeVB0clRhZz4gYWRkcmVzc0ZvckNhbGwoQXJp
dHlDaGVja01vZGUpIG92ZXJyaWRlOwogfTsKQEAgLTI2OCw3ICsyNjgsNyBAQCBwdWJsaWM6CiBj
bGFzcyBOYXRpdmVET01KSVRDb2RlIGZpbmFsIDogcHVibGljIE5hdGl2ZUpJVENvZGUgewogcHVi
bGljOgogICAgIE5hdGl2ZURPTUpJVENvZGUoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgSklUVHlw
ZSwgSW50cmluc2ljLCBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSopOwotICAgIHZpcnR1YWwgfk5h
dGl2ZURPTUpJVENvZGUoKSA9IGRlZmF1bHQ7CisgICAgfk5hdGl2ZURPTUpJVENvZGUoKSBvdmVy
cmlkZSA9IGRlZmF1bHQ7CiAKICAgICBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSogc2lnbmF0dXJl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zaWduYXR1cmU7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUVGh1bmtzLmgKaW5kZXggODE5ZGIxYzExYzhjY2E0MWUzZmZhODJiMDhiMGJl
YjM1MWE0NDI3YS4uYTViNTlkMDc3YzNiMGVhMTA5NDdiMDVkNzcyYjRlNTM4MGNkMGI1MSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNz
IEpJVFRodW5rcyBmaW5hbCA6IHByaXZhdGUgV2Vha0hhbmRsZU93bmVyIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBKSVRUaHVua3MoKTsKLSAgICB2aXJ0dWFs
IH5KSVRUaHVua3MoKTsKKyAgICB+SklUVGh1bmtzKCkgb3ZlcnJpZGU7CiAKICAgICBNYWNyb0Fz
c2VtYmxlckNvZGVQdHI8SklUVGh1bmtQdHJUYWc+IGN0aU5hdGl2ZUNhbGwoVk0mKTsKICAgICBN
YWNyb0Fzc2VtYmxlckNvZGVQdHI8SklUVGh1bmtQdHJUYWc+IGN0aU5hdGl2ZUNvbnN0cnVjdChW
TSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUb0RGR0RlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRU
b0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCmluZGV4IGVjNTNkNzU5NzZhNmFlY2Fi
OTIxZTc1ODhjOGEzNGI4MzQzNzZjZmEuLjE3YWY3MWE1YTM3MDExY2NmMTQzNDM0ZDg5NDFjMTBm
NTEwYWI4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdE
ZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKQEAgLTM4LDcgKzM4LDcg
QEAgcHJvdGVjdGVkOgogICAgIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCk7
CiAKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjaygpOworICAgIH5KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpIG92ZXJy
aWRlOwogCiAgICAgc3RhdGljIFJlZjxKSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
az4gY3JlYXRlKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1BvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1BvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmgKaW5kZXggMDViZjdhNDIyZTdiYTdkMGVhZGIx
MWY0ZTJmOTQ1YjAwNGIwMTdmNi4uNjIwZTFiYWE3NThlMmFhMGU3ZmRkMzU2MTllNjkwYjhiNTJm
OWMzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Qb2x5bW9ycGhpY0Nh
bGxTdHViUm91dGluZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUG9seW1vcnBo
aWNDYWxsU3R1YlJvdXRpbmUuaApAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAgICAgICAgIENh
bGxGcmFtZSogY2FsbGVyRnJhbWUsIENhbGxMaW5rSW5mbyYsIGNvbnN0IFZlY3RvcjxQb2x5bW9y
cGhpY0NhbGxDYXNlPiYsCiAgICAgICAgIFVuaXF1ZUFycmF5PHVpbnQzMl90PiYmIGZhc3RDb3Vu
dHMpOwogICAgIAotICAgIHZpcnR1YWwgflBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lKCk7Cisg
ICAgflBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgQ2Fs
bFZhcmlhbnRMaXN0IHZhcmlhbnRzKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNFZGdlcygpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCA2ODUzM2ViZjBmOGZlNjM1ODY1YzM1ZDlmNDc3M2E5
Zjg5ZWY1MmRiLi5hOGQ4YjcyZGY0MjE0MzgxODJjOTgyZjFjZGI3OTdlMDY3ZmNkYzI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvanNjLmNwcApAQCAtOTgwLDcgKzk4MCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU2hlbGxTb3VyY2VQcm92aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdp
biwgV1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSk7CiAgICAgfQogCi0g
ICAgflNoZWxsU291cmNlUHJvdmlkZXIoKQorICAgIH5TaGVsbFNvdXJjZVByb3ZpZGVyKCkgb3Zl
cnJpZGUKICAgICB7CiAgICAgICAgIGNvbW1pdENhY2hlZEJ5dGVjb2RlKCk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEZXN0cnVjdGlibGVPYmpl
Y3RIZWFwQ2VsbFR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGVzdHJ1
Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmgKaW5kZXggMzMzOWY2MDhmNTY4MTU2YmM2NDVlNzkw
YjhmNTUwZmU3NTMxYTJkYy4uZTE2YmUwZWYzOWY2OWYwNmY5MDE4ZjNjNjk5MWZhYTE2OWE2YjM3
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEZXN0cnVjdGli
bGVPYmplY3RIZWFwQ2VsbFR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oCkBAIC0zMiw3ICszMiw3IEBAIG5h
bWVzcGFjZSBKU0MgewogY2xhc3MgSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUgOiBw
dWJsaWMgSGVhcENlbGxUeXBlIHsKIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBKU0Rl
c3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSgpOwotICAgIEpTX0VYUE9SVF9QUklWQVRFIHZp
cnR1YWwgfkpTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlKCk7CisgICAgSlNfRVhQT1JU
X1BSSVZBVEUgfkpTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlKCkgb3ZlcnJpZGU7CiAg
ICAgCiAgICAgdm9pZCBmaW5pc2hTd2VlcChNYXJrZWRCbG9jazo6SGFuZGxlJiwgRnJlZUxpc3Qq
KSBvdmVycmlkZTsKICAgICB2b2lkIGRlc3Ryb3koVk0mLCBKU0NlbGwqKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlD
b250cm9sbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBlZEFy
cmF5Q29udHJvbGxlci5oCmluZGV4IDc2MjVmN2Q2MGNmOTQwNGI0MGQyNWFjMmUxY2JjYzM2OWFk
N2JhNmYuLjBiMGZhZTc1MWU5YTNmYjQ5ZmQxZjM5YWU3ZTgxY2Y0YjQ4MWFlMzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJh
eUNvbnRyb2xsZXIuaApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIFNp
bXBsZVR5cGVkQXJyYXlDb250cm9sbGVyIDogcHVibGljIFR5cGVkQXJyYXlDb250cm9sbGVyIHsK
IHB1YmxpYzoKICAgICBTaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcigpOwotICAgIHZpcnR1YWwg
flNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyKCk7CisgICAgflNpbXBsZVR5cGVkQXJyYXlDb250
cm9sbGVyKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgSlNBcnJheUJ1ZmZlciogdG9KUyhKU0dsb2Jh
bE9iamVjdCosIEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlCdWZmZXIqKSBvdmVycmlkZTsKICAgICB2
b2lkIHJlZ2lzdGVyV3JhcHBlcihKU0dsb2JhbE9iamVjdCosIEFycmF5QnVmZmVyKiwgSlNBcnJh
eUJ1ZmZlciopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmUuaAppbmRleCBmNjk2NDgwYTc5OTI0MjA5YzRiNWQxYzcyOWNmOWIyZDJjMjBjZGE2Li44NDEz
MzA4ZjI4YzVlNWQ3NzQwMWFlYWIwMDliZjliNDVkODBjYTU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaApAQCAtMTEzLDcgKzExMyw3IEBAIGNsYXNzIERlZmVy
cmVkU3RydWN0dXJlVHJhbnNpdGlvbldhdGNocG9pbnRGaXJlIDogcHVibGljIERlZmVycmVkV2F0
Y2hwb2ludEZpcmUKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZWZlcnJlZFN0cnVjdHVyZVRy
YW5zaXRpb25XYXRjaHBvaW50RmlyZSk7CiBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
RGVmZXJyZWRTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludEZpcmUoVk0mLCBTdHJ1Y3R1cmUq
KTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSB+RGVmZXJyZWRTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0
Y2hwb2ludEZpcmUoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB+RGVmZXJyZWRTdHJ1Y3R1cmVU
cmFuc2l0aW9uV2F0Y2hwb2ludEZpcmUoKSBvdmVycmlkZTsKICAgICAKICAgICB2b2lkIGR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtHQ01hcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvV2Vha0dDTWFwLmgKaW5kZXggMzM4NWMyMGQ5MDZhYWZiZTAyYjAzMDgyYmYxOTFj
MTZhNGU2NGIyZS4uZGE4NTBlZGE1NzYzN2M2ZjliNmU4MzM0OTg5ZmU3ZjljOTUwNzk5NSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha0dDTWFwLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha0dDTWFwLmgKQEAgLTUyLDcgKzUyLDcg
QEAgcHVibGljOgogICAgIHR5cGVkZWYgdHlwZW5hbWUgSGFzaE1hcFR5cGU6OmNvbnN0X2l0ZXJh
dG9yIGNvbnN0X2l0ZXJhdG9yOwogCiAgICAgZXhwbGljaXQgV2Vha0dDTWFwKFZNJik7Ci0gICAg
fldlYWtHQ01hcCgpOworICAgIH5XZWFrR0NNYXAoKSBvdmVycmlkZTsKIAogICAgIFZhbHVlQXJn
KiBnZXQoY29uc3QgS2V5VHlwZSYga2V5KSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21FbnRyeVBsYW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21FbnRyeVBsYW4uaAppbmRleCBiNDlkYzJiMTU5MTJkZTk2NmNkODg2YTY0
NzQ4ZjAxYmM3YzJmNDQ2Li5iMDAwZjhiYTIyOGE3MDdlNGNhMzNkZmM2NTYxOGY4YzhmZjAwODA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRW50cnlQbGFuLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUVudHJ5UGxhbi5oCkBAIC01MCw3
ICs1MCw3IEBAIHB1YmxpYzoKICAgICBFbnRyeVBsYW4oQ29udGV4dCosIFJlZjxNb2R1bGVJbmZv
cm1hdGlvbj4sIEFzeW5jV29yaywgQ29tcGxldGlvblRhc2smJik7CiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgRW50cnlQbGFuKENvbnRleHQqLCBWZWN0b3I8dWludDhfdD4mJiwgQXN5bmNXb3JrLCBD
b21wbGV0aW9uVGFzayYmKTsKIAotICAgIHZpcnR1YWwgfkVudHJ5UGxhbigpID0gZGVmYXVsdDsK
KyAgICB+RW50cnlQbGFuKCkgb3ZlcnJpZGUgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBwcmVwYXJl
KCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399071</attachid>
            <date>2020-05-11 17:24:48 -0700</date>
            <delta_ts>2020-05-11 17:47:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211743-20200511172447.patch</filename>
            <type>text/plain</type>
            <size>84441</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
OWNjODYyZWZhNDUyN2VkZjA0ZTM4MDRiYjIxODhjZDU4NTM2OTYyLi43NTZjOTgxZmQ3MjFjNjBj
OGM5MGIxOTUyNDQ3ODA1MjBiMWQ1ZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3OCBAQAorMjAyMC0wNS0xMSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW2NsYW5nLXRpZHldIFJ1biBtb2Rlcm5pemUtdXNlLW92ZXJyaWRl
IG92ZXIgSlNDLCB0aGVuIGVuc3VyZSBhcyBtdWNoIGFzIHBvc3NpYmxlIGlzIGZpbmFsCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE3NDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU1Njcmlw
dFJlZi5jcHA6CisgICAgICAgICogYjMvQjNBcmd1bWVudFJlZ1ZhbHVlLmg6CisgICAgICAgICog
YjMvQjNBdG9taWNWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzQ0NhbGxWYWx1ZS5oOgorICAgICAg
ICAqIGIzL0IzQ2hlY2tTcGVjaWFsLmg6CisgICAgICAgICogYjMvQjNDaGVja1ZhbHVlLmg6Cisg
ICAgICAgICogYjMvQjNDb25zdDMyVmFsdWUuaDoKKyAgICAgICAgKiBiMy9CM0NvbnN0NjRWYWx1
ZS5oOgorICAgICAgICAqIGIzL0IzQ29uc3REb3VibGVWYWx1ZS5oOgorICAgICAgICAqIGIzL0Iz
Q29uc3RGbG9hdFZhbHVlLmg6CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5oOgorICAgICAg
ICAqIGIzL0IzRXh0cmFjdFZhbHVlLmg6CisgICAgICAgICogYjMvQjNGZW5jZVZhbHVlLmg6Cisg
ICAgICAgICogYjMvQjNNZW1vcnlWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzUGF0Y2hwb2ludFNw
ZWNpYWwuaDoKKyAgICAgICAgKiBiMy9CM1BhdGNocG9pbnRWYWx1ZS5oOgorICAgICAgICAqIGIz
L0IzU2xvdEJhc2VWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzU3RhY2ttYXBTcGVjaWFsLmg6Cisg
ICAgICAgICogYjMvQjNTdGFja21hcFZhbHVlLmg6CisgICAgICAgICogYjMvQjNTd2l0Y2hWYWx1
ZS5oOgorICAgICAgICAqIGIzL0IzVXBzaWxvblZhbHVlLmg6CisgICAgICAgICogYjMvQjNWYXJp
YWJsZVZhbHVlLmg6CisgICAgICAgICogYjMvQjNXYXNtQWRkcmVzc1ZhbHVlLmg6CisgICAgICAg
ICogYjMvQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJDQ2Fs
bFNwZWNpYWwuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyUHJpbnRTcGVjaWFsLmg6CisgICAgICAg
ICogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuaDoKKyAgICAgICAgKiBieXRlY29kZS9HZXR0ZXJT
ZXR0ZXJBY2Nlc3NDYXNlLmg6CisgICAgICAgICogYnl0ZWNvZGUvSW5zdGFuY2VPZkFjY2Vzc0Nh
c2UuaDoKKyAgICAgICAgKiBieXRlY29kZS9JbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlLmg6Cisg
ICAgICAgICogYnl0ZWNvZGUvTW9kdWxlTmFtZXNwYWNlQWNjZXNzQ2FzZS5oOgorICAgICAgICAq
IGJ5dGVjb2RlL1Byb3h5YWJsZUFjY2Vzc0Nhc2UuaDoKKyAgICAgICAgKiBieXRlY29kZS9XYXRj
aHBvaW50Lmg6CisgICAgICAgICogZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5oOgorICAgICAgICAq
IGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlLmg6CisgICAgICAgICog
ZGZnL0RGR0pJVEZpbmFsaXplci5oOgorICAgICAgICAqIGRmZy9ERkdUb0ZUTERlZmVycmVkQ29t
cGlsYXRpb25DYWxsYmFjay5oOgorICAgICAgICAqIGRmZy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVm
ZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgICogZnRsL0ZUTEZvck9TUkVudHJ5
SklUQ29kZS5oOgorICAgICAgICAqIGZ0bC9GVExKSVRDb2RlLmg6CisgICAgICAgICogZnRsL0ZU
TEpJVEZpbmFsaXplci5oOgorICAgICAgICAqIGhlYXAvQ29tcGxldGVTdWJzcGFjZS5oOgorICAg
ICAgICAqIGhlYXAvRmFzdE1hbGxvY0FsaWduZWRNZW1vcnlBbGxvY2F0b3IuaDoKKyAgICAgICAg
KiBoZWFwL0dpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvci5oOgorICAgICAgICAqIGhlYXAv
SGVhcFNuYXBzaG90QnVpbGRlci5oOgorICAgICAgICAqIGhlYXAvSXNvQWxpZ25lZE1lbW9yeUFs
bG9jYXRvci5oOgorICAgICAgICAqIGhlYXAvSXNvU3Vic3BhY2UuaDoKKyAgICAgICAgKiBoZWFw
L0lzb1N1YnNwYWNlUGVyVk0uY3BwOgorICAgICAgICAqIGhlYXAvSXNvU3Vic3BhY2VQZXJWTS5o
OgorICAgICAgICAqIGhlYXAvTWFya1N0YWNrTWVyZ2luZ0NvbnN0cmFpbnQuaDoKKyAgICAgICAg
KiBoZWFwL1NpbXBsZU1hcmtpbmdDb25zdHJhaW50Lmg6CisgICAgICAgICogaGVhcC9TcGFjZVRp
bWVNdXRhdG9yU2NoZWR1bGVyLmg6CisgICAgICAgICogaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1l
TXV0YXRvclNjaGVkdWxlci5oOgorICAgICAgICAqIGhlYXAvU3luY2hyb25vdXNTdG9wVGhlV29y
bGRNdXRhdG9yU2NoZWR1bGVyLmg6CisgICAgICAgICogaml0L0dDQXdhcmVKSVRTdHViUm91dGlu
ZS5oOgorICAgICAgICAqIGppdC9KSVRDb2RlLmg6CisgICAgICAgICogaml0L0pJVFRodW5rcy5o
OgorICAgICAgICAqIGppdC9KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oOgor
ICAgICAgICAqIGppdC9Qb2x5bW9ycGhpY0NhbGxTdHViUm91dGluZS5oOgorICAgICAgICAqIGpz
Yy5jcHA6CisgICAgICAgICogcGFyc2VyL0xleGVyLmNwcDogQWRkcmVzcyB3YXJuaW5nLgorICAg
ICAgICAqIHJ1bnRpbWUvSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmg6CisgICAgICAgICogcnVu
dGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKiBydW50aW1lL1dlYWtHQ01hcC5oOgorICAgICAg
ICAqIHdhc20vV2FzbUVudHJ5UGxhbi5oOgorCiAyMDIwLTA1LTEwICBSb3NzIEtpcnNsaW5nICA8
cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbY2xhbmctdGlkeV0gUnVuIG1vZGVy
bml6ZS11c2UtbnVsbHB0ciBvdmVyIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2Ny
aXB0UmVmLmNwcAppbmRleCBiYjk2ZWJjY2U2MmNkNGVlZDAwNmQ0NDI3ZTc2MGEyZWQxOWFjMWZm
Li5mMTI4YzI0MTczYzFkYjgxMmZkZDcxNWIxYWUyMzE1ZDk1NDU5MjMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcApAQCAtMzksMTkgKzM5LDE5IEBACiAKIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKLXN0cnVjdCBPcGFxdWVKU1NjcmlwdCA6IHB1YmxpYyBTb3Vy
Y2VQcm92aWRlciB7CitzdHJ1Y3QgT3BhcXVlSlNTY3JpcHQgZmluYWwgOiBwdWJsaWMgU291cmNl
UHJvdmlkZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXVEY6OlJlZjxPcGFxdWVKU1NjcmlwdD4g
Y3JlYXRlKFZNJiB2bSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVy
bCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCiAgICAgewog
ICAgICAgICByZXR1cm4gV1RGOjphZG9wdFJlZigqbmV3IE9wYXF1ZUpTU2NyaXB0KHZtLCBzb3Vy
Y2VPcmlnaW4sIFdURk1vdmUodXJsKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UpKTsKICAg
ICB9CiAKLSAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB1bnNpZ25lZCBo
YXNoKCkgY29uc3QgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVybiBtX3NvdXJjZS5nZXQoKS5o
YXNoKCk7CiAgICAgfQogCi0gICAgU3RyaW5nVmlldyBzb3VyY2UoKSBjb25zdCBvdmVycmlkZQor
ICAgIFN0cmluZ1ZpZXcgc291cmNlKCkgY29uc3QgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVy
biBtX3NvdXJjZS5nZXQoKTsKICAgICB9CkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAg
ewogICAgIH0KIAotICAgIHZpcnR1YWwgfk9wYXF1ZUpTU2NyaXB0KCkgeyB9CisgICAgfk9wYXF1
ZUpTU2NyaXB0KCkgZmluYWwgeyB9CiAKICAgICBWTSYgbV92bTsKICAgICBSZWY8U3RyaW5nSW1w
bD4gbV9zb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNBcmd1
bWVudFJlZ1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNBcmd1bWVudFJlZ1Zh
bHVlLmgKaW5kZXggODc5ZTAxY2JlZGVjZGYwYWQ0OGYyYmM4MWFiNjA4YmI1YmVlOGY0ZS4uMWRl
NWI1ZGZkMmQ1YzgzZjM1NGJhYjQ5NTQxNDVjYTM4ZmJlOTdlZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQXJndW1lbnRSZWdWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0FyZ3VtZW50UmVnVmFsdWUuaApAQCAtMzIsMjAgKzMyLDE5IEBACiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFU
RSBBcmd1bWVudFJlZ1ZhbHVlIDogcHVibGljIFZhbHVlIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklW
QVRFIEFyZ3VtZW50UmVnVmFsdWUgZmluYWwgOiBwdWJsaWMgVmFsdWUgewogcHVibGljOgogICAg
IHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IEFyZ3VtZW50
UmVnOyB9CiAgICAgCi0gICAgfkFyZ3VtZW50UmVnVmFsdWUoKTsKKyAgICB+QXJndW1lbnRSZWdW
YWx1ZSgpIGZpbmFsOwogCiAgICAgUmVnIGFyZ3VtZW50UmVnKCkgY29uc3QgeyByZXR1cm4gbV9y
ZWc7IH0KIAogICAgIEIzX1NQRUNJQUxJWkVfVkFMVUVfRk9SX05PX0NISUxEUkVOCiAKLXByb3Rl
Y3RlZDoKLSAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29u
c3Qgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6CisgICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXIm
LCBQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOworCiAgICAgZnJpZW5kIGNsYXNzIFByb2NlZHVy
ZTsKICAgICBmcmllbmQgY2xhc3MgVmFsdWU7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNBdG9taWNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzQXRvbWljVmFsdWUuaAppbmRleCA5ZjJiNTJkN2EyNzYxZThlNDE2ZjgzMDJhOTY2ZmUwN2M3
MGRlYjdmLi5jNDU4M2YxZjdhNDMxNGM2ZjFlYTY0MzhlNzc1ZmI0NzE4MjZmMzQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNBdG9taWNWYWx1ZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0F0b21pY1ZhbHVlLmgKQEAgLTMyLDE0ICszMiwxNCBAQAog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgSlNfRVhQT1JUX1BSSVZB
VEUgQXRvbWljVmFsdWUgOiBwdWJsaWMgTWVtb3J5VmFsdWUgeworY2xhc3MgSlNfRVhQT1JUX1BS
SVZBVEUgQXRvbWljVmFsdWUgZmluYWwgOiBwdWJsaWMgTWVtb3J5VmFsdWUgewogcHVibGljOgog
ICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGlzQXRvbShraW5kLm9wY29kZSgpKTsKICAgICB9CiAgICAgCi0gICAgfkF0b21pY1ZhbHVlKCk7
CisgICAgfkF0b21pY1ZhbHVlKCkgZmluYWw7CiAgICAgCiAgICAgVHlwZSBhY2Nlc3NUeXBlKCkg
Y29uc3QgeyByZXR1cm4gY2hpbGQoMCktPnR5cGUoKTsgfQogICAgIApAQCAtNDcsMTAgKzQ3LDkg
QEAgcHVibGljOgogCiAgICAgQjNfU1BFQ0lBTElaRV9WQUxVRV9GT1JfRklOQUxfU0laRV9GSVhF
RF9DSElMRFJFTgogICAgIAotcHJvdGVjdGVkOgotICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmlu
dGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKLQogcHJpdmF0ZToKKyAgICB2b2lk
IGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CisKICAg
ICBmcmllbmQgY2xhc3MgUHJvY2VkdXJlOwogICAgIGZyaWVuZCBjbGFzcyBWYWx1ZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ0NhbGxWYWx1ZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ0NhbGxWYWx1ZS5oCmluZGV4IDJmNjBhMDFlMjc4NTQ2MWNm
MmE5MTg1OGYyNWRkMGMxZDc1MjMzNjAuLjY1MmU1MzVjMDc2ZDgyOGI1NDVhODI2OWQ3OGE4M2Y5
MWIwMDVlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NDYWxsVmFs
dWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDQ2FsbFZhbHVlLmgKQEAgLTMy
LDExICszMiwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3Mg
SlNfRVhQT1JUX1BSSVZBVEUgQ0NhbGxWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7CitjbGFzcyBKU19F
WFBPUlRfUFJJVkFURSBDQ2FsbFZhbHVlIGZpbmFsIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9PSBDQ2Fs
bDsgfQogCi0gICAgfkNDYWxsVmFsdWUoKTsKKyAgICB+Q0NhbGxWYWx1ZSgpIGZpbmFsOwogCiAg
ICAgdm9pZCBhcHBlbmRBcmdzKGNvbnN0IFZlY3RvcjxWYWx1ZSo+Jik7CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDaGVja1NwZWNpYWwuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5oCmluZGV4IGIxYWQwNTE0Mjc3MzE2MmQ1
ZjVkZTU2YjlmYmUzM2EyNTIxNGRmNDcuLmM5ZGU1ZjhmZTBlMGEyMWFiNjRhMjhmYzhhNjUwMWZl
MmE2NzViMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3Bl
Y2lhbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5oCkBA
IC00OCw3ICs0OCw3IEBAIHN0cnVjdCBJbnN0OwogLy8gLSBDaGVja1N1YigwLCB4KSwgd2hpY2gg
dHVybnMgaW50byBCcmFuY2hOZWczMiB4LgogLy8gLSBDaGVja011bChhLCBiKSwgd2hpY2ggdHVy
bnMgaW50byBNdWwzMiBiLCBhIGJ1dCB3ZSBwYXNzIEFueSBmb3IgYSdzIFZhbHVlUmVwLgogCi1j
bGFzcyBDaGVja1NwZWNpYWwgOiBwdWJsaWMgU3RhY2ttYXBTcGVjaWFsIHsKK2NsYXNzIENoZWNr
U3BlY2lhbCBmaW5hbCA6IHB1YmxpYyBTdGFja21hcFNwZWNpYWwgewogcHVibGljOgogICAgIC8v
IFN1cHBvcnQgZm9yIGhhc2ggY29uc2luZyB0aGVzZSB0aGluZ3MuCiAgICAgY2xhc3MgS2V5IHsK
QEAgLTExMyw5ICsxMTMsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgQ2hlY2tTcGVjaWFsKEFpcjo6
S2luZCwgdW5zaWduZWQgbnVtQXJncywgUm9sZU1vZGUgc3RhY2ttYXBSb2xlID0gU2FtZUFzUmVw
KTsKICAgICBDaGVja1NwZWNpYWwoY29uc3QgS2V5Jik7Ci0gICAgfkNoZWNrU3BlY2lhbCgpOwor
ICAgIH5DaGVja1NwZWNpYWwoKSBmaW5hbDsKIAotcHJvdGVjdGVkOgorcHJpdmF0ZToKICAgICAv
LyBDb25zdHJ1Y3RzIGFuZCByZXR1cm5zIHRoZSBJbnN0IHJlcHJlc2VudGluZyB0aGUgYnJhbmNo
IHRoYXQgdGhpcyB3aWxsIHVzZS4KICAgICBBaXI6Okluc3QgaGlkZGVuQnJhbmNoKGNvbnN0IEFp
cjo6SW5zdCYpIGNvbnN0OwogCkBAIC0xMzMsNyArMTMzLDYgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGRlZXBEdW1w
SW1wbChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogCi1wcml2YXRlOgogICAgIEFpcjo6S2lu
ZCBtX2NoZWNrS2luZDsKICAgICBSb2xlTW9kZSBtX3N0YWNrbWFwUm9sZTsKICAgICB1bnNpZ25l
ZCBtX251bUNoZWNrQXJnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0NoZWNrVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrVmFsdWUuaApp
bmRleCA4OTczMjBjZDUyNjBhYzdkZGNmZTkwNjQ4YjA0YjE2YjlmNjM0YjJlLi4xNGNkNDQ3Mjk0
NjkyZDkyNDFjZmJlZmY4MjVkNGI0NzUwODg3NjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNDaGVja1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzQ2hlY2tWYWx1ZS5oCkBAIC0zMSw3ICszMSw3IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgewogCi1jbGFzcyBDaGVja1ZhbHVlIDogcHVibGljIFN0YWNrbWFwVmFsdWUgewor
Y2xhc3MgQ2hlY2tWYWx1ZSBmaW5hbCA6IHB1YmxpYyBTdGFja21hcFZhbHVlIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkKICAgICB7CkBAIC00Niw3ICs0Niw3
IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAgIH5DaGVja1ZhbHVlKCk7CisgICAg
fkNoZWNrVmFsdWUoKSBmaW5hbDsKIAogICAgIHZvaWQgY29udmVydFRvQWRkKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0MzJWYWx1ZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmgKaW5kZXggNGZmZWUxMTQyNDdlYTMw
NmQ4YmE5ODhkOGRiZTg2ZWFiMDlhZGM3Ny4uZmIxOTA0MzE5YjkwMzYyZGE1ZDdlZmQ5OWRiODYz
N2FmMTI0NTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Qz
MlZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmgK
QEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgQ29uc3QzMlZhbHVlIDog
cHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2lu
ZCkgeyByZXR1cm4ga2luZCA9PSBDb25zdDMyOyB9CiAgICAgCi0gICAgfkNvbnN0MzJWYWx1ZSgp
OworICAgIH5Db25zdDMyVmFsdWUoKSBvdmVycmlkZTsKICAgICAKICAgICBpbnQzMl90IHZhbHVl
KCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNDb25zdDY0VmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0NvbnN0NjRWYWx1ZS5oCmluZGV4IDQ3YzFiNTYzYWUzODA5MWEwMDkzYWJmNTk1OTY2ZDdlNzcz
MTk5NTAuLmYzZmM1ZWViZjI1NTFkZTI0ZTE2ZDA3N2M1NDA1YzM0NGRhOWZhYjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5oCkBAIC0zNSw3ICszNSw3IEBAIGNs
YXNzIEpTX0VYUE9SVF9QUklWQVRFIENvbnN0NjRWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhLaW5kIGtpbmQpIHsgcmV0dXJuIGtpbmQgPT0g
Q29uc3Q2NDsgfQogICAgIAotICAgIH5Db25zdDY0VmFsdWUoKTsKKyAgICB+Q29uc3Q2NFZhbHVl
KCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgaW50NjRfdCB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dmFsdWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RE
b3VibGVWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3REb3VibGVWYWx1
ZS5oCmluZGV4IDQwM2JkM2Y4NTVjMjlhYjgzYzY2YjZiMGE3YjE3MTJiYzkyZWZiZjEuLmIwNmQ3
YmVhZTgxMTI5NjFlOWYyMDA4YmFjZTFjMWMwNjJjNTZkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RG91YmxlVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmgKQEAgLTMxLDM4ICszMSwzOCBAQAogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUg
Q29uc3REb3VibGVWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7CitjbGFzcyBKU19FWFBPUlRfUFJJVkFU
RSBDb25zdERvdWJsZVZhbHVlIGZpbmFsIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9PSBDb25zdERvdWJs
ZTsgfQogICAgIAotICAgIH5Db25zdERvdWJsZVZhbHVlKCk7CisgICAgfkNvbnN0RG91YmxlVmFs
dWUoKSBmaW5hbDsKICAgICAKICAgICBkb3VibGUgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlOyB9CiAKLSAgICBWYWx1ZSogbmVnQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgVmFsdWUqIGFkZENvbnN0YW50KFByb2NlZHVyZSYsIGludDMyX3Qgb3RoZXIpIGNv
bnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBhZGRDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBW
YWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBzdWJDb25zdGFudChQcm9j
ZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBk
aXZDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRl
OwotICAgIFZhbHVlKiBtb2RDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIp
IGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBtdWxDb25zdGFudChQcm9jZWR1cmUmLCBjb25z
dCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBiaXRBbmRDb25zdGFu
dChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZh
bHVlKiBiaXRPckNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgVmFsdWUqIGJpdFhvckNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZh
bHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVmFsdWUqIGJpdHdpc2VDYXN0Q29uc3Rh
bnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVmFsdWUqIGRvdWJsZVRvRmxvYXRD
b25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogYWJzQ29uc3Rh
bnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVmFsdWUqIGNlaWxDb25zdGFudChQ
cm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogZmxvb3JDb25zdGFudChQcm9j
ZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogc3FydENvbnN0YW50KFByb2NlZHVy
ZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIFZhbHVlKiBuZWdDb25zdGFudChQcm9jZWR1cmUmKSBj
b25zdCBmaW5hbDsKKyAgICBWYWx1ZSogYWRkQ29uc3RhbnQoUHJvY2VkdXJlJiwgaW50MzJfdCBv
dGhlcikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIGFkZENvbnN0YW50KFByb2NlZHVyZSYsIGNv
bnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIHN1YkNvbnN0YW50KFBy
b2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIGRp
dkNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7Cisg
ICAgVmFsdWUqIG1vZENvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29u
c3QgZmluYWw7CisgICAgVmFsdWUqIG11bENvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVl
KiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIGJpdEFuZENvbnN0YW50KFByb2NlZHVy
ZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIGJpdE9yQ29u
c3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBW
YWx1ZSogYml0WG9yQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25z
dCBmaW5hbDsKKyAgICBWYWx1ZSogYml0d2lzZUNhc3RDb25zdGFudChQcm9jZWR1cmUmKSBjb25z
dCBmaW5hbDsKKyAgICBWYWx1ZSogZG91YmxlVG9GbG9hdENvbnN0YW50KFByb2NlZHVyZSYpIGNv
bnN0IGZpbmFsOworICAgIFZhbHVlKiBhYnNDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBmaW5h
bDsKKyAgICBWYWx1ZSogY2VpbENvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IGZpbmFsOworICAg
IFZhbHVlKiBmbG9vckNvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IGZpbmFsOworICAgIFZhbHVl
KiBzcXJ0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QgZmluYWw7CiAKLSAgICBUcmlTdGF0ZSBl
cXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVHJp
U3RhdGUgbm90RXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRl
OwotICAgIFRyaVN0YXRlIGxlc3NUaGFuQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25z
dCBvdmVycmlkZTsKLSAgICBUcmlTdGF0ZSBncmVhdGVyVGhhbkNvbnN0YW50KGNvbnN0IFZhbHVl
KiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVHJpU3RhdGUgbGVzc0VxdWFsQ29uc3RhbnQo
Y29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBUcmlTdGF0ZSBncmVhdGVy
RXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFRy
aVN0YXRlIGVxdWFsT3JVbm9yZGVyZWRDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0
IG92ZXJyaWRlOworICAgIFRyaVN0YXRlIGVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVy
KSBjb25zdCBmaW5hbDsKKyAgICBUcmlTdGF0ZSBub3RFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVl
KiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVHJpU3RhdGUgbGVzc1RoYW5Db25zdGFudChjb25z
dCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZpbmFsOworICAgIFRyaVN0YXRlIGdyZWF0ZXJUaGFuQ29u
c3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBUcmlTdGF0ZSBsZXNz
RXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZpbmFsOworICAgIFRyaVN0
YXRlIGdyZWF0ZXJFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7
CisgICAgVHJpU3RhdGUgZXF1YWxPclVub3JkZXJlZENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhl
cikgY29uc3QgZmluYWw7CiAKICAgICBCM19TUEVDSUFMSVpFX1ZBTFVFX0ZPUl9OT19DSElMRFJF
TgogCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFByb2NlZHVy
ZTsKICAgICBmcmllbmQgY2xhc3MgVmFsdWU7CiAKLSAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJp
bnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBkdW1wTWV0YShD
b21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogCiAgICAgc3RhdGljIE9w
Y29kZSBvcGNvZGVGcm9tQ29uc3RydWN0b3IoT3JpZ2luLCBkb3VibGUpIHsgcmV0dXJuIENvbnN0
RG91YmxlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0
RmxvYXRWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVl
LmgKaW5kZXggYmMzYmJlZTQ4MjM0NjVhYzIwZDliMGE4ZTZhZTI4N2FjNjJmYjkyYi4uN2Q2MGQ0
N2IyNDI2YTE0MTI3ZmMxMDY2MDM5MWJlZjMwYzAzMGM3NyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVlLmgKQEAgLTMxLDM3ICszMSwzNyBAQAogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgQ29u
c3RGbG9hdFZhbHVlIDogcHVibGljIFZhbHVlIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIENv
bnN0RmxvYXRWYWx1ZSBmaW5hbCA6IHB1YmxpYyBWYWx1ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IGJvb2wgYWNjZXB0cyhLaW5kIGtpbmQpIHsgcmV0dXJuIGtpbmQgPT0gQ29uc3RGbG9hdDsgfQog
Ci0gICAgfkNvbnN0RmxvYXRWYWx1ZSgpOworICAgIH5Db25zdEZsb2F0VmFsdWUoKSBmaW5hbDsK
IAogICAgIGZsb2F0IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogCi0gICAgVmFs
dWUqIG5lZ0NvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBh
ZGRDb25zdGFudChQcm9jZWR1cmUmLCBpbnQzMl90IG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAg
ICBWYWx1ZSogYWRkQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25z
dCBvdmVycmlkZTsKLSAgICBWYWx1ZSogc3ViQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFs
dWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogZGl2Q29uc3RhbnQoUHJvY2Vk
dXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogbXVs
Q29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsK
LSAgICBWYWx1ZSogYml0QW5kQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVy
KSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogYml0T3JDb25zdGFudChQcm9jZWR1cmUmLCBj
b25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBiaXRYb3JDb25z
dGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAg
IFZhbHVlKiBiaXR3aXNlQ2FzdENvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIFZhbHVlKiBmbG9hdFRvRG91YmxlQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgVmFsdWUqIGFic0NvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIFZhbHVlKiBjZWlsQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
VmFsdWUqIGZsb29yQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVmFs
dWUqIHNxcnRDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKLQotICAgIFRyaVN0
YXRlIGVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAg
ICBUcmlTdGF0ZSBub3RFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgVHJpU3RhdGUgbGVzc1RoYW5Db25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIp
IGNvbnN0IG92ZXJyaWRlOwotICAgIFRyaVN0YXRlIGdyZWF0ZXJUaGFuQ29uc3RhbnQoY29uc3Qg
VmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBUcmlTdGF0ZSBsZXNzRXF1YWxDb25z
dGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFRyaVN0YXRlIGdy
ZWF0ZXJFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgVHJpU3RhdGUgZXF1YWxPclVub3JkZXJlZENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgVmFsdWUqIG5lZ0NvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0
IGZpbmFsOworICAgIFZhbHVlKiBhZGRDb25zdGFudChQcm9jZWR1cmUmLCBpbnQzMl90IG90aGVy
KSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogYWRkQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3Qg
VmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogc3ViQ29uc3RhbnQoUHJvY2Vk
dXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogZGl2Q29u
c3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBW
YWx1ZSogbXVsQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBm
aW5hbDsKKyAgICBWYWx1ZSogYml0QW5kQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUq
IG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogYml0T3JDb25zdGFudChQcm9jZWR1cmUm
LCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZpbmFsOworICAgIFZhbHVlKiBiaXRYb3JDb25z
dGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZpbmFsOworICAgIFZh
bHVlKiBiaXR3aXNlQ2FzdENvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IGZpbmFsOworICAgIFZh
bHVlKiBmbG9hdFRvRG91YmxlQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QgZmluYWw7CisgICAg
VmFsdWUqIGFic0NvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IGZpbmFsOworICAgIFZhbHVlKiBj
ZWlsQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIGZsb29yQ29u
c3RhbnQoUHJvY2VkdXJlJikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIHNxcnRDb25zdGFudChQ
cm9jZWR1cmUmKSBjb25zdCBmaW5hbDsKKworICAgIFRyaVN0YXRlIGVxdWFsQ29uc3RhbnQoY29u
c3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBUcmlTdGF0ZSBub3RFcXVhbENvbnN0
YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVHJpU3RhdGUgbGVzc1Ro
YW5Db25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZpbmFsOworICAgIFRyaVN0YXRl
IGdyZWF0ZXJUaGFuQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAg
ICBUcmlTdGF0ZSBsZXNzRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZp
bmFsOworICAgIFRyaVN0YXRlIGdyZWF0ZXJFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhl
cikgY29uc3QgZmluYWw7CisgICAgVHJpU3RhdGUgZXF1YWxPclVub3JkZXJlZENvbnN0YW50KGNv
bnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CiAKICAgICBCM19TUEVDSUFMSVpFX1ZBTFVF
X0ZPUl9OT19DSElMRFJFTgogCkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgZnJpZW5k
IGNsYXNzIFByb2NlZHVyZTsKICAgICBmcmllbmQgY2xhc3MgVmFsdWU7CiAKLSAgICB2b2lkIGR1
bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwog
CiAgICAgc3RhdGljIE9wY29kZSBvcGNvZGVGcm9tQ29uc3RydWN0b3IoT3JpZ2luLCBmbG9hdCkg
eyByZXR1cm4gQ29uc3RGbG9hdDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNEYXRhU2VjdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNl
Y3Rpb24uaAppbmRleCAwYmNhNDBlZDQzN2JlOTFlODVjNTdjYjhkZjYzMGJiNWM3OWY5NGRlLi4y
NjhmNjUxNGYzZDA0MjUxMTUwN2RhYTIxZDVjMWQyYzFiMmFlNjhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmgKQEAgLTMxLDE1ICszMSwxNSBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgRGF0YVNlY3Rpb24gOiBwdWJsaWMgT3Bh
cXVlQnlwcm9kdWN0IHsKK2NsYXNzIERhdGFTZWN0aW9uIGZpbmFsIDogcHVibGljIE9wYXF1ZUJ5
cHJvZHVjdCB7CiBwdWJsaWM6CiAgICAgRGF0YVNlY3Rpb24oc2l6ZV90IHNpemUpOwotICAgIHZp
cnR1YWwgfkRhdGFTZWN0aW9uKCk7CisgICAgfkRhdGFTZWN0aW9uKCkgZmluYWw7CiAKICAgICB2
b2lkKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9CiAgICAgc2l6ZV90IHNpemUoKSBj
b25zdCB7IHJldHVybiBtX3NpemU7IH0KIAotICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwog
CiBwcml2YXRlOgogICAgIHZvaWQqIG1fZGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0V4dHJhY3RWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
RXh0cmFjdFZhbHVlLmgKaW5kZXggMjEyNWI3YjZhMzZjYjVmMTc1ZjUxOWFjMTAyNGJiNWRiMDNj
ZGE2MS4uYTEyMjBhYzRlMzQ4YTgzMGY5MDQxZDIwY2E1Njg4MDhlMmFjN2Q3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRXh0cmFjdFZhbHVlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzRXh0cmFjdFZhbHVlLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xh
c3MgSlNfRVhQT1JUX1BSSVZBVEUgRXh0cmFjdFZhbHVlIGZpbmFsIDogcHVibGljIFZhbHVlIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2lu
ZCA9PSBFeHRyYWN0OyB9CiAKLSAgICB+RXh0cmFjdFZhbHVlKCk7CisgICAgfkV4dHJhY3RWYWx1
ZSgpIGZpbmFsOwogCiAgICAgaW50MzJfdCBpbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXg7
IH0KIApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgQjNfU1BFQ0lBTElaRV9WQUxVRV9G
T1JfRklOQUxfU0laRV9GSVhFRF9DSElMRFJFTgogCiBwcml2YXRlOgotICAgIHZvaWQgZHVtcE1l
dGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lk
IGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CiAKICAg
ICBzdGF0aWMgT3Bjb2RlIG9wY29kZUZyb21Db25zdHJ1Y3RvcihPcmlnaW4sIFR5cGUsIFZhbHVl
KiwgaW50MzJfdCkgeyByZXR1cm4gRXh0cmFjdDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNGZW5jZVZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNGZW5jZVZhbHVlLmgKaW5kZXggNTEzYmFkNWM3MWRmNDA3MTllMjc5ZTY5NWNjMzMwNmI3ZjIw
NWM2ZC4uZTQ5YjRiMWE3OTIwMDliZGUzMzM2YmRmNWNlMzY4NzJmMTk2ZjM3NyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRmVuY2VWYWx1ZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0ZlbmNlVmFsdWUuaApAQCAtMzIsMTEgKzMyLDExIEBACiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBG
ZW5jZVZhbHVlIDogcHVibGljIFZhbHVlIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEZlbmNl
VmFsdWUgZmluYWwgOiBwdWJsaWMgVmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFj
Y2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IEZlbmNlOyB9CiAgICAgCi0gICAgfkZl
bmNlVmFsdWUoKTsKKyAgICB+RmVuY2VWYWx1ZSgpIGZpbmFsOwogICAgIAogICAgIC8vIFRoZSBy
ZWFkL3dyaXRlIGhlYXBzIGFyZSByZWZsZWN0ZWQgaW4gdGhlIGVmZmVjdHMoKSBvZiB0aGlzIHZh
bHVlLiBUaGUgY29tcGlsZXIgbWF5IGNoYW5nZQogICAgIC8vIHRoZSBsb3dlcmluZyBvZiBhIEZl
bmNlIGJhc2VkIG9uIHRoZSBoZWFwcy4gRm9yIGV4YW1wbGUsIGlmIGEgZmVuY2UgZG9lcyBub3Qg
d3JpdGUgYW55dGhpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01l
bW9yeVZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNZW1vcnlWYWx1ZS5oCmlu
ZGV4IGY2MWRjZmQyNzZmMmI1MDIyMWE2NjAxYmMxYzE1YWI2MGM3MTlmZGMuLmU3NjgyNjRjMTNm
MTY3ZWY1MDZiYmVhMjY2MTY2NzkzYzY3NTczM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM01lbW9yeVZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzTWVtb3J5VmFsdWUuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBpc01lbW9yeUFjY2VzcyhraW5kLm9wY29kZSgpKTsKICAgICB9CiAKLSAgICB+TWVtb3J5VmFs
dWUoKTsKKyAgICB+TWVtb3J5VmFsdWUoKSBvdmVycmlkZTsKIAogICAgIE9mZnNldFR5cGUgb2Zm
c2V0KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJ
bnQsIHR5cGVuYW1lID0gSXNMZWdhbE9mZnNldDxJbnQ+PgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmgKaW5kZXggN2NjNzZhYjkzNjk2MTExZjM5YmU1
MGUwNTQ1NzhiNzE5MWM3ZWY0NS4uODljMDUwNjljMDgxYzNmZDliMjViMDUyODU2Yzg3NzIzMGE2
MmE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNw
ZWNpYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lh
bC5oCkBAIC00MSwxMiArNDEsMTIgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAv
LwogLy8gICAgIFBhdGNoICZwYXRjaHBvaW50LCByZXN1bHQsIGFyZ3MuLi4KIAotY2xhc3MgUGF0
Y2hwb2ludFNwZWNpYWwgOiBwdWJsaWMgU3RhY2ttYXBTcGVjaWFsIHsKK2NsYXNzIFBhdGNocG9p
bnRTcGVjaWFsIGZpbmFsIDogcHVibGljIFN0YWNrbWFwU3BlY2lhbCB7CiBwdWJsaWM6CiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgUGF0Y2hwb2ludFNwZWNpYWwoKTsKLSAgICB2aXJ0dWFsIH5QYXRj
aHBvaW50U3BlY2lhbCgpOworICAgIH5QYXRjaHBvaW50U3BlY2lhbCgpIGZpbmFsOwogCi1wcm90
ZWN0ZWQ6Citwcml2YXRlOgogICAgIHZvaWQgZm9yRWFjaEFyZyhBaXI6Okluc3QmLCBjb25zdCBT
Y29wZWRMYW1iZGE8QWlyOjpJbnN0OjpFYWNoQXJnQ2FsbGJhY2s+JikgZmluYWw7CiAgICAgYm9v
bCBpc1ZhbGlkKEFpcjo6SW5zdCYpIGZpbmFsOwogICAgIGJvb2wgYWRtaXRzU3RhY2soQWlyOjpJ
bnN0JiwgdW5zaWduZWQgYXJnSW5kZXgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNQYXRjaHBvaW50VmFsdWUuaAppbmRleCBmM2E0MWE0NzE1ZmY1ZWE3OTFkYTQzMmU5MzRj
MDFiZDU0ZDgyMWNjLi5mYmNjMmViZTcxYzNkYzZhMmFhY2JhYWNhZTBjMGFmOGYyYzRkZjBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50VmFsdWUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50VmFsdWUuaApAQCAtMzMs
MTMgKzMzLDEzIEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCi1jbGFzcyBQ
YXRjaHBvaW50VmFsdWUgOiBwdWJsaWMgU3RhY2ttYXBWYWx1ZSB7CitjbGFzcyBQYXRjaHBvaW50
VmFsdWUgZmluYWwgOiBwdWJsaWMgU3RhY2ttYXBWYWx1ZSB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBTdGFja21hcFZhbHVlIEJhc2U7CiAgICAgCiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhLaW5k
IGtpbmQpIHsgcmV0dXJuIGtpbmQgPT0gUGF0Y2hwb2ludDsgfQogCi0gICAgflBhdGNocG9pbnRW
YWx1ZSgpOworICAgIH5QYXRjaHBvaW50VmFsdWUoKSBmaW5hbDsKIAogICAgIC8vIFRoZSBlZmZl
Y3RzIG9mIHRoZSBwYXRjaHBvaW50LiBUaGlzIGRlZmF1bHRzIHRvIEVmZmVjdHM6OmZvckNhbGwo
KSwgYnV0IHlvdSBjYW4gc2V0IGl0IHRvIGFueXRoaW5nLgogICAgIC8vCkBAIC02NCwxMCArNjQs
OSBAQCBwdWJsaWM6CiAKICAgICBCM19TUEVDSUFMSVpFX1ZBTFVFX0ZPUl9GSU5BTF9TSVpFX1ZB
UkFSR1NfQ0hJTERSRU4KIAotcHJvdGVjdGVkOgotICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmlu
dGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKLQogcHJpdmF0ZToKKyAgICB2b2lk
IGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CisKICAg
ICBmcmllbmQgY2xhc3MgUHJvY2VkdXJlOwogICAgIGZyaWVuZCBjbGFzcyBWYWx1ZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU2xvdEJhc2VWYWx1ZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU2xvdEJhc2VWYWx1ZS5oCmluZGV4IDc2MDBkODEyYWVi
MWQwN2NjNjlmYmNjYTg3YTBiM2JhYTI3ZDFkZWYuLjMzYzlhMmQ1MWRlM2Y0MGU3ODM2ZDkxN2Yw
NGI4N2I1ZTA2ODU1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Ns
b3RCYXNlVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTbG90QmFzZVZh
bHVlLmgKQEAgLTMzLDExICszMywxMSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsK
IAogY2xhc3MgU3RhY2tTbG90OwogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBTbG90QmFzZVZh
bHVlIDogcHVibGljIFZhbHVlIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIFNsb3RCYXNlVmFs
dWUgZmluYWwgOiBwdWJsaWMgVmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2Vw
dHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IFNsb3RCYXNlOyB9CiAKLSAgICB+U2xvdEJh
c2VWYWx1ZSgpOworICAgIH5TbG90QmFzZVZhbHVlKCkgZmluYWw7CiAKICAgICBTdGFja1Nsb3Qq
IHNsb3QoKSBjb25zdCB7IHJldHVybiBtX3Nsb3Q7IH0KIApAQCAtNDcsNyArNDcsNyBAQCBwcml2
YXRlOgogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CiAgICAgZnJpZW5kIGNsYXNzIFZhbHVl
OwogCi0gICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0m
KSBjb25zdCBmaW5hbDsKIAogICAgIHN0YXRpYyBPcGNvZGUgb3Bjb2RlRnJvbUNvbnN0cnVjdG9y
KE9yaWdpbiwgU3RhY2tTbG90KikgeyByZXR1cm4gU2xvdEJhc2U7IH0KICAgICBTbG90QmFzZVZh
bHVlKE9yaWdpbiBvcmlnaW4sIFN0YWNrU2xvdCogc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwU3BlY2lhbC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFsLmgKaW5kZXggNThiOGM5NmMyMmI5N2ZmMDY1MDI2ODA3
OGRlNzc5OWE3NjNhMDQ4ZS4uYzhmZjkwZDI2MDY1MzQ0OTdkZGE5NGYzZjU3Y2VjZjE0NjNkNDE5
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFs
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFsLmgKQEAg
LTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIEFpciB7IGNsYXNzIENvZGU7IH0KIGNsYXNzIFN0YWNr
bWFwU3BlY2lhbCA6IHB1YmxpYyBBaXI6OlNwZWNpYWwgewogcHVibGljOgogICAgIFN0YWNrbWFw
U3BlY2lhbCgpOwotICAgIHZpcnR1YWwgflN0YWNrbWFwU3BlY2lhbCgpOworICAgIH5TdGFja21h
cFNwZWNpYWwoKSBvdmVycmlkZTsKIAogICAgIGVudW0gUm9sZU1vZGUgOiBpbnQ4X3QgewogICAg
ICAgICBTYW1lQXNSZXAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNT
dGFja21hcFZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFZhbHVl
LmgKaW5kZXggZGUwZGM5NjNmZTgyY2U2NTFmZWQwMzhiNWZjNGI4Y2ViOTc4ZmI2Ni4uODdmMDA5
ZDQ5MDExZTc4YWNiMDA3MjIyMzM4ZmQ3ZjBjYjU0M2E4OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1N0YWNrbWFwVmFsdWUuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICB+U3RhY2ttYXBWYWx1ZSgpOworICAgIH5TdGFja21hcFZhbHVl
KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBVc2UgdGhpcyB0byBhZGQgY2hpbGRyZW4uCiAgICAgdm9p
ZCBhcHBlbmQoY29uc3QgQ29uc3RyYWluZWRWYWx1ZSYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzU3dpdGNoVmFsdWUuaAppbmRleCBhY2E4NzcwNDhhYjBhMDRhYThiYzU4ZTBlMjlk
MDg0ZGI3NDdiYzYxLi5mNmE3NzViMzAxNTQ5ZWY2ZjFlMjA3MDA3MWZiMDAyZjEwODdkNGNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmgKQEAgLTMzLDExICszMywx
MSBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgU3dpdGNoVmFs
dWUgOiBwdWJsaWMgVmFsdWUgeworY2xhc3MgU3dpdGNoVmFsdWUgZmluYWwgOiBwdWJsaWMgVmFs
dWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVy
biBraW5kID09IFN3aXRjaDsgfQogCi0gICAgflN3aXRjaFZhbHVlKCk7CisgICAgflN3aXRjaFZh
bHVlKCkgZmluYWw7CiAKICAgICAvLyBudW1DYXNlVmFsdWVzKCkgKyAxID09IG51bVN1Y2Nlc3Nv
cnMoKS4KICAgICB1bnNpZ25lZCBudW1DYXNlVmFsdWVzKCkgY29uc3QgeyByZXR1cm4gbV92YWx1
ZXMuc2l6ZSgpOyB9CkBAIC02MiwxNSArNjIsMTQgQEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9Q
UklWQVRFIHZvaWQgc2V0RmFsbFRocm91Z2goY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRDYXNlKGNvbnN0IFN3aXRjaENhc2UmKTsKIAot
ICAgIHZvaWQgZHVtcFN1Y2Nlc3NvcnMoY29uc3QgQmFzaWNCbG9jayosIFByaW50U3RyZWFtJikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBkdW1wU3VjY2Vzc29ycyhjb25zdCBCYXNpY0Jsb2Nr
KiwgUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKIAogICAgIEIzX1NQRUNJQUxJWkVfVkFMVUVf
Rk9SX0ZJWEVEX0NISUxEUkVOKDEpCiAgICAgQjNfU1BFQ0lBTElaRV9WQUxVRV9GT1JfRklOQUxf
U0laRV9GSVhFRF9DSElMRFJFTgogCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBkdW1wTWV0YShDb21t
YVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwotCiBwcml2YXRlOgorICAg
IHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsK
KwogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CiAgICAgZnJpZW5kIGNsYXNzIFZhbHVlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNVcHNpbG9uVmFsdWUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Vwc2lsb25WYWx1ZS5oCmluZGV4IDlkNjNjNDYx
OWQwNmIwNTc5N2UwZTE1N2M5YzQ0ZTU1NWIzYTZkZjQuLjJkMDhhMzczYmU2NDc5ODQ5YjZlYzdj
NjY0NjZiZjFhNDU4OWNmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1Vwc2lsb25WYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Vwc2lsb25W
YWx1ZS5oCkBAIC0zMSwxMSArMzEsMTEgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBC
MyB7CiAKLWNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIFVwc2lsb25WYWx1ZSA6IHB1YmxpYyBWYWx1
ZSB7CitjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBVcHNpbG9uVmFsdWUgZmluYWwgOiBwdWJsaWMg
VmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7IHJl
dHVybiBraW5kID09IFVwc2lsb247IH0KIAotICAgIH5VcHNpbG9uVmFsdWUoKTsKKyAgICB+VXBz
aWxvblZhbHVlKCkgZmluYWw7CiAKICAgICBWYWx1ZSogcGhpKCkgY29uc3QgeyByZXR1cm4gbV9w
aGk7IH0KICAgICB2b2lkIHNldFBoaShWYWx1ZSogcGhpKQpAQCAtNDgsMTAgKzQ4LDkgQEAgcHVi
bGljOgogICAgIEIzX1NQRUNJQUxJWkVfVkFMVUVfRk9SX0ZJWEVEX0NISUxEUkVOKDEpCiAgICAg
QjNfU1BFQ0lBTElaRV9WQUxVRV9GT1JfRklOQUxfU0laRV9GSVhFRF9DSElMRFJFTgogCi1wcm90
ZWN0ZWQ6Ci0gICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNv
bnN0IG92ZXJyaWRlOwotCiBwcml2YXRlOgorICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVy
JiwgUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKKwogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1
cmU7CiAgICAgZnJpZW5kIGNsYXNzIFZhbHVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYXJpYWJsZVZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYXJpYWJsZVZhbHVlLmgKaW5kZXggMWVjYzdlNDQ4ZjllZTRkMDk5ZmE4MTA2YzNiOTk0NGFh
NTk1YTgwMS4uZDI2OTYzZTZkZDRmM2NjYjJkYzI2ZjZjNDhlZDMwOGE4ZGUyN2Q5NSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFyaWFibGVWYWx1ZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhcmlhYmxlVmFsdWUuaApAQCAtMzMsMjEgKzMzLDIw
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCiBjbGFzcyBWYXJpYWJsZTsKIAot
Y2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgVmFyaWFibGVWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7Citj
bGFzcyBKU19FWFBPUlRfUFJJVkFURSBWYXJpYWJsZVZhbHVlIGZpbmFsIDogcHVibGljIFZhbHVl
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4g
a2luZCA9PSBHZXQgfHwga2luZCA9PSBTZXQ7IH0KIAotICAgIH5WYXJpYWJsZVZhbHVlKCk7Cisg
ICAgflZhcmlhYmxlVmFsdWUoKSBmaW5hbDsKIAogICAgIFZhcmlhYmxlKiB2YXJpYWJsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdmFyaWFibGU7IH0KIAogICAgIEIzX1NQRUNJQUxJWkVfVkFMVUVfRk9S
X05PTl9WQVJBUkdTX0NISUxEUkVOCiAgICAgQjNfU1BFQ0lBTElaRV9WQUxVRV9GT1JfRklOQUxf
U0laRV9GSVhFRF9DSElMRFJFTgogCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBkdW1wTWV0YShDb21t
YVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwotCiBwcml2YXRlOgorICAg
IHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsK
KwogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CiAgICAgZnJpZW5kIGNsYXNzIFZhbHVlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXYXNtQWRkcmVzc1ZhbHVl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXYXNtQWRkcmVzc1ZhbHVlLmgKaW5kZXgg
NTliYjExMDI5MWUzYWE5NTY1ZTdjODg4ZDA3M2RlYWFiZWNhNWY1OS4uY2FhNjljMmM4ZTVhZDRi
NmViZTQyYTdlNDY1YzFjN2Y0YTFiMDAyMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzV2FzbUFkZHJlc3NWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1dhc21BZGRyZXNzVmFsdWUuaApAQCAtMzIsMjEgKzMyLDIwIEBACiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQjMgewogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBXYXNtQWRkcmVz
c1ZhbHVlIDogcHVibGljIFZhbHVlIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIFdhc21BZGRy
ZXNzVmFsdWUgZmluYWwgOiBwdWJsaWMgVmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29s
IGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IFdhc21BZGRyZXNzOyB9CiAKLSAg
ICB+V2FzbUFkZHJlc3NWYWx1ZSgpOworICAgIH5XYXNtQWRkcmVzc1ZhbHVlKCkgZmluYWw7CiAK
ICAgICBHUFJSZWcgcGlubmVkR1BSKCkgY29uc3QgeyByZXR1cm4gbV9waW5uZWRHUFI7IH0KIAog
ICAgIEIzX1NQRUNJQUxJWkVfVkFMVUVfRk9SX0ZJWEVEX0NISUxEUkVOKDEpCiAgICAgQjNfU1BF
Q0lBTElaRV9WQUxVRV9GT1JfRklOQUxfU0laRV9GSVhFRF9DSElMRFJFTgogCi1wcm90ZWN0ZWQ6
Ci0gICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92
ZXJyaWRlOwotCiBwcml2YXRlOgorICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJp
bnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKKwogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CiAg
ICAgZnJpZW5kIGNsYXNzIFZhbHVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzV2FzbUJvdW5kc0NoZWNrVmFsdWUuaAppbmRleCBiNjlkMjRlOGZjZjI4MjJkOTkxNjk5NGM0
NjIzNjc2NTlkZWU1MGJjLi44NjNjNjFhNTUxNDJjYjA0MDBhYzdkNGQxNWVkOWJhNzE5ZTI1Zjc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXYXNtQm91bmRzQ2hlY2tW
YWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dhc21Cb3VuZHNDaGVja1Zh
bHVlLmgKQEAgLTMyLDExICszMiwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsKIAotY2xhc3MgV2FzbUJvdW5kc0NoZWNrVmFsdWUgOiBwdWJsaWMgVmFsdWUgeworY2xhc3Mg
V2FzbUJvdW5kc0NoZWNrVmFsdWUgZmluYWwgOiBwdWJsaWMgVmFsdWUgewogcHVibGljOgogICAg
IHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IFdhc21Cb3Vu
ZHNDaGVjazsgfQogICAgIAotICAgIH5XYXNtQm91bmRzQ2hlY2tWYWx1ZSgpOworICAgIH5XYXNt
Qm91bmRzQ2hlY2tWYWx1ZSgpIGZpbmFsOwogCiAgICAgZW51bSBjbGFzcyBUeXBlIHsKICAgICAg
ICAgUGlubmVkLApAQCAtNTUsMTAgKzU1LDkgQEAgcHVibGljOgogICAgIEIzX1NQRUNJQUxJWkVf
VkFMVUVfRk9SX0ZJWEVEX0NISUxEUkVOKDEpCiAgICAgQjNfU1BFQ0lBTElaRV9WQUxVRV9GT1Jf
RklOQUxfU0laRV9GSVhFRF9DSElMRFJFTgogCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBkdW1wTWV0
YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwotCiBwcml2YXRl
OgorICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBm
aW5hbDsKKwogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CiAgICAgZnJpZW5kIGNsYXNzIFZh
bHVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxs
U3BlY2lhbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwu
aAppbmRleCBiY2FkMDBhZWFiNDg5Yjk4N2QzODA4MDA5YjM0OGNiMjAwYmZjZWI1Li5kZGFmZjFj
MmUxNWU4MGY5ZjgxMTZlMTFiNjcxNjc5Yzg4ZDYxYWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxsU3BlY2lhbC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmgKQEAgLTQyLDE3ICs0MiwxNyBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAvLyBpZiB3ZSBoYWQg
YSBjYWxsIHRoYXQgZGlkbid0IHBhc3MgdGhlbSwgdGhlbiB0aGV5J2QgYXBwZWFyIHRvIGJlIGxp
dmUgdW50aWwgc29tZSBjbG9iYmVyIHBvaW50IG9yCiAvLyB0aGUgcHJvbG9ndWUsIHdoaWNoZXZl
ciBoYXBwZW5lZCBzb29uZXIuCiAKLWNsYXNzIENDYWxsU3BlY2lhbCA6IHB1YmxpYyBTcGVjaWFs
IHsKK2NsYXNzIENDYWxsU3BlY2lhbCBmaW5hbCA6IHB1YmxpYyBTcGVjaWFsIHsKIHB1YmxpYzoK
ICAgICBDQ2FsbFNwZWNpYWwoKTsKLSAgICB+Q0NhbGxTcGVjaWFsKCk7CisgICAgfkNDYWxsU3Bl
Y2lhbCgpIGZpbmFsOwogCiAgICAgLy8gWW91IGNhbm5vdCB1c2UgdGhpcyByZWdpc3RlciB0byBw
YXNzIGFyZ3VtZW50cy4gSXQganVzdCBzbyBoYXBwZW5zIHRoYXQgdGhpcyByZWdpc3RlciBpcyBu
b3QKICAgICAvLyB1c2VkIGZvciBhcmd1bWVudHMgaW4gdGhlIEMgY2FsbGluZyBjb252ZW50aW9u
LiBCeSB0aGUgd2F5LCB0aGlzIGlzIHRoZSBvbmx5IHRoaW5nIHRoYXQgY2F1c2VzCiAgICAgLy8g
dGhpcyBzcGVjaWFsIHRvIGJlIHNwZWNpZmljIHRvIEMgY2FsbHMuCiAgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgc2NyYXRjaFJlZ2lzdGVyID0gR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uQXJn
dW1lbnRHUFIwOwogCi1wcm90ZWN0ZWQ6Citwcml2YXRlOgogICAgIHZvaWQgZm9yRWFjaEFyZyhJ
bnN0JiwgY29uc3QgU2NvcGVkTGFtYmRhPEluc3Q6OkVhY2hBcmdDYWxsYmFjaz4mKSBmaW5hbDsK
ICAgICBib29sIGlzVmFsaWQoSW5zdCYpIGZpbmFsOwogICAgIGJvb2wgYWRtaXRzU3RhY2soSW5z
dCYsIHVuc2lnbmVkIGFyZ0luZGV4KSBmaW5hbDsKQEAgLTY1LDcgKzY1LDYgQEAgcHJvdGVjdGVk
OgogICAgIHZvaWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IGRlZXBEdW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogCi1wcml2YXRlOgogICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc3BlY2lhbEFyZ09mZnNldCA9IDA7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1TcGVjaWFsQXJncyA9IDE7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBjYWxsZWVBcmdPZmZzZXQgPSBudW1TcGVjaWFsQXJnczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5oCmluZGV4IGZmZDJk
N2JmNjRkMTZkNjBhMDA1MmZmNGMyNGQyMDNmYjk3ZDRmNzIuLjU5MWJiNWRkZDYzNWIyMmU0YzVk
MjllNDUyNmYxZTc0MjY1YzIwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyUHJpbnRTcGVjaWFsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJQcmludFNwZWNpYWwuaApAQCAtOTIsMTcgKzkyLDE3IEBAIHN0cnVjdCBQcmludGVyPFJl
Zz4gOiBwdWJsaWMgUHJpbnRSZWNvcmQgewogCiBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWly
IHsKIAotY2xhc3MgUHJpbnRTcGVjaWFsIDogcHVibGljIFNwZWNpYWwgeworY2xhc3MgUHJpbnRT
cGVjaWFsIGZpbmFsIDogcHVibGljIFNwZWNpYWwgewogcHVibGljOgogICAgIFByaW50U3BlY2lh
bChQcmludGVyOjpQcmludFJlY29yZExpc3QqKTsKLSAgICB+UHJpbnRTcGVjaWFsKCk7CisgICAg
flByaW50U3BlY2lhbCgpIGZpbmFsOwogICAgIAogICAgIC8vIFlvdSBjYW5ub3QgdXNlIHRoaXMg
cmVnaXN0ZXIgdG8gcGFzcyBhcmd1bWVudHMuIEl0IGp1c3Qgc28gaGFwcGVucyB0aGF0IHRoaXMg
cmVnaXN0ZXIgaXMgbm90CiAgICAgLy8gdXNlZCBmb3IgYXJndW1lbnRzIGluIHRoZSBDIGNhbGxp
bmcgY29udmVudGlvbi4gQnkgdGhlIHdheSwgdGhpcyBpcyB0aGUgb25seSB0aGluZyB0aGF0IGNh
dXNlcwogICAgIC8vIHRoaXMgc3BlY2lhbCB0byBiZSBzcGVjaWZpYyB0byBDIGNhbGxzLgogICAg
IHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHNjcmF0Y2hSZWdpc3RlciA9IEdQUkluZm86Om5vbkFy
Z0dQUjA7CiAgICAgCi1wcm90ZWN0ZWQ6Citwcml2YXRlOgogICAgIHZvaWQgZm9yRWFjaEFyZyhJ
bnN0JiwgY29uc3QgU2NvcGVkTGFtYmRhPEluc3Q6OkVhY2hBcmdDYWxsYmFjaz4mKSBmaW5hbDsK
ICAgICBib29sIGlzVmFsaWQoSW5zdCYpIGZpbmFsOwogICAgIGJvb2wgYWRtaXRzU3RhY2soSW5z
dCYsIHVuc2lnbmVkIGFyZ0luZGV4KSBmaW5hbDsKQEAgLTExNSw3ICsxMTUsNiBAQCBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBkdW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogICAgIHZv
aWQgZGVlcER1bXBJbXBsKFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CiAgICAgCi1wcml2YXRl
OgogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc3BlY2lhbEFyZ09mZnNldCA9IDA7CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1TcGVjaWFsQXJncyA9IDE7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBjYWxsZWVBcmdPZmZzZXQgPSBudW1TcGVjaWFsQXJnczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgKaW5k
ZXggZWRiMTEyOTIxYWY3NTNlNjNkODYxMzcyZmJkZTBlZWY4OWZjYTE1OS4uZWM2NDU3YmVkNDYx
MWY5NmRjOWRhMGE2NGY1ZThjMDAxOWY2MWFhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgKQEAgLTg0LDcgKzg0LDcgQEAgcHVibGljOgog
ICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5CeXRlY29kZUR1bXBlcigpIHsgfQorICAgIH5C
eXRlY29kZUR1bXBlcigpIG92ZXJyaWRlIHsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgQmxvY2sqIGJs
b2NrKCkgY29uc3QgeyByZXR1cm4gbV9ibG9jazsgfQpAQCAtMTAxLDcgKzEwMSw3IEBAIHByaXZh
dGU6CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBCbG9jaz4KLWNsYXNzIENvZGVCbG9ja0J5dGVjb2Rl
RHVtcGVyIDogcHVibGljIEJ5dGVjb2RlRHVtcGVyPEJsb2NrPiB7CitjbGFzcyBDb2RlQmxvY2tC
eXRlY29kZUR1bXBlciBmaW5hbCA6IHB1YmxpYyBCeXRlY29kZUR1bXBlcjxCbG9jaz4gewogcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIGR1bXBCbG9jayhCbG9jayosIGNvbnN0IEluc3RydWN0aW9u
U3RyZWFtJiwgUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgSUNTdGF0dXNNYXAmID0gSUNTdGF0dXNN
YXAoKSk7CiAKQEAgLTEyNyw3ICsxMjcsNyBAQCBjbGFzcyBGdW5jdGlvbkNvZGVCbG9jazsKIHN0
cnVjdCBNb2R1bGVJbmZvcm1hdGlvbjsKIGVudW0gVHlwZSA6IGludDhfdDsKIAotY2xhc3MgQnl0
ZWNvZGVEdW1wZXIgOiBwdWJsaWMgSlNDOjpCeXRlY29kZUR1bXBlcjxGdW5jdGlvbkNvZGVCbG9j
az4geworY2xhc3MgQnl0ZWNvZGVEdW1wZXIgZmluYWwgOiBwdWJsaWMgSlNDOjpCeXRlY29kZUR1
bXBlcjxGdW5jdGlvbkNvZGVCbG9jaz4gewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGR1bXBC
bG9jayhGdW5jdGlvbkNvZGVCbG9jayosIGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiwgUHJpbnRT
dHJlYW0mIG91dCk7CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIHVzaW5nIEpT
Qzo6Qnl0ZWNvZGVEdW1wZXI8RnVuY3Rpb25Db2RlQmxvY2s+OjpCeXRlY29kZUR1bXBlcjsKIAog
ICAgIHZvaWQgZHVtcENvbnN0YW50cygpOwotICAgIENTdHJpbmcgY29uc3RhbnROYW1lKFZpcnR1
YWxSZWdpc3RlciBpbmRleCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ1N0cmluZyBjb25zdGFudE5h
bWUoVmlydHVhbFJlZ2lzdGVyIGluZGV4KSBjb25zdCBmaW5hbDsKICAgICBDU3RyaW5nIGZvcm1h
dENvbnN0YW50KFR5cGUsIHVpbnQ2NF90KSBjb25zdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0dGVyU2V0dGVyQWNjZXNzQ2FzZS5oCmluZGV4
IDI2ZDI1Y2YzY2Q2MGIyNjNjZDA0ZDBkN2YxOWNjZmZiNDljNzIwNWMuLmYxNzVmMjFjOGIxZGU3
ZjVlOWE3ZTE3MjI5MDkwMmQ4ZGI0MWYwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0dldHRlclNldHRlckFjY2Vzc0Nhc2UuaApAQCAtMzIsNyArMzIs
NyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgR2V0dGVyU2V0dGVyQWNjZXNzQ2FzZSA6
IHB1YmxpYyBQcm94eWFibGVBY2Nlc3NDYXNlIHsKK2NsYXNzIEdldHRlclNldHRlckFjY2Vzc0Nh
c2UgZmluYWwgOiBwdWJsaWMgUHJveHlhYmxlQWNjZXNzQ2FzZSB7CiBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBQcm94eWFibGVBY2Nlc3NDYXNlIEJhc2U7CiAgICAgZnJpZW5kIGNsYXNzIEFjY2Vzc0Nh
c2U7CkBAIC00OCw4ICs0OCw4IEBAIHB1YmxpYzoKICAgICBKU09iamVjdCogY3VzdG9tU2xvdEJh
c2UoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbVNsb3RCYXNlLmdldCgpOyB9CiAgICAgT3B0aW9u
YWw8RE9NQXR0cmlidXRlQW5ub3RhdGlvbj4gZG9tQXR0cmlidXRlKCkgY29uc3QgeyByZXR1cm4g
bV9kb21BdHRyaWJ1dGU7IH0KIAotICAgIGJvb2wgaGFzQWx0ZXJuYXRlQmFzZSgpIGNvbnN0IG92
ZXJyaWRlOwotICAgIEpTT2JqZWN0KiBhbHRlcm5hdGVCYXNlKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBoYXNBbHRlcm5hdGVCYXNlKCkgY29uc3QgZmluYWw7CisgICAgSlNPYmplY3QqIGFs
dGVybmF0ZUJhc2UoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgZW1pdERPTUpJVEdldHRlcihB
Y2Nlc3NHZW5lcmF0aW9uU3RhdGUmLCBjb25zdCBET01KSVQ6OkdldHRlclNldHRlciosIEdQUlJl
ZyBiYXNlRm9yR2V0R1BSKTsKIApAQCAtNjIsMTAgKzYyLDEwIEBAIHB1YmxpYzoKICAgICAgICAg
Y29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmLCBzdGQ6OnVuaXF1ZV9wdHI8UG9seVBy
b3RvQWNjZXNzQ2hhaW4+LAogICAgICAgICBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+IGN1
c3RvbVNldHRlciA9IG51bGxwdHIsIEpTT2JqZWN0KiBjdXN0b21TbG90QmFzZSA9IG51bGxwdHIp
OwogCi0gICAgdm9pZCBkdW1wSW1wbChQcmludFN0cmVhbSYsIENvbW1hUHJpbnRlciYpIGNvbnN0
IG92ZXJyaWRlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBjbG9uZSgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZvaWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mLCBDb21tYVByaW50ZXIm
KSBjb25zdCBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBj
b25zdCBmaW5hbDsKIAotICAgIH5HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlKCk7CisgICAgfkdldHRl
clNldHRlckFjY2Vzc0Nhc2UoKSBmaW5hbDsKIAogICAgIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0
clRhZz4gY3VzdG9tQWNjZXNzb3IoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbUFjY2Vzc29yOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnN0YW5jZU9m
QWNjZXNzQ2FzZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0luc3RhbmNlT2ZB
Y2Nlc3NDYXNlLmgKaW5kZXggZDYzODhkNzM2ZmVlODI4ZDFiODY3MGM4NTE2NWExM2M4MTVjZDlj
Ni4uNjllMmIzMWFhOTRhNTlkMzBkZmI0Y2FmMjI0NDk5ZDYwMjc3ODQ3YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0luc3RhbmNlT2ZBY2Nlc3NDYXNlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0luc3RhbmNlT2ZBY2Nlc3NDYXNlLmgK
QEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEluc3RhbmNlT2ZB
Y2Nlc3NDYXNlIDogcHVibGljIEFjY2Vzc0Nhc2UgeworY2xhc3MgSW5zdGFuY2VPZkFjY2Vzc0Nh
c2UgZmluYWwgOiBwdWJsaWMgQWNjZXNzQ2FzZSB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9
IEFjY2Vzc0Nhc2U7CiAgICAgCkBAIC00MSwxNyArNDEsMTYgQEAgcHVibGljOgogICAgIAogICAg
IEpTT2JqZWN0KiBwcm90b3R5cGUoKSBjb25zdCB7IHJldHVybiBtX3Byb3RvdHlwZS5nZXQoKTsg
fQogICAgIAotICAgIHZvaWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mLCBDb21tYVByaW50ZXImKSBj
b25zdCBvdmVycmlkZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXBJbXBsKFByaW50U3RyZWFtJiwgQ29tbWFQcmlu
dGVyJikgY29uc3QgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IGNsb25l
KCkgY29uc3QgZmluYWw7CiAgICAgCi0gICAgfkluc3RhbmNlT2ZBY2Nlc3NDYXNlKCk7CisgICAg
fkluc3RhbmNlT2ZBY2Nlc3NDYXNlKCkgZmluYWw7CiAKLXByb3RlY3RlZDoKK3ByaXZhdGU6CiAg
ICAgSW5zdGFuY2VPZkFjY2Vzc0Nhc2UoCiAgICAgICAgIFZNJiwgSlNDZWxsKiwgQWNjZXNzVHlw
ZSwgU3RydWN0dXJlKiwgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmLAogICAgICAg
ICBKU09iamVjdCogcHJvdG90eXBlKTsKIAotcHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8SlNP
YmplY3Q+IG1fcHJvdG90eXBlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0ludHJpbnNpY0dldHRlckFjY2Vzc0Nhc2UuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9JbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlLmgKaW5kZXggNjk2ZGFi
NDBiMjQ0ZWJiMjFkYzNiZjBlOTFlNDAzMjA0N2VlNDZhOS4uZDdhZWQ3YTUzMmMxMzA4Y2VkNjU1
ZTBkZmVlMjVmMzczZDY4YTYwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0ludHJpbnNpY0dldHRlckFjY2Vzc0Nhc2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvSW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZS5oCkBAIC0zMSw3ICszMSw3
IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBJbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNl
IDogcHVibGljIEFjY2Vzc0Nhc2UgeworY2xhc3MgSW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZSBm
aW5hbCA6IHB1YmxpYyBBY2Nlc3NDYXNlIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEFjY2Vzc0Nh
c2UgQmFzZTsKICAgICBmcmllbmQgY2xhc3MgQWNjZXNzQ2FzZTsKQEAgLTQ0LDkgKzQ0LDkgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBjcmVhdGUo
Vk0mLCBKU0NlbGwqLCBDYWNoZWFibGVJZGVudGlmaWVyLCBQcm9wZXJ0eU9mZnNldCwgU3RydWN0
dXJlKiwgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmLCBKU0Z1bmN0aW9uKiBpbnRy
aW5zaWNGdW5jdGlvbiwgc3RkOjp1bmlxdWVfcHRyPFBvbHlQcm90b0FjY2Vzc0NoYWluPik7CiAK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBjb25zdCBvdmVycmlkZTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBjb25zdCBmaW5hbDsKIAot
ICAgIH5JbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlKCk7CisgICAgfkludHJpbnNpY0dldHRlckFj
Y2Vzc0Nhc2UoKSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBJbnRyaW5zaWNHZXR0ZXJBY2Nlc3ND
YXNlKFZNJiwgSlNDZWxsKiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgUHJvcGVydHlPZmZzZXQsIFN0
cnVjdHVyZSosIGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0JiwgSlNGdW5jdGlvbiog
aW50cmluc2ljRnVuY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxQb2x5UHJvdG9BY2Nlc3NDaGFpbj4p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01vZHVsZU5hbWVz
cGFjZUFjY2Vzc0Nhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Nb2R1bGVO
YW1lc3BhY2VBY2Nlc3NDYXNlLmgKaW5kZXggNWVjYzRiM2FjOTE4YWViMzA5M2E0MGEyMzEyNDI3
ZjBkZDU5ZWJiYS4uOTJhMGI4YTM1YjU0NzE2MjQxMzBkNjUwNjUzZDA1YmY1ZDc5MzM3NyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01vZHVsZU5hbWVzcGFjZUFj
Y2Vzc0Nhc2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTW9kdWxlTmFt
ZXNwYWNlQWNjZXNzQ2FzZS5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xh
c3MgSlNNb2R1bGVFbnZpcm9ubWVudDsKIGNsYXNzIEpTTW9kdWxlTmFtZXNwYWNlT2JqZWN0Owog
Ci1jbGFzcyBNb2R1bGVOYW1lc3BhY2VBY2Nlc3NDYXNlIDogcHVibGljIEFjY2Vzc0Nhc2Ugewor
Y2xhc3MgTW9kdWxlTmFtZXNwYWNlQWNjZXNzQ2FzZSBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NDYXNl
IHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gQWNjZXNzQ2FzZTsKICAgICBmcmllbmQgY2xh
c3MgQWNjZXNzQ2FzZTsKQEAgLTQ2LDExICs0NiwxMSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IGNyZWF0ZShWTSYsIEpTQ2VsbCogb3duZXIsIENh
Y2hlYWJsZUlkZW50aWZpZXIsIEpTTW9kdWxlTmFtZXNwYWNlT2JqZWN0KiwgSlNNb2R1bGVFbnZp
cm9ubWVudCosIFNjb3BlT2Zmc2V0KTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNl
PiBjbG9uZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNl
PiBjbG9uZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBlbWl0KEFjY2Vzc0dlbmVyYXRpb25T
dGF0ZSYsIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFsbFRocm91Z2gpOwogCi0gICAgfk1v
ZHVsZU5hbWVzcGFjZUFjY2Vzc0Nhc2UoKTsKKyAgICB+TW9kdWxlTmFtZXNwYWNlQWNjZXNzQ2Fz
ZSgpIGZpbmFsOwogCiBwcml2YXRlOgogICAgIE1vZHVsZU5hbWVzcGFjZUFjY2Vzc0Nhc2UoVk0m
LCBKU0NlbGwqIG93bmVyLCBDYWNoZWFibGVJZGVudGlmaWVyLCBKU01vZHVsZU5hbWVzcGFjZU9i
amVjdCosIEpTTW9kdWxlRW52aXJvbm1lbnQqLCBTY29wZU9mZnNldCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJveHlhYmxlQWNjZXNzQ2FzZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb3h5YWJsZUFjY2Vzc0Nhc2UuaAppbmRleCAz
ZTczNzYxZDcyZjAzODU3MjRiNmI1ZjRhMGVkN2Q5YTMyNTZmNDAxLi4zY2JiZTcxYjlhYTM1MzM3
MDU0ODhlOGJiYmM4NmM4NGJhMWE1YmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvUHJveHlhYmxlQWNjZXNzQ2FzZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qcm94eWFibGVBY2Nlc3NDYXNlLmgKQEAgLTQzLDcgKzQzLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mLCBDb21tYVByaW50ZXImKSBjb25z
dCBvdmVycmlkZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIH5Qcm94eWFibGVBY2Nlc3NDYXNlKCk7CisgICAgflByb3h5YWJs
ZUFjY2Vzc0Nhc2UoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFByb3h5YWJsZUFjY2Vz
c0Nhc2UoVk0mLCBKU0NlbGwqLCBBY2Nlc3NUeXBlLCBDYWNoZWFibGVJZGVudGlmaWVyLCBQcm9w
ZXJ0eU9mZnNldCwgU3RydWN0dXJlKiwgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQm
LCBib29sIHZpYVByb3h5LCBXYXRjaHBvaW50U2V0KiBhZGRpdGlvbmFsU2V0LCBzdGQ6OnVuaXF1
ZV9wdHI8UG9seVByb3RvQWNjZXNzQ2hhaW4+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvV2F0Y2hwb2ludC5oCmluZGV4IDRiMjRhNTBlMjM5ZmY4ZjYxMTdlMmIwMDFkNGE0MjQ2
NzYwMDA1M2QuLjUxYmNlMzgwMDM0ZTA1YjYxZmVlNjI5ZWU2ODQxMTdlMDIyOTNhYjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuaApAQCAtNTMzLDcgKzUz
Myw3IEBAIGNsYXNzIERlZmVycmVkV2F0Y2hwb2ludEZpcmUgOiBwdWJsaWMgRmlyZURldGFpbCB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGVmZXJyZWRXYXRjaHBvaW50RmlyZSk7CiBwdWJs
aWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgRGVmZXJyZWRXYXRjaHBvaW50RmlyZShWTSYpOwot
ICAgIEpTX0VYUE9SVF9QUklWQVRFIH5EZWZlcnJlZFdhdGNocG9pbnRGaXJlKCk7CisgICAgSlNf
RVhQT1JUX1BSSVZBVEUgfkRlZmVycmVkV2F0Y2hwb2ludEZpcmUoKSBvdmVycmlkZTsKIAogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgdGFrZVdhdGNocG9pbnRzVG9GaXJlKFdhdGNocG9pbnRT
ZXQqKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGZpcmVBbGwoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5oCmluZGV4IGYxNDNjY2MyZDY4
ZTQ1OWJkYmRhYzFlN2NiZmIwNjY0OTkzNDQzMTYuLmI5YWE1ODYzMDliOTg2NDg4ZmE2YjRmNWRi
YzRjNDJlYjExYjc4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RmFpbGVkRmluYWxpemVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGYWls
ZWRGaW5hbGl6ZXIuaApAQCAtMzEsMTQgKzMxLDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgREZHIHsKIAotY2xhc3MgRmFpbGVkRmluYWxpemVyIDogcHVibGljIEZpbmFsaXplciB7
CitjbGFzcyBGYWlsZWRGaW5hbGl6ZXIgZmluYWwgOiBwdWJsaWMgRmluYWxpemVyIHsKIHB1Ymxp
YzoKICAgICBGYWlsZWRGaW5hbGl6ZXIoUGxhbiYpOwotICAgIHZpcnR1YWwgfkZhaWxlZEZpbmFs
aXplcigpOworICAgIH5GYWlsZWRGaW5hbGl6ZXIoKSBmaW5hbDsKICAgICAKLSAgICBzaXplX3Qg
Y29kZVNpemUoKSBvdmVycmlkZTsKLSAgICBib29sIGZpbmFsaXplKCkgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBmaW5hbGl6ZUZ1bmN0aW9uKCkgb3ZlcnJpZGU7CisgICAgc2l6ZV90IGNvZGVTaXplKCkg
ZmluYWw7CisgICAgYm9vbCBmaW5hbGl6ZSgpIGZpbmFsOworICAgIGJvb2wgZmluYWxpemVGdW5j
dGlvbigpIGZpbmFsOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdHcmFwaC5oCmluZGV4IDU0ZmU1NTI5ZDU5OTA4MjY3ZDhmNjZhZWY1MTU1
ZWViMDkzYWFkNTcuLjVhOWNlZTAyYmNhYzZiZWNjYjhhZmVlYTc3NzA0NzIxNzNkZjUyZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKQEAgLTE1OSwxMCArMTU5LDEwIEBAIHBy
aXZhdGU6CiAvLwogLy8gVGhlIG9yZGVyIG1heSBiZSBzaWduaWZpY2FudCBmb3Igbm9kZXMgd2l0
aCBzaWRlLWVmZmVjdHMgKHByb3BlcnR5IGFjY2Vzc2VzLCB2YWx1ZSBjb252ZXJzaW9ucykuCiAv
LyBOb2RlcyB0aGF0IGFyZSAnZGVhZCcgcmVtYWluIGluIHRoZSB2ZWN0b3Igd2l0aCByZWZDb3Vu
dCAwLgotY2xhc3MgR3JhcGggOiBwdWJsaWMgdmlydHVhbCBTY2FubmFibGUgeworY2xhc3MgR3Jh
cGggZmluYWwgOiBwdWJsaWMgdmlydHVhbCBTY2FubmFibGUgewogcHVibGljOgogICAgIEdyYXBo
KFZNJiwgUGxhbiYpOwotICAgIH5HcmFwaCgpOworICAgIH5HcmFwaCgpIGZpbmFsOwogICAgIAog
ICAgIHZvaWQgY2hhbmdlQ2hpbGQoRWRnZSYgZWRnZSwgTm9kZSogbmV3Tm9kZSkKICAgICB7CkBA
IC0xMDA0LDcgKzEwMDQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCByZWdpc3RlckZyb3pl
blZhbHVlcygpOwogICAgIAotICAgIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpIG92
ZXJyaWRlOworICAgIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpIGZpbmFsOwogICAg
IAogICAgIHZvaWQgbG9nQXNzZXJ0aW9uRmFpbHVyZSgKICAgICAgICAgc3RkOjpudWxscHRyX3Qs
IGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBmdW5jdGlvbiwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKaW5kZXggY2Q5NzQ2NDU3MTk5MWQzZDVlMTNl
YmY4MTY3MzgwOTMzZDliMTgyOS4uYTM3ODk4OTIzN2NkNGIxZjYzYmI3ZDNkOTVjMDc2ODQ3MmUy
NWFiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKQEAgLTQ2LDEzICs0
NiwxMyBAQCBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgSklUQ29tcGlsZXI7CiAKLWNsYXNzIEpJ
VENvZGUgOiBwdWJsaWMgRGlyZWN0SklUQ29kZSB7CitjbGFzcyBKSVRDb2RlIGZpbmFsIDogcHVi
bGljIERpcmVjdEpJVENvZGUgewogcHVibGljOgogICAgIEpJVENvZGUoKTsKLSAgICB2aXJ0dWFs
IH5KSVRDb2RlKCk7CisgICAgfkpJVENvZGUoKSBmaW5hbDsKICAgICAKLSAgICBDb21tb25EYXRh
KiBkZmdDb21tb24oKSBvdmVycmlkZTsKLSAgICBKSVRDb2RlKiBkZmcoKSBvdmVycmlkZTsKKyAg
ICBDb21tb25EYXRhKiBkZmdDb21tb24oKSBmaW5hbDsKKyAgICBKSVRDb2RlKiBkZmcoKSBmaW5h
bDsKICAgICAKICAgICBPU1JFbnRyeURhdGEqIGFwcGVuZE9TUkVudHJ5RGF0YShCeXRlY29kZUlu
ZGV4IGJ5dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkxhYmVsPE9TUkVudHJ5UHRyVGFnPiBtYWNo
aW5lQ29kZSkKICAgICB7CkBAIC0xMTMsMTEgKzExMywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRPcHRpbWl6YXRpb25UaHJlc2hvbGRCYXNlZE9uQ29tcGlsYXRpb25SZXN1bHQoQ29kZUJsb2Nr
KiwgQ29tcGlsYXRpb25SZXN1bHQpOwogI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQogICAgIAot
ICAgIHZvaWQgdmFsaWRhdGVSZWZlcmVuY2VzKGNvbnN0IFRyYWNrZWRSZWZlcmVuY2VzJikgb3Zl
cnJpZGU7CisgICAgdm9pZCB2YWxpZGF0ZVJlZmVyZW5jZXMoY29uc3QgVHJhY2tlZFJlZmVyZW5j
ZXMmKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIHNocmlua1RvRml0KGNvbnN0IENvbmN1cnJlbnRK
U0xvY2tlciYpIG92ZXJyaWRlOworICAgIHZvaWQgc2hyaW5rVG9GaXQoY29uc3QgQ29uY3VycmVu
dEpTTG9ja2VyJikgZmluYWw7CiAKLSAgICBSZWdpc3RlclNldCBsaXZlUmVnaXN0ZXJzVG9QcmVz
ZXJ2ZUF0RXhjZXB0aW9uSGFuZGxpbmdDYWxsU2l0ZShDb2RlQmxvY2sqLCBDYWxsU2l0ZUluZGV4
KSBvdmVycmlkZTsKKyAgICBSZWdpc3RlclNldCBsaXZlUmVnaXN0ZXJzVG9QcmVzZXJ2ZUF0RXhj
ZXB0aW9uSGFuZGxpbmdDYWxsU2l0ZShDb2RlQmxvY2sqLCBDYWxsU2l0ZUluZGV4KSBmaW5hbDsK
ICNpZiBFTkFCTEUoRlRMX0pJVCkKICAgICBDb2RlQmxvY2sqIG9zckVudHJ5QmxvY2soKSB7IHJl
dHVybiBtX29zckVudHJ5QmxvY2suZ2V0KCk7IH0KICAgICB2b2lkIHNldE9TUkVudHJ5QmxvY2so
Vk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBDb2RlQmxvY2sqIG9zckVudHJ5QmxvY2spOwpAQCAt
MTI2LDcgKzEyNiw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBwdHJkaWZmX3QgY29tbW9uRGF0
YU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKSVRDb2RlLCBjb21tb24pOyB9CiAK
LSAgICBPcHRpb25hbDxDb2RlT3JpZ2luPiBmaW5kUEMoQ29kZUJsb2NrKiwgdm9pZCogcGMpIG92
ZXJyaWRlOworICAgIE9wdGlvbmFsPENvZGVPcmlnaW4+IGZpbmRQQyhDb2RlQmxvY2sqLCB2b2lk
KiBwYykgZmluYWw7CiAKICAgICB1c2luZyBEaXJlY3RKSVRDb2RlOjppbml0aWFsaXplQ29kZVJl
ZkZvckRGRzsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklURmluYWxpemVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXpl
ci5oCmluZGV4IDJmYzI3NDVhOTNhNTdhMTZjOGZjY2JkMDdlNTU1OWE4MzA3OTRhZWQuLjVjYWQ3
ZTk4M2YwYTI2MjRlOTkzZTkyYjUwODU5OWFlODA1NDY5ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIuaApAQCAtMzMsMTQgKzMzLDE0IEBACiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAotY2xhc3MgSklURmluYWxpemVyIDogcHVibGlj
IEZpbmFsaXplciB7CitjbGFzcyBKSVRGaW5hbGl6ZXIgZmluYWwgOiBwdWJsaWMgRmluYWxpemVy
IHsKIHB1YmxpYzoKICAgICBKSVRGaW5hbGl6ZXIoUGxhbiYsIFJlZjxKSVRDb2RlPiYmLCBzdGQ6
OnVuaXF1ZV9wdHI8TGlua0J1ZmZlcj4sIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRy
VGFnPiB3aXRoQXJpdHlDaGVjayA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFn
PihNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz46OkVtcHR5VmFsdWUpKTsKLSAg
ICB2aXJ0dWFsIH5KSVRGaW5hbGl6ZXIoKTsKKyAgICB+SklURmluYWxpemVyKCkgZmluYWw7CiAg
ICAgCi0gICAgc2l6ZV90IGNvZGVTaXplKCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBmaW5hbGl6ZSgp
IG92ZXJyaWRlOwotICAgIGJvb2wgZmluYWxpemVGdW5jdGlvbigpIG92ZXJyaWRlOworICAgIHNp
emVfdCBjb2RlU2l6ZSgpIGZpbmFsOworICAgIGJvb2wgZmluYWxpemUoKSBmaW5hbDsKKyAgICBi
b29sIGZpbmFsaXplRnVuY3Rpb24oKSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICB2b2lkIGZpbmFs
aXplQ29tbW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Rv
RlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKaW5kZXggOGY3ODAyOTI0
Y2E4MDIyNGRiMzliMTI1MjNlOGQxMGM1OTU1MTJkMC4uYWRkM2NiMDNlY2FlMDNhMTU3NzRhMWQx
MDE5M2U4NzdlM2VmZmJmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaApAQCAtMzYs
MTcgKzM2LDE3IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGFibGU7CiAKIG5hbWVzcGFjZSBERkcgewog
Ci1jbGFzcyBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayA6IHB1YmxpYyBEZWZlcnJl
ZENvbXBpbGF0aW9uQ2FsbGJhY2sgewotcHJvdGVjdGVkOgotICAgIFRvRlRMRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrKCk7Ci0KK2NsYXNzIFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrIGZpbmFsIDogcHVibGljIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayB7CiBwdWJsaWM6
Ci0gICAgdmlydHVhbCB+VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKTsKKyAgICB+
VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKSBmaW5hbDsKIAogICAgIHN0YXRpYyBS
ZWY8VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZSgpOwogICAgIAotICAg
IHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5bmNocm9ub3VzbHkoQ29k
ZUJsb2NrKiwgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jayk7Ci0gICAgdmlydHVhbCB2
b2lkIGNvbXBpbGF0aW9uRGlkQ29tcGxldGUoQ29kZUJsb2NrKiwgQ29kZUJsb2NrKiBwcm9maWxl
ZERGR0NvZGVCbG9jaywgQ29tcGlsYXRpb25SZXN1bHQpOworICAgIHZvaWQgY29tcGlsYXRpb25E
aWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KENvZGVCbG9jayosIENvZGVCbG9jayogcHJvZmls
ZWRERkdDb2RlQmxvY2spIGZpbmFsOworICAgIHZvaWQgY29tcGlsYXRpb25EaWRDb21wbGV0ZShD
b2RlQmxvY2sqLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBDb21waWxhdGlvblJl
c3VsdCkgZmluYWw7CisKK3ByaXZhdGU6CisgICAgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2soKTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGls
YXRpb25DYWxsYmFjay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTEZvck9T
UkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKaW5kZXggZWUwNTJhZGEzMDA3MTgy
NDI0ZjAzMmE3ZDgyYTVkYjYyNjUxOWJhNS4uNzZlNWI1YjIyMmM2YjJiNTc4ZDY2NjlmN2M5YmQ4
MmVkNTVmZGUyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZU
TEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrLmgKQEAgLTM3LDE5ICszNywxOCBAQCBjbGFzcyBTY3JpcHRFeGVjdXRhYmxlOwogCiBu
YW1lc3BhY2UgREZHIHsKIAotY2xhc3MgVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRp
b25DYWxsYmFjayA6IHB1YmxpYyBEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2sgewotcHJvdGVj
dGVkOgotICAgIFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soSklU
Q29kZTo6VHJpZ2dlclJlYXNvbiogZm9yY2VkT1NSRW50cnlUcmlnZ2VyKTsKLQorY2xhc3MgVG9G
VExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayBmaW5hbCA6IHB1YmxpYyBE
ZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2sgewogcHVibGljOgotICAgIHZpcnR1YWwgflRvRlRM
Rm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKTsKKyAgICB+VG9GVExGb3JP
U1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpIGZpbmFsOwogCiAgICAgc3RhdGlj
IFJlZjxUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjcmVhdGUo
SklUQ29kZTo6VHJpZ2dlclJlYXNvbiogZm9yY2VkT1NSRW50cnlUcmlnZ2VyKTsKLSAgICAKLSAg
ICB2aXJ0dWFsIHZvaWQgY29tcGlsYXRpb25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KENv
ZGVCbG9jayosIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2spOwotICAgIHZpcnR1YWwg
dm9pZCBjb21waWxhdGlvbkRpZENvbXBsZXRlKENvZGVCbG9jayosIENvZGVCbG9jayogcHJvZmls
ZWRERkdDb2RlQmxvY2ssIENvbXBpbGF0aW9uUmVzdWx0KTsKKworICAgIHZvaWQgY29tcGlsYXRp
b25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KENvZGVCbG9jayosIENvZGVCbG9jayogcHJv
ZmlsZWRERkdDb2RlQmxvY2spIGZpbmFsOworICAgIHZvaWQgY29tcGlsYXRpb25EaWRDb21wbGV0
ZShDb2RlQmxvY2sqLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBDb21waWxhdGlv
blJlc3VsdCkgZmluYWw7CiAKIHByaXZhdGU6CisgICAgVG9GVExGb3JPU1JFbnRyeURlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjayhKSVRDb2RlOjpUcmlnZ2VyUmVhc29uKiBmb3JjZWRPU1JFbnRy
eVRyaWdnZXIpOworCiAgICAgSklUQ29kZTo6VHJpZ2dlclJlYXNvbiogbV9mb3JjZWRPU1JFbnRy
eVRyaWdnZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEZvck9TUkVudHJ5SklUQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExGb3JP
U1JFbnRyeUpJVENvZGUuaAppbmRleCAyNjg5ZDNhNzE2Yjc1M2Y1ZDY4MmNlZDBjYzU0NzE1Zjhh
NzU5N2ExLi43YWFlMzUwNGViNTQ4MmJmYzZhZDA0MzhmM2ZmZDNjZjY5NmEzNzgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEZvck9TUkVudHJ5SklUQ29kZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRm9yT1NSRW50cnlKSVRDb2RlLmgKQEAg
LTQwLDEwICs0MCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAvLwogLy8g
LSBFYWNoIE9TUiBlbnRyeSBjb21waWxhdGlvbiBhbGxvd3MgZW50cnkgdGhyb3VnaCBvbmx5IG9u
ZSBieXRlY29kZSBpbmRleC4KIAotY2xhc3MgRm9yT1NSRW50cnlKSVRDb2RlIDogcHVibGljIEZU
TDo6SklUQ29kZSB7CitjbGFzcyBGb3JPU1JFbnRyeUpJVENvZGUgZmluYWwgOiBwdWJsaWMgRlRM
OjpKSVRDb2RlIHsKIHB1YmxpYzoKICAgICBGb3JPU1JFbnRyeUpJVENvZGUoKTsKLSAgICB+Rm9y
T1NSRW50cnlKSVRDb2RlKCk7CisgICAgfkZvck9TUkVudHJ5SklUQ29kZSgpIGZpbmFsOwogICAg
IAogICAgIHZvaWQgaW5pdGlhbGl6ZUVudHJ5QnVmZmVyKFZNJiwgdW5zaWduZWQgbnVtQ2FsbGVl
TG9jYWxzKTsKICAgICBTY3JhdGNoQnVmZmVyKiBlbnRyeUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJu
IG1fZW50cnlCdWZmZXI7IH0KQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZvaWQgY291
bnRFbnRyeUZhaWx1cmUoKSB7IG1fZW50cnlGYWlsdXJlQ291bnQrKzsgfQogICAgIHVuc2lnbmVk
IGVudHJ5RmFpbHVyZUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9lbnRyeUZhaWx1cmVDb3VudDsg
fQogICAgIAotICAgIEZvck9TUkVudHJ5SklUQ29kZSogZnRsRm9yT1NSRW50cnkoKTsKKyAgICBG
b3JPU1JFbnRyeUpJVENvZGUqIGZ0bEZvck9TUkVudHJ5KCkgZmluYWw7CiAgICAgCiBwcml2YXRl
OgogICAgIFNjcmF0Y2hCdWZmZXIqIG1fZW50cnlCdWZmZXI7IC8vIE9ubHkgZm9yIE9TUiBlbnRy
eSBjb2RlIGJsb2Nrcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SklUQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKaW5kZXgg
MDBiYWEyY2I4NzI4MTMyMDgwOGRhZjM0NGIwY2YwNjZiYTIzYTI1Yi4uY2YxNjY3MTRiOTBhMWFh
ZDJkNDk1ZmJmMjU2MGRiOTVkNTg2ZTRmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExKSVRDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExK
SVRDb2RlLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIEZUTCB7CiBjbGFzcyBKSVRDb2Rl
IDogcHVibGljIEpTQzo6SklUQ29kZSB7CiBwdWJsaWM6CiAgICAgSklUQ29kZSgpOwotICAgIH5K
SVRDb2RlKCk7CisgICAgfkpJVENvZGUoKSBvdmVycmlkZTsKIAogICAgIENvZGVQdHI8SlNFbnRy
eVB0clRhZz4gYWRkcmVzc0ZvckNhbGwoQXJpdHlDaGVja01vZGUpIG92ZXJyaWRlOwogICAgIHZv
aWQqIGV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuaAppbmRleCA2NzliYmZm
NjA5OWRmNWRhNWFiMDRmOWQwMGFjZjcwYmVmMTJhNTIyLi5kNWI1NWVmZmFkNTA3MTFmMGVmNDVj
NTFlMTIzMDYxMzVjYzE1NWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEpJVEZpbmFsaXplci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklU
RmluYWxpemVyLmgKQEAgLTQ3LDE0ICs0NywxNCBAQCBwdWJsaWM6CiAgICAgY29uc3QgY2hhciog
bV9jb2RlRGVzY3JpcHRpb247CiB9OwogCi1jbGFzcyBKSVRGaW5hbGl6ZXIgOiBwdWJsaWMgREZH
OjpGaW5hbGl6ZXIgeworY2xhc3MgSklURmluYWxpemVyIGZpbmFsIDogcHVibGljIERGRzo6Rmlu
YWxpemVyIHsKIHB1YmxpYzoKICAgICBKSVRGaW5hbGl6ZXIoREZHOjpQbGFuJik7Ci0gICAgdmly
dHVhbCB+SklURmluYWxpemVyKCk7CisgICAgfkpJVEZpbmFsaXplcigpIGZpbmFsOwogCi0gICAg
c2l6ZV90IGNvZGVTaXplKCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBmaW5hbGl6ZSgpIG92ZXJyaWRl
OwotICAgIGJvb2wgZmluYWxpemVGdW5jdGlvbigpIG92ZXJyaWRlOworICAgIHNpemVfdCBjb2Rl
U2l6ZSgpIGZpbmFsOworICAgIGJvb2wgZmluYWxpemUoKSBmaW5hbDsKKyAgICBib29sIGZpbmFs
aXplRnVuY3Rpb24oKSBmaW5hbDsKICAgICAKICAgICBib29sIGZpbmFsaXplQ29tbW9uKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3BhY2Uu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3BhY2UuaAppbmRleCA0
YzhhODY0MTUwOGZkMGVjOGE1N2ViYjc1YTc1YjUwZDQ2Y2Q4MWY4Li4yOTI3ODQ3MzRhY2M4MDhh
ZDIzMTg4ZmUyZjc4Yzc4NWE5MDRkM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQ29tcGxldGVTdWJzcGFjZS5oCkBAIC0yOSwyMCArMjksMjAgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLWNsYXNzIENvbXBsZXRlU3Vic3BhY2UgOiBwdWJsaWMgU3Vic3BhY2UgeworY2xhc3Mg
Q29tcGxldGVTdWJzcGFjZSBmaW5hbCA6IHB1YmxpYyBTdWJzcGFjZSB7CiBwdWJsaWM6CiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgQ29tcGxldGVTdWJzcGFjZShDU3RyaW5nIG5hbWUsIEhlYXAmLCBI
ZWFwQ2VsbFR5cGUqLCBBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKik7Ci0gICAgSlNfRVhQT1JUX1BS
SVZBVEUgfkNvbXBsZXRlU3Vic3BhY2UoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB+Q29tcGxl
dGVTdWJzcGFjZSgpIGZpbmFsOwogCiAgICAgLy8gSW4gc29tZSBjb2RlIHBhdGhzLCB3ZSBuZWVk
IGl0IHRvIGJlIGEgY29tcGlsZSBlcnJvciB0byBjYWxsIHRoZSB2aXJ0dWFsIHZlcnNpb24gb2Yg
b25lIG9mCiAgICAgLy8gdGhlc2UgZnVuY3Rpb25zLiBUaGF0J3Mgd2h5IHdlIGRvIGZpbmFsIG1l
dGhvZHMgdGhlIG9sZCBzY2hvb2wgd2F5LgogICAgIAogICAgIC8vIEZJWE1FOiBDdXJyZW50bHkg
c3Vic3BhY2VzIHNwZWFrIG9mIEJsb2NrRGlyZWN0b3JpZXMgYXMgImFsbG9jYXRvcnMiLCBidXQg
dGhhdCdzIHRlbXBvcmFyeS4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgxNTU5Ci0gICAgQWxsb2NhdG9yIGFsbG9jYXRvckZvcihzaXplX3QsIEFsbG9j
YXRvckZvck1vZGUpIG92ZXJyaWRlOworICAgIEFsbG9jYXRvciBhbGxvY2F0b3JGb3Ioc2l6ZV90
LCBBbGxvY2F0b3JGb3JNb2RlKSBmaW5hbDsKICAgICBBbGxvY2F0b3IgYWxsb2NhdG9yRm9yTm9u
VmlydHVhbChzaXplX3QsIEFsbG9jYXRvckZvck1vZGUpOwogICAgIAotICAgIHZvaWQqIGFsbG9j
YXRlKFZNJiwgc2l6ZV90LCBHQ0RlZmVycmFsQ29udGV4dCosIEFsbG9jYXRpb25GYWlsdXJlTW9k
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCogYWxsb2NhdGUoVk0mLCBzaXplX3QsIEdDRGVmZXJyYWxD
b250ZXh0KiwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlKSBmaW5hbDsKICAgICB2b2lkKiBhbGxvY2F0
ZU5vblZpcnR1YWwoVk0mLCBzaXplX3QsIEdDRGVmZXJyYWxDb250ZXh0KiwgQWxsb2NhdGlvbkZh
aWx1cmVNb2RlKTsKICAgICB2b2lkKiByZWFsbG9jYXRlUHJlY2lzZUFsbG9jYXRpb25Ob25WaXJ0
dWFsKFZNJiwgSGVhcENlbGwqLCBzaXplX3QsIEdDRGVmZXJyYWxDb250ZXh0KiwgQWxsb2NhdGlv
bkZhaWx1cmVNb2RlKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Zhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9GYXN0TWFsbG9jQWxpZ25lZE1lbW9yeUFsbG9jYXRvci5oCmluZGV4IDM3MmFm
NDFkYjU4ODZmNzE3NmYxYjQ5MmRjOTAwYzIwMWZlYTY3M2YuLjBjZDM4ZjRmNGExMzk2ZGIzNWI4
MGVkZTZhMzEwMGM3NzgyODgxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Zhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvRmFzdE1hbGxvY0FsaWduZWRNZW1vcnlBbGxvY2F0b3IuaApAQCAtMzMs
MTkgKzMzLDE5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBGYXN0TWFsbG9jQWxpZ25l
ZE1lbW9yeUFsbG9jYXRvciA6IHB1YmxpYyBBbGlnbmVkTWVtb3J5QWxsb2NhdG9yIHsKK2NsYXNz
IEZhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxsb2NhdG9yIGZpbmFsIDogcHVibGljIEFsaWduZWRN
ZW1vcnlBbGxvY2F0b3IgewogcHVibGljOgogICAgIEZhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxs
b2NhdG9yKCk7Ci0gICAgfkZhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKCk7CisgICAg
fkZhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKCkgZmluYWw7CiAgICAgCi0gICAgdm9p
ZCogdHJ5QWxsb2NhdGVBbGlnbmVkTWVtb3J5KHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXpl
KSBvdmVycmlkZTsKLSAgICB2b2lkIGZyZWVBbGlnbmVkTWVtb3J5KHZvaWQqKSBvdmVycmlkZTsK
KyAgICB2b2lkKiB0cnlBbGxvY2F0ZUFsaWduZWRNZW1vcnkoc2l6ZV90IGFsaWdubWVudCwgc2l6
ZV90IHNpemUpIGZpbmFsOworICAgIHZvaWQgZnJlZUFsaWduZWRNZW1vcnkodm9pZCopIGZpbmFs
OwogICAgIAotICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCogdHJ5QWxs
b2NhdGVNZW1vcnkoc2l6ZV90KSBvdmVycmlkZTsKLSAgICB2b2lkIGZyZWVNZW1vcnkodm9pZCop
IG92ZXJyaWRlOwotICAgIHZvaWQqIHRyeVJlYWxsb2NhdGVNZW1vcnkodm9pZCosIHNpemVfdCkg
b3ZlcnJpZGU7CisgICAgdm9pZCogdHJ5QWxsb2NhdGVNZW1vcnkoc2l6ZV90KSBmaW5hbDsKKyAg
ICB2b2lkIGZyZWVNZW1vcnkodm9pZCopIGZpbmFsOworICAgIHZvaWQqIHRyeVJlYWxsb2NhdGVN
ZW1vcnkodm9pZCosIHNpemVfdCkgZmluYWw7CiAKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJF
QUtET1dOKQogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0dpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvR2lnYWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmgKaW5kZXggZDQ1MzU0MDUxNjBm
ZTNmY2M5ZmJhNDE1NDJhMDY5MWVhZDZiYWI0NC4uMjA4NDZiNmRjNjZmMTQ5N2E3Njg0N2JmN2Qz
MjUyNGE5NjEzZDFkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR2ln
YWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvR2lnYWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmgKQEAgLTM0LDE5ICszNCwxOSBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgR2lnYWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2Nh
dG9yIDogcHVibGljIEFsaWduZWRNZW1vcnlBbGxvY2F0b3IgeworY2xhc3MgR2lnYWNhZ2VBbGln
bmVkTWVtb3J5QWxsb2NhdG9yIGZpbmFsIDogcHVibGljIEFsaWduZWRNZW1vcnlBbGxvY2F0b3Ig
ewogcHVibGljOgogICAgIEdpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvcihHaWdhY2FnZTo6
S2luZCk7Ci0gICAgfkdpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvcigpOworICAgIH5HaWdh
Y2FnZUFsaWduZWRNZW1vcnlBbGxvY2F0b3IoKSBmaW5hbDsKICAgICAKLSAgICB2b2lkKiB0cnlB
bGxvY2F0ZUFsaWduZWRNZW1vcnkoc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpIG92ZXJy
aWRlOwotICAgIHZvaWQgZnJlZUFsaWduZWRNZW1vcnkodm9pZCopIG92ZXJyaWRlOworICAgIHZv
aWQqIHRyeUFsbG9jYXRlQWxpZ25lZE1lbW9yeShzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6
ZSkgZmluYWw7CisgICAgdm9pZCBmcmVlQWxpZ25lZE1lbW9yeSh2b2lkKikgZmluYWw7CiAgICAg
Ci0gICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBk
dW1wKFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkKiB0cnlBbGxvY2F0ZU1l
bW9yeShzaXplX3QpIG92ZXJyaWRlOwotICAgIHZvaWQgZnJlZU1lbW9yeSh2b2lkKikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCogdHJ5UmVhbGxvY2F0ZU1lbW9yeSh2b2lkKiwgc2l6ZV90KSBvdmVycmlk
ZTsKKyAgICB2b2lkKiB0cnlBbGxvY2F0ZU1lbW9yeShzaXplX3QpIGZpbmFsOworICAgIHZvaWQg
ZnJlZU1lbW9yeSh2b2lkKikgZmluYWw7CisgICAgdm9pZCogdHJ5UmVhbGxvY2F0ZU1lbW9yeSh2
b2lkKiwgc2l6ZV90KSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBHaWdhY2FnZTo6S2luZCBtX2tp
bmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RC
dWlsZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVy
LmgKaW5kZXggMmQwODVhMWY0ZThmYmVhYmM4MzUzM2VjZmU2ZmEyYTI5MTZhMDBmYS4uNWI5ODVk
NDVhNDk3MDBiNGQ3ZTg0OGIxOGY0N2RjM2U3YjhlZTkyMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaApAQCAtMTA4LDcgKzEwOCw3IEBA
IHB1YmxpYzoKICAgICBlbnVtIFNuYXBzaG90VHlwZSB7IEluc3BlY3RvclNuYXBzaG90LCBHQ0Rl
YnVnZ2luZ1NuYXBzaG90IH07CiAKICAgICBIZWFwU25hcHNob3RCdWlsZGVyKEhlYXBQcm9maWxl
ciYsIFNuYXBzaG90VHlwZSA9IFNuYXBzaG90VHlwZTo6SW5zcGVjdG9yU25hcHNob3QpOwotICAg
IH5IZWFwU25hcHNob3RCdWlsZGVyKCk7CisgICAgfkhlYXBTbmFwc2hvdEJ1aWxkZXIoKSBmaW5h
bDsKIAogICAgIHN0YXRpYyB2b2lkIHJlc2V0TmV4dEF2YWlsYWJsZU9iamVjdElkZW50aWZpZXIo
KTsKIApAQCAtMTE2LDE3ICsxMTYsMTcgQEAgcHVibGljOgogICAgIHZvaWQgYnVpbGRTbmFwc2hv
dCgpOwogCiAgICAgLy8gQSByb290IG9yIG1hcmtlZCBjZWxsLgotICAgIHZvaWQgYW5hbHl6ZU5v
ZGUoSlNDZWxsKik7CisgICAgdm9pZCBhbmFseXplTm9kZShKU0NlbGwqKSBmaW5hbDsKIAogICAg
IC8vIEEgcmVmZXJlbmNlIGZyb20gb25lIGNlbGwgdG8gYW5vdGhlci4KLSAgICB2b2lkIGFuYWx5
emVFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVh
c29uKTsKLSAgICB2b2lkIGFuYWx5emVQcm9wZXJ0eU5hbWVFZGdlKEpTQ2VsbCogZnJvbSwgSlND
ZWxsKiB0bywgVW5pcXVlZFN0cmluZ0ltcGwqIHByb3BlcnR5TmFtZSk7Ci0gICAgdm9pZCBhbmFs
eXplVmFyaWFibGVOYW1lRWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIFVuaXF1ZWRTdHJp
bmdJbXBsKiB2YXJpYWJsZU5hbWUpOwotICAgIHZvaWQgYW5hbHl6ZUluZGV4RWRnZShKU0NlbGwq
IGZyb20sIEpTQ2VsbCogdG8sIHVpbnQzMl90IGluZGV4KTsKLQotICAgIHZvaWQgc2V0T3BhcXVl
Um9vdFJlYWNoYWJpbGl0eVJlYXNvbkZvckNlbGwoSlNDZWxsKiwgY29uc3QgY2hhciopOwotICAg
IHZvaWQgc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoSlNDZWxsKiwgdm9pZCopOwotICAgIHZvaWQg
c2V0TGFiZWxGb3JDZWxsKEpTQ2VsbCosIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgYW5hbHl6
ZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFz
b24pIGZpbmFsOworICAgIHZvaWQgYW5hbHl6ZVByb3BlcnR5TmFtZUVkZ2UoSlNDZWxsKiBmcm9t
LCBKU0NlbGwqIHRvLCBVbmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHlOYW1lKSBmaW5hbDsKKyAg
ICB2b2lkIGFuYWx5emVWYXJpYWJsZU5hbWVFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywg
VW5pcXVlZFN0cmluZ0ltcGwqIHZhcmlhYmxlTmFtZSkgZmluYWw7CisgICAgdm9pZCBhbmFseXpl
SW5kZXhFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgdWludDMyX3QgaW5kZXgpIGZpbmFs
OworCisgICAgdm9pZCBzZXRPcGFxdWVSb290UmVhY2hhYmlsaXR5UmVhc29uRm9yQ2VsbChKU0Nl
bGwqLCBjb25zdCBjaGFyKikgZmluYWw7CisgICAgdm9pZCBzZXRXcmFwcGVkT2JqZWN0Rm9yQ2Vs
bChKU0NlbGwqLCB2b2lkKikgZmluYWw7CisgICAgdm9pZCBzZXRMYWJlbEZvckNlbGwoSlNDZWxs
KiwgY29uc3QgU3RyaW5nJikgZmluYWw7CiAKICAgICBTdHJpbmcganNvbigpOwogICAgIFN0cmlu
ZyBqc29uKEZ1bmN0aW9uPGJvb2wgKGNvbnN0IEhlYXBTbmFwc2hvdE5vZGUmKT4gYWxsb3dOb2Rl
Q2FsbGJhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvQWxp
Z25lZE1lbW9yeUFsbG9jYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvQWxp
Z25lZE1lbW9yeUFsbG9jYXRvci5oCmluZGV4IGNkYjc5OTJlMTMyZTU4ZTk1YTU5ZjQxMzY0NDky
ZmUyNzJhMWMxMDQuLjA2YmViNTI0N2YyNWI2Y2Y1M2IzYTgzMjNhYzI4Nzg5ZTlkM2EwMWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0FsaWduZWRNZW1vcnlBbGxv
Y2F0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29BbGlnbmVkTWVtb3J5
QWxsb2NhdG9yLmgKQEAgLTM0LDE5ICszNCwxOSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xh
c3MgSXNvQWxpZ25lZE1lbW9yeUFsbG9jYXRvciA6IHB1YmxpYyBBbGlnbmVkTWVtb3J5QWxsb2Nh
dG9yIHsKK2NsYXNzIElzb0FsaWduZWRNZW1vcnlBbGxvY2F0b3IgZmluYWwgOiBwdWJsaWMgQWxp
Z25lZE1lbW9yeUFsbG9jYXRvciB7CiBwdWJsaWM6CiAgICAgSXNvQWxpZ25lZE1lbW9yeUFsbG9j
YXRvcihDU3RyaW5nKTsKLSAgICB+SXNvQWxpZ25lZE1lbW9yeUFsbG9jYXRvcigpOworICAgIH5J
c29BbGlnbmVkTWVtb3J5QWxsb2NhdG9yKCkgZmluYWw7CiAKLSAgICB2b2lkKiB0cnlBbGxvY2F0
ZUFsaWduZWRNZW1vcnkoc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpIG92ZXJyaWRlOwot
ICAgIHZvaWQgZnJlZUFsaWduZWRNZW1vcnkodm9pZCopIG92ZXJyaWRlOworICAgIHZvaWQqIHRy
eUFsbG9jYXRlQWxpZ25lZE1lbW9yeShzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkgZmlu
YWw7CisgICAgdm9pZCBmcmVlQWxpZ25lZE1lbW9yeSh2b2lkKikgZmluYWw7CiAKLSAgICB2b2lk
IGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXAoUHJpbnRT
dHJlYW0mKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQqIHRyeUFsbG9jYXRlTWVtb3J5KHNpemVf
dCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBmcmVlTWVtb3J5KHZvaWQqKSBvdmVycmlkZTsKLSAgICB2
b2lkKiB0cnlSZWFsbG9jYXRlTWVtb3J5KHZvaWQqLCBzaXplX3QpIG92ZXJyaWRlOworICAgIHZv
aWQqIHRyeUFsbG9jYXRlTWVtb3J5KHNpemVfdCkgZmluYWw7CisgICAgdm9pZCBmcmVlTWVtb3J5
KHZvaWQqKSBmaW5hbDsKKyAgICB2b2lkKiB0cnlSZWFsbG9jYXRlTWVtb3J5KHZvaWQqLCBzaXpl
X3QpIGZpbmFsOwogCiBwcml2YXRlOgogI2lmIEVOQUJMRShNQUxMT0NfSEVBUF9CUkVBS0RPV04p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2UuaAppbmRleCBhMzdiNGJiNDRh
ZWE5YmE2MTFkODA4Mjc4OTIwZTQxNzI0NmMzMTVhLi5hNWY4MTVlMTI4YjI5ZjU5MTgyODRhYzFh
ZTBjMTZiZjgxNTFjY2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9J
c29TdWJzcGFjZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNl
LmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgSXNvQ2VsbFNldDsKIGNsYXNzIElzb1N1YnNwYWNl
IDogcHVibGljIFN1YnNwYWNlIHsKIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBJc29T
dWJzcGFjZShDU3RyaW5nIG5hbWUsIEhlYXAmLCBIZWFwQ2VsbFR5cGUqLCBzaXplX3Qgc2l6ZSwg
dWludDhfdCBudW1iZXJPZkxvd2VyVGllckNlbGxzKTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSB+
SXNvU3Vic3BhY2UoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB+SXNvU3Vic3BhY2UoKSBvdmVy
cmlkZTsKIAogICAgIHNpemVfdCBjZWxsU2l6ZSgpIHsgcmV0dXJuIG1fZGlyZWN0b3J5LmNlbGxT
aXplKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vi
c3BhY2VQZXJWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBl
clZNLmNwcAppbmRleCBjNWUzZTM4ODBiNjM1NDgyODU3YzZlMmNjOWU3NmYwMmMzMzliN2M2Li5m
MzBhMTQzOTI5MzA4NTQzZWExM2VlOTViNjgzNWFhYjBiYzJiZTI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmNwcApAQCAtMzEsNyArMzEsNyBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgSXNvU3Vic3BhY2VQZXJWTTo6QXV0b3JlbW92
aW5nSXNvU3Vic3BhY2UgOiBwdWJsaWMgSXNvU3Vic3BhY2UgeworY2xhc3MgSXNvU3Vic3BhY2VQ
ZXJWTTo6QXV0b3JlbW92aW5nSXNvU3Vic3BhY2UgZmluYWwgOiBwdWJsaWMgSXNvU3Vic3BhY2Ug
ewogcHVibGljOgogICAgIEF1dG9yZW1vdmluZ0lzb1N1YnNwYWNlKElzb1N1YnNwYWNlUGVyVk0m
IHBlclZNLCBDU3RyaW5nIG5hbWUsIEhlYXAmIGhlYXAsIEhlYXBDZWxsVHlwZSogaGVhcENlbGxU
eXBlLCBzaXplX3Qgc2l6ZSkKICAgICAgICAgOiBJc29TdWJzcGFjZShuYW1lLCBoZWFwLCBoZWFw
Q2VsbFR5cGUsIHNpemUsIC8qIG51bWJlck9mTG93ZXJUaWVyQ2VsbHMgKi8gMCkKQEAgLTM5LDcg
KzM5LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAgICAgCi0gICAgfkF1dG9yZW1vdmluZ0lz
b1N1YnNwYWNlKCkKKyAgICB+QXV0b3JlbW92aW5nSXNvU3Vic3BhY2UoKSBmaW5hbAogICAgIHsK
ICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3BlclZNLm1fbG9jayk7CiAgICAgICAg
IG1fcGVyVk0ubV9zdWJzcGFjZVBlclZNLnJlbW92ZSgmc3BhY2UoKS5oZWFwKCkudm0oKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmgKaW5kZXggNDhl
NjgyYjI0Y2UwNzE1YTVlZjBiM2UwMmZjMTE5YWJmNWVmMzcwZi4uNGE5OWE4ODVmOTYxYjk3ZWJi
YTc4YzJhNWI3NWNkNzY0NGE1NmNlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSXNvU3Vic3BhY2VQZXJWTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0lzb1N1YnNwYWNlUGVyVk0uaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIC8v
IHN1cmUgdG8gYmUgbWFpbi10aHJlYWQtb25seS4gQnV0IGlmIGEgY2xhc3MgdHlwaWNhbGx5IGdl
dHMgaW5zdGFudGlhdGVkIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBhdAogLy8gb25jZSwgdGhlbiB0
aGlzIGlzIG5vdCBncmVhdCwgYmVjYXVzZSBjb25jdXJyZW50IGFsbG9jYXRpb25zIHdpbGwgcHJv
YmFibHkgY29udGVuZCBvbiB0aGlzIHRoaW5nJ3MKIC8vIGxvY2suCi1jbGFzcyBJc29TdWJzcGFj
ZVBlclZNIHsKK2NsYXNzIElzb1N1YnNwYWNlUGVyVk0gZmluYWwgewogcHVibGljOgogICAgIHN0
cnVjdCBTdWJzcGFjZVBhcmFtZXRlcnMgewogICAgICAgICBTdWJzcGFjZVBhcmFtZXRlcnMoKSB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFja01lcmdp
bmdDb25zdHJhaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2tNZXJn
aW5nQ29uc3RyYWludC5oCmluZGV4IGU5OTM1NzRmZDkwN2ZlNzZlZTRmODFkNjAzNGQ4YWQ1MDc2
ZjIyNTAuLjY1YzIxM2I2NDU0ZDBiZDk4NmM1MzcxOTAzMWZiZDhkY2RjZjk0MzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFja01lcmdpbmdDb25zdHJhaW50
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrTWVyZ2luZ0NvbnN0
cmFpbnQuaApAQCAtMzIsMTggKzMyLDE3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSGVhcDsK
IGNsYXNzIFNsb3RWaXNpdG9yOwogCi1jbGFzcyBNYXJrU3RhY2tNZXJnaW5nQ29uc3RyYWludCA6
IHB1YmxpYyBNYXJraW5nQ29uc3RyYWludCB7CitjbGFzcyBNYXJrU3RhY2tNZXJnaW5nQ29uc3Ry
YWludCBmaW5hbCA6IHB1YmxpYyBNYXJraW5nQ29uc3RyYWludCB7CiBwdWJsaWM6CiAgICAgTWFy
a1N0YWNrTWVyZ2luZ0NvbnN0cmFpbnQoSGVhcCYpOwotICAgIH5NYXJrU3RhY2tNZXJnaW5nQ29u
c3RyYWludCgpOworICAgIH5NYXJrU3RhY2tNZXJnaW5nQ29uc3RyYWludCgpIGZpbmFsOwogICAg
IAotICAgIGRvdWJsZSBxdWlja1dvcmtFc3RpbWF0ZShTbG90VmlzaXRvciYpIG92ZXJyaWRlOwot
ICAgIAotcHJvdGVjdGVkOgotICAgIHZvaWQgcHJlcGFyZVRvRXhlY3V0ZUltcGwoY29uc3QgQWJz
dHJhY3RMb2NrZXImIGNvbnN0cmFpbnRTb2x2aW5nTG9ja2VyLCBTbG90VmlzaXRvciYpIG92ZXJy
aWRlOwotICAgIHZvaWQgZXhlY3V0ZUltcGwoU2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKKyAgICBk
b3VibGUgcXVpY2tXb3JrRXN0aW1hdGUoU2xvdFZpc2l0b3ImKSBmaW5hbDsKICAgICAKIHByaXZh
dGU6CisgICAgdm9pZCBwcmVwYXJlVG9FeGVjdXRlSW1wbChjb25zdCBBYnN0cmFjdExvY2tlciYg
Y29uc3RyYWludFNvbHZpbmdMb2NrZXIsIFNsb3RWaXNpdG9yJikgZmluYWw7CisgICAgdm9pZCBl
eGVjdXRlSW1wbChTbG90VmlzaXRvciYpIGZpbmFsOworICAgIAogICAgIEhlYXAmIG1faGVhcDsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1NpbXBsZU1hcmtp
bmdDb25zdHJhaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TaW1wbGVNYXJraW5n
Q29uc3RyYWludC5oCmluZGV4IGYwMjE4OGNiZWJmYjhmOTMyNjA1Mzk2MjAzZDQ1ZWRkZDdhN2M1
NGMuLjRmNDNlYWNmMzZkZjIzYTIxNjk2MTljZWQyNzE4ODYxNTg5MzIwZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1NpbXBsZU1hcmtpbmdDb25zdHJhaW50LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2ltcGxlTWFya2luZ0NvbnN0cmFpbnQuaApA
QCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIC8vIFRoaXMgYWxsb3dzIGZvciBhbiBp
bmZvcm1hbCB3YXkgdG8gZGVmaW5lIGNvbnN0cmFpbnRzLiBKdXN0IHBhc3MgYSBsYW1iZGEgdG8g
dGhlIGNvbnN0cnVjdG9yLiBUaGUgb25seQogLy8gZG93bnNpZGUgaXMgdGhhdCB0aGlzIG1ha2Vz
IGl0IGhhcmQgZm9yIGNvbnN0cmFpbnRzIHRvIG92ZXJyaWRlIGFueSBmdW5jdGlvbnMgaW4gTWFy
a2luZ0NvbnN0cmFpbnQKIC8vIG90aGVyIHRoYW4gZXhlY3V0ZUltcGwuIEluIHRob3NlIGNhc2Vz
LCBqdXN0IHN1YmNsYXNzIE1hcmtpbmdDb25zdHJhaW50LgotY2xhc3MgU2ltcGxlTWFya2luZ0Nv
bnN0cmFpbnQgOiBwdWJsaWMgTWFya2luZ0NvbnN0cmFpbnQgeworY2xhc3MgU2ltcGxlTWFya2lu
Z0NvbnN0cmFpbnQgZmluYWwgOiBwdWJsaWMgTWFya2luZ0NvbnN0cmFpbnQgewogcHVibGljOgog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIFNpbXBsZU1hcmtpbmdDb25zdHJhaW50KAogICAgICAgICBD
U3RyaW5nIGFiYnJldmlhdGVkTmFtZSwgQ1N0cmluZyBuYW1lLApAQCAtNTEsMTAgKzUxLDEwIEBA
IHB1YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIH5TaW1w
bGVNYXJraW5nQ29uc3RyYWludCgpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIH5TaW1wbGVNYXJr
aW5nQ29uc3RyYWludCgpIGZpbmFsOwogICAgIAogcHJpdmF0ZToKLSAgICB2b2lkIGV4ZWN1dGVJ
bXBsKFNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7CisgICAgdm9pZCBleGVjdXRlSW1wbChTbG90Vmlz
aXRvciYpIGZpbmFsOwogCiAgICAgOjpGdW5jdGlvbjx2b2lkKFNsb3RWaXNpdG9yJik+IG1fZXhl
Y3V0ZUZ1bmN0aW9uOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaAppbmRleCBlYmRlZDI1NTlmZGJjZTY3OWE5YWY1
ZjI0OThhZThkYzFjNzY3ZjU5Li45NzU3ODJiNzQzOWI3ZWYyMDc0ODY3MjE3OTI4NWVlYTAyMzNl
MmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TcGFjZVRpbWVNdXRh
dG9yU2NoZWR1bGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3BhY2VUaW1l
TXV0YXRvclNjaGVkdWxlci5oCkBAIC0zOCwyNSArMzgsMjUgQEAgY2xhc3MgSGVhcDsKIC8vIHRo
YXQgdGhlIHdvcmxkIGlzIHBhdXNlZCBmb3IgdG8gdGhlIGFtb3VudCBvZiBzcGFjZSB0aGF0IHRo
ZSB3b3JsZCBhbGxvY2F0ZWQgc2luY2UgdGhlIEdDIGN5Y2xlCiAvLyBiZWdhbi4KIAotY2xhc3Mg
U3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlciA6IHB1YmxpYyBNdXRhdG9yU2NoZWR1bGVyIHsKK2Ns
YXNzIFNwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIgZmluYWwgOiBwdWJsaWMgTXV0YXRvclNjaGVk
dWxlciB7CiBwdWJsaWM6CiAgICAgU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcihIZWFwJik7Ci0g
ICAgflNwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIoKTsKKyAgICB+U3BhY2VUaW1lTXV0YXRvclNj
aGVkdWxlcigpIGZpbmFsOwogICAgIAotICAgIFN0YXRlIHN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgU3RhdGUgc3RhdGUoKSBjb25zdCBmaW5hbDsKICAgICAKLSAgICB2b2lkIGJlZ2luQ29s
bGVjdGlvbigpIG92ZXJyaWRlOworICAgIHZvaWQgYmVnaW5Db2xsZWN0aW9uKCkgZmluYWw7CiAg
ICAgCi0gICAgdm9pZCBkaWRTdG9wKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsUmVzdW1lKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRFeGVjdXRlQ29uc3RyYWludHMoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRpZFN0b3AoKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxSZXN1bWUoKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZEV4ZWN1dGVDb25zdHJhaW50cygpIGZpbmFsOwogICAgIAotICAgIE1vbm90b25p
Y1RpbWUgdGltZVRvU3RvcCgpIG92ZXJyaWRlOwotICAgIE1vbm90b25pY1RpbWUgdGltZVRvUmVz
dW1lKCkgb3ZlcnJpZGU7CisgICAgTW9ub3RvbmljVGltZSB0aW1lVG9TdG9wKCkgZmluYWw7Cisg
ICAgTW9ub3RvbmljVGltZSB0aW1lVG9SZXN1bWUoKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIGxv
ZygpIG92ZXJyaWRlOworICAgIHZvaWQgbG9nKCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBlbmRD
b2xsZWN0aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmRDb2xsZWN0aW9uKCkgZmluYWw7CiAg
ICAgCiBwcml2YXRlOgogICAgIGNsYXNzIFNuYXBzaG90OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2No
ZWR1bGVyLmgKaW5kZXggNGVjYTkwODU2YjM0MjZhNmNjNjM1NTI1ZWZiNzA3NTFiNzlhYjMxYS4u
NTg4NjBlZDYwMDhiY2EwZmI1NGUyZDNkN2I0NTlmMzMyNjQxYmU1MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVs
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1l
TXV0YXRvclNjaGVkdWxlci5oCkBAIC0zOSwyNyArMzksMjcgQEAgY2xhc3MgSGVhcDsKIC8vIHRo
YXQgdGhlIHdvcmxkIGlzIHBhdXNlZCBmb3IgdG8gdGhlIGFtb3VudCBvZiBzcGFjZSB0aGF0IHRo
ZSB3b3JsZCBhbGxvY2F0ZWQgc2luY2UgdGhlIEdDIGN5Y2xlCiAvLyBiZWdhbi4KIAotY2xhc3Mg
U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIgOiBwdWJsaWMgTXV0YXRvclNjaGVk
dWxlciB7CitjbGFzcyBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlciBmaW5hbCA6
IHB1YmxpYyBNdXRhdG9yU2NoZWR1bGVyIHsKIHB1YmxpYzoKICAgICBTdG9jaGFzdGljU3BhY2VU
aW1lTXV0YXRvclNjaGVkdWxlcihIZWFwJik7Ci0gICAgflN0b2NoYXN0aWNTcGFjZVRpbWVNdXRh
dG9yU2NoZWR1bGVyKCk7CisgICAgflN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVy
KCkgZmluYWw7CiAgICAgCi0gICAgU3RhdGUgc3RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBT
dGF0ZSBzdGF0ZSgpIGNvbnN0IGZpbmFsOwogICAgIAotICAgIHZvaWQgYmVnaW5Db2xsZWN0aW9u
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBiZWdpbkNvbGxlY3Rpb24oKSBmaW5hbDsKICAgICAKLSAg
ICB2b2lkIGRpZFN0b3AoKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxSZXN1bWUoKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGRpZFJlYWNoVGVybWluYXRpb24oKSBvdmVycmlkZTsKLSAgICB2b2lkIGRp
ZEV4ZWN1dGVDb25zdHJhaW50cygpIG92ZXJyaWRlOwotICAgIHZvaWQgc3luY2hyb25vdXNEcmFp
bmluZ0RpZFN0YWxsKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRTdG9wKCkgZmluYWw7CisgICAg
dm9pZCB3aWxsUmVzdW1lKCkgZmluYWw7CisgICAgdm9pZCBkaWRSZWFjaFRlcm1pbmF0aW9uKCkg
ZmluYWw7CisgICAgdm9pZCBkaWRFeGVjdXRlQ29uc3RyYWludHMoKSBmaW5hbDsKKyAgICB2b2lk
IHN5bmNocm9ub3VzRHJhaW5pbmdEaWRTdGFsbCgpIGZpbmFsOwogICAgIAotICAgIE1vbm90b25p
Y1RpbWUgdGltZVRvU3RvcCgpIG92ZXJyaWRlOwotICAgIE1vbm90b25pY1RpbWUgdGltZVRvUmVz
dW1lKCkgb3ZlcnJpZGU7CisgICAgTW9ub3RvbmljVGltZSB0aW1lVG9TdG9wKCkgZmluYWw7Cisg
ICAgTW9ub3RvbmljVGltZSB0aW1lVG9SZXN1bWUoKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIGxv
ZygpIG92ZXJyaWRlOworICAgIHZvaWQgbG9nKCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBlbmRD
b2xsZWN0aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmRDb2xsZWN0aW9uKCkgZmluYWw7CiAg
ICAgCiBwcml2YXRlOgogICAgIGNsYXNzIFNuYXBzaG90OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvU3luY2hyb25vdXNTdG9wVGhlV29ybGRNdXRhdG9yU2NoZWR1bGVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TeW5jaHJvbm91c1N0b3BUaGVXb3JsZE11
dGF0b3JTY2hlZHVsZXIuaAppbmRleCA0NmFmNDBkNzNkNTEyN2Q1Yzk0OGRjMzdjOGM2NmU0ODk3
ZDYxNzAxLi4zYzZkZjk0Y2M5YzE0YzVmOTgwZDJiNTIwNjhkZTVkOTBhNWJkYmMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TeW5jaHJvbm91c1N0b3BUaGVXb3JsZE11
dGF0b3JTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TeW5jaHJv
bm91c1N0b3BUaGVXb3JsZE11dGF0b3JTY2hlZHVsZXIuaApAQCAtMzUsMTkgKzM1LDE5IEBAIG5h
bWVzcGFjZSBKU0MgewogLy8gdGhhbiBYODYtNjQgYW5kIEFSTTY0LiBUaGlzIHNjaGVkdWxlciBp
cyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgZm9yIHRoZSBjb25jdXJyZW50IEdDJ3MKIC8vIFNwYWNl
VGltZU11dGF0b3JTY2hlZHVsZXIuIEl0IHRlbGxzIHRoZSBHQyB0byBuZXZlciByZXN1bWUgdGhl
IHdvcmxkIG9uY2UgdGhlIEdDIGN5Y2xlIGJlZ2lucy4KIAotY2xhc3MgU3luY2hyb25vdXNTdG9w
VGhlV29ybGRNdXRhdG9yU2NoZWR1bGVyIDogcHVibGljIE11dGF0b3JTY2hlZHVsZXIgeworY2xh
c3MgU3luY2hyb25vdXNTdG9wVGhlV29ybGRNdXRhdG9yU2NoZWR1bGVyIGZpbmFsIDogcHVibGlj
IE11dGF0b3JTY2hlZHVsZXIgewogcHVibGljOgogICAgIFN5bmNocm9ub3VzU3RvcFRoZVdvcmxk
TXV0YXRvclNjaGVkdWxlcigpOwotICAgIH5TeW5jaHJvbm91c1N0b3BUaGVXb3JsZE11dGF0b3JT
Y2hlZHVsZXIoKTsKKyAgICB+U3luY2hyb25vdXNTdG9wVGhlV29ybGRNdXRhdG9yU2NoZWR1bGVy
KCkgZmluYWw7CiAgICAgCi0gICAgU3RhdGUgc3RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBT
dGF0ZSBzdGF0ZSgpIGNvbnN0IGZpbmFsOwogICAgIAotICAgIHZvaWQgYmVnaW5Db2xsZWN0aW9u
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBiZWdpbkNvbGxlY3Rpb24oKSBmaW5hbDsKICAgICAKLSAg
ICBNb25vdG9uaWNUaW1lIHRpbWVUb1N0b3AoKSBvdmVycmlkZTsKLSAgICBNb25vdG9uaWNUaW1l
IHRpbWVUb1Jlc3VtZSgpIG92ZXJyaWRlOworICAgIE1vbm90b25pY1RpbWUgdGltZVRvU3RvcCgp
IGZpbmFsOworICAgIE1vbm90b25pY1RpbWUgdGltZVRvUmVzdW1lKCkgZmluYWw7CiAgICAgCi0g
ICAgdm9pZCBlbmRDb2xsZWN0aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmRDb2xsZWN0aW9u
KCkgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgU3RhdGUgbV9zdGF0ZSB7IE5vcm1hbCB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmgKaW5k
ZXggYzY0ZmMyNDRmMGJjYjJmMzRiZTA1ZWU0MDcwYTk2MGY5YjE1M2E4Yi4uMTVjZDhjNjczNjIw
Yjc5MzQ5YjI2OTFlOWI4NGRhMzUwNTM2Yjk0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0dDQXdhcmVKSVRTdHViUm91dGluZS5oCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNz
IEpJVFN0dWJSb3V0aW5lU2V0OwogY2xhc3MgR0NBd2FyZUpJVFN0dWJSb3V0aW5lIDogcHVibGlj
IEpJVFN0dWJSb3V0aW5lIHsKIHB1YmxpYzoKICAgICBHQ0F3YXJlSklUU3R1YlJvdXRpbmUoY29u
c3QgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiYsIFZNJik7Ci0g
ICAgdmlydHVhbCB+R0NBd2FyZUpJVFN0dWJSb3V0aW5lKCk7CisgICAgfkdDQXdhcmVKSVRTdHVi
Um91dGluZSgpIG92ZXJyaWRlOwogCiAgICAgc3RhdGljIFJlZjxKSVRTdHViUm91dGluZT4gY3Jl
YXRlKGNvbnN0IE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRTdHViUm91dGluZVB0clRhZz4mIGNv
ZGUsIFZNJiB2bSkKICAgICB7CkBAIC04Myw3ICs4Myw3IEBAIGNsYXNzIE1hcmtpbmdHQ0F3YXJl
SklUU3R1YlJvdXRpbmUgOiBwdWJsaWMgR0NBd2FyZUpJVFN0dWJSb3V0aW5lIHsKIHB1YmxpYzoK
ICAgICBNYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lKAogICAgICAgICBjb25zdCBNYWNyb0Fz
c2VtYmxlckNvZGVSZWY8SklUU3R1YlJvdXRpbmVQdHJUYWc+JiwgVk0mLCBjb25zdCBKU0NlbGwq
IG93bmVyLCBjb25zdCBWZWN0b3I8SlNDZWxsKj4mLCBCYWc8Q2FsbExpbmtJbmZvPiYmKTsKLSAg
ICB2aXJ0dWFsIH5NYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lKCk7CisgICAgfk1hcmtpbmdH
Q0F3YXJlSklUU3R1YlJvdXRpbmUoKSBvdmVycmlkZTsKICAgICAKIHByb3RlY3RlZDoKICAgICB2
b2lkIG1hcmtSZXF1aXJlZE9iamVjdHNJbnRlcm5hbChTbG90VmlzaXRvciYpIG92ZXJyaWRlOwpA
QCAtOTcsMTQgKzk3LDE0IEBAIHByaXZhdGU6CiAvLyBUaGUgc3R1YiBoYXMgZXhjZXB0aW9uIGhh
bmRsZXJzIGluIGl0LiBTbyBpdCBjbGVhcnMgaXRzZWxmIGZyb20gZXhjZXB0aW9uCiAvLyBoYW5k
bGluZyB0YWJsZSB3aGVuIGl0IGRpZXMuIEl0IGFsc28gZnJlZXMgc3BhY2UgaW4gQ29kZU9yaWdp
biB0YWJsZQogLy8gZm9yIG5ldyBleGNlcHRpb24gaGFuZGxlcnMgdG8gdXNlIHRoZSBzYW1lIERp
c3Bvc2FibGVDYWxsU2l0ZUluZGV4LgotY2xhc3MgR0NBd2FyZUpJVFN0dWJSb3V0aW5lV2l0aEV4
Y2VwdGlvbkhhbmRsZXIgOiBwdWJsaWMgTWFya2luZ0dDQXdhcmVKSVRTdHViUm91dGluZSB7Citj
bGFzcyBHQ0F3YXJlSklUU3R1YlJvdXRpbmVXaXRoRXhjZXB0aW9uSGFuZGxlciBmaW5hbCA6IHB1
YmxpYyBNYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lIHsKIHB1YmxpYzoKICAgICB0eXBlZGVm
IEdDQXdhcmVKSVRTdHViUm91dGluZSBCYXNlOwogCiAgICAgR0NBd2FyZUpJVFN0dWJSb3V0aW5l
V2l0aEV4Y2VwdGlvbkhhbmRsZXIoY29uc3QgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFN0dWJS
b3V0aW5lUHRyVGFnPiYsIFZNJiwgY29uc3QgSlNDZWxsKiBvd25lciwgY29uc3QgVmVjdG9yPEpT
Q2VsbCo+JiwgQmFnPENhbGxMaW5rSW5mbz4mJiwgQ29kZUJsb2NrKiwgRGlzcG9zYWJsZUNhbGxT
aXRlSW5kZXgpOwogCi0gICAgdm9pZCBhYm91dFRvRGllKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBv
YnNlcnZlWmVyb1JlZkNvdW50KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBhYm91dFRvRGllKCkgZmlu
YWw7CisgICAgdm9pZCBvYnNlcnZlWmVyb1JlZkNvdW50KCkgZmluYWw7CiAKIHByaXZhdGU6CiAg
ICAgQ29kZUJsb2NrKiBtX2NvZGVCbG9ja1dpdGhFeGNlcHRpb25IYW5kbGVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVENvZGUuaAppbmRleCAwMzE4ZmIwZGJhY2VhYmFhZjE2ZDkyYTBjMTM5YTE5
MDQwYTFiMWVkLi42ZmE3MjQ0ZWYwYTA4YzlmMDQ3YTMyMjA0ZjczN2QyOTI4NzE5MDZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaApAQCAtMjI2LDcgKzIyNiw3IEBAIHByb3RlY3Rl
ZDoKICAgICBKSVRDb2RlV2l0aENvZGVSZWYoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgSklUVHlw
ZSwgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGUpOwogCiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+SklU
Q29kZVdpdGhDb2RlUmVmKCk7CisgICAgfkpJVENvZGVXaXRoQ29kZVJlZigpIG92ZXJyaWRlOwog
CiAgICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KSBvdmVy
cmlkZTsKICAgICB2b2lkKiBkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpIG92ZXJy
aWRlOwpAQCAtMjQ1LDcgKzI0NSw3IEBAIHB1YmxpYzoKICAgICBEaXJlY3RKSVRDb2RlKEpJVFR5
cGUpOwogICAgIERpcmVjdEpJVENvZGUoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgQ29kZVB0cjxK
U0VudHJ5UHRyVGFnPiB3aXRoQXJpdHlDaGVjaywgSklUVHlwZSwgSklUQ29kZTo6U2hhcmVBdHRy
aWJ1dGUgPSBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZTo6Tm90U2hhcmVkKTsKICAgICBEaXJlY3RK
SVRDb2RlKENvZGVSZWY8SlNFbnRyeVB0clRhZz4sIENvZGVQdHI8SlNFbnRyeVB0clRhZz4gd2l0
aEFyaXR5Q2hlY2ssIEpJVFR5cGUsIEludHJpbnNpYywgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGUg
PSBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZTo6Tm90U2hhcmVkKTsgLy8gRm9yIGdlbmVyYXRlZCB0
aHVuay4KLSAgICB2aXJ0dWFsIH5EaXJlY3RKSVRDb2RlKCk7CisgICAgfkRpcmVjdEpJVENvZGUo
KSBvdmVycmlkZTsKICAgICAKICAgICBDb2RlUHRyPEpTRW50cnlQdHJUYWc+IGFkZHJlc3NGb3JD
YWxsKEFyaXR5Q2hlY2tNb2RlKSBvdmVycmlkZTsKIApAQCAtMjYwLDcgKzI2MCw3IEBAIGNsYXNz
IE5hdGl2ZUpJVENvZGUgOiBwdWJsaWMgSklUQ29kZVdpdGhDb2RlUmVmIHsKIHB1YmxpYzoKICAg
ICBOYXRpdmVKSVRDb2RlKEpJVFR5cGUpOwogICAgIE5hdGl2ZUpJVENvZGUoQ29kZVJlZjxKU0Vu
dHJ5UHRyVGFnPiwgSklUVHlwZSwgSW50cmluc2ljLCBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZSA9
IEpJVENvZGU6OlNoYXJlQXR0cmlidXRlOjpOb3RTaGFyZWQpOwotICAgIHZpcnR1YWwgfk5hdGl2
ZUpJVENvZGUoKTsKKyAgICB+TmF0aXZlSklUQ29kZSgpIG92ZXJyaWRlOwogCiAgICAgQ29kZVB0
cjxKU0VudHJ5UHRyVGFnPiBhZGRyZXNzRm9yQ2FsbChBcml0eUNoZWNrTW9kZSkgb3ZlcnJpZGU7
CiB9OwpAQCAtMjY4LDkgKzI2OCw5IEBAIHB1YmxpYzoKIGNsYXNzIE5hdGl2ZURPTUpJVENvZGUg
ZmluYWwgOiBwdWJsaWMgTmF0aXZlSklUQ29kZSB7CiBwdWJsaWM6CiAgICAgTmF0aXZlRE9NSklU
Q29kZShDb2RlUmVmPEpTRW50cnlQdHJUYWc+LCBKSVRUeXBlLCBJbnRyaW5zaWMsIGNvbnN0IERP
TUpJVDo6U2lnbmF0dXJlKik7Ci0gICAgdmlydHVhbCB+TmF0aXZlRE9NSklUQ29kZSgpID0gZGVm
YXVsdDsKKyAgICB+TmF0aXZlRE9NSklUQ29kZSgpIGZpbmFsID0gZGVmYXVsdDsKIAotICAgIGNv
bnN0IERPTUpJVDo6U2lnbmF0dXJlKiBzaWduYXR1cmUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX3NpZ25hdHVyZTsgfQorICAgIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJlKiBzaWduYXR1cmUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NpZ25hdHVyZTsgfQogCiBwcml2YXRlOgogICAgIGNv
bnN0IERPTUpJVDo6U2lnbmF0dXJlKiBtX3NpZ25hdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFRodW5rcy5oCmluZGV4IDgxOWRiMWMxMWM4Y2NhNDFlM2ZmYTgyYjA4YjBiZWIzNTFhNDQy
N2EuLjdlODc1YzM3M2U0N2RkYzAxZGIzNDhhZWRmMzUwMzViYWFlMmEzMWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaApAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBKSVRUaHVu
a3MgZmluYWwgOiBwcml2YXRlIFdlYWtIYW5kbGVPd25lciB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSklUVGh1bmtzKCk7Ci0gICAgdmlydHVhbCB+SklUVGh1
bmtzKCk7CisgICAgfkpJVFRodW5rcygpIGZpbmFsOwogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyPEpJVFRodW5rUHRyVGFnPiBjdGlOYXRpdmVDYWxsKFZNJik7CiAgICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyPEpJVFRodW5rUHRyVGFnPiBjdGlOYXRpdmVDb25zdHJ1Y3QoVk0mKTsKQEAgLTY3
LDcgKzY3LDcgQEAgcHVibGljOgogICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGhvc3RGdW5jdGlvblN0
dWIoVk0mLCBUYWdnZWROYXRpdmVGdW5jdGlvbiwgVGh1bmtHZW5lcmF0b3IsIEludHJpbnNpYywg
Y29uc3QgU3RyaW5nJiBuYW1lKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGZpbmFsaXplKEhhbmRs
ZTxVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7CisgICAgdm9pZCBmaW5hbGl6ZShI
YW5kbGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIGZpbmFsOwogICAgIAogICAgIHR5cGVkZWYg
SGFzaE1hcDxUaHVua0dlbmVyYXRvciwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRy
VGFnPj4gQ1RJU3R1Yk1hcDsKICAgICBDVElTdHViTWFwIG1fY3RpU3R1Yk1hcDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2suaAppbmRleCBlYzUzZDc1OTc2YTZhZWNhYjkyMWU3NTg4YzhhMzRi
ODM0Mzc2Y2ZhLi45MTgzYmMxNzNiY2VlZDc4MzI3ZDFlN2MxZThlM2RlNWQ3MzY1MjZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUb0RGR0Rl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCkBAIC0zMywxNyArMzMsMTcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGFibGU7CiAKLWNsYXNzIEpJVFRvREZHRGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrIDogcHVibGljIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
ayB7Ci1wcm90ZWN0ZWQ6Ci0gICAgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2so
KTsKLQorY2xhc3MgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2sgZmluYWwgOiBw
dWJsaWMgRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFs
IH5KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpOworICAgIH5KSVRUb0RGR0Rl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpIGZpbmFsOwogCiAgICAgc3RhdGljIFJlZjxKSVRU
b0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gY3JlYXRlKCk7CiAgICAgCi0gICAgdm9p
ZCBjb21waWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5bmNocm9ub3VzbHkoQ29kZUJsb2NrKiwgQ29k
ZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21waWxh
dGlvbkRpZENvbXBsZXRlKENvZGVCbG9jayosIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxv
Y2ssIENvbXBpbGF0aW9uUmVzdWx0KSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBpbGF0aW9uRGlk
QmVjb21lUmVhZHlBc3luY2hyb25vdXNseShDb2RlQmxvY2sqLCBDb2RlQmxvY2sqIHByb2ZpbGVk
REZHQ29kZUJsb2NrKSBmaW5hbDsKKyAgICB2b2lkIGNvbXBpbGF0aW9uRGlkQ29tcGxldGUoQ29k
ZUJsb2NrKiwgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywgQ29tcGlsYXRpb25SZXN1
bHQpIGZpbmFsOworCitwcml2YXRlOgorICAgIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrKCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaAppbmRleCAwNWJm
N2E0MjJlN2JhN2QwZWFkYjExZjRlMmY5NDViMDA0YjAxN2Y2Li4zNGVmOGM4Zjg0NDk0ZmUyNjRh
MjIxNzY1NjY0ZGE4NzJjODFmNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1BvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9Qb2x5bW9ycGhpY0NhbGxTdHViUm91dGluZS5oCkBAIC04MCwxNCArODAsMTQgQEAg
cHJpdmF0ZToKICAgICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwogfTsKIAotY2xhc3MgUG9seW1v
cnBoaWNDYWxsU3R1YlJvdXRpbmUgOiBwdWJsaWMgR0NBd2FyZUpJVFN0dWJSb3V0aW5lIHsKK2Ns
YXNzIFBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lIGZpbmFsIDogcHVibGljIEdDQXdhcmVKSVRT
dHViUm91dGluZSB7CiBwdWJsaWM6CiAgICAgUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUoCiAg
ICAgICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRTdHViUm91dGluZVB0clRhZz4m
LCBWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsCiAgICAgICAgIENhbGxGcmFtZSogY2FsbGVyRnJh
bWUsIENhbGxMaW5rSW5mbyYsIGNvbnN0IFZlY3RvcjxQb2x5bW9ycGhpY0NhbGxDYXNlPiYsCiAg
ICAgICAgIFVuaXF1ZUFycmF5PHVpbnQzMl90PiYmIGZhc3RDb3VudHMpOwogICAgIAotICAgIHZp
cnR1YWwgflBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lKCk7CisgICAgflBvbHltb3JwaGljQ2Fs
bFN0dWJSb3V0aW5lKCkgZmluYWw7CiAgICAgCiAgICAgQ2FsbFZhcmlhbnRMaXN0IHZhcmlhbnRz
KCkgY29uc3Q7CiAgICAgYm9vbCBoYXNFZGdlcygpIGNvbnN0OwpAQCAtMTAyLDEyICsxMDIsMTEg
QEAgcHVibGljOgogICAgICAgICAgICAgZnVuY3Rvcih2YXJpYW50LmdldCgpKTsKICAgICB9CiAK
LSAgICBib29sIHZpc2l0V2VhayhWTSYpIG92ZXJyaWRlOwotCi1wcm90ZWN0ZWQ6Ci0gICAgdm9p
ZCBtYXJrUmVxdWlyZWRPYmplY3RzSW50ZXJuYWwoU2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKKyAg
ICBib29sIHZpc2l0V2VhayhWTSYpIGZpbmFsOwogCiBwcml2YXRlOgorICAgIHZvaWQgbWFya1Jl
cXVpcmVkT2JqZWN0c0ludGVybmFsKFNsb3RWaXNpdG9yJikgZmluYWw7CisKICAgICBWZWN0b3I8
V3JpdGVCYXJyaWVyPEpTQ2VsbD4sIDI+IG1fdmFyaWFudHM7CiAgICAgVW5pcXVlQXJyYXk8dWlu
dDMyX3Q+IG1fZmFzdENvdW50czsKICAgICBCYWc8UG9seW1vcnBoaWNDYWxsTm9kZT4gbV9jYWxs
Tm9kZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDY4NTMzZWJmMGY4ZmU2MzU4NjVjMzVkOWY0
NzczYTlmODllZjUyZGIuLjQyMjU3ZDZmMjAyN2M5NTU3MGQ5MmZlOWRjNWZlZGU0Y2NiZTQzYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC05NzMsMjYgKzk3MywyNiBAQCBzdGF0aWMgYm9vbCBm
ZXRjaFNjcmlwdEZyb21Mb2NhbEZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgVmVj
dG9yPGNoYXI+JgogICAgIHJldHVybiB0cnVlOwogfQogCi1jbGFzcyBTaGVsbFNvdXJjZVByb3Zp
ZGVyIDogcHVibGljIFN0cmluZ1NvdXJjZVByb3ZpZGVyIHsKK2NsYXNzIFNoZWxsU291cmNlUHJv
dmlkZXIgZmluYWwgOiBwdWJsaWMgU3RyaW5nU291cmNlUHJvdmlkZXIgewogcHVibGljOgogICAg
IHN0YXRpYyBSZWY8U2hlbGxTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgc291
cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsLCBjb25zdCBU
ZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3Vy
Y2VUeXBlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hlbGxTb3VyY2VQ
cm92aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9u
LCBzb3VyY2VUeXBlKSk7CiAgICAgfQogCi0gICAgflNoZWxsU291cmNlUHJvdmlkZXIoKQorICAg
IH5TaGVsbFNvdXJjZVByb3ZpZGVyKCkgZmluYWwKICAgICB7CiAgICAgICAgIGNvbW1pdENhY2hl
ZEJ5dGVjb2RlKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBjYWNoZWRC
eXRlY29kZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBjYWNo
ZWRCeXRlY29kZSgpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBpZiAoIW1fY2FjaGVkQnl0
ZWNvZGUpCiAgICAgICAgICAgICBsb2FkQnl0ZWNvZGUoKTsKICAgICAgICAgcmV0dXJuIG1fY2Fj
aGVkQnl0ZWNvZGUuY29weVJlZigpOwogICAgIH0KIAotICAgIHZvaWQgdXBkYXRlQ2FjaGUoY29u
c3QgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNv
ZGUmLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIGNvbnN0IFVubGlua2VkRnVuY3Rpb25D
b2RlQmxvY2sqIGNvZGVCbG9jaykgY29uc3Qgb3ZlcnJpZGUKKyAgICB2b2lkIHVwZGF0ZUNhY2hl
KGNvbnN0IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBjb25zdCBTb3Vy
Y2VDb2RlJiwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBjb25zdCBVbmxpbmtlZEZ1bmN0
aW9uQ29kZUJsb2NrKiBjb2RlQmxvY2spIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBpZiAo
IWNhY2hlRW5hYmxlZCgpIHx8ICFtX2NhY2hlZEJ5dGVjb2RlKQogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMTAwMiw3ICsxMDAyLDcgQEAgcHVibGljOgogICAgICAgICAgICAgbV9jYWNoZWRCeXRl
Y29kZS0+YWRkRnVuY3Rpb25VcGRhdGUoZXhlY3V0YWJsZSwga2luZCwgKmNhY2hlZEJ5dGVjb2Rl
KTsKICAgICB9CiAKLSAgICB2b2lkIGNhY2hlQnl0ZWNvZGUoY29uc3QgQnl0ZWNvZGVDYWNoZUdl
bmVyYXRvciYgZ2VuZXJhdG9yKSBjb25zdCBvdmVycmlkZQorICAgIHZvaWQgY2FjaGVCeXRlY29k
ZShjb25zdCBCeXRlY29kZUNhY2hlR2VuZXJhdG9yJiBnZW5lcmF0b3IpIGNvbnN0IGZpbmFsCiAg
ICAgewogICAgICAgICBpZiAoIWNhY2hlRW5hYmxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMTAxMyw3ICsxMDEzLDcgQEAgcHVibGljOgogICAgICAgICAgICAgbV9jYWNoZWRCeXRlY29k
ZS0+YWRkR2xvYmFsVXBkYXRlKCp1cGRhdGUpOwogICAgIH0KIAotICAgIHZvaWQgY29tbWl0Q2Fj
aGVkQnl0ZWNvZGUoKSBjb25zdCBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0Q2FjaGVkQnl0ZWNv
ZGUoKSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKCFjYWNoZUVuYWJsZWQoKSB8fCAh
bV9jYWNoZWRCeXRlY29kZSB8fCAhbV9jYWNoZWRCeXRlY29kZS0+aGFzVXBkYXRlcygpKQogICAg
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9MZXhlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAppbmRl
eCA5YzE1NTRhMDhhOWZlYTg5YjczMmUxY2I2OGEwMzNkN2MyMDgxNzEwLi43ZGZiNzZhYmJhODQw
MzFhZWM1Yjc2ZTJjMGYwNTM3NDU1ZjlkNjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL0xleGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L0xleGVyLmNwcApAQCAtMTAyOCw3ICsxMDI4LDcgQEAgdGVtcGxhdGUgPGJvb2wgc2hvdWxkQ3Jl
YXRlSWRlbnRpZmllcj4gQUxXQVlTX0lOTElORSBKU1Rva2VuVHlwZSBMZXhlcjxVQ2hhcj46OnAK
IAogICAgIGNvbnN0IFVDaGFyKiBpZGVudGlmaWVyU3RhcnQgPSBjdXJyZW50U291cmNlUHRyKCk7
CiAgICAgVUNoYXIgb3JBbGxDaGFycyA9IDA7Ci0gICAgQVNTRVJUKGlzU2luZ2xlQ2hhcmFjdGVy
SWRlbnRTdGFydChtX2N1cnJlbnQpIHx8IFUxNl9JU19TVVJST0dBVEUobV9jdXJyZW50KSB8fCBt
X2N1cnJlbnQgPT0gJ1xcJyk7CisgICAgQVNTRVJUX1VOVVNFRChpc1NpbmdsZUNoYXJhY3Rlcklk
ZW50U3RhcnQsIGlzU2luZ2xlQ2hhcmFjdGVySWRlbnRTdGFydChtX2N1cnJlbnQpIHx8IFUxNl9J
U19TVVJST0dBVEUobV9jdXJyZW50KSB8fCBtX2N1cnJlbnQgPT0gJ1xcJyk7CiAgICAgd2hpbGUg
KGlzU2luZ2xlQ2hhcmFjdGVySWRlbnRQYXJ0KG1fY3VycmVudCkpIHsKICAgICAgICAgb3JBbGxD
aGFycyB8PSBtX2N1cnJlbnQ7CiAgICAgICAgIHNoaWZ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEZXN0cnVjdGlibGVPYmplY3RIZWFw
Q2VsbFR5cGUuaAppbmRleCAzMzM5ZjYwOGY1NjgxNTZiYzY0NWU3OTBiOGY1NTBmZTc1MzFhMmRj
Li43N2Q1ZjA4YzI0NGVmOTdmZGM3ZjQ5OGRhODQyOTgxY2Q4YmFmNWZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxs
VHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGVzdHJ1Y3RpYmxl
T2JqZWN0SGVhcENlbGxUeXBlLmgKQEAgLTI5LDEzICsyOSwxMyBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotY2xhc3MgSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUgOiBwdWJsaWMgSGVh
cENlbGxUeXBlIHsKK2NsYXNzIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlIGZpbmFs
IDogcHVibGljIEhlYXBDZWxsVHlwZSB7CiBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
SlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUoKTsKLSAgICBKU19FWFBPUlRfUFJJVkFU
RSB2aXJ0dWFsIH5KU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSgpOworICAgIEpTX0VY
UE9SVF9QUklWQVRFIH5KU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSgpIGZpbmFsOwog
ICAgIAotICAgIHZvaWQgZmluaXNoU3dlZXAoTWFya2VkQmxvY2s6OkhhbmRsZSYsIEZyZWVMaXN0
Kikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkZXN0cm95KFZNJiwgSlNDZWxsKikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBmaW5pc2hTd2VlcChNYXJrZWRCbG9jazo6SGFuZGxlJiwgRnJlZUxpc3QqKSBmaW5h
bDsKKyAgICB2b2lkIGRlc3Ryb3koVk0mLCBKU0NlbGwqKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2lt
cGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmgKaW5kZXggNzYyNWY3ZDYwY2Y5NDA0YjQwZDI1
YWMyZTFjYmNjMzY5YWQ3YmE2Zi4uZjdlNTBiZmIzZDEwYzcyMjcxNThiYmFhZjE0ZGE1OTk0ZGE5
N2ZlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlw
ZWRBcnJheUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
aW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5oCkBAIC00NiwyMCArNDYsMjAgQEAgbmFtZXNwYWNl
IEpTQyB7CiAvLyAgIGFscmVhZHkgYmVlbiBjcmVhdGVkIGFuZCBpdCBkaWRuJ3QgZGllLCB0aGVu
IHlvdSBnZXQgdGhlIHNhbWUKIC8vICAgb25lLgogCi1jbGFzcyBTaW1wbGVUeXBlZEFycmF5Q29u
dHJvbGxlciA6IHB1YmxpYyBUeXBlZEFycmF5Q29udHJvbGxlciB7CitjbGFzcyBTaW1wbGVUeXBl
ZEFycmF5Q29udHJvbGxlciBmaW5hbCA6IHB1YmxpYyBUeXBlZEFycmF5Q29udHJvbGxlciB7CiBw
dWJsaWM6CiAgICAgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoKTsKLSAgICB2aXJ0dWFsIH5T
aW1wbGVUeXBlZEFycmF5Q29udHJvbGxlcigpOworICAgIH5TaW1wbGVUeXBlZEFycmF5Q29udHJv
bGxlcigpIGZpbmFsOwogICAgIAotICAgIEpTQXJyYXlCdWZmZXIqIHRvSlMoSlNHbG9iYWxPYmpl
Y3QqLCBKU0dsb2JhbE9iamVjdCosIEFycmF5QnVmZmVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBy
ZWdpc3RlcldyYXBwZXIoSlNHbG9iYWxPYmplY3QqLCBBcnJheUJ1ZmZlciosIEpTQXJyYXlCdWZm
ZXIqKSBvdmVycmlkZTsKLSAgICBib29sIGlzQXRvbWljc1dhaXRBbGxvd2VkT25DdXJyZW50VGhy
ZWFkKCkgb3ZlcnJpZGU7CisgICAgSlNBcnJheUJ1ZmZlciogdG9KUyhKU0dsb2JhbE9iamVjdCos
IEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlCdWZmZXIqKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVy
V3JhcHBlcihKU0dsb2JhbE9iamVjdCosIEFycmF5QnVmZmVyKiwgSlNBcnJheUJ1ZmZlciopIGZp
bmFsOworICAgIGJvb2wgaXNBdG9taWNzV2FpdEFsbG93ZWRPbkN1cnJlbnRUaHJlYWQoKSBmaW5h
bDsKIAogcHJpdmF0ZToKLSAgICBjbGFzcyBKU0FycmF5QnVmZmVyT3duZXIgOiBwdWJsaWMgV2Vh
a0hhbmRsZU93bmVyIHsKKyAgICBjbGFzcyBKU0FycmF5QnVmZmVyT3duZXIgZmluYWwgOiBwdWJs
aWMgV2Vha0hhbmRsZU93bmVyIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIGJvb2wgaXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4
dCwgU2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiogcmVhc29uKSBvdmVycmlkZTsKLSAgICAgICAg
dm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KSBv
dmVycmlkZTsKKyAgICAgICAgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBTbG90VmlzaXRvciYsIGNvbnN0IGNo
YXIqKiByZWFzb24pIGZpbmFsOworICAgICAgICB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIGZpbmFsOwogICAgIH07CiAKICAgICBKU0FycmF5
QnVmZmVyT3duZXIgbV9vd25lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmgKaW5kZXggZjY5NjQ4MGE3OTkyNDIwOWM0YjVkMWM3MjljZjliMmQyYzIwY2RhNi4uYTky
NDM1ZGU5NzMzZmFiNzVmNDMxYTI1NjE0YjFhNGVmZjg3NWU5ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTk2LDI2ICs5NiwyNiBAQCBzdHJ1Y3QgUHJv
cGVydHlNYXBFbnRyeSB7CiAgICAgfQogfTsKIAotY2xhc3MgU3RydWN0dXJlRmlyZURldGFpbCA6
IHB1YmxpYyBGaXJlRGV0YWlsIHsKK2NsYXNzIFN0cnVjdHVyZUZpcmVEZXRhaWwgZmluYWwgOiBw
dWJsaWMgRmlyZURldGFpbCB7CiBwdWJsaWM6CiAgICAgU3RydWN0dXJlRmlyZURldGFpbChjb25z
dCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgOiBtX3N0cnVjdHVyZShzdHJ1Y3R1cmUp
CiAgICAgewogICAgIH0KICAgICAKLSAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0IGZpbmFs
OwogCiBwcml2YXRlOgogICAgIGNvbnN0IFN0cnVjdHVyZSogbV9zdHJ1Y3R1cmU7CiB9OwogCi1j
bGFzcyBEZWZlcnJlZFN0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50RmlyZSA6IHB1YmxpYyBE
ZWZlcnJlZFdhdGNocG9pbnRGaXJlIHsKK2NsYXNzIERlZmVycmVkU3RydWN0dXJlVHJhbnNpdGlv
bldhdGNocG9pbnRGaXJlIGZpbmFsIDogcHVibGljIERlZmVycmVkV2F0Y2hwb2ludEZpcmUgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERlZmVycmVkU3RydWN0dXJlVHJhbnNpdGlvbldhdGNo
cG9pbnRGaXJlKTsKIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBEZWZlcnJlZFN0cnVj
dHVyZVRyYW5zaXRpb25XYXRjaHBvaW50RmlyZShWTSYsIFN0cnVjdHVyZSopOwotICAgIEpTX0VY
UE9SVF9QUklWQVRFIH5EZWZlcnJlZFN0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50RmlyZSgp
OworICAgIEpTX0VYUE9SVF9QUklWQVRFIH5EZWZlcnJlZFN0cnVjdHVyZVRyYW5zaXRpb25XYXRj
aHBvaW50RmlyZSgpIGZpbmFsOwogICAgIAotICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYgb3V0
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3Qg
ZmluYWw7CiAKICAgICBjb25zdCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc3RydWN0dXJlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dlYWtHQ01hcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha0dDTWFw
LmgKaW5kZXggMzM4NWMyMGQ5MDZhYWZiZTAyYjAzMDgyYmYxOTFjMTZhNGU2NGIyZS4uODhlZmQ4
NjU5NGUxN2JiMmRlZjNjNzQ3NThlYTlhZWRiNDZiODU2YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha0dDTWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvV2Vha0dDTWFwLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBLZXlBcmcsIHR5cGVuYW1lIFZhbHVlQXJnLCB0eXBlbmFtZSBIYXNoQXJn
ID0gdHlwZW5hbWUgRGVmYXVsdEhhc2g8S2V5QXJnPjo6SGFzaCwKICAgICB0eXBlbmFtZSBLZXlU
cmFpdHNBcmcgPSBIYXNoVHJhaXRzPEtleUFyZz4+Ci1jbGFzcyBXZWFrR0NNYXAgOiBwdWJsaWMg
V2Vha0dDTWFwQmFzZSB7CitjbGFzcyBXZWFrR0NNYXAgZmluYWwgOiBwdWJsaWMgV2Vha0dDTWFw
QmFzZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgdHlwZWRlZiBXZWFrPFZh
bHVlQXJnPiBWYWx1ZVR5cGU7CiAgICAgdHlwZWRlZiBIYXNoTWFwPEtleUFyZywgVmFsdWVUeXBl
LCBIYXNoQXJnLCBLZXlUcmFpdHNBcmc+IEhhc2hNYXBUeXBlOwpAQCAtNTIsNyArNTIsNyBAQCBw
dWJsaWM6CiAgICAgdHlwZWRlZiB0eXBlbmFtZSBIYXNoTWFwVHlwZTo6Y29uc3RfaXRlcmF0b3Ig
Y29uc3RfaXRlcmF0b3I7CiAKICAgICBleHBsaWNpdCBXZWFrR0NNYXAoVk0mKTsKLSAgICB+V2Vh
a0dDTWFwKCk7CisgICAgfldlYWtHQ01hcCgpIGZpbmFsOwogCiAgICAgVmFsdWVBcmcqIGdldChj
b25zdCBLZXlUeXBlJiBrZXkpIGNvbnN0CiAgICAgewpAQCAtOTEsNyArOTEsNyBAQCBwdWJsaWM6
CiAKICAgICBpbmxpbmUgYm9vbCBjb250YWlucyhjb25zdCBLZXlUeXBlJiBrZXkpIGNvbnN0Owog
Ci0gICAgdm9pZCBwcnVuZVN0YWxlRW50cmllcygpIG92ZXJyaWRlOworICAgIHZvaWQgcHJ1bmVT
dGFsZUVudHJpZXMoKSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBIYXNoTWFwVHlwZSBtX21hcDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21FbnRyeVBsYW4uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21FbnRyeVBsYW4uaAppbmRleCBiNDlkYzJi
MTU5MTJkZTk2NmNkODg2YTY0NzQ4ZjAxYmM3YzJmNDQ2Li5iMDAwZjhiYTIyOGE3MDdlNGNhMzNk
ZmM2NTYxOGY4YzhmZjAwODA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtRW50cnlQbGFuLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUVu
dHJ5UGxhbi5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICBFbnRyeVBsYW4oQ29udGV4
dCosIFJlZjxNb2R1bGVJbmZvcm1hdGlvbj4sIEFzeW5jV29yaywgQ29tcGxldGlvblRhc2smJik7
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgRW50cnlQbGFuKENvbnRleHQqLCBWZWN0b3I8dWludDhf
dD4mJiwgQXN5bmNXb3JrLCBDb21wbGV0aW9uVGFzayYmKTsKIAotICAgIHZpcnR1YWwgfkVudHJ5
UGxhbigpID0gZGVmYXVsdDsKKyAgICB+RW50cnlQbGFuKCkgb3ZlcnJpZGUgPSBkZWZhdWx0Owog
CiAgICAgdm9pZCBwcmVwYXJlKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399078</attachid>
            <date>2020-05-11 17:47:13 -0700</date>
            <delta_ts>2020-05-12 11:12:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211743-20200511174712.patch</filename>
            <type>text/plain</type>
            <size>84301</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
OWNjODYyZWZhNDUyN2VkZjA0ZTM4MDRiYjIxODhjZDU4NTM2OTYyLi43NTZjOTgxZmQ3MjFjNjBj
OGM5MGIxOTUyNDQ3ODA1MjBiMWQ1ZTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3OCBAQAorMjAyMC0wNS0xMSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW2NsYW5nLXRpZHldIFJ1biBtb2Rlcm5pemUtdXNlLW92ZXJyaWRl
IG92ZXIgSlNDLCB0aGVuIGVuc3VyZSBhcyBtdWNoIGFzIHBvc3NpYmxlIGlzIGZpbmFsCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE3NDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU1Njcmlw
dFJlZi5jcHA6CisgICAgICAgICogYjMvQjNBcmd1bWVudFJlZ1ZhbHVlLmg6CisgICAgICAgICog
YjMvQjNBdG9taWNWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzQ0NhbGxWYWx1ZS5oOgorICAgICAg
ICAqIGIzL0IzQ2hlY2tTcGVjaWFsLmg6CisgICAgICAgICogYjMvQjNDaGVja1ZhbHVlLmg6Cisg
ICAgICAgICogYjMvQjNDb25zdDMyVmFsdWUuaDoKKyAgICAgICAgKiBiMy9CM0NvbnN0NjRWYWx1
ZS5oOgorICAgICAgICAqIGIzL0IzQ29uc3REb3VibGVWYWx1ZS5oOgorICAgICAgICAqIGIzL0Iz
Q29uc3RGbG9hdFZhbHVlLmg6CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5oOgorICAgICAg
ICAqIGIzL0IzRXh0cmFjdFZhbHVlLmg6CisgICAgICAgICogYjMvQjNGZW5jZVZhbHVlLmg6Cisg
ICAgICAgICogYjMvQjNNZW1vcnlWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzUGF0Y2hwb2ludFNw
ZWNpYWwuaDoKKyAgICAgICAgKiBiMy9CM1BhdGNocG9pbnRWYWx1ZS5oOgorICAgICAgICAqIGIz
L0IzU2xvdEJhc2VWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzU3RhY2ttYXBTcGVjaWFsLmg6Cisg
ICAgICAgICogYjMvQjNTdGFja21hcFZhbHVlLmg6CisgICAgICAgICogYjMvQjNTd2l0Y2hWYWx1
ZS5oOgorICAgICAgICAqIGIzL0IzVXBzaWxvblZhbHVlLmg6CisgICAgICAgICogYjMvQjNWYXJp
YWJsZVZhbHVlLmg6CisgICAgICAgICogYjMvQjNXYXNtQWRkcmVzc1ZhbHVlLmg6CisgICAgICAg
ICogYjMvQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJDQ2Fs
bFNwZWNpYWwuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyUHJpbnRTcGVjaWFsLmg6CisgICAgICAg
ICogYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuaDoKKyAgICAgICAgKiBieXRlY29kZS9HZXR0ZXJT
ZXR0ZXJBY2Nlc3NDYXNlLmg6CisgICAgICAgICogYnl0ZWNvZGUvSW5zdGFuY2VPZkFjY2Vzc0Nh
c2UuaDoKKyAgICAgICAgKiBieXRlY29kZS9JbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlLmg6Cisg
ICAgICAgICogYnl0ZWNvZGUvTW9kdWxlTmFtZXNwYWNlQWNjZXNzQ2FzZS5oOgorICAgICAgICAq
IGJ5dGVjb2RlL1Byb3h5YWJsZUFjY2Vzc0Nhc2UuaDoKKyAgICAgICAgKiBieXRlY29kZS9XYXRj
aHBvaW50Lmg6CisgICAgICAgICogZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5oOgorICAgICAgICAq
IGRmZy9ERkdHcmFwaC5oOgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlLmg6CisgICAgICAgICog
ZGZnL0RGR0pJVEZpbmFsaXplci5oOgorICAgICAgICAqIGRmZy9ERkdUb0ZUTERlZmVycmVkQ29t
cGlsYXRpb25DYWxsYmFjay5oOgorICAgICAgICAqIGRmZy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVm
ZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgICogZnRsL0ZUTEZvck9TUkVudHJ5
SklUQ29kZS5oOgorICAgICAgICAqIGZ0bC9GVExKSVRDb2RlLmg6CisgICAgICAgICogZnRsL0ZU
TEpJVEZpbmFsaXplci5oOgorICAgICAgICAqIGhlYXAvQ29tcGxldGVTdWJzcGFjZS5oOgorICAg
ICAgICAqIGhlYXAvRmFzdE1hbGxvY0FsaWduZWRNZW1vcnlBbGxvY2F0b3IuaDoKKyAgICAgICAg
KiBoZWFwL0dpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvci5oOgorICAgICAgICAqIGhlYXAv
SGVhcFNuYXBzaG90QnVpbGRlci5oOgorICAgICAgICAqIGhlYXAvSXNvQWxpZ25lZE1lbW9yeUFs
bG9jYXRvci5oOgorICAgICAgICAqIGhlYXAvSXNvU3Vic3BhY2UuaDoKKyAgICAgICAgKiBoZWFw
L0lzb1N1YnNwYWNlUGVyVk0uY3BwOgorICAgICAgICAqIGhlYXAvSXNvU3Vic3BhY2VQZXJWTS5o
OgorICAgICAgICAqIGhlYXAvTWFya1N0YWNrTWVyZ2luZ0NvbnN0cmFpbnQuaDoKKyAgICAgICAg
KiBoZWFwL1NpbXBsZU1hcmtpbmdDb25zdHJhaW50Lmg6CisgICAgICAgICogaGVhcC9TcGFjZVRp
bWVNdXRhdG9yU2NoZWR1bGVyLmg6CisgICAgICAgICogaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1l
TXV0YXRvclNjaGVkdWxlci5oOgorICAgICAgICAqIGhlYXAvU3luY2hyb25vdXNTdG9wVGhlV29y
bGRNdXRhdG9yU2NoZWR1bGVyLmg6CisgICAgICAgICogaml0L0dDQXdhcmVKSVRTdHViUm91dGlu
ZS5oOgorICAgICAgICAqIGppdC9KSVRDb2RlLmg6CisgICAgICAgICogaml0L0pJVFRodW5rcy5o
OgorICAgICAgICAqIGppdC9KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oOgor
ICAgICAgICAqIGppdC9Qb2x5bW9ycGhpY0NhbGxTdHViUm91dGluZS5oOgorICAgICAgICAqIGpz
Yy5jcHA6CisgICAgICAgICogcGFyc2VyL0xleGVyLmNwcDogQWRkcmVzcyB3YXJuaW5nLgorICAg
ICAgICAqIHJ1bnRpbWUvSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmg6CisgICAgICAgICogcnVu
dGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKiBydW50aW1lL1dlYWtHQ01hcC5oOgorICAgICAg
ICAqIHdhc20vV2FzbUVudHJ5UGxhbi5oOgorCiAyMDIwLTA1LTEwICBSb3NzIEtpcnNsaW5nICA8
cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbY2xhbmctdGlkeV0gUnVuIG1vZGVy
bml6ZS11c2UtbnVsbHB0ciBvdmVyIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2Ny
aXB0UmVmLmNwcAppbmRleCBiYjk2ZWJjY2U2MmNkNGVlZDAwNmQ0NDI3ZTc2MGEyZWQxOWFjMWZm
Li5mMTI4YzI0MTczYzFkYjgxMmZkZDcxNWIxYWUyMzE1ZDk1NDU5MjMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcApAQCAtMzksMTkgKzM5LDE5IEBACiAKIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKLXN0cnVjdCBPcGFxdWVKU1NjcmlwdCA6IHB1YmxpYyBTb3Vy
Y2VQcm92aWRlciB7CitzdHJ1Y3QgT3BhcXVlSlNTY3JpcHQgZmluYWwgOiBwdWJsaWMgU291cmNl
UHJvdmlkZXIgewogcHVibGljOgogICAgIHN0YXRpYyBXVEY6OlJlZjxPcGFxdWVKU1NjcmlwdD4g
Y3JlYXRlKFZNJiB2bSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVy
bCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCiAgICAgewog
ICAgICAgICByZXR1cm4gV1RGOjphZG9wdFJlZigqbmV3IE9wYXF1ZUpTU2NyaXB0KHZtLCBzb3Vy
Y2VPcmlnaW4sIFdURk1vdmUodXJsKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzb3VyY2UpKTsKICAg
ICB9CiAKLSAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB1bnNpZ25lZCBo
YXNoKCkgY29uc3QgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVybiBtX3NvdXJjZS5nZXQoKS5o
YXNoKCk7CiAgICAgfQogCi0gICAgU3RyaW5nVmlldyBzb3VyY2UoKSBjb25zdCBvdmVycmlkZQor
ICAgIFN0cmluZ1ZpZXcgc291cmNlKCkgY29uc3QgZmluYWwKICAgICB7CiAgICAgICAgIHJldHVy
biBtX3NvdXJjZS5nZXQoKTsKICAgICB9CkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAg
ewogICAgIH0KIAotICAgIHZpcnR1YWwgfk9wYXF1ZUpTU2NyaXB0KCkgeyB9CisgICAgfk9wYXF1
ZUpTU2NyaXB0KCkgZmluYWwgeyB9CiAKICAgICBWTSYgbV92bTsKICAgICBSZWY8U3RyaW5nSW1w
bD4gbV9zb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNBcmd1
bWVudFJlZ1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNBcmd1bWVudFJlZ1Zh
bHVlLmgKaW5kZXggODc5ZTAxY2JlZGVjZGYwYWQ0OGYyYmM4MWFiNjA4YmI1YmVlOGY0ZS4uMWRl
NWI1ZGZkMmQ1YzgzZjM1NGJhYjQ5NTQxNDVjYTM4ZmJlOTdlZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQXJndW1lbnRSZWdWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0FyZ3VtZW50UmVnVmFsdWUuaApAQCAtMzIsMjAgKzMyLDE5IEBACiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFU
RSBBcmd1bWVudFJlZ1ZhbHVlIDogcHVibGljIFZhbHVlIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklW
QVRFIEFyZ3VtZW50UmVnVmFsdWUgZmluYWwgOiBwdWJsaWMgVmFsdWUgewogcHVibGljOgogICAg
IHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IEFyZ3VtZW50
UmVnOyB9CiAgICAgCi0gICAgfkFyZ3VtZW50UmVnVmFsdWUoKTsKKyAgICB+QXJndW1lbnRSZWdW
YWx1ZSgpIGZpbmFsOwogCiAgICAgUmVnIGFyZ3VtZW50UmVnKCkgY29uc3QgeyByZXR1cm4gbV9y
ZWc7IH0KIAogICAgIEIzX1NQRUNJQUxJWkVfVkFMVUVfRk9SX05PX0NISUxEUkVOCiAKLXByb3Rl
Y3RlZDoKLSAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29u
c3Qgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6CisgICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXIm
LCBQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOworCiAgICAgZnJpZW5kIGNsYXNzIFByb2NlZHVy
ZTsKICAgICBmcmllbmQgY2xhc3MgVmFsdWU7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNBdG9taWNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzQXRvbWljVmFsdWUuaAppbmRleCA5ZjJiNTJkN2EyNzYxZThlNDE2ZjgzMDJhOTY2ZmUwN2M3
MGRlYjdmLi5jNDU4M2YxZjdhNDMxNGM2ZjFlYTY0MzhlNzc1ZmI0NzE4MjZmMzQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNBdG9taWNWYWx1ZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0F0b21pY1ZhbHVlLmgKQEAgLTMyLDE0ICszMiwxNCBAQAog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgSlNfRVhQT1JUX1BSSVZB
VEUgQXRvbWljVmFsdWUgOiBwdWJsaWMgTWVtb3J5VmFsdWUgeworY2xhc3MgSlNfRVhQT1JUX1BS
SVZBVEUgQXRvbWljVmFsdWUgZmluYWwgOiBwdWJsaWMgTWVtb3J5VmFsdWUgewogcHVibGljOgog
ICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGlzQXRvbShraW5kLm9wY29kZSgpKTsKICAgICB9CiAgICAgCi0gICAgfkF0b21pY1ZhbHVlKCk7
CisgICAgfkF0b21pY1ZhbHVlKCkgZmluYWw7CiAgICAgCiAgICAgVHlwZSBhY2Nlc3NUeXBlKCkg
Y29uc3QgeyByZXR1cm4gY2hpbGQoMCktPnR5cGUoKTsgfQogICAgIApAQCAtNDcsMTAgKzQ3LDkg
QEAgcHVibGljOgogCiAgICAgQjNfU1BFQ0lBTElaRV9WQUxVRV9GT1JfRklOQUxfU0laRV9GSVhF
RF9DSElMRFJFTgogICAgIAotcHJvdGVjdGVkOgotICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmlu
dGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKLQogcHJpdmF0ZToKKyAgICB2b2lk
IGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CisKICAg
ICBmcmllbmQgY2xhc3MgUHJvY2VkdXJlOwogICAgIGZyaWVuZCBjbGFzcyBWYWx1ZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ0NhbGxWYWx1ZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ0NhbGxWYWx1ZS5oCmluZGV4IDJmNjBhMDFlMjc4NTQ2MWNm
MmE5MTg1OGYyNWRkMGMxZDc1MjMzNjAuLjY1MmU1MzVjMDc2ZDgyOGI1NDVhODI2OWQ3OGE4M2Y5
MWIwMDVlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NDYWxsVmFs
dWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDQ2FsbFZhbHVlLmgKQEAgLTMy
LDExICszMiwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3Mg
SlNfRVhQT1JUX1BSSVZBVEUgQ0NhbGxWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7CitjbGFzcyBKU19F
WFBPUlRfUFJJVkFURSBDQ2FsbFZhbHVlIGZpbmFsIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9PSBDQ2Fs
bDsgfQogCi0gICAgfkNDYWxsVmFsdWUoKTsKKyAgICB+Q0NhbGxWYWx1ZSgpIGZpbmFsOwogCiAg
ICAgdm9pZCBhcHBlbmRBcmdzKGNvbnN0IFZlY3RvcjxWYWx1ZSo+Jik7CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDaGVja1NwZWNpYWwuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5oCmluZGV4IGIxYWQwNTE0Mjc3MzE2MmQ1
ZjVkZTU2YjlmYmUzM2EyNTIxNGRmNDcuLmM5ZGU1ZjhmZTBlMGEyMWFiNjRhMjhmYzhhNjUwMWZl
MmE2NzViMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3Bl
Y2lhbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5oCkBA
IC00OCw3ICs0OCw3IEBAIHN0cnVjdCBJbnN0OwogLy8gLSBDaGVja1N1YigwLCB4KSwgd2hpY2gg
dHVybnMgaW50byBCcmFuY2hOZWczMiB4LgogLy8gLSBDaGVja011bChhLCBiKSwgd2hpY2ggdHVy
bnMgaW50byBNdWwzMiBiLCBhIGJ1dCB3ZSBwYXNzIEFueSBmb3IgYSdzIFZhbHVlUmVwLgogCi1j
bGFzcyBDaGVja1NwZWNpYWwgOiBwdWJsaWMgU3RhY2ttYXBTcGVjaWFsIHsKK2NsYXNzIENoZWNr
U3BlY2lhbCBmaW5hbCA6IHB1YmxpYyBTdGFja21hcFNwZWNpYWwgewogcHVibGljOgogICAgIC8v
IFN1cHBvcnQgZm9yIGhhc2ggY29uc2luZyB0aGVzZSB0aGluZ3MuCiAgICAgY2xhc3MgS2V5IHsK
QEAgLTExMyw5ICsxMTMsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgQ2hlY2tTcGVjaWFsKEFpcjo6
S2luZCwgdW5zaWduZWQgbnVtQXJncywgUm9sZU1vZGUgc3RhY2ttYXBSb2xlID0gU2FtZUFzUmVw
KTsKICAgICBDaGVja1NwZWNpYWwoY29uc3QgS2V5Jik7Ci0gICAgfkNoZWNrU3BlY2lhbCgpOwor
ICAgIH5DaGVja1NwZWNpYWwoKSBmaW5hbDsKIAotcHJvdGVjdGVkOgorcHJpdmF0ZToKICAgICAv
LyBDb25zdHJ1Y3RzIGFuZCByZXR1cm5zIHRoZSBJbnN0IHJlcHJlc2VudGluZyB0aGUgYnJhbmNo
IHRoYXQgdGhpcyB3aWxsIHVzZS4KICAgICBBaXI6Okluc3QgaGlkZGVuQnJhbmNoKGNvbnN0IEFp
cjo6SW5zdCYpIGNvbnN0OwogCkBAIC0xMzMsNyArMTMzLDYgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGRlZXBEdW1w
SW1wbChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogCi1wcml2YXRlOgogICAgIEFpcjo6S2lu
ZCBtX2NoZWNrS2luZDsKICAgICBSb2xlTW9kZSBtX3N0YWNrbWFwUm9sZTsKICAgICB1bnNpZ25l
ZCBtX251bUNoZWNrQXJnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0NoZWNrVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrVmFsdWUuaApp
bmRleCA4OTczMjBjZDUyNjBhYzdkZGNmZTkwNjQ4YjA0YjE2YjlmNjM0YjJlLi4xNGNkNDQ3Mjk0
NjkyZDkyNDFjZmJlZmY4MjVkNGI0NzUwODg3NjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNDaGVja1ZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzQ2hlY2tWYWx1ZS5oCkBAIC0zMSw3ICszMSw3IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgewogCi1jbGFzcyBDaGVja1ZhbHVlIDogcHVibGljIFN0YWNrbWFwVmFsdWUgewor
Y2xhc3MgQ2hlY2tWYWx1ZSBmaW5hbCA6IHB1YmxpYyBTdGFja21hcFZhbHVlIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkKICAgICB7CkBAIC00Niw3ICs0Niw3
IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAgIH5DaGVja1ZhbHVlKCk7CisgICAg
fkNoZWNrVmFsdWUoKSBmaW5hbDsKIAogICAgIHZvaWQgY29udmVydFRvQWRkKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0MzJWYWx1ZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmgKaW5kZXggNGZmZWUxMTQyNDdlYTMw
NmQ4YmE5ODhkOGRiZTg2ZWFiMDlhZGM3Ny4uZmIxOTA0MzE5YjkwMzYyZGE1ZDdlZmQ5OWRiODYz
N2FmMTI0NTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3Qz
MlZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmgK
QEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgQ29uc3QzMlZhbHVlIDog
cHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2lu
ZCkgeyByZXR1cm4ga2luZCA9PSBDb25zdDMyOyB9CiAgICAgCi0gICAgfkNvbnN0MzJWYWx1ZSgp
OworICAgIH5Db25zdDMyVmFsdWUoKSBvdmVycmlkZTsKICAgICAKICAgICBpbnQzMl90IHZhbHVl
KCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNDb25zdDY0VmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0NvbnN0NjRWYWx1ZS5oCmluZGV4IDQ3YzFiNTYzYWUzODA5MWEwMDkzYWJmNTk1OTY2ZDdlNzcz
MTk5NTAuLmYzZmM1ZWViZjI1NTFkZTI0ZTE2ZDA3N2M1NDA1YzM0NGRhOWZhYjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5oCkBAIC0zNSw3ICszNSw3IEBAIGNs
YXNzIEpTX0VYUE9SVF9QUklWQVRFIENvbnN0NjRWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhLaW5kIGtpbmQpIHsgcmV0dXJuIGtpbmQgPT0g
Q29uc3Q2NDsgfQogICAgIAotICAgIH5Db25zdDY0VmFsdWUoKTsKKyAgICB+Q29uc3Q2NFZhbHVl
KCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgaW50NjRfdCB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dmFsdWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RE
b3VibGVWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3REb3VibGVWYWx1
ZS5oCmluZGV4IDQwM2JkM2Y4NTVjMjlhYjgzYzY2YjZiMGE3YjE3MTJiYzkyZWZiZjEuLmIwNmQ3
YmVhZTgxMTI5NjFlOWYyMDA4YmFjZTFjMWMwNjJjNTZkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RG91YmxlVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmgKQEAgLTMxLDM4ICszMSwzOCBAQAogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUg
Q29uc3REb3VibGVWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7CitjbGFzcyBKU19FWFBPUlRfUFJJVkFU
RSBDb25zdERvdWJsZVZhbHVlIGZpbmFsIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9PSBDb25zdERvdWJs
ZTsgfQogICAgIAotICAgIH5Db25zdERvdWJsZVZhbHVlKCk7CisgICAgfkNvbnN0RG91YmxlVmFs
dWUoKSBmaW5hbDsKICAgICAKICAgICBkb3VibGUgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlOyB9CiAKLSAgICBWYWx1ZSogbmVnQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgVmFsdWUqIGFkZENvbnN0YW50KFByb2NlZHVyZSYsIGludDMyX3Qgb3RoZXIpIGNv
bnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBhZGRDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBW
YWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBzdWJDb25zdGFudChQcm9j
ZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBk
aXZDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRl
OwotICAgIFZhbHVlKiBtb2RDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIp
IGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBtdWxDb25zdGFudChQcm9jZWR1cmUmLCBjb25z
dCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBiaXRBbmRDb25zdGFu
dChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZh
bHVlKiBiaXRPckNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgVmFsdWUqIGJpdFhvckNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZh
bHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVmFsdWUqIGJpdHdpc2VDYXN0Q29uc3Rh
bnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVmFsdWUqIGRvdWJsZVRvRmxvYXRD
b25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogYWJzQ29uc3Rh
bnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVmFsdWUqIGNlaWxDb25zdGFudChQ
cm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogZmxvb3JDb25zdGFudChQcm9j
ZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogc3FydENvbnN0YW50KFByb2NlZHVy
ZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIFZhbHVlKiBuZWdDb25zdGFudChQcm9jZWR1cmUmKSBj
b25zdCBmaW5hbDsKKyAgICBWYWx1ZSogYWRkQ29uc3RhbnQoUHJvY2VkdXJlJiwgaW50MzJfdCBv
dGhlcikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIGFkZENvbnN0YW50KFByb2NlZHVyZSYsIGNv
bnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIHN1YkNvbnN0YW50KFBy
b2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIGRp
dkNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7Cisg
ICAgVmFsdWUqIG1vZENvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29u
c3QgZmluYWw7CisgICAgVmFsdWUqIG11bENvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVl
KiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIGJpdEFuZENvbnN0YW50KFByb2NlZHVy
ZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIGJpdE9yQ29u
c3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBW
YWx1ZSogYml0WG9yQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25z
dCBmaW5hbDsKKyAgICBWYWx1ZSogYml0d2lzZUNhc3RDb25zdGFudChQcm9jZWR1cmUmKSBjb25z
dCBmaW5hbDsKKyAgICBWYWx1ZSogZG91YmxlVG9GbG9hdENvbnN0YW50KFByb2NlZHVyZSYpIGNv
bnN0IGZpbmFsOworICAgIFZhbHVlKiBhYnNDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBmaW5h
bDsKKyAgICBWYWx1ZSogY2VpbENvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IGZpbmFsOworICAg
IFZhbHVlKiBmbG9vckNvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IGZpbmFsOworICAgIFZhbHVl
KiBzcXJ0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QgZmluYWw7CiAKLSAgICBUcmlTdGF0ZSBl
cXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVHJp
U3RhdGUgbm90RXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRl
OwotICAgIFRyaVN0YXRlIGxlc3NUaGFuQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25z
dCBvdmVycmlkZTsKLSAgICBUcmlTdGF0ZSBncmVhdGVyVGhhbkNvbnN0YW50KGNvbnN0IFZhbHVl
KiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVHJpU3RhdGUgbGVzc0VxdWFsQ29uc3RhbnQo
Y29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBUcmlTdGF0ZSBncmVhdGVy
RXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFRy
aVN0YXRlIGVxdWFsT3JVbm9yZGVyZWRDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0
IG92ZXJyaWRlOworICAgIFRyaVN0YXRlIGVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVy
KSBjb25zdCBmaW5hbDsKKyAgICBUcmlTdGF0ZSBub3RFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVl
KiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVHJpU3RhdGUgbGVzc1RoYW5Db25zdGFudChjb25z
dCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZpbmFsOworICAgIFRyaVN0YXRlIGdyZWF0ZXJUaGFuQ29u
c3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBUcmlTdGF0ZSBsZXNz
RXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZpbmFsOworICAgIFRyaVN0
YXRlIGdyZWF0ZXJFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7
CisgICAgVHJpU3RhdGUgZXF1YWxPclVub3JkZXJlZENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhl
cikgY29uc3QgZmluYWw7CiAKICAgICBCM19TUEVDSUFMSVpFX1ZBTFVFX0ZPUl9OT19DSElMRFJF
TgogCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFByb2NlZHVy
ZTsKICAgICBmcmllbmQgY2xhc3MgVmFsdWU7CiAKLSAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJp
bnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBkdW1wTWV0YShD
b21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogCiAgICAgc3RhdGljIE9w
Y29kZSBvcGNvZGVGcm9tQ29uc3RydWN0b3IoT3JpZ2luLCBkb3VibGUpIHsgcmV0dXJuIENvbnN0
RG91YmxlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0
RmxvYXRWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVl
LmgKaW5kZXggYmMzYmJlZTQ4MjM0NjVhYzIwZDliMGE4ZTZhZTI4N2FjNjJmYjkyYi4uN2Q2MGQ0
N2IyNDI2YTE0MTI3ZmMxMDY2MDM5MWJlZjMwYzAzMGM3NyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVlLmgKQEAgLTMxLDM3ICszMSwzNyBAQAogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgQ29u
c3RGbG9hdFZhbHVlIDogcHVibGljIFZhbHVlIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIENv
bnN0RmxvYXRWYWx1ZSBmaW5hbCA6IHB1YmxpYyBWYWx1ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IGJvb2wgYWNjZXB0cyhLaW5kIGtpbmQpIHsgcmV0dXJuIGtpbmQgPT0gQ29uc3RGbG9hdDsgfQog
Ci0gICAgfkNvbnN0RmxvYXRWYWx1ZSgpOworICAgIH5Db25zdEZsb2F0VmFsdWUoKSBmaW5hbDsK
IAogICAgIGZsb2F0IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogCi0gICAgVmFs
dWUqIG5lZ0NvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBh
ZGRDb25zdGFudChQcm9jZWR1cmUmLCBpbnQzMl90IG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAg
ICBWYWx1ZSogYWRkQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25z
dCBvdmVycmlkZTsKLSAgICBWYWx1ZSogc3ViQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFs
dWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogZGl2Q29uc3RhbnQoUHJvY2Vk
dXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogbXVs
Q29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsK
LSAgICBWYWx1ZSogYml0QW5kQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVy
KSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogYml0T3JDb25zdGFudChQcm9jZWR1cmUmLCBj
b25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBiaXRYb3JDb25z
dGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAg
IFZhbHVlKiBiaXR3aXNlQ2FzdENvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIFZhbHVlKiBmbG9hdFRvRG91YmxlQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJp
ZGU7Ci0gICAgVmFsdWUqIGFic0NvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIFZhbHVlKiBjZWlsQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
VmFsdWUqIGZsb29yQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVmFs
dWUqIHNxcnRDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKLQotICAgIFRyaVN0
YXRlIGVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAg
ICBUcmlTdGF0ZSBub3RFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgVHJpU3RhdGUgbGVzc1RoYW5Db25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIp
IGNvbnN0IG92ZXJyaWRlOwotICAgIFRyaVN0YXRlIGdyZWF0ZXJUaGFuQ29uc3RhbnQoY29uc3Qg
VmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBUcmlTdGF0ZSBsZXNzRXF1YWxDb25z
dGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFRyaVN0YXRlIGdy
ZWF0ZXJFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgVHJpU3RhdGUgZXF1YWxPclVub3JkZXJlZENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgVmFsdWUqIG5lZ0NvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0
IGZpbmFsOworICAgIFZhbHVlKiBhZGRDb25zdGFudChQcm9jZWR1cmUmLCBpbnQzMl90IG90aGVy
KSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogYWRkQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3Qg
VmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogc3ViQ29uc3RhbnQoUHJvY2Vk
dXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogZGl2Q29u
c3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBW
YWx1ZSogbXVsQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBm
aW5hbDsKKyAgICBWYWx1ZSogYml0QW5kQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUq
IG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogYml0T3JDb25zdGFudChQcm9jZWR1cmUm
LCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZpbmFsOworICAgIFZhbHVlKiBiaXRYb3JDb25z
dGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZpbmFsOworICAgIFZh
bHVlKiBiaXR3aXNlQ2FzdENvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IGZpbmFsOworICAgIFZh
bHVlKiBmbG9hdFRvRG91YmxlQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QgZmluYWw7CisgICAg
VmFsdWUqIGFic0NvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IGZpbmFsOworICAgIFZhbHVlKiBj
ZWlsQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIGZsb29yQ29u
c3RhbnQoUHJvY2VkdXJlJikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIHNxcnRDb25zdGFudChQ
cm9jZWR1cmUmKSBjb25zdCBmaW5hbDsKKworICAgIFRyaVN0YXRlIGVxdWFsQ29uc3RhbnQoY29u
c3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBUcmlTdGF0ZSBub3RFcXVhbENvbnN0
YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVHJpU3RhdGUgbGVzc1Ro
YW5Db25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZpbmFsOworICAgIFRyaVN0YXRl
IGdyZWF0ZXJUaGFuQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAg
ICBUcmlTdGF0ZSBsZXNzRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZp
bmFsOworICAgIFRyaVN0YXRlIGdyZWF0ZXJFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhl
cikgY29uc3QgZmluYWw7CisgICAgVHJpU3RhdGUgZXF1YWxPclVub3JkZXJlZENvbnN0YW50KGNv
bnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CiAKICAgICBCM19TUEVDSUFMSVpFX1ZBTFVF
X0ZPUl9OT19DSElMRFJFTgogCkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgZnJpZW5k
IGNsYXNzIFByb2NlZHVyZTsKICAgICBmcmllbmQgY2xhc3MgVmFsdWU7CiAKLSAgICB2b2lkIGR1
bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwog
CiAgICAgc3RhdGljIE9wY29kZSBvcGNvZGVGcm9tQ29uc3RydWN0b3IoT3JpZ2luLCBmbG9hdCkg
eyByZXR1cm4gQ29uc3RGbG9hdDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNEYXRhU2VjdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNl
Y3Rpb24uaAppbmRleCAwYmNhNDBlZDQzN2JlOTFlODVjNTdjYjhkZjYzMGJiNWM3OWY5NGRlLi4y
NjhmNjUxNGYzZDA0MjUxMTUwN2RhYTIxZDVjMWQyYzFiMmFlNjhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmgKQEAgLTMxLDE1ICszMSwxNSBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgRGF0YVNlY3Rpb24gOiBwdWJsaWMgT3Bh
cXVlQnlwcm9kdWN0IHsKK2NsYXNzIERhdGFTZWN0aW9uIGZpbmFsIDogcHVibGljIE9wYXF1ZUJ5
cHJvZHVjdCB7CiBwdWJsaWM6CiAgICAgRGF0YVNlY3Rpb24oc2l6ZV90IHNpemUpOwotICAgIHZp
cnR1YWwgfkRhdGFTZWN0aW9uKCk7CisgICAgfkRhdGFTZWN0aW9uKCkgZmluYWw7CiAKICAgICB2
b2lkKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9CiAgICAgc2l6ZV90IHNpemUoKSBj
b25zdCB7IHJldHVybiBtX3NpemU7IH0KIAotICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwog
CiBwcml2YXRlOgogICAgIHZvaWQqIG1fZGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0V4dHJhY3RWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
RXh0cmFjdFZhbHVlLmgKaW5kZXggMjEyNWI3YjZhMzZjYjVmMTc1ZjUxOWFjMTAyNGJiNWRiMDNj
ZGE2MS4uYTEyMjBhYzRlMzQ4YTgzMGY5MDQxZDIwY2E1Njg4MDhlMmFjN2Q3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRXh0cmFjdFZhbHVlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzRXh0cmFjdFZhbHVlLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xh
c3MgSlNfRVhQT1JUX1BSSVZBVEUgRXh0cmFjdFZhbHVlIGZpbmFsIDogcHVibGljIFZhbHVlIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2lu
ZCA9PSBFeHRyYWN0OyB9CiAKLSAgICB+RXh0cmFjdFZhbHVlKCk7CisgICAgfkV4dHJhY3RWYWx1
ZSgpIGZpbmFsOwogCiAgICAgaW50MzJfdCBpbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXg7
IH0KIApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgQjNfU1BFQ0lBTElaRV9WQUxVRV9G
T1JfRklOQUxfU0laRV9GSVhFRF9DSElMRFJFTgogCiBwcml2YXRlOgotICAgIHZvaWQgZHVtcE1l
dGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lk
IGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CiAKICAg
ICBzdGF0aWMgT3Bjb2RlIG9wY29kZUZyb21Db25zdHJ1Y3RvcihPcmlnaW4sIFR5cGUsIFZhbHVl
KiwgaW50MzJfdCkgeyByZXR1cm4gRXh0cmFjdDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNGZW5jZVZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNGZW5jZVZhbHVlLmgKaW5kZXggNTEzYmFkNWM3MWRmNDA3MTllMjc5ZTY5NWNjMzMwNmI3ZjIw
NWM2ZC4uZTQ5YjRiMWE3OTIwMDliZGUzMzM2YmRmNWNlMzY4NzJmMTk2ZjM3NyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRmVuY2VWYWx1ZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0ZlbmNlVmFsdWUuaApAQCAtMzIsMTEgKzMyLDExIEBACiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBG
ZW5jZVZhbHVlIDogcHVibGljIFZhbHVlIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEZlbmNl
VmFsdWUgZmluYWwgOiBwdWJsaWMgVmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFj
Y2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IEZlbmNlOyB9CiAgICAgCi0gICAgfkZl
bmNlVmFsdWUoKTsKKyAgICB+RmVuY2VWYWx1ZSgpIGZpbmFsOwogICAgIAogICAgIC8vIFRoZSBy
ZWFkL3dyaXRlIGhlYXBzIGFyZSByZWZsZWN0ZWQgaW4gdGhlIGVmZmVjdHMoKSBvZiB0aGlzIHZh
bHVlLiBUaGUgY29tcGlsZXIgbWF5IGNoYW5nZQogICAgIC8vIHRoZSBsb3dlcmluZyBvZiBhIEZl
bmNlIGJhc2VkIG9uIHRoZSBoZWFwcy4gRm9yIGV4YW1wbGUsIGlmIGEgZmVuY2UgZG9lcyBub3Qg
d3JpdGUgYW55dGhpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01l
bW9yeVZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNZW1vcnlWYWx1ZS5oCmlu
ZGV4IGY2MWRjZmQyNzZmMmI1MDIyMWE2NjAxYmMxYzE1YWI2MGM3MTlmZGMuLmU3NjgyNjRjMTNm
MTY3ZWY1MDZiYmVhMjY2MTY2NzkzYzY3NTczM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM01lbW9yeVZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzTWVtb3J5VmFsdWUuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBpc01lbW9yeUFjY2VzcyhraW5kLm9wY29kZSgpKTsKICAgICB9CiAKLSAgICB+TWVtb3J5VmFs
dWUoKTsKKyAgICB+TWVtb3J5VmFsdWUoKSBvdmVycmlkZTsKIAogICAgIE9mZnNldFR5cGUgb2Zm
c2V0KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJ
bnQsIHR5cGVuYW1lID0gSXNMZWdhbE9mZnNldDxJbnQ+PgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmgKaW5kZXggN2NjNzZhYjkzNjk2MTExZjM5YmU1
MGUwNTQ1NzhiNzE5MWM3ZWY0NS4uODljMDUwNjljMDgxYzNmZDliMjViMDUyODU2Yzg3NzIzMGE2
MmE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNw
ZWNpYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lh
bC5oCkBAIC00MSwxMiArNDEsMTIgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAv
LwogLy8gICAgIFBhdGNoICZwYXRjaHBvaW50LCByZXN1bHQsIGFyZ3MuLi4KIAotY2xhc3MgUGF0
Y2hwb2ludFNwZWNpYWwgOiBwdWJsaWMgU3RhY2ttYXBTcGVjaWFsIHsKK2NsYXNzIFBhdGNocG9p
bnRTcGVjaWFsIGZpbmFsIDogcHVibGljIFN0YWNrbWFwU3BlY2lhbCB7CiBwdWJsaWM6CiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgUGF0Y2hwb2ludFNwZWNpYWwoKTsKLSAgICB2aXJ0dWFsIH5QYXRj
aHBvaW50U3BlY2lhbCgpOworICAgIH5QYXRjaHBvaW50U3BlY2lhbCgpIGZpbmFsOwogCi1wcm90
ZWN0ZWQ6Citwcml2YXRlOgogICAgIHZvaWQgZm9yRWFjaEFyZyhBaXI6Okluc3QmLCBjb25zdCBT
Y29wZWRMYW1iZGE8QWlyOjpJbnN0OjpFYWNoQXJnQ2FsbGJhY2s+JikgZmluYWw7CiAgICAgYm9v
bCBpc1ZhbGlkKEFpcjo6SW5zdCYpIGZpbmFsOwogICAgIGJvb2wgYWRtaXRzU3RhY2soQWlyOjpJ
bnN0JiwgdW5zaWduZWQgYXJnSW5kZXgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNQYXRjaHBvaW50VmFsdWUuaAppbmRleCBmM2E0MWE0NzE1ZmY1ZWE3OTFkYTQzMmU5MzRj
MDFiZDU0ZDgyMWNjLi5mYmNjMmViZTcxYzNkYzZhMmFhY2JhYWNhZTBjMGFmOGYyYzRkZjBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50VmFsdWUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50VmFsdWUuaApAQCAtMzMs
MTMgKzMzLDEzIEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCi1jbGFzcyBQ
YXRjaHBvaW50VmFsdWUgOiBwdWJsaWMgU3RhY2ttYXBWYWx1ZSB7CitjbGFzcyBQYXRjaHBvaW50
VmFsdWUgZmluYWwgOiBwdWJsaWMgU3RhY2ttYXBWYWx1ZSB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBTdGFja21hcFZhbHVlIEJhc2U7CiAgICAgCiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhLaW5k
IGtpbmQpIHsgcmV0dXJuIGtpbmQgPT0gUGF0Y2hwb2ludDsgfQogCi0gICAgflBhdGNocG9pbnRW
YWx1ZSgpOworICAgIH5QYXRjaHBvaW50VmFsdWUoKSBmaW5hbDsKIAogICAgIC8vIFRoZSBlZmZl
Y3RzIG9mIHRoZSBwYXRjaHBvaW50LiBUaGlzIGRlZmF1bHRzIHRvIEVmZmVjdHM6OmZvckNhbGwo
KSwgYnV0IHlvdSBjYW4gc2V0IGl0IHRvIGFueXRoaW5nLgogICAgIC8vCkBAIC02NCwxMCArNjQs
OSBAQCBwdWJsaWM6CiAKICAgICBCM19TUEVDSUFMSVpFX1ZBTFVFX0ZPUl9GSU5BTF9TSVpFX1ZB
UkFSR1NfQ0hJTERSRU4KIAotcHJvdGVjdGVkOgotICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmlu
dGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKLQogcHJpdmF0ZToKKyAgICB2b2lk
IGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CisKICAg
ICBmcmllbmQgY2xhc3MgUHJvY2VkdXJlOwogICAgIGZyaWVuZCBjbGFzcyBWYWx1ZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU2xvdEJhc2VWYWx1ZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU2xvdEJhc2VWYWx1ZS5oCmluZGV4IDc2MDBkODEyYWVi
MWQwN2NjNjlmYmNjYTg3YTBiM2JhYTI3ZDFkZWYuLjMzYzlhMmQ1MWRlM2Y0MGU3ODM2ZDkxN2Yw
NGI4N2I1ZTA2ODU1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Ns
b3RCYXNlVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTbG90QmFzZVZh
bHVlLmgKQEAgLTMzLDExICszMywxMSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsK
IAogY2xhc3MgU3RhY2tTbG90OwogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBTbG90QmFzZVZh
bHVlIDogcHVibGljIFZhbHVlIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIFNsb3RCYXNlVmFs
dWUgZmluYWwgOiBwdWJsaWMgVmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2Vw
dHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IFNsb3RCYXNlOyB9CiAKLSAgICB+U2xvdEJh
c2VWYWx1ZSgpOworICAgIH5TbG90QmFzZVZhbHVlKCkgZmluYWw7CiAKICAgICBTdGFja1Nsb3Qq
IHNsb3QoKSBjb25zdCB7IHJldHVybiBtX3Nsb3Q7IH0KIApAQCAtNDcsNyArNDcsNyBAQCBwcml2
YXRlOgogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CiAgICAgZnJpZW5kIGNsYXNzIFZhbHVl
OwogCi0gICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0m
KSBjb25zdCBmaW5hbDsKIAogICAgIHN0YXRpYyBPcGNvZGUgb3Bjb2RlRnJvbUNvbnN0cnVjdG9y
KE9yaWdpbiwgU3RhY2tTbG90KikgeyByZXR1cm4gU2xvdEJhc2U7IH0KICAgICBTbG90QmFzZVZh
bHVlKE9yaWdpbiBvcmlnaW4sIFN0YWNrU2xvdCogc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwU3BlY2lhbC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFsLmgKaW5kZXggNThiOGM5NmMyMmI5N2ZmMDY1MDI2ODA3
OGRlNzc5OWE3NjNhMDQ4ZS4uYzhmZjkwZDI2MDY1MzQ0OTdkZGE5NGYzZjU3Y2VjZjE0NjNkNDE5
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFs
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFsLmgKQEAg
LTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIEFpciB7IGNsYXNzIENvZGU7IH0KIGNsYXNzIFN0YWNr
bWFwU3BlY2lhbCA6IHB1YmxpYyBBaXI6OlNwZWNpYWwgewogcHVibGljOgogICAgIFN0YWNrbWFw
U3BlY2lhbCgpOwotICAgIHZpcnR1YWwgflN0YWNrbWFwU3BlY2lhbCgpOworICAgIH5TdGFja21h
cFNwZWNpYWwoKSBvdmVycmlkZTsKIAogICAgIGVudW0gUm9sZU1vZGUgOiBpbnQ4X3QgewogICAg
ICAgICBTYW1lQXNSZXAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNT
dGFja21hcFZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFZhbHVl
LmgKaW5kZXggZGUwZGM5NjNmZTgyY2U2NTFmZWQwMzhiNWZjNGI4Y2ViOTc4ZmI2Ni4uODdmMDA5
ZDQ5MDExZTc4YWNiMDA3MjIyMzM4ZmQ3ZjBjYjU0M2E4OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1N0YWNrbWFwVmFsdWUuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICB+U3RhY2ttYXBWYWx1ZSgpOworICAgIH5TdGFja21hcFZhbHVl
KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBVc2UgdGhpcyB0byBhZGQgY2hpbGRyZW4uCiAgICAgdm9p
ZCBhcHBlbmQoY29uc3QgQ29uc3RyYWluZWRWYWx1ZSYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzU3dpdGNoVmFsdWUuaAppbmRleCBhY2E4NzcwNDhhYjBhMDRhYThiYzU4ZTBlMjlk
MDg0ZGI3NDdiYzYxLi5mNmE3NzViMzAxNTQ5ZWY2ZjFlMjA3MDA3MWZiMDAyZjEwODdkNGNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmgKQEAgLTMzLDExICszMywx
MSBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgU3dpdGNoVmFs
dWUgOiBwdWJsaWMgVmFsdWUgeworY2xhc3MgU3dpdGNoVmFsdWUgZmluYWwgOiBwdWJsaWMgVmFs
dWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVy
biBraW5kID09IFN3aXRjaDsgfQogCi0gICAgflN3aXRjaFZhbHVlKCk7CisgICAgflN3aXRjaFZh
bHVlKCkgZmluYWw7CiAKICAgICAvLyBudW1DYXNlVmFsdWVzKCkgKyAxID09IG51bVN1Y2Nlc3Nv
cnMoKS4KICAgICB1bnNpZ25lZCBudW1DYXNlVmFsdWVzKCkgY29uc3QgeyByZXR1cm4gbV92YWx1
ZXMuc2l6ZSgpOyB9CkBAIC02MiwxNSArNjIsMTQgQEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9Q
UklWQVRFIHZvaWQgc2V0RmFsbFRocm91Z2goY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRDYXNlKGNvbnN0IFN3aXRjaENhc2UmKTsKIAot
ICAgIHZvaWQgZHVtcFN1Y2Nlc3NvcnMoY29uc3QgQmFzaWNCbG9jayosIFByaW50U3RyZWFtJikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBkdW1wU3VjY2Vzc29ycyhjb25zdCBCYXNpY0Jsb2Nr
KiwgUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKIAogICAgIEIzX1NQRUNJQUxJWkVfVkFMVUVf
Rk9SX0ZJWEVEX0NISUxEUkVOKDEpCiAgICAgQjNfU1BFQ0lBTElaRV9WQUxVRV9GT1JfRklOQUxf
U0laRV9GSVhFRF9DSElMRFJFTgogCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBkdW1wTWV0YShDb21t
YVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwotCiBwcml2YXRlOgorICAg
IHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsK
KwogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CiAgICAgZnJpZW5kIGNsYXNzIFZhbHVlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNVcHNpbG9uVmFsdWUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Vwc2lsb25WYWx1ZS5oCmluZGV4IDlkNjNjNDYx
OWQwNmIwNTc5N2UwZTE1N2M5YzQ0ZTU1NWIzYTZkZjQuLjJkMDhhMzczYmU2NDc5ODQ5YjZlYzdj
NjY0NjZiZjFhNDU4OWNmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1Vwc2lsb25WYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Vwc2lsb25W
YWx1ZS5oCkBAIC0zMSwxMSArMzEsMTEgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBC
MyB7CiAKLWNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIFVwc2lsb25WYWx1ZSA6IHB1YmxpYyBWYWx1
ZSB7CitjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBVcHNpbG9uVmFsdWUgZmluYWwgOiBwdWJsaWMg
VmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7IHJl
dHVybiBraW5kID09IFVwc2lsb247IH0KIAotICAgIH5VcHNpbG9uVmFsdWUoKTsKKyAgICB+VXBz
aWxvblZhbHVlKCkgZmluYWw7CiAKICAgICBWYWx1ZSogcGhpKCkgY29uc3QgeyByZXR1cm4gbV9w
aGk7IH0KICAgICB2b2lkIHNldFBoaShWYWx1ZSogcGhpKQpAQCAtNDgsMTAgKzQ4LDkgQEAgcHVi
bGljOgogICAgIEIzX1NQRUNJQUxJWkVfVkFMVUVfRk9SX0ZJWEVEX0NISUxEUkVOKDEpCiAgICAg
QjNfU1BFQ0lBTElaRV9WQUxVRV9GT1JfRklOQUxfU0laRV9GSVhFRF9DSElMRFJFTgogCi1wcm90
ZWN0ZWQ6Ci0gICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNv
bnN0IG92ZXJyaWRlOwotCiBwcml2YXRlOgorICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVy
JiwgUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKKwogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1
cmU7CiAgICAgZnJpZW5kIGNsYXNzIFZhbHVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYXJpYWJsZVZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYXJpYWJsZVZhbHVlLmgKaW5kZXggMWVjYzdlNDQ4ZjllZTRkMDk5ZmE4MTA2YzNiOTk0NGFh
NTk1YTgwMS4uZDI2OTYzZTZkZDRmM2NjYjJkYzI2ZjZjNDhlZDMwOGE4ZGUyN2Q5NSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFyaWFibGVWYWx1ZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhcmlhYmxlVmFsdWUuaApAQCAtMzMsMjEgKzMzLDIw
IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCiBjbGFzcyBWYXJpYWJsZTsKIAot
Y2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgVmFyaWFibGVWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7Citj
bGFzcyBKU19FWFBPUlRfUFJJVkFURSBWYXJpYWJsZVZhbHVlIGZpbmFsIDogcHVibGljIFZhbHVl
IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4g
a2luZCA9PSBHZXQgfHwga2luZCA9PSBTZXQ7IH0KIAotICAgIH5WYXJpYWJsZVZhbHVlKCk7Cisg
ICAgflZhcmlhYmxlVmFsdWUoKSBmaW5hbDsKIAogICAgIFZhcmlhYmxlKiB2YXJpYWJsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdmFyaWFibGU7IH0KIAogICAgIEIzX1NQRUNJQUxJWkVfVkFMVUVfRk9S
X05PTl9WQVJBUkdTX0NISUxEUkVOCiAgICAgQjNfU1BFQ0lBTElaRV9WQUxVRV9GT1JfRklOQUxf
U0laRV9GSVhFRF9DSElMRFJFTgogCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBkdW1wTWV0YShDb21t
YVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwotCiBwcml2YXRlOgorICAg
IHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsK
KwogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CiAgICAgZnJpZW5kIGNsYXNzIFZhbHVlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXYXNtQWRkcmVzc1ZhbHVl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXYXNtQWRkcmVzc1ZhbHVlLmgKaW5kZXgg
NTliYjExMDI5MWUzYWE5NTY1ZTdjODg4ZDA3M2RlYWFiZWNhNWY1OS4uY2FhNjljMmM4ZTVhZDRi
NmViZTQyYTdlNDY1YzFjN2Y0YTFiMDAyMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzV2FzbUFkZHJlc3NWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1dhc21BZGRyZXNzVmFsdWUuaApAQCAtMzIsMjEgKzMyLDIwIEBACiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQjMgewogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBXYXNtQWRkcmVz
c1ZhbHVlIDogcHVibGljIFZhbHVlIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIFdhc21BZGRy
ZXNzVmFsdWUgZmluYWwgOiBwdWJsaWMgVmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29s
IGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IFdhc21BZGRyZXNzOyB9CiAKLSAg
ICB+V2FzbUFkZHJlc3NWYWx1ZSgpOworICAgIH5XYXNtQWRkcmVzc1ZhbHVlKCkgZmluYWw7CiAK
ICAgICBHUFJSZWcgcGlubmVkR1BSKCkgY29uc3QgeyByZXR1cm4gbV9waW5uZWRHUFI7IH0KIAog
ICAgIEIzX1NQRUNJQUxJWkVfVkFMVUVfRk9SX0ZJWEVEX0NISUxEUkVOKDEpCiAgICAgQjNfU1BF
Q0lBTElaRV9WQUxVRV9GT1JfRklOQUxfU0laRV9GSVhFRF9DSElMRFJFTgogCi1wcm90ZWN0ZWQ6
Ci0gICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92
ZXJyaWRlOwotCiBwcml2YXRlOgorICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJp
bnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKKwogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CiAg
ICAgZnJpZW5kIGNsYXNzIFZhbHVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzV2FzbUJvdW5kc0NoZWNrVmFsdWUuaAppbmRleCBiNjlkMjRlOGZjZjI4MjJkOTkxNjk5NGM0
NjIzNjc2NTlkZWU1MGJjLi44NjNjNjFhNTUxNDJjYjA0MDBhYzdkNGQxNWVkOWJhNzE5ZTI1Zjc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXYXNtQm91bmRzQ2hlY2tW
YWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dhc21Cb3VuZHNDaGVja1Zh
bHVlLmgKQEAgLTMyLDExICszMiwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsKIAotY2xhc3MgV2FzbUJvdW5kc0NoZWNrVmFsdWUgOiBwdWJsaWMgVmFsdWUgeworY2xhc3Mg
V2FzbUJvdW5kc0NoZWNrVmFsdWUgZmluYWwgOiBwdWJsaWMgVmFsdWUgewogcHVibGljOgogICAg
IHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IFdhc21Cb3Vu
ZHNDaGVjazsgfQogICAgIAotICAgIH5XYXNtQm91bmRzQ2hlY2tWYWx1ZSgpOworICAgIH5XYXNt
Qm91bmRzQ2hlY2tWYWx1ZSgpIGZpbmFsOwogCiAgICAgZW51bSBjbGFzcyBUeXBlIHsKICAgICAg
ICAgUGlubmVkLApAQCAtNTUsMTAgKzU1LDkgQEAgcHVibGljOgogICAgIEIzX1NQRUNJQUxJWkVf
VkFMVUVfRk9SX0ZJWEVEX0NISUxEUkVOKDEpCiAgICAgQjNfU1BFQ0lBTElaRV9WQUxVRV9GT1Jf
RklOQUxfU0laRV9GSVhFRF9DSElMRFJFTgogCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBkdW1wTWV0
YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwotCiBwcml2YXRl
OgorICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBm
aW5hbDsKKwogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CiAgICAgZnJpZW5kIGNsYXNzIFZh
bHVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxs
U3BlY2lhbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwu
aAppbmRleCBiY2FkMDBhZWFiNDg5Yjk4N2QzODA4MDA5YjM0OGNiMjAwYmZjZWI1Li5kZGFmZjFj
MmUxNWU4MGY5ZjgxMTZlMTFiNjcxNjc5Yzg4ZDYxYWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxsU3BlY2lhbC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQ0NhbGxTcGVjaWFsLmgKQEAgLTQyLDE3ICs0MiwxNyBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAvLyBpZiB3ZSBoYWQg
YSBjYWxsIHRoYXQgZGlkbid0IHBhc3MgdGhlbSwgdGhlbiB0aGV5J2QgYXBwZWFyIHRvIGJlIGxp
dmUgdW50aWwgc29tZSBjbG9iYmVyIHBvaW50IG9yCiAvLyB0aGUgcHJvbG9ndWUsIHdoaWNoZXZl
ciBoYXBwZW5lZCBzb29uZXIuCiAKLWNsYXNzIENDYWxsU3BlY2lhbCA6IHB1YmxpYyBTcGVjaWFs
IHsKK2NsYXNzIENDYWxsU3BlY2lhbCBmaW5hbCA6IHB1YmxpYyBTcGVjaWFsIHsKIHB1YmxpYzoK
ICAgICBDQ2FsbFNwZWNpYWwoKTsKLSAgICB+Q0NhbGxTcGVjaWFsKCk7CisgICAgfkNDYWxsU3Bl
Y2lhbCgpIGZpbmFsOwogCiAgICAgLy8gWW91IGNhbm5vdCB1c2UgdGhpcyByZWdpc3RlciB0byBw
YXNzIGFyZ3VtZW50cy4gSXQganVzdCBzbyBoYXBwZW5zIHRoYXQgdGhpcyByZWdpc3RlciBpcyBu
b3QKICAgICAvLyB1c2VkIGZvciBhcmd1bWVudHMgaW4gdGhlIEMgY2FsbGluZyBjb252ZW50aW9u
LiBCeSB0aGUgd2F5LCB0aGlzIGlzIHRoZSBvbmx5IHRoaW5nIHRoYXQgY2F1c2VzCiAgICAgLy8g
dGhpcyBzcGVjaWFsIHRvIGJlIHNwZWNpZmljIHRvIEMgY2FsbHMuCiAgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgc2NyYXRjaFJlZ2lzdGVyID0gR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uQXJn
dW1lbnRHUFIwOwogCi1wcm90ZWN0ZWQ6Citwcml2YXRlOgogICAgIHZvaWQgZm9yRWFjaEFyZyhJ
bnN0JiwgY29uc3QgU2NvcGVkTGFtYmRhPEluc3Q6OkVhY2hBcmdDYWxsYmFjaz4mKSBmaW5hbDsK
ICAgICBib29sIGlzVmFsaWQoSW5zdCYpIGZpbmFsOwogICAgIGJvb2wgYWRtaXRzU3RhY2soSW5z
dCYsIHVuc2lnbmVkIGFyZ0luZGV4KSBmaW5hbDsKQEAgLTY1LDcgKzY1LDYgQEAgcHJvdGVjdGVk
OgogICAgIHZvaWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IGRlZXBEdW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogCi1wcml2YXRlOgogICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc3BlY2lhbEFyZ09mZnNldCA9IDA7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1TcGVjaWFsQXJncyA9IDE7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBjYWxsZWVBcmdPZmZzZXQgPSBudW1TcGVjaWFsQXJnczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5oCmluZGV4IGZmZDJk
N2JmNjRkMTZkNjBhMDA1MmZmNGMyNGQyMDNmYjk3ZDRmNzIuLjU5MWJiNWRkZDYzNWIyMmU0YzVk
MjllNDUyNmYxZTc0MjY1YzIwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyUHJpbnRTcGVjaWFsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJQcmludFNwZWNpYWwuaApAQCAtOTIsMTcgKzkyLDE3IEBAIHN0cnVjdCBQcmludGVyPFJl
Zz4gOiBwdWJsaWMgUHJpbnRSZWNvcmQgewogCiBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWly
IHsKIAotY2xhc3MgUHJpbnRTcGVjaWFsIDogcHVibGljIFNwZWNpYWwgeworY2xhc3MgUHJpbnRT
cGVjaWFsIGZpbmFsIDogcHVibGljIFNwZWNpYWwgewogcHVibGljOgogICAgIFByaW50U3BlY2lh
bChQcmludGVyOjpQcmludFJlY29yZExpc3QqKTsKLSAgICB+UHJpbnRTcGVjaWFsKCk7CisgICAg
flByaW50U3BlY2lhbCgpIGZpbmFsOwogICAgIAogICAgIC8vIFlvdSBjYW5ub3QgdXNlIHRoaXMg
cmVnaXN0ZXIgdG8gcGFzcyBhcmd1bWVudHMuIEl0IGp1c3Qgc28gaGFwcGVucyB0aGF0IHRoaXMg
cmVnaXN0ZXIgaXMgbm90CiAgICAgLy8gdXNlZCBmb3IgYXJndW1lbnRzIGluIHRoZSBDIGNhbGxp
bmcgY29udmVudGlvbi4gQnkgdGhlIHdheSwgdGhpcyBpcyB0aGUgb25seSB0aGluZyB0aGF0IGNh
dXNlcwogICAgIC8vIHRoaXMgc3BlY2lhbCB0byBiZSBzcGVjaWZpYyB0byBDIGNhbGxzLgogICAg
IHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHNjcmF0Y2hSZWdpc3RlciA9IEdQUkluZm86Om5vbkFy
Z0dQUjA7CiAgICAgCi1wcm90ZWN0ZWQ6Citwcml2YXRlOgogICAgIHZvaWQgZm9yRWFjaEFyZyhJ
bnN0JiwgY29uc3QgU2NvcGVkTGFtYmRhPEluc3Q6OkVhY2hBcmdDYWxsYmFjaz4mKSBmaW5hbDsK
ICAgICBib29sIGlzVmFsaWQoSW5zdCYpIGZpbmFsOwogICAgIGJvb2wgYWRtaXRzU3RhY2soSW5z
dCYsIHVuc2lnbmVkIGFyZ0luZGV4KSBmaW5hbDsKQEAgLTExNSw3ICsxMTUsNiBAQCBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBkdW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogICAgIHZv
aWQgZGVlcER1bXBJbXBsKFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CiAgICAgCi1wcml2YXRl
OgogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgc3BlY2lhbEFyZ09mZnNldCA9IDA7CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1TcGVjaWFsQXJncyA9IDE7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCBjYWxsZWVBcmdPZmZzZXQgPSBudW1TcGVjaWFsQXJnczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgKaW5k
ZXggZWRiMTEyOTIxYWY3NTNlNjNkODYxMzcyZmJkZTBlZWY4OWZjYTE1OS4uZWM2NDU3YmVkNDYx
MWY5NmRjOWRhMGE2NGY1ZThjMDAxOWY2MWFhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgKQEAgLTg0LDcgKzg0LDcgQEAgcHVibGljOgog
ICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIH5CeXRlY29kZUR1bXBlcigpIHsgfQorICAgIH5C
eXRlY29kZUR1bXBlcigpIG92ZXJyaWRlIHsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgQmxvY2sqIGJs
b2NrKCkgY29uc3QgeyByZXR1cm4gbV9ibG9jazsgfQpAQCAtMTAxLDcgKzEwMSw3IEBAIHByaXZh
dGU6CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBCbG9jaz4KLWNsYXNzIENvZGVCbG9ja0J5dGVjb2Rl
RHVtcGVyIDogcHVibGljIEJ5dGVjb2RlRHVtcGVyPEJsb2NrPiB7CitjbGFzcyBDb2RlQmxvY2tC
eXRlY29kZUR1bXBlciBmaW5hbCA6IHB1YmxpYyBCeXRlY29kZUR1bXBlcjxCbG9jaz4gewogcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIGR1bXBCbG9jayhCbG9jayosIGNvbnN0IEluc3RydWN0aW9u
U3RyZWFtJiwgUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgSUNTdGF0dXNNYXAmID0gSUNTdGF0dXNN
YXAoKSk7CiAKQEAgLTEyNyw3ICsxMjcsNyBAQCBjbGFzcyBGdW5jdGlvbkNvZGVCbG9jazsKIHN0
cnVjdCBNb2R1bGVJbmZvcm1hdGlvbjsKIGVudW0gVHlwZSA6IGludDhfdDsKIAotY2xhc3MgQnl0
ZWNvZGVEdW1wZXIgOiBwdWJsaWMgSlNDOjpCeXRlY29kZUR1bXBlcjxGdW5jdGlvbkNvZGVCbG9j
az4geworY2xhc3MgQnl0ZWNvZGVEdW1wZXIgZmluYWwgOiBwdWJsaWMgSlNDOjpCeXRlY29kZUR1
bXBlcjxGdW5jdGlvbkNvZGVCbG9jaz4gewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGR1bXBC
bG9jayhGdW5jdGlvbkNvZGVCbG9jayosIGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiwgUHJpbnRT
dHJlYW0mIG91dCk7CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIHVzaW5nIEpT
Qzo6Qnl0ZWNvZGVEdW1wZXI8RnVuY3Rpb25Db2RlQmxvY2s+OjpCeXRlY29kZUR1bXBlcjsKIAog
ICAgIHZvaWQgZHVtcENvbnN0YW50cygpOwotICAgIENTdHJpbmcgY29uc3RhbnROYW1lKFZpcnR1
YWxSZWdpc3RlciBpbmRleCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ1N0cmluZyBjb25zdGFudE5h
bWUoVmlydHVhbFJlZ2lzdGVyIGluZGV4KSBjb25zdCBmaW5hbDsKICAgICBDU3RyaW5nIGZvcm1h
dENvbnN0YW50KFR5cGUsIHVpbnQ2NF90KSBjb25zdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0dGVyU2V0dGVyQWNjZXNzQ2FzZS5oCmluZGV4
IDI2ZDI1Y2YzY2Q2MGIyNjNjZDA0ZDBkN2YxOWNjZmZiNDljNzIwNWMuLmYxNzVmMjFjOGIxZGU3
ZjVlOWE3ZTE3MjI5MDkwMmQ4ZGI0MWYwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0dldHRlclNldHRlckFjY2Vzc0Nhc2UuaApAQCAtMzIsNyArMzIs
NyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgR2V0dGVyU2V0dGVyQWNjZXNzQ2FzZSA6
IHB1YmxpYyBQcm94eWFibGVBY2Nlc3NDYXNlIHsKK2NsYXNzIEdldHRlclNldHRlckFjY2Vzc0Nh
c2UgZmluYWwgOiBwdWJsaWMgUHJveHlhYmxlQWNjZXNzQ2FzZSB7CiBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBQcm94eWFibGVBY2Nlc3NDYXNlIEJhc2U7CiAgICAgZnJpZW5kIGNsYXNzIEFjY2Vzc0Nh
c2U7CkBAIC00OCw4ICs0OCw4IEBAIHB1YmxpYzoKICAgICBKU09iamVjdCogY3VzdG9tU2xvdEJh
c2UoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbVNsb3RCYXNlLmdldCgpOyB9CiAgICAgT3B0aW9u
YWw8RE9NQXR0cmlidXRlQW5ub3RhdGlvbj4gZG9tQXR0cmlidXRlKCkgY29uc3QgeyByZXR1cm4g
bV9kb21BdHRyaWJ1dGU7IH0KIAotICAgIGJvb2wgaGFzQWx0ZXJuYXRlQmFzZSgpIGNvbnN0IG92
ZXJyaWRlOwotICAgIEpTT2JqZWN0KiBhbHRlcm5hdGVCYXNlKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBoYXNBbHRlcm5hdGVCYXNlKCkgY29uc3QgZmluYWw7CisgICAgSlNPYmplY3QqIGFs
dGVybmF0ZUJhc2UoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgZW1pdERPTUpJVEdldHRlcihB
Y2Nlc3NHZW5lcmF0aW9uU3RhdGUmLCBjb25zdCBET01KSVQ6OkdldHRlclNldHRlciosIEdQUlJl
ZyBiYXNlRm9yR2V0R1BSKTsKIApAQCAtNjIsMTAgKzYyLDEwIEBAIHB1YmxpYzoKICAgICAgICAg
Y29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmLCBzdGQ6OnVuaXF1ZV9wdHI8UG9seVBy
b3RvQWNjZXNzQ2hhaW4+LAogICAgICAgICBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+IGN1
c3RvbVNldHRlciA9IG51bGxwdHIsIEpTT2JqZWN0KiBjdXN0b21TbG90QmFzZSA9IG51bGxwdHIp
OwogCi0gICAgdm9pZCBkdW1wSW1wbChQcmludFN0cmVhbSYsIENvbW1hUHJpbnRlciYpIGNvbnN0
IG92ZXJyaWRlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBjbG9uZSgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZvaWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mLCBDb21tYVByaW50ZXIm
KSBjb25zdCBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBj
b25zdCBmaW5hbDsKIAotICAgIH5HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlKCk7CisgICAgfkdldHRl
clNldHRlckFjY2Vzc0Nhc2UoKSBmaW5hbDsKIAogICAgIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0
clRhZz4gY3VzdG9tQWNjZXNzb3IoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbUFjY2Vzc29yOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnN0YW5jZU9m
QWNjZXNzQ2FzZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0luc3RhbmNlT2ZB
Y2Nlc3NDYXNlLmgKaW5kZXggZDYzODhkNzM2ZmVlODI4ZDFiODY3MGM4NTE2NWExM2M4MTVjZDlj
Ni4uNjllMmIzMWFhOTRhNTlkMzBkZmI0Y2FmMjI0NDk5ZDYwMjc3ODQ3YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0luc3RhbmNlT2ZBY2Nlc3NDYXNlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0luc3RhbmNlT2ZBY2Nlc3NDYXNlLmgK
QEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEluc3RhbmNlT2ZB
Y2Nlc3NDYXNlIDogcHVibGljIEFjY2Vzc0Nhc2UgeworY2xhc3MgSW5zdGFuY2VPZkFjY2Vzc0Nh
c2UgZmluYWwgOiBwdWJsaWMgQWNjZXNzQ2FzZSB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9
IEFjY2Vzc0Nhc2U7CiAgICAgCkBAIC00MSwxNyArNDEsMTYgQEAgcHVibGljOgogICAgIAogICAg
IEpTT2JqZWN0KiBwcm90b3R5cGUoKSBjb25zdCB7IHJldHVybiBtX3Byb3RvdHlwZS5nZXQoKTsg
fQogICAgIAotICAgIHZvaWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mLCBDb21tYVByaW50ZXImKSBj
b25zdCBvdmVycmlkZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXBJbXBsKFByaW50U3RyZWFtJiwgQ29tbWFQcmlu
dGVyJikgY29uc3QgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IGNsb25l
KCkgY29uc3QgZmluYWw7CiAgICAgCi0gICAgfkluc3RhbmNlT2ZBY2Nlc3NDYXNlKCk7CisgICAg
fkluc3RhbmNlT2ZBY2Nlc3NDYXNlKCkgZmluYWw7CiAKLXByb3RlY3RlZDoKK3ByaXZhdGU6CiAg
ICAgSW5zdGFuY2VPZkFjY2Vzc0Nhc2UoCiAgICAgICAgIFZNJiwgSlNDZWxsKiwgQWNjZXNzVHlw
ZSwgU3RydWN0dXJlKiwgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmLAogICAgICAg
ICBKU09iamVjdCogcHJvdG90eXBlKTsKIAotcHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8SlNP
YmplY3Q+IG1fcHJvdG90eXBlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0ludHJpbnNpY0dldHRlckFjY2Vzc0Nhc2UuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9JbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlLmgKaW5kZXggNjk2ZGFi
NDBiMjQ0ZWJiMjFkYzNiZjBlOTFlNDAzMjA0N2VlNDZhOS4uZDdhZWQ3YTUzMmMxMzA4Y2VkNjU1
ZTBkZmVlMjVmMzczZDY4YTYwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0ludHJpbnNpY0dldHRlckFjY2Vzc0Nhc2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvSW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZS5oCkBAIC0zMSw3ICszMSw3
IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBJbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNl
IDogcHVibGljIEFjY2Vzc0Nhc2UgeworY2xhc3MgSW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZSBm
aW5hbCA6IHB1YmxpYyBBY2Nlc3NDYXNlIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEFjY2Vzc0Nh
c2UgQmFzZTsKICAgICBmcmllbmQgY2xhc3MgQWNjZXNzQ2FzZTsKQEAgLTQ0LDkgKzQ0LDkgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBjcmVhdGUo
Vk0mLCBKU0NlbGwqLCBDYWNoZWFibGVJZGVudGlmaWVyLCBQcm9wZXJ0eU9mZnNldCwgU3RydWN0
dXJlKiwgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmLCBKU0Z1bmN0aW9uKiBpbnRy
aW5zaWNGdW5jdGlvbiwgc3RkOjp1bmlxdWVfcHRyPFBvbHlQcm90b0FjY2Vzc0NoYWluPik7CiAK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBjb25zdCBvdmVycmlkZTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBjb25zdCBmaW5hbDsKIAot
ICAgIH5JbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlKCk7CisgICAgfkludHJpbnNpY0dldHRlckFj
Y2Vzc0Nhc2UoKSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBJbnRyaW5zaWNHZXR0ZXJBY2Nlc3ND
YXNlKFZNJiwgSlNDZWxsKiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgUHJvcGVydHlPZmZzZXQsIFN0
cnVjdHVyZSosIGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0JiwgSlNGdW5jdGlvbiog
aW50cmluc2ljRnVuY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxQb2x5UHJvdG9BY2Nlc3NDaGFpbj4p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01vZHVsZU5hbWVz
cGFjZUFjY2Vzc0Nhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Nb2R1bGVO
YW1lc3BhY2VBY2Nlc3NDYXNlLmgKaW5kZXggNWVjYzRiM2FjOTE4YWViMzA5M2E0MGEyMzEyNDI3
ZjBkZDU5ZWJiYS4uOTJhMGI4YTM1YjU0NzE2MjQxMzBkNjUwNjUzZDA1YmY1ZDc5MzM3NyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01vZHVsZU5hbWVzcGFjZUFj
Y2Vzc0Nhc2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTW9kdWxlTmFt
ZXNwYWNlQWNjZXNzQ2FzZS5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xh
c3MgSlNNb2R1bGVFbnZpcm9ubWVudDsKIGNsYXNzIEpTTW9kdWxlTmFtZXNwYWNlT2JqZWN0Owog
Ci1jbGFzcyBNb2R1bGVOYW1lc3BhY2VBY2Nlc3NDYXNlIDogcHVibGljIEFjY2Vzc0Nhc2Ugewor
Y2xhc3MgTW9kdWxlTmFtZXNwYWNlQWNjZXNzQ2FzZSBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NDYXNl
IHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gQWNjZXNzQ2FzZTsKICAgICBmcmllbmQgY2xh
c3MgQWNjZXNzQ2FzZTsKQEAgLTQ2LDExICs0NiwxMSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IGNyZWF0ZShWTSYsIEpTQ2VsbCogb3duZXIsIENh
Y2hlYWJsZUlkZW50aWZpZXIsIEpTTW9kdWxlTmFtZXNwYWNlT2JqZWN0KiwgSlNNb2R1bGVFbnZp
cm9ubWVudCosIFNjb3BlT2Zmc2V0KTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNl
PiBjbG9uZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNl
PiBjbG9uZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBlbWl0KEFjY2Vzc0dlbmVyYXRpb25T
dGF0ZSYsIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFsbFRocm91Z2gpOwogCi0gICAgfk1v
ZHVsZU5hbWVzcGFjZUFjY2Vzc0Nhc2UoKTsKKyAgICB+TW9kdWxlTmFtZXNwYWNlQWNjZXNzQ2Fz
ZSgpIGZpbmFsOwogCiBwcml2YXRlOgogICAgIE1vZHVsZU5hbWVzcGFjZUFjY2Vzc0Nhc2UoVk0m
LCBKU0NlbGwqIG93bmVyLCBDYWNoZWFibGVJZGVudGlmaWVyLCBKU01vZHVsZU5hbWVzcGFjZU9i
amVjdCosIEpTTW9kdWxlRW52aXJvbm1lbnQqLCBTY29wZU9mZnNldCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJveHlhYmxlQWNjZXNzQ2FzZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb3h5YWJsZUFjY2Vzc0Nhc2UuaAppbmRleCAz
ZTczNzYxZDcyZjAzODU3MjRiNmI1ZjRhMGVkN2Q5YTMyNTZmNDAxLi4zY2JiZTcxYjlhYTM1MzM3
MDU0ODhlOGJiYmM4NmM4NGJhMWE1YmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvUHJveHlhYmxlQWNjZXNzQ2FzZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qcm94eWFibGVBY2Nlc3NDYXNlLmgKQEAgLTQzLDcgKzQzLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mLCBDb21tYVByaW50ZXImKSBjb25z
dCBvdmVycmlkZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIH5Qcm94eWFibGVBY2Nlc3NDYXNlKCk7CisgICAgflByb3h5YWJs
ZUFjY2Vzc0Nhc2UoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFByb3h5YWJsZUFjY2Vz
c0Nhc2UoVk0mLCBKU0NlbGwqLCBBY2Nlc3NUeXBlLCBDYWNoZWFibGVJZGVudGlmaWVyLCBQcm9w
ZXJ0eU9mZnNldCwgU3RydWN0dXJlKiwgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQm
LCBib29sIHZpYVByb3h5LCBXYXRjaHBvaW50U2V0KiBhZGRpdGlvbmFsU2V0LCBzdGQ6OnVuaXF1
ZV9wdHI8UG9seVByb3RvQWNjZXNzQ2hhaW4+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvV2F0Y2hwb2ludC5oCmluZGV4IDRiMjRhNTBlMjM5ZmY4ZjYxMTdlMmIwMDFkNGE0MjQ2
NzYwMDA1M2QuLjUxYmNlMzgwMDM0ZTA1YjYxZmVlNjI5ZWU2ODQxMTdlMDIyOTNhYjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuaApAQCAtNTMzLDcgKzUz
Myw3IEBAIGNsYXNzIERlZmVycmVkV2F0Y2hwb2ludEZpcmUgOiBwdWJsaWMgRmlyZURldGFpbCB7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGVmZXJyZWRXYXRjaHBvaW50RmlyZSk7CiBwdWJs
aWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgRGVmZXJyZWRXYXRjaHBvaW50RmlyZShWTSYpOwot
ICAgIEpTX0VYUE9SVF9QUklWQVRFIH5EZWZlcnJlZFdhdGNocG9pbnRGaXJlKCk7CisgICAgSlNf
RVhQT1JUX1BSSVZBVEUgfkRlZmVycmVkV2F0Y2hwb2ludEZpcmUoKSBvdmVycmlkZTsKIAogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgdGFrZVdhdGNocG9pbnRzVG9GaXJlKFdhdGNocG9pbnRT
ZXQqKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGZpcmVBbGwoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5oCmluZGV4IGYxNDNjY2MyZDY4
ZTQ1OWJkYmRhYzFlN2NiZmIwNjY0OTkzNDQzMTYuLmI5YWE1ODYzMDliOTg2NDg4ZmE2YjRmNWRi
YzRjNDJlYjExYjc4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RmFpbGVkRmluYWxpemVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGYWls
ZWRGaW5hbGl6ZXIuaApAQCAtMzEsMTQgKzMxLDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgREZHIHsKIAotY2xhc3MgRmFpbGVkRmluYWxpemVyIDogcHVibGljIEZpbmFsaXplciB7
CitjbGFzcyBGYWlsZWRGaW5hbGl6ZXIgZmluYWwgOiBwdWJsaWMgRmluYWxpemVyIHsKIHB1Ymxp
YzoKICAgICBGYWlsZWRGaW5hbGl6ZXIoUGxhbiYpOwotICAgIHZpcnR1YWwgfkZhaWxlZEZpbmFs
aXplcigpOworICAgIH5GYWlsZWRGaW5hbGl6ZXIoKSBmaW5hbDsKICAgICAKLSAgICBzaXplX3Qg
Y29kZVNpemUoKSBvdmVycmlkZTsKLSAgICBib29sIGZpbmFsaXplKCkgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBmaW5hbGl6ZUZ1bmN0aW9uKCkgb3ZlcnJpZGU7CisgICAgc2l6ZV90IGNvZGVTaXplKCkg
ZmluYWw7CisgICAgYm9vbCBmaW5hbGl6ZSgpIGZpbmFsOworICAgIGJvb2wgZmluYWxpemVGdW5j
dGlvbigpIGZpbmFsOwogfTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdHcmFwaC5oCmluZGV4IDU0ZmU1NTI5ZDU5OTA4MjY3ZDhmNjZhZWY1MTU1
ZWViMDkzYWFkNTcuLjVhOWNlZTAyYmNhYzZiZWNjYjhhZmVlYTc3NzA0NzIxNzNkZjUyZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKQEAgLTE1OSwxMCArMTU5LDEwIEBAIHBy
aXZhdGU6CiAvLwogLy8gVGhlIG9yZGVyIG1heSBiZSBzaWduaWZpY2FudCBmb3Igbm9kZXMgd2l0
aCBzaWRlLWVmZmVjdHMgKHByb3BlcnR5IGFjY2Vzc2VzLCB2YWx1ZSBjb252ZXJzaW9ucykuCiAv
LyBOb2RlcyB0aGF0IGFyZSAnZGVhZCcgcmVtYWluIGluIHRoZSB2ZWN0b3Igd2l0aCByZWZDb3Vu
dCAwLgotY2xhc3MgR3JhcGggOiBwdWJsaWMgdmlydHVhbCBTY2FubmFibGUgeworY2xhc3MgR3Jh
cGggZmluYWwgOiBwdWJsaWMgdmlydHVhbCBTY2FubmFibGUgewogcHVibGljOgogICAgIEdyYXBo
KFZNJiwgUGxhbiYpOwotICAgIH5HcmFwaCgpOworICAgIH5HcmFwaCgpIGZpbmFsOwogICAgIAog
ICAgIHZvaWQgY2hhbmdlQ2hpbGQoRWRnZSYgZWRnZSwgTm9kZSogbmV3Tm9kZSkKICAgICB7CkBA
IC0xMDA0LDcgKzEwMDQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCByZWdpc3RlckZyb3pl
blZhbHVlcygpOwogICAgIAotICAgIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpIG92
ZXJyaWRlOworICAgIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpIGZpbmFsOwogICAg
IAogICAgIHZvaWQgbG9nQXNzZXJ0aW9uRmFpbHVyZSgKICAgICAgICAgc3RkOjpudWxscHRyX3Qs
IGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBmdW5jdGlvbiwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKaW5kZXggY2Q5NzQ2NDU3MTk5MWQzZDVlMTNl
YmY4MTY3MzgwOTMzZDliMTgyOS4uYTM3ODk4OTIzN2NkNGIxZjYzYmI3ZDNkOTVjMDc2ODQ3MmUy
NWFiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKQEAgLTQ2LDEzICs0
NiwxMyBAQCBuYW1lc3BhY2UgREZHIHsKIAogY2xhc3MgSklUQ29tcGlsZXI7CiAKLWNsYXNzIEpJ
VENvZGUgOiBwdWJsaWMgRGlyZWN0SklUQ29kZSB7CitjbGFzcyBKSVRDb2RlIGZpbmFsIDogcHVi
bGljIERpcmVjdEpJVENvZGUgewogcHVibGljOgogICAgIEpJVENvZGUoKTsKLSAgICB2aXJ0dWFs
IH5KSVRDb2RlKCk7CisgICAgfkpJVENvZGUoKSBmaW5hbDsKICAgICAKLSAgICBDb21tb25EYXRh
KiBkZmdDb21tb24oKSBvdmVycmlkZTsKLSAgICBKSVRDb2RlKiBkZmcoKSBvdmVycmlkZTsKKyAg
ICBDb21tb25EYXRhKiBkZmdDb21tb24oKSBmaW5hbDsKKyAgICBKSVRDb2RlKiBkZmcoKSBmaW5h
bDsKICAgICAKICAgICBPU1JFbnRyeURhdGEqIGFwcGVuZE9TUkVudHJ5RGF0YShCeXRlY29kZUlu
ZGV4IGJ5dGVjb2RlSW5kZXgsIENvZGVMb2NhdGlvbkxhYmVsPE9TUkVudHJ5UHRyVGFnPiBtYWNo
aW5lQ29kZSkKICAgICB7CkBAIC0xMTMsMTEgKzExMywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRPcHRpbWl6YXRpb25UaHJlc2hvbGRCYXNlZE9uQ29tcGlsYXRpb25SZXN1bHQoQ29kZUJsb2Nr
KiwgQ29tcGlsYXRpb25SZXN1bHQpOwogI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQogICAgIAot
ICAgIHZvaWQgdmFsaWRhdGVSZWZlcmVuY2VzKGNvbnN0IFRyYWNrZWRSZWZlcmVuY2VzJikgb3Zl
cnJpZGU7CisgICAgdm9pZCB2YWxpZGF0ZVJlZmVyZW5jZXMoY29uc3QgVHJhY2tlZFJlZmVyZW5j
ZXMmKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIHNocmlua1RvRml0KGNvbnN0IENvbmN1cnJlbnRK
U0xvY2tlciYpIG92ZXJyaWRlOworICAgIHZvaWQgc2hyaW5rVG9GaXQoY29uc3QgQ29uY3VycmVu
dEpTTG9ja2VyJikgZmluYWw7CiAKLSAgICBSZWdpc3RlclNldCBsaXZlUmVnaXN0ZXJzVG9QcmVz
ZXJ2ZUF0RXhjZXB0aW9uSGFuZGxpbmdDYWxsU2l0ZShDb2RlQmxvY2sqLCBDYWxsU2l0ZUluZGV4
KSBvdmVycmlkZTsKKyAgICBSZWdpc3RlclNldCBsaXZlUmVnaXN0ZXJzVG9QcmVzZXJ2ZUF0RXhj
ZXB0aW9uSGFuZGxpbmdDYWxsU2l0ZShDb2RlQmxvY2sqLCBDYWxsU2l0ZUluZGV4KSBmaW5hbDsK
ICNpZiBFTkFCTEUoRlRMX0pJVCkKICAgICBDb2RlQmxvY2sqIG9zckVudHJ5QmxvY2soKSB7IHJl
dHVybiBtX29zckVudHJ5QmxvY2suZ2V0KCk7IH0KICAgICB2b2lkIHNldE9TUkVudHJ5QmxvY2so
Vk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBDb2RlQmxvY2sqIG9zckVudHJ5QmxvY2spOwpAQCAt
MTI2LDcgKzEyNiw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBwdHJkaWZmX3QgY29tbW9uRGF0
YU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKSVRDb2RlLCBjb21tb24pOyB9CiAK
LSAgICBPcHRpb25hbDxDb2RlT3JpZ2luPiBmaW5kUEMoQ29kZUJsb2NrKiwgdm9pZCogcGMpIG92
ZXJyaWRlOworICAgIE9wdGlvbmFsPENvZGVPcmlnaW4+IGZpbmRQQyhDb2RlQmxvY2sqLCB2b2lk
KiBwYykgZmluYWw7CiAKICAgICB1c2luZyBEaXJlY3RKSVRDb2RlOjppbml0aWFsaXplQ29kZVJl
ZkZvckRGRzsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklURmluYWxpemVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXpl
ci5oCmluZGV4IDJmYzI3NDVhOTNhNTdhMTZjOGZjY2JkMDdlNTU1OWE4MzA3OTRhZWQuLjVjYWQ3
ZTk4M2YwYTI2MjRlOTkzZTkyYjUwODU5OWFlODA1NDY5ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIuaApAQCAtMzMsMTQgKzMzLDE0IEBACiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAotY2xhc3MgSklURmluYWxpemVyIDogcHVibGlj
IEZpbmFsaXplciB7CitjbGFzcyBKSVRGaW5hbGl6ZXIgZmluYWwgOiBwdWJsaWMgRmluYWxpemVy
IHsKIHB1YmxpYzoKICAgICBKSVRGaW5hbGl6ZXIoUGxhbiYsIFJlZjxKSVRDb2RlPiYmLCBzdGQ6
OnVuaXF1ZV9wdHI8TGlua0J1ZmZlcj4sIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRy
VGFnPiB3aXRoQXJpdHlDaGVjayA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFn
PihNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz46OkVtcHR5VmFsdWUpKTsKLSAg
ICB2aXJ0dWFsIH5KSVRGaW5hbGl6ZXIoKTsKKyAgICB+SklURmluYWxpemVyKCkgZmluYWw7CiAg
ICAgCi0gICAgc2l6ZV90IGNvZGVTaXplKCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBmaW5hbGl6ZSgp
IG92ZXJyaWRlOwotICAgIGJvb2wgZmluYWxpemVGdW5jdGlvbigpIG92ZXJyaWRlOworICAgIHNp
emVfdCBjb2RlU2l6ZSgpIGZpbmFsOworICAgIGJvb2wgZmluYWxpemUoKSBmaW5hbDsKKyAgICBi
b29sIGZpbmFsaXplRnVuY3Rpb24oKSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICB2b2lkIGZpbmFs
aXplQ29tbW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Rv
RlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKaW5kZXggOGY3ODAyOTI0
Y2E4MDIyNGRiMzliMTI1MjNlOGQxMGM1OTU1MTJkMC4uYWRkM2NiMDNlY2FlMDNhMTU3NzRhMWQx
MDE5M2U4NzdlM2VmZmJmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaApAQCAtMzYs
MTcgKzM2LDE3IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGFibGU7CiAKIG5hbWVzcGFjZSBERkcgewog
Ci1jbGFzcyBUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayA6IHB1YmxpYyBEZWZlcnJl
ZENvbXBpbGF0aW9uQ2FsbGJhY2sgewotcHJvdGVjdGVkOgotICAgIFRvRlRMRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrKCk7Ci0KK2NsYXNzIFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxi
YWNrIGZpbmFsIDogcHVibGljIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayB7CiBwdWJsaWM6
Ci0gICAgdmlydHVhbCB+VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKTsKKyAgICB+
VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKSBmaW5hbDsKIAogICAgIHN0YXRpYyBS
ZWY8VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZSgpOwogICAgIAotICAg
IHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5bmNocm9ub3VzbHkoQ29k
ZUJsb2NrKiwgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jayk7Ci0gICAgdmlydHVhbCB2
b2lkIGNvbXBpbGF0aW9uRGlkQ29tcGxldGUoQ29kZUJsb2NrKiwgQ29kZUJsb2NrKiBwcm9maWxl
ZERGR0NvZGVCbG9jaywgQ29tcGlsYXRpb25SZXN1bHQpOworICAgIHZvaWQgY29tcGlsYXRpb25E
aWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KENvZGVCbG9jayosIENvZGVCbG9jayogcHJvZmls
ZWRERkdDb2RlQmxvY2spIGZpbmFsOworICAgIHZvaWQgY29tcGlsYXRpb25EaWRDb21wbGV0ZShD
b2RlQmxvY2sqLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBDb21waWxhdGlvblJl
c3VsdCkgZmluYWw7CisKK3ByaXZhdGU6CisgICAgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2soKTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGls
YXRpb25DYWxsYmFjay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTEZvck9T
UkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKaW5kZXggZWUwNTJhZGEzMDA3MTgy
NDI0ZjAzMmE3ZDgyYTVkYjYyNjUxOWJhNS4uNzZlNWI1YjIyMmM2YjJiNTc4ZDY2NjlmN2M5YmQ4
MmVkNTVmZGUyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZU
TEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrLmgKQEAgLTM3LDE5ICszNywxOCBAQCBjbGFzcyBTY3JpcHRFeGVjdXRhYmxlOwogCiBu
YW1lc3BhY2UgREZHIHsKIAotY2xhc3MgVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRp
b25DYWxsYmFjayA6IHB1YmxpYyBEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2sgewotcHJvdGVj
dGVkOgotICAgIFRvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soSklU
Q29kZTo6VHJpZ2dlclJlYXNvbiogZm9yY2VkT1NSRW50cnlUcmlnZ2VyKTsKLQorY2xhc3MgVG9G
VExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayBmaW5hbCA6IHB1YmxpYyBE
ZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2sgewogcHVibGljOgotICAgIHZpcnR1YWwgflRvRlRM
Rm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKTsKKyAgICB+VG9GVExGb3JP
U1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpIGZpbmFsOwogCiAgICAgc3RhdGlj
IFJlZjxUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjcmVhdGUo
SklUQ29kZTo6VHJpZ2dlclJlYXNvbiogZm9yY2VkT1NSRW50cnlUcmlnZ2VyKTsKLSAgICAKLSAg
ICB2aXJ0dWFsIHZvaWQgY29tcGlsYXRpb25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KENv
ZGVCbG9jayosIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2spOwotICAgIHZpcnR1YWwg
dm9pZCBjb21waWxhdGlvbkRpZENvbXBsZXRlKENvZGVCbG9jayosIENvZGVCbG9jayogcHJvZmls
ZWRERkdDb2RlQmxvY2ssIENvbXBpbGF0aW9uUmVzdWx0KTsKKworICAgIHZvaWQgY29tcGlsYXRp
b25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KENvZGVCbG9jayosIENvZGVCbG9jayogcHJv
ZmlsZWRERkdDb2RlQmxvY2spIGZpbmFsOworICAgIHZvaWQgY29tcGlsYXRpb25EaWRDb21wbGV0
ZShDb2RlQmxvY2sqLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBDb21waWxhdGlv
blJlc3VsdCkgZmluYWw7CiAKIHByaXZhdGU6CisgICAgVG9GVExGb3JPU1JFbnRyeURlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjayhKSVRDb2RlOjpUcmlnZ2VyUmVhc29uKiBmb3JjZWRPU1JFbnRy
eVRyaWdnZXIpOworCiAgICAgSklUQ29kZTo6VHJpZ2dlclJlYXNvbiogbV9mb3JjZWRPU1JFbnRy
eVRyaWdnZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEZvck9TUkVudHJ5SklUQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExGb3JP
U1JFbnRyeUpJVENvZGUuaAppbmRleCAyNjg5ZDNhNzE2Yjc1M2Y1ZDY4MmNlZDBjYzU0NzE1Zjhh
NzU5N2ExLi43YWFlMzUwNGViNTQ4MmJmYzZhZDA0MzhmM2ZmZDNjZjY5NmEzNzgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEZvck9TUkVudHJ5SklUQ29kZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRm9yT1NSRW50cnlKSVRDb2RlLmgKQEAg
LTQwLDEwICs0MCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAvLwogLy8g
LSBFYWNoIE9TUiBlbnRyeSBjb21waWxhdGlvbiBhbGxvd3MgZW50cnkgdGhyb3VnaCBvbmx5IG9u
ZSBieXRlY29kZSBpbmRleC4KIAotY2xhc3MgRm9yT1NSRW50cnlKSVRDb2RlIDogcHVibGljIEZU
TDo6SklUQ29kZSB7CitjbGFzcyBGb3JPU1JFbnRyeUpJVENvZGUgZmluYWwgOiBwdWJsaWMgRlRM
OjpKSVRDb2RlIHsKIHB1YmxpYzoKICAgICBGb3JPU1JFbnRyeUpJVENvZGUoKTsKLSAgICB+Rm9y
T1NSRW50cnlKSVRDb2RlKCk7CisgICAgfkZvck9TUkVudHJ5SklUQ29kZSgpIGZpbmFsOwogICAg
IAogICAgIHZvaWQgaW5pdGlhbGl6ZUVudHJ5QnVmZmVyKFZNJiwgdW5zaWduZWQgbnVtQ2FsbGVl
TG9jYWxzKTsKICAgICBTY3JhdGNoQnVmZmVyKiBlbnRyeUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJu
IG1fZW50cnlCdWZmZXI7IH0KQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZvaWQgY291
bnRFbnRyeUZhaWx1cmUoKSB7IG1fZW50cnlGYWlsdXJlQ291bnQrKzsgfQogICAgIHVuc2lnbmVk
IGVudHJ5RmFpbHVyZUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9lbnRyeUZhaWx1cmVDb3VudDsg
fQogICAgIAotICAgIEZvck9TUkVudHJ5SklUQ29kZSogZnRsRm9yT1NSRW50cnkoKTsKKyAgICBG
b3JPU1JFbnRyeUpJVENvZGUqIGZ0bEZvck9TUkVudHJ5KCkgZmluYWw7CiAgICAgCiBwcml2YXRl
OgogICAgIFNjcmF0Y2hCdWZmZXIqIG1fZW50cnlCdWZmZXI7IC8vIE9ubHkgZm9yIE9TUiBlbnRy
eSBjb2RlIGJsb2Nrcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SklUQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKaW5kZXgg
MDBiYWEyY2I4NzI4MTMyMDgwOGRhZjM0NGIwY2YwNjZiYTIzYTI1Yi4uY2YxNjY3MTRiOTBhMWFh
ZDJkNDk1ZmJmMjU2MGRiOTVkNTg2ZTRmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExKSVRDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExK
SVRDb2RlLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIEZUTCB7CiBjbGFzcyBKSVRDb2Rl
IDogcHVibGljIEpTQzo6SklUQ29kZSB7CiBwdWJsaWM6CiAgICAgSklUQ29kZSgpOwotICAgIH5K
SVRDb2RlKCk7CisgICAgfkpJVENvZGUoKSBvdmVycmlkZTsKIAogICAgIENvZGVQdHI8SlNFbnRy
eVB0clRhZz4gYWRkcmVzc0ZvckNhbGwoQXJpdHlDaGVja01vZGUpIG92ZXJyaWRlOwogICAgIHZv
aWQqIGV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuaAppbmRleCA2NzliYmZm
NjA5OWRmNWRhNWFiMDRmOWQwMGFjZjcwYmVmMTJhNTIyLi5kNWI1NWVmZmFkNTA3MTFmMGVmNDVj
NTFlMTIzMDYxMzVjYzE1NWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEpJVEZpbmFsaXplci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklU
RmluYWxpemVyLmgKQEAgLTQ3LDE0ICs0NywxNCBAQCBwdWJsaWM6CiAgICAgY29uc3QgY2hhciog
bV9jb2RlRGVzY3JpcHRpb247CiB9OwogCi1jbGFzcyBKSVRGaW5hbGl6ZXIgOiBwdWJsaWMgREZH
OjpGaW5hbGl6ZXIgeworY2xhc3MgSklURmluYWxpemVyIGZpbmFsIDogcHVibGljIERGRzo6Rmlu
YWxpemVyIHsKIHB1YmxpYzoKICAgICBKSVRGaW5hbGl6ZXIoREZHOjpQbGFuJik7Ci0gICAgdmly
dHVhbCB+SklURmluYWxpemVyKCk7CisgICAgfkpJVEZpbmFsaXplcigpIGZpbmFsOwogCi0gICAg
c2l6ZV90IGNvZGVTaXplKCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBmaW5hbGl6ZSgpIG92ZXJyaWRl
OwotICAgIGJvb2wgZmluYWxpemVGdW5jdGlvbigpIG92ZXJyaWRlOworICAgIHNpemVfdCBjb2Rl
U2l6ZSgpIGZpbmFsOworICAgIGJvb2wgZmluYWxpemUoKSBmaW5hbDsKKyAgICBib29sIGZpbmFs
aXplRnVuY3Rpb24oKSBmaW5hbDsKICAgICAKICAgICBib29sIGZpbmFsaXplQ29tbW9uKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3BhY2Uu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3BhY2UuaAppbmRleCA0
YzhhODY0MTUwOGZkMGVjOGE1N2ViYjc1YTc1YjUwZDQ2Y2Q4MWY4Li4yOTI3ODQ3MzRhY2M4MDhh
ZDIzMTg4ZmUyZjc4Yzc4NWE5MDRkM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQ29tcGxldGVTdWJzcGFjZS5oCkBAIC0yOSwyMCArMjksMjAgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLWNsYXNzIENvbXBsZXRlU3Vic3BhY2UgOiBwdWJsaWMgU3Vic3BhY2UgeworY2xhc3Mg
Q29tcGxldGVTdWJzcGFjZSBmaW5hbCA6IHB1YmxpYyBTdWJzcGFjZSB7CiBwdWJsaWM6CiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgQ29tcGxldGVTdWJzcGFjZShDU3RyaW5nIG5hbWUsIEhlYXAmLCBI
ZWFwQ2VsbFR5cGUqLCBBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKik7Ci0gICAgSlNfRVhQT1JUX1BS
SVZBVEUgfkNvbXBsZXRlU3Vic3BhY2UoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB+Q29tcGxl
dGVTdWJzcGFjZSgpIGZpbmFsOwogCiAgICAgLy8gSW4gc29tZSBjb2RlIHBhdGhzLCB3ZSBuZWVk
IGl0IHRvIGJlIGEgY29tcGlsZSBlcnJvciB0byBjYWxsIHRoZSB2aXJ0dWFsIHZlcnNpb24gb2Yg
b25lIG9mCiAgICAgLy8gdGhlc2UgZnVuY3Rpb25zLiBUaGF0J3Mgd2h5IHdlIGRvIGZpbmFsIG1l
dGhvZHMgdGhlIG9sZCBzY2hvb2wgd2F5LgogICAgIAogICAgIC8vIEZJWE1FOiBDdXJyZW50bHkg
c3Vic3BhY2VzIHNwZWFrIG9mIEJsb2NrRGlyZWN0b3JpZXMgYXMgImFsbG9jYXRvcnMiLCBidXQg
dGhhdCdzIHRlbXBvcmFyeS4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgxNTU5Ci0gICAgQWxsb2NhdG9yIGFsbG9jYXRvckZvcihzaXplX3QsIEFsbG9j
YXRvckZvck1vZGUpIG92ZXJyaWRlOworICAgIEFsbG9jYXRvciBhbGxvY2F0b3JGb3Ioc2l6ZV90
LCBBbGxvY2F0b3JGb3JNb2RlKSBmaW5hbDsKICAgICBBbGxvY2F0b3IgYWxsb2NhdG9yRm9yTm9u
VmlydHVhbChzaXplX3QsIEFsbG9jYXRvckZvck1vZGUpOwogICAgIAotICAgIHZvaWQqIGFsbG9j
YXRlKFZNJiwgc2l6ZV90LCBHQ0RlZmVycmFsQ29udGV4dCosIEFsbG9jYXRpb25GYWlsdXJlTW9k
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCogYWxsb2NhdGUoVk0mLCBzaXplX3QsIEdDRGVmZXJyYWxD
b250ZXh0KiwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlKSBmaW5hbDsKICAgICB2b2lkKiBhbGxvY2F0
ZU5vblZpcnR1YWwoVk0mLCBzaXplX3QsIEdDRGVmZXJyYWxDb250ZXh0KiwgQWxsb2NhdGlvbkZh
aWx1cmVNb2RlKTsKICAgICB2b2lkKiByZWFsbG9jYXRlUHJlY2lzZUFsbG9jYXRpb25Ob25WaXJ0
dWFsKFZNJiwgSGVhcENlbGwqLCBzaXplX3QsIEdDRGVmZXJyYWxDb250ZXh0KiwgQWxsb2NhdGlv
bkZhaWx1cmVNb2RlKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Zhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9GYXN0TWFsbG9jQWxpZ25lZE1lbW9yeUFsbG9jYXRvci5oCmluZGV4IDM3MmFm
NDFkYjU4ODZmNzE3NmYxYjQ5MmRjOTAwYzIwMWZlYTY3M2YuLjBjZDM4ZjRmNGExMzk2ZGIzNWI4
MGVkZTZhMzEwMGM3NzgyODgxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Zhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvRmFzdE1hbGxvY0FsaWduZWRNZW1vcnlBbGxvY2F0b3IuaApAQCAtMzMs
MTkgKzMzLDE5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBGYXN0TWFsbG9jQWxpZ25l
ZE1lbW9yeUFsbG9jYXRvciA6IHB1YmxpYyBBbGlnbmVkTWVtb3J5QWxsb2NhdG9yIHsKK2NsYXNz
IEZhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxsb2NhdG9yIGZpbmFsIDogcHVibGljIEFsaWduZWRN
ZW1vcnlBbGxvY2F0b3IgewogcHVibGljOgogICAgIEZhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxs
b2NhdG9yKCk7Ci0gICAgfkZhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKCk7CisgICAg
fkZhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKCkgZmluYWw7CiAgICAgCi0gICAgdm9p
ZCogdHJ5QWxsb2NhdGVBbGlnbmVkTWVtb3J5KHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXpl
KSBvdmVycmlkZTsKLSAgICB2b2lkIGZyZWVBbGlnbmVkTWVtb3J5KHZvaWQqKSBvdmVycmlkZTsK
KyAgICB2b2lkKiB0cnlBbGxvY2F0ZUFsaWduZWRNZW1vcnkoc2l6ZV90IGFsaWdubWVudCwgc2l6
ZV90IHNpemUpIGZpbmFsOworICAgIHZvaWQgZnJlZUFsaWduZWRNZW1vcnkodm9pZCopIGZpbmFs
OwogICAgIAotICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCogdHJ5QWxs
b2NhdGVNZW1vcnkoc2l6ZV90KSBvdmVycmlkZTsKLSAgICB2b2lkIGZyZWVNZW1vcnkodm9pZCop
IG92ZXJyaWRlOwotICAgIHZvaWQqIHRyeVJlYWxsb2NhdGVNZW1vcnkodm9pZCosIHNpemVfdCkg
b3ZlcnJpZGU7CisgICAgdm9pZCogdHJ5QWxsb2NhdGVNZW1vcnkoc2l6ZV90KSBmaW5hbDsKKyAg
ICB2b2lkIGZyZWVNZW1vcnkodm9pZCopIGZpbmFsOworICAgIHZvaWQqIHRyeVJlYWxsb2NhdGVN
ZW1vcnkodm9pZCosIHNpemVfdCkgZmluYWw7CiAKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJF
QUtET1dOKQogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0dpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvR2lnYWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmgKaW5kZXggZDQ1MzU0MDUxNjBm
ZTNmY2M5ZmJhNDE1NDJhMDY5MWVhZDZiYWI0NC4uMjA4NDZiNmRjNjZmMTQ5N2E3Njg0N2JmN2Qz
MjUyNGE5NjEzZDFkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR2ln
YWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvR2lnYWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmgKQEAgLTM0LDE5ICszNCwxOSBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgR2lnYWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2Nh
dG9yIDogcHVibGljIEFsaWduZWRNZW1vcnlBbGxvY2F0b3IgeworY2xhc3MgR2lnYWNhZ2VBbGln
bmVkTWVtb3J5QWxsb2NhdG9yIGZpbmFsIDogcHVibGljIEFsaWduZWRNZW1vcnlBbGxvY2F0b3Ig
ewogcHVibGljOgogICAgIEdpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvcihHaWdhY2FnZTo6
S2luZCk7Ci0gICAgfkdpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvcigpOworICAgIH5HaWdh
Y2FnZUFsaWduZWRNZW1vcnlBbGxvY2F0b3IoKSBmaW5hbDsKICAgICAKLSAgICB2b2lkKiB0cnlB
bGxvY2F0ZUFsaWduZWRNZW1vcnkoc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpIG92ZXJy
aWRlOwotICAgIHZvaWQgZnJlZUFsaWduZWRNZW1vcnkodm9pZCopIG92ZXJyaWRlOworICAgIHZv
aWQqIHRyeUFsbG9jYXRlQWxpZ25lZE1lbW9yeShzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6
ZSkgZmluYWw7CisgICAgdm9pZCBmcmVlQWxpZ25lZE1lbW9yeSh2b2lkKikgZmluYWw7CiAgICAg
Ci0gICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBk
dW1wKFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkKiB0cnlBbGxvY2F0ZU1l
bW9yeShzaXplX3QpIG92ZXJyaWRlOwotICAgIHZvaWQgZnJlZU1lbW9yeSh2b2lkKikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCogdHJ5UmVhbGxvY2F0ZU1lbW9yeSh2b2lkKiwgc2l6ZV90KSBvdmVycmlk
ZTsKKyAgICB2b2lkKiB0cnlBbGxvY2F0ZU1lbW9yeShzaXplX3QpIGZpbmFsOworICAgIHZvaWQg
ZnJlZU1lbW9yeSh2b2lkKikgZmluYWw7CisgICAgdm9pZCogdHJ5UmVhbGxvY2F0ZU1lbW9yeSh2
b2lkKiwgc2l6ZV90KSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBHaWdhY2FnZTo6S2luZCBtX2tp
bmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RC
dWlsZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVy
LmgKaW5kZXggMmQwODVhMWY0ZThmYmVhYmM4MzUzM2VjZmU2ZmEyYTI5MTZhMDBmYS4uNWI5ODVk
NDVhNDk3MDBiNGQ3ZTg0OGIxOGY0N2RjM2U3YjhlZTkyMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXBTbmFwc2hvdEJ1aWxkZXIuaApAQCAtMTA4LDcgKzEwOCw3IEBA
IHB1YmxpYzoKICAgICBlbnVtIFNuYXBzaG90VHlwZSB7IEluc3BlY3RvclNuYXBzaG90LCBHQ0Rl
YnVnZ2luZ1NuYXBzaG90IH07CiAKICAgICBIZWFwU25hcHNob3RCdWlsZGVyKEhlYXBQcm9maWxl
ciYsIFNuYXBzaG90VHlwZSA9IFNuYXBzaG90VHlwZTo6SW5zcGVjdG9yU25hcHNob3QpOwotICAg
IH5IZWFwU25hcHNob3RCdWlsZGVyKCk7CisgICAgfkhlYXBTbmFwc2hvdEJ1aWxkZXIoKSBmaW5h
bDsKIAogICAgIHN0YXRpYyB2b2lkIHJlc2V0TmV4dEF2YWlsYWJsZU9iamVjdElkZW50aWZpZXIo
KTsKIApAQCAtMTE2LDE3ICsxMTYsMTcgQEAgcHVibGljOgogICAgIHZvaWQgYnVpbGRTbmFwc2hv
dCgpOwogCiAgICAgLy8gQSByb290IG9yIG1hcmtlZCBjZWxsLgotICAgIHZvaWQgYW5hbHl6ZU5v
ZGUoSlNDZWxsKik7CisgICAgdm9pZCBhbmFseXplTm9kZShKU0NlbGwqKSBmaW5hbDsKIAogICAg
IC8vIEEgcmVmZXJlbmNlIGZyb20gb25lIGNlbGwgdG8gYW5vdGhlci4KLSAgICB2b2lkIGFuYWx5
emVFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVh
c29uKTsKLSAgICB2b2lkIGFuYWx5emVQcm9wZXJ0eU5hbWVFZGdlKEpTQ2VsbCogZnJvbSwgSlND
ZWxsKiB0bywgVW5pcXVlZFN0cmluZ0ltcGwqIHByb3BlcnR5TmFtZSk7Ci0gICAgdm9pZCBhbmFs
eXplVmFyaWFibGVOYW1lRWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIFVuaXF1ZWRTdHJp
bmdJbXBsKiB2YXJpYWJsZU5hbWUpOwotICAgIHZvaWQgYW5hbHl6ZUluZGV4RWRnZShKU0NlbGwq
IGZyb20sIEpTQ2VsbCogdG8sIHVpbnQzMl90IGluZGV4KTsKLQotICAgIHZvaWQgc2V0T3BhcXVl
Um9vdFJlYWNoYWJpbGl0eVJlYXNvbkZvckNlbGwoSlNDZWxsKiwgY29uc3QgY2hhciopOwotICAg
IHZvaWQgc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoSlNDZWxsKiwgdm9pZCopOwotICAgIHZvaWQg
c2V0TGFiZWxGb3JDZWxsKEpTQ2VsbCosIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgYW5hbHl6
ZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFz
b24pIGZpbmFsOworICAgIHZvaWQgYW5hbHl6ZVByb3BlcnR5TmFtZUVkZ2UoSlNDZWxsKiBmcm9t
LCBKU0NlbGwqIHRvLCBVbmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHlOYW1lKSBmaW5hbDsKKyAg
ICB2b2lkIGFuYWx5emVWYXJpYWJsZU5hbWVFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywg
VW5pcXVlZFN0cmluZ0ltcGwqIHZhcmlhYmxlTmFtZSkgZmluYWw7CisgICAgdm9pZCBhbmFseXpl
SW5kZXhFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgdWludDMyX3QgaW5kZXgpIGZpbmFs
OworCisgICAgdm9pZCBzZXRPcGFxdWVSb290UmVhY2hhYmlsaXR5UmVhc29uRm9yQ2VsbChKU0Nl
bGwqLCBjb25zdCBjaGFyKikgZmluYWw7CisgICAgdm9pZCBzZXRXcmFwcGVkT2JqZWN0Rm9yQ2Vs
bChKU0NlbGwqLCB2b2lkKikgZmluYWw7CisgICAgdm9pZCBzZXRMYWJlbEZvckNlbGwoSlNDZWxs
KiwgY29uc3QgU3RyaW5nJikgZmluYWw7CiAKICAgICBTdHJpbmcganNvbigpOwogICAgIFN0cmlu
ZyBqc29uKEZ1bmN0aW9uPGJvb2wgKGNvbnN0IEhlYXBTbmFwc2hvdE5vZGUmKT4gYWxsb3dOb2Rl
Q2FsbGJhY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvQWxp
Z25lZE1lbW9yeUFsbG9jYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvQWxp
Z25lZE1lbW9yeUFsbG9jYXRvci5oCmluZGV4IGNkYjc5OTJlMTMyZTU4ZTk1YTU5ZjQxMzY0NDky
ZmUyNzJhMWMxMDQuLjA2YmViNTI0N2YyNWI2Y2Y1M2IzYTgzMjNhYzI4Nzg5ZTlkM2EwMWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0FsaWduZWRNZW1vcnlBbGxv
Y2F0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29BbGlnbmVkTWVtb3J5
QWxsb2NhdG9yLmgKQEAgLTM0LDE5ICszNCwxOSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xh
c3MgSXNvQWxpZ25lZE1lbW9yeUFsbG9jYXRvciA6IHB1YmxpYyBBbGlnbmVkTWVtb3J5QWxsb2Nh
dG9yIHsKK2NsYXNzIElzb0FsaWduZWRNZW1vcnlBbGxvY2F0b3IgZmluYWwgOiBwdWJsaWMgQWxp
Z25lZE1lbW9yeUFsbG9jYXRvciB7CiBwdWJsaWM6CiAgICAgSXNvQWxpZ25lZE1lbW9yeUFsbG9j
YXRvcihDU3RyaW5nKTsKLSAgICB+SXNvQWxpZ25lZE1lbW9yeUFsbG9jYXRvcigpOworICAgIH5J
c29BbGlnbmVkTWVtb3J5QWxsb2NhdG9yKCkgZmluYWw7CiAKLSAgICB2b2lkKiB0cnlBbGxvY2F0
ZUFsaWduZWRNZW1vcnkoc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpIG92ZXJyaWRlOwot
ICAgIHZvaWQgZnJlZUFsaWduZWRNZW1vcnkodm9pZCopIG92ZXJyaWRlOworICAgIHZvaWQqIHRy
eUFsbG9jYXRlQWxpZ25lZE1lbW9yeShzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkgZmlu
YWw7CisgICAgdm9pZCBmcmVlQWxpZ25lZE1lbW9yeSh2b2lkKikgZmluYWw7CiAKLSAgICB2b2lk
IGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXAoUHJpbnRT
dHJlYW0mKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQqIHRyeUFsbG9jYXRlTWVtb3J5KHNpemVf
dCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBmcmVlTWVtb3J5KHZvaWQqKSBvdmVycmlkZTsKLSAgICB2
b2lkKiB0cnlSZWFsbG9jYXRlTWVtb3J5KHZvaWQqLCBzaXplX3QpIG92ZXJyaWRlOworICAgIHZv
aWQqIHRyeUFsbG9jYXRlTWVtb3J5KHNpemVfdCkgZmluYWw7CisgICAgdm9pZCBmcmVlTWVtb3J5
KHZvaWQqKSBmaW5hbDsKKyAgICB2b2lkKiB0cnlSZWFsbG9jYXRlTWVtb3J5KHZvaWQqLCBzaXpl
X3QpIGZpbmFsOwogCiBwcml2YXRlOgogI2lmIEVOQUJMRShNQUxMT0NfSEVBUF9CUkVBS0RPV04p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2UuaAppbmRleCBhMzdiNGJiNDRh
ZWE5YmE2MTFkODA4Mjc4OTIwZTQxNzI0NmMzMTVhLi5hNWY4MTVlMTI4YjI5ZjU5MTgyODRhYzFh
ZTBjMTZiZjgxNTFjY2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9J
c29TdWJzcGFjZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNl
LmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgSXNvQ2VsbFNldDsKIGNsYXNzIElzb1N1YnNwYWNl
IDogcHVibGljIFN1YnNwYWNlIHsKIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBJc29T
dWJzcGFjZShDU3RyaW5nIG5hbWUsIEhlYXAmLCBIZWFwQ2VsbFR5cGUqLCBzaXplX3Qgc2l6ZSwg
dWludDhfdCBudW1iZXJPZkxvd2VyVGllckNlbGxzKTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSB+
SXNvU3Vic3BhY2UoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB+SXNvU3Vic3BhY2UoKSBvdmVy
cmlkZTsKIAogICAgIHNpemVfdCBjZWxsU2l6ZSgpIHsgcmV0dXJuIG1fZGlyZWN0b3J5LmNlbGxT
aXplKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vi
c3BhY2VQZXJWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBl
clZNLmNwcAppbmRleCBjNWUzZTM4ODBiNjM1NDgyODU3YzZlMmNjOWU3NmYwMmMzMzliN2M2Li5m
MzBhMTQzOTI5MzA4NTQzZWExM2VlOTViNjgzNWFhYjBiYzJiZTI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmNwcApAQCAtMzEsNyArMzEsNyBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgSXNvU3Vic3BhY2VQZXJWTTo6QXV0b3JlbW92
aW5nSXNvU3Vic3BhY2UgOiBwdWJsaWMgSXNvU3Vic3BhY2UgeworY2xhc3MgSXNvU3Vic3BhY2VQ
ZXJWTTo6QXV0b3JlbW92aW5nSXNvU3Vic3BhY2UgZmluYWwgOiBwdWJsaWMgSXNvU3Vic3BhY2Ug
ewogcHVibGljOgogICAgIEF1dG9yZW1vdmluZ0lzb1N1YnNwYWNlKElzb1N1YnNwYWNlUGVyVk0m
IHBlclZNLCBDU3RyaW5nIG5hbWUsIEhlYXAmIGhlYXAsIEhlYXBDZWxsVHlwZSogaGVhcENlbGxU
eXBlLCBzaXplX3Qgc2l6ZSkKICAgICAgICAgOiBJc29TdWJzcGFjZShuYW1lLCBoZWFwLCBoZWFw
Q2VsbFR5cGUsIHNpemUsIC8qIG51bWJlck9mTG93ZXJUaWVyQ2VsbHMgKi8gMCkKQEAgLTM5LDcg
KzM5LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAgICAgCi0gICAgfkF1dG9yZW1vdmluZ0lz
b1N1YnNwYWNlKCkKKyAgICB+QXV0b3JlbW92aW5nSXNvU3Vic3BhY2UoKSBmaW5hbAogICAgIHsK
ICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3BlclZNLm1fbG9jayk7CiAgICAgICAg
IG1fcGVyVk0ubV9zdWJzcGFjZVBlclZNLnJlbW92ZSgmc3BhY2UoKS5oZWFwKCkudm0oKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmgKaW5kZXggNDhl
NjgyYjI0Y2UwNzE1YTVlZjBiM2UwMmZjMTE5YWJmNWVmMzcwZi4uNGE5OWE4ODVmOTYxYjk3ZWJi
YTc4YzJhNWI3NWNkNzY0NGE1NmNlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSXNvU3Vic3BhY2VQZXJWTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0lzb1N1YnNwYWNlUGVyVk0uaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIC8v
IHN1cmUgdG8gYmUgbWFpbi10aHJlYWQtb25seS4gQnV0IGlmIGEgY2xhc3MgdHlwaWNhbGx5IGdl
dHMgaW5zdGFudGlhdGVkIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBhdAogLy8gb25jZSwgdGhlbiB0
aGlzIGlzIG5vdCBncmVhdCwgYmVjYXVzZSBjb25jdXJyZW50IGFsbG9jYXRpb25zIHdpbGwgcHJv
YmFibHkgY29udGVuZCBvbiB0aGlzIHRoaW5nJ3MKIC8vIGxvY2suCi1jbGFzcyBJc29TdWJzcGFj
ZVBlclZNIHsKK2NsYXNzIElzb1N1YnNwYWNlUGVyVk0gZmluYWwgewogcHVibGljOgogICAgIHN0
cnVjdCBTdWJzcGFjZVBhcmFtZXRlcnMgewogICAgICAgICBTdWJzcGFjZVBhcmFtZXRlcnMoKSB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFja01lcmdp
bmdDb25zdHJhaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2tNZXJn
aW5nQ29uc3RyYWludC5oCmluZGV4IGU5OTM1NzRmZDkwN2ZlNzZlZTRmODFkNjAzNGQ4YWQ1MDc2
ZjIyNTAuLjY1YzIxM2I2NDU0ZDBiZDk4NmM1MzcxOTAzMWZiZDhkY2RjZjk0MzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFja01lcmdpbmdDb25zdHJhaW50
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrTWVyZ2luZ0NvbnN0
cmFpbnQuaApAQCAtMzIsMTggKzMyLDE3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSGVhcDsK
IGNsYXNzIFNsb3RWaXNpdG9yOwogCi1jbGFzcyBNYXJrU3RhY2tNZXJnaW5nQ29uc3RyYWludCA6
IHB1YmxpYyBNYXJraW5nQ29uc3RyYWludCB7CitjbGFzcyBNYXJrU3RhY2tNZXJnaW5nQ29uc3Ry
YWludCBmaW5hbCA6IHB1YmxpYyBNYXJraW5nQ29uc3RyYWludCB7CiBwdWJsaWM6CiAgICAgTWFy
a1N0YWNrTWVyZ2luZ0NvbnN0cmFpbnQoSGVhcCYpOwotICAgIH5NYXJrU3RhY2tNZXJnaW5nQ29u
c3RyYWludCgpOworICAgIH5NYXJrU3RhY2tNZXJnaW5nQ29uc3RyYWludCgpIGZpbmFsOwogICAg
IAotICAgIGRvdWJsZSBxdWlja1dvcmtFc3RpbWF0ZShTbG90VmlzaXRvciYpIG92ZXJyaWRlOwot
ICAgIAotcHJvdGVjdGVkOgotICAgIHZvaWQgcHJlcGFyZVRvRXhlY3V0ZUltcGwoY29uc3QgQWJz
dHJhY3RMb2NrZXImIGNvbnN0cmFpbnRTb2x2aW5nTG9ja2VyLCBTbG90VmlzaXRvciYpIG92ZXJy
aWRlOwotICAgIHZvaWQgZXhlY3V0ZUltcGwoU2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKKyAgICBk
b3VibGUgcXVpY2tXb3JrRXN0aW1hdGUoU2xvdFZpc2l0b3ImKSBmaW5hbDsKICAgICAKIHByaXZh
dGU6CisgICAgdm9pZCBwcmVwYXJlVG9FeGVjdXRlSW1wbChjb25zdCBBYnN0cmFjdExvY2tlciYg
Y29uc3RyYWludFNvbHZpbmdMb2NrZXIsIFNsb3RWaXNpdG9yJikgZmluYWw7CisgICAgdm9pZCBl
eGVjdXRlSW1wbChTbG90VmlzaXRvciYpIGZpbmFsOworICAgIAogICAgIEhlYXAmIG1faGVhcDsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1NpbXBsZU1hcmtp
bmdDb25zdHJhaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TaW1wbGVNYXJraW5n
Q29uc3RyYWludC5oCmluZGV4IGYwMjE4OGNiZWJmYjhmOTMyNjA1Mzk2MjAzZDQ1ZWRkZDdhN2M1
NGMuLjRmNDNlYWNmMzZkZjIzYTIxNjk2MTljZWQyNzE4ODYxNTg5MzIwZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1NpbXBsZU1hcmtpbmdDb25zdHJhaW50LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2ltcGxlTWFya2luZ0NvbnN0cmFpbnQuaApA
QCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIC8vIFRoaXMgYWxsb3dzIGZvciBhbiBp
bmZvcm1hbCB3YXkgdG8gZGVmaW5lIGNvbnN0cmFpbnRzLiBKdXN0IHBhc3MgYSBsYW1iZGEgdG8g
dGhlIGNvbnN0cnVjdG9yLiBUaGUgb25seQogLy8gZG93bnNpZGUgaXMgdGhhdCB0aGlzIG1ha2Vz
IGl0IGhhcmQgZm9yIGNvbnN0cmFpbnRzIHRvIG92ZXJyaWRlIGFueSBmdW5jdGlvbnMgaW4gTWFy
a2luZ0NvbnN0cmFpbnQKIC8vIG90aGVyIHRoYW4gZXhlY3V0ZUltcGwuIEluIHRob3NlIGNhc2Vz
LCBqdXN0IHN1YmNsYXNzIE1hcmtpbmdDb25zdHJhaW50LgotY2xhc3MgU2ltcGxlTWFya2luZ0Nv
bnN0cmFpbnQgOiBwdWJsaWMgTWFya2luZ0NvbnN0cmFpbnQgeworY2xhc3MgU2ltcGxlTWFya2lu
Z0NvbnN0cmFpbnQgZmluYWwgOiBwdWJsaWMgTWFya2luZ0NvbnN0cmFpbnQgewogcHVibGljOgog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIFNpbXBsZU1hcmtpbmdDb25zdHJhaW50KAogICAgICAgICBD
U3RyaW5nIGFiYnJldmlhdGVkTmFtZSwgQ1N0cmluZyBuYW1lLApAQCAtNTEsMTAgKzUxLDEwIEBA
IHB1YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIH5TaW1w
bGVNYXJraW5nQ29uc3RyYWludCgpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIH5TaW1wbGVNYXJr
aW5nQ29uc3RyYWludCgpIGZpbmFsOwogICAgIAogcHJpdmF0ZToKLSAgICB2b2lkIGV4ZWN1dGVJ
bXBsKFNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7CisgICAgdm9pZCBleGVjdXRlSW1wbChTbG90Vmlz
aXRvciYpIGZpbmFsOwogCiAgICAgOjpGdW5jdGlvbjx2b2lkKFNsb3RWaXNpdG9yJik+IG1fZXhl
Y3V0ZUZ1bmN0aW9uOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaAppbmRleCBlYmRlZDI1NTlmZGJjZTY3OWE5YWY1
ZjI0OThhZThkYzFjNzY3ZjU5Li45NzU3ODJiNzQzOWI3ZWYyMDc0ODY3MjE3OTI4NWVlYTAyMzNl
MmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TcGFjZVRpbWVNdXRh
dG9yU2NoZWR1bGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3BhY2VUaW1l
TXV0YXRvclNjaGVkdWxlci5oCkBAIC0zOCwyNSArMzgsMjUgQEAgY2xhc3MgSGVhcDsKIC8vIHRo
YXQgdGhlIHdvcmxkIGlzIHBhdXNlZCBmb3IgdG8gdGhlIGFtb3VudCBvZiBzcGFjZSB0aGF0IHRo
ZSB3b3JsZCBhbGxvY2F0ZWQgc2luY2UgdGhlIEdDIGN5Y2xlCiAvLyBiZWdhbi4KIAotY2xhc3Mg
U3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlciA6IHB1YmxpYyBNdXRhdG9yU2NoZWR1bGVyIHsKK2Ns
YXNzIFNwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIgZmluYWwgOiBwdWJsaWMgTXV0YXRvclNjaGVk
dWxlciB7CiBwdWJsaWM6CiAgICAgU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcihIZWFwJik7Ci0g
ICAgflNwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIoKTsKKyAgICB+U3BhY2VUaW1lTXV0YXRvclNj
aGVkdWxlcigpIGZpbmFsOwogICAgIAotICAgIFN0YXRlIHN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgU3RhdGUgc3RhdGUoKSBjb25zdCBmaW5hbDsKICAgICAKLSAgICB2b2lkIGJlZ2luQ29s
bGVjdGlvbigpIG92ZXJyaWRlOworICAgIHZvaWQgYmVnaW5Db2xsZWN0aW9uKCkgZmluYWw7CiAg
ICAgCi0gICAgdm9pZCBkaWRTdG9wKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsUmVzdW1lKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRFeGVjdXRlQ29uc3RyYWludHMoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRpZFN0b3AoKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxSZXN1bWUoKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZEV4ZWN1dGVDb25zdHJhaW50cygpIGZpbmFsOwogICAgIAotICAgIE1vbm90b25p
Y1RpbWUgdGltZVRvU3RvcCgpIG92ZXJyaWRlOwotICAgIE1vbm90b25pY1RpbWUgdGltZVRvUmVz
dW1lKCkgb3ZlcnJpZGU7CisgICAgTW9ub3RvbmljVGltZSB0aW1lVG9TdG9wKCkgZmluYWw7Cisg
ICAgTW9ub3RvbmljVGltZSB0aW1lVG9SZXN1bWUoKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIGxv
ZygpIG92ZXJyaWRlOworICAgIHZvaWQgbG9nKCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBlbmRD
b2xsZWN0aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmRDb2xsZWN0aW9uKCkgZmluYWw7CiAg
ICAgCiBwcml2YXRlOgogICAgIGNsYXNzIFNuYXBzaG90OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2No
ZWR1bGVyLmgKaW5kZXggNGVjYTkwODU2YjM0MjZhNmNjNjM1NTI1ZWZiNzA3NTFiNzlhYjMxYS4u
NTg4NjBlZDYwMDhiY2EwZmI1NGUyZDNkN2I0NTlmMzMyNjQxYmU1MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVs
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1l
TXV0YXRvclNjaGVkdWxlci5oCkBAIC0zOSwyNyArMzksMjcgQEAgY2xhc3MgSGVhcDsKIC8vIHRo
YXQgdGhlIHdvcmxkIGlzIHBhdXNlZCBmb3IgdG8gdGhlIGFtb3VudCBvZiBzcGFjZSB0aGF0IHRo
ZSB3b3JsZCBhbGxvY2F0ZWQgc2luY2UgdGhlIEdDIGN5Y2xlCiAvLyBiZWdhbi4KIAotY2xhc3Mg
U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIgOiBwdWJsaWMgTXV0YXRvclNjaGVk
dWxlciB7CitjbGFzcyBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlciBmaW5hbCA6
IHB1YmxpYyBNdXRhdG9yU2NoZWR1bGVyIHsKIHB1YmxpYzoKICAgICBTdG9jaGFzdGljU3BhY2VU
aW1lTXV0YXRvclNjaGVkdWxlcihIZWFwJik7Ci0gICAgflN0b2NoYXN0aWNTcGFjZVRpbWVNdXRh
dG9yU2NoZWR1bGVyKCk7CisgICAgflN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVy
KCkgZmluYWw7CiAgICAgCi0gICAgU3RhdGUgc3RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBT
dGF0ZSBzdGF0ZSgpIGNvbnN0IGZpbmFsOwogICAgIAotICAgIHZvaWQgYmVnaW5Db2xsZWN0aW9u
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBiZWdpbkNvbGxlY3Rpb24oKSBmaW5hbDsKICAgICAKLSAg
ICB2b2lkIGRpZFN0b3AoKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxSZXN1bWUoKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGRpZFJlYWNoVGVybWluYXRpb24oKSBvdmVycmlkZTsKLSAgICB2b2lkIGRp
ZEV4ZWN1dGVDb25zdHJhaW50cygpIG92ZXJyaWRlOwotICAgIHZvaWQgc3luY2hyb25vdXNEcmFp
bmluZ0RpZFN0YWxsKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRTdG9wKCkgZmluYWw7CisgICAg
dm9pZCB3aWxsUmVzdW1lKCkgZmluYWw7CisgICAgdm9pZCBkaWRSZWFjaFRlcm1pbmF0aW9uKCkg
ZmluYWw7CisgICAgdm9pZCBkaWRFeGVjdXRlQ29uc3RyYWludHMoKSBmaW5hbDsKKyAgICB2b2lk
IHN5bmNocm9ub3VzRHJhaW5pbmdEaWRTdGFsbCgpIGZpbmFsOwogICAgIAotICAgIE1vbm90b25p
Y1RpbWUgdGltZVRvU3RvcCgpIG92ZXJyaWRlOwotICAgIE1vbm90b25pY1RpbWUgdGltZVRvUmVz
dW1lKCkgb3ZlcnJpZGU7CisgICAgTW9ub3RvbmljVGltZSB0aW1lVG9TdG9wKCkgZmluYWw7Cisg
ICAgTW9ub3RvbmljVGltZSB0aW1lVG9SZXN1bWUoKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIGxv
ZygpIG92ZXJyaWRlOworICAgIHZvaWQgbG9nKCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBlbmRD
b2xsZWN0aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmRDb2xsZWN0aW9uKCkgZmluYWw7CiAg
ICAgCiBwcml2YXRlOgogICAgIGNsYXNzIFNuYXBzaG90OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvU3luY2hyb25vdXNTdG9wVGhlV29ybGRNdXRhdG9yU2NoZWR1bGVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TeW5jaHJvbm91c1N0b3BUaGVXb3JsZE11
dGF0b3JTY2hlZHVsZXIuaAppbmRleCA0NmFmNDBkNzNkNTEyN2Q1Yzk0OGRjMzdjOGM2NmU0ODk3
ZDYxNzAxLi4zYzZkZjk0Y2M5YzE0YzVmOTgwZDJiNTIwNjhkZTVkOTBhNWJkYmMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TeW5jaHJvbm91c1N0b3BUaGVXb3JsZE11
dGF0b3JTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TeW5jaHJv
bm91c1N0b3BUaGVXb3JsZE11dGF0b3JTY2hlZHVsZXIuaApAQCAtMzUsMTkgKzM1LDE5IEBAIG5h
bWVzcGFjZSBKU0MgewogLy8gdGhhbiBYODYtNjQgYW5kIEFSTTY0LiBUaGlzIHNjaGVkdWxlciBp
cyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgZm9yIHRoZSBjb25jdXJyZW50IEdDJ3MKIC8vIFNwYWNl
VGltZU11dGF0b3JTY2hlZHVsZXIuIEl0IHRlbGxzIHRoZSBHQyB0byBuZXZlciByZXN1bWUgdGhl
IHdvcmxkIG9uY2UgdGhlIEdDIGN5Y2xlIGJlZ2lucy4KIAotY2xhc3MgU3luY2hyb25vdXNTdG9w
VGhlV29ybGRNdXRhdG9yU2NoZWR1bGVyIDogcHVibGljIE11dGF0b3JTY2hlZHVsZXIgeworY2xh
c3MgU3luY2hyb25vdXNTdG9wVGhlV29ybGRNdXRhdG9yU2NoZWR1bGVyIGZpbmFsIDogcHVibGlj
IE11dGF0b3JTY2hlZHVsZXIgewogcHVibGljOgogICAgIFN5bmNocm9ub3VzU3RvcFRoZVdvcmxk
TXV0YXRvclNjaGVkdWxlcigpOwotICAgIH5TeW5jaHJvbm91c1N0b3BUaGVXb3JsZE11dGF0b3JT
Y2hlZHVsZXIoKTsKKyAgICB+U3luY2hyb25vdXNTdG9wVGhlV29ybGRNdXRhdG9yU2NoZWR1bGVy
KCkgZmluYWw7CiAgICAgCi0gICAgU3RhdGUgc3RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBT
dGF0ZSBzdGF0ZSgpIGNvbnN0IGZpbmFsOwogICAgIAotICAgIHZvaWQgYmVnaW5Db2xsZWN0aW9u
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBiZWdpbkNvbGxlY3Rpb24oKSBmaW5hbDsKICAgICAKLSAg
ICBNb25vdG9uaWNUaW1lIHRpbWVUb1N0b3AoKSBvdmVycmlkZTsKLSAgICBNb25vdG9uaWNUaW1l
IHRpbWVUb1Jlc3VtZSgpIG92ZXJyaWRlOworICAgIE1vbm90b25pY1RpbWUgdGltZVRvU3RvcCgp
IGZpbmFsOworICAgIE1vbm90b25pY1RpbWUgdGltZVRvUmVzdW1lKCkgZmluYWw7CiAgICAgCi0g
ICAgdm9pZCBlbmRDb2xsZWN0aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmRDb2xsZWN0aW9u
KCkgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgU3RhdGUgbV9zdGF0ZSB7IE5vcm1hbCB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmgKaW5k
ZXggYzY0ZmMyNDRmMGJjYjJmMzRiZTA1ZWU0MDcwYTk2MGY5YjE1M2E4Yi4uMTVjZDhjNjczNjIw
Yjc5MzQ5YjI2OTFlOWI4NGRhMzUwNTM2Yjk0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0dDQXdhcmVKSVRTdHViUm91dGluZS5oCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNz
IEpJVFN0dWJSb3V0aW5lU2V0OwogY2xhc3MgR0NBd2FyZUpJVFN0dWJSb3V0aW5lIDogcHVibGlj
IEpJVFN0dWJSb3V0aW5lIHsKIHB1YmxpYzoKICAgICBHQ0F3YXJlSklUU3R1YlJvdXRpbmUoY29u
c3QgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiYsIFZNJik7Ci0g
ICAgdmlydHVhbCB+R0NBd2FyZUpJVFN0dWJSb3V0aW5lKCk7CisgICAgfkdDQXdhcmVKSVRTdHVi
Um91dGluZSgpIG92ZXJyaWRlOwogCiAgICAgc3RhdGljIFJlZjxKSVRTdHViUm91dGluZT4gY3Jl
YXRlKGNvbnN0IE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRTdHViUm91dGluZVB0clRhZz4mIGNv
ZGUsIFZNJiB2bSkKICAgICB7CkBAIC04Myw3ICs4Myw3IEBAIGNsYXNzIE1hcmtpbmdHQ0F3YXJl
SklUU3R1YlJvdXRpbmUgOiBwdWJsaWMgR0NBd2FyZUpJVFN0dWJSb3V0aW5lIHsKIHB1YmxpYzoK
ICAgICBNYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lKAogICAgICAgICBjb25zdCBNYWNyb0Fz
c2VtYmxlckNvZGVSZWY8SklUU3R1YlJvdXRpbmVQdHJUYWc+JiwgVk0mLCBjb25zdCBKU0NlbGwq
IG93bmVyLCBjb25zdCBWZWN0b3I8SlNDZWxsKj4mLCBCYWc8Q2FsbExpbmtJbmZvPiYmKTsKLSAg
ICB2aXJ0dWFsIH5NYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lKCk7CisgICAgfk1hcmtpbmdH
Q0F3YXJlSklUU3R1YlJvdXRpbmUoKSBvdmVycmlkZTsKICAgICAKIHByb3RlY3RlZDoKICAgICB2
b2lkIG1hcmtSZXF1aXJlZE9iamVjdHNJbnRlcm5hbChTbG90VmlzaXRvciYpIG92ZXJyaWRlOwpA
QCAtOTcsMTQgKzk3LDE0IEBAIHByaXZhdGU6CiAvLyBUaGUgc3R1YiBoYXMgZXhjZXB0aW9uIGhh
bmRsZXJzIGluIGl0LiBTbyBpdCBjbGVhcnMgaXRzZWxmIGZyb20gZXhjZXB0aW9uCiAvLyBoYW5k
bGluZyB0YWJsZSB3aGVuIGl0IGRpZXMuIEl0IGFsc28gZnJlZXMgc3BhY2UgaW4gQ29kZU9yaWdp
biB0YWJsZQogLy8gZm9yIG5ldyBleGNlcHRpb24gaGFuZGxlcnMgdG8gdXNlIHRoZSBzYW1lIERp
c3Bvc2FibGVDYWxsU2l0ZUluZGV4LgotY2xhc3MgR0NBd2FyZUpJVFN0dWJSb3V0aW5lV2l0aEV4
Y2VwdGlvbkhhbmRsZXIgOiBwdWJsaWMgTWFya2luZ0dDQXdhcmVKSVRTdHViUm91dGluZSB7Citj
bGFzcyBHQ0F3YXJlSklUU3R1YlJvdXRpbmVXaXRoRXhjZXB0aW9uSGFuZGxlciBmaW5hbCA6IHB1
YmxpYyBNYXJraW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lIHsKIHB1YmxpYzoKICAgICB0eXBlZGVm
IEdDQXdhcmVKSVRTdHViUm91dGluZSBCYXNlOwogCiAgICAgR0NBd2FyZUpJVFN0dWJSb3V0aW5l
V2l0aEV4Y2VwdGlvbkhhbmRsZXIoY29uc3QgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFN0dWJS
b3V0aW5lUHRyVGFnPiYsIFZNJiwgY29uc3QgSlNDZWxsKiBvd25lciwgY29uc3QgVmVjdG9yPEpT
Q2VsbCo+JiwgQmFnPENhbGxMaW5rSW5mbz4mJiwgQ29kZUJsb2NrKiwgRGlzcG9zYWJsZUNhbGxT
aXRlSW5kZXgpOwogCi0gICAgdm9pZCBhYm91dFRvRGllKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBv
YnNlcnZlWmVyb1JlZkNvdW50KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBhYm91dFRvRGllKCkgZmlu
YWw7CisgICAgdm9pZCBvYnNlcnZlWmVyb1JlZkNvdW50KCkgZmluYWw7CiAKIHByaXZhdGU6CiAg
ICAgQ29kZUJsb2NrKiBtX2NvZGVCbG9ja1dpdGhFeGNlcHRpb25IYW5kbGVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVENvZGUuaAppbmRleCAwMzE4ZmIwZGJhY2VhYmFhZjE2ZDkyYTBjMTM5YTE5
MDQwYTFiMWVkLi42ZmE3MjQ0ZWYwYTA4YzlmMDQ3YTMyMjA0ZjczN2QyOTI4NzE5MDZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaApAQCAtMjI2LDcgKzIyNiw3IEBAIHByb3RlY3Rl
ZDoKICAgICBKSVRDb2RlV2l0aENvZGVSZWYoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgSklUVHlw
ZSwgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGUpOwogCiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+SklU
Q29kZVdpdGhDb2RlUmVmKCk7CisgICAgfkpJVENvZGVXaXRoQ29kZVJlZigpIG92ZXJyaWRlOwog
CiAgICAgdm9pZCogZXhlY3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KSBvdmVy
cmlkZTsKICAgICB2b2lkKiBkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpIG92ZXJy
aWRlOwpAQCAtMjQ1LDcgKzI0NSw3IEBAIHB1YmxpYzoKICAgICBEaXJlY3RKSVRDb2RlKEpJVFR5
cGUpOwogICAgIERpcmVjdEpJVENvZGUoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgQ29kZVB0cjxK
U0VudHJ5UHRyVGFnPiB3aXRoQXJpdHlDaGVjaywgSklUVHlwZSwgSklUQ29kZTo6U2hhcmVBdHRy
aWJ1dGUgPSBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZTo6Tm90U2hhcmVkKTsKICAgICBEaXJlY3RK
SVRDb2RlKENvZGVSZWY8SlNFbnRyeVB0clRhZz4sIENvZGVQdHI8SlNFbnRyeVB0clRhZz4gd2l0
aEFyaXR5Q2hlY2ssIEpJVFR5cGUsIEludHJpbnNpYywgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGUg
PSBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZTo6Tm90U2hhcmVkKTsgLy8gRm9yIGdlbmVyYXRlZCB0
aHVuay4KLSAgICB2aXJ0dWFsIH5EaXJlY3RKSVRDb2RlKCk7CisgICAgfkRpcmVjdEpJVENvZGUo
KSBvdmVycmlkZTsKICAgICAKICAgICBDb2RlUHRyPEpTRW50cnlQdHJUYWc+IGFkZHJlc3NGb3JD
YWxsKEFyaXR5Q2hlY2tNb2RlKSBvdmVycmlkZTsKIApAQCAtMjYwLDcgKzI2MCw3IEBAIGNsYXNz
IE5hdGl2ZUpJVENvZGUgOiBwdWJsaWMgSklUQ29kZVdpdGhDb2RlUmVmIHsKIHB1YmxpYzoKICAg
ICBOYXRpdmVKSVRDb2RlKEpJVFR5cGUpOwogICAgIE5hdGl2ZUpJVENvZGUoQ29kZVJlZjxKU0Vu
dHJ5UHRyVGFnPiwgSklUVHlwZSwgSW50cmluc2ljLCBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZSA9
IEpJVENvZGU6OlNoYXJlQXR0cmlidXRlOjpOb3RTaGFyZWQpOwotICAgIHZpcnR1YWwgfk5hdGl2
ZUpJVENvZGUoKTsKKyAgICB+TmF0aXZlSklUQ29kZSgpIG92ZXJyaWRlOwogCiAgICAgQ29kZVB0
cjxKU0VudHJ5UHRyVGFnPiBhZGRyZXNzRm9yQ2FsbChBcml0eUNoZWNrTW9kZSkgb3ZlcnJpZGU7
CiB9OwpAQCAtMjY4LDkgKzI2OCw5IEBAIHB1YmxpYzoKIGNsYXNzIE5hdGl2ZURPTUpJVENvZGUg
ZmluYWwgOiBwdWJsaWMgTmF0aXZlSklUQ29kZSB7CiBwdWJsaWM6CiAgICAgTmF0aXZlRE9NSklU
Q29kZShDb2RlUmVmPEpTRW50cnlQdHJUYWc+LCBKSVRUeXBlLCBJbnRyaW5zaWMsIGNvbnN0IERP
TUpJVDo6U2lnbmF0dXJlKik7Ci0gICAgdmlydHVhbCB+TmF0aXZlRE9NSklUQ29kZSgpID0gZGVm
YXVsdDsKKyAgICB+TmF0aXZlRE9NSklUQ29kZSgpIGZpbmFsID0gZGVmYXVsdDsKIAotICAgIGNv
bnN0IERPTUpJVDo6U2lnbmF0dXJlKiBzaWduYXR1cmUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX3NpZ25hdHVyZTsgfQorICAgIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJlKiBzaWduYXR1cmUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NpZ25hdHVyZTsgfQogCiBwcml2YXRlOgogICAgIGNv
bnN0IERPTUpJVDo6U2lnbmF0dXJlKiBtX3NpZ25hdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFRodW5rcy5oCmluZGV4IDgxOWRiMWMxMWM4Y2NhNDFlM2ZmYTgyYjA4YjBiZWIzNTFhNDQy
N2EuLjdlODc1YzM3M2U0N2RkYzAxZGIzNDhhZWRmMzUwMzViYWFlMmEzMWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuaApAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBKSVRUaHVu
a3MgZmluYWwgOiBwcml2YXRlIFdlYWtIYW5kbGVPd25lciB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgSklUVGh1bmtzKCk7Ci0gICAgdmlydHVhbCB+SklUVGh1
bmtzKCk7CisgICAgfkpJVFRodW5rcygpIGZpbmFsOwogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyPEpJVFRodW5rUHRyVGFnPiBjdGlOYXRpdmVDYWxsKFZNJik7CiAgICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyPEpJVFRodW5rUHRyVGFnPiBjdGlOYXRpdmVDb25zdHJ1Y3QoVk0mKTsKQEAgLTY3
LDcgKzY3LDcgQEAgcHVibGljOgogICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGhvc3RGdW5jdGlvblN0
dWIoVk0mLCBUYWdnZWROYXRpdmVGdW5jdGlvbiwgVGh1bmtHZW5lcmF0b3IsIEludHJpbnNpYywg
Y29uc3QgU3RyaW5nJiBuYW1lKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGZpbmFsaXplKEhhbmRs
ZTxVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7CisgICAgdm9pZCBmaW5hbGl6ZShI
YW5kbGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIGZpbmFsOwogICAgIAogICAgIHR5cGVkZWYg
SGFzaE1hcDxUaHVua0dlbmVyYXRvciwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRy
VGFnPj4gQ1RJU3R1Yk1hcDsKICAgICBDVElTdHViTWFwIG1fY3RpU3R1Yk1hcDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2suaAppbmRleCBlYzUzZDc1OTc2YTZhZWNhYjkyMWU3NTg4YzhhMzRi
ODM0Mzc2Y2ZhLi45MTgzYmMxNzNiY2VlZDc4MzI3ZDFlN2MxZThlM2RlNWQ3MzY1MjZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUb0RGR0Rl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCkBAIC0zMywxNyArMzMsMTcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGFibGU7CiAKLWNsYXNzIEpJVFRvREZHRGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrIDogcHVibGljIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
ayB7Ci1wcm90ZWN0ZWQ6Ci0gICAgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2so
KTsKLQorY2xhc3MgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2sgZmluYWwgOiBw
dWJsaWMgRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFs
IH5KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpOworICAgIH5KSVRUb0RGR0Rl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaygpIGZpbmFsOwogCiAgICAgc3RhdGljIFJlZjxKSVRU
b0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjaz4gY3JlYXRlKCk7CiAgICAgCi0gICAgdm9p
ZCBjb21waWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5bmNocm9ub3VzbHkoQ29kZUJsb2NrKiwgQ29k
ZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21waWxh
dGlvbkRpZENvbXBsZXRlKENvZGVCbG9jayosIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxv
Y2ssIENvbXBpbGF0aW9uUmVzdWx0KSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBpbGF0aW9uRGlk
QmVjb21lUmVhZHlBc3luY2hyb25vdXNseShDb2RlQmxvY2sqLCBDb2RlQmxvY2sqIHByb2ZpbGVk
REZHQ29kZUJsb2NrKSBmaW5hbDsKKyAgICB2b2lkIGNvbXBpbGF0aW9uRGlkQ29tcGxldGUoQ29k
ZUJsb2NrKiwgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywgQ29tcGlsYXRpb25SZXN1
bHQpIGZpbmFsOworCitwcml2YXRlOgorICAgIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrKCk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaAppbmRleCAwNWJm
N2E0MjJlN2JhN2QwZWFkYjExZjRlMmY5NDViMDA0YjAxN2Y2Li4zNGVmOGM4Zjg0NDk0ZmUyNjRh
MjIxNzY1NjY0ZGE4NzJjODFmNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1BvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9Qb2x5bW9ycGhpY0NhbGxTdHViUm91dGluZS5oCkBAIC04MCwxNCArODAsMTQgQEAg
cHJpdmF0ZToKICAgICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwogfTsKIAotY2xhc3MgUG9seW1v
cnBoaWNDYWxsU3R1YlJvdXRpbmUgOiBwdWJsaWMgR0NBd2FyZUpJVFN0dWJSb3V0aW5lIHsKK2Ns
YXNzIFBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lIGZpbmFsIDogcHVibGljIEdDQXdhcmVKSVRT
dHViUm91dGluZSB7CiBwdWJsaWM6CiAgICAgUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUoCiAg
ICAgICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRTdHViUm91dGluZVB0clRhZz4m
LCBWTSYsIGNvbnN0IEpTQ2VsbCogb3duZXIsCiAgICAgICAgIENhbGxGcmFtZSogY2FsbGVyRnJh
bWUsIENhbGxMaW5rSW5mbyYsIGNvbnN0IFZlY3RvcjxQb2x5bW9ycGhpY0NhbGxDYXNlPiYsCiAg
ICAgICAgIFVuaXF1ZUFycmF5PHVpbnQzMl90PiYmIGZhc3RDb3VudHMpOwogICAgIAotICAgIHZp
cnR1YWwgflBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lKCk7CisgICAgflBvbHltb3JwaGljQ2Fs
bFN0dWJSb3V0aW5lKCkgZmluYWw7CiAgICAgCiAgICAgQ2FsbFZhcmlhbnRMaXN0IHZhcmlhbnRz
KCkgY29uc3Q7CiAgICAgYm9vbCBoYXNFZGdlcygpIGNvbnN0OwpAQCAtMTAyLDEyICsxMDIsMTEg
QEAgcHVibGljOgogICAgICAgICAgICAgZnVuY3Rvcih2YXJpYW50LmdldCgpKTsKICAgICB9CiAK
LSAgICBib29sIHZpc2l0V2VhayhWTSYpIG92ZXJyaWRlOwotCi1wcm90ZWN0ZWQ6Ci0gICAgdm9p
ZCBtYXJrUmVxdWlyZWRPYmplY3RzSW50ZXJuYWwoU2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKKyAg
ICBib29sIHZpc2l0V2VhayhWTSYpIGZpbmFsOwogCiBwcml2YXRlOgorICAgIHZvaWQgbWFya1Jl
cXVpcmVkT2JqZWN0c0ludGVybmFsKFNsb3RWaXNpdG9yJikgZmluYWw7CisKICAgICBWZWN0b3I8
V3JpdGVCYXJyaWVyPEpTQ2VsbD4sIDI+IG1fdmFyaWFudHM7CiAgICAgVW5pcXVlQXJyYXk8dWlu
dDMyX3Q+IG1fZmFzdENvdW50czsKICAgICBCYWc8UG9seW1vcnBoaWNDYWxsTm9kZT4gbV9jYWxs
Tm9kZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDY4NTMzZWJmMGY4ZmU2MzU4NjVjMzVkOWY0
NzczYTlmODllZjUyZGIuLjQyMjU3ZDZmMjAyN2M5NTU3MGQ5MmZlOWRjNWZlZGU0Y2NiZTQzYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC05NzMsMjYgKzk3MywyNiBAQCBzdGF0aWMgYm9vbCBm
ZXRjaFNjcmlwdEZyb21Mb2NhbEZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgVmVj
dG9yPGNoYXI+JgogICAgIHJldHVybiB0cnVlOwogfQogCi1jbGFzcyBTaGVsbFNvdXJjZVByb3Zp
ZGVyIDogcHVibGljIFN0cmluZ1NvdXJjZVByb3ZpZGVyIHsKK2NsYXNzIFNoZWxsU291cmNlUHJv
dmlkZXIgZmluYWwgOiBwdWJsaWMgU3RyaW5nU291cmNlUHJvdmlkZXIgewogcHVibGljOgogICAg
IHN0YXRpYyBSZWY8U2hlbGxTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgc291
cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsLCBjb25zdCBU
ZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3Vy
Y2VUeXBlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hlbGxTb3VyY2VQ
cm92aWRlcihzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9u
LCBzb3VyY2VUeXBlKSk7CiAgICAgfQogCi0gICAgflNoZWxsU291cmNlUHJvdmlkZXIoKQorICAg
IH5TaGVsbFNvdXJjZVByb3ZpZGVyKCkgZmluYWwKICAgICB7CiAgICAgICAgIGNvbW1pdENhY2hl
ZEJ5dGVjb2RlKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBjYWNoZWRC
eXRlY29kZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBjYWNo
ZWRCeXRlY29kZSgpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBpZiAoIW1fY2FjaGVkQnl0
ZWNvZGUpCiAgICAgICAgICAgICBsb2FkQnl0ZWNvZGUoKTsKICAgICAgICAgcmV0dXJuIG1fY2Fj
aGVkQnl0ZWNvZGUuY29weVJlZigpOwogICAgIH0KIAotICAgIHZvaWQgdXBkYXRlQ2FjaGUoY29u
c3QgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNv
ZGUmLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIGNvbnN0IFVubGlua2VkRnVuY3Rpb25D
b2RlQmxvY2sqIGNvZGVCbG9jaykgY29uc3Qgb3ZlcnJpZGUKKyAgICB2b2lkIHVwZGF0ZUNhY2hl
KGNvbnN0IFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBjb25zdCBTb3Vy
Y2VDb2RlJiwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBjb25zdCBVbmxpbmtlZEZ1bmN0
aW9uQ29kZUJsb2NrKiBjb2RlQmxvY2spIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBpZiAo
IWNhY2hlRW5hYmxlZCgpIHx8ICFtX2NhY2hlZEJ5dGVjb2RlKQogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMTAwMiw3ICsxMDAyLDcgQEAgcHVibGljOgogICAgICAgICAgICAgbV9jYWNoZWRCeXRl
Y29kZS0+YWRkRnVuY3Rpb25VcGRhdGUoZXhlY3V0YWJsZSwga2luZCwgKmNhY2hlZEJ5dGVjb2Rl
KTsKICAgICB9CiAKLSAgICB2b2lkIGNhY2hlQnl0ZWNvZGUoY29uc3QgQnl0ZWNvZGVDYWNoZUdl
bmVyYXRvciYgZ2VuZXJhdG9yKSBjb25zdCBvdmVycmlkZQorICAgIHZvaWQgY2FjaGVCeXRlY29k
ZShjb25zdCBCeXRlY29kZUNhY2hlR2VuZXJhdG9yJiBnZW5lcmF0b3IpIGNvbnN0IGZpbmFsCiAg
ICAgewogICAgICAgICBpZiAoIWNhY2hlRW5hYmxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMTAxMyw3ICsxMDEzLDcgQEAgcHVibGljOgogICAgICAgICAgICAgbV9jYWNoZWRCeXRlY29k
ZS0+YWRkR2xvYmFsVXBkYXRlKCp1cGRhdGUpOwogICAgIH0KIAotICAgIHZvaWQgY29tbWl0Q2Fj
aGVkQnl0ZWNvZGUoKSBjb25zdCBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0Q2FjaGVkQnl0ZWNv
ZGUoKSBjb25zdCBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKCFjYWNoZUVuYWJsZWQoKSB8fCAh
bV9jYWNoZWRCeXRlY29kZSB8fCAhbV9jYWNoZWRCeXRlY29kZS0+aGFzVXBkYXRlcygpKQogICAg
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9MZXhlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAppbmRl
eCA5YzE1NTRhMDhhOWZlYTg5YjczMmUxY2I2OGEwMzNkN2MyMDgxNzEwLi5kNmVjMDNkNTFkYWMy
YTE0ZTExOTQ5MmZmNmQ4MGUwOGQ2ZmIwZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL0xleGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L0xleGVyLmNwcApAQCAtNzQ2LDcgKzc0Niw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wg
aXNJZGVudFN0YXJ0KENoYXJhY3RlclR5cGUgYykKICAgICByZXR1cm4gdHlwZXNPZkxhdGluMUNo
YXJhY3RlcnNbc3RhdGljX2Nhc3Q8TENoYXI+KGMpXSA9PSBDaGFyYWN0ZXJJZGVudGlmaWVyU3Rh
cnQ7CiB9CiAKLXN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgaXNTaW5nbGVDaGFyYWN0ZXJJZGVu
dFN0YXJ0KFVDaGFyIGMpCitzdGF0aWMgQUxXQVlTX0lOTElORSBVTlVTRURfRlVOQ1RJT04gYm9v
bCBpc1NpbmdsZUNoYXJhY3RlcklkZW50U3RhcnQoVUNoYXIgYykKIHsKICAgICBpZiAoTElLRUxZ
KGlzTGF0aW4xKGMpKSkKICAgICAgICAgcmV0dXJuIGlzSWRlbnRTdGFydChzdGF0aWNfY2FzdDxM
Q2hhcj4oYykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNE
ZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmgKaW5kZXggMzMzOWY2MDhm
NTY4MTU2YmM2NDVlNzkwYjhmNTUwZmU3NTMxYTJkYy4uNzdkNWYwOGMyNDRlZjk3ZmRjN2Y0OThk
YTg0Mjk4MWNkOGJhZjVmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oCkBAIC0y
OSwxMyArMjksMTMgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEpTRGVzdHJ1Y3RpYmxl
T2JqZWN0SGVhcENlbGxUeXBlIDogcHVibGljIEhlYXBDZWxsVHlwZSB7CitjbGFzcyBKU0Rlc3Ry
dWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZSBmaW5hbCA6IHB1YmxpYyBIZWFwQ2VsbFR5cGUgewog
cHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENl
bGxUeXBlKCk7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB+SlNEZXN0cnVjdGlibGVP
YmplY3RIZWFwQ2VsbFR5cGUoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB+SlNEZXN0cnVjdGli
bGVPYmplY3RIZWFwQ2VsbFR5cGUoKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIGZpbmlzaFN3ZWVw
KE1hcmtlZEJsb2NrOjpIYW5kbGUmLCBGcmVlTGlzdCopIG92ZXJyaWRlOwotICAgIHZvaWQgZGVz
dHJveShWTSYsIEpTQ2VsbCopIG92ZXJyaWRlOworICAgIHZvaWQgZmluaXNoU3dlZXAoTWFya2Vk
QmxvY2s6OkhhbmRsZSYsIEZyZWVMaXN0KikgZmluYWw7CisgICAgdm9pZCBkZXN0cm95KFZNJiwg
SlNDZWxsKikgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxl
ci5oCmluZGV4IDc2MjVmN2Q2MGNmOTQwNGI0MGQyNWFjMmUxY2JjYzM2OWFkN2JhNmYuLmY3ZTUw
YmZiM2QxMGM3MjI3MTU4YmJhYWYxNGRhNTk5NGRhOTdmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIu
aApAQCAtNDYsMjAgKzQ2LDIwIEBAIG5hbWVzcGFjZSBKU0MgewogLy8gICBhbHJlYWR5IGJlZW4g
Y3JlYXRlZCBhbmQgaXQgZGlkbid0IGRpZSwgdGhlbiB5b3UgZ2V0IHRoZSBzYW1lCiAvLyAgIG9u
ZS4KIAotY2xhc3MgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIgOiBwdWJsaWMgVHlwZWRBcnJh
eUNvbnRyb2xsZXIgeworY2xhc3MgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIgZmluYWwgOiBw
dWJsaWMgVHlwZWRBcnJheUNvbnRyb2xsZXIgewogcHVibGljOgogICAgIFNpbXBsZVR5cGVkQXJy
YXlDb250cm9sbGVyKCk7Ci0gICAgdmlydHVhbCB+U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIo
KTsKKyAgICB+U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoKSBmaW5hbDsKICAgICAKLSAgICBK
U0FycmF5QnVmZmVyKiB0b0pTKEpTR2xvYmFsT2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqLCBBcnJh
eUJ1ZmZlciopIG92ZXJyaWRlOwotICAgIHZvaWQgcmVnaXN0ZXJXcmFwcGVyKEpTR2xvYmFsT2Jq
ZWN0KiwgQXJyYXlCdWZmZXIqLCBKU0FycmF5QnVmZmVyKikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBp
c0F0b21pY3NXYWl0QWxsb3dlZE9uQ3VycmVudFRocmVhZCgpIG92ZXJyaWRlOworICAgIEpTQXJy
YXlCdWZmZXIqIHRvSlMoSlNHbG9iYWxPYmplY3QqLCBKU0dsb2JhbE9iamVjdCosIEFycmF5QnVm
ZmVyKikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlcldyYXBwZXIoSlNHbG9iYWxPYmplY3QqLCBB
cnJheUJ1ZmZlciosIEpTQXJyYXlCdWZmZXIqKSBmaW5hbDsKKyAgICBib29sIGlzQXRvbWljc1dh
aXRBbGxvd2VkT25DdXJyZW50VGhyZWFkKCkgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgY2xhc3Mg
SlNBcnJheUJ1ZmZlck93bmVyIDogcHVibGljIFdlYWtIYW5kbGVPd25lciB7CisgICAgY2xhc3Mg
SlNBcnJheUJ1ZmZlck93bmVyIGZpbmFsIDogcHVibGljIFdlYWtIYW5kbGVPd25lciB7CiAgICAg
cHVibGljOgotICAgICAgICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIFNsb3RWaXNpdG9yJiwgY29uc3QgY2hh
cioqIHJlYXNvbikgb3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCkgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wgaXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCog
Y29udGV4dCwgU2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiogcmVhc29uKSBmaW5hbDsKKyAgICAg
ICAgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0
KSBmaW5hbDsKICAgICB9OwogCiAgICAgSlNBcnJheUJ1ZmZlck93bmVyIG1fb3duZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCmluZGV4IGY2OTY0ODBhNzk5MjQy
MDljNGI1ZDFjNzI5Y2Y5YjJkMmMyMGNkYTYuLmE5MjQzNWRlOTczM2ZhYjc1ZjQzMWEyNTYxNGIx
YTRlZmY4NzVlOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5o
CkBAIC05NiwyNiArOTYsMjYgQEAgc3RydWN0IFByb3BlcnR5TWFwRW50cnkgewogICAgIH0KIH07
CiAKLWNsYXNzIFN0cnVjdHVyZUZpcmVEZXRhaWwgOiBwdWJsaWMgRmlyZURldGFpbCB7CitjbGFz
cyBTdHJ1Y3R1cmVGaXJlRGV0YWlsIGZpbmFsIDogcHVibGljIEZpcmVEZXRhaWwgewogcHVibGlj
OgogICAgIFN0cnVjdHVyZUZpcmVEZXRhaWwoY29uc3QgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAg
ICAgICAgIDogbV9zdHJ1Y3R1cmUoc3RydWN0dXJlKQogICAgIHsKICAgICB9CiAgICAgCi0gICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgZHVt
cChQcmludFN0cmVhbSYgb3V0KSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBjb25zdCBT
dHJ1Y3R1cmUqIG1fc3RydWN0dXJlOwogfTsKIAotY2xhc3MgRGVmZXJyZWRTdHJ1Y3R1cmVUcmFu
c2l0aW9uV2F0Y2hwb2ludEZpcmUgOiBwdWJsaWMgRGVmZXJyZWRXYXRjaHBvaW50RmlyZSB7Citj
bGFzcyBEZWZlcnJlZFN0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50RmlyZSBmaW5hbCA6IHB1
YmxpYyBEZWZlcnJlZFdhdGNocG9pbnRGaXJlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShE
ZWZlcnJlZFN0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50RmlyZSk7CiBwdWJsaWM6CiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgRGVmZXJyZWRTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludEZp
cmUoVk0mLCBTdHJ1Y3R1cmUqKTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSB+RGVmZXJyZWRTdHJ1
Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludEZpcmUoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB+
RGVmZXJyZWRTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludEZpcmUoKSBmaW5hbDsKICAgICAK
LSAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0IGZpbmFsOwogCiAgICAgY29uc3QgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3N0cnVjdHVyZTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrR0NNYXAuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtHQ01hcC5oCmluZGV4IDMzODVjMjBkOTA2YWFmYmUw
MmIwMzA4MmJmMTkxYzE2YTRlNjRiMmUuLjg4ZWZkODY1OTRlMTdiYjJkZWYzYzc0NzU4ZWE5YWVk
YjQ2Yjg1NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtH
Q01hcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtHQ01hcC5oCkBA
IC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKIAogdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBl
bmFtZSBWYWx1ZUFyZywgdHlwZW5hbWUgSGFzaEFyZyA9IHR5cGVuYW1lIERlZmF1bHRIYXNoPEtl
eUFyZz46Okhhc2gsCiAgICAgdHlwZW5hbWUgS2V5VHJhaXRzQXJnID0gSGFzaFRyYWl0czxLZXlB
cmc+PgotY2xhc3MgV2Vha0dDTWFwIDogcHVibGljIFdlYWtHQ01hcEJhc2UgeworY2xhc3MgV2Vh
a0dDTWFwIGZpbmFsIDogcHVibGljIFdlYWtHQ01hcEJhc2UgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogICAgIHR5cGVkZWYgV2VhazxWYWx1ZUFyZz4gVmFsdWVUeXBlOwogICAgIHR5
cGVkZWYgSGFzaE1hcDxLZXlBcmcsIFZhbHVlVHlwZSwgSGFzaEFyZywgS2V5VHJhaXRzQXJnPiBI
YXNoTWFwVHlwZTsKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHR5cGVkZWYgdHlwZW5h
bWUgSGFzaE1hcFR5cGU6OmNvbnN0X2l0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOwogCiAgICAgZXhw
bGljaXQgV2Vha0dDTWFwKFZNJik7Ci0gICAgfldlYWtHQ01hcCgpOworICAgIH5XZWFrR0NNYXAo
KSBmaW5hbDsKIAogICAgIFZhbHVlQXJnKiBnZXQoY29uc3QgS2V5VHlwZSYga2V5KSBjb25zdAog
ICAgIHsKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogCiAgICAgaW5saW5lIGJvb2wgY29udGFp
bnMoY29uc3QgS2V5VHlwZSYga2V5KSBjb25zdDsKIAotICAgIHZvaWQgcHJ1bmVTdGFsZUVudHJp
ZXMoKSBvdmVycmlkZTsKKyAgICB2b2lkIHBydW5lU3RhbGVFbnRyaWVzKCkgZmluYWw7CiAKIHBy
aXZhdGU6CiAgICAgSGFzaE1hcFR5cGUgbV9tYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRW50cnlQbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtRW50cnlQbGFuLmgKaW5kZXggYjQ5ZGMyYjE1OTEyZGU5NjZjZDg4NmE2NDc0OGYwMWJj
N2MyZjQ0Ni4uYjAwMGY4YmEyMjhhNzA3ZTRjYTMzZGZjNjU2MThmOGM4ZmYwMDgwOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUVudHJ5UGxhbi5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21FbnRyeVBsYW4uaApAQCAtNTAsNyArNTAsNyBA
QCBwdWJsaWM6CiAgICAgRW50cnlQbGFuKENvbnRleHQqLCBSZWY8TW9kdWxlSW5mb3JtYXRpb24+
LCBBc3luY1dvcmssIENvbXBsZXRpb25UYXNrJiYpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIEVu
dHJ5UGxhbihDb250ZXh0KiwgVmVjdG9yPHVpbnQ4X3Q+JiYsIEFzeW5jV29yaywgQ29tcGxldGlv
blRhc2smJik7CiAKLSAgICB2aXJ0dWFsIH5FbnRyeVBsYW4oKSA9IGRlZmF1bHQ7CisgICAgfkVu
dHJ5UGxhbigpIG92ZXJyaWRlID0gZGVmYXVsdDsKIAogICAgIHZvaWQgcHJlcGFyZSgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399145</attachid>
            <date>2020-05-12 11:12:42 -0700</date>
            <delta_ts>2020-05-12 11:48:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-211743-20200512111241.patch</filename>
            <type>text/plain</type>
            <size>84343</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MTA4YjdjYjI1ZTI2NDUxNjgyMGFmNGI1Yzg0NjgzNzIzNGUwYjk2Li4xNGI5NTU0MDNkZWNiZjdj
MWRiNzk1OWY3MWY4YzBiMzU1NzY5MTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3OCBAQAorMjAyMC0wNS0xMSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW2NsYW5nLXRpZHldIFJ1biBtb2Rlcm5pemUtdXNlLW92ZXJyaWRl
IG92ZXIgSlNDLCB0aGVuIGVuc3VyZSBhcyBtdWNoIGFzIHBvc3NpYmxlIGlzIGZpbmFsCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE3NDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4KKworICAgICAgICAqIEFQSS9KU1NjcmlwdFJl
Zi5jcHA6CisgICAgICAgICogYjMvQjNBcmd1bWVudFJlZ1ZhbHVlLmg6CisgICAgICAgICogYjMv
QjNBdG9taWNWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzQ0NhbGxWYWx1ZS5oOgorICAgICAgICAq
IGIzL0IzQ2hlY2tTcGVjaWFsLmg6CisgICAgICAgICogYjMvQjNDaGVja1ZhbHVlLmg6CisgICAg
ICAgICogYjMvQjNDb25zdDMyVmFsdWUuaDoKKyAgICAgICAgKiBiMy9CM0NvbnN0NjRWYWx1ZS5o
OgorICAgICAgICAqIGIzL0IzQ29uc3REb3VibGVWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzQ29u
c3RGbG9hdFZhbHVlLmg6CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5oOgorICAgICAgICAq
IGIzL0IzRXh0cmFjdFZhbHVlLmg6CisgICAgICAgICogYjMvQjNGZW5jZVZhbHVlLmg6CisgICAg
ICAgICogYjMvQjNNZW1vcnlWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzUGF0Y2hwb2ludFNwZWNp
YWwuaDoKKyAgICAgICAgKiBiMy9CM1BhdGNocG9pbnRWYWx1ZS5oOgorICAgICAgICAqIGIzL0Iz
U2xvdEJhc2VWYWx1ZS5oOgorICAgICAgICAqIGIzL0IzU3RhY2ttYXBTcGVjaWFsLmg6CisgICAg
ICAgICogYjMvQjNTdGFja21hcFZhbHVlLmg6CisgICAgICAgICogYjMvQjNTd2l0Y2hWYWx1ZS5o
OgorICAgICAgICAqIGIzL0IzVXBzaWxvblZhbHVlLmg6CisgICAgICAgICogYjMvQjNWYXJpYWJs
ZVZhbHVlLmg6CisgICAgICAgICogYjMvQjNXYXNtQWRkcmVzc1ZhbHVlLmg6CisgICAgICAgICog
YjMvQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJDQ2FsbFNw
ZWNpYWwuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyUHJpbnRTcGVjaWFsLmg6CisgICAgICAgICog
Ynl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuaDoKKyAgICAgICAgKiBieXRlY29kZS9HZXR0ZXJTZXR0
ZXJBY2Nlc3NDYXNlLmg6CisgICAgICAgICogYnl0ZWNvZGUvSW5zdGFuY2VPZkFjY2Vzc0Nhc2Uu
aDoKKyAgICAgICAgKiBieXRlY29kZS9JbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlLmg6CisgICAg
ICAgICogYnl0ZWNvZGUvTW9kdWxlTmFtZXNwYWNlQWNjZXNzQ2FzZS5oOgorICAgICAgICAqIGJ5
dGVjb2RlL1Byb3h5YWJsZUFjY2Vzc0Nhc2UuaDoKKyAgICAgICAgKiBieXRlY29kZS9XYXRjaHBv
aW50Lmg6CisgICAgICAgICogZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5oOgorICAgICAgICAqIGRm
Zy9ERkdHcmFwaC5oOgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlLmg6CisgICAgICAgICogZGZn
L0RGR0pJVEZpbmFsaXplci5oOgorICAgICAgICAqIGRmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGls
YXRpb25DYWxsYmFjay5oOgorICAgICAgICAqIGRmZy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJy
ZWRDb21waWxhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgICogZnRsL0ZUTEZvck9TUkVudHJ5SklU
Q29kZS5oOgorICAgICAgICAqIGZ0bC9GVExKSVRDb2RlLmg6CisgICAgICAgICogZnRsL0ZUTEpJ
VEZpbmFsaXplci5oOgorICAgICAgICAqIGhlYXAvQ29tcGxldGVTdWJzcGFjZS5oOgorICAgICAg
ICAqIGhlYXAvRmFzdE1hbGxvY0FsaWduZWRNZW1vcnlBbGxvY2F0b3IuaDoKKyAgICAgICAgKiBo
ZWFwL0dpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvci5oOgorICAgICAgICAqIGhlYXAvSGVh
cFNuYXBzaG90QnVpbGRlci5oOgorICAgICAgICAqIGhlYXAvSXNvQWxpZ25lZE1lbW9yeUFsbG9j
YXRvci5oOgorICAgICAgICAqIGhlYXAvSXNvU3Vic3BhY2UuaDoKKyAgICAgICAgKiBoZWFwL0lz
b1N1YnNwYWNlUGVyVk0uY3BwOgorICAgICAgICAqIGhlYXAvSXNvU3Vic3BhY2VQZXJWTS5oOgor
ICAgICAgICAqIGhlYXAvTWFya1N0YWNrTWVyZ2luZ0NvbnN0cmFpbnQuaDoKKyAgICAgICAgKiBo
ZWFwL1NpbXBsZU1hcmtpbmdDb25zdHJhaW50Lmg6CisgICAgICAgICogaGVhcC9TcGFjZVRpbWVN
dXRhdG9yU2NoZWR1bGVyLmg6CisgICAgICAgICogaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1lTXV0
YXRvclNjaGVkdWxlci5oOgorICAgICAgICAqIGhlYXAvU3luY2hyb25vdXNTdG9wVGhlV29ybGRN
dXRhdG9yU2NoZWR1bGVyLmg6CisgICAgICAgICogaml0L0dDQXdhcmVKSVRTdHViUm91dGluZS5o
OgorICAgICAgICAqIGppdC9KSVRDb2RlLmg6CisgICAgICAgICogaml0L0pJVFRodW5rcy5oOgor
ICAgICAgICAqIGppdC9KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oOgorICAg
ICAgICAqIGppdC9Qb2x5bW9ycGhpY0NhbGxTdHViUm91dGluZS5oOgorICAgICAgICAqIGpzYy5j
cHA6CisgICAgICAgICogcGFyc2VyL0xleGVyLmNwcDogQWRkcmVzcyB3YXJuaW5nLgorICAgICAg
ICAqIHJ1bnRpbWUvSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuaDoKKyAgICAgICAg
KiBydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmg6CisgICAgICAgICogcnVudGlt
ZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKiBydW50aW1lL1dlYWtHQ01hcC5oOgorICAgICAgICAq
IHdhc20vV2FzbUVudHJ5UGxhbi5oOgorCiAyMDIwLTA1LTEyICBNaWNoYWVsIENhdGFuemFybyAg
PG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIC1Xc2lnbi1jb21wYXJlIHdhcm5pbmdz
IGluIEZUTExvd2VyREZHVG9CMy5jcHAgYW5kIERGR1NwZWN1bGF0aXZlSklULmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcAppbmRleCBiYjk2ZWJjY2U2MmNkNGVl
ZDAwNmQ0NDI3ZTc2MGEyZWQxOWFjMWZmLi5mMTI4YzI0MTczYzFkYjgxMmZkZDcxNWIxYWUyMzE1
ZDk1NDU5MjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0
UmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0UmVmLmNwcApA
QCAtMzksMTkgKzM5LDE5IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLXN0cnVjdCBPcGFx
dWVKU1NjcmlwdCA6IHB1YmxpYyBTb3VyY2VQcm92aWRlciB7CitzdHJ1Y3QgT3BhcXVlSlNTY3Jp
cHQgZmluYWwgOiBwdWJsaWMgU291cmNlUHJvdmlkZXIgewogcHVibGljOgogICAgIHN0YXRpYyBX
VEY6OlJlZjxPcGFxdWVKU1NjcmlwdD4gY3JlYXRlKFZNJiB2bSwgY29uc3QgU291cmNlT3JpZ2lu
JiBzb3VyY2VPcmlnaW4sIFVSTCYmIHVybCwgaW50IHN0YXJ0aW5nTGluZU51bWJlciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2UpCiAgICAgewogICAgICAgICByZXR1cm4gV1RGOjphZG9wdFJlZigqbmV3
IE9wYXF1ZUpTU2NyaXB0KHZtLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUodXJsKSwgc3RhcnRpbmdM
aW5lTnVtYmVyLCBzb3VyY2UpKTsKICAgICB9CiAKLSAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Qg
b3ZlcnJpZGUKKyAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QgZmluYWwKICAgICB7CiAgICAgICAg
IHJldHVybiBtX3NvdXJjZS5nZXQoKS5oYXNoKCk7CiAgICAgfQogCi0gICAgU3RyaW5nVmlldyBz
b3VyY2UoKSBjb25zdCBvdmVycmlkZQorICAgIFN0cmluZ1ZpZXcgc291cmNlKCkgY29uc3QgZmlu
YWwKICAgICB7CiAgICAgICAgIHJldHVybiBtX3NvdXJjZS5nZXQoKTsKICAgICB9CkBAIC02Niw3
ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgfk9wYXF1ZUpT
U2NyaXB0KCkgeyB9CisgICAgfk9wYXF1ZUpTU2NyaXB0KCkgZmluYWwgeyB9CiAKICAgICBWTSYg
bV92bTsKICAgICBSZWY8U3RyaW5nSW1wbD4gbV9zb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNBcmd1bWVudFJlZ1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNBcmd1bWVudFJlZ1ZhbHVlLmgKaW5kZXggODc5ZTAxY2JlZGVjZGYwYWQ0OGYy
YmM4MWFiNjA4YmI1YmVlOGY0ZS4uMWRlNWI1ZGZkMmQ1YzgzZjM1NGJhYjQ5NTQxNDVjYTM4ZmJl
OTdlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQXJndW1lbnRSZWdW
YWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0FyZ3VtZW50UmVnVmFsdWUu
aApAQCAtMzIsMjAgKzMyLDE5IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewog
Ci1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBBcmd1bWVudFJlZ1ZhbHVlIDogcHVibGljIFZhbHVl
IHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEFyZ3VtZW50UmVnVmFsdWUgZmluYWwgOiBwdWJs
aWMgVmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7
IHJldHVybiBraW5kID09IEFyZ3VtZW50UmVnOyB9CiAgICAgCi0gICAgfkFyZ3VtZW50UmVnVmFs
dWUoKTsKKyAgICB+QXJndW1lbnRSZWdWYWx1ZSgpIGZpbmFsOwogCiAgICAgUmVnIGFyZ3VtZW50
UmVnKCkgY29uc3QgeyByZXR1cm4gbV9yZWc7IH0KIAogICAgIEIzX1NQRUNJQUxJWkVfVkFMVUVf
Rk9SX05PX0NISUxEUkVOCiAKLXByb3RlY3RlZDoKLSAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJp
bnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6CisgICAgdm9p
ZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOworCiAg
ICAgZnJpZW5kIGNsYXNzIFByb2NlZHVyZTsKICAgICBmcmllbmQgY2xhc3MgVmFsdWU7CiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNBdG9taWNWYWx1ZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQXRvbWljVmFsdWUuaAppbmRleCA5ZjJiNTJkN2Ey
NzYxZThlNDE2ZjgzMDJhOTY2ZmUwN2M3MGRlYjdmLi5jNDU4M2YxZjdhNDMxNGM2ZjFlYTY0Mzhl
Nzc1ZmI0NzE4MjZmMzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNB
dG9taWNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0F0b21pY1ZhbHVl
LmgKQEAgLTMyLDE0ICszMiwxNCBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsK
IAotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgQXRvbWljVmFsdWUgOiBwdWJsaWMgTWVtb3J5VmFs
dWUgeworY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgQXRvbWljVmFsdWUgZmluYWwgOiBwdWJsaWMg
TWVtb3J5VmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5k
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGlzQXRvbShraW5kLm9wY29kZSgpKTsKICAgICB9CiAg
ICAgCi0gICAgfkF0b21pY1ZhbHVlKCk7CisgICAgfkF0b21pY1ZhbHVlKCkgZmluYWw7CiAgICAg
CiAgICAgVHlwZSBhY2Nlc3NUeXBlKCkgY29uc3QgeyByZXR1cm4gY2hpbGQoMCktPnR5cGUoKTsg
fQogICAgIApAQCAtNDcsMTAgKzQ3LDkgQEAgcHVibGljOgogCiAgICAgQjNfU1BFQ0lBTElaRV9W
QUxVRV9GT1JfRklOQUxfU0laRV9GSVhFRF9DSElMRFJFTgogICAgIAotcHJvdGVjdGVkOgotICAg
IHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlk
ZTsKLQogcHJpdmF0ZToKKyAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3Ry
ZWFtJikgY29uc3QgZmluYWw7CisKICAgICBmcmllbmQgY2xhc3MgUHJvY2VkdXJlOwogICAgIGZy
aWVuZCBjbGFzcyBWYWx1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzQ0NhbGxWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ0NhbGxWYWx1ZS5o
CmluZGV4IDJmNjBhMDFlMjc4NTQ2MWNmMmE5MTg1OGYyNWRkMGMxZDc1MjMzNjAuLjY1MmU1MzVj
MDc2ZDgyOGI1NDVhODI2OWQ3OGE4M2Y5MWIwMDVlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NDYWxsVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDQ2FsbFZhbHVlLmgKQEAgLTMyLDExICszMiwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgQ0NhbGxWYWx1ZSA6IHB1
YmxpYyBWYWx1ZSB7CitjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBDQ2FsbFZhbHVlIGZpbmFsIDog
cHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2lu
ZCkgeyByZXR1cm4ga2luZCA9PSBDQ2FsbDsgfQogCi0gICAgfkNDYWxsVmFsdWUoKTsKKyAgICB+
Q0NhbGxWYWx1ZSgpIGZpbmFsOwogCiAgICAgdm9pZCBhcHBlbmRBcmdzKGNvbnN0IFZlY3RvcjxW
YWx1ZSo+Jik7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
aGVja1NwZWNpYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5o
CmluZGV4IGIxYWQwNTE0Mjc3MzE2MmQ1ZjVkZTU2YjlmYmUzM2EyNTIxNGRmNDcuLmM5ZGU1Zjhm
ZTBlMGEyMWFiNjRhMjhmYzhhNjUwMWZlMmE2NzViMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NoZWNrU3BlY2lhbC5oCkBAIC00OCw3ICs0OCw3IEBAIHN0cnVjdCBJbnN0OwogLy8g
LSBDaGVja1N1YigwLCB4KSwgd2hpY2ggdHVybnMgaW50byBCcmFuY2hOZWczMiB4LgogLy8gLSBD
aGVja011bChhLCBiKSwgd2hpY2ggdHVybnMgaW50byBNdWwzMiBiLCBhIGJ1dCB3ZSBwYXNzIEFu
eSBmb3IgYSdzIFZhbHVlUmVwLgogCi1jbGFzcyBDaGVja1NwZWNpYWwgOiBwdWJsaWMgU3RhY2tt
YXBTcGVjaWFsIHsKK2NsYXNzIENoZWNrU3BlY2lhbCBmaW5hbCA6IHB1YmxpYyBTdGFja21hcFNw
ZWNpYWwgewogcHVibGljOgogICAgIC8vIFN1cHBvcnQgZm9yIGhhc2ggY29uc2luZyB0aGVzZSB0
aGluZ3MuCiAgICAgY2xhc3MgS2V5IHsKQEAgLTExMyw5ICsxMTMsOSBAQCBwdWJsaWM6CiAgICAg
CiAgICAgQ2hlY2tTcGVjaWFsKEFpcjo6S2luZCwgdW5zaWduZWQgbnVtQXJncywgUm9sZU1vZGUg
c3RhY2ttYXBSb2xlID0gU2FtZUFzUmVwKTsKICAgICBDaGVja1NwZWNpYWwoY29uc3QgS2V5Jik7
Ci0gICAgfkNoZWNrU3BlY2lhbCgpOworICAgIH5DaGVja1NwZWNpYWwoKSBmaW5hbDsKIAotcHJv
dGVjdGVkOgorcHJpdmF0ZToKICAgICAvLyBDb25zdHJ1Y3RzIGFuZCByZXR1cm5zIHRoZSBJbnN0
IHJlcHJlc2VudGluZyB0aGUgYnJhbmNoIHRoYXQgdGhpcyB3aWxsIHVzZS4KICAgICBBaXI6Oklu
c3QgaGlkZGVuQnJhbmNoKGNvbnN0IEFpcjo6SW5zdCYpIGNvbnN0OwogCkBAIC0xMzMsNyArMTMz
LDYgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mKSBjb25zdCBm
aW5hbDsKICAgICB2b2lkIGRlZXBEdW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwog
Ci1wcml2YXRlOgogICAgIEFpcjo6S2luZCBtX2NoZWNrS2luZDsKICAgICBSb2xlTW9kZSBtX3N0
YWNrbWFwUm9sZTsKICAgICB1bnNpZ25lZCBtX251bUNoZWNrQXJnczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0NoZWNrVmFsdWUuaAppbmRleCA4OTczMjBjZDUyNjBhYzdkZGNmZTkwNjQ4YjA0
YjE2YjlmNjM0YjJlLi4xNGNkNDQ3Mjk0NjkyZDkyNDFjZmJlZmY4MjVkNGI0NzUwODg3NjBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDaGVja1ZhbHVlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tWYWx1ZS5oCkBAIC0zMSw3ICszMSw3IEBA
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCi1jbGFzcyBDaGVja1ZhbHVlIDog
cHVibGljIFN0YWNrbWFwVmFsdWUgeworY2xhc3MgQ2hlY2tWYWx1ZSBmaW5hbCA6IHB1YmxpYyBT
dGFja21hcFZhbHVlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2lu
ZCkKICAgICB7CkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAot
ICAgIH5DaGVja1ZhbHVlKCk7CisgICAgfkNoZWNrVmFsdWUoKSBmaW5hbDsKIAogICAgIHZvaWQg
Y29udmVydFRvQWRkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0NvbnN0MzJWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVl
LmgKaW5kZXggNGZmZWUxMTQyNDdlYTMwNmQ4YmE5ODhkOGRiZTg2ZWFiMDlhZGM3Ny4uZmIxOTA0
MzE5YjkwMzYyZGE1ZDdlZmQ5OWRiODYzN2FmMTI0NTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29uc3QzMlZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ29uc3QzMlZhbHVlLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgSlNfRVhQT1JU
X1BSSVZBVEUgQ29uc3QzMlZhbHVlIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9PSBDb25zdDMyOyB9CiAg
ICAgCi0gICAgfkNvbnN0MzJWYWx1ZSgpOworICAgIH5Db25zdDMyVmFsdWUoKSBvdmVycmlkZTsK
ICAgICAKICAgICBpbnQzMl90IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdDY0VmFsdWUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1ZS5oCmluZGV4IDQ3YzFiNTYzYWUz
ODA5MWEwMDkzYWJmNTk1OTY2ZDdlNzczMTk5NTAuLmYzZmM1ZWViZjI1NTFkZTI0ZTE2ZDA3N2M1
NDA1YzM0NGRhOWZhYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nv
bnN0NjRWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0NjRWYWx1
ZS5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIENvbnN0NjRWYWx1
ZSA6IHB1YmxpYyBWYWx1ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhLaW5k
IGtpbmQpIHsgcmV0dXJuIGtpbmQgPT0gQ29uc3Q2NDsgfQogICAgIAotICAgIH5Db25zdDY0VmFs
dWUoKTsKKyAgICB+Q29uc3Q2NFZhbHVlKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgaW50NjRfdCB2
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29uc3REb3VibGVWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ29uc3REb3VibGVWYWx1ZS5oCmluZGV4IDQwM2JkM2Y4NTVjMjlhYjgzYzY2YjZi
MGE3YjE3MTJiYzkyZWZiZjEuLmIwNmQ3YmVhZTgxMTI5NjFlOWYyMDA4YmFjZTFjMWMwNjJjNTZk
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RG91YmxlVmFs
dWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb25zdERvdWJsZVZhbHVlLmgK
QEAgLTMxLDM4ICszMSwzOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAot
Y2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgQ29uc3REb3VibGVWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7
CitjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBDb25zdERvdWJsZVZhbHVlIGZpbmFsIDogcHVibGlj
IFZhbHVlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyBy
ZXR1cm4ga2luZCA9PSBDb25zdERvdWJsZTsgfQogICAgIAotICAgIH5Db25zdERvdWJsZVZhbHVl
KCk7CisgICAgfkNvbnN0RG91YmxlVmFsdWUoKSBmaW5hbDsKICAgICAKICAgICBkb3VibGUgdmFs
dWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CiAKLSAgICBWYWx1ZSogbmVnQ29uc3RhbnQo
UHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVmFsdWUqIGFkZENvbnN0YW50KFByb2Nl
ZHVyZSYsIGludDMyX3Qgb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBhZGRDb25z
dGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAg
IFZhbHVlKiBzdWJDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0
IG92ZXJyaWRlOwotICAgIFZhbHVlKiBkaXZDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1
ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBtb2RDb25zdGFudChQcm9jZWR1
cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBtdWxD
b25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIFZhbHVlKiBiaXRBbmRDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIp
IGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBiaXRPckNvbnN0YW50KFByb2NlZHVyZSYsIGNv
bnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVmFsdWUqIGJpdFhvckNvbnN0
YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
VmFsdWUqIGJpdHdpc2VDYXN0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgVmFsdWUqIGRvdWJsZVRvRmxvYXRDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlk
ZTsKLSAgICBWYWx1ZSogYWJzQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgVmFsdWUqIGNlaWxDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKLSAgICBW
YWx1ZSogZmxvb3JDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1
ZSogc3FydENvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIFZhbHVlKiBu
ZWdDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogYWRkQ29uc3Rh
bnQoUHJvY2VkdXJlJiwgaW50MzJfdCBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIGFk
ZENvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7Cisg
ICAgVmFsdWUqIHN1YkNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29u
c3QgZmluYWw7CisgICAgVmFsdWUqIGRpdkNvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVl
KiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIG1vZENvbnN0YW50KFByb2NlZHVyZSYs
IGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIG11bENvbnN0YW50
KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVmFsdWUq
IGJpdEFuZENvbnN0YW50KFByb2NlZHVyZSYsIGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmlu
YWw7CisgICAgVmFsdWUqIGJpdE9yQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90
aGVyKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogYml0WG9yQ29uc3RhbnQoUHJvY2VkdXJlJiwg
Y29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogYml0d2lzZUNhc3RD
b25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogZG91YmxlVG9GbG9h
dENvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IGZpbmFsOworICAgIFZhbHVlKiBhYnNDb25zdGFu
dChQcm9jZWR1cmUmKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogY2VpbENvbnN0YW50KFByb2Nl
ZHVyZSYpIGNvbnN0IGZpbmFsOworICAgIFZhbHVlKiBmbG9vckNvbnN0YW50KFByb2NlZHVyZSYp
IGNvbnN0IGZpbmFsOworICAgIFZhbHVlKiBzcXJ0Q29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3Qg
ZmluYWw7CiAKLSAgICBUcmlTdGF0ZSBlcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgVHJpU3RhdGUgbm90RXF1YWxDb25zdGFudChjb25zdCBWYWx1
ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFRyaVN0YXRlIGxlc3NUaGFuQ29uc3RhbnQo
Y29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBUcmlTdGF0ZSBncmVhdGVy
VGhhbkNvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVHJp
U3RhdGUgbGVzc0VxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlk
ZTsKLSAgICBUcmlTdGF0ZSBncmVhdGVyRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIp
IGNvbnN0IG92ZXJyaWRlOwotICAgIFRyaVN0YXRlIGVxdWFsT3JVbm9yZGVyZWRDb25zdGFudChj
b25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOworICAgIFRyaVN0YXRlIGVxdWFsQ29u
c3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBUcmlTdGF0ZSBub3RF
cXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVHJpU3Rh
dGUgbGVzc1RoYW5Db25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZpbmFsOworICAg
IFRyaVN0YXRlIGdyZWF0ZXJUaGFuQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBm
aW5hbDsKKyAgICBUcmlTdGF0ZSBsZXNzRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIp
IGNvbnN0IGZpbmFsOworICAgIFRyaVN0YXRlIGdyZWF0ZXJFcXVhbENvbnN0YW50KGNvbnN0IFZh
bHVlKiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVHJpU3RhdGUgZXF1YWxPclVub3JkZXJlZENv
bnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CiAKICAgICBCM19TUEVDSUFM
SVpFX1ZBTFVFX0ZPUl9OT19DSElMRFJFTgogCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAg
ICAgZnJpZW5kIGNsYXNzIFByb2NlZHVyZTsKICAgICBmcmllbmQgY2xhc3MgVmFsdWU7CiAKLSAg
ICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0
IGZpbmFsOwogCiAgICAgc3RhdGljIE9wY29kZSBvcGNvZGVGcm9tQ29uc3RydWN0b3IoT3JpZ2lu
LCBkb3VibGUpIHsgcmV0dXJuIENvbnN0RG91YmxlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NvbnN0RmxvYXRWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVlLmgKaW5kZXggYmMzYmJlZTQ4MjM0NjVhYzIwZDliMGE4
ZTZhZTI4N2FjNjJmYjkyYi4uN2Q2MGQ0N2IyNDI2YTE0MTI3ZmMxMDY2MDM5MWJlZjMwYzAzMGM3
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29uc3RGbG9hdFZhbHVlLmgKQEAg
LTMxLDM3ICszMSwzNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xh
c3MgSlNfRVhQT1JUX1BSSVZBVEUgQ29uc3RGbG9hdFZhbHVlIDogcHVibGljIFZhbHVlIHsKK2Ns
YXNzIEpTX0VYUE9SVF9QUklWQVRFIENvbnN0RmxvYXRWYWx1ZSBmaW5hbCA6IHB1YmxpYyBWYWx1
ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhLaW5kIGtpbmQpIHsgcmV0dXJu
IGtpbmQgPT0gQ29uc3RGbG9hdDsgfQogCi0gICAgfkNvbnN0RmxvYXRWYWx1ZSgpOworICAgIH5D
b25zdEZsb2F0VmFsdWUoKSBmaW5hbDsKIAogICAgIGZsb2F0IHZhbHVlKCkgY29uc3QgeyByZXR1
cm4gbV92YWx1ZTsgfQogCi0gICAgVmFsdWUqIG5lZ0NvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0
IG92ZXJyaWRlOwotICAgIFZhbHVlKiBhZGRDb25zdGFudChQcm9jZWR1cmUmLCBpbnQzMl90IG90
aGVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogYWRkQ29uc3RhbnQoUHJvY2VkdXJlJiwg
Y29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogc3ViQ29uc3Rh
bnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBW
YWx1ZSogZGl2Q29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBv
dmVycmlkZTsKLSAgICBWYWx1ZSogbXVsQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUq
IG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogYml0QW5kQ29uc3RhbnQoUHJvY2Vk
dXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBWYWx1ZSogYml0
T3JDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRl
OwotICAgIFZhbHVlKiBiaXRYb3JDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3Ro
ZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBiaXR3aXNlQ2FzdENvbnN0YW50KFByb2Nl
ZHVyZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBmbG9hdFRvRG91YmxlQ29uc3RhbnQo
UHJvY2VkdXJlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVmFsdWUqIGFic0NvbnN0YW50KFByb2Nl
ZHVyZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIFZhbHVlKiBjZWlsQ29uc3RhbnQoUHJvY2VkdXJl
JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVmFsdWUqIGZsb29yQ29uc3RhbnQoUHJvY2VkdXJlJikg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgVmFsdWUqIHNxcnRDb25zdGFudChQcm9jZWR1cmUmKSBjb25z
dCBvdmVycmlkZTsKLQotICAgIFRyaVN0YXRlIGVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90
aGVyKSBjb25zdCBvdmVycmlkZTsKLSAgICBUcmlTdGF0ZSBub3RFcXVhbENvbnN0YW50KGNvbnN0
IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVHJpU3RhdGUgbGVzc1RoYW5Db25z
dGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92ZXJyaWRlOwotICAgIFRyaVN0YXRlIGdy
ZWF0ZXJUaGFuQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBvdmVycmlkZTsKLSAg
ICBUcmlTdGF0ZSBsZXNzRXF1YWxDb25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IG92
ZXJyaWRlOwotICAgIFRyaVN0YXRlIGdyZWF0ZXJFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBv
dGhlcikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgVHJpU3RhdGUgZXF1YWxPclVub3JkZXJlZENvbnN0
YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3Qgb3ZlcnJpZGU7CisgICAgVmFsdWUqIG5lZ0Nv
bnN0YW50KFByb2NlZHVyZSYpIGNvbnN0IGZpbmFsOworICAgIFZhbHVlKiBhZGRDb25zdGFudChQ
cm9jZWR1cmUmLCBpbnQzMl90IG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogYWRkQ29u
c3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBW
YWx1ZSogc3ViQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBm
aW5hbDsKKyAgICBWYWx1ZSogZGl2Q29uc3RhbnQoUHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90
aGVyKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogbXVsQ29uc3RhbnQoUHJvY2VkdXJlJiwgY29u
c3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSogYml0QW5kQ29uc3RhbnQo
UHJvY2VkdXJlJiwgY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBWYWx1ZSog
Yml0T3JDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZpbmFs
OworICAgIFZhbHVlKiBiaXRYb3JDb25zdGFudChQcm9jZWR1cmUmLCBjb25zdCBWYWx1ZSogb3Ro
ZXIpIGNvbnN0IGZpbmFsOworICAgIFZhbHVlKiBiaXR3aXNlQ2FzdENvbnN0YW50KFByb2NlZHVy
ZSYpIGNvbnN0IGZpbmFsOworICAgIFZhbHVlKiBmbG9hdFRvRG91YmxlQ29uc3RhbnQoUHJvY2Vk
dXJlJikgY29uc3QgZmluYWw7CisgICAgVmFsdWUqIGFic0NvbnN0YW50KFByb2NlZHVyZSYpIGNv
bnN0IGZpbmFsOworICAgIFZhbHVlKiBjZWlsQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QgZmlu
YWw7CisgICAgVmFsdWUqIGZsb29yQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QgZmluYWw7Cisg
ICAgVmFsdWUqIHNxcnRDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdCBmaW5hbDsKKworICAgIFRy
aVN0YXRlIGVxdWFsQ29uc3RhbnQoY29uc3QgVmFsdWUqIG90aGVyKSBjb25zdCBmaW5hbDsKKyAg
ICBUcmlTdGF0ZSBub3RFcXVhbENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmlu
YWw7CisgICAgVHJpU3RhdGUgbGVzc1RoYW5Db25zdGFudChjb25zdCBWYWx1ZSogb3RoZXIpIGNv
bnN0IGZpbmFsOworICAgIFRyaVN0YXRlIGdyZWF0ZXJUaGFuQ29uc3RhbnQoY29uc3QgVmFsdWUq
IG90aGVyKSBjb25zdCBmaW5hbDsKKyAgICBUcmlTdGF0ZSBsZXNzRXF1YWxDb25zdGFudChjb25z
dCBWYWx1ZSogb3RoZXIpIGNvbnN0IGZpbmFsOworICAgIFRyaVN0YXRlIGdyZWF0ZXJFcXVhbENv
bnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CisgICAgVHJpU3RhdGUgZXF1
YWxPclVub3JkZXJlZENvbnN0YW50KGNvbnN0IFZhbHVlKiBvdGhlcikgY29uc3QgZmluYWw7CiAK
ICAgICBCM19TUEVDSUFMSVpFX1ZBTFVFX0ZPUl9OT19DSElMRFJFTgogCkBAIC02OSw3ICs2OSw3
IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFByb2NlZHVyZTsKICAgICBmcmllbmQgY2xh
c3MgVmFsdWU7CiAKLSAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFt
JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmlu
dFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogCiAgICAgc3RhdGljIE9wY29kZSBvcGNvZGVGcm9tQ29u
c3RydWN0b3IoT3JpZ2luLCBmbG9hdCkgeyByZXR1cm4gQ29uc3RGbG9hdDsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uaAppbmRleCAwYmNhNDBlZDQzN2JlOTFlODVj
NTdjYjhkZjYzMGJiNWM3OWY5NGRlLi4yNjhmNjUxNGYzZDA0MjUxMTUwN2RhYTIxZDVjMWQyYzFi
MmFlNjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlv
bi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmgKQEAgLTMx
LDE1ICszMSwxNSBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3Mg
RGF0YVNlY3Rpb24gOiBwdWJsaWMgT3BhcXVlQnlwcm9kdWN0IHsKK2NsYXNzIERhdGFTZWN0aW9u
IGZpbmFsIDogcHVibGljIE9wYXF1ZUJ5cHJvZHVjdCB7CiBwdWJsaWM6CiAgICAgRGF0YVNlY3Rp
b24oc2l6ZV90IHNpemUpOwotICAgIHZpcnR1YWwgfkRhdGFTZWN0aW9uKCk7CisgICAgfkRhdGFT
ZWN0aW9uKCkgZmluYWw7CiAKICAgICB2b2lkKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRh
OyB9CiAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KIAotICAgIHZv
aWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgZHVtcChQcmlu
dFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIHZvaWQqIG1fZGF0YTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0V4dHJhY3RWYWx1ZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRXh0cmFjdFZhbHVlLmgKaW5kZXggMjEyNWI3YjZhMzZj
YjVmMTc1ZjUxOWFjMTAyNGJiNWRiMDNjZGE2MS4uYTEyMjBhYzRlMzQ4YTgzMGY5MDQxZDIwY2E1
Njg4MDhlMmFjN2Q3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRXh0
cmFjdFZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRXh0cmFjdFZhbHVl
LmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgRXh0cmFjdFZhbHVl
IGZpbmFsIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRz
KEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9PSBFeHRyYWN0OyB9CiAKLSAgICB+RXh0cmFjdFZh
bHVlKCk7CisgICAgfkV4dHJhY3RWYWx1ZSgpIGZpbmFsOwogCiAgICAgaW50MzJfdCBpbmRleCgp
IGNvbnN0IHsgcmV0dXJuIG1faW5kZXg7IH0KIApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAg
ICAgQjNfU1BFQ0lBTElaRV9WQUxVRV9GT1JfRklOQUxfU0laRV9GSVhFRF9DSElMRFJFTgogCiBw
cml2YXRlOgotICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3Ry
ZWFtJikgY29uc3QgZmluYWw7CiAKICAgICBzdGF0aWMgT3Bjb2RlIG9wY29kZUZyb21Db25zdHJ1
Y3RvcihPcmlnaW4sIFR5cGUsIFZhbHVlKiwgaW50MzJfdCkgeyByZXR1cm4gRXh0cmFjdDsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGZW5jZVZhbHVlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGZW5jZVZhbHVlLmgKaW5kZXggNTEzYmFkNWM3MWRm
NDA3MTllMjc5ZTY5NWNjMzMwNmI3ZjIwNWM2ZC4uZTQ5YjRiMWE3OTIwMDliZGUzMzM2YmRmNWNl
MzY4NzJmMTk2ZjM3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRmVu
Y2VWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZlbmNlVmFsdWUuaApA
QCAtMzIsMTEgKzMyLDExIEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCi1j
bGFzcyBKU19FWFBPUlRfUFJJVkFURSBGZW5jZVZhbHVlIDogcHVibGljIFZhbHVlIHsKK2NsYXNz
IEpTX0VYUE9SVF9QUklWQVRFIEZlbmNlVmFsdWUgZmluYWwgOiBwdWJsaWMgVmFsdWUgewogcHVi
bGljOgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09
IEZlbmNlOyB9CiAgICAgCi0gICAgfkZlbmNlVmFsdWUoKTsKKyAgICB+RmVuY2VWYWx1ZSgpIGZp
bmFsOwogICAgIAogICAgIC8vIFRoZSByZWFkL3dyaXRlIGhlYXBzIGFyZSByZWZsZWN0ZWQgaW4g
dGhlIGVmZmVjdHMoKSBvZiB0aGlzIHZhbHVlLiBUaGUgY29tcGlsZXIgbWF5IGNoYW5nZQogICAg
IC8vIHRoZSBsb3dlcmluZyBvZiBhIEZlbmNlIGJhc2VkIG9uIHRoZSBoZWFwcy4gRm9yIGV4YW1w
bGUsIGlmIGEgZmVuY2UgZG9lcyBub3Qgd3JpdGUgYW55dGhpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01lbW9yeVZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNNZW1vcnlWYWx1ZS5oCmluZGV4IGY2MWRjZmQyNzZmMmI1MDIyMWE2NjAxYmMxYzE1
YWI2MGM3MTlmZGMuLmU3NjgyNjRjMTNmMTY3ZWY1MDZiYmVhMjY2MTY2NzkzYzY3NTczM2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01lbW9yeVZhbHVlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWVtb3J5VmFsdWUuaApAQCAtNDEsNyArNDEsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBpc01lbW9yeUFjY2VzcyhraW5kLm9wY29kZSgpKTsK
ICAgICB9CiAKLSAgICB+TWVtb3J5VmFsdWUoKTsKKyAgICB+TWVtb3J5VmFsdWUoKSBvdmVycmlk
ZTsKIAogICAgIE9mZnNldFR5cGUgb2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0K
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnQsIHR5cGVuYW1lID0gSXNMZWdhbE9mZnNldDxJbnQ+
PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNp
YWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmgKaW5k
ZXggN2NjNzZhYjkzNjk2MTExZjM5YmU1MGUwNTQ1NzhiNzE5MWM3ZWY0NS4uYzE2M2JhNDg4OTUx
ZDFjOGE4NTQyYWUxZDM3NmNiODA5YzllYmYwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oCkBAIC00MSwxMiArNDEsMTIgQEAgbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAvLwogLy8gICAgIFBhdGNoICZwYXRjaHBvaW50LCByZXN1
bHQsIGFyZ3MuLi4KIAotY2xhc3MgUGF0Y2hwb2ludFNwZWNpYWwgOiBwdWJsaWMgU3RhY2ttYXBT
cGVjaWFsIHsKK2NsYXNzIFBhdGNocG9pbnRTcGVjaWFsIGZpbmFsIDogcHVibGljIFN0YWNrbWFw
U3BlY2lhbCB7CiBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgUGF0Y2hwb2ludFNwZWNp
YWwoKTsKLSAgICB2aXJ0dWFsIH5QYXRjaHBvaW50U3BlY2lhbCgpOworICAgIEpTX0VYUE9SVF9Q
UklWQVRFIH5QYXRjaHBvaW50U3BlY2lhbCgpIGZpbmFsOwogCi1wcm90ZWN0ZWQ6Citwcml2YXRl
OgogICAgIHZvaWQgZm9yRWFjaEFyZyhBaXI6Okluc3QmLCBjb25zdCBTY29wZWRMYW1iZGE8QWly
OjpJbnN0OjpFYWNoQXJnQ2FsbGJhY2s+JikgZmluYWw7CiAgICAgYm9vbCBpc1ZhbGlkKEFpcjo6
SW5zdCYpIGZpbmFsOwogICAgIGJvb2wgYWRtaXRzU3RhY2soQWlyOjpJbnN0JiwgdW5zaWduZWQg
YXJnSW5kZXgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
UGF0Y2hwb2ludFZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50
VmFsdWUuaAppbmRleCBmM2E0MWE0NzE1ZmY1ZWE3OTFkYTQzMmU5MzRjMDFiZDU0ZDgyMWNjLi5m
YmNjMmViZTcxYzNkYzZhMmFhY2JhYWNhZTBjMGFmOGYyYzRkZjBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50VmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50VmFsdWUuaApAQCAtMzMsMTMgKzMzLDEzIEBACiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCi1jbGFzcyBQYXRjaHBvaW50VmFsdWUg
OiBwdWJsaWMgU3RhY2ttYXBWYWx1ZSB7CitjbGFzcyBQYXRjaHBvaW50VmFsdWUgZmluYWwgOiBw
dWJsaWMgU3RhY2ttYXBWYWx1ZSB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBTdGFja21hcFZhbHVl
IEJhc2U7CiAgICAgCiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhLaW5kIGtpbmQpIHsgcmV0dXJu
IGtpbmQgPT0gUGF0Y2hwb2ludDsgfQogCi0gICAgflBhdGNocG9pbnRWYWx1ZSgpOworICAgIH5Q
YXRjaHBvaW50VmFsdWUoKSBmaW5hbDsKIAogICAgIC8vIFRoZSBlZmZlY3RzIG9mIHRoZSBwYXRj
aHBvaW50LiBUaGlzIGRlZmF1bHRzIHRvIEVmZmVjdHM6OmZvckNhbGwoKSwgYnV0IHlvdSBjYW4g
c2V0IGl0IHRvIGFueXRoaW5nLgogICAgIC8vCkBAIC02NCwxMCArNjQsOSBAQCBwdWJsaWM6CiAK
ICAgICBCM19TUEVDSUFMSVpFX1ZBTFVFX0ZPUl9GSU5BTF9TSVpFX1ZBUkFSR1NfQ0hJTERSRU4K
IAotcHJvdGVjdGVkOgotICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJl
YW0mKSBjb25zdCBvdmVycmlkZTsKLQogcHJpdmF0ZToKKyAgICB2b2lkIGR1bXBNZXRhKENvbW1h
UHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CisKICAgICBmcmllbmQgY2xhc3Mg
UHJvY2VkdXJlOwogICAgIGZyaWVuZCBjbGFzcyBWYWx1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzU2xvdEJhc2VWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzU2xvdEJhc2VWYWx1ZS5oCmluZGV4IDc2MDBkODEyYWViMWQwN2NjNjlmYmNjYTg3
YTBiM2JhYTI3ZDFkZWYuLjMzYzlhMmQ1MWRlM2Y0MGU3ODM2ZDkxN2YwNGI4N2I1ZTA2ODU1NTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Nsb3RCYXNlVmFsdWUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTbG90QmFzZVZhbHVlLmgKQEAgLTMzLDEx
ICszMywxMSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAogY2xhc3MgU3RhY2tT
bG90OwogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBTbG90QmFzZVZhbHVlIDogcHVibGljIFZh
bHVlIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIFNsb3RCYXNlVmFsdWUgZmluYWwgOiBwdWJs
aWMgVmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7
IHJldHVybiBraW5kID09IFNsb3RCYXNlOyB9CiAKLSAgICB+U2xvdEJhc2VWYWx1ZSgpOworICAg
IH5TbG90QmFzZVZhbHVlKCkgZmluYWw7CiAKICAgICBTdGFja1Nsb3QqIHNsb3QoKSBjb25zdCB7
IHJldHVybiBtX3Nsb3Q7IH0KIApAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBQcm9jZWR1cmU7CiAgICAgZnJpZW5kIGNsYXNzIFZhbHVlOwogCi0gICAgdm9pZCBk
dW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsK
IAogICAgIHN0YXRpYyBPcGNvZGUgb3Bjb2RlRnJvbUNvbnN0cnVjdG9yKE9yaWdpbiwgU3RhY2tT
bG90KikgeyByZXR1cm4gU2xvdEJhc2U7IH0KICAgICBTbG90QmFzZVZhbHVlKE9yaWdpbiBvcmln
aW4sIFN0YWNrU2xvdCogc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1N0YWNrbWFwU3BlY2lhbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2tt
YXBTcGVjaWFsLmgKaW5kZXggNThiOGM5NmMyMmI5N2ZmMDY1MDI2ODA3OGRlNzc5OWE3NjNhMDQ4
ZS4uYzhmZjkwZDI2MDY1MzQ0OTdkZGE5NGYzZjU3Y2VjZjE0NjNkNDE5MyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFsLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFsLmgKQEAgLTQyLDcgKzQyLDcgQEAg
bmFtZXNwYWNlIEFpciB7IGNsYXNzIENvZGU7IH0KIGNsYXNzIFN0YWNrbWFwU3BlY2lhbCA6IHB1
YmxpYyBBaXI6OlNwZWNpYWwgewogcHVibGljOgogICAgIFN0YWNrbWFwU3BlY2lhbCgpOwotICAg
IHZpcnR1YWwgflN0YWNrbWFwU3BlY2lhbCgpOworICAgIH5TdGFja21hcFNwZWNpYWwoKSBvdmVy
cmlkZTsKIAogICAgIGVudW0gUm9sZU1vZGUgOiBpbnQ4X3QgewogICAgICAgICBTYW1lQXNSZXAs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFZhbHVlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFZhbHVlLmgKaW5kZXggZGUwZGM5
NjNmZTgyY2U2NTFmZWQwMzhiNWZjNGI4Y2ViOTc4ZmI2Ni4uODdmMDA5ZDQ5MDExZTc4YWNiMDA3
MjIyMzM4ZmQ3ZjBjYjU0M2E4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzU3RhY2ttYXBWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNr
bWFwVmFsdWUuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAK
LSAgICB+U3RhY2ttYXBWYWx1ZSgpOworICAgIH5TdGFja21hcFZhbHVlKCkgb3ZlcnJpZGU7CiAK
ICAgICAvLyBVc2UgdGhpcyB0byBhZGQgY2hpbGRyZW4uCiAgICAgdm9pZCBhcHBlbmQoY29uc3Qg
Q29uc3RyYWluZWRWYWx1ZSYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNTd2l0Y2hWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNo
VmFsdWUuaAppbmRleCBhY2E4NzcwNDhhYjBhMDRhYThiYzU4ZTBlMjlkMDg0ZGI3NDdiYzYxLi5m
NmE3NzViMzAxNTQ5ZWY2ZjFlMjA3MDA3MWZiMDAyZjEwODdkNGNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmgKQEAgLTMzLDExICszMywxMSBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgU3dpdGNoVmFsdWUgOiBwdWJsaWMgVmFs
dWUgeworY2xhc3MgU3dpdGNoVmFsdWUgZmluYWwgOiBwdWJsaWMgVmFsdWUgewogcHVibGljOgog
ICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IFN3aXRj
aDsgfQogCi0gICAgflN3aXRjaFZhbHVlKCk7CisgICAgflN3aXRjaFZhbHVlKCkgZmluYWw7CiAK
ICAgICAvLyBudW1DYXNlVmFsdWVzKCkgKyAxID09IG51bVN1Y2Nlc3NvcnMoKS4KICAgICB1bnNp
Z25lZCBudW1DYXNlVmFsdWVzKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXMuc2l6ZSgpOyB9CkBA
IC02MiwxNSArNjIsMTQgQEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0
RmFsbFRocm91Z2goY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBhcHBlbmRDYXNlKGNvbnN0IFN3aXRjaENhc2UmKTsKIAotICAgIHZvaWQgZHVtcFN1
Y2Nlc3NvcnMoY29uc3QgQmFzaWNCbG9jayosIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdm9pZCBkdW1wU3VjY2Vzc29ycyhjb25zdCBCYXNpY0Jsb2NrKiwgUHJpbnRTdHJlYW0m
KSBjb25zdCBmaW5hbDsKIAogICAgIEIzX1NQRUNJQUxJWkVfVkFMVUVfRk9SX0ZJWEVEX0NISUxE
UkVOKDEpCiAgICAgQjNfU1BFQ0lBTElaRV9WQUxVRV9GT1JfRklOQUxfU0laRV9GSVhFRF9DSElM
RFJFTgogCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmlu
dFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwotCiBwcml2YXRlOgorICAgIHZvaWQgZHVtcE1ldGEo
Q29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKKwogICAgIGZyaWVuZCBj
bGFzcyBQcm9jZWR1cmU7CiAgICAgZnJpZW5kIGNsYXNzIFZhbHVlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNVcHNpbG9uVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1Vwc2lsb25WYWx1ZS5oCmluZGV4IDlkNjNjNDYxOWQwNmIwNTc5N2UwZTE1
N2M5YzQ0ZTU1NWIzYTZkZjQuLjJkMDhhMzczYmU2NDc5ODQ5YjZlYzdjNjY0NjZiZjFhNDU4OWNm
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Vwc2lsb25WYWx1ZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Vwc2lsb25WYWx1ZS5oCkBAIC0zMSwx
MSArMzEsMTEgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKLWNsYXNzIEpT
X0VYUE9SVF9QUklWQVRFIFVwc2lsb25WYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7CitjbGFzcyBKU19F
WFBPUlRfUFJJVkFURSBVcHNpbG9uVmFsdWUgZmluYWwgOiBwdWJsaWMgVmFsdWUgewogcHVibGlj
OgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IFVw
c2lsb247IH0KIAotICAgIH5VcHNpbG9uVmFsdWUoKTsKKyAgICB+VXBzaWxvblZhbHVlKCkgZmlu
YWw7CiAKICAgICBWYWx1ZSogcGhpKCkgY29uc3QgeyByZXR1cm4gbV9waGk7IH0KICAgICB2b2lk
IHNldFBoaShWYWx1ZSogcGhpKQpAQCAtNDgsMTAgKzQ4LDkgQEAgcHVibGljOgogICAgIEIzX1NQ
RUNJQUxJWkVfVkFMVUVfRk9SX0ZJWEVEX0NISUxEUkVOKDEpCiAgICAgQjNfU1BFQ0lBTElaRV9W
QUxVRV9GT1JfRklOQUxfU0laRV9GSVhFRF9DSElMRFJFTgogCi1wcm90ZWN0ZWQ6Ci0gICAgdm9p
ZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwot
CiBwcml2YXRlOgorICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0m
KSBjb25zdCBmaW5hbDsKKwogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CiAgICAgZnJpZW5k
IGNsYXNzIFZhbHVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YXJpYWJsZVZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYXJpYWJsZVZhbHVl
LmgKaW5kZXggMWVjYzdlNDQ4ZjllZTRkMDk5ZmE4MTA2YzNiOTk0NGFhNTk1YTgwMS4uZDI2OTYz
ZTZkZDRmM2NjYjJkYzI2ZjZjNDhlZDMwOGE4ZGUyN2Q5NSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVmFyaWFibGVWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1ZhcmlhYmxlVmFsdWUuaApAQCAtMzMsMjEgKzMzLDIwIEBAIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQjMgewogCiBjbGFzcyBWYXJpYWJsZTsKIAotY2xhc3MgSlNfRVhQT1JU
X1BSSVZBVEUgVmFyaWFibGVWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7CitjbGFzcyBKU19FWFBPUlRf
UFJJVkFURSBWYXJpYWJsZVZhbHVlIGZpbmFsIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgYm9vbCBhY2NlcHRzKEtpbmQga2luZCkgeyByZXR1cm4ga2luZCA9PSBHZXQgfHwg
a2luZCA9PSBTZXQ7IH0KIAotICAgIH5WYXJpYWJsZVZhbHVlKCk7CisgICAgflZhcmlhYmxlVmFs
dWUoKSBmaW5hbDsKIAogICAgIFZhcmlhYmxlKiB2YXJpYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dmFyaWFibGU7IH0KIAogICAgIEIzX1NQRUNJQUxJWkVfVkFMVUVfRk9SX05PTl9WQVJBUkdTX0NI
SUxEUkVOCiAgICAgQjNfU1BFQ0lBTElaRV9WQUxVRV9GT1JfRklOQUxfU0laRV9GSVhFRF9DSElM
RFJFTgogCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmlu
dFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwotCiBwcml2YXRlOgorICAgIHZvaWQgZHVtcE1ldGEo
Q29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKKwogICAgIGZyaWVuZCBj
bGFzcyBQcm9jZWR1cmU7CiAgICAgZnJpZW5kIGNsYXNzIFZhbHVlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXYXNtQWRkcmVzc1ZhbHVlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNXYXNtQWRkcmVzc1ZhbHVlLmgKaW5kZXggNTliYjExMDI5MWUzYWE5
NTY1ZTdjODg4ZDA3M2RlYWFiZWNhNWY1OS4uY2FhNjljMmM4ZTVhZDRiNmViZTQyYTdlNDY1YzFj
N2Y0YTFiMDAyMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzV2FzbUFk
ZHJlc3NWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dhc21BZGRyZXNz
VmFsdWUuaApAQCAtMzIsMjEgKzMyLDIwIEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
QjMgewogCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBXYXNtQWRkcmVzc1ZhbHVlIDogcHVibGlj
IFZhbHVlIHsKK2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIFdhc21BZGRyZXNzVmFsdWUgZmluYWwg
OiBwdWJsaWMgVmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoS2luZCBr
aW5kKSB7IHJldHVybiBraW5kID09IFdhc21BZGRyZXNzOyB9CiAKLSAgICB+V2FzbUFkZHJlc3NW
YWx1ZSgpOworICAgIH5XYXNtQWRkcmVzc1ZhbHVlKCkgZmluYWw7CiAKICAgICBHUFJSZWcgcGlu
bmVkR1BSKCkgY29uc3QgeyByZXR1cm4gbV9waW5uZWRHUFI7IH0KIAogICAgIEIzX1NQRUNJQUxJ
WkVfVkFMVUVfRk9SX0ZJWEVEX0NISUxEUkVOKDEpCiAgICAgQjNfU1BFQ0lBTElaRV9WQUxVRV9G
T1JfRklOQUxfU0laRV9GSVhFRF9DSElMRFJFTgogCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBkdW1w
TWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwotCiBwcml2
YXRlOgorICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25z
dCBmaW5hbDsKKwogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CiAgICAgZnJpZW5kIGNsYXNz
IFZhbHVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXYXNtQm91
bmRzQ2hlY2tWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzV2FzbUJvdW5kc0No
ZWNrVmFsdWUuaAppbmRleCBiNjlkMjRlOGZjZjI4MjJkOTkxNjk5NGM0NjIzNjc2NTlkZWU1MGJj
Li44NjNjNjFhNTUxNDJjYjA0MDBhYzdkNGQxNWVkOWJhNzE5ZTI1Zjc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1dhc21Cb3VuZHNDaGVja1ZhbHVlLmgKQEAgLTMyLDEx
ICszMiwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgV2Fz
bUJvdW5kc0NoZWNrVmFsdWUgOiBwdWJsaWMgVmFsdWUgeworY2xhc3MgV2FzbUJvdW5kc0NoZWNr
VmFsdWUgZmluYWwgOiBwdWJsaWMgVmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFj
Y2VwdHMoS2luZCBraW5kKSB7IHJldHVybiBraW5kID09IFdhc21Cb3VuZHNDaGVjazsgfQogICAg
IAotICAgIH5XYXNtQm91bmRzQ2hlY2tWYWx1ZSgpOworICAgIH5XYXNtQm91bmRzQ2hlY2tWYWx1
ZSgpIGZpbmFsOwogCiAgICAgZW51bSBjbGFzcyBUeXBlIHsKICAgICAgICAgUGlubmVkLApAQCAt
NTUsMTAgKzU1LDkgQEAgcHVibGljOgogICAgIEIzX1NQRUNJQUxJWkVfVkFMVUVfRk9SX0ZJWEVE
X0NISUxEUkVOKDEpCiAgICAgQjNfU1BFQ0lBTElaRV9WQUxVRV9GT1JfRklOQUxfU0laRV9GSVhF
RF9DSElMRFJFTgogCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXIm
LCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwotCiBwcml2YXRlOgorICAgIHZvaWQgZHVt
cE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKKwogICAgIGZy
aWVuZCBjbGFzcyBQcm9jZWR1cmU7CiAgICAgZnJpZW5kIGNsYXNzIFZhbHVlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNDYWxsU3BlY2lhbC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDQ2FsbFNwZWNpYWwuaAppbmRleCBiY2FkMDBh
ZWFiNDg5Yjk4N2QzODA4MDA5YjM0OGNiMjAwYmZjZWI1Li5kZGFmZjFjMmUxNWU4MGY5ZjgxMTZl
MTFiNjcxNjc5Yzg4ZDYxYWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckNDYWxsU3BlY2lhbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyQ0NhbGxTcGVjaWFsLmgKQEAgLTQyLDE3ICs0MiwxNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAvLyBpZiB3ZSBoYWQgYSBjYWxsIHRoYXQgZGlk
bid0IHBhc3MgdGhlbSwgdGhlbiB0aGV5J2QgYXBwZWFyIHRvIGJlIGxpdmUgdW50aWwgc29tZSBj
bG9iYmVyIHBvaW50IG9yCiAvLyB0aGUgcHJvbG9ndWUsIHdoaWNoZXZlciBoYXBwZW5lZCBzb29u
ZXIuCiAKLWNsYXNzIENDYWxsU3BlY2lhbCA6IHB1YmxpYyBTcGVjaWFsIHsKK2NsYXNzIENDYWxs
U3BlY2lhbCBmaW5hbCA6IHB1YmxpYyBTcGVjaWFsIHsKIHB1YmxpYzoKICAgICBDQ2FsbFNwZWNp
YWwoKTsKLSAgICB+Q0NhbGxTcGVjaWFsKCk7CisgICAgfkNDYWxsU3BlY2lhbCgpIGZpbmFsOwog
CiAgICAgLy8gWW91IGNhbm5vdCB1c2UgdGhpcyByZWdpc3RlciB0byBwYXNzIGFyZ3VtZW50cy4g
SXQganVzdCBzbyBoYXBwZW5zIHRoYXQgdGhpcyByZWdpc3RlciBpcyBub3QKICAgICAvLyB1c2Vk
IGZvciBhcmd1bWVudHMgaW4gdGhlIEMgY2FsbGluZyBjb252ZW50aW9uLiBCeSB0aGUgd2F5LCB0
aGlzIGlzIHRoZSBvbmx5IHRoaW5nIHRoYXQgY2F1c2VzCiAgICAgLy8gdGhpcyBzcGVjaWFsIHRv
IGJlIHNwZWNpZmljIHRvIEMgY2FsbHMuCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgc2Ny
YXRjaFJlZ2lzdGVyID0gR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uQXJndW1lbnRHUFIwOwogCi1w
cm90ZWN0ZWQ6Citwcml2YXRlOgogICAgIHZvaWQgZm9yRWFjaEFyZyhJbnN0JiwgY29uc3QgU2Nv
cGVkTGFtYmRhPEluc3Q6OkVhY2hBcmdDYWxsYmFjaz4mKSBmaW5hbDsKICAgICBib29sIGlzVmFs
aWQoSW5zdCYpIGZpbmFsOwogICAgIGJvb2wgYWRtaXRzU3RhY2soSW5zdCYsIHVuc2lnbmVkIGFy
Z0luZGV4KSBmaW5hbDsKQEAgLTY1LDcgKzY1LDYgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZHVt
cEltcGwoUHJpbnRTdHJlYW0mKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGRlZXBEdW1wSW1wbChQ
cmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogCi1wcml2YXRlOgogICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgc3BlY2lhbEFyZ09mZnNldCA9IDA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBudW1TcGVjaWFsQXJncyA9IDE7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBjYWxsZWVBcmdPZmZzZXQgPSBudW1TcGVjaWFsQXJnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5oCmluZGV4IGZmZDJkN2JmNjRkMTZkNjBhMDA1
MmZmNGMyNGQyMDNmYjk3ZDRmNzIuLjU5MWJiNWRkZDYzNWIyMmU0YzVkMjllNDUyNmYxZTc0MjY1
YzIwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRT
cGVjaWFsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQcmludFNwZWNp
YWwuaApAQCAtOTIsMTcgKzkyLDE3IEBAIHN0cnVjdCBQcmludGVyPFJlZz4gOiBwdWJsaWMgUHJp
bnRSZWNvcmQgewogCiBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIAotY2xhc3MgUHJp
bnRTcGVjaWFsIDogcHVibGljIFNwZWNpYWwgeworY2xhc3MgUHJpbnRTcGVjaWFsIGZpbmFsIDog
cHVibGljIFNwZWNpYWwgewogcHVibGljOgogICAgIFByaW50U3BlY2lhbChQcmludGVyOjpQcmlu
dFJlY29yZExpc3QqKTsKLSAgICB+UHJpbnRTcGVjaWFsKCk7CisgICAgflByaW50U3BlY2lhbCgp
IGZpbmFsOwogICAgIAogICAgIC8vIFlvdSBjYW5ub3QgdXNlIHRoaXMgcmVnaXN0ZXIgdG8gcGFz
cyBhcmd1bWVudHMuIEl0IGp1c3Qgc28gaGFwcGVucyB0aGF0IHRoaXMgcmVnaXN0ZXIgaXMgbm90
CiAgICAgLy8gdXNlZCBmb3IgYXJndW1lbnRzIGluIHRoZSBDIGNhbGxpbmcgY29udmVudGlvbi4g
QnkgdGhlIHdheSwgdGhpcyBpcyB0aGUgb25seSB0aGluZyB0aGF0IGNhdXNlcwogICAgIC8vIHRo
aXMgc3BlY2lhbCB0byBiZSBzcGVjaWZpYyB0byBDIGNhbGxzLgogICAgIHN0YXRpYyBjb25zdGV4
cHIgR1BSUmVnIHNjcmF0Y2hSZWdpc3RlciA9IEdQUkluZm86Om5vbkFyZ0dQUjA7CiAgICAgCi1w
cm90ZWN0ZWQ6Citwcml2YXRlOgogICAgIHZvaWQgZm9yRWFjaEFyZyhJbnN0JiwgY29uc3QgU2Nv
cGVkTGFtYmRhPEluc3Q6OkVhY2hBcmdDYWxsYmFjaz4mKSBmaW5hbDsKICAgICBib29sIGlzVmFs
aWQoSW5zdCYpIGZpbmFsOwogICAgIGJvb2wgYWRtaXRzU3RhY2soSW5zdCYsIHVuc2lnbmVkIGFy
Z0luZGV4KSBmaW5hbDsKQEAgLTExNSw3ICsxMTUsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBk
dW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZGVlcER1bXBJbXBs
KFByaW50U3RyZWFtJikgY29uc3QgZmluYWw7CiAgICAgCi1wcml2YXRlOgogICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgc3BlY2lhbEFyZ09mZnNldCA9IDA7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBudW1TcGVjaWFsQXJncyA9IDE7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBjYWxsZWVBcmdPZmZzZXQgPSBudW1TcGVjaWFsQXJnczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgKaW5kZXggZWRiMTEyOTIxYWY3
NTNlNjNkODYxMzcyZmJkZTBlZWY4OWZjYTE1OS4uZWM2NDU3YmVkNDYxMWY5NmRjOWRhMGE2NGY1
ZThjMDAxOWY2MWFhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlRHVtcGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
dGVjb2RlRHVtcGVyLmgKQEAgLTg0LDcgKzg0LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAK
LSAgICB2aXJ0dWFsIH5CeXRlY29kZUR1bXBlcigpIHsgfQorICAgIH5CeXRlY29kZUR1bXBlcigp
IG92ZXJyaWRlIHsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgQmxvY2sqIGJsb2NrKCkgY29uc3QgeyBy
ZXR1cm4gbV9ibG9jazsgfQpAQCAtMTAxLDcgKzEwMSw3IEBAIHByaXZhdGU6CiB9OwogCiB0ZW1w
bGF0ZTxjbGFzcyBCbG9jaz4KLWNsYXNzIENvZGVCbG9ja0J5dGVjb2RlRHVtcGVyIDogcHVibGlj
IEJ5dGVjb2RlRHVtcGVyPEJsb2NrPiB7CitjbGFzcyBDb2RlQmxvY2tCeXRlY29kZUR1bXBlciBm
aW5hbCA6IHB1YmxpYyBCeXRlY29kZUR1bXBlcjxCbG9jaz4gewogcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIGR1bXBCbG9jayhCbG9jayosIGNvbnN0IEluc3RydWN0aW9uU3RyZWFtJiwgUHJpbnRT
dHJlYW0mIG91dCwgY29uc3QgSUNTdGF0dXNNYXAmID0gSUNTdGF0dXNNYXAoKSk7CiAKQEAgLTEy
Nyw3ICsxMjcsNyBAQCBjbGFzcyBGdW5jdGlvbkNvZGVCbG9jazsKIHN0cnVjdCBNb2R1bGVJbmZv
cm1hdGlvbjsKIGVudW0gVHlwZSA6IGludDhfdDsKIAotY2xhc3MgQnl0ZWNvZGVEdW1wZXIgOiBw
dWJsaWMgSlNDOjpCeXRlY29kZUR1bXBlcjxGdW5jdGlvbkNvZGVCbG9jaz4geworY2xhc3MgQnl0
ZWNvZGVEdW1wZXIgZmluYWwgOiBwdWJsaWMgSlNDOjpCeXRlY29kZUR1bXBlcjxGdW5jdGlvbkNv
ZGVCbG9jaz4gewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGR1bXBCbG9jayhGdW5jdGlvbkNv
ZGVCbG9jayosIGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiwgUHJpbnRTdHJlYW0mIG91dCk7CiAK
QEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIHVzaW5nIEpTQzo6Qnl0ZWNvZGVEdW1w
ZXI8RnVuY3Rpb25Db2RlQmxvY2s+OjpCeXRlY29kZUR1bXBlcjsKIAogICAgIHZvaWQgZHVtcENv
bnN0YW50cygpOwotICAgIENTdHJpbmcgY29uc3RhbnROYW1lKFZpcnR1YWxSZWdpc3RlciBpbmRl
eCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgQ1N0cmluZyBjb25zdGFudE5hbWUoVmlydHVhbFJlZ2lz
dGVyIGluZGV4KSBjb25zdCBmaW5hbDsKICAgICBDU3RyaW5nIGZvcm1hdENvbnN0YW50KFR5cGUs
IHVpbnQ2NF90KSBjb25zdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvR2V0dGVyU2V0dGVyQWNjZXNzQ2FzZS5oCmluZGV4IDI2ZDI1Y2YzY2Q2MGIy
NjNjZDA0ZDBkN2YxOWNjZmZiNDljNzIwNWMuLmYxNzVmMjFjOGIxZGU3ZjVlOWE3ZTE3MjI5MDkw
MmQ4ZGI0MWYwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0dldHRlclNldHRlckFjY2Vzc0Nhc2UuaApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotY2xhc3MgR2V0dGVyU2V0dGVyQWNjZXNzQ2FzZSA6IHB1YmxpYyBQcm94eWFi
bGVBY2Nlc3NDYXNlIHsKK2NsYXNzIEdldHRlclNldHRlckFjY2Vzc0Nhc2UgZmluYWwgOiBwdWJs
aWMgUHJveHlhYmxlQWNjZXNzQ2FzZSB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBQcm94eWFibGVB
Y2Nlc3NDYXNlIEJhc2U7CiAgICAgZnJpZW5kIGNsYXNzIEFjY2Vzc0Nhc2U7CkBAIC00OCw4ICs0
OCw4IEBAIHB1YmxpYzoKICAgICBKU09iamVjdCogY3VzdG9tU2xvdEJhc2UoKSBjb25zdCB7IHJl
dHVybiBtX2N1c3RvbVNsb3RCYXNlLmdldCgpOyB9CiAgICAgT3B0aW9uYWw8RE9NQXR0cmlidXRl
QW5ub3RhdGlvbj4gZG9tQXR0cmlidXRlKCkgY29uc3QgeyByZXR1cm4gbV9kb21BdHRyaWJ1dGU7
IH0KIAotICAgIGJvb2wgaGFzQWx0ZXJuYXRlQmFzZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIEpT
T2JqZWN0KiBhbHRlcm5hdGVCYXNlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBoYXNBbHRl
cm5hdGVCYXNlKCkgY29uc3QgZmluYWw7CisgICAgSlNPYmplY3QqIGFsdGVybmF0ZUJhc2UoKSBj
b25zdCBmaW5hbDsKIAogICAgIHZvaWQgZW1pdERPTUpJVEdldHRlcihBY2Nlc3NHZW5lcmF0aW9u
U3RhdGUmLCBjb25zdCBET01KSVQ6OkdldHRlclNldHRlciosIEdQUlJlZyBiYXNlRm9yR2V0R1BS
KTsKIApAQCAtNjIsMTAgKzYyLDEwIEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgT2JqZWN0UHJv
cGVydHlDb25kaXRpb25TZXQmLCBzdGQ6OnVuaXF1ZV9wdHI8UG9seVByb3RvQWNjZXNzQ2hhaW4+
LAogICAgICAgICBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+IGN1c3RvbVNldHRlciA9IG51
bGxwdHIsIEpTT2JqZWN0KiBjdXN0b21TbG90QmFzZSA9IG51bGxwdHIpOwogCi0gICAgdm9pZCBk
dW1wSW1wbChQcmludFN0cmVhbSYsIENvbW1hUHJpbnRlciYpIGNvbnN0IG92ZXJyaWRlOwotICAg
IHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBjbG9uZSgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZvaWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mLCBDb21tYVByaW50ZXImKSBjb25zdCBmaW5hbDsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBjb25zdCBmaW5hbDsKIAot
ICAgIH5HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlKCk7CisgICAgfkdldHRlclNldHRlckFjY2Vzc0Nh
c2UoKSBmaW5hbDsKIAogICAgIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4gY3VzdG9tQWNj
ZXNzb3IoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbUFjY2Vzc29yOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbnN0YW5jZU9mQWNjZXNzQ2FzZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0luc3RhbmNlT2ZBY2Nlc3NDYXNlLmgKaW5k
ZXggZDYzODhkNzM2ZmVlODI4ZDFiODY3MGM4NTE2NWExM2M4MTVjZDljNi4uNjllMmIzMWFhOTRh
NTlkMzBkZmI0Y2FmMjI0NDk5ZDYwMjc3ODQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0luc3RhbmNlT2ZBY2Nlc3NDYXNlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0luc3RhbmNlT2ZBY2Nlc3NDYXNlLmgKQEAgLTMxLDcgKzMxLDcg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEluc3RhbmNlT2ZBY2Nlc3NDYXNlIDogcHVi
bGljIEFjY2Vzc0Nhc2UgeworY2xhc3MgSW5zdGFuY2VPZkFjY2Vzc0Nhc2UgZmluYWwgOiBwdWJs
aWMgQWNjZXNzQ2FzZSB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEFjY2Vzc0Nhc2U7CiAg
ICAgCkBAIC00MSwxNyArNDEsMTYgQEAgcHVibGljOgogICAgIAogICAgIEpTT2JqZWN0KiBwcm90
b3R5cGUoKSBjb25zdCB7IHJldHVybiBtX3Byb3RvdHlwZS5nZXQoKTsgfQogICAgIAotICAgIHZv
aWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mLCBDb21tYVByaW50ZXImKSBjb25zdCBvdmVycmlkZTsK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2b2lkIGR1bXBJbXBsKFByaW50U3RyZWFtJiwgQ29tbWFQcmludGVyJikgY29uc3QgZmlu
YWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IGNsb25lKCkgY29uc3QgZmluYWw7
CiAgICAgCi0gICAgfkluc3RhbmNlT2ZBY2Nlc3NDYXNlKCk7CisgICAgfkluc3RhbmNlT2ZBY2Nl
c3NDYXNlKCkgZmluYWw7CiAKLXByb3RlY3RlZDoKK3ByaXZhdGU6CiAgICAgSW5zdGFuY2VPZkFj
Y2Vzc0Nhc2UoCiAgICAgICAgIFZNJiwgSlNDZWxsKiwgQWNjZXNzVHlwZSwgU3RydWN0dXJlKiwg
Y29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmLAogICAgICAgICBKU09iamVjdCogcHJv
dG90eXBlKTsKIAotcHJpdmF0ZToKICAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IG1fcHJvdG90
eXBlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lu
dHJpbnNpY0dldHRlckFjY2Vzc0Nhc2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9JbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlLmgKaW5kZXggNjk2ZGFiNDBiMjQ0ZWJiMjFkYzNi
ZjBlOTFlNDAzMjA0N2VlNDZhOS4uZDdhZWQ3YTUzMmMxMzA4Y2VkNjU1ZTBkZmVlMjVmMzczZDY4
YTYwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0ludHJpbnNp
Y0dldHRlckFjY2Vzc0Nhc2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
SW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZS5oCkBAIC0zMSw3ICszMSw3IEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCi1jbGFzcyBJbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlIDogcHVibGljIEFjY2Vz
c0Nhc2UgeworY2xhc3MgSW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZSBmaW5hbCA6IHB1YmxpYyBB
Y2Nlc3NDYXNlIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEFjY2Vzc0Nhc2UgQmFzZTsKICAgICBm
cmllbmQgY2xhc3MgQWNjZXNzQ2FzZTsKQEAgLTQ0LDkgKzQ0LDkgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBjcmVhdGUoVk0mLCBKU0NlbGwqLCBD
YWNoZWFibGVJZGVudGlmaWVyLCBQcm9wZXJ0eU9mZnNldCwgU3RydWN0dXJlKiwgY29uc3QgT2Jq
ZWN0UHJvcGVydHlDb25kaXRpb25TZXQmLCBKU0Z1bmN0aW9uKiBpbnRyaW5zaWNGdW5jdGlvbiwg
c3RkOjp1bmlxdWVfcHRyPFBvbHlQcm90b0FjY2Vzc0NoYWluPik7CiAKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBjb25zdCBmaW5hbDsKIAotICAgIH5JbnRyaW5zaWNH
ZXR0ZXJBY2Nlc3NDYXNlKCk7CisgICAgfkludHJpbnNpY0dldHRlckFjY2Vzc0Nhc2UoKSBmaW5h
bDsKIAogcHJpdmF0ZToKICAgICBJbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlKFZNJiwgSlNDZWxs
KiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgUHJvcGVydHlPZmZzZXQsIFN0cnVjdHVyZSosIGNvbnN0
IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0JiwgSlNGdW5jdGlvbiogaW50cmluc2ljRnVuY3Rp
b24sIHN0ZDo6dW5pcXVlX3B0cjxQb2x5UHJvdG9BY2Nlc3NDaGFpbj4pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01vZHVsZU5hbWVzcGFjZUFjY2Vzc0Nhc2Uu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Nb2R1bGVOYW1lc3BhY2VBY2Nlc3ND
YXNlLmgKaW5kZXggNWVjYzRiM2FjOTE4YWViMzA5M2E0MGEyMzEyNDI3ZjBkZDU5ZWJiYS4uOTJh
MGI4YTM1YjU0NzE2MjQxMzBkNjUwNjUzZDA1YmY1ZDc5MzM3NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL01vZHVsZU5hbWVzcGFjZUFjY2Vzc0Nhc2UuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTW9kdWxlTmFtZXNwYWNlQWNjZXNzQ2Fz
ZS5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSlNNb2R1bGVFbnZp
cm9ubWVudDsKIGNsYXNzIEpTTW9kdWxlTmFtZXNwYWNlT2JqZWN0OwogCi1jbGFzcyBNb2R1bGVO
YW1lc3BhY2VBY2Nlc3NDYXNlIDogcHVibGljIEFjY2Vzc0Nhc2UgeworY2xhc3MgTW9kdWxlTmFt
ZXNwYWNlQWNjZXNzQ2FzZSBmaW5hbCA6IHB1YmxpYyBBY2Nlc3NDYXNlIHsKIHB1YmxpYzoKICAg
ICB1c2luZyBCYXNlID0gQWNjZXNzQ2FzZTsKICAgICBmcmllbmQgY2xhc3MgQWNjZXNzQ2FzZTsK
QEAgLTQ2LDExICs0NiwxMSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PEFjY2Vzc0Nhc2U+IGNyZWF0ZShWTSYsIEpTQ2VsbCogb3duZXIsIENhY2hlYWJsZUlkZW50aWZp
ZXIsIEpTTW9kdWxlTmFtZXNwYWNlT2JqZWN0KiwgSlNNb2R1bGVFbnZpcm9ubWVudCosIFNjb3Bl
T2Zmc2V0KTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBjbG9uZSgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBjbG9uZSgpIGNvbnN0
IGZpbmFsOwogCiAgICAgdm9pZCBlbWl0KEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYsIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wTGlzdCYgZmFsbFRocm91Z2gpOwogCi0gICAgfk1vZHVsZU5hbWVzcGFjZUFj
Y2Vzc0Nhc2UoKTsKKyAgICB+TW9kdWxlTmFtZXNwYWNlQWNjZXNzQ2FzZSgpIGZpbmFsOwogCiBw
cml2YXRlOgogICAgIE1vZHVsZU5hbWVzcGFjZUFjY2Vzc0Nhc2UoVk0mLCBKU0NlbGwqIG93bmVy
LCBDYWNoZWFibGVJZGVudGlmaWVyLCBKU01vZHVsZU5hbWVzcGFjZU9iamVjdCosIEpTTW9kdWxl
RW52aXJvbm1lbnQqLCBTY29wZU9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUHJveHlhYmxlQWNjZXNzQ2FzZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1Byb3h5YWJsZUFjY2Vzc0Nhc2UuaAppbmRleCAzZTczNzYxZDcyZjAzODU3
MjRiNmI1ZjRhMGVkN2Q5YTMyNTZmNDAxLi4zY2JiZTcxYjlhYTM1MzM3MDU0ODhlOGJiYmM4NmM4
NGJhMWE1YmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJv
eHlhYmxlQWNjZXNzQ2FzZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Q
cm94eWFibGVBY2Nlc3NDYXNlLmgKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgIHZvaWQg
ZHVtcEltcGwoUHJpbnRTdHJlYW0mLCBDb21tYVByaW50ZXImKSBjb25zdCBvdmVycmlkZTsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gY2xvbmUoKSBjb25zdCBvdmVycmlkZTsKIAot
ICAgIH5Qcm94eWFibGVBY2Nlc3NDYXNlKCk7CisgICAgflByb3h5YWJsZUFjY2Vzc0Nhc2UoKSBv
dmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFByb3h5YWJsZUFjY2Vzc0Nhc2UoVk0mLCBKU0Nl
bGwqLCBBY2Nlc3NUeXBlLCBDYWNoZWFibGVJZGVudGlmaWVyLCBQcm9wZXJ0eU9mZnNldCwgU3Ry
dWN0dXJlKiwgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmLCBib29sIHZpYVByb3h5
LCBXYXRjaHBvaW50U2V0KiBhZGRpdGlvbmFsU2V0LCBzdGQ6OnVuaXF1ZV9wdHI8UG9seVByb3Rv
QWNjZXNzQ2hhaW4+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9XYXRjaHBvaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2lu
dC5oCmluZGV4IDRiMjRhNTBlMjM5ZmY4ZjYxMTdlMmIwMDFkNGE0MjQ2NzYwMDA1M2QuLjUxYmNl
MzgwMDM0ZTA1YjYxZmVlNjI5ZWU2ODQxMTdlMDIyOTNhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuaApAQCAtNTMzLDcgKzUzMyw3IEBAIGNsYXNzIERl
ZmVycmVkV2F0Y2hwb2ludEZpcmUgOiBwdWJsaWMgRmlyZURldGFpbCB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoRGVmZXJyZWRXYXRjaHBvaW50RmlyZSk7CiBwdWJsaWM6CiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgRGVmZXJyZWRXYXRjaHBvaW50RmlyZShWTSYpOwotICAgIEpTX0VYUE9SVF9Q
UklWQVRFIH5EZWZlcnJlZFdhdGNocG9pbnRGaXJlKCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUg
fkRlZmVycmVkV2F0Y2hwb2ludEZpcmUoKSBvdmVycmlkZTsKIAogICAgIEpTX0VYUE9SVF9QUklW
QVRFIHZvaWQgdGFrZVdhdGNocG9pbnRzVG9GaXJlKFdhdGNocG9pbnRTZXQqKTsKICAgICBKU19F
WFBPUlRfUFJJVkFURSB2b2lkIGZpcmVBbGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5oCmluZGV4IGYxNDNjY2MyZDY4ZTQ1OWJkYmRhYzFlN2Ni
ZmIwNjY0OTkzNDQzMTYuLmI5YWE1ODYzMDliOTg2NDg4ZmE2YjRmNWRiYzRjNDJlYjExYjc4NDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRmFpbGVkRmluYWxpemVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGYWlsZWRGaW5hbGl6ZXIuaApA
QCAtMzEsMTQgKzMxLDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAot
Y2xhc3MgRmFpbGVkRmluYWxpemVyIDogcHVibGljIEZpbmFsaXplciB7CitjbGFzcyBGYWlsZWRG
aW5hbGl6ZXIgZmluYWwgOiBwdWJsaWMgRmluYWxpemVyIHsKIHB1YmxpYzoKICAgICBGYWlsZWRG
aW5hbGl6ZXIoUGxhbiYpOwotICAgIHZpcnR1YWwgfkZhaWxlZEZpbmFsaXplcigpOworICAgIH5G
YWlsZWRGaW5hbGl6ZXIoKSBmaW5hbDsKICAgICAKLSAgICBzaXplX3QgY29kZVNpemUoKSBvdmVy
cmlkZTsKLSAgICBib29sIGZpbmFsaXplKCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBmaW5hbGl6ZUZ1
bmN0aW9uKCkgb3ZlcnJpZGU7CisgICAgc2l6ZV90IGNvZGVTaXplKCkgZmluYWw7CisgICAgYm9v
bCBmaW5hbGl6ZSgpIGZpbmFsOworICAgIGJvb2wgZmluYWxpemVGdW5jdGlvbigpIGZpbmFsOwog
fTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaC5oCmluZGV4IDcxNzZhODU0MTM4NjBlZDUyYmE5OTgyNzk1OGUyY2Q0YTY3ZTUzMjEuLjRj
MmNlMTg5NDgyN2U2Yjk0MWFhZDZiNThiZmY0ZGU2YzJjNjdjYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoLmgKQEAgLTE1OSwxMCArMTU5LDEwIEBAIHByaXZhdGU6CiAvLwogLy8g
VGhlIG9yZGVyIG1heSBiZSBzaWduaWZpY2FudCBmb3Igbm9kZXMgd2l0aCBzaWRlLWVmZmVjdHMg
KHByb3BlcnR5IGFjY2Vzc2VzLCB2YWx1ZSBjb252ZXJzaW9ucykuCiAvLyBOb2RlcyB0aGF0IGFy
ZSAnZGVhZCcgcmVtYWluIGluIHRoZSB2ZWN0b3Igd2l0aCByZWZDb3VudCAwLgotY2xhc3MgR3Jh
cGggOiBwdWJsaWMgdmlydHVhbCBTY2FubmFibGUgeworY2xhc3MgR3JhcGggZmluYWwgOiBwdWJs
aWMgdmlydHVhbCBTY2FubmFibGUgewogcHVibGljOgogICAgIEdyYXBoKFZNJiwgUGxhbiYpOwot
ICAgIH5HcmFwaCgpOworICAgIH5HcmFwaCgpIGZpbmFsOwogICAgIAogICAgIHZvaWQgY2hhbmdl
Q2hpbGQoRWRnZSYgZWRnZSwgTm9kZSogbmV3Tm9kZSkKICAgICB7CkBAIC0xMDAxLDcgKzEwMDEs
NyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCByZWdpc3RlckZyb3plblZhbHVlcygpOwogICAg
IAotICAgIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpIG92ZXJyaWRlOworICAgIHZv
aWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpIGZpbmFsOwogICAgIAogICAgIHZvaWQgbG9n
QXNzZXJ0aW9uRmFpbHVyZSgKICAgICAgICAgc3RkOjpudWxscHRyX3QsIGNvbnN0IGNoYXIqIGZp
bGUsIGludCBsaW5lLCBjb25zdCBjaGFyKiBmdW5jdGlvbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdKSVRDb2RlLmgKaW5kZXggY2Q5NzQ2NDU3MTk5MWQzZDVlMTNlYmY4MTY3MzgwOTMzZDli
MTgyOS4uYTM3ODk4OTIzN2NkNGIxZjYzYmI3ZDNkOTVjMDc2ODQ3MmUyNWFiZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKQEAgLTQ2LDEzICs0NiwxMyBAQCBuYW1lc3Bh
Y2UgREZHIHsKIAogY2xhc3MgSklUQ29tcGlsZXI7CiAKLWNsYXNzIEpJVENvZGUgOiBwdWJsaWMg
RGlyZWN0SklUQ29kZSB7CitjbGFzcyBKSVRDb2RlIGZpbmFsIDogcHVibGljIERpcmVjdEpJVENv
ZGUgewogcHVibGljOgogICAgIEpJVENvZGUoKTsKLSAgICB2aXJ0dWFsIH5KSVRDb2RlKCk7Cisg
ICAgfkpJVENvZGUoKSBmaW5hbDsKICAgICAKLSAgICBDb21tb25EYXRhKiBkZmdDb21tb24oKSBv
dmVycmlkZTsKLSAgICBKSVRDb2RlKiBkZmcoKSBvdmVycmlkZTsKKyAgICBDb21tb25EYXRhKiBk
ZmdDb21tb24oKSBmaW5hbDsKKyAgICBKSVRDb2RlKiBkZmcoKSBmaW5hbDsKICAgICAKICAgICBP
U1JFbnRyeURhdGEqIGFwcGVuZE9TUkVudHJ5RGF0YShCeXRlY29kZUluZGV4IGJ5dGVjb2RlSW5k
ZXgsIENvZGVMb2NhdGlvbkxhYmVsPE9TUkVudHJ5UHRyVGFnPiBtYWNoaW5lQ29kZSkKICAgICB7
CkBAIC0xMTMsMTEgKzExMywxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPcHRpbWl6YXRpb25U
aHJlc2hvbGRCYXNlZE9uQ29tcGlsYXRpb25SZXN1bHQoQ29kZUJsb2NrKiwgQ29tcGlsYXRpb25S
ZXN1bHQpOwogI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQogICAgIAotICAgIHZvaWQgdmFsaWRh
dGVSZWZlcmVuY2VzKGNvbnN0IFRyYWNrZWRSZWZlcmVuY2VzJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCB2YWxpZGF0ZVJlZmVyZW5jZXMoY29uc3QgVHJhY2tlZFJlZmVyZW5jZXMmKSBmaW5hbDsKICAg
ICAKLSAgICB2b2lkIHNocmlua1RvRml0KGNvbnN0IENvbmN1cnJlbnRKU0xvY2tlciYpIG92ZXJy
aWRlOworICAgIHZvaWQgc2hyaW5rVG9GaXQoY29uc3QgQ29uY3VycmVudEpTTG9ja2VyJikgZmlu
YWw7CiAKLSAgICBSZWdpc3RlclNldCBsaXZlUmVnaXN0ZXJzVG9QcmVzZXJ2ZUF0RXhjZXB0aW9u
SGFuZGxpbmdDYWxsU2l0ZShDb2RlQmxvY2sqLCBDYWxsU2l0ZUluZGV4KSBvdmVycmlkZTsKKyAg
ICBSZWdpc3RlclNldCBsaXZlUmVnaXN0ZXJzVG9QcmVzZXJ2ZUF0RXhjZXB0aW9uSGFuZGxpbmdD
YWxsU2l0ZShDb2RlQmxvY2sqLCBDYWxsU2l0ZUluZGV4KSBmaW5hbDsKICNpZiBFTkFCTEUoRlRM
X0pJVCkKICAgICBDb2RlQmxvY2sqIG9zckVudHJ5QmxvY2soKSB7IHJldHVybiBtX29zckVudHJ5
QmxvY2suZ2V0KCk7IH0KICAgICB2b2lkIHNldE9TUkVudHJ5QmxvY2soVk0mLCBjb25zdCBKU0Nl
bGwqIG93bmVyLCBDb2RlQmxvY2sqIG9zckVudHJ5QmxvY2spOwpAQCAtMTI2LDcgKzEyNiw3IEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBwdHJkaWZmX3QgY29tbW9uRGF0YU9mZnNldCgpIHsgcmV0
dXJuIE9CSkVDVF9PRkZTRVRPRihKSVRDb2RlLCBjb21tb24pOyB9CiAKLSAgICBPcHRpb25hbDxD
b2RlT3JpZ2luPiBmaW5kUEMoQ29kZUJsb2NrKiwgdm9pZCogcGMpIG92ZXJyaWRlOworICAgIE9w
dGlvbmFsPENvZGVPcmlnaW4+IGZpbmRQQyhDb2RlQmxvY2sqLCB2b2lkKiBwYykgZmluYWw7CiAK
ICAgICB1c2luZyBEaXJlY3RKSVRDb2RlOjppbml0aWFsaXplQ29kZVJlZkZvckRGRzsKICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5oCmluZGV4IDJmYzI3
NDVhOTNhNTdhMTZjOGZjY2JkMDdlNTU1OWE4MzA3OTRhZWQuLjVjYWQ3ZTk4M2YwYTI2MjRlOTkz
ZTkyYjUwODU5OWFlODA1NDY5ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSklURmluYWxpemVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdK
SVRGaW5hbGl6ZXIuaApAQCAtMzMsMTQgKzMzLDE0IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgREZHIHsKIAotY2xhc3MgSklURmluYWxpemVyIDogcHVibGljIEZpbmFsaXplciB7Citj
bGFzcyBKSVRGaW5hbGl6ZXIgZmluYWwgOiBwdWJsaWMgRmluYWxpemVyIHsKIHB1YmxpYzoKICAg
ICBKSVRGaW5hbGl6ZXIoUGxhbiYsIFJlZjxKSVRDb2RlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TGlu
a0J1ZmZlcj4sIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiB3aXRoQXJpdHlD
aGVjayA9IE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPihNYWNyb0Fzc2VtYmxl
ckNvZGVQdHI8SlNFbnRyeVB0clRhZz46OkVtcHR5VmFsdWUpKTsKLSAgICB2aXJ0dWFsIH5KSVRG
aW5hbGl6ZXIoKTsKKyAgICB+SklURmluYWxpemVyKCkgZmluYWw7CiAgICAgCi0gICAgc2l6ZV90
IGNvZGVTaXplKCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBmaW5hbGl6ZSgpIG92ZXJyaWRlOwotICAg
IGJvb2wgZmluYWxpemVGdW5jdGlvbigpIG92ZXJyaWRlOworICAgIHNpemVfdCBjb2RlU2l6ZSgp
IGZpbmFsOworICAgIGJvb2wgZmluYWxpemUoKSBmaW5hbDsKKyAgICBib29sIGZpbmFsaXplRnVu
Y3Rpb24oKSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICB2b2lkIGZpbmFsaXplQ29tbW9uKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRGVmZXJyZWRDb21w
aWxhdGlvbkNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RvRlRMRGVm
ZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKaW5kZXggOGY3ODAyOTI0Y2E4MDIyNGRiMzliMTI1
MjNlOGQxMGM1OTU1MTJkMC4uYWRkM2NiMDNlY2FlMDNhMTU3NzRhMWQxMDE5M2U4NzdlM2VmZmJm
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTERlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaApAQCAtMzYsMTcgKzM2LDE3IEBAIGNs
YXNzIFNjcmlwdEV4ZWN1dGFibGU7CiAKIG5hbWVzcGFjZSBERkcgewogCi1jbGFzcyBUb0ZUTERl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayA6IHB1YmxpYyBEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2sgewotcHJvdGVjdGVkOgotICAgIFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
KCk7Ci0KK2NsYXNzIFRvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrIGZpbmFsIDogcHVi
bGljIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+
VG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKTsKKyAgICB+VG9GVExEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2soKSBmaW5hbDsKIAogICAgIHN0YXRpYyBSZWY8VG9GVExEZWZlcnJl
ZENvbXBpbGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZSgpOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBj
b21waWxhdGlvbkRpZEJlY29tZVJlYWR5QXN5bmNocm9ub3VzbHkoQ29kZUJsb2NrKiwgQ29kZUJs
b2NrKiBwcm9maWxlZERGR0NvZGVCbG9jayk7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXBpbGF0aW9u
RGlkQ29tcGxldGUoQ29kZUJsb2NrKiwgQ29kZUJsb2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywg
Q29tcGlsYXRpb25SZXN1bHQpOworICAgIHZvaWQgY29tcGlsYXRpb25EaWRCZWNvbWVSZWFkeUFz
eW5jaHJvbm91c2x5KENvZGVCbG9jayosIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2sp
IGZpbmFsOworICAgIHZvaWQgY29tcGlsYXRpb25EaWRDb21wbGV0ZShDb2RlQmxvY2sqLCBDb2Rl
QmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBDb21waWxhdGlvblJlc3VsdCkgZmluYWw7CisK
K3ByaXZhdGU6CisgICAgVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKTsKIH07CiAK
IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRD
b21waWxhdGlvbkNhbGxiYWNrLmgKaW5kZXggZWUwNTJhZGEzMDA3MTgyNDI0ZjAzMmE3ZDgyYTVk
YjYyNjUxOWJhNS4uNzZlNWI1YjIyMmM2YjJiNTc4ZDY2NjlmN2M5YmQ4MmVkNTVmZGUyMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVm
ZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKQEAgLTM3
LDE5ICszNywxOCBAQCBjbGFzcyBTY3JpcHRFeGVjdXRhYmxlOwogCiBuYW1lc3BhY2UgREZHIHsK
IAotY2xhc3MgVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayA6IHB1
YmxpYyBEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2sgewotcHJvdGVjdGVkOgotICAgIFRvRlRM
Rm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soSklUQ29kZTo6VHJpZ2dlclJl
YXNvbiogZm9yY2VkT1NSRW50cnlUcmlnZ2VyKTsKLQorY2xhc3MgVG9GVExGb3JPU1JFbnRyeURl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayBmaW5hbCA6IHB1YmxpYyBEZWZlcnJlZENvbXBpbGF0
aW9uQ2FsbGJhY2sgewogcHVibGljOgotICAgIHZpcnR1YWwgflRvRlRMRm9yT1NSRW50cnlEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKTsKKyAgICB+VG9GVExGb3JPU1JFbnRyeURlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjaygpIGZpbmFsOwogCiAgICAgc3RhdGljIFJlZjxUb0ZUTEZvck9T
UkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrPiBjcmVhdGUoSklUQ29kZTo6VHJpZ2dl
clJlYXNvbiogZm9yY2VkT1NSRW50cnlUcmlnZ2VyKTsKLSAgICAKLSAgICB2aXJ0dWFsIHZvaWQg
Y29tcGlsYXRpb25EaWRCZWNvbWVSZWFkeUFzeW5jaHJvbm91c2x5KENvZGVCbG9jayosIENvZGVC
bG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2spOwotICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlv
bkRpZENvbXBsZXRlKENvZGVCbG9jayosIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2ss
IENvbXBpbGF0aW9uUmVzdWx0KTsKKworICAgIHZvaWQgY29tcGlsYXRpb25EaWRCZWNvbWVSZWFk
eUFzeW5jaHJvbm91c2x5KENvZGVCbG9jayosIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxv
Y2spIGZpbmFsOworICAgIHZvaWQgY29tcGlsYXRpb25EaWRDb21wbGV0ZShDb2RlQmxvY2sqLCBD
b2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrLCBDb21waWxhdGlvblJlc3VsdCkgZmluYWw7
CiAKIHByaXZhdGU6CisgICAgVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjayhKSVRDb2RlOjpUcmlnZ2VyUmVhc29uKiBmb3JjZWRPU1JFbnRyeVRyaWdnZXIpOworCiAg
ICAgSklUQ29kZTo6VHJpZ2dlclJlYXNvbiogbV9mb3JjZWRPU1JFbnRyeVRyaWdnZXI7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEZvck9TUkVudHJ5SklU
Q29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExGb3JPU1JFbnRyeUpJVENvZGUu
aAppbmRleCAyNjg5ZDNhNzE2Yjc1M2Y1ZDY4MmNlZDBjYzU0NzE1ZjhhNzU5N2ExLi43YWFlMzUw
NGViNTQ4MmJmYzZhZDA0MzhmM2ZmZDNjZjY5NmEzNzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEZvck9TUkVudHJ5SklUQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMRm9yT1NSRW50cnlKSVRDb2RlLmgKQEAgLTQwLDEwICs0MCwxMCBA
QCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAvLwogLy8gLSBFYWNoIE9TUiBlbnRy
eSBjb21waWxhdGlvbiBhbGxvd3MgZW50cnkgdGhyb3VnaCBvbmx5IG9uZSBieXRlY29kZSBpbmRl
eC4KIAotY2xhc3MgRm9yT1NSRW50cnlKSVRDb2RlIDogcHVibGljIEZUTDo6SklUQ29kZSB7Citj
bGFzcyBGb3JPU1JFbnRyeUpJVENvZGUgZmluYWwgOiBwdWJsaWMgRlRMOjpKSVRDb2RlIHsKIHB1
YmxpYzoKICAgICBGb3JPU1JFbnRyeUpJVENvZGUoKTsKLSAgICB+Rm9yT1NSRW50cnlKSVRDb2Rl
KCk7CisgICAgfkZvck9TUkVudHJ5SklUQ29kZSgpIGZpbmFsOwogICAgIAogICAgIHZvaWQgaW5p
dGlhbGl6ZUVudHJ5QnVmZmVyKFZNJiwgdW5zaWduZWQgbnVtQ2FsbGVlTG9jYWxzKTsKICAgICBT
Y3JhdGNoQnVmZmVyKiBlbnRyeUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZW50cnlCdWZmZXI7
IH0KQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZvaWQgY291bnRFbnRyeUZhaWx1cmUo
KSB7IG1fZW50cnlGYWlsdXJlQ291bnQrKzsgfQogICAgIHVuc2lnbmVkIGVudHJ5RmFpbHVyZUNv
dW50KCkgY29uc3QgeyByZXR1cm4gbV9lbnRyeUZhaWx1cmVDb3VudDsgfQogICAgIAotICAgIEZv
ck9TUkVudHJ5SklUQ29kZSogZnRsRm9yT1NSRW50cnkoKTsKKyAgICBGb3JPU1JFbnRyeUpJVENv
ZGUqIGZ0bEZvck9TUkVudHJ5KCkgZmluYWw7CiAgICAgCiBwcml2YXRlOgogICAgIFNjcmF0Y2hC
dWZmZXIqIG1fZW50cnlCdWZmZXI7IC8vIE9ubHkgZm9yIE9TUiBlbnRyeSBjb2RlIGJsb2Nrcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklUQ29kZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKaW5kZXggMDBiYWEyY2I4NzI4MTMy
MDgwOGRhZjM0NGIwY2YwNjZiYTIzYTI1Yi4uY2YxNjY3MTRiOTBhMWFhZDJkNDk1ZmJmMjU2MGRi
OTVkNTg2ZTRmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRD
b2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKQEAgLTQy
LDcgKzQyLDcgQEAgbmFtZXNwYWNlIEZUTCB7CiBjbGFzcyBKSVRDb2RlIDogcHVibGljIEpTQzo6
SklUQ29kZSB7CiBwdWJsaWM6CiAgICAgSklUQ29kZSgpOwotICAgIH5KSVRDb2RlKCk7CisgICAg
fkpJVENvZGUoKSBvdmVycmlkZTsKIAogICAgIENvZGVQdHI8SlNFbnRyeVB0clRhZz4gYWRkcmVz
c0ZvckNhbGwoQXJpdHlDaGVja01vZGUpIG92ZXJyaWRlOwogICAgIHZvaWQqIGV4ZWN1dGFibGVB
ZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXplci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExKSVRGaW5hbGl6ZXIuaAppbmRleCA2NzliYmZmNjA5OWRmNWRhNWFiMDRm
OWQwMGFjZjcwYmVmMTJhNTIyLi5kNWI1NWVmZmFkNTA3MTFmMGVmNDVjNTFlMTIzMDYxMzVjYzE1
NWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVEZpbmFsaXpl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSklURmluYWxpemVyLmgKQEAg
LTQ3LDE0ICs0NywxNCBAQCBwdWJsaWM6CiAgICAgY29uc3QgY2hhciogbV9jb2RlRGVzY3JpcHRp
b247CiB9OwogCi1jbGFzcyBKSVRGaW5hbGl6ZXIgOiBwdWJsaWMgREZHOjpGaW5hbGl6ZXIgewor
Y2xhc3MgSklURmluYWxpemVyIGZpbmFsIDogcHVibGljIERGRzo6RmluYWxpemVyIHsKIHB1Ymxp
YzoKICAgICBKSVRGaW5hbGl6ZXIoREZHOjpQbGFuJik7Ci0gICAgdmlydHVhbCB+SklURmluYWxp
emVyKCk7CisgICAgfkpJVEZpbmFsaXplcigpIGZpbmFsOwogCi0gICAgc2l6ZV90IGNvZGVTaXpl
KCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBmaW5hbGl6ZSgpIG92ZXJyaWRlOwotICAgIGJvb2wgZmlu
YWxpemVGdW5jdGlvbigpIG92ZXJyaWRlOworICAgIHNpemVfdCBjb2RlU2l6ZSgpIGZpbmFsOwor
ICAgIGJvb2wgZmluYWxpemUoKSBmaW5hbDsKKyAgICBib29sIGZpbmFsaXplRnVuY3Rpb24oKSBm
aW5hbDsKICAgICAKICAgICBib29sIGZpbmFsaXplQ29tbW9uKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3BhY2UuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3BhY2UuaAppbmRleCA0YzhhODY0MTUwOGZkMGVj
OGE1N2ViYjc1YTc1YjUwZDQ2Y2Q4MWY4Li4yOTI3ODQ3MzRhY2M4MDhhZDIzMTg4ZmUyZjc4Yzc4
NWE5MDRkM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db21wbGV0
ZVN1YnNwYWNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVTdWJz
cGFjZS5oCkBAIC0yOSwyMCArMjksMjAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIENv
bXBsZXRlU3Vic3BhY2UgOiBwdWJsaWMgU3Vic3BhY2UgeworY2xhc3MgQ29tcGxldGVTdWJzcGFj
ZSBmaW5hbCA6IHB1YmxpYyBTdWJzcGFjZSB7CiBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgQ29tcGxldGVTdWJzcGFjZShDU3RyaW5nIG5hbWUsIEhlYXAmLCBIZWFwQ2VsbFR5cGUqLCBB
bGlnbmVkTWVtb3J5QWxsb2NhdG9yKik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgfkNvbXBsZXRl
U3Vic3BhY2UoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB+Q29tcGxldGVTdWJzcGFjZSgpIGZp
bmFsOwogCiAgICAgLy8gSW4gc29tZSBjb2RlIHBhdGhzLCB3ZSBuZWVkIGl0IHRvIGJlIGEgY29t
cGlsZSBlcnJvciB0byBjYWxsIHRoZSB2aXJ0dWFsIHZlcnNpb24gb2Ygb25lIG9mCiAgICAgLy8g
dGhlc2UgZnVuY3Rpb25zLiBUaGF0J3Mgd2h5IHdlIGRvIGZpbmFsIG1ldGhvZHMgdGhlIG9sZCBz
Y2hvb2wgd2F5LgogICAgIAogICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgc3Vic3BhY2VzIHNwZWFr
IG9mIEJsb2NrRGlyZWN0b3JpZXMgYXMgImFsbG9jYXRvcnMiLCBidXQgdGhhdCdzIHRlbXBvcmFy
eS4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxNTU5
Ci0gICAgQWxsb2NhdG9yIGFsbG9jYXRvckZvcihzaXplX3QsIEFsbG9jYXRvckZvck1vZGUpIG92
ZXJyaWRlOworICAgIEFsbG9jYXRvciBhbGxvY2F0b3JGb3Ioc2l6ZV90LCBBbGxvY2F0b3JGb3JN
b2RlKSBmaW5hbDsKICAgICBBbGxvY2F0b3IgYWxsb2NhdG9yRm9yTm9uVmlydHVhbChzaXplX3Qs
IEFsbG9jYXRvckZvck1vZGUpOwogICAgIAotICAgIHZvaWQqIGFsbG9jYXRlKFZNJiwgc2l6ZV90
LCBHQ0RlZmVycmFsQ29udGV4dCosIEFsbG9jYXRpb25GYWlsdXJlTW9kZSkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCogYWxsb2NhdGUoVk0mLCBzaXplX3QsIEdDRGVmZXJyYWxDb250ZXh0KiwgQWxsb2Nh
dGlvbkZhaWx1cmVNb2RlKSBmaW5hbDsKICAgICB2b2lkKiBhbGxvY2F0ZU5vblZpcnR1YWwoVk0m
LCBzaXplX3QsIEdDRGVmZXJyYWxDb250ZXh0KiwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlKTsKICAg
ICB2b2lkKiByZWFsbG9jYXRlUHJlY2lzZUFsbG9jYXRpb25Ob25WaXJ0dWFsKFZNJiwgSGVhcENl
bGwqLCBzaXplX3QsIEdDRGVmZXJyYWxDb250ZXh0KiwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlKTsK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Zhc3RNYWxsb2NB
bGlnbmVkTWVtb3J5QWxsb2NhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GYXN0
TWFsbG9jQWxpZ25lZE1lbW9yeUFsbG9jYXRvci5oCmluZGV4IDM3MmFmNDFkYjU4ODZmNzE3NmYx
YjQ5MmRjOTAwYzIwMWZlYTY3M2YuLjBjZDM4ZjRmNGExMzk2ZGIzNWI4MGVkZTZhMzEwMGM3Nzgy
ODgxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Zhc3RNYWxsb2NB
bGlnbmVkTWVtb3J5QWxsb2NhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
RmFzdE1hbGxvY0FsaWduZWRNZW1vcnlBbGxvY2F0b3IuaApAQCAtMzMsMTkgKzMzLDE5IEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBGYXN0TWFsbG9jQWxpZ25lZE1lbW9yeUFsbG9jYXRv
ciA6IHB1YmxpYyBBbGlnbmVkTWVtb3J5QWxsb2NhdG9yIHsKK2NsYXNzIEZhc3RNYWxsb2NBbGln
bmVkTWVtb3J5QWxsb2NhdG9yIGZpbmFsIDogcHVibGljIEFsaWduZWRNZW1vcnlBbGxvY2F0b3Ig
ewogcHVibGljOgogICAgIEZhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKCk7Ci0gICAg
fkZhc3RNYWxsb2NBbGlnbmVkTWVtb3J5QWxsb2NhdG9yKCk7CisgICAgfkZhc3RNYWxsb2NBbGln
bmVkTWVtb3J5QWxsb2NhdG9yKCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCogdHJ5QWxsb2NhdGVB
bGlnbmVkTWVtb3J5KHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGZyZWVBbGlnbmVkTWVtb3J5KHZvaWQqKSBvdmVycmlkZTsKKyAgICB2b2lkKiB0cnlB
bGxvY2F0ZUFsaWduZWRNZW1vcnkoc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpIGZpbmFs
OworICAgIHZvaWQgZnJlZUFsaWduZWRNZW1vcnkodm9pZCopIGZpbmFsOwogICAgIAotICAgIHZv
aWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgZHVtcChQcmlu
dFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCogdHJ5QWxsb2NhdGVNZW1vcnkoc2l6
ZV90KSBvdmVycmlkZTsKLSAgICB2b2lkIGZyZWVNZW1vcnkodm9pZCopIG92ZXJyaWRlOwotICAg
IHZvaWQqIHRyeVJlYWxsb2NhdGVNZW1vcnkodm9pZCosIHNpemVfdCkgb3ZlcnJpZGU7CisgICAg
dm9pZCogdHJ5QWxsb2NhdGVNZW1vcnkoc2l6ZV90KSBmaW5hbDsKKyAgICB2b2lkIGZyZWVNZW1v
cnkodm9pZCopIGZpbmFsOworICAgIHZvaWQqIHRyeVJlYWxsb2NhdGVNZW1vcnkodm9pZCosIHNp
emVfdCkgZmluYWw7CiAKICNpZiBFTkFCTEUoTUFMTE9DX0hFQVBfQlJFQUtET1dOKQogcHJpdmF0
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dpZ2FjYWdlQWxpZ25l
ZE1lbW9yeUFsbG9jYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR2lnYWNhZ2VB
bGlnbmVkTWVtb3J5QWxsb2NhdG9yLmgKaW5kZXggZDQ1MzU0MDUxNjBmZTNmY2M5ZmJhNDE1NDJh
MDY5MWVhZDZiYWI0NC4uMjA4NDZiNmRjNjZmMTQ5N2E3Njg0N2JmN2QzMjUyNGE5NjEzZDFkMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR2lnYWNhZ2VBbGlnbmVkTWVt
b3J5QWxsb2NhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR2lnYWNhZ2VB
bGlnbmVkTWVtb3J5QWxsb2NhdG9yLmgKQEAgLTM0LDE5ICszNCwxOSBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAotY2xhc3MgR2lnYWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2NhdG9yIDogcHVibGljIEFs
aWduZWRNZW1vcnlBbGxvY2F0b3IgeworY2xhc3MgR2lnYWNhZ2VBbGlnbmVkTWVtb3J5QWxsb2Nh
dG9yIGZpbmFsIDogcHVibGljIEFsaWduZWRNZW1vcnlBbGxvY2F0b3IgewogcHVibGljOgogICAg
IEdpZ2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvcihHaWdhY2FnZTo6S2luZCk7Ci0gICAgfkdp
Z2FjYWdlQWxpZ25lZE1lbW9yeUFsbG9jYXRvcigpOworICAgIH5HaWdhY2FnZUFsaWduZWRNZW1v
cnlBbGxvY2F0b3IoKSBmaW5hbDsKICAgICAKLSAgICB2b2lkKiB0cnlBbGxvY2F0ZUFsaWduZWRN
ZW1vcnkoc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpIG92ZXJyaWRlOwotICAgIHZvaWQg
ZnJlZUFsaWduZWRNZW1vcnkodm9pZCopIG92ZXJyaWRlOworICAgIHZvaWQqIHRyeUFsbG9jYXRl
QWxpZ25lZE1lbW9yeShzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkgZmluYWw7CisgICAg
dm9pZCBmcmVlQWxpZ25lZE1lbW9yeSh2b2lkKikgZmluYWw7CiAgICAgCi0gICAgdm9pZCBkdW1w
KFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFt
JikgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkKiB0cnlBbGxvY2F0ZU1lbW9yeShzaXplX3QpIG92
ZXJyaWRlOwotICAgIHZvaWQgZnJlZU1lbW9yeSh2b2lkKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCog
dHJ5UmVhbGxvY2F0ZU1lbW9yeSh2b2lkKiwgc2l6ZV90KSBvdmVycmlkZTsKKyAgICB2b2lkKiB0
cnlBbGxvY2F0ZU1lbW9yeShzaXplX3QpIGZpbmFsOworICAgIHZvaWQgZnJlZU1lbW9yeSh2b2lk
KikgZmluYWw7CisgICAgdm9pZCogdHJ5UmVhbGxvY2F0ZU1lbW9yeSh2b2lkKiwgc2l6ZV90KSBm
aW5hbDsKIAogcHJpdmF0ZToKICAgICBHaWdhY2FnZTo6S2luZCBtX2tpbmQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU25hcHNob3RCdWlsZGVyLmgKaW5kZXggMmQwODVh
MWY0ZThmYmVhYmM4MzUzM2VjZmU2ZmEyYTI5MTZhMDBmYS4uNWI5ODVkNDVhNDk3MDBiNGQ3ZTg0
OGIxOGY0N2RjM2U3YjhlZTkyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcFNuYXBzaG90QnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXBTbmFwc2hvdEJ1aWxkZXIuaApAQCAtMTA4LDcgKzEwOCw3IEBAIHB1YmxpYzoKICAgICBl
bnVtIFNuYXBzaG90VHlwZSB7IEluc3BlY3RvclNuYXBzaG90LCBHQ0RlYnVnZ2luZ1NuYXBzaG90
IH07CiAKICAgICBIZWFwU25hcHNob3RCdWlsZGVyKEhlYXBQcm9maWxlciYsIFNuYXBzaG90VHlw
ZSA9IFNuYXBzaG90VHlwZTo6SW5zcGVjdG9yU25hcHNob3QpOwotICAgIH5IZWFwU25hcHNob3RC
dWlsZGVyKCk7CisgICAgfkhlYXBTbmFwc2hvdEJ1aWxkZXIoKSBmaW5hbDsKIAogICAgIHN0YXRp
YyB2b2lkIHJlc2V0TmV4dEF2YWlsYWJsZU9iamVjdElkZW50aWZpZXIoKTsKIApAQCAtMTE2LDE3
ICsxMTYsMTcgQEAgcHVibGljOgogICAgIHZvaWQgYnVpbGRTbmFwc2hvdCgpOwogCiAgICAgLy8g
QSByb290IG9yIG1hcmtlZCBjZWxsLgotICAgIHZvaWQgYW5hbHl6ZU5vZGUoSlNDZWxsKik7Cisg
ICAgdm9pZCBhbmFseXplTm9kZShKU0NlbGwqKSBmaW5hbDsKIAogICAgIC8vIEEgcmVmZXJlbmNl
IGZyb20gb25lIGNlbGwgdG8gYW5vdGhlci4KLSAgICB2b2lkIGFuYWx5emVFZGdlKEpTQ2VsbCog
ZnJvbSwgSlNDZWxsKiB0bywgU2xvdFZpc2l0b3I6OlJvb3RNYXJrUmVhc29uKTsKLSAgICB2b2lk
IGFuYWx5emVQcm9wZXJ0eU5hbWVFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgVW5pcXVl
ZFN0cmluZ0ltcGwqIHByb3BlcnR5TmFtZSk7Ci0gICAgdm9pZCBhbmFseXplVmFyaWFibGVOYW1l
RWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCogdG8sIFVuaXF1ZWRTdHJpbmdJbXBsKiB2YXJpYWJs
ZU5hbWUpOwotICAgIHZvaWQgYW5hbHl6ZUluZGV4RWRnZShKU0NlbGwqIGZyb20sIEpTQ2VsbCog
dG8sIHVpbnQzMl90IGluZGV4KTsKLQotICAgIHZvaWQgc2V0T3BhcXVlUm9vdFJlYWNoYWJpbGl0
eVJlYXNvbkZvckNlbGwoSlNDZWxsKiwgY29uc3QgY2hhciopOwotICAgIHZvaWQgc2V0V3JhcHBl
ZE9iamVjdEZvckNlbGwoSlNDZWxsKiwgdm9pZCopOwotICAgIHZvaWQgc2V0TGFiZWxGb3JDZWxs
KEpTQ2VsbCosIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgYW5hbHl6ZUVkZ2UoSlNDZWxsKiBm
cm9tLCBKU0NlbGwqIHRvLCBTbG90VmlzaXRvcjo6Um9vdE1hcmtSZWFzb24pIGZpbmFsOworICAg
IHZvaWQgYW5hbHl6ZVByb3BlcnR5TmFtZUVkZ2UoSlNDZWxsKiBmcm9tLCBKU0NlbGwqIHRvLCBV
bmlxdWVkU3RyaW5nSW1wbCogcHJvcGVydHlOYW1lKSBmaW5hbDsKKyAgICB2b2lkIGFuYWx5emVW
YXJpYWJsZU5hbWVFZGdlKEpTQ2VsbCogZnJvbSwgSlNDZWxsKiB0bywgVW5pcXVlZFN0cmluZ0lt
cGwqIHZhcmlhYmxlTmFtZSkgZmluYWw7CisgICAgdm9pZCBhbmFseXplSW5kZXhFZGdlKEpTQ2Vs
bCogZnJvbSwgSlNDZWxsKiB0bywgdWludDMyX3QgaW5kZXgpIGZpbmFsOworCisgICAgdm9pZCBz
ZXRPcGFxdWVSb290UmVhY2hhYmlsaXR5UmVhc29uRm9yQ2VsbChKU0NlbGwqLCBjb25zdCBjaGFy
KikgZmluYWw7CisgICAgdm9pZCBzZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChKU0NlbGwqLCB2b2lk
KikgZmluYWw7CisgICAgdm9pZCBzZXRMYWJlbEZvckNlbGwoSlNDZWxsKiwgY29uc3QgU3RyaW5n
JikgZmluYWw7CiAKICAgICBTdHJpbmcganNvbigpOwogICAgIFN0cmluZyBqc29uKEZ1bmN0aW9u
PGJvb2wgKGNvbnN0IEhlYXBTbmFwc2hvdE5vZGUmKT4gYWxsb3dOb2RlQ2FsbGJhY2spOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvQWxpZ25lZE1lbW9yeUFsbG9j
YXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvQWxpZ25lZE1lbW9yeUFsbG9j
YXRvci5oCmluZGV4IGNkYjc5OTJlMTMyZTU4ZTk1YTU5ZjQxMzY0NDkyZmUyNzJhMWMxMDQuLjA2
YmViNTI0N2YyNWI2Y2Y1M2IzYTgzMjNhYzI4Nzg5ZTlkM2EwMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0FsaWduZWRNZW1vcnlBbGxvY2F0b3IuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29BbGlnbmVkTWVtb3J5QWxsb2NhdG9yLmgKQEAg
LTM0LDE5ICszNCwxOSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgSXNvQWxpZ25lZE1l
bW9yeUFsbG9jYXRvciA6IHB1YmxpYyBBbGlnbmVkTWVtb3J5QWxsb2NhdG9yIHsKK2NsYXNzIElz
b0FsaWduZWRNZW1vcnlBbGxvY2F0b3IgZmluYWwgOiBwdWJsaWMgQWxpZ25lZE1lbW9yeUFsbG9j
YXRvciB7CiBwdWJsaWM6CiAgICAgSXNvQWxpZ25lZE1lbW9yeUFsbG9jYXRvcihDU3RyaW5nKTsK
LSAgICB+SXNvQWxpZ25lZE1lbW9yeUFsbG9jYXRvcigpOworICAgIH5Jc29BbGlnbmVkTWVtb3J5
QWxsb2NhdG9yKCkgZmluYWw7CiAKLSAgICB2b2lkKiB0cnlBbGxvY2F0ZUFsaWduZWRNZW1vcnko
c2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpIG92ZXJyaWRlOwotICAgIHZvaWQgZnJlZUFs
aWduZWRNZW1vcnkodm9pZCopIG92ZXJyaWRlOworICAgIHZvaWQqIHRyeUFsbG9jYXRlQWxpZ25l
ZE1lbW9yeShzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkgZmluYWw7CisgICAgdm9pZCBm
cmVlQWxpZ25lZE1lbW9yeSh2b2lkKikgZmluYWw7CiAKLSAgICB2b2lkIGR1bXAoUHJpbnRTdHJl
YW0mKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdCBm
aW5hbDsKIAotICAgIHZvaWQqIHRyeUFsbG9jYXRlTWVtb3J5KHNpemVfdCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBmcmVlTWVtb3J5KHZvaWQqKSBvdmVycmlkZTsKLSAgICB2b2lkKiB0cnlSZWFsbG9j
YXRlTWVtb3J5KHZvaWQqLCBzaXplX3QpIG92ZXJyaWRlOworICAgIHZvaWQqIHRyeUFsbG9jYXRl
TWVtb3J5KHNpemVfdCkgZmluYWw7CisgICAgdm9pZCBmcmVlTWVtb3J5KHZvaWQqKSBmaW5hbDsK
KyAgICB2b2lkKiB0cnlSZWFsbG9jYXRlTWVtb3J5KHZvaWQqLCBzaXplX3QpIGZpbmFsOwogCiBw
cml2YXRlOgogI2lmIEVOQUJMRShNQUxMT0NfSEVBUF9CUkVBS0RPV04pCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSXNvU3Vic3BhY2UuaAppbmRleCBhMzdiNGJiNDRhZWE5YmE2MTFkODA4Mjc4
OTIwZTQxNzI0NmMzMTVhLi5hNWY4MTVlMTI4YjI5ZjU5MTgyODRhYzFhZTBjMTZiZjgxNTFjY2Rk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlLmgKQEAgLTM4LDcgKzM4
LDcgQEAgY2xhc3MgSXNvQ2VsbFNldDsKIGNsYXNzIElzb1N1YnNwYWNlIDogcHVibGljIFN1YnNw
YWNlIHsKIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBJc29TdWJzcGFjZShDU3RyaW5n
IG5hbWUsIEhlYXAmLCBIZWFwQ2VsbFR5cGUqLCBzaXplX3Qgc2l6ZSwgdWludDhfdCBudW1iZXJP
Zkxvd2VyVGllckNlbGxzKTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSB+SXNvU3Vic3BhY2UoKTsK
KyAgICBKU19FWFBPUlRfUFJJVkFURSB+SXNvU3Vic3BhY2UoKSBvdmVycmlkZTsKIAogICAgIHNp
emVfdCBjZWxsU2l6ZSgpIHsgcmV0dXJuIG1fZGlyZWN0b3J5LmNlbGxTaXplKCk7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2VQZXJWTS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmNwcAppbmRleCBj
NWUzZTM4ODBiNjM1NDgyODU3YzZlMmNjOWU3NmYwMmMzMzliN2M2Li5mMzBhMTQzOTI5MzA4NTQz
ZWExM2VlOTViNjgzNWFhYjBiYzJiZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9Jc29TdWJzcGFjZVBlclZNLmNwcApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAotY2xhc3MgSXNvU3Vic3BhY2VQZXJWTTo6QXV0b3JlbW92aW5nSXNvU3Vic3BhY2Ug
OiBwdWJsaWMgSXNvU3Vic3BhY2UgeworY2xhc3MgSXNvU3Vic3BhY2VQZXJWTTo6QXV0b3JlbW92
aW5nSXNvU3Vic3BhY2UgZmluYWwgOiBwdWJsaWMgSXNvU3Vic3BhY2UgewogcHVibGljOgogICAg
IEF1dG9yZW1vdmluZ0lzb1N1YnNwYWNlKElzb1N1YnNwYWNlUGVyVk0mIHBlclZNLCBDU3RyaW5n
IG5hbWUsIEhlYXAmIGhlYXAsIEhlYXBDZWxsVHlwZSogaGVhcENlbGxUeXBlLCBzaXplX3Qgc2l6
ZSkKICAgICAgICAgOiBJc29TdWJzcGFjZShuYW1lLCBoZWFwLCBoZWFwQ2VsbFR5cGUsIHNpemUs
IC8qIG51bWJlck9mTG93ZXJUaWVyQ2VsbHMgKi8gMCkKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGlj
OgogICAgIHsKICAgICB9CiAgICAgCi0gICAgfkF1dG9yZW1vdmluZ0lzb1N1YnNwYWNlKCkKKyAg
ICB+QXV0b3JlbW92aW5nSXNvU3Vic3BhY2UoKSBmaW5hbAogICAgIHsKICAgICAgICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhtX3BlclZNLm1fbG9jayk7CiAgICAgICAgIG1fcGVyVk0ubV9zdWJz
cGFjZVBlclZNLnJlbW92ZSgmc3BhY2UoKS5oZWFwKCkudm0oKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZVBlclZNLmgKaW5kZXggNDhlNjgyYjI0Y2UwNzE1YTVl
ZjBiM2UwMmZjMTE5YWJmNWVmMzcwZi4uNGE5OWE4ODVmOTYxYjk3ZWJiYTc4YzJhNWI3NWNkNzY0
NGE1NmNlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3Bh
Y2VQZXJWTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlUGVy
Vk0uaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIC8vIHN1cmUgdG8gYmUgbWFp
bi10aHJlYWQtb25seS4gQnV0IGlmIGEgY2xhc3MgdHlwaWNhbGx5IGdldHMgaW5zdGFudGlhdGVk
IGZyb20gbXVsdGlwbGUgdGhyZWFkcyBhdAogLy8gb25jZSwgdGhlbiB0aGlzIGlzIG5vdCBncmVh
dCwgYmVjYXVzZSBjb25jdXJyZW50IGFsbG9jYXRpb25zIHdpbGwgcHJvYmFibHkgY29udGVuZCBv
biB0aGlzIHRoaW5nJ3MKIC8vIGxvY2suCi1jbGFzcyBJc29TdWJzcGFjZVBlclZNIHsKK2NsYXNz
IElzb1N1YnNwYWNlUGVyVk0gZmluYWwgewogcHVibGljOgogICAgIHN0cnVjdCBTdWJzcGFjZVBh
cmFtZXRlcnMgewogICAgICAgICBTdWJzcGFjZVBhcmFtZXRlcnMoKSB7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFja01lcmdpbmdDb25zdHJhaW50Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3RhY2tNZXJnaW5nQ29uc3RyYWludC5o
CmluZGV4IGU5OTM1NzRmZDkwN2ZlNzZlZTRmODFkNjAzNGQ4YWQ1MDc2ZjIyNTAuLjY1YzIxM2I2
NDU0ZDBiZDk4NmM1MzcxOTAzMWZiZDhkY2RjZjk0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtTdGFja01lcmdpbmdDb25zdHJhaW50LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya1N0YWNrTWVyZ2luZ0NvbnN0cmFpbnQuaApAQCAtMzIs
MTggKzMyLDE3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgSGVhcDsKIGNsYXNzIFNsb3RWaXNp
dG9yOwogCi1jbGFzcyBNYXJrU3RhY2tNZXJnaW5nQ29uc3RyYWludCA6IHB1YmxpYyBNYXJraW5n
Q29uc3RyYWludCB7CitjbGFzcyBNYXJrU3RhY2tNZXJnaW5nQ29uc3RyYWludCBmaW5hbCA6IHB1
YmxpYyBNYXJraW5nQ29uc3RyYWludCB7CiBwdWJsaWM6CiAgICAgTWFya1N0YWNrTWVyZ2luZ0Nv
bnN0cmFpbnQoSGVhcCYpOwotICAgIH5NYXJrU3RhY2tNZXJnaW5nQ29uc3RyYWludCgpOworICAg
IH5NYXJrU3RhY2tNZXJnaW5nQ29uc3RyYWludCgpIGZpbmFsOwogICAgIAotICAgIGRvdWJsZSBx
dWlja1dvcmtFc3RpbWF0ZShTbG90VmlzaXRvciYpIG92ZXJyaWRlOwotICAgIAotcHJvdGVjdGVk
OgotICAgIHZvaWQgcHJlcGFyZVRvRXhlY3V0ZUltcGwoY29uc3QgQWJzdHJhY3RMb2NrZXImIGNv
bnN0cmFpbnRTb2x2aW5nTG9ja2VyLCBTbG90VmlzaXRvciYpIG92ZXJyaWRlOwotICAgIHZvaWQg
ZXhlY3V0ZUltcGwoU2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKKyAgICBkb3VibGUgcXVpY2tXb3Jr
RXN0aW1hdGUoU2xvdFZpc2l0b3ImKSBmaW5hbDsKICAgICAKIHByaXZhdGU6CisgICAgdm9pZCBw
cmVwYXJlVG9FeGVjdXRlSW1wbChjb25zdCBBYnN0cmFjdExvY2tlciYgY29uc3RyYWludFNvbHZp
bmdMb2NrZXIsIFNsb3RWaXNpdG9yJikgZmluYWw7CisgICAgdm9pZCBleGVjdXRlSW1wbChTbG90
VmlzaXRvciYpIGZpbmFsOworICAgIAogICAgIEhlYXAmIG1faGVhcDsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1NpbXBsZU1hcmtpbmdDb25zdHJhaW50Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TaW1wbGVNYXJraW5nQ29uc3RyYWludC5oCmlu
ZGV4IGYwMjE4OGNiZWJmYjhmOTMyNjA1Mzk2MjAzZDQ1ZWRkZDdhN2M1NGMuLjRmNDNlYWNmMzZk
ZjIzYTIxNjk2MTljZWQyNzE4ODYxNTg5MzIwZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1NpbXBsZU1hcmtpbmdDb25zdHJhaW50LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvU2ltcGxlTWFya2luZ0NvbnN0cmFpbnQuaApAQCAtMzMsNyArMzMsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIC8vIFRoaXMgYWxsb3dzIGZvciBhbiBpbmZvcm1hbCB3YXkgdG8g
ZGVmaW5lIGNvbnN0cmFpbnRzLiBKdXN0IHBhc3MgYSBsYW1iZGEgdG8gdGhlIGNvbnN0cnVjdG9y
LiBUaGUgb25seQogLy8gZG93bnNpZGUgaXMgdGhhdCB0aGlzIG1ha2VzIGl0IGhhcmQgZm9yIGNv
bnN0cmFpbnRzIHRvIG92ZXJyaWRlIGFueSBmdW5jdGlvbnMgaW4gTWFya2luZ0NvbnN0cmFpbnQK
IC8vIG90aGVyIHRoYW4gZXhlY3V0ZUltcGwuIEluIHRob3NlIGNhc2VzLCBqdXN0IHN1YmNsYXNz
IE1hcmtpbmdDb25zdHJhaW50LgotY2xhc3MgU2ltcGxlTWFya2luZ0NvbnN0cmFpbnQgOiBwdWJs
aWMgTWFya2luZ0NvbnN0cmFpbnQgeworY2xhc3MgU2ltcGxlTWFya2luZ0NvbnN0cmFpbnQgZmlu
YWwgOiBwdWJsaWMgTWFya2luZ0NvbnN0cmFpbnQgewogcHVibGljOgogICAgIEpTX0VYUE9SVF9Q
UklWQVRFIFNpbXBsZU1hcmtpbmdDb25zdHJhaW50KAogICAgICAgICBDU3RyaW5nIGFiYnJldmlh
dGVkTmFtZSwgQ1N0cmluZyBuYW1lLApAQCAtNTEsMTAgKzUxLDEwIEBAIHB1YmxpYzoKICAgICB7
CiAgICAgfQogICAgIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIH5TaW1wbGVNYXJraW5nQ29uc3Ry
YWludCgpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIH5TaW1wbGVNYXJraW5nQ29uc3RyYWludCgp
IGZpbmFsOwogICAgIAogcHJpdmF0ZToKLSAgICB2b2lkIGV4ZWN1dGVJbXBsKFNsb3RWaXNpdG9y
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBleGVjdXRlSW1wbChTbG90VmlzaXRvciYpIGZpbmFsOwog
CiAgICAgOjpGdW5jdGlvbjx2b2lkKFNsb3RWaXNpdG9yJik+IG1fZXhlY3V0ZUZ1bmN0aW9uOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1NwYWNlVGltZU11dGF0
b3JTY2hlZHVsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1NwYWNlVGltZU11dGF0
b3JTY2hlZHVsZXIuaAppbmRleCBlYmRlZDI1NTlmZGJjZTY3OWE5YWY1ZjI0OThhZThkYzFjNzY3
ZjU5Li45NzU3ODJiNzQzOWI3ZWYyMDc0ODY3MjE3OTI4NWVlYTAyMzNlMmNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxl
ci5oCkBAIC0zOCwyNSArMzgsMjUgQEAgY2xhc3MgSGVhcDsKIC8vIHRoYXQgdGhlIHdvcmxkIGlz
IHBhdXNlZCBmb3IgdG8gdGhlIGFtb3VudCBvZiBzcGFjZSB0aGF0IHRoZSB3b3JsZCBhbGxvY2F0
ZWQgc2luY2UgdGhlIEdDIGN5Y2xlCiAvLyBiZWdhbi4KIAotY2xhc3MgU3BhY2VUaW1lTXV0YXRv
clNjaGVkdWxlciA6IHB1YmxpYyBNdXRhdG9yU2NoZWR1bGVyIHsKK2NsYXNzIFNwYWNlVGltZU11
dGF0b3JTY2hlZHVsZXIgZmluYWwgOiBwdWJsaWMgTXV0YXRvclNjaGVkdWxlciB7CiBwdWJsaWM6
CiAgICAgU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcihIZWFwJik7Ci0gICAgflNwYWNlVGltZU11
dGF0b3JTY2hlZHVsZXIoKTsKKyAgICB+U3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcigpIGZpbmFs
OwogICAgIAotICAgIFN0YXRlIHN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU3RhdGUgc3Rh
dGUoKSBjb25zdCBmaW5hbDsKICAgICAKLSAgICB2b2lkIGJlZ2luQ29sbGVjdGlvbigpIG92ZXJy
aWRlOworICAgIHZvaWQgYmVnaW5Db2xsZWN0aW9uKCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBk
aWRTdG9wKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsUmVzdW1lKCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBkaWRFeGVjdXRlQ29uc3RyYWludHMoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFN0b3Ao
KSBmaW5hbDsKKyAgICB2b2lkIHdpbGxSZXN1bWUoKSBmaW5hbDsKKyAgICB2b2lkIGRpZEV4ZWN1
dGVDb25zdHJhaW50cygpIGZpbmFsOwogICAgIAotICAgIE1vbm90b25pY1RpbWUgdGltZVRvU3Rv
cCgpIG92ZXJyaWRlOwotICAgIE1vbm90b25pY1RpbWUgdGltZVRvUmVzdW1lKCkgb3ZlcnJpZGU7
CisgICAgTW9ub3RvbmljVGltZSB0aW1lVG9TdG9wKCkgZmluYWw7CisgICAgTW9ub3RvbmljVGlt
ZSB0aW1lVG9SZXN1bWUoKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIGxvZygpIG92ZXJyaWRlOwor
ICAgIHZvaWQgbG9nKCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBlbmRDb2xsZWN0aW9uKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBlbmRDb2xsZWN0aW9uKCkgZmluYWw7CiAgICAgCiBwcml2YXRlOgog
ICAgIGNsYXNzIFNuYXBzaG90OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1N0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmgKaW5kZXgg
NGVjYTkwODU2YjM0MjZhNmNjNjM1NTI1ZWZiNzA3NTFiNzlhYjMxYS4uNTg4NjBlZDYwMDhiY2Ew
ZmI1NGUyZDNkN2I0NTlmMzMyNjQxYmU1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxl
ci5oCkBAIC0zOSwyNyArMzksMjcgQEAgY2xhc3MgSGVhcDsKIC8vIHRoYXQgdGhlIHdvcmxkIGlz
IHBhdXNlZCBmb3IgdG8gdGhlIGFtb3VudCBvZiBzcGFjZSB0aGF0IHRoZSB3b3JsZCBhbGxvY2F0
ZWQgc2luY2UgdGhlIEdDIGN5Y2xlCiAvLyBiZWdhbi4KIAotY2xhc3MgU3RvY2hhc3RpY1NwYWNl
VGltZU11dGF0b3JTY2hlZHVsZXIgOiBwdWJsaWMgTXV0YXRvclNjaGVkdWxlciB7CitjbGFzcyBT
dG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlciBmaW5hbCA6IHB1YmxpYyBNdXRhdG9y
U2NoZWR1bGVyIHsKIHB1YmxpYzoKICAgICBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVk
dWxlcihIZWFwJik7Ci0gICAgflN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyKCk7
CisgICAgflN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyKCkgZmluYWw7CiAgICAg
Ci0gICAgU3RhdGUgc3RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBTdGF0ZSBzdGF0ZSgpIGNv
bnN0IGZpbmFsOwogICAgIAotICAgIHZvaWQgYmVnaW5Db2xsZWN0aW9uKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBiZWdpbkNvbGxlY3Rpb24oKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIGRpZFN0b3Ao
KSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxSZXN1bWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRp
ZFJlYWNoVGVybWluYXRpb24oKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEV4ZWN1dGVDb25zdHJh
aW50cygpIG92ZXJyaWRlOwotICAgIHZvaWQgc3luY2hyb25vdXNEcmFpbmluZ0RpZFN0YWxsKCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBkaWRTdG9wKCkgZmluYWw7CisgICAgdm9pZCB3aWxsUmVzdW1l
KCkgZmluYWw7CisgICAgdm9pZCBkaWRSZWFjaFRlcm1pbmF0aW9uKCkgZmluYWw7CisgICAgdm9p
ZCBkaWRFeGVjdXRlQ29uc3RyYWludHMoKSBmaW5hbDsKKyAgICB2b2lkIHN5bmNocm9ub3VzRHJh
aW5pbmdEaWRTdGFsbCgpIGZpbmFsOwogICAgIAotICAgIE1vbm90b25pY1RpbWUgdGltZVRvU3Rv
cCgpIG92ZXJyaWRlOwotICAgIE1vbm90b25pY1RpbWUgdGltZVRvUmVzdW1lKCkgb3ZlcnJpZGU7
CisgICAgTW9ub3RvbmljVGltZSB0aW1lVG9TdG9wKCkgZmluYWw7CisgICAgTW9ub3RvbmljVGlt
ZSB0aW1lVG9SZXN1bWUoKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIGxvZygpIG92ZXJyaWRlOwor
ICAgIHZvaWQgbG9nKCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBlbmRDb2xsZWN0aW9uKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBlbmRDb2xsZWN0aW9uKCkgZmluYWw7CiAgICAgCiBwcml2YXRlOgog
ICAgIGNsYXNzIFNuYXBzaG90OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvU3luY2hyb25vdXNTdG9wVGhlV29ybGRNdXRhdG9yU2NoZWR1bGVyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9TeW5jaHJvbm91c1N0b3BUaGVXb3JsZE11dGF0b3JTY2hlZHVsZXIu
aAppbmRleCA0NmFmNDBkNzNkNTEyN2Q1Yzk0OGRjMzdjOGM2NmU0ODk3ZDYxNzAxLi4zYzZkZjk0
Y2M5YzE0YzVmOTgwZDJiNTIwNjhkZTVkOTBhNWJkYmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9TeW5jaHJvbm91c1N0b3BUaGVXb3JsZE11dGF0b3JTY2hlZHVsZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TeW5jaHJvbm91c1N0b3BUaGVXb3Js
ZE11dGF0b3JTY2hlZHVsZXIuaApAQCAtMzUsMTkgKzM1LDE5IEBAIG5hbWVzcGFjZSBKU0Mgewog
Ly8gdGhhbiBYODYtNjQgYW5kIEFSTTY0LiBUaGlzIHNjaGVkdWxlciBpcyBhIGRyb3AtaW4gcmVw
bGFjZW1lbnQgZm9yIHRoZSBjb25jdXJyZW50IEdDJ3MKIC8vIFNwYWNlVGltZU11dGF0b3JTY2hl
ZHVsZXIuIEl0IHRlbGxzIHRoZSBHQyB0byBuZXZlciByZXN1bWUgdGhlIHdvcmxkIG9uY2UgdGhl
IEdDIGN5Y2xlIGJlZ2lucy4KIAotY2xhc3MgU3luY2hyb25vdXNTdG9wVGhlV29ybGRNdXRhdG9y
U2NoZWR1bGVyIDogcHVibGljIE11dGF0b3JTY2hlZHVsZXIgeworY2xhc3MgU3luY2hyb25vdXNT
dG9wVGhlV29ybGRNdXRhdG9yU2NoZWR1bGVyIGZpbmFsIDogcHVibGljIE11dGF0b3JTY2hlZHVs
ZXIgewogcHVibGljOgogICAgIFN5bmNocm9ub3VzU3RvcFRoZVdvcmxkTXV0YXRvclNjaGVkdWxl
cigpOwotICAgIH5TeW5jaHJvbm91c1N0b3BUaGVXb3JsZE11dGF0b3JTY2hlZHVsZXIoKTsKKyAg
ICB+U3luY2hyb25vdXNTdG9wVGhlV29ybGRNdXRhdG9yU2NoZWR1bGVyKCkgZmluYWw7CiAgICAg
Ci0gICAgU3RhdGUgc3RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBTdGF0ZSBzdGF0ZSgpIGNv
bnN0IGZpbmFsOwogICAgIAotICAgIHZvaWQgYmVnaW5Db2xsZWN0aW9uKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBiZWdpbkNvbGxlY3Rpb24oKSBmaW5hbDsKICAgICAKLSAgICBNb25vdG9uaWNUaW1l
IHRpbWVUb1N0b3AoKSBvdmVycmlkZTsKLSAgICBNb25vdG9uaWNUaW1lIHRpbWVUb1Jlc3VtZSgp
IG92ZXJyaWRlOworICAgIE1vbm90b25pY1RpbWUgdGltZVRvU3RvcCgpIGZpbmFsOworICAgIE1v
bm90b25pY1RpbWUgdGltZVRvUmVzdW1lKCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBlbmRDb2xs
ZWN0aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmRDb2xsZWN0aW9uKCkgZmluYWw7CiAKIHBy
aXZhdGU6CiAgICAgU3RhdGUgbV9zdGF0ZSB7IE5vcm1hbCB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmgKaW5kZXggYzY0ZmMyNDRmMGJj
YjJmMzRiZTA1ZWU0MDcwYTk2MGY5YjE1M2E4Yi4uMTVjZDhjNjczNjIwYjc5MzQ5YjI2OTFlOWI4
NGRhMzUwNTM2Yjk0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3
YXJlSklUU3R1YlJvdXRpbmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dDQXdh
cmVKSVRTdHViUm91dGluZS5oCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIEpJVFN0dWJSb3V0aW5l
U2V0OwogY2xhc3MgR0NBd2FyZUpJVFN0dWJSb3V0aW5lIDogcHVibGljIEpJVFN0dWJSb3V0aW5l
IHsKIHB1YmxpYzoKICAgICBHQ0F3YXJlSklUU3R1YlJvdXRpbmUoY29uc3QgTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiYsIFZNJik7Ci0gICAgdmlydHVhbCB+R0NB
d2FyZUpJVFN0dWJSb3V0aW5lKCk7CisgICAgfkdDQXdhcmVKSVRTdHViUm91dGluZSgpIG92ZXJy
aWRlOwogCiAgICAgc3RhdGljIFJlZjxKSVRTdHViUm91dGluZT4gY3JlYXRlKGNvbnN0IE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxKSVRTdHViUm91dGluZVB0clRhZz4mIGNvZGUsIFZNJiB2bSkKICAg
ICB7CkBAIC04Myw3ICs4Myw3IEBAIGNsYXNzIE1hcmtpbmdHQ0F3YXJlSklUU3R1YlJvdXRpbmUg
OiBwdWJsaWMgR0NBd2FyZUpJVFN0dWJSb3V0aW5lIHsKIHB1YmxpYzoKICAgICBNYXJraW5nR0NB
d2FyZUpJVFN0dWJSb3V0aW5lKAogICAgICAgICBjb25zdCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8
SklUU3R1YlJvdXRpbmVQdHJUYWc+JiwgVk0mLCBjb25zdCBKU0NlbGwqIG93bmVyLCBjb25zdCBW
ZWN0b3I8SlNDZWxsKj4mLCBCYWc8Q2FsbExpbmtJbmZvPiYmKTsKLSAgICB2aXJ0dWFsIH5NYXJr
aW5nR0NBd2FyZUpJVFN0dWJSb3V0aW5lKCk7CisgICAgfk1hcmtpbmdHQ0F3YXJlSklUU3R1YlJv
dXRpbmUoKSBvdmVycmlkZTsKICAgICAKIHByb3RlY3RlZDoKICAgICB2b2lkIG1hcmtSZXF1aXJl
ZE9iamVjdHNJbnRlcm5hbChTbG90VmlzaXRvciYpIG92ZXJyaWRlOwpAQCAtOTcsMTQgKzk3LDE0
IEBAIHByaXZhdGU6CiAvLyBUaGUgc3R1YiBoYXMgZXhjZXB0aW9uIGhhbmRsZXJzIGluIGl0LiBT
byBpdCBjbGVhcnMgaXRzZWxmIGZyb20gZXhjZXB0aW9uCiAvLyBoYW5kbGluZyB0YWJsZSB3aGVu
IGl0IGRpZXMuIEl0IGFsc28gZnJlZXMgc3BhY2UgaW4gQ29kZU9yaWdpbiB0YWJsZQogLy8gZm9y
IG5ldyBleGNlcHRpb24gaGFuZGxlcnMgdG8gdXNlIHRoZSBzYW1lIERpc3Bvc2FibGVDYWxsU2l0
ZUluZGV4LgotY2xhc3MgR0NBd2FyZUpJVFN0dWJSb3V0aW5lV2l0aEV4Y2VwdGlvbkhhbmRsZXIg
OiBwdWJsaWMgTWFya2luZ0dDQXdhcmVKSVRTdHViUm91dGluZSB7CitjbGFzcyBHQ0F3YXJlSklU
U3R1YlJvdXRpbmVXaXRoRXhjZXB0aW9uSGFuZGxlciBmaW5hbCA6IHB1YmxpYyBNYXJraW5nR0NB
d2FyZUpJVFN0dWJSb3V0aW5lIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEdDQXdhcmVKSVRTdHVi
Um91dGluZSBCYXNlOwogCiAgICAgR0NBd2FyZUpJVFN0dWJSb3V0aW5lV2l0aEV4Y2VwdGlvbkhh
bmRsZXIoY29uc3QgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiYs
IFZNJiwgY29uc3QgSlNDZWxsKiBvd25lciwgY29uc3QgVmVjdG9yPEpTQ2VsbCo+JiwgQmFnPENh
bGxMaW5rSW5mbz4mJiwgQ29kZUJsb2NrKiwgRGlzcG9zYWJsZUNhbGxTaXRlSW5kZXgpOwogCi0g
ICAgdm9pZCBhYm91dFRvRGllKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBvYnNlcnZlWmVyb1JlZkNv
dW50KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBhYm91dFRvRGllKCkgZmluYWw7CisgICAgdm9pZCBv
YnNlcnZlWmVyb1JlZkNvdW50KCkgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgQ29kZUJsb2NrKiBt
X2NvZGVCbG9ja1dpdGhFeGNlcHRpb25IYW5kbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENv
ZGUuaAppbmRleCAwMzE4ZmIwZGJhY2VhYmFhZjE2ZDkyYTBjMTM5YTE5MDQwYTFiMWVkLi42ZmE3
MjQ0ZWYwYTA4YzlmMDQ3YTMyMjA0ZjczN2QyOTI4NzE5MDZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVENvZGUuaApAQCAtMjI2LDcgKzIyNiw3IEBAIHByb3RlY3RlZDoKICAgICBKSVRDb2Rl
V2l0aENvZGVSZWYoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgSklUVHlwZSwgSklUQ29kZTo6U2hh
cmVBdHRyaWJ1dGUpOwogCiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+SklUQ29kZVdpdGhDb2RlUmVm
KCk7CisgICAgfkpJVENvZGVXaXRoQ29kZVJlZigpIG92ZXJyaWRlOwogCiAgICAgdm9pZCogZXhl
Y3V0YWJsZUFkZHJlc3NBdE9mZnNldChzaXplX3Qgb2Zmc2V0KSBvdmVycmlkZTsKICAgICB2b2lk
KiBkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpIG92ZXJyaWRlOwpAQCAtMjQ1LDcg
KzI0NSw3IEBAIHB1YmxpYzoKICAgICBEaXJlY3RKSVRDb2RlKEpJVFR5cGUpOwogICAgIERpcmVj
dEpJVENvZGUoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiB3
aXRoQXJpdHlDaGVjaywgSklUVHlwZSwgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGUgPSBKSVRDb2Rl
OjpTaGFyZUF0dHJpYnV0ZTo6Tm90U2hhcmVkKTsKICAgICBEaXJlY3RKSVRDb2RlKENvZGVSZWY8
SlNFbnRyeVB0clRhZz4sIENvZGVQdHI8SlNFbnRyeVB0clRhZz4gd2l0aEFyaXR5Q2hlY2ssIEpJ
VFR5cGUsIEludHJpbnNpYywgSklUQ29kZTo6U2hhcmVBdHRyaWJ1dGUgPSBKSVRDb2RlOjpTaGFy
ZUF0dHJpYnV0ZTo6Tm90U2hhcmVkKTsgLy8gRm9yIGdlbmVyYXRlZCB0aHVuay4KLSAgICB2aXJ0
dWFsIH5EaXJlY3RKSVRDb2RlKCk7CisgICAgfkRpcmVjdEpJVENvZGUoKSBvdmVycmlkZTsKICAg
ICAKICAgICBDb2RlUHRyPEpTRW50cnlQdHJUYWc+IGFkZHJlc3NGb3JDYWxsKEFyaXR5Q2hlY2tN
b2RlKSBvdmVycmlkZTsKIApAQCAtMjYwLDcgKzI2MCw3IEBAIGNsYXNzIE5hdGl2ZUpJVENvZGUg
OiBwdWJsaWMgSklUQ29kZVdpdGhDb2RlUmVmIHsKIHB1YmxpYzoKICAgICBOYXRpdmVKSVRDb2Rl
KEpJVFR5cGUpOwogICAgIE5hdGl2ZUpJVENvZGUoQ29kZVJlZjxKU0VudHJ5UHRyVGFnPiwgSklU
VHlwZSwgSW50cmluc2ljLCBKSVRDb2RlOjpTaGFyZUF0dHJpYnV0ZSA9IEpJVENvZGU6OlNoYXJl
QXR0cmlidXRlOjpOb3RTaGFyZWQpOwotICAgIHZpcnR1YWwgfk5hdGl2ZUpJVENvZGUoKTsKKyAg
ICB+TmF0aXZlSklUQ29kZSgpIG92ZXJyaWRlOwogCiAgICAgQ29kZVB0cjxKU0VudHJ5UHRyVGFn
PiBhZGRyZXNzRm9yQ2FsbChBcml0eUNoZWNrTW9kZSkgb3ZlcnJpZGU7CiB9OwpAQCAtMjY4LDkg
KzI2OCw5IEBAIHB1YmxpYzoKIGNsYXNzIE5hdGl2ZURPTUpJVENvZGUgZmluYWwgOiBwdWJsaWMg
TmF0aXZlSklUQ29kZSB7CiBwdWJsaWM6CiAgICAgTmF0aXZlRE9NSklUQ29kZShDb2RlUmVmPEpT
RW50cnlQdHJUYWc+LCBKSVRUeXBlLCBJbnRyaW5zaWMsIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJl
Kik7Ci0gICAgdmlydHVhbCB+TmF0aXZlRE9NSklUQ29kZSgpID0gZGVmYXVsdDsKKyAgICB+TmF0
aXZlRE9NSklUQ29kZSgpIGZpbmFsID0gZGVmYXVsdDsKIAotICAgIGNvbnN0IERPTUpJVDo6U2ln
bmF0dXJlKiBzaWduYXR1cmUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3NpZ25hdHVyZTsg
fQorICAgIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJlKiBzaWduYXR1cmUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3NpZ25hdHVyZTsgfQogCiBwcml2YXRlOgogICAgIGNvbnN0IERPTUpJVDo6U2ln
bmF0dXJlKiBtX3NpZ25hdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUVGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5oCmlu
ZGV4IDgxOWRiMWMxMWM4Y2NhNDFlM2ZmYTgyYjA4YjBiZWIzNTFhNDQyN2EuLjdlODc1YzM3M2U0
N2RkYzAxZGIzNDhhZWRmMzUwMzViYWFlMmEzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUVGh1bmtzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRUaHVua3MuaApAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBKSVRUaHVua3MgZmluYWwgOiBwcml2
YXRlIFdlYWtIYW5kbGVPd25lciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CiAgICAgSklUVGh1bmtzKCk7Ci0gICAgdmlydHVhbCB+SklUVGh1bmtzKCk7CisgICAgfkpJ
VFRodW5rcygpIGZpbmFsOwogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpJVFRodW5rUHRy
VGFnPiBjdGlOYXRpdmVDYWxsKFZNJik7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpJVFRo
dW5rUHRyVGFnPiBjdGlOYXRpdmVDb25zdHJ1Y3QoVk0mKTsKQEAgLTY3LDcgKzY3LDcgQEAgcHVi
bGljOgogICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGhvc3RGdW5jdGlvblN0dWIoVk0mLCBUYWdnZWRO
YXRpdmVGdW5jdGlvbiwgVGh1bmtHZW5lcmF0b3IsIEludHJpbnNpYywgY29uc3QgU3RyaW5nJiBu
YW1lKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9p
ZCogY29udGV4dCkgb3ZlcnJpZGU7CisgICAgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4s
IHZvaWQqIGNvbnRleHQpIGZpbmFsOwogICAgIAogICAgIHR5cGVkZWYgSGFzaE1hcDxUaHVua0dl
bmVyYXRvciwgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPj4gQ1RJU3R1Yk1h
cDsKICAgICBDVElTdHViTWFwIG1fY3RpU3R1Yk1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJh
Y2suaAppbmRleCBlYzUzZDc1OTc2YTZhZWNhYjkyMWU3NTg4YzhhMzRiODM0Mzc2Y2ZhLi45MTgz
YmMxNzNiY2VlZDc4MzI3ZDFlN2MxZThlM2RlNWQ3MzY1MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRp
b25DYWxsYmFjay5oCkBAIC0zMywxNyArMzMsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNz
IFNjcmlwdEV4ZWN1dGFibGU7CiAKLWNsYXNzIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNh
bGxiYWNrIDogcHVibGljIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjayB7Ci1wcm90ZWN0ZWQ6
Ci0gICAgSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2soKTsKLQorY2xhc3MgSklU
VG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2sgZmluYWwgOiBwdWJsaWMgRGVmZXJyZWRD
b21waWxhdGlvbkNhbGxiYWNrIHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5KSVRUb0RGR0RlZmVy
cmVkQ29tcGlsYXRpb25DYWxsYmFjaygpOworICAgIH5KSVRUb0RGR0RlZmVycmVkQ29tcGlsYXRp
b25DYWxsYmFjaygpIGZpbmFsOwogCiAgICAgc3RhdGljIFJlZjxKSVRUb0RGR0RlZmVycmVkQ29t
cGlsYXRpb25DYWxsYmFjaz4gY3JlYXRlKCk7CiAgICAgCi0gICAgdm9pZCBjb21waWxhdGlvbkRp
ZEJlY29tZVJlYWR5QXN5bmNocm9ub3VzbHkoQ29kZUJsb2NrKiwgQ29kZUJsb2NrKiBwcm9maWxl
ZERGR0NvZGVCbG9jaykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21waWxhdGlvbkRpZENvbXBsZXRl
KENvZGVCbG9jayosIENvZGVCbG9jayogcHJvZmlsZWRERkdDb2RlQmxvY2ssIENvbXBpbGF0aW9u
UmVzdWx0KSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBpbGF0aW9uRGlkQmVjb21lUmVhZHlBc3lu
Y2hyb25vdXNseShDb2RlQmxvY2sqLCBDb2RlQmxvY2sqIHByb2ZpbGVkREZHQ29kZUJsb2NrKSBm
aW5hbDsKKyAgICB2b2lkIGNvbXBpbGF0aW9uRGlkQ29tcGxldGUoQ29kZUJsb2NrKiwgQ29kZUJs
b2NrKiBwcm9maWxlZERGR0NvZGVCbG9jaywgQ29tcGlsYXRpb25SZXN1bHQpIGZpbmFsOworCitw
cml2YXRlOgorICAgIEpJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrKCk7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaAppbmRleCAwNWJmN2E0MjJlN2JhN2QwZWFk
YjExZjRlMmY5NDViMDA0YjAxN2Y2Li4zNGVmOGM4Zjg0NDk0ZmUyNjRhMjIxNzY1NjY0ZGE4NzJj
ODFmNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1BvbHltb3JwaGlj
Q2FsbFN0dWJSb3V0aW5lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Qb2x5bW9y
cGhpY0NhbGxTdHViUm91dGluZS5oCkBAIC04MCwxNCArODAsMTQgQEAgcHJpdmF0ZToKICAgICBD
b2RlQmxvY2sqIG1fY29kZUJsb2NrOwogfTsKIAotY2xhc3MgUG9seW1vcnBoaWNDYWxsU3R1YlJv
dXRpbmUgOiBwdWJsaWMgR0NBd2FyZUpJVFN0dWJSb3V0aW5lIHsKK2NsYXNzIFBvbHltb3JwaGlj
Q2FsbFN0dWJSb3V0aW5lIGZpbmFsIDogcHVibGljIEdDQXdhcmVKSVRTdHViUm91dGluZSB7CiBw
dWJsaWM6CiAgICAgUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUoCiAgICAgICAgIGNvbnN0IE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRTdHViUm91dGluZVB0clRhZz4mLCBWTSYsIGNvbnN0IEpT
Q2VsbCogb3duZXIsCiAgICAgICAgIENhbGxGcmFtZSogY2FsbGVyRnJhbWUsIENhbGxMaW5rSW5m
byYsIGNvbnN0IFZlY3RvcjxQb2x5bW9ycGhpY0NhbGxDYXNlPiYsCiAgICAgICAgIFVuaXF1ZUFy
cmF5PHVpbnQzMl90PiYmIGZhc3RDb3VudHMpOwogICAgIAotICAgIHZpcnR1YWwgflBvbHltb3Jw
aGljQ2FsbFN0dWJSb3V0aW5lKCk7CisgICAgflBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lKCkg
ZmluYWw7CiAgICAgCiAgICAgQ2FsbFZhcmlhbnRMaXN0IHZhcmlhbnRzKCkgY29uc3Q7CiAgICAg
Ym9vbCBoYXNFZGdlcygpIGNvbnN0OwpAQCAtMTAyLDEyICsxMDIsMTEgQEAgcHVibGljOgogICAg
ICAgICAgICAgZnVuY3Rvcih2YXJpYW50LmdldCgpKTsKICAgICB9CiAKLSAgICBib29sIHZpc2l0
V2VhayhWTSYpIG92ZXJyaWRlOwotCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBtYXJrUmVxdWlyZWRP
YmplY3RzSW50ZXJuYWwoU2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKKyAgICBib29sIHZpc2l0V2Vh
ayhWTSYpIGZpbmFsOwogCiBwcml2YXRlOgorICAgIHZvaWQgbWFya1JlcXVpcmVkT2JqZWN0c0lu
dGVybmFsKFNsb3RWaXNpdG9yJikgZmluYWw7CisKICAgICBWZWN0b3I8V3JpdGVCYXJyaWVyPEpT
Q2VsbD4sIDI+IG1fdmFyaWFudHM7CiAgICAgVW5pcXVlQXJyYXk8dWludDMyX3Q+IG1fZmFzdENv
dW50czsKICAgICBCYWc8UG9seW1vcnBoaWNDYWxsTm9kZT4gbV9jYWxsTm9kZXM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCmluZGV4IDZmM2VmMDI1M2E3NDEzZDJiMWE5NmMyOTI1ZWExODk5MDkyNGZhYzcu
LjhkOThiMmFjMTkxNTFkNDNjZDRiOGE1MmJkZGRjZGMzMzdmNjRhMTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwCkBAIC05NzIsMjYgKzk3MiwyNiBAQCBzdGF0aWMgYm9vbCBmZXRjaFNjcmlwdEZyb21M
b2NhbEZpbGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgVmVjdG9yPGNoYXI+JgogICAg
IHJldHVybiB0cnVlOwogfQogCi1jbGFzcyBTaGVsbFNvdXJjZVByb3ZpZGVyIDogcHVibGljIFN0
cmluZ1NvdXJjZVByb3ZpZGVyIHsKK2NsYXNzIFNoZWxsU291cmNlUHJvdmlkZXIgZmluYWwgOiBw
dWJsaWMgU3RyaW5nU291cmNlUHJvdmlkZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U2hl
bGxTb3VyY2VQcm92aWRlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3Vy
Y2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgVVJMJiYgdXJsLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0
YXJ0UG9zaXRpb24sIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hlbGxTb3VyY2VQcm92aWRlcihzb3VyY2Us
IHNvdXJjZU9yaWdpbiwgV1RGTW92ZSh1cmwpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSk7
CiAgICAgfQogCi0gICAgflNoZWxsU291cmNlUHJvdmlkZXIoKQorICAgIH5TaGVsbFNvdXJjZVBy
b3ZpZGVyKCkgZmluYWwKICAgICB7CiAgICAgICAgIGNvbW1pdENhY2hlZEJ5dGVjb2RlKCk7CiAg
ICAgfQogCi0gICAgUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBjYWNoZWRCeXRlY29kZSgpIGNvbnN0
IG92ZXJyaWRlCisgICAgUmVmUHRyPENhY2hlZEJ5dGVjb2RlPiBjYWNoZWRCeXRlY29kZSgpIGNv
bnN0IGZpbmFsCiAgICAgewogICAgICAgICBpZiAoIW1fY2FjaGVkQnl0ZWNvZGUpCiAgICAgICAg
ICAgICBsb2FkQnl0ZWNvZGUoKTsKICAgICAgICAgcmV0dXJuIG1fY2FjaGVkQnl0ZWNvZGUuY29w
eVJlZigpOwogICAgIH0KIAotICAgIHZvaWQgdXBkYXRlQ2FjaGUoY29uc3QgVW5saW5rZWRGdW5j
dGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmLCBDb2RlU3BlY2lh
bGl6YXRpb25LaW5kIGtpbmQsIGNvbnN0IFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIGNvZGVC
bG9jaykgY29uc3Qgb3ZlcnJpZGUKKyAgICB2b2lkIHVwZGF0ZUNhY2hlKGNvbnN0IFVubGlua2Vk
RnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VDb2RlJiwgQ29kZVNw
ZWNpYWxpemF0aW9uS2luZCBraW5kLCBjb25zdCBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBj
b2RlQmxvY2spIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBpZiAoIWNhY2hlRW5hYmxlZCgp
IHx8ICFtX2NhY2hlZEJ5dGVjb2RlKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTAwMSw3ICsx
MDAxLDcgQEAgcHVibGljOgogICAgICAgICAgICAgbV9jYWNoZWRCeXRlY29kZS0+YWRkRnVuY3Rp
b25VcGRhdGUoZXhlY3V0YWJsZSwga2luZCwgKmNhY2hlZEJ5dGVjb2RlKTsKICAgICB9CiAKLSAg
ICB2b2lkIGNhY2hlQnl0ZWNvZGUoY29uc3QgQnl0ZWNvZGVDYWNoZUdlbmVyYXRvciYgZ2VuZXJh
dG9yKSBjb25zdCBvdmVycmlkZQorICAgIHZvaWQgY2FjaGVCeXRlY29kZShjb25zdCBCeXRlY29k
ZUNhY2hlR2VuZXJhdG9yJiBnZW5lcmF0b3IpIGNvbnN0IGZpbmFsCiAgICAgewogICAgICAgICBp
ZiAoIWNhY2hlRW5hYmxlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTAxMiw3ICsxMDEy
LDcgQEAgcHVibGljOgogICAgICAgICAgICAgbV9jYWNoZWRCeXRlY29kZS0+YWRkR2xvYmFsVXBk
YXRlKCp1cGRhdGUpOwogICAgIH0KIAotICAgIHZvaWQgY29tbWl0Q2FjaGVkQnl0ZWNvZGUoKSBj
b25zdCBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0Q2FjaGVkQnl0ZWNvZGUoKSBjb25zdCBmaW5h
bAogICAgIHsKICAgICAgICAgaWYgKCFjYWNoZUVuYWJsZWQoKSB8fCAhbV9jYWNoZWRCeXRlY29k
ZSB8fCAhbV9jYWNoZWRCeXRlY29kZS0+aGFzVXBkYXRlcygpKQogICAgICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAppbmRleCA5YzE1NTRhMDhhOWZl
YTg5YjczMmUxY2I2OGEwMzNkN2MyMDgxNzEwLi5kNmVjMDNkNTFkYWMyYTE0ZTExOTQ5MmZmNmQ4
MGUwOGQ2ZmIwZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xl
eGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcApAQCAt
NzQ2LDcgKzc0Niw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgaXNJZGVudFN0YXJ0KENo
YXJhY3RlclR5cGUgYykKICAgICByZXR1cm4gdHlwZXNPZkxhdGluMUNoYXJhY3RlcnNbc3RhdGlj
X2Nhc3Q8TENoYXI+KGMpXSA9PSBDaGFyYWN0ZXJJZGVudGlmaWVyU3RhcnQ7CiB9CiAKLXN0YXRp
YyBBTFdBWVNfSU5MSU5FIGJvb2wgaXNTaW5nbGVDaGFyYWN0ZXJJZGVudFN0YXJ0KFVDaGFyIGMp
CitzdGF0aWMgQUxXQVlTX0lOTElORSBVTlVTRURfRlVOQ1RJT04gYm9vbCBpc1NpbmdsZUNoYXJh
Y3RlcklkZW50U3RhcnQoVUNoYXIgYykKIHsKICAgICBpZiAoTElLRUxZKGlzTGF0aW4xKGMpKSkK
ICAgICAgICAgcmV0dXJuIGlzSWRlbnRTdGFydChzdGF0aWNfY2FzdDxMQ2hhcj4oYykpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEZXN0cnVjdGlibGVPYmpl
Y3RIZWFwQ2VsbFR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGVzdHJ1
Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmgKaW5kZXggMzMzOWY2MDhmNTY4MTU2YmM2NDVlNzkw
YjhmNTUwZmU3NTMxYTJkYy4uNzdkNWYwOGMyNDRlZjk3ZmRjN2Y0OThkYTg0Mjk4MWNkOGJhZjVm
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEZXN0cnVjdGli
bGVPYmplY3RIZWFwQ2VsbFR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oCkBAIC0yOSwxMyArMjksMTMgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxU
eXBlIDogcHVibGljIEhlYXBDZWxsVHlwZSB7CitjbGFzcyBKU0Rlc3RydWN0aWJsZU9iamVjdEhl
YXBDZWxsVHlwZSBmaW5hbCA6IHB1YmxpYyBIZWFwQ2VsbFR5cGUgewogcHVibGljOgogICAgIEpT
X0VYUE9SVF9QUklWQVRFIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlKCk7Ci0gICAg
SlNfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB+SlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5
cGUoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB+SlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2Vs
bFR5cGUoKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIGZpbmlzaFN3ZWVwKE1hcmtlZEJsb2NrOjpI
YW5kbGUmLCBGcmVlTGlzdCopIG92ZXJyaWRlOwotICAgIHZvaWQgZGVzdHJveShWTSYsIEpTQ2Vs
bCopIG92ZXJyaWRlOworICAgIHZvaWQgZmluaXNoU3dlZXAoTWFya2VkQmxvY2s6OkhhbmRsZSYs
IEZyZWVMaXN0KikgZmluYWw7CisgICAgdm9pZCBkZXN0cm95KFZNJiwgSlNDZWxsKikgZmluYWw7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxlci5oCmluZGV4IDc2MjVm
N2Q2MGNmOTQwNGI0MGQyNWFjMmUxY2JjYzM2OWFkN2JhNmYuLmY3ZTUwYmZiM2QxMGM3MjI3MTU4
YmJhYWYxNGRhNTk5NGRhOTdmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIuaApAQCAtNDYsMjAgKzQ2
LDIwIEBAIG5hbWVzcGFjZSBKU0MgewogLy8gICBhbHJlYWR5IGJlZW4gY3JlYXRlZCBhbmQgaXQg
ZGlkbid0IGRpZSwgdGhlbiB5b3UgZ2V0IHRoZSBzYW1lCiAvLyAgIG9uZS4KIAotY2xhc3MgU2lt
cGxlVHlwZWRBcnJheUNvbnRyb2xsZXIgOiBwdWJsaWMgVHlwZWRBcnJheUNvbnRyb2xsZXIgewor
Y2xhc3MgU2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIgZmluYWwgOiBwdWJsaWMgVHlwZWRBcnJh
eUNvbnRyb2xsZXIgewogcHVibGljOgogICAgIFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyKCk7
Ci0gICAgdmlydHVhbCB+U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoKTsKKyAgICB+U2ltcGxl
VHlwZWRBcnJheUNvbnRyb2xsZXIoKSBmaW5hbDsKICAgICAKLSAgICBKU0FycmF5QnVmZmVyKiB0
b0pTKEpTR2xvYmFsT2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqLCBBcnJheUJ1ZmZlciopIG92ZXJy
aWRlOwotICAgIHZvaWQgcmVnaXN0ZXJXcmFwcGVyKEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlCdWZm
ZXIqLCBKU0FycmF5QnVmZmVyKikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc0F0b21pY3NXYWl0QWxs
b3dlZE9uQ3VycmVudFRocmVhZCgpIG92ZXJyaWRlOworICAgIEpTQXJyYXlCdWZmZXIqIHRvSlMo
SlNHbG9iYWxPYmplY3QqLCBKU0dsb2JhbE9iamVjdCosIEFycmF5QnVmZmVyKikgZmluYWw7Cisg
ICAgdm9pZCByZWdpc3RlcldyYXBwZXIoSlNHbG9iYWxPYmplY3QqLCBBcnJheUJ1ZmZlciosIEpT
QXJyYXlCdWZmZXIqKSBmaW5hbDsKKyAgICBib29sIGlzQXRvbWljc1dhaXRBbGxvd2VkT25DdXJy
ZW50VGhyZWFkKCkgZmluYWw7CiAKIHByaXZhdGU6Ci0gICAgY2xhc3MgSlNBcnJheUJ1ZmZlck93
bmVyIDogcHVibGljIFdlYWtIYW5kbGVPd25lciB7CisgICAgY2xhc3MgSlNBcnJheUJ1ZmZlck93
bmVyIGZpbmFsIDogcHVibGljIFdlYWtIYW5kbGVPd25lciB7CiAgICAgcHVibGljOgotICAgICAg
ICBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4sIHZvaWQqIGNvbnRleHQsIFNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqIHJlYXNvbikgb3Zl
cnJpZGU7Ci0gICAgICAgIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwg
dm9pZCogY29udGV4dCkgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wgaXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgU2xvdFZp
c2l0b3ImLCBjb25zdCBjaGFyKiogcmVhc29uKSBmaW5hbDsKKyAgICAgICAgdm9pZCBmaW5hbGl6
ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KSBmaW5hbDsKICAgICB9
OwogCiAgICAgSlNBcnJheUJ1ZmZlck93bmVyIG1fb3duZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZS5oCmluZGV4IGY2OTY0ODBhNzk5MjQyMDljNGI1ZDFjNzI5Y2Y5
YjJkMmMyMGNkYTYuLmE5MjQzNWRlOTczM2ZhYjc1ZjQzMWEyNTYxNGIxYTRlZmY4NzVlOWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC05NiwyNiArOTYs
MjYgQEAgc3RydWN0IFByb3BlcnR5TWFwRW50cnkgewogICAgIH0KIH07CiAKLWNsYXNzIFN0cnVj
dHVyZUZpcmVEZXRhaWwgOiBwdWJsaWMgRmlyZURldGFpbCB7CitjbGFzcyBTdHJ1Y3R1cmVGaXJl
RGV0YWlsIGZpbmFsIDogcHVibGljIEZpcmVEZXRhaWwgewogcHVibGljOgogICAgIFN0cnVjdHVy
ZUZpcmVEZXRhaWwoY29uc3QgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgIDogbV9zdHJ1
Y3R1cmUoc3RydWN0dXJlKQogICAgIHsKICAgICB9CiAgICAgCi0gICAgdm9pZCBkdW1wKFByaW50
U3RyZWFtJiBvdXQpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBjb25zdCBTdHJ1Y3R1cmUqIG1fc3Ry
dWN0dXJlOwogfTsKIAotY2xhc3MgRGVmZXJyZWRTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2lu
dEZpcmUgOiBwdWJsaWMgRGVmZXJyZWRXYXRjaHBvaW50RmlyZSB7CitjbGFzcyBEZWZlcnJlZFN0
cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50RmlyZSBmaW5hbCA6IHB1YmxpYyBEZWZlcnJlZFdh
dGNocG9pbnRGaXJlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZWZlcnJlZFN0cnVjdHVy
ZVRyYW5zaXRpb25XYXRjaHBvaW50RmlyZSk7CiBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgRGVmZXJyZWRTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludEZpcmUoVk0mLCBTdHJ1Y3R1
cmUqKTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSB+RGVmZXJyZWRTdHJ1Y3R1cmVUcmFuc2l0aW9u
V2F0Y2hwb2ludEZpcmUoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB+RGVmZXJyZWRTdHJ1Y3R1
cmVUcmFuc2l0aW9uV2F0Y2hwb2ludEZpcmUoKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIGR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBkdW1wKFByaW50U3Ry
ZWFtJiBvdXQpIGNvbnN0IGZpbmFsOwogCiAgICAgY29uc3QgU3RydWN0dXJlKiBzdHJ1Y3R1cmUo
KSBjb25zdCB7IHJldHVybiBtX3N0cnVjdHVyZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9XZWFrR0NNYXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1dlYWtHQ01hcC5oCmluZGV4IDMzODVjMjBkOTA2YWFmYmUwMmIwMzA4MmJmMTkxYzE2
YTRlNjRiMmUuLjg4ZWZkODY1OTRlMTdiYjJkZWYzYzc0NzU4ZWE5YWVkYjQ2Yjg1NmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtHQ01hcC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtHQ01hcC5oCkBAIC00MCw3ICs0MCw3IEBA
IHB1YmxpYzoKIAogdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJnLCB0eXBlbmFtZSBWYWx1ZUFyZywg
dHlwZW5hbWUgSGFzaEFyZyA9IHR5cGVuYW1lIERlZmF1bHRIYXNoPEtleUFyZz46Okhhc2gsCiAg
ICAgdHlwZW5hbWUgS2V5VHJhaXRzQXJnID0gSGFzaFRyYWl0czxLZXlBcmc+PgotY2xhc3MgV2Vh
a0dDTWFwIDogcHVibGljIFdlYWtHQ01hcEJhc2UgeworY2xhc3MgV2Vha0dDTWFwIGZpbmFsIDog
cHVibGljIFdlYWtHQ01hcEJhc2UgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAg
IHR5cGVkZWYgV2VhazxWYWx1ZUFyZz4gVmFsdWVUeXBlOwogICAgIHR5cGVkZWYgSGFzaE1hcDxL
ZXlBcmcsIFZhbHVlVHlwZSwgSGFzaEFyZywgS2V5VHJhaXRzQXJnPiBIYXNoTWFwVHlwZTsKQEAg
LTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHR5cGVkZWYgdHlwZW5hbWUgSGFzaE1hcFR5cGU6
OmNvbnN0X2l0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOwogCiAgICAgZXhwbGljaXQgV2Vha0dDTWFw
KFZNJik7Ci0gICAgfldlYWtHQ01hcCgpOworICAgIH5XZWFrR0NNYXAoKSBmaW5hbDsKIAogICAg
IFZhbHVlQXJnKiBnZXQoY29uc3QgS2V5VHlwZSYga2V5KSBjb25zdAogICAgIHsKQEAgLTkxLDcg
KzkxLDcgQEAgcHVibGljOgogCiAgICAgaW5saW5lIGJvb2wgY29udGFpbnMoY29uc3QgS2V5VHlw
ZSYga2V5KSBjb25zdDsKIAotICAgIHZvaWQgcHJ1bmVTdGFsZUVudHJpZXMoKSBvdmVycmlkZTsK
KyAgICB2b2lkIHBydW5lU3RhbGVFbnRyaWVzKCkgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgSGFz
aE1hcFR5cGUgbV9tYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtRW50cnlQbGFuLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRW50cnlQbGFu
LmgKaW5kZXggYjQ5ZGMyYjE1OTEyZGU5NjZjZDg4NmE2NDc0OGYwMWJjN2MyZjQ0Ni4uYjAwMGY4
YmEyMjhhNzA3ZTRjYTMzZGZjNjU2MThmOGM4ZmYwMDgwOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUVudHJ5UGxhbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21FbnRyeVBsYW4uaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAg
RW50cnlQbGFuKENvbnRleHQqLCBSZWY8TW9kdWxlSW5mb3JtYXRpb24+LCBBc3luY1dvcmssIENv
bXBsZXRpb25UYXNrJiYpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIEVudHJ5UGxhbihDb250ZXh0
KiwgVmVjdG9yPHVpbnQ4X3Q+JiYsIEFzeW5jV29yaywgQ29tcGxldGlvblRhc2smJik7CiAKLSAg
ICB2aXJ0dWFsIH5FbnRyeVBsYW4oKSA9IGRlZmF1bHQ7CisgICAgfkVudHJ5UGxhbigpIG92ZXJy
aWRlID0gZGVmYXVsdDsKIAogICAgIHZvaWQgcHJlcGFyZSgpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>