<?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>213906</bug_id>
          
          <creation_ts>2020-07-02 15:55:41 -0700</creation_ts>
          <short_desc>Fix transform feedback tests</short_desc>
          <delta_ts>2020-07-24 14:42:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>126404</blocked>
    
    <blocked>209513</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="James Darpinian">jdarpinian</reporter>
          <assigned_to name="James Darpinian">jdarpinian</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>justin_fan</cc>
    
    <cc>kbr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1668405</commentid>
    <comment_count>0</comment_count>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-02 15:55:41 -0700</bug_when>
    <thetext>Fix transform feedback tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668408</commentid>
    <comment_count>1</comment_count>
      <attachid>403413</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-02 16:04:18 -0700</bug_when>
    <thetext>Created attachment 403413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668422</commentid>
    <comment_count>2</comment_count>
      <attachid>403419</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-02 17:17:50 -0700</bug_when>
    <thetext>Created attachment 403419
rebaseline layout tests and fix non-mac build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668430</commentid>
    <comment_count>3</comment_count>
      <attachid>403419</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-02 17:34:20 -0700</bug_when>
    <thetext>Comment on attachment 403419
rebaseline layout tests and fix non-mac build

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

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1836
&gt; +    WebGLTransformFeedback* toBeBound = feedbackObject ? feedbackObject : m_defaultTransformFeedback.get();

auto

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.h:249
&gt; +    GCGLuint getMaxTransformFeedbackSeparateAttribs();

const?

&gt; Source/WebCore/html/canvas/WebGLProgram.h:77
&gt; +    int getRequiredTransformFeedbackBufferCount()

const

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:93
&gt; +    for (auto boundBuffer : m_boundIndexedTransformFeedbackBuffers) {

This will do unnecessary reference count churn. Should just use auto&amp;.

But also, Vector has a find function that I think we can use here.

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:105
&gt; +    for (unsigned i = 0; i &lt; m_boundIndexedTransformFeedbackBuffers.size(); i++) {
&gt; +        if (m_boundIndexedTransformFeedbackBuffers[i] == buffer)
&gt; +            m_boundIndexedTransformFeedbackBuffers[i] = nullptr;
&gt; +    }

range-based for loop would be better:

    for (auto&amp; boundBuffer : m_boundIndexedTransformFeedbackBuffers) {
        if (boundBuffer == &amp;buffer)
            boundBuffer = nullptr;
    }

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.h:58
&gt; +    WebGLProgram* getProgram() const { return m_program.get(); }

WebKit coding style says we don’t name these functions &quot;get&quot;.

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.h:59
&gt; +    void setProgram(WebGLProgram*);

Can this take a reference instead of a pointer?

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.h:62
&gt; +    bool usesBuffer(WebGLBuffer*);
&gt; +    void unbindBuffer(WebGLBuffer*);

Can these take a reference instead of a pointer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669047</commentid>
    <comment_count>4</comment_count>
      <attachid>403419</attachid>
    <who name="Justin Fan">justin_fan</who>
    <bug_when>2020-07-06 09:45:32 -0700</bug_when>
    <thetext>Comment on attachment 403419
rebaseline layout tests and fix non-mac build

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

&gt;&gt; Source/WebCore/html/canvas/WebGLProgram.h:77
&gt;&gt; +    int getRequiredTransformFeedbackBufferCount()
&gt; 
&gt; const

This function isn&apos;t const, since cacheInfoIfNeeded() is not, but Darin&apos;s comment about not calling getters &quot;get&quot; applies here

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.h:70
&gt; +    bool m_active = false;

Style nit: class member initializer defaults should use { } notation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669067</commentid>
    <comment_count>5</comment_count>
      <attachid>403419</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-07-06 10:55:24 -0700</bug_when>
    <thetext>Comment on attachment 403419
rebaseline layout tests and fix non-mac build

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

Great work James figuring out all of the dependent fixes needed!

LGTM modulo Darin&apos;s and Justin&apos;s other feedback.

To fix the build failure on gtk, it might be necessary to change WebGLTransformFeedback.idl to use:
  Conditional=WEBGL2,
  EnabledAtRuntime=WebGL2,
but not 100% sure. Some of the other WebGL 2.0-specific types (WebGLSampler, for example) only use &quot;#if ENABLE(WEBGL)&quot; guards in their headers, which seems wrong.

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1788
&gt; +    if (isContextLostOrPending() || !feedbackObject || feedbackObject-&gt;isDeleted() || !validateWebGLObject(&quot;deleteTransformFeedback&quot;, feedbackObject))

The isDeleted() check differs slightly from Chromium&apos;s validation - this version looks more correct. Is there a way to test the difference, and if so could you upstream a WebGL conformance test covering it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669094</commentid>
    <comment_count>6</comment_count>
      <attachid>403605</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-06 12:21:49 -0700</bug_when>
    <thetext>Created attachment 403605
address review feedback and fix non-webgl2 builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669100</commentid>
    <comment_count>7</comment_count>
      <attachid>403419</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-06 12:43:48 -0700</bug_when>
    <thetext>Comment on attachment 403419
rebaseline layout tests and fix non-mac build

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

&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.h:249
&gt;&gt; +    GCGLuint getMaxTransformFeedbackSeparateAttribs();
&gt; 
&gt; const?

And name should be maxTransformFeedbackSeparateAttribs()

&gt;&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:93
&gt;&gt; +    for (auto boundBuffer : m_boundIndexedTransformFeedbackBuffers) {
&gt; 
&gt; This will do unnecessary reference count churn. Should just use auto&amp;.
&gt; 
&gt; But also, Vector has a find function that I think we can use here.

I think you can just call m_boundIndexedTransformFeedbackBuffers.contains(buffer)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669106</commentid>
    <comment_count>8</comment_count>
      <attachid>403605</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-07-06 12:49:53 -0700</bug_when>
    <thetext>Comment on attachment 403605
address review feedback and fix non-webgl2 builds

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

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:64
&gt; +bool WebGLTransformFeedback::setBoundIndexedTransformFeedbackBuffer(GCGLuint index, WebGLBuffer* buffer)

You don&apos;t check the return value of this. Should it return void?

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:78
&gt; +bool WebGLTransformFeedback::getBoundIndexedTransformFeedbackBuffer(GCGLuint index, WebGLBuffer** outBuffer)
&gt; +{
&gt; +    if (index &gt; m_boundIndexedTransformFeedbackBuffers.size())
&gt; +        return false;
&gt; +    *outBuffer = m_boundIndexedTransformFeedbackBuffers[index].get();
&gt; +    return true;
&gt; +}

Not necessary right now, but this could return an Optional instead.

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.h:51
&gt; +    bool getBoundIndexedTransformFeedbackBuffer(GCGLuint index, WebGLBuffer** outBuffer);

Nit: Don&apos;t use &quot;get&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669171</commentid>
    <comment_count>9</comment_count>
      <attachid>403622</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-06 14:39:41 -0700</bug_when>
    <thetext>Created attachment 403622
more review feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669174</commentid>
    <comment_count>10</comment_count>
      <attachid>403419</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-06 14:42:41 -0700</bug_when>
    <thetext>Comment on attachment 403419
rebaseline layout tests and fix non-mac build

Thanks for all the feedback! It should all be addressed now.

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

&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1788
&gt;&gt; +    if (isContextLostOrPending() || !feedbackObject || feedbackObject-&gt;isDeleted() || !validateWebGLObject(&quot;deleteTransformFeedback&quot;, feedbackObject))
&gt; 
&gt; The isDeleted() check differs slightly from Chromium&apos;s validation - this version looks more correct. Is there a way to test the difference, and if so could you upstream a WebGL conformance test covering it?

These checks happen in the DeleteObject function in Chromium&apos;s implementation, but I don&apos;t think the behavior is different.

&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1836
&gt;&gt; +    WebGLTransformFeedback* toBeBound = feedbackObject ? feedbackObject : m_defaultTransformFeedback.get();
&gt; 
&gt; auto

Done.

&gt;&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.h:249
&gt;&gt;&gt; +    GCGLuint getMaxTransformFeedbackSeparateAttribs();
&gt;&gt; 
&gt;&gt; const?
&gt; 
&gt; And name should be maxTransformFeedbackSeparateAttribs()

Done.

&gt;&gt;&gt; Source/WebCore/html/canvas/WebGLProgram.h:77
&gt;&gt;&gt; +    int getRequiredTransformFeedbackBufferCount()
&gt;&gt; 
&gt;&gt; const
&gt; 
&gt; This function isn&apos;t const, since cacheInfoIfNeeded() is not, but Darin&apos;s comment about not calling getters &quot;get&quot; applies here

Removed &quot;get&quot;.

&gt;&gt;&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:93
&gt;&gt;&gt; +    for (auto boundBuffer : m_boundIndexedTransformFeedbackBuffers) {
&gt;&gt; 
&gt;&gt; This will do unnecessary reference count churn. Should just use auto&amp;.
&gt;&gt; 
&gt;&gt; But also, Vector has a find function that I think we can use here.
&gt; 
&gt; I think you can just call m_boundIndexedTransformFeedbackBuffers.contains(buffer)

This function was actually not used, so I deleted it.

&gt;&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:105
&gt;&gt; +    }
&gt; 
&gt; range-based for loop would be better:
&gt; 
&gt;     for (auto&amp; boundBuffer : m_boundIndexedTransformFeedbackBuffers) {
&gt;         if (boundBuffer == &amp;buffer)
&gt;             boundBuffer = nullptr;
&gt;     }

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.h:58
&gt;&gt; +    WebGLProgram* getProgram() const { return m_program.get(); }
&gt; 
&gt; WebKit coding style says we don’t name these functions &quot;get&quot;.

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.h:59
&gt;&gt; +    void setProgram(WebGLProgram*);
&gt; 
&gt; Can this take a reference instead of a pointer?

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.h:62
&gt;&gt; +    void unbindBuffer(WebGLBuffer*);
&gt; 
&gt; Can these take a reference instead of a pointer?

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.h:70
&gt;&gt; +    bool m_active = false;
&gt; 
&gt; Style nit: class member initializer defaults should use { } notation.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669177</commentid>
    <comment_count>11</comment_count>
      <attachid>403605</attachid>
    <who name="James Darpinian">jdarpinian</who>
    <bug_when>2020-07-06 14:46:09 -0700</bug_when>
    <thetext>Comment on attachment 403605
address review feedback and fix non-webgl2 builds

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

&gt;&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:64
&gt;&gt; +bool WebGLTransformFeedback::setBoundIndexedTransformFeedbackBuffer(GCGLuint index, WebGLBuffer* buffer)
&gt; 
&gt; You don&apos;t check the return value of this. Should it return void?

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.h:51
&gt;&gt; +    bool getBoundIndexedTransformFeedbackBuffer(GCGLuint index, WebGLBuffer** outBuffer);
&gt; 
&gt; Nit: Don&apos;t use &quot;get&quot;

The style guide says to use get for getters that use out parameters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669248</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-06 17:01:56 -0700</bug_when>
    <thetext>Committed r263999: &lt;https://trac.webkit.org/changeset/263999&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403622.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669249</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-06 17:02:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/65154525&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403413</attachid>
            <date>2020-07-02 16:04:18 -0700</date>
            <delta_ts>2020-07-02 17:17:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213906-20200702160418.patch</filename>
            <type>text/plain</type>
            <size>25294</size>
            <attacher name="James Darpinian">jdarpinian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM1MjE0MzJmZTgzMjM1
YmU5MWYwNzIwNjkwOWQ0MDAwYWU5ZTY4ZC4uZTYyMTQ0MTQxMmE0NWYxYTQyYzU4OWMwODk1OGZj
NzRkMDQzOWI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA3LTAyICBKYW1l
cyBEYXJwaW5pYW4gIDxqZGFycGluaWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBGaXggdHJh
bnNmb3JtIGZlZWRiYWNrIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTM5MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGaXggdHJhbnNmb3JtIGZlZWRiYWNrIGNvbmZvcm1hbmNlIHRlc3RzIGJ5
IGltcGxlbWVudGluZyBtaXNzaW5nIGZ1bmN0aW9uYWxpdHkgc3VjaCBhczoKKyAgICAgICAgKiBU
cmFuc2Zvcm0gZmVlZGJhY2sgb2JqZWN0IHN0YXRlIHRyYWNraW5nCisgICAgICAgICogVmFsaWRh
dGlvbiBmb3IgYWxsIEdMIGVycm9ycyB0aGF0IGNhbiBhZmZlY3Qgc3RhdGUgdHJhY2tpbmcgYmVm
b3JlIGNhbGxpbmcgQU5HTEUKKyAgICAgICAgKiBEZWZhdWx0IHRyYW5zZm9ybSBmZWVkYmFjayBv
YmplY3QKKyAgICAgICAgKiBQYXVzZS9yZXN1bWUKKyAgICAgICAgKiBGaXggdmVydGV4QXR0cmli
RGl2aXNvciBpbiBXZWJHTCAyICh1bnJlbGF0ZWQgdG8gdHJhbnNmb3JtIGZlZWRiYWNrKQorCisg
ICAgICAgIEFmdGVyIHRoaXMsIGFsbCByZWxhdGVkIHRlc3RzIHBhc3MgZXhjZXB0IGZvciBhIGZl
dyB0aGF0IGFsc28gZmFpbCBpbiBDaHJvbWUsIGFuZCBvbmUgdGhhdCB1c2VzCisgICAgICAgIFBJ
WEVMX1BBQ0tfQlVGRkVSIHdoaWNoIGlzIG5vdCB5ZXQgc3VwcG9ydGVkLgorCisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp+V2ViR0wyUmVuZGVyaW5nQ29udGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFsaXplTmV3Q29udGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVUcmFu
c2Zvcm1GZWVkYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0
OjpiaW5kVHJhbnNmb3JtRmVlZGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRhdGVUcmFu
c2Zvcm1GZWVkYmFja1ByaW1pdGl2ZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6YmVnaW5UcmFuc2Zvcm1GZWVkYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjplbmRUcmFuc2Zvcm1GZWVkYmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp0cmFuc2Zvcm1GZWVkYmFja1Zhcnlp
bmdzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnBhdXNlVHJh
bnNmb3JtRmVlZGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6cmVzdW1lVHJhbnNmb3JtRmVlZGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6c2V0SW5kZXhlZEJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcik6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRNYXhUcmFuc2Zvcm1GZWVkYmFj
a1NlcGFyYXRlQXR0cmlicyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpnZXRQYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6dW5jYWNoZURlbGV0ZWRCdWZmZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
MlJlbmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xQcm9ncmFtOjpjYWNoZUluZm9JZk5lZWRlZCk6
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmg6CisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFRyYW5zZm9ybUZlZWRiYWNrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xUcmFu
c2Zvcm1GZWVkYmFjazo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpzZXRQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OnNldEJvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNr
QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OmdldEJv
dW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMVHJhbnNmb3JtRmVlZGJhY2s6Omhhc0Vub3VnaEJ1ZmZlcnMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6dXNlc0J1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjp1bmJpbmRCdWZmZXIpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6dmFsaWRhdGVQcm9ncmFtRm9yUmVzdW1l
IGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdM
RS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6dmVydGV4
QXR0cmliRGl2aXNvcik6CisKIDIwMjAtMDYtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBEcm9wIEF1ZGlvQ29udGV4dEJhc2UgY2xhc3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5k
ZXggY2RiODMxYzUyODNlYzcyZDdkMjg1YzBkNzg5OTBlMDM4NDBkODM0OS4uYmYzMzNkYzc2MGEx
ZjgyMTk1MmUxOTRkNmZlNzViMmExYmZkYzJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTExMiw3ICsxMTIs
NiBAQCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp+V2ViR0wyUmVuZGVyaW5nQ29udGV4dCgpCiAg
ICAgLy8gdGhleSB3aWxsIGJlIGZyZWVkIGJlZm9yZSB0aGUgbGFzdCBjb250ZXh0IGlzIHJlbW92
ZWQgZnJvbSB0aGUgY29udGV4dCBncm91cC4KICAgICBtX3JlYWRGcmFtZWJ1ZmZlckJpbmRpbmcg
PSBudWxscHRyOwogICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjayA9IG51bGxwdHI7Ci0gICAg
bV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVycy5jbGVhcigpOwogICAgIG1fYm91bmRUcmFu
c2Zvcm1GZWVkYmFja0J1ZmZlciA9IG51bGxwdHI7CiAgICAgbV9ib3VuZFVuaWZvcm1CdWZmZXIg
PSBudWxscHRyOwogICAgIG1fYm91bmRJbmRleGVkVW5pZm9ybUJ1ZmZlcnMuY2xlYXIoKTsKQEAg
LTEzNSwxMSArMTM0LDEyIEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6
ZU5ld0NvbnRleHQoKQogCiAgICAgLy8gTkVFRFNfUE9SVDogYm9vbGVhbiBvY2NsdXNpb24gcXVl
cnksIHRyYW5zZm9ybSBmZWVkYmFjayBwcmltaXRpdmVzIHdyaXR0ZW4gcXVlcnksIGVsYXBzZWQg
cXVlcnkKIAotICAgIGludCBtYXhUcmFuc2Zvcm1GZWVkYmFja0F0dHJpYnMgPSBnZXRJbnRQYXJh
bWV0ZXIoR3JhcGhpY3NDb250ZXh0R0w6Ok1BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfU0VQQVJBVEVf
QVRUUklCUyk7Ci0gICAgQVNTRVJUKG1heFRyYW5zZm9ybUZlZWRiYWNrQXR0cmlicyA+PSA0KTsK
LSAgICBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzLnJlc2l6ZShtYXhUcmFuc2Zvcm1G
ZWVkYmFja0F0dHJpYnMpOworICAgIG1fbWF4VHJhbnNmb3JtRmVlZGJhY2tTZXBhcmF0ZUF0dHJp
YnMgPSBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihHcmFwaGljc0NvbnRleHRHTDo6TUFYX1RSQU5T
Rk9STV9GRUVEQkFDS19TRVBBUkFURV9BVFRSSUJTKTsKKyAgICBBU1NFUlQobV9tYXhUcmFuc2Zv
cm1GZWVkYmFja1NlcGFyYXRlQXR0cmlicyA+PSA0KTsKIAotICAgIC8vIE5FRURTX1BPUlQ6IHNl
dCB1cCBkZWZhdWx0IHRyYW5zZm9ybSBmZWVkYmFjayBvYmplY3QKKyAgICBtX2RlZmF1bHRUcmFu
c2Zvcm1GZWVkYmFjayA9IGNyZWF0ZVRyYW5zZm9ybUZlZWRiYWNrKCk7CisgICAgbV9jb250ZXh0
LT5iaW5kVHJhbnNmb3JtRmVlZGJhY2soR3JhcGhpY3NDb250ZXh0R0w6OlRSQU5TRk9STV9GRUVE
QkFDSywgbV9kZWZhdWx0VHJhbnNmb3JtRmVlZGJhY2stPm9iamVjdCgpKTsKKyAgICBtX2JvdW5k
VHJhbnNmb3JtRmVlZGJhY2sgPSBtX2RlZmF1bHRUcmFuc2Zvcm1GZWVkYmFjazsKIAogICAgIG1f
Ym91bmRJbmRleGVkVW5pZm9ybUJ1ZmZlcnMucmVzaXplKGdldEludFBhcmFtZXRlcihHcmFwaGlj
c0NvbnRleHRHTDo6TUFYX1VOSUZPUk1fQlVGRkVSX0JJTkRJTkdTKSk7CiAgICAgbV91bmlmb3Jt
QnVmZmVyT2Zmc2V0QWxpZ25tZW50ID0gZ2V0SW50UGFyYW1ldGVyKEdyYXBoaWNzQ29udGV4dEdM
OjpVTklGT1JNX0JVRkZFUl9PRkZTRVRfQUxJR05NRU5UKTsKQEAgLTE3ODUsMTEgKzE3ODUsMTgg
QEAgUmVmUHRyPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmNyZWF0ZVRyYW5zZm9ybUZlZWRiYWNrKCkKIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
OjpkZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKiBmZWVkYmFj
a09iamVjdCkKIHsKLSAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQorICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIWZlZWRiYWNrT2JqZWN0IHx8IGZlZWRiYWNrT2Jq
ZWN0LT5pc0RlbGV0ZWQoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZGVsZXRlVHJhbnNmb3Jt
RmVlZGJhY2siLCBmZWVkYmFja09iamVjdCkpCiAgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBB
U1NFUlQoZmVlZGJhY2tPYmplY3QgIT0gbV9kZWZhdWx0VHJhbnNmb3JtRmVlZGJhY2spOworICAg
IAorICAgIGlmIChmZWVkYmFja09iamVjdC0+aXNBY3RpdmUoKSkgeworICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICJkZWxldGVU
cmFuc2Zvcm1GZWVkYmFjayIsICJhdHRlbXB0IHRvIGRlbGV0ZSBhbiBhY3RpdmUgdHJhbnNmb3Jt
IGZlZWRiYWNrIG9iamVjdCIpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgaWYgKG1f
Ym91bmRUcmFuc2Zvcm1GZWVkYmFjayA9PSBmZWVkYmFja09iamVjdCkKLSAgICAgICAgbV9ib3Vu
ZFRyYW5zZm9ybUZlZWRiYWNrID0gbnVsbHB0cjsKKyAgICAgICAgbV9ib3VuZFRyYW5zZm9ybUZl
ZWRiYWNrID0gbV9kZWZhdWx0VHJhbnNmb3JtRmVlZGJhY2s7CiAKICAgICBkZWxldGVPYmplY3Qo
ZmVlZGJhY2tPYmplY3QpOwogfQpAQCAtMTgxNywxNiArMTgyNCw2NCBAQCB2b2lkIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OmJpbmRUcmFuc2Zvcm1GZWVkYmFjayhHQ0dMZW51bSB0YXJnZXQsIFdl
YkdMVHJhbnNmbwogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29udGV4dC0+
YmluZFRyYW5zZm9ybUZlZWRiYWNrKHRhcmdldCwgb2JqZWN0T3JaZXJvKGZlZWRiYWNrT2JqZWN0
KSk7Ci0gICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrID0gZmVlZGJhY2tPYmplY3Q7CisgICAg
aWYgKHRhcmdldCAhPSBHcmFwaGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLKSB7Cisg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX0VOVU0s
ICJiaW5kVHJhbnNmb3JtRmVlZGJhY2siLCAidGFyZ2V0IG11c3QgYmUgVFJBTlNGT1JNX0ZFRURC
QUNLIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1fYm91bmRUcmFuc2Zvcm1G
ZWVkYmFjay0+aXNBY3RpdmUoKSAmJiAhbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5pc1BhdXNl
ZCgpKSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZB
TElEX09QRVJBVElPTiwgImJpbmRUcmFuc2Zvcm1GZWVkYmFjayIsICJ0cmFuc2Zvcm0gZmVlZGJh
Y2sgaXMgYWN0aXZlIGFuZCBub3QgcGF1c2VkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKiB0b0JlQm91bmQgPSBmZWVkYmFja09iamVjdCA/
IGZlZWRiYWNrT2JqZWN0IDogbV9kZWZhdWx0VHJhbnNmb3JtRmVlZGJhY2suZ2V0KCk7CisgICAg
bV9jb250ZXh0LT5iaW5kVHJhbnNmb3JtRmVlZGJhY2sodGFyZ2V0LCB0b0JlQm91bmQtPm9iamVj
dCgpKTsKKyAgICBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2sgPSB0b0JlQm91bmQ7Cit9CisKK3N0
YXRpYyBib29sIFZhbGlkYXRlVHJhbnNmb3JtRmVlZGJhY2tQcmltaXRpdmVNb2RlKEdDR0xlbnVt
IG1vZGUpCit7CisgICAgc3dpdGNoIChtb2RlKSB7CisgICAgY2FzZSBHTF9QT0lOVFM6CisgICAg
Y2FzZSBHTF9MSU5FUzoKKyAgICBjYXNlIEdMX1RSSUFOR0xFUzoKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIH0KIAogdm9p
ZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiZWdpblRyYW5zZm9ybUZlZWRiYWNrKEdDR0xlbnVt
IHByaW1pdGl2ZU1vZGUpCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIGlmICghVmFsaWRhdGVUcmFuc2Zvcm1GZWVkYmFja1By
aW1pdGl2ZU1vZGUocHJpbWl0aXZlTW9kZSkpIHsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfRU5VTSwgImJlZ2luVHJhbnNmb3JtRmVlZGJhY2si
LCAiaW52YWxpZCB0cmFuc2Zvcm0gZmVlZGJhY2sgcHJpbWl0aXZlIG1vZGUiKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBpZiAoIW1fY3VycmVudFByb2dyYW0pIHsKKyAgICAgICAgc3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BFUkFUSU9OLCAiYmVn
aW5UcmFuc2Zvcm1GZWVkYmFjayIsICJubyBwcm9ncmFtIGlzIGFjdGl2ZSIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIGlmIChtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2stPmlzQWN0aXZl
KCkpIHsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFM
SURfT1BFUkFUSU9OLCAiYmVnaW5UcmFuc2Zvcm1GZWVkYmFjayIsICJ0cmFuc2Zvcm0gZmVlZGJh
Y2sgaXMgYWxyZWFkeSBhY3RpdmUiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpbnQg
cmVxdWlyZWRCdWZmZXJDb3VudCA9IG1fY3VycmVudFByb2dyYW0tPmdldFJlcXVpcmVkVHJhbnNm
b3JtRmVlZGJhY2tCdWZmZXJDb3VudCgpOworICAgIGlmICghcmVxdWlyZWRCdWZmZXJDb3VudCkg
eworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9P
UEVSQVRJT04sICJiZWdpblRyYW5zZm9ybUZlZWRiYWNrIiwgImN1cnJlbnQgYWN0aXZlIHByb2dy
YW0gZG9lcyBub3Qgc3BlY2lmeSBhbnkgdHJhbnNmb3JtIGZlZWRiYWNrIHZhcnlpbmdzIHRvIHJl
Y29yZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICghbV9ib3VuZFRyYW5zZm9y
bUZlZWRiYWNrLT5oYXNFbm91Z2hCdWZmZXJzKHJlcXVpcmVkQnVmZmVyQ291bnQpKSB7CisgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJBVElP
TiwgImJlZ2luVHJhbnNmb3JtRmVlZGJhY2siLCAibm90IGVub3VnaCB0cmFuc2Zvcm0gZmVlZGJh
Y2sgYnVmZmVycyBib3VuZCIpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgbV9jb250
ZXh0LT5iZWdpblRyYW5zZm9ybUZlZWRiYWNrKHByaW1pdGl2ZU1vZGUpOworCisgICAgbV9ib3Vu
ZFRyYW5zZm9ybUZlZWRiYWNrLT5zZXRQcm9ncmFtKG1fY3VycmVudFByb2dyYW0uZ2V0KCkpOwor
ICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+c2V0QWN0aXZlKHRydWUpOworICAgIG1fYm91
bmRUcmFuc2Zvcm1GZWVkYmFjay0+c2V0UGF1c2VkKGZhbHNlKTsKIH0KIAogdm9pZCBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjplbmRUcmFuc2Zvcm1GZWVkYmFjaygpCkBAIC0xODM0LDEzICsxODg5
LDM2IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZW5kVHJhbnNmb3JtRmVlZGJhY2so
KQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIGlmICghbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5pc0FjdGl2ZSgpKSB7CisgICAgICAg
IHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwg
ImVuZFRyYW5zZm9ybUZlZWRiYWNrIiwgInRyYW5zZm9ybSBmZWVkYmFjayBpcyBub3QgYWN0aXZl
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCiAgICAgbV9jb250ZXh0LT5lbmRUcmFu
c2Zvcm1GZWVkYmFjaygpOworCisgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5zZXRQYXVz
ZWQoZmFsc2UpOworICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+c2V0QWN0aXZlKGZhbHNl
KTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp0cmFuc2Zvcm1GZWVkYmFja1Zh
cnlpbmdzKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHZhcnlp
bmdzLCBHQ0dMZW51bSBidWZmZXJNb2RlKQogewotICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5k
aW5nKCkgfHwgdmFyeWluZ3MuaXNFbXB0eSgpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJ0cmFu
c2Zvcm1GZWVkYmFja1ZhcnlpbmdzIiwgJnByb2dyYW0pKQorICAgIGlmIChpc0NvbnRleHRMb3N0
T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoInRyYW5zZm9ybUZlZWRiYWNrVmFy
eWluZ3MiLCAmcHJvZ3JhbSkpCiAgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBzd2l0Y2ggKGJ1
ZmZlck1vZGUpIHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpTRVBBUkFURV9BVFRSSUJT
OgorICAgICAgICBpZiAodmFyeWluZ3Muc2l6ZSgpID4gbV9tYXhUcmFuc2Zvcm1GZWVkYmFja1Nl
cGFyYXRlQXR0cmlicykgeworICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0R0w6OklOVkFMSURfVkFMVUUsICJ0cmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzIiwgInRv
byBtYW55IHZhcnlpbmdzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6SU5URVJMRUFWRURfQVRUUklC
UzoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJy
b3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfRU5VTSwgInRyYW5zZm9ybUZlZWRiYWNrVmFy
eWluZ3MiLCAiaW52YWxpZCBidWZmZXIgbW9kZSIpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIHByb2dyYW0uc2V0UmVxdWlyZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlckNvdW50KGJ1ZmZl
ck1vZGUgPT0gR3JhcGhpY3NDb250ZXh0R0w6OklOVEVSTEVBVkVEX0FUVFJJQlMgPyAxIDogdmFy
eWluZ3Muc2l6ZSgpKTsKIAogICAgIG1fY29udGV4dC0+dHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5n
cyhwcm9ncmFtLm9iamVjdCgpLCB2YXJ5aW5ncywgYnVmZmVyTW9kZSk7CiB9CkBAIC0xODYxLDEy
ICsxOTM5LDM5IEBAIFJlZlB0cjxXZWJHTEFjdGl2ZUluZm8+IFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZyhXZWJHCiAKIHZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6cGF1c2VUcmFuc2Zvcm1GZWVkYmFjaygpCiB7Ci0gICAgTE9HKFdlYkdMLCAi
W1sgTk9UIElNUExFTUVOVEVEIF1dIHBhdXNlVHJhbnNmb3JtRmVlZGJhY2soKSIpOworICAgIGlm
IChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgh
bV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5pc0FjdGl2ZSgpKSB7CisgICAgICAgIHN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwgInBhdXNlVHJh
bnNmb3JtRmVlZGJhY2siLCAidHJhbnNmb3JtIGZlZWRiYWNrIGlzIG5vdCBhY3RpdmUiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2st
PmlzUGF1c2VkKCkpIHsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
R0w6OklOVkFMSURfT1BFUkFUSU9OLCAicGF1c2VUcmFuc2Zvcm1GZWVkYmFjayIsICJ0cmFuc2Zv
cm0gZmVlZGJhY2sgaXMgYWxyZWFkeSBwYXVzZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+c2V0UGF1c2VkKHRydWUpOworICAgIG1f
Y29udGV4dC0+cGF1c2VUcmFuc2Zvcm1GZWVkYmFjaygpOwogfQogCiB2b2lkIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OnJlc3VtZVRyYW5zZm9ybUZlZWRiYWNrKCkKIHsKLSAgICBMT0coV2ViR0ws
ICJbWyBOT1QgSU1QTEVNRU5URUQgXV0gcmVzdW1lVHJhbnNmb3JtRmVlZGJhY2soKSIpOworICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
ICghbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT52YWxpZGF0ZVByb2dyYW1Gb3JSZXN1bWUobV9j
dXJyZW50UHJvZ3JhbS5nZXQoKSkpIHsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0R0w6OklOVkFMSURfT1BFUkFUSU9OLCAicmVzdW1lVHJhbnNmb3JtRmVlZGJhY2si
LCAidGhlIGN1cnJlbnQgcHJvZ3JhbSBpcyBub3QgdGhlIHNhbWUgYXMgd2hlbiBiZWdpblRyYW5z
Zm9ybUZlZWRiYWNrIHdhcyBjYWxsZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBp
ZiAoIW1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+aXNBY3RpdmUoKSB8fCAhbV9ib3VuZFRyYW5z
Zm9ybUZlZWRiYWNrLT5pc1BhdXNlZCgpKSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwgInJlc3VtZVRyYW5zZm9ybUZlZWRi
YWNrIiwgInRyYW5zZm9ybSBmZWVkYmFjayBpcyBub3QgYWN0aXZlIG9yIG5vdCBwYXVzZWQiKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+
c2V0UGF1c2VkKGZhbHNlKTsKKyAgICBtX2NvbnRleHQtPnJlc3VtZVRyYW5zZm9ybUZlZWRiYWNr
KCk7CiB9CiAKIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6c2V0SW5kZXhlZEJ1ZmZlckJp
bmRpbmcoY29uc3QgY2hhciAqZnVuY3Rpb25OYW1lLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0x1aW50
IGluZGV4LCBXZWJHTEJ1ZmZlciogYnVmZmVyKQpAQCAtMTg3OSw3ICsxOTg0LDcgQEAgYm9vbCBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpzZXRJbmRleGVkQnVmZmVyQmluZGluZyhjb25zdCBjaGFy
ICpmdW5jdGlvbk5hbWUsIEcKIAogICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUjoKLSAgICAgICAgaWYgKGlu
ZGV4ID49IG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAg
IGlmIChpbmRleCA+IG1fbWF4VHJhbnNmb3JtRmVlZGJhY2tTZXBhcmF0ZUF0dHJpYnMpIHsKICAg
ICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX1ZB
TFVFLCBmdW5jdGlvbk5hbWUsICJpbmRleCBvdXQgb2YgcmFuZ2UiKTsKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMTkwMCw3ICsyMDA1LDcgQEAgYm9vbCBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpzZXRJbmRleGVkQnVmZmVyQmluZGluZyhjb25zdCBjaGFyICpmdW5j
dGlvbk5hbWUsIEcKIAogICAgIHN3aXRjaCAodGFyZ2V0KSB7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUjoKLSAgICAgICAgbV9ib3VuZFRyYW5z
Zm9ybUZlZWRiYWNrQnVmZmVyc1tpbmRleF0gPSBidWZmZXI7CisgICAgICAgIG1fYm91bmRUcmFu
c2Zvcm1GZWVkYmFjay0+c2V0Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIoaW5k
ZXgsIGJ1ZmZlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6
OlVOSUZPUk1fQlVGRkVSOgogICAgICAgICBtX2JvdW5kSW5kZXhlZFVuaWZvcm1CdWZmZXJzW2lu
ZGV4XSA9IGJ1ZmZlcjsKQEAgLTE5MzgsMTIgKzIwNDMsMTUgQEAgV2ViR0xBbnkgV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRlcihHQ0dMZW51bSB0YXJnZXQsIEdDR0x1
aW50IGkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBzd2l0Y2ggKHRhcmdldCkgewot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklO
RElORzoKLSAgICAgICAgaWYgKGluZGV4ID49IG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZl
cnMuc2l6ZSgpKSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURC
QUNLX0JVRkZFUl9CSU5ESU5HOiB7CisgICAgICAgIFdlYkdMQnVmZmVyKiBidWZmZXI7CisgICAg
ICAgIGJvb2wgc3VjY2VzcyA9IG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+Z2V0Qm91bmRJbmRl
eGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIoaW5kZXgsICZidWZmZXIpOworICAgICAgICBpZiAo
IXN1Y2Nlc3MpIHsKICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dEdMOjpJTlZBTElEX1ZBTFVFLCAiZ2V0SW5kZXhlZFBhcmFtZXRlciIsICJpbmRleCBvdXQgb2Yg
cmFuZ2UiKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9Ci0gICAgICAg
IHJldHVybiBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzW2luZGV4XTsKKyAgICAgICAg
cmV0dXJuIG1ha2VSZWZQdHIoYnVmZmVyKTsKKyAgICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFOgogICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0R0w6OlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlQ6CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6VU5JRk9STV9CVUZGRVJfU0laRToKQEAgLTE5NTgsNyArMjA2Niw2IEBA
IFdlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEluZGV4ZWRQYXJhbWV0ZXIoR0NH
TGVudW0gdGFyZ2V0LCBHQ0dMdWludCBpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gbV9ib3VuZEluZGV4ZWRVbmlmb3JtQnVmZmVyc1tpbmRl
eF07Ci0gICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX0VOVU0sICJnZXRJbmRleGVk
UGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVyIG5hbWUiKTsKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CkBAIC0yNDg0LDYgKzI1OTEsMTEgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0
OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkKICAgICBtX2NvbnRleHQtPmhp
bnQodGFyZ2V0LCBtb2RlKTsKIH0KIAorR0NHTHVpbnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
Z2V0TWF4VHJhbnNmb3JtRmVlZGJhY2tTZXBhcmF0ZUF0dHJpYnMoKQoreworICAgIHJldHVybiBt
X21heFRyYW5zZm9ybUZlZWRiYWNrU2VwYXJhdGVBdHRyaWJzOworfQorCiBHQ0dMZW51bSBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpiYXNlSW50ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3JtYXQo
R0NHTGVudW0gaW50ZXJuYWxmb3JtYXQpCiB7CiAgICAgLy8gSGFuZGxlcyBzaXplZCwgdW5zaXpl
ZCwgYW5kIGNvbXByZXNzZWQgaW50ZXJuYWwgZm9ybWF0cy4KQEAgLTI2OTIsOCArMjgwNCw3IEBA
IFdlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQ0dMZW51bSBw
bmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpUUkFOU0ZPUk1fRkVFREJBQ0tfQlVG
RkVSX0JJTkRJTkc6CiAgICAgICAgIHJldHVybiBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZm
ZXI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJ
Tkc6Ci0gICAgICAgIC8vIEZJWE1FOiBORUVEU19QT1JUOiBzdXBwb3J0IGRlZmF1bHQgdHJhbnNm
b3JtIGZlZWRiYWNrIG9iamVjdC4KLSAgICAgICAgcmV0dXJuIG1fYm91bmRUcmFuc2Zvcm1GZWVk
YmFjazsKKyAgICAgICAgcmV0dXJuIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjayA9PSBtX2RlZmF1
bHRUcmFuc2Zvcm1GZWVkYmFjayA/IG51bGxwdHIgOiBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2s7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX1BBVVNFRDoK
ICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0R0w6OlVOSUZPUk1fQlVGRkVSX0JJTkRJTkc6CkBAIC0zMDIyLDEwICszMTMz
LDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp1bmNhY2hlRGVsZXRlZEJ1ZmZlcihX
ZWJHTEJ1ZmZlciogYnVmZmVyKQogICAgIFJFTU9WRV9CVUZGRVJfRlJPTV9CSU5ESU5HKG1fYm91
bmRQaXhlbFVucGFja0J1ZmZlcik7CiAgICAgUkVNT1ZFX0JVRkZFUl9GUk9NX0JJTkRJTkcobV9i
b3VuZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyKTsKICAgICBSRU1PVkVfQlVGRkVSX0ZST01fQklO
RElORyhtX2JvdW5kVW5pZm9ybUJ1ZmZlcik7Ci0KLSAgICBzaXplX3QgaW5kZXggPSBtX2JvdW5k
VHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzLmZpbmQoYnVmZmVyKTsKLSAgICBpZiAoaW5kZXggPCBt
X2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzLnNpemUoKSkKLSAgICAgICAgbV9ib3VuZFRy
YW5zZm9ybUZlZWRiYWNrQnVmZmVyc1tpbmRleF0gPSBudWxscHRyOworICAgIG1fYm91bmRUcmFu
c2Zvcm1GZWVkYmFjay0+dW5iaW5kQnVmZmVyKGJ1ZmZlcik7CiAKICAgICBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjp1bmNhY2hlRGVsZXRlZEJ1ZmZlcihidWZmZXIpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4
IGRiNWE4ZDQ5NmJhM2ZhNzMwNWZkYTFlNjc1N2M4NzBkZmE5Y2Q1ZTguLjU4NzZlZjA5ZDM0Nzkz
Yzk3NTVmMWNjMzI1OTEzM2FmZmU1ZTAxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTI0Niw2ICsyNDYsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0NHTGVudW0gdGFyZ2V0LCBH
Q0dMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0
KSBmaW5hbDsKICAgICB2b2lkIGhpbnQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBtb2RlKSBm
aW5hbDsKKyAgICBHQ0dMdWludCBnZXRNYXhUcmFuc2Zvcm1GZWVkYmFja1NlcGFyYXRlQXR0cmli
cygpOwogCiBwcml2YXRlOgogICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQoQ2FudmFzQmFzZSYs
IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyk7CkBAIC0zMDQsNyArMzA1LDcgQEAgcHJpdmF0
ZToKIAogICAgIFJlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiBtX3JlYWRGcmFtZWJ1ZmZlckJpbmRp
bmc7CiAgICAgUmVmUHRyPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IG1fYm91bmRUcmFuc2Zvcm1G
ZWVkYmFjazsKLSAgICBWZWN0b3I8UmVmUHRyPFdlYkdMQnVmZmVyPj4gbV9ib3VuZFRyYW5zZm9y
bUZlZWRiYWNrQnVmZmVyczsKKyAgICBSZWZQdHI8V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz4gbV9k
ZWZhdWx0VHJhbnNmb3JtRmVlZGJhY2s7CiAKICAgICBSZWZQdHI8V2ViR0xCdWZmZXI+IG1fYm91
bmRDb3B5UmVhZEJ1ZmZlcjsKICAgICBSZWZQdHI8V2ViR0xCdWZmZXI+IG1fYm91bmRDb3B5V3Jp
dGVCdWZmZXI7CkBAIC0zMjQsNiArMzI1LDcgQEAgcHJpdmF0ZToKICAgICBHQ0dMaW50IG1fdW5w
YWNrSW1hZ2VIZWlnaHQgeyAwIH07CiAgICAgR0NHTGludCBtX3VucGFja1NraXBJbWFnZXMgeyAw
IH07CiAgICAgR0NHTGludCBtX3VuaWZvcm1CdWZmZXJPZmZzZXRBbGlnbm1lbnQgeyAwIH07Cisg
ICAgR0NHTHVpbnQgbV9tYXhUcmFuc2Zvcm1GZWVkYmFja1NlcGFyYXRlQXR0cmlicyB7IDAgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFByb2dyYW0uY3BwCmluZGV4IGQxYjBlNzQ2ZTgwYTUyNjY2NWFlODZiNzE4ZmJlYzUy
NjdiZWUwMDIuLjQwZTc4MDdmZTE0YjU0ZGVmNDYwZjhhODNlNTdmOGNkMDRjN2YyMTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcApAQCAtMjI0LDggKzIy
NCwxMCBAQCB2b2lkIFdlYkdMUHJvZ3JhbTo6Y2FjaGVJbmZvSWZOZWVkZWQoKQogICAgIEdDR0xp
bnQgbGlua1N0YXR1cyA9IDA7CiAgICAgY29udGV4dC0+Z2V0UHJvZ3JhbWl2KG9iamVjdCgpLCBH
cmFwaGljc0NvbnRleHRHTDo6TElOS19TVEFUVVMsICZsaW5rU3RhdHVzKTsKICAgICBtX2xpbmtT
dGF0dXMgPSBsaW5rU3RhdHVzOwotICAgIGlmIChtX2xpbmtTdGF0dXMpCisgICAgaWYgKG1fbGlu
a1N0YXR1cykgewogICAgICAgICBjYWNoZUFjdGl2ZUF0dHJpYkxvY2F0aW9ucyhjb250ZXh0KTsK
KyAgICAgICAgbV9yZXF1aXJlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyQ291bnQgPSBtX3JlcXVp
cmVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJDb3VudEFmdGVyTmV4dExpbms7CisgICAgfQogICAg
IG1faW5mb1ZhbGlkID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xQcm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFByb2dyYW0uaAppbmRleCA4OTM2YjY5ZjUzZjIwM2UyZjA3ZWJjYTk3MWRhOWVlOTdlZThhYjhm
Li4wNzYxNjM4ZWMyM2VhZmM0MGRhOTE0NmY5MWYxODYyODE3OGY0YjFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaApAQCAtNjksNiArNjksMTYgQEAgcHVibGlj
OgogICAgIFdlYkdMU2hhZGVyKiBnZXRBdHRhY2hlZFNoYWRlcihHQ0dMZW51bSk7CiAgICAgYm9v
bCBhdHRhY2hTaGFkZXIoV2ViR0xTaGFkZXIqKTsKICAgICBib29sIGRldGFjaFNoYWRlcihXZWJH
TFNoYWRlciopOworICAgIAorICAgIHZvaWQgc2V0UmVxdWlyZWRUcmFuc2Zvcm1GZWVkYmFja0J1
ZmZlckNvdW50KGludCBjb3VudCkKKyAgICB7CisgICAgICAgIG1fcmVxdWlyZWRUcmFuc2Zvcm1G
ZWVkYmFja0J1ZmZlckNvdW50QWZ0ZXJOZXh0TGluayA9IGNvdW50OworICAgIH0KKyAgICBpbnQg
Z2V0UmVxdWlyZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlckNvdW50KCkKKyAgICB7CisgICAgICAg
IGNhY2hlSW5mb0lmTmVlZGVkKCk7CisgICAgICAgIHJldHVybiBtX3JlcXVpcmVkVHJhbnNmb3Jt
RmVlZGJhY2tCdWZmZXJDb3VudDsKKyAgICB9CiAKIHByaXZhdGU6CiAgICAgV2ViR0xQcm9ncmFt
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKQEAgLTg5LDYgKzk5LDggQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8V2ViR0xTaGFkZXI+IG1fZnJhZ21lbnRTaGFkZXI7CiAKICAgICBib29sIG1f
aW5mb1ZhbGlkIHsgdHJ1ZSB9OworICAgIGludCBtX3JlcXVpcmVkVHJhbnNmb3JtRmVlZGJhY2tC
dWZmZXJDb3VudEFmdGVyTmV4dExpbmsgeyAwIH07CisgICAgaW50IG1fcmVxdWlyZWRUcmFuc2Zv
cm1GZWVkYmFja0J1ZmZlckNvdW50IHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1G
ZWVkYmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZl
ZWRiYWNrLmNwcAppbmRleCA1YTJmMDMzMGNkMDRkMjI0M2FhMDU5MWU2MDFkNmFjOGE0NWQ0Y2I3
Li5kNTViMzViMmIxNzU2ZWY1MWU1MDhkOTAyYTBjNjE2M2RiMDlmYTlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcApA
QCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxXZWJHTFRyYW5z
Zm9ybUZlZWRiYWNrPiBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpjcmVhdGUoV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYgY3R4KQorUmVmPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IFdlYkdMVHJh
bnNmb3JtRmVlZGJhY2s6OmNyZWF0ZShXZWJHTDJSZW5kZXJpbmdDb250ZXh0JiBjdHgpCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjayhjdHgpKTsKIH0K
QEAgLTQzLDEwICs0MywxMSBAQCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjp+V2ViR0xUcmFuc2Zv
cm1GZWVkYmFjaygpCiAgICAgZGVsZXRlT2JqZWN0KDApOwogfQogCi1XZWJHTFRyYW5zZm9ybUZl
ZWRiYWNrOjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
IGN0eCkKK1dlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OldlYkdMVHJhbnNmb3JtRmVlZGJhY2soV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dCYgY3R4KQogICAgIDogV2ViR0xTaGFyZWRPYmplY3QoY3R4KQog
ewogICAgIHNldE9iamVjdChjdHguZ3JhcGhpY3NDb250ZXh0R0woKS0+Y3JlYXRlVHJhbnNmb3Jt
RmVlZGJhY2soKSk7CisgICAgbV9ib3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnMu
cmVzaXplKGN0eC5nZXRNYXhUcmFuc2Zvcm1GZWVkYmFja1NlcGFyYXRlQXR0cmlicygpKTsKIH0K
IAogdm9pZCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QsIFBsYXRmb3JtR0xPYmplY3Qgb2JqZWN0KQpAQCAt
NTQsNiArNTUsNjEgQEAgdm9pZCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpkZWxldGVPYmplY3RJ
bXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QKICAgICBjb250ZXh0M2QtPmRl
bGV0ZVRyYW5zZm9ybUZlZWRiYWNrKG9iamVjdCk7CiB9CiAKK3ZvaWQgV2ViR0xUcmFuc2Zvcm1G
ZWVkYmFjazo6c2V0UHJvZ3JhbShXZWJHTFByb2dyYW0qIHByb2dyYW0pCit7CisgICAgbV9wcm9n
cmFtID0gcHJvZ3JhbTsKKyAgICBtX3Byb2dyYW1MaW5rQ291bnQgPSBwcm9ncmFtLT5nZXRMaW5r
Q291bnQoKTsKK30KKworYm9vbCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpzZXRCb3VuZEluZGV4
ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcihHQ0dMdWludCBpbmRleCwgV2ViR0xCdWZmZXIqIGJ1
ZmZlcikKK3sKKyAgICBpZiAoaW5kZXggPiBtX2JvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNr
QnVmZmVycy5zaXplKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBtX2JvdW5kSW5kZXhl
ZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyc1tpbmRleF0gPSBidWZmZXI7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK2Jvb2wgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6Z2V0Qm91bmRJbmRleGVkVHJh
bnNmb3JtRmVlZGJhY2tCdWZmZXIoR0NHTHVpbnQgaW5kZXgsIFdlYkdMQnVmZmVyKiogb3V0QnVm
ZmVyKQoreworICAgIGlmIChpbmRleCA+IG1fYm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tC
dWZmZXJzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICpvdXRCdWZmZXIgPSBt
X2JvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyc1tpbmRleF0uZ2V0KCk7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6aGFzRW5vdWdo
QnVmZmVycyhHQ0dMdWludCBudW1SZXF1aXJlZCkgY29uc3QKK3sKKyAgICBpZiAobnVtUmVxdWly
ZWQgPiBtX2JvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVycy5zaXplKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBmb3IgKEdDR0x1aW50IGkgPSAwOyBpIDwgbnVtUmVxdWly
ZWQ7IGkrKykgeworICAgICAgICBpZiAoIW1fYm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tC
dWZmZXJzW2ldLmdldCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjp1c2VzQnVmZmVy
KFdlYkdMQnVmZmVyKiBidWZmZXIpCit7CisgICAgZm9yIChhdXRvIGJvdW5kQnVmZmVyIDogbV9i
b3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnMpIHsKKyAgICAgICAgaWYgKGJvdW5k
QnVmZmVyID09IGJ1ZmZlcikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6dW5iaW5kQnVm
ZmVyKFdlYkdMQnVmZmVyKiBidWZmZXIpCit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG1fYm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzLnNpemUoKTsgaSsrKSB7Cisg
ICAgICAgIGlmIChtX2JvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyc1tpXSA9PSBi
dWZmZXIpCisgICAgICAgICAgICBtX2JvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVy
c1tpXSA9IG51bGxwdHI7CisgICAgfQorfQorCitib29sIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6
OnZhbGlkYXRlUHJvZ3JhbUZvclJlc3VtZShXZWJHTFByb2dyYW0qIHByb2dyYW0pIGNvbnN0Cit7
CisgICAgcmV0dXJuIHByb2dyYW0gJiYgbV9wcm9ncmFtID09IHByb2dyYW0gJiYgcHJvZ3JhbS0+
Z2V0TGlua0NvdW50KCkgPT0gbV9wcm9ncmFtTGlua0NvdW50OworfQorCiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFRyYW5zZm9ybUZlZWRiYWNrLmgKaW5kZXggZjcwMmFlYzE5MmQ3YmM2NzNjMjAzMzAyNTUxMzIz
YzA0NTFlMjgzNi4uOTJmM2ZhZGE5NWViMzdmNDU0YWMyMDU5OWFjYTQ4NzYwY2VkMTVlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFj
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJh
Y2suaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFdFQkdMKQogCisjaW5jbHVkZSAi
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMU2hhcmVkT2JqZWN0Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1LDEyICszNiw0MyBAQCBjbGFzcyBXZWJHTFRy
YW5zZm9ybUZlZWRiYWNrIGZpbmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2JqZWN0IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5XZWJHTFRyYW5zZm9ybUZlZWRiYWNrKCk7CiAKLSAgICBzdGF0aWMg
UmVmPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlJik7CisgICAgc3RhdGljIFJlZjxXZWJHTFRyYW5zZm9ybUZlZWRiYWNrPiBjcmVhdGUoV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dCYpOworICAgIAorICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7
IHJldHVybiBtX2FjdGl2ZTsgfQorICAgIGJvb2wgaXNQYXVzZWQoKSBjb25zdCB7IHJldHVybiBt
X3BhdXNlZDsgfQorICAgIAorICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wgYWN0aXZlKSB7IG1fYWN0
aXZlID0gYWN0aXZlOyB9CisgICAgdm9pZCBzZXRQYXVzZWQoYm9vbCBwYXVzZWQpIHsgbV9wYXVz
ZWQgPSBwYXVzZWQ7IH0KKyAgICAKKyAgICAvLyBUaGVzZSBhcmUgdGhlIGluZGV4ZWQgYmluZCBw
b2ludHMgZm9yIHRyYW5zZm9ybSBmZWVkYmFjayBidWZmZXJzLgorICAgIC8vIFJldHVybnMgZmFs
c2UgaWYgaW5kZXggaXMgb3V0IG9mIHJhbmdlIGFuZCB0aGUgY2FsbGVyIHNob3VsZAorICAgIC8v
IHN5bnRoZXNpemUgYSBHTCBlcnJvci4KKyAgICBib29sIHNldEJvdW5kSW5kZXhlZFRyYW5zZm9y
bUZlZWRiYWNrQnVmZmVyKEdDR0x1aW50IGluZGV4LCBXZWJHTEJ1ZmZlciopOworICAgIGJvb2wg
Z2V0Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIoR0NHTHVpbnQgaW5kZXgsIFdl
YkdMQnVmZmVyKiogb3V0QnVmZmVyKTsKKyAgICAKKyAgICBib29sIHZhbGlkYXRlUHJvZ3JhbUZv
clJlc3VtZShXZWJHTFByb2dyYW0qKSBjb25zdDsKIAorICAgIGJvb2wgaGFzRXZlckJlZW5Cb3Vu
ZCgpIGNvbnN0IHsgcmV0dXJuIG9iamVjdCgpICYmIG1faGFzRXZlckJlZW5Cb3VuZDsgfQorICAg
IHZvaWQgc2V0SGFzRXZlckJlZW5Cb3VuZCgpIHsgbV9oYXNFdmVyQmVlbkJvdW5kID0gdHJ1ZTsg
fQorICAgIAorICAgIFdlYkdMUHJvZ3JhbSogZ2V0UHJvZ3JhbSgpIGNvbnN0IHsgcmV0dXJuIG1f
cHJvZ3JhbS5nZXQoKTsgfQorICAgIHZvaWQgc2V0UHJvZ3JhbShXZWJHTFByb2dyYW0qKTsKKyAg
ICAKKyAgICBib29sIHVzZXNCdWZmZXIoV2ViR0xCdWZmZXIqKTsKKyAgICB2b2lkIHVuYmluZEJ1
ZmZlcihXZWJHTEJ1ZmZlciopOworICAgIAorICAgIGJvb2wgaGFzRW5vdWdoQnVmZmVycyhHQ0dM
dWludCBudW1SZXF1aXJlZCkgY29uc3Q7CiBwcml2YXRlOgotICAgIFdlYkdMVHJhbnNmb3JtRmVl
ZGJhY2soV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOworICAgIFdlYkdMVHJhbnNmb3JtRmVl
ZGJhY2soV2ViR0wyUmVuZGVyaW5nQ29udGV4dCYpOwogCiAgICAgdm9pZCBkZWxldGVPYmplY3RJ
bXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9iamVjdCkgb3ZlcnJpZGU7
CisgICAgCisgICAgYm9vbCBtX2FjdGl2ZSA9IGZhbHNlOworICAgIGJvb2wgbV9wYXVzZWQgPSBm
YWxzZTsKKyAgICBib29sIG1faGFzRXZlckJlZW5Cb3VuZCA9IGZhbHNlOworICAgIHVuc2lnbmVk
IG1fcHJvZ3JhbUxpbmtDb3VudCA9IDA7CisgICAgVmVjdG9yPFJlZlB0cjxXZWJHTEJ1ZmZlcj4+
IG1fYm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzOworICAgIFJlZlB0cjxXZWJH
TFByb2dyYW0+IG1fcHJvZ3JhbTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29u
dGV4dEdMQU5HTEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKaW5kZXggNDZmNzUyYzVmNDEzMTkxZTM0YmEzN2I2
YzQxOGQ5NjMzNDczNzQwNy4uNDc1YzQ5OTBkMDMyMzEzZDczMDIxNDUwODA5MzA4MDQ3NzM2MzI1
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKQEAgLTE5MjksNyArMTkyOSwx
MCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpkcmF3RWxlbWVudHNJbnN0YW5jZWQo
R0NHTGVudW0gbW9kZSwgR0NHTHNpemVpIGNvdQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjp2ZXJ0ZXhBdHRyaWJEaXZpc29yKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpc29y
KQogewotICAgIGdldEV4dGVuc2lvbnMoKS52ZXJ0ZXhBdHRyaWJEaXZpc29yKGluZGV4LCBkaXZp
c29yKTsKKyAgICBpZiAobV9pc0ZvcldlYkdMMikKKyAgICAgICAgZ2w6OlZlcnRleEF0dHJpYkRp
dmlzb3IoaW5kZXgsIGRpdmlzb3IpOworICAgIGVsc2UKKyAgICAgICAgZ2V0RXh0ZW5zaW9ucygp
LnZlcnRleEF0dHJpYkRpdmlzb3IoaW5kZXgsIGRpdmlzb3IpOwogfQogCiBHQ0dMdWludCBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6Z2V0VW5pZm9ybUJsb2NrSW5kZXgoUGxhdGZvcm1HTE9iamVj
dCBwcm9ncmFtLCBjb25zdCBTdHJpbmcmIHVuaWZvcm1CbG9ja05hbWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403419</attachid>
            <date>2020-07-02 17:17:50 -0700</date>
            <delta_ts>2020-07-06 12:21:48 -0700</delta_ts>
            <desc>rebaseline layout tests and fix non-mac build</desc>
            <filename>bug-213906-20200702171750.patch</filename>
            <type>text/plain</type>
            <size>48476</size>
            <attacher name="James Darpinian">jdarpinian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM1MjE0MzJmZTgzMjM1
YmU5MWYwNzIwNjkwOWQ0MDAwYWU5ZTY4ZC4uOWMxMWJjNDJjMzYyOWJiZjAwYTc2ZDhiMGM3OWVi
MjllNjdlZWNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA3LTAyICBKYW1l
cyBEYXJwaW5pYW4gIDxqZGFycGluaWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBGaXggdHJh
bnNmb3JtIGZlZWRiYWNrIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTM5MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGaXggdHJhbnNmb3JtIGZlZWRiYWNrIGNvbmZvcm1hbmNlIHRlc3RzIGJ5
IGltcGxlbWVudGluZyBtaXNzaW5nIGZ1bmN0aW9uYWxpdHkgc3VjaCBhczoKKyAgICAgICAgIC0g
VHJhbnNmb3JtIGZlZWRiYWNrIG9iamVjdCBzdGF0ZSB0cmFja2luZworICAgICAgICAgLSBWYWxp
ZGF0aW9uIGZvciBhbGwgR0wgZXJyb3JzIHRoYXQgY2FuIGFmZmVjdCBzdGF0ZSB0cmFja2luZyBi
ZWZvcmUgY2FsbGluZyBBTkdMRQorICAgICAgICAgLSBEZWZhdWx0IHRyYW5zZm9ybSBmZWVkYmFj
ayBvYmplY3QKKyAgICAgICAgIC0gUGF1c2UvcmVzdW1lCisgICAgICAgICAtIEZpeCB2ZXJ0ZXhB
dHRyaWJEaXZpc29yIGluIFdlYkdMIDIgKHVucmVsYXRlZCB0byB0cmFuc2Zvcm0gZmVlZGJhY2sp
CisKKyAgICAgICAgQWZ0ZXIgdGhpcywgYWxsIHJlbGF0ZWQgdGVzdHMgcGFzcyBleGNlcHQgZm9y
IGEgZmV3IHRoYXQgYWxzbyBmYWlsIGluIENocm9tZSwgYW5kIG9uZSB0aGF0IHVzZXMKKyAgICAg
ICAgUElYRUxfUEFDS19CVUZGRVIgd2hpY2ggaXMgbm90IHlldCBzdXBwb3J0ZWQuCisKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6On5XZWJHTDJSZW5kZXJpbmdDb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVOZXdD
b250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0
ZVRyYW5zZm9ybUZlZWRiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmJpbmRUcmFuc2Zvcm1GZWVkYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0
ZVRyYW5zZm9ybUZlZWRiYWNrUHJpbWl0aXZlTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpiZWdpblRyYW5zZm9ybUZlZWRiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmVuZFRyYW5zZm9ybUZlZWRiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnRyYW5zZm9ybUZlZWRiYWNr
VmFyeWluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cGF1
c2VUcmFuc2Zvcm1GZWVkYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpyZXN1bWVUcmFuc2Zvcm1GZWVkYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpzZXRJbmRleGVkQnVmZmVyQmluZGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldE1heFRyYW5zZm9ybUZl
ZWRiYWNrU2VwYXJhdGVBdHRyaWJzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldFBhcmFtZXRlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJp
bmdDb250ZXh0Ojp1bmNhY2hlRGVsZXRlZEJ1ZmZlcik6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUHJv
Z3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFByb2dyYW06OmNhY2hlSW5mb0lmTmVl
ZGVkKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaDoKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFRyYW5zZm9ybUZlZWRiYWNrOjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OnNldFByb2dyYW0pOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6c2V0Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVl
ZGJhY2tCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6
Z2V0Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6aGFzRW5vdWdoQnVmZmVycyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjp1c2VzQnVmZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OnVuYmluZEJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjp2YWxpZGF0ZVByb2dyYW1Gb3JS
ZXN1bWUgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJh
Y2suaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRH
TEFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjp2
ZXJ0ZXhBdHRyaWJEaXZpc29yKToKKwogMjAyMC0wNi0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgQXVkaW9Db250ZXh0QmFzZSBjbGFzcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNw
cAppbmRleCBjZGI4MzFjNTI4M2VjNzJkN2QyODVjMGQ3ODk5MGUwMzg0MGQ4MzQ5Li5iZjMzM2Rj
NzYwYTFmODIxOTUyZTE5NGQ2ZmU3NWIyYTFiZmRjMmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMTEyLDcg
KzExMiw2IEBAIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6On5XZWJHTDJSZW5kZXJpbmdDb250ZXh0
KCkKICAgICAvLyB0aGV5IHdpbGwgYmUgZnJlZWQgYmVmb3JlIHRoZSBsYXN0IGNvbnRleHQgaXMg
cmVtb3ZlZCBmcm9tIHRoZSBjb250ZXh0IGdyb3VwLgogICAgIG1fcmVhZEZyYW1lYnVmZmVyQmlu
ZGluZyA9IG51bGxwdHI7CiAgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrID0gbnVsbHB0cjsK
LSAgICBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzLmNsZWFyKCk7CiAgICAgbV9ib3Vu
ZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyID0gbnVsbHB0cjsKICAgICBtX2JvdW5kVW5pZm9ybUJ1
ZmZlciA9IG51bGxwdHI7CiAgICAgbV9ib3VuZEluZGV4ZWRVbmlmb3JtQnVmZmVycy5jbGVhcigp
OwpAQCAtMTM1LDExICsxMzQsMTIgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppbml0
aWFsaXplTmV3Q29udGV4dCgpCiAKICAgICAvLyBORUVEU19QT1JUOiBib29sZWFuIG9jY2x1c2lv
biBxdWVyeSwgdHJhbnNmb3JtIGZlZWRiYWNrIHByaW1pdGl2ZXMgd3JpdHRlbiBxdWVyeSwgZWxh
cHNlZCBxdWVyeQogCi0gICAgaW50IG1heFRyYW5zZm9ybUZlZWRiYWNrQXR0cmlicyA9IGdldElu
dFBhcmFtZXRlcihHcmFwaGljc0NvbnRleHRHTDo6TUFYX1RSQU5TRk9STV9GRUVEQkFDS19TRVBB
UkFURV9BVFRSSUJTKTsKLSAgICBBU1NFUlQobWF4VHJhbnNmb3JtRmVlZGJhY2tBdHRyaWJzID49
IDQpOwotICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnMucmVzaXplKG1heFRyYW5z
Zm9ybUZlZWRiYWNrQXR0cmlicyk7CisgICAgbV9tYXhUcmFuc2Zvcm1GZWVkYmFja1NlcGFyYXRl
QXR0cmlicyA9IGdldFVuc2lnbmVkSW50UGFyYW1ldGVyKEdyYXBoaWNzQ29udGV4dEdMOjpNQVhf
VFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRFX0FUVFJJQlMpOworICAgIEFTU0VSVChtX21heFRy
YW5zZm9ybUZlZWRiYWNrU2VwYXJhdGVBdHRyaWJzID49IDQpOwogCi0gICAgLy8gTkVFRFNfUE9S
VDogc2V0IHVwIGRlZmF1bHQgdHJhbnNmb3JtIGZlZWRiYWNrIG9iamVjdAorICAgIG1fZGVmYXVs
dFRyYW5zZm9ybUZlZWRiYWNrID0gY3JlYXRlVHJhbnNmb3JtRmVlZGJhY2soKTsKKyAgICBtX2Nv
bnRleHQtPmJpbmRUcmFuc2Zvcm1GZWVkYmFjayhHcmFwaGljc0NvbnRleHRHTDo6VFJBTlNGT1JN
X0ZFRURCQUNLLCBtX2RlZmF1bHRUcmFuc2Zvcm1GZWVkYmFjay0+b2JqZWN0KCkpOworICAgIG1f
Ym91bmRUcmFuc2Zvcm1GZWVkYmFjayA9IG1fZGVmYXVsdFRyYW5zZm9ybUZlZWRiYWNrOwogCiAg
ICAgbV9ib3VuZEluZGV4ZWRVbmlmb3JtQnVmZmVycy5yZXNpemUoZ2V0SW50UGFyYW1ldGVyKEdy
YXBoaWNzQ29udGV4dEdMOjpNQVhfVU5JRk9STV9CVUZGRVJfQklORElOR1MpKTsKICAgICBtX3Vu
aWZvcm1CdWZmZXJPZmZzZXRBbGlnbm1lbnQgPSBnZXRJbnRQYXJhbWV0ZXIoR3JhcGhpY3NDb250
ZXh0R0w6OlVOSUZPUk1fQlVGRkVSX09GRlNFVF9BTElHTk1FTlQpOwpAQCAtMTc4NSwxMSArMTc4
NSwxOCBAQCBSZWZQdHI8V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz4gV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6Y3JlYXRlVHJhbnNmb3JtRmVlZGJhY2soKQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmRlbGV0ZVRyYW5zZm9ybUZlZWRiYWNrKFdlYkdMVHJhbnNmb3JtRmVlZGJhY2sqIGZl
ZWRiYWNrT2JqZWN0KQogewotICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCisgICAg
aWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhZmVlZGJhY2tPYmplY3QgfHwgZmVlZGJh
Y2tPYmplY3QtPmlzRGVsZXRlZCgpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJkZWxldGVUcmFu
c2Zvcm1GZWVkYmFjayIsIGZlZWRiYWNrT2JqZWN0KSkKICAgICAgICAgcmV0dXJuOworICAgIAor
ICAgIEFTU0VSVChmZWVkYmFja09iamVjdCAhPSBtX2RlZmF1bHRUcmFuc2Zvcm1GZWVkYmFjayk7
CisgICAgCisgICAgaWYgKGZlZWRiYWNrT2JqZWN0LT5pc0FjdGl2ZSgpKSB7CisgICAgICAgIHN5
bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwgImRl
bGV0ZVRyYW5zZm9ybUZlZWRiYWNrIiwgImF0dGVtcHQgdG8gZGVsZXRlIGFuIGFjdGl2ZSB0cmFu
c2Zvcm0gZmVlZGJhY2sgb2JqZWN0Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBp
ZiAobV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrID09IGZlZWRiYWNrT2JqZWN0KQotICAgICAgICBt
X2JvdW5kVHJhbnNmb3JtRmVlZGJhY2sgPSBudWxscHRyOworICAgICAgICBtX2JvdW5kVHJhbnNm
b3JtRmVlZGJhY2sgPSBtX2RlZmF1bHRUcmFuc2Zvcm1GZWVkYmFjazsKIAogICAgIGRlbGV0ZU9i
amVjdChmZWVkYmFja09iamVjdCk7CiB9CkBAIC0xODE3LDE2ICsxODI0LDY0IEBAIHZvaWQgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZFRyYW5zZm9ybUZlZWRiYWNrKEdDR0xlbnVtIHRhcmdl
dCwgV2ViR0xUcmFuc2ZvCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb250
ZXh0LT5iaW5kVHJhbnNmb3JtRmVlZGJhY2sodGFyZ2V0LCBvYmplY3RPclplcm8oZmVlZGJhY2tP
YmplY3QpKTsKLSAgICBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2sgPSBmZWVkYmFja09iamVjdDsK
KyAgICBpZiAodGFyZ2V0ICE9IEdyYXBoaWNzQ29udGV4dEdMOjpUUkFOU0ZPUk1fRkVFREJBQ0sp
IHsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURf
RU5VTSwgImJpbmRUcmFuc2Zvcm1GZWVkYmFjayIsICJ0YXJnZXQgbXVzdCBiZSBUUkFOU0ZPUk1f
RkVFREJBQ0siKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobV9ib3VuZFRyYW5z
Zm9ybUZlZWRiYWNrLT5pc0FjdGl2ZSgpICYmICFtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2stPmlz
UGF1c2VkKCkpIHsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6
OklOVkFMSURfT1BFUkFUSU9OLCAiYmluZFRyYW5zZm9ybUZlZWRiYWNrIiwgInRyYW5zZm9ybSBm
ZWVkYmFjayBpcyBhY3RpdmUgYW5kIG5vdCBwYXVzZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2sqIHRvQmVCb3VuZCA9IGZlZWRiYWNrT2Jq
ZWN0ID8gZmVlZGJhY2tPYmplY3QgOiBtX2RlZmF1bHRUcmFuc2Zvcm1GZWVkYmFjay5nZXQoKTsK
KyAgICBtX2NvbnRleHQtPmJpbmRUcmFuc2Zvcm1GZWVkYmFjayh0YXJnZXQsIHRvQmVCb3VuZC0+
b2JqZWN0KCkpOworICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjayA9IHRvQmVCb3VuZDsKK30K
Kworc3RhdGljIGJvb2wgVmFsaWRhdGVUcmFuc2Zvcm1GZWVkYmFja1ByaW1pdGl2ZU1vZGUoR0NH
TGVudW0gbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIEdMX1BPSU5UUzoK
KyAgICBjYXNlIEdMX0xJTkVTOgorICAgIGNhc2UgR0xfVFJJQU5HTEVTOgorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogfQog
CiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJlZ2luVHJhbnNmb3JtRmVlZGJhY2soR0NH
TGVudW0gcHJpbWl0aXZlTW9kZSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygp
KQogICAgICAgICByZXR1cm47CisgICAgCisgICAgaWYgKCFWYWxpZGF0ZVRyYW5zZm9ybUZlZWRi
YWNrUHJpbWl0aXZlTW9kZShwcmltaXRpdmVNb2RlKSkgeworICAgICAgICBzeW50aGVzaXplR0xF
cnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9FTlVNLCAiYmVnaW5UcmFuc2Zvcm1GZWVk
YmFjayIsICJpbnZhbGlkIHRyYW5zZm9ybSBmZWVkYmFjayBwcmltaXRpdmUgbW9kZSIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGlmICghbV9jdXJyZW50UHJvZ3JhbSkgeworICAgICAg
ICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04s
ICJiZWdpblRyYW5zZm9ybUZlZWRiYWNrIiwgIm5vIHByb2dyYW0gaXMgYWN0aXZlIik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+aXNB
Y3RpdmUoKSkgeworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6
SU5WQUxJRF9PUEVSQVRJT04sICJiZWdpblRyYW5zZm9ybUZlZWRiYWNrIiwgInRyYW5zZm9ybSBm
ZWVkYmFjayBpcyBhbHJlYWR5IGFjdGl2ZSIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGludCByZXF1aXJlZEJ1ZmZlckNvdW50ID0gbV9jdXJyZW50UHJvZ3JhbS0+Z2V0UmVxdWlyZWRU
cmFuc2Zvcm1GZWVkYmFja0J1ZmZlckNvdW50KCk7CisgICAgaWYgKCFyZXF1aXJlZEJ1ZmZlckNv
dW50KSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZB
TElEX09QRVJBVElPTiwgImJlZ2luVHJhbnNmb3JtRmVlZGJhY2siLCAiY3VycmVudCBhY3RpdmUg
cHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGFueSB0cmFuc2Zvcm0gZmVlZGJhY2sgdmFyeWluZ3Mg
dG8gcmVjb3JkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCFtX2JvdW5kVHJh
bnNmb3JtRmVlZGJhY2stPmhhc0Vub3VnaEJ1ZmZlcnMocmVxdWlyZWRCdWZmZXJDb3VudCkpIHsK
KyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BF
UkFUSU9OLCAiYmVnaW5UcmFuc2Zvcm1GZWVkYmFjayIsICJub3QgZW5vdWdoIHRyYW5zZm9ybSBm
ZWVkYmFjayBidWZmZXJzIGJvdW5kIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBt
X2NvbnRleHQtPmJlZ2luVHJhbnNmb3JtRmVlZGJhY2socHJpbWl0aXZlTW9kZSk7CisKKyAgICBt
X2JvdW5kVHJhbnNmb3JtRmVlZGJhY2stPnNldFByb2dyYW0obV9jdXJyZW50UHJvZ3JhbS5nZXQo
KSk7CisgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5zZXRBY3RpdmUodHJ1ZSk7CisgICAg
bV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5zZXRQYXVzZWQoZmFsc2UpOwogfQogCiB2b2lkIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmVuZFRyYW5zZm9ybUZlZWRiYWNrKCkKQEAgLTE4MzQsMTMg
KzE4ODksMzYgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjplbmRUcmFuc2Zvcm1GZWVk
YmFjaygpCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJu
OwogCisgICAgaWYgKCFtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2stPmlzQWN0aXZlKCkpIHsKKyAg
ICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BFUkFU
SU9OLCAiZW5kVHJhbnNmb3JtRmVlZGJhY2siLCAidHJhbnNmb3JtIGZlZWRiYWNrIGlzIG5vdCBh
Y3RpdmUiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKICAgICBtX2NvbnRleHQtPmVu
ZFRyYW5zZm9ybUZlZWRiYWNrKCk7CisKKyAgICBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2stPnNl
dFBhdXNlZChmYWxzZSk7CisgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5zZXRBY3RpdmUo
ZmFsc2UpOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnRyYW5zZm9ybUZlZWRi
YWNrVmFyeWluZ3MoV2ViR0xQcm9ncmFtJiBwcm9ncmFtLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
dmFyeWluZ3MsIEdDR0xlbnVtIGJ1ZmZlck1vZGUpCiB7Ci0gICAgaWYgKGlzQ29udGV4dExvc3RP
clBlbmRpbmcoKSB8fCB2YXJ5aW5ncy5pc0VtcHR5KCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3Qo
InRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MiLCAmcHJvZ3JhbSkpCisgICAgaWYgKGlzQ29udGV4
dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgidHJhbnNmb3JtRmVlZGJh
Y2tWYXJ5aW5ncyIsICZwcm9ncmFtKSkKICAgICAgICAgcmV0dXJuOworICAgIAorICAgIHN3aXRj
aCAoYnVmZmVyTW9kZSkgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlNFUEFSQVRFX0FU
VFJJQlM6CisgICAgICAgIGlmICh2YXJ5aW5ncy5zaXplKCkgPiBtX21heFRyYW5zZm9ybUZlZWRi
YWNrU2VwYXJhdGVBdHRyaWJzKSB7CisgICAgICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHRHTDo6SU5WQUxJRF9WQUxVRSwgInRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3Mi
LCAidG9vIG1hbnkgdmFyeWluZ3MiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpJTlRFUkxFQVZFRF9B
VFRSSUJTOgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9FTlVNLCAidHJhbnNmb3JtRmVlZGJh
Y2tWYXJ5aW5ncyIsICJpbnZhbGlkIGJ1ZmZlciBtb2RlIik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgcHJvZ3JhbS5zZXRSZXF1aXJlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyQ291bnQo
YnVmZmVyTW9kZSA9PSBHcmFwaGljc0NvbnRleHRHTDo6SU5URVJMRUFWRURfQVRUUklCUyA/IDEg
OiB2YXJ5aW5ncy5zaXplKCkpOwogCiAgICAgbV9jb250ZXh0LT50cmFuc2Zvcm1GZWVkYmFja1Zh
cnlpbmdzKHByb2dyYW0ub2JqZWN0KCksIHZhcnlpbmdzLCBidWZmZXJNb2RlKTsKIH0KQEAgLTE4
NjEsMTIgKzE5MzksMzkgQEAgUmVmUHRyPFdlYkdMQWN0aXZlSW5mbz4gV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6Z2V0VHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5nKFdlYkcKIAogdm9pZCBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0OjpwYXVzZVRyYW5zZm9ybUZlZWRiYWNrKCkKIHsKLSAgICBMT0coV2Vi
R0wsICJbWyBOT1QgSU1QTEVNRU5URUQgXV0gcGF1c2VUcmFuc2Zvcm1GZWVkYmFjaygpIik7Cisg
ICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKCFtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2stPmlzQWN0aXZlKCkpIHsKKyAgICAgICAgc3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BFUkFUSU9OLCAicGF1
c2VUcmFuc2Zvcm1GZWVkYmFjayIsICJ0cmFuc2Zvcm0gZmVlZGJhY2sgaXMgbm90IGFjdGl2ZSIp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fYm91bmRUcmFuc2Zvcm1GZWVk
YmFjay0+aXNQYXVzZWQoKSkgeworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICJwYXVzZVRyYW5zZm9ybUZlZWRiYWNrIiwgInRy
YW5zZm9ybSBmZWVkYmFjayBpcyBhbHJlYWR5IHBhdXNlZCIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5zZXRQYXVzZWQodHJ1ZSk7Cisg
ICAgbV9jb250ZXh0LT5wYXVzZVRyYW5zZm9ybUZlZWRiYWNrKCk7CiB9CiAKIHZvaWQgV2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6cmVzdW1lVHJhbnNmb3JtRmVlZGJhY2soKQogewotICAgIExPRyhX
ZWJHTCwgIltbIE5PVCBJTVBMRU1FTlRFRCBdXSByZXN1bWVUcmFuc2Zvcm1GZWVkYmFjaygpIik7
CisgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKCFtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2stPnZhbGlkYXRlUHJvZ3JhbUZvclJlc3Vt
ZShtX2N1cnJlbnRQcm9ncmFtLmdldCgpKSkgeworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICJyZXN1bWVUcmFuc2Zvcm1GZWVk
YmFjayIsICJ0aGUgY3VycmVudCBwcm9ncmFtIGlzIG5vdCB0aGUgc2FtZSBhcyB3aGVuIGJlZ2lu
VHJhbnNmb3JtRmVlZGJhY2sgd2FzIGNhbGxlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIGlmICghbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5pc0FjdGl2ZSgpIHx8ICFtX2JvdW5k
VHJhbnNmb3JtRmVlZGJhY2stPmlzUGF1c2VkKCkpIHsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJy
b3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BFUkFUSU9OLCAicmVzdW1lVHJhbnNmb3Jt
RmVlZGJhY2siLCAidHJhbnNmb3JtIGZlZWRiYWNrIGlzIG5vdCBhY3RpdmUgb3Igbm90IHBhdXNl
ZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRi
YWNrLT5zZXRQYXVzZWQoZmFsc2UpOworICAgIG1fY29udGV4dC0+cmVzdW1lVHJhbnNmb3JtRmVl
ZGJhY2soKTsKIH0KIAogYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpzZXRJbmRleGVkQnVm
ZmVyQmluZGluZyhjb25zdCBjaGFyICpmdW5jdGlvbk5hbWUsIEdDR0xlbnVtIHRhcmdldCwgR0NH
THVpbnQgaW5kZXgsIFdlYkdMQnVmZmVyKiBidWZmZXIpCkBAIC0xODc5LDcgKzE5ODQsNyBAQCBi
b29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnNldEluZGV4ZWRCdWZmZXJCaW5kaW5nKGNvbnN0
IGNoYXIgKmZ1bmN0aW9uTmFtZSwgRwogCiAgICAgc3dpdGNoICh0YXJnZXQpIHsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMOjpUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSOgotICAgICAgICBp
ZiAoaW5kZXggPj0gbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVycy5zaXplKCkpIHsKKyAg
ICAgICAgaWYgKGluZGV4ID4gbV9tYXhUcmFuc2Zvcm1GZWVkYmFja1NlcGFyYXRlQXR0cmlicykg
ewogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFM
SURfVkFMVUUsIGZ1bmN0aW9uTmFtZSwgImluZGV4IG91dCBvZiByYW5nZSIpOwogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0xOTAwLDcgKzIwMDUsNyBAQCBib29sIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OnNldEluZGV4ZWRCdWZmZXJCaW5kaW5nKGNvbnN0IGNoYXIg
KmZ1bmN0aW9uTmFtZSwgRwogCiAgICAgc3dpdGNoICh0YXJnZXQpIHsKICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dEdMOjpUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSOgotICAgICAgICBtX2JvdW5k
VHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzW2luZGV4XSA9IGJ1ZmZlcjsKKyAgICAgICAgbV9ib3Vu
ZFRyYW5zZm9ybUZlZWRiYWNrLT5zZXRCb3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZl
cihpbmRleCwgYnVmZmVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6VU5JRk9STV9CVUZGRVI6CiAgICAgICAgIG1fYm91bmRJbmRleGVkVW5pZm9ybUJ1ZmZl
cnNbaW5kZXhdID0gYnVmZmVyOwpAQCAtMTkzOCwxMiArMjA0MywxNSBAQCBXZWJHTEFueSBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKEdDR0xlbnVtIHRhcmdldCwg
R0NHTHVpbnQgaQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHN3aXRjaCAodGFyZ2V0
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZF
Ul9CSU5ESU5HOgotICAgICAgICBpZiAoaW5kZXggPj0gbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNr
QnVmZmVycy5zaXplKCkpIHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpUUkFOU0ZPUk1f
RkVFREJBQ0tfQlVGRkVSX0JJTkRJTkc6IHsKKyAgICAgICAgV2ViR0xCdWZmZXIqIGJ1ZmZlcjsK
KyAgICAgICAgYm9vbCBzdWNjZXNzID0gbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5nZXRCb3Vu
ZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcihpbmRleCwgJmJ1ZmZlcik7CisgICAgICAg
IGlmICghc3VjY2VzcykgewogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3ND
b250ZXh0R0w6OklOVkFMSURfVkFMVUUsICJnZXRJbmRleGVkUGFyYW1ldGVyIiwgImluZGV4IG91
dCBvZiByYW5nZSIpOwogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnNbaW5kZXhdOworICAg
ICAgICByZXR1cm4gbWFrZVJlZlB0cihidWZmZXIpOworICAgIH0KICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NJWkU6CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TVEFSVDoKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMOjpVTklGT1JNX0JVRkZFUl9TSVpFOgpAQCAtMTk1OCw3ICsyMDY2
LDYgQEAgV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFtZXRl
cihHQ0dMZW51bSB0YXJnZXQsIEdDR0x1aW50IGkKICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2JvdW5kSW5kZXhlZFVuaWZvcm1CdWZmZXJz
W2luZGV4XTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfRU5VTSwgImdldElu
ZGV4ZWRQYXJhbWV0ZXIiLCAiaW52YWxpZCBwYXJhbWV0ZXIgbmFtZSIpOwogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKQEAgLTI0ODQsNiArMjU5MSwxMSBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmhpbnQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBtb2RlKQogICAgIG1fY29udGV4
dC0+aGludCh0YXJnZXQsIG1vZGUpOwogfQogCitHQ0dMdWludCBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpnZXRNYXhUcmFuc2Zvcm1GZWVkYmFja1NlcGFyYXRlQXR0cmlicygpCit7CisgICAgcmV0
dXJuIG1fbWF4VHJhbnNmb3JtRmVlZGJhY2tTZXBhcmF0ZUF0dHJpYnM7Cit9CisKIEdDR0xlbnVt
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJhc2VJbnRlcm5hbEZvcm1hdEZyb21JbnRlcm5hbEZv
cm1hdChHQ0dMZW51bSBpbnRlcm5hbGZvcm1hdCkKIHsKICAgICAvLyBIYW5kbGVzIHNpemVkLCB1
bnNpemVkLCBhbmQgY29tcHJlc3NlZCBpbnRlcm5hbCBmb3JtYXRzLgpAQCAtMjY5Miw4ICsyODA0
LDcgQEAgV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDR0xl
bnVtIHBuYW1lKQogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlRSQU5TRk9STV9GRUVEQkFD
S19CVUZGRVJfQklORElORzoKICAgICAgICAgcmV0dXJuIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFj
a0J1ZmZlcjsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpUUkFOU0ZPUk1fRkVFREJBQ0tf
QklORElORzoKLSAgICAgICAgLy8gRklYTUU6IE5FRURTX1BPUlQ6IHN1cHBvcnQgZGVmYXVsdCB0
cmFuc2Zvcm0gZmVlZGJhY2sgb2JqZWN0LgotICAgICAgICByZXR1cm4gbV9ib3VuZFRyYW5zZm9y
bUZlZWRiYWNrOworICAgICAgICByZXR1cm4gbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrID09IG1f
ZGVmYXVsdFRyYW5zZm9ybUZlZWRiYWNrID8gbnVsbHB0ciA6IG1fYm91bmRUcmFuc2Zvcm1GZWVk
YmFjazsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpUUkFOU0ZPUk1fRkVFREJBQ0tfUEFV
U0VEOgogICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHRHTDo6VU5JRk9STV9CVUZGRVJfQklORElORzoKQEAgLTMwMjIsMTAg
KzMxMzMsNyBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuY2FjaGVEZWxldGVkQnVm
ZmVyKFdlYkdMQnVmZmVyKiBidWZmZXIpCiAgICAgUkVNT1ZFX0JVRkZFUl9GUk9NX0JJTkRJTkco
bV9ib3VuZFBpeGVsVW5wYWNrQnVmZmVyKTsKICAgICBSRU1PVkVfQlVGRkVSX0ZST01fQklORElO
RyhtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIpOwogICAgIFJFTU9WRV9CVUZGRVJfRlJP
TV9CSU5ESU5HKG1fYm91bmRVbmlmb3JtQnVmZmVyKTsKLQotICAgIHNpemVfdCBpbmRleCA9IG1f
Ym91bmRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnMuZmluZChidWZmZXIpOwotICAgIGlmIChpbmRl
eCA8IG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnMuc2l6ZSgpKQotICAgICAgICBtX2Jv
dW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzW2luZGV4XSA9IG51bGxwdHI7CisgICAgbV9ib3Vu
ZFRyYW5zZm9ybUZlZWRiYWNrLT51bmJpbmRCdWZmZXIoYnVmZmVyKTsKIAogICAgIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OnVuY2FjaGVEZWxldGVkQnVmZmVyKGJ1ZmZlcik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgK
aW5kZXggZGI1YThkNDk2YmEzZmE3MzA1ZmRhMWU2NzU3Yzg3MGRmYTljZDVlOC4uNTg3NmVmMDlk
MzQ3OTNjOTc1NWYxY2MzMjU5MTMzYWZmZTVlMDFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaApAQCAtMjQ2LDYgKzI0Niw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZShHQ0dMZW51bSB0YXJn
ZXQsIEdDR0xlbnVtIGludGVybmFsZm9ybWF0LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBo
ZWlnaHQpIGZpbmFsOwogICAgIHZvaWQgaGludChHQ0dMZW51bSB0YXJnZXQsIEdDR0xlbnVtIG1v
ZGUpIGZpbmFsOworICAgIEdDR0x1aW50IGdldE1heFRyYW5zZm9ybUZlZWRiYWNrU2VwYXJhdGVB
dHRyaWJzKCk7CiAKIHByaXZhdGU6CiAgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dChDYW52YXNC
YXNlJiwgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzKTsKQEAgLTMwNCw3ICszMDUsNyBAQCBw
cml2YXRlOgogCiAgICAgUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IG1fcmVhZEZyYW1lYnVmZmVy
QmluZGluZzsKICAgICBSZWZQdHI8V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz4gbV9ib3VuZFRyYW5z
Zm9ybUZlZWRiYWNrOwotICAgIFZlY3RvcjxSZWZQdHI8V2ViR0xCdWZmZXI+PiBtX2JvdW5kVHJh
bnNmb3JtRmVlZGJhY2tCdWZmZXJzOworICAgIFJlZlB0cjxXZWJHTFRyYW5zZm9ybUZlZWRiYWNr
PiBtX2RlZmF1bHRUcmFuc2Zvcm1GZWVkYmFjazsKIAogICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4g
bV9ib3VuZENvcHlSZWFkQnVmZmVyOwogICAgIFJlZlB0cjxXZWJHTEJ1ZmZlcj4gbV9ib3VuZENv
cHlXcml0ZUJ1ZmZlcjsKQEAgLTMyNCw2ICszMjUsNyBAQCBwcml2YXRlOgogICAgIEdDR0xpbnQg
bV91bnBhY2tJbWFnZUhlaWdodCB7IDAgfTsKICAgICBHQ0dMaW50IG1fdW5wYWNrU2tpcEltYWdl
cyB7IDAgfTsKICAgICBHQ0dMaW50IG1fdW5pZm9ybUJ1ZmZlck9mZnNldEFsaWdubWVudCB7IDAg
fTsKKyAgICBHQ0dMdWludCBtX21heFRyYW5zZm9ybUZlZWRiYWNrU2VwYXJhdGVBdHRyaWJzIHsg
MCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggZDFiMGU3NDZlODBhNTI2NjY1YWU4NmI3MThm
YmVjNTI2N2JlZTAwMi4uNDBlNzgwN2ZlMTRiNTRkZWY0NjBmOGE4M2U1N2Y4Y2QwNGM3ZjIxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCkBAIC0yMjQs
OCArMjI0LDEwIEBAIHZvaWQgV2ViR0xQcm9ncmFtOjpjYWNoZUluZm9JZk5lZWRlZCgpCiAgICAg
R0NHTGludCBsaW5rU3RhdHVzID0gMDsKICAgICBjb250ZXh0LT5nZXRQcm9ncmFtaXYob2JqZWN0
KCksIEdyYXBoaWNzQ29udGV4dEdMOjpMSU5LX1NUQVRVUywgJmxpbmtTdGF0dXMpOwogICAgIG1f
bGlua1N0YXR1cyA9IGxpbmtTdGF0dXM7Ci0gICAgaWYgKG1fbGlua1N0YXR1cykKKyAgICBpZiAo
bV9saW5rU3RhdHVzKSB7CiAgICAgICAgIGNhY2hlQWN0aXZlQXR0cmliTG9jYXRpb25zKGNvbnRl
eHQpOworICAgICAgICBtX3JlcXVpcmVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJDb3VudCA9IG1f
cmVxdWlyZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlckNvdW50QWZ0ZXJOZXh0TGluazsKKyAgICB9
CiAgICAgbV9pbmZvVmFsaWQgPSB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUHJvZ3JhbS5oCmluZGV4IDg5MzZiNjlmNTNmMjAzZTJmMDdlYmNhOTcxZGE5ZWU5N2Vl
OGFiOGYuLjA3NjE2MzhlYzIzZWFmYzQwZGE5MTQ2ZjkxZjE4NjI4MTc4ZjRiMWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oCkBAIC02OSw2ICs2OSwxNiBAQCBw
dWJsaWM6CiAgICAgV2ViR0xTaGFkZXIqIGdldEF0dGFjaGVkU2hhZGVyKEdDR0xlbnVtKTsKICAg
ICBib29sIGF0dGFjaFNoYWRlcihXZWJHTFNoYWRlciopOwogICAgIGJvb2wgZGV0YWNoU2hhZGVy
KFdlYkdMU2hhZGVyKik7CisgICAgCisgICAgdm9pZCBzZXRSZXF1aXJlZFRyYW5zZm9ybUZlZWRi
YWNrQnVmZmVyQ291bnQoaW50IGNvdW50KQorICAgIHsKKyAgICAgICAgbV9yZXF1aXJlZFRyYW5z
Zm9ybUZlZWRiYWNrQnVmZmVyQ291bnRBZnRlck5leHRMaW5rID0gY291bnQ7CisgICAgfQorICAg
IGludCBnZXRSZXF1aXJlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyQ291bnQoKQorICAgIHsKKyAg
ICAgICAgY2FjaGVJbmZvSWZOZWVkZWQoKTsKKyAgICAgICAgcmV0dXJuIG1fcmVxdWlyZWRUcmFu
c2Zvcm1GZWVkYmFja0J1ZmZlckNvdW50OworICAgIH0KIAogcHJpdmF0ZToKICAgICBXZWJHTFBy
b2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwpAQCAtODksNiArOTksOCBAQCBwcml2
YXRlOgogICAgIFJlZlB0cjxXZWJHTFNoYWRlcj4gbV9mcmFnbWVudFNoYWRlcjsKIAogICAgIGJv
b2wgbV9pbmZvVmFsaWQgeyB0cnVlIH07CisgICAgaW50IG1fcmVxdWlyZWRUcmFuc2Zvcm1GZWVk
YmFja0J1ZmZlckNvdW50QWZ0ZXJOZXh0TGluayB7IDAgfTsKKyAgICBpbnQgbV9yZXF1aXJlZFRy
YW5zZm9ybUZlZWRiYWNrQnVmZmVyQ291bnQgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5z
Zm9ybUZlZWRiYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNm
b3JtRmVlZGJhY2suY3BwCmluZGV4IDVhMmYwMzMwY2QwNGQyMjQzYWEwNTkxZTYwMWQ2YWM4YTQ1
ZDRjYjcuLmNjODQzMTcyMWYwYzNkZmNkNGFiZWQyN2FjOThmYTBjM2RlZDk3M2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2su
Y3BwCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2lmIEVOQUJM
RShXRUJHTCkKKyNpZiBFTkFCTEUoV0VCR0wyKQogI2luY2x1ZGUgIldlYkdMVHJhbnNmb3JtRmVl
ZGJhY2suaCIKIAogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdyb3VwLmgiCkBAIC0zMyw3ICszMyw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+
IFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
JiBjdHgpCitSZWY8V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz4gV2ViR0xUcmFuc2Zvcm1GZWVkYmFj
azo6Y3JlYXRlKFdlYkdMMlJlbmRlcmluZ0NvbnRleHQmIGN0eCkKIHsKICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKGN0eCkpOwogfQpAQCAtNDMsMTAgKzQz
LDExIEBAIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6On5XZWJHTFRyYW5zZm9ybUZlZWRiYWNrKCkK
ICAgICBkZWxldGVPYmplY3QoMCk7CiB9CiAKLVdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OldlYkdM
VHJhbnNmb3JtRmVlZGJhY2soV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4KQorV2ViR0xU
cmFuc2Zvcm1GZWVkYmFjazo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTDJSZW5kZXJpbmdD
b250ZXh0JiBjdHgpCiAgICAgOiBXZWJHTFNoYXJlZE9iamVjdChjdHgpCiB7CiAgICAgc2V0T2Jq
ZWN0KGN0eC5ncmFwaGljc0NvbnRleHRHTCgpLT5jcmVhdGVUcmFuc2Zvcm1GZWVkYmFjaygpKTsK
KyAgICBtX2JvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVycy5yZXNpemUoY3R4Lmdl
dE1heFRyYW5zZm9ybUZlZWRiYWNrU2VwYXJhdGVBdHRyaWJzKCkpOwogfQogCiB2b2lkIFdlYkdM
VHJhbnNmb3JtRmVlZGJhY2s6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wqIGNvbnRleHQzZCwgUGxhdGZvcm1HTE9iamVjdCBvYmplY3QpCkBAIC01NCw2ICs1NSw2MSBA
QCB2b2lkIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wqIGNvbnRleHQzZAogICAgIGNvbnRleHQzZC0+ZGVsZXRlVHJhbnNmb3Jt
RmVlZGJhY2sob2JqZWN0KTsKIH0KIAordm9pZCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpzZXRQ
cm9ncmFtKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSkKK3sKKyAgICBtX3Byb2dyYW0gPSBwcm9ncmFt
OworICAgIG1fcHJvZ3JhbUxpbmtDb3VudCA9IHByb2dyYW0tPmdldExpbmtDb3VudCgpOworfQor
Citib29sIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OnNldEJvdW5kSW5kZXhlZFRyYW5zZm9ybUZl
ZWRiYWNrQnVmZmVyKEdDR0x1aW50IGluZGV4LCBXZWJHTEJ1ZmZlciogYnVmZmVyKQoreworICAg
IGlmIChpbmRleCA+IG1fYm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzLnNpemUo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIG1fYm91bmRJbmRleGVkVHJhbnNmb3JtRmVl
ZGJhY2tCdWZmZXJzW2luZGV4XSA9IGJ1ZmZlcjsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpnZXRCb3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFj
a0J1ZmZlcihHQ0dMdWludCBpbmRleCwgV2ViR0xCdWZmZXIqKiBvdXRCdWZmZXIpCit7CisgICAg
aWYgKGluZGV4ID4gbV9ib3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnMuc2l6ZSgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgKm91dEJ1ZmZlciA9IG1fYm91bmRJbmRleGVk
VHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzW2luZGV4XS5nZXQoKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpoYXNFbm91Z2hCdWZmZXJzKEdDR0x1
aW50IG51bVJlcXVpcmVkKSBjb25zdAoreworICAgIGlmIChudW1SZXF1aXJlZCA+IG1fYm91bmRJ
bmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGZvciAoR0NHTHVpbnQgaSA9IDA7IGkgPCBudW1SZXF1aXJlZDsgaSsrKSB7Cisg
ICAgICAgIGlmICghbV9ib3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnNbaV0uZ2V0
KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOwor
fQorCitib29sIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OnVzZXNCdWZmZXIoV2ViR0xCdWZmZXIq
IGJ1ZmZlcikKK3sKKyAgICBmb3IgKGF1dG8gYm91bmRCdWZmZXIgOiBtX2JvdW5kSW5kZXhlZFRy
YW5zZm9ybUZlZWRiYWNrQnVmZmVycykgeworICAgICAgICBpZiAoYm91bmRCdWZmZXIgPT0gYnVm
ZmVyKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsK
K30KKwordm9pZCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjp1bmJpbmRCdWZmZXIoV2ViR0xCdWZm
ZXIqIGJ1ZmZlcikKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9ib3VuZEluZGV4
ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgaWYgKG1f
Ym91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzW2ldID09IGJ1ZmZlcikKKyAgICAg
ICAgICAgIG1fYm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzW2ldID0gbnVsbHB0
cjsKKyAgICB9Cit9CisKK2Jvb2wgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6dmFsaWRhdGVQcm9n
cmFtRm9yUmVzdW1lKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSkgY29uc3QKK3sKKyAgICByZXR1cm4g
cHJvZ3JhbSAmJiBtX3Byb2dyYW0gPT0gcHJvZ3JhbSAmJiBwcm9ncmFtLT5nZXRMaW5rQ291bnQo
KSA9PSBtX3Byb2dyYW1MaW5rQ291bnQ7Cit9CisKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShXRUJH
TCkKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR0wyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCmluZGV4IGY3MDJhZWMxOTJkN2JjNjcz
YzIwMzMwMjU1MTMyM2MwNDUxZTI4MzYuLjMxOTM4NzYxOTFhY2IzOGE5MTA2MjUwMzdmZjVjNTYz
NDQzZDk2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJh
bnNmb3JtRmVlZGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRy
YW5zZm9ybUZlZWRiYWNrLmgKQEAgLTI1LDggKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
ZiBFTkFCTEUoV0VCR0wpCisjaWYgRU5BQkxFKFdFQkdMMikKIAorI2luY2x1ZGUgIldlYkdMMlJl
bmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHTFNoYXJlZE9iamVjdC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC0zNSwxMiArMzYsNDMgQEAgY2xhc3MgV2ViR0xUcmFuc2Zvcm1G
ZWVkYmFjayBmaW5hbCA6IHB1YmxpYyBXZWJHTFNoYXJlZE9iamVjdCB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaygpOwogCi0gICAgc3RhdGljIFJlZjxXZWJH
TFRyYW5zZm9ybUZlZWRiYWNrPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwor
ICAgIHN0YXRpYyBSZWY8V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz4gY3JlYXRlKFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQmKTsKKyAgICAKKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4g
bV9hY3RpdmU7IH0KKyAgICBib29sIGlzUGF1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9wYXVzZWQ7
IH0KKyAgICAKKyAgICB2b2lkIHNldEFjdGl2ZShib29sIGFjdGl2ZSkgeyBtX2FjdGl2ZSA9IGFj
dGl2ZTsgfQorICAgIHZvaWQgc2V0UGF1c2VkKGJvb2wgcGF1c2VkKSB7IG1fcGF1c2VkID0gcGF1
c2VkOyB9CisgICAgCisgICAgLy8gVGhlc2UgYXJlIHRoZSBpbmRleGVkIGJpbmQgcG9pbnRzIGZv
ciB0cmFuc2Zvcm0gZmVlZGJhY2sgYnVmZmVycy4KKyAgICAvLyBSZXR1cm5zIGZhbHNlIGlmIGlu
ZGV4IGlzIG91dCBvZiByYW5nZSBhbmQgdGhlIGNhbGxlciBzaG91bGQKKyAgICAvLyBzeW50aGVz
aXplIGEgR0wgZXJyb3IuCisgICAgYm9vbCBzZXRCb3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFj
a0J1ZmZlcihHQ0dMdWludCBpbmRleCwgV2ViR0xCdWZmZXIqKTsKKyAgICBib29sIGdldEJvdW5k
SW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyKEdDR0x1aW50IGluZGV4LCBXZWJHTEJ1ZmZl
cioqIG91dEJ1ZmZlcik7CisgICAgCisgICAgYm9vbCB2YWxpZGF0ZVByb2dyYW1Gb3JSZXN1bWUo
V2ViR0xQcm9ncmFtKikgY29uc3Q7CiAKKyAgICBib29sIGhhc0V2ZXJCZWVuQm91bmQoKSBjb25z
dCB7IHJldHVybiBvYmplY3QoKSAmJiBtX2hhc0V2ZXJCZWVuQm91bmQ7IH0KKyAgICB2b2lkIHNl
dEhhc0V2ZXJCZWVuQm91bmQoKSB7IG1faGFzRXZlckJlZW5Cb3VuZCA9IHRydWU7IH0KKyAgICAK
KyAgICBXZWJHTFByb2dyYW0qIGdldFByb2dyYW0oKSBjb25zdCB7IHJldHVybiBtX3Byb2dyYW0u
Z2V0KCk7IH0KKyAgICB2b2lkIHNldFByb2dyYW0oV2ViR0xQcm9ncmFtKik7CisgICAgCisgICAg
Ym9vbCB1c2VzQnVmZmVyKFdlYkdMQnVmZmVyKik7CisgICAgdm9pZCB1bmJpbmRCdWZmZXIoV2Vi
R0xCdWZmZXIqKTsKKyAgICAKKyAgICBib29sIGhhc0Vub3VnaEJ1ZmZlcnMoR0NHTHVpbnQgbnVt
UmVxdWlyZWQpIGNvbnN0OwogcHJpdmF0ZToKLSAgICBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKKyAgICBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQmKTsKIAogICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmplY3QpIG92ZXJyaWRlOworICAgIAor
ICAgIGJvb2wgbV9hY3RpdmUgPSBmYWxzZTsKKyAgICBib29sIG1fcGF1c2VkID0gZmFsc2U7Cisg
ICAgYm9vbCBtX2hhc0V2ZXJCZWVuQm91bmQgPSBmYWxzZTsKKyAgICB1bnNpZ25lZCBtX3Byb2dy
YW1MaW5rQ291bnQgPSAwOworICAgIFZlY3RvcjxSZWZQdHI8V2ViR0xCdWZmZXI+PiBtX2JvdW5k
SW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyczsKKyAgICBSZWZQdHI8V2ViR0xQcm9ncmFt
PiBtX3Byb2dyYW07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFO
R0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNz
Q29udGV4dEdMQU5HTEUuY3BwCmluZGV4IDQ2Zjc1MmM1ZjQxMzE5MWUzNGJhMzdiNmM0MThkOTYz
MzQ3Mzc0MDcuLjQ3NWM0OTkwZDAzMjMxM2Q3MzAyMTQ1MDgwOTMwODA0NzczNjMyNTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29u
dGV4dEdMQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCkBAIC0xOTI5LDcgKzE5MjksMTAgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6ZHJhd0VsZW1lbnRzSW5zdGFuY2VkKEdDR0xlbnVt
IG1vZGUsIEdDR0xzaXplaSBjb3UKIAogdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6dmVy
dGV4QXR0cmliRGl2aXNvcihHQ0dMdWludCBpbmRleCwgR0NHTHVpbnQgZGl2aXNvcikKIHsKLSAg
ICBnZXRFeHRlbnNpb25zKCkudmVydGV4QXR0cmliRGl2aXNvcihpbmRleCwgZGl2aXNvcik7Cisg
ICAgaWYgKG1faXNGb3JXZWJHTDIpCisgICAgICAgIGdsOjpWZXJ0ZXhBdHRyaWJEaXZpc29yKGlu
ZGV4LCBkaXZpc29yKTsKKyAgICBlbHNlCisgICAgICAgIGdldEV4dGVuc2lvbnMoKS52ZXJ0ZXhB
dHRyaWJEaXZpc29yKGluZGV4LCBkaXZpc29yKTsKIH0KIAogR0NHTHVpbnQgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmdldFVuaWZvcm1CbG9ja0luZGV4KFBsYXRmb3JtR0xPYmplY3QgcHJvZ3Jh
bSwgY29uc3QgU3RyaW5nJiB1bmlmb3JtQmxvY2tOYW1lKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9pbnN0YW5jZWQtYXJyYXlzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9yZW5kZXJp
bmcvaW5zdGFuY2VkLWFycmF5cy1leHBlY3RlZC50eHQKaW5kZXggYTExZGQ3N2YzNGE1ZTAxMzNj
Nzc2NThhMmY3MDJhNzFiMzFlYzgyOS4uYmVmNjkwMWJmZDY1NGU2Njc3YTVjNjM1MDVhMjAzNWYw
MzM5NmFkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3JlbmRlcmluZy9pbnN0YW5jZWQtYXJyYXlzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2luc3RhbmNlZC1hcnJheXMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDU3ICsxLDUgQEAKIFRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0
IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgogCiBU
ZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVy
aW5nL2luc3RhbmNlZC1hcnJheXMuaHRtbAotWyAxOiBQQVNTIF0gV2ViR0wgY29udGV4dCBleGlz
dHMKLVsgMjogUEFTUyBdIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfRElWSVNPUiBpcyAweDg4RkUK
LVsgMzogUEFTUyBdIFZlcnRleCBhdHRyaWJ1dGUgMCBtdXN0IGhhcyBhIGRlZmF1bHQgZGl2aXNv
ciBvZiAwCi1bIDQ6IFBBU1MgXSBWZXJ0ZXggYXR0cmlidXRlIDEgbXVzdCBoYXMgYSBkZWZhdWx0
IGRpdmlzb3Igb2YgMAotWyA1OiBQQVNTIF0gVmVydGV4IGF0dHJpYnV0ZSAyIG11c3QgaGFzIGEg
ZGVmYXVsdCBkaXZpc29yIG9mIDAKLVsgNjogUEFTUyBdIFZlcnRleCBhdHRyaWJ1dGUgMyBtdXN0
IGhhcyBhIGRlZmF1bHQgZGl2aXNvciBvZiAwCi1bIDc6IFBBU1MgXSBWZXJ0ZXggYXR0cmlidXRl
IDQgbXVzdCBoYXMgYSBkZWZhdWx0IGRpdmlzb3Igb2YgMAotWyA4OiBQQVNTIF0gVmVydGV4IGF0
dHJpYnV0ZSA1IG11c3QgaGFzIGEgZGVmYXVsdCBkaXZpc29yIG9mIDAKLVsgOTogUEFTUyBdIFZl
cnRleCBhdHRyaWJ1dGUgNiBtdXN0IGhhcyBhIGRlZmF1bHQgZGl2aXNvciBvZiAwCi1bIDEwOiBQ
QVNTIF0gVmVydGV4IGF0dHJpYnV0ZSA3IG11c3QgaGFzIGEgZGVmYXVsdCBkaXZpc29yIG9mIDAK
LVsgMTE6IFBBU1MgXSBWZXJ0ZXggYXR0cmlidXRlIDggbXVzdCBoYXMgYSBkZWZhdWx0IGRpdmlz
b3Igb2YgMAotWyAxMjogUEFTUyBdIFZlcnRleCBhdHRyaWJ1dGUgOSBtdXN0IGhhcyBhIGRlZmF1
bHQgZGl2aXNvciBvZiAwCi1bIDEzOiBQQVNTIF0gVmVydGV4IGF0dHJpYnV0ZSAxMCBtdXN0IGhh
cyBhIGRlZmF1bHQgZGl2aXNvciBvZiAwCi1bIDE0OiBQQVNTIF0gVmVydGV4IGF0dHJpYnV0ZSAx
MSBtdXN0IGhhcyBhIGRlZmF1bHQgZGl2aXNvciBvZiAwCi1bIDE1OiBQQVNTIF0gVmVydGV4IGF0
dHJpYnV0ZSAxMiBtdXN0IGhhcyBhIGRlZmF1bHQgZGl2aXNvciBvZiAwCi1bIDE2OiBQQVNTIF0g
VmVydGV4IGF0dHJpYnV0ZSAxMyBtdXN0IGhhcyBhIGRlZmF1bHQgZGl2aXNvciBvZiAwCi1bIDE3
OiBQQVNTIF0gVmVydGV4IGF0dHJpYnV0ZSAxNCBtdXN0IGhhcyBhIGRlZmF1bHQgZGl2aXNvciBv
ZiAwCi1bIDE4OiBQQVNTIF0gVmVydGV4IGF0dHJpYnV0ZSAxNSBtdXN0IGhhcyBhIGRlZmF1bHQg
ZGl2aXNvciBvZiAwCi1bIDE5OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX1ZBTFVFIDogdmVydGV4QXR0cmliRGl2aXNvciBpbmRleCBzZXQgZ3JlYXRlciB0aGFu
IG9yIGVxdWFsIHRvIE1BWF9WRVJURVhfQVRUUklCUyBzaG91bGQgYmUgYW4gaW52YWxpZCB2YWx1
ZQotWyAyMDogRkFJTCBdIGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURf
T1BFUkFUSU9OIDogdmVydGV4QXR0cmliRGl2aXNvciBpbmRleCBzZXQgbGVzcyB0aGFuIE1BWF9W
RVJURVhfQVRUUklCUyBzaG91bGQgc3VjY2VlZAotWyAyMTogUEFTUyBdIFNldCB2YWx1ZSBvZiBW
RVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1IgbWF0Y2hlcyBleHBlY2F0aW9uCi1bIDIyOiBGQUlM
IF0gc2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgwLCAyNSkgZXhwZWN0ZWQ6IDI1NSwwLDAsMjU1
IHdhcyAwLDAsMCwwCi1bIDIzOiBGQUlMIF0gc2hvdWxkIGJlIDAsMjU1LDAsMjU1IGF0ICgyNSwg
MjUpIGV4cGVjdGVkOiAwLDI1NSwwLDI1NSB3YXMgMCwwLDAsMAotWyAyNDogRkFJTCBdIHNob3Vs
ZCBiZSAwLDAsMjU1LDI1NSBhdCAoMCwgMCkgZXhwZWN0ZWQ6IDAsMCwyNTUsMjU1IHdhcyAwLDAs
MCwwCi1bIDI1OiBGQUlMIF0gc2hvdWxkIGJlIDI1NSwyNTUsMCwyNTUgYXQgKDI1LCAwKSBleHBl
Y3RlZDogMjU1LDI1NSwwLDI1NSB3YXMgMCwwLDAsMAotWyAyNjogRkFJTCBdIGdldEVycm9yIGV4
cGVjdGVkOiBJTlZBTElEX1ZBTFVFLiBXYXMgSU5WQUxJRF9PUEVSQVRJT04gOiBkcmF3QXJyYXlz
SW5zdGFuY2VkIGNhbm5vdCBoYXZlIGEgcHJpbWNvdW50IGxlc3MgdGhhbiAwCi1bIDI3OiBQQVNT
IF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFIDogZHJhd0FycmF5
c0luc3RhbmNlZCBjYW5ub3QgaGF2ZSBhIGNvdW50IGxlc3MgdGhhbiAwCi1bIDI4OiBGQUlMIF0g
Z2V0RXJyb3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMgSU5WQUxJRF9PUEVSQVRJT04gOiBJdCdz
IGFsbG93ZWQgZm9yIGFsbCB2ZXJ0ZXggYXR0cmlidXRlcyB0byBoYXZlIG5vbi16ZXJvIGRpdmlz
b3JzIHdoZW4gY2FsbGluZyBkcmF3QXJyYXlzSW5zdGFuY2VkCi1bIDI5OiBGQUlMIF0gZ2V0RXJy
b3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMgSU5WQUxJRF9PUEVSQVRJT04gOiBkcmF3QXJyYXlz
SW5zdGFuY2VkIHdpdGggUE9JTlRTIHNob3VsZCBzdWNjZWVkCi1bIDMwOiBGQUlMIF0gZ2V0RXJy
b3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMgSU5WQUxJRF9PUEVSQVRJT04gOiBkcmF3QXJyYXlz
SW5zdGFuY2VkIHdpdGggTElORVMgc2hvdWxkIHN1Y2NlZWQKLVsgMzE6IEZBSUwgXSBnZXRFcnJv
ciBleHBlY3RlZDogTk9fRVJST1IuIFdhcyBJTlZBTElEX09QRVJBVElPTiA6IGRyYXdBcnJheXNJ
bnN0YW5jZWQgd2l0aCBMSU5FX0xJU1Qgc2hvdWxkIHJldHVybiBzdWNjZWVkCi1bIDMyOiBGQUlM
IF0gZ2V0RXJyb3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMgSU5WQUxJRF9PUEVSQVRJT04gOiBk
cmF3QXJyYXlzSW5zdGFuY2VkIHdpdGggVFJJX0xJU1Qgc2hvdWxkIHN1Y2NlZWQKLVsgMzM6IFBB
U1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRU5VTSA6IGRyYXdBcnJh
eXNJbnN0YW5jZWQgd2l0aCBRVUFEX1NUUklQIHNob3VsZCByZXR1cm4gSU5WQUxJRF9FTlVNCi1b
IDM0OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0VOVU0gOiBk
cmF3QXJyYXlzSW5zdGFuY2VkIHdpdGggUVVBRFMgc2hvdWxkIHJldHVybiBJTlZBTElEX0VOVU0K
LVsgMzU6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRU5VTSA6
IGRyYXdBcnJheXNJbnN0YW5jZWQgd2l0aCBQT0xZR09OIHNob3VsZCByZXR1cm4gSU5WQUxJRF9F
TlVNCi1bIDM2OiBGQUlMIF0gc2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgwLCAyNSkgZXhwZWN0
ZWQ6IDI1NSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDM3OiBGQUlMIF0gc2hvdWxkIGJlIDAsMjU1
LDAsMjU1IGF0ICgyNSwgMjUpIGV4cGVjdGVkOiAwLDI1NSwwLDI1NSB3YXMgMCwwLDAsMAotWyAz
ODogRkFJTCBdIHNob3VsZCBiZSAwLDAsMjU1LDI1NSBhdCAoMCwgMCkgZXhwZWN0ZWQ6IDAsMCwy
NTUsMjU1IHdhcyAwLDAsMCwwCi1bIDM5OiBGQUlMIF0gc2hvdWxkIGJlIDI1NSwyNTUsMCwyNTUg
YXQgKDI1LCAwKSBleHBlY3RlZDogMjU1LDI1NSwwLDI1NSB3YXMgMCwwLDAsMAotWyA0MDogUEFT
UyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRSA6IGRyYXdFbGVt
ZW50c0luc3RhbmNlZCBjYW5ub3QgaGF2ZSBhIHByaW1jb3VudCBsZXNzIHRoYW4gMAotWyA0MTog
UEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRSA6IGRyYXdF
bGVtZW50c0luc3RhbmNlZCBjYW5ub3QgaGF2ZSBhIGNvdW50IGxlc3MgdGhhbiAwCi1bIDQyOiBG
QUlMIF0gZ2V0RXJyb3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMgSU5WQUxJRF9PUEVSQVRJT04g
OiBJdCdzIGFsbG93ZWQgZm9yIGFsbCB2ZXJ0ZXggYXR0cmlidXRlcyB0byBoYXZlIG5vbi16ZXJv
IGRpdmlzb3JzIHdoZW4gY2FsbGluZyBkcmF3RWxlbWVudHNJbnN0YW5jZWQKLVsgNDM6IEZBSUwg
XSBnZXRFcnJvciBleHBlY3RlZDogTk9fRVJST1IuIFdhcyBJTlZBTElEX09QRVJBVElPTiA6IGRy
YXdFbGVtZW50c0luc3RhbmNlZCB3aXRoIFVOU0lHTkVEX0JZVEUgc2hvdWxkIHN1Y2NlZWQKLVsg
NDQ6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogZHJhd0Vs
ZW1lbnRzSW5zdGFuY2VkIHdpdGggUE9JTlRTIHNob3VsZCBzdWNjZWVkCi1bIDQ1OiBQQVNTIF0g
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGRyYXdFbGVtZW50c0luc3Rh
bmNlZCB3aXRoIExJTkVTIHNob3VsZCBzdWNjZWVkCi1bIDQ2OiBQQVNTIF0gZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGRyYXdFbGVtZW50c0luc3RhbmNlZCB3aXRoIExJ
TkVfTElTVCBzaG91bGQgcmV0dXJuIHN1Y2NlZWQKLVsgNDc6IFBBU1MgXSBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogZHJhd0VsZW1lbnRzSW5zdGFuY2VkIHdpdGggVFJJ
X0xJU1Qgc2hvdWxkIHN1Y2NlZWQKLVsgNDg6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRU5VTSA6IGRyYXdFbGVtZW50c0luc3RhbmNlZCB3aXRoIFFVQURfU1RS
SVAgc2hvdWxkIHJldHVybiBJTlZBTElEX0VOVU0KLVsgNDk6IFBBU1MgXSBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRU5VTSA6IGRyYXdFbGVtZW50c0luc3RhbmNlZCB3aXRo
IFFVQURTIHNob3VsZCByZXR1cm4gSU5WQUxJRF9FTlVNCi1bIDUwOiBQQVNTIF0gZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0VOVU0gOiBkcmF3RWxlbWVudHNJbnN0YW5jZWQg
d2l0aCBQT0xZR09OIHNob3VsZCByZXR1cm4gSU5WQUxJRF9FTlVNCi1bIDUxOiBQQVNTIF0gZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IHRoZXJlIHNob3VsZCBiZSBubyBl
cnJvcnMKLVsgNTI6IFBBU1MgXSBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotWyBGQUlMIF0g
MTcgZmFpbHVyZXMgcmVwb3J0ZWQKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9pbnN0
YW5jZWQtcmVuZGVyaW5nLWJ1Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAu
MC9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2luc3RhbmNlZC1yZW5kZXJpbmctYnVnLWV4cGVjdGVk
LnR4dAppbmRleCAzMWU2OWM2YTU1YzhjMGE1ZjMwZTA3NmYzYjg3NzA5ODA3ODNmMDVlLi43ZjZl
YjZlNjc4MmYxM2U2NjY4MjZjMWRkMDEzZWYwODY5YzhlY2MxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2luc3RhbmNlZC1yZW5kZXJp
bmctYnVnLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvcmVuZGVyaW5nL2luc3RhbmNlZC1yZW5kZXJpbmctYnVnLWV4cGVjdGVkLnR4dApAQCAt
MSw4NyArMSw1IEBACiBUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cg
aW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KIAogVGVzdDogLi4vLi4vcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9pbnN0YW5jZWQt
cmVuZGVyaW5nLWJ1Zy5odG1sCi1bIDE6IFBBU1MgXSBXZWJHTCBjb250ZXh0IGV4aXN0cwotWyAy
OiBQQVNTIF0gU2V0IHVwIHByb2dyYW0gc3VjY2VlZGVkCi1bIDM6IEZBSUwgXSBnZXRFcnJvciBl
eHBlY3RlZDogTk9fRVJST1IuIFdhcyBJTlZBTElEX09QRVJBVElPTiA6IGRyYXdBcnJheXNJbnN0
YW5jZWQgc2hvdWxkIHN1Y2NlZWQKLVsgNDogRkFJTCBdIGluc3RhbmNlIDAgc2hvdWxkIGJlIDEy
NywwLDAsMjU1IGF0ICgxLCAwKSBleHBlY3RlZDogMTI3LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsg
NTogRkFJTCBdIGluc3RhbmNlIDEgc2hvdWxkIGJlIDEyNywwLDAsMjU1IGF0ICgzOCwgMCkgZXhw
ZWN0ZWQ6IDEyNywwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDY6IEZBSUwgXSBpbnN0YW5jZSAyIHNo
b3VsZCBiZSAxMjcsMCwwLDI1NSBhdCAoNzYsIDApIGV4cGVjdGVkOiAxMjcsMCwwLDI1NSB3YXMg
MCwwLDAsMAotWyA3OiBGQUlMIF0gaW5zdGFuY2UgMyBzaG91bGQgYmUgMTI3LDAsMCwyNTUgYXQg
KDExMywgMCkgZXhwZWN0ZWQ6IDEyNywwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDg6IEZBSUwgXSBp
bnN0YW5jZSA0IHNob3VsZCBiZSAyNTUsMCwwLDI1NSBhdCAoMTUxLCAwKSBleHBlY3RlZDogMjU1
LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgOTogRkFJTCBdIGluc3RhbmNlIDUgc2hvdWxkIGJlIDI1
NSwwLDAsMjU1IGF0ICgxODgsIDApIGV4cGVjdGVkOiAyNTUsMCwwLDI1NSB3YXMgMCwwLDAsMAot
WyAxMDogRkFJTCBdIGluc3RhbmNlIDYgc2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgyMjYsIDAp
IGV4cGVjdGVkOiAyNTUsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAxMTogRkFJTCBdIGluc3RhbmNl
IDcgc2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgyNjMsIDApIGV4cGVjdGVkOiAyNTUsMCwwLDI1
NSB3YXMgMCwwLDAsMAotWyAxMjogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiBjbGVhbiB1cCBzaG91bGQgc3VjY2VlZAotWyAxMzogUEFTUyBdIFNldCB1cCBw
cm9ncmFtIHN1Y2NlZWRlZAotWyAxNDogRkFJTCBdIGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJP
Ui4gV2FzIElOVkFMSURfT1BFUkFUSU9OIDogZHJhd0FycmF5c0luc3RhbmNlZCBzaG91bGQgc3Vj
Y2VlZAotWyAxNTogRkFJTCBdIGluc3RhbmNlIDAgc2hvdWxkIGJlIDEwMiwwLDAsMjU1IGF0ICgx
LCAwKSBleHBlY3RlZDogMTAyLDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgMTY6IEZBSUwgXSBpbnN0
YW5jZSAxIHNob3VsZCBiZSAxMDIsMCwwLDI1NSBhdCAoNTEsIDApIGV4cGVjdGVkOiAxMDIsMCww
LDI1NSB3YXMgMCwwLDAsMAotWyAxNzogRkFJTCBdIGluc3RhbmNlIDIgc2hvdWxkIGJlIDEwMiww
LDAsMjU1IGF0ICgxMDEsIDApIGV4cGVjdGVkOiAxMDIsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAx
ODogRkFJTCBdIGluc3RhbmNlIDMgc2hvdWxkIGJlIDEwMiwwLDAsMjU1IGF0ICgxNTEsIDApIGV4
cGVjdGVkOiAxMDIsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAxOTogRkFJTCBdIGluc3RhbmNlIDQg
c2hvdWxkIGJlIDIwNCwwLDAsMjU1IGF0ICgyMDEsIDApIGV4cGVjdGVkOiAyMDQsMCwwLDI1NSB3
YXMgMCwwLDAsMAotWyAyMDogRkFJTCBdIGluc3RhbmNlIDUgc2hvdWxkIGJlIDIwNCwwLDAsMjU1
IGF0ICgyNTEsIDApIGV4cGVjdGVkOiAyMDQsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAyMTogUEFT
UyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBjbGVhbiB1cCBzaG91
bGQgc3VjY2VlZAotWyAyMjogUEFTUyBdIFNldCB1cCBwcm9ncmFtIHN1Y2NlZWRlZAotWyAyMzog
RkFJTCBdIGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURfT1BFUkFUSU9O
IDogZHJhd0FycmF5c0luc3RhbmNlZCBzaG91bGQgc3VjY2VlZAotWyAyNDogRkFJTCBdIGluc3Rh
bmNlIDAgc2hvdWxkIGJlIDEyNywwLDAsMjU1IGF0ICgxLCAwKSBleHBlY3RlZDogMTI3LDAsMCwy
NTUgd2FzIDAsMCwwLDAKLVsgMjU6IEZBSUwgXSBpbnN0YW5jZSAxIHNob3VsZCBiZSAxMjcsMCww
LDI1NSBhdCAoNTEsIDApIGV4cGVjdGVkOiAxMjcsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAyNjog
RkFJTCBdIGluc3RhbmNlIDIgc2hvdWxkIGJlIDEyNywwLDAsMjU1IGF0ICgxMDEsIDApIGV4cGVj
dGVkOiAxMjcsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAyNzogRkFJTCBdIGluc3RhbmNlIDMgc2hv
dWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgxNTEsIDApIGV4cGVjdGVkOiAyNTUsMCwwLDI1NSB3YXMg
MCwwLDAsMAotWyAyODogRkFJTCBdIGluc3RhbmNlIDQgc2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0
ICgyMDEsIDApIGV4cGVjdGVkOiAyNTUsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAyOTogRkFJTCBd
IGluc3RhbmNlIDUgc2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgyNTEsIDApIGV4cGVjdGVkOiAy
NTUsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAzMDogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiBjbGVhbiB1cCBzaG91bGQgc3VjY2VlZAotWyAzMTogUEFTUyBd
IFNldCB1cCBwcm9ncmFtIHN1Y2NlZWRlZAotWyAzMjogRkFJTCBdIGdldEVycm9yIGV4cGVjdGVk
OiBOT19FUlJPUi4gV2FzIElOVkFMSURfT1BFUkFUSU9OIDogZHJhd0FycmF5c0luc3RhbmNlZCBz
aG91bGQgc3VjY2VlZAotWyAzMzogRkFJTCBdIGluc3RhbmNlIDAgc2hvdWxkIGJlIDY5LDAsMCwy
NTUgYXQgKDEsIDApIGV4cGVjdGVkOiA2OSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDM0OiBGQUlM
IF0gaW5zdGFuY2UgMSBzaG91bGQgYmUgNjksMCwwLDI1NSBhdCAoMzgsIDApIGV4cGVjdGVkOiA2
OSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDM1OiBGQUlMIF0gaW5zdGFuY2UgMiBzaG91bGQgYmUg
NjksMCwwLDI1NSBhdCAoNzYsIDApIGV4cGVjdGVkOiA2OSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1b
IDM2OiBGQUlMIF0gaW5zdGFuY2UgMyBzaG91bGQgYmUgMTM5LDAsMCwyNTUgYXQgKDExMywgMCkg
ZXhwZWN0ZWQ6IDEzOSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDM3OiBGQUlMIF0gaW5zdGFuY2Ug
NCBzaG91bGQgYmUgMTM5LDAsMCwyNTUgYXQgKDE1MSwgMCkgZXhwZWN0ZWQ6IDEzOSwwLDAsMjU1
IHdhcyAwLDAsMCwwCi1bIDM4OiBGQUlMIF0gaW5zdGFuY2UgNSBzaG91bGQgYmUgMTM5LDAsMCwy
NTUgYXQgKDE4OCwgMCkgZXhwZWN0ZWQ6IDEzOSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDM5OiBG
QUlMIF0gaW5zdGFuY2UgNiBzaG91bGQgYmUgMjA4LDAsMCwyNTUgYXQgKDIyNiwgMCkgZXhwZWN0
ZWQ6IDIwOCwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDQwOiBGQUlMIF0gaW5zdGFuY2UgNyBzaG91
bGQgYmUgMjA4LDAsMCwyNTUgYXQgKDI2MywgMCkgZXhwZWN0ZWQ6IDIwOCwwLDAsMjU1IHdhcyAw
LDAsMCwwCi1bIDQxOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IGNsZWFuIHVwIHNob3VsZCBzdWNjZWVkCi1bIDQyOiBQQVNTIF0gU2V0IHVwIHByb2dyYW0g
c3VjY2VlZGVkCi1bIDQzOiBGQUlMIF0gZ2V0RXJyb3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMg
SU5WQUxJRF9PUEVSQVRJT04gOiBkcmF3RWxlbWVudHNJbnN0YW5jZWQgc2hvdWxkIHN1Y2NlZWQK
LVsgNDQ6IEZBSUwgXSBpbnN0YW5jZSAwIHNob3VsZCBiZSAxMjcsMCwwLDI1NSBhdCAoMSwgMCkg
ZXhwZWN0ZWQ6IDEyNywwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDQ1OiBGQUlMIF0gaW5zdGFuY2Ug
MSBzaG91bGQgYmUgMTI3LDAsMCwyNTUgYXQgKDM4LCAwKSBleHBlY3RlZDogMTI3LDAsMCwyNTUg
d2FzIDAsMCwwLDAKLVsgNDY6IEZBSUwgXSBpbnN0YW5jZSAyIHNob3VsZCBiZSAxMjcsMCwwLDI1
NSBhdCAoNzYsIDApIGV4cGVjdGVkOiAxMjcsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA0NzogRkFJ
TCBdIGluc3RhbmNlIDMgc2hvdWxkIGJlIDEyNywwLDAsMjU1IGF0ICgxMTMsIDApIGV4cGVjdGVk
OiAxMjcsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA0ODogRkFJTCBdIGluc3RhbmNlIDQgc2hvdWxk
IGJlIDI1NSwwLDAsMjU1IGF0ICgxNTEsIDApIGV4cGVjdGVkOiAyNTUsMCwwLDI1NSB3YXMgMCww
LDAsMAotWyA0OTogRkFJTCBdIGluc3RhbmNlIDUgc2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgx
ODgsIDApIGV4cGVjdGVkOiAyNTUsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA1MDogRkFJTCBdIGlu
c3RhbmNlIDYgc2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgyMjYsIDApIGV4cGVjdGVkOiAyNTUs
MCwwLDI1NSB3YXMgMCwwLDAsMAotWyA1MTogRkFJTCBdIGluc3RhbmNlIDcgc2hvdWxkIGJlIDI1
NSwwLDAsMjU1IGF0ICgyNjMsIDApIGV4cGVjdGVkOiAyNTUsMCwwLDI1NSB3YXMgMCwwLDAsMAot
WyA1MjogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBjbGVh
biB1cCBzaG91bGQgc3VjY2VlZAotWyA1MzogUEFTUyBdIFNldCB1cCBwcm9ncmFtIHN1Y2NlZWRl
ZAotWyA1NDogRkFJTCBdIGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURf
T1BFUkFUSU9OIDogZHJhd0VsZW1lbnRzSW5zdGFuY2VkIHNob3VsZCBzdWNjZWVkCi1bIDU1OiBG
QUlMIF0gaW5zdGFuY2UgMCBzaG91bGQgYmUgMTAyLDAsMCwyNTUgYXQgKDEsIDApIGV4cGVjdGVk
OiAxMDIsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA1NjogRkFJTCBdIGluc3RhbmNlIDEgc2hvdWxk
IGJlIDEwMiwwLDAsMjU1IGF0ICg1MSwgMCkgZXhwZWN0ZWQ6IDEwMiwwLDAsMjU1IHdhcyAwLDAs
MCwwCi1bIDU3OiBGQUlMIF0gaW5zdGFuY2UgMiBzaG91bGQgYmUgMTAyLDAsMCwyNTUgYXQgKDEw
MSwgMCkgZXhwZWN0ZWQ6IDEwMiwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDU4OiBGQUlMIF0gaW5z
dGFuY2UgMyBzaG91bGQgYmUgMTAyLDAsMCwyNTUgYXQgKDE1MSwgMCkgZXhwZWN0ZWQ6IDEwMiww
LDAsMjU1IHdhcyAwLDAsMCwwCi1bIDU5OiBGQUlMIF0gaW5zdGFuY2UgNCBzaG91bGQgYmUgMjA0
LDAsMCwyNTUgYXQgKDIwMSwgMCkgZXhwZWN0ZWQ6IDIwNCwwLDAsMjU1IHdhcyAwLDAsMCwwCi1b
IDYwOiBGQUlMIF0gaW5zdGFuY2UgNSBzaG91bGQgYmUgMjA0LDAsMCwyNTUgYXQgKDI1MSwgMCkg
ZXhwZWN0ZWQ6IDIwNCwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDYxOiBQQVNTIF0gZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGNsZWFuIHVwIHNob3VsZCBzdWNjZWVkCi1b
IDYyOiBQQVNTIF0gU2V0IHVwIHByb2dyYW0gc3VjY2VlZGVkCi1bIDYzOiBGQUlMIF0gZ2V0RXJy
b3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMgSU5WQUxJRF9PUEVSQVRJT04gOiBkcmF3RWxlbWVu
dHNJbnN0YW5jZWQgc2hvdWxkIHN1Y2NlZWQKLVsgNjQ6IEZBSUwgXSBpbnN0YW5jZSAwIHNob3Vs
ZCBiZSAxMjcsMCwwLDI1NSBhdCAoMSwgMCkgZXhwZWN0ZWQ6IDEyNywwLDAsMjU1IHdhcyAwLDAs
MCwwCi1bIDY1OiBGQUlMIF0gaW5zdGFuY2UgMSBzaG91bGQgYmUgMTI3LDAsMCwyNTUgYXQgKDUx
LCAwKSBleHBlY3RlZDogMTI3LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgNjY6IEZBSUwgXSBpbnN0
YW5jZSAyIHNob3VsZCBiZSAxMjcsMCwwLDI1NSBhdCAoMTAxLCAwKSBleHBlY3RlZDogMTI3LDAs
MCwyNTUgd2FzIDAsMCwwLDAKLVsgNjc6IEZBSUwgXSBpbnN0YW5jZSAzIHNob3VsZCBiZSAyNTUs
MCwwLDI1NSBhdCAoMTUxLCAwKSBleHBlY3RlZDogMjU1LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsg
Njg6IEZBSUwgXSBpbnN0YW5jZSA0IHNob3VsZCBiZSAyNTUsMCwwLDI1NSBhdCAoMjAxLCAwKSBl
eHBlY3RlZDogMjU1LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgNjk6IEZBSUwgXSBpbnN0YW5jZSA1
IHNob3VsZCBiZSAyNTUsMCwwLDI1NSBhdCAoMjUxLCAwKSBleHBlY3RlZDogMjU1LDAsMCwyNTUg
d2FzIDAsMCwwLDAKLVsgNzA6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogY2xlYW4gdXAgc2hvdWxkIHN1Y2NlZWQKLVsgNzE6IFBBU1MgXSBTZXQgdXAgcHJv
Z3JhbSBzdWNjZWVkZWQKLVsgNzI6IEZBSUwgXSBnZXRFcnJvciBleHBlY3RlZDogTk9fRVJST1Iu
IFdhcyBJTlZBTElEX09QRVJBVElPTiA6IGRyYXdFbGVtZW50c0luc3RhbmNlZCBzaG91bGQgc3Vj
Y2VlZAotWyA3MzogRkFJTCBdIGluc3RhbmNlIDAgc2hvdWxkIGJlIDY5LDAsMCwyNTUgYXQgKDEs
IDApIGV4cGVjdGVkOiA2OSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDc0OiBGQUlMIF0gaW5zdGFu
Y2UgMSBzaG91bGQgYmUgNjksMCwwLDI1NSBhdCAoMzgsIDApIGV4cGVjdGVkOiA2OSwwLDAsMjU1
IHdhcyAwLDAsMCwwCi1bIDc1OiBGQUlMIF0gaW5zdGFuY2UgMiBzaG91bGQgYmUgNjksMCwwLDI1
NSBhdCAoNzYsIDApIGV4cGVjdGVkOiA2OSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDc2OiBGQUlM
IF0gaW5zdGFuY2UgMyBzaG91bGQgYmUgMTM5LDAsMCwyNTUgYXQgKDExMywgMCkgZXhwZWN0ZWQ6
IDEzOSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDc3OiBGQUlMIF0gaW5zdGFuY2UgNCBzaG91bGQg
YmUgMTM5LDAsMCwyNTUgYXQgKDE1MSwgMCkgZXhwZWN0ZWQ6IDEzOSwwLDAsMjU1IHdhcyAwLDAs
MCwwCi1bIDc4OiBGQUlMIF0gaW5zdGFuY2UgNSBzaG91bGQgYmUgMTM5LDAsMCwyNTUgYXQgKDE4
OCwgMCkgZXhwZWN0ZWQ6IDEzOSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDc5OiBGQUlMIF0gaW5z
dGFuY2UgNiBzaG91bGQgYmUgMjA4LDAsMCwyNTUgYXQgKDIyNiwgMCkgZXhwZWN0ZWQ6IDIwOCww
LDAsMjU1IHdhcyAwLDAsMCwwCi1bIDgwOiBGQUlMIF0gaW5zdGFuY2UgNyBzaG91bGQgYmUgMjA4
LDAsMCwyNTUgYXQgKDI2MywgMCkgZXhwZWN0ZWQ6IDIwOCwwLDAsMjU1IHdhcyAwLDAsMCwwCi1b
IDgxOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGNsZWFu
IHVwIHNob3VsZCBzdWNjZWVkCi1bIDgyOiBQQVNTIF0gc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKLVsgRkFJTCBdIDY0IGZhaWx1cmVzIHJlcG9ydGVkCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFz
c2VkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9z
dGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4
dAppbmRleCA0MDg5NTU0OTQ5ZWJkMzU2NmFmNTYwMzQzNzdkNzJlOTM0NmFjMjdkLi4xODFkYjdi
OTI0ZWEyNGM0Y2ZiZGE5MmQwYmVmYTFhODQ5YTE4MTVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3N0YXRl
L2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0CkBAIC0yNzksMTMgKzI3OSwxMyBAQCBU
ZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvc3RhdGUv
Z2wtb2JqZWN0LWdldC1jYWxscy5odAogWyAyNzU6IEZBSUwgXSBnbC5nZXRWZXJ0ZXhBdHRyaWIo
MSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFKSBzaG91bGQgYmUgNTEyNC4gV2FzIDUxMjYu
CiBbIDI3NjogRkFJTCBdIGdsLmdldFZlcnRleEF0dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FS
UkFZX0lOVEVHRVIpIHNob3VsZCBiZSB0cnVlIChvZiB0eXBlIGJvb2xlYW4pLiBXYXMgbnVsbCAo
b2YgdHlwZSBvYmplY3QpLgogWyAyNzc6IEZBSUwgXSBnZXRFcnJvciBleHBlY3RlZDogTk9fRVJS
T1IuIFdhcyBJTlZBTElEX0VOVU0gOgotWyAyNzg6IEZBSUwgXSBnZXRWZXJ0ZXhBdHRyaWIgZGlk
IG5vdCBnZW5lcmF0ZSBJTlZBTElEX0VOVU0gZm9yIGludmFsaWQgcGFyYW1ldGVyIGVudW06IE5P
X0VSUk9SCi1bIDI3OTogRkFJTCBdIGdldEVycm9yIGV4cGVjdGVkOiBJTlZBTElEX1ZBTFVFLiBX
YXMgSU5WQUxJRF9FTlVNIDogYWZ0ZXIgZXZhbHVhdGluZzogZ2wuZ2V0VmVydGV4QXR0cmliKDE2
LCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpCitbIDI3ODogUEFTUyBdIGdldFZlcnRleEF0dHJp
YiBjb3JyZWN0bHkgaGFuZGxlZCBpbnZhbGlkIHBhcmFtZXRlciBlbnVtcworWyAyNzk6IFBBU1Mg
XSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUgOiBhZnRlciBldmFs
dWF0aW5nOiBnbC5nZXRWZXJ0ZXhBdHRyaWIoMTYsIGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQikK
IFsgMjgwOiBQQVNTIF0gZ2wuZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZS
QU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVO
VF9PQkpFQ1RfVFlQRSkgaXMgZ2wuTk9ORQotWyAyODE6IEZBSUwgXSBnZXRFcnJvciBleHBlY3Rl
ZDogSU5WQUxJRF9PUEVSQVRJT04uIFdhcyBJTlZBTElEX1ZBTFVFIDoKK1sgMjgxOiBQQVNTIF0g
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6CiBbIDI4Mjog
UEFTUyBdIGdsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZF
UiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
VFlQRSkgaXMgZ2wuTk9ORQogWyAyODM6IFBBU1MgXSBnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wu
VkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORykgaXMgbnVsbAotWyAyODQ6IEZBSUwg
XSBnZXRFcnJvciBleHBlY3RlZDogTk9fRVJST1IuIFdhcyBJTlZBTElEX09QRVJBVElPTiA6Citb
IDI4NDogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOgogWyAy
ODU6IFBBU1MgXSBnbC5nZXRJbnRlcm5hbGZvcm1hdFBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIs
IGdsLlIzMkksIGdsLlNBTVBMRVMpIGlzIG5vbi1udWxsLgogWyAyODY6IFBBU1MgXSBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDoKIFsgMjg3OiBQQVNTIF0gZ2V0SW50ZXJu
YWxmb3JtYXRQYXJhbWV0ZXIgY29ycmVjdGx5IGhhbmRsZWQgaW52YWxpZCB0YXJnZXQgZW51bXMK
QEAgLTMxMSw1ICszMTEsNSBAQCBUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy5odAogWyAzMDc6IFBBU1Mg
XSBnZXRTYW1wbGVyUGFyYW1ldGVyIGNvcnJlY3RseSBoYW5kbGVkIGludmFsaWQgcG5hbWUgZW51
bXMKIFsgMzA4OiBGQUlMIF0gZ2wuZ2V0U3luY1BhcmFtZXRlcihzeW5jLCBnbC5PQkpFQ1RfVFlQ
RSkgc2hvdWxkIGJlIDM3MTQyLiBUaHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAx
ICgnc3luYycpIHRvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQuZ2V0U3luY1BhcmFtZXRlciBtdXN0
IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMU3luYwogWyAzMDk6IEZBSUwgXSBzdWNjZXNzZnVsbHlQ
YXJzZWQgc2hvdWxkIGJlIHRydWUgKG9mIHR5cGUgYm9vbGVhbikuIFdhcyB1bmRlZmluZWQgKG9m
IHR5cGUgdW5kZWZpbmVkKS4KLVsgRkFJTCBdIDU4IGZhaWx1cmVzIHJlcG9ydGVkCitbIEZBSUwg
XSA1NCBmYWlsdXJlcyByZXBvcnRlZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvdHJhbnNmb3JtX2ZlZWRiYWNrL3RyYW5zZm9ybV9mZWVkYmFjay1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdHJhbnNm
b3JtX2ZlZWRiYWNrL3RyYW5zZm9ybV9mZWVkYmFjay1leHBlY3RlZC50eHQKaW5kZXggM2JlNTg0
ODEwOTVmMjZhYWU4NTJhYWExNDA0YmQzNjE1M2YyZDhhNS4uYmVlODI1ODgyZTE0MDZmZThlNDJi
NTllNWI3OTRjMGUyNTZlZTRkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3RyYW5zZm9ybV9mZWVkYmFjay90cmFuc2Zvcm1fZmVlZGJhY2stZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi90cmFuc2Zv
cm1fZmVlZGJhY2svdHJhbnNmb3JtX2ZlZWRiYWNrLWV4cGVjdGVkLnR4dApAQCAtMSw5NiArMSw1
IEBACiBUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZy
YW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KIAogVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3RyYW5zZm9ybV9mZWVkYmFjay90cmFuc2Zvcm1f
ZmVlZGJhY2suaHRtbAotWyAxOiBQQVNTIF0gV2ViR0wgY29udGV4dCBleGlzdHMKLVsgMjogUEFT
UyBdIGdsLlRSQU5TRk9STV9GRUVEQkFDS19CSU5ESU5HIGlzIDB4OEUyNQotWyAzOiBQQVNTIF0g
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IFRSQU5TRk9STV9GRUVEQkFD
S19CSU5ESU5HIHF1ZXJ5IHNob3VsZCBzdWNjZWVkCi1bIDQ6IFBBU1MgXSBnbC5nZXRQYXJhbWV0
ZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJTkcpIGlzIG51bGwKLVsgNTogUEFTUyBdIGds
LmdldFBhcmFtZXRlcihnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQklORElORykgaXMgbnVsbAotWyA2
OiBQQVNTIF0gZ2wuZ2V0UGFyYW1ldGVyKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CSU5ESU5HKSBp
cyB0ZgotWyA3OiBQQVNTIF0gZ2wuZ2V0UGFyYW1ldGVyKGdsLlRSQU5TRk9STV9GRUVEQkFDS19C
SU5ESU5HKSBpcyB0ZjEKLVsgODogUEFTUyBdIGdsLmdldFBhcmFtZXRlcihnbC5UUkFOU0ZPUk1f
RkVFREJBQ0tfQklORElORykgaXMgbnVsbAotWyA5OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGJpbmRpbmcgYSBkZWxldGVkIFRyYW5zZm9y
bSBGZWVkYmFjayBvYmplY3QKLVsgMTA6IFBBU1MgXSBnbC5nZXRQYXJhbWV0ZXIoZ2wuVFJBTlNG
T1JNX0ZFRURCQUNLX0JJTkRJTkcpIGlzIG51bGwKLVsgMTE6IFBBU1MgXSBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogdGhlcmUgc2hvdWxkIGJlIG5vIGVycm9ycwotWyAx
MjogRkFJTCBdIGdsLmdldEluZGV4ZWRQYXJhbWV0ZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JV
RkZFUl9CSU5ESU5HLCAwKSBzaG91bGQgYmUgbnVsbC4gV2FzIFtvYmplY3QgV2ViR0xCdWZmZXJd
LgotWyAxMzogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBi
aW5kaW5nIGJ1ZmZlciB0byBBUlJBWV9CVUZGRVIKLVsgMTQ6IFBBU1MgXSBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogY3JlYXRlVHJhbnNmb3JtRmVlZGJhY2sgc2hvdWxk
IG5vdCBzZXQgYW4gZXJyb3IKLVsgMTU6IFBBU1MgXSB0ZiBpcyBub24tbnVsbC4KLVsgMTY6IFBB
U1MgXSBnbC5pc1RyYW5zZm9ybUZlZWRiYWNrKHRmKSBpcyBmYWxzZQotWyAxNzogUEFTUyBdIGds
LmlzVHJhbnNmb3JtRmVlZGJhY2sodGYpIGlzIHRydWUKLVsgMTg6IFBBU1MgXSBnbC5pc1RyYW5z
Zm9ybUZlZWRiYWNrKHRmKSBpcyB0cnVlCi1bIDE5OiBQQVNTIF0gZ2wuaXNUcmFuc2Zvcm1GZWVk
YmFjayh0ZikgaXMgZmFsc2UKLVsgMjA6IFBBU1MgXSBnbC5pc1RyYW5zZm9ybUZlZWRiYWNrKG51
bGwpIGlzIGZhbHNlCi1bIDIxOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IGxpbmtpbmcgdHJhbnNmb3JtIGZlZWRiYWNrIHNoYWRlciBzaG91bGQgbm90IHNl
dCBhbiBlcnJvcgotWyAyMjogUEFTUyBdIHByb2dyYW0gaXMgbm9uLW51bGwuCi1bIDIzOiBQQVNT
IF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGFmdGVyIGV2YWx1YXRp
bmc6IGdsLmdldEJ1ZmZlclN1YkRhdGEoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgMCwg
cmV0QXJyYXksIDAsIHJldEFycmF5Lmxlbmd0aCkKLVsgMjQ6IFBBU1MgXSBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogYWZ0ZXIgZXZhbHVhdGluZzogZ2wuZ2V0QnVmZmVy
U3ViRGF0YShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSLCAwLCByZXRBcnJheSwgMCwgcmV0
QXJyYXkubGVuZ3RoKQotWyAyNTogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9PUEVSQVRJT04gOiBhZnRlciBldmFsdWF0aW5nOiBnbC5nZXRCdWZmZXJTdWJEYXRh
KGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIsIDAsIHJldEFycmF5LCAwLCByZXRBcnJheS5s
ZW5ndGgpCi1bIDI2OiBQQVNTIF0gYnVmZmVyIHNob3VsZCBtYXRjaCBleHBlY3RlZCB2YWx1ZXMK
LVsgMjc6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogbGlu
a2luZyB0cmFuc2Zvcm0gZmVlZGJhY2sgc2hhZGVyIHNob3VsZCBub3Qgc2V0IGFuIGVycm9yCi1b
IDI4OiBQQVNTIF0gcHJvZ3JhbSBpcyBub24tbnVsbC4KLVsgMjk6IFBBU1MgXSBidWZmZXIgc2hv
dWxkIG1hdGNoIGV4cGVjdGVkIHZhbHVlcwotWyAzMDogUEFTUyBdIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiBsaW5raW5nIHRyYW5zZm9ybSBmZWVkYmFjayBzaGFkZXIg
c2hvdWxkIG5vdCBzZXQgYW4gZXJyb3IKLVsgMzE6IFBBU1MgXSBwcm9ncmFtIGlzIG5vbi1udWxs
LgotWyAzMjogUEFTUyBdIGJ1ZmZlciBzaG91bGQgbWF0Y2ggZXhwZWN0ZWQgdmFsdWVzCi1bIDMz
OiBQQVNTIF0gYnVmZmVyIHNob3VsZCBtYXRjaCBleHBlY3RlZCB2YWx1ZXMKLVsgMzQ6IFBBU1Mg
XSBUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOIHF1ZXJ5J3MgcmVzdWx0IGRp
ZG4ndCBiZWNvbWUgYXZhaWxhYmxlIHRvbyBlYXJseQotWyAzNTogUEFTUyBdIFRSQU5TRk9STV9G
RUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU4gcXVlcnkgcmV0dXJuZWQgYSBjb3JyZWN0IHJlc3Vs
dCAoMykKLVsgMzY6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogbGlua2luZyB0cmFuc2Zvcm0gZmVlZGJhY2sgc2hhZGVyIHNob3VsZCBub3Qgc2V0IGFuIGVy
cm9yCi1bIDM3OiBQQVNTIF0gcHJvZ3JhbSBpcyBub24tbnVsbC4KLVsgMzg6IFBBU1MgXSBnbC5n
ZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLlRSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5H
UykgaXMgMgotWyAzOTogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiBTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gdmFsaWQgZ2V0VHJhbnNmb3JtRmVlZGJhY2tW
YXJ5aW5nLgotWyA0MDogUEFTUyBdIGFjdGl2ZUluZm8gaXMgbm9uLW51bGwuCi1bIDQxOiBQQVNT
IF0gYWN0aXZlSW5mby5uYW1lIGlzICdvdXRfYWRkJwotWyA0MjogUEFTUyBdIGFjdGl2ZUluZm8u
dHlwZSBpcyBnbC5GTE9BVF9WRUM0Ci1bIDQzOiBQQVNTIF0gYWN0aXZlSW5mby5zaXplIGlzIDEK
LVsgNDQ6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogU2hv
dWxkIGJlIG5vIGVycm9ycyBmcm9tIHZhbGlkIGdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZy4K
LVsgNDU6IFBBU1MgXSBhY3RpdmVJbmZvIGlzIG5vbi1udWxsLgotWyA0NjogUEFTUyBdIGFjdGl2
ZUluZm8ubmFtZSBpcyAnb3V0X211bCcKLVsgNDc6IFBBU1MgXSBhY3RpdmVJbmZvLnR5cGUgaXMg
Z2wuRkxPQVRfVkVDNAotWyA0ODogUEFTUyBdIGFjdGl2ZUluZm8uc2l6ZSBpcyAxCi1bIDQ5OiBQ
QVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFIDogU2hvdWxk
IGJlIElOVkFMSURfVkFMVUUgd2hlbiBjYWxsaW5nIGdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWlu
ZyB3aXRoIGFuIGludmFsaWQgaW5kZXguCi1bIDUwOiBQQVNTIF0gYWN0aXZlSW5mbyBpcyBudWxs
Ci1bIDUxOiBQQVNTIF0gZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5UUkFOU0ZP
Uk1fRkVFREJBQ0tfVkFSWUlOR1MpIGlzIDIKLVsgNTI6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHZhbGlkIGdl
dFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZy4KLVsgNTM6IFBBU1MgXSBhY3RpdmVJbmZvIGlzIG5v
bi1udWxsLgotWyA1NDogUEFTUyBdIGFjdGl2ZUluZm8ubmFtZSBpcyAnb3V0X2FkZCcKLVsgNTU6
IFBBU1MgXSBhY3RpdmVJbmZvLnR5cGUgaXMgZ2wuRkxPQVRfVkVDNAotWyA1NjogUEFTUyBdIGFj
dGl2ZUluZm8uc2l6ZSBpcyAxCi1bIDU3OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IFNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSB2YWxpZCBnZXRUcmFuc2Zv
cm1GZWVkYmFja1ZhcnlpbmcuCi1bIDU4OiBQQVNTIF0gYWN0aXZlSW5mbyBpcyBub24tbnVsbC4K
LVsgNTk6IFBBU1MgXSBhY3RpdmVJbmZvLm5hbWUgaXMgJ291dF9tdWwnCi1bIDYwOiBQQVNTIF0g
YWN0aXZlSW5mby50eXBlIGlzIGdsLkZMT0FUX1ZFQzQKLVsgNjE6IFBBU1MgXSBhY3RpdmVJbmZv
LnNpemUgaXMgMQotWyA2MjogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5W
QUxJRF9WQUxVRSA6IFNob3VsZCBiZSBJTlZBTElEX1ZBTFVFIHdoZW4gY2FsbGluZyBnZXRUcmFu
c2Zvcm1GZWVkYmFja1Zhcnlpbmcgd2l0aCBhbiBpbnZhbGlkIGluZGV4LgotWyA2MzogUEFTUyBd
IGFjdGl2ZUluZm8gaXMgbnVsbAotWyA2NDogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiBsaW5raW5nIHRyYW5zZm9ybSBmZWVkYmFjayBzaGFkZXIgc2hvdWxk
IG5vdCBzZXQgYW4gZXJyb3IKLVsgNjU6IFBBU1MgXSBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHBy
b2dyYW0sIGdsLkxJTktfU1RBVFVTKSBpcyB0cnVlCi1bIDY2OiBQQVNTIF0gZ2wuZ2V0UHJvZ3Jh
bVBhcmFtZXRlcihwcm9ncmFtLCBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1MpIGlzIDEK
LVsgNjc6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogU2hv
dWxkIGJlIG5vIGVycm9ycyBmcm9tIHZhbGlkIGdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZy4K
LVsgNjg6IFBBU1MgXSBhY3RpdmVJbmZvIGlzIG5vbi1udWxsLgotWyA2OTogUEFTUyBdIGFjdGl2
ZUluZm8ubmFtZSBpcyAnb3V0X211bCcKLVsgNzA6IFBBU1MgXSBhY3RpdmVJbmZvLnR5cGUgaXMg
Z2wuRkxPQVRfVkVDNAotWyA3MTogUEFTUyBdIGFjdGl2ZUluZm8uc2l6ZSBpcyAxCi1bIDcyOiBQ
QVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFIDogU2hvdWxk
IGJlIElOVkFMSURfVkFMVUUgd2hlbiBjYWxsaW5nIGdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWlu
ZyB3aXRoIGFuIGludmFsaWQgaW5kZXguCi1bIDczOiBQQVNTIF0gYWN0aXZlSW5mbyBpcyBudWxs
Ci1bIDc0OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVF
IDogU2hvdWxkIGJlIElOVkFMSURfVkFMVUUgd2hlbiBjYWxsaW5nIGdldFRyYW5zZm9ybUZlZWRi
YWNrVmFyeWluZyB3aXRoIGFuIGludmFsaWQgaW5kZXguCi1bIDc1OiBQQVNTIF0gYWN0aXZlSW5m
byBpcyBudWxsCi1bIDc2OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IGxpbmtpbmcgdHJhbnNmb3JtIGZlZWRiYWNrIHNoYWRlciBzaG91bGQgbm90IHNldCBh
biBlcnJvcgotWyA3NzogUEFTUyBdIGdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wu
TElOS19TVEFUVVMpIGlzIHRydWUKLVsgNzg6IFBBU1MgXSBnbC5nZXRQcm9ncmFtUGFyYW1ldGVy
KHByb2dyYW0sIGdsLlRSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5HUykgaXMgMgotWyA3OTogUEFT
UyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBTaG91bGQgYmUgbm8g
ZXJyb3JzIGZyb20gdmFsaWQgZ2V0VHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5nLgotWyA4MDogUEFT
UyBdIGFjdGl2ZUluZm8gaXMgbm9uLW51bGwuCi1bIDgxOiBQQVNTIF0gYWN0aXZlSW5mby5uYW1l
IGlzICdvdXRfYWRkJwotWyA4MjogUEFTUyBdIGFjdGl2ZUluZm8udHlwZSBpcyBnbC5GTE9BVF9W
RUM0Ci1bIDgzOiBQQVNTIF0gYWN0aXZlSW5mby5zaXplIGlzIDEKLVsgODQ6IFBBU1MgXSBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogU2hvdWxkIGJlIG5vIGVycm9ycyBm
cm9tIHZhbGlkIGdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZy4KLVsgODU6IFBBU1MgXSBhY3Rp
dmVJbmZvIGlzIG5vbi1udWxsLgotWyA4NjogUEFTUyBdIGFjdGl2ZUluZm8ubmFtZSBpcyAnb3V0
X211bCcKLVsgODc6IFBBU1MgXSBhY3RpdmVJbmZvLnR5cGUgaXMgZ2wuRkxPQVRfVkVDNAotWyA4
ODogUEFTUyBdIGFjdGl2ZUluZm8uc2l6ZSBpcyAxCi1bIDg5OiBQQVNTIF0gZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFIDogU2hvdWxkIGJlIElOVkFMSURfVkFMVUUg
d2hlbiBjYWxsaW5nIGdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZyB3aXRoIGFuIGludmFsaWQg
aW5kZXguCi1bIDkwOiBQQVNTIF0gYWN0aXZlSW5mbyBpcyBudWxsCi1bIDkxOiBQQVNTIF0gc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLVsgRkFJTCBdIDEgZmFpbHVyZXMgcmVwb3J0ZWQKK1sg
UEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403605</attachid>
            <date>2020-07-06 12:21:49 -0700</date>
            <delta_ts>2020-07-06 14:39:40 -0700</delta_ts>
            <desc>address review feedback and fix non-webgl2 builds</desc>
            <filename>bug-213906-20200706122149.patch</filename>
            <type>text/plain</type>
            <size>50193</size>
            <attacher name="James Darpinian">jdarpinian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM1MjE0MzJmZTgzMjM1
YmU5MWYwNzIwNjkwOWQ0MDAwYWU5ZTY4ZC4uOWMxMWJjNDJjMzYyOWJiZjAwYTc2ZDhiMGM3OWVi
MjllNjdlZWNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA3LTAyICBKYW1l
cyBEYXJwaW5pYW4gIDxqZGFycGluaWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBGaXggdHJh
bnNmb3JtIGZlZWRiYWNrIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTM5MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGaXggdHJhbnNmb3JtIGZlZWRiYWNrIGNvbmZvcm1hbmNlIHRlc3RzIGJ5
IGltcGxlbWVudGluZyBtaXNzaW5nIGZ1bmN0aW9uYWxpdHkgc3VjaCBhczoKKyAgICAgICAgIC0g
VHJhbnNmb3JtIGZlZWRiYWNrIG9iamVjdCBzdGF0ZSB0cmFja2luZworICAgICAgICAgLSBWYWxp
ZGF0aW9uIGZvciBhbGwgR0wgZXJyb3JzIHRoYXQgY2FuIGFmZmVjdCBzdGF0ZSB0cmFja2luZyBi
ZWZvcmUgY2FsbGluZyBBTkdMRQorICAgICAgICAgLSBEZWZhdWx0IHRyYW5zZm9ybSBmZWVkYmFj
ayBvYmplY3QKKyAgICAgICAgIC0gUGF1c2UvcmVzdW1lCisgICAgICAgICAtIEZpeCB2ZXJ0ZXhB
dHRyaWJEaXZpc29yIGluIFdlYkdMIDIgKHVucmVsYXRlZCB0byB0cmFuc2Zvcm0gZmVlZGJhY2sp
CisKKyAgICAgICAgQWZ0ZXIgdGhpcywgYWxsIHJlbGF0ZWQgdGVzdHMgcGFzcyBleGNlcHQgZm9y
IGEgZmV3IHRoYXQgYWxzbyBmYWlsIGluIENocm9tZSwgYW5kIG9uZSB0aGF0IHVzZXMKKyAgICAg
ICAgUElYRUxfUEFDS19CVUZGRVIgd2hpY2ggaXMgbm90IHlldCBzdXBwb3J0ZWQuCisKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6On5XZWJHTDJSZW5kZXJpbmdDb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVOZXdD
b250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0
ZVRyYW5zZm9ybUZlZWRiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmJpbmRUcmFuc2Zvcm1GZWVkYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0
ZVRyYW5zZm9ybUZlZWRiYWNrUHJpbWl0aXZlTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpiZWdpblRyYW5zZm9ybUZlZWRiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmVuZFRyYW5zZm9ybUZlZWRiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnRyYW5zZm9ybUZlZWRiYWNr
VmFyeWluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cGF1
c2VUcmFuc2Zvcm1GZWVkYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpyZXN1bWVUcmFuc2Zvcm1GZWVkYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpzZXRJbmRleGVkQnVmZmVyQmluZGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldE1heFRyYW5zZm9ybUZl
ZWRiYWNrU2VwYXJhdGVBdHRyaWJzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldFBhcmFtZXRlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJp
bmdDb250ZXh0Ojp1bmNhY2hlRGVsZXRlZEJ1ZmZlcik6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUHJv
Z3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFByb2dyYW06OmNhY2hlSW5mb0lmTmVl
ZGVkKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaDoKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFRyYW5zZm9ybUZlZWRiYWNrOjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OnNldFByb2dyYW0pOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6c2V0Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVl
ZGJhY2tCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6
Z2V0Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6aGFzRW5vdWdoQnVmZmVycyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjp1c2VzQnVmZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OnVuYmluZEJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjp2YWxpZGF0ZVByb2dyYW1Gb3JS
ZXN1bWUgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJh
Y2suaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRH
TEFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjp2
ZXJ0ZXhBdHRyaWJEaXZpc29yKToKKwogMjAyMC0wNi0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgQXVkaW9Db250ZXh0QmFzZSBjbGFzcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FsbFRyYWNlclR5cGVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWxsVHJhY2VyVHlwZXMuaAppbmRleCBhNDBiOTRhNzVm
MzZlMDBjYjQzZjU0YmI3ZDNmZjE1NDA3YjBhMjBlLi4wNGFlYzIzZGE5ZDEzNjg3YjliZWY1MWFj
YWY4Yzk1YmVlMTY0YTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9D
YWxsVHJhY2VyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWxsVHJh
Y2VyVHlwZXMuaApAQCAtNjEsMTMgKzYxLDEzIEBACiAjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIK
ICNpbmNsdWRlICJXZWJHTFN5bmMuaCIKICNpbmNsdWRlICJXZWJHTFRleHR1cmUuaCIKLSNpbmNs
dWRlICJXZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgiCiAjaW5jbHVkZSAiV2ViR0xVbmlmb3JtTG9j
YXRpb24uaCIKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCiAjZW5kaWYKIAog
I2lmIEVOQUJMRShXRUJHTDIpCiAjaW5jbHVkZSAiV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIgor
I2luY2x1ZGUgIldlYkdMVHJhbnNmb3JtRmVlZGJhY2suaCIKICNlbmRpZgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0xMDEsOSArMTAxLDExIEBAIHVzaW5nIFJlY29yZENhbnZhc0FjdGlvblZh
cmlhbnQgPSBWYXJpYW50PAogICAgIFdlYkdMU2hhZGVyKiwKICAgICBXZWJHTFN5bmMqLAogICAg
IFdlYkdMVGV4dHVyZSosCi0gICAgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjayosCiAgICAgV2ViR0xV
bmlmb3JtTG9jYXRpb24qLAogICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3QqLAorI2VuZGlmCisj
aWYgRU5BQkxFKFdFQkdMMikKKyAgICBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKiwKICNlbmRpZgog
ICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgUmVmUHRyPEFycmF5QnVmZmVyVmlldz4sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5k
ZXggZmM5MGJiMjMxNjcxYjY5YzhiODM3YWJhZTRiMDllOGEwYmI5N2Q4Zi4uYWMzOTY2N2RjZGM3
ZDQ3YThkYWM2YWQ1MTg4ODliNjI2OTk2NmQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMjM1LDYgKzIzNSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhWaXN1YWxWaWV3cG9ydCkgXAogICAgIG1hY3JvKFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQpIFwKICAgICBtYWNybyhXZWJHTFZlcnRleEFycmF5T2JqZWN0
KSBcCisgICAgbWFjcm8oV2ViR0xUcmFuc2Zvcm1GZWVkYmFjaykgXAogICAgIG1hY3JvKFdlYktp
dE1lZGlhS2V5RXJyb3IpIFwKICAgICBtYWNybyhXZWJLaXRNZWRpYUtleU1lc3NhZ2VFdmVudCkg
XAogICAgIG1hY3JvKFdlYktpdE1lZGlhS2V5TmVlZGVkRXZlbnQpIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXgg
Y2RiODMxYzUyODNlYzcyZDdkMjg1YzBkNzg5OTBlMDM4NDBkODM0OS4uMDY2MTRhNzBjNTFhOWY2
ZjlkOTYwOGQzYzVkMGYzOTI0MWM1NDdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTExMiw3ICsxMTIsNiBA
QCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp+V2ViR0wyUmVuZGVyaW5nQ29udGV4dCgpCiAgICAg
Ly8gdGhleSB3aWxsIGJlIGZyZWVkIGJlZm9yZSB0aGUgbGFzdCBjb250ZXh0IGlzIHJlbW92ZWQg
ZnJvbSB0aGUgY29udGV4dCBncm91cC4KICAgICBtX3JlYWRGcmFtZWJ1ZmZlckJpbmRpbmcgPSBu
dWxscHRyOwogICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjayA9IG51bGxwdHI7Ci0gICAgbV9i
b3VuZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVycy5jbGVhcigpOwogICAgIG1fYm91bmRUcmFuc2Zv
cm1GZWVkYmFja0J1ZmZlciA9IG51bGxwdHI7CiAgICAgbV9ib3VuZFVuaWZvcm1CdWZmZXIgPSBu
dWxscHRyOwogICAgIG1fYm91bmRJbmRleGVkVW5pZm9ybUJ1ZmZlcnMuY2xlYXIoKTsKQEAgLTEz
NSwxMSArMTM0LDEyIEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZU5l
d0NvbnRleHQoKQogCiAgICAgLy8gTkVFRFNfUE9SVDogYm9vbGVhbiBvY2NsdXNpb24gcXVlcnks
IHRyYW5zZm9ybSBmZWVkYmFjayBwcmltaXRpdmVzIHdyaXR0ZW4gcXVlcnksIGVsYXBzZWQgcXVl
cnkKIAotICAgIGludCBtYXhUcmFuc2Zvcm1GZWVkYmFja0F0dHJpYnMgPSBnZXRJbnRQYXJhbWV0
ZXIoR3JhcGhpY3NDb250ZXh0R0w6Ok1BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfU0VQQVJBVEVfQVRU
UklCUyk7Ci0gICAgQVNTRVJUKG1heFRyYW5zZm9ybUZlZWRiYWNrQXR0cmlicyA+PSA0KTsKLSAg
ICBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzLnJlc2l6ZShtYXhUcmFuc2Zvcm1GZWVk
YmFja0F0dHJpYnMpOworICAgIG1fbWF4VHJhbnNmb3JtRmVlZGJhY2tTZXBhcmF0ZUF0dHJpYnMg
PSBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihHcmFwaGljc0NvbnRleHRHTDo6TUFYX1RSQU5TRk9S
TV9GRUVEQkFDS19TRVBBUkFURV9BVFRSSUJTKTsKKyAgICBBU1NFUlQobV9tYXhUcmFuc2Zvcm1G
ZWVkYmFja1NlcGFyYXRlQXR0cmlicyA+PSA0KTsKIAotICAgIC8vIE5FRURTX1BPUlQ6IHNldCB1
cCBkZWZhdWx0IHRyYW5zZm9ybSBmZWVkYmFjayBvYmplY3QKKyAgICBtX2RlZmF1bHRUcmFuc2Zv
cm1GZWVkYmFjayA9IGNyZWF0ZVRyYW5zZm9ybUZlZWRiYWNrKCk7CisgICAgbV9jb250ZXh0LT5i
aW5kVHJhbnNmb3JtRmVlZGJhY2soR3JhcGhpY3NDb250ZXh0R0w6OlRSQU5TRk9STV9GRUVEQkFD
SywgbV9kZWZhdWx0VHJhbnNmb3JtRmVlZGJhY2stPm9iamVjdCgpKTsKKyAgICBtX2JvdW5kVHJh
bnNmb3JtRmVlZGJhY2sgPSBtX2RlZmF1bHRUcmFuc2Zvcm1GZWVkYmFjazsKIAogICAgIG1fYm91
bmRJbmRleGVkVW5pZm9ybUJ1ZmZlcnMucmVzaXplKGdldEludFBhcmFtZXRlcihHcmFwaGljc0Nv
bnRleHRHTDo6TUFYX1VOSUZPUk1fQlVGRkVSX0JJTkRJTkdTKSk7CiAgICAgbV91bmlmb3JtQnVm
ZmVyT2Zmc2V0QWxpZ25tZW50ID0gZ2V0SW50UGFyYW1ldGVyKEdyYXBoaWNzQ29udGV4dEdMOjpV
TklGT1JNX0JVRkZFUl9PRkZTRVRfQUxJR05NRU5UKTsKQEAgLTE3ODUsMTEgKzE3ODUsMTggQEAg
UmVmUHRyPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNy
ZWF0ZVRyYW5zZm9ybUZlZWRiYWNrKCkKIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpk
ZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKiBmZWVkYmFja09i
amVjdCkKIHsKLSAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQorICAgIGlmIChpc0Nv
bnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIWZlZWRiYWNrT2JqZWN0IHx8IGZlZWRiYWNrT2JqZWN0
LT5pc0RlbGV0ZWQoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZGVsZXRlVHJhbnNmb3JtRmVl
ZGJhY2siLCBmZWVkYmFja09iamVjdCkpCiAgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBBU1NF
UlQoZmVlZGJhY2tPYmplY3QgIT0gbV9kZWZhdWx0VHJhbnNmb3JtRmVlZGJhY2spOworICAgIAor
ICAgIGlmIChmZWVkYmFja09iamVjdC0+aXNBY3RpdmUoKSkgeworICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICJkZWxldGVUcmFu
c2Zvcm1GZWVkYmFjayIsICJhdHRlbXB0IHRvIGRlbGV0ZSBhbiBhY3RpdmUgdHJhbnNmb3JtIGZl
ZWRiYWNrIG9iamVjdCIpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgaWYgKG1fYm91
bmRUcmFuc2Zvcm1GZWVkYmFjayA9PSBmZWVkYmFja09iamVjdCkKLSAgICAgICAgbV9ib3VuZFRy
YW5zZm9ybUZlZWRiYWNrID0gbnVsbHB0cjsKKyAgICAgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRi
YWNrID0gbV9kZWZhdWx0VHJhbnNmb3JtRmVlZGJhY2s7CiAKICAgICBkZWxldGVPYmplY3QoZmVl
ZGJhY2tPYmplY3QpOwogfQpAQCAtMTgxNywxNiArMTgyNCw2NCBAQCB2b2lkIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmJpbmRUcmFuc2Zvcm1GZWVkYmFjayhHQ0dMZW51bSB0YXJnZXQsIFdlYkdM
VHJhbnNmbwogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29udGV4dC0+Ymlu
ZFRyYW5zZm9ybUZlZWRiYWNrKHRhcmdldCwgb2JqZWN0T3JaZXJvKGZlZWRiYWNrT2JqZWN0KSk7
Ci0gICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrID0gZmVlZGJhY2tPYmplY3Q7CisgICAgaWYg
KHRhcmdldCAhPSBHcmFwaGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLKSB7CisgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX0VOVU0sICJi
aW5kVHJhbnNmb3JtRmVlZGJhY2siLCAidGFyZ2V0IG11c3QgYmUgVFJBTlNGT1JNX0ZFRURCQUNL
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1fYm91bmRUcmFuc2Zvcm1GZWVk
YmFjay0+aXNBY3RpdmUoKSAmJiAhbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5pc1BhdXNlZCgp
KSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElE
X09QRVJBVElPTiwgImJpbmRUcmFuc2Zvcm1GZWVkYmFjayIsICJ0cmFuc2Zvcm0gZmVlZGJhY2sg
aXMgYWN0aXZlIGFuZCBub3QgcGF1c2VkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBhdXRvIHRvQmVCb3VuZCA9IGZlZWRiYWNrT2JqZWN0ID8gZmVlZGJhY2tPYmplY3QgOiBtX2Rl
ZmF1bHRUcmFuc2Zvcm1GZWVkYmFjay5nZXQoKTsKKyAgICBtX2NvbnRleHQtPmJpbmRUcmFuc2Zv
cm1GZWVkYmFjayh0YXJnZXQsIHRvQmVCb3VuZC0+b2JqZWN0KCkpOworICAgIG1fYm91bmRUcmFu
c2Zvcm1GZWVkYmFjayA9IHRvQmVCb3VuZDsKK30KKworc3RhdGljIGJvb2wgVmFsaWRhdGVUcmFu
c2Zvcm1GZWVkYmFja1ByaW1pdGl2ZU1vZGUoR0NHTGVudW0gbW9kZSkKK3sKKyAgICBzd2l0Y2gg
KG1vZGUpIHsKKyAgICBjYXNlIEdMX1BPSU5UUzoKKyAgICBjYXNlIEdMX0xJTkVTOgorICAgIGNh
c2UgR0xfVFJJQU5HTEVTOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmJlZ2luVHJhbnNmb3JtRmVlZGJhY2soR0NHTGVudW0gcHJpbWl0aXZlTW9kZSkKIHsKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm47CisgICAgCisg
ICAgaWYgKCFWYWxpZGF0ZVRyYW5zZm9ybUZlZWRiYWNrUHJpbWl0aXZlTW9kZShwcmltaXRpdmVN
b2RlKSkgeworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5W
QUxJRF9FTlVNLCAiYmVnaW5UcmFuc2Zvcm1GZWVkYmFjayIsICJpbnZhbGlkIHRyYW5zZm9ybSBm
ZWVkYmFjayBwcmltaXRpdmUgbW9kZSIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlm
ICghbV9jdXJyZW50UHJvZ3JhbSkgeworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICJiZWdpblRyYW5zZm9ybUZlZWRiYWNrIiwg
Im5vIHByb2dyYW0gaXMgYWN0aXZlIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYg
KG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+aXNBY3RpdmUoKSkgeworICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICJiZWdpblRy
YW5zZm9ybUZlZWRiYWNrIiwgInRyYW5zZm9ybSBmZWVkYmFjayBpcyBhbHJlYWR5IGFjdGl2ZSIp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGludCByZXF1aXJlZEJ1ZmZlckNvdW50ID0g
bV9jdXJyZW50UHJvZ3JhbS0+cmVxdWlyZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlckNvdW50KCk7
CisgICAgaWYgKCFyZXF1aXJlZEJ1ZmZlckNvdW50KSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwgImJlZ2luVHJhbnNmb3Jt
RmVlZGJhY2siLCAiY3VycmVudCBhY3RpdmUgcHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGFueSB0
cmFuc2Zvcm0gZmVlZGJhY2sgdmFyeWluZ3MgdG8gcmVjb3JkIik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgaWYgKCFtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2stPmhhc0Vub3VnaEJ1ZmZl
cnMocmVxdWlyZWRCdWZmZXJDb3VudCkpIHsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BFUkFUSU9OLCAiYmVnaW5UcmFuc2Zvcm1GZWVkYmFj
ayIsICJub3QgZW5vdWdoIHRyYW5zZm9ybSBmZWVkYmFjayBidWZmZXJzIGJvdW5kIik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CiAKICAgICBtX2NvbnRleHQtPmJlZ2luVHJhbnNmb3JtRmVlZGJh
Y2socHJpbWl0aXZlTW9kZSk7CisKKyAgICBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2stPnNldFBy
b2dyYW0oKm1fY3VycmVudFByb2dyYW0pOworICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+
c2V0QWN0aXZlKHRydWUpOworICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+c2V0UGF1c2Vk
KGZhbHNlKTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjplbmRUcmFuc2Zvcm1G
ZWVkYmFjaygpCkBAIC0xODM0LDEzICsxODg5LDM2IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6ZW5kVHJhbnNmb3JtRmVlZGJhY2soKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5k
aW5nKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmICghbV9ib3VuZFRyYW5zZm9ybUZlZWRi
YWNrLT5pc0FjdGl2ZSgpKSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwgImVuZFRyYW5zZm9ybUZlZWRiYWNrIiwgInRyYW5z
Zm9ybSBmZWVkYmFjayBpcyBub3QgYWN0aXZlIik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgCiAgICAgbV9jb250ZXh0LT5lbmRUcmFuc2Zvcm1GZWVkYmFjaygpOworCisgICAgbV9ib3Vu
ZFRyYW5zZm9ybUZlZWRiYWNrLT5zZXRQYXVzZWQoZmFsc2UpOworICAgIG1fYm91bmRUcmFuc2Zv
cm1GZWVkYmFjay0+c2V0QWN0aXZlKGZhbHNlKTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Ojp0cmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHZhcnlpbmdzLCBHQ0dMZW51bSBidWZmZXJNb2RlKQogewot
ICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgdmFyeWluZ3MuaXNFbXB0eSgpIHx8
ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJ0cmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzIiwgJnByb2dy
YW0pKQorICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xP
YmplY3QoInRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MiLCAmcHJvZ3JhbSkpCiAgICAgICAgIHJl
dHVybjsKKyAgICAKKyAgICBzd2l0Y2ggKGJ1ZmZlck1vZGUpIHsKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpTRVBBUkFURV9BVFRSSUJTOgorICAgICAgICBpZiAodmFyeWluZ3Muc2l6ZSgp
ID4gbV9tYXhUcmFuc2Zvcm1GZWVkYmFja1NlcGFyYXRlQXR0cmlicykgeworICAgICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfVkFMVUUsICJ0cmFu
c2Zvcm1GZWVkYmFja1ZhcnlpbmdzIiwgInRvbyBtYW55IHZhcnlpbmdzIik7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHRHTDo6SU5URVJMRUFWRURfQVRUUklCUzoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURf
RU5VTSwgInRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MiLCAiaW52YWxpZCBidWZmZXIgbW9kZSIp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHByb2dyYW0uc2V0UmVxdWlyZWRUcmFuc2Zv
cm1GZWVkYmFja0J1ZmZlckNvdW50KGJ1ZmZlck1vZGUgPT0gR3JhcGhpY3NDb250ZXh0R0w6OklO
VEVSTEVBVkVEX0FUVFJJQlMgPyAxIDogdmFyeWluZ3Muc2l6ZSgpKTsKIAogICAgIG1fY29udGV4
dC0+dHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncyhwcm9ncmFtLm9iamVjdCgpLCB2YXJ5aW5ncywg
YnVmZmVyTW9kZSk7CiB9CkBAIC0xODYxLDEyICsxOTM5LDM5IEBAIFJlZlB0cjxXZWJHTEFjdGl2
ZUluZm8+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWlu
ZyhXZWJHCiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cGF1c2VUcmFuc2Zvcm1GZWVk
YmFjaygpCiB7Ci0gICAgTE9HKFdlYkdMLCAiW1sgTk9UIElNUExFTUVOVEVEIF1dIHBhdXNlVHJh
bnNmb3JtRmVlZGJhY2soKSIpOworICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5pc0Fj
dGl2ZSgpKSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJ
TlZBTElEX09QRVJBVElPTiwgInBhdXNlVHJhbnNmb3JtRmVlZGJhY2siLCAidHJhbnNmb3JtIGZl
ZWRiYWNrIGlzIG5vdCBhY3RpdmUiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2stPmlzUGF1c2VkKCkpIHsKKyAgICAgICAgc3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BFUkFUSU9OLCAicGF1c2VU
cmFuc2Zvcm1GZWVkYmFjayIsICJ0cmFuc2Zvcm0gZmVlZGJhY2sgaXMgYWxyZWFkeSBwYXVzZWQi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFj
ay0+c2V0UGF1c2VkKHRydWUpOworICAgIG1fY29udGV4dC0+cGF1c2VUcmFuc2Zvcm1GZWVkYmFj
aygpOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnJlc3VtZVRyYW5zZm9ybUZl
ZWRiYWNrKCkKIHsKLSAgICBMT0coV2ViR0wsICJbWyBOT1QgSU1QTEVNRU5URUQgXV0gcmVzdW1l
VHJhbnNmb3JtRmVlZGJhY2soKSIpOworICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT52
YWxpZGF0ZVByb2dyYW1Gb3JSZXN1bWUobV9jdXJyZW50UHJvZ3JhbS5nZXQoKSkpIHsKKyAgICAg
ICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BFUkFUSU9O
LCAicmVzdW1lVHJhbnNmb3JtRmVlZGJhY2siLCAidGhlIGN1cnJlbnQgcHJvZ3JhbSBpcyBub3Qg
dGhlIHNhbWUgYXMgd2hlbiBiZWdpblRyYW5zZm9ybUZlZWRiYWNrIHdhcyBjYWxsZWQiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoIW1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+
aXNBY3RpdmUoKSB8fCAhbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5pc1BhdXNlZCgpKSB7Cisg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJB
VElPTiwgInJlc3VtZVRyYW5zZm9ybUZlZWRiYWNrIiwgInRyYW5zZm9ybSBmZWVkYmFjayBpcyBu
b3QgYWN0aXZlIG9yIG5vdCBwYXVzZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+c2V0UGF1c2VkKGZhbHNlKTsKKyAgICBtX2NvbnRl
eHQtPnJlc3VtZVRyYW5zZm9ybUZlZWRiYWNrKCk7CiB9CiAKIGJvb2wgV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6c2V0SW5kZXhlZEJ1ZmZlckJpbmRpbmcoY29uc3QgY2hhciAqZnVuY3Rpb25OYW1l
LCBHQ0dMZW51bSB0YXJnZXQsIEdDR0x1aW50IGluZGV4LCBXZWJHTEJ1ZmZlciogYnVmZmVyKQpA
QCAtMTg3OSw3ICsxOTg0LDcgQEAgYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpzZXRJbmRl
eGVkQnVmZmVyQmluZGluZyhjb25zdCBjaGFyICpmdW5jdGlvbk5hbWUsIEcKIAogICAgIHN3aXRj
aCAodGFyZ2V0KSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURC
QUNLX0JVRkZFUjoKLSAgICAgICAgaWYgKGluZGV4ID49IG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFj
a0J1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAgIGlmIChpbmRleCA+IG1fbWF4VHJhbnNmb3JtRmVl
ZGJhY2tTZXBhcmF0ZUF0dHJpYnMpIHsKICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX1ZBTFVFLCBmdW5jdGlvbk5hbWUsICJpbmRleCBvdXQg
b2YgcmFuZ2UiKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMTkw
MCw3ICsyMDA1LDcgQEAgYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpzZXRJbmRleGVkQnVm
ZmVyQmluZGluZyhjb25zdCBjaGFyICpmdW5jdGlvbk5hbWUsIEcKIAogICAgIHN3aXRjaCAodGFy
Z2V0KSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JV
RkZFUjoKLSAgICAgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyc1tpbmRleF0gPSBi
dWZmZXI7CisgICAgICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+c2V0Qm91bmRJbmRleGVk
VHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIoaW5kZXgsIGJ1ZmZlcik7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlVOSUZPUk1fQlVGRkVSOgogICAgICAgICBtX2Jv
dW5kSW5kZXhlZFVuaWZvcm1CdWZmZXJzW2luZGV4XSA9IGJ1ZmZlcjsKQEAgLTE5MzgsMTIgKzIw
NDMsMTUgQEAgV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFt
ZXRlcihHQ0dMZW51bSB0YXJnZXQsIEdDR0x1aW50IGkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBzd2l0Y2ggKHRhcmdldCkgewotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlRS
QU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORzoKLSAgICAgICAgaWYgKGluZGV4ID49IG1f
Ym91bmRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnMuc2l6ZSgpKSB7CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HOiB7CisgICAgICAg
IFdlYkdMQnVmZmVyKiBidWZmZXI7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9IG1fYm91bmRUcmFu
c2Zvcm1GZWVkYmFjay0+Z2V0Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIoaW5k
ZXgsICZidWZmZXIpOworICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKICAgICAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX1ZBTFVFLCAiZ2V0SW5kZXhl
ZFBhcmFtZXRlciIsICJpbmRleCBvdXQgb2YgcmFuZ2UiKTsKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBtX2JvdW5kVHJhbnNmb3JtRmVlZGJh
Y2tCdWZmZXJzW2luZGV4XTsKKyAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIoYnVmZmVyKTsKKyAg
ICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZF
Ul9TSVpFOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlRSQU5TRk9STV9GRUVEQkFDS19C
VUZGRVJfU1RBUlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VU5JRk9STV9CVUZGRVJf
U0laRToKQEAgLTE5NTgsNyArMjA2Niw2IEBAIFdlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmdldEluZGV4ZWRQYXJhbWV0ZXIoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMdWludCBpCiAgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9ib3Vu
ZEluZGV4ZWRVbmlmb3JtQnVmZmVyc1tpbmRleF07Ci0gICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdM
OjpJTlZBTElEX0VOVU0sICJnZXRJbmRleGVkUGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVy
IG5hbWUiKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0yNDg0LDYgKzI1OTEsMTEgQEAg
dm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVu
dW0gbW9kZSkKICAgICBtX2NvbnRleHQtPmhpbnQodGFyZ2V0LCBtb2RlKTsKIH0KIAorR0NHTHVp
bnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6bWF4VHJhbnNmb3JtRmVlZGJhY2tTZXBhcmF0ZUF0
dHJpYnMoKSBjb25zdAoreworICAgIHJldHVybiBtX21heFRyYW5zZm9ybUZlZWRiYWNrU2VwYXJh
dGVBdHRyaWJzOworfQorCiBHQ0dMZW51bSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiYXNlSW50
ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3JtYXQoR0NHTGVudW0gaW50ZXJuYWxmb3JtYXQpCiB7
CiAgICAgLy8gSGFuZGxlcyBzaXplZCwgdW5zaXplZCwgYW5kIGNvbXByZXNzZWQgaW50ZXJuYWwg
Zm9ybWF0cy4KQEAgLTI2OTIsOCArMjgwNCw3IEBAIFdlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmdldFBhcmFtZXRlcihHQ0dMZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dEdMOjpUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkc6CiAgICAgICAgIHJldHVy
biBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJTkc6Ci0gICAgICAgIC8vIEZJWE1FOiBORUVE
U19QT1JUOiBzdXBwb3J0IGRlZmF1bHQgdHJhbnNmb3JtIGZlZWRiYWNrIG9iamVjdC4KLSAgICAg
ICAgcmV0dXJuIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjazsKKyAgICAgICAgcmV0dXJuIG1fYm91
bmRUcmFuc2Zvcm1GZWVkYmFjayA9PSBtX2RlZmF1bHRUcmFuc2Zvcm1GZWVkYmFjayA/IG51bGxw
dHIgOiBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2s7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRH
TDo6VFJBTlNGT1JNX0ZFRURCQUNLX1BBVVNFRDoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5Q
YXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlVOSUZPUk1fQlVG
RkVSX0JJTkRJTkc6CkBAIC0zMDIyLDEwICszMTMzLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Ojp1bmNhY2hlRGVsZXRlZEJ1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQogICAgIFJF
TU9WRV9CVUZGRVJfRlJPTV9CSU5ESU5HKG1fYm91bmRQaXhlbFVucGFja0J1ZmZlcik7CiAgICAg
UkVNT1ZFX0JVRkZFUl9GUk9NX0JJTkRJTkcobV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVy
KTsKICAgICBSRU1PVkVfQlVGRkVSX0ZST01fQklORElORyhtX2JvdW5kVW5pZm9ybUJ1ZmZlcik7
Ci0KLSAgICBzaXplX3QgaW5kZXggPSBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzLmZp
bmQoYnVmZmVyKTsKLSAgICBpZiAoaW5kZXggPCBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZm
ZXJzLnNpemUoKSkKLSAgICAgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyc1tpbmRl
eF0gPSBudWxscHRyOworICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+dW5iaW5kQnVmZmVy
KCpidWZmZXIpOwogCiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5jYWNoZURlbGV0
ZWRCdWZmZXIoYnVmZmVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAppbmRleCBkYjVhOGQ0OTZiYTNmYTczMDVmZGExZTY3
NTdjODcwZGZhOWNkNWU4Li42ZDY1OGNhNGNhZWIwNjc1OWJhODQ2YTkzZWNjNTA4OTA5MWU2MjI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5oCkBAIC0yNDYsNiArMjQ2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZW5kZXJi
dWZmZXJTdG9yYWdlKEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdD
R0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCkgZmluYWw7CiAgICAgdm9pZCBoaW50KEdD
R0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkgZmluYWw7CisgICAgR0NHTHVpbnQgbWF4VHJh
bnNmb3JtRmVlZGJhY2tTZXBhcmF0ZUF0dHJpYnMoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmLCBHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMpOwpAQCAtMzA0LDcgKzMwNSw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8V2ViR0xG
cmFtZWJ1ZmZlcj4gbV9yZWFkRnJhbWVidWZmZXJCaW5kaW5nOwogICAgIFJlZlB0cjxXZWJHTFRy
YW5zZm9ybUZlZWRiYWNrPiBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2s7Ci0gICAgVmVjdG9yPFJl
ZlB0cjxXZWJHTEJ1ZmZlcj4+IG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnM7CisgICAg
UmVmUHRyPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IG1fZGVmYXVsdFRyYW5zZm9ybUZlZWRiYWNr
OwogCiAgICAgUmVmUHRyPFdlYkdMQnVmZmVyPiBtX2JvdW5kQ29weVJlYWRCdWZmZXI7CiAgICAg
UmVmUHRyPFdlYkdMQnVmZmVyPiBtX2JvdW5kQ29weVdyaXRlQnVmZmVyOwpAQCAtMzI0LDYgKzMy
NSw3IEBAIHByaXZhdGU6CiAgICAgR0NHTGludCBtX3VucGFja0ltYWdlSGVpZ2h0IHsgMCB9Owog
ICAgIEdDR0xpbnQgbV91bnBhY2tTa2lwSW1hZ2VzIHsgMCB9OwogICAgIEdDR0xpbnQgbV91bmlm
b3JtQnVmZmVyT2Zmc2V0QWxpZ25tZW50IHsgMCB9OworICAgIEdDR0x1aW50IG1fbWF4VHJhbnNm
b3JtRmVlZGJhY2tTZXBhcmF0ZUF0dHJpYnMgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dy
YW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcAppbmRl
eCBkMWIwZTc0NmU4MGE1MjY2NjVhZTg2YjcxOGZiZWM1MjY3YmVlMDAyLi40MGU3ODA3ZmUxNGI1
NGRlZjQ2MGY4YTgzZTU3ZjhjZDA0YzdmMjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUHJvZ3JhbS5jcHAKQEAgLTIyNCw4ICsyMjQsMTAgQEAgdm9pZCBXZWJHTFByb2dy
YW06OmNhY2hlSW5mb0lmTmVlZGVkKCkKICAgICBHQ0dMaW50IGxpbmtTdGF0dXMgPSAwOwogICAg
IGNvbnRleHQtPmdldFByb2dyYW1pdihvYmplY3QoKSwgR3JhcGhpY3NDb250ZXh0R0w6OkxJTktf
U1RBVFVTLCAmbGlua1N0YXR1cyk7CiAgICAgbV9saW5rU3RhdHVzID0gbGlua1N0YXR1czsKLSAg
ICBpZiAobV9saW5rU3RhdHVzKQorICAgIGlmIChtX2xpbmtTdGF0dXMpIHsKICAgICAgICAgY2Fj
aGVBY3RpdmVBdHRyaWJMb2NhdGlvbnMoY29udGV4dCk7CisgICAgICAgIG1fcmVxdWlyZWRUcmFu
c2Zvcm1GZWVkYmFja0J1ZmZlckNvdW50ID0gbV9yZXF1aXJlZFRyYW5zZm9ybUZlZWRiYWNrQnVm
ZmVyQ291bnRBZnRlck5leHRMaW5rOworICAgIH0KICAgICBtX2luZm9WYWxpZCA9IHRydWU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKaW5kZXggODkzNmI2
OWY1M2YyMDNlMmYwN2ViY2E5NzFkYTllZTk3ZWU4YWI4Zi4uODA4ZmQyMGYwOWMwM2NjZTQ2Mjcz
OGQ1NWI2Nzc5Zjk2ZmVkZDJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQ
cm9ncmFtLmgKQEAgLTY5LDYgKzY5LDE2IEBAIHB1YmxpYzoKICAgICBXZWJHTFNoYWRlciogZ2V0
QXR0YWNoZWRTaGFkZXIoR0NHTGVudW0pOwogICAgIGJvb2wgYXR0YWNoU2hhZGVyKFdlYkdMU2hh
ZGVyKik7CiAgICAgYm9vbCBkZXRhY2hTaGFkZXIoV2ViR0xTaGFkZXIqKTsKKyAgICAKKyAgICB2
b2lkIHNldFJlcXVpcmVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJDb3VudChpbnQgY291bnQpCisg
ICAgeworICAgICAgICBtX3JlcXVpcmVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJDb3VudEFmdGVy
TmV4dExpbmsgPSBjb3VudDsKKyAgICB9CisgICAgaW50IHJlcXVpcmVkVHJhbnNmb3JtRmVlZGJh
Y2tCdWZmZXJDb3VudCgpCisgICAgeworICAgICAgICBjYWNoZUluZm9JZk5lZWRlZCgpOworICAg
ICAgICByZXR1cm4gbV9yZXF1aXJlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyQ291bnQ7CisgICAg
fQogCiBwcml2YXRlOgogICAgIFdlYkdMUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Jik7CkBAIC04OSw2ICs5OSw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkdMU2hhZGVyPiBt
X2ZyYWdtZW50U2hhZGVyOwogCiAgICAgYm9vbCBtX2luZm9WYWxpZCB7IHRydWUgfTsKKyAgICBp
bnQgbV9yZXF1aXJlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyQ291bnRBZnRlck5leHRMaW5rIHsg
MCB9OworICAgIGludCBtX3JlcXVpcmVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJDb3VudCB7IDAg
fTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5jcHAKaW5kZXggNWEyZjAzMzBj
ZDA0ZDIyNDNhYTA1OTFlNjAxZDZhYzhhNDVkNGNiNy4uYjE5MWM0NGQ1MDZkYmVmYjQ2ZWM0ZmJj
OGU5Mjk5ZTI3NDc1MzVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgogCi0jaWYgRU5BQkxFKFdFQkdMKQorI2lmIEVOQUJMRShXRUJHTDIpCiAj
aW5jbHVkZSAiV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oIgogCiAjaW5jbHVkZSAiV2ViR0xDb250
ZXh0R3JvdXAuaCIKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWY8V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz4gV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6Y3JlYXRl
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKK1JlZjxXZWJHTFRyYW5zZm9ybUZlZWRi
YWNrPiBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpjcmVhdGUoV2ViR0wyUmVuZGVyaW5nQ29udGV4
dCYgY3R4KQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdMVHJhbnNmb3JtRmVlZGJh
Y2soY3R4KSk7CiB9CkBAIC00MywxMCArNDMsMTEgQEAgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6
fldlYkdMVHJhbnNmb3JtRmVlZGJhY2soKQogICAgIGRlbGV0ZU9iamVjdCgwKTsKIH0KIAotV2Vi
R0xUcmFuc2Zvcm1GZWVkYmFjazo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjdHgpCitXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpXZWJHTFRyYW5zZm9y
bUZlZWRiYWNrKFdlYkdMMlJlbmRlcmluZ0NvbnRleHQmIGN0eCkKICAgICA6IFdlYkdMU2hhcmVk
T2JqZWN0KGN0eCkKIHsKICAgICBzZXRPYmplY3QoY3R4LmdyYXBoaWNzQ29udGV4dEdMKCktPmNy
ZWF0ZVRyYW5zZm9ybUZlZWRiYWNrKCkpOworICAgIG1fYm91bmRJbmRleGVkVHJhbnNmb3JtRmVl
ZGJhY2tCdWZmZXJzLnJlc2l6ZShjdHgubWF4VHJhbnNmb3JtRmVlZGJhY2tTZXBhcmF0ZUF0dHJp
YnMoKSk7CiB9CiAKIHZvaWQgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6ZGVsZXRlT2JqZWN0SW1w
bChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDNkLCBQbGF0Zm9ybUdMT2JqZWN0IG9i
amVjdCkKQEAgLTU0LDYgKzU1LDUyIEBAIHZvaWQgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6ZGVs
ZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDNkCiAgICAgY29u
dGV4dDNkLT5kZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhvYmplY3QpOwogfQogCit2b2lkIFdlYkdM
VHJhbnNmb3JtRmVlZGJhY2s6OnNldFByb2dyYW0oV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQorewor
ICAgIG1fcHJvZ3JhbSA9ICZwcm9ncmFtOworICAgIG1fcHJvZ3JhbUxpbmtDb3VudCA9IHByb2dy
YW0uZ2V0TGlua0NvdW50KCk7Cit9CisKK2Jvb2wgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6c2V0
Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIoR0NHTHVpbnQgaW5kZXgsIFdlYkdM
QnVmZmVyKiBidWZmZXIpCit7CisgICAgaWYgKGluZGV4ID4gbV9ib3VuZEluZGV4ZWRUcmFuc2Zv
cm1GZWVkYmFja0J1ZmZlcnMuc2l6ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgbV9i
b3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnNbaW5kZXhdID0gYnVmZmVyOworICAg
IHJldHVybiB0cnVlOworfQorCitib29sIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OmdldEJvdW5k
SW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyKEdDR0x1aW50IGluZGV4LCBXZWJHTEJ1ZmZl
cioqIG91dEJ1ZmZlcikKK3sKKyAgICBpZiAoaW5kZXggPiBtX2JvdW5kSW5kZXhlZFRyYW5zZm9y
bUZlZWRiYWNrQnVmZmVycy5zaXplKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAqb3V0
QnVmZmVyID0gbV9ib3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnNbaW5kZXhdLmdl
dCgpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6
Omhhc0Vub3VnaEJ1ZmZlcnMoR0NHTHVpbnQgbnVtUmVxdWlyZWQpIGNvbnN0Cit7CisgICAgaWYg
KG51bVJlcXVpcmVkID4gbV9ib3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnMuc2l6
ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZm9yIChHQ0dMdWludCBpID0gMDsgaSA8
IG51bVJlcXVpcmVkOyBpKyspIHsKKyAgICAgICAgaWYgKCFtX2JvdW5kSW5kZXhlZFRyYW5zZm9y
bUZlZWRiYWNrQnVmZmVyc1tpXS5nZXQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6
dW5iaW5kQnVmZmVyKFdlYkdMQnVmZmVyJiBidWZmZXIpCit7CisgICAgZm9yIChhdXRvJiBib3Vu
ZEJ1ZmZlciA6IG1fYm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzKSB7CisgICAg
ICAgIGlmIChib3VuZEJ1ZmZlciA9PSAmYnVmZmVyKQorICAgICAgICAgICAgYm91bmRCdWZmZXIg
PSBudWxscHRyOworICAgIH0KK30KKworYm9vbCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjp2YWxp
ZGF0ZVByb2dyYW1Gb3JSZXN1bWUoV2ViR0xQcm9ncmFtKiBwcm9ncmFtKSBjb25zdAoreworICAg
IHJldHVybiBwcm9ncmFtICYmIG1fcHJvZ3JhbSA9PSBwcm9ncmFtICYmIHByb2dyYW0tPmdldExp
bmtDb3VudCgpID09IG1fcHJvZ3JhbUxpbmtDb3VudDsKK30KKwogfQogCi0jZW5kaWYgLy8gRU5B
QkxFKFdFQkdMKQorI2VuZGlmIC8vIEVOQUJMRShXRUJHTDIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgKaW5kZXggZjcwMmFlYzE5
MmQ3YmM2NzNjMjAzMzAyNTUxMzIzYzA0NTFlMjgzNi4uYTc3ZTQ4OTA0OGM2NmY2MTQ2MDg4YmRm
MjNmY2IwY2Q2OWY2ODcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaApAQCAtMjUsOCArMjUsOSBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2lmIEVOQUJMRShXRUJHTCkKKyNpZiBFTkFCTEUoV0VCR0wyKQogCisjaW5jbHVkZSAi
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMU2hhcmVkT2JqZWN0Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1LDEyICszNiw0MiBAQCBjbGFzcyBXZWJHTFRy
YW5zZm9ybUZlZWRiYWNrIGZpbmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2JqZWN0IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5XZWJHTFRyYW5zZm9ybUZlZWRiYWNrKCk7CiAKLSAgICBzdGF0aWMg
UmVmPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlJik7CisgICAgc3RhdGljIFJlZjxXZWJHTFRyYW5zZm9ybUZlZWRiYWNrPiBjcmVhdGUoV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dCYpOworICAgIAorICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7
IHJldHVybiBtX2FjdGl2ZTsgfQorICAgIGJvb2wgaXNQYXVzZWQoKSBjb25zdCB7IHJldHVybiBt
X3BhdXNlZDsgfQorICAgIAorICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wgYWN0aXZlKSB7IG1fYWN0
aXZlID0gYWN0aXZlOyB9CisgICAgdm9pZCBzZXRQYXVzZWQoYm9vbCBwYXVzZWQpIHsgbV9wYXVz
ZWQgPSBwYXVzZWQ7IH0KKyAgICAKKyAgICAvLyBUaGVzZSBhcmUgdGhlIGluZGV4ZWQgYmluZCBw
b2ludHMgZm9yIHRyYW5zZm9ybSBmZWVkYmFjayBidWZmZXJzLgorICAgIC8vIFJldHVybnMgZmFs
c2UgaWYgaW5kZXggaXMgb3V0IG9mIHJhbmdlIGFuZCB0aGUgY2FsbGVyIHNob3VsZAorICAgIC8v
IHN5bnRoZXNpemUgYSBHTCBlcnJvci4KKyAgICBib29sIHNldEJvdW5kSW5kZXhlZFRyYW5zZm9y
bUZlZWRiYWNrQnVmZmVyKEdDR0x1aW50IGluZGV4LCBXZWJHTEJ1ZmZlciopOworICAgIGJvb2wg
Z2V0Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIoR0NHTHVpbnQgaW5kZXgsIFdl
YkdMQnVmZmVyKiogb3V0QnVmZmVyKTsKKyAgICAKKyAgICBib29sIHZhbGlkYXRlUHJvZ3JhbUZv
clJlc3VtZShXZWJHTFByb2dyYW0qKSBjb25zdDsKIAorICAgIGJvb2wgaGFzRXZlckJlZW5Cb3Vu
ZCgpIGNvbnN0IHsgcmV0dXJuIG9iamVjdCgpICYmIG1faGFzRXZlckJlZW5Cb3VuZDsgfQorICAg
IHZvaWQgc2V0SGFzRXZlckJlZW5Cb3VuZCgpIHsgbV9oYXNFdmVyQmVlbkJvdW5kID0gdHJ1ZTsg
fQorICAgIAorICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJv
Z3JhbS5nZXQoKTsgfQorICAgIHZvaWQgc2V0UHJvZ3JhbShXZWJHTFByb2dyYW0mKTsKKyAgICAK
KyAgICB2b2lkIHVuYmluZEJ1ZmZlcihXZWJHTEJ1ZmZlciYpOworICAgIAorICAgIGJvb2wgaGFz
RW5vdWdoQnVmZmVycyhHQ0dMdWludCBudW1SZXF1aXJlZCkgY29uc3Q7CiBwcml2YXRlOgotICAg
IFdlYkdMVHJhbnNmb3JtRmVlZGJhY2soV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOworICAg
IFdlYkdMVHJhbnNmb3JtRmVlZGJhY2soV2ViR0wyUmVuZGVyaW5nQ29udGV4dCYpOwogCiAgICAg
dm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1H
TE9iamVjdCkgb3ZlcnJpZGU7CisgICAgCisgICAgYm9vbCBtX2FjdGl2ZSB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX3BhdXNlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc0V2ZXJCZWVuQm91bmQg
eyBmYWxzZSB9OworICAgIHVuc2lnbmVkIG1fcHJvZ3JhbUxpbmtDb3VudCB7IDAgfTsKKyAgICBW
ZWN0b3I8UmVmUHRyPFdlYkdMQnVmZmVyPj4gbV9ib3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFj
a0J1ZmZlcnM7CisgICAgUmVmUHRyPFdlYkdMUHJvZ3JhbT4gbV9wcm9ncmFtOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmlkbAppbmRleCAyMmI4ODQ3ZWRmODE1OGE5ZjlhYjdh
MjRhNGMwNDM5OWVmYTUzYTA5Li45MzczYzE4ZjhmNzQ3MjNmNDk4MDg4YzJmYmMyZWQwOTZjNmI2
NDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9y
bUZlZWRiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5z
Zm9ybUZlZWRiYWNrLmlkbApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKIFsKLSAgICBDb25kaXRp
b25hbD1XRUJHTAorICAgIENvbmRpdGlvbmFsPVdFQkdMMiwKKyAgICBFbmFibGVkQXRSdW50aW1l
PVdlYkdMMgogXSBpbnRlcmZhY2UgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjayB7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250
ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9H
cmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCA0NmY3NTJjNWY0MTMxOTFlMzRiYTM3YjZj
NDE4ZDk2MzM0NzM3NDA3Li40NzVjNDk5MGQwMzIzMTNkNzMwMjE0NTA4MDkzMDgwNDc3MzYzMjU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFw
aGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApAQCAtMTkyOSw3ICsxOTI5LDEw
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmRyYXdFbGVtZW50c0luc3RhbmNlZChH
Q0dMZW51bSBtb2RlLCBHQ0dMc2l6ZWkgY291CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OnZlcnRleEF0dHJpYkRpdmlzb3IoR0NHTHVpbnQgaW5kZXgsIEdDR0x1aW50IGRpdmlzb3Ip
CiB7Ci0gICAgZ2V0RXh0ZW5zaW9ucygpLnZlcnRleEF0dHJpYkRpdmlzb3IoaW5kZXgsIGRpdmlz
b3IpOworICAgIGlmIChtX2lzRm9yV2ViR0wyKQorICAgICAgICBnbDo6VmVydGV4QXR0cmliRGl2
aXNvcihpbmRleCwgZGl2aXNvcik7CisgICAgZWxzZQorICAgICAgICBnZXRFeHRlbnNpb25zKCku
dmVydGV4QXR0cmliRGl2aXNvcihpbmRleCwgZGl2aXNvcik7CiB9CiAKIEdDR0x1aW50IEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjpnZXRVbmlmb3JtQmxvY2tJbmRleChQbGF0Zm9ybUdMT2JqZWN0
IHByb2dyYW0sIGNvbnN0IFN0cmluZyYgdW5pZm9ybUJsb2NrTmFtZSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvaW5zdGFuY2VkLWFy
cmF5cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
cmVuZGVyaW5nL2luc3RhbmNlZC1hcnJheXMtZXhwZWN0ZWQudHh0CmluZGV4IGExMWRkNzdmMzRh
NWUwMTMzYzc3NjU4YTJmNzAyYTcxYjMxZWM4MjkuLmJlZjY5MDFiZmQ2NTRlNjY3N2E1YzYzNTA1
YTIwMzVmMDMzOTZhZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi9yZW5kZXJpbmcvaW5zdGFuY2VkLWFycmF5cy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9pbnN0YW5jZWQtYXJy
YXlzLWV4cGVjdGVkLnR4dApAQCAtMSw1NyArMSw1IEBACiBUaGlzIHRlc3QgcnVucyB0aGUgV2Vi
R0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJ
TC4KIAogVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uy
L3JlbmRlcmluZy9pbnN0YW5jZWQtYXJyYXlzLmh0bWwKLVsgMTogUEFTUyBdIFdlYkdMIGNvbnRl
eHQgZXhpc3RzCi1bIDI6IFBBU1MgXSBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1IgaXMg
MHg4OEZFCi1bIDM6IFBBU1MgXSBWZXJ0ZXggYXR0cmlidXRlIDAgbXVzdCBoYXMgYSBkZWZhdWx0
IGRpdmlzb3Igb2YgMAotWyA0OiBQQVNTIF0gVmVydGV4IGF0dHJpYnV0ZSAxIG11c3QgaGFzIGEg
ZGVmYXVsdCBkaXZpc29yIG9mIDAKLVsgNTogUEFTUyBdIFZlcnRleCBhdHRyaWJ1dGUgMiBtdXN0
IGhhcyBhIGRlZmF1bHQgZGl2aXNvciBvZiAwCi1bIDY6IFBBU1MgXSBWZXJ0ZXggYXR0cmlidXRl
IDMgbXVzdCBoYXMgYSBkZWZhdWx0IGRpdmlzb3Igb2YgMAotWyA3OiBQQVNTIF0gVmVydGV4IGF0
dHJpYnV0ZSA0IG11c3QgaGFzIGEgZGVmYXVsdCBkaXZpc29yIG9mIDAKLVsgODogUEFTUyBdIFZl
cnRleCBhdHRyaWJ1dGUgNSBtdXN0IGhhcyBhIGRlZmF1bHQgZGl2aXNvciBvZiAwCi1bIDk6IFBB
U1MgXSBWZXJ0ZXggYXR0cmlidXRlIDYgbXVzdCBoYXMgYSBkZWZhdWx0IGRpdmlzb3Igb2YgMAot
WyAxMDogUEFTUyBdIFZlcnRleCBhdHRyaWJ1dGUgNyBtdXN0IGhhcyBhIGRlZmF1bHQgZGl2aXNv
ciBvZiAwCi1bIDExOiBQQVNTIF0gVmVydGV4IGF0dHJpYnV0ZSA4IG11c3QgaGFzIGEgZGVmYXVs
dCBkaXZpc29yIG9mIDAKLVsgMTI6IFBBU1MgXSBWZXJ0ZXggYXR0cmlidXRlIDkgbXVzdCBoYXMg
YSBkZWZhdWx0IGRpdmlzb3Igb2YgMAotWyAxMzogUEFTUyBdIFZlcnRleCBhdHRyaWJ1dGUgMTAg
bXVzdCBoYXMgYSBkZWZhdWx0IGRpdmlzb3Igb2YgMAotWyAxNDogUEFTUyBdIFZlcnRleCBhdHRy
aWJ1dGUgMTEgbXVzdCBoYXMgYSBkZWZhdWx0IGRpdmlzb3Igb2YgMAotWyAxNTogUEFTUyBdIFZl
cnRleCBhdHRyaWJ1dGUgMTIgbXVzdCBoYXMgYSBkZWZhdWx0IGRpdmlzb3Igb2YgMAotWyAxNjog
UEFTUyBdIFZlcnRleCBhdHRyaWJ1dGUgMTMgbXVzdCBoYXMgYSBkZWZhdWx0IGRpdmlzb3Igb2Yg
MAotWyAxNzogUEFTUyBdIFZlcnRleCBhdHRyaWJ1dGUgMTQgbXVzdCBoYXMgYSBkZWZhdWx0IGRp
dmlzb3Igb2YgMAotWyAxODogUEFTUyBdIFZlcnRleCBhdHRyaWJ1dGUgMTUgbXVzdCBoYXMgYSBk
ZWZhdWx0IGRpdmlzb3Igb2YgMAotWyAxOTogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9WQUxVRSA6IHZlcnRleEF0dHJpYkRpdmlzb3IgaW5kZXggc2V0IGdyZWF0
ZXIgdGhhbiBvciBlcXVhbCB0byBNQVhfVkVSVEVYX0FUVFJJQlMgc2hvdWxkIGJlIGFuIGludmFs
aWQgdmFsdWUKLVsgMjA6IEZBSUwgXSBnZXRFcnJvciBleHBlY3RlZDogTk9fRVJST1IuIFdhcyBJ
TlZBTElEX09QRVJBVElPTiA6IHZlcnRleEF0dHJpYkRpdmlzb3IgaW5kZXggc2V0IGxlc3MgdGhh
biBNQVhfVkVSVEVYX0FUVFJJQlMgc2hvdWxkIHN1Y2NlZWQKLVsgMjE6IFBBU1MgXSBTZXQgdmFs
dWUgb2YgVkVSVEVYX0FUVFJJQl9BUlJBWV9ESVZJU09SIG1hdGNoZXMgZXhwZWNhdGlvbgotWyAy
MjogRkFJTCBdIHNob3VsZCBiZSAyNTUsMCwwLDI1NSBhdCAoMCwgMjUpIGV4cGVjdGVkOiAyNTUs
MCwwLDI1NSB3YXMgMCwwLDAsMAotWyAyMzogRkFJTCBdIHNob3VsZCBiZSAwLDI1NSwwLDI1NSBh
dCAoMjUsIDI1KSBleHBlY3RlZDogMCwyNTUsMCwyNTUgd2FzIDAsMCwwLDAKLVsgMjQ6IEZBSUwg
XSBzaG91bGQgYmUgMCwwLDI1NSwyNTUgYXQgKDAsIDApIGV4cGVjdGVkOiAwLDAsMjU1LDI1NSB3
YXMgMCwwLDAsMAotWyAyNTogRkFJTCBdIHNob3VsZCBiZSAyNTUsMjU1LDAsMjU1IGF0ICgyNSwg
MCkgZXhwZWN0ZWQ6IDI1NSwyNTUsMCwyNTUgd2FzIDAsMCwwLDAKLVsgMjY6IEZBSUwgXSBnZXRF
cnJvciBleHBlY3RlZDogSU5WQUxJRF9WQUxVRS4gV2FzIElOVkFMSURfT1BFUkFUSU9OIDogZHJh
d0FycmF5c0luc3RhbmNlZCBjYW5ub3QgaGF2ZSBhIHByaW1jb3VudCBsZXNzIHRoYW4gMAotWyAy
NzogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRSA6IGRy
YXdBcnJheXNJbnN0YW5jZWQgY2Fubm90IGhhdmUgYSBjb3VudCBsZXNzIHRoYW4gMAotWyAyODog
RkFJTCBdIGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURfT1BFUkFUSU9O
IDogSXQncyBhbGxvd2VkIGZvciBhbGwgdmVydGV4IGF0dHJpYnV0ZXMgdG8gaGF2ZSBub24temVy
byBkaXZpc29ycyB3aGVuIGNhbGxpbmcgZHJhd0FycmF5c0luc3RhbmNlZAotWyAyOTogRkFJTCBd
IGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURfT1BFUkFUSU9OIDogZHJh
d0FycmF5c0luc3RhbmNlZCB3aXRoIFBPSU5UUyBzaG91bGQgc3VjY2VlZAotWyAzMDogRkFJTCBd
IGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURfT1BFUkFUSU9OIDogZHJh
d0FycmF5c0luc3RhbmNlZCB3aXRoIExJTkVTIHNob3VsZCBzdWNjZWVkCi1bIDMxOiBGQUlMIF0g
Z2V0RXJyb3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMgSU5WQUxJRF9PUEVSQVRJT04gOiBkcmF3
QXJyYXlzSW5zdGFuY2VkIHdpdGggTElORV9MSVNUIHNob3VsZCByZXR1cm4gc3VjY2VlZAotWyAz
MjogRkFJTCBdIGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURfT1BFUkFU
SU9OIDogZHJhd0FycmF5c0luc3RhbmNlZCB3aXRoIFRSSV9MSVNUIHNob3VsZCBzdWNjZWVkCi1b
IDMzOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0VOVU0gOiBk
cmF3QXJyYXlzSW5zdGFuY2VkIHdpdGggUVVBRF9TVFJJUCBzaG91bGQgcmV0dXJuIElOVkFMSURf
RU5VTQotWyAzNDogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9F
TlVNIDogZHJhd0FycmF5c0luc3RhbmNlZCB3aXRoIFFVQURTIHNob3VsZCByZXR1cm4gSU5WQUxJ
RF9FTlVNCi1bIDM1OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0VOVU0gOiBkcmF3QXJyYXlzSW5zdGFuY2VkIHdpdGggUE9MWUdPTiBzaG91bGQgcmV0dXJuIElO
VkFMSURfRU5VTQotWyAzNjogRkFJTCBdIHNob3VsZCBiZSAyNTUsMCwwLDI1NSBhdCAoMCwgMjUp
IGV4cGVjdGVkOiAyNTUsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAzNzogRkFJTCBdIHNob3VsZCBi
ZSAwLDI1NSwwLDI1NSBhdCAoMjUsIDI1KSBleHBlY3RlZDogMCwyNTUsMCwyNTUgd2FzIDAsMCww
LDAKLVsgMzg6IEZBSUwgXSBzaG91bGQgYmUgMCwwLDI1NSwyNTUgYXQgKDAsIDApIGV4cGVjdGVk
OiAwLDAsMjU1LDI1NSB3YXMgMCwwLDAsMAotWyAzOTogRkFJTCBdIHNob3VsZCBiZSAyNTUsMjU1
LDAsMjU1IGF0ICgyNSwgMCkgZXhwZWN0ZWQ6IDI1NSwyNTUsMCwyNTUgd2FzIDAsMCwwLDAKLVsg
NDA6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUgOiBk
cmF3RWxlbWVudHNJbnN0YW5jZWQgY2Fubm90IGhhdmUgYSBwcmltY291bnQgbGVzcyB0aGFuIDAK
LVsgNDE6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfVkFMVUUg
OiBkcmF3RWxlbWVudHNJbnN0YW5jZWQgY2Fubm90IGhhdmUgYSBjb3VudCBsZXNzIHRoYW4gMAot
WyA0MjogRkFJTCBdIGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURfT1BF
UkFUSU9OIDogSXQncyBhbGxvd2VkIGZvciBhbGwgdmVydGV4IGF0dHJpYnV0ZXMgdG8gaGF2ZSBu
b24temVybyBkaXZpc29ycyB3aGVuIGNhbGxpbmcgZHJhd0VsZW1lbnRzSW5zdGFuY2VkCi1bIDQz
OiBGQUlMIF0gZ2V0RXJyb3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMgSU5WQUxJRF9PUEVSQVRJ
T04gOiBkcmF3RWxlbWVudHNJbnN0YW5jZWQgd2l0aCBVTlNJR05FRF9CWVRFIHNob3VsZCBzdWNj
ZWVkCi1bIDQ0OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IGRyYXdFbGVtZW50c0luc3RhbmNlZCB3aXRoIFBPSU5UUyBzaG91bGQgc3VjY2VlZAotWyA0NTog
UEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBkcmF3RWxlbWVu
dHNJbnN0YW5jZWQgd2l0aCBMSU5FUyBzaG91bGQgc3VjY2VlZAotWyA0NjogUEFTUyBdIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBkcmF3RWxlbWVudHNJbnN0YW5jZWQg
d2l0aCBMSU5FX0xJU1Qgc2hvdWxkIHJldHVybiBzdWNjZWVkCi1bIDQ3OiBQQVNTIF0gZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGRyYXdFbGVtZW50c0luc3RhbmNlZCB3
aXRoIFRSSV9MSVNUIHNob3VsZCBzdWNjZWVkCi1bIDQ4OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0VOVU0gOiBkcmF3RWxlbWVudHNJbnN0YW5jZWQgd2l0aCBR
VUFEX1NUUklQIHNob3VsZCByZXR1cm4gSU5WQUxJRF9FTlVNCi1bIDQ5OiBQQVNTIF0gZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0VOVU0gOiBkcmF3RWxlbWVudHNJbnN0YW5j
ZWQgd2l0aCBRVUFEUyBzaG91bGQgcmV0dXJuIElOVkFMSURfRU5VTQotWyA1MDogUEFTUyBdIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9FTlVNIDogZHJhd0VsZW1lbnRzSW5z
dGFuY2VkIHdpdGggUE9MWUdPTiBzaG91bGQgcmV0dXJuIElOVkFMSURfRU5VTQotWyA1MTogUEFT
UyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiB0aGVyZSBzaG91bGQg
YmUgbm8gZXJyb3JzCi1bIDUyOiBQQVNTIF0gc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLVsg
RkFJTCBdIDE3IGZhaWx1cmVzIHJlcG9ydGVkCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9yZW5kZXJp
bmcvaW5zdGFuY2VkLXJlbmRlcmluZy1idWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9pbnN0YW5jZWQtcmVuZGVyaW5nLWJ1Zy1l
eHBlY3RlZC50eHQKaW5kZXggMzFlNjljNmE1NWM4YzBhNWYzMGUwNzZmM2I4NzcwOTgwNzgzZjA1
ZS4uN2Y2ZWI2ZTY3ODJmMTNlNjY2ODI2YzFkZDAxM2VmMDg2OWM4ZWNjMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9pbnN0YW5jZWQt
cmVuZGVyaW5nLWJ1Zy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3JlbmRlcmluZy9pbnN0YW5jZWQtcmVuZGVyaW5nLWJ1Zy1leHBlY3RlZC50
eHQKQEAgLTEsODcgKzEsNSBAQAogVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVk
IGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCiAKIFRlc3Q6IC4u
Ly4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvaW5z
dGFuY2VkLXJlbmRlcmluZy1idWcuaHRtbAotWyAxOiBQQVNTIF0gV2ViR0wgY29udGV4dCBleGlz
dHMKLVsgMjogUEFTUyBdIFNldCB1cCBwcm9ncmFtIHN1Y2NlZWRlZAotWyAzOiBGQUlMIF0gZ2V0
RXJyb3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMgSU5WQUxJRF9PUEVSQVRJT04gOiBkcmF3QXJy
YXlzSW5zdGFuY2VkIHNob3VsZCBzdWNjZWVkCi1bIDQ6IEZBSUwgXSBpbnN0YW5jZSAwIHNob3Vs
ZCBiZSAxMjcsMCwwLDI1NSBhdCAoMSwgMCkgZXhwZWN0ZWQ6IDEyNywwLDAsMjU1IHdhcyAwLDAs
MCwwCi1bIDU6IEZBSUwgXSBpbnN0YW5jZSAxIHNob3VsZCBiZSAxMjcsMCwwLDI1NSBhdCAoMzgs
IDApIGV4cGVjdGVkOiAxMjcsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA2OiBGQUlMIF0gaW5zdGFu
Y2UgMiBzaG91bGQgYmUgMTI3LDAsMCwyNTUgYXQgKDc2LCAwKSBleHBlY3RlZDogMTI3LDAsMCwy
NTUgd2FzIDAsMCwwLDAKLVsgNzogRkFJTCBdIGluc3RhbmNlIDMgc2hvdWxkIGJlIDEyNywwLDAs
MjU1IGF0ICgxMTMsIDApIGV4cGVjdGVkOiAxMjcsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA4OiBG
QUlMIF0gaW5zdGFuY2UgNCBzaG91bGQgYmUgMjU1LDAsMCwyNTUgYXQgKDE1MSwgMCkgZXhwZWN0
ZWQ6IDI1NSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDk6IEZBSUwgXSBpbnN0YW5jZSA1IHNob3Vs
ZCBiZSAyNTUsMCwwLDI1NSBhdCAoMTg4LCAwKSBleHBlY3RlZDogMjU1LDAsMCwyNTUgd2FzIDAs
MCwwLDAKLVsgMTA6IEZBSUwgXSBpbnN0YW5jZSA2IHNob3VsZCBiZSAyNTUsMCwwLDI1NSBhdCAo
MjI2LCAwKSBleHBlY3RlZDogMjU1LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgMTE6IEZBSUwgXSBp
bnN0YW5jZSA3IHNob3VsZCBiZSAyNTUsMCwwLDI1NSBhdCAoMjYzLCAwKSBleHBlY3RlZDogMjU1
LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgMTI6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogY2xlYW4gdXAgc2hvdWxkIHN1Y2NlZWQKLVsgMTM6IFBBU1MgXSBT
ZXQgdXAgcHJvZ3JhbSBzdWNjZWVkZWQKLVsgMTQ6IEZBSUwgXSBnZXRFcnJvciBleHBlY3RlZDog
Tk9fRVJST1IuIFdhcyBJTlZBTElEX09QRVJBVElPTiA6IGRyYXdBcnJheXNJbnN0YW5jZWQgc2hv
dWxkIHN1Y2NlZWQKLVsgMTU6IEZBSUwgXSBpbnN0YW5jZSAwIHNob3VsZCBiZSAxMDIsMCwwLDI1
NSBhdCAoMSwgMCkgZXhwZWN0ZWQ6IDEwMiwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDE2OiBGQUlM
IF0gaW5zdGFuY2UgMSBzaG91bGQgYmUgMTAyLDAsMCwyNTUgYXQgKDUxLCAwKSBleHBlY3RlZDog
MTAyLDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgMTc6IEZBSUwgXSBpbnN0YW5jZSAyIHNob3VsZCBi
ZSAxMDIsMCwwLDI1NSBhdCAoMTAxLCAwKSBleHBlY3RlZDogMTAyLDAsMCwyNTUgd2FzIDAsMCww
LDAKLVsgMTg6IEZBSUwgXSBpbnN0YW5jZSAzIHNob3VsZCBiZSAxMDIsMCwwLDI1NSBhdCAoMTUx
LCAwKSBleHBlY3RlZDogMTAyLDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgMTk6IEZBSUwgXSBpbnN0
YW5jZSA0IHNob3VsZCBiZSAyMDQsMCwwLDI1NSBhdCAoMjAxLCAwKSBleHBlY3RlZDogMjA0LDAs
MCwyNTUgd2FzIDAsMCwwLDAKLVsgMjA6IEZBSUwgXSBpbnN0YW5jZSA1IHNob3VsZCBiZSAyMDQs
MCwwLDI1NSBhdCAoMjUxLCAwKSBleHBlY3RlZDogMjA0LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsg
MjE6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogY2xlYW4g
dXAgc2hvdWxkIHN1Y2NlZWQKLVsgMjI6IFBBU1MgXSBTZXQgdXAgcHJvZ3JhbSBzdWNjZWVkZWQK
LVsgMjM6IEZBSUwgXSBnZXRFcnJvciBleHBlY3RlZDogTk9fRVJST1IuIFdhcyBJTlZBTElEX09Q
RVJBVElPTiA6IGRyYXdBcnJheXNJbnN0YW5jZWQgc2hvdWxkIHN1Y2NlZWQKLVsgMjQ6IEZBSUwg
XSBpbnN0YW5jZSAwIHNob3VsZCBiZSAxMjcsMCwwLDI1NSBhdCAoMSwgMCkgZXhwZWN0ZWQ6IDEy
NywwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDI1OiBGQUlMIF0gaW5zdGFuY2UgMSBzaG91bGQgYmUg
MTI3LDAsMCwyNTUgYXQgKDUxLCAwKSBleHBlY3RlZDogMTI3LDAsMCwyNTUgd2FzIDAsMCwwLDAK
LVsgMjY6IEZBSUwgXSBpbnN0YW5jZSAyIHNob3VsZCBiZSAxMjcsMCwwLDI1NSBhdCAoMTAxLCAw
KSBleHBlY3RlZDogMTI3LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgMjc6IEZBSUwgXSBpbnN0YW5j
ZSAzIHNob3VsZCBiZSAyNTUsMCwwLDI1NSBhdCAoMTUxLCAwKSBleHBlY3RlZDogMjU1LDAsMCwy
NTUgd2FzIDAsMCwwLDAKLVsgMjg6IEZBSUwgXSBpbnN0YW5jZSA0IHNob3VsZCBiZSAyNTUsMCww
LDI1NSBhdCAoMjAxLCAwKSBleHBlY3RlZDogMjU1LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgMjk6
IEZBSUwgXSBpbnN0YW5jZSA1IHNob3VsZCBiZSAyNTUsMCwwLDI1NSBhdCAoMjUxLCAwKSBleHBl
Y3RlZDogMjU1LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgMzA6IFBBU1MgXSBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogY2xlYW4gdXAgc2hvdWxkIHN1Y2NlZWQKLVsgMzE6
IFBBU1MgXSBTZXQgdXAgcHJvZ3JhbSBzdWNjZWVkZWQKLVsgMzI6IEZBSUwgXSBnZXRFcnJvciBl
eHBlY3RlZDogTk9fRVJST1IuIFdhcyBJTlZBTElEX09QRVJBVElPTiA6IGRyYXdBcnJheXNJbnN0
YW5jZWQgc2hvdWxkIHN1Y2NlZWQKLVsgMzM6IEZBSUwgXSBpbnN0YW5jZSAwIHNob3VsZCBiZSA2
OSwwLDAsMjU1IGF0ICgxLCAwKSBleHBlY3RlZDogNjksMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAz
NDogRkFJTCBdIGluc3RhbmNlIDEgc2hvdWxkIGJlIDY5LDAsMCwyNTUgYXQgKDM4LCAwKSBleHBl
Y3RlZDogNjksMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAzNTogRkFJTCBdIGluc3RhbmNlIDIgc2hv
dWxkIGJlIDY5LDAsMCwyNTUgYXQgKDc2LCAwKSBleHBlY3RlZDogNjksMCwwLDI1NSB3YXMgMCww
LDAsMAotWyAzNjogRkFJTCBdIGluc3RhbmNlIDMgc2hvdWxkIGJlIDEzOSwwLDAsMjU1IGF0ICgx
MTMsIDApIGV4cGVjdGVkOiAxMzksMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAzNzogRkFJTCBdIGlu
c3RhbmNlIDQgc2hvdWxkIGJlIDEzOSwwLDAsMjU1IGF0ICgxNTEsIDApIGV4cGVjdGVkOiAxMzks
MCwwLDI1NSB3YXMgMCwwLDAsMAotWyAzODogRkFJTCBdIGluc3RhbmNlIDUgc2hvdWxkIGJlIDEz
OSwwLDAsMjU1IGF0ICgxODgsIDApIGV4cGVjdGVkOiAxMzksMCwwLDI1NSB3YXMgMCwwLDAsMAot
WyAzOTogRkFJTCBdIGluc3RhbmNlIDYgc2hvdWxkIGJlIDIwOCwwLDAsMjU1IGF0ICgyMjYsIDAp
IGV4cGVjdGVkOiAyMDgsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA0MDogRkFJTCBdIGluc3RhbmNl
IDcgc2hvdWxkIGJlIDIwOCwwLDAsMjU1IGF0ICgyNjMsIDApIGV4cGVjdGVkOiAyMDgsMCwwLDI1
NSB3YXMgMCwwLDAsMAotWyA0MTogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiBjbGVhbiB1cCBzaG91bGQgc3VjY2VlZAotWyA0MjogUEFTUyBdIFNldCB1cCBw
cm9ncmFtIHN1Y2NlZWRlZAotWyA0MzogRkFJTCBdIGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJP
Ui4gV2FzIElOVkFMSURfT1BFUkFUSU9OIDogZHJhd0VsZW1lbnRzSW5zdGFuY2VkIHNob3VsZCBz
dWNjZWVkCi1bIDQ0OiBGQUlMIF0gaW5zdGFuY2UgMCBzaG91bGQgYmUgMTI3LDAsMCwyNTUgYXQg
KDEsIDApIGV4cGVjdGVkOiAxMjcsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA0NTogRkFJTCBdIGlu
c3RhbmNlIDEgc2hvdWxkIGJlIDEyNywwLDAsMjU1IGF0ICgzOCwgMCkgZXhwZWN0ZWQ6IDEyNyww
LDAsMjU1IHdhcyAwLDAsMCwwCi1bIDQ2OiBGQUlMIF0gaW5zdGFuY2UgMiBzaG91bGQgYmUgMTI3
LDAsMCwyNTUgYXQgKDc2LCAwKSBleHBlY3RlZDogMTI3LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsg
NDc6IEZBSUwgXSBpbnN0YW5jZSAzIHNob3VsZCBiZSAxMjcsMCwwLDI1NSBhdCAoMTEzLCAwKSBl
eHBlY3RlZDogMTI3LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgNDg6IEZBSUwgXSBpbnN0YW5jZSA0
IHNob3VsZCBiZSAyNTUsMCwwLDI1NSBhdCAoMTUxLCAwKSBleHBlY3RlZDogMjU1LDAsMCwyNTUg
d2FzIDAsMCwwLDAKLVsgNDk6IEZBSUwgXSBpbnN0YW5jZSA1IHNob3VsZCBiZSAyNTUsMCwwLDI1
NSBhdCAoMTg4LCAwKSBleHBlY3RlZDogMjU1LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgNTA6IEZB
SUwgXSBpbnN0YW5jZSA2IHNob3VsZCBiZSAyNTUsMCwwLDI1NSBhdCAoMjI2LCAwKSBleHBlY3Rl
ZDogMjU1LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgNTE6IEZBSUwgXSBpbnN0YW5jZSA3IHNob3Vs
ZCBiZSAyNTUsMCwwLDI1NSBhdCAoMjYzLCAwKSBleHBlY3RlZDogMjU1LDAsMCwyNTUgd2FzIDAs
MCwwLDAKLVsgNTI6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogY2xlYW4gdXAgc2hvdWxkIHN1Y2NlZWQKLVsgNTM6IFBBU1MgXSBTZXQgdXAgcHJvZ3JhbSBz
dWNjZWVkZWQKLVsgNTQ6IEZBSUwgXSBnZXRFcnJvciBleHBlY3RlZDogTk9fRVJST1IuIFdhcyBJ
TlZBTElEX09QRVJBVElPTiA6IGRyYXdFbGVtZW50c0luc3RhbmNlZCBzaG91bGQgc3VjY2VlZAot
WyA1NTogRkFJTCBdIGluc3RhbmNlIDAgc2hvdWxkIGJlIDEwMiwwLDAsMjU1IGF0ICgxLCAwKSBl
eHBlY3RlZDogMTAyLDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgNTY6IEZBSUwgXSBpbnN0YW5jZSAx
IHNob3VsZCBiZSAxMDIsMCwwLDI1NSBhdCAoNTEsIDApIGV4cGVjdGVkOiAxMDIsMCwwLDI1NSB3
YXMgMCwwLDAsMAotWyA1NzogRkFJTCBdIGluc3RhbmNlIDIgc2hvdWxkIGJlIDEwMiwwLDAsMjU1
IGF0ICgxMDEsIDApIGV4cGVjdGVkOiAxMDIsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA1ODogRkFJ
TCBdIGluc3RhbmNlIDMgc2hvdWxkIGJlIDEwMiwwLDAsMjU1IGF0ICgxNTEsIDApIGV4cGVjdGVk
OiAxMDIsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA1OTogRkFJTCBdIGluc3RhbmNlIDQgc2hvdWxk
IGJlIDIwNCwwLDAsMjU1IGF0ICgyMDEsIDApIGV4cGVjdGVkOiAyMDQsMCwwLDI1NSB3YXMgMCww
LDAsMAotWyA2MDogRkFJTCBdIGluc3RhbmNlIDUgc2hvdWxkIGJlIDIwNCwwLDAsMjU1IGF0ICgy
NTEsIDApIGV4cGVjdGVkOiAyMDQsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA2MTogUEFTUyBdIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBjbGVhbiB1cCBzaG91bGQgc3Vj
Y2VlZAotWyA2MjogUEFTUyBdIFNldCB1cCBwcm9ncmFtIHN1Y2NlZWRlZAotWyA2MzogRkFJTCBd
IGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURfT1BFUkFUSU9OIDogZHJh
d0VsZW1lbnRzSW5zdGFuY2VkIHNob3VsZCBzdWNjZWVkCi1bIDY0OiBGQUlMIF0gaW5zdGFuY2Ug
MCBzaG91bGQgYmUgMTI3LDAsMCwyNTUgYXQgKDEsIDApIGV4cGVjdGVkOiAxMjcsMCwwLDI1NSB3
YXMgMCwwLDAsMAotWyA2NTogRkFJTCBdIGluc3RhbmNlIDEgc2hvdWxkIGJlIDEyNywwLDAsMjU1
IGF0ICg1MSwgMCkgZXhwZWN0ZWQ6IDEyNywwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDY2OiBGQUlM
IF0gaW5zdGFuY2UgMiBzaG91bGQgYmUgMTI3LDAsMCwyNTUgYXQgKDEwMSwgMCkgZXhwZWN0ZWQ6
IDEyNywwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDY3OiBGQUlMIF0gaW5zdGFuY2UgMyBzaG91bGQg
YmUgMjU1LDAsMCwyNTUgYXQgKDE1MSwgMCkgZXhwZWN0ZWQ6IDI1NSwwLDAsMjU1IHdhcyAwLDAs
MCwwCi1bIDY4OiBGQUlMIF0gaW5zdGFuY2UgNCBzaG91bGQgYmUgMjU1LDAsMCwyNTUgYXQgKDIw
MSwgMCkgZXhwZWN0ZWQ6IDI1NSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDY5OiBGQUlMIF0gaW5z
dGFuY2UgNSBzaG91bGQgYmUgMjU1LDAsMCwyNTUgYXQgKDI1MSwgMCkgZXhwZWN0ZWQ6IDI1NSww
LDAsMjU1IHdhcyAwLDAsMCwwCi1bIDcwOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IGNsZWFuIHVwIHNob3VsZCBzdWNjZWVkCi1bIDcxOiBQQVNTIF0gU2V0
IHVwIHByb2dyYW0gc3VjY2VlZGVkCi1bIDcyOiBGQUlMIF0gZ2V0RXJyb3IgZXhwZWN0ZWQ6IE5P
X0VSUk9SLiBXYXMgSU5WQUxJRF9PUEVSQVRJT04gOiBkcmF3RWxlbWVudHNJbnN0YW5jZWQgc2hv
dWxkIHN1Y2NlZWQKLVsgNzM6IEZBSUwgXSBpbnN0YW5jZSAwIHNob3VsZCBiZSA2OSwwLDAsMjU1
IGF0ICgxLCAwKSBleHBlY3RlZDogNjksMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA3NDogRkFJTCBd
IGluc3RhbmNlIDEgc2hvdWxkIGJlIDY5LDAsMCwyNTUgYXQgKDM4LCAwKSBleHBlY3RlZDogNjks
MCwwLDI1NSB3YXMgMCwwLDAsMAotWyA3NTogRkFJTCBdIGluc3RhbmNlIDIgc2hvdWxkIGJlIDY5
LDAsMCwyNTUgYXQgKDc2LCAwKSBleHBlY3RlZDogNjksMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA3
NjogRkFJTCBdIGluc3RhbmNlIDMgc2hvdWxkIGJlIDEzOSwwLDAsMjU1IGF0ICgxMTMsIDApIGV4
cGVjdGVkOiAxMzksMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA3NzogRkFJTCBdIGluc3RhbmNlIDQg
c2hvdWxkIGJlIDEzOSwwLDAsMjU1IGF0ICgxNTEsIDApIGV4cGVjdGVkOiAxMzksMCwwLDI1NSB3
YXMgMCwwLDAsMAotWyA3ODogRkFJTCBdIGluc3RhbmNlIDUgc2hvdWxkIGJlIDEzOSwwLDAsMjU1
IGF0ICgxODgsIDApIGV4cGVjdGVkOiAxMzksMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA3OTogRkFJ
TCBdIGluc3RhbmNlIDYgc2hvdWxkIGJlIDIwOCwwLDAsMjU1IGF0ICgyMjYsIDApIGV4cGVjdGVk
OiAyMDgsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA4MDogRkFJTCBdIGluc3RhbmNlIDcgc2hvdWxk
IGJlIDIwOCwwLDAsMjU1IGF0ICgyNjMsIDApIGV4cGVjdGVkOiAyMDgsMCwwLDI1NSB3YXMgMCww
LDAsMAotWyA4MTogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiBjbGVhbiB1cCBzaG91bGQgc3VjY2VlZAotWyA4MjogUEFTUyBdIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi1bIEZBSUwgXSA2NCBmYWlsdXJlcyByZXBvcnRlZAorWyBQQVNTIF0gQWxsIHRl
c3RzIHBhc3NlZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3Jt
YW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy1leHBl
Y3RlZC50eHQKaW5kZXggNDA4OTU1NDk0OWViZDM1NjZhZjU2MDM0Mzc3ZDcyZTkzNDZhYzI3ZC4u
MTgxZGI3YjkyNGVhMjRjNGNmYmRhOTJkMGJlZmExYTg0OWExODE1YyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQtY2Fs
bHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4dApAQCAtMjc5LDEzICsyNzks
MTMgQEAgVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2Uy
L3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMuaHQKIFsgMjc1OiBGQUlMIF0gZ2wuZ2V0VmVydGV4
QXR0cmliKDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSkgc2hvdWxkIGJlIDUxMjQuIFdh
cyA1MTI2LgogWyAyNzY6IEZBSUwgXSBnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FU
VFJJQl9BUlJBWV9JTlRFR0VSKSBzaG91bGQgYmUgdHJ1ZSAob2YgdHlwZSBib29sZWFuKS4gV2Fz
IG51bGwgKG9mIHR5cGUgb2JqZWN0KS4KIFsgMjc3OiBGQUlMIF0gZ2V0RXJyb3IgZXhwZWN0ZWQ6
IE5PX0VSUk9SLiBXYXMgSU5WQUxJRF9FTlVNIDoKLVsgMjc4OiBGQUlMIF0gZ2V0VmVydGV4QXR0
cmliIGRpZCBub3QgZ2VuZXJhdGUgSU5WQUxJRF9FTlVNIGZvciBpbnZhbGlkIHBhcmFtZXRlciBl
bnVtOiBOT19FUlJPUgotWyAyNzk6IEZBSUwgXSBnZXRFcnJvciBleHBlY3RlZDogSU5WQUxJRF9W
QUxVRS4gV2FzIElOVkFMSURfRU5VTSA6IGFmdGVyIGV2YWx1YXRpbmc6IGdsLmdldFZlcnRleEF0
dHJpYigxNiwgZ2wuQ1VSUkVOVF9WRVJURVhfQVRUUklCKQorWyAyNzg6IFBBU1MgXSBnZXRWZXJ0
ZXhBdHRyaWIgY29ycmVjdGx5IGhhbmRsZWQgaW52YWxpZCBwYXJhbWV0ZXIgZW51bXMKK1sgMjc5
OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFIDogYWZ0
ZXIgZXZhbHVhdGluZzogZ2wuZ2V0VmVydGV4QXR0cmliKDE2LCBnbC5DVVJSRU5UX1ZFUlRFWF9B
VFRSSUIpCiBbIDI4MDogUEFTUyBdIGdsLmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRl
cihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLkZSQU1FQlVGRkVSX0FU
VEFDSE1FTlRfT0JKRUNUX1RZUEUpIGlzIGdsLk5PTkUKLVsgMjgxOiBGQUlMIF0gZ2V0RXJyb3Ig
ZXhwZWN0ZWQ6IElOVkFMSURfT1BFUkFUSU9OLiBXYXMgSU5WQUxJRF9WQUxVRSA6CitbIDI4MTog
UEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOgog
WyAyODI6IFBBU1MgXSBnbC5nZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoZ2wuRlJB
TUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFDSE1FTlQsIGdsLkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRf
T0JKRUNUX1RZUEUpIGlzIGdsLk5PTkUKIFsgMjgzOiBQQVNTIF0gZ2wuZ2V0VmVydGV4QXR0cmli
KDEsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcpIGlzIG51bGwKLVsgMjg0
OiBGQUlMIF0gZ2V0RXJyb3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMgSU5WQUxJRF9PUEVSQVRJ
T04gOgorWyAyODQ6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDoKIFsgMjg1OiBQQVNTIF0gZ2wuZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIoZ2wuUkVOREVS
QlVGRkVSLCBnbC5SMzJJLCBnbC5TQU1QTEVTKSBpcyBub24tbnVsbC4KIFsgMjg2OiBQQVNTIF0g
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6CiBbIDI4NzogUEFTUyBdIGdl
dEludGVybmFsZm9ybWF0UGFyYW1ldGVyIGNvcnJlY3RseSBoYW5kbGVkIGludmFsaWQgdGFyZ2V0
IGVudW1zCkBAIC0zMTEsNSArMzExLDUgQEAgVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMuaHQKIFsgMzA3
OiBQQVNTIF0gZ2V0U2FtcGxlclBhcmFtZXRlciBjb3JyZWN0bHkgaGFuZGxlZCBpbnZhbGlkIHBu
YW1lIGVudW1zCiBbIDMwODogRkFJTCBdIGdsLmdldFN5bmNQYXJhbWV0ZXIoc3luYywgZ2wuT0JK
RUNUX1RZUEUpIHNob3VsZCBiZSAzNzE0Mi4gVGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJn
dW1lbnQgMSAoJ3N5bmMnKSB0byBXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmdldFN5bmNQYXJhbWV0
ZXIgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBXZWJHTFN5bmMKIFsgMzA5OiBGQUlMIF0gc3VjY2Vz
c2Z1bGx5UGFyc2VkIHNob3VsZCBiZSB0cnVlIChvZiB0eXBlIGJvb2xlYW4pLiBXYXMgdW5kZWZp
bmVkIChvZiB0eXBlIHVuZGVmaW5lZCkuCi1bIEZBSUwgXSA1OCBmYWlsdXJlcyByZXBvcnRlZAor
WyBGQUlMIF0gNTQgZmFpbHVyZXMgcmVwb3J0ZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RyYW5zZm9ybV9mZWVkYmFjay90cmFuc2Zvcm1fZmVl
ZGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L3RyYW5zZm9ybV9mZWVkYmFjay90cmFuc2Zvcm1fZmVlZGJhY2stZXhwZWN0ZWQudHh0CmluZGV4
IDNiZTU4NDgxMDk1ZjI2YWFlODUyYWFhMTQwNGJkMzYxNTNmMmQ4YTUuLmJlZTgyNTg4MmUxNDA2
ZmU4ZTQyYjU5ZTViNzk0YzBlMjU2ZWU0ZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90cmFuc2Zvcm1fZmVlZGJhY2svdHJhbnNmb3JtX2ZlZWRiYWNr
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
dHJhbnNmb3JtX2ZlZWRiYWNrL3RyYW5zZm9ybV9mZWVkYmFjay1leHBlY3RlZC50eHQKQEAgLTEs
OTYgKzEsNSBAQAogVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCiAKIFRlc3Q6IC4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi90cmFuc2Zvcm1fZmVlZGJhY2svdHJh
bnNmb3JtX2ZlZWRiYWNrLmh0bWwKLVsgMTogUEFTUyBdIFdlYkdMIGNvbnRleHQgZXhpc3RzCi1b
IDI6IFBBU1MgXSBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQklORElORyBpcyAweDhFMjUKLVsgMzog
UEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBUUkFOU0ZPUk1f
RkVFREJBQ0tfQklORElORyBxdWVyeSBzaG91bGQgc3VjY2VlZAotWyA0OiBQQVNTIF0gZ2wuZ2V0
UGFyYW1ldGVyKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CSU5ESU5HKSBpcyBudWxsCi1bIDU6IFBB
U1MgXSBnbC5nZXRQYXJhbWV0ZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJTkcpIGlzIG51
bGwKLVsgNjogUEFTUyBdIGdsLmdldFBhcmFtZXRlcihnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQklO
RElORykgaXMgdGYKLVsgNzogUEFTUyBdIGdsLmdldFBhcmFtZXRlcihnbC5UUkFOU0ZPUk1fRkVF
REJBQ0tfQklORElORykgaXMgdGYxCi1bIDg6IFBBU1MgXSBnbC5nZXRQYXJhbWV0ZXIoZ2wuVFJB
TlNGT1JNX0ZFRURCQUNLX0JJTkRJTkcpIGlzIG51bGwKLVsgOTogUEFTUyBdIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBiaW5kaW5nIGEgZGVsZXRlZCBU
cmFuc2Zvcm0gRmVlZGJhY2sgb2JqZWN0Ci1bIDEwOiBQQVNTIF0gZ2wuZ2V0UGFyYW1ldGVyKGds
LlRSQU5TRk9STV9GRUVEQkFDS19CSU5ESU5HKSBpcyBudWxsCi1bIDExOiBQQVNTIF0gZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IHRoZXJlIHNob3VsZCBiZSBubyBlcnJv
cnMKLVsgMTI6IEZBSUwgXSBnbC5nZXRJbmRleGVkUGFyYW1ldGVyKGdsLlRSQU5TRk9STV9GRUVE
QkFDS19CVUZGRVJfQklORElORywgMCkgc2hvdWxkIGJlIG51bGwuIFdhcyBbb2JqZWN0IFdlYkdM
QnVmZmVyXS4KLVsgMTM6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogYmluZGluZyBidWZmZXIgdG8gQVJSQVlfQlVGRkVSCi1bIDE0OiBQQVNTIF0gZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGNyZWF0ZVRyYW5zZm9ybUZlZWRiYWNr
IHNob3VsZCBub3Qgc2V0IGFuIGVycm9yCi1bIDE1OiBQQVNTIF0gdGYgaXMgbm9uLW51bGwuCi1b
IDE2OiBQQVNTIF0gZ2wuaXNUcmFuc2Zvcm1GZWVkYmFjayh0ZikgaXMgZmFsc2UKLVsgMTc6IFBB
U1MgXSBnbC5pc1RyYW5zZm9ybUZlZWRiYWNrKHRmKSBpcyB0cnVlCi1bIDE4OiBQQVNTIF0gZ2wu
aXNUcmFuc2Zvcm1GZWVkYmFjayh0ZikgaXMgdHJ1ZQotWyAxOTogUEFTUyBdIGdsLmlzVHJhbnNm
b3JtRmVlZGJhY2sodGYpIGlzIGZhbHNlCi1bIDIwOiBQQVNTIF0gZ2wuaXNUcmFuc2Zvcm1GZWVk
YmFjayhudWxsKSBpcyBmYWxzZQotWyAyMTogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiBsaW5raW5nIHRyYW5zZm9ybSBmZWVkYmFjayBzaGFkZXIgc2hvdWxk
IG5vdCBzZXQgYW4gZXJyb3IKLVsgMjI6IFBBU1MgXSBwcm9ncmFtIGlzIG5vbi1udWxsLgotWyAy
MzogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBhZnRlciBl
dmFsdWF0aW5nOiBnbC5nZXRCdWZmZXJTdWJEYXRhKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZG
RVIsIDAsIHJldEFycmF5LCAwLCByZXRBcnJheS5sZW5ndGgpCi1bIDI0OiBQQVNTIF0gZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGFmdGVyIGV2YWx1YXRpbmc6IGdsLmdl
dEJ1ZmZlclN1YkRhdGEoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgMCwgcmV0QXJyYXks
IDAsIHJldEFycmF5Lmxlbmd0aCkKLVsgMjU6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogYWZ0ZXIgZXZhbHVhdGluZzogZ2wuZ2V0QnVmZmVy
U3ViRGF0YShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSLCAwLCByZXRBcnJheSwgMCwgcmV0
QXJyYXkubGVuZ3RoKQotWyAyNjogUEFTUyBdIGJ1ZmZlciBzaG91bGQgbWF0Y2ggZXhwZWN0ZWQg
dmFsdWVzCi1bIDI3OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IGxpbmtpbmcgdHJhbnNmb3JtIGZlZWRiYWNrIHNoYWRlciBzaG91bGQgbm90IHNldCBhbiBl
cnJvcgotWyAyODogUEFTUyBdIHByb2dyYW0gaXMgbm9uLW51bGwuCi1bIDI5OiBQQVNTIF0gYnVm
ZmVyIHNob3VsZCBtYXRjaCBleHBlY3RlZCB2YWx1ZXMKLVsgMzA6IFBBU1MgXSBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogbGlua2luZyB0cmFuc2Zvcm0gZmVlZGJhY2sg
c2hhZGVyIHNob3VsZCBub3Qgc2V0IGFuIGVycm9yCi1bIDMxOiBQQVNTIF0gcHJvZ3JhbSBpcyBu
b24tbnVsbC4KLVsgMzI6IFBBU1MgXSBidWZmZXIgc2hvdWxkIG1hdGNoIGV4cGVjdGVkIHZhbHVl
cwotWyAzMzogUEFTUyBdIGJ1ZmZlciBzaG91bGQgbWF0Y2ggZXhwZWN0ZWQgdmFsdWVzCi1bIDM0
OiBQQVNTIF0gVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiBxdWVyeSdzIHJl
c3VsdCBkaWRuJ3QgYmVjb21lIGF2YWlsYWJsZSB0b28gZWFybHkKLVsgMzU6IFBBU1MgXSBUUkFO
U0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOIHF1ZXJ5IHJldHVybmVkIGEgY29ycmVj
dCByZXN1bHQgKDMpCi1bIDM2OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IGxpbmtpbmcgdHJhbnNmb3JtIGZlZWRiYWNrIHNoYWRlciBzaG91bGQgbm90IHNl
dCBhbiBlcnJvcgotWyAzNzogUEFTUyBdIHByb2dyYW0gaXMgbm9uLW51bGwuCi1bIDM4OiBQQVNT
IF0gZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tf
VkFSWUlOR1MpIGlzIDIKLVsgMzk6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHZhbGlkIGdldFRyYW5zZm9ybUZl
ZWRiYWNrVmFyeWluZy4KLVsgNDA6IFBBU1MgXSBhY3RpdmVJbmZvIGlzIG5vbi1udWxsLgotWyA0
MTogUEFTUyBdIGFjdGl2ZUluZm8ubmFtZSBpcyAnb3V0X2FkZCcKLVsgNDI6IFBBU1MgXSBhY3Rp
dmVJbmZvLnR5cGUgaXMgZ2wuRkxPQVRfVkVDNAotWyA0MzogUEFTUyBdIGFjdGl2ZUluZm8uc2l6
ZSBpcyAxCi1bIDQ0OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IFNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSB2YWxpZCBnZXRUcmFuc2Zvcm1GZWVkYmFja1Zh
cnlpbmcuCi1bIDQ1OiBQQVNTIF0gYWN0aXZlSW5mbyBpcyBub24tbnVsbC4KLVsgNDY6IFBBU1Mg
XSBhY3RpdmVJbmZvLm5hbWUgaXMgJ291dF9tdWwnCi1bIDQ3OiBQQVNTIF0gYWN0aXZlSW5mby50
eXBlIGlzIGdsLkZMT0FUX1ZFQzQKLVsgNDg6IFBBU1MgXSBhY3RpdmVJbmZvLnNpemUgaXMgMQot
WyA0OTogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRSA6
IFNob3VsZCBiZSBJTlZBTElEX1ZBTFVFIHdoZW4gY2FsbGluZyBnZXRUcmFuc2Zvcm1GZWVkYmFj
a1Zhcnlpbmcgd2l0aCBhbiBpbnZhbGlkIGluZGV4LgotWyA1MDogUEFTUyBdIGFjdGl2ZUluZm8g
aXMgbnVsbAotWyA1MTogUEFTUyBdIGdsLmdldFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wu
VFJBTlNGT1JNX0ZFRURCQUNLX1ZBUllJTkdTKSBpcyAyCi1bIDUyOiBQQVNTIF0gZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IFNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSB2
YWxpZCBnZXRUcmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmcuCi1bIDUzOiBQQVNTIF0gYWN0aXZlSW5m
byBpcyBub24tbnVsbC4KLVsgNTQ6IFBBU1MgXSBhY3RpdmVJbmZvLm5hbWUgaXMgJ291dF9hZGQn
Ci1bIDU1OiBQQVNTIF0gYWN0aXZlSW5mby50eXBlIGlzIGdsLkZMT0FUX1ZFQzQKLVsgNTY6IFBB
U1MgXSBhY3RpdmVJbmZvLnNpemUgaXMgMQotWyA1NzogUEFTUyBdIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiBTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gdmFsaWQgZ2V0
VHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5nLgotWyA1ODogUEFTUyBdIGFjdGl2ZUluZm8gaXMgbm9u
LW51bGwuCi1bIDU5OiBQQVNTIF0gYWN0aXZlSW5mby5uYW1lIGlzICdvdXRfbXVsJwotWyA2MDog
UEFTUyBdIGFjdGl2ZUluZm8udHlwZSBpcyBnbC5GTE9BVF9WRUM0Ci1bIDYxOiBQQVNTIF0gYWN0
aXZlSW5mby5zaXplIGlzIDEKLVsgNjI6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfVkFMVUUgOiBTaG91bGQgYmUgSU5WQUxJRF9WQUxVRSB3aGVuIGNhbGxpbmcg
Z2V0VHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5nIHdpdGggYW4gaW52YWxpZCBpbmRleC4KLVsgNjM6
IFBBU1MgXSBhY3RpdmVJbmZvIGlzIG51bGwKLVsgNjQ6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogbGlua2luZyB0cmFuc2Zvcm0gZmVlZGJhY2sgc2hhZGVy
IHNob3VsZCBub3Qgc2V0IGFuIGVycm9yCi1bIDY1OiBQQVNTIF0gZ2wuZ2V0UHJvZ3JhbVBhcmFt
ZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUykgaXMgdHJ1ZQotWyA2NjogUEFTUyBdIGdsLmdl
dFByb2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX1ZBUllJTkdT
KSBpcyAxCi1bIDY3OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IFNob3VsZCBiZSBubyBlcnJvcnMgZnJvbSB2YWxpZCBnZXRUcmFuc2Zvcm1GZWVkYmFja1Zh
cnlpbmcuCi1bIDY4OiBQQVNTIF0gYWN0aXZlSW5mbyBpcyBub24tbnVsbC4KLVsgNjk6IFBBU1Mg
XSBhY3RpdmVJbmZvLm5hbWUgaXMgJ291dF9tdWwnCi1bIDcwOiBQQVNTIF0gYWN0aXZlSW5mby50
eXBlIGlzIGdsLkZMT0FUX1ZFQzQKLVsgNzE6IFBBU1MgXSBhY3RpdmVJbmZvLnNpemUgaXMgMQot
WyA3MjogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRSA6
IFNob3VsZCBiZSBJTlZBTElEX1ZBTFVFIHdoZW4gY2FsbGluZyBnZXRUcmFuc2Zvcm1GZWVkYmFj
a1Zhcnlpbmcgd2l0aCBhbiBpbnZhbGlkIGluZGV4LgotWyA3MzogUEFTUyBdIGFjdGl2ZUluZm8g
aXMgbnVsbAotWyA3NDogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJ
RF9WQUxVRSA6IFNob3VsZCBiZSBJTlZBTElEX1ZBTFVFIHdoZW4gY2FsbGluZyBnZXRUcmFuc2Zv
cm1GZWVkYmFja1Zhcnlpbmcgd2l0aCBhbiBpbnZhbGlkIGluZGV4LgotWyA3NTogUEFTUyBdIGFj
dGl2ZUluZm8gaXMgbnVsbAotWyA3NjogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiBsaW5raW5nIHRyYW5zZm9ybSBmZWVkYmFjayBzaGFkZXIgc2hvdWxkIG5v
dCBzZXQgYW4gZXJyb3IKLVsgNzc6IFBBU1MgXSBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dy
YW0sIGdsLkxJTktfU1RBVFVTKSBpcyB0cnVlCi1bIDc4OiBQQVNTIF0gZ2wuZ2V0UHJvZ3JhbVBh
cmFtZXRlcihwcm9ncmFtLCBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1MpIGlzIDIKLVsg
Nzk6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogU2hvdWxk
IGJlIG5vIGVycm9ycyBmcm9tIHZhbGlkIGdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZy4KLVsg
ODA6IFBBU1MgXSBhY3RpdmVJbmZvIGlzIG5vbi1udWxsLgotWyA4MTogUEFTUyBdIGFjdGl2ZUlu
Zm8ubmFtZSBpcyAnb3V0X2FkZCcKLVsgODI6IFBBU1MgXSBhY3RpdmVJbmZvLnR5cGUgaXMgZ2wu
RkxPQVRfVkVDNAotWyA4MzogUEFTUyBdIGFjdGl2ZUluZm8uc2l6ZSBpcyAxCi1bIDg0OiBQQVNT
IF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IFNob3VsZCBiZSBubyBl
cnJvcnMgZnJvbSB2YWxpZCBnZXRUcmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmcuCi1bIDg1OiBQQVNT
IF0gYWN0aXZlSW5mbyBpcyBub24tbnVsbC4KLVsgODY6IFBBU1MgXSBhY3RpdmVJbmZvLm5hbWUg
aXMgJ291dF9tdWwnCi1bIDg3OiBQQVNTIF0gYWN0aXZlSW5mby50eXBlIGlzIGdsLkZMT0FUX1ZF
QzQKLVsgODg6IFBBU1MgXSBhY3RpdmVJbmZvLnNpemUgaXMgMQotWyA4OTogUEFTUyBdIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRSA6IFNob3VsZCBiZSBJTlZBTElE
X1ZBTFVFIHdoZW4gY2FsbGluZyBnZXRUcmFuc2Zvcm1GZWVkYmFja1Zhcnlpbmcgd2l0aCBhbiBp
bnZhbGlkIGluZGV4LgotWyA5MDogUEFTUyBdIGFjdGl2ZUluZm8gaXMgbnVsbAotWyA5MTogUEFT
UyBdIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi1bIEZBSUwgXSAxIGZhaWx1cmVzIHJlcG9y
dGVkCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403622</attachid>
            <date>2020-07-06 14:39:41 -0700</date>
            <delta_ts>2020-07-06 17:01:57 -0700</delta_ts>
            <desc>more review feedback</desc>
            <filename>bug-213906-20200706143941.patch</filename>
            <type>text/plain</type>
            <size>50156</size>
            <attacher name="James Darpinian">jdarpinian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzM1MjE0MzJmZTgzMjM1
YmU5MWYwNzIwNjkwOWQ0MDAwYWU5ZTY4ZC4uOWMxMWJjNDJjMzYyOWJiZjAwYTc2ZDhiMGM3OWVi
MjllNjdlZWNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA3LTAyICBKYW1l
cyBEYXJwaW5pYW4gIDxqZGFycGluaWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBGaXggdHJh
bnNmb3JtIGZlZWRiYWNrIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTM5MDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGaXggdHJhbnNmb3JtIGZlZWRiYWNrIGNvbmZvcm1hbmNlIHRlc3RzIGJ5
IGltcGxlbWVudGluZyBtaXNzaW5nIGZ1bmN0aW9uYWxpdHkgc3VjaCBhczoKKyAgICAgICAgIC0g
VHJhbnNmb3JtIGZlZWRiYWNrIG9iamVjdCBzdGF0ZSB0cmFja2luZworICAgICAgICAgLSBWYWxp
ZGF0aW9uIGZvciBhbGwgR0wgZXJyb3JzIHRoYXQgY2FuIGFmZmVjdCBzdGF0ZSB0cmFja2luZyBi
ZWZvcmUgY2FsbGluZyBBTkdMRQorICAgICAgICAgLSBEZWZhdWx0IHRyYW5zZm9ybSBmZWVkYmFj
ayBvYmplY3QKKyAgICAgICAgIC0gUGF1c2UvcmVzdW1lCisgICAgICAgICAtIEZpeCB2ZXJ0ZXhB
dHRyaWJEaXZpc29yIGluIFdlYkdMIDIgKHVucmVsYXRlZCB0byB0cmFuc2Zvcm0gZmVlZGJhY2sp
CisKKyAgICAgICAgQWZ0ZXIgdGhpcywgYWxsIHJlbGF0ZWQgdGVzdHMgcGFzcyBleGNlcHQgZm9y
IGEgZmV3IHRoYXQgYWxzbyBmYWlsIGluIENocm9tZSwgYW5kIG9uZSB0aGF0IHVzZXMKKyAgICAg
ICAgUElYRUxfUEFDS19CVUZGRVIgd2hpY2ggaXMgbm90IHlldCBzdXBwb3J0ZWQuCisKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6On5XZWJHTDJSZW5kZXJpbmdDb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVOZXdD
b250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0
ZVRyYW5zZm9ybUZlZWRiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmJpbmRUcmFuc2Zvcm1GZWVkYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0
ZVRyYW5zZm9ybUZlZWRiYWNrUHJpbWl0aXZlTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpiZWdpblRyYW5zZm9ybUZlZWRiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmVuZFRyYW5zZm9ybUZlZWRiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnRyYW5zZm9ybUZlZWRiYWNr
VmFyeWluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cGF1
c2VUcmFuc2Zvcm1GZWVkYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpyZXN1bWVUcmFuc2Zvcm1GZWVkYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpzZXRJbmRleGVkQnVmZmVyQmluZGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRJbmRleGVkUGFyYW1ldGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldE1heFRyYW5zZm9ybUZl
ZWRiYWNrU2VwYXJhdGVBdHRyaWJzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmdldFBhcmFtZXRlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJp
bmdDb250ZXh0Ojp1bmNhY2hlRGVsZXRlZEJ1ZmZlcik6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUHJv
Z3JhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFByb2dyYW06OmNhY2hlSW5mb0lmTmVl
ZGVkKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaDoKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFRyYW5zZm9ybUZlZWRiYWNrOjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OnNldFByb2dyYW0pOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6c2V0Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVl
ZGJhY2tCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6
Z2V0Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6aGFzRW5vdWdoQnVmZmVycyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjp1c2VzQnVmZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OnVuYmluZEJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjp2YWxpZGF0ZVByb2dyYW1Gb3JS
ZXN1bWUgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJh
Y2suaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRH
TEFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjp2
ZXJ0ZXhBdHRyaWJEaXZpc29yKToKKwogMjAyMC0wNi0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgQXVkaW9Db250ZXh0QmFzZSBjbGFzcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvQ2FsbFRyYWNlclR5cGVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWxsVHJhY2VyVHlwZXMuaAppbmRleCBhNDBiOTRhNzVm
MzZlMDBjYjQzZjU0YmI3ZDNmZjE1NDA3YjBhMjBlLi4wNGFlYzIzZGE5ZDEzNjg3YjliZWY1MWFj
YWY4Yzk1YmVlMTY0YTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9D
YWxsVHJhY2VyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWxsVHJh
Y2VyVHlwZXMuaApAQCAtNjEsMTMgKzYxLDEzIEBACiAjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIK
ICNpbmNsdWRlICJXZWJHTFN5bmMuaCIKICNpbmNsdWRlICJXZWJHTFRleHR1cmUuaCIKLSNpbmNs
dWRlICJXZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgiCiAjaW5jbHVkZSAiV2ViR0xVbmlmb3JtTG9j
YXRpb24uaCIKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCiAjZW5kaWYKIAog
I2lmIEVOQUJMRShXRUJHTDIpCiAjaW5jbHVkZSAiV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIgor
I2luY2x1ZGUgIldlYkdMVHJhbnNmb3JtRmVlZGJhY2suaCIKICNlbmRpZgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0xMDEsOSArMTAxLDExIEBAIHVzaW5nIFJlY29yZENhbnZhc0FjdGlvblZh
cmlhbnQgPSBWYXJpYW50PAogICAgIFdlYkdMU2hhZGVyKiwKICAgICBXZWJHTFN5bmMqLAogICAg
IFdlYkdMVGV4dHVyZSosCi0gICAgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjayosCiAgICAgV2ViR0xV
bmlmb3JtTG9jYXRpb24qLAogICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3QqLAorI2VuZGlmCisj
aWYgRU5BQkxFKFdFQkdMMikKKyAgICBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKiwKICNlbmRpZgog
ICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgUmVmUHRyPEFycmF5QnVmZmVyVmlldz4sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5k
ZXggZmM5MGJiMjMxNjcxYjY5YzhiODM3YWJhZTRiMDllOGEwYmI5N2Q4Zi4uYWMzOTY2N2RjZGM3
ZDQ3YThkYWM2YWQ1MTg4ODliNjI2OTk2NmQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMjM1LDYgKzIzNSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhWaXN1YWxWaWV3cG9ydCkgXAogICAgIG1hY3JvKFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQpIFwKICAgICBtYWNybyhXZWJHTFZlcnRleEFycmF5T2JqZWN0
KSBcCisgICAgbWFjcm8oV2ViR0xUcmFuc2Zvcm1GZWVkYmFjaykgXAogICAgIG1hY3JvKFdlYktp
dE1lZGlhS2V5RXJyb3IpIFwKICAgICBtYWNybyhXZWJLaXRNZWRpYUtleU1lc3NhZ2VFdmVudCkg
XAogICAgIG1hY3JvKFdlYktpdE1lZGlhS2V5TmVlZGVkRXZlbnQpIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXgg
Y2RiODMxYzUyODNlYzcyZDdkMjg1YzBkNzg5OTBlMDM4NDBkODM0OS4uMDY2MTRhNzBjNTFhOWY2
ZjlkOTYwOGQzYzVkMGYzOTI0MWM1NDdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTExMiw3ICsxMTIsNiBA
QCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp+V2ViR0wyUmVuZGVyaW5nQ29udGV4dCgpCiAgICAg
Ly8gdGhleSB3aWxsIGJlIGZyZWVkIGJlZm9yZSB0aGUgbGFzdCBjb250ZXh0IGlzIHJlbW92ZWQg
ZnJvbSB0aGUgY29udGV4dCBncm91cC4KICAgICBtX3JlYWRGcmFtZWJ1ZmZlckJpbmRpbmcgPSBu
dWxscHRyOwogICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjayA9IG51bGxwdHI7Ci0gICAgbV9i
b3VuZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVycy5jbGVhcigpOwogICAgIG1fYm91bmRUcmFuc2Zv
cm1GZWVkYmFja0J1ZmZlciA9IG51bGxwdHI7CiAgICAgbV9ib3VuZFVuaWZvcm1CdWZmZXIgPSBu
dWxscHRyOwogICAgIG1fYm91bmRJbmRleGVkVW5pZm9ybUJ1ZmZlcnMuY2xlYXIoKTsKQEAgLTEz
NSwxMSArMTM0LDEyIEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZU5l
d0NvbnRleHQoKQogCiAgICAgLy8gTkVFRFNfUE9SVDogYm9vbGVhbiBvY2NsdXNpb24gcXVlcnks
IHRyYW5zZm9ybSBmZWVkYmFjayBwcmltaXRpdmVzIHdyaXR0ZW4gcXVlcnksIGVsYXBzZWQgcXVl
cnkKIAotICAgIGludCBtYXhUcmFuc2Zvcm1GZWVkYmFja0F0dHJpYnMgPSBnZXRJbnRQYXJhbWV0
ZXIoR3JhcGhpY3NDb250ZXh0R0w6Ok1BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfU0VQQVJBVEVfQVRU
UklCUyk7Ci0gICAgQVNTRVJUKG1heFRyYW5zZm9ybUZlZWRiYWNrQXR0cmlicyA+PSA0KTsKLSAg
ICBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzLnJlc2l6ZShtYXhUcmFuc2Zvcm1GZWVk
YmFja0F0dHJpYnMpOworICAgIG1fbWF4VHJhbnNmb3JtRmVlZGJhY2tTZXBhcmF0ZUF0dHJpYnMg
PSBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihHcmFwaGljc0NvbnRleHRHTDo6TUFYX1RSQU5TRk9S
TV9GRUVEQkFDS19TRVBBUkFURV9BVFRSSUJTKTsKKyAgICBBU1NFUlQobV9tYXhUcmFuc2Zvcm1G
ZWVkYmFja1NlcGFyYXRlQXR0cmlicyA+PSA0KTsKIAotICAgIC8vIE5FRURTX1BPUlQ6IHNldCB1
cCBkZWZhdWx0IHRyYW5zZm9ybSBmZWVkYmFjayBvYmplY3QKKyAgICBtX2RlZmF1bHRUcmFuc2Zv
cm1GZWVkYmFjayA9IGNyZWF0ZVRyYW5zZm9ybUZlZWRiYWNrKCk7CisgICAgbV9jb250ZXh0LT5i
aW5kVHJhbnNmb3JtRmVlZGJhY2soR3JhcGhpY3NDb250ZXh0R0w6OlRSQU5TRk9STV9GRUVEQkFD
SywgbV9kZWZhdWx0VHJhbnNmb3JtRmVlZGJhY2stPm9iamVjdCgpKTsKKyAgICBtX2JvdW5kVHJh
bnNmb3JtRmVlZGJhY2sgPSBtX2RlZmF1bHRUcmFuc2Zvcm1GZWVkYmFjazsKIAogICAgIG1fYm91
bmRJbmRleGVkVW5pZm9ybUJ1ZmZlcnMucmVzaXplKGdldEludFBhcmFtZXRlcihHcmFwaGljc0Nv
bnRleHRHTDo6TUFYX1VOSUZPUk1fQlVGRkVSX0JJTkRJTkdTKSk7CiAgICAgbV91bmlmb3JtQnVm
ZmVyT2Zmc2V0QWxpZ25tZW50ID0gZ2V0SW50UGFyYW1ldGVyKEdyYXBoaWNzQ29udGV4dEdMOjpV
TklGT1JNX0JVRkZFUl9PRkZTRVRfQUxJR05NRU5UKTsKQEAgLTE3ODUsMTEgKzE3ODUsMTggQEAg
UmVmUHRyPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNy
ZWF0ZVRyYW5zZm9ybUZlZWRiYWNrKCkKIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpk
ZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKiBmZWVkYmFja09i
amVjdCkKIHsKLSAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQorICAgIGlmIChpc0Nv
bnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIWZlZWRiYWNrT2JqZWN0IHx8IGZlZWRiYWNrT2JqZWN0
LT5pc0RlbGV0ZWQoKSB8fCAhdmFsaWRhdGVXZWJHTE9iamVjdCgiZGVsZXRlVHJhbnNmb3JtRmVl
ZGJhY2siLCBmZWVkYmFja09iamVjdCkpCiAgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBBU1NF
UlQoZmVlZGJhY2tPYmplY3QgIT0gbV9kZWZhdWx0VHJhbnNmb3JtRmVlZGJhY2spOworICAgIAor
ICAgIGlmIChmZWVkYmFja09iamVjdC0+aXNBY3RpdmUoKSkgeworICAgICAgICBzeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICJkZWxldGVUcmFu
c2Zvcm1GZWVkYmFjayIsICJhdHRlbXB0IHRvIGRlbGV0ZSBhbiBhY3RpdmUgdHJhbnNmb3JtIGZl
ZWRiYWNrIG9iamVjdCIpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgaWYgKG1fYm91
bmRUcmFuc2Zvcm1GZWVkYmFjayA9PSBmZWVkYmFja09iamVjdCkKLSAgICAgICAgbV9ib3VuZFRy
YW5zZm9ybUZlZWRiYWNrID0gbnVsbHB0cjsKKyAgICAgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRi
YWNrID0gbV9kZWZhdWx0VHJhbnNmb3JtRmVlZGJhY2s7CiAKICAgICBkZWxldGVPYmplY3QoZmVl
ZGJhY2tPYmplY3QpOwogfQpAQCAtMTgxNywxNiArMTgyNCw2NCBAQCB2b2lkIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmJpbmRUcmFuc2Zvcm1GZWVkYmFjayhHQ0dMZW51bSB0YXJnZXQsIFdlYkdM
VHJhbnNmbwogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29udGV4dC0+Ymlu
ZFRyYW5zZm9ybUZlZWRiYWNrKHRhcmdldCwgb2JqZWN0T3JaZXJvKGZlZWRiYWNrT2JqZWN0KSk7
Ci0gICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrID0gZmVlZGJhY2tPYmplY3Q7CisgICAgaWYg
KHRhcmdldCAhPSBHcmFwaGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLKSB7CisgICAg
ICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX0VOVU0sICJi
aW5kVHJhbnNmb3JtRmVlZGJhY2siLCAidGFyZ2V0IG11c3QgYmUgVFJBTlNGT1JNX0ZFRURCQUNL
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1fYm91bmRUcmFuc2Zvcm1GZWVk
YmFjay0+aXNBY3RpdmUoKSAmJiAhbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5pc1BhdXNlZCgp
KSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElE
X09QRVJBVElPTiwgImJpbmRUcmFuc2Zvcm1GZWVkYmFjayIsICJ0cmFuc2Zvcm0gZmVlZGJhY2sg
aXMgYWN0aXZlIGFuZCBub3QgcGF1c2VkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBhdXRvIHRvQmVCb3VuZCA9IGZlZWRiYWNrT2JqZWN0ID8gZmVlZGJhY2tPYmplY3QgOiBtX2Rl
ZmF1bHRUcmFuc2Zvcm1GZWVkYmFjay5nZXQoKTsKKyAgICBtX2NvbnRleHQtPmJpbmRUcmFuc2Zv
cm1GZWVkYmFjayh0YXJnZXQsIHRvQmVCb3VuZC0+b2JqZWN0KCkpOworICAgIG1fYm91bmRUcmFu
c2Zvcm1GZWVkYmFjayA9IHRvQmVCb3VuZDsKK30KKworc3RhdGljIGJvb2wgVmFsaWRhdGVUcmFu
c2Zvcm1GZWVkYmFja1ByaW1pdGl2ZU1vZGUoR0NHTGVudW0gbW9kZSkKK3sKKyAgICBzd2l0Y2gg
KG1vZGUpIHsKKyAgICBjYXNlIEdMX1BPSU5UUzoKKyAgICBjYXNlIEdMX0xJTkVTOgorICAgIGNh
c2UgR0xfVFJJQU5HTEVTOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmJlZ2luVHJhbnNmb3JtRmVlZGJhY2soR0NHTGVudW0gcHJpbWl0aXZlTW9kZSkKIHsKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm47CisgICAgCisg
ICAgaWYgKCFWYWxpZGF0ZVRyYW5zZm9ybUZlZWRiYWNrUHJpbWl0aXZlTW9kZShwcmltaXRpdmVN
b2RlKSkgeworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5W
QUxJRF9FTlVNLCAiYmVnaW5UcmFuc2Zvcm1GZWVkYmFjayIsICJpbnZhbGlkIHRyYW5zZm9ybSBm
ZWVkYmFjayBwcmltaXRpdmUgbW9kZSIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlm
ICghbV9jdXJyZW50UHJvZ3JhbSkgeworICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGlj
c0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICJiZWdpblRyYW5zZm9ybUZlZWRiYWNrIiwg
Im5vIHByb2dyYW0gaXMgYWN0aXZlIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYg
KG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+aXNBY3RpdmUoKSkgeworICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04sICJiZWdpblRy
YW5zZm9ybUZlZWRiYWNrIiwgInRyYW5zZm9ybSBmZWVkYmFjayBpcyBhbHJlYWR5IGFjdGl2ZSIp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGludCByZXF1aXJlZEJ1ZmZlckNvdW50ID0g
bV9jdXJyZW50UHJvZ3JhbS0+cmVxdWlyZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlckNvdW50KCk7
CisgICAgaWYgKCFyZXF1aXJlZEJ1ZmZlckNvdW50KSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwgImJlZ2luVHJhbnNmb3Jt
RmVlZGJhY2siLCAiY3VycmVudCBhY3RpdmUgcHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGFueSB0
cmFuc2Zvcm0gZmVlZGJhY2sgdmFyeWluZ3MgdG8gcmVjb3JkIik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgaWYgKCFtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2stPmhhc0Vub3VnaEJ1ZmZl
cnMocmVxdWlyZWRCdWZmZXJDb3VudCkpIHsKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BFUkFUSU9OLCAiYmVnaW5UcmFuc2Zvcm1GZWVkYmFj
ayIsICJub3QgZW5vdWdoIHRyYW5zZm9ybSBmZWVkYmFjayBidWZmZXJzIGJvdW5kIik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CiAKICAgICBtX2NvbnRleHQtPmJlZ2luVHJhbnNmb3JtRmVlZGJh
Y2socHJpbWl0aXZlTW9kZSk7CisKKyAgICBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2stPnNldFBy
b2dyYW0oKm1fY3VycmVudFByb2dyYW0pOworICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+
c2V0QWN0aXZlKHRydWUpOworICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+c2V0UGF1c2Vk
KGZhbHNlKTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjplbmRUcmFuc2Zvcm1G
ZWVkYmFjaygpCkBAIC0xODM0LDEzICsxODg5LDM2IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6ZW5kVHJhbnNmb3JtRmVlZGJhY2soKQogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5k
aW5nKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmICghbV9ib3VuZFRyYW5zZm9ybUZlZWRi
YWNrLT5pc0FjdGl2ZSgpKSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29u
dGV4dEdMOjpJTlZBTElEX09QRVJBVElPTiwgImVuZFRyYW5zZm9ybUZlZWRiYWNrIiwgInRyYW5z
Zm9ybSBmZWVkYmFjayBpcyBub3QgYWN0aXZlIik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgCiAgICAgbV9jb250ZXh0LT5lbmRUcmFuc2Zvcm1GZWVkYmFjaygpOworCisgICAgbV9ib3Vu
ZFRyYW5zZm9ybUZlZWRiYWNrLT5zZXRQYXVzZWQoZmFsc2UpOworICAgIG1fYm91bmRUcmFuc2Zv
cm1GZWVkYmFjay0+c2V0QWN0aXZlKGZhbHNlKTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Ojp0cmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHZhcnlpbmdzLCBHQ0dMZW51bSBidWZmZXJNb2RlKQogewot
ICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgdmFyeWluZ3MuaXNFbXB0eSgpIHx8
ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJ0cmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzIiwgJnByb2dy
YW0pKQorICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xP
YmplY3QoInRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MiLCAmcHJvZ3JhbSkpCiAgICAgICAgIHJl
dHVybjsKKyAgICAKKyAgICBzd2l0Y2ggKGJ1ZmZlck1vZGUpIHsKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dEdMOjpTRVBBUkFURV9BVFRSSUJTOgorICAgICAgICBpZiAodmFyeWluZ3Muc2l6ZSgp
ID4gbV9tYXhUcmFuc2Zvcm1GZWVkYmFja1NlcGFyYXRlQXR0cmlicykgeworICAgICAgICAgICAg
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfVkFMVUUsICJ0cmFu
c2Zvcm1GZWVkYmFja1ZhcnlpbmdzIiwgInRvbyBtYW55IHZhcnlpbmdzIik7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHRHTDo6SU5URVJMRUFWRURfQVRUUklCUzoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURf
RU5VTSwgInRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MiLCAiaW52YWxpZCBidWZmZXIgbW9kZSIp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHByb2dyYW0uc2V0UmVxdWlyZWRUcmFuc2Zv
cm1GZWVkYmFja0J1ZmZlckNvdW50KGJ1ZmZlck1vZGUgPT0gR3JhcGhpY3NDb250ZXh0R0w6OklO
VEVSTEVBVkVEX0FUVFJJQlMgPyAxIDogdmFyeWluZ3Muc2l6ZSgpKTsKIAogICAgIG1fY29udGV4
dC0+dHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncyhwcm9ncmFtLm9iamVjdCgpLCB2YXJ5aW5ncywg
YnVmZmVyTW9kZSk7CiB9CkBAIC0xODYxLDEyICsxOTM5LDM5IEBAIFJlZlB0cjxXZWJHTEFjdGl2
ZUluZm8+IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWlu
ZyhXZWJHCiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cGF1c2VUcmFuc2Zvcm1GZWVk
YmFjaygpCiB7Ci0gICAgTE9HKFdlYkdMLCAiW1sgTk9UIElNUExFTUVOVEVEIF1dIHBhdXNlVHJh
bnNmb3JtRmVlZGJhY2soKSIpOworICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5pc0Fj
dGl2ZSgpKSB7CisgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJ
TlZBTElEX09QRVJBVElPTiwgInBhdXNlVHJhbnNmb3JtRmVlZGJhY2siLCAidHJhbnNmb3JtIGZl
ZWRiYWNrIGlzIG5vdCBhY3RpdmUiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2stPmlzUGF1c2VkKCkpIHsKKyAgICAgICAgc3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BFUkFUSU9OLCAicGF1c2VU
cmFuc2Zvcm1GZWVkYmFjayIsICJ0cmFuc2Zvcm0gZmVlZGJhY2sgaXMgYWxyZWFkeSBwYXVzZWQi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFj
ay0+c2V0UGF1c2VkKHRydWUpOworICAgIG1fY29udGV4dC0+cGF1c2VUcmFuc2Zvcm1GZWVkYmFj
aygpOwogfQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnJlc3VtZVRyYW5zZm9ybUZl
ZWRiYWNrKCkKIHsKLSAgICBMT0coV2ViR0wsICJbWyBOT1QgSU1QTEVNRU5URUQgXV0gcmVzdW1l
VHJhbnNmb3JtRmVlZGJhY2soKSIpOworICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT52
YWxpZGF0ZVByb2dyYW1Gb3JSZXN1bWUobV9jdXJyZW50UHJvZ3JhbS5nZXQoKSkpIHsKKyAgICAg
ICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURfT1BFUkFUSU9O
LCAicmVzdW1lVHJhbnNmb3JtRmVlZGJhY2siLCAidGhlIGN1cnJlbnQgcHJvZ3JhbSBpcyBub3Qg
dGhlIHNhbWUgYXMgd2hlbiBiZWdpblRyYW5zZm9ybUZlZWRiYWNrIHdhcyBjYWxsZWQiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoIW1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+
aXNBY3RpdmUoKSB8fCAhbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5pc1BhdXNlZCgpKSB7Cisg
ICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX09QRVJB
VElPTiwgInJlc3VtZVRyYW5zZm9ybUZlZWRiYWNrIiwgInRyYW5zZm9ybSBmZWVkYmFjayBpcyBu
b3QgYWN0aXZlIG9yIG5vdCBwYXVzZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+c2V0UGF1c2VkKGZhbHNlKTsKKyAgICBtX2NvbnRl
eHQtPnJlc3VtZVRyYW5zZm9ybUZlZWRiYWNrKCk7CiB9CiAKIGJvb2wgV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6c2V0SW5kZXhlZEJ1ZmZlckJpbmRpbmcoY29uc3QgY2hhciAqZnVuY3Rpb25OYW1l
LCBHQ0dMZW51bSB0YXJnZXQsIEdDR0x1aW50IGluZGV4LCBXZWJHTEJ1ZmZlciogYnVmZmVyKQpA
QCAtMTg3OSw3ICsxOTg0LDcgQEAgYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpzZXRJbmRl
eGVkQnVmZmVyQmluZGluZyhjb25zdCBjaGFyICpmdW5jdGlvbk5hbWUsIEcKIAogICAgIHN3aXRj
aCAodGFyZ2V0KSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURC
QUNLX0JVRkZFUjoKLSAgICAgICAgaWYgKGluZGV4ID49IG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFj
a0J1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAgIGlmIChpbmRleCA+IG1fbWF4VHJhbnNmb3JtRmVl
ZGJhY2tTZXBhcmF0ZUF0dHJpYnMpIHsKICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX1ZBTFVFLCBmdW5jdGlvbk5hbWUsICJpbmRleCBvdXQg
b2YgcmFuZ2UiKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtMTkw
MCw3ICsyMDA1LDcgQEAgYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpzZXRJbmRleGVkQnVm
ZmVyQmluZGluZyhjb25zdCBjaGFyICpmdW5jdGlvbk5hbWUsIEcKIAogICAgIHN3aXRjaCAodGFy
Z2V0KSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JV
RkZFUjoKLSAgICAgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyc1tpbmRleF0gPSBi
dWZmZXI7CisgICAgICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+c2V0Qm91bmRJbmRleGVk
VHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIoaW5kZXgsIGJ1ZmZlcik7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlVOSUZPUk1fQlVGRkVSOgogICAgICAgICBtX2Jv
dW5kSW5kZXhlZFVuaWZvcm1CdWZmZXJzW2luZGV4XSA9IGJ1ZmZlcjsKQEAgLTE5MzgsMTIgKzIw
NDMsMTUgQEAgV2ViR0xBbnkgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Z2V0SW5kZXhlZFBhcmFt
ZXRlcihHQ0dMZW51bSB0YXJnZXQsIEdDR0x1aW50IGkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBzd2l0Y2ggKHRhcmdldCkgewotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlRS
QU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORzoKLSAgICAgICAgaWYgKGluZGV4ID49IG1f
Ym91bmRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnMuc2l6ZSgpKSB7CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HOiB7CisgICAgICAg
IFdlYkdMQnVmZmVyKiBidWZmZXI7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9IG1fYm91bmRUcmFu
c2Zvcm1GZWVkYmFjay0+Z2V0Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIoaW5k
ZXgsICZidWZmZXIpOworICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKICAgICAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdMOjpJTlZBTElEX1ZBTFVFLCAiZ2V0SW5kZXhl
ZFBhcmFtZXRlciIsICJpbmRleCBvdXQgb2YgcmFuZ2UiKTsKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBtX2JvdW5kVHJhbnNmb3JtRmVlZGJh
Y2tCdWZmZXJzW2luZGV4XTsKKyAgICAgICAgcmV0dXJuIG1ha2VSZWZQdHIoYnVmZmVyKTsKKyAg
ICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZF
Ul9TSVpFOgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlRSQU5TRk9STV9GRUVEQkFDS19C
VUZGRVJfU1RBUlQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VU5JRk9STV9CVUZGRVJf
U0laRToKQEAgLTE5NTgsNyArMjA2Niw2IEBAIFdlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmdldEluZGV4ZWRQYXJhbWV0ZXIoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMdWludCBpCiAgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9ib3Vu
ZEluZGV4ZWRVbmlmb3JtQnVmZmVyc1tpbmRleF07Ci0gICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dEdM
OjpJTlZBTElEX0VOVU0sICJnZXRJbmRleGVkUGFyYW1ldGVyIiwgImludmFsaWQgcGFyYW1ldGVy
IG5hbWUiKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0yNDg0LDYgKzI1OTEsMTEgQEAg
dm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpoaW50KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVu
dW0gbW9kZSkKICAgICBtX2NvbnRleHQtPmhpbnQodGFyZ2V0LCBtb2RlKTsKIH0KIAorR0NHTHVp
bnQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6bWF4VHJhbnNmb3JtRmVlZGJhY2tTZXBhcmF0ZUF0
dHJpYnMoKSBjb25zdAoreworICAgIHJldHVybiBtX21heFRyYW5zZm9ybUZlZWRiYWNrU2VwYXJh
dGVBdHRyaWJzOworfQorCiBHQ0dMZW51bSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiYXNlSW50
ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3JtYXQoR0NHTGVudW0gaW50ZXJuYWxmb3JtYXQpCiB7
CiAgICAgLy8gSGFuZGxlcyBzaXplZCwgdW5zaXplZCwgYW5kIGNvbXByZXNzZWQgaW50ZXJuYWwg
Zm9ybWF0cy4KQEAgLTI2OTIsOCArMjgwNCw3IEBAIFdlYkdMQW55IFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmdldFBhcmFtZXRlcihHQ0dMZW51bSBwbmFtZSkKICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dEdMOjpUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkc6CiAgICAgICAgIHJldHVy
biBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXI7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHRHTDo6VFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJTkc6Ci0gICAgICAgIC8vIEZJWE1FOiBORUVE
U19QT1JUOiBzdXBwb3J0IGRlZmF1bHQgdHJhbnNmb3JtIGZlZWRiYWNrIG9iamVjdC4KLSAgICAg
ICAgcmV0dXJuIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjazsKKyAgICAgICAgcmV0dXJuIG1fYm91
bmRUcmFuc2Zvcm1GZWVkYmFjayA9PSBtX2RlZmF1bHRUcmFuc2Zvcm1GZWVkYmFjayA/IG51bGxw
dHIgOiBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2s7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRH
TDo6VFJBTlNGT1JNX0ZFRURCQUNLX1BBVVNFRDoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5Q
YXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0R0w6OlVOSUZPUk1fQlVG
RkVSX0JJTkRJTkc6CkBAIC0zMDIyLDEwICszMTMzLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Ojp1bmNhY2hlRGVsZXRlZEJ1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQogICAgIFJF
TU9WRV9CVUZGRVJfRlJPTV9CSU5ESU5HKG1fYm91bmRQaXhlbFVucGFja0J1ZmZlcik7CiAgICAg
UkVNT1ZFX0JVRkZFUl9GUk9NX0JJTkRJTkcobV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVy
KTsKICAgICBSRU1PVkVfQlVGRkVSX0ZST01fQklORElORyhtX2JvdW5kVW5pZm9ybUJ1ZmZlcik7
Ci0KLSAgICBzaXplX3QgaW5kZXggPSBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzLmZp
bmQoYnVmZmVyKTsKLSAgICBpZiAoaW5kZXggPCBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZm
ZXJzLnNpemUoKSkKLSAgICAgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyc1tpbmRl
eF0gPSBudWxscHRyOworICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+dW5iaW5kQnVmZmVy
KCpidWZmZXIpOwogCiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5jYWNoZURlbGV0
ZWRCdWZmZXIoYnVmZmVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAppbmRleCBkYjVhOGQ0OTZiYTNmYTczMDVmZGExZTY3
NTdjODcwZGZhOWNkNWU4Li42ZDY1OGNhNGNhZWIwNjc1OWJhODQ2YTkzZWNjNTA4OTA5MWU2MjI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5oCkBAIC0yNDYsNiArMjQ2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZW5kZXJi
dWZmZXJTdG9yYWdlKEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdD
R0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCkgZmluYWw7CiAgICAgdm9pZCBoaW50KEdD
R0xlbnVtIHRhcmdldCwgR0NHTGVudW0gbW9kZSkgZmluYWw7CisgICAgR0NHTHVpbnQgbWF4VHJh
bnNmb3JtRmVlZGJhY2tTZXBhcmF0ZUF0dHJpYnMoKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmLCBHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMpOwpAQCAtMzA0LDcgKzMwNSw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8V2ViR0xG
cmFtZWJ1ZmZlcj4gbV9yZWFkRnJhbWVidWZmZXJCaW5kaW5nOwogICAgIFJlZlB0cjxXZWJHTFRy
YW5zZm9ybUZlZWRiYWNrPiBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2s7Ci0gICAgVmVjdG9yPFJl
ZlB0cjxXZWJHTEJ1ZmZlcj4+IG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnM7CisgICAg
UmVmUHRyPFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s+IG1fZGVmYXVsdFRyYW5zZm9ybUZlZWRiYWNr
OwogCiAgICAgUmVmUHRyPFdlYkdMQnVmZmVyPiBtX2JvdW5kQ29weVJlYWRCdWZmZXI7CiAgICAg
UmVmUHRyPFdlYkdMQnVmZmVyPiBtX2JvdW5kQ29weVdyaXRlQnVmZmVyOwpAQCAtMzI0LDYgKzMy
NSw3IEBAIHByaXZhdGU6CiAgICAgR0NHTGludCBtX3VucGFja0ltYWdlSGVpZ2h0IHsgMCB9Owog
ICAgIEdDR0xpbnQgbV91bnBhY2tTa2lwSW1hZ2VzIHsgMCB9OwogICAgIEdDR0xpbnQgbV91bmlm
b3JtQnVmZmVyT2Zmc2V0QWxpZ25tZW50IHsgMCB9OworICAgIEdDR0x1aW50IG1fbWF4VHJhbnNm
b3JtRmVlZGJhY2tTZXBhcmF0ZUF0dHJpYnMgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dy
YW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcAppbmRl
eCBkMWIwZTc0NmU4MGE1MjY2NjVhZTg2YjcxOGZiZWM1MjY3YmVlMDAyLi40MGU3ODA3ZmUxNGI1
NGRlZjQ2MGY4YTgzZTU3ZjhjZDA0YzdmMjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUHJvZ3JhbS5jcHAKQEAgLTIyNCw4ICsyMjQsMTAgQEAgdm9pZCBXZWJHTFByb2dy
YW06OmNhY2hlSW5mb0lmTmVlZGVkKCkKICAgICBHQ0dMaW50IGxpbmtTdGF0dXMgPSAwOwogICAg
IGNvbnRleHQtPmdldFByb2dyYW1pdihvYmplY3QoKSwgR3JhcGhpY3NDb250ZXh0R0w6OkxJTktf
U1RBVFVTLCAmbGlua1N0YXR1cyk7CiAgICAgbV9saW5rU3RhdHVzID0gbGlua1N0YXR1czsKLSAg
ICBpZiAobV9saW5rU3RhdHVzKQorICAgIGlmIChtX2xpbmtTdGF0dXMpIHsKICAgICAgICAgY2Fj
aGVBY3RpdmVBdHRyaWJMb2NhdGlvbnMoY29udGV4dCk7CisgICAgICAgIG1fcmVxdWlyZWRUcmFu
c2Zvcm1GZWVkYmFja0J1ZmZlckNvdW50ID0gbV9yZXF1aXJlZFRyYW5zZm9ybUZlZWRiYWNrQnVm
ZmVyQ291bnRBZnRlck5leHRMaW5rOworICAgIH0KICAgICBtX2luZm9WYWxpZCA9IHRydWU7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKaW5kZXggODkzNmI2
OWY1M2YyMDNlMmYwN2ViY2E5NzFkYTllZTk3ZWU4YWI4Zi4uODA4ZmQyMGYwOWMwM2NjZTQ2Mjcz
OGQ1NWI2Nzc5Zjk2ZmVkZDJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQ
cm9ncmFtLmgKQEAgLTY5LDYgKzY5LDE2IEBAIHB1YmxpYzoKICAgICBXZWJHTFNoYWRlciogZ2V0
QXR0YWNoZWRTaGFkZXIoR0NHTGVudW0pOwogICAgIGJvb2wgYXR0YWNoU2hhZGVyKFdlYkdMU2hh
ZGVyKik7CiAgICAgYm9vbCBkZXRhY2hTaGFkZXIoV2ViR0xTaGFkZXIqKTsKKyAgICAKKyAgICB2
b2lkIHNldFJlcXVpcmVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJDb3VudChpbnQgY291bnQpCisg
ICAgeworICAgICAgICBtX3JlcXVpcmVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJDb3VudEFmdGVy
TmV4dExpbmsgPSBjb3VudDsKKyAgICB9CisgICAgaW50IHJlcXVpcmVkVHJhbnNmb3JtRmVlZGJh
Y2tCdWZmZXJDb3VudCgpCisgICAgeworICAgICAgICBjYWNoZUluZm9JZk5lZWRlZCgpOworICAg
ICAgICByZXR1cm4gbV9yZXF1aXJlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyQ291bnQ7CisgICAg
fQogCiBwcml2YXRlOgogICAgIFdlYkdMUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Jik7CkBAIC04OSw2ICs5OSw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkdMU2hhZGVyPiBt
X2ZyYWdtZW50U2hhZGVyOwogCiAgICAgYm9vbCBtX2luZm9WYWxpZCB7IHRydWUgfTsKKyAgICBp
bnQgbV9yZXF1aXJlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyQ291bnRBZnRlck5leHRMaW5rIHsg
MCB9OworICAgIGludCBtX3JlcXVpcmVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJDb3VudCB7IDAg
fTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5jcHAKaW5kZXggNWEyZjAzMzBj
ZDA0ZDIyNDNhYTA1OTFlNjAxZDZhYzhhNDVkNGNiNy4uOTE1Y2FlMjgwMzYxYzcwNmZjNTFjN2Zi
ZmE4N2MyODg5YTA1Mjk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgogCi0jaWYgRU5BQkxFKFdFQkdMKQorI2lmIEVOQUJMRShXRUJHTDIpCiAj
aW5jbHVkZSAiV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oIgogCiAjaW5jbHVkZSAiV2ViR0xDb250
ZXh0R3JvdXAuaCIKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWY8V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz4gV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6Y3JlYXRl
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKK1JlZjxXZWJHTFRyYW5zZm9ybUZlZWRi
YWNrPiBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpjcmVhdGUoV2ViR0wyUmVuZGVyaW5nQ29udGV4
dCYgY3R4KQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdMVHJhbnNmb3JtRmVlZGJh
Y2soY3R4KSk7CiB9CkBAIC00MywxMCArNDMsMTEgQEAgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6
fldlYkdMVHJhbnNmb3JtRmVlZGJhY2soKQogICAgIGRlbGV0ZU9iamVjdCgwKTsKIH0KIAotV2Vi
R0xUcmFuc2Zvcm1GZWVkYmFjazo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJiBjdHgpCitXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpXZWJHTFRyYW5zZm9y
bUZlZWRiYWNrKFdlYkdMMlJlbmRlcmluZ0NvbnRleHQmIGN0eCkKICAgICA6IFdlYkdMU2hhcmVk
T2JqZWN0KGN0eCkKIHsKICAgICBzZXRPYmplY3QoY3R4LmdyYXBoaWNzQ29udGV4dEdMKCktPmNy
ZWF0ZVRyYW5zZm9ybUZlZWRiYWNrKCkpOworICAgIG1fYm91bmRJbmRleGVkVHJhbnNmb3JtRmVl
ZGJhY2tCdWZmZXJzLnJlc2l6ZShjdHgubWF4VHJhbnNmb3JtRmVlZGJhY2tTZXBhcmF0ZUF0dHJp
YnMoKSk7CiB9CiAKIHZvaWQgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6ZGVsZXRlT2JqZWN0SW1w
bChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDNkLCBQbGF0Zm9ybUdMT2JqZWN0IG9i
amVjdCkKQEAgLTU0LDYgKzU1LDUwIEBAIHZvaWQgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6ZGVs
ZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDNkCiAgICAgY29u
dGV4dDNkLT5kZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhvYmplY3QpOwogfQogCit2b2lkIFdlYkdM
VHJhbnNmb3JtRmVlZGJhY2s6OnNldFByb2dyYW0oV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQorewor
ICAgIG1fcHJvZ3JhbSA9ICZwcm9ncmFtOworICAgIG1fcHJvZ3JhbUxpbmtDb3VudCA9IHByb2dy
YW0uZ2V0TGlua0NvdW50KCk7Cit9CisKK3ZvaWQgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6c2V0
Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIoR0NHTHVpbnQgaW5kZXgsIFdlYkdM
QnVmZmVyKiBidWZmZXIpCit7CisgICAgQVNTRVJUKGluZGV4IDwgbV9ib3VuZEluZGV4ZWRUcmFu
c2Zvcm1GZWVkYmFja0J1ZmZlcnMuc2l6ZSgpKTsKKyAgICBtX2JvdW5kSW5kZXhlZFRyYW5zZm9y
bUZlZWRiYWNrQnVmZmVyc1tpbmRleF0gPSBidWZmZXI7Cit9CisKK2Jvb2wgV2ViR0xUcmFuc2Zv
cm1GZWVkYmFjazo6Z2V0Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIoR0NHTHVp
bnQgaW5kZXgsIFdlYkdMQnVmZmVyKiogb3V0QnVmZmVyKQoreworICAgIGlmIChpbmRleCA+IG1f
Ym91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzLnNpemUoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICpvdXRCdWZmZXIgPSBtX2JvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRi
YWNrQnVmZmVyc1tpbmRleF0uZ2V0KCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgV2Vi
R0xUcmFuc2Zvcm1GZWVkYmFjazo6aGFzRW5vdWdoQnVmZmVycyhHQ0dMdWludCBudW1SZXF1aXJl
ZCkgY29uc3QKK3sKKyAgICBpZiAobnVtUmVxdWlyZWQgPiBtX2JvdW5kSW5kZXhlZFRyYW5zZm9y
bUZlZWRiYWNrQnVmZmVycy5zaXplKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBmb3Ig
KEdDR0x1aW50IGkgPSAwOyBpIDwgbnVtUmVxdWlyZWQ7IGkrKykgeworICAgICAgICBpZiAoIW1f
Ym91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzW2ldLmdldCgpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJH
TFRyYW5zZm9ybUZlZWRiYWNrOjp1bmJpbmRCdWZmZXIoV2ViR0xCdWZmZXImIGJ1ZmZlcikKK3sK
KyAgICBmb3IgKGF1dG8mIGJvdW5kQnVmZmVyIDogbV9ib3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVk
YmFja0J1ZmZlcnMpIHsKKyAgICAgICAgaWYgKGJvdW5kQnVmZmVyID09ICZidWZmZXIpCisgICAg
ICAgICAgICBib3VuZEJ1ZmZlciA9IG51bGxwdHI7CisgICAgfQorfQorCitib29sIFdlYkdMVHJh
bnNmb3JtRmVlZGJhY2s6OnZhbGlkYXRlUHJvZ3JhbUZvclJlc3VtZShXZWJHTFByb2dyYW0qIHBy
b2dyYW0pIGNvbnN0Cit7CisgICAgcmV0dXJuIHByb2dyYW0gJiYgbV9wcm9ncmFtID09IHByb2dy
YW0gJiYgcHJvZ3JhbS0+Z2V0TGlua0NvdW50KCkgPT0gbV9wcm9ncmFtTGlua0NvdW50OworfQor
CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdMMikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVl
ZGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJh
Y2suaAppbmRleCBmNzAyYWVjMTkyZDdiYzY3M2MyMDMzMDI1NTEzMjNjMDQ1MWUyODM2Li43N2Ri
OTU0OGMzYjg0NTUwNTZmYTcxN2FmNDEzNjRmMjJlMTc4ZDNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCkBAIC0yNSw4ICsy
NSw5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKFdFQkdMKQorI2lmIEVOQUJMRShX
RUJHTDIpCiAKKyNpbmNsdWRlICJXZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAi
V2ViR0xTaGFyZWRPYmplY3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsMTIgKzM2
LDQyIEBAIGNsYXNzIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2sgZmluYWwgOiBwdWJsaWMgV2ViR0xT
aGFyZWRPYmplY3QgewogcHVibGljOgogICAgIHZpcnR1YWwgfldlYkdMVHJhbnNmb3JtRmVlZGJh
Y2soKTsKIAotICAgIHN0YXRpYyBSZWY8V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz4gY3JlYXRlKFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdMVHJhbnNmb3Jt
RmVlZGJhY2s+IGNyZWF0ZShXZWJHTDJSZW5kZXJpbmdDb250ZXh0Jik7CisgICAgCisgICAgYm9v
bCBpc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlOyB9CisgICAgYm9vbCBpc1BhdXNl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGF1c2VkOyB9CisgICAgCisgICAgdm9pZCBzZXRBY3RpdmUo
Ym9vbCBhY3RpdmUpIHsgbV9hY3RpdmUgPSBhY3RpdmU7IH0KKyAgICB2b2lkIHNldFBhdXNlZChi
b29sIHBhdXNlZCkgeyBtX3BhdXNlZCA9IHBhdXNlZDsgfQorICAgIAorICAgIC8vIFRoZXNlIGFy
ZSB0aGUgaW5kZXhlZCBiaW5kIHBvaW50cyBmb3IgdHJhbnNmb3JtIGZlZWRiYWNrIGJ1ZmZlcnMu
CisgICAgLy8gUmV0dXJucyBmYWxzZSBpZiBpbmRleCBpcyBvdXQgb2YgcmFuZ2UgYW5kIHRoZSBj
YWxsZXIgc2hvdWxkCisgICAgLy8gc3ludGhlc2l6ZSBhIEdMIGVycm9yLgorICAgIHZvaWQgc2V0
Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIoR0NHTHVpbnQgaW5kZXgsIFdlYkdM
QnVmZmVyKik7CisgICAgYm9vbCBnZXRCb3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZl
cihHQ0dMdWludCBpbmRleCwgV2ViR0xCdWZmZXIqKiBvdXRCdWZmZXIpOworICAgIAorICAgIGJv
b2wgdmFsaWRhdGVQcm9ncmFtRm9yUmVzdW1lKFdlYkdMUHJvZ3JhbSopIGNvbnN0OwogCisgICAg
Ym9vbCBoYXNFdmVyQmVlbkJvdW5kKCkgY29uc3QgeyByZXR1cm4gb2JqZWN0KCkgJiYgbV9oYXNF
dmVyQmVlbkJvdW5kOyB9CisgICAgdm9pZCBzZXRIYXNFdmVyQmVlbkJvdW5kKCkgeyBtX2hhc0V2
ZXJCZWVuQm91bmQgPSB0cnVlOyB9CisgICAgCisgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtKCkg
Y29uc3QgeyByZXR1cm4gbV9wcm9ncmFtLmdldCgpOyB9CisgICAgdm9pZCBzZXRQcm9ncmFtKFdl
YkdMUHJvZ3JhbSYpOworICAgIAorICAgIHZvaWQgdW5iaW5kQnVmZmVyKFdlYkdMQnVmZmVyJik7
CisgICAgCisgICAgYm9vbCBoYXNFbm91Z2hCdWZmZXJzKEdDR0x1aW50IG51bVJlcXVpcmVkKSBj
b25zdDsKIHByaXZhdGU6Ci0gICAgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlJik7CisgICAgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTDJSZW5kZXJp
bmdDb250ZXh0Jik7CiAKICAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0KSBvdmVycmlkZTsKKyAgICAKKyAgICBib29sIG1f
YWN0aXZlIHsgZmFsc2UgfTsKKyAgICBib29sIG1fcGF1c2VkIHsgZmFsc2UgfTsKKyAgICBib29s
IG1faGFzRXZlckJlZW5Cb3VuZCB7IGZhbHNlIH07CisgICAgdW5zaWduZWQgbV9wcm9ncmFtTGlu
a0NvdW50IHsgMCB9OworICAgIFZlY3RvcjxSZWZQdHI8V2ViR0xCdWZmZXI+PiBtX2JvdW5kSW5k
ZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyczsKKyAgICBSZWZQdHI8V2ViR0xQcm9ncmFtPiBt
X3Byb2dyYW07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaWRsCmluZGV4IDIy
Yjg4NDdlZGY4MTU4YTlmOWFiN2EyNGE0YzA0Mzk5ZWZhNTNhMDkuLjkzNzNjMThmOGY3NDcyM2Y0
OTgwODhjMmZiYzJlZDA5NmM2YjY0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaWRsCkBAIC0yNCw2ICsyNCw3IEBACiAg
Ki8KIAogWwotICAgIENvbmRpdGlvbmFsPVdFQkdMCisgICAgQ29uZGl0aW9uYWw9V0VCR0wyLAor
ICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR0wyCiBdIGludGVyZmFjZSBXZWJHTFRyYW5zZm9ybUZl
ZWRiYWNrIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCmluZGV4IDQ2Zjc1
MmM1ZjQxMzE5MWUzNGJhMzdiNmM0MThkOTYzMzQ3Mzc0MDcuLjQ3NWM0OTkwZDAzMjMxM2Q3MzAy
MTQ1MDgwOTMwODA0NzczNjMyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3Bw
CkBAIC0xOTI5LDcgKzE5MjksMTAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6ZHJh
d0VsZW1lbnRzSW5zdGFuY2VkKEdDR0xlbnVtIG1vZGUsIEdDR0xzaXplaSBjb3UKIAogdm9pZCBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6dmVydGV4QXR0cmliRGl2aXNvcihHQ0dMdWludCBpbmRl
eCwgR0NHTHVpbnQgZGl2aXNvcikKIHsKLSAgICBnZXRFeHRlbnNpb25zKCkudmVydGV4QXR0cmli
RGl2aXNvcihpbmRleCwgZGl2aXNvcik7CisgICAgaWYgKG1faXNGb3JXZWJHTDIpCisgICAgICAg
IGdsOjpWZXJ0ZXhBdHRyaWJEaXZpc29yKGluZGV4LCBkaXZpc29yKTsKKyAgICBlbHNlCisgICAg
ICAgIGdldEV4dGVuc2lvbnMoKS52ZXJ0ZXhBdHRyaWJEaXZpc29yKGluZGV4LCBkaXZpc29yKTsK
IH0KIAogR0NHTHVpbnQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmdldFVuaWZvcm1CbG9ja0lu
ZGV4KFBsYXRmb3JtR0xPYmplY3QgcHJvZ3JhbSwgY29uc3QgU3RyaW5nJiB1bmlmb3JtQmxvY2tO
YW1lKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3Jl
bmRlcmluZy9pbnN0YW5jZWQtYXJyYXlzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvaW5zdGFuY2VkLWFycmF5cy1leHBlY3RlZC50
eHQKaW5kZXggYTExZGQ3N2YzNGE1ZTAxMzNjNzc2NThhMmY3MDJhNzFiMzFlYzgyOS4uYmVmNjkw
MWJmZDY1NGU2Njc3YTVjNjM1MDVhMjAzNWYwMzM5NmFkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3JlbmRlcmluZy9pbnN0YW5jZWQtYXJyYXlzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvcmVu
ZGVyaW5nL2luc3RhbmNlZC1hcnJheXMtZXhwZWN0ZWQudHh0CkBAIC0xLDU3ICsxLDUgQEAKIFRo
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLgogCiBUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2luc3RhbmNlZC1hcnJheXMuaHRtbAotWyAx
OiBQQVNTIF0gV2ViR0wgY29udGV4dCBleGlzdHMKLVsgMjogUEFTUyBdIGdsLlZFUlRFWF9BVFRS
SUJfQVJSQVlfRElWSVNPUiBpcyAweDg4RkUKLVsgMzogUEFTUyBdIFZlcnRleCBhdHRyaWJ1dGUg
MCBtdXN0IGhhcyBhIGRlZmF1bHQgZGl2aXNvciBvZiAwCi1bIDQ6IFBBU1MgXSBWZXJ0ZXggYXR0
cmlidXRlIDEgbXVzdCBoYXMgYSBkZWZhdWx0IGRpdmlzb3Igb2YgMAotWyA1OiBQQVNTIF0gVmVy
dGV4IGF0dHJpYnV0ZSAyIG11c3QgaGFzIGEgZGVmYXVsdCBkaXZpc29yIG9mIDAKLVsgNjogUEFT
UyBdIFZlcnRleCBhdHRyaWJ1dGUgMyBtdXN0IGhhcyBhIGRlZmF1bHQgZGl2aXNvciBvZiAwCi1b
IDc6IFBBU1MgXSBWZXJ0ZXggYXR0cmlidXRlIDQgbXVzdCBoYXMgYSBkZWZhdWx0IGRpdmlzb3Ig
b2YgMAotWyA4OiBQQVNTIF0gVmVydGV4IGF0dHJpYnV0ZSA1IG11c3QgaGFzIGEgZGVmYXVsdCBk
aXZpc29yIG9mIDAKLVsgOTogUEFTUyBdIFZlcnRleCBhdHRyaWJ1dGUgNiBtdXN0IGhhcyBhIGRl
ZmF1bHQgZGl2aXNvciBvZiAwCi1bIDEwOiBQQVNTIF0gVmVydGV4IGF0dHJpYnV0ZSA3IG11c3Qg
aGFzIGEgZGVmYXVsdCBkaXZpc29yIG9mIDAKLVsgMTE6IFBBU1MgXSBWZXJ0ZXggYXR0cmlidXRl
IDggbXVzdCBoYXMgYSBkZWZhdWx0IGRpdmlzb3Igb2YgMAotWyAxMjogUEFTUyBdIFZlcnRleCBh
dHRyaWJ1dGUgOSBtdXN0IGhhcyBhIGRlZmF1bHQgZGl2aXNvciBvZiAwCi1bIDEzOiBQQVNTIF0g
VmVydGV4IGF0dHJpYnV0ZSAxMCBtdXN0IGhhcyBhIGRlZmF1bHQgZGl2aXNvciBvZiAwCi1bIDE0
OiBQQVNTIF0gVmVydGV4IGF0dHJpYnV0ZSAxMSBtdXN0IGhhcyBhIGRlZmF1bHQgZGl2aXNvciBv
ZiAwCi1bIDE1OiBQQVNTIF0gVmVydGV4IGF0dHJpYnV0ZSAxMiBtdXN0IGhhcyBhIGRlZmF1bHQg
ZGl2aXNvciBvZiAwCi1bIDE2OiBQQVNTIF0gVmVydGV4IGF0dHJpYnV0ZSAxMyBtdXN0IGhhcyBh
IGRlZmF1bHQgZGl2aXNvciBvZiAwCi1bIDE3OiBQQVNTIF0gVmVydGV4IGF0dHJpYnV0ZSAxNCBt
dXN0IGhhcyBhIGRlZmF1bHQgZGl2aXNvciBvZiAwCi1bIDE4OiBQQVNTIF0gVmVydGV4IGF0dHJp
YnV0ZSAxNSBtdXN0IGhhcyBhIGRlZmF1bHQgZGl2aXNvciBvZiAwCi1bIDE5OiBQQVNTIF0gZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFIDogdmVydGV4QXR0cmliRGl2
aXNvciBpbmRleCBzZXQgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIE1BWF9WRVJURVhfQVRUUklC
UyBzaG91bGQgYmUgYW4gaW52YWxpZCB2YWx1ZQotWyAyMDogRkFJTCBdIGdldEVycm9yIGV4cGVj
dGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURfT1BFUkFUSU9OIDogdmVydGV4QXR0cmliRGl2aXNv
ciBpbmRleCBzZXQgbGVzcyB0aGFuIE1BWF9WRVJURVhfQVRUUklCUyBzaG91bGQgc3VjY2VlZAot
WyAyMTogUEFTUyBdIFNldCB2YWx1ZSBvZiBWRVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1IgbWF0
Y2hlcyBleHBlY2F0aW9uCi1bIDIyOiBGQUlMIF0gc2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgw
LCAyNSkgZXhwZWN0ZWQ6IDI1NSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDIzOiBGQUlMIF0gc2hv
dWxkIGJlIDAsMjU1LDAsMjU1IGF0ICgyNSwgMjUpIGV4cGVjdGVkOiAwLDI1NSwwLDI1NSB3YXMg
MCwwLDAsMAotWyAyNDogRkFJTCBdIHNob3VsZCBiZSAwLDAsMjU1LDI1NSBhdCAoMCwgMCkgZXhw
ZWN0ZWQ6IDAsMCwyNTUsMjU1IHdhcyAwLDAsMCwwCi1bIDI1OiBGQUlMIF0gc2hvdWxkIGJlIDI1
NSwyNTUsMCwyNTUgYXQgKDI1LCAwKSBleHBlY3RlZDogMjU1LDI1NSwwLDI1NSB3YXMgMCwwLDAs
MAotWyAyNjogRkFJTCBdIGdldEVycm9yIGV4cGVjdGVkOiBJTlZBTElEX1ZBTFVFLiBXYXMgSU5W
QUxJRF9PUEVSQVRJT04gOiBkcmF3QXJyYXlzSW5zdGFuY2VkIGNhbm5vdCBoYXZlIGEgcHJpbWNv
dW50IGxlc3MgdGhhbiAwCi1bIDI3OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX1ZBTFVFIDogZHJhd0FycmF5c0luc3RhbmNlZCBjYW5ub3QgaGF2ZSBhIGNvdW50
IGxlc3MgdGhhbiAwCi1bIDI4OiBGQUlMIF0gZ2V0RXJyb3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBX
YXMgSU5WQUxJRF9PUEVSQVRJT04gOiBJdCdzIGFsbG93ZWQgZm9yIGFsbCB2ZXJ0ZXggYXR0cmli
dXRlcyB0byBoYXZlIG5vbi16ZXJvIGRpdmlzb3JzIHdoZW4gY2FsbGluZyBkcmF3QXJyYXlzSW5z
dGFuY2VkCi1bIDI5OiBGQUlMIF0gZ2V0RXJyb3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMgSU5W
QUxJRF9PUEVSQVRJT04gOiBkcmF3QXJyYXlzSW5zdGFuY2VkIHdpdGggUE9JTlRTIHNob3VsZCBz
dWNjZWVkCi1bIDMwOiBGQUlMIF0gZ2V0RXJyb3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMgSU5W
QUxJRF9PUEVSQVRJT04gOiBkcmF3QXJyYXlzSW5zdGFuY2VkIHdpdGggTElORVMgc2hvdWxkIHN1
Y2NlZWQKLVsgMzE6IEZBSUwgXSBnZXRFcnJvciBleHBlY3RlZDogTk9fRVJST1IuIFdhcyBJTlZB
TElEX09QRVJBVElPTiA6IGRyYXdBcnJheXNJbnN0YW5jZWQgd2l0aCBMSU5FX0xJU1Qgc2hvdWxk
IHJldHVybiBzdWNjZWVkCi1bIDMyOiBGQUlMIF0gZ2V0RXJyb3IgZXhwZWN0ZWQ6IE5PX0VSUk9S
LiBXYXMgSU5WQUxJRF9PUEVSQVRJT04gOiBkcmF3QXJyYXlzSW5zdGFuY2VkIHdpdGggVFJJX0xJ
U1Qgc2hvdWxkIHN1Y2NlZWQKLVsgMzM6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfRU5VTSA6IGRyYXdBcnJheXNJbnN0YW5jZWQgd2l0aCBRVUFEX1NUUklQIHNo
b3VsZCByZXR1cm4gSU5WQUxJRF9FTlVNCi1bIDM0OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0VOVU0gOiBkcmF3QXJyYXlzSW5zdGFuY2VkIHdpdGggUVVBRFMg
c2hvdWxkIHJldHVybiBJTlZBTElEX0VOVU0KLVsgMzU6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfRU5VTSA6IGRyYXdBcnJheXNJbnN0YW5jZWQgd2l0aCBQT0xZ
R09OIHNob3VsZCByZXR1cm4gSU5WQUxJRF9FTlVNCi1bIDM2OiBGQUlMIF0gc2hvdWxkIGJlIDI1
NSwwLDAsMjU1IGF0ICgwLCAyNSkgZXhwZWN0ZWQ6IDI1NSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1b
IDM3OiBGQUlMIF0gc2hvdWxkIGJlIDAsMjU1LDAsMjU1IGF0ICgyNSwgMjUpIGV4cGVjdGVkOiAw
LDI1NSwwLDI1NSB3YXMgMCwwLDAsMAotWyAzODogRkFJTCBdIHNob3VsZCBiZSAwLDAsMjU1LDI1
NSBhdCAoMCwgMCkgZXhwZWN0ZWQ6IDAsMCwyNTUsMjU1IHdhcyAwLDAsMCwwCi1bIDM5OiBGQUlM
IF0gc2hvdWxkIGJlIDI1NSwyNTUsMCwyNTUgYXQgKDI1LCAwKSBleHBlY3RlZDogMjU1LDI1NSww
LDI1NSB3YXMgMCwwLDAsMAotWyA0MDogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogSU5WQUxJRF9WQUxVRSA6IGRyYXdFbGVtZW50c0luc3RhbmNlZCBjYW5ub3QgaGF2ZSBhIHBy
aW1jb3VudCBsZXNzIHRoYW4gMAotWyA0MTogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9WQUxVRSA6IGRyYXdFbGVtZW50c0luc3RhbmNlZCBjYW5ub3QgaGF2ZSBh
IGNvdW50IGxlc3MgdGhhbiAwCi1bIDQyOiBGQUlMIF0gZ2V0RXJyb3IgZXhwZWN0ZWQ6IE5PX0VS
Uk9SLiBXYXMgSU5WQUxJRF9PUEVSQVRJT04gOiBJdCdzIGFsbG93ZWQgZm9yIGFsbCB2ZXJ0ZXgg
YXR0cmlidXRlcyB0byBoYXZlIG5vbi16ZXJvIGRpdmlzb3JzIHdoZW4gY2FsbGluZyBkcmF3RWxl
bWVudHNJbnN0YW5jZWQKLVsgNDM6IEZBSUwgXSBnZXRFcnJvciBleHBlY3RlZDogTk9fRVJST1Iu
IFdhcyBJTlZBTElEX09QRVJBVElPTiA6IGRyYXdFbGVtZW50c0luc3RhbmNlZCB3aXRoIFVOU0lH
TkVEX0JZVEUgc2hvdWxkIHN1Y2NlZWQKLVsgNDQ6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogZHJhd0VsZW1lbnRzSW5zdGFuY2VkIHdpdGggUE9JTlRTIHNo
b3VsZCBzdWNjZWVkCi1bIDQ1OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IGRyYXdFbGVtZW50c0luc3RhbmNlZCB3aXRoIExJTkVTIHNob3VsZCBzdWNjZWVk
Ci1bIDQ2OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGRy
YXdFbGVtZW50c0luc3RhbmNlZCB3aXRoIExJTkVfTElTVCBzaG91bGQgcmV0dXJuIHN1Y2NlZWQK
LVsgNDc6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogZHJh
d0VsZW1lbnRzSW5zdGFuY2VkIHdpdGggVFJJX0xJU1Qgc2hvdWxkIHN1Y2NlZWQKLVsgNDg6IFBB
U1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRU5VTSA6IGRyYXdFbGVt
ZW50c0luc3RhbmNlZCB3aXRoIFFVQURfU1RSSVAgc2hvdWxkIHJldHVybiBJTlZBTElEX0VOVU0K
LVsgNDk6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRU5VTSA6
IGRyYXdFbGVtZW50c0luc3RhbmNlZCB3aXRoIFFVQURTIHNob3VsZCByZXR1cm4gSU5WQUxJRF9F
TlVNCi1bIDUwOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0VO
VU0gOiBkcmF3RWxlbWVudHNJbnN0YW5jZWQgd2l0aCBQT0xZR09OIHNob3VsZCByZXR1cm4gSU5W
QUxJRF9FTlVNCi1bIDUxOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IHRoZXJlIHNob3VsZCBiZSBubyBlcnJvcnMKLVsgNTI6IFBBU1MgXSBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotWyBGQUlMIF0gMTcgZmFpbHVyZXMgcmVwb3J0ZWQKK1sgUEFTUyBd
IEFsbCB0ZXN0cyBwYXNzZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL3JlbmRlcmluZy9pbnN0YW5jZWQtcmVuZGVyaW5nLWJ1Zy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2luc3Rh
bmNlZC1yZW5kZXJpbmctYnVnLWV4cGVjdGVkLnR4dAppbmRleCAzMWU2OWM2YTU1YzhjMGE1ZjMw
ZTA3NmYzYjg3NzA5ODA3ODNmMDVlLi43ZjZlYjZlNjc4MmYxM2U2NjY4MjZjMWRkMDEzZWYwODY5
YzhlY2MxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
cmVuZGVyaW5nL2luc3RhbmNlZC1yZW5kZXJpbmctYnVnLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvcmVuZGVyaW5nL2luc3RhbmNlZC1yZW5k
ZXJpbmctYnVnLWV4cGVjdGVkLnR4dApAQCAtMSw4NyArMSw1IEBACiBUaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC4KIAogVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UyL3JlbmRlcmluZy9pbnN0YW5jZWQtcmVuZGVyaW5nLWJ1Zy5odG1sCi1bIDE6IFBBU1Mg
XSBXZWJHTCBjb250ZXh0IGV4aXN0cwotWyAyOiBQQVNTIF0gU2V0IHVwIHByb2dyYW0gc3VjY2Vl
ZGVkCi1bIDM6IEZBSUwgXSBnZXRFcnJvciBleHBlY3RlZDogTk9fRVJST1IuIFdhcyBJTlZBTElE
X09QRVJBVElPTiA6IGRyYXdBcnJheXNJbnN0YW5jZWQgc2hvdWxkIHN1Y2NlZWQKLVsgNDogRkFJ
TCBdIGluc3RhbmNlIDAgc2hvdWxkIGJlIDEyNywwLDAsMjU1IGF0ICgxLCAwKSBleHBlY3RlZDog
MTI3LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgNTogRkFJTCBdIGluc3RhbmNlIDEgc2hvdWxkIGJl
IDEyNywwLDAsMjU1IGF0ICgzOCwgMCkgZXhwZWN0ZWQ6IDEyNywwLDAsMjU1IHdhcyAwLDAsMCww
Ci1bIDY6IEZBSUwgXSBpbnN0YW5jZSAyIHNob3VsZCBiZSAxMjcsMCwwLDI1NSBhdCAoNzYsIDAp
IGV4cGVjdGVkOiAxMjcsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA3OiBGQUlMIF0gaW5zdGFuY2Ug
MyBzaG91bGQgYmUgMTI3LDAsMCwyNTUgYXQgKDExMywgMCkgZXhwZWN0ZWQ6IDEyNywwLDAsMjU1
IHdhcyAwLDAsMCwwCi1bIDg6IEZBSUwgXSBpbnN0YW5jZSA0IHNob3VsZCBiZSAyNTUsMCwwLDI1
NSBhdCAoMTUxLCAwKSBleHBlY3RlZDogMjU1LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgOTogRkFJ
TCBdIGluc3RhbmNlIDUgc2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgxODgsIDApIGV4cGVjdGVk
OiAyNTUsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAxMDogRkFJTCBdIGluc3RhbmNlIDYgc2hvdWxk
IGJlIDI1NSwwLDAsMjU1IGF0ICgyMjYsIDApIGV4cGVjdGVkOiAyNTUsMCwwLDI1NSB3YXMgMCww
LDAsMAotWyAxMTogRkFJTCBdIGluc3RhbmNlIDcgc2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgy
NjMsIDApIGV4cGVjdGVkOiAyNTUsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAxMjogUEFTUyBdIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBjbGVhbiB1cCBzaG91bGQgc3Vj
Y2VlZAotWyAxMzogUEFTUyBdIFNldCB1cCBwcm9ncmFtIHN1Y2NlZWRlZAotWyAxNDogRkFJTCBd
IGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURfT1BFUkFUSU9OIDogZHJh
d0FycmF5c0luc3RhbmNlZCBzaG91bGQgc3VjY2VlZAotWyAxNTogRkFJTCBdIGluc3RhbmNlIDAg
c2hvdWxkIGJlIDEwMiwwLDAsMjU1IGF0ICgxLCAwKSBleHBlY3RlZDogMTAyLDAsMCwyNTUgd2Fz
IDAsMCwwLDAKLVsgMTY6IEZBSUwgXSBpbnN0YW5jZSAxIHNob3VsZCBiZSAxMDIsMCwwLDI1NSBh
dCAoNTEsIDApIGV4cGVjdGVkOiAxMDIsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAxNzogRkFJTCBd
IGluc3RhbmNlIDIgc2hvdWxkIGJlIDEwMiwwLDAsMjU1IGF0ICgxMDEsIDApIGV4cGVjdGVkOiAx
MDIsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAxODogRkFJTCBdIGluc3RhbmNlIDMgc2hvdWxkIGJl
IDEwMiwwLDAsMjU1IGF0ICgxNTEsIDApIGV4cGVjdGVkOiAxMDIsMCwwLDI1NSB3YXMgMCwwLDAs
MAotWyAxOTogRkFJTCBdIGluc3RhbmNlIDQgc2hvdWxkIGJlIDIwNCwwLDAsMjU1IGF0ICgyMDEs
IDApIGV4cGVjdGVkOiAyMDQsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAyMDogRkFJTCBdIGluc3Rh
bmNlIDUgc2hvdWxkIGJlIDIwNCwwLDAsMjU1IGF0ICgyNTEsIDApIGV4cGVjdGVkOiAyMDQsMCww
LDI1NSB3YXMgMCwwLDAsMAotWyAyMTogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiBjbGVhbiB1cCBzaG91bGQgc3VjY2VlZAotWyAyMjogUEFTUyBdIFNldCB1
cCBwcm9ncmFtIHN1Y2NlZWRlZAotWyAyMzogRkFJTCBdIGdldEVycm9yIGV4cGVjdGVkOiBOT19F
UlJPUi4gV2FzIElOVkFMSURfT1BFUkFUSU9OIDogZHJhd0FycmF5c0luc3RhbmNlZCBzaG91bGQg
c3VjY2VlZAotWyAyNDogRkFJTCBdIGluc3RhbmNlIDAgc2hvdWxkIGJlIDEyNywwLDAsMjU1IGF0
ICgxLCAwKSBleHBlY3RlZDogMTI3LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgMjU6IEZBSUwgXSBp
bnN0YW5jZSAxIHNob3VsZCBiZSAxMjcsMCwwLDI1NSBhdCAoNTEsIDApIGV4cGVjdGVkOiAxMjcs
MCwwLDI1NSB3YXMgMCwwLDAsMAotWyAyNjogRkFJTCBdIGluc3RhbmNlIDIgc2hvdWxkIGJlIDEy
NywwLDAsMjU1IGF0ICgxMDEsIDApIGV4cGVjdGVkOiAxMjcsMCwwLDI1NSB3YXMgMCwwLDAsMAot
WyAyNzogRkFJTCBdIGluc3RhbmNlIDMgc2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgxNTEsIDAp
IGV4cGVjdGVkOiAyNTUsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAyODogRkFJTCBdIGluc3RhbmNl
IDQgc2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgyMDEsIDApIGV4cGVjdGVkOiAyNTUsMCwwLDI1
NSB3YXMgMCwwLDAsMAotWyAyOTogRkFJTCBdIGluc3RhbmNlIDUgc2hvdWxkIGJlIDI1NSwwLDAs
MjU1IGF0ICgyNTEsIDApIGV4cGVjdGVkOiAyNTUsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyAzMDog
UEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBjbGVhbiB1cCBz
aG91bGQgc3VjY2VlZAotWyAzMTogUEFTUyBdIFNldCB1cCBwcm9ncmFtIHN1Y2NlZWRlZAotWyAz
MjogRkFJTCBdIGdldEVycm9yIGV4cGVjdGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURfT1BFUkFU
SU9OIDogZHJhd0FycmF5c0luc3RhbmNlZCBzaG91bGQgc3VjY2VlZAotWyAzMzogRkFJTCBdIGlu
c3RhbmNlIDAgc2hvdWxkIGJlIDY5LDAsMCwyNTUgYXQgKDEsIDApIGV4cGVjdGVkOiA2OSwwLDAs
MjU1IHdhcyAwLDAsMCwwCi1bIDM0OiBGQUlMIF0gaW5zdGFuY2UgMSBzaG91bGQgYmUgNjksMCww
LDI1NSBhdCAoMzgsIDApIGV4cGVjdGVkOiA2OSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDM1OiBG
QUlMIF0gaW5zdGFuY2UgMiBzaG91bGQgYmUgNjksMCwwLDI1NSBhdCAoNzYsIDApIGV4cGVjdGVk
OiA2OSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDM2OiBGQUlMIF0gaW5zdGFuY2UgMyBzaG91bGQg
YmUgMTM5LDAsMCwyNTUgYXQgKDExMywgMCkgZXhwZWN0ZWQ6IDEzOSwwLDAsMjU1IHdhcyAwLDAs
MCwwCi1bIDM3OiBGQUlMIF0gaW5zdGFuY2UgNCBzaG91bGQgYmUgMTM5LDAsMCwyNTUgYXQgKDE1
MSwgMCkgZXhwZWN0ZWQ6IDEzOSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDM4OiBGQUlMIF0gaW5z
dGFuY2UgNSBzaG91bGQgYmUgMTM5LDAsMCwyNTUgYXQgKDE4OCwgMCkgZXhwZWN0ZWQ6IDEzOSww
LDAsMjU1IHdhcyAwLDAsMCwwCi1bIDM5OiBGQUlMIF0gaW5zdGFuY2UgNiBzaG91bGQgYmUgMjA4
LDAsMCwyNTUgYXQgKDIyNiwgMCkgZXhwZWN0ZWQ6IDIwOCwwLDAsMjU1IHdhcyAwLDAsMCwwCi1b
IDQwOiBGQUlMIF0gaW5zdGFuY2UgNyBzaG91bGQgYmUgMjA4LDAsMCwyNTUgYXQgKDI2MywgMCkg
ZXhwZWN0ZWQ6IDIwOCwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDQxOiBQQVNTIF0gZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGNsZWFuIHVwIHNob3VsZCBzdWNjZWVkCi1b
IDQyOiBQQVNTIF0gU2V0IHVwIHByb2dyYW0gc3VjY2VlZGVkCi1bIDQzOiBGQUlMIF0gZ2V0RXJy
b3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMgSU5WQUxJRF9PUEVSQVRJT04gOiBkcmF3RWxlbWVu
dHNJbnN0YW5jZWQgc2hvdWxkIHN1Y2NlZWQKLVsgNDQ6IEZBSUwgXSBpbnN0YW5jZSAwIHNob3Vs
ZCBiZSAxMjcsMCwwLDI1NSBhdCAoMSwgMCkgZXhwZWN0ZWQ6IDEyNywwLDAsMjU1IHdhcyAwLDAs
MCwwCi1bIDQ1OiBGQUlMIF0gaW5zdGFuY2UgMSBzaG91bGQgYmUgMTI3LDAsMCwyNTUgYXQgKDM4
LCAwKSBleHBlY3RlZDogMTI3LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgNDY6IEZBSUwgXSBpbnN0
YW5jZSAyIHNob3VsZCBiZSAxMjcsMCwwLDI1NSBhdCAoNzYsIDApIGV4cGVjdGVkOiAxMjcsMCww
LDI1NSB3YXMgMCwwLDAsMAotWyA0NzogRkFJTCBdIGluc3RhbmNlIDMgc2hvdWxkIGJlIDEyNyww
LDAsMjU1IGF0ICgxMTMsIDApIGV4cGVjdGVkOiAxMjcsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA0
ODogRkFJTCBdIGluc3RhbmNlIDQgc2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgxNTEsIDApIGV4
cGVjdGVkOiAyNTUsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA0OTogRkFJTCBdIGluc3RhbmNlIDUg
c2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgxODgsIDApIGV4cGVjdGVkOiAyNTUsMCwwLDI1NSB3
YXMgMCwwLDAsMAotWyA1MDogRkFJTCBdIGluc3RhbmNlIDYgc2hvdWxkIGJlIDI1NSwwLDAsMjU1
IGF0ICgyMjYsIDApIGV4cGVjdGVkOiAyNTUsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA1MTogRkFJ
TCBdIGluc3RhbmNlIDcgc2hvdWxkIGJlIDI1NSwwLDAsMjU1IGF0ICgyNjMsIDApIGV4cGVjdGVk
OiAyNTUsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA1MjogUEFTUyBdIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiBjbGVhbiB1cCBzaG91bGQgc3VjY2VlZAotWyA1MzogUEFT
UyBdIFNldCB1cCBwcm9ncmFtIHN1Y2NlZWRlZAotWyA1NDogRkFJTCBdIGdldEVycm9yIGV4cGVj
dGVkOiBOT19FUlJPUi4gV2FzIElOVkFMSURfT1BFUkFUSU9OIDogZHJhd0VsZW1lbnRzSW5zdGFu
Y2VkIHNob3VsZCBzdWNjZWVkCi1bIDU1OiBGQUlMIF0gaW5zdGFuY2UgMCBzaG91bGQgYmUgMTAy
LDAsMCwyNTUgYXQgKDEsIDApIGV4cGVjdGVkOiAxMDIsMCwwLDI1NSB3YXMgMCwwLDAsMAotWyA1
NjogRkFJTCBdIGluc3RhbmNlIDEgc2hvdWxkIGJlIDEwMiwwLDAsMjU1IGF0ICg1MSwgMCkgZXhw
ZWN0ZWQ6IDEwMiwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDU3OiBGQUlMIF0gaW5zdGFuY2UgMiBz
aG91bGQgYmUgMTAyLDAsMCwyNTUgYXQgKDEwMSwgMCkgZXhwZWN0ZWQ6IDEwMiwwLDAsMjU1IHdh
cyAwLDAsMCwwCi1bIDU4OiBGQUlMIF0gaW5zdGFuY2UgMyBzaG91bGQgYmUgMTAyLDAsMCwyNTUg
YXQgKDE1MSwgMCkgZXhwZWN0ZWQ6IDEwMiwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDU5OiBGQUlM
IF0gaW5zdGFuY2UgNCBzaG91bGQgYmUgMjA0LDAsMCwyNTUgYXQgKDIwMSwgMCkgZXhwZWN0ZWQ6
IDIwNCwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDYwOiBGQUlMIF0gaW5zdGFuY2UgNSBzaG91bGQg
YmUgMjA0LDAsMCwyNTUgYXQgKDI1MSwgMCkgZXhwZWN0ZWQ6IDIwNCwwLDAsMjU1IHdhcyAwLDAs
MCwwCi1bIDYxOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IGNsZWFuIHVwIHNob3VsZCBzdWNjZWVkCi1bIDYyOiBQQVNTIF0gU2V0IHVwIHByb2dyYW0gc3Vj
Y2VlZGVkCi1bIDYzOiBGQUlMIF0gZ2V0RXJyb3IgZXhwZWN0ZWQ6IE5PX0VSUk9SLiBXYXMgSU5W
QUxJRF9PUEVSQVRJT04gOiBkcmF3RWxlbWVudHNJbnN0YW5jZWQgc2hvdWxkIHN1Y2NlZWQKLVsg
NjQ6IEZBSUwgXSBpbnN0YW5jZSAwIHNob3VsZCBiZSAxMjcsMCwwLDI1NSBhdCAoMSwgMCkgZXhw
ZWN0ZWQ6IDEyNywwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDY1OiBGQUlMIF0gaW5zdGFuY2UgMSBz
aG91bGQgYmUgMTI3LDAsMCwyNTUgYXQgKDUxLCAwKSBleHBlY3RlZDogMTI3LDAsMCwyNTUgd2Fz
IDAsMCwwLDAKLVsgNjY6IEZBSUwgXSBpbnN0YW5jZSAyIHNob3VsZCBiZSAxMjcsMCwwLDI1NSBh
dCAoMTAxLCAwKSBleHBlY3RlZDogMTI3LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgNjc6IEZBSUwg
XSBpbnN0YW5jZSAzIHNob3VsZCBiZSAyNTUsMCwwLDI1NSBhdCAoMTUxLCAwKSBleHBlY3RlZDog
MjU1LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgNjg6IEZBSUwgXSBpbnN0YW5jZSA0IHNob3VsZCBi
ZSAyNTUsMCwwLDI1NSBhdCAoMjAxLCAwKSBleHBlY3RlZDogMjU1LDAsMCwyNTUgd2FzIDAsMCww
LDAKLVsgNjk6IEZBSUwgXSBpbnN0YW5jZSA1IHNob3VsZCBiZSAyNTUsMCwwLDI1NSBhdCAoMjUx
LCAwKSBleHBlY3RlZDogMjU1LDAsMCwyNTUgd2FzIDAsMCwwLDAKLVsgNzA6IFBBU1MgXSBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogY2xlYW4gdXAgc2hvdWxkIHN1Y2Nl
ZWQKLVsgNzE6IFBBU1MgXSBTZXQgdXAgcHJvZ3JhbSBzdWNjZWVkZWQKLVsgNzI6IEZBSUwgXSBn
ZXRFcnJvciBleHBlY3RlZDogTk9fRVJST1IuIFdhcyBJTlZBTElEX09QRVJBVElPTiA6IGRyYXdF
bGVtZW50c0luc3RhbmNlZCBzaG91bGQgc3VjY2VlZAotWyA3MzogRkFJTCBdIGluc3RhbmNlIDAg
c2hvdWxkIGJlIDY5LDAsMCwyNTUgYXQgKDEsIDApIGV4cGVjdGVkOiA2OSwwLDAsMjU1IHdhcyAw
LDAsMCwwCi1bIDc0OiBGQUlMIF0gaW5zdGFuY2UgMSBzaG91bGQgYmUgNjksMCwwLDI1NSBhdCAo
MzgsIDApIGV4cGVjdGVkOiA2OSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDc1OiBGQUlMIF0gaW5z
dGFuY2UgMiBzaG91bGQgYmUgNjksMCwwLDI1NSBhdCAoNzYsIDApIGV4cGVjdGVkOiA2OSwwLDAs
MjU1IHdhcyAwLDAsMCwwCi1bIDc2OiBGQUlMIF0gaW5zdGFuY2UgMyBzaG91bGQgYmUgMTM5LDAs
MCwyNTUgYXQgKDExMywgMCkgZXhwZWN0ZWQ6IDEzOSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDc3
OiBGQUlMIF0gaW5zdGFuY2UgNCBzaG91bGQgYmUgMTM5LDAsMCwyNTUgYXQgKDE1MSwgMCkgZXhw
ZWN0ZWQ6IDEzOSwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDc4OiBGQUlMIF0gaW5zdGFuY2UgNSBz
aG91bGQgYmUgMTM5LDAsMCwyNTUgYXQgKDE4OCwgMCkgZXhwZWN0ZWQ6IDEzOSwwLDAsMjU1IHdh
cyAwLDAsMCwwCi1bIDc5OiBGQUlMIF0gaW5zdGFuY2UgNiBzaG91bGQgYmUgMjA4LDAsMCwyNTUg
YXQgKDIyNiwgMCkgZXhwZWN0ZWQ6IDIwOCwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDgwOiBGQUlM
IF0gaW5zdGFuY2UgNyBzaG91bGQgYmUgMjA4LDAsMCwyNTUgYXQgKDI2MywgMCkgZXhwZWN0ZWQ6
IDIwOCwwLDAsMjU1IHdhcyAwLDAsMCwwCi1bIDgxOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IGNsZWFuIHVwIHNob3VsZCBzdWNjZWVkCi1bIDgyOiBQQVNT
IF0gc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLVsgRkFJTCBdIDY0IGZhaWx1cmVzIHJlcG9y
dGVkCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9zdGF0ZS9nbC1vYmplY3QtZ2V0LWNhbGxzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9zdGF0ZS9nbC1v
YmplY3QtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4dAppbmRleCA0MDg5NTU0OTQ5ZWJkMzU2NmFmNTYw
MzQzNzdkNzJlOTM0NmFjMjdkLi4xODFkYjdiOTI0ZWEyNGM0Y2ZiZGE5MmQwYmVmYTFhODQ5YTE4
MTVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvc3Rh
dGUvZ2wtb2JqZWN0LWdldC1jYWxscy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UyL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQu
dHh0CkBAIC0yNzksMTMgKzI3OSwxMyBAQCBUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0LWdldC1jYWxscy5odAogWyAyNzU6
IEZBSUwgXSBnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBF
KSBzaG91bGQgYmUgNTEyNC4gV2FzIDUxMjYuCiBbIDI3NjogRkFJTCBdIGdsLmdldFZlcnRleEF0
dHJpYigxLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0lOVEVHRVIpIHNob3VsZCBiZSB0cnVlIChv
ZiB0eXBlIGJvb2xlYW4pLiBXYXMgbnVsbCAob2YgdHlwZSBvYmplY3QpLgogWyAyNzc6IEZBSUwg
XSBnZXRFcnJvciBleHBlY3RlZDogTk9fRVJST1IuIFdhcyBJTlZBTElEX0VOVU0gOgotWyAyNzg6
IEZBSUwgXSBnZXRWZXJ0ZXhBdHRyaWIgZGlkIG5vdCBnZW5lcmF0ZSBJTlZBTElEX0VOVU0gZm9y
IGludmFsaWQgcGFyYW1ldGVyIGVudW06IE5PX0VSUk9SCi1bIDI3OTogRkFJTCBdIGdldEVycm9y
IGV4cGVjdGVkOiBJTlZBTElEX1ZBTFVFLiBXYXMgSU5WQUxJRF9FTlVNIDogYWZ0ZXIgZXZhbHVh
dGluZzogZ2wuZ2V0VmVydGV4QXR0cmliKDE2LCBnbC5DVVJSRU5UX1ZFUlRFWF9BVFRSSUIpCitb
IDI3ODogUEFTUyBdIGdldFZlcnRleEF0dHJpYiBjb3JyZWN0bHkgaGFuZGxlZCBpbnZhbGlkIHBh
cmFtZXRlciBlbnVtcworWyAyNzk6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfVkFMVUUgOiBhZnRlciBldmFsdWF0aW5nOiBnbC5nZXRWZXJ0ZXhBdHRyaWIoMTYs
IGdsLkNVUlJFTlRfVkVSVEVYX0FUVFJJQikKIFsgMjgwOiBQQVNTIF0gZ2wuZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5U
MCwgZ2wuRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSkgaXMgZ2wuTk9ORQotWyAy
ODE6IEZBSUwgXSBnZXRFcnJvciBleHBlY3RlZDogSU5WQUxJRF9PUEVSQVRJT04uIFdhcyBJTlZB
TElEX1ZBTFVFIDoKK1sgMjgxOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX09QRVJBVElPTiA6CiBbIDI4MjogUEFTUyBdIGdsLmdldEZyYW1lYnVmZmVyQXR0YWNo
bWVudFBhcmFtZXRlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuRlJB
TUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSkgaXMgZ2wuTk9ORQogWyAyODM6IFBBU1Mg
XSBnbC5nZXRWZXJ0ZXhBdHRyaWIoMSwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklO
RElORykgaXMgbnVsbAotWyAyODQ6IEZBSUwgXSBnZXRFcnJvciBleHBlY3RlZDogTk9fRVJST1Iu
IFdhcyBJTlZBTElEX09QRVJBVElPTiA6CitbIDI4NDogUEFTUyBdIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOgogWyAyODU6IFBBU1MgXSBnbC5nZXRJbnRlcm5hbGZvcm1h
dFBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlIzMkksIGdsLlNBTVBMRVMpIGlzIG5vbi1u
dWxsLgogWyAyODY6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDoKIFsgMjg3OiBQQVNTIF0gZ2V0SW50ZXJuYWxmb3JtYXRQYXJhbWV0ZXIgY29ycmVjdGx5IGhh
bmRsZWQgaW52YWxpZCB0YXJnZXQgZW51bXMKQEAgLTMxMSw1ICszMTEsNSBAQCBUZXN0OiAuLi8u
Li9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvc3RhdGUvZ2wtb2JqZWN0
LWdldC1jYWxscy5odAogWyAzMDc6IFBBU1MgXSBnZXRTYW1wbGVyUGFyYW1ldGVyIGNvcnJlY3Rs
eSBoYW5kbGVkIGludmFsaWQgcG5hbWUgZW51bXMKIFsgMzA4OiBGQUlMIF0gZ2wuZ2V0U3luY1Bh
cmFtZXRlcihzeW5jLCBnbC5PQkpFQ1RfVFlQRSkgc2hvdWxkIGJlIDM3MTQyLiBUaHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnc3luYycpIHRvIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQuZ2V0U3luY1BhcmFtZXRlciBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIFdlYkdMU3luYwog
WyAzMDk6IEZBSUwgXSBzdWNjZXNzZnVsbHlQYXJzZWQgc2hvdWxkIGJlIHRydWUgKG9mIHR5cGUg
Ym9vbGVhbikuIFdhcyB1bmRlZmluZWQgKG9mIHR5cGUgdW5kZWZpbmVkKS4KLVsgRkFJTCBdIDU4
IGZhaWx1cmVzIHJlcG9ydGVkCitbIEZBSUwgXSA1NCBmYWlsdXJlcyByZXBvcnRlZAogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvdHJhbnNmb3JtX2Zl
ZWRiYWNrL3RyYW5zZm9ybV9mZWVkYmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvdHJhbnNmb3JtX2ZlZWRiYWNrL3RyYW5zZm9ybV9mZWVkYmFj
ay1leHBlY3RlZC50eHQKaW5kZXggM2JlNTg0ODEwOTVmMjZhYWU4NTJhYWExNDA0YmQzNjE1M2Yy
ZDhhNS4uYmVlODI1ODgyZTE0MDZmZThlNDJiNTllNWI3OTRjMGUyNTZlZTRkMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL3RyYW5zZm9ybV9mZWVkYmFj
ay90cmFuc2Zvcm1fZmVlZGJhY2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi90cmFuc2Zvcm1fZmVlZGJhY2svdHJhbnNmb3JtX2ZlZWRiYWNr
LWV4cGVjdGVkLnR4dApAQCAtMSw5NiArMSw1IEBACiBUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wg
VGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4K
IAogVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL3Ry
YW5zZm9ybV9mZWVkYmFjay90cmFuc2Zvcm1fZmVlZGJhY2suaHRtbAotWyAxOiBQQVNTIF0gV2Vi
R0wgY29udGV4dCBleGlzdHMKLVsgMjogUEFTUyBdIGdsLlRSQU5TRk9STV9GRUVEQkFDS19CSU5E
SU5HIGlzIDB4OEUyNQotWyAzOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IFRSQU5TRk9STV9GRUVEQkFDS19CSU5ESU5HIHF1ZXJ5IHNob3VsZCBzdWNjZWVk
Ci1bIDQ6IFBBU1MgXSBnbC5nZXRQYXJhbWV0ZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJ
TkcpIGlzIG51bGwKLVsgNTogUEFTUyBdIGdsLmdldFBhcmFtZXRlcihnbC5UUkFOU0ZPUk1fRkVF
REJBQ0tfQklORElORykgaXMgbnVsbAotWyA2OiBQQVNTIF0gZ2wuZ2V0UGFyYW1ldGVyKGdsLlRS
QU5TRk9STV9GRUVEQkFDS19CSU5ESU5HKSBpcyB0ZgotWyA3OiBQQVNTIF0gZ2wuZ2V0UGFyYW1l
dGVyKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CSU5ESU5HKSBpcyB0ZjEKLVsgODogUEFTUyBdIGds
LmdldFBhcmFtZXRlcihnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfQklORElORykgaXMgbnVsbAotWyA5
OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6
IGJpbmRpbmcgYSBkZWxldGVkIFRyYW5zZm9ybSBGZWVkYmFjayBvYmplY3QKLVsgMTA6IFBBU1Mg
XSBnbC5nZXRQYXJhbWV0ZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJTkcpIGlzIG51bGwK
LVsgMTE6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogdGhl
cmUgc2hvdWxkIGJlIG5vIGVycm9ycwotWyAxMjogRkFJTCBdIGdsLmdldEluZGV4ZWRQYXJhbWV0
ZXIoZ2wuVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAwKSBzaG91bGQgYmUgbnVs
bC4gV2FzIFtvYmplY3QgV2ViR0xCdWZmZXJdLgotWyAxMzogUEFTUyBdIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBiaW5kaW5nIGJ1ZmZlciB0byBBUlJBWV9CVUZGRVIK
LVsgMTQ6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogY3Jl
YXRlVHJhbnNmb3JtRmVlZGJhY2sgc2hvdWxkIG5vdCBzZXQgYW4gZXJyb3IKLVsgMTU6IFBBU1Mg
XSB0ZiBpcyBub24tbnVsbC4KLVsgMTY6IFBBU1MgXSBnbC5pc1RyYW5zZm9ybUZlZWRiYWNrKHRm
KSBpcyBmYWxzZQotWyAxNzogUEFTUyBdIGdsLmlzVHJhbnNmb3JtRmVlZGJhY2sodGYpIGlzIHRy
dWUKLVsgMTg6IFBBU1MgXSBnbC5pc1RyYW5zZm9ybUZlZWRiYWNrKHRmKSBpcyB0cnVlCi1bIDE5
OiBQQVNTIF0gZ2wuaXNUcmFuc2Zvcm1GZWVkYmFjayh0ZikgaXMgZmFsc2UKLVsgMjA6IFBBU1Mg
XSBnbC5pc1RyYW5zZm9ybUZlZWRiYWNrKG51bGwpIGlzIGZhbHNlCi1bIDIxOiBQQVNTIF0gZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGxpbmtpbmcgdHJhbnNmb3JtIGZl
ZWRiYWNrIHNoYWRlciBzaG91bGQgbm90IHNldCBhbiBlcnJvcgotWyAyMjogUEFTUyBdIHByb2dy
YW0gaXMgbm9uLW51bGwuCi1bIDIzOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IGFmdGVyIGV2YWx1YXRpbmc6IGdsLmdldEJ1ZmZlclN1YkRhdGEoZ2wuVFJB
TlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgMCwgcmV0QXJyYXksIDAsIHJldEFycmF5Lmxlbmd0aCkK
LVsgMjQ6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogYWZ0
ZXIgZXZhbHVhdGluZzogZ2wuZ2V0QnVmZmVyU3ViRGF0YShnbC5UUkFOU0ZPUk1fRkVFREJBQ0tf
QlVGRkVSLCAwLCByZXRBcnJheSwgMCwgcmV0QXJyYXkubGVuZ3RoKQotWyAyNTogUEFTUyBdIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBhZnRlciBldmFs
dWF0aW5nOiBnbC5nZXRCdWZmZXJTdWJEYXRhKGdsLlRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVIs
IDAsIHJldEFycmF5LCAwLCByZXRBcnJheS5sZW5ndGgpCi1bIDI2OiBQQVNTIF0gYnVmZmVyIHNo
b3VsZCBtYXRjaCBleHBlY3RlZCB2YWx1ZXMKLVsgMjc6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogbGlua2luZyB0cmFuc2Zvcm0gZmVlZGJhY2sgc2hhZGVy
IHNob3VsZCBub3Qgc2V0IGFuIGVycm9yCi1bIDI4OiBQQVNTIF0gcHJvZ3JhbSBpcyBub24tbnVs
bC4KLVsgMjk6IFBBU1MgXSBidWZmZXIgc2hvdWxkIG1hdGNoIGV4cGVjdGVkIHZhbHVlcwotWyAz
MDogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBsaW5raW5n
IHRyYW5zZm9ybSBmZWVkYmFjayBzaGFkZXIgc2hvdWxkIG5vdCBzZXQgYW4gZXJyb3IKLVsgMzE6
IFBBU1MgXSBwcm9ncmFtIGlzIG5vbi1udWxsLgotWyAzMjogUEFTUyBdIGJ1ZmZlciBzaG91bGQg
bWF0Y2ggZXhwZWN0ZWQgdmFsdWVzCi1bIDMzOiBQQVNTIF0gYnVmZmVyIHNob3VsZCBtYXRjaCBl
eHBlY3RlZCB2YWx1ZXMKLVsgMzQ6IFBBU1MgXSBUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZF
U19XUklUVEVOIHF1ZXJ5J3MgcmVzdWx0IGRpZG4ndCBiZWNvbWUgYXZhaWxhYmxlIHRvbyBlYXJs
eQotWyAzNTogUEFTUyBdIFRSQU5TRk9STV9GRUVEQkFDS19QUklNSVRJVkVTX1dSSVRURU4gcXVl
cnkgcmV0dXJuZWQgYSBjb3JyZWN0IHJlc3VsdCAoMykKLVsgMzY6IFBBU1MgXSBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogbGlua2luZyB0cmFuc2Zvcm0gZmVlZGJhY2sg
c2hhZGVyIHNob3VsZCBub3Qgc2V0IGFuIGVycm9yCi1bIDM3OiBQQVNTIF0gcHJvZ3JhbSBpcyBu
b24tbnVsbC4KLVsgMzg6IFBBU1MgXSBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGds
LlRSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5HUykgaXMgMgotWyAzOTogUEFTUyBdIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20g
dmFsaWQgZ2V0VHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5nLgotWyA0MDogUEFTUyBdIGFjdGl2ZUlu
Zm8gaXMgbm9uLW51bGwuCi1bIDQxOiBQQVNTIF0gYWN0aXZlSW5mby5uYW1lIGlzICdvdXRfYWRk
JwotWyA0MjogUEFTUyBdIGFjdGl2ZUluZm8udHlwZSBpcyBnbC5GTE9BVF9WRUM0Ci1bIDQzOiBQ
QVNTIF0gYWN0aXZlSW5mby5zaXplIGlzIDEKLVsgNDQ6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHZhbGlkIGdl
dFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZy4KLVsgNDU6IFBBU1MgXSBhY3RpdmVJbmZvIGlzIG5v
bi1udWxsLgotWyA0NjogUEFTUyBdIGFjdGl2ZUluZm8ubmFtZSBpcyAnb3V0X211bCcKLVsgNDc6
IFBBU1MgXSBhY3RpdmVJbmZvLnR5cGUgaXMgZ2wuRkxPQVRfVkVDNAotWyA0ODogUEFTUyBdIGFj
dGl2ZUluZm8uc2l6ZSBpcyAxCi1bIDQ5OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX1ZBTFVFIDogU2hvdWxkIGJlIElOVkFMSURfVkFMVUUgd2hlbiBjYWxsaW5n
IGdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZyB3aXRoIGFuIGludmFsaWQgaW5kZXguCi1bIDUw
OiBQQVNTIF0gYWN0aXZlSW5mbyBpcyBudWxsCi1bIDUxOiBQQVNTIF0gZ2wuZ2V0UHJvZ3JhbVBh
cmFtZXRlcihwcm9ncmFtLCBnbC5UUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1MpIGlzIDIKLVsg
NTI6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogU2hvdWxk
IGJlIG5vIGVycm9ycyBmcm9tIHZhbGlkIGdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZy4KLVsg
NTM6IFBBU1MgXSBhY3RpdmVJbmZvIGlzIG5vbi1udWxsLgotWyA1NDogUEFTUyBdIGFjdGl2ZUlu
Zm8ubmFtZSBpcyAnb3V0X2FkZCcKLVsgNTU6IFBBU1MgXSBhY3RpdmVJbmZvLnR5cGUgaXMgZ2wu
RkxPQVRfVkVDNAotWyA1NjogUEFTUyBdIGFjdGl2ZUluZm8uc2l6ZSBpcyAxCi1bIDU3OiBQQVNT
IF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IFNob3VsZCBiZSBubyBl
cnJvcnMgZnJvbSB2YWxpZCBnZXRUcmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmcuCi1bIDU4OiBQQVNT
IF0gYWN0aXZlSW5mbyBpcyBub24tbnVsbC4KLVsgNTk6IFBBU1MgXSBhY3RpdmVJbmZvLm5hbWUg
aXMgJ291dF9tdWwnCi1bIDYwOiBQQVNTIF0gYWN0aXZlSW5mby50eXBlIGlzIGdsLkZMT0FUX1ZF
QzQKLVsgNjE6IFBBU1MgXSBhY3RpdmVJbmZvLnNpemUgaXMgMQotWyA2MjogUEFTUyBdIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9WQUxVRSA6IFNob3VsZCBiZSBJTlZBTElE
X1ZBTFVFIHdoZW4gY2FsbGluZyBnZXRUcmFuc2Zvcm1GZWVkYmFja1Zhcnlpbmcgd2l0aCBhbiBp
bnZhbGlkIGluZGV4LgotWyA2MzogUEFTUyBdIGFjdGl2ZUluZm8gaXMgbnVsbAotWyA2NDogUEFT
UyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiBsaW5raW5nIHRyYW5z
Zm9ybSBmZWVkYmFjayBzaGFkZXIgc2hvdWxkIG5vdCBzZXQgYW4gZXJyb3IKLVsgNjU6IFBBU1Mg
XSBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLkxJTktfU1RBVFVTKSBpcyB0cnVl
Ci1bIDY2OiBQQVNTIF0gZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5UUkFOU0ZP
Uk1fRkVFREJBQ0tfVkFSWUlOR1MpIGlzIDEKLVsgNjc6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHZhbGlkIGdl
dFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZy4KLVsgNjg6IFBBU1MgXSBhY3RpdmVJbmZvIGlzIG5v
bi1udWxsLgotWyA2OTogUEFTUyBdIGFjdGl2ZUluZm8ubmFtZSBpcyAnb3V0X211bCcKLVsgNzA6
IFBBU1MgXSBhY3RpdmVJbmZvLnR5cGUgaXMgZ2wuRkxPQVRfVkVDNAotWyA3MTogUEFTUyBdIGFj
dGl2ZUluZm8uc2l6ZSBpcyAxCi1bIDcyOiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX1ZBTFVFIDogU2hvdWxkIGJlIElOVkFMSURfVkFMVUUgd2hlbiBjYWxsaW5n
IGdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZyB3aXRoIGFuIGludmFsaWQgaW5kZXguCi1bIDcz
OiBQQVNTIF0gYWN0aXZlSW5mbyBpcyBudWxsCi1bIDc0OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVFIDogU2hvdWxkIGJlIElOVkFMSURfVkFMVUUgd2hl
biBjYWxsaW5nIGdldFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZyB3aXRoIGFuIGludmFsaWQgaW5k
ZXguCi1bIDc1OiBQQVNTIF0gYWN0aXZlSW5mbyBpcyBudWxsCi1bIDc2OiBQQVNTIF0gZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IGxpbmtpbmcgdHJhbnNmb3JtIGZlZWRi
YWNrIHNoYWRlciBzaG91bGQgbm90IHNldCBhbiBlcnJvcgotWyA3NzogUEFTUyBdIGdsLmdldFBy
b2dyYW1QYXJhbWV0ZXIocHJvZ3JhbSwgZ2wuTElOS19TVEFUVVMpIGlzIHRydWUKLVsgNzg6IFBB
U1MgXSBnbC5nZXRQcm9ncmFtUGFyYW1ldGVyKHByb2dyYW0sIGdsLlRSQU5TRk9STV9GRUVEQkFD
S19WQVJZSU5HUykgaXMgMgotWyA3OTogUEFTUyBdIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiBTaG91bGQgYmUgbm8gZXJyb3JzIGZyb20gdmFsaWQgZ2V0VHJhbnNmb3Jt
RmVlZGJhY2tWYXJ5aW5nLgotWyA4MDogUEFTUyBdIGFjdGl2ZUluZm8gaXMgbm9uLW51bGwuCi1b
IDgxOiBQQVNTIF0gYWN0aXZlSW5mby5uYW1lIGlzICdvdXRfYWRkJwotWyA4MjogUEFTUyBdIGFj
dGl2ZUluZm8udHlwZSBpcyBnbC5GTE9BVF9WRUM0Ci1bIDgzOiBQQVNTIF0gYWN0aXZlSW5mby5z
aXplIGlzIDEKLVsgODQ6IFBBU1MgXSBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogU2hvdWxkIGJlIG5vIGVycm9ycyBmcm9tIHZhbGlkIGdldFRyYW5zZm9ybUZlZWRiYWNr
VmFyeWluZy4KLVsgODU6IFBBU1MgXSBhY3RpdmVJbmZvIGlzIG5vbi1udWxsLgotWyA4NjogUEFT
UyBdIGFjdGl2ZUluZm8ubmFtZSBpcyAnb3V0X211bCcKLVsgODc6IFBBU1MgXSBhY3RpdmVJbmZv
LnR5cGUgaXMgZ2wuRkxPQVRfVkVDNAotWyA4ODogUEFTUyBdIGFjdGl2ZUluZm8uc2l6ZSBpcyAx
Ci1bIDg5OiBQQVNTIF0gZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX1ZBTFVF
IDogU2hvdWxkIGJlIElOVkFMSURfVkFMVUUgd2hlbiBjYWxsaW5nIGdldFRyYW5zZm9ybUZlZWRi
YWNrVmFyeWluZyB3aXRoIGFuIGludmFsaWQgaW5kZXguCi1bIDkwOiBQQVNTIF0gYWN0aXZlSW5m
byBpcyBudWxsCi1bIDkxOiBQQVNTIF0gc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLVsgRkFJ
TCBdIDEgZmFpbHVyZXMgcmVwb3J0ZWQKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>