<?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>154536</bug_id>
          
          <creation_ts>2016-02-22 08:19:46 -0800</creation_ts>
          <short_desc>[Fetch API] Implement Fetch API Response</short_desc>
          <delta_ts>2016-02-25 10:23:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>151937</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1167018</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-02-22 08:19:46 -0800</bug_when>
    <thetext>We should implement https://fetch.spec.whatwg.org/#response-class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167028</commentid>
    <comment_count>1</comment_count>
      <attachid>271924</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-02-22 08:50:40 -0800</bug_when>
    <thetext>Created attachment 271924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167069</commentid>
    <comment_count>2</comment_count>
      <attachid>271924</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-22 10:16:14 -0800</bug_when>
    <thetext>Comment on attachment 271924
Patch

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

&gt; Source/WebCore/Modules/fetch/FetchResponse.cpp:134
&gt; +        return ASCIILiteral(&quot;basic&quot;);

These could be AtomicStrings because there are a few well-known strings that are probably going to be used a lot.

&gt; Source/WebCore/Modules/fetch/FetchResponse.h:62
&gt; +    bool ok() const { return status() &gt;= 200 &amp;&amp; status() &lt;= 299; }

I think this should be called &quot;successful&quot;.  I know the spec calls it &quot;ok&quot; in https://fetch.spec.whatwg.org/#ok-status but I think that should be changed because of rfc 2616.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167073</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-02-22 10:26:12 -0800</bug_when>
    <thetext>Thanks for the feedback.

(In reply to comment #2)
&gt; Comment on attachment 271924 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=271924&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/fetch/FetchResponse.cpp:134
&gt; &gt; +        return ASCIILiteral(&quot;basic&quot;);
&gt; 
&gt; These could be AtomicStrings because there are a few well-known strings that
&gt; are probably going to be used a lot.

OK.

&gt; &gt; Source/WebCore/Modules/fetch/FetchResponse.h:62
&gt; &gt; +    bool ok() const { return status() &gt;= 200 &amp;&amp; status() &lt;= 299; }
&gt; 
&gt; I think this should be called &quot;successful&quot;.  I know the spec calls it &quot;ok&quot;
&gt; in https://fetch.spec.whatwg.org/#ok-status but I think that should be
&gt; changed because of rfc 2616.

OK. Let&apos;s change it in FetchResponse only for now, and not in the IDL.
Do you want to bring that feedback to whatwg fetch github?
Also, it might be good to refer to RFC 7230 now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167084</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-22 11:00:12 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; OK. Let&apos;s change it in FetchResponse only for now, and not in the IDL.
OK.
&gt; Do you want to bring that feedback to whatwg fetch github?
I think at this point there would be high risk (breaking compatibility with existing code) and little reward (making the api a little less confusing for web developers).  Let the record show I think &quot;ok&quot; is a bad name, but I think it&apos;s too late to change it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167703</commentid>
    <comment_count>5</comment_count>
      <attachid>271924</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-23 22:56:51 -0800</bug_when>
    <thetext>Comment on attachment 271924
Patch

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

This is pretty good WIP, and I would almost r+ it, but I think we need String -&gt; AtomicString

&gt; Source/WebCore/Modules/fetch/FetchBody.h:73
&gt;      static FetchBody fromJSValue(JSC::ExecState&amp;, JSC::JSValue);
&gt;      static FetchBody fromRequestBody(FetchBody*);
&gt; +    static FetchBody empty() { return FetchBody(); }

Is there a reason these aren&apos;t just constructors?  Then we could use { } to return an empty fetch body.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167862</commentid>
    <comment_count>6</comment_count>
      <attachid>272132</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-02-24 11:55:16 -0800</bug_when>
    <thetext>Created attachment 272132
Updating AtomicString</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167864</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-02-24 12:00:12 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 271924 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=271924&amp;action=review
&gt; 
&gt; This is pretty good WIP, and I would almost r+ it, but I think we need
&gt; String -&gt; AtomicString

I updated the patch to use AtomicString.
I wonder what is the big picture here. Should all enum-returning functions use AtomicString?
FetchRequest should be updated also I guess.
Also, it should really be the binding generator that should generate the code to convert the C++ enum-type into an AtomicString.

&gt; &gt; Source/WebCore/Modules/fetch/FetchBody.h:73
&gt; &gt;      static FetchBody fromJSValue(JSC::ExecState&amp;, JSC::JSValue);
&gt; &gt;      static FetchBody fromRequestBody(FetchBody*);
&gt; &gt; +    static FetchBody empty() { return FetchBody(); }
&gt; 
&gt; Is there a reason these aren&apos;t just constructors?  Then we could use { } to
&gt; return an empty fetch body.

I agree they should be reworked a bit.
There is a FIXME in FetchBody to finalize FetchBody::fromRequestBody.
I plan to do that refactoring as a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167880</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-24 12:28:04 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; I updated the patch to use AtomicString.
&gt; I wonder what is the big picture here. Should all enum-returning functions
&gt; use AtomicString?
I was just thinking we shouldn&apos;t allocate a string each time we call this function if we know that there is a small number of constant strings it could return.  AtomicStrings are usually used for this, but I made a mistake: AtomicStrings can only be used from the main thread, which means we can&apos;t use them for the fetch api.  I think the correct solution is to use std::call_once to initialize a bunch of NeverDestroyed&lt;String&gt; (not AtomicString).
&gt; FetchRequest should be updated also I guess.
I think so.  Maybe not in this patch.
&gt; Also, it should really be the binding generator that should generate the
&gt; code to convert the C++ enum-type into an AtomicString.
This might be nice to add to the bindings generator eventually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167894</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-02-24 12:47:00 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; I updated the patch to use AtomicString.
&gt; &gt; I wonder what is the big picture here. Should all enum-returning functions
&gt; &gt; use AtomicString?
&gt; I was just thinking we shouldn&apos;t allocate a string each time we call this
&gt; function if we know that there is a small number of constant strings it
&gt; could return.  AtomicStrings are usually used for this, but I made a
&gt; mistake: AtomicStrings can only be used from the main thread, which means we
&gt; can&apos;t use them for the fetch api.  I think the correct solution is to use
&gt; std::call_once to initialize a bunch of NeverDestroyed&lt;String&gt; (not
&gt; AtomicString).

Would it be possible then to land the previous patch as is and update at once FetchRequest and FetchResponse as a follow-up patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167895</commentid>
    <comment_count>10</comment_count>
      <attachid>271924</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-24 12:49:40 -0800</bug_when>
    <thetext>Comment on attachment 271924
Patch

(In reply to comment #9)
&gt; Would it be possible then to land the previous patch as is and update at
&gt; once FetchRequest and FetchResponse as a follow-up patch?
I think so.  Sorry for making you jump through hoops</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167898</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-02-24 12:56:07 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Comment on attachment 271924 [details]
&gt; Patch
&gt; 
&gt; (In reply to comment #9)
&gt; &gt; Would it be possible then to land the previous patch as is and update at
&gt; &gt; once FetchRequest and FetchResponse as a follow-up patch?
&gt; I think so.  Sorry for making you jump through hoops

Thanks for the r+/cq+ :)
Also, the AtomicString discussion is interesting and will probably be beneficial in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167909</commentid>
    <comment_count>12</comment_count>
      <attachid>271924</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-24 13:41:47 -0800</bug_when>
    <thetext>Comment on attachment 271924
Patch

Clearing flags on attachment: 271924

Committed r197049: &lt;http://trac.webkit.org/changeset/197049&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167910</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-24 13:41:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168096</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-02-25 08:51:49 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; I think the correct solution is to use
&gt; std::call_once to initialize a bunch of NeverDestroyed&lt;String&gt; (not
&gt; AtomicString).

That won’t work. We can’t use a single WTF::String on multiple threads. The reference counting is not thread safe and these strings would end up with incorrect reference counts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168132</commentid>
    <comment_count>15</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-25 10:23:25 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #8)
&gt; &gt; I think the correct solution is to use
&gt; &gt; std::call_once to initialize a bunch of NeverDestroyed&lt;String&gt; (not
&gt; &gt; AtomicString).
&gt; 
&gt; That won’t work. We can’t use a single WTF::String on multiple threads. The
&gt; reference counting is not thread safe and these strings would end up with
&gt; incorrect reference counts.
IIRC there used to be a way to make Strings that last forever by using an odd ref count, because the ref counts are incremented and decremented by two.  Then it doesn&apos;t matter if threads mess up the refcount, because it will always be a non-zero number.  Search for s_refCountFlagIsStaticString.  I&apos;m not sure if that&apos;s still used.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271924</attachid>
            <date>2016-02-22 08:50:40 -0800</date>
            <delta_ts>2016-02-24 13:41:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154536-20160222175020.patch</filename>
            <type>text/plain</type>
            <size>82924</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2OTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzZhNjM2OTJmNjhjZDJh
NmI0ZWI3MTY2YWNkNDIzNjNmMjM4MzQ0OC4uNmFhNDc0NWVlMTExMmRjMjM1ZjViY2I0Y2FhNzdh
NTA1OGQwNzIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE2LTAyLTIyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW0ZldGNo
IEFQSV0gSW1wbGVtZW50IEZldGNoIEFQSSBSZXNwb25zZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNsb25lLmh0bWwKKyAgICAgICAg
ICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNl
L3Jlc3BvbnNlLWNvbnN1bWUuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3IuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2UtaWRsLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAxLmh0bWwK
KyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRp
Yy1lcnJvci5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJlY3QuaHRtbAorCisg
ICAgICAgIEFkZGluZyBGZXRjaCBSZXNwb25zZSBhcyBGZXRjaFJlc3BvbnNlIGNsYXNzLgorICAg
ICAgICBDb25zdHJ1Y3RvciB1c2VzIGEgYnVpbHQtaW4gdG8gcHJlLXByb2Nlc3MgdGhlIHBhcmFt
ZXRlcnMuCisgICAgICAgIFN1cHBvcnQgb2YgYm9keSBhcyBSZWFkYWJsZVN0cmVhbSBpcyBtaXNz
aW5nLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oOgorICAgICAgICAo
V2ViQ29yZTo6RmV0Y2hCb2R5OjplbXB0eSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRj
aFJlc3BvbnNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0ZldGNoUmVzcG9uc2U6
OmJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6aXNSZWRpcmVjdFN0YXR1cyk6CisgICAgICAgIChX
ZWJDb3JlOjppc051bGxCb2R5U3RhdHVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9u
c2U6OmVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OnJlZGlyZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OmluaXRpYWxpemVXaXRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OkZldGNoUmVzcG9uc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RmV0Y2hSZXNwb25zZTo6Y2xvbmUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXNw
b25zZTo6dHlwZSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXNwb25zZTo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OnJlZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoUmVzcG9uc2U6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpyZWRp
cmVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OnN0YXR1cyk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpvayk6CisgICAgICAgIChXZWJDb3JlOjpGZXRj
aFJlc3BvbnNlOjpzdGF0dXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6
OmhlYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXNwb25zZTo6aXNEaXN0dXJiZWQp
OgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXNwb25zZTo6YXJyYXlCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RmV0Y2hSZXNwb25zZTo6Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
RmV0Y2hSZXNwb25zZTo6YmxvYik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpq
c29uKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OnRleHQpOgorICAgICAgICAq
IE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5qczogQWRkZWQuCisgICAgICAgIChpbml0aWFsaXplRmV0
Y2hSZXNwb25zZSk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0J1aWx0aW5zLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNCdWlsdGlucy5oOgorICAgICAgICAoV2ViQ29yZTo6SlNC
dWlsdGluRnVuY3Rpb25zOjpKU0J1aWx0aW5GdW5jdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SlNCdWlsdGluRnVuY3Rpb25zOjpmZXRjaFJlc3BvbnNlQnVpbHRpbnMpOgorCiAyMDE2LTAyLTIy
ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtj
c3MtZ3JpZF0gU3dhcCBjb2x1bW5zIGFuZCByb3dzIGluIGdyaWQgc2hvcnRoYW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IDlkZjAxZDAxMWI1MDlkNjM0MjBmZGYxMTM4ZmY5MjFkNDk2NmJjNGMu
LjJjMzFiZTA2OWI2Mzk1MjMxZWIzNzJhYTA0YjJiNGE4ZDM2YmY5MWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC0xNjYsNiArMTY2LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMK
ICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5pZGwKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNo
SGVhZGVycy5pZGwKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGwKKyAgICBNb2R1
bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaWRsCiAKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0Nv
b3JkaW5hdGVzLmlkbAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsCkBA
IC04MTQsNiArODE1LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIE1vZHVsZXMvZmV0Y2gv
RmV0Y2hCb2R5LmNwcAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcAogICAgIE1v
ZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcAorICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNw
b25zZS5jcHAKIAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwCiAgICAg
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5jcHAKQEAgLTM2NjcsNiArMzY2OSw3IEBA
IEdFTkVSQVRFX0JJTkRJTkdTKFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTCiAKIHNldChXZWJD
b3JlX0JVSUxUSU5TX1NPVVJDRVMKICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoSGVhZGVycy5qcworICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNw
b25zZS5qcwogICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VzLmpzCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JV
c2VyTWVkaWEuanMKICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmpzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggYmUwZTM5NTU5
NDQyYzM0Y2Y2MDA5NDliZTYyNDNiNjUzNzAyNDBiMS4uYmU3OWM5YmEwNWU4Zjg3NDkwNjJiMjQ4
ZDJhNDQwM2YzYjdhY2U2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtMTU2LDYg
KzE1Niw3IEBACiAjaW5jbHVkZSAiSlNGZXRjaEJvZHkuY3BwIgogI2luY2x1ZGUgIkpTRmV0Y2hI
ZWFkZXJzLmNwcCIKICNpbmNsdWRlICJKU0ZldGNoUmVxdWVzdC5jcHAiCisjaW5jbHVkZSAiSlNG
ZXRjaFJlc3BvbnNlLmNwcCIKICNpbmNsdWRlICJKU0ZpbGUuY3BwIgogI2luY2x1ZGUgIkpTRmls
ZUVycm9yLmNwcCIKICNpbmNsdWRlICJKU0ZpbGVFeGNlcHRpb24uY3BwIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggNTk5ZjVjZWQ5ZDBiMjRlYjE4NWE4NmZjMGFiZGZmNmM1MWI4
OWI3ZS4uZTg3MjliOGNkNTkwZDA0MTUyZGRmZjdkMWVmNGM3MmYzNGMwMmMzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC04Miw2ICs4Miw3IEBAIE5PTl9TVkdfQklORElOR19J
RExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dh
bWVwYWQvR2FtZXBhZC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFkL0dhbWVw
YWRCdXR0b24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkRXZl
bnQuaWRsIFwKQEAgLTEyNzIsNiArMTI3Myw3IEBAIFdlYlJlcGxheUlucHV0cy5oIDogJChJTlBV
VF9HRU5FUkFUT1JfU1BFQ0lGSUNBVElPTlMpICQoSU5QVVRfR0VORVJBVE9SX1NDUklQVFMpCiAK
IFdlYkNvcmVfQlVJTFRJTlNfU09VUkNFUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZmV0
Y2gvRmV0Y2hIZWFkZXJzLmpzIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvZmV0Y2gvRmV0Y2hS
ZXNwb25zZS5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlcy5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVz
ZXJNZWRpYS5qcyBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmpzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hCb2R5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oCmlu
ZGV4IDQzNjI3YTIxMjgwZDk3NzM4NmE0ZjM1NWY0NmIwODU1NjQ0M2MxM2QuLjQ5ZjEwZDVhN2Rl
NTc5MTVmZmI4NGUxYzVhNzRjM2Q2MGExNzAxMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaEJvZHkuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
RmV0Y2hCb2R5IGZyb21KU1ZhbHVlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU1ZhbHVlKTsKICAg
ICBzdGF0aWMgRmV0Y2hCb2R5IGZyb21SZXF1ZXN0Qm9keShGZXRjaEJvZHkqKTsKKyAgICBzdGF0
aWMgRmV0Y2hCb2R5IGVtcHR5KCkgeyByZXR1cm4gRmV0Y2hCb2R5KCk7IH0KIAogcHJpdmF0ZToK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBib29sIHByb2Nlc3NJZkVtcHR5T3JEaXN0dXJiZWQo
RE9NUHJvbWlzZTxULCBFeGNlcHRpb25Db2RlPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGUzMjYyZjU3YWM1NWIxOTI0
NWE1OTU0Mjc0OWY3YWNlNWE4YzY4OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKQEAgLTAsMCArMSwxNTggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBu
YW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
ICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiRmV0Y2hSZXNwb25zZS5oIgorCisjaWYgRU5BQkxFKEZFVENIX0FQSSkKKwor
I2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5j
bHVkZSAiSlNGZXRjaFJlc3BvbnNlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc1JlZGly
ZWN0U3RhdHVzKGludCBzdGF0dXMpCit7CisgICAgcmV0dXJuIHN0YXR1cyA9PSAzMDEgfHwgc3Rh
dHVzID09IDMwMiB8fCBzdGF0dXMgPT0gMzAzIHx8IHN0YXR1cyA9PSAzMDcgfHwgc3RhdHVzID09
IDMwODsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzTnVsbEJvZHlTdGF0dXMoaW50IHN0YXR1
cykKK3sKKyAgICByZXR1cm4gc3RhdHVzID09IDEwMSB8fCBzdGF0dXMgPT0gMjA0IHx8IHN0YXR1
cyA9PSAyMDUgfHwgc3RhdHVzID09IDMwNDsKK30KKworUmVmPEZldGNoUmVzcG9uc2U+IEZldGNo
UmVzcG9uc2U6OmVycm9yKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGZXRjaFJlc3Bv
bnNlKFR5cGU6OkVycm9yLCBGZXRjaEJvZHk6OmVtcHR5KCksIEZldGNoSGVhZGVyczo6Y3JlYXRl
KEZldGNoSGVhZGVyczo6R3VhcmQ6OkltbXV0YWJsZSksIFJlc291cmNlUmVzcG9uc2UoKSkpOwor
fQorCitSZWZQdHI8RmV0Y2hSZXNwb25zZT4gRmV0Y2hSZXNwb25zZTo6cmVkaXJlY3QoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiB1cmwsIGludCBzdGF0dXMs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIC8vIEZJWE1FOiBUaWdodGVuIHRoZSBVUkwgcGFy
c2luZyBhbGdvcml0aG0gYWNjb3JkaW5nIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jY29u
Y2VwdC11cmwtcGFyc2VyLgorICAgIFVSTCByZXF1ZXN0VVJMID0gY29udGV4dC0+Y29tcGxldGVV
UkwodXJsKTsKKyAgICBpZiAoIXJlcXVlc3RVUkwuaXNWYWxpZCgpIHx8ICFyZXF1ZXN0VVJMLnVz
ZXIoKS5pc0VtcHR5KCkgfHwgIXJlcXVlc3RVUkwucGFzcygpLmlzRW1wdHkoKSkgeworICAgICAg
ICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIGlm
ICghaXNSZWRpcmVjdFN0YXR1cyhzdGF0dXMpKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgUmVmUHRyPEZldGNoUmVzcG9uc2U+
IHJlZGlyZWN0UmVzcG9uc2UgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVzcG9uc2UoVHlwZTo6RGVm
YXVsdCwgRmV0Y2hCb2R5OjplbXB0eSgpLCBGZXRjaEhlYWRlcnM6OmNyZWF0ZShGZXRjaEhlYWRl
cnM6Okd1YXJkOjpJbW11dGFibGUpLCBSZXNvdXJjZVJlc3BvbnNlKCkpKTsKKyAgICByZWRpcmVj
dFJlc3BvbnNlLT5tX3Jlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKHN0YXR1cyk7CisgICAgcmVk
aXJlY3RSZXNwb25zZS0+bV9oZWFkZXJzLT5mYXN0U2V0KEhUVFBIZWFkZXJOYW1lOjpMb2NhdGlv
biwgcmVxdWVzdFVSTC5zdHJpbmcoKSk7CisgICAgcmV0dXJuIHJlZGlyZWN0UmVzcG9uc2U7Cit9
CisKK3ZvaWQgRmV0Y2hSZXNwb25zZTo6aW5pdGlhbGl6ZVdpdGgoY29uc3QgRGljdGlvbmFyeSYg
aW5pdCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaW50IHN0YXR1czsKKyAgICBpZiAoIWlu
aXQuZ2V0KCJzdGF0dXMiLCBzdGF0dXMpKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChzdGF0dXMgPCAyMDAgfHwgc3RhdHVzID4gNTk5
KSB7CisgICAgICAgIGVjID0gUmFuZ2VFcnJvcjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIC8vIEZJWE1FOiBWYWxpZGF0ZSByZWFzb24gcGhyYXNlIChodHRwczovL3Rvb2xzLmlldGYu
b3JnL2h0bWwvcmZjNzIzMCNzZWN0aW9uLTMuMS4yKS4KKyAgICBTdHJpbmcgc3RhdHVzVGV4dDsK
KyAgICBpZiAoIWluaXQuZ2V0KCJzdGF0dXNUZXh0Iiwgc3RhdHVzVGV4dCkpIHsKKyAgICAgICAg
ZWMgPSBUeXBlRXJyb3I7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9yZXNwb25zZS5z
ZXRIVFRQU3RhdHVzQ29kZShzdGF0dXMpOworICAgIG1fcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1Rl
eHQoc3RhdHVzVGV4dCk7CisKKyAgICBSZWZQdHI8RmV0Y2hIZWFkZXJzPiBpbml0aWFsSGVhZGVy
czsKKyAgICBpZiAoaW5pdC5nZXQoImhlYWRlcnMiLCBpbml0aWFsSGVhZGVycykpCisgICAgICAg
IG1faGVhZGVycy0+ZmlsbChpbml0aWFsSGVhZGVycy5nZXQoKSk7CisKKyAgICBKU0M6OkpTVmFs
dWUgYm9keTsKKyAgICBpZiAoaW5pdC5nZXQoImJvZHkiLCBib2R5KSkgeworICAgICAgICBpZiAo
aXNOdWxsQm9keVN0YXR1cyhzdGF0dXMpKSB7CisgICAgICAgICAgICBlYyA9IFR5cGVFcnJvcjsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX2JvZHkgPSBGZXRjaEJv
ZHk6OmZyb21KU1ZhbHVlKCppbml0LmV4ZWNTdGF0ZSgpLCBib2R5KTsKKyAgICAgICAgaWYgKG1f
aGVhZGVycy0+ZmFzdEdldChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUpLmlzRW1wdHkoKSAm
JiAhbV9ib2R5Lm1pbWVUeXBlKCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9oZWFkZXJzLT5m
YXN0U2V0KEhUVFBIZWFkZXJOYW1lOjpDb250ZW50VHlwZSwgbV9ib2R5Lm1pbWVUeXBlKCkpOwor
ICAgIH0KK30KKworRmV0Y2hSZXNwb25zZTo6RmV0Y2hSZXNwb25zZShUeXBlIHR5cGUsIEZldGNo
Qm9keSYmIGJvZHksIFJlZjxGZXRjaEhlYWRlcnM+JiYgaGVhZGVycywgUmVzb3VyY2VSZXNwb25z
ZSYmIHJlc3BvbnNlKQorICAgIDogbV90eXBlKHR5cGUpCisgICAgLCBtX3Jlc3BvbnNlKFdURk1v
dmUocmVzcG9uc2UpKQorICAgICwgbV9ib2R5KFdURk1vdmUoYm9keSkpCisgICAgLCBtX2hlYWRl
cnMoV1RGTW92ZShoZWFkZXJzKSkKK3sKK30KKworUmVmUHRyPEZldGNoUmVzcG9uc2U+IEZldGNo
UmVzcG9uc2U6OmNsb25lKEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX2JvZHkuaXNE
aXN0dXJiZWQoKSB8fCBtX2lzTG9ja2VkKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgUmVmUHRyPEZldGNoUmVzcG9uc2U+IGNs
b25lZCA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXNwb25zZShtX3R5cGUsIEZldGNoQm9keShtX2Jv
ZHkpLCBGZXRjaEhlYWRlcnM6OmNyZWF0ZShoZWFkZXJzKCkpLCBSZXNvdXJjZVJlc3BvbnNlKG1f
cmVzcG9uc2UpKSk7CisgICAgY2xvbmVkLT5tX2lzUmVkaXJlY3RlZCA9IG1faXNSZWRpcmVjdGVk
OworICAgIHJldHVybiBjbG9uZWQ7Cit9CisKK1N0cmluZyBGZXRjaFJlc3BvbnNlOjp0eXBlKCkg
Y29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fdHlwZSkgeworICAgIGNhc2UgVHlwZTo6QmFzaWM6Cisg
ICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImJhc2ljIik7CisgICAgY2FzZSBUeXBlOjpDb3Jz
OgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJjb3JzIik7CisgICAgY2FzZSBUeXBlOjpE
ZWZhdWx0OgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJkZWZhdWx0Iik7CisgICAgY2Fz
ZSBUeXBlOjpFcnJvcjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZXJyb3IiKTsKKyAg
ICBjYXNlIFR5cGU6Ok9wYXF1ZToKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgib3BhcXVl
Iik7CisgICAgY2FzZSBUeXBlOjpPcGFxdWVSZWRpcmVjdDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJ
TGl0ZXJhbCgib3BhcXVlcmVkaXJlY3QiKTsKKyAgICB9OworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworLy8gRklYTUU6IEltcGxlbWVudCB0aGlz
LCBhcyBhIGN1c3RvbSBvciB0aHJvdWdoIGJpbmRpbmcgZ2VuZXJhdG9yLgorSlNDOjpKU1ZhbHVl
IEpTRmV0Y2hSZXNwb25zZTo6Ym9keShKU0M6OkV4ZWNTdGF0ZSYpIGNvbnN0Cit7CisgICAgcmV0
dXJuIEpTQzo6anNOdWxsKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShGRVRDSF9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hSZXNwb25zZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxNjkyZWYzYjE3MjM4MDQwYWQwOGRkNzgyMDEzYjI0
Y2Q2NGU1NmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoUmVzcG9uc2UuaApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IENhbm9uIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBy
ZXF1aXJlZCB0byBiZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgor
ICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGZXRjaFJlc3BvbnNlX2gKKyNkZWZpbmUgRmV0
Y2hSZXNwb25zZV9oCisKKyNpZiBFTkFCTEUoRkVUQ0hfQVBJKQorCisjaW5jbHVkZSAiRmV0Y2hC
b2R5LmgiCisjaW5jbHVkZSAiRmV0Y2hIZWFkZXJzLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNw
b25zZS5oIgorCituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIEFycmF5QnVmZmVyOworfTsKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0aW9uYXJ5OworCit0eXBlZGVmIGludCBFeGNl
cHRpb25Db2RlOworCitjbGFzcyBGZXRjaFJlc3BvbnNlIDogcHVibGljIFJlZkNvdW50ZWQ8RmV0
Y2hSZXNwb25zZT4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RmV0Y2hSZXNwb25zZT4gY3Jl
YXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBGZXRjaFJlc3BvbnNlKFR5cGU6OkRlZmF1bHQs
IEZldGNoQm9keTo6ZW1wdHkoKSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpH
dWFyZDo6UmVzcG9uc2UpLCBSZXNvdXJjZVJlc3BvbnNlKCkpKTsgfQorICAgIHN0YXRpYyBSZWY8
RmV0Y2hSZXNwb25zZT4gZXJyb3IoKTsKKyAgICBzdGF0aWMgUmVmUHRyPEZldGNoUmVzcG9uc2U+
IHJlZGlyZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmLCBpbnQsIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICAvLyBGSVhNRTogQmluZGluZyBnZW5lcmF0b3Igc2hvdWxkIG5v
dCByZXF1aXJlIGJlbG93IG1ldGhvZCB0byBoYW5kbGUgb3B0aW9uYWwgc3RhdHVzIHBhcmFtZXRl
ci4KKyAgICBzdGF0aWMgUmVmUHRyPEZldGNoUmVzcG9uc2U+IHJlZGlyZWN0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdXJsLCBFeGNlcHRpb25Db2RlJiBl
YykgeyByZXR1cm4gcmVkaXJlY3QoY29udGV4dCwgdXJsLCAzMDIsIGVjKTsgfQorCisgICAgdm9p
ZCBpbml0aWFsaXplV2l0aChjb25zdCBEaWN0aW9uYXJ5JiwgRXhjZXB0aW9uQ29kZSYpOworCisg
ICAgU3RyaW5nIHR5cGUoKSBjb25zdDsKKyAgICBjb25zdCBTdHJpbmcmIHVybCgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVzcG9uc2UudXJsKCkuc3RyaW5nKCk7IH0KKyAgICBib29sIHJlZGlyZWN0ZWQo
KSBjb25zdCB7IHJldHVybiBtX2lzUmVkaXJlY3RlZDsgfQorICAgIGludCBzdGF0dXMoKSBjb25z
dCB7IHJldHVybiBtX3Jlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCk7IH0KKyAgICBib29sIG9rKCkg
Y29uc3QgeyByZXR1cm4gc3RhdHVzKCkgPj0gMjAwICYmIHN0YXR1cygpIDw9IDI5OTsgfQorICAg
IGNvbnN0IFN0cmluZyYgc3RhdHVzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2UuaHR0
cFN0YXR1c1RleHQoKTsgfQorCisgICAgRmV0Y2hIZWFkZXJzJiBoZWFkZXJzKCkgeyByZXR1cm4g
bV9oZWFkZXJzOyB9CisgICAgUmVmUHRyPEZldGNoUmVzcG9uc2U+IGNsb25lKEV4Y2VwdGlvbkNv
ZGUmKTsKKworICAgIC8vIEJvZHkgQVBJCisgICAgYm9vbCBpc0Rpc3R1cmJlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fYm9keS5pc0Rpc3R1cmJlZCgpOyB9CisgICAgdm9pZCBhcnJheUJ1ZmZlcihGZXRj
aEJvZHk6OkFycmF5QnVmZmVyUHJvbWlzZSYmIHByb21pc2UpIHsgbV9ib2R5LmFycmF5QnVmZmVy
KFdURk1vdmUocHJvbWlzZSkpOyB9CisgICAgdm9pZCBmb3JtRGF0YShGZXRjaEJvZHk6OkZvcm1E
YXRhUHJvbWlzZSYmIHByb21pc2UpIHsgbV9ib2R5LmZvcm1EYXRhKFdURk1vdmUocHJvbWlzZSkp
OyB9CisgICAgdm9pZCBibG9iKEZldGNoQm9keTo6QmxvYlByb21pc2UmJiBwcm9taXNlKSB7IG1f
Ym9keS5ibG9iKFdURk1vdmUocHJvbWlzZSkpOyB9CisgICAgdm9pZCBqc29uKEpTQzo6RXhlY1N0
YXRlJiBzdGF0ZSwgRmV0Y2hCb2R5OjpKU09OUHJvbWlzZSYmIHByb21pc2UpIHsgbV9ib2R5Lmpz
b24oc3RhdGUsIFdURk1vdmUocHJvbWlzZSkpOyB9CisgICAgdm9pZCB0ZXh0KEZldGNoQm9keTo6
VGV4dFByb21pc2UmJiBwcm9taXNlKSB7IG1fYm9keS50ZXh0KFdURk1vdmUocHJvbWlzZSkpOyB9
CisKK3ByaXZhdGU6CisgICAgZW51bSBjbGFzcyBUeXBlIHsgQmFzaWMsIENvcnMsIERlZmF1bHQs
IEVycm9yLCBPcGFxdWUsIE9wYXF1ZVJlZGlyZWN0IH07CisKKyAgICBGZXRjaFJlc3BvbnNlKFR5
cGUsIEZldGNoQm9keSYmLCBSZWY8RmV0Y2hIZWFkZXJzPiYmLCBSZXNvdXJjZVJlc3BvbnNlJiYp
OworCisgICAgVHlwZSBtX3R5cGU7CisgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwor
ICAgIEZldGNoQm9keSBtX2JvZHk7CisgICAgUmVmPEZldGNoSGVhZGVycz4gbV9oZWFkZXJzOwor
ICAgIGJvb2wgbV9pc0xvY2tlZCA9IGZhbHNlOworICAgIGJvb2wgbV9pc1JlZGlyZWN0ZWQgPSBm
YWxzZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShG
RVRDSF9BUEkpCisKKyNlbmRpZiAvLyBGZXRjaFJlc3BvbnNlX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3MGY0YjkxZDA1
YTVjODNkMmZkMGZjYzA2ZDM5MDQ4Y2VjOTcwNmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaWRsCkBAIC0wLDAgKzEsNTcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9y
IHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworZW51bSBSZXNwb25zZVR5
cGUgeyAiYmFzaWMiLCAiY29ycyIsICJkZWZhdWx0IiwgImVycm9yIiwgIm9wYXF1ZSIsICJvcGFx
dWVyZWRpcmVjdCIgfTsKKworWworICAgIENvbmRpdGlvbmFsPUZFVENIX0FQSSwKKyAgICBHbG9i
YWxDb250ZXh0PURPTVdpbmRvdyZXb3JrZXJHbG9iYWxTY29wZSwKKyAgICBJbXBsZW1lbnRhdGlv
bkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFjZU5hbWU9UmVzcG9uc2UsCisgICAgSlNCdWlsdGlu
Q29uc3RydWN0b3IKK10KK2ludGVyZmFjZSBGZXRjaFJlc3BvbnNlIHsKKyAgICAvLyBGSVhNRTog
TmV3T2JqZWN0IGRvZXMgbm90IHNlZW0gdG8gYmUgc3VwcG9ydGVkIGZvciBzdGF0aWMgbWV0aG9k
cy4KKyAgICBzdGF0aWMgRmV0Y2hSZXNwb25zZSBlcnJvcigpOworICAgIFtSYWlzZXNFeGNlcHRp
b24sIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHN0YXRpYyBGZXRjaFJlc3BvbnNl
IHJlZGlyZWN0KERPTVN0cmluZyB1cmwsIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IHN0YXR1cyA9
IDMwMik7CisKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVzcG9uc2VUeXBlIHR5cGU7CisKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVybDsKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiByZWRpcmVjdGVkOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBz
aG9ydCBzdGF0dXM7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb2s7CisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzdGF0dXNUZXh0OworICAgIC8vIEZJWE1FOiBBZGQg
c3VwcG9ydCBmb3IgU2FtZU9iamVjdCBrZXl3b3JkIGZvciBoZWFkZXJzCisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIEZldGNoSGVhZGVycyBoZWFkZXJzOworICAgIFtDdXN0b20sIFJhaXNlc0V4Y2Vw
dGlvbl0gcmVhZG9ubHkgYXR0cmlidXRlIFJlYWRhYmxlU3RyZWFtPyBib2R5OworCisgICAgW05l
d09iamVjdCwgUmFpc2VzRXhjZXB0aW9uXSBGZXRjaFJlc3BvbnNlIGNsb25lKCk7CisKKyAgICBb
UHJpdmF0ZSwgUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGluaXRpYWxpemVXaXRoKERpY3Rpb25hcnkg
cGFyYW1ldGVycyk7Cit9OworRmV0Y2hSZXNwb25zZSBpbXBsZW1lbnRzIEZldGNoQm9keTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mMmI1MzRlNjUzMDRkYTNkNTdhYjdkNmQ5Mzg1ZjUxYzEyZmM4NzVlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmpzCkBAIC0w
LDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvLyBAY29uZGl0aW9uYWw9RU5B
QkxFKEZFVENIX0FQSSkKKworZnVuY3Rpb24gaW5pdGlhbGl6ZUZldGNoUmVzcG9uc2UoYm9keSwg
aW5pdCkKK3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICBsZXQgcGFyYW1ldGVycyA9IHsgfTsK
KyAgICBpZiAoaW5pdCAhPT0gQHVuZGVmaW5lZCkgeworICAgICAgICBpZiAoIUBpc09iamVjdChp
bml0KSkKKyAgICAgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJSZXNwb25zZSBpbml0IG11
c3QgYmUgYW4gb2JqZWN0Iik7CisgICAgICAgIHBhcmFtZXRlcnMuc3RhdHVzID0gaW5pdC5zdGF0
dXM7CisgICAgICAgIHBhcmFtZXRlcnMuc3RhdHVzVGV4dCA9IGluaXQuc3RhdHVzVGV4dDsKKyAg
ICAgICAgLy8gRklYTUU6IFNoaWVsZCB0aGlzIGZyb20gdXNlciBzY3JpcHRzLgorICAgICAgICBp
ZiAoaW5pdC5oZWFkZXJzKQorICAgICAgICAgICAgcGFyYW1ldGVycy5oZWFkZXJzID0gKHRoaXMu
aGVhZGVycy5jb25zdHJ1Y3RvciA9PT0gaW5pdC5oZWFkZXJzLmNvbnN0cnVjdG9yKSA/IGluaXQu
aGVhZGVycyA6IG5ldyB0aGlzLmhlYWRlcnMuY29uc3RydWN0b3IoaW5pdC5oZWFkZXJzKTsKKyAg
ICB9CisgCisgICAgaWYgKHBhcmFtZXRlcnMuc3RhdHVzID09PSBAdW5kZWZpbmVkKQorICAgICAg
ICBwYXJhbWV0ZXJzLnN0YXR1cyA9IDIwMDsKKyAgICBpZiAocGFyYW1ldGVycy5zdGF0dXNUZXh0
ID09PSBAdW5kZWZpbmVkKQorICAgICAgICBwYXJhbWV0ZXJzLnN0YXR1c1RleHQgPSAiT0siOwor
CisgICAgaWYgKGJvZHkgIT09IEB1bmRlZmluZWQgJiYgYm9keSAhPT0gbnVsbCkKKyAgICAgICAg
IHBhcmFtZXRlcnMuYm9keSA9IGJvZHk7CisKKyAgICB0aGlzLkBpbml0aWFsaXplV2l0aChwYXJh
bWV0ZXJzKTsKKyAgICByZXR1cm4gdGhpczsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NmE2MTRlMjlmNjM5ZGIyMTFiMzg0
ODJhNzNkNzNiYmZiMjcxYTk1Li5lMGMxNTAzNTYxYTkyZWE0Y2MxOTJjYTA3ZWZkZTM5ZjcwMzRk
M2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xNDk5LDYgKzE0OTksNyBAQAogCQk0MTI3RDUzNzBGOEFBQjFEMDBFNDI0RjUg
LyogU2NyaXB0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEyN0Q1MzYwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCAqLzsg
fTsKIAkJNDEyOURGODUxQkI1QjgwNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRl
Q29uc3RydWN0b3JzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxMjlERjgzMUJCNUI3RjcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0
ZUNvbnN0cnVjdG9ycy5jcHAgKi87IH07CiAJCTQxMjlERjg2MUJCNUI4MEMwMDMyMkExNiAvKiBK
U1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOURGODQxQkI1QjdGNzAwMzIyQTE2IC8qIEpT
UmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDEzMDE1RDkxQzdCNTcxNDAwMDkxQzZFIC8q
IEZldGNoUmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEzMDE1RDUxQzdCNTcwNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuY3BwICov
OyB9OwogCQk0MTM4RDMzNTEyNDQwNTQ4MDAzMjNEMzMgLyogRXZlbnRDb250ZXh0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTM4RDMzMzEyNDQwNTQ4
MDAzMjNEMzMgLyogRXZlbnRDb250ZXh0LmggKi87IH07CiAJCTQxMzhEMzM2MTI0NDA1NDgwMDMy
M0QzMyAvKiBFdmVudENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEzOEQzMzQxMjQ0MDU0ODAwMzIzRDMzIC8qIEV2ZW50Q29udGV4dC5j
cHAgKi87IH07CiAJCTQxM0MyQzM0MUJDMjlBOEYwMDc1MjA0QyAvKiBKU0RPTUNvbnN0cnVjdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNDMkMz
MzFCQzI5QTdCMDA3NTIwNEMgLyogSlNET01Db25zdHJ1Y3Rvci5oICovOyB9OwpAQCAtMjgxNSw4
ICsyODE2LDEwIEBACiAJCTdFNDc0RTFFMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFz
ZVRyYWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdFNDc0RTFCMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXJD
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3RTQ3NEUxRjEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ3NEUxQzEyNDk0
REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0U0NzRFMjAxMjQ5NERDOTAwMjM1MzY0
IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ3NEUxRDEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0
YWJhc2VUcmFja2VyLmNwcCAqLzsgfTsKLQkJN0U0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpT
RmV0Y2hSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5jcHAgKi87
IH07CiAJCTdFNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0Qzk2RDkxQUQ0NDgz
NTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0LmggKi87IH07CisJCTdFNEM5NkRDMUFENDQ4MzUw
MDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJl
cXVlc3QuY3BwICovOyB9OworCQk4RTRDOTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJl
c3BvbnNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNlLmggKi87IH07CisJCThF
NEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVzcG9uc2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU0Qzk2RDgxQUQ0NDgzNTAwMzY1
QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5jcHAgKi87IH07CiAJCTdFNERFMTBEMTk4QjEwQjYwMDUx
Q0IwMiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTRERTEwQzE5OEIxMEI2MDA1MUNCMDIgLyogRGlza0Nh
Y2hlTW9uaXRvckNvY29hLm1tICovOyB9OwogCQk3RTVEN0E3NjE2MUQzRjhGMDA4OTZDMzQgLyog
T0VTRWxlbWVudEluZGV4VWludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3RTVEN0E3MzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4
VWludC5jcHAgKi87IH07CiAJCTdFNUQ3QTc3MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50
SW5kZXhVaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3RTVEN0E3NDE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5oICovOyB9
OwpAQCAtODk2Nyw2ICs4OTcwLDEwIEBACiAJCTQxMjlERjgyMUJCNUI3QTYwMDMyMkExNiAvKiBS
ZWFkYWJsZVN0cmVhbVJlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZWFkYWJsZVN0cmVhbVJlYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTI5
REY4MzFCQjVCN0Y3MDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3Rv
cnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZWFkYWJsZVN0
cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTI5REY4NDFCQjVCN0Y3MDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25z
dHJ1Y3RvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZWFkYWJsZVN0
cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDEzMDE1RDUxQzdCNTcwNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmV0Y2hSZXNwb25zZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxMzAxNUQ2MUM3QjU3MDQwMDA5MUM2RSAvKiBGZXRjaFJlc3Bv
bnNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZldGNoUmVzcG9uc2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEzMDE1RDcxQzdCNTcwNDAwMDkxQzZFIC8q
IEZldGNoUmVzcG9uc2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEZldGNoUmVzcG9uc2Uu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTMwMTVEODFDN0I1NzA0MDAwOTFD
NkUgLyogRmV0Y2hSZXNwb25zZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsg
cGF0aCA9IEZldGNoUmVzcG9uc2UuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
MzhEMzMzMTI0NDA1NDgwMDMyM0QzMyAvKiBFdmVudENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxMzhEMzM0MTI0NDA1NDgwMDMyM0QzMyAvKiBFdmVudENvbnRleHQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnRDb250ZXh0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzQzJDMzMxQkMyOUE3QjAwNzUyMDRDIC8qIEpTRE9N
Q29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01Db25z
dHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA0NDgsNiArMTA0NTUs
OCBAQAogCQk3RTQ3NEUxRDEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNRTGl0ZURhdGFiYXNl
VHJhY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNEM5NkQ4MUFENDQ4
MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0ZldGNoUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZldGNoUmVxdWVzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJl
c3BvbnNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmV0Y2hS
ZXNwb25zZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThFNEM5NkQ5MUFENDQ4
MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVzcG9uc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNGZXRjaFJlc3BvbnNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdFNERFMTBDMTk4QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEaXNrQ2FjaGVNb25pdG9yQ29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNUQ3QTczMTYxRDNGOEYwMDg5
NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3RTVEN0E3NDE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWlu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPRVNFbGVtZW50SW5kZXhVaW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjc2Miw2ICsxNjc3MSwxMCBAQAog
CQkJCTQxRjU0Rjg3MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaFJlcXVlc3QuY3BwICovLAogCQkJ
CTQxRjU0Rjg4MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaFJlcXVlc3QuaCAqLywKIAkJCQk0MUY1
NEY4OTFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hSZXF1ZXN0LmlkbCAqLywKKwkJCQk0MTMwMTVE
NTFDN0I1NzA0MDAwOTFDNkUgLyogRmV0Y2hSZXNwb25zZS5jcHAgKi8sCisJCQkJNDEzMDE1RDYx
QzdCNTcwNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuaCAqLywKKwkJCQk0MTMwMTVENzFDN0I1
NzA0MDAwOTFDNkUgLyogRmV0Y2hSZXNwb25zZS5pZGwgKi8sCisJCQkJNDEzMDE1RDgxQzdCNTcw
NDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuanMgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGZldGNo
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2Nzc1LDYgKzE2Nzg4LDggQEAKIAkJ
CQk3RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuaCAqLywKIAkJCQk3
RDRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEhlYWRlcnMuY3BwICovLAogCQkJCTdE
NEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoSGVhZGVycy5oICovLAorCQkJCThFNEM5
NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVzcG9uc2UuY3BwICovLAorCQkJCThFNEM5
NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVzcG9uc2UuaCAqLywKIAkJCSk7CiAJCQlu
YW1lID0gRmV0Y2hBUEk7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjY3MDAsNiAr
MjY3MTUsNyBAQAogCQkJCTY1REYzMjAyMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1JhbmdlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3RjRDOTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHku
aCBpbiBIZWFkZXJzICovLAogCQkJCTdFNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNo
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOEU0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8q
IEpTRmV0Y2hSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0Q0Qzk2REQxQUQ0NDgzNTAw
MzY1QTUwIC8qIEpTRmV0Y2hIZWFkZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzRDOTZERDFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NkM0Qzk2REYxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKQEAgLTMwNDQ0LDYgKzMwNDYwLDcgQEAKIAkJCQk3RjRDOTZEQzFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0Q0Qzk2
REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hIZWFkZXJzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdFNEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk4RTRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1Jl
YWRhYmxlU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZDNEM5NkRFMUFENDQ4MzUwMDM2
NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0MTI5REY4NTFCQjVCODA3MDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25z
dHJ1Y3RvcnMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDcxMCw2ICszMDcyNyw3IEBACiAJCQkJ
RDNGM0QzNjcxQTY5QjFBNTAwNTlGQzJCIC8qIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlEM0YzRDM2QjFBNjlCN0M1MDA1OUZDMkIgLyogSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5RUVE
MTRGMTA1MTk3MUEwMDA5OUZBQiAvKiBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk0MTMwMTVEOTFDN0I1NzE0MDAwOTFDNkUgLyogRmV0Y2hSZXNw
b25zZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2Rjk5NUEzMzFBNzA4MzM3MDBBNzM1RjQgLyog
SlNXZWJHTFNhbXBsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlDN0I5QTIxMDQyRDJEMzAw
MDlENDQ3IC8qIEpTV2ViR0xTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTA3RDMzNTUx
NTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3Jl
SlNCdWlsdGlucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNCdWls
dGlucy5jcHAKaW5kZXggZDEwOTk0MjgxYzk0NDcyMmNiNTM4ZjNmNjI1OTI0ZWQxYzljOGIzZi4u
ZjcxMjkwMzYyYWIwM2ZlMDM1YmJmOWU5YzhiZWI0ZjQwMjE4ZDhlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQnVpbHRpbnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0J1aWx0aW5zLmNwcApAQCAtMjksNiArMjks
NyBAQAogI2luY2x1ZGUgIkJ5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3lCdWlsdGlucy5jcHAiCiAj
aW5jbHVkZSAiQ291bnRRdWV1aW5nU3RyYXRlZ3lCdWlsdGlucy5jcHAiCiAjaW5jbHVkZSAiRmV0
Y2hIZWFkZXJzQnVpbHRpbnMuY3BwIgorI2luY2x1ZGUgIkZldGNoUmVzcG9uc2VCdWlsdGlucy5j
cHAiCiAjaW5jbHVkZSAiTWVkaWFEZXZpY2VzQnVpbHRpbnMuY3BwIgogI2luY2x1ZGUgIk5hdmln
YXRvclVzZXJNZWRpYUJ1aWx0aW5zLmNwcCIKICNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlvbkJ1
aWx0aW5zLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVKU0J1aWx0aW5zLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNCdWls
dGlucy5oCmluZGV4IDk1ZjZiOTcyZjI3NWVjMjE3NmYyMDBjYWViYTI1NDBjYjVlMDYzN2MuLmY1
ZjFhNTI5ZWIwOGZkODUxOTFiZWY5MGVmODU5M2ExMTNiZWVjM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0J1aWx0aW5zLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQnVpbHRpbnMuaApAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkJ5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3lCdWlsdGlucy5oIgogI2luY2x1ZGUg
IkNvdW50UXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuaCIKICNpbmNsdWRlICJGZXRjaEhlYWRlcnNC
dWlsdGlucy5oIgorI2luY2x1ZGUgIkZldGNoUmVzcG9uc2VCdWlsdGlucy5oIgogI2luY2x1ZGUg
Ik1lZGlhRGV2aWNlc0J1aWx0aW5zLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yVXNlck1lZGlhQnVp
bHRpbnMuaCIKICNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlvbkJ1aWx0aW5zLmgiCkBAIC01MSw2
ICs1Miw3IEBAIHB1YmxpYzoKICAgICAgICAgOiB2bSh2KQogI2lmIEVOQUJMRShGRVRDSF9BUEkp
CiAgICAgICAgICwgbV9mZXRjaEhlYWRlcnNCdWlsdGlucygmdm0pCisgICAgICAgICwgbV9mZXRj
aFJlc3BvbnNlQnVpbHRpbnMoJnZtKQogI2VuZGlmCiAjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQog
ICAgICAgICAsIG1fYnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zKCZ2bSkKQEAgLTgx
LDYgKzgzLDcgQEAgcHVibGljOgogICAgIH0KICNpZiBFTkFCTEUoRkVUQ0hfQVBJKQogICAgIEZl
dGNoSGVhZGVyc0J1aWx0aW5zV3JhcHBlciYgZmV0Y2hIZWFkZXJzQnVpbHRpbnMoKSB7IHJldHVy
biBtX2ZldGNoSGVhZGVyc0J1aWx0aW5zOyB9CisgICAgRmV0Y2hSZXNwb25zZUJ1aWx0aW5zV3Jh
cHBlciYgZmV0Y2hSZXNwb25zZUJ1aWx0aW5zKCkgeyByZXR1cm4gbV9mZXRjaFJlc3BvbnNlQnVp
bHRpbnM7IH0KICNlbmRpZgogI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKICAgICBCeXRlTGVuZ3Ro
UXVldWluZ1N0cmF0ZWd5QnVpbHRpbnNXcmFwcGVyJiBieXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5
QnVpbHRpbnMoKSB7IHJldHVybiBtX2J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3lCdWlsdGluczsg
fQpAQCAtMTA0LDYgKzEwNyw3IEBAIHByaXZhdGU6CiAgICAgSlNDOjpWTSYgdm07CiAjaWYgRU5B
QkxFKEZFVENIX0FQSSkKICAgICBGZXRjaEhlYWRlcnNCdWlsdGluc1dyYXBwZXIgbV9mZXRjaEhl
YWRlcnNCdWlsdGluczsKKyAgICBGZXRjaFJlc3BvbnNlQnVpbHRpbnNXcmFwcGVyIG1fZmV0Y2hS
ZXNwb25zZUJ1aWx0aW5zOwogI2VuZGlmCiAjaWYgRU5BQkxFKFNUUkVBTVNfQVBJKQogICAgIEJ5
dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3lCdWlsdGluc1dyYXBwZXIgbV9ieXRlTGVuZ3RoUXVldWlu
Z1N0cmF0ZWd5QnVpbHRpbnM7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2E3ODIwNTI5MThhMWE3ZDUwOGViNDhhMzE3OGJi
NDMzM2FjOWFlOS4uNmE5OTY0NWIzMDk3ZDA4MWJlNDA0NzdmZWZkOTc1ZjhhYjcxMTg5NyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyIEBACisyMDE2LTAyLTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZh
YmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW0ZldGNoIEFQSV0gSW1wbGVtZW50IEZldGNo
IEFQSSBSZXNwb25zZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU0NTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkaW5nIFJlc3BvbnNlIGFzIGNvbnN0cnVjdG9yIGluIGdsb2JhbCBhbmQgd29ya2Vy
IHNjb3Blcy4KKworICAgICAgICAqIGpzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVkLXdv
cmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwt
Y29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy15b3Nl
bWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwt
Y29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorCiAyMDE2LTAyLTIyICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtZ3Jp
ZF0gU3dhcCBjb2x1bW5zIGFuZCByb3dzIGluIGdyaWQgc2hvcnRoYW5kCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCBlZmQ3NDU5ZGY1ZjlhNTMzMmIxMjNmM2ZiYjFhZGNhMDM2MWM0
Zjg3Li5mNDFmMGViNTkxZGVhN2U1OWM4ZGU3ZTlmOWVjM2IwMTMwNmE1OWM3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMSBAQAogMjAxNi0wMi0yMiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgogCisgICAgICAgIFtGZXRjaCBB
UEldIEltcGxlbWVudCBGZXRjaCBBUEkgUmVzcG9uc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDUzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0cyBjb3ZlcmluZyBmZXRjaCBBUEkuCisK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LWNsb25lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jbG9uZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2UtZXJyb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pZGwtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLWlkbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0
LTAwMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAw
Mi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGlj
LWVycm9yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLXJlZGlyZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25z
ZS1zdGF0aWMtcmVkaXJlY3QuaHRtbDogQWRkZWQuCisKKzIwMTYtMDItMjIgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKwogICAgICAgICBCaW5kaW5nIGdlbmVy
YXRvciBzaG91bGQgc3VwcG9ydCBrZXkgdmFsdWUgaXRlcmFibGUKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDQxMwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1jbG9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jbG9uZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWZhOGZhNDRkM2Y1YTk2ZDQ1Yjg0NGU1NzM3ZDJiMmFmNjRm
YzU1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNsb25lLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDcgQEAKKworUEFTUyBDaGVjayBSZXNwb25zZSdzIGNsb25lIHdpdGggZGVm
YXVsdCB2YWx1ZXMsIHdpdGhvdXQgYm9keSAKK1BBU1MgQ2hlY2sgUmVzcG9uc2UncyBjbG9uZSBo
YXMgdGhlIGV4cGVjdGVkIGF0dHJpYnV0ZSB2YWx1ZXMgCitGQUlMIENoZWNrIG9yZ2luYWwgcmVz
cG9uc2UncyBib2R5IGFmdGVyIGNsb25pbmcgbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdyZXNwb25zZS5ib2R5LmdldFJlYWRlcicpCitGQUlMIENoZWNrIGNsb25lZCByZXNwb25z
ZSdzIGJvZHkgbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdjbG9uZWRSZXNwb25z
ZS5ib2R5LmdldFJlYWRlcicpCitGQUlMIENhbm5vdCBjbG9uZSBhIGRpc3R1cmJlZCByZXNwb25z
ZSBhc3NlcnRfdHJ1ZTogcmVzcG9uc2UgaXMgZGlzdHVyYmVkIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNsb25lLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1jbG9uZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkMzIzZTY4YjRlODk3NWYwMDU2ZDJlYTM0NjBi
NzNhOWQwZTFiM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jbG9uZS5odG1s
CkBAIC0wLDAgKzEsNjYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVzcG9uc2UgY2xvbmU8L3RpdGxl
PgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cu
b3JnLyNyZXNwb25zZSI+CisgICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVz
ZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgorICAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVh
ZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91dGlscy5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgIHZhciBkZWZhdWx0VmFsdWVzID0geyAidHlwZSIg
OiAiZGVmYXVsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVybCIgOiAiIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAib2siIDogdHJ1ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAic3RhdHVzIiA6IDIwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
c3RhdHVzVGV4dCIgOiAiT0siCisgICAgICB9OworCisgICAgICB2YXIgcmVzcG9uc2UgPSBuZXcg
UmVzcG9uc2UoKTsKKyAgICAgIHZhciBjbG9uZWRSZXNwb25zZSA9IHJlc3BvbnNlLmNsb25lKCk7
CisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBmb3IgKHZhciBhdHRyaWJ1dGVOYW1l
IGluIGRlZmF1bHRWYWx1ZXMpIHsKKyAgICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gZGVm
YXVsdFZhbHVlc1thdHRyaWJ1dGVOYW1lXTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY2xv
bmVkUmVzcG9uc2VbYXR0cmlidXRlTmFtZV0sIGV4cGVjdGVkVmFsdWUsCisgICAgICAgICAgICAg
ICJFeHBlY3QgZGVmYXVsdCByZXNwb25zZS4iICsgYXR0cmlidXRlTmFtZSArICIgaXMgIiArIGV4
cGVjdGVkVmFsdWUpOworICAgICAgICB9CisgICAgICB9LCAiQ2hlY2sgUmVzcG9uc2UncyBjbG9u
ZSB3aXRoIGRlZmF1bHQgdmFsdWVzLCB3aXRob3V0IGJvZHkiKTsKKworICAgICAgdmFyIGJvZHkg
PSAiVGhpcyBpcyByZXNwb25zZSBib2R5IjsKKyAgICAgIHZhciBoZWFkZXJzSW5pdCA9IHsgIm5h
bWUiIDogInZhbHVlIiB9OworICAgICAgdmFyIHJlc3BvbnNlSW5pdCAgPSB7ICJzdGF0dXMiIDog
MjAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXNUZXh0IiA6ICJHT09EIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGVhZGVycyIgOiBoZWFkZXJzSW5pdAorICAg
ICAgfTsKKyAgICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZShib2R5LCByZXNwb25zZUlu
aXQpOworICAgICAgdmFyIGNsb25lZFJlc3BvbnNlID0gcmVzcG9uc2UuY2xvbmUoKTsKKyAgICAg
IHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoY2xvbmVkUmVzcG9uc2Uu
c3RhdHVzLCByZXNwb25zZUluaXRbInN0YXR1cyJdLAorICAgICAgICAgICJFeHBlY3QgcmVzcG9u
c2Uuc3RhdHVzIGlzICIgKyByZXNwb25zZUluaXRbInN0YXR1cyJdKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhjbG9uZWRSZXNwb25zZS5zdGF0dXNUZXh0LCByZXNwb25zZUluaXRbInN0YXR1c1Rl
eHQiXSwKKyAgICAgICAgICAiRXhwZWN0IHJlc3BvbnNlLnN0YXR1c1RleHQgaXMgIiArIHJlc3Bv
bnNlSW5pdFsic3RhdHVzVGV4dCJdKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5o
ZWFkZXJzLmdldCgibmFtZSIpLCAidmFsdWUiLAorICAgICAgICAgICJFeHBlY3QgcmVzcG9uc2Uu
aGVhZGVycyBoYXMgbmFtZTp2YWx1ZSBoZWFkZXIiKTsKKyAgICAgIH0sICJDaGVjayBSZXNwb25z
ZSdzIGNsb25lIGhhcyB0aGUgZXhwZWN0ZWQgYXR0cmlidXRlIHZhbHVlcyIpOworCisgICAgICBh
c3luY190ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICAgICAgcmVhZFRleHRTdHJlYW0ocmVzcG9u
c2UuYm9keS5nZXRSZWFkZXIoKSwgdGVzdCwgYm9keSk7CisgICAgICB9LCAiQ2hlY2sgb3JnaW5h
bCByZXNwb25zZSdzIGJvZHkgYWZ0ZXIgY2xvbmluZyIpOworCisgICAgICBhc3luY190ZXN0KGZ1
bmN0aW9uKHRlc3QpIHsKKyAgICAgICAgcmVhZFRleHRTdHJlYW0oY2xvbmVkUmVzcG9uc2UuYm9k
eS5nZXRSZWFkZXIoKSwgdGVzdCwgYm9keSk7CisgICAgICB9LCAiQ2hlY2sgY2xvbmVkIHJlc3Bv
bnNlJ3MgYm9keSIpOworCisgICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAg
ICAgICB2YXIgZGlzdHVyYmVkUmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKTsKKyAgICAgICAgcmV0
dXJuIGRpc3R1cmJlZFJlc3BvbnNlLnRleHQoKS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoZGlzdHVyYmVkUmVzcG9uc2UuYm9keVVzZWQsICJyZXNwb25zZSBpcyBk
aXN0dXJiZWQiKTsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpICwg
ZnVuY3Rpb24oKSB7IGRpc3R1cmJlZFJlc3BvbnNlLmNsb25lKCk7IH0sCisgICAgICAgICAgICAg
ICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAgICB9KTsKKyAgICAgIH0sICJD
YW5ub3QgY2xvbmUgYSBkaXN0dXJiZWQgcmVzcG9uc2UiKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NmM4Zjg2NzJiMTA5NmY2ZjY0YmUyYTE0OWYxNmY4Y2JhN2ZmOGE5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisK
K1BBU1MgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMgdGV4dCAKK0ZBSUwgQ29uc3VtZSByZXNw
b25zZSdzIGJvZHkgYXMgYmxvYiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogdW5kZWZpbmVkCitGQUlMIENvbnN1bWUgcmVzcG9uc2UncyBib2R5IGFzIGFycmF5
QnVmZmVyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBUZXh0RGVjb2RlciIKK1BB
U1MgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMganNvbiAKK0ZBSUwgQ29uc3VtZSByZXNwb25z
ZSdzIGJvZHkgYXMgZm9ybURhdGEgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IHVuZGVmaW5lZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRlMDMyMTY1
ZWI4OGU0MmFhYTlmMDg2MDZmNWFhZTEzZmQ5NzM0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNl
L3Jlc3BvbnNlLWNvbnN1bWUuaHRtbApAQCAtMCwwICsxLDgyIEBACis8IWRvY3R5cGUgaHRtbD4K
KzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxl
PlJlc3BvbnNlIGNvbnN1bWU8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXNwb25zZSI+CisgICAgPG1ldGEgbmFtZT0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2JvZHktbWl4aW4iPgor
ICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJl
Zj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAg
IDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gY2hlY2tCb2R5VGV4dChyZXNwb25zZSwgZXhwZWN0ZWRC
b2R5KSB7CisgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oIGZ1bmN0aW9uKGJvZHlB
c1RleHQpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhib2R5QXNUZXh0LCBleHBlY3RlZEJvZHks
ICJSZXRyaWV2ZSBhbmQgdmVyaWZ5IHJlc3BvbnNlJ3MgYm9keSIpOworICAgICAgICBhc3NlcnRf
dHJ1ZShyZXNwb25zZS5ib2R5VXNlZCA9PT0gdHJ1ZSwgImJvZHkgYXMgdGV4dDogYm9keVVzZWQg
dHVybmVkIHRydWUiKTsKKyAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQm9k
eUJsb2IocmVzcG9uc2UsIGV4cGVjdGVkQm9keSkgeworICAgICAgcmV0dXJuIHJlc3BvbnNlLmJs
b2IoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0Jsb2IpIHsKKyAgICAgICAgdmFyIHByb21pc2UgPSBu
ZXcgUHJvbWlzZSggZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgIHZhciBy
ZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5j
dGlvbihldnQpIHsKKyAgICAgICAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdCkKKyAgICAgICAg
ICB9OworICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgcmVqZWN0KCJCbG9iJ3MgcmVhZGVyIGZhaWxlZCIpOworICAgICAgICAgIH07CisgICAgICAg
ICAgcmVhZGVyLnJlYWRBc1RleHQoYm9keUFzQmxvYik7CisgICAgICAgIH0pOworICAgICAgICBy
ZXR1cm4gcHJvbWlzZS50aGVuKGZ1bmN0aW9uKGJvZHkpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGJvZHksIGV4cGVjdGVkQm9keSwgIlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVzcG9uc2UncyBi
b2R5Iik7CisgICAgICAgICAgYXNzZXJ0X3RydWUocmVzcG9uc2UuYm9keVVzZWQgPT09IHRydWUs
ICJib2R5IGFzIGJsb2I6IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7CisgICAgICAgIH0pOworICAg
ICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tCb2R5QXJyYXlCdWZmZXIocmVzcG9u
c2UsIGV4cGVjdGVkQm9keSkgeworICAgICAgcmV0dXJuIHJlc3BvbnNlLmFycmF5QnVmZmVyKCku
dGhlbiggZnVuY3Rpb24oYm9keUFzQXJyYXlCdWZmZXIpIHsKKyAgICAgICAgdmFyIGRlY29kZXIg
PSBuZXcgVGV4dERlY29kZXIoInV0Zi04Iik7CisgICAgICAgIHZhciBzdHJCb2R5ID0gZGVjb2Rl
ci5kZWNvZGUoYm9keUFzQXJyYXlCdWZmZXIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHN0ckJv
ZHksIGV4cGVjdGVkQm9keSwgIlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVzcG9uc2UncyBib2R5Iik7
CisgICAgICAgIGFzc2VydF90cnVlKHJlc3BvbnNlLmJvZHlVc2VkID09PSB0cnVlLCAiYm9keSBh
cyBhcnJheUJ1ZmZlcjogYm9keVVzZWQgdHVybmVkIHRydWUiKTsKKyAgICAgIH0pOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGNoZWNrQm9keUpzb24ocmVzcG9uc2UsIGV4cGVjdGVkQm9keSkgewor
ICAgICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKS50aGVuKGZ1bmN0aW9uKGJvZHlBc0pzb24pIHsK
KyAgICAgICAgdmFyIHN0ckJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5QXNKc29uKQorICAgICAg
ICBhc3NlcnRfZXF1YWxzKHN0ckJvZHksIGV4cGVjdGVkQm9keSwgIlJldHJpZXZlIGFuZCB2ZXJp
ZnkgcmVzcG9uc2UncyBib2R5Iik7CisgICAgICAgIGFzc2VydF90cnVlKHJlc3BvbnNlLmJvZHlV
c2VkID09PSB0cnVlLCAiYm9keSBhcyBqc29uOiBib2R5VXNlZCB0dXJuZWQgdHJ1ZSIpOworICAg
ICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tCb2R5Rm9ybURhdGEocmVzcG9uc2Us
IGV4cGVjdGVkQm9keSkgeworICAgICAgcmV0dXJuIHJlc3BvbnNlLmZvcm1EYXRhKCkudGhlbihm
dW5jdGlvbihib2R5QXNGb3JtRGF0YSkgeworICAgICAgICBmb3IgKHZhciBuYW1lIG9mIGV4cGVj
dGVkQm9keS5rZXlzKCkpCisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhib2R5QXNGb3JtRGF0YS5n
ZXQobmFtZSksIGV4cGVjdGVkQm9keS5nZXQobmFtZSkgLCAiUmV0cmlldmUgYW5kIHZlcmlmeSBy
ZXNwb25zZSdzIGJvZHkiICk7CisgICAgICAgIGFzc2VydF90cnVlKHJlc3BvbnNlLmJvZHlVc2Vk
ID09PSB0cnVlLCAiYm9keSBhcyBmb3JtRGF0YTogYm9keVVzZWQgdHVybmVkIHRydWUiKTsKKyAg
ICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tSZXNwb25zZUJvZHkoYm9keSwgYm9k
eVR5cGUsIGNoZWNrRnVuY3Rpb24pIHsKKyAgICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0
KSB7CisgICAgICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZShib2R5KTsKKyAgICAgICAg
YXNzZXJ0X3RydWUocmVzcG9uc2UuYm9keVVzZWQgPT09IGZhbHNlLCAiYm9keVVzZWQgaXMgZmFs
c2UgYXQgaW5pdCIpOworICAgICAgICByZXR1cm4gY2hlY2tGdW5jdGlvbihyZXNwb25zZSwgYm9k
eSk7CisgICAgICB9LCAiQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMgIiArIGJvZHlUeXBlKTsK
KyAgICB9CisKKyAgICB2YXIgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsKKyAgICBmb3JtRGF0
YS5hcHBlbmQoIm5hbWUiLCAidmFsdWUiKQorICAgIGNoZWNrUmVzcG9uc2VCb2R5KCJUaGlzIGlz
IHJlc3BvbnNlJ3MgYm9keSIsICJ0ZXh0IiwgY2hlY2tCb2R5VGV4dCk7CisgICAgY2hlY2tSZXNw
b25zZUJvZHkoIlRoaXMgaXMgcmVzcG9uc2UncyBib2R5IiwgImJsb2IiLCBjaGVja0JvZHlCbG9i
KTsKKyAgICBjaGVja1Jlc3BvbnNlQm9keSgiVGhpcyBpcyByZXNwb25zZSdzIGJvZHkiLCAiYXJy
YXlCdWZmZXIiLCBjaGVja0JvZHlBcnJheUJ1ZmZlcik7CisgICAgY2hlY2tSZXNwb25zZUJvZHko
SlNPTi5zdHJpbmdpZnkoIlRoaXMgaXMgcmVzcG9uc2UncyBib2R5IiksICJqc29uIiwgY2hlY2tC
b2R5SnNvbik7CisgICAgY2hlY2tSZXNwb25zZUJvZHkoZm9ybURhdGEsICJmb3JtRGF0YSIsIGNo
ZWNrQm9keUZvcm1EYXRhKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9y
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NWM1NzEwMjJkNzg2MTM3NDk2Y2VjNmExNzg4YWY5M2RkYmVlYmM0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBA
QAorCitQQVNTIFRocm93cyBSYW5nZUVycm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVzIGlz
IGludmFsaWQgCitGQUlMIFRocm93cyBUeXBlRXJyb3Igd2hlbiByZXNwb25zZUluaXQncyBzdGF0
dXNUZXh0IGlzIGludmFsaWQgYXNzZXJ0X3Rocm93czogRXhwZWN0IFR5cGVFcnJvciBleGNlcHRp
b24gCisgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgbmV3IFJlc3BvbnNlKCIiLCB7ICJzdGF0dXNU
ZXh0IiA6IHN0YXR1c1RleC4uLiIgZGlkIG5vdCB0aHJvdworUEFTUyBUaHJvd3MgVHlwZUVycm9y
IHdoZW4gYnVpbGRpbmcgYSByZXNwb25zZSB3aXRoIGJvZHkgYW5kIGEgbnVsbCBib2R5IHN0YXR1
cyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3IuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLWVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTMwMjQ1MjgwODFkZDA1NGJjNDAwMWQwNzkxMzA3
MDc1YTYwMDMxYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLmh0bWwK
QEAgLTAsMCArMSwzOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAg
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5SZXNwb25zZSBlcnJvcjwvdGl0bGU+
CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5v
cmcvI3Jlc3BvbnNlIj4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNl
YXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+CisgICAgPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFk
PgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAg
ICAgdmFyIGludmFsaWRTdGF0dXMgPSBbMCwgMTAwLCAxOTksIDYwMCwgMTAwMF07CisgICAgICAg
IGludmFsaWRTdGF0dXMuZm9yRWFjaChmdW5jdGlvbihzdGF0dXMpIHsKKyAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKG5ldyBSYW5nZUVycm9yKCkgLCBmdW5jdGlvbigpIHsgbmV3IFJlc3BvbnNlKCIi
LCB7ICJzdGF0dXMiIDogc3RhdHVzIH0pOyB9LAorICAgICAgICAgICAgIkV4cGVjdCBSYW5nZUVy
cm9yIGV4Y2VwdGlvbiB3aGVuIHN0YXR1cyBpcyAiICsgc3RhdHVzKTsKKyAgICAgICAgfSk7Cisg
ICAgICB9LCJUaHJvd3MgUmFuZ2VFcnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1cyBpcyBp
bnZhbGlkIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBpbnZhbGlk
U3RhdHVzVGV4dCA9IFsiXG4iLCAixIAiXTsKKyAgICAgICAgaW52YWxpZFN0YXR1c1RleHQuZm9y
RWFjaChmdW5jdGlvbihzdGF0dXNUZXh0KSB7CisgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcg
VHlwZUVycm9yKCkgLCBmdW5jdGlvbigpIHsgbmV3IFJlc3BvbnNlKCIiLCB7ICJzdGF0dXNUZXh0
IiA6IHN0YXR1c1RleHQgfSk7IH0sCisgICAgICAgICAgICAiRXhwZWN0IFR5cGVFcnJvciBleGNl
cHRpb24gIiArIHN0YXR1c1RleHQpOworICAgICAgICB9KTsKKyAgICAgIH0sIlRocm93cyBUeXBl
RXJyb3Igd2hlbiByZXNwb25zZUluaXQncyBzdGF0dXNUZXh0IGlzIGludmFsaWQiKTsKKworICAg
ICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIG51bGxCb2R5U3RhdHVzID0gWzIwNCwg
MjA1LCAzMDRdOworICAgICAgICBudWxsQm9keVN0YXR1cy5mb3JFYWNoKGZ1bmN0aW9uKHN0YXR1
cykgeworICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpICwKKyAgICAgICAg
ICAgIGZ1bmN0aW9uKCkgeyBuZXcgUmVzcG9uc2UoImJvZHkiLCB7ICJzdGF0dXMiIDogc3RhdHVz
IH0pOyB9LAorICAgICAgICAgICAgIkV4cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uICIpOworICAg
ICAgICB9KTsKKyAgICAgIH0sIlRocm93cyBUeXBlRXJyb3Igd2hlbiBidWlsZGluZyBhIHJlc3Bv
bnNlIHdpdGggYm9keSBhbmQgYSBudWxsIGJvZHkgc3RhdHVzIik7CisgICAgPC9zY3JpcHQ+Cisg
IDwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1pZGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaWRsLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzAzN2EwMjFlMzBkOTA5NDljYjgyZTY4Y2E4MzAzOGRh
YjY1YzI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaWRsLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQ3IEBACisKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKK1BBU1MgUmVzcG9uc2UgaW50ZXJm
YWNlIG9iamVjdCBsZW5ndGggCitQQVNTIFJlc3BvbnNlIGludGVyZmFjZSBvYmplY3QgbmFtZSAK
K1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50
ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgCitQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0
cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBvcGVyYXRpb24gZXJy
b3IoKSAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVkaXJlY3QoVVNWU3Ry
aW5nLHVuc2lnbmVkIHNob3J0KSAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
dHlwZSAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdXJsIAorUEFTUyBSZXNw
b25zZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzdGF0dXMgCitQQVNTIFJlc3BvbnNlIGludGVyZmFj
ZTogYXR0cmlidXRlIG9rIAorUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzdGF0
dXNUZXh0IAorUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBoZWFkZXJzIAorUEFT
UyBSZXNwb25zZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBib2R5IAorUEFTUyBSZXNwb25zZSBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBjbG9uZSgpIAorUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBib2R5VXNlZCAKK0ZBSUwgUmVzcG9uc2UgaW50ZXJmYWNlOiBvcGVyYXRpb24gYXJyYXlC
dWZmZXIoKSBhc3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9wZXJhdGlvbiB3aXRoIHRoaXMgPSBudWxs
IGRpZG4ndCB0aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3RbbWVtYmVyLm4uLi4iIGRpZCBub3QgdGhyb3cKK0ZB
SUwgUmVzcG9uc2UgaW50ZXJmYWNlOiBvcGVyYXRpb24gYmxvYigpIGFzc2VydF90aHJvd3M6IGNh
bGxpbmcgb3BlcmF0aW9uIHdpdGggdGhpcyA9IG51bGwgZGlkbid0IHRocm93IFR5cGVFcnJvciBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIG1lbWJlckhvbGRlck9iamVj
dFttZW1iZXIubi4uLiIgZGlkIG5vdCB0aHJvdworRkFJTCBSZXNwb25zZSBpbnRlcmZhY2U6IG9w
ZXJhdGlvbiBmb3JtRGF0YSgpIGFzc2VydF90aHJvd3M6IGNhbGxpbmcgb3BlcmF0aW9uIHdpdGgg
dGhpcyA9IG51bGwgZGlkbid0IHRocm93IFR5cGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgIG1lbWJlckhvbGRlck9iamVjdFttZW1iZXIubi4uLiIgZGlkIG5v
dCB0aHJvdworRkFJTCBSZXNwb25zZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiBqc29uKCkgYXNzZXJ0
X3Rocm93czogY2FsbGluZyBvcGVyYXRpb24gd2l0aCB0aGlzID0gbnVsbCBkaWRuJ3QgdGhyb3cg
VHlwZUVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgbWVtYmVy
SG9sZGVyT2JqZWN0W21lbWJlci5uLi4uIiBkaWQgbm90IHRocm93CitGQUlMIFJlc3BvbnNlIGlu
dGVyZmFjZTogb3BlcmF0aW9uIHRleHQoKSBhc3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9wZXJhdGlv
biB3aXRoIHRoaXMgPSBudWxsIGRpZG4ndCB0aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3RbbWVtYmVyLm4uLi4i
IGRpZCBub3QgdGhyb3cKK1BBU1MgUmVzcG9uc2UgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBv
ZiBuZXcgUmVzcG9uc2UoKSAKK1BBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBSZXNwb25zZSgp
IAorUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBSZXNwb25zZSgpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiZXJyb3IiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAKK1BBU1MgUmVzcG9uc2Ug
aW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlZGlyZWN0
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMSkgCitQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogY2Fs
bGluZyByZWRpcmVjdChVU1ZTdHJpbmcsdW5zaWduZWQgc2hvcnQpIG9uIG5ldyBSZXNwb25zZSgp
IHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IgCitQQVNTIFJlc3Bv
bnNlIGludGVyZmFjZTogbmV3IFJlc3BvbnNlKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0eXBl
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMikgCitQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogbmV3
IFJlc3BvbnNlKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ1cmwiIHdpdGggdGhlIHByb3BlciB0
eXBlICgzKSAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgInN0YXR1cyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQpIAorUEFTUyBS
ZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBSZXNwb25zZSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
b2siIHdpdGggdGhlIHByb3BlciB0eXBlICg1KSAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBu
ZXcgUmVzcG9uc2UoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInN0YXR1c1RleHQiIHdpdGggdGhl
IHByb3BlciB0eXBlICg2KSAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9uc2Uo
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImhlYWRlcnMiIHdpdGggdGhlIHByb3BlciB0eXBlICg3
KSAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImJvZHkiIHdpdGggdGhlIHByb3BlciB0eXBlICg4KSAKK1BBU1MgUmVzcG9uc2Ug
aW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNsb25lIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAoOSkgCitQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogbmV3IFJl
c3BvbnNlKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJib2R5VXNlZCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgKDEwKSAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgImFycmF5QnVmZmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTEp
IAorUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBSZXNwb25zZSgpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiYmxvYiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDEyKSAKK1BBU1MgUmVzcG9uc2Ug
aW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImZvcm1EYXRh
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTMpIAorUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IG5l
dyBSZXNwb25zZSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAianNvbiIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgKDE0KSAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0
IGluaGVyaXQgcHJvcGVydHkgInRleHQiIHdpdGggdGhlIHByb3BlciB0eXBlICgxNSkgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWlkbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaWRsLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzlkZGY3NWNiMjA1NTIxZGQ3ZmUxMjQ2OGNjZTE3NTAwODkzYzFkMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWlkbC5odG1sCkBAIC0wLDAgKzEsNjkg
QEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVzcG9uc2UgaWRsIGludGVyZmFjZTwvdGl0bGU+CisgICAg
PG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3Jl
c3BvbnNlIj4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBG
cmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL2lkbGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5
PgorICAgIDxzY3JpcHQgaWQ9ImJvZHktaWRsIiB0eXBlPSJ0ZXh0L3BsYWluIj4KKyAgICAgIHR5
cGVkZWYgYW55IEpTT047CisgICAgICB0eXBlZGVmIChCbG9iIG9yIEJ1ZmZlclNvdXJjZSBvciBG
b3JtRGF0YSBvciBVUkxTZWFyY2hQYXJhbXMgb3IgVVNWU3RyaW5nKSBCb2R5SW5pdDsKKworICAg
ICAgW05vSW50ZXJmYWNlT2JqZWN0LAorICAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCisg
ICAgICBpbnRlcmZhY2UgQm9keSB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
IGJvZHlVc2VkOworICAgICAgICBbTmV3T2JqZWN0XSBQcm9taXNlPEFycmF5QnVmZmVyPiBhcnJh
eUJ1ZmZlcigpOworICAgICAgICBbTmV3T2JqZWN0XSBQcm9taXNlPEJsb2I+IGJsb2IoKTsKKyAg
ICAgICAgW05ld09iamVjdF0gUHJvbWlzZTxGb3JtRGF0YT4gZm9ybURhdGEoKTsKKyAgICAgICAg
W05ld09iamVjdF0gUHJvbWlzZTxKU09OPiBqc29uKCk7CisgICAgICAgIFtOZXdPYmplY3RdIFBy
b21pc2U8VVNWU3RyaW5nPiB0ZXh0KCk7CisgICAgICB9OworICAgIDwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgaWQ9InJlc3BvbnNlLWlkbCIgdHlwZT0idGV4dC9wbGFpbiI+CisgICAgICBbQ29uc3Ry
dWN0b3Iob3B0aW9uYWwgQm9keUluaXQgYm9keSwgb3B0aW9uYWwgUmVzcG9uc2VJbml0IGluaXQp
LAorICAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCisgICAgICBpbnRlcmZhY2UgUmVzcG9u
c2UgeworICAgICAgICBbTmV3T2JqZWN0XSBzdGF0aWMgUmVzcG9uc2UgZXJyb3IoKTsKKyAgICAg
ICAgW05ld09iamVjdF0gc3RhdGljIFJlc3BvbnNlIHJlZGlyZWN0KFVTVlN0cmluZyB1cmwsIG9w
dGlvbmFsIHVuc2lnbmVkIHNob3J0IHN0YXR1cyA9IDMwMik7CisKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFJlc3BvbnNlVHlwZSB0eXBlOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBVU1ZTdHJpbmcgdXJsOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hv
cnQgc3RhdHVzOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvazsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEJ5dGVTdHJpbmcgc3RhdHVzVGV4dDsKKyAgICAgICAgW1Nh
bWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBIZWFkZXJzIGhlYWRlcnM7CisgICAgICAgIFtT
YW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgUmVhZGFibGVTdHJlYW0gYm9keTsKKworICAg
ICAgICBbTmV3T2JqZWN0XSBSZXNwb25zZSBjbG9uZSgpOworICAgICAgfTsKKyAgICAgIFJlc3Bv
bnNlIGltcGxlbWVudHMgQm9keTsKKworICAgICAgZGljdGlvbmFyeSBSZXNwb25zZUluaXQgewor
ICAgICAgICB1bnNpZ25lZCBzaG9ydCBzdGF0dXMgPSAyMDA7CisgICAgICAgIEJ5dGVTdHJpbmcg
c3RhdHVzVGV4dCA9ICJPSyI7CisgICAgICAgIEhlYWRlcnNJbml0IGhlYWRlcnM7CisgICAgICB9
OworCisgICAgICBlbnVtIFJlc3BvbnNlVHlwZSB7ICJiYXNpYyIsICJjb3JzIiwgImRlZmF1bHQi
LCAiZXJyb3IiLCAib3BhcXVlIiwgIm9wYXF1ZXJlZGlyZWN0IiB9OworICAgIDwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQ+CisgICAgICB2YXIgaWRsc0FycmF5ID0gbmV3IElkbEFycmF5KCk7CisgICAg
ICB2YXIgaWRsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHktaWRsIikuaW5uZXJIVE1M
CisgICAgICBpZGwgKz0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3BvbnNlLWlkbCIpLmlu
bmVySFRNTAorCisgICAgICBpZGxzQXJyYXkuYWRkX2lkbHMoaWRsKTsKKyAgICAgIGlkbHNBcnJh
eS5hZGRfdW50ZXN0ZWRfaWRscygiaW50ZXJmYWNlIEhlYWRlcnMge307Iik7CisgICAgICBpZGxz
QXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoImludGVyZmFjZSBSZWFkYWJsZVN0cmVhbSB7fTsiKTsK
KyAgICAgIGlkbHNBcnJheS5hZGRfb2JqZWN0cyh7IFJlc3BvbnNlOiBbJ25ldyBSZXNwb25zZSgp
J10gfSk7CisgICAgICBpZGxzQXJyYXkudGVzdCgpOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2UtaW5pdC0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDEt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZGU0MDUzODBmZTlkODUxOWRiM2VmY2I4MDE5YmFi
ZTI5NDY5ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCitQQVNTIENoZWNrIGRlZmF1bHQgdmFsdWUgZm9y
IHR5cGUgYXR0cmlidXRlIAorUEFTUyBDaGVjayBkZWZhdWx0IHZhbHVlIGZvciB1cmwgYXR0cmli
dXRlIAorUEFTUyBDaGVjayBkZWZhdWx0IHZhbHVlIGZvciBvayBhdHRyaWJ1dGUgCitQQVNTIENo
ZWNrIGRlZmF1bHQgdmFsdWUgZm9yIHN0YXR1cyBhdHRyaWJ1dGUgCitQQVNTIENoZWNrIGRlZmF1
bHQgdmFsdWUgZm9yIHN0YXR1c1RleHQgYXR0cmlidXRlIAorUEFTUyBDaGVjayBkZWZhdWx0IHZh
bHVlIGZvciBib2R5IGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgc3RhdHVzIGluaXQgdmFsdWVzIGFu
ZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgc3RhdHVzVGV4dCBpbml0IHZhbHVlcyBh
bmQgYXNzb2NpYXRlZCBnZXR0ZXIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQt
MDAxLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzNmY5
MGU0YzgyNzk4MTMwN2UyNDM0NDZlMjQ0OGQxYmMzMTk5ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1pbml0LTAwMS5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8
dGl0bGU+UmVzcG9uc2UgaW5pdDogc2ltcGxlIGNhc2VzPC90aXRsZT4KKyAgICA8bWV0YSBuYW1l
PSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVzcG9uc2UiPgor
ICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3Jn
LyNjb25jZXB0LXJlc3BvbnNlIj4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5v
biBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+CisgICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAg
PC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgdmFyIGRlZmF1bHRWYWx1ZXMg
PSB7ICJ0eXBlIiA6ICJkZWZhdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidXJs
IiA6ICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvayIgOiB0cnVlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiIDogMjAwLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdGF0dXNUZXh0IiA6ICJPSyIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImJvZHkiIDogbnVsbAorICAgICAgfTsKKworICAgICAgdmFyIHN0YXR1c0NvZGVzID0geyAi
Z2l2ZW5WYWx1ZXMiIDogWzIwMCwgMzAwLCA0MDAsIDUwMCwgNTk5XSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgImV4cGVjdGVkVmFsdWVzIiA6IFsyMDAsIDMwMCwgNDAwLCA1MDAsIDU5OV0KKyAg
ICAgIH07CisgICAgICB2YXIgc3RhdHVzVGV4dHMgPSB7ICJnaXZlblZhbHVlcyIgOiBbIk9LIiwg
IndpdGggc3BhY2UiLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ODApXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgImV4cGVjdGVkVmFsdWVzIiA6IFsiT0siLCAid2l0aCBzcGFjZSIsIFN0cmluZy5m
cm9tQ2hhckNvZGUoMHg4MCldCisgICAgICB9OworICAgICAgdmFyIGluaXRWYWx1ZXNEaWN0ID0g
eyAic3RhdHVzIiA6IHN0YXR1c0NvZGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
c3RhdHVzVGV4dCIgOiBzdGF0dXNUZXh0cworICAgICAgfTsKKworICAgICAgZnVuY3Rpb24gaXNP
a1N0YXR1cyhzdGF0dXMpIHsKKyAgICAgICAgcmV0dXJuIDIwMCA8PSBzdGF0dXMgJiYgIDI5OSA+
PSBzdGF0dXM7CisgICAgICB9CisKKyAgICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZSgp
OworICAgICAgZm9yICh2YXIgYXR0cmlidXRlTmFtZSBpbiBkZWZhdWx0VmFsdWVzKSB7CisgICAg
ICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSBkZWZh
dWx0VmFsdWVzW2F0dHJpYnV0ZU5hbWVdOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9u
c2VbYXR0cmlidXRlTmFtZV0sIGV4cGVjdGVkVmFsdWUsCisgICAgICAgICAgICAiRXhwZWN0IGRl
ZmF1bHQgcmVzcG9uc2UuIiArIGF0dHJpYnV0ZU5hbWUgKyAiIGlzICIgKyBleHBlY3RlZFZhbHVl
KTsKKyAgICAgICAgfSwgIkNoZWNrIGRlZmF1bHQgdmFsdWUgZm9yICIgKyBhdHRyaWJ1dGVOYW1l
ICsgIiBhdHRyaWJ1dGUiKTsKKyAgICAgIH0KKworICAgICAgZm9yICh2YXIgYXR0cmlidXRlTmFt
ZSBpbiBpbml0VmFsdWVzRGljdCkKKyAgICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAg
ICB2YXIgdmFsdWVzVG9UZXN0ID0gaW5pdFZhbHVlc0RpY3RbYXR0cmlidXRlTmFtZV07CisgICAg
ICAgICAgZm9yICh2YXIgdmFsdWVJZHggaW4gdmFsdWVzVG9UZXN0WyJnaXZlblZhbHVlcyJdKSB7
CisgICAgICAgICAgICB2YXIgZ2l2ZW5WYWx1ZSA9IHZhbHVlc1RvVGVzdFsiZ2l2ZW5WYWx1ZXMi
XVt2YWx1ZUlkeF07CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IHZhbHVlc1RvVGVz
dFsiZXhwZWN0ZWRWYWx1ZXMiXVt2YWx1ZUlkeF07CisgICAgICAgICAgICB2YXIgcmVzcG9uc2VJ
bml0ID0ge307CisgICAgICAgICAgICByZXNwb25zZUluaXRbYXR0cmlidXRlTmFtZV0gPSBnaXZl
blZhbHVlOworICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCIiLCByZXNw
b25zZUluaXQpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZVthdHRyaWJ1dGVO
YW1lXSwgZXhwZWN0ZWRWYWx1ZSwKKyAgICAgICAgICAgICAgIkV4cGVjdCByZXNwb25zZS4iICsg
YXR0cmlidXRlTmFtZSArICIgaXMgIiArIGV4cGVjdGVkVmFsdWUgKworICAgICAgICAgICAgICAi
IHdoZW4gaW5pdGlhbGl6ZWQgd2l0aCAiICsgZ2l2ZW5WYWx1ZSk7CisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlc3BvbnNlLm9rLCBpc09rU3RhdHVzKHJlc3BvbnNlLnN0YXR1cyksCisgICAg
ICAgICAgICAgICJFeHBlY3QgcmVzcG9uc2Uub2sgaXMgIiArIGlzT2tTdGF0dXMocmVzcG9uc2Uu
c3RhdHVzKSk7CisgICAgICAgICAgfQorICAgICAgICB9LCAiQ2hlY2sgIiArIGF0dHJpYnV0ZU5h
bWUgKyAiIGluaXQgdmFsdWVzIGFuZCBhc3NvY2lhdGVkIGdldHRlciIpOworICAgIDwvc2NyaXB0
PgorICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtaW5pdC0wMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiNjBlZTE2ZWQwNzNjNWEyMjY2
OWVjNjBjYTk4MTMwZGY5NjBjODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1p
bml0LTAwMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisKK1BBU1MgSW5pdGlhbGl6ZSBS
ZXNwb25zZSB3aXRoIGhlYWRlcnMgdmFsdWVzIAorRkFJTCBJbml0aWFsaXplIFJlc3BvbnNlJ3Mg
Ym9keSB3aXRoIGFwcGxpY2F0aW9uL29jdGV0LWJpbmFyeSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCitGQUlMIEluaXRpYWxpemUgUmVzcG9u
c2UncyBib2R5IHdpdGggbXVsdGlwYXJ0L2Zvcm0tZGF0YSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCitGQUlMIEluaXRpYWxpemUgUmVzcG9u
c2UncyBib2R5IHdpdGggYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9
VVRGLTggYXNzZXJ0X3RydWU6IENvbnRlbnQtVHlwZSBoZWFkZXIgc2hvdWxkIGJlICJhcHBsaWNh
dGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIgIGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitQQVNTIEluaXRpYWxpemUgUmVzcG9uc2UncyBib2R5IHdpdGggdGV4dC9wbGFp
bjtjaGFyc2V0PVVURi04IAorRkFJTCBSZWFkIFJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0
cmVhbSBudWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3Jlc3BvbnNlLmJvZHkuZ2V0
UmVhZGVyJykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDIuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3Bv
bnNlL3Jlc3BvbnNlLWluaXQtMDAyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJhZjdmYjM1NWJiOTEyMTJj
MzQ2ZTAxOGFlMzVmOWU3ZWQ4YWFkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LWluaXQtMDAyLmh0bWwKQEAgLTAsMCArMSw2MiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4K
KyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5SZXNwb25z
ZSBpbml0OiBib2R5IGFuZCBoZWFkZXJzPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBo
cmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVzcG9uc2UiPgorICAgIDxtZXRh
IG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0
LXJlc3BvbnNlIj4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJj
aCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+CisgICAgPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgor
ICA8Ym9keT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3V0aWxzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0PgorICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGhl
YWRlckRpY3QgPSB7Im5hbWUxIjogInZhbHVlMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICJuYW1lMiI6ICJ2YWx1ZTIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZTMiOiAi
dmFsdWUzIgorICAgICAgICB9OworICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGhl
YWRlckRpY3QpOworICAgICAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoIiIsIHsgImhl
YWRlcnMiIDogaGVhZGVycyB9KQorICAgICAgICBmb3IgKHZhciBuYW1lIGluIGhlYWRlckRpY3Qp
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KG5hbWUpLCBo
ZWFkZXJEaWN0W25hbWVdLAorICAgICAgICAgICAicmVzcG9uc2UncyBoZWFkZXJzIGhhcyAiICsg
bmFtZSArICIgOiAiICsgaGVhZGVyRGljdFtuYW1lXSk7CisgICAgICAgIH0KKyAgICAgIH0sICJJ
bml0aWFsaXplIFJlc3BvbnNlIHdpdGggaGVhZGVycyB2YWx1ZXMiKTsKKworICAgICAgZnVuY3Rp
b24gY2hlY2tSZXNwb25zZUluaXQoYm9keSwgYm9keVR5cGUsIGV4cGVjdGVkVGV4dEJvZHkpIHsK
KyAgICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICAgICAgICB2YXIgcmVz
cG9uc2UgPSBuZXcgUmVzcG9uc2UoYm9keSk7CisgICAgICAgICAgdmFyIHJlc0hlYWRlcnMgPSBy
ZXNwb25zZS5oZWFkZXJzOworICAgICAgICAgIHZhciBtaW1lID0gcmVzSGVhZGVycy5nZXQoIkNv
bnRlbnQtVHlwZSIpOworICAgICAgICAgIGFzc2VydF90cnVlKG1pbWUgJiYgbWltZS5zZWFyY2go
Ym9keVR5cGUpID4gLTEsICJDb250ZW50LVR5cGUgaGVhZGVyIHNob3VsZCBiZSBcIiIgKyBib2R5
VHlwZSArICJcIiAiKTsKKyAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4oZnVu
Y3Rpb24oYm9keUFzVGV4dCkgeworICAgICAgICAgICAgLy9ub3QgZXF1YWxzOiBjYW5ub3QgZ3Vl
c3MgZm9ybURhdGEgZXhhY3QgdmFsdWUKKyAgICAgICAgICAgIGFzc2VydF90cnVlKCBib2R5QXNU
ZXh0LnNlYXJjaChleHBlY3RlZFRleHRCb2R5KSA+IC0xLCAiUmV0cmlldmUgYW5kIHZlcmlmeSBy
ZXNwb25zZSBib2R5Iik7CisgICAgICAgICAgfSk7CisgICAgICAgIH0sICJJbml0aWFsaXplIFJl
c3BvbnNlJ3MgYm9keSB3aXRoICIgKyBib2R5VHlwZSk7CisgICAgICB9CisKKyAgICAgIHZhciBi
bG9iID0gbmV3IEJsb2IoWyJUaGlzIGlzIGEgYmxvYiJdLCB7dHlwZTogImFwcGxpY2F0aW9uL29j
dGV0LWJpbmFyeSJ9KTsKKyAgICAgIHZhciBmb3JtYURhdGEgPSBuZXcgRm9ybURhdGEoKTsKKyAg
ICAgIGZvcm1hRGF0YS5hcHBlbmQoIm5hbWUiLCAidmFsdWUiKTsKKyAgICAgIHZhciB1cmxTZWFy
Y2hQYXJhbXMgPSAiVVJMU2VhcmNoUGFyYW1zIGFyZSBub3Qgc3VwcG9ydGVkIjsKKyAgICAgIC8v
YXZvaWQgdGVzdCB0aW1lb3V0IGlmIG5vdCBpbXBsZW1lbnRlZAorICAgICAgaWYgKHdpbmRvdy5V
UkxTZWFyY2hQYXJhbXMpCisgICAgICAgIHVybFNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQ
YXJhbXMoIm5hbWU9dmFsdWUiKTsKKyAgICAgIHZhciB1c3ZTdHJpbmcgPSAiVGhpcyBpcyBhIFVT
VlN0cmluZyIKKworICAgICAgY2hlY2tSZXNwb25zZUluaXQoYmxvYiwgImFwcGxpY2F0aW9uL29j
dGV0LWJpbmFyeSIsICJUaGlzIGlzIGEgYmxvYiIpOworICAgICAgY2hlY2tSZXNwb25zZUluaXQo
Zm9ybWFEYXRhLCAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIsICJuYW1lPVwibmFtZVwiXHJcblxyXG52
YWx1ZSIpOworICAgICAgY2hlY2tSZXNwb25zZUluaXQodXJsU2VhcmNoUGFyYW1zLCAiYXBwbGlj
YXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgiLCAibmFtZT12YWx1ZSIp
OworICAgICAgY2hlY2tSZXNwb25zZUluaXQodXN2U3RyaW5nLCAidGV4dC9wbGFpbjtjaGFyc2V0
PVVURi04IiwgIlRoaXMgaXMgYSBVU1ZTdHJpbmciKTsKKworICAgICAgYXN5bmNfdGVzdChmdW5j
dGlvbih0ZXN0KSB7CisgICAgICAgIHZhciBib2R5ID0gIlRoaXMgaXMgcmVzcG9uc2UgYm9keSI7
CisgICAgICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZShib2R5KTsKKyAgICAgICAgcmVh
ZFRleHRTdHJlYW0ocmVzcG9uc2UuYm9keS5nZXRSZWFkZXIoKSwgdGVzdCwgYm9keSk7CisgICAg
ICB9LCAiUmVhZCBSZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0iKTsKKyAgICA8L3Nj
cmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3Rh
dGljLWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE1Yzg1ZThmMTkwMzAwMzRlYTI2N2YyMzZmZmQ2ZWVkMDVm
MjBkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ2hlY2sgcmVzcG9uc2UgcmV0dXJuZWQg
Ynkgc3RhdGljIG1ldGhvZCBlcnJvcigpIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1z
dGF0aWMtZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ2M2JkNWUzZTVlZjJiYjE5MmRhZDE0NmQ0YzRlMTk1ZmQ1OTA4YTMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtZXJyb3IuaHRtbApAQCAtMCwwICsxLDIz
IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlc3BvbnNlOiBlcnJvciBzdGF0aWMgbWV0aG9kPC90aXRs
ZT4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdn
Lm9yZy8jcmVzcG9uc2UiPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0
Y2guc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LW5ldHdvcmstZXJyb3IiPgorICAgIDxtZXRhIG5h
bWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93
d3cuY3JmLmNhbm9uLmZyIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQ+Cisg
ICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgcmVzcG9uc2VFcnJvciA9IFJlc3Bv
bnNlLmVycm9yKCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2VFcnJvci50eXBlLCAi
ZXJyb3IiLCAiTmV0d29yayBlcnJvciByZXNwb25zZSdzIHR5cGUgaXMgZXJyb3IiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZUVycm9yLnN0YXR1cywgMCwgIk5ldHdvcmsgZXJyb3Ig
cmVzcG9uc2UncyBzdGF0dXMgaXMgMCIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNl
RXJyb3Iuc3RhdHVzVGV4dCwgIiIsICJOZXR3b3JrIGVycm9yIHJlc3BvbnNlJ3Mgc3RhdHVzVGV4
dCBpcyBlbXB0eSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlRXJyb3IuYm9keSwg
bnVsbCwgIk5ldHdvcmsgZXJyb3IgcmVzcG9uc2UncyBib2R5IGlzIG51bGwiKTsKKyAgICAgIH0s
ICJDaGVjayByZXNwb25zZSByZXR1cm5lZCBieSBzdGF0aWMgbWV0aG9kIGVycm9yKCkiKTsKKyAg
ICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1yZWRpcmVjdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJlY3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdmZDI3ZmRkNDdmZGI4NTc0NTExNGZhZTRmNDNmMjBjMDY4MDAyYmEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJlY3QtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNCBAQAorCitQQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRo
b2QgcmVkaXJlY3QoKSAKK0ZBSUwgQ2hlY2sgZXJyb3IgcmV0dXJuZWQgd2hlbiBnaXZpbmcgaW52
YWxpZCBwYXJhbWV0ZXJzIHRvIHJlZGlyZWN0KCkgYXNzZXJ0X3Rocm93czogRXhwZWN0IFJhbmdl
RXJyb3IgZXhjZXB0aW9uIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IFJlc3BvbnNlLnJlZGlyZWN0
KCIiLCBpbnZhbGlkU3RhdHVzKTsgfSIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJy
b3IiICgiVHlwZUVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJSYW5nZUVycm9yIiAoIlJhbmdlRXJy
b3IiKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJlY3QuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1yZWRpcmVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkYzA5MmY1
NGE3MjQzZWRkN2M2NjFiYzMzMzgyYTMwNGM5NDA1NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJlY3QuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cisg
ICAgPHRpdGxlPlJlc3BvbnNlOiByZWRpcmVjdCBzdGF0aWMgbWV0aG9kPC90aXRsZT4KKyAgICA8
bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVz
cG9uc2UiPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53
aGF0d2cub3JnLyNyZWRpcmVjdC1zdGF0dXMiPgorICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0
bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZy
Ij4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgICB0ZXN0KGZ1bmN0
aW9uKCkgeworICAgICAgICB2YXIgcmVkaXJlY3RTdGF0dXMgPSBbMzAxLCAzMDIsIDMwMywgMzA3
LCAzMDhdOworICAgICAgICB2YXIgdXJsID0gImh0dHA6Ly90ZXN0LnVybDoxMjM0LyI7CisgICAg
ICAgIHJlZGlyZWN0UmVzcG9uc2UgPSBSZXNwb25zZS5yZWRpcmVjdCh1cmwpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHJlZGlyZWN0UmVzcG9uc2Uuc3RhdHVzLCAzMDIsICJEZWZhdWx0IHJlZGlj
dGVjdCBzdGF0dXMgaXMgMzAyIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVkaXJlY3RSZXNw
b25zZS5oZWFkZXJzLmdldCgiTG9jYXRpb24iKSwgdXJsLAorICAgICAgICAgICJyZWRpcmVjdGVk
IHJlc3BvbnNlIGhhcyBMb2NhdGlvbiBoZWFkZXIgd2l0aCB0aGUgY29ycmVjdCB1cmwiKTsKKyAg
ICAgICAgZm9yICh2YXIgaSBpbiByZWRpcmVjdFN0YXR1cykgeworICAgICAgICAgIHZhciBzdGF0
dXMgPSByZWRpcmVjdFN0YXR1c1tpXTsKKyAgICAgICAgICByZWRpcmVjdFJlc3BvbnNlID0gUmVz
cG9uc2UucmVkaXJlY3QodXJsLCBzdGF0dXMpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVk
aXJlY3RSZXNwb25zZS5zdGF0dXMsIHN0YXR1cywgIlJlZGljdGVjdCBzdGF0dXMgaXMgIiArIHN0
YXR1cyk7CisgICAgICAgIH0KKyAgICAgIH0sICJDaGVjayByZXNwb25zZSByZXR1cm5lZCBieSBz
dGF0aWMgbWV0aG9kIHJlZGlyZWN0KCkiKTsKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAg
ICAgICAgdmFyIGludmFsaWRSZWRpcmVjdFN0YXR1cyA9IFsyMDAsIDMwOSwgNDAwLCA1MDBdOwor
ICAgICAgICB2YXIgaW52YWxpZFVybCA9ICJUaGlzIGlzIG5vdCBhbiB1cmwiOworICAgICAgICBm
b3IgKHZhciBpIGluIGludmFsaWRSZWRpcmVjdFN0YXR1cykgeworICAgICAgICAgIHZhciBpbnZh
bGlkU3RhdHVzID0gaW52YWxpZFJlZGlyZWN0U3RhdHVzW2ldOworICAgICAgICAgIGFzc2VydF90
aHJvd3MobmV3IFJhbmdlRXJyb3IoKSAsIGZ1bmN0aW9uKCkgeyBSZXNwb25zZS5yZWRpcmVjdCgi
IiwgaW52YWxpZFN0YXR1cyk7IH0sCisgICAgICAgICAgICAiRXhwZWN0IFJhbmdlRXJyb3IgZXhj
ZXB0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9y
KCksIGZ1bmN0aW9uKCkgeyBSZXNwb25zZS5yZWRpcmVjdChpbnZhbGlkVXJsKTsgfSwKKyAgICAg
ICAgICAiRXhwZWN0IFR5cGVFcnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sICJDaGVjayBlcnJv
ciByZXR1cm5lZCB3aGVuIGdpdmluZyBpbnZhbGlkIHBhcmFtZXRlcnMgdG8gcmVkaXJlY3QoKSIp
OworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtYXR0cmlidXRlcy1kZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1l
eHBlY3RlZC50eHQKaW5kZXggZmZkOTUzMTFkYzVkMGE3NWUwY2Q0ZTQ0MDc4NGUxYTRkNjRlZjJj
My4uZTA1OGNmZjk1YmIyMmRhNTkzMzEzN2E5ZmNhZTk2YWE5Yjg0MmE3YSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRpY2F0
ZWQtd29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0x
NjksNiArMTY5LDExIEBAIFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoCiBQQVNTIFtXb3JrZXJdIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blBy
b3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNT
IFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVz
dCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS52YWx1ZSBpcyBSZXNwb25zZQorUEFT
UyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3Bv
bnNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCitQQVNTIFtXb3JrZXJdIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5oYXNPd25Qcm9w
ZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1Mg
W1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25z
ZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnU2V0JykudmFsdWUgaXMgU2V0CiBQQVNTIFtXb3JrZXJd
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnU2V0JykuaGFzT3duUHJv
cGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnU2V0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDE1YTRhZWFhOTAwMjM2ZDYxZDUwMWIz
NDRiM2E3NzBkNGFkOWRmMzEuLmIwMDc4ZTMzMGIyMTM0ZmNiMzg0ZTIyNzllOTM1OWRjMjMzMmJi
YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0
dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29u
c3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC05OTMsNiArOTkzLDExIEBAIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFz
T3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5lbnVt
ZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnUmVxdWVzdCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS52YWx1ZSBpcyBSZXNwb25zZQor
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJyku
aGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMg
ZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNw
b25zZScpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnU1FMRXhjZXB0aW9uJykudmFs
dWUgaXMgU1FMRXhjZXB0aW9uCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnU1FMRXhjZXB0aW9uJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnU1FMRXhjZXB0aW9u
JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRp
Y2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13b3JrZXItZXhwZWN0
ZWQudHh0CmluZGV4IGZjNzIwNGZmMmViZjkwODgxMzgwODg2YmRjYTc2Y2NlMzQ2MTExOWIuLjJj
YzlhYzM1ZWY0NTc2Y2ZhZDM2ZDg2OTJhZjM4NjRiZTIyZjMwNjggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC02OSw2ICs2OSwxMSBAQCBQQVNTIFtXb3JrZXJdIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5
KAogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgW1dvcmtlcl0g
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuZW51bWVy
YWJsZSBpcyBmYWxzZQogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBbV29ya2Vy
XSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykudmFs
dWUgaXMgUmVzcG9uc2UKK1BBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdSZXNwb25zZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQor
UEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jl
c3BvbnNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIFtXb3JrZXJdIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5lbnVtZXJh
YmxlIGlzIGZhbHNlCitQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBbV29ya2Vy
XSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1VSTCcpLnZhbHVlIGlz
IFVSTAogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ1VSTCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBbV29ya2VyXSBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1VSTCcpLmhhc093blByb3Bl
cnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDAxMmJmMDhjZGM5Yzg1ZmFlYjRjMjllZWRjNzc4MjEwNzU3
ZWFiNzcuLjA4ZTRmNWM5OTUyNDJkNTU1ZjVhMzQ5YzcyZWUyOGFiZjg2MmJiZjggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTEwNjMs
NiArMTA2MywxMSBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0
JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdSZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykudmFs
dWUgaXMgUmVzcG9uc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdSZXNwb25zZScpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykuaGFzT3duUHJv
cGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5jb25maWd1cmFibGUg
aXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1NR
TEV4Y2VwdGlvbicpLnZhbHVlIGlzIFNRTEV4Y2VwdGlvbgogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1NRTEV4Y2VwdGlvbicpLmhhc093blByb3BlcnR5KCdn
ZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ1NRTEV4Y2VwdGlvbicpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3Jz
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGM0ZTVj
NGNiNTBiZmE0ZTk5ZjA0OGZiY2U4ZWM2MWQ4YWJiZTBiYzYuLjVkODhlNWRlOWViZmU2ZWM0ZTg0
Y2JiZGIxMzQ4ODVkZDUxYTViY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0
cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTEwODMsNiArMTA4MywxMSBAQCBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5
KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBm
YWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVl
c3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykudmFsdWUgaXMgUmVzcG9uc2UKK1BBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLmhhc093blByb3Bl
cnR5KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ1Jlc3BvbnNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5lbnVt
ZXJhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnUmVzcG9uc2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1NRTEV4Y2VwdGlvbicpLnZhbHVlIGlzIFNRTEV4
Y2VwdGlvbgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1NR
TEV4Y2VwdGlvbicpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1NRTEV4Y2VwdGlvbicpLmhhc093blBy
b3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLW1hdmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggZTYwZTQ1NTEyZWE4
OTY2MTljN2IyMTM0MWMyYzJjYTgyZGNhYjhiMC4uMjViNzNmN2JiYTgwNDIwOWY1YmNkZjFlNWI1
OWYxMmMxMmM3NjUwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVy
aWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29u
c3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xMDczLDYgKzEwNzMsMTEgQEAg
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5o
YXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVu
dW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSZXF1ZXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLnZhbHVlIGlzIFJlc3BvbnNl
CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2Un
KS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jl
c3BvbnNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdTUUxFeGNlcHRpb24nKS52
YWx1ZSBpcyBTUUxFeGNlcHRpb24KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdTUUxFeGNlcHRpb24nKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdTUUxFeGNlcHRp
b24nKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9q
cy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCA3
NzQ0NzhlZWRlMmVjODliYTY2Y2ZmOTM1OWQwNGJkZDk3MGExODQzLi4wM2MyZjhhM2M4NDNhMDFk
YjQ5MjEyM2M1NWEzZWRkNjEwYTBmYzZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xMTk4LDYgKzEx
OTgsMTEgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jl
cXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlz
IGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVx
dWVzdCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLnZhbHVlIGlz
IFJlc3BvbnNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
UmVzcG9uc2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ1Jlc3BvbnNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykuY29uZmlndXJhYmxlIGlzIHRy
dWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdTUUxFeGNl
cHRpb24nKS52YWx1ZSBpcyBTUUxFeGNlcHRpb24KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdTUUxFeGNlcHRpb24nKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0Jykg
aXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdT
UUxFeGNlcHRpb24nKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xv
YmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBiZGE0MTY1OTY3
MTZjZThmZTRmYjViY2QxY2E1N2UxMTZiNDBlMDg3Li43N2Q0ODhiYmRlZjRjZDYyNmIyMDBmZWU2
N2YwZDZkYTJjMDc4MmRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0CkBAIC0xMTk4LDYgKzExOTgsMTEgQEAgUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0
JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1
ZXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVudW1lcmFibGUgaXMgZmFsc2UK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0Jyku
Y29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdSZXNwb25zZScpLnZhbHVlIGlzIFJlc3BvbnNlCitQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5oYXNPd25Qcm9wZXJ0eSgn
Z2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdSZXNwb25zZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykuZW51bWVyYWJs
ZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1Jlc3BvbnNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdTUUxFeGNlcHRpb24nKS52YWx1ZSBpcyBTUUxFeGNlcHRp
b24KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdTUUxFeGNl
cHRpb24nKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdTUUxFeGNlcHRpb24nKS5oYXNPd25Qcm9wZXJ0
eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9q
cy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dAppbmRleCA1NDBmOWE1ODkyM2NkNWEwOWFmZjlmODQzZmZmMWUzYWM1ZWFm
OTZmLi5jMmE5NTUxZjE3YmRiM2NjOTM0NTIzOTAyMmNmMDFkM2QyMTI3ZGZhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0
cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC05MTMsNiAr
OTEzLDExIEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdS
ZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jl
cXVlc3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS52YWx1ZSBp
cyBSZXNwb25zZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1Jlc3BvbnNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5oYXNPd25Qcm9wZXJ0
eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSZXNwb25zZScpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLmNvbmZpZ3VyYWJsZSBpcyB0
cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnU1FMRXhj
ZXB0aW9uJykudmFsdWUgaXMgU1FMRXhjZXB0aW9uCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnU1FMRXhjZXB0aW9uJykuaGFzT3duUHJvcGVydHkoJ2dldCcp
IGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
U1FMRXhjZXB0aW9uJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272132</attachid>
            <date>2016-02-24 11:55:16 -0800</date>
            <delta_ts>2016-02-24 12:48:18 -0800</delta_ts>
            <desc>Updating AtomicString</desc>
            <filename>bug-154536-20160224205457.patch</filename>
            <type>text/plain</type>
            <size>83417</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3MDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2JiMzlkMDYxNjgzNGJl
NGZjYWFkMjlmMWJiMjZhZWM3ZDI2MGY4Ni4uMDBhMThkMDI2ZGZiNDA3YThhOTRhZWY5MjAwNzRl
ZjdjZjQ3Y2JlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYzIEBACiAyMDE2LTAyLTI0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKKyAgICAgICAgW0ZldGNo
IEFQSV0gSW1wbGVtZW50IEZldGNoIEFQSSBSZXNwb25zZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNsb25lLmh0bWwKKyAgICAgICAg
ICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNl
L3Jlc3BvbnNlLWNvbnN1bWUuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtZXJyb3IuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2UtaWRsLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAxLmh0bWwK
KyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRp
Yy1lcnJvci5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJlY3QuaHRtbAorCisg
ICAgICAgIEFkZGluZyBGZXRjaCBSZXNwb25zZSBhcyBGZXRjaFJlc3BvbnNlIGNsYXNzLgorICAg
ICAgICBDb25zdHJ1Y3RvciB1c2VzIGEgYnVpbHQtaW4gdG8gcHJlLXByb2Nlc3MgdGhlIHBhcmFt
ZXRlcnMuCisgICAgICAgIFN1cHBvcnQgb2YgYm9keSBhcyBSZWFkYWJsZVN0cmVhbSBpcyBtaXNz
aW5nLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oOgorICAgICAgICAo
V2ViQ29yZTo6RmV0Y2hCb2R5OjplbXB0eSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRj
aFJlc3BvbnNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0ZldGNoUmVzcG9uc2U6
OmJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6aXNSZWRpcmVjdFN0YXR1cyk6CisgICAgICAgIChX
ZWJDb3JlOjppc051bGxCb2R5U3RhdHVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9u
c2U6OmVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OnJlZGlyZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OmluaXRpYWxpemVXaXRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OkZldGNoUmVzcG9uc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RmV0Y2hSZXNwb25zZTo6Y2xvbmUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXNw
b25zZTo6dHlwZSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXNwb25zZTo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OnJlZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoUmVzcG9uc2U6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpyZWRp
cmVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OnN0YXR1cyk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpvayk6CisgICAgICAgIChXZWJDb3JlOjpGZXRj
aFJlc3BvbnNlOjpzdGF0dXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6
OmhlYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXNwb25zZTo6aXNEaXN0dXJiZWQp
OgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXNwb25zZTo6YXJyYXlCdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RmV0Y2hSZXNwb25zZTo6Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
RmV0Y2hSZXNwb25zZTo6YmxvYik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlc3BvbnNlOjpq
c29uKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVzcG9uc2U6OnRleHQpOgorICAgICAgICAq
IE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVs
ZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5qczogQWRkZWQuCisgICAgICAgIChpbml0aWFsaXplRmV0
Y2hSZXNwb25zZSk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVKU0J1aWx0aW5zLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9XZWJDb3JlSlNCdWlsdGlucy5oOgorICAgICAgICAoV2ViQ29yZTo6SlNC
dWlsdGluRnVuY3Rpb25zOjpKU0J1aWx0aW5GdW5jdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
SlNCdWlsdGluRnVuY3Rpb25zOjpmZXRjaFJlc3BvbnNlQnVpbHRpbnMpOgorCisyMDE2LTAyLTI0
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKICAgICAgICAg
W0ZldGNoIEFQSV0gUmVmYWN0b3IgRmV0Y2hIZWFkZXJzIGluaXRpYWxpemF0aW9uIHdpdGggaXRl
cmF0b3JzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTQ1MzcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBjNmZkYWQ0N2FkZTk4YjFkNDhkZjI1OTQ5
ZGMxZTAxN2Y3NWNhMGQzLi43NDAxNGQzZGZhMjkzYzA3NWRiNmI2ZjI3MWY0YjNhZDhkYWJlYThj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTY2LDYgKzE2Niw3IEBAIHNldChXZWJDb3JlX05P
Tl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaWRsCiAgICAgTW9k
dWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuaWRsCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVl
c3QuaWRsCisgICAgTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmlkbAogCiAgICAgTW9kdWxl
cy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5pZGwKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmlkbApAQCAtODEzLDYgKzgxNCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoSGVh
ZGVycy5jcHAKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKKyAgICBNb2R1bGVz
L2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCiAKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3Jk
aW5hdGVzLmNwcAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZpZXIuY3BwCkBAIC0z
NjY1LDYgKzM2NjcsNyBAQCBHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlVGVzdFN1cHBvcnRfU09V
UkNFUwogCiBzZXQoV2ViQ29yZV9CVUlMVElOU19TT1VSQ0VTCiAgICAgJHtXRUJDT1JFX0RJUn0v
TW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuanMKKyAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVz
L2ZldGNoL0ZldGNoUmVzcG9uc2UuanMKICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhRGV2aWNlcy5qcwogICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbWVkaWFz
dHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhLmpzCiAgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5qcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3Bw
CmluZGV4IDM4MDc4ZDg3NTJmZGMzOTNhYWZmYTkyNTA3MjhhMjQyMjBjOTdiMTEuLmE0YTQ4ZTIw
YTk5MWI4YTNiYmI2NGUyOTc2ODEwZGQwMjQ3YmIzNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5jcHAKQEAgLTE1Niw2ICsxNTYsNyBAQAogI2luY2x1ZGUgIkpTRmV0Y2hCb2R5LmNwcCIKICNp
bmNsdWRlICJKU0ZldGNoSGVhZGVycy5jcHAiCiAjaW5jbHVkZSAiSlNGZXRjaFJlcXVlc3QuY3Bw
IgorI2luY2x1ZGUgIkpTRmV0Y2hSZXNwb25zZS5jcHAiCiAjaW5jbHVkZSAiSlNGaWxlLmNwcCIK
ICNpbmNsdWRlICJKU0ZpbGVFcnJvci5jcHAiCiAjaW5jbHVkZSAiSlNGaWxlRXhjZXB0aW9uLmNw
cCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQ2YTE5ZGIzNjEzYTAzYmY1ODU0
ZjQwOGQ4ZjljZWU1MzQ4MTRmOTkuLmRjN2M4ZDlmMDIyZGQ1NDNmNzEzMDk1MDg1ZWEzNWRhYzE2
OTFiNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtODIsNiArODIsNyBAQCBO
T05fU1ZHX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZmV0Y2gvRmV0
Y2hCb2R5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvZ2FtZXBhZC9HYW1lcGFkQnV0dG9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dh
bWVwYWQvR2FtZXBhZEV2ZW50LmlkbCBcCkBAIC0xMjcxLDYgKzEyNzIsNyBAQCBXZWJSZXBsYXlJ
bnB1dHMuaCA6ICQoSU5QVVRfR0VORVJBVE9SX1NQRUNJRklDQVRJT05TKSAkKElOUFVUX0dFTkVS
QVRPUl9TQ1JJUFRTKQogCiBXZWJDb3JlX0JVSUxUSU5TX1NPVVJDRVMgPSBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5qcyBcCisgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuanMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYURldmljZXMuanMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWEuanMgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5qcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaEJvZHkuaAppbmRleCA0MzYyN2EyMTI4MGQ5NzczODZhNGYzNTVmNDZiMDg1NTY0NDNj
MTNkLi40OWYxMGQ1YTdkZTU3OTE1ZmZiODRlMWM1YTc0YzNkNjBhMTcwMTM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmgKQEAgLTcwLDYgKzcwLDcgQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIEZldGNoQm9keSBmcm9tSlNWYWx1ZShKU0M6OkV4ZWNTdGF0ZSYsIEpT
Qzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIEZldGNoQm9keSBmcm9tUmVxdWVzdEJvZHkoRmV0Y2hC
b2R5Kik7CisgICAgc3RhdGljIEZldGNoQm9keSBlbXB0eSgpIHsgcmV0dXJuIEZldGNoQm9keSgp
OyB9CiAKIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCBwcm9jZXNzSWZF
bXB0eU9yRGlzdHVyYmVkKERPTVByb21pc2U8VCwgRXhjZXB0aW9uQ29kZT4mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4
MjhiOTBmMjNiYTUxZTFhOTY4MjgzZWMwNDYxMGM4NTc0ZTZmNTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCkBAIC0wLDAg
KzEsMTY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IENhbm9uIEluYy4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6CisgKgor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBDYW5v
biBJbmMuIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZldGNoUmVzcG9uc2UuaCIKKworI2lmIEVOQUJM
RShGRVRDSF9BUEkpCisKKyNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgorI2luY2x1ZGUgIkpTRmV0Y2hSZXNwb25zZS5oIgorI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgaW5s
aW5lIGJvb2wgaXNSZWRpcmVjdFN0YXR1cyhpbnQgc3RhdHVzKQoreworICAgIHJldHVybiBzdGF0
dXMgPT0gMzAxIHx8IHN0YXR1cyA9PSAzMDIgfHwgc3RhdHVzID09IDMwMyB8fCBzdGF0dXMgPT0g
MzA3IHx8IHN0YXR1cyA9PSAzMDg7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc051bGxCb2R5
U3RhdHVzKGludCBzdGF0dXMpCit7CisgICAgcmV0dXJuIHN0YXR1cyA9PSAxMDEgfHwgc3RhdHVz
ID09IDIwNCB8fCBzdGF0dXMgPT0gMjA1IHx8IHN0YXR1cyA9PSAzMDQ7Cit9CisKK1JlZjxGZXRj
aFJlc3BvbnNlPiBGZXRjaFJlc3BvbnNlOjplcnJvcigpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRmV0Y2hSZXNwb25zZShUeXBlOjpFcnJvciwgRmV0Y2hCb2R5OjplbXB0eSgpLCBGZXRj
aEhlYWRlcnM6OmNyZWF0ZShGZXRjaEhlYWRlcnM6Okd1YXJkOjpJbW11dGFibGUpLCBSZXNvdXJj
ZVJlc3BvbnNlKCkpKTsKK30KKworUmVmUHRyPEZldGNoUmVzcG9uc2U+IEZldGNoUmVzcG9uc2U6
OnJlZGlyZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYg
dXJsLCBpbnQgc3RhdHVzLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICAvLyBGSVhNRTogVGln
aHRlbiB0aGUgVVJMIHBhcnNpbmcgYWxnb3JpdGhtIGFjY29yZGluZyBodHRwczovL3VybC5zcGVj
LndoYXR3Zy5vcmcvI2NvbmNlcHQtdXJsLXBhcnNlci4KKyAgICBVUkwgcmVxdWVzdFVSTCA9IGNv
bnRleHQtPmNvbXBsZXRlVVJMKHVybCk7CisgICAgaWYgKCFyZXF1ZXN0VVJMLmlzVmFsaWQoKSB8
fCAhcmVxdWVzdFVSTC51c2VyKCkuaXNFbXB0eSgpIHx8ICFyZXF1ZXN0VVJMLnBhc3MoKS5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgZWMgPSBUeXBlRXJyb3I7CisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIH0KKyAgICBpZiAoIWlzUmVkaXJlY3RTdGF0dXMoc3RhdHVzKSkgeworICAgICAgICBl
YyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIFJlZlB0
cjxGZXRjaFJlc3BvbnNlPiByZWRpcmVjdFJlc3BvbnNlID0gYWRvcHRSZWYoKm5ldyBGZXRjaFJl
c3BvbnNlKFR5cGU6OkRlZmF1bHQsIEZldGNoQm9keTo6ZW1wdHkoKSwgRmV0Y2hIZWFkZXJzOjpj
cmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6SW1tdXRhYmxlKSwgUmVzb3VyY2VSZXNwb25zZSgp
KSk7CisgICAgcmVkaXJlY3RSZXNwb25zZS0+bV9yZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZShz
dGF0dXMpOworICAgIHJlZGlyZWN0UmVzcG9uc2UtPm1faGVhZGVycy0+ZmFzdFNldChIVFRQSGVh
ZGVyTmFtZTo6TG9jYXRpb24sIHJlcXVlc3RVUkwuc3RyaW5nKCkpOworICAgIHJldHVybiByZWRp
cmVjdFJlc3BvbnNlOworfQorCit2b2lkIEZldGNoUmVzcG9uc2U6OmluaXRpYWxpemVXaXRoKGNv
bnN0IERpY3Rpb25hcnkmIGluaXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGludCBzdGF0
dXM7CisgICAgaWYgKCFpbml0LmdldCgic3RhdHVzIiwgc3RhdHVzKSkgeworICAgICAgICBlYyA9
IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoc3RhdHVzIDwgMjAw
IHx8IHN0YXR1cyA+IDU5OSkgeworICAgICAgICBlYyA9IFJhbmdlRXJyb3I7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogVmFsaWRhdGUgcmVhc29uIHBocmFzZSAoaHR0
cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzAjc2VjdGlvbi0zLjEuMikuCisgICAgU3Ry
aW5nIHN0YXR1c1RleHQ7CisgICAgaWYgKCFpbml0LmdldCgic3RhdHVzVGV4dCIsIHN0YXR1c1Rl
eHQpKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIG1fcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUoc3RhdHVzKTsKKyAgICBtX3Jlc3BvbnNl
LnNldEhUVFBTdGF0dXNUZXh0KHN0YXR1c1RleHQpOworCisgICAgUmVmUHRyPEZldGNoSGVhZGVy
cz4gaW5pdGlhbEhlYWRlcnM7CisgICAgaWYgKGluaXQuZ2V0KCJoZWFkZXJzIiwgaW5pdGlhbEhl
YWRlcnMpKQorICAgICAgICBtX2hlYWRlcnMtPmZpbGwoaW5pdGlhbEhlYWRlcnMuZ2V0KCkpOwor
CisgICAgSlNDOjpKU1ZhbHVlIGJvZHk7CisgICAgaWYgKGluaXQuZ2V0KCJib2R5IiwgYm9keSkp
IHsKKyAgICAgICAgaWYgKGlzTnVsbEJvZHlTdGF0dXMoc3RhdHVzKSkgeworICAgICAgICAgICAg
ZWMgPSBUeXBlRXJyb3I7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
bV9ib2R5ID0gRmV0Y2hCb2R5Ojpmcm9tSlNWYWx1ZSgqaW5pdC5leGVjU3RhdGUoKSwgYm9keSk7
CisgICAgICAgIGlmIChtX2hlYWRlcnMtPmZhc3RHZXQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRU
eXBlKS5pc0VtcHR5KCkgJiYgIW1fYm9keS5taW1lVHlwZSgpLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgIG1faGVhZGVycy0+ZmFzdFNldChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUsIG1fYm9k
eS5taW1lVHlwZSgpKTsKKyAgICB9Cit9CisKK0ZldGNoUmVzcG9uc2U6OkZldGNoUmVzcG9uc2Uo
VHlwZSB0eXBlLCBGZXRjaEJvZHkmJiBib2R5LCBSZWY8RmV0Y2hIZWFkZXJzPiYmIGhlYWRlcnMs
IFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKKyAgICA6IG1fdHlwZSh0eXBlKQorICAgICwg
bV9yZXNwb25zZShXVEZNb3ZlKHJlc3BvbnNlKSkKKyAgICAsIG1fYm9keShXVEZNb3ZlKGJvZHkp
KQorICAgICwgbV9oZWFkZXJzKFdURk1vdmUoaGVhZGVycykpCit7Cit9CisKK1JlZlB0cjxGZXRj
aFJlc3BvbnNlPiBGZXRjaFJlc3BvbnNlOjpjbG9uZShFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBpZiAobV9ib2R5LmlzRGlzdHVyYmVkKCkgfHwgbV9pc0xvY2tlZCkgeworICAgICAgICBlYyA9
IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIFJlZlB0cjxG
ZXRjaFJlc3BvbnNlPiBjbG9uZWQgPSBhZG9wdFJlZigqbmV3IEZldGNoUmVzcG9uc2UobV90eXBl
LCBGZXRjaEJvZHkobV9ib2R5KSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoaGVhZGVycygpKSwgUmVz
b3VyY2VSZXNwb25zZShtX3Jlc3BvbnNlKSkpOworICAgIGNsb25lZC0+bV9pc1JlZGlyZWN0ZWQg
PSBtX2lzUmVkaXJlY3RlZDsKKyAgICByZXR1cm4gY2xvbmVkOworfQorCitjb25zdCBBdG9taWNT
dHJpbmcmIEZldGNoUmVzcG9uc2U6OnR5cGUoKSBjb25zdAoreworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IGJhc2ljKCJiYXNpYyIpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxBdG9taWNTdHJpbmc+IGNvcnMoImNvcnMiKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8QXRvbWljU3RyaW5nPiBkZWZhdWx0cygiZGVmYXVsdCIpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGNsb3NlZCgiY2xvc2VkIik7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZXJyb3IoImVycm9yIik7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gb3BhcXVlKCJvcGFxdWUiKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3RyaW5nPiBvcGFxdWVyZWRpcmVjdCgib3BhcXVlcmVkaXJl
Y3QiKTsKKworICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgY2FzZSBUeXBlOjpCYXNpYzoKKyAg
ICAgICAgcmV0dXJuIGJhc2ljOworICAgIGNhc2UgVHlwZTo6Q29yczoKKyAgICAgICAgcmV0dXJu
IGNvcnM7CisgICAgY2FzZSBUeXBlOjpEZWZhdWx0OgorICAgICAgICByZXR1cm4gZGVmYXVsdHM7
CisgICAgY2FzZSBUeXBlOjpFcnJvcjoKKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIGNhc2Ug
VHlwZTo6T3BhcXVlOgorICAgICAgICByZXR1cm4gb3BhcXVlOworICAgIGNhc2UgVHlwZTo6T3Bh
cXVlUmVkaXJlY3Q6CisgICAgICAgIHJldHVybiBvcGFxdWVyZWRpcmVjdDsKKyAgICB9OworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBiYXNpYzsKK30KKworLy8gRklYTUU6
IEltcGxlbWVudCB0aGlzLCBhcyBhIGN1c3RvbSBvciB0aHJvdWdoIGJpbmRpbmcgZ2VuZXJhdG9y
LgorSlNDOjpKU1ZhbHVlIEpTRmV0Y2hSZXNwb25zZTo6Ym9keShKU0M6OkV4ZWNTdGF0ZSYpIGNv
bnN0Cit7CisgICAgcmV0dXJuIEpTQzo6anNOdWxsKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShGRVRDSF9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwNGIyNTFjNjk0ZGE3YzE0
ZTJmZjdjYTAyMjlkNTA2MTRjYmFiNmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaApAQCAtMCwwICsxLDkzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE2IENhbm9uIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAq
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGZXRjaFJlc3BvbnNl
X2gKKyNkZWZpbmUgRmV0Y2hSZXNwb25zZV9oCisKKyNpZiBFTkFCTEUoRkVUQ0hfQVBJKQorCisj
aW5jbHVkZSAiRmV0Y2hCb2R5LmgiCisjaW5jbHVkZSAiRmV0Y2hIZWFkZXJzLmgiCisjaW5jbHVk
ZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorCituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIEFycmF5QnVm
ZmVyOworfTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEaWN0aW9uYXJ5OworCit0
eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOworCitjbGFzcyBGZXRjaFJlc3BvbnNlIDogcHVibGlj
IFJlZkNvdW50ZWQ8RmV0Y2hSZXNwb25zZT4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RmV0
Y2hSZXNwb25zZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBGZXRjaFJlc3BvbnNl
KFR5cGU6OkRlZmF1bHQsIEZldGNoQm9keTo6ZW1wdHkoKSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUo
RmV0Y2hIZWFkZXJzOjpHdWFyZDo6UmVzcG9uc2UpLCBSZXNvdXJjZVJlc3BvbnNlKCkpKTsgfQor
ICAgIHN0YXRpYyBSZWY8RmV0Y2hSZXNwb25zZT4gZXJyb3IoKTsKKyAgICBzdGF0aWMgUmVmUHRy
PEZldGNoUmVzcG9uc2U+IHJlZGlyZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBT
dHJpbmcmLCBpbnQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAvLyBGSVhNRTogQmluZGluZyBnZW5l
cmF0b3Igc2hvdWxkIG5vdCByZXF1aXJlIGJlbG93IG1ldGhvZCB0byBoYW5kbGUgb3B0aW9uYWwg
c3RhdHVzIHBhcmFtZXRlci4KKyAgICBzdGF0aWMgUmVmUHRyPEZldGNoUmVzcG9uc2U+IHJlZGly
ZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdXJsLCBF
eGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gcmVkaXJlY3QoY29udGV4dCwgdXJsLCAzMDIsIGVj
KTsgfQorCisgICAgdm9pZCBpbml0aWFsaXplV2l0aChjb25zdCBEaWN0aW9uYXJ5JiwgRXhjZXB0
aW9uQ29kZSYpOworCisgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCkgY29uc3Q7CisgICAg
Y29uc3QgU3RyaW5nJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlLnVybCgpLnN0cmlu
ZygpOyB9CisgICAgYm9vbCByZWRpcmVjdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1JlZGlyZWN0
ZWQ7IH0KKyAgICBpbnQgc3RhdHVzKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZS5odHRwU3Rh
dHVzQ29kZSgpOyB9CisgICAgYm9vbCBvaygpIGNvbnN0IHsgcmV0dXJuIHN0YXR1cygpID49IDIw
MCAmJiBzdGF0dXMoKSA8PSAyOTk7IH0KKyAgICBjb25zdCBTdHJpbmcmIHN0YXR1c1RleHQoKSBj
b25zdCB7IHJldHVybiBtX3Jlc3BvbnNlLmh0dHBTdGF0dXNUZXh0KCk7IH0KKworICAgIEZldGNo
SGVhZGVycyYgaGVhZGVycygpIHsgcmV0dXJuIG1faGVhZGVyczsgfQorICAgIFJlZlB0cjxGZXRj
aFJlc3BvbnNlPiBjbG9uZShFeGNlcHRpb25Db2RlJik7CisKKyAgICAvLyBCb2R5IEFQSQorICAg
IGJvb2wgaXNEaXN0dXJiZWQoKSBjb25zdCB7IHJldHVybiBtX2JvZHkuaXNEaXN0dXJiZWQoKTsg
fQorICAgIHZvaWQgYXJyYXlCdWZmZXIoRmV0Y2hCb2R5OjpBcnJheUJ1ZmZlclByb21pc2UmJiBw
cm9taXNlKSB7IG1fYm9keS5hcnJheUJ1ZmZlcihXVEZNb3ZlKHByb21pc2UpKTsgfQorICAgIHZv
aWQgZm9ybURhdGEoRmV0Y2hCb2R5OjpGb3JtRGF0YVByb21pc2UmJiBwcm9taXNlKSB7IG1fYm9k
eS5mb3JtRGF0YShXVEZNb3ZlKHByb21pc2UpKTsgfQorICAgIHZvaWQgYmxvYihGZXRjaEJvZHk6
OkJsb2JQcm9taXNlJiYgcHJvbWlzZSkgeyBtX2JvZHkuYmxvYihXVEZNb3ZlKHByb21pc2UpKTsg
fQorICAgIHZvaWQganNvbihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEZldGNoQm9keTo6SlNPTlBy
b21pc2UmJiBwcm9taXNlKSB7IG1fYm9keS5qc29uKHN0YXRlLCBXVEZNb3ZlKHByb21pc2UpKTsg
fQorICAgIHZvaWQgdGV4dChGZXRjaEJvZHk6OlRleHRQcm9taXNlJiYgcHJvbWlzZSkgeyBtX2Jv
ZHkudGV4dChXVEZNb3ZlKHByb21pc2UpKTsgfQorCitwcml2YXRlOgorICAgIGVudW0gY2xhc3Mg
VHlwZSB7IEJhc2ljLCBDb3JzLCBEZWZhdWx0LCBFcnJvciwgT3BhcXVlLCBPcGFxdWVSZWRpcmVj
dCB9OworCisgICAgRmV0Y2hSZXNwb25zZShUeXBlLCBGZXRjaEJvZHkmJiwgUmVmPEZldGNoSGVh
ZGVycz4mJiwgUmVzb3VyY2VSZXNwb25zZSYmKTsKKworICAgIFR5cGUgbV90eXBlOworICAgIFJl
c291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKKyAgICBGZXRjaEJvZHkgbV9ib2R5OworICAgIFJl
ZjxGZXRjaEhlYWRlcnM+IG1faGVhZGVyczsKKyAgICBib29sIG1faXNMb2NrZWQgPSBmYWxzZTsK
KyAgICBib29sIG1faXNSZWRpcmVjdGVkID0gZmFsc2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRkVUQ0hfQVBJKQorCisjZW5kaWYgLy8gRmV0Y2hS
ZXNwb25zZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
UmVzcG9uc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNl
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNzBmNGI5MWQwNWE1YzgzZDJmZDBmY2MwNmQzOTA0OGNlYzk3MDZm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJl
c3BvbnNlLmlkbApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IENh
bm9uIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSByZXF1aXJl
ZCB0byBiZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhl
ciB0aGUgbmFtZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FO
T04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisg
KiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KK2VudW0gUmVzcG9uc2VUeXBlIHsgImJhc2ljIiwgImNvcnMiLCAiZGVmYXVs
dCIsICJlcnJvciIsICJvcGFxdWUiLCAib3BhcXVlcmVkaXJlY3QiIH07CisKK1sKKyAgICBDb25k
aXRpb25hbD1GRVRDSF9BUEksCisgICAgR2xvYmFsQ29udGV4dD1ET01XaW5kb3cmV29ya2VyR2xv
YmFsU2NvcGUsCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBJbnRlcmZhY2VO
YW1lPVJlc3BvbnNlLAorICAgIEpTQnVpbHRpbkNvbnN0cnVjdG9yCitdCitpbnRlcmZhY2UgRmV0
Y2hSZXNwb25zZSB7CisgICAgLy8gRklYTUU6IE5ld09iamVjdCBkb2VzIG5vdCBzZWVtIHRvIGJl
IHN1cHBvcnRlZCBmb3Igc3RhdGljIG1ldGhvZHMuCisgICAgc3RhdGljIEZldGNoUmVzcG9uc2Ug
ZXJyb3IoKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uLCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25D
b250ZXh0XSBzdGF0aWMgRmV0Y2hSZXNwb25zZSByZWRpcmVjdChET01TdHJpbmcgdXJsLCBvcHRp
b25hbCB1bnNpZ25lZCBzaG9ydCBzdGF0dXMgPSAzMDIpOworCisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFJlc3BvbnNlVHlwZSB0eXBlOworCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyB1cmw7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gcmVkaXJlY3RlZDsKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgc3RhdHVzOworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBib29sZWFuIG9rOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc3Rh
dHVzVGV4dDsKKyAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIFNhbWVPYmplY3Qga2V5d29y
ZCBmb3IgaGVhZGVycworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBGZXRjaEhlYWRlcnMgaGVhZGVy
czsKKyAgICBbQ3VzdG9tLCBSYWlzZXNFeGNlcHRpb25dIHJlYWRvbmx5IGF0dHJpYnV0ZSBSZWFk
YWJsZVN0cmVhbT8gYm9keTsKKworICAgIFtOZXdPYmplY3QsIFJhaXNlc0V4Y2VwdGlvbl0gRmV0
Y2hSZXNwb25zZSBjbG9uZSgpOworCisgICAgW1ByaXZhdGUsIFJhaXNlc0V4Y2VwdGlvbl0gdm9p
ZCBpbml0aWFsaXplV2l0aChEaWN0aW9uYXJ5IHBhcmFtZXRlcnMpOworfTsKK0ZldGNoUmVzcG9u
c2UgaW1wbGVtZW50cyBGZXRjaEJvZHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoUmVzcG9uc2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJiNTM0ZTY1MzA0ZGEzZDU3YWI3ZDZkOTM4
NWY1MWMxMmZjODc1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hSZXNwb25zZS5qcwpAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IENhbm9uIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIENBTk9OIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBD
QU5PTiBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworLy8gQGNvbmRpdGlvbmFsPUVOQUJMRShGRVRDSF9BUEkpCisKK2Z1bmN0aW9uIGlu
aXRpYWxpemVGZXRjaFJlc3BvbnNlKGJvZHksIGluaXQpCit7CisgICAgInVzZSBzdHJpY3QiOwor
CisgICAgbGV0IHBhcmFtZXRlcnMgPSB7IH07CisgICAgaWYgKGluaXQgIT09IEB1bmRlZmluZWQp
IHsKKyAgICAgICAgaWYgKCFAaXNPYmplY3QoaW5pdCkpCisgICAgICAgICAgICB0aHJvdyBuZXcg
QFR5cGVFcnJvcigiUmVzcG9uc2UgaW5pdCBtdXN0IGJlIGFuIG9iamVjdCIpOworICAgICAgICBw
YXJhbWV0ZXJzLnN0YXR1cyA9IGluaXQuc3RhdHVzOworICAgICAgICBwYXJhbWV0ZXJzLnN0YXR1
c1RleHQgPSBpbml0LnN0YXR1c1RleHQ7CisgICAgICAgIC8vIEZJWE1FOiBTaGllbGQgdGhpcyBm
cm9tIHVzZXIgc2NyaXB0cy4KKyAgICAgICAgaWYgKGluaXQuaGVhZGVycykKKyAgICAgICAgICAg
IHBhcmFtZXRlcnMuaGVhZGVycyA9ICh0aGlzLmhlYWRlcnMuY29uc3RydWN0b3IgPT09IGluaXQu
aGVhZGVycy5jb25zdHJ1Y3RvcikgPyBpbml0LmhlYWRlcnMgOiBuZXcgdGhpcy5oZWFkZXJzLmNv
bnN0cnVjdG9yKGluaXQuaGVhZGVycyk7CisgICAgfQorIAorICAgIGlmIChwYXJhbWV0ZXJzLnN0
YXR1cyA9PT0gQHVuZGVmaW5lZCkKKyAgICAgICAgcGFyYW1ldGVycy5zdGF0dXMgPSAyMDA7Cisg
ICAgaWYgKHBhcmFtZXRlcnMuc3RhdHVzVGV4dCA9PT0gQHVuZGVmaW5lZCkKKyAgICAgICAgcGFy
YW1ldGVycy5zdGF0dXNUZXh0ID0gIk9LIjsKKworICAgIGlmIChib2R5ICE9PSBAdW5kZWZpbmVk
ICYmIGJvZHkgIT09IG51bGwpCisgICAgICAgICBwYXJhbWV0ZXJzLmJvZHkgPSBib2R5OworCisg
ICAgdGhpcy5AaW5pdGlhbGl6ZVdpdGgocGFyYW1ldGVycyk7CisgICAgcmV0dXJuIHRoaXM7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNTNlYWEzNDUxMjk3YzNiMmFkYWYwODg4ZWYzMWMzMzAwYjJkYmNmOC4uYWUyYjE4NzE5
MWZiYmEyZDA2MmRiNjdmMmZkZjk5ZTNlOTEwMzRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ5Nyw2ICsxNDk3LDcgQEAK
IAkJNDEyN0Q1MzcwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjdENTM2MEY4QUFCMUQwMEU0
MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgKi87IH07CiAJCTQxMjlERjg1MUJCNUI4MDcwMDMyMkEx
NiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTI5REY4MzFCQjVCN0Y3MDAzMjJB
MTYgLyogSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwICovOyB9OwogCQk0
MTI5REY4NjFCQjVCODBDMDAzMjJBMTYgLyogSlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1
Y3RvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
MjlERjg0MUJCNUI3RjcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVj
dG9ycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTQxMzAxNUQ5MUM3QjU3MTQwMDA5MUM2RSAvKiBGZXRjaFJlc3BvbnNlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzAxNUQ1MUM3QjU3MDQwMDA5
MUM2RSAvKiBGZXRjaFJlc3BvbnNlLmNwcCAqLzsgfTsKIAkJNDEzOEQzMzUxMjQ0MDU0ODAwMzIz
RDMzIC8qIEV2ZW50Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDEzOEQzMzMxMjQ0MDU0ODAwMzIzRDMzIC8qIEV2ZW50Q29udGV4dC5oICov
OyB9OwogCQk0MTM4RDMzNjEyNDQwNTQ4MDAzMjNEMzMgLyogRXZlbnRDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzhEMzM0MTI0NDA1
NDgwMDMyM0QzMyAvKiBFdmVudENvbnRleHQuY3BwICovOyB9OwogCQk0MTNDMkMzNDFCQzI5QThG
MDA3NTIwNEMgLyogSlNET01Db25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzQzJDMzMxQkMyOUE3QjAwNzUyMDRDIC8qIEpTRE9NQ29u
c3RydWN0b3IuaCAqLzsgfTsKQEAgLTI4MTMsOCArMjgxNCwxMCBAQAogCQk3RTQ3NEUxRTEyNDk0
REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ3NEUxQjEyNDk0REM5MDAyMzUz
NjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0U0NzRFMUYxMjQ5NERDOTAwMjM1MzY0IC8q
IFNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0U0NzRFMUMxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNl
VHJhY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdFNDc0RTIwMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0NzRFMUQx
MjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgKi87IH07Ci0JCTdF
NEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTRDOTZEODFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNGZXRjaFJlcXVlc3QuY3BwICovOyB9OwogCQk3RTRDOTZERDFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNGZXRjaFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5o
ICovOyB9OworCQk3RTRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0Qzk2RDgx
QUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0LmNwcCAqLzsgfTsKKwkJOEU0Qzk2REQx
QUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEU0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpT
RmV0Y2hSZXNwb25zZS5oICovOyB9OworCQk4RTRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNG
ZXRjaFJlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDhFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVzcG9uc2UuY3BwICov
OyB9OwogCQk3RTRERTEwRDE5OEIxMEI2MDA1MUNCMDIgLyogRGlza0NhY2hlTW9uaXRvckNvY29h
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0REUx
MEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAqLzsgfTsKIAkJ
N0U1RDdBNzYxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U1RDdBNzMxNjFEM0Y4
RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovOyB9OwogCQk3RTVEN0E3NzE2
MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U1RDdBNzQxNjFEM0Y4RjAwODk2QzM0IC8q
IE9FU0VsZW1lbnRJbmRleFVpbnQuaCAqLzsgfTsKQEAgLTg5NjAsNiArODk2MywxMCBAQAogCQk0
MTI5REY4MjFCQjVCN0E2MDAzMjJBMTYgLyogUmVhZGFibGVTdHJlYW1SZWFkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhZGFibGVTdHJlYW1SZWFkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEyOURGODMxQkI1QjdGNzAwMzIyQTE2IC8qIEpTUmVh
ZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEyOURGODQxQkI1QjdGNzAwMzIyQTE2IC8q
IEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMzAxNUQ1MUM3QjU3MDQwMDA5MUM2RSAvKiBG
ZXRjaFJlc3BvbnNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZl
dGNoUmVzcG9uc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTMwMTVENjFD
N0I1NzA0MDAwOTFDNkUgLyogRmV0Y2hSZXNwb25zZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGZXRjaFJlc3BvbnNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxMzAxNUQ3MUM3QjU3MDQwMDA5MUM2RSAvKiBGZXRjaFJlc3BvbnNlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBGZXRjaFJlc3BvbnNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDEzMDE1RDgxQzdCNTcwNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuanMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBGZXRjaFJlc3BvbnNlLmpzOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTM4RDMzMzEyNDQwNTQ4MDAzMjNEMzMgLyogRXZl
bnRDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50Q29udGV4
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTM4RDMzNDEyNDQwNTQ4MDAzMjNE
MzMgLyogRXZlbnRDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEV2ZW50Q29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxM0My
QzMzMUJDMjlBN0IwMDc1MjA0QyAvKiBKU0RPTUNvbnN0cnVjdG9yLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NQ29uc3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEwNDQxLDYgKzEwNDQ4LDggQEAKIAkJN0U0NzRFMUQxMjQ5NERDOTAwMjM1
MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGZXRjaFJlcXVlc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTRDOTZEOTFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNGZXRjaFJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNGZXRjaFJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOEU0Qzk2RDgx
QUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZldGNoUmVzcG9uc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlc3BvbnNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmV0Y2hSZXNwb25zZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTRERTEwQzE5OEIxMEI2MDA1MUNCMDIgLyog
RGlza0NhY2hlTW9uaXRvckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gRGlza0NhY2hlTW9uaXRvckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3RTVEN0E3MzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPRVNFbGVtZW50SW5kZXhV
aW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U1RDdBNzQxNjFEM0Y4RjAw
ODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gT0VTRWxlbWVudEluZGV4VWludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTY3NTMsNiArMTY3NjIsMTAgQEAKIAkJCQk0MUY1NEY4NzFDNTBDNEY2MDAzMzg0ODgg
LyogRmV0Y2hSZXF1ZXN0LmNwcCAqLywKIAkJCQk0MUY1NEY4ODFDNTBDNEY2MDAzMzg0ODggLyog
RmV0Y2hSZXF1ZXN0LmggKi8sCiAJCQkJNDFGNTRGODkxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNo
UmVxdWVzdC5pZGwgKi8sCisJCQkJNDEzMDE1RDUxQzdCNTcwNDAwMDkxQzZFIC8qIEZldGNoUmVz
cG9uc2UuY3BwICovLAorCQkJCTQxMzAxNUQ2MUM3QjU3MDQwMDA5MUM2RSAvKiBGZXRjaFJlc3Bv
bnNlLmggKi8sCisJCQkJNDEzMDE1RDcxQzdCNTcwNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2Uu
aWRsICovLAorCQkJCTQxMzAxNUQ4MUM3QjU3MDQwMDA5MUM2RSAvKiBGZXRjaFJlc3BvbnNlLmpz
ICovLAogCQkJKTsKIAkJCXBhdGggPSBmZXRjaDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0xNjc2Niw2ICsxNjc3OSw4IEBACiAJCQkJN0U0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8q
IEpTRmV0Y2hSZXF1ZXN0LmggKi8sCiAJCQkJN0Q0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpT
RmV0Y2hIZWFkZXJzLmNwcCAqLywKIAkJCQk3RDRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNG
ZXRjaEhlYWRlcnMuaCAqLywKKwkJCQk4RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRj
aFJlc3BvbnNlLmNwcCAqLywKKwkJCQk4RTRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRj
aFJlc3BvbnNlLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IEZldGNoQVBJOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTI2Njg0LDYgKzI2Njk5LDcgQEAKIAkJCQk2NURGMzIwMjA5RDFD
QzYwMDAwQkUzMjUgLyogSlNSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0Y0Qzk2REQxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3RTRDOTZE
RDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJ
CThFNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVzcG9uc2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdENEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoSGVhZGVycy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVT
dHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTZDNEM5NkRGMUFENDQ4MzUwMDM2NUE1MCAvKiBK
U1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDQyNiw2ICsz
MDQ0Miw3IEBACiAJCQkJN0Y0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdENEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNo
SGVhZGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RTRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAg
LyogSlNGZXRjaFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOEU0Qzk2REMxQUQ0NDgz
NTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXNwb25zZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzRD
OTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk2QzRDOTZERTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEyOURGODUxQkI1QjgwNzAwMzIyQTE2IC8q
IEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMzA2OTIsNiArMzA3MDksNyBAQAogCQkJCUQzRjNEMzY3MUE2OUIxQTUwMDU5RkMyQiAvKiBK
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDNGM0Qz
NkIxQTY5QjdDNTAwNTlGQzJCIC8qIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZUN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUVFRDE0RjEwNTE5NzFBMDAwOTlGQUIgLyogSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMDE1RDkx
QzdCNTcxNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NkY5OTVBMzMxQTcwODMzNzAwQTczNUY0IC8qIEpTV2ViR0xTYW1wbGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQ5QzdCOUEyMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMU2hhZGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUEwN0QzMzU1MTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQnVpbHRpbnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQnVpbHRpbnMuY3BwCmluZGV4IGQxMDk5NDI4MWM5NDQ3
MjJjYjUzOGYzZjYyNTkyNGVkMWM5YzhiM2YuLmY3MTI5MDM2MmFiMDNmZTAzNWJiZjllOWM4YmVi
NGY0MDIxOGQ4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVKU0J1aWx0aW5zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3Jl
SlNCdWlsdGlucy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJCeXRlTGVuZ3RoUXVl
dWluZ1N0cmF0ZWd5QnVpbHRpbnMuY3BwIgogI2luY2x1ZGUgIkNvdW50UXVldWluZ1N0cmF0ZWd5
QnVpbHRpbnMuY3BwIgogI2luY2x1ZGUgIkZldGNoSGVhZGVyc0J1aWx0aW5zLmNwcCIKKyNpbmNs
dWRlICJGZXRjaFJlc3BvbnNlQnVpbHRpbnMuY3BwIgogI2luY2x1ZGUgIk1lZGlhRGV2aWNlc0J1
aWx0aW5zLmNwcCIKICNpbmNsdWRlICJOYXZpZ2F0b3JVc2VyTWVkaWFCdWlsdGlucy5jcHAiCiAj
aW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rpb25CdWlsdGlucy5jcHAiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNCdWlsdGlucy5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQnVpbHRpbnMuaAppbmRleCA5NWY2Yjk3MmYyNzVlYzIx
NzZmMjAwY2FlYmEyNTQwY2I1ZTA2MzdjLi5mNWYxYTUyOWViMDhmZDg1MTkxYmVmOTBlZjg1OTNh
MTEzYmVlYzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3Jl
SlNCdWlsdGlucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVKU0J1
aWx0aW5zLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJCeXRlTGVuZ3RoUXVldWluZ1N0
cmF0ZWd5QnVpbHRpbnMuaCIKICNpbmNsdWRlICJDb3VudFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5z
LmgiCiAjaW5jbHVkZSAiRmV0Y2hIZWFkZXJzQnVpbHRpbnMuaCIKKyNpbmNsdWRlICJGZXRjaFJl
c3BvbnNlQnVpbHRpbnMuaCIKICNpbmNsdWRlICJNZWRpYURldmljZXNCdWlsdGlucy5oIgogI2lu
Y2x1ZGUgIk5hdmlnYXRvclVzZXJNZWRpYUJ1aWx0aW5zLmgiCiAjaW5jbHVkZSAiUlRDUGVlckNv
bm5lY3Rpb25CdWlsdGlucy5oIgpAQCAtNTEsNiArNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIDog
dm0odikKICNpZiBFTkFCTEUoRkVUQ0hfQVBJKQogICAgICAgICAsIG1fZmV0Y2hIZWFkZXJzQnVp
bHRpbnMoJnZtKQorICAgICAgICAsIG1fZmV0Y2hSZXNwb25zZUJ1aWx0aW5zKCZ2bSkKICNlbmRp
ZgogI2lmIEVOQUJMRShTVFJFQU1TX0FQSSkKICAgICAgICAgLCBtX2J5dGVMZW5ndGhRdWV1aW5n
U3RyYXRlZ3lCdWlsdGlucygmdm0pCkBAIC04MSw2ICs4Myw3IEBAIHB1YmxpYzoKICAgICB9CiAj
aWYgRU5BQkxFKEZFVENIX0FQSSkKICAgICBGZXRjaEhlYWRlcnNCdWlsdGluc1dyYXBwZXImIGZl
dGNoSGVhZGVyc0J1aWx0aW5zKCkgeyByZXR1cm4gbV9mZXRjaEhlYWRlcnNCdWlsdGluczsgfQor
ICAgIEZldGNoUmVzcG9uc2VCdWlsdGluc1dyYXBwZXImIGZldGNoUmVzcG9uc2VCdWlsdGlucygp
IHsgcmV0dXJuIG1fZmV0Y2hSZXNwb25zZUJ1aWx0aW5zOyB9CiAjZW5kaWYKICNpZiBFTkFCTEUo
U1RSRUFNU19BUEkpCiAgICAgQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zV3JhcHBl
ciYgYnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zKCkgeyByZXR1cm4gbV9ieXRlTGVu
Z3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnM7IH0KQEAgLTEwNCw2ICsxMDcsNyBAQCBwcml2YXRl
OgogICAgIEpTQzo6Vk0mIHZtOwogI2lmIEVOQUJMRShGRVRDSF9BUEkpCiAgICAgRmV0Y2hIZWFk
ZXJzQnVpbHRpbnNXcmFwcGVyIG1fZmV0Y2hIZWFkZXJzQnVpbHRpbnM7CisgICAgRmV0Y2hSZXNw
b25zZUJ1aWx0aW5zV3JhcHBlciBtX2ZldGNoUmVzcG9uc2VCdWlsdGluczsKICNlbmRpZgogI2lm
IEVOQUJMRShTVFJFQU1TX0FQSSkKICAgICBCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRp
bnNXcmFwcGVyIG1fYnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJk
OGViZGY3OTdkY2FhYjgxYzk3YTQwMzkyYThhNGQxNjU1YzE4NmEuLjUyZGQ2NmRjODAyOGNjNWEz
NjU4M2U5NzU1NDEzNGJiMzA0OTM4NmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNi0wMi0y
NCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAg
IFtGZXRjaCBBUEldIEltcGxlbWVudCBGZXRjaCBBUEkgUmVzcG9uc2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDUzNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBSZXNwb25zZSBhcyBjb25z
dHJ1Y3RvciBpbiBnbG9iYWwgYW5kIHdvcmtlciBzY29wZXMuCisKKyAgICAgICAgKiBqcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGpzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHBsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLW1hdmVy
aWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dDoKKwogMjAxNi0wMi0yNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTk1OTQ5KTogW0dUS10gVGVzdCAvd2Vi
a2l0Mi9XZWJLaXRXZWJWaWV3L2luc2VydC9saW5rIGlzIGZhaWxpbmcgc2luY2UgcjE5NTk0OQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZWRiOTliMTE2YjY3NDY3MTQxYjZlMTQ3
MzY2ZWQxNzA5ZTVjNjEyNC4uOTNmOWNiNWM1NGNkYTI1YzI2ZWJiODM0YjVhY2U4MjI2MzgwZjM5
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzEgQEAKIDIwMTYt
MDItMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAorICAg
ICAgICBbRmV0Y2ggQVBJXSBJbXBsZW1lbnQgRmV0Y2ggQVBJIFJlc3BvbnNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ1MzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgdGVzdHMgY292ZXJpbmcg
ZmV0Y2ggQVBJLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1jbG9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1jb25zdW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
ZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWVycm9yLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaWRsLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1pZGwuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2UtaW5pdC0wMDEuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2UtaW5pdC0wMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtZXJyb3ItZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jl
c3BvbnNlLXN0YXRpYy1lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1yZWRpcmVjdC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2Utc3RhdGljLXJlZGlyZWN0Lmh0bWw6IEFkZGVkLgorCisyMDE2LTAyLTI0
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKICAgICAgICAg
VzNDIGltcG9ydGVyIHNob3VsZCBnZW5lcmF0ZSBhbGwgd2ViLXBsYXRmb3JtLXRlc3RzIHN1Ym1v
ZHVsZXMgZGVzY3JpcHRpb25zCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTQ1ODcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVmYThmYTQ0ZDNmNWE5NmQ0NWI4NDRlNTczN2QyYjJhZjY0ZmM1NTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1jbG9uZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisK
K1BBU1MgQ2hlY2sgUmVzcG9uc2UncyBjbG9uZSB3aXRoIGRlZmF1bHQgdmFsdWVzLCB3aXRob3V0
IGJvZHkgCitQQVNTIENoZWNrIFJlc3BvbnNlJ3MgY2xvbmUgaGFzIHRoZSBleHBlY3RlZCBhdHRy
aWJ1dGUgdmFsdWVzIAorRkFJTCBDaGVjayBvcmdpbmFsIHJlc3BvbnNlJ3MgYm9keSBhZnRlciBj
bG9uaW5nIG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAncmVzcG9uc2UuYm9keS5n
ZXRSZWFkZXInKQorRkFJTCBDaGVjayBjbG9uZWQgcmVzcG9uc2UncyBib2R5IG51bGwgaXMgbm90
IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnY2xvbmVkUmVzcG9uc2UuYm9keS5nZXRSZWFkZXInKQor
RkFJTCBDYW5ub3QgY2xvbmUgYSBkaXN0dXJiZWQgcmVzcG9uc2UgYXNzZXJ0X3RydWU6IHJlc3Bv
bnNlIGlzIGRpc3R1cmJlZCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1jbG9uZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZDMyM2U2OGI0ZTg5NzVmMDA1NmQyZWEzNDYwYjczYTlkMGUxYjNiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY2xvbmUuaHRtbApAQCAtMCwwICsxLDY2IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+CisgICAgPHRpdGxlPlJlc3BvbnNlIGNsb25lPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJo
ZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVzcG9uc2UiPgorICAg
IDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0i
aHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+
CisgICAgICB2YXIgZGVmYXVsdFZhbHVlcyA9IHsgInR5cGUiIDogImRlZmF1bHQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ1cmwiIDogIiIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIm9rIiA6IHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyIg
OiAyMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1c1RleHQiIDogIk9LIgor
ICAgICAgfTsKKworICAgICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCk7CisgICAgICB2
YXIgY2xvbmVkUmVzcG9uc2UgPSByZXNwb25zZS5jbG9uZSgpOworICAgICAgdGVzdChmdW5jdGlv
bigpIHsKKyAgICAgICAgZm9yICh2YXIgYXR0cmlidXRlTmFtZSBpbiBkZWZhdWx0VmFsdWVzKSB7
CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1ZSA9IGRlZmF1bHRWYWx1ZXNbYXR0cmlidXRl
TmFtZV07CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNsb25lZFJlc3BvbnNlW2F0dHJpYnV0
ZU5hbWVdLCBleHBlY3RlZFZhbHVlLAorICAgICAgICAgICAgICAiRXhwZWN0IGRlZmF1bHQgcmVz
cG9uc2UuIiArIGF0dHJpYnV0ZU5hbWUgKyAiIGlzICIgKyBleHBlY3RlZFZhbHVlKTsKKyAgICAg
ICAgfQorICAgICAgfSwgIkNoZWNrIFJlc3BvbnNlJ3MgY2xvbmUgd2l0aCBkZWZhdWx0IHZhbHVl
cywgd2l0aG91dCBib2R5Iik7CisKKyAgICAgIHZhciBib2R5ID0gIlRoaXMgaXMgcmVzcG9uc2Ug
Ym9keSI7CisgICAgICB2YXIgaGVhZGVyc0luaXQgPSB7ICJuYW1lIiA6ICJ2YWx1ZSIgfTsKKyAg
ICAgIHZhciByZXNwb25zZUluaXQgID0geyAic3RhdHVzIiA6IDIwMCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAic3RhdHVzVGV4dCIgOiAiR09PRCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImhlYWRlcnMiIDogaGVhZGVyc0luaXQKKyAgICAgIH07CisgICAgICB2YXIgcmVz
cG9uc2UgPSBuZXcgUmVzcG9uc2UoYm9keSwgcmVzcG9uc2VJbml0KTsKKyAgICAgIHZhciBjbG9u
ZWRSZXNwb25zZSA9IHJlc3BvbnNlLmNsb25lKCk7CisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKGNsb25lZFJlc3BvbnNlLnN0YXR1cywgcmVzcG9uc2VJbml0
WyJzdGF0dXMiXSwKKyAgICAgICAgICAiRXhwZWN0IHJlc3BvbnNlLnN0YXR1cyBpcyAiICsgcmVz
cG9uc2VJbml0WyJzdGF0dXMiXSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoY2xvbmVkUmVzcG9u
c2Uuc3RhdHVzVGV4dCwgcmVzcG9uc2VJbml0WyJzdGF0dXNUZXh0Il0sCisgICAgICAgICAgIkV4
cGVjdCByZXNwb25zZS5zdGF0dXNUZXh0IGlzICIgKyByZXNwb25zZUluaXRbInN0YXR1c1RleHQi
XSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UuaGVhZGVycy5nZXQoIm5hbWUiKSwg
InZhbHVlIiwKKyAgICAgICAgICAiRXhwZWN0IHJlc3BvbnNlLmhlYWRlcnMgaGFzIG5hbWU6dmFs
dWUgaGVhZGVyIik7CisgICAgICB9LCAiQ2hlY2sgUmVzcG9uc2UncyBjbG9uZSBoYXMgdGhlIGV4
cGVjdGVkIGF0dHJpYnV0ZSB2YWx1ZXMiKTsKKworICAgICAgYXN5bmNfdGVzdChmdW5jdGlvbih0
ZXN0KSB7CisgICAgICAgIHJlYWRUZXh0U3RyZWFtKHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCks
IHRlc3QsIGJvZHkpOworICAgICAgfSwgIkNoZWNrIG9yZ2luYWwgcmVzcG9uc2UncyBib2R5IGFm
dGVyIGNsb25pbmciKTsKKworICAgICAgYXN5bmNfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAg
ICAgIHJlYWRUZXh0U3RyZWFtKGNsb25lZFJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCksIHRlc3Qs
IGJvZHkpOworICAgICAgfSwgIkNoZWNrIGNsb25lZCByZXNwb25zZSdzIGJvZHkiKTsKKworICAg
ICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICAgICAgdmFyIGRpc3R1cmJlZFJl
c3BvbnNlID0gbmV3IFJlc3BvbnNlKCk7CisgICAgICAgIHJldHVybiBkaXN0dXJiZWRSZXNwb25z
ZS50ZXh0KCkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGRpc3R1
cmJlZFJlc3BvbnNlLmJvZHlVc2VkLCAicmVzcG9uc2UgaXMgZGlzdHVyYmVkIik7CisgICAgICAg
ICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsIGZ1bmN0aW9uKCkgeyBkaXN0dXJi
ZWRSZXNwb25zZS5jbG9uZSgpOyB9LAorICAgICAgICAgICAgICAiRXhwZWN0IFR5cGVFcnJvciBl
eGNlcHRpb24iKTsKKyAgICAgICAgfSk7CisgICAgICB9LCAiQ2Fubm90IGNsb25lIGEgZGlzdHVy
YmVkIHJlc3BvbnNlIik7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtY29uc3VtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZjOGY4NjcyYjEwOTZmNmY2NGJl
MmExNDlmMTZmOGNiYTdmZjhhOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNv
bnN1bWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIENvbnN1bWUgcmVzcG9u
c2UncyBib2R5IGFzIHRleHQgCitGQUlMIENvbnN1bWUgcmVzcG9uc2UncyBib2R5IGFzIGJsb2Ig
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IHVuZGVmaW5lZAor
RkFJTCBDb25zdW1lIHJlc3BvbnNlJ3MgYm9keSBhcyBhcnJheUJ1ZmZlciBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogVGV4dERlY29kZXIiCitQQVNTIENvbnN1bWUgcmVzcG9uc2Un
cyBib2R5IGFzIGpzb24gCitGQUlMIENvbnN1bWUgcmVzcG9uc2UncyBib2R5IGFzIGZvcm1EYXRh
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtY29uc3VtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkZTAzMjE2NWViODhlNDJhYWE5ZjA4NjA2ZjVh
YWUxM2ZkOTczNGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLmh0
bWwKQEAgLTAsMCArMSw4MiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5SZXNwb25zZSBjb25zdW1lPC90
aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hh
dHdnLm9yZy8jcmVzcG9uc2UiPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
ZmV0Y2guc3BlYy53aGF0d2cub3JnLyNib2R5LW1peGluIj4KKyAgICA8bWV0YSBuYW1lPSJhdXRo
b3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5j
YW5vbi5mciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgIGZ1bmN0
aW9uIGNoZWNrQm9keVRleHQocmVzcG9uc2UsIGV4cGVjdGVkQm9keSkgeworICAgICAgcmV0dXJu
IHJlc3BvbnNlLnRleHQoKS50aGVuKCBmdW5jdGlvbihib2R5QXNUZXh0KSB7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoYm9keUFzVGV4dCwgZXhwZWN0ZWRCb2R5LCAiUmV0cmlldmUgYW5kIHZlcmlm
eSByZXNwb25zZSdzIGJvZHkiKTsKKyAgICAgICAgYXNzZXJ0X3RydWUocmVzcG9uc2UuYm9keVVz
ZWQgPT09IHRydWUsICJib2R5IGFzIHRleHQ6IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7CisgICAg
ICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0JvZHlCbG9iKHJlc3BvbnNlLCBleHBl
Y3RlZEJvZHkpIHsKKyAgICAgIHJldHVybiByZXNwb25zZS5ibG9iKCkudGhlbihmdW5jdGlvbihi
b2R5QXNCbG9iKSB7CisgICAgICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoIGZ1bmN0aW9u
IChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFk
ZXIoKTsKKyAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgICAg
ICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQpCisgICAgICAgICAgfTsKKyAgICAgICAgICByZWFk
ZXIub25lcnJvciA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJlamVjdCgiQmxvYidzIHJl
YWRlciBmYWlsZWQiKTsKKyAgICAgICAgICB9OworICAgICAgICAgIHJlYWRlci5yZWFkQXNUZXh0
KGJvZHlBc0Jsb2IpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UudGhlbihm
dW5jdGlvbihib2R5KSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhib2R5LCBleHBlY3RlZEJv
ZHksICJSZXRyaWV2ZSBhbmQgdmVyaWZ5IHJlc3BvbnNlJ3MgYm9keSIpOworICAgICAgICAgIGFz
c2VydF90cnVlKHJlc3BvbnNlLmJvZHlVc2VkID09PSB0cnVlLCAiYm9keSBhcyBibG9iOiBib2R5
VXNlZCB0dXJuZWQgdHJ1ZSIpOworICAgICAgICB9KTsKKyAgICAgIH0pOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGNoZWNrQm9keUFycmF5QnVmZmVyKHJlc3BvbnNlLCBleHBlY3RlZEJvZHkpIHsK
KyAgICAgIHJldHVybiByZXNwb25zZS5hcnJheUJ1ZmZlcigpLnRoZW4oIGZ1bmN0aW9uKGJvZHlB
c0FycmF5QnVmZmVyKSB7CisgICAgICAgIHZhciBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCJ1
dGYtOCIpOworICAgICAgICB2YXIgc3RyQm9keSA9IGRlY29kZXIuZGVjb2RlKGJvZHlBc0FycmF5
QnVmZmVyKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzdHJCb2R5LCBleHBlY3RlZEJvZHksICJS
ZXRyaWV2ZSBhbmQgdmVyaWZ5IHJlc3BvbnNlJ3MgYm9keSIpOworICAgICAgICBhc3NlcnRfdHJ1
ZShyZXNwb25zZS5ib2R5VXNlZCA9PT0gdHJ1ZSwgImJvZHkgYXMgYXJyYXlCdWZmZXI6IGJvZHlV
c2VkIHR1cm5lZCB0cnVlIik7CisgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVj
a0JvZHlKc29uKHJlc3BvbnNlLCBleHBlY3RlZEJvZHkpIHsKKyAgICAgIHJldHVybiByZXNwb25z
ZS5qc29uKCkudGhlbihmdW5jdGlvbihib2R5QXNKc29uKSB7CisgICAgICAgIHZhciBzdHJCb2R5
ID0gSlNPTi5zdHJpbmdpZnkoYm9keUFzSnNvbikKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzdHJC
b2R5LCBleHBlY3RlZEJvZHksICJSZXRyaWV2ZSBhbmQgdmVyaWZ5IHJlc3BvbnNlJ3MgYm9keSIp
OworICAgICAgICBhc3NlcnRfdHJ1ZShyZXNwb25zZS5ib2R5VXNlZCA9PT0gdHJ1ZSwgImJvZHkg
YXMganNvbjogYm9keVVzZWQgdHVybmVkIHRydWUiKTsKKyAgICAgIH0pOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGNoZWNrQm9keUZvcm1EYXRhKHJlc3BvbnNlLCBleHBlY3RlZEJvZHkpIHsKKyAg
ICAgIHJldHVybiByZXNwb25zZS5mb3JtRGF0YSgpLnRoZW4oZnVuY3Rpb24oYm9keUFzRm9ybURh
dGEpIHsKKyAgICAgICAgZm9yICh2YXIgbmFtZSBvZiBleHBlY3RlZEJvZHkua2V5cygpKQorICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoYm9keUFzRm9ybURhdGEuZ2V0KG5hbWUpLCBleHBlY3RlZEJv
ZHkuZ2V0KG5hbWUpICwgIlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVzcG9uc2UncyBib2R5IiApOwor
ICAgICAgICBhc3NlcnRfdHJ1ZShyZXNwb25zZS5ib2R5VXNlZCA9PT0gdHJ1ZSwgImJvZHkgYXMg
Zm9ybURhdGE6IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7CisgICAgIH0pOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGNoZWNrUmVzcG9uc2VCb2R5KGJvZHksIGJvZHlUeXBlLCBjaGVja0Z1bmN0aW9u
KSB7CisgICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgICAgICB2YXIgcmVz
cG9uc2UgPSBuZXcgUmVzcG9uc2UoYm9keSk7CisgICAgICAgIGFzc2VydF90cnVlKHJlc3BvbnNl
LmJvZHlVc2VkID09PSBmYWxzZSwgImJvZHlVc2VkIGlzIGZhbHNlIGF0IGluaXQiKTsKKyAgICAg
ICAgcmV0dXJuIGNoZWNrRnVuY3Rpb24ocmVzcG9uc2UsIGJvZHkpOworICAgICAgfSwgIkNvbnN1
bWUgcmVzcG9uc2UncyBib2R5IGFzICIgKyBib2R5VHlwZSk7CisgICAgfQorCisgICAgdmFyIGZv
cm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7CisgICAgZm9ybURhdGEuYXBwZW5kKCJuYW1lIiwgInZh
bHVlIikKKyAgICBjaGVja1Jlc3BvbnNlQm9keSgiVGhpcyBpcyByZXNwb25zZSdzIGJvZHkiLCAi
dGV4dCIsIGNoZWNrQm9keVRleHQpOworICAgIGNoZWNrUmVzcG9uc2VCb2R5KCJUaGlzIGlzIHJl
c3BvbnNlJ3MgYm9keSIsICJibG9iIiwgY2hlY2tCb2R5QmxvYik7CisgICAgY2hlY2tSZXNwb25z
ZUJvZHkoIlRoaXMgaXMgcmVzcG9uc2UncyBib2R5IiwgImFycmF5QnVmZmVyIiwgY2hlY2tCb2R5
QXJyYXlCdWZmZXIpOworICAgIGNoZWNrUmVzcG9uc2VCb2R5KEpTT04uc3RyaW5naWZ5KCJUaGlz
IGlzIHJlc3BvbnNlJ3MgYm9keSIpLCAianNvbiIsIGNoZWNrQm9keUpzb24pOworICAgIGNoZWNr
UmVzcG9uc2VCb2R5KGZvcm1EYXRhLCAiZm9ybURhdGEiLCBjaGVja0JvZHlGb3JtRGF0YSk7Cisg
ICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1lcnJvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVjNTcxMDIyZDc4NjEz
NzQ5NmNlYzZhMTc4OGFmOTNkZGJlZWJjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBUaHJvd3MgUmFu
Z2VFcnJvciB3aGVuIHJlc3BvbnNlSW5pdCdzIHN0YXR1cyBpcyBpbnZhbGlkIAorRkFJTCBUaHJv
d3MgVHlwZUVycm9yIHdoZW4gcmVzcG9uc2VJbml0J3Mgc3RhdHVzVGV4dCBpcyBpbnZhbGlkIGFz
c2VydF90aHJvd3M6IEV4cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uIAorIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7IG5ldyBSZXNwb25zZSgiIiwgeyAic3RhdHVzVGV4dCIgOiBzdGF0dXNUZXguLi4i
IGRpZCBub3QgdGhyb3cKK1BBU1MgVGhyb3dzIFR5cGVFcnJvciB3aGVuIGJ1aWxkaW5nIGEgcmVz
cG9uc2Ugd2l0aCBib2R5IGFuZCBhIG51bGwgYm9keSBzdGF0dXMgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3Bv
bnNlL3Jlc3BvbnNlLWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjEzMDI0NTI4MDgxZGQwNTRiYzQwMDFkMDc5MTMwNzA3NWE2MDAzMWEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1lcnJvci5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKyAgICA8dGl0bGU+UmVzcG9uc2UgZXJyb3I8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXNwb25zZSI+CisgICAg
PG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJo
dHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNj
cmlwdD4KKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBpbnZhbGlkU3RhdHVz
ID0gWzAsIDEwMCwgMTk5LCA2MDAsIDEwMDBdOworICAgICAgICBpbnZhbGlkU3RhdHVzLmZvckVh
Y2goZnVuY3Rpb24oc3RhdHVzKSB7CisgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgUmFuZ2VF
cnJvcigpICwgZnVuY3Rpb24oKSB7IG5ldyBSZXNwb25zZSgiIiwgeyAic3RhdHVzIiA6IHN0YXR1
cyB9KTsgfSwKKyAgICAgICAgICAgICJFeHBlY3QgUmFuZ2VFcnJvciBleGNlcHRpb24gd2hlbiBz
dGF0dXMgaXMgIiArIHN0YXR1cyk7CisgICAgICAgIH0pOworICAgICAgfSwiVGhyb3dzIFJhbmdl
RXJyb3Igd2hlbiByZXNwb25zZUluaXQncyBzdGF0dXMgaXMgaW52YWxpZCIpOworCisgICAgICB0
ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaW52YWxpZFN0YXR1c1RleHQgPSBbIlxuIiwg
IsSAIl07CisgICAgICAgIGludmFsaWRTdGF0dXNUZXh0LmZvckVhY2goZnVuY3Rpb24oc3RhdHVz
VGV4dCkgeworICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpICwgZnVuY3Rp
b24oKSB7IG5ldyBSZXNwb25zZSgiIiwgeyAic3RhdHVzVGV4dCIgOiBzdGF0dXNUZXh0IH0pOyB9
LAorICAgICAgICAgICAgIkV4cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uICIgKyBzdGF0dXNUZXh0
KTsKKyAgICAgICAgfSk7CisgICAgICB9LCJUaHJvd3MgVHlwZUVycm9yIHdoZW4gcmVzcG9uc2VJ
bml0J3Mgc3RhdHVzVGV4dCBpcyBpbnZhbGlkIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7
CisgICAgICAgIHZhciBudWxsQm9keVN0YXR1cyA9IFsyMDQsIDIwNSwgMzA0XTsKKyAgICAgICAg
bnVsbEJvZHlTdGF0dXMuZm9yRWFjaChmdW5jdGlvbihzdGF0dXMpIHsKKyAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsCisgICAgICAgICAgICBmdW5jdGlvbigpIHsgbmV3
IFJlc3BvbnNlKCJib2R5IiwgeyAic3RhdHVzIiA6IHN0YXR1cyB9KTsgfSwKKyAgICAgICAgICAg
ICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiAiKTsKKyAgICAgICAgfSk7CisgICAgICB9LCJU
aHJvd3MgVHlwZUVycm9yIHdoZW4gYnVpbGRpbmcgYSByZXNwb25zZSB3aXRoIGJvZHkgYW5kIGEg
bnVsbCBib2R5IHN0YXR1cyIpOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaWRs
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWlkbC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDMwMzdhMDIxZTMwZDkwOTQ5Y2I4MmU2OGNhODMwMzhkYWI2NWMyNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWlkbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NyBAQAor
CitQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBvYmplY3QgCitQQVNTIFJlc3BvbnNlIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAor
UEFTUyBSZXNwb25zZSBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgCitQQVNTIFJlc3BvbnNlIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2Jq
ZWN0IAorUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCitQ
QVNTIFJlc3BvbnNlIGludGVyZmFjZTogb3BlcmF0aW9uIGVycm9yKCkgCitQQVNTIFJlc3BvbnNl
IGludGVyZmFjZTogb3BlcmF0aW9uIHJlZGlyZWN0KFVTVlN0cmluZyx1bnNpZ25lZCBzaG9ydCkg
CitQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogYXR0cmlidXRlIHR5cGUgCitQQVNTIFJlc3BvbnNl
IGludGVyZmFjZTogYXR0cmlidXRlIHVybCAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgc3RhdHVzIAorUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBvayAKK1BB
U1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc3RhdHVzVGV4dCAKK1BBU1MgUmVzcG9u
c2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaGVhZGVycyAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgYm9keSAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBvcGVyYXRpb24gY2xv
bmUoKSAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYm9keVVzZWQgCitGQUlM
IFJlc3BvbnNlIGludGVyZmFjZTogb3BlcmF0aW9uIGFycmF5QnVmZmVyKCkgYXNzZXJ0X3Rocm93
czogY2FsbGluZyBvcGVyYXRpb24gd2l0aCB0aGlzID0gbnVsbCBkaWRuJ3QgdGhyb3cgVHlwZUVy
cm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgbWVtYmVySG9sZGVy
T2JqZWN0W21lbWJlci5uLi4uIiBkaWQgbm90IHRocm93CitGQUlMIFJlc3BvbnNlIGludGVyZmFj
ZTogb3BlcmF0aW9uIGJsb2IoKSBhc3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9wZXJhdGlvbiB3aXRo
IHRoaXMgPSBudWxsIGRpZG4ndCB0aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3RbbWVtYmVyLm4uLi4iIGRpZCBu
b3QgdGhyb3cKK0ZBSUwgUmVzcG9uc2UgaW50ZXJmYWNlOiBvcGVyYXRpb24gZm9ybURhdGEoKSBh
c3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9wZXJhdGlvbiB3aXRoIHRoaXMgPSBudWxsIGRpZG4ndCB0
aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBt
ZW1iZXJIb2xkZXJPYmplY3RbbWVtYmVyLm4uLi4iIGRpZCBub3QgdGhyb3cKK0ZBSUwgUmVzcG9u
c2UgaW50ZXJmYWNlOiBvcGVyYXRpb24ganNvbigpIGFzc2VydF90aHJvd3M6IGNhbGxpbmcgb3Bl
cmF0aW9uIHdpdGggdGhpcyA9IG51bGwgZGlkbid0IHRocm93IFR5cGVFcnJvciBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIG1lbWJlckhvbGRlck9iamVjdFttZW1iZXIu
bi4uLiIgZGlkIG5vdCB0aHJvdworRkFJTCBSZXNwb25zZSBpbnRlcmZhY2U6IG9wZXJhdGlvbiB0
ZXh0KCkgYXNzZXJ0X3Rocm93czogY2FsbGluZyBvcGVyYXRpb24gd2l0aCB0aGlzID0gbnVsbCBk
aWRuJ3QgdGhyb3cgVHlwZUVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICAgICAgbWVtYmVySG9sZGVyT2JqZWN0W21lbWJlci5uLi4uIiBkaWQgbm90IHRocm93CitQQVNT
IFJlc3BvbnNlIG11c3QgYmUgcHJpbWFyeSBpbnRlcmZhY2Ugb2YgbmV3IFJlc3BvbnNlKCkgCitQ
QVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgUmVzcG9uc2UoKSAKK1BBU1MgUmVzcG9uc2UgaW50
ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImVycm9yIiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoMCkgCitQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogbmV3IFJlc3Bv
bnNlKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZWRpcmVjdCIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgKDEpIAorUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IGNhbGxpbmcgcmVkaXJlY3QoVVNWU3Ry
aW5nLHVuc2lnbmVkIHNob3J0KSBvbiBuZXcgUmVzcG9uc2UoKSB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yIAorUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBS
ZXNwb25zZSgpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgKDIpIAorUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBSZXNwb25zZSgpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAidXJsIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMykgCitQQVNTIFJlc3Bv
bnNlIGludGVyZmFjZTogbmV3IFJlc3BvbnNlKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzdGF0
dXMiIHdpdGggdGhlIHByb3BlciB0eXBlICg0KSAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBu
ZXcgUmVzcG9uc2UoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9rIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoNSkgCitQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogbmV3IFJlc3BvbnNlKCkgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJzdGF0dXNUZXh0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNikgCitQ
QVNTIFJlc3BvbnNlIGludGVyZmFjZTogbmV3IFJlc3BvbnNlKCkgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJoZWFkZXJzIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNykgCitQQVNTIFJlc3BvbnNlIGlu
dGVyZmFjZTogbmV3IFJlc3BvbnNlKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJib2R5IiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoOCkgCitQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogbmV3IFJlc3Bv
bnNlKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbG9uZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
KDkpIAorUEFTUyBSZXNwb25zZSBpbnRlcmZhY2U6IG5ldyBSZXNwb25zZSgpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiYm9keVVzZWQiIHdpdGggdGhlIHByb3BlciB0eXBlICgxMCkgCitQQVNTIFJl
c3BvbnNlIGludGVyZmFjZTogbmV3IFJlc3BvbnNlKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJh
cnJheUJ1ZmZlciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDExKSAKK1BBU1MgUmVzcG9uc2UgaW50
ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImJsb2IiIHdpdGgg
dGhlIHByb3BlciB0eXBlICgxMikgCitQQVNTIFJlc3BvbnNlIGludGVyZmFjZTogbmV3IFJlc3Bv
bnNlKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJmb3JtRGF0YSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgKDEzKSAKK1BBU1MgUmVzcG9uc2UgaW50ZXJmYWNlOiBuZXcgUmVzcG9uc2UoKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgImpzb24iIHdpdGggdGhlIHByb3BlciB0eXBlICgxNCkgCitQQVNTIFJl
c3BvbnNlIGludGVyZmFjZTogbmV3IFJlc3BvbnNlKCkgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0
ZXh0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTUpIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1pZGwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWlkbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5ZGRm
NzVjYjIwNTUyMWRkN2ZlMTI0NjhjY2UxNzUwMDg5M2MxZDEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1pZGwuaHRtbApAQCAtMCwwICsxLDY5IEBACis8IWRvY3R5cGUgaHRtbD4K
KzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxl
PlJlc3BvbnNlIGlkbCBpbnRlcmZhY2U8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXNwb25zZSI+CisgICAgPG1ldGEg
bmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczov
L3d3dy5jcmYuY2Fub24uZnIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvV2ViSURM
UGFyc2VyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9pZGxoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0IGlkPSJi
b2R5LWlkbCIgdHlwZT0idGV4dC9wbGFpbiI+CisgICAgICB0eXBlZGVmIGFueSBKU09OOworICAg
ICAgdHlwZWRlZiAoQmxvYiBvciBCdWZmZXJTb3VyY2Ugb3IgRm9ybURhdGEgb3IgVVJMU2VhcmNo
UGFyYW1zIG9yIFVTVlN0cmluZykgQm9keUluaXQ7CisKKyAgICAgIFtOb0ludGVyZmFjZU9iamVj
dCwKKyAgICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQorICAgICAgaW50ZXJmYWNlIEJvZHkg
eworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBib2R5VXNlZDsKKyAgICAgICAg
W05ld09iamVjdF0gUHJvbWlzZTxBcnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXIoKTsKKyAgICAgICAg
W05ld09iamVjdF0gUHJvbWlzZTxCbG9iPiBibG9iKCk7CisgICAgICAgIFtOZXdPYmplY3RdIFBy
b21pc2U8Rm9ybURhdGE+IGZvcm1EYXRhKCk7CisgICAgICAgIFtOZXdPYmplY3RdIFByb21pc2U8
SlNPTj4ganNvbigpOworICAgICAgICBbTmV3T2JqZWN0XSBQcm9taXNlPFVTVlN0cmluZz4gdGV4
dCgpOworICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IGlkPSJyZXNwb25zZS1p
ZGwiIHR5cGU9InRleHQvcGxhaW4iPgorICAgICAgW0NvbnN0cnVjdG9yKG9wdGlvbmFsIEJvZHlJ
bml0IGJvZHksIG9wdGlvbmFsIFJlc3BvbnNlSW5pdCBpbml0KSwKKyAgICAgIEV4cG9zZWQ9KFdp
bmRvdyxXb3JrZXIpXQorICAgICAgaW50ZXJmYWNlIFJlc3BvbnNlIHsKKyAgICAgICAgW05ld09i
amVjdF0gc3RhdGljIFJlc3BvbnNlIGVycm9yKCk7CisgICAgICAgIFtOZXdPYmplY3RdIHN0YXRp
YyBSZXNwb25zZSByZWRpcmVjdChVU1ZTdHJpbmcgdXJsLCBvcHRpb25hbCB1bnNpZ25lZCBzaG9y
dCBzdGF0dXMgPSAzMDIpOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSZXNwb25zZVR5
cGUgdHlwZTsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHVybDsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHN0YXR1czsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb2s7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBCeXRlU3RyaW5nIHN0YXR1c1RleHQ7CisgICAgICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBh
dHRyaWJ1dGUgSGVhZGVycyBoZWFkZXJzOworICAgICAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkg
YXR0cmlidXRlIFJlYWRhYmxlU3RyZWFtIGJvZHk7CisKKyAgICAgICAgW05ld09iamVjdF0gUmVz
cG9uc2UgY2xvbmUoKTsKKyAgICAgIH07CisgICAgICBSZXNwb25zZSBpbXBsZW1lbnRzIEJvZHk7
CisKKyAgICAgIGRpY3Rpb25hcnkgUmVzcG9uc2VJbml0IHsKKyAgICAgICAgdW5zaWduZWQgc2hv
cnQgc3RhdHVzID0gMjAwOworICAgICAgICBCeXRlU3RyaW5nIHN0YXR1c1RleHQgPSAiT0siOwor
ICAgICAgICBIZWFkZXJzSW5pdCBoZWFkZXJzOworICAgICAgfTsKKworICAgICAgZW51bSBSZXNw
b25zZVR5cGUgeyAiYmFzaWMiLCAiY29ycyIsICJkZWZhdWx0IiwgImVycm9yIiwgIm9wYXF1ZSIs
ICJvcGFxdWVyZWRpcmVjdCIgfTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAg
dmFyIGlkbHNBcnJheSA9IG5ldyBJZGxBcnJheSgpOworICAgICAgdmFyIGlkbCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJib2R5LWlkbCIpLmlubmVySFRNTAorICAgICAgaWRsICs9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZXNwb25zZS1pZGwiKS5pbm5lckhUTUwKKworICAgICAgaWRs
c0FycmF5LmFkZF9pZGxzKGlkbCk7CisgICAgICBpZGxzQXJyYXkuYWRkX3VudGVzdGVkX2lkbHMo
ImludGVyZmFjZSBIZWFkZXJzIHt9OyIpOworICAgICAgaWRsc0FycmF5LmFkZF91bnRlc3RlZF9p
ZGxzKCJpbnRlcmZhY2UgUmVhZGFibGVTdHJlYW0ge307Iik7CisgICAgICBpZGxzQXJyYXkuYWRk
X29iamVjdHMoeyBSZXNwb25zZTogWyduZXcgUmVzcG9uc2UoKSddIH0pOworICAgICAgaWRsc0Fy
cmF5LnRlc3QoKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAxLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAxLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45N2RlNDA1MzgwZmU5ZDg1MTlkYjNlZmNiODAxOWJhYmUyOTQ2OWZjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKKworUEFTUyBDaGVjayBkZWZhdWx0IHZhbHVlIGZvciB0eXBlIGF0dHJpYnV0ZSAKK1BB
U1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBmb3IgdXJsIGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgZGVm
YXVsdCB2YWx1ZSBmb3Igb2sgYXR0cmlidXRlIAorUEFTUyBDaGVjayBkZWZhdWx0IHZhbHVlIGZv
ciBzdGF0dXMgYXR0cmlidXRlIAorUEFTUyBDaGVjayBkZWZhdWx0IHZhbHVlIGZvciBzdGF0dXNU
ZXh0IGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgZGVmYXVsdCB2YWx1ZSBmb3IgYm9keSBhdHRyaWJ1
dGUgCitQQVNTIENoZWNrIHN0YXR1cyBpbml0IHZhbHVlcyBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIg
CitQQVNTIENoZWNrIHN0YXR1c1RleHQgaW5pdCB2YWx1ZXMgYW5kIGFzc29jaWF0ZWQgZ2V0dGVy
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2UtaW5pdC0wMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzZmOTBlNGM4Mjc5ODEzMDdlMjQzNDQ2
ZTI0NDhkMWJjMzE5OWUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0w
MDEuaHRtbApAQCAtMCwwICsxLDYzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlc3BvbnNlIGluaXQ6
IHNpbXBsZSBjYXNlczwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3Jlc3BvbnNlIj4KKyAgICA8bWV0YSBuYW1lPSJoZWxw
IiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1yZXNwb25zZSI+
CisgICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBo
cmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+Cisg
ICAgPHNjcmlwdD4KKyAgICAgIHZhciBkZWZhdWx0VmFsdWVzID0geyAidHlwZSIgOiAiZGVmYXVs
dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVybCIgOiAiIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAib2siIDogdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAic3RhdHVzIiA6IDIwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzVGV4
dCIgOiAiT0siLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJib2R5IiA6IG51bGwKKyAg
ICAgIH07CisKKyAgICAgIHZhciBzdGF0dXNDb2RlcyA9IHsgImdpdmVuVmFsdWVzIiA6IFsyMDAs
IDMwMCwgNDAwLCA1MDAsIDU5OV0sCisgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZFZh
bHVlcyIgOiBbMjAwLCAzMDAsIDQwMCwgNTAwLCA1OTldCisgICAgICB9OworICAgICAgdmFyIHN0
YXR1c1RleHRzID0geyAiZ2l2ZW5WYWx1ZXMiIDogWyJPSyIsICJ3aXRoIHNwYWNlIiwgU3RyaW5n
LmZyb21DaGFyQ29kZSgweDgwKV0sCisgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZFZh
bHVlcyIgOiBbIk9LIiwgIndpdGggc3BhY2UiLCBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ODApXQor
ICAgICAgfTsKKyAgICAgIHZhciBpbml0VmFsdWVzRGljdCA9IHsgInN0YXR1cyIgOiBzdGF0dXND
b2RlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1c1RleHQiIDogc3RhdHVz
VGV4dHMKKyAgICAgIH07CisKKyAgICAgIGZ1bmN0aW9uIGlzT2tTdGF0dXMoc3RhdHVzKSB7Cisg
ICAgICAgIHJldHVybiAyMDAgPD0gc3RhdHVzICYmICAyOTkgPj0gc3RhdHVzOworICAgICAgfQor
CisgICAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoKTsKKyAgICAgIGZvciAodmFyIGF0
dHJpYnV0ZU5hbWUgaW4gZGVmYXVsdFZhbHVlcykgeworICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkg
eworICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gZGVmYXVsdFZhbHVlc1thdHRyaWJ1dGVO
YW1lXTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlW2F0dHJpYnV0ZU5hbWVdLCBl
eHBlY3RlZFZhbHVlLAorICAgICAgICAgICAgIkV4cGVjdCBkZWZhdWx0IHJlc3BvbnNlLiIgKyBh
dHRyaWJ1dGVOYW1lICsgIiBpcyAiICsgZXhwZWN0ZWRWYWx1ZSk7CisgICAgICAgIH0sICJDaGVj
ayBkZWZhdWx0IHZhbHVlIGZvciAiICsgYXR0cmlidXRlTmFtZSArICIgYXR0cmlidXRlIik7Cisg
ICAgICB9CisKKyAgICAgIGZvciAodmFyIGF0dHJpYnV0ZU5hbWUgaW4gaW5pdFZhbHVlc0RpY3Qp
CisgICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHZhbHVlc1RvVGVzdCA9
IGluaXRWYWx1ZXNEaWN0W2F0dHJpYnV0ZU5hbWVdOworICAgICAgICAgIGZvciAodmFyIHZhbHVl
SWR4IGluIHZhbHVlc1RvVGVzdFsiZ2l2ZW5WYWx1ZXMiXSkgeworICAgICAgICAgICAgdmFyIGdp
dmVuVmFsdWUgPSB2YWx1ZXNUb1Rlc3RbImdpdmVuVmFsdWVzIl1bdmFsdWVJZHhdOworICAgICAg
ICAgICAgdmFyIGV4cGVjdGVkVmFsdWUgPSB2YWx1ZXNUb1Rlc3RbImV4cGVjdGVkVmFsdWVzIl1b
dmFsdWVJZHhdOworICAgICAgICAgICAgdmFyIHJlc3BvbnNlSW5pdCA9IHt9OworICAgICAgICAg
ICAgcmVzcG9uc2VJbml0W2F0dHJpYnV0ZU5hbWVdID0gZ2l2ZW5WYWx1ZTsKKyAgICAgICAgICAg
IHZhciByZXNwb25zZSA9IG5ldyBSZXNwb25zZSgiIiwgcmVzcG9uc2VJbml0KTsKKyAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2VbYXR0cmlidXRlTmFtZV0sIGV4cGVjdGVkVmFsdWUs
CisgICAgICAgICAgICAgICJFeHBlY3QgcmVzcG9uc2UuIiArIGF0dHJpYnV0ZU5hbWUgKyAiIGlz
ICIgKyBleHBlY3RlZFZhbHVlICsKKyAgICAgICAgICAgICAgIiB3aGVuIGluaXRpYWxpemVkIHdp
dGggIiArIGdpdmVuVmFsdWUpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5v
aywgaXNPa1N0YXR1cyhyZXNwb25zZS5zdGF0dXMpLAorICAgICAgICAgICAgICAiRXhwZWN0IHJl
c3BvbnNlLm9rIGlzICIgKyBpc09rU3RhdHVzKHJlc3BvbnNlLnN0YXR1cykpOworICAgICAgICAg
IH0KKyAgICAgICAgfSwgIkNoZWNrICIgKyBhdHRyaWJ1dGVOYW1lICsgIiBpbml0IHZhbHVlcyBh
bmQgYXNzb2NpYXRlZCBnZXR0ZXIiKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LWluaXQtMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hYjYwZWUxNmVkMDczYzVhMjI2NjllYzYwY2E5ODEzMGRmOTYwYzg2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsOCBAQAorCitQQVNTIEluaXRpYWxpemUgUmVzcG9uc2Ugd2l0aCBoZWFkZXJz
IHZhbHVlcyAKK0ZBSUwgSW5pdGlhbGl6ZSBSZXNwb25zZSdzIGJvZHkgd2l0aCBhcHBsaWNhdGlv
bi9vY3RldC1iaW5hcnkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IHVuZGVmaW5lZAorRkFJTCBJbml0aWFsaXplIFJlc3BvbnNlJ3MgYm9keSB3aXRoIG11bHRp
cGFydC9mb3JtLWRhdGEgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IHVuZGVmaW5lZAorRkFJTCBJbml0aWFsaXplIFJlc3BvbnNlJ3MgYm9keSB3aXRoIGFwcGxp
Y2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IGFzc2VydF90cnVlOiBD
b250ZW50LVR5cGUgaGVhZGVyIHNob3VsZCBiZSAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxl
bmNvZGVkO2NoYXJzZXQ9VVRGLTgiICBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBJbml0
aWFsaXplIFJlc3BvbnNlJ3MgYm9keSB3aXRoIHRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCAKK0ZB
SUwgUmVhZCBSZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0gbnVsbCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICdyZXNwb25zZS5ib2R5LmdldFJlYWRlcicpCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAw
Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFiYWY3ZmIzNTViYjkxMjEyYzM0NmUwMThhZTM1ZjllN2VkOGFh
ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMi5odG1sCkBAIC0w
LDAgKzEsNjIgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVzcG9uc2UgaW5pdDogYm9keSBhbmQgaGVh
ZGVyczwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5z
cGVjLndoYXR3Zy5vcmcvI3Jlc3BvbnNlIj4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJo
dHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1yZXNwb25zZSI+CisgICAgPG1l
dGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRw
czovL3d3dy5jcmYuY2Fub24uZnIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy91dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAg
ICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBoZWFkZXJEaWN0ID0geyJuYW1lMSI6
ICJ2YWx1ZTEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZTIiOiAidmFsdWUyIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUzIjogInZhbHVlMyIKKyAgICAgICAgfTsK
KyAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJEaWN0KTsKKyAgICAgICAg
dmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCIiLCB7ICJoZWFkZXJzIiA6IGhlYWRlcnMgfSkK
KyAgICAgICAgZm9yICh2YXIgbmFtZSBpbiBoZWFkZXJEaWN0KSB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZXNwb25zZS5oZWFkZXJzLmdldChuYW1lKSwgaGVhZGVyRGljdFtuYW1lXSwKKyAg
ICAgICAgICAgInJlc3BvbnNlJ3MgaGVhZGVycyBoYXMgIiArIG5hbWUgKyAiIDogIiArIGhlYWRl
ckRpY3RbbmFtZV0pOworICAgICAgICB9CisgICAgICB9LCAiSW5pdGlhbGl6ZSBSZXNwb25zZSB3
aXRoIGhlYWRlcnMgdmFsdWVzIik7CisKKyAgICAgIGZ1bmN0aW9uIGNoZWNrUmVzcG9uc2VJbml0
KGJvZHksIGJvZHlUeXBlLCBleHBlY3RlZFRleHRCb2R5KSB7CisgICAgICAgIHByb21pc2VfdGVz
dChmdW5jdGlvbih0ZXN0KSB7CisgICAgICAgICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNl
KGJvZHkpOworICAgICAgICAgIHZhciByZXNIZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVyczsKKyAg
ICAgICAgICB2YXIgbWltZSA9IHJlc0hlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKTsKKyAgICAg
ICAgICBhc3NlcnRfdHJ1ZShtaW1lICYmIG1pbWUuc2VhcmNoKGJvZHlUeXBlKSA+IC0xLCAiQ29u
dGVudC1UeXBlIGhlYWRlciBzaG91bGQgYmUgXCIiICsgYm9keVR5cGUgKyAiXCIgIik7CisgICAg
ICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc1RleHQpIHsK
KyAgICAgICAgICAgIC8vbm90IGVxdWFsczogY2Fubm90IGd1ZXNzIGZvcm1EYXRhIGV4YWN0IHZh
bHVlCisgICAgICAgICAgICBhc3NlcnRfdHJ1ZSggYm9keUFzVGV4dC5zZWFyY2goZXhwZWN0ZWRU
ZXh0Qm9keSkgPiAtMSwgIlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVzcG9uc2UgYm9keSIpOworICAg
ICAgICAgIH0pOworICAgICAgICB9LCAiSW5pdGlhbGl6ZSBSZXNwb25zZSdzIGJvZHkgd2l0aCAi
ICsgYm9keVR5cGUpOworICAgICAgfQorCisgICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFsiVGhp
cyBpcyBhIGJsb2IiXSwge3R5cGU6ICJhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkifSk7CisgICAg
ICB2YXIgZm9ybWFEYXRhID0gbmV3IEZvcm1EYXRhKCk7CisgICAgICBmb3JtYURhdGEuYXBwZW5k
KCJuYW1lIiwgInZhbHVlIik7CisgICAgICB2YXIgdXJsU2VhcmNoUGFyYW1zID0gIlVSTFNlYXJj
aFBhcmFtcyBhcmUgbm90IHN1cHBvcnRlZCI7CisgICAgICAvL2F2b2lkIHRlc3QgdGltZW91dCBp
ZiBub3QgaW1wbGVtZW50ZWQKKyAgICAgIGlmICh3aW5kb3cuVVJMU2VhcmNoUGFyYW1zKQorICAg
ICAgICB1cmxTZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCJuYW1lPXZhbHVlIik7
CisgICAgICB2YXIgdXN2U3RyaW5nID0gIlRoaXMgaXMgYSBVU1ZTdHJpbmciCisKKyAgICAgIGNo
ZWNrUmVzcG9uc2VJbml0KGJsb2IsICJhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkiLCAiVGhpcyBp
cyBhIGJsb2IiKTsKKyAgICAgIGNoZWNrUmVzcG9uc2VJbml0KGZvcm1hRGF0YSwgIm11bHRpcGFy
dC9mb3JtLWRhdGEiLCAibmFtZT1cIm5hbWVcIlxyXG5cclxudmFsdWUiKTsKKyAgICAgIGNoZWNr
UmVzcG9uc2VJbml0KHVybFNlYXJjaFBhcmFtcywgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJs
ZW5jb2RlZDtjaGFyc2V0PVVURi04IiwgIm5hbWU9dmFsdWUiKTsKKyAgICAgIGNoZWNrUmVzcG9u
c2VJbml0KHVzdlN0cmluZywgInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCIsICJUaGlzIGlzIGEg
VVNWU3RyaW5nIik7CisKKyAgICAgIGFzeW5jX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgICAg
ICB2YXIgYm9keSA9ICJUaGlzIGlzIHJlc3BvbnNlIGJvZHkiOworICAgICAgICB2YXIgcmVzcG9u
c2UgPSBuZXcgUmVzcG9uc2UoYm9keSk7CisgICAgICAgIHJlYWRUZXh0U3RyZWFtKHJlc3BvbnNl
LmJvZHkuZ2V0UmVhZGVyKCksIHRlc3QsIGJvZHkpOworICAgICAgfSwgIlJlYWQgUmVzcG9uc2Un
cyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtIik7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLXN0YXRpYy1lcnJvci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjBhNWM4NWU4ZjE5MDMwMDM0ZWEyNjdmMjM2ZmZkNmVlZDA1ZjIwZDAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNwb25zZS9yZXNwb25zZS1zdGF0aWMtZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIENoZWNrIHJlc3BvbnNlIHJldHVybmVkIGJ5IHN0YXRpYyBtZXRob2QgZXJy
b3IoKSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLWVycm9yLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNw
b25zZS9yZXNwb25zZS1zdGF0aWMtZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjNiZDVlM2U1ZWYy
YmIxOTJkYWQxNDZkNGM0ZTE5NWZkNTkwOGEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVz
cG9uc2Utc3RhdGljLWVycm9yLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRs
ZT5SZXNwb25zZTogZXJyb3Igc3RhdGljIG1ldGhvZDwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3Jlc3BvbnNlIj4KKyAg
ICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8j
Y29uY2VwdC1uZXR3b3JrLWVycm9yIj4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJD
YW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgdGVzdChmdW5jdGlvbigp
IHsKKyAgICAgICAgdmFyIHJlc3BvbnNlRXJyb3IgPSBSZXNwb25zZS5lcnJvcigpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlRXJyb3IudHlwZSwgImVycm9yIiwgIk5ldHdvcmsgZXJy
b3IgcmVzcG9uc2UncyB0eXBlIGlzIGVycm9yIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVz
cG9uc2VFcnJvci5zdGF0dXMsIDAsICJOZXR3b3JrIGVycm9yIHJlc3BvbnNlJ3Mgc3RhdHVzIGlz
IDAiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZUVycm9yLnN0YXR1c1RleHQsICIi
LCAiTmV0d29yayBlcnJvciByZXNwb25zZSdzIHN0YXR1c1RleHQgaXMgZW1wdHkiKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZUVycm9yLmJvZHksIG51bGwsICJOZXR3b3JrIGVycm9y
IHJlc3BvbnNlJ3MgYm9keSBpcyBudWxsIik7CisgICAgICB9LCAiQ2hlY2sgcmVzcG9uc2UgcmV0
dXJuZWQgYnkgc3RhdGljIG1ldGhvZCBlcnJvcigpIik7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1zdGF0aWMtcmVkaXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
c3RhdGljLXJlZGlyZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZmQyN2ZkZDQ3ZmRiODU3
NDUxMTRmYWU0ZjQzZjIwYzA2ODAwMmJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2Utc3RhdGljLXJlZGlyZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBD
aGVjayByZXNwb25zZSByZXR1cm5lZCBieSBzdGF0aWMgbWV0aG9kIHJlZGlyZWN0KCkgCitGQUlM
IENoZWNrIGVycm9yIHJldHVybmVkIHdoZW4gZ2l2aW5nIGludmFsaWQgcGFyYW1ldGVycyB0byBy
ZWRpcmVjdCgpIGFzc2VydF90aHJvd3M6IEV4cGVjdCBSYW5nZUVycm9yIGV4Y2VwdGlvbiBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeyBSZXNwb25zZS5yZWRpcmVjdCgiIiwgaW52YWxpZFN0YXR1cyk7
IH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIiAoIlR5cGVFcnJvciIpIGV4
cGVjdGVkIG9iamVjdCAiUmFuZ2VFcnJvciIgKCJSYW5nZUVycm9yIikKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2Utc3RhdGljLXJlZGlyZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1zdGF0
aWMtcmVkaXJlY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGMwOTJmNTRhNzI0M2VkZDdjNjYxYmMzMzM4
MmEzMDRjOTQwNTZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Utc3RhdGljLXJl
ZGlyZWN0Lmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAg
PGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5SZXNwb25zZTog
cmVkaXJlY3Qgc3RhdGljIG1ldGhvZDwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3Jlc3BvbnNlIj4KKyAgICA8bWV0YSBu
YW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVkaXJlY3Qt
c3RhdHVzIj4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBG
cmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8
Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFy
IHJlZGlyZWN0U3RhdHVzID0gWzMwMSwgMzAyLCAzMDMsIDMwNywgMzA4XTsKKyAgICAgICAgdmFy
IHVybCA9ICJodHRwOi8vdGVzdC51cmw6MTIzNC8iOworICAgICAgICByZWRpcmVjdFJlc3BvbnNl
ID0gUmVzcG9uc2UucmVkaXJlY3QodXJsKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWRpcmVj
dFJlc3BvbnNlLnN0YXR1cywgMzAyLCAiRGVmYXVsdCByZWRpY3RlY3Qgc3RhdHVzIGlzIDMwMiIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZGlyZWN0UmVzcG9uc2UuaGVhZGVycy5nZXQoIkxv
Y2F0aW9uIiksIHVybCwKKyAgICAgICAgICAicmVkaXJlY3RlZCByZXNwb25zZSBoYXMgTG9jYXRp
b24gaGVhZGVyIHdpdGggdGhlIGNvcnJlY3QgdXJsIik7CisgICAgICAgIGZvciAodmFyIGkgaW4g
cmVkaXJlY3RTdGF0dXMpIHsKKyAgICAgICAgICB2YXIgc3RhdHVzID0gcmVkaXJlY3RTdGF0dXNb
aV07CisgICAgICAgICAgcmVkaXJlY3RSZXNwb25zZSA9IFJlc3BvbnNlLnJlZGlyZWN0KHVybCwg
c3RhdHVzKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZGlyZWN0UmVzcG9uc2Uuc3RhdHVz
LCBzdGF0dXMsICJSZWRpY3RlY3Qgc3RhdHVzIGlzICIgKyBzdGF0dXMpOworICAgICAgICB9Cisg
ICAgICB9LCAiQ2hlY2sgcmVzcG9uc2UgcmV0dXJuZWQgYnkgc3RhdGljIG1ldGhvZCByZWRpcmVj
dCgpIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBpbnZhbGlkUmVk
aXJlY3RTdGF0dXMgPSBbMjAwLCAzMDksIDQwMCwgNTAwXTsKKyAgICAgICAgdmFyIGludmFsaWRV
cmwgPSAiVGhpcyBpcyBub3QgYW4gdXJsIjsKKyAgICAgICAgZm9yICh2YXIgaSBpbiBpbnZhbGlk
UmVkaXJlY3RTdGF0dXMpIHsKKyAgICAgICAgICB2YXIgaW52YWxpZFN0YXR1cyA9IGludmFsaWRS
ZWRpcmVjdFN0YXR1c1tpXTsKKyAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBSYW5nZUVycm9y
KCkgLCBmdW5jdGlvbigpIHsgUmVzcG9uc2UucmVkaXJlY3QoIiIsIGludmFsaWRTdGF0dXMpOyB9
LAorICAgICAgICAgICAgIkV4cGVjdCBSYW5nZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAgICB9
CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgUmVz
cG9uc2UucmVkaXJlY3QoaW52YWxpZFVybCk7IH0sCisgICAgICAgICAgIkV4cGVjdCBUeXBlRXJy
b3IgZXhjZXB0aW9uIik7CisgICAgICB9LCAiQ2hlY2sgZXJyb3IgcmV0dXJuZWQgd2hlbiBnaXZp
bmcgaW52YWxpZCBwYXJhbWV0ZXJzIHRvIHJlZGlyZWN0KCkiKTsKKyAgICA8L3NjcmlwdD4KKyAg
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNh
dGVkLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFsLWNvbnN0
cnVjdG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IGZm
ZDk1MzExZGM1ZDBhNzVlMGNkNGU0NDA3ODRlMWE0ZDY0ZWYyYzMuLmUwNThjZmY5NWJiMjJkYTU5
MzMxMzdhOWZjYWU5NmFhOWI4NDJhN2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRl
cy1kZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMTY5LDYgKzE2OSwxMSBAQCBQQVNT
IFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVz
dCcpLmhhc093blByb3BlcnR5KAogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFs
c2UKIFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdSZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25maWd1cmFibGUgaXMg
dHJ1ZQorUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ1Jlc3BvbnNlJykudmFsdWUgaXMgUmVzcG9uc2UKK1BBU1MgW1dvcmtlcl0gT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLmhhc093blByb3BlcnR5
KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNl
CitQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
UmVzcG9uc2UnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5jb25maWd1cmFibGUgaXMg
dHJ1ZQogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ1NldCcpLnZhbHVlIGlzIFNldAogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1NldCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxz
ZQogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1NldCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dAppbmRleCAxNWE0YWVhYTkwMDIzNmQ2MWQ1MDFiMzQ0YjNhNzcwZDRhZDlkZjMxLi5i
MDA3OGUzMzBiMjEzNGZjYjM4NGUyMjc5ZTkzNTlkYzIzMzJiYmFhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dApAQCAtOTkzLDYgKzk5MywxMSBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBp
cwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3Qn
KS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25m
aWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ1Jlc3BvbnNlJykudmFsdWUgaXMgUmVzcG9uc2UKK1BBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLmhhc093blByb3BlcnR5KCdnZXQn
KSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1Jlc3BvbnNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5lbnVtZXJhYmxlIGlz
IGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVz
cG9uc2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1NRTEV4Y2VwdGlvbicpLnZhbHVlIGlzIFNRTEV4Y2VwdGlvbgog
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1NRTEV4Y2VwdGlv
bicpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1NRTEV4Y2VwdGlvbicpLmhhc093blByb3BlcnR5KCdz
ZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtYXR0cmlidXRlcy1kZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBmYzcyMDRm
ZjJlYmY5MDg4MTM4MDg4NmJkY2E3NmNjZTM0NjExMTliLi4yY2M5YWMzNWVmNDU3NmNmYWQzNmQ4
NjkyYWYzODY0YmUyMmYzMDY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwv
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRpY2F0ZWQtd29ya2VyLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1j
b25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAt
NjksNiArNjksMTEgQEAgUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgKIFBBU1MgW1dvcmtlcl0gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJv
cGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1Mg
W1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0
JykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLnZhbHVlIGlzIFJlc3BvbnNlCitQQVNT
IFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9u
c2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgW1dvcmtlcl0gT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLmhhc093blByb3Bl
cnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBb
V29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNl
JykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdVUkwnKS52YWx1ZSBpcyBVUkwKIFBBU1MgW1dvcmtlcl0g
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdVUkwnKS5oYXNPd25Qcm9w
ZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdVUkwnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0
cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRl
eCAwMTJiZjA4Y2RjOWM4NWZhZWI0YzI5ZWVkYzc3ODIxMDc1N2VhYjc3Li4wOGU0ZjVjOTk1MjQy
ZDU1NWY1YTM0OWM3MmVlMjhhYmY4NjJiYmY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xMDYzLDYgKzEwNjMsMTEgQEAgUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Q
cm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVudW1lcmFi
bGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdSZXF1ZXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLnZhbHVlIGlzIFJlc3BvbnNlCitQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5oYXNP
d25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxz
ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNl
JykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdTUUxFeGNlcHRpb24nKS52YWx1ZSBp
cyBTUUxFeGNlcHRpb24KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdTUUxFeGNlcHRpb24nKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdTUUxFeGNlcHRpb24nKS5o
YXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBjNGU1YzRjYjUwYmZhNGU5OWYwNDhmYmNl
OGVjNjFkOGFiYmUwYmM2Li41ZDg4ZTVkZTllYmZlNmVjNGU4NGNiYmRiMTM0ODg1ZGQ1MWE1YmNi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CkBAIC0xMDgzLDYgKzEwODMsMTEgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJv
cGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuY29uZmlndXJhYmxlIGlz
IHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNw
b25zZScpLnZhbHVlIGlzIFJlc3BvbnNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UK
K1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScp
Lmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykuY29u
ZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdTUUxFeGNlcHRpb24nKS52YWx1ZSBpcyBTUUxFeGNlcHRpb24KIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdTUUxFeGNlcHRpb24nKS5oYXNPd25Q
cm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdTUUxFeGNlcHRpb24nKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFs
c2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9t
L2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGU2MGU0NTUxMmVhODk2NjE5YzdiMjEzNDFjMmMyY2E4
MmRjYWI4YjAuLjI1YjczZjdiYmE4MDQyMDlmNWJjZGYxZTViNTlmMTJjMTJjNzY1MGIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9tL2dsb2JhbC1j
b25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dApAQCAtMTA3Myw2ICsxMDczLDExIEBAIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ2dldCcp
IGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVz
dCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmNv
bmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnUmVzcG9uc2UnKS52YWx1ZSBpcyBSZXNwb25zZQorUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykuaGFzT3duUHJvcGVydHkoJ2dl
dCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUmVzcG9uc2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLmVudW1lcmFibGUg
aXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdS
ZXNwb25zZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnU1FMRXhjZXB0aW9uJykudmFsdWUgaXMgU1FMRXhjZXB0aW9u
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnU1FMRXhjZXB0
aW9uJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnU1FMRXhjZXB0aW9uJykuaGFzT3duUHJvcGVydHko
J3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9z
ZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggNzc0NDc4ZWVkZTJlYzg5YmE2NmNm
ZjkzNTlkMDRiZGQ5NzBhMTg0My4uMDNjMmY4YTNjODQzYTAxZGI0OTIxMjNjNTVhM2VkZDYxMGEw
ZmM2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMTE5OCw2ICsxMTk4LDExIEBAIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVy
dHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5lbnVtZXJhYmxlIGlz
IGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVx
dWVzdCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS52YWx1ZSBpcyBSZXNwb25zZQorUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykuaGFzT3duUHJv
cGVydHkoJ2dldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLmVu
dW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSZXNwb25zZScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnU1FMRXhjZXB0aW9uJykudmFsdWUgaXMgU1FM
RXhjZXB0aW9uCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
U1FMRXhjZXB0aW9uJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnU1FMRXhjZXB0aW9uJykuaGFzT3du
UHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0
cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggYmRhNDE2NTk2NzE2Y2U4ZmU0ZmI1YmNkMWNhNTdl
MTE2YjQwZTA4Ny4uNzdkNDg4YmJkZWY0Y2Q2MjZiMjAwZmVlNjdmMGQ2ZGEyYzA3ODJkYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAt
MTE5OCw2ICsxMTk4LDExIEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ1JlcXVlc3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVl
CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2Un
KS52YWx1ZSBpcyBSZXNwb25zZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ1Jlc3BvbnNlJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCitQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5oYXNP
d25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLmNvbmZpZ3Vy
YWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnU1FMRXhjZXB0aW9uJykudmFsdWUgaXMgU1FMRXhjZXB0aW9uCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnU1FMRXhjZXB0aW9uJykuaGFzT3duUHJvcGVy
dHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnU1FMRXhjZXB0aW9uJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXgg
NTQwZjlhNTg5MjNjZDVhMDlhZmY5Zjg0M2ZmZjFlM2FjNWVhZjk2Zi4uYzJhOTU1MWYxN2JkYjNj
YzkzNDUyMzkwMjJjZjAxZDNkMjEyN2RmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtOTEzLDYgKzkxMywxMSBAQCBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3Bl
cnR5KCdnZXQnKSBpcwogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuZW51bWVyYWJsZSBp
cyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jl
cXVlc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykudmFsdWUgaXMgUmVzcG9uc2UKK1BBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXNwb25zZScpLmhhc093blBy
b3BlcnR5KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1Jlc3BvbnNlJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVzcG9uc2UnKS5l
bnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnUmVzcG9uc2UnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1NRTEV4Y2VwdGlvbicpLnZhbHVlIGlzIFNR
TEV4Y2VwdGlvbgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1NRTEV4Y2VwdGlvbicpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1NRTEV4Y2VwdGlvbicpLmhhc093
blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>