<?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>153437</bug_id>
          
          <creation_ts>2016-01-25 12:36:37 -0800</creation_ts>
          <short_desc>[Fetch API] Implement Fetch API Request</short_desc>
          <delta_ts>2016-02-02 06:54:28 -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>1158448</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-01-25 12:36:37 -0800</bug_when>
    <thetext>Implement https://fetch.spec.whatwg.org/#request-class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1158812</commentid>
    <comment_count>1</comment_count>
      <attachid>269882</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-01-26 08:09:11 -0800</bug_when>
    <thetext>Created attachment 269882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159702</commentid>
    <comment_count>2</comment_count>
      <attachid>270112</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-01-28 06:32:04 -0800</bug_when>
    <thetext>Created attachment 270112
Adding more tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159716</commentid>
    <comment_count>3</comment_count>
      <attachid>270115</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-01-28 08:12:53 -0800</bug_when>
    <thetext>Created attachment 270115
More tests and updating body init</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159717</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-28 08:15:35 -0800</bug_when>
    <thetext>Attachment 270115 did not pass style-queue:


ERROR: Source/WebCore/Modules/fetch/FetchHeaders.h:67:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 1 in 59 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159724</commentid>
    <comment_count>5</comment_count>
      <attachid>270115</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-01-28 08:42:58 -0800</bug_when>
    <thetext>Comment on attachment 270115
More tests and updating body init

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

We should consider later if it is better to use AtomicString more in this code. ASCII literals in JavaScript are already atomic strings, so it’s fast to pass them to a function that takes const AtomicString&amp; and if we make AtomicString constants for the various expected strings we can compare more quickly than a string compare.

&gt; Source/WebCore/Modules/fetch/FetchBody.cpp:51
&gt; +        m_formData= JSDOMFormData::toWrapped(value);

Missing space before the &quot;=&quot; here.

&gt; Source/WebCore/Modules/fetch/FetchBody.cpp:69
&gt; +    m_blob = nullptr;
&gt; +    m_formData = nullptr;
&gt; +    m_text = String();

This leaves behind m_mimeType. Is that OK? Is there a test covering this?

&gt; Source/WebCore/Modules/fetch/FetchBody.h:89
&gt; +    bool m_disturbedFlag = false;

I think a better name for this is m_isDisturbed or m_wasDisturbed. Generally we want to name booleans with adjective phrases, not the noun &quot;flag&quot;, since that way of naming makes it more explicit what the boolean means.

&gt; Source/WebCore/Modules/fetch/FetchHeaders.cpp:176
&gt; +    for (auto iter = headers.m_headers.begin(); iter != headers.m_headers.end(); ++iter) {
&gt; +        if (canWriteHeader(iter-&gt;key, iter-&gt;value, m_guard, ec)) {
&gt; +            if (iter-&gt;keyAsHTTPHeaderName)
&gt; +                m_headers.add(iter-&gt;keyAsHTTPHeaderName.value(), iter-&gt;value);
&gt; +            else
&gt; +                m_headers.add(iter-&gt;key, iter-&gt;value);
&gt; +        }
&gt; +    }

WebKit style prohibits an abbreviation like &quot;iter&quot;. But also, this can be a modern for loop instead:

    for (auto&amp; header : headers.m_headers) {
        if (canWriteHeader(header.key, header.value, m_guard, ec)) {
            if (header.keyAsHTTPHeaderName)
                m_headers.add(header.keyAsHTTPHeaderName.value(), header.value);
            else
                m_headers.add(header.key, header.value);
        }
    }

I think it reads more clearly this way.

&gt; Source/WebCore/Modules/fetch/FetchRequest.cpp:86
&gt; +    : m_referrer(&quot;client&quot;)

ASCIILiteral(&quot;client&quot;)

&gt; Source/WebCore/Modules/fetch/FetchRequest.cpp:138
&gt; +        if ((method != &quot;GET&quot; &amp;&amp; method != &quot;POST&quot; &amp;&amp; method != &quot;HEAD&quot;) || !m_integrity.isEmpty())

Is it OK to compare the method in a case matching way? Maybe this should be using a comparison that ignores differences in case?

&gt; Source/WebCore/Modules/fetch/FetchRequest.cpp:160
&gt; +    if (!isEmpty() &amp;&amp; (m_request.httpMethod() == &quot;GET&quot; || m_request.httpMethod() == &quot;HEAD&quot;))

Is it OK to compare the method in a case matching way? Maybe this should be using a comparison that ignores differences in case?

&gt; Source/WebCore/Modules/fetch/FetchRequest.cpp:179
&gt; +    if (referrerURL.protocol() == &quot;about&quot; &amp;&amp; referrerURL.path().contains(&quot;client&quot;)) {

It’s not correct to use == to compare protocols, since protocols are ASCII case insensitive. This should use the URL::protocolIs function.

&gt; Source/WebCore/Modules/fetch/FetchRequest.cpp:408
&gt; +    String upper = method.upper();

This should be using convertToASCIIUppercase. I also think that “upper” is not a great name for the local variable.

&gt; Source/WebCore/Modules/fetch/FetchRequest.h:46
&gt; +class FetchRequest : public FetchBody {

It’s peculiar to have a FetchRequest derive from FetchBody instead of just having a FetchBody as a member. Is this strange class hierarchy dictated by the specification?

&gt; Source/WebCore/Modules/fetch/FetchRequest.h:51
&gt; +    String method () const { return m_request.httpMethod(); }

Extra space after the word &quot;method&quot; here.

More efficient to have the type be const String&amp; rather than String, avoids a bit of unnecessary reference count churn.

&gt; Source/WebCore/Modules/fetch/FetchRequest.h:52
&gt; +    String url() const { return m_request.url().string(); }

More efficient to have the type be const String&amp; rather than String, avoids a bit of unnecessary reference count churn.

&gt; Source/WebCore/Modules/fetch/FetchRequest.h:62
&gt; +    String type() const;
&gt; +    String destination() const;
&gt; +    String referrer() const;
&gt; +    String referrerPolicy() const;
&gt; +    String mode() const;
&gt; +    String credentials() const;
&gt; +    String cache() const;
&gt; +    String redirect() const;
&gt; +    String integrity() const { return m_integrity; }

More efficient to have the type be const String&amp; rather than String in as many of these functions as possible; avoids a bit of unnecessary reference count churn.

Note that if the code is returning an ASCIILiteral, we do need to return String unless we put the value in a global variable so we can return it without creating a new string each time.

&gt; Source/WebCore/Modules/fetch/FetchRequest.h:70
&gt; +    FetchRequest(const FetchRequest&amp;);

We should consider whether we want to make a move constructor in addition to, or instead of, the copy constructor. I’d like to understand where we copy one of these FetchRequest objects and why. I think it would be better to delete the copy constructor, second best would be to have a move constructor and not a copy constructor.

It’s a mistake to have a copy constructor but no assignment operator. We need to either define or delete the assignment operator.

&gt; Source/WebCore/Modules/fetch/FetchRequest.h:81
&gt; +    RefPtr&lt;FetchHeaders&gt; m_headers;

It would be much better if we could find a way to make this a Ref instead of a RefPtr, since it’s not legal for it to be null. But that might be tricky given the way the code in FetchRequest::init is written. It would be cleaner to do more of the *before* constructing the object in the create functions, rather than making a half-formed object and the setting it up a bit at a time. Ideally I’d like to see us get rid of the init function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159725</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-01-28 08:44:17 -0800</bug_when>
    <thetext>I’d like to see more thorough test coverage that focuses on testing the FetchRequest itself without actually doing a fetch, but maybe that’s not possible; maybe the actual content is only visible indirectly by seeing what’s sent out in the fetch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160126</commentid>
    <comment_count>7</comment_count>
      <attachid>270214</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-01-29 08:44:22 -0800</bug_when>
    <thetext>Created attachment 270214
Updated according review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160128</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-01-29 08:45:54 -0800</bug_when>
    <thetext>Thanks for the review.
Based on your comment, I rewrote the patch to remove the init method.
That said, the code is now less straightfowardly mapping to the spec.

Given the amount of change, a new r? makes sense.

As of the test coverage, this patch adds a lot of tests dedicated to cover various aspects of Request (no need for actual fetch in those cases). It is not yet fully complete, but this should improve over time.

More comments below.

(In reply to comment #5)
&gt; Comment on attachment 270115 [details]
&gt; More tests and updating body init
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=270115&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/fetch/FetchBody.cpp:69
&gt; &gt; +    m_blob = nullptr;
&gt; &gt; +    m_formData = nullptr;
&gt; &gt; +    m_text = String();
&gt; 
&gt; This leaves behind m_mimeType. Is that OK? Is there a test covering this?

This follows the spec.
I am not entirely sure m_mimeType is actually needed for the implementation.
But I prefer starting with code that matches the spec.
AIUI, m_mimeType could be emptied, as this might not be observable.
I added a FIXME in the latest patch for that.

&gt; 
&gt; &gt; Source/WebCore/Modules/fetch/FetchBody.h:89
&gt; &gt; +    bool m_disturbedFlag = false;
&gt; 
&gt; I think a better name for this is m_isDisturbed or m_wasDisturbed. Generally
&gt; we want to name booleans with adjective phrases, not the noun &quot;flag&quot;, since
&gt; that way of naming makes it more explicit what the boolean means.

Renamed to m_isDisturbed.

&gt; WebKit style prohibits an abbreviation like &quot;iter&quot;. But also, this can be a
&gt; modern for loop instead:
&gt; 
&gt;     for (auto&amp; header : headers.m_headers) {
&gt;         if (canWriteHeader(header.key, header.value, m_guard, ec)) {
&gt;             if (header.keyAsHTTPHeaderName)
&gt;                 m_headers.add(header.keyAsHTTPHeaderName.value(),
&gt; header.value);
&gt;             else
&gt;                 m_headers.add(header.key, header.value);
&gt;         }
&gt;     }
&gt; 
&gt; I think it reads more clearly this way.

Fixed accordingly.

&gt; &gt; Source/WebCore/Modules/fetch/FetchRequest.cpp:86
&gt; &gt; +    : m_referrer(&quot;client&quot;)
&gt; 
&gt; ASCIILiteral(&quot;client&quot;)

OK

&gt; &gt; Source/WebCore/Modules/fetch/FetchRequest.cpp:138
&gt; &gt; +        if ((method != &quot;GET&quot; &amp;&amp; method != &quot;POST&quot; &amp;&amp; method != &quot;HEAD&quot;) || !m_integrity.isEmpty())
&gt; 
&gt; Is it OK to compare the method in a case matching way? Maybe this should be
&gt; using a comparison that ignores differences in case?

This is ok as the spec mandates usual verbs to be uppercased (for compatibility purposes) in setMethod routine.

&gt; &gt; Source/WebCore/Modules/fetch/FetchRequest.cpp:179
&gt; &gt; +    if (referrerURL.protocol() == &quot;about&quot; &amp;&amp; referrerURL.path().contains(&quot;client&quot;)) {
&gt; 
&gt; It’s not correct to use == to compare protocols, since protocols are ASCII
&gt; case insensitive. This should use the URL::protocolIs function.

Fixed.

&gt; &gt; Source/WebCore/Modules/fetch/FetchRequest.cpp:408
&gt; &gt; +    String upper = method.upper();
&gt; 
&gt; This should be using convertToASCIIUppercase. I also think that “upper” is
&gt; not a great name for the local variable.

OK.

&gt; &gt; Source/WebCore/Modules/fetch/FetchRequest.h:46
&gt; &gt; +class FetchRequest : public FetchBody {
&gt; 
&gt; It’s peculiar to have a FetchRequest derive from FetchBody instead of just
&gt; having a FetchBody as a member. Is this strange class hierarchy dictated by
&gt; the specification?

I initially thought it was needed by the WebIDL binding but it is not since there is no JSBody.
Updated accordingly.

&gt; &gt; Source/WebCore/Modules/fetch/FetchRequest.h:81
&gt; &gt; +    RefPtr&lt;FetchHeaders&gt; m_headers;
&gt; 
&gt; It would be much better if we could find a way to make this a Ref instead of
&gt; a RefPtr, since it’s not legal for it to be null. But that might be tricky
&gt; given the way the code in FetchRequest::init is written. It would be cleaner
&gt; to do more of the *before* constructing the object in the create functions,
&gt; rather than making a half-formed object and the setting it up a bit at a
&gt; time. Ideally I’d like to see us get rid of the init function.

init method removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160129</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-29 08:46:12 -0800</bug_when>
    <thetext>Attachment 270214 did not pass style-queue:


ERROR: Source/WebCore/Modules/fetch/FetchHeaders.h:67:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 1 in 59 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160241</commentid>
    <comment_count>10</comment_count>
      <attachid>270214</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-01-29 13:24:23 -0800</bug_when>
    <thetext>Comment on attachment 270214
Updated according review

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

&gt; Source/WebCore/Modules/fetch/FetchBody.cpp:47
&gt; +    ASSERT(blob);

If this should never be null, can this take a Blob&amp;?

&gt; Source/WebCore/Modules/fetch/FetchBody.cpp:56
&gt; +    // FIXME: Handle the boundary parameter of multipart/form-data MIME type.
&gt; +    ASSERT(formData);

If this should never be null, can this take a DOMFormData&amp;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160370</commentid>
    <comment_count>11</comment_count>
      <attachid>270214</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-01-29 18:31:23 -0800</bug_when>
    <thetext>Comment on attachment 270214
Updated according review

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

&gt; Source/WebCore/Modules/fetch/FetchBody.cpp:94
&gt; +FetchBody FetchBody::fromRequestBody(FetchBody* body)
&gt; +{
&gt; +    if (!body)
&gt; +        return FetchBody();
&gt; +
&gt; +    FetchBody result;
&gt; +    result.m_type = body-&gt;m_type;
&gt; +    result.m_mimeType = body-&gt;m_mimeType;
&gt; +
&gt; +    // FIXME: Once implementation is completed, check whether using a move constructor and set m_mimeType to the empty string.
&gt; +    result.m_blob = WTFMove(body-&gt;m_blob);
&gt; +    result.m_formData = WTFMove(body-&gt;m_formData);
&gt; +    result.m_text = WTFMove(body-&gt;m_text);
&gt; +
&gt; +    body-&gt;m_isDisturbed = true;
&gt; +
&gt; +    return result;
&gt; +}

I’m puzzled by this function. Why do we move the contents of one FetchBody to FetchBody, leaving behind copies of the type and MIME type strings, but no content. Why do we want to support this operation?

Maybe that’s what the FIXME means, although it’s not a complete thought so I was not able to figure out for sure what it meant.

&gt; Source/WebCore/Modules/fetch/FetchBody.cpp:103
&gt; +    if (isDisturbed()) {

A little peculiar to use isDisturbed() here but then set m_disturbed on the next line after the if. More consistent to use the data member in both cases.

&gt; Source/WebCore/Modules/fetch/FetchBody.cpp:120
&gt; +        CString data = UTF8Encoding().encode(m_text, EntitiesForUnencodables);
&gt; +        Vector&lt;unsigned char&gt; value(data.length());
&gt; +        // FIXME: refactor this code.
&gt; +        memcpy(value.data(), data.data(), data.length());

Are we using UTF8Encoding() because we need the “EntitiesForUnencodables” behavior?

The FIXME here isn’t clear enough. I think you are saying you’d like to convert the string into a buffer of UTF-8 characters without having to allocate an intermediate CString.

&gt; Source/WebCore/Modules/fetch/FetchBody.cpp:179
&gt; +        JSC::JSValue value = JSC::JSONParse(&amp;state, m_text);
&gt; +        if (!value)
&gt; +            promise.reject(SYNTAX_ERR);
&gt; +        else
&gt; +            promise.resolve(value);

Does JSONParse really guarantee it will return nullptr if it fails? I’m surprised by this!

&gt; Source/WebCore/Modules/fetch/FetchBody.h:50
&gt; +    typedef DOMPromise&lt;Vector&lt;unsigned char&gt;, ExceptionCode&gt; ArrayBufferPromise;

Why unsigned char for the bytes instead of char?

&gt; Source/WebCore/Modules/fetch/FetchBody.h:51
&gt; +    void arrayBuffer(ArrayBufferPromise&amp;&amp;);

Why take an rvalue reference if we are not moving the argument in? Maybe this should just be a plain old reference.

&gt; Source/WebCore/Modules/fetch/FetchBody.h:54
&gt; +    void formData(FormDataPromise&amp;&amp;);

Ditto.

&gt; Source/WebCore/Modules/fetch/FetchBody.h:57
&gt; +    void blob(BlobPromise&amp;&amp;);

Ditto.

&gt; Source/WebCore/Modules/fetch/FetchBody.h:60
&gt; +    void json(JSC::ExecState&amp;, JSONPromise&amp;&amp;);

Ditto.

&gt; Source/WebCore/Modules/fetch/FetchBody.h:63
&gt; +    void text(TextPromise&amp;&amp;);

Ditto.

&gt; Source/WebCore/Modules/fetch/FetchBody.h:71
&gt; +    static FetchBody fromJSValue(JSC::JSValue, JSC::ExecState&amp;);

We normally put the ExecState argument first.

&gt; Source/WebCore/Modules/fetch/FetchBody.h:72
&gt; +    static FetchBody fromRequestBody(FetchBody*);

Unclear to me why we want this to move data out of the passed-in FetchBody. Peculiar design. Why not just use the FetchBody or use WTFMove if we want to move it rather than writing a function to do it.

&gt; Source/WebCore/Modules/fetch/FetchBody.h:82
&gt; +    enum class Type {
&gt; +        None,
&gt; +        Text,
&gt; +        Blob,
&gt; +        FormData
&gt; +    };

I’d find this easier to read as a one-liner.

&gt; Source/WebCore/Modules/fetch/FetchBody.h:84
&gt; +    FetchBody(Blob*);

Could make this more efficient by taking a Ref&lt;Blob&gt;&amp;&amp; and moving it in.

&gt; Source/WebCore/Modules/fetch/FetchBody.h:85
&gt; +    FetchBody(DOMFormData*);

Could make this more efficient by taking a Ref&lt;DOMFormData&gt;&amp;&amp; and moving it in.

&gt; Source/WebCore/Modules/fetch/FetchBody.h:86
&gt; +    FetchBody(const String&amp;);

Could make this more efficient by taking a String&amp;&amp; and moving it in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160806</commentid>
    <comment_count>12</comment_count>
      <attachid>270381</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-02-01 02:08:51 -0800</bug_when>
    <thetext>Created attachment 270381
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160808</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-02-01 02:22:09 -0800</bug_when>
    <thetext>&gt; I’m puzzled by this function. Why do we move the contents of one FetchBody
&gt; to FetchBody, leaving behind copies of the type and MIME type strings, but
&gt; no content. Why do we want to support this operation?
&gt; Maybe that’s what the FIXME means, although it’s not a complete thought so I
&gt; was not able to figure out for sure what it meant.

At now, I just try to follow closely the spec.
I think it is safe resetting m_mimeType.
Once Response is implemented, it may be time to use the move constructor.
I improved the FIXME.

&gt; &gt; Source/WebCore/Modules/fetch/FetchBody.cpp:103
&gt; &gt; +    if (isDisturbed()) {
&gt; 
&gt; A little peculiar to use isDisturbed() here but then set m_disturbed on the
&gt; next line after the if. More consistent to use the data member in both cases.

OK

&gt; &gt; Source/WebCore/Modules/fetch/FetchBody.cpp:120
&gt; &gt; +        CString data = UTF8Encoding().encode(m_text, EntitiesForUnencodables);
&gt; &gt; +        Vector&lt;unsigned char&gt; value(data.length());
&gt; &gt; +        // FIXME: refactor this code.
&gt; &gt; +        memcpy(value.data(), data.data(), data.length());
&gt; 
&gt; Are we using UTF8Encoding() because we need the “EntitiesForUnencodables”
&gt; behavior?
&gt; 
&gt; The FIXME here isn’t clear enough. I think you are saying you’d like to
&gt; convert the string into a buffer of UTF-8 characters without having to
&gt; allocate an intermediate CString.

I removed UTF8Encoding use and made the FIXME clearer.

&gt; &gt; Source/WebCore/Modules/fetch/FetchBody.cpp:179
&gt; &gt; +        JSC::JSValue value = JSC::JSONParse(&amp;state, m_text);
&gt; &gt; +        if (!value)
&gt; &gt; +            promise.reject(SYNTAX_ERR);
&gt; &gt; +        else
&gt; &gt; +            promise.resolve(value);
&gt; 
&gt; Does JSONParse really guarantee it will return nullptr if it fails? I’m
&gt; surprised by this!

There is a test for that in the patch.
I beefed up it with additional good and bad values at the end of fetch/api/request/request-consume.html

&gt; 
&gt; &gt; Source/WebCore/Modules/fetch/FetchBody.h:50
&gt; &gt; +    typedef DOMPromise&lt;Vector&lt;unsigned char&gt;, ExceptionCode&gt; ArrayBufferPromise;
&gt; 
&gt; Why unsigned char for the bytes instead of char?

The ArrayBuffer resolve method in JSDOMPromise.h is expecting a Vector&lt;unsigned char&gt;.

&gt; &gt; Source/WebCore/Modules/fetch/FetchBody.h:51
&gt; &gt; +    void arrayBuffer(ArrayBufferPromise&amp;&amp;);
&gt; 
&gt; Why take an rvalue reference if we are not moving the argument in? Maybe
&gt; this should just be a plain old reference.

We will need it at some point, for instance when resolving a blob data as an array buffer.
Also JSFetchRequest is moving the DeferredWrapper so FetchRequest methods will take rvalue references.

&gt; &gt; Source/WebCore/Modules/fetch/FetchBody.h:71
&gt; &gt; +    static FetchBody fromJSValue(JSC::JSValue, JSC::ExecState&amp;);
&gt; 
&gt; We normally put the ExecState argument first.

OK

&gt; &gt; Source/WebCore/Modules/fetch/FetchBody.h:82
&gt; &gt; +    enum class Type {
&gt; &gt; +        None,
&gt; &gt; +        Text,
&gt; &gt; +        Blob,
&gt; &gt; +        FormData
&gt; &gt; +    };
&gt; 
&gt; I’d find this easier to read as a one-liner.

OK

&gt; &gt; Source/WebCore/Modules/fetch/FetchBody.h:84
&gt; &gt; +    FetchBody(Blob*);
&gt; 
&gt; Could make this more efficient by taking a Ref&lt;Blob&gt;&amp;&amp; and moving it in.

OK

&gt; &gt; Source/WebCore/Modules/fetch/FetchBody.h:85
&gt; &gt; +    FetchBody(DOMFormData*);
&gt; 
&gt; Could make this more efficient by taking a Ref&lt;DOMFormData&gt;&amp;&amp; and moving it
&gt; in.

OK

&gt; &gt; Source/WebCore/Modules/fetch/FetchBody.h:86
&gt; &gt; +    FetchBody(const String&amp;);
&gt; 
&gt; Could make this more efficient by taking a String&amp;&amp; and moving it in.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160813</commentid>
    <comment_count>14</comment_count>
      <attachid>270381</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-01 03:05:47 -0800</bug_when>
    <thetext>Comment on attachment 270381
Patch for landing

Clearing flags on attachment: 270381

Committed r195954: &lt;http://trac.webkit.org/changeset/195954&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160814</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-01 03:05:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269882</attachid>
            <date>2016-01-26 08:09:11 -0800</date>
            <delta_ts>2016-01-28 06:31:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-153437-20160126170843.patch</filename>
            <type>text/plain</type>
            <size>156886</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1NTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODNjNmNhYTkyM2IyOWQy
Y2FjMmYxMGJiOTlkMGQ5ODBkODFmNWUzYy4uMjk3MmY0NGFlY2YwY2Q1MjA5MDhkNjFkOWZkZWNm
MGRkMTcyNjAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOSBAQAorMjAxNi0wMS0yNiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtGZXRj
aCBBUEldIEltcGxlbWVudCBGZXRjaCBBUEkgUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNDM3CisKKyAgICAgICAgQWRkZWQgc3VwcG9y
dCBmb3IgRmV0Y2ggUmVxdWVzdCBhbmQgQm9keS4KKyAgICAgICAgQm9keSBpcyBzaGFyaW5nIGZ1
bmN0aW9uYWxpdHkgYmV0d2VlbiBSZXF1ZXN0IGFuZCBSZXNwb25zZS4KKyAgICAgICAgQ29udmVy
c2lvbiBiZXR3ZWVuIHZhcmlvdXMgYm9keSB0eXBlcyBhcmUgbm90IGltcGxlbWVudGVkIHlldC4K
KworICAgICAgICBGaXhpbmcgYnVnIGluIEhlYWRlcnMgY29uc3RydWN0b3IuCisgICAgICAgIE1h
a2luZyBlcnJvciByZXBvcnRpbmcgaW4gY2FzZSBvZiBtb2RpZnlpbmcgaGVhZGVycyBjb21wbGlh
bnQgd2l0aCB0aGUgc3BlYy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0czogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVxdWVzdC9yZXF1ZXN0LWNsb25lLnN1Yi5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3Vt
ZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmh0bWwKKyAgICAgICAgICAgICAgIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1l
cnJvci5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaGVhZGVycy5odG1sCisgICAgICAgICAgICAgICBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
aWRsLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMS5zdWIuaHRtbAorICAgICAgICAgICAg
ICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWluaXQtMDAyLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMy5zdWIuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojppbml0Qm9keSk6CisgICAgICAgIChXZWJDb3JlOjpG
ZXRjaEJvZHk6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6cHJvY2Vzc0lm
RW1wdHlPckRpc3R1cmJlZCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmFycmF5QnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6Zm9ybURhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6RmV0Y2hCb2R5OjpibG9iKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6Ompzb24pOgorICAgICAgICAqIE1v
ZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmguCisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6On5G
ZXRjaEJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojppc0VtcHR5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZldGNoQm9keTo6aXNEaXN0dXJiZWQpOgorICAgICAgICAoV2ViQ29yZTo6
RmV0Y2hCb2R5OjpzZXREaXN0dXJiZWQpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpz
ZXRNaW1lVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6Om1pbWVUeXBlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmguCisgICAgICAgICogTW9kdWxlcy9m
ZXRjaC9GZXRjaEhlYWRlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FuV3JpdGVIZWFkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hIZWFkZXJzOjphcHBlbmQpOgorICAgICAgICAoV2Vi
Q29yZTo6RmV0Y2hIZWFkZXJzOjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hIZWFk
ZXJzOjpzZXQpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hIZWFkZXJzOjpmaWxsKTogSGVscGVy
IHJvdXRpbmUgaW1wbGVtZW50aW5nIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25j
ZXB0LWhlYWRlcnMtZmlsbAorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmg6
IEFkZGluZyBoZWFkZXIgZ2V0dGVyL3NldHRlciBmb3IgRmV0Y2hSZXF1ZXN0LgorICAgICAgICAo
V2ViQ29yZTo6RmV0Y2hIZWFkZXJzOjpmYXN0R2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
SGVhZGVyczo6ZmFzdFNldCk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMu
anM6IEZpeGluZyBidWcgaW4gY29uc3RydWN0b3IgKGNvdmVyZWQgYnkgbW9kaWZpZWQgaGVhZGVy
cy1iYXNjLmh0bWwgdGVzdCkuCisgICAgICAgIChpbml0aWFsaXplRmV0Y2hIZWFkZXJzKToKKyAg
ICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoT3B0aW9ucy5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkZldGNoT3B0aW9uczo6RmV0Y2hPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoT3B0aW9uczo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OmRlc3Rp
bmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoT3B0aW9uczo6bW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OmNyZWRlbnRpYWxzKToKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoT3B0aW9uczo6Y2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpy
ZWRpcmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OnJlZmVycmVyUG9saWN5
KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoT3B0aW9uczo6c2V0VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGZXRjaE9wdGlvbnM6OnNldERlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoT3B0aW9uczo6c2V0TW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6
OnNldENyZWRlbnRpYWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoT3B0aW9uczo6c2V0Q2Fj
aGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpzZXRSZWRpcmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OnNldFJlZmVycmVyUG9saWN5KToKKyAgICAgICAg
KiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RmV0Y2hSZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0
OjpGZXRjaFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0Ojppbml0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6c2V0UmVmZXJyZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpzZXRSZWZlcnJlclBvbGljeSk6CisgICAgICAgIChXZWJD
b3JlOjpGZXRjaFJlcXVlc3Q6OnNldE1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1
ZXN0OjpzZXRDcmVkZW50aWFscyk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OnNl
dENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6c2V0UmVkaXJlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0Ojp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoUmVxdWVzdDo6ZGVzdGluYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1
ZXN0OjpyZWZlcnJlclBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OnJl
ZmVycmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6bW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmNyZWRlbnRpYWxzKToKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoUmVxdWVzdDo6Y2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0Ojpy
ZWRpcmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OnNldE1ldGhvZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmNsb25lKToKKyAgICAgICAgKiBNb2R1bGVz
L2ZldGNoL0ZldGNoUmVxdWVzdC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoSGVhZGVycy5oLgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0Ojpt
ZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0Ojp1cmwpOgorICAgICAgICAo
V2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjppbnRlZ3JpdHkpOgorICAgICAgICAoV2ViQ29yZTo6RmV0
Y2hSZXF1ZXN0OjpoZWFkZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVz
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9EaWN0aW9uYXJ5Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpEaWN0aW9uYXJ5OjpleGVjU3RhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGljdGlv
bmFyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZSk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RpY3Rpb25hcnk6OmdldCk6CisKIDIwMTYtMDEtMjUgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBXZWJDb3JlSlNCdWlsdGlucyBkbyBu
b3QgdXNlIHRvIGRvIGNvbmRpdGlvbmFsIGluY2x1ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
ZTcwYjE0ZjUwYjA4OTJmYjNhZGIxOWIxYjAzN2NjNmEwNWM2OTMxNi4uNDk1NWYxMThhMjVmN2Y0
OWIxZTQ0ZWIyNTI5MjhiMDI0MDlhNzQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE3MSw3
ICsxNzEsOSBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVsZXMvYmF0
dGVyeS9CYXR0ZXJ5TWFuYWdlci5pZGwKICAgICBNb2R1bGVzL2JhdHRlcnkvTmF2aWdhdG9yQmF0
dGVyeS5pZGwKIAorICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmlkbAogICAgIE1vZHVsZXMv
ZmV0Y2gvRmV0Y2hIZWFkZXJzLmlkbAorICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0Lmlk
bAogCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5pZGwKICAgICBNb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbApAQCAtODE0LDcgKzgxNiw5IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICBNb2R1bGVzL2JhdHRlcnkvQmF0dGVyeVN0YXR1cy5jcHAKICAgICBN
b2R1bGVzL2JhdHRlcnkvTmF2aWdhdG9yQmF0dGVyeS5jcHAKIAorICAgIE1vZHVsZXMvZmV0Y2gv
RmV0Y2hCb2R5LmNwcAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcAorICAgIE1v
ZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcAogCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9D
b29yZGluYXRlcy5jcHAKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IGZkMWNkZjNjNDQzMzUzZGRmMzUzYTc3Yzli
NzlhMjUwYjE4ZGMxOWMuLmFkNjg0YmI2ZWY5YmFiN2UyY2YzNjM0NTBmMzc2NWM5MWM2ZWU4MWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTE1NCw3ICsxNTQsOSBAQAogI2luY2x1
ZGUgIkpTRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTRXZlbnRTb3VyY2UuY3BwIgogI2luY2x1ZGUg
IkpTRXZlbnRUYXJnZXQuY3BwIgorI2luY2x1ZGUgIkpTRmV0Y2hCb2R5LmNwcCIKICNpbmNsdWRl
ICJKU0ZldGNoSGVhZGVycy5jcHAiCisjaW5jbHVkZSAiSlNGZXRjaFJlcXVlc3QuY3BwIgogI2lu
Y2x1ZGUgIkpTRmlsZS5jcHAiCiAjaW5jbHVkZSAiSlNGaWxlRXJyb3IuY3BwIgogI2luY2x1ZGUg
IkpTRmlsZUV4Y2VwdGlvbi5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAy
NjE3M2QyYjg0MWRhNzlkYTU5NzMxMzQwNDhkNjgxYzhhZjVhNDQ3Li4yMDRhYmNhN2M4ZDE1ODU5
N2IzZDE0ZjRiYTIzNDc4ZjZkZDYyNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTc5LDcgKzc5LDkgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5TmVlZGVkRXZlbnQuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5pZGwgXAorICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L2ZldGNoL0ZldGNoUmVxdWVzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFk
L0dhbWVwYWQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkQnV0
dG9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZEV2ZW50Lmlk
bCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDU0ZjZlMTVlMWQyMGE0NmNjYzI3YmI2MzAyOWMwMmY1MTJiMmFkOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcApAQCAtMCww
ICsxLDE2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQ2Fu
b24gSW5jLiBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENBTk9OIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBDQU5PTiBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGZXRjaEJvZHkuaCIKKworI2lmIEVOQUJMRShG
RVRDSF9BUEkpCisKKyNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgorI2luY2x1ZGUgIkpTQmxvYi5oIgorI2luY2x1ZGUgIkpTRE9NRm9ybURhdGEuaCIK
KyNpbmNsdWRlIDxydW50aW1lL0pTT05PYmplY3QuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Citib29sIEZldGNoQm9keTo6aW5pdEJvZHkoY29uc3QgRGljdGlvbmFyeSYgaW5pdCkKK3sKKyAg
ICBKU0M6OkpTVmFsdWUgdmFsdWU7CisgICAgaWYgKCFpbml0LmdldCgiYm9keSIsIHZhbHVlKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTQmxvYjo6
aW5mbygpKSkgeworICAgICAgICBtX3R5cGUgPSBUeXBlOjpCbG9iOworICAgICAgICBtX2Jsb2Ig
PSBKU0Jsb2I6OnRvV3JhcHBlZCh2YWx1ZSk7CisgICAgICAgIG1fbWltZVR5cGUgPSBtX2Jsb2It
PnR5cGUoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmICh2YWx1ZS5pbmhl
cml0cyhKU0RPTUZvcm1EYXRhOjppbmZvKCkpKSB7CisgICAgICAgIG1fdHlwZSA9IFR5cGU6OkZv
cm1EYXRhOworICAgICAgICBtX2Zvcm1EYXRhPSBKU0RPTUZvcm1EYXRhOjp0b1dyYXBwZWQodmFs
dWUpOworICAgICAgICAvLyBGSVhNRTogR2VuZXJhdGUgTUlNRSB0eXBlLgorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpIHsKKyAgICAgICAgbV90
eXBlID0gVHlwZTo6VGV4dDsKKyAgICAgICAgbV90ZXh0ID0gdmFsdWUudG9XVEZTdHJpbmcoaW5p
dC5leGVjU3RhdGUoKSk7CisgICAgICAgIG1fbWltZVR5cGUgPSBBU0NJSUxpdGVyYWwoInRleHQv
cGxhaW47Y2hhcnNldD1VVEYtOCIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit2b2lkIEZldGNoQm9keTo6Y2xlYXIoKQoreworICAgIG1fYmxv
YiA9IG51bGxwdHI7CisgICAgbV9mb3JtRGF0YSA9IG51bGxwdHI7CisgICAgbV90ZXh0ID0gU3Ry
aW5nKCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBib29sIEZldGNoQm9keTo6
cHJvY2Vzc0lmRW1wdHlPckRpc3R1cmJlZChET01Qcm9taXNlPFQsIEV4Y2VwdGlvbkNvZGU+JiBw
cm9taXNlKQoreworICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6Tm9uZSkgeworICAgICAgICBwcm9t
aXNlLnJlc29sdmUoVCgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYg
KGlzRGlzdHVyYmVkKCkpIHsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoVHlwZUVycm9yKTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIG1fZGlzdHVyYmVkRmxhZyA9IHRydWU7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEZldGNoQm9keTo6YXJyYXlCdWZmZXIoQXJyYXlC
dWZmZXJQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBpZiAocHJvY2Vzc0lmRW1wdHlPckRpc3R1
cmJlZChwcm9taXNlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fdHlwZSA9PSBUeXBl
OjpUZXh0KSB7CisgICAgICAgIENTdHJpbmcgZGF0YSA9IFVURjhFbmNvZGluZygpLmVuY29kZSht
X3RleHQsIEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKTsKKyAgICAgICAgVmVjdG9yPHVuc2lnbmVk
IGNoYXI+IHZhbHVlKGRhdGEubGVuZ3RoKCkpOworICAgICAgICAvLyBGSVhNRTogcmVmYWN0b3Ig
dGhpcyBjb2RlLgorICAgICAgICBtZW1jcHkodmFsdWUuZGF0YSgpLCBkYXRhLmRhdGEoKSwgZGF0
YS5sZW5ndGgoKSk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShXVEZNb3ZlKHZhbHVlKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gRklYTUU6IFN1cHBvcnQgb3RoZXIgdHlwZXMu
CisgICAgcHJvbWlzZS5yZWplY3QoMCk7Cit9CisKK3ZvaWQgRmV0Y2hCb2R5Ojpmb3JtRGF0YShG
b3JtRGF0YVByb21pc2UmJiBwcm9taXNlKQoreworICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6Tm9u
ZSB8fCBpc0Rpc3R1cmJlZCgpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KFR5cGVFcnJvcik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9kaXN0dXJiZWRGbGFnID0gdHJ1ZTsKKwor
ICAgIC8vIEZJWE1FOiBTdXBwb3J0IG90aGVyIHR5cGVzLgorICAgIHByb21pc2UucmVqZWN0KDAp
OworfQorCit2b2lkIEZldGNoQm9keTo6YmxvYihCbG9iUHJvbWlzZSYmIHByb21pc2UpCit7Cisg
ICAgaWYgKG1fdHlwZSA9PSBUeXBlOjpOb25lKSB7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShu
dWxscHRyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChwcm9jZXNzSWZFbXB0
eU9yRGlzdHVyYmVkKHByb21pc2UpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTog
U3VwcG9ydCBvdGhlciB0eXBlcy4KKyAgICBwcm9taXNlLnJlamVjdCgwKTsKK30KKwordm9pZCBG
ZXRjaEJvZHk6OnRleHQoVGV4dFByb21pc2UmJiBwcm9taXNlKQoreworICAgIGlmIChwcm9jZXNz
SWZFbXB0eU9yRGlzdHVyYmVkKHByb21pc2UpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
bV90eXBlID09IFR5cGU6OlRleHQpIHsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKG1fdGV4dCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gRklYTUU6IFN1cHBvcnQgb3RoZXIgdHlw
ZXMuCisgICAgcHJvbWlzZS5yZWplY3QoMCk7Cit9CisKK3ZvaWQgRmV0Y2hCb2R5Ojpqc29uKEpT
Qzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNPTlByb21pc2UmJiBwcm9taXNlKQoreworICAgIGlmIChp
c0Rpc3R1cmJlZCgpKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KFR5cGVFcnJvcik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgbV9kaXN0dXJiZWRGbGFnID0gdHJ1ZTsKKyAgICBpZiAo
bV90eXBlID09IFR5cGU6OlRleHQpIHsKKyAgICAgICAgSlNDOjpKU1ZhbHVlIHZhbHVlID0gSlND
OjpKU09OUGFyc2UoJnN0YXRlLCBtX3RleHQpOworICAgICAgICAvLyBGSVhNRTogTWlnaHQgd2Fu
dCB0byB0aHJvdyBhIFNZTlRBWF9FUlIgaWYgdmFsdWUgaXMgaW52YWxpZD8gTmVlZCBhIHRlc3Qg
Zm9yIHRoYXQgY2FzZS4KKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKHZhbHVlID8gdmFsdWUgOiBK
U0M6OmpzTnVsbCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBGSVhNRTogU3Vw
cG9ydCBvdGhlciB0eXBlcy4KKyAgICBwcm9taXNlLnJlamVjdCgwKTsKK30KKworfQorCisjZW5k
aWYgLy8gRU5BQkxFKEZFVENIX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hCb2R5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
Qm9keS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFjNjkxNmI0NDk4NzMxMzgzODEwNDI0NzgxY2Q1MDJmNTY3NDEy
MmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
Qm9keS5oCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24g
SW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRv
IGJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
KyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
Q0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEZldGNoQm9keV9oCisjZGVmaW5lIEZldGNoQm9keV9oCisKKyNp
ZiBFTkFCTEUoRkVUQ0hfQVBJKQorCisjaW5jbHVkZSAiQmxvYi5oIgorI2luY2x1ZGUgIkRPTUZv
cm1EYXRhLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgRGljdGlvbmFyeTsKK3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CisKK2Ns
YXNzIEZldGNoQm9keSA6IHB1YmxpYyBSZWZDb3VudGVkPEZldGNoQm9keT4geworcHVibGljOgor
ICAgIHZpcnR1YWwgfkZldGNoQm9keSgpIHsgfQorCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qg
eyByZXR1cm4gbV90eXBlID09IFR5cGU6Ok5vbmU7IH0KKyAgICBib29sIGlzRGlzdHVyYmVkKCkg
Y29uc3QgeyByZXR1cm4gbV9kaXN0dXJiZWRGbGFnOyB9CisgICAgdm9pZCBzZXREaXN0dXJiZWQo
KSB7IG1fZGlzdHVyYmVkRmxhZyA9IHRydWU7IH0KKyAgICB2b2lkIGNsZWFyKCk7CisKKyAgICB0
eXBlZGVmIERPTVByb21pc2U8VmVjdG9yPHVuc2lnbmVkIGNoYXI+LCBFeGNlcHRpb25Db2RlPiBB
cnJheUJ1ZmZlclByb21pc2U7CisgICAgdm9pZCBhcnJheUJ1ZmZlcihBcnJheUJ1ZmZlclByb21p
c2UmJik7CisKKyAgICB0eXBlZGVmIERPTVByb21pc2U8UmVmUHRyPERPTUZvcm1EYXRhPiwgRXhj
ZXB0aW9uQ29kZT4gRm9ybURhdGFQcm9taXNlOworICAgIHZvaWQgZm9ybURhdGEoRm9ybURhdGFQ
cm9taXNlJiYpOworCisgICAgdHlwZWRlZiBET01Qcm9taXNlPFJlZlB0cjxCbG9iPiwgRXhjZXB0
aW9uQ29kZT4gQmxvYlByb21pc2U7CisgICAgdm9pZCBibG9iKEJsb2JQcm9taXNlJiYpOworCisg
ICAgdHlwZWRlZiBET01Qcm9taXNlPFN0cmluZywgRXhjZXB0aW9uQ29kZT4gVGV4dFByb21pc2U7
CisgICAgdm9pZCB0ZXh0KFRleHRQcm9taXNlJiYpOworCisgICAgdHlwZWRlZiBET01Qcm9taXNl
PEpTQzo6SlNWYWx1ZSwgRXhjZXB0aW9uQ29kZT4gSlNPTlByb21pc2U7CisgICAgdm9pZCBqc29u
KEpTQzo6RXhlY1N0YXRlJiwgSlNPTlByb21pc2UmJik7CisKKyAgICB2b2lkIHNldE1pbWVUeXBl
KGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIHsgbV9taW1lVHlwZSA9IG1pbWVUeXBlOyB9CisgICAg
U3RyaW5nIG1pbWVUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9taW1lVHlwZTsgfQorCitwcm90ZWN0
ZWQ6CisgICAgYm9vbCBpbml0Qm9keShjb25zdCBEaWN0aW9uYXJ5Jik7CisKK3ByaXZhdGU6Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCBwcm9jZXNzSWZFbXB0eU9yRGlzdHVyYmVkKERP
TVByb21pc2U8VCwgRXhjZXB0aW9uQ29kZT4mKTsKKworICAgIGVudW0gY2xhc3MgVHlwZSB7Cisg
ICAgICAgIE5vbmUsCisgICAgICAgIFRleHQsCisgICAgICAgIEJsb2IsCisgICAgICAgIEZvcm1E
YXRhCisgICAgfTsKKworICAgIFR5cGUgbV90eXBlID0gVHlwZTo6Tm9uZTsKKworICAgIC8vIEZJ
WE1FOiBBZGQgc3VwcG9ydCBmb3IgQnVmZmVyU291cmNlIGFuZCBVUkxTZWFyY2hQYXJhbXMuCisg
ICAgUmVmUHRyPEJsb2I+IG1fYmxvYjsKKyAgICBSZWZQdHI8RE9NRm9ybURhdGE+IG1fZm9ybURh
dGE7CisgICAgU3RyaW5nIG1fdGV4dDsKKworICAgIGJvb2wgbV9kaXN0dXJiZWRGbGFnID0gZmFs
c2U7CisgICAgU3RyaW5nIG1fbWltZVR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoRkVUQ0hfQVBJKQorCisjZW5kaWYgLy8gRmV0Y2hCb2R5X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
MzRiOTcxZTI1Zjg0YjI2Njk0MmFiNmUwY2QzNjRlODk1Y2ExMjMwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaWRsCkBAIC0wLDAgKzEs
NDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAg
Q29uZGl0aW9uYWw9RkVUQ0hfQVBJLAorICAgIEdsb2JhbENvbnRleHQ9RE9NV2luZG93Jldvcmtl
ckdsb2JhbFNjb3BlLAorICAgIEludGVyZmFjZU5hbWU9Qm9keSwKKyAgICBOb0ludGVyZmFjZU9i
amVjdAorXQoraW50ZXJmYWNlIEZldGNoQm9keSB7CisgICAgW0ltcGxlbWVudGVkQXM9aXNEaXN0
dXJiZWRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGJvZHlVc2VkOworICAgIFtOZXdPYmpl
Y3RdIFByb21pc2UgYXJyYXlCdWZmZXIoKTsKKyAgICBbTmV3T2JqZWN0XSBQcm9taXNlIGJsb2Io
KTsKKyAgICBbTmV3T2JqZWN0XSBQcm9taXNlIGZvcm1EYXRhKCk7CisgICAgW0NhbGxXaXRoPVNj
cmlwdFN0YXRlLCBOZXdPYmplY3RdIFByb21pc2UganNvbigpOworICAgIFtOZXdPYmplY3RdIFBy
b21pc2UgdGV4dCgpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hIZWFkZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hI
ZWFkZXJzLmNwcAppbmRleCBkZjkxMDIzNmRlNjgyODA1ZTNiZTI2YmJmMTRkNWE1NTk0NmRhZmIw
Li4yOTNmZWE1ZDJmMmFjNmQ5MGIyNjc0MzFkMzI3NmJkNTY4N2JkMmE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuY3BwCkBAIC0xMDEsMTIgKzEwMSwx
NiBAQCBzdGF0aWMgYm9vbCBpc1NpbXBsZUhlYWRlcihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgdmFsdWUpCiAgICAgfQogfQogCi1zdGF0aWMgYm9vbCBjYW5Xcml0ZUhlYWRlcihj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIEZldGNoSGVhZGVyczo6R3Vh
cmQgZ3VhcmQpCitzdGF0aWMgYm9vbCBjYW5Xcml0ZUhlYWRlcihjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgdmFsdWUsIEZldGNoSGVhZGVyczo6R3VhcmQgZ3VhcmQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewotICAgIGlmICghaXNWYWxpZEhUVFBUb2tlbihuYW1lKSB8fCAhaXNWYWxp
ZEhUVFBIZWFkZXJWYWx1ZSh2YWx1ZSkpCisgICAgaWYgKCFpc1ZhbGlkSFRUUFRva2VuKG5hbWUp
IHx8ICFpc1ZhbGlkSFRUUEhlYWRlclZhbHVlKHZhbHVlKSkgeworICAgICAgICBlYyA9IFR5cGVF
cnJvcjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChndWFyZCA9PSBGZXRjaEhlYWRl
cnM6Okd1YXJkOjpJbW11dGFibGUpCisgICAgfQorICAgIGlmIChndWFyZCA9PSBGZXRjaEhlYWRl
cnM6Okd1YXJkOjpJbW11dGFibGUpIHsKKyAgICAgICAgZWMgPSBUeXBlRXJyb3I7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKGd1YXJkID09IEZldGNoSGVhZGVyczo6R3Vh
cmQ6OlJlcXVlc3QgJiYgaXNGb3JiaWRkZW5IZWFkZXJOYW1lKG5hbWUpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKGd1YXJkID09IEZldGNoSGVhZGVyczo6R3VhcmQ6OlJlcXVlc3RO
b0NvcnMgJiYgIWlzU2ltcGxlSGVhZGVyKG5hbWUsIHZhbHVlKSkKQEAgLTExOSwxOSArMTIzLDE1
IEBAIHN0YXRpYyBib29sIGNhbldyaXRlSGVhZGVyKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSwgRmV0Y2hIZWFkZXJzCiB2b2lkIEZldGNoSGVhZGVyczo6YXBwZW5kKGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgU3RyaW5nIG5vcm1hbGl6ZWRWYWx1ZSA9IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5n
SFRUUFNwYWNlcyh2YWx1ZSk7Ci0gICAgaWYgKCFjYW5Xcml0ZUhlYWRlcihuYW1lLCBub3JtYWxp
emVkVmFsdWUsIG1fZ3VhcmQpKSB7Ci0gICAgICAgIGVjID0gVHlwZUVycm9yOworICAgIGlmICgh
Y2FuV3JpdGVIZWFkZXIobmFtZSwgbm9ybWFsaXplZFZhbHVlLCBtX2d1YXJkLCBlYykpCiAgICAg
ICAgIHJldHVybjsKLSAgICB9CiAgICAgbV9oZWFkZXJzLmFkZChuYW1lLCBub3JtYWxpemVkVmFs
dWUpOwogfQogCiB2b2lkIEZldGNoSGVhZGVyczo6cmVtb3ZlKGNvbnN0IFN0cmluZyYgbmFtZSwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKCFjYW5Xcml0ZUhlYWRlcihuYW1lLCBTdHJp
bmcoKSwgbV9ndWFyZCkpIHsKLSAgICAgICAgZWMgPSBUeXBlRXJyb3I7CisgICAgaWYgKCFjYW5X
cml0ZUhlYWRlcihuYW1lLCBTdHJpbmcoKSwgbV9ndWFyZCwgZWMpKQogICAgICAgICByZXR1cm47
Ci0gICAgfQogICAgIG1faGVhZGVycy5yZW1vdmUobmFtZSk7CiB9CiAKQEAgLTE1NiwxMyArMTU2
LDI2IEBAIGJvb2wgRmV0Y2hIZWFkZXJzOjpoYXMoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRp
b25Db2RlJiBlYykgY29uc3QKIHZvaWQgRmV0Y2hIZWFkZXJzOjpzZXQoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBTdHJp
bmcgbm9ybWFsaXplZFZhbHVlID0gc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVFRQU3BhY2VzKHZh
bHVlKTsKLSAgICBpZiAoIWNhbldyaXRlSGVhZGVyKG5hbWUsIG5vcm1hbGl6ZWRWYWx1ZSwgbV9n
dWFyZCkpIHsKLSAgICAgICAgZWMgPSBUeXBlRXJyb3I7CisgICAgaWYgKCFjYW5Xcml0ZUhlYWRl
cihuYW1lLCBub3JtYWxpemVkVmFsdWUsIG1fZ3VhcmQsIGVjKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIH0KICAgICBtX2hlYWRlcnMuc2V0KG5hbWUsIG5vcm1hbGl6ZWRWYWx1ZSk7CiB9CiAKK3Zv
aWQgRmV0Y2hIZWFkZXJzOjpmaWxsKGNvbnN0IEZldGNoSGVhZGVycyYgaGVhZGVycykKK3sKKyAg
ICBBU1NFUlQobV9ndWFyZCAhPSBHdWFyZDo6SW1tdXRhYmxlKTsKKworICAgIEV4Y2VwdGlvbkNv
ZGUgZWM7CisgICAgZm9yIChhdXRvIGl0ZXIgPSBoZWFkZXJzLm1faGVhZGVycy5iZWdpbigpOyBp
dGVyICE9IGhlYWRlcnMubV9oZWFkZXJzLmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgaWYgKGNh
bldyaXRlSGVhZGVyKGl0ZXItPmtleSwgaXRlci0+dmFsdWUsIG1fZ3VhcmQsIGVjKSkgeworICAg
ICAgICAgICAgaWYgKGl0ZXItPmtleUFzSFRUUEhlYWRlck5hbWUpCisgICAgICAgICAgICAgICAg
bV9oZWFkZXJzLmFkZChpdGVyLT5rZXlBc0hUVFBIZWFkZXJOYW1lLnZhbHVlKCksIGl0ZXItPnZh
bHVlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtX2hlYWRlcnMuYWRkKGl0
ZXItPmtleSwgaXRlci0+dmFsdWUpOworICAgICAgICB9CisgICAgfQorfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoRkVUQ0hfQVBJKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmgKaW5kZXggZDViMGE1NmZiMDY2YWZjYThi
M2Y5MGY4MmVlYmE4M2QwMjFlNWVlYS4uNDQxYzI5Nzk1YWEwOGNjMWNmNzk0NjM5NGY1ZTExMjY0
ZGRmMWNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhl
YWRlcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5o
CkBAIC01Niw2ICs1NiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXQoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2b2lkIGlu
aXRpYWxpemVXaXRoKGNvbnN0IEZldGNoSGVhZGVycyosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2
b2lkIGZpbGwoY29uc3QgRmV0Y2hIZWFkZXJzJik7CisKKyAgICBTdHJpbmcgZmFzdEdldChIVFRQ
SGVhZGVyTmFtZSBuYW1lKSBjb25zdCB7IHJldHVybiBtX2hlYWRlcnMuZ2V0KG5hbWUpOyB9Cisg
ICAgdm9pZCBmYXN0U2V0KEhUVFBIZWFkZXJOYW1lIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUp
IHsgbV9oZWFkZXJzLnNldChuYW1lLCB2YWx1ZSk7IH0KIAogcHJpdmF0ZToKICAgICBGZXRjaEhl
YWRlcnMoR3VhcmQgZ3VhcmQpIDogbV9ndWFyZChndWFyZCkgeyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5qcyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmpzCmluZGV4IDE1MGIyNTBiNWNlMmM0NGRiMjMw
MzgzN2RjMDQ5ODZiMzlhY2E2NTkuLjAzMDlmZWQ3ZmM4MDJhYzljN2ZmNzBkMWE0YWVlYzk2M2Q4
ZGVjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFk
ZXJzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmpz
CkBAIC00Nyw2ICs0Nyw3IEBAIGZ1bmN0aW9uIGluaXRpYWxpemVGZXRjaEhlYWRlcnMoaGVhZGVy
c0luaXQpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoImhlYWRlcnNJbml0
IHNlcXVlbmNlIGl0ZW1zIHNob3VsZCBjb250YWluIHR3byB2YWx1ZXMiKTsKICAgICAgICAgICAg
IHRoaXMuQGFwcGVuZEZyb21KUyhoZWFkZXJbMF0sIGhlYWRlclsxXSk7CiAgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHRoaXM7CiAgICAgfQogCiAgICAgQE9iamVjdC5AZ2V0T3duUHJvcGVydHlO
YW1lcyhoZWFkZXJzSW5pdCkuZm9yRWFjaCgobmFtZSkgPT4gewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hPcHRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU1ZThkNTg1MGZjMGQxMmM5
OTZkY2VhYmMxMTlmZjZlYWJmNWRlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hPcHRpb25zLmgKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1l
cyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICog
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZldGNoT3B0aW9uc19o
CisjZGVmaW5lIEZldGNoT3B0aW9uc19oCisKKyNpZiBFTkFCTEUoRkVUQ0hfQVBJKQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZldGNoT3B0aW9ucyB7CitwdWJsaWM6CisgICAgZW51
bSBjbGFzcyBUeXBlIHsKKyAgICAgICAgRGVmYXVsdCwKKyAgICAgICAgQXVkaW8sCisgICAgICAg
IEZvbnQsCisgICAgICAgIEltYWdlLAorICAgICAgICBTY3JpcHQsCisgICAgICAgIFN0eWxlLAor
ICAgICAgICBUcmFjaywKKyAgICAgICAgVmlkZW8KKyAgICB9OworICAgIGVudW0gY2xhc3MgRGVz
dGluYXRpb24geworICAgICAgICBEZWZhdWx0LAorICAgICAgICBEb2N1bWVudCwKKyAgICAgICAg
U2hhcmVkV29ya2VyLAorICAgICAgICBTdWJyZXNvdXJjZSwKKyAgICAgICAgVW5rbm93biwKKyAg
ICAgICAgV29ya2VyCisgICAgfTsKKyAgICBlbnVtIGNsYXNzIE1vZGUgeworICAgICAgICBOb0Nv
cnMsCisgICAgICAgIE5hdmlnYXRlLAorICAgICAgICBTYW1lT3JpZ2luLAorICAgICAgICBDb3Jz
CisgICAgfTsKKyAgICBlbnVtIGNsYXNzIENyZWRlbnRpYWxzIHsKKyAgICAgICAgT21pdCwKKyAg
ICAgICAgU2FtZU9yaWdpbiwKKyAgICAgICAgSW5jbHVkZQorICAgIH07CisgICAgZW51bSBjbGFz
cyBDYWNoZSB7CisgICAgICAgIERlZmF1bHQsCisgICAgICAgIE5vU3RvcmUsCisgICAgICAgIFJl
bG9hZCwKKyAgICAgICAgTm9DYWNoZSwKKyAgICAgICAgRm9yY2VDYWNoZSwKKyAgICB9OworICAg
IGVudW0gY2xhc3MgUmVkaXJlY3QgeworICAgICAgICBGb2xsb3csCisgICAgICAgIEVycm9yLAor
ICAgICAgICBNYW51YWwKKyAgICB9OworICAgIGVudW0gY2xhc3MgUmVmZXJyZXJQb2xpY3kgewor
ICAgICAgICBFbXB0eSwKKyAgICAgICAgTm9SZWZlcnJlciwKKyAgICAgICAgTm9SZWZlcnJlcldo
ZW5Eb3duZ3JhZGUsCisgICAgICAgIE9yaWdpbk9ubHksCisgICAgICAgIE9yaWdpbldoZW5Dcm9z
c09yaWdpbiwKKyAgICAgICAgVW5zYWZlVVJMCisgICAgfTsKKworICAgIEZldGNoT3B0aW9ucygp
IHsgfQorICAgIEZldGNoT3B0aW9ucyhUeXBlLCBEZXN0aW5hdGlvbiwgTW9kZSwgQ3JlZGVudGlh
bHMsIENhY2hlLCBSZWRpcmVjdCwgUmVmZXJyZXJQb2xpY3kpOworCisgICAgVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgRGVzdGluYXRpb24gZGVzdGluYXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9CisgICAgTW9kZSBtb2RlKCkgY29uc3QgeyBy
ZXR1cm4gbV9tb2RlOyB9CisgICAgQ3JlZGVudGlhbHMgY3JlZGVudGlhbHMoKSBjb25zdCB7IHJl
dHVybiBtX2NyZWRlbnRpYWxzOyB9CisgICAgQ2FjaGUgY2FjaGUoKSBjb25zdCB7IHJldHVybiBt
X2NhY2hlOyB9CisgICAgUmVkaXJlY3QgcmVkaXJlY3QoKSBjb25zdCB7IHJldHVybiBtX3JlZGly
ZWN0OyB9CisgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdCB7IHJldHVy
biBtX3JlZmVycmVyUG9saWN5OyB9CisKKyAgICB2b2lkIHNldFR5cGUoVHlwZSB0eXBlKSB7IG1f
dHlwZSA9IHR5cGU7IH0KKyAgICB2b2lkIHNldERlc3RpbmF0aW9uKERlc3RpbmF0aW9uIGRlc3Rp
bmF0aW9uKSB7IG1fZGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbjsgfQorICAgIHZvaWQgc2V0TW9k
ZShNb2RlIG1vZGUpIHsgbV9tb2RlID0gbW9kZTsgfQorICAgIHZvaWQgc2V0Q3JlZGVudGlhbHMo
Q3JlZGVudGlhbHMgY3JlZGVudGlhbHMpIHsgbV9jcmVkZW50aWFscyA9IGNyZWRlbnRpYWxzOyB9
CisgICAgdm9pZCBzZXRDYWNoZShDYWNoZSBjYWNoZSkgeyBtX2NhY2hlID0gY2FjaGU7IH0KKyAg
ICB2b2lkIHNldFJlZGlyZWN0KFJlZGlyZWN0IHJlZGlyZWN0KSB7IG1fcmVkaXJlY3QgPSByZWRp
cmVjdDsgfQorICAgIHZvaWQgc2V0UmVmZXJyZXJQb2xpY3koUmVmZXJyZXJQb2xpY3kgcmVmZXJy
ZXJQb2xpY3kpIHsgbV9yZWZlcnJlclBvbGljeSA9IHJlZmVycmVyUG9saWN5OyB9CisKK3ByaXZh
dGU6CisgICAgVHlwZSBtX3R5cGUgPSBUeXBlOjpEZWZhdWx0OworICAgIERlc3RpbmF0aW9uIG1f
ZGVzdGluYXRpb24gPSBEZXN0aW5hdGlvbjo6RGVmYXVsdDsKKyAgICBNb2RlIG1fbW9kZSA9IE1v
ZGU6Ok5vQ29yczsKKyAgICBDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzID0gQ3JlZGVudGlhbHM6
Ok9taXQ7CisgICAgQ2FjaGUgbV9jYWNoZSA9IENhY2hlOjpEZWZhdWx0OworICAgIFJlZGlyZWN0
IG1fcmVkaXJlY3QgPSBSZWRpcmVjdDo6IEZvbGxvdzsKKyAgICBSZWZlcnJlclBvbGljeSBtX3Jl
ZmVycmVyUG9saWN5ID0gUmVmZXJyZXJQb2xpY3k6OkVtcHR5OworfTsKKworaW5saW5lIEZldGNo
T3B0aW9uczo6RmV0Y2hPcHRpb25zKFR5cGUgdHlwZSwgRGVzdGluYXRpb24gZGVzdGluYXRpb24s
IE1vZGUgbW9kZSwgQ3JlZGVudGlhbHMgY3JlZGVudGlhbHMsIENhY2hlIGNhY2hlLCBSZWRpcmVj
dCByZWRpcmVjdCwgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3kpCisgICAgOiBtX3R5cGUo
dHlwZSkKKyAgICAsIG1fZGVzdGluYXRpb24oZGVzdGluYXRpb24pCisgICAgLCBtX21vZGUobW9k
ZSkKKyAgICAsIG1fY3JlZGVudGlhbHMoY3JlZGVudGlhbHMpCisgICAgLCBtX2NhY2hlKGNhY2hl
KQorICAgICwgbV9yZWRpcmVjdChyZWRpcmVjdCkKKyAgICAsIG1fcmVmZXJyZXJQb2xpY3kocmVm
ZXJyZXJQb2xpY3kpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShGRVRDSF9BUEkpCisKKyNlbmRpZiAvLyBGZXRjaE9wdGlvbnNfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4Nzli
NTkyNjQyMjZkNTdjNTY1YjJkZTkwMzdkYWExZTg3ZDZmNGYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0
MTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0LmgiCisKKyNpZiBFTkFCTEUoRkVU
Q0hfQVBJKQorCisjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKKyNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1JlZlB0cjxGZXRjaFJlcXVlc3Q+IEZldGNoUmVxdWVzdDo6Y3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZldGNoUmVxdWVzdCogaW5wdXQsIGNvbnN0IERp
Y3Rpb25hcnkmIGluaXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChpbnB1dC0+aXNE
aXN0dXJiZWQoKSkgIHsKKyAgICAgICAgZWMgPSBUeXBlRXJyb3I7CisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIH0KKyAgICBSZWZQdHI8RmV0Y2hSZXF1ZXN0PiByZXF1ZXN0ID0gYWRvcHRS
ZWYoKm5ldyBGZXRjaFJlcXVlc3QoKmlucHV0KSk7CisKKyAgICBlYyA9IHJlcXVlc3QtPmluaXQo
Y29udGV4dCwgaW5pdCk7CisgICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIGlucHV0LT5zZXREaXN0dXJiZWQoKTsKKyAgICBpbnB1dC0+Y2xlYXIoKTsKKworICAgIHJl
dHVybiByZXF1ZXN0OworfQorCitSZWZQdHI8RmV0Y2hSZXF1ZXN0PiBGZXRjaFJlcXVlc3Q6OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHVybCwg
Y29uc3QgRGljdGlvbmFyeSYgaW5pdCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgUmVmUHRy
PEZldGNoUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXF1ZXN0KTsKKwor
ICAgIC8vIEZJWE1FOiBUaWdodGVuIHRoZSBVUkwgcGFyc2luZyBhbGdvcml0aG0gYWNjb3JkaW5n
IGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC11cmwtcGFyc2VyLgorICAgIFVS
TCByZXF1ZXN0VVJMID0gY29udGV4dC5jb21wbGV0ZVVSTCh1cmwpOworICAgIGlmICghcmVxdWVz
dFVSTC5pc1ZhbGlkKCkgfHwgIXJlcXVlc3RVUkwudXNlcigpLmlzRW1wdHkoKSB8fCAhcmVxdWVz
dFVSTC5wYXNzKCkuaXNFbXB0eSgpKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmVxdWVzdC0+bV9yZXF1ZXN0LnNldFVSTChy
ZXF1ZXN0VVJMKTsKKyAgICByZXF1ZXN0LT5tX29wdGlvbnMuc2V0TW9kZShGZXRjaE9wdGlvbnM6
Ok1vZGU6OkNvcnMpOworICAgIHJlcXVlc3QtPm1fb3B0aW9ucy5zZXRDcmVkZW50aWFscyhGZXRj
aE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0KTsKKworICAgIGVjID0gcmVxdWVzdC0+aW5pdChj
b250ZXh0LCBpbml0KTsKKyAgICBpZiAoZWMpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgcmV0dXJuIHJlcXVlc3Q7Cit9CisKK0ZldGNoUmVxdWVzdDo6RmV0Y2hSZXF1ZXN0KCkKKyAg
ICA6IG1fcmVmZXJyZXIoImNsaWVudCIpCit7Cit9CisKK0ZldGNoUmVxdWVzdDo6RmV0Y2hSZXF1
ZXN0KGNvbnN0IEZldGNoUmVxdWVzdCYgcmVxdWVzdCkKKyAgICA6IG1faGVhZGVycyhyZXF1ZXN0
Lm1faGVhZGVycykKKyAgICAsIG1fcmVxdWVzdChyZXF1ZXN0Lm1fcmVxdWVzdCkKKyAgICAsIG1f
b3B0aW9ucyhyZXF1ZXN0Lm1fb3B0aW9ucykKKyAgICAsIG1fcmVmZXJyZXIocmVxdWVzdC5tX3Jl
ZmVycmVyKQorICAgICwgbV9pbnRlZ3JpdHkocmVxdWVzdC5tX2ludGVncml0eSkKK3sKK30KKwor
RXhjZXB0aW9uQ29kZSBGZXRjaFJlcXVlc3Q6OmluaXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRGljdGlvbmFyeSYgaW5pdCkKK3sKKyAgICAvLyBGSVhNRTogU3VwcG9y
dCB3aW5kb3cuCisgICAgSlNDOjpKU1ZhbHVlIHdpbmRvdzsKKyAgICBpZiAoaW5pdC5nZXQoIndp
bmRvdyIsIHdpbmRvdykpIHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaXNOdWxsKCkpCisgICAgICAg
ICAgICByZXR1cm4gVHlwZUVycm9yOworICAgIH0KKworICAgIFN0cmluZyB2YWx1ZTsKKyAgICBp
ZiAoaW5pdC5nZXQoInJlZmVycmVyIiwgdmFsdWUpKSB7CisgICAgICAgIGlmICghc2V0UmVmZXJy
ZXIoY29udGV4dCwgdmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIFR5cGVFcnJvcjsKKyAgICB9
CisKKyAgICBpZiAoaW5pdC5nZXQoInJlZmVycmVyUG9saWN5IiwgdmFsdWUpKQorICAgICAgICBz
ZXRSZWZlcnJlclBvbGljeSh2YWx1ZSk7CisKKyAgICBpZiAoaW5pdC5nZXQoIm1vZGUiLCB2YWx1
ZSkpCisgICAgICAgIHNldE1vZGUodmFsdWUpOworICAgIGlmIChtX29wdGlvbnMubW9kZSgpID09
IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUpCisgICAgICAgIHJldHVybiBUeXBlRXJyb3I7
CisKKyAgICBpZiAoaW5pdC5nZXQoImNyZWRlbnRpYWxzIiwgdmFsdWUpKQorICAgICAgICBzZXRD
cmVkZW50aWFscyh2YWx1ZSk7CisKKyAgICBpZiAoaW5pdC5nZXQoImNhY2hlIiwgdmFsdWUpKQor
ICAgICAgICBzZXRDYWNoZSh2YWx1ZSk7CisKKyAgICBpZiAoaW5pdC5nZXQoInJlZGlyZWN0Iiwg
dmFsdWUpKQorICAgICAgICBzZXRSZWRpcmVjdCh2YWx1ZSk7CisKKyAgICBpbml0LmdldCgiaW50
ZWdyaXR5IiwgbV9pbnRlZ3JpdHkpOworCisgICAgaWYgKGluaXQuZ2V0KCJtZXRob2QiLCB2YWx1
ZSkpIHsKKyAgICAgICAgaWYgKCFzZXRNZXRob2QodmFsdWUpKQorICAgICAgICAgICAgcmV0dXJu
IFR5cGVFcnJvcjsKKyAgICB9CisKKyAgICBGZXRjaEhlYWRlcnM6Okd1YXJkIGd1YXJkID0gRmV0
Y2hIZWFkZXJzOjpHdWFyZDo6UmVxdWVzdDsKKyAgICBpZiAobV9vcHRpb25zLm1vZGUoKSA9PSBG
ZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycykgeworICAgICAgICBjb25zdCBTdHJpbmcmIG1ldGhv
ZCA9IG1fcmVxdWVzdC5odHRwTWV0aG9kKCk7CisgICAgICAgIGlmICgobWV0aG9kICE9ICJHRVQi
ICYmIG1ldGhvZCAhPSAiUE9TVCIgJiYgbWV0aG9kICE9ICJIRUFEIikgfHwgIW1faW50ZWdyaXR5
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBUeXBlRXJyb3I7CisgICAgICAgIGd1YXJk
ID0gRmV0Y2hIZWFkZXJzOjpHdWFyZDo6UmVxdWVzdE5vQ29yczsKKyAgICB9CisKKyAgICBSZWZQ
dHI8RmV0Y2hIZWFkZXJzPiBoZWFkZXJzOworICAgIGlmICghaW5pdC5nZXQoImhlYWRlcnMiLCBo
ZWFkZXJzKSkKKyAgICAgICAgaGVhZGVycyA9IFdURk1vdmUobV9oZWFkZXJzKTsKKyAgICBtX2hl
YWRlcnMgPSBGZXRjaEhlYWRlcnM6OmNyZWF0ZShndWFyZCk7CisgICAgaWYgKGhlYWRlcnMpCisg
ICAgICAgIG1faGVhZGVycy0+ZmlsbCgqaGVhZGVycyk7CisKKyAgICBTdHJpbmcgdHlwZSA9IG1f
aGVhZGVycy0+ZmFzdEdldChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUpOworCisgICAgaWYg
KGluaXRCb2R5KGluaXQpKSB7CisgICAgICAgIC8vIEZJWE1FOiBOZWVkIHRlc3RzIGZvciBNSU1F
IHR5cGUgcHJvY2Vzc2luZy4KKyAgICAgICAgaWYgKHR5cGUuaXNFbXB0eSgpICYmICFtaW1lVHlw
ZSgpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgdHlwZSA9IG1pbWVUeXBlKCk7CisgICAgICAg
ICAgICBtX2hlYWRlcnMtPmZhc3RTZXQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlLCB0eXBl
KTsKKyAgICAgICAgfQorICAgIH0KKyAgICBzZXRNaW1lVHlwZSh0eXBlKTsKKworICAgIGlmICgh
aXNFbXB0eSgpICYmIChtX3JlcXVlc3QuaHR0cE1ldGhvZCgpID09ICJHRVQiIHx8IG1fcmVxdWVz
dC5odHRwTWV0aG9kKCkgPT0gIkhFQUQiKSkKKyAgICAgICAgcmV0dXJuIFR5cGVFcnJvcjsKKwor
ICAgIHJldHVybiAwOworfQorCisKK2Jvb2wgRmV0Y2hSZXF1ZXN0OjpzZXRSZWZlcnJlcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQorewor
ICAgIGlmIChyZWZlcnJlci5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV9yZWZlcnJlciA9IEFTQ0lJ
TGl0ZXJhbCgibm8tcmVmZXJyZXIiKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAg
IC8vIEZJWE1FOiBUaWdodGVuIHRoZSBVUkwgcGFyc2luZyBhbGdvcml0aG0gYWNjb3JkaW5nIGh0
dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC11cmwtcGFyc2VyLgorICAgIFVSTCBy
ZWZlcnJlclVSTCA9IGNvbnRleHQuY29tcGxldGVVUkwocmVmZXJyZXIpOworICAgIGlmICghcmVm
ZXJyZXJVUkwuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBGSVhN
RTogcmVmZXJyZXIgc2hvdWxkIGJlIGEgbm9uIHJlbGF0aXZlIFVSTC4KKyAgICBpZiAocmVmZXJy
ZXJVUkwucHJvdG9jb2woKSA9PSAiYWJvdXQiICYmIHJlZmVycmVyVVJMLnBhdGgoKS5jb250YWlu
cygiY2xpZW50IikpIHsKKyAgICAgICAgbV9yZWZlcnJlciA9IEFTQ0lJTGl0ZXJhbCgiY2xpZW50
Iik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmICghKGNvbnRleHQuc2Vj
dXJpdHlPcmlnaW4oKSAmJiBjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCktPmNhblJlcXVlc3QocmVm
ZXJyZXJVUkwpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9yZWZlcnJlciA9IHJl
ZmVycmVyVVJMLnN0cmluZygpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEZldGNoUmVx
dWVzdDo6c2V0UmVmZXJyZXJQb2xpY3koY29uc3QgU3RyaW5nJiByZWZlcnJlclBvbGljeSkKK3sK
KyAgICBpZiAocmVmZXJyZXJQb2xpY3kuaXNFbXB0eSgpKQorICAgICAgICBtX29wdGlvbnMuc2V0
UmVmZXJyZXJQb2xpY3koRmV0Y2hPcHRpb25zOjpSZWZlcnJlclBvbGljeTo6RW1wdHkpOworICAg
IGVsc2UgaWYgKHJlZmVycmVyUG9saWN5ID09ICJuby1yZWZlcnJlciIpCisgICAgICAgIG1fb3B0
aW9ucy5zZXRSZWZlcnJlclBvbGljeShGZXRjaE9wdGlvbnM6OlJlZmVycmVyUG9saWN5OjpOb1Jl
ZmVycmVyKTsKKyAgICBlbHNlIGlmIChyZWZlcnJlclBvbGljeSA9PSAibm8tcmVmZXJyZXItd2hl
bi1kb3duZ3JhZGUiKQorICAgICAgICBtX29wdGlvbnMuc2V0UmVmZXJyZXJQb2xpY3koRmV0Y2hP
cHRpb25zOjpSZWZlcnJlclBvbGljeTo6Tm9SZWZlcnJlcldoZW5Eb3duZ3JhZGUpOworICAgIGVs
c2UgaWYgKHJlZmVycmVyUG9saWN5ID09ICJvcmlnaW4tb25seSIpCisgICAgICAgIG1fb3B0aW9u
cy5zZXRSZWZlcnJlclBvbGljeShGZXRjaE9wdGlvbnM6OlJlZmVycmVyUG9saWN5OjpPcmlnaW5P
bmx5KTsKKyAgICBlbHNlIGlmIChyZWZlcnJlclBvbGljeSA9PSAib3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luIikKKyAgICAgICAgbV9vcHRpb25zLnNldFJlZmVycmVyUG9saWN5KEZldGNoT3B0aW9u
czo6UmVmZXJyZXJQb2xpY3k6Ok9yaWdpbldoZW5Dcm9zc09yaWdpbik7CisgICAgZWxzZSBpZiAo
cmVmZXJyZXJQb2xpY3kgPT0gInVuc2FmZS11cmwiKQorICAgICAgICBtX29wdGlvbnMuc2V0UmVm
ZXJyZXJQb2xpY3koRmV0Y2hPcHRpb25zOjpSZWZlcnJlclBvbGljeTo6VW5zYWZlVVJMKTsKK30K
Kwordm9pZCBGZXRjaFJlcXVlc3Q6OnNldE1vZGUoY29uc3QgU3RyaW5nJiBtb2RlKQoreworICAg
IGlmIChtb2RlID09ICJuYXZpZ2F0ZSIpCisgICAgICAgIG1fb3B0aW9ucy5zZXRNb2RlKEZldGNo
T3B0aW9uczo6TW9kZTo6TmF2aWdhdGUpOworICAgIGVsc2UgaWYgKG1vZGUgPT0gInNhbWUtb3Jp
Z2luIikKKyAgICAgICAgbV9vcHRpb25zLnNldE1vZGUoRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1l
T3JpZ2luKTsKKyAgICBlbHNlIGlmIChtb2RlID09ICJuby1jb3JzIikKKyAgICAgICAgbV9vcHRp
b25zLnNldE1vZGUoRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMpOworICAgIGVsc2UgaWYgKG1v
ZGUgPT0gImNvcnMiKQorICAgICAgICBtX29wdGlvbnMuc2V0TW9kZShGZXRjaE9wdGlvbnM6Ok1v
ZGU6OkNvcnMpOworfQorCit2b2lkIEZldGNoUmVxdWVzdDo6c2V0Q3JlZGVudGlhbHMoY29uc3Qg
U3RyaW5nJiBjcmVkZW50aWFscykKK3sKKyAgICBpZiAoY3JlZGVudGlhbHMgPT0gIm9taXQiKQor
ICAgICAgICBtX29wdGlvbnMuc2V0Q3JlZGVudGlhbHMoRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFs
czo6T21pdCk7CisgICAgZWxzZSBpZiAoY3JlZGVudGlhbHMgPT0gInNhbWUtb3JpZ2luIikKKyAg
ICAgICAgbV9vcHRpb25zLnNldENyZWRlbnRpYWxzKEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6
OlNhbWVPcmlnaW4pOworICAgIGVsc2UgaWYgKGNyZWRlbnRpYWxzID09ICJpbmNsdWRlIikKKyAg
ICAgICAgbV9vcHRpb25zLnNldENyZWRlbnRpYWxzKEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6
OkluY2x1ZGUpOworfQorCit2b2lkIEZldGNoUmVxdWVzdDo6c2V0Q2FjaGUoY29uc3QgU3RyaW5n
JiBjYWNoZSkKK3sKKyAgICBpZiAoY2FjaGUgPT0gImRlZmF1bHQiKQorICAgICAgICBtX29wdGlv
bnMuc2V0Q2FjaGUoRmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVsdCk7CisgICAgZWxzZSBpZiAo
Y2FjaGUgPT0gIm5vLXN0b3JlIikKKyAgICAgICAgbV9vcHRpb25zLnNldENhY2hlKEZldGNoT3B0
aW9uczo6Q2FjaGU6Ok5vU3RvcmUpOworICAgIGVsc2UgaWYgKGNhY2hlID09ICJyZWxvYWQiKQor
ICAgICAgICBtX29wdGlvbnMuc2V0Q2FjaGUoRmV0Y2hPcHRpb25zOjpDYWNoZTo6UmVsb2FkKTsK
KyAgICBlbHNlIGlmIChjYWNoZSA9PSAibm8tY2FjaGUiKQorICAgICAgICBtX29wdGlvbnMuc2V0
Q2FjaGUoRmV0Y2hPcHRpb25zOjpDYWNoZTo6Tm9DYWNoZSk7CisgICAgZWxzZSBpZiAoY2FjaGUg
PT0gImZvcmNlLWNhY2hlIikKKyAgICAgICAgbV9vcHRpb25zLnNldENhY2hlKEZldGNoT3B0aW9u
czo6Q2FjaGU6OkZvcmNlQ2FjaGUpOworfQorCit2b2lkIEZldGNoUmVxdWVzdDo6c2V0UmVkaXJl
Y3QoY29uc3QgU3RyaW5nJiByZWRpcmVjdCkKK3sKKyAgICBpZiAocmVkaXJlY3QgPT0gImZvbGxv
dyIpCisgICAgICAgIG1fb3B0aW9ucy5zZXRSZWRpcmVjdChGZXRjaE9wdGlvbnM6OlJlZGlyZWN0
OjpGb2xsb3cpOworICAgIGVsc2UgaWYgKHJlZGlyZWN0ID09ICJlcnJvciIpCisgICAgICAgIG1f
b3B0aW9ucy5zZXRSZWRpcmVjdChGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpFcnJvcik7CisgICAg
ZWxzZSBpZiAocmVkaXJlY3QgPT0gIm1hbnVhbCIpCisgICAgICAgIG1fb3B0aW9ucy5zZXRSZWRp
cmVjdChGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpNYW51YWwpOworfQorCitTdHJpbmcgRmV0Y2hS
ZXF1ZXN0Ojp0eXBlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fb3B0aW9ucy50eXBlKCkpIHsK
KyAgICBjYXNlIEZldGNoT3B0aW9uczo6VHlwZTo6RGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIFN0
cmluZygpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpUeXBlOjpBdWRpbyA6CisgICAgICAgIHJl
dHVybiBBU0NJSUxpdGVyYWwoImF1ZGlvIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlR5cGU6
OkZvbnQgOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJmb250Iik7CisgICAgY2FzZSBG
ZXRjaE9wdGlvbnM6OlR5cGU6OkltYWdlIDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
aW1hZ2UiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6VHlwZTo6U2NyaXB0IDoKKyAgICAgICAg
cmV0dXJuIEFTQ0lJTGl0ZXJhbCgic2NyaXB0Iik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlR5
cGU6OlN0eWxlIDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic3R5bGUiKTsKKyAgICBj
YXNlIEZldGNoT3B0aW9uczo6VHlwZTo6VHJhY2sgOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRl
cmFsKCJ0cmFjayIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpUeXBlOjpWaWRlbyA6CisgICAg
ICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInZpZGVvIik7CisgICAgfTsKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBGZXRjaFJlcXVl
c3Q6OmRlc3RpbmF0aW9uKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fb3B0aW9ucy5kZXN0aW5h
dGlvbigpKSB7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpEZWZhdWx0Ogor
ICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0
aW9uOjpEb2N1bWVudDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZG9jdW1lbnQiKTsK
KyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlNoYXJlZFdvcmtlcjoKKyAgICAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic2hhcmVkd29ya2VyIik7CisgICAgY2FzZSBGZXRjaE9w
dGlvbnM6OkRlc3RpbmF0aW9uOjpTdWJyZXNvdXJjZToKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgic3VicmVzb3VyY2UiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246
OlVua25vd246CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVua25vd24iKTsKKyAgICBj
YXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OldvcmtlcjoKKyAgICAgICAgcmV0dXJuIEFT
Q0lJTGl0ZXJhbCgid29ya2VyIik7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEZldGNoUmVxdWVzdDo6cmVmZXJyZXJQ
b2xpY3koKSBjb25zdAoreworICAgIHN3aXRjaCAobV9vcHRpb25zLnJlZmVycmVyUG9saWN5KCkp
IHsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6UmVmZXJyZXJQb2xpY3k6OkVtcHR5OgorICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlJlZmVycmVyUG9saWN5
OjpOb1JlZmVycmVyOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJuby1yZWZlcnJlciIp
OworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpSZWZlcnJlclBvbGljeTo6Tm9SZWZlcnJlcldoZW5E
b3duZ3JhZGU6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm5vLXJlZmVycmVyLXdoZW4t
ZG93bmdyYWRlIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlJlZmVycmVyUG9saWN5OjpPcmln
aW5Pbmx5OgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJvcmlnaW4tb25seSIpOworICAg
IGNhc2UgRmV0Y2hPcHRpb25zOjpSZWZlcnJlclBvbGljeTo6T3JpZ2luV2hlbkNyb3NzT3JpZ2lu
OgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4i
KTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6UmVmZXJyZXJQb2xpY3k6OlVuc2FmZVVSTDoKKyAg
ICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidW5zYWZlLXVybCIpOworICAgIH0KKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBGZXRj
aFJlcXVlc3Q6OnJlZmVycmVyKCkgY29uc3QKK3sKKyAgICBpZiAobV9yZWZlcnJlciA9PSAibm8t
cmVmZXJyZXIiKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgaWYgKG1fcmVmZXJyZXIg
PT0gImNsaWVudCIpCisgICAgICAgIHJldHVybiAiYWJvdXQ6Y2xpZW50IjsKKyAgICByZXR1cm4g
bV9yZWZlcnJlcjsKK30KKworU3RyaW5nIEZldGNoUmVxdWVzdDo6bW9kZSgpIGNvbnN0Cit7Cisg
ICAgc3dpdGNoIChtX29wdGlvbnMubW9kZSgpKSB7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6Ok1v
ZGU6Ok5hdmlnYXRlOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJuYXZpZ2F0ZSIpOwor
ICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luOgorICAgICAgICByZXR1cm4g
QVNDSUlMaXRlcmFsKCJzYW1lLW9yaWdpbiIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpNb2Rl
OjpOb0NvcnM6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm5vLWNvcnMiKTsKKyAgICBj
YXNlIEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bCgiY29ycyIpOworICAgIH07CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCitTdHJpbmcgRmV0Y2hSZXF1ZXN0OjpjcmVkZW50aWFscygpIGNvbnN0
Cit7CisgICAgc3dpdGNoIChtX29wdGlvbnMuY3JlZGVudGlhbHMoKSkgeworICAgIGNhc2UgRmV0
Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bCgib21pdCIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdp
bjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic2FtZS1vcmlnaW4iKTsKKyAgICBjYXNl
IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGU6CisgICAgICAgIHJldHVybiBBU0NJ
SUxpdGVyYWwoImluY2x1ZGUiKTsKKyAgICB9OworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEZldGNoUmVxdWVzdDo6Y2FjaGUoKSBj
b25zdAoreworICAgIHN3aXRjaCAobV9vcHRpb25zLmNhY2hlKCkpIHsKKyAgICBjYXNlIEZldGNo
T3B0aW9uczo6Q2FjaGU6OkRlZmF1bHQ6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImRl
ZmF1bHQiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q2FjaGU6Ok5vU3RvcmU6CisgICAgICAg
IHJldHVybiBBU0NJSUxpdGVyYWwoIm5vLXN0b3JlIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6
OkNhY2hlOjpSZWxvYWQ6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInJlbG9hZCIpOwor
ICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpDYWNoZTo6Tm9DYWNoZToKKyAgICAgICAgcmV0dXJuIEFT
Q0lJTGl0ZXJhbCgibm8tY2FjaGUiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q2FjaGU6OkZv
cmNlQ2FjaGU6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImZvcmNlLWNhY2hlIik7Cisg
ICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworU3RyaW5nIEZldGNoUmVxdWVzdDo6cmVkaXJlY3QoKSBjb25zdAoreworICAgIHN3aXRjaCAo
bV9vcHRpb25zLnJlZGlyZWN0KCkpIHsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6
OkZvbGxvdzoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZm9sbG93Iik7CisgICAgY2Fz
ZSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpFcnJvcjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgiZXJyb3IiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6Ok1hbnVhbDoK
KyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibWFudWFsIik7CisgICAgfQorICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworYm9vbCBGZXRjaFJl
cXVlc3Q6OnNldE1ldGhvZChjb25zdCBTdHJpbmcmIG1ldGhvZCkKK3sKKyAgICBpZiAoIWlzVmFs
aWRIVFRQVG9rZW4obWV0aG9kKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU3RyaW5n
IHVwcGVyID0gbWV0aG9kLnVwcGVyKCk7CisgICAgaWYgKHVwcGVyID09ICJDT05ORUNUIiB8fCB1
cHBlciA9PSAiVFJBQ0UiIHx8IHVwcGVyID09ICJUUkFDSyIpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIG1fcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCh1cHBlciA9PSAiREVMRVRFIiB8fCB1
cHBlciA9PSAiR0VUIiB8fCB1cHBlciA9PSAiSEVBRCIgfHwgdXBwZXIgPT0gIk9QVElPTlMiIHx8
IHVwcGVyID09ICJQT1NUIiB8fCB1cHBlciA9PSAiUFVUIikgPyB1cHBlciA6IG1ldGhvZCk7CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworUmVmUHRyPEZldGNoUmVxdWVzdD4gRmV0Y2hSZXF1ZXN0
OjpjbG9uZShFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoaXNEaXN0dXJiZWQoKSkgewor
ICAgICAgICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZldGNoUmVxdWVzdCgqdGhpcykpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRkVUQ0hfQVBJKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNThlOTRh
NDAxOTViMWE4M2Y0Nzc1MWJlOTQyMDU0YWZhMDM5YTNiNgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmgKQEAgLTAsMCArMSw5OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQ2Fub24gSW5jLiBu
b3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBDQU5PTiBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAq
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRmV0
Y2hSZXF1ZXN0X2gKKyNkZWZpbmUgRmV0Y2hSZXF1ZXN0X2gKKworI2lmIEVOQUJMRShGRVRDSF9B
UEkpCisKKyNpbmNsdWRlICJGZXRjaEJvZHkuaCIKKyNpbmNsdWRlICJGZXRjaEhlYWRlcnMuaCIK
KyNpbmNsdWRlICJGZXRjaE9wdGlvbnMuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIK
KworbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBBcnJheUJ1ZmZlcjsKK307CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgQmxvYjsKK2NsYXNzIEZvcm1EYXRhOworY2xhc3MgRGljdGlvbmFy
eTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK3R5cGVkZWYgaW50IEV4Y2VwdGlv
bkNvZGU7CisKK2NsYXNzIEZldGNoUmVxdWVzdCA6IHB1YmxpYyBGZXRjaEJvZHkgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWZQdHI8RmV0Y2hSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIEZldGNoUmVxdWVzdCosIGNvbnN0IERpY3Rpb25hcnkmLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgc3RhdGljIFJlZlB0cjxGZXRjaFJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgRGljdGlvbmFyeSYsIEV4Y2VwdGlvbkNv
ZGUmKTsKKworICAgIFN0cmluZyBtZXRob2QgKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0Lmh0
dHBNZXRob2QoKTsgfQorICAgIFN0cmluZyB1cmwoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3Qu
dXJsKCkuc3RyaW5nKCk7IH0KKworICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CisgICAgU3RyaW5n
IGRlc3RpbmF0aW9uKCkgY29uc3Q7CisgICAgU3RyaW5nIHJlZmVycmVyKCkgY29uc3Q7CisgICAg
U3RyaW5nIHJlZmVycmVyUG9saWN5KCkgY29uc3Q7CisgICAgU3RyaW5nIG1vZGUoKSBjb25zdDsK
KyAgICBTdHJpbmcgY3JlZGVudGlhbHMoKSBjb25zdDsKKyAgICBTdHJpbmcgY2FjaGUoKSBjb25z
dDsKKyAgICBTdHJpbmcgcmVkaXJlY3QoKSBjb25zdDsKKyAgICBTdHJpbmcgaW50ZWdyaXR5KCkg
Y29uc3QgeyByZXR1cm4gbV9pbnRlZ3JpdHk7IH0KKyAgICBGZXRjaEhlYWRlcnMqIGhlYWRlcnMo
KSB7IHJldHVybiBtX2hlYWRlcnMuZ2V0KCk7IH0KKworICAgIFJlZlB0cjxGZXRjaFJlcXVlc3Q+
IGNsb25lKEV4Y2VwdGlvbkNvZGUmKTsKKworcHJpdmF0ZToKKyAgICBGZXRjaFJlcXVlc3QoKTsK
KyAgICBGZXRjaFJlcXVlc3QoY29uc3QgRmV0Y2hSZXF1ZXN0Jik7CisKKyAgICBFeGNlcHRpb25D
b2RlIGluaXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IERpY3Rpb25hcnkmKTsKKyAg
ICBib29sIHNldFJlZmVycmVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcm
KTsKKyAgICB2b2lkIHNldFJlZmVycmVyUG9saWN5KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQg
c2V0TW9kZShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNldENyZWRlbnRpYWxzKGNvbnN0IFN0
cmluZyYpOworICAgIHZvaWQgc2V0Q2FjaGUoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBzZXRS
ZWRpcmVjdChjb25zdCBTdHJpbmcmKTsKKyAgICBib29sIHNldE1ldGhvZChjb25zdCBTdHJpbmcm
KTsKKworICAgIFZlY3RvcjxjaGFyPiBib2R5RGF0YSgpOworCisgICAgUmVmUHRyPEZldGNoSGVh
ZGVycz4gbV9oZWFkZXJzOworICAgIFJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CisgICAgRmV0
Y2hPcHRpb25zIG1fb3B0aW9uczsKKyAgICBTdHJpbmcgbV9yZWZlcnJlcjsKKyAgICBTdHJpbmcg
bV9pbnRlZ3JpdHk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoRkVUQ0hfQVBJKQorCisjZW5kaWYgLy8gRmV0Y2hSZXF1ZXN0X2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzc3NDBh
ODRhYjE1Nzg1ZjA0MmVkYWE5YTUxYTg5OGUzNWQ2MGVmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaWRsCkBAIC0wLDAgKzEsNjMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4g
bm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisg
KiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitlbnVtIFJlcXVl
c3RUeXBlIHsgIiIsICJhdWRpbyIsICJmb250IiwgImltYWdlIiwgInNjcmlwdCIsICJzdHlsZSIs
ICJ0cmFjayIsICJ2aWRlbyIgfTsKK2VudW0gUmVxdWVzdERlc3RpbmF0aW9uIHsgIiIsICJkb2N1
bWVudCIsICJzaGFyZWR3b3JrZXIiLCAic3VicmVzb3VyY2UiLCAidW5rbm93biIsICJ3b3JrZXIi
IH07CitlbnVtIFJlcXVlc3RNb2RlIHsgIm5hdmlnYXRlIiwgInNhbWUtb3JpZ2luIiwgIm5vLWNv
cnMiLCAiY29ycyIgfTsKK2VudW0gUmVxdWVzdENyZWRlbnRpYWxzIHsgIm9taXQiLCAic2FtZS1v
cmlnaW4iLCAiaW5jbHVkZSIgfTsKK2VudW0gUmVxdWVzdENhY2hlIHsgImRlZmF1bHQiLCAibm8t
c3RvcmUiLCAicmVsb2FkIiwgIm5vLWNhY2hlIiwgImZvcmNlLWNhY2hlIiB9OworZW51bSBSZXF1
ZXN0UmVkaXJlY3QgeyAiZm9sbG93IiwgImVycm9yIiwgIm1hbnVhbCIgfTsKK2VudW0gUmVmZXJy
ZXJQb2xpY3kgeyAiIiwgIm5vLXJlZmVycmVyIiwgICJuby1yZWZlcnJlci13aGVuLWRvd25ncmFk
ZSIsICJvcmlnaW4tb25seSIsICJvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iLCAidW5zYWZlLXVy
bCIgfTsKKworWworICAgIENvbmRpdGlvbmFsPUZFVENIX0FQSSwKKyAgICBDb25zdHJ1Y3RvckNh
bGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCisgICAgQ29uc3RydWN0b3JSYWlzZXNFeGNl
cHRpb24sCisgICAgQ29uc3RydWN0b3IoRmV0Y2hSZXF1ZXN0IGlucHV0LCBbRGVmYXVsdD1VbmRl
ZmluZWRdIG9wdGlvbmFsIERpY3Rpb25hcnkgaW5pdCksCisgICAgQ29uc3RydWN0b3IoRE9NU3Ry
aW5nIGlucHV0LCBbRGVmYXVsdD1VbmRlZmluZWRdICBvcHRpb25hbCBEaWN0aW9uYXJ5IGluaXQp
LAorICAgIEdsb2JhbENvbnRleHQ9RE9NV2luZG93Jldvcmtlckdsb2JhbFNjb3BlLAorICAgIElu
dGVyZmFjZU5hbWU9UmVxdWVzdAorXQoraW50ZXJmYWNlIEZldGNoUmVxdWVzdCB7CisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXRob2Q7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyB1cmw7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZldGNoSGVhZGVycyBoZWFk
ZXJzOworCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3RUeXBlIHR5cGU7CisgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFJlcXVlc3REZXN0aW5hdGlvbiBkZXN0aW5hdGlvbjsKKyAgICBbU2V0
dGVyQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyByZWZlcnJlcjsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVmZXJyZXJQb2xpY3kg
cmVmZXJyZXJQb2xpY3k7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3RNb2RlIG1vZGU7
CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFsczsK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVzdENhY2hlIGNhY2hlOworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBSZXF1ZXN0UmVkaXJlY3QgcmVkaXJlY3Q7CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBpbnRlZ3JpdHk7CisKKyAgICBbUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmpl
Y3RdIEZldGNoUmVxdWVzdCBjbG9uZSgpOworfTsKK0ZldGNoUmVxdWVzdCBpbXBsZW1lbnRzIEZl
dGNoQm9keTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBiYjcxM2UyNzgzOTkzOTg0ZDliZTQ3ZDg4MWM2OWUxY2YyYzc3MTY0Li4w
YmU4NjQ4ODdmZjM0YjdiMzg4NzdiOWVkZDFmYTU4YTQzYmY2ZjVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTQ3LDcgKzE1
NDcsOSBAQAogCQk0MUYwNjZFNTBGNjRCQ0Y2MDBBMDdFQUMgLyogU2NyaXB0R2xvYmFsT2JqZWN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjA2
NkUzMEY2NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRHbG9iYWxPYmplY3QuY3BwICovOyB9OwogCQk0
MUYxRDIxRjBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYxRDIxRDBFRjM1QzJB
MDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFGMUQyMjAwRUYzNUMyQTAwREE4NzUzIC8q
IFNjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MUYxRDIxRTBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVk
RnJhbWVEYXRhLmNwcCAqLzsgfTsKKwkJNDFGNTRGOEIxQzUwQzUwMzAwMzM4NDg4IC8qIEZldGNo
Qm9keS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MUY1NEY3RDFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hCb2R5LmNwcCAqLzsgfTsKIAkJNDFGNTRG
OEQxQzUwQzUwODAwMzM4NDg4IC8qIEZldGNoSGVhZGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUY1NEY4MjFDNTBDNEY2MDAzMzg0ODggLyog
RmV0Y2hIZWFkZXJzLmNwcCAqLzsgfTsKKwkJNDFGNTRGOEUxQzUwQzUwQzAwMzM4NDg4IC8qIEZl
dGNoUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MUY1NEY4NzFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hSZXF1ZXN0LmNwcCAqLzsgfTsK
IAkJNDFGNTg0QzcxMDQ2NTJDQjAwOUNBQTY0IC8qIEpTTWVzc2FnZVBvcnRDdXN0b20uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjU4NEM2MTA0NjUy
Q0IwMDlDQUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmggKi87IH07CiAJCTQxRkEzMDNFMTMx
NkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkEzMDNDMTMxNkMyOUMwMEMwQkZDNSAv
KiBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcCAqLzsgfTsKIAkJNDFGQTMwM0YxMzE2QzI5QzAwQzBC
RkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkEzMDNEMTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRp
YUNvbnRyb2xzLmggKi87IH07CkBAIC0yNzg4LDYgKzI3OTAsOCBAQAogCQk3RTQ3NEUxRTEyNDk0
REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ3NEUxQjEyNDk0REM5MDAyMzUz
NjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0U0NzRFMUYxMjQ5NERDOTAwMjM1MzY0IC8q
IFNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0U0NzRFMUMxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNl
VHJhY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdFNDc0RTIwMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0NzRFMUQx
MjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgKi87IH07CisJCTdF
NEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTRDOTZEODFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNGZXRjaFJlcXVlc3QuY3BwICovOyB9OworCQk3RTRDOTZERDFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNGZXRjaFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5o
ICovOyB9OwogCQk3RTRERTEwRDE5OEIxMEI2MDA1MUNCMDIgLyogRGlza0NhY2hlTW9uaXRvckNv
Y29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0
REUxMEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAqLzsgfTsK
IAkJN0U1RDdBNzYxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U1RDdBNzMxNjFE
M0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovOyB9OwogCQk3RTVEN0E3
NzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U1RDdBNzQxNjFEM0Y4RjAwODk2QzM0
IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCAqLzsgfTsKQEAgLTI4MjQsNiArMjgyOCw4IEBACiAJ
CTdFRTY4NDcwMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ1RDEyRDI2RTM4MDBF
Nzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTdFRTY4NDcxMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJj
ZVJlc3BvbnNlQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0VFNjg0NUUxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2VDRk5l
dC5jcHAgKi87IH07CiAJCTdFRTY4NDc1MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRl
ckNGTmV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdFRTY4NDc0MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRlckNGTmV0LmNwcCAqLzsg
fTsKKwkJN0Y0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdGNEM5NkQ4MUFENDQ4MzUw
MDM2NUE1MCAvKiBKU0ZldGNoQm9keS5jcHAgKi87IH07CisJCTdGNEM5NkREMUFENDQ4MzUwMDM2
NUE1MCAvKiBKU0ZldGNoQm9keS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmggKi87
IH07CiAJCTgxMDJDNTg4MTMyNUJCMTEwMERERTY3QSAvKiBTdHJpbmdDYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MTAyQzU4NzEzMjVC
QjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwICovOyB9OwogCQk4MUFDNTk5OTEzMTYz
NkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBQzU5OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFU
cmFuc2Zlckl0ZW0uaCAqLzsgfTsKIAkJODFBQzU5OUExMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFU
cmFuc2Zlckl0ZW1MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbUxpc3Qu
aCAqLzsgfTsKQEAgLTg5NDUsMTAgKzg5NTEsMTcgQEAKIAkJNDFGMDY2RTMwRjY0QkNGNjAwQTA3
RUFDIC8qIFNjcmlwdEdsb2JhbE9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTY3JpcHRHbG9iYWxPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MUYxRDIxRDBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdENhY2hlZEZyYW1lRGF0
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUYxRDIxRTBFRjM1QzJBMDBEQTg3
NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxRjU0RjdEMUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEJvZHkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmV0Y2hCb2R5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGNTRGN0UxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNo
Qm9keS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZXRjaEJvZHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGNTRGN0YxQzUwQzRGNjAwMzM4NDg4IC8qIEZl
dGNoQm9keS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmV0Y2hCb2R5LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGNTRGODIxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNo
SGVhZGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGZXRjaEhl
YWRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUY1NEY4MzFDNTBDNEY2
MDAzMzg0ODggLyogRmV0Y2hIZWFkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZldGNoSGVhZGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUY1NEY4
NDFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hIZWFkZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBGZXRjaEhlYWRlcnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUY1
NEY4NTFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hIZWFkZXJzLmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBwYXRoID0gRmV0Y2hIZWFkZXJzLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MUY1NEY4NjFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hPcHRpb25zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZldGNoT3B0aW9ucy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MUY1NEY4NzFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hS
ZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZldGNoUmVx
dWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRjU0Rjg4MUM1MEM0RjYw
MDMzODQ4OCAvKiBGZXRjaFJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRmV0Y2hSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRjU0Rjg5
MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaFJlcXVlc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEZldGNoUmVxdWVzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRjU4
NEM2MTA0NjUyQ0IwMDlDQUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVzc2FnZVBvcnRDdXN0b20uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQTMwM0MxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlh
Q29udHJvbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVy
TWVkaWFDb250cm9scy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkEzMDNE
MTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlck1lZGlhQ29udHJvbHMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTEwMzM4LDYgKzEwMzUxLDggQEAKIAkJN0U0NzRFMUIxMjQ5NERDOTAw
MjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U0NzRFMUMxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURh
dGFiYXNlVHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTUUxpdGVE
YXRhYmFzZVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U0NzRFMUQx
MjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNG
ZXRjaFJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNG
ZXRjaFJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RTRDOTZEOTFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNGZXRjaFJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0U0REUxMEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERpc2tDYWNoZU1vbml0b3JD
b2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U1RDdBNzMxNjFEM0Y4RjAw
ODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gT0VTRWxlbWVudEluZGV4VWludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhV
aW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9FU0VsZW1lbnRJbmRleFVp
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMzc2LDYgKzEwMzkxLDggQEAK
IAkJN0VFNjg0NUQxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3RUU2ODQ1RTEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VS
ZXNwb25zZUNGTmV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
c291cmNlUmVzcG9uc2VDRk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdF
RTY4NDc0MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRlckNGTmV0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZGVyQ0ZOZXQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RjRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyog
SlNGZXRjaEJvZHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNG
ZXRjaEJvZHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RjRDOTZEOTFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNGZXRjaEJvZHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODEwMkM1
ODcxMzI1QkIxMTAwRERFNjdBIC8qIFN0cmluZ0NhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ0NhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODFBQzU5OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0
ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAg
LyogRGF0YVRyYW5zZmVySXRlbUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGF0YVRyYW5zZmVySXRlbUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE2NTkwLDEwICsxNjYwNywxNyBAQAogCQk0MUY1NEY3QzFDNTBDNEY2MDAzMzg0ODggLyogZmV0
Y2ggKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQxRjU0
RjdEMUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEJvZHkuY3BwICovLAorCQkJCTQxRjU0RjdFMUM1
MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEJvZHkuaCAqLywKKwkJCQk0MUY1NEY3RjFDNTBDNEY2MDAz
Mzg0ODggLyogRmV0Y2hCb2R5LmlkbCAqLywKIAkJCQk0MUY1NEY4MjFDNTBDNEY2MDAzMzg0ODgg
LyogRmV0Y2hIZWFkZXJzLmNwcCAqLywKIAkJCQk0MUY1NEY4MzFDNTBDNEY2MDAzMzg0ODggLyog
RmV0Y2hIZWFkZXJzLmggKi8sCiAJCQkJNDFGNTRGODQxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNo
SGVhZGVycy5pZGwgKi8sCiAJCQkJNDFGNTRGODUxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoSGVh
ZGVycy5qcyAqLywKKwkJCQk0MUY1NEY4NjFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hPcHRpb25z
LmggKi8sCisJCQkJNDFGNTRGODcxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoUmVxdWVzdC5jcHAg
Ki8sCisJCQkJNDFGNTRGODgxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoUmVxdWVzdC5oICovLAor
CQkJCTQxRjU0Rjg5MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaFJlcXVlc3QuaWRsICovLAogCQkJ
KTsKIAkJCXBhdGggPSBmZXRjaDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNjYw
MSw2ICsxNjYyNSwxMCBAQAogCQk0MkEwMjNGQTFBMzlGMTNBMDBGNzIyQ0YgLyogRmV0Y2hBUEkg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTdGNEM5NkQ4
MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5jcHAgKi8sCisJCQkJN0Y0Qzk2RDkxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmggKi8sCisJCQkJN0U0Qzk2RDgxQUQ0NDgzNTAw
MzY1QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0LmNwcCAqLywKKwkJCQk3RTRDOTZEOTFBRDQ0ODM1MDAz
NjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuaCAqLywKIAkJCQk3RDRDOTZEODFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNGZXRjaEhlYWRlcnMuY3BwICovLAogCQkJCTdENEM5NkQ5MUFENDQ4MzUwMDM2NUE1
MCAvKiBKU0ZldGNoSGVhZGVycy5oICovLAogCQkJKTsKQEAgLTI2NDI3LDYgKzI2NDU1LDggQEAK
IAkJCQkwNzc2NjRGRDE4M0U2QjVDMDAxMzNCOTIgLyogSlNRdWlja1RpbWVQbHVnaW5SZXBsYWNl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjY1OEZGQTIxNTIyRUYzQTAwREQ1NTk1IC8qIEpT
UmFkaW9Ob2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVERjMyMDIwOUQxQ0M2MDAwMEJF
MzI1IC8qIEpTUmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTdGNEM5NkREMUFENDQ4MzUwMDM2
NUE1MCAvKiBKU0ZldGNoQm9keS5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0U0Qzk2REQxQUQ0NDgz
NTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3RDRDOTZE
RDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEhlYWRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdDNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjk1OTksNiArMjk2MjksNyBAQAogCQkJCUM1
ODVBNjYyMTFENEZBQzUwMDRDM0U0QiAvKiBJREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxNkQ3RDcxMUJCNUYwQkQwMEFGN0M3NyAvKiBJREJDb25uZWN0aW9uVG9D
bGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE5OEY3QzAxQkM0ODU2NzAwRTJDQzVGIC8q
IElEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MUY1NEY4QjFD
NTBDNTAzMDAzMzg0ODggLyogRmV0Y2hCb2R5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxODVG
QzdBMUJCNEM0RTgwMDEyODk4RiAvKiBJREJDdXJzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTFGNDFBNjkxQkE3M0I1QjAwMkUwNTNCIC8qIElEQkN1cnNvckJhY2tlbmQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTFGNDFBNkIxQkE3M0I1QjAwMkUwNTNCIC8qIElEQkN1cnNvckJhY2tlbmRP
cGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzAwMDgsNiArMzAwMzksNyBAQAogCQkJ
CUE4MEU3RTlFMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODNFMzU5QTMxQkIxMDMxRDAwMkNFQjk4IC8qIEpTSFRNTFRpbWVF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU3QjEzMEExOUQ2MDYwMDdGQjhDNSAv
KiBKU0hUTUxUaXRsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDFGNTRGOEUxQzUw
QzUwQzAwMzM4NDg4IC8qIEZldGNoUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzA3
NTZEMzE0MjM5QTRFMDA0MTQxNjEgLyogSlNIVE1MVHJhY2tFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBODVCMjEwMEExQjI1ODcwMEQ4Qzg3QyAvKiBKU0hUTUxVTGlzdEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU0QUJDRDQxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRN
TFVua25vd25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzAxMzAsNyArMzAxNjIsOSBA
QAogCQkJCTA3NzY2NEZDMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNrVGltZVBsdWdpblJlcGxh
Y2VtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI2NThGRkExMTUyMkVGM0EwMERENTU5NSAv
KiBKU1JhZGlvTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMyMDEwOUQxQ0M2
MDAwMEJFMzI1IC8qIEpTUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0Y0Qzk2REMxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdENEM5
NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoSGVhZGVycy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk3RTRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0M0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJl
YW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkM0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8qIEpT
UmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjlERjg1
MUJCNUI4MDcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0RpY3Rpb25hcnkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RpY3Rpb25hcnkuaApp
bmRleCAyYmFjNjBkOTk1ZTc3OTRjZjVjNmE0NmMyYjc3NmEwOWMxNTEwODUyLi4yMWIxMDZiZmMz
M2NmMmEwMmJlNjYxNGJjMGI4YjUxNDdlYzc0ZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9EaWN0aW9uYXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvRGljdGlvbmFyeS5oCkBAIC02Myw2ICs2Myw4IEBAIHB1YmxpYzoKICAgICBib29sIGdldE93
blByb3BlcnR5TmFtZXMoVmVjdG9yPFN0cmluZz4mKSBjb25zdDsKICAgICBib29sIGdldFdpdGhV
bmRlZmluZWRPck51bGxDaGVjayhjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIFN0cmluZyYgdmFs
dWUpIGNvbnN0OwogCisgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWNTdGF0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZGljdGlvbmFyeS5leGVjU3RhdGUoKTsgfQorCiBwcml2YXRlOgogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgogICAgIEpTQzo6SlNPYmplY3QqIGFzSlNPYmplY3QoVCopIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKaW5kZXggYzRhMmYx
NjcxMmM0YjRhNmM0MmNhZDI1YzA3NmVmYWVhNGNiNmEzNS4uMzM0NmNjZmU2OTkzZmI5NDk1NzVk
NzMwODU1ZWQ0ZDc4Zjk2OGRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rp
Y3Rpb25hcnkuY3BwCkBAIC00Nyw2ICs0NywxMCBAQAogI2luY2x1ZGUgIkpTTWVkaWFLZXlFcnJv
ci5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRkVUQ0hfQVBJKQorI2luY2x1ZGUgIkpTRmV0Y2hI
ZWFkZXJzLmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAjaW5jbHVkZSAi
SlNNZWRpYVN0cmVhbS5oIgogI2luY2x1ZGUgIkpTTWVkaWFTdHJlYW1UcmFjay5oIgpAQCAtMjI3
LDYgKzIzMSwxMyBAQCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8TWVkaQogfQogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoRkVUQ0hfQVBJKQordm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPEZldGNoSGVhZGVycz4mIHJlc3Vs
dCkKK3sKKyAgICByZXN1bHQgPSBKU0ZldGNoSGVhZGVyczo6dG9XcmFwcGVkKHZhbHVlKTsKK30K
KyNlbmRpZgorCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpj
b252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxN
ZWRpYVN0cmVhbT4mIHJlc3VsdCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRGljdGlvbmFyeS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0
aW9uYXJ5LmgKaW5kZXggZjU4ZmJmNzBiNmI1NTg4MmM2YjJhZWYyOTQwN2VjNjliZGM5NmMzNC4u
NTRiZjc5OTBjMGQxYTdlZjU0N2IxMzBmZWM1YWQxMzZkM2U1YjczOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgRE9N
RXJyb3I7CiBjbGFzcyBET01XaW5kb3c7CiBjbGFzcyBFdmVudFRhcmdldDsKIGNsYXNzIEdhbWVw
YWQ7CitjbGFzcyBGZXRjaEhlYWRlcnM7CiBjbGFzcyBNZWRpYUtleUVycm9yOwogY2xhc3MgTWVk
aWFTdHJlYW07CiBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrOwpAQCAtMTI2LDYgKzEyNyw5IEBAIHBy
aXZhdGU6CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBzdGF0aWMgdm9pZCBjb252
ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxNZWRpYUtleUVy
cm9yPiYgcmVzdWx0KTsKICNlbmRpZgorI2lmIEVOQUJMRShGRVRDSF9BUEkpCisgICAgc3RhdGlj
IHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8
RmV0Y2hIZWFkZXJzPiYgcmVzdWx0KTsKKyNlbmRpZgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgc3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1Zh
bHVlLCBSZWZQdHI8TWVkaWFTdHJlYW0+JiByZXN1bHQpOwogICAgIHN0YXRpYyB2b2lkIGNvbnZl
cnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPE1lZGlhU3RyZWFt
VHJhY2s+JiByZXN1bHQpOwpAQCAtMTYzLDYgKzE2NywxMiBAQCBib29sIEpTRGljdGlvbmFyeTo6
Z2V0KGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgUmVzdWx0JiBmaW5hbFJlc3VsdCkgY29uc3QK
ICAgICByZXR1cm4gdHJ5R2V0UHJvcGVydHlBbmRSZXN1bHQocHJvcGVydHlOYW1lLCAmZmluYWxS
ZXN1bHQsIElkZW50aXR5U2V0dGVyPFJlc3VsdD46OmlkZW50aXR5U2V0dGVyKSA9PSBQcm9wZXJ0
eUZvdW5kOwogfQogCit0ZW1wbGF0ZSA8PgoraW5saW5lIGJvb2wgSlNEaWN0aW9uYXJ5OjpnZXQo
Y29uc3QgY2hhciogcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUmIGZpbmFsUmVzdWx0KSBjb25z
dAoreworICAgIHJldHVybiB0cnlHZXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIGZpbmFsUmVzdWx0
KSA9PSBQcm9wZXJ0eUZvdW5kOworfQorCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
UmVzdWx0PgogSlNEaWN0aW9uYXJ5OjpHZXRQcm9wZXJ0eVJlc3VsdCBKU0RpY3Rpb25hcnk6OnRy
eUdldFByb3BlcnR5QW5kUmVzdWx0KGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgVCogY29udGV4
dCwgdm9pZCAoKnNldHRlcikoVCogY29udGV4dCwgY29uc3QgUmVzdWx0JikpIGNvbnN0CiB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggYTljNDE4ZDIxNDcxMGNmYzAzNjQxZGQ5OGVkZWMyNzM3Yjg3NjUxZC4uNTZhNGQ0ZGRm
ZjEzMWIwMzIyODNjNTE3MjVjOTM5MjA1MTA2YzZmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisy
MDE2LTAxLTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisK
KyAgICAgICAgW0ZldGNoIEFQSV0gSW1wbGVtZW50IEZldGNoIEFQSSBSZXF1ZXN0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM0MzcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL2RvbS9nbG9iYWwt
Y29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICoganMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0
dHJpYnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pz
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
OgorCiAyMDE2LTAxLTI1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CiAKICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zLWFw
aS9yZWFkYWJsZS1zdHJlYW1zL2dhcmJhZ2UtY29sbGVjdGlvbi5odG1sIGFzc2VydHMgZnJlcXVl
bnRseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNzFiOTk1OWJlMGEwZWNhZjli
NTRmZjczMTExODMyY2E0ZjZjYjUxNS4uYTczYTllMDY4ZWI3Zjk4Yjc1MGVlODM4MWJjNzY1NmMw
ZDRmNzI5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAK
KzIwMTYtMDEtMjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4K
KworICAgICAgICBbRmV0Y2ggQVBJXSBJbXBsZW1lbnQgRmV0Y2ggQVBJIFJlcXVlc3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzQzNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtYmFzaWMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jbG9uZS5zdWItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1jbG9uZS5zdWIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWNvbnN1bWUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtZGlzdHVyYmVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3Iu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3QtaGVhZGVycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtaWRsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaWRsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAxLnN1Yi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAxLnN1Yi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAzLnN1Yi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWluaXQtMDAzLnN1Yi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1cmUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1zdHJ1Y3R1cmUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvYXV0aGVudGljYXRpb24ucHk6IEFkZGVkLgorICAg
ICAgICAobWFpbik6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNv
dXJjZXMvY2xlYW4tc3Rhc2gucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5
OiBBZGRlZC4KKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzb3VyY2VzL21ldGhvZC5weTogQWRkZWQuCisgICAgICAgIChtYWluKToKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9wcmVmbGlnaHQu
cHk6IEFkZGVkLgorICAgICAgICAobWFpbik6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNvdXJjZXMvcmVkaXJlY3QucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvdG9wLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJj
ZXMvdHJpY2tsZS5weTogQWRkZWQuCisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy91dGlscy5qczogQWRkZWQuCisgICAgICAg
IChjYXRjaCk6CisgICAgICAgIChkaXJuYW1lKToKKyAgICAgICAgKGNoZWNrUmVxdWVzdCk6Cisg
ICAgICAgIChyZWFkVGV4dFN0cmVhbSk6CisKIDIwMTYtMDEtMjUgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3N0cmVhbXMtYXBpL3JlYWRhYmxlLXN0cmVhbXMvZ2FyYmFnZS1jb2xsZWN0
aW9uLmh0bWwgYXNzZXJ0cyBmcmVxdWVudGx5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtYmFz
aWMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5odG1sCmluZGV4IGY2ZDVlZWQ5OTgwNzlkYzhl
YjU4ODBmYmZhYzg2OTM3OGRlNmJkYjguLmMzOTU0NWQ1NDMxNDYxYWRhNDY5MmNlZGM4OWQ3ZDI4
NmQ0NjVmZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMv
aGVhZGVycy1iYXNpYy5odG1sCkBAIC00OCw2ICs0OCw3IEBACiAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhoZWFkZXJzLmdldChuYW1lKSwgU3RyaW5nKGhlYWRlckRpY3RbbmFtZV0pLAogICAgICAg
ICAgICAgIm5hbWU6ICIgKyBuYW1lICsgIiBoYXMgdmFsdWU6ICIgKyBoZWFkZXJEaWN0W25hbWVd
KTsKICAgICAgICAgfQorICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KCJsZW5ndGgi
KSwgbnVsbCwgImluaXQgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSBzZXF1ZW5jZSwgbm90IGFzIGEg
ZGljdGlvbmFyeSIpOwogICAgICAgfSwgIkNyZWF0ZSBoZWFkZXJzIHdpdGggc2VxdWVuY2UiKTsK
IAogICAgICAgdGVzdChmdW5jdGlvbigpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jbG9u
ZS5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNsb25lLnN1Yi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTgxZDdiYjhjOWVkNTEzMzUzZTY1NWYyMTlmNTUyZjk0MmI1ZDM4OAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jbG9uZS5zdWItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitGQUlMIENoZWNrIGNsb25pbmcgYSByZXF1ZXN0IEV4cGVjdGVkVmFsdWVz
RGljdFsiaGVhZGVycyJdLmtleXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnRXhwZWN0ZWRWYWx1
ZXNEaWN0WyJoZWFkZXJzIl0ua2V5cygpJywgJ0V4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJd
LmtleXMnIGlzIHVuZGVmaW5lZCkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNsb25lLnN1
Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNsb25lLnN1Yi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNzg0NTY0
ZDcwOTIxMWViYzVlMWRjMTg2OTI4MDBjYTkwN2EyMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtY2xvbmUuc3ViLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRs
ZT5SZXF1ZXN0IGNsb25lPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRw
czovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+CisgICAgPG1ldGEgbmFtZT0iYXV0
aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYu
Y2Fub24uZnIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91dGlscy5qcyI+PC9z
Y3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgIHZhciBoZWFk
ZXJzID0gbmV3IEhlYWRlcnMoIHsibmFtZSI6InZhbHVlIn0gKTsKKyAgICAgIHZhciBlbXB0eUhl
YWRlcnMgPSBuZXcgSGVhZGVycygpOworCisgICAgICB2YXIgaW5pdFZhbHVlc0RpY3QgPSB7Im1l
dGhvZCIgOiAiUE9TVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVycmVyIiA6
ICJodHRwOi8ve3tob3N0fX06e3twb3J0c1todHRwXVswXX19LyIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInJlZmVycmVyUG9saWN5IiA6ICJvcmlnaW4tb25seSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm1vZGUiIDogInNhbWUtb3JpZ2luIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiY3JlZGVudGlhbHMiIDogImluY2x1ZGUiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJjYWNoZSIgOiAibm8tY2FjaGUiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJyZWRpcmVjdCIgOiAiZXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJpbnRlZ3JpdHkiIDogIlJlcXVlc3QncyBJbnRlZ3JpdHkiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJoZWFkZXJzIiA6IGhlYWRlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImJvZHkiIDogIlJlcXVlc3QncyBib2R5IgorICAgICAgfTsKKworICAgICAgdmFyIGV4cGVj
dGVkSW5pdGlhbGl6ZWQgPSB7Im1ldGhvZCIgOiAiUE9TVCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAicmVmZXJyZXIiIDogImh0dHA6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBd
WzBdfX0vIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZlcnJlclBvbGlj
eSIgOiAib3JpZ2luLW9ubHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1v
ZGUiIDogInNhbWUtb3JpZ2luIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJj
cmVkZW50aWFscyIgOiAiaW5jbHVkZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiY2FjaGUiIDogIm5vLWNhY2hlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJyZWRpcmVjdCIgOiAiZXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImludGVncml0eSIgOiAiUmVxdWVzdCdzIEludGVncml0eSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiaGVhZGVycyIgOiBoZWFkZXJzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImJvZHkiIDogIlJlcXVlc3QncyBib2R5IgorICAgICAgfTsKKworICAgICAg
dGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIFJlcXVlc3RJbml0aWFsaXplZCA9IG5ldyBS
ZXF1ZXN0KCIiLCBpbml0VmFsdWVzRGljdCk7CisgICAgICAgIHZhciByZXF1ZXN0VG9DaGVjayA9
IFJlcXVlc3RJbml0aWFsaXplZC5jbG9uZSgpOworICAgICAgICBjaGVja1JlcXVlc3QocmVxdWVz
dFRvQ2hlY2ssIGV4cGVjdGVkSW5pdGlhbGl6ZWQpOworICAgICAgfSwgIkNoZWNrIGNsb25pbmcg
YSByZXF1ZXN0Iik7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25z
dW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MmQ3MzQzNDgwYjhkMDNkMWJlMGIxYTQ5NmE3
ZjJmZTk5ZGNiOTc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIENvbnN1bWUgcmVxdWVzdCdzIGJvZHkg
YXMgdGV4dCAKK0ZBSUwgQ29uc3VtZSByZXF1ZXN0J3MgYm9keSBhcyBibG9iIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQKK1BBU1MgQ29uc3Vt
ZSByZXF1ZXN0J3MgYm9keSBhcyBhcnJheUJ1ZmZlciAKK1BBU1MgQ29uc3VtZSByZXF1ZXN0J3Mg
Ym9keSBhcyBqc29uIAorRkFJTCBDb25zdW1lIHJlcXVlc3QncyBib2R5IGFzIGZvcm1EYXRhIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25z
dW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBmNzU2ZGM0MDJkODJlZjBlOWNiOTI4YTRlNDgzYTI4YzEz
NDU3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLmh0bWwKQEAgLTAs
MCArMSw4OSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5SZXF1ZXN0IGNvbnN1bWU8L3RpdGxlPgorICAg
IDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNy
ZXF1ZXN0Ij4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMu
d2hhdHdnLm9yZy8jYm9keS1taXhpbiI+CisgICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0i
Q2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgor
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBjaGVja0Jv
ZHlUZXh0KHJlcXVlc3QsIGV4cGVjdGVkQm9keSkgeworICAgICAgcmV0dXJuIHJlcXVlc3QudGV4
dCgpLnRoZW4oIGZ1bmN0aW9uKGJvZHlBc1RleHQpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhi
b2R5QXNUZXh0LCBleHBlY3RlZEJvZHksICJSZXRyaWV2ZSBhbmQgdmVyaWZ5IHJlcXVlc3QncyBi
b2R5Iik7CisgICAgICAgIGFzc2VydF90cnVlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5IGFzIHRl
eHQ6IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7CisgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBjaGVja0JvZHlCbG9iKHJlcXVlc3QsIGV4cGVjdGVkQm9keSkgeworICAgICAgcmV0dXJu
IHJlcXVlc3QuYmxvYigpLnRoZW4oZnVuY3Rpb24oYm9keUFzQmxvYikgeworICAgICAgICB2YXIg
cHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAg
ICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAgICAgICAgICByZWFkZXIub25s
b2FkID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgICAgICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQp
CisgICAgICAgICAgfTsKKyAgICAgICAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgcmVqZWN0KCJCbG9iJ3MgcmVhZGVyIGZhaWxlZCIpOworICAgICAgICAgIH07
CisgICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoYm9keUFzQmxvYik7CisgICAgICAgIH0pOwor
ICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKGZ1bmN0aW9uKGJvZHkpIHsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGJvZHksIGV4cGVjdGVkQm9keSwgIlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVx
dWVzdCdzIGJvZHkiKTsKKyAgICAgICAgICBhc3NlcnRfdHJ1ZShyZXF1ZXN0LmJvZHlVc2VkLCAi
Ym9keSBhcyBibG9iOiBib2R5VXNlZCB0dXJuZWQgdHJ1ZSIpOworICAgICAgICB9KTsKKyAgICAg
IH0pOworICAgIH0KKworICAgIDwhLS0gVGFrZW4gZnJvbSBodHRwczovL2RldmVsb3BlcnMuZ29v
Z2xlLmNvbSAtLT4KKyAgICBmdW5jdGlvbiBzdHIyYWIoc3RyKSB7CisgICAgICB2YXIgYnVmID0g
bmV3IEFycmF5QnVmZmVyKHN0ci5sZW5ndGgqMik7IC8vIDIgYnl0ZXMgZm9yIGVhY2ggY2hhcgor
ICAgICAgdmFyIGJ1ZlZpZXcgPSBuZXcgVWludDE2QXJyYXkoYnVmKTsKKyAgICAgIGZvciAodmFy
IGk9MCwgc3RyTGVuPXN0ci5sZW5ndGg7IGkgPCBzdHJMZW47IGkrKykgeworICAgICAgICBidWZW
aWV3W2ldID0gc3RyLmNoYXJDb2RlQXQoaSk7CisgICAgICB9CisgICAgICByZXR1cm4gYnVmOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQm9keUFycmF5QnVmZmVyKHJlcXVlc3QsIGV4cGVj
dGVkQm9keSkgeworICAgICAgcmV0dXJuIHJlcXVlc3QuYXJyYXlCdWZmZXIoKS50aGVuKCBmdW5j
dGlvbihib2R5QXNBcnJheUJ1ZmZlcikgeworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGJv
ZHlBc0FycmF5QnVmZmVyLCBzdHIyYWIoZXhwZWN0ZWRCb2R5KSwgIlJldHJpZXZlIGFuZCB2ZXJp
ZnkgcmVxdWVzdCdzIGJvZHkiKTsKKyAgICAgICAgYXNzZXJ0X3RydWUocmVxdWVzdC5ib2R5VXNl
ZCwgImJvZHkgYXMgYXJyYXlCdWZmZXI6IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7CisgICAgICB9
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0JvZHlKU09OKHJlcXVlc3QsIGV4cGVjdGVk
Qm9keSkgeworICAgICAgcmV0dXJuIHJlcXVlc3QuanNvbigpLnRoZW4oZnVuY3Rpb24oYm9keUFz
SlNPTikgeworICAgICAgICB2YXIgc3RyQm9keSA9IEpTT04uc3RyaW5naWZ5KGJvZHlBc0pTT04p
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc3RyQm9keSwgZXhwZWN0ZWRCb2R5LCAiUmV0cmlldmUg
YW5kIHZlcmlmeSByZXF1ZXN0J3MgYm9keSIpOworICAgICAgICBhc3NlcnRfdHJ1ZShyZXF1ZXN0
LmJvZHlVc2VkLCAiYm9keSBhcyBqc29uOiBib2R5VXNlZCB0dXJuZWQgdHJ1ZSIpOworICAgICAg
fSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tCb2R5Rm9ybURhdGEocmVxdWVzdCwgZXhw
ZWN0ZWRCb2R5KSB7CisgICAgICByZXR1cm4gcmVxdWVzdC5mb3JtRGF0YSgpLnRoZW4oZnVuY3Rp
b24oYm9keUFzRm9ybURhdGEpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUoYm9keUFzRm9ybURhdGEg
aW5zdGFuY2VvZiBGb3JtRGF0YSwgIlNob3VsZCByZWNlaXZlIGEgRm9ybURhdGEiKTsKKyAgICAg
ICAgYXNzZXJ0X3RydWUocmVxdWVzdC5ib2R5VXNlZCwgImJvZHkgYXMgZm9ybURhdGE6IGJvZHlV
c2VkIHR1cm5lZCB0cnVlIik7CisgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNr
UmVxdWVzdEJvZHkoYm9keSwgYm9keVR5cGUsIGNoZWNrRnVuY3Rpb24pIHsKKyAgICAgIHByb21p
c2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVl
c3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAiYm9keSI6IGJvZHkgfSk7CisgICAgICAgIGFzc2Vy
dF9mYWxzZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9keVVzZWQgaXMgZmFsc2UgYXQgaW5pdCIpOwor
ICAgICAgICByZXR1cm4gY2hlY2tGdW5jdGlvbihyZXF1ZXN0LCBib2R5KTsKKyAgICAgIH0sICJD
b25zdW1lIHJlcXVlc3QncyBib2R5IGFzICIgKyBib2R5VHlwZSk7CisgICAgfQorCisgICAgdmFy
IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7CisgICAgZm9ybURhdGEuYXBwZW5kKCJuYW1lIiwg
InZhbHVlIikKKyAgICBjaGVja1JlcXVlc3RCb2R5KCJUaGlzIGlzIHJlcXVlc3QncyBib2R5Iiwg
InRleHQiLCBjaGVja0JvZHlUZXh0KTsKKyAgICBjaGVja1JlcXVlc3RCb2R5KCJUaGlzIGlzIHJl
cXVlc3QncyBib2R5IiwgImJsb2IiLCBjaGVja0JvZHlCbG9iKTsKKyAgICBjaGVja1JlcXVlc3RC
b2R5KCJUaGlzIGlzIHJlcXVlc3QncyBib2R5IiwgImFycmF5QnVmZmVyIiwgY2hlY2tCb2R5QXJy
YXlCdWZmZXIpOworICAgIGNoZWNrUmVxdWVzdEJvZHkoSlNPTi5zdHJpbmdpZnkoIlRoaXMgaXMg
cmVxdWVzdCdzIGJvZHkiKSwgImpzb24iLCBjaGVja0JvZHlKU09OKTsKKyAgICBjaGVja1JlcXVl
c3RCb2R5KGZvcm1EYXRhLCAiZm9ybURhdGEiLCBjaGVja0JvZHlGb3JtRGF0YSk7CisgICAgPC9z
Y3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0
dXJiZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2E0MGRkNmIxZDMxMTk3YWFlNWIyMGRkOTFlNWIzNjNiNGIwYmE2YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNyBAQAorCitQQVNTIFJlcXVlc3Qgd2l0aG91dCBib2R5IGNhbm5vdCBiZSBkaXN0dXJi
ZWQgCitQQVNTIENoZWNrIGNsb25pbmcgYSBkaXN0dXJiZWQgcmVxdWVzdCAKK1BBU1MgQ2hlY2sg
Y3JlYXRpbmcgYSBuZXcgcmVxdWVzdCBmcm9tIGEgZGlzdHVyYmVkIHJlcXVlc3QgCitQQVNTIElu
cHV0IHJlcXVlc3QgdXNlZCBmb3IgY3JlYXRpbmcgbmV3IHJlcXVlc3QgYmVjYW1lIGRpc3R1cmJl
ZCAKK1BBU1MgQ2hlY2sgY29uc3VtaW5nIGEgZGlzdHVyYmVkIHJlcXVlc3QgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NThkZWY0MTc2OGI3ZmNkY2MzNjQyZGZhZGY3M2Y0NDE0YTQ1Yjlj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC5odG1sCkBAIC0wLDAg
KzEsNTUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVxdWVzdCBkaXN0dXJiZWQ8L3RpdGxlPgorICAg
IDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNy
ZXF1ZXN0Ij4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMu
d2hhdHdnLm9yZy8jYm9keS1taXhpbiI+CisgICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0i
Q2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgor
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgIHZhciBpbml0VmFsdWVz
RGljdCA9IHsibWV0aG9kIiA6ICJQT1NUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Ym9keSIgOiAiUmVxdWVzdCdzIGJvZHkiCisgICAgICB9OworCisgICAgICB2YXIgbm9Cb2R5Q29u
c3VtZWQgPSBuZXcgUmVxdWVzdCgiIik7CisgICAgICBub0JvZHlDb25zdW1lZC5ibG9iKCk7Cisg
ICAgICB2YXIgYm9keUNvbnN1bWVkID0gbmV3IFJlcXVlc3QoIiIsIGluaXRWYWx1ZXNEaWN0KTsK
KyAgICAgIGJvZHlDb25zdW1lZC5ibG9iKCk7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIGFzc2VydF9mYWxzZShub0JvZHlDb25zdW1lZC5ib2R5VXNlZCAsICJib2R5VXNlZCBp
cyBmYWxzZSB3aGVuIHJlcXVlc3QgaXMgbm90IGRpc3R1cmJlZCIpOworICAgICAgICB0cnkgewor
ICAgICAgICAgIG5vQm9keUNvbnN1bWVkLmNsb25lKCk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJDYW4gdXNlIHJlcXVlc3Qgbm90IGRpc3R1cmJl
ZCBmb3IgY3JlYXRpbmcgb3IgY2xvbmluZyByZXF1ZXN0Iik7CisgICAgICAgIH0KKyAgICAgIH0s
ICJSZXF1ZXN0IHdpdGhvdXQgYm9keSBjYW5ub3QgYmUgZGlzdHVyYmVkIik7CisKKyAgICAgIHRl
c3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90cnVlKGJvZHlDb25zdW1lZC5ib2R5VXNl
ZCAsICJib2R5VXNlZCBpcyB0cnVlIHdoZW4gcmVxdWVzdCBpcyBkaXN0dXJiZWQiKTsKKyAgICAg
ICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBib2R5Q29uc3Vt
ZWQuY2xvbmUoKTsgfSk7CisgICAgICB9LCAiQ2hlY2sgY2xvbmluZyBhIGRpc3R1cmJlZCByZXF1
ZXN0Iik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90cnVlKGJv
ZHlDb25zdW1lZC5ib2R5VXNlZCAsICJib2R5VXNlZCBpcyB0cnVlIHdoZW4gcmVxdWVzdCBpcyBk
aXN0dXJiZWQiKTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0
aW9uKCkgeyBuZXcgUmVxdWVzdChib2R5Q29uc3VtZWQpOyB9KTsKKyAgICAgIH0sICJDaGVjayBj
cmVhdGluZyBhIG5ldyByZXF1ZXN0IGZyb20gYSBkaXN0dXJiZWQgcmVxdWVzdCIpOworCisgICAg
ICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgYm9keVJlcXVlc3QgPSBuZXcgUmVxdWVz
dCgiIiwgaW5pdFZhbHVlc0RpY3QpOworICAgICAgICBhc3NlcnRfZmFsc2UoYm9keVJlcXVlc3Qu
Ym9keVVzZWQgLCAiYm9keVVzZWQgaXMgZmFsc2Ugd2hlbiByZXF1ZXN0IGlzIG5vdCBkaXN0dXJi
ZWQiKTsKKyAgICAgICAgdmFyIHJlcXVlc3RGcm9tUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGJvZHlS
ZXF1ZXN0KTsKKyAgICAgICAgYXNzZXJ0X3RydWUoYm9keVJlcXVlc3QuYm9keVVzZWQgLCAiYm9k
eVVzZWQgaXMgdHJ1ZSB3aGVuIHJlcXVlc3QgaXMgZGlzdHVyYmVkIik7CisgICAgICB9LCAiSW5w
dXQgcmVxdWVzdCB1c2VkIGZvciBjcmVhdGluZyBuZXcgcmVxdWVzdCBiZWNhbWUgZGlzdHVyYmVk
Iik7CisKKyAgICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgICAgIGFzc2Vy
dF90cnVlKGJvZHlDb25zdW1lZC5ib2R5VXNlZCAsICJib2R5VXNlZCBpcyB0cnVlIHdoZW4gcmVx
dWVzdCBpcyBkaXN0dXJiZWQiKTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0ZXN0
LCBuZXcgVHlwZUVycm9yKCksIGJvZHlDb25zdW1lZC5ibG9iKCkpOworICAgICAgfSwgIkNoZWNr
IGNvbnN1bWluZyBhIGRpc3R1cmJlZCByZXF1ZXN0Iik7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5MzIxMzc3Zjg0
NTJiYzkwNzFhZjY4NjQ1ZDRiMjQ0Mzk0Zjc1YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKKworUEFTUyBSZXF1ZXN0
SW5pdCdzIHdpbmRvdyBpcyBub3QgbnVsbCAKK1BBU1MgSW5wdXQgVVJMIGlzIG5vdCB2YWxpZCAK
K1BBU1MgSW5wdXQgVVJMIGhhcyBjcmVkZW50aWFscyAKK1BBU1MgUmVxdWVzdEluaXQncyBtb2Rl
IGlzIG5hdmlnYXRlIAorUEFTUyBSZXF1ZXN0SW5pdCdzIHJlZmVycmVyIGlzIGludmFsaWQgCitQ
QVNTIFJlcXVlc3RJbml0J3MgcmVmZXJyZXIgaGFzIGludmFsaWQgb3JpZ2luIAorUEFTUyBSZXF1
ZXN0SW5pdCdzIG1ldGhvZCBpcyBpbnZhbGlkIAorUEFTUyBSZXF1ZXN0SW5pdCdzIG1ldGhvZCBp
cyBmb3JiaWRkZW4gCitQQVNTIFJlcXVlc3RJbml0J3MgbW9kZSBpcyBuby1jb3JzIGFuZCBtZXRo
b2QgaXMgbm90IHNpbXBsZSAKK1BBU1MgUmVxdWVzdEluaXQncyBtb2RlIGlzIG5vLWNvcnMgYW5k
IGludGVncml0eSBpcyBub3QgZW1wdHkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJv
ci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmY5NDRkYWVkNDcw
MmUxODkzNzY1NzQyNDM1MjUyODRjNjcyM2MwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1lcnJvci5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+
CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVxdWVz
dCBlcnJvcjwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRj
aC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNib2R5LW1peGluIj4KKyAgICA8bWV0YSBu
YW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8v
d3d3LmNyZi5jYW5vbi5mciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0Pgor
ICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVy
cm9yKCkgLCBmdW5jdGlvbigpIHsgbmV3IFJlcXVlc3QoIiIsIHsid2luZG93IiA6ICJ3aGF0ZXZl
ciJ9KTsgfSwKKyAgICAgICAgICAiRXhwZWN0IFR5cGVFcnJvciBleGNlcHRpb24iKTsKKyAgICAg
IH0sIlJlcXVlc3RJbml0J3Mgd2luZG93IGlzIG5vdCBudWxsIik7CisKKyAgICAgIHRlc3QoZnVu
Y3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpICwgZnVuY3Rp
b24oKSB7IG5ldyBSZXF1ZXN0KCJodHRwOi8vOm5vdCBhIHZhbGlkIFVSTCIpOyB9LAorICAgICAg
ICAgICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAgfSwiSW5wdXQgVVJMIGlz
IG5vdCB2YWxpZCIpCisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90
aHJvd3MobmV3IFR5cGVFcnJvcigpICwgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCJodHRwOi8v
dXNlcjpwYXNzQHRlc3QudXJsIik7IH0sCisgICAgICAgICAgIkV4cGVjdCBUeXBlRXJyb3IgZXhj
ZXB0aW9uIik7CisgICAgICB9LCJJbnB1dCBVUkwgaGFzIGNyZWRlbnRpYWxzIik7CisKKyAgICAg
IHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
ICwgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCIiLCB7Im1vZGUiIDogIm5hdmlnYXRlIn0pOyB9
LAorICAgICAgICAgICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAgfSwiUmVx
dWVzdEluaXQncyBtb2RlIGlzIG5hdmlnYXRlIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7
CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpICwgZnVuY3Rpb24oKSB7IG5l
dyBSZXF1ZXN0KCIiLCB7InJlZmVycmVyIiA6ICJodHRwOi8vOm5vdCBhIHZhbGlkIFVSTCJ9KTsg
fSwKKyAgICAgICAgICAiRXhwZWN0IFR5cGVFcnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sIlJl
cXVlc3RJbml0J3MgcmVmZXJyZXIgaXMgaW52YWxpZCIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9u
KCkgeworICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsIGZ1bmN0aW9uKCkg
eyBuZXcgUmVxdWVzdCgiIiwgeyJyZWZlcnJlciIgOiAiaHR0cDovL3Rlc3QudXJsIn0pOyB9LAor
ICAgICAgICAgICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAgfSwiUmVxdWVz
dEluaXQncyByZWZlcnJlciBoYXMgaW52YWxpZCBvcmlnaW4iKQorCisgICAgICB0ZXN0KGZ1bmN0
aW9uKCkgeworICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsIGZ1bmN0aW9u
KCkgeyBuZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiIDogIklOIFZBTElEIn0pOyB9LAorICAgICAg
ICAgICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAgfSwgIlJlcXVlc3RJbml0
J3MgbWV0aG9kIGlzIGludmFsaWQiKTsKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAg
ICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCkgLCBmdW5jdGlvbigpIHsgbmV3IFJlcXVl
c3QoIiIsIHsibWV0aG9kIiA6ICJUUkFDRSJ9KTsgfSwKKyAgICAgICAgICAiRXhwZWN0IFR5cGVF
cnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sICJSZXF1ZXN0SW5pdCdzIG1ldGhvZCBpcyBmb3Ji
aWRkZW4iKTsKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3Rocm93
cyhuZXcgVHlwZUVycm9yKCkgLCBmdW5jdGlvbigpIHsgbmV3IFJlcXVlc3QoIiIsIHsibW9kZSIg
OiAibm8tY29ycyIsICJtZXRob2QiIDogIlBVVCJ9KTsgfSwKKyAgICAgICAgICAiRXhwZWN0IFR5
cGVFcnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sIlJlcXVlc3RJbml0J3MgbW9kZSBpcyBuby1j
b3JzIGFuZCBtZXRob2QgaXMgbm90IHNpbXBsZSIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkg
eworICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsCisgICAgICAgICAgICAg
ICAgICAgICAgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCIiLCB7Im1vZGUiIDogIm5vLWNvcnMi
LCAiaW50ZWdyaXR5IiA6ICJub3QgIGFuIGVtcHR5IHN0cmluZyJ9KTsgfSwKKyAgICAgICAgICAg
ICAgICAgICAgICAiRXhwZWN0IFR5cGVFcnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sIlJlcXVl
c3RJbml0J3MgbW9kZSBpcyBuby1jb3JzIGFuZCBpbnRlZ3JpdHkgaXMgbm90IGVtcHR5Iik7Cisg
ICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVz
dC1oZWFkZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hYmVmMWU0YmY4NzAwNWUxMDdlMDQwOGIyNTUxZTY0ZmZlMDk3YThlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNTIgQEAKKworUEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFkZXIgIkNvbnRlbnQt
VHlwZTogT0siIAorUEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFkZXIgIlBvdGF0bzogT0si
IAorUEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFkZXIgInByb3h5OiBPSyIgCitQQVNTIEFk
ZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRlciAicHJveHlhOiBPSyIgCitQQVNTIEFkZGluZyB2YWxp
ZCByZXF1ZXN0IGhlYWRlciAic2VjOiBPSyIgCitQQVNTIEFkZGluZyB2YWxpZCByZXF1ZXN0IGhl
YWRlciAic2VjYjogT0siIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQWNj
ZXB0LUNoYXJzZXQ6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgImFj
Y2VwdC1jaGFyc2V0OiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJB
Q0NFUFQtRU5DT0RJTkc6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIg
IkFjY2VwdC1FbmNvZGluZzogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRl
ciAiQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1IZWFkZXJzOiBLTyIgCitQQVNTIEFkZGluZyBpbnZh
bGlkIHJlcXVlc3QgaGVhZGVyICJBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LU1ldGhvZDogS08iIAor
UEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQ29ubmVjdGlvbjogS08iIAorUEFT
UyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQ29udGVudC1MZW5ndGg6IEtPIiAKK1BB
U1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkNvb2tpZTogS08iIAorUEFTUyBBZGRp
bmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQ29va2llMjogS08iIAorUEFTUyBBZGRpbmcgaW52
YWxpZCByZXF1ZXN0IGhlYWRlciAiRGF0ZTogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1
ZXN0IGhlYWRlciAiRE5UOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVy
ICJFeHBlY3Q6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkhvc3Q6
IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIktlZXAtQWxpdmU6IEtP
IiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIk9yaWdpbjogS08iIAorUEFT
UyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiUmVmZXJlcjogS08iIAorUEFTUyBBZGRp
bmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiVEU6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQg
cmVxdWVzdCBoZWFkZXIgIlRyYWlsZXI6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVz
dCBoZWFkZXIgIlRyYW5zZmVyLUVuY29kaW5nOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJl
cXVlc3QgaGVhZGVyICJVcGdyYWRlOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3Qg
aGVhZGVyICJWaWE6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlBy
b3h5LTogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAicHJveHktYTog
S08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiU2VjLTogS08iIAorUEFT
UyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAic2VjLWI6IEtPIiAKK1BBU1MgQWRkaW5n
IHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgIkFjY2VwdDogT0siIAorUEFTUyBBZGRpbmcg
dmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiQWNjZXB0LUxhbmd1YWdlOiBPSyIgCitQQVNT
IEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LWxhbmd1YWdlOiBP
SyIgCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LXR5
cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgCitQQVNTIEFkZGluZyB2YWxp
ZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3
LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IiAKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNv
cnMgcmVxdWVzdCBoZWFkZXIgImNvbnRlbnQtdHlwZTogbXVsdGlwYXJ0L2Zvcm0tZGF0YSIgCitQ
QVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LXR5cGU6IG11
bHRpcGFydC9mb3JtLWRhdGE7Y2hhcnNldD1VVEYtOCIgCitQQVNTIEFkZGluZyB2YWxpZCBuby1j
b3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LVRZUEU6IHRleHQvcGxhaW4iIAorUEFTUyBBZGRp
bmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiQ09OVEVOVC10eXBlOiB0ZXh0L3BsYWlu
O2NoYXJzZXQ9VVRGLTgiIAorUEFTUyBBZGRpbmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVh
ZGVyICJDb250ZW50LVR5cGU6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgbm8tY29ycyByZXF1
ZXN0IGhlYWRlciAiUG90YXRvOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIG5vLWNvcnMgcmVx
dWVzdCBoZWFkZXIgInByb3h5OiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIG5vLWNvcnMgcmVx
dWVzdCBoZWFkZXIgInByb3h5YTogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCBuby1jb3JzIHJl
cXVlc3QgaGVhZGVyICJzZWM6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgbm8tY29ycyByZXF1
ZXN0IGhlYWRlciAic2VjYjogS08iIAorUEFTUyBDaGVjayB0aGF0IHJlcXVlc3QgY29uc3RydWN0
b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJhbWV0ZXIgCitQQVNT
IENoZWNrIHRoYXQgbm8tY29ycyByZXF1ZXN0IGNvbnN0cnVjdG9yIGlzIGZpbHRlcmluZyBoZWFk
ZXJzIHByb3ZpZGVkIGFzIGluaXQgcGFyYW1ldGVyIAorUEFTUyBDaGVjayB0aGF0IG5vLWNvcnMg
cmVxdWVzdCBjb25zdHJ1Y3RvciBpcyBmaWx0ZXJpbmcgaGVhZGVycyBwcm92aWRlZCBhcyBwYXJ0
IG9mIHJlcXVlc3QgcGFyYW1ldGVyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaGVhZGVy
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zY2E3YTAyN2Q0
ZTlhZWRkNjQyZGVkYzQ1ZjliNzZiODcxOWE3ZTJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LWhlYWRlcnMuaHRtbApAQCAtMCwwICsxLDEyMSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5S
ZXF1ZXN0IEhlYWRlcnM8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0Ij4KKyAgICA8bWV0YSBuYW1lPSJhdXRo
b3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5j
YW5vbi5mciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgdmFy
IHZhbGlkUmVxdWVzdEhlYWRlcnMgPSBbCisgICAgICAgIFsiQ29udGVudC1UeXBlIiwgIk9LIl0s
CisgICAgICAgIFsiUG90YXRvIiwgIk9LIl0sCisgICAgICAgIFsicHJveHkiLCAiT0siXSwKKyAg
ICAgICAgWyJwcm94eWEiLCAiT0siXSwKKyAgICAgICAgWyJzZWMiLCAiT0siXSwKKyAgICAgICAg
WyJzZWNiIiwgIk9LIl0sCisgICAgICBdOworICAgICAgdmFyIGludmFsaWRSZXF1ZXN0SGVhZGVy
cyA9IFsKKyAgICAgICAgWyJBY2NlcHQtQ2hhcnNldCIsICJLTyJdLAorICAgICAgICBbImFjY2Vw
dC1jaGFyc2V0IiwgIktPIl0sCisgICAgICAgIFsiQUNDRVBULUVOQ09ESU5HIiwgIktPIl0sCisg
ICAgICAgIFsiQWNjZXB0LUVuY29kaW5nIiwgIktPIl0sCisgICAgICAgIFsiQWNjZXNzLUNvbnRy
b2wtUmVxdWVzdC1IZWFkZXJzIiwgIktPIl0sCisgICAgICAgIFsiQWNjZXNzLUNvbnRyb2wtUmVx
dWVzdC1NZXRob2QiLCAiS08iXSwKKyAgICAgICAgWyJDb25uZWN0aW9uIiwgIktPIl0sCisgICAg
ICAgIFsiQ29udGVudC1MZW5ndGgiLCAiS08iXSwKKyAgICAgICAgWyJDb29raWUiLCAiS08iXSwK
KyAgICAgICAgWyJDb29raWUyIiwgIktPIl0sCisgICAgICAgIFsiRGF0ZSIsICJLTyJdLAorICAg
ICAgICBbIkROVCIsICJLTyJdLAorICAgICAgICBbIkV4cGVjdCIsICJLTyJdLAorICAgICAgICBb
Ikhvc3QiLCAiS08iXSwKKyAgICAgICAgWyJLZWVwLUFsaXZlIiwgIktPIl0sCisgICAgICAgIFsi
T3JpZ2luIiwgIktPIl0sCisgICAgICAgIFsiUmVmZXJlciIsICJLTyJdLAorICAgICAgICBbIlRF
IiwgIktPIl0sCisgICAgICAgIFsiVHJhaWxlciIsICJLTyJdLAorICAgICAgICBbIlRyYW5zZmVy
LUVuY29kaW5nIiwgIktPIl0sCisgICAgICAgIFsiVXBncmFkZSIsICJLTyJdLAorICAgICAgICBb
IlZpYSIsICJLTyJdLAorICAgICAgICBbIlByb3h5LSIsICJLTyJdLAorICAgICAgICBbInByb3h5
LWEiLCAiS08iXSwKKyAgICAgICAgWyJTZWMtIiwgIktPIl0sCisgICAgICAgIFsic2VjLWIiLCAi
S08iXSwKKyAgICAgIF07CisKKyAgICAgIHZhciB2YWxpZFJlcXVlc3ROb0NvcnNIZWFkZXJzID0g
WworICAgICAgICBbIkFjY2VwdCIsICJPSyJdLAorICAgICAgICBbIkFjY2VwdC1MYW5ndWFnZSIs
ICJPSyJdLAorICAgICAgICBbImNvbnRlbnQtbGFuZ3VhZ2UiLCAiT0siXSwKKyAgICAgICAgWyJj
b250ZW50LXR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIl0sCisgICAg
ICAgIFsiY29udGVudC10eXBlIiwgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtj
aGFyc2V0PVVURi04Il0sCisgICAgICAgIFsiY29udGVudC10eXBlIiwgIm11bHRpcGFydC9mb3Jt
LWRhdGEiXSwKKyAgICAgICAgWyJjb250ZW50LXR5cGUiLCAibXVsdGlwYXJ0L2Zvcm0tZGF0YTtj
aGFyc2V0PVVURi04Il0sCisgICAgICAgIFsiY29udGVudC1UWVBFIiwgInRleHQvcGxhaW4iXSwK
KyAgICAgICAgWyJDT05URU5ULXR5cGUiLCAidGV4dC9wbGFpbjtjaGFyc2V0PVVURi04Il0sCisg
ICAgICBdOworICAgICAgdmFyIGludmFsaWRSZXF1ZXN0Tm9Db3JzSGVhZGVycyA9IFsKKyAgICAg
ICAgWyJDb250ZW50LVR5cGUiLCAiS08iXSwKKyAgICAgICAgWyJQb3RhdG8iLCAiS08iXSwKKyAg
ICAgICAgWyJwcm94eSIsICJLTyJdLAorICAgICAgICBbInByb3h5YSIsICJLTyJdLAorICAgICAg
ICBbInNlYyIsICJLTyJdLAorICAgICAgICBbInNlY2IiLCAiS08iXSwKKyAgICAgIF07CisKKyAg
ICAgIHZhbGlkUmVxdWVzdEhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihoZWFkZXIpIHsKKyAgICAg
ICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0
KCIiKTsKKyAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMuc2V0KGhlYWRlclswXSwgaGVhZGVyWzFd
KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoaGVhZGVyWzBd
KSwgaGVhZGVyWzFdKTsKKyAgICAgICAgfSwgIkFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRlciBc
IiIgKyBoZWFkZXJbMF0gKyAiOiAiICsgaGVhZGVyWzFdICsgIlwiIik7CisgICAgICB9KTsKKyAg
ICAgIGludmFsaWRSZXF1ZXN0SGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKGhlYWRlcikgeworICAg
ICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVl
c3QoIiIpOworICAgICAgICAgIHJlcXVlc3QuaGVhZGVycy5zZXQoaGVhZGVyWzBdLCBoZWFkZXJb
MV0pOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldChoZWFkZXJb
MF0pLCBudWxsKTsKKyAgICAgICAgfSwgIkFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyIFwi
IiArIGhlYWRlclswXSArICI6ICIgKyBoZWFkZXJbMV0gKyAiXCIiKTsKKyAgICAgIH0pOworCisg
ICAgICB2YWxpZFJlcXVlc3ROb0NvcnNIZWFkZXJzLmZvckVhY2goZnVuY3Rpb24oaGVhZGVyKSB7
CisgICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHJlcXVlc3ROb0NvcnMg
PSBuZXcgUmVxdWVzdCgiIiwgeyJtb2RlIjogIm5vLWNvcnMifSk7CisgICAgICAgICAgcmVxdWVz
dE5vQ29ycy5oZWFkZXJzLnNldChoZWFkZXJbMF0sIGhlYWRlclsxXSk7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhyZXF1ZXN0Tm9Db3JzLmhlYWRlcnMuZ2V0KGhlYWRlclswXSksIGhlYWRlclsx
XSk7CisgICAgICAgIH0sICJBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciBcIiIg
KyBoZWFkZXJbMF0gKyAiOiAiICsgaGVhZGVyWzFdICsgIlwiIik7CisgICAgICB9KTsKKyAgICAg
IGludmFsaWRSZXF1ZXN0Tm9Db3JzSGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKGhlYWRlcikgewor
ICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciByZXF1ZXN0Tm9Db3JzID0g
bmV3IFJlcXVlc3QoIiIsIHsibW9kZSI6ICJuby1jb3JzIn0pOworICAgICAgICAgIHJlcXVlc3RO
b0NvcnMuaGVhZGVycy5zZXQoaGVhZGVyWzBdLCBoZWFkZXJbMV0pOworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMocmVxdWVzdE5vQ29ycy5oZWFkZXJzLmdldChoZWFkZXJbMF0pLCBudWxsKTsKKyAg
ICAgICAgfSwgIkFkZGluZyBpbnZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgXCIiICsgaGVh
ZGVyWzBdICsgIjogIiArIGhlYWRlclsxXSArICJcIiIpOworICAgICAgfSk7CisKKyAgICAgIHRl
c3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoW1siQ29v
a2llMiIsICJwb3RhdG8iXV0pOworICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIi
LCB7ImhlYWRlcnMiOiBoZWFkZXJzfSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5o
ZWFkZXJzLmdldCgiQ29va2llMiIpLCBudWxsKTsKKyAgICAgIH0sICJDaGVjayB0aGF0IHJlcXVl
c3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJh
bWV0ZXIiKTsKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGhlYWRlcnMg
PSBuZXcgSGVhZGVycyhbWyJDb250ZW50LVR5cGUiLCAicG90YXRvIl1dKTsKKyAgICAgICAgdmFy
IHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIjogaGVhZGVycywgIm1vZGUiOiAi
bm8tY29ycyJ9KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCJD
b250ZW50LVR5cGUiKSwgbnVsbCk7CisgICAgICB9LCAiQ2hlY2sgdGhhdCBuby1jb3JzIHJlcXVl
c3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJh
bWV0ZXIiKTsKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGhlYWRlcnMg
PSBuZXcgSGVhZGVycyhbWyJDb250ZW50LVR5cGUiLCAicG90YXRvIl1dKTsKKyAgICAgICAgdmFy
IGluaXRpYWxSZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyI6IGhlYWRlcnN9KTsK
KyAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdChpbml0aWFsUmVxdWVzdCwgeyJtb2Rl
IjogIm5vLWNvcnMifSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdl
dCgiQ29udGVudC1UeXBlIiksIG51bGwpOworICAgICAgfSwgIkNoZWNrIHRoYXQgbm8tY29ycyBy
ZXF1ZXN0IGNvbnN0cnVjdG9yIGlzIGZpbHRlcmluZyBoZWFkZXJzIHByb3ZpZGVkIGFzIHBhcnQg
b2YgcmVxdWVzdCBwYXJhbWV0ZXIiKTsKKworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaWRsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1pZGwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhZWQ5ODIzZDAxZjI4NDMxMTdjNWI5
MzNiYzg2YWJhMzk4MGFkMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaWRsLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDkxIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE1MTog
RGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnbWV0aG9kJyBvbiBhIG5vbi1G
ZXRjaFJlcXVlc3Qgb2JqZWN0LgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExNTE6IERlcHJlY2F0
ZWQgYXR0ZW1wdCB0byBhY2Nlc3MgcHJvcGVydHkgJ3VybCcgb24gYSBub24tRmV0Y2hSZXF1ZXN0
IG9iamVjdC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMTUxOiBEZXByZWNhdGVkIGF0dGVtcHQg
dG8gYWNjZXNzIHByb3BlcnR5ICdoZWFkZXJzJyBvbiBhIG5vbi1GZXRjaFJlcXVlc3Qgb2JqZWN0
LgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExNTE6IERlcHJlY2F0ZWQgYXR0ZW1wdCB0byBhY2Nl
c3MgcHJvcGVydHkgJ3R5cGUnIG9uIGEgbm9uLUZldGNoUmVxdWVzdCBvYmplY3QuCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTE1MTogRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0
eSAnZGVzdGluYXRpb24nIG9uIGEgbm9uLUZldGNoUmVxdWVzdCBvYmplY3QuCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTE1MTogRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAn
cmVmZXJyZXInIG9uIGEgbm9uLUZldGNoUmVxdWVzdCBvYmplY3QuCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTE1MTogRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAncmVmZXJy
ZXJQb2xpY3knIG9uIGEgbm9uLUZldGNoUmVxdWVzdCBvYmplY3QuCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTE1MTogRGVwcmVjYXRlZCBhdHRlbXB0IHRvIGFjY2VzcyBwcm9wZXJ0eSAnbW9kZScg
b24gYSBub24tRmV0Y2hSZXF1ZXN0IG9iamVjdC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMTUx
OiBEZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdjcmVkZW50aWFscycgb24g
YSBub24tRmV0Y2hSZXF1ZXN0IG9iamVjdC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMTUxOiBE
ZXByZWNhdGVkIGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdjYWNoZScgb24gYSBub24tRmV0
Y2hSZXF1ZXN0IG9iamVjdC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMTUxOiBEZXByZWNhdGVk
IGF0dGVtcHQgdG8gYWNjZXNzIHByb3BlcnR5ICdyZWRpcmVjdCcgb24gYSBub24tRmV0Y2hSZXF1
ZXN0IG9iamVjdC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMTUxOiBEZXByZWNhdGVkIGF0dGVt
cHQgdG8gYWNjZXNzIHByb3BlcnR5ICdpbnRlZ3JpdHknIG9uIGEgbm9uLUZldGNoUmVxdWVzdCBv
YmplY3QuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE1MTogRGVwcmVjYXRlZCBhdHRlbXB0IHRv
IGFjY2VzcyBwcm9wZXJ0eSAnYm9keVVzZWQnIG9uIGEgbm9uLUZldGNoUmVxdWVzdCBvYmplY3Qu
CisKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9lcXVhbHM6IGNsYXNzIHN0cmluZyBvZiBSZXF1ZXN0IGV4
cGVjdGVkICJbb2JqZWN0IEZ1bmN0aW9uXSIgYnV0IGdvdCAiW29iamVjdCBSZXF1ZXN0Q29uc3Ry
dWN0b3JdIgorUEFTUyBSZXF1ZXN0IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBSZXF1
ZXN0IGludGVyZmFjZSBvYmplY3QgbmFtZSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK0ZBSUwg
UmVxdWVzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
cHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X3RydWU6IFJl
cXVlc3QucHJvdG90eXBlLmNvbnN0cnVjdG9yIGlzIG5vdCB3cml0YWJsZSBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQorRkFJTCBSZXF1ZXN0IGludGVyZmFjZTogYXR0cmlidXRlIG1ldGhvZCBhc3Nl
cnRfdGhyb3dzOiBnZXR0aW5nIHByb3BlcnR5IG9uIHByb3RvdHlwZSBvYmplY3QgbXVzdCB0aHJv
dyBUeXBlRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9
IiBkaWQgbm90IHRocm93CitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgdXJsIGFz
c2VydF90aHJvd3M6IGdldHRpbmcgcHJvcGVydHkgb24gcHJvdG90eXBlIG9iamVjdCBtdXN0IHRo
cm93IFR5cGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgIFtuYXRpdmUgY29kZV0K
K30iIGRpZCBub3QgdGhyb3cKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBoZWFk
ZXJzIGFzc2VydF90aHJvd3M6IGdldHRpbmcgcHJvcGVydHkgb24gcHJvdG90eXBlIG9iamVjdCBt
dXN0IHRocm93IFR5cGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgIFtuYXRpdmUg
Y29kZV0KK30iIGRpZCBub3QgdGhyb3cKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSB0eXBlIGFzc2VydF90aHJvd3M6IGdldHRpbmcgcHJvcGVydHkgb24gcHJvdG90eXBlIG9iamVj
dCBtdXN0IHRocm93IFR5cGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgIFtuYXRp
dmUgY29kZV0KK30iIGRpZCBub3QgdGhyb3cKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBkZXN0aW5hdGlvbiBhc3NlcnRfdGhyb3dzOiBnZXR0aW5nIHByb3BlcnR5IG9uIHByb3Rv
dHlwZSBvYmplY3QgbXVzdCB0aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsK
KyAgICBbbmF0aXZlIGNvZGVdCit9IiBkaWQgbm90IHRocm93CitGQUlMIFJlcXVlc3QgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgcmVmZXJyZXIgYXNzZXJ0X3Rocm93czogZ2V0dGluZyBwcm9wZXJ0eSBv
biBwcm90b3R5cGUgb2JqZWN0IG11c3QgdGhyb3cgVHlwZUVycm9yIGZ1bmN0aW9uICJmdW5jdGlv
biAoKSB7CisgICAgW25hdGl2ZSBjb2RlXQorfSIgZGlkIG5vdCB0aHJvdworRkFJTCBSZXF1ZXN0
IGludGVyZmFjZTogYXR0cmlidXRlIHJlZmVycmVyUG9saWN5IGFzc2VydF90aHJvd3M6IGdldHRp
bmcgcHJvcGVydHkgb24gcHJvdG90eXBlIG9iamVjdCBtdXN0IHRocm93IFR5cGVFcnJvciBmdW5j
dGlvbiAiZnVuY3Rpb24gKCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iIGRpZCBub3QgdGhyb3cK
K0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtb2RlIGFzc2VydF90aHJvd3M6IGdl
dHRpbmcgcHJvcGVydHkgb24gcHJvdG90eXBlIG9iamVjdCBtdXN0IHRocm93IFR5cGVFcnJvciBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgIFtuYXRpdmUgY29kZV0KK30iIGRpZCBub3QgdGhy
b3cKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjcmVkZW50aWFscyBhc3NlcnRf
dGhyb3dzOiBnZXR0aW5nIHByb3BlcnR5IG9uIHByb3RvdHlwZSBvYmplY3QgbXVzdCB0aHJvdyBU
eXBlRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9IiBk
aWQgbm90IHRocm93CitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY2FjaGUgYXNz
ZXJ0X3Rocm93czogZ2V0dGluZyBwcm9wZXJ0eSBvbiBwcm90b3R5cGUgb2JqZWN0IG11c3QgdGhy
b3cgVHlwZUVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CisgICAgW25hdGl2ZSBjb2RlXQor
fSIgZGlkIG5vdCB0aHJvdworRkFJTCBSZXF1ZXN0IGludGVyZmFjZTogYXR0cmlidXRlIHJlZGly
ZWN0IGFzc2VydF90aHJvd3M6IGdldHRpbmcgcHJvcGVydHkgb24gcHJvdG90eXBlIG9iamVjdCBt
dXN0IHRocm93IFR5cGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgIFtuYXRpdmUg
Y29kZV0KK30iIGRpZCBub3QgdGhyb3cKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBpbnRlZ3JpdHkgYXNzZXJ0X3Rocm93czogZ2V0dGluZyBwcm9wZXJ0eSBvbiBwcm90b3R5cGUg
b2JqZWN0IG11c3QgdGhyb3cgVHlwZUVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CisgICAg
W25hdGl2ZSBjb2RlXQorfSIgZGlkIG5vdCB0aHJvdworUEFTUyBSZXF1ZXN0IGludGVyZmFjZTog
b3BlcmF0aW9uIGNsb25lKCkgCitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYm9k
eVVzZWQgYXNzZXJ0X3Rocm93czogZ2V0dGluZyBwcm9wZXJ0eSBvbiBwcm90b3R5cGUgb2JqZWN0
IG11c3QgdGhyb3cgVHlwZUVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CisgICAgW25hdGl2
ZSBjb2RlXQorfSIgZGlkIG5vdCB0aHJvdworRkFJTCBSZXF1ZXN0IGludGVyZmFjZTogb3BlcmF0
aW9uIGFycmF5QnVmZmVyKCkgYXNzZXJ0X3Rocm93czogY2FsbGluZyBvcGVyYXRpb24gd2l0aCB0
aGlzID0gbnVsbCBkaWRuJ3QgdGhyb3cgVHlwZUVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICAgICAgbWVtYmVySG9sZGVyT2JqZWN0W21lbWJlci5uLi4uIiBkaWQgbm90
IHRocm93CitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBvcGVyYXRpb24gYmxvYigpIGFzc2VydF90
aHJvd3M6IGNhbGxpbmcgb3BlcmF0aW9uIHdpdGggdGhpcyA9IG51bGwgZGlkbid0IHRocm93IFR5
cGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIG1lbWJlckhv
bGRlck9iamVjdFttZW1iZXIubi4uLiIgZGlkIG5vdCB0aHJvdworRkFJTCBSZXF1ZXN0IGludGVy
ZmFjZTogb3BlcmF0aW9uIGZvcm1EYXRhKCkgYXNzZXJ0X3Rocm93czogY2FsbGluZyBvcGVyYXRp
b24gd2l0aCB0aGlzID0gbnVsbCBkaWRuJ3QgdGhyb3cgVHlwZUVycm9yIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgbWVtYmVySG9sZGVyT2JqZWN0W21lbWJlci5uLi4u
IiBkaWQgbm90IHRocm93CitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBvcGVyYXRpb24ganNvbigp
IGFzc2VydF90aHJvd3M6IGNhbGxpbmcgb3BlcmF0aW9uIHdpdGggdGhpcyA9IG51bGwgZGlkbid0
IHRocm93IFR5cGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAg
IG1lbWJlckhvbGRlck9iamVjdFttZW1iZXIubi4uLiIgZGlkIG5vdCB0aHJvdworRkFJTCBSZXF1
ZXN0IGludGVyZmFjZTogb3BlcmF0aW9uIHRleHQoKSBhc3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9w
ZXJhdGlvbiB3aXRoIHRoaXMgPSBudWxsIGRpZG4ndCB0aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3RbbWVtYmVy
Lm4uLi4iIGRpZCBub3QgdGhyb3cKK1BBU1MgUmVxdWVzdCBtdXN0IGJlIHByaW1hcnkgaW50ZXJm
YWNlIG9mIG5ldyBSZXF1ZXN0KCIiKSAKK1BBU1MgU3RyaW5naWZpY2F0aW9uIG9mIG5ldyBSZXF1
ZXN0KCIiKSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm1ldGhvZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDApIAorUEFTUyBS
ZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAi
dXJsIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMSkgCitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBu
ZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJoZWFkZXJzIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZSAoMikgCitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJ0eXBlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMykgCitQ
QVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJkZXN0aW5hdGlvbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDQpIAorUEFTUyBSZXF1ZXN0
IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVmZXJy
ZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICg1KSAKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IG5l
dyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlZmVycmVyUG9saWN5IiB3aXRo
IHRoZSBwcm9wZXIgdHlwZSAoNikgVW5yZWNvZ25pemVkIHR5cGUgUmVmZXJyZXJQb2xpY3kKK1BB
U1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgIm1vZGUiIHdpdGggdGhlIHByb3BlciB0eXBlICg3KSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZh
Y2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNyZWRlbnRpYWxzIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAoOCkgCitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVx
dWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjYWNoZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUgKDkpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAicmVkaXJlY3QiIHdpdGggdGhlIHByb3BlciB0eXBlICgxMCkgCitQQVNT
IFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJpbnRlZ3JpdHkiIHdpdGggdGhlIHByb3BlciB0eXBlICgxMSkgCitQQVNTIFJlcXVlc3QgaW50
ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjbG9uZSIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgKDEyKSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1
ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImJvZHlVc2VkIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoMTMpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAiYXJyYXlCdWZmZXIiIHdpdGggdGhlIHByb3BlciB0eXBlICgxNCkg
CitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJibG9iIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTUpIAorUEFTUyBSZXF1ZXN0IGlu
dGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZm9ybURhdGEi
IHdpdGggdGhlIHByb3BlciB0eXBlICgxNikgCitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcg
UmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJqc29uIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoMTcpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAidGV4dCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDE4KSAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWlkbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWlkbC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBmYWVmZWUzYWE0NDYwYzVjZDA2MmVmOThkZmQ0YTlkYjljY2E3ZjEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaWRsLmh0bWwKQEAgLTAsMCArMSw4NSBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorICAgIDx0aXRsZT5SZXF1ZXN0IGlkbCBpbnRlcmZhY2U8L3RpdGxlPgorICAgIDxtZXRhIG5h
bWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXNwb25zZSI+
CisgICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBo
cmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvV2ViSURMUGFyc2VyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy9pZGxoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8
c2NyaXB0IGlkPSJib2R5LWlkbCIgdHlwZT0idGV4dC9wbGFpbiI+CisgICAgICB0eXBlZGVmIGFu
eSBKU09OOworICAgICAgdHlwZWRlZiAoQmxvYiBvciBCdWZmZXJTb3VyY2Ugb3IgRm9ybURhdGEg
b3IgVVJMU2VhcmNoUGFyYW1zIG9yIFVTVlN0cmluZykgQm9keUluaXQ7CisKKyAgICAgIFtOb0lu
dGVyZmFjZU9iamVjdCwKKyAgICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpXQorICAgICAgaW50
ZXJmYWNlIEJvZHkgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBib2R5VXNl
ZDsKKyAgICAgICAgW05ld09iamVjdF0gUHJvbWlzZTxBcnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXIo
KTsKKyAgICAgICAgW05ld09iamVjdF0gUHJvbWlzZTxCbG9iPiBibG9iKCk7CisgICAgICAgIFtO
ZXdPYmplY3RdIFByb21pc2U8Rm9ybURhdGE+IGZvcm1EYXRhKCk7CisgICAgICAgIFtOZXdPYmpl
Y3RdIFByb21pc2U8SlNPTj4ganNvbigpOworICAgICAgICBbTmV3T2JqZWN0XSBQcm9taXNlPFVT
VlN0cmluZz4gdGV4dCgpOworICAgICAgfTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IGlk
PSJyZXF1ZXN0LWlkbCIgdHlwZT0idGV4dC9wbGFpbiI+CisgICAgICB0eXBlZGVmIChSZXF1ZXN0
IG9yIFVTVlN0cmluZykgUmVxdWVzdEluZm87CisKKyAgICAgIFtDb25zdHJ1Y3RvcihSZXF1ZXN0
SW5mbyBpbnB1dCwgb3B0aW9uYWwgUmVxdWVzdEluaXQgaW5pdCksCisgICAgICBFeHBvc2VkPShX
aW5kb3csV29ya2VyKV0KKyAgICAgIGludGVyZmFjZSBSZXF1ZXN0IHsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEJ5dGVTdHJpbmcgbWV0aG9kOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgVVNWU3RyaW5nIHVybDsKKyAgICAgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBIZWFkZXJzIGhlYWRlcnM7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3RU
eXBlIHR5cGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSZXF1ZXN0RGVzdGluYXRpb24g
ZGVzdGluYXRpb247CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgcmVmZXJy
ZXI7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSZWZlcnJlclBvbGljeSByZWZlcnJlclBv
bGljeTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3RNb2RlIG1vZGU7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSZXF1ZXN0Q2FjaGUgY2FjaGU7CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBSZXF1ZXN0UmVkaXJlY3QgcmVkaXJlY3Q7CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgaW50ZWdyaXR5OworCisgICAgICAgIFtOZXdPYmplY3Rd
IFJlcXVlc3QgY2xvbmUoKTsKKyAgICAgIH07CisgICAgICBSZXF1ZXN0IGltcGxlbWVudHMgQm9k
eTsKKworICAgICAgZGljdGlvbmFyeSBSZXF1ZXN0SW5pdCB7CisgICAgICAgIEJ5dGVTdHJpbmcg
bWV0aG9kOworICAgICAgICBIZWFkZXJzSW5pdCBoZWFkZXJzOworICAgICAgICBCb2R5SW5pdD8g
Ym9keTsKKyAgICAgICAgVVNWU3RyaW5nIHJlZmVycmVyOworICAgICAgICBSZWZlcnJlclBvbGlj
eSByZWZlcnJlclBvbGljeTsKKyAgICAgICAgUmVxdWVzdE1vZGUgbW9kZTsKKyAgICAgICAgUmVx
dWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzOworICAgICAgICBSZXF1ZXN0Q2FjaGUgY2FjaGU7
CisgICAgICAgIFJlcXVlc3RSZWRpcmVjdCByZWRpcmVjdDsKKyAgICAgICAgRE9NU3RyaW5nIGlu
dGVncml0eTsKKyAgICAgICAgYW55IHdpbmRvdzsgLy8gY2FuIG9ubHkgYmUgc2V0IHRvIG51bGwK
KyAgICAgIH07CisKKyAgICAgIGVudW0gUmVxdWVzdFR5cGUgeyAiIiwgImF1ZGlvIiwgImZvbnQi
LCAiaW1hZ2UiLCAic2NyaXB0IiwgInN0eWxlIiwgInRyYWNrIiwgInZpZGVvIiB9OworICAgICAg
ZW51bSBSZXF1ZXN0RGVzdGluYXRpb24geyAiIiwgImRvY3VtZW50IiwgInNoYXJlZHdvcmtlciIs
ICJzdWJyZXNvdXJjZSIsICJ1bmtub3duIiwgIndvcmtlciIgfTsKKyAgICAgIGVudW0gUmVxdWVz
dE1vZGUgeyAibmF2aWdhdGUiLCAic2FtZS1vcmlnaW4iLCAibm8tY29ycyIsICJjb3JzIiB9Owor
ICAgICAgZW51bSBSZXF1ZXN0Q3JlZGVudGlhbHMgeyAib21pdCIsICJzYW1lLW9yaWdpbiIsICJp
bmNsdWRlIiB9OworICAgICAgZW51bSBSZXF1ZXN0Q2FjaGUgeyAiZGVmYXVsdCIsICJuby1zdG9y
ZSIsICJyZWxvYWQiLCAibm8tY2FjaGUiLCAiZm9yY2UtY2FjaGUiLCAib25seS1pZi1jYWNoZWQi
IH07CisgICAgICBlbnVtIFJlcXVlc3RSZWRpcmVjdCB7ICJmb2xsb3ciLCAiZXJyb3IiLCAibWFu
dWFsIiB9OworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICB2YXIgaWRsc0FycmF5
ID0gbmV3IElkbEFycmF5KCk7CisgICAgICB2YXIgaWRsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImJvZHktaWRsIikuaW5uZXJIVE1MCisgICAgICBpZGwgKz0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlcXVlc3QtaWRsIikuaW5uZXJIVE1MCisKKyAgICAgIGlkbHNBcnJheS5hZGRfaWRs
cyhpZGwpOworICAgICAgaWRsc0FycmF5LmFkZF91bnRlc3RlZF9pZGxzKCJpbnRlcmZhY2UgSGVh
ZGVycyB7fTsiKTsKKyAgICAgIGlkbHNBcnJheS5hZGRfb2JqZWN0cyh7IFJlcXVlc3Q6IFsnbmV3
IFJlcXVlc3QoIiIpJ10gfSk7CisgICAgICBpZGxzQXJyYXkudGVzdCgpOworICAgIDwvc2NyaXB0
PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDEu
c3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMS5zdWItZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhlZjY0OWRiODkwZmNlNTM1MjVhYWU1N2FhODBhZGYyNjFmOWVlMTQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDEuc3ViLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDM2IEBACisKK1BBU1MgQ2hlY2sgbWV0aG9kIGluaXQgdmFsdWUgb2YgR0VUIGFu
ZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgbWV0aG9kIGluaXQgdmFsdWUgb2YgSEVB
RCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIG1ldGhvZCBpbml0IHZhbHVlIG9m
IFBPU1QgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBtZXRob2QgaW5pdCB2YWx1
ZSBvZiBQVVQgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBtZXRob2QgaW5pdCB2
YWx1ZSBvZiBERUxFVEUgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBtZXRob2Qg
aW5pdCB2YWx1ZSBvZiBPUFRJT05TIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sg
bWV0aG9kIGluaXQgdmFsdWUgb2YgaGVhZCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENo
ZWNrIHJlZmVycmVyIGluaXQgdmFsdWUgb2YgL3JlbGF0aXZlL3Jlc3NvdXJjZSBhbmQgYXNzb2Np
YXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIHJlZmVycmVyIGluaXQgdmFsdWUgb2YgaHR0cDovL2xv
Y2FsaG9zdDo4ODAwL3JlbGF0aXZlL3Jlc3NvdXJjZT9xdWVyeT10cnVlI2ZyYWdtZW50IGFuZCBh
c3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgcmVmZXJyZXIgaW5pdCB2YWx1ZSBvZiBodHRw
Oi8vbG9jYWxob3N0Ojg4MDAvIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgcmVm
ZXJyZXIgaW5pdCB2YWx1ZSBvZiAgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBy
ZWZlcnJlclBvbGljeSBpbml0IHZhbHVlIG9mICBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNT
IENoZWNrIHJlZmVycmVyUG9saWN5IGluaXQgdmFsdWUgb2Ygbm8tcmVmZXJyZXIgYW5kIGFzc29j
aWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayByZWZlcnJlclBvbGljeSBpbml0IHZhbHVlIG9mIG5v
LXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hl
Y2sgcmVmZXJyZXJQb2xpY3kgaW5pdCB2YWx1ZSBvZiBvcmlnaW4tb25seSBhbmQgYXNzb2NpYXRl
ZCBnZXR0ZXIgCitQQVNTIENoZWNrIHJlZmVycmVyUG9saWN5IGluaXQgdmFsdWUgb2Ygb3JpZ2lu
LXdoZW4tY3Jvc3Mtb3JpZ2luIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgcmVm
ZXJyZXJQb2xpY3kgaW5pdCB2YWx1ZSBvZiB1bnNhZmUtdXJsIGFuZCBhc3NvY2lhdGVkIGdldHRl
ciAKK1BBU1MgQ2hlY2sgbW9kZSBpbml0IHZhbHVlIG9mIHNhbWUtb3JpZ2luIGFuZCBhc3NvY2lh
dGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgbW9kZSBpbml0IHZhbHVlIG9mIG5vLWNvcnMgYW5kIGFz
c29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBtb2RlIGluaXQgdmFsdWUgb2YgY29ycyBhbmQg
YXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIGNyZWRlbnRpYWxzIGluaXQgdmFsdWUgb2Yg
b21pdCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIGNyZWRlbnRpYWxzIGluaXQg
dmFsdWUgb2Ygc2FtZS1vcmlnaW4gYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBj
cmVkZW50aWFscyBpbml0IHZhbHVlIG9mIGluY2x1ZGUgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAor
UEFTUyBDaGVjayBjYWNoZSBpbml0IHZhbHVlIG9mIGRlZmF1bHQgYW5kIGFzc29jaWF0ZWQgZ2V0
dGVyIAorUEFTUyBDaGVjayBjYWNoZSBpbml0IHZhbHVlIG9mIG5vLXN0b3JlIGFuZCBhc3NvY2lh
dGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgY2FjaGUgaW5pdCB2YWx1ZSBvZiByZWxvYWQgYW5kIGFz
c29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBjYWNoZSBpbml0IHZhbHVlIG9mIG5vLWNhY2hl
IGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgY2FjaGUgaW5pdCB2YWx1ZSBvZiBm
b3JjZS1jYWNoZSBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIHJlZGlyZWN0IGlu
aXQgdmFsdWUgb2YgZm9sbG93IGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgcmVk
aXJlY3QgaW5pdCB2YWx1ZSBvZiBlcnJvciBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENo
ZWNrIHJlZGlyZWN0IGluaXQgdmFsdWUgb2YgbWFudWFsIGFuZCBhc3NvY2lhdGVkIGdldHRlciAK
K1BBU1MgQ2hlY2sgaW50ZWdyaXR5IGluaXQgdmFsdWUgb2YgIGFuZCBhc3NvY2lhdGVkIGdldHRl
ciAKK1BBU1MgQ2hlY2sgaW50ZWdyaXR5IGluaXQgdmFsdWUgb2YgQVpFUlRZVUlPUDEyMzQ1Njc4
OTAgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayB3aW5kb3cgaW5pdCB2YWx1ZSBv
ZiBudWxsIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWluaXQtMDAxLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAxLnN1Yi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE4YzM2ZDlmMDc1ZTllNmVkOTg5OWJmNzdhN2FlNzE1NWY5OWFiZGUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDEuc3ViLmh0bWwKQEAgLTAsMCArMSw5MCBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorICAgIDx0aXRsZT5SZXF1ZXN0IGluaXQ6IHNpbXBsZSBjYXNlczwvdGl0bGU+Cisg
ICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcv
I3JlcXVlc3QiPgorICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNo
IEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+Cisg
IDxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgICB2YXIgbWV0aG9kcyA9IHsiZ2l2ZW5WYWx1ZXMi
IDogWyJHRVQiLCAiSEVBRCIsICJQT1NUIiwgIlBVVCIsICJERUxFVEUiLCAiT1BUSU9OUyIsICJo
ZWFkIl0sCisgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWRWYWx1ZXMiIDogWyJHRVQiLCAi
SEVBRCIsICJQT1NUIiwgIlBVVCIsICJERUxFVEUiLCAiT1BUSU9OUyIsICJIRUFEIl0KKyAgICAg
IH07CisgICAgICB2YXIgcmVmZXJyZXJzID0geyJnaXZlblZhbHVlcyIgOiBbIi9yZWxhdGl2ZS9y
ZXNzb3VyY2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRw
Oi8ve3tob3N0fX06e3twb3J0c1todHRwXVswXX19L3JlbGF0aXZlL3Jlc3NvdXJjZT9xdWVyeT10
cnVlI2ZyYWdtZW50IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
aHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fS8iLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWRWYWx1ZXMiIDogWyJo
dHRwOi8ve3tob3N0fX06e3twb3J0c1todHRwXVswXX19L3JlbGF0aXZlL3Jlc3NvdXJjZSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly97e2hvc3R9
fTp7e3BvcnRzW2h0dHBdWzBdfX0vcmVsYXRpdmUvcmVzc291cmNlP3F1ZXJ5PXRydWUjZnJhZ21l
bnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8v
e3tob3N0fX06e3twb3J0c1todHRwXVswXX19LyIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF0KKyAgICAgIH07CisgICAgICB2YXIgcmVmZXJyZXJQb2xpY2llcyA9IHsiZ2l2ZW5W
YWx1ZXMiIDogWyAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJuby1yZWZlcnJlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAibm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yaWdpbi1vbmx5IiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmlnaW4td2hlbi1j
cm9zcy1vcmlnaW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInVuc2FmZS11cmwiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZFZhbHVl
cyIgOiBbIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJuby1yZWZlcnJlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmlnaW4tb25seSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmlnaW4td2hl
bi1jcm9zcy1vcmlnaW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAidW5zYWZlLXVybCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXQorICAgICAgfTsKKyAgICAgIHZhciBtb2RlcyA9IHsiZ2l2ZW5W
YWx1ZXMiIDogWyJzYW1lLW9yaWdpbiIsICJuby1jb3JzIiwgImNvcnMiXSwKKyAgICAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWRWYWx1ZXMiIDogWyJzYW1lLW9yaWdpbiIsICJuby1jb3JzIiwgImNv
cnMiXQorICAgICAgfTsKKyAgICAgIHZhciBjcmVkZW50aWFscyA9IHsiZ2l2ZW5WYWx1ZXMiIDog
WyJvbWl0IiwgInNhbWUtb3JpZ2luIiwgImluY2x1ZGUiXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgImV4cGVjdGVkVmFsdWVzIiA6IFsib21pdCIsICJzYW1lLW9yaWdpbiIsICJpbmNsdWRl
Il0KKyAgICAgIH07CisgICAgICB2YXIgY2FjaGVzID0geyJnaXZlblZhbHVlcyIgOiBbICJkZWZh
dWx0IiwgIm5vLXN0b3JlIiwgInJlbG9hZCIsICJuby1jYWNoZSIsICJmb3JjZS1jYWNoZSJdLAor
ICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWRWYWx1ZXMiIDogWyAiZGVmYXVsdCIsICJuby1z
dG9yZSIsICJyZWxvYWQiLCAibm8tY2FjaGUiLCAiZm9yY2UtY2FjaGUiXQorICAgICAgfTsKKyAg
ICAgIHZhciByZWRpcmVjdHMgPSB7ImdpdmVuVmFsdWVzIiA6IFsiZm9sbG93IiwgImVycm9yIiwg
Im1hbnVhbCJdLAorICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWRWYWx1ZXMiIDogWyJm
b2xsb3ciLCAiZXJyb3IiLCAibWFudWFsIl0KKyAgICAgIH07CisgICAgICB2YXIgaW50ZWdyaXRp
ZXMgPSB7ImdpdmVuVmFsdWVzIiA6IFsiIiwgIkFaRVJUWVVJT1AxMjM0NTY3ODkwIiBdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZFZhbHVlcyIgOiBbIiIsICJBWkVSVFlVSU9Q
MTIzNDU2Nzg5MCJdCisgICAgICB9OworCisgICAgICAvL3RoZXJlIGlzIG5vIGdldHRlciBmb3Ig
d2luZG93LCBpbml0J3Mgd2luZG93IG1pZ2h0IGJlIG51bGwKKyAgICAgIHZhciB3aW5kb3dzID0g
eyJnaXZlblZhbHVlcyIgOiBbIG51bGwgXSwKKyAgICAgICAgICAgICAgICAgICAgICJleHBlY3Rl
ZFZhbHVlcyIgOiBbdW5kZWZpbmVkXQorICAgICAgfTsKKworICAgICAgdmFyIGluaXRWYWx1ZXNE
aWN0ID0geyAibWV0aG9kIiA6IG1ldGhvZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJyZWZlcnJlciIgOiByZWZlcnJlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy
ZWZlcnJlclBvbGljeSIgOiByZWZlcnJlclBvbGljaWVzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAibW9kZSIgOiBtb2RlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNy
ZWRlbnRpYWxzIiA6IGNyZWRlbnRpYWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Y2FjaGUiIDogY2FjaGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVkaXJlY3Qi
IDogcmVkaXJlY3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWdyaXR5IiA6
IGludGVncml0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2luZG93IiA6IHdp
bmRvd3MKKyAgICAgIH07CisKKyAgICAgIGZvciAodmFyIGF0dHJpYnV0ZU5hbWUgaW4gaW5pdFZh
bHVlc0RpY3QpIHsKKyAgICAgICAgdmFyIHZhbHVlc1RvVGVzdCA9IGluaXRWYWx1ZXNEaWN0W2F0
dHJpYnV0ZU5hbWVdOworICAgICAgICBmb3IgKHZhciB2YWx1ZUlkeCBpbiB2YWx1ZXNUb1Rlc3Rb
ImdpdmVuVmFsdWVzIl0pIHsKKyAgICAgICAgICB2YXIgZ2l2ZW5WYWx1ZSA9IHZhbHVlc1RvVGVz
dFsiZ2l2ZW5WYWx1ZXMiXVt2YWx1ZUlkeF07CisgICAgICAgICAgdmFyIGV4cGVjdGVkVmFsdWUg
PSB2YWx1ZXNUb1Rlc3RbImV4cGVjdGVkVmFsdWVzIl1bdmFsdWVJZHhdOworICAgICAgICAgIHRl
c3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgcmVxdWVzdEluaXQgPSB7fTsKKyAgICAg
ICAgICAgIHJlcXVlc3RJbml0W2F0dHJpYnV0ZU5hbWVdID0gZ2l2ZW5WYWx1ZQorICAgICAgICAg
ICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgcmVxdWVzdEluaXQpOworICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0W2F0dHJpYnV0ZU5hbWVdLCBleHBlY3RlZFZhbHVlLAor
ICAgICAgICAgICAgICAiRXhwZWN0IHJlcXVlc3QncyAiICsgYXR0cmlidXRlTmFtZSArICIgaXMg
IiArIGV4cGVjdGVkVmFsdWUgKyAiIHdoZW4gaW5pdGlhbGl6ZWQgd2l0aCAiICsgZ2l2ZW5WYWx1
ZSk7CisgICAgICAgICAgfSwgIkNoZWNrICIgKyBhdHRyaWJ1dGVOYW1lICsgIiBpbml0IHZhbHVl
IG9mICIgKyBnaXZlblZhbHVlICsgIiBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIiKTsKKyAgICAgICAg
fQorICAgICAgfQorICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQt
MDAyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjE2MjM3ZTI4ZTIyMzJkNmViNTkxNjFhYzI3
Y2M0YTVkYjc1ODZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKworUEFTUyBJbml0aWFsaXplIFJlcXVlc3Qgd2l0
aCBoZWFkZXJzIHZhbHVlcyAKK0ZBSUwgSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3aXRoIGFw
cGxpY2F0aW9uL29jdGV0LWJpbmFyeSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogdW5kZWZpbmVkCitGQUlMIEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0
aCBtdWx0aXBhcnQvZm9ybS1kYXRhIGFzc2VydF90cnVlOiBDb250ZW50LVR5cGUgaGVhZGVyIHNo
b3VsZCBiZSAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIsIG5vdCAibnVsbCIgZXhwZWN0ZWQgdHJ1ZSBn
b3QgbnVsbAorUEFTUyBJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdpdGggdGV4dC9wbGFpbjtj
aGFyc2V0PVVURi04IAorRkFJTCBJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdpdGggYXBwbGlj
YXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTggcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJVUkxTZWFyY2hQYXJhbXMgbm90IHN1cHBv
cnRlZCIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtaW5pdC0wMDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWFjYzY3ZTQzMDA3ODA0M2FkZTNkMDE2
ODU2OTk1ODYwMjIyNGM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAy
Lmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+
CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5SZXF1ZXN0IGluaXQ6IGhl
YWRlcnMgYW5kIGJvZHk8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0Ij4KKyAgICA8bWV0YSBuYW1lPSJhdXRo
b3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5j
YW5vbi5mciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgdGVz
dChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGhlYWRlckRpY3QgPSB7Im5hbWUxIjogInZhbHVl
MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lMiI6ICJ2YWx1ZTIiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAibmFtZTMiOiAidmFsdWUzIgorICAgICAgICAgICAgICAgICAg
ICAgICAgIH07CisgICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoaGVhZGVyRGljdCk7
CisgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsgImhlYWRlcnMiIDogaGVh
ZGVycyB9KQorICAgICAgICBmb3IgKHZhciBuYW1lIGluIGhlYWRlckRpY3QpIHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQobmFtZSksIGhlYWRlckRpY3RbbmFt
ZV0sCisgICAgICAgICAgICJyZXF1ZXN0J3MgaGVhZGVycyBoYXMgIiArIG5hbWUgKyAiIDogIiAr
IGhlYWRlckRpY3RbbmFtZV0pOworICAgICAgICB9CisgICAgICB9LCAiSW5pdGlhbGl6ZSBSZXF1
ZXN0IHdpdGggaGVhZGVycyB2YWx1ZXMiKTsKKworICAgICAgZnVuY3Rpb24gY2hlY2tSZXF1ZXN0
SW5pdChib2R5LCBib2R5VHlwZSwgZXhwZWN0ZWRUZXh0Qm9keSkgeworICAgICAgICBwcm9taXNl
X3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVl
c3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAiYm9keSI6IGJvZHl9KTsKKyAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0
aW9uKCkgeyBuZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiR0VUIiwgImJvZHkiOiBib2R5fSk7
IH0KKyAgICAgICAgICApOworICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
LAorICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCIiLCB7
Im1ldGhvZCI6ICJIRUFEIiwgImJvZHkiOiBib2R5fSk7IH0KKyAgICAgICAgICApOworICAgICAg
ICAgIHZhciByZXFIZWFkZXJzID0gcmVxdWVzdC5oZWFkZXJzOworICAgICAgICAgIHZhciBtaW1l
ID0gcmVxSGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpOworICAgICAgICAgIGFzc2VydF90cnVl
KG1pbWUgJiYgbWltZS5zZWFyY2goYm9keVR5cGUpID4gLTEsICJDb250ZW50LVR5cGUgaGVhZGVy
IHNob3VsZCBiZSBcIiIgKyBib2R5VHlwZSArICJcIiwgbm90IFwiIiArIG1pbWUgKyAiXCIiKTsK
KyAgICAgICAgICByZXR1cm4gcmVxdWVzdC50ZXh0KCkudGhlbihmdW5jdGlvbihib2R5QXNUZXh0
KSB7CisgICAgICAgICAgICAvL25vdCBlcXVhbHM6IGNhbm5vdCBndWVzcyBmb3JtRGF0YSBleGFj
dCB2YWx1ZQorICAgICAgICAgICAgYXNzZXJ0X3RydWUoIGJvZHlBc1RleHQuc2VhcmNoKGV4cGVj
dGVkVGV4dEJvZHkpID4gLTEsICJSZXRyaWV2ZSBhbmQgdmVyaWZ5IHJlcXVlc3QgYm9keSIpOwor
ICAgICAgICAgIH0pOworICAgICAgICB9LCAiSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3aXRo
ICIgKyBib2R5VHlwZSk7CisgICAgICB9CisKKyAgICAgIHZhciBibG9iID0gbmV3IEJsb2IoWyJU
aGlzIGlzIGEgYmxvYiJdLCB7dHlwZTogImFwcGxpY2F0aW9uL29jdGV0LWJpbmFyeSJ9KTsKKyAg
ICAgIHZhciBmb3JtYURhdGEgPSBuZXcgRm9ybURhdGEoKTsKKyAgICAgIGZvcm1hRGF0YS5hcHBl
bmQoIm5hbWUiLCAidmFsdWUiKTsKKyAgICAgIHZhciB1c3ZTdHJpbmcgPSAiVGhpcyBpcyBhIFVT
VlN0cmluZyIKKworICAgICAgY2hlY2tSZXF1ZXN0SW5pdChibG9iLCAiYXBwbGljYXRpb24vb2N0
ZXQtYmluYXJ5IiwgIlRoaXMgaXMgYSBibG9iIik7CisgICAgICBjaGVja1JlcXVlc3RJbml0KGZv
cm1hRGF0YSwgIm11bHRpcGFydC9mb3JtLWRhdGEiLCAibmFtZT1cIm5hbWVcIlxyXG5cclxudmFs
dWUiKTsKKyAgICAgIGNoZWNrUmVxdWVzdEluaXQodXN2U3RyaW5nLCAidGV4dC9wbGFpbjtjaGFy
c2V0PVVURi04IiwgIlRoaXMgaXMgYSBVU1ZTdHJpbmciKTsKKworICAgICAgLy8gRW5zdXJlIHRl
c3QgZG9lcyBub3QgdGltZSBvdXQgaW4gY2FzZSBvZiBtaXNzaW5nIFVSTFNlYXJjaFBhcmFtcyBz
dXBwb3J0LgorICAgICAgaWYgKHdpbmRvdy5VUkxTZWFyY2hQYXJhbXMpIHsKKyAgICAgICAgdmFy
IHVybFNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoIm5hbWU9dmFsdWUiKTsKKyAg
ICAgICAgY2hlY2tSZXF1ZXN0SW5pdCh1cmxTZWFyY2hQYXJhbXMsICJhcHBsaWNhdGlvbi94LXd3
dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIsICJuYW1lPXZhbHVlIik7CisgICAgICB9
IGVsc2UgeworICAgICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgICAgICAg
IHJldHVybiBQcm9taXNlLnJlamVjdCgiVVJMU2VhcmNoUGFyYW1zIG5vdCBzdXBwb3J0ZWQiKTsK
KyAgICAgICAgfSwgIkluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0aCBhcHBsaWNhdGlvbi94
LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIpOworICAgICAgfQorICAgIDwvc2Ny
aXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0w
MDMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMy5zdWItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJhYmU3NTYwZTI4ZTk4OGU0NzZjMjhjY2QyZjJlMjlmMDJiODViN2MK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDMuc3ViLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDYgQEAKKworRkFJTCBDaGVjayByZXF1ZXN0IHZhbHVlcyB3aGVuIGluaXRp
YWxpemVkIGZyb20gUmVxdWVzdCBFeHBlY3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzIGlz
IG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ0V4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmtleXMo
KScsICdFeHBlY3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzJyBpcyB1bmRlZmluZWQpCitG
QUlMIENoZWNrIHJlcXVlc3QgdmFsdWVzIHdoZW4gaW5pdGlhbGl6ZWQgZnJvbSBSZXF1ZXN0IGFu
ZCBpbml0IHZhbHVlcyBFeHBlY3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzIGlzIG5vdCBh
IGZ1bmN0aW9uLiAoSW4gJ0V4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmtleXMoKScsICdF
eHBlY3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzJyBpcyB1bmRlZmluZWQpCitGQUlMIENo
ZWNrIHJlcXVlc3QgdmFsdWVzIHdoZW4gaW5pdGlhbGl6ZWQgZnJvbSB1cmwgc3RyaW5nIGFzc2Vy
dF9lcXVhbHM6IENoZWNrIHVybCBhdHRyaWJ1dGUgZXhwZWN0ZWQgImh0dHA6Ly91cmwudGVzdDox
MjM0L3BhdGgvc3VicGF0aD9xdWVyeT10cnVlIiBidXQgZ290ICJodHRwOi8vdXJsLnRlc3Q6MTIz
NC9wYXRoL3N1YnBhdGg/cXVlcnk9dHJ1ZSNmcmFnbWVudCIKK0ZBSUwgQ2hlY2sgcmVxdWVzdCB2
YWx1ZXMgd2hlbiBpbml0aWFsaXplZCBmcm9tIHVybCBhbmQgaW5pdCB2YWx1ZXMgRXhwZWN0ZWRW
YWx1ZXNEaWN0WyJoZWFkZXJzIl0ua2V5cyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdFeHBlY3Rl
ZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzKCknLCAnRXhwZWN0ZWRWYWx1ZXNEaWN0WyJoZWFk
ZXJzIl0ua2V5cycgaXMgdW5kZWZpbmVkKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5p
dC0wMDMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDMuc3ViLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTgzNjgwMTUyMTY4YWViZDc5NmIyMWM2OTJiYmI4NjljNDdkZWMxMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMy5zdWIuaHRtbApAQCAtMCwwICsxLDg0IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+CisgICAgPHRpdGxlPlJlcXVlc3Q6IGluaXQgd2l0aCByZXF1ZXN0IG9yIHVybDwvdGl0bGU+
CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5v
cmcvI3JlcXVlc3QiPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdXJsLnNw
ZWMud2hhdHdnLm9yZy8jY29uY2VwdC11cmwtc2VyaWFsaXplciI+CisgICAgPG1ldGEgbmFtZT0i
YXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5j
cmYuY2Fub24uZnIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy91dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgIHZhciBo
ZWFkZXJzID0gbmV3IEhlYWRlcnMoIHsibmFtZSI6InZhbHVlIn0gKTsKKyAgICAgIHZhciBlbXB0
eUhlYWRlcnMgPSBuZXcgSGVhZGVycygpOworCisgICAgICB2YXIgaW5pdFZhbHVlc0RpY3QgPSB7
Im1ldGhvZCIgOiAiUE9TVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVycmVy
IiA6ICJodHRwOi8ve3tob3N0fX06e3twb3J0c1todHRwXVswXX19LyIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInJlZmVycmVyUG9saWN5IiA6ICJvcmlnaW4tb25seSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIm1vZGUiIDogInNhbWUtb3JpZ2luIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiY3JlZGVudGlhbHMiIDogImluY2x1ZGUiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJjYWNoZSIgOiAibm8tY2FjaGUiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJyZWRpcmVjdCIgOiAiZXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJpbnRlZ3JpdHkiIDogIlJlcXVlc3QncyBJbnRlZ3JpdHkiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJoZWFkZXJzIiA6IGhlYWRlcnMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImJvZHkiIDogIlJlcXVlc3QncyBib2R5IgorICAgICAgfTsKKworICAgICAgdmFyIGV4
cGVjdGVkSW5pdGlhbGl6ZWQgPSB7Im1ldGhvZCIgOiAiUE9TVCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAicmVmZXJyZXIiIDogImh0dHA6Ly97e2hvc3R9fTp7e3BvcnRzW2h0
dHBdWzBdfX0vIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZlcnJlclBv
bGljeSIgOiAib3JpZ2luLW9ubHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Im1vZGUiIDogInNhbWUtb3JpZ2luIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJjcmVkZW50aWFscyIgOiAiaW5jbHVkZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiY2FjaGUiIDogIm5vLWNhY2hlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJyZWRpcmVjdCIgOiAiZXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImludGVncml0eSIgOiAiUmVxdWVzdCdzIEludGVncml0eSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiaGVhZGVycyIgOiBoZWFkZXJzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImJvZHkiIDogIlJlcXVlc3QncyBib2R5IgorICAgICAgfTsKKworICAg
ICAgdmFyIGV4cGVjdGVkRGVmYXVsdCA9IHsibWV0aG9kIiA6ICJHRVQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAidXJsIiA6IGxvY2F0aW9uLnJlZiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInJlZmVycmVyIiA6ICJhYm91dDpjbGllbnQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAicmVmZXJyZXJQb2xpY3kiIDogIiIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJtb2RlIiA6ICJjb3JzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImNyZWRlbnRpYWxzIiA6ICJvbWl0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNh
Y2hlIiA6ICJkZWZhdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZGlyZWN0
IiA6ICJmb2xsb3ciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWdyaXR5IiA6
ICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGVhZGVycyIgOiBlbXB0eUhlYWRl
cnMKKyAgICAgIH07CisKKyAgICAgIHZhciBSZXF1ZXN0RGVmYXVsdCA9IG5ldyBSZXF1ZXN0KCIi
KTsKKyAgICAgIHZhciBSZXF1ZXN0SW5pdGlhbGl6ZWQgPSBuZXcgUmVxdWVzdCgiIiwgaW5pdFZh
bHVlc0RpY3QpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgcmVxdWVz
dFRvQ2hlY2sgPSBuZXcgUmVxdWVzdChSZXF1ZXN0SW5pdGlhbGl6ZWQpOworICAgICAgICBjaGVj
a1JlcXVlc3QocmVxdWVzdFRvQ2hlY2ssIGV4cGVjdGVkSW5pdGlhbGl6ZWQpOworICAgICAgfSwg
IkNoZWNrIHJlcXVlc3QgdmFsdWVzIHdoZW4gaW5pdGlhbGl6ZWQgZnJvbSBSZXF1ZXN0Iik7CisK
KyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciByZXF1ZXN0VG9DaGVjayA9IG5l
dyBSZXF1ZXN0KFJlcXVlc3REZWZhdWx0LCBpbml0VmFsdWVzRGljdCk7CisgICAgICAgIGNoZWNr
UmVxdWVzdChyZXF1ZXN0VG9DaGVjaywgZXhwZWN0ZWRJbml0aWFsaXplZCk7CisgICAgICB9LCAi
Q2hlY2sgcmVxdWVzdCB2YWx1ZXMgd2hlbiBpbml0aWFsaXplZCBmcm9tIFJlcXVlc3QgYW5kIGlu
aXQgdmFsdWVzIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciB1cmwg
PSAiaHR0cDovL3VybC50ZXN0OjEyMzQvcGF0aC9zdWJwYXRoP3F1ZXJ5PXRydWUiOworICAgICAg
ICBleHBlY3RlZERlZmF1bHRbInVybCJdID0gdXJsOworICAgICAgICB1cmwgKz0gIiNmcmFnbWVu
dCI7CisgICAgICAgIHZhciByZXF1ZXN0VG9DaGVjayA9IG5ldyBSZXF1ZXN0KHVybCk7CisgICAg
ICAgIGNoZWNrUmVxdWVzdChyZXF1ZXN0VG9DaGVjaywgZXhwZWN0ZWREZWZhdWx0KTsKKyAgICAg
IH0sICJDaGVjayByZXF1ZXN0IHZhbHVlcyB3aGVuIGluaXRpYWxpemVkIGZyb20gdXJsIHN0cmlu
ZyIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgdXJsID0gImh0dHA6
Ly91cmwudGVzdDoxMjM0L3BhdGgvc3VicGF0aD9xdWVyeT10cnVlIjsKKyAgICAgICAgZXhwZWN0
ZWRJbml0aWFsaXplZFsidXJsIl0gPSB1cmw7CisgICAgICAgIHVybCArPSAiI2ZyYWdtZW50IjsK
KyAgICAgICAgdmFyIHJlcXVlc3RUb0NoZWNrID0gbmV3IFJlcXVlc3QodXJsICwgaW5pdFZhbHVl
c0RpY3QpOworICAgICAgICBjaGVja1JlcXVlc3QocmVxdWVzdFRvQ2hlY2ssIGV4cGVjdGVkSW5p
dGlhbGl6ZWQpOworICAgICAgfSwgIkNoZWNrIHJlcXVlc3QgdmFsdWVzIHdoZW4gaW5pdGlhbGl6
ZWQgZnJvbSB1cmwgYW5kIGluaXQgdmFsdWVzIik7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTM3NDk1
NzI1YzI4NmEyYjQwYTA0MTVkMTM0Y2FiOWI2ZjdiNzIxYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKKworUEFT
UyBSZXF1ZXN0IGhhcyBjbG9uZSBtZXRob2QgCitQQVNTIFJlcXVlc3QgaGFzIGFycmF5QnVmZmVy
IG1ldGhvZCAKK1BBU1MgUmVxdWVzdCBoYXMgYmxvYiBtZXRob2QgCitQQVNTIFJlcXVlc3QgaGFz
IGZvcm1EYXRhIG1ldGhvZCAKK1BBU1MgUmVxdWVzdCBoYXMganNvbiBtZXRob2QgCitQQVNTIFJl
cXVlc3QgaGFzIHRleHQgbWV0aG9kIAorUEFTUyBDaGVjayBtZXRob2QgYXR0cmlidXRlIAorUEFT
UyBDaGVjayB1cmwgYXR0cmlidXRlIAorUEFTUyBDaGVjayBoZWFkZXJzIGF0dHJpYnV0ZSAKK1BB
U1MgQ2hlY2sgdHlwZSBhdHRyaWJ1dGUgCitQQVNTIENoZWNrIGRlc3RpbmF0aW9uIGF0dHJpYnV0
ZSAKK1BBU1MgQ2hlY2sgcmVmZXJyZXIgYXR0cmlidXRlIAorUEFTUyBDaGVjayByZWZlcnJlclBv
bGljeSBhdHRyaWJ1dGUgCitQQVNTIENoZWNrIG1vZGUgYXR0cmlidXRlIAorUEFTUyBDaGVjayBj
cmVkZW50aWFscyBhdHRyaWJ1dGUgCitQQVNTIENoZWNrIGNhY2hlIGF0dHJpYnV0ZSAKK1BBU1Mg
Q2hlY2sgcmVkaXJlY3QgYXR0cmlidXRlIAorUEFTUyBDaGVjayBpbnRlZ3JpdHkgYXR0cmlidXRl
IAorUEFTUyBDaGVjayBib2R5VXNlZCBhdHRyaWJ1dGUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1zdHJ1Y3R1cmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1cmUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jYmU2Y2VlOTk5ZjMxYjNiNjAyMjZjYjk5MmNhNmMxMTcwYWUyNzJjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5odG1sCkBAIC0wLDAgKzEsMTM0IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+CisgICAgPHRpdGxlPlJlcXVlc3Qgc3RydWN0dXJlPC90aXRsZT4KKyAgICA8bWV0YSBuYW1l
PSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+Cisg
ICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVm
PSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAg
PHNjcmlwdD4KKyAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIpOworICAgICAgdmFy
IG1ldGhvZHMgPSBbImNsb25lIiwKKyAgICAgICAgICAgICAgICAgICAgIC8vUmVxdWVzdCBpbXBs
ZW1lbnRzIEJvZHkKKyAgICAgICAgICAgICAgICAgICAgICJhcnJheUJ1ZmZlciIsCisgICAgICAg
ICAgICAgICAgICAgICAiYmxvYiIsCisgICAgICAgICAgICAgICAgICAgICAiZm9ybURhdGEiLAor
ICAgICAgICAgICAgICAgICAgICAgImpzb24iLAorICAgICAgICAgICAgICAgICAgICAgInRleHQi
CisgICAgICAgICAgICAgICAgICAgIF07CisgICAgICB2YXIgYXR0cmlidXRlcyA9IFsibWV0aG9k
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgImhlYWRlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgImRlc3RpbmF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJy
ZWZlcnJlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJyZXJQb2xpY3kiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIm1vZGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgImNy
ZWRlbnRpYWxzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJjYWNoZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAicmVkaXJlY3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgImludGVn
cml0eSIsCisgICAgICAgICAgICAgICAgICAgICAgICAvL1JlcXVlc3QgaW1wbGVtZW50cyBCb2R5
CisgICAgICAgICAgICAgICAgICAgICAgICAiYm9keVVzZWQiCisgICAgICAgICAgICAgICAgICAg
ICAgIF07CisKKyAgICAgIGZ1bmN0aW9uIElzcmVhZE9ubHkocmVxdWVzdCwgYXR0cmlidXRlVG9D
aGVjaykgeworICAgICAgICB2YXIgZGVmYXVsdFZhbHVlID0gdW5kZWZpbmVkOworICAgICAgICB2
YXIgbmV3VmFsdWUgPSB1bmRlZmluZWQ7CisgICAgICAgIHN3aXRjaCAoYXR0cmlidXRlVG9DaGVj
aykgeworICAgICAgICAgIGNhc2UgIm1ldGhvZCI6CisgICAgICAgICAgICBkZWZhdWx0VmFsdWUg
PSAiR0VUIjsKKyAgICAgICAgICAgIG5ld1ZhbHVlID0gIlBPU1QiOworICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgICBjYXNlICJ1cmwiOgorICAgICAgICAgICAgLy9kZWZhdWx0IHZhbHVl
IGlzIGJhc2UgdXJsCisgICAgICAgICAgICAvL2kuZSBodHRwOi8vd2ViLXBsYXRmb3JtLnRlc3Q6
ODAwMC9mZXRjaC9hcGkvcmVxdWVzdC1zdHJ1Y3R1cmUuaHRtbAorICAgICAgICAgICAgbmV3VmFs
dWUgPSAiaHR0cDovL3VybC50ZXN0IjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAg
Y2FzZSAiaGVhZGVycyI6CisgICAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMgPSBuZXcgSGVhZGVy
cyAoeyJuYW1lIjoidmFsdWUifSk7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UocmVxdWVzdC5o
ZWFkZXJzLmhhcygibmFtZSIpLCAiSGVhZGVycyBhdHRyaWJ1dGUgaXMgcmVhZCBvbmx5Iik7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2Ug
InR5cGUiOgorICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gIiI7CisgICAgICAgICAgICBuZXdW
YWx1ZSA9ICJzdHlsZSI7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgImRl
c3RpbmF0aW9uIjoKKyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICIiOworICAgICAgICAgICAg
bmV3VmFsdWUgPSAid29ya2VyIjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgY2Fz
ZSAicmVmZXJyZXIiOgorICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gImFib3V0OmNsaWVudCI7
CisgICAgICAgICAgICBuZXdWYWx1ZSA9ICJodHRwOi8vdXJsLnRlc3QiOworICAgICAgICAgICAg
YnJlYWs7CisKKyAgICAgICAgICBjYXNlICJyZWZlcnJlclBvbGljeSI6CisgICAgICAgICAgICBk
ZWZhdWx0VmFsdWUgPSAiIjsKKyAgICAgICAgICAgIG5ld1ZhbHVlID0gInVuc2FmZS11cmwiOwor
ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICBjYXNlICJtb2RlIjoKKyAgICAgICAgICAg
IGRlZmF1bHRWYWx1ZSA9ICJjb3JzIjsKKyAgICAgICAgICAgIG5ld1ZhbHVlID0gIm5hdmlnYXRl
IjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgY2FzZSAiY3JlZGVudGlhbHMiOgor
ICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gIm9taXQiOworICAgICAgICAgICAgbmV3VmFsdWUg
PSAiY29ycyI7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgImNhY2hlIjoK
KyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICJkZWZhdWx0IjsKKyAgICAgICAgICAgIG5ld1Zh
bHVlID0gInJlbG9hZCI7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgInJl
ZGlyZWN0IjoKKyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICJmb2xsb3ciOworICAgICAgICAg
ICAgbmV3VmFsdWUgPSAibWFudWFsIjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAg
Y2FzZSAiaW50ZWdyaXR5IjoKKyAgICAgICAgICAgIG5ld1ZhbHVlID0gIkNhbm5vdFdyaXRlSW50
ZWdyaXR5IjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgY2FzZSAiYm9keVVzZWQi
OgorICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gZmFsc2U7CisgICAgICAgICAgICBuZXdWYWx1
ZSA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICByZXF1ZXN0W2F0dHJpYnV0ZVRv
Q2hlY2tdID0gbmV3VmFsdWU7CisgICAgICAgIGlmIChkZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5l
ZCkKKyAgICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhyZXF1ZXN0W2F0dHJpYnV0ZVRvQ2hlY2td
LCBuZXdWYWx1ZSwgIkF0dHJpYnV0ZSAiICsgYXR0cmlidXRlVG9DaGVjayArICIgaXMgcmVhZCBv
bmx5Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3RbYXR0
cmlidXRlVG9DaGVja10sIGRlZmF1bHRWYWx1ZSwKKyAgICAgICAgICAgIkF0dHJpYnV0ZSAiICsg
YXR0cmlidXRlVG9DaGVjayArICIgaXMgcmVhZCBvbmx5LiBEZWZhdWx0IHZhbHVlIGlzICIgKyBk
ZWZhdWx0VmFsdWUpOworICAgICAgfQorCisgICAgICBmb3IgKHZhciBpZHggaW4gbWV0aG9kcykg
eworICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIGFzc2VydF90cnVlKG1ldGhv
ZHNbaWR4XSBpbiByZXF1ZXN0LCAicmVxdWVzdCBoYXMgIiArIG1ldGhvZHNbaWR4XSArICIgbWV0
aG9kIik7CisgICAgICAgIH0sICJSZXF1ZXN0IGhhcyAiICsgbWV0aG9kc1tpZHhdICsgIiBtZXRo
b2QiKTsKKyAgICAgIH0KKworICAgICAgZm9yICh2YXIgaWR4IGluIGF0dHJpYnV0ZXMpIHsKKyAg
ICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgICBhc3NlcnRfdHJ1ZShhdHRyaWJ1dGVz
W2lkeF0gaW4gcmVxdWVzdCwgInJlcXVlc3QgaGFzICIgKyBhdHRyaWJ1dGVzW2lkeF0gKyAiIGF0
dHJpYnV0ZSIpOworICAgICAgICAgIElzcmVhZE9ubHkocmVxdWVzdCwgYXR0cmlidXRlc1tpZHhd
KTsKKyAgICAgICAgfSwgIkNoZWNrICIgKyBhdHRyaWJ1dGVzW2lkeF0gKyAiIGF0dHJpYnV0ZSIp
OworICAgICAgfQorICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNvdXJjZXMvYXV0aGVudGljYXRpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvYXV0aGVudGljYXRpb24ucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTA2ZDE3OWU1OGViYmJiMGI0Yjk3ZjcxYzQ3NWQ0OTI3ZDNhNWNmOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc291cmNlcy9hdXRoZW50aWNhdGlvbi5weQpAQCAtMCwwICsxLDE1IEBACitk
ZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgdXNlciA9IHJlcXVlc3QuYXV0aC51c2Vy
bmFtZQorICAgIHBhc3N3b3JkID0gcmVxdWVzdC5hdXRoLnBhc3N3b3JkCisKKyAgICBpZiB1c2Vy
ID09ICJ1c2VyIiBhbmQgcGFzc3dvcmQgPT0gInBhc3N3b3JkIjoKKyAgICAgICAgcmV0dXJuICJB
dXRoZW50aWNhdGlvbiBkb25lIgorCisgICAgcmVhbG0gPSAidGVzdCIKKyAgICBpZiAicmVhbG0i
IGluIHJlcXVlc3QuR0VUOgorICAgICAgICByZWFsbSA9IHJlcXVlc3QuR0VULmZpcnN0KCJyZWFs
bSIpCisKKyAgICByZXR1cm4gKCg0MDEsICJVbmF1dGhvcml6ZWQiKSwKKyAgICAgICAgICAgIFso
IldXVy1BdXRoZW50aWNhdGUiLCAnQmFzaWMgcmVhbG09IicgKyByZWFsbSArICciJyldLAorICAg
ICAgICAgICAgIlBsZWFzZSBsb2dpbiB3aXRoIGNyZWRlbnRpYWxzICd1c2VyJyBhbmQgJ3Bhc3N3
b3JkJyIpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9jbGVhbi1zdGFzaC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9jbGVh
bi1zdGFzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYWU3MzEwNTI2OTJlMDQ4YTA3ZDY1YTZlMDE1ZmU1YTc2
MzYyMDk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2NsZWFuLXN0YXNoLnB5CkBAIC0wLDAg
KzEsNiBAQAorZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIHRva2VuID0gcmVxdWVz
dC5HRVQuZmlyc3QoInRva2VuIikKKyAgICBpZiByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKHRv
a2VuKSBpcyBub3QgTm9uZToKKyAgICAgICAgcmV0dXJuICIxIgorICAgIGVsc2U6CisgICAgICAg
IHJldHVybiAiMCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9pbnNwZWN0LWhlYWRlcnMucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJj
ZXMvaW5zcGVjdC1oZWFkZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0YWNlMThhYjY0YjExZTljMDkwNTRj
MDhiZTJkNGQyMmY3MDI2NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvaW5zcGVjdC1oZWFk
ZXJzLnB5CkBAIC0wLDAgKzEsMjIgQEAKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAg
ICBoZWFkZXJzID0gW10KKyAgICByZXF1ZXN0X2hlYWRlcnMgPSBbXQorICAgIGlmICJoZWFkZXJz
IiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgY2hlY2tlZF9oZWFkZXJzID0gcmVxdWVzdC5HRVQu
Zmlyc3QoImhlYWRlcnMiKS5zcGxpdCgifCIpCisgICAgICAgIGZvciBoZWFkZXIgaW4gY2hlY2tl
ZF9oZWFkZXJzOgorICAgICAgICAgIGlmIGhlYWRlciBpbiByZXF1ZXN0LmhlYWRlcnM6CisgICAg
ICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgieC1yZXF1ZXN0LSIgKyBoZWFkZXIsIHJlcXVlc3Qu
aGVhZGVycy5nZXQoaGVhZGVyLCAiIikgKSkKKworICAgIGlmICJjb3JzIiBpbiByZXF1ZXN0LkdF
VDoKKyAgICAgICAgaWYgIk9yaWdpbiIgaW4gcmVxdWVzdC5oZWFkZXJzOgorICAgICAgICAgICAg
aGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCByZXF1ZXN0Lmhl
YWRlcnMuZ2V0KCJPcmlnaW4iLCAiIikpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaGVh
ZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCAiKiIpKQorICAgICAg
ICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzIiwgInRy
dWUiKSkKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRo
b2RzIiwgIkdFVCwgUE9TVCwgSEVBRCIpKQorICAgICAgICBleHBvc2VkX2hlYWRlcnMgPSBbIngt
cmVxdWVzdC0iICsgaGVhZGVyIGZvciBoZWFkZXIgaW4gY2hlY2tlZF9oZWFkZXJzXQorICAgICAg
ICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUV4cG9zZS1IZWFkZXJzIiwgIiwgIi5q
b2luKGV4cG9zZWRfaGVhZGVycykpKQorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1D
b250cm9sLUFsbG93LUhlYWRlcnMiLCAiLCAiLmpvaW4ocmVxdWVzdC5oZWFkZXJzKSkpCisKKyAg
ICBoZWFkZXJzLmFwcGVuZCgoImNvbnRlbnQtdHlwZSIsICJ0ZXh0L3BsYWluIikpCisgICAgcmV0
dXJuIGhlYWRlcnMsICIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvbWV0aG9kLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL21l
dGhvZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iYWM1NmRlNjk4YmI4ZjAxOTIyZDJkZDZjYzg4NjgyZTMxY2I2
MzRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL21ldGhvZC5weQpAQCAtMCwwICsxLDExIEBA
CitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgaGVhZGVycyA9IFtdCisgICAgaWYg
ImNvcnMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1D
b250cm9sLUFsbG93LU9yaWdpbiIsICIqIikpCisgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNj
ZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMiLCAidHJ1ZSIpKQorICAgICAgICBoZWFkZXJz
LmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMiLCAiR0VULCBQT1NULCBQVVQs
IEZPTyIpKQorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LUhl
YWRlcnMiLCAieC10ZXN0LCB4LWZvbyIpKQorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vz
cy1Db250cm9sLUV4cG9zZS1IZWFkZXJzIiwgIngtcmVxdWVzdC1tZXRob2QiKSkKKworICAgIGhl
YWRlcnMuYXBwZW5kKCgieC1yZXF1ZXN0LW1ldGhvZCIsIHJlcXVlc3QubWV0aG9kKSkKKyAgICBy
ZXR1cm4gaGVhZGVycywgIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9wcmVmbGlnaHQucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJj
ZXMvcHJlZmxpZ2h0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyZGNlYmE2ODNkOGRmNjlkMWViZmI3MDNhYzBj
YjU5OWMwZTlkNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvcHJlZmxpZ2h0LnB5CkBAIC0w
LDAgKzEsNTYgQEAKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBoZWFkZXJzID0g
WygiQ29udGVudC1UeXBlIiwgInRleHQvcGxhaW4iKV0KKyAgICBzdGFzaGVkX2RhdGEgPSB7J2Nv
bnRyb2xfcmVxdWVzdF9oZWFkZXJzJzogIiIsICdwcmVmbGlnaHQnOiAiMCIsICdwcmVmbGlnaHRf
cmVmZXJyZXInOiAiIn0KKworICAgIGlmICJvcmlnaW4iIGluIHJlcXVlc3QuR0VUOgorICAgICAg
ICBmb3Igb3JpZ2luIGluIHJlcXVlc3QuR0VUWydvcmlnaW4nXS5zcGxpdCgiLCAiKToKKyAgICAg
ICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgb3Jp
Z2luKSkKKyAgICBlbHNlOgorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9s
LUFsbG93LU9yaWdpbiIsICIqIikpCisKKyAgICBpZiByZXF1ZXN0Lm1ldGhvZCA9PSAiT1BUSU9O
UyI6CisgICAgICAgIGlmIG5vdCAiQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QiIGluIHJl
cXVlc3QuaGVhZGVyczoKKyAgICAgICAgICAgIHJlc3BvbnNlLnNldF9lcnJvcig0MDAsICJObyBB
Y2Nlc3MtQ29udHJvbC1SZXF1ZXN0LU1ldGhvZCBoZWFkZXIiKQorICAgICAgICAgICAgcmV0dXJu
ICJFUlJPUjogTm8gYWNjZXNzLWNvbnRyb2wtcmVxdWVzdC1tZXRob2QgaW4gcHJlZmxpZ2h0ISIK
KworICAgICAgICBpZiAiY29udHJvbF9yZXF1ZXN0X2hlYWRlcnMiIGluIHJlcXVlc3QuR0VUOgor
ICAgICAgICAgICAgc3Rhc2hlZF9kYXRhWydjb250cm9sX3JlcXVlc3RfaGVhZGVycyddID0gcmVx
dWVzdC5oZWFkZXJzLmdldCgiQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1IZWFkZXJzIiwgIiIpCisK
KyAgICAgICAgaWYgIm1heF9hZ2UiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICAgICAgaGVhZGVy
cy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1NYXgtQWdlIiwgcmVxdWVzdC5HRVRbJ21heF9hZ2Un
XSkpCisKKyAgICAgICAgaWYgImFsbG93X2hlYWRlcnMiIGluIHJlcXVlc3QuR0VUOgorICAgICAg
ICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzIiwgcmVx
dWVzdC5HRVRbJ2FsbG93X2hlYWRlcnMnXSkpCisKKyAgICAgICAgaWYgImFsbG93X21ldGhvZHMi
IGluIHJlcXVlc3QuR0VUOgorICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1NZXRob2RzIiwgcmVxdWVzdC5HRVRbJ2FsbG93X21ldGhvZHMnXSkpCisKKyAg
ICAgICAgcHJlZmxpZ2h0X3N0YXR1cyA9IDIwMAorICAgICAgICBpZiAicHJlZmxpZ2h0X3N0YXR1
cyIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgICAgICBwcmVmbGlnaHRfc3RhdHVzID0gaW50KHJl
cXVlc3QuR0VULmZpcnN0KCJwcmVmbGlnaHRfc3RhdHVzIikpCisKKyAgICAgICAgc3Rhc2hlZF9k
YXRhWydwcmVmbGlnaHQnXSA9ICIxIgorICAgICAgICBzdGFzaGVkX2RhdGFbJ3ByZWZsaWdodF9y
ZWZlcnJlciddID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiUmVmZXJlciIsICIiKQorICAgICAgICBy
ZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQocmVxdWVzdC5HRVQuZmlyc3QoInRva2VuIiksIHN0YXNo
ZWRfZGF0YSkKKworICAgICAgICByZXR1cm4gcHJlZmxpZ2h0X3N0YXR1cywgaGVhZGVycywgIiIK
KworICAgIHRva2VuID0gTm9uZQorICAgIGlmICJ0b2tlbiIgaW4gcmVxdWVzdC5HRVQ6CisgICAg
ICAgIHRva2VuID0gcmVxdWVzdC5HRVQuZmlyc3QoInRva2VuIikKKyAgICAgICAgZGF0YSA9IHJl
cXVlc3Quc2VydmVyLnN0YXNoLnRha2UodG9rZW4pCisgICAgICAgIGlmIGRhdGE6CisgICAgICAg
ICAgICBzdGFzaGVkX2RhdGEgPSBkYXRhCisKKyAgICAjdXNlIHgtKiBoZWFkZXJzIGZvciByZXR1
cm5pbmcgdmFsdWUgdG8gYm9keWxlc3MgcmVzcG9uc2VzCisgICAgaGVhZGVycy5hcHBlbmQoKCJB
Y2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIsICJ4LWRpZC1wcmVmbGlnaHQsIHgtY29udHJv
bC1yZXF1ZXN0LWhlYWRlcnMsIHgtcmVmZXJyZXIsIHgtcHJlZmxpZ2h0LXJlZmVycmVyLCB4LW9y
aWdpbiIpKQorICAgIGhlYWRlcnMuYXBwZW5kKCgieC1kaWQtcHJlZmxpZ2h0Iiwgc3Rhc2hlZF9k
YXRhWydwcmVmbGlnaHQnXSkpCisgICAgaGVhZGVycy5hcHBlbmQoKCJ4LWNvbnRyb2wtcmVxdWVz
dC1oZWFkZXJzIiwgc3Rhc2hlZF9kYXRhWydjb250cm9sX3JlcXVlc3RfaGVhZGVycyddKSkKKyAg
ICBoZWFkZXJzLmFwcGVuZCgoIngtcHJlZmxpZ2h0LXJlZmVycmVyIiwgc3Rhc2hlZF9kYXRhWydw
cmVmbGlnaHRfcmVmZXJyZXInXSkpCisgICAgaGVhZGVycy5hcHBlbmQoKCJ4LXJlZmVycmVyIiwg
cmVxdWVzdC5oZWFkZXJzLmdldCgiUmVmZXJlciIsICIiKSApKQorICAgIGhlYWRlcnMuYXBwZW5k
KCgieC1vcmlnaW4iLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJPcmlnaW4iLCAiIikgKSkKKworICAg
IGlmIHRva2VuOgorICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KHRva2VuLCBzdGFzaGVk
X2RhdGEpCisKKyAgICByZXR1cm4gaGVhZGVycywgIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9yZWRp
cmVjdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc291cmNlcy9yZWRpcmVjdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzY3YjIyM2FhY2NhMzY0
NzE3M2U1MTdhNjIxMjFkMmQzZGQ1YmQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3JlZGly
ZWN0LnB5CkBAIC0wLDAgKzEsNDggQEAKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAg
ICBzdGFzaGVkX2RhdGEgPSB7J2NvdW50JzogMCwgJ3ByZWZsaWdodCc6ICIwIn0KKyAgICBzdGF0
dXMgPSAzMDIKKyAgICBoZWFkZXJzID0gWygiQ29udGVudC1UeXBlIiwgInRleHQvcGxhaW4iKSwK
KyAgICAgICAgICAgICAgICgiQ2FjaGUtQ29udHJvbCIsICJuby1jYWNoZSIpLAorICAgICAgICAg
ICAgICAgKCJQcmFnbWEiLCAibm8tY2FjaGUiKSwKKyAgICAgICAgICAgICAgICgiQWNjZXNzLUNv
bnRyb2wtQWxsb3ctT3JpZ2luIiwgIioiKV0KKyAgICB0b2tlbiA9IE5vbmUKKworICAgIGlmICJ0
b2tlbiIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIHRva2VuID0gcmVxdWVzdC5HRVQuZmlyc3Qo
InRva2VuIikKKyAgICAgICAgZGF0YSA9IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2UodG9rZW4p
CisgICAgICAgIGlmIGRhdGE6CisgICAgICAgICAgICBzdGFzaGVkX2RhdGEgPSBkYXRhCisKKyAg
ICBpZiByZXF1ZXN0Lm1ldGhvZCA9PSAiT1BUSU9OUyI6CisgICAgICAgIGlmICJhbGxvd19oZWFk
ZXJzIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNz
LUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsIHJlcXVlc3QuR0VUWydhbGxvd19oZWFkZXJzJ10pKQor
ICAgICAgICBzdGFzaGVkX2RhdGFbJ3ByZWZsaWdodCddID0gIjEiCisgICAgICAgICNQcmVmbGln
aHQgaXMgbm90IHJlZGlyZWN0ZWQ6IHJldHVybiAyMDAKKyAgICAgICAgaWYgbm90ICJyZWRpcmVj
dF9wcmVmbGlnaHQiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICAgICAgaWYgdG9rZW46CisgICAg
ICAgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dChyZXF1ZXN0LkdFVC5maXJzdCgidG9r
ZW4iKSwgc3Rhc2hlZF9kYXRhKQorICAgICAgICAgICAgcmV0dXJuIDIwMCwgaGVhZGVycywgIiIK
KworICAgIGlmICJyZWRpcmVjdF9zdGF0dXMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICBzdGF0
dXMgPSBpbnQocmVxdWVzdC5HRVRbJ3JlZGlyZWN0X3N0YXR1cyddKQorCisgICAgc3Rhc2hlZF9k
YXRhWydjb3VudCddICs9IDEKKworICAgICNrZWVwIHVybCBwYXJhbWV0ZXJzIGluIGxvY2F0aW9u
CisgICAgdXJsX3BhcmFtZXRlcnMgPSAiPyIgKyAiJiIuam9pbihtYXAobGFtYmRhIHg6IHhbMF1b
MF0gKyAiPSIgKyB4WzFdWzBdLCByZXF1ZXN0LkdFVC5pdGVtcygpKSkKKyAgICAjbWFrZSBzdXJl
IGxvY2F0aW9uIGNoYW5nZXMgZHVyaW5nIHJlZGlyZWN0aW9uIGxvb3AKKyAgICB1cmxfcGFyYW1l
dGVycyArPSAiJmNvdW50PSIgKyBzdHIoc3Rhc2hlZF9kYXRhWydjb3VudCddKQorCisgICAgaWYg
ImxvY2F0aW9uIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJMb2Nh
dGlvbiIsIHJlcXVlc3QuR0VUWydsb2NhdGlvbiddICsgdXJsX3BhcmFtZXRlcnMpKQorCisgICAg
aWYgdG9rZW46CisgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dChyZXF1ZXN0LkdFVC5m
aXJzdCgidG9rZW4iKSwgc3Rhc2hlZF9kYXRhKQorICAgICAgICBpZiAibWF4X2NvdW50IiBpbiBy
ZXF1ZXN0LkdFVDoKKyAgICAgICAgICAgIG1heF9jb3VudCA9ICBpbnQocmVxdWVzdC5HRVRbJ21h
eF9jb3VudCddKQorICAgICAgICAgICAgI3N0b3AgcmVkaXJlY3RpbmcgYW5kIHJldHVybiBjb3Vu
dAorICAgICAgICAgICAgaWYgc3Rhc2hlZF9kYXRhWydjb3VudCddID4gbWF4X2NvdW50OgorICAg
ICAgICAgICAgICAgICMgLTEgYmVjYXVzZSB0aGUgbGFzdCBpcyBub3QgYSByZWRpcmVjdGlvbgor
ICAgICAgICAgICAgICAgIHJldHVybiBzdHIoc3Rhc2hlZF9kYXRhWydjb3VudCddIC0gMSkKKwor
ICAgIHJldHVybiBzdGF0dXMsIGhlYWRlcnMsICIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvdG9wLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc291cmNlcy90b3AudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzYTMxNTdkMTRkOTA4MWVkMDFjZDc5OTI4
Nzg5OTgyMmUxOTUyM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvdG9wLnR4dApAQCAtMCww
ICsxIEBACit0b3AKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJj
ZXMvdHJpY2tsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc291cmNlcy90cmlja2xlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlNzA5NDQ1YzU5
OGMxODc3MjJjOGY1MGY2YjE2MmEyNTJhZGFiYWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMv
dHJpY2tsZS5weQpAQCAtMCwwICsxLDEyIEBACitpbXBvcnQgdGltZQorCitkZWYgbWFpbihyZXF1
ZXN0LCByZXNwb25zZSk6CisgICAgZGVsYXkgPSBmbG9hdChyZXF1ZXN0LkdFVC5maXJzdCgibXMi
LCA1MDApKSAvIDFFMworICAgIGNvdW50ID0gaW50KHJlcXVlc3QuR0VULmZpcnN0KCJjb3VudCIs
IDUwKSkKKyAgICB0aW1lLnNsZWVwKGRlbGF5KQorICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJD
b250ZW50LXR5cGUiLCAidGV4dC9wbGFpbiIpCisgICAgcmVzcG9uc2Uud3JpdGVfc3RhdHVzX2hl
YWRlcnMoKQorICAgIHRpbWUuc2xlZXAoZGVsYXkpOworICAgIGZvciBpIGluIHhyYW5nZShjb3Vu
dCk6CisgICAgICAgIHJlc3BvbnNlLndyaXRlci53cml0ZV9jb250ZW50KCJURVNUX1RSSUNLTEVc
biIpCisgICAgICAgIHRpbWUuc2xlZXAoZGVsYXkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvdXRpbHMu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNvdXJjZXMvdXRpbHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ5MjkzNTYyNGQ5MjI4NmI0YWU3OTE5
N2U4ZDYwYjRjNjQ5NWQwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy91dGlscy5qcwpAQCAt
MCwwICsxLDY2IEBACit2YXIgaW5Xb3JrZXIgPSBmYWxzZTsKK3ZhciBSRVNPVVJDRVNfRElSID0g
Ii4uL3Jlc291cmNlcy8iOworCit0cnkgeworICBpbldvcmtlciA9ICEoc2VsZiBpbnN0YW5jZW9m
IFdpbmRvdyk7Cit9IGNhdGNoIChlKSB7CisgIGluV29ya2VyID0gdHJ1ZTsKK30KKworZnVuY3Rp
b24gZGlybmFtZShwYXRoKSB7CisgICAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXC9bXlwvXSokLywg
Jy8nKQorfQorCitmdW5jdGlvbiBjaGVja1JlcXVlc3QocmVxdWVzdCwgRXhwZWN0ZWRWYWx1ZXNE
aWN0KSB7CisgIGZvciAodmFyIGF0dHJpYnV0ZSBpbiBFeHBlY3RlZFZhbHVlc0RpY3QpIHsKKyAg
ICBzd2l0Y2goYXR0cmlidXRlKSB7CisgICAgICBjYXNlICJoZWFkZXJzIjoKKyAgICAgICAgICBm
b3IgKHZhciBrZXkgb2YgRXhwZWN0ZWRWYWx1ZXNEaWN0WyJoZWFkZXJzIl0ua2V5cygpKQorICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0WyJoZWFkZXJzIl0uZ2V0KGtleSksIEV4cGVj
dGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmdldChrZXkpLAorICAgICAgICAgICAgICAiQ2hlY2sg
aGVhZGVycyBhdHRyaWJ1dGUgaGFzICIgKyBrZXkgKyAiOiIgKyBFeHBlY3RlZFZhbHVlc0RpY3Rb
ImhlYWRlcnMiXS5nZXQoa2V5KSk7CisgICAgICAgIGJyZWFrOworCisgICAgICBjYXNlICJib2R5
IjoKKyAgICAgICAgLy9mb3IgY2hlY2tpbmcgYm9keSdzIGNvbnRlbnQsIGEgZGVkaWNhdGVkIGFz
eW5jcm9ub3VzL3Byb21pc2UgdGVzdCBzaG91bGQgYmUgdXNlZAorICAgICAgICBhc3NlcnRfdHJ1
ZShyZXF1ZXN0WyJoZWFkZXJzIl0uaGFzKCJDb250ZW50LVR5cGUiKSAsICJDaGVjayByZXF1ZXN0
IGhhcyBib2R5IHVzaW5nIENvbnRlbnQtVHlwZSBoZWFkZXIiKQorICAgICAgICBicmVhazsKKwor
ICAgICAgY2FzZSAibWV0aG9kIjoKKyAgICAgIGNhc2UgInJlZmVycmVyIjoKKyAgICAgIGNhc2Ug
InJlZmVycmVyUG9saWN5IjoKKyAgICAgIGNhc2UgImNyZWRlbnRpYWxzIjoKKyAgICAgIGNhc2Ug
ImNhY2hlIjoKKyAgICAgIGNhc2UgInJlZGlyZWN0IjoKKyAgICAgIGNhc2UgImludGVncml0eSI6
CisgICAgICBjYXNlICJ1cmwiOgorICAgICAgY2FzZSAiZGVzdGluYXRpb24iOgorICAgICAgICBh
c3NlcnRfZXF1YWxzKHJlcXVlc3RbYXR0cmlidXRlXSwgRXhwZWN0ZWRWYWx1ZXNEaWN0W2F0dHJp
YnV0ZV0sICJDaGVjayAiICsgYXR0cmlidXRlICsgIiBhdHRyaWJ1dGUiKQorICAgICAgICBicmVh
azsKKworICAgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICB9Cit9CisKKy8v
Y2hlY2sgcmVhZGVyJ3MgdGV4dCBjb250ZW50IGluIGFuIGFzeW5jcm9ub3VzIHRlc3QKK2Z1bmN0
aW9uIHJlYWRUZXh0U3RyZWFtKHJlYWRlciwgYXN5bmNUZXN0LCBleHBlY3RlZFZhbHVlLCByZXRy
aWV2ZWRUZXh0KSB7CisgIGlmICghcmV0cmlldmVkVGV4dCkKKyAgICByZXRyaWV2ZWRUZXh0ID0g
IiI7CisgIHJlYWRlci5yZWFkKCkudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgaWYgKCFkYXRh
LmRvbmUpIHsKKyAgICAgIHZhciBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCk7CisgICAgICBy
ZXRyaWV2ZWRUZXh0ICs9IGRlY29kZXIuZGVjb2RlKGRhdGEudmFsdWUpOworICAgICAgcmVhZFRl
eHRTdHJlYW0ocmVhZGVyLCBhc3luY1Rlc3QsIGV4cGVjdGVkVmFsdWUsIHJldHJpZXZlZFRleHQp
OworICAgIH0KKyAgICBhc3luY1Rlc3Quc3RlcChmdW5jdGlvbigpIHsKKyAgICAgIGFzc2VydF9l
cXVhbHMocmV0cmlldmVkVGV4dCwgZXhwZWN0ZWRWYWx1ZSwgIlJldHJpZXZlIGFuZCB2ZXJpZnkg
c3RyZWFtIik7CisgICAgICBhc3luY1Rlc3QuZG9uZSgpOworICAgIH0pOworICB9KS5jYXRjaChm
dW5jdGlvbihlKSB7CisgICAgYXN5bmNUZXN0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICBhc3Nl
cnRfdW5yZWFjaGVkKCJDYW5ub3QgcmVhZCBzdHJlYW0gIiArIGUpOworICAgICAgYXN5bmNUZXN0
LmRvbmUoKTsKKyAgICB9KTsKKyAgfSk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmli
dXRlcy1kZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50
eHQKaW5kZXggODM2MWExZDRkY2ZlNWNhOThmNmZjMWVjOTU4NjViZGRjZWQ4NzczNC4uYjE3YjZk
M2IyMDFmZDQ1NGJjYTViMTNmNmY1M2NlNzI0MzlkNDY3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRpY2F0ZWQtd29ya2Vy
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC02NCw2ICs2NCwx
MSBAQCBQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUmVhZGFibGVTdHJlYW0nKS5oYXNPd25QcgogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlYWRhYmxlU3RyZWFtJykuaGFzT3duUHJvcGVy
dHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnUmVhZGFibGVTdHJlYW0nKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQ
QVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVh
ZGFibGVTdHJlYW0nKS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBbV29ya2VyXSBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS52YWx1ZSBpcyBSZXF1
ZXN0CitQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBbV29ya2Vy
XSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNP
d25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQor
UEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jl
cXVlc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1VSTCcpLnZhbHVlIGlzIFVSTAogUEFTUyBbV29y
a2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1VSTCcpLmhhc093
blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1VSTCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBm
YWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFsLWNvbnN0
cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCA0Y2Y5ZWNmOTg3NWFiZDJlMjRk
MzFhYjY0ZWQwY2E0NGFhY2Q2YTg5Li4wNDk4Y2Y1OTFjYmUxN2EzMDNjNjQ3ZGU1MzMzMzk3YzZl
NmJhNWFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFs
LWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtOTMzLDYgKzkzMywxMSBA
QCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NF
dmVudCcpLmhhc093blByb3BlcnR5KCdnZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMg
ZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9n
cmVzc0V2ZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1
ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3Qn
KS52YWx1ZSBpcyBSZXF1ZXN0CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Q
cm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdSZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25maWd1cmFibGUg
aXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JH
QkNvbG9yJykudmFsdWUgaXMgUkdCQ29sb3IKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxz
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9y
JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRp
Y2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13b3JrZXItZXhwZWN0
ZWQudHh0CmluZGV4IDgzNjFhMWQ0ZGNmZTVjYTk4ZjZmYzFlYzk1ODY1YmRkY2VkODc3MzQuLmIx
N2I2ZDNiMjAxZmQ0NTRiY2E1YjEzZjZmNTNjZTcyNDM5ZDQ2NzYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13b3Jr
ZXItZXhwZWN0ZWQudHh0CkBAIC02NCw2ICs2NCwxMSBAQCBQQVNTIFtXb3JrZXJdIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVhZGFibGVTdHJlYW0nKS5oYXNPd25Q
cgogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1JlYWRhYmxlU3RyZWFtJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIFtX
b3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVhZGFibGVT
dHJlYW0nKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVhZGFibGVTdHJlYW0nKS5jb25maWd1cmFibGUg
aXMgdHJ1ZQorUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ1JlcXVlc3QnKS52YWx1ZSBpcyBSZXF1ZXN0CitQQVNTIFtXb3JrZXJdIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5
KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UK
K1BBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdS
ZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1
ZQogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1VSTCcpLnZhbHVlIGlzIFVSTAogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1VSTCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQog
UEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1VS
TCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3Ry
dWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDEyZTk4MDgxNTY3YmI3ZTNkOWM3
MjYzZTg3ZmM5ODI5MDA4YTk1NzkuLjJjMDNkN2U1M2JjYjUzNzc3OGM5MDA5MDdiZjIwZTk3MTM3
YmFmMzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFs
LWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3Rl
ZC50eHQKQEAgLTk4OCw2ICs5ODgsMTEgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2UKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50Jyku
aGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2
ZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykudmFsdWUgaXMgUmVxdWVzdAorUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0
eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVudW1lcmFi
bGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdSZXF1ZXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLnZhbHVlIGlzIFJHQkNvbG9yCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS5oYXNP
d25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxz
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29u
c3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDZjY2Y1MjAzMTQ2YmFmY2MwN2I2MDRhNWRhNjk0NjcyOWMzYWJlMTkuLjIzMjQ2Zjk5YmNm
Mjg3MTExZTZjYjBkNmExNzU4ZWY1MWUxMzFjYTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTEwMDgsNiArMTAwOCwxMSBAQCBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcp
Lmhhc093blByb3BlcnR5KCdnZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2
ZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS52YWx1
ZSBpcyBSZXF1ZXN0CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0
eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9y
JykudmFsdWUgaXMgUkdCQ29sb3IKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdSR0JDb2xvcicpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykuaGFz
T3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAwNGVmZjZm
ZmQ5MGUxMTZkYTA3N2U2NTJjYWY4ZDU3MjliMTI0YWI2Li41ZDVlMDVmNjZiNGUzYTQwMDY0ZTI3
NmU1MjE3NzY5YTBlMjA0ZTBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
bWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTk4OCw2ICs5ODgsMTEg
QEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNz
RXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlz
IGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJv
Z3Jlc3NFdmVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuY29uZmlndXJhYmxlIGlzIHRy
dWUKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0
JykudmFsdWUgaXMgUmVxdWVzdAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3du
UHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuY29uZmlndXJhYmxl
IGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdS
R0JDb2xvcicpLnZhbHVlIGlzIFJHQkNvbG9yCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFs
c2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xv
cicpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pz
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGUw
MGU2OTc4MWUwYzc2ZGYwMWVkMGI1MGY1ZWUyOGZhZWIxOWJkZTMuLjAyYzg2NGU2YzlhZGExZjJi
ZTExODc4YzMwMmM4N2NjZDdkODAwNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2ds
b2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTEwNjMsNiArMTA2
MywxMSBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVj
dCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlY3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFs
c2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZWN0Jyku
ZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ1JlY3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS52YWx1ZSBpcyBSZXF1ZXN0CitQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhh
c093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFs
c2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0
JykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1NRTEV4Y2VwdGlvbicpLnZhbHVlIGlz
IFNRTEV4Y2VwdGlvbgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ1NRTEV4Y2VwdGlvbicpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1NRTEV4Y2VwdGlvbicpLmhh
c093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3Jz
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGQ0OTI4NzY3M2VjODBmMjExYmVlYTEyODBk
ZDJiN2JjYjk2N2NlOTAuLmM5YjYxYmJhNTUzMjU5M2I2ZjZjODZkNDI4Mjg4YWNjYWM4ZDI3MjEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0
cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQK
QEAgLTEwMTMsNiArMTAxMywxMSBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmhhc093blByb3BlcnR5KCdnZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNP
d25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQn
KS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS52YWx1ZSBpcyBSZXF1ZXN0CitQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdn
ZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuZW51bWVyYWJsZSBp
cyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jl
cXVlc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykudmFsdWUgaXMgUkdCQ29sb3IKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLmhhc093blBy
b3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXgg
Yzg2ODczNTYzYTJkOGVhZWY3YjA4N2JhMjRlM2M3ZGU1YTIyMWU1NC4uODdjNmY4ZTc3YjNhNjI4
ZjNjYjYzYjg4NTRjNmFlZDc5NDRkZGI1MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtODYzLDYgKzg2MywxMSBAQCBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmhhc093
blByb3BlcnR5KCdnZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50Jyku
ZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS52YWx1ZSBpcyBS
ZXF1ZXN0CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVx
dWVzdCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0
JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdSZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykudmFs
dWUgaXMgUkdCQ29sb3IKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdSR0JDb2xvcicpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykuaGFzT3duUHJv
cGVydHkoJ3NldCcpIGlzIGZhbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270112</attachid>
            <date>2016-01-28 06:32:04 -0800</date>
            <delta_ts>2016-01-28 08:12:46 -0800</delta_ts>
            <desc>Adding more tests</desc>
            <filename>bug-153437-20160128153137.patch</filename>
            <type>text/plain</type>
            <size>157761</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1NzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY2OGVmYTg0YzQ1OThi
OTU0ZDc5NTRiYjE4ODY0M2JkZTQ0ODk1NC4uOWJiNTM3N2EyYzRmMjU1MDVlM2FjNWZmMWNhOTNl
YzQxNGZkOTViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMSBAQAorMjAxNi0wMS0yNiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtGZXRj
aCBBUEldIEltcGxlbWVudCBGZXRjaCBBUEkgUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNDM3CisKKyAgICAgICAgQWRkZWQgc3VwcG9y
dCBmb3IgRmV0Y2ggUmVxdWVzdCBhbmQgQm9keS4KKyAgICAgICAgQm9keSBpcyBzaGFyaW5nIGZ1
bmN0aW9uYWxpdHkgYmV0d2VlbiBSZXF1ZXN0IGFuZCBSZXNwb25zZS4KKyAgICAgICAgQ29udmVy
c2lvbiBiZXR3ZWVuIHZhcmlvdXMgYm9keSB0eXBlcyBhcmUgbm90IGltcGxlbWVudGVkIHlldC4K
KworICAgICAgICBBZGRlZCBhIEZldGNoT3B0aW9ucyBjbGFzcy4gT3B0aW9ucyBpbiB0aGlzIGNs
YXNzIGFyZSBwYXJ0aWFsbHkgcmVkdW5kYW50IHdpdGggUmVzb3VyY2VMb2FkZXJPcHRpb25zLgor
CisgICAgICAgIEZpeGluZyBidWcgaW4gSGVhZGVycyBjb25zdHJ1Y3Rvci4KKyAgICAgICAgTWFr
aW5nIGVycm9yIHJlcG9ydGluZyBpbiBjYXNlIG9mIG1vZGlmeWluZyBoZWFkZXJzIGNvbXBsaWFu
dCB3aXRoIHRoZSBzcGVjLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3RzOiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtY2xvbmUuc3ViLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1l
Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQuaHRtbAorICAgICAgICAgICAgICAgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWVy
cm9yLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmh0bWwKKyAgICAgICAgICAgICAgIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1p
ZGwuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAxLnN1Yi5odG1sCisgICAgICAgICAgICAg
ICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtaW5pdC0wMDIuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAzLnN1Yi5odG1sCisgICAg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmluaXRCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoQm9keTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpwcm9jZXNzSWZF
bXB0eU9yRGlzdHVyYmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6YXJyYXlCdWZm
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpmb3JtRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpGZXRjaEJvZHk6OmJsb2IpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojp0
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6anNvbik6CisgICAgICAgICogTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHkuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJv
ZHk6On5GZXRjaEJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojppc0VtcHR5KToK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6aXNEaXN0dXJiZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6RmV0Y2hCb2R5OjpzZXREaXN0dXJiZWQpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hC
b2R5OjpzZXRNaW1lVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6Om1pbWVUeXBl
KToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNh
bldyaXRlSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6YXBwZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZldGNoSGVhZGVyczo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6
ZmlsbCk6IEhlbHBlciByb3V0aW5lIGltcGxlbWVudGluZyBodHRwczovL2ZldGNoLnNwZWMud2hh
dHdnLm9yZy8jY29uY2VwdC1oZWFkZXJzLWZpbGwKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0Zl
dGNoSGVhZGVycy5oOiBBZGRpbmcgaGVhZGVyIGdldHRlci9zZXR0ZXIgZm9yIEZldGNoUmVxdWVz
dC4KKyAgICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6ZmFzdEdldCk6CisgICAgICAgIChX
ZWJDb3JlOjpGZXRjaEhlYWRlcnM6OmZhc3RTZXQpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gv
RmV0Y2hIZWFkZXJzLmpzOiBGaXhpbmcgYnVnIGluIGNvbnN0cnVjdG9yIChjb3ZlcmVkIGJ5IG1v
ZGlmaWVkIGhlYWRlcnMtYmFzYy5odG1sIHRlc3QpLgorICAgICAgICAoaW5pdGlhbGl6ZUZldGNo
SGVhZGVycyk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaE9wdGlvbnMuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkZldGNoT3B0aW9ucyk6CisgICAgICAg
IChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hP
cHRpb25zOjpkZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6Om1v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpjcmVkZW50aWFscyk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OmNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoT3B0aW9uczo6cmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpy
ZWZlcnJlclBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OnNldFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpzZXREZXN0aW5hdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OnNldE1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmV0Y2hPcHRpb25zOjpzZXRDcmVkZW50aWFscyk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9w
dGlvbnM6OnNldENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoT3B0aW9uczo6c2V0UmVk
aXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpzZXRSZWZlcnJlclBvbGlj
eSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoUmVxdWVzdDo6RmV0Y2hSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVx
dWVzdDo6aW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OnNldFJlZmVycmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6c2V0UmVmZXJyZXJQb2xpY3kpOgor
ICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpzZXRNb2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZldGNoUmVxdWVzdDo6c2V0Q3JlZGVudGlhbHMpOgorICAgICAgICAoV2ViQ29yZTo6RmV0
Y2hSZXF1ZXN0OjpzZXRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OnNl
dFJlZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6dHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmRlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkZldGNoUmVxdWVzdDo6cmVmZXJyZXJQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6RmV0
Y2hSZXF1ZXN0OjpyZWZlcnJlcik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6Om1v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpjcmVkZW50aWFscyk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoUmVxdWVzdDo6cmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0Ojpz
ZXRNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpjbG9uZSk6CisgICAg
ICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpGZXRjaFJlcXVlc3Q6Om1ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVl
c3Q6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmludGVncml0eSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmhlYWRlcnMpOgorICAgICAgICAqIE1vZHVs
ZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0RpY3Rpb25hcnku
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnk6OmV4ZWNTdGF0ZSk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRGljdGlv
bmFyeTo6Y29udmVydFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnku
aDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRGljdGlvbmFyeTo6Z2V0KToKKwogMjAxNi0wMS0yOCAg
R3dhbmcgWW9vbiBId2FuZyAgPHlvb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVy
XSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVTeW5jTWVzc2FnZSBsZWFr
cyBHc3RDb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDU1OWMxYmFhYmY5YmJmYjU3YmY1
Nzk5NTIzNmMxZjU4ZGI3OGU1ZWQuLmY4NjUxOWU4MDA4ZDBkZDc0MDc5NjcxMmZiMzI3YjBkMWUx
ZDk3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNzIsNyArMTcyLDkgQEAgc2V0KFdlYkNv
cmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFnZXIu
aWRsCiAgICAgTW9kdWxlcy9iYXR0ZXJ5L05hdmlnYXRvckJhdHRlcnkuaWRsCiAKKyAgICBNb2R1
bGVzL2ZldGNoL0ZldGNoQm9keS5pZGwKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5p
ZGwKKyAgICBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGwKIAogICAgIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvbi5pZGwKQEAgLTgxNSw3ICs4MTcsOSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9k
dWxlcy9iYXR0ZXJ5L0JhdHRlcnlTdGF0dXMuY3BwCiAgICAgTW9kdWxlcy9iYXR0ZXJ5L05hdmln
YXRvckJhdHRlcnkuY3BwCiAKKyAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKICAgICBN
b2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAKKyAgICBNb2R1bGVzL2ZldGNoL0ZldGNoUmVx
dWVzdC5jcHAKIAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwCiAgICAg
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcAppbmRleCAwMGYxOTAyYjQ0YzEzOTU3Yjg3MDQ4YzljZDRlYzUxZDZlYjcxYTYyLi42NDMy
ZmEzZGRkZGFhM2VmNjI0NzZhZjFlOTdlMzBhM2U0OTM1Mjk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCkBAIC0xNTQsNyArMTU0LDkgQEAKICNpbmNsdWRlICJKU0V2ZW50LmNwcCIKICNp
bmNsdWRlICJKU0V2ZW50U291cmNlLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0LmNwcCIK
KyNpbmNsdWRlICJKU0ZldGNoQm9keS5jcHAiCiAjaW5jbHVkZSAiSlNGZXRjaEhlYWRlcnMuY3Bw
IgorI2luY2x1ZGUgIkpTRmV0Y2hSZXF1ZXN0LmNwcCIKICNpbmNsdWRlICJKU0ZpbGUuY3BwIgog
I2luY2x1ZGUgIkpTRmlsZUVycm9yLmNwcCIKICNpbmNsdWRlICJKU0ZpbGVFeGNlcHRpb24uY3Bw
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggM2VlYjk5MzU4MWZjZTJkZWU0NDA5
NWNmZWU1NzQ1ZmYyMzFmZmY3ZS4uZjZiYWIzMzJlMzkyNGUxNzRhMWFjYmRkMjVmMWVmY2M4NWI0
MzgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC03OSw3ICs3OSw5IEBAIE5P
Tl9TVkdfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleU5lZWRlZEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hCb2R5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZldGNoL0ZldGNo
SGVhZGVycy5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3Qu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZEJ1dHRvbi5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5pZGwgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkZmY5MDAzZTNkNjY3MzUz
OTJjM2JlZTJiYWY1YmIxNzJjYTI5YWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKQEAgLTAsMCArMSwxNjkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1l
cyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICog
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRmV0Y2hCb2R5LmgiCisKKyNpZiBFTkFCTEUoRkVUQ0hfQVBJKQorCisjaW5jbHVk
ZSAiRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJK
U0Jsb2IuaCIKKyNpbmNsdWRlICJKU0RPTUZvcm1EYXRhLmgiCisjaW5jbHVkZSA8cnVudGltZS9K
U09OT2JqZWN0Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBGZXRjaEJvZHk6Omlu
aXRCb2R5KGNvbnN0IERpY3Rpb25hcnkmIGluaXQpCit7CisgICAgSlNDOjpKU1ZhbHVlIHZhbHVl
OworICAgIGlmICghaW5pdC5nZXQoImJvZHkiLCB2YWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU0Jsb2I6OmluZm8oKSkpIHsKKyAgICAgICAg
bV90eXBlID0gVHlwZTo6QmxvYjsKKyAgICAgICAgbV9ibG9iID0gSlNCbG9iOjp0b1dyYXBwZWQo
dmFsdWUpOworICAgICAgICBtX21pbWVUeXBlID0gbV9ibG9iLT50eXBlKCk7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNET01Gb3JtRGF0YTo6
aW5mbygpKSkgeworICAgICAgICBtX3R5cGUgPSBUeXBlOjpGb3JtRGF0YTsKKyAgICAgICAgbV9m
b3JtRGF0YT0gSlNET01Gb3JtRGF0YTo6dG9XcmFwcGVkKHZhbHVlKTsKKyAgICAgICAgLy8gRklY
TUU6IEhhbmRsZSB0aGUgYm91bmRhcnkgcGFyYW1ldGVyIG9mIG11bHRpcGFydC9mb3JtLWRhdGEg
TUlNRSB0eXBlLgorICAgICAgICBtX21pbWVUeXBlID0gQVNDSUlMaXRlcmFsKCJtdWx0aXBhcnQv
Zm9ybS1kYXRhIik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBpZiAodmFsdWUu
aXNTdHJpbmcoKSkgeworICAgICAgICBtX3R5cGUgPSBUeXBlOjpUZXh0OworICAgICAgICBtX3Rl
eHQgPSB2YWx1ZS50b1dURlN0cmluZyhpbml0LmV4ZWNTdGF0ZSgpKTsKKyAgICAgICAgbV9taW1l
VHlwZSA9IEFTQ0lJTGl0ZXJhbCgidGV4dC9wbGFpbjtjaGFyc2V0PVVURi04Iik7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgRmV0Y2hC
b2R5OjpjbGVhcigpCit7CisgICAgbV9ibG9iID0gbnVsbHB0cjsKKyAgICBtX2Zvcm1EYXRhID0g
bnVsbHB0cjsKKyAgICBtX3RleHQgPSBTdHJpbmcoKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUg
VD4gaW5saW5lIGJvb2wgRmV0Y2hCb2R5Ojpwcm9jZXNzSWZFbXB0eU9yRGlzdHVyYmVkKERPTVBy
b21pc2U8VCwgRXhjZXB0aW9uQ29kZT4mIHByb21pc2UpCit7CisgICAgaWYgKG1fdHlwZSA9PSBU
eXBlOjpOb25lKSB7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShUKCkpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoaXNEaXN0dXJiZWQoKSkgeworICAgICAgICBwcm9t
aXNlLnJlamVjdChUeXBlRXJyb3IpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAg
bV9kaXN0dXJiZWRGbGFnID0gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgRmV0
Y2hCb2R5OjphcnJheUJ1ZmZlcihBcnJheUJ1ZmZlclByb21pc2UmJiBwcm9taXNlKQoreworICAg
IGlmIChwcm9jZXNzSWZFbXB0eU9yRGlzdHVyYmVkKHByb21pc2UpKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAobV90eXBlID09IFR5cGU6OlRleHQpIHsKKyAgICAgICAgQ1N0cmluZyBkYXRh
ID0gVVRGOEVuY29kaW5nKCkuZW5jb2RlKG1fdGV4dCwgRW50aXRpZXNGb3JVbmVuY29kYWJsZXMp
OworICAgICAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4gdmFsdWUoZGF0YS5sZW5ndGgoKSk7Cisg
ICAgICAgIC8vIEZJWE1FOiByZWZhY3RvciB0aGlzIGNvZGUuCisgICAgICAgIG1lbWNweSh2YWx1
ZS5kYXRhKCksIGRhdGEuZGF0YSgpLCBkYXRhLmxlbmd0aCgpKTsKKyAgICAgICAgcHJvbWlzZS5y
ZXNvbHZlKFdURk1vdmUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBG
SVhNRTogU3VwcG9ydCBvdGhlciB0eXBlcy4KKyAgICBwcm9taXNlLnJlamVjdCgwKTsKK30KKwor
dm9pZCBGZXRjaEJvZHk6OmZvcm1EYXRhKEZvcm1EYXRhUHJvbWlzZSYmIHByb21pc2UpCit7Cisg
ICAgaWYgKG1fdHlwZSA9PSBUeXBlOjpOb25lIHx8IGlzRGlzdHVyYmVkKCkpIHsKKyAgICAgICAg
cHJvbWlzZS5yZWplY3QoVHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBt
X2Rpc3R1cmJlZEZsYWcgPSB0cnVlOworCisgICAgLy8gRklYTUU6IFN1cHBvcnQgb3RoZXIgdHlw
ZXMuCisgICAgcHJvbWlzZS5yZWplY3QoMCk7Cit9CisKK3ZvaWQgRmV0Y2hCb2R5OjpibG9iKEJs
b2JQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBpZiAobV90eXBlID09IFR5cGU6Ok5vbmUpIHsK
KyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKG51bGxwdHIpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKHByb2Nlc3NJZkVtcHR5T3JEaXN0dXJiZWQocHJvbWlzZSkpCisgICAgICAg
IHJldHVybjsKKworICAgIC8vIEZJWE1FOiBTdXBwb3J0IG90aGVyIHR5cGVzLgorICAgIHByb21p
c2UucmVqZWN0KDApOworfQorCit2b2lkIEZldGNoQm9keTo6dGV4dChUZXh0UHJvbWlzZSYmIHBy
b21pc2UpCit7CisgICAgaWYgKHByb2Nlc3NJZkVtcHR5T3JEaXN0dXJiZWQocHJvbWlzZSkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6VGV4dCkgeworICAgICAg
ICBwcm9taXNlLnJlc29sdmUobV90ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAv
LyBGSVhNRTogU3VwcG9ydCBvdGhlciB0eXBlcy4KKyAgICBwcm9taXNlLnJlamVjdCgwKTsKK30K
Kwordm9pZCBGZXRjaEJvZHk6Ompzb24oSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU09OUHJvbWlz
ZSYmIHByb21pc2UpCit7CisgICAgaWYgKGlzRGlzdHVyYmVkKCkpIHsKKyAgICAgICAgcHJvbWlz
ZS5yZWplY3QoVHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX2Rpc3R1
cmJlZEZsYWcgPSB0cnVlOworICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6VGV4dCkgeworICAgICAg
ICBKU0M6OkpTVmFsdWUgdmFsdWUgPSBKU0M6OkpTT05QYXJzZSgmc3RhdGUsIG1fdGV4dCk7Cisg
ICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChTWU5UQVhfRVJS
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKHZhbHVlKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBGSVhNRTogU3VwcG9ydCBvdGhlciB0eXBlcy4K
KyAgICBwcm9taXNlLnJlamVjdCgwKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKEZFVENI
X0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIxZjlhZjE1MzEzODIwNGQ1YzIyOGZhOTA1ZjU0MzcxNzE5YzI4MTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oCkBAIC0wLDAgKzEs
OTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IEZldGNoQm9keV9oCisjZGVmaW5lIEZldGNoQm9keV9oCisKKyNpZiBFTkFCTEUoRkVUQ0hfQVBJ
KQorCisjaW5jbHVkZSAiQmxvYi5oIgorI2luY2x1ZGUgIkRPTUZvcm1EYXRhLmgiCisjaW5jbHVk
ZSAiSlNET01Qcm9taXNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGljdGlv
bmFyeTsKK3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CisKK2NsYXNzIEZldGNoQm9keSA6IHB1
YmxpYyBSZWZDb3VudGVkPEZldGNoQm9keT4geworcHVibGljOgorICAgIHZpcnR1YWwgfkZldGNo
Qm9keSgpIHsgfQorCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09
IFR5cGU6Ok5vbmU7IH0KKyAgICBib29sIGlzRGlzdHVyYmVkKCkgY29uc3QgeyByZXR1cm4gbV9k
aXN0dXJiZWRGbGFnOyB9CisgICAgdm9pZCBzZXREaXN0dXJiZWQoKSB7IG1fZGlzdHVyYmVkRmxh
ZyA9IHRydWU7IH0KKyAgICB2b2lkIGNsZWFyKCk7CisKKyAgICB0eXBlZGVmIERPTVByb21pc2U8
VmVjdG9yPHVuc2lnbmVkIGNoYXI+LCBFeGNlcHRpb25Db2RlPiBBcnJheUJ1ZmZlclByb21pc2U7
CisgICAgdm9pZCBhcnJheUJ1ZmZlcihBcnJheUJ1ZmZlclByb21pc2UmJik7CisKKyAgICB0eXBl
ZGVmIERPTVByb21pc2U8UmVmUHRyPERPTUZvcm1EYXRhPiwgRXhjZXB0aW9uQ29kZT4gRm9ybURh
dGFQcm9taXNlOworICAgIHZvaWQgZm9ybURhdGEoRm9ybURhdGFQcm9taXNlJiYpOworCisgICAg
dHlwZWRlZiBET01Qcm9taXNlPFJlZlB0cjxCbG9iPiwgRXhjZXB0aW9uQ29kZT4gQmxvYlByb21p
c2U7CisgICAgdm9pZCBibG9iKEJsb2JQcm9taXNlJiYpOworCisgICAgdHlwZWRlZiBET01Qcm9t
aXNlPFN0cmluZywgRXhjZXB0aW9uQ29kZT4gVGV4dFByb21pc2U7CisgICAgdm9pZCB0ZXh0KFRl
eHRQcm9taXNlJiYpOworCisgICAgdHlwZWRlZiBET01Qcm9taXNlPEpTQzo6SlNWYWx1ZSwgRXhj
ZXB0aW9uQ29kZT4gSlNPTlByb21pc2U7CisgICAgdm9pZCBqc29uKEpTQzo6RXhlY1N0YXRlJiwg
SlNPTlByb21pc2UmJik7CisKKyAgICB2b2lkIHNldE1pbWVUeXBlKGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUpIHsgbV9taW1lVHlwZSA9IG1pbWVUeXBlOyB9CisgICAgU3RyaW5nIG1pbWVUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9taW1lVHlwZTsgfQorCitwcm90ZWN0ZWQ6CisgICAgYm9vbCBpbml0
Qm9keShjb25zdCBEaWN0aW9uYXJ5Jik7CisKK3ByaXZhdGU6CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gYm9vbCBwcm9jZXNzSWZFbXB0eU9yRGlzdHVyYmVkKERPTVByb21pc2U8VCwgRXhjZXB0
aW9uQ29kZT4mKTsKKworICAgIGVudW0gY2xhc3MgVHlwZSB7CisgICAgICAgIE5vbmUsCisgICAg
ICAgIFRleHQsCisgICAgICAgIEJsb2IsCisgICAgICAgIEZvcm1EYXRhCisgICAgfTsKKworICAg
IFR5cGUgbV90eXBlID0gVHlwZTo6Tm9uZTsKKyAgICBTdHJpbmcgbV9taW1lVHlwZTsKKyAgICBi
b29sIG1fZGlzdHVyYmVkRmxhZyA9IGZhbHNlOworCisgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0
IGZvciBCdWZmZXJTb3VyY2UgYW5kIFVSTFNlYXJjaFBhcmFtcy4KKyAgICBSZWZQdHI8QmxvYj4g
bV9ibG9iOworICAgIFJlZlB0cjxET01Gb3JtRGF0YT4gbV9mb3JtRGF0YTsKKyAgICBTdHJpbmcg
bV90ZXh0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KEZFVENIX0FQSSkKKworI2VuZGlmIC8vIEZldGNoQm9keV9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoQm9keS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM0Yjk3MWUyNWY4NGIyNjY5NDJh
YjZlMGNkMzY0ZTg5NWNhMTIzMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmlkbApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IENhbm9uIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YK
KyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPUZFVENIX0FQ
SSwKKyAgICBHbG9iYWxDb250ZXh0PURPTVdpbmRvdyZXb3JrZXJHbG9iYWxTY29wZSwKKyAgICBJ
bnRlcmZhY2VOYW1lPUJvZHksCisgICAgTm9JbnRlcmZhY2VPYmplY3QKK10KK2ludGVyZmFjZSBG
ZXRjaEJvZHkgeworICAgIFtJbXBsZW1lbnRlZEFzPWlzRGlzdHVyYmVkXSByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiBib2R5VXNlZDsKKyAgICBbTmV3T2JqZWN0XSBQcm9taXNlIGFycmF5QnVm
ZmVyKCk7CisgICAgW05ld09iamVjdF0gUHJvbWlzZSBibG9iKCk7CisgICAgW05ld09iamVjdF0g
UHJvbWlzZSBmb3JtRGF0YSgpOworICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSwgTmV3T2JqZWN0
XSBQcm9taXNlIGpzb24oKTsKKyAgICBbTmV3T2JqZWN0XSBQcm9taXNlIHRleHQoKTsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAKaW5kZXggZGY5
MTAyMzZkZTY4MjgwNWUzYmUyNmJiZjE0ZDVhNTU5NDZkYWZiMC4uMjkzZmVhNWQyZjJhYzZkOTBi
MjY3NDMxZDMyNzZiZDU2ODdiZDJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaEhlYWRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hIZWFkZXJzLmNwcApAQCAtMTAxLDEyICsxMDEsMTYgQEAgc3RhdGljIGJvb2wgaXNT
aW1wbGVIZWFkZXIoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogICAg
IH0KIH0KIAotc3RhdGljIGJvb2wgY2FuV3JpdGVIZWFkZXIoY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIHZhbHVlLCBGZXRjaEhlYWRlcnM6Okd1YXJkIGd1YXJkKQorc3RhdGljIGJv
b2wgY2FuV3JpdGVIZWFkZXIoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVl
LCBGZXRjaEhlYWRlcnM6Okd1YXJkIGd1YXJkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBp
ZiAoIWlzVmFsaWRIVFRQVG9rZW4obmFtZSkgfHwgIWlzVmFsaWRIVFRQSGVhZGVyVmFsdWUodmFs
dWUpKQorICAgIGlmICghaXNWYWxpZEhUVFBUb2tlbihuYW1lKSB8fCAhaXNWYWxpZEhUVFBIZWFk
ZXJWYWx1ZSh2YWx1ZSkpIHsKKyAgICAgICAgZWMgPSBUeXBlRXJyb3I7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBpZiAoZ3VhcmQgPT0gRmV0Y2hIZWFkZXJzOjpHdWFyZDo6SW1tdXRhYmxl
KQorICAgIH0KKyAgICBpZiAoZ3VhcmQgPT0gRmV0Y2hIZWFkZXJzOjpHdWFyZDo6SW1tdXRhYmxl
KSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQogICAgIGlmIChndWFyZCA9PSBGZXRjaEhlYWRlcnM6Okd1YXJkOjpSZXF1ZXN0ICYmIGlzRm9y
YmlkZGVuSGVhZGVyTmFtZShuYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChn
dWFyZCA9PSBGZXRjaEhlYWRlcnM6Okd1YXJkOjpSZXF1ZXN0Tm9Db3JzICYmICFpc1NpbXBsZUhl
YWRlcihuYW1lLCB2YWx1ZSkpCkBAIC0xMTksMTkgKzEyMywxNSBAQCBzdGF0aWMgYm9vbCBjYW5X
cml0ZUhlYWRlcihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIEZldGNo
SGVhZGVycwogdm9pZCBGZXRjaEhlYWRlcnM6OmFwcGVuZChjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFN0cmluZyBub3Jt
YWxpemVkVmFsdWUgPSBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUVFBTcGFjZXModmFsdWUpOwot
ICAgIGlmICghY2FuV3JpdGVIZWFkZXIobmFtZSwgbm9ybWFsaXplZFZhbHVlLCBtX2d1YXJkKSkg
ewotICAgICAgICBlYyA9IFR5cGVFcnJvcjsKKyAgICBpZiAoIWNhbldyaXRlSGVhZGVyKG5hbWUs
IG5vcm1hbGl6ZWRWYWx1ZSwgbV9ndWFyZCwgZWMpKQogICAgICAgICByZXR1cm47Ci0gICAgfQog
ICAgIG1faGVhZGVycy5hZGQobmFtZSwgbm9ybWFsaXplZFZhbHVlKTsKIH0KIAogdm9pZCBGZXRj
aEhlYWRlcnM6OnJlbW92ZShjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewotICAgIGlmICghY2FuV3JpdGVIZWFkZXIobmFtZSwgU3RyaW5nKCksIG1fZ3VhcmQpKSB7Ci0g
ICAgICAgIGVjID0gVHlwZUVycm9yOworICAgIGlmICghY2FuV3JpdGVIZWFkZXIobmFtZSwgU3Ry
aW5nKCksIG1fZ3VhcmQsIGVjKSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KICAgICBtX2hlYWRl
cnMucmVtb3ZlKG5hbWUpOwogfQogCkBAIC0xNTYsMTMgKzE1NiwyNiBAQCBib29sIEZldGNoSGVh
ZGVyczo6aGFzKGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB2
b2lkIEZldGNoSGVhZGVyczo6c2V0KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2
YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgU3RyaW5nIG5vcm1hbGl6ZWRWYWx1ZSA9
IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRUUFNwYWNlcyh2YWx1ZSk7Ci0gICAgaWYgKCFjYW5X
cml0ZUhlYWRlcihuYW1lLCBub3JtYWxpemVkVmFsdWUsIG1fZ3VhcmQpKSB7Ci0gICAgICAgIGVj
ID0gVHlwZUVycm9yOworICAgIGlmICghY2FuV3JpdGVIZWFkZXIobmFtZSwgbm9ybWFsaXplZFZh
bHVlLCBtX2d1YXJkLCBlYykpCiAgICAgICAgIHJldHVybjsKLSAgICB9CiAgICAgbV9oZWFkZXJz
LnNldChuYW1lLCBub3JtYWxpemVkVmFsdWUpOwogfQogCit2b2lkIEZldGNoSGVhZGVyczo6Zmls
bChjb25zdCBGZXRjaEhlYWRlcnMmIGhlYWRlcnMpCit7CisgICAgQVNTRVJUKG1fZ3VhcmQgIT0g
R3VhcmQ6OkltbXV0YWJsZSk7CisKKyAgICBFeGNlcHRpb25Db2RlIGVjOworICAgIGZvciAoYXV0
byBpdGVyID0gaGVhZGVycy5tX2hlYWRlcnMuYmVnaW4oKTsgaXRlciAhPSBoZWFkZXJzLm1faGVh
ZGVycy5lbmQoKTsgKytpdGVyKSB7CisgICAgICAgIGlmIChjYW5Xcml0ZUhlYWRlcihpdGVyLT5r
ZXksIGl0ZXItPnZhbHVlLCBtX2d1YXJkLCBlYykpIHsKKyAgICAgICAgICAgIGlmIChpdGVyLT5r
ZXlBc0hUVFBIZWFkZXJOYW1lKQorICAgICAgICAgICAgICAgIG1faGVhZGVycy5hZGQoaXRlci0+
a2V5QXNIVFRQSGVhZGVyTmFtZS52YWx1ZSgpLCBpdGVyLT52YWx1ZSk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgbV9oZWFkZXJzLmFkZChpdGVyLT5rZXksIGl0ZXItPnZhbHVl
KTsKKyAgICAgICAgfQorICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKEZFVENIX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoSGVhZGVycy5oCmluZGV4IGQ1YjBhNTZmYjA2NmFmY2E4YjNmOTBmODJlZWJhODNkMDIxZTVl
ZWEuLjQ0MWMyOTc5NWFhMDhjYzFjZjc5NDYzOTRmNWUxMTI2NGRkZjFjZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuaApAQCAtNTYsNiArNTYsMTAgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2
YWx1ZSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBpbml0aWFsaXplV2l0aChjb25zdCBG
ZXRjaEhlYWRlcnMqLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBmaWxsKGNvbnN0IEZldGNo
SGVhZGVycyYpOworCisgICAgU3RyaW5nIGZhc3RHZXQoSFRUUEhlYWRlck5hbWUgbmFtZSkgY29u
c3QgeyByZXR1cm4gbV9oZWFkZXJzLmdldChuYW1lKTsgfQorICAgIHZvaWQgZmFzdFNldChIVFRQ
SGVhZGVyTmFtZSBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKSB7IG1faGVhZGVycy5zZXQobmFt
ZSwgdmFsdWUpOyB9CiAKIHByaXZhdGU6CiAgICAgRmV0Y2hIZWFkZXJzKEd1YXJkIGd1YXJkKSA6
IG1fZ3VhcmQoZ3VhcmQpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaEhlYWRlcnMuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
SGVhZGVycy5qcwppbmRleCAxNTBiMjUwYjVjZTJjNDRkYjIzMDM4MzdkYzA0OTg2YjM5YWNhNjU5
Li4wMzA5ZmVkN2ZjODAyYWM5YzdmZjcwZDFhNGFlZWM5NjNkOGRlY2YwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5qcwpAQCAtNDcsNiArNDcsNyBAQCBm
dW5jdGlvbiBpbml0aWFsaXplRmV0Y2hIZWFkZXJzKGhlYWRlcnNJbml0KQogICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJoZWFkZXJzSW5pdCBzZXF1ZW5jZSBpdGVtcyBzaG91
bGQgY29udGFpbiB0d28gdmFsdWVzIik7CiAgICAgICAgICAgICB0aGlzLkBhcHBlbmRGcm9tSlMo
aGVhZGVyWzBdLCBoZWFkZXJbMV0pOwogICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOwog
ICAgIH0KIAogICAgIEBPYmplY3QuQGdldE93blByb3BlcnR5TmFtZXMoaGVhZGVyc0luaXQpLmZv
ckVhY2goKG5hbWUpID0+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoT3B0
aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFlNWU4ZDU4NTBmYzBkMTJjOTk2ZGNlYWJjMTE5ZmY2ZWFiZjVk
ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
T3B0aW9ucy5oCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IENh
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
QU1BR0UuCisgKi8KKworI2lmbmRlZiBGZXRjaE9wdGlvbnNfaAorI2RlZmluZSBGZXRjaE9wdGlv
bnNfaAorCisjaWYgRU5BQkxFKEZFVENIX0FQSSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBGZXRjaE9wdGlvbnMgeworcHVibGljOgorICAgIGVudW0gY2xhc3MgVHlwZSB7CisgICAg
ICAgIERlZmF1bHQsCisgICAgICAgIEF1ZGlvLAorICAgICAgICBGb250LAorICAgICAgICBJbWFn
ZSwKKyAgICAgICAgU2NyaXB0LAorICAgICAgICBTdHlsZSwKKyAgICAgICAgVHJhY2ssCisgICAg
ICAgIFZpZGVvCisgICAgfTsKKyAgICBlbnVtIGNsYXNzIERlc3RpbmF0aW9uIHsKKyAgICAgICAg
RGVmYXVsdCwKKyAgICAgICAgRG9jdW1lbnQsCisgICAgICAgIFNoYXJlZFdvcmtlciwKKyAgICAg
ICAgU3VicmVzb3VyY2UsCisgICAgICAgIFVua25vd24sCisgICAgICAgIFdvcmtlcgorICAgIH07
CisgICAgZW51bSBjbGFzcyBNb2RlIHsKKyAgICAgICAgTm9Db3JzLAorICAgICAgICBOYXZpZ2F0
ZSwKKyAgICAgICAgU2FtZU9yaWdpbiwKKyAgICAgICAgQ29ycworICAgIH07CisgICAgZW51bSBj
bGFzcyBDcmVkZW50aWFscyB7CisgICAgICAgIE9taXQsCisgICAgICAgIFNhbWVPcmlnaW4sCisg
ICAgICAgIEluY2x1ZGUKKyAgICB9OworICAgIGVudW0gY2xhc3MgQ2FjaGUgeworICAgICAgICBE
ZWZhdWx0LAorICAgICAgICBOb1N0b3JlLAorICAgICAgICBSZWxvYWQsCisgICAgICAgIE5vQ2Fj
aGUsCisgICAgICAgIEZvcmNlQ2FjaGUsCisgICAgfTsKKyAgICBlbnVtIGNsYXNzIFJlZGlyZWN0
IHsKKyAgICAgICAgRm9sbG93LAorICAgICAgICBFcnJvciwKKyAgICAgICAgTWFudWFsCisgICAg
fTsKKyAgICBlbnVtIGNsYXNzIFJlZmVycmVyUG9saWN5IHsKKyAgICAgICAgRW1wdHksCisgICAg
ICAgIE5vUmVmZXJyZXIsCisgICAgICAgIE5vUmVmZXJyZXJXaGVuRG93bmdyYWRlLAorICAgICAg
ICBPcmlnaW5Pbmx5LAorICAgICAgICBPcmlnaW5XaGVuQ3Jvc3NPcmlnaW4sCisgICAgICAgIFVu
c2FmZVVSTAorICAgIH07CisKKyAgICBGZXRjaE9wdGlvbnMoKSB7IH0KKyAgICBGZXRjaE9wdGlv
bnMoVHlwZSwgRGVzdGluYXRpb24sIE1vZGUsIENyZWRlbnRpYWxzLCBDYWNoZSwgUmVkaXJlY3Qs
IFJlZmVycmVyUG9saWN5KTsKKworICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZTsgfQorICAgIERlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0
aW5hdGlvbjsgfQorICAgIE1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZTsgfQorICAg
IENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzKCkgY29uc3QgeyByZXR1cm4gbV9jcmVkZW50aWFsczsg
fQorICAgIENhY2hlIGNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZTsgfQorICAgIFJlZGly
ZWN0IHJlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gbV9yZWRpcmVjdDsgfQorICAgIFJlZmVycmVy
UG9saWN5IHJlZmVycmVyUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9yZWZlcnJlclBvbGljeTsg
fQorCisgICAgdm9pZCBzZXRUeXBlKFR5cGUgdHlwZSkgeyBtX3R5cGUgPSB0eXBlOyB9CisgICAg
dm9pZCBzZXREZXN0aW5hdGlvbihEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbikgeyBtX2Rlc3RpbmF0
aW9uID0gZGVzdGluYXRpb247IH0KKyAgICB2b2lkIHNldE1vZGUoTW9kZSBtb2RlKSB7IG1fbW9k
ZSA9IG1vZGU7IH0KKyAgICB2b2lkIHNldENyZWRlbnRpYWxzKENyZWRlbnRpYWxzIGNyZWRlbnRp
YWxzKSB7IG1fY3JlZGVudGlhbHMgPSBjcmVkZW50aWFsczsgfQorICAgIHZvaWQgc2V0Q2FjaGUo
Q2FjaGUgY2FjaGUpIHsgbV9jYWNoZSA9IGNhY2hlOyB9CisgICAgdm9pZCBzZXRSZWRpcmVjdChS
ZWRpcmVjdCByZWRpcmVjdCkgeyBtX3JlZGlyZWN0ID0gcmVkaXJlY3Q7IH0KKyAgICB2b2lkIHNl
dFJlZmVycmVyUG9saWN5KFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5KSB7IG1fcmVmZXJy
ZXJQb2xpY3kgPSByZWZlcnJlclBvbGljeTsgfQorCitwcml2YXRlOgorICAgIFR5cGUgbV90eXBl
ID0gVHlwZTo6RGVmYXVsdDsKKyAgICBEZXN0aW5hdGlvbiBtX2Rlc3RpbmF0aW9uID0gRGVzdGlu
YXRpb246OkRlZmF1bHQ7CisgICAgTW9kZSBtX21vZGUgPSBNb2RlOjpOb0NvcnM7CisgICAgQ3Jl
ZGVudGlhbHMgbV9jcmVkZW50aWFscyA9IENyZWRlbnRpYWxzOjpPbWl0OworICAgIENhY2hlIG1f
Y2FjaGUgPSBDYWNoZTo6RGVmYXVsdDsKKyAgICBSZWRpcmVjdCBtX3JlZGlyZWN0ID0gUmVkaXJl
Y3Q6OiBGb2xsb3c7CisgICAgUmVmZXJyZXJQb2xpY3kgbV9yZWZlcnJlclBvbGljeSA9IFJlZmVy
cmVyUG9saWN5OjpFbXB0eTsKK307CisKK2lubGluZSBGZXRjaE9wdGlvbnM6OkZldGNoT3B0aW9u
cyhUeXBlIHR5cGUsIERlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBNb2RlIG1vZGUsIENyZWRlbnRp
YWxzIGNyZWRlbnRpYWxzLCBDYWNoZSBjYWNoZSwgUmVkaXJlY3QgcmVkaXJlY3QsIFJlZmVycmVy
UG9saWN5IHJlZmVycmVyUG9saWN5KQorICAgIDogbV90eXBlKHR5cGUpCisgICAgLCBtX2Rlc3Rp
bmF0aW9uKGRlc3RpbmF0aW9uKQorICAgICwgbV9tb2RlKG1vZGUpCisgICAgLCBtX2NyZWRlbnRp
YWxzKGNyZWRlbnRpYWxzKQorICAgICwgbV9jYWNoZShjYWNoZSkKKyAgICAsIG1fcmVkaXJlY3Qo
cmVkaXJlY3QpCisgICAgLCBtX3JlZmVycmVyUG9saWN5KHJlZmVycmVyUG9saWN5KQoreworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRkVUQ0hfQVBJKQor
CisjZW5kaWYgLy8gRmV0Y2hPcHRpb25zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NmUwZGIwYjhjYjlmOGUxZTQ4ODI1NTBl
ZjgwNjY4YWQwOGNmYzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNDI2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IENhbm9uIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YK
KyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkZldGNoUmVxdWVzdC5oIgorCisjaWYgRU5BQkxFKEZFVENIX0FQSSkKKworI2luY2x1ZGUg
IkRpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSFRU
UFBhcnNlcnMuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWZQdHI8RmV0
Y2hSZXF1ZXN0PiBGZXRjaFJlcXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBGZXRjaFJlcXVlc3QqIGlucHV0LCBjb25zdCBEaWN0aW9uYXJ5JiBpbml0LCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBBU1NFUlQoaW5wdXQpOworCisgICAgaWYgKGlucHV0LT5p
c0Rpc3R1cmJlZCgpKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CisgICAgUmVmUHRyPEZldGNoUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0
UmVmKCpuZXcgRmV0Y2hSZXF1ZXN0KCppbnB1dCkpOworCisgICAgaWYgKCFyZXF1ZXN0LT5pbml0
KGNvbnRleHQsIGluaXQpKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpbnB1dC0+c2V0RGlzdHVyYmVkKCk7CisgICAgaW5w
dXQtPmNsZWFyKCk7CisKKyAgICByZXR1cm4gcmVxdWVzdDsKK30KKworUmVmUHRyPEZldGNoUmVx
dWVzdD4gRmV0Y2hSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IERpY3Rpb25hcnkmIGluaXQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIFJlZlB0cjxGZXRjaFJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdFJlZigq
bmV3IEZldGNoUmVxdWVzdCk7CisKKyAgICAvLyBGSVhNRTogVGlnaHRlbiB0aGUgVVJMIHBhcnNp
bmcgYWxnb3JpdGhtIGFjY29yZGluZyBodHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNl
cHQtdXJsLXBhcnNlci4KKyAgICBVUkwgcmVxdWVzdFVSTCA9IGNvbnRleHQuY29tcGxldGVVUkwo
dXJsKTsKKyAgICBpZiAoIXJlcXVlc3RVUkwuaXNWYWxpZCgpIHx8ICFyZXF1ZXN0VVJMLnVzZXIo
KS5pc0VtcHR5KCkgfHwgIXJlcXVlc3RVUkwucGFzcygpLmlzRW1wdHkoKSkgeworICAgICAgICBl
YyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJlcXVl
c3QtPm1fcmVxdWVzdC5zZXRVUkwocmVxdWVzdFVSTCk7CisgICAgcmVxdWVzdC0+bV9vcHRpb25z
LnNldE1vZGUoRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsKKyAgICByZXF1ZXN0LT5tX29wdGlv
bnMuc2V0Q3JlZGVudGlhbHMoRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdCk7CisKKyAg
ICBpZiAoIXJlcXVlc3QtPmluaXQoY29udGV4dCwgaW5pdCkpIHsKKyAgICAgICAgZWMgPSBUeXBl
RXJyb3I7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiByZXF1
ZXN0OworfQorCitGZXRjaFJlcXVlc3Q6OkZldGNoUmVxdWVzdCgpCisgICAgOiBtX3JlZmVycmVy
KCJjbGllbnQiKQoreworfQorCitGZXRjaFJlcXVlc3Q6OkZldGNoUmVxdWVzdChjb25zdCBGZXRj
aFJlcXVlc3QmIHJlcXVlc3QpCisgICAgOiBtX2hlYWRlcnMocmVxdWVzdC5tX2hlYWRlcnMpCisg
ICAgLCBtX3JlcXVlc3QocmVxdWVzdC5tX3JlcXVlc3QpCisgICAgLCBtX29wdGlvbnMocmVxdWVz
dC5tX29wdGlvbnMpCisgICAgLCBtX3JlZmVycmVyKHJlcXVlc3QubV9yZWZlcnJlcikKKyAgICAs
IG1faW50ZWdyaXR5KHJlcXVlc3QubV9pbnRlZ3JpdHkpCit7Cit9CisKK2Jvb2wgRmV0Y2hSZXF1
ZXN0Ojppbml0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IERpY3Rpb25h
cnkmIGluaXQpCit7CisgICAgLy8gRklYTUU6IFN1cHBvcnQgd2luZG93LgorICAgIEpTQzo6SlNW
YWx1ZSB3aW5kb3c7CisgICAgaWYgKGluaXQuZ2V0KCJ3aW5kb3ciLCB3aW5kb3cpKSB7CisgICAg
ICAgIGlmICghd2luZG93LmlzTnVsbCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKworICAgIFN0cmluZyB2YWx1ZTsKKyAgICBpZiAoaW5pdC5nZXQoInJlZmVycmVyIiwgdmFs
dWUpICYmICFzZXRSZWZlcnJlcihjb250ZXh0LCB2YWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmIChpbml0LmdldCgicmVmZXJyZXJQb2xpY3kiLCB2YWx1ZSkgJiYgIXNldFJl
ZmVycmVyUG9saWN5KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGlu
aXQuZ2V0KCJtb2RlIiwgdmFsdWUpICYmICFzZXRNb2RlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGlmIChtX29wdGlvbnMubW9kZSgpID09IEZldGNoT3B0aW9uczo6TW9kZTo6
TmF2aWdhdGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChpbml0LmdldCgiY3Jl
ZGVudGlhbHMiLCB2YWx1ZSkgJiYgIXNldENyZWRlbnRpYWxzKHZhbHVlKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaWYgKGluaXQuZ2V0KCJjYWNoZSIsIHZhbHVlKSAmJiAhc2V0Q2Fj
aGUodmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoaW5pdC5nZXQoInJl
ZGlyZWN0IiwgdmFsdWUpICYmICFzZXRSZWRpcmVjdCh2YWx1ZSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIGluaXQuZ2V0KCJpbnRlZ3JpdHkiLCBtX2ludGVncml0eSk7CisKKyAgICBp
ZiAoaW5pdC5nZXQoIm1ldGhvZCIsIHZhbHVlKSAmJiAhc2V0TWV0aG9kKHZhbHVlKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgRmV0Y2hIZWFkZXJzOjpHdWFyZCBndWFyZCA9IEZldGNo
SGVhZGVyczo6R3VhcmQ6OlJlcXVlc3Q7CisgICAgaWYgKG1fb3B0aW9ucy5tb2RlKCkgPT0gRmV0
Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMpIHsKKyAgICAgICAgY29uc3QgU3RyaW5nJiBtZXRob2Qg
PSBtX3JlcXVlc3QuaHR0cE1ldGhvZCgpOworICAgICAgICBpZiAoKG1ldGhvZCAhPSAiR0VUIiAm
JiBtZXRob2QgIT0gIlBPU1QiICYmIG1ldGhvZCAhPSAiSEVBRCIpIHx8ICFtX2ludGVncml0eS5p
c0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGd1YXJkID0gRmV0
Y2hIZWFkZXJzOjpHdWFyZDo6UmVxdWVzdE5vQ29yczsKKyAgICB9CisKKyAgICBSZWZQdHI8RmV0
Y2hIZWFkZXJzPiBoZWFkZXJzOworICAgIGlmICghaW5pdC5nZXQoImhlYWRlcnMiLCBoZWFkZXJz
KSkKKyAgICAgICAgaGVhZGVycyA9IFdURk1vdmUobV9oZWFkZXJzKTsKKyAgICBtX2hlYWRlcnMg
PSBGZXRjaEhlYWRlcnM6OmNyZWF0ZShndWFyZCk7CisgICAgaWYgKGhlYWRlcnMpCisgICAgICAg
IG1faGVhZGVycy0+ZmlsbCgqaGVhZGVycyk7CisKKyAgICBTdHJpbmcgdHlwZSA9IG1faGVhZGVy
cy0+ZmFzdEdldChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUpOworICAgIGlmIChpbml0Qm9k
eShpbml0KSkgeworICAgICAgICBpZiAodHlwZS5pc0VtcHR5KCkgJiYgIW1pbWVUeXBlKCkuaXNF
bXB0eSgpKSB7CisgICAgICAgICAgICB0eXBlID0gbWltZVR5cGUoKTsKKyAgICAgICAgICAgIG1f
aGVhZGVycy0+ZmFzdFNldChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUsIHR5cGUpOworICAg
ICAgICB9CisgICAgfQorICAgIHNldE1pbWVUeXBlKHR5cGUpOworCisgICAgaWYgKCFpc0VtcHR5
KCkgJiYgKG1fcmVxdWVzdC5odHRwTWV0aG9kKCkgPT0gIkdFVCIgfHwgbV9yZXF1ZXN0Lmh0dHBN
ZXRob2QoKSA9PSAiSEVBRCIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworCitib29sIEZldGNoUmVxdWVzdDo6c2V0UmVmZXJyZXIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiByZWZlcnJlcikKK3sKKyAgICBpZiAo
cmVmZXJyZXIuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fcmVmZXJyZXIgPSBBU0NJSUxpdGVyYWwo
Im5vLXJlZmVycmVyIik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAvLyBGSVhN
RTogVGlnaHRlbiB0aGUgVVJMIHBhcnNpbmcgYWxnb3JpdGhtIGFjY29yZGluZyBodHRwczovL3Vy
bC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtdXJsLXBhcnNlci4KKyAgICBVUkwgcmVmZXJyZXJV
UkwgPSBjb250ZXh0LmNvbXBsZXRlVVJMKHJlZmVycmVyKTsKKyAgICBpZiAoIXJlZmVycmVyVVJM
LmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gRklYTUU6IHJlZmVy
cmVyIHNob3VsZCBiZSBhIG5vbiByZWxhdGl2ZSBVUkwuCisgICAgaWYgKHJlZmVycmVyVVJMLnBy
b3RvY29sKCkgPT0gImFib3V0IiAmJiByZWZlcnJlclVSTC5wYXRoKCkuY29udGFpbnMoImNsaWVu
dCIpKSB7CisgICAgICAgIG1fcmVmZXJyZXIgPSBBU0NJSUxpdGVyYWwoImNsaWVudCIpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIShjb250ZXh0LnNlY3VyaXR5T3Jp
Z2luKCkgJiYgY29udGV4dC5zZWN1cml0eU9yaWdpbigpLT5jYW5SZXF1ZXN0KHJlZmVycmVyVVJM
KSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1fcmVmZXJyZXIgPSByZWZlcnJlclVS
TC5zdHJpbmcoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBGZXRjaFJlcXVlc3Q6OnNl
dFJlZmVycmVyUG9saWN5KGNvbnN0IFN0cmluZyYgcmVmZXJyZXJQb2xpY3kpCit7CisgICAgaWYg
KHJlZmVycmVyUG9saWN5LmlzRW1wdHkoKSkKKyAgICAgICAgbV9vcHRpb25zLnNldFJlZmVycmVy
UG9saWN5KEZldGNoT3B0aW9uczo6UmVmZXJyZXJQb2xpY3k6OkVtcHR5KTsKKyAgICBlbHNlIGlm
IChyZWZlcnJlclBvbGljeSA9PSAibm8tcmVmZXJyZXIiKQorICAgICAgICBtX29wdGlvbnMuc2V0
UmVmZXJyZXJQb2xpY3koRmV0Y2hPcHRpb25zOjpSZWZlcnJlclBvbGljeTo6Tm9SZWZlcnJlcik7
CisgICAgZWxzZSBpZiAocmVmZXJyZXJQb2xpY3kgPT0gIm5vLXJlZmVycmVyLXdoZW4tZG93bmdy
YWRlIikKKyAgICAgICAgbV9vcHRpb25zLnNldFJlZmVycmVyUG9saWN5KEZldGNoT3B0aW9uczo6
UmVmZXJyZXJQb2xpY3k6Ok5vUmVmZXJyZXJXaGVuRG93bmdyYWRlKTsKKyAgICBlbHNlIGlmIChy
ZWZlcnJlclBvbGljeSA9PSAib3JpZ2luLW9ubHkiKQorICAgICAgICBtX29wdGlvbnMuc2V0UmVm
ZXJyZXJQb2xpY3koRmV0Y2hPcHRpb25zOjpSZWZlcnJlclBvbGljeTo6T3JpZ2luT25seSk7Cisg
ICAgZWxzZSBpZiAocmVmZXJyZXJQb2xpY3kgPT0gIm9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiIp
CisgICAgICAgIG1fb3B0aW9ucy5zZXRSZWZlcnJlclBvbGljeShGZXRjaE9wdGlvbnM6OlJlZmVy
cmVyUG9saWN5OjpPcmlnaW5XaGVuQ3Jvc3NPcmlnaW4pOworICAgIGVsc2UgaWYgKHJlZmVycmVy
UG9saWN5ID09ICJ1bnNhZmUtdXJsIikKKyAgICAgICAgbV9vcHRpb25zLnNldFJlZmVycmVyUG9s
aWN5KEZldGNoT3B0aW9uczo6UmVmZXJyZXJQb2xpY3k6OlVuc2FmZVVSTCk7CisgICAgZWxzZQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgRmV0Y2hS
ZXF1ZXN0OjpzZXRNb2RlKGNvbnN0IFN0cmluZyYgbW9kZSkKK3sKKyAgICBpZiAobW9kZSA9PSAi
bmF2aWdhdGUiKQorICAgICAgICBtX29wdGlvbnMuc2V0TW9kZShGZXRjaE9wdGlvbnM6Ok1vZGU6
Ok5hdmlnYXRlKTsKKyAgICBlbHNlIGlmIChtb2RlID09ICJzYW1lLW9yaWdpbiIpCisgICAgICAg
IG1fb3B0aW9ucy5zZXRNb2RlKEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbik7CisgICAg
ZWxzZSBpZiAobW9kZSA9PSAibm8tY29ycyIpCisgICAgICAgIG1fb3B0aW9ucy5zZXRNb2RlKEZl
dGNoT3B0aW9uczo6TW9kZTo6Tm9Db3JzKTsKKyAgICBlbHNlIGlmIChtb2RlID09ICJjb3JzIikK
KyAgICAgICAgbV9vcHRpb25zLnNldE1vZGUoRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsKKyAg
ICBlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBGZXRjaFJlcXVlc3Q6OnNldENyZWRlbnRpYWxzKGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbHMp
Cit7CisgICAgaWYgKGNyZWRlbnRpYWxzID09ICJvbWl0IikKKyAgICAgICAgbV9vcHRpb25zLnNl
dENyZWRlbnRpYWxzKEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQpOworICAgIGVsc2Ug
aWYgKGNyZWRlbnRpYWxzID09ICJzYW1lLW9yaWdpbiIpCisgICAgICAgIG1fb3B0aW9ucy5zZXRD
cmVkZW50aWFscyhGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luKTsKKyAgICBl
bHNlIGlmIChjcmVkZW50aWFscyA9PSAiaW5jbHVkZSIpCisgICAgICAgIG1fb3B0aW9ucy5zZXRD
cmVkZW50aWFscyhGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlKTsKKyAgICBlbHNl
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBGZXRj
aFJlcXVlc3Q6OnNldENhY2hlKGNvbnN0IFN0cmluZyYgY2FjaGUpCit7CisgICAgaWYgKGNhY2hl
ID09ICJkZWZhdWx0IikKKyAgICAgICAgbV9vcHRpb25zLnNldENhY2hlKEZldGNoT3B0aW9uczo6
Q2FjaGU6OkRlZmF1bHQpOworICAgIGVsc2UgaWYgKGNhY2hlID09ICJuby1zdG9yZSIpCisgICAg
ICAgIG1fb3B0aW9ucy5zZXRDYWNoZShGZXRjaE9wdGlvbnM6OkNhY2hlOjpOb1N0b3JlKTsKKyAg
ICBlbHNlIGlmIChjYWNoZSA9PSAicmVsb2FkIikKKyAgICAgICAgbV9vcHRpb25zLnNldENhY2hl
KEZldGNoT3B0aW9uczo6Q2FjaGU6OlJlbG9hZCk7CisgICAgZWxzZSBpZiAoY2FjaGUgPT0gIm5v
LWNhY2hlIikKKyAgICAgICAgbV9vcHRpb25zLnNldENhY2hlKEZldGNoT3B0aW9uczo6Q2FjaGU6
Ok5vQ2FjaGUpOworICAgIGVsc2UgaWYgKGNhY2hlID09ICJmb3JjZS1jYWNoZSIpCisgICAgICAg
IG1fb3B0aW9ucy5zZXRDYWNoZShGZXRjaE9wdGlvbnM6OkNhY2hlOjpGb3JjZUNhY2hlKTsKKyAg
ICBlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBGZXRjaFJlcXVlc3Q6OnNldFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgcmVkaXJlY3QpCit7Cisg
ICAgaWYgKHJlZGlyZWN0ID09ICJmb2xsb3ciKQorICAgICAgICBtX29wdGlvbnMuc2V0UmVkaXJl
Y3QoRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93KTsKKyAgICBlbHNlIGlmIChyZWRpcmVj
dCA9PSAiZXJyb3IiKQorICAgICAgICBtX29wdGlvbnMuc2V0UmVkaXJlY3QoRmV0Y2hPcHRpb25z
OjpSZWRpcmVjdDo6RXJyb3IpOworICAgIGVsc2UgaWYgKHJlZGlyZWN0ID09ICJtYW51YWwiKQor
ICAgICAgICBtX29wdGlvbnMuc2V0UmVkaXJlY3QoRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6TWFu
dWFsKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworU3RyaW5nIEZldGNoUmVxdWVzdDo6dHlwZSgpIGNvbnN0Cit7CisgICAgc3dpdGNoICht
X29wdGlvbnMudHlwZSgpKSB7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlR5cGU6OkRlZmF1bHQ6
CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6VHlwZTo6
QXVkaW8gOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJhdWRpbyIpOworICAgIGNhc2Ug
RmV0Y2hPcHRpb25zOjpUeXBlOjpGb250IDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
Zm9udCIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpUeXBlOjpJbWFnZSA6CisgICAgICAgIHJl
dHVybiBBU0NJSUxpdGVyYWwoImltYWdlIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlR5cGU6
OlNjcmlwdCA6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInNjcmlwdCIpOworICAgIGNh
c2UgRmV0Y2hPcHRpb25zOjpUeXBlOjpTdHlsZSA6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVy
YWwoInN0eWxlIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlR5cGU6OlRyYWNrIDoKKyAgICAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgidHJhY2siKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6
VHlwZTo6VmlkZW8gOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ2aWRlbyIpOworICAg
IH07CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgRmV0Y2hSZXF1ZXN0OjpkZXN0aW5hdGlvbigpIGNvbnN0Cit7CisgICAgc3dpdGNo
IChtX29wdGlvbnMuZGVzdGluYXRpb24oKSkgeworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0
aW5hdGlvbjo6RGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIGNhc2UgRmV0
Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RG9jdW1lbnQ6CisgICAgICAgIHJldHVybiBBU0NJSUxp
dGVyYWwoImRvY3VtZW50Iik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpT
aGFyZWRXb3JrZXI6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInNoYXJlZHdvcmtlciIp
OworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U3VicmVzb3VyY2U6CisgICAg
ICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInN1YnJlc291cmNlIik7CisgICAgY2FzZSBGZXRjaE9w
dGlvbnM6OkRlc3RpbmF0aW9uOjpVbmtub3duOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFs
KCJ1bmtub3duIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpXb3JrZXI6
CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIndvcmtlciIpOworICAgIH0KKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBGZXRj
aFJlcXVlc3Q6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fb3B0aW9u
cy5yZWZlcnJlclBvbGljeSgpKSB7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlJlZmVycmVyUG9s
aWN5OjpFbXB0eToKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIGNhc2UgRmV0Y2hPcHRp
b25zOjpSZWZlcnJlclBvbGljeTo6Tm9SZWZlcnJlcjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgibm8tcmVmZXJyZXIiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6UmVmZXJyZXJQb2xp
Y3k6Ok5vUmVmZXJyZXJXaGVuRG93bmdyYWRlOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFs
KCJuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpS
ZWZlcnJlclBvbGljeTo6T3JpZ2luT25seToKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
b3JpZ2luLW9ubHkiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6UmVmZXJyZXJQb2xpY3k6Ok9y
aWdpbldoZW5Dcm9zc09yaWdpbjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgib3JpZ2lu
LXdoZW4tY3Jvc3Mtb3JpZ2luIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlJlZmVycmVyUG9s
aWN5OjpVbnNhZmVVUkw6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVuc2FmZS11cmwi
KTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitTdHJpbmcgRmV0Y2hSZXF1ZXN0OjpyZWZlcnJlcigpIGNvbnN0Cit7CisgICAgaWYg
KG1fcmVmZXJyZXIgPT0gIm5vLXJlZmVycmVyIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
ICAgIGlmIChtX3JlZmVycmVyID09ICJjbGllbnQiKQorICAgICAgICByZXR1cm4gImFib3V0OmNs
aWVudCI7CisgICAgcmV0dXJuIG1fcmVmZXJyZXI7Cit9CisKK1N0cmluZyBGZXRjaFJlcXVlc3Q6
Om1vZGUoKSBjb25zdAoreworICAgIHN3aXRjaCAobV9vcHRpb25zLm1vZGUoKSkgeworICAgIGNh
c2UgRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZToKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgibmF2aWdhdGUiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdp
bjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic2FtZS1vcmlnaW4iKTsKKyAgICBjYXNl
IEZldGNoT3B0aW9uczo6TW9kZTo6Tm9Db3JzOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFs
KCJuby1jb3JzIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnM6CisgICAgICAg
IHJldHVybiBBU0NJSUxpdGVyYWwoImNvcnMiKTsKKyAgICB9OworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEZldGNoUmVxdWVzdDo6
Y3JlZGVudGlhbHMoKSBjb25zdAoreworICAgIHN3aXRjaCAobV9vcHRpb25zLmNyZWRlbnRpYWxz
KCkpIHsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQ6CisgICAgICAg
IHJldHVybiBBU0NJSUxpdGVyYWwoIm9taXQiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q3Jl
ZGVudGlhbHM6OlNhbWVPcmlnaW46CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInNhbWUt
b3JpZ2luIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlOgor
ICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJpbmNsdWRlIik7CisgICAgfTsKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBGZXRj
aFJlcXVlc3Q6OmNhY2hlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fb3B0aW9ucy5jYWNoZSgp
KSB7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkNhY2hlOjpEZWZhdWx0OgorICAgICAgICByZXR1
cm4gQVNDSUlMaXRlcmFsKCJkZWZhdWx0Iik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkNhY2hl
OjpOb1N0b3JlOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJuby1zdG9yZSIpOworICAg
IGNhc2UgRmV0Y2hPcHRpb25zOjpDYWNoZTo6UmVsb2FkOgorICAgICAgICByZXR1cm4gQVNDSUlM
aXRlcmFsKCJyZWxvYWQiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q2FjaGU6Ok5vQ2FjaGU6
CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm5vLWNhY2hlIik7CisgICAgY2FzZSBGZXRj
aE9wdGlvbnM6OkNhY2hlOjpGb3JjZUNhY2hlOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFs
KCJmb3JjZS1jYWNoZSIpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBGZXRjaFJlcXVlc3Q6OnJlZGlyZWN0KCkgY29u
c3QKK3sKKyAgICBzd2l0Y2ggKG1fb3B0aW9ucy5yZWRpcmVjdCgpKSB7CisgICAgY2FzZSBGZXRj
aE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwo
ImZvbGxvdyIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6RXJyb3I6CisgICAg
ICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImVycm9yIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6
OlJlZGlyZWN0OjpNYW51YWw6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm1hbnVhbCIp
OworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK2Jvb2wgRmV0Y2hSZXF1ZXN0OjpzZXRNZXRob2QoY29uc3QgU3RyaW5nJiBtZXRob2Qp
Cit7CisgICAgaWYgKCFpc1ZhbGlkSFRUUFRva2VuKG1ldGhvZCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIFN0cmluZyB1cHBlciA9IG1ldGhvZC51cHBlcigpOworICAgIGlmICh1cHBl
ciA9PSAiQ09OTkVDVCIgfHwgdXBwZXIgPT0gIlRSQUNFIiB8fCB1cHBlciA9PSAiVFJBQ0siKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX3JlcXVlc3Quc2V0SFRUUE1ldGhvZCgodXBw
ZXIgPT0gIkRFTEVURSIgfHwgdXBwZXIgPT0gIkdFVCIgfHwgdXBwZXIgPT0gIkhFQUQiIHx8IHVw
cGVyID09ICJPUFRJT05TIiB8fCB1cHBlciA9PSAiUE9TVCIgfHwgdXBwZXIgPT0gIlBVVCIpID8g
dXBwZXIgOiBtZXRob2QpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JlZlB0cjxGZXRjaFJl
cXVlc3Q+IEZldGNoUmVxdWVzdDo6Y2xvbmUoRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYg
KGlzRGlzdHVyYmVkKCkpIHsKKyAgICAgICAgZWMgPSBUeXBlRXJyb3I7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGZXRjaFJlcXVlc3Qo
KnRoaXMpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KEZFVENIX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJmOGE3ODVlM2ZjMDBjNDczOWY4NDVjOTlkNWEwNDFiNmVjNWU0OWMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVz
dC5oCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5j
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FO
T04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIEZldGNoUmVxdWVzdF9oCisjZGVmaW5lIEZldGNoUmVxdWVzdF9oCisK
KyNpZiBFTkFCTEUoRkVUQ0hfQVBJKQorCisjaW5jbHVkZSAiRmV0Y2hCb2R5LmgiCisjaW5jbHVk
ZSAiRmV0Y2hIZWFkZXJzLmgiCisjaW5jbHVkZSAiRmV0Y2hPcHRpb25zLmgiCisjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgQXJyYXlCdWZmZXI7
Cit9OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEJsb2I7CitjbGFzcyBGb3JtRGF0
YTsKK2NsYXNzIERpY3Rpb25hcnk7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCit0
eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOworCitjbGFzcyBGZXRjaFJlcXVlc3QgOiBwdWJsaWMg
RmV0Y2hCb2R5IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmUHRyPEZldGNoUmVxdWVzdD4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGZXRjaFJlcXVlc3QqLCBjb25zdCBEaWN0aW9u
YXJ5JiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHN0YXRpYyBSZWZQdHI8RmV0Y2hSZXF1ZXN0PiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IERpY3Rp
b25hcnkmLCBFeGNlcHRpb25Db2RlJik7CisKKyAgICBTdHJpbmcgbWV0aG9kICgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVxdWVzdC5odHRwTWV0aG9kKCk7IH0KKyAgICBTdHJpbmcgdXJsKCkgY29uc3Qg
eyByZXR1cm4gbV9yZXF1ZXN0LnVybCgpLnN0cmluZygpOyB9CisKKyAgICBTdHJpbmcgdHlwZSgp
IGNvbnN0OworICAgIFN0cmluZyBkZXN0aW5hdGlvbigpIGNvbnN0OworICAgIFN0cmluZyByZWZl
cnJlcigpIGNvbnN0OworICAgIFN0cmluZyByZWZlcnJlclBvbGljeSgpIGNvbnN0OworICAgIFN0
cmluZyBtb2RlKCkgY29uc3Q7CisgICAgU3RyaW5nIGNyZWRlbnRpYWxzKCkgY29uc3Q7CisgICAg
U3RyaW5nIGNhY2hlKCkgY29uc3Q7CisgICAgU3RyaW5nIHJlZGlyZWN0KCkgY29uc3Q7CisgICAg
U3RyaW5nIGludGVncml0eSgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZWdyaXR5OyB9CisKKyAgICBG
ZXRjaEhlYWRlcnMqIGhlYWRlcnMoKSB7IHJldHVybiBtX2hlYWRlcnMuZ2V0KCk7IH0KKworICAg
IFJlZlB0cjxGZXRjaFJlcXVlc3Q+IGNsb25lKEV4Y2VwdGlvbkNvZGUmKTsKKworcHJpdmF0ZToK
KyAgICBGZXRjaFJlcXVlc3QoKTsKKyAgICBGZXRjaFJlcXVlc3QoY29uc3QgRmV0Y2hSZXF1ZXN0
Jik7CisKKyAgICBib29sIGluaXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IERpY3Rp
b25hcnkmKTsKKyAgICBib29sIHNldFJlZmVycmVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBj
b25zdCBTdHJpbmcmKTsKKyAgICBib29sIHNldFJlZmVycmVyUG9saWN5KGNvbnN0IFN0cmluZyYp
OworICAgIGJvb2wgc2V0TW9kZShjb25zdCBTdHJpbmcmKTsKKyAgICBib29sIHNldENyZWRlbnRp
YWxzKGNvbnN0IFN0cmluZyYpOworICAgIGJvb2wgc2V0Q2FjaGUoY29uc3QgU3RyaW5nJik7Cisg
ICAgYm9vbCBzZXRSZWRpcmVjdChjb25zdCBTdHJpbmcmKTsKKyAgICBib29sIHNldE1ldGhvZChj
b25zdCBTdHJpbmcmKTsKKworICAgIFJlZlB0cjxGZXRjaEhlYWRlcnM+IG1faGVhZGVyczsKKyAg
ICBSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OworICAgIEZldGNoT3B0aW9ucyBtX29wdGlvbnM7
CisgICAgU3RyaW5nIG1fcmVmZXJyZXI7CisgICAgU3RyaW5nIG1faW50ZWdyaXR5OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEZFVENIX0FQSSkKKwor
I2VuZGlmIC8vIEZldGNoUmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoUmVxdWVzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc3NzQwYTg0YWIxNTc4NWYwNDJlZGFhOWE1
MWE4OThlMzVkNjBlZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IENhbm9uIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YKKyAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworZW51bSBSZXF1ZXN0VHlwZSB7ICIiLCAiYXVkaW8i
LCAiZm9udCIsICJpbWFnZSIsICJzY3JpcHQiLCAic3R5bGUiLCAidHJhY2siLCAidmlkZW8iIH07
CitlbnVtIFJlcXVlc3REZXN0aW5hdGlvbiB7ICIiLCAiZG9jdW1lbnQiLCAic2hhcmVkd29ya2Vy
IiwgInN1YnJlc291cmNlIiwgInVua25vd24iLCAid29ya2VyIiB9OworZW51bSBSZXF1ZXN0TW9k
ZSB7ICJuYXZpZ2F0ZSIsICJzYW1lLW9yaWdpbiIsICJuby1jb3JzIiwgImNvcnMiIH07CitlbnVt
IFJlcXVlc3RDcmVkZW50aWFscyB7ICJvbWl0IiwgInNhbWUtb3JpZ2luIiwgImluY2x1ZGUiIH07
CitlbnVtIFJlcXVlc3RDYWNoZSB7ICJkZWZhdWx0IiwgIm5vLXN0b3JlIiwgInJlbG9hZCIsICJu
by1jYWNoZSIsICJmb3JjZS1jYWNoZSIgfTsKK2VudW0gUmVxdWVzdFJlZGlyZWN0IHsgImZvbGxv
dyIsICJlcnJvciIsICJtYW51YWwiIH07CitlbnVtIFJlZmVycmVyUG9saWN5IHsgIiIsICJuby1y
ZWZlcnJlciIsICAibm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiLCAib3JpZ2luLW9ubHkiLCAi
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiwgInVuc2FmZS11cmwiIH07CisKK1sKKyAgICBDb25k
aXRpb25hbD1GRVRDSF9BUEksCisgICAgQ29uc3RydWN0b3JDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0LAorICAgIENvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uLAorICAgIENvbnN0cnVj
dG9yKEZldGNoUmVxdWVzdCBpbnB1dCwgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBEaWN0
aW9uYXJ5IGluaXQpLAorICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyBpbnB1dCwgW0RlZmF1bHQ9
VW5kZWZpbmVkXSAgb3B0aW9uYWwgRGljdGlvbmFyeSBpbml0KSwKKyAgICBHbG9iYWxDb250ZXh0
PURPTVdpbmRvdyZXb3JrZXJHbG9iYWxTY29wZSwKKyAgICBJbnRlcmZhY2VOYW1lPVJlcXVlc3QK
K10KK2ludGVyZmFjZSBGZXRjaFJlcXVlc3QgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgbWV0aG9kOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXJsOworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBGZXRjaEhlYWRlcnMgaGVhZGVyczsKKworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBSZXF1ZXN0VHlwZSB0eXBlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSZXF1
ZXN0RGVzdGluYXRpb24gZGVzdGluYXRpb247CisgICAgW1NldHRlckNhbGxXaXRoPVNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJyZXI7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5OworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBSZXF1ZXN0TW9kZSBtb2RlOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBSZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFJlcXVlc3RDYWNoZSBjYWNoZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVzdFJl
ZGlyZWN0IHJlZGlyZWN0OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgaW50ZWdy
aXR5OworCisgICAgW1JhaXNlc0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBGZXRjaFJlcXVlc3QgY2xv
bmUoKTsKK307CitGZXRjaFJlcXVlc3QgaW1wbGVtZW50cyBGZXRjaEJvZHk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTE3Y2Iz
NjM4YmM5YjE5ZDg3M2UwYjAzMzY5NGU4NzdkNDVkZmFhMy4uODQ3NTY0Zjc5OThhM2RiOTg5ODY3
ZTM3ZmNiZWRlNWNmMjFkZDU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTU0Nyw3ICsxNTQ3LDkgQEAKIAkJNDFGMDY2RTUw
RjY0QkNGNjAwQTA3RUFDIC8qIFNjcmlwdEdsb2JhbE9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjZFMzBGNjRCQ0Y2MDBBMDdFQUMg
LyogU2NyaXB0R2xvYmFsT2JqZWN0LmNwcCAqLzsgfTsKIAkJNDFGMUQyMUYwRUYzNUMyQTAwREE4
NzUzIC8qIFNjcmlwdENhY2hlZEZyYW1lRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGMUQyMUQwRUYzNUMyQTAwREE4NzUzIC8qIFNjcmlwdENh
Y2hlZEZyYW1lRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQxRjFEMjIwMEVGMzVDMkEwMERBODc1MyAvKiBTY3JpcHRDYWNoZWRGcmFtZURh
dGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFG
MUQyMUUwRUYzNUMyQTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAgKi87IH07
CisJCTQxRjU0RjhCMUM1MEM1MDMwMDMzODQ4OCAvKiBGZXRjaEJvZHkuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGNTRGN0QxQzUwQzRGNjAwMzM4
NDg4IC8qIEZldGNoQm9keS5jcHAgKi87IH07CiAJCTQxRjU0RjhEMUM1MEM1MDgwMDMzODQ4OCAv
KiBGZXRjaEhlYWRlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDFGNTRGODIxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoSGVhZGVycy5jcHAgKi87
IH07CisJCTQxRjU0RjhFMUM1MEM1MEMwMDMzODQ4OCAvKiBGZXRjaFJlcXVlc3QuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGNTRGODcxQzUwQzRG
NjAwMzM4NDg4IC8qIEZldGNoUmVxdWVzdC5jcHAgKi87IH07CiAJCTQxRjU4NEM3MTA0NjUyQ0Iw
MDlDQUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUY1ODRDNjEwNDY1MkNCMDA5Q0FBNjQgLyogSlNNZXNz
YWdlUG9ydEN1c3RvbS5oICovOyB9OwogCQk0MUZBMzAzRTEzMTZDMjlDMDBDMEJGQzUgLyogUmVu
ZGVyTWVkaWFDb250cm9scy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MUZBMzAzQzEzMTZDMjlDMDBDMEJGQzUgLyogUmVuZGVyTWVkaWFDb250cm9s
cy5jcHAgKi87IH07CiAJCTQxRkEzMDNGMTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNv
bnRyb2xzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MUZBMzAzRDEzMTZDMjlDMDBDMEJGQzUgLyogUmVuZGVyTWVkaWFDb250cm9scy5oICovOyB9OwpA
QCAtMjc5MCw2ICsyNzkyLDggQEAKIAkJN0U0NzRFMUUxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0
ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0U0NzRFMUIxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNl
VHJhY2tlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTdFNDc0RTFGMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNr
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNDc0
RTFDMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTQ3NEUyMDEyNDk0REM5
MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNDc0RTFEMTI0OTREQzkwMDIzNTM2NCAvKiBT
UUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwICovOyB9OworCQk3RTRDOTZEQzFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNGZXRjaFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0U0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0
LmNwcCAqLzsgfTsKKwkJN0U0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTRDOTZE
OTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuaCAqLzsgfTsKIAkJN0U0REUxMEQx
OThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNERFMTBDMTk4QjEwQjYwMDUxQ0Iw
MiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gKi87IH07CiAJCTdFNUQ3QTc2MTYxRDNGOEYw
MDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNUQ3QTczMTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNF
bGVtZW50SW5kZXhVaW50LmNwcCAqLzsgfTsKIAkJN0U1RDdBNzcxNjFEM0Y4RjAwODk2QzM0IC8q
IE9FU0VsZW1lbnRJbmRleFVpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhV
aW50LmggKi87IH07CkBAIC0yODI2LDYgKzI4MzAsOCBAQAogCQk3RUU2ODQ3MDEyRDI2RTM4MDBF
Nzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NUQxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVz
cG9uc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3RUU2ODQ3MTEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDVFMTJE
MjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwICovOyB9OwogCQk3RUU2
ODQ3NTEyRDI2RTcwMDBFNzk0MTUgLyogUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ3NDEyRDI2RTcwMDBF
Nzk0MTUgLyogUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHAgKi87IH07CisJCTdGNEM5NkRDMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3RjRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJv
ZHkuY3BwICovOyB9OworCQk3RjRDOTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdGNEM5NkQ5
MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5oICovOyB9OwogCQk4MTAyQzU4ODEzMjVC
QjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODEwMkM1ODcxMzI1QkIxMTAwRERFNjdBIC8qIFN0cmlu
Z0NhbGxiYWNrLmNwcCAqLzsgfTsKIAkJODFBQzU5OTkxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFU
cmFuc2Zlckl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgxQUM1OTk3MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmggKi87IH07
CiAJCTgxQUM1OTlBMTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBQzU5OTgxMzE2
MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmggKi87IH07CkBAIC04OTUyLDEw
ICs4OTU4LDE3IEBACiAJCTQxRjA2NkUzMEY2NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRHbG9iYWxP
YmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0R2xv
YmFsT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGMUQyMUQwRUYz
NUMyQTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZEZyYW1lRGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JpcHRDYWNoZWRGcmFtZURhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDFGMUQyMUUwRUYzNUMyQTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZEZy
YW1lRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRD
YWNoZWRGcmFtZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUY1NEY3
RDFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hCb2R5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEZldGNoQm9keS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxRjU0RjdFMUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEJvZHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRmV0Y2hCb2R5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxRjU0RjdGMUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEJvZHkuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEZldGNoQm9keS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxRjU0RjgyMUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEhlYWRlcnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmV0Y2hIZWFkZXJzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGNTRGODMxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoSGVh
ZGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZXRjaEhlYWRlcnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGNTRGODQxQzUwQzRGNjAwMzM4NDg4IC8q
IEZldGNoSGVhZGVycy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmV0Y2hIZWFkZXJzLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGNTRGODUxQzUwQzRGNjAwMzM4NDg4
IC8qIEZldGNoSGVhZGVycy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0
aCA9IEZldGNoSGVhZGVycy5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGNTRG
ODYxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGZXRjaE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDFGNTRGODcxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoUmVxdWVzdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGZXRjaFJlcXVlc3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MUY1NEY4ODFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hSZXF1
ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZldGNoUmVxdWVzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUY1NEY4OTFDNTBDNEY2MDAzMzg0ODggLyog
RmV0Y2hSZXF1ZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGZXRjaFJlcXVlc3QuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUY1ODRDNjEwNDY1MkNCMDA5Q0FBNjQg
LyogSlNNZXNzYWdlUG9ydEN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU01lc3NhZ2VQb3J0Q3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
RkEzMDNDMTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlck1lZGlhQ29udHJvbHMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZBMzAzRDEzMTZDMjlDMDBDMEJGQzUgLyog
UmVuZGVyTWVkaWFDb250cm9scy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJNZWRpYUNvbnRyb2xzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDM0
OCw2ICsxMDM2MSw4IEBACiAJCTdFNDc0RTFCMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRh
YmFzZVRyYWNrZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1FM
aXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdFNDc0RTFDMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1FMaXRlRGF0YWJhc2VUcmFja2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNDc0RTFEMTI0OTREQzkwMDIzNTM2NCAvKiBT
UUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJN0U0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmV0Y2hSZXF1ZXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0U0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpT
RmV0Y2hSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmV0Y2hS
ZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNERFMTBDMTk4QjEwQjYw
MDUxQ0IwMiAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBEaXNrQ2FjaGVNb25pdG9yQ29jb2EubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdFNUQ3QTczMTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50
SW5kZXhVaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE9FU0Vs
ZW1lbnRJbmRleFVpbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTVEN0E3
NDE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBPRVNFbGVtZW50SW5kZXhVaW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMDM4Niw2ICsxMDQwMSw4IEBACiAJCTdFRTY4NDVEMTJEMjZFMzgw
MEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlc291cmNlUmVzcG9uc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0VFNjg0NUUxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZVJlc3BvbnNlQ0ZOZXQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUU2ODQ3NDEyRDI2RTcwMDBFNzk0
MTUgLyogUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZXNvdXJjZUxvYWRlckNGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJN0Y0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmV0Y2hCb2R5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0
Y2hCb2R5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmV0Y2hCb2R5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxMDJDNTg3MTMyNUJCMTEwMERERTY3QSAv
KiBTdHJpbmdDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTdHJpbmdDYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQUM1
OTk3MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODFBQzU5OTgxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1M
aXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1M
aXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjYwNSwxMCArMTY2MjIsMTcg
QEAKIAkJNDFGNTRGN0MxQzUwQzRGNjAwMzM4NDg4IC8qIGZldGNoICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0MUY1NEY3RDFDNTBDNEY2MDAzMzg0ODgg
LyogRmV0Y2hCb2R5LmNwcCAqLywKKwkJCQk0MUY1NEY3RTFDNTBDNEY2MDAzMzg0ODggLyogRmV0
Y2hCb2R5LmggKi8sCisJCQkJNDFGNTRGN0YxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoQm9keS5p
ZGwgKi8sCiAJCQkJNDFGNTRGODIxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoSGVhZGVycy5jcHAg
Ki8sCiAJCQkJNDFGNTRGODMxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoSGVhZGVycy5oICovLAog
CQkJCTQxRjU0Rjg0MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEhlYWRlcnMuaWRsICovLAogCQkJ
CTQxRjU0Rjg1MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEhlYWRlcnMuanMgKi8sCisJCQkJNDFG
NTRGODYxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoT3B0aW9ucy5oICovLAorCQkJCTQxRjU0Rjg3
MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaFJlcXVlc3QuY3BwICovLAorCQkJCTQxRjU0Rjg4MUM1
MEM0RjYwMDMzODQ4OCAvKiBGZXRjaFJlcXVlc3QuaCAqLywKKwkJCQk0MUY1NEY4OTFDNTBDNEY2
MDAzMzg0ODggLyogRmV0Y2hSZXF1ZXN0LmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZmV0Y2g7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTY2MTYsNiArMTY2NDAsMTAgQEAKIAkJ
NDJBMDIzRkExQTM5RjEzQTAwRjcyMkNGIC8qIEZldGNoQVBJICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk3RjRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyog
SlNGZXRjaEJvZHkuY3BwICovLAorCQkJCTdGNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0Zl
dGNoQm9keS5oICovLAorCQkJCTdFNEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVx
dWVzdC5jcHAgKi8sCisJCQkJN0U0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXF1
ZXN0LmggKi8sCiAJCQkJN0Q0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hIZWFkZXJz
LmNwcCAqLywKIAkJCQk3RDRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEhlYWRlcnMu
aCAqLywKIAkJCSk7CkBAIC0yNjQ2MCw2ICsyNjQ4OCw4IEBACiAJCQkJMDc3NjY0RkQxODNFNkI1
QzAwMTMzQjkyIC8qIEpTUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUI2NThGRkEyMTUyMkVGM0EwMERENTU5NSAvKiBKU1JhZGlvTm9kZUxpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTY1REYzMjAyMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1JhbmdlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk3RjRDOTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHku
aCBpbiBIZWFkZXJzICovLAorCQkJCTdFNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNo
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0Q0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8q
IEpTRmV0Y2hIZWFkZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzRDOTZERDFBRDQ0ODM1MDAz
NjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkM0Qzk2REYx
QUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI5NjM3LDYgKzI5NjY3LDcgQEAKIAkJCQlDNTg1QTY2MjExRDRGQUM1MDA0QzNF
NEIgLyogSURCQmluZGluZ1V0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTZEN0Q3
MTFCQjVGMEJEMDBBRjdDNzcgLyogSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxOThGN0MwMUJDNDg1NjcwMEUyQ0M1RiAvKiBJREJDb25uZWN0aW9uVG9TZXJ2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDFGNTRGOEIxQzUwQzUwMzAwMzM4NDg4IC8qIEZl
dGNoQm9keS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg1RkM3QTFCQjRDNEU4MDAxMjg5OEYg
LyogSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjQxQTY5MUJBNzNCNUIwMDJF
MDUzQiAvKiBJREJDdXJzb3JCYWNrZW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjQxQTZC
MUJBNzNCNUIwMDJFMDUzQiAvKiBJREJDdXJzb3JCYWNrZW5kT3BlcmF0aW9ucy5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTMwMDQ2LDYgKzMwMDc3LDcgQEAKIAkJCQlBODBFN0U5RTBBMUE4M0UzMDA3
RkI4QzUgLyogSlNIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgz
RTM1OUEzMUJCMTAzMUQwMDJDRUI5OCAvKiBKU0hUTUxUaW1lRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBODBFN0IxMzBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MVGl0bGVFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxRjU0RjhFMUM1MEM1MEMwMDMzODQ4OCAvKiBGZXRj
aFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcwNzU2RDMxNDIzOUE0RTAwNDE0MTYx
IC8qIEpTSFRNTFRyYWNrRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTg1QjIxMDBB
MUIyNTg3MDBEOEM4N0MgLyogSlNIVE1MVUxpc3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTZFNEFCQ0Q0MTM4RUEwQjcwMDcxRDI5MSAvKiBKU0hUTUxVbmtub3duRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTMwMTY4LDcgKzMwMjAwLDkgQEAKIAkJCQkwNzc2NjRGQzE4M0U2
QjVDMDAxMzNCOTIgLyogSlNRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCNjU4RkZBMTE1MjJFRjNBMDBERDU1OTUgLyogSlNSYWRpb05vZGVMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTY1REYzMjAxMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1Jhbmdl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdGNEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0Zl
dGNoQm9keS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RDRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAg
LyogSlNGZXRjaEhlYWRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0U0Qzk2REMxQUQ0NDgz
NTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNEM5
NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTZDNEM5NkRFMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtQ29udHJv
bGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTI5REY4NTFCQjVCODA3MDAzMjJBMTYgLyog
SlNSZWFkYWJsZVN0cmVhbVByaXZhdGVDb25zdHJ1Y3RvcnMuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9EaWN0aW9uYXJ5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9EaWN0aW9uYXJ5LmgKaW5kZXggZWMxZWNhODk2NjdjMzZk
NTcxYWUxNjdlMTc3ODQyZDA2NDk5MTY1Yi4uZDMxNzJhZjQ0N2ZmYWI4MWVmYzY1ODU4M2NlYTkx
NDViMTYyMmE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRGljdGlv
bmFyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RpY3Rpb25hcnkuaApAQCAt
NjYsNiArNjYsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eU5hbWVzKFZlY3Rv
cjxTdHJpbmc+JikgY29uc3Q7CiAgICAgYm9vbCBnZXRXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2so
Y29uc3QgY2hhciogcHJvcGVydHlOYW1lLCBTdHJpbmcmIHZhbHVlKSBjb25zdDsKIAorICAgIEpT
Qzo6RXhlY1N0YXRlKiBleGVjU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2RpY3Rpb25hcnkuZXhl
Y1N0YXRlKCk7IH0KKwogcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgICBK
U0M6OkpTT2JqZWN0KiBhc0pTT2JqZWN0KFQqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCmluZGV4IGM0YTJmMTY3MTJjNGI0YTZjNDJjYWQyNWMw
NzZlZmFlYTRjYjZhMzUuLjMzNDZjY2ZlNjk5M2ZiOTQ5NTc1ZDczMDg1NWVkNGQ3OGY5NjhkYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcApAQCAtNDcs
NiArNDcsMTAgQEAKICNpbmNsdWRlICJKU01lZGlhS2V5RXJyb3IuaCIKICNlbmRpZgogCisjaWYg
RU5BQkxFKEZFVENIX0FQSSkKKyNpbmNsdWRlICJKU0ZldGNoSGVhZGVycy5oIgorI2VuZGlmCisK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogI2luY2x1ZGUgIkpTTWVkaWFTdHJlYW0uaCIKICNp
bmNsdWRlICJKU01lZGlhU3RyZWFtVHJhY2suaCIKQEAgLTIyNyw2ICsyMzEsMTMgQEAgdm9pZCBK
U0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2
YWx1ZSwgUmVmUHRyPE1lZGkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEZFVENIX0FQSSkKK3Zv
aWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFs
dWUgdmFsdWUsIFJlZlB0cjxGZXRjaEhlYWRlcnM+JiByZXN1bHQpCit7CisgICAgcmVzdWx0ID0g
SlNGZXRjaEhlYWRlcnM6OnRvV3JhcHBlZCh2YWx1ZSk7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8TWVkaWFTdHJlYW0+JiByZXN1bHQp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnku
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5oCmluZGV4IGY1OGZi
ZjcwYjZiNTU4ODJjNmIyYWVmMjk0MDdlYzY5YmRjOTZjMzQuLjU0YmY3OTkwYzBkMWE3ZWY1NDdi
MTMwZmVjNWFkMTM2ZDNlNWI3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRGljdGlvbmFyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGlj
dGlvbmFyeS5oCkBAIC00Nyw2ICs0Nyw3IEBAIGNsYXNzIERPTUVycm9yOwogY2xhc3MgRE9NV2lu
ZG93OwogY2xhc3MgRXZlbnRUYXJnZXQ7CiBjbGFzcyBHYW1lcGFkOworY2xhc3MgRmV0Y2hIZWFk
ZXJzOwogY2xhc3MgTWVkaWFLZXlFcnJvcjsKIGNsYXNzIE1lZGlhU3RyZWFtOwogY2xhc3MgTWVk
aWFTdHJlYW1UcmFjazsKQEAgLTEyNiw2ICsxMjcsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShF
TkNSWVBURURfTUVESUEpCiAgICAgc3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8TWVkaWFLZXlFcnJvcj4mIHJlc3VsdCk7CiAjZW5k
aWYKKyNpZiBFTkFCTEUoRkVUQ0hfQVBJKQorICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRWYWx1ZShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPEZldGNoSGVhZGVycz4mIHJlc3Vs
dCk7CisjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHN0YXRpYyB2b2lkIGNv
bnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPE1lZGlhU3Ry
ZWFtPiYgcmVzdWx0KTsKICAgICBzdGF0aWMgdm9pZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYgcmVzdWx0KTsKQEAg
LTE2Myw2ICsxNjcsMTIgQEAgYm9vbCBKU0RpY3Rpb25hcnk6OmdldChjb25zdCBjaGFyKiBwcm9w
ZXJ0eU5hbWUsIFJlc3VsdCYgZmluYWxSZXN1bHQpIGNvbnN0CiAgICAgcmV0dXJuIHRyeUdldFBy
b3BlcnR5QW5kUmVzdWx0KHByb3BlcnR5TmFtZSwgJmZpbmFsUmVzdWx0LCBJZGVudGl0eVNldHRl
cjxSZXN1bHQ+OjppZGVudGl0eVNldHRlcikgPT0gUHJvcGVydHlGb3VuZDsKIH0KIAordGVtcGxh
dGUgPD4KK2lubGluZSBib29sIEpTRGljdGlvbmFyeTo6Z2V0KGNvbnN0IGNoYXIqIHByb3BlcnR5
TmFtZSwgSlNDOjpKU1ZhbHVlJiBmaW5hbFJlc3VsdCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ5
R2V0UHJvcGVydHkocHJvcGVydHlOYW1lLCBmaW5hbFJlc3VsdCkgPT0gUHJvcGVydHlGb3VuZDsK
K30KKwogdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFJlc3VsdD4KIEpTRGljdGlvbmFy
eTo6R2V0UHJvcGVydHlSZXN1bHQgSlNEaWN0aW9uYXJ5Ojp0cnlHZXRQcm9wZXJ0eUFuZFJlc3Vs
dChjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIFQqIGNvbnRleHQsIHZvaWQgKCpzZXR0ZXIpKFQq
IGNvbnRleHQsIGNvbnN0IFJlc3VsdCYpKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE1ZWVhZTZjZmI1YWI2
NjQ0YzM4ODNiYzY2ZTE3NDgxZjhiODNmYTIuLmZkNDQ4NjYxMGFmYmE5NGZhYjljYWIxNzE4NmU1
MmViYWNjNWQ0N2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNi0wMS0yNiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtGZXRjaCBBUEld
IEltcGxlbWVudCBGZXRjaCBBUEkgUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNDM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBqcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1
dGVzLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRm
b3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13
b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFs
LWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMteW9z
ZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFs
LWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKwogMjAxNi0wMS0yNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEV4cG9zZSBWYWxpZGl0eVN0
YXRlIG9uIHRoZSBnbG9iYWwgV2luZG93IG9iamVjdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKaW5kZXggOGQ3NmIwMWNlMmM0YmM2YzE3M2NmMWVhZTJjMzA2ODZmY2NmOWRhOS4uMzVlZTVi
ZTkwMmM5YzIzNmIxN2NjNTcwNGJhYzg4YjAzYWQ2ODQ3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTYtMDEtMjYgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbRmV0Y2ggQVBJXSBJbXBsZW1l
bnQgRmV0Y2ggQVBJIFJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MzQzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRl
cnMtYmFzaWMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvcmVxdWVzdC1jbG9uZS5zdWItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jbG9uZS5zdWIuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtY29uc3VtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
ZGlzdHVyYmVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWVycm9y
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaGVhZGVycy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWhlYWRlcnMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaWRsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaWRs
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWluaXQtMDAxLnN1Yi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAxLnN1
Yi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvcmVxdWVzdC1pbml0LTAwMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LWluaXQtMDAzLnN1Yi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAzLnN1Yi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1cmUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvYXV0
aGVudGljYXRpb24ucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvY2xlYW4tc3Rhc2gucHk6IEFkZGVkLgor
ICAgICAgICAobWFpbik6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5OiBBZGRlZC4KKyAgICAgICAgKG1haW4pOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL21ldGhvZC5weTog
QWRkZWQuCisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc291cmNlcy9wcmVmbGlnaHQucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvcmVkaXJlY3Qu
cHk6IEFkZGVkLgorICAgICAgICAobWFpbik6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNvdXJjZXMvdG9wLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvdHJpY2tsZS5weTogQWRkZWQuCisgICAgICAg
IChtYWluKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNl
cy91dGlscy5qczogQWRkZWQuCisgICAgICAgIChjYXRjaCk6CisgICAgICAgIChkaXJuYW1lKToK
KyAgICAgICAgKGNoZWNrUmVxdWVzdCk6CisgICAgICAgIChyZWFkVGV4dFN0cmVhbSk6CisKIDIw
MTYtMDEtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBv
c2UgVmFsaWRpdHlTdGF0ZSBvbiB0aGUgZ2xvYmFsIFdpbmRvdyBvYmplY3QKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hl
YWRlcnMvaGVhZGVycy1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWJhc2ljLmh0bWwKaW5kZXgg
ZjZkNWVlZDk5ODA3OWRjOGViNTg4MGZiZmFjODY5Mzc4ZGU2YmRiOC4uYzM5NTQ1ZDU0MzE0NjFh
ZGE0NjkyY2VkYzg5ZDdkMjg2ZDQ2NWZkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWJhc2lj
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWJhc2ljLmh0bWwKQEAgLTQ4LDYgKzQ4LDcgQEAKICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KG5hbWUpLCBTdHJpbmcoaGVhZGVyRGlj
dFtuYW1lXSksCiAgICAgICAgICAgICAibmFtZTogIiArIG5hbWUgKyAiIGhhcyB2YWx1ZTogIiAr
IGhlYWRlckRpY3RbbmFtZV0pOwogICAgICAgICB9CisgICAgICAgIGFzc2VydF9lcXVhbHMoaGVh
ZGVycy5nZXQoImxlbmd0aCIpLCBudWxsLCAiaW5pdCBzaG91bGQgYmUgdHJlYXRlZCBhcyBhIHNl
cXVlbmNlLCBub3QgYXMgYSBkaWN0aW9uYXJ5Iik7CiAgICAgICB9LCAiQ3JlYXRlIGhlYWRlcnMg
d2l0aCBzZXF1ZW5jZSIpOwogCiAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWNsb25lLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2xvbmUu
c3ViLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODFkN2JiOGM5ZWQ1MTMzNTNlNjU1ZjIxOWY1
NTJmOTQyYjVkMzg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNsb25lLnN1Yi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwgQ2hlY2sgY2xvbmluZyBhIHJlcXVl
c3QgRXhwZWN0ZWRWYWx1ZXNEaWN0WyJoZWFkZXJzIl0ua2V5cyBpcyBub3QgYSBmdW5jdGlvbi4g
KEluICdFeHBlY3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzKCknLCAnRXhwZWN0ZWRWYWx1
ZXNEaWN0WyJoZWFkZXJzIl0ua2V5cycgaXMgdW5kZWZpbmVkKQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtY2xvbmUuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2xvbmUuc3ViLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjQ2ODAwMzMwODk1NGRjYjE1ZmEzMzU4Njc3MDU1ZDg5MDdlZDUzMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jbG9uZS5zdWIuaHRtbApAQCAtMCwwICsxLDQ4IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+CisgICAgPHRpdGxlPlJlcXVlc3QgY2xvbmU8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0Ij4KKyAg
ICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9
Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3V0aWxzLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0
PgorICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyggeyJuYW1lIiA6ICJ2YWx1ZSJ9ICk7
CisgICAgICB2YXIgZW1wdHlIZWFkZXJzID0gbmV3IEhlYWRlcnMoKTsKKworICAgICAgdmFyIGlu
aXRWYWx1ZXNEaWN0ID0geyJtZXRob2QiIDogIlBPU1QiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJyZWZlcnJlciIgOiAiaHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fS8i
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZlcnJlclBvbGljeSIgOiAib3JpZ2lu
LW9ubHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2RlIiA6ICJzYW1lLW9yaWdp
biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNyZWRlbnRpYWxzIiA6ICJpbmNsdWRl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2FjaGUiIDogIm5vLWNhY2hlIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAicmVkaXJlY3QiIDogImVycm9yIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaW50ZWdyaXR5IiA6ICJSZXF1ZXN0J3MgSW50ZWdyaXR5IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGVhZGVycyIgOiBoZWFkZXJzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJib2R5IiA6ICJSZXF1ZXN0J3MgYm9keSIKKyAgICAgIH07
CisKKyAgICAgIHZhciBleHBlY3RlZEluaXRpYWxpemVkID0geyJtZXRob2QiIDogIlBPU1QiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVycmVyIiA6ICJodHRwOi8ve3to
b3N0fX06e3twb3J0c1todHRwXVswXX19LyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAicmVmZXJyZXJQb2xpY3kiIDogIm9yaWdpbi1vbmx5IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJtb2RlIiA6ICJzYW1lLW9yaWdpbiIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiY3JlZGVudGlhbHMiIDogImluY2x1ZGUiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImNhY2hlIiA6ICJuby1jYWNoZSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicmVkaXJlY3QiIDogImVycm9yIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJpbnRlZ3JpdHkiIDogIlJlcXVlc3QncyBJbnRlZ3JpdHkiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhlYWRlcnMiIDogaGVhZGVycywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJib2R5IiA6ICJSZXF1ZXN0J3MgYm9keSIK
KyAgICAgIH07CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBSZXF1ZXN0
SW5pdGlhbGl6ZWQgPSBuZXcgUmVxdWVzdCgiIiwgaW5pdFZhbHVlc0RpY3QpOworICAgICAgICB2
YXIgcmVxdWVzdFRvQ2hlY2sgPSBSZXF1ZXN0SW5pdGlhbGl6ZWQuY2xvbmUoKTsKKyAgICAgICAg
Y2hlY2tSZXF1ZXN0KHJlcXVlc3RUb0NoZWNrLCBleHBlY3RlZEluaXRpYWxpemVkKTsKKyAgICAg
IH0sICJDaGVjayBjbG9uaW5nIGEgcmVxdWVzdCIpOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBkYWM3Y2U4
MzlhMWIzMDBhNzQ4MjQ3ODFmNTZkNWIwMWJhYmY2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1jb25zdW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKKworUEFTUyBDb25z
dW1lIHJlcXVlc3QncyBib2R5IGFzIHRleHQgCitGQUlMIENvbnN1bWUgcmVxdWVzdCdzIGJvZHkg
YXMgYmxvYiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogdW5k
ZWZpbmVkCitQQVNTIENvbnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMgYXJyYXlCdWZmZXIgCitQQVNT
IENvbnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMganNvbiAKK0ZBSUwgQ29uc3VtZSByZXF1ZXN0J3Mg
Ym9keSBhcyBmb3JtRGF0YSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogdW5kZWZpbmVkCitQQVNTIENvbnN1bWUganNvbiBmcm9tIG5vbi1wYXJzYWJsZSB0ZXh0
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNvbnN1bWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmU1MGZhYTg1OTU2ZWRlYjNlNmUzNDNhMjMzNTIw
MjdkM2E4ZDU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUuaHRtbApA
QCAtMCwwICsxLDk0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlcXVlc3QgY29uc3VtZTwvdGl0bGU+
CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5v
cmcvI3JlcXVlc3QiPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2gu
c3BlYy53aGF0d2cub3JnLyNib2R5LW1peGluIj4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRp
dGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5m
ciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIGNo
ZWNrQm9keVRleHQocmVxdWVzdCwgZXhwZWN0ZWRCb2R5KSB7CisgICAgICByZXR1cm4gcmVxdWVz
dC50ZXh0KCkudGhlbiggZnVuY3Rpb24oYm9keUFzVGV4dCkgeworICAgICAgICBhc3NlcnRfZXF1
YWxzKGJvZHlBc1RleHQsIGV4cGVjdGVkQm9keSwgIlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVxdWVz
dCdzIGJvZHkiKTsKKyAgICAgICAgYXNzZXJ0X3RydWUocmVxdWVzdC5ib2R5VXNlZCwgImJvZHkg
YXMgdGV4dDogYm9keVVzZWQgdHVybmVkIHRydWUiKTsKKyAgICAgIH0pOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGNoZWNrQm9keUJsb2IocmVxdWVzdCwgZXhwZWN0ZWRCb2R5KSB7CisgICAgICBy
ZXR1cm4gcmVxdWVzdC5ibG9iKCkudGhlbihmdW5jdGlvbihib2R5QXNCbG9iKSB7CisgICAgICAg
IHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAgICAgICAgIHJlYWRl
ci5vbmxvYWQgPSBmdW5jdGlvbihldnQpIHsKKyAgICAgICAgICAgIHJlc29sdmUocmVhZGVyLnJl
c3VsdCkKKyAgICAgICAgICB9OworICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICByZWplY3QoIkJsb2IncyByZWFkZXIgZmFpbGVkIik7CisgICAgICAg
ICAgfTsKKyAgICAgICAgICByZWFkZXIucmVhZEFzVGV4dChib2R5QXNCbG9iKTsKKyAgICAgICAg
fSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnRoZW4oZnVuY3Rpb24oYm9keSkgeworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoYm9keSwgZXhwZWN0ZWRCb2R5LCAiUmV0cmlldmUgYW5kIHZlcmlm
eSByZXF1ZXN0J3MgYm9keSIpOworICAgICAgICAgIGFzc2VydF90cnVlKHJlcXVlc3QuYm9keVVz
ZWQsICJib2R5IGFzIGJsb2I6IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7CisgICAgICAgIH0pOwor
ICAgICAgfSk7CisgICAgfQorCisgICAgPCEtLSBUYWtlbiBmcm9tIGh0dHBzOi8vZGV2ZWxvcGVy
cy5nb29nbGUuY29tIC0tPgorICAgIGZ1bmN0aW9uIHN0cjJhYihzdHIpIHsKKyAgICAgIHZhciBi
dWYgPSBuZXcgQXJyYXlCdWZmZXIoc3RyLmxlbmd0aCoyKTsgLy8gMiBieXRlcyBmb3IgZWFjaCBj
aGFyCisgICAgICB2YXIgYnVmVmlldyA9IG5ldyBVaW50MTZBcnJheShidWYpOworICAgICAgZm9y
ICh2YXIgaT0wLCBzdHJMZW49c3RyLmxlbmd0aDsgaSA8IHN0ckxlbjsgaSsrKSB7CisgICAgICAg
IGJ1ZlZpZXdbaV0gPSBzdHIuY2hhckNvZGVBdChpKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBi
dWY7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tCb2R5QXJyYXlCdWZmZXIocmVxdWVzdCwg
ZXhwZWN0ZWRCb2R5KSB7CisgICAgICByZXR1cm4gcmVxdWVzdC5hcnJheUJ1ZmZlcigpLnRoZW4o
IGZ1bmN0aW9uKGJvZHlBc0FycmF5QnVmZmVyKSB7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoYm9keUFzQXJyYXlCdWZmZXIsIHN0cjJhYihleHBlY3RlZEJvZHkpLCAiUmV0cmlldmUgYW5k
IHZlcmlmeSByZXF1ZXN0J3MgYm9keSIpOworICAgICAgICBhc3NlcnRfdHJ1ZShyZXF1ZXN0LmJv
ZHlVc2VkLCAiYm9keSBhcyBhcnJheUJ1ZmZlcjogYm9keVVzZWQgdHVybmVkIHRydWUiKTsKKyAg
ICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQm9keUpTT04ocmVxdWVzdCwgZXhw
ZWN0ZWRCb2R5KSB7CisgICAgICByZXR1cm4gcmVxdWVzdC5qc29uKCkudGhlbihmdW5jdGlvbihi
b2R5QXNKU09OKSB7CisgICAgICAgIHZhciBzdHJCb2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keUFz
SlNPTikKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzdHJCb2R5LCBleHBlY3RlZEJvZHksICJSZXRy
aWV2ZSBhbmQgdmVyaWZ5IHJlcXVlc3QncyBib2R5Iik7CisgICAgICAgIGFzc2VydF90cnVlKHJl
cXVlc3QuYm9keVVzZWQsICJib2R5IGFzIGpzb246IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7Cisg
ICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0JvZHlGb3JtRGF0YShyZXF1ZXN0
LCBleHBlY3RlZEJvZHkpIHsKKyAgICAgIHJldHVybiByZXF1ZXN0LmZvcm1EYXRhKCkudGhlbihm
dW5jdGlvbihib2R5QXNGb3JtRGF0YSkgeworICAgICAgICBhc3NlcnRfdHJ1ZShib2R5QXNGb3Jt
RGF0YSBpbnN0YW5jZW9mIEZvcm1EYXRhLCAiU2hvdWxkIHJlY2VpdmUgYSBGb3JtRGF0YSIpOwor
ICAgICAgICBhc3NlcnRfdHJ1ZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9keSBhcyBmb3JtRGF0YTog
Ym9keVVzZWQgdHVybmVkIHRydWUiKTsKKyAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
Y2hlY2tSZXF1ZXN0Qm9keShib2R5LCBib2R5VHlwZSwgY2hlY2tGdW5jdGlvbikgeworICAgICAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcg
UmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiUE9TVCIsICJib2R5IjogYm9keSB9KTsKKyAgICAgICAg
YXNzZXJ0X2ZhbHNlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5VXNlZCBpcyBmYWxzZSBhdCBpbml0
Iik7CisgICAgICAgIHJldHVybiBjaGVja0Z1bmN0aW9uKHJlcXVlc3QsIGJvZHkpOworICAgICAg
fSwgIkNvbnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMgIiArIGJvZHlUeXBlKTsKKyAgICB9CisKKyAg
ICB2YXIgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsKKyAgICBmb3JtRGF0YS5hcHBlbmQoIm5h
bWUiLCAidmFsdWUiKQorICAgIGNoZWNrUmVxdWVzdEJvZHkoIlRoaXMgaXMgcmVxdWVzdCdzIGJv
ZHkiLCAidGV4dCIsIGNoZWNrQm9keVRleHQpOworICAgIGNoZWNrUmVxdWVzdEJvZHkoIlRoaXMg
aXMgcmVxdWVzdCdzIGJvZHkiLCAiYmxvYiIsIGNoZWNrQm9keUJsb2IpOworICAgIGNoZWNrUmVx
dWVzdEJvZHkoIlRoaXMgaXMgcmVxdWVzdCdzIGJvZHkiLCAiYXJyYXlCdWZmZXIiLCBjaGVja0Jv
ZHlBcnJheUJ1ZmZlcik7CisgICAgY2hlY2tSZXF1ZXN0Qm9keShKU09OLnN0cmluZ2lmeSgiVGhp
cyBpcyByZXF1ZXN0J3MgYm9keSIpLCAianNvbiIsIGNoZWNrQm9keUpTT04pOworICAgIGNoZWNr
UmVxdWVzdEJvZHkoZm9ybURhdGEsICJmb3JtRGF0YSIsIGNoZWNrQm9keUZvcm1EYXRhKTsKKwor
ICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgICAgIHZhciByZXF1ZXN0ID0g
bmV3IFJlcXVlc3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAiYm9keSI6ICJ7In0pOworICAgICAg
ICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHRlc3QsIG5ldyBTeW50YXhFcnJvcigpLCByZXF1ZXN0
Lmpzb24oKSk7CisgICAgfSwgIkNvbnN1bWUganNvbiBmcm9tIG5vbi1wYXJzYWJsZSB0ZXh0Iik7
CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1kaXN0dXJiZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E0MGRkNmIxZDMxMTk3YWFlNWIyMGRkOTFlNWIzNjNiNGIw
YmE2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIFJlcXVlc3Qgd2l0aG91dCBib2R5IGNhbm5vdCBi
ZSBkaXN0dXJiZWQgCitQQVNTIENoZWNrIGNsb25pbmcgYSBkaXN0dXJiZWQgcmVxdWVzdCAKK1BB
U1MgQ2hlY2sgY3JlYXRpbmcgYSBuZXcgcmVxdWVzdCBmcm9tIGEgZGlzdHVyYmVkIHJlcXVlc3Qg
CitQQVNTIElucHV0IHJlcXVlc3QgdXNlZCBmb3IgY3JlYXRpbmcgbmV3IHJlcXVlc3QgYmVjYW1l
IGRpc3R1cmJlZCAKK1BBU1MgQ2hlY2sgY29uc3VtaW5nIGEgZGlzdHVyYmVkIHJlcXVlc3QgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1k
aXN0dXJiZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NThkZWY0MTc2OGI3ZmNkY2MzNjQyZGZhZGY3M2Y0
NDE0YTQ1YjljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC5odG1s
CkBAIC0wLDAgKzEsNTUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVxdWVzdCBkaXN0dXJiZWQ8L3Rp
dGxlPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0
d2cub3JnLyNyZXF1ZXN0Ij4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2Zl
dGNoLnNwZWMud2hhdHdnLm9yZy8jYm9keS1taXhpbiI+CisgICAgPG1ldGEgbmFtZT0iYXV0aG9y
IiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fu
b24uZnIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgIHZhciBp
bml0VmFsdWVzRGljdCA9IHsibWV0aG9kIiA6ICJQT1NUIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiYm9keSIgOiAiUmVxdWVzdCdzIGJvZHkiCisgICAgICB9OworCisgICAgICB2YXIg
bm9Cb2R5Q29uc3VtZWQgPSBuZXcgUmVxdWVzdCgiIik7CisgICAgICBub0JvZHlDb25zdW1lZC5i
bG9iKCk7CisgICAgICB2YXIgYm9keUNvbnN1bWVkID0gbmV3IFJlcXVlc3QoIiIsIGluaXRWYWx1
ZXNEaWN0KTsKKyAgICAgIGJvZHlDb25zdW1lZC5ibG9iKCk7CisKKyAgICAgIHRlc3QoZnVuY3Rp
b24oKSB7CisgICAgICAgIGFzc2VydF9mYWxzZShub0JvZHlDb25zdW1lZC5ib2R5VXNlZCAsICJi
b2R5VXNlZCBpcyBmYWxzZSB3aGVuIHJlcXVlc3QgaXMgbm90IGRpc3R1cmJlZCIpOworICAgICAg
ICB0cnkgeworICAgICAgICAgIG5vQm9keUNvbnN1bWVkLmNsb25lKCk7CisgICAgICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJDYW4gdXNlIHJlcXVlc3Qgbm90
IGRpc3R1cmJlZCBmb3IgY3JlYXRpbmcgb3IgY2xvbmluZyByZXF1ZXN0Iik7CisgICAgICAgIH0K
KyAgICAgIH0sICJSZXF1ZXN0IHdpdGhvdXQgYm9keSBjYW5ub3QgYmUgZGlzdHVyYmVkIik7CisK
KyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90cnVlKGJvZHlDb25zdW1l
ZC5ib2R5VXNlZCAsICJib2R5VXNlZCBpcyB0cnVlIHdoZW4gcmVxdWVzdCBpcyBkaXN0dXJiZWQi
KTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBi
b2R5Q29uc3VtZWQuY2xvbmUoKTsgfSk7CisgICAgICB9LCAiQ2hlY2sgY2xvbmluZyBhIGRpc3R1
cmJlZCByZXF1ZXN0Iik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2Vy
dF90cnVlKGJvZHlDb25zdW1lZC5ib2R5VXNlZCAsICJib2R5VXNlZCBpcyB0cnVlIHdoZW4gcmVx
dWVzdCBpcyBkaXN0dXJiZWQiKTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9y
KCksIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVzdChib2R5Q29uc3VtZWQpOyB9KTsKKyAgICAgIH0s
ICJDaGVjayBjcmVhdGluZyBhIG5ldyByZXF1ZXN0IGZyb20gYSBkaXN0dXJiZWQgcmVxdWVzdCIp
OworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgYm9keVJlcXVlc3QgPSBu
ZXcgUmVxdWVzdCgiIiwgaW5pdFZhbHVlc0RpY3QpOworICAgICAgICBhc3NlcnRfZmFsc2UoYm9k
eVJlcXVlc3QuYm9keVVzZWQgLCAiYm9keVVzZWQgaXMgZmFsc2Ugd2hlbiByZXF1ZXN0IGlzIG5v
dCBkaXN0dXJiZWQiKTsKKyAgICAgICAgdmFyIHJlcXVlc3RGcm9tUmVxdWVzdCA9IG5ldyBSZXF1
ZXN0KGJvZHlSZXF1ZXN0KTsKKyAgICAgICAgYXNzZXJ0X3RydWUoYm9keVJlcXVlc3QuYm9keVVz
ZWQgLCAiYm9keVVzZWQgaXMgdHJ1ZSB3aGVuIHJlcXVlc3QgaXMgZGlzdHVyYmVkIik7CisgICAg
ICB9LCAiSW5wdXQgcmVxdWVzdCB1c2VkIGZvciBjcmVhdGluZyBuZXcgcmVxdWVzdCBiZWNhbWUg
ZGlzdHVyYmVkIik7CisKKyAgICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAg
ICAgIGFzc2VydF90cnVlKGJvZHlDb25zdW1lZC5ib2R5VXNlZCAsICJib2R5VXNlZCBpcyB0cnVl
IHdoZW4gcmVxdWVzdCBpcyBkaXN0dXJiZWQiKTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VfcmVq
ZWN0cyh0ZXN0LCBuZXcgVHlwZUVycm9yKCksIGJvZHlDb25zdW1lZC5ibG9iKCkpOworICAgICAg
fSwgIkNoZWNrIGNvbnN1bWluZyBhIGRpc3R1cmJlZCByZXF1ZXN0Iik7CisgICAgPC9zY3JpcHQ+
CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJh
NjE3YWU5Yzc4ZmFhOTM1Y2U5NzkxODFjZTQ5MWU4NGZhYzRlYjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKKworUEFT
UyBSZXF1ZXN0SW5pdCdzIHdpbmRvdyBpcyBub3QgbnVsbCAKK1BBU1MgSW5wdXQgVVJMIGlzIG5v
dCB2YWxpZCAKK1BBU1MgSW5wdXQgVVJMIGhhcyBjcmVkZW50aWFscyAKK1BBU1MgUmVxdWVzdElu
aXQncyBtb2RlIGlzIG5hdmlnYXRlIAorUEFTUyBSZXF1ZXN0SW5pdCdzIHJlZmVycmVyIGlzIGlu
dmFsaWQgCitQQVNTIFJlcXVlc3RJbml0J3MgcmVmZXJyZXIgaGFzIGludmFsaWQgb3JpZ2luIAor
UEFTUyBSZXF1ZXN0SW5pdCdzIG1ldGhvZCBpcyBpbnZhbGlkIAorUEFTUyBSZXF1ZXN0SW5pdCdz
IG1ldGhvZCBpcyBmb3JiaWRkZW4gCitQQVNTIFJlcXVlc3RJbml0J3MgbW9kZSBpcyBuby1jb3Jz
IGFuZCBtZXRob2QgaXMgbm90IHNpbXBsZSAKK1BBU1MgUmVxdWVzdEluaXQncyBtb2RlIGlzIG5v
LWNvcnMgYW5kIGludGVncml0eSBpcyBub3QgZW1wdHkgCitQQVNTIEJhZCByZWZlcnJlclBvbGlj
eSBpbml0IHBhcmFtZXRlciB2YWx1ZSAKK1BBU1MgQmFkIG1vZGUgaW5pdCBwYXJhbWV0ZXIgdmFs
dWUgCitQQVNTIEJhZCBjcmVkZW50aWFscyBpbml0IHBhcmFtZXRlciB2YWx1ZSAKK1BBU1MgQmFk
IGNhY2hlIGluaXQgcGFyYW1ldGVyIHZhbHVlIAorUEFTUyBCYWQgcmVkaXJlY3QgaW5pdCBwYXJh
bWV0ZXIgdmFsdWUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTlhZDY5NTBhODM3YmVmMDBlNDk4Zjg4
YjdjNmVhNWY0NWQ0ZWE1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5o
dG1sCkBAIC0wLDAgKzEsNzUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVxdWVzdCBlcnJvcjwvdGl0
bGU+CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3
Zy5vcmcvI3JlcXVlc3QiPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0
Y2guc3BlYy53aGF0d2cub3JnLyNib2R5LW1peGluIj4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3Ii
IHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5v
bi5mciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgdGVzdChm
dW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCkgLCBmdW5j
dGlvbigpIHsgbmV3IFJlcXVlc3QoIiIsIHsid2luZG93IiA6ICJ3aGF0ZXZlciJ9KTsgfSwKKyAg
ICAgICAgICAiRXhwZWN0IFR5cGVFcnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sIlJlcXVlc3RJ
bml0J3Mgd2luZG93IGlzIG5vdCBudWxsIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpICwgZnVuY3Rpb24oKSB7IG5ldyBS
ZXF1ZXN0KCJodHRwOi8vOm5vdCBhIHZhbGlkIFVSTCIpOyB9LAorICAgICAgICAgICJFeHBlY3Qg
VHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAgfSwiSW5wdXQgVVJMIGlzIG5vdCB2YWxpZCIp
CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5
cGVFcnJvcigpICwgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCJodHRwOi8vdXNlcjpwYXNzQHRl
c3QudXJsIik7IH0sCisgICAgICAgICAgIkV4cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uIik7Cisg
ICAgICB9LCJJbnB1dCBVUkwgaGFzIGNyZWRlbnRpYWxzIik7CisKKyAgICAgIHRlc3QoZnVuY3Rp
b24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpICwgZnVuY3Rpb24o
KSB7IG5ldyBSZXF1ZXN0KCIiLCB7Im1vZGUiIDogIm5hdmlnYXRlIn0pOyB9LAorICAgICAgICAg
ICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAgfSwiUmVxdWVzdEluaXQncyBt
b2RlIGlzIG5hdmlnYXRlIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFz
c2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpICwgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCIi
LCB7InJlZmVycmVyIiA6ICJodHRwOi8vOm5vdCBhIHZhbGlkIFVSTCJ9KTsgfSwKKyAgICAgICAg
ICAiRXhwZWN0IFR5cGVFcnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sIlJlcXVlc3RJbml0J3Mg
cmVmZXJyZXIgaXMgaW52YWxpZCIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAg
ICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVz
dCgiIiwgeyJyZWZlcnJlciIgOiAiaHR0cDovL3Rlc3QudXJsIn0pOyB9LAorICAgICAgICAgICJF
eHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAgfSwiUmVxdWVzdEluaXQncyByZWZl
cnJlciBoYXMgaW52YWxpZCBvcmlnaW4iKQorCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAg
ICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsIGZ1bmN0aW9uKCkgeyBuZXcgUmVx
dWVzdCgiIiwgeyJtZXRob2QiIDogIklOIFZBTElEIn0pOyB9LAorICAgICAgICAgICJFeHBlY3Qg
VHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAgfSwgIlJlcXVlc3RJbml0J3MgbWV0aG9kIGlz
IGludmFsaWQiKTsKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3Ro
cm93cyhuZXcgVHlwZUVycm9yKCkgLCBmdW5jdGlvbigpIHsgbmV3IFJlcXVlc3QoIiIsIHsibWV0
aG9kIiA6ICJUUkFDRSJ9KTsgfSwKKyAgICAgICAgICAiRXhwZWN0IFR5cGVFcnJvciBleGNlcHRp
b24iKTsKKyAgICAgIH0sICJSZXF1ZXN0SW5pdCdzIG1ldGhvZCBpcyBmb3JiaWRkZW4iKTsKKwor
ICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVy
cm9yKCkgLCBmdW5jdGlvbigpIHsgbmV3IFJlcXVlc3QoIiIsIHsibW9kZSIgOiAibm8tY29ycyIs
ICJtZXRob2QiIDogIlBVVCJ9KTsgfSwKKyAgICAgICAgICAiRXhwZWN0IFR5cGVFcnJvciBleGNl
cHRpb24iKTsKKyAgICAgIH0sIlJlcXVlc3RJbml0J3MgbW9kZSBpcyBuby1jb3JzIGFuZCBtZXRo
b2QgaXMgbm90IHNpbXBsZSIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBh
c3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsCisgICAgICAgICAgICAgICAgICAgICAgZnVu
Y3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCIiLCB7Im1vZGUiIDogIm5vLWNvcnMiLCAiaW50ZWdyaXR5
IiA6ICJub3QgIGFuIGVtcHR5IHN0cmluZyJ9KTsgfSwKKyAgICAgICAgICAgICAgICAgICAgICAi
RXhwZWN0IFR5cGVFcnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sIlJlcXVlc3RJbml0J3MgbW9k
ZSBpcyBuby1jb3JzIGFuZCBpbnRlZ3JpdHkgaXMgbm90IGVtcHR5Iik7CisKKyAgICAgIHZhciBw
YXJhbWV0ZXJzID0gWyJyZWZlcnJlclBvbGljeSIsICJtb2RlIiwgImNyZWRlbnRpYWxzIiwgImNh
Y2hlIiwgInJlZGlyZWN0Il07CisgICAgICBwYXJhbWV0ZXJzLmZvckVhY2goZnVuY3Rpb24ocGFy
YW1ldGVyKSB7CisgICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIG9wdGlv
bnMgPSB7IH07CisgICAgICAgICAgb3B0aW9uc1twYXJhbWV0ZXJdID0gIkJBRCI7CisgICAgICAg
ICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IG5ldyBSZXF1ZXN0KCIiLCBv
cHRpb25zKSk7CisgICAgICAgIH0sIkJhZCAiICsgcGFyYW1ldGVyICsiIGluaXQgcGFyYW1ldGVy
IHZhbHVlIik7CisgICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWhlYWRlcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyMWRjNGU3MzIxZGUyNmM3ZmY5
MWEwZDZlNDJlMmM5YmVkNjAxYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaGVh
ZGVycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NiBAQAorCitQQVNTIEFkZGluZyB2YWxpZCBy
ZXF1ZXN0IGhlYWRlciAiQ29udGVudC1UeXBlOiBPSyIgCitQQVNTIEFkZGluZyB2YWxpZCByZXF1
ZXN0IGhlYWRlciAiUG90YXRvOiBPSyIgCitQQVNTIEFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRl
ciAicHJveHk6IE9LIiAKK1BBU1MgQWRkaW5nIHZhbGlkIHJlcXVlc3QgaGVhZGVyICJwcm94eWE6
IE9LIiAKK1BBU1MgQWRkaW5nIHZhbGlkIHJlcXVlc3QgaGVhZGVyICJzZWM6IE9LIiAKK1BBU1Mg
QWRkaW5nIHZhbGlkIHJlcXVlc3QgaGVhZGVyICJzZWNiOiBPSyIgCitQQVNTIEFkZGluZyBpbnZh
bGlkIHJlcXVlc3QgaGVhZGVyICJBY2NlcHQtQ2hhcnNldDogS08iIAorUEFTUyBBZGRpbmcgaW52
YWxpZCByZXF1ZXN0IGhlYWRlciAiYWNjZXB0LWNoYXJzZXQ6IEtPIiAKK1BBU1MgQWRkaW5nIGlu
dmFsaWQgcmVxdWVzdCBoZWFkZXIgIkFDQ0VQVC1FTkNPRElORzogS08iIAorUEFTUyBBZGRpbmcg
aW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQWNjZXB0LUVuY29kaW5nOiBLTyIgCitQQVNTIEFkZGlu
ZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LUhlYWRlcnM6
IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkFjY2Vzcy1Db250cm9s
LVJlcXVlc3QtTWV0aG9kOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVy
ICJDb25uZWN0aW9uOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJD
b250ZW50LUxlbmd0aDogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAi
Q29va2llOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJDb29raWUy
OiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJEYXRlOiBLTyIgCitQ
QVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJETlQ6IEtPIiAKK1BBU1MgQWRkaW5n
IGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkV4cGVjdDogS08iIAorUEFTUyBBZGRpbmcgaW52YWxp
ZCByZXF1ZXN0IGhlYWRlciAiSG9zdDogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0
IGhlYWRlciAiS2VlcC1BbGl2ZTogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhl
YWRlciAiT3JpZ2luOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJS
ZWZlcmVyOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJURTogS08i
IAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiVHJhaWxlcjogS08iIAorUEFT
UyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiVHJhbnNmZXItRW5jb2Rpbmc6IEtPIiAK
K1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlVwZ3JhZGU6IEtPIiAKK1BBU1Mg
QWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlZpYTogS08iIAorUEFTUyBBZGRpbmcgaW52
YWxpZCByZXF1ZXN0IGhlYWRlciAiUHJveHktOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJl
cXVlc3QgaGVhZGVyICJwcm94eS1hOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3Qg
aGVhZGVyICJTZWMtOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJz
ZWMtYjogS08iIAorUEFTUyBBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiQWNj
ZXB0OiBPSyIgCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJBY2Nl
cHQtTGFuZ3VhZ2U6IE9LIiAKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFk
ZXIgImNvbnRlbnQtbGFuZ3VhZ2U6IE9LIiAKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVx
dWVzdCBoZWFkZXIgImNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNv
ZGVkIiAKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgImNvbnRlbnQt
dHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgiIAor
UEFTUyBBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiY29udGVudC10eXBlOiBt
dWx0aXBhcnQvZm9ybS1kYXRhIiAKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBo
ZWFkZXIgImNvbnRlbnQtdHlwZTogbXVsdGlwYXJ0L2Zvcm0tZGF0YTtjaGFyc2V0PVVURi04IiAK
K1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgImNvbnRlbnQtVFlQRTog
dGV4dC9wbGFpbiIgCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJD
T05URU5ULXR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCIgCitQQVNTIEFkZGluZyBpbnZh
bGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgIkNvbnRlbnQtVHlwZTogS08iIAorUEFTUyBBZGRp
bmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJQb3RhdG86IEtPIiAKK1BBU1MgQWRk
aW5nIGludmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAicHJveHk6IEtPIiAKK1BBU1MgQWRk
aW5nIGludmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAicHJveHlhOiBLTyIgCitQQVNTIEFk
ZGluZyBpbnZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgInNlYzogS08iIAorUEFTUyBBZGRp
bmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJzZWNiOiBLTyIgCitQQVNTIENoZWNr
IHRoYXQgcmVxdWVzdCBjb25zdHJ1Y3RvciBpcyBmaWx0ZXJpbmcgaGVhZGVycyBwcm92aWRlZCBh
cyBpbml0IHBhcmFtZXRlciAKK1BBU1MgQ2hlY2sgdGhhdCBuby1jb3JzIHJlcXVlc3QgY29uc3Ry
dWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJhbWV0ZXIgCitQ
QVNTIENoZWNrIHRoYXQgbm8tY29ycyByZXF1ZXN0IGNvbnN0cnVjdG9yIGlzIGZpbHRlcmluZyBo
ZWFkZXJzIHByb3ZpZGVkIGFzIHBhcnQgb2YgcmVxdWVzdCBwYXJhbWV0ZXIgCitQQVNTIFJlcXVl
c3Qgc2hvdWxkIGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGluaXQgcmVxdWVzdCAKK1BB
U1MgUmVxdWVzdCBzaG91bGQgbm90IGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGluaXQg
cmVxdWVzdCBpZiBpbml0IGhlYWRlcnMgYXJlIHByb3ZpZGVkIAorUEFTUyBSZXF1ZXN0IHNob3Vs
ZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBib2R5IGlmIG5vbmUgaXMgcHJvdmlkZWQg
CitQQVNTIFJlcXVlc3Qgc2hvdWxkIGdldCBpdHMgY29udGVudC10eXBlIGZyb20gaW5pdCBoZWFk
ZXJzIGlmIG9uZSBpcyBwcm92aWRlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRl
cnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWJkZDYwMWNj
NDY2YWYwOTJjZDMwZjVkMWNjMjEwOWE4ZmE5M2Y0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1oZWFkZXJzLmh0bWwKQEAgLTAsMCArMSwxNTAgQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+
UmVxdWVzdCBIZWFkZXJzPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRw
czovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+CisgICAgPG1ldGEgbmFtZT0iYXV0
aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYu
Y2Fub24uZnIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgIHZh
ciB2YWxpZFJlcXVlc3RIZWFkZXJzID0gWworICAgICAgICBbIkNvbnRlbnQtVHlwZSIsICJPSyJd
LAorICAgICAgICBbIlBvdGF0byIsICJPSyJdLAorICAgICAgICBbInByb3h5IiwgIk9LIl0sCisg
ICAgICAgIFsicHJveHlhIiwgIk9LIl0sCisgICAgICAgIFsic2VjIiwgIk9LIl0sCisgICAgICAg
IFsic2VjYiIsICJPSyJdLAorICAgICAgXTsKKyAgICAgIHZhciBpbnZhbGlkUmVxdWVzdEhlYWRl
cnMgPSBbCisgICAgICAgIFsiQWNjZXB0LUNoYXJzZXQiLCAiS08iXSwKKyAgICAgICAgWyJhY2Nl
cHQtY2hhcnNldCIsICJLTyJdLAorICAgICAgICBbIkFDQ0VQVC1FTkNPRElORyIsICJLTyJdLAor
ICAgICAgICBbIkFjY2VwdC1FbmNvZGluZyIsICJLTyJdLAorICAgICAgICBbIkFjY2Vzcy1Db250
cm9sLVJlcXVlc3QtSGVhZGVycyIsICJLTyJdLAorICAgICAgICBbIkFjY2Vzcy1Db250cm9sLVJl
cXVlc3QtTWV0aG9kIiwgIktPIl0sCisgICAgICAgIFsiQ29ubmVjdGlvbiIsICJLTyJdLAorICAg
ICAgICBbIkNvbnRlbnQtTGVuZ3RoIiwgIktPIl0sCisgICAgICAgIFsiQ29va2llIiwgIktPIl0s
CisgICAgICAgIFsiQ29va2llMiIsICJLTyJdLAorICAgICAgICBbIkRhdGUiLCAiS08iXSwKKyAg
ICAgICAgWyJETlQiLCAiS08iXSwKKyAgICAgICAgWyJFeHBlY3QiLCAiS08iXSwKKyAgICAgICAg
WyJIb3N0IiwgIktPIl0sCisgICAgICAgIFsiS2VlcC1BbGl2ZSIsICJLTyJdLAorICAgICAgICBb
Ik9yaWdpbiIsICJLTyJdLAorICAgICAgICBbIlJlZmVyZXIiLCAiS08iXSwKKyAgICAgICAgWyJU
RSIsICJLTyJdLAorICAgICAgICBbIlRyYWlsZXIiLCAiS08iXSwKKyAgICAgICAgWyJUcmFuc2Zl
ci1FbmNvZGluZyIsICJLTyJdLAorICAgICAgICBbIlVwZ3JhZGUiLCAiS08iXSwKKyAgICAgICAg
WyJWaWEiLCAiS08iXSwKKyAgICAgICAgWyJQcm94eS0iLCAiS08iXSwKKyAgICAgICAgWyJwcm94
eS1hIiwgIktPIl0sCisgICAgICAgIFsiU2VjLSIsICJLTyJdLAorICAgICAgICBbInNlYy1iIiwg
IktPIl0sCisgICAgICBdOworCisgICAgICB2YXIgdmFsaWRSZXF1ZXN0Tm9Db3JzSGVhZGVycyA9
IFsKKyAgICAgICAgWyJBY2NlcHQiLCAiT0siXSwKKyAgICAgICAgWyJBY2NlcHQtTGFuZ3VhZ2Ui
LCAiT0siXSwKKyAgICAgICAgWyJjb250ZW50LWxhbmd1YWdlIiwgIk9LIl0sCisgICAgICAgIFsi
Y29udGVudC10eXBlIiwgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJdLAorICAg
ICAgICBbImNvbnRlbnQtdHlwZSIsICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7
Y2hhcnNldD1VVEYtOCJdLAorICAgICAgICBbImNvbnRlbnQtdHlwZSIsICJtdWx0aXBhcnQvZm9y
bS1kYXRhIl0sCisgICAgICAgIFsiY29udGVudC10eXBlIiwgIm11bHRpcGFydC9mb3JtLWRhdGE7
Y2hhcnNldD1VVEYtOCJdLAorICAgICAgICBbImNvbnRlbnQtVFlQRSIsICJ0ZXh0L3BsYWluIl0s
CisgICAgICAgIFsiQ09OVEVOVC10eXBlIiwgInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCJdLAor
ICAgICAgXTsKKyAgICAgIHZhciBpbnZhbGlkUmVxdWVzdE5vQ29yc0hlYWRlcnMgPSBbCisgICAg
ICAgIFsiQ29udGVudC1UeXBlIiwgIktPIl0sCisgICAgICAgIFsiUG90YXRvIiwgIktPIl0sCisg
ICAgICAgIFsicHJveHkiLCAiS08iXSwKKyAgICAgICAgWyJwcm94eWEiLCAiS08iXSwKKyAgICAg
ICAgWyJzZWMiLCAiS08iXSwKKyAgICAgICAgWyJzZWNiIiwgIktPIl0sCisgICAgICBdOworCisg
ICAgICB2YWxpZFJlcXVlc3RIZWFkZXJzLmZvckVhY2goZnVuY3Rpb24oaGVhZGVyKSB7CisgICAg
ICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVz
dCgiIik7CisgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzLnNldChoZWFkZXJbMF0sIGhlYWRlclsx
XSk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KGhlYWRlclsw
XSksIGhlYWRlclsxXSk7CisgICAgICAgIH0sICJBZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFkZXIg
XCIiICsgaGVhZGVyWzBdICsgIjogIiArIGhlYWRlclsxXSArICJcIiIpOworICAgICAgfSk7Cisg
ICAgICBpbnZhbGlkUmVxdWVzdEhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihoZWFkZXIpIHsKKyAg
ICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1
ZXN0KCIiKTsKKyAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMuc2V0KGhlYWRlclswXSwgaGVhZGVy
WzFdKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoaGVhZGVy
WzBdKSwgbnVsbCk7CisgICAgICAgIH0sICJBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciBc
IiIgKyBoZWFkZXJbMF0gKyAiOiAiICsgaGVhZGVyWzFdICsgIlwiIik7CisgICAgICB9KTsKKwor
ICAgICAgdmFsaWRSZXF1ZXN0Tm9Db3JzSGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKGhlYWRlcikg
eworICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciByZXF1ZXN0Tm9Db3Jz
ID0gbmV3IFJlcXVlc3QoIiIsIHsibW9kZSI6ICJuby1jb3JzIn0pOworICAgICAgICAgIHJlcXVl
c3ROb0NvcnMuaGVhZGVycy5zZXQoaGVhZGVyWzBdLCBoZWFkZXJbMV0pOworICAgICAgICAgIGFz
c2VydF9lcXVhbHMocmVxdWVzdE5vQ29ycy5oZWFkZXJzLmdldChoZWFkZXJbMF0pLCBoZWFkZXJb
MV0pOworICAgICAgICB9LCAiQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgXCIi
ICsgaGVhZGVyWzBdICsgIjogIiArIGhlYWRlclsxXSArICJcIiIpOworICAgICAgfSk7CisgICAg
ICBpbnZhbGlkUmVxdWVzdE5vQ29yc0hlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihoZWFkZXIpIHsK
KyAgICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgcmVxdWVzdE5vQ29ycyA9
IG5ldyBSZXF1ZXN0KCIiLCB7Im1vZGUiOiAibm8tY29ycyJ9KTsKKyAgICAgICAgICByZXF1ZXN0
Tm9Db3JzLmhlYWRlcnMuc2V0KGhlYWRlclswXSwgaGVhZGVyWzFdKTsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlcXVlc3ROb0NvcnMuaGVhZGVycy5nZXQoaGVhZGVyWzBdKSwgbnVsbCk7Cisg
ICAgICAgIH0sICJBZGRpbmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyIFwiIiArIGhl
YWRlclswXSArICI6ICIgKyBoZWFkZXJbMV0gKyAiXCIiKTsKKyAgICAgIH0pOworCisgICAgICB0
ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKFtbIkNv
b2tpZTIiLCAicG90YXRvIl1dKTsKKyAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgi
IiwgeyJoZWFkZXJzIjogaGVhZGVyc30pOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3Qu
aGVhZGVycy5nZXQoIkNvb2tpZTIiKSwgbnVsbCk7CisgICAgICB9LCAiQ2hlY2sgdGhhdCByZXF1
ZXN0IGNvbnN0cnVjdG9yIGlzIGZpbHRlcmluZyBoZWFkZXJzIHByb3ZpZGVkIGFzIGluaXQgcGFy
YW1ldGVyIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBoZWFkZXJz
ID0gbmV3IEhlYWRlcnMoW1siQ29udGVudC1UeXBlIiwgInBvdGF0byJdXSk7CisgICAgICAgIHZh
ciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyI6IGhlYWRlcnMsICJtb2RlIjog
Im5vLWNvcnMifSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldCgi
Q29udGVudC1UeXBlIiksIG51bGwpOworICAgICAgfSwgIkNoZWNrIHRoYXQgbm8tY29ycyByZXF1
ZXN0IGNvbnN0cnVjdG9yIGlzIGZpbHRlcmluZyBoZWFkZXJzIHByb3ZpZGVkIGFzIGluaXQgcGFy
YW1ldGVyIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBoZWFkZXJz
ID0gbmV3IEhlYWRlcnMoW1siQ29udGVudC1UeXBlIiwgInBvdGF0byJdXSk7CisgICAgICAgIHZh
ciBpbml0aWFsUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiOiBoZWFkZXJzfSk7
CisgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3QsIHsibW9k
ZSI6ICJuby1jb3JzIn0pOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5n
ZXQoIkNvbnRlbnQtVHlwZSIpLCBudWxsKTsKKyAgICAgIH0sICJDaGVjayB0aGF0IG5vLWNvcnMg
cmVxdWVzdCBjb25zdHJ1Y3RvciBpcyBmaWx0ZXJpbmcgaGVhZGVycyBwcm92aWRlZCBhcyBwYXJ0
IG9mIHJlcXVlc3QgcGFyYW1ldGVyIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAg
ICAgIHZhciBpbml0aWFsSGVhZGVycyA9IG5ldyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIsICJw
b3RhdG8iXV0pOworICAgICAgICB2YXIgaW5pdGlhbFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwg
eyJoZWFkZXJzIiA6IGluaXRpYWxIZWFkZXJzfSk7CisgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3
IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3QpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3Qu
aGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpLCAicG90YXRvIik7CisgICAgICB9LCAiUmVxdWVz
dCBzaG91bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSB0aGUgaW5pdCByZXF1ZXN0Iik7CisK
KyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBpbml0aWFsSGVhZGVycyA9IG5l
dyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIsICJwb3RhdG8iXV0pOworICAgICAgICB2YXIgaW5p
dGlhbFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIiA6IGluaXRpYWxIZWFkZXJz
fSk7CisgICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoW10pOworICAgICAgICB2YXIg
cmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGluaXRpYWxSZXF1ZXN0LCB7ImhlYWRlcnMiIDogaGVhZGVy
c30pOworICAgICAgICBhc3NlcnRfZmFsc2UocmVxdWVzdC5oZWFkZXJzLmhhcygiQ29udGVudC1U
eXBlIikpOworICAgICAgfSwgIlJlcXVlc3Qgc2hvdWxkIG5vdCBnZXQgaXRzIGNvbnRlbnQtdHlw
ZSBmcm9tIHRoZSBpbml0IHJlcXVlc3QgaWYgaW5pdCBoZWFkZXJzIGFyZSBwcm92aWRlZCIpOwor
CisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaW5pdGlhbEhlYWRlcnMgPSBu
ZXcgSGVhZGVycyhbWyJDb250ZW50LVR5cGUtRXh0cmEiLCAicG90YXRvIl1dKTsKKyAgICAgICAg
dmFyIGluaXRpYWxSZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyIgOiBpbml0aWFs
SGVhZGVycywgImJvZHkiIDogInRoaXMgaXMgbXkgcGxhdGUiLCAibWV0aG9kIiA6ICJQT1NUIn0p
OworICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGluaXRpYWxSZXF1ZXN0KTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKSwg
InRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCIpOworICAgICAgfSwgIlJlcXVlc3Qgc2hvdWxkIGdl
dCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGJvZHkgaWYgbm9uZSBpcyBwcm92aWRlZCIpOwor
CisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaW5pdGlhbEhlYWRlcnMgPSBu
ZXcgSGVhZGVycyhbWyJDb250ZW50LVR5cGUiLCAicG90YXRvIl1dKTsKKyAgICAgICAgdmFyIGlu
aXRpYWxSZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyIgOiBpbml0aWFsSGVhZGVy
cywgImJvZHkiIDogInRoaXMgaXMgbXkgcGxhdGUiLCAibWV0aG9kIiA6ICJQT1NUIn0pOworICAg
ICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGluaXRpYWxSZXF1ZXN0KTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKSwgInBvdGF0
byIpOworICAgICAgfSwgIlJlcXVlc3Qgc2hvdWxkIGdldCBpdHMgY29udGVudC10eXBlIGZyb20g
aW5pdCBoZWFkZXJzIGlmIG9uZSBpcyBwcm92aWRlZCIpOworCisgICAgPC9zY3JpcHQ+CisgIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pZGwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LWlkbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VjNjg4MjExZmM0
N2QxN2Y3NWQ4NGI3Y2ZiODk5ODM5ZTRhNzQ1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1pZGwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTIgQEAKKworRkFJTCBSZXF1ZXN0IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNz
ZXJ0X2VxdWFsczogY2xhc3Mgc3RyaW5nIG9mIFJlcXVlc3QgZXhwZWN0ZWQgIltvYmplY3QgRnVu
Y3Rpb25dIiBidXQgZ290ICJbb2JqZWN0IFJlcXVlc3RDb25zdHJ1Y3Rvcl0iCitQQVNTIFJlcXVl
c3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlIG9iamVj
dCBuYW1lIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorRkFJTCBSZXF1ZXN0IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
ImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfdHJ1ZTogUmVxdWVzdC5wcm90b3R5cGUuY29u
c3RydWN0b3IgaXMgbm90IHdyaXRhYmxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFJl
cXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWV0aG9kIGFzc2VydF9lcXVhbHM6IGdldHRlciBt
dXN0IGJlIEZ1bmN0aW9uIGV4cGVjdGVkICJmdW5jdGlvbiIgYnV0IGdvdCAidW5kZWZpbmVkIgor
RkFJTCBSZXF1ZXN0IGludGVyZmFjZTogYXR0cmlidXRlIHVybCBhc3NlcnRfZXF1YWxzOiBnZXR0
ZXIgbXVzdCBiZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5l
ZCIKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBoZWFkZXJzIGFzc2VydF9lcXVh
bHM6IGdldHRlciBtdXN0IGJlIEZ1bmN0aW9uIGV4cGVjdGVkICJmdW5jdGlvbiIgYnV0IGdvdCAi
dW5kZWZpbmVkIgorRkFJTCBSZXF1ZXN0IGludGVyZmFjZTogYXR0cmlidXRlIHR5cGUgYXNzZXJ0
X2VxdWFsczogZ2V0dGVyIG11c3QgYmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQg
Z290ICJ1bmRlZmluZWQiCitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZGVzdGlu
YXRpb24gYXNzZXJ0X2VxdWFsczogZ2V0dGVyIG11c3QgYmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1
bmN0aW9uIiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgcmVmZXJyZXIgYXNzZXJ0X2VxdWFsczogZ2V0dGVyIG11c3QgYmUgRnVuY3Rpb24gZXhw
ZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJlcXVlc3QgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgcmVmZXJyZXJQb2xpY3kgYXNzZXJ0X2VxdWFsczogZ2V0dGVyIG11c3Qg
YmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlM
IFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbW9kZSBhc3NlcnRfZXF1YWxzOiBnZXR0ZXIg
bXVzdCBiZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5lZCIK
K0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjcmVkZW50aWFscyBhc3NlcnRfZXF1
YWxzOiBnZXR0ZXIgbXVzdCBiZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1dCBnb3Qg
InVuZGVmaW5lZCIKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjYWNoZSBhc3Nl
cnRfZXF1YWxzOiBnZXR0ZXIgbXVzdCBiZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1
dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZWRp
cmVjdCBhc3NlcnRfZXF1YWxzOiBnZXR0ZXIgbXVzdCBiZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVu
Y3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBpbnRlZ3JpdHkgYXNzZXJ0X2VxdWFsczogZ2V0dGVyIG11c3QgYmUgRnVuY3Rpb24gZXhw
ZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290ICJ1bmRlZmluZWQiCitQQVNTIFJlcXVlc3QgaW50ZXJm
YWNlOiBvcGVyYXRpb24gY2xvbmUoKSAKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBib2R5VXNlZCBhc3NlcnRfZXF1YWxzOiBnZXR0ZXIgbXVzdCBiZSBGdW5jdGlvbiBleHBlY3Rl
ZCAiZnVuY3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBhcnJheUJ1ZmZlcigpIGFzc2VydF90aHJvd3M6IGNhbGxpbmcgb3BlcmF0aW9u
IHdpdGggdGhpcyA9IG51bGwgZGlkbid0IHRocm93IFR5cGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgIG1lbWJlckhvbGRlck9iamVjdFttZW1iZXIubi4uLiIg
ZGlkIG5vdCB0aHJvdworRkFJTCBSZXF1ZXN0IGludGVyZmFjZTogb3BlcmF0aW9uIGJsb2IoKSBh
c3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9wZXJhdGlvbiB3aXRoIHRoaXMgPSBudWxsIGRpZG4ndCB0
aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBt
ZW1iZXJIb2xkZXJPYmplY3RbbWVtYmVyLm4uLi4iIGRpZCBub3QgdGhyb3cKK0ZBSUwgUmVxdWVz
dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBmb3JtRGF0YSgpIGFzc2VydF90aHJvd3M6IGNhbGxpbmcg
b3BlcmF0aW9uIHdpdGggdGhpcyA9IG51bGwgZGlkbid0IHRocm93IFR5cGVFcnJvciBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIG1lbWJlckhvbGRlck9iamVjdFttZW1i
ZXIubi4uLiIgZGlkIG5vdCB0aHJvdworRkFJTCBSZXF1ZXN0IGludGVyZmFjZTogb3BlcmF0aW9u
IGpzb24oKSBhc3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9wZXJhdGlvbiB3aXRoIHRoaXMgPSBudWxs
IGRpZG4ndCB0aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3RbbWVtYmVyLm4uLi4iIGRpZCBub3QgdGhyb3cKK0ZB
SUwgUmVxdWVzdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiB0ZXh0KCkgYXNzZXJ0X3Rocm93czogY2Fs
bGluZyBvcGVyYXRpb24gd2l0aCB0aGlzID0gbnVsbCBkaWRuJ3QgdGhyb3cgVHlwZUVycm9yIGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgbWVtYmVySG9sZGVyT2JqZWN0
W21lbWJlci5uLi4uIiBkaWQgbm90IHRocm93CitQQVNTIFJlcXVlc3QgbXVzdCBiZSBwcmltYXJ5
IGludGVyZmFjZSBvZiBuZXcgUmVxdWVzdCgiIikgCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBu
ZXcgUmVxdWVzdCgiIikgCitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJtZXRob2QiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAK
K1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInVybCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDEpIAorUEFTUyBSZXF1ZXN0IGludGVy
ZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaGVhZGVycyIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgKDIpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVl
c3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
KDMpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiZGVzdGluYXRpb24iIHdpdGggdGhlIHByb3BlciB0eXBlICg0KSAKK1BBU1Mg
UmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InJlZmVycmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNSkgCitGQUlMIFJlcXVlc3QgaW50ZXJm
YWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZWZlcnJlclBvbGlj
eSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDYpIFVucmVjb2duaXplZCB0eXBlIFJlZmVycmVyUG9s
aWN5CitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJtb2RlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNykgCitQQVNTIFJlcXVlc3Qg
aW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjcmVkZW50
aWFscyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDgpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTog
bmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2FjaGUiIHdpdGggdGhlIHBy
b3BlciB0eXBlICg5KSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInJlZGlyZWN0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTAp
IAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiaW50ZWdyaXR5IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTEpIAorUEFTUyBSZXF1
ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xv
bmUiIHdpdGggdGhlIHByb3BlciB0eXBlICgxMikgCitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBu
ZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJib2R5VXNlZCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgKDEzKSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIi
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFycmF5QnVmZmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAoMTQpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiYmxvYiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDE1KSAKK1BBU1MgUmVx
dWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImZv
cm1EYXRhIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTYpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFj
ZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAianNvbiIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgKDE3KSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIi
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRleHQiIHdpdGggdGhlIHByb3BlciB0eXBlICgxOCkg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pZGwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pZGwu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wZmFlZmVlM2FhNDQ2MGM1Y2QwNjJlZjk4ZGZkNGE5ZGI5Y2NhN2Yx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWlkbC5odG1sCkBAIC0wLDAgKzEsODUg
QEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVxdWVzdCBpZGwgaW50ZXJmYWNlPC90aXRsZT4KKyAgICA8
bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVz
cG9uc2UiPgorICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZy
YW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KKyAgICA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+
CisgICAgPHNjcmlwdCBpZD0iYm9keS1pZGwiIHR5cGU9InRleHQvcGxhaW4iPgorICAgICAgdHlw
ZWRlZiBhbnkgSlNPTjsKKyAgICAgIHR5cGVkZWYgKEJsb2Igb3IgQnVmZmVyU291cmNlIG9yIEZv
cm1EYXRhIG9yIFVSTFNlYXJjaFBhcmFtcyBvciBVU1ZTdHJpbmcpIEJvZHlJbml0OworCisgICAg
ICBbTm9JbnRlcmZhY2VPYmplY3QsCisgICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KKyAg
ICAgIGludGVyZmFjZSBCb2R5IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
Ym9keVVzZWQ7CisgICAgICAgIFtOZXdPYmplY3RdIFByb21pc2U8QXJyYXlCdWZmZXI+IGFycmF5
QnVmZmVyKCk7CisgICAgICAgIFtOZXdPYmplY3RdIFByb21pc2U8QmxvYj4gYmxvYigpOworICAg
ICAgICBbTmV3T2JqZWN0XSBQcm9taXNlPEZvcm1EYXRhPiBmb3JtRGF0YSgpOworICAgICAgICBb
TmV3T2JqZWN0XSBQcm9taXNlPEpTT04+IGpzb24oKTsKKyAgICAgICAgW05ld09iamVjdF0gUHJv
bWlzZTxVU1ZTdHJpbmc+IHRleHQoKTsKKyAgICAgIH07CisgICAgPC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBpZD0icmVxdWVzdC1pZGwiIHR5cGU9InRleHQvcGxhaW4iPgorICAgICAgdHlwZWRlZiAo
UmVxdWVzdCBvciBVU1ZTdHJpbmcpIFJlcXVlc3RJbmZvOworCisgICAgICBbQ29uc3RydWN0b3Io
UmVxdWVzdEluZm8gaW5wdXQsIG9wdGlvbmFsIFJlcXVlc3RJbml0IGluaXQpLAorICAgICAgRXhw
b3NlZD0oV2luZG93LFdvcmtlcildCisgICAgICBpbnRlcmZhY2UgUmVxdWVzdCB7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBCeXRlU3RyaW5nIG1ldGhvZDsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFVTVlN0cmluZyB1cmw7CisgICAgICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBh
dHRyaWJ1dGUgSGVhZGVycyBoZWFkZXJzOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBS
ZXF1ZXN0VHlwZSB0eXBlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVzdERlc3Rp
bmF0aW9uIGRlc3RpbmF0aW9uOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5n
IHJlZmVycmVyOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVmZXJyZXJQb2xpY3kgcmVm
ZXJyZXJQb2xpY3k7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSZXF1ZXN0TW9kZSBtb2Rl
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRp
YWxzOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVzdENhY2hlIGNhY2hlOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVzdFJlZGlyZWN0IHJlZGlyZWN0OworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGludGVncml0eTsKKworICAgICAgICBbTmV3
T2JqZWN0XSBSZXF1ZXN0IGNsb25lKCk7CisgICAgICB9OworICAgICAgUmVxdWVzdCBpbXBsZW1l
bnRzIEJvZHk7CisKKyAgICAgIGRpY3Rpb25hcnkgUmVxdWVzdEluaXQgeworICAgICAgICBCeXRl
U3RyaW5nIG1ldGhvZDsKKyAgICAgICAgSGVhZGVyc0luaXQgaGVhZGVyczsKKyAgICAgICAgQm9k
eUluaXQ/IGJvZHk7CisgICAgICAgIFVTVlN0cmluZyByZWZlcnJlcjsKKyAgICAgICAgUmVmZXJy
ZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3k7CisgICAgICAgIFJlcXVlc3RNb2RlIG1vZGU7CisgICAg
ICAgIFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFsczsKKyAgICAgICAgUmVxdWVzdENhY2hl
IGNhY2hlOworICAgICAgICBSZXF1ZXN0UmVkaXJlY3QgcmVkaXJlY3Q7CisgICAgICAgIERPTVN0
cmluZyBpbnRlZ3JpdHk7CisgICAgICAgIGFueSB3aW5kb3c7IC8vIGNhbiBvbmx5IGJlIHNldCB0
byBudWxsCisgICAgICB9OworCisgICAgICBlbnVtIFJlcXVlc3RUeXBlIHsgIiIsICJhdWRpbyIs
ICJmb250IiwgImltYWdlIiwgInNjcmlwdCIsICJzdHlsZSIsICJ0cmFjayIsICJ2aWRlbyIgfTsK
KyAgICAgIGVudW0gUmVxdWVzdERlc3RpbmF0aW9uIHsgIiIsICJkb2N1bWVudCIsICJzaGFyZWR3
b3JrZXIiLCAic3VicmVzb3VyY2UiLCAidW5rbm93biIsICJ3b3JrZXIiIH07CisgICAgICBlbnVt
IFJlcXVlc3RNb2RlIHsgIm5hdmlnYXRlIiwgInNhbWUtb3JpZ2luIiwgIm5vLWNvcnMiLCAiY29y
cyIgfTsKKyAgICAgIGVudW0gUmVxdWVzdENyZWRlbnRpYWxzIHsgIm9taXQiLCAic2FtZS1vcmln
aW4iLCAiaW5jbHVkZSIgfTsKKyAgICAgIGVudW0gUmVxdWVzdENhY2hlIHsgImRlZmF1bHQiLCAi
bm8tc3RvcmUiLCAicmVsb2FkIiwgIm5vLWNhY2hlIiwgImZvcmNlLWNhY2hlIiwgIm9ubHktaWYt
Y2FjaGVkIiB9OworICAgICAgZW51bSBSZXF1ZXN0UmVkaXJlY3QgeyAiZm9sbG93IiwgImVycm9y
IiwgIm1hbnVhbCIgfTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgdmFyIGlk
bHNBcnJheSA9IG5ldyBJZGxBcnJheSgpOworICAgICAgdmFyIGlkbCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJib2R5LWlkbCIpLmlubmVySFRNTAorICAgICAgaWRsICs9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZXF1ZXN0LWlkbCIpLmlubmVySFRNTAorCisgICAgICBpZGxzQXJyYXku
YWRkX2lkbHMoaWRsKTsKKyAgICAgIGlkbHNBcnJheS5hZGRfdW50ZXN0ZWRfaWRscygiaW50ZXJm
YWNlIEhlYWRlcnMge307Iik7CisgICAgICBpZGxzQXJyYXkuYWRkX29iamVjdHMoeyBSZXF1ZXN0
OiBbJ25ldyBSZXF1ZXN0KCIiKSddIH0pOworICAgICAgaWRsc0FycmF5LnRlc3QoKTsKKyAgICA8
L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWlu
aXQtMDAxLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDEuc3ViLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZWY2NDlkYjg5MGZjZTUzNTI1YWFlNTdhYTgwYWRmMjYxZjll
ZTE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAxLnN1Yi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzNiBAQAorCitQQVNTIENoZWNrIG1ldGhvZCBpbml0IHZhbHVlIG9m
IEdFVCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIG1ldGhvZCBpbml0IHZhbHVl
IG9mIEhFQUQgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBtZXRob2QgaW5pdCB2
YWx1ZSBvZiBQT1NUIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgbWV0aG9kIGlu
aXQgdmFsdWUgb2YgUFVUIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgbWV0aG9k
IGluaXQgdmFsdWUgb2YgREVMRVRFIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sg
bWV0aG9kIGluaXQgdmFsdWUgb2YgT1BUSU9OUyBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNT
IENoZWNrIG1ldGhvZCBpbml0IHZhbHVlIG9mIGhlYWQgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAor
UEFTUyBDaGVjayByZWZlcnJlciBpbml0IHZhbHVlIG9mIC9yZWxhdGl2ZS9yZXNzb3VyY2UgYW5k
IGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayByZWZlcnJlciBpbml0IHZhbHVlIG9mIGh0
dHA6Ly9sb2NhbGhvc3Q6ODgwMC9yZWxhdGl2ZS9yZXNzb3VyY2U/cXVlcnk9dHJ1ZSNmcmFnbWVu
dCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIHJlZmVycmVyIGluaXQgdmFsdWUg
b2YgaHR0cDovL2xvY2FsaG9zdDo4ODAwLyBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENo
ZWNrIHJlZmVycmVyIGluaXQgdmFsdWUgb2YgIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1Mg
Q2hlY2sgcmVmZXJyZXJQb2xpY3kgaW5pdCB2YWx1ZSBvZiAgYW5kIGFzc29jaWF0ZWQgZ2V0dGVy
IAorUEFTUyBDaGVjayByZWZlcnJlclBvbGljeSBpbml0IHZhbHVlIG9mIG5vLXJlZmVycmVyIGFu
ZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgcmVmZXJyZXJQb2xpY3kgaW5pdCB2YWx1
ZSBvZiBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQ
QVNTIENoZWNrIHJlZmVycmVyUG9saWN5IGluaXQgdmFsdWUgb2Ygb3JpZ2luLW9ubHkgYW5kIGFz
c29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayByZWZlcnJlclBvbGljeSBpbml0IHZhbHVlIG9m
IG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENo
ZWNrIHJlZmVycmVyUG9saWN5IGluaXQgdmFsdWUgb2YgdW5zYWZlLXVybCBhbmQgYXNzb2NpYXRl
ZCBnZXR0ZXIgCitQQVNTIENoZWNrIG1vZGUgaW5pdCB2YWx1ZSBvZiBzYW1lLW9yaWdpbiBhbmQg
YXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIG1vZGUgaW5pdCB2YWx1ZSBvZiBuby1jb3Jz
IGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgbW9kZSBpbml0IHZhbHVlIG9mIGNv
cnMgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBjcmVkZW50aWFscyBpbml0IHZh
bHVlIG9mIG9taXQgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBjcmVkZW50aWFs
cyBpbml0IHZhbHVlIG9mIHNhbWUtb3JpZ2luIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1Mg
Q2hlY2sgY3JlZGVudGlhbHMgaW5pdCB2YWx1ZSBvZiBpbmNsdWRlIGFuZCBhc3NvY2lhdGVkIGdl
dHRlciAKK1BBU1MgQ2hlY2sgY2FjaGUgaW5pdCB2YWx1ZSBvZiBkZWZhdWx0IGFuZCBhc3NvY2lh
dGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgY2FjaGUgaW5pdCB2YWx1ZSBvZiBuby1zdG9yZSBhbmQg
YXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIGNhY2hlIGluaXQgdmFsdWUgb2YgcmVsb2Fk
IGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgY2FjaGUgaW5pdCB2YWx1ZSBvZiBu
by1jYWNoZSBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIGNhY2hlIGluaXQgdmFs
dWUgb2YgZm9yY2UtY2FjaGUgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayByZWRp
cmVjdCBpbml0IHZhbHVlIG9mIGZvbGxvdyBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENo
ZWNrIHJlZGlyZWN0IGluaXQgdmFsdWUgb2YgZXJyb3IgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAor
UEFTUyBDaGVjayByZWRpcmVjdCBpbml0IHZhbHVlIG9mIG1hbnVhbCBhbmQgYXNzb2NpYXRlZCBn
ZXR0ZXIgCitQQVNTIENoZWNrIGludGVncml0eSBpbml0IHZhbHVlIG9mICBhbmQgYXNzb2NpYXRl
ZCBnZXR0ZXIgCitQQVNTIENoZWNrIGludGVncml0eSBpbml0IHZhbHVlIG9mIEFaRVJUWVVJT1Ax
MjM0NTY3ODkwIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgd2luZG93IGluaXQg
dmFsdWUgb2YgbnVsbCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1pbml0LTAwMS5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMS5zdWIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hOGMzNmQ5ZjA3NWU5ZTZlZDk4OTliZjc3YTdhZTcxNTVmOTlhYmRlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAxLnN1Yi5odG1sCkBAIC0wLDAg
KzEsOTAgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVxdWVzdCBpbml0OiBzaW1wbGUgY2FzZXM8L3Rp
dGxlPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0
d2cub3JnLyNyZXF1ZXN0Ij4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBS
ZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+CisgICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgPC9o
ZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgdmFyIG1ldGhvZHMgPSB7ImdpdmVu
VmFsdWVzIiA6IFsiR0VUIiwgIkhFQUQiLCAiUE9TVCIsICJQVVQiLCAiREVMRVRFIiwgIk9QVElP
TlMiLCAiaGVhZCJdLAorICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkVmFsdWVzIiA6IFsi
R0VUIiwgIkhFQUQiLCAiUE9TVCIsICJQVVQiLCAiREVMRVRFIiwgIk9QVElPTlMiLCAiSEVBRCJd
CisgICAgICB9OworICAgICAgdmFyIHJlZmVycmVycyA9IHsiZ2l2ZW5WYWx1ZXMiIDogWyIvcmVs
YXRpdmUvcmVzc291cmNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiaHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fS9yZWxhdGl2ZS9yZXNzb3VyY2U/
cXVlcnk9dHJ1ZSNmcmFnbWVudCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImh0dHA6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBdWzBdfX0vIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkVmFsdWVz
IiA6IFsiaHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fS9yZWxhdGl2ZS9yZXNzb3Vy
Y2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8v
e3tob3N0fX06e3twb3J0c1todHRwXVswXX19L3JlbGF0aXZlL3Jlc3NvdXJjZT9xdWVyeT10cnVl
I2ZyYWdtZW50IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
aHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fS8iLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBdCisgICAgICB9OworICAgICAgdmFyIHJlZmVycmVyUG9saWNpZXMgPSB7
ImdpdmVuVmFsdWVzIiA6IFsgIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAibm8tcmVmZXJyZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIm5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmlnaW4tb25seSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JpZ2lu
LXdoZW4tY3Jvc3Mtb3JpZ2luIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ1bnNhZmUtdXJsIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0
ZWRWYWx1ZXMiIDogWyIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAibm8tcmVmZXJyZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAibm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JpZ2luLW9ubHki
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3Jp
Z2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInVuc2FmZS11cmwiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgIH07CisgICAgICB2YXIgbW9kZXMgPSB7
ImdpdmVuVmFsdWVzIiA6IFsic2FtZS1vcmlnaW4iLCAibm8tY29ycyIsICJjb3JzIl0sCisgICAg
ICAgICAgICAgICAgICAgImV4cGVjdGVkVmFsdWVzIiA6IFsic2FtZS1vcmlnaW4iLCAibm8tY29y
cyIsICJjb3JzIl0KKyAgICAgIH07CisgICAgICB2YXIgY3JlZGVudGlhbHMgPSB7ImdpdmVuVmFs
dWVzIiA6IFsib21pdCIsICJzYW1lLW9yaWdpbiIsICJpbmNsdWRlIl0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICJleHBlY3RlZFZhbHVlcyIgOiBbIm9taXQiLCAic2FtZS1vcmlnaW4iLCAi
aW5jbHVkZSJdCisgICAgICB9OworICAgICAgdmFyIGNhY2hlcyA9IHsiZ2l2ZW5WYWx1ZXMiIDog
WyAiZGVmYXVsdCIsICJuby1zdG9yZSIsICJyZWxvYWQiLCAibm8tY2FjaGUiLCAiZm9yY2UtY2Fj
aGUiXSwKKyAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkVmFsdWVzIiA6IFsgImRlZmF1bHQi
LCAibm8tc3RvcmUiLCAicmVsb2FkIiwgIm5vLWNhY2hlIiwgImZvcmNlLWNhY2hlIl0KKyAgICAg
IH07CisgICAgICB2YXIgcmVkaXJlY3RzID0geyJnaXZlblZhbHVlcyIgOiBbImZvbGxvdyIsICJl
cnJvciIsICJtYW51YWwiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkVmFsdWVz
IiA6IFsiZm9sbG93IiwgImVycm9yIiwgIm1hbnVhbCJdCisgICAgICB9OworICAgICAgdmFyIGlu
dGVncml0aWVzID0geyJnaXZlblZhbHVlcyIgOiBbIiIsICJBWkVSVFlVSU9QMTIzNDU2Nzg5MCIg
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWRWYWx1ZXMiIDogWyIiLCAiQVpF
UlRZVUlPUDEyMzQ1Njc4OTAiXQorICAgICAgfTsKKworICAgICAgLy90aGVyZSBpcyBubyBnZXR0
ZXIgZm9yIHdpbmRvdywgaW5pdCdzIHdpbmRvdyBtaWdodCBiZSBudWxsCisgICAgICB2YXIgd2lu
ZG93cyA9IHsiZ2l2ZW5WYWx1ZXMiIDogWyBudWxsIF0sCisgICAgICAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWRWYWx1ZXMiIDogW3VuZGVmaW5lZF0KKyAgICAgIH07CisKKyAgICAgIHZhciBpbml0
VmFsdWVzRGljdCA9IHsgIm1ldGhvZCIgOiBtZXRob2RzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicmVmZXJyZXIiIDogcmVmZXJyZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAicmVmZXJyZXJQb2xpY3kiIDogcmVmZXJyZXJQb2xpY2llcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIm1vZGUiIDogbW9kZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJjcmVkZW50aWFscyIgOiBjcmVkZW50aWFscywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImNhY2hlIiA6IGNhY2hlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJl
ZGlyZWN0IiA6IHJlZGlyZWN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVn
cml0eSIgOiBpbnRlZ3JpdGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpbmRv
dyIgOiB3aW5kb3dzCisgICAgICB9OworCisgICAgICBmb3IgKHZhciBhdHRyaWJ1dGVOYW1lIGlu
IGluaXRWYWx1ZXNEaWN0KSB7CisgICAgICAgIHZhciB2YWx1ZXNUb1Rlc3QgPSBpbml0VmFsdWVz
RGljdFthdHRyaWJ1dGVOYW1lXTsKKyAgICAgICAgZm9yICh2YXIgdmFsdWVJZHggaW4gdmFsdWVz
VG9UZXN0WyJnaXZlblZhbHVlcyJdKSB7CisgICAgICAgICAgdmFyIGdpdmVuVmFsdWUgPSB2YWx1
ZXNUb1Rlc3RbImdpdmVuVmFsdWVzIl1bdmFsdWVJZHhdOworICAgICAgICAgIHZhciBleHBlY3Rl
ZFZhbHVlID0gdmFsdWVzVG9UZXN0WyJleHBlY3RlZFZhbHVlcyJdW3ZhbHVlSWR4XTsKKyAgICAg
ICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIHJlcXVlc3RJbml0ID0ge307
CisgICAgICAgICAgICByZXF1ZXN0SW5pdFthdHRyaWJ1dGVOYW1lXSA9IGdpdmVuVmFsdWUKKyAg
ICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHJlcXVlc3RJbml0KTsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdFthdHRyaWJ1dGVOYW1lXSwgZXhwZWN0ZWRW
YWx1ZSwKKyAgICAgICAgICAgICAgIkV4cGVjdCByZXF1ZXN0J3MgIiArIGF0dHJpYnV0ZU5hbWUg
KyAiIGlzICIgKyBleHBlY3RlZFZhbHVlICsgIiB3aGVuIGluaXRpYWxpemVkIHdpdGggIiArIGdp
dmVuVmFsdWUpOworICAgICAgICAgIH0sICJDaGVjayAiICsgYXR0cmlidXRlTmFtZSArICIgaW5p
dCB2YWx1ZSBvZiAiICsgZ2l2ZW5WYWx1ZSArICIgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIik7Cisg
ICAgICAgIH0KKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVz
dC1pbml0LTAwMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWJjMmFiYWU3MGNlOTU1OTJlN2Yz
YjRlNjE5M2ZiMGE2N2Y0NDEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0
LTAwMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1
ZXN0IHdpdGggaGVhZGVycyB2YWx1ZXMgCitGQUlMIEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkg
d2l0aCBhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IHVuZGVmaW5lZAorRkFJTCBJbml0aWFsaXplIFJlcXVlc3QncyBi
b2R5IHdpdGggbXVsdGlwYXJ0L2Zvcm0tZGF0YSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCitQQVNTIEluaXRpYWxpemUgUmVxdWVzdCdzIGJv
ZHkgd2l0aCB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTggCitGQUlMIEluaXRpYWxpemUgUmVxdWVz
dCdzIGJvZHkgd2l0aCBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1V
VEYtOCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlVSTFNl
YXJjaFBhcmFtcyBub3Qgc3VwcG9ydGVkIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5p
dC0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhYWNj
NjdlNDMwMDc4MDQzYWRlM2QwMTY4NTY5OTU4NjAyMjI0YzkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3QtaW5pdC0wMDIuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRp
dGxlPlJlcXVlc3QgaW5pdDogaGVhZGVycyBhbmQgYm9keTwvdGl0bGU+CisgICAgPG1ldGEgbmFt
ZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgor
ICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJl
Zj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAg
IDxzY3JpcHQ+CisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaGVhZGVyRGlj
dCA9IHsibmFtZTEiOiAidmFsdWUxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUy
IjogInZhbHVlMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lMyI6ICJ2YWx1ZTMi
CisgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcg
SGVhZGVycyhoZWFkZXJEaWN0KTsKKyAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgi
IiwgeyAiaGVhZGVycyIgOiBoZWFkZXJzIH0pCisgICAgICAgIGZvciAodmFyIG5hbWUgaW4gaGVh
ZGVyRGljdCkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldChu
YW1lKSwgaGVhZGVyRGljdFtuYW1lXSwKKyAgICAgICAgICAgInJlcXVlc3QncyBoZWFkZXJzIGhh
cyAiICsgbmFtZSArICIgOiAiICsgaGVhZGVyRGljdFtuYW1lXSk7CisgICAgICAgIH0KKyAgICAg
IH0sICJJbml0aWFsaXplIFJlcXVlc3Qgd2l0aCBoZWFkZXJzIHZhbHVlcyIpOworCisgICAgICBm
dW5jdGlvbiBjaGVja1JlcXVlc3RJbml0KGJvZHksIGJvZHlUeXBlLCBleHBlY3RlZFRleHRCb2R5
KSB7CisgICAgICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgICAgICAgdmFy
IHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiUE9TVCIsICJib2R5IjogYm9k
eX0pOworICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJH
RVQiLCAiYm9keSI6IGJvZHl9KTsgfQorICAgICAgICAgICk7CisgICAgICAgICAgYXNzZXJ0X3Ro
cm93cyhuZXcgVHlwZUVycm9yKCksCisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigp
IHsgbmV3IFJlcXVlc3QoIiIsIHsibWV0aG9kIjogIkhFQUQiLCAiYm9keSI6IGJvZHl9KTsgfQor
ICAgICAgICAgICk7CisgICAgICAgICAgdmFyIHJlcUhlYWRlcnMgPSByZXF1ZXN0LmhlYWRlcnM7
CisgICAgICAgICAgdmFyIG1pbWUgPSByZXFIZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIik7Cisg
ICAgICAgICAgYXNzZXJ0X3RydWUobWltZSAmJiBtaW1lLnNlYXJjaChib2R5VHlwZSkgPiAtMSwg
IkNvbnRlbnQtVHlwZSBoZWFkZXIgc2hvdWxkIGJlIFwiIiArIGJvZHlUeXBlICsgIlwiLCBub3Qg
XCIiICsgbWltZSArICJcIiIpOworICAgICAgICAgIHJldHVybiByZXF1ZXN0LnRleHQoKS50aGVu
KGZ1bmN0aW9uKGJvZHlBc1RleHQpIHsKKyAgICAgICAgICAgIC8vbm90IGVxdWFsczogY2Fubm90
IGd1ZXNzIGZvcm1EYXRhIGV4YWN0IHZhbHVlCisgICAgICAgICAgICBhc3NlcnRfdHJ1ZSggYm9k
eUFzVGV4dC5zZWFyY2goZXhwZWN0ZWRUZXh0Qm9keSkgPiAtMSwgIlJldHJpZXZlIGFuZCB2ZXJp
ZnkgcmVxdWVzdCBib2R5Iik7CisgICAgICAgICAgfSk7CisgICAgICAgIH0sICJJbml0aWFsaXpl
IFJlcXVlc3QncyBib2R5IHdpdGggIiArIGJvZHlUeXBlKTsKKyAgICAgIH0KKworICAgICAgdmFy
IGJsb2IgPSBuZXcgQmxvYihbIlRoaXMgaXMgYSBibG9iIl0sIHt0eXBlOiAiYXBwbGljYXRpb24v
b2N0ZXQtYmluYXJ5In0pOworICAgICAgdmFyIGZvcm1hRGF0YSA9IG5ldyBGb3JtRGF0YSgpOwor
ICAgICAgZm9ybWFEYXRhLmFwcGVuZCgibmFtZSIsICJ2YWx1ZSIpOworICAgICAgdmFyIHVzdlN0
cmluZyA9ICJUaGlzIGlzIGEgVVNWU3RyaW5nIgorCisgICAgICBjaGVja1JlcXVlc3RJbml0KGJs
b2IsICJhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkiLCAiVGhpcyBpcyBhIGJsb2IiKTsKKyAgICAg
IGNoZWNrUmVxdWVzdEluaXQoZm9ybWFEYXRhLCAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIsICJuYW1l
PVwibmFtZVwiXHJcblxyXG52YWx1ZSIpOworICAgICAgY2hlY2tSZXF1ZXN0SW5pdCh1c3ZTdHJp
bmcsICJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiLCAiVGhpcyBpcyBhIFVTVlN0cmluZyIpOwor
CisgICAgICAvLyBFbnN1cmUgdGVzdCBkb2VzIG5vdCB0aW1lIG91dCBpbiBjYXNlIG9mIG1pc3Np
bmcgVVJMU2VhcmNoUGFyYW1zIHN1cHBvcnQuCisgICAgICBpZiAod2luZG93LlVSTFNlYXJjaFBh
cmFtcykgeworICAgICAgICB2YXIgdXJsU2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFt
cygibmFtZT12YWx1ZSIpOworICAgICAgICBjaGVja1JlcXVlc3RJbml0KHVybFNlYXJjaFBhcmFt
cywgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IiwgIm5h
bWU9dmFsdWUiKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHByb21pc2VfdGVzdChmdW5jdGlv
bih0ZXN0KSB7CisgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCJVUkxTZWFyY2hQYXJh
bXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICB9LCAiSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9k
eSB3aXRoIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04Iik7
CisgICAgICB9CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvcmVxdWVzdC1pbml0LTAwMy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWlu
aXQtMDAzLnN1Yi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFiZTc1NjBlMjhlOTg4ZTQ3NmMy
OGNjZDJmMmUyOWYwMmI4NWI3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0
LTAwMy5zdWItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitGQUlMIENoZWNrIHJlcXVl
c3QgdmFsdWVzIHdoZW4gaW5pdGlhbGl6ZWQgZnJvbSBSZXF1ZXN0IEV4cGVjdGVkVmFsdWVzRGlj
dFsiaGVhZGVycyJdLmtleXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnRXhwZWN0ZWRWYWx1ZXNE
aWN0WyJoZWFkZXJzIl0ua2V5cygpJywgJ0V4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmtl
eXMnIGlzIHVuZGVmaW5lZCkKK0ZBSUwgQ2hlY2sgcmVxdWVzdCB2YWx1ZXMgd2hlbiBpbml0aWFs
aXplZCBmcm9tIFJlcXVlc3QgYW5kIGluaXQgdmFsdWVzIEV4cGVjdGVkVmFsdWVzRGljdFsiaGVh
ZGVycyJdLmtleXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnRXhwZWN0ZWRWYWx1ZXNEaWN0WyJo
ZWFkZXJzIl0ua2V5cygpJywgJ0V4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmtleXMnIGlz
IHVuZGVmaW5lZCkKK0ZBSUwgQ2hlY2sgcmVxdWVzdCB2YWx1ZXMgd2hlbiBpbml0aWFsaXplZCBm
cm9tIHVybCBzdHJpbmcgYXNzZXJ0X2VxdWFsczogQ2hlY2sgdXJsIGF0dHJpYnV0ZSBleHBlY3Rl
ZCAiaHR0cDovL3VybC50ZXN0OjEyMzQvcGF0aC9zdWJwYXRoP3F1ZXJ5PXRydWUiIGJ1dCBnb3Qg
Imh0dHA6Ly91cmwudGVzdDoxMjM0L3BhdGgvc3VicGF0aD9xdWVyeT10cnVlI2ZyYWdtZW50Igor
RkFJTCBDaGVjayByZXF1ZXN0IHZhbHVlcyB3aGVuIGluaXRpYWxpemVkIGZyb20gdXJsIGFuZCBp
bml0IHZhbHVlcyBFeHBlY3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ0V4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmtleXMoKScsICdFeHBl
Y3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzJyBpcyB1bmRlZmluZWQpCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAw
My5zdWIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODM2ODAxNTIxNjhhZWJkNzk2YjIxYzY5MmJiYjg2OWM0
N2RlYzExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAzLnN1Yi5odG1s
CkBAIC0wLDAgKzEsODQgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVxdWVzdDogaW5pdCB3aXRoIHJl
cXVlc3Qgb3IgdXJsPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczov
L2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+CisgICAgPG1ldGEgbmFtZT0iaGVscCIg
aHJlZj0iaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LXVybC1zZXJpYWxpemVy
Ij4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2Ui
IGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3V0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0PgorICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyggeyJuYW1lIjoidmFsdWUi
fSApOworICAgICAgdmFyIGVtcHR5SGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7CisKKyAgICAgIHZh
ciBpbml0VmFsdWVzRGljdCA9IHsibWV0aG9kIiA6ICJQT1NUIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicmVmZXJyZXIiIDogImh0dHA6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBdWzBd
fX0vIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJyZXJQb2xpY3kiIDogIm9y
aWdpbi1vbmx5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW9kZSIgOiAic2FtZS1v
cmlnaW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjcmVkZW50aWFscyIgOiAiaW5j
bHVkZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhY2hlIiA6ICJuby1jYWNoZSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZGlyZWN0IiA6ICJlcnJvciIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImludGVncml0eSIgOiAiUmVxdWVzdCdzIEludGVncml0
eSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhlYWRlcnMiIDogaGVhZGVycywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiYm9keSIgOiAiUmVxdWVzdCdzIGJvZHkiCisgICAg
ICB9OworCisgICAgICB2YXIgZXhwZWN0ZWRJbml0aWFsaXplZCA9IHsibWV0aG9kIiA6ICJQT1NU
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZlcnJlciIgOiAiaHR0cDov
L3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fS8iLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInJlZmVycmVyUG9saWN5IiA6ICJvcmlnaW4tb25seSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAibW9kZSIgOiAic2FtZS1vcmlnaW4iLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImNyZWRlbnRpYWxzIiA6ICJpbmNsdWRlIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJjYWNoZSIgOiAibm8tY2FjaGUiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInJlZGlyZWN0IiA6ICJlcnJvciIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWdyaXR5IiA6ICJSZXF1ZXN0J3MgSW50ZWdyaXR5
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoZWFkZXJzIiA6IGhlYWRlcnMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYm9keSIgOiAiUmVxdWVzdCdzIGJv
ZHkiCisgICAgICB9OworCisgICAgICB2YXIgZXhwZWN0ZWREZWZhdWx0ID0geyJtZXRob2QiIDog
IkdFVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwiIDogbG9jYXRpb24ucmVm
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJyZXIiIDogImFib3V0OmNsaWVu
dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZlcnJlclBvbGljeSIgOiAiIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vZGUiIDogImNvcnMiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiY3JlZGVudGlhbHMiIDogIm9taXQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiY2FjaGUiIDogImRlZmF1bHQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicmVkaXJlY3QiIDogImZvbGxvdyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJpbnRlZ3JpdHkiIDogIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJo
ZWFkZXJzIiA6IGVtcHR5SGVhZGVycworICAgICAgfTsKKworICAgICAgdmFyIFJlcXVlc3REZWZh
dWx0ID0gbmV3IFJlcXVlc3QoIiIpOworICAgICAgdmFyIFJlcXVlc3RJbml0aWFsaXplZCA9IG5l
dyBSZXF1ZXN0KCIiLCBpbml0VmFsdWVzRGljdCk7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7
CisgICAgICAgIHZhciByZXF1ZXN0VG9DaGVjayA9IG5ldyBSZXF1ZXN0KFJlcXVlc3RJbml0aWFs
aXplZCk7CisgICAgICAgIGNoZWNrUmVxdWVzdChyZXF1ZXN0VG9DaGVjaywgZXhwZWN0ZWRJbml0
aWFsaXplZCk7CisgICAgICB9LCAiQ2hlY2sgcmVxdWVzdCB2YWx1ZXMgd2hlbiBpbml0aWFsaXpl
ZCBmcm9tIFJlcXVlc3QiKTsKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFy
IHJlcXVlc3RUb0NoZWNrID0gbmV3IFJlcXVlc3QoUmVxdWVzdERlZmF1bHQsIGluaXRWYWx1ZXNE
aWN0KTsKKyAgICAgICAgY2hlY2tSZXF1ZXN0KHJlcXVlc3RUb0NoZWNrLCBleHBlY3RlZEluaXRp
YWxpemVkKTsKKyAgICAgIH0sICJDaGVjayByZXF1ZXN0IHZhbHVlcyB3aGVuIGluaXRpYWxpemVk
IGZyb20gUmVxdWVzdCBhbmQgaW5pdCB2YWx1ZXMiKTsKKworICAgICAgdGVzdChmdW5jdGlvbigp
IHsKKyAgICAgICAgdmFyIHVybCA9ICJodHRwOi8vdXJsLnRlc3Q6MTIzNC9wYXRoL3N1YnBhdGg/
cXVlcnk9dHJ1ZSI7CisgICAgICAgIGV4cGVjdGVkRGVmYXVsdFsidXJsIl0gPSB1cmw7CisgICAg
ICAgIHVybCArPSAiI2ZyYWdtZW50IjsKKyAgICAgICAgdmFyIHJlcXVlc3RUb0NoZWNrID0gbmV3
IFJlcXVlc3QodXJsKTsKKyAgICAgICAgY2hlY2tSZXF1ZXN0KHJlcXVlc3RUb0NoZWNrLCBleHBl
Y3RlZERlZmF1bHQpOworICAgICAgfSwgIkNoZWNrIHJlcXVlc3QgdmFsdWVzIHdoZW4gaW5pdGlh
bGl6ZWQgZnJvbSB1cmwgc3RyaW5nIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAg
ICAgIHZhciB1cmwgPSAiaHR0cDovL3VybC50ZXN0OjEyMzQvcGF0aC9zdWJwYXRoP3F1ZXJ5PXRy
dWUiOworICAgICAgICBleHBlY3RlZEluaXRpYWxpemVkWyJ1cmwiXSA9IHVybDsKKyAgICAgICAg
dXJsICs9ICIjZnJhZ21lbnQiOworICAgICAgICB2YXIgcmVxdWVzdFRvQ2hlY2sgPSBuZXcgUmVx
dWVzdCh1cmwgLCBpbml0VmFsdWVzRGljdCk7CisgICAgICAgIGNoZWNrUmVxdWVzdChyZXF1ZXN0
VG9DaGVjaywgZXhwZWN0ZWRJbml0aWFsaXplZCk7CisgICAgICB9LCAiQ2hlY2sgcmVxdWVzdCB2
YWx1ZXMgd2hlbiBpbml0aWFsaXplZCBmcm9tIHVybCBhbmQgaW5pdCB2YWx1ZXMiKTsKKyAgICA8
L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0
cnVjdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45Mzc0OTU3MjVjMjg2YTJiNDBhMDQxNWQxMzRjYWI5YjZmN2I3MjFiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyMSBAQAorCitQQVNTIFJlcXVlc3QgaGFzIGNsb25lIG1ldGhvZCAKK1BBU1MgUmVx
dWVzdCBoYXMgYXJyYXlCdWZmZXIgbWV0aG9kIAorUEFTUyBSZXF1ZXN0IGhhcyBibG9iIG1ldGhv
ZCAKK1BBU1MgUmVxdWVzdCBoYXMgZm9ybURhdGEgbWV0aG9kIAorUEFTUyBSZXF1ZXN0IGhhcyBq
c29uIG1ldGhvZCAKK1BBU1MgUmVxdWVzdCBoYXMgdGV4dCBtZXRob2QgCitQQVNTIENoZWNrIG1l
dGhvZCBhdHRyaWJ1dGUgCitQQVNTIENoZWNrIHVybCBhdHRyaWJ1dGUgCitQQVNTIENoZWNrIGhl
YWRlcnMgYXR0cmlidXRlIAorUEFTUyBDaGVjayB0eXBlIGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sg
ZGVzdGluYXRpb24gYXR0cmlidXRlIAorUEFTUyBDaGVjayByZWZlcnJlciBhdHRyaWJ1dGUgCitQ
QVNTIENoZWNrIHJlZmVycmVyUG9saWN5IGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgbW9kZSBhdHRy
aWJ1dGUgCitQQVNTIENoZWNrIGNyZWRlbnRpYWxzIGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgY2Fj
aGUgYXR0cmlidXRlIAorUEFTUyBDaGVjayByZWRpcmVjdCBhdHRyaWJ1dGUgCitQQVNTIENoZWNr
IGludGVncml0eSBhdHRyaWJ1dGUgCitQQVNTIENoZWNrIGJvZHlVc2VkIGF0dHJpYnV0ZSAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0
cnVjdHVyZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiZTZjZWU5OTlmMzFiM2I2MDIyNmNiOTkyY2E2YzEx
NzBhZTI3MmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmh0bWwK
QEAgLTAsMCArMSwxMzQgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVxdWVzdCBzdHJ1Y3R1cmU8L3Rp
dGxlPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0
d2cub3JnLyNyZXF1ZXN0Ij4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBS
ZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+CisgICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgPC9o
ZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVx
dWVzdCgiIik7CisgICAgICB2YXIgbWV0aG9kcyA9IFsiY2xvbmUiLAorICAgICAgICAgICAgICAg
ICAgICAgLy9SZXF1ZXN0IGltcGxlbWVudHMgQm9keQorICAgICAgICAgICAgICAgICAgICAgImFy
cmF5QnVmZmVyIiwKKyAgICAgICAgICAgICAgICAgICAgICJibG9iIiwKKyAgICAgICAgICAgICAg
ICAgICAgICJmb3JtRGF0YSIsCisgICAgICAgICAgICAgICAgICAgICAianNvbiIsCisgICAgICAg
ICAgICAgICAgICAgICAidGV4dCIKKyAgICAgICAgICAgICAgICAgICAgXTsKKyAgICAgIHZhciBh
dHRyaWJ1dGVzID0gWyJtZXRob2QiLAorICAgICAgICAgICAgICAgICAgICAgICAgInVybCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAiaGVhZGVycyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAidHlwZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAiZGVzdGluYXRpb24iLAorICAgICAg
ICAgICAgICAgICAgICAgICAgInJlZmVycmVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJy
ZWZlcnJlclBvbGljeSIsCisgICAgICAgICAgICAgICAgICAgICAgICAibW9kZSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAiY3JlZGVudGlhbHMiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ImNhY2hlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZWRpcmVjdCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAiaW50ZWdyaXR5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vUmVx
dWVzdCBpbXBsZW1lbnRzIEJvZHkKKyAgICAgICAgICAgICAgICAgICAgICAgICJib2R5VXNlZCIK
KyAgICAgICAgICAgICAgICAgICAgICAgXTsKKworICAgICAgZnVuY3Rpb24gSXNyZWFkT25seShy
ZXF1ZXN0LCBhdHRyaWJ1dGVUb0NoZWNrKSB7CisgICAgICAgIHZhciBkZWZhdWx0VmFsdWUgPSB1
bmRlZmluZWQ7CisgICAgICAgIHZhciBuZXdWYWx1ZSA9IHVuZGVmaW5lZDsKKyAgICAgICAgc3dp
dGNoIChhdHRyaWJ1dGVUb0NoZWNrKSB7CisgICAgICAgICAgY2FzZSAibWV0aG9kIjoKKyAgICAg
ICAgICAgIGRlZmF1bHRWYWx1ZSA9ICJHRVQiOworICAgICAgICAgICAgbmV3VmFsdWUgPSAiUE9T
VCI7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgInVybCI6CisgICAgICAg
ICAgICAvL2RlZmF1bHQgdmFsdWUgaXMgYmFzZSB1cmwKKyAgICAgICAgICAgIC8vaS5lIGh0dHA6
Ly93ZWItcGxhdGZvcm0udGVzdDo4MDAwL2ZldGNoL2FwaS9yZXF1ZXN0LXN0cnVjdHVyZS5odG1s
CisgICAgICAgICAgICBuZXdWYWx1ZSA9ICJodHRwOi8vdXJsLnRlc3QiOworICAgICAgICAgICAg
YnJlYWs7CisKKyAgICAgICAgICBjYXNlICJoZWFkZXJzIjoKKyAgICAgICAgICAgIHJlcXVlc3Qu
aGVhZGVycyA9IG5ldyBIZWFkZXJzICh7Im5hbWUiOiJ2YWx1ZSJ9KTsKKyAgICAgICAgICAgIGFz
c2VydF9mYWxzZShyZXF1ZXN0LmhlYWRlcnMuaGFzKCJuYW1lIiksICJIZWFkZXJzIGF0dHJpYnV0
ZSBpcyByZWFkIG9ubHkiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgICAgY2FzZSAidHlwZSI6CisgICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSAi
IjsKKyAgICAgICAgICAgIG5ld1ZhbHVlID0gInN0eWxlIjsKKyAgICAgICAgICAgIGJyZWFrOwor
CisgICAgICAgICAgY2FzZSAiZGVzdGluYXRpb24iOgorICAgICAgICAgICAgZGVmYXVsdFZhbHVl
ID0gIiI7CisgICAgICAgICAgICBuZXdWYWx1ZSA9ICJ3b3JrZXIiOworICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgICBjYXNlICJyZWZlcnJlciI6CisgICAgICAgICAgICBkZWZhdWx0VmFs
dWUgPSAiYWJvdXQ6Y2xpZW50IjsKKyAgICAgICAgICAgIG5ld1ZhbHVlID0gImh0dHA6Ly91cmwu
dGVzdCI7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgInJlZmVycmVyUG9s
aWN5IjoKKyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICIiOworICAgICAgICAgICAgbmV3VmFs
dWUgPSAidW5zYWZlLXVybCI7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2Ug
Im1vZGUiOgorICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gImNvcnMiOworICAgICAgICAgICAg
bmV3VmFsdWUgPSAibmF2aWdhdGUiOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICBj
YXNlICJjcmVkZW50aWFscyI6CisgICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSAib21pdCI7Cisg
ICAgICAgICAgICBuZXdWYWx1ZSA9ICJjb3JzIjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgY2FzZSAiY2FjaGUiOgorICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gImRlZmF1bHQi
OworICAgICAgICAgICAgbmV3VmFsdWUgPSAicmVsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOwor
CisgICAgICAgICAgY2FzZSAicmVkaXJlY3QiOgorICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0g
ImZvbGxvdyI7CisgICAgICAgICAgICBuZXdWYWx1ZSA9ICJtYW51YWwiOworICAgICAgICAgICAg
YnJlYWs7CisKKyAgICAgICAgICBjYXNlICJpbnRlZ3JpdHkiOgorICAgICAgICAgICAgbmV3VmFs
dWUgPSAiQ2Fubm90V3JpdGVJbnRlZ3JpdHkiOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg
ICAgICBjYXNlICJib2R5VXNlZCI6CisgICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSBmYWxzZTsK
KyAgICAgICAgICAgIG5ld1ZhbHVlID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IHJlcXVlc3RbYXR0cmlidXRlVG9DaGVja10gPSBuZXdWYWx1ZTsKKyAgICAgICAgaWYgKGRlZmF1
bHRWYWx1ZSA9PT0gdW5kZWZpbmVkKQorICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHJlcXVl
c3RbYXR0cmlidXRlVG9DaGVja10sIG5ld1ZhbHVlLCAiQXR0cmlidXRlICIgKyBhdHRyaWJ1dGVU
b0NoZWNrICsgIiBpcyByZWFkIG9ubHkiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMocmVxdWVzdFthdHRyaWJ1dGVUb0NoZWNrXSwgZGVmYXVsdFZhbHVlLAorICAgICAg
ICAgICAiQXR0cmlidXRlICIgKyBhdHRyaWJ1dGVUb0NoZWNrICsgIiBpcyByZWFkIG9ubHkuIERl
ZmF1bHQgdmFsdWUgaXMgIiArIGRlZmF1bHRWYWx1ZSk7CisgICAgICB9CisKKyAgICAgIGZvciAo
dmFyIGlkeCBpbiBtZXRob2RzKSB7CisgICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgYXNzZXJ0X3RydWUobWV0aG9kc1tpZHhdIGluIHJlcXVlc3QsICJyZXF1ZXN0IGhhcyAiICsg
bWV0aG9kc1tpZHhdICsgIiBtZXRob2QiKTsKKyAgICAgICAgfSwgIlJlcXVlc3QgaGFzICIgKyBt
ZXRob2RzW2lkeF0gKyAiIG1ldGhvZCIpOworICAgICAgfQorCisgICAgICBmb3IgKHZhciBpZHgg
aW4gYXR0cmlidXRlcykgeworICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIGFz
c2VydF90cnVlKGF0dHJpYnV0ZXNbaWR4XSBpbiByZXF1ZXN0LCAicmVxdWVzdCBoYXMgIiArIGF0
dHJpYnV0ZXNbaWR4XSArICIgYXR0cmlidXRlIik7CisgICAgICAgICAgSXNyZWFkT25seShyZXF1
ZXN0LCBhdHRyaWJ1dGVzW2lkeF0pOworICAgICAgICB9LCAiQ2hlY2sgIiArIGF0dHJpYnV0ZXNb
aWR4XSArICIgYXR0cmlidXRlIik7CisgICAgICB9CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9hdXRoZW50aWNhdGlvbi5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9h
dXRoZW50aWNhdGlvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMDZkMTc5ZTU4ZWJiYmIwYjRiOTdmNzFjNDc1
ZDQ5MjdkM2E1Y2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2F1dGhlbnRpY2F0aW9uLnB5
CkBAIC0wLDAgKzEsMTUgQEAKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICB1c2Vy
ID0gcmVxdWVzdC5hdXRoLnVzZXJuYW1lCisgICAgcGFzc3dvcmQgPSByZXF1ZXN0LmF1dGgucGFz
c3dvcmQKKworICAgIGlmIHVzZXIgPT0gInVzZXIiIGFuZCBwYXNzd29yZCA9PSAicGFzc3dvcmQi
OgorICAgICAgICByZXR1cm4gIkF1dGhlbnRpY2F0aW9uIGRvbmUiCisKKyAgICByZWFsbSA9ICJ0
ZXN0IgorICAgIGlmICJyZWFsbSIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIHJlYWxtID0gcmVx
dWVzdC5HRVQuZmlyc3QoInJlYWxtIikKKworICAgIHJldHVybiAoKDQwMSwgIlVuYXV0aG9yaXpl
ZCIpLAorICAgICAgICAgICAgWygiV1dXLUF1dGhlbnRpY2F0ZSIsICdCYXNpYyByZWFsbT0iJyAr
IHJlYWxtICsgJyInKV0sCisgICAgICAgICAgICAiUGxlYXNlIGxvZ2luIHdpdGggY3JlZGVudGlh
bHMgJ3VzZXInIGFuZCAncGFzc3dvcmQnIikKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2NsZWFuLXN0
YXNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzb3VyY2VzL2NsZWFuLXN0YXNoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhZTczMTA1MjY5MmUw
NDhhMDdkNjVhNmUwMTVmZTVhNzYzNjIwOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvY2xl
YW4tc3Rhc2gucHkKQEAgLTAsMCArMSw2IEBACitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6
CisgICAgdG9rZW4gPSByZXF1ZXN0LkdFVC5maXJzdCgidG9rZW4iKQorICAgIGlmIHJlcXVlc3Qu
c2VydmVyLnN0YXNoLnRha2UodG9rZW4pIGlzIG5vdCBOb25lOgorICAgICAgICByZXR1cm4gIjEi
CisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuICIwIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2luc3Bl
Y3QtaGVhZGVycy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9pbnNwZWN0LWhlYWRlcnMucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRh
Y2UxOGFiNjRiMTFlOWMwOTA1NGMwOGJlMmQ0ZDIyZjcwMjY0ZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c291cmNlcy9pbnNwZWN0LWhlYWRlcnMucHkKQEAgLTAsMCArMSwyMiBAQAorZGVmIG1haW4ocmVx
dWVzdCwgcmVzcG9uc2UpOgorICAgIGhlYWRlcnMgPSBbXQorICAgIHJlcXVlc3RfaGVhZGVycyA9
IFtdCisgICAgaWYgImhlYWRlcnMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICBjaGVja2VkX2hl
YWRlcnMgPSByZXF1ZXN0LkdFVC5maXJzdCgiaGVhZGVycyIpLnNwbGl0KCJ8IikKKyAgICAgICAg
Zm9yIGhlYWRlciBpbiBjaGVja2VkX2hlYWRlcnM6CisgICAgICAgICAgaWYgaGVhZGVyIGluIHJl
cXVlc3QuaGVhZGVyczoKKyAgICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJ4LXJlcXVlc3Qt
IiArIGhlYWRlciwgcmVxdWVzdC5oZWFkZXJzLmdldChoZWFkZXIsICIiKSApKQorCisgICAgaWYg
ImNvcnMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICBpZiAiT3JpZ2luIiBpbiByZXF1ZXN0Lmhl
YWRlcnM6CisgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93
LU9yaWdpbiIsIHJlcXVlc3QuaGVhZGVycy5nZXQoIk9yaWdpbiIsICIiKSkpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9y
aWdpbiIsICIqIikpCisgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxs
b3ctQ3JlZGVudGlhbHMiLCAidHJ1ZSIpKQorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vz
cy1Db250cm9sLUFsbG93LU1ldGhvZHMiLCAiR0VULCBQT1NULCBIRUFEIikpCisgICAgICAgIGV4
cG9zZWRfaGVhZGVycyA9IFsieC1yZXF1ZXN0LSIgKyBoZWFkZXIgZm9yIGhlYWRlciBpbiBjaGVj
a2VkX2hlYWRlcnNdCisgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtRXhw
b3NlLUhlYWRlcnMiLCAiLCAiLmpvaW4oZXhwb3NlZF9oZWFkZXJzKSkpCisgICAgICAgIGhlYWRl
cnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsICIsICIuam9pbihyZXF1
ZXN0LmhlYWRlcnMpKSkKKworICAgIGhlYWRlcnMuYXBwZW5kKCgiY29udGVudC10eXBlIiwgInRl
eHQvcGxhaW4iKSkKKyAgICByZXR1cm4gaGVhZGVycywgIiIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9t
ZXRob2QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNvdXJjZXMvbWV0aG9kLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhYzU2ZGU2OThiYjhmMDE5
MjJkMmRkNmNjODg2ODJlMzFjYjYzNGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvbWV0aG9k
LnB5CkBAIC0wLDAgKzEsMTEgQEAKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBo
ZWFkZXJzID0gW10KKyAgICBpZiAiY29ycyIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIGhlYWRl
cnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgIioiKSkKKyAgICAgICAg
aGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFscyIsICJ0cnVl
IikpCisgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9k
cyIsICJHRVQsIFBPU1QsIFBVVCwgRk9PIikpCisgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNj
ZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsICJ4LXRlc3QsIHgtZm9vIikpCisgICAgICAgIGhl
YWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMiLCAieC1yZXF1ZXN0
LW1ldGhvZCIpKQorCisgICAgaGVhZGVycy5hcHBlbmQoKCJ4LXJlcXVlc3QtbWV0aG9kIiwgcmVx
dWVzdC5tZXRob2QpKQorICAgIHJldHVybiBoZWFkZXJzLCAiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2Vz
L3ByZWZsaWdodC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9wcmVmbGlnaHQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJkY2ViYTY4
M2Q4ZGY2OWQxZWJmYjcwM2FjMGNiNTk5YzBlOWQ0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNl
cy9wcmVmbGlnaHQucHkKQEAgLTAsMCArMSw1NiBAQAorZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9u
c2UpOgorICAgIGhlYWRlcnMgPSBbKCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIpXQorICAg
IHN0YXNoZWRfZGF0YSA9IHsnY29udHJvbF9yZXF1ZXN0X2hlYWRlcnMnOiAiIiwgJ3ByZWZsaWdo
dCc6ICIwIiwgJ3ByZWZsaWdodF9yZWZlcnJlcic6ICIifQorCisgICAgaWYgIm9yaWdpbiIgaW4g
cmVxdWVzdC5HRVQ6CisgICAgICAgIGZvciBvcmlnaW4gaW4gcmVxdWVzdC5HRVRbJ29yaWdpbidd
LnNwbGl0KCIsICIpOgorICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJv
bC1BbGxvdy1PcmlnaW4iLCBvcmlnaW4pKQorICAgIGVsc2U6CisgICAgICAgIGhlYWRlcnMuYXBw
ZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgIioiKSkKKworICAgIGlmIHJlcXVl
c3QubWV0aG9kID09ICJPUFRJT05TIjoKKyAgICAgICAgaWYgbm90ICJBY2Nlc3MtQ29udHJvbC1S
ZXF1ZXN0LU1ldGhvZCIgaW4gcmVxdWVzdC5oZWFkZXJzOgorICAgICAgICAgICAgcmVzcG9uc2Uu
c2V0X2Vycm9yKDQwMCwgIk5vIEFjY2Vzcy1Db250cm9sLVJlcXVlc3QtTWV0aG9kIGhlYWRlciIp
CisgICAgICAgICAgICByZXR1cm4gIkVSUk9SOiBObyBhY2Nlc3MtY29udHJvbC1yZXF1ZXN0LW1l
dGhvZCBpbiBwcmVmbGlnaHQhIgorCisgICAgICAgIGlmICJjb250cm9sX3JlcXVlc3RfaGVhZGVy
cyIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgICAgICBzdGFzaGVkX2RhdGFbJ2NvbnRyb2xfcmVx
dWVzdF9oZWFkZXJzJ10gPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJBY2Nlc3MtQ29udHJvbC1SZXF1
ZXN0LUhlYWRlcnMiLCAiIikKKworICAgICAgICBpZiAibWF4X2FnZSIgaW4gcmVxdWVzdC5HRVQ6
CisgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLU1heC1BZ2UiLCBy
ZXF1ZXN0LkdFVFsnbWF4X2FnZSddKSkKKworICAgICAgICBpZiAiYWxsb3dfaGVhZGVycyIgaW4g
cmVxdWVzdC5HRVQ6CisgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9s
LUFsbG93LUhlYWRlcnMiLCByZXF1ZXN0LkdFVFsnYWxsb3dfaGVhZGVycyddKSkKKworICAgICAg
ICBpZiAiYWxsb3dfbWV0aG9kcyIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgICAgICBoZWFkZXJz
LmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMiLCByZXF1ZXN0LkdFVFsnYWxs
b3dfbWV0aG9kcyddKSkKKworICAgICAgICBwcmVmbGlnaHRfc3RhdHVzID0gMjAwCisgICAgICAg
IGlmICJwcmVmbGlnaHRfc3RhdHVzIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgICAgIHByZWZs
aWdodF9zdGF0dXMgPSBpbnQocmVxdWVzdC5HRVQuZmlyc3QoInByZWZsaWdodF9zdGF0dXMiKSkK
KworICAgICAgICBzdGFzaGVkX2RhdGFbJ3ByZWZsaWdodCddID0gIjEiCisgICAgICAgIHN0YXNo
ZWRfZGF0YVsncHJlZmxpZ2h0X3JlZmVycmVyJ10gPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJSZWZl
cmVyIiwgIiIpCisgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dChyZXF1ZXN0LkdFVC5m
aXJzdCgidG9rZW4iKSwgc3Rhc2hlZF9kYXRhKQorCisgICAgICAgIHJldHVybiBwcmVmbGlnaHRf
c3RhdHVzLCBoZWFkZXJzLCAiIgorCisgICAgdG9rZW4gPSBOb25lCisgICAgaWYgInRva2VuIiBp
biByZXF1ZXN0LkdFVDoKKyAgICAgICAgdG9rZW4gPSByZXF1ZXN0LkdFVC5maXJzdCgidG9rZW4i
KQorICAgICAgICBkYXRhID0gcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gudGFrZSh0b2tlbikKKyAgICAg
ICAgaWYgZGF0YToKKyAgICAgICAgICAgIHN0YXNoZWRfZGF0YSA9IGRhdGEKKworICAgICN1c2Ug
eC0qIGhlYWRlcnMgZm9yIHJldHVybmluZyB2YWx1ZSB0byBib2R5bGVzcyByZXNwb25zZXMKKyAg
ICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUV4cG9zZS1IZWFkZXJzIiwgIngtZGlk
LXByZWZsaWdodCwgeC1jb250cm9sLXJlcXVlc3QtaGVhZGVycywgeC1yZWZlcnJlciwgeC1wcmVm
bGlnaHQtcmVmZXJyZXIsIHgtb3JpZ2luIikpCisgICAgaGVhZGVycy5hcHBlbmQoKCJ4LWRpZC1w
cmVmbGlnaHQiLCBzdGFzaGVkX2RhdGFbJ3ByZWZsaWdodCddKSkKKyAgICBoZWFkZXJzLmFwcGVu
ZCgoIngtY29udHJvbC1yZXF1ZXN0LWhlYWRlcnMiLCBzdGFzaGVkX2RhdGFbJ2NvbnRyb2xfcmVx
dWVzdF9oZWFkZXJzJ10pKQorICAgIGhlYWRlcnMuYXBwZW5kKCgieC1wcmVmbGlnaHQtcmVmZXJy
ZXIiLCBzdGFzaGVkX2RhdGFbJ3ByZWZsaWdodF9yZWZlcnJlciddKSkKKyAgICBoZWFkZXJzLmFw
cGVuZCgoIngtcmVmZXJyZXIiLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJSZWZlcmVyIiwgIiIpICkp
CisgICAgaGVhZGVycy5hcHBlbmQoKCJ4LW9yaWdpbiIsIHJlcXVlc3QuaGVhZGVycy5nZXQoIk9y
aWdpbiIsICIiKSApKQorCisgICAgaWYgdG9rZW46CisgICAgICByZXF1ZXN0LnNlcnZlci5zdGFz
aC5wdXQodG9rZW4sIHN0YXNoZWRfZGF0YSkKKworICAgIHJldHVybiBoZWFkZXJzLCAiIgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzb3VyY2VzL3JlZGlyZWN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3JlZGlyZWN0LnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM3NjdiMjIzYWFjY2EzNjQ3MTczZTUxN2E2MjEyMWQyZDNkZDViZDIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNvdXJjZXMvcmVkaXJlY3QucHkKQEAgLTAsMCArMSw0OCBAQAorZGVmIG1haW4ocmVx
dWVzdCwgcmVzcG9uc2UpOgorICAgIHN0YXNoZWRfZGF0YSA9IHsnY291bnQnOiAwLCAncHJlZmxp
Z2h0JzogIjAifQorICAgIHN0YXR1cyA9IDMwMgorICAgIGhlYWRlcnMgPSBbKCJDb250ZW50LVR5
cGUiLCAidGV4dC9wbGFpbiIpLAorICAgICAgICAgICAgICAgKCJDYWNoZS1Db250cm9sIiwgIm5v
LWNhY2hlIiksCisgICAgICAgICAgICAgICAoIlByYWdtYSIsICJuby1jYWNoZSIpLAorICAgICAg
ICAgICAgICAgKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCAiKiIpXQorICAgIHRva2Vu
ID0gTm9uZQorCisgICAgaWYgInRva2VuIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgdG9rZW4g
PSByZXF1ZXN0LkdFVC5maXJzdCgidG9rZW4iKQorICAgICAgICBkYXRhID0gcmVxdWVzdC5zZXJ2
ZXIuc3Rhc2gudGFrZSh0b2tlbikKKyAgICAgICAgaWYgZGF0YToKKyAgICAgICAgICAgIHN0YXNo
ZWRfZGF0YSA9IGRhdGEKKworICAgIGlmIHJlcXVlc3QubWV0aG9kID09ICJPUFRJT05TIjoKKyAg
ICAgICAgaWYgImFsbG93X2hlYWRlcnMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICAgICAgaGVh
ZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzIiwgcmVxdWVzdC5HRVRb
J2FsbG93X2hlYWRlcnMnXSkpCisgICAgICAgIHN0YXNoZWRfZGF0YVsncHJlZmxpZ2h0J10gPSAi
MSIKKyAgICAgICAgI1ByZWZsaWdodCBpcyBub3QgcmVkaXJlY3RlZDogcmV0dXJuIDIwMAorICAg
ICAgICBpZiBub3QgInJlZGlyZWN0X3ByZWZsaWdodCIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAg
ICAgICBpZiB0b2tlbjoKKyAgICAgICAgICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KHJl
cXVlc3QuR0VULmZpcnN0KCJ0b2tlbiIpLCBzdGFzaGVkX2RhdGEpCisgICAgICAgICAgICByZXR1
cm4gMjAwLCBoZWFkZXJzLCAiIgorCisgICAgaWYgInJlZGlyZWN0X3N0YXR1cyIgaW4gcmVxdWVz
dC5HRVQ6CisgICAgICAgIHN0YXR1cyA9IGludChyZXF1ZXN0LkdFVFsncmVkaXJlY3Rfc3RhdHVz
J10pCisKKyAgICBzdGFzaGVkX2RhdGFbJ2NvdW50J10gKz0gMQorCisgICAgI2tlZXAgdXJsIHBh
cmFtZXRlcnMgaW4gbG9jYXRpb24KKyAgICB1cmxfcGFyYW1ldGVycyA9ICI/IiArICImIi5qb2lu
KG1hcChsYW1iZGEgeDogeFswXVswXSArICI9IiArIHhbMV1bMF0sIHJlcXVlc3QuR0VULml0ZW1z
KCkpKQorICAgICNtYWtlIHN1cmUgbG9jYXRpb24gY2hhbmdlcyBkdXJpbmcgcmVkaXJlY3Rpb24g
bG9vcAorICAgIHVybF9wYXJhbWV0ZXJzICs9ICImY291bnQ9IiArIHN0cihzdGFzaGVkX2RhdGFb
J2NvdW50J10pCisKKyAgICBpZiAibG9jYXRpb24iIGluIHJlcXVlc3QuR0VUOgorICAgICAgICBo
ZWFkZXJzLmFwcGVuZCgoIkxvY2F0aW9uIiwgcmVxdWVzdC5HRVRbJ2xvY2F0aW9uJ10gKyB1cmxf
cGFyYW1ldGVycykpCisKKyAgICBpZiB0b2tlbjoKKyAgICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rh
c2gucHV0KHJlcXVlc3QuR0VULmZpcnN0KCJ0b2tlbiIpLCBzdGFzaGVkX2RhdGEpCisgICAgICAg
IGlmICJtYXhfY291bnQiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICAgICAgbWF4X2NvdW50ID0g
IGludChyZXF1ZXN0LkdFVFsnbWF4X2NvdW50J10pCisgICAgICAgICAgICAjc3RvcCByZWRpcmVj
dGluZyBhbmQgcmV0dXJuIGNvdW50CisgICAgICAgICAgICBpZiBzdGFzaGVkX2RhdGFbJ2NvdW50
J10gPiBtYXhfY291bnQ6CisgICAgICAgICAgICAgICAgIyAtMSBiZWNhdXNlIHRoZSBsYXN0IGlz
IG5vdCBhIHJlZGlyZWN0aW9uCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0cihzdGFzaGVkX2Rh
dGFbJ2NvdW50J10gLSAxKQorCisgICAgcmV0dXJuIHN0YXR1cywgaGVhZGVycywgIiIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc291cmNlcy90b3AudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3RvcC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODNhMzE1
N2QxNGQ5MDgxZWQwMWNkNzk5Mjg3ODk5ODIyZTE5NTIzYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291
cmNlcy90b3AudHh0CkBAIC0wLDAgKzEgQEAKK3RvcApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc291cmNlcy90cmlja2xlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3RyaWNrbGUucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMGU3MDk0NDVjNTk4YzE4NzcyMmM4ZjUwZjZiMTYyYTI1MmFkYWJhZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc291cmNlcy90cmlja2xlLnB5CkBAIC0wLDAgKzEsMTIgQEAKK2ltcG9ydCB0
aW1lCisKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBkZWxheSA9IGZsb2F0KHJl
cXVlc3QuR0VULmZpcnN0KCJtcyIsIDUwMCkpIC8gMUUzCisgICAgY291bnQgPSBpbnQocmVxdWVz
dC5HRVQuZmlyc3QoImNvdW50IiwgNTApKQorICAgIHRpbWUuc2xlZXAoZGVsYXkpCisgICAgcmVz
cG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtdHlwZSIsICJ0ZXh0L3BsYWluIikKKyAgICByZXNw
b25zZS53cml0ZV9zdGF0dXNfaGVhZGVycygpCisgICAgdGltZS5zbGVlcChkZWxheSk7CisgICAg
Zm9yIGkgaW4geHJhbmdlKGNvdW50KToKKyAgICAgICAgcmVzcG9uc2Uud3JpdGVyLndyaXRlX2Nv
bnRlbnQoIlRFU1RfVFJJQ0tMRVxuIikKKyAgICAgICAgdGltZS5zbGVlcChkZWxheSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc291cmNlcy91dGlscy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy91dGlscy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDky
OTM1NjI0ZDkyMjg2YjRhZTc5MTk3ZThkNjBiNGM2NDk1ZDA4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
b3VyY2VzL3V0aWxzLmpzCkBAIC0wLDAgKzEsNjYgQEAKK3ZhciBpbldvcmtlciA9IGZhbHNlOwor
dmFyIFJFU09VUkNFU19ESVIgPSAiLi4vcmVzb3VyY2VzLyI7CisKK3RyeSB7CisgIGluV29ya2Vy
ID0gIShzZWxmIGluc3RhbmNlb2YgV2luZG93KTsKK30gY2F0Y2ggKGUpIHsKKyAgaW5Xb3JrZXIg
PSB0cnVlOworfQorCitmdW5jdGlvbiBkaXJuYW1lKHBhdGgpIHsKKyAgICByZXR1cm4gcGF0aC5y
ZXBsYWNlKC9cL1teXC9dKiQvLCAnLycpCit9CisKK2Z1bmN0aW9uIGNoZWNrUmVxdWVzdChyZXF1
ZXN0LCBFeHBlY3RlZFZhbHVlc0RpY3QpIHsKKyAgZm9yICh2YXIgYXR0cmlidXRlIGluIEV4cGVj
dGVkVmFsdWVzRGljdCkgeworICAgIHN3aXRjaChhdHRyaWJ1dGUpIHsKKyAgICAgIGNhc2UgImhl
YWRlcnMiOgorICAgICAgICAgIGZvciAodmFyIGtleSBvZiBFeHBlY3RlZFZhbHVlc0RpY3RbImhl
YWRlcnMiXS5rZXlzKCkpCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3RbImhlYWRl
cnMiXS5nZXQoa2V5KSwgRXhwZWN0ZWRWYWx1ZXNEaWN0WyJoZWFkZXJzIl0uZ2V0KGtleSksCisg
ICAgICAgICAgICAgICJDaGVjayBoZWFkZXJzIGF0dHJpYnV0ZSBoYXMgIiArIGtleSArICI6IiAr
IEV4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmdldChrZXkpKTsKKyAgICAgICAgYnJlYWs7
CisKKyAgICAgIGNhc2UgImJvZHkiOgorICAgICAgICAvL2ZvciBjaGVja2luZyBib2R5J3MgY29u
dGVudCwgYSBkZWRpY2F0ZWQgYXN5bmNyb25vdXMvcHJvbWlzZSB0ZXN0IHNob3VsZCBiZSB1c2Vk
CisgICAgICAgIGFzc2VydF90cnVlKHJlcXVlc3RbImhlYWRlcnMiXS5oYXMoIkNvbnRlbnQtVHlw
ZSIpICwgIkNoZWNrIHJlcXVlc3QgaGFzIGJvZHkgdXNpbmcgQ29udGVudC1UeXBlIGhlYWRlciIp
CisgICAgICAgIGJyZWFrOworCisgICAgICBjYXNlICJtZXRob2QiOgorICAgICAgY2FzZSAicmVm
ZXJyZXIiOgorICAgICAgY2FzZSAicmVmZXJyZXJQb2xpY3kiOgorICAgICAgY2FzZSAiY3JlZGVu
dGlhbHMiOgorICAgICAgY2FzZSAiY2FjaGUiOgorICAgICAgY2FzZSAicmVkaXJlY3QiOgorICAg
ICAgY2FzZSAiaW50ZWdyaXR5IjoKKyAgICAgIGNhc2UgInVybCI6CisgICAgICBjYXNlICJkZXN0
aW5hdGlvbiI6CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdFthdHRyaWJ1dGVdLCBFeHBl
Y3RlZFZhbHVlc0RpY3RbYXR0cmlidXRlXSwgIkNoZWNrICIgKyBhdHRyaWJ1dGUgKyAiIGF0dHJp
YnV0ZSIpCisgICAgICAgIGJyZWFrOworCisgICAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsK
KyAgICB9CisgIH0KK30KKworLy9jaGVjayByZWFkZXIncyB0ZXh0IGNvbnRlbnQgaW4gYW4gYXN5
bmNyb25vdXMgdGVzdAorZnVuY3Rpb24gcmVhZFRleHRTdHJlYW0ocmVhZGVyLCBhc3luY1Rlc3Qs
IGV4cGVjdGVkVmFsdWUsIHJldHJpZXZlZFRleHQpIHsKKyAgaWYgKCFyZXRyaWV2ZWRUZXh0KQor
ICAgIHJldHJpZXZlZFRleHQgPSAiIjsKKyAgcmVhZGVyLnJlYWQoKS50aGVuKGZ1bmN0aW9uKGRh
dGEpIHsKKyAgICBpZiAoIWRhdGEuZG9uZSkgeworICAgICAgdmFyIGRlY29kZXIgPSBuZXcgVGV4
dERlY29kZXIoKTsKKyAgICAgIHJldHJpZXZlZFRleHQgKz0gZGVjb2Rlci5kZWNvZGUoZGF0YS52
YWx1ZSk7CisgICAgICByZWFkVGV4dFN0cmVhbShyZWFkZXIsIGFzeW5jVGVzdCwgZXhwZWN0ZWRW
YWx1ZSwgcmV0cmlldmVkVGV4dCk7CisgICAgfQorICAgIGFzeW5jVGVzdC5zdGVwKGZ1bmN0aW9u
KCkgeworICAgICAgYXNzZXJ0X2VxdWFscyhyZXRyaWV2ZWRUZXh0LCBleHBlY3RlZFZhbHVlLCAi
UmV0cmlldmUgYW5kIHZlcmlmeSBzdHJlYW0iKTsKKyAgICAgIGFzeW5jVGVzdC5kb25lKCk7Cisg
ICAgfSk7CisgIH0pLmNhdGNoKGZ1bmN0aW9uKGUpIHsKKyAgICBhc3luY1Rlc3Quc3RlcChmdW5j
dGlvbigpIHsKKyAgICAgIGFzc2VydF91bnJlYWNoZWQoIkNhbm5vdCByZWFkIHN0cmVhbSAiICsg
ZSk7CisgICAgICBhc3luY1Rlc3QuZG9uZSgpOworICAgIH0pOworICB9KTsKK30KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFs
LWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRpY2F0
ZWQtd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4MzYxYTFkNGRjZmU1Y2E5OGY2ZmMxZWM5NTg2
NWJkZGNlZDg3NzM0Li5iMTdiNmQzYjIwMWZkNDU0YmNhNWIxM2Y2ZjUzY2U3MjQzOWQ0Njc2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1
dGVzLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3Rl
ZC50eHQKQEAgLTY0LDYgKzY0LDExIEBAIFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZWFkYWJsZVN0cmVhbScpLmhhc093blByCiBQQVNTIFtX
b3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVhZGFibGVT
dHJlYW0nKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgW1dvcmtlcl0gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZWFkYWJsZVN0cmVhbScpLmVu
dW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdSZWFkYWJsZVN0cmVhbScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQ
QVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVx
dWVzdCcpLnZhbHVlIGlzIFJlcXVlc3QKK1BBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlz
IGZhbHNlCitQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBbV29y
a2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5l
bnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIFtX
b3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnVVJMJykudmFs
dWUgaXMgVVJMCiBQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnVVJMJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIFtXb3Jr
ZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnVVJMJykuaGFzT3du
UHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4
IDJkZTNmYWUyNTEzN2I3MDg5YThhNzYzMWMyZTBiMDIxNzc1MjlkMmEuLmMzNzM0YjdhMWVhOWZh
YzM5MDM4NzI3NDQyOTliODU0ZjlhODlkYzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CkBAIC05MzgsNiArOTM4LDExIEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmhhc093
blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcp
LmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLnZhbHVlIGlzIFJlcXVlc3QKK1BBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ2dl
dCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5lbnVtZXJhYmxlIGlz
IGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVx
dWVzdCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS52YWx1ZSBpcyBSR0JDb2xvcgogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykuaGFzT3duUHJv
cGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVk
aWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODM2MWExZDRkY2ZlNWNhOThmNmZjMWVj
OTU4NjViZGRjZWQ4NzczNC4uYjE3YjZkM2IyMDFmZDQ1NGJjYTViMTNmNmY1M2NlNzI0MzlkNDY3
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29u
c3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTY0LDYgKzY0LDExIEBAIFBB
U1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZWFk
YWJsZVN0cmVhbScpLmhhc093blByCiBQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVhZGFibGVTdHJlYW0nKS5oYXNPd25Qcm9wZXJ0eSgnc2V0
JykgaXMgZmFsc2UKIFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdSZWFkYWJsZVN0cmVhbScpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgW1dv
cmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZWFkYWJsZVN0
cmVhbScpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLnZhbHVlIGlzIFJlcXVlc3QKK1BB
U1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1
ZXN0JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCitQQVNTIFtXb3JrZXJdIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3Bl
cnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIFtX
b3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcp
LmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnVVJMJykudmFsdWUgaXMgVVJMCiBQQVNTIFtXb3JrZXJdIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnVVJMJykuaGFzT3duUHJvcGVy
dHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnVVJMJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwv
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXgg
YThjMmE3YjE0Yjg1MTE4NjY3OWQ3ODc5ZDZjYjFlZjdhOWQxYjc3NC4uMDk4ZDZkZjA4YzlkMTg5
MDJmMmZmZGRmOWM0MzEwMWY2YjU1ZTYzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtOTk4LDYgKzk5OCwxMSBAQCBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmhhc093
blByb3BlcnR5KCdnZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50Jyku
ZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS52YWx1ZSBpcyBS
ZXF1ZXN0CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVx
dWVzdCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0
JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdSZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykudmFs
dWUgaXMgUkdCQ29sb3IKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdSR0JDb2xvcicpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykuaGFzT3duUHJv
cGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKaW5kZXggNGEwOGYwZjM2NmUxNzcxMWRlYjgwYjVjZTNiODY3MDdh
NjM3ODkxNi4uM2NlOTI0OWZlZTA0OTVjNjYwMGNiZDY1N2EwY2VkNGQ0MzlhODBhOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3Jz
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9q
cy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMTAx
OCw2ICsxMDE4LDExIEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdQcm9ncmVzc0V2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dlCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmhhc093blByb3Bl
cnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmNvbmZp
Z3VyYWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnUmVxdWVzdCcpLnZhbHVlIGlzIFJlcXVlc3QKK1BBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlz
IGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVx
dWVzdCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNl
CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcp
LmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS52YWx1ZSBpcyBSR0JDb2xvcgogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykuaGFzT3duUHJvcGVydHko
J2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnUkdCQ29sb3InKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0
ZWQudHh0CmluZGV4IDlhNWRhNzA1MmIxZTc5ZGZhZjYwMmYzMjQwODNjNjQxYTdkYzIwYTUuLmFm
NGE2MWZmZGU2YTg4YWEwNWE1ODFkY2NlYzhkODlkMGE0MTFkMjUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1h
dmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dApAQCAtOTk4LDYgKzk5OCwxMSBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmhhc093blByb3BlcnR5KCdnZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNP
d25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQn
KS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS52YWx1ZSBpcyBSZXF1ZXN0CitQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdn
ZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuZW51bWVyYWJsZSBp
cyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jl
cXVlc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykudmFsdWUgaXMgUkdCQ29sb3IKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLmhhc093blBy
b3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKaW5kZXggYWI0ZTE3YWM1MGJiMzI1MmU5MDg2MGIyMzhhZmM3YThlNTkwZjY4
OC4uYjI5Y2U2NWY1ODEwMmY0OTgwODhmNmRiZGEzODc5MDFmMzczMmM5ZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVk
LnR4dApAQCAtMTA3Myw2ICsxMDczLDExIEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdSZWN0JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVjdCcpLmhhc093blBy
b3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JlY3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVjdCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVl
CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcp
LnZhbHVlIGlzIFJlcXVlc3QKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCitQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blBy
b3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmNvbmZpZ3VyYWJsZSBp
cyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnU1FM
RXhjZXB0aW9uJykudmFsdWUgaXMgU1FMRXhjZXB0aW9uCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnU1FMRXhjZXB0aW9uJykuaGFzT3duUHJvcGVydHkoJ2dl
dCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnU1FMRXhjZXB0aW9uJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9t
L2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggMjYyZDBk
OTEyMWNlYWNhMzMxNWQxMzUwZTM0ZDQ3MzQ5MGRhYWQ2My4uYjdlYTgxOTBkM2RjYzkwNmY0NjVl
NGZmMjBmY2FkYmFhMTA5ZTllYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtMTAyMyw2ICsxMDIzLDExIEBAIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuaGFzT3duUHJv
cGVydHkoJ2dlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
UHJvZ3Jlc3NFdmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5lbnVt
ZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLnZhbHVlIGlzIFJlcXVl
c3QKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0
JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jl
cXVlc3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS52YWx1ZSBp
cyBSR0JDb2xvcgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1JHQkNvbG9yJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS5oYXNPd25Qcm9wZXJ0
eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9q
cy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dAppbmRleCAzMWU4Y2FmMTU0MWMxYzRmNmM0NWRhMTViM2FiZTdmNTIzNTY4
NGVhLi5iZmNiMjJiMmZhODkxMjNlNTMzODBjZjY4MTY1MTVkYTZlM2FhNjIyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0
cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC04NzMsNiAr
ODczLDExIEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQ
cm9ncmVzc0V2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmhhc093blByb3BlcnR5KCdz
ZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ1Byb2dyZXNzRXZlbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmNvbmZpZ3VyYWJs
ZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
UmVxdWVzdCcpLnZhbHVlIGlzIFJlcXVlc3QKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNl
CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcp
Lmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmNvbmZp
Z3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnUkdCQ29sb3InKS52YWx1ZSBpcyBSR0JDb2xvcgogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykuaGFzT3duUHJvcGVydHkoJ2dldCcp
IGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
UkdCQ29sb3InKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270115</attachid>
            <date>2016-01-28 08:12:53 -0800</date>
            <delta_ts>2016-01-29 08:44:16 -0800</delta_ts>
            <desc>More tests and updating body init</desc>
            <filename>bug-153437-20160128171226.patch</filename>
            <type>text/plain</type>
            <size>159124</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1NzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY2OGVmYTg0YzQ1OThi
OTU0ZDc5NTRiYjE4ODY0M2JkZTQ0ODk1NC4uOWJiNTM3N2EyYzRmMjU1MDVlM2FjNWZmMWNhOTNl
YzQxNGZkOTViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMSBAQAorMjAxNi0wMS0yNiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtGZXRj
aCBBUEldIEltcGxlbWVudCBGZXRjaCBBUEkgUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNDM3CisKKyAgICAgICAgQWRkZWQgc3VwcG9y
dCBmb3IgRmV0Y2ggUmVxdWVzdCBhbmQgQm9keS4KKyAgICAgICAgQm9keSBpcyBzaGFyaW5nIGZ1
bmN0aW9uYWxpdHkgYmV0d2VlbiBSZXF1ZXN0IGFuZCBSZXNwb25zZS4KKyAgICAgICAgQ29udmVy
c2lvbiBiZXR3ZWVuIHZhcmlvdXMgYm9keSB0eXBlcyBhcmUgbm90IGltcGxlbWVudGVkIHlldC4K
KworICAgICAgICBBZGRlZCBhIEZldGNoT3B0aW9ucyBjbGFzcy4gT3B0aW9ucyBpbiB0aGlzIGNs
YXNzIGFyZSBwYXJ0aWFsbHkgcmVkdW5kYW50IHdpdGggUmVzb3VyY2VMb2FkZXJPcHRpb25zLgor
CisgICAgICAgIEZpeGluZyBidWcgaW4gSGVhZGVycyBjb25zdHJ1Y3Rvci4KKyAgICAgICAgTWFr
aW5nIGVycm9yIHJlcG9ydGluZyBpbiBjYXNlIG9mIG1vZGlmeWluZyBoZWFkZXJzIGNvbXBsaWFu
dCB3aXRoIHRoZSBzcGVjLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3RzOiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtY2xvbmUuc3ViLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1l
Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQuaHRtbAorICAgICAgICAgICAgICAgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWVy
cm9yLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmh0bWwKKyAgICAgICAgICAgICAgIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1p
ZGwuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAxLnN1Yi5odG1sCisgICAgICAgICAgICAg
ICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtaW5pdC0wMDIuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAzLnN1Yi5odG1sCisgICAg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmluaXRCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoQm9keTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpwcm9jZXNzSWZF
bXB0eU9yRGlzdHVyYmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6YXJyYXlCdWZm
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpmb3JtRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpGZXRjaEJvZHk6OmJsb2IpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojp0
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6anNvbik6CisgICAgICAgICogTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHkuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJv
ZHk6On5GZXRjaEJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojppc0VtcHR5KToK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6aXNEaXN0dXJiZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6RmV0Y2hCb2R5OjpzZXREaXN0dXJiZWQpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hC
b2R5OjpzZXRNaW1lVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6Om1pbWVUeXBl
KToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNh
bldyaXRlSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6YXBwZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZldGNoSGVhZGVyczo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6
ZmlsbCk6IEhlbHBlciByb3V0aW5lIGltcGxlbWVudGluZyBodHRwczovL2ZldGNoLnNwZWMud2hh
dHdnLm9yZy8jY29uY2VwdC1oZWFkZXJzLWZpbGwKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0Zl
dGNoSGVhZGVycy5oOiBBZGRpbmcgaGVhZGVyIGdldHRlci9zZXR0ZXIgZm9yIEZldGNoUmVxdWVz
dC4KKyAgICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6ZmFzdEdldCk6CisgICAgICAgIChX
ZWJDb3JlOjpGZXRjaEhlYWRlcnM6OmZhc3RTZXQpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gv
RmV0Y2hIZWFkZXJzLmpzOiBGaXhpbmcgYnVnIGluIGNvbnN0cnVjdG9yIChjb3ZlcmVkIGJ5IG1v
ZGlmaWVkIGhlYWRlcnMtYmFzYy5odG1sIHRlc3QpLgorICAgICAgICAoaW5pdGlhbGl6ZUZldGNo
SGVhZGVycyk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaE9wdGlvbnMuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkZldGNoT3B0aW9ucyk6CisgICAgICAg
IChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hP
cHRpb25zOjpkZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6Om1v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpjcmVkZW50aWFscyk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OmNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoT3B0aW9uczo6cmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpy
ZWZlcnJlclBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OnNldFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpzZXREZXN0aW5hdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OnNldE1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmV0Y2hPcHRpb25zOjpzZXRDcmVkZW50aWFscyk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9w
dGlvbnM6OnNldENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoT3B0aW9uczo6c2V0UmVk
aXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpzZXRSZWZlcnJlclBvbGlj
eSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoUmVxdWVzdDo6RmV0Y2hSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVx
dWVzdDo6aW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OnNldFJlZmVycmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6c2V0UmVmZXJyZXJQb2xpY3kpOgor
ICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpzZXRNb2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZldGNoUmVxdWVzdDo6c2V0Q3JlZGVudGlhbHMpOgorICAgICAgICAoV2ViQ29yZTo6RmV0
Y2hSZXF1ZXN0OjpzZXRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OnNl
dFJlZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6dHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmRlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkZldGNoUmVxdWVzdDo6cmVmZXJyZXJQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6RmV0
Y2hSZXF1ZXN0OjpyZWZlcnJlcik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6Om1v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpjcmVkZW50aWFscyk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoUmVxdWVzdDo6cmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0Ojpz
ZXRNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpjbG9uZSk6CisgICAg
ICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpGZXRjaFJlcXVlc3Q6Om1ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVl
c3Q6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmludGVncml0eSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmhlYWRlcnMpOgorICAgICAgICAqIE1vZHVs
ZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0RpY3Rpb25hcnku
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnk6OmV4ZWNTdGF0ZSk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRGljdGlv
bmFyeTo6Y29udmVydFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnku
aDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRGljdGlvbmFyeTo6Z2V0KToKKwogMjAxNi0wMS0yOCAg
R3dhbmcgWW9vbiBId2FuZyAgPHlvb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVy
XSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVTeW5jTWVzc2FnZSBsZWFr
cyBHc3RDb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDU1OWMxYmFhYmY5YmJmYjU3YmY1
Nzk5NTIzNmMxZjU4ZGI3OGU1ZWQuLmY4NjUxOWU4MDA4ZDBkZDc0MDc5NjcxMmZiMzI3YjBkMWUx
ZDk3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNzIsNyArMTcyLDkgQEAgc2V0KFdlYkNv
cmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFnZXIu
aWRsCiAgICAgTW9kdWxlcy9iYXR0ZXJ5L05hdmlnYXRvckJhdHRlcnkuaWRsCiAKKyAgICBNb2R1
bGVzL2ZldGNoL0ZldGNoQm9keS5pZGwKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5p
ZGwKKyAgICBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGwKIAogICAgIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvbi5pZGwKQEAgLTgxNSw3ICs4MTcsOSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9k
dWxlcy9iYXR0ZXJ5L0JhdHRlcnlTdGF0dXMuY3BwCiAgICAgTW9kdWxlcy9iYXR0ZXJ5L05hdmln
YXRvckJhdHRlcnkuY3BwCiAKKyAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKICAgICBN
b2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAKKyAgICBNb2R1bGVzL2ZldGNoL0ZldGNoUmVx
dWVzdC5jcHAKIAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwCiAgICAg
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcAppbmRleCAwMGYxOTAyYjQ0YzEzOTU3Yjg3MDQ4YzljZDRlYzUxZDZlYjcxYTYyLi42NDMy
ZmEzZGRkZGFhM2VmNjI0NzZhZjFlOTdlMzBhM2U0OTM1Mjk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCkBAIC0xNTQsNyArMTU0LDkgQEAKICNpbmNsdWRlICJKU0V2ZW50LmNwcCIKICNp
bmNsdWRlICJKU0V2ZW50U291cmNlLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0LmNwcCIK
KyNpbmNsdWRlICJKU0ZldGNoQm9keS5jcHAiCiAjaW5jbHVkZSAiSlNGZXRjaEhlYWRlcnMuY3Bw
IgorI2luY2x1ZGUgIkpTRmV0Y2hSZXF1ZXN0LmNwcCIKICNpbmNsdWRlICJKU0ZpbGUuY3BwIgog
I2luY2x1ZGUgIkpTRmlsZUVycm9yLmNwcCIKICNpbmNsdWRlICJKU0ZpbGVFeGNlcHRpb24uY3Bw
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggM2VlYjk5MzU4MWZjZTJkZWU0NDA5
NWNmZWU1NzQ1ZmYyMzFmZmY3ZS4uZjZiYWIzMzJlMzkyNGUxNzRhMWFjYmRkMjVmMWVmY2M4NWI0
MzgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC03OSw3ICs3OSw5IEBAIE5P
Tl9TVkdfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleU5lZWRlZEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hCb2R5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZldGNoL0ZldGNo
SGVhZGVycy5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3Qu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZEJ1dHRvbi5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5pZGwgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1OTc0Mjg3MGZlZDAzNDk0
ZGQ0ZjU1N2RkNGJmMWY3MTg1YzU3Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKQEAgLTAsMCArMSwxNjQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1l
cyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICog
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRmV0Y2hCb2R5LmgiCisKKyNpZiBFTkFCTEUoRkVUQ0hfQVBJKQorCisjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkpTQmxvYi5oIgorI2luY2x1ZGUgIkpTRE9N
Rm9ybURhdGEuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTT05PYmplY3QuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitib29sIEZldGNoQm9keTo6aW5pdEJvZHkoSlNDOjpKU1ZhbHVlIHZhbHVl
LCBKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpCit7CisgICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTQmxv
Yjo6aW5mbygpKSkgeworICAgICAgICBtX3R5cGUgPSBUeXBlOjpCbG9iOworICAgICAgICBtX2Js
b2IgPSBKU0Jsb2I6OnRvV3JhcHBlZCh2YWx1ZSk7CisgICAgICAgIG1fbWltZVR5cGUgPSBtX2Js
b2ItPnR5cGUoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGlmICh2YWx1ZS5p
bmhlcml0cyhKU0RPTUZvcm1EYXRhOjppbmZvKCkpKSB7CisgICAgICAgIG1fdHlwZSA9IFR5cGU6
OkZvcm1EYXRhOworICAgICAgICBtX2Zvcm1EYXRhPSBKU0RPTUZvcm1EYXRhOjp0b1dyYXBwZWQo
dmFsdWUpOworICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRoZSBib3VuZGFyeSBwYXJhbWV0ZXIg
b2YgbXVsdGlwYXJ0L2Zvcm0tZGF0YSBNSU1FIHR5cGUuCisgICAgICAgIG1fbWltZVR5cGUgPSBB
U0NJSUxpdGVyYWwoIm11bHRpcGFydC9mb3JtLWRhdGEiKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIGlmICh2YWx1ZS5pc1N0cmluZygpKSB7CisgICAgICAgIG1fdHlwZSA9IFR5
cGU6OlRleHQ7CisgICAgICAgIG1fdGV4dCA9IHZhbHVlLnRvV1RGU3RyaW5nKCZzdGF0ZSk7Cisg
ICAgICAgIG1fbWltZVR5cGUgPSBBU0NJSUxpdGVyYWwoInRleHQvcGxhaW47Y2hhcnNldD1VVEYt
OCIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQor
Cit2b2lkIEZldGNoQm9keTo6Y2xlYXIoKQoreworICAgIG1fYmxvYiA9IG51bGxwdHI7CisgICAg
bV9mb3JtRGF0YSA9IG51bGxwdHI7CisgICAgbV90ZXh0ID0gU3RyaW5nKCk7Cit9CisKK3RlbXBs
YXRlPHR5cGVuYW1lIFQ+IGlubGluZSBib29sIEZldGNoQm9keTo6cHJvY2Vzc0lmRW1wdHlPckRp
c3R1cmJlZChET01Qcm9taXNlPFQsIEV4Y2VwdGlvbkNvZGU+JiBwcm9taXNlKQoreworICAgIGlm
IChtX3R5cGUgPT0gVHlwZTo6Tm9uZSkgeworICAgICAgICBwcm9taXNlLnJlc29sdmUoVCgpKTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKGlzRGlzdHVyYmVkKCkpIHsK
KyAgICAgICAgcHJvbWlzZS5yZWplY3QoVHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIG1fZGlzdHVyYmVkRmxhZyA9IHRydWU7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit2b2lkIEZldGNoQm9keTo6YXJyYXlCdWZmZXIoQXJyYXlCdWZmZXJQcm9taXNlJiYgcHJv
bWlzZSkKK3sKKyAgICBpZiAocHJvY2Vzc0lmRW1wdHlPckRpc3R1cmJlZChwcm9taXNlKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fdHlwZSA9PSBUeXBlOjpUZXh0KSB7CisgICAgICAg
IENTdHJpbmcgZGF0YSA9IFVURjhFbmNvZGluZygpLmVuY29kZShtX3RleHQsIEVudGl0aWVzRm9y
VW5lbmNvZGFibGVzKTsKKyAgICAgICAgVmVjdG9yPHVuc2lnbmVkIGNoYXI+IHZhbHVlKGRhdGEu
bGVuZ3RoKCkpOworICAgICAgICAvLyBGSVhNRTogcmVmYWN0b3IgdGhpcyBjb2RlLgorICAgICAg
ICBtZW1jcHkodmFsdWUuZGF0YSgpLCBkYXRhLmRhdGEoKSwgZGF0YS5sZW5ndGgoKSk7CisgICAg
ICAgIHByb21pc2UucmVzb2x2ZShXVEZNb3ZlKHZhbHVlKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgLy8gRklYTUU6IFN1cHBvcnQgb3RoZXIgdHlwZXMuCisgICAgcHJvbWlzZS5yZWpl
Y3QoMCk7Cit9CisKK3ZvaWQgRmV0Y2hCb2R5Ojpmb3JtRGF0YShGb3JtRGF0YVByb21pc2UmJiBw
cm9taXNlKQoreworICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6Tm9uZSB8fCBpc0Rpc3R1cmJlZCgp
KSB7CisgICAgICAgIHByb21pc2UucmVqZWN0KFR5cGVFcnJvcik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgbV9kaXN0dXJiZWRGbGFnID0gdHJ1ZTsKKworICAgIC8vIEZJWE1FOiBTdXBw
b3J0IG90aGVyIHR5cGVzLgorICAgIHByb21pc2UucmVqZWN0KDApOworfQorCit2b2lkIEZldGNo
Qm9keTo6YmxvYihCbG9iUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgaWYgKG1fdHlwZSA9PSBU
eXBlOjpOb25lKSB7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShudWxscHRyKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmIChwcm9jZXNzSWZFbXB0eU9yRGlzdHVyYmVkKHByb21p
c2UpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogU3VwcG9ydCBvdGhlciB0eXBl
cy4KKyAgICBwcm9taXNlLnJlamVjdCgwKTsKK30KKwordm9pZCBGZXRjaEJvZHk6OnRleHQoVGV4
dFByb21pc2UmJiBwcm9taXNlKQoreworICAgIGlmIChwcm9jZXNzSWZFbXB0eU9yRGlzdHVyYmVk
KHByb21pc2UpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV90eXBlID09IFR5cGU6OlRl
eHQpIHsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKG1fdGV4dCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgLy8gRklYTUU6IFN1cHBvcnQgb3RoZXIgdHlwZXMuCisgICAgcHJvbWlzZS5y
ZWplY3QoMCk7Cit9CisKK3ZvaWQgRmV0Y2hCb2R5Ojpqc29uKEpTQzo6RXhlY1N0YXRlJiBzdGF0
ZSwgSlNPTlByb21pc2UmJiBwcm9taXNlKQoreworICAgIGlmIChpc0Rpc3R1cmJlZCgpKSB7Cisg
ICAgICAgIHByb21pc2UucmVqZWN0KFR5cGVFcnJvcik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgbV9kaXN0dXJiZWRGbGFnID0gdHJ1ZTsKKyAgICBpZiAobV90eXBlID09IFR5cGU6OlRl
eHQpIHsKKyAgICAgICAgSlNDOjpKU1ZhbHVlIHZhbHVlID0gSlNDOjpKU09OUGFyc2UoJnN0YXRl
LCBtX3RleHQpOworICAgICAgICBpZiAoIXZhbHVlKQorICAgICAgICAgICAgcHJvbWlzZS5yZWpl
Y3QoU1lOVEFYX0VSUik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByb21pc2UucmVzb2x2
ZSh2YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gRklYTUU6IFN1cHBvcnQg
b3RoZXIgdHlwZXMuCisgICAgcHJvbWlzZS5yZWplY3QoMCk7Cit9CisKK30KKworI2VuZGlmIC8v
IEVOQUJMRShGRVRDSF9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43ZTlkNWQxZDUzNmE0NzExOGQ5MGUxYzliYTgyNjlhYjYzNTdlNGE0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHku
aApAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBDYW5vbiBJbmMu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgcmVxdWlyZWQgdG8gYmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQ2Fub24gSW5jLiBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENBTk9OIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBDQU5P
TiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgRmV0Y2hCb2R5X2gKKyNkZWZpbmUgRmV0Y2hCb2R5X2gKKworI2lmIEVO
QUJMRShGRVRDSF9BUEkpCisKKyNpbmNsdWRlICJCbG9iLmgiCisjaW5jbHVkZSAiRE9NRm9ybURh
dGEuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKKworbmFtZXNwYWNlIEpTQyB7CitjbGFz
cyBFeGVjU3RhdGU7CitjbGFzcyBKU1ZhbHVlOworfTsKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Cit0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOworCitjbGFzcyBGZXRjaEJvZHkgOiBwdWJsaWMg
UmVmQ291bnRlZDxGZXRjaEJvZHk+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5GZXRjaEJvZHko
KSB7IH0KKworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBl
OjpOb25lOyB9CisgICAgYm9vbCBpc0Rpc3R1cmJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzdHVy
YmVkRmxhZzsgfQorICAgIHZvaWQgc2V0RGlzdHVyYmVkKCkgeyBtX2Rpc3R1cmJlZEZsYWcgPSB0
cnVlOyB9CisgICAgdm9pZCBjbGVhcigpOworCisgICAgdHlwZWRlZiBET01Qcm9taXNlPFZlY3Rv
cjx1bnNpZ25lZCBjaGFyPiwgRXhjZXB0aW9uQ29kZT4gQXJyYXlCdWZmZXJQcm9taXNlOworICAg
IHZvaWQgYXJyYXlCdWZmZXIoQXJyYXlCdWZmZXJQcm9taXNlJiYpOworCisgICAgdHlwZWRlZiBE
T01Qcm9taXNlPFJlZlB0cjxET01Gb3JtRGF0YT4sIEV4Y2VwdGlvbkNvZGU+IEZvcm1EYXRhUHJv
bWlzZTsKKyAgICB2b2lkIGZvcm1EYXRhKEZvcm1EYXRhUHJvbWlzZSYmKTsKKworICAgIHR5cGVk
ZWYgRE9NUHJvbWlzZTxSZWZQdHI8QmxvYj4sIEV4Y2VwdGlvbkNvZGU+IEJsb2JQcm9taXNlOwor
ICAgIHZvaWQgYmxvYihCbG9iUHJvbWlzZSYmKTsKKworICAgIHR5cGVkZWYgRE9NUHJvbWlzZTxT
dHJpbmcsIEV4Y2VwdGlvbkNvZGU+IFRleHRQcm9taXNlOworICAgIHZvaWQgdGV4dChUZXh0UHJv
bWlzZSYmKTsKKworICAgIHR5cGVkZWYgRE9NUHJvbWlzZTxKU0M6OkpTVmFsdWUsIEV4Y2VwdGlv
bkNvZGU+IEpTT05Qcm9taXNlOworICAgIHZvaWQganNvbihKU0M6OkV4ZWNTdGF0ZSYsIEpTT05Q
cm9taXNlJiYpOworCisgICAgdm9pZCBzZXRNaW1lVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KSB7IG1fbWltZVR5cGUgPSBtaW1lVHlwZTsgfQorICAgIFN0cmluZyBtaW1lVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbWltZVR5cGU7IH0KKworcHJvdGVjdGVkOgorICAgIGJvb2wgaW5pdEJvZHko
SlNDOjpKU1ZhbHVlLCBKU0M6OkV4ZWNTdGF0ZSYpOworCitwcml2YXRlOgorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IGJvb2wgcHJvY2Vzc0lmRW1wdHlPckRpc3R1cmJlZChET01Qcm9taXNlPFQs
IEV4Y2VwdGlvbkNvZGU+Jik7CisKKyAgICBlbnVtIGNsYXNzIFR5cGUgeworICAgICAgICBOb25l
LAorICAgICAgICBUZXh0LAorICAgICAgICBCbG9iLAorICAgICAgICBGb3JtRGF0YQorICAgIH07
CisKKyAgICBUeXBlIG1fdHlwZSA9IFR5cGU6Ok5vbmU7CisgICAgU3RyaW5nIG1fbWltZVR5cGU7
CisgICAgYm9vbCBtX2Rpc3R1cmJlZEZsYWcgPSBmYWxzZTsKKworICAgIC8vIEZJWE1FOiBBZGQg
c3VwcG9ydCBmb3IgQnVmZmVyU291cmNlIGFuZCBVUkxTZWFyY2hQYXJhbXMuCisgICAgUmVmUHRy
PEJsb2I+IG1fYmxvYjsKKyAgICBSZWZQdHI8RE9NRm9ybURhdGE+IG1fZm9ybURhdGE7CisgICAg
U3RyaW5nIG1fdGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShGRVRDSF9BUEkpCisKKyNlbmRpZiAvLyBGZXRjaEJvZHlfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzNGI5NzFlMjVmODRi
MjY2OTQyYWI2ZTBjZDM2NGU4OTVjYTEyMzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5pZGwKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQ2Fub24gSW5jLiBub3IgdGhlIG5h
bWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisg
KiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1G
RVRDSF9BUEksCisgICAgR2xvYmFsQ29udGV4dD1ET01XaW5kb3cmV29ya2VyR2xvYmFsU2NvcGUs
CisgICAgSW50ZXJmYWNlTmFtZT1Cb2R5LAorICAgIE5vSW50ZXJmYWNlT2JqZWN0CitdCitpbnRl
cmZhY2UgRmV0Y2hCb2R5IHsKKyAgICBbSW1wbGVtZW50ZWRBcz1pc0Rpc3R1cmJlZF0gcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gYm9keVVzZWQ7CisgICAgW05ld09iamVjdF0gUHJvbWlzZSBh
cnJheUJ1ZmZlcigpOworICAgIFtOZXdPYmplY3RdIFByb21pc2UgYmxvYigpOworICAgIFtOZXdP
YmplY3RdIFByb21pc2UgZm9ybURhdGEoKTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUsIE5l
d09iamVjdF0gUHJvbWlzZSBqc29uKCk7CisgICAgW05ld09iamVjdF0gUHJvbWlzZSB0ZXh0KCk7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRl
cnMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuY3BwCmlu
ZGV4IGRmOTEwMjM2ZGU2ODI4MDVlM2JlMjZiYmYxNGQ1YTU1OTQ2ZGFmYjAuLjI5M2ZlYTVkMmYy
YWM2ZDkwYjI2NzQzMWQzMjc2YmQ1Njg3YmQyYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAKQEAgLTEwMSwxMiArMTAxLDE2IEBAIHN0YXRpYyBi
b29sIGlzU2ltcGxlSGVhZGVyKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1
ZSkKICAgICB9CiB9CiAKLXN0YXRpYyBib29sIGNhbldyaXRlSGVhZGVyKGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgRmV0Y2hIZWFkZXJzOjpHdWFyZCBndWFyZCkKK3N0
YXRpYyBib29sIGNhbldyaXRlSGVhZGVyKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiB2YWx1ZSwgRmV0Y2hIZWFkZXJzOjpHdWFyZCBndWFyZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
Ci0gICAgaWYgKCFpc1ZhbGlkSFRUUFRva2VuKG5hbWUpIHx8ICFpc1ZhbGlkSFRUUEhlYWRlclZh
bHVlKHZhbHVlKSkKKyAgICBpZiAoIWlzVmFsaWRIVFRQVG9rZW4obmFtZSkgfHwgIWlzVmFsaWRI
VFRQSGVhZGVyVmFsdWUodmFsdWUpKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOwogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGd1YXJkID09IEZldGNoSGVhZGVyczo6R3VhcmQ6Oklt
bXV0YWJsZSkKKyAgICB9CisgICAgaWYgKGd1YXJkID09IEZldGNoSGVhZGVyczo6R3VhcmQ6Oklt
bXV0YWJsZSkgeworICAgICAgICBlYyA9IFR5cGVFcnJvcjsKICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KICAgICBpZiAoZ3VhcmQgPT0gRmV0Y2hIZWFkZXJzOjpHdWFyZDo6UmVxdWVzdCAm
JiBpc0ZvcmJpZGRlbkhlYWRlck5hbWUobmFtZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICBpZiAoZ3VhcmQgPT0gRmV0Y2hIZWFkZXJzOjpHdWFyZDo6UmVxdWVzdE5vQ29ycyAmJiAhaXNT
aW1wbGVIZWFkZXIobmFtZSwgdmFsdWUpKQpAQCAtMTE5LDE5ICsxMjMsMTUgQEAgc3RhdGljIGJv
b2wgY2FuV3JpdGVIZWFkZXIoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVl
LCBGZXRjaEhlYWRlcnMKIHZvaWQgRmV0Y2hIZWFkZXJzOjphcHBlbmQoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBTdHJp
bmcgbm9ybWFsaXplZFZhbHVlID0gc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVFRQU3BhY2VzKHZh
bHVlKTsKLSAgICBpZiAoIWNhbldyaXRlSGVhZGVyKG5hbWUsIG5vcm1hbGl6ZWRWYWx1ZSwgbV9n
dWFyZCkpIHsKLSAgICAgICAgZWMgPSBUeXBlRXJyb3I7CisgICAgaWYgKCFjYW5Xcml0ZUhlYWRl
cihuYW1lLCBub3JtYWxpemVkVmFsdWUsIG1fZ3VhcmQsIGVjKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIH0KICAgICBtX2hlYWRlcnMuYWRkKG5hbWUsIG5vcm1hbGl6ZWRWYWx1ZSk7CiB9CiAKIHZv
aWQgRmV0Y2hIZWFkZXJzOjpyZW1vdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICBpZiAoIWNhbldyaXRlSGVhZGVyKG5hbWUsIFN0cmluZygpLCBtX2d1YXJk
KSkgewotICAgICAgICBlYyA9IFR5cGVFcnJvcjsKKyAgICBpZiAoIWNhbldyaXRlSGVhZGVyKG5h
bWUsIFN0cmluZygpLCBtX2d1YXJkLCBlYykpCiAgICAgICAgIHJldHVybjsKLSAgICB9CiAgICAg
bV9oZWFkZXJzLnJlbW92ZShuYW1lKTsKIH0KIApAQCAtMTU2LDEzICsxNTYsMjYgQEAgYm9vbCBG
ZXRjaEhlYWRlcnM6Omhhcyhjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKSBj
b25zdAogdm9pZCBGZXRjaEhlYWRlcnM6OnNldChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFN0cmluZyBub3JtYWxpemVk
VmFsdWUgPSBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUVFBTcGFjZXModmFsdWUpOwotICAgIGlm
ICghY2FuV3JpdGVIZWFkZXIobmFtZSwgbm9ybWFsaXplZFZhbHVlLCBtX2d1YXJkKSkgewotICAg
ICAgICBlYyA9IFR5cGVFcnJvcjsKKyAgICBpZiAoIWNhbldyaXRlSGVhZGVyKG5hbWUsIG5vcm1h
bGl6ZWRWYWx1ZSwgbV9ndWFyZCwgZWMpKQogICAgICAgICByZXR1cm47Ci0gICAgfQogICAgIG1f
aGVhZGVycy5zZXQobmFtZSwgbm9ybWFsaXplZFZhbHVlKTsKIH0KIAordm9pZCBGZXRjaEhlYWRl
cnM6OmZpbGwoY29uc3QgRmV0Y2hIZWFkZXJzJiBoZWFkZXJzKQoreworICAgIEFTU0VSVChtX2d1
YXJkICE9IEd1YXJkOjpJbW11dGFibGUpOworCisgICAgRXhjZXB0aW9uQ29kZSBlYzsKKyAgICBm
b3IgKGF1dG8gaXRlciA9IGhlYWRlcnMubV9oZWFkZXJzLmJlZ2luKCk7IGl0ZXIgIT0gaGVhZGVy
cy5tX2hlYWRlcnMuZW5kKCk7ICsraXRlcikgeworICAgICAgICBpZiAoY2FuV3JpdGVIZWFkZXIo
aXRlci0+a2V5LCBpdGVyLT52YWx1ZSwgbV9ndWFyZCwgZWMpKSB7CisgICAgICAgICAgICBpZiAo
aXRlci0+a2V5QXNIVFRQSGVhZGVyTmFtZSkKKyAgICAgICAgICAgICAgICBtX2hlYWRlcnMuYWRk
KGl0ZXItPmtleUFzSFRUUEhlYWRlck5hbWUudmFsdWUoKSwgaXRlci0+dmFsdWUpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1faGVhZGVycy5hZGQoaXRlci0+a2V5LCBpdGVy
LT52YWx1ZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShGRVRDSF9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaEhlYWRlcnMuaAppbmRleCBkNWIwYTU2ZmIwNjZhZmNhOGIzZjkwZjgyZWViYTgz
ZDAyMWU1ZWVhLi5kMjdhNWY5YWE1ZTcxZDQ5MzM2Mjg1OGNhNjkwNzE5Mjg3OTU0M2Y0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmgKQEAgLTQ4LDYgKzQ4
LDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICBzdGF0aWMgUmVmPEZldGNoSGVhZGVycz4gY3Jl
YXRlKEd1YXJkIGd1YXJkID0gR3VhcmQ6Ok5vbmUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmV0
Y2hIZWFkZXJzKGd1YXJkKSk7IH0KKyAgICBzdGF0aWMgUmVmPEZldGNoSGVhZGVycz4gY3JlYXRl
KGNvbnN0IEZldGNoSGVhZGVycyYgaGVhZGVycykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBGZXRj
aEhlYWRlcnMoaGVhZGVycy5tX2d1YXJkLCBoZWFkZXJzLm1faGVhZGVycykpOyB9CiAKICAgICB2
b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHJlbW92ZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2Rl
Jik7CkBAIC01Niw5ICs1NywxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXQoY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2b2lk
IGluaXRpYWxpemVXaXRoKGNvbnN0IEZldGNoSGVhZGVycyosIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICB2b2lkIGZpbGwoY29uc3QgRmV0Y2hIZWFkZXJzJik7CisKKyAgICBTdHJpbmcgZmFzdEdldChI
VFRQSGVhZGVyTmFtZSBuYW1lKSBjb25zdCB7IHJldHVybiBtX2hlYWRlcnMuZ2V0KG5hbWUpOyB9
CisgICAgdm9pZCBmYXN0U2V0KEhUVFBIZWFkZXJOYW1lIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFs
dWUpIHsgbV9oZWFkZXJzLnNldChuYW1lLCB2YWx1ZSk7IH0KIAogcHJpdmF0ZToKICAgICBGZXRj
aEhlYWRlcnMoR3VhcmQgZ3VhcmQpIDogbV9ndWFyZChndWFyZCkgeyB9CisgICAgRmV0Y2hIZWFk
ZXJzKEd1YXJkIGd1YXJkLCBjb25zdCBIVFRQSGVhZGVyTWFwJiBoZWFkZXJzKSA6IG1fZ3VhcmQo
Z3VhcmQpLCBtX2hlYWRlcnMoaGVhZGVycykgeyB9CiAKICAgICBHdWFyZCBtX2d1YXJkOwogICAg
IEhUVFBIZWFkZXJNYXAgbV9oZWFkZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoSGVhZGVycy5qcwppbmRleCAxNTBiMjUwYjVjZTJjNDRkYjIzMDM4MzdkYzA0OTg2YjM5
YWNhNjU5Li4wMzA5ZmVkN2ZjODAyYWM5YzdmZjcwZDFhNGFlZWM5NjNkOGRlY2YwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5qcwpAQCAtNDcsNiArNDcs
NyBAQCBmdW5jdGlvbiBpbml0aWFsaXplRmV0Y2hIZWFkZXJzKGhlYWRlcnNJbml0KQogICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBAVHlwZUVycm9yKCJoZWFkZXJzSW5pdCBzZXF1ZW5jZSBpdGVt
cyBzaG91bGQgY29udGFpbiB0d28gdmFsdWVzIik7CiAgICAgICAgICAgICB0aGlzLkBhcHBlbmRG
cm9tSlMoaGVhZGVyWzBdLCBoZWFkZXJbMV0pOwogICAgICAgICB9CisgICAgICAgIHJldHVybiB0
aGlzOwogICAgIH0KIAogICAgIEBPYmplY3QuQGdldE93blByb3BlcnR5TmFtZXMoaGVhZGVyc0lu
aXQpLmZvckVhY2goKG5hbWUpID0+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoT3B0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNWU4ZDU4NTBmYzBkMTJjOTk2ZGNlYWJjMTE5ZmY2
ZWFiZjVkZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoT3B0aW9ucy5oCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
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
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGZXRjaE9wdGlvbnNfaAorI2RlZmluZSBGZXRj
aE9wdGlvbnNfaAorCisjaWYgRU5BQkxFKEZFVENIX0FQSSkKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBGZXRjaE9wdGlvbnMgeworcHVibGljOgorICAgIGVudW0gY2xhc3MgVHlwZSB7
CisgICAgICAgIERlZmF1bHQsCisgICAgICAgIEF1ZGlvLAorICAgICAgICBGb250LAorICAgICAg
ICBJbWFnZSwKKyAgICAgICAgU2NyaXB0LAorICAgICAgICBTdHlsZSwKKyAgICAgICAgVHJhY2ss
CisgICAgICAgIFZpZGVvCisgICAgfTsKKyAgICBlbnVtIGNsYXNzIERlc3RpbmF0aW9uIHsKKyAg
ICAgICAgRGVmYXVsdCwKKyAgICAgICAgRG9jdW1lbnQsCisgICAgICAgIFNoYXJlZFdvcmtlciwK
KyAgICAgICAgU3VicmVzb3VyY2UsCisgICAgICAgIFVua25vd24sCisgICAgICAgIFdvcmtlcgor
ICAgIH07CisgICAgZW51bSBjbGFzcyBNb2RlIHsKKyAgICAgICAgTm9Db3JzLAorICAgICAgICBO
YXZpZ2F0ZSwKKyAgICAgICAgU2FtZU9yaWdpbiwKKyAgICAgICAgQ29ycworICAgIH07CisgICAg
ZW51bSBjbGFzcyBDcmVkZW50aWFscyB7CisgICAgICAgIE9taXQsCisgICAgICAgIFNhbWVPcmln
aW4sCisgICAgICAgIEluY2x1ZGUKKyAgICB9OworICAgIGVudW0gY2xhc3MgQ2FjaGUgeworICAg
ICAgICBEZWZhdWx0LAorICAgICAgICBOb1N0b3JlLAorICAgICAgICBSZWxvYWQsCisgICAgICAg
IE5vQ2FjaGUsCisgICAgICAgIEZvcmNlQ2FjaGUsCisgICAgfTsKKyAgICBlbnVtIGNsYXNzIFJl
ZGlyZWN0IHsKKyAgICAgICAgRm9sbG93LAorICAgICAgICBFcnJvciwKKyAgICAgICAgTWFudWFs
CisgICAgfTsKKyAgICBlbnVtIGNsYXNzIFJlZmVycmVyUG9saWN5IHsKKyAgICAgICAgRW1wdHks
CisgICAgICAgIE5vUmVmZXJyZXIsCisgICAgICAgIE5vUmVmZXJyZXJXaGVuRG93bmdyYWRlLAor
ICAgICAgICBPcmlnaW5Pbmx5LAorICAgICAgICBPcmlnaW5XaGVuQ3Jvc3NPcmlnaW4sCisgICAg
ICAgIFVuc2FmZVVSTAorICAgIH07CisKKyAgICBGZXRjaE9wdGlvbnMoKSB7IH0KKyAgICBGZXRj
aE9wdGlvbnMoVHlwZSwgRGVzdGluYXRpb24sIE1vZGUsIENyZWRlbnRpYWxzLCBDYWNoZSwgUmVk
aXJlY3QsIFJlZmVycmVyUG9saWN5KTsKKworICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQorICAgIERlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9kZXN0aW5hdGlvbjsgfQorICAgIE1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZTsg
fQorICAgIENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzKCkgY29uc3QgeyByZXR1cm4gbV9jcmVkZW50
aWFsczsgfQorICAgIENhY2hlIGNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZTsgfQorICAg
IFJlZGlyZWN0IHJlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gbV9yZWRpcmVjdDsgfQorICAgIFJl
ZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9yZWZlcnJlclBv
bGljeTsgfQorCisgICAgdm9pZCBzZXRUeXBlKFR5cGUgdHlwZSkgeyBtX3R5cGUgPSB0eXBlOyB9
CisgICAgdm9pZCBzZXREZXN0aW5hdGlvbihEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbikgeyBtX2Rl
c3RpbmF0aW9uID0gZGVzdGluYXRpb247IH0KKyAgICB2b2lkIHNldE1vZGUoTW9kZSBtb2RlKSB7
IG1fbW9kZSA9IG1vZGU7IH0KKyAgICB2b2lkIHNldENyZWRlbnRpYWxzKENyZWRlbnRpYWxzIGNy
ZWRlbnRpYWxzKSB7IG1fY3JlZGVudGlhbHMgPSBjcmVkZW50aWFsczsgfQorICAgIHZvaWQgc2V0
Q2FjaGUoQ2FjaGUgY2FjaGUpIHsgbV9jYWNoZSA9IGNhY2hlOyB9CisgICAgdm9pZCBzZXRSZWRp
cmVjdChSZWRpcmVjdCByZWRpcmVjdCkgeyBtX3JlZGlyZWN0ID0gcmVkaXJlY3Q7IH0KKyAgICB2
b2lkIHNldFJlZmVycmVyUG9saWN5KFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5KSB7IG1f
cmVmZXJyZXJQb2xpY3kgPSByZWZlcnJlclBvbGljeTsgfQorCitwcml2YXRlOgorICAgIFR5cGUg
bV90eXBlID0gVHlwZTo6RGVmYXVsdDsKKyAgICBEZXN0aW5hdGlvbiBtX2Rlc3RpbmF0aW9uID0g
RGVzdGluYXRpb246OkRlZmF1bHQ7CisgICAgTW9kZSBtX21vZGUgPSBNb2RlOjpOb0NvcnM7Cisg
ICAgQ3JlZGVudGlhbHMgbV9jcmVkZW50aWFscyA9IENyZWRlbnRpYWxzOjpPbWl0OworICAgIENh
Y2hlIG1fY2FjaGUgPSBDYWNoZTo6RGVmYXVsdDsKKyAgICBSZWRpcmVjdCBtX3JlZGlyZWN0ID0g
UmVkaXJlY3Q6OiBGb2xsb3c7CisgICAgUmVmZXJyZXJQb2xpY3kgbV9yZWZlcnJlclBvbGljeSA9
IFJlZmVycmVyUG9saWN5OjpFbXB0eTsKK307CisKK2lubGluZSBGZXRjaE9wdGlvbnM6OkZldGNo
T3B0aW9ucyhUeXBlIHR5cGUsIERlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBNb2RlIG1vZGUsIENy
ZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBDYWNoZSBjYWNoZSwgUmVkaXJlY3QgcmVkaXJlY3QsIFJl
ZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5KQorICAgIDogbV90eXBlKHR5cGUpCisgICAgLCBt
X2Rlc3RpbmF0aW9uKGRlc3RpbmF0aW9uKQorICAgICwgbV9tb2RlKG1vZGUpCisgICAgLCBtX2Ny
ZWRlbnRpYWxzKGNyZWRlbnRpYWxzKQorICAgICwgbV9jYWNoZShjYWNoZSkKKyAgICAsIG1fcmVk
aXJlY3QocmVkaXJlY3QpCisgICAgLCBtX3JlZmVycmVyUG9saWN5KHJlZmVycmVyUG9saWN5KQor
eworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRkVUQ0hf
QVBJKQorCisjZW5kaWYgLy8gRmV0Y2hPcHRpb25zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTZmY2QyMjdmMDBiZWY3ZTU1
ZDkyODUxMDYyZjRmNzI2ZmUyYTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsNDI4IEBACisvKgorICog
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
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkZldGNoUmVxdWVzdC5oIgorCisjaWYgRU5BQkxFKEZFVENIX0FQSSkKKworI2lu
Y2x1ZGUgIkRpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVk
ZSAiSFRUUFBhcnNlcnMuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWZQ
dHI8RmV0Y2hSZXF1ZXN0PiBGZXRjaFJlcXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBGZXRjaFJlcXVlc3QqIGlucHV0LCBjb25zdCBEaWN0aW9uYXJ5JiBpbml0
LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBBU1NFUlQoaW5wdXQpOworCisgICAgaWYgKGlu
cHV0LT5pc0Rpc3R1cmJlZCgpKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgUmVmUHRyPEZldGNoUmVxdWVzdD4gcmVxdWVzdCA9
IGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXF1ZXN0KCppbnB1dCkpOworCisgICAgaWYgKCFyZXF1ZXN0
LT5pbml0KGNvbnRleHQsIGluaXQpKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpbnB1dC0+c2V0RGlzdHVyYmVkKCk7Cisg
ICAgaW5wdXQtPmNsZWFyKCk7CisKKyAgICByZXR1cm4gcmVxdWVzdDsKK30KKworUmVmUHRyPEZl
dGNoUmVxdWVzdD4gRmV0Y2hSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IERpY3Rpb25hcnkmIGluaXQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIFJlZlB0cjxGZXRjaFJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9w
dFJlZigqbmV3IEZldGNoUmVxdWVzdCk7CisKKyAgICAvLyBGSVhNRTogVGlnaHRlbiB0aGUgVVJM
IHBhcnNpbmcgYWxnb3JpdGhtIGFjY29yZGluZyBodHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcv
I2NvbmNlcHQtdXJsLXBhcnNlci4KKyAgICBVUkwgcmVxdWVzdFVSTCA9IGNvbnRleHQuY29tcGxl
dGVVUkwodXJsKTsKKyAgICBpZiAoIXJlcXVlc3RVUkwuaXNWYWxpZCgpIHx8ICFyZXF1ZXN0VVJM
LnVzZXIoKS5pc0VtcHR5KCkgfHwgIXJlcXVlc3RVUkwucGFzcygpLmlzRW1wdHkoKSkgeworICAg
ICAgICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAg
IHJlcXVlc3QtPm1fcmVxdWVzdC5zZXRVUkwocmVxdWVzdFVSTCk7CisgICAgcmVxdWVzdC0+bV9v
cHRpb25zLnNldE1vZGUoRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsKKyAgICByZXF1ZXN0LT5t
X29wdGlvbnMuc2V0Q3JlZGVudGlhbHMoRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdCk7
CisKKyAgICBpZiAoIXJlcXVlc3QtPmluaXQoY29udGV4dCwgaW5pdCkpIHsKKyAgICAgICAgZWMg
PSBUeXBlRXJyb3I7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVy
biByZXF1ZXN0OworfQorCitGZXRjaFJlcXVlc3Q6OkZldGNoUmVxdWVzdCgpCisgICAgOiBtX3Jl
ZmVycmVyKCJjbGllbnQiKQoreworfQorCitGZXRjaFJlcXVlc3Q6OkZldGNoUmVxdWVzdChjb25z
dCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QpCisgICAgOiBtX2hlYWRlcnMoRmV0Y2hIZWFkZXJzOjpj
cmVhdGUoKnJlcXVlc3QubV9oZWFkZXJzKSkKKyAgICAsIG1fcmVxdWVzdChyZXF1ZXN0Lm1fcmVx
dWVzdCkKKyAgICAsIG1fb3B0aW9ucyhyZXF1ZXN0Lm1fb3B0aW9ucykKKyAgICAsIG1fcmVmZXJy
ZXIocmVxdWVzdC5tX3JlZmVycmVyKQorICAgICwgbV9pbnRlZ3JpdHkocmVxdWVzdC5tX2ludGVn
cml0eSkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGFuZCB0ZXN0IHRlZWluZyBvZiByZXF1
ZXN0IGJvZHkuCit9CisKK2Jvb2wgRmV0Y2hSZXF1ZXN0Ojppbml0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIGNvbnN0IERpY3Rpb25hcnkmIGluaXQpCit7CisgICAgLy8gRklYTUU6
IFN1cHBvcnQgd2luZG93LgorICAgIEpTQzo6SlNWYWx1ZSB3aW5kb3c7CisgICAgaWYgKGluaXQu
Z2V0KCJ3aW5kb3ciLCB3aW5kb3cpKSB7CisgICAgICAgIGlmICghd2luZG93LmlzTnVsbCgpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIFN0cmluZyB2YWx1ZTsKKyAg
ICBpZiAoaW5pdC5nZXQoInJlZmVycmVyIiwgdmFsdWUpICYmICFzZXRSZWZlcnJlcihjb250ZXh0
LCB2YWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChpbml0LmdldCgicmVm
ZXJyZXJQb2xpY3kiLCB2YWx1ZSkgJiYgIXNldFJlZmVycmVyUG9saWN5KHZhbHVlKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGluaXQuZ2V0KCJtb2RlIiwgdmFsdWUpICYmICFz
ZXRNb2RlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChtX29wdGlvbnMu
bW9kZSgpID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIGlmIChpbml0LmdldCgiY3JlZGVudGlhbHMiLCB2YWx1ZSkgJiYgIXNldENy
ZWRlbnRpYWxzKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGluaXQu
Z2V0KCJjYWNoZSIsIHZhbHVlKSAmJiAhc2V0Q2FjaGUodmFsdWUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoaW5pdC5nZXQoInJlZGlyZWN0IiwgdmFsdWUpICYmICFzZXRSZWRp
cmVjdCh2YWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGluaXQuZ2V0KCJpbnRl
Z3JpdHkiLCBtX2ludGVncml0eSk7CisKKyAgICBpZiAoaW5pdC5nZXQoIm1ldGhvZCIsIHZhbHVl
KSAmJiAhc2V0TWV0aG9kKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRmV0
Y2hIZWFkZXJzOjpHdWFyZCBndWFyZCA9IEZldGNoSGVhZGVyczo6R3VhcmQ6OlJlcXVlc3Q7Cisg
ICAgaWYgKG1fb3B0aW9ucy5tb2RlKCkgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMpIHsK
KyAgICAgICAgY29uc3QgU3RyaW5nJiBtZXRob2QgPSBtX3JlcXVlc3QuaHR0cE1ldGhvZCgpOwor
ICAgICAgICBpZiAoKG1ldGhvZCAhPSAiR0VUIiAmJiBtZXRob2QgIT0gIlBPU1QiICYmIG1ldGhv
ZCAhPSAiSEVBRCIpIHx8ICFtX2ludGVncml0eS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGd1YXJkID0gRmV0Y2hIZWFkZXJzOjpHdWFyZDo6UmVxdWVzdE5v
Q29yczsKKyAgICB9CisKKyAgICBSZWZQdHI8RmV0Y2hIZWFkZXJzPiBoZWFkZXJzOworICAgIGlm
ICghaW5pdC5nZXQoImhlYWRlcnMiLCBoZWFkZXJzKSkKKyAgICAgICAgaGVhZGVycyA9IFdURk1v
dmUobV9oZWFkZXJzKTsKKyAgICBtX2hlYWRlcnMgPSBGZXRjaEhlYWRlcnM6OmNyZWF0ZShndWFy
ZCk7CisgICAgaWYgKGhlYWRlcnMpCisgICAgICAgIG1faGVhZGVycy0+ZmlsbCgqaGVhZGVycyk7
CisKKyAgICBTdHJpbmcgdHlwZSA9IG1faGVhZGVycy0+ZmFzdEdldChIVFRQSGVhZGVyTmFtZTo6
Q29udGVudFR5cGUpOworICAgIEpTQzo6SlNWYWx1ZSBib2R5OworICAgIGlmIChpbml0LmdldCgi
Ym9keSIsIGJvZHkpICYmIGluaXRCb2R5KGJvZHksICppbml0LmV4ZWNTdGF0ZSgpKSkgeworICAg
ICAgICBpZiAodHlwZS5pc0VtcHR5KCkgJiYgIW1pbWVUeXBlKCkuaXNFbXB0eSgpKSB7CisgICAg
ICAgICAgICB0eXBlID0gbWltZVR5cGUoKTsKKyAgICAgICAgICAgIG1faGVhZGVycy0+ZmFzdFNl
dChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUsIHR5cGUpOworICAgICAgICB9CisgICAgfQor
ICAgIHNldE1pbWVUeXBlKHR5cGUpOworCisgICAgaWYgKCFpc0VtcHR5KCkgJiYgKG1fcmVxdWVz
dC5odHRwTWV0aG9kKCkgPT0gIkdFVCIgfHwgbV9yZXF1ZXN0Lmh0dHBNZXRob2QoKSA9PSAiSEVB
RCIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworCiti
b29sIEZldGNoUmVxdWVzdDo6c2V0UmVmZXJyZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgU3RyaW5nJiByZWZlcnJlcikKK3sKKyAgICBpZiAocmVmZXJyZXIuaXNFbXB0
eSgpKSB7CisgICAgICAgIG1fcmVmZXJyZXIgPSBBU0NJSUxpdGVyYWwoIm5vLXJlZmVycmVyIik7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAvLyBGSVhNRTogVGlnaHRlbiB0aGUg
VVJMIHBhcnNpbmcgYWxnb3JpdGhtIGFjY29yZGluZyBodHRwczovL3VybC5zcGVjLndoYXR3Zy5v
cmcvI2NvbmNlcHQtdXJsLXBhcnNlci4KKyAgICBVUkwgcmVmZXJyZXJVUkwgPSBjb250ZXh0LmNv
bXBsZXRlVVJMKHJlZmVycmVyKTsKKyAgICBpZiAoIXJlZmVycmVyVVJMLmlzVmFsaWQoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gRklYTUU6IHJlZmVycmVyIHNob3VsZCBiZSBh
IG5vbiByZWxhdGl2ZSBVUkwuCisgICAgaWYgKHJlZmVycmVyVVJMLnByb3RvY29sKCkgPT0gImFi
b3V0IiAmJiByZWZlcnJlclVSTC5wYXRoKCkuY29udGFpbnMoImNsaWVudCIpKSB7CisgICAgICAg
IG1fcmVmZXJyZXIgPSBBU0NJSUxpdGVyYWwoImNsaWVudCIpOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICBpZiAoIShjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCkgJiYgY29udGV4
dC5zZWN1cml0eU9yaWdpbigpLT5jYW5SZXF1ZXN0KHJlZmVycmVyVVJMKSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIG1fcmVmZXJyZXIgPSByZWZlcnJlclVSTC5zdHJpbmcoKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBGZXRjaFJlcXVlc3Q6OnNldFJlZmVycmVyUG9saWN5
KGNvbnN0IFN0cmluZyYgcmVmZXJyZXJQb2xpY3kpCit7CisgICAgaWYgKHJlZmVycmVyUG9saWN5
LmlzRW1wdHkoKSkKKyAgICAgICAgbV9vcHRpb25zLnNldFJlZmVycmVyUG9saWN5KEZldGNoT3B0
aW9uczo6UmVmZXJyZXJQb2xpY3k6OkVtcHR5KTsKKyAgICBlbHNlIGlmIChyZWZlcnJlclBvbGlj
eSA9PSAibm8tcmVmZXJyZXIiKQorICAgICAgICBtX29wdGlvbnMuc2V0UmVmZXJyZXJQb2xpY3ko
RmV0Y2hPcHRpb25zOjpSZWZlcnJlclBvbGljeTo6Tm9SZWZlcnJlcik7CisgICAgZWxzZSBpZiAo
cmVmZXJyZXJQb2xpY3kgPT0gIm5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIikKKyAgICAgICAg
bV9vcHRpb25zLnNldFJlZmVycmVyUG9saWN5KEZldGNoT3B0aW9uczo6UmVmZXJyZXJQb2xpY3k6
Ok5vUmVmZXJyZXJXaGVuRG93bmdyYWRlKTsKKyAgICBlbHNlIGlmIChyZWZlcnJlclBvbGljeSA9
PSAib3JpZ2luLW9ubHkiKQorICAgICAgICBtX29wdGlvbnMuc2V0UmVmZXJyZXJQb2xpY3koRmV0
Y2hPcHRpb25zOjpSZWZlcnJlclBvbGljeTo6T3JpZ2luT25seSk7CisgICAgZWxzZSBpZiAocmVm
ZXJyZXJQb2xpY3kgPT0gIm9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiIpCisgICAgICAgIG1fb3B0
aW9ucy5zZXRSZWZlcnJlclBvbGljeShGZXRjaE9wdGlvbnM6OlJlZmVycmVyUG9saWN5OjpPcmln
aW5XaGVuQ3Jvc3NPcmlnaW4pOworICAgIGVsc2UgaWYgKHJlZmVycmVyUG9saWN5ID09ICJ1bnNh
ZmUtdXJsIikKKyAgICAgICAgbV9vcHRpb25zLnNldFJlZmVycmVyUG9saWN5KEZldGNoT3B0aW9u
czo6UmVmZXJyZXJQb2xpY3k6OlVuc2FmZVVSTCk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgRmV0Y2hSZXF1ZXN0OjpzZXRNb2Rl
KGNvbnN0IFN0cmluZyYgbW9kZSkKK3sKKyAgICBpZiAobW9kZSA9PSAibmF2aWdhdGUiKQorICAg
ICAgICBtX29wdGlvbnMuc2V0TW9kZShGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlKTsKKyAg
ICBlbHNlIGlmIChtb2RlID09ICJzYW1lLW9yaWdpbiIpCisgICAgICAgIG1fb3B0aW9ucy5zZXRN
b2RlKEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbik7CisgICAgZWxzZSBpZiAobW9kZSA9
PSAibm8tY29ycyIpCisgICAgICAgIG1fb3B0aW9ucy5zZXRNb2RlKEZldGNoT3B0aW9uczo6TW9k
ZTo6Tm9Db3JzKTsKKyAgICBlbHNlIGlmIChtb2RlID09ICJjb3JzIikKKyAgICAgICAgbV9vcHRp
b25zLnNldE1vZGUoRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsKKyAgICBlbHNlCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBGZXRjaFJlcXVlc3Q6
OnNldENyZWRlbnRpYWxzKGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbHMpCit7CisgICAgaWYgKGNy
ZWRlbnRpYWxzID09ICJvbWl0IikKKyAgICAgICAgbV9vcHRpb25zLnNldENyZWRlbnRpYWxzKEZl
dGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQpOworICAgIGVsc2UgaWYgKGNyZWRlbnRpYWxz
ID09ICJzYW1lLW9yaWdpbiIpCisgICAgICAgIG1fb3B0aW9ucy5zZXRDcmVkZW50aWFscyhGZXRj
aE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luKTsKKyAgICBlbHNlIGlmIChjcmVkZW50
aWFscyA9PSAiaW5jbHVkZSIpCisgICAgICAgIG1fb3B0aW9ucy5zZXRDcmVkZW50aWFscyhGZXRj
aE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBGZXRjaFJlcXVlc3Q6OnNldENh
Y2hlKGNvbnN0IFN0cmluZyYgY2FjaGUpCit7CisgICAgaWYgKGNhY2hlID09ICJkZWZhdWx0IikK
KyAgICAgICAgbV9vcHRpb25zLnNldENhY2hlKEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1bHQp
OworICAgIGVsc2UgaWYgKGNhY2hlID09ICJuby1zdG9yZSIpCisgICAgICAgIG1fb3B0aW9ucy5z
ZXRDYWNoZShGZXRjaE9wdGlvbnM6OkNhY2hlOjpOb1N0b3JlKTsKKyAgICBlbHNlIGlmIChjYWNo
ZSA9PSAicmVsb2FkIikKKyAgICAgICAgbV9vcHRpb25zLnNldENhY2hlKEZldGNoT3B0aW9uczo6
Q2FjaGU6OlJlbG9hZCk7CisgICAgZWxzZSBpZiAoY2FjaGUgPT0gIm5vLWNhY2hlIikKKyAgICAg
ICAgbV9vcHRpb25zLnNldENhY2hlKEZldGNoT3B0aW9uczo6Q2FjaGU6Ok5vQ2FjaGUpOworICAg
IGVsc2UgaWYgKGNhY2hlID09ICJmb3JjZS1jYWNoZSIpCisgICAgICAgIG1fb3B0aW9ucy5zZXRD
YWNoZShGZXRjaE9wdGlvbnM6OkNhY2hlOjpGb3JjZUNhY2hlKTsKKyAgICBlbHNlCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBGZXRjaFJlcXVlc3Q6
OnNldFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgcmVkaXJlY3QpCit7CisgICAgaWYgKHJlZGlyZWN0
ID09ICJmb2xsb3ciKQorICAgICAgICBtX29wdGlvbnMuc2V0UmVkaXJlY3QoRmV0Y2hPcHRpb25z
OjpSZWRpcmVjdDo6Rm9sbG93KTsKKyAgICBlbHNlIGlmIChyZWRpcmVjdCA9PSAiZXJyb3IiKQor
ICAgICAgICBtX29wdGlvbnMuc2V0UmVkaXJlY3QoRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6RXJy
b3IpOworICAgIGVsc2UgaWYgKHJlZGlyZWN0ID09ICJtYW51YWwiKQorICAgICAgICBtX29wdGlv
bnMuc2V0UmVkaXJlY3QoRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6TWFudWFsKTsKKyAgICBlbHNl
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworU3RyaW5nIEZl
dGNoUmVxdWVzdDo6dHlwZSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX29wdGlvbnMudHlwZSgp
KSB7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlR5cGU6OkRlZmF1bHQ6CisgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6VHlwZTo6QXVkaW8gOgorICAgICAg
ICByZXR1cm4gQVNDSUlMaXRlcmFsKCJhdWRpbyIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpU
eXBlOjpGb250IDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZm9udCIpOworICAgIGNh
c2UgRmV0Y2hPcHRpb25zOjpUeXBlOjpJbWFnZSA6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVy
YWwoImltYWdlIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlR5cGU6OlNjcmlwdCA6CisgICAg
ICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInNjcmlwdCIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25z
OjpUeXBlOjpTdHlsZSA6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInN0eWxlIik7Cisg
ICAgY2FzZSBGZXRjaE9wdGlvbnM6OlR5cGU6OlRyYWNrIDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJ
TGl0ZXJhbCgidHJhY2siKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6VHlwZTo6VmlkZW8gOgor
ICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ2aWRlbyIpOworICAgIH07CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgRmV0Y2hS
ZXF1ZXN0OjpkZXN0aW5hdGlvbigpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX29wdGlvbnMuZGVz
dGluYXRpb24oKSkgeworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6RGVmYXVs
dDoKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0
aW5hdGlvbjo6RG9jdW1lbnQ6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImRvY3VtZW50
Iik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpTaGFyZWRXb3JrZXI6Cisg
ICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInNoYXJlZHdvcmtlciIpOworICAgIGNhc2UgRmV0
Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6U3VicmVzb3VyY2U6CisgICAgICAgIHJldHVybiBBU0NJ
SUxpdGVyYWwoInN1YnJlc291cmNlIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0
aW9uOjpVbmtub3duOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ1bmtub3duIik7Cisg
ICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpXb3JrZXI6CisgICAgICAgIHJldHVy
biBBU0NJSUxpdGVyYWwoIndvcmtlciIpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBGZXRjaFJlcXVlc3Q6OnJlZmVy
cmVyUG9saWN5KCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fb3B0aW9ucy5yZWZlcnJlclBvbGlj
eSgpKSB7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlJlZmVycmVyUG9saWN5OjpFbXB0eToKKyAg
ICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpSZWZlcnJlclBv
bGljeTo6Tm9SZWZlcnJlcjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibm8tcmVmZXJy
ZXIiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6UmVmZXJyZXJQb2xpY3k6Ok5vUmVmZXJyZXJX
aGVuRG93bmdyYWRlOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJuby1yZWZlcnJlci13
aGVuLWRvd25ncmFkZSIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpSZWZlcnJlclBvbGljeTo6
T3JpZ2luT25seToKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgib3JpZ2luLW9ubHkiKTsK
KyAgICBjYXNlIEZldGNoT3B0aW9uczo6UmVmZXJyZXJQb2xpY3k6Ok9yaWdpbldoZW5Dcm9zc09y
aWdpbjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgib3JpZ2luLXdoZW4tY3Jvc3Mtb3Jp
Z2luIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlJlZmVycmVyUG9saWN5OjpVbnNhZmVVUkw6
CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVuc2FmZS11cmwiKTsKKyAgICB9CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
RmV0Y2hSZXF1ZXN0OjpyZWZlcnJlcigpIGNvbnN0Cit7CisgICAgaWYgKG1fcmVmZXJyZXIgPT0g
Im5vLXJlZmVycmVyIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIGlmIChtX3JlZmVy
cmVyID09ICJjbGllbnQiKQorICAgICAgICByZXR1cm4gImFib3V0OmNsaWVudCI7CisgICAgcmV0
dXJuIG1fcmVmZXJyZXI7Cit9CisKK1N0cmluZyBGZXRjaFJlcXVlc3Q6Om1vZGUoKSBjb25zdAor
eworICAgIHN3aXRjaCAobV9vcHRpb25zLm1vZGUoKSkgeworICAgIGNhc2UgRmV0Y2hPcHRpb25z
OjpNb2RlOjpOYXZpZ2F0ZToKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibmF2aWdhdGUi
KTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbjoKKyAgICAgICAgcmV0
dXJuIEFTQ0lJTGl0ZXJhbCgic2FtZS1vcmlnaW4iKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6
TW9kZTo6Tm9Db3JzOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJuby1jb3JzIik7Cisg
ICAgY2FzZSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnM6CisgICAgICAgIHJldHVybiBBU0NJSUxp
dGVyYWwoImNvcnMiKTsKKyAgICB9OworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEZldGNoUmVxdWVzdDo6Y3JlZGVudGlhbHMoKSBj
b25zdAoreworICAgIHN3aXRjaCAobV9vcHRpb25zLmNyZWRlbnRpYWxzKCkpIHsKKyAgICBjYXNl
IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQ6CisgICAgICAgIHJldHVybiBBU0NJSUxp
dGVyYWwoIm9taXQiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVP
cmlnaW46CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInNhbWUtb3JpZ2luIik7CisgICAg
Y2FzZSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlOgorICAgICAgICByZXR1cm4g
QVNDSUlMaXRlcmFsKCJpbmNsdWRlIik7CisgICAgfTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBGZXRjaFJlcXVlc3Q6OmNhY2hl
KCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fb3B0aW9ucy5jYWNoZSgpKSB7CisgICAgY2FzZSBG
ZXRjaE9wdGlvbnM6OkNhY2hlOjpEZWZhdWx0OgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFs
KCJkZWZhdWx0Iik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkNhY2hlOjpOb1N0b3JlOgorICAg
ICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJuby1zdG9yZSIpOworICAgIGNhc2UgRmV0Y2hPcHRp
b25zOjpDYWNoZTo6UmVsb2FkOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJyZWxvYWQi
KTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q2FjaGU6Ok5vQ2FjaGU6CisgICAgICAgIHJldHVy
biBBU0NJSUxpdGVyYWwoIm5vLWNhY2hlIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkNhY2hl
OjpGb3JjZUNhY2hlOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJmb3JjZS1jYWNoZSIp
OworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyBGZXRjaFJlcXVlc3Q6OnJlZGlyZWN0KCkgY29uc3QKK3sKKyAgICBzd2l0
Y2ggKG1fb3B0aW9ucy5yZWRpcmVjdCgpKSB7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlJlZGly
ZWN0OjpGb2xsb3c6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImZvbGxvdyIpOworICAg
IGNhc2UgRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6RXJyb3I6CisgICAgICAgIHJldHVybiBBU0NJ
SUxpdGVyYWwoImVycm9yIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpNYW51
YWw6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm1hbnVhbCIpOworICAgIH0KKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK2Jvb2wgRmV0
Y2hSZXF1ZXN0OjpzZXRNZXRob2QoY29uc3QgU3RyaW5nJiBtZXRob2QpCit7CisgICAgaWYgKCFp
c1ZhbGlkSFRUUFRva2VuKG1ldGhvZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFN0
cmluZyB1cHBlciA9IG1ldGhvZC51cHBlcigpOworICAgIGlmICh1cHBlciA9PSAiQ09OTkVDVCIg
fHwgdXBwZXIgPT0gIlRSQUNFIiB8fCB1cHBlciA9PSAiVFJBQ0siKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBtX3JlcXVlc3Quc2V0SFRUUE1ldGhvZCgodXBwZXIgPT0gIkRFTEVURSIg
fHwgdXBwZXIgPT0gIkdFVCIgfHwgdXBwZXIgPT0gIkhFQUQiIHx8IHVwcGVyID09ICJPUFRJT05T
IiB8fCB1cHBlciA9PSAiUE9TVCIgfHwgdXBwZXIgPT0gIlBVVCIpID8gdXBwZXIgOiBtZXRob2Qp
OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JlZlB0cjxGZXRjaFJlcXVlc3Q+IEZldGNoUmVx
dWVzdDo6Y2xvbmUoRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKGlzRGlzdHVyYmVkKCkp
IHsKKyAgICAgICAgZWMgPSBUeXBlRXJyb3I7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IH0KKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGZXRjaFJlcXVlc3QoKnRoaXMpKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEZFVENIX0FQSSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYw
ZDE0ZDVjYWRjNjBiYTNmZGNkYTk4NmRmZjRjMGUyNjFhOTAwMGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oCkBAIC0wLDAgKzEs
OTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IEZldGNoUmVxdWVzdF9oCisjZGVmaW5lIEZldGNoUmVxdWVzdF9oCisKKyNpZiBFTkFCTEUoRkVU
Q0hfQVBJKQorCisjaW5jbHVkZSAiRmV0Y2hCb2R5LmgiCisjaW5jbHVkZSAiRmV0Y2hIZWFkZXJz
LmgiCisjaW5jbHVkZSAiRmV0Y2hPcHRpb25zLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGljdGlvbmFyeTsKK2NsYXNzIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CisKK2Ns
YXNzIEZldGNoUmVxdWVzdCA6IHB1YmxpYyBGZXRjaEJvZHkgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWZQdHI8RmV0Y2hSZXF1ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEZl
dGNoUmVxdWVzdCosIGNvbnN0IERpY3Rpb25hcnkmLCBFeGNlcHRpb25Db2RlJik7CisgICAgc3Rh
dGljIFJlZlB0cjxGZXRjaFJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgRGljdGlvbmFyeSYsIEV4Y2VwdGlvbkNvZGUmKTsKKworICAg
IFN0cmluZyBtZXRob2QgKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0Lmh0dHBNZXRob2QoKTsg
fQorICAgIFN0cmluZyB1cmwoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3QudXJsKCkuc3RyaW5n
KCk7IH0KKworICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7CisgICAgU3RyaW5nIGRlc3RpbmF0aW9u
KCkgY29uc3Q7CisgICAgU3RyaW5nIHJlZmVycmVyKCkgY29uc3Q7CisgICAgU3RyaW5nIHJlZmVy
cmVyUG9saWN5KCkgY29uc3Q7CisgICAgU3RyaW5nIG1vZGUoKSBjb25zdDsKKyAgICBTdHJpbmcg
Y3JlZGVudGlhbHMoKSBjb25zdDsKKyAgICBTdHJpbmcgY2FjaGUoKSBjb25zdDsKKyAgICBTdHJp
bmcgcmVkaXJlY3QoKSBjb25zdDsKKyAgICBTdHJpbmcgaW50ZWdyaXR5KCkgY29uc3QgeyByZXR1
cm4gbV9pbnRlZ3JpdHk7IH0KKworICAgIEZldGNoSGVhZGVycyogaGVhZGVycygpIHsgcmV0dXJu
IG1faGVhZGVycy5nZXQoKTsgfQorCisgICAgUmVmUHRyPEZldGNoUmVxdWVzdD4gY2xvbmUoRXhj
ZXB0aW9uQ29kZSYpOworCitwcml2YXRlOgorICAgIEZldGNoUmVxdWVzdCgpOworICAgIEZldGNo
UmVxdWVzdChjb25zdCBGZXRjaFJlcXVlc3QmKTsKKworICAgIGJvb2wgaW5pdChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgY29uc3QgRGljdGlvbmFyeSYpOworICAgIGJvb2wgc2V0UmVmZXJyZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYpOworICAgIGJvb2wgc2V0UmVm
ZXJyZXJQb2xpY3koY29uc3QgU3RyaW5nJik7CisgICAgYm9vbCBzZXRNb2RlKGNvbnN0IFN0cmlu
ZyYpOworICAgIGJvb2wgc2V0Q3JlZGVudGlhbHMoY29uc3QgU3RyaW5nJik7CisgICAgYm9vbCBz
ZXRDYWNoZShjb25zdCBTdHJpbmcmKTsKKyAgICBib29sIHNldFJlZGlyZWN0KGNvbnN0IFN0cmlu
ZyYpOworICAgIGJvb2wgc2V0TWV0aG9kKGNvbnN0IFN0cmluZyYpOworCisgICAgUmVmUHRyPEZl
dGNoSGVhZGVycz4gbV9oZWFkZXJzOworICAgIFJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7Cisg
ICAgRmV0Y2hPcHRpb25zIG1fb3B0aW9uczsKKyAgICBTdHJpbmcgbV9yZWZlcnJlcjsKKyAgICBT
dHJpbmcgbV9pbnRlZ3JpdHk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoRkVUQ0hfQVBJKQorCisjZW5kaWYgLy8gRmV0Y2hSZXF1ZXN0X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
Nzc3NDBhODRhYjE1Nzg1ZjA0MmVkYWE5YTUxYTg5OGUzNWQ2MGVmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaWRsCkBAIC0wLDAg
KzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9u
IEluYy4gbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitlbnVt
IFJlcXVlc3RUeXBlIHsgIiIsICJhdWRpbyIsICJmb250IiwgImltYWdlIiwgInNjcmlwdCIsICJz
dHlsZSIsICJ0cmFjayIsICJ2aWRlbyIgfTsKK2VudW0gUmVxdWVzdERlc3RpbmF0aW9uIHsgIiIs
ICJkb2N1bWVudCIsICJzaGFyZWR3b3JrZXIiLCAic3VicmVzb3VyY2UiLCAidW5rbm93biIsICJ3
b3JrZXIiIH07CitlbnVtIFJlcXVlc3RNb2RlIHsgIm5hdmlnYXRlIiwgInNhbWUtb3JpZ2luIiwg
Im5vLWNvcnMiLCAiY29ycyIgfTsKK2VudW0gUmVxdWVzdENyZWRlbnRpYWxzIHsgIm9taXQiLCAi
c2FtZS1vcmlnaW4iLCAiaW5jbHVkZSIgfTsKK2VudW0gUmVxdWVzdENhY2hlIHsgImRlZmF1bHQi
LCAibm8tc3RvcmUiLCAicmVsb2FkIiwgIm5vLWNhY2hlIiwgImZvcmNlLWNhY2hlIiB9OworZW51
bSBSZXF1ZXN0UmVkaXJlY3QgeyAiZm9sbG93IiwgImVycm9yIiwgIm1hbnVhbCIgfTsKK2VudW0g
UmVmZXJyZXJQb2xpY3kgeyAiIiwgIm5vLXJlZmVycmVyIiwgICJuby1yZWZlcnJlci13aGVuLWRv
d25ncmFkZSIsICJvcmlnaW4tb25seSIsICJvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iLCAidW5z
YWZlLXVybCIgfTsKKworWworICAgIENvbmRpdGlvbmFsPUZFVENIX0FQSSwKKyAgICBDb25zdHJ1
Y3RvckNhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCisgICAgQ29uc3RydWN0b3JSYWlz
ZXNFeGNlcHRpb24sCisgICAgQ29uc3RydWN0b3IoRmV0Y2hSZXF1ZXN0IGlucHV0LCBbRGVmYXVs
dD1VbmRlZmluZWRdIG9wdGlvbmFsIERpY3Rpb25hcnkgaW5pdCksCisgICAgQ29uc3RydWN0b3Io
RE9NU3RyaW5nIGlucHV0LCBbRGVmYXVsdD1VbmRlZmluZWRdICBvcHRpb25hbCBEaWN0aW9uYXJ5
IGluaXQpLAorICAgIEdsb2JhbENvbnRleHQ9RE9NV2luZG93Jldvcmtlckdsb2JhbFNjb3BlLAor
ICAgIEludGVyZmFjZU5hbWU9UmVxdWVzdAorXQoraW50ZXJmYWNlIEZldGNoUmVxdWVzdCB7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXRob2Q7CisgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyB1cmw7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZldGNoSGVhZGVy
cyBoZWFkZXJzOworCisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3RUeXBlIHR5cGU7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3REZXN0aW5hdGlvbiBkZXN0aW5hdGlvbjsKKyAg
ICBbU2V0dGVyQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyByZWZlcnJlcjsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVmZXJyZXJQ
b2xpY3kgcmVmZXJyZXJQb2xpY3k7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3RNb2Rl
IG1vZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50
aWFsczsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVzdENhY2hlIGNhY2hlOworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBSZXF1ZXN0UmVkaXJlY3QgcmVkaXJlY3Q7CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBpbnRlZ3JpdHk7CisKKyAgICBbUmFpc2VzRXhjZXB0aW9uLCBO
ZXdPYmplY3RdIEZldGNoUmVxdWVzdCBjbG9uZSgpOworfTsKK0ZldGNoUmVxdWVzdCBpbXBsZW1l
bnRzIEZldGNoQm9keTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAxMTdjYjM2MzhiYzliMTlkODczZTBiMDMzNjk0ZTg3N2Q0NWRm
YWEzLi44NDc1NjRmNzk5OGEzZGI5ODk4NjdlMzdmY2JlZGU1Y2YyMWRkNTUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTQ3
LDcgKzE1NDcsOSBAQAogCQk0MUYwNjZFNTBGNjRCQ0Y2MDBBMDdFQUMgLyogU2NyaXB0R2xvYmFs
T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxRjA2NkUzMEY2NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRHbG9iYWxPYmplY3QuY3BwICovOyB9
OwogCQk0MUYxRDIxRjBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYxRDIxRDBF
RjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFGMUQyMjAwRUYzNUMyQTAwREE4
NzUzIC8qIFNjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYxRDIxRTBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0
Q2FjaGVkRnJhbWVEYXRhLmNwcCAqLzsgfTsKKwkJNDFGNTRGOEIxQzUwQzUwMzAwMzM4NDg4IC8q
IEZldGNoQm9keS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MUY1NEY3RDFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hCb2R5LmNwcCAqLzsgfTsKIAkJ
NDFGNTRGOEQxQzUwQzUwODAwMzM4NDg4IC8qIEZldGNoSGVhZGVycy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUY1NEY4MjFDNTBDNEY2MDAzMzg0
ODggLyogRmV0Y2hIZWFkZXJzLmNwcCAqLzsgfTsKKwkJNDFGNTRGOEUxQzUwQzUwQzAwMzM4NDg4
IC8qIEZldGNoUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MUY1NEY4NzFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hSZXF1ZXN0LmNwcCAq
LzsgfTsKIAkJNDFGNTg0QzcxMDQ2NTJDQjAwOUNBQTY0IC8qIEpTTWVzc2FnZVBvcnRDdXN0b20u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjU4NEM2
MTA0NjUyQ0IwMDlDQUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmggKi87IH07CiAJCTQxRkEz
MDNFMTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkEzMDNDMTMxNkMyOUMwMEMw
QkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcCAqLzsgfTsKIAkJNDFGQTMwM0YxMzE2QzI5
QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkEzMDNEMTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5k
ZXJNZWRpYUNvbnRyb2xzLmggKi87IH07CkBAIC0yNzkwLDYgKzI3OTIsOCBAQAogCQk3RTQ3NEUx
RTEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ3NEUxQjEyNDk0REM5
MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0U0NzRFMUYxMjQ5NERDOTAwMjM1
MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0NzRFMUMxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURh
dGFiYXNlVHJhY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTdFNDc0RTIwMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNr
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0
NzRFMUQxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgKi87IH07
CisJCTdFNEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTRDOTZEODFBRDQ0ODM1
MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuY3BwICovOyB9OworCQk3RTRDOTZERDFBRDQ0ODM1
MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVx
dWVzdC5oICovOyB9OwogCQk3RTRERTEwRDE5OEIxMEI2MDA1MUNCMDIgLyogRGlza0NhY2hlTW9u
aXRvckNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0U0REUxMEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAq
LzsgfTsKIAkJN0U1RDdBNzYxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U1RDdB
NzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovOyB9OwogCQk3
RTVEN0E3NzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U1RDdBNzQxNjFEM0Y4RjAw
ODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCAqLzsgfTsKQEAgLTI4MjYsNiArMjgzMCw4
IEBACiAJCTdFRTY4NDcwMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ1RDEyRDI2
RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdFRTY4NDcxMTJEMjZFMzgwMEU3OTQxNSAvKiBS
ZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0VFNjg0NUUxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9u
c2VDRk5ldC5jcHAgKi87IH07CiAJCTdFRTY4NDc1MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJj
ZUxvYWRlckNGTmV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdFRTY4NDc0MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRlckNGTmV0LmNw
cCAqLzsgfTsKKwkJN0Y0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdGNEM5NkQ4MUFE
NDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5jcHAgKi87IH07CisJCTdGNEM5NkREMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5
LmggKi87IH07CiAJCTgxMDJDNTg4MTMyNUJCMTEwMERERTY3QSAvKiBTdHJpbmdDYWxsYmFjay5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MTAyQzU4
NzEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwICovOyB9OwogCQk4MUFDNTk5
OTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBQzU5OTcxMzE2MzZFNjAwMDlBN0UwIC8q
IERhdGFUcmFuc2Zlckl0ZW0uaCAqLzsgfTsKIAkJODFBQzU5OUExMzE2MzZFNjAwMDlBN0UwIC8q
IERhdGFUcmFuc2Zlckl0ZW1MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRl
bUxpc3QuaCAqLzsgfTsKQEAgLTg5NTIsMTAgKzg5NTgsMTcgQEAKIAkJNDFGMDY2RTMwRjY0QkNG
NjAwQTA3RUFDIC8qIFNjcmlwdEdsb2JhbE9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTY3JpcHRHbG9iYWxPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MUYxRDIxRDBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJh
bWVEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdENhY2hlZEZy
YW1lRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUYxRDIxRTBFRjM1QzJB
MDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxRjU0RjdEMUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEJvZHku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmV0Y2hCb2R5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGNTRGN0UxQzUwQzRGNjAwMzM4NDg4IC8q
IEZldGNoQm9keS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZXRjaEJvZHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGNTRGN0YxQzUwQzRGNjAwMzM4NDg4
IC8qIEZldGNoQm9keS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmV0Y2hCb2R5LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGNTRGODIxQzUwQzRGNjAwMzM4NDg4IC8q
IEZldGNoSGVhZGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBG
ZXRjaEhlYWRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUY1NEY4MzFD
NTBDNEY2MDAzMzg0ODggLyogRmV0Y2hIZWFkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZldGNoSGVhZGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MUY1NEY4NDFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hIZWFkZXJzLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBGZXRjaEhlYWRlcnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MUY1NEY4NTFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hIZWFkZXJzLmpzICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gRmV0Y2hIZWFkZXJzLmpzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MUY1NEY4NjFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hPcHRp
b25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZldGNoT3B0aW9ucy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUY1NEY4NzFDNTBDNEY2MDAzMzg0ODggLyog
RmV0Y2hSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZl
dGNoUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRjU0Rjg4MUM1
MEM0RjYwMDMzODQ4OCAvKiBGZXRjaFJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRmV0Y2hSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
RjU0Rjg5MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaFJlcXVlc3QuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEZldGNoUmVxdWVzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxRjU4NEM2MTA0NjUyQ0IwMDlDQUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVzc2FnZVBvcnRDdXN0b20uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGQTMwM0MxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRl
ck1lZGlhQ29udHJvbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVuZGVyTWVkaWFDb250cm9scy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
RkEzMDNEMTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlck1lZGlhQ29udHJvbHMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMzQ4LDYgKzEwMzYxLDggQEAKIAkJN0U0NzRFMUIxMjQ5
NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U0NzRFMUMxMjQ5NERDOTAwMjM1MzY0IC8qIFNR
TGl0ZURhdGFiYXNlVHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
UUxpdGVEYXRhYmFzZVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U0
NzRFMUQxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTAg
LyogSlNGZXRjaFJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNGZXRjaFJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RTRD
OTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNGZXRjaFJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0U0REUxMEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2Nv
YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERpc2tDYWNoZU1v
bml0b3JDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U1RDdBNzMxNjFE
M0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gT0VTRWxlbWVudEluZGV4VWludC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50
SW5kZXhVaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9FU0VsZW1lbnRJ
bmRleFVpbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMzg2LDYgKzEwNDAx
LDggQEAKIAkJN0VFNjg0NUQxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUU2ODQ1RTEyRDI2RTM4MDBFNzk0MTUgLyogUmVz
b3VyY2VSZXNwb25zZUNGTmV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlc291cmNlUmVzcG9uc2VDRk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdFRTY4NDc0MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRlckNGTmV0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZGVyQ0ZOZXQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RjRDOTZEODFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNGZXRjaEJvZHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNGZXRjaEJvZHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RjRDOTZE
OTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNGZXRjaEJvZHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODEwMkM1ODcxMzI1QkIxMTAwRERFNjdBIC8qIFN0cmluZ0NhbGxiYWNrLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ0NhbGxiYWNrLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFBQzU5OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFu
c2Zlckl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YVRyYW5zZmVy
SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUFDNTk5ODEzMTYzNkU2MDAw
OUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE2NjA1LDEwICsxNjYyMiwxNyBAQAogCQk0MUY1NEY3QzFDNTBDNEY2MDAzMzg0ODgg
LyogZmV0Y2ggKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJ
CTQxRjU0RjdEMUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEJvZHkuY3BwICovLAorCQkJCTQxRjU0
RjdFMUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEJvZHkuaCAqLywKKwkJCQk0MUY1NEY3RjFDNTBD
NEY2MDAzMzg0ODggLyogRmV0Y2hCb2R5LmlkbCAqLywKIAkJCQk0MUY1NEY4MjFDNTBDNEY2MDAz
Mzg0ODggLyogRmV0Y2hIZWFkZXJzLmNwcCAqLywKIAkJCQk0MUY1NEY4MzFDNTBDNEY2MDAzMzg0
ODggLyogRmV0Y2hIZWFkZXJzLmggKi8sCiAJCQkJNDFGNTRGODQxQzUwQzRGNjAwMzM4NDg4IC8q
IEZldGNoSGVhZGVycy5pZGwgKi8sCiAJCQkJNDFGNTRGODUxQzUwQzRGNjAwMzM4NDg4IC8qIEZl
dGNoSGVhZGVycy5qcyAqLywKKwkJCQk0MUY1NEY4NjFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hP
cHRpb25zLmggKi8sCisJCQkJNDFGNTRGODcxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoUmVxdWVz
dC5jcHAgKi8sCisJCQkJNDFGNTRGODgxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoUmVxdWVzdC5o
ICovLAorCQkJCTQxRjU0Rjg5MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaFJlcXVlc3QuaWRsICov
LAogCQkJKTsKIAkJCXBhdGggPSBmZXRjaDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0xNjYxNiw2ICsxNjY0MCwxMCBAQAogCQk0MkEwMjNGQTFBMzlGMTNBMDBGNzIyQ0YgLyogRmV0
Y2hBUEkgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTdG
NEM5NkQ4MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5jcHAgKi8sCisJCQkJN0Y0Qzk2
RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmggKi8sCisJCQkJN0U0Qzk2RDgxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0LmNwcCAqLywKKwkJCQk3RTRDOTZEOTFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuaCAqLywKIAkJCQk3RDRDOTZEODFBRDQ0ODM1
MDAzNjVBNTAgLyogSlNGZXRjaEhlYWRlcnMuY3BwICovLAogCQkJCTdENEM5NkQ5MUFENDQ4MzUw
MDM2NUE1MCAvKiBKU0ZldGNoSGVhZGVycy5oICovLAogCQkJKTsKQEAgLTI2NDYwLDYgKzI2NDg4
LDggQEAKIAkJCQkwNzc2NjRGRDE4M0U2QjVDMDAxMzNCOTIgLyogSlNRdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjY1OEZGQTIxNTIyRUYzQTAwREQ1NTk1
IC8qIEpTUmFkaW9Ob2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVERjMyMDIwOUQxQ0M2
MDAwMEJFMzI1IC8qIEpTUmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTdGNEM5NkREMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0U0Qzk2REQx
QUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3
RDRDOTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEhlYWRlcnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdDNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0
cmVhbUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjk2MzcsNiArMjk2NjcsNyBAQAog
CQkJCUM1ODVBNjYyMTFENEZBQzUwMDRDM0U0QiAvKiBJREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxNkQ3RDcxMUJCNUYwQkQwMEFGN0M3NyAvKiBJREJDb25uZWN0
aW9uVG9DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE5OEY3QzAxQkM0ODU2NzAwRTJD
QzVGIC8qIElEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MUY1
NEY4QjFDNTBDNTAzMDAzMzg0ODggLyogRmV0Y2hCb2R5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxODVGQzdBMUJCNEM0RTgwMDEyODk4RiAvKiBJREJDdXJzb3IuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTFGNDFBNjkxQkE3M0I1QjAwMkUwNTNCIC8qIElEQkN1cnNvckJhY2tlbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTFGNDFBNkIxQkE3M0I1QjAwMkUwNTNCIC8qIElEQkN1cnNvckJh
Y2tlbmRPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzAwNDYsNiArMzAwNzcsNyBA
QAogCQkJCUE4MEU3RTlFMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxUZXh0QXJlYUVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODNFMzU5QTMxQkIxMDMxRDAwMkNFQjk4IC8qIEpTSFRN
TFRpbWVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU3QjEzMEExOUQ2MDYwMDdG
QjhDNSAvKiBKU0hUTUxUaXRsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDFGNTRG
OEUxQzUwQzUwQzAwMzM4NDg4IC8qIEZldGNoUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzA3NTZEMzE0MjM5QTRFMDA0MTQxNjEgLyogSlNIVE1MVHJhY2tFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBODVCMjEwMEExQjI1ODcwMEQ4Qzg3QyAvKiBKU0hUTUxVTGlzdEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU0QUJDRDQxMzhFQTBCNzAwNzFEMjkxIC8q
IEpTSFRNTFVua25vd25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzAxNjgsNyArMzAy
MDAsOSBAQAogCQkJCTA3NzY2NEZDMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI2NThGRkExMTUyMkVGM0EwMERE
NTU5NSAvKiBKU1JhZGlvTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMyMDEw
OUQxQ0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0Y0Qzk2
REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdENEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoSGVhZGVycy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk3RTRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFi
bGVTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkM0Qzk2REUxQUQ0NDgzNTAwMzY1QTUw
IC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQx
MjlERjg1MUJCNUI4MDcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVj
dG9ycy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0RpY3Rpb25hcnkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RpY3Rpb25h
cnkuaAppbmRleCBlYzFlY2E4OTY2N2MzNmQ1NzFhZTE2N2UxNzc4NDJkMDY0OTkxNjViLi5kMzE3
MmFmNDQ3ZmZhYjgxZWZjNjU4NTgzY2VhOTE0NWIxNjIyYTkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9EaWN0aW9uYXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvRGljdGlvbmFyeS5oCkBAIC02Niw2ICs2Niw4IEBAIHB1YmxpYzoKICAgICBib29s
IGdldE93blByb3BlcnR5TmFtZXMoVmVjdG9yPFN0cmluZz4mKSBjb25zdDsKICAgICBib29sIGdl
dFdpdGhVbmRlZmluZWRPck51bGxDaGVjayhjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIFN0cmlu
ZyYgdmFsdWUpIGNvbnN0OwogCisgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWNTdGF0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZGljdGlvbmFyeS5leGVjU3RhdGUoKTsgfQorCiBwcml2YXRlOgogICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBUPgogICAgIEpTQzo6SlNPYmplY3QqIGFzSlNPYmplY3QoVCopIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKaW5kZXgg
YzRhMmYxNjcxMmM0YjRhNmM0MmNhZDI1YzA3NmVmYWVhNGNiNmEzNS4uMzM0NmNjZmU2OTkzZmI5
NDk1NzVkNzMwODU1ZWQ0ZDc4Zjk2OGRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RpY3Rpb25hcnkuY3BwCkBAIC00Nyw2ICs0NywxMCBAQAogI2luY2x1ZGUgIkpTTWVkaWFL
ZXlFcnJvci5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRkVUQ0hfQVBJKQorI2luY2x1ZGUgIkpT
RmV0Y2hIZWFkZXJzLmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAjaW5j
bHVkZSAiSlNNZWRpYVN0cmVhbS5oIgogI2luY2x1ZGUgIkpTTWVkaWFTdHJlYW1UcmFjay5oIgpA
QCAtMjI3LDYgKzIzMSwxMyBAQCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8TWVkaQogfQogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoRkVUQ0hfQVBJKQordm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPEZldGNoSGVhZGVycz4m
IHJlc3VsdCkKK3sKKyAgICByZXN1bHQgPSBKU0ZldGNoSGVhZGVyczo6dG9XcmFwcGVkKHZhbHVl
KTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgSlNEaWN0aW9u
YXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJl
ZlB0cjxNZWRpYVN0cmVhbT4mIHJlc3VsdCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNEaWN0aW9uYXJ5LmgKaW5kZXggZjU4ZmJmNzBiNmI1NTg4MmM2YjJhZWYyOTQwN2VjNjliZGM5
NmMzNC4uNTRiZjc5OTBjMGQxYTdlZjU0N2IxMzBmZWM1YWQxMzZkM2U1YjczOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xh
c3MgRE9NRXJyb3I7CiBjbGFzcyBET01XaW5kb3c7CiBjbGFzcyBFdmVudFRhcmdldDsKIGNsYXNz
IEdhbWVwYWQ7CitjbGFzcyBGZXRjaEhlYWRlcnM7CiBjbGFzcyBNZWRpYUtleUVycm9yOwogY2xh
c3MgTWVkaWFTdHJlYW07CiBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrOwpAQCAtMTI2LDYgKzEyNyw5
IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBzdGF0aWMgdm9p
ZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxNZWRp
YUtleUVycm9yPiYgcmVzdWx0KTsKICNlbmRpZgorI2lmIEVOQUJMRShGRVRDSF9BUEkpCisgICAg
c3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBS
ZWZQdHI8RmV0Y2hIZWFkZXJzPiYgcmVzdWx0KTsKKyNlbmRpZgogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgc3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlLCBSZWZQdHI8TWVkaWFTdHJlYW0+JiByZXN1bHQpOwogICAgIHN0YXRpYyB2b2lk
IGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPE1lZGlh
U3RyZWFtVHJhY2s+JiByZXN1bHQpOwpAQCAtMTYzLDYgKzE2NywxMiBAQCBib29sIEpTRGljdGlv
bmFyeTo6Z2V0KGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgUmVzdWx0JiBmaW5hbFJlc3VsdCkg
Y29uc3QKICAgICByZXR1cm4gdHJ5R2V0UHJvcGVydHlBbmRSZXN1bHQocHJvcGVydHlOYW1lLCAm
ZmluYWxSZXN1bHQsIElkZW50aXR5U2V0dGVyPFJlc3VsdD46OmlkZW50aXR5U2V0dGVyKSA9PSBQ
cm9wZXJ0eUZvdW5kOwogfQogCit0ZW1wbGF0ZSA8PgoraW5saW5lIGJvb2wgSlNEaWN0aW9uYXJ5
OjpnZXQoY29uc3QgY2hhciogcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUmIGZpbmFsUmVzdWx0
KSBjb25zdAoreworICAgIHJldHVybiB0cnlHZXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIGZpbmFs
UmVzdWx0KSA9PSBQcm9wZXJ0eUZvdW5kOworfQorCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgUmVzdWx0PgogSlNEaWN0aW9uYXJ5OjpHZXRQcm9wZXJ0eVJlc3VsdCBKU0RpY3Rpb25h
cnk6OnRyeUdldFByb3BlcnR5QW5kUmVzdWx0KGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgVCog
Y29udGV4dCwgdm9pZCAoKnNldHRlcikoVCogY29udGV4dCwgY29uc3QgUmVzdWx0JikpIGNvbnN0
CiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggYTVlZWFlNmNmYjVhYjY2NDRjMzg4M2JjNjZlMTc0ODFmOGI4M2ZhMi4uZmQ0
NDg2NjEwYWZiYTk0ZmFiOWNhYjE3MTg2ZTUyZWJhY2M1ZDQ3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDE2LTAxLTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CisKKyAgICAgICAgW0ZldGNoIEFQSV0gSW1wbGVtZW50IEZldGNoIEFQSSBSZXF1ZXN0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM0MzcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50
eHQ6CisgICAgICAgICoganMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICog
cGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbWF2ZXJp
Y2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHBsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9y
cy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvanMvZG9t
L2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
cGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0
ZWQudHh0OgorCiAyMDE2LTAxLTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgRXhwb3NlIFZhbGlkaXR5U3RhdGUgb24gdGhlIGdsb2JhbCBXaW5kb3cgb2JqZWN0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA4ZDc2YjAxY2UyYzRiYzZjMTczY2Yx
ZWFlMmMzMDY4NmZjY2Y5ZGE5Li4zNWVlNWJlOTAyYzljMjM2YjE3Y2M1NzA0YmFjODhiMDNhZDY4
NDdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAx
Ni0wMS0yNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisg
ICAgICAgIFtGZXRjaCBBUEldIEltcGxlbWVudCBGZXRjaCBBUEkgUmVxdWVzdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNDM3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNsb25lLnN1Yi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWNsb25lLnN1Yi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtY29uc3VtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1k
aXN0dXJiZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1oZWFkZXJzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaGVhZGVycy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1p
ZGwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pZGwuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDEuc3ViLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDEuc3ViLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAyLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3QtaW5pdC0wMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDMuc3ViLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtaW5pdC0wMDMuc3ViLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LXN0cnVjdHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9hdXRoZW50aWNhdGlvbi5weTogQWRkZWQuCisgICAgICAg
IChtYWluKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNl
cy9jbGVhbi1zdGFzaC5weTogQWRkZWQuCisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9pbnNwZWN0LWhlYWRlcnMucHk6IEFk
ZGVkLgorICAgICAgICAobWFpbik6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNvdXJjZXMvbWV0aG9kLnB5OiBBZGRlZC4KKyAgICAgICAgKG1haW4pOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3ByZWZsaWdodC5weTog
QWRkZWQuCisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc291cmNlcy9yZWRpcmVjdC5weTogQWRkZWQuCisgICAgICAgIChtYWluKToKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy90b3AudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy90
cmlja2xlLnB5OiBBZGRlZC4KKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3V0aWxzLmpzOiBBZGRlZC4KKyAgICAgICAgKGNh
dGNoKToKKyAgICAgICAgKGRpcm5hbWUpOgorICAgICAgICAoY2hlY2tSZXF1ZXN0KToKKyAgICAg
ICAgKHJlYWRUZXh0U3RyZWFtKToKKwogMjAxNi0wMS0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIEV4cG9zZSBWYWxpZGl0eVN0YXRlIG9uIHRoZSBnbG9iYWwg
V2luZG93IG9iamVjdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWJhc2ljLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJz
L2hlYWRlcnMtYmFzaWMuaHRtbAppbmRleCBmNmQ1ZWVkOTk4MDc5ZGM4ZWI1ODgwZmJmYWM4Njkz
NzhkZTZiZGI4Li5jMzk1NDVkNTQzMTQ2MWFkYTQ2OTJjZWRjODlkN2QyODZkNDY1ZmRmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9oZWFkZXJzL2hlYWRlcnMtYmFzaWMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtYmFzaWMu
aHRtbApAQCAtNDgsNiArNDgsNyBAQAogICAgICAgICAgIGFzc2VydF9lcXVhbHMoaGVhZGVycy5n
ZXQobmFtZSksIFN0cmluZyhoZWFkZXJEaWN0W25hbWVdKSwKICAgICAgICAgICAgICJuYW1lOiAi
ICsgbmFtZSArICIgaGFzIHZhbHVlOiAiICsgaGVhZGVyRGljdFtuYW1lXSk7CiAgICAgICAgIH0K
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdldCgibGVuZ3RoIiksIG51bGwsICJpbml0
IHNob3VsZCBiZSB0cmVhdGVkIGFzIGEgc2VxdWVuY2UsIG5vdCBhcyBhIGRpY3Rpb25hcnkiKTsK
ICAgICAgIH0sICJDcmVhdGUgaGVhZGVycyB3aXRoIHNlcXVlbmNlIik7CiAKICAgICAgIHRlc3Qo
ZnVuY3Rpb24oKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2xvbmUuc3ViLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1jbG9uZS5zdWItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZj
YmQwNzc0Nzk4NDRjZWE1Yzc5NjE5YWExNzcwYTU0ZGYyZWYzMDMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtY2xvbmUuc3ViLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKwor
RkFJTCBDaGVjayBjbG9uaW5nIGEgcmVxdWVzdCBFeHBlY3RlZFZhbHVlc0RpY3RbImhlYWRlcnMi
XS5rZXlzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ0V4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVy
cyJdLmtleXMoKScsICdFeHBlY3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzJyBpcyB1bmRl
ZmluZWQpCitQQVNTIENoZWNrIGNsb25pbmcgYSByZXF1ZXN0IGNvcGllcyB0aGUgaGVhZGVycyAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNsb25lLnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNsb25lLnN1Yi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4MDdlMjZiYWM4YzRlZTA4ZWY5MjdiOTdmZWQ2
YTRmN2UyODc1NTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2xvbmUuc3ViLmh0
bWwKQEAgLTAsMCArMSw2MyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+Cisg
ICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5SZXF1ZXN0IGNsb25lPC90aXRs
ZT4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdn
Lm9yZy8jcmVxdWVzdCI+CisgICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVz
ZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgorICAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91dGlscy5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAg
PGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoIHsi
bmFtZSIgOiAidmFsdWUifSApOworICAgICAgdmFyIGVtcHR5SGVhZGVycyA9IG5ldyBIZWFkZXJz
KCk7CisKKyAgICAgIHZhciBpbml0VmFsdWVzRGljdCA9IHsibWV0aG9kIiA6ICJQT1NUIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJyZXIiIDogImh0dHA6Ly97e2hvc3R9fTp7
e3BvcnRzW2h0dHBdWzBdfX0vIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJy
ZXJQb2xpY3kiIDogIm9yaWdpbi1vbmx5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
bW9kZSIgOiAic2FtZS1vcmlnaW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjcmVk
ZW50aWFscyIgOiAiaW5jbHVkZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhY2hl
IiA6ICJuby1jYWNoZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZGlyZWN0IiA6
ICJlcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVncml0eSIgOiAiUmVx
dWVzdCdzIEludGVncml0eSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhlYWRlcnMi
IDogaGVhZGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYm9keSIgOiAiUmVxdWVz
dCdzIGJvZHkiCisgICAgICB9OworCisgICAgICB2YXIgZXhwZWN0ZWRJbml0aWFsaXplZCA9IHsi
bWV0aG9kIiA6ICJQT1NUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZl
cnJlciIgOiAiaHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fS8iLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVycmVyUG9saWN5IiA6ICJvcmlnaW4tb25seSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW9kZSIgOiAic2FtZS1vcmlnaW4i
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNyZWRlbnRpYWxzIiA6ICJpbmNs
dWRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYWNoZSIgOiAibm8tY2Fj
aGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZGlyZWN0IiA6ICJlcnJv
ciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWdyaXR5IiA6ICJSZXF1
ZXN0J3MgSW50ZWdyaXR5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoZWFk
ZXJzIiA6IGhlYWRlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYm9keSIg
OiAiUmVxdWVzdCdzIGJvZHkiCisgICAgICB9OworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewor
ICAgICAgICB2YXIgUmVxdWVzdEluaXRpYWxpemVkID0gbmV3IFJlcXVlc3QoIiIsIGluaXRWYWx1
ZXNEaWN0KTsKKyAgICAgICAgdmFyIHJlcXVlc3RUb0NoZWNrID0gUmVxdWVzdEluaXRpYWxpemVk
LmNsb25lKCk7CisgICAgICAgIGNoZWNrUmVxdWVzdChyZXF1ZXN0VG9DaGVjaywgZXhwZWN0ZWRJ
bml0aWFsaXplZCk7CisgICAgICB9LCAiQ2hlY2sgY2xvbmluZyBhIHJlcXVlc3QiKTsKKworICAg
ICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGluaXRpYWxSZXF1ZXN0ID0gbmV3IFJl
cXVlc3QoIiIsIHsiaGVhZGVycyIgOiBuZXcgSGVhZGVycyh7ImEiOiAiMSIsICJiIiA6ICIyIn0p
fSk7CisgICAgICAgIHZhciByZXF1ZXN0ID0gaW5pdGlhbFJlcXVlc3QuY2xvbmUoKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCJhIiksICIxIiwgImNsb25lZCBy
ZXF1ZXN0IHNob3VsZCBoYXZlIGhlYWRlciAnYSciKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZXF1ZXN0LmhlYWRlcnMuZ2V0KCJiIiksICIyIiwgImNsb25lZCByZXF1ZXN0IHNob3VsZCBoYXZl
IGhlYWRlciAnYiciKTsKKworICAgICAgICBpbml0aWFsUmVxdWVzdC5oZWFkZXJzLmRlbGV0ZSgi
YSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoImEiKSwgIjEi
LCAiY2xvbmVkIHJlcXVlc3Qgc2hvdWxkIHN0aWxsIGhhdmUgaGVhZGVyICdhJyIpOworCisgICAg
ICAgIHJlcXVlc3QuaGVhZGVycy5kZWxldGUoImEiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhp
bml0aWFsUmVxdWVzdC5oZWFkZXJzLmdldCgiYiIpLCAiMiIsICJpbml0aWFsIHJlcXVlc3Qgc2hv
dWxkIGhhdmUgaGVhZGVyICdiJyIpOworCisgICAgICB9LCAiQ2hlY2sgY2xvbmluZyBhIHJlcXVl
c3QgY29waWVzIHRoZSBoZWFkZXJzIik7CisKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWNvbnN1bWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwZGFjN2NlODM5YTFi
MzAwYTc0ODI0NzgxZjU2ZDViMDFiYWJmNjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtY29uc3VtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisKK1BBU1MgQ29uc3VtZSBy
ZXF1ZXN0J3MgYm9keSBhcyB0ZXh0IAorRkFJTCBDb25zdW1lIHJlcXVlc3QncyBib2R5IGFzIGJs
b2IgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IHVuZGVmaW5l
ZAorUEFTUyBDb25zdW1lIHJlcXVlc3QncyBib2R5IGFzIGFycmF5QnVmZmVyIAorUEFTUyBDb25z
dW1lIHJlcXVlc3QncyBib2R5IGFzIGpzb24gCitGQUlMIENvbnN1bWUgcmVxdWVzdCdzIGJvZHkg
YXMgZm9ybURhdGEgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IHVuZGVmaW5lZAorUEFTUyBDb25zdW1lIGpzb24gZnJvbSBub24tcGFyc2FibGUgdGV4dCAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25z
dW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjZlNTBmYWE4NTk1NmVkZWIzZTZlMzQzYTIzMzUyMDI3ZDNh
OGQ1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLmh0bWwKQEAgLTAs
MCArMSw5NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5SZXF1ZXN0IGNvbnN1bWU8L3RpdGxlPgorICAg
IDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNy
ZXF1ZXN0Ij4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMu
d2hhdHdnLm9yZy8jYm9keS1taXhpbiI+CisgICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0i
Q2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgor
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBjaGVja0Jv
ZHlUZXh0KHJlcXVlc3QsIGV4cGVjdGVkQm9keSkgeworICAgICAgcmV0dXJuIHJlcXVlc3QudGV4
dCgpLnRoZW4oIGZ1bmN0aW9uKGJvZHlBc1RleHQpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhi
b2R5QXNUZXh0LCBleHBlY3RlZEJvZHksICJSZXRyaWV2ZSBhbmQgdmVyaWZ5IHJlcXVlc3QncyBi
b2R5Iik7CisgICAgICAgIGFzc2VydF90cnVlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5IGFzIHRl
eHQ6IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7CisgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBjaGVja0JvZHlCbG9iKHJlcXVlc3QsIGV4cGVjdGVkQm9keSkgeworICAgICAgcmV0dXJu
IHJlcXVlc3QuYmxvYigpLnRoZW4oZnVuY3Rpb24oYm9keUFzQmxvYikgeworICAgICAgICB2YXIg
cHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAg
ICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAgICAgICAgICByZWFkZXIub25s
b2FkID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgICAgICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQp
CisgICAgICAgICAgfTsKKyAgICAgICAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgcmVqZWN0KCJCbG9iJ3MgcmVhZGVyIGZhaWxlZCIpOworICAgICAgICAgIH07
CisgICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoYm9keUFzQmxvYik7CisgICAgICAgIH0pOwor
ICAgICAgICByZXR1cm4gcHJvbWlzZS50aGVuKGZ1bmN0aW9uKGJvZHkpIHsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGJvZHksIGV4cGVjdGVkQm9keSwgIlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVx
dWVzdCdzIGJvZHkiKTsKKyAgICAgICAgICBhc3NlcnRfdHJ1ZShyZXF1ZXN0LmJvZHlVc2VkLCAi
Ym9keSBhcyBibG9iOiBib2R5VXNlZCB0dXJuZWQgdHJ1ZSIpOworICAgICAgICB9KTsKKyAgICAg
IH0pOworICAgIH0KKworICAgIDwhLS0gVGFrZW4gZnJvbSBodHRwczovL2RldmVsb3BlcnMuZ29v
Z2xlLmNvbSAtLT4KKyAgICBmdW5jdGlvbiBzdHIyYWIoc3RyKSB7CisgICAgICB2YXIgYnVmID0g
bmV3IEFycmF5QnVmZmVyKHN0ci5sZW5ndGgqMik7IC8vIDIgYnl0ZXMgZm9yIGVhY2ggY2hhcgor
ICAgICAgdmFyIGJ1ZlZpZXcgPSBuZXcgVWludDE2QXJyYXkoYnVmKTsKKyAgICAgIGZvciAodmFy
IGk9MCwgc3RyTGVuPXN0ci5sZW5ndGg7IGkgPCBzdHJMZW47IGkrKykgeworICAgICAgICBidWZW
aWV3W2ldID0gc3RyLmNoYXJDb2RlQXQoaSk7CisgICAgICB9CisgICAgICByZXR1cm4gYnVmOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQm9keUFycmF5QnVmZmVyKHJlcXVlc3QsIGV4cGVj
dGVkQm9keSkgeworICAgICAgcmV0dXJuIHJlcXVlc3QuYXJyYXlCdWZmZXIoKS50aGVuKCBmdW5j
dGlvbihib2R5QXNBcnJheUJ1ZmZlcikgeworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGJv
ZHlBc0FycmF5QnVmZmVyLCBzdHIyYWIoZXhwZWN0ZWRCb2R5KSwgIlJldHJpZXZlIGFuZCB2ZXJp
ZnkgcmVxdWVzdCdzIGJvZHkiKTsKKyAgICAgICAgYXNzZXJ0X3RydWUocmVxdWVzdC5ib2R5VXNl
ZCwgImJvZHkgYXMgYXJyYXlCdWZmZXI6IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7CisgICAgICB9
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0JvZHlKU09OKHJlcXVlc3QsIGV4cGVjdGVk
Qm9keSkgeworICAgICAgcmV0dXJuIHJlcXVlc3QuanNvbigpLnRoZW4oZnVuY3Rpb24oYm9keUFz
SlNPTikgeworICAgICAgICB2YXIgc3RyQm9keSA9IEpTT04uc3RyaW5naWZ5KGJvZHlBc0pTT04p
CisgICAgICAgIGFzc2VydF9lcXVhbHMoc3RyQm9keSwgZXhwZWN0ZWRCb2R5LCAiUmV0cmlldmUg
YW5kIHZlcmlmeSByZXF1ZXN0J3MgYm9keSIpOworICAgICAgICBhc3NlcnRfdHJ1ZShyZXF1ZXN0
LmJvZHlVc2VkLCAiYm9keSBhcyBqc29uOiBib2R5VXNlZCB0dXJuZWQgdHJ1ZSIpOworICAgICAg
fSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tCb2R5Rm9ybURhdGEocmVxdWVzdCwgZXhw
ZWN0ZWRCb2R5KSB7CisgICAgICByZXR1cm4gcmVxdWVzdC5mb3JtRGF0YSgpLnRoZW4oZnVuY3Rp
b24oYm9keUFzRm9ybURhdGEpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUoYm9keUFzRm9ybURhdGEg
aW5zdGFuY2VvZiBGb3JtRGF0YSwgIlNob3VsZCByZWNlaXZlIGEgRm9ybURhdGEiKTsKKyAgICAg
ICAgYXNzZXJ0X3RydWUocmVxdWVzdC5ib2R5VXNlZCwgImJvZHkgYXMgZm9ybURhdGE6IGJvZHlV
c2VkIHR1cm5lZCB0cnVlIik7CisgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNr
UmVxdWVzdEJvZHkoYm9keSwgYm9keVR5cGUsIGNoZWNrRnVuY3Rpb24pIHsKKyAgICAgIHByb21p
c2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVl
c3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAiYm9keSI6IGJvZHkgfSk7CisgICAgICAgIGFzc2Vy
dF9mYWxzZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9keVVzZWQgaXMgZmFsc2UgYXQgaW5pdCIpOwor
ICAgICAgICByZXR1cm4gY2hlY2tGdW5jdGlvbihyZXF1ZXN0LCBib2R5KTsKKyAgICAgIH0sICJD
b25zdW1lIHJlcXVlc3QncyBib2R5IGFzICIgKyBib2R5VHlwZSk7CisgICAgfQorCisgICAgdmFy
IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7CisgICAgZm9ybURhdGEuYXBwZW5kKCJuYW1lIiwg
InZhbHVlIikKKyAgICBjaGVja1JlcXVlc3RCb2R5KCJUaGlzIGlzIHJlcXVlc3QncyBib2R5Iiwg
InRleHQiLCBjaGVja0JvZHlUZXh0KTsKKyAgICBjaGVja1JlcXVlc3RCb2R5KCJUaGlzIGlzIHJl
cXVlc3QncyBib2R5IiwgImJsb2IiLCBjaGVja0JvZHlCbG9iKTsKKyAgICBjaGVja1JlcXVlc3RC
b2R5KCJUaGlzIGlzIHJlcXVlc3QncyBib2R5IiwgImFycmF5QnVmZmVyIiwgY2hlY2tCb2R5QXJy
YXlCdWZmZXIpOworICAgIGNoZWNrUmVxdWVzdEJvZHkoSlNPTi5zdHJpbmdpZnkoIlRoaXMgaXMg
cmVxdWVzdCdzIGJvZHkiKSwgImpzb24iLCBjaGVja0JvZHlKU09OKTsKKyAgICBjaGVja1JlcXVl
c3RCb2R5KGZvcm1EYXRhLCAiZm9ybURhdGEiLCBjaGVja0JvZHlGb3JtRGF0YSk7CisKKyAgICBw
cm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBS
ZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJQT1NUIiwgImJvZHkiOiAieyJ9KTsKKyAgICAgICAgcmV0
dXJuIHByb21pc2VfcmVqZWN0cyh0ZXN0LCBuZXcgU3ludGF4RXJyb3IoKSwgcmVxdWVzdC5qc29u
KCkpOworICAgIH0sICJDb25zdW1lIGpzb24gZnJvbSBub24tcGFyc2FibGUgdGV4dCIpOworICAg
IDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
ZGlzdHVyYmVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdhNDBkZDZiMWQzMTE5N2FhZTViMjBkZDkxZTViMzYzYjRiMGJhNmEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDcgQEAKKworUEFTUyBSZXF1ZXN0IHdpdGhvdXQgYm9keSBjYW5ub3QgYmUgZGlz
dHVyYmVkIAorUEFTUyBDaGVjayBjbG9uaW5nIGEgZGlzdHVyYmVkIHJlcXVlc3QgCitQQVNTIENo
ZWNrIGNyZWF0aW5nIGEgbmV3IHJlcXVlc3QgZnJvbSBhIGRpc3R1cmJlZCByZXF1ZXN0IAorUEFT
UyBJbnB1dCByZXF1ZXN0IHVzZWQgZm9yIGNyZWF0aW5nIG5ldyByZXF1ZXN0IGJlY2FtZSBkaXN0
dXJiZWQgCitQQVNTIENoZWNrIGNvbnN1bWluZyBhIGRpc3R1cmJlZCByZXF1ZXN0IAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVy
YmVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU4ZGVmNDE3NjhiN2ZjZGNjMzY0MmRmYWRmNzNmNDQxNGE0
NWI5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQuaHRtbApAQCAt
MCwwICsxLDU1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlcXVlc3QgZGlzdHVyYmVkPC90aXRsZT4K
KyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9y
Zy8jcmVxdWVzdCI+CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5z
cGVjLndoYXR3Zy5vcmcvI2JvZHktbWl4aW4iPgorICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0
bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZy
Ij4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgICB2YXIgaW5pdFZh
bHVlc0RpY3QgPSB7Im1ldGhvZCIgOiAiUE9TVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImJvZHkiIDogIlJlcXVlc3QncyBib2R5IgorICAgICAgfTsKKworICAgICAgdmFyIG5vQm9k
eUNvbnN1bWVkID0gbmV3IFJlcXVlc3QoIiIpOworICAgICAgbm9Cb2R5Q29uc3VtZWQuYmxvYigp
OworICAgICAgdmFyIGJvZHlDb25zdW1lZCA9IG5ldyBSZXF1ZXN0KCIiLCBpbml0VmFsdWVzRGlj
dCk7CisgICAgICBib2R5Q29uc3VtZWQuYmxvYigpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkg
eworICAgICAgICBhc3NlcnRfZmFsc2Uobm9Cb2R5Q29uc3VtZWQuYm9keVVzZWQgLCAiYm9keVVz
ZWQgaXMgZmFsc2Ugd2hlbiByZXF1ZXN0IGlzIG5vdCBkaXN0dXJiZWQiKTsKKyAgICAgICAgdHJ5
IHsKKyAgICAgICAgICBub0JvZHlDb25zdW1lZC5jbG9uZSgpOworICAgICAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiQ2FuIHVzZSByZXF1ZXN0IG5vdCBkaXN0
dXJiZWQgZm9yIGNyZWF0aW5nIG9yIGNsb25pbmcgcmVxdWVzdCIpOworICAgICAgICB9CisgICAg
ICB9LCAiUmVxdWVzdCB3aXRob3V0IGJvZHkgY2Fubm90IGJlIGRpc3R1cmJlZCIpOworCisgICAg
ICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdHJ1ZShib2R5Q29uc3VtZWQuYm9k
eVVzZWQgLCAiYm9keVVzZWQgaXMgdHJ1ZSB3aGVuIHJlcXVlc3QgaXMgZGlzdHVyYmVkIik7Cisg
ICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgYm9keUNv
bnN1bWVkLmNsb25lKCk7IH0pOworICAgICAgfSwgIkNoZWNrIGNsb25pbmcgYSBkaXN0dXJiZWQg
cmVxdWVzdCIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdHJ1
ZShib2R5Q29uc3VtZWQuYm9keVVzZWQgLCAiYm9keVVzZWQgaXMgdHJ1ZSB3aGVuIHJlcXVlc3Qg
aXMgZGlzdHVyYmVkIik7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBm
dW5jdGlvbigpIHsgbmV3IFJlcXVlc3QoYm9keUNvbnN1bWVkKTsgfSk7CisgICAgICB9LCAiQ2hl
Y2sgY3JlYXRpbmcgYSBuZXcgcmVxdWVzdCBmcm9tIGEgZGlzdHVyYmVkIHJlcXVlc3QiKTsKKwor
ICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGJvZHlSZXF1ZXN0ID0gbmV3IFJl
cXVlc3QoIiIsIGluaXRWYWx1ZXNEaWN0KTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKGJvZHlSZXF1
ZXN0LmJvZHlVc2VkICwgImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4gcmVxdWVzdCBpcyBub3QgZGlz
dHVyYmVkIik7CisgICAgICAgIHZhciByZXF1ZXN0RnJvbVJlcXVlc3QgPSBuZXcgUmVxdWVzdChi
b2R5UmVxdWVzdCk7CisgICAgICAgIGFzc2VydF90cnVlKGJvZHlSZXF1ZXN0LmJvZHlVc2VkICwg
ImJvZHlVc2VkIGlzIHRydWUgd2hlbiByZXF1ZXN0IGlzIGRpc3R1cmJlZCIpOworICAgICAgfSwg
IklucHV0IHJlcXVlc3QgdXNlZCBmb3IgY3JlYXRpbmcgbmV3IHJlcXVlc3QgYmVjYW1lIGRpc3R1
cmJlZCIpOworCisgICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgICAgICBh
c3NlcnRfdHJ1ZShib2R5Q29uc3VtZWQuYm9keVVzZWQgLCAiYm9keVVzZWQgaXMgdHJ1ZSB3aGVu
IHJlcXVlc3QgaXMgZGlzdHVyYmVkIik7CisgICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHMo
dGVzdCwgbmV3IFR5cGVFcnJvcigpLCBib2R5Q29uc3VtZWQuYmxvYigpKTsKKyAgICAgIH0sICJD
aGVjayBjb25zdW1pbmcgYSBkaXN0dXJiZWQgcmVxdWVzdCIpOworICAgIDwvc2NyaXB0PgorICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3ItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVxdWVzdC9yZXF1ZXN0LWVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYTYxN2Fl
OWM3OGZhYTkzNWNlOTc5MTgxY2U0OTFlODRmYWM0ZWIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACisKK1BBU1MgUmVx
dWVzdEluaXQncyB3aW5kb3cgaXMgbm90IG51bGwgCitQQVNTIElucHV0IFVSTCBpcyBub3QgdmFs
aWQgCitQQVNTIElucHV0IFVSTCBoYXMgY3JlZGVudGlhbHMgCitQQVNTIFJlcXVlc3RJbml0J3Mg
bW9kZSBpcyBuYXZpZ2F0ZSAKK1BBU1MgUmVxdWVzdEluaXQncyByZWZlcnJlciBpcyBpbnZhbGlk
IAorUEFTUyBSZXF1ZXN0SW5pdCdzIHJlZmVycmVyIGhhcyBpbnZhbGlkIG9yaWdpbiAKK1BBU1Mg
UmVxdWVzdEluaXQncyBtZXRob2QgaXMgaW52YWxpZCAKK1BBU1MgUmVxdWVzdEluaXQncyBtZXRo
b2QgaXMgZm9yYmlkZGVuIAorUEFTUyBSZXF1ZXN0SW5pdCdzIG1vZGUgaXMgbm8tY29ycyBhbmQg
bWV0aG9kIGlzIG5vdCBzaW1wbGUgCitQQVNTIFJlcXVlc3RJbml0J3MgbW9kZSBpcyBuby1jb3Jz
IGFuZCBpbnRlZ3JpdHkgaXMgbm90IGVtcHR5IAorUEFTUyBCYWQgcmVmZXJyZXJQb2xpY3kgaW5p
dCBwYXJhbWV0ZXIgdmFsdWUgCitQQVNTIEJhZCBtb2RlIGluaXQgcGFyYW1ldGVyIHZhbHVlIAor
UEFTUyBCYWQgY3JlZGVudGlhbHMgaW5pdCBwYXJhbWV0ZXIgdmFsdWUgCitQQVNTIEJhZCBjYWNo
ZSBpbml0IHBhcmFtZXRlciB2YWx1ZSAKK1BBU1MgQmFkIHJlZGlyZWN0IGluaXQgcGFyYW1ldGVy
IHZhbHVlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3IuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5YWQ2OTUwYTgzN2JlZjAwZTQ5OGY4OGI3YzZl
YTVmNDVkNGVhNTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3IuaHRtbApA
QCAtMCwwICsxLDc1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlcXVlc3QgZXJyb3I8L3RpdGxlPgor
ICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3Jn
LyNyZXF1ZXN0Ij4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNw
ZWMud2hhdHdnLm9yZy8jYm9keS1taXhpbiI+CisgICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRs
ZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIi
PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgIHRlc3QoZnVuY3Rp
b24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpICwgZnVuY3Rpb24o
KSB7IG5ldyBSZXF1ZXN0KCIiLCB7IndpbmRvdyIgOiAid2hhdGV2ZXIifSk7IH0sCisgICAgICAg
ICAgIkV4cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uIik7CisgICAgICB9LCJSZXF1ZXN0SW5pdCdz
IHdpbmRvdyBpcyBub3QgbnVsbCIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAg
ICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVz
dCgiaHR0cDovLzpub3QgYSB2YWxpZCBVUkwiKTsgfSwKKyAgICAgICAgICAiRXhwZWN0IFR5cGVF
cnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sIklucHV0IFVSTCBpcyBub3QgdmFsaWQiKQorCisg
ICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJy
b3IoKSAsIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVzdCgiaHR0cDovL3VzZXI6cGFzc0B0ZXN0LnVy
bCIpOyB9LAorICAgICAgICAgICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAg
fSwiSW5wdXQgVVJMIGhhcyBjcmVkZW50aWFscyIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkg
eworICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsIGZ1bmN0aW9uKCkgeyBu
ZXcgUmVxdWVzdCgiIiwgeyJtb2RlIiA6ICJuYXZpZ2F0ZSJ9KTsgfSwKKyAgICAgICAgICAiRXhw
ZWN0IFR5cGVFcnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sIlJlcXVlc3RJbml0J3MgbW9kZSBp
cyBuYXZpZ2F0ZSIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRf
dGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVzdCgiIiwgeyJy
ZWZlcnJlciIgOiAiaHR0cDovLzpub3QgYSB2YWxpZCBVUkwifSk7IH0sCisgICAgICAgICAgIkV4
cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uIik7CisgICAgICB9LCJSZXF1ZXN0SW5pdCdzIHJlZmVy
cmVyIGlzIGludmFsaWQiKTsKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNz
ZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCkgLCBmdW5jdGlvbigpIHsgbmV3IFJlcXVlc3QoIiIs
IHsicmVmZXJyZXIiIDogImh0dHA6Ly90ZXN0LnVybCJ9KTsgfSwKKyAgICAgICAgICAiRXhwZWN0
IFR5cGVFcnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sIlJlcXVlc3RJbml0J3MgcmVmZXJyZXIg
aGFzIGludmFsaWQgb3JpZ2luIikKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAg
YXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCkgLCBmdW5jdGlvbigpIHsgbmV3IFJlcXVlc3Qo
IiIsIHsibWV0aG9kIiA6ICJJTiBWQUxJRCJ9KTsgfSwKKyAgICAgICAgICAiRXhwZWN0IFR5cGVF
cnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sICJSZXF1ZXN0SW5pdCdzIG1ldGhvZCBpcyBpbnZh
bGlkIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3Mo
bmV3IFR5cGVFcnJvcigpICwgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCIiLCB7Im1ldGhvZCIg
OiAiVFJBQ0UifSk7IH0sCisgICAgICAgICAgIkV4cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uIik7
CisgICAgICB9LCAiUmVxdWVzdEluaXQncyBtZXRob2QgaXMgZm9yYmlkZGVuIik7CisKKyAgICAg
IHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
ICwgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCIiLCB7Im1vZGUiIDogIm5vLWNvcnMiLCAibWV0
aG9kIiA6ICJQVVQifSk7IH0sCisgICAgICAgICAgIkV4cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9u
Iik7CisgICAgICB9LCJSZXF1ZXN0SW5pdCdzIG1vZGUgaXMgbm8tY29ycyBhbmQgbWV0aG9kIGlz
IG5vdCBzaW1wbGUiKTsKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0
X3Rocm93cyhuZXcgVHlwZUVycm9yKCkgLAorICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9u
KCkgeyBuZXcgUmVxdWVzdCgiIiwgeyJtb2RlIiA6ICJuby1jb3JzIiwgImludGVncml0eSIgOiAi
bm90ICBhbiBlbXB0eSBzdHJpbmcifSk7IH0sCisgICAgICAgICAgICAgICAgICAgICAgIkV4cGVj
dCBUeXBlRXJyb3IgZXhjZXB0aW9uIik7CisgICAgICB9LCJSZXF1ZXN0SW5pdCdzIG1vZGUgaXMg
bm8tY29ycyBhbmQgaW50ZWdyaXR5IGlzIG5vdCBlbXB0eSIpOworCisgICAgICB2YXIgcGFyYW1l
dGVycyA9IFsicmVmZXJyZXJQb2xpY3kiLCAibW9kZSIsICJjcmVkZW50aWFscyIsICJjYWNoZSIs
ICJyZWRpcmVjdCJdOworICAgICAgcGFyYW1ldGVycy5mb3JFYWNoKGZ1bmN0aW9uKHBhcmFtZXRl
cikgeworICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBvcHRpb25zID0g
eyB9OworICAgICAgICAgIG9wdGlvbnNbcGFyYW1ldGVyXSA9ICJCQUQiOworICAgICAgICAgIGFz
c2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiBuZXcgUmVxdWVzdCgiIiwgb3B0aW9u
cykpOworICAgICAgICB9LCJCYWQgIiArIHBhcmFtZXRlciArIiBpbml0IHBhcmFtZXRlciB2YWx1
ZSIpOworICAgICAgfSk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1o
ZWFkZXJzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjFkYzRlNzMyMWRlMjZjN2ZmOTFhMGQ2
ZTQyZTJjOWJlZDYwMWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTYgQEAKKworUEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVz
dCBoZWFkZXIgIkNvbnRlbnQtVHlwZTogT0siIAorUEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBo
ZWFkZXIgIlBvdGF0bzogT0siIAorUEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFkZXIgInBy
b3h5OiBPSyIgCitQQVNTIEFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRlciAicHJveHlhOiBPSyIg
CitQQVNTIEFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRlciAic2VjOiBPSyIgCitQQVNTIEFkZGlu
ZyB2YWxpZCByZXF1ZXN0IGhlYWRlciAic2VjYjogT0siIAorUEFTUyBBZGRpbmcgaW52YWxpZCBy
ZXF1ZXN0IGhlYWRlciAiQWNjZXB0LUNoYXJzZXQ6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQg
cmVxdWVzdCBoZWFkZXIgImFjY2VwdC1jaGFyc2V0OiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlk
IHJlcXVlc3QgaGVhZGVyICJBQ0NFUFQtRU5DT0RJTkc6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFs
aWQgcmVxdWVzdCBoZWFkZXIgIkFjY2VwdC1FbmNvZGluZzogS08iIAorUEFTUyBBZGRpbmcgaW52
YWxpZCByZXF1ZXN0IGhlYWRlciAiQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1IZWFkZXJzOiBLTyIg
CitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJBY2Nlc3MtQ29udHJvbC1SZXF1
ZXN0LU1ldGhvZDogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQ29u
bmVjdGlvbjogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQ29udGVu
dC1MZW5ndGg6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkNvb2tp
ZTogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQ29va2llMjogS08i
IAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiRGF0ZTogS08iIAorUEFTUyBB
ZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiRE5UOiBLTyIgCitQQVNTIEFkZGluZyBpbnZh
bGlkIHJlcXVlc3QgaGVhZGVyICJFeHBlY3Q6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVx
dWVzdCBoZWFkZXIgIkhvc3Q6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFk
ZXIgIktlZXAtQWxpdmU6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIg
Ik9yaWdpbjogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiUmVmZXJl
cjogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiVEU6IEtPIiAKK1BB
U1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlRyYWlsZXI6IEtPIiAKK1BBU1MgQWRk
aW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlRyYW5zZmVyLUVuY29kaW5nOiBLTyIgCitQQVNT
IEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJVcGdyYWRlOiBLTyIgCitQQVNTIEFkZGlu
ZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJWaWE6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQg
cmVxdWVzdCBoZWFkZXIgIlByb3h5LTogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0
IGhlYWRlciAicHJveHktYTogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRl
ciAiU2VjLTogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAic2VjLWI6
IEtPIiAKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgIkFjY2VwdDog
T0siIAorUEFTUyBBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiQWNjZXB0LUxh
bmd1YWdlOiBPSyIgCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJj
b250ZW50LWxhbmd1YWdlOiBPSyIgCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3Qg
aGVhZGVyICJjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIg
CitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LXR5cGU6
IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IiAKK1BBU1Mg
QWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgImNvbnRlbnQtdHlwZTogbXVsdGlw
YXJ0L2Zvcm0tZGF0YSIgCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVy
ICJjb250ZW50LXR5cGU6IG11bHRpcGFydC9mb3JtLWRhdGE7Y2hhcnNldD1VVEYtOCIgCitQQVNT
IEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LVRZUEU6IHRleHQv
cGxhaW4iIAorUEFTUyBBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiQ09OVEVO
VC10eXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiIAorUEFTUyBBZGRpbmcgaW52YWxpZCBu
by1jb3JzIHJlcXVlc3QgaGVhZGVyICJDb250ZW50LVR5cGU6IEtPIiAKK1BBU1MgQWRkaW5nIGlu
dmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiUG90YXRvOiBLTyIgCitQQVNTIEFkZGluZyBp
bnZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgInByb3h5OiBLTyIgCitQQVNTIEFkZGluZyBp
bnZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgInByb3h5YTogS08iIAorUEFTUyBBZGRpbmcg
aW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJzZWM6IEtPIiAKK1BBU1MgQWRkaW5nIGlu
dmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAic2VjYjogS08iIAorUEFTUyBDaGVjayB0aGF0
IHJlcXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5p
dCBwYXJhbWV0ZXIgCitQQVNTIENoZWNrIHRoYXQgbm8tY29ycyByZXF1ZXN0IGNvbnN0cnVjdG9y
IGlzIGZpbHRlcmluZyBoZWFkZXJzIHByb3ZpZGVkIGFzIGluaXQgcGFyYW1ldGVyIAorUEFTUyBD
aGVjayB0aGF0IG5vLWNvcnMgcmVxdWVzdCBjb25zdHJ1Y3RvciBpcyBmaWx0ZXJpbmcgaGVhZGVy
cyBwcm92aWRlZCBhcyBwYXJ0IG9mIHJlcXVlc3QgcGFyYW1ldGVyIAorUEFTUyBSZXF1ZXN0IHNo
b3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBpbml0IHJlcXVlc3QgCitQQVNTIFJl
cXVlc3Qgc2hvdWxkIG5vdCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBpbml0IHJlcXVl
c3QgaWYgaW5pdCBoZWFkZXJzIGFyZSBwcm92aWRlZCAKK1BBU1MgUmVxdWVzdCBzaG91bGQgZ2V0
IGl0cyBjb250ZW50LXR5cGUgZnJvbSB0aGUgYm9keSBpZiBub25lIGlzIHByb3ZpZGVkIAorUEFT
UyBSZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIGluaXQgaGVhZGVycyBp
ZiBvbmUgaXMgcHJvdmlkZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtaGVhZGVycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZGQ2MDFjYzQ2NmFm
MDkyY2QzMGY1ZDFjYzIxMDlhOGZhOTNmNDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtaGVhZGVycy5odG1sCkBAIC0wLDAgKzEsMTUwIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlcXVl
c3QgSGVhZGVyczwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9m
ZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgorICAgIDxtZXRhIG5hbWU9ImF1dGhvciIg
dGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9u
LmZyIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgICB2YXIgdmFs
aWRSZXF1ZXN0SGVhZGVycyA9IFsKKyAgICAgICAgWyJDb250ZW50LVR5cGUiLCAiT0siXSwKKyAg
ICAgICAgWyJQb3RhdG8iLCAiT0siXSwKKyAgICAgICAgWyJwcm94eSIsICJPSyJdLAorICAgICAg
ICBbInByb3h5YSIsICJPSyJdLAorICAgICAgICBbInNlYyIsICJPSyJdLAorICAgICAgICBbInNl
Y2IiLCAiT0siXSwKKyAgICAgIF07CisgICAgICB2YXIgaW52YWxpZFJlcXVlc3RIZWFkZXJzID0g
WworICAgICAgICBbIkFjY2VwdC1DaGFyc2V0IiwgIktPIl0sCisgICAgICAgIFsiYWNjZXB0LWNo
YXJzZXQiLCAiS08iXSwKKyAgICAgICAgWyJBQ0NFUFQtRU5DT0RJTkciLCAiS08iXSwKKyAgICAg
ICAgWyJBY2NlcHQtRW5jb2RpbmciLCAiS08iXSwKKyAgICAgICAgWyJBY2Nlc3MtQ29udHJvbC1S
ZXF1ZXN0LUhlYWRlcnMiLCAiS08iXSwKKyAgICAgICAgWyJBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0
LU1ldGhvZCIsICJLTyJdLAorICAgICAgICBbIkNvbm5lY3Rpb24iLCAiS08iXSwKKyAgICAgICAg
WyJDb250ZW50LUxlbmd0aCIsICJLTyJdLAorICAgICAgICBbIkNvb2tpZSIsICJLTyJdLAorICAg
ICAgICBbIkNvb2tpZTIiLCAiS08iXSwKKyAgICAgICAgWyJEYXRlIiwgIktPIl0sCisgICAgICAg
IFsiRE5UIiwgIktPIl0sCisgICAgICAgIFsiRXhwZWN0IiwgIktPIl0sCisgICAgICAgIFsiSG9z
dCIsICJLTyJdLAorICAgICAgICBbIktlZXAtQWxpdmUiLCAiS08iXSwKKyAgICAgICAgWyJPcmln
aW4iLCAiS08iXSwKKyAgICAgICAgWyJSZWZlcmVyIiwgIktPIl0sCisgICAgICAgIFsiVEUiLCAi
S08iXSwKKyAgICAgICAgWyJUcmFpbGVyIiwgIktPIl0sCisgICAgICAgIFsiVHJhbnNmZXItRW5j
b2RpbmciLCAiS08iXSwKKyAgICAgICAgWyJVcGdyYWRlIiwgIktPIl0sCisgICAgICAgIFsiVmlh
IiwgIktPIl0sCisgICAgICAgIFsiUHJveHktIiwgIktPIl0sCisgICAgICAgIFsicHJveHktYSIs
ICJLTyJdLAorICAgICAgICBbIlNlYy0iLCAiS08iXSwKKyAgICAgICAgWyJzZWMtYiIsICJLTyJd
LAorICAgICAgXTsKKworICAgICAgdmFyIHZhbGlkUmVxdWVzdE5vQ29yc0hlYWRlcnMgPSBbCisg
ICAgICAgIFsiQWNjZXB0IiwgIk9LIl0sCisgICAgICAgIFsiQWNjZXB0LUxhbmd1YWdlIiwgIk9L
Il0sCisgICAgICAgIFsiY29udGVudC1sYW5ndWFnZSIsICJPSyJdLAorICAgICAgICBbImNvbnRl
bnQtdHlwZSIsICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiXSwKKyAgICAgICAg
WyJjb250ZW50LXR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJz
ZXQ9VVRGLTgiXSwKKyAgICAgICAgWyJjb250ZW50LXR5cGUiLCAibXVsdGlwYXJ0L2Zvcm0tZGF0
YSJdLAorICAgICAgICBbImNvbnRlbnQtdHlwZSIsICJtdWx0aXBhcnQvZm9ybS1kYXRhO2NoYXJz
ZXQ9VVRGLTgiXSwKKyAgICAgICAgWyJjb250ZW50LVRZUEUiLCAidGV4dC9wbGFpbiJdLAorICAg
ICAgICBbIkNPTlRFTlQtdHlwZSIsICJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiXSwKKyAgICAg
IF07CisgICAgICB2YXIgaW52YWxpZFJlcXVlc3ROb0NvcnNIZWFkZXJzID0gWworICAgICAgICBb
IkNvbnRlbnQtVHlwZSIsICJLTyJdLAorICAgICAgICBbIlBvdGF0byIsICJLTyJdLAorICAgICAg
ICBbInByb3h5IiwgIktPIl0sCisgICAgICAgIFsicHJveHlhIiwgIktPIl0sCisgICAgICAgIFsi
c2VjIiwgIktPIl0sCisgICAgICAgIFsic2VjYiIsICJLTyJdLAorICAgICAgXTsKKworICAgICAg
dmFsaWRSZXF1ZXN0SGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKGhlYWRlcikgeworICAgICAgICB0
ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIp
OworICAgICAgICAgIHJlcXVlc3QuaGVhZGVycy5zZXQoaGVhZGVyWzBdLCBoZWFkZXJbMV0pOwor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldChoZWFkZXJbMF0pLCBo
ZWFkZXJbMV0pOworICAgICAgICB9LCAiQWRkaW5nIHZhbGlkIHJlcXVlc3QgaGVhZGVyIFwiIiAr
IGhlYWRlclswXSArICI6ICIgKyBoZWFkZXJbMV0gKyAiXCIiKTsKKyAgICAgIH0pOworICAgICAg
aW52YWxpZFJlcXVlc3RIZWFkZXJzLmZvckVhY2goZnVuY3Rpb24oaGVhZGVyKSB7CisgICAgICAg
IHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgi
Iik7CisgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzLnNldChoZWFkZXJbMF0sIGhlYWRlclsxXSk7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KGhlYWRlclswXSks
IG51bGwpOworICAgICAgICB9LCAiQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgXCIiICsg
aGVhZGVyWzBdICsgIjogIiArIGhlYWRlclsxXSArICJcIiIpOworICAgICAgfSk7CisKKyAgICAg
IHZhbGlkUmVxdWVzdE5vQ29yc0hlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihoZWFkZXIpIHsKKyAg
ICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgcmVxdWVzdE5vQ29ycyA9IG5l
dyBSZXF1ZXN0KCIiLCB7Im1vZGUiOiAibm8tY29ycyJ9KTsKKyAgICAgICAgICByZXF1ZXN0Tm9D
b3JzLmhlYWRlcnMuc2V0KGhlYWRlclswXSwgaGVhZGVyWzFdKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlcXVlc3ROb0NvcnMuaGVhZGVycy5nZXQoaGVhZGVyWzBdKSwgaGVhZGVyWzFdKTsK
KyAgICAgICAgfSwgIkFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyIFwiIiArIGhl
YWRlclswXSArICI6ICIgKyBoZWFkZXJbMV0gKyAiXCIiKTsKKyAgICAgIH0pOworICAgICAgaW52
YWxpZFJlcXVlc3ROb0NvcnNIZWFkZXJzLmZvckVhY2goZnVuY3Rpb24oaGVhZGVyKSB7CisgICAg
ICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHJlcXVlc3ROb0NvcnMgPSBuZXcg
UmVxdWVzdCgiIiwgeyJtb2RlIjogIm5vLWNvcnMifSk7CisgICAgICAgICAgcmVxdWVzdE5vQ29y
cy5oZWFkZXJzLnNldChoZWFkZXJbMF0sIGhlYWRlclsxXSk7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhyZXF1ZXN0Tm9Db3JzLmhlYWRlcnMuZ2V0KGhlYWRlclswXSksIG51bGwpOworICAgICAg
ICB9LCAiQWRkaW5nIGludmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciBcIiIgKyBoZWFkZXJb
MF0gKyAiOiAiICsgaGVhZGVyWzFdICsgIlwiIik7CisgICAgICB9KTsKKworICAgICAgdGVzdChm
dW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJDb29raWUy
IiwgInBvdGF0byJdXSk7CisgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsi
aGVhZGVycyI6IGhlYWRlcnN9KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRl
cnMuZ2V0KCJDb29raWUyIiksIG51bGwpOworICAgICAgfSwgIkNoZWNrIHRoYXQgcmVxdWVzdCBj
b25zdHJ1Y3RvciBpcyBmaWx0ZXJpbmcgaGVhZGVycyBwcm92aWRlZCBhcyBpbml0IHBhcmFtZXRl
ciIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaGVhZGVycyA9IG5l
dyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIsICJwb3RhdG8iXV0pOworICAgICAgICB2YXIgcmVx
dWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiOiBoZWFkZXJzLCAibW9kZSI6ICJuby1j
b3JzIn0pOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoIkNvbnRl
bnQtVHlwZSIpLCBudWxsKTsKKyAgICAgIH0sICJDaGVjayB0aGF0IG5vLWNvcnMgcmVxdWVzdCBj
b25zdHJ1Y3RvciBpcyBmaWx0ZXJpbmcgaGVhZGVycyBwcm92aWRlZCBhcyBpbml0IHBhcmFtZXRl
ciIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaGVhZGVycyA9IG5l
dyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIsICJwb3RhdG8iXV0pOworICAgICAgICB2YXIgaW5p
dGlhbFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIjogaGVhZGVyc30pOworICAg
ICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGluaXRpYWxSZXF1ZXN0LCB7Im1vZGUiOiAi
bm8tY29ycyJ9KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCJD
b250ZW50LVR5cGUiKSwgbnVsbCk7CisgICAgICB9LCAiQ2hlY2sgdGhhdCBuby1jb3JzIHJlcXVl
c3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgcGFydCBvZiBy
ZXF1ZXN0IHBhcmFtZXRlciIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2
YXIgaW5pdGlhbEhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJDb250ZW50LVR5cGUiLCAicG90YXRv
Il1dKTsKKyAgICAgICAgdmFyIGluaXRpYWxSZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVh
ZGVycyIgOiBpbml0aWFsSGVhZGVyc30pOworICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1
ZXN0KGluaXRpYWxSZXF1ZXN0KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRl
cnMuZ2V0KCJDb250ZW50LVR5cGUiKSwgInBvdGF0byIpOworICAgICAgfSwgIlJlcXVlc3Qgc2hv
dWxkIGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGluaXQgcmVxdWVzdCIpOworCisgICAg
ICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaW5pdGlhbEhlYWRlcnMgPSBuZXcgSGVh
ZGVycyhbWyJDb250ZW50LVR5cGUiLCAicG90YXRvIl1dKTsKKyAgICAgICAgdmFyIGluaXRpYWxS
ZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyIgOiBpbml0aWFsSGVhZGVyc30pOwor
ICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKFtdKTsKKyAgICAgICAgdmFyIHJlcXVl
c3QgPSBuZXcgUmVxdWVzdChpbml0aWFsUmVxdWVzdCwgeyJoZWFkZXJzIiA6IGhlYWRlcnN9KTsK
KyAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlcXVlc3QuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIp
KTsKKyAgICAgIH0sICJSZXF1ZXN0IHNob3VsZCBub3QgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJv
bSB0aGUgaW5pdCByZXF1ZXN0IGlmIGluaXQgaGVhZGVycyBhcmUgcHJvdmlkZWQiKTsKKworICAg
ICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGluaXRpYWxIZWFkZXJzID0gbmV3IEhl
YWRlcnMoW1siQ29udGVudC1UeXBlLUV4dHJhIiwgInBvdGF0byJdXSk7CisgICAgICAgIHZhciBp
bml0aWFsUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiIDogaW5pdGlhbEhlYWRl
cnMsICJib2R5IiA6ICJ0aGlzIGlzIG15IHBsYXRlIiwgIm1ldGhvZCIgOiAiUE9TVCJ9KTsKKyAg
ICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdChpbml0aWFsUmVxdWVzdCk7CisgICAgICAg
IGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIiksICJ0ZXh0
L3BsYWluO2NoYXJzZXQ9VVRGLTgiKTsKKyAgICAgIH0sICJSZXF1ZXN0IHNob3VsZCBnZXQgaXRz
IGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBib2R5IGlmIG5vbmUgaXMgcHJvdmlkZWQiKTsKKworICAg
ICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGluaXRpYWxIZWFkZXJzID0gbmV3IEhl
YWRlcnMoW1siQ29udGVudC1UeXBlIiwgInBvdGF0byJdXSk7CisgICAgICAgIHZhciBpbml0aWFs
UmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiIDogaW5pdGlhbEhlYWRlcnMsICJi
b2R5IiA6ICJ0aGlzIGlzIG15IHBsYXRlIiwgIm1ldGhvZCIgOiAiUE9TVCJ9KTsKKyAgICAgICAg
dmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdChpbml0aWFsUmVxdWVzdCk7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIiksICJwb3RhdG8iKTsK
KyAgICAgIH0sICJSZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIGluaXQg
aGVhZGVycyBpZiBvbmUgaXMgcHJvdmlkZWQiKTsKKworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaWRsLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1pZGwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlYzY4ODIxMWZjNDdkMTdm
NzVkODRiN2NmYjg5OTgzOWU0YTc0NWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
aWRsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUyIEBACisKK0ZBSUwgUmVxdWVzdCBpbnRlcmZh
Y2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9l
cXVhbHM6IGNsYXNzIHN0cmluZyBvZiBSZXF1ZXN0IGV4cGVjdGVkICJbb2JqZWN0IEZ1bmN0aW9u
XSIgYnV0IGdvdCAiW29iamVjdCBSZXF1ZXN0Q29uc3RydWN0b3JdIgorUEFTUyBSZXF1ZXN0IGlu
dGVyZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZSBvYmplY3QgbmFt
ZSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25z
dHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X3RydWU6IFJlcXVlc3QucHJvdG90eXBlLmNvbnN0cnVj
dG9yIGlzIG5vdCB3cml0YWJsZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBSZXF1ZXN0
IGludGVyZmFjZTogYXR0cmlidXRlIG1ldGhvZCBhc3NlcnRfZXF1YWxzOiBnZXR0ZXIgbXVzdCBi
ZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwg
UmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB1cmwgYXNzZXJ0X2VxdWFsczogZ2V0dGVyIG11
c3QgYmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290ICJ1bmRlZmluZWQiCitG
QUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaGVhZGVycyBhc3NlcnRfZXF1YWxzOiBn
ZXR0ZXIgbXVzdCBiZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1dCBnb3QgInVuZGVm
aW5lZCIKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB0eXBlIGFzc2VydF9lcXVh
bHM6IGdldHRlciBtdXN0IGJlIEZ1bmN0aW9uIGV4cGVjdGVkICJmdW5jdGlvbiIgYnV0IGdvdCAi
dW5kZWZpbmVkIgorRkFJTCBSZXF1ZXN0IGludGVyZmFjZTogYXR0cmlidXRlIGRlc3RpbmF0aW9u
IGFzc2VydF9lcXVhbHM6IGdldHRlciBtdXN0IGJlIEZ1bmN0aW9uIGV4cGVjdGVkICJmdW5jdGlv
biIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBSZXF1ZXN0IGludGVyZmFjZTogYXR0cmlidXRl
IHJlZmVycmVyIGFzc2VydF9lcXVhbHM6IGdldHRlciBtdXN0IGJlIEZ1bmN0aW9uIGV4cGVjdGVk
ICJmdW5jdGlvbiIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBSZXF1ZXN0IGludGVyZmFjZTog
YXR0cmlidXRlIHJlZmVycmVyUG9saWN5IGFzc2VydF9lcXVhbHM6IGdldHRlciBtdXN0IGJlIEZ1
bmN0aW9uIGV4cGVjdGVkICJmdW5jdGlvbiIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBSZXF1
ZXN0IGludGVyZmFjZTogYXR0cmlidXRlIG1vZGUgYXNzZXJ0X2VxdWFsczogZ2V0dGVyIG11c3Qg
YmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlM
IFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY3JlZGVudGlhbHMgYXNzZXJ0X2VxdWFsczog
Z2V0dGVyIG11c3QgYmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290ICJ1bmRl
ZmluZWQiCitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgY2FjaGUgYXNzZXJ0X2Vx
dWFsczogZ2V0dGVyIG11c3QgYmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290
ICJ1bmRlZmluZWQiCitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVkaXJlY3Qg
YXNzZXJ0X2VxdWFsczogZ2V0dGVyIG11c3QgYmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9u
IiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUg
aW50ZWdyaXR5IGFzc2VydF9lcXVhbHM6IGdldHRlciBtdXN0IGJlIEZ1bmN0aW9uIGV4cGVjdGVk
ICJmdW5jdGlvbiIgYnV0IGdvdCAidW5kZWZpbmVkIgorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTog
b3BlcmF0aW9uIGNsb25lKCkgCitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYm9k
eVVzZWQgYXNzZXJ0X2VxdWFsczogZ2V0dGVyIG11c3QgYmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1
bmN0aW9uIiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBvcGVy
YXRpb24gYXJyYXlCdWZmZXIoKSBhc3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9wZXJhdGlvbiB3aXRo
IHRoaXMgPSBudWxsIGRpZG4ndCB0aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3RbbWVtYmVyLm4uLi4iIGRpZCBu
b3QgdGhyb3cKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBibG9iKCkgYXNzZXJ0
X3Rocm93czogY2FsbGluZyBvcGVyYXRpb24gd2l0aCB0aGlzID0gbnVsbCBkaWRuJ3QgdGhyb3cg
VHlwZUVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgbWVtYmVy
SG9sZGVyT2JqZWN0W21lbWJlci5uLi4uIiBkaWQgbm90IHRocm93CitGQUlMIFJlcXVlc3QgaW50
ZXJmYWNlOiBvcGVyYXRpb24gZm9ybURhdGEoKSBhc3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9wZXJh
dGlvbiB3aXRoIHRoaXMgPSBudWxsIGRpZG4ndCB0aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24gImZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3RbbWVtYmVyLm4u
Li4iIGRpZCBub3QgdGhyb3cKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBqc29u
KCkgYXNzZXJ0X3Rocm93czogY2FsbGluZyBvcGVyYXRpb24gd2l0aCB0aGlzID0gbnVsbCBkaWRu
J3QgdGhyb3cgVHlwZUVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAg
ICAgbWVtYmVySG9sZGVyT2JqZWN0W21lbWJlci5uLi4uIiBkaWQgbm90IHRocm93CitGQUlMIFJl
cXVlc3QgaW50ZXJmYWNlOiBvcGVyYXRpb24gdGV4dCgpIGFzc2VydF90aHJvd3M6IGNhbGxpbmcg
b3BlcmF0aW9uIHdpdGggdGhpcyA9IG51bGwgZGlkbid0IHRocm93IFR5cGVFcnJvciBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIG1lbWJlckhvbGRlck9iamVjdFttZW1i
ZXIubi4uLiIgZGlkIG5vdCB0aHJvdworUEFTUyBSZXF1ZXN0IG11c3QgYmUgcHJpbWFyeSBpbnRl
cmZhY2Ugb2YgbmV3IFJlcXVlc3QoIiIpIAorUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgbmV3IFJl
cXVlc3QoIiIpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAibWV0aG9kIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMCkgCitQQVNT
IFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJ1cmwiIHdpdGggdGhlIHByb3BlciB0eXBlICgxKSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6
IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImhlYWRlcnMiIHdpdGggdGhl
IHByb3BlciB0eXBlICgyKSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIi
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInR5cGUiIHdpdGggdGhlIHByb3BlciB0eXBlICgzKSAK
K1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgImRlc3RpbmF0aW9uIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNCkgCitQQVNTIFJlcXVl
c3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZWZl
cnJlciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDUpIAorRkFJTCBSZXF1ZXN0IGludGVyZmFjZTog
bmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVmZXJyZXJQb2xpY3kiIHdp
dGggdGhlIHByb3BlciB0eXBlICg2KSBVbnJlY29nbml6ZWQgdHlwZSBSZWZlcnJlclBvbGljeQor
UEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAibW9kZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDcpIAorUEFTUyBSZXF1ZXN0IGludGVy
ZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY3JlZGVudGlhbHMi
IHdpdGggdGhlIHByb3BlciB0eXBlICg4KSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBS
ZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNhY2hlIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoOSkgCitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJyZWRpcmVjdCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDEwKSAKK1BB
U1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImludGVncml0eSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDExKSAKK1BBU1MgUmVxdWVzdCBp
bnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNsb25lIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTIpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJl
cXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYm9keVVzZWQiIHdpdGggdGhlIHByb3Bl
ciB0eXBlICgxMykgCitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJhcnJheUJ1ZmZlciIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDE0
KSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImJsb2IiIHdpdGggdGhlIHByb3BlciB0eXBlICgxNSkgCitQQVNTIFJlcXVlc3Qg
aW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJmb3JtRGF0
YSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDE2KSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5l
dyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImpzb24iIHdpdGggdGhlIHByb3Bl
ciB0eXBlICgxNykgCitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVz
dCBpbmhlcml0IHByb3BlcnR5ICJ0ZXh0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTgpIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaWRsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaWRsLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGZhZWZlZTNhYTQ0NjBjNWNkMDYyZWY5OGRmZDRhOWRiOWNjYTdmMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pZGwuaHRtbApAQCAtMCwwICsxLDg1IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+CisgICAgPHRpdGxlPlJlcXVlc3QgaWRsIGludGVyZmFjZTwvdGl0bGU+CisgICAgPG1ldGEg
bmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3Jlc3BvbnNl
Ij4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2Ui
IGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy9XZWJJRExQYXJzZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL2lkbGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAg
IDxzY3JpcHQgaWQ9ImJvZHktaWRsIiB0eXBlPSJ0ZXh0L3BsYWluIj4KKyAgICAgIHR5cGVkZWYg
YW55IEpTT047CisgICAgICB0eXBlZGVmIChCbG9iIG9yIEJ1ZmZlclNvdXJjZSBvciBGb3JtRGF0
YSBvciBVUkxTZWFyY2hQYXJhbXMgb3IgVVNWU3RyaW5nKSBCb2R5SW5pdDsKKworICAgICAgW05v
SW50ZXJmYWNlT2JqZWN0LAorICAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCisgICAgICBp
bnRlcmZhY2UgQm9keSB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGJvZHlV
c2VkOworICAgICAgICBbTmV3T2JqZWN0XSBQcm9taXNlPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZl
cigpOworICAgICAgICBbTmV3T2JqZWN0XSBQcm9taXNlPEJsb2I+IGJsb2IoKTsKKyAgICAgICAg
W05ld09iamVjdF0gUHJvbWlzZTxGb3JtRGF0YT4gZm9ybURhdGEoKTsKKyAgICAgICAgW05ld09i
amVjdF0gUHJvbWlzZTxKU09OPiBqc29uKCk7CisgICAgICAgIFtOZXdPYmplY3RdIFByb21pc2U8
VVNWU3RyaW5nPiB0ZXh0KCk7CisgICAgICB9OworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQg
aWQ9InJlcXVlc3QtaWRsIiB0eXBlPSJ0ZXh0L3BsYWluIj4KKyAgICAgIHR5cGVkZWYgKFJlcXVl
c3Qgb3IgVVNWU3RyaW5nKSBSZXF1ZXN0SW5mbzsKKworICAgICAgW0NvbnN0cnVjdG9yKFJlcXVl
c3RJbmZvIGlucHV0LCBvcHRpb25hbCBSZXF1ZXN0SW5pdCBpbml0KSwKKyAgICAgIEV4cG9zZWQ9
KFdpbmRvdyxXb3JrZXIpXQorICAgICAgaW50ZXJmYWNlIFJlcXVlc3QgeworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgQnl0ZVN0cmluZyBtZXRob2Q7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBVU1ZTdHJpbmcgdXJsOworICAgICAgICBbU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmli
dXRlIEhlYWRlcnMgaGVhZGVyczsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVz
dFR5cGUgdHlwZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3REZXN0aW5hdGlv
biBkZXN0aW5hdGlvbjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyByZWZl
cnJlcjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlZmVycmVyUG9saWN5IHJlZmVycmVy
UG9saWN5OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVzdE1vZGUgbW9kZTsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFsczsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3RDYWNoZSBjYWNoZTsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3RSZWRpcmVjdCByZWRpcmVjdDsKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBpbnRlZ3JpdHk7CisKKyAgICAgICAgW05ld09iamVj
dF0gUmVxdWVzdCBjbG9uZSgpOworICAgICAgfTsKKyAgICAgIFJlcXVlc3QgaW1wbGVtZW50cyBC
b2R5OworCisgICAgICBkaWN0aW9uYXJ5IFJlcXVlc3RJbml0IHsKKyAgICAgICAgQnl0ZVN0cmlu
ZyBtZXRob2Q7CisgICAgICAgIEhlYWRlcnNJbml0IGhlYWRlcnM7CisgICAgICAgIEJvZHlJbml0
PyBib2R5OworICAgICAgICBVU1ZTdHJpbmcgcmVmZXJyZXI7CisgICAgICAgIFJlZmVycmVyUG9s
aWN5IHJlZmVycmVyUG9saWN5OworICAgICAgICBSZXF1ZXN0TW9kZSBtb2RlOworICAgICAgICBS
ZXF1ZXN0Q3JlZGVudGlhbHMgY3JlZGVudGlhbHM7CisgICAgICAgIFJlcXVlc3RDYWNoZSBjYWNo
ZTsKKyAgICAgICAgUmVxdWVzdFJlZGlyZWN0IHJlZGlyZWN0OworICAgICAgICBET01TdHJpbmcg
aW50ZWdyaXR5OworICAgICAgICBhbnkgd2luZG93OyAvLyBjYW4gb25seSBiZSBzZXQgdG8gbnVs
bAorICAgICAgfTsKKworICAgICAgZW51bSBSZXF1ZXN0VHlwZSB7ICIiLCAiYXVkaW8iLCAiZm9u
dCIsICJpbWFnZSIsICJzY3JpcHQiLCAic3R5bGUiLCAidHJhY2siLCAidmlkZW8iIH07CisgICAg
ICBlbnVtIFJlcXVlc3REZXN0aW5hdGlvbiB7ICIiLCAiZG9jdW1lbnQiLCAic2hhcmVkd29ya2Vy
IiwgInN1YnJlc291cmNlIiwgInVua25vd24iLCAid29ya2VyIiB9OworICAgICAgZW51bSBSZXF1
ZXN0TW9kZSB7ICJuYXZpZ2F0ZSIsICJzYW1lLW9yaWdpbiIsICJuby1jb3JzIiwgImNvcnMiIH07
CisgICAgICBlbnVtIFJlcXVlc3RDcmVkZW50aWFscyB7ICJvbWl0IiwgInNhbWUtb3JpZ2luIiwg
ImluY2x1ZGUiIH07CisgICAgICBlbnVtIFJlcXVlc3RDYWNoZSB7ICJkZWZhdWx0IiwgIm5vLXN0
b3JlIiwgInJlbG9hZCIsICJuby1jYWNoZSIsICJmb3JjZS1jYWNoZSIsICJvbmx5LWlmLWNhY2hl
ZCIgfTsKKyAgICAgIGVudW0gUmVxdWVzdFJlZGlyZWN0IHsgImZvbGxvdyIsICJlcnJvciIsICJt
YW51YWwiIH07CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgIHZhciBpZGxzQXJy
YXkgPSBuZXcgSWRsQXJyYXkoKTsKKyAgICAgIHZhciBpZGwgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiYm9keS1pZGwiKS5pbm5lckhUTUwKKyAgICAgIGlkbCArPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmVxdWVzdC1pZGwiKS5pbm5lckhUTUwKKworICAgICAgaWRsc0FycmF5LmFkZF9p
ZGxzKGlkbCk7CisgICAgICBpZGxzQXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoImludGVyZmFjZSBI
ZWFkZXJzIHt9OyIpOworICAgICAgaWRsc0FycmF5LmFkZF9vYmplY3RzKHsgUmVxdWVzdDogWydu
ZXcgUmVxdWVzdCgiIiknXSB9KTsKKyAgICAgIGlkbHNBcnJheS50ZXN0KCk7CisgICAgPC9zY3Jp
cHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAw
MS5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAxLnN1Yi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGVmNjQ5ZGI4OTBmY2U1MzUyNWFhZTU3YWE4MGFkZjI2MWY5ZWUxNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMS5zdWItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMzYgQEAKKworUEFTUyBDaGVjayBtZXRob2QgaW5pdCB2YWx1ZSBvZiBHRVQg
YW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBtZXRob2QgaW5pdCB2YWx1ZSBvZiBI
RUFEIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgbWV0aG9kIGluaXQgdmFsdWUg
b2YgUE9TVCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIG1ldGhvZCBpbml0IHZh
bHVlIG9mIFBVVCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIG1ldGhvZCBpbml0
IHZhbHVlIG9mIERFTEVURSBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIG1ldGhv
ZCBpbml0IHZhbHVlIG9mIE9QVElPTlMgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVj
ayBtZXRob2QgaW5pdCB2YWx1ZSBvZiBoZWFkIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1Mg
Q2hlY2sgcmVmZXJyZXIgaW5pdCB2YWx1ZSBvZiAvcmVsYXRpdmUvcmVzc291cmNlIGFuZCBhc3Nv
Y2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgcmVmZXJyZXIgaW5pdCB2YWx1ZSBvZiBodHRwOi8v
bG9jYWxob3N0Ojg4MDAvcmVsYXRpdmUvcmVzc291cmNlP3F1ZXJ5PXRydWUjZnJhZ21lbnQgYW5k
IGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayByZWZlcnJlciBpbml0IHZhbHVlIG9mIGh0
dHA6Ly9sb2NhbGhvc3Q6ODgwMC8gYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBy
ZWZlcnJlciBpbml0IHZhbHVlIG9mICBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNr
IHJlZmVycmVyUG9saWN5IGluaXQgdmFsdWUgb2YgIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BB
U1MgQ2hlY2sgcmVmZXJyZXJQb2xpY3kgaW5pdCB2YWx1ZSBvZiBuby1yZWZlcnJlciBhbmQgYXNz
b2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIHJlZmVycmVyUG9saWN5IGluaXQgdmFsdWUgb2Yg
bm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBD
aGVjayByZWZlcnJlclBvbGljeSBpbml0IHZhbHVlIG9mIG9yaWdpbi1vbmx5IGFuZCBhc3NvY2lh
dGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgcmVmZXJyZXJQb2xpY3kgaW5pdCB2YWx1ZSBvZiBvcmln
aW4td2hlbi1jcm9zcy1vcmlnaW4gYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBy
ZWZlcnJlclBvbGljeSBpbml0IHZhbHVlIG9mIHVuc2FmZS11cmwgYW5kIGFzc29jaWF0ZWQgZ2V0
dGVyIAorUEFTUyBDaGVjayBtb2RlIGluaXQgdmFsdWUgb2Ygc2FtZS1vcmlnaW4gYW5kIGFzc29j
aWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBtb2RlIGluaXQgdmFsdWUgb2Ygbm8tY29ycyBhbmQg
YXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIG1vZGUgaW5pdCB2YWx1ZSBvZiBjb3JzIGFu
ZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgY3JlZGVudGlhbHMgaW5pdCB2YWx1ZSBv
ZiBvbWl0IGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgY3JlZGVudGlhbHMgaW5p
dCB2YWx1ZSBvZiBzYW1lLW9yaWdpbiBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNr
IGNyZWRlbnRpYWxzIGluaXQgdmFsdWUgb2YgaW5jbHVkZSBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIg
CitQQVNTIENoZWNrIGNhY2hlIGluaXQgdmFsdWUgb2YgZGVmYXVsdCBhbmQgYXNzb2NpYXRlZCBn
ZXR0ZXIgCitQQVNTIENoZWNrIGNhY2hlIGluaXQgdmFsdWUgb2Ygbm8tc3RvcmUgYW5kIGFzc29j
aWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBjYWNoZSBpbml0IHZhbHVlIG9mIHJlbG9hZCBhbmQg
YXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIGNhY2hlIGluaXQgdmFsdWUgb2Ygbm8tY2Fj
aGUgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBjYWNoZSBpbml0IHZhbHVlIG9m
IGZvcmNlLWNhY2hlIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgcmVkaXJlY3Qg
aW5pdCB2YWx1ZSBvZiBmb2xsb3cgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBy
ZWRpcmVjdCBpbml0IHZhbHVlIG9mIGVycm9yIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1Mg
Q2hlY2sgcmVkaXJlY3QgaW5pdCB2YWx1ZSBvZiBtYW51YWwgYW5kIGFzc29jaWF0ZWQgZ2V0dGVy
IAorUEFTUyBDaGVjayBpbnRlZ3JpdHkgaW5pdCB2YWx1ZSBvZiAgYW5kIGFzc29jaWF0ZWQgZ2V0
dGVyIAorUEFTUyBDaGVjayBpbnRlZ3JpdHkgaW5pdCB2YWx1ZSBvZiBBWkVSVFlVSU9QMTIzNDU2
Nzg5MCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIHdpbmRvdyBpbml0IHZhbHVl
IG9mIG51bGwgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtaW5pdC0wMDEuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDEuc3ViLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYThjMzZkOWYwNzVlOWU2ZWQ5ODk5YmY3N2E3YWU3MTU1Zjk5YWJkZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMS5zdWIuaHRtbApAQCAtMCwwICsxLDkw
IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlcXVlc3QgaW5pdDogc2ltcGxlIGNhc2VzPC90aXRsZT4K
KyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9y
Zy8jcmVxdWVzdCI+CisgICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFy
Y2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgorICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4K
KyAgPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgIHZhciBtZXRob2RzID0geyJnaXZlblZhbHVl
cyIgOiBbIkdFVCIsICJIRUFEIiwgIlBPU1QiLCAiUFVUIiwgIkRFTEVURSIsICJPUFRJT05TIiwg
ImhlYWQiXSwKKyAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZFZhbHVlcyIgOiBbIkdFVCIs
ICJIRUFEIiwgIlBPU1QiLCAiUFVUIiwgIkRFTEVURSIsICJPUFRJT05TIiwgIkhFQUQiXQorICAg
ICAgfTsKKyAgICAgIHZhciByZWZlcnJlcnMgPSB7ImdpdmVuVmFsdWVzIiA6IFsiL3JlbGF0aXZl
L3Jlc3NvdXJjZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0
dHA6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBdWzBdfX0vcmVsYXRpdmUvcmVzc291cmNlP3F1ZXJ5
PXRydWUjZnJhZ21lbnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJodHRwOi8ve3tob3N0fX06e3twb3J0c1todHRwXVswXX19LyIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZFZhbHVlcyIgOiBb
Imh0dHA6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBdWzBdfX0vcmVsYXRpdmUvcmVzc291cmNlIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3t7aG9z
dH19Ont7cG9ydHNbaHR0cF1bMF19fS9yZWxhdGl2ZS9yZXNzb3VyY2U/cXVlcnk9dHJ1ZSNmcmFn
bWVudCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6
Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBdWzBdfX0vIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXQorICAgICAgfTsKKyAgICAgIHZhciByZWZlcnJlclBvbGljaWVzID0geyJnaXZl
blZhbHVlcyIgOiBbICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIm5vLXJlZmVycmVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JpZ2luLW9ubHkiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yaWdpbi13aGVu
LWNyb3NzLW9yaWdpbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAidW5zYWZlLXVybCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkVmFs
dWVzIiA6IFsiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIm5vLXJlZmVycmVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIm5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yaWdpbi1vbmx5IiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yaWdpbi13
aGVuLWNyb3NzLW9yaWdpbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ1bnNhZmUtdXJsIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBdCisgICAgICB9OworICAgICAgdmFyIG1vZGVzID0geyJnaXZl
blZhbHVlcyIgOiBbInNhbWUtb3JpZ2luIiwgIm5vLWNvcnMiLCAiY29ycyJdLAorICAgICAgICAg
ICAgICAgICAgICJleHBlY3RlZFZhbHVlcyIgOiBbInNhbWUtb3JpZ2luIiwgIm5vLWNvcnMiLCAi
Y29ycyJdCisgICAgICB9OworICAgICAgdmFyIGNyZWRlbnRpYWxzID0geyJnaXZlblZhbHVlcyIg
OiBbIm9taXQiLCAic2FtZS1vcmlnaW4iLCAiaW5jbHVkZSJdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWRWYWx1ZXMiIDogWyJvbWl0IiwgInNhbWUtb3JpZ2luIiwgImluY2x1
ZGUiXQorICAgICAgfTsKKyAgICAgIHZhciBjYWNoZXMgPSB7ImdpdmVuVmFsdWVzIiA6IFsgImRl
ZmF1bHQiLCAibm8tc3RvcmUiLCAicmVsb2FkIiwgIm5vLWNhY2hlIiwgImZvcmNlLWNhY2hlIl0s
CisgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZFZhbHVlcyIgOiBbICJkZWZhdWx0IiwgIm5v
LXN0b3JlIiwgInJlbG9hZCIsICJuby1jYWNoZSIsICJmb3JjZS1jYWNoZSJdCisgICAgICB9Owor
ICAgICAgdmFyIHJlZGlyZWN0cyA9IHsiZ2l2ZW5WYWx1ZXMiIDogWyJmb2xsb3ciLCAiZXJyb3Ii
LCAibWFudWFsIl0sCisgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZFZhbHVlcyIgOiBb
ImZvbGxvdyIsICJlcnJvciIsICJtYW51YWwiXQorICAgICAgfTsKKyAgICAgIHZhciBpbnRlZ3Jp
dGllcyA9IHsiZ2l2ZW5WYWx1ZXMiIDogWyIiLCAiQVpFUlRZVUlPUDEyMzQ1Njc4OTAiIF0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkVmFsdWVzIiA6IFsiIiwgIkFaRVJUWVVJ
T1AxMjM0NTY3ODkwIl0KKyAgICAgIH07CisKKyAgICAgIC8vdGhlcmUgaXMgbm8gZ2V0dGVyIGZv
ciB3aW5kb3csIGluaXQncyB3aW5kb3cgbWlnaHQgYmUgbnVsbAorICAgICAgdmFyIHdpbmRvd3Mg
PSB7ImdpdmVuVmFsdWVzIiA6IFsgbnVsbCBdLAorICAgICAgICAgICAgICAgICAgICAgImV4cGVj
dGVkVmFsdWVzIiA6IFt1bmRlZmluZWRdCisgICAgICB9OworCisgICAgICB2YXIgaW5pdFZhbHVl
c0RpY3QgPSB7ICJtZXRob2QiIDogbWV0aG9kcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInJlZmVycmVyIiA6IHJlZmVycmVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InJlZmVycmVyUG9saWN5IiA6IHJlZmVycmVyUG9saWNpZXMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJtb2RlIiA6IG1vZGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Y3JlZGVudGlhbHMiIDogY3JlZGVudGlhbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJjYWNoZSIgOiBjYWNoZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWRpcmVj
dCIgOiByZWRpcmVjdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlZ3JpdHki
IDogaW50ZWdyaXRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aW5kb3ciIDog
d2luZG93cworICAgICAgfTsKKworICAgICAgZm9yICh2YXIgYXR0cmlidXRlTmFtZSBpbiBpbml0
VmFsdWVzRGljdCkgeworICAgICAgICB2YXIgdmFsdWVzVG9UZXN0ID0gaW5pdFZhbHVlc0RpY3Rb
YXR0cmlidXRlTmFtZV07CisgICAgICAgIGZvciAodmFyIHZhbHVlSWR4IGluIHZhbHVlc1RvVGVz
dFsiZ2l2ZW5WYWx1ZXMiXSkgeworICAgICAgICAgIHZhciBnaXZlblZhbHVlID0gdmFsdWVzVG9U
ZXN0WyJnaXZlblZhbHVlcyJdW3ZhbHVlSWR4XTsKKyAgICAgICAgICB2YXIgZXhwZWN0ZWRWYWx1
ZSA9IHZhbHVlc1RvVGVzdFsiZXhwZWN0ZWRWYWx1ZXMiXVt2YWx1ZUlkeF07CisgICAgICAgICAg
dGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciByZXF1ZXN0SW5pdCA9IHt9OworICAg
ICAgICAgICAgcmVxdWVzdEluaXRbYXR0cmlidXRlTmFtZV0gPSBnaXZlblZhbHVlCisgICAgICAg
ICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCByZXF1ZXN0SW5pdCk7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3RbYXR0cmlidXRlTmFtZV0sIGV4cGVjdGVkVmFsdWUs
CisgICAgICAgICAgICAgICJFeHBlY3QgcmVxdWVzdCdzICIgKyBhdHRyaWJ1dGVOYW1lICsgIiBp
cyAiICsgZXhwZWN0ZWRWYWx1ZSArICIgd2hlbiBpbml0aWFsaXplZCB3aXRoICIgKyBnaXZlblZh
bHVlKTsKKyAgICAgICAgICB9LCAiQ2hlY2sgIiArIGF0dHJpYnV0ZU5hbWUgKyAiIGluaXQgdmFs
dWUgb2YgIiArIGdpdmVuVmFsdWUgKyAiIGFuZCBhc3NvY2lhdGVkIGdldHRlciIpOworICAgICAg
ICB9CisgICAgICB9CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5p
dC0wMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViYzJhYmFlNzBjZTk1NTkyZTdmM2I0ZTYx
OTNmYjBhNjdmNDQxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIEluaXRpYWxpemUgUmVxdWVzdCB3
aXRoIGhlYWRlcnMgdmFsdWVzIAorRkFJTCBJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdpdGgg
YXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiB1bmRlZmluZWQKK0ZBSUwgSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3
aXRoIG11bHRpcGFydC9mb3JtLWRhdGEgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IHVuZGVmaW5lZAorUEFTUyBJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdp
dGggdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04IAorRkFJTCBJbml0aWFsaXplIFJlcXVlc3QncyBi
b2R5IHdpdGggYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJVUkxTZWFyY2hQ
YXJhbXMgbm90IHN1cHBvcnRlZCIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWFjYzY3ZTQz
MDA3ODA0M2FkZTNkMDE2ODU2OTk1ODYwMjIyNGM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LWluaXQtMDAyLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5S
ZXF1ZXN0IGluaXQ6IGhlYWRlcnMgYW5kIGJvZHk8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0Ij4KKyAgICA8
bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0
dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2Ny
aXB0PgorICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGhlYWRlckRpY3QgPSB7
Im5hbWUxIjogInZhbHVlMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lMiI6ICJ2
YWx1ZTIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZTMiOiAidmFsdWUzIgorICAg
ICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRl
cnMoaGVhZGVyRGljdCk7CisgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsg
ImhlYWRlcnMiIDogaGVhZGVycyB9KQorICAgICAgICBmb3IgKHZhciBuYW1lIGluIGhlYWRlckRp
Y3QpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQobmFtZSks
IGhlYWRlckRpY3RbbmFtZV0sCisgICAgICAgICAgICJyZXF1ZXN0J3MgaGVhZGVycyBoYXMgIiAr
IG5hbWUgKyAiIDogIiArIGhlYWRlckRpY3RbbmFtZV0pOworICAgICAgICB9CisgICAgICB9LCAi
SW5pdGlhbGl6ZSBSZXF1ZXN0IHdpdGggaGVhZGVycyB2YWx1ZXMiKTsKKworICAgICAgZnVuY3Rp
b24gY2hlY2tSZXF1ZXN0SW5pdChib2R5LCBib2R5VHlwZSwgZXhwZWN0ZWRUZXh0Qm9keSkgewor
ICAgICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgICAgICAgIHZhciByZXF1
ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAiYm9keSI6IGJvZHl9KTsK
KyAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiR0VUIiwg
ImJvZHkiOiBib2R5fSk7IH0KKyAgICAgICAgICApOworICAgICAgICAgIGFzc2VydF90aHJvd3Mo
bmV3IFR5cGVFcnJvcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IG5l
dyBSZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJIRUFEIiwgImJvZHkiOiBib2R5fSk7IH0KKyAgICAg
ICAgICApOworICAgICAgICAgIHZhciByZXFIZWFkZXJzID0gcmVxdWVzdC5oZWFkZXJzOworICAg
ICAgICAgIHZhciBtaW1lID0gcmVxSGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpOworICAgICAg
ICAgIGFzc2VydF90cnVlKG1pbWUgJiYgbWltZS5zZWFyY2goYm9keVR5cGUpID4gLTEsICJDb250
ZW50LVR5cGUgaGVhZGVyIHNob3VsZCBiZSBcIiIgKyBib2R5VHlwZSArICJcIiwgbm90IFwiIiAr
IG1pbWUgKyAiXCIiKTsKKyAgICAgICAgICByZXR1cm4gcmVxdWVzdC50ZXh0KCkudGhlbihmdW5j
dGlvbihib2R5QXNUZXh0KSB7CisgICAgICAgICAgICAvL25vdCBlcXVhbHM6IGNhbm5vdCBndWVz
cyBmb3JtRGF0YSBleGFjdCB2YWx1ZQorICAgICAgICAgICAgYXNzZXJ0X3RydWUoIGJvZHlBc1Rl
eHQuc2VhcmNoKGV4cGVjdGVkVGV4dEJvZHkpID4gLTEsICJSZXRyaWV2ZSBhbmQgdmVyaWZ5IHJl
cXVlc3QgYm9keSIpOworICAgICAgICAgIH0pOworICAgICAgICB9LCAiSW5pdGlhbGl6ZSBSZXF1
ZXN0J3MgYm9keSB3aXRoICIgKyBib2R5VHlwZSk7CisgICAgICB9CisKKyAgICAgIHZhciBibG9i
ID0gbmV3IEJsb2IoWyJUaGlzIGlzIGEgYmxvYiJdLCB7dHlwZTogImFwcGxpY2F0aW9uL29jdGV0
LWJpbmFyeSJ9KTsKKyAgICAgIHZhciBmb3JtYURhdGEgPSBuZXcgRm9ybURhdGEoKTsKKyAgICAg
IGZvcm1hRGF0YS5hcHBlbmQoIm5hbWUiLCAidmFsdWUiKTsKKyAgICAgIHZhciB1c3ZTdHJpbmcg
PSAiVGhpcyBpcyBhIFVTVlN0cmluZyIKKworICAgICAgY2hlY2tSZXF1ZXN0SW5pdChibG9iLCAi
YXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5IiwgIlRoaXMgaXMgYSBibG9iIik7CisgICAgICBjaGVj
a1JlcXVlc3RJbml0KGZvcm1hRGF0YSwgIm11bHRpcGFydC9mb3JtLWRhdGEiLCAibmFtZT1cIm5h
bWVcIlxyXG5cclxudmFsdWUiKTsKKyAgICAgIGNoZWNrUmVxdWVzdEluaXQodXN2U3RyaW5nLCAi
dGV4dC9wbGFpbjtjaGFyc2V0PVVURi04IiwgIlRoaXMgaXMgYSBVU1ZTdHJpbmciKTsKKworICAg
ICAgLy8gRW5zdXJlIHRlc3QgZG9lcyBub3QgdGltZSBvdXQgaW4gY2FzZSBvZiBtaXNzaW5nIFVS
TFNlYXJjaFBhcmFtcyBzdXBwb3J0LgorICAgICAgaWYgKHdpbmRvdy5VUkxTZWFyY2hQYXJhbXMp
IHsKKyAgICAgICAgdmFyIHVybFNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoIm5h
bWU9dmFsdWUiKTsKKyAgICAgICAgY2hlY2tSZXF1ZXN0SW5pdCh1cmxTZWFyY2hQYXJhbXMsICJh
cHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIsICJuYW1lPXZh
bHVlIik7CisgICAgICB9IGVsc2UgeworICAgICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVz
dCkgeworICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgiVVJMU2VhcmNoUGFyYW1zIG5v
dCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgfSwgIkluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0
aCBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIpOworICAg
ICAgfQorICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtaW5pdC0wMDMuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAw
My5zdWItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhYmU3NTYwZTI4ZTk4OGU0NzZjMjhjY2Qy
ZjJlMjlmMDJiODViN2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDMu
c3ViLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworRkFJTCBDaGVjayByZXF1ZXN0IHZh
bHVlcyB3aGVuIGluaXRpYWxpemVkIGZyb20gUmVxdWVzdCBFeHBlY3RlZFZhbHVlc0RpY3RbImhl
YWRlcnMiXS5rZXlzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ0V4cGVjdGVkVmFsdWVzRGljdFsi
aGVhZGVycyJdLmtleXMoKScsICdFeHBlY3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzJyBp
cyB1bmRlZmluZWQpCitGQUlMIENoZWNrIHJlcXVlc3QgdmFsdWVzIHdoZW4gaW5pdGlhbGl6ZWQg
ZnJvbSBSZXF1ZXN0IGFuZCBpbml0IHZhbHVlcyBFeHBlY3RlZFZhbHVlc0RpY3RbImhlYWRlcnMi
XS5rZXlzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ0V4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVy
cyJdLmtleXMoKScsICdFeHBlY3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzJyBpcyB1bmRl
ZmluZWQpCitGQUlMIENoZWNrIHJlcXVlc3QgdmFsdWVzIHdoZW4gaW5pdGlhbGl6ZWQgZnJvbSB1
cmwgc3RyaW5nIGFzc2VydF9lcXVhbHM6IENoZWNrIHVybCBhdHRyaWJ1dGUgZXhwZWN0ZWQgImh0
dHA6Ly91cmwudGVzdDoxMjM0L3BhdGgvc3VicGF0aD9xdWVyeT10cnVlIiBidXQgZ290ICJodHRw
Oi8vdXJsLnRlc3Q6MTIzNC9wYXRoL3N1YnBhdGg/cXVlcnk9dHJ1ZSNmcmFnbWVudCIKK0ZBSUwg
Q2hlY2sgcmVxdWVzdCB2YWx1ZXMgd2hlbiBpbml0aWFsaXplZCBmcm9tIHVybCBhbmQgaW5pdCB2
YWx1ZXMgRXhwZWN0ZWRWYWx1ZXNEaWN0WyJoZWFkZXJzIl0ua2V5cyBpcyBub3QgYSBmdW5jdGlv
bi4gKEluICdFeHBlY3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzKCknLCAnRXhwZWN0ZWRW
YWx1ZXNEaWN0WyJoZWFkZXJzIl0ua2V5cycgaXMgdW5kZWZpbmVkKQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3QtaW5pdC0wMDMuc3ViLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDMuc3Vi
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTgzNjgwMTUyMTY4YWViZDc5NmIyMWM2OTJiYmI4NjljNDdkZWMx
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMy5zdWIuaHRtbApAQCAt
MCwwICsxLDg0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlcXVlc3Q6IGluaXQgd2l0aCByZXF1ZXN0
IG9yIHVybDwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRj
aC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC11cmwtc2VyaWFsaXplciI+Cisg
ICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVm
PSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKyAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoIHsibmFtZSI6InZhbHVlIn0gKTsK
KyAgICAgIHZhciBlbXB0eUhlYWRlcnMgPSBuZXcgSGVhZGVycygpOworCisgICAgICB2YXIgaW5p
dFZhbHVlc0RpY3QgPSB7Im1ldGhvZCIgOiAiUE9TVCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInJlZmVycmVyIiA6ICJodHRwOi8ve3tob3N0fX06e3twb3J0c1todHRwXVswXX19LyIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVycmVyUG9saWN5IiA6ICJvcmlnaW4t
b25seSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vZGUiIDogInNhbWUtb3JpZ2lu
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY3JlZGVudGlhbHMiIDogImluY2x1ZGUi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYWNoZSIgOiAibm8tY2FjaGUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJyZWRpcmVjdCIgOiAiZXJyb3IiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJpbnRlZ3JpdHkiIDogIlJlcXVlc3QncyBJbnRlZ3JpdHkiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoZWFkZXJzIiA6IGhlYWRlcnMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImJvZHkiIDogIlJlcXVlc3QncyBib2R5IgorICAgICAgfTsK
KworICAgICAgdmFyIGV4cGVjdGVkSW5pdGlhbGl6ZWQgPSB7Im1ldGhvZCIgOiAiUE9TVCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJyZXIiIDogImh0dHA6Ly97e2hv
c3R9fTp7e3BvcnRzW2h0dHBdWzBdfX0vIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJyZWZlcnJlclBvbGljeSIgOiAib3JpZ2luLW9ubHkiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIm1vZGUiIDogInNhbWUtb3JpZ2luIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJjcmVkZW50aWFscyIgOiAiaW5jbHVkZSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiY2FjaGUiIDogIm5vLWNhY2hlIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJyZWRpcmVjdCIgOiAiZXJyb3IiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImludGVncml0eSIgOiAiUmVxdWVzdCdzIEludGVncml0eSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGVhZGVycyIgOiBoZWFkZXJzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJvZHkiIDogIlJlcXVlc3QncyBib2R5Igor
ICAgICAgfTsKKworICAgICAgdmFyIGV4cGVjdGVkRGVmYXVsdCA9IHsibWV0aG9kIiA6ICJHRVQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidXJsIiA6IGxvY2F0aW9uLnJlZiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVycmVyIiA6ICJhYm91dDpjbGllbnQiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJyZXJQb2xpY3kiIDogIiIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJtb2RlIiA6ICJjb3JzIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImNyZWRlbnRpYWxzIiA6ICJvbWl0IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImNhY2hlIiA6ICJkZWZhdWx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInJlZGlyZWN0IiA6ICJmb2xsb3ciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiaW50ZWdyaXR5IiA6ICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGVhZGVy
cyIgOiBlbXB0eUhlYWRlcnMKKyAgICAgIH07CisKKyAgICAgIHZhciBSZXF1ZXN0RGVmYXVsdCA9
IG5ldyBSZXF1ZXN0KCIiKTsKKyAgICAgIHZhciBSZXF1ZXN0SW5pdGlhbGl6ZWQgPSBuZXcgUmVx
dWVzdCgiIiwgaW5pdFZhbHVlc0RpY3QpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAg
ICAgICB2YXIgcmVxdWVzdFRvQ2hlY2sgPSBuZXcgUmVxdWVzdChSZXF1ZXN0SW5pdGlhbGl6ZWQp
OworICAgICAgICBjaGVja1JlcXVlc3QocmVxdWVzdFRvQ2hlY2ssIGV4cGVjdGVkSW5pdGlhbGl6
ZWQpOworICAgICAgfSwgIkNoZWNrIHJlcXVlc3QgdmFsdWVzIHdoZW4gaW5pdGlhbGl6ZWQgZnJv
bSBSZXF1ZXN0Iik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciByZXF1
ZXN0VG9DaGVjayA9IG5ldyBSZXF1ZXN0KFJlcXVlc3REZWZhdWx0LCBpbml0VmFsdWVzRGljdCk7
CisgICAgICAgIGNoZWNrUmVxdWVzdChyZXF1ZXN0VG9DaGVjaywgZXhwZWN0ZWRJbml0aWFsaXpl
ZCk7CisgICAgICB9LCAiQ2hlY2sgcmVxdWVzdCB2YWx1ZXMgd2hlbiBpbml0aWFsaXplZCBmcm9t
IFJlcXVlc3QgYW5kIGluaXQgdmFsdWVzIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHZhciB1cmwgPSAiaHR0cDovL3VybC50ZXN0OjEyMzQvcGF0aC9zdWJwYXRoP3F1ZXJ5
PXRydWUiOworICAgICAgICBleHBlY3RlZERlZmF1bHRbInVybCJdID0gdXJsOworICAgICAgICB1
cmwgKz0gIiNmcmFnbWVudCI7CisgICAgICAgIHZhciByZXF1ZXN0VG9DaGVjayA9IG5ldyBSZXF1
ZXN0KHVybCk7CisgICAgICAgIGNoZWNrUmVxdWVzdChyZXF1ZXN0VG9DaGVjaywgZXhwZWN0ZWRE
ZWZhdWx0KTsKKyAgICAgIH0sICJDaGVjayByZXF1ZXN0IHZhbHVlcyB3aGVuIGluaXRpYWxpemVk
IGZyb20gdXJsIHN0cmluZyIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2
YXIgdXJsID0gImh0dHA6Ly91cmwudGVzdDoxMjM0L3BhdGgvc3VicGF0aD9xdWVyeT10cnVlIjsK
KyAgICAgICAgZXhwZWN0ZWRJbml0aWFsaXplZFsidXJsIl0gPSB1cmw7CisgICAgICAgIHVybCAr
PSAiI2ZyYWdtZW50IjsKKyAgICAgICAgdmFyIHJlcXVlc3RUb0NoZWNrID0gbmV3IFJlcXVlc3Qo
dXJsICwgaW5pdFZhbHVlc0RpY3QpOworICAgICAgICBjaGVja1JlcXVlc3QocmVxdWVzdFRvQ2hl
Y2ssIGV4cGVjdGVkSW5pdGlhbGl6ZWQpOworICAgICAgfSwgIkNoZWNrIHJlcXVlc3QgdmFsdWVz
IHdoZW4gaW5pdGlhbGl6ZWQgZnJvbSB1cmwgYW5kIGluaXQgdmFsdWVzIik7CisgICAgPC9zY3Jp
cHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1
cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTM3NDk1NzI1YzI4NmEyYjQwYTA0MTVkMTM0Y2FiOWI2ZjdiNzIxYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjEgQEAKKworUEFTUyBSZXF1ZXN0IGhhcyBjbG9uZSBtZXRob2QgCitQQVNTIFJlcXVlc3Qg
aGFzIGFycmF5QnVmZmVyIG1ldGhvZCAKK1BBU1MgUmVxdWVzdCBoYXMgYmxvYiBtZXRob2QgCitQ
QVNTIFJlcXVlc3QgaGFzIGZvcm1EYXRhIG1ldGhvZCAKK1BBU1MgUmVxdWVzdCBoYXMganNvbiBt
ZXRob2QgCitQQVNTIFJlcXVlc3QgaGFzIHRleHQgbWV0aG9kIAorUEFTUyBDaGVjayBtZXRob2Qg
YXR0cmlidXRlIAorUEFTUyBDaGVjayB1cmwgYXR0cmlidXRlIAorUEFTUyBDaGVjayBoZWFkZXJz
IGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgdHlwZSBhdHRyaWJ1dGUgCitQQVNTIENoZWNrIGRlc3Rp
bmF0aW9uIGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgcmVmZXJyZXIgYXR0cmlidXRlIAorUEFTUyBD
aGVjayByZWZlcnJlclBvbGljeSBhdHRyaWJ1dGUgCitQQVNTIENoZWNrIG1vZGUgYXR0cmlidXRl
IAorUEFTUyBDaGVjayBjcmVkZW50aWFscyBhdHRyaWJ1dGUgCitQQVNTIENoZWNrIGNhY2hlIGF0
dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgcmVkaXJlY3QgYXR0cmlidXRlIAorUEFTUyBDaGVjayBpbnRl
Z3JpdHkgYXR0cmlidXRlIAorUEFTUyBDaGVjayBib2R5VXNlZCBhdHRyaWJ1dGUgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1cmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1
cmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jYmU2Y2VlOTk5ZjMxYjNiNjAyMjZjYjk5MmNhNmMxMTcwYWUy
NzJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5odG1sCkBAIC0w
LDAgKzEsMTM0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlcXVlc3Qgc3RydWN0dXJlPC90aXRsZT4K
KyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9y
Zy8jcmVxdWVzdCI+CisgICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFy
Y2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgorICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4K
KyAgPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3Qo
IiIpOworICAgICAgdmFyIG1ldGhvZHMgPSBbImNsb25lIiwKKyAgICAgICAgICAgICAgICAgICAg
IC8vUmVxdWVzdCBpbXBsZW1lbnRzIEJvZHkKKyAgICAgICAgICAgICAgICAgICAgICJhcnJheUJ1
ZmZlciIsCisgICAgICAgICAgICAgICAgICAgICAiYmxvYiIsCisgICAgICAgICAgICAgICAgICAg
ICAiZm9ybURhdGEiLAorICAgICAgICAgICAgICAgICAgICAgImpzb24iLAorICAgICAgICAgICAg
ICAgICAgICAgInRleHQiCisgICAgICAgICAgICAgICAgICAgIF07CisgICAgICB2YXIgYXR0cmli
dXRlcyA9IFsibWV0aG9kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgImhlYWRlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgInR5
cGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgImRlc3RpbmF0aW9uIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICJyZWZlcnJlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJy
ZXJQb2xpY3kiLAorICAgICAgICAgICAgICAgICAgICAgICAgIm1vZGUiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgImNyZWRlbnRpYWxzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJjYWNo
ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmVkaXJlY3QiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgImludGVncml0eSIsCisgICAgICAgICAgICAgICAgICAgICAgICAvL1JlcXVlc3Qg
aW1wbGVtZW50cyBCb2R5CisgICAgICAgICAgICAgICAgICAgICAgICAiYm9keVVzZWQiCisgICAg
ICAgICAgICAgICAgICAgICAgIF07CisKKyAgICAgIGZ1bmN0aW9uIElzcmVhZE9ubHkocmVxdWVz
dCwgYXR0cmlidXRlVG9DaGVjaykgeworICAgICAgICB2YXIgZGVmYXVsdFZhbHVlID0gdW5kZWZp
bmVkOworICAgICAgICB2YXIgbmV3VmFsdWUgPSB1bmRlZmluZWQ7CisgICAgICAgIHN3aXRjaCAo
YXR0cmlidXRlVG9DaGVjaykgeworICAgICAgICAgIGNhc2UgIm1ldGhvZCI6CisgICAgICAgICAg
ICBkZWZhdWx0VmFsdWUgPSAiR0VUIjsKKyAgICAgICAgICAgIG5ld1ZhbHVlID0gIlBPU1QiOwor
ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICBjYXNlICJ1cmwiOgorICAgICAgICAgICAg
Ly9kZWZhdWx0IHZhbHVlIGlzIGJhc2UgdXJsCisgICAgICAgICAgICAvL2kuZSBodHRwOi8vd2Vi
LXBsYXRmb3JtLnRlc3Q6ODAwMC9mZXRjaC9hcGkvcmVxdWVzdC1zdHJ1Y3R1cmUuaHRtbAorICAg
ICAgICAgICAgbmV3VmFsdWUgPSAiaHR0cDovL3VybC50ZXN0IjsKKyAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgICAgY2FzZSAiaGVhZGVycyI6CisgICAgICAgICAgICByZXF1ZXN0LmhlYWRl
cnMgPSBuZXcgSGVhZGVycyAoeyJuYW1lIjoidmFsdWUifSk7CisgICAgICAgICAgICBhc3NlcnRf
ZmFsc2UocmVxdWVzdC5oZWFkZXJzLmhhcygibmFtZSIpLCAiSGVhZGVycyBhdHRyaWJ1dGUgaXMg
cmVhZCBvbmx5Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICAgIGNhc2UgInR5cGUiOgorICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gIiI7Cisg
ICAgICAgICAgICBuZXdWYWx1ZSA9ICJzdHlsZSI7CisgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICAgIGNhc2UgImRlc3RpbmF0aW9uIjoKKyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICIi
OworICAgICAgICAgICAgbmV3VmFsdWUgPSAid29ya2VyIjsKKyAgICAgICAgICAgIGJyZWFrOwor
CisgICAgICAgICAgY2FzZSAicmVmZXJyZXIiOgorICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0g
ImFib3V0OmNsaWVudCI7CisgICAgICAgICAgICBuZXdWYWx1ZSA9ICJodHRwOi8vdXJsLnRlc3Qi
OworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICBjYXNlICJyZWZlcnJlclBvbGljeSI6
CisgICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSAiIjsKKyAgICAgICAgICAgIG5ld1ZhbHVlID0g
InVuc2FmZS11cmwiOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICBjYXNlICJtb2Rl
IjoKKyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICJjb3JzIjsKKyAgICAgICAgICAgIG5ld1Zh
bHVlID0gIm5hdmlnYXRlIjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgY2FzZSAi
Y3JlZGVudGlhbHMiOgorICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gIm9taXQiOworICAgICAg
ICAgICAgbmV3VmFsdWUgPSAiY29ycyI7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAg
IGNhc2UgImNhY2hlIjoKKyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICJkZWZhdWx0IjsKKyAg
ICAgICAgICAgIG5ld1ZhbHVlID0gInJlbG9hZCI7CisgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICAgIGNhc2UgInJlZGlyZWN0IjoKKyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICJmb2xs
b3ciOworICAgICAgICAgICAgbmV3VmFsdWUgPSAibWFudWFsIjsKKyAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgICAgY2FzZSAiaW50ZWdyaXR5IjoKKyAgICAgICAgICAgIG5ld1ZhbHVlID0g
IkNhbm5vdFdyaXRlSW50ZWdyaXR5IjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAg
Y2FzZSAiYm9keVVzZWQiOgorICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gZmFsc2U7CisgICAg
ICAgICAgICBuZXdWYWx1ZSA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICByZXF1
ZXN0W2F0dHJpYnV0ZVRvQ2hlY2tdID0gbmV3VmFsdWU7CisgICAgICAgIGlmIChkZWZhdWx0VmFs
dWUgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhyZXF1ZXN0W2F0
dHJpYnV0ZVRvQ2hlY2tdLCBuZXdWYWx1ZSwgIkF0dHJpYnV0ZSAiICsgYXR0cmlidXRlVG9DaGVj
ayArICIgaXMgcmVhZCBvbmx5Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHJlcXVlc3RbYXR0cmlidXRlVG9DaGVja10sIGRlZmF1bHRWYWx1ZSwKKyAgICAgICAgICAg
IkF0dHJpYnV0ZSAiICsgYXR0cmlidXRlVG9DaGVjayArICIgaXMgcmVhZCBvbmx5LiBEZWZhdWx0
IHZhbHVlIGlzICIgKyBkZWZhdWx0VmFsdWUpOworICAgICAgfQorCisgICAgICBmb3IgKHZhciBp
ZHggaW4gbWV0aG9kcykgeworICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIGFz
c2VydF90cnVlKG1ldGhvZHNbaWR4XSBpbiByZXF1ZXN0LCAicmVxdWVzdCBoYXMgIiArIG1ldGhv
ZHNbaWR4XSArICIgbWV0aG9kIik7CisgICAgICAgIH0sICJSZXF1ZXN0IGhhcyAiICsgbWV0aG9k
c1tpZHhdICsgIiBtZXRob2QiKTsKKyAgICAgIH0KKworICAgICAgZm9yICh2YXIgaWR4IGluIGF0
dHJpYnV0ZXMpIHsKKyAgICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgICBhc3NlcnRf
dHJ1ZShhdHRyaWJ1dGVzW2lkeF0gaW4gcmVxdWVzdCwgInJlcXVlc3QgaGFzICIgKyBhdHRyaWJ1
dGVzW2lkeF0gKyAiIGF0dHJpYnV0ZSIpOworICAgICAgICAgIElzcmVhZE9ubHkocmVxdWVzdCwg
YXR0cmlidXRlc1tpZHhdKTsKKyAgICAgICAgfSwgIkNoZWNrICIgKyBhdHRyaWJ1dGVzW2lkeF0g
KyAiIGF0dHJpYnV0ZSIpOworICAgICAgfQorICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvYXV0aGVudGljYXRpb24ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvYXV0aGVu
dGljYXRpb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTA2ZDE3OWU1OGViYmJiMGI0Yjk3ZjcxYzQ3NWQ0OTI3
ZDNhNWNmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9hdXRoZW50aWNhdGlvbi5weQpAQCAt
MCwwICsxLDE1IEBACitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgdXNlciA9IHJl
cXVlc3QuYXV0aC51c2VybmFtZQorICAgIHBhc3N3b3JkID0gcmVxdWVzdC5hdXRoLnBhc3N3b3Jk
CisKKyAgICBpZiB1c2VyID09ICJ1c2VyIiBhbmQgcGFzc3dvcmQgPT0gInBhc3N3b3JkIjoKKyAg
ICAgICAgcmV0dXJuICJBdXRoZW50aWNhdGlvbiBkb25lIgorCisgICAgcmVhbG0gPSAidGVzdCIK
KyAgICBpZiAicmVhbG0iIGluIHJlcXVlc3QuR0VUOgorICAgICAgICByZWFsbSA9IHJlcXVlc3Qu
R0VULmZpcnN0KCJyZWFsbSIpCisKKyAgICByZXR1cm4gKCg0MDEsICJVbmF1dGhvcml6ZWQiKSwK
KyAgICAgICAgICAgIFsoIldXVy1BdXRoZW50aWNhdGUiLCAnQmFzaWMgcmVhbG09IicgKyByZWFs
bSArICciJyldLAorICAgICAgICAgICAgIlBsZWFzZSBsb2dpbiB3aXRoIGNyZWRlbnRpYWxzICd1
c2VyJyBhbmQgJ3Bhc3N3b3JkJyIpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9jbGVhbi1zdGFzaC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc291cmNlcy9jbGVhbi1zdGFzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYWU3MzEwNTI2OTJlMDQ4YTA3
ZDY1YTZlMDE1ZmU1YTc2MzYyMDk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2NsZWFuLXN0
YXNoLnB5CkBAIC0wLDAgKzEsNiBAQAorZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAg
IHRva2VuID0gcmVxdWVzdC5HRVQuZmlyc3QoInRva2VuIikKKyAgICBpZiByZXF1ZXN0LnNlcnZl
ci5zdGFzaC50YWtlKHRva2VuKSBpcyBub3QgTm9uZToKKyAgICAgICAgcmV0dXJuICIxIgorICAg
IGVsc2U6CisgICAgICAgIHJldHVybiAiMCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9pbnNwZWN0LWhl
YWRlcnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0YWNlMThh
YjY0YjExZTljMDkwNTRjMDhiZTJkNGQyMmY3MDI2NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJj
ZXMvaW5zcGVjdC1oZWFkZXJzLnB5CkBAIC0wLDAgKzEsMjIgQEAKK2RlZiBtYWluKHJlcXVlc3Qs
IHJlc3BvbnNlKToKKyAgICBoZWFkZXJzID0gW10KKyAgICByZXF1ZXN0X2hlYWRlcnMgPSBbXQor
ICAgIGlmICJoZWFkZXJzIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgY2hlY2tlZF9oZWFkZXJz
ID0gcmVxdWVzdC5HRVQuZmlyc3QoImhlYWRlcnMiKS5zcGxpdCgifCIpCisgICAgICAgIGZvciBo
ZWFkZXIgaW4gY2hlY2tlZF9oZWFkZXJzOgorICAgICAgICAgIGlmIGhlYWRlciBpbiByZXF1ZXN0
LmhlYWRlcnM6CisgICAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgieC1yZXF1ZXN0LSIgKyBo
ZWFkZXIsIHJlcXVlc3QuaGVhZGVycy5nZXQoaGVhZGVyLCAiIikgKSkKKworICAgIGlmICJjb3Jz
IiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgaWYgIk9yaWdpbiIgaW4gcmVxdWVzdC5oZWFkZXJz
OgorICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1Pcmln
aW4iLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJPcmlnaW4iLCAiIikpKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4i
LCAiKiIpKQorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LUNy
ZWRlbnRpYWxzIiwgInRydWUiKSkKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1NZXRob2RzIiwgIkdFVCwgUE9TVCwgSEVBRCIpKQorICAgICAgICBleHBvc2Vk
X2hlYWRlcnMgPSBbIngtcmVxdWVzdC0iICsgaGVhZGVyIGZvciBoZWFkZXIgaW4gY2hlY2tlZF9o
ZWFkZXJzXQorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUV4cG9zZS1I
ZWFkZXJzIiwgIiwgIi5qb2luKGV4cG9zZWRfaGVhZGVycykpKQorICAgICAgICBoZWFkZXJzLmFw
cGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMiLCAiLCAiLmpvaW4ocmVxdWVzdC5o
ZWFkZXJzKSkpCisKKyAgICBoZWFkZXJzLmFwcGVuZCgoImNvbnRlbnQtdHlwZSIsICJ0ZXh0L3Bs
YWluIikpCisgICAgcmV0dXJuIGhlYWRlcnMsICIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvbWV0aG9k
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzb3VyY2VzL21ldGhvZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWM1NmRlNjk4YmI4ZjAxOTIyZDJk
ZDZjYzg4NjgyZTMxY2I2MzRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL21ldGhvZC5weQpA
QCAtMCwwICsxLDExIEBACitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgaGVhZGVy
cyA9IFtdCisgICAgaWYgImNvcnMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICBoZWFkZXJzLmFw
cGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICIqIikpCisgICAgICAgIGhlYWRl
cnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMiLCAidHJ1ZSIpKQor
ICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMiLCAi
R0VULCBQT1NULCBQVVQsIEZPTyIpKQorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1D
b250cm9sLUFsbG93LUhlYWRlcnMiLCAieC10ZXN0LCB4LWZvbyIpKQorICAgICAgICBoZWFkZXJz
LmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUV4cG9zZS1IZWFkZXJzIiwgIngtcmVxdWVzdC1tZXRo
b2QiKSkKKworICAgIGhlYWRlcnMuYXBwZW5kKCgieC1yZXF1ZXN0LW1ldGhvZCIsIHJlcXVlc3Qu
bWV0aG9kKSkKKyAgICByZXR1cm4gaGVhZGVycywgIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9wcmVm
bGlnaHQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNvdXJjZXMvcHJlZmxpZ2h0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyZGNlYmE2ODNkOGRm
NjlkMWViZmI3MDNhYzBjYjU5OWMwZTlkNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvcHJl
ZmxpZ2h0LnB5CkBAIC0wLDAgKzEsNTYgQEAKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToK
KyAgICBoZWFkZXJzID0gWygiQ29udGVudC1UeXBlIiwgInRleHQvcGxhaW4iKV0KKyAgICBzdGFz
aGVkX2RhdGEgPSB7J2NvbnRyb2xfcmVxdWVzdF9oZWFkZXJzJzogIiIsICdwcmVmbGlnaHQnOiAi
MCIsICdwcmVmbGlnaHRfcmVmZXJyZXInOiAiIn0KKworICAgIGlmICJvcmlnaW4iIGluIHJlcXVl
c3QuR0VUOgorICAgICAgICBmb3Igb3JpZ2luIGluIHJlcXVlc3QuR0VUWydvcmlnaW4nXS5zcGxp
dCgiLCAiKToKKyAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxs
b3ctT3JpZ2luIiwgb3JpZ2luKSkKKyAgICBlbHNlOgorICAgICAgICBoZWFkZXJzLmFwcGVuZCgo
IkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICIqIikpCisKKyAgICBpZiByZXF1ZXN0Lm1l
dGhvZCA9PSAiT1BUSU9OUyI6CisgICAgICAgIGlmIG5vdCAiQWNjZXNzLUNvbnRyb2wtUmVxdWVz
dC1NZXRob2QiIGluIHJlcXVlc3QuaGVhZGVyczoKKyAgICAgICAgICAgIHJlc3BvbnNlLnNldF9l
cnJvcig0MDAsICJObyBBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LU1ldGhvZCBoZWFkZXIiKQorICAg
ICAgICAgICAgcmV0dXJuICJFUlJPUjogTm8gYWNjZXNzLWNvbnRyb2wtcmVxdWVzdC1tZXRob2Qg
aW4gcHJlZmxpZ2h0ISIKKworICAgICAgICBpZiAiY29udHJvbF9yZXF1ZXN0X2hlYWRlcnMiIGlu
IHJlcXVlc3QuR0VUOgorICAgICAgICAgICAgc3Rhc2hlZF9kYXRhWydjb250cm9sX3JlcXVlc3Rf
aGVhZGVycyddID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1I
ZWFkZXJzIiwgIiIpCisKKyAgICAgICAgaWYgIm1heF9hZ2UiIGluIHJlcXVlc3QuR0VUOgorICAg
ICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1NYXgtQWdlIiwgcmVxdWVz
dC5HRVRbJ21heF9hZ2UnXSkpCisKKyAgICAgICAgaWYgImFsbG93X2hlYWRlcnMiIGluIHJlcXVl
c3QuR0VUOgorICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxv
dy1IZWFkZXJzIiwgcmVxdWVzdC5HRVRbJ2FsbG93X2hlYWRlcnMnXSkpCisKKyAgICAgICAgaWYg
ImFsbG93X21ldGhvZHMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICAgICAgaGVhZGVycy5hcHBl
bmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzIiwgcmVxdWVzdC5HRVRbJ2FsbG93X21l
dGhvZHMnXSkpCisKKyAgICAgICAgcHJlZmxpZ2h0X3N0YXR1cyA9IDIwMAorICAgICAgICBpZiAi
cHJlZmxpZ2h0X3N0YXR1cyIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgICAgICBwcmVmbGlnaHRf
c3RhdHVzID0gaW50KHJlcXVlc3QuR0VULmZpcnN0KCJwcmVmbGlnaHRfc3RhdHVzIikpCisKKyAg
ICAgICAgc3Rhc2hlZF9kYXRhWydwcmVmbGlnaHQnXSA9ICIxIgorICAgICAgICBzdGFzaGVkX2Rh
dGFbJ3ByZWZsaWdodF9yZWZlcnJlciddID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiUmVmZXJlciIs
ICIiKQorICAgICAgICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQocmVxdWVzdC5HRVQuZmlyc3Qo
InRva2VuIiksIHN0YXNoZWRfZGF0YSkKKworICAgICAgICByZXR1cm4gcHJlZmxpZ2h0X3N0YXR1
cywgaGVhZGVycywgIiIKKworICAgIHRva2VuID0gTm9uZQorICAgIGlmICJ0b2tlbiIgaW4gcmVx
dWVzdC5HRVQ6CisgICAgICAgIHRva2VuID0gcmVxdWVzdC5HRVQuZmlyc3QoInRva2VuIikKKyAg
ICAgICAgZGF0YSA9IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2UodG9rZW4pCisgICAgICAgIGlm
IGRhdGE6CisgICAgICAgICAgICBzdGFzaGVkX2RhdGEgPSBkYXRhCisKKyAgICAjdXNlIHgtKiBo
ZWFkZXJzIGZvciByZXR1cm5pbmcgdmFsdWUgdG8gYm9keWxlc3MgcmVzcG9uc2VzCisgICAgaGVh
ZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIsICJ4LWRpZC1wcmVm
bGlnaHQsIHgtY29udHJvbC1yZXF1ZXN0LWhlYWRlcnMsIHgtcmVmZXJyZXIsIHgtcHJlZmxpZ2h0
LXJlZmVycmVyLCB4LW9yaWdpbiIpKQorICAgIGhlYWRlcnMuYXBwZW5kKCgieC1kaWQtcHJlZmxp
Z2h0Iiwgc3Rhc2hlZF9kYXRhWydwcmVmbGlnaHQnXSkpCisgICAgaGVhZGVycy5hcHBlbmQoKCJ4
LWNvbnRyb2wtcmVxdWVzdC1oZWFkZXJzIiwgc3Rhc2hlZF9kYXRhWydjb250cm9sX3JlcXVlc3Rf
aGVhZGVycyddKSkKKyAgICBoZWFkZXJzLmFwcGVuZCgoIngtcHJlZmxpZ2h0LXJlZmVycmVyIiwg
c3Rhc2hlZF9kYXRhWydwcmVmbGlnaHRfcmVmZXJyZXInXSkpCisgICAgaGVhZGVycy5hcHBlbmQo
KCJ4LXJlZmVycmVyIiwgcmVxdWVzdC5oZWFkZXJzLmdldCgiUmVmZXJlciIsICIiKSApKQorICAg
IGhlYWRlcnMuYXBwZW5kKCgieC1vcmlnaW4iLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJPcmlnaW4i
LCAiIikgKSkKKworICAgIGlmIHRva2VuOgorICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0
KHRva2VuLCBzdGFzaGVkX2RhdGEpCisKKyAgICByZXR1cm4gaGVhZGVycywgIiIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc291cmNlcy9yZWRpcmVjdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9yZWRpcmVjdC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
NzY3YjIyM2FhY2NhMzY0NzE3M2U1MTdhNjIxMjFkMmQzZGQ1YmQyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzb3VyY2VzL3JlZGlyZWN0LnB5CkBAIC0wLDAgKzEsNDggQEAKK2RlZiBtYWluKHJlcXVlc3Qs
IHJlc3BvbnNlKToKKyAgICBzdGFzaGVkX2RhdGEgPSB7J2NvdW50JzogMCwgJ3ByZWZsaWdodCc6
ICIwIn0KKyAgICBzdGF0dXMgPSAzMDIKKyAgICBoZWFkZXJzID0gWygiQ29udGVudC1UeXBlIiwg
InRleHQvcGxhaW4iKSwKKyAgICAgICAgICAgICAgICgiQ2FjaGUtQ29udHJvbCIsICJuby1jYWNo
ZSIpLAorICAgICAgICAgICAgICAgKCJQcmFnbWEiLCAibm8tY2FjaGUiKSwKKyAgICAgICAgICAg
ICAgICgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgIioiKV0KKyAgICB0b2tlbiA9IE5v
bmUKKworICAgIGlmICJ0b2tlbiIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIHRva2VuID0gcmVx
dWVzdC5HRVQuZmlyc3QoInRva2VuIikKKyAgICAgICAgZGF0YSA9IHJlcXVlc3Quc2VydmVyLnN0
YXNoLnRha2UodG9rZW4pCisgICAgICAgIGlmIGRhdGE6CisgICAgICAgICAgICBzdGFzaGVkX2Rh
dGEgPSBkYXRhCisKKyAgICBpZiByZXF1ZXN0Lm1ldGhvZCA9PSAiT1BUSU9OUyI6CisgICAgICAg
IGlmICJhbGxvd19oZWFkZXJzIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgICAgIGhlYWRlcnMu
YXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsIHJlcXVlc3QuR0VUWydhbGxv
d19oZWFkZXJzJ10pKQorICAgICAgICBzdGFzaGVkX2RhdGFbJ3ByZWZsaWdodCddID0gIjEiCisg
ICAgICAgICNQcmVmbGlnaHQgaXMgbm90IHJlZGlyZWN0ZWQ6IHJldHVybiAyMDAKKyAgICAgICAg
aWYgbm90ICJyZWRpcmVjdF9wcmVmbGlnaHQiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICAgICAg
aWYgdG9rZW46CisgICAgICAgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dChyZXF1ZXN0
LkdFVC5maXJzdCgidG9rZW4iKSwgc3Rhc2hlZF9kYXRhKQorICAgICAgICAgICAgcmV0dXJuIDIw
MCwgaGVhZGVycywgIiIKKworICAgIGlmICJyZWRpcmVjdF9zdGF0dXMiIGluIHJlcXVlc3QuR0VU
OgorICAgICAgICBzdGF0dXMgPSBpbnQocmVxdWVzdC5HRVRbJ3JlZGlyZWN0X3N0YXR1cyddKQor
CisgICAgc3Rhc2hlZF9kYXRhWydjb3VudCddICs9IDEKKworICAgICNrZWVwIHVybCBwYXJhbWV0
ZXJzIGluIGxvY2F0aW9uCisgICAgdXJsX3BhcmFtZXRlcnMgPSAiPyIgKyAiJiIuam9pbihtYXAo
bGFtYmRhIHg6IHhbMF1bMF0gKyAiPSIgKyB4WzFdWzBdLCByZXF1ZXN0LkdFVC5pdGVtcygpKSkK
KyAgICAjbWFrZSBzdXJlIGxvY2F0aW9uIGNoYW5nZXMgZHVyaW5nIHJlZGlyZWN0aW9uIGxvb3AK
KyAgICB1cmxfcGFyYW1ldGVycyArPSAiJmNvdW50PSIgKyBzdHIoc3Rhc2hlZF9kYXRhWydjb3Vu
dCddKQorCisgICAgaWYgImxvY2F0aW9uIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgaGVhZGVy
cy5hcHBlbmQoKCJMb2NhdGlvbiIsIHJlcXVlc3QuR0VUWydsb2NhdGlvbiddICsgdXJsX3BhcmFt
ZXRlcnMpKQorCisgICAgaWYgdG9rZW46CisgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1
dChyZXF1ZXN0LkdFVC5maXJzdCgidG9rZW4iKSwgc3Rhc2hlZF9kYXRhKQorICAgICAgICBpZiAi
bWF4X2NvdW50IiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgICAgIG1heF9jb3VudCA9ICBpbnQo
cmVxdWVzdC5HRVRbJ21heF9jb3VudCddKQorICAgICAgICAgICAgI3N0b3AgcmVkaXJlY3Rpbmcg
YW5kIHJldHVybiBjb3VudAorICAgICAgICAgICAgaWYgc3Rhc2hlZF9kYXRhWydjb3VudCddID4g
bWF4X2NvdW50OgorICAgICAgICAgICAgICAgICMgLTEgYmVjYXVzZSB0aGUgbGFzdCBpcyBub3Qg
YSByZWRpcmVjdGlvbgorICAgICAgICAgICAgICAgIHJldHVybiBzdHIoc3Rhc2hlZF9kYXRhWydj
b3VudCddIC0gMSkKKworICAgIHJldHVybiBzdGF0dXMsIGhlYWRlcnMsICIiCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNvdXJjZXMvdG9wLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy90b3AudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzYTMxNTdkMTRk
OTA4MWVkMDFjZDc5OTI4Nzg5OTgyMmUxOTUyM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMv
dG9wLnR4dApAQCAtMCwwICsxIEBACit0b3AKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNvdXJjZXMvdHJpY2tsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy90cmlja2xlLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBlNzA5NDQ1YzU5OGMxODc3MjJjOGY1MGY2YjE2MmEyNTJhZGFiYWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNvdXJjZXMvdHJpY2tsZS5weQpAQCAtMCwwICsxLDEyIEBACitpbXBvcnQgdGltZQor
CitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgZGVsYXkgPSBmbG9hdChyZXF1ZXN0
LkdFVC5maXJzdCgibXMiLCA1MDApKSAvIDFFMworICAgIGNvdW50ID0gaW50KHJlcXVlc3QuR0VU
LmZpcnN0KCJjb3VudCIsIDUwKSkKKyAgICB0aW1lLnNsZWVwKGRlbGF5KQorICAgIHJlc3BvbnNl
LmhlYWRlcnMuc2V0KCJDb250ZW50LXR5cGUiLCAidGV4dC9wbGFpbiIpCisgICAgcmVzcG9uc2Uu
d3JpdGVfc3RhdHVzX2hlYWRlcnMoKQorICAgIHRpbWUuc2xlZXAoZGVsYXkpOworICAgIGZvciBp
IGluIHhyYW5nZShjb3VudCk6CisgICAgICAgIHJlc3BvbnNlLndyaXRlci53cml0ZV9jb250ZW50
KCJURVNUX1RSSUNLTEVcbiIpCisgICAgICAgIHRpbWUuc2xlZXAoZGVsYXkpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNvdXJjZXMvdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvdXRpbHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ5MjkzNTYy
NGQ5MjI4NmI0YWU3OTE5N2U4ZDYwYjRjNjQ5NWQwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNl
cy91dGlscy5qcwpAQCAtMCwwICsxLDY2IEBACit2YXIgaW5Xb3JrZXIgPSBmYWxzZTsKK3ZhciBS
RVNPVVJDRVNfRElSID0gIi4uL3Jlc291cmNlcy8iOworCit0cnkgeworICBpbldvcmtlciA9ICEo
c2VsZiBpbnN0YW5jZW9mIFdpbmRvdyk7Cit9IGNhdGNoIChlKSB7CisgIGluV29ya2VyID0gdHJ1
ZTsKK30KKworZnVuY3Rpb24gZGlybmFtZShwYXRoKSB7CisgICAgcmV0dXJuIHBhdGgucmVwbGFj
ZSgvXC9bXlwvXSokLywgJy8nKQorfQorCitmdW5jdGlvbiBjaGVja1JlcXVlc3QocmVxdWVzdCwg
RXhwZWN0ZWRWYWx1ZXNEaWN0KSB7CisgIGZvciAodmFyIGF0dHJpYnV0ZSBpbiBFeHBlY3RlZFZh
bHVlc0RpY3QpIHsKKyAgICBzd2l0Y2goYXR0cmlidXRlKSB7CisgICAgICBjYXNlICJoZWFkZXJz
IjoKKyAgICAgICAgICBmb3IgKHZhciBrZXkgb2YgRXhwZWN0ZWRWYWx1ZXNEaWN0WyJoZWFkZXJz
Il0ua2V5cygpKQorICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0WyJoZWFkZXJzIl0u
Z2V0KGtleSksIEV4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmdldChrZXkpLAorICAgICAg
ICAgICAgICAiQ2hlY2sgaGVhZGVycyBhdHRyaWJ1dGUgaGFzICIgKyBrZXkgKyAiOiIgKyBFeHBl
Y3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5nZXQoa2V5KSk7CisgICAgICAgIGJyZWFrOworCisg
ICAgICBjYXNlICJib2R5IjoKKyAgICAgICAgLy9mb3IgY2hlY2tpbmcgYm9keSdzIGNvbnRlbnQs
IGEgZGVkaWNhdGVkIGFzeW5jcm9ub3VzL3Byb21pc2UgdGVzdCBzaG91bGQgYmUgdXNlZAorICAg
ICAgICBhc3NlcnRfdHJ1ZShyZXF1ZXN0WyJoZWFkZXJzIl0uaGFzKCJDb250ZW50LVR5cGUiKSAs
ICJDaGVjayByZXF1ZXN0IGhhcyBib2R5IHVzaW5nIENvbnRlbnQtVHlwZSBoZWFkZXIiKQorICAg
ICAgICBicmVhazsKKworICAgICAgY2FzZSAibWV0aG9kIjoKKyAgICAgIGNhc2UgInJlZmVycmVy
IjoKKyAgICAgIGNhc2UgInJlZmVycmVyUG9saWN5IjoKKyAgICAgIGNhc2UgImNyZWRlbnRpYWxz
IjoKKyAgICAgIGNhc2UgImNhY2hlIjoKKyAgICAgIGNhc2UgInJlZGlyZWN0IjoKKyAgICAgIGNh
c2UgImludGVncml0eSI6CisgICAgICBjYXNlICJ1cmwiOgorICAgICAgY2FzZSAiZGVzdGluYXRp
b24iOgorICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3RbYXR0cmlidXRlXSwgRXhwZWN0ZWRW
YWx1ZXNEaWN0W2F0dHJpYnV0ZV0sICJDaGVjayAiICsgYXR0cmlidXRlICsgIiBhdHRyaWJ1dGUi
KQorICAgICAgICBicmVhazsKKworICAgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICB9Cit9CisKKy8vY2hlY2sgcmVhZGVyJ3MgdGV4dCBjb250ZW50IGluIGFuIGFzeW5jcm9u
b3VzIHRlc3QKK2Z1bmN0aW9uIHJlYWRUZXh0U3RyZWFtKHJlYWRlciwgYXN5bmNUZXN0LCBleHBl
Y3RlZFZhbHVlLCByZXRyaWV2ZWRUZXh0KSB7CisgIGlmICghcmV0cmlldmVkVGV4dCkKKyAgICBy
ZXRyaWV2ZWRUZXh0ID0gIiI7CisgIHJlYWRlci5yZWFkKCkudGhlbihmdW5jdGlvbihkYXRhKSB7
CisgICAgaWYgKCFkYXRhLmRvbmUpIHsKKyAgICAgIHZhciBkZWNvZGVyID0gbmV3IFRleHREZWNv
ZGVyKCk7CisgICAgICByZXRyaWV2ZWRUZXh0ICs9IGRlY29kZXIuZGVjb2RlKGRhdGEudmFsdWUp
OworICAgICAgcmVhZFRleHRTdHJlYW0ocmVhZGVyLCBhc3luY1Rlc3QsIGV4cGVjdGVkVmFsdWUs
IHJldHJpZXZlZFRleHQpOworICAgIH0KKyAgICBhc3luY1Rlc3Quc3RlcChmdW5jdGlvbigpIHsK
KyAgICAgIGFzc2VydF9lcXVhbHMocmV0cmlldmVkVGV4dCwgZXhwZWN0ZWRWYWx1ZSwgIlJldHJp
ZXZlIGFuZCB2ZXJpZnkgc3RyZWFtIik7CisgICAgICBhc3luY1Rlc3QuZG9uZSgpOworICAgIH0p
OworICB9KS5jYXRjaChmdW5jdGlvbihlKSB7CisgICAgYXN5bmNUZXN0LnN0ZXAoZnVuY3Rpb24o
KSB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJDYW5ub3QgcmVhZCBzdHJlYW0gIiArIGUpOwor
ICAgICAgYXN5bmNUZXN0LmRvbmUoKTsKKyAgICB9KTsKKyAgfSk7Cit9ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVkLXdv
cmtlci1leHBlY3RlZC50eHQKaW5kZXggODM2MWExZDRkY2ZlNWNhOThmNmZjMWVjOTU4NjViZGRj
ZWQ4NzczNC4uYjE3YjZkM2IyMDFmZDQ1NGJjYTViMTNmNmY1M2NlNzI0MzlkNDY3NiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1k
ZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZ2xv
YmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0
CkBAIC02NCw2ICs2NCwxMSBAQCBQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnUmVhZGFibGVTdHJlYW0nKS5oYXNPd25QcgogUEFTUyBbV29ya2Vy
XSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlYWRhYmxlU3RyZWFt
JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIFtXb3JrZXJdIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVhZGFibGVTdHJlYW0nKS5lbnVtZXJh
YmxlIGlzIGZhbHNlCiBQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUmVhZGFibGVTdHJlYW0nKS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBb
V29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3Qn
KS52YWx1ZSBpcyBSZXF1ZXN0CitQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxz
ZQorUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgW1dvcmtlcl0g
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuZW51bWVy
YWJsZSBpcyBmYWxzZQorUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBbV29ya2Vy
XSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1VSTCcpLnZhbHVlIGlz
IFVSTAogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ1VSTCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBbV29ya2VyXSBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1VSTCcpLmhhc093blByb3Bl
cnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAyZGUz
ZmFlMjUxMzdiNzA4OWE4YTc2MzFjMmUwYjAyMTc3NTI5ZDJhLi5jMzczNGI3YTFlYTlmYWMzOTAz
ODcyNzQ0Mjk5Yjg1NGY5YTg5ZGMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vZ2xv
YmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAt
OTM4LDYgKzkzOCwxMSBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmhhc093blByb3BlcnR5KCdnZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNPd25Qcm9w
ZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5jb25m
aWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ1JlcXVlc3QnKS52YWx1ZSBpcyBSZXF1ZXN0CitQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBp
cyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jl
cXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBmYWxz
ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3Qn
KS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykudmFsdWUgaXMgUkdCQ29sb3IKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLmhhc093blByb3BlcnR5
KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ1JHQkNvbG9yJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1kZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRl
ZC13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDgzNjFhMWQ0ZGNmZTVjYTk4ZjZmYzFlYzk1ODY1
YmRkY2VkODc3MzQuLmIxN2I2ZDNiMjAxZmQ0NTRiY2E1YjEzZjZmNTNjZTcyNDM5ZDQ2NzYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC02NCw2ICs2NCwxMSBAQCBQQVNTIFtX
b3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVhZGFibGVT
dHJlYW0nKS5oYXNPd25QcgogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ1JlYWRhYmxlU3RyZWFtJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlz
IGZhbHNlCiBQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnUmVhZGFibGVTdHJlYW0nKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIFtXb3JrZXJd
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVhZGFibGVTdHJlYW0n
KS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS52YWx1ZSBpcyBSZXF1ZXN0CitQQVNTIFtX
b3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcp
Lmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgn
c2V0JykgaXMgZmFsc2UKK1BBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdSZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBbV29ya2Vy
XSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25m
aWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ1VSTCcpLnZhbHVlIGlzIFVSTAogUEFTUyBbV29ya2VyXSBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1VSTCcpLmhhc093blByb3BlcnR5KCdn
ZXQnKSBpcyBmYWxzZQogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1VSTCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3Jz
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2Rv
bS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGE4YzJh
N2IxNGI4NTExODY2NzlkNzg3OWQ2Y2IxZWY3YTlkMWI3NzQuLjA5OGQ2ZGYwOGM5ZDE4OTAyZjJm
ZmRkZjljNDMxMDFmNmI1NWU2M2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0
cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTk5OCw2ICs5OTgsMTEgQEAgUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNPd25Qcm9w
ZXJ0eSgnZ2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQ
cm9ncmVzc0V2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmVudW1l
cmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdQcm9ncmVzc0V2ZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykudmFsdWUgaXMgUmVxdWVz
dAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3Qn
KS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlz
IGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVx
dWVzdCcpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLnZhbHVlIGlz
IFJHQkNvbG9yCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
UkdCQ29sb3InKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pz
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMt
ZXhwZWN0ZWQudHh0CmluZGV4IDRhMDhmMGYzNjZlMTc3MTFkZWI4MGI1Y2UzYjg2NzA3YTYzNzg5
MTYuLjNjZTkyNDlmZWUwNDk1YzY2MDBjYmQ2NTdhMGNlZDRkNDM5YTgwYTkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9t
L2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTEwMTgsNiAr
MTAxOCwxMSBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
UHJvZ3Jlc3NFdmVudCcpLmhhc093blByb3BlcnR5KCdnZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgn
c2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdQcm9ncmVzc0V2ZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5jb25maWd1cmFi
bGUgaXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1JlcXVlc3QnKS52YWx1ZSBpcyBSZXF1ZXN0CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxz
ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3Qn
KS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25m
aWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ1JHQkNvbG9yJykudmFsdWUgaXMgUkdCQ29sb3IKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLmhhc093blByb3BlcnR5KCdnZXQn
KSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1JHQkNvbG9yJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1h
dmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dAppbmRleCA5YTVkYTcwNTJiMWU3OWRmYWY2MDJmMzI0MDgzYzY0MWE3ZGMyMGE1Li5hZjRhNjFm
ZmRlNmE4OGFhMDVhNTgxZGNjZWM4ZDg5ZDBhNDExZDI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlj
a3MvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAg
LTk5OCw2ICs5OTgsMTEgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2UKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuaGFzT3duUHJv
cGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuY29u
ZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSZXF1ZXN0JykudmFsdWUgaXMgUmVxdWVzdAorUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0Jykg
aXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdS
ZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVudW1lcmFibGUgaXMgZmFs
c2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0
JykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdSR0JDb2xvcicpLnZhbHVlIGlzIFJHQkNvbG9yCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS5oYXNPd25Qcm9wZXJ0
eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSR0JDb2xvcicpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29u
c3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0
ZWQudHh0CmluZGV4IGFiNGUxN2FjNTBiYjMyNTJlOTA4NjBiMjM4YWZjN2E4ZTU5MGY2ODguLmIy
OWNlNjVmNTgxMDJmNDk4MDg4ZjZkYmRhMzg3OTAxZjM3MzJjOWUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9z
ZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQK
QEAgLTEwNzMsNiArMTA3MywxMSBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUmVjdCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYQogUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlY3QnKS5oYXNPd25Qcm9wZXJ0
eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSZWN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlY3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS52YWx1
ZSBpcyBSZXF1ZXN0CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0
eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1
ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1NRTEV4Y2Vw
dGlvbicpLnZhbHVlIGlzIFNRTEV4Y2VwdGlvbgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1NRTEV4Y2VwdGlvbicpLmhhc093blByb3BlcnR5KCdnZXQnKSBp
cyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1NR
TEV4Y2VwdGlvbicpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDI2MmQwZDkxMjFj
ZWFjYTMzMTVkMTM1MGUzNGQ0NzM0OTBkYWFkNjMuLmI3ZWE4MTkwZDNkY2M5MDZmNDY1ZTRmZjIw
ZmNhZGJhYTEwOWU5ZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRl
cy1leHBlY3RlZC50eHQKQEAgLTEwMjMsNiArMTAyMywxMSBAQCBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmhhc093blByb3BlcnR5
KCdnZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dy
ZXNzRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuZW51bWVyYWJs
ZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1Byb2dyZXNzRXZlbnQnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS52YWx1ZSBpcyBSZXF1ZXN0CitQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhh
c093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFs
c2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0
JykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykudmFsdWUgaXMgUkdC
Q29sb3IKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JD
b2xvcicpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykuaGFzT3duUHJvcGVydHkoJ3Nl
dCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9t
L2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBl
Y3RlZC50eHQKaW5kZXggMzFlOGNhZjE1NDFjMWM0ZjZjNDVkYTE1YjNhYmU3ZjUyMzU2ODRlYS4u
YmZjYjIyYjJmYTg5MTIzZTUzMzgwY2Y2ODE2NTE1ZGE2ZTNhYTYyMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xv
YmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApAQCAtODczLDYgKzg3Mywx
MSBAQCBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jl
c3NFdmVudCcpLmhhc093blByb3BlcnR5KCdnZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0Jykg
aXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQ
cm9ncmVzc0V2ZW50JykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5jb25maWd1cmFibGUgaXMg
dHJ1ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVl
c3QnKS52YWx1ZSBpcyBSZXF1ZXN0CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQorUEFT
UyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNP
d25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5jb25maWd1cmFi
bGUgaXMgdHJ1ZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1JHQkNvbG9yJykudmFsdWUgaXMgUkdCQ29sb3IKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBm
YWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNv
bG9yJykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270214</attachid>
            <date>2016-01-29 08:44:22 -0800</date>
            <delta_ts>2016-02-01 02:08:44 -0800</delta_ts>
            <desc>Updated according review</desc>
            <filename>bug-153437-20160129174356.patch</filename>
            <type>text/plain</type>
            <size>162230</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1NzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY2OGVmYTg0YzQ1OThi
OTU0ZDc5NTRiYjE4ODY0M2JkZTQ0ODk1NC4uOWJiNTM3N2EyYzRmMjU1MDVlM2FjNWZmMWNhOTNl
YzQxNGZkOTViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMSBAQAorMjAxNi0wMS0yNiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtGZXRj
aCBBUEldIEltcGxlbWVudCBGZXRjaCBBUEkgUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNDM3CisKKyAgICAgICAgQWRkZWQgc3VwcG9y
dCBmb3IgRmV0Y2ggUmVxdWVzdCBhbmQgQm9keS4KKyAgICAgICAgQm9keSBpcyBzaGFyaW5nIGZ1
bmN0aW9uYWxpdHkgYmV0d2VlbiBSZXF1ZXN0IGFuZCBSZXNwb25zZS4KKyAgICAgICAgQ29udmVy
c2lvbiBiZXR3ZWVuIHZhcmlvdXMgYm9keSB0eXBlcyBhcmUgbm90IGltcGxlbWVudGVkIHlldC4K
KworICAgICAgICBBZGRlZCBhIEZldGNoT3B0aW9ucyBjbGFzcy4gT3B0aW9ucyBpbiB0aGlzIGNs
YXNzIGFyZSBwYXJ0aWFsbHkgcmVkdW5kYW50IHdpdGggUmVzb3VyY2VMb2FkZXJPcHRpb25zLgor
CisgICAgICAgIEZpeGluZyBidWcgaW4gSGVhZGVycyBjb25zdHJ1Y3Rvci4KKyAgICAgICAgTWFr
aW5nIGVycm9yIHJlcG9ydGluZyBpbiBjYXNlIG9mIG1vZGlmeWluZyBoZWFkZXJzIGNvbXBsaWFu
dCB3aXRoIHRoZSBzcGVjLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3RzOiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtY2xvbmUuc3ViLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1l
Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQuaHRtbAorICAgICAgICAgICAgICAgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWVy
cm9yLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmh0bWwKKyAgICAgICAgICAgICAgIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1p
ZGwuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAxLnN1Yi5odG1sCisgICAgICAgICAgICAg
ICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVl
c3QtaW5pdC0wMDIuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAzLnN1Yi5odG1sCisgICAg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmluaXRCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoQm9keTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpwcm9jZXNzSWZF
bXB0eU9yRGlzdHVyYmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6YXJyYXlCdWZm
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpmb3JtRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpGZXRjaEJvZHk6OmJsb2IpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojp0
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6anNvbik6CisgICAgICAgICogTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHkuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJv
ZHk6On5GZXRjaEJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojppc0VtcHR5KToK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6aXNEaXN0dXJiZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6RmV0Y2hCb2R5OjpzZXREaXN0dXJiZWQpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hC
b2R5OjpzZXRNaW1lVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6Om1pbWVUeXBl
KToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNh
bldyaXRlSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6YXBwZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZldGNoSGVhZGVyczo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6
ZmlsbCk6IEhlbHBlciByb3V0aW5lIGltcGxlbWVudGluZyBodHRwczovL2ZldGNoLnNwZWMud2hh
dHdnLm9yZy8jY29uY2VwdC1oZWFkZXJzLWZpbGwKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0Zl
dGNoSGVhZGVycy5oOiBBZGRpbmcgaGVhZGVyIGdldHRlci9zZXR0ZXIgZm9yIEZldGNoUmVxdWVz
dC4KKyAgICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6ZmFzdEdldCk6CisgICAgICAgIChX
ZWJDb3JlOjpGZXRjaEhlYWRlcnM6OmZhc3RTZXQpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gv
RmV0Y2hIZWFkZXJzLmpzOiBGaXhpbmcgYnVnIGluIGNvbnN0cnVjdG9yIChjb3ZlcmVkIGJ5IG1v
ZGlmaWVkIGhlYWRlcnMtYmFzYy5odG1sIHRlc3QpLgorICAgICAgICAoaW5pdGlhbGl6ZUZldGNo
SGVhZGVycyk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaE9wdGlvbnMuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkZldGNoT3B0aW9ucyk6CisgICAgICAg
IChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hP
cHRpb25zOjpkZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6Om1v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpjcmVkZW50aWFscyk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OmNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoT3B0aW9uczo6cmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpy
ZWZlcnJlclBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OnNldFR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpzZXREZXN0aW5hdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OnNldE1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmV0Y2hPcHRpb25zOjpzZXRDcmVkZW50aWFscyk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9w
dGlvbnM6OnNldENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoT3B0aW9uczo6c2V0UmVk
aXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpzZXRSZWZlcnJlclBvbGlj
eSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoUmVxdWVzdDo6RmV0Y2hSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVx
dWVzdDo6aW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OnNldFJlZmVycmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6c2V0UmVmZXJyZXJQb2xpY3kpOgor
ICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpzZXRNb2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZldGNoUmVxdWVzdDo6c2V0Q3JlZGVudGlhbHMpOgorICAgICAgICAoV2ViQ29yZTo6RmV0
Y2hSZXF1ZXN0OjpzZXRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OnNl
dFJlZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6dHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmRlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkZldGNoUmVxdWVzdDo6cmVmZXJyZXJQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6RmV0
Y2hSZXF1ZXN0OjpyZWZlcnJlcik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6Om1v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpjcmVkZW50aWFscyk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoUmVxdWVzdDo6cmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0Ojpz
ZXRNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpjbG9uZSk6CisgICAg
ICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpGZXRjaFJlcXVlc3Q6Om1ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVl
c3Q6OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmludGVncml0eSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmhlYWRlcnMpOgorICAgICAgICAqIE1vZHVs
ZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0RpY3Rpb25hcnku
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnk6OmV4ZWNTdGF0ZSk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRGljdGlv
bmFyeTo6Y29udmVydFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnku
aDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRGljdGlvbmFyeTo6Z2V0KToKKwogMjAxNi0wMS0yOCAg
R3dhbmcgWW9vbiBId2FuZyAgPHlvb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVy
XSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVTeW5jTWVzc2FnZSBsZWFr
cyBHc3RDb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDU1OWMxYmFhYmY5YmJmYjU3YmY1
Nzk5NTIzNmMxZjU4ZGI3OGU1ZWQuLmY4NjUxOWU4MDA4ZDBkZDc0MDc5NjcxMmZiMzI3YjBkMWUx
ZDk3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNzIsNyArMTcyLDkgQEAgc2V0KFdlYkNv
cmVfTk9OX1NWR19JRExfRklMRVMKICAgICBNb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFnZXIu
aWRsCiAgICAgTW9kdWxlcy9iYXR0ZXJ5L05hdmlnYXRvckJhdHRlcnkuaWRsCiAKKyAgICBNb2R1
bGVzL2ZldGNoL0ZldGNoQm9keS5pZGwKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5p
ZGwKKyAgICBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGwKIAogICAgIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvbi5pZGwKQEAgLTgxNSw3ICs4MTcsOSBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9k
dWxlcy9iYXR0ZXJ5L0JhdHRlcnlTdGF0dXMuY3BwCiAgICAgTW9kdWxlcy9iYXR0ZXJ5L05hdmln
YXRvckJhdHRlcnkuY3BwCiAKKyAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKICAgICBN
b2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAKKyAgICBNb2R1bGVzL2ZldGNoL0ZldGNoUmVx
dWVzdC5jcHAKIAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwCiAgICAg
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcAppbmRleCAwMGYxOTAyYjQ0YzEzOTU3Yjg3MDQ4YzljZDRlYzUxZDZlYjcxYTYyLi42NDMy
ZmEzZGRkZGFhM2VmNjI0NzZhZjFlOTdlMzBhM2U0OTM1Mjk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCkBAIC0xNTQsNyArMTU0LDkgQEAKICNpbmNsdWRlICJKU0V2ZW50LmNwcCIKICNp
bmNsdWRlICJKU0V2ZW50U291cmNlLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0LmNwcCIK
KyNpbmNsdWRlICJKU0ZldGNoQm9keS5jcHAiCiAjaW5jbHVkZSAiSlNGZXRjaEhlYWRlcnMuY3Bw
IgorI2luY2x1ZGUgIkpTRmV0Y2hSZXF1ZXN0LmNwcCIKICNpbmNsdWRlICJKU0ZpbGUuY3BwIgog
I2luY2x1ZGUgIkpTRmlsZUVycm9yLmNwcCIKICNpbmNsdWRlICJKU0ZpbGVFeGNlcHRpb24uY3Bw
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggM2VlYjk5MzU4MWZjZTJkZWU0NDA5
NWNmZWU1NzQ1ZmYyMzFmZmY3ZS4uZjZiYWIzMzJlMzkyNGUxNzRhMWFjYmRkMjVmMWVmY2M4NWI0
MzgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC03OSw3ICs3OSw5IEBAIE5P
Tl9TVkdfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleU5lZWRlZEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hCb2R5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2ZldGNoL0ZldGNo
SGVhZGVycy5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3Qu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZEJ1dHRvbi5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5pZGwgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxYTVmMjM2MjYxZWQ0NGEx
MDA1NWFkZDJlNDU0NzNmM2M1ZTAwNzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKQEAgLTAsMCArMSwxODggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1l
cyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICog
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRmV0Y2hCb2R5LmgiCisKKyNpZiBFTkFCTEUoRkVUQ0hfQVBJKQorCisjaW5jbHVk
ZSAiRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJK
U0Jsb2IuaCIKKyNpbmNsdWRlICJKU0RPTUZvcm1EYXRhLmgiCisjaW5jbHVkZSA8cnVudGltZS9K
U09OT2JqZWN0Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRmV0Y2hCb2R5OjpGZXRjaEJv
ZHkoQmxvYiogYmxvYikKKyAgICA6IG1fdHlwZShUeXBlOjpCbG9iKQorICAgICwgbV9taW1lVHlw
ZShibG9iLT50eXBlKCkpCisgICAgLCBtX2Jsb2IoYmxvYikKK3sKKyAgICBBU1NFUlQoYmxvYik7
Cit9CisKK0ZldGNoQm9keTo6RmV0Y2hCb2R5KERPTUZvcm1EYXRhKiBmb3JtRGF0YSkKKyAgICA6
IG1fdHlwZShUeXBlOjpGb3JtRGF0YSkKKyAgICAsIG1fbWltZVR5cGUoQVNDSUlMaXRlcmFsKCJt
dWx0aXBhcnQvZm9ybS1kYXRhIikpCisgICAgLCBtX2Zvcm1EYXRhKGZvcm1EYXRhKQoreworICAg
IC8vIEZJWE1FOiBIYW5kbGUgdGhlIGJvdW5kYXJ5IHBhcmFtZXRlciBvZiBtdWx0aXBhcnQvZm9y
bS1kYXRhIE1JTUUgdHlwZS4KKyAgICBBU1NFUlQoZm9ybURhdGEpOworfQorCitGZXRjaEJvZHk6
OkZldGNoQm9keShjb25zdCBTdHJpbmcmIHRleHQpCisgICAgOiBtX3R5cGUoVHlwZTo6VGV4dCkK
KyAgICAsIG1fbWltZVR5cGUoQVNDSUlMaXRlcmFsKCJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgi
KSkKKyAgICAsIG1fdGV4dCh0ZXh0KQoreworfQorCitGZXRjaEJvZHkgRmV0Y2hCb2R5Ojpmcm9t
SlNWYWx1ZShKU0M6OkpTVmFsdWUgdmFsdWUsIEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkKK3sKKyAg
ICBpZiAodmFsdWUuaW5oZXJpdHMoSlNCbG9iOjppbmZvKCkpKQorICAgICAgICByZXR1cm4gRmV0
Y2hCb2R5KEpTQmxvYjo6dG9XcmFwcGVkKHZhbHVlKSk7CisgICAgaWYgKHZhbHVlLmluaGVyaXRz
KEpTRE9NRm9ybURhdGE6OmluZm8oKSkpCisgICAgICAgIHJldHVybiBGZXRjaEJvZHkoSlNET01G
b3JtRGF0YTo6dG9XcmFwcGVkKHZhbHVlKSk7CisgICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiBGZXRjaEJvZHkodmFsdWUudG9XVEZTdHJpbmcoJnN0YXRlKSk7CisgICAg
cmV0dXJuIEZldGNoQm9keSgpOworfQorCitGZXRjaEJvZHkgRmV0Y2hCb2R5Ojpmcm9tUmVxdWVz
dEJvZHkoRmV0Y2hCb2R5KiBib2R5KQoreworICAgIGlmICghYm9keSkKKyAgICAgICAgcmV0dXJu
IEZldGNoQm9keSgpOworCisgICAgRmV0Y2hCb2R5IHJlc3VsdDsKKyAgICByZXN1bHQubV90eXBl
ID0gYm9keS0+bV90eXBlOworICAgIHJlc3VsdC5tX21pbWVUeXBlID0gYm9keS0+bV9taW1lVHlw
ZTsKKworICAgIC8vIEZJWE1FOiBPbmNlIGltcGxlbWVudGF0aW9uIGlzIGNvbXBsZXRlZCwgY2hl
Y2sgd2hldGhlciB1c2luZyBhIG1vdmUgY29uc3RydWN0b3IgYW5kIHNldCBtX21pbWVUeXBlIHRv
IHRoZSBlbXB0eSBzdHJpbmcuCisgICAgcmVzdWx0Lm1fYmxvYiA9IFdURk1vdmUoYm9keS0+bV9i
bG9iKTsKKyAgICByZXN1bHQubV9mb3JtRGF0YSA9IFdURk1vdmUoYm9keS0+bV9mb3JtRGF0YSk7
CisgICAgcmVzdWx0Lm1fdGV4dCA9IFdURk1vdmUoYm9keS0+bV90ZXh0KTsKKworICAgIGJvZHkt
Pm1faXNEaXN0dXJiZWQgPSB0cnVlOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVD4gaW5saW5lIGJvb2wgRmV0Y2hCb2R5Ojpwcm9jZXNzSWZFbXB0eU9yRGlz
dHVyYmVkKERPTVByb21pc2U8VCwgRXhjZXB0aW9uQ29kZT4mIHByb21pc2UpCit7CisgICAgaWYg
KG1fdHlwZSA9PSBUeXBlOjpOb25lKSB7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShUKCkpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoaXNEaXN0dXJiZWQoKSkgewor
ICAgICAgICBwcm9taXNlLnJlamVjdChUeXBlRXJyb3IpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisgICAgbV9pc0Rpc3R1cmJlZCA9IHRydWU7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Cit2b2lkIEZldGNoQm9keTo6YXJyYXlCdWZmZXIoQXJyYXlCdWZmZXJQcm9taXNlJiYgcHJvbWlz
ZSkKK3sKKyAgICBpZiAocHJvY2Vzc0lmRW1wdHlPckRpc3R1cmJlZChwcm9taXNlKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKG1fdHlwZSA9PSBUeXBlOjpUZXh0KSB7CisgICAgICAgIENT
dHJpbmcgZGF0YSA9IFVURjhFbmNvZGluZygpLmVuY29kZShtX3RleHQsIEVudGl0aWVzRm9yVW5l
bmNvZGFibGVzKTsKKyAgICAgICAgVmVjdG9yPHVuc2lnbmVkIGNoYXI+IHZhbHVlKGRhdGEubGVu
Z3RoKCkpOworICAgICAgICAvLyBGSVhNRTogcmVmYWN0b3IgdGhpcyBjb2RlLgorICAgICAgICBt
ZW1jcHkodmFsdWUuZGF0YSgpLCBkYXRhLmRhdGEoKSwgZGF0YS5sZW5ndGgoKSk7CisgICAgICAg
IHByb21pc2UucmVzb2x2ZShXVEZNb3ZlKHZhbHVlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgLy8gRklYTUU6IFN1cHBvcnQgb3RoZXIgdHlwZXMuCisgICAgcHJvbWlzZS5yZWplY3Qo
MCk7Cit9CisKK3ZvaWQgRmV0Y2hCb2R5Ojpmb3JtRGF0YShGb3JtRGF0YVByb21pc2UmJiBwcm9t
aXNlKQoreworICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6Tm9uZSB8fCBpc0Rpc3R1cmJlZCgpKSB7
CisgICAgICAgIHByb21pc2UucmVqZWN0KFR5cGVFcnJvcik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgbV9pc0Rpc3R1cmJlZCA9IHRydWU7CisKKyAgICAvLyBGSVhNRTogU3VwcG9ydCBv
dGhlciB0eXBlcy4KKyAgICBwcm9taXNlLnJlamVjdCgwKTsKK30KKwordm9pZCBGZXRjaEJvZHk6
OmJsb2IoQmxvYlByb21pc2UmJiBwcm9taXNlKQoreworICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6
Tm9uZSkgeworICAgICAgICBwcm9taXNlLnJlc29sdmUobnVsbHB0cik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBpZiAocHJvY2Vzc0lmRW1wdHlPckRpc3R1cmJlZChwcm9taXNlKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFN1cHBvcnQgb3RoZXIgdHlwZXMuCisg
ICAgcHJvbWlzZS5yZWplY3QoMCk7Cit9CisKK3ZvaWQgRmV0Y2hCb2R5Ojp0ZXh0KFRleHRQcm9t
aXNlJiYgcHJvbWlzZSkKK3sKKyAgICBpZiAocHJvY2Vzc0lmRW1wdHlPckRpc3R1cmJlZChwcm9t
aXNlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fdHlwZSA9PSBUeXBlOjpUZXh0KSB7
CisgICAgICAgIHByb21pc2UucmVzb2x2ZShtX3RleHQpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIC8vIEZJWE1FOiBTdXBwb3J0IG90aGVyIHR5cGVzLgorICAgIHByb21pc2UucmVqZWN0
KDApOworfQorCit2b2lkIEZldGNoQm9keTo6anNvbihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpT
T05Qcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBpZiAoaXNEaXN0dXJiZWQoKSkgeworICAgICAg
ICBwcm9taXNlLnJlamVjdChUeXBlRXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IG1faXNEaXN0dXJiZWQgPSB0cnVlOworICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6VGV4dCkgewor
ICAgICAgICBKU0M6OkpTVmFsdWUgdmFsdWUgPSBKU0M6OkpTT05QYXJzZSgmc3RhdGUsIG1fdGV4
dCk7CisgICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAgICBwcm9taXNlLnJlamVjdChTWU5U
QVhfRVJSKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKHZhbHVl
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBGSVhNRTogU3VwcG9ydCBvdGhlciB0
eXBlcy4KKyAgICBwcm9taXNlLnJlamVjdCgwKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxF
KEZFVENIX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hCb2R5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ3MjA3NjQ1ODZjMmNlZGMxZGQ0MTBiODczMWZhYmJjZmY3YzU0MDMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oCkBAIC0w
LDAgKzEsMTAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IENhbm9uIEluYy4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBD
YW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICog
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBGZXRjaEJvZHlfaAorI2RlZmluZSBGZXRjaEJvZHlfaAorCisjaWYgRU5BQkxFKEZF
VENIX0FQSSkKKworI2luY2x1ZGUgIkJsb2IuaCIKKyNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgor
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgorCituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIEV4ZWNT
dGF0ZTsKK2NsYXNzIEpTVmFsdWU7Cit9OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERpY3Rpb25hcnk7Cit0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOworCitjbGFzcyBGZXRjaEJv
ZHkgeworcHVibGljOgorICAgIHR5cGVkZWYgRE9NUHJvbWlzZTxWZWN0b3I8dW5zaWduZWQgY2hh
cj4sIEV4Y2VwdGlvbkNvZGU+IEFycmF5QnVmZmVyUHJvbWlzZTsKKyAgICB2b2lkIGFycmF5QnVm
ZmVyKEFycmF5QnVmZmVyUHJvbWlzZSYmKTsKKworICAgIHR5cGVkZWYgRE9NUHJvbWlzZTxSZWZQ
dHI8RE9NRm9ybURhdGE+LCBFeGNlcHRpb25Db2RlPiBGb3JtRGF0YVByb21pc2U7CisgICAgdm9p
ZCBmb3JtRGF0YShGb3JtRGF0YVByb21pc2UmJik7CisKKyAgICB0eXBlZGVmIERPTVByb21pc2U8
UmVmUHRyPEJsb2I+LCBFeGNlcHRpb25Db2RlPiBCbG9iUHJvbWlzZTsKKyAgICB2b2lkIGJsb2Io
QmxvYlByb21pc2UmJik7CisKKyAgICB0eXBlZGVmIERPTVByb21pc2U8SlNDOjpKU1ZhbHVlLCBF
eGNlcHRpb25Db2RlPiBKU09OUHJvbWlzZTsKKyAgICB2b2lkIGpzb24oSlNDOjpFeGVjU3RhdGUm
LCBKU09OUHJvbWlzZSYmKTsKKworICAgIHR5cGVkZWYgRE9NUHJvbWlzZTxTdHJpbmcsIEV4Y2Vw
dGlvbkNvZGU+IFRleHRQcm9taXNlOworICAgIHZvaWQgdGV4dChUZXh0UHJvbWlzZSYmKTsKKwor
ICAgIGJvb2wgaXNEaXN0dXJiZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRGlzdHVyYmVkOyB9Cisg
ICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFR5cGU6Ok5vbmU7IH0K
KworICAgIHZvaWQgc2V0TWltZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkgeyBtX21pbWVU
eXBlID0gbWltZVR5cGU7IH0KKyAgICBTdHJpbmcgbWltZVR5cGUoKSBjb25zdCB7IHJldHVybiBt
X21pbWVUeXBlOyB9CisKKyAgICBzdGF0aWMgRmV0Y2hCb2R5IGZyb21KU1ZhbHVlKEpTQzo6SlNW
YWx1ZSwgSlNDOjpFeGVjU3RhdGUmKTsKKyAgICBzdGF0aWMgRmV0Y2hCb2R5IGZyb21SZXF1ZXN0
Qm9keShGZXRjaEJvZHkqKTsKKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBi
b29sIHByb2Nlc3NJZkVtcHR5T3JEaXN0dXJiZWQoRE9NUHJvbWlzZTxULCBFeGNlcHRpb25Db2Rl
PiYpOworCisgICAgZW51bSBjbGFzcyBUeXBlIHsKKyAgICAgICAgTm9uZSwKKyAgICAgICAgVGV4
dCwKKyAgICAgICAgQmxvYiwKKyAgICAgICAgRm9ybURhdGEKKyAgICB9OworCisgICAgRmV0Y2hC
b2R5KEJsb2IqKTsKKyAgICBGZXRjaEJvZHkoRE9NRm9ybURhdGEqKTsKKyAgICBGZXRjaEJvZHko
Y29uc3QgU3RyaW5nJik7CisgICAgRmV0Y2hCb2R5KCkgeyB9CisKKyAgICBUeXBlIG1fdHlwZSA9
IFR5cGU6Ok5vbmU7CisgICAgU3RyaW5nIG1fbWltZVR5cGU7CisgICAgYm9vbCBtX2lzRGlzdHVy
YmVkID0gZmFsc2U7CisKKyAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIEJ1ZmZlclNvdXJj
ZSBhbmQgVVJMU2VhcmNoUGFyYW1zLgorICAgIFJlZlB0cjxCbG9iPiBtX2Jsb2I7CisgICAgUmVm
UHRyPERPTUZvcm1EYXRhPiBtX2Zvcm1EYXRhOworICAgIFN0cmluZyBtX3RleHQ7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRkVUQ0hfQVBJKQorCisj
ZW5kaWYgLy8gRmV0Y2hCb2R5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hCb2R5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hC
b2R5LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mMzRiOTcxZTI1Zjg0YjI2Njk0MmFiNmUwY2QzNjRlODk1Y2Ex
MjMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRj
aEJvZHkuaWRsCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fu
b24gSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
LCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIHJlcXVpcmVk
IHRvIGJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5P
TiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAq
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9RkVUQ0hfQVBJLAorICAgIEdsb2JhbENv
bnRleHQ9RE9NV2luZG93Jldvcmtlckdsb2JhbFNjb3BlLAorICAgIEludGVyZmFjZU5hbWU9Qm9k
eSwKKyAgICBOb0ludGVyZmFjZU9iamVjdAorXQoraW50ZXJmYWNlIEZldGNoQm9keSB7CisgICAg
W0ltcGxlbWVudGVkQXM9aXNEaXN0dXJiZWRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGJv
ZHlVc2VkOworICAgIFtOZXdPYmplY3RdIFByb21pc2UgYXJyYXlCdWZmZXIoKTsKKyAgICBbTmV3
T2JqZWN0XSBQcm9taXNlIGJsb2IoKTsKKyAgICBbTmV3T2JqZWN0XSBQcm9taXNlIGZvcm1EYXRh
KCk7CisgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlLCBOZXdPYmplY3RdIFByb21pc2UganNvbigp
OworICAgIFtOZXdPYmplY3RdIFByb21pc2UgdGV4dCgpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcAppbmRleCBkZjkxMDIzNmRlNjgyODA1ZTNi
ZTI2YmJmMTRkNWE1NTk0NmRhZmIwLi4zMDUxNjM0MTkxZjQ5Mzk3ZmVjNWRlYjNiMDRjNDQ4ZDQz
MzZlMjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVh
ZGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMu
Y3BwCkBAIC0xMDEsMTIgKzEwMSwxNiBAQCBzdGF0aWMgYm9vbCBpc1NpbXBsZUhlYWRlcihjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgfQogfQogCi1zdGF0aWMg
Ym9vbCBjYW5Xcml0ZUhlYWRlcihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFs
dWUsIEZldGNoSGVhZGVyczo6R3VhcmQgZ3VhcmQpCitzdGF0aWMgYm9vbCBjYW5Xcml0ZUhlYWRl
cihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIEZldGNoSGVhZGVyczo6
R3VhcmQgZ3VhcmQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGlmICghaXNWYWxpZEhUVFBU
b2tlbihuYW1lKSB8fCAhaXNWYWxpZEhUVFBIZWFkZXJWYWx1ZSh2YWx1ZSkpCisgICAgaWYgKCFp
c1ZhbGlkSFRUUFRva2VuKG5hbWUpIHx8ICFpc1ZhbGlkSFRUUEhlYWRlclZhbHVlKHZhbHVlKSkg
eworICAgICAgICBlYyA9IFR5cGVFcnJvcjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
IChndWFyZCA9PSBGZXRjaEhlYWRlcnM6Okd1YXJkOjpJbW11dGFibGUpCisgICAgfQorICAgIGlm
IChndWFyZCA9PSBGZXRjaEhlYWRlcnM6Okd1YXJkOjpJbW11dGFibGUpIHsKKyAgICAgICAgZWMg
PSBUeXBlRXJyb3I7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgaWYgKGd1YXJk
ID09IEZldGNoSGVhZGVyczo6R3VhcmQ6OlJlcXVlc3QgJiYgaXNGb3JiaWRkZW5IZWFkZXJOYW1l
KG5hbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGd1YXJkID09IEZldGNoSGVh
ZGVyczo6R3VhcmQ6OlJlcXVlc3ROb0NvcnMgJiYgIWlzU2ltcGxlSGVhZGVyKG5hbWUsIHZhbHVl
KSkKQEAgLTExOSwxOSArMTIzLDE1IEBAIHN0YXRpYyBib29sIGNhbldyaXRlSGVhZGVyKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgRmV0Y2hIZWFkZXJzCiB2b2lkIEZl
dGNoSGVhZGVyczo6YXBwZW5kKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgU3RyaW5nIG5vcm1hbGl6ZWRWYWx1ZSA9IHN0
cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRUUFNwYWNlcyh2YWx1ZSk7Ci0gICAgaWYgKCFjYW5Xcml0
ZUhlYWRlcihuYW1lLCBub3JtYWxpemVkVmFsdWUsIG1fZ3VhcmQpKSB7Ci0gICAgICAgIGVjID0g
VHlwZUVycm9yOworICAgIGlmICghY2FuV3JpdGVIZWFkZXIobmFtZSwgbm9ybWFsaXplZFZhbHVl
LCBtX2d1YXJkLCBlYykpCiAgICAgICAgIHJldHVybjsKLSAgICB9CiAgICAgbV9oZWFkZXJzLmFk
ZChuYW1lLCBub3JtYWxpemVkVmFsdWUpOwogfQogCiB2b2lkIEZldGNoSGVhZGVyczo6cmVtb3Zl
KGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKCFjYW5X
cml0ZUhlYWRlcihuYW1lLCBTdHJpbmcoKSwgbV9ndWFyZCkpIHsKLSAgICAgICAgZWMgPSBUeXBl
RXJyb3I7CisgICAgaWYgKCFjYW5Xcml0ZUhlYWRlcihuYW1lLCBTdHJpbmcoKSwgbV9ndWFyZCwg
ZWMpKQogICAgICAgICByZXR1cm47Ci0gICAgfQogICAgIG1faGVhZGVycy5yZW1vdmUobmFtZSk7
CiB9CiAKQEAgLTE1NiwxMyArMTU2LDI5IEBAIGJvb2wgRmV0Y2hIZWFkZXJzOjpoYXMoY29uc3Qg
U3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHZvaWQgRmV0Y2hIZWFkZXJz
OjpzZXQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKICAgICBTdHJpbmcgbm9ybWFsaXplZFZhbHVlID0gc3RyaXBMZWFkaW5nQW5k
VHJhaWxpbmdIVFRQU3BhY2VzKHZhbHVlKTsKLSAgICBpZiAoIWNhbldyaXRlSGVhZGVyKG5hbWUs
IG5vcm1hbGl6ZWRWYWx1ZSwgbV9ndWFyZCkpIHsKLSAgICAgICAgZWMgPSBUeXBlRXJyb3I7Cisg
ICAgaWYgKCFjYW5Xcml0ZUhlYWRlcihuYW1lLCBub3JtYWxpemVkVmFsdWUsIG1fZ3VhcmQsIGVj
KSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KICAgICBtX2hlYWRlcnMuc2V0KG5hbWUsIG5vcm1h
bGl6ZWRWYWx1ZSk7CiB9CiAKK3ZvaWQgRmV0Y2hIZWFkZXJzOjpmaWxsKGNvbnN0IEZldGNoSGVh
ZGVycyogaGVhZGVycykKK3sKKyAgICBpZiAoIWhlYWRlcnMpCisgICAgICAgIHJldHVybjsKKwor
ICAgIEFTU0VSVChtX2d1YXJkICE9IEd1YXJkOjpJbW11dGFibGUpOworCisgICAgRXhjZXB0aW9u
Q29kZSBlYzsKKyAgICBmb3IgKGF1dG8mIGhlYWRlciA6IGhlYWRlcnMtPm1faGVhZGVycykgewor
ICAgICAgICBpZiAoY2FuV3JpdGVIZWFkZXIoaGVhZGVyLmtleSwgaGVhZGVyLnZhbHVlLCBtX2d1
YXJkLCBlYykpIHsKKyAgICAgICAgICAgIGlmIChoZWFkZXIua2V5QXNIVFRQSGVhZGVyTmFtZSkK
KyAgICAgICAgICAgICAgICBtX2hlYWRlcnMuYWRkKGhlYWRlci5rZXlBc0hUVFBIZWFkZXJOYW1l
LnZhbHVlKCksIGhlYWRlci52YWx1ZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgbV9oZWFkZXJzLmFkZChoZWFkZXIua2V5LCBoZWFkZXIudmFsdWUpOworICAgICAgICB9Cisg
ICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoRkVU
Q0hfQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhl
YWRlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmgKaW5k
ZXggZDViMGE1NmZiMDY2YWZjYThiM2Y5MGY4MmVlYmE4M2QwMjFlNWVlYS4uNTM2ODYyODgzMjZk
ZDc2MTNhOWViZjM4YmNiMDhkNGI0YmU5ZGNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoSGVhZGVycy5oCkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICB9Owog
CiAgICAgc3RhdGljIFJlZjxGZXRjaEhlYWRlcnM+IGNyZWF0ZShHdWFyZCBndWFyZCA9IEd1YXJk
OjpOb25lKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEZldGNoSGVhZGVycyhndWFyZCkpOyB9Cisg
ICAgc3RhdGljIFJlZjxGZXRjaEhlYWRlcnM+IGNyZWF0ZShjb25zdCBGZXRjaEhlYWRlcnMmIGhl
YWRlcnMpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmV0Y2hIZWFkZXJzKGhlYWRlcnMubV9ndWFy
ZCwgaGVhZGVycy5tX2hlYWRlcnMpKTsgfQogCiAgICAgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBy
ZW1vdmUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNTYsOSArNTcsMTQgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2
YWx1ZSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBpbml0aWFsaXplV2l0aChjb25zdCBG
ZXRjaEhlYWRlcnMqLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBmaWxsKGNvbnN0IEZldGNo
SGVhZGVycyopOworCisgICAgU3RyaW5nIGZhc3RHZXQoSFRUUEhlYWRlck5hbWUgbmFtZSkgY29u
c3QgeyByZXR1cm4gbV9oZWFkZXJzLmdldChuYW1lKTsgfQorICAgIHZvaWQgZmFzdFNldChIVFRQ
SGVhZGVyTmFtZSBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKSB7IG1faGVhZGVycy5zZXQobmFt
ZSwgdmFsdWUpOyB9CiAKIHByaXZhdGU6CiAgICAgRmV0Y2hIZWFkZXJzKEd1YXJkIGd1YXJkKSA6
IG1fZ3VhcmQoZ3VhcmQpIHsgfQorICAgIEZldGNoSGVhZGVycyhHdWFyZCBndWFyZCwgY29uc3Qg
SFRUUEhlYWRlck1hcCYgaGVhZGVycykgOiBtX2d1YXJkKGd1YXJkKSwgbV9oZWFkZXJzKGhlYWRl
cnMpIHsgfQogCiAgICAgR3VhcmQgbV9ndWFyZDsKICAgICBIVFRQSGVhZGVyTWFwIG1faGVhZGVy
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJz
LmpzIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuanMKaW5kZXgg
MTUwYjI1MGI1Y2UyYzQ0ZGIyMzAzODM3ZGMwNDk4NmIzOWFjYTY1OS4uMDMwOWZlZDdmYzgwMmFj
OWM3ZmY3MGQxYTRhZWVjOTYzZDhkZWNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaEhlYWRlcnMuanMKQEAgLTQ3LDYgKzQ3LDcgQEAgZnVuY3Rpb24gaW5pdGlhbGl6
ZUZldGNoSGVhZGVycyhoZWFkZXJzSW5pdCkKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQFR5
cGVFcnJvcigiaGVhZGVyc0luaXQgc2VxdWVuY2UgaXRlbXMgc2hvdWxkIGNvbnRhaW4gdHdvIHZh
bHVlcyIpOwogICAgICAgICAgICAgdGhpcy5AYXBwZW5kRnJvbUpTKGhlYWRlclswXSwgaGVhZGVy
WzFdKTsKICAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKICAgICB9CiAKICAgICBAT2Jq
ZWN0LkBnZXRPd25Qcm9wZXJ0eU5hbWVzKGhlYWRlcnNJbml0KS5mb3JFYWNoKChuYW1lKSA9PiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoT3B0aW9ucy5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaE9wdGlvbnMuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hZTVlOGQ1ODUwZmMwZDEyYzk5NmRjZWFiYzExOWZmNmVhYmY1ZGU1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaE9wdGlvbnMuaApAQCAtMCww
ICsxLDEzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQ2Fu
b24gSW5jLiBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENBTk9OIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBDQU5PTiBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgRmV0Y2hPcHRpb25zX2gKKyNkZWZpbmUgRmV0Y2hPcHRpb25zX2gKKworI2lmIEVOQUJM
RShGRVRDSF9BUEkpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRmV0Y2hPcHRpb25z
IHsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNzIFR5cGUgeworICAgICAgICBEZWZhdWx0LAorICAg
ICAgICBBdWRpbywKKyAgICAgICAgRm9udCwKKyAgICAgICAgSW1hZ2UsCisgICAgICAgIFNjcmlw
dCwKKyAgICAgICAgU3R5bGUsCisgICAgICAgIFRyYWNrLAorICAgICAgICBWaWRlbworICAgIH07
CisgICAgZW51bSBjbGFzcyBEZXN0aW5hdGlvbiB7CisgICAgICAgIERlZmF1bHQsCisgICAgICAg
IERvY3VtZW50LAorICAgICAgICBTaGFyZWRXb3JrZXIsCisgICAgICAgIFN1YnJlc291cmNlLAor
ICAgICAgICBVbmtub3duLAorICAgICAgICBXb3JrZXIKKyAgICB9OworICAgIGVudW0gY2xhc3Mg
TW9kZSB7CisgICAgICAgIE5vQ29ycywKKyAgICAgICAgTmF2aWdhdGUsCisgICAgICAgIFNhbWVP
cmlnaW4sCisgICAgICAgIENvcnMKKyAgICB9OworICAgIGVudW0gY2xhc3MgQ3JlZGVudGlhbHMg
eworICAgICAgICBPbWl0LAorICAgICAgICBTYW1lT3JpZ2luLAorICAgICAgICBJbmNsdWRlCisg
ICAgfTsKKyAgICBlbnVtIGNsYXNzIENhY2hlIHsKKyAgICAgICAgRGVmYXVsdCwKKyAgICAgICAg
Tm9TdG9yZSwKKyAgICAgICAgUmVsb2FkLAorICAgICAgICBOb0NhY2hlLAorICAgICAgICBGb3Jj
ZUNhY2hlLAorICAgIH07CisgICAgZW51bSBjbGFzcyBSZWRpcmVjdCB7CisgICAgICAgIEZvbGxv
dywKKyAgICAgICAgRXJyb3IsCisgICAgICAgIE1hbnVhbAorICAgIH07CisgICAgZW51bSBjbGFz
cyBSZWZlcnJlclBvbGljeSB7CisgICAgICAgIEVtcHR5LAorICAgICAgICBOb1JlZmVycmVyLAor
ICAgICAgICBOb1JlZmVycmVyV2hlbkRvd25ncmFkZSwKKyAgICAgICAgT3JpZ2luT25seSwKKyAg
ICAgICAgT3JpZ2luV2hlbkNyb3NzT3JpZ2luLAorICAgICAgICBVbnNhZmVVUkwKKyAgICB9Owor
CisgICAgRmV0Y2hPcHRpb25zKCkgeyB9CisgICAgRmV0Y2hPcHRpb25zKFR5cGUsIERlc3RpbmF0
aW9uLCBNb2RlLCBDcmVkZW50aWFscywgQ2FjaGUsIFJlZGlyZWN0LCBSZWZlcnJlclBvbGljeSk7
CisKKyAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBEZXN0aW5h
dGlvbiBkZXN0aW5hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb247IH0KKyAgICBN
b2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KKyAgICBDcmVkZW50aWFscyBjcmVk
ZW50aWFscygpIGNvbnN0IHsgcmV0dXJuIG1fY3JlZGVudGlhbHM7IH0KKyAgICBDYWNoZSBjYWNo
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGU7IH0KKyAgICBSZWRpcmVjdCByZWRpcmVjdCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVkaXJlY3Q7IH0KKyAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBv
bGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJyZXJQb2xpY3k7IH0KKworICAgIHZvaWQgc2V0
VHlwZShUeXBlIHR5cGUpIHsgbV90eXBlID0gdHlwZTsgfQorICAgIHZvaWQgc2V0RGVzdGluYXRp
b24oRGVzdGluYXRpb24gZGVzdGluYXRpb24pIHsgbV9kZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9u
OyB9CisgICAgdm9pZCBzZXRNb2RlKE1vZGUgbW9kZSkgeyBtX21vZGUgPSBtb2RlOyB9CisgICAg
dm9pZCBzZXRDcmVkZW50aWFscyhDcmVkZW50aWFscyBjcmVkZW50aWFscykgeyBtX2NyZWRlbnRp
YWxzID0gY3JlZGVudGlhbHM7IH0KKyAgICB2b2lkIHNldENhY2hlKENhY2hlIGNhY2hlKSB7IG1f
Y2FjaGUgPSBjYWNoZTsgfQorICAgIHZvaWQgc2V0UmVkaXJlY3QoUmVkaXJlY3QgcmVkaXJlY3Qp
IHsgbV9yZWRpcmVjdCA9IHJlZGlyZWN0OyB9CisgICAgdm9pZCBzZXRSZWZlcnJlclBvbGljeShS
ZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSkgeyBtX3JlZmVycmVyUG9saWN5ID0gcmVmZXJy
ZXJQb2xpY3k7IH0KKworcHJpdmF0ZToKKyAgICBUeXBlIG1fdHlwZSA9IFR5cGU6OkRlZmF1bHQ7
CisgICAgRGVzdGluYXRpb24gbV9kZXN0aW5hdGlvbiA9IERlc3RpbmF0aW9uOjpEZWZhdWx0Owor
ICAgIE1vZGUgbV9tb2RlID0gTW9kZTo6Tm9Db3JzOworICAgIENyZWRlbnRpYWxzIG1fY3JlZGVu
dGlhbHMgPSBDcmVkZW50aWFsczo6T21pdDsKKyAgICBDYWNoZSBtX2NhY2hlID0gQ2FjaGU6OkRl
ZmF1bHQ7CisgICAgUmVkaXJlY3QgbV9yZWRpcmVjdCA9IFJlZGlyZWN0OjogRm9sbG93OworICAg
IFJlZmVycmVyUG9saWN5IG1fcmVmZXJyZXJQb2xpY3kgPSBSZWZlcnJlclBvbGljeTo6RW1wdHk7
Cit9OworCitpbmxpbmUgRmV0Y2hPcHRpb25zOjpGZXRjaE9wdGlvbnMoVHlwZSB0eXBlLCBEZXN0
aW5hdGlvbiBkZXN0aW5hdGlvbiwgTW9kZSBtb2RlLCBDcmVkZW50aWFscyBjcmVkZW50aWFscywg
Q2FjaGUgY2FjaGUsIFJlZGlyZWN0IHJlZGlyZWN0LCBSZWZlcnJlclBvbGljeSByZWZlcnJlclBv
bGljeSkKKyAgICA6IG1fdHlwZSh0eXBlKQorICAgICwgbV9kZXN0aW5hdGlvbihkZXN0aW5hdGlv
bikKKyAgICAsIG1fbW9kZShtb2RlKQorICAgICwgbV9jcmVkZW50aWFscyhjcmVkZW50aWFscykK
KyAgICAsIG1fY2FjaGUoY2FjaGUpCisgICAgLCBtX3JlZGlyZWN0KHJlZGlyZWN0KQorICAgICwg
bV9yZWZlcnJlclBvbGljeShyZWZlcnJlclBvbGljeSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEZFVENIX0FQSSkKKworI2VuZGlmIC8vIEZldGNo
T3B0aW9uc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzMwZWJjN2Y2NGI5ZGIyMWE5NWYyNjA0Nzc4NmQ1NTI2ZDI4ZTlmYQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1
ZXN0LmNwcApAQCAtMCwwICsxLDQ1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBDYW5v
biBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQs
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgcmVxdWlyZWQg
dG8gYmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIg
dGhlIG5hbWUgb2YgQ2Fub24gSW5jLiBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENBTk9O
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICog
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGZXRjaFJlcXVlc3Qu
aCIKKworI2lmIEVOQUJMRShGRVRDSF9BUEkpCisKKyNpbmNsdWRlICJEaWN0aW9uYXJ5LmgiCisj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCisjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGJvb2wgc2V0UmVmZXJyZXJQb2xp
Y3koRmV0Y2hPcHRpb25zJiBvcHRpb25zLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyUG9saWN5KQor
eworICAgIGlmIChyZWZlcnJlclBvbGljeS5pc0VtcHR5KCkpCisgICAgICAgIG9wdGlvbnMuc2V0
UmVmZXJyZXJQb2xpY3koRmV0Y2hPcHRpb25zOjpSZWZlcnJlclBvbGljeTo6RW1wdHkpOworICAg
IGVsc2UgaWYgKHJlZmVycmVyUG9saWN5ID09ICJuby1yZWZlcnJlciIpCisgICAgICAgIG9wdGlv
bnMuc2V0UmVmZXJyZXJQb2xpY3koRmV0Y2hPcHRpb25zOjpSZWZlcnJlclBvbGljeTo6Tm9SZWZl
cnJlcik7CisgICAgZWxzZSBpZiAocmVmZXJyZXJQb2xpY3kgPT0gIm5vLXJlZmVycmVyLXdoZW4t
ZG93bmdyYWRlIikKKyAgICAgICAgb3B0aW9ucy5zZXRSZWZlcnJlclBvbGljeShGZXRjaE9wdGlv
bnM6OlJlZmVycmVyUG9saWN5OjpOb1JlZmVycmVyV2hlbkRvd25ncmFkZSk7CisgICAgZWxzZSBp
ZiAocmVmZXJyZXJQb2xpY3kgPT0gIm9yaWdpbi1vbmx5IikKKyAgICAgICAgb3B0aW9ucy5zZXRS
ZWZlcnJlclBvbGljeShGZXRjaE9wdGlvbnM6OlJlZmVycmVyUG9saWN5OjpPcmlnaW5Pbmx5KTsK
KyAgICBlbHNlIGlmIChyZWZlcnJlclBvbGljeSA9PSAib3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2lu
IikKKyAgICAgICAgb3B0aW9ucy5zZXRSZWZlcnJlclBvbGljeShGZXRjaE9wdGlvbnM6OlJlZmVy
cmVyUG9saWN5OjpPcmlnaW5XaGVuQ3Jvc3NPcmlnaW4pOworICAgIGVsc2UgaWYgKHJlZmVycmVy
UG9saWN5ID09ICJ1bnNhZmUtdXJsIikKKyAgICAgICAgb3B0aW9ucy5zZXRSZWZlcnJlclBvbGlj
eShGZXRjaE9wdGlvbnM6OlJlZmVycmVyUG9saWN5OjpVbnNhZmVVUkwpOworICAgIGVsc2UKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbCBz
ZXRNb2RlKEZldGNoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgU3RyaW5nJiBtb2RlKQoreworICAg
IGlmIChtb2RlID09ICJuYXZpZ2F0ZSIpCisgICAgICAgIG9wdGlvbnMuc2V0TW9kZShGZXRjaE9w
dGlvbnM6Ok1vZGU6Ok5hdmlnYXRlKTsKKyAgICBlbHNlIGlmIChtb2RlID09ICJzYW1lLW9yaWdp
biIpCisgICAgICAgIG9wdGlvbnMuc2V0TW9kZShGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmln
aW4pOworICAgIGVsc2UgaWYgKG1vZGUgPT0gIm5vLWNvcnMiKQorICAgICAgICBvcHRpb25zLnNl
dE1vZGUoRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMpOworICAgIGVsc2UgaWYgKG1vZGUgPT0g
ImNvcnMiKQorICAgICAgICBvcHRpb25zLnNldE1vZGUoRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3Jz
KTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kworc3RhdGljIGJvb2wgc2V0Q3JlZGVudGlhbHMoRmV0Y2hPcHRpb25zJiBvcHRpb25zLCBjb25z
dCBTdHJpbmcmIGNyZWRlbnRpYWxzKQoreworICAgIGlmIChjcmVkZW50aWFscyA9PSAib21pdCIp
CisgICAgICAgIG9wdGlvbnMuc2V0Q3JlZGVudGlhbHMoRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFs
czo6T21pdCk7CisgICAgZWxzZSBpZiAoY3JlZGVudGlhbHMgPT0gInNhbWUtb3JpZ2luIikKKyAg
ICAgICAgb3B0aW9ucy5zZXRDcmVkZW50aWFscyhGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpT
YW1lT3JpZ2luKTsKKyAgICBlbHNlIGlmIChjcmVkZW50aWFscyA9PSAiaW5jbHVkZSIpCisgICAg
ICAgIG9wdGlvbnMuc2V0Q3JlZGVudGlhbHMoRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5j
bHVkZSk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK3N0YXRpYyBib29sIHNldENhY2hlKEZldGNoT3B0aW9ucyYgb3B0aW9ucywgY29uc3Qg
U3RyaW5nJiBjYWNoZSkKK3sKKyAgICBpZiAoY2FjaGUgPT0gImRlZmF1bHQiKQorICAgICAgICBv
cHRpb25zLnNldENhY2hlKEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1bHQpOworICAgIGVsc2Ug
aWYgKGNhY2hlID09ICJuby1zdG9yZSIpCisgICAgICAgIG9wdGlvbnMuc2V0Q2FjaGUoRmV0Y2hP
cHRpb25zOjpDYWNoZTo6Tm9TdG9yZSk7CisgICAgZWxzZSBpZiAoY2FjaGUgPT0gInJlbG9hZCIp
CisgICAgICAgIG9wdGlvbnMuc2V0Q2FjaGUoRmV0Y2hPcHRpb25zOjpDYWNoZTo6UmVsb2FkKTsK
KyAgICBlbHNlIGlmIChjYWNoZSA9PSAibm8tY2FjaGUiKQorICAgICAgICBvcHRpb25zLnNldENh
Y2hlKEZldGNoT3B0aW9uczo6Q2FjaGU6Ok5vQ2FjaGUpOworICAgIGVsc2UgaWYgKGNhY2hlID09
ICJmb3JjZS1jYWNoZSIpCisgICAgICAgIG9wdGlvbnMuc2V0Q2FjaGUoRmV0Y2hPcHRpb25zOjpD
YWNoZTo6Rm9yY2VDYWNoZSk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBib29sIHNldFJlZGlyZWN0KEZldGNoT3B0aW9ucyYg
b3B0aW9ucywgY29uc3QgU3RyaW5nJiByZWRpcmVjdCkKK3sKKyAgICBpZiAocmVkaXJlY3QgPT0g
ImZvbGxvdyIpCisgICAgICAgIG9wdGlvbnMuc2V0UmVkaXJlY3QoRmV0Y2hPcHRpb25zOjpSZWRp
cmVjdDo6Rm9sbG93KTsKKyAgICBlbHNlIGlmIChyZWRpcmVjdCA9PSAiZXJyb3IiKQorICAgICAg
ICBvcHRpb25zLnNldFJlZGlyZWN0KEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkVycm9yKTsKKyAg
ICBlbHNlIGlmIChyZWRpcmVjdCA9PSAibWFudWFsIikKKyAgICAgICAgb3B0aW9ucy5zZXRSZWRp
cmVjdChGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpNYW51YWwpOworICAgIGVsc2UKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbCBzZXRNZXRo
b2QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGluaXRNZXRob2QpCit7
CisgICAgaWYgKCFpc1ZhbGlkSFRUUFRva2VuKGluaXRNZXRob2QpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBTdHJpbmcgbWV0aG9kID0gaW5pdE1ldGhvZC5jb252ZXJ0VG9BU0NJSVVw
cGVyY2FzZSgpOworICAgIGlmIChtZXRob2QgPT0gIkNPTk5FQ1QiIHx8IG1ldGhvZCA9PSAiVFJB
Q0UiIHx8IG1ldGhvZCA9PSAiVFJBQ0siKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBy
ZXF1ZXN0LnNldEhUVFBNZXRob2QoKG1ldGhvZCA9PSAiREVMRVRFIiB8fCBtZXRob2QgPT0gIkdF
VCIgfHwgbWV0aG9kID09ICJIRUFEIiB8fCBtZXRob2QgPT0gIk9QVElPTlMiIHx8IG1ldGhvZCA9
PSAiUE9TVCIgfHwgbWV0aG9kID09ICJQVVQiKSA/IG1ldGhvZCA6IGluaXRNZXRob2QpOworCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBib29sIHNldFJlZmVycmVyKEZldGNoUmVxdWVz
dDo6SW50ZXJuYWxSZXF1ZXN0JiByZXF1ZXN0LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBjb25zdCBEaWN0aW9uYXJ5JiBpbml0KQoreworICAgIFN0cmluZyByZWZlcnJlcjsKKyAg
ICBpZiAoIWluaXQuZ2V0KCJyZWZlcnJlciIsIHJlZmVycmVyKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgaWYgKHJlZmVycmVyLmlzRW1wdHkoKSkgeworICAgICAgICByZXF1ZXN0LnJlZmVy
cmVyID0gQVNDSUlMaXRlcmFsKCJuby1yZWZlcnJlciIpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisgICAgLy8gRklYTUU6IFRpZ2h0ZW4gdGhlIFVSTCBwYXJzaW5nIGFsZ29yaXRobSBh
Y2NvcmRpbmcgaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LXVybC1wYXJzZXIu
CisgICAgVVJMIHJlZmVycmVyVVJMID0gY29udGV4dC5jb21wbGV0ZVVSTChyZWZlcnJlcik7Cisg
ICAgaWYgKCFyZWZlcnJlclVSTC5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGlmIChyZWZlcnJlclVSTC5wcm90b2NvbElzKCJhYm91dCIpICYmIHJlZmVycmVyVVJMLnBh
dGgoKSA9PSAiY2xpZW50IikgeworICAgICAgICByZXF1ZXN0LnJlZmVycmVyID0gQVNDSUlMaXRl
cmFsKCJjbGllbnQiKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKCEo
Y29udGV4dC5zZWN1cml0eU9yaWdpbigpICYmIGNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKS0+Y2Fu
UmVxdWVzdChyZWZlcnJlclVSTCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXF1
ZXN0LnJlZmVycmVyID0gcmVmZXJyZXJVUkwuc3RyaW5nKCk7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK3N0YXRpYyBib29sIGJ1aWxkT3B0aW9ucyhGZXRjaFJlcXVlc3Q6OkludGVybmFsUmVxdWVz
dCYgcmVxdWVzdCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgRGljdGlv
bmFyeSYgaW5pdCkKK3sKKyAgICBKU0M6OkpTVmFsdWUgd2luZG93OworICAgIGlmIChpbml0Lmdl
dCgid2luZG93Iiwgd2luZG93KSkgeworICAgICAgICBpZiAoIXdpbmRvdy5pc051bGwoKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIXNldFJlZmVycmVyKHJl
cXVlc3QsIGNvbnRleHQsIGluaXQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBTdHJp
bmcgdmFsdWU7CisgICAgaWYgKGluaXQuZ2V0KCJyZWZlcnJlclBvbGljeSIsIHZhbHVlKSAmJiAh
c2V0UmVmZXJyZXJQb2xpY3kocmVxdWVzdC5vcHRpb25zLCB2YWx1ZSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGlmIChpbml0LmdldCgibW9kZSIsIHZhbHVlKSAmJiAhc2V0TW9kZShy
ZXF1ZXN0Lm9wdGlvbnMsIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChy
ZXF1ZXN0Lm9wdGlvbnMubW9kZSgpID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChpbml0LmdldCgiY3JlZGVudGlhbHMiLCB2
YWx1ZSkgJiYgIXNldENyZWRlbnRpYWxzKHJlcXVlc3Qub3B0aW9ucywgdmFsdWUpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoaW5pdC5nZXQoImNhY2hlIiwgdmFsdWUpICYmICFz
ZXRDYWNoZShyZXF1ZXN0Lm9wdGlvbnMsIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKGluaXQuZ2V0KCJyZWRpcmVjdCIsIHZhbHVlKSAmJiAhc2V0UmVkaXJlY3QocmVx
dWVzdC5vcHRpb25zLCB2YWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGluaXQu
Z2V0KCJpbnRlZ3JpdHkiLCByZXF1ZXN0LmludGVncml0eSk7CisKKyAgICBpZiAoaW5pdC5nZXQo
Im1ldGhvZCIsIHZhbHVlKSAmJiAhc2V0TWV0aG9kKHJlcXVlc3QucmVxdWVzdCwgdmFsdWUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIFJl
ZlB0cjxGZXRjaEhlYWRlcnM+IGJ1aWxkSGVhZGVycyhjb25zdCBEaWN0aW9uYXJ5JiBpbml0LCBj
b25zdCBGZXRjaFJlcXVlc3Q6OkludGVybmFsUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgRmV0Y2hI
ZWFkZXJzKiBpbnB1dEhlYWRlcnMgPSBudWxscHRyKQoreworICAgIEZldGNoSGVhZGVyczo6R3Vh
cmQgZ3VhcmQgPSBGZXRjaEhlYWRlcnM6Okd1YXJkOjpSZXF1ZXN0OworICAgIGlmIChyZXF1ZXN0
Lm9wdGlvbnMubW9kZSgpID09IEZldGNoT3B0aW9uczo6TW9kZTo6Tm9Db3JzKSB7CisgICAgICAg
IGNvbnN0IFN0cmluZyYgbWV0aG9kID0gcmVxdWVzdC5yZXF1ZXN0Lmh0dHBNZXRob2QoKTsKKyAg
ICAgICAgaWYgKG1ldGhvZCAhPSAiR0VUIiAmJiBtZXRob2QgIT0gIlBPU1QiICYmIG1ldGhvZCAh
PSAiSEVBRCIpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgaWYgKCFyZXF1
ZXN0LmludGVncml0eS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICAgICAgZ3VhcmQgPSBGZXRjaEhlYWRlcnM6Okd1YXJkOjpSZXF1ZXN0Tm9Db3JzOworICAgIH0K
KworICAgIFJlZlB0cjxGZXRjaEhlYWRlcnM+IGluaXRpYWxIZWFkZXJzOworICAgIFJlZlB0cjxG
ZXRjaEhlYWRlcnM+IGhlYWRlcnMgPSBGZXRjaEhlYWRlcnM6OmNyZWF0ZShndWFyZCk7CisgICAg
aGVhZGVycy0+ZmlsbChpbml0LmdldCgiaGVhZGVycyIsIGluaXRpYWxIZWFkZXJzKSA/IGluaXRp
YWxIZWFkZXJzLmdldCgpIDogaW5wdXRIZWFkZXJzKTsKKworICAgIHJldHVybiBoZWFkZXJzOwor
fQorCitzdGF0aWMgRmV0Y2hCb2R5IGJ1aWxkQm9keShjb25zdCBEaWN0aW9uYXJ5JiBpbml0LCBG
ZXRjaEhlYWRlcnMmIGhlYWRlcnMsIEZldGNoQm9keSogaW5wdXRCb2R5ID0gbnVsbHB0cikKK3sK
KyAgICBKU0M6OkpTVmFsdWUgdmFsdWU7CisgICAgYm9vbCBoYXNJbml0Qm9keSA9IGluaXQuZ2V0
KCJib2R5IiwgdmFsdWUpOworICAgIEZldGNoQm9keSBib2R5ID0gaGFzSW5pdEJvZHkgPyBGZXRj
aEJvZHk6OmZyb21KU1ZhbHVlKHZhbHVlLCAqaW5pdC5leGVjU3RhdGUoKSkgOiBGZXRjaEJvZHk6
OmZyb21SZXF1ZXN0Qm9keShpbnB1dEJvZHkpOworCisgICAgU3RyaW5nIHR5cGUgPSBoZWFkZXJz
LmZhc3RHZXQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKTsKKyAgICBpZiAoaGFzSW5pdEJv
ZHkgJiYgdHlwZS5pc0VtcHR5KCkgJiYgIWJvZHkubWltZVR5cGUoKS5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgdHlwZSA9IGJvZHkubWltZVR5cGUoKTsKKyAgICAgICAgaGVhZGVycy5mYXN0U2V0KEhU
VFBIZWFkZXJOYW1lOjpDb250ZW50VHlwZSwgdHlwZSk7CisgICAgfQorICAgIGJvZHkuc2V0TWlt
ZVR5cGUodHlwZSk7CisgICAgcmV0dXJuIGJvZHk7Cit9CisKK3N0YXRpYyBib29sIHZhbGlkYXRl
Qm9keUFuZE1ldGhvZChjb25zdCBGZXRjaEJvZHkmIGJvZHksIGNvbnN0IEZldGNoUmVxdWVzdDo6
SW50ZXJuYWxSZXF1ZXN0JiBpbnRlcm5hbFJlcXVlc3QpCit7CisgICAgaWYgKGJvZHkuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gaW50ZXJuYWxSZXF1ZXN0LnJl
cXVlc3QuaHR0cE1ldGhvZCgpICE9ICJHRVQiICYmIGludGVybmFsUmVxdWVzdC5yZXF1ZXN0Lmh0
dHBNZXRob2QoKSAhPSAiSEVBRCI7Cit9CisKK1JlZlB0cjxGZXRjaFJlcXVlc3Q+IEZldGNoUmVx
dWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBEaWN0aW9uYXJ5JiBpbml0LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICAvLyBGSVhNRTogVGlnaHRlbiB0aGUgVVJMIHBhcnNpbmcgYWxnb3JpdGhtIGFjY29yZGluZyBo
dHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtdXJsLXBhcnNlci4KKyAgICBVUkwg
cmVxdWVzdFVSTCA9IGNvbnRleHQuY29tcGxldGVVUkwodXJsKTsKKyAgICBpZiAoIXJlcXVlc3RV
UkwuaXNWYWxpZCgpIHx8ICFyZXF1ZXN0VVJMLnVzZXIoKS5pc0VtcHR5KCkgfHwgIXJlcXVlc3RV
UkwucGFzcygpLmlzRW1wdHkoKSkgeworICAgICAgICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgRmV0Y2hSZXF1ZXN0OjpJbnRlcm5hbFJlcXVl
c3QgaW50ZXJuYWxSZXF1ZXN0OworICAgIGludGVybmFsUmVxdWVzdC5vcHRpb25zLnNldE1vZGUo
RmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsKKyAgICBpbnRlcm5hbFJlcXVlc3Qub3B0aW9ucy5z
ZXRDcmVkZW50aWFscyhGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0KTsKKyAgICBpbnRl
cm5hbFJlcXVlc3QucmVmZXJyZXIgPSBBU0NJSUxpdGVyYWwoImNsaWVudCIpOworICAgIGludGVy
bmFsUmVxdWVzdC5yZXF1ZXN0LnNldFVSTChyZXF1ZXN0VVJMKTsKKworICAgIGlmICghYnVpbGRP
cHRpb25zKGludGVybmFsUmVxdWVzdCwgY29udGV4dCwgaW5pdCkpIHsKKyAgICAgICAgZWMgPSBU
eXBlRXJyb3I7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIFJlZlB0cjxG
ZXRjaEhlYWRlcnM+IGhlYWRlcnMgPSBidWlsZEhlYWRlcnMoaW5pdCwgaW50ZXJuYWxSZXF1ZXN0
KTsKKyAgICBpZiAoIWhlYWRlcnMpIHsKKyAgICAgICAgZWMgPSBUeXBlRXJyb3I7CisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIEZldGNoQm9keSBib2R5ID0gYnVpbGRCb2R5
KGluaXQsICpoZWFkZXJzKTsKKyAgICBpZiAoIXZhbGlkYXRlQm9keUFuZE1ldGhvZChib2R5LCBp
bnRlcm5hbFJlcXVlc3QpKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGZXRjaFJlcXVl
c3QoV1RGTW92ZShib2R5KSwgaGVhZGVycy5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKGludGVy
bmFsUmVxdWVzdCkpKTsKK30KKworUmVmUHRyPEZldGNoUmVxdWVzdD4gRmV0Y2hSZXF1ZXN0Ojpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmV0Y2hSZXF1ZXN0KiBpbnB1
dCwgY29uc3QgRGljdGlvbmFyeSYgaW5pdCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgQVNT
RVJUKGlucHV0KTsKKworICAgIGlmIChpbnB1dC0+aXNEaXN0dXJiZWQoKSkgeworICAgICAgICBl
YyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgRmV0
Y2hSZXF1ZXN0OjpJbnRlcm5hbFJlcXVlc3QgaW50ZXJuYWxSZXF1ZXN0KGlucHV0LT5tX2ludGVy
bmFsUmVxdWVzdCk7CisKKyAgICBpZiAoIWJ1aWxkT3B0aW9ucyhpbnRlcm5hbFJlcXVlc3QsIGNv
bnRleHQsIGluaXQpKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9CisKKyAgICBSZWZQdHI8RmV0Y2hIZWFkZXJzPiBoZWFkZXJzID0gYnVp
bGRIZWFkZXJzKGluaXQsIGludGVybmFsUmVxdWVzdCwgaW5wdXQtPm1faGVhZGVycy5wdHIoKSk7
CisgICAgaWYgKCFoZWFkZXJzKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBGZXRjaEJvZHkgYm9keSA9IGJ1aWxkQm9keShp
bml0LCAqaGVhZGVycywgJmlucHV0LT5tX2JvZHkpOworICAgIGlmICghdmFsaWRhdGVCb2R5QW5k
TWV0aG9kKGJvZHksIGludGVybmFsUmVxdWVzdCkpIHsKKyAgICAgICAgZWMgPSBUeXBlRXJyb3I7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEZldGNoUmVxdWVzdChXVEZNb3ZlKGJvZHkpLCBoZWFkZXJzLnJlbGVhc2VOb25OdWxsKCks
IFdURk1vdmUoaW50ZXJuYWxSZXF1ZXN0KSkpOworfQorCitTdHJpbmcgRmV0Y2hSZXF1ZXN0Ojp0
eXBlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1faW50ZXJuYWxSZXF1ZXN0Lm9wdGlvbnMudHlw
ZSgpKSB7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlR5cGU6OkRlZmF1bHQ6CisgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6VHlwZTo6QXVkaW8gOgorICAg
ICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJhdWRpbyIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25z
OjpUeXBlOjpGb250IDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZm9udCIpOworICAg
IGNhc2UgRmV0Y2hPcHRpb25zOjpUeXBlOjpJbWFnZSA6CisgICAgICAgIHJldHVybiBBU0NJSUxp
dGVyYWwoImltYWdlIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlR5cGU6OlNjcmlwdCA6Cisg
ICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInNjcmlwdCIpOworICAgIGNhc2UgRmV0Y2hPcHRp
b25zOjpUeXBlOjpTdHlsZSA6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInN0eWxlIik7
CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlR5cGU6OlRyYWNrIDoKKyAgICAgICAgcmV0dXJuIEFT
Q0lJTGl0ZXJhbCgidHJhY2siKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6VHlwZTo6VmlkZW8g
OgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ2aWRlbyIpOworICAgIH07CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgRmV0
Y2hSZXF1ZXN0OjpkZXN0aW5hdGlvbigpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX2ludGVybmFs
UmVxdWVzdC5vcHRpb25zLmRlc3RpbmF0aW9uKCkpIHsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6
RGVzdGluYXRpb246OkRlZmF1bHQ6CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBjYXNl
IEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OkRvY3VtZW50OgorICAgICAgICByZXR1cm4gQVND
SUlMaXRlcmFsKCJkb2N1bWVudCIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlv
bjo6U2hhcmVkV29ya2VyOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzaGFyZWR3b3Jr
ZXIiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlN1YnJlc291cmNlOgor
ICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzdWJyZXNvdXJjZSIpOworICAgIGNhc2UgRmV0
Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6VW5rbm93bjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgidW5rbm93biIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbjo6V29y
a2VyOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJ3b3JrZXIiKTsKKyAgICB9CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
RmV0Y2hSZXF1ZXN0OjpyZWZlcnJlclBvbGljeSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX2lu
dGVybmFsUmVxdWVzdC5vcHRpb25zLnJlZmVycmVyUG9saWN5KCkpIHsKKyAgICBjYXNlIEZldGNo
T3B0aW9uczo6UmVmZXJyZXJQb2xpY3k6OkVtcHR5OgorICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlJlZmVycmVyUG9saWN5OjpOb1JlZmVycmVyOgorICAg
ICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJuby1yZWZlcnJlciIpOworICAgIGNhc2UgRmV0Y2hP
cHRpb25zOjpSZWZlcnJlclBvbGljeTo6Tm9SZWZlcnJlcldoZW5Eb3duZ3JhZGU6CisgICAgICAg
IHJldHVybiBBU0NJSUxpdGVyYWwoIm5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIik7CisgICAg
Y2FzZSBGZXRjaE9wdGlvbnM6OlJlZmVycmVyUG9saWN5OjpPcmlnaW5Pbmx5OgorICAgICAgICBy
ZXR1cm4gQVNDSUlMaXRlcmFsKCJvcmlnaW4tb25seSIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25z
OjpSZWZlcnJlclBvbGljeTo6T3JpZ2luV2hlbkNyb3NzT3JpZ2luOgorICAgICAgICByZXR1cm4g
QVNDSUlMaXRlcmFsKCJvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iKTsKKyAgICBjYXNlIEZldGNo
T3B0aW9uczo6UmVmZXJyZXJQb2xpY3k6OlVuc2FmZVVSTDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJ
TGl0ZXJhbCgidW5zYWZlLXVybCIpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBGZXRjaFJlcXVlc3Q6OnJlZmVycmVy
KCkgY29uc3QKK3sKKyAgICBpZiAobV9pbnRlcm5hbFJlcXVlc3QucmVmZXJyZXIgPT0gIm5vLXJl
ZmVycmVyIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIGlmIChtX2ludGVybmFsUmVx
dWVzdC5yZWZlcnJlciA9PSAiY2xpZW50IikKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
YWJvdXQ6Y2xpZW50Iik7CisgICAgcmV0dXJuIG1faW50ZXJuYWxSZXF1ZXN0LnJlZmVycmVyOwor
fQorCitTdHJpbmcgRmV0Y2hSZXF1ZXN0Ojptb2RlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1f
aW50ZXJuYWxSZXF1ZXN0Lm9wdGlvbnMubW9kZSgpKSB7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6
Ok1vZGU6Ok5hdmlnYXRlOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJuYXZpZ2F0ZSIp
OworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luOgorICAgICAgICByZXR1
cm4gQVNDSUlMaXRlcmFsKCJzYW1lLW9yaWdpbiIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpN
b2RlOjpOb0NvcnM6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm5vLWNvcnMiKTsKKyAg
ICBjYXNlIEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgiY29ycyIpOworICAgIH07CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgRmV0Y2hSZXF1ZXN0OjpjcmVkZW50aWFscygpIGNv
bnN0Cit7CisgICAgc3dpdGNoIChtX2ludGVybmFsUmVxdWVzdC5vcHRpb25zLmNyZWRlbnRpYWxz
KCkpIHsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQ6CisgICAgICAg
IHJldHVybiBBU0NJSUxpdGVyYWwoIm9taXQiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q3Jl
ZGVudGlhbHM6OlNhbWVPcmlnaW46CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInNhbWUt
b3JpZ2luIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlOgor
ICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJpbmNsdWRlIik7CisgICAgfTsKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBGZXRj
aFJlcXVlc3Q6OmNhY2hlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1faW50ZXJuYWxSZXF1ZXN0
Lm9wdGlvbnMuY2FjaGUoKSkgeworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpDYWNoZTo6RGVmYXVs
dDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZGVmYXVsdCIpOworICAgIGNhc2UgRmV0
Y2hPcHRpb25zOjpDYWNoZTo6Tm9TdG9yZToKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
bm8tc3RvcmUiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q2FjaGU6OlJlbG9hZDoKKyAgICAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgicmVsb2FkIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6
OkNhY2hlOjpOb0NhY2hlOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJuby1jYWNoZSIp
OworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpDYWNoZTo6Rm9yY2VDYWNoZToKKyAgICAgICAgcmV0
dXJuIEFTQ0lJTGl0ZXJhbCgiZm9yY2UtY2FjaGUiKTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgRmV0Y2hSZXF1ZXN0
OjpyZWRpcmVjdCgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX2ludGVybmFsUmVxdWVzdC5vcHRp
b25zLnJlZGlyZWN0KCkpIHsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkZvbGxv
dzoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZm9sbG93Iik7CisgICAgY2FzZSBGZXRj
aE9wdGlvbnM6OlJlZGlyZWN0OjpFcnJvcjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
ZXJyb3IiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6Ok1hbnVhbDoKKyAgICAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibWFudWFsIik7CisgICAgfQorICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworUmVmUHRyPEZldGNoUmVxdWVz
dD4gRmV0Y2hSZXF1ZXN0OjpjbG9uZShFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoaXNE
aXN0dXJiZWQoKSkgeworICAgICAgICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgfQorCisgICAgLy8gRklYTUU6IFZhbGlkYXRlIGJvZHkgdGVlaW5nLgorICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEZldGNoUmVxdWVzdChGZXRjaEJvZHkobV9ib2R5KSwgRmV0
Y2hIZWFkZXJzOjpjcmVhdGUobV9oZWFkZXJzLmdldCgpKSwgRmV0Y2hSZXF1ZXN0OjpJbnRlcm5h
bFJlcXVlc3QobV9pbnRlcm5hbFJlcXVlc3QpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShGRVRDSF9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaFJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZmEwODMxM2NlMzYwY2VlNGEwMWZj
Y2U4MDNhZDk2MWMxMjc2MWM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQ2Fub24gSW5jLiBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIENBTk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRmV0Y2hSZXF1ZXN0X2gKKyNk
ZWZpbmUgRmV0Y2hSZXF1ZXN0X2gKKworI2lmIEVOQUJMRShGRVRDSF9BUEkpCisKKyNpbmNsdWRl
ICJGZXRjaEJvZHkuaCIKKyNpbmNsdWRlICJGZXRjaEhlYWRlcnMuaCIKKyNpbmNsdWRlICJGZXRj
aE9wdGlvbnMuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBEaWN0aW9uYXJ5OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDsKKwordHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKKworY2xhc3MgRmV0Y2hSZXF1ZXN0IDog
cHVibGljIFJlZkNvdW50ZWQ8RmV0Y2hSZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZlB0cjxGZXRjaFJlcXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRmV0Y2hS
ZXF1ZXN0KiwgY29uc3QgRGljdGlvbmFyeSYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMg
UmVmUHRyPEZldGNoUmVxdWVzdD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25z
dCBTdHJpbmcmLCBjb25zdCBEaWN0aW9uYXJ5JiwgRXhjZXB0aW9uQ29kZSYpOworCisgICAgLy8g
UmVxdWVzdCBBUEkKKyAgICBjb25zdCBTdHJpbmcmIG1ldGhvZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aW50ZXJuYWxSZXF1ZXN0LnJlcXVlc3QuaHR0cE1ldGhvZCgpOyB9CisgICAgY29uc3QgU3RyaW5n
JiB1cmwoKSBjb25zdCB7IHJldHVybiBtX2ludGVybmFsUmVxdWVzdC5yZXF1ZXN0LnVybCgpLnN0
cmluZygpOyB9CisgICAgRmV0Y2hIZWFkZXJzJiBoZWFkZXJzKCkgeyByZXR1cm4gbV9oZWFkZXJz
LmdldCgpOyB9CisKKyAgICBTdHJpbmcgdHlwZSgpIGNvbnN0OworICAgIFN0cmluZyBkZXN0aW5h
dGlvbigpIGNvbnN0OworICAgIFN0cmluZyByZWZlcnJlcigpIGNvbnN0OworICAgIFN0cmluZyBy
ZWZlcnJlclBvbGljeSgpIGNvbnN0OworICAgIFN0cmluZyBtb2RlKCkgY29uc3Q7CisgICAgU3Ry
aW5nIGNyZWRlbnRpYWxzKCkgY29uc3Q7CisgICAgU3RyaW5nIGNhY2hlKCkgY29uc3Q7CisgICAg
U3RyaW5nIHJlZGlyZWN0KCkgY29uc3Q7CisgICAgY29uc3QgU3RyaW5nJiBpbnRlZ3JpdHkoKSBj
b25zdCB7IHJldHVybiBtX2ludGVybmFsUmVxdWVzdC5pbnRlZ3JpdHk7IH0KKworICAgIFJlZlB0
cjxGZXRjaFJlcXVlc3Q+IGNsb25lKEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIC8vIEJvZHkgQVBJ
CisgICAgYm9vbCBpc0Rpc3R1cmJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYm9keS5pc0Rpc3R1cmJl
ZCgpOyB9CisgICAgdm9pZCBhcnJheUJ1ZmZlcihGZXRjaEJvZHk6OkFycmF5QnVmZmVyUHJvbWlz
ZSYmIHByb21pc2UpIHsgbV9ib2R5LmFycmF5QnVmZmVyKFdURk1vdmUocHJvbWlzZSkpOyB9Cisg
ICAgdm9pZCBmb3JtRGF0YShGZXRjaEJvZHk6OkZvcm1EYXRhUHJvbWlzZSYmIHByb21pc2UpIHsg
bV9ib2R5LmZvcm1EYXRhKFdURk1vdmUocHJvbWlzZSkpOyB9CisgICAgdm9pZCBibG9iKEZldGNo
Qm9keTo6QmxvYlByb21pc2UmJiBwcm9taXNlKSB7IG1fYm9keS5ibG9iKFdURk1vdmUocHJvbWlz
ZSkpOyB9CisgICAgdm9pZCBqc29uKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgRmV0Y2hCb2R5OjpK
U09OUHJvbWlzZSYmIHByb21pc2UpIHsgbV9ib2R5Lmpzb24oc3RhdGUsIFdURk1vdmUocHJvbWlz
ZSkpOyB9CisgICAgdm9pZCB0ZXh0KEZldGNoQm9keTo6VGV4dFByb21pc2UmJiBwcm9taXNlKSB7
IG1fYm9keS50ZXh0KFdURk1vdmUocHJvbWlzZSkpOyB9CisKKyAgICBzdHJ1Y3QgSW50ZXJuYWxS
ZXF1ZXN0IHsKKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CisgICAgICAgIEZldGNo
T3B0aW9ucyBvcHRpb25zOworICAgICAgICBTdHJpbmcgcmVmZXJyZXI7CisgICAgICAgIFN0cmlu
ZyBpbnRlZ3JpdHk7CisgICAgfTsKKworICAgIEZldGNoQm9keSYgYm9keSgpIHsgcmV0dXJuIG1f
Ym9keTsgfQorCitwcml2YXRlOgorICAgIEZldGNoUmVxdWVzdChGZXRjaEJvZHkmJiwgUmVmPEZl
dGNoSGVhZGVycz4mJiwgSW50ZXJuYWxSZXF1ZXN0JiYpOworCisgICAgRmV0Y2hCb2R5IG1fYm9k
eTsKKyAgICBSZWY8RmV0Y2hIZWFkZXJzPiBtX2hlYWRlcnM7CisgICAgSW50ZXJuYWxSZXF1ZXN0
IG1faW50ZXJuYWxSZXF1ZXN0OworfTsKKworaW5saW5lIEZldGNoUmVxdWVzdDo6RmV0Y2hSZXF1
ZXN0KEZldGNoQm9keSYmIGJvZHksIFJlZjxGZXRjaEhlYWRlcnM+JiYgaGVhZGVycywgSW50ZXJu
YWxSZXF1ZXN0JiYgaW50ZXJuYWxSZXF1ZXN0KQorICAgIDogbV9ib2R5KFdURk1vdmUoYm9keSkp
CisgICAgLCBtX2hlYWRlcnMoV1RGTW92ZShoZWFkZXJzKSkKKyAgICAsIG1faW50ZXJuYWxSZXF1
ZXN0KFdURk1vdmUoaW50ZXJuYWxSZXF1ZXN0KSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEZFVENIX0FQSSkKKworI2VuZGlmIC8vIEZldGNoUmVx
dWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVx
dWVzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjRjNzY2Y2NkY2MwNzAwM2JiMmQ1NWM1YWM1ZjRmZTQxYzhmMWJlZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXF1ZXN0
LmlkbApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IENhbm9uIElu
Yy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSByZXF1aXJlZCB0byBi
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUg
bmFtZSBvZiBDYW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisg
KiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENB
Tk9OIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworZW51bSBSZXF1ZXN0VHlwZSB7ICIiLCAiYXVkaW8iLCAiZm9udCIsICJpbWFnZSIs
ICJzY3JpcHQiLCAic3R5bGUiLCAidHJhY2siLCAidmlkZW8iIH07CitlbnVtIFJlcXVlc3REZXN0
aW5hdGlvbiB7ICIiLCAiZG9jdW1lbnQiLCAic2hhcmVkd29ya2VyIiwgInN1YnJlc291cmNlIiwg
InVua25vd24iLCAid29ya2VyIiB9OworZW51bSBSZXF1ZXN0TW9kZSB7ICJuYXZpZ2F0ZSIsICJz
YW1lLW9yaWdpbiIsICJuby1jb3JzIiwgImNvcnMiIH07CitlbnVtIFJlcXVlc3RDcmVkZW50aWFs
cyB7ICJvbWl0IiwgInNhbWUtb3JpZ2luIiwgImluY2x1ZGUiIH07CitlbnVtIFJlcXVlc3RDYWNo
ZSB7ICJkZWZhdWx0IiwgIm5vLXN0b3JlIiwgInJlbG9hZCIsICJuby1jYWNoZSIsICJmb3JjZS1j
YWNoZSIgfTsKK2VudW0gUmVxdWVzdFJlZGlyZWN0IHsgImZvbGxvdyIsICJlcnJvciIsICJtYW51
YWwiIH07CitlbnVtIFJlZmVycmVyUG9saWN5IHsgIiIsICJuby1yZWZlcnJlciIsICAibm8tcmVm
ZXJyZXItd2hlbi1kb3duZ3JhZGUiLCAib3JpZ2luLW9ubHkiLCAib3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luIiwgInVuc2FmZS11cmwiIH07CisKK1sKKyAgICBDb25kaXRpb25hbD1GRVRDSF9BUEks
CisgICAgQ29uc3RydWN0b3JDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LAorICAgIENv
bnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uLAorICAgIENvbnN0cnVjdG9yKEZldGNoUmVxdWVzdCBp
bnB1dCwgW0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCBEaWN0aW9uYXJ5IGluaXQpLAorICAg
IENvbnN0cnVjdG9yKERPTVN0cmluZyBpbnB1dCwgW0RlZmF1bHQ9VW5kZWZpbmVkXSAgb3B0aW9u
YWwgRGljdGlvbmFyeSBpbml0KSwKKyAgICBHbG9iYWxDb250ZXh0PURPTVdpbmRvdyZXb3JrZXJH
bG9iYWxTY29wZSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFj
ZU5hbWU9UmVxdWVzdAorXQoraW50ZXJmYWNlIEZldGNoUmVxdWVzdCB7CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBtZXRob2Q7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyB1cmw7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIEZldGNoSGVhZGVycyBoZWFkZXJzOwor
CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3RUeXBlIHR5cGU7CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFJlcXVlc3REZXN0aW5hdGlvbiBkZXN0aW5hdGlvbjsKKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHJlZmVycmVyOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSZWZl
cnJlclBvbGljeSByZWZlcnJlclBvbGljeTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVz
dE1vZGUgbW9kZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVzdENyZWRlbnRpYWxzIGNy
ZWRlbnRpYWxzOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSZXF1ZXN0Q2FjaGUgY2FjaGU7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3RSZWRpcmVjdCByZWRpcmVjdDsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGludGVncml0eTsKKworICAgIFtSYWlzZXNFeGNlcHRp
b24sIE5ld09iamVjdF0gRmV0Y2hSZXF1ZXN0IGNsb25lKCk7Cit9OworRmV0Y2hSZXF1ZXN0IGlt
cGxlbWVudHMgRmV0Y2hCb2R5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDExN2NiMzYzOGJjOWIxOWQ4NzNlMGIwMzM2OTRlODc3
ZDQ1ZGZhYTMuLjg0NzU2NGY3OTk4YTNkYjk4OTg2N2UzN2ZjYmVkZTVjZjIxZGQ1NTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE1NDcsNyArMTU0Nyw5IEBACiAJCTQxRjA2NkU1MEY2NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRH
bG9iYWxPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFGMDY2RTMwRjY0QkNGNjAwQTA3RUFDIC8qIFNjcmlwdEdsb2JhbE9iamVjdC5jcHAg
Ki87IH07CiAJCTQxRjFEMjFGMEVGMzVDMkEwMERBODc1MyAvKiBTY3JpcHRDYWNoZWRGcmFtZURh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjFE
MjFEMEVGMzVDMkEwMERBODc1MyAvKiBTY3JpcHRDYWNoZWRGcmFtZURhdGEuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MUYxRDIyMDBFRjM1QzJB
MDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjFEMjFFMEVGMzVDMkEwMERBODc1MyAvKiBT
Y3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwICovOyB9OworCQk0MUY1NEY4QjFDNTBDNTAzMDAzMzg0
ODggLyogRmV0Y2hCb2R5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxRjU0RjdEMUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEJvZHkuY3BwICovOyB9
OwogCQk0MUY1NEY4RDFDNTBDNTA4MDAzMzg0ODggLyogRmV0Y2hIZWFkZXJzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjU0RjgyMUM1MEM0RjYw
MDMzODQ4OCAvKiBGZXRjaEhlYWRlcnMuY3BwICovOyB9OworCQk0MUY1NEY4RTFDNTBDNTBDMDAz
Mzg0ODggLyogRmV0Y2hSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxRjU0Rjg3MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaFJlcXVlc3Qu
Y3BwICovOyB9OwogCQk0MUY1ODRDNzEwNDY1MkNCMDA5Q0FBNjQgLyogSlNNZXNzYWdlUG9ydEN1
c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFG
NTg0QzYxMDQ2NTJDQjAwOUNBQTY0IC8qIEpTTWVzc2FnZVBvcnRDdXN0b20uaCAqLzsgfTsKIAkJ
NDFGQTMwM0UxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQTMwM0MxMzE2QzI5
QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuY3BwICovOyB9OwogCQk0MUZBMzAzRjEz
MTZDMjlDMDBDMEJGQzUgLyogUmVuZGVyTWVkaWFDb250cm9scy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQTMwM0QxMzE2QzI5QzAwQzBCRkM1IC8q
IFJlbmRlck1lZGlhQ29udHJvbHMuaCAqLzsgfTsKQEAgLTI3OTAsNiArMjc5Miw4IEBACiAJCTdF
NDc0RTFFMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNDc0RTFCMTI0
OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTQ3NEUxRjEyNDk0REM5
MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ3NEUxQzEyNDk0REM5MDAyMzUzNjQgLyogU1FM
aXRlRGF0YWJhc2VUcmFja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJN0U0NzRFMjAxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNl
VHJhY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3RTQ3NEUxRDEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCAq
LzsgfTsKKwkJN0U0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNEM5NkQ4MUFE
NDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5jcHAgKi87IH07CisJCTdFNEM5NkREMUFE
NDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0
Y2hSZXF1ZXN0LmggKi87IH07CiAJCTdFNERFMTBEMTk4QjEwQjYwMDUxQ0IwMiAvKiBEaXNrQ2Fj
aGVNb25pdG9yQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3RTRERTEwQzE5OEIxMEI2MDA1MUNCMDIgLyogRGlza0NhY2hlTW9uaXRvckNvY29h
Lm1tICovOyB9OwogCQk3RTVEN0E3NjE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4
VWludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
RTVEN0E3MzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi87IH07
CiAJCTdFNUQ3QTc3MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTVEN0E3NDE2MUQz
RjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5oICovOyB9OwpAQCAtMjgyNiw2ICsy
ODMwLDggQEAKIAkJN0VFNjg0NzAxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDVE
MTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0VFNjg0NzExMkQyNkUzODAwRTc5NDE1
IC8qIFJlc291cmNlUmVzcG9uc2VDRk5ldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ1RTEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VS
ZXNwb25zZUNGTmV0LmNwcCAqLzsgfTsKIAkJN0VFNjg0NzUxMkQyNkU3MDAwRTc5NDE1IC8qIFJl
c291cmNlTG9hZGVyQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0VFNjg0NzQxMkQyNkU3MDAwRTc5NDE1IC8qIFJlc291cmNlTG9hZGVyQ0ZO
ZXQuY3BwICovOyB9OworCQk3RjRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Y0Qzk2
RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmNwcCAqLzsgfTsKKwkJN0Y0Qzk2REQx
QUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RjRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRj
aEJvZHkuaCAqLzsgfTsKIAkJODEwMkM1ODgxMzI1QkIxMTAwRERFNjdBIC8qIFN0cmluZ0NhbGxi
YWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgx
MDJDNTg3MTMyNUJCMTEwMERERTY3QSAvKiBTdHJpbmdDYWxsYmFjay5jcHAgKi87IH07CiAJCTgx
QUM1OTk5MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUFDNTk5NzEzMTYzNkU2MDAwOUE3
RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oICovOyB9OwogCQk4MUFDNTk5QTEzMTYzNkU2MDAwOUE3
RTAgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNm
ZXJJdGVtTGlzdC5oICovOyB9OwpAQCAtODk1MiwxMCArODk1OCwxNyBAQAogCQk0MUYwNjZFMzBG
NjRCQ0Y2MDBBMDdFQUMgLyogU2NyaXB0R2xvYmFsT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEdsb2JhbE9iamVjdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxRjFEMjFEMEVGMzVDMkEwMERBODc1MyAvKiBTY3JpcHRDYWNo
ZWRGcmFtZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0Q2Fj
aGVkRnJhbWVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRjFEMjFFMEVG
MzVDMkEwMERBODc1MyAvKiBTY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGNTRGN0QxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNo
Qm9keS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGZXRjaEJvZHku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUY1NEY3RTFDNTBDNEY2MDAzMzg0
ODggLyogRmV0Y2hCb2R5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZldGNo
Qm9keS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUY1NEY3RjFDNTBDNEY2MDAz
Mzg0ODggLyogRmV0Y2hCb2R5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGZXRjaEJvZHku
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUY1NEY4MjFDNTBDNEY2MDAzMzg0
ODggLyogRmV0Y2hIZWFkZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEZldGNoSGVhZGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRjU0
RjgzMUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEhlYWRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRmV0Y2hIZWFkZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxRjU0Rjg0MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEhlYWRlcnMuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEZldGNoSGVhZGVycy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxRjU0Rjg1MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEhlYWRlcnMuanMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBGZXRjaEhlYWRlcnMuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRjU0Rjg2MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRj
aE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmV0Y2hPcHRpb25z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRjU0Rjg3MUM1MEM0RjYwMDMzODQ4
OCAvKiBGZXRjaFJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRmV0Y2hSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGNTRG
ODgxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGZXRjaFJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDFGNTRGODkxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoUmVxdWVzdC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gRmV0Y2hSZXF1ZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDFGNTg0QzYxMDQ2NTJDQjAwOUNBQTY0IC8qIEpTTWVzc2FnZVBvcnRDdXN0b20uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZXNzYWdlUG9ydEN1c3RvbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZBMzAzQzEzMTZDMjlDMDBDMEJGQzUgLyog
UmVuZGVyTWVkaWFDb250cm9scy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDFGQTMwM0QxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyTWVkaWFDb250cm9scy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAzNDgsNiArMTAzNjEsOCBAQAogCQk3RTQ3NEUx
QjEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTQ3NEUxQzEyNDk0REM5MDAyMzUzNjQg
LyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNRTGl0ZURhdGFiYXNlVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3RTQ3NEUxRDEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNRTGl0ZURhdGFiYXNlVHJhY2tl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdFNEM5NkQ4MUFENDQ4MzUwMDM2
NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0ZldGNoUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZldGNoUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3RTRERTEwQzE5OEIxMEI2MDA1MUNCMDIgLyogRGlza0NhY2hlTW9uaXRv
ckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGlza0Nh
Y2hlTW9uaXRvckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTVEN0E3
MzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPRVNFbGVtZW50SW5kZXhVaW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U1RDdBNzQxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0Vs
ZW1lbnRJbmRleFVpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT0VTRWxl
bWVudEluZGV4VWludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAzODYsNiAr
MTA0MDEsOCBAQAogCQk3RUU2ODQ1RDEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNwb25z
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZVJlc3BvbnNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFRTY4NDVFMTJEMjZFMzgwMEU3OTQxNSAv
KiBSZXNvdXJjZVJlc3BvbnNlQ0ZOZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0VFNjg0NzQxMkQyNkU3MDAwRTc5NDE1IC8qIFJlc291cmNlTG9hZGVyQ0ZOZXQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzb3VyY2VMb2FkZXJD
Rk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdGNEM5NkQ4MUFENDQ4MzUw
MDM2NUE1MCAvKiBKU0ZldGNoQm9keS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0ZldGNoQm9keS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdG
NEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0ZldGNoQm9keS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MTAyQzU4NzEzMjVCQjExMDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nQ2FsbGJhY2suY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0
YVRyYW5zZmVySXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhVHJh
bnNmZXJJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQUM1OTk4MTMxNjM2
RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTY2MDUsMTAgKzE2NjIyLDE3IEBACiAJCTQxRjU0RjdDMUM1MEM0RjYwMDMz
ODQ4OCAvKiBmZXRjaCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJNDFGNTRGN0QxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoQm9keS5jcHAgKi8sCisJCQkJ
NDFGNTRGN0UxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoQm9keS5oICovLAorCQkJCTQxRjU0RjdG
MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEJvZHkuaWRsICovLAogCQkJCTQxRjU0RjgyMUM1MEM0
RjYwMDMzODQ4OCAvKiBGZXRjaEhlYWRlcnMuY3BwICovLAogCQkJCTQxRjU0RjgzMUM1MEM0RjYw
MDMzODQ4OCAvKiBGZXRjaEhlYWRlcnMuaCAqLywKIAkJCQk0MUY1NEY4NDFDNTBDNEY2MDAzMzg0
ODggLyogRmV0Y2hIZWFkZXJzLmlkbCAqLywKIAkJCQk0MUY1NEY4NTFDNTBDNEY2MDAzMzg0ODgg
LyogRmV0Y2hIZWFkZXJzLmpzICovLAorCQkJCTQxRjU0Rjg2MUM1MEM0RjYwMDMzODQ4OCAvKiBG
ZXRjaE9wdGlvbnMuaCAqLywKKwkJCQk0MUY1NEY4NzFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hS
ZXF1ZXN0LmNwcCAqLywKKwkJCQk0MUY1NEY4ODFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hSZXF1
ZXN0LmggKi8sCisJCQkJNDFGNTRGODkxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoUmVxdWVzdC5p
ZGwgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGZldGNoOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTE2NjE2LDYgKzE2NjQwLDEwIEBACiAJCTQyQTAyM0ZBMUEzOUYxM0EwMEY3MjJDRiAv
KiBGZXRjaEFQSSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJN0Y0Qzk2RDgxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmNwcCAqLywKKwkJCQk3
RjRDOTZEOTFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHkuaCAqLywKKwkJCQk3RTRDOTZE
ODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuY3BwICovLAorCQkJCTdFNEM5NkQ5
MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5oICovLAogCQkJCTdENEM5NkQ4MUFE
NDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoSGVhZGVycy5jcHAgKi8sCiAJCQkJN0Q0Qzk2RDkxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hIZWFkZXJzLmggKi8sCiAJCQkpOwpAQCAtMjY0NjAsNiAr
MjY0ODgsOCBAQAogCQkJCTA3NzY2NEZEMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNrVGltZVBs
dWdpblJlcGxhY2VtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCNjU4RkZBMjE1MjJFRjNBMDBE
RDU1OTUgLyogSlNSYWRpb05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NURGMzIwMjA5
RDFDQzYwMDAwQkUzMjUgLyogSlNSYW5nZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0Y0Qzk2REQx
QUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3RTRD
OTZERDFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdENEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoSGVhZGVycy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0u
aCBpbiBIZWFkZXJzICovLAogCQkJCTZDNEM5NkRGMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRh
YmxlU3RyZWFtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTYzNyw2ICsyOTY2Nyw3
IEBACiAJCQkJQzU4NUE2NjIxMUQ0RkFDNTAwNEMzRTRCIC8qIElEQkJpbmRpbmdVdGlsaXRpZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE2RDdENzExQkI1RjBCRDAwQUY3Qzc3IC8qIElEQkNv
bm5lY3Rpb25Ub0NsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTk4RjdDMDFCQzQ4NTY3
MDBFMkNDNUYgLyogSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTQxRjU0RjhCMUM1MEM1MDMwMDMzODQ4OCAvKiBGZXRjaEJvZHkuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTE4NUZDN0ExQkI0QzRFODAwMTI4OThGIC8qIElEQkN1cnNvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MUY0MUE2OTFCQTczQjVCMDAyRTA1M0IgLyogSURCQ3Vyc29yQmFja2VuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUY0MUE2QjFCQTczQjVCMDAyRTA1M0IgLyogSURCQ3Vy
c29yQmFja2VuZE9wZXJhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDA0Niw2ICszMDA3
Nyw3IEBACiAJCQkJQTgwRTdFOUUwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTFRleHRBcmVhRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4M0UzNTlBMzFCQjEwMzFEMDAyQ0VCOTggLyog
SlNIVE1MVGltZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTdCMTMwQTE5RDYw
NjAwN0ZCOEM1IC8qIEpTSFRNTFRpdGxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0
MUY1NEY4RTFDNTBDNTBDMDAzMzg0ODggLyogRmV0Y2hSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3MDc1NkQzMTQyMzlBNEUwMDQxNDE2MSAvKiBKU0hUTUxUcmFja0VsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUE4NUIyMTAwQTFCMjU4NzAwRDhDODdDIC8qIEpTSFRNTFVM
aXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2RTRBQkNENDEzOEVBMEI3MDA3MUQy
OTEgLyogSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMDE2OCw3
ICszMDIwMCw5IEBACiAJCQkJMDc3NjY0RkMxODNFNkI1QzAwMTMzQjkyIC8qIEpTUXVpY2tUaW1l
UGx1Z2luUmVwbGFjZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjY1OEZGQTExNTIyRUYz
QTAwREQ1NTk1IC8qIEpTUmFkaW9Ob2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURG
MzIwMTA5RDFDQzYwMDAwQkUzMjUgLyogSlNSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3
RjRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEJvZHkuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0Q0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hIZWFkZXJzLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTdFNEM5NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVz
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNS
ZWFkYWJsZVN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2QzRDOTZERTFBRDQ0ODM1MDAz
NjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDEyOURGODUxQkI1QjgwNzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29u
c3RydWN0b3JzLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvRGljdGlvbmFyeS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRGlj
dGlvbmFyeS5oCmluZGV4IGVjMWVjYTg5NjY3YzM2ZDU3MWFlMTY3ZTE3Nzg0MmQwNjQ5OTE2NWIu
LmQzMTcyYWY0NDdmZmFiODFlZmM2NTg1ODNjZWE5MTQ1YjE2MjJhOTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RpY3Rpb25hcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9EaWN0aW9uYXJ5LmgKQEAgLTY2LDYgKzY2LDggQEAgcHVibGljOgogICAg
IGJvb2wgZ2V0T3duUHJvcGVydHlOYW1lcyhWZWN0b3I8U3RyaW5nPiYpIGNvbnN0OwogICAgIGJv
b2wgZ2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwg
U3RyaW5nJiB2YWx1ZSkgY29uc3Q7CiAKKyAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlY1N0YXRlKCkg
Y29uc3QgeyByZXR1cm4gbV9kaWN0aW9uYXJ5LmV4ZWNTdGF0ZSgpOyB9CisKIHByaXZhdGU6CiAg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgICAgSlNDOjpKU09iamVjdCogYXNKU09iamVjdChU
KikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rp
b25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcApp
bmRleCBjNGEyZjE2NzEyYzRiNGE2YzQyY2FkMjVjMDc2ZWZhZWE0Y2I2YTM1Li4zMzQ2Y2NmZTY5
OTNmYjk0OTU3NWQ3MzA4NTVlZDRkNzhmOTY4ZGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKQEAgLTQ3LDYgKzQ3LDEwIEBACiAjaW5jbHVkZSAiSlNN
ZWRpYUtleUVycm9yLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShGRVRDSF9BUEkpCisjaW5jbHVk
ZSAiSlNGZXRjaEhlYWRlcnMuaCIKKyNlbmRpZgorCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ICNpbmNsdWRlICJKU01lZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAiSlNNZWRpYVN0cmVhbVRyYWNr
LmgiCkBAIC0yMjcsNiArMjMxLDEzIEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxNZWRpCiB9CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShGRVRDSF9BUEkpCit2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZh
bHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8RmV0Y2hIZWFk
ZXJzPiYgcmVzdWx0KQoreworICAgIHJlc3VsdCA9IEpTRmV0Y2hIZWFkZXJzOjp0b1dyYXBwZWQo
dmFsdWUpOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogdm9pZCBKU0Rp
Y3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1
ZSwgUmVmUHRyPE1lZGlhU3RyZWFtPiYgcmVzdWx0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RpY3Rpb25hcnkuaAppbmRleCBmNThmYmY3MGI2YjU1ODgyYzZiMmFlZjI5NDA3ZWM2
OWJkYzk2YzM0Li41NGJmNzk5MGMwZDFhN2VmNTQ3YjEzMGZlYzVhZDEzNmQzZTViNzM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaApAQCAtNDcsNiArNDcsNyBA
QCBjbGFzcyBET01FcnJvcjsKIGNsYXNzIERPTVdpbmRvdzsKIGNsYXNzIEV2ZW50VGFyZ2V0Owog
Y2xhc3MgR2FtZXBhZDsKK2NsYXNzIEZldGNoSGVhZGVyczsKIGNsYXNzIE1lZGlhS2V5RXJyb3I7
CiBjbGFzcyBNZWRpYVN0cmVhbTsKIGNsYXNzIE1lZGlhU3RyZWFtVHJhY2s7CkBAIC0xMjYsNiAr
MTI3LDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIHN0YXRp
YyB2b2lkIGNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRy
PE1lZGlhS2V5RXJyb3I+JiByZXN1bHQpOwogI2VuZGlmCisjaWYgRU5BQkxFKEZFVENIX0FQSSkK
KyAgICBzdGF0aWMgdm9pZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFs
dWUsIFJlZlB0cjxGZXRjaEhlYWRlcnM+JiByZXN1bHQpOworI2VuZGlmCiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICBzdGF0aWMgdm9pZCBjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxNZWRpYVN0cmVhbT4mIHJlc3VsdCk7CiAgICAgc3RhdGlj
IHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8
TWVkaWFTdHJlYW1UcmFjaz4mIHJlc3VsdCk7CkBAIC0xNjMsNiArMTY3LDEyIEBAIGJvb2wgSlNE
aWN0aW9uYXJ5OjpnZXQoY29uc3QgY2hhciogcHJvcGVydHlOYW1lLCBSZXN1bHQmIGZpbmFsUmVz
dWx0KSBjb25zdAogICAgIHJldHVybiB0cnlHZXRQcm9wZXJ0eUFuZFJlc3VsdChwcm9wZXJ0eU5h
bWUsICZmaW5hbFJlc3VsdCwgSWRlbnRpdHlTZXR0ZXI8UmVzdWx0Pjo6aWRlbnRpdHlTZXR0ZXIp
ID09IFByb3BlcnR5Rm91bmQ7CiB9CiAKK3RlbXBsYXRlIDw+CitpbmxpbmUgYm9vbCBKU0RpY3Rp
b25hcnk6OmdldChjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSYgZmluYWxS
ZXN1bHQpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRyeUdldFByb3BlcnR5KHByb3BlcnR5TmFtZSwg
ZmluYWxSZXN1bHQpID09IFByb3BlcnR5Rm91bmQ7Cit9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBSZXN1bHQ+CiBKU0RpY3Rpb25hcnk6OkdldFByb3BlcnR5UmVzdWx0IEpTRGlj
dGlvbmFyeTo6dHJ5R2V0UHJvcGVydHlBbmRSZXN1bHQoY29uc3QgY2hhciogcHJvcGVydHlOYW1l
LCBUKiBjb250ZXh0LCB2b2lkICgqc2V0dGVyKShUKiBjb250ZXh0LCBjb25zdCBSZXN1bHQmKSkg
Y29uc3QKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBhNWVlYWU2Y2ZiNWFiNjY0NGMzODgzYmM2NmUxNzQ4MWY4YjgzZmEy
Li5mZDQ0ODY2MTBhZmJhOTRmYWI5Y2FiMTcxODZlNTJlYmFjYzVkNDdmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTYtMDEtMjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5j
YW5vbi5mcj4KKworICAgICAgICBbRmV0Y2ggQVBJXSBJbXBsZW1lbnQgRmV0Y2ggQVBJIFJlcXVl
c3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzQz
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRpY2F0ZWQtd29ya2VyLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBqcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3Ry
dWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy1t
YXZlcmlja3MvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3Ry
dWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9q
cy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQ6CisKIDIwMTYtMDEtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBFeHBvc2UgVmFsaWRpdHlTdGF0ZSBvbiB0aGUgZ2xvYmFsIFdpbmRvdyBv
YmplY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDhkNzZiMDFjZTJjNGJjNmMx
NzNjZjFlYWUyYzMwNjg2ZmNjZjlkYTkuLjM1ZWU1YmU5MDJjOWMyMzZiMTdjYzU3MDRiYWM4OGIw
M2FkNjg0N2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBA
CisyMDE2LTAxLTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+
CisKKyAgICAgICAgW0ZldGNoIEFQSV0gSW1wbGVtZW50IEZldGNoIEFQSSBSZXF1ZXN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM0MzcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9oZWFkZXJzLWJhc2ljLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2xvbmUuc3ViLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtY2xvbmUuc3ViLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1jb25zdW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWRpc3R1cmJlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWVycm9y
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVx
dWVzdC9yZXF1ZXN0LWhlYWRlcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWlkbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWlkbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMS5zdWIt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMS5zdWIuaHRtbDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMy5zdWItZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvcmVxdWVzdC1pbml0LTAwMy5zdWIuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2F1dGhlbnRpY2F0aW9uLnB5OiBBZGRlZC4KKyAg
ICAgICAgKG1haW4pOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
b3VyY2VzL2NsZWFuLXN0YXNoLnB5OiBBZGRlZC4KKyAgICAgICAgKG1haW4pOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2luc3BlY3QtaGVhZGVycy5w
eTogQWRkZWQuCisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc291cmNlcy9tZXRob2QucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvcHJlZmxpZ2h0
LnB5OiBBZGRlZC4KKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3JlZGlyZWN0LnB5OiBBZGRlZC4KKyAgICAgICAgKG1haW4p
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3RvcC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3Vy
Y2VzL3RyaWNrbGUucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvdXRpbHMuanM6IEFkZGVkLgorICAgICAg
ICAoY2F0Y2gpOgorICAgICAgICAoZGlybmFtZSk6CisgICAgICAgIChjaGVja1JlcXVlc3QpOgor
ICAgICAgICAocmVhZFRleHRTdHJlYW0pOgorCiAyMDE2LTAxLTI3ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIFZhbGlkaXR5U3RhdGUgb24gdGhlIGds
b2JhbCBXaW5kb3cgb2JqZWN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtYmFzaWMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hl
YWRlcnMvaGVhZGVycy1iYXNpYy5odG1sCmluZGV4IGY2ZDVlZWQ5OTgwNzlkYzhlYjU4ODBmYmZh
Yzg2OTM3OGRlNmJkYjguLmMzOTU0NWQ1NDMxNDYxYWRhNDY5MmNlZGM4OWQ3ZDI4NmQ0NjVmZGYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1iYXNpYy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVhZGVycy1i
YXNpYy5odG1sCkBAIC00OCw2ICs0OCw3IEBACiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhoZWFk
ZXJzLmdldChuYW1lKSwgU3RyaW5nKGhlYWRlckRpY3RbbmFtZV0pLAogICAgICAgICAgICAgIm5h
bWU6ICIgKyBuYW1lICsgIiBoYXMgdmFsdWU6ICIgKyBoZWFkZXJEaWN0W25hbWVdKTsKICAgICAg
ICAgfQorICAgICAgICBhc3NlcnRfZXF1YWxzKGhlYWRlcnMuZ2V0KCJsZW5ndGgiKSwgbnVsbCwg
ImluaXQgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSBzZXF1ZW5jZSwgbm90IGFzIGEgZGljdGlvbmFy
eSIpOwogICAgICAgfSwgIkNyZWF0ZSBoZWFkZXJzIHdpdGggc2VxdWVuY2UiKTsKIAogICAgICAg
dGVzdChmdW5jdGlvbigpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jbG9uZS5zdWItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNsb25lLnN1Yi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmNiZDA3NzQ3OTg0NGNlYTVjNzk2MTlhYTE3NzBhNTRkZjJlZjMwMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1jbG9uZS5zdWItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBA
QAorCitGQUlMIENoZWNrIGNsb25pbmcgYSByZXF1ZXN0IEV4cGVjdGVkVmFsdWVzRGljdFsiaGVh
ZGVycyJdLmtleXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnRXhwZWN0ZWRWYWx1ZXNEaWN0WyJo
ZWFkZXJzIl0ua2V5cygpJywgJ0V4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmtleXMnIGlz
IHVuZGVmaW5lZCkKK1BBU1MgQ2hlY2sgY2xvbmluZyBhIHJlcXVlc3QgY29waWVzIHRoZSBoZWFk
ZXJzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2xvbmUuc3ViLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtY2xvbmUuc3ViLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTgwN2UyNmJhYzhjNGVlMDhlZjkyN2I5
N2ZlZDZhNGY3ZTI4NzU1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jbG9uZS5z
dWIuaHRtbApAQCAtMCwwICsxLDYzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVh
ZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlcXVlc3QgY2xvbmU8
L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53
aGF0d2cub3JnLyNyZXF1ZXN0Ij4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5v
biBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+CisgICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3V0aWxzLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFk
PgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVy
cyggeyJuYW1lIiA6ICJ2YWx1ZSJ9ICk7CisgICAgICB2YXIgZW1wdHlIZWFkZXJzID0gbmV3IEhl
YWRlcnMoKTsKKworICAgICAgdmFyIGluaXRWYWx1ZXNEaWN0ID0geyJtZXRob2QiIDogIlBPU1Qi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZlcnJlciIgOiAiaHR0cDovL3t7aG9z
dH19Ont7cG9ydHNbaHR0cF1bMF19fS8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy
ZWZlcnJlclBvbGljeSIgOiAib3JpZ2luLW9ubHkiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJtb2RlIiA6ICJzYW1lLW9yaWdpbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImNyZWRlbnRpYWxzIiA6ICJpbmNsdWRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Y2FjaGUiIDogIm5vLWNhY2hlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVkaXJl
Y3QiIDogImVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWdyaXR5IiA6
ICJSZXF1ZXN0J3MgSW50ZWdyaXR5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGVh
ZGVycyIgOiBoZWFkZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJib2R5IiA6ICJS
ZXF1ZXN0J3MgYm9keSIKKyAgICAgIH07CisKKyAgICAgIHZhciBleHBlY3RlZEluaXRpYWxpemVk
ID0geyJtZXRob2QiIDogIlBPU1QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InJlZmVycmVyIiA6ICJodHRwOi8ve3tob3N0fX06e3twb3J0c1todHRwXVswXX19LyIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJyZXJQb2xpY3kiIDogIm9yaWdpbi1v
bmx5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2RlIiA6ICJzYW1lLW9y
aWdpbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY3JlZGVudGlhbHMiIDog
ImluY2x1ZGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhY2hlIiA6ICJu
by1jYWNoZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVkaXJlY3QiIDog
ImVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlZ3JpdHkiIDog
IlJlcXVlc3QncyBJbnRlZ3JpdHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImhlYWRlcnMiIDogaGVhZGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJi
b2R5IiA6ICJSZXF1ZXN0J3MgYm9keSIKKyAgICAgIH07CisKKyAgICAgIHRlc3QoZnVuY3Rpb24o
KSB7CisgICAgICAgIHZhciBSZXF1ZXN0SW5pdGlhbGl6ZWQgPSBuZXcgUmVxdWVzdCgiIiwgaW5p
dFZhbHVlc0RpY3QpOworICAgICAgICB2YXIgcmVxdWVzdFRvQ2hlY2sgPSBSZXF1ZXN0SW5pdGlh
bGl6ZWQuY2xvbmUoKTsKKyAgICAgICAgY2hlY2tSZXF1ZXN0KHJlcXVlc3RUb0NoZWNrLCBleHBl
Y3RlZEluaXRpYWxpemVkKTsKKyAgICAgIH0sICJDaGVjayBjbG9uaW5nIGEgcmVxdWVzdCIpOwor
CisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaW5pdGlhbFJlcXVlc3QgPSBu
ZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIiA6IG5ldyBIZWFkZXJzKHsiYSI6ICIxIiwgImIiIDog
IjIifSl9KTsKKyAgICAgICAgdmFyIHJlcXVlc3QgPSBpbml0aWFsUmVxdWVzdC5jbG9uZSgpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoImEiKSwgIjEiLCAiY2xv
bmVkIHJlcXVlc3Qgc2hvdWxkIGhhdmUgaGVhZGVyICdhJyIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoImIiKSwgIjIiLCAiY2xvbmVkIHJlcXVlc3Qgc2hvdWxk
IGhhdmUgaGVhZGVyICdiJyIpOworCisgICAgICAgIGluaXRpYWxSZXF1ZXN0LmhlYWRlcnMuZGVs
ZXRlKCJhIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldCgiYSIp
LCAiMSIsICJjbG9uZWQgcmVxdWVzdCBzaG91bGQgc3RpbGwgaGF2ZSBoZWFkZXIgJ2EnIik7CisK
KyAgICAgICAgcmVxdWVzdC5oZWFkZXJzLmRlbGV0ZSgiYSIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKGluaXRpYWxSZXF1ZXN0LmhlYWRlcnMuZ2V0KCJiIiksICIyIiwgImluaXRpYWwgcmVxdWVz
dCBzaG91bGQgaGF2ZSBoZWFkZXIgJ2InIik7CisKKyAgICAgIH0sICJDaGVjayBjbG9uaW5nIGEg
cmVxdWVzdCBjb3BpZXMgdGhlIGhlYWRlcnMiKTsKKworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBkYWM3Y2U4
MzlhMWIzMDBhNzQ4MjQ3ODFmNTZkNWIwMWJhYmY2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1jb25zdW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKKworUEFTUyBDb25z
dW1lIHJlcXVlc3QncyBib2R5IGFzIHRleHQgCitGQUlMIENvbnN1bWUgcmVxdWVzdCdzIGJvZHkg
YXMgYmxvYiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogdW5k
ZWZpbmVkCitQQVNTIENvbnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMgYXJyYXlCdWZmZXIgCitQQVNT
IENvbnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMganNvbiAKK0ZBSUwgQ29uc3VtZSByZXF1ZXN0J3Mg
Ym9keSBhcyBmb3JtRGF0YSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogdW5kZWZpbmVkCitQQVNTIENvbnN1bWUganNvbiBmcm9tIG5vbi1wYXJzYWJsZSB0ZXh0
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWNvbnN1bWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmU1MGZhYTg1OTU2ZWRlYjNlNmUzNDNhMjMzNTIw
MjdkM2E4ZDU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUuaHRtbApA
QCAtMCwwICsxLDk0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlcXVlc3QgY29uc3VtZTwvdGl0bGU+
CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5v
cmcvI3JlcXVlc3QiPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2gu
c3BlYy53aGF0d2cub3JnLyNib2R5LW1peGluIj4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRp
dGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5m
ciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIGNo
ZWNrQm9keVRleHQocmVxdWVzdCwgZXhwZWN0ZWRCb2R5KSB7CisgICAgICByZXR1cm4gcmVxdWVz
dC50ZXh0KCkudGhlbiggZnVuY3Rpb24oYm9keUFzVGV4dCkgeworICAgICAgICBhc3NlcnRfZXF1
YWxzKGJvZHlBc1RleHQsIGV4cGVjdGVkQm9keSwgIlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVxdWVz
dCdzIGJvZHkiKTsKKyAgICAgICAgYXNzZXJ0X3RydWUocmVxdWVzdC5ib2R5VXNlZCwgImJvZHkg
YXMgdGV4dDogYm9keVVzZWQgdHVybmVkIHRydWUiKTsKKyAgICAgIH0pOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGNoZWNrQm9keUJsb2IocmVxdWVzdCwgZXhwZWN0ZWRCb2R5KSB7CisgICAgICBy
ZXR1cm4gcmVxdWVzdC5ibG9iKCkudGhlbihmdW5jdGlvbihib2R5QXNCbG9iKSB7CisgICAgICAg
IHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAgICAgICAgIHJlYWRl
ci5vbmxvYWQgPSBmdW5jdGlvbihldnQpIHsKKyAgICAgICAgICAgIHJlc29sdmUocmVhZGVyLnJl
c3VsdCkKKyAgICAgICAgICB9OworICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICByZWplY3QoIkJsb2IncyByZWFkZXIgZmFpbGVkIik7CisgICAgICAg
ICAgfTsKKyAgICAgICAgICByZWFkZXIucmVhZEFzVGV4dChib2R5QXNCbG9iKTsKKyAgICAgICAg
fSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnRoZW4oZnVuY3Rpb24oYm9keSkgeworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoYm9keSwgZXhwZWN0ZWRCb2R5LCAiUmV0cmlldmUgYW5kIHZlcmlm
eSByZXF1ZXN0J3MgYm9keSIpOworICAgICAgICAgIGFzc2VydF90cnVlKHJlcXVlc3QuYm9keVVz
ZWQsICJib2R5IGFzIGJsb2I6IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7CisgICAgICAgIH0pOwor
ICAgICAgfSk7CisgICAgfQorCisgICAgPCEtLSBUYWtlbiBmcm9tIGh0dHBzOi8vZGV2ZWxvcGVy
cy5nb29nbGUuY29tIC0tPgorICAgIGZ1bmN0aW9uIHN0cjJhYihzdHIpIHsKKyAgICAgIHZhciBi
dWYgPSBuZXcgQXJyYXlCdWZmZXIoc3RyLmxlbmd0aCoyKTsgLy8gMiBieXRlcyBmb3IgZWFjaCBj
aGFyCisgICAgICB2YXIgYnVmVmlldyA9IG5ldyBVaW50MTZBcnJheShidWYpOworICAgICAgZm9y
ICh2YXIgaT0wLCBzdHJMZW49c3RyLmxlbmd0aDsgaSA8IHN0ckxlbjsgaSsrKSB7CisgICAgICAg
IGJ1ZlZpZXdbaV0gPSBzdHIuY2hhckNvZGVBdChpKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBi
dWY7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tCb2R5QXJyYXlCdWZmZXIocmVxdWVzdCwg
ZXhwZWN0ZWRCb2R5KSB7CisgICAgICByZXR1cm4gcmVxdWVzdC5hcnJheUJ1ZmZlcigpLnRoZW4o
IGZ1bmN0aW9uKGJvZHlBc0FycmF5QnVmZmVyKSB7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoYm9keUFzQXJyYXlCdWZmZXIsIHN0cjJhYihleHBlY3RlZEJvZHkpLCAiUmV0cmlldmUgYW5k
IHZlcmlmeSByZXF1ZXN0J3MgYm9keSIpOworICAgICAgICBhc3NlcnRfdHJ1ZShyZXF1ZXN0LmJv
ZHlVc2VkLCAiYm9keSBhcyBhcnJheUJ1ZmZlcjogYm9keVVzZWQgdHVybmVkIHRydWUiKTsKKyAg
ICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQm9keUpTT04ocmVxdWVzdCwgZXhw
ZWN0ZWRCb2R5KSB7CisgICAgICByZXR1cm4gcmVxdWVzdC5qc29uKCkudGhlbihmdW5jdGlvbihi
b2R5QXNKU09OKSB7CisgICAgICAgIHZhciBzdHJCb2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keUFz
SlNPTikKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzdHJCb2R5LCBleHBlY3RlZEJvZHksICJSZXRy
aWV2ZSBhbmQgdmVyaWZ5IHJlcXVlc3QncyBib2R5Iik7CisgICAgICAgIGFzc2VydF90cnVlKHJl
cXVlc3QuYm9keVVzZWQsICJib2R5IGFzIGpzb246IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7Cisg
ICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0JvZHlGb3JtRGF0YShyZXF1ZXN0
LCBleHBlY3RlZEJvZHkpIHsKKyAgICAgIHJldHVybiByZXF1ZXN0LmZvcm1EYXRhKCkudGhlbihm
dW5jdGlvbihib2R5QXNGb3JtRGF0YSkgeworICAgICAgICBhc3NlcnRfdHJ1ZShib2R5QXNGb3Jt
RGF0YSBpbnN0YW5jZW9mIEZvcm1EYXRhLCAiU2hvdWxkIHJlY2VpdmUgYSBGb3JtRGF0YSIpOwor
ICAgICAgICBhc3NlcnRfdHJ1ZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9keSBhcyBmb3JtRGF0YTog
Ym9keVVzZWQgdHVybmVkIHRydWUiKTsKKyAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
Y2hlY2tSZXF1ZXN0Qm9keShib2R5LCBib2R5VHlwZSwgY2hlY2tGdW5jdGlvbikgeworICAgICAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcg
UmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiUE9TVCIsICJib2R5IjogYm9keSB9KTsKKyAgICAgICAg
YXNzZXJ0X2ZhbHNlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5VXNlZCBpcyBmYWxzZSBhdCBpbml0
Iik7CisgICAgICAgIHJldHVybiBjaGVja0Z1bmN0aW9uKHJlcXVlc3QsIGJvZHkpOworICAgICAg
fSwgIkNvbnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMgIiArIGJvZHlUeXBlKTsKKyAgICB9CisKKyAg
ICB2YXIgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsKKyAgICBmb3JtRGF0YS5hcHBlbmQoIm5h
bWUiLCAidmFsdWUiKQorICAgIGNoZWNrUmVxdWVzdEJvZHkoIlRoaXMgaXMgcmVxdWVzdCdzIGJv
ZHkiLCAidGV4dCIsIGNoZWNrQm9keVRleHQpOworICAgIGNoZWNrUmVxdWVzdEJvZHkoIlRoaXMg
aXMgcmVxdWVzdCdzIGJvZHkiLCAiYmxvYiIsIGNoZWNrQm9keUJsb2IpOworICAgIGNoZWNrUmVx
dWVzdEJvZHkoIlRoaXMgaXMgcmVxdWVzdCdzIGJvZHkiLCAiYXJyYXlCdWZmZXIiLCBjaGVja0Jv
ZHlBcnJheUJ1ZmZlcik7CisgICAgY2hlY2tSZXF1ZXN0Qm9keShKU09OLnN0cmluZ2lmeSgiVGhp
cyBpcyByZXF1ZXN0J3MgYm9keSIpLCAianNvbiIsIGNoZWNrQm9keUpTT04pOworICAgIGNoZWNr
UmVxdWVzdEJvZHkoZm9ybURhdGEsICJmb3JtRGF0YSIsIGNoZWNrQm9keUZvcm1EYXRhKTsKKwor
ICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgICAgIHZhciByZXF1ZXN0ID0g
bmV3IFJlcXVlc3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAiYm9keSI6ICJ7In0pOworICAgICAg
ICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHRlc3QsIG5ldyBTeW50YXhFcnJvcigpLCByZXF1ZXN0
Lmpzb24oKSk7CisgICAgfSwgIkNvbnN1bWUganNvbiBmcm9tIG5vbi1wYXJzYWJsZSB0ZXh0Iik7
CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1kaXN0dXJiZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E0MGRkNmIxZDMxMTk3YWFlNWIyMGRkOTFlNWIzNjNiNGIw
YmE2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIFJlcXVlc3Qgd2l0aG91dCBib2R5IGNhbm5vdCBi
ZSBkaXN0dXJiZWQgCitQQVNTIENoZWNrIGNsb25pbmcgYSBkaXN0dXJiZWQgcmVxdWVzdCAKK1BB
U1MgQ2hlY2sgY3JlYXRpbmcgYSBuZXcgcmVxdWVzdCBmcm9tIGEgZGlzdHVyYmVkIHJlcXVlc3Qg
CitQQVNTIElucHV0IHJlcXVlc3QgdXNlZCBmb3IgY3JlYXRpbmcgbmV3IHJlcXVlc3QgYmVjYW1l
IGRpc3R1cmJlZCAKK1BBU1MgQ2hlY2sgY29uc3VtaW5nIGEgZGlzdHVyYmVkIHJlcXVlc3QgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1k
aXN0dXJiZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NThkZWY0MTc2OGI3ZmNkY2MzNjQyZGZhZGY3M2Y0
NDE0YTQ1YjljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWRpc3R1cmJlZC5odG1s
CkBAIC0wLDAgKzEsNTUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVxdWVzdCBkaXN0dXJiZWQ8L3Rp
dGxlPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0
d2cub3JnLyNyZXF1ZXN0Ij4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2Zl
dGNoLnNwZWMud2hhdHdnLm9yZy8jYm9keS1taXhpbiI+CisgICAgPG1ldGEgbmFtZT0iYXV0aG9y
IiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fu
b24uZnIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgIHZhciBp
bml0VmFsdWVzRGljdCA9IHsibWV0aG9kIiA6ICJQT1NUIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiYm9keSIgOiAiUmVxdWVzdCdzIGJvZHkiCisgICAgICB9OworCisgICAgICB2YXIg
bm9Cb2R5Q29uc3VtZWQgPSBuZXcgUmVxdWVzdCgiIik7CisgICAgICBub0JvZHlDb25zdW1lZC5i
bG9iKCk7CisgICAgICB2YXIgYm9keUNvbnN1bWVkID0gbmV3IFJlcXVlc3QoIiIsIGluaXRWYWx1
ZXNEaWN0KTsKKyAgICAgIGJvZHlDb25zdW1lZC5ibG9iKCk7CisKKyAgICAgIHRlc3QoZnVuY3Rp
b24oKSB7CisgICAgICAgIGFzc2VydF9mYWxzZShub0JvZHlDb25zdW1lZC5ib2R5VXNlZCAsICJi
b2R5VXNlZCBpcyBmYWxzZSB3aGVuIHJlcXVlc3QgaXMgbm90IGRpc3R1cmJlZCIpOworICAgICAg
ICB0cnkgeworICAgICAgICAgIG5vQm9keUNvbnN1bWVkLmNsb25lKCk7CisgICAgICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJDYW4gdXNlIHJlcXVlc3Qgbm90
IGRpc3R1cmJlZCBmb3IgY3JlYXRpbmcgb3IgY2xvbmluZyByZXF1ZXN0Iik7CisgICAgICAgIH0K
KyAgICAgIH0sICJSZXF1ZXN0IHdpdGhvdXQgYm9keSBjYW5ub3QgYmUgZGlzdHVyYmVkIik7CisK
KyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90cnVlKGJvZHlDb25zdW1l
ZC5ib2R5VXNlZCAsICJib2R5VXNlZCBpcyB0cnVlIHdoZW4gcmVxdWVzdCBpcyBkaXN0dXJiZWQi
KTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeyBi
b2R5Q29uc3VtZWQuY2xvbmUoKTsgfSk7CisgICAgICB9LCAiQ2hlY2sgY2xvbmluZyBhIGRpc3R1
cmJlZCByZXF1ZXN0Iik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2Vy
dF90cnVlKGJvZHlDb25zdW1lZC5ib2R5VXNlZCAsICJib2R5VXNlZCBpcyB0cnVlIHdoZW4gcmVx
dWVzdCBpcyBkaXN0dXJiZWQiKTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9y
KCksIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVzdChib2R5Q29uc3VtZWQpOyB9KTsKKyAgICAgIH0s
ICJDaGVjayBjcmVhdGluZyBhIG5ldyByZXF1ZXN0IGZyb20gYSBkaXN0dXJiZWQgcmVxdWVzdCIp
OworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgYm9keVJlcXVlc3QgPSBu
ZXcgUmVxdWVzdCgiIiwgaW5pdFZhbHVlc0RpY3QpOworICAgICAgICBhc3NlcnRfZmFsc2UoYm9k
eVJlcXVlc3QuYm9keVVzZWQgLCAiYm9keVVzZWQgaXMgZmFsc2Ugd2hlbiByZXF1ZXN0IGlzIG5v
dCBkaXN0dXJiZWQiKTsKKyAgICAgICAgdmFyIHJlcXVlc3RGcm9tUmVxdWVzdCA9IG5ldyBSZXF1
ZXN0KGJvZHlSZXF1ZXN0KTsKKyAgICAgICAgYXNzZXJ0X3RydWUoYm9keVJlcXVlc3QuYm9keVVz
ZWQgLCAiYm9keVVzZWQgaXMgdHJ1ZSB3aGVuIHJlcXVlc3QgaXMgZGlzdHVyYmVkIik7CisgICAg
ICB9LCAiSW5wdXQgcmVxdWVzdCB1c2VkIGZvciBjcmVhdGluZyBuZXcgcmVxdWVzdCBiZWNhbWUg
ZGlzdHVyYmVkIik7CisKKyAgICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAg
ICAgIGFzc2VydF90cnVlKGJvZHlDb25zdW1lZC5ib2R5VXNlZCAsICJib2R5VXNlZCBpcyB0cnVl
IHdoZW4gcmVxdWVzdCBpcyBkaXN0dXJiZWQiKTsKKyAgICAgICAgcmV0dXJuIHByb21pc2VfcmVq
ZWN0cyh0ZXN0LCBuZXcgVHlwZUVycm9yKCksIGJvZHlDb25zdW1lZC5ibG9iKCkpOworICAgICAg
fSwgIkNoZWNrIGNvbnN1bWluZyBhIGRpc3R1cmJlZCByZXF1ZXN0Iik7CisgICAgPC9zY3JpcHQ+
CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJh
NjE3YWU5Yzc4ZmFhOTM1Y2U5NzkxODFjZTQ5MWU4NGZhYzRlYjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKKworUEFT
UyBSZXF1ZXN0SW5pdCdzIHdpbmRvdyBpcyBub3QgbnVsbCAKK1BBU1MgSW5wdXQgVVJMIGlzIG5v
dCB2YWxpZCAKK1BBU1MgSW5wdXQgVVJMIGhhcyBjcmVkZW50aWFscyAKK1BBU1MgUmVxdWVzdElu
aXQncyBtb2RlIGlzIG5hdmlnYXRlIAorUEFTUyBSZXF1ZXN0SW5pdCdzIHJlZmVycmVyIGlzIGlu
dmFsaWQgCitQQVNTIFJlcXVlc3RJbml0J3MgcmVmZXJyZXIgaGFzIGludmFsaWQgb3JpZ2luIAor
UEFTUyBSZXF1ZXN0SW5pdCdzIG1ldGhvZCBpcyBpbnZhbGlkIAorUEFTUyBSZXF1ZXN0SW5pdCdz
IG1ldGhvZCBpcyBmb3JiaWRkZW4gCitQQVNTIFJlcXVlc3RJbml0J3MgbW9kZSBpcyBuby1jb3Jz
IGFuZCBtZXRob2QgaXMgbm90IHNpbXBsZSAKK1BBU1MgUmVxdWVzdEluaXQncyBtb2RlIGlzIG5v
LWNvcnMgYW5kIGludGVncml0eSBpcyBub3QgZW1wdHkgCitQQVNTIEJhZCByZWZlcnJlclBvbGlj
eSBpbml0IHBhcmFtZXRlciB2YWx1ZSAKK1BBU1MgQmFkIG1vZGUgaW5pdCBwYXJhbWV0ZXIgdmFs
dWUgCitQQVNTIEJhZCBjcmVkZW50aWFscyBpbml0IHBhcmFtZXRlciB2YWx1ZSAKK1BBU1MgQmFk
IGNhY2hlIGluaXQgcGFyYW1ldGVyIHZhbHVlIAorUEFTUyBCYWQgcmVkaXJlY3QgaW5pdCBwYXJh
bWV0ZXIgdmFsdWUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTlhZDY5NTBhODM3YmVmMDBlNDk4Zjg4
YjdjNmVhNWY0NWQ0ZWE1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5o
dG1sCkBAIC0wLDAgKzEsNzUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVxdWVzdCBlcnJvcjwvdGl0
bGU+CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3
Zy5vcmcvI3JlcXVlc3QiPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0
Y2guc3BlYy53aGF0d2cub3JnLyNib2R5LW1peGluIj4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3Ii
IHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5v
bi5mciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgdGVzdChm
dW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCkgLCBmdW5j
dGlvbigpIHsgbmV3IFJlcXVlc3QoIiIsIHsid2luZG93IiA6ICJ3aGF0ZXZlciJ9KTsgfSwKKyAg
ICAgICAgICAiRXhwZWN0IFR5cGVFcnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sIlJlcXVlc3RJ
bml0J3Mgd2luZG93IGlzIG5vdCBudWxsIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpICwgZnVuY3Rpb24oKSB7IG5ldyBS
ZXF1ZXN0KCJodHRwOi8vOm5vdCBhIHZhbGlkIFVSTCIpOyB9LAorICAgICAgICAgICJFeHBlY3Qg
VHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAgfSwiSW5wdXQgVVJMIGlzIG5vdCB2YWxpZCIp
CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5
cGVFcnJvcigpICwgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCJodHRwOi8vdXNlcjpwYXNzQHRl
c3QudXJsIik7IH0sCisgICAgICAgICAgIkV4cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uIik7Cisg
ICAgICB9LCJJbnB1dCBVUkwgaGFzIGNyZWRlbnRpYWxzIik7CisKKyAgICAgIHRlc3QoZnVuY3Rp
b24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpICwgZnVuY3Rpb24o
KSB7IG5ldyBSZXF1ZXN0KCIiLCB7Im1vZGUiIDogIm5hdmlnYXRlIn0pOyB9LAorICAgICAgICAg
ICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAgfSwiUmVxdWVzdEluaXQncyBt
b2RlIGlzIG5hdmlnYXRlIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFz
c2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpICwgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCIi
LCB7InJlZmVycmVyIiA6ICJodHRwOi8vOm5vdCBhIHZhbGlkIFVSTCJ9KTsgfSwKKyAgICAgICAg
ICAiRXhwZWN0IFR5cGVFcnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sIlJlcXVlc3RJbml0J3Mg
cmVmZXJyZXIgaXMgaW52YWxpZCIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAg
ICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVz
dCgiIiwgeyJyZWZlcnJlciIgOiAiaHR0cDovL3Rlc3QudXJsIn0pOyB9LAorICAgICAgICAgICJF
eHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAgfSwiUmVxdWVzdEluaXQncyByZWZl
cnJlciBoYXMgaW52YWxpZCBvcmlnaW4iKQorCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAg
ICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsIGZ1bmN0aW9uKCkgeyBuZXcgUmVx
dWVzdCgiIiwgeyJtZXRob2QiIDogIklOIFZBTElEIn0pOyB9LAorICAgICAgICAgICJFeHBlY3Qg
VHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAgfSwgIlJlcXVlc3RJbml0J3MgbWV0aG9kIGlz
IGludmFsaWQiKTsKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3Ro
cm93cyhuZXcgVHlwZUVycm9yKCkgLCBmdW5jdGlvbigpIHsgbmV3IFJlcXVlc3QoIiIsIHsibWV0
aG9kIiA6ICJUUkFDRSJ9KTsgfSwKKyAgICAgICAgICAiRXhwZWN0IFR5cGVFcnJvciBleGNlcHRp
b24iKTsKKyAgICAgIH0sICJSZXF1ZXN0SW5pdCdzIG1ldGhvZCBpcyBmb3JiaWRkZW4iKTsKKwor
ICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVy
cm9yKCkgLCBmdW5jdGlvbigpIHsgbmV3IFJlcXVlc3QoIiIsIHsibW9kZSIgOiAibm8tY29ycyIs
ICJtZXRob2QiIDogIlBVVCJ9KTsgfSwKKyAgICAgICAgICAiRXhwZWN0IFR5cGVFcnJvciBleGNl
cHRpb24iKTsKKyAgICAgIH0sIlJlcXVlc3RJbml0J3MgbW9kZSBpcyBuby1jb3JzIGFuZCBtZXRo
b2QgaXMgbm90IHNpbXBsZSIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBh
c3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsCisgICAgICAgICAgICAgICAgICAgICAgZnVu
Y3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCIiLCB7Im1vZGUiIDogIm5vLWNvcnMiLCAiaW50ZWdyaXR5
IiA6ICJub3QgIGFuIGVtcHR5IHN0cmluZyJ9KTsgfSwKKyAgICAgICAgICAgICAgICAgICAgICAi
RXhwZWN0IFR5cGVFcnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sIlJlcXVlc3RJbml0J3MgbW9k
ZSBpcyBuby1jb3JzIGFuZCBpbnRlZ3JpdHkgaXMgbm90IGVtcHR5Iik7CisKKyAgICAgIHZhciBw
YXJhbWV0ZXJzID0gWyJyZWZlcnJlclBvbGljeSIsICJtb2RlIiwgImNyZWRlbnRpYWxzIiwgImNh
Y2hlIiwgInJlZGlyZWN0Il07CisgICAgICBwYXJhbWV0ZXJzLmZvckVhY2goZnVuY3Rpb24ocGFy
YW1ldGVyKSB7CisgICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIG9wdGlv
bnMgPSB7IH07CisgICAgICAgICAgb3B0aW9uc1twYXJhbWV0ZXJdID0gIkJBRCI7CisgICAgICAg
ICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksICgpID0+IG5ldyBSZXF1ZXN0KCIiLCBv
cHRpb25zKSk7CisgICAgICAgIH0sIkJhZCAiICsgcGFyYW1ldGVyICsiIGluaXQgcGFyYW1ldGVy
IHZhbHVlIik7CisgICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWhlYWRlcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyMWRjNGU3MzIxZGUyNmM3ZmY5
MWEwZDZlNDJlMmM5YmVkNjAxYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaGVh
ZGVycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NiBAQAorCitQQVNTIEFkZGluZyB2YWxpZCBy
ZXF1ZXN0IGhlYWRlciAiQ29udGVudC1UeXBlOiBPSyIgCitQQVNTIEFkZGluZyB2YWxpZCByZXF1
ZXN0IGhlYWRlciAiUG90YXRvOiBPSyIgCitQQVNTIEFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRl
ciAicHJveHk6IE9LIiAKK1BBU1MgQWRkaW5nIHZhbGlkIHJlcXVlc3QgaGVhZGVyICJwcm94eWE6
IE9LIiAKK1BBU1MgQWRkaW5nIHZhbGlkIHJlcXVlc3QgaGVhZGVyICJzZWM6IE9LIiAKK1BBU1Mg
QWRkaW5nIHZhbGlkIHJlcXVlc3QgaGVhZGVyICJzZWNiOiBPSyIgCitQQVNTIEFkZGluZyBpbnZh
bGlkIHJlcXVlc3QgaGVhZGVyICJBY2NlcHQtQ2hhcnNldDogS08iIAorUEFTUyBBZGRpbmcgaW52
YWxpZCByZXF1ZXN0IGhlYWRlciAiYWNjZXB0LWNoYXJzZXQ6IEtPIiAKK1BBU1MgQWRkaW5nIGlu
dmFsaWQgcmVxdWVzdCBoZWFkZXIgIkFDQ0VQVC1FTkNPRElORzogS08iIAorUEFTUyBBZGRpbmcg
aW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQWNjZXB0LUVuY29kaW5nOiBLTyIgCitQQVNTIEFkZGlu
ZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LUhlYWRlcnM6
IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkFjY2Vzcy1Db250cm9s
LVJlcXVlc3QtTWV0aG9kOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVy
ICJDb25uZWN0aW9uOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJD
b250ZW50LUxlbmd0aDogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAi
Q29va2llOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJDb29raWUy
OiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJEYXRlOiBLTyIgCitQ
QVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJETlQ6IEtPIiAKK1BBU1MgQWRkaW5n
IGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkV4cGVjdDogS08iIAorUEFTUyBBZGRpbmcgaW52YWxp
ZCByZXF1ZXN0IGhlYWRlciAiSG9zdDogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0
IGhlYWRlciAiS2VlcC1BbGl2ZTogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhl
YWRlciAiT3JpZ2luOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJS
ZWZlcmVyOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJURTogS08i
IAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiVHJhaWxlcjogS08iIAorUEFT
UyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiVHJhbnNmZXItRW5jb2Rpbmc6IEtPIiAK
K1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlVwZ3JhZGU6IEtPIiAKK1BBU1Mg
QWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlZpYTogS08iIAorUEFTUyBBZGRpbmcgaW52
YWxpZCByZXF1ZXN0IGhlYWRlciAiUHJveHktOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJl
cXVlc3QgaGVhZGVyICJwcm94eS1hOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3Qg
aGVhZGVyICJTZWMtOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJz
ZWMtYjogS08iIAorUEFTUyBBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiQWNj
ZXB0OiBPSyIgCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJBY2Nl
cHQtTGFuZ3VhZ2U6IE9LIiAKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFk
ZXIgImNvbnRlbnQtbGFuZ3VhZ2U6IE9LIiAKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVx
dWVzdCBoZWFkZXIgImNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNv
ZGVkIiAKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgImNvbnRlbnQt
dHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTgiIAor
UEFTUyBBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiY29udGVudC10eXBlOiBt
dWx0aXBhcnQvZm9ybS1kYXRhIiAKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBo
ZWFkZXIgImNvbnRlbnQtdHlwZTogbXVsdGlwYXJ0L2Zvcm0tZGF0YTtjaGFyc2V0PVVURi04IiAK
K1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgImNvbnRlbnQtVFlQRTog
dGV4dC9wbGFpbiIgCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJD
T05URU5ULXR5cGU6IHRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCIgCitQQVNTIEFkZGluZyBpbnZh
bGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgIkNvbnRlbnQtVHlwZTogS08iIAorUEFTUyBBZGRp
bmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJQb3RhdG86IEtPIiAKK1BBU1MgQWRk
aW5nIGludmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAicHJveHk6IEtPIiAKK1BBU1MgQWRk
aW5nIGludmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAicHJveHlhOiBLTyIgCitQQVNTIEFk
ZGluZyBpbnZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgInNlYzogS08iIAorUEFTUyBBZGRp
bmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJzZWNiOiBLTyIgCitQQVNTIENoZWNr
IHRoYXQgcmVxdWVzdCBjb25zdHJ1Y3RvciBpcyBmaWx0ZXJpbmcgaGVhZGVycyBwcm92aWRlZCBh
cyBpbml0IHBhcmFtZXRlciAKK1BBU1MgQ2hlY2sgdGhhdCBuby1jb3JzIHJlcXVlc3QgY29uc3Ry
dWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBwYXJhbWV0ZXIgCitQ
QVNTIENoZWNrIHRoYXQgbm8tY29ycyByZXF1ZXN0IGNvbnN0cnVjdG9yIGlzIGZpbHRlcmluZyBo
ZWFkZXJzIHByb3ZpZGVkIGFzIHBhcnQgb2YgcmVxdWVzdCBwYXJhbWV0ZXIgCitQQVNTIFJlcXVl
c3Qgc2hvdWxkIGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGluaXQgcmVxdWVzdCAKK1BB
U1MgUmVxdWVzdCBzaG91bGQgbm90IGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGluaXQg
cmVxdWVzdCBpZiBpbml0IGhlYWRlcnMgYXJlIHByb3ZpZGVkIAorUEFTUyBSZXF1ZXN0IHNob3Vs
ZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBib2R5IGlmIG5vbmUgaXMgcHJvdmlkZWQg
CitQQVNTIFJlcXVlc3Qgc2hvdWxkIGdldCBpdHMgY29udGVudC10eXBlIGZyb20gaW5pdCBoZWFk
ZXJzIGlmIG9uZSBpcyBwcm92aWRlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRl
cnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWJkZDYwMWNj
NDY2YWYwOTJjZDMwZjVkMWNjMjEwOWE4ZmE5M2Y0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1oZWFkZXJzLmh0bWwKQEAgLTAsMCArMSwxNTAgQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+
UmVxdWVzdCBIZWFkZXJzPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRw
czovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+CisgICAgPG1ldGEgbmFtZT0iYXV0
aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYu
Y2Fub24uZnIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgIHZh
ciB2YWxpZFJlcXVlc3RIZWFkZXJzID0gWworICAgICAgICBbIkNvbnRlbnQtVHlwZSIsICJPSyJd
LAorICAgICAgICBbIlBvdGF0byIsICJPSyJdLAorICAgICAgICBbInByb3h5IiwgIk9LIl0sCisg
ICAgICAgIFsicHJveHlhIiwgIk9LIl0sCisgICAgICAgIFsic2VjIiwgIk9LIl0sCisgICAgICAg
IFsic2VjYiIsICJPSyJdLAorICAgICAgXTsKKyAgICAgIHZhciBpbnZhbGlkUmVxdWVzdEhlYWRl
cnMgPSBbCisgICAgICAgIFsiQWNjZXB0LUNoYXJzZXQiLCAiS08iXSwKKyAgICAgICAgWyJhY2Nl
cHQtY2hhcnNldCIsICJLTyJdLAorICAgICAgICBbIkFDQ0VQVC1FTkNPRElORyIsICJLTyJdLAor
ICAgICAgICBbIkFjY2VwdC1FbmNvZGluZyIsICJLTyJdLAorICAgICAgICBbIkFjY2Vzcy1Db250
cm9sLVJlcXVlc3QtSGVhZGVycyIsICJLTyJdLAorICAgICAgICBbIkFjY2Vzcy1Db250cm9sLVJl
cXVlc3QtTWV0aG9kIiwgIktPIl0sCisgICAgICAgIFsiQ29ubmVjdGlvbiIsICJLTyJdLAorICAg
ICAgICBbIkNvbnRlbnQtTGVuZ3RoIiwgIktPIl0sCisgICAgICAgIFsiQ29va2llIiwgIktPIl0s
CisgICAgICAgIFsiQ29va2llMiIsICJLTyJdLAorICAgICAgICBbIkRhdGUiLCAiS08iXSwKKyAg
ICAgICAgWyJETlQiLCAiS08iXSwKKyAgICAgICAgWyJFeHBlY3QiLCAiS08iXSwKKyAgICAgICAg
WyJIb3N0IiwgIktPIl0sCisgICAgICAgIFsiS2VlcC1BbGl2ZSIsICJLTyJdLAorICAgICAgICBb
Ik9yaWdpbiIsICJLTyJdLAorICAgICAgICBbIlJlZmVyZXIiLCAiS08iXSwKKyAgICAgICAgWyJU
RSIsICJLTyJdLAorICAgICAgICBbIlRyYWlsZXIiLCAiS08iXSwKKyAgICAgICAgWyJUcmFuc2Zl
ci1FbmNvZGluZyIsICJLTyJdLAorICAgICAgICBbIlVwZ3JhZGUiLCAiS08iXSwKKyAgICAgICAg
WyJWaWEiLCAiS08iXSwKKyAgICAgICAgWyJQcm94eS0iLCAiS08iXSwKKyAgICAgICAgWyJwcm94
eS1hIiwgIktPIl0sCisgICAgICAgIFsiU2VjLSIsICJLTyJdLAorICAgICAgICBbInNlYy1iIiwg
IktPIl0sCisgICAgICBdOworCisgICAgICB2YXIgdmFsaWRSZXF1ZXN0Tm9Db3JzSGVhZGVycyA9
IFsKKyAgICAgICAgWyJBY2NlcHQiLCAiT0siXSwKKyAgICAgICAgWyJBY2NlcHQtTGFuZ3VhZ2Ui
LCAiT0siXSwKKyAgICAgICAgWyJjb250ZW50LWxhbmd1YWdlIiwgIk9LIl0sCisgICAgICAgIFsi
Y29udGVudC10eXBlIiwgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCJdLAorICAg
ICAgICBbImNvbnRlbnQtdHlwZSIsICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7
Y2hhcnNldD1VVEYtOCJdLAorICAgICAgICBbImNvbnRlbnQtdHlwZSIsICJtdWx0aXBhcnQvZm9y
bS1kYXRhIl0sCisgICAgICAgIFsiY29udGVudC10eXBlIiwgIm11bHRpcGFydC9mb3JtLWRhdGE7
Y2hhcnNldD1VVEYtOCJdLAorICAgICAgICBbImNvbnRlbnQtVFlQRSIsICJ0ZXh0L3BsYWluIl0s
CisgICAgICAgIFsiQ09OVEVOVC10eXBlIiwgInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCJdLAor
ICAgICAgXTsKKyAgICAgIHZhciBpbnZhbGlkUmVxdWVzdE5vQ29yc0hlYWRlcnMgPSBbCisgICAg
ICAgIFsiQ29udGVudC1UeXBlIiwgIktPIl0sCisgICAgICAgIFsiUG90YXRvIiwgIktPIl0sCisg
ICAgICAgIFsicHJveHkiLCAiS08iXSwKKyAgICAgICAgWyJwcm94eWEiLCAiS08iXSwKKyAgICAg
ICAgWyJzZWMiLCAiS08iXSwKKyAgICAgICAgWyJzZWNiIiwgIktPIl0sCisgICAgICBdOworCisg
ICAgICB2YWxpZFJlcXVlc3RIZWFkZXJzLmZvckVhY2goZnVuY3Rpb24oaGVhZGVyKSB7CisgICAg
ICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVz
dCgiIik7CisgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzLnNldChoZWFkZXJbMF0sIGhlYWRlclsx
XSk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KGhlYWRlclsw
XSksIGhlYWRlclsxXSk7CisgICAgICAgIH0sICJBZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFkZXIg
XCIiICsgaGVhZGVyWzBdICsgIjogIiArIGhlYWRlclsxXSArICJcIiIpOworICAgICAgfSk7Cisg
ICAgICBpbnZhbGlkUmVxdWVzdEhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihoZWFkZXIpIHsKKyAg
ICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1
ZXN0KCIiKTsKKyAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMuc2V0KGhlYWRlclswXSwgaGVhZGVy
WzFdKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoaGVhZGVy
WzBdKSwgbnVsbCk7CisgICAgICAgIH0sICJBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciBc
IiIgKyBoZWFkZXJbMF0gKyAiOiAiICsgaGVhZGVyWzFdICsgIlwiIik7CisgICAgICB9KTsKKwor
ICAgICAgdmFsaWRSZXF1ZXN0Tm9Db3JzSGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKGhlYWRlcikg
eworICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciByZXF1ZXN0Tm9Db3Jz
ID0gbmV3IFJlcXVlc3QoIiIsIHsibW9kZSI6ICJuby1jb3JzIn0pOworICAgICAgICAgIHJlcXVl
c3ROb0NvcnMuaGVhZGVycy5zZXQoaGVhZGVyWzBdLCBoZWFkZXJbMV0pOworICAgICAgICAgIGFz
c2VydF9lcXVhbHMocmVxdWVzdE5vQ29ycy5oZWFkZXJzLmdldChoZWFkZXJbMF0pLCBoZWFkZXJb
MV0pOworICAgICAgICB9LCAiQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgXCIi
ICsgaGVhZGVyWzBdICsgIjogIiArIGhlYWRlclsxXSArICJcIiIpOworICAgICAgfSk7CisgICAg
ICBpbnZhbGlkUmVxdWVzdE5vQ29yc0hlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihoZWFkZXIpIHsK
KyAgICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgcmVxdWVzdE5vQ29ycyA9
IG5ldyBSZXF1ZXN0KCIiLCB7Im1vZGUiOiAibm8tY29ycyJ9KTsKKyAgICAgICAgICByZXF1ZXN0
Tm9Db3JzLmhlYWRlcnMuc2V0KGhlYWRlclswXSwgaGVhZGVyWzFdKTsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlcXVlc3ROb0NvcnMuaGVhZGVycy5nZXQoaGVhZGVyWzBdKSwgbnVsbCk7Cisg
ICAgICAgIH0sICJBZGRpbmcgaW52YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyIFwiIiArIGhl
YWRlclswXSArICI6ICIgKyBoZWFkZXJbMV0gKyAiXCIiKTsKKyAgICAgIH0pOworCisgICAgICB0
ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKFtbIkNv
b2tpZTIiLCAicG90YXRvIl1dKTsKKyAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgi
IiwgeyJoZWFkZXJzIjogaGVhZGVyc30pOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3Qu
aGVhZGVycy5nZXQoIkNvb2tpZTIiKSwgbnVsbCk7CisgICAgICB9LCAiQ2hlY2sgdGhhdCByZXF1
ZXN0IGNvbnN0cnVjdG9yIGlzIGZpbHRlcmluZyBoZWFkZXJzIHByb3ZpZGVkIGFzIGluaXQgcGFy
YW1ldGVyIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBoZWFkZXJz
ID0gbmV3IEhlYWRlcnMoW1siQ29udGVudC1UeXBlIiwgInBvdGF0byJdXSk7CisgICAgICAgIHZh
ciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyI6IGhlYWRlcnMsICJtb2RlIjog
Im5vLWNvcnMifSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldCgi
Q29udGVudC1UeXBlIiksIG51bGwpOworICAgICAgfSwgIkNoZWNrIHRoYXQgbm8tY29ycyByZXF1
ZXN0IGNvbnN0cnVjdG9yIGlzIGZpbHRlcmluZyBoZWFkZXJzIHByb3ZpZGVkIGFzIGluaXQgcGFy
YW1ldGVyIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBoZWFkZXJz
ID0gbmV3IEhlYWRlcnMoW1siQ29udGVudC1UeXBlIiwgInBvdGF0byJdXSk7CisgICAgICAgIHZh
ciBpbml0aWFsUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiOiBoZWFkZXJzfSk7
CisgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3QsIHsibW9k
ZSI6ICJuby1jb3JzIn0pOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5n
ZXQoIkNvbnRlbnQtVHlwZSIpLCBudWxsKTsKKyAgICAgIH0sICJDaGVjayB0aGF0IG5vLWNvcnMg
cmVxdWVzdCBjb25zdHJ1Y3RvciBpcyBmaWx0ZXJpbmcgaGVhZGVycyBwcm92aWRlZCBhcyBwYXJ0
IG9mIHJlcXVlc3QgcGFyYW1ldGVyIik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAg
ICAgIHZhciBpbml0aWFsSGVhZGVycyA9IG5ldyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIsICJw
b3RhdG8iXV0pOworICAgICAgICB2YXIgaW5pdGlhbFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwg
eyJoZWFkZXJzIiA6IGluaXRpYWxIZWFkZXJzfSk7CisgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3
IFJlcXVlc3QoaW5pdGlhbFJlcXVlc3QpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3Qu
aGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpLCAicG90YXRvIik7CisgICAgICB9LCAiUmVxdWVz
dCBzaG91bGQgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSB0aGUgaW5pdCByZXF1ZXN0Iik7CisK
KyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBpbml0aWFsSGVhZGVycyA9IG5l
dyBIZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIsICJwb3RhdG8iXV0pOworICAgICAgICB2YXIgaW5p
dGlhbFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIiA6IGluaXRpYWxIZWFkZXJz
fSk7CisgICAgICAgIHZhciBoZWFkZXJzID0gbmV3IEhlYWRlcnMoW10pOworICAgICAgICB2YXIg
cmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGluaXRpYWxSZXF1ZXN0LCB7ImhlYWRlcnMiIDogaGVhZGVy
c30pOworICAgICAgICBhc3NlcnRfZmFsc2UocmVxdWVzdC5oZWFkZXJzLmhhcygiQ29udGVudC1U
eXBlIikpOworICAgICAgfSwgIlJlcXVlc3Qgc2hvdWxkIG5vdCBnZXQgaXRzIGNvbnRlbnQtdHlw
ZSBmcm9tIHRoZSBpbml0IHJlcXVlc3QgaWYgaW5pdCBoZWFkZXJzIGFyZSBwcm92aWRlZCIpOwor
CisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaW5pdGlhbEhlYWRlcnMgPSBu
ZXcgSGVhZGVycyhbWyJDb250ZW50LVR5cGUtRXh0cmEiLCAicG90YXRvIl1dKTsKKyAgICAgICAg
dmFyIGluaXRpYWxSZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyIgOiBpbml0aWFs
SGVhZGVycywgImJvZHkiIDogInRoaXMgaXMgbXkgcGxhdGUiLCAibWV0aG9kIiA6ICJQT1NUIn0p
OworICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGluaXRpYWxSZXF1ZXN0KTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKSwg
InRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCIpOworICAgICAgfSwgIlJlcXVlc3Qgc2hvdWxkIGdl
dCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGJvZHkgaWYgbm9uZSBpcyBwcm92aWRlZCIpOwor
CisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaW5pdGlhbEhlYWRlcnMgPSBu
ZXcgSGVhZGVycyhbWyJDb250ZW50LVR5cGUiLCAicG90YXRvIl1dKTsKKyAgICAgICAgdmFyIGlu
aXRpYWxSZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyIgOiBpbml0aWFsSGVhZGVy
cywgImJvZHkiIDogInRoaXMgaXMgbXkgcGxhdGUiLCAibWV0aG9kIiA6ICJQT1NUIn0pOworICAg
ICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGluaXRpYWxSZXF1ZXN0KTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCJDb250ZW50LVR5cGUiKSwgInBvdGF0
byIpOworICAgICAgfSwgIlJlcXVlc3Qgc2hvdWxkIGdldCBpdHMgY29udGVudC10eXBlIGZyb20g
aW5pdCBoZWFkZXJzIGlmIG9uZSBpcyBwcm92aWRlZCIpOworCisgICAgPC9zY3JpcHQ+CisgIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pZGwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LWlkbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VjNjg4MjExZmM0
N2QxN2Y3NWQ4NGI3Y2ZiODk5ODM5ZTRhNzQ1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1pZGwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTIgQEAKKworRkFJTCBSZXF1ZXN0IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNz
ZXJ0X2VxdWFsczogY2xhc3Mgc3RyaW5nIG9mIFJlcXVlc3QgZXhwZWN0ZWQgIltvYmplY3QgRnVu
Y3Rpb25dIiBidXQgZ290ICJbb2JqZWN0IFJlcXVlc3RDb25zdHJ1Y3Rvcl0iCitQQVNTIFJlcXVl
c3QgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggCitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlIG9iamVj
dCBuYW1lIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVz
IG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorRkFJTCBSZXF1ZXN0IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
ImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfdHJ1ZTogUmVxdWVzdC5wcm90b3R5cGUuY29u
c3RydWN0b3IgaXMgbm90IHdyaXRhYmxlIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFJl
cXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWV0aG9kIGFzc2VydF9lcXVhbHM6IGdldHRlciBt
dXN0IGJlIEZ1bmN0aW9uIGV4cGVjdGVkICJmdW5jdGlvbiIgYnV0IGdvdCAidW5kZWZpbmVkIgor
RkFJTCBSZXF1ZXN0IGludGVyZmFjZTogYXR0cmlidXRlIHVybCBhc3NlcnRfZXF1YWxzOiBnZXR0
ZXIgbXVzdCBiZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5l
ZCIKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBoZWFkZXJzIGFzc2VydF9lcXVh
bHM6IGdldHRlciBtdXN0IGJlIEZ1bmN0aW9uIGV4cGVjdGVkICJmdW5jdGlvbiIgYnV0IGdvdCAi
dW5kZWZpbmVkIgorRkFJTCBSZXF1ZXN0IGludGVyZmFjZTogYXR0cmlidXRlIHR5cGUgYXNzZXJ0
X2VxdWFsczogZ2V0dGVyIG11c3QgYmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQg
Z290ICJ1bmRlZmluZWQiCitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgZGVzdGlu
YXRpb24gYXNzZXJ0X2VxdWFsczogZ2V0dGVyIG11c3QgYmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1
bmN0aW9uIiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgcmVmZXJyZXIgYXNzZXJ0X2VxdWFsczogZ2V0dGVyIG11c3QgYmUgRnVuY3Rpb24gZXhw
ZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJlcXVlc3QgaW50ZXJm
YWNlOiBhdHRyaWJ1dGUgcmVmZXJyZXJQb2xpY3kgYXNzZXJ0X2VxdWFsczogZ2V0dGVyIG11c3Qg
YmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlM
IFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbW9kZSBhc3NlcnRfZXF1YWxzOiBnZXR0ZXIg
bXVzdCBiZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5lZCIK
K0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjcmVkZW50aWFscyBhc3NlcnRfZXF1
YWxzOiBnZXR0ZXIgbXVzdCBiZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1dCBnb3Qg
InVuZGVmaW5lZCIKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBjYWNoZSBhc3Nl
cnRfZXF1YWxzOiBnZXR0ZXIgbXVzdCBiZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1
dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSByZWRp
cmVjdCBhc3NlcnRfZXF1YWxzOiBnZXR0ZXIgbXVzdCBiZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVu
Y3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBpbnRlZ3JpdHkgYXNzZXJ0X2VxdWFsczogZ2V0dGVyIG11c3QgYmUgRnVuY3Rpb24gZXhw
ZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290ICJ1bmRlZmluZWQiCitQQVNTIFJlcXVlc3QgaW50ZXJm
YWNlOiBvcGVyYXRpb24gY2xvbmUoKSAKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBib2R5VXNlZCBhc3NlcnRfZXF1YWxzOiBnZXR0ZXIgbXVzdCBiZSBGdW5jdGlvbiBleHBlY3Rl
ZCAiZnVuY3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6
IG9wZXJhdGlvbiBhcnJheUJ1ZmZlcigpIGFzc2VydF90aHJvd3M6IGNhbGxpbmcgb3BlcmF0aW9u
IHdpdGggdGhpcyA9IG51bGwgZGlkbid0IHRocm93IFR5cGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgIG1lbWJlckhvbGRlck9iamVjdFttZW1iZXIubi4uLiIg
ZGlkIG5vdCB0aHJvdworRkFJTCBSZXF1ZXN0IGludGVyZmFjZTogb3BlcmF0aW9uIGJsb2IoKSBh
c3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9wZXJhdGlvbiB3aXRoIHRoaXMgPSBudWxsIGRpZG4ndCB0
aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBt
ZW1iZXJIb2xkZXJPYmplY3RbbWVtYmVyLm4uLi4iIGRpZCBub3QgdGhyb3cKK0ZBSUwgUmVxdWVz
dCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBmb3JtRGF0YSgpIGFzc2VydF90aHJvd3M6IGNhbGxpbmcg
b3BlcmF0aW9uIHdpdGggdGhpcyA9IG51bGwgZGlkbid0IHRocm93IFR5cGVFcnJvciBmdW5jdGlv
biAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIG1lbWJlckhvbGRlck9iamVjdFttZW1i
ZXIubi4uLiIgZGlkIG5vdCB0aHJvdworRkFJTCBSZXF1ZXN0IGludGVyZmFjZTogb3BlcmF0aW9u
IGpzb24oKSBhc3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9wZXJhdGlvbiB3aXRoIHRoaXMgPSBudWxs
IGRpZG4ndCB0aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3RbbWVtYmVyLm4uLi4iIGRpZCBub3QgdGhyb3cKK0ZB
SUwgUmVxdWVzdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiB0ZXh0KCkgYXNzZXJ0X3Rocm93czogY2Fs
bGluZyBvcGVyYXRpb24gd2l0aCB0aGlzID0gbnVsbCBkaWRuJ3QgdGhyb3cgVHlwZUVycm9yIGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgbWVtYmVySG9sZGVyT2JqZWN0
W21lbWJlci5uLi4uIiBkaWQgbm90IHRocm93CitQQVNTIFJlcXVlc3QgbXVzdCBiZSBwcmltYXJ5
IGludGVyZmFjZSBvZiBuZXcgUmVxdWVzdCgiIikgCitQQVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBu
ZXcgUmVxdWVzdCgiIikgCitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikg
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJtZXRob2QiIHdpdGggdGhlIHByb3BlciB0eXBlICgwKSAK
K1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJv
cGVydHkgInVybCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDEpIAorUEFTUyBSZXF1ZXN0IGludGVy
ZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaGVhZGVycyIgd2l0
aCB0aGUgcHJvcGVyIHR5cGUgKDIpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVl
c3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlwZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
KDMpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiZGVzdGluYXRpb24iIHdpdGggdGhlIHByb3BlciB0eXBlICg0KSAKK1BBU1Mg
UmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
InJlZmVycmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNSkgCitGQUlMIFJlcXVlc3QgaW50ZXJm
YWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZWZlcnJlclBvbGlj
eSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDYpIFVucmVjb2duaXplZCB0eXBlIFJlZmVycmVyUG9s
aWN5CitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJtb2RlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoNykgCitQQVNTIFJlcXVlc3Qg
aW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjcmVkZW50
aWFscyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDgpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTog
bmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2FjaGUiIHdpdGggdGhlIHBy
b3BlciB0eXBlICg5KSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgInJlZGlyZWN0IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTAp
IAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAiaW50ZWdyaXR5IiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTEpIAorUEFTUyBSZXF1
ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xv
bmUiIHdpdGggdGhlIHByb3BlciB0eXBlICgxMikgCitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBu
ZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJib2R5VXNlZCIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgKDEzKSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIi
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFycmF5QnVmZmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZSAoMTQpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAiYmxvYiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDE1KSAKK1BBU1MgUmVx
dWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImZv
cm1EYXRhIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTYpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFj
ZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAianNvbiIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUgKDE3KSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIi
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRleHQiIHdpdGggdGhlIHByb3BlciB0eXBlICgxOCkg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pZGwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pZGwu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wZmFlZmVlM2FhNDQ2MGM1Y2QwNjJlZjk4ZGZkNGE5ZGI5Y2NhN2Yx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWlkbC5odG1sCkBAIC0wLDAgKzEsODUg
QEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVxdWVzdCBpZGwgaW50ZXJmYWNlPC90aXRsZT4KKyAgICA8
bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVz
cG9uc2UiPgorICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZy
YW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KKyAgICA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+
CisgICAgPHNjcmlwdCBpZD0iYm9keS1pZGwiIHR5cGU9InRleHQvcGxhaW4iPgorICAgICAgdHlw
ZWRlZiBhbnkgSlNPTjsKKyAgICAgIHR5cGVkZWYgKEJsb2Igb3IgQnVmZmVyU291cmNlIG9yIEZv
cm1EYXRhIG9yIFVSTFNlYXJjaFBhcmFtcyBvciBVU1ZTdHJpbmcpIEJvZHlJbml0OworCisgICAg
ICBbTm9JbnRlcmZhY2VPYmplY3QsCisgICAgICBFeHBvc2VkPShXaW5kb3csV29ya2VyKV0KKyAg
ICAgIGludGVyZmFjZSBCb2R5IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
Ym9keVVzZWQ7CisgICAgICAgIFtOZXdPYmplY3RdIFByb21pc2U8QXJyYXlCdWZmZXI+IGFycmF5
QnVmZmVyKCk7CisgICAgICAgIFtOZXdPYmplY3RdIFByb21pc2U8QmxvYj4gYmxvYigpOworICAg
ICAgICBbTmV3T2JqZWN0XSBQcm9taXNlPEZvcm1EYXRhPiBmb3JtRGF0YSgpOworICAgICAgICBb
TmV3T2JqZWN0XSBQcm9taXNlPEpTT04+IGpzb24oKTsKKyAgICAgICAgW05ld09iamVjdF0gUHJv
bWlzZTxVU1ZTdHJpbmc+IHRleHQoKTsKKyAgICAgIH07CisgICAgPC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBpZD0icmVxdWVzdC1pZGwiIHR5cGU9InRleHQvcGxhaW4iPgorICAgICAgdHlwZWRlZiAo
UmVxdWVzdCBvciBVU1ZTdHJpbmcpIFJlcXVlc3RJbmZvOworCisgICAgICBbQ29uc3RydWN0b3Io
UmVxdWVzdEluZm8gaW5wdXQsIG9wdGlvbmFsIFJlcXVlc3RJbml0IGluaXQpLAorICAgICAgRXhw
b3NlZD0oV2luZG93LFdvcmtlcildCisgICAgICBpbnRlcmZhY2UgUmVxdWVzdCB7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBCeXRlU3RyaW5nIG1ldGhvZDsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFVTVlN0cmluZyB1cmw7CisgICAgICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBh
dHRyaWJ1dGUgSGVhZGVycyBoZWFkZXJzOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBS
ZXF1ZXN0VHlwZSB0eXBlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVzdERlc3Rp
bmF0aW9uIGRlc3RpbmF0aW9uOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVVNWU3RyaW5n
IHJlZmVycmVyOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVmZXJyZXJQb2xpY3kgcmVm
ZXJyZXJQb2xpY3k7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSZXF1ZXN0TW9kZSBtb2Rl
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVzdENyZWRlbnRpYWxzIGNyZWRlbnRp
YWxzOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVzdENhY2hlIGNhY2hlOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVzdFJlZGlyZWN0IHJlZGlyZWN0OworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGludGVncml0eTsKKworICAgICAgICBbTmV3
T2JqZWN0XSBSZXF1ZXN0IGNsb25lKCk7CisgICAgICB9OworICAgICAgUmVxdWVzdCBpbXBsZW1l
bnRzIEJvZHk7CisKKyAgICAgIGRpY3Rpb25hcnkgUmVxdWVzdEluaXQgeworICAgICAgICBCeXRl
U3RyaW5nIG1ldGhvZDsKKyAgICAgICAgSGVhZGVyc0luaXQgaGVhZGVyczsKKyAgICAgICAgQm9k
eUluaXQ/IGJvZHk7CisgICAgICAgIFVTVlN0cmluZyByZWZlcnJlcjsKKyAgICAgICAgUmVmZXJy
ZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3k7CisgICAgICAgIFJlcXVlc3RNb2RlIG1vZGU7CisgICAg
ICAgIFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFsczsKKyAgICAgICAgUmVxdWVzdENhY2hl
IGNhY2hlOworICAgICAgICBSZXF1ZXN0UmVkaXJlY3QgcmVkaXJlY3Q7CisgICAgICAgIERPTVN0
cmluZyBpbnRlZ3JpdHk7CisgICAgICAgIGFueSB3aW5kb3c7IC8vIGNhbiBvbmx5IGJlIHNldCB0
byBudWxsCisgICAgICB9OworCisgICAgICBlbnVtIFJlcXVlc3RUeXBlIHsgIiIsICJhdWRpbyIs
ICJmb250IiwgImltYWdlIiwgInNjcmlwdCIsICJzdHlsZSIsICJ0cmFjayIsICJ2aWRlbyIgfTsK
KyAgICAgIGVudW0gUmVxdWVzdERlc3RpbmF0aW9uIHsgIiIsICJkb2N1bWVudCIsICJzaGFyZWR3
b3JrZXIiLCAic3VicmVzb3VyY2UiLCAidW5rbm93biIsICJ3b3JrZXIiIH07CisgICAgICBlbnVt
IFJlcXVlc3RNb2RlIHsgIm5hdmlnYXRlIiwgInNhbWUtb3JpZ2luIiwgIm5vLWNvcnMiLCAiY29y
cyIgfTsKKyAgICAgIGVudW0gUmVxdWVzdENyZWRlbnRpYWxzIHsgIm9taXQiLCAic2FtZS1vcmln
aW4iLCAiaW5jbHVkZSIgfTsKKyAgICAgIGVudW0gUmVxdWVzdENhY2hlIHsgImRlZmF1bHQiLCAi
bm8tc3RvcmUiLCAicmVsb2FkIiwgIm5vLWNhY2hlIiwgImZvcmNlLWNhY2hlIiwgIm9ubHktaWYt
Y2FjaGVkIiB9OworICAgICAgZW51bSBSZXF1ZXN0UmVkaXJlY3QgeyAiZm9sbG93IiwgImVycm9y
IiwgIm1hbnVhbCIgfTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgdmFyIGlk
bHNBcnJheSA9IG5ldyBJZGxBcnJheSgpOworICAgICAgdmFyIGlkbCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJib2R5LWlkbCIpLmlubmVySFRNTAorICAgICAgaWRsICs9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZXF1ZXN0LWlkbCIpLmlubmVySFRNTAorCisgICAgICBpZGxzQXJyYXku
YWRkX2lkbHMoaWRsKTsKKyAgICAgIGlkbHNBcnJheS5hZGRfdW50ZXN0ZWRfaWRscygiaW50ZXJm
YWNlIEhlYWRlcnMge307Iik7CisgICAgICBpZGxzQXJyYXkuYWRkX29iamVjdHMoeyBSZXF1ZXN0
OiBbJ25ldyBSZXF1ZXN0KCIiKSddIH0pOworICAgICAgaWRsc0FycmF5LnRlc3QoKTsKKyAgICA8
L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWlu
aXQtMDAxLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDEuc3ViLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZWY2NDlkYjg5MGZjZTUzNTI1YWFlNTdhYTgwYWRmMjYxZjll
ZTE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAxLnN1Yi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzNiBAQAorCitQQVNTIENoZWNrIG1ldGhvZCBpbml0IHZhbHVlIG9m
IEdFVCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIG1ldGhvZCBpbml0IHZhbHVl
IG9mIEhFQUQgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBtZXRob2QgaW5pdCB2
YWx1ZSBvZiBQT1NUIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgbWV0aG9kIGlu
aXQgdmFsdWUgb2YgUFVUIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgbWV0aG9k
IGluaXQgdmFsdWUgb2YgREVMRVRFIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sg
bWV0aG9kIGluaXQgdmFsdWUgb2YgT1BUSU9OUyBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNT
IENoZWNrIG1ldGhvZCBpbml0IHZhbHVlIG9mIGhlYWQgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAor
UEFTUyBDaGVjayByZWZlcnJlciBpbml0IHZhbHVlIG9mIC9yZWxhdGl2ZS9yZXNzb3VyY2UgYW5k
IGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayByZWZlcnJlciBpbml0IHZhbHVlIG9mIGh0
dHA6Ly9sb2NhbGhvc3Q6ODgwMC9yZWxhdGl2ZS9yZXNzb3VyY2U/cXVlcnk9dHJ1ZSNmcmFnbWVu
dCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIHJlZmVycmVyIGluaXQgdmFsdWUg
b2YgaHR0cDovL2xvY2FsaG9zdDo4ODAwLyBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENo
ZWNrIHJlZmVycmVyIGluaXQgdmFsdWUgb2YgIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1Mg
Q2hlY2sgcmVmZXJyZXJQb2xpY3kgaW5pdCB2YWx1ZSBvZiAgYW5kIGFzc29jaWF0ZWQgZ2V0dGVy
IAorUEFTUyBDaGVjayByZWZlcnJlclBvbGljeSBpbml0IHZhbHVlIG9mIG5vLXJlZmVycmVyIGFu
ZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgcmVmZXJyZXJQb2xpY3kgaW5pdCB2YWx1
ZSBvZiBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQ
QVNTIENoZWNrIHJlZmVycmVyUG9saWN5IGluaXQgdmFsdWUgb2Ygb3JpZ2luLW9ubHkgYW5kIGFz
c29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayByZWZlcnJlclBvbGljeSBpbml0IHZhbHVlIG9m
IG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENo
ZWNrIHJlZmVycmVyUG9saWN5IGluaXQgdmFsdWUgb2YgdW5zYWZlLXVybCBhbmQgYXNzb2NpYXRl
ZCBnZXR0ZXIgCitQQVNTIENoZWNrIG1vZGUgaW5pdCB2YWx1ZSBvZiBzYW1lLW9yaWdpbiBhbmQg
YXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIG1vZGUgaW5pdCB2YWx1ZSBvZiBuby1jb3Jz
IGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgbW9kZSBpbml0IHZhbHVlIG9mIGNv
cnMgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBjcmVkZW50aWFscyBpbml0IHZh
bHVlIG9mIG9taXQgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBjcmVkZW50aWFs
cyBpbml0IHZhbHVlIG9mIHNhbWUtb3JpZ2luIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1Mg
Q2hlY2sgY3JlZGVudGlhbHMgaW5pdCB2YWx1ZSBvZiBpbmNsdWRlIGFuZCBhc3NvY2lhdGVkIGdl
dHRlciAKK1BBU1MgQ2hlY2sgY2FjaGUgaW5pdCB2YWx1ZSBvZiBkZWZhdWx0IGFuZCBhc3NvY2lh
dGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgY2FjaGUgaW5pdCB2YWx1ZSBvZiBuby1zdG9yZSBhbmQg
YXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIGNhY2hlIGluaXQgdmFsdWUgb2YgcmVsb2Fk
IGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgY2FjaGUgaW5pdCB2YWx1ZSBvZiBu
by1jYWNoZSBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIGNhY2hlIGluaXQgdmFs
dWUgb2YgZm9yY2UtY2FjaGUgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayByZWRp
cmVjdCBpbml0IHZhbHVlIG9mIGZvbGxvdyBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENo
ZWNrIHJlZGlyZWN0IGluaXQgdmFsdWUgb2YgZXJyb3IgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAor
UEFTUyBDaGVjayByZWRpcmVjdCBpbml0IHZhbHVlIG9mIG1hbnVhbCBhbmQgYXNzb2NpYXRlZCBn
ZXR0ZXIgCitQQVNTIENoZWNrIGludGVncml0eSBpbml0IHZhbHVlIG9mICBhbmQgYXNzb2NpYXRl
ZCBnZXR0ZXIgCitQQVNTIENoZWNrIGludGVncml0eSBpbml0IHZhbHVlIG9mIEFaRVJUWVVJT1Ax
MjM0NTY3ODkwIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgd2luZG93IGluaXQg
dmFsdWUgb2YgbnVsbCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1pbml0LTAwMS5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMS5zdWIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hOGMzNmQ5ZjA3NWU5ZTZlZDk4OTliZjc3YTdhZTcxNTVmOTlhYmRlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAxLnN1Yi5odG1sCkBAIC0wLDAg
KzEsOTAgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVxdWVzdCBpbml0OiBzaW1wbGUgY2FzZXM8L3Rp
dGxlPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0
d2cub3JnLyNyZXF1ZXN0Ij4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBS
ZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+CisgICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgPC9o
ZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgdmFyIG1ldGhvZHMgPSB7ImdpdmVu
VmFsdWVzIiA6IFsiR0VUIiwgIkhFQUQiLCAiUE9TVCIsICJQVVQiLCAiREVMRVRFIiwgIk9QVElP
TlMiLCAiaGVhZCJdLAorICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkVmFsdWVzIiA6IFsi
R0VUIiwgIkhFQUQiLCAiUE9TVCIsICJQVVQiLCAiREVMRVRFIiwgIk9QVElPTlMiLCAiSEVBRCJd
CisgICAgICB9OworICAgICAgdmFyIHJlZmVycmVycyA9IHsiZ2l2ZW5WYWx1ZXMiIDogWyIvcmVs
YXRpdmUvcmVzc291cmNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiaHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fS9yZWxhdGl2ZS9yZXNzb3VyY2U/
cXVlcnk9dHJ1ZSNmcmFnbWVudCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImh0dHA6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBdWzBdfX0vIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkVmFsdWVz
IiA6IFsiaHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fS9yZWxhdGl2ZS9yZXNzb3Vy
Y2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8v
e3tob3N0fX06e3twb3J0c1todHRwXVswXX19L3JlbGF0aXZlL3Jlc3NvdXJjZT9xdWVyeT10cnVl
I2ZyYWdtZW50IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
aHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fS8iLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBdCisgICAgICB9OworICAgICAgdmFyIHJlZmVycmVyUG9saWNpZXMgPSB7
ImdpdmVuVmFsdWVzIiA6IFsgIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAibm8tcmVmZXJyZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIm5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmlnaW4tb25seSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JpZ2lu
LXdoZW4tY3Jvc3Mtb3JpZ2luIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ1bnNhZmUtdXJsIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0
ZWRWYWx1ZXMiIDogWyIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAibm8tcmVmZXJyZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAibm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JpZ2luLW9ubHki
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3Jp
Z2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInVuc2FmZS11cmwiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgIH07CisgICAgICB2YXIgbW9kZXMgPSB7
ImdpdmVuVmFsdWVzIiA6IFsic2FtZS1vcmlnaW4iLCAibm8tY29ycyIsICJjb3JzIl0sCisgICAg
ICAgICAgICAgICAgICAgImV4cGVjdGVkVmFsdWVzIiA6IFsic2FtZS1vcmlnaW4iLCAibm8tY29y
cyIsICJjb3JzIl0KKyAgICAgIH07CisgICAgICB2YXIgY3JlZGVudGlhbHMgPSB7ImdpdmVuVmFs
dWVzIiA6IFsib21pdCIsICJzYW1lLW9yaWdpbiIsICJpbmNsdWRlIl0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICJleHBlY3RlZFZhbHVlcyIgOiBbIm9taXQiLCAic2FtZS1vcmlnaW4iLCAi
aW5jbHVkZSJdCisgICAgICB9OworICAgICAgdmFyIGNhY2hlcyA9IHsiZ2l2ZW5WYWx1ZXMiIDog
WyAiZGVmYXVsdCIsICJuby1zdG9yZSIsICJyZWxvYWQiLCAibm8tY2FjaGUiLCAiZm9yY2UtY2Fj
aGUiXSwKKyAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkVmFsdWVzIiA6IFsgImRlZmF1bHQi
LCAibm8tc3RvcmUiLCAicmVsb2FkIiwgIm5vLWNhY2hlIiwgImZvcmNlLWNhY2hlIl0KKyAgICAg
IH07CisgICAgICB2YXIgcmVkaXJlY3RzID0geyJnaXZlblZhbHVlcyIgOiBbImZvbGxvdyIsICJl
cnJvciIsICJtYW51YWwiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkVmFsdWVz
IiA6IFsiZm9sbG93IiwgImVycm9yIiwgIm1hbnVhbCJdCisgICAgICB9OworICAgICAgdmFyIGlu
dGVncml0aWVzID0geyJnaXZlblZhbHVlcyIgOiBbIiIsICJBWkVSVFlVSU9QMTIzNDU2Nzg5MCIg
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWRWYWx1ZXMiIDogWyIiLCAiQVpF
UlRZVUlPUDEyMzQ1Njc4OTAiXQorICAgICAgfTsKKworICAgICAgLy90aGVyZSBpcyBubyBnZXR0
ZXIgZm9yIHdpbmRvdywgaW5pdCdzIHdpbmRvdyBtaWdodCBiZSBudWxsCisgICAgICB2YXIgd2lu
ZG93cyA9IHsiZ2l2ZW5WYWx1ZXMiIDogWyBudWxsIF0sCisgICAgICAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWRWYWx1ZXMiIDogW3VuZGVmaW5lZF0KKyAgICAgIH07CisKKyAgICAgIHZhciBpbml0
VmFsdWVzRGljdCA9IHsgIm1ldGhvZCIgOiBtZXRob2RzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicmVmZXJyZXIiIDogcmVmZXJyZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAicmVmZXJyZXJQb2xpY3kiIDogcmVmZXJyZXJQb2xpY2llcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIm1vZGUiIDogbW9kZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJjcmVkZW50aWFscyIgOiBjcmVkZW50aWFscywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImNhY2hlIiA6IGNhY2hlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJl
ZGlyZWN0IiA6IHJlZGlyZWN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVn
cml0eSIgOiBpbnRlZ3JpdGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpbmRv
dyIgOiB3aW5kb3dzCisgICAgICB9OworCisgICAgICBmb3IgKHZhciBhdHRyaWJ1dGVOYW1lIGlu
IGluaXRWYWx1ZXNEaWN0KSB7CisgICAgICAgIHZhciB2YWx1ZXNUb1Rlc3QgPSBpbml0VmFsdWVz
RGljdFthdHRyaWJ1dGVOYW1lXTsKKyAgICAgICAgZm9yICh2YXIgdmFsdWVJZHggaW4gdmFsdWVz
VG9UZXN0WyJnaXZlblZhbHVlcyJdKSB7CisgICAgICAgICAgdmFyIGdpdmVuVmFsdWUgPSB2YWx1
ZXNUb1Rlc3RbImdpdmVuVmFsdWVzIl1bdmFsdWVJZHhdOworICAgICAgICAgIHZhciBleHBlY3Rl
ZFZhbHVlID0gdmFsdWVzVG9UZXN0WyJleHBlY3RlZFZhbHVlcyJdW3ZhbHVlSWR4XTsKKyAgICAg
ICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIHJlcXVlc3RJbml0ID0ge307
CisgICAgICAgICAgICByZXF1ZXN0SW5pdFthdHRyaWJ1dGVOYW1lXSA9IGdpdmVuVmFsdWUKKyAg
ICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHJlcXVlc3RJbml0KTsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdFthdHRyaWJ1dGVOYW1lXSwgZXhwZWN0ZWRW
YWx1ZSwKKyAgICAgICAgICAgICAgIkV4cGVjdCByZXF1ZXN0J3MgIiArIGF0dHJpYnV0ZU5hbWUg
KyAiIGlzICIgKyBleHBlY3RlZFZhbHVlICsgIiB3aGVuIGluaXRpYWxpemVkIHdpdGggIiArIGdp
dmVuVmFsdWUpOworICAgICAgICAgIH0sICJDaGVjayAiICsgYXR0cmlidXRlTmFtZSArICIgaW5p
dCB2YWx1ZSBvZiAiICsgZ2l2ZW5WYWx1ZSArICIgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIik7Cisg
ICAgICAgIH0KKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVz
dC1pbml0LTAwMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWJjMmFiYWU3MGNlOTU1OTJlN2Yz
YjRlNjE5M2ZiMGE2N2Y0NDEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0
LTAwMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1
ZXN0IHdpdGggaGVhZGVycyB2YWx1ZXMgCitGQUlMIEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkg
d2l0aCBhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IHVuZGVmaW5lZAorRkFJTCBJbml0aWFsaXplIFJlcXVlc3QncyBi
b2R5IHdpdGggbXVsdGlwYXJ0L2Zvcm0tZGF0YSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCitQQVNTIEluaXRpYWxpemUgUmVxdWVzdCdzIGJv
ZHkgd2l0aCB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTggCitGQUlMIEluaXRpYWxpemUgUmVxdWVz
dCdzIGJvZHkgd2l0aCBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1V
VEYtOCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIlVSTFNl
YXJjaFBhcmFtcyBub3Qgc3VwcG9ydGVkIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5p
dC0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhYWNj
NjdlNDMwMDc4MDQzYWRlM2QwMTY4NTY5OTU4NjAyMjI0YzkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3QtaW5pdC0wMDIuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRp
dGxlPlJlcXVlc3QgaW5pdDogaGVhZGVycyBhbmQgYm9keTwvdGl0bGU+CisgICAgPG1ldGEgbmFt
ZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgor
ICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJl
Zj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAg
IDxzY3JpcHQ+CisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaGVhZGVyRGlj
dCA9IHsibmFtZTEiOiAidmFsdWUxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUy
IjogInZhbHVlMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lMyI6ICJ2YWx1ZTMi
CisgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcg
SGVhZGVycyhoZWFkZXJEaWN0KTsKKyAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgi
IiwgeyAiaGVhZGVycyIgOiBoZWFkZXJzIH0pCisgICAgICAgIGZvciAodmFyIG5hbWUgaW4gaGVh
ZGVyRGljdCkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldChu
YW1lKSwgaGVhZGVyRGljdFtuYW1lXSwKKyAgICAgICAgICAgInJlcXVlc3QncyBoZWFkZXJzIGhh
cyAiICsgbmFtZSArICIgOiAiICsgaGVhZGVyRGljdFtuYW1lXSk7CisgICAgICAgIH0KKyAgICAg
IH0sICJJbml0aWFsaXplIFJlcXVlc3Qgd2l0aCBoZWFkZXJzIHZhbHVlcyIpOworCisgICAgICBm
dW5jdGlvbiBjaGVja1JlcXVlc3RJbml0KGJvZHksIGJvZHlUeXBlLCBleHBlY3RlZFRleHRCb2R5
KSB7CisgICAgICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgICAgICAgdmFy
IHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiUE9TVCIsICJib2R5IjogYm9k
eX0pOworICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJH
RVQiLCAiYm9keSI6IGJvZHl9KTsgfQorICAgICAgICAgICk7CisgICAgICAgICAgYXNzZXJ0X3Ro
cm93cyhuZXcgVHlwZUVycm9yKCksCisgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigp
IHsgbmV3IFJlcXVlc3QoIiIsIHsibWV0aG9kIjogIkhFQUQiLCAiYm9keSI6IGJvZHl9KTsgfQor
ICAgICAgICAgICk7CisgICAgICAgICAgdmFyIHJlcUhlYWRlcnMgPSByZXF1ZXN0LmhlYWRlcnM7
CisgICAgICAgICAgdmFyIG1pbWUgPSByZXFIZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIik7Cisg
ICAgICAgICAgYXNzZXJ0X3RydWUobWltZSAmJiBtaW1lLnNlYXJjaChib2R5VHlwZSkgPiAtMSwg
IkNvbnRlbnQtVHlwZSBoZWFkZXIgc2hvdWxkIGJlIFwiIiArIGJvZHlUeXBlICsgIlwiLCBub3Qg
XCIiICsgbWltZSArICJcIiIpOworICAgICAgICAgIHJldHVybiByZXF1ZXN0LnRleHQoKS50aGVu
KGZ1bmN0aW9uKGJvZHlBc1RleHQpIHsKKyAgICAgICAgICAgIC8vbm90IGVxdWFsczogY2Fubm90
IGd1ZXNzIGZvcm1EYXRhIGV4YWN0IHZhbHVlCisgICAgICAgICAgICBhc3NlcnRfdHJ1ZSggYm9k
eUFzVGV4dC5zZWFyY2goZXhwZWN0ZWRUZXh0Qm9keSkgPiAtMSwgIlJldHJpZXZlIGFuZCB2ZXJp
ZnkgcmVxdWVzdCBib2R5Iik7CisgICAgICAgICAgfSk7CisgICAgICAgIH0sICJJbml0aWFsaXpl
IFJlcXVlc3QncyBib2R5IHdpdGggIiArIGJvZHlUeXBlKTsKKyAgICAgIH0KKworICAgICAgdmFy
IGJsb2IgPSBuZXcgQmxvYihbIlRoaXMgaXMgYSBibG9iIl0sIHt0eXBlOiAiYXBwbGljYXRpb24v
b2N0ZXQtYmluYXJ5In0pOworICAgICAgdmFyIGZvcm1hRGF0YSA9IG5ldyBGb3JtRGF0YSgpOwor
ICAgICAgZm9ybWFEYXRhLmFwcGVuZCgibmFtZSIsICJ2YWx1ZSIpOworICAgICAgdmFyIHVzdlN0
cmluZyA9ICJUaGlzIGlzIGEgVVNWU3RyaW5nIgorCisgICAgICBjaGVja1JlcXVlc3RJbml0KGJs
b2IsICJhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkiLCAiVGhpcyBpcyBhIGJsb2IiKTsKKyAgICAg
IGNoZWNrUmVxdWVzdEluaXQoZm9ybWFEYXRhLCAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIsICJuYW1l
PVwibmFtZVwiXHJcblxyXG52YWx1ZSIpOworICAgICAgY2hlY2tSZXF1ZXN0SW5pdCh1c3ZTdHJp
bmcsICJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiLCAiVGhpcyBpcyBhIFVTVlN0cmluZyIpOwor
CisgICAgICAvLyBFbnN1cmUgdGVzdCBkb2VzIG5vdCB0aW1lIG91dCBpbiBjYXNlIG9mIG1pc3Np
bmcgVVJMU2VhcmNoUGFyYW1zIHN1cHBvcnQuCisgICAgICBpZiAod2luZG93LlVSTFNlYXJjaFBh
cmFtcykgeworICAgICAgICB2YXIgdXJsU2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFt
cygibmFtZT12YWx1ZSIpOworICAgICAgICBjaGVja1JlcXVlc3RJbml0KHVybFNlYXJjaFBhcmFt
cywgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IiwgIm5h
bWU9dmFsdWUiKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHByb21pc2VfdGVzdChmdW5jdGlv
bih0ZXN0KSB7CisgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCJVUkxTZWFyY2hQYXJh
bXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICB9LCAiSW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9k
eSB3aXRoIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04Iik7
CisgICAgICB9CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvcmVxdWVzdC1pbml0LTAwMy5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWlu
aXQtMDAzLnN1Yi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFiZTc1NjBlMjhlOTg4ZTQ3NmMy
OGNjZDJmMmUyOWYwMmI4NWI3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0
LTAwMy5zdWItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitGQUlMIENoZWNrIHJlcXVl
c3QgdmFsdWVzIHdoZW4gaW5pdGlhbGl6ZWQgZnJvbSBSZXF1ZXN0IEV4cGVjdGVkVmFsdWVzRGlj
dFsiaGVhZGVycyJdLmtleXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnRXhwZWN0ZWRWYWx1ZXNE
aWN0WyJoZWFkZXJzIl0ua2V5cygpJywgJ0V4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmtl
eXMnIGlzIHVuZGVmaW5lZCkKK0ZBSUwgQ2hlY2sgcmVxdWVzdCB2YWx1ZXMgd2hlbiBpbml0aWFs
aXplZCBmcm9tIFJlcXVlc3QgYW5kIGluaXQgdmFsdWVzIEV4cGVjdGVkVmFsdWVzRGljdFsiaGVh
ZGVycyJdLmtleXMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnRXhwZWN0ZWRWYWx1ZXNEaWN0WyJo
ZWFkZXJzIl0ua2V5cygpJywgJ0V4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmtleXMnIGlz
IHVuZGVmaW5lZCkKK0ZBSUwgQ2hlY2sgcmVxdWVzdCB2YWx1ZXMgd2hlbiBpbml0aWFsaXplZCBm
cm9tIHVybCBzdHJpbmcgYXNzZXJ0X2VxdWFsczogQ2hlY2sgdXJsIGF0dHJpYnV0ZSBleHBlY3Rl
ZCAiaHR0cDovL3VybC50ZXN0OjEyMzQvcGF0aC9zdWJwYXRoP3F1ZXJ5PXRydWUiIGJ1dCBnb3Qg
Imh0dHA6Ly91cmwudGVzdDoxMjM0L3BhdGgvc3VicGF0aD9xdWVyeT10cnVlI2ZyYWdtZW50Igor
RkFJTCBDaGVjayByZXF1ZXN0IHZhbHVlcyB3aGVuIGluaXRpYWxpemVkIGZyb20gdXJsIGFuZCBp
bml0IHZhbHVlcyBFeHBlY3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoSW4gJ0V4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmtleXMoKScsICdFeHBl
Y3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzJyBpcyB1bmRlZmluZWQpCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMy5zdWIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAw
My5zdWIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzlkNGIzNGRmNGVkNmZmMjY3NDg4ZTY1MmJjMjFjMTNi
NDZmN2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAzLnN1Yi5odG1s
CkBAIC0wLDAgKzEsODQgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVxdWVzdDogaW5pdCB3aXRoIHJl
cXVlc3Qgb3IgdXJsPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczov
L2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+CisgICAgPG1ldGEgbmFtZT0iaGVscCIg
aHJlZj0iaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LXVybC1zZXJpYWxpemVy
Ij4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2Ui
IGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3V0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0PgorICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyggeyJuYW1lIjoidmFsdWUi
fSApOworICAgICAgdmFyIGVtcHR5SGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7CisKKyAgICAgIHZh
ciBpbml0VmFsdWVzRGljdCA9IHsibWV0aG9kIiA6ICJQT1NUIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicmVmZXJyZXIiIDogImh0dHA6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBdWzBd
fX0vIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJyZXJQb2xpY3kiIDogIm9y
aWdpbi1vbmx5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW9kZSIgOiAic2FtZS1v
cmlnaW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjcmVkZW50aWFscyIgOiAiaW5j
bHVkZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhY2hlIiA6ICJuby1jYWNoZSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZGlyZWN0IiA6ICJlcnJvciIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImludGVncml0eSIgOiAiUmVxdWVzdCdzIEludGVncml0
eSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhlYWRlcnMiIDogaGVhZGVycywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiYm9keSIgOiAiUmVxdWVzdCdzIGJvZHkiCisgICAg
ICB9OworCisgICAgICB2YXIgZXhwZWN0ZWRJbml0aWFsaXplZCA9IHsibWV0aG9kIiA6ICJQT1NU
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZlcnJlciIgOiAiaHR0cDov
L3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fS8iLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInJlZmVycmVyUG9saWN5IiA6ICJvcmlnaW4tb25seSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAibW9kZSIgOiAic2FtZS1vcmlnaW4iLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImNyZWRlbnRpYWxzIiA6ICJpbmNsdWRlIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJjYWNoZSIgOiAibm8tY2FjaGUiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInJlZGlyZWN0IiA6ICJlcnJvciIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWdyaXR5IiA6ICJSZXF1ZXN0J3MgSW50ZWdyaXR5
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoZWFkZXJzIiA6IGhlYWRlcnMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYm9keSIgOiAiUmVxdWVzdCdzIGJv
ZHkiCisgICAgICB9OworCisgICAgICB2YXIgZXhwZWN0ZWREZWZhdWx0ID0geyJtZXRob2QiIDog
IkdFVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1cmwiIDogbG9jYXRpb24ucmVm
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJyZXIiIDogImh0dHA6Ly97e2hv
c3R9fTp7e3BvcnRzW2h0dHBdWzBdfX0vIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InJlZmVycmVyUG9saWN5IiA6ICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW9k
ZSIgOiAiY29ycyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjcmVkZW50aWFscyIg
OiAib21pdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYWNoZSIgOiAiZGVmYXVs
dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWRpcmVjdCIgOiAiZm9sbG93IiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVncml0eSIgOiAiIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImhlYWRlcnMiIDogZW1wdHlIZWFkZXJzCisgICAgICB9Owor
CisgICAgICB2YXIgUmVxdWVzdERlZmF1bHQgPSBuZXcgUmVxdWVzdCgiIik7CisgICAgICB2YXIg
UmVxdWVzdEluaXRpYWxpemVkID0gbmV3IFJlcXVlc3QoIiIsIGluaXRWYWx1ZXNEaWN0KTsKKwor
ICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHJlcXVlc3RUb0NoZWNrID0gbmV3
IFJlcXVlc3QoUmVxdWVzdEluaXRpYWxpemVkKTsKKyAgICAgICAgY2hlY2tSZXF1ZXN0KHJlcXVl
c3RUb0NoZWNrLCBleHBlY3RlZEluaXRpYWxpemVkKTsKKyAgICAgIH0sICJDaGVjayByZXF1ZXN0
IHZhbHVlcyB3aGVuIGluaXRpYWxpemVkIGZyb20gUmVxdWVzdCIpOworCisgICAgICB0ZXN0KGZ1
bmN0aW9uKCkgeworICAgICAgICB2YXIgcmVxdWVzdFRvQ2hlY2sgPSBuZXcgUmVxdWVzdChSZXF1
ZXN0RGVmYXVsdCwgaW5pdFZhbHVlc0RpY3QpOworICAgICAgICBjaGVja1JlcXVlc3QocmVxdWVz
dFRvQ2hlY2ssIGV4cGVjdGVkSW5pdGlhbGl6ZWQpOworICAgICAgfSwgIkNoZWNrIHJlcXVlc3Qg
dmFsdWVzIHdoZW4gaW5pdGlhbGl6ZWQgZnJvbSBSZXF1ZXN0IGFuZCBpbml0IHZhbHVlcyIpOwor
CisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgdXJsID0gImh0dHA6Ly91cmwu
dGVzdDoxMjM0L3BhdGgvc3VicGF0aD9xdWVyeT10cnVlIjsKKyAgICAgICAgZXhwZWN0ZWREZWZh
dWx0WyJ1cmwiXSA9IHVybDsKKyAgICAgICAgdXJsICs9ICIjZnJhZ21lbnQiOworICAgICAgICB2
YXIgcmVxdWVzdFRvQ2hlY2sgPSBuZXcgUmVxdWVzdCh1cmwpOworICAgICAgICBjaGVja1JlcXVl
c3QocmVxdWVzdFRvQ2hlY2ssIGV4cGVjdGVkRGVmYXVsdCk7CisgICAgICB9LCAiQ2hlY2sgcmVx
dWVzdCB2YWx1ZXMgd2hlbiBpbml0aWFsaXplZCBmcm9tIHVybCBzdHJpbmciKTsKKworICAgICAg
dGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHVybCA9ICJodHRwOi8vdXJsLnRlc3Q6MTIz
NC9wYXRoL3N1YnBhdGg/cXVlcnk9dHJ1ZSI7CisgICAgICAgIGV4cGVjdGVkSW5pdGlhbGl6ZWRb
InVybCJdID0gdXJsOworICAgICAgICB1cmwgKz0gIiNmcmFnbWVudCI7CisgICAgICAgIHZhciBy
ZXF1ZXN0VG9DaGVjayA9IG5ldyBSZXF1ZXN0KHVybCAsIGluaXRWYWx1ZXNEaWN0KTsKKyAgICAg
ICAgY2hlY2tSZXF1ZXN0KHJlcXVlc3RUb0NoZWNrLCBleHBlY3RlZEluaXRpYWxpemVkKTsKKyAg
ICAgIH0sICJDaGVjayByZXF1ZXN0IHZhbHVlcyB3aGVuIGluaXRpYWxpemVkIGZyb20gdXJsIGFu
ZCBpbml0IHZhbHVlcyIpOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVz
dC1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzNzQ5NTcyNWMyODZhMmI0MGEw
NDE1ZDEzNGNhYjliNmY3YjcyMWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3Ry
dWN0dXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACisKK1BBU1MgUmVxdWVzdCBoYXMg
Y2xvbmUgbWV0aG9kIAorUEFTUyBSZXF1ZXN0IGhhcyBhcnJheUJ1ZmZlciBtZXRob2QgCitQQVNT
IFJlcXVlc3QgaGFzIGJsb2IgbWV0aG9kIAorUEFTUyBSZXF1ZXN0IGhhcyBmb3JtRGF0YSBtZXRo
b2QgCitQQVNTIFJlcXVlc3QgaGFzIGpzb24gbWV0aG9kIAorUEFTUyBSZXF1ZXN0IGhhcyB0ZXh0
IG1ldGhvZCAKK1BBU1MgQ2hlY2sgbWV0aG9kIGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgdXJsIGF0
dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgaGVhZGVycyBhdHRyaWJ1dGUgCitQQVNTIENoZWNrIHR5cGUg
YXR0cmlidXRlIAorUEFTUyBDaGVjayBkZXN0aW5hdGlvbiBhdHRyaWJ1dGUgCitQQVNTIENoZWNr
IHJlZmVycmVyIGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgcmVmZXJyZXJQb2xpY3kgYXR0cmlidXRl
IAorUEFTUyBDaGVjayBtb2RlIGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgY3JlZGVudGlhbHMgYXR0
cmlidXRlIAorUEFTUyBDaGVjayBjYWNoZSBhdHRyaWJ1dGUgCitQQVNTIENoZWNrIHJlZGlyZWN0
IGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgaW50ZWdyaXR5IGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sg
Ym9keVVzZWQgYXR0cmlidXRlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2JlNmNlZTk5
OWYzMWIzYjYwMjI2Y2I5OTJjYTZjMTE3MGFlMjcyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1zdHJ1Y3R1cmUuaHRtbApAQCAtMCwwICsxLDEzNCBAQAorPCFkb2N0eXBlIGh0bWw+
Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRs
ZT5SZXF1ZXN0IHN0cnVjdHVyZTwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgorICAgIDxtZXRhIG5hbWU9
ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cu
Y3JmLmNhbm9uLmZyIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQ+CisgICAg
ICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiKTsKKyAgICAgIHZhciBtZXRob2RzID0gWyJj
bG9uZSIsCisgICAgICAgICAgICAgICAgICAgICAvL1JlcXVlc3QgaW1wbGVtZW50cyBCb2R5Cisg
ICAgICAgICAgICAgICAgICAgICAiYXJyYXlCdWZmZXIiLAorICAgICAgICAgICAgICAgICAgICAg
ImJsb2IiLAorICAgICAgICAgICAgICAgICAgICAgImZvcm1EYXRhIiwKKyAgICAgICAgICAgICAg
ICAgICAgICJqc29uIiwKKyAgICAgICAgICAgICAgICAgICAgICJ0ZXh0IgorICAgICAgICAgICAg
ICAgICAgICBdOworICAgICAgdmFyIGF0dHJpYnV0ZXMgPSBbIm1ldGhvZCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAidXJsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJoZWFkZXJzIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICJkZXN0aW5hdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJyZXIiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgInJlZmVycmVyUG9saWN5IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICJtb2RlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJjcmVkZW50aWFscyIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAiY2FjaGUiLAorICAgICAgICAgICAgICAgICAgICAgICAg
InJlZGlyZWN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlZ3JpdHkiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgLy9SZXF1ZXN0IGltcGxlbWVudHMgQm9keQorICAgICAgICAgICAg
ICAgICAgICAgICAgImJvZHlVc2VkIgorICAgICAgICAgICAgICAgICAgICAgICBdOworCisgICAg
ICBmdW5jdGlvbiBJc3JlYWRPbmx5KHJlcXVlc3QsIGF0dHJpYnV0ZVRvQ2hlY2spIHsKKyAgICAg
ICAgdmFyIGRlZmF1bHRWYWx1ZSA9IHVuZGVmaW5lZDsKKyAgICAgICAgdmFyIG5ld1ZhbHVlID0g
dW5kZWZpbmVkOworICAgICAgICBzd2l0Y2ggKGF0dHJpYnV0ZVRvQ2hlY2spIHsKKyAgICAgICAg
ICBjYXNlICJtZXRob2QiOgorICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gIkdFVCI7CisgICAg
ICAgICAgICBuZXdWYWx1ZSA9ICJQT1NUIjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg
ICAgY2FzZSAidXJsIjoKKyAgICAgICAgICAgIC8vZGVmYXVsdCB2YWx1ZSBpcyBiYXNlIHVybAor
ICAgICAgICAgICAgLy9pLmUgaHR0cDovL3dlYi1wbGF0Zm9ybS50ZXN0OjgwMDAvZmV0Y2gvYXBp
L3JlcXVlc3Qtc3RydWN0dXJlLmh0bWwKKyAgICAgICAgICAgIG5ld1ZhbHVlID0gImh0dHA6Ly91
cmwudGVzdCI7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgImhlYWRlcnMi
OgorICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzID0gbmV3IEhlYWRlcnMgKHsibmFtZSI6InZh
bHVlIn0pOworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlcXVlc3QuaGVhZGVycy5oYXMoIm5h
bWUiKSwgIkhlYWRlcnMgYXR0cmlidXRlIGlzIHJlYWQgb25seSIpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICBjYXNlICJ0eXBlIjoKKyAgICAg
ICAgICAgIGRlZmF1bHRWYWx1ZSA9ICIiOworICAgICAgICAgICAgbmV3VmFsdWUgPSAic3R5bGUi
OworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICBjYXNlICJkZXN0aW5hdGlvbiI6Cisg
ICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSAiIjsKKyAgICAgICAgICAgIG5ld1ZhbHVlID0gIndv
cmtlciI7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgInJlZmVycmVyIjoK
KyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICJhYm91dDpjbGllbnQiOworICAgICAgICAgICAg
bmV3VmFsdWUgPSAiaHR0cDovL3VybC50ZXN0IjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgY2FzZSAicmVmZXJyZXJQb2xpY3kiOgorICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0g
IiI7CisgICAgICAgICAgICBuZXdWYWx1ZSA9ICJ1bnNhZmUtdXJsIjsKKyAgICAgICAgICAgIGJy
ZWFrOworCisgICAgICAgICAgY2FzZSAibW9kZSI6CisgICAgICAgICAgICBkZWZhdWx0VmFsdWUg
PSAiY29ycyI7CisgICAgICAgICAgICBuZXdWYWx1ZSA9ICJuYXZpZ2F0ZSI7CisgICAgICAgICAg
ICBicmVhazsKKworICAgICAgICAgIGNhc2UgImNyZWRlbnRpYWxzIjoKKyAgICAgICAgICAgIGRl
ZmF1bHRWYWx1ZSA9ICJvbWl0IjsKKyAgICAgICAgICAgIG5ld1ZhbHVlID0gImNvcnMiOworICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICBjYXNlICJjYWNoZSI6CisgICAgICAgICAgICBk
ZWZhdWx0VmFsdWUgPSAiZGVmYXVsdCI7CisgICAgICAgICAgICBuZXdWYWx1ZSA9ICJyZWxvYWQi
OworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICBjYXNlICJyZWRpcmVjdCI6CisgICAg
ICAgICAgICBkZWZhdWx0VmFsdWUgPSAiZm9sbG93IjsKKyAgICAgICAgICAgIG5ld1ZhbHVlID0g
Im1hbnVhbCI7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgImludGVncml0
eSI6CisgICAgICAgICAgICBuZXdWYWx1ZSA9ICJDYW5ub3RXcml0ZUludGVncml0eSI7CisgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgImJvZHlVc2VkIjoKKyAgICAgICAgICAg
IGRlZmF1bHRWYWx1ZSA9IGZhbHNlOworICAgICAgICAgICAgbmV3VmFsdWUgPSB0cnVlOworICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgcmVxdWVzdFthdHRyaWJ1dGVUb0NoZWNrXSA9IG5ld1Zh
bHVlOworICAgICAgICBpZiAoZGVmYXVsdFZhbHVlID09PSB1bmRlZmluZWQpCisgICAgICAgICAg
YXNzZXJ0X25vdF9lcXVhbHMocmVxdWVzdFthdHRyaWJ1dGVUb0NoZWNrXSwgbmV3VmFsdWUsICJB
dHRyaWJ1dGUgIiArIGF0dHJpYnV0ZVRvQ2hlY2sgKyAiIGlzIHJlYWQgb25seSIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0W2F0dHJpYnV0ZVRvQ2hlY2td
LCBkZWZhdWx0VmFsdWUsCisgICAgICAgICAgICJBdHRyaWJ1dGUgIiArIGF0dHJpYnV0ZVRvQ2hl
Y2sgKyAiIGlzIHJlYWQgb25seS4gRGVmYXVsdCB2YWx1ZSBpcyAiICsgZGVmYXVsdFZhbHVlKTsK
KyAgICAgIH0KKworICAgICAgZm9yICh2YXIgaWR4IGluIG1ldGhvZHMpIHsKKyAgICAgICAgdGVz
dChmdW5jdGlvbigpIHsKKyAgICAgICAgICBhc3NlcnRfdHJ1ZShtZXRob2RzW2lkeF0gaW4gcmVx
dWVzdCwgInJlcXVlc3QgaGFzICIgKyBtZXRob2RzW2lkeF0gKyAiIG1ldGhvZCIpOworICAgICAg
ICB9LCAiUmVxdWVzdCBoYXMgIiArIG1ldGhvZHNbaWR4XSArICIgbWV0aG9kIik7CisgICAgICB9
CisKKyAgICAgIGZvciAodmFyIGlkeCBpbiBhdHRyaWJ1dGVzKSB7CisgICAgICAgIHRlc3QoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgYXNzZXJ0X3RydWUoYXR0cmlidXRlc1tpZHhdIGluIHJlcXVl
c3QsICJyZXF1ZXN0IGhhcyAiICsgYXR0cmlidXRlc1tpZHhdICsgIiBhdHRyaWJ1dGUiKTsKKyAg
ICAgICAgICBJc3JlYWRPbmx5KHJlcXVlc3QsIGF0dHJpYnV0ZXNbaWR4XSk7CisgICAgICAgIH0s
ICJDaGVjayAiICsgYXR0cmlidXRlc1tpZHhdICsgIiBhdHRyaWJ1dGUiKTsKKyAgICAgIH0KKyAg
ICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2F1dGhl
bnRpY2F0aW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2F1dGhlbnRpY2F0aW9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwNmQx
NzllNThlYmJiYjBiNGI5N2Y3MWM0NzVkNDkyN2QzYTVjZjgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNv
dXJjZXMvYXV0aGVudGljYXRpb24ucHkKQEAgLTAsMCArMSwxNSBAQAorZGVmIG1haW4ocmVxdWVz
dCwgcmVzcG9uc2UpOgorICAgIHVzZXIgPSByZXF1ZXN0LmF1dGgudXNlcm5hbWUKKyAgICBwYXNz
d29yZCA9IHJlcXVlc3QuYXV0aC5wYXNzd29yZAorCisgICAgaWYgdXNlciA9PSAidXNlciIgYW5k
IHBhc3N3b3JkID09ICJwYXNzd29yZCI6CisgICAgICAgIHJldHVybiAiQXV0aGVudGljYXRpb24g
ZG9uZSIKKworICAgIHJlYWxtID0gInRlc3QiCisgICAgaWYgInJlYWxtIiBpbiByZXF1ZXN0LkdF
VDoKKyAgICAgICAgcmVhbG0gPSByZXF1ZXN0LkdFVC5maXJzdCgicmVhbG0iKQorCisgICAgcmV0
dXJuICgoNDAxLCAiVW5hdXRob3JpemVkIiksCisgICAgICAgICAgICBbKCJXV1ctQXV0aGVudGlj
YXRlIiwgJ0Jhc2ljIHJlYWxtPSInICsgcmVhbG0gKyAnIicpXSwKKyAgICAgICAgICAgICJQbGVh
c2UgbG9naW4gd2l0aCBjcmVkZW50aWFscyAndXNlcicgYW5kICdwYXNzd29yZCciKQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNvdXJjZXMvY2xlYW4tc3Rhc2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvY2xlYW4tc3Rhc2gucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uM2FlNzMxMDUyNjkyZTA0OGEwN2Q2NWE2ZTAxNWZlNWE3NjM2MjA5OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc291cmNlcy9jbGVhbi1zdGFzaC5weQpAQCAtMCwwICsxLDYgQEAKK2RlZiBt
YWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICB0b2tlbiA9IHJlcXVlc3QuR0VULmZpcnN0KCJ0
b2tlbiIpCisgICAgaWYgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gudGFrZSh0b2tlbikgaXMgbm90IE5v
bmU6CisgICAgICAgIHJldHVybiAiMSIKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gIjAiCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2luc3BlY3QtaGVh
ZGVycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNGFjZTE4YWI2NGIxMWU5YzA5MDU0YzA4YmUyZDRkMjJmNzAy
NjRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2luc3BlY3QtaGVhZGVycy5weQpAQCAtMCww
ICsxLDIyIEBACitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgaGVhZGVycyA9IFtd
CisgICAgcmVxdWVzdF9oZWFkZXJzID0gW10KKyAgICBpZiAiaGVhZGVycyIgaW4gcmVxdWVzdC5H
RVQ6CisgICAgICAgIGNoZWNrZWRfaGVhZGVycyA9IHJlcXVlc3QuR0VULmZpcnN0KCJoZWFkZXJz
Iikuc3BsaXQoInwiKQorICAgICAgICBmb3IgaGVhZGVyIGluIGNoZWNrZWRfaGVhZGVyczoKKyAg
ICAgICAgICBpZiBoZWFkZXIgaW4gcmVxdWVzdC5oZWFkZXJzOgorICAgICAgICAgICAgICBoZWFk
ZXJzLmFwcGVuZCgoIngtcmVxdWVzdC0iICsgaGVhZGVyLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KGhl
YWRlciwgIiIpICkpCisKKyAgICBpZiAiY29ycyIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIGlm
ICJPcmlnaW4iIGluIHJlcXVlc3QuaGVhZGVyczoKKyAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5k
KCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgcmVxdWVzdC5oZWFkZXJzLmdldCgiT3Jp
Z2luIiwgIiIpKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgi
QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgIioiKSkKKyAgICAgICAgaGVhZGVycy5hcHBl
bmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFscyIsICJ0cnVlIikpCisgICAgICAg
IGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcyIsICJHRVQsIFBP
U1QsIEhFQUQiKSkKKyAgICAgICAgZXhwb3NlZF9oZWFkZXJzID0gWyJ4LXJlcXVlc3QtIiArIGhl
YWRlciBmb3IgaGVhZGVyIGluIGNoZWNrZWRfaGVhZGVyc10KKyAgICAgICAgaGVhZGVycy5hcHBl
bmQoKCJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIsICIsICIuam9pbihleHBvc2VkX2hl
YWRlcnMpKSkKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1I
ZWFkZXJzIiwgIiwgIi5qb2luKHJlcXVlc3QuaGVhZGVycykpKQorCisgICAgaGVhZGVycy5hcHBl
bmQoKCJjb250ZW50LXR5cGUiLCAidGV4dC9wbGFpbiIpKQorICAgIHJldHVybiBoZWFkZXJzLCAi
IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzb3VyY2VzL21ldGhvZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9tZXRob2QucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmFjNTZkZTY5OGJiOGYwMTkyMmQyZGQ2Y2M4ODY4MmUzMWNiNjM0YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc291cmNlcy9tZXRob2QucHkKQEAgLTAsMCArMSwxMSBAQAorZGVmIG1haW4ocmVx
dWVzdCwgcmVzcG9uc2UpOgorICAgIGhlYWRlcnMgPSBbXQorICAgIGlmICJjb3JzIiBpbiByZXF1
ZXN0LkdFVDoKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1P
cmlnaW4iLCAiKiIpKQorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFs
bG93LUNyZWRlbnRpYWxzIiwgInRydWUiKSkKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nl
c3MtQ29udHJvbC1BbGxvdy1NZXRob2RzIiwgIkdFVCwgUE9TVCwgUFVULCBGT08iKSkKKyAgICAg
ICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzIiwgIngtdGVz
dCwgeC1mb28iKSkKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1FeHBv
c2UtSGVhZGVycyIsICJ4LXJlcXVlc3QtbWV0aG9kIikpCisKKyAgICBoZWFkZXJzLmFwcGVuZCgo
IngtcmVxdWVzdC1tZXRob2QiLCByZXF1ZXN0Lm1ldGhvZCkpCisgICAgcmV0dXJuIGhlYWRlcnMs
ICIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvcHJlZmxpZ2h0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3ByZWZsaWdodC5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43MmRjZWJhNjgzZDhkZjY5ZDFlYmZiNzAzYWMwY2I1OTljMGU5ZDQ2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3ByZWZsaWdodC5weQpAQCAtMCwwICsxLDU2IEBACitk
ZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgaGVhZGVycyA9IFsoIkNvbnRlbnQtVHlw
ZSIsICJ0ZXh0L3BsYWluIildCisgICAgc3Rhc2hlZF9kYXRhID0geydjb250cm9sX3JlcXVlc3Rf
aGVhZGVycyc6ICIiLCAncHJlZmxpZ2h0JzogIjAiLCAncHJlZmxpZ2h0X3JlZmVycmVyJzogIiJ9
CisKKyAgICBpZiAib3JpZ2luIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgZm9yIG9yaWdpbiBp
biByZXF1ZXN0LkdFVFsnb3JpZ2luJ10uc3BsaXQoIiwgIik6CisgICAgICAgICAgICBoZWFkZXJz
LmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsIG9yaWdpbikpCisgICAgZWxz
ZToKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4i
LCAiKiIpKQorCisgICAgaWYgcmVxdWVzdC5tZXRob2QgPT0gIk9QVElPTlMiOgorICAgICAgICBp
ZiBub3QgIkFjY2Vzcy1Db250cm9sLVJlcXVlc3QtTWV0aG9kIiBpbiByZXF1ZXN0LmhlYWRlcnM6
CisgICAgICAgICAgICByZXNwb25zZS5zZXRfZXJyb3IoNDAwLCAiTm8gQWNjZXNzLUNvbnRyb2wt
UmVxdWVzdC1NZXRob2QgaGVhZGVyIikKKyAgICAgICAgICAgIHJldHVybiAiRVJST1I6IE5vIGFj
Y2Vzcy1jb250cm9sLXJlcXVlc3QtbWV0aG9kIGluIHByZWZsaWdodCEiCisKKyAgICAgICAgaWYg
ImNvbnRyb2xfcmVxdWVzdF9oZWFkZXJzIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgICAgIHN0
YXNoZWRfZGF0YVsnY29udHJvbF9yZXF1ZXN0X2hlYWRlcnMnXSA9IHJlcXVlc3QuaGVhZGVycy5n
ZXQoIkFjY2Vzcy1Db250cm9sLVJlcXVlc3QtSGVhZGVycyIsICIiKQorCisgICAgICAgIGlmICJt
YXhfYWdlIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNj
ZXNzLUNvbnRyb2wtTWF4LUFnZSIsIHJlcXVlc3QuR0VUWydtYXhfYWdlJ10pKQorCisgICAgICAg
IGlmICJhbGxvd19oZWFkZXJzIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgICAgIGhlYWRlcnMu
YXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsIHJlcXVlc3QuR0VUWydhbGxv
d19oZWFkZXJzJ10pKQorCisgICAgICAgIGlmICJhbGxvd19tZXRob2RzIiBpbiByZXF1ZXN0LkdF
VDoKKyAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0
aG9kcyIsIHJlcXVlc3QuR0VUWydhbGxvd19tZXRob2RzJ10pKQorCisgICAgICAgIHByZWZsaWdo
dF9zdGF0dXMgPSAyMDAKKyAgICAgICAgaWYgInByZWZsaWdodF9zdGF0dXMiIGluIHJlcXVlc3Qu
R0VUOgorICAgICAgICAgICAgcHJlZmxpZ2h0X3N0YXR1cyA9IGludChyZXF1ZXN0LkdFVC5maXJz
dCgicHJlZmxpZ2h0X3N0YXR1cyIpKQorCisgICAgICAgIHN0YXNoZWRfZGF0YVsncHJlZmxpZ2h0
J10gPSAiMSIKKyAgICAgICAgc3Rhc2hlZF9kYXRhWydwcmVmbGlnaHRfcmVmZXJyZXInXSA9IHJl
cXVlc3QuaGVhZGVycy5nZXQoIlJlZmVyZXIiLCAiIikKKyAgICAgICAgcmVxdWVzdC5zZXJ2ZXIu
c3Rhc2gucHV0KHJlcXVlc3QuR0VULmZpcnN0KCJ0b2tlbiIpLCBzdGFzaGVkX2RhdGEpCisKKyAg
ICAgICAgcmV0dXJuIHByZWZsaWdodF9zdGF0dXMsIGhlYWRlcnMsICIiCisKKyAgICB0b2tlbiA9
IE5vbmUKKyAgICBpZiAidG9rZW4iIGluIHJlcXVlc3QuR0VUOgorICAgICAgICB0b2tlbiA9IHJl
cXVlc3QuR0VULmZpcnN0KCJ0b2tlbiIpCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LnNlcnZlci5z
dGFzaC50YWtlKHRva2VuKQorICAgICAgICBpZiBkYXRhOgorICAgICAgICAgICAgc3Rhc2hlZF9k
YXRhID0gZGF0YQorCisgICAgI3VzZSB4LSogaGVhZGVycyBmb3IgcmV0dXJuaW5nIHZhbHVlIHRv
IGJvZHlsZXNzIHJlc3BvbnNlcworICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wt
RXhwb3NlLUhlYWRlcnMiLCAieC1kaWQtcHJlZmxpZ2h0LCB4LWNvbnRyb2wtcmVxdWVzdC1oZWFk
ZXJzLCB4LXJlZmVycmVyLCB4LXByZWZsaWdodC1yZWZlcnJlciwgeC1vcmlnaW4iKSkKKyAgICBo
ZWFkZXJzLmFwcGVuZCgoIngtZGlkLXByZWZsaWdodCIsIHN0YXNoZWRfZGF0YVsncHJlZmxpZ2h0
J10pKQorICAgIGhlYWRlcnMuYXBwZW5kKCgieC1jb250cm9sLXJlcXVlc3QtaGVhZGVycyIsIHN0
YXNoZWRfZGF0YVsnY29udHJvbF9yZXF1ZXN0X2hlYWRlcnMnXSkpCisgICAgaGVhZGVycy5hcHBl
bmQoKCJ4LXByZWZsaWdodC1yZWZlcnJlciIsIHN0YXNoZWRfZGF0YVsncHJlZmxpZ2h0X3JlZmVy
cmVyJ10pKQorICAgIGhlYWRlcnMuYXBwZW5kKCgieC1yZWZlcnJlciIsIHJlcXVlc3QuaGVhZGVy
cy5nZXQoIlJlZmVyZXIiLCAiIikgKSkKKyAgICBoZWFkZXJzLmFwcGVuZCgoIngtb3JpZ2luIiwg
cmVxdWVzdC5oZWFkZXJzLmdldCgiT3JpZ2luIiwgIiIpICkpCisKKyAgICBpZiB0b2tlbjoKKyAg
ICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dCh0b2tlbiwgc3Rhc2hlZF9kYXRhKQorCisgICAg
cmV0dXJuIGhlYWRlcnMsICIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvcmVkaXJlY3QucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJj
ZXMvcmVkaXJlY3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc2N2IyMjNhYWNjYTM2NDcxNzNlNTE3YTYyMTIx
ZDJkM2RkNWJkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9yZWRpcmVjdC5weQpAQCAtMCww
ICsxLDQ4IEBACitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgc3Rhc2hlZF9kYXRh
ID0geydjb3VudCc6IDAsICdwcmVmbGlnaHQnOiAiMCJ9CisgICAgc3RhdHVzID0gMzAyCisgICAg
aGVhZGVycyA9IFsoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIiksCisgICAgICAgICAgICAg
ICAoIkNhY2hlLUNvbnRyb2wiLCAibm8tY2FjaGUiKSwKKyAgICAgICAgICAgICAgICgiUHJhZ21h
IiwgIm5vLWNhY2hlIiksCisgICAgICAgICAgICAgICAoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9y
aWdpbiIsICIqIildCisgICAgdG9rZW4gPSBOb25lCisKKyAgICBpZiAidG9rZW4iIGluIHJlcXVl
c3QuR0VUOgorICAgICAgICB0b2tlbiA9IHJlcXVlc3QuR0VULmZpcnN0KCJ0b2tlbiIpCisgICAg
ICAgIGRhdGEgPSByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKHRva2VuKQorICAgICAgICBpZiBk
YXRhOgorICAgICAgICAgICAgc3Rhc2hlZF9kYXRhID0gZGF0YQorCisgICAgaWYgcmVxdWVzdC5t
ZXRob2QgPT0gIk9QVElPTlMiOgorICAgICAgICBpZiAiYWxsb3dfaGVhZGVycyIgaW4gcmVxdWVz
dC5HRVQ6CisgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93
LUhlYWRlcnMiLCByZXF1ZXN0LkdFVFsnYWxsb3dfaGVhZGVycyddKSkKKyAgICAgICAgc3Rhc2hl
ZF9kYXRhWydwcmVmbGlnaHQnXSA9ICIxIgorICAgICAgICAjUHJlZmxpZ2h0IGlzIG5vdCByZWRp
cmVjdGVkOiByZXR1cm4gMjAwCisgICAgICAgIGlmIG5vdCAicmVkaXJlY3RfcHJlZmxpZ2h0IiBp
biByZXF1ZXN0LkdFVDoKKyAgICAgICAgICAgIGlmIHRva2VuOgorICAgICAgICAgICAgICByZXF1
ZXN0LnNlcnZlci5zdGFzaC5wdXQocmVxdWVzdC5HRVQuZmlyc3QoInRva2VuIiksIHN0YXNoZWRf
ZGF0YSkKKyAgICAgICAgICAgIHJldHVybiAyMDAsIGhlYWRlcnMsICIiCisKKyAgICBpZiAicmVk
aXJlY3Rfc3RhdHVzIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgc3RhdHVzID0gaW50KHJlcXVl
c3QuR0VUWydyZWRpcmVjdF9zdGF0dXMnXSkKKworICAgIHN0YXNoZWRfZGF0YVsnY291bnQnXSAr
PSAxCisKKyAgICAja2VlcCB1cmwgcGFyYW1ldGVycyBpbiBsb2NhdGlvbgorICAgIHVybF9wYXJh
bWV0ZXJzID0gIj8iICsgIiYiLmpvaW4obWFwKGxhbWJkYSB4OiB4WzBdWzBdICsgIj0iICsgeFsx
XVswXSwgcmVxdWVzdC5HRVQuaXRlbXMoKSkpCisgICAgI21ha2Ugc3VyZSBsb2NhdGlvbiBjaGFu
Z2VzIGR1cmluZyByZWRpcmVjdGlvbiBsb29wCisgICAgdXJsX3BhcmFtZXRlcnMgKz0gIiZjb3Vu
dD0iICsgc3RyKHN0YXNoZWRfZGF0YVsnY291bnQnXSkKKworICAgIGlmICJsb2NhdGlvbiIgaW4g
cmVxdWVzdC5HRVQ6CisgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiTG9jYXRpb24iLCByZXF1ZXN0
LkdFVFsnbG9jYXRpb24nXSArIHVybF9wYXJhbWV0ZXJzKSkKKworICAgIGlmIHRva2VuOgorICAg
ICAgICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQocmVxdWVzdC5HRVQuZmlyc3QoInRva2VuIiks
IHN0YXNoZWRfZGF0YSkKKyAgICAgICAgaWYgIm1heF9jb3VudCIgaW4gcmVxdWVzdC5HRVQ6Cisg
ICAgICAgICAgICBtYXhfY291bnQgPSAgaW50KHJlcXVlc3QuR0VUWydtYXhfY291bnQnXSkKKyAg
ICAgICAgICAgICNzdG9wIHJlZGlyZWN0aW5nIGFuZCByZXR1cm4gY291bnQKKyAgICAgICAgICAg
IGlmIHN0YXNoZWRfZGF0YVsnY291bnQnXSA+IG1heF9jb3VudDoKKyAgICAgICAgICAgICAgICAj
IC0xIGJlY2F1c2UgdGhlIGxhc3QgaXMgbm90IGEgcmVkaXJlY3Rpb24KKyAgICAgICAgICAgICAg
ICByZXR1cm4gc3RyKHN0YXNoZWRfZGF0YVsnY291bnQnXSAtIDEpCisKKyAgICByZXR1cm4gc3Rh
dHVzLCBoZWFkZXJzLCAiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3RvcC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvdG9w
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44M2EzMTU3ZDE0ZDkwODFlZDAxY2Q3OTkyODc4OTk4MjJlMTk1MjNh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3RvcC50eHQKQEAgLTAsMCArMSBAQAordG9wClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3RyaWNrbGUucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNvdXJjZXMvdHJpY2tsZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTcwOTQ0NWM1OThjMTg3NzIyYzhmNTBm
NmIxNjJhMjUyYWRhYmFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3RyaWNrbGUucHkKQEAg
LTAsMCArMSwxMiBAQAoraW1wb3J0IHRpbWUKKworZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2Up
OgorICAgIGRlbGF5ID0gZmxvYXQocmVxdWVzdC5HRVQuZmlyc3QoIm1zIiwgNTAwKSkgLyAxRTMK
KyAgICBjb3VudCA9IGludChyZXF1ZXN0LkdFVC5maXJzdCgiY291bnQiLCA1MCkpCisgICAgdGlt
ZS5zbGVlcChkZWxheSkKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldCgiQ29udGVudC10eXBlIiwg
InRleHQvcGxhaW4iKQorICAgIHJlc3BvbnNlLndyaXRlX3N0YXR1c19oZWFkZXJzKCkKKyAgICB0
aW1lLnNsZWVwKGRlbGF5KTsKKyAgICBmb3IgaSBpbiB4cmFuZ2UoY291bnQpOgorICAgICAgICBy
ZXNwb25zZS53cml0ZXIud3JpdGVfY29udGVudCgiVEVTVF9UUklDS0xFXG4iKQorICAgICAgICB0
aW1lLnNsZWVwKGRlbGF5KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3V0aWxzLmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3V0
aWxzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ0OTI5MzU2MjRkOTIyODZiNGFlNzkxOTdlOGQ2MGI0YzY0OTVk
MDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvdXRpbHMuanMKQEAgLTAsMCArMSw2NiBAQAor
dmFyIGluV29ya2VyID0gZmFsc2U7Cit2YXIgUkVTT1VSQ0VTX0RJUiA9ICIuLi9yZXNvdXJjZXMv
IjsKKwordHJ5IHsKKyAgaW5Xb3JrZXIgPSAhKHNlbGYgaW5zdGFuY2VvZiBXaW5kb3cpOworfSBj
YXRjaCAoZSkgeworICBpbldvcmtlciA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIGRpcm5hbWUocGF0
aCkgeworICAgIHJldHVybiBwYXRoLnJlcGxhY2UoL1wvW15cL10qJC8sICcvJykKK30KKworZnVu
Y3Rpb24gY2hlY2tSZXF1ZXN0KHJlcXVlc3QsIEV4cGVjdGVkVmFsdWVzRGljdCkgeworICBmb3Ig
KHZhciBhdHRyaWJ1dGUgaW4gRXhwZWN0ZWRWYWx1ZXNEaWN0KSB7CisgICAgc3dpdGNoKGF0dHJp
YnV0ZSkgeworICAgICAgY2FzZSAiaGVhZGVycyI6CisgICAgICAgICAgZm9yICh2YXIga2V5IG9m
IEV4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmtleXMoKSkKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMocmVxdWVzdFsiaGVhZGVycyJdLmdldChrZXkpLCBFeHBlY3RlZFZhbHVlc0RpY3Rb
ImhlYWRlcnMiXS5nZXQoa2V5KSwKKyAgICAgICAgICAgICAgIkNoZWNrIGhlYWRlcnMgYXR0cmli
dXRlIGhhcyAiICsga2V5ICsgIjoiICsgRXhwZWN0ZWRWYWx1ZXNEaWN0WyJoZWFkZXJzIl0uZ2V0
KGtleSkpOworICAgICAgICBicmVhazsKKworICAgICAgY2FzZSAiYm9keSI6CisgICAgICAgIC8v
Zm9yIGNoZWNraW5nIGJvZHkncyBjb250ZW50LCBhIGRlZGljYXRlZCBhc3luY3Jvbm91cy9wcm9t
aXNlIHRlc3Qgc2hvdWxkIGJlIHVzZWQKKyAgICAgICAgYXNzZXJ0X3RydWUocmVxdWVzdFsiaGVh
ZGVycyJdLmhhcygiQ29udGVudC1UeXBlIikgLCAiQ2hlY2sgcmVxdWVzdCBoYXMgYm9keSB1c2lu
ZyBDb250ZW50LVR5cGUgaGVhZGVyIikKKyAgICAgICAgYnJlYWs7CisKKyAgICAgIGNhc2UgIm1l
dGhvZCI6CisgICAgICBjYXNlICJyZWZlcnJlciI6CisgICAgICBjYXNlICJyZWZlcnJlclBvbGlj
eSI6CisgICAgICBjYXNlICJjcmVkZW50aWFscyI6CisgICAgICBjYXNlICJjYWNoZSI6CisgICAg
ICBjYXNlICJyZWRpcmVjdCI6CisgICAgICBjYXNlICJpbnRlZ3JpdHkiOgorICAgICAgY2FzZSAi
dXJsIjoKKyAgICAgIGNhc2UgImRlc3RpbmF0aW9uIjoKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZXF1ZXN0W2F0dHJpYnV0ZV0sIEV4cGVjdGVkVmFsdWVzRGljdFthdHRyaWJ1dGVdLCAiQ2hlY2sg
IiArIGF0dHJpYnV0ZSArICIgYXR0cmlidXRlIikKKyAgICAgICAgYnJlYWs7CisKKyAgICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgfQorfQorCisvL2NoZWNrIHJlYWRlcidz
IHRleHQgY29udGVudCBpbiBhbiBhc3luY3Jvbm91cyB0ZXN0CitmdW5jdGlvbiByZWFkVGV4dFN0
cmVhbShyZWFkZXIsIGFzeW5jVGVzdCwgZXhwZWN0ZWRWYWx1ZSwgcmV0cmlldmVkVGV4dCkgewor
ICBpZiAoIXJldHJpZXZlZFRleHQpCisgICAgcmV0cmlldmVkVGV4dCA9ICIiOworICByZWFkZXIu
cmVhZCgpLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgIGlmICghZGF0YS5kb25lKSB7CisgICAg
ICB2YXIgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpOworICAgICAgcmV0cmlldmVkVGV4dCAr
PSBkZWNvZGVyLmRlY29kZShkYXRhLnZhbHVlKTsKKyAgICAgIHJlYWRUZXh0U3RyZWFtKHJlYWRl
ciwgYXN5bmNUZXN0LCBleHBlY3RlZFZhbHVlLCByZXRyaWV2ZWRUZXh0KTsKKyAgICB9CisgICAg
YXN5bmNUZXN0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICBhc3NlcnRfZXF1YWxzKHJldHJpZXZl
ZFRleHQsIGV4cGVjdGVkVmFsdWUsICJSZXRyaWV2ZSBhbmQgdmVyaWZ5IHN0cmVhbSIpOworICAg
ICAgYXN5bmNUZXN0LmRvbmUoKTsKKyAgICB9KTsKKyAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgewor
ICAgIGFzeW5jVGVzdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAgYXNzZXJ0X3VucmVhY2hlZCgi
Q2Fubm90IHJlYWQgc3RyZWFtICIgKyBlKTsKKyAgICAgIGFzeW5jVGVzdC5kb25lKCk7CisgICAg
fSk7CisgIH0pOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVk
LXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDgzNjFh
MWQ0ZGNmZTVjYTk4ZjZmYzFlYzk1ODY1YmRkY2VkODc3MzQuLmIxN2I2ZDNiMjAxZmQ0NTRiY2E1
YjEzZjZmNTNjZTcyNDM5ZDQ2NzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1k
ZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtNjQsNiArNjQsMTEgQEAgUEFTUyBbV29y
a2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlYWRhYmxlU3Ry
ZWFtJykuaGFzT3duUHIKIFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdSZWFkYWJsZVN0cmVhbScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBm
YWxzZQogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ1JlYWRhYmxlU3RyZWFtJykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBbV29ya2VyXSBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlYWRhYmxlU3RyZWFtJyku
Y29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykudmFsdWUgaXMgUmVxdWVzdAorUEFTUyBbV29y
a2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5o
YXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ3Nl
dCcpIGlzIGZhbHNlCitQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgW1dvcmtlcl0g
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuY29uZmln
dXJhYmxlIGlzIHRydWUKIFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdVUkwnKS52YWx1ZSBpcyBVUkwKIFBBU1MgW1dvcmtlcl0gT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdVUkwnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0
JykgaXMgZmFsc2UKIFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdVUkwnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKaW5kZXggMmRlM2ZhZTI1MTM3YjcwODlhOGE3NjMxYzJlMGIwMjE3
NzUyOWQyYS4uYzM3MzRiN2ExZWE5ZmFjMzkwMzg3Mjc0NDI5OWI4NTRmOWE4OWRjMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTkzOCw2ICs5MzgsMTEgQEAgUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNPd25Q
cm9wZXJ0eSgnZ2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdQcm9ncmVzc0V2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmVu
dW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdQcm9ncmVzc0V2ZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykudmFsdWUgaXMgUmVx
dWVzdAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVl
c3QnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcp
IGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
UmVxdWVzdCcpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLnZhbHVl
IGlzIFJHQkNvbG9yCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUkdCQ29sb3InKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLmhhc093blByb3Bl
cnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4
MzYxYTFkNGRjZmU1Y2E5OGY2ZmMxZWM5NTg2NWJkZGNlZDg3NzM0Li5iMTdiNmQzYjIwMWZkNDU0
YmNhNWIxM2Y2ZjUzY2U3MjQzOWQ0Njc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRpY2F0ZWQtd29y
a2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2ds
b2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4
dApAQCAtNjQsNiArNjQsMTEgQEAgUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1JlYWRhYmxlU3RyZWFtJykuaGFzT3duUHIKIFBBU1MgW1dvcmtl
cl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZWFkYWJsZVN0cmVh
bScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBbV29ya2VyXSBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlYWRhYmxlU3RyZWFtJykuZW51bWVy
YWJsZSBpcyBmYWxzZQogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JlYWRhYmxlU3RyZWFtJykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1Mg
W1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0
JykudmFsdWUgaXMgUmVxdWVzdAorUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFs
c2UKK1BBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIFtXb3JrZXJd
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVudW1l
cmFibGUgaXMgZmFsc2UKK1BBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdSZXF1ZXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgW1dvcmtl
cl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdVUkwnKS52YWx1ZSBp
cyBVUkwKIFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdVUkwnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgW1dvcmtlcl0g
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdVUkwnKS5oYXNPd25Qcm9w
ZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1
dGVzLWV4cGVjdGVkLnR4dAppbmRleCBhOGMyYTdiMTRiODUxMTg2Njc5ZDc4NzlkNmNiMWVmN2E5
ZDFiNzc0Li4wOThkNmRmMDhjOWQxODkwMmYyZmZkZGY5YzQzMTAxZjZiNTVlNjNhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pz
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC05OTgs
NiArOTk4LDExIEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdQcm9ncmVzc0V2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmNvbmZpZ3Vy
YWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUmVxdWVzdCcpLnZhbHVlIGlzIFJlcXVlc3QKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZh
bHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVz
dCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmNv
bmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnUkdCQ29sb3InKS52YWx1ZSBpcyBSR0JDb2xvcgogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykuaGFzT3duUHJvcGVydHkoJ2dl
dCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUkdCQ29sb3InKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xv
YmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCA0YTA4ZjBmMzY2
ZTE3NzExZGViODBiNWNlM2I4NjcwN2E2Mzc4OTE2Li4zY2U5MjQ5ZmVlMDQ5NWM2NjAwY2JkNjU3
YTBjZWQ0ZDQzOWE4MGE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0CkBAIC0xMDE4LDYgKzEwMTgsMTEgQEAgUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNPd25Qcm9wZXJ0
eSgnZ2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9n
cmVzc0V2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmVudW1lcmFi
bGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdQcm9ncmVzc0V2ZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykudmFsdWUgaXMgUmVxdWVzdAor
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5o
YXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZh
bHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVz
dCcpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdSZXF1ZXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLnZhbHVlIGlzIFJH
QkNvbG9yCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUkdC
Q29sb3InKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLmhhc093blByb3BlcnR5KCdz
ZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVy
aWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlja3MvanMvZG9tL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggOWE1ZGE3MDUyYjFlNzlkZmFmNjAy
ZjMyNDA4M2M2NDFhN2RjMjBhNS4uYWY0YTYxZmZkZTZhODhhYTA1YTU4MWRjY2VjOGQ4OWQwYTQx
MWQyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3Jz
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC05OTgsNiArOTk4LDExIEBAIFBBU1MgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuaGFzT3du
UHJvcGVydHkoJ2dlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUHJvZ3Jlc3NFdmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5l
bnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLnZhbHVlIGlzIFJl
cXVlc3QKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1
ZXN0JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdzZXQn
KSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1JlcXVlc3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS52YWx1
ZSBpcyBSR0JDb2xvcgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2Jh
bCwgJ1JHQkNvbG9yJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS5oYXNPd25Qcm9w
ZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBhYjRlMTdhYzUwYmIzMjUy
ZTkwODYwYjIzOGFmYzdhOGU1OTBmNjg4Li5iMjljZTY1ZjU4MTAyZjQ5ODA4OGY2ZGJkYTM4Nzkw
MWYzNzMyYzllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUv
anMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRlL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xMDczLDYgKzEwNzMsMTEgQEAgUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlY3QnKS5oYXNPd25Qcm9w
ZXJ0eSgnZ2V0JykgaXMgZmEKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSZWN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVjdCcpLmVudW1lcmFibGUgaXMg
ZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZWN0
JykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdSZXF1ZXN0JykudmFsdWUgaXMgUmVxdWVzdAorUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgn
Z2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVudW1lcmFibGUg
aXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdS
ZXF1ZXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdTUUxFeGNlcHRpb24nKS52YWx1ZSBpcyBTUUxFeGNlcHRpb24K
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdTUUxFeGNlcHRp
b24nKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdTUUxFeGNlcHRpb24nKS5oYXNPd25Qcm9wZXJ0eSgn
c2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9k
b20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4
cGVjdGVkLnR4dAppbmRleCAyNjJkMGQ5MTIxY2VhY2EzMzE1ZDEzNTBlMzRkNDczNDkwZGFhZDYz
Li5iN2VhODE5MGQzZGNjOTA2ZjQ2NWU0ZmYyMGZjYWRiYWExMDllOWViIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xMDIzLDYgKzEw
MjMsMTEgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1By
b2dyZXNzRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuaGFzT3duUHJvcGVydHkoJ3Nl
dCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUHJvZ3Jlc3NFdmVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuY29uZmlndXJhYmxl
IGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdS
ZXF1ZXN0JykudmFsdWUgaXMgUmVxdWVzdAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UK
K1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0Jyku
aGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1Mg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuY29uZmln
dXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9i
YWwsICdSR0JDb2xvcicpLnZhbHVlIGlzIFJHQkNvbG9yCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0Jykg
aXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdS
R0JDb2xvcicpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9iYWwt
Y29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDMxZThjYWYxNTQxYzFj
NGY2YzQ1ZGExNWIzYWJlN2Y1MjM1Njg0ZWEuLmJmY2IyMmIyZmE4OTEyM2U1MzM4MGNmNjgxNjUx
NWRhNmUzYWE2MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKQEAgLTg3Myw2ICs4NzMsMTEgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2UK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2
ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmVudW1lcmFibGUgaXMg
ZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9n
cmVzc0V2ZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykudmFsdWUgaXMgUmVxdWVzdAorUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Q
cm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVu
dW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSZXF1ZXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLnZhbHVlIGlzIFJHQkNvbG9y
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3In
KS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270381</attachid>
            <date>2016-02-01 02:08:51 -0800</date>
            <delta_ts>2016-02-01 03:05:47 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-153437-20160201110825.patch</filename>
            <type>text/plain</type>
            <size>162938</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1OTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRlYzg1N2FmOTY4OGYx
OWIzMGIzNTk5NzZiMTMwMDBmZDNhYzE5NC4uZWViYmQ2Y2U4MjI1MmE4MTUwZWYwYzdhNWE0YTVl
NzQzMGY1YzkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMSBAQAorMjAxNi0wMS0zMSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtGZXRj
aCBBUEldIEltcGxlbWVudCBGZXRjaCBBUEkgUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNDM3CisKKyAgICAgICAgQWRkZWQgc3VwcG9y
dCBmb3IgRmV0Y2ggUmVxdWVzdCBhbmQgQm9keS4KKyAgICAgICAgQm9keSBpcyBzaGFyaW5nIGZ1
bmN0aW9uYWxpdHkgYmV0d2VlbiBSZXF1ZXN0IGFuZCBSZXNwb25zZS4KKyAgICAgICAgQ29udmVy
c2lvbiBiZXR3ZWVuIHZhcmlvdXMgYm9keSB0eXBlcyBhcmUgbm90IGltcGxlbWVudGVkIHlldC4K
KworICAgICAgICBBZGRlZCBhIEZldGNoT3B0aW9ucyBjbGFzcy4gT3B0aW9ucyBpbiB0aGlzIGNs
YXNzIGFyZSBwYXJ0aWFsbHkgcmVkdW5kYW50IHdpdGggUmVzb3VyY2VMb2FkZXJPcHRpb25zLgor
CisgICAgICAgIEZpeGluZyBidWcgaW4gSGVhZGVycyBjb25zdHJ1Y3Rvci4KKyAgICAgICAgTWFr
aW5nIGVycm9yIHJlcG9ydGluZyBpbiBjYXNlIG9mIG1vZGlmeWluZyBoZWFkZXJzIGNvbXBsaWFu
dCB3aXRoIHRoZSBzcGVjLgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisg
ICAgICAgIFRlc3RzOiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtY2xvbmUuc3ViLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLmh0
bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWVycm9y
Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pZGwu
aHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAxLnN1Yi5odG1sCisgICAgICAgICAgICAgICBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
aW5pdC0wMDIuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAzLnN1Yi5odG1sCisgICAgICAg
ICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3Qtc3RydWN0dXJlLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpGZXRjaEJvZHk6OmluaXRCb2R5KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
Qm9keTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpwcm9jZXNzSWZFbXB0
eU9yRGlzdHVyYmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6YXJyYXlCdWZmZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpmb3JtRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpGZXRjaEJvZHk6OmJsb2IpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojp0ZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6anNvbik6CisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9GZXRjaEJvZHkuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6
On5GZXRjaEJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojppc0VtcHR5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6aXNEaXN0dXJiZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RmV0Y2hCb2R5OjpzZXREaXN0dXJiZWQpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5
OjpzZXRNaW1lVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6Om1pbWVUeXBlKToK
KyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5pZGw6IEFkZGVkLgorICAgICAgICAq
IE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbldy
aXRlSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6YXBwZW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoSGVhZGVyczo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6Zmls
bCk6IEhlbHBlciByb3V0aW5lIGltcGxlbWVudGluZyBodHRwczovL2ZldGNoLnNwZWMud2hhdHdn
Lm9yZy8jY29uY2VwdC1oZWFkZXJzLWZpbGwKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNo
SGVhZGVycy5oOiBBZGRpbmcgaGVhZGVyIGdldHRlci9zZXR0ZXIgZm9yIEZldGNoUmVxdWVzdC4K
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoSGVhZGVyczo6ZmFzdEdldCk6CisgICAgICAgIChXZWJD
b3JlOjpGZXRjaEhlYWRlcnM6OmZhc3RTZXQpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0
Y2hIZWFkZXJzLmpzOiBGaXhpbmcgYnVnIGluIGNvbnN0cnVjdG9yIChjb3ZlcmVkIGJ5IG1vZGlm
aWVkIGhlYWRlcnMtYmFzYy5odG1sIHRlc3QpLgorICAgICAgICAoaW5pdGlhbGl6ZUZldGNoSGVh
ZGVycyk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaE9wdGlvbnMuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkZldGNoT3B0aW9ucyk6CisgICAgICAgIChX
ZWJDb3JlOjpGZXRjaE9wdGlvbnM6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRp
b25zOjpkZXN0aW5hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6Om1vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpjcmVkZW50aWFscyk6CisgICAgICAg
IChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OmNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
T3B0aW9uczo6cmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpyZWZl
cnJlclBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OnNldFR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpzZXREZXN0aW5hdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OnNldE1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RmV0
Y2hPcHRpb25zOjpzZXRDcmVkZW50aWFscyk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaE9wdGlv
bnM6OnNldENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoT3B0aW9uczo6c2V0UmVkaXJl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpzZXRSZWZlcnJlclBvbGljeSk6
CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZl
dGNoUmVxdWVzdDo6RmV0Y2hSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVz
dDo6aW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OnNldFJlZmVycmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6c2V0UmVmZXJyZXJQb2xpY3kpOgorICAg
ICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpzZXRNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoUmVxdWVzdDo6c2V0Q3JlZGVudGlhbHMpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hS
ZXF1ZXN0OjpzZXRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OnNldFJl
ZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoUmVxdWVzdDo6dHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmRlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoUmVxdWVzdDo6cmVmZXJyZXJQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hS
ZXF1ZXN0OjpyZWZlcnJlcik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6Om1vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpjcmVkZW50aWFscyk6CisgICAgICAg
IChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNo
UmVxdWVzdDo6cmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpzZXRN
ZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hSZXF1ZXN0OjpjbG9uZSk6CisgICAgICAg
ICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpGZXRjaFJlcXVlc3Q6Om1ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6
OnVybCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmludGVncml0eSk6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaFJlcXVlc3Q6OmhlYWRlcnMpOgorICAgICAgICAqIE1vZHVsZXMv
ZmV0Y2gvRmV0Y2hSZXF1ZXN0LmlkbDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0RpY3Rpb25hcnkuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnk6OmV4ZWNTdGF0ZSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRGljdGlvbmFy
eTo6Y29udmVydFZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTRGljdGlvbmFyeTo6Z2V0KToKKwogMjAxNi0wMS0zMSAgSmVy
ZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHJlc2l6ZSBldmVu
dCBmb3IgSFRNTE1lZGlhRWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyNDk3YmVkZjQz
MjAwMTgxYzkyNzM2NDA1NWI2YmYxNTMyNjgwNmE3Li5jNDhlMTA4MjdiZTMyOGQ2OWY1OWVlODVh
NjNkOTEzMzdlNGIyZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTcyLDcgKzE3Miw5IEBA
IHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9iYXR0ZXJ5L0JhdHRl
cnlNYW5hZ2VyLmlkbAogICAgIE1vZHVsZXMvYmF0dGVyeS9OYXZpZ2F0b3JCYXR0ZXJ5LmlkbAog
CisgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaWRsCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRj
aEhlYWRlcnMuaWRsCisgICAgTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaWRsCiAKICAgICBN
b2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmlkbAogICAgIE1vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb24uaWRsCkBAIC04MTUsNyArODE3LDkgQEAgc2V0KFdlYkNvcmVfU09VUkNF
UwogICAgIE1vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5U3RhdHVzLmNwcAogICAgIE1vZHVsZXMvYmF0
dGVyeS9OYXZpZ2F0b3JCYXR0ZXJ5LmNwcAogCisgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHku
Y3BwCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuY3BwCisgICAgTW9kdWxlcy9mZXRj
aC9GZXRjaFJlcXVlc3QuY3BwCiAKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVz
LmNwcAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZpZXIuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5jcHAKaW5kZXggMDBmMTkwMmI0NGMxMzk1N2I4NzA0OGM5Y2Q0ZWM1MWQ2ZWI3
MWE2Mi4uNjQzMmZhM2RkZGRhYTNlZjYyNDc2YWYxZTk3ZTMwYTNlNDkzNTI5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtMTU0LDcgKzE1NCw5IEBACiAjaW5jbHVkZSAiSlNFdmVu
dC5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudFNvdXJjZS5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudFRh
cmdldC5jcHAiCisjaW5jbHVkZSAiSlNGZXRjaEJvZHkuY3BwIgogI2luY2x1ZGUgIkpTRmV0Y2hI
ZWFkZXJzLmNwcCIKKyNpbmNsdWRlICJKU0ZldGNoUmVxdWVzdC5jcHAiCiAjaW5jbHVkZSAiSlNG
aWxlLmNwcCIKICNpbmNsdWRlICJKU0ZpbGVFcnJvci5jcHAiCiAjaW5jbHVkZSAiSlNGaWxlRXhj
ZXB0aW9uLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDNlZWI5OTM1ODFm
Y2UyZGVlNDQwOTVjZmVlNTc0NWZmMjMxZmZmN2UuLmY2YmFiMzMyZTM5MjRlMTc0YTFhY2JkZDI1
ZjFlZmNjODViNDM4MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNzksNyAr
NzksOSBAQCBOT05fU1ZHX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlOZWVkZWRFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmlkbCBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9m
ZXRjaC9GZXRjaEhlYWRlcnMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvZmV0Y2gvRmV0
Y2hSZXF1ZXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRCdXR0b24uaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkRXZlbnQuaWRsIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDJjNzc2
OGU4MWM3MWI1NmQyMjYwMzkwZjZjMWM2ZDRhYjQ4MzcwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwCkBAIC0wLDAgKzEsMTgxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IENhbm9uIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6CisgKgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBDYW5vbiBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICog
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkZldGNoQm9keS5oIgorCisjaWYgRU5BQkxFKEZFVENIX0FQSSkK
KworI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisj
aW5jbHVkZSAiSlNCbG9iLmgiCisjaW5jbHVkZSAiSlNET01Gb3JtRGF0YS5oIgorI2luY2x1ZGUg
PHJ1bnRpbWUvSlNPTk9iamVjdC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ZldGNoQm9k
eTo6RmV0Y2hCb2R5KFJlZjxCbG9iPiYmIGJsb2IpCisgICAgOiBtX3R5cGUoVHlwZTo6QmxvYikK
KyAgICAsIG1fbWltZVR5cGUoYmxvYi0+dHlwZSgpKQorICAgICwgbV9ibG9iKFdURk1vdmUoYmxv
YikpCit7Cit9CisKK0ZldGNoQm9keTo6RmV0Y2hCb2R5KFJlZjxET01Gb3JtRGF0YT4mJiBmb3Jt
RGF0YSkKKyAgICA6IG1fdHlwZShUeXBlOjpGb3JtRGF0YSkKKyAgICAsIG1fbWltZVR5cGUoQVND
SUlMaXRlcmFsKCJtdWx0aXBhcnQvZm9ybS1kYXRhIikpCisgICAgLCBtX2Zvcm1EYXRhKFdURk1v
dmUoZm9ybURhdGEpKQoreworICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhlIGJvdW5kYXJ5IHBhcmFt
ZXRlciBvZiBtdWx0aXBhcnQvZm9ybS1kYXRhIE1JTUUgdHlwZS4KK30KKworRmV0Y2hCb2R5OjpG
ZXRjaEJvZHkoU3RyaW5nJiYgdGV4dCkKKyAgICA6IG1fdHlwZShUeXBlOjpUZXh0KQorICAgICwg
bV9taW1lVHlwZShBU0NJSUxpdGVyYWwoInRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCIpKQorICAg
ICwgbV90ZXh0KFdURk1vdmUodGV4dCkpCit7Cit9CisKK0ZldGNoQm9keSBGZXRjaEJvZHk6OmZy
b21KU1ZhbHVlKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQorewor
ICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU0Jsb2I6OmluZm8oKSkpCisgICAgICAgIHJldHVybiBG
ZXRjaEJvZHkoKkpTQmxvYjo6dG9XcmFwcGVkKHZhbHVlKSk7CisgICAgaWYgKHZhbHVlLmluaGVy
aXRzKEpTRE9NRm9ybURhdGE6OmluZm8oKSkpCisgICAgICAgIHJldHVybiBGZXRjaEJvZHkoKkpT
RE9NRm9ybURhdGE6OnRvV3JhcHBlZCh2YWx1ZSkpOworICAgIGlmICh2YWx1ZS5pc1N0cmluZygp
KQorICAgICAgICByZXR1cm4gRmV0Y2hCb2R5KHZhbHVlLnRvV1RGU3RyaW5nKCZzdGF0ZSkpOwor
ICAgIHJldHVybiBGZXRjaEJvZHkoKTsKK30KKworLy8gRklYTUU6IE9uY2UgRmV0Y2hSZXNwb25z
ZSBpcyBhZGRlZCwgY2hlY2sgd2hldGhlciB1c2luZyBhIG1vdmUgY29uc3RydWN0b3IgaW5zdGVh
ZC4KKy8vIEVuc3VyZSB3aGV0aGVyIHJlc2V0dGluZyBtX21pbWVUeXBlIHRvIHRoZSBlbXB0eSBz
dHJpbmcgYmUgbm90IG9ic2VydmFibGUuCitGZXRjaEJvZHkgRmV0Y2hCb2R5Ojpmcm9tUmVxdWVz
dEJvZHkoRmV0Y2hCb2R5KiBib2R5KQoreworICAgIGlmICghYm9keSkKKyAgICAgICAgcmV0dXJu
IEZldGNoQm9keSgpOworCisgICAgRmV0Y2hCb2R5IHJlc3VsdDsKKyAgICByZXN1bHQubV90eXBl
ID0gYm9keS0+bV90eXBlOworICAgIHJlc3VsdC5tX21pbWVUeXBlID0gYm9keS0+bV9taW1lVHlw
ZTsKKworICAgIHJlc3VsdC5tX2Jsb2IgPSBXVEZNb3ZlKGJvZHktPm1fYmxvYik7CisgICAgcmVz
dWx0Lm1fZm9ybURhdGEgPSBXVEZNb3ZlKGJvZHktPm1fZm9ybURhdGEpOworICAgIHJlc3VsdC5t
X3RleHQgPSBXVEZNb3ZlKGJvZHktPm1fdGV4dCk7CisKKyAgICBib2R5LT5tX2lzRGlzdHVyYmVk
ID0gdHJ1ZTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
IGlubGluZSBib29sIEZldGNoQm9keTo6cHJvY2Vzc0lmRW1wdHlPckRpc3R1cmJlZChET01Qcm9t
aXNlPFQsIEV4Y2VwdGlvbkNvZGU+JiBwcm9taXNlKQoreworICAgIGlmIChtX3R5cGUgPT0gVHlw
ZTo6Tm9uZSkgeworICAgICAgICBwcm9taXNlLnJlc29sdmUoVCgpKTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgaWYgKG1faXNEaXN0dXJiZWQpIHsKKyAgICAgICAgcHJvbWlz
ZS5yZWplY3QoVHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIG1f
aXNEaXN0dXJiZWQgPSB0cnVlOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBGZXRjaEJv
ZHk6OmFycmF5QnVmZmVyKEFycmF5QnVmZmVyUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgaWYg
KHByb2Nlc3NJZkVtcHR5T3JEaXN0dXJiZWQocHJvbWlzZSkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6VGV4dCkgeworICAgICAgICAvLyBGSVhNRTogcHJvbWlz
ZSBleHBlY3RzIGEgVmVjdG9yPHVuc2lnbmVkIGNoYXI+IHRoYXQgd2lsbCBiZSBjb252ZXJ0ZWQg
dG8gYW4gQXJyYXlCdWZmZXIuCisgICAgICAgIC8vIFdlIHNob3VsZCB0cnkgdG8gY3JlYXRlIGEg
VmVjdG9yPHVuc2lnbmVkIGNoYXI+IG9yIGFuIEFycmF5QnVmZmVyIGRpcmVjdGx5IGZyb20gbV90
ZXh0LgorICAgICAgICBDU3RyaW5nIGRhdGEgPSBtX3RleHQudXRmOCgpOworICAgICAgICBWZWN0
b3I8dW5zaWduZWQgY2hhcj4gdmFsdWUoZGF0YS5sZW5ndGgoKSk7CisgICAgICAgIG1lbWNweSh2
YWx1ZS5kYXRhKCksIGRhdGEuZGF0YSgpLCBkYXRhLmxlbmd0aCgpKTsKKyAgICAgICAgcHJvbWlz
ZS5yZXNvbHZlKFdURk1vdmUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAv
LyBGSVhNRTogU3VwcG9ydCBvdGhlciB0eXBlcy4KKyAgICBwcm9taXNlLnJlamVjdCgwKTsKK30K
Kwordm9pZCBGZXRjaEJvZHk6OmZvcm1EYXRhKEZvcm1EYXRhUHJvbWlzZSYmIHByb21pc2UpCit7
CisgICAgaWYgKG1fdHlwZSA9PSBUeXBlOjpOb25lIHx8IG1faXNEaXN0dXJiZWQpIHsKKyAgICAg
ICAgcHJvbWlzZS5yZWplY3QoVHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBtX2lzRGlzdHVyYmVkID0gdHJ1ZTsKKworICAgIC8vIEZJWE1FOiBTdXBwb3J0IG90aGVyIHR5
cGVzLgorICAgIHByb21pc2UucmVqZWN0KDApOworfQorCit2b2lkIEZldGNoQm9keTo6YmxvYihC
bG9iUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgaWYgKHByb2Nlc3NJZkVtcHR5T3JEaXN0dXJi
ZWQocHJvbWlzZSkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBTdXBwb3J0IG90
aGVyIHR5cGVzLgorICAgIHByb21pc2UucmVqZWN0KDApOworfQorCit2b2lkIEZldGNoQm9keTo6
dGV4dChUZXh0UHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgaWYgKHByb2Nlc3NJZkVtcHR5T3JE
aXN0dXJiZWQocHJvbWlzZSkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3R5cGUgPT0g
VHlwZTo6VGV4dCkgeworICAgICAgICBwcm9taXNlLnJlc29sdmUobV90ZXh0KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICAvLyBGSVhNRTogU3VwcG9ydCBvdGhlciB0eXBlcy4KKyAgICBw
cm9taXNlLnJlamVjdCgwKTsKK30KKwordm9pZCBGZXRjaEJvZHk6Ompzb24oSlNDOjpFeGVjU3Rh
dGUmIHN0YXRlLCBKU09OUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgaWYgKHByb2Nlc3NJZkVt
cHR5T3JEaXN0dXJiZWQocHJvbWlzZSkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3R5
cGUgPT0gVHlwZTo6VGV4dCkgeworICAgICAgICBKU0M6OkpTVmFsdWUgdmFsdWUgPSBKU0M6OkpT
T05QYXJzZSgmc3RhdGUsIG1fdGV4dCk7CisgICAgICAgIGlmICghdmFsdWUpCisgICAgICAgICAg
ICBwcm9taXNlLnJlamVjdChTWU5UQVhfRVJSKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
cHJvbWlzZS5yZXNvbHZlKHZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBG
SVhNRTogU3VwcG9ydCBvdGhlciB0eXBlcy4KKyAgICBwcm9taXNlLnJlamVjdCgwKTsKK30KKwor
fQorCisjZW5kaWYgLy8gRU5BQkxFKEZFVENIX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzNjI3YTIxMjgwZDk3NzM4NmE0ZjM1NWY0NmIw
ODU1NjQ0M2MxM2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keS5oCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIHJl
cXVpcmVkIHRvIGJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisg
KiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZldGNoQm9keV9oCisjZGVmaW5lIEZldGNoQm9k
eV9oCisKKyNpZiBFTkFCTEUoRkVUQ0hfQVBJKQorCisjaW5jbHVkZSAiQmxvYi5oIgorI2luY2x1
ZGUgIkRPTUZvcm1EYXRhLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCisKK25hbWVzcGFj
ZSBKU0MgeworY2xhc3MgRXhlY1N0YXRlOworY2xhc3MgSlNWYWx1ZTsKK307CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgRGljdGlvbmFyeTsKK3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNv
ZGU7CisKK2NsYXNzIEZldGNoQm9keSB7CitwdWJsaWM6CisgICAgdHlwZWRlZiBET01Qcm9taXNl
PFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiwgRXhjZXB0aW9uQ29kZT4gQXJyYXlCdWZmZXJQcm9taXNl
OworICAgIHZvaWQgYXJyYXlCdWZmZXIoQXJyYXlCdWZmZXJQcm9taXNlJiYpOworCisgICAgdHlw
ZWRlZiBET01Qcm9taXNlPFJlZlB0cjxET01Gb3JtRGF0YT4sIEV4Y2VwdGlvbkNvZGU+IEZvcm1E
YXRhUHJvbWlzZTsKKyAgICB2b2lkIGZvcm1EYXRhKEZvcm1EYXRhUHJvbWlzZSYmKTsKKworICAg
IHR5cGVkZWYgRE9NUHJvbWlzZTxSZWZQdHI8QmxvYj4sIEV4Y2VwdGlvbkNvZGU+IEJsb2JQcm9t
aXNlOworICAgIHZvaWQgYmxvYihCbG9iUHJvbWlzZSYmKTsKKworICAgIHR5cGVkZWYgRE9NUHJv
bWlzZTxKU0M6OkpTVmFsdWUsIEV4Y2VwdGlvbkNvZGU+IEpTT05Qcm9taXNlOworICAgIHZvaWQg
anNvbihKU0M6OkV4ZWNTdGF0ZSYsIEpTT05Qcm9taXNlJiYpOworCisgICAgdHlwZWRlZiBET01Q
cm9taXNlPFN0cmluZywgRXhjZXB0aW9uQ29kZT4gVGV4dFByb21pc2U7CisgICAgdm9pZCB0ZXh0
KFRleHRQcm9taXNlJiYpOworCisgICAgYm9vbCBpc0Rpc3R1cmJlZCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNEaXN0dXJiZWQ7IH0KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3R5
cGUgPT0gVHlwZTo6Tm9uZTsgfQorCisgICAgdm9pZCBzZXRNaW1lVHlwZShjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKSB7IG1fbWltZVR5cGUgPSBtaW1lVHlwZTsgfQorICAgIFN0cmluZyBtaW1lVHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWltZVR5cGU7IH0KKworICAgIHN0YXRpYyBGZXRjaEJvZHkg
ZnJvbUpTVmFsdWUoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBG
ZXRjaEJvZHkgZnJvbVJlcXVlc3RCb2R5KEZldGNoQm9keSopOworCitwcml2YXRlOgorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgcHJvY2Vzc0lmRW1wdHlPckRpc3R1cmJlZChET01Qcm9t
aXNlPFQsIEV4Y2VwdGlvbkNvZGU+Jik7CisKKyAgICBlbnVtIGNsYXNzIFR5cGUgeyBOb25lLCBU
ZXh0LCBCbG9iLCBGb3JtRGF0YSB9OworCisgICAgRmV0Y2hCb2R5KFJlZjxCbG9iPiYmKTsKKyAg
ICBGZXRjaEJvZHkoUmVmPERPTUZvcm1EYXRhPiYmKTsKKyAgICBGZXRjaEJvZHkoU3RyaW5nJiYp
OworICAgIEZldGNoQm9keSgpIHsgfQorCisgICAgVHlwZSBtX3R5cGUgPSBUeXBlOjpOb25lOwor
ICAgIFN0cmluZyBtX21pbWVUeXBlOworICAgIGJvb2wgbV9pc0Rpc3R1cmJlZCA9IGZhbHNlOwor
CisgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBCdWZmZXJTb3VyY2UgYW5kIFVSTFNlYXJj
aFBhcmFtcy4KKyAgICBSZWZQdHI8QmxvYj4gbV9ibG9iOworICAgIFJlZlB0cjxET01Gb3JtRGF0
YT4gbV9mb3JtRGF0YTsKKyAgICBTdHJpbmcgbV90ZXh0OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEZFVENIX0FQSSkKKworI2VuZGlmIC8vIEZldGNo
Qm9keV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9k
eS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjM0Yjk3MWUyNWY4NGIyNjY5NDJhYjZlMGNkMzY0ZTg5NWNhMTIzMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmlkbApAQCAt
MCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IENhbm9uIEluYy4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBD
YW5vbiBJbmMuIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQ0FOT04gSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIENBTk9OIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICog
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
WworICAgIENvbmRpdGlvbmFsPUZFVENIX0FQSSwKKyAgICBHbG9iYWxDb250ZXh0PURPTVdpbmRv
dyZXb3JrZXJHbG9iYWxTY29wZSwKKyAgICBJbnRlcmZhY2VOYW1lPUJvZHksCisgICAgTm9JbnRl
cmZhY2VPYmplY3QKK10KK2ludGVyZmFjZSBGZXRjaEJvZHkgeworICAgIFtJbXBsZW1lbnRlZEFz
PWlzRGlzdHVyYmVkXSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBib2R5VXNlZDsKKyAgICBb
TmV3T2JqZWN0XSBQcm9taXNlIGFycmF5QnVmZmVyKCk7CisgICAgW05ld09iamVjdF0gUHJvbWlz
ZSBibG9iKCk7CisgICAgW05ld09iamVjdF0gUHJvbWlzZSBmb3JtRGF0YSgpOworICAgIFtDYWxs
V2l0aD1TY3JpcHRTdGF0ZSwgTmV3T2JqZWN0XSBQcm9taXNlIGpzb24oKTsKKyAgICBbTmV3T2Jq
ZWN0XSBQcm9taXNlIHRleHQoKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoSGVhZGVycy5jcHAKaW5kZXggZGY5MTAyMzZkZTY4MjgwNWUzYmUyNmJiZjE0ZDVhNTU5
NDZkYWZiMC4uMzA1MTYzNDE5MWY0OTM5N2ZlYzVkZWIzYjA0YzQ0OGQ0MzM2ZTI5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcApAQCAtMTAxLDEy
ICsxMDEsMTYgQEAgc3RhdGljIGJvb2wgaXNTaW1wbGVIZWFkZXIoY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIH0KIH0KIAotc3RhdGljIGJvb2wgY2FuV3JpdGVI
ZWFkZXIoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBGZXRjaEhlYWRl
cnM6Okd1YXJkIGd1YXJkKQorc3RhdGljIGJvb2wgY2FuV3JpdGVIZWFkZXIoY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBGZXRjaEhlYWRlcnM6Okd1YXJkIGd1YXJkLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoIWlzVmFsaWRIVFRQVG9rZW4obmFtZSkgfHwg
IWlzVmFsaWRIVFRQSGVhZGVyVmFsdWUodmFsdWUpKQorICAgIGlmICghaXNWYWxpZEhUVFBUb2tl
bihuYW1lKSB8fCAhaXNWYWxpZEhUVFBIZWFkZXJWYWx1ZSh2YWx1ZSkpIHsKKyAgICAgICAgZWMg
PSBUeXBlRXJyb3I7CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoZ3VhcmQgPT0gRmV0
Y2hIZWFkZXJzOjpHdWFyZDo6SW1tdXRhYmxlKQorICAgIH0KKyAgICBpZiAoZ3VhcmQgPT0gRmV0
Y2hIZWFkZXJzOjpHdWFyZDo6SW1tdXRhYmxlKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogICAgIGlmIChndWFyZCA9PSBGZXRjaEhlYWRl
cnM6Okd1YXJkOjpSZXF1ZXN0ICYmIGlzRm9yYmlkZGVuSGVhZGVyTmFtZShuYW1lKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChndWFyZCA9PSBGZXRjaEhlYWRlcnM6Okd1YXJkOjpS
ZXF1ZXN0Tm9Db3JzICYmICFpc1NpbXBsZUhlYWRlcihuYW1lLCB2YWx1ZSkpCkBAIC0xMTksMTkg
KzEyMywxNSBAQCBzdGF0aWMgYm9vbCBjYW5Xcml0ZUhlYWRlcihjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgdmFsdWUsIEZldGNoSGVhZGVycwogdm9pZCBGZXRjaEhlYWRlcnM6OmFw
cGVuZChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIFN0cmluZyBub3JtYWxpemVkVmFsdWUgPSBzdHJpcExlYWRpbmdBbmRU
cmFpbGluZ0hUVFBTcGFjZXModmFsdWUpOwotICAgIGlmICghY2FuV3JpdGVIZWFkZXIobmFtZSwg
bm9ybWFsaXplZFZhbHVlLCBtX2d1YXJkKSkgewotICAgICAgICBlYyA9IFR5cGVFcnJvcjsKKyAg
ICBpZiAoIWNhbldyaXRlSGVhZGVyKG5hbWUsIG5vcm1hbGl6ZWRWYWx1ZSwgbV9ndWFyZCwgZWMp
KQogICAgICAgICByZXR1cm47Ci0gICAgfQogICAgIG1faGVhZGVycy5hZGQobmFtZSwgbm9ybWFs
aXplZFZhbHVlKTsKIH0KIAogdm9pZCBGZXRjaEhlYWRlcnM6OnJlbW92ZShjb25zdCBTdHJpbmcm
IG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGlmICghY2FuV3JpdGVIZWFkZXIobmFt
ZSwgU3RyaW5nKCksIG1fZ3VhcmQpKSB7Ci0gICAgICAgIGVjID0gVHlwZUVycm9yOworICAgIGlm
ICghY2FuV3JpdGVIZWFkZXIobmFtZSwgU3RyaW5nKCksIG1fZ3VhcmQsIGVjKSkKICAgICAgICAg
cmV0dXJuOwotICAgIH0KICAgICBtX2hlYWRlcnMucmVtb3ZlKG5hbWUpOwogfQogCkBAIC0xNTYs
MTMgKzE1NiwyOSBAQCBib29sIEZldGNoSGVhZGVyczo6aGFzKGNvbnN0IFN0cmluZyYgbmFtZSwg
RXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB2b2lkIEZldGNoSGVhZGVyczo6c2V0KGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgU3RyaW5nIG5vcm1hbGl6ZWRWYWx1ZSA9IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRUUFNw
YWNlcyh2YWx1ZSk7Ci0gICAgaWYgKCFjYW5Xcml0ZUhlYWRlcihuYW1lLCBub3JtYWxpemVkVmFs
dWUsIG1fZ3VhcmQpKSB7Ci0gICAgICAgIGVjID0gVHlwZUVycm9yOworICAgIGlmICghY2FuV3Jp
dGVIZWFkZXIobmFtZSwgbm9ybWFsaXplZFZhbHVlLCBtX2d1YXJkLCBlYykpCiAgICAgICAgIHJl
dHVybjsKLSAgICB9CiAgICAgbV9oZWFkZXJzLnNldChuYW1lLCBub3JtYWxpemVkVmFsdWUpOwog
fQogCit2b2lkIEZldGNoSGVhZGVyczo6ZmlsbChjb25zdCBGZXRjaEhlYWRlcnMqIGhlYWRlcnMp
Cit7CisgICAgaWYgKCFoZWFkZXJzKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQobV9n
dWFyZCAhPSBHdWFyZDo6SW1tdXRhYmxlKTsKKworICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAg
Zm9yIChhdXRvJiBoZWFkZXIgOiBoZWFkZXJzLT5tX2hlYWRlcnMpIHsKKyAgICAgICAgaWYgKGNh
bldyaXRlSGVhZGVyKGhlYWRlci5rZXksIGhlYWRlci52YWx1ZSwgbV9ndWFyZCwgZWMpKSB7Cisg
ICAgICAgICAgICBpZiAoaGVhZGVyLmtleUFzSFRUUEhlYWRlck5hbWUpCisgICAgICAgICAgICAg
ICAgbV9oZWFkZXJzLmFkZChoZWFkZXIua2V5QXNIVFRQSGVhZGVyTmFtZS52YWx1ZSgpLCBoZWFk
ZXIudmFsdWUpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1faGVhZGVycy5h
ZGQoaGVhZGVyLmtleSwgaGVhZGVyLnZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEZFVENIX0FQSSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5oCmluZGV4IGQ1YjBhNTZmYjA2
NmFmY2E4YjNmOTBmODJlZWJhODNkMDIxZTVlZWEuLjUzNjg2Mjg4MzI2ZGQ3NjEzYTllYmYzOGJj
YjA4ZDRiNGJlOWRjY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hIZWFkZXJzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhl
YWRlcnMuaApAQCAtNDgsNiArNDgsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHN0YXRpYyBS
ZWY8RmV0Y2hIZWFkZXJzPiBjcmVhdGUoR3VhcmQgZ3VhcmQgPSBHdWFyZDo6Tm9uZSkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBGZXRjaEhlYWRlcnMoZ3VhcmQpKTsgfQorICAgIHN0YXRpYyBSZWY8
RmV0Y2hIZWFkZXJzPiBjcmVhdGUoY29uc3QgRmV0Y2hIZWFkZXJzJiBoZWFkZXJzKSB7IHJldHVy
biBhZG9wdFJlZigqbmV3IEZldGNoSGVhZGVycyhoZWFkZXJzLm1fZ3VhcmQsIGhlYWRlcnMubV9o
ZWFkZXJzKSk7IH0KIAogICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgcmVtb3ZlKGNvbnN0IFN0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTU2LDkgKzU3LDE0IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlv
bkNvZGUmKTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZVdpdGgoY29uc3QgRmV0Y2hIZWFkZXJzKiwg
RXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgZmlsbChjb25zdCBGZXRjaEhlYWRlcnMqKTsKKwor
ICAgIFN0cmluZyBmYXN0R2V0KEhUVFBIZWFkZXJOYW1lIG5hbWUpIGNvbnN0IHsgcmV0dXJuIG1f
aGVhZGVycy5nZXQobmFtZSk7IH0KKyAgICB2b2lkIGZhc3RTZXQoSFRUUEhlYWRlck5hbWUgbmFt
ZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgeyBtX2hlYWRlcnMuc2V0KG5hbWUsIHZhbHVlKTsgfQog
CiBwcml2YXRlOgogICAgIEZldGNoSGVhZGVycyhHdWFyZCBndWFyZCkgOiBtX2d1YXJkKGd1YXJk
KSB7IH0KKyAgICBGZXRjaEhlYWRlcnMoR3VhcmQgZ3VhcmQsIGNvbnN0IEhUVFBIZWFkZXJNYXAm
IGhlYWRlcnMpIDogbV9ndWFyZChndWFyZCksIG1faGVhZGVycyhoZWFkZXJzKSB7IH0KIAogICAg
IEd1YXJkIG1fZ3VhcmQ7CiAgICAgSFRUUEhlYWRlck1hcCBtX2hlYWRlcnM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5qcyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmpzCmluZGV4IDE1MGIyNTBiNWNlMmM0
NGRiMjMwMzgzN2RjMDQ5ODZiMzlhY2E2NTkuLjAzMDlmZWQ3ZmM4MDJhYzljN2ZmNzBkMWE0YWVl
Yzk2M2Q4ZGVjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hIZWFkZXJzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFk
ZXJzLmpzCkBAIC00Nyw2ICs0Nyw3IEBAIGZ1bmN0aW9uIGluaXRpYWxpemVGZXRjaEhlYWRlcnMo
aGVhZGVyc0luaXQpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEBUeXBlRXJyb3IoImhlYWRl
cnNJbml0IHNlcXVlbmNlIGl0ZW1zIHNob3VsZCBjb250YWluIHR3byB2YWx1ZXMiKTsKICAgICAg
ICAgICAgIHRoaXMuQGFwcGVuZEZyb21KUyhoZWFkZXJbMF0sIGhlYWRlclsxXSk7CiAgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgfQogCiAgICAgQE9iamVjdC5AZ2V0T3duUHJv
cGVydHlOYW1lcyhoZWFkZXJzSW5pdCkuZm9yRWFjaCgobmFtZSkgPT4gewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hPcHRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU1ZThkNTg1MGZj
MGQxMmM5OTZkY2VhYmMxMTlmZjZlYWJmNWRlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hPcHRpb25zLmgKQEAgLTAsMCArMSwxMzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZldGNoT3B0
aW9uc19oCisjZGVmaW5lIEZldGNoT3B0aW9uc19oCisKKyNpZiBFTkFCTEUoRkVUQ0hfQVBJKQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZldGNoT3B0aW9ucyB7CitwdWJsaWM6Cisg
ICAgZW51bSBjbGFzcyBUeXBlIHsKKyAgICAgICAgRGVmYXVsdCwKKyAgICAgICAgQXVkaW8sCisg
ICAgICAgIEZvbnQsCisgICAgICAgIEltYWdlLAorICAgICAgICBTY3JpcHQsCisgICAgICAgIFN0
eWxlLAorICAgICAgICBUcmFjaywKKyAgICAgICAgVmlkZW8KKyAgICB9OworICAgIGVudW0gY2xh
c3MgRGVzdGluYXRpb24geworICAgICAgICBEZWZhdWx0LAorICAgICAgICBEb2N1bWVudCwKKyAg
ICAgICAgU2hhcmVkV29ya2VyLAorICAgICAgICBTdWJyZXNvdXJjZSwKKyAgICAgICAgVW5rbm93
biwKKyAgICAgICAgV29ya2VyCisgICAgfTsKKyAgICBlbnVtIGNsYXNzIE1vZGUgeworICAgICAg
ICBOb0NvcnMsCisgICAgICAgIE5hdmlnYXRlLAorICAgICAgICBTYW1lT3JpZ2luLAorICAgICAg
ICBDb3JzCisgICAgfTsKKyAgICBlbnVtIGNsYXNzIENyZWRlbnRpYWxzIHsKKyAgICAgICAgT21p
dCwKKyAgICAgICAgU2FtZU9yaWdpbiwKKyAgICAgICAgSW5jbHVkZQorICAgIH07CisgICAgZW51
bSBjbGFzcyBDYWNoZSB7CisgICAgICAgIERlZmF1bHQsCisgICAgICAgIE5vU3RvcmUsCisgICAg
ICAgIFJlbG9hZCwKKyAgICAgICAgTm9DYWNoZSwKKyAgICAgICAgRm9yY2VDYWNoZSwKKyAgICB9
OworICAgIGVudW0gY2xhc3MgUmVkaXJlY3QgeworICAgICAgICBGb2xsb3csCisgICAgICAgIEVy
cm9yLAorICAgICAgICBNYW51YWwKKyAgICB9OworICAgIGVudW0gY2xhc3MgUmVmZXJyZXJQb2xp
Y3kgeworICAgICAgICBFbXB0eSwKKyAgICAgICAgTm9SZWZlcnJlciwKKyAgICAgICAgTm9SZWZl
cnJlcldoZW5Eb3duZ3JhZGUsCisgICAgICAgIE9yaWdpbk9ubHksCisgICAgICAgIE9yaWdpbldo
ZW5Dcm9zc09yaWdpbiwKKyAgICAgICAgVW5zYWZlVVJMCisgICAgfTsKKworICAgIEZldGNoT3B0
aW9ucygpIHsgfQorICAgIEZldGNoT3B0aW9ucyhUeXBlLCBEZXN0aW5hdGlvbiwgTW9kZSwgQ3Jl
ZGVudGlhbHMsIENhY2hlLCBSZWRpcmVjdCwgUmVmZXJyZXJQb2xpY3kpOworCisgICAgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgRGVzdGluYXRpb24gZGVzdGluYXRp
b24oKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9CisgICAgTW9kZSBtb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9tb2RlOyB9CisgICAgQ3JlZGVudGlhbHMgY3JlZGVudGlhbHMoKSBjb25z
dCB7IHJldHVybiBtX2NyZWRlbnRpYWxzOyB9CisgICAgQ2FjaGUgY2FjaGUoKSBjb25zdCB7IHJl
dHVybiBtX2NhY2hlOyB9CisgICAgUmVkaXJlY3QgcmVkaXJlY3QoKSBjb25zdCB7IHJldHVybiBt
X3JlZGlyZWN0OyB9CisgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3koKSBjb25zdCB7
IHJldHVybiBtX3JlZmVycmVyUG9saWN5OyB9CisKKyAgICB2b2lkIHNldFR5cGUoVHlwZSB0eXBl
KSB7IG1fdHlwZSA9IHR5cGU7IH0KKyAgICB2b2lkIHNldERlc3RpbmF0aW9uKERlc3RpbmF0aW9u
IGRlc3RpbmF0aW9uKSB7IG1fZGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbjsgfQorICAgIHZvaWQg
c2V0TW9kZShNb2RlIG1vZGUpIHsgbV9tb2RlID0gbW9kZTsgfQorICAgIHZvaWQgc2V0Q3JlZGVu
dGlhbHMoQ3JlZGVudGlhbHMgY3JlZGVudGlhbHMpIHsgbV9jcmVkZW50aWFscyA9IGNyZWRlbnRp
YWxzOyB9CisgICAgdm9pZCBzZXRDYWNoZShDYWNoZSBjYWNoZSkgeyBtX2NhY2hlID0gY2FjaGU7
IH0KKyAgICB2b2lkIHNldFJlZGlyZWN0KFJlZGlyZWN0IHJlZGlyZWN0KSB7IG1fcmVkaXJlY3Qg
PSByZWRpcmVjdDsgfQorICAgIHZvaWQgc2V0UmVmZXJyZXJQb2xpY3koUmVmZXJyZXJQb2xpY3kg
cmVmZXJyZXJQb2xpY3kpIHsgbV9yZWZlcnJlclBvbGljeSA9IHJlZmVycmVyUG9saWN5OyB9CisK
K3ByaXZhdGU6CisgICAgVHlwZSBtX3R5cGUgPSBUeXBlOjpEZWZhdWx0OworICAgIERlc3RpbmF0
aW9uIG1fZGVzdGluYXRpb24gPSBEZXN0aW5hdGlvbjo6RGVmYXVsdDsKKyAgICBNb2RlIG1fbW9k
ZSA9IE1vZGU6Ok5vQ29yczsKKyAgICBDcmVkZW50aWFscyBtX2NyZWRlbnRpYWxzID0gQ3JlZGVu
dGlhbHM6Ok9taXQ7CisgICAgQ2FjaGUgbV9jYWNoZSA9IENhY2hlOjpEZWZhdWx0OworICAgIFJl
ZGlyZWN0IG1fcmVkaXJlY3QgPSBSZWRpcmVjdDo6IEZvbGxvdzsKKyAgICBSZWZlcnJlclBvbGlj
eSBtX3JlZmVycmVyUG9saWN5ID0gUmVmZXJyZXJQb2xpY3k6OkVtcHR5OworfTsKKworaW5saW5l
IEZldGNoT3B0aW9uczo6RmV0Y2hPcHRpb25zKFR5cGUgdHlwZSwgRGVzdGluYXRpb24gZGVzdGlu
YXRpb24sIE1vZGUgbW9kZSwgQ3JlZGVudGlhbHMgY3JlZGVudGlhbHMsIENhY2hlIGNhY2hlLCBS
ZWRpcmVjdCByZWRpcmVjdCwgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3kpCisgICAgOiBt
X3R5cGUodHlwZSkKKyAgICAsIG1fZGVzdGluYXRpb24oZGVzdGluYXRpb24pCisgICAgLCBtX21v
ZGUobW9kZSkKKyAgICAsIG1fY3JlZGVudGlhbHMoY3JlZGVudGlhbHMpCisgICAgLCBtX2NhY2hl
KGNhY2hlKQorICAgICwgbV9yZWRpcmVjdChyZWRpcmVjdCkKKyAgICAsIG1fcmVmZXJyZXJQb2xp
Y3kocmVmZXJyZXJQb2xpY3kpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShGRVRDSF9BUEkpCisKKyNlbmRpZiAvLyBGZXRjaE9wdGlvbnNfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdlMGNhOGRiYmMxM2Q3NDgzYzg2NTQ1YmMwMzhkMzhiNWExNDViMzgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKQEAgLTAs
MCArMSw0NTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fub24gSW5jLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIENh
bm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBDQU5PTiBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQ0FOT04gSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0LmgiCisKKyNpZiBFTkFC
TEUoRkVUQ0hfQVBJKQorCisjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKKyNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgorI2luY2x1ZGUgIlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0YXRpYyBib29sIHNldFJlZmVycmVyUG9saWN5KEZldGNoT3B0aW9u
cyYgb3B0aW9ucywgY29uc3QgU3RyaW5nJiByZWZlcnJlclBvbGljeSkKK3sKKyAgICBpZiAocmVm
ZXJyZXJQb2xpY3kuaXNFbXB0eSgpKQorICAgICAgICBvcHRpb25zLnNldFJlZmVycmVyUG9saWN5
KEZldGNoT3B0aW9uczo6UmVmZXJyZXJQb2xpY3k6OkVtcHR5KTsKKyAgICBlbHNlIGlmIChyZWZl
cnJlclBvbGljeSA9PSAibm8tcmVmZXJyZXIiKQorICAgICAgICBvcHRpb25zLnNldFJlZmVycmVy
UG9saWN5KEZldGNoT3B0aW9uczo6UmVmZXJyZXJQb2xpY3k6Ok5vUmVmZXJyZXIpOworICAgIGVs
c2UgaWYgKHJlZmVycmVyUG9saWN5ID09ICJuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSIpCisg
ICAgICAgIG9wdGlvbnMuc2V0UmVmZXJyZXJQb2xpY3koRmV0Y2hPcHRpb25zOjpSZWZlcnJlclBv
bGljeTo6Tm9SZWZlcnJlcldoZW5Eb3duZ3JhZGUpOworICAgIGVsc2UgaWYgKHJlZmVycmVyUG9s
aWN5ID09ICJvcmlnaW4tb25seSIpCisgICAgICAgIG9wdGlvbnMuc2V0UmVmZXJyZXJQb2xpY3ko
RmV0Y2hPcHRpb25zOjpSZWZlcnJlclBvbGljeTo6T3JpZ2luT25seSk7CisgICAgZWxzZSBpZiAo
cmVmZXJyZXJQb2xpY3kgPT0gIm9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiIpCisgICAgICAgIG9w
dGlvbnMuc2V0UmVmZXJyZXJQb2xpY3koRmV0Y2hPcHRpb25zOjpSZWZlcnJlclBvbGljeTo6T3Jp
Z2luV2hlbkNyb3NzT3JpZ2luKTsKKyAgICBlbHNlIGlmIChyZWZlcnJlclBvbGljeSA9PSAidW5z
YWZlLXVybCIpCisgICAgICAgIG9wdGlvbnMuc2V0UmVmZXJyZXJQb2xpY3koRmV0Y2hPcHRpb25z
OjpSZWZlcnJlclBvbGljeTo6VW5zYWZlVVJMKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGJvb2wgc2V0TW9kZShGZXRjaE9w
dGlvbnMmIG9wdGlvbnMsIGNvbnN0IFN0cmluZyYgbW9kZSkKK3sKKyAgICBpZiAobW9kZSA9PSAi
bmF2aWdhdGUiKQorICAgICAgICBvcHRpb25zLnNldE1vZGUoRmV0Y2hPcHRpb25zOjpNb2RlOjpO
YXZpZ2F0ZSk7CisgICAgZWxzZSBpZiAobW9kZSA9PSAic2FtZS1vcmlnaW4iKQorICAgICAgICBv
cHRpb25zLnNldE1vZGUoRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3JpZ2luKTsKKyAgICBlbHNl
IGlmIChtb2RlID09ICJuby1jb3JzIikKKyAgICAgICAgb3B0aW9ucy5zZXRNb2RlKEZldGNoT3B0
aW9uczo6TW9kZTo6Tm9Db3JzKTsKKyAgICBlbHNlIGlmIChtb2RlID09ICJjb3JzIikKKyAgICAg
ICAgb3B0aW9ucy5zZXRNb2RlKEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycyk7CisgICAgZWxzZQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBib29s
IHNldENyZWRlbnRpYWxzKEZldGNoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgU3RyaW5nJiBjcmVk
ZW50aWFscykKK3sKKyAgICBpZiAoY3JlZGVudGlhbHMgPT0gIm9taXQiKQorICAgICAgICBvcHRp
b25zLnNldENyZWRlbnRpYWxzKEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQpOworICAg
IGVsc2UgaWYgKGNyZWRlbnRpYWxzID09ICJzYW1lLW9yaWdpbiIpCisgICAgICAgIG9wdGlvbnMu
c2V0Q3JlZGVudGlhbHMoRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbik7Cisg
ICAgZWxzZSBpZiAoY3JlZGVudGlhbHMgPT0gImluY2x1ZGUiKQorICAgICAgICBvcHRpb25zLnNl
dENyZWRlbnRpYWxzKEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGUpOworICAgIGVs
c2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMg
Ym9vbCBzZXRDYWNoZShGZXRjaE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IFN0cmluZyYgY2FjaGUp
Cit7CisgICAgaWYgKGNhY2hlID09ICJkZWZhdWx0IikKKyAgICAgICAgb3B0aW9ucy5zZXRDYWNo
ZShGZXRjaE9wdGlvbnM6OkNhY2hlOjpEZWZhdWx0KTsKKyAgICBlbHNlIGlmIChjYWNoZSA9PSAi
bm8tc3RvcmUiKQorICAgICAgICBvcHRpb25zLnNldENhY2hlKEZldGNoT3B0aW9uczo6Q2FjaGU6
Ok5vU3RvcmUpOworICAgIGVsc2UgaWYgKGNhY2hlID09ICJyZWxvYWQiKQorICAgICAgICBvcHRp
b25zLnNldENhY2hlKEZldGNoT3B0aW9uczo6Q2FjaGU6OlJlbG9hZCk7CisgICAgZWxzZSBpZiAo
Y2FjaGUgPT0gIm5vLWNhY2hlIikKKyAgICAgICAgb3B0aW9ucy5zZXRDYWNoZShGZXRjaE9wdGlv
bnM6OkNhY2hlOjpOb0NhY2hlKTsKKyAgICBlbHNlIGlmIChjYWNoZSA9PSAiZm9yY2UtY2FjaGUi
KQorICAgICAgICBvcHRpb25zLnNldENhY2hlKEZldGNoT3B0aW9uczo6Q2FjaGU6OkZvcmNlQ2Fj
aGUpOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOwor
fQorCitzdGF0aWMgYm9vbCBzZXRSZWRpcmVjdChGZXRjaE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0
IFN0cmluZyYgcmVkaXJlY3QpCit7CisgICAgaWYgKHJlZGlyZWN0ID09ICJmb2xsb3ciKQorICAg
ICAgICBvcHRpb25zLnNldFJlZGlyZWN0KEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkZvbGxvdyk7
CisgICAgZWxzZSBpZiAocmVkaXJlY3QgPT0gImVycm9yIikKKyAgICAgICAgb3B0aW9ucy5zZXRS
ZWRpcmVjdChGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpFcnJvcik7CisgICAgZWxzZSBpZiAocmVk
aXJlY3QgPT0gIm1hbnVhbCIpCisgICAgICAgIG9wdGlvbnMuc2V0UmVkaXJlY3QoRmV0Y2hPcHRp
b25zOjpSZWRpcmVjdDo6TWFudWFsKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGJvb2wgc2V0TWV0aG9kKFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBpbml0TWV0aG9kKQoreworICAgIGlmICghaXNW
YWxpZEhUVFBUb2tlbihpbml0TWV0aG9kKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
U3RyaW5nIG1ldGhvZCA9IGluaXRNZXRob2QuY29udmVydFRvQVNDSUlVcHBlcmNhc2UoKTsKKyAg
ICBpZiAobWV0aG9kID09ICJDT05ORUNUIiB8fCBtZXRob2QgPT0gIlRSQUNFIiB8fCBtZXRob2Qg
PT0gIlRSQUNLIikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmVxdWVzdC5zZXRIVFRQ
TWV0aG9kKChtZXRob2QgPT0gIkRFTEVURSIgfHwgbWV0aG9kID09ICJHRVQiIHx8IG1ldGhvZCA9
PSAiSEVBRCIgfHwgbWV0aG9kID09ICJPUFRJT05TIiB8fCBtZXRob2QgPT0gIlBPU1QiIHx8IG1l
dGhvZCA9PSAiUFVUIikgPyBtZXRob2QgOiBpbml0TWV0aG9kKTsKKworICAgIHJldHVybiB0cnVl
OworfQorCitzdGF0aWMgYm9vbCBzZXRSZWZlcnJlcihGZXRjaFJlcXVlc3Q6OkludGVybmFsUmVx
dWVzdCYgcmVxdWVzdCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgRGlj
dGlvbmFyeSYgaW5pdCkKK3sKKyAgICBTdHJpbmcgcmVmZXJyZXI7CisgICAgaWYgKCFpbml0Lmdl
dCgicmVmZXJyZXIiLCByZWZlcnJlcikpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChy
ZWZlcnJlci5pc0VtcHR5KCkpIHsKKyAgICAgICAgcmVxdWVzdC5yZWZlcnJlciA9IEFTQ0lJTGl0
ZXJhbCgibm8tcmVmZXJyZXIiKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIC8v
IEZJWE1FOiBUaWdodGVuIHRoZSBVUkwgcGFyc2luZyBhbGdvcml0aG0gYWNjb3JkaW5nIGh0dHBz
Oi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC11cmwtcGFyc2VyLgorICAgIFVSTCByZWZl
cnJlclVSTCA9IGNvbnRleHQuY29tcGxldGVVUkwocmVmZXJyZXIpOworICAgIGlmICghcmVmZXJy
ZXJVUkwuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAocmVmZXJy
ZXJVUkwucHJvdG9jb2xJcygiYWJvdXQiKSAmJiByZWZlcnJlclVSTC5wYXRoKCkgPT0gImNsaWVu
dCIpIHsKKyAgICAgICAgcmVxdWVzdC5yZWZlcnJlciA9IEFTQ0lJTGl0ZXJhbCgiY2xpZW50Iik7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmICghKGNvbnRleHQuc2VjdXJp
dHlPcmlnaW4oKSAmJiBjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCktPmNhblJlcXVlc3QocmVmZXJy
ZXJVUkwpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmVxdWVzdC5yZWZlcnJlciA9
IHJlZmVycmVyVVJMLnN0cmluZygpOworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9v
bCBidWlsZE9wdGlvbnMoRmV0Y2hSZXF1ZXN0OjpJbnRlcm5hbFJlcXVlc3QmIHJlcXVlc3QsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IERpY3Rpb25hcnkmIGluaXQpCit7
CisgICAgSlNDOjpKU1ZhbHVlIHdpbmRvdzsKKyAgICBpZiAoaW5pdC5nZXQoIndpbmRvdyIsIHdp
bmRvdykpIHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaXNOdWxsKCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFzZXRSZWZlcnJlcihyZXF1ZXN0LCBjb250ZXh0
LCBpbml0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU3RyaW5nIHZhbHVlOworICAg
IGlmIChpbml0LmdldCgicmVmZXJyZXJQb2xpY3kiLCB2YWx1ZSkgJiYgIXNldFJlZmVycmVyUG9s
aWN5KHJlcXVlc3Qub3B0aW9ucywgdmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoaW5pdC5nZXQoIm1vZGUiLCB2YWx1ZSkgJiYgIXNldE1vZGUocmVxdWVzdC5vcHRpb25z
LCB2YWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAocmVxdWVzdC5vcHRpb25z
Lm1vZGUoKSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoaW5pdC5nZXQoImNyZWRlbnRpYWxzIiwgdmFsdWUpICYmICFzZXRD
cmVkZW50aWFscyhyZXF1ZXN0Lm9wdGlvbnMsIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgaWYgKGluaXQuZ2V0KCJjYWNoZSIsIHZhbHVlKSAmJiAhc2V0Q2FjaGUocmVxdWVz
dC5vcHRpb25zLCB2YWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChpbml0
LmdldCgicmVkaXJlY3QiLCB2YWx1ZSkgJiYgIXNldFJlZGlyZWN0KHJlcXVlc3Qub3B0aW9ucywg
dmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpbml0LmdldCgiaW50ZWdyaXR5
IiwgcmVxdWVzdC5pbnRlZ3JpdHkpOworCisgICAgaWYgKGluaXQuZ2V0KCJtZXRob2QiLCB2YWx1
ZSkgJiYgIXNldE1ldGhvZChyZXF1ZXN0LnJlcXVlc3QsIHZhbHVlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBSZWZQdHI8RmV0Y2hIZWFk
ZXJzPiBidWlsZEhlYWRlcnMoY29uc3QgRGljdGlvbmFyeSYgaW5pdCwgY29uc3QgRmV0Y2hSZXF1
ZXN0OjpJbnRlcm5hbFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEZldGNoSGVhZGVycyogaW5wdXRI
ZWFkZXJzID0gbnVsbHB0cikKK3sKKyAgICBGZXRjaEhlYWRlcnM6Okd1YXJkIGd1YXJkID0gRmV0
Y2hIZWFkZXJzOjpHdWFyZDo6UmVxdWVzdDsKKyAgICBpZiAocmVxdWVzdC5vcHRpb25zLm1vZGUo
KSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycykgeworICAgICAgICBjb25zdCBTdHJpbmcm
IG1ldGhvZCA9IHJlcXVlc3QucmVxdWVzdC5odHRwTWV0aG9kKCk7CisgICAgICAgIGlmIChtZXRo
b2QgIT0gIkdFVCIgJiYgbWV0aG9kICE9ICJQT1NUIiAmJiBtZXRob2QgIT0gIkhFQUQiKQorICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGlmICghcmVxdWVzdC5pbnRlZ3JpdHku
aXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGd1YXJkID0g
RmV0Y2hIZWFkZXJzOjpHdWFyZDo6UmVxdWVzdE5vQ29yczsKKyAgICB9CisKKyAgICBSZWZQdHI8
RmV0Y2hIZWFkZXJzPiBpbml0aWFsSGVhZGVyczsKKyAgICBSZWZQdHI8RmV0Y2hIZWFkZXJzPiBo
ZWFkZXJzID0gRmV0Y2hIZWFkZXJzOjpjcmVhdGUoZ3VhcmQpOworICAgIGhlYWRlcnMtPmZpbGwo
aW5pdC5nZXQoImhlYWRlcnMiLCBpbml0aWFsSGVhZGVycykgPyBpbml0aWFsSGVhZGVycy5nZXQo
KSA6IGlucHV0SGVhZGVycyk7CisKKyAgICByZXR1cm4gaGVhZGVyczsKK30KKworc3RhdGljIEZl
dGNoQm9keSBidWlsZEJvZHkoY29uc3QgRGljdGlvbmFyeSYgaW5pdCwgRmV0Y2hIZWFkZXJzJiBo
ZWFkZXJzLCBGZXRjaEJvZHkqIGlucHV0Qm9keSA9IG51bGxwdHIpCit7CisgICAgSlNDOjpKU1Zh
bHVlIHZhbHVlOworICAgIGJvb2wgaGFzSW5pdEJvZHkgPSBpbml0LmdldCgiYm9keSIsIHZhbHVl
KTsKKyAgICBGZXRjaEJvZHkgYm9keSA9IGhhc0luaXRCb2R5ID8gRmV0Y2hCb2R5Ojpmcm9tSlNW
YWx1ZSgqaW5pdC5leGVjU3RhdGUoKSwgdmFsdWUpIDogRmV0Y2hCb2R5Ojpmcm9tUmVxdWVzdEJv
ZHkoaW5wdXRCb2R5KTsKKworICAgIFN0cmluZyB0eXBlID0gaGVhZGVycy5mYXN0R2V0KEhUVFBI
ZWFkZXJOYW1lOjpDb250ZW50VHlwZSk7CisgICAgaWYgKGhhc0luaXRCb2R5ICYmIHR5cGUuaXNF
bXB0eSgpICYmICFib2R5Lm1pbWVUeXBlKCkuaXNFbXB0eSgpKSB7CisgICAgICAgIHR5cGUgPSBi
b2R5Lm1pbWVUeXBlKCk7CisgICAgICAgIGhlYWRlcnMuZmFzdFNldChIVFRQSGVhZGVyTmFtZTo6
Q29udGVudFR5cGUsIHR5cGUpOworICAgIH0KKyAgICBib2R5LnNldE1pbWVUeXBlKHR5cGUpOwor
ICAgIHJldHVybiBib2R5OworfQorCitzdGF0aWMgYm9vbCB2YWxpZGF0ZUJvZHlBbmRNZXRob2Qo
Y29uc3QgRmV0Y2hCb2R5JiBib2R5LCBjb25zdCBGZXRjaFJlcXVlc3Q6OkludGVybmFsUmVxdWVz
dCYgaW50ZXJuYWxSZXF1ZXN0KQoreworICAgIGlmIChib2R5LmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGludGVybmFsUmVxdWVzdC5yZXF1ZXN0Lmh0dHBNZXRo
b2QoKSAhPSAiR0VUIiAmJiBpbnRlcm5hbFJlcXVlc3QucmVxdWVzdC5odHRwTWV0aG9kKCkgIT0g
IkhFQUQiOworfQorCitSZWZQdHI8RmV0Y2hSZXF1ZXN0PiBGZXRjaFJlcXVlc3Q6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
RGljdGlvbmFyeSYgaW5pdCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgLy8gRklYTUU6IFRp
Z2h0ZW4gdGhlIFVSTCBwYXJzaW5nIGFsZ29yaXRobSBhY2NvcmRpbmcgaHR0cHM6Ly91cmwuc3Bl
Yy53aGF0d2cub3JnLyNjb25jZXB0LXVybC1wYXJzZXIuCisgICAgVVJMIHJlcXVlc3RVUkwgPSBj
b250ZXh0LmNvbXBsZXRlVVJMKHVybCk7CisgICAgaWYgKCFyZXF1ZXN0VVJMLmlzVmFsaWQoKSB8
fCAhcmVxdWVzdFVSTC51c2VyKCkuaXNFbXB0eSgpIHx8ICFyZXF1ZXN0VVJMLnBhc3MoKS5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgZWMgPSBUeXBlRXJyb3I7CisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIH0KKworICAgIEZldGNoUmVxdWVzdDo6SW50ZXJuYWxSZXF1ZXN0IGludGVybmFsUmVx
dWVzdDsKKyAgICBpbnRlcm5hbFJlcXVlc3Qub3B0aW9ucy5zZXRNb2RlKEZldGNoT3B0aW9uczo6
TW9kZTo6Q29ycyk7CisgICAgaW50ZXJuYWxSZXF1ZXN0Lm9wdGlvbnMuc2V0Q3JlZGVudGlhbHMo
RmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdCk7CisgICAgaW50ZXJuYWxSZXF1ZXN0LnJl
ZmVycmVyID0gQVNDSUlMaXRlcmFsKCJjbGllbnQiKTsKKyAgICBpbnRlcm5hbFJlcXVlc3QucmVx
dWVzdC5zZXRVUkwocmVxdWVzdFVSTCk7CisKKyAgICBpZiAoIWJ1aWxkT3B0aW9ucyhpbnRlcm5h
bFJlcXVlc3QsIGNvbnRleHQsIGluaXQpKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBSZWZQdHI8RmV0Y2hIZWFkZXJzPiBo
ZWFkZXJzID0gYnVpbGRIZWFkZXJzKGluaXQsIGludGVybmFsUmVxdWVzdCk7CisgICAgaWYgKCFo
ZWFkZXJzKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICB9CisKKyAgICBGZXRjaEJvZHkgYm9keSA9IGJ1aWxkQm9keShpbml0LCAqaGVhZGVy
cyk7CisgICAgaWYgKCF2YWxpZGF0ZUJvZHlBbmRNZXRob2QoYm9keSwgaW50ZXJuYWxSZXF1ZXN0
KSkgeworICAgICAgICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQorCisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmV0Y2hSZXF1ZXN0KFdURk1vdmUoYm9k
eSksIGhlYWRlcnMucmVsZWFzZU5vbk51bGwoKSwgV1RGTW92ZShpbnRlcm5hbFJlcXVlc3QpKSk7
Cit9CisKK1JlZlB0cjxGZXRjaFJlcXVlc3Q+IEZldGNoUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZldGNoUmVxdWVzdCogaW5wdXQsIGNvbnN0IERpY3Rp
b25hcnkmIGluaXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEFTU0VSVChpbnB1dCk7CisK
KyAgICBpZiAoaW5wdXQtPmlzRGlzdHVyYmVkKCkpIHsKKyAgICAgICAgZWMgPSBUeXBlRXJyb3I7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIEZldGNoUmVxdWVzdDo6SW50
ZXJuYWxSZXF1ZXN0IGludGVybmFsUmVxdWVzdChpbnB1dC0+bV9pbnRlcm5hbFJlcXVlc3QpOwor
CisgICAgaWYgKCFidWlsZE9wdGlvbnMoaW50ZXJuYWxSZXF1ZXN0LCBjb250ZXh0LCBpbml0KSkg
eworICAgICAgICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQorCisgICAgUmVmUHRyPEZldGNoSGVhZGVycz4gaGVhZGVycyA9IGJ1aWxkSGVhZGVycyhpbml0
LCBpbnRlcm5hbFJlcXVlc3QsIGlucHV0LT5tX2hlYWRlcnMucHRyKCkpOworICAgIGlmICghaGVh
ZGVycykgeworICAgICAgICBlYyA9IFR5cGVFcnJvcjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgfQorCisgICAgRmV0Y2hCb2R5IGJvZHkgPSBidWlsZEJvZHkoaW5pdCwgKmhlYWRlcnMs
ICZpbnB1dC0+bV9ib2R5KTsKKyAgICBpZiAoIXZhbGlkYXRlQm9keUFuZE1ldGhvZChib2R5LCBp
bnRlcm5hbFJlcXVlc3QpKSB7CisgICAgICAgIGVjID0gVHlwZUVycm9yOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGZXRjaFJlcXVl
c3QoV1RGTW92ZShib2R5KSwgaGVhZGVycy5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKGludGVy
bmFsUmVxdWVzdCkpKTsKK30KKworU3RyaW5nIEZldGNoUmVxdWVzdDo6dHlwZSgpIGNvbnN0Cit7
CisgICAgc3dpdGNoIChtX2ludGVybmFsUmVxdWVzdC5vcHRpb25zLnR5cGUoKSkgeworICAgIGNh
c2UgRmV0Y2hPcHRpb25zOjpUeXBlOjpEZWZhdWx0OgorICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlR5cGU6OkF1ZGlvIDoKKyAgICAgICAgcmV0dXJuIEFT
Q0lJTGl0ZXJhbCgiYXVkaW8iKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6VHlwZTo6Rm9udCA6
CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImZvbnQiKTsKKyAgICBjYXNlIEZldGNoT3B0
aW9uczo6VHlwZTo6SW1hZ2UgOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJpbWFnZSIp
OworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpUeXBlOjpTY3JpcHQgOgorICAgICAgICByZXR1cm4g
QVNDSUlMaXRlcmFsKCJzY3JpcHQiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6VHlwZTo6U3R5
bGUgOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzdHlsZSIpOworICAgIGNhc2UgRmV0
Y2hPcHRpb25zOjpUeXBlOjpUcmFjayA6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInRy
YWNrIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlR5cGU6OlZpZGVvIDoKKyAgICAgICAgcmV0
dXJuIEFTQ0lJTGl0ZXJhbCgidmlkZW8iKTsKKyAgICB9OworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEZldGNoUmVxdWVzdDo6ZGVz
dGluYXRpb24oKSBjb25zdAoreworICAgIHN3aXRjaCAobV9pbnRlcm5hbFJlcXVlc3Qub3B0aW9u
cy5kZXN0aW5hdGlvbigpKSB7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpE
ZWZhdWx0OgorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6
OkRlc3RpbmF0aW9uOjpEb2N1bWVudDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZG9j
dW1lbnQiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OlNoYXJlZFdvcmtl
cjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic2hhcmVkd29ya2VyIik7CisgICAgY2Fz
ZSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpTdWJyZXNvdXJjZToKKyAgICAgICAgcmV0dXJu
IEFTQ0lJTGl0ZXJhbCgic3VicmVzb3VyY2UiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVz
dGluYXRpb246OlVua25vd246CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVua25vd24i
KTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6RGVzdGluYXRpb246OldvcmtlcjoKKyAgICAgICAg
cmV0dXJuIEFTQ0lJTGl0ZXJhbCgid29ya2VyIik7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEZldGNoUmVxdWVzdDo6
cmVmZXJyZXJQb2xpY3koKSBjb25zdAoreworICAgIHN3aXRjaCAobV9pbnRlcm5hbFJlcXVlc3Qu
b3B0aW9ucy5yZWZlcnJlclBvbGljeSgpKSB7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlJlZmVy
cmVyUG9saWN5OjpFbXB0eToKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIGNhc2UgRmV0
Y2hPcHRpb25zOjpSZWZlcnJlclBvbGljeTo6Tm9SZWZlcnJlcjoKKyAgICAgICAgcmV0dXJuIEFT
Q0lJTGl0ZXJhbCgibm8tcmVmZXJyZXIiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6UmVmZXJy
ZXJQb2xpY3k6Ok5vUmVmZXJyZXJXaGVuRG93bmdyYWRlOgorICAgICAgICByZXR1cm4gQVNDSUlM
aXRlcmFsKCJuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSIpOworICAgIGNhc2UgRmV0Y2hPcHRp
b25zOjpSZWZlcnJlclBvbGljeTo6T3JpZ2luT25seToKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgib3JpZ2luLW9ubHkiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6UmVmZXJyZXJQb2xp
Y3k6Ok9yaWdpbldoZW5Dcm9zc09yaWdpbjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlJlZmVy
cmVyUG9saWN5OjpVbnNhZmVVUkw6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoInVuc2Fm
ZS11cmwiKTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitTdHJpbmcgRmV0Y2hSZXF1ZXN0OjpyZWZlcnJlcigpIGNvbnN0Cit7Cisg
ICAgaWYgKG1faW50ZXJuYWxSZXF1ZXN0LnJlZmVycmVyID09ICJuby1yZWZlcnJlciIpCisgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBpZiAobV9pbnRlcm5hbFJlcXVlc3QucmVmZXJyZXIg
PT0gImNsaWVudCIpCisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImFib3V0OmNsaWVudCIp
OworICAgIHJldHVybiBtX2ludGVybmFsUmVxdWVzdC5yZWZlcnJlcjsKK30KKworU3RyaW5nIEZl
dGNoUmVxdWVzdDo6bW9kZSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX2ludGVybmFsUmVxdWVz
dC5vcHRpb25zLm1vZGUoKSkgeworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0
ZToKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibmF2aWdhdGUiKTsKKyAgICBjYXNlIEZl
dGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbjoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bCgic2FtZS1vcmlnaW4iKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6TW9kZTo6Tm9Db3JzOgor
ICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJuby1jb3JzIik7CisgICAgY2FzZSBGZXRjaE9w
dGlvbnM6Ok1vZGU6OkNvcnM6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImNvcnMiKTsK
KyAgICB9OworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTdHJpbmcoKTsK
K30KKworU3RyaW5nIEZldGNoUmVxdWVzdDo6Y3JlZGVudGlhbHMoKSBjb25zdAoreworICAgIHN3
aXRjaCAobV9pbnRlcm5hbFJlcXVlc3Qub3B0aW9ucy5jcmVkZW50aWFscygpKSB7CisgICAgY2Fz
ZSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0OgorICAgICAgICByZXR1cm4gQVNDSUlM
aXRlcmFsKCJvbWl0Iik7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1l
T3JpZ2luOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzYW1lLW9yaWdpbiIpOworICAg
IGNhc2UgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVkZToKKyAgICAgICAgcmV0dXJu
IEFTQ0lJTGl0ZXJhbCgiaW5jbHVkZSIpOworICAgIH07CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgRmV0Y2hSZXF1ZXN0OjpjYWNo
ZSgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX2ludGVybmFsUmVxdWVzdC5vcHRpb25zLmNhY2hl
KCkpIHsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1bHQ6CisgICAgICAgIHJl
dHVybiBBU0NJSUxpdGVyYWwoImRlZmF1bHQiKTsKKyAgICBjYXNlIEZldGNoT3B0aW9uczo6Q2Fj
aGU6Ok5vU3RvcmU6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm5vLXN0b3JlIik7Cisg
ICAgY2FzZSBGZXRjaE9wdGlvbnM6OkNhY2hlOjpSZWxvYWQ6CisgICAgICAgIHJldHVybiBBU0NJ
SUxpdGVyYWwoInJlbG9hZCIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpDYWNoZTo6Tm9DYWNo
ZToKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibm8tY2FjaGUiKTsKKyAgICBjYXNlIEZl
dGNoT3B0aW9uczo6Q2FjaGU6OkZvcmNlQ2FjaGU6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVy
YWwoImZvcmNlLWNhY2hlIik7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEZldGNoUmVxdWVzdDo6cmVkaXJlY3QoKSBj
b25zdAoreworICAgIHN3aXRjaCAobV9pbnRlcm5hbFJlcXVlc3Qub3B0aW9ucy5yZWRpcmVjdCgp
KSB7CisgICAgY2FzZSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3c6CisgICAgICAgIHJl
dHVybiBBU0NJSUxpdGVyYWwoImZvbGxvdyIpOworICAgIGNhc2UgRmV0Y2hPcHRpb25zOjpSZWRp
cmVjdDo6RXJyb3I6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImVycm9yIik7CisgICAg
Y2FzZSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpNYW51YWw6CisgICAgICAgIHJldHVybiBBU0NJ
SUxpdGVyYWwoIm1hbnVhbCIpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1JlZlB0cjxGZXRjaFJlcXVlc3Q+IEZldGNoUmVxdWVz
dDo6Y2xvbmUoRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKGlzRGlzdHVyYmVkKCkpIHsK
KyAgICAgICAgZWMgPSBUeXBlRXJyb3I7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KworICAgIC8vIEZJWE1FOiBWYWxpZGF0ZSBib2R5IHRlZWluZy4KKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBGZXRjaFJlcXVlc3QoRmV0Y2hCb2R5KG1fYm9keSksIEZldGNoSGVhZGVyczo6Y3Jl
YXRlKG1faGVhZGVycy5nZXQoKSksIEZldGNoUmVxdWVzdDo6SW50ZXJuYWxSZXF1ZXN0KG1faW50
ZXJuYWxSZXF1ZXN0KSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoRkVUQ0hfQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hS
ZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZhMDgzMTNjZTM2MGNlZTRhMDFmY2NlODAzYWQ5NjFjMTI3
NjFjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hSZXF1ZXN0LmgKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
Q2Fub24gSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIHJlcXVp
cmVkIHRvIGJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIENhbm9uIEluYy4gbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBD
QU5PTiBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQ0FOT04gSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZldGNoUmVxdWVzdF9oCisjZGVmaW5lIEZldGNoUmVx
dWVzdF9oCisKKyNpZiBFTkFCTEUoRkVUQ0hfQVBJKQorCisjaW5jbHVkZSAiRmV0Y2hCb2R5Lmgi
CisjaW5jbHVkZSAiRmV0Y2hIZWFkZXJzLmgiCisjaW5jbHVkZSAiRmV0Y2hPcHRpb25zLmgiCisj
aW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRGljdGlvbmFyeTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK3R5cGVkZWYg
aW50IEV4Y2VwdGlvbkNvZGU7CisKK2NsYXNzIEZldGNoUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEZldGNoUmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8RmV0Y2hSZXF1
ZXN0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEZldGNoUmVxdWVzdCosIGNvbnN0
IERpY3Rpb25hcnkmLCBFeGNlcHRpb25Db2RlJik7CisgICAgc3RhdGljIFJlZlB0cjxGZXRjaFJl
cXVlc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiwgY29u
c3QgRGljdGlvbmFyeSYsIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIC8vIFJlcXVlc3QgQVBJCisg
ICAgY29uc3QgU3RyaW5nJiBtZXRob2QoKSBjb25zdCB7IHJldHVybiBtX2ludGVybmFsUmVxdWVz
dC5yZXF1ZXN0Lmh0dHBNZXRob2QoKTsgfQorICAgIGNvbnN0IFN0cmluZyYgdXJsKCkgY29uc3Qg
eyByZXR1cm4gbV9pbnRlcm5hbFJlcXVlc3QucmVxdWVzdC51cmwoKS5zdHJpbmcoKTsgfQorICAg
IEZldGNoSGVhZGVycyYgaGVhZGVycygpIHsgcmV0dXJuIG1faGVhZGVycy5nZXQoKTsgfQorCisg
ICAgU3RyaW5nIHR5cGUoKSBjb25zdDsKKyAgICBTdHJpbmcgZGVzdGluYXRpb24oKSBjb25zdDsK
KyAgICBTdHJpbmcgcmVmZXJyZXIoKSBjb25zdDsKKyAgICBTdHJpbmcgcmVmZXJyZXJQb2xpY3ko
KSBjb25zdDsKKyAgICBTdHJpbmcgbW9kZSgpIGNvbnN0OworICAgIFN0cmluZyBjcmVkZW50aWFs
cygpIGNvbnN0OworICAgIFN0cmluZyBjYWNoZSgpIGNvbnN0OworICAgIFN0cmluZyByZWRpcmVj
dCgpIGNvbnN0OworICAgIGNvbnN0IFN0cmluZyYgaW50ZWdyaXR5KCkgY29uc3QgeyByZXR1cm4g
bV9pbnRlcm5hbFJlcXVlc3QuaW50ZWdyaXR5OyB9CisKKyAgICBSZWZQdHI8RmV0Y2hSZXF1ZXN0
PiBjbG9uZShFeGNlcHRpb25Db2RlJik7CisKKyAgICAvLyBCb2R5IEFQSQorICAgIGJvb2wgaXNE
aXN0dXJiZWQoKSBjb25zdCB7IHJldHVybiBtX2JvZHkuaXNEaXN0dXJiZWQoKTsgfQorICAgIHZv
aWQgYXJyYXlCdWZmZXIoRmV0Y2hCb2R5OjpBcnJheUJ1ZmZlclByb21pc2UmJiBwcm9taXNlKSB7
IG1fYm9keS5hcnJheUJ1ZmZlcihXVEZNb3ZlKHByb21pc2UpKTsgfQorICAgIHZvaWQgZm9ybURh
dGEoRmV0Y2hCb2R5OjpGb3JtRGF0YVByb21pc2UmJiBwcm9taXNlKSB7IG1fYm9keS5mb3JtRGF0
YShXVEZNb3ZlKHByb21pc2UpKTsgfQorICAgIHZvaWQgYmxvYihGZXRjaEJvZHk6OkJsb2JQcm9t
aXNlJiYgcHJvbWlzZSkgeyBtX2JvZHkuYmxvYihXVEZNb3ZlKHByb21pc2UpKTsgfQorICAgIHZv
aWQganNvbihKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEZldGNoQm9keTo6SlNPTlByb21pc2UmJiBw
cm9taXNlKSB7IG1fYm9keS5qc29uKHN0YXRlLCBXVEZNb3ZlKHByb21pc2UpKTsgfQorICAgIHZv
aWQgdGV4dChGZXRjaEJvZHk6OlRleHRQcm9taXNlJiYgcHJvbWlzZSkgeyBtX2JvZHkudGV4dChX
VEZNb3ZlKHByb21pc2UpKTsgfQorCisgICAgc3RydWN0IEludGVybmFsUmVxdWVzdCB7CisgICAg
ICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0OworICAgICAgICBGZXRjaE9wdGlvbnMgb3B0aW9u
czsKKyAgICAgICAgU3RyaW5nIHJlZmVycmVyOworICAgICAgICBTdHJpbmcgaW50ZWdyaXR5Owor
ICAgIH07CisKKyAgICBGZXRjaEJvZHkmIGJvZHkoKSB7IHJldHVybiBtX2JvZHk7IH0KKworcHJp
dmF0ZToKKyAgICBGZXRjaFJlcXVlc3QoRmV0Y2hCb2R5JiYsIFJlZjxGZXRjaEhlYWRlcnM+JiYs
IEludGVybmFsUmVxdWVzdCYmKTsKKworICAgIEZldGNoQm9keSBtX2JvZHk7CisgICAgUmVmPEZl
dGNoSGVhZGVycz4gbV9oZWFkZXJzOworICAgIEludGVybmFsUmVxdWVzdCBtX2ludGVybmFsUmVx
dWVzdDsKK307CisKK2lubGluZSBGZXRjaFJlcXVlc3Q6OkZldGNoUmVxdWVzdChGZXRjaEJvZHkm
JiBib2R5LCBSZWY8RmV0Y2hIZWFkZXJzPiYmIGhlYWRlcnMsIEludGVybmFsUmVxdWVzdCYmIGlu
dGVybmFsUmVxdWVzdCkKKyAgICA6IG1fYm9keShXVEZNb3ZlKGJvZHkpKQorICAgICwgbV9oZWFk
ZXJzKFdURk1vdmUoaGVhZGVycykpCisgICAgLCBtX2ludGVybmFsUmVxdWVzdChXVEZNb3ZlKGlu
dGVybmFsUmVxdWVzdCkpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShGRVRDSF9BUEkpCisKKyNlbmRpZiAvLyBGZXRjaFJlcXVlc3RfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0
Yzc2NmNjZGNjMDcwMDNiYjJkNTVjNWFjNWY0ZmU0MWM4ZjFiZWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5pZGwKQEAgLTAsMCAr
MSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQ2Fub24g
SW5jLiBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIENBTk9OIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBDQU5PTiBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2VudW0g
UmVxdWVzdFR5cGUgeyAiIiwgImF1ZGlvIiwgImZvbnQiLCAiaW1hZ2UiLCAic2NyaXB0IiwgInN0
eWxlIiwgInRyYWNrIiwgInZpZGVvIiB9OworZW51bSBSZXF1ZXN0RGVzdGluYXRpb24geyAiIiwg
ImRvY3VtZW50IiwgInNoYXJlZHdvcmtlciIsICJzdWJyZXNvdXJjZSIsICJ1bmtub3duIiwgIndv
cmtlciIgfTsKK2VudW0gUmVxdWVzdE1vZGUgeyAibmF2aWdhdGUiLCAic2FtZS1vcmlnaW4iLCAi
bm8tY29ycyIsICJjb3JzIiB9OworZW51bSBSZXF1ZXN0Q3JlZGVudGlhbHMgeyAib21pdCIsICJz
YW1lLW9yaWdpbiIsICJpbmNsdWRlIiB9OworZW51bSBSZXF1ZXN0Q2FjaGUgeyAiZGVmYXVsdCIs
ICJuby1zdG9yZSIsICJyZWxvYWQiLCAibm8tY2FjaGUiLCAiZm9yY2UtY2FjaGUiIH07CitlbnVt
IFJlcXVlc3RSZWRpcmVjdCB7ICJmb2xsb3ciLCAiZXJyb3IiLCAibWFudWFsIiB9OworZW51bSBS
ZWZlcnJlclBvbGljeSB7ICIiLCAibm8tcmVmZXJyZXIiLCAgIm5vLXJlZmVycmVyLXdoZW4tZG93
bmdyYWRlIiwgIm9yaWdpbi1vbmx5IiwgIm9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiIsICJ1bnNh
ZmUtdXJsIiB9OworCitbCisgICAgQ29uZGl0aW9uYWw9RkVUQ0hfQVBJLAorICAgIENvbnN0cnVj
dG9yQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKKyAgICBDb25zdHJ1Y3RvclJhaXNl
c0V4Y2VwdGlvbiwKKyAgICBDb25zdHJ1Y3RvcihGZXRjaFJlcXVlc3QgaW5wdXQsIFtEZWZhdWx0
PVVuZGVmaW5lZF0gb3B0aW9uYWwgRGljdGlvbmFyeSBpbml0KSwKKyAgICBDb25zdHJ1Y3RvcihE
T01TdHJpbmcgaW5wdXQsIFtEZWZhdWx0PVVuZGVmaW5lZF0gIG9wdGlvbmFsIERpY3Rpb25hcnkg
aW5pdCksCisgICAgR2xvYmFsQ29udGV4dD1ET01XaW5kb3cmV29ya2VyR2xvYmFsU2NvcGUsCisg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBJbnRlcmZhY2VOYW1lPVJlcXVlc3QK
K10KK2ludGVyZmFjZSBGZXRjaFJlcXVlc3QgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgbWV0aG9kOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXJsOworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBGZXRjaEhlYWRlcnMgaGVhZGVyczsKKworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBSZXF1ZXN0VHlwZSB0eXBlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSZXF1
ZXN0RGVzdGluYXRpb24gZGVzdGluYXRpb247CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyByZWZlcnJlcjsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVmZXJyZXJQb2xpY3kgcmVm
ZXJyZXJQb2xpY3k7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3RNb2RlIG1vZGU7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFsczsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVzdENhY2hlIGNhY2hlOworICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBSZXF1ZXN0UmVkaXJlY3QgcmVkaXJlY3Q7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBpbnRlZ3JpdHk7CisKKyAgICBbUmFpc2VzRXhjZXB0aW9uLCBOZXdPYmplY3Rd
IEZldGNoUmVxdWVzdCBjbG9uZSgpOworfTsKK0ZldGNoUmVxdWVzdCBpbXBsZW1lbnRzIEZldGNo
Qm9keTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA2MmYzMDhhYjllOGM4NDU2NzBhODMyZDUwZGY5NDVkMDI4MzZjMjFiLi5lOTJh
OGJkMGI4ZmY2NGVmMjJlMmEyYmUzZDJlZWYyNTAyZThjYTdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTQ3LDcgKzE1NDcs
OSBAQAogCQk0MUYwNjZFNTBGNjRCQ0Y2MDBBMDdFQUMgLyogU2NyaXB0R2xvYmFsT2JqZWN0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjA2NkUz
MEY2NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRHbG9iYWxPYmplY3QuY3BwICovOyB9OwogCQk0MUYx
RDIxRjBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYxRDIxRDBFRjM1QzJBMDBE
QTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFGMUQyMjAwRUYzNUMyQTAwREE4NzUzIC8qIFNj
cmlwdENhY2hlZEZyYW1lRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MUYxRDIxRTBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJh
bWVEYXRhLmNwcCAqLzsgfTsKKwkJNDFGNTRGOEIxQzUwQzUwMzAwMzM4NDg4IC8qIEZldGNoQm9k
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUY1
NEY3RDFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hCb2R5LmNwcCAqLzsgfTsKIAkJNDFGNTRGOEQx
QzUwQzUwODAwMzM4NDg4IC8qIEZldGNoSGVhZGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUY1NEY4MjFDNTBDNEY2MDAzMzg0ODggLyogRmV0
Y2hIZWFkZXJzLmNwcCAqLzsgfTsKKwkJNDFGNTRGOEUxQzUwQzUwQzAwMzM4NDg4IC8qIEZldGNo
UmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MUY1NEY4NzFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hSZXF1ZXN0LmNwcCAqLzsgfTsKIAkJ
NDFGNTg0QzcxMDQ2NTJDQjAwOUNBQTY0IC8qIEpTTWVzc2FnZVBvcnRDdXN0b20uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjU4NEM2MTA0NjUyQ0Iw
MDlDQUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmggKi87IH07CiAJCTQxRkEzMDNFMTMxNkMy
OUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkEzMDNDMTMxNkMyOUMwMEMwQkZDNSAvKiBS
ZW5kZXJNZWRpYUNvbnRyb2xzLmNwcCAqLzsgfTsKIAkJNDFGQTMwM0YxMzE2QzI5QzAwQzBCRkM1
IC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxRkEzMDNEMTMxNkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNv
bnRyb2xzLmggKi87IH07CkBAIC0yNzkzLDYgKzI3OTUsOCBAQAogCQk3RTQ3NEUxRTEyNDk0REM5
MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTQ3NEUxQjEyNDk0REM5MDAyMzUzNjQg
LyogU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0U0NzRFMUYxMjQ5NERDOTAwMjM1MzY0IC8qIFNR
TGl0ZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0U0NzRFMUMxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJh
Y2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTdFNDc0RTIwMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0NzRFMUQxMjQ5
NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgKi87IH07CisJCTdFNEM5
NkRDMUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTAg
LyogSlNGZXRjaFJlcXVlc3QuY3BwICovOyB9OworCQk3RTRDOTZERDFBRDQ0ODM1MDAzNjVBNTAg
LyogSlNGZXRjaFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdFNEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoUmVxdWVzdC5oICov
OyB9OwogCQk3RTRERTEwRDE5OEIxMEI2MDA1MUNCMDIgLyogRGlza0NhY2hlTW9uaXRvckNvY29h
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U0REUx
MEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAqLzsgfTsKIAkJ
N0U1RDdBNzYxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U1RDdBNzMxNjFEM0Y4
RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovOyB9OwogCQk3RTVEN0E3NzE2
MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U1RDdBNzQxNjFEM0Y4RjAwODk2QzM0IC8q
IE9FU0VsZW1lbnRJbmRleFVpbnQuaCAqLzsgfTsKQEAgLTI4MjksNiArMjgzMyw4IEBACiAJCTdF
RTY4NDcwMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ1RDEyRDI2RTM4MDBFNzk0
MTUgLyogUmVzb3VyY2VSZXNwb25zZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdFRTY4NDcxMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJl
c3BvbnNlQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0VFNjg0NUUxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2VDRk5ldC5j
cHAgKi87IH07CiAJCTdFRTY4NDc1MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRlckNG
TmV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdF
RTY4NDc0MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRlckNGTmV0LmNwcCAqLzsgfTsK
KwkJN0Y0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdGNEM5NkQ4MUFENDQ4MzUwMDM2
NUE1MCAvKiBKU0ZldGNoQm9keS5jcHAgKi87IH07CisJCTdGNEM5NkREMUFENDQ4MzUwMDM2NUE1
MCAvKiBKU0ZldGNoQm9keS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0Y0Qzk2RDkxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmggKi87IH07
CiAJCTgxMDJDNTg4MTMyNUJCMTEwMERERTY3QSAvKiBTdHJpbmdDYWxsYmFjay5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MTAyQzU4NzEzMjVCQjEx
MDBEREU2N0EgLyogU3RyaW5nQ2FsbGJhY2suY3BwICovOyB9OwogCQk4MUFDNTk5OTEzMTYzNkU2
MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODFBQzU5OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFu
c2Zlckl0ZW0uaCAqLzsgfTsKIAkJODFBQzU5OUExMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFu
c2Zlckl0ZW1MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuaCAq
LzsgfTsKQEAgLTg5NTksMTAgKzg5NjUsMTcgQEAKIAkJNDFGMDY2RTMwRjY0QkNGNjAwQTA3RUFD
IC8qIFNjcmlwdEdsb2JhbE9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTY3JpcHRHbG9iYWxPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MUYxRDIxRDBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdENhY2hlZEZyYW1lRGF0YS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUYxRDIxRTBFRjM1QzJBMDBEQTg3NTMg
LyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxRjU0RjdEMUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEJvZHkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmV0Y2hCb2R5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGNTRGN0UxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoQm9k
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZXRjaEJvZHkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGNTRGN0YxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNo
Qm9keS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmV0Y2hCb2R5LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGNTRGODIxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoSGVh
ZGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGZXRjaEhlYWRl
cnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUY1NEY4MzFDNTBDNEY2MDAz
Mzg0ODggLyogRmV0Y2hIZWFkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEZldGNoSGVhZGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUY1NEY4NDFD
NTBDNEY2MDAzMzg0ODggLyogRmV0Y2hIZWFkZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBGZXRjaEhlYWRlcnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUY1NEY4
NTFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hIZWFkZXJzLmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBwYXRoID0gRmV0Y2hIZWFkZXJzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MUY1NEY4NjFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hPcHRpb25zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZldGNoT3B0aW9ucy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MUY1NEY4NzFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hSZXF1
ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZldGNoUmVxdWVz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRjU0Rjg4MUM1MEM0RjYwMDMz
ODQ4OCAvKiBGZXRjaFJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RmV0Y2hSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRjU0Rjg5MUM1
MEM0RjYwMDMzODQ4OCAvKiBGZXRjaFJlcXVlc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEZldGNoUmVxdWVzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRjU4NEM2
MTA0NjUyQ0IwMDlDQUE2NCAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVzc2FnZVBvcnRDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDFGQTMwM0MxMzE2QzI5QzAwQzBCRkM1IC8qIFJlbmRlck1lZGlhQ29u
dHJvbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyTWVk
aWFDb250cm9scy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkEzMDNEMTMx
NkMyOUMwMEMwQkZDNSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbmRlck1lZGlhQ29udHJvbHMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEwMzU4LDYgKzEwMzcxLDggQEAKIAkJN0U0NzRFMUIxMjQ5NERDOTAwMjM1
MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0U0NzRFMUMxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFi
YXNlVHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTUUxpdGVEYXRh
YmFzZVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U0NzRFMUQxMjQ5
NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3RTRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRj
aFJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGZXRj
aFJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RTRDOTZEOTFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNGZXRjaFJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0U0REUxMEMxOThCMTBCNjAwNTFDQjAyIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERpc2tDYWNoZU1vbml0b3JDb2Nv
YS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2
QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gT0VTRWxlbWVudEluZGV4VWludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMzNCAvKiBPRVNFbGVtZW50SW5kZXhVaW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9FU0VsZW1lbnRJbmRleFVpbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMzk2LDYgKzEwNDExLDggQEAKIAkJ
N0VFNjg0NUQxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3RUU2ODQ1RTEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNw
b25zZUNGTmV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291
cmNlUmVzcG9uc2VDRk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFRTY4
NDc0MTJEMjZFNzAwMEU3OTQxNSAvKiBSZXNvdXJjZUxvYWRlckNGTmV0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZGVyQ0ZOZXQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RjRDOTZEODFBRDQ0ODM1MDAzNjVBNTAgLyogSlNG
ZXRjaEJvZHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGZXRj
aEJvZHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3RjRDOTZEOTFBRDQ0ODM1
MDAzNjVBNTAgLyogSlNGZXRjaEJvZHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNGZXRjaEJvZHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODEwMkM1ODcx
MzI1QkIxMTAwRERFNjdBIC8qIFN0cmluZ0NhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ0NhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODFBQzU5OTcxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyog
RGF0YVRyYW5zZmVySXRlbUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGF0YVRyYW5zZmVySXRlbUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2
NjE5LDEwICsxNjYzNiwxNyBAQAogCQk0MUY1NEY3QzFDNTBDNEY2MDAzMzg0ODggLyogZmV0Y2gg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQxRjU0RjdE
MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaEJvZHkuY3BwICovLAorCQkJCTQxRjU0RjdFMUM1MEM0
RjYwMDMzODQ4OCAvKiBGZXRjaEJvZHkuaCAqLywKKwkJCQk0MUY1NEY3RjFDNTBDNEY2MDAzMzg0
ODggLyogRmV0Y2hCb2R5LmlkbCAqLywKIAkJCQk0MUY1NEY4MjFDNTBDNEY2MDAzMzg0ODggLyog
RmV0Y2hIZWFkZXJzLmNwcCAqLywKIAkJCQk0MUY1NEY4MzFDNTBDNEY2MDAzMzg0ODggLyogRmV0
Y2hIZWFkZXJzLmggKi8sCiAJCQkJNDFGNTRGODQxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoSGVh
ZGVycy5pZGwgKi8sCiAJCQkJNDFGNTRGODUxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoSGVhZGVy
cy5qcyAqLywKKwkJCQk0MUY1NEY4NjFDNTBDNEY2MDAzMzg0ODggLyogRmV0Y2hPcHRpb25zLmgg
Ki8sCisJCQkJNDFGNTRGODcxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoUmVxdWVzdC5jcHAgKi8s
CisJCQkJNDFGNTRGODgxQzUwQzRGNjAwMzM4NDg4IC8qIEZldGNoUmVxdWVzdC5oICovLAorCQkJ
CTQxRjU0Rjg5MUM1MEM0RjYwMDMzODQ4OCAvKiBGZXRjaFJlcXVlc3QuaWRsICovLAogCQkJKTsK
IAkJCXBhdGggPSBmZXRjaDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNjYzMCw2
ICsxNjY1NCwxMCBAQAogCQk0MkEwMjNGQTFBMzlGMTNBMDBGNzIyQ0YgLyogRmV0Y2hBUEkgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTdGNEM5NkQ4MUFE
NDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoQm9keS5jcHAgKi8sCisJCQkJN0Y0Qzk2RDkxQUQ0NDgz
NTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmggKi8sCisJCQkJN0U0Qzk2RDgxQUQ0NDgzNTAwMzY1
QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0LmNwcCAqLywKKwkJCQk3RTRDOTZEOTFBRDQ0ODM1MDAzNjVB
NTAgLyogSlNGZXRjaFJlcXVlc3QuaCAqLywKIAkJCQk3RDRDOTZEODFBRDQ0ODM1MDAzNjVBNTAg
LyogSlNGZXRjaEhlYWRlcnMuY3BwICovLAogCQkJCTdENEM5NkQ5MUFENDQ4MzUwMDM2NUE1MCAv
KiBKU0ZldGNoSGVhZGVycy5oICovLAogCQkJKTsKQEAgLTI2NDgzLDYgKzI2NTExLDggQEAKIAkJ
CQkwNzc2NjRGRDE4M0U2QjVDMDAxMzNCOTIgLyogSlNRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjY1OEZGQTIxNTIyRUYzQTAwREQ1NTk1IC8qIEpTUmFk
aW9Ob2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVERjMyMDIwOUQxQ0M2MDAwMEJFMzI1
IC8qIEpTUmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTdGNEM5NkREMUFENDQ4MzUwMDM2NUE1
MCAvKiBKU0ZldGNoQm9keS5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0U0Qzk2REQxQUQ0NDgzNTAw
MzY1QTUwIC8qIEpTRmV0Y2hSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3RDRDOTZERDFB
RDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaEhlYWRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdD
NEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4gSGVhZGVycyAq
LywKIAkJCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbUNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjk2NjQsNiArMjk2OTQsNyBAQAogCQkJCUM1ODVB
NjYyMTFENEZBQzUwMDRDM0U0QiAvKiBJREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxNkQ3RDcxMUJCNUYwQkQwMEFGN0M3NyAvKiBJREJDb25uZWN0aW9uVG9DbGll
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE5OEY3QzAxQkM0ODU2NzAwRTJDQzVGIC8qIElE
QkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MUY1NEY4QjFDNTBD
NTAzMDAzMzg0ODggLyogRmV0Y2hCb2R5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxODVGQzdB
MUJCNEM0RTgwMDEyODk4RiAvKiBJREJDdXJzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFG
NDFBNjkxQkE3M0I1QjAwMkUwNTNCIC8qIElEQkN1cnNvckJhY2tlbmQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTFGNDFBNkIxQkE3M0I1QjAwMkUwNTNCIC8qIElEQkN1cnNvckJhY2tlbmRPcGVy
YXRpb25zLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzAwNzMsNiArMzAxMDQsNyBAQAogCQkJCUE4
MEU3RTlFMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJODNFMzU5QTMxQkIxMDMxRDAwMkNFQjk4IC8qIEpTSFRNTFRpbWVFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU3QjEzMEExOUQ2MDYwMDdGQjhDNSAvKiBK
U0hUTUxUaXRsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDFGNTRGOEUxQzUwQzUw
QzAwMzM4NDg4IC8qIEZldGNoUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzA3NTZE
MzE0MjM5QTRFMDA0MTQxNjEgLyogSlNIVE1MVHJhY2tFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBODVCMjEwMEExQjI1ODcwMEQ4Qzg3QyAvKiBKU0hUTUxVTGlzdEVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNkU0QUJDRDQxMzhFQTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVu
a25vd25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzAxOTUsNyArMzAyMjcsOSBAQAog
CQkJCTA3NzY2NEZDMTgzRTZCNUMwMDEzM0I5MiAvKiBKU1F1aWNrVGltZVBsdWdpblJlcGxhY2Vt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI2NThGRkExMTUyMkVGM0EwMERENTU5NSAvKiBK
U1JhZGlvTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMyMDEwOUQxQ0M2MDAw
MEJFMzI1IC8qIEpTUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0Y0Qzk2REMxQUQ0NDgz
NTAwMzY1QTUwIC8qIEpTRmV0Y2hCb2R5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdENEM5NkRD
MUFENDQ4MzUwMDM2NUE1MCAvKiBKU0ZldGNoSGVhZGVycy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk3RTRDOTZEQzFBRDQ0ODM1MDAzNjVBNTAgLyogSlNGZXRjaFJlcXVlc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0M0Qzk2REMxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkM0Qzk2REUxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVh
ZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjlERjg1MUJC
NUI4MDcwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0Rp
Y3Rpb25hcnkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RpY3Rpb25hcnkuaAppbmRl
eCBlYzFlY2E4OTY2N2MzNmQ1NzFhZTE2N2UxNzc4NDJkMDY0OTkxNjViLi5kMzE3MmFmNDQ3ZmZh
YjgxZWZjNjU4NTgzY2VhOTE0NWIxNjIyYTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9EaWN0aW9uYXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
RGljdGlvbmFyeS5oCkBAIC02Niw2ICs2Niw4IEBAIHB1YmxpYzoKICAgICBib29sIGdldE93blBy
b3BlcnR5TmFtZXMoVmVjdG9yPFN0cmluZz4mKSBjb25zdDsKICAgICBib29sIGdldFdpdGhVbmRl
ZmluZWRPck51bGxDaGVjayhjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIFN0cmluZyYgdmFsdWUp
IGNvbnN0OwogCisgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWNTdGF0ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGljdGlvbmFyeS5leGVjU3RhdGUoKTsgfQorCiBwcml2YXRlOgogICAgIHRlbXBsYXRlIDx0
eXBlbmFtZSBUPgogICAgIEpTQzo6SlNPYmplY3QqIGFzSlNPYmplY3QoVCopIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKaW5kZXggYzRhMmYxNjcx
MmM0YjRhNmM0MmNhZDI1YzA3NmVmYWVhNGNiNmEzNS4uMzM0NmNjZmU2OTkzZmI5NDk1NzVkNzMw
ODU1ZWQ0ZDc4Zjk2OGRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rp
b25hcnkuY3BwCkBAIC00Nyw2ICs0NywxMCBAQAogI2luY2x1ZGUgIkpTTWVkaWFLZXlFcnJvci5o
IgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRkVUQ0hfQVBJKQorI2luY2x1ZGUgIkpTRmV0Y2hIZWFk
ZXJzLmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAjaW5jbHVkZSAiSlNN
ZWRpYVN0cmVhbS5oIgogI2luY2x1ZGUgIkpTTWVkaWFTdHJlYW1UcmFjay5oIgpAQCAtMjI3LDYg
KzIzMSwxMyBAQCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8TWVkaQogfQogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoRkVUQ0hfQVBJKQordm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPEZldGNoSGVhZGVycz4mIHJlc3VsdCkK
K3sKKyAgICByZXN1bHQgPSBKU0ZldGNoSGVhZGVyczo6dG9XcmFwcGVkKHZhbHVlKTsKK30KKyNl
bmRpZgorCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252
ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxNZWRp
YVN0cmVhbT4mIHJlc3VsdCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRGljdGlvbmFyeS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9u
YXJ5LmgKaW5kZXggZjU4ZmJmNzBiNmI1NTg4MmM2YjJhZWYyOTQwN2VjNjliZGM5NmMzNC4uNTRi
Zjc5OTBjMGQxYTdlZjU0N2IxMzBmZWM1YWQxMzZkM2U1YjczOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgRE9NRXJy
b3I7CiBjbGFzcyBET01XaW5kb3c7CiBjbGFzcyBFdmVudFRhcmdldDsKIGNsYXNzIEdhbWVwYWQ7
CitjbGFzcyBGZXRjaEhlYWRlcnM7CiBjbGFzcyBNZWRpYUtleUVycm9yOwogY2xhc3MgTWVkaWFT
dHJlYW07CiBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrOwpAQCAtMTI2LDYgKzEyNyw5IEBAIHByaXZh
dGU6CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBzdGF0aWMgdm9pZCBjb252ZXJ0
VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIFJlZlB0cjxNZWRpYUtleUVycm9y
PiYgcmVzdWx0KTsKICNlbmRpZgorI2lmIEVOQUJMRShGRVRDSF9BUEkpCisgICAgc3RhdGljIHZv
aWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBSZWZQdHI8RmV0
Y2hIZWFkZXJzPiYgcmVzdWx0KTsKKyNlbmRpZgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAg
ICAgc3RhdGljIHZvaWQgY29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVl
LCBSZWZQdHI8TWVkaWFTdHJlYW0+JiByZXN1bHQpOwogICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRW
YWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgUmVmUHRyPE1lZGlhU3RyZWFtVHJh
Y2s+JiByZXN1bHQpOwpAQCAtMTYzLDYgKzE2NywxMiBAQCBib29sIEpTRGljdGlvbmFyeTo6Z2V0
KGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgUmVzdWx0JiBmaW5hbFJlc3VsdCkgY29uc3QKICAg
ICByZXR1cm4gdHJ5R2V0UHJvcGVydHlBbmRSZXN1bHQocHJvcGVydHlOYW1lLCAmZmluYWxSZXN1
bHQsIElkZW50aXR5U2V0dGVyPFJlc3VsdD46OmlkZW50aXR5U2V0dGVyKSA9PSBQcm9wZXJ0eUZv
dW5kOwogfQogCit0ZW1wbGF0ZSA8PgoraW5saW5lIGJvb2wgSlNEaWN0aW9uYXJ5OjpnZXQoY29u
c3QgY2hhciogcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUmIGZpbmFsUmVzdWx0KSBjb25zdAor
eworICAgIHJldHVybiB0cnlHZXRQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIGZpbmFsUmVzdWx0KSA9
PSBQcm9wZXJ0eUZvdW5kOworfQorCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUmVz
dWx0PgogSlNEaWN0aW9uYXJ5OjpHZXRQcm9wZXJ0eVJlc3VsdCBKU0RpY3Rpb25hcnk6OnRyeUdl
dFByb3BlcnR5QW5kUmVzdWx0KGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgVCogY29udGV4dCwg
dm9pZCAoKnNldHRlcikoVCogY29udGV4dCwgY29uc3QgUmVzdWx0JikpIGNvbnN0CiB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggYTEyYWY2OGNkOGY3NzNlODBjNDFlNTZlYzA3NDU5YWEzOTI1YTc4Zi4uNzQzYzk4NzgyNzRj
ZTRjOWI3N2Q2ODNjMWYwOTE3ODgwZmY2M2Q2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE2
LTAxLTMxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAg
ICAgICAgW0ZldGNoIEFQSV0gSW1wbGVtZW50IEZldGNoIEFQSSBSZXF1ZXN0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM0MzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIGpzL2RvbS9nbG9iYWwtY29uc3Ry
dWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICoganMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZWZs
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pzL2RvbS9n
bG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBs
YXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvanMvZG9tL2dsb2JhbC1jb25z
dHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vd2lu
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0OgorCiAy
MDE2LTAxLTMxICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgcmVzaXplIGV2ZW50IGZvciBIVE1MTWVkaWFFbGVtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwppbmRleCBjZWEwZmQwZTFmZTIyYzhlMjlmN2ZmM2IwZjI0NDExZTY0ZDc2ODAyLi42
MzE3YjYzM2RiMmZjYzIwNGYzNzg3MGE3MGExOTYwMzFmZjdjMDM0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAxNi0wMS0zMSAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtGZXRjaCBBUEldIElt
cGxlbWVudCBGZXRjaCBBUEkgUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNDM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2hlYWRlcnMvaGVh
ZGVycy1iYXNpYy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LWNsb25lLnN1Yi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNsb25lLnN1Yi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1jb25zdW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVz
dC1kaXN0dXJiZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJy
b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3QtaGVhZGVycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pZGwtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1p
ZGwuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDEuc3ViLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDEu
c3ViLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0
L3JlcXVlc3QtaW5pdC0wMDMuc3ViLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDMuc3ViLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LXN0cnVjdHVyZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LXN0cnVjdHVyZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9h
dXRoZW50aWNhdGlvbi5weTogQWRkZWQuCisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9jbGVhbi1zdGFzaC5weTogQWRkZWQu
CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3Jlc291cmNlcy9pbnNwZWN0LWhlYWRlcnMucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvbWV0aG9kLnB5
OiBBZGRlZC4KKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzb3VyY2VzL3ByZWZsaWdodC5weTogQWRkZWQuCisgICAgICAgIChtYWluKToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9yZWRpcmVj
dC5weTogQWRkZWQuCisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL3Jlc291cmNlcy90b3AudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy90cmlja2xlLnB5OiBBZGRlZC4KKyAgICAg
ICAgKG1haW4pOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3Vy
Y2VzL3V0aWxzLmpzOiBBZGRlZC4KKyAgICAgICAgKGNhdGNoKToKKyAgICAgICAgKGRpcm5hbWUp
OgorICAgICAgICAoY2hlY2tSZXF1ZXN0KToKKyAgICAgICAgKHJlYWRUZXh0U3RyZWFtKToKKwog
MjAxNi0wMS0zMSAgSmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIHJlc2l6ZSBldmVudCBmb3IgSFRNTE1lZGlhRWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvaGVhZGVycy9o
ZWFkZXJzLWJhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtYmFzaWMuaHRtbAppbmRleCBmNmQ1ZWVk
OTk4MDc5ZGM4ZWI1ODgwZmJmYWM4NjkzNzhkZTZiZGI4Li5jMzk1NDVkNTQzMTQ2MWFkYTQ2OTJj
ZWRjODlkN2QyODZkNDY1ZmRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9oZWFkZXJzL2hlYWRlcnMtYmFzaWMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9oZWFkZXJzL2hlYWRlcnMtYmFzaWMuaHRtbApAQCAtNDgsNiArNDgsNyBAQAogICAgICAgICAg
IGFzc2VydF9lcXVhbHMoaGVhZGVycy5nZXQobmFtZSksIFN0cmluZyhoZWFkZXJEaWN0W25hbWVd
KSwKICAgICAgICAgICAgICJuYW1lOiAiICsgbmFtZSArICIgaGFzIHZhbHVlOiAiICsgaGVhZGVy
RGljdFtuYW1lXSk7CiAgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0X2VxdWFscyhoZWFkZXJzLmdl
dCgibGVuZ3RoIiksIG51bGwsICJpbml0IHNob3VsZCBiZSB0cmVhdGVkIGFzIGEgc2VxdWVuY2Us
IG5vdCBhcyBhIGRpY3Rpb25hcnkiKTsKICAgICAgIH0sICJDcmVhdGUgaGVhZGVycyB3aXRoIHNl
cXVlbmNlIik7CiAKICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtY2xvbmUuc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jbG9uZS5zdWItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjYmQwNzc0Nzk4NDRjZWE1Yzc5NjE5YWExNzcwYTU0ZGYy
ZWYzMDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY2xvbmUuc3ViLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDQgQEAKKworRkFJTCBDaGVjayBjbG9uaW5nIGEgcmVxdWVzdCBFeHBl
Y3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ0V4
cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmtleXMoKScsICdFeHBlY3RlZFZhbHVlc0RpY3Rb
ImhlYWRlcnMiXS5rZXlzJyBpcyB1bmRlZmluZWQpCitQQVNTIENoZWNrIGNsb25pbmcgYSByZXF1
ZXN0IGNvcGllcyB0aGUgaGVhZGVycyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNsb25l
LnN1Yi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNsb25lLnN1Yi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4MDdl
MjZiYWM4YzRlZTA4ZWY5MjdiOTdmZWQ2YTRmN2UyODc1NTEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1
ZXN0L3JlcXVlc3QtY2xvbmUuc3ViLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0
aXRsZT5SZXF1ZXN0IGNsb25lPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJo
dHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+CisgICAgPG1ldGEgbmFtZT0i
YXV0aG9yIiB0aXRsZT0iQ2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5j
cmYuY2Fub24uZnIiPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91dGlscy5qcyI+
PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgIHZhciBo
ZWFkZXJzID0gbmV3IEhlYWRlcnMoIHsibmFtZSIgOiAidmFsdWUifSApOworICAgICAgdmFyIGVt
cHR5SGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7CisKKyAgICAgIHZhciBpbml0VmFsdWVzRGljdCA9
IHsibWV0aG9kIiA6ICJQT1NUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJy
ZXIiIDogImh0dHA6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBdWzBdfX0vIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAicmVmZXJyZXJQb2xpY3kiIDogIm9yaWdpbi1vbmx5IiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibW9kZSIgOiAic2FtZS1vcmlnaW4iLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJjcmVkZW50aWFscyIgOiAiaW5jbHVkZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImNhY2hlIiA6ICJuby1jYWNoZSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInJlZGlyZWN0IiA6ICJlcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImludGVncml0eSIgOiAiUmVxdWVzdCdzIEludGVncml0eSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImhlYWRlcnMiIDogaGVhZGVycywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiYm9keSIgOiAiUmVxdWVzdCdzIGJvZHkiCisgICAgICB9OworCisgICAgICB2YXIg
ZXhwZWN0ZWRJbml0aWFsaXplZCA9IHsibWV0aG9kIiA6ICJQT1NUIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJyZWZlcnJlciIgOiAiaHR0cDovL3t7aG9zdH19Ont7cG9ydHNb
aHR0cF1bMF19fS8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVycmVy
UG9saWN5IiA6ICJvcmlnaW4tb25seSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAibW9kZSIgOiAic2FtZS1vcmlnaW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImNyZWRlbnRpYWxzIiA6ICJpbmNsdWRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJjYWNoZSIgOiAibm8tY2FjaGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInJlZGlyZWN0IiA6ICJlcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiaW50ZWdyaXR5IiA6ICJSZXF1ZXN0J3MgSW50ZWdyaXR5IiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJoZWFkZXJzIiA6IGhlYWRlcnMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiYm9keSIgOiAiUmVxdWVzdCdzIGJvZHkiCisgICAgICB9OworCisg
ICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgUmVxdWVzdEluaXRpYWxpemVkID0g
bmV3IFJlcXVlc3QoIiIsIGluaXRWYWx1ZXNEaWN0KTsKKyAgICAgICAgdmFyIHJlcXVlc3RUb0No
ZWNrID0gUmVxdWVzdEluaXRpYWxpemVkLmNsb25lKCk7CisgICAgICAgIGNoZWNrUmVxdWVzdChy
ZXF1ZXN0VG9DaGVjaywgZXhwZWN0ZWRJbml0aWFsaXplZCk7CisgICAgICB9LCAiQ2hlY2sgY2xv
bmluZyBhIHJlcXVlc3QiKTsKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFy
IGluaXRpYWxSZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyIgOiBuZXcgSGVhZGVy
cyh7ImEiOiAiMSIsICJiIiA6ICIyIn0pfSk7CisgICAgICAgIHZhciByZXF1ZXN0ID0gaW5pdGlh
bFJlcXVlc3QuY2xvbmUoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMu
Z2V0KCJhIiksICIxIiwgImNsb25lZCByZXF1ZXN0IHNob3VsZCBoYXZlIGhlYWRlciAnYSciKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCJiIiksICIyIiwgImNs
b25lZCByZXF1ZXN0IHNob3VsZCBoYXZlIGhlYWRlciAnYiciKTsKKworICAgICAgICBpbml0aWFs
UmVxdWVzdC5oZWFkZXJzLmRlbGV0ZSgiYSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVl
c3QuaGVhZGVycy5nZXQoImEiKSwgIjEiLCAiY2xvbmVkIHJlcXVlc3Qgc2hvdWxkIHN0aWxsIGhh
dmUgaGVhZGVyICdhJyIpOworCisgICAgICAgIHJlcXVlc3QuaGVhZGVycy5kZWxldGUoImEiKTsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbml0aWFsUmVxdWVzdC5oZWFkZXJzLmdldCgiYiIpLCAi
MiIsICJpbml0aWFsIHJlcXVlc3Qgc2hvdWxkIGhhdmUgaGVhZGVyICdiJyIpOworCisgICAgICB9
LCAiQ2hlY2sgY2xvbmluZyBhIHJlcXVlc3QgY29waWVzIHRoZSBoZWFkZXJzIik7CisKKyAgICA8
L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNv
bnN1bWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQyNmNjNzZhMWIyMGI1MDZjYjNlNjYxNTUyMWUyODA1MWEyZTNmOWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNSBAQAorCitQQVNTIENvbnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMgdGV4dCAKK0ZBSUwgQ29u
c3VtZSByZXF1ZXN0J3MgYm9keSBhcyBibG9iIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQKK1BBU1MgQ29uc3VtZSByZXF1ZXN0J3MgYm9keSBh
cyBhcnJheUJ1ZmZlciAKK1BBU1MgQ29uc3VtZSByZXF1ZXN0J3MgYm9keSBhcyBqc29uIAorRkFJ
TCBDb25zdW1lIHJlcXVlc3QncyBib2R5IGFzIGZvcm1EYXRhIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiB1bmRlZmluZWQKK1BBU1MgQ29uc3VtZSBKU09OIGZy
b20gdGV4dDogJyJudWxsIicgCitQQVNTIENvbnN1bWUgSlNPTiBmcm9tIHRleHQ6ICciMSInIAor
UEFTUyBDb25zdW1lIEpTT04gZnJvbSB0ZXh0OiAnInRydWUiJyAKK1BBU1MgQ29uc3VtZSBKU09O
IGZyb20gdGV4dDogJyJcInN0cmluZ1wiIicgCitQQVNTIFRyeWluZyB0byBjb25zdW1lIGJhZCBK
U09OIHRleHQgYXMgSlNPTjogJ3VuZGVmaW5lZCcgCitQQVNTIFRyeWluZyB0byBjb25zdW1lIGJh
ZCBKU09OIHRleHQgYXMgSlNPTjogJ3snIAorUEFTUyBUcnlpbmcgdG8gY29uc3VtZSBiYWQgSlNP
TiB0ZXh0IGFzIEpTT046ICdhJyAKK1BBU1MgVHJ5aW5nIHRvIGNvbnN1bWUgYmFkIEpTT04gdGV4
dCBhcyBKU09OOiAnWycgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZGYwZmI4NzZkYWRmMjZk
Yzg3YTQ1ODZiOTM0MzAzZmEyZjVlNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
Y29uc3VtZS5odG1sCkBAIC0wLDAgKzEsMTA3IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgor
ICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlcXVlc3Qg
Y29uc3VtZTwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRj
aC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNib2R5LW1peGluIj4KKyAgICA8bWV0YSBu
YW1lPSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8v
d3d3LmNyZi5jYW5vbi5mciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0Pgor
ICAgIGZ1bmN0aW9uIGNoZWNrQm9keVRleHQocmVxdWVzdCwgZXhwZWN0ZWRCb2R5KSB7CisgICAg
ICByZXR1cm4gcmVxdWVzdC50ZXh0KCkudGhlbiggZnVuY3Rpb24oYm9keUFzVGV4dCkgeworICAg
ICAgICBhc3NlcnRfZXF1YWxzKGJvZHlBc1RleHQsIGV4cGVjdGVkQm9keSwgIlJldHJpZXZlIGFu
ZCB2ZXJpZnkgcmVxdWVzdCdzIGJvZHkiKTsKKyAgICAgICAgYXNzZXJ0X3RydWUocmVxdWVzdC5i
b2R5VXNlZCwgImJvZHkgYXMgdGV4dDogYm9keVVzZWQgdHVybmVkIHRydWUiKTsKKyAgICAgIH0p
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQm9keUJsb2IocmVxdWVzdCwgZXhwZWN0ZWRC
b2R5KSB7CisgICAgICByZXR1cm4gcmVxdWVzdC5ibG9iKCkudGhlbihmdW5jdGlvbihib2R5QXNC
bG9iKSB7CisgICAgICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29s
dmUsIHJlamVjdCkgeworICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOwor
ICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihldnQpIHsKKyAgICAgICAgICAgIHJl
c29sdmUocmVhZGVyLnJlc3VsdCkKKyAgICAgICAgICB9OworICAgICAgICAgIHJlYWRlci5vbmVy
cm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICByZWplY3QoIkJsb2IncyByZWFkZXIgZmFp
bGVkIik7CisgICAgICAgICAgfTsKKyAgICAgICAgICByZWFkZXIucmVhZEFzVGV4dChib2R5QXNC
bG9iKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnRoZW4oZnVuY3Rpb24o
Ym9keSkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoYm9keSwgZXhwZWN0ZWRCb2R5LCAiUmV0
cmlldmUgYW5kIHZlcmlmeSByZXF1ZXN0J3MgYm9keSIpOworICAgICAgICAgIGFzc2VydF90cnVl
KHJlcXVlc3QuYm9keVVzZWQsICJib2R5IGFzIGJsb2I6IGJvZHlVc2VkIHR1cm5lZCB0cnVlIik7
CisgICAgICAgIH0pOworICAgICAgfSk7CisgICAgfQorCisgICAgPCEtLSBUYWtlbiBmcm9tIGh0
dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tIC0tPgorICAgIGZ1bmN0aW9uIHN0cjJhYihzdHIp
IHsKKyAgICAgIHZhciBidWYgPSBuZXcgQXJyYXlCdWZmZXIoc3RyLmxlbmd0aCoyKTsgLy8gMiBi
eXRlcyBmb3IgZWFjaCBjaGFyCisgICAgICB2YXIgYnVmVmlldyA9IG5ldyBVaW50MTZBcnJheShi
dWYpOworICAgICAgZm9yICh2YXIgaT0wLCBzdHJMZW49c3RyLmxlbmd0aDsgaSA8IHN0ckxlbjsg
aSsrKSB7CisgICAgICAgIGJ1ZlZpZXdbaV0gPSBzdHIuY2hhckNvZGVBdChpKTsKKyAgICAgIH0K
KyAgICAgIHJldHVybiBidWY7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hlY2tCb2R5QXJyYXlC
dWZmZXIocmVxdWVzdCwgZXhwZWN0ZWRCb2R5KSB7CisgICAgICByZXR1cm4gcmVxdWVzdC5hcnJh
eUJ1ZmZlcigpLnRoZW4oIGZ1bmN0aW9uKGJvZHlBc0FycmF5QnVmZmVyKSB7CisgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoYm9keUFzQXJyYXlCdWZmZXIsIHN0cjJhYihleHBlY3RlZEJvZHkp
LCAiUmV0cmlldmUgYW5kIHZlcmlmeSByZXF1ZXN0J3MgYm9keSIpOworICAgICAgICBhc3NlcnRf
dHJ1ZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9keSBhcyBhcnJheUJ1ZmZlcjogYm9keVVzZWQgdHVy
bmVkIHRydWUiKTsKKyAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNoZWNrQm9keUpT
T04ocmVxdWVzdCwgZXhwZWN0ZWRCb2R5KSB7CisgICAgICByZXR1cm4gcmVxdWVzdC5qc29uKCku
dGhlbihmdW5jdGlvbihib2R5QXNKU09OKSB7CisgICAgICAgIHZhciBzdHJCb2R5ID0gSlNPTi5z
dHJpbmdpZnkoYm9keUFzSlNPTikKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzdHJCb2R5LCBleHBl
Y3RlZEJvZHksICJSZXRyaWV2ZSBhbmQgdmVyaWZ5IHJlcXVlc3QncyBib2R5Iik7CisgICAgICAg
IGFzc2VydF90cnVlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5IGFzIGpzb246IGJvZHlVc2VkIHR1
cm5lZCB0cnVlIik7CisgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjaGVja0JvZHlG
b3JtRGF0YShyZXF1ZXN0LCBleHBlY3RlZEJvZHkpIHsKKyAgICAgIHJldHVybiByZXF1ZXN0LmZv
cm1EYXRhKCkudGhlbihmdW5jdGlvbihib2R5QXNGb3JtRGF0YSkgeworICAgICAgICBhc3NlcnRf
dHJ1ZShib2R5QXNGb3JtRGF0YSBpbnN0YW5jZW9mIEZvcm1EYXRhLCAiU2hvdWxkIHJlY2VpdmUg
YSBGb3JtRGF0YSIpOworICAgICAgICBhc3NlcnRfdHJ1ZShyZXF1ZXN0LmJvZHlVc2VkLCAiYm9k
eSBhcyBmb3JtRGF0YTogYm9keVVzZWQgdHVybmVkIHRydWUiKTsKKyAgICAgfSk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gY2hlY2tSZXF1ZXN0Qm9keShib2R5LCBib2R5VHlwZSwgY2hlY2tGdW5j
dGlvbikgeworICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICAgICAgdmFy
IHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiUE9TVCIsICJib2R5IjogYm9k
eSB9KTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlcXVlc3QuYm9keVVzZWQsICJib2R5VXNlZCBp
cyBmYWxzZSBhdCBpbml0Iik7CisgICAgICAgIHJldHVybiBjaGVja0Z1bmN0aW9uKHJlcXVlc3Qs
IGJvZHkpOworICAgICAgfSwgIkNvbnN1bWUgcmVxdWVzdCdzIGJvZHkgYXMgIiArIGJvZHlUeXBl
KTsKKyAgICB9CisKKyAgICB2YXIgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTsKKyAgICBmb3Jt
RGF0YS5hcHBlbmQoIm5hbWUiLCAidmFsdWUiKQorICAgIGNoZWNrUmVxdWVzdEJvZHkoIlRoaXMg
aXMgcmVxdWVzdCdzIGJvZHkiLCAidGV4dCIsIGNoZWNrQm9keVRleHQpOworICAgIGNoZWNrUmVx
dWVzdEJvZHkoIlRoaXMgaXMgcmVxdWVzdCdzIGJvZHkiLCAiYmxvYiIsIGNoZWNrQm9keUJsb2Ip
OworICAgIGNoZWNrUmVxdWVzdEJvZHkoIlRoaXMgaXMgcmVxdWVzdCdzIGJvZHkiLCAiYXJyYXlC
dWZmZXIiLCBjaGVja0JvZHlBcnJheUJ1ZmZlcik7CisgICAgY2hlY2tSZXF1ZXN0Qm9keShKU09O
LnN0cmluZ2lmeSgiVGhpcyBpcyByZXF1ZXN0J3MgYm9keSIpLCAianNvbiIsIGNoZWNrQm9keUpT
T04pOworICAgIGNoZWNrUmVxdWVzdEJvZHkoZm9ybURhdGEsICJmb3JtRGF0YSIsIGNoZWNrQm9k
eUZvcm1EYXRhKTsKKworICAgIHZhciBnb29kSlNPTlZhbHVlcyA9IFsibnVsbCIsICIxIiwgInRy
dWUiLCAiXCJzdHJpbmdcIiJdOworICAgIGdvb2RKU09OVmFsdWVzLmZvckVhY2goZnVuY3Rpb24o
dmFsdWUpIHsKKyAgICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgICAgIHZh
ciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsibWV0aG9kIjogIlBPU1QiLCAiYm9keSI6IHZh
bHVlfSk7CisgICAgICAgIHJldHVybiByZXF1ZXN0Lmpzb24oKS50aGVuKGZ1bmN0aW9uKHYpIHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHYsIEpTT04ucGFyc2UodmFsdWUpKTsKKyAgICAgICAg
fSk7CisgICAgICB9LCAiQ29uc3VtZSBKU09OIGZyb20gdGV4dDogJyIgKyBKU09OLnN0cmluZ2lm
eSh2YWx1ZSkgKyAiJyIpOworICAgIH0pOworCisgICAgdmFyIGJhZEpTT05WYWx1ZXMgPSBbInVu
ZGVmaW5lZCIsICJ7IiwgImEiLCAiWyJdOworICAgIGJhZEpTT05WYWx1ZXMuZm9yRWFjaChmdW5j
dGlvbih2YWx1ZSkgeworICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICAg
ICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJtZXRob2QiOiAiUE9TVCIsICJib2R5
IjogInsifSk7CisgICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModGVzdCwgbmV3IFN5bnRh
eEVycm9yKCksIHJlcXVlc3QuanNvbigpKTsKKyAgICAgIH0sICJUcnlpbmcgdG8gY29uc3VtZSBi
YWQgSlNPTiB0ZXh0IGFzIEpTT046ICciICsgdmFsdWUgKyAiJyIpOworICAgIH0pOworICAgIDwv
c2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlz
dHVyYmVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdhNDBkZDZiMWQzMTE5N2FhZTViMjBkZDkxZTViMzYzYjRiMGJhNmEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDcgQEAKKworUEFTUyBSZXF1ZXN0IHdpdGhvdXQgYm9keSBjYW5ub3QgYmUgZGlzdHVy
YmVkIAorUEFTUyBDaGVjayBjbG9uaW5nIGEgZGlzdHVyYmVkIHJlcXVlc3QgCitQQVNTIENoZWNr
IGNyZWF0aW5nIGEgbmV3IHJlcXVlc3QgZnJvbSBhIGRpc3R1cmJlZCByZXF1ZXN0IAorUEFTUyBJ
bnB1dCByZXF1ZXN0IHVzZWQgZm9yIGNyZWF0aW5nIG5ldyByZXF1ZXN0IGJlY2FtZSBkaXN0dXJi
ZWQgCitQQVNTIENoZWNrIGNvbnN1bWluZyBhIGRpc3R1cmJlZCByZXF1ZXN0IAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZGlzdHVyYmVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTU4ZGVmNDE3NjhiN2ZjZGNjMzY0MmRmYWRmNzNmNDQxNGE0NWI5
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1kaXN0dXJiZWQuaHRtbApAQCAtMCww
ICsxLDU1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlcXVlc3QgZGlzdHVyYmVkPC90aXRsZT4KKyAg
ICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8j
cmVxdWVzdCI+CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVj
LndoYXR3Zy5vcmcvI2JvZHktbWl4aW4iPgorICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9
IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4K
KyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgICB2YXIgaW5pdFZhbHVl
c0RpY3QgPSB7Im1ldGhvZCIgOiAiUE9TVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImJvZHkiIDogIlJlcXVlc3QncyBib2R5IgorICAgICAgfTsKKworICAgICAgdmFyIG5vQm9keUNv
bnN1bWVkID0gbmV3IFJlcXVlc3QoIiIpOworICAgICAgbm9Cb2R5Q29uc3VtZWQuYmxvYigpOwor
ICAgICAgdmFyIGJvZHlDb25zdW1lZCA9IG5ldyBSZXF1ZXN0KCIiLCBpbml0VmFsdWVzRGljdCk7
CisgICAgICBib2R5Q29uc3VtZWQuYmxvYigpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewor
ICAgICAgICBhc3NlcnRfZmFsc2Uobm9Cb2R5Q29uc3VtZWQuYm9keVVzZWQgLCAiYm9keVVzZWQg
aXMgZmFsc2Ugd2hlbiByZXF1ZXN0IGlzIG5vdCBkaXN0dXJiZWQiKTsKKyAgICAgICAgdHJ5IHsK
KyAgICAgICAgICBub0JvZHlDb25zdW1lZC5jbG9uZSgpOworICAgICAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiQ2FuIHVzZSByZXF1ZXN0IG5vdCBkaXN0dXJi
ZWQgZm9yIGNyZWF0aW5nIG9yIGNsb25pbmcgcmVxdWVzdCIpOworICAgICAgICB9CisgICAgICB9
LCAiUmVxdWVzdCB3aXRob3V0IGJvZHkgY2Fubm90IGJlIGRpc3R1cmJlZCIpOworCisgICAgICB0
ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdHJ1ZShib2R5Q29uc3VtZWQuYm9keVVz
ZWQgLCAiYm9keVVzZWQgaXMgdHJ1ZSB3aGVuIHJlcXVlc3QgaXMgZGlzdHVyYmVkIik7CisgICAg
ICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgYm9keUNvbnN1
bWVkLmNsb25lKCk7IH0pOworICAgICAgfSwgIkNoZWNrIGNsb25pbmcgYSBkaXN0dXJiZWQgcmVx
dWVzdCIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdHJ1ZShi
b2R5Q29uc3VtZWQuYm9keVVzZWQgLCAiYm9keVVzZWQgaXMgdHJ1ZSB3aGVuIHJlcXVlc3QgaXMg
ZGlzdHVyYmVkIik7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5j
dGlvbigpIHsgbmV3IFJlcXVlc3QoYm9keUNvbnN1bWVkKTsgfSk7CisgICAgICB9LCAiQ2hlY2sg
Y3JlYXRpbmcgYSBuZXcgcmVxdWVzdCBmcm9tIGEgZGlzdHVyYmVkIHJlcXVlc3QiKTsKKworICAg
ICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGJvZHlSZXF1ZXN0ID0gbmV3IFJlcXVl
c3QoIiIsIGluaXRWYWx1ZXNEaWN0KTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKGJvZHlSZXF1ZXN0
LmJvZHlVc2VkICwgImJvZHlVc2VkIGlzIGZhbHNlIHdoZW4gcmVxdWVzdCBpcyBub3QgZGlzdHVy
YmVkIik7CisgICAgICAgIHZhciByZXF1ZXN0RnJvbVJlcXVlc3QgPSBuZXcgUmVxdWVzdChib2R5
UmVxdWVzdCk7CisgICAgICAgIGFzc2VydF90cnVlKGJvZHlSZXF1ZXN0LmJvZHlVc2VkICwgImJv
ZHlVc2VkIGlzIHRydWUgd2hlbiByZXF1ZXN0IGlzIGRpc3R1cmJlZCIpOworICAgICAgfSwgIklu
cHV0IHJlcXVlc3QgdXNlZCBmb3IgY3JlYXRpbmcgbmV3IHJlcXVlc3QgYmVjYW1lIGRpc3R1cmJl
ZCIpOworCisgICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgeworICAgICAgICBhc3Nl
cnRfdHJ1ZShib2R5Q29uc3VtZWQuYm9keVVzZWQgLCAiYm9keVVzZWQgaXMgdHJ1ZSB3aGVuIHJl
cXVlc3QgaXMgZGlzdHVyYmVkIik7CisgICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModGVz
dCwgbmV3IFR5cGVFcnJvcigpLCBib2R5Q29uc3VtZWQuYmxvYigpKTsKKyAgICAgIH0sICJDaGVj
ayBjb25zdW1pbmcgYSBkaXN0dXJiZWQgcmVxdWVzdCIpOworICAgIDwvc2NyaXB0PgorICA8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3ItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVxdWVzdC9yZXF1ZXN0LWVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYTYxN2FlOWM3
OGZhYTkzNWNlOTc5MTgxY2U0OTFlODRmYWM0ZWIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACisKK1BBU1MgUmVxdWVz
dEluaXQncyB3aW5kb3cgaXMgbm90IG51bGwgCitQQVNTIElucHV0IFVSTCBpcyBub3QgdmFsaWQg
CitQQVNTIElucHV0IFVSTCBoYXMgY3JlZGVudGlhbHMgCitQQVNTIFJlcXVlc3RJbml0J3MgbW9k
ZSBpcyBuYXZpZ2F0ZSAKK1BBU1MgUmVxdWVzdEluaXQncyByZWZlcnJlciBpcyBpbnZhbGlkIAor
UEFTUyBSZXF1ZXN0SW5pdCdzIHJlZmVycmVyIGhhcyBpbnZhbGlkIG9yaWdpbiAKK1BBU1MgUmVx
dWVzdEluaXQncyBtZXRob2QgaXMgaW52YWxpZCAKK1BBU1MgUmVxdWVzdEluaXQncyBtZXRob2Qg
aXMgZm9yYmlkZGVuIAorUEFTUyBSZXF1ZXN0SW5pdCdzIG1vZGUgaXMgbm8tY29ycyBhbmQgbWV0
aG9kIGlzIG5vdCBzaW1wbGUgCitQQVNTIFJlcXVlc3RJbml0J3MgbW9kZSBpcyBuby1jb3JzIGFu
ZCBpbnRlZ3JpdHkgaXMgbm90IGVtcHR5IAorUEFTUyBCYWQgcmVmZXJyZXJQb2xpY3kgaW5pdCBw
YXJhbWV0ZXIgdmFsdWUgCitQQVNTIEJhZCBtb2RlIGluaXQgcGFyYW1ldGVyIHZhbHVlIAorUEFT
UyBCYWQgY3JlZGVudGlhbHMgaW5pdCBwYXJhbWV0ZXIgdmFsdWUgCitQQVNTIEJhZCBjYWNoZSBp
bml0IHBhcmFtZXRlciB2YWx1ZSAKK1BBU1MgQmFkIHJlZGlyZWN0IGluaXQgcGFyYW1ldGVyIHZh
bHVlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3IuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVz
dC1lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5YWQ2OTUwYTgzN2JlZjAwZTQ5OGY4OGI3YzZlYTVm
NDVkNGVhNTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtZXJyb3IuaHRtbApAQCAt
MCwwICsxLDc1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlcXVlc3QgZXJyb3I8L3RpdGxlPgorICAg
IDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNy
ZXF1ZXN0Ij4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMu
d2hhdHdnLm9yZy8jYm9keS1taXhpbiI+CisgICAgPG1ldGEgbmFtZT0iYXV0aG9yIiB0aXRsZT0i
Q2Fub24gUmVzZWFyY2ggRnJhbmNlIiBocmVmPSJodHRwczovL3d3dy5jcmYuY2Fub24uZnIiPgor
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgIHRlc3QoZnVuY3Rpb24o
KSB7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpICwgZnVuY3Rpb24oKSB7
IG5ldyBSZXF1ZXN0KCIiLCB7IndpbmRvdyIgOiAid2hhdGV2ZXIifSk7IH0sCisgICAgICAgICAg
IkV4cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uIik7CisgICAgICB9LCJSZXF1ZXN0SW5pdCdzIHdp
bmRvdyBpcyBub3QgbnVsbCIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBh
c3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVzdCgi
aHR0cDovLzpub3QgYSB2YWxpZCBVUkwiKTsgfSwKKyAgICAgICAgICAiRXhwZWN0IFR5cGVFcnJv
ciBleGNlcHRpb24iKTsKKyAgICAgIH0sIklucHV0IFVSTCBpcyBub3QgdmFsaWQiKQorCisgICAg
ICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3Io
KSAsIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVzdCgiaHR0cDovL3VzZXI6cGFzc0B0ZXN0LnVybCIp
OyB9LAorICAgICAgICAgICJFeHBlY3QgVHlwZUVycm9yIGV4Y2VwdGlvbiIpOworICAgICAgfSwi
SW5wdXQgVVJMIGhhcyBjcmVkZW50aWFscyIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgewor
ICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSAsIGZ1bmN0aW9uKCkgeyBuZXcg
UmVxdWVzdCgiIiwgeyJtb2RlIiA6ICJuYXZpZ2F0ZSJ9KTsgfSwKKyAgICAgICAgICAiRXhwZWN0
IFR5cGVFcnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sIlJlcXVlc3RJbml0J3MgbW9kZSBpcyBu
YXZpZ2F0ZSIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdGhy
b3dzKG5ldyBUeXBlRXJyb3IoKSAsIGZ1bmN0aW9uKCkgeyBuZXcgUmVxdWVzdCgiIiwgeyJyZWZl
cnJlciIgOiAiaHR0cDovLzpub3QgYSB2YWxpZCBVUkwifSk7IH0sCisgICAgICAgICAgIkV4cGVj
dCBUeXBlRXJyb3IgZXhjZXB0aW9uIik7CisgICAgICB9LCJSZXF1ZXN0SW5pdCdzIHJlZmVycmVy
IGlzIGludmFsaWQiKTsKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0
X3Rocm93cyhuZXcgVHlwZUVycm9yKCkgLCBmdW5jdGlvbigpIHsgbmV3IFJlcXVlc3QoIiIsIHsi
cmVmZXJyZXIiIDogImh0dHA6Ly90ZXN0LnVybCJ9KTsgfSwKKyAgICAgICAgICAiRXhwZWN0IFR5
cGVFcnJvciBleGNlcHRpb24iKTsKKyAgICAgIH0sIlJlcXVlc3RJbml0J3MgcmVmZXJyZXIgaGFz
IGludmFsaWQgb3JpZ2luIikKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNz
ZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCkgLCBmdW5jdGlvbigpIHsgbmV3IFJlcXVlc3QoIiIs
IHsibWV0aG9kIiA6ICJJTiBWQUxJRCJ9KTsgfSwKKyAgICAgICAgICAiRXhwZWN0IFR5cGVFcnJv
ciBleGNlcHRpb24iKTsKKyAgICAgIH0sICJSZXF1ZXN0SW5pdCdzIG1ldGhvZCBpcyBpbnZhbGlk
Iik7CisKKyAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3
IFR5cGVFcnJvcigpICwgZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCIiLCB7Im1ldGhvZCIgOiAi
VFJBQ0UifSk7IH0sCisgICAgICAgICAgIkV4cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uIik7Cisg
ICAgICB9LCAiUmVxdWVzdEluaXQncyBtZXRob2QgaXMgZm9yYmlkZGVuIik7CisKKyAgICAgIHRl
c3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpICwg
ZnVuY3Rpb24oKSB7IG5ldyBSZXF1ZXN0KCIiLCB7Im1vZGUiIDogIm5vLWNvcnMiLCAibWV0aG9k
IiA6ICJQVVQifSk7IH0sCisgICAgICAgICAgIkV4cGVjdCBUeXBlRXJyb3IgZXhjZXB0aW9uIik7
CisgICAgICB9LCJSZXF1ZXN0SW5pdCdzIG1vZGUgaXMgbm8tY29ycyBhbmQgbWV0aG9kIGlzIG5v
dCBzaW1wbGUiKTsKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3Ro
cm93cyhuZXcgVHlwZUVycm9yKCkgLAorICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkg
eyBuZXcgUmVxdWVzdCgiIiwgeyJtb2RlIiA6ICJuby1jb3JzIiwgImludGVncml0eSIgOiAibm90
ICBhbiBlbXB0eSBzdHJpbmcifSk7IH0sCisgICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdCBU
eXBlRXJyb3IgZXhjZXB0aW9uIik7CisgICAgICB9LCJSZXF1ZXN0SW5pdCdzIG1vZGUgaXMgbm8t
Y29ycyBhbmQgaW50ZWdyaXR5IGlzIG5vdCBlbXB0eSIpOworCisgICAgICB2YXIgcGFyYW1ldGVy
cyA9IFsicmVmZXJyZXJQb2xpY3kiLCAibW9kZSIsICJjcmVkZW50aWFscyIsICJjYWNoZSIsICJy
ZWRpcmVjdCJdOworICAgICAgcGFyYW1ldGVycy5mb3JFYWNoKGZ1bmN0aW9uKHBhcmFtZXRlcikg
eworICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBvcHRpb25zID0geyB9
OworICAgICAgICAgIG9wdGlvbnNbcGFyYW1ldGVyXSA9ICJCQUQiOworICAgICAgICAgIGFzc2Vy
dF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCAoKSA9PiBuZXcgUmVxdWVzdCgiIiwgb3B0aW9ucykp
OworICAgICAgICB9LCJCYWQgIiArIHBhcmFtZXRlciArIiBpbml0IHBhcmFtZXRlciB2YWx1ZSIp
OworICAgICAgfSk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFk
ZXJzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjFkYzRlNzMyMWRlMjZjN2ZmOTFhMGQ2ZTQy
ZTJjOWJlZDYwMWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWhlYWRlcnMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTYgQEAKKworUEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBo
ZWFkZXIgIkNvbnRlbnQtVHlwZTogT0siIAorUEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFk
ZXIgIlBvdGF0bzogT0siIAorUEFTUyBBZGRpbmcgdmFsaWQgcmVxdWVzdCBoZWFkZXIgInByb3h5
OiBPSyIgCitQQVNTIEFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRlciAicHJveHlhOiBPSyIgCitQ
QVNTIEFkZGluZyB2YWxpZCByZXF1ZXN0IGhlYWRlciAic2VjOiBPSyIgCitQQVNTIEFkZGluZyB2
YWxpZCByZXF1ZXN0IGhlYWRlciAic2VjYjogT0siIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1
ZXN0IGhlYWRlciAiQWNjZXB0LUNoYXJzZXQ6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVx
dWVzdCBoZWFkZXIgImFjY2VwdC1jaGFyc2V0OiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlkIHJl
cXVlc3QgaGVhZGVyICJBQ0NFUFQtRU5DT0RJTkc6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQg
cmVxdWVzdCBoZWFkZXIgIkFjY2VwdC1FbmNvZGluZzogS08iIAorUEFTUyBBZGRpbmcgaW52YWxp
ZCByZXF1ZXN0IGhlYWRlciAiQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1IZWFkZXJzOiBLTyIgCitQ
QVNTIEFkZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0
LU1ldGhvZDogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQ29ubmVj
dGlvbjogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQ29udGVudC1M
ZW5ndGg6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIkNvb2tpZTog
S08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiQ29va2llMjogS08iIAor
UEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiRGF0ZTogS08iIAorUEFTUyBBZGRp
bmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiRE5UOiBLTyIgCitQQVNTIEFkZGluZyBpbnZhbGlk
IHJlcXVlc3QgaGVhZGVyICJFeHBlY3Q6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVz
dCBoZWFkZXIgIkhvc3Q6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIg
IktlZXAtQWxpdmU6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIk9y
aWdpbjogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiUmVmZXJlcjog
S08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAiVEU6IEtPIiAKK1BBU1Mg
QWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlRyYWlsZXI6IEtPIiAKK1BBU1MgQWRkaW5n
IGludmFsaWQgcmVxdWVzdCBoZWFkZXIgIlRyYW5zZmVyLUVuY29kaW5nOiBLTyIgCitQQVNTIEFk
ZGluZyBpbnZhbGlkIHJlcXVlc3QgaGVhZGVyICJVcGdyYWRlOiBLTyIgCitQQVNTIEFkZGluZyBp
bnZhbGlkIHJlcXVlc3QgaGVhZGVyICJWaWE6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFsaWQgcmVx
dWVzdCBoZWFkZXIgIlByb3h5LTogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhl
YWRlciAicHJveHktYTogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAi
U2VjLTogS08iIAorUEFTUyBBZGRpbmcgaW52YWxpZCByZXF1ZXN0IGhlYWRlciAic2VjLWI6IEtP
IiAKK1BBU1MgQWRkaW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgIkFjY2VwdDogT0si
IAorUEFTUyBBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiQWNjZXB0LUxhbmd1
YWdlOiBPSyIgCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250
ZW50LWxhbmd1YWdlOiBPSyIgCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVh
ZGVyICJjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIgCitQ
QVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LXR5cGU6IGFw
cGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IiAKK1BBU1MgQWRk
aW5nIHZhbGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgImNvbnRlbnQtdHlwZTogbXVsdGlwYXJ0
L2Zvcm0tZGF0YSIgCitQQVNTIEFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJj
b250ZW50LXR5cGU6IG11bHRpcGFydC9mb3JtLWRhdGE7Y2hhcnNldD1VVEYtOCIgCitQQVNTIEFk
ZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJjb250ZW50LVRZUEU6IHRleHQvcGxh
aW4iIAorUEFTUyBBZGRpbmcgdmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiQ09OVEVOVC10
eXBlOiB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiIAorUEFTUyBBZGRpbmcgaW52YWxpZCBuby1j
b3JzIHJlcXVlc3QgaGVhZGVyICJDb250ZW50LVR5cGU6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFs
aWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAiUG90YXRvOiBLTyIgCitQQVNTIEFkZGluZyBpbnZh
bGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgInByb3h5OiBLTyIgCitQQVNTIEFkZGluZyBpbnZh
bGlkIG5vLWNvcnMgcmVxdWVzdCBoZWFkZXIgInByb3h5YTogS08iIAorUEFTUyBBZGRpbmcgaW52
YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyICJzZWM6IEtPIiAKK1BBU1MgQWRkaW5nIGludmFs
aWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciAic2VjYjogS08iIAorUEFTUyBDaGVjayB0aGF0IHJl
cXVlc3QgY29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgaW5pdCBw
YXJhbWV0ZXIgCitQQVNTIENoZWNrIHRoYXQgbm8tY29ycyByZXF1ZXN0IGNvbnN0cnVjdG9yIGlz
IGZpbHRlcmluZyBoZWFkZXJzIHByb3ZpZGVkIGFzIGluaXQgcGFyYW1ldGVyIAorUEFTUyBDaGVj
ayB0aGF0IG5vLWNvcnMgcmVxdWVzdCBjb25zdHJ1Y3RvciBpcyBmaWx0ZXJpbmcgaGVhZGVycyBw
cm92aWRlZCBhcyBwYXJ0IG9mIHJlcXVlc3QgcGFyYW1ldGVyIAorUEFTUyBSZXF1ZXN0IHNob3Vs
ZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBpbml0IHJlcXVlc3QgCitQQVNTIFJlcXVl
c3Qgc2hvdWxkIG5vdCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIHRoZSBpbml0IHJlcXVlc3Qg
aWYgaW5pdCBoZWFkZXJzIGFyZSBwcm92aWRlZCAKK1BBU1MgUmVxdWVzdCBzaG91bGQgZ2V0IGl0
cyBjb250ZW50LXR5cGUgZnJvbSB0aGUgYm9keSBpZiBub25lIGlzIHByb3ZpZGVkIAorUEFTUyBS
ZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIGluaXQgaGVhZGVycyBpZiBv
bmUgaXMgcHJvdmlkZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1oZWFkZXJzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtaGVhZGVycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZGQ2MDFjYzQ2NmFmMDky
Y2QzMGY1ZDFjYzIxMDlhOGZhOTNmNDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
aGVhZGVycy5odG1sCkBAIC0wLDAgKzEsMTUwIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgor
ICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlcXVlc3Qg
SGVhZGVyczwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRj
aC5zcGVjLndoYXR3Zy5vcmcvI3JlcXVlc3QiPgorICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0
bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZy
Ij4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgICB2YXIgdmFsaWRS
ZXF1ZXN0SGVhZGVycyA9IFsKKyAgICAgICAgWyJDb250ZW50LVR5cGUiLCAiT0siXSwKKyAgICAg
ICAgWyJQb3RhdG8iLCAiT0siXSwKKyAgICAgICAgWyJwcm94eSIsICJPSyJdLAorICAgICAgICBb
InByb3h5YSIsICJPSyJdLAorICAgICAgICBbInNlYyIsICJPSyJdLAorICAgICAgICBbInNlY2Ii
LCAiT0siXSwKKyAgICAgIF07CisgICAgICB2YXIgaW52YWxpZFJlcXVlc3RIZWFkZXJzID0gWwor
ICAgICAgICBbIkFjY2VwdC1DaGFyc2V0IiwgIktPIl0sCisgICAgICAgIFsiYWNjZXB0LWNoYXJz
ZXQiLCAiS08iXSwKKyAgICAgICAgWyJBQ0NFUFQtRU5DT0RJTkciLCAiS08iXSwKKyAgICAgICAg
WyJBY2NlcHQtRW5jb2RpbmciLCAiS08iXSwKKyAgICAgICAgWyJBY2Nlc3MtQ29udHJvbC1SZXF1
ZXN0LUhlYWRlcnMiLCAiS08iXSwKKyAgICAgICAgWyJBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LU1l
dGhvZCIsICJLTyJdLAorICAgICAgICBbIkNvbm5lY3Rpb24iLCAiS08iXSwKKyAgICAgICAgWyJD
b250ZW50LUxlbmd0aCIsICJLTyJdLAorICAgICAgICBbIkNvb2tpZSIsICJLTyJdLAorICAgICAg
ICBbIkNvb2tpZTIiLCAiS08iXSwKKyAgICAgICAgWyJEYXRlIiwgIktPIl0sCisgICAgICAgIFsi
RE5UIiwgIktPIl0sCisgICAgICAgIFsiRXhwZWN0IiwgIktPIl0sCisgICAgICAgIFsiSG9zdCIs
ICJLTyJdLAorICAgICAgICBbIktlZXAtQWxpdmUiLCAiS08iXSwKKyAgICAgICAgWyJPcmlnaW4i
LCAiS08iXSwKKyAgICAgICAgWyJSZWZlcmVyIiwgIktPIl0sCisgICAgICAgIFsiVEUiLCAiS08i
XSwKKyAgICAgICAgWyJUcmFpbGVyIiwgIktPIl0sCisgICAgICAgIFsiVHJhbnNmZXItRW5jb2Rp
bmciLCAiS08iXSwKKyAgICAgICAgWyJVcGdyYWRlIiwgIktPIl0sCisgICAgICAgIFsiVmlhIiwg
IktPIl0sCisgICAgICAgIFsiUHJveHktIiwgIktPIl0sCisgICAgICAgIFsicHJveHktYSIsICJL
TyJdLAorICAgICAgICBbIlNlYy0iLCAiS08iXSwKKyAgICAgICAgWyJzZWMtYiIsICJLTyJdLAor
ICAgICAgXTsKKworICAgICAgdmFyIHZhbGlkUmVxdWVzdE5vQ29yc0hlYWRlcnMgPSBbCisgICAg
ICAgIFsiQWNjZXB0IiwgIk9LIl0sCisgICAgICAgIFsiQWNjZXB0LUxhbmd1YWdlIiwgIk9LIl0s
CisgICAgICAgIFsiY29udGVudC1sYW5ndWFnZSIsICJPSyJdLAorICAgICAgICBbImNvbnRlbnQt
dHlwZSIsICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiXSwKKyAgICAgICAgWyJj
b250ZW50LXR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9
VVRGLTgiXSwKKyAgICAgICAgWyJjb250ZW50LXR5cGUiLCAibXVsdGlwYXJ0L2Zvcm0tZGF0YSJd
LAorICAgICAgICBbImNvbnRlbnQtdHlwZSIsICJtdWx0aXBhcnQvZm9ybS1kYXRhO2NoYXJzZXQ9
VVRGLTgiXSwKKyAgICAgICAgWyJjb250ZW50LVRZUEUiLCAidGV4dC9wbGFpbiJdLAorICAgICAg
ICBbIkNPTlRFTlQtdHlwZSIsICJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiXSwKKyAgICAgIF07
CisgICAgICB2YXIgaW52YWxpZFJlcXVlc3ROb0NvcnNIZWFkZXJzID0gWworICAgICAgICBbIkNv
bnRlbnQtVHlwZSIsICJLTyJdLAorICAgICAgICBbIlBvdGF0byIsICJLTyJdLAorICAgICAgICBb
InByb3h5IiwgIktPIl0sCisgICAgICAgIFsicHJveHlhIiwgIktPIl0sCisgICAgICAgIFsic2Vj
IiwgIktPIl0sCisgICAgICAgIFsic2VjYiIsICJLTyJdLAorICAgICAgXTsKKworICAgICAgdmFs
aWRSZXF1ZXN0SGVhZGVycy5mb3JFYWNoKGZ1bmN0aW9uKGhlYWRlcikgeworICAgICAgICB0ZXN0
KGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIpOwor
ICAgICAgICAgIHJlcXVlc3QuaGVhZGVycy5zZXQoaGVhZGVyWzBdLCBoZWFkZXJbMV0pOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldChoZWFkZXJbMF0pLCBoZWFk
ZXJbMV0pOworICAgICAgICB9LCAiQWRkaW5nIHZhbGlkIHJlcXVlc3QgaGVhZGVyIFwiIiArIGhl
YWRlclswXSArICI6ICIgKyBoZWFkZXJbMV0gKyAiXCIiKTsKKyAgICAgIH0pOworICAgICAgaW52
YWxpZFJlcXVlc3RIZWFkZXJzLmZvckVhY2goZnVuY3Rpb24oaGVhZGVyKSB7CisgICAgICAgIHRl
c3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIik7
CisgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzLnNldChoZWFkZXJbMF0sIGhlYWRlclsxXSk7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KGhlYWRlclswXSksIG51
bGwpOworICAgICAgICB9LCAiQWRkaW5nIGludmFsaWQgcmVxdWVzdCBoZWFkZXIgXCIiICsgaGVh
ZGVyWzBdICsgIjogIiArIGhlYWRlclsxXSArICJcIiIpOworICAgICAgfSk7CisKKyAgICAgIHZh
bGlkUmVxdWVzdE5vQ29yc0hlYWRlcnMuZm9yRWFjaChmdW5jdGlvbihoZWFkZXIpIHsKKyAgICAg
ICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgcmVxdWVzdE5vQ29ycyA9IG5ldyBS
ZXF1ZXN0KCIiLCB7Im1vZGUiOiAibm8tY29ycyJ9KTsKKyAgICAgICAgICByZXF1ZXN0Tm9Db3Jz
LmhlYWRlcnMuc2V0KGhlYWRlclswXSwgaGVhZGVyWzFdKTsKKyAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHJlcXVlc3ROb0NvcnMuaGVhZGVycy5nZXQoaGVhZGVyWzBdKSwgaGVhZGVyWzFdKTsKKyAg
ICAgICAgfSwgIkFkZGluZyB2YWxpZCBuby1jb3JzIHJlcXVlc3QgaGVhZGVyIFwiIiArIGhlYWRl
clswXSArICI6ICIgKyBoZWFkZXJbMV0gKyAiXCIiKTsKKyAgICAgIH0pOworICAgICAgaW52YWxp
ZFJlcXVlc3ROb0NvcnNIZWFkZXJzLmZvckVhY2goZnVuY3Rpb24oaGVhZGVyKSB7CisgICAgICAg
IHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHJlcXVlc3ROb0NvcnMgPSBuZXcgUmVx
dWVzdCgiIiwgeyJtb2RlIjogIm5vLWNvcnMifSk7CisgICAgICAgICAgcmVxdWVzdE5vQ29ycy5o
ZWFkZXJzLnNldChoZWFkZXJbMF0sIGhlYWRlclsxXSk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZXF1ZXN0Tm9Db3JzLmhlYWRlcnMuZ2V0KGhlYWRlclswXSksIG51bGwpOworICAgICAgICB9
LCAiQWRkaW5nIGludmFsaWQgbm8tY29ycyByZXF1ZXN0IGhlYWRlciBcIiIgKyBoZWFkZXJbMF0g
KyAiOiAiICsgaGVhZGVyWzFdICsgIlwiIik7CisgICAgICB9KTsKKworICAgICAgdGVzdChmdW5j
dGlvbigpIHsKKyAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJDb29raWUyIiwg
InBvdGF0byJdXSk7CisgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVh
ZGVycyI6IGhlYWRlcnN9KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMu
Z2V0KCJDb29raWUyIiksIG51bGwpOworICAgICAgfSwgIkNoZWNrIHRoYXQgcmVxdWVzdCBjb25z
dHJ1Y3RvciBpcyBmaWx0ZXJpbmcgaGVhZGVycyBwcm92aWRlZCBhcyBpbml0IHBhcmFtZXRlciIp
OworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBI
ZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIsICJwb3RhdG8iXV0pOworICAgICAgICB2YXIgcmVxdWVz
dCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiOiBoZWFkZXJzLCAibW9kZSI6ICJuby1jb3Jz
In0pOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcXVlc3QuaGVhZGVycy5nZXQoIkNvbnRlbnQt
VHlwZSIpLCBudWxsKTsKKyAgICAgIH0sICJDaGVjayB0aGF0IG5vLWNvcnMgcmVxdWVzdCBjb25z
dHJ1Y3RvciBpcyBmaWx0ZXJpbmcgaGVhZGVycyBwcm92aWRlZCBhcyBpbml0IHBhcmFtZXRlciIp
OworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBI
ZWFkZXJzKFtbIkNvbnRlbnQtVHlwZSIsICJwb3RhdG8iXV0pOworICAgICAgICB2YXIgaW5pdGlh
bFJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJoZWFkZXJzIjogaGVhZGVyc30pOworICAgICAg
ICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGluaXRpYWxSZXF1ZXN0LCB7Im1vZGUiOiAibm8t
Y29ycyJ9KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCJDb250
ZW50LVR5cGUiKSwgbnVsbCk7CisgICAgICB9LCAiQ2hlY2sgdGhhdCBuby1jb3JzIHJlcXVlc3Qg
Y29uc3RydWN0b3IgaXMgZmlsdGVyaW5nIGhlYWRlcnMgcHJvdmlkZWQgYXMgcGFydCBvZiByZXF1
ZXN0IHBhcmFtZXRlciIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIg
aW5pdGlhbEhlYWRlcnMgPSBuZXcgSGVhZGVycyhbWyJDb250ZW50LVR5cGUiLCAicG90YXRvIl1d
KTsKKyAgICAgICAgdmFyIGluaXRpYWxSZXF1ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVy
cyIgOiBpbml0aWFsSGVhZGVyc30pOworICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0
KGluaXRpYWxSZXF1ZXN0KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMu
Z2V0KCJDb250ZW50LVR5cGUiKSwgInBvdGF0byIpOworICAgICAgfSwgIlJlcXVlc3Qgc2hvdWxk
IGdldCBpdHMgY29udGVudC10eXBlIGZyb20gdGhlIGluaXQgcmVxdWVzdCIpOworCisgICAgICB0
ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgaW5pdGlhbEhlYWRlcnMgPSBuZXcgSGVhZGVy
cyhbWyJDb250ZW50LVR5cGUiLCAicG90YXRvIl1dKTsKKyAgICAgICAgdmFyIGluaXRpYWxSZXF1
ZXN0ID0gbmV3IFJlcXVlc3QoIiIsIHsiaGVhZGVycyIgOiBpbml0aWFsSGVhZGVyc30pOworICAg
ICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKFtdKTsKKyAgICAgICAgdmFyIHJlcXVlc3Qg
PSBuZXcgUmVxdWVzdChpbml0aWFsUmVxdWVzdCwgeyJoZWFkZXJzIiA6IGhlYWRlcnN9KTsKKyAg
ICAgICAgYXNzZXJ0X2ZhbHNlKHJlcXVlc3QuaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpKTsK
KyAgICAgIH0sICJSZXF1ZXN0IHNob3VsZCBub3QgZ2V0IGl0cyBjb250ZW50LXR5cGUgZnJvbSB0
aGUgaW5pdCByZXF1ZXN0IGlmIGluaXQgaGVhZGVycyBhcmUgcHJvdmlkZWQiKTsKKworICAgICAg
dGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGluaXRpYWxIZWFkZXJzID0gbmV3IEhlYWRl
cnMoW1siQ29udGVudC1UeXBlLUV4dHJhIiwgInBvdGF0byJdXSk7CisgICAgICAgIHZhciBpbml0
aWFsUmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiIDogaW5pdGlhbEhlYWRlcnMs
ICJib2R5IiA6ICJ0aGlzIGlzIG15IHBsYXRlIiwgIm1ldGhvZCIgOiAiUE9TVCJ9KTsKKyAgICAg
ICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdChpbml0aWFsUmVxdWVzdCk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIiksICJ0ZXh0L3Bs
YWluO2NoYXJzZXQ9VVRGLTgiKTsKKyAgICAgIH0sICJSZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNv
bnRlbnQtdHlwZSBmcm9tIHRoZSBib2R5IGlmIG5vbmUgaXMgcHJvdmlkZWQiKTsKKworICAgICAg
dGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGluaXRpYWxIZWFkZXJzID0gbmV3IEhlYWRl
cnMoW1siQ29udGVudC1UeXBlIiwgInBvdGF0byJdXSk7CisgICAgICAgIHZhciBpbml0aWFsUmVx
dWVzdCA9IG5ldyBSZXF1ZXN0KCIiLCB7ImhlYWRlcnMiIDogaW5pdGlhbEhlYWRlcnMsICJib2R5
IiA6ICJ0aGlzIGlzIG15IHBsYXRlIiwgIm1ldGhvZCIgOiAiUE9TVCJ9KTsKKyAgICAgICAgdmFy
IHJlcXVlc3QgPSBuZXcgUmVxdWVzdChpbml0aWFsUmVxdWVzdCk7CisgICAgICAgIGFzc2VydF9l
cXVhbHMocmVxdWVzdC5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIiksICJwb3RhdG8iKTsKKyAg
ICAgIH0sICJSZXF1ZXN0IHNob3VsZCBnZXQgaXRzIGNvbnRlbnQtdHlwZSBmcm9tIGluaXQgaGVh
ZGVycyBpZiBvbmUgaXMgcHJvdmlkZWQiKTsKKworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaWRsLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1pZGwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiODMwNDAzODFlNDVkYTgxNjdj
MjE2OWY3MjZhODllNTc1MjJmOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaWRs
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUyIEBACisKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9lcXVh
bHM6IGNsYXNzIHN0cmluZyBvZiBSZXF1ZXN0IGV4cGVjdGVkICJbb2JqZWN0IEZ1bmN0aW9uXSIg
YnV0IGdvdCAiW29iamVjdCBSZXF1ZXN0Q29uc3RydWN0b3JdIgorUEFTUyBSZXF1ZXN0IGludGVy
ZmFjZSBvYmplY3QgbGVuZ3RoIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZSBvYmplY3QgbmFtZSAK
K1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1
Y3RvciIgcHJvcGVydHkgCitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbWV0aG9k
IGFzc2VydF9lcXVhbHM6IGdldHRlciBtdXN0IGJlIEZ1bmN0aW9uIGV4cGVjdGVkICJmdW5jdGlv
biIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBSZXF1ZXN0IGludGVyZmFjZTogYXR0cmlidXRl
IHVybCBhc3NlcnRfZXF1YWxzOiBnZXR0ZXIgbXVzdCBiZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVu
Y3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBoZWFkZXJzIGFzc2VydF9lcXVhbHM6IGdldHRlciBtdXN0IGJlIEZ1bmN0aW9uIGV4cGVj
dGVkICJmdW5jdGlvbiIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBSZXF1ZXN0IGludGVyZmFj
ZTogYXR0cmlidXRlIHR5cGUgYXNzZXJ0X2VxdWFsczogZ2V0dGVyIG11c3QgYmUgRnVuY3Rpb24g
ZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJlcXVlc3QgaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgZGVzdGluYXRpb24gYXNzZXJ0X2VxdWFsczogZ2V0dGVyIG11c3Qg
YmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlM
IFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVmZXJyZXIgYXNzZXJ0X2VxdWFsczogZ2V0
dGVyIG11c3QgYmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290ICJ1bmRlZmlu
ZWQiCitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgcmVmZXJyZXJQb2xpY3kgYXNz
ZXJ0X2VxdWFsczogZ2V0dGVyIG11c3QgYmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBi
dXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbW9k
ZSBhc3NlcnRfZXF1YWxzOiBnZXR0ZXIgbXVzdCBiZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rp
b24iIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0
ZSBjcmVkZW50aWFscyBhc3NlcnRfZXF1YWxzOiBnZXR0ZXIgbXVzdCBiZSBGdW5jdGlvbiBleHBl
Y3RlZCAiZnVuY3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUmVxdWVzdCBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBjYWNoZSBhc3NlcnRfZXF1YWxzOiBnZXR0ZXIgbXVzdCBiZSBGdW5jdGlv
biBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgUmVxdWVzdCBp
bnRlcmZhY2U6IGF0dHJpYnV0ZSByZWRpcmVjdCBhc3NlcnRfZXF1YWxzOiBnZXR0ZXIgbXVzdCBi
ZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwg
UmVxdWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpbnRlZ3JpdHkgYXNzZXJ0X2VxdWFsczogZ2V0
dGVyIG11c3QgYmUgRnVuY3Rpb24gZXhwZWN0ZWQgImZ1bmN0aW9uIiBidXQgZ290ICJ1bmRlZmlu
ZWQiCitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBvcGVyYXRpb24gY2xvbmUoKSAKK0ZBSUwgUmVx
dWVzdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBib2R5VXNlZCBhc3NlcnRfZXF1YWxzOiBnZXR0ZXIg
bXVzdCBiZSBGdW5jdGlvbiBleHBlY3RlZCAiZnVuY3Rpb24iIGJ1dCBnb3QgInVuZGVmaW5lZCIK
K0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBhcnJheUJ1ZmZlcigpIGFzc2VydF90
aHJvd3M6IGNhbGxpbmcgb3BlcmF0aW9uIHdpdGggdGhpcyA9IG51bGwgZGlkbid0IHRocm93IFR5
cGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIG1lbWJlckhv
bGRlck9iamVjdFttZW1iZXIubi4uLiIgZGlkIG5vdCB0aHJvdworRkFJTCBSZXF1ZXN0IGludGVy
ZmFjZTogb3BlcmF0aW9uIGJsb2IoKSBhc3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9wZXJhdGlvbiB3
aXRoIHRoaXMgPSBudWxsIGRpZG4ndCB0aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3RbbWVtYmVyLm4uLi4iIGRp
ZCBub3QgdGhyb3cKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBmb3JtRGF0YSgp
IGFzc2VydF90aHJvd3M6IGNhbGxpbmcgb3BlcmF0aW9uIHdpdGggdGhpcyA9IG51bGwgZGlkbid0
IHRocm93IFR5cGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAg
IG1lbWJlckhvbGRlck9iamVjdFttZW1iZXIubi4uLiIgZGlkIG5vdCB0aHJvdworRkFJTCBSZXF1
ZXN0IGludGVyZmFjZTogb3BlcmF0aW9uIGpzb24oKSBhc3NlcnRfdGhyb3dzOiBjYWxsaW5nIG9w
ZXJhdGlvbiB3aXRoIHRoaXMgPSBudWxsIGRpZG4ndCB0aHJvdyBUeXBlRXJyb3IgZnVuY3Rpb24g
ImZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBtZW1iZXJIb2xkZXJPYmplY3RbbWVtYmVy
Lm4uLi4iIGRpZCBub3QgdGhyb3cKK0ZBSUwgUmVxdWVzdCBpbnRlcmZhY2U6IG9wZXJhdGlvbiB0
ZXh0KCkgYXNzZXJ0X3Rocm93czogY2FsbGluZyBvcGVyYXRpb24gd2l0aCB0aGlzID0gbnVsbCBk
aWRuJ3QgdGhyb3cgVHlwZUVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICAgICAgbWVtYmVySG9sZGVyT2JqZWN0W21lbWJlci5uLi4uIiBkaWQgbm90IHRocm93CitQQVNT
IFJlcXVlc3QgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBuZXcgUmVxdWVzdCgiIikgCitQ
QVNTIFN0cmluZ2lmaWNhdGlvbiBvZiBuZXcgUmVxdWVzdCgiIikgCitQQVNTIFJlcXVlc3QgaW50
ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtZXRob2QiIHdp
dGggdGhlIHByb3BlciB0eXBlICgwKSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1
ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInVybCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUg
KDEpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiaGVhZGVycyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDIpIAorUEFTUyBSZXF1
ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidHlw
ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDMpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3
IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiZGVzdGluYXRpb24iIHdpdGggdGhl
IHByb3BlciB0eXBlICg0KSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIi
KSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlZmVycmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAo
NSkgCitGQUlMIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJyZWZlcnJlclBvbGljeSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDYpIFVucmVj
b2duaXplZCB0eXBlIFJlZmVycmVyUG9saWN5CitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcg
UmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJtb2RlIiB3aXRoIHRoZSBwcm9wZXIg
dHlwZSAoNykgCitQQVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBp
bmhlcml0IHByb3BlcnR5ICJjcmVkZW50aWFscyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDgpIAor
UEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiY2FjaGUiIHdpdGggdGhlIHByb3BlciB0eXBlICg5KSAKK1BBU1MgUmVxdWVzdCBpbnRl
cmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlZGlyZWN0IiB3
aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTApIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJl
cXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW50ZWdyaXR5IiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZSAoMTEpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2xvbmUiIHdpdGggdGhlIHByb3BlciB0eXBlICgxMikgCitQ
QVNTIFJlcXVlc3QgaW50ZXJmYWNlOiBuZXcgUmVxdWVzdCgiIikgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJib2R5VXNlZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDEzKSAKK1BBU1MgUmVxdWVzdCBp
bnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImFycmF5QnVm
ZmVyIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTQpIAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTog
bmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYmxvYiIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUgKDE1KSAKK1BBU1MgUmVxdWVzdCBpbnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBt
dXN0IGluaGVyaXQgcHJvcGVydHkgImZvcm1EYXRhIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSAoMTYp
IAorUEFTUyBSZXF1ZXN0IGludGVyZmFjZTogbmV3IFJlcXVlc3QoIiIpIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAianNvbiIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgKDE3KSAKK1BBU1MgUmVxdWVzdCBp
bnRlcmZhY2U6IG5ldyBSZXF1ZXN0KCIiKSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInRleHQiIHdp
dGggdGhlIHByb3BlciB0eXBlICgxOCkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pZGwu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1pZGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmFlZmVlM2FhNDQ2MGM1
Y2QwNjJlZjk4ZGZkNGE5ZGI5Y2NhN2YxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWlkbC5odG1sCkBAIC0wLDAgKzEsODUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxo
ZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVxdWVzdCBpZGwg
aW50ZXJmYWNlPC90aXRsZT4KKyAgICA8bWV0YSBuYW1lPSJoZWxwIiBocmVmPSJodHRwczovL2Zl
dGNoLnNwZWMud2hhdHdnLm9yZy8jcmVzcG9uc2UiPgorICAgIDxtZXRhIG5hbWU9ImF1dGhvciIg
dGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9u
LmZyIj4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0iYm9keS1pZGwiIHR5cGU9
InRleHQvcGxhaW4iPgorICAgICAgdHlwZWRlZiBhbnkgSlNPTjsKKyAgICAgIHR5cGVkZWYgKEJs
b2Igb3IgQnVmZmVyU291cmNlIG9yIEZvcm1EYXRhIG9yIFVSTFNlYXJjaFBhcmFtcyBvciBVU1ZT
dHJpbmcpIEJvZHlJbml0OworCisgICAgICBbTm9JbnRlcmZhY2VPYmplY3QsCisgICAgICBFeHBv
c2VkPShXaW5kb3csV29ya2VyKV0KKyAgICAgIGludGVyZmFjZSBCb2R5IHsKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYm9keVVzZWQ7CisgICAgICAgIFtOZXdPYmplY3RdIFBy
b21pc2U8QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVyKCk7CisgICAgICAgIFtOZXdPYmplY3RdIFBy
b21pc2U8QmxvYj4gYmxvYigpOworICAgICAgICBbTmV3T2JqZWN0XSBQcm9taXNlPEZvcm1EYXRh
PiBmb3JtRGF0YSgpOworICAgICAgICBbTmV3T2JqZWN0XSBQcm9taXNlPEpTT04+IGpzb24oKTsK
KyAgICAgICAgW05ld09iamVjdF0gUHJvbWlzZTxVU1ZTdHJpbmc+IHRleHQoKTsKKyAgICAgIH07
CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBpZD0icmVxdWVzdC1pZGwiIHR5cGU9InRleHQv
cGxhaW4iPgorICAgICAgdHlwZWRlZiAoUmVxdWVzdCBvciBVU1ZTdHJpbmcpIFJlcXVlc3RJbmZv
OworCisgICAgICBbQ29uc3RydWN0b3IoUmVxdWVzdEluZm8gaW5wdXQsIG9wdGlvbmFsIFJlcXVl
c3RJbml0IGluaXQpLAorICAgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlcildCisgICAgICBpbnRl
cmZhY2UgUmVxdWVzdCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBCeXRlU3RyaW5nIG1l
dGhvZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyB1cmw7CisgICAgICAg
IFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgSGVhZGVycyBoZWFkZXJzOworCisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBSZXF1ZXN0VHlwZSB0eXBlOworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgUmVxdWVzdERlc3RpbmF0aW9uIGRlc3RpbmF0aW9uOworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIHJlZmVycmVyOworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3k7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBSZXF1ZXN0TW9kZSBtb2RlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVx
dWVzdENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
UmVxdWVzdENhY2hlIGNhY2hlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUmVxdWVzdFJl
ZGlyZWN0IHJlZGlyZWN0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlu
dGVncml0eTsKKworICAgICAgICBbTmV3T2JqZWN0XSBSZXF1ZXN0IGNsb25lKCk7CisgICAgICB9
OworICAgICAgUmVxdWVzdCBpbXBsZW1lbnRzIEJvZHk7CisKKyAgICAgIGRpY3Rpb25hcnkgUmVx
dWVzdEluaXQgeworICAgICAgICBCeXRlU3RyaW5nIG1ldGhvZDsKKyAgICAgICAgSGVhZGVyc0lu
aXQgaGVhZGVyczsKKyAgICAgICAgQm9keUluaXQ/IGJvZHk7CisgICAgICAgIFVTVlN0cmluZyBy
ZWZlcnJlcjsKKyAgICAgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3k7CisgICAgICAg
IFJlcXVlc3RNb2RlIG1vZGU7CisgICAgICAgIFJlcXVlc3RDcmVkZW50aWFscyBjcmVkZW50aWFs
czsKKyAgICAgICAgUmVxdWVzdENhY2hlIGNhY2hlOworICAgICAgICBSZXF1ZXN0UmVkaXJlY3Qg
cmVkaXJlY3Q7CisgICAgICAgIERPTVN0cmluZyBpbnRlZ3JpdHk7CisgICAgICAgIGFueSB3aW5k
b3c7IC8vIGNhbiBvbmx5IGJlIHNldCB0byBudWxsCisgICAgICB9OworCisgICAgICBlbnVtIFJl
cXVlc3RUeXBlIHsgIiIsICJhdWRpbyIsICJmb250IiwgImltYWdlIiwgInNjcmlwdCIsICJzdHls
ZSIsICJ0cmFjayIsICJ2aWRlbyIgfTsKKyAgICAgIGVudW0gUmVxdWVzdERlc3RpbmF0aW9uIHsg
IiIsICJkb2N1bWVudCIsICJzaGFyZWR3b3JrZXIiLCAic3VicmVzb3VyY2UiLCAidW5rbm93biIs
ICJ3b3JrZXIiIH07CisgICAgICBlbnVtIFJlcXVlc3RNb2RlIHsgIm5hdmlnYXRlIiwgInNhbWUt
b3JpZ2luIiwgIm5vLWNvcnMiLCAiY29ycyIgfTsKKyAgICAgIGVudW0gUmVxdWVzdENyZWRlbnRp
YWxzIHsgIm9taXQiLCAic2FtZS1vcmlnaW4iLCAiaW5jbHVkZSIgfTsKKyAgICAgIGVudW0gUmVx
dWVzdENhY2hlIHsgImRlZmF1bHQiLCAibm8tc3RvcmUiLCAicmVsb2FkIiwgIm5vLWNhY2hlIiwg
ImZvcmNlLWNhY2hlIiwgIm9ubHktaWYtY2FjaGVkIiB9OworICAgICAgZW51bSBSZXF1ZXN0UmVk
aXJlY3QgeyAiZm9sbG93IiwgImVycm9yIiwgIm1hbnVhbCIgfTsKKyAgICA8L3NjcmlwdD4KKyAg
ICA8c2NyaXB0PgorICAgICAgdmFyIGlkbHNBcnJheSA9IG5ldyBJZGxBcnJheSgpOworICAgICAg
dmFyIGlkbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5LWlkbCIpLmlubmVySFRNTAor
ICAgICAgaWRsICs9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXF1ZXN0LWlkbCIpLmlubmVy
SFRNTAorCisgICAgICBpZGxzQXJyYXkuYWRkX2lkbHMoaWRsKTsKKyAgICAgIGlkbHNBcnJheS5h
ZGRfdW50ZXN0ZWRfaWRscygiaW50ZXJmYWNlIEhlYWRlcnMge307Iik7CisgICAgICBpZGxzQXJy
YXkuYWRkX29iamVjdHMoeyBSZXF1ZXN0OiBbJ25ldyBSZXF1ZXN0KCIiKSddIH0pOworICAgICAg
aWRsc0FycmF5LnRlc3QoKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAxLnN1Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3Jl
cXVlc3QtaW5pdC0wMDEuc3ViLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWY2NDlkYjg5MGZj
ZTUzNTI1YWFlNTdhYTgwYWRmMjYxZjllZTE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1
ZXN0LWluaXQtMDAxLnN1Yi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNiBAQAorCitQQVNTIENo
ZWNrIG1ldGhvZCBpbml0IHZhbHVlIG9mIEdFVCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNT
IENoZWNrIG1ldGhvZCBpbml0IHZhbHVlIG9mIEhFQUQgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAor
UEFTUyBDaGVjayBtZXRob2QgaW5pdCB2YWx1ZSBvZiBQT1NUIGFuZCBhc3NvY2lhdGVkIGdldHRl
ciAKK1BBU1MgQ2hlY2sgbWV0aG9kIGluaXQgdmFsdWUgb2YgUFVUIGFuZCBhc3NvY2lhdGVkIGdl
dHRlciAKK1BBU1MgQ2hlY2sgbWV0aG9kIGluaXQgdmFsdWUgb2YgREVMRVRFIGFuZCBhc3NvY2lh
dGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgbWV0aG9kIGluaXQgdmFsdWUgb2YgT1BUSU9OUyBhbmQg
YXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIG1ldGhvZCBpbml0IHZhbHVlIG9mIGhlYWQg
YW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayByZWZlcnJlciBpbml0IHZhbHVlIG9m
IC9yZWxhdGl2ZS9yZXNzb3VyY2UgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayBy
ZWZlcnJlciBpbml0IHZhbHVlIG9mIGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMC9yZWxhdGl2ZS9yZXNz
b3VyY2U/cXVlcnk9dHJ1ZSNmcmFnbWVudCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENo
ZWNrIHJlZmVycmVyIGluaXQgdmFsdWUgb2YgaHR0cDovL2xvY2FsaG9zdDo4ODAwLyBhbmQgYXNz
b2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIHJlZmVycmVyIGluaXQgdmFsdWUgb2YgIGFuZCBh
c3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgcmVmZXJyZXJQb2xpY3kgaW5pdCB2YWx1ZSBv
ZiAgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayByZWZlcnJlclBvbGljeSBpbml0
IHZhbHVlIG9mIG5vLXJlZmVycmVyIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sg
cmVmZXJyZXJQb2xpY3kgaW5pdCB2YWx1ZSBvZiBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSBh
bmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIHJlZmVycmVyUG9saWN5IGluaXQgdmFs
dWUgb2Ygb3JpZ2luLW9ubHkgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayByZWZl
cnJlclBvbGljeSBpbml0IHZhbHVlIG9mIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBhbmQgYXNz
b2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIHJlZmVycmVyUG9saWN5IGluaXQgdmFsdWUgb2Yg
dW5zYWZlLXVybCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIG1vZGUgaW5pdCB2
YWx1ZSBvZiBzYW1lLW9yaWdpbiBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIG1v
ZGUgaW5pdCB2YWx1ZSBvZiBuby1jb3JzIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hl
Y2sgbW9kZSBpbml0IHZhbHVlIG9mIGNvcnMgYW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBD
aGVjayBjcmVkZW50aWFscyBpbml0IHZhbHVlIG9mIG9taXQgYW5kIGFzc29jaWF0ZWQgZ2V0dGVy
IAorUEFTUyBDaGVjayBjcmVkZW50aWFscyBpbml0IHZhbHVlIG9mIHNhbWUtb3JpZ2luIGFuZCBh
c3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgY3JlZGVudGlhbHMgaW5pdCB2YWx1ZSBvZiBp
bmNsdWRlIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgY2FjaGUgaW5pdCB2YWx1
ZSBvZiBkZWZhdWx0IGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hlY2sgY2FjaGUgaW5p
dCB2YWx1ZSBvZiBuby1zdG9yZSBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIGNh
Y2hlIGluaXQgdmFsdWUgb2YgcmVsb2FkIGFuZCBhc3NvY2lhdGVkIGdldHRlciAKK1BBU1MgQ2hl
Y2sgY2FjaGUgaW5pdCB2YWx1ZSBvZiBuby1jYWNoZSBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQ
QVNTIENoZWNrIGNhY2hlIGluaXQgdmFsdWUgb2YgZm9yY2UtY2FjaGUgYW5kIGFzc29jaWF0ZWQg
Z2V0dGVyIAorUEFTUyBDaGVjayByZWRpcmVjdCBpbml0IHZhbHVlIG9mIGZvbGxvdyBhbmQgYXNz
b2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIHJlZGlyZWN0IGluaXQgdmFsdWUgb2YgZXJyb3Ig
YW5kIGFzc29jaWF0ZWQgZ2V0dGVyIAorUEFTUyBDaGVjayByZWRpcmVjdCBpbml0IHZhbHVlIG9m
IG1hbnVhbCBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIGludGVncml0eSBpbml0
IHZhbHVlIG9mICBhbmQgYXNzb2NpYXRlZCBnZXR0ZXIgCitQQVNTIENoZWNrIGludGVncml0eSBp
bml0IHZhbHVlIG9mIEFaRVJUWVVJT1AxMjM0NTY3ODkwIGFuZCBhc3NvY2lhdGVkIGdldHRlciAK
K1BBU1MgQ2hlY2sgd2luZG93IGluaXQgdmFsdWUgb2YgbnVsbCBhbmQgYXNzb2NpYXRlZCBnZXR0
ZXIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMS5zdWIuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1pbml0LTAwMS5zdWIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOGMzNmQ5ZjA3NWU5ZTZlZDk4
OTliZjc3YTdhZTcxNTVmOTlhYmRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWlu
aXQtMDAxLnN1Yi5odG1sCkBAIC0wLDAgKzEsOTAgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+
CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+UmVxdWVz
dCBpbml0OiBzaW1wbGUgY2FzZXM8L3RpdGxlPgorICAgIDxtZXRhIG5hbWU9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0Ij4KKyAgICA8bWV0YSBuYW1l
PSJhdXRob3IiIHRpdGxlPSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3
LmNyZi5jYW5vbi5mciI+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAg
ICAgdmFyIG1ldGhvZHMgPSB7ImdpdmVuVmFsdWVzIiA6IFsiR0VUIiwgIkhFQUQiLCAiUE9TVCIs
ICJQVVQiLCAiREVMRVRFIiwgIk9QVElPTlMiLCAiaGVhZCJdLAorICAgICAgICAgICAgICAgICAg
ICAgImV4cGVjdGVkVmFsdWVzIiA6IFsiR0VUIiwgIkhFQUQiLCAiUE9TVCIsICJQVVQiLCAiREVM
RVRFIiwgIk9QVElPTlMiLCAiSEVBRCJdCisgICAgICB9OworICAgICAgdmFyIHJlZmVycmVycyA9
IHsiZ2l2ZW5WYWx1ZXMiIDogWyIvcmVsYXRpdmUvcmVzc291cmNlIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1b
MF19fS9yZWxhdGl2ZS9yZXNzb3VyY2U/cXVlcnk9dHJ1ZSNmcmFnbWVudCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly97e2hvc3R9fTp7e3BvcnRzW2h0
dHBdWzBdfX0vIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgImV4cGVjdGVkVmFsdWVzIiA6IFsiaHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0
cF1bMF19fS9yZWxhdGl2ZS9yZXNzb3VyY2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJodHRwOi8ve3tob3N0fX06e3twb3J0c1todHRwXVswXX19L3JlbGF0
aXZlL3Jlc3NvdXJjZT9xdWVyeT10cnVlI2ZyYWdtZW50IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19
fS8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICB9OworICAgICAg
dmFyIHJlZmVycmVyUG9saWNpZXMgPSB7ImdpdmVuVmFsdWVzIiA6IFsgIiIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm8tcmVmZXJyZXIiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vLXJlZmVycmVy
LXdoZW4tZG93bmdyYWRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJvcmlnaW4tb25seSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAib3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bnNhZmUtdXJsIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZXhwZWN0ZWRWYWx1ZXMiIDogWyIiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm8tcmVmZXJyZXIiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm8tcmVmZXJyZXIt
d2hlbi1kb3duZ3JhZGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAib3JpZ2luLW9ubHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAib3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuc2FmZS11cmwiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAg
IH07CisgICAgICB2YXIgbW9kZXMgPSB7ImdpdmVuVmFsdWVzIiA6IFsic2FtZS1vcmlnaW4iLCAi
bm8tY29ycyIsICJjb3JzIl0sCisgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkVmFsdWVzIiA6
IFsic2FtZS1vcmlnaW4iLCAibm8tY29ycyIsICJjb3JzIl0KKyAgICAgIH07CisgICAgICB2YXIg
Y3JlZGVudGlhbHMgPSB7ImdpdmVuVmFsdWVzIiA6IFsib21pdCIsICJzYW1lLW9yaWdpbiIsICJp
bmNsdWRlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZFZhbHVlcyIgOiBb
Im9taXQiLCAic2FtZS1vcmlnaW4iLCAiaW5jbHVkZSJdCisgICAgICB9OworICAgICAgdmFyIGNh
Y2hlcyA9IHsiZ2l2ZW5WYWx1ZXMiIDogWyAiZGVmYXVsdCIsICJuby1zdG9yZSIsICJyZWxvYWQi
LCAibm8tY2FjaGUiLCAiZm9yY2UtY2FjaGUiXSwKKyAgICAgICAgICAgICAgICAgICAgImV4cGVj
dGVkVmFsdWVzIiA6IFsgImRlZmF1bHQiLCAibm8tc3RvcmUiLCAicmVsb2FkIiwgIm5vLWNhY2hl
IiwgImZvcmNlLWNhY2hlIl0KKyAgICAgIH07CisgICAgICB2YXIgcmVkaXJlY3RzID0geyJnaXZl
blZhbHVlcyIgOiBbImZvbGxvdyIsICJlcnJvciIsICJtYW51YWwiXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgImV4cGVjdGVkVmFsdWVzIiA6IFsiZm9sbG93IiwgImVycm9yIiwgIm1hbnVhbCJd
CisgICAgICB9OworICAgICAgdmFyIGludGVncml0aWVzID0geyJnaXZlblZhbHVlcyIgOiBbIiIs
ICJBWkVSVFlVSU9QMTIzNDU2Nzg5MCIgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWRWYWx1ZXMiIDogWyIiLCAiQVpFUlRZVUlPUDEyMzQ1Njc4OTAiXQorICAgICAgfTsKKwor
ICAgICAgLy90aGVyZSBpcyBubyBnZXR0ZXIgZm9yIHdpbmRvdywgaW5pdCdzIHdpbmRvdyBtaWdo
dCBiZSBudWxsCisgICAgICB2YXIgd2luZG93cyA9IHsiZ2l2ZW5WYWx1ZXMiIDogWyBudWxsIF0s
CisgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWRWYWx1ZXMiIDogW3VuZGVmaW5lZF0KKyAg
ICAgIH07CisKKyAgICAgIHZhciBpbml0VmFsdWVzRGljdCA9IHsgIm1ldGhvZCIgOiBtZXRob2Rz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJyZXIiIDogcmVmZXJyZXJzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJyZXJQb2xpY3kiIDogcmVmZXJyZXJQ
b2xpY2llcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vZGUiIDogbW9kZXMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjcmVkZW50aWFscyIgOiBjcmVkZW50aWFscywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhY2hlIiA6IGNhY2hlcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInJlZGlyZWN0IiA6IHJlZGlyZWN0cywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImludGVncml0eSIgOiBpbnRlZ3JpdGllcywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIndpbmRvdyIgOiB3aW5kb3dzCisgICAgICB9OworCisgICAgICBm
b3IgKHZhciBhdHRyaWJ1dGVOYW1lIGluIGluaXRWYWx1ZXNEaWN0KSB7CisgICAgICAgIHZhciB2
YWx1ZXNUb1Rlc3QgPSBpbml0VmFsdWVzRGljdFthdHRyaWJ1dGVOYW1lXTsKKyAgICAgICAgZm9y
ICh2YXIgdmFsdWVJZHggaW4gdmFsdWVzVG9UZXN0WyJnaXZlblZhbHVlcyJdKSB7CisgICAgICAg
ICAgdmFyIGdpdmVuVmFsdWUgPSB2YWx1ZXNUb1Rlc3RbImdpdmVuVmFsdWVzIl1bdmFsdWVJZHhd
OworICAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gdmFsdWVzVG9UZXN0WyJleHBlY3RlZFZh
bHVlcyJdW3ZhbHVlSWR4XTsKKyAgICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgdmFyIHJlcXVlc3RJbml0ID0ge307CisgICAgICAgICAgICByZXF1ZXN0SW5pdFthdHRyaWJ1
dGVOYW1lXSA9IGdpdmVuVmFsdWUKKyAgICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVl
c3QoIiIsIHJlcXVlc3RJbml0KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdFth
dHRyaWJ1dGVOYW1lXSwgZXhwZWN0ZWRWYWx1ZSwKKyAgICAgICAgICAgICAgIkV4cGVjdCByZXF1
ZXN0J3MgIiArIGF0dHJpYnV0ZU5hbWUgKyAiIGlzICIgKyBleHBlY3RlZFZhbHVlICsgIiB3aGVu
IGluaXRpYWxpemVkIHdpdGggIiArIGdpdmVuVmFsdWUpOworICAgICAgICAgIH0sICJDaGVjayAi
ICsgYXR0cmlidXRlTmFtZSArICIgaW5pdCB2YWx1ZSBvZiAiICsgZ2l2ZW5WYWx1ZSArICIgYW5k
IGFzc29jaWF0ZWQgZ2V0dGVyIik7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICA8L3NjcmlwdD4K
KyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWJjMmFiYWU3MGNlOTU1OTJlN2YzYjRlNjE5M2ZiMGE2N2Y0NDEzYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBA
CisKK1BBU1MgSW5pdGlhbGl6ZSBSZXF1ZXN0IHdpdGggaGVhZGVycyB2YWx1ZXMgCitGQUlMIElu
aXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0aCBhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IHVuZGVmaW5lZAorRkFJ
TCBJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdpdGggbXVsdGlwYXJ0L2Zvcm0tZGF0YSBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCitQQVNT
IEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0aCB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgg
CitGQUlMIEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0aCBhcHBsaWNhdGlvbi94LXd3dy1m
b3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogIlVSTFNlYXJjaFBhcmFtcyBub3Qgc3VwcG9ydGVkIgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAw
Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJhYWNjNjdlNDMwMDc4MDQzYWRlM2QwMTY4NTY5OTU4NjAyMjI0
YzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIuaHRtbApAQCAtMCww
ICsxLDY1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlJlcXVlc3QgaW5pdDogaGVhZGVycyBhbmQgYm9k
eTwvdGl0bGU+CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVj
LndoYXR3Zy5vcmcvI3JlcXVlc3QiPgorICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNh
bm9uIFJlc2VhcmNoIEZyYW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KKyAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
ICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgICB0ZXN0KGZ1bmN0aW9uKCkg
eworICAgICAgICB2YXIgaGVhZGVyRGljdCA9IHsibmFtZTEiOiAidmFsdWUxIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm5hbWUyIjogInZhbHVlMiIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICJuYW1lMyI6ICJ2YWx1ZTMiCisgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAg
ICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycyhoZWFkZXJEaWN0KTsKKyAgICAgICAgdmFy
IHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyAiaGVhZGVycyIgOiBoZWFkZXJzIH0pCisgICAg
ICAgIGZvciAodmFyIG5hbWUgaW4gaGVhZGVyRGljdCkgeworICAgICAgICAgIGFzc2VydF9lcXVh
bHMocmVxdWVzdC5oZWFkZXJzLmdldChuYW1lKSwgaGVhZGVyRGljdFtuYW1lXSwKKyAgICAgICAg
ICAgInJlcXVlc3QncyBoZWFkZXJzIGhhcyAiICsgbmFtZSArICIgOiAiICsgaGVhZGVyRGljdFtu
YW1lXSk7CisgICAgICAgIH0KKyAgICAgIH0sICJJbml0aWFsaXplIFJlcXVlc3Qgd2l0aCBoZWFk
ZXJzIHZhbHVlcyIpOworCisgICAgICBmdW5jdGlvbiBjaGVja1JlcXVlc3RJbml0KGJvZHksIGJv
ZHlUeXBlLCBleHBlY3RlZFRleHRCb2R5KSB7CisgICAgICAgIHByb21pc2VfdGVzdChmdW5jdGlv
bih0ZXN0KSB7CisgICAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgiIiwgeyJtZXRo
b2QiOiAiUE9TVCIsICJib2R5IjogYm9keX0pOworICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3
IFR5cGVFcnJvcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IG5ldyBS
ZXF1ZXN0KCIiLCB7Im1ldGhvZCI6ICJHRVQiLCAiYm9keSI6IGJvZHl9KTsgfQorICAgICAgICAg
ICk7CisgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksCisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgbmV3IFJlcXVlc3QoIiIsIHsibWV0aG9kIjogIkhF
QUQiLCAiYm9keSI6IGJvZHl9KTsgfQorICAgICAgICAgICk7CisgICAgICAgICAgdmFyIHJlcUhl
YWRlcnMgPSByZXF1ZXN0LmhlYWRlcnM7CisgICAgICAgICAgdmFyIG1pbWUgPSByZXFIZWFkZXJz
LmdldCgiQ29udGVudC1UeXBlIik7CisgICAgICAgICAgYXNzZXJ0X3RydWUobWltZSAmJiBtaW1l
LnNlYXJjaChib2R5VHlwZSkgPiAtMSwgIkNvbnRlbnQtVHlwZSBoZWFkZXIgc2hvdWxkIGJlIFwi
IiArIGJvZHlUeXBlICsgIlwiLCBub3QgXCIiICsgbWltZSArICJcIiIpOworICAgICAgICAgIHJl
dHVybiByZXF1ZXN0LnRleHQoKS50aGVuKGZ1bmN0aW9uKGJvZHlBc1RleHQpIHsKKyAgICAgICAg
ICAgIC8vbm90IGVxdWFsczogY2Fubm90IGd1ZXNzIGZvcm1EYXRhIGV4YWN0IHZhbHVlCisgICAg
ICAgICAgICBhc3NlcnRfdHJ1ZSggYm9keUFzVGV4dC5zZWFyY2goZXhwZWN0ZWRUZXh0Qm9keSkg
PiAtMSwgIlJldHJpZXZlIGFuZCB2ZXJpZnkgcmVxdWVzdCBib2R5Iik7CisgICAgICAgICAgfSk7
CisgICAgICAgIH0sICJJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdpdGggIiArIGJvZHlUeXBl
KTsKKyAgICAgIH0KKworICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbIlRoaXMgaXMgYSBibG9i
Il0sIHt0eXBlOiAiYXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5In0pOworICAgICAgdmFyIGZvcm1h
RGF0YSA9IG5ldyBGb3JtRGF0YSgpOworICAgICAgZm9ybWFEYXRhLmFwcGVuZCgibmFtZSIsICJ2
YWx1ZSIpOworICAgICAgdmFyIHVzdlN0cmluZyA9ICJUaGlzIGlzIGEgVVNWU3RyaW5nIgorCisg
ICAgICBjaGVja1JlcXVlc3RJbml0KGJsb2IsICJhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkiLCAi
VGhpcyBpcyBhIGJsb2IiKTsKKyAgICAgIGNoZWNrUmVxdWVzdEluaXQoZm9ybWFEYXRhLCAibXVs
dGlwYXJ0L2Zvcm0tZGF0YSIsICJuYW1lPVwibmFtZVwiXHJcblxyXG52YWx1ZSIpOworICAgICAg
Y2hlY2tSZXF1ZXN0SW5pdCh1c3ZTdHJpbmcsICJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiLCAi
VGhpcyBpcyBhIFVTVlN0cmluZyIpOworCisgICAgICAvLyBFbnN1cmUgdGVzdCBkb2VzIG5vdCB0
aW1lIG91dCBpbiBjYXNlIG9mIG1pc3NpbmcgVVJMU2VhcmNoUGFyYW1zIHN1cHBvcnQuCisgICAg
ICBpZiAod2luZG93LlVSTFNlYXJjaFBhcmFtcykgeworICAgICAgICB2YXIgdXJsU2VhcmNoUGFy
YW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygibmFtZT12YWx1ZSIpOworICAgICAgICBjaGVja1Jl
cXVlc3RJbml0KHVybFNlYXJjaFBhcmFtcywgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5j
b2RlZDtjaGFyc2V0PVVURi04IiwgIm5hbWU9dmFsdWUiKTsKKyAgICAgIH0gZWxzZSB7CisgICAg
ICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgICAgICAgcmV0dXJuIFByb21p
c2UucmVqZWN0KCJVUkxTZWFyY2hQYXJhbXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICB9LCAi
SW5pdGlhbGl6ZSBSZXF1ZXN0J3MgYm9keSB3aXRoIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJs
ZW5jb2RlZDtjaGFyc2V0PVVURi04Iik7CisgICAgICB9CisgICAgPC9zY3JpcHQ+CisgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMy5zdWItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWluaXQtMDAzLnN1Yi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmFiZTc1NjBlMjhlOTg4ZTQ3NmMyOGNjZDJmMmUyOWYwMmI4NWI3YwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMy5zdWItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NiBAQAorCitGQUlMIENoZWNrIHJlcXVlc3QgdmFsdWVzIHdoZW4gaW5pdGlhbGl6ZWQgZnJvbSBS
ZXF1ZXN0IEV4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmtleXMgaXMgbm90IGEgZnVuY3Rp
b24uIChJbiAnRXhwZWN0ZWRWYWx1ZXNEaWN0WyJoZWFkZXJzIl0ua2V5cygpJywgJ0V4cGVjdGVk
VmFsdWVzRGljdFsiaGVhZGVycyJdLmtleXMnIGlzIHVuZGVmaW5lZCkKK0ZBSUwgQ2hlY2sgcmVx
dWVzdCB2YWx1ZXMgd2hlbiBpbml0aWFsaXplZCBmcm9tIFJlcXVlc3QgYW5kIGluaXQgdmFsdWVz
IEV4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmtleXMgaXMgbm90IGEgZnVuY3Rpb24uIChJ
biAnRXhwZWN0ZWRWYWx1ZXNEaWN0WyJoZWFkZXJzIl0ua2V5cygpJywgJ0V4cGVjdGVkVmFsdWVz
RGljdFsiaGVhZGVycyJdLmtleXMnIGlzIHVuZGVmaW5lZCkKK0ZBSUwgQ2hlY2sgcmVxdWVzdCB2
YWx1ZXMgd2hlbiBpbml0aWFsaXplZCBmcm9tIHVybCBzdHJpbmcgYXNzZXJ0X2VxdWFsczogQ2hl
Y2sgdXJsIGF0dHJpYnV0ZSBleHBlY3RlZCAiaHR0cDovL3VybC50ZXN0OjEyMzQvcGF0aC9zdWJw
YXRoP3F1ZXJ5PXRydWUiIGJ1dCBnb3QgImh0dHA6Ly91cmwudGVzdDoxMjM0L3BhdGgvc3VicGF0
aD9xdWVyeT10cnVlI2ZyYWdtZW50IgorRkFJTCBDaGVjayByZXF1ZXN0IHZhbHVlcyB3aGVuIGlu
aXRpYWxpemVkIGZyb20gdXJsIGFuZCBpbml0IHZhbHVlcyBFeHBlY3RlZFZhbHVlc0RpY3RbImhl
YWRlcnMiXS5rZXlzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ0V4cGVjdGVkVmFsdWVzRGljdFsi
aGVhZGVycyJdLmtleXMoKScsICdFeHBlY3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5rZXlzJyBp
cyB1bmRlZmluZWQpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMy5zdWIuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1pbml0LTAwMy5zdWIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzlkNGIzNGRm
NGVkNmZmMjY3NDg4ZTY1MmJjMjFjMTNiNDZmN2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LWluaXQtMDAzLnN1Yi5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhZG9jdHlwZSBodG1s
PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0
bGU+UmVxdWVzdDogaW5pdCB3aXRoIHJlcXVlc3Qgb3IgdXJsPC90aXRsZT4KKyAgICA8bWV0YSBu
YW1lPSJoZWxwIiBocmVmPSJodHRwczovL2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdCI+
CisgICAgPG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3Jn
LyNjb25jZXB0LXVybC1zZXJpYWxpemVyIj4KKyAgICA8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxl
PSJDYW5vbiBSZXNlYXJjaCBGcmFuY2UiIGhyZWY9Imh0dHBzOi8vd3d3LmNyZi5jYW5vbi5mciI+
CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3V0
aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgdmFyIGhlYWRlcnMgPSBuZXcg
SGVhZGVycyggeyJuYW1lIjoidmFsdWUifSApOworICAgICAgdmFyIGVtcHR5SGVhZGVycyA9IG5l
dyBIZWFkZXJzKCk7CisKKyAgICAgIHZhciBpbml0VmFsdWVzRGljdCA9IHsibWV0aG9kIiA6ICJQ
T1NUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJyZXIiIDogImh0dHA6Ly97
e2hvc3R9fTp7e3BvcnRzW2h0dHBdWzBdfX0vIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAicmVmZXJyZXJQb2xpY3kiIDogIm9yaWdpbi1vbmx5IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAibW9kZSIgOiAic2FtZS1vcmlnaW4iLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJjcmVkZW50aWFscyIgOiAiaW5jbHVkZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImNhY2hlIiA6ICJuby1jYWNoZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJl
ZGlyZWN0IiA6ICJlcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVncml0
eSIgOiAiUmVxdWVzdCdzIEludGVncml0eSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImhlYWRlcnMiIDogaGVhZGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYm9keSIg
OiAiUmVxdWVzdCdzIGJvZHkiCisgICAgICB9OworCisgICAgICB2YXIgZXhwZWN0ZWRJbml0aWFs
aXplZCA9IHsibWV0aG9kIiA6ICJQT1NUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJyZWZlcnJlciIgOiAiaHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fS8iLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVycmVyUG9saWN5IiA6ICJvcmln
aW4tb25seSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW9kZSIgOiAic2Ft
ZS1vcmlnaW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNyZWRlbnRpYWxz
IiA6ICJpbmNsdWRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYWNoZSIg
OiAibm8tY2FjaGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZGlyZWN0
IiA6ICJlcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWdyaXR5
IiA6ICJSZXF1ZXN0J3MgSW50ZWdyaXR5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJoZWFkZXJzIiA6IGhlYWRlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiYm9keSIgOiAiUmVxdWVzdCdzIGJvZHkiCisgICAgICB9OworCisgICAgICB2YXIgZXhwZWN0
ZWREZWZhdWx0ID0geyJtZXRob2QiIDogIkdFVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ1cmwiIDogbG9jYXRpb24ucmVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cmVmZXJyZXIiIDogImh0dHA6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBdWzBdfX0vIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVycmVyUG9saWN5IiA6ICIiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAibW9kZSIgOiAiY29ycyIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJjcmVkZW50aWFscyIgOiAib21pdCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJjYWNoZSIgOiAiZGVmYXVsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJyZWRpcmVjdCIgOiAiZm9sbG93IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlu
dGVncml0eSIgOiAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhlYWRlcnMiIDog
ZW1wdHlIZWFkZXJzCisgICAgICB9OworCisgICAgICB2YXIgUmVxdWVzdERlZmF1bHQgPSBuZXcg
UmVxdWVzdCgiIik7CisgICAgICB2YXIgUmVxdWVzdEluaXRpYWxpemVkID0gbmV3IFJlcXVlc3Qo
IiIsIGluaXRWYWx1ZXNEaWN0KTsKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAg
dmFyIHJlcXVlc3RUb0NoZWNrID0gbmV3IFJlcXVlc3QoUmVxdWVzdEluaXRpYWxpemVkKTsKKyAg
ICAgICAgY2hlY2tSZXF1ZXN0KHJlcXVlc3RUb0NoZWNrLCBleHBlY3RlZEluaXRpYWxpemVkKTsK
KyAgICAgIH0sICJDaGVjayByZXF1ZXN0IHZhbHVlcyB3aGVuIGluaXRpYWxpemVkIGZyb20gUmVx
dWVzdCIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgcmVxdWVzdFRv
Q2hlY2sgPSBuZXcgUmVxdWVzdChSZXF1ZXN0RGVmYXVsdCwgaW5pdFZhbHVlc0RpY3QpOworICAg
ICAgICBjaGVja1JlcXVlc3QocmVxdWVzdFRvQ2hlY2ssIGV4cGVjdGVkSW5pdGlhbGl6ZWQpOwor
ICAgICAgfSwgIkNoZWNrIHJlcXVlc3QgdmFsdWVzIHdoZW4gaW5pdGlhbGl6ZWQgZnJvbSBSZXF1
ZXN0IGFuZCBpbml0IHZhbHVlcyIpOworCisgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAg
ICB2YXIgdXJsID0gImh0dHA6Ly91cmwudGVzdDoxMjM0L3BhdGgvc3VicGF0aD9xdWVyeT10cnVl
IjsKKyAgICAgICAgZXhwZWN0ZWREZWZhdWx0WyJ1cmwiXSA9IHVybDsKKyAgICAgICAgdXJsICs9
ICIjZnJhZ21lbnQiOworICAgICAgICB2YXIgcmVxdWVzdFRvQ2hlY2sgPSBuZXcgUmVxdWVzdCh1
cmwpOworICAgICAgICBjaGVja1JlcXVlc3QocmVxdWVzdFRvQ2hlY2ssIGV4cGVjdGVkRGVmYXVs
dCk7CisgICAgICB9LCAiQ2hlY2sgcmVxdWVzdCB2YWx1ZXMgd2hlbiBpbml0aWFsaXplZCBmcm9t
IHVybCBzdHJpbmciKTsKKworICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHVy
bCA9ICJodHRwOi8vdXJsLnRlc3Q6MTIzNC9wYXRoL3N1YnBhdGg/cXVlcnk9dHJ1ZSI7CisgICAg
ICAgIGV4cGVjdGVkSW5pdGlhbGl6ZWRbInVybCJdID0gdXJsOworICAgICAgICB1cmwgKz0gIiNm
cmFnbWVudCI7CisgICAgICAgIHZhciByZXF1ZXN0VG9DaGVjayA9IG5ldyBSZXF1ZXN0KHVybCAs
IGluaXRWYWx1ZXNEaWN0KTsKKyAgICAgICAgY2hlY2tSZXF1ZXN0KHJlcXVlc3RUb0NoZWNrLCBl
eHBlY3RlZEluaXRpYWxpemVkKTsKKyAgICAgIH0sICJDaGVjayByZXF1ZXN0IHZhbHVlcyB3aGVu
IGluaXRpYWxpemVkIGZyb20gdXJsIGFuZCBpbml0IHZhbHVlcyIpOworICAgIDwvc2NyaXB0Pgor
ICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1cmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkzNzQ5NTcyNWMyODZhMmI0MGEwNDE1ZDEzNGNhYjliNmY3YjcyMWIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIx
IEBACisKK1BBU1MgUmVxdWVzdCBoYXMgY2xvbmUgbWV0aG9kIAorUEFTUyBSZXF1ZXN0IGhhcyBh
cnJheUJ1ZmZlciBtZXRob2QgCitQQVNTIFJlcXVlc3QgaGFzIGJsb2IgbWV0aG9kIAorUEFTUyBS
ZXF1ZXN0IGhhcyBmb3JtRGF0YSBtZXRob2QgCitQQVNTIFJlcXVlc3QgaGFzIGpzb24gbWV0aG9k
IAorUEFTUyBSZXF1ZXN0IGhhcyB0ZXh0IG1ldGhvZCAKK1BBU1MgQ2hlY2sgbWV0aG9kIGF0dHJp
YnV0ZSAKK1BBU1MgQ2hlY2sgdXJsIGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgaGVhZGVycyBhdHRy
aWJ1dGUgCitQQVNTIENoZWNrIHR5cGUgYXR0cmlidXRlIAorUEFTUyBDaGVjayBkZXN0aW5hdGlv
biBhdHRyaWJ1dGUgCitQQVNTIENoZWNrIHJlZmVycmVyIGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sg
cmVmZXJyZXJQb2xpY3kgYXR0cmlidXRlIAorUEFTUyBDaGVjayBtb2RlIGF0dHJpYnV0ZSAKK1BB
U1MgQ2hlY2sgY3JlZGVudGlhbHMgYXR0cmlidXRlIAorUEFTUyBDaGVjayBjYWNoZSBhdHRyaWJ1
dGUgCitQQVNTIENoZWNrIHJlZGlyZWN0IGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgaW50ZWdyaXR5
IGF0dHJpYnV0ZSAKK1BBU1MgQ2hlY2sgYm9keVVzZWQgYXR0cmlidXRlIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qtc3RydWN0dXJlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2JlNmNlZTk5OWYzMWIzYjYwMjI2Y2I5OTJjYTZjMTE3MGFlMjcyYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1zdHJ1Y3R1cmUuaHRtbApAQCAtMCwwICsx
LDEzNCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5SZXF1ZXN0IHN0cnVjdHVyZTwvdGl0bGU+CisgICAg
PG1ldGEgbmFtZT0iaGVscCIgaHJlZj0iaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI3Jl
cXVlc3QiPgorICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IkNhbm9uIFJlc2VhcmNoIEZy
YW5jZSIgaHJlZj0iaHR0cHM6Ly93d3cuY3JmLmNhbm9uLmZyIj4KKyAgICA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxi
b2R5PgorICAgIDxzY3JpcHQ+CisgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCIiKTsK
KyAgICAgIHZhciBtZXRob2RzID0gWyJjbG9uZSIsCisgICAgICAgICAgICAgICAgICAgICAvL1Jl
cXVlc3QgaW1wbGVtZW50cyBCb2R5CisgICAgICAgICAgICAgICAgICAgICAiYXJyYXlCdWZmZXIi
LAorICAgICAgICAgICAgICAgICAgICAgImJsb2IiLAorICAgICAgICAgICAgICAgICAgICAgImZv
cm1EYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgICJqc29uIiwKKyAgICAgICAgICAgICAgICAg
ICAgICJ0ZXh0IgorICAgICAgICAgICAgICAgICAgICBdOworICAgICAgdmFyIGF0dHJpYnV0ZXMg
PSBbIm1ldGhvZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAidXJsIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICJoZWFkZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICJkZXN0aW5hdGlvbiIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAicmVmZXJyZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVycmVyUG9s
aWN5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtb2RlIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICJjcmVkZW50aWFscyIsCisgICAgICAgICAgICAgICAgICAgICAgICAiY2FjaGUiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgInJlZGlyZWN0IiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICJpbnRlZ3JpdHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy9SZXF1ZXN0IGltcGxl
bWVudHMgQm9keQorICAgICAgICAgICAgICAgICAgICAgICAgImJvZHlVc2VkIgorICAgICAgICAg
ICAgICAgICAgICAgICBdOworCisgICAgICBmdW5jdGlvbiBJc3JlYWRPbmx5KHJlcXVlc3QsIGF0
dHJpYnV0ZVRvQ2hlY2spIHsKKyAgICAgICAgdmFyIGRlZmF1bHRWYWx1ZSA9IHVuZGVmaW5lZDsK
KyAgICAgICAgdmFyIG5ld1ZhbHVlID0gdW5kZWZpbmVkOworICAgICAgICBzd2l0Y2ggKGF0dHJp
YnV0ZVRvQ2hlY2spIHsKKyAgICAgICAgICBjYXNlICJtZXRob2QiOgorICAgICAgICAgICAgZGVm
YXVsdFZhbHVlID0gIkdFVCI7CisgICAgICAgICAgICBuZXdWYWx1ZSA9ICJQT1NUIjsKKyAgICAg
ICAgICAgIGJyZWFrOworCisgICAgICAgICAgY2FzZSAidXJsIjoKKyAgICAgICAgICAgIC8vZGVm
YXVsdCB2YWx1ZSBpcyBiYXNlIHVybAorICAgICAgICAgICAgLy9pLmUgaHR0cDovL3dlYi1wbGF0
Zm9ybS50ZXN0OjgwMDAvZmV0Y2gvYXBpL3JlcXVlc3Qtc3RydWN0dXJlLmh0bWwKKyAgICAgICAg
ICAgIG5ld1ZhbHVlID0gImh0dHA6Ly91cmwudGVzdCI7CisgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICAgIGNhc2UgImhlYWRlcnMiOgorICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzID0g
bmV3IEhlYWRlcnMgKHsibmFtZSI6InZhbHVlIn0pOworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNl
KHJlcXVlc3QuaGVhZGVycy5oYXMoIm5hbWUiKSwgIkhlYWRlcnMgYXR0cmlidXRlIGlzIHJlYWQg
b25seSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg
ICAgICBjYXNlICJ0eXBlIjoKKyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICIiOworICAgICAg
ICAgICAgbmV3VmFsdWUgPSAic3R5bGUiOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
ICBjYXNlICJkZXN0aW5hdGlvbiI6CisgICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSAiIjsKKyAg
ICAgICAgICAgIG5ld1ZhbHVlID0gIndvcmtlciI7CisgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICAgIGNhc2UgInJlZmVycmVyIjoKKyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICJhYm91
dDpjbGllbnQiOworICAgICAgICAgICAgbmV3VmFsdWUgPSAiaHR0cDovL3VybC50ZXN0IjsKKyAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgY2FzZSAicmVmZXJyZXJQb2xpY3kiOgorICAg
ICAgICAgICAgZGVmYXVsdFZhbHVlID0gIiI7CisgICAgICAgICAgICBuZXdWYWx1ZSA9ICJ1bnNh
ZmUtdXJsIjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgY2FzZSAibW9kZSI6Cisg
ICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSAiY29ycyI7CisgICAgICAgICAgICBuZXdWYWx1ZSA9
ICJuYXZpZ2F0ZSI7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2UgImNyZWRl
bnRpYWxzIjoKKyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICJvbWl0IjsKKyAgICAgICAgICAg
IG5ld1ZhbHVlID0gImNvcnMiOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICBjYXNl
ICJjYWNoZSI6CisgICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSAiZGVmYXVsdCI7CisgICAgICAg
ICAgICBuZXdWYWx1ZSA9ICJyZWxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
ICBjYXNlICJyZWRpcmVjdCI6CisgICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSAiZm9sbG93IjsK
KyAgICAgICAgICAgIG5ld1ZhbHVlID0gIm1hbnVhbCI7CisgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICAgIGNhc2UgImludGVncml0eSI6CisgICAgICAgICAgICBuZXdWYWx1ZSA9ICJDYW5u
b3RXcml0ZUludGVncml0eSI7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgIGNhc2Ug
ImJvZHlVc2VkIjoKKyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IGZhbHNlOworICAgICAgICAg
ICAgbmV3VmFsdWUgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgcmVxdWVzdFth
dHRyaWJ1dGVUb0NoZWNrXSA9IG5ld1ZhbHVlOworICAgICAgICBpZiAoZGVmYXVsdFZhbHVlID09
PSB1bmRlZmluZWQpCisgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVxdWVzdFthdHRyaWJ1
dGVUb0NoZWNrXSwgbmV3VmFsdWUsICJBdHRyaWJ1dGUgIiArIGF0dHJpYnV0ZVRvQ2hlY2sgKyAi
IGlzIHJlYWQgb25seSIpOworICAgICAgICBlbHNlCisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZXF1ZXN0W2F0dHJpYnV0ZVRvQ2hlY2tdLCBkZWZhdWx0VmFsdWUsCisgICAgICAgICAgICJBdHRy
aWJ1dGUgIiArIGF0dHJpYnV0ZVRvQ2hlY2sgKyAiIGlzIHJlYWQgb25seS4gRGVmYXVsdCB2YWx1
ZSBpcyAiICsgZGVmYXVsdFZhbHVlKTsKKyAgICAgIH0KKworICAgICAgZm9yICh2YXIgaWR4IGlu
IG1ldGhvZHMpIHsKKyAgICAgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgICBhc3NlcnRf
dHJ1ZShtZXRob2RzW2lkeF0gaW4gcmVxdWVzdCwgInJlcXVlc3QgaGFzICIgKyBtZXRob2RzW2lk
eF0gKyAiIG1ldGhvZCIpOworICAgICAgICB9LCAiUmVxdWVzdCBoYXMgIiArIG1ldGhvZHNbaWR4
XSArICIgbWV0aG9kIik7CisgICAgICB9CisKKyAgICAgIGZvciAodmFyIGlkeCBpbiBhdHRyaWJ1
dGVzKSB7CisgICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgYXNzZXJ0X3RydWUo
YXR0cmlidXRlc1tpZHhdIGluIHJlcXVlc3QsICJyZXF1ZXN0IGhhcyAiICsgYXR0cmlidXRlc1tp
ZHhdICsgIiBhdHRyaWJ1dGUiKTsKKyAgICAgICAgICBJc3JlYWRPbmx5KHJlcXVlc3QsIGF0dHJp
YnV0ZXNbaWR4XSk7CisgICAgICAgIH0sICJDaGVjayAiICsgYXR0cmlidXRlc1tpZHhdICsgIiBh
dHRyaWJ1dGUiKTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzb3VyY2VzL2F1dGhlbnRpY2F0aW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2F1dGhlbnRpY2F0
aW9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmEwNmQxNzllNThlYmJiYjBiNGI5N2Y3MWM0NzVkNDkyN2QzYTVj
ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvYXV0aGVudGljYXRpb24ucHkKQEAgLTAsMCAr
MSwxNSBAQAorZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIHVzZXIgPSByZXF1ZXN0
LmF1dGgudXNlcm5hbWUKKyAgICBwYXNzd29yZCA9IHJlcXVlc3QuYXV0aC5wYXNzd29yZAorCisg
ICAgaWYgdXNlciA9PSAidXNlciIgYW5kIHBhc3N3b3JkID09ICJwYXNzd29yZCI6CisgICAgICAg
IHJldHVybiAiQXV0aGVudGljYXRpb24gZG9uZSIKKworICAgIHJlYWxtID0gInRlc3QiCisgICAg
aWYgInJlYWxtIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgcmVhbG0gPSByZXF1ZXN0LkdFVC5m
aXJzdCgicmVhbG0iKQorCisgICAgcmV0dXJuICgoNDAxLCAiVW5hdXRob3JpemVkIiksCisgICAg
ICAgICAgICBbKCJXV1ctQXV0aGVudGljYXRlIiwgJ0Jhc2ljIHJlYWxtPSInICsgcmVhbG0gKyAn
IicpXSwKKyAgICAgICAgICAgICJQbGVhc2UgbG9naW4gd2l0aCBjcmVkZW50aWFscyAndXNlcicg
YW5kICdwYXNzd29yZCciKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvY2xlYW4tc3Rhc2gucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNv
dXJjZXMvY2xlYW4tc3Rhc2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2FlNzMxMDUyNjkyZTA0OGEwN2Q2NWE2
ZTAxNWZlNWE3NjM2MjA5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9jbGVhbi1zdGFzaC5w
eQpAQCAtMCwwICsxLDYgQEAKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICB0b2tl
biA9IHJlcXVlc3QuR0VULmZpcnN0KCJ0b2tlbiIpCisgICAgaWYgcmVxdWVzdC5zZXJ2ZXIuc3Rh
c2gudGFrZSh0b2tlbikgaXMgbm90IE5vbmU6CisgICAgICAgIHJldHVybiAiMSIKKyAgICBlbHNl
OgorICAgICAgICByZXR1cm4gIjAiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJz
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzb3VyY2VzL2luc3BlY3QtaGVhZGVycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNGFjZTE4YWI2NGIx
MWU5YzA5MDU0YzA4YmUyZDRkMjJmNzAyNjRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL2lu
c3BlY3QtaGVhZGVycy5weQpAQCAtMCwwICsxLDIyIEBACitkZWYgbWFpbihyZXF1ZXN0LCByZXNw
b25zZSk6CisgICAgaGVhZGVycyA9IFtdCisgICAgcmVxdWVzdF9oZWFkZXJzID0gW10KKyAgICBp
ZiAiaGVhZGVycyIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIGNoZWNrZWRfaGVhZGVycyA9IHJl
cXVlc3QuR0VULmZpcnN0KCJoZWFkZXJzIikuc3BsaXQoInwiKQorICAgICAgICBmb3IgaGVhZGVy
IGluIGNoZWNrZWRfaGVhZGVyczoKKyAgICAgICAgICBpZiBoZWFkZXIgaW4gcmVxdWVzdC5oZWFk
ZXJzOgorICAgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIngtcmVxdWVzdC0iICsgaGVhZGVy
LCByZXF1ZXN0LmhlYWRlcnMuZ2V0KGhlYWRlciwgIiIpICkpCisKKyAgICBpZiAiY29ycyIgaW4g
cmVxdWVzdC5HRVQ6CisgICAgICAgIGlmICJPcmlnaW4iIGluIHJlcXVlc3QuaGVhZGVyczoKKyAg
ICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwg
cmVxdWVzdC5oZWFkZXJzLmdldCgiT3JpZ2luIiwgIiIpKSkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiwgIioi
KSkKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50
aWFscyIsICJ0cnVlIikpCisgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wt
QWxsb3ctTWV0aG9kcyIsICJHRVQsIFBPU1QsIEhFQUQiKSkKKyAgICAgICAgZXhwb3NlZF9oZWFk
ZXJzID0gWyJ4LXJlcXVlc3QtIiArIGhlYWRlciBmb3IgaGVhZGVyIGluIGNoZWNrZWRfaGVhZGVy
c10KKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVy
cyIsICIsICIuam9pbihleHBvc2VkX2hlYWRlcnMpKSkKKyAgICAgICAgaGVhZGVycy5hcHBlbmQo
KCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzIiwgIiwgIi5qb2luKHJlcXVlc3QuaGVhZGVy
cykpKQorCisgICAgaGVhZGVycy5hcHBlbmQoKCJjb250ZW50LXR5cGUiLCAidGV4dC9wbGFpbiIp
KQorICAgIHJldHVybiBoZWFkZXJzLCAiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL21ldGhvZC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c291cmNlcy9tZXRob2QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFjNTZkZTY5OGJiOGYwMTkyMmQyZGQ2Y2M4
ODY4MmUzMWNiNjM0YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9tZXRob2QucHkKQEAgLTAs
MCArMSwxMSBAQAorZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIGhlYWRlcnMgPSBb
XQorICAgIGlmICJjb3JzIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgaGVhZGVycy5hcHBlbmQo
KCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCAiKiIpKQorICAgICAgICBoZWFkZXJzLmFw
cGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzIiwgInRydWUiKSkKKyAgICAg
ICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzIiwgIkdFVCwg
UE9TVCwgUFVULCBGT08iKSkKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJv
bC1BbGxvdy1IZWFkZXJzIiwgIngtdGVzdCwgeC1mb28iKSkKKyAgICAgICAgaGVhZGVycy5hcHBl
bmQoKCJBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycyIsICJ4LXJlcXVlc3QtbWV0aG9kIikp
CisKKyAgICBoZWFkZXJzLmFwcGVuZCgoIngtcmVxdWVzdC1tZXRob2QiLCByZXF1ZXN0Lm1ldGhv
ZCkpCisgICAgcmV0dXJuIGhlYWRlcnMsICIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvcHJlZmxpZ2h0
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzb3VyY2VzL3ByZWZsaWdodC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MmRjZWJhNjgzZDhkZjY5ZDFl
YmZiNzAzYWMwY2I1OTljMGU5ZDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3ByZWZsaWdo
dC5weQpAQCAtMCwwICsxLDU2IEBACitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAg
aGVhZGVycyA9IFsoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIildCisgICAgc3Rhc2hlZF9k
YXRhID0geydjb250cm9sX3JlcXVlc3RfaGVhZGVycyc6ICIiLCAncHJlZmxpZ2h0JzogIjAiLCAn
cHJlZmxpZ2h0X3JlZmVycmVyJzogIiJ9CisKKyAgICBpZiAib3JpZ2luIiBpbiByZXF1ZXN0LkdF
VDoKKyAgICAgICAgZm9yIG9yaWdpbiBpbiByZXF1ZXN0LkdFVFsnb3JpZ2luJ10uc3BsaXQoIiwg
Iik6CisgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9y
aWdpbiIsIG9yaWdpbikpCisgICAgZWxzZToKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nl
c3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCAiKiIpKQorCisgICAgaWYgcmVxdWVzdC5tZXRob2Qg
PT0gIk9QVElPTlMiOgorICAgICAgICBpZiBub3QgIkFjY2Vzcy1Db250cm9sLVJlcXVlc3QtTWV0
aG9kIiBpbiByZXF1ZXN0LmhlYWRlcnM6CisgICAgICAgICAgICByZXNwb25zZS5zZXRfZXJyb3Io
NDAwLCAiTm8gQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1NZXRob2QgaGVhZGVyIikKKyAgICAgICAg
ICAgIHJldHVybiAiRVJST1I6IE5vIGFjY2Vzcy1jb250cm9sLXJlcXVlc3QtbWV0aG9kIGluIHBy
ZWZsaWdodCEiCisKKyAgICAgICAgaWYgImNvbnRyb2xfcmVxdWVzdF9oZWFkZXJzIiBpbiByZXF1
ZXN0LkdFVDoKKyAgICAgICAgICAgIHN0YXNoZWRfZGF0YVsnY29udHJvbF9yZXF1ZXN0X2hlYWRl
cnMnXSA9IHJlcXVlc3QuaGVhZGVycy5nZXQoIkFjY2Vzcy1Db250cm9sLVJlcXVlc3QtSGVhZGVy
cyIsICIiKQorCisgICAgICAgIGlmICJtYXhfYWdlIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAg
ICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtTWF4LUFnZSIsIHJlcXVlc3QuR0VU
WydtYXhfYWdlJ10pKQorCisgICAgICAgIGlmICJhbGxvd19oZWFkZXJzIiBpbiByZXF1ZXN0LkdF
VDoKKyAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVh
ZGVycyIsIHJlcXVlc3QuR0VUWydhbGxvd19oZWFkZXJzJ10pKQorCisgICAgICAgIGlmICJhbGxv
d19tZXRob2RzIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgi
QWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcyIsIHJlcXVlc3QuR0VUWydhbGxvd19tZXRob2Rz
J10pKQorCisgICAgICAgIHByZWZsaWdodF9zdGF0dXMgPSAyMDAKKyAgICAgICAgaWYgInByZWZs
aWdodF9zdGF0dXMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICAgICAgcHJlZmxpZ2h0X3N0YXR1
cyA9IGludChyZXF1ZXN0LkdFVC5maXJzdCgicHJlZmxpZ2h0X3N0YXR1cyIpKQorCisgICAgICAg
IHN0YXNoZWRfZGF0YVsncHJlZmxpZ2h0J10gPSAiMSIKKyAgICAgICAgc3Rhc2hlZF9kYXRhWydw
cmVmbGlnaHRfcmVmZXJyZXInXSA9IHJlcXVlc3QuaGVhZGVycy5nZXQoIlJlZmVyZXIiLCAiIikK
KyAgICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gucHV0KHJlcXVlc3QuR0VULmZpcnN0KCJ0b2tl
biIpLCBzdGFzaGVkX2RhdGEpCisKKyAgICAgICAgcmV0dXJuIHByZWZsaWdodF9zdGF0dXMsIGhl
YWRlcnMsICIiCisKKyAgICB0b2tlbiA9IE5vbmUKKyAgICBpZiAidG9rZW4iIGluIHJlcXVlc3Qu
R0VUOgorICAgICAgICB0b2tlbiA9IHJlcXVlc3QuR0VULmZpcnN0KCJ0b2tlbiIpCisgICAgICAg
IGRhdGEgPSByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtlKHRva2VuKQorICAgICAgICBpZiBkYXRh
OgorICAgICAgICAgICAgc3Rhc2hlZF9kYXRhID0gZGF0YQorCisgICAgI3VzZSB4LSogaGVhZGVy
cyBmb3IgcmV0dXJuaW5nIHZhbHVlIHRvIGJvZHlsZXNzIHJlc3BvbnNlcworICAgIGhlYWRlcnMu
YXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnMiLCAieC1kaWQtcHJlZmxpZ2h0
LCB4LWNvbnRyb2wtcmVxdWVzdC1oZWFkZXJzLCB4LXJlZmVycmVyLCB4LXByZWZsaWdodC1yZWZl
cnJlciwgeC1vcmlnaW4iKSkKKyAgICBoZWFkZXJzLmFwcGVuZCgoIngtZGlkLXByZWZsaWdodCIs
IHN0YXNoZWRfZGF0YVsncHJlZmxpZ2h0J10pKQorICAgIGhlYWRlcnMuYXBwZW5kKCgieC1jb250
cm9sLXJlcXVlc3QtaGVhZGVycyIsIHN0YXNoZWRfZGF0YVsnY29udHJvbF9yZXF1ZXN0X2hlYWRl
cnMnXSkpCisgICAgaGVhZGVycy5hcHBlbmQoKCJ4LXByZWZsaWdodC1yZWZlcnJlciIsIHN0YXNo
ZWRfZGF0YVsncHJlZmxpZ2h0X3JlZmVycmVyJ10pKQorICAgIGhlYWRlcnMuYXBwZW5kKCgieC1y
ZWZlcnJlciIsIHJlcXVlc3QuaGVhZGVycy5nZXQoIlJlZmVyZXIiLCAiIikgKSkKKyAgICBoZWFk
ZXJzLmFwcGVuZCgoIngtb3JpZ2luIiwgcmVxdWVzdC5oZWFkZXJzLmdldCgiT3JpZ2luIiwgIiIp
ICkpCisKKyAgICBpZiB0b2tlbjoKKyAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dCh0b2tl
biwgc3Rhc2hlZF9kYXRhKQorCisgICAgcmV0dXJuIGhlYWRlcnMsICIiCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNv
dXJjZXMvcmVkaXJlY3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvcmVkaXJlY3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc2N2Iy
MjNhYWNjYTM2NDcxNzNlNTE3YTYyMTIxZDJkM2RkNWJkMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291
cmNlcy9yZWRpcmVjdC5weQpAQCAtMCwwICsxLDQ4IEBACitkZWYgbWFpbihyZXF1ZXN0LCByZXNw
b25zZSk6CisgICAgc3Rhc2hlZF9kYXRhID0geydjb3VudCc6IDAsICdwcmVmbGlnaHQnOiAiMCJ9
CisgICAgc3RhdHVzID0gMzAyCisgICAgaGVhZGVycyA9IFsoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0
L3BsYWluIiksCisgICAgICAgICAgICAgICAoIkNhY2hlLUNvbnRyb2wiLCAibm8tY2FjaGUiKSwK
KyAgICAgICAgICAgICAgICgiUHJhZ21hIiwgIm5vLWNhY2hlIiksCisgICAgICAgICAgICAgICAo
IkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICIqIildCisgICAgdG9rZW4gPSBOb25lCisK
KyAgICBpZiAidG9rZW4iIGluIHJlcXVlc3QuR0VUOgorICAgICAgICB0b2tlbiA9IHJlcXVlc3Qu
R0VULmZpcnN0KCJ0b2tlbiIpCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LnNlcnZlci5zdGFzaC50
YWtlKHRva2VuKQorICAgICAgICBpZiBkYXRhOgorICAgICAgICAgICAgc3Rhc2hlZF9kYXRhID0g
ZGF0YQorCisgICAgaWYgcmVxdWVzdC5tZXRob2QgPT0gIk9QVElPTlMiOgorICAgICAgICBpZiAi
YWxsb3dfaGVhZGVycyIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgICAgICBoZWFkZXJzLmFwcGVu
ZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMiLCByZXF1ZXN0LkdFVFsnYWxsb3dfaGVh
ZGVycyddKSkKKyAgICAgICAgc3Rhc2hlZF9kYXRhWydwcmVmbGlnaHQnXSA9ICIxIgorICAgICAg
ICAjUHJlZmxpZ2h0IGlzIG5vdCByZWRpcmVjdGVkOiByZXR1cm4gMjAwCisgICAgICAgIGlmIG5v
dCAicmVkaXJlY3RfcHJlZmxpZ2h0IiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgICAgIGlmIHRv
a2VuOgorICAgICAgICAgICAgICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQocmVxdWVzdC5HRVQu
Zmlyc3QoInRva2VuIiksIHN0YXNoZWRfZGF0YSkKKyAgICAgICAgICAgIHJldHVybiAyMDAsIGhl
YWRlcnMsICIiCisKKyAgICBpZiAicmVkaXJlY3Rfc3RhdHVzIiBpbiByZXF1ZXN0LkdFVDoKKyAg
ICAgICAgc3RhdHVzID0gaW50KHJlcXVlc3QuR0VUWydyZWRpcmVjdF9zdGF0dXMnXSkKKworICAg
IHN0YXNoZWRfZGF0YVsnY291bnQnXSArPSAxCisKKyAgICAja2VlcCB1cmwgcGFyYW1ldGVycyBp
biBsb2NhdGlvbgorICAgIHVybF9wYXJhbWV0ZXJzID0gIj8iICsgIiYiLmpvaW4obWFwKGxhbWJk
YSB4OiB4WzBdWzBdICsgIj0iICsgeFsxXVswXSwgcmVxdWVzdC5HRVQuaXRlbXMoKSkpCisgICAg
I21ha2Ugc3VyZSBsb2NhdGlvbiBjaGFuZ2VzIGR1cmluZyByZWRpcmVjdGlvbiBsb29wCisgICAg
dXJsX3BhcmFtZXRlcnMgKz0gIiZjb3VudD0iICsgc3RyKHN0YXNoZWRfZGF0YVsnY291bnQnXSkK
KworICAgIGlmICJsb2NhdGlvbiIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIGhlYWRlcnMuYXBw
ZW5kKCgiTG9jYXRpb24iLCByZXF1ZXN0LkdFVFsnbG9jYXRpb24nXSArIHVybF9wYXJhbWV0ZXJz
KSkKKworICAgIGlmIHRva2VuOgorICAgICAgICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQocmVx
dWVzdC5HRVQuZmlyc3QoInRva2VuIiksIHN0YXNoZWRfZGF0YSkKKyAgICAgICAgaWYgIm1heF9j
b3VudCIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgICAgICBtYXhfY291bnQgPSAgaW50KHJlcXVl
c3QuR0VUWydtYXhfY291bnQnXSkKKyAgICAgICAgICAgICNzdG9wIHJlZGlyZWN0aW5nIGFuZCBy
ZXR1cm4gY291bnQKKyAgICAgICAgICAgIGlmIHN0YXNoZWRfZGF0YVsnY291bnQnXSA+IG1heF9j
b3VudDoKKyAgICAgICAgICAgICAgICAjIC0xIGJlY2F1c2UgdGhlIGxhc3QgaXMgbm90IGEgcmVk
aXJlY3Rpb24KKyAgICAgICAgICAgICAgICByZXR1cm4gc3RyKHN0YXNoZWRfZGF0YVsnY291bnQn
XSAtIDEpCisKKyAgICByZXR1cm4gc3RhdHVzLCBoZWFkZXJzLCAiIgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3Vy
Y2VzL3RvcC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNvdXJjZXMvdG9wLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44M2EzMTU3ZDE0ZDkwODFl
ZDAxY2Q3OTkyODc4OTk4MjJlMTk1MjNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3RvcC50
eHQKQEAgLTAsMCArMSBAQAordG9wClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvcmVzb3VyY2VzL3RyaWNrbGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvdHJpY2tsZS5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
ZTcwOTQ0NWM1OThjMTg3NzIyYzhmNTBmNmIxNjJhMjUyYWRhYmFmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzb3VyY2VzL3RyaWNrbGUucHkKQEAgLTAsMCArMSwxMiBAQAoraW1wb3J0IHRpbWUKKworZGVm
IG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIGRlbGF5ID0gZmxvYXQocmVxdWVzdC5HRVQu
Zmlyc3QoIm1zIiwgNTAwKSkgLyAxRTMKKyAgICBjb3VudCA9IGludChyZXF1ZXN0LkdFVC5maXJz
dCgiY291bnQiLCA1MCkpCisgICAgdGltZS5zbGVlcChkZWxheSkKKyAgICByZXNwb25zZS5oZWFk
ZXJzLnNldCgiQ29udGVudC10eXBlIiwgInRleHQvcGxhaW4iKQorICAgIHJlc3BvbnNlLndyaXRl
X3N0YXR1c19oZWFkZXJzKCkKKyAgICB0aW1lLnNsZWVwKGRlbGF5KTsKKyAgICBmb3IgaSBpbiB4
cmFuZ2UoY291bnQpOgorICAgICAgICByZXNwb25zZS53cml0ZXIud3JpdGVfY29udGVudCgiVEVT
VF9UUklDS0xFXG4iKQorICAgICAgICB0aW1lLnNsZWVwKGRlbGF5KQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3Vy
Y2VzL3V0aWxzLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3V0aWxzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0OTI5MzU2MjRkOTIy
ODZiNGFlNzkxOTdlOGQ2MGI0YzY0OTVkMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvdXRp
bHMuanMKQEAgLTAsMCArMSw2NiBAQAordmFyIGluV29ya2VyID0gZmFsc2U7Cit2YXIgUkVTT1VS
Q0VTX0RJUiA9ICIuLi9yZXNvdXJjZXMvIjsKKwordHJ5IHsKKyAgaW5Xb3JrZXIgPSAhKHNlbGYg
aW5zdGFuY2VvZiBXaW5kb3cpOworfSBjYXRjaCAoZSkgeworICBpbldvcmtlciA9IHRydWU7Cit9
CisKK2Z1bmN0aW9uIGRpcm5hbWUocGF0aCkgeworICAgIHJldHVybiBwYXRoLnJlcGxhY2UoL1wv
W15cL10qJC8sICcvJykKK30KKworZnVuY3Rpb24gY2hlY2tSZXF1ZXN0KHJlcXVlc3QsIEV4cGVj
dGVkVmFsdWVzRGljdCkgeworICBmb3IgKHZhciBhdHRyaWJ1dGUgaW4gRXhwZWN0ZWRWYWx1ZXNE
aWN0KSB7CisgICAgc3dpdGNoKGF0dHJpYnV0ZSkgeworICAgICAgY2FzZSAiaGVhZGVycyI6Cisg
ICAgICAgICAgZm9yICh2YXIga2V5IG9mIEV4cGVjdGVkVmFsdWVzRGljdFsiaGVhZGVycyJdLmtl
eXMoKSkKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdFsiaGVhZGVycyJdLmdldChr
ZXkpLCBFeHBlY3RlZFZhbHVlc0RpY3RbImhlYWRlcnMiXS5nZXQoa2V5KSwKKyAgICAgICAgICAg
ICAgIkNoZWNrIGhlYWRlcnMgYXR0cmlidXRlIGhhcyAiICsga2V5ICsgIjoiICsgRXhwZWN0ZWRW
YWx1ZXNEaWN0WyJoZWFkZXJzIl0uZ2V0KGtleSkpOworICAgICAgICBicmVhazsKKworICAgICAg
Y2FzZSAiYm9keSI6CisgICAgICAgIC8vZm9yIGNoZWNraW5nIGJvZHkncyBjb250ZW50LCBhIGRl
ZGljYXRlZCBhc3luY3Jvbm91cy9wcm9taXNlIHRlc3Qgc2hvdWxkIGJlIHVzZWQKKyAgICAgICAg
YXNzZXJ0X3RydWUocmVxdWVzdFsiaGVhZGVycyJdLmhhcygiQ29udGVudC1UeXBlIikgLCAiQ2hl
Y2sgcmVxdWVzdCBoYXMgYm9keSB1c2luZyBDb250ZW50LVR5cGUgaGVhZGVyIikKKyAgICAgICAg
YnJlYWs7CisKKyAgICAgIGNhc2UgIm1ldGhvZCI6CisgICAgICBjYXNlICJyZWZlcnJlciI6Cisg
ICAgICBjYXNlICJyZWZlcnJlclBvbGljeSI6CisgICAgICBjYXNlICJjcmVkZW50aWFscyI6Cisg
ICAgICBjYXNlICJjYWNoZSI6CisgICAgICBjYXNlICJyZWRpcmVjdCI6CisgICAgICBjYXNlICJp
bnRlZ3JpdHkiOgorICAgICAgY2FzZSAidXJsIjoKKyAgICAgIGNhc2UgImRlc3RpbmF0aW9uIjoK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0W2F0dHJpYnV0ZV0sIEV4cGVjdGVkVmFsdWVz
RGljdFthdHRyaWJ1dGVdLCAiQ2hlY2sgIiArIGF0dHJpYnV0ZSArICIgYXR0cmlidXRlIikKKyAg
ICAgICAgYnJlYWs7CisKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
fQorfQorCisvL2NoZWNrIHJlYWRlcidzIHRleHQgY29udGVudCBpbiBhbiBhc3luY3Jvbm91cyB0
ZXN0CitmdW5jdGlvbiByZWFkVGV4dFN0cmVhbShyZWFkZXIsIGFzeW5jVGVzdCwgZXhwZWN0ZWRW
YWx1ZSwgcmV0cmlldmVkVGV4dCkgeworICBpZiAoIXJldHJpZXZlZFRleHQpCisgICAgcmV0cmll
dmVkVGV4dCA9ICIiOworICByZWFkZXIucmVhZCgpLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAg
IGlmICghZGF0YS5kb25lKSB7CisgICAgICB2YXIgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2Rlcigp
OworICAgICAgcmV0cmlldmVkVGV4dCArPSBkZWNvZGVyLmRlY29kZShkYXRhLnZhbHVlKTsKKyAg
ICAgIHJlYWRUZXh0U3RyZWFtKHJlYWRlciwgYXN5bmNUZXN0LCBleHBlY3RlZFZhbHVlLCByZXRy
aWV2ZWRUZXh0KTsKKyAgICB9CisgICAgYXN5bmNUZXN0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAg
ICBhc3NlcnRfZXF1YWxzKHJldHJpZXZlZFRleHQsIGV4cGVjdGVkVmFsdWUsICJSZXRyaWV2ZSBh
bmQgdmVyaWZ5IHN0cmVhbSIpOworICAgICAgYXN5bmNUZXN0LmRvbmUoKTsKKyAgICB9KTsKKyAg
fSkuY2F0Y2goZnVuY3Rpb24oZSkgeworICAgIGFzeW5jVGVzdC5zdGVwKGZ1bmN0aW9uKCkgewor
ICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiQ2Fubm90IHJlYWQgc3RyZWFtICIgKyBlKTsKKyAgICAg
IGFzeW5jVGVzdC5kb25lKCk7CisgICAgfSk7CisgIH0pOworfQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0
b3JzLWF0dHJpYnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWRlZGljYXRlZC13b3JrZXIt
ZXhwZWN0ZWQudHh0CmluZGV4IDgzNjFhMWQ0ZGNmZTVjYTk4ZjZmYzFlYzk1ODY1YmRkY2VkODc3
MzQuLmIxN2I2ZDNiMjAxZmQ0NTRiY2E1YjEzZjZmNTNjZTcyNDM5ZDQ2NzYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZGVkaWNh
dGVkLXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1j
b25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAt
NjQsNiArNjQsMTEgQEAgUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JlYWRhYmxlU3RyZWFtJykuaGFzT3duUHIKIFBBU1MgW1dvcmtlcl0gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZWFkYWJsZVN0cmVhbScpLmhh
c093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlYWRhYmxlU3RyZWFtJykuZW51bWVyYWJsZSBp
cyBmYWxzZQogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ1JlYWRhYmxlU3RyZWFtJykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgW1dvcmtl
cl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykudmFs
dWUgaXMgUmVxdWVzdAorUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BB
U1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1
ZXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIFtXb3JrZXJdIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVudW1lcmFibGUg
aXMgZmFsc2UKK1BBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSZXF1ZXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgW1dvcmtlcl0gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdVUkwnKS52YWx1ZSBpcyBVUkwK
IFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdV
UkwnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgW1dvcmtlcl0gT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdVUkwnKS5oYXNPd25Qcm9wZXJ0eSgn
c2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9nbG9iYWwtY29u
c3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL2ds
b2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggMmRlM2ZhZTI1
MTM3YjcwODlhOGE3NjMxYzJlMGIwMjE3NzUyOWQyYS4uYzM3MzRiN2ExZWE5ZmFjMzkwMzg3Mjc0
NDI5OWI4NTRmOWE4OWRjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2dsb2JhbC1j
b25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTkzOCw2
ICs5MzgsMTEgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1Byb2dyZXNzRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2UKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuaGFzT3duUHJvcGVydHko
J3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xv
YmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuY29uZmlndXJh
YmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdSZXF1ZXN0JykudmFsdWUgaXMgUmVxdWVzdAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFs
c2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0
JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuY29u
ZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSR0JDb2xvcicpLnZhbHVlIGlzIFJHQkNvbG9yCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0
JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdSR0JDb2xvcicpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJp
YnV0ZXMtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRpY2F0ZWQtd29y
a2VyLWV4cGVjdGVkLnR4dAppbmRleCA4MzYxYTFkNGRjZmU1Y2E5OGY2ZmMxZWM5NTg2NWJkZGNl
ZDg3NzM0Li5iMTdiNmQzYjIwMWZkNDU0YmNhNWIxM2Y2ZjUzY2U3MjQzOWQ0Njc2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMt
YXR0cmlidXRlcy1kZWRpY2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1kZWRp
Y2F0ZWQtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtNjQsNiArNjQsMTEgQEAgUEFTUyBbV29ya2Vy
XSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlYWRhYmxlU3RyZWFt
JykuaGFzT3duUHIKIFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdSZWFkYWJsZVN0cmVhbScpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxz
ZQogUEFTUyBbV29ya2VyXSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwg
J1JlYWRhYmxlU3RyZWFtJykuZW51bWVyYWJsZSBpcyBmYWxzZQogUEFTUyBbV29ya2VyXSBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlYWRhYmxlU3RyZWFtJykuY29u
ZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykudmFsdWUgaXMgUmVxdWVzdAorUEFTUyBbV29ya2Vy
XSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNP
d25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcp
IGlzIGZhbHNlCitQQVNTIFtXb3JrZXJdIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnUmVxdWVzdCcpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgW1dvcmtlcl0gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuY29uZmlndXJh
YmxlIGlzIHRydWUKIFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihnbG9iYWwsICdVUkwnKS52YWx1ZSBpcyBVUkwKIFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdVUkwnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0Jykg
aXMgZmFsc2UKIFBBU1MgW1dvcmtlcl0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdVUkwnKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9qcy9kb20vZ2xv
YmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCBhOGMyYTdiMTRi
ODUxMTg2Njc5ZDc4NzlkNmNiMWVmN2E5ZDFiNzc0Li4wOThkNmRmMDhjOWQxODkwMmYyZmZkZGY5
YzQzMTAxZjZiNTVlNjNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvanMv
ZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0CkBAIC05OTgsNiArOTk4LDExIEBAIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuaGFzT3duUHJvcGVydHko
J2dlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jl
c3NFdmVudCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5lbnVtZXJhYmxl
IGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
UHJvZ3Jlc3NFdmVudCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLnZhbHVlIGlzIFJlcXVlc3QKK1BB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFz
T3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxz
ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3Qn
KS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS52YWx1ZSBpcyBSR0JD
b2xvcgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNv
bG9yJykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS5oYXNPd25Qcm9wZXJ0eSgnc2V0
JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9qcy9kb20v
Z2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVj
dGVkLnR4dAppbmRleCA0YTA4ZjBmMzY2ZTE3NzExZGViODBiNWNlM2I4NjcwN2E2Mzc4OTE2Li4z
Y2U5MjQ5ZmVlMDQ5NWM2NjAwY2JkNjU3YTBjZWQ0ZDQzOWE4MGE5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRl
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2pzL2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xMDE4LDYgKzEwMTgs
MTEgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dy
ZXNzRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcp
IGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAn
UHJvZ3Jlc3NFdmVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuY29uZmlndXJhYmxlIGlz
IHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1
ZXN0JykudmFsdWUgaXMgUmVxdWVzdAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFz
T3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuY29uZmlndXJh
YmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdSR0JDb2xvcicpLnZhbHVlIGlzIFJHQkNvbG9yCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMg
ZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JD
b2xvcicpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1h
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1tYXZlcmlj
a3MvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5k
ZXggOWE1ZGE3MDUyYjFlNzlkZmFmNjAyZjMyNDA4M2M2NDFhN2RjMjBhNS4uYWY0YTYxZmZkZTZh
ODhhYTA1YTU4MWRjY2VjOGQ4OWQwYTQxMWQyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLW1hdmVyaWNrcy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbWF2ZXJpY2tzL2pz
L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC05OTgs
NiArOTk4LDExIEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWws
ICdQcm9ncmVzc0V2ZW50JykuaGFzT3duUHJvcGVydHkoJ2dlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmNvbmZpZ3Vy
YWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUmVxdWVzdCcpLnZhbHVlIGlzIFJlcXVlc3QKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZh
bHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVz
dCcpLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmNv
bmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
Z2xvYmFsLCAnUkdCQ29sb3InKS52YWx1ZSBpcyBSR0JDb2xvcgogUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JHQkNvbG9yJykuaGFzT3duUHJvcGVydHkoJ2dl
dCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUkdCQ29sb3InKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy15b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVj
dG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy15
b3NlbWl0ZS9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dAppbmRleCBhYjRlMTdhYzUwYmIzMjUyZTkwODYwYjIzOGFmYzdhOGU1OTBmNjg4Li5iMjljZTY1
ZjU4MTAyZjQ5ODA4OGY2ZGJkYTM4NzkwMWYzNzMyYzllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMteW9zZW1pdGUvanMvZG9tL2dsb2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXlvc2VtaXRl
L2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0x
MDczLDYgKzEwNzMsMTEgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ1JlY3QnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmEKIFBBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZWN0JykuaGFzT3duUHJvcGVydHkoJ3Nl
dCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUmVjdCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdSZWN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykudmFsdWUgaXMg
UmVxdWVzdAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Jl
cXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ3Nl
dCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFs
LCAnUmVxdWVzdCcpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdTUUxFeGNlcHRpb24n
KS52YWx1ZSBpcyBTUUxFeGNlcHRpb24KIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdTUUxFeGNlcHRpb24nKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFs
c2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdTUUxFeGNl
cHRpb24nKS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9qcy9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAppbmRleCAyNjJkMGQ5MTIxY2VhY2Ez
MzE1ZDEzNTBlMzRkNDczNDkwZGFhZDYzLi5iN2VhODE5MGQzZGNjOTA2ZjQ2NWU0ZmYyMGZjYWRi
YWExMDllOWViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvanMvZG9tL2ds
b2JhbC1jb25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhw
ZWN0ZWQudHh0CkBAIC0xMDIzLDYgKzEwMjMsMTEgQEAgUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZlbnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2UK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2
ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jlc3NFdmVudCcpLmVudW1lcmFibGUgaXMg
ZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdQcm9n
cmVzc0V2ZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykudmFsdWUgaXMgUmVxdWVzdAorUEFTUyBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Q
cm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCitQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVu
dW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihn
bG9iYWwsICdSZXF1ZXN0JykuY29uZmlndXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLnZhbHVlIGlzIFJHQkNvbG9y
CiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3In
KS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicpLmhhc093blByb3BlcnR5KCdzZXQnKSBp
cyBmYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2pzL2RvbS9nbG9i
YWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL2pzL2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLWF0dHJpYnV0ZXMtZXhwZWN0ZWQu
dHh0CmluZGV4IDMxZThjYWYxNTQxYzFjNGY2YzQ1ZGExNWIzYWJlN2Y1MjM1Njg0ZWEuLmJmY2Iy
MmIyZmE4OTEyM2U1MzM4MGNmNjgxNjUxNWRhNmUzYWE2MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9qcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRyaWJ1dGVzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vanMvZG9tL2dsb2JhbC1j
b25zdHJ1Y3RvcnMtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTg3Myw2ICs4NzMsMTEgQEAg
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ1Byb2dyZXNzRXZl
bnQnKS5oYXNPd25Qcm9wZXJ0eSgnZ2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZh
bHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsLCAnUHJvZ3Jl
c3NFdmVudCcpLmVudW1lcmFibGUgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihnbG9iYWwsICdQcm9ncmVzc0V2ZW50JykuY29uZmlndXJhYmxlIGlzIHRydWUK
K1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0Jyku
dmFsdWUgaXMgUmVxdWVzdAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbCwgJ1JlcXVlc3QnKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UKK1BBU1MgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuaGFzT3duUHJv
cGVydHkoJ3NldCcpIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZ2xvYmFsLCAnUmVxdWVzdCcpLmVudW1lcmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSZXF1ZXN0JykuY29uZmlndXJhYmxlIGlz
IHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JD
b2xvcicpLnZhbHVlIGlzIFJHQkNvbG9yCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZ2xvYmFsLCAnUkdCQ29sb3InKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWwsICdSR0JDb2xvcicp
Lmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>