<?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>214765</bug_id>
          
          <creation_ts>2020-07-24 15:34:54 -0700</creation_ts>
          <short_desc>[WebGL2] expando-loss and expando-loss-2 conformance tests are failing</short_desc>
          <delta_ts>2020-08-14 15:06:48 -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>
          <dependson>215396</dependson>
          <blocked>126404</blocked>
    
    <blocked>189641</blocked>
    
    <blocked>189672</blocked>
    
    <blocked>215394</blocked>
    
    <blocked>215433</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1674869</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-07-24 15:34:54 -0700</bug_when>
    <thetext>Per Bug 189641 and Bug 189672 the following two WebGL conformance tests are failing:

webgl/2.0.0/conformance/misc/expando-loss.html
webgl/2.0.0/conformance2/misc/expando-loss-2.html

the reason is that the WebGL rendering context maintains RefPtrs to objects which are latched into the OpenGL context state, but those implicitly retain weak pointers to their JavaScript wrappers.

https://trac.webkit.org/browser/webkit/trunk/Source/JavaScriptCore/heap/Strong.h appears to be designed to hold a strong reference to its target JavaScript object, and it is used in a select few places in WebCore - for example, https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/bindings/js/WorkerScriptController.h .

In order to fix the expando-loss failures, it seems likely that WebGLRenderingContextBase and WebGL2RenderingContext will have to retain strong references to the objects which are latched in to the context state, and which can be queried back from the context - like WebGLTextures, via bindTexture and getParameter(TEXTURE_BINDING_2D). In this case it seems the TextureUnitState will need to maintain Strong&lt;JSWebGLTexture&gt; instead of RefPtr&lt;WebGLTexture&gt;.

This will have to be carefully designed. Currently WebGLRenderingContextBase::m_contextObjects and WebGLContextGroup::m_groupObjects maintain weak downward references to all of the objects they allocated, and WebGLContextObject::m_context and WebGLSharedObject::m_contextGroup maintain weak upward references to the context which allocated them. Reference cycles must not be introduced.

A similar restructuring was done in Chromium in http://crbug.com/485634 . There was a significant bug tail associated with this change; a couple of the performance regressions were http://crbug.com/569668 and http://crbug.com/608576 . Care must be taken to not run into similar issues in WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677011</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-31 15:35:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/66401953&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678822</commentid>
    <comment_count>2</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-08-07 16:48:13 -0700</bug_when>
    <thetext>Adding Sam and Chris who might have advice here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678846</commentid>
    <comment_count>3</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-08-07 17:46:00 -0700</bug_when>
    <thetext>I see expando-loss passing. 

expando-loss-2 is failing though.

Direct link: https://www.khronos.org/registry/webgl/conformance-suites/2.0.0/conformance2/misc/expando-loss-2.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678849</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-08-07 18:02:39 -0700</bug_when>
    <thetext>Using Strong is usually not the right solution for GC problems. Rather, the bindings layer likely needs custom marking to inform the GC about the relationships. 

In most cases, this is done by using the JSCustomMarkFunction extended attribute in the IDL file, and then implementing a custom visitAdditionalChildren for the wrapper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678850</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-08-07 18:09:35 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #4)
&gt; Using Strong is usually not the right solution for GC problems. Rather, the
&gt; bindings layer likely needs custom marking to inform the GC about the
&gt; relationships. 
&gt; 
&gt; In most cases, this is done by using the JSCustomMarkFunction extended
&gt; attribute in the IDL file, and then implementing a custom
&gt; visitAdditionalChildren for the wrapper.

Alternatively, if the objects that are getting collected have references to their parents, you could fix this on their side, by marking them reachable from the WebGLRenderingContextBase. It work was done towards this for WebGL1 maybe, see     uses of GenerateIsReachable=ImplWebGLRenderingContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1678851</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-08-07 18:20:55 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)
&gt; (In reply to Sam Weinig from comment #4)
&gt; &gt; Using Strong is usually not the right solution for GC problems. Rather, the
&gt; &gt; bindings layer likely needs custom marking to inform the GC about the
&gt; &gt; relationships. 
&gt; &gt; 
&gt; &gt; In most cases, this is done by using the JSCustomMarkFunction extended
&gt; &gt; attribute in the IDL file, and then implementing a custom
&gt; &gt; visitAdditionalChildren for the wrapper.
&gt; 
&gt; Alternatively, if the objects that are getting collected have references to
&gt; their parents, you could fix this on their side, by marking them reachable
&gt; from the WebGLRenderingContextBase. It work was done towards this for WebGL1
&gt; maybe, see     uses of GenerateIsReachable=ImplWebGLRenderingContext.

Hm, no, it looks like GenerateIsReachable won&apos;t work for at least WebGLTexture, as it inherits from WebGLSharedObject, and therefore can belong to multiple contexts it seems. So the contexts will each have to mark the textures they currently own.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679160</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-10 12:42:46 -0700</bug_when>
    <thetext>Thanks very much for the tips Sam. I was going down the wrong track trying to use Strong for this purpose. It looks like extending JSWebGLRenderingContext&apos;s and JSWebGL2RenderingContext&apos;s existing visitAdditionalChildren callbacks will be both simpler and more correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679235</commentid>
    <comment_count>8</comment_count>
      <attachid>406340</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-10 16:11:48 -0700</bug_when>
    <thetext>Created attachment 406340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679239</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-10 16:13:49 -0700</bug_when>
    <thetext>This patch implements what I understood as being the needed tracing, but it doesn&apos;t work - the results produced by:

./Tools/Scripts/run-webkit-tests --debug webgl/2.0.0/conformance/misc/expando-loss.html
./Tools/Scripts/run-webkit-tests --debug webgl/2.0.0/conformance2/misc/expando-loss-2.html

are identical to what they are currently - which are failing results.

Would appreciate any advice. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679243</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-10 16:22:54 -0700</bug_when>
    <thetext>Note also - would appreciate help with the unresolved symbol JSC::SlotVisitor::addOpaqueRoot(void*) on the tv, tv-sim, watch-sim platforms. Maybe I hooked this up incorrectly, but ideally the tracing code will live inside the WebGL classes rather than the bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679245</commentid>
    <comment_count>11</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-10 16:28:24 -0700</bug_when>
    <thetext>Looks like this patch only works in Mac Debug builds - which is the flavor I was testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679287</commentid>
    <comment_count>12</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-10 18:31:50 -0700</bug_when>
    <thetext>ysuzuki@ helped me figure out what was wrong with the earlier patch - have a version that&apos;s working now. Obsoleting the old one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679306</commentid>
    <comment_count>13</comment_count>
      <attachid>406359</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-10 21:27:15 -0700</bug_when>
    <thetext>Created attachment 406359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679403</commentid>
    <comment_count>14</comment_count>
      <attachid>406359</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-11 08:45:35 -0700</bug_when>
    <thetext>Comment on attachment 406359
Patch

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

&gt; Source/WebCore/html/canvas/WebGLFramebuffer.h:38
&gt; +} // namespace JSC

Normally we reserve this kind of comment for larger namespace blocks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679431</commentid>
    <comment_count>15</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-11 09:43:13 -0700</bug_when>
    <thetext>Thanks Darin for your review and Yusuke for your help on this patch. Removing the extraneous namespace comments and CQ&apos;ing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679432</commentid>
    <comment_count>16</comment_count>
      <attachid>406387</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-11 09:43:42 -0700</bug_when>
    <thetext>Created attachment 406387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679449</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-11 10:30:00 -0700</bug_when>
    <thetext>Committed r265502: &lt;https://trac.webkit.org/changeset/265502&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406387.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679561</commentid>
    <comment_count>18</comment_count>
      <attachid>406387</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-11 14:23:36 -0700</bug_when>
    <thetext>Comment on attachment 406387
Patch

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

Commented about locking &amp; FIXME :)

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:3041
&gt; +    WebGLRenderingContextBase::visitReferencedJSWrappers(visitor);
&gt; +
&gt; +    visitor.addOpaqueRoot(m_readFramebufferBinding.get());
&gt; +    if (m_readFramebufferBinding)
&gt; +        m_readFramebufferBinding-&gt;visitReferencedJSWrappers(visitor);
&gt; +
&gt; +    visitor.addOpaqueRoot(m_boundTransformFeedback.get());
&gt; +    if (m_boundTransformFeedback)
&gt; +        m_boundTransformFeedback-&gt;visitReferencedJSWrappers(visitor);
&gt; +
&gt; +    visitor.addOpaqueRoot(m_boundCopyReadBuffer.get());
&gt; +    visitor.addOpaqueRoot(m_boundCopyWriteBuffer.get());
&gt; +    visitor.addOpaqueRoot(m_boundPixelPackBuffer.get());
&gt; +    visitor.addOpaqueRoot(m_boundPixelUnpackBuffer.get());
&gt; +    visitor.addOpaqueRoot(m_boundTransformFeedbackBuffer.get());
&gt; +    visitor.addOpaqueRoot(m_boundUniformBuffer.get());
&gt; +
&gt; +    for (auto&amp; buffer : m_boundIndexedUniformBuffers)
&gt; +        visitor.addOpaqueRoot(buffer.get());
&gt; +
&gt; +    for (auto&amp; entry : m_activeQueries)
&gt; +        visitor.addOpaqueRoot(entry.value.get());
&gt; +
&gt; +    for (auto&amp; entry : m_boundSamplers)
&gt; +        visitor.addOpaqueRoot(entry.get());

GC marking can run concurrently to the main thread. So we should have a lock when touching these fields. Can you add that?

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:3042
&gt; +}

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLBuffer.idl:28
&gt; +    GenerateIsReachable=Impl

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:145
&gt; +        visitor.addOpaqueRoot(m_renderbuffer.get());

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:267
&gt; +        visitor.addOpaqueRoot(m_texture.get());

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:708
&gt; +    for (auto&amp; entry : m_attachments)

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLFramebuffer.idl:28
&gt; +    GenerateIsReachable=Impl

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLProgram.cpp:204
&gt; +    visitor.addOpaqueRoot(m_fragmentShader.get());

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLProgram.idl:28
&gt; +    GenerateIsReachable=Impl

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLQuery.idl:28
&gt; +    GenerateIsReachable=Impl

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLRenderbuffer.idl:28
&gt; +    GenerateIsReachable=Impl

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:7798
&gt; +    visitor.addOpaqueRoot(m_boundArrayBuffer.get());
&gt; +
&gt; +    visitor.addOpaqueRoot(m_boundVertexArrayObject.get());
&gt; +    if (m_boundVertexArrayObject)
&gt; +        m_boundVertexArrayObject-&gt;visitReferencedJSWrappers(visitor);
&gt; +
&gt; +    visitor.addOpaqueRoot(m_currentProgram.get());
&gt; +    if (m_currentProgram)
&gt; +        m_currentProgram-&gt;visitReferencedJSWrappers(visitor);
&gt; +
&gt; +    visitor.addOpaqueRoot(m_framebufferBinding.get());
&gt; +    if (m_framebufferBinding)
&gt; +        m_framebufferBinding-&gt;visitReferencedJSWrappers(visitor);
&gt; +
&gt; +    visitor.addOpaqueRoot(m_renderbufferBinding.get());
&gt; +
&gt; +    for (auto&amp; unit : m_textureUnits) {
&gt; +        visitor.addOpaqueRoot(unit.texture2DBinding.get());
&gt; +        visitor.addOpaqueRoot(unit.textureCubeMapBinding.get());
&gt; +        visitor.addOpaqueRoot(unit.texture3DBinding.get());
&gt; +        visitor.addOpaqueRoot(unit.texture2DArrayBinding.get());
&gt; +    }
&gt; +
&gt; +    // Extensions&apos; IDL files use GenerateIsReachable=ImplWebGLRenderingContext,
&gt; +    // which checks to see whether the context is in the opaque root set (it is;
&gt; +    // it&apos;s added in JSWebGLRenderingContext / JSWebGL2RenderingContext&apos;s custom
&gt; +    // bindings code). For this reason it&apos;s unnecessary to explicitly add opaque
&gt; +    // roots for extensions.

We should have a lock for each access to these fields due to the reason described above.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:7799
&gt; +}

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLSampler.idl:28
&gt; +    GenerateIsReachable=Impl

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLShader.idl:28
&gt; +    GenerateIsReachable=Impl

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLTexture.idl:28
&gt; +    GenerateIsReachable=Impl

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:96
&gt; +    for (auto&amp; buffer : m_boundIndexedTransformFeedbackBuffers)
&gt; +        visitor.addOpaqueRoot(buffer.get());
&gt; +
&gt; +    visitor.addOpaqueRoot(m_program.get());

We should have a lock for each access of these fields due to the above reason.

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:98
&gt; +

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.idl:29
&gt; +    GenerateIsReachable=Impl

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLVertexArrayObject.idl:29
&gt; +    GenerateIsReachable=Impl

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp:114
&gt; +    visitor.addOpaqueRoot(m_boundElementArrayBuffer.get());
&gt; +    for (auto&amp; state : m_vertexAttribState)
&gt; +        visitor.addOpaqueRoot(state.bufferBinding.get());

Ditto. Need locking.

&gt; Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp:115
&gt; +}

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.

&gt; Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.idl:29
&gt; +    GenerateIsReachable=Impl

Can you also add FIXME to change this model to querying connected WebGLContext instead? i.e. we should not register a lot of opaque roots here, and instead, each object should have a reference to WebGLContext and say &quot;This is live if WebGLContext is live&quot;.
 This model is not good in terms of performance, and we should fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679562</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-11 14:25:33 -0700</bug_when>
    <thetext>Oops, guess I should not have done review+. Concerned about the threading issue!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679564</commentid>
    <comment_count>20</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-11 14:29:51 -0700</bug_when>
    <thetext>ysuzuki@ thanks for your review. I&apos;ll file a follow-on bug about addressing your feedback, specifically the locking issue.

However - I disagree with the idea of adding a FIXME to change &quot;GenerateIsReachable=Impl&quot; to querying the WebGL context. It would be *very* expensive to answer the question for any WebGLTexture, WebGLBuffer, etc. &quot;am I latched into the WebGL context state&quot;? That would basically mean searching through all of the latched objects that this patch currently enumerates, looking to see if it&apos;s referenced - and that would be done for *every* reachable WebGL object during GC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679574</commentid>
    <comment_count>21</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-11 14:47:06 -0700</bug_when>
    <thetext>Filed Bug 215394 about addressing ysuzuki@&apos;s review feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679582</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-08-11 15:00:25 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 215396</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679585</commentid>
    <comment_count>23</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-11 15:01:55 -0700</bug_when>
    <thetext>After discussion with ysuzuki@ on Slack, reverting the above patch in Bug 215396 because designing the locking mechanism is going to take some time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679596</commentid>
    <comment_count>24</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-11 15:17:42 -0700</bug_when>
    <thetext>Revert landed in r265523. Will re-attempt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679753</commentid>
    <comment_count>25</comment_count>
      <attachid>406462</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-12 10:05:38 -0700</bug_when>
    <thetext>Created attachment 406462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679756</commentid>
    <comment_count>26</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-12 10:08:46 -0700</bug_when>
    <thetext>ysuzuki@ could you please review this new patch? The new locking covers all of the data structures like HashMaps and Vectors which are traversed by visitAdditionalChildren and their callees, as well as mutations of RefPtrs whose contents are tested via if-tests before descending into them.

Thanks for explaining the concurrent marking to me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679842</commentid>
    <comment_count>27</comment_count>
      <attachid>406462</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-12 14:58:51 -0700</bug_when>
    <thetext>Comment on attachment 406462
Patch

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

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:698
&gt; +    LockHolder locker(m_objectGraphLock);

Use

auto locker = holdLock(m_objectGraphLock) instead.

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1847
&gt; +    LockHolder locker(objectGraphLock());

Ditto.

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1878
&gt; +    LockHolder locker(objectGraphLock());

Ditto.

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1903
&gt; +    LockHolder locker(objectGraphLock());

Ditto.

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1976
&gt; +    LockHolder locker(objectGraphLock());

Ditto.

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:2002
&gt; +    LockHolder locker(objectGraphLock());

Ditto.

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:2191
&gt; +    LockHolder locker(objectGraphLock());

Ditto.

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:2261
&gt; +    LockHolder locker(objectGraphLock());

Ditto.

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:3032
&gt; +void WebGL2RenderingContext::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)

I think we should rename this to, something like `addMembersToOpaqueRoots` because this function is not actually visiting as GC does.

&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:3033
&gt; +{

This function is not grabbing a lock.

&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:144
&gt; +    void WebGLRenderbufferAttachment::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)

Ditto.

&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:266
&gt; +    void WebGLTextureAttachment::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)

Ditto.

&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:713
&gt; +void WebGLFramebuffer::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)

Ditto.

&gt; Source/WebCore/html/canvas/WebGLProgram.cpp:202
&gt; +void WebGLProgram::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)

Ditto.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:1324
&gt; +    LockHolder locker(m_objectGraphLock);

Ditto.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:1429
&gt; +    LockHolder locker(m_objectGraphLock);

Ditto.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:1442
&gt; +    LockHolder locker(m_objectGraphLock);

Ditto.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:1457
&gt; +    LockHolder locker(m_objectGraphLock);

Ditto.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:1473
&gt; +    LockHolder locker(m_objectGraphLock);

Ditto.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:2017
&gt; +    LockHolder locker(objectGraphLock());

Ditto.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:2026
&gt; +    LockHolder locker(m_objectGraphLock);

Ditto.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:2042
&gt; +    LockHolder locker(objectGraphLock());

Ditto.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:2143
&gt; +    LockHolder locker(m_objectGraphLock);

Ditto.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:5922
&gt; +    LockHolder locker(m_objectGraphLock);

Ditto.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:5989
&gt; +    LockHolder locker(m_objectGraphLock);

Ditto.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:7795
&gt; +void WebGLRenderingContextBase::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)

Ditto.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:7797
&gt; +    LockHolder lock(m_objectGraphLock);

Ditto.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:7832
&gt; +Lock* WebGLRenderingContextBase::objectGraphLock()
&gt; +{
&gt; +    return &amp;m_objectGraphLock;
&gt; +}

Let&apos;s just return Lock&amp;.

&gt; Source/WebCore/html/canvas/WebGLSharedObject.cpp:65
&gt; +    return m_contextGroup ? m_contextGroup-&gt;objectGraphLockForAContext() : nullptr;

When it is returning nullptr, shouldn&apos;t we need to take a lock?

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:93
&gt; +void WebGLTransformFeedback::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)

Ditto.

&gt; Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp:112
&gt; +void WebGLVertexArrayObjectBase::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679876</commentid>
    <comment_count>28</comment_count>
      <attachid>406462</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-12 16:43:28 -0700</bug_when>
    <thetext>Comment on attachment 406462
Patch

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

New patch incoming which addresses this review feedback and also fixes the timing-out layout tests.

&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:698
&gt;&gt; +    LockHolder locker(m_objectGraphLock);
&gt; 
&gt; Use
&gt; 
&gt; auto locker = holdLock(m_objectGraphLock) instead.

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1847
&gt;&gt; +    LockHolder locker(objectGraphLock());
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1878
&gt;&gt; +    LockHolder locker(objectGraphLock());
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1903
&gt;&gt; +    LockHolder locker(objectGraphLock());
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:1976
&gt;&gt; +    LockHolder locker(objectGraphLock());
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:2002
&gt;&gt; +    LockHolder locker(objectGraphLock());
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:2191
&gt;&gt; +    LockHolder locker(objectGraphLock());
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:2261
&gt;&gt; +    LockHolder locker(objectGraphLock());
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:3032
&gt;&gt; +void WebGL2RenderingContext::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)
&gt; 
&gt; I think we should rename this to, something like `addMembersToOpaqueRoots` because this function is not actually visiting as GC does.

Renamed this and the related methods.

&gt;&gt; Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:3033
&gt;&gt; +{
&gt; 
&gt; This function is not grabbing a lock.

Thanks for catching that, I&apos;ll fix. WebGLRenderingContextBase::visitReferencedJSWrappers does. It wasn&apos;t clear to me whether Lock supports recursive locking or not.

&gt;&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:144
&gt;&gt; +    void WebGLRenderbufferAttachment::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)
&gt; 
&gt; Ditto.

Renamed.

&gt;&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:266
&gt;&gt; +    void WebGLTextureAttachment::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)
&gt; 
&gt; Ditto.

Renamed.

&gt;&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:713
&gt;&gt; +void WebGLFramebuffer::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)
&gt; 
&gt; Ditto.

Renamed.

&gt;&gt; Source/WebCore/html/canvas/WebGLProgram.cpp:202
&gt;&gt; +void WebGLProgram::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)
&gt; 
&gt; Ditto.

Renamed.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:1324
&gt;&gt; +    LockHolder locker(m_objectGraphLock);
&gt; 
&gt; Ditto.

Changed.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:1429
&gt;&gt; +    LockHolder locker(m_objectGraphLock);
&gt; 
&gt; Ditto.

Changed.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:1442
&gt;&gt; +    LockHolder locker(m_objectGraphLock);
&gt; 
&gt; Ditto.

Changed.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:1457
&gt;&gt; +    LockHolder locker(m_objectGraphLock);
&gt; 
&gt; Ditto.

Changed.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:1473
&gt;&gt; +    LockHolder locker(m_objectGraphLock);
&gt; 
&gt; Ditto.

Changed.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:2017
&gt;&gt; +    LockHolder locker(objectGraphLock());
&gt; 
&gt; Ditto.

Changed.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:2026
&gt;&gt; +    LockHolder locker(m_objectGraphLock);
&gt; 
&gt; Ditto.

Changed.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:2042
&gt;&gt; +    LockHolder locker(objectGraphLock());
&gt; 
&gt; Ditto.

Changed.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:2143
&gt;&gt; +    LockHolder locker(m_objectGraphLock);
&gt; 
&gt; Ditto.

Changed.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:5922
&gt;&gt; +    LockHolder locker(m_objectGraphLock);
&gt; 
&gt; Ditto.

Changed.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:5989
&gt;&gt; +    LockHolder locker(m_objectGraphLock);
&gt; 
&gt; Ditto.

Changed.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:7795
&gt;&gt; +void WebGLRenderingContextBase::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)
&gt; 
&gt; Ditto.

Renamed.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:7797
&gt;&gt; +    LockHolder lock(m_objectGraphLock);
&gt; 
&gt; Ditto.

Changed.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:7832
&gt;&gt; +}
&gt; 
&gt; Let&apos;s just return Lock&amp;.

I thought this was going to be a problem, but after making everything compile using holdLock and Lock&amp; elsewhere, there were only a few places that needed to check whether the context had been destroyed and return early rather than trying to grab the lock. Changed to Lock&amp;.

&gt;&gt; Source/WebCore/html/canvas/WebGLSharedObject.cpp:65
&gt;&gt; +    return m_contextGroup ? m_contextGroup-&gt;objectGraphLockForAContext() : nullptr;
&gt; 
&gt; When it is returning nullptr, shouldn&apos;t we need to take a lock?

The few callers of this can check explicitly whether the context has been destroyed, so changed this to Lock&amp;.

&gt;&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:93
&gt;&gt; +void WebGLTransformFeedback::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)
&gt; 
&gt; Ditto.

Renamed.

&gt;&gt; Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp:112
&gt;&gt; +void WebGLVertexArrayObjectBase::visitReferencedJSWrappers(JSC::SlotVisitor&amp; visitor)
&gt; 
&gt; Ditto.

Renamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679879</commentid>
    <comment_count>29</comment_count>
      <attachid>406483</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-12 16:48:09 -0700</bug_when>
    <thetext>Created attachment 406483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679880</commentid>
    <comment_count>30</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-12 16:49:04 -0700</bug_when>
    <thetext>New patch addresses all review feedback and fixes the layout test timeouts from the previous patch, which were caused by an illegal attempt to recursively lock the object graph lock during framebuffer deletion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679881</commentid>
    <comment_count>31</comment_count>
      <attachid>406483</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-12 17:03:05 -0700</bug_when>
    <thetext>Comment on attachment 406483
Patch

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

&gt; Source/WebCore/html/canvas/WebGLContextGroup.cpp:50
&gt;      return *(*m_contexts.begin())-&gt;graphicsContextGL();

Let&apos;s use `first()` here :)

&gt; Source/WebCore/html/canvas/WebGLContextGroup.cpp:61
&gt; +    return (*m_contexts.begin())-&gt;objectGraphLock();

Use `m_contexts.first().objectGraphLock();`

&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:563
&gt;  void WebGLFramebuffer::deleteObjectImpl(GraphicsContextGLOpenGL* context3d, PlatformGLObject object)

Let&apos;s take `const AbstractLocker&amp;` parameter instead.

&gt; Source/WebCore/html/canvas/WebGLProgram.cpp:161
&gt;  bool WebGLProgram::attachShader(WebGLShader* shader)

Let&apos;s take `const AbstractLocker&amp;` parameter to make it explicit that this function needs locker.

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:61
&gt;  {

Let&apos;s take `const AbstractLocker&amp;` parameter.

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:69
&gt; +    // Covered under the objectGraphLock in WebGL2RenderingContext::setIndexedBufferBinding.

Let&apos;s take `const AbstractLocker&amp;` parameter.

&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:94
&gt; +{

Let&apos;s take `const AbstractLocker&amp;` parameter.

&gt; Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp:54
&gt;  void WebGLVertexArrayObjectBase::setVertexAttribState(GCGLuint index, GCGLsizei bytesPerElement, GCGLint size, GCGLenum type, GCGLboolean normalized, GCGLsizei stride, GCGLintptr offset, WebGLBuffer* buffer)

Let&apos;s take `const AbstractLocker&amp;` from WebGLRenderingContextBase::vertexAttribPointer (passing `locker`).
Like,

...-&gt;setVertexAttribState(locker, ...);

And 

...::setVertexAttribState(const AbstractLocker&amp;, ...)
{
     ....
}

&gt; Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp:76
&gt;  void WebGLVertexArrayObjectBase::unbindBuffer(WebGLBuffer&amp; buffer)

Let&apos;s take `const AbstractLocker&amp;` from WebGLRenderingContextBase::uncacheDeletedBuffer (passing `locker`).

&gt; Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp:112
&gt; +void WebGLVertexArrayObjectBase::addMembersToOpaqueRoots(JSC::SlotVisitor&amp; visitor)

Let&apos;s take `const AbstractLocker&amp;` parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680152</commentid>
    <comment_count>32</comment_count>
      <attachid>406483</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-13 16:27:56 -0700</bug_when>
    <thetext>Comment on attachment 406483
Patch

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

&gt;&gt; Source/WebCore/html/canvas/WebGLContextGroup.cpp:50
&gt;&gt;      return *(*m_contexts.begin())-&gt;graphicsContextGL();
&gt; 
&gt; Let&apos;s use `first()` here :)

Neither HashSet nor HashMap in WTF has a first() method.

&gt;&gt; Source/WebCore/html/canvas/WebGLContextGroup.cpp:61
&gt;&gt; +    return (*m_contexts.begin())-&gt;objectGraphLock();
&gt; 
&gt; Use `m_contexts.first().objectGraphLock();`

Same answer - neither HashSet nor HashMap in WTF has a first() method.

&gt;&gt; Source/WebCore/html/canvas/WebGLFramebuffer.cpp:563
&gt;&gt;  void WebGLFramebuffer::deleteObjectImpl(GraphicsContextGLOpenGL* context3d, PlatformGLObject object)
&gt; 
&gt; Let&apos;s take `const AbstractLocker&amp;` parameter instead.

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGLProgram.cpp:161
&gt;&gt;  bool WebGLProgram::attachShader(WebGLShader* shader)
&gt; 
&gt; Let&apos;s take `const AbstractLocker&amp;` parameter to make it explicit that this function needs locker.

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:61
&gt;&gt;  {
&gt; 
&gt; Let&apos;s take `const AbstractLocker&amp;` parameter.

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:69
&gt;&gt; +    // Covered under the objectGraphLock in WebGL2RenderingContext::setIndexedBufferBinding.
&gt; 
&gt; Let&apos;s take `const AbstractLocker&amp;` parameter.

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGLTransformFeedback.cpp:94
&gt;&gt; +{
&gt; 
&gt; Let&apos;s take `const AbstractLocker&amp;` parameter.

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp:54
&gt;&gt;  void WebGLVertexArrayObjectBase::setVertexAttribState(GCGLuint index, GCGLsizei bytesPerElement, GCGLint size, GCGLenum type, GCGLboolean normalized, GCGLsizei stride, GCGLintptr offset, WebGLBuffer* buffer)
&gt; 
&gt; Let&apos;s take `const AbstractLocker&amp;` from WebGLRenderingContextBase::vertexAttribPointer (passing `locker`).
&gt; Like,
&gt; 
&gt; ...-&gt;setVertexAttribState(locker, ...);
&gt; 
&gt; And 
&gt; 
&gt; ...::setVertexAttribState(const AbstractLocker&amp;, ...)
&gt; {
&gt;      ....
&gt; }

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp:76
&gt;&gt;  void WebGLVertexArrayObjectBase::unbindBuffer(WebGLBuffer&amp; buffer)
&gt; 
&gt; Let&apos;s take `const AbstractLocker&amp;` from WebGLRenderingContextBase::uncacheDeletedBuffer (passing `locker`).

Done.

&gt;&gt; Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp:112
&gt;&gt; +void WebGLVertexArrayObjectBase::addMembersToOpaqueRoots(JSC::SlotVisitor&amp; visitor)
&gt; 
&gt; Let&apos;s take `const AbstractLocker&amp;` parameter.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680153</commentid>
    <comment_count>33</comment_count>
      <attachid>406554</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-13 16:28:08 -0700</bug_when>
    <thetext>Created attachment 406554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680155</commentid>
    <comment_count>34</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-13 16:33:24 -0700</bug_when>
    <thetext>The current patch passes &quot;const AbstractLocker&amp;&quot; throughout WebGL&apos;s call hierarchy to prove that the lock&apos;s held where needed. This was a substantial change involving many more methods than just those highlighted via comments in the previous code review.

This passes all tests locally. During development, bugs caused hangs or assertion failures in the WebGL tests, so it seems that correctness is ensured by those tests.

Please re-review. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680184</commentid>
    <comment_count>35</comment_count>
      <attachid>406554</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-08-13 18:43:45 -0700</bug_when>
    <thetext>Comment on attachment 406554
Patch

If this looks OK then please go ahead and CQ it - thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680444</commentid>
    <comment_count>36</comment_count>
      <attachid>406554</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-14 14:57:09 -0700</bug_when>
    <thetext>Comment on attachment 406554
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680454</commentid>
    <comment_count>37</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-14 15:06:46 -0700</bug_when>
    <thetext>Committed r265708: &lt;https://trac.webkit.org/changeset/265708&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406554.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406340</attachid>
            <date>2020-08-10 16:11:48 -0700</date>
            <delta_ts>2020-08-10 18:31:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214765-20200810161147.patch</filename>
            <type>text/plain</type>
            <size>19827</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDk1ZDk3MDM3YmZhNTUy
MTg1YzdkMDRiOWYyNjg0NGYwMTM1OGNjOS4uODY2ZWJjZDI1ODFjYTc1MTFkOTgxYmJlYjNhOTcy
ODc1OTYwMzliZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTA4LTEwICBLZW5u
ZXRoIFJ1c3NlbGwgIDxrYnJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtXZWJHTDJdIGV4cGFu
ZG8tbG9zcyBhbmQgZXhwYW5kby1sb3NzLTIgY29uZm9ybWFuY2UgdGVzdHMgYXJlIGZhaWxpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc2NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBtb3Jl
IHRyYWNpbmcgdG8gdmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4gaW4KKyAgICAgICAgSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRDdXN0b20gYW5kIEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbQor
ICAgICAgICB0byBhdHRlbXB0IHRvIGtlZXAgYWxpdmUgdGhlIEphdmFTY3JpcHQgd3JhcHBlcnMg
Zm9yIG9iamVjdHMKKyAgICAgICAgbGF0Y2hlZCBpbnRvIHRoZSBXZWJHTCBjb250ZXh0LgorCisg
ICAgICAgIFRoaXMgZG9lc24ndCBhcHBlYXIgdG8gYmUgd29ya2luZyB5ZXQuCisgICAgICAgIGNv
bmZvcm1hbmNlL21pc2MvZXhwYW5kby1sb3NzLmh0bWwgYW5kCisgICAgICAgIGNvbmZvcm1hbmNl
Mi9taXNjL2V4cGFuZG8tbG9zcy0yLmh0bWwgc3RpbGwgZmFpbCB3aGVuIHJ1biB1bmRlcgorICAg
ICAgICBydW4td2Via2l0LXRlc3RzLiBUaGlzIGhhcm5lc3MgcHJvdmlkZXMgR0NDb250cm9sbGVy
LCB3aGljaCBpcworICAgICAgICB1c2VkIGJ5CisgICAgICAgIExheW91dFRlc3RzL3dlYmdsLzIu
MC4wL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcHJlLmpzCisgICAgICAg
IHRvIGRldGVybWluaXN0aWNhbGx5IGNvbGxlY3QgZ2FyYmFnZS4gV2hlbiB0aGF0J3MgZG9uZSwg
ZXhwYW5kbworICAgICAgICBwcm9wZXJ0aWVzIG9uIHRoZSBuZXdseS10cmFjZWQgb2JqZWN0cycg
d3JhcHBlcnMgYXJlIHN0aWxsIGJlaW5nCisgICAgICAgIGxvc3QuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZpc2l0QWRkaXRp
b25hbENoaWxkcmVuKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZpc2l0
UmVmZXJlbmNlZEpTV3JhcHBlcnMpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRl
cmluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OnZpc2l0UmVmZXJlbmNlZEpT
V3JhcHBlcnMpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaDoKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xQcm9ncmFtOjp2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKToKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFByb2dyYW0uaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMpOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVHJhbnNm
b3JtRmVlZGJhY2s6OnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMpOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZTo6dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyk6CisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaDoKKwogMjAyMC0wOC0w
NiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBUZXh0IG1hbmlw
dWxhdGlvbjogbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2VzIHNob3VsZCBiZSBpZ25vcmVkIHdo
ZW4gY29tcGFyaW5nIGNvbnRlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IDY1YTU4
Y2Q3NmY5N2JjZDhlMTNjZjliYTAzMDEwZDRlODdkMDg1ZWUuLmU2Y2MyODcxZjAzYTliYjg4NDNk
MTU5ZTIzN2UxMjFmOWY5YzAwMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtMzYs
NiArMzYsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogdm9pZCBKU1dlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewog
ICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgmd3JhcHBlZCgpKTsKKyAgICB3cmFwcGVkKCkudmlz
aXRSZWZlcmVuY2VkSlNXcmFwcGVycyh2aXNpdG9yKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IGEwZGFmODY3Y2U2YTY4ZjFhYjZjODY1
YTUyMDU3OWQxNmNiNWVkMGMuLmQ5M2ZiNmIxY2JmNjcwMDNmZmFlNDhjMGFmMzQ5N2Y1OGFkNjYx
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAgdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIHZvaWQgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZpc2l0QWRkaXRpb25h
bENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIHZpc2l0b3IuYWRkT3BhcXVl
Um9vdCgmd3JhcHBlZCgpKTsKKyAgICB3cmFwcGVkKCkudmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVy
cyh2aXNpdG9yKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCBh
ZWYxMzI4MDBhNGYxMTBjYTg3OTc4ZDc1YTY3MDk5ZWFjM2FmY2ZhLi45NmE1NmQzZjI1NzUxMGI0
MWM4YWRmMGViMTI5ODZlMTM3M2I0OWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMzAwMyw2ICszMDAzLDM1
IEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y2hlY2tBbmRUcmFuc2xhdGVBdHRhY2ht
ZW50cyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQg
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNs
b3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZp
c2l0UmVmZXJlbmNlZEpTV3JhcHBlcnModmlzaXRvcik7CisKKyAgICB2aXNpdG9yLmFkZE9wYXF1
ZVJvb3QobV9yZWFkRnJhbWVidWZmZXJCaW5kaW5nLmdldCgpKTsKKyAgICBpZiAobV9yZWFkRnJh
bWVidWZmZXJCaW5kaW5nKQorICAgICAgICBtX3JlYWRGcmFtZWJ1ZmZlckJpbmRpbmctPnZpc2l0
UmVmZXJlbmNlZEpTV3JhcHBlcnModmlzaXRvcik7CisKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJv
b3QobV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLmdldCgpKTsKKyAgICBpZiAobV9ib3VuZFRyYW5z
Zm9ybUZlZWRiYWNrKQorICAgICAgICBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2stPnZpc2l0UmVm
ZXJlbmNlZEpTV3JhcHBlcnModmlzaXRvcik7CisKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qo
bV9ib3VuZENvcHlSZWFkQnVmZmVyLmdldCgpKTsKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qo
bV9ib3VuZENvcHlXcml0ZUJ1ZmZlci5nZXQoKSk7CisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290
KG1fYm91bmRQaXhlbFBhY2tCdWZmZXIuZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9v
dChtX2JvdW5kUGl4ZWxVbnBhY2tCdWZmZXIuZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3BhcXVl
Um9vdChtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIuZ2V0KCkpOworICAgIHZpc2l0b3Iu
YWRkT3BhcXVlUm9vdChtX2JvdW5kVW5pZm9ybUJ1ZmZlci5nZXQoKSk7CisKKyAgICBmb3IgKGF1
dG8mIGJ1ZmZlciA6IG1fYm91bmRJbmRleGVkVW5pZm9ybUJ1ZmZlcnMpCisgICAgICAgIHZpc2l0
b3IuYWRkT3BhcXVlUm9vdChidWZmZXIuZ2V0KCkpOworCisgICAgZm9yIChhdXRvJiBlbnRyeSA6
IG1fYWN0aXZlUXVlcmllcykKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KGVudHJ5LnZh
bHVlLmdldCgpKTsKKworICAgIGZvciAoYXV0byYgZW50cnkgOiBtX2JvdW5kU2FtcGxlcnMpCisg
ICAgICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChlbnRyeS5nZXQoKSk7Cit9CisKIEdDR0xlbnVt
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJhc2VJbnRlcm5hbEZvcm1hdEZyb21JbnRlcm5hbEZv
cm1hdChHQ0dMZW51bSBpbnRlcm5hbGZvcm1hdCkKIHsKICAgICAvLyBIYW5kbGVzIHNpemVkLCB1
bnNpemVkLCBhbmQgY29tcHJlc3NlZCBpbnRlcm5hbCBmb3JtYXRzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDgxOTlk
OGU2NzMwZDE1NDc3MjJlMmVlMDNjMWVlNjcyZDA3NDM5YWMuLjBlM2ZmMmRmNGU4NTBkNTMyNDZm
NDEzNGExY2I4MmM4MDJlY2YwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTI2MSw2ICsyNjEsOCBAQCBwdWJsaWM6
CiAKICAgICBib29sIGNoZWNrQW5kVHJhbnNsYXRlQXR0YWNobWVudHMoY29uc3QgY2hhciogZnVu
Y3Rpb25OYW1lLCBHQ0dMZW51bSwgVmVjdG9yPEdDR0xlbnVtPiYpOwogCisgICAgdm9pZCB2aXNp
dFJlZmVyZW5jZWRKU1dyYXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKKwogcHJp
dmF0ZToKICAgICBXZWJHTDJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmLCBHcmFwaGljc0Nv
bnRleHRHTEF0dHJpYnV0ZXMpOwogICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQoQ2FudmFzQmFz
ZSYsIFJlZjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4mJiwgR3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJh
bWVidWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZl
ci5jcHAKaW5kZXggZTZmNDM4MzNkYzUyNTA3NGM3NDkyZjgwNzcxZjhhNWY5NjFlZWZlNi4uNjIx
ZDUyYWFjOGFlOTc3Zjg3NGI0NzA2MjQxZGNhNWIwYTAwMTQ5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMRHJhd0J1ZmZl
cnMuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC01Niw2ICs1Nyw3IEBAIG5hbWVzcGFjZSB7CiAgICAgICAgIHZvaWQgb25EZXRhY2hlZChHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCopIG92ZXJyaWRlOwogICAgICAgICB2b2lkIGF0dGFjaChHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCosIEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gYXR0YWNobWVu
dCkgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgdW5hdHRhY2goR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wqLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xlbnVtIGF0dGFjaG1lbnQpIG92ZXJyaWRlOworICAg
ICAgICB2b2lkIHZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYpIG92
ZXJyaWRlOwogCiAgICAgICAgIFdlYkdMUmVuZGVyYnVmZmVyQXR0YWNobWVudCgpIHsgfTsKIApA
QCAtMTM3LDYgKzEzOSwxMSBAQCBuYW1lc3BhY2UgewogICAgICAgICAgICAgY29udGV4dC0+ZnJh
bWVidWZmZXJSZW5kZXJidWZmZXIodGFyZ2V0LCBhdHRhY2htZW50LCBHcmFwaGljc0NvbnRleHRH
TDo6UkVOREVSQlVGRkVSLCAwKTsKICAgICB9CiAKKyAgICB2b2lkIFdlYkdMUmVuZGVyYnVmZmVy
QXR0YWNobWVudDo6dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RWaXNpdG9yJiB2
aXNpdG9yKQorICAgIHsKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fcmVuZGVyYnVm
ZmVyLmdldCgpKTsKKyAgICB9CisKICAgICBjbGFzcyBXZWJHTFRleHR1cmVBdHRhY2htZW50IDog
cHVibGljIFdlYkdMRnJhbWVidWZmZXI6OldlYkdMQXR0YWNobWVudCB7CiAgICAgcHVibGljOgog
ICAgICAgICBzdGF0aWMgUmVmPFdlYkdMRnJhbWVidWZmZXI6OldlYkdMQXR0YWNobWVudD4gY3Jl
YXRlKFdlYkdMVGV4dHVyZSosIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGlu
dCBsYXllcik7CkBAIC0xNTYsNiArMTYzLDcgQEAgbmFtZXNwYWNlIHsKICAgICAgICAgdm9pZCBv
bkRldGFjaGVkKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKikgb3ZlcnJpZGU7CiAgICAgICAgIHZv
aWQgYXR0YWNoKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dM
ZW51bSBhdHRhY2htZW50KSBvdmVycmlkZTsKICAgICAgICAgdm9pZCB1bmF0dGFjaChHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTCosIEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gYXR0YWNobWVudCkg
b3ZlcnJpZGU7CisgICAgICAgIHZvaWQgdmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNs
b3RWaXNpdG9yJikgb3ZlcnJpZGU7CiAKICAgICAgICAgV2ViR0xUZXh0dXJlQXR0YWNobWVudCgp
IHsgfTsKIApAQCAtMjUzLDYgKzI2MSwxMSBAQCBuYW1lc3BhY2UgewogI2VuZGlmCiAgICAgfQog
CisgICAgdm9pZCBXZWJHTFRleHR1cmVBdHRhY2htZW50Ojp2aXNpdFJlZmVyZW5jZWRKU1dyYXBw
ZXJzKEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCisgICAgeworICAgICAgICB2aXNpdG9yLmFk
ZE9wYXF1ZVJvb3QobV90ZXh0dXJlLmdldCgpKTsKKyAgICB9CisKICNpZiAhVVNFKEFOR0xFKQog
ICAgIGJvb2wgaXNBdHRhY2htZW50Q29tcGxldGUoV2ViR0xGcmFtZWJ1ZmZlcjo6V2ViR0xBdHRh
Y2htZW50KiBhdHRhY2hlZE9iamVjdCwgR0NHTGVudW0gYXR0YWNobWVudCwgY29uc3QgY2hhcioq
IHJlYXNvbikKICAgICB7CkBAIC02ODksNiArNzAyLDEyIEBAIEdDR0xlbnVtIFdlYkdMRnJhbWVi
dWZmZXI6OmdldERyYXdCdWZmZXIoR0NHTGVudW0gZHJhd0J1ZmZlcikKICAgICByZXR1cm4gR3Jh
cGhpY3NDb250ZXh0R0w6Ok5PTkU7CiB9CiAKK3ZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6dmlzaXRS
ZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIGZv
ciAoYXV0byYgZW50cnkgOiBtX2F0dGFjaG1lbnRzKQorICAgICAgICBlbnRyeS52YWx1ZS0+dmlz
aXRSZWZlcmVuY2VkSlNXcmFwcGVycyh2aXNpdG9yKTsKK30KKwogdm9pZCBXZWJHTEZyYW1lYnVm
ZmVyOjpzZXRBdHRhY2htZW50SW50ZXJuYWwoR0NHTGVudW0gYXR0YWNobWVudCwgR0NHTGVudW0g
dGV4VGFyZ2V0LCBXZWJHTFRleHR1cmUqIHRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xpbnQg
bGF5ZXIpCiB7CiAgICAgcmVtb3ZlQXR0YWNobWVudEludGVybmFsKGF0dGFjaG1lbnQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oCmluZGV4IDFiMjNm
ZjIyYzg5NDUxOTA4YjI1OTQyYTFhMTA2NjZiMTdhNmE3NDYuLjExNjM2ZTFmNTE2ODhmMmNlYzZh
NTA1MzVlMDk2Nzk5MDZiOGJiZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRnJhbWVidWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEZyYW1lYnVmZmVyLmgKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKK25hbWVzcGFjZSBKU0MgeworY2xh
c3MgU2xvdFZpc2l0b3I7Cit9IC8vIG5hbWVzcGFjZSBKU0MKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBXZWJHTFJlbmRlcmJ1ZmZlcjsKQEAgLTU3LDYgKzYxLDcgQEAgcHVibGljOgog
ICAgICAgICB2aXJ0dWFsIHZvaWQgb25EZXRhY2hlZChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCop
ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGF0dGFjaChHcmFwaGljc0NvbnRleHRHTE9wZW5H
TCosIEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gYXR0YWNobWVudCkgPSAwOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgdW5hdHRhY2goR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBHQ0dMZW51bSB0
YXJnZXQsIEdDR0xlbnVtIGF0dGFjaG1lbnQpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHZp
c2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYpID0gMDsKIAogICAgIHBy
b3RlY3RlZDoKICAgICAgICAgV2ViR0xBdHRhY2htZW50KCk7CkBAIC0xMDUsNiArMTEwLDggQEAg
cHVibGljOgogCiAgICAgR0NHTGVudW0gZ2V0RHJhd0J1ZmZlcihHQ0dMZW51bSk7CiAKKyAgICB2
b2lkIHZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYpOworCiBwcml2
YXRlOgogICAgIFdlYkdMRnJhbWVidWZmZXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcAppbmRleCA0MGU3
ODA3ZmUxNGI1NGRlZjQ2MGY4YTgzZTU3ZjhjZDA0YzdmMjE3Li40ZDVjNzg0ZTRiZWY2NDAzNzRj
MDdlZjg2OWFiMGE3OGMzZjg0YjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUHJvZ3JhbS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJXZWJHTENvbnRleHRH
cm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKICNpbmNsdWRl
ICJXZWJHTFNoYWRlci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9yLmg+
CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
IApAQCAtMTk2LDYgKzE5NywxMiBAQCBib29sIFdlYkdMUHJvZ3JhbTo6ZGV0YWNoU2hhZGVyKFdl
YkdMU2hhZGVyKiBzaGFkZXIpCiAgICAgfQogfQogCit2b2lkIFdlYkdMUHJvZ3JhbTo6dmlzaXRS
ZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIHZp
c2l0b3IuYWRkT3BhcXVlUm9vdChtX3ZlcnRleFNoYWRlci5nZXQoKSk7CisgICAgdmlzaXRvci5h
ZGRPcGFxdWVSb290KG1fZnJhZ21lbnRTaGFkZXIuZ2V0KCkpOworfQorCiB2b2lkIFdlYkdMUHJv
Z3JhbTo6Y2FjaGVBY3RpdmVBdHRyaWJMb2NhdGlvbnMoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wq
IGNvbnRleHQzZCkKIHsKICAgICBtX2FjdGl2ZUF0dHJpYkxvY2F0aW9ucy5jbGVhcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaAppbmRleCA4MDhmZDIwZjA5YzAz
Y2NlNDYyNzM4ZDU1YjY3NzlmOTZmZWRkMmU3Li43YWZlYjY3MjljMWY4ZWM1MGFjNGRkMmFlNDU3
ZmNiOWE0Y2IyNTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFByb2dyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0u
aApAQCAtMzQsNiArMzQsMTAgQEAKICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAorbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBTbG90VmlzaXRvcjsKK30gLy8g
bmFtZXNwYWNlIEpTQworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7CkBAIC04MCw2ICs4NCw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1f
cmVxdWlyZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlckNvdW50OwogICAgIH0KIAorICAgIHZvaWQg
dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RWaXNpdG9yJik7CisKIHByaXZhdGU6
CiAgICAgV2ViR0xQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmNwcAppbmRleCBkNTJkZDZkNGI0NzAzMjYyOWQxZTI4MWM3MTBlZmViNjQ3NDE1MjllLi5l
YmNiNmUzZDU4OTFlMGVmNmExMTk2MzkzNTkzZGYyYjY0NjIxMmM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNw
cApAQCAtMTAyLDYgKzEwMiw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5l
cy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5
cGVkQXJyYXlJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVWludDMyQXJyYXku
aD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KQEAgLTc3NjQsNiArNzc2NSw2
MCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dENoYW5n
ZWROb3RpZmljYXRpb24oKQogICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqY2FudmFzLCBU
YXNrU291cmNlOjpXZWJHTCwgV2ViR0xDb250ZXh0RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
d2ViZ2xjb250ZXh0Y2hhbmdlZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6Oklz
Q2FuY2VsYWJsZTo6WWVzLCBlbXB0eVN0cmluZygpKSk7CiB9CiAKK3ZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RWaXNpdG9y
JiB2aXNpdG9yKQoreworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2JvdW5kQXJyYXlCdWZm
ZXIuZ2V0KCkpOworCisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fYm91bmRWZXJ0ZXhBcnJh
eU9iamVjdC5nZXQoKSk7CisgICAgaWYgKG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkKKyAgICAg
ICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT52aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKHZp
c2l0b3IpOworCisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fY3VycmVudFByb2dyYW0uZ2V0
KCkpOworICAgIGlmIChtX2N1cnJlbnRQcm9ncmFtKQorICAgICAgICBtX2N1cnJlbnRQcm9ncmFt
LT52aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKHZpc2l0b3IpOworCisgICAgdmlzaXRvci5hZGRP
cGFxdWVSb290KG1fZnJhbWVidWZmZXJCaW5kaW5nLmdldCgpKTsKKyAgICBpZiAobV9mcmFtZWJ1
ZmZlckJpbmRpbmcpCisgICAgICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nLT52aXNpdFJlZmVyZW5j
ZWRKU1dyYXBwZXJzKHZpc2l0b3IpOworCisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fcmVu
ZGVyYnVmZmVyQmluZGluZy5nZXQoKSk7CisKKyAgICBmb3IgKGF1dG8mIHVuaXQgOiBtX3RleHR1
cmVVbml0cykgeworICAgICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QodW5pdC50ZXh0dXJlMkRC
aW5kaW5nLmdldCgpKTsKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHVuaXQudGV4dHVy
ZUN1YmVNYXBCaW5kaW5nLmdldCgpKTsKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHVu
aXQudGV4dHVyZTNEQmluZGluZy5nZXQoKSk7CisgICAgICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9v
dCh1bml0LnRleHR1cmUyREFycmF5QmluZGluZy5nZXQoKSk7CisgICAgfQorCisgICAgdmlzaXRv
ci5hZGRPcGFxdWVSb290KG1fZXh0RnJhZ0RlcHRoLmdldCgpKTsKKyAgICB2aXNpdG9yLmFkZE9w
YXF1ZVJvb3QobV9leHRCbGVuZE1pbk1heC5nZXQoKSk7CisgICAgdmlzaXRvci5hZGRPcGFxdWVS
b290KG1fZXh0c1JHQi5nZXQoKSk7CisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fZXh0VGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmdldCgpKTsKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qo
bV9leHRTaGFkZXJUZXh0dXJlTE9ELmdldCgpKTsKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qo
bV9vZXNUZXh0dXJlRmxvYXQuZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX29l
c1RleHR1cmVGbG9hdExpbmVhci5nZXQoKSk7CisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1f
b2VzVGV4dHVyZUhhbGZGbG9hdC5nZXQoKSk7CisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1f
b2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhci5nZXQoKSk7CisgICAgdmlzaXRvci5hZGRPcGFxdWVS
b290KG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcy5nZXQoKSk7CisgICAgdmlzaXRvci5hZGRPcGFx
dWVSb290KG1fb2VzVmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3Bh
cXVlUm9vdChtX29lc0VsZW1lbnRJbmRleFVpbnQuZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3Bh
cXVlUm9vdChtX3dlYmdsTG9zZUNvbnRleHQuZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3BhcXVl
Um9vdChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8uZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3Bh
cXVlUm9vdChtX3dlYmdsRGVidWdTaGFkZXJzLmdldCgpKTsKKyAgICB2aXNpdG9yLmFkZE9wYXF1
ZVJvb3QobV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVNUQy5nZXQoKSk7CisgICAgdmlzaXRvci5h
ZGRPcGFxdWVSb290KG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQy5nZXQoKSk7CisgICAgdmlz
aXRvci5hZGRPcGFxdWVSb290KG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUVUQy5nZXQoKSk7Cisg
ICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUVUQzEuZ2V0
KCkpOworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVQ
VlJUQy5nZXQoKSk7CisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fd2ViZ2xDb21wcmVzc2Vk
VGV4dHVyZVMzVEMuZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX3dlYmdsRGVw
dGhUZXh0dXJlLmdldCgpKTsKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV93ZWJnbERyYXdC
dWZmZXJzLmdldCgpKTsKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9hbmdsZUluc3RhbmNl
ZEFycmF5cy5nZXQoKSk7CisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fZXh0Q29sb3JCdWZm
ZXJIYWxmRmxvYXQuZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX3dlYmdsQ29s
b3JCdWZmZXJGbG9hdC5nZXQoKSk7CisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fZXh0Q29s
b3JCdWZmZXJGbG9hdC5nZXQoKSk7Cit9CisKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6cHJlcGFyZUZvckRpc3BsYXkoKQogewogICAgIGlmICghbV9jb250ZXh0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5o
CmluZGV4IDhlN2Y0YTJkNjEzNjU4NWExMzg1OWQzMGVhYzA4NTIzZDJmNGM2YjQuLmZjZTkwMTNk
YzkzYjk5N2MwOWZmNTRlMDUyNmZhOWJjNzRlN2VkN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTU2LDYg
KzU2LDEwIEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNlbmRpZgogCitu
YW1lc3BhY2UgSlNDIHsKK2NsYXNzIFNsb3RWaXNpdG9yOworfSAvLyBuYW1lc3BhY2UgSlNDCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQU5HTEVJbnN0YW5jZWRBcnJheXM7CkBAIC0z
OTgsNiArNDAyLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVjeWNsZUNvbnRleHQoKSBvdmVycmlk
ZTsKICAgICB2b2lkIGRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKSBvdmVycmlk
ZTsKIAorICAgIHZpcnR1YWwgdm9pZCB2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKEpTQzo6U2xv
dFZpc2l0b3ImKTsKKwogcHJvdGVjdGVkOgogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uo
Q2FudmFzQmFzZSYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwogICAgIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UoQ2FudmFzQmFzZSYsIFJlZjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4mJiwg
V2ViR0xDb250ZXh0QXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suY3BwCmluZGV4IDkxNWNhZTI4MDM2MWM3MDZm
YzUxYzdmYmZhODdjMjg4OWEwNTI5NDMuLjE0MWU5YWZhNTdiZWM5ZGNlNDU1NmQ3MmExZDVjYjEw
MzMxMzY2YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJh
bnNmb3JtRmVlZGJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
VHJhbnNmb3JtRmVlZGJhY2suY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJXZWJH
TENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIK
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTg2LDYgKzg3LDE0IEBAIGJvb2wgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6
aGFzRW5vdWdoQnVmZmVycyhHQ0dMdWludCBudW1SZXF1aXJlZCkgY29uc3QKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAordm9pZCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjp2aXNpdFJlZmVyZW5jZWRK
U1dyYXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgZm9yIChhdXRvJiBi
dWZmZXIgOiBtX2JvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVycykKKyAgICAgICAg
dmlzaXRvci5hZGRPcGFxdWVSb290KGJ1ZmZlci5nZXQoKSk7CisKKyAgICB2aXNpdG9yLmFkZE9w
YXF1ZVJvb3QobV9wcm9ncmFtLmdldCgpKTsKK30KKwogdm9pZCBXZWJHTFRyYW5zZm9ybUZlZWRi
YWNrOjp1bmJpbmRCdWZmZXIoV2ViR0xCdWZmZXImIGJ1ZmZlcikKIHsKICAgICBmb3IgKGF1dG8m
IGJvdW5kQnVmZmVyIDogbV9ib3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnMpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVl
ZGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJh
Y2suaAppbmRleCA3N2RiOTU0OGMzYjg0NTUwNTZmYTcxN2FmNDEzNjRmMjJlMTc4ZDNiLi5lMWRj
MjRjMzBiMWQwNzdkYmVhMTZkNTE0ODYzNmM2MGI4N2U2OWExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCkBAIC0zMCw2ICsz
MCwxMCBAQAogI2luY2x1ZGUgIldlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJX
ZWJHTFNoYXJlZE9iamVjdC5oIgogCituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIFNsb3RWaXNpdG9y
OworfSAvLyBuYW1lc3BhY2UgSlNDCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2Vi
R0xUcmFuc2Zvcm1GZWVkYmFjayBmaW5hbCA6IHB1YmxpYyBXZWJHTFNoYXJlZE9iamVjdCB7CkBA
IC02MSw2ICs2NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHVuYmluZEJ1ZmZlcihXZWJHTEJ1ZmZl
ciYpOwogICAgIAogICAgIGJvb2wgaGFzRW5vdWdoQnVmZmVycyhHQ0dMdWludCBudW1SZXF1aXJl
ZCkgY29uc3Q7CisKKyAgICB2b2lkIHZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90
VmlzaXRvciYpOworCiBwcml2YXRlOgogICAgIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2soV2ViR0wy
UmVuZGVyaW5nQ29udGV4dCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKaW5kZXggMTFjYzhiOWU1NGI3
Y2Q5N2I4NGRiM2QzM2JkYTliZTEzNDUxMjIyNS4uZjJjNmZiZmU3NjVjOGJhZDc3ODc2ZTExN2Mz
NzNmMDE0YTBjZWJmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lm
IEVOQUJMRShXRUJHTCkKIAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIK
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTEwNCw3ICsxMDUsMTQgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0
QmFzZTo6c2V0VmVydGV4QXR0cmliRGl2aXNvcihHQ0dMdWludCBpbmRleCwgR0NHTHVpbnQKIHsK
ICAgICBtX3ZlcnRleEF0dHJpYlN0YXRlW2luZGV4XS5kaXZpc29yID0gZGl2aXNvcjsKIH0KLSAg
ICAKKwordm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dmlzaXRSZWZlcmVuY2VkSlNX
cmFwcGVycyhKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIHZpc2l0b3IuYWRkT3Bh
cXVlUm9vdChtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyLmdldCgpKTsKKyAgICBmb3IgKGF1dG8m
IHN0YXRlIDogbV92ZXJ0ZXhBdHRyaWJTdGF0ZSkKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVS
b290KHN0YXRlLmJ1ZmZlckJpbmRpbmcuZ2V0KCkpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFC
TEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2UuaAppbmRleCA0YmQ5MTM1MTBmNjJiZWJjOTg1YzU3M2RkNjg4
YjlkZTcxZmYzYWEyLi5iYTNlZmI0ZmEwMmM5YTk4ODM1YzIyN2Y0NWEwOGFhYjIyMzFkMDQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2Jq
ZWN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlLmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSAiV2ViR0xCdWZmZXIu
aCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRPYmplY3QuaCIKIAorbmFtZXNwYWNlIEpTQyB7Citj
bGFzcyBTbG90VmlzaXRvcjsKK30gLy8gbmFtZXNwYWNlIEpTQworCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlIDogcHVibGljIFdlYkdMQ29u
dGV4dE9iamVjdCB7CkBAIC02OCw2ICs3Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VmVy
dGV4QXR0cmliRGl2aXNvcihHQ0dMdWludCBpbmRleCwgR0NHTHVpbnQgZGl2aXNvcik7CiAKKyAg
ICB2b2lkIHZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYpOworCiBw
cm90ZWN0ZWQ6CiAgICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYsIFR5cGUpOwogICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmplY3QpIG92ZXJyaWRlID0gMDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406359</attachid>
            <date>2020-08-10 21:27:15 -0700</date>
            <delta_ts>2020-08-11 09:43:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214765-20200810212714.patch</filename>
            <type>text/plain</type>
            <size>64133</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODcyMGU1Y2FjOTY1MmUy
ZDRhOWE3ODY0ZDEwOWU1MDQwNTQ1MzZjYi4uZTc3ZDg3MzlkY2NhMDc1YjIyOGUzNGQyZDM0ZWZm
ZjYwYTAxNDFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIwLTA4LTEwICBLZW5u
ZXRoIFJ1c3NlbGwgIDxrYnJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtXZWJHTDJdIGV4cGFu
ZG8tbG9zcyBhbmQgZXhwYW5kby1sb3NzLTIgY29uZm9ybWFuY2UgdGVzdHMgYXJlIGZhaWxpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc2NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBKU1dl
YkdMUmVuZGVyaW5nQ29udGV4dCdzIGFuZCBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQncworICAg
ICAgICBleGlzdGluZyB2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbiBob29rICh2aWEgSlNDdXN0b21N
YXJrRnVuY3Rpb24gaW4KKyAgICAgICAgdGhlaXIgSURMKSB0byBhZGQgb3BhcXVlIHJvb3RzIGZv
ciBhbGwgV2ViR0xPYmplY3RzIGxhdGNoZWQgaW4gdG8KKyAgICAgICAgdGhlIGNvbnRleHQgc3Rh
dGUsIGFuZCBhbGwgV2ViR0xPYmplY3RzIHRoZXkgcmVmZXIgdG8uIChFeHRlbnNpb25zCisgICAg
ICAgIHdlcmUgYWxyZWFkeSBwcmV2aW91c2x5IGhhbmRsZWQuKQorCisgICAgICAgIEFkZCAiR2Vu
ZXJhdGVJc1JlYWNoYWJsZT1JbXBsIiB0byB0aGUgSURMIGZpbGVzIGZvciBhbGwgc3VjaAorICAg
ICAgICBvYmplY3RzIChXZWJHTEJ1ZmZlciwgV2ViR0xUZXh0dXJlLCBldGMuKSBzbyB0aGF0IHRo
ZXkgcGF5CisgICAgICAgIGF0dGVudGlvbiB0byB0aGUgb3BhcXVlIHJvb3Qgc3RhdGUgd2hlbiBk
ZXRlcm1pbmluZyBsaXZlbmVzcyBvZgorICAgICAgICB0aGVpciBKYXZhU2NyaXB0IHdyYXBwZXJz
LiBUaGFua3MgdG8geXN1enVraUAgZm9yIHBvaW50aW5nIG91dCB0aGUKKyAgICAgICAgbmVlZCBm
b3IgdGhpcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4
dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYkdM
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4pOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyk6CisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMQnVmZmVyLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEZyYW1l
YnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OnZpc2l0UmVm
ZXJlbmNlZEpTV3JhcHBlcnMpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZm
ZXIuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmlkbDoKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
R0xQcm9ncmFtOjp2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKToKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFByb2dyYW0uaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0u
aWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUXVlcnkuaWRsOgorICAgICAgICAqIGh0
bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMpOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTFNhbXBsZXIuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2hh
ZGVyLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaWRsOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyk6
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaWRsOgorICAgICAgICAqIGh0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaWRsOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKToKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaWRsOgorCiAyMDIwLTA4
LTEwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcXVp
cmsgdG8gZm9yY2UgdG91Y2ggZXZlbnRzIG9uIG1haWwueWFob28uY29tCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcAppbmRleCA2NWE1OGNkNzZmOTdiY2Q4ZTEzY2Y5YmEwMzAxMGQ0ZTg3ZDA4NWVl
Li5lNmNjMjg3MWYwM2E5YmI4ODQzZDE1OWUyMzdlMTIxZjlmOWMwMDI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dEN1c3RvbS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIHZv
aWQgSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihTbG90
VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoJndyYXBwZWQo
KSk7CisgICAgd3JhcHBlZCgpLnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnModmlzaXRvcik7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCBh
MGRhZjg2N2NlNmE2OGYxYWI2Yzg2NWE1MjA1NzlkMTZjYjVlZDBjLi5kOTNmYjZiMWNiZjY3MDAz
ZmZhZTQ4YzBhZjM0OTdmNThhZDY2MTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0z
Niw2ICszNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB2b2lkIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsK
ICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoJndyYXBwZWQoKSk7CisgICAgd3JhcHBlZCgpLnZp
c2l0UmVmZXJlbmNlZEpTV3JhcHBlcnModmlzaXRvcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRl
cmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVy
aW5nQ29udGV4dC5jcHAKaW5kZXggMmVjODM3ODg5MDJmOTllODY2MDExNWM2ZDYzMGFhYjUwYmQ2
MjRmOS4uOWJhNTVkYjM1ZWU2MDk1NmM4ZTRiZWIwZDk3MWY4NWQ2NGM3NWFmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5j
cHAKQEAgLTY2LDYgKzY2LDggQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9HZW5lcmljVHlw
ZWRBcnJheVZpZXdJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcElubGlu
ZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lu
bGluZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvci5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9ySW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1R5cGVkQXJyYXlUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KIApAQCAtMzAxMCw2ICszMDEyLDM1IEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4
dDo6Y2hlY2tBbmRUcmFuc2xhdGVBdHRhY2htZW50cyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRS
ZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnModmlzaXRv
cik7CisKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9yZWFkRnJhbWVidWZmZXJCaW5kaW5n
LmdldCgpKTsKKyAgICBpZiAobV9yZWFkRnJhbWVidWZmZXJCaW5kaW5nKQorICAgICAgICBtX3Jl
YWRGcmFtZWJ1ZmZlckJpbmRpbmctPnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnModmlzaXRvcik7
CisKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLmdl
dCgpKTsKKyAgICBpZiAobV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrKQorICAgICAgICBtX2JvdW5k
VHJhbnNmb3JtRmVlZGJhY2stPnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnModmlzaXRvcik7CisK
KyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9ib3VuZENvcHlSZWFkQnVmZmVyLmdldCgpKTsK
KyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9ib3VuZENvcHlXcml0ZUJ1ZmZlci5nZXQoKSk7
CisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fYm91bmRQaXhlbFBhY2tCdWZmZXIuZ2V0KCkp
OworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2JvdW5kUGl4ZWxVbnBhY2tCdWZmZXIuZ2V0
KCkpOworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tC
dWZmZXIuZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2JvdW5kVW5pZm9ybUJ1
ZmZlci5nZXQoKSk7CisKKyAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6IG1fYm91bmRJbmRleGVkVW5p
Zm9ybUJ1ZmZlcnMpCisgICAgICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChidWZmZXIuZ2V0KCkp
OworCisgICAgZm9yIChhdXRvJiBlbnRyeSA6IG1fYWN0aXZlUXVlcmllcykKKyAgICAgICAgdmlz
aXRvci5hZGRPcGFxdWVSb290KGVudHJ5LnZhbHVlLmdldCgpKTsKKworICAgIGZvciAoYXV0byYg
ZW50cnkgOiBtX2JvdW5kU2FtcGxlcnMpCisgICAgICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChl
bnRyeS5nZXQoKSk7Cit9CisKIEdDR0xlbnVtIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJhc2VJ
bnRlcm5hbEZvcm1hdEZyb21JbnRlcm5hbEZvcm1hdChHQ0dMZW51bSBpbnRlcm5hbGZvcm1hdCkK
IHsKICAgICAvLyBIYW5kbGVzIHNpemVkLCB1bnNpemVkLCBhbmQgY29tcHJlc3NlZCBpbnRlcm5h
bCBmb3JtYXRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wy
UmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dC5oCmluZGV4IDgxOTlkOGU2NzMwZDE1NDc3MjJlMmVlMDNjMWVlNjcyZDA3
NDM5YWMuLjBlM2ZmMmRmNGU4NTBkNTMyNDZmNDEzNGExY2I4MmM4MDJlY2YwNGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgK
QEAgLTI2MSw2ICsyNjEsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGNoZWNrQW5kVHJhbnNsYXRl
QXR0YWNobWVudHMoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQ0dMZW51bSwgVmVjdG9yPEdD
R0xlbnVtPiYpOwogCisgICAgdm9pZCB2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKEpTQzo6U2xv
dFZpc2l0b3ImKSBvdmVycmlkZTsKKwogcHJpdmF0ZToKICAgICBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0KENhbnZhc0Jhc2UmLCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMpOwogICAgIFdlYkdM
MlJlbmRlcmluZ0NvbnRleHQoQ2FudmFzQmFzZSYsIFJlZjxHcmFwaGljc0NvbnRleHRHTE9wZW5H
TD4mJiwgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMQnVmZmVyLmlkbAppbmRleCA2ZTJhYjljNTdiZjE1MjY2MzFmNjU2Y2VhNTE5
NzE5NzkwOTZhYTU3Li5kYTQ3MDM1NjRiNjA0OGE5NDYwZDMyZTk5ZDFkNWNjNWQ2Y2UxYWEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRsCkBAIC0yNSw1ICsy
NSw2IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBHZW5lcmF0ZUlzUmVhY2hh
YmxlPUltcGwKIF0gaW50ZXJmYWNlIFdlYkdMQnVmZmVyIHsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCmluZGV4IGU2ZjQzODMzZGM1MjUw
NzRjNzQ5MmY4MDc3MWY4YTVmOTYxZWVmZTYuLjRiZTZlY2MxODI3NGFkMmMwOWYwZDRmYTM2YTM3
MmE1NTUwNmU3YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
RnJhbWVidWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJh
bWVidWZmZXIuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0R3Jv
dXAuaCIKICNpbmNsdWRlICJXZWJHTERyYXdCdWZmZXJzLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9y
Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0b3JJbmxpbmVzLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTYsNiArNTgsNyBAQCBuYW1lc3BhY2UgewogICAgICAg
ICB2b2lkIG9uRGV0YWNoZWQoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKSBvdmVycmlkZTsKICAg
ICAgICAgdm9pZCBhdHRhY2goR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBHQ0dMZW51bSB0YXJn
ZXQsIEdDR0xlbnVtIGF0dGFjaG1lbnQpIG92ZXJyaWRlOwogICAgICAgICB2b2lkIHVuYXR0YWNo
KEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBhdHRh
Y2htZW50KSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCB2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJz
KEpTQzo6U2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKIAogICAgICAgICBXZWJHTFJlbmRlcmJ1ZmZl
ckF0dGFjaG1lbnQoKSB7IH07CiAKQEAgLTEzNyw2ICsxNDAsMTEgQEAgbmFtZXNwYWNlIHsKICAg
ICAgICAgICAgIGNvbnRleHQtPmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHRhcmdldCwgYXR0YWNo
bWVudCwgR3JhcGhpY3NDb250ZXh0R0w6OlJFTkRFUkJVRkZFUiwgMCk7CiAgICAgfQogCisgICAg
dm9pZCBXZWJHTFJlbmRlcmJ1ZmZlckF0dGFjaG1lbnQ6OnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBl
cnMoSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKKyAgICB7CisgICAgICAgIHZpc2l0b3IuYWRk
T3BhcXVlUm9vdChtX3JlbmRlcmJ1ZmZlci5nZXQoKSk7CisgICAgfQorCiAgICAgY2xhc3MgV2Vi
R0xUZXh0dXJlQXR0YWNobWVudCA6IHB1YmxpYyBXZWJHTEZyYW1lYnVmZmVyOjpXZWJHTEF0dGFj
aG1lbnQgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFJlZjxXZWJHTEZyYW1lYnVmZmVy
OjpXZWJHTEF0dGFjaG1lbnQ+IGNyZWF0ZShXZWJHTFRleHR1cmUqLCBHQ0dMZW51bSB0YXJnZXQs
IEdDR0xpbnQgbGV2ZWwsIEdDR0xpbnQgbGF5ZXIpOwpAQCAtMTU2LDYgKzE2NCw3IEBAIG5hbWVz
cGFjZSB7CiAgICAgICAgIHZvaWQgb25EZXRhY2hlZChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCop
IG92ZXJyaWRlOwogICAgICAgICB2b2lkIGF0dGFjaChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCos
IEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gYXR0YWNobWVudCkgb3ZlcnJpZGU7CiAgICAgICAg
IHZvaWQgdW5hdHRhY2goR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBHQ0dMZW51bSB0YXJnZXQs
IEdDR0xlbnVtIGF0dGFjaG1lbnQpIG92ZXJyaWRlOworICAgICAgICB2b2lkIHZpc2l0UmVmZXJl
bmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYpIG92ZXJyaWRlOwogCiAgICAgICAgIFdl
YkdMVGV4dHVyZUF0dGFjaG1lbnQoKSB7IH07CiAKQEAgLTI1Myw2ICsyNjIsMTEgQEAgbmFtZXNw
YWNlIHsKICNlbmRpZgogICAgIH0KIAorICAgIHZvaWQgV2ViR0xUZXh0dXJlQXR0YWNobWVudDo6
dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQorICAg
IHsKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fdGV4dHVyZS5nZXQoKSk7CisgICAg
fQorCiAjaWYgIVVTRShBTkdMRSkKICAgICBib29sIGlzQXR0YWNobWVudENvbXBsZXRlKFdlYkdM
RnJhbWVidWZmZXI6OldlYkdMQXR0YWNobWVudCogYXR0YWNoZWRPYmplY3QsIEdDR0xlbnVtIGF0
dGFjaG1lbnQsIGNvbnN0IGNoYXIqKiByZWFzb24pCiAgICAgewpAQCAtNjg5LDYgKzcwMywxMiBA
QCBHQ0dMZW51bSBXZWJHTEZyYW1lYnVmZmVyOjpnZXREcmF3QnVmZmVyKEdDR0xlbnVtIGRyYXdC
dWZmZXIpCiAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpOT05FOwogfQogCit2b2lkIFdl
YkdMRnJhbWVidWZmZXI6OnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRv
ciYgdmlzaXRvcikKK3sKKyAgICBmb3IgKGF1dG8mIGVudHJ5IDogbV9hdHRhY2htZW50cykKKyAg
ICAgICAgZW50cnkudmFsdWUtPnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnModmlzaXRvcik7Cit9
CisKIHZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6c2V0QXR0YWNobWVudEludGVybmFsKEdDR0xlbnVt
IGF0dGFjaG1lbnQsIEdDR0xlbnVtIHRleFRhcmdldCwgV2ViR0xUZXh0dXJlKiB0ZXh0dXJlLCBH
Q0dMaW50IGxldmVsLCBHQ0dMaW50IGxheWVyKQogewogICAgIHJlbW92ZUF0dGFjaG1lbnRJbnRl
cm5hbChhdHRhY2htZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMRnJhbWVidWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJh
bWVidWZmZXIuaAppbmRleCAxYjIzZmYyMmM4OTQ1MTkwOGIyNTk0MmExYTEwNjY2YjE3YTZhNzQ2
Li4xMTYzNmUxZjUxNjg4ZjJjZWM2YTUwNTM1ZTA5Njc5OTA2YjhiYmViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oCkBAIC0zMyw2ICszMywxMCBA
QAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIFNsb3RWaXNpdG9yOworfSAvLyBuYW1lc3BhY2UgSlND
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xSZW5kZXJidWZmZXI7CkBAIC01
Nyw2ICs2MSw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIG9uRGV0YWNoZWQoR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wqKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhdHRhY2go
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xlbnVtIGF0dGFj
aG1lbnQpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHVuYXR0YWNoKEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKiwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBhdHRhY2htZW50KSA9IDA7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKEpTQzo6U2xvdFZp
c2l0b3ImKSA9IDA7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIFdlYkdMQXR0YWNobWVudCgp
OwpAQCAtMTA1LDYgKzExMCw4IEBAIHB1YmxpYzoKIAogICAgIEdDR0xlbnVtIGdldERyYXdCdWZm
ZXIoR0NHTGVudW0pOwogCisgICAgdm9pZCB2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKEpTQzo6
U2xvdFZpc2l0b3ImKTsKKwogcHJpdmF0ZToKICAgICBXZWJHTEZyYW1lYnVmZmVyKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEZyYW1lYnVmZmVyLmlkbAppbmRleCA3YzZjYzQ1OTVkOTczNDQ4NWU2Y2U4OTkwMTI4YTI2
MDhjZTZmOTIzLi5iMTM3N2EzNjk5NzE3MjMwM2ZmODZlZGVjOGExM2Q0ZWFhMjRhOTZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmlkbApAQCAt
MjQsNiArMjQsNyBAQAogICovCiAKIFsKLSAgICBDb25kaXRpb25hbD1XRUJHTAorICAgIENvbmRp
dGlvbmFsPVdFQkdMLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbAogXSBpbnRlcmZhY2Ug
V2ViR0xGcmFtZWJ1ZmZlciB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UHJvZ3JhbS5jcHAKaW5kZXggNDBlNzgwN2ZlMTRiNTRkZWY0NjBmOGE4M2U1N2Y4Y2QwNGM3ZjIx
Ny4uODg3OGI5OGZjMTBhMjA1MDNlMGQwZWJlOTA5NDEwYWMyZmY5YjY2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCkBAIC0zMyw2ICszMyw4IEBACiAj
aW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgiCiAjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9TbG90VmlzaXRvci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNp
dG9ySW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CiAKQEAgLTE5Niw2ICsxOTgsMTIgQEAgYm9vbCBXZWJHTFByb2dyYW06OmRl
dGFjaFNoYWRlcihXZWJHTFNoYWRlciogc2hhZGVyKQogICAgIH0KIH0KIAordm9pZCBXZWJHTFBy
b2dyYW06OnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYgdmlzaXRv
cikKK3sKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV92ZXJ0ZXhTaGFkZXIuZ2V0KCkpOwor
ICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2ZyYWdtZW50U2hhZGVyLmdldCgpKTsKK30KKwog
dm9pZCBXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9jYXRpb25zKEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMKiBjb250ZXh0M2QpCiB7CiAgICAgbV9hY3RpdmVBdHRyaWJMb2NhdGlvbnMu
Y2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJv
Z3JhbS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKaW5kZXgg
ODA4ZmQyMGYwOWMwM2NjZTQ2MjczOGQ1NWI2Nzc5Zjk2ZmVkZDJlNy4uN2FmZWI2NzI5YzFmOGVj
NTBhYzRkZDJhZTQ1N2ZjYjlhNGNiMjU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xQcm9ncmFtLmgKQEAgLTM0LDYgKzM0LDEwIEBACiAjaW5jbHVkZSA8d3RmL0xvY2suaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgU2xvdFZp
c2l0b3I7Cit9IC8vIG5hbWVzcGFjZSBKU0MKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwpAQCAtODAsNiArODQsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBtX3JlcXVpcmVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJDb3VudDsKICAgICB9
CiAKKyAgICB2b2lkIHZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYp
OworCiBwcml2YXRlOgogICAgIFdlYkdMUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3Jh
bS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaWRsCmluZGV4
IDdjMTgwZTJiNWRkYTJjZDA2YTMzMjYyNDZmZTJlMGI2YzEwM2M3NmEuLmIyNjhjMDdlZTc5NDFj
ZmM2Y2VmZTliMjM2YmNjOGMzZjMyYjBkMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xQcm9ncmFtLmlkbApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKIFsKLSAgICBDb25k
aXRpb25hbD1XRUJHTAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIEdlbmVyYXRlSXNSZWFj
aGFibGU9SW1wbAogXSBpbnRlcmZhY2UgV2ViR0xQcm9ncmFtIHsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuaWRsCmluZGV4IDIzZDM1M2M0NmE1NTkwYTgxYTY3OTVm
NGRkZTE1NWZhOTM3ODIzYWEuLjdkMzk2OTZlYmVlMzk1NGNjNjc1YTNlY2ZjOGU5Y2I1YTM3YzY1
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuaWRsCkBAIC0yNCw2
ICsyNCw3IEBACiAgKi8KIAogWwotICAgIENvbmRpdGlvbmFsPVdFQkdMCisgICAgQ29uZGl0aW9u
YWw9V0VCR0wsCisgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsCiBdIGludGVyZmFjZSBXZWJH
TFF1ZXJ5IHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmJ1ZmZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmJ1ZmZlci5pZGwKaW5kZXggZmI4NTVhNTZjZTYxNzZiM2U0NDc0ZGY4OTdhMjJkMDk0NGM1OTNm
Ni4uZmQ2MWY4ZDYyYzNmYWU4ZGYzMTk1OGYxZWFkMzk3OGYwYWE2MTU3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbApAQCAtMjQsNiAr
MjQsNyBAQAogICovCiAKIFsKLSAgICBDb25kaXRpb25hbD1XRUJHTAorICAgIENvbmRpdGlvbmFs
PVdFQkdMLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbAogXSBpbnRlcmZhY2UgV2ViR0xS
ZW5kZXJidWZmZXIgewogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggZDUyZGQ2ZDRiNDcwMzI2Mjlk
MWUyODFjNzEwZWZlYjY0NzQxNTI5ZS4uN2QzYjcwMzQ4NTlhODA3MjU2YTM1MWUxODQ3NWUwZWRh
ZjQwMmVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTEwMiw2ICsxMDIsOCBAQAogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9T
Y3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRDYWxsU3Rh
Y2tGYWN0b3J5Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0b3IuaD4KKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvcklubGluZXMuaD4KICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5SW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1VpbnQzMkFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+CkBA
IC03NzY0LDYgKzc3NjYsMzggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNw
YXRjaENvbnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKCkKICAgICBxdWV1ZVRhc2tUb0Rpc3BhdGNo
RXZlbnQoKmNhbnZhcywgVGFza1NvdXJjZTo6V2ViR0wsIFdlYkdMQ29udGV4dEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLndlYmdsY29udGV4dGNoYW5nZWRFdmVudCwgRXZlbnQ6OkNhbkJ1YmJs
ZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6OlllcywgZW1wdHlTdHJpbmcoKSkpOwogfQogCit2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMo
SlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qo
bV9ib3VuZEFycmF5QnVmZmVyLmdldCgpKTsKKworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCht
X2JvdW5kVmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpOworICAgIGlmIChtX2JvdW5kVmVydGV4QXJy
YXlPYmplY3QpCisgICAgICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+dmlzaXRSZWZlcmVu
Y2VkSlNXcmFwcGVycyh2aXNpdG9yKTsKKworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2N1
cnJlbnRQcm9ncmFtLmdldCgpKTsKKyAgICBpZiAobV9jdXJyZW50UHJvZ3JhbSkKKyAgICAgICAg
bV9jdXJyZW50UHJvZ3JhbS0+dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyh2aXNpdG9yKTsKKwor
ICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2ZyYW1lYnVmZmVyQmluZGluZy5nZXQoKSk7Cisg
ICAgaWYgKG1fZnJhbWVidWZmZXJCaW5kaW5nKQorICAgICAgICBtX2ZyYW1lYnVmZmVyQmluZGlu
Zy0+dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyh2aXNpdG9yKTsKKworICAgIHZpc2l0b3IuYWRk
T3BhcXVlUm9vdChtX3JlbmRlcmJ1ZmZlckJpbmRpbmcuZ2V0KCkpOworCisgICAgZm9yIChhdXRv
JiB1bml0IDogbV90ZXh0dXJlVW5pdHMpIHsKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290
KHVuaXQudGV4dHVyZTJEQmluZGluZy5nZXQoKSk7CisgICAgICAgIHZpc2l0b3IuYWRkT3BhcXVl
Um9vdCh1bml0LnRleHR1cmVDdWJlTWFwQmluZGluZy5nZXQoKSk7CisgICAgICAgIHZpc2l0b3Iu
YWRkT3BhcXVlUm9vdCh1bml0LnRleHR1cmUzREJpbmRpbmcuZ2V0KCkpOworICAgICAgICB2aXNp
dG9yLmFkZE9wYXF1ZVJvb3QodW5pdC50ZXh0dXJlMkRBcnJheUJpbmRpbmcuZ2V0KCkpOworICAg
IH0KKworICAgIC8vIEV4dGVuc2lvbnMnIElETCBmaWxlcyB1c2UgR2VuZXJhdGVJc1JlYWNoYWJs
ZT1JbXBsV2ViR0xSZW5kZXJpbmdDb250ZXh0LAorICAgIC8vIHdoaWNoIGNoZWNrcyB0byBzZWUg
d2hldGhlciB0aGUgY29udGV4dCBpcyBpbiB0aGUgb3BhcXVlIHJvb3Qgc2V0IChpdCBpczsKKyAg
ICAvLyBpdCdzIGFkZGVkIGluIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0IC8gSlNXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0J3MgY3VzdG9tCisgICAgLy8gYmluZGluZ3MgY29kZSkuIEZvciB0aGlzIHJl
YXNvbiBpdCdzIHVubmVjZXNzYXJ5IHRvIGV4cGxpY2l0bHkgYWRkIG9wYXF1ZQorICAgIC8vIHJv
b3RzIGZvciBleHRlbnNpb25zLgorfQorCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnByZXBhcmVGb3JEaXNwbGF5KCkKIHsKICAgICBpZiAoIW1fY29udGV4dCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaApp
bmRleCA4ZTdmNGEyZDYxMzY1ODVhMTM4NTlkMzBlYWMwODUyM2QyZjRjNmI0Li5mY2U5MDEzZGM5
M2I5OTdjMDlmZjU0ZTA1MjZmYTliYzc0ZTdlZDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC01Niw2ICs1
NiwxMCBAQAogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjZW5kaWYKIAorbmFt
ZXNwYWNlIEpTQyB7CitjbGFzcyBTbG90VmlzaXRvcjsKK30gLy8gbmFtZXNwYWNlIEpTQworCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFOR0xFSW5zdGFuY2VkQXJyYXlzOwpAQCAtMzk4
LDYgKzQwMiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlY3ljbGVDb250ZXh0KCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkaXNwYXRjaENvbnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKCkgb3ZlcnJpZGU7
CiAKKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RW
aXNpdG9yJik7CisKIHByb3RlY3RlZDoKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENh
bnZhc0Jhc2UmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKICAgICBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlKENhbnZhc0Jhc2UmLCBSZWY8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+JiYsIFdl
YkdMQ29udGV4dEF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xTYW1wbGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
U2FtcGxlci5pZGwKaW5kZXggNGU1NDRjYTZlNDQ0ODczOWNjY2Y5YTY4ZGM0ZDdlNzYxMzQ0ZmUx
NC4uYjhlZGMyZjY3NTlkMThjZTgyY2M4MDJhNDFiMGE4NzkxOTk3OTNkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNhbXBsZXIuaWRsCkBAIC0yNCw2ICsyNCw3IEBACiAg
Ki8KIAogWwotICAgIENvbmRpdGlvbmFsPVdFQkdMCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisg
ICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsCiBdIGludGVyZmFjZSBXZWJHTFNhbXBsZXIgewog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbAppbmRleCA1MmY5
NjIwMjU2MTVjZjU3MDZhMmM3ZTdmZDJlYmE1NmQ5YjUxYjFlLi5iNTA3OTQ2MDFkZTBiODI4ZGY2
NTY5ZTBmOGQ3ZDY2MDMyNTE0NDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFNoYWRlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xTaGFkZXIuaWRsCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogWwotICAgIENvbmRpdGlvbmFs
PVdFQkdMCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1J
bXBsCiBdIGludGVyZmFjZSBXZWJHTFNoYWRlciB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVGV4dHVyZS5pZGwKaW5kZXggNjdkZmEzYzRmNmUxMWZmYWRhODQ1NWE3MDEx
MjU0MmMwMjBkNTg0ZS4uYTYzMDZlNWE1MWI2MTAwZDIyODZhZGIyODIyNTY2YThiNTU1NTE1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaWRsCkBAIC0yNCw2
ICsyNCw3IEBACiAgKi8KIAogWwotICAgIENvbmRpdGlvbmFsPVdFQkdMCisgICAgQ29uZGl0aW9u
YWw9V0VCR0wsCisgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsCiBdIGludGVyZmFjZSBXZWJH
TFRleHR1cmUgewogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVHJhbnNmb3JtRmVlZGJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xUcmFuc2Zvcm1GZWVkYmFjay5jcHAKaW5kZXggOTE1Y2FlMjgwMzYxYzcwNmZjNTFjN2ZiZmE4
N2MyODg5YTA1Mjk0My4uYWQ1Mjg1NTFiMjE4ZDg0YzIwMzFjMDQxOThjMWM2Y2FhNGYxOTk5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVk
YmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1G
ZWVkYmFjay5jcHAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdy
b3VwLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9yLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
U2xvdFZpc2l0b3JJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODYsNiAr
ODgsMTQgQEAgYm9vbCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpoYXNFbm91Z2hCdWZmZXJzKEdD
R0x1aW50IG51bVJlcXVpcmVkKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFdl
YkdMVHJhbnNmb3JtRmVlZGJhY2s6OnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90
VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6IG1fYm91bmRJbmRl
eGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzKQorICAgICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJv
b3QoYnVmZmVyLmdldCgpKTsKKworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX3Byb2dyYW0u
Z2V0KCkpOworfQorCiB2b2lkIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OnVuYmluZEJ1ZmZlcihX
ZWJHTEJ1ZmZlciYgYnVmZmVyKQogewogICAgIGZvciAoYXV0byYgYm91bmRCdWZmZXIgOiBtX2Jv
dW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVycykgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCmluZGV4IDc3ZGI5NTQ4
YzNiODQ1NTA1NmZhNzE3YWY0MTM2NGYyMmUxNzhkM2IuLmUxZGMyNGMzMGIxZDA3N2RiZWExNmQ1
MTQ4NjM2YzYwYjg3ZTY5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgKQEAgLTMwLDYgKzMwLDEwIEBACiAjaW5jbHVkZSAi
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMU2hhcmVkT2JqZWN0Lmgi
CiAKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgU2xvdFZpc2l0b3I7Cit9IC8vIG5hbWVzcGFjZSBK
U0MKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFRyYW5zZm9ybUZlZWRiYWNr
IGZpbmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2JqZWN0IHsKQEAgLTYxLDYgKzY1LDkgQEAgcHVi
bGljOgogICAgIHZvaWQgdW5iaW5kQnVmZmVyKFdlYkdMQnVmZmVyJik7CiAgICAgCiAgICAgYm9v
bCBoYXNFbm91Z2hCdWZmZXJzKEdDR0x1aW50IG51bVJlcXVpcmVkKSBjb25zdDsKKworICAgIHZv
aWQgdmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RWaXNpdG9yJik7CisKIHByaXZh
dGU6CiAgICAgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTDJSZW5kZXJpbmdDb250ZXh0Jik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3Jt
RmVlZGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1G
ZWVkYmFjay5pZGwKaW5kZXggOTM3M2MxOGY4Zjc0NzIzZjQ5ODA4OGMyZmJjMmVkMDk2YzZiNjQz
My4uNDVhYmQ1ZTJmMmVjMjQ4YjgzNGU0OTNhNGIyNWZmNzZkM2U2NjdjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5pZGwK
QEAgLTI1LDYgKzI1LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQkdMMiwKLSAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYkdMMgorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR0wyLAorICAgIEdl
bmVyYXRlSXNSZWFjaGFibGU9SW1wbAogXSBpbnRlcmZhY2UgV2ViR0xUcmFuc2Zvcm1GZWVkYmFj
ayB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRl
eEFycmF5T2JqZWN0LmlkbAppbmRleCA2N2ExZjlkZWMxNzllZjUyMTJlZmU5MjY4MzY4YTUxZjBm
NzExMjBmLi5kZDljNWE4MTE0MTY0NTEzNWMxMjVmNjI3NDY0Mzc4MGY1M2NjYzk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0
LmlkbApAQCAtMjUsNiArMjUsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCR0wyLAotICAg
IEVuYWJsZWRBdFJ1bnRpbWU9V2ViR0wyCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHTDIsCisg
ICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsCiBdIGludGVyZmFjZSBXZWJHTFZlcnRleEFycmF5
T2JqZWN0IHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKaW5kZXggMTFjYzhiOWU1NGI3Y2Q5N2I4NGRi
M2QzM2JkYTliZTEzNDUxMjIyNS4uMWU1Y2VmMzU1YzU3ODJhNzU3YTZhZWExNGY3Zjc4YWE1ZjU1
Y2JjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcApAQCAtMjksNiArMjksOCBAQAogI2lmIEVOQUJMRShX
RUJHTCkKIAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1Nsb3RWaXNpdG9ySW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEwNCw3
ICsxMDYsMTQgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4QXR0
cmliRGl2aXNvcihHQ0dMdWludCBpbmRleCwgR0NHTHVpbnQKIHsKICAgICBtX3ZlcnRleEF0dHJp
YlN0YXRlW2luZGV4XS5kaXZpc29yID0gZGl2aXNvcjsKIH0KLSAgICAKKwordm9pZCBXZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZTo6dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RW
aXNpdG9yJiB2aXNpdG9yKQoreworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2JvdW5kRWxl
bWVudEFycmF5QnVmZmVyLmdldCgpKTsKKyAgICBmb3IgKGF1dG8mIHN0YXRlIDogbV92ZXJ0ZXhB
dHRyaWJTdGF0ZSkKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHN0YXRlLmJ1ZmZlckJp
bmRpbmcuZ2V0KCkpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJh
c2UuaAppbmRleCA0YmQ5MTM1MTBmNjJiZWJjOTg1YzU3M2RkNjg4YjlkZTcxZmYzYWEyLi5iYTNl
ZmI0ZmEwMmM5YTk4ODM1YzIyN2Y0NWEwOGFhYjIyMzFkMDQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgKQEAg
LTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKICNpbmNsdWRlICJXZWJH
TENvbnRleHRPYmplY3QuaCIKIAorbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBTbG90VmlzaXRvcjsK
K30gLy8gbmFtZXNwYWNlIEpTQworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlIDogcHVibGljIFdlYkdMQ29udGV4dE9iamVjdCB7CkBAIC02
OCw2ICs3Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VmVydGV4QXR0cmliRGl2aXNvcihH
Q0dMdWludCBpbmRleCwgR0NHTHVpbnQgZGl2aXNvcik7CiAKKyAgICB2b2lkIHZpc2l0UmVmZXJl
bmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYpOworCiBwcm90ZWN0ZWQ6CiAgICAgV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYsIFR5cGUp
OwogICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIFBs
YXRmb3JtR0xPYmplY3QpIG92ZXJyaWRlID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwKaW5kZXggZjE5MGE3
ZTY0MTM4ZTVkOTZiNTI3YjI2ZTJmMzQ2MjVmMmNiZDQ3Ni4uNDVhMDU3ZGI3MzM1YWQyOGEwYWNl
NTZhNTdkZTE3NjcwMWNiYjFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwKQEAgLTI1LDYgKzI1LDcgQEAK
IAogWwogICAgIE5vSW50ZXJmYWNlT2JqZWN0LAotICAgIENvbmRpdGlvbmFsPVdFQkdMCisgICAg
Q29uZGl0aW9uYWw9V0VCR0wsCisgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsCiBdIGludGVy
ZmFjZSBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTIHsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWRlNGJiNTUzYTBm
ZjM0YjI1MWQ4MmNhMjJiNGNjZjQxMmU5MTI0My4uOTAwY2MzNjgxNmVjNzBlZmMyZDEyNTNiYWY3
ZjI5NTc2ZWI2NTMyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA4LTEwICBLZW5uZXRo
IFJ1c3NlbGwgIDxrYnJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtXZWJHTDJdIGV4cGFuZG8t
bG9zcyBhbmQgZXhwYW5kby1sb3NzLTIgY29uZm9ybWFuY2UgdGVzdHMgYXJlIGZhaWxpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc2NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUg
ZXhwYW5kby1sb3NzLmh0bWwgYW5kIGV4cGFuZG8tbG9zcy0yLmh0bWwsIHdoaWNoIGFyZQorICAg
ICAgICBub3cgZnVsbHkgcGFzc2luZy4KKworICAgICAgICBBZGQgYSBob29rIHRvIGpzLXRlc3Qt
cHJlLmpzIHdoaWNoIGFsbG93cyB0aGlzIHRlc3QgdG8gYmUgcnVuCisgICAgICAgIGNvcnJlY3Rs
eSBpbiB0aGUgTWluaUJyb3dzZXIgYnkgc2V0dGluZyB0aGUgZm9sbG93aW5nIGVudmlyb25tZW50
CisgICAgICAgIHZhcmlhYmxlczoKKyAgICAgICAgICBleHBvcnQgSlNDX3VzZURvbGxhclZNPTEK
KyAgICAgICAgICBleHBvcnQgX19YUENfSlNDX3VzZURvbGxhclZNPTEKKworICAgICAgICAqIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlL21pc2MvZXhwYW5kby1sb3NzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvbWlzYy9leHBhbmRvLWxvc3MtMi1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViZ2wvMi4wLjAvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvanMvanMtdGVzdC1wcmUuanM6CisKIDIwMjAtMDgtMTAgIExhdXJvIE1vdXJhICA8bG1vdXJh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBHYXJkZW5pbmcgZmFpbHVyZXMgYW5k
IHJlYmFzZWxpbmUgc29tZSB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlL21pc2MvZXhwYW5kby1sb3NzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL21pc2MvZXhwYW5kby1sb3NzLWV4cGVjdGVkLnR4
dAppbmRleCA4NDYxZDMyZjNjZDViNGJmNzM4YmIwNzliOWMxYWY3YzNiNzIzYzU0Li43YzFiOWQ4
MTdlYzdiYTk1M2E3Mzk2OWM5YmM2YTQyNDMxZWQ0OThiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS9taXNjL2V4cGFuZG8tbG9zcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UvbWlzYy9leHBhbmRvLWxv
c3MtZXhwZWN0ZWQudHh0CkBAIC0xLDU2ICsxLDUgQEAKIFRoaXMgdGVzdCBydW5zIHRoZSBXZWJH
TCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlM
LgogCiBUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9t
aXNjL2V4cGFuZG8tbG9zcy5odG1sCi1bIDE6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9C
SU5ESU5HXzJEKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAyOiBGQUlMIF0g
Z2V0UGFyYW1ldGVyKFRFWFRVUkVfQklORElOR18yRCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzogRkFJTCBdIGdldFBhcmFtZXRlcihURVhUVVJFX0JJ
TkRJTkdfMkQpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyA0OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKEZSQU1FQlVGRkVSX0JJTkRJTkcpIHJldHVybnMg
aW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDU6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoRlJBTUVC
VUZGRVJfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgNjogRkFJTCBdIGdldFBhcmFtZXRlcihGUkFNRUJVRkZFUl9CSU5ESU5HKTogRXhwZWN0
IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNzogUEFTUyBdIGdl
dFBhcmFtZXRlcihSRU5ERVJCVUZGRVJfQklORElORykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdh
cyBib3VuZC4KLVsgODogRkFJTCBdIGdldFBhcmFtZXRlcihSRU5ERVJCVUZGRVJfQklORElORyk6
IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgOTogRkFJTCBd
IGdldFBhcmFtZXRlcihSRU5ERVJCVUZGRVJfQklORElORyk6IEV4cGVjdCBzdWJvYmplY3QgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDEwOiBQQVNTIF0gZ2V0UGFyYW1ldGVyKEVM
RU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkcpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91
bmQuCi1bIDExOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKEVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJ
TkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDEyOiBG
QUlMIF0gZ2V0UGFyYW1ldGVyKEVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3Qg
c3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxMzogUEFTUyBdIGdl
dFBhcmFtZXRlcihBUlJBWV9CVUZGRVJfQklORElORykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdh
cyBib3VuZC4KLVsgMTQ6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoQVJSQVlfQlVGRkVSX0JJTkRJTkcp
OiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE1OiBGQUlM
IF0gZ2V0UGFyYW1ldGVyKEFSUkFZX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IHN1Ym9iamVjdCBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTY6IFBBU1MgXSBnZXRQYXJhbWV0ZXIo
VEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5k
LgotWyAxNzogRkFJTCBdIGdldFBhcmFtZXRlcihURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVApOiBF
eHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE4OiBGQUlMIF0g
Z2V0UGFyYW1ldGVyKFRFWFRVUkVfQklORElOR19DVUJFX01BUCk6IEV4cGVjdCBzdWJvYmplY3Qg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE5OiBQQVNTIF0gZ2V0UGFyYW1ldGVy
KGdsLkNVUlJFTlRfUFJPR1JBTSkgcmV0dXJuIGluc3RhbmNlIHNldCB3aXRoIHVzZVByb2dyYW0K
LVsgMjA6IFBBU1MgXSBWZXJ0ZXggc2hhZGVyIGluc3RhbmNlIGZvdW5kIGluIGdldEF0dGFjaGVk
U2hhZGVycwotWyAyMTogUEFTUyBdIEZyYWdtZW50IHNoYWRlciBpbnN0YW5jZSBmb3VuZCBpbiBn
ZXRBdHRhY2hlZFNoYWRlcnMKLVsgMjI6IEZBSUwgXSBDdXJyZW50IHByb2dyYW06IEV4cGVjdCBi
YXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjM6IEZBSUwgXSBDdXJyZW50
IHByb2dyYW06IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDI0OiBQQVNTIF0gW29iamVjdCBXZWJHTFByb2dyYW1dIGlzIGFuIGluc3RhbmNlIG9mIFdl
YkdMUHJvZ3JhbQotWyAyNTogRkFJTCBdIFNoYWRlclswXTogRXhwZWN0IGJhc2ljIGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNjogRkFJTCBdIFNoYWRlclswXTogRXhwZWN0IHN1
Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjc6IFBBU1MgXSBbb2Jq
ZWN0IFdlYkdMU2hhZGVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTFNoYWRlcgotWyAyODogRkFJ
TCBdIFNoYWRlclsxXTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAyOTogRkFJTCBdIFNoYWRlclsxXTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzA6IFBBU1MgXSBbb2JqZWN0IFdlYkdMU2hhZGVyXSBpcyBh
biBpbnN0YW5jZSBvZiBXZWJHTFNoYWRlcgotWyAzMTogUEFTUyBdIGdldFZlcnRleEF0dHJpYihW
RVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HKSByZXR1cm4gaW5zdGFuY2Ugc2V0IHdp
dGggdmVydGV4QXR0cmliUG9pbnRlcgotWyAzMjogRkFJTCBdIFZlcnRleCBBdHRyaWJ1dGUgQnVm
ZmVyOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMzOiBG
QUlMIF0gVmVydGV4IEF0dHJpYnV0ZSBCdWZmZXI6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDM0OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0g
aXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMzU6IFBBU1MgXSBnZXRGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRQYXJhbWV0ZXIoQ09MT1JfQVRUQUNITUVOVDApIHJldHVybnMgaW5zdGFuY2Ug
c2V0IHdpdGggZnJhbWVidWZmZXJSZW5kZXJidWZmZXIKLVsgMzY6IFBBU1MgXSBnZXRGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoREVQVEhfQVRUQUNITUVOVCkgcmV0dXJucyBpbnN0YW5j
ZSBzZXQgd2l0aCBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcgotWyAzNzogUEFTUyBdIGdldEZyYW1l
YnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihTVEVOQ0lMX0FUVEFDSE1FTlQpIHJldHVybnMgaW5z
dGFuY2Ugc2V0IHdpdGggZnJhbWVidWZmZXJSZW5kZXJidWZmZXIKLVsgMzg6IFBBU1MgXSBnZXRG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UKSBy
ZXR1cm5zIGluc3RhbmNlIHNldCB3aXRoIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyCi1bIDM5OiBG
QUlMIF0gQ09MT1JfQVRUQUNITUVOVDA6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgNDA6IEZBSUwgXSBDT0xPUl9BVFRBQ0hNRU5UMDogRXhwZWN0IHN1Ym9i
amVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDE6IFBBU1MgXSBbb2JqZWN0
IFdlYkdMUmVuZGVyYnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTFJlbmRlcmJ1ZmZlcgot
WyA0MjogRkFJTCBdIERFUFRIX0FUVEFDSE1FTlQ6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDM6IEZBSUwgXSBERVBUSF9BVFRBQ0hNRU5UOiBFeHBlY3Qg
c3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0NDogUEFTUyBdIFtv
YmplY3QgV2ViR0xSZW5kZXJidWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMUmVuZGVyYnVm
ZmVyCi1bIDQ1OiBGQUlMIF0gU1RFTkNJTF9BVFRBQ0hNRU5UOiBFeHBlY3QgYmFzaWMgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDQ2OiBGQUlMIF0gU1RFTkNJTF9BVFRBQ0hNRU5U
OiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0Nzog
UEFTUyBdIFtvYmplY3QgV2ViR0xSZW5kZXJidWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdM
UmVuZGVyYnVmZmVyCi1bIDQ4OiBGQUlMIF0gREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UOiBFeHBl
Y3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDQ5OiBGQUlMIF0gREVQ
VEhfU1RFTkNJTF9BVFRBQ0hNRU5UOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyA1MDogUEFTUyBdIFtvYmplY3QgV2ViR0xSZW5kZXJidWZmZXJdIGlz
IGFuIGluc3RhbmNlIG9mIFdlYkdMUmVuZGVyYnVmZmVyCi1bIDUxOiBQQVNTIF0gc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLVsgRkFJTCBdIDI4IGZhaWx1cmVzIHJlcG9ydGVkCitbIFBBU1Mg
XSBBbGwgdGVzdHMgcGFzc2VkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi9taXNjL2V4cGFuZG8tbG9zcy0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9taXNjL2V4cGFuZG8tbG9zcy0yLWV4cGVjdGVk
LnR4dAppbmRleCBmYzAyOTZhYjRlYWQ1MDQ4NGM0ODM0M2ZmZjNhYzUwYTY1ZjA4ZWU4Li45Y2Qy
MjI1NjA4YjMxOWUzNjRhYjZkNDNjOTMzY2RjZTU0M2IyMWUyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvbWlzYy9leHBhbmRvLWxvc3MtMi1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL21pc2MvZXhw
YW5kby1sb3NzLTItZXhwZWN0ZWQudHh0CkBAIC0xLDM0MSArMSw1IEBACiBUaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC4KIAogVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UyL21pc2MvZXhwYW5kby1sb3NzLTIuaHRtbAotWyAxOiBQQVNTIF0gZ2V0UGFyYW1l
dGVyKFNBTVBMRVJfQklORElORykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsg
MjogRkFJTCBdIGdldFBhcmFtZXRlcihTQU1QTEVSX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDM6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoU0FN
UExFUl9CSU5ESU5HKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgNDogUEFTUyBdIGdldFBhcmFtZXRlcihTQU1QTEVSX0JJTkRJTkcpOiBFeHBlY3Qg
ZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDU6IFBBU1MgXSBbb2JqZWN0
IFdlYkdMU2FtcGxlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xTYW1wbGVyCi1bIDY6IFBBU1Mg
XSBnZXRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJTkcpIHJldHVybnMgaW5zdGFu
Y2UgdGhhdCB3YXMgYm91bmQuCi1bIDc6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZF
RURCQUNLX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDg6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJTkcp
OiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA5OiBQ
QVNTIF0gZ2V0UGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CSU5ESU5HKTogRXhwZWN0IGV4
dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxMDogUEFTUyBdIFtvYmplY3Qg
V2ViR0xUcmFuc2Zvcm1GZWVkYmFja10gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xUcmFuc2Zvcm1G
ZWVkYmFjawotWyAxMTogUEFTUyBdIGdldFBhcmFtZXRlcihWRVJURVhfQVJSQVlfQklORElORykg
cmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTI6IEZBSUwgXSBnZXRQYXJhbWV0
ZXIoVkVSVEVYX0FSUkFZX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDEzOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFZFUlRFWF9BUlJBWV9CSU5E
SU5HKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MTQ6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVkVSVEVYX0FSUkFZX0JJTkRJTkcpOiBFeHBlY3QgZXh0
cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE1OiBQQVNTIF0gW29iamVjdCBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0XSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTFZlcnRleEFycmF5
T2JqZWN0Ci1bIDE2OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFRFWFRVUkVfQklORElOR18zRCkgcmV0
dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTc6IEZBSUwgXSBnZXRQYXJhbWV0ZXIo
VEVYVFVSRV9CSU5ESU5HXzNEKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNw
aXRlIEdDLgotWyAxODogRkFJTCBdIGdldFBhcmFtZXRlcihURVhUVVJFX0JJTkRJTkdfM0QpOiBF
eHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxOTogUEFT
UyBdIGdldFBhcmFtZXRlcihURVhUVVJFX0JJTkRJTkdfM0QpOiBFeHBlY3QgZXh0cmEgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIwOiBQQVNTIF0gW29iamVjdCBXZWJHTFRleHR1
cmVdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMVGV4dHVyZQotWyAyMTogUEFTUyBdIGdldFBhcmFt
ZXRlcihURVhUVVJFX0JJTkRJTkdfMkRfQVJSQVkpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMg
Ym91bmQuCi1bIDIyOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFRFWFRVUkVfQklORElOR18yRF9BUlJB
WSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjM6IEZB
SUwgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5ESU5HXzJEX0FSUkFZKTogRXhwZWN0IHN1Ym9i
amVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjQ6IFBBU1MgXSBnZXRQYXJh
bWV0ZXIoVEVYVFVSRV9CSU5ESU5HXzJEX0FSUkFZKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNTogUEFTUyBdIFtvYmplY3QgV2ViR0xUZXh0dXJlXSBp
cyBhbiBpbnN0YW5jZSBvZiBXZWJHTFRleHR1cmUKLVsgMjY6IFBBU1MgXSBnZXRQYXJhbWV0ZXIo
UkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5k
LgotWyAyNzogRkFJTCBdIGdldFBhcmFtZXRlcihSRUFEX0ZSQU1FQlVGRkVSX0JJTkRJTkcpOiBF
eHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI4OiBGQUlMIF0g
Z2V0UGFyYW1ldGVyKFJFQURfRlJBTUVCVUZGRVJfQklORElORyk6IEV4cGVjdCBzdWJvYmplY3Qg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI5OiBQQVNTIF0gZ2V0UGFyYW1ldGVy
KFJFQURfRlJBTUVCVUZGRVJfQklORElORyk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgMzA6IFBBU1MgXSBbb2JqZWN0IFdlYkdMRnJhbWVidWZmZXJdIGlz
IGFuIGluc3RhbmNlIG9mIFdlYkdMRnJhbWVidWZmZXIKLVsgMzE6IFBBU1MgXSBnZXRQYXJhbWV0
ZXIoRFJBV19GUkFNRUJVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJv
dW5kLgotWyAzMjogRkFJTCBdIGdldFBhcmFtZXRlcihEUkFXX0ZSQU1FQlVGRkVSX0JJTkRJTkcp
OiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMzOiBGQUlM
IF0gZ2V0UGFyYW1ldGVyKERSQVdfRlJBTUVCVUZGRVJfQklORElORyk6IEV4cGVjdCBzdWJvYmpl
Y3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDM0OiBQQVNTIF0gZ2V0UGFyYW1l
dGVyKERSQVdfRlJBTUVCVUZGRVJfQklORElORyk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzU6IFBBU1MgXSBbb2JqZWN0IFdlYkdMRnJhbWVidWZmZXJd
IGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMRnJhbWVidWZmZXIKLVsgMzY6IFBBU1MgXSBnZXRQYXJh
bWV0ZXIoQ09QWV9SRUFEX0JVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2Fz
IGJvdW5kLgotWyAzNzogRkFJTCBdIGdldFBhcmFtZXRlcihDT1BZX1JFQURfQlVGRkVSX0JJTkRJ
TkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDM4OiBG
QUlMIF0gZ2V0UGFyYW1ldGVyKENPUFlfUkVBRF9CVUZGRVJfQklORElORyk6IEV4cGVjdCBzdWJv
YmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDM5OiBQQVNTIF0gZ2V0UGFy
YW1ldGVyKENPUFlfUkVBRF9CVUZGRVJfQklORElORyk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDA6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBp
cyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA0MTogUEFTUyBdIGdldFBhcmFtZXRlcihD
T1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5k
LgotWyA0MjogRkFJTCBdIGdldFBhcmFtZXRlcihDT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HKTog
RXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0MzogRkFJTCBd
IGdldFBhcmFtZXRlcihDT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IHN1Ym9iamVj
dCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDQ6IFBBU1MgXSBnZXRQYXJhbWV0
ZXIoQ09QWV9XUklURV9CVUZGRVJfQklORElORyk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDU6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBh
biBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA0NjogUEFTUyBdIGdldFBhcmFtZXRlcihQSVhF
TF9QQUNLX0JVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgot
WyA0NzogRkFJTCBdIGdldFBhcmFtZXRlcihQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HKTogRXhw
ZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0ODogRkFJTCBdIGdl
dFBhcmFtZXRlcihQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IHN1Ym9iamVjdCBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDk6IFBBU1MgXSBnZXRQYXJhbWV0ZXIo
UElYRUxfUEFDS19CVUZGRVJfQklORElORyk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgNTA6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBp
bnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA1MTogUEFTUyBdIGdldFBhcmFtZXRlcihQSVhFTF9V
TlBBQ0tfQlVGRkVSX0JJTkRJTkcpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1b
IDUyOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFBJWEVMX1VOUEFDS19CVUZGRVJfQklORElORyk6IEV4
cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNTM6IEZBSUwgXSBn
ZXRQYXJhbWV0ZXIoUElYRUxfVU5QQUNLX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IHN1Ym9iamVj
dCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNTQ6IFBBU1MgXSBnZXRQYXJhbWV0
ZXIoUElYRUxfVU5QQUNLX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyA1NTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlz
IGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDU2OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFRS
QU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdh
cyBib3VuZC4KLVsgNTc6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JV
RkZFUl9CSU5ESU5HKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyA1ODogRkFJTCBdIGdldFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJ
TkRJTkcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgot
WyA1OTogUEFTUyBdIGdldFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJ
TkcpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDYwOiBQ
QVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIK
LVsgNjE6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORykgcmV0dXJu
cyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNjI6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVU5J
Rk9STV9CVUZGRVJfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVz
cGl0ZSBHQy4KLVsgNjM6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
Ryk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDY0
OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3QgZXh0
cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDY1OiBQQVNTIF0gW29iamVjdCBX
ZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgNjY6IFBBU1MgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMCkg
cmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNjc6IFBBU1MgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMSkgcmV0dXJucyBp
bnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNjg6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMikgcmV0dXJucyBpbnN0YW5jZSB0
aGF0IHdhcyBib3VuZC4KLVsgNjk6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9S
TV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBi
b3VuZC4KLVsgNzA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFD
S19CVUZGRVJfQklORElORywgMCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVz
cGl0ZSBHQy4KLVsgNzE6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVE
QkFDS19CVUZGRVJfQklORElORywgMCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDcyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihUUkFOU0ZP
Uk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcsIDApOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDczOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMg
YW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgNzQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMSk6IEV4cGVjdCBiYXNpYyBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNzU6IEZBSUwgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMSk6IEV4cGVjdCBzdWJv
YmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDc2OiBGQUlMIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcsIDEpOiBFeHBl
Y3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDc3OiBQQVNTIF0gW29i
amVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgNzg6IEZB
SUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElO
RywgMik6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNzk6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklO
RElORywgMik6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDgwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVFREJBQ0tfQlVG
RkVSX0JJTkRJTkcsIDIpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDgxOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2Yg
V2ViR0xCdWZmZXIKLVsgODI6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9G
RUVEQkFDS19CVUZGRVJfQklORElORywgMyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgODM6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9S
TV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDg0OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihU
UkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcsIDMpOiBFeHBlY3QgZXh0cmEgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDg1OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZl
cl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgODY6IFBBU1MgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDApIHJldHVybnMgaW5zdGFuY2UgdGhh
dCB3YXMgYm91bmQuCi1bIDg3OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCAxKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA4ODog
UEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMikgcmV0
dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgODk6IFBBU1MgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3
YXMgYm91bmQuCi1bIDkwOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCA0KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA5MTogUEFT
UyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNSkgcmV0dXJu
cyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgOTI6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDYpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMg
Ym91bmQuCi1bIDkzOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCA3KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA5NDogUEFTUyBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgOCkgcmV0dXJucyBp
bnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgOTU6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDkpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91
bmQuCi1bIDk2OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAxMCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgOTc6IFBBU1MgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDExKSByZXR1cm5zIGlu
c3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA5ODogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIo
VU5JRk9STV9CVUZGRVJfQklORElORywgMTIpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91
bmQuCi1bIDk5OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAxMykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTAwOiBQQVNTIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxNCkgcmV0dXJucyBp
bnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTAxOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxNSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBi
b3VuZC4KLVsgMTAyOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCAxNikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTAzOiBQQVNT
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxNykgcmV0dXJu
cyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTA0OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxOCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdh
cyBib3VuZC4KLVsgMTA1OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCAxOSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTA2OiBQ
QVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMCkgcmV0
dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTA3OiBQQVNTIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0
IHdhcyBib3VuZC4KLVsgMTA4OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCAyMikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTA5
OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMykg
cmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTEwOiBQQVNTIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNCkgcmV0dXJucyBpbnN0YW5jZSB0
aGF0IHdhcyBib3VuZC4KLVsgMTExOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCAyNSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsg
MTEyOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAy
NikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTEzOiBQQVNTIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNykgcmV0dXJucyBpbnN0YW5j
ZSB0aGF0IHdhcyBib3VuZC4KLVsgMTE0OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCAyOCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4K
LVsgMTE1OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCAyOSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTE2OiBQQVNTIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMCkgcmV0dXJucyBpbnN0
YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTE3OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3Vu
ZC4KLVsgMTE4OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAzMikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTE5OiBQQVNTIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMykgcmV0dXJucyBp
bnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTIwOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBi
b3VuZC4KLVsgMTIxOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCAzNSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTIyOiBQQVNT
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNikgcmV0dXJu
cyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTIzOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdh
cyBib3VuZC4KLVsgMTI0OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCAzOCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTI1OiBQ
QVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzOSkgcmV0
dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTI2OiBQQVNTIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0MCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0
IHdhcyBib3VuZC4KLVsgMTI3OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCA0MSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTI4
OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Mikg
cmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTI5OiBQQVNTIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0MykgcmV0dXJucyBpbnN0YW5jZSB0
aGF0IHdhcyBib3VuZC4KLVsgMTMwOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCA0NCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsg
MTMxOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0
NSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTMyOiBQQVNTIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NikgcmV0dXJucyBpbnN0YW5j
ZSB0aGF0IHdhcyBib3VuZC4KLVsgMTMzOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCA0NykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4K
LVsgMTM0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCAwKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxMzU6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDApOiBF
eHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxMzY6IEZB
SUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDApOiBFeHBl
Y3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDEzNzogUEFTUyBdIFtv
YmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDEzODog
RkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMSk6IEV4
cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTM5OiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxKTogRXhwZWN0IHN1
Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTQwOiBGQUlMIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxKTogRXhwZWN0IGV4dHJh
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNDE6IFBBU1MgXSBbb2JqZWN0IFdl
YkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxNDI6IEZBSUwgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIpOiBFeHBlY3QgYmFz
aWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE0MzogRkFJTCBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMik6IEV4cGVjdCBzdWJvYmplY3Qg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE0NDogRkFJTCBdIGdldEluZGV4ZWRQ
YXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMik6IEV4cGVjdCBleHRyYSBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTQ1OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZl
cl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTQ2OiBGQUlMIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzKTogRXhwZWN0IGJhc2ljIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNDc6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNDg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDE0OTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFu
IGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE1MDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTUxOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCA0KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgMTUyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCA0KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNw
aXRlIEdDLgotWyAxNTM6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5j
ZSBvZiBXZWJHTEJ1ZmZlcgotWyAxNTQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDUpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDE1NTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZG
RVJfQklORElORywgNSk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDE1NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJf
QklORElORywgNSk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMTU3OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2Vi
R0xCdWZmZXIKLVsgMTU4OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCA2KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAxNTk6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDYpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgot
WyAxNjA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDYpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE2MTog
UEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVy
Ci1bIDE2MjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
RywgNyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTYz
OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA3KTog
RXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTY0OiBG
QUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA3KTogRXhw
ZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNjU6IFBBU1MgXSBb
b2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxNjY6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDgpOiBF
eHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE2NzogRkFJTCBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgOCk6IEV4cGVjdCBz
dWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE2ODogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgOCk6IEV4cGVjdCBleHRy
YSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTY5OiBQQVNTIF0gW29iamVjdCBX
ZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTcwOiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA5KTogRXhwZWN0IGJh
c2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNzE6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDkpOiBFeHBlY3Qgc3Vib2JqZWN0
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNzI6IEZBSUwgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDkpOiBFeHBlY3QgZXh0cmEgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE3MzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZm
ZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE3NDogRkFJTCBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTApOiBFeHBlY3QgYmFzaWMgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE3NTogRkFJTCBdIGdldEluZGV4ZWRQYXJh
bWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTApOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNzY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEwKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNzc6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBp
cyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxNzg6IEZBSUwgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDExKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNzk6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDExKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTgwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMSk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgMTgxOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4g
aW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTgyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMik6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTgzOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCAxMik6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDE4NDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9S
TV9CVUZGRVJfQklORElORywgMTIpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDE4NTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3Rh
bmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE4NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5J
Rk9STV9CVUZGRVJfQklORElORywgMTMpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDE4NzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9C
VUZGRVJfQklORElORywgMTMpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyAxODg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDEzKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyAxODk6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBv
ZiBXZWJHTEJ1ZmZlcgotWyAxOTA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDE0KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNw
aXRlIEdDLgotWyAxOTE6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVS
X0JJTkRJTkcsIDE0KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgMTkyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCAxNCk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMTkzOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2Vi
R0xCdWZmZXIKLVsgMTk0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCAxNSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMTk1OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAxNSk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDE5NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
RywgMTUpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE5
NzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVm
ZmVyCi1bIDE5ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklO
RElORywgMTYpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDE5OTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywg
MTYpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAy
MDA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE2
KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMDE6IFBB
U1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgot
WyAyMDI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDE3KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMDM6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE3KTog
RXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjA0OiBG
QUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxNyk6IEV4
cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjA1OiBQQVNTIF0g
W29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjA2
OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxOCk6
IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjA3OiBGQUlM
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxOCk6IEV4cGVj
dCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIwODogRkFJTCBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTgpOiBFeHBlY3Qg
ZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIwOTogUEFTUyBdIFtvYmpl
Y3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDIxMDogRkFJ
TCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTkpOiBFeHBl
Y3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIxMTogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTkpOiBFeHBlY3Qgc3Vi
b2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMTI6IEZBSUwgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE5KTogRXhwZWN0IGV4dHJh
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMTM6IFBBU1MgXSBbb2JqZWN0IFdl
YkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyMTQ6IEZBSUwgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIwKTogRXhwZWN0IGJh
c2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMTU6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIwKTogRXhwZWN0IHN1Ym9iamVj
dCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjE2OiBGQUlMIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMCk6IEV4cGVjdCBleHRyYSBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjE3OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1
ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjE4OiBGQUlMIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMSk6IEV4cGVjdCBiYXNpYyBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjE5OiBGQUlMIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMSk6IEV4cGVjdCBzdWJvYmplY3QgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIyMDogRkFJTCBdIGdldEluZGV4ZWRQYXJh
bWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjEpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIyMTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJd
IGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDIyMjogRkFJTCBdIGdldEluZGV4ZWRQ
YXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjIpOiBFeHBlY3QgYmFzaWMgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIyMzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjIpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMjQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIyKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyAyMjU6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBh
biBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyMjY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIzKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMjc6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIzKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjI4OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCAyMyk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgMjI5OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5z
dGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjMwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgMjMxOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCAyNCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDIzMjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9C
VUZGRVJfQklORElORywgMjQpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDIzMzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNl
IG9mIFdlYkdMQnVmZmVyCi1bIDIzNDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9S
TV9CVUZGRVJfQklORElORywgMjUpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDIzNTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZG
RVJfQklORElORywgMjUpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNw
aXRlIEdDLgotWyAyMzY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVS
X0JJTkRJTkcsIDI1KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAyMzc6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBX
ZWJHTEJ1ZmZlcgotWyAyMzg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDI2KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyAyMzk6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDI2KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMjQwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAyNik6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MjQxOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xC
dWZmZXIKLVsgMjQyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCAyNyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMjQzOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCAyNyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDI0NDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywg
MjcpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI0NTog
UEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVy
Ci1bIDI0NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
RywgMjgpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI0
NzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjgp
OiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNDg6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI4KTog
RXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNDk6IFBBU1Mg
XSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAy
NTA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI5
KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNTE6IEZB
SUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI5KTogRXhw
ZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjUyOiBGQUlM
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyOSk6IEV4cGVj
dCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjUzOiBQQVNTIF0gW29i
amVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjU0OiBG
QUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMCk6IEV4
cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjU1OiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMCk6IEV4cGVjdCBz
dWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI1NjogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzApOiBFeHBlY3QgZXh0
cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI1NzogUEFTUyBdIFtvYmplY3Qg
V2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDI1ODogRkFJTCBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzEpOiBFeHBlY3Qg
YmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI1OTogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzEpOiBFeHBlY3Qgc3Vib2Jq
ZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNjA6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMxKTogRXhwZWN0IGV4dHJhIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNjE6IFBBU1MgXSBbb2JqZWN0IFdlYkdM
QnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyNjI6IEZBSUwgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMyKTogRXhwZWN0IGJhc2lj
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNjM6IEZBSUwgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMyKTogRXhwZWN0IHN1Ym9iamVjdCBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjY0OiBGQUlMIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMik6IEV4cGVjdCBleHRyYSBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjY1OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZl
cl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjY2OiBGQUlMIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMyk6IEV4cGVjdCBiYXNpYyBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjY3OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI2ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzMpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI2OTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlz
IGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDI3MDogRkFJTCBdIGdldEluZGV4ZWRQYXJh
bWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzQpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI3MTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIo
VU5JRk9STV9CVUZGRVJfQklORElORywgMzQpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNzI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM0KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyAyNzM6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBp
bnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyNzQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM1KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyAyNzU6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDM1KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgMjc2OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCAzNSk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVz
cGl0ZSBHQy4KLVsgMjc3OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFu
Y2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjc4OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCAzNik6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgMjc5OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCAzNik6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDI4MDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZG
RVJfQklORElORywgMzYpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDI4MTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9m
IFdlYkdMQnVmZmVyCi1bIDI4MjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9C
VUZGRVJfQklORElORywgMzcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDI4MzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJf
QklORElORywgMzcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyAyODQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDM3KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgot
WyAyODU6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJH
TEJ1ZmZlcgotWyAyODY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVS
X0JJTkRJTkcsIDM4KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAyODc6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDM4KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMjg4OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCAzOCk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjg5
OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZm
ZXIKLVsgMjkwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAzOSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MjkxOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAz
OSk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI5
MjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzkp
OiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI5MzogUEFT
UyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1b
IDI5NDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywg
NDApOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI5NTog
RkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDApOiBF
eHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyOTY6IEZB
SUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQwKTogRXhw
ZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyOTc6IFBBU1MgXSBb
b2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyOTg6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQxKTog
RXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyOTk6IEZBSUwg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQxKTogRXhwZWN0
IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzAwOiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0MSk6IEV4cGVjdCBl
eHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzAxOiBQQVNTIF0gW29iamVj
dCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMzAyOiBGQUlM
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Mik6IEV4cGVj
dCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzAzOiBGQUlMIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Mik6IEV4cGVjdCBzdWJv
YmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMwNDogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDIpOiBFeHBlY3QgZXh0cmEg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMwNTogUEFTUyBdIFtvYmplY3QgV2Vi
R0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDMwNjogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDMpOiBFeHBlY3QgYmFz
aWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMwNzogRkFJTCBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDMpOiBFeHBlY3Qgc3Vib2JqZWN0
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMDg6IEZBSUwgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQzKTogRXhwZWN0IGV4dHJhIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMDk6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVm
ZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAzMTA6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ0KTogRXhwZWN0IGJhc2ljIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMTE6IEZBSUwgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ0KTogRXhwZWN0IHN1Ym9iamVjdCBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzEyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NCk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzEzOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0g
aXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMzE0OiBGQUlMIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NSk6IEV4cGVjdCBiYXNpYyBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzE1OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NSk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMxNjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIo
VU5JRk9STV9CVUZGRVJfQklORElORywgNDUpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDMxNzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFu
IGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDMxODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDYpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMxOTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5J
Rk9STV9CVUZGRVJfQklORElORywgNDYpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyAzMjA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDQ2KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyAzMjE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0
YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAzMjI6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ3KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyAzMjM6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDQ3KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgMzI0OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCA0Nyk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgMzI1OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ug
b2YgV2ViR0xCdWZmZXIKLVsgMzI2OiBQQVNTIF0gQ1VSUkVOVF9RVUVSWSByZXR1cm5zIGluc3Rh
bmNlIHRoYXQgd2FzIGJvdW5kLgotWyAzMjc6IFBBU1MgXSBDVVJSRU5UX1FVRVJZIHJldHVybnMg
aW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDMyODogRkFJTCBdIFF1ZXJ5OiBFeHBlY3QgYmFz
aWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMyOTogRkFJTCBdIFF1ZXJ5OiBF
eHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMzA6IFBB
U1MgXSBRdWVyeTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgot
WyAzMzE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMUXVlcnldIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdM
UXVlcnkKLVsgMzMyOiBGQUlMIF0gUXVlcnk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgMzMzOiBGQUlMIF0gUXVlcnk6IEV4cGVjdCBzdWJvYmplY3QgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMzNDogUEFTUyBdIFF1ZXJ5OiBFeHBlY3Qg
ZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMzNTogUEFTUyBdIFtvYmpl
Y3QgV2ViR0xRdWVyeV0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xRdWVyeQotWyAzMzY6IFBBU1Mg
XSBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotWyBGQUlMIF0gMTgwIGZhaWx1cmVzIHJlcG9y
dGVkCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC4wL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcHJlLmpz
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMv
anMtdGVzdC1wcmUuanMKaW5kZXggZTFlNzAxODhmYjk3Mjg1MTI3ZDIwNWVjZDIzYzllZjc2NDA0
ODkzYy4uZTdmMTM4NTkyNDU1MWI5ZTRjNTNmZWQ1NzE4YTc0N2Y3Y2Q0NDkzYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMv
anMtdGVzdC1wcmUuanMKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvcmVzb3VyY2VzL3dl
YmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wcmUuanMKQEAgLTcwOCw2ICs3MDgsMTIgQEAgZnVu
Y3Rpb24gd2ViZ2xIYXJuZXNzQ29sbGVjdEdhcmJhZ2UoKSB7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKKyAgICAvLyBXZWJLaXQncyBNaW5pQnJvd3NlcgorICAgIGlmICh3aW5kb3cuJHZtKSB7
CisgICAgICAgIHdpbmRvdy4kdm0uZ2MoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAg
IGZ1bmN0aW9uIGdjUmVjKG4pIHsKICAgICAgICAgaWYgKG4gPCAxKQogICAgICAgICAgICAgcmV0
dXJuIHt9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406387</attachid>
            <date>2020-08-11 09:43:42 -0700</date>
            <delta_ts>2020-08-12 10:05:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214765-20200811094341.patch</filename>
            <type>text/plain</type>
            <size>64087</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzY2ODYwNDIzNjE2OWJl
OTYwNWQyZGQ5MjYyMWQwNWQ3YmM3ZDJmMS4uYWExNDg5MzQ1ZTg2NjA0YTExNDhjMmQwYzQzZTMz
ZTEyNTAyOTA3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIwLTA4LTExICBLZW5u
ZXRoIFJ1c3NlbGwgIDxrYnJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtXZWJHTDJdIGV4cGFu
ZG8tbG9zcyBhbmQgZXhwYW5kby1sb3NzLTIgY29uZm9ybWFuY2UgdGVzdHMgYXJlIGZhaWxpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDc2NQor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSBKU1dlYkdM
UmVuZGVyaW5nQ29udGV4dCdzIGFuZCBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQncworICAgICAg
ICBleGlzdGluZyB2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbiBob29rICh2aWEgSlNDdXN0b21NYXJr
RnVuY3Rpb24gaW4KKyAgICAgICAgdGhlaXIgSURMKSB0byBhZGQgb3BhcXVlIHJvb3RzIGZvciBh
bGwgV2ViR0xPYmplY3RzIGxhdGNoZWQgaW4gdG8KKyAgICAgICAgdGhlIGNvbnRleHQgc3RhdGUs
IGFuZCBhbGwgV2ViR0xPYmplY3RzIHRoZXkgcmVmZXIgdG8uIChFeHRlbnNpb25zCisgICAgICAg
IHdlcmUgYWxyZWFkeSBwcmV2aW91c2x5IGhhbmRsZWQuKQorCisgICAgICAgIEFkZCAiR2VuZXJh
dGVJc1JlYWNoYWJsZT1JbXBsIiB0byB0aGUgSURMIGZpbGVzIGZvciBhbGwgc3VjaAorICAgICAg
ICBvYmplY3RzIChXZWJHTEJ1ZmZlciwgV2ViR0xUZXh0dXJlLCBldGMuKSBzbyB0aGF0IHRoZXkg
cGF5CisgICAgICAgIGF0dGVudGlvbiB0byB0aGUgb3BhcXVlIHJvb3Qgc3RhdGUgd2hlbiBkZXRl
cm1pbmluZyBsaXZlbmVzcyBvZgorICAgICAgICB0aGVpciBKYXZhU2NyaXB0IHdyYXBwZXJzLiBU
aGFua3MgdG8geXN1enVraUAgZm9yIHBvaW50aW5nIG91dCB0aGUKKyAgICAgICAgbmVlZCBmb3Ig
dGhpcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZp
c2l0QWRkaXRpb25hbENoaWxkcmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVy
aW5nQ29udGV4dDo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4pOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wy
UmVuZGVyaW5nQ29udGV4dDo6dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyk6CisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMQnVmZmVyLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVm
ZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OnZpc2l0UmVmZXJl
bmNlZEpTV3JhcHBlcnMpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIu
aDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmlkbDoKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xQ
cm9ncmFtOjp2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9XZWJHTFByb2dyYW0uaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaWRs
OgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUXVlcnkuaWRsOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMpOgorICAgICAgICAqIGh0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFNhbXBsZXIuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVy
LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaWRsOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyk6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaWRsOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlOjp2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKToKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaWRsOgorCiAyMDIwLTA4LTEx
ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtj
c3MtZmxleGJveF0gT25seSB1cGRhdGUgdGhlIGludHJpbnNpYyBoZWlnaHQgaWYgd2UgZG9uJ3Qg
aGF2ZSBhbiBvdmVycmlkZSBoZWlnaHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IDY1
YTU4Y2Q3NmY5N2JjZDhlMTNjZjliYTAzMDEwZDRlODdkMDg1ZWUuLmU2Y2MyODcxZjAzYTliYjg4
NDNkMTU5ZTIzN2UxMjFmOWY5YzAwMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAt
MzYsNiArMzYsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogdm9pZCBKU1dlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQog
ewogICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgmd3JhcHBlZCgpKTsKKyAgICB3cmFwcGVkKCku
dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyh2aXNpdG9yKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
ZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IGEwZGFmODY3Y2U2YTY4ZjFhYjZj
ODY1YTUyMDU3OWQxNmNiNWVkMGMuLmQ5M2ZiNmIxY2JmNjcwMDNmZmFlNDhjMGFmMzQ5N2Y1OGFk
NjYxNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAgdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIHZvaWQgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZpc2l0QWRkaXRp
b25hbENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIHZpc2l0b3IuYWRkT3Bh
cXVlUm9vdCgmd3JhcHBlZCgpKTsKKyAgICB3cmFwcGVkKCkudmlzaXRSZWZlcmVuY2VkSlNXcmFw
cGVycyh2aXNpdG9yKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRl
eCAyZWM4Mzc4ODkwMmY5OWU4NjYwMTE1YzZkNjMwYWFiNTBiZDYyNGY5Li45YmE1NWRiMzVlZTYw
OTU2YzhlNGJlYjBkOTcxZjg1ZDY0Yzc1YWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtNjYsNiArNjYsOCBA
QAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMu
aD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwSW5saW5lcy5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oPgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9yLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
U2xvdFZpc2l0b3JJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJh
eVR5cGUuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCkBAIC0zMDEwLDYg
KzMwMTIsMzUgQEAgYm9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpjaGVja0FuZFRyYW5zbGF0
ZUF0dGFjaG1lbnRzKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmEKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJz
KEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyh2aXNpdG9yKTsKKworICAgIHZpc2l0b3Iu
YWRkT3BhcXVlUm9vdChtX3JlYWRGcmFtZWJ1ZmZlckJpbmRpbmcuZ2V0KCkpOworICAgIGlmICht
X3JlYWRGcmFtZWJ1ZmZlckJpbmRpbmcpCisgICAgICAgIG1fcmVhZEZyYW1lYnVmZmVyQmluZGlu
Zy0+dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyh2aXNpdG9yKTsKKworICAgIHZpc2l0b3IuYWRk
T3BhcXVlUm9vdChtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2suZ2V0KCkpOworICAgIGlmIChtX2Jv
dW5kVHJhbnNmb3JtRmVlZGJhY2spCisgICAgICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+
dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyh2aXNpdG9yKTsKKworICAgIHZpc2l0b3IuYWRkT3Bh
cXVlUm9vdChtX2JvdW5kQ29weVJlYWRCdWZmZXIuZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3Bh
cXVlUm9vdChtX2JvdW5kQ29weVdyaXRlQnVmZmVyLmdldCgpKTsKKyAgICB2aXNpdG9yLmFkZE9w
YXF1ZVJvb3QobV9ib3VuZFBpeGVsUGFja0J1ZmZlci5nZXQoKSk7CisgICAgdmlzaXRvci5hZGRP
cGFxdWVSb290KG1fYm91bmRQaXhlbFVucGFja0J1ZmZlci5nZXQoKSk7CisgICAgdmlzaXRvci5h
ZGRPcGFxdWVSb290KG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlci5nZXQoKSk7CisgICAg
dmlzaXRvci5hZGRPcGFxdWVSb290KG1fYm91bmRVbmlmb3JtQnVmZmVyLmdldCgpKTsKKworICAg
IGZvciAoYXV0byYgYnVmZmVyIDogbV9ib3VuZEluZGV4ZWRVbmlmb3JtQnVmZmVycykKKyAgICAg
ICAgdmlzaXRvci5hZGRPcGFxdWVSb290KGJ1ZmZlci5nZXQoKSk7CisKKyAgICBmb3IgKGF1dG8m
IGVudHJ5IDogbV9hY3RpdmVRdWVyaWVzKQorICAgICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qo
ZW50cnkudmFsdWUuZ2V0KCkpOworCisgICAgZm9yIChhdXRvJiBlbnRyeSA6IG1fYm91bmRTYW1w
bGVycykKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KGVudHJ5LmdldCgpKTsKK30KKwog
R0NHTGVudW0gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmFzZUludGVybmFsRm9ybWF0RnJvbUlu
dGVybmFsRm9ybWF0KEdDR0xlbnVtIGludGVybmFsZm9ybWF0KQogewogICAgIC8vIEhhbmRsZXMg
c2l6ZWQsIHVuc2l6ZWQsIGFuZCBjb21wcmVzc2VkIGludGVybmFsIGZvcm1hdHMuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgKaW5k
ZXggODE5OWQ4ZTY3MzBkMTU0NzcyMmUyZWUwM2MxZWU2NzJkMDc0MzlhYy4uMGUzZmYyZGY0ZTg1
MGQ1MzI0NmY0MTM0YTFjYjgyYzgwMmVjZjA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaApAQCAtMjYxLDYgKzI2MSw4IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgY2hlY2tBbmRUcmFuc2xhdGVBdHRhY2htZW50cyhjb25zdCBj
aGFyKiBmdW5jdGlvbk5hbWUsIEdDR0xlbnVtLCBWZWN0b3I8R0NHTGVudW0+Jik7CiAKKyAgICB2
b2lkIHZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYpIG92ZXJyaWRl
OworCiBwcml2YXRlOgogICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQoQ2FudmFzQmFzZSYsIEdy
YXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyk7CiAgICAgV2ViR0wyUmVuZGVyaW5nQ29udGV4dChD
YW52YXNCYXNlJiwgUmVmPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiYmLCBHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xCdWZmZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIu
aWRsCmluZGV4IDZlMmFiOWM1N2JmMTUyNjYzMWY2NTZjZWE1MTk3MTk3OTA5NmFhNTcuLmRhNDcw
MzU2NGI2MDQ4YTk0NjBkMzJlOTlkMWQ1Y2M1ZDZjZTFhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwKQEAgLTI1LDUgKzI1LDYgQEAKIAogWwogICAgIENv
bmRpdGlvbmFsPVdFQkdMLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbAogXSBpbnRlcmZh
Y2UgV2ViR0xCdWZmZXIgewogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xGcmFtZWJ1ZmZlci5jcHAKaW5kZXggZTZmNDM4MzNkYzUyNTA3NGM3NDkyZjgwNzcxZjhhNWY5
NjFlZWZlNi4uNGJlNmVjYzE4Mjc0YWQyYzA5ZjBkNGZhMzZhMzcyYTU1NTA2ZTdiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKQEAgLTMy
LDYgKzMyLDggQEAKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldl
YkdMRHJhd0J1ZmZlcnMuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0b3IuaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9TbG90VmlzaXRvcklubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC01Niw2ICs1OCw3IEBAIG5hbWVzcGFjZSB7CiAgICAgICAgIHZvaWQgb25EZXRhY2hlZChH
cmFwaGljc0NvbnRleHRHTE9wZW5HTCopIG92ZXJyaWRlOwogICAgICAgICB2b2lkIGF0dGFjaChH
cmFwaGljc0NvbnRleHRHTE9wZW5HTCosIEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gYXR0YWNo
bWVudCkgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgdW5hdHRhY2goR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wqLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xlbnVtIGF0dGFjaG1lbnQpIG92ZXJyaWRlOwor
ICAgICAgICB2b2lkIHZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYp
IG92ZXJyaWRlOwogCiAgICAgICAgIFdlYkdMUmVuZGVyYnVmZmVyQXR0YWNobWVudCgpIHsgfTsK
IApAQCAtMTM3LDYgKzE0MCwxMSBAQCBuYW1lc3BhY2UgewogICAgICAgICAgICAgY29udGV4dC0+
ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIodGFyZ2V0LCBhdHRhY2htZW50LCBHcmFwaGljc0NvbnRl
eHRHTDo6UkVOREVSQlVGRkVSLCAwKTsKICAgICB9CiAKKyAgICB2b2lkIFdlYkdMUmVuZGVyYnVm
ZmVyQXR0YWNobWVudDo6dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RWaXNpdG9y
JiB2aXNpdG9yKQorICAgIHsKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fcmVuZGVy
YnVmZmVyLmdldCgpKTsKKyAgICB9CisKICAgICBjbGFzcyBXZWJHTFRleHR1cmVBdHRhY2htZW50
IDogcHVibGljIFdlYkdMRnJhbWVidWZmZXI6OldlYkdMQXR0YWNobWVudCB7CiAgICAgcHVibGlj
OgogICAgICAgICBzdGF0aWMgUmVmPFdlYkdMRnJhbWVidWZmZXI6OldlYkdMQXR0YWNobWVudD4g
Y3JlYXRlKFdlYkdMVGV4dHVyZSosIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NH
TGludCBsYXllcik7CkBAIC0xNTYsNiArMTY0LDcgQEAgbmFtZXNwYWNlIHsKICAgICAgICAgdm9p
ZCBvbkRldGFjaGVkKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKikgb3ZlcnJpZGU7CiAgICAgICAg
IHZvaWQgYXR0YWNoKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgR0NHTGVudW0gdGFyZ2V0LCBH
Q0dMZW51bSBhdHRhY2htZW50KSBvdmVycmlkZTsKICAgICAgICAgdm9pZCB1bmF0dGFjaChHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCosIEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gYXR0YWNobWVu
dCkgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgdmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6
OlNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7CiAKICAgICAgICAgV2ViR0xUZXh0dXJlQXR0YWNobWVu
dCgpIHsgfTsKIApAQCAtMjUzLDYgKzI2MiwxMSBAQCBuYW1lc3BhY2UgewogI2VuZGlmCiAgICAg
fQogCisgICAgdm9pZCBXZWJHTFRleHR1cmVBdHRhY2htZW50Ojp2aXNpdFJlZmVyZW5jZWRKU1dy
YXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCisgICAgeworICAgICAgICB2aXNpdG9y
LmFkZE9wYXF1ZVJvb3QobV90ZXh0dXJlLmdldCgpKTsKKyAgICB9CisKICNpZiAhVVNFKEFOR0xF
KQogICAgIGJvb2wgaXNBdHRhY2htZW50Q29tcGxldGUoV2ViR0xGcmFtZWJ1ZmZlcjo6V2ViR0xB
dHRhY2htZW50KiBhdHRhY2hlZE9iamVjdCwgR0NHTGVudW0gYXR0YWNobWVudCwgY29uc3QgY2hh
cioqIHJlYXNvbikKICAgICB7CkBAIC02ODksNiArNzAzLDEyIEBAIEdDR0xlbnVtIFdlYkdMRnJh
bWVidWZmZXI6OmdldERyYXdCdWZmZXIoR0NHTGVudW0gZHJhd0J1ZmZlcikKICAgICByZXR1cm4g
R3JhcGhpY3NDb250ZXh0R0w6Ok5PTkU7CiB9CiAKK3ZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6dmlz
aXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAg
IGZvciAoYXV0byYgZW50cnkgOiBtX2F0dGFjaG1lbnRzKQorICAgICAgICBlbnRyeS52YWx1ZS0+
dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyh2aXNpdG9yKTsKK30KKwogdm9pZCBXZWJHTEZyYW1l
YnVmZmVyOjpzZXRBdHRhY2htZW50SW50ZXJuYWwoR0NHTGVudW0gYXR0YWNobWVudCwgR0NHTGVu
dW0gdGV4VGFyZ2V0LCBXZWJHTFRleHR1cmUqIHRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xp
bnQgbGF5ZXIpCiB7CiAgICAgcmVtb3ZlQXR0YWNobWVudEludGVybmFsKGF0dGFjaG1lbnQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oCmluZGV4IDFi
MjNmZjIyYzg5NDUxOTA4YjI1OTQyYTFhMTA2NjZiMTdhNmE3NDYuLjFjNDNjNmYyODIyNzc4YTFh
YWVmMzk4MzM3M2E0NmZiOGY0OGU3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTEZyYW1lYnVmZmVyLmgKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKK25hbWVzcGFjZSBKU0Mgewor
Y2xhc3MgU2xvdFZpc2l0b3I7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2Vi
R0xSZW5kZXJidWZmZXI7CkBAIC01Nyw2ICs2MSw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVh
bCB2b2lkIG9uRGV0YWNoZWQoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKSA9IDA7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBhdHRhY2goR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBHQ0dMZW51bSB0
YXJnZXQsIEdDR0xlbnVtIGF0dGFjaG1lbnQpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHVu
YXR0YWNoKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51
bSBhdHRhY2htZW50KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdFJlZmVyZW5jZWRK
U1dyYXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImKSA9IDA7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAg
ICAgIFdlYkdMQXR0YWNobWVudCgpOwpAQCAtMTA1LDYgKzExMCw4IEBAIHB1YmxpYzoKIAogICAg
IEdDR0xlbnVtIGdldERyYXdCdWZmZXIoR0NHTGVudW0pOwogCisgICAgdm9pZCB2aXNpdFJlZmVy
ZW5jZWRKU1dyYXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImKTsKKwogcHJpdmF0ZToKICAgICBXZWJH
TEZyYW1lYnVmZmVyKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmlkbAppbmRleCA3YzZjYzQ1OTVk
OTczNDQ4NWU2Y2U4OTkwMTI4YTI2MDhjZTZmOTIzLi5iMTM3N2EzNjk5NzE3MjMwM2ZmODZlZGVj
OGExM2Q0ZWFhMjRhOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEZyYW1lYnVmZmVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TEZyYW1lYnVmZmVyLmlkbApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKIFsKLSAgICBDb25kaXRp
b25hbD1XRUJHTAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIEdlbmVyYXRlSXNSZWFjaGFi
bGU9SW1wbAogXSBpbnRlcmZhY2UgV2ViR0xGcmFtZWJ1ZmZlciB7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggNDBlNzgwN2ZlMTRiNTRkZWY0
NjBmOGE4M2U1N2Y4Y2QwNGM3ZjIxNy4uODg3OGI5OGZjMTBhMjA1MDNlMGQwZWJlOTA5NDEwYWMy
ZmY5YjY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9n
cmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3Bw
CkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKICNpbmNs
dWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAjaW5jbHVkZSAiV2ViR0xTaGFkZXIu
aCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvci5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9ySW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+
CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKQEAgLTE5Niw2ICsxOTgsMTIgQEAg
Ym9vbCBXZWJHTFByb2dyYW06OmRldGFjaFNoYWRlcihXZWJHTFNoYWRlciogc2hhZGVyKQogICAg
IH0KIH0KIAordm9pZCBXZWJHTFByb2dyYW06OnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlND
OjpTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV92
ZXJ0ZXhTaGFkZXIuZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2ZyYWdtZW50
U2hhZGVyLmdldCgpKTsKK30KKwogdm9pZCBXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmli
TG9jYXRpb25zKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QpCiB7CiAgICAgbV9h
Y3RpdmVBdHRyaWJMb2NhdGlvbnMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xQcm9ncmFtLmgKaW5kZXggODA4ZmQyMGYwOWMwM2NjZTQ2MjczOGQ1NWI2Nzc5Zjk2ZmVk
ZDJlNy4uMTU5ZmQ1ZWM4MGVjMzdkYjFkMzhlYjM0N2NhYzY0MzMyNTU1Zjg3NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKQEAgLTM0LDYgKzM0LDEwIEBACiAj
aW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKK25hbWVzcGFj
ZSBKU0MgeworY2xhc3MgU2xvdFZpc2l0b3I7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKQEAgLTgwLDYgKzg0LDggQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gbV9yZXF1aXJlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyQ291bnQ7CiAg
ICAgfQogCisgICAgdm9pZCB2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKEpTQzo6U2xvdFZpc2l0
b3ImKTsKKwogcHJpdmF0ZToKICAgICBXZWJHTFByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFBy
b2dyYW0uaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmlkbApp
bmRleCA3YzE4MGUyYjVkZGEyY2QwNmEzMzI2MjQ2ZmUyZTBiNmMxMDNjNzZhLi5iMjY4YzA3ZWU3
OTQxY2ZjNmNlZmU5YjIzNmJjYzhjM2YzMmIwZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUHJvZ3JhbS5pZGwKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiBbCi0gICAg
Q29uZGl0aW9uYWw9V0VCR0wKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBHZW5lcmF0ZUlz
UmVhY2hhYmxlPUltcGwKIF0gaW50ZXJmYWNlIFdlYkdMUHJvZ3JhbSB7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmlkbAppbmRleCAyM2QzNTNjNDZhNTU5MGE4MWE2
Nzk1ZjRkZGUxNTVmYTkzNzgyM2FhLi43ZDM5Njk2ZWJlZTM5NTRjYzY3NWEzZWNmYzhlOWNiNWEz
N2M2NTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmlkbApAQCAt
MjQsNiArMjQsNyBAQAogICovCiAKIFsKLSAgICBDb25kaXRpb25hbD1XRUJHTAorICAgIENvbmRp
dGlvbmFsPVdFQkdMLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbAogXSBpbnRlcmZhY2Ug
V2ViR0xRdWVyeSB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJidWZmZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJidWZmZXIuaWRsCmluZGV4IGZiODU1YTU2Y2U2MTc2YjNlNDQ3NGRmODk3YTIyZDA5NDRj
NTkzZjYuLmZkNjFmOGQ2MmMzZmFlOGRmMzE5NThmMWVhZDM5NzhmMGFhNjE1NzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5pZGwKQEAgLTI0
LDYgKzI0LDcgQEAKICAqLwogCiBbCi0gICAgQ29uZGl0aW9uYWw9V0VCR0wKKyAgICBDb25kaXRp
b25hbD1XRUJHTCwKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwKIF0gaW50ZXJmYWNlIFdl
YkdMUmVuZGVyYnVmZmVyIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IGQ1MmRkNmQ0YjQ3MDMy
NjI5ZDFlMjgxYzcxMGVmZWI2NDc0MTUyOWUuLjdkM2I3MDM0ODU5YTgwNzI1NmEzNTFlMTg0NzVl
MGVkYWY0MDJlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC0xMDIsNiArMTAyLDggQEAKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2Fs
bFN0YWNrRmFjdG9yeS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9yLmg+
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0b3JJbmxpbmVzLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJheUlubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9VaW50MzJBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5o
PgpAQCAtNzc2NCw2ICs3NzY2LDM4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpCiAgICAgcXVldWVUYXNrVG9EaXNw
YXRjaEV2ZW50KCpjYW52YXMsIFRhc2tTb3VyY2U6OldlYkdMLCBXZWJHTENvbnRleHRFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRjaGFuZ2VkRXZlbnQsIEV2ZW50OjpDYW5C
dWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMsIGVtcHR5U3RyaW5nKCkpKTsKIH0K
IAordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2aXNpdFJlZmVyZW5jZWRKU1dyYXBw
ZXJzKEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgdmlzaXRvci5hZGRPcGFxdWVS
b290KG1fYm91bmRBcnJheUJ1ZmZlci5nZXQoKSk7CisKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJv
b3QobV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LmdldCgpKTsKKyAgICBpZiAobV9ib3VuZFZlcnRl
eEFycmF5T2JqZWN0KQorICAgICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPnZpc2l0UmVm
ZXJlbmNlZEpTV3JhcHBlcnModmlzaXRvcik7CisKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qo
bV9jdXJyZW50UHJvZ3JhbS5nZXQoKSk7CisgICAgaWYgKG1fY3VycmVudFByb2dyYW0pCisgICAg
ICAgIG1fY3VycmVudFByb2dyYW0tPnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnModmlzaXRvcik7
CisKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9mcmFtZWJ1ZmZlckJpbmRpbmcuZ2V0KCkp
OworICAgIGlmIChtX2ZyYW1lYnVmZmVyQmluZGluZykKKyAgICAgICAgbV9mcmFtZWJ1ZmZlckJp
bmRpbmctPnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnModmlzaXRvcik7CisKKyAgICB2aXNpdG9y
LmFkZE9wYXF1ZVJvb3QobV9yZW5kZXJidWZmZXJCaW5kaW5nLmdldCgpKTsKKworICAgIGZvciAo
YXV0byYgdW5pdCA6IG1fdGV4dHVyZVVuaXRzKSB7CisgICAgICAgIHZpc2l0b3IuYWRkT3BhcXVl
Um9vdCh1bml0LnRleHR1cmUyREJpbmRpbmcuZ2V0KCkpOworICAgICAgICB2aXNpdG9yLmFkZE9w
YXF1ZVJvb3QodW5pdC50ZXh0dXJlQ3ViZU1hcEJpbmRpbmcuZ2V0KCkpOworICAgICAgICB2aXNp
dG9yLmFkZE9wYXF1ZVJvb3QodW5pdC50ZXh0dXJlM0RCaW5kaW5nLmdldCgpKTsKKyAgICAgICAg
dmlzaXRvci5hZGRPcGFxdWVSb290KHVuaXQudGV4dHVyZTJEQXJyYXlCaW5kaW5nLmdldCgpKTsK
KyAgICB9CisKKyAgICAvLyBFeHRlbnNpb25zJyBJREwgZmlsZXMgdXNlIEdlbmVyYXRlSXNSZWFj
aGFibGU9SW1wbFdlYkdMUmVuZGVyaW5nQ29udGV4dCwKKyAgICAvLyB3aGljaCBjaGVja3MgdG8g
c2VlIHdoZXRoZXIgdGhlIGNvbnRleHQgaXMgaW4gdGhlIG9wYXF1ZSByb290IHNldCAoaXQgaXM7
CisgICAgLy8gaXQncyBhZGRlZCBpbiBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dCAvIEpTV2ViR0wy
UmVuZGVyaW5nQ29udGV4dCdzIGN1c3RvbQorICAgIC8vIGJpbmRpbmdzIGNvZGUpLiBGb3IgdGhp
cyByZWFzb24gaXQncyB1bm5lY2Vzc2FyeSB0byBleHBsaWNpdGx5IGFkZCBvcGFxdWUKKyAgICAv
LyByb290cyBmb3IgZXh0ZW5zaW9ucy4KK30KKwogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpwcmVwYXJlRm9yRGlzcGxheSgpCiB7CiAgICAgaWYgKCFtX2NvbnRleHQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmgKaW5kZXggOGU3ZjRhMmQ2MTM2NTg1YTEzODU5ZDMwZWFjMDg1MjNkMmY0YzZiNC4uYmNjMzA2
YzdiOTU2Yjc0Y2I0OTZhNWUxZTNkMGYwNWI0NDY0ZTY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaApAQCAtNTYs
NiArNTYsMTAgQEAKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2VuZGlmCiAK
K25hbWVzcGFjZSBKU0MgeworY2xhc3MgU2xvdFZpc2l0b3I7Cit9CisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgQU5HTEVJbnN0YW5jZWRBcnJheXM7CkBAIC0zOTgsNiArNDAyLDggQEAg
cHVibGljOgogICAgIHZvaWQgcmVjeWNsZUNvbnRleHQoKSBvdmVycmlkZTsKICAgICB2b2lkIGRp
c3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24oKSBvdmVycmlkZTsKIAorICAgIHZpcnR1
YWwgdm9pZCB2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImKTsKKwog
cHJvdGVjdGVkOgogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFzQmFzZSYsIFdl
YkdMQ29udGV4dEF0dHJpYnV0ZXMpOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2Fu
dmFzQmFzZSYsIFJlZjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4mJiwgV2ViR0xDb250ZXh0QXR0
cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNh
bXBsZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmlkbApp
bmRleCA0ZTU0NGNhNmU0NDQ4NzM5Y2NjZjlhNjhkYzRkN2U3NjEzNDRmZTE0Li5iOGVkYzJmNjc1
OWQxOGNlODJjYzgwMmE0MWIwYTg3OTE5OTc5M2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFNhbXBsZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMU2FtcGxlci5pZGwKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiBbCi0gICAg
Q29uZGl0aW9uYWw9V0VCR0wKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBHZW5lcmF0ZUlz
UmVhY2hhYmxlPUltcGwKIF0gaW50ZXJmYWNlIFdlYkdMU2FtcGxlciB7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaWRsIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaWRsCmluZGV4IDUyZjk2MjAyNTYxNWNmNTcw
NmEyYzdlN2ZkMmViYTU2ZDliNTFiMWUuLmI1MDc5NDYwMWRlMGI4MjhkZjY1NjllMGY4ZDdkNjYw
MzI1MTQ0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hh
ZGVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5pZGwK
QEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiBbCi0gICAgQ29uZGl0aW9uYWw9V0VCR0wKKyAgICBD
b25kaXRpb25hbD1XRUJHTCwKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwKIF0gaW50ZXJm
YWNlIFdlYkdMU2hhZGVyIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFRleHR1cmUuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xU
ZXh0dXJlLmlkbAppbmRleCA2N2RmYTNjNGY2ZTExZmZhZGE4NDU1YTcwMTEyNTQyYzAyMGQ1ODRl
Li5hNjMwNmU1YTUxYjYxMDBkMjI4NmFkYjI4MjI1NjZhOGI1NTU1MTVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5pZGwKQEAgLTI0LDYgKzI0LDcgQEAKICAq
LwogCiBbCi0gICAgQ29uZGl0aW9uYWw9V0VCR0wKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAg
ICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwKIF0gaW50ZXJmYWNlIFdlYkdMVGV4dHVyZSB7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1G
ZWVkYmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZl
ZWRiYWNrLmNwcAppbmRleCA5MTVjYWUyODAzNjFjNzA2ZmM1MWM3ZmJmYTg3YzI4ODlhMDUyOTQz
Li5hZDUyODU1MWIyMThkODRjMjAzMWMwNDE5OGMxYzZjYWE0ZjE5OTk1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcApA
QCAtMzAsNiArMzAsOCBAQAogCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKICNpbmNs
dWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvU2xvdFZpc2l0b3IuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvcklu
bGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04Niw2ICs4OCwxNCBAQCBib29s
IFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6Omhhc0Vub3VnaEJ1ZmZlcnMoR0NHTHVpbnQgbnVtUmVx
dWlyZWQpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgV2ViR0xUcmFuc2Zvcm1G
ZWVkYmFjazo6dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RWaXNpdG9yJiB2aXNp
dG9yKQoreworICAgIGZvciAoYXV0byYgYnVmZmVyIDogbV9ib3VuZEluZGV4ZWRUcmFuc2Zvcm1G
ZWVkYmFja0J1ZmZlcnMpCisgICAgICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChidWZmZXIuZ2V0
KCkpOworCisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fcHJvZ3JhbS5nZXQoKSk7Cit9CisK
IHZvaWQgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6dW5iaW5kQnVmZmVyKFdlYkdMQnVmZmVyJiBi
dWZmZXIpCiB7CiAgICAgZm9yIChhdXRvJiBib3VuZEJ1ZmZlciA6IG1fYm91bmRJbmRleGVkVHJh
bnNmb3JtRmVlZGJhY2tCdWZmZXJzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgKaW5kZXggNzdkYjk1NDhjM2I4NDU1MDU2ZmE3
MTdhZjQxMzY0ZjIyZTE3OGQzYi4uODNiYmM1YmFkYTYxM2YyMmJhYzQ2ZDUxMDVmODExYTI1YzEx
MmEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zv
cm1GZWVkYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNm
b3JtRmVlZGJhY2suaApAQCAtMzAsNiArMzAsMTAgQEAKICNpbmNsdWRlICJXZWJHTDJSZW5kZXJp
bmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR0xTaGFyZWRPYmplY3QuaCIKIAorbmFtZXNwYWNl
IEpTQyB7CitjbGFzcyBTbG90VmlzaXRvcjsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrIGZpbmFsIDogcHVibGljIFdlYkdMU2hhcmVkT2Jq
ZWN0IHsKQEAgLTYxLDYgKzY1LDkgQEAgcHVibGljOgogICAgIHZvaWQgdW5iaW5kQnVmZmVyKFdl
YkdMQnVmZmVyJik7CiAgICAgCiAgICAgYm9vbCBoYXNFbm91Z2hCdWZmZXJzKEdDR0x1aW50IG51
bVJlcXVpcmVkKSBjb25zdDsKKworICAgIHZvaWQgdmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhK
U0M6OlNsb3RWaXNpdG9yJik7CisKIHByaXZhdGU6CiAgICAgV2ViR0xUcmFuc2Zvcm1GZWVkYmFj
ayhXZWJHTDJSZW5kZXJpbmdDb250ZXh0Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5pZGwKaW5kZXggOTM3M2MxOGY4Zjc0
NzIzZjQ5ODA4OGMyZmJjMmVkMDk2YzZiNjQzMy4uNDVhYmQ1ZTJmMmVjMjQ4YjgzNGU0OTNhNGIy
NWZmNzZkM2U2NjdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xUcmFuc2Zvcm1GZWVkYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5pZGwKQEAgLTI1LDYgKzI1LDcgQEAKIAogWwogICAgIENv
bmRpdGlvbmFsPVdFQkdMMiwKLSAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdMMgorICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9V2ViR0wyLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbAogXSBpbnRl
cmZhY2UgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjayB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmlkbAppbmRleCA2N2ExZjlk
ZWMxNzllZjUyMTJlZmU5MjY4MzY4YTUxZjBmNzExMjBmLi5kZDljNWE4MTE0MTY0NTEzNWMxMjVm
NjI3NDY0Mzc4MGY1M2NjYzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmlkbApAQCAtMjUsNiArMjUsNyBAQAogCiBbCiAg
ICAgQ29uZGl0aW9uYWw9V0VCR0wyLAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR0wyCisgICAg
RW5hYmxlZEF0UnVudGltZT1XZWJHTDIsCisgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsCiBd
IGludGVyZmFjZSBXZWJHTFZlcnRleEFycmF5T2JqZWN0IHsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAK
aW5kZXggMTFjYzhiOWU1NGI3Y2Q5N2I4NGRiM2QzM2JkYTliZTEzNDUxMjIyNS4uMWU1Y2VmMzU1
YzU3ODJhNzU3YTZhZWExNGY3Zjc4YWE1ZjU1Y2JjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcApAQCAt
MjksNiArMjksOCBAQAogI2lmIEVOQUJMRShXRUJHTCkKIAogI2luY2x1ZGUgIldlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvci5o
PgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9ySW5saW5lcy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEwNCw3ICsxMDYsMTQgQEAgdm9pZCBXZWJHTFZlcnRleEFy
cmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4QXR0cmliRGl2aXNvcihHQ0dMdWludCBpbmRleCwgR0NH
THVpbnQKIHsKICAgICBtX3ZlcnRleEF0dHJpYlN0YXRlW2luZGV4XS5kaXZpc29yID0gZGl2aXNv
cjsKIH0KLSAgICAKKwordm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dmlzaXRSZWZl
cmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIHZpc2l0
b3IuYWRkT3BhcXVlUm9vdChtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyLmdldCgpKTsKKyAgICBm
b3IgKGF1dG8mIHN0YXRlIDogbV92ZXJ0ZXhBdHRyaWJTdGF0ZSkKKyAgICAgICAgdmlzaXRvci5h
ZGRPcGFxdWVSb290KHN0YXRlLmJ1ZmZlckJpbmRpbmcuZ2V0KCkpOworfQorCiB9CiAKICNlbmRp
ZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaAppbmRleCA0YmQ5MTM1MTBmNjJiZWJjOTg1
YzU3M2RkNjg4YjlkZTcxZmYzYWEyLi5jOWMwNmRlMGU0YWQ3NGNhZGVjNDg5ZTI1NzZlM2Y4MTk2
ZjY3NjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRl
eEFycmF5T2JqZWN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
VmVydGV4QXJyYXlPYmplY3RCYXNlLmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSAiV2Vi
R0xCdWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRPYmplY3QuaCIKIAorbmFtZXNwYWNl
IEpTQyB7CitjbGFzcyBTbG90VmlzaXRvcjsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSA6IHB1YmxpYyBXZWJHTENvbnRleHRPYmpl
Y3QgewpAQCAtNjgsNiArNzIsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFZlcnRleEF0dHJp
YkRpdmlzb3IoR0NHTHVpbnQgaW5kZXgsIEdDR0x1aW50IGRpdmlzb3IpOwogCisgICAgdm9pZCB2
aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImKTsKKwogcHJvdGVjdGVk
OgogICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UmLCBUeXBlKTsKICAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0KSBvdmVycmlkZSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaWRsCmlu
ZGV4IGYxOTBhN2U2NDEzOGU1ZDk2YjUyN2IyNmUyZjM0NjI1ZjJjYmQ0NzYuLjQ1YTA1N2RiNzMz
NWFkMjhhMGFjZTU2YTU3ZGUxNzY3MDFjYmIxY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaWRsCkBAIC0yNSw2
ICsyNSw3IEBACiAKIFsKICAgICBOb0ludGVyZmFjZU9iamVjdCwKLSAgICBDb25kaXRpb25hbD1X
RUJHTAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1w
bAogXSBpbnRlcmZhY2UgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyB7CiB9OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZj
MzBjNGQ3NDc4OGIxNzU2MjE5MjE2NjU0MDg4NGIxZTUzN2Q3NDUuLjMzMjhjMzY4YjZlNGI3MDRh
NWY3NTJhMDg3YTEwN2FmNTVmZjc3YjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMC0wOC0x
MSAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViR0wy
XSBleHBhbmRvLWxvc3MgYW5kIGV4cGFuZG8tbG9zcy0yIGNvbmZvcm1hbmNlIHRlc3RzIGFyZSBm
YWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTQ3NjUKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBSZWJh
c2VsaW5lIGV4cGFuZG8tbG9zcy5odG1sIGFuZCBleHBhbmRvLWxvc3MtMi5odG1sLCB3aGljaCBh
cmUKKyAgICAgICAgbm93IGZ1bGx5IHBhc3NpbmcuCisKKyAgICAgICAgQWRkIGEgaG9vayB0byBq
cy10ZXN0LXByZS5qcyB3aGljaCBhbGxvd3MgdGhpcyB0ZXN0IHRvIGJlIHJ1bgorICAgICAgICBj
b3JyZWN0bHkgaW4gdGhlIE1pbmlCcm93c2VyIGJ5IHNldHRpbmcgdGhlIGZvbGxvd2luZyBlbnZp
cm9ubWVudAorICAgICAgICB2YXJpYWJsZXM6CisgICAgICAgICAgZXhwb3J0IEpTQ191c2VEb2xs
YXJWTT0xCisgICAgICAgICAgZXhwb3J0IF9fWFBDX0pTQ191c2VEb2xsYXJWTT0xCisKKyAgICAg
ICAgKiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS9taXNjL2V4cGFuZG8tbG9zcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL21pc2MvZXhwYW5kby1sb3Nz
LTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmdsLzIuMC4wL3Jlc291cmNlcy93ZWJnbF90
ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcHJlLmpzOgorCiAyMDIwLTA4LTExICBBbmRyZXMgR29uemFs
ZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgdGhlIGlzb2xhdGVk
IHRyZWUgb24gZWxlbWVudCBsYW5ndWFnZSBjaGFuZ2VzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UvbWlzYy9leHBhbmRvLWxvc3MtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UvbWlzYy9leHBhbmRvLWxvc3Mt
ZXhwZWN0ZWQudHh0CmluZGV4IDg0NjFkMzJmM2NkNWI0YmY3MzhiYjA3OWI5YzFhZjdjM2I3MjNj
NTQuLjdjMWI5ZDgxN2VjN2JhOTUzYTczOTY5YzliYzZhNDI0MzFlZDQ5OGIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL21pc2MvZXhwYW5kby1sb3NzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS9taXNj
L2V4cGFuZG8tbG9zcy1leHBlY3RlZC50eHQKQEAgLTEsNTYgKzEsNSBAQAogVGhpcyB0ZXN0IHJ1
bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQ
QVNTIG9yIEZBSUwuCiAKIFRlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL21pc2MvZXhwYW5kby1sb3NzLmh0bWwKLVsgMTogUEFTUyBdIGdldFBhcmFtZXRl
cihURVhUVVJFX0JJTkRJTkdfMkQpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1b
IDI6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5ESU5HXzJEKTogRXhwZWN0IGJhc2lj
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzOiBGQUlMIF0gZ2V0UGFyYW1ldGVy
KFRFWFRVUkVfQklORElOR18yRCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDQ6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoRlJBTUVCVUZGRVJfQklORElO
RykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNTogRkFJTCBdIGdldFBhcmFt
ZXRlcihGUkFNRUJVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyA2OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKEZSQU1FQlVGRkVSX0JJTkRJ
TkcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA3
OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFJFTkRFUkJVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3Rh
bmNlIHRoYXQgd2FzIGJvdW5kLgotWyA4OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFJFTkRFUkJVRkZF
Ul9CSU5ESU5HKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgot
WyA5OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFJFTkRFUkJVRkZFUl9CSU5ESU5HKTogRXhwZWN0IHN1
Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTA6IFBBU1MgXSBnZXRQ
YXJhbWV0ZXIoRUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElORykgcmV0dXJucyBpbnN0YW5jZSB0
aGF0IHdhcyBib3VuZC4KLVsgMTE6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoRUxFTUVOVF9BUlJBWV9C
VUZGRVJfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMTI6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoRUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElO
Ryk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDEz
OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKEFSUkFZX0JVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3Rh
bmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxNDogRkFJTCBdIGdldFBhcmFtZXRlcihBUlJBWV9CVUZG
RVJfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMTU6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoQVJSQVlfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3Qg
c3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNjogUEFTUyBdIGdl
dFBhcmFtZXRlcihURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVApIHJldHVybnMgaW5zdGFuY2UgdGhh
dCB3YXMgYm91bmQuCi1bIDE3OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFRFWFRVUkVfQklORElOR19D
VUJFX01BUCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MTg6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQKTogRXhwZWN0
IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTk6IFBBU1MgXSBn
ZXRQYXJhbWV0ZXIoZ2wuQ1VSUkVOVF9QUk9HUkFNKSByZXR1cm4gaW5zdGFuY2Ugc2V0IHdpdGgg
dXNlUHJvZ3JhbQotWyAyMDogUEFTUyBdIFZlcnRleCBzaGFkZXIgaW5zdGFuY2UgZm91bmQgaW4g
Z2V0QXR0YWNoZWRTaGFkZXJzCi1bIDIxOiBQQVNTIF0gRnJhZ21lbnQgc2hhZGVyIGluc3RhbmNl
IGZvdW5kIGluIGdldEF0dGFjaGVkU2hhZGVycwotWyAyMjogRkFJTCBdIEN1cnJlbnQgcHJvZ3Jh
bTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMzogRkFJ
TCBdIEN1cnJlbnQgcHJvZ3JhbTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgMjQ6IFBBU1MgXSBbb2JqZWN0IFdlYkdMUHJvZ3JhbV0gaXMgYW4gaW5z
dGFuY2Ugb2YgV2ViR0xQcm9ncmFtCi1bIDI1OiBGQUlMIF0gU2hhZGVyWzBdOiBFeHBlY3QgYmFz
aWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI2OiBGQUlMIF0gU2hhZGVyWzBd
OiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNzog
UEFTUyBdIFtvYmplY3QgV2ViR0xTaGFkZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMU2hhZGVy
Ci1bIDI4OiBGQUlMIF0gU2hhZGVyWzFdOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDI5OiBGQUlMIF0gU2hhZGVyWzFdOiBFeHBlY3Qgc3Vib2JqZWN0IGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMDogUEFTUyBdIFtvYmplY3QgV2ViR0xT
aGFkZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMU2hhZGVyCi1bIDMxOiBQQVNTIF0gZ2V0VmVy
dGV4QXR0cmliKFZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcpIHJldHVybiBpbnN0
YW5jZSBzZXQgd2l0aCB2ZXJ0ZXhBdHRyaWJQb2ludGVyCi1bIDMyOiBGQUlMIF0gVmVydGV4IEF0
dHJpYnV0ZSBCdWZmZXI6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMzM6IEZBSUwgXSBWZXJ0ZXggQXR0cmlidXRlIEJ1ZmZlcjogRXhwZWN0IHN1Ym9iamVj
dCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzQ6IFBBU1MgXSBbb2JqZWN0IFdl
YkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAzNTogUEFTUyBdIGdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihDT0xPUl9BVFRBQ0hNRU5UMCkgcmV0dXJu
cyBpbnN0YW5jZSBzZXQgd2l0aCBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcgotWyAzNjogUEFTUyBd
IGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihERVBUSF9BVFRBQ0hNRU5UKSByZXR1
cm5zIGluc3RhbmNlIHNldCB3aXRoIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyCi1bIDM3OiBQQVNT
IF0gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKFNURU5DSUxfQVRUQUNITUVOVCkg
cmV0dXJucyBpbnN0YW5jZSBzZXQgd2l0aCBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcgotWyAzODog
UEFTUyBdIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihERVBUSF9TVEVOQ0lMX0FU
VEFDSE1FTlQpIHJldHVybnMgaW5zdGFuY2Ugc2V0IHdpdGggZnJhbWVidWZmZXJSZW5kZXJidWZm
ZXIKLVsgMzk6IEZBSUwgXSBDT0xPUl9BVFRBQ0hNRU5UMDogRXhwZWN0IGJhc2ljIGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0MDogRkFJTCBdIENPTE9SX0FUVEFDSE1FTlQwOiBF
eHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0MTogUEFT
UyBdIFtvYmplY3QgV2ViR0xSZW5kZXJidWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMUmVu
ZGVyYnVmZmVyCi1bIDQyOiBGQUlMIF0gREVQVEhfQVRUQUNITUVOVDogRXhwZWN0IGJhc2ljIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0MzogRkFJTCBdIERFUFRIX0FUVEFDSE1F
TlQ6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDQ0
OiBQQVNTIF0gW29iamVjdCBXZWJHTFJlbmRlcmJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2Vi
R0xSZW5kZXJidWZmZXIKLVsgNDU6IEZBSUwgXSBTVEVOQ0lMX0FUVEFDSE1FTlQ6IEV4cGVjdCBi
YXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDY6IEZBSUwgXSBTVEVOQ0lM
X0FUVEFDSE1FTlQ6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDQ3OiBQQVNTIF0gW29iamVjdCBXZWJHTFJlbmRlcmJ1ZmZlcl0gaXMgYW4gaW5zdGFu
Y2Ugb2YgV2ViR0xSZW5kZXJidWZmZXIKLVsgNDg6IEZBSUwgXSBERVBUSF9TVEVOQ0lMX0FUVEFD
SE1FTlQ6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDk6
IEZBSUwgXSBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDUwOiBQQVNTIF0gW29iamVjdCBXZWJHTFJlbmRl
cmJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xSZW5kZXJidWZmZXIKLVsgNTE6IFBBU1Mg
XSBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotWyBGQUlMIF0gMjggZmFpbHVyZXMgcmVwb3J0
ZWQKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL21pc2MvZXhwYW5kby1sb3NzLTItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL21pc2MvZXhwYW5kby1sb3Nz
LTItZXhwZWN0ZWQudHh0CmluZGV4IGZjMDI5NmFiNGVhZDUwNDg0YzQ4MzQzZmZmM2FjNTBhNjVm
MDhlZTguLjljZDIyMjU2MDhiMzE5ZTM2NGFiNmQ0M2M5MzNjZGNlNTQzYjIxZTIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9taXNjL2V4cGFuZG8tbG9z
cy0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5j
ZTIvbWlzYy9leHBhbmRvLWxvc3MtMi1leHBlY3RlZC50eHQKQEAgLTEsMzQxICsxLDUgQEAKIFRo
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLgogCiBUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZTIvbWlzYy9leHBhbmRvLWxvc3MtMi5odG1sCi1bIDE6IFBBU1Mg
XSBnZXRQYXJhbWV0ZXIoU0FNUExFUl9CSU5ESU5HKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2Fz
IGJvdW5kLgotWyAyOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFNBTVBMRVJfQklORElORyk6IEV4cGVj
dCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzogRkFJTCBdIGdldFBh
cmFtZXRlcihTQU1QTEVSX0JJTkRJTkcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyA0OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFNBTVBMRVJfQklORElO
Ryk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNTogUEFT
UyBdIFtvYmplY3QgV2ViR0xTYW1wbGVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTFNhbXBsZXIK
LVsgNjogUEFTUyBdIGdldFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVFREJBQ0tfQklORElORykgcmV0
dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNzogRkFJTCBdIGdldFBhcmFtZXRlcihU
UkFOU0ZPUk1fRkVFREJBQ0tfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgODogRkFJTCBdIGdldFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVFREJB
Q0tfQklORElORyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDk6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJTkcp
OiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDEwOiBQQVNT
IF0gW29iamVjdCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJH
TFRyYW5zZm9ybUZlZWRiYWNrCi1bIDExOiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFZFUlRFWF9BUlJB
WV9CSU5ESU5HKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMjogRkFJTCBd
IGdldFBhcmFtZXRlcihWRVJURVhfQVJSQVlfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTM6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVkVSVEVY
X0FSUkFZX0JJTkRJTkcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNw
aXRlIEdDLgotWyAxNDogUEFTUyBdIGdldFBhcmFtZXRlcihWRVJURVhfQVJSQVlfQklORElORyk6
IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTU6IFBBU1Mg
XSBbb2JqZWN0IFdlYkdMVmVydGV4QXJyYXlPYmplY3RdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdM
VmVydGV4QXJyYXlPYmplY3QKLVsgMTY6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5E
SU5HXzNEKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxNzogRkFJTCBdIGdl
dFBhcmFtZXRlcihURVhUVVJFX0JJTkRJTkdfM0QpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE4OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFRFWFRVUkVfQklO
RElOR18zRCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDE5OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFRFWFRVUkVfQklORElOR18zRCk6IEV4cGVjdCBl
eHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjA6IFBBU1MgXSBbb2JqZWN0
IFdlYkdMVGV4dHVyZV0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xUZXh0dXJlCi1bIDIxOiBQQVNT
IF0gZ2V0UGFyYW1ldGVyKFRFWFRVUkVfQklORElOR18yRF9BUlJBWSkgcmV0dXJucyBpbnN0YW5j
ZSB0aGF0IHdhcyBib3VuZC4KLVsgMjI6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5E
SU5HXzJEX0FSUkFZKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAyMzogRkFJTCBdIGdldFBhcmFtZXRlcihURVhUVVJFX0JJTkRJTkdfMkRfQVJSQVkpOiBF
eHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNDogUEFT
UyBdIGdldFBhcmFtZXRlcihURVhUVVJFX0JJTkRJTkdfMkRfQVJSQVkpOiBFeHBlY3QgZXh0cmEg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI1OiBQQVNTIF0gW29iamVjdCBXZWJH
TFRleHR1cmVdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMVGV4dHVyZQotWyAyNjogUEFTUyBdIGdl
dFBhcmFtZXRlcihSRUFEX0ZSQU1FQlVGRkVSX0JJTkRJTkcpIHJldHVybnMgaW5zdGFuY2UgdGhh
dCB3YXMgYm91bmQuCi1bIDI3OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFJFQURfRlJBTUVCVUZGRVJf
QklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
Mjg6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HKTogRXhwZWN0
IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjk6IFBBU1MgXSBn
ZXRQYXJhbWV0ZXIoUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGV4dHJhIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMDogUEFTUyBdIFtvYmplY3QgV2ViR0xGcmFt
ZWJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xGcmFtZWJ1ZmZlcgotWyAzMTogUEFTUyBd
IGdldFBhcmFtZXRlcihEUkFXX0ZSQU1FQlVGRkVSX0JJTkRJTkcpIHJldHVybnMgaW5zdGFuY2Ug
dGhhdCB3YXMgYm91bmQuCi1bIDMyOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKERSQVdfRlJBTUVCVUZG
RVJfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMzM6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoRFJBV19GUkFNRUJVRkZFUl9CSU5ESU5HKTogRXhw
ZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzQ6IFBBU1Mg
XSBnZXRQYXJhbWV0ZXIoRFJBV19GUkFNRUJVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGV4dHJhIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzNTogUEFTUyBdIFtvYmplY3QgV2ViR0xG
cmFtZWJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xGcmFtZWJ1ZmZlcgotWyAzNjogUEFT
UyBdIGdldFBhcmFtZXRlcihDT1BZX1JFQURfQlVGRkVSX0JJTkRJTkcpIHJldHVybnMgaW5zdGFu
Y2UgdGhhdCB3YXMgYm91bmQuCi1bIDM3OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKENPUFlfUkVBRF9C
VUZGRVJfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMzg6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoQ09QWV9SRUFEX0JVRkZFUl9CSU5ESU5HKTog
RXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzk6IFBB
U1MgXSBnZXRQYXJhbWV0ZXIoQ09QWV9SRUFEX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGV4dHJh
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0MDogUEFTUyBdIFtvYmplY3QgV2Vi
R0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDQxOiBQQVNTIF0gZ2V0
UGFyYW1ldGVyKENPUFlfV1JJVEVfQlVGRkVSX0JJTkRJTkcpIHJldHVybnMgaW5zdGFuY2UgdGhh
dCB3YXMgYm91bmQuCi1bIDQyOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKENPUFlfV1JJVEVfQlVGRkVS
X0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDQzOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKENPUFlfV1JJVEVfQlVGRkVSX0JJTkRJTkcpOiBFeHBl
Y3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0NDogUEFTUyBd
IGdldFBhcmFtZXRlcihDT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGV4dHJhIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0NTogUEFTUyBdIFtvYmplY3QgV2ViR0xC
dWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDQ2OiBQQVNTIF0gZ2V0UGFy
YW1ldGVyKFBJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJTkcpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3
YXMgYm91bmQuCi1bIDQ3OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFBJWEVMX1BBQ0tfQlVGRkVSX0JJ
TkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDQ4
OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFBJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3Qg
c3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0OTogUEFTUyBdIGdl
dFBhcmFtZXRlcihQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGV4dHJhIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA1MDogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZm
ZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDUxOiBQQVNTIF0gZ2V0UGFyYW1l
dGVyKFBJWEVMX1VOUEFDS19CVUZGRVJfQklORElORykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdh
cyBib3VuZC4KLVsgNTI6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoUElYRUxfVU5QQUNLX0JVRkZFUl9C
SU5ESU5HKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA1
MzogRkFJTCBdIGdldFBhcmFtZXRlcihQSVhFTF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkcpOiBFeHBl
Y3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA1NDogUEFTUyBd
IGdldFBhcmFtZXRlcihQSVhFTF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3QgZXh0cmEg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDU1OiBQQVNTIF0gW29iamVjdCBXZWJH
TEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgNTY6IFBBU1MgXSBnZXRQ
YXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3Rh
bmNlIHRoYXQgd2FzIGJvdW5kLgotWyA1NzogRkFJTCBdIGdldFBhcmFtZXRlcihUUkFOU0ZPUk1f
RkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDU4OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFD
S19CVUZGRVJfQklORElORyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDU5OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19C
VUZGRVJfQklORElORyk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgNjA6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBX
ZWJHTEJ1ZmZlcgotWyA2MTogUEFTUyBdIGdldFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA2MjogRkFJTCBdIGdldFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyA2MzogRkFJTCBdIGdldFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgNjQ6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORyk6
IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNjU6IFBBU1Mg
XSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA2
NjogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9C
SU5ESU5HLCAwKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA2NzogUEFTUyBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAx
KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA2ODogUEFTUyBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAyKSByZXR1cm5z
IGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA2OTogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAzKSByZXR1cm5zIGluc3RhbmNl
IHRoYXQgd2FzIGJvdW5kLgotWyA3MDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVFJBTlNG
T1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAwKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyA3MTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVFJB
TlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAwKTogRXhwZWN0IHN1Ym9iamVjdCBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNzI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMCk6IEV4cGVjdCBleHRyYSBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNzM6IFBBU1MgXSBbb2JqZWN0IFdlYkdM
QnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA3NDogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAxKTogRXhw
ZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA3NTogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAxKTog
RXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNzY6IEZB
SUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElO
RywgMSk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNzc6
IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZl
cgotWyA3ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JV
RkZFUl9CSU5ESU5HLCAyKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyA3OTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNL
X0JVRkZFUl9CSU5ESU5HLCAyKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgODA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9G
RUVEQkFDS19CVUZGRVJfQklORElORywgMik6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgODE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBp
bnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA4MjogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIo
VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAzKTogRXhwZWN0IGJhc2ljIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA4MzogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAzKTogRXhwZWN0IHN1Ym9iamVj
dCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgODQ6IFBBU1MgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMyk6IEV4cGVjdCBl
eHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgODU6IFBBU1MgXSBbb2JqZWN0
IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA4NjogUEFTUyBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMCkgcmV0dXJucyBp
bnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgODc6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91
bmQuCi1bIDg4OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAyKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA4OTogUEFTUyBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMykgcmV0dXJucyBpbnN0
YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgOTA6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQu
Ci1bIDkxOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCA1KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA5MjogUEFTUyBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNikgcmV0dXJucyBpbnN0YW5j
ZSB0aGF0IHdhcyBib3VuZC4KLVsgOTM6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDcpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1b
IDk0OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA4
KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA5NTogUEFTUyBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgOSkgcmV0dXJucyBpbnN0YW5jZSB0
aGF0IHdhcyBib3VuZC4KLVsgOTY6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDEwKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA5
NzogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTEp
IHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDk4OiBQQVNTIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMikgcmV0dXJucyBpbnN0YW5jZSB0
aGF0IHdhcyBib3VuZC4KLVsgOTk6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDEzKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAx
MDA6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE0
KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMDE6IFBBU1MgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE1KSByZXR1cm5zIGluc3RhbmNl
IHRoYXQgd2FzIGJvdW5kLgotWyAxMDI6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDE2KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgot
WyAxMDM6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDE3KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMDQ6IFBBU1MgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE4KSByZXR1cm5zIGluc3Rh
bmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMDU6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE5KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5k
LgotWyAxMDY6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDIwKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMDc6IFBBU1MgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIxKSByZXR1cm5zIGlu
c3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMDg6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIyKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJv
dW5kLgotWyAxMDk6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDIzKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMTA6IFBBU1Mg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI0KSByZXR1cm5z
IGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMTE6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI1KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2Fz
IGJvdW5kLgotWyAxMTI6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVS
X0JJTkRJTkcsIDI2KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMTM6IFBB
U1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI3KSByZXR1
cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMTQ6IFBBU1MgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI4KSByZXR1cm5zIGluc3RhbmNlIHRoYXQg
d2FzIGJvdW5kLgotWyAxMTU6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDI5KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMTY6
IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMwKSBy
ZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMTc6IFBBU1MgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMxKSByZXR1cm5zIGluc3RhbmNlIHRo
YXQgd2FzIGJvdW5kLgotWyAxMTg6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDMyKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAx
MTk6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMz
KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMjA6IFBBU1MgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM0KSByZXR1cm5zIGluc3RhbmNl
IHRoYXQgd2FzIGJvdW5kLgotWyAxMjE6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDM1KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgot
WyAxMjI6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDM2KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMjM6IFBBU1MgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM3KSByZXR1cm5zIGluc3Rh
bmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMjQ6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM4KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5k
LgotWyAxMjU6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDM5KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMjY6IFBBU1MgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQwKSByZXR1cm5zIGlu
c3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMjc6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQxKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJv
dW5kLgotWyAxMjg6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDQyKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMjk6IFBBU1Mg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQzKSByZXR1cm5z
IGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMzA6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ0KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2Fz
IGJvdW5kLgotWyAxMzE6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVS
X0JJTkRJTkcsIDQ1KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMzI6IFBB
U1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ2KSByZXR1
cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMzM6IFBBU1MgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ3KSByZXR1cm5zIGluc3RhbmNlIHRoYXQg
d2FzIGJvdW5kLgotWyAxMzQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDApOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDEzNTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklO
RElORywgMCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDEzNjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
RywgMCk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTM3
OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZm
ZXIKLVsgMTM4OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAxKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAx
Mzk6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEp
OiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNDA6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEpOiBF
eHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE0MTogUEFTUyBd
IFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE0
MjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMik6
IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTQzOiBGQUlM
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyKTogRXhwZWN0
IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTQ0OiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyKTogRXhwZWN0IGV4
dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNDU6IFBBU1MgXSBbb2JqZWN0
IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxNDY6IEZBSUwg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMpOiBFeHBlY3Qg
YmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE0NzogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMyk6IEV4cGVjdCBzdWJvYmpl
Y3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE0ODogRkFJTCBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMyk6IEV4cGVjdCBleHRyYSBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTQ5OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1
ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTUwOiBGQUlMIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0KTogRXhwZWN0IGJhc2ljIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNTE6IEZBSUwgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNTI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE1MzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlz
IGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE1NDogRkFJTCBdIGdldEluZGV4ZWRQYXJh
bWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTU1OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCA1KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTU2OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCA1KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyAxNTc6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0
YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxNTg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDYpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDE1OTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9C
VUZGRVJfQklORElORywgNik6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDE2MDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZG
RVJfQklORElORywgNik6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMTYxOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2Yg
V2ViR0xCdWZmZXIKLVsgMTYyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCA3KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyAxNjM6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAxNjQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDcpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE2
NTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVm
ZmVyCi1bIDE2NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklO
RElORywgOCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MTY3OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA4
KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTY4
OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA4KTog
RXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNjk6IFBBU1Mg
XSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAx
NzA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDkp
OiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE3MTogRkFJ
TCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgOSk6IEV4cGVj
dCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE3MjogRkFJTCBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgOSk6IEV4cGVjdCBl
eHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTczOiBQQVNTIF0gW29iamVj
dCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTc0OiBGQUlM
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMCk6IEV4cGVj
dCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTc1OiBGQUlMIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMCk6IEV4cGVjdCBzdWJv
YmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE3NjogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTApOiBFeHBlY3QgZXh0cmEg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE3NzogUEFTUyBdIFtvYmplY3QgV2Vi
R0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE3ODogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTEpOiBFeHBlY3QgYmFz
aWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE3OTogRkFJTCBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTEpOiBFeHBlY3Qgc3Vib2JqZWN0
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxODA6IEZBSUwgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDExKTogRXhwZWN0IGV4dHJhIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxODE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVm
ZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxODI6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEyKTogRXhwZWN0IGJhc2ljIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxODM6IEZBSUwgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEyKTogRXhwZWN0IHN1Ym9iamVjdCBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTg0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMik6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTg1OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0g
aXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTg2OiBGQUlMIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMyk6IEV4cGVjdCBiYXNpYyBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTg3OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE4ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIo
VU5JRk9STV9CVUZGRVJfQklORElORywgMTMpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDE4OTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFu
IGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE5MDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTQpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE5MTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5J
Rk9STV9CVUZGRVJfQklORElORywgMTQpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyAxOTI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDE0KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyAxOTM6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0
YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxOTQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE1KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyAxOTU6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDE1KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgMTk2OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCAxNSk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgMTk3OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ug
b2YgV2ViR0xCdWZmZXIKLVsgMTk4OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCAxNik6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVz
cGl0ZSBHQy4KLVsgMTk5OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCAxNik6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDIwMDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJf
QklORElORywgMTYpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDIwMTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdl
YkdMQnVmZmVyCi1bIDIwMjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZG
RVJfQklORElORywgMTcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDIwMzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklO
RElORywgMTcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAyMDQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDE3KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAy
MDU6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1
ZmZlcgotWyAyMDY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDE4KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgot
WyAyMDc6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDE4KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MjA4OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAx
OCk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjA5OiBQ
QVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIK
LVsgMjEwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCAxOSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjEx
OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxOSk6
IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIxMjog
RkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTkpOiBF
eHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIxMzogUEFTUyBd
IFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDIx
NDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjAp
OiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIxNTogRkFJ
TCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjApOiBFeHBl
Y3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMTY6IEZBSUwg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIwKTogRXhwZWN0
IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMTc6IFBBU1MgXSBbb2Jq
ZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyMTg6IEZB
SUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIxKTogRXhw
ZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMTk6IEZBSUwgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIxKTogRXhwZWN0IHN1
Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjIwOiBGQUlMIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMSk6IEV4cGVjdCBleHRy
YSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjIxOiBQQVNTIF0gW29iamVjdCBX
ZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjIyOiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMik6IEV4cGVjdCBi
YXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjIzOiBGQUlMIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMik6IEV4cGVjdCBzdWJvYmpl
Y3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIyNDogRkFJTCBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjIpOiBFeHBlY3QgZXh0cmEgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIyNTogUEFTUyBdIFtvYmplY3QgV2ViR0xC
dWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDIyNjogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjMpOiBFeHBlY3QgYmFzaWMg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIyNzogRkFJTCBdIGdldEluZGV4ZWRQ
YXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjMpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMjg6IEZBSUwgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIzKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMjk6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVy
XSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyMzA6IEZBSUwgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI0KTogRXhwZWN0IGJhc2ljIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMzE6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI0KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjMyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNCk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjMzOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMg
YW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjM0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjM1OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNSk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIzNjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5J
Rk9STV9CVUZGRVJfQklORElORywgMjUpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDIzNzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGlu
c3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDIzODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIo
VU5JRk9STV9CVUZGRVJfQklORElORywgMjYpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDIzOTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9S
TV9CVUZGRVJfQklORElORywgMjYpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyAyNDA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDI2KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNw
aXRlIEdDLgotWyAyNDE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5j
ZSBvZiBXZWJHTEJ1ZmZlcgotWyAyNDI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDI3KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyAyNDM6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDI3KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVz
cGl0ZSBHQy4KLVsgMjQ0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCAyNyk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMjQ1OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2Yg
V2ViR0xCdWZmZXIKLVsgMjQ2OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCAyOCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgMjQ3OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCAyOCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDI0ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklO
RElORywgMjgpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDI0OTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdM
QnVmZmVyCi1bIDI1MDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJf
QklORElORywgMjkpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDI1MTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
RywgMjkpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgot
WyAyNTI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDI5KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNTM6
IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZl
cgotWyAyNTQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDMwKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAy
NTU6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMw
KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjU2
OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMCk6
IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjU3OiBQQVNT
IF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsg
MjU4OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAz
MSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjU5OiBG
QUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMSk6IEV4
cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI2MDogRkFJ
TCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzEpOiBFeHBl
Y3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI2MTogUEFTUyBdIFtv
YmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDI2Mjog
RkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzIpOiBF
eHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI2MzogRkFJTCBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzIpOiBFeHBlY3Qg
c3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNjQ6IEZBSUwgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMyKTogRXhwZWN0IGV4
dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNjU6IFBBU1MgXSBbb2JqZWN0
IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyNjY6IEZBSUwg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMzKTogRXhwZWN0
IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNjc6IEZBSUwgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMzKTogRXhwZWN0IHN1Ym9i
amVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjY4OiBGQUlMIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMyk6IEV4cGVjdCBleHRyYSBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjY5OiBQQVNTIF0gW29iamVjdCBXZWJH
TEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjcwOiBGQUlMIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNCk6IEV4cGVjdCBiYXNp
YyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjcxOiBGQUlMIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNCk6IEV4cGVjdCBzdWJvYmplY3Qg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI3MjogRkFJTCBdIGdldEluZGV4ZWRQ
YXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzQpOiBFeHBlY3QgZXh0cmEgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI3MzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZm
ZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDI3NDogRkFJTCBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzUpOiBFeHBlY3QgYmFzaWMgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI3NTogRkFJTCBdIGdldEluZGV4ZWRQYXJh
bWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzUpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNzY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM1KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNzc6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBp
cyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyNzg6IEZBSUwgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM2KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNzk6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM2KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjgwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNik6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgMjgxOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4g
aW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjgyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjgzOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCAzNyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDI4NDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9S
TV9CVUZGRVJfQklORElORywgMzcpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDI4NTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3Rh
bmNlIG9mIFdlYkdMQnVmZmVyCi1bIDI4NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5J
Rk9STV9CVUZGRVJfQklORElORywgMzgpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDI4NzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9C
VUZGRVJfQklORElORywgMzgpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyAyODg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDM4KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyAyODk6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBv
ZiBXZWJHTEJ1ZmZlcgotWyAyOTA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDM5KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNw
aXRlIEdDLgotWyAyOTE6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVS
X0JJTkRJTkcsIDM5KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgMjkyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCAzOSk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMjkzOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2Vi
R0xCdWZmZXIKLVsgMjk0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCA0MCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMjk1OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCA0MCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDI5NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
RywgNDApOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI5
NzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVm
ZmVyCi1bIDI5ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklO
RElORywgNDEpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDI5OTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywg
NDEpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAz
MDA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQx
KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMDE6IFBB
U1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgot
WyAzMDI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDQyKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMDM6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQyKTog
RXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzA0OiBG
QUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Mik6IEV4
cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzA1OiBQQVNTIF0g
W29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMzA2
OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Myk6
IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzA3OiBGQUlM
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Myk6IEV4cGVj
dCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMwODogRkFJTCBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDMpOiBFeHBlY3Qg
ZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMwOTogUEFTUyBdIFtvYmpl
Y3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDMxMDogRkFJ
TCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDQpOiBFeHBl
Y3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMxMTogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDQpOiBFeHBlY3Qgc3Vi
b2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMTI6IEZBSUwgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ0KTogRXhwZWN0IGV4dHJh
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMTM6IFBBU1MgXSBbb2JqZWN0IFdl
YkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAzMTQ6IEZBSUwgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ1KTogRXhwZWN0IGJh
c2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMTU6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ1KTogRXhwZWN0IHN1Ym9iamVj
dCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzE2OiBGQUlMIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NSk6IEV4cGVjdCBleHRyYSBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzE3OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1
ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMzE4OiBGQUlMIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Nik6IEV4cGVjdCBiYXNpYyBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzE5OiBGQUlMIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Nik6IEV4cGVjdCBzdWJvYmplY3QgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMyMDogRkFJTCBdIGdldEluZGV4ZWRQYXJh
bWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDYpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMyMTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJd
IGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDMyMjogUEFTUyBdIGdldEluZGV4ZWRQ
YXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDcpOiBFeHBlY3QgYmFzaWMgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMyMzogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMjQ6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ3KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyAzMjU6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBh
biBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAzMjY6IFBBU1MgXSBDVVJSRU5UX1FVRVJZIHJl
dHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDMyNzogUEFTUyBdIENVUlJFTlRfUVVF
UlkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMzI4OiBGQUlMIF0gUXVlcnk6
IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzI5OiBGQUlM
IF0gUXVlcnk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDMzMDogUEFTUyBdIFF1ZXJ5OiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDMzMTogUEFTUyBdIFtvYmplY3QgV2ViR0xRdWVyeV0gaXMgYW4gaW5zdGFu
Y2Ugb2YgV2ViR0xRdWVyeQotWyAzMzI6IEZBSUwgXSBRdWVyeTogRXhwZWN0IGJhc2ljIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMzM6IEZBSUwgXSBRdWVyeTogRXhwZWN0IHN1
Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzM0OiBQQVNTIF0gUXVl
cnk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzM1OiBQ
QVNTIF0gW29iamVjdCBXZWJHTFF1ZXJ5XSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTFF1ZXJ5Ci1b
IDMzNjogUEFTUyBdIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi1bIEZBSUwgXSAxODAgZmFp
bHVyZXMgcmVwb3J0ZWQKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMt
dGVzdC1wcmUuanMgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9qcy9qcy10ZXN0LXByZS5qcwppbmRleCBlMWU3MDE4OGZiOTcyODUxMjdkMjA1ZWNk
MjNjOWVmNzY0MDQ4OTNjLi5lN2YxMzg1OTI0NTUxYjllNGM1M2ZlZDU3MThhNzQ3ZjdjZDQ0OTNi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9qcy9qcy10ZXN0LXByZS5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10ZXN0LXByZS5qcwpAQCAtNzA4LDYgKzcw
OCwxMiBAQCBmdW5jdGlvbiB3ZWJnbEhhcm5lc3NDb2xsZWN0R2FyYmFnZSgpIHsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAorICAgIC8vIFdlYktpdCdzIE1pbmlCcm93c2VyCisgICAgaWYgKHdp
bmRvdy4kdm0pIHsKKyAgICAgICAgd2luZG93LiR2bS5nYygpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgZnVuY3Rpb24gZ2NSZWMobikgewogICAgICAgICBpZiAobiA8IDEpCiAgICAg
ICAgICAgICByZXR1cm4ge307Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406462</attachid>
            <date>2020-08-12 10:05:38 -0700</date>
            <delta_ts>2020-08-12 16:48:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214765-20200812100537.patch</filename>
            <type>text/plain</type>
            <size>85248</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWU2NmIxMmUzZmRmOTdl
NWJmZDk2ZjM2NzA4MjJjODM2ZTQ3YWZhNy4uNzA1OTczMTBkOTdjYmUxM2IyNTFiYjQzOThiMTQw
MjNjNWM0MTAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNyBAQAorMjAyMC0wOC0xMiAgS2Vu
bmV0aCBSdXNzZWxsICA8a2JyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViR0wyXSBleHBh
bmRvLWxvc3MgYW5kIGV4cGFuZG8tbG9zcy0yIGNvbmZvcm1hbmNlIHRlc3RzIGFyZSBmYWlsaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ3NjUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAoUmUtbGFu
ZCB3aXRoIGxvY2tpbmcgZml4ZXMgeXN1enVraUAgcG9pbnRlZCBvdXQgYXMgbmVjZXNzYXJ5KQor
CisgICAgICAgIFVzZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dCdzIGFuZCBKU1dlYkdMMlJlbmRl
cmluZ0NvbnRleHQncworICAgICAgICBleGlzdGluZyB2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbiBo
b29rICh2aWEgSlNDdXN0b21NYXJrRnVuY3Rpb24gaW4KKyAgICAgICAgdGhlaXIgSURMKSB0byBh
ZGQgb3BhcXVlIHJvb3RzIGZvciBhbGwgV2ViR0xPYmplY3RzIGxhdGNoZWQgaW4gdG8KKyAgICAg
ICAgdGhlIGNvbnRleHQgc3RhdGUsIGFuZCBhbGwgV2ViR0xPYmplY3RzIHRoZXkgcmVmZXIgdG8u
IChFeHRlbnNpb25zCisgICAgICAgIHdlcmUgYWxyZWFkeSBwcmV2aW91c2x5IGhhbmRsZWQuKQor
CisgICAgICAgIEdyYWIgYSBwZXItV2ViR0wtY29udGV4dCBsb2NrIGluIHZpc2l0QWRkaXRpb25h
bENoaWxkcmVuLCBhbmQgaW4KKyAgICAgICAgYWxsIFdlYkdMIGNvbnRleHQtIGFuZCBvYmplY3Qt
cmVsYXRlZCBtZXRob2RzIHdoaWNoIG1vZGlmeQorICAgICAgICBjb21wb3VuZCBkYXRhIHN0cnVj
dHVyZXMgbGlrZSBIYXNoTWFwcyBhbmQgVmVjdG9ycyB0aGF0IGFyZQorICAgICAgICB0cmF2ZXJz
ZWQgYnkgdmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4gYW5kIGl0cyBjYWxsZWVzLiBQZXIgZmVlZGJh
Y2sKKyAgICAgICAgZnJvbSB5c3V6dWtpQCwgdGhpcyBpcyBuZWVkZWQgdG8gcHJvcGVybHkgc3Vw
cG9ydCBjb25jdXJyZW50CisgICAgICAgIG1hcmtpbmcuCisKKyAgICAgICAgQWRkICJHZW5lcmF0
ZUlzUmVhY2hhYmxlPUltcGwiIHRvIHRoZSBJREwgZmlsZXMgb2YgbmVlZGVkIFdlYkdMCisgICAg
ICAgIG9iamVjdHMgKFdlYkdMQnVmZmVyLCBXZWJHTFRleHR1cmUsIGV0Yy4pIHNvIHRoYXQgdGhl
eSBwYXkKKyAgICAgICAgYXR0ZW50aW9uIHRvIHRoZSBvcGFxdWUgcm9vdCBzdGF0ZSB3aGVuIGRl
dGVybWluaW5nIGxpdmVuZXNzIG9mCisgICAgICAgIHRoZWlyIEphdmFTY3JpcHQgd3JhcHBlcnMu
IEFkZCBhIEZJWE1FIHRvIG9iamVjdEdyYXBoTG9jayBpbgorICAgICAgICBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlIHRvIGNvbnNpZGVyIHJld3JpdGluZyB0aGlzIGluIGEKKyAgICAgICAgbG9j
ay1mcmVlIG1hbm5lci4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dl
YkdMUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4pOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZEZyYW1lYnVmZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0ZVF1ZXJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJlZ2luUXVlcnkpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZW5kUXVlcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlU2FtcGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiaW5kU2FtcGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiaW5kVHJhbnNmb3JtRmVlZGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmVnaW5UcmFuc2Zvcm1GZWVk
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpzZXRJbmRl
eGVkQnVmZmVyQmluZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250
ZXh0Ojp2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTDJSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xCdWZm
ZXIuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpvYmplY3RHcmFwaExvY2tGb3JBQ29u
dGV4dCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaDoKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xDb250ZXh0T2JqZWN0OjpvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KToKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuaDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRnJhbWVi
dWZmZXI6OnJlbW92ZUF0dGFjaG1lbnRGcm9tQm91bmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTEZyYW1lYnVmZmVyOjpkZWxldGVPYmplY3RJbXBsKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OmluaXRpYWxpemVBdHRhY2htZW50cyk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTEZyYW1lYnVmZmVyOjp2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OnNldEF0dGFjaG1lbnRJbnRlcm5h
bCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMT2JqZWN0Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUHJvZ3JhbTo6YXR0YWNoU2hhZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMUHJvZ3JhbTo6dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyk6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmg6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xQcm9ncmFtLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmlkbDoK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5pZGw6CisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphdHRhY2hTaGFkZXIpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YmluZEJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpiaW5kRnJhbWVidWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YmluZFJlbmRlcmJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpiaW5k
VGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1
bmNhY2hlRGVsZXRlZEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZUZyYW1lYnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRldGFjaFNoYWRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1c2VQcm9ncmFtKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYlBv
aW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmlz
aXRSZWZlcmVuY2VkSlNXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpvYmplY3RHcmFwaExvY2spOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QpOiBEZWxldGVkLgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2FtcGxlci5pZGw6CisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xTaGFkZXIuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMU2hhcmVkT2JqZWN0OjpvYmplY3RHcmFw
aExvY2tGb3JDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVj
dC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5pZGw6CisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpzZXRQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OnNldEJvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNr
QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OnZpc2l0
UmVmZXJlbmNlZEpTV3JhcHBlcnMpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVHJhbnNm
b3JtRmVlZGJhY2suaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRi
YWNrLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0Lmlk
bDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4
QXR0cmliU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJh
c2U6OnVuYmluZEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0QmFzZTo6dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyk6CisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbDoKKwogMjAyMC0wOC0xMiAgU2VyZ2lvIFZpbGxh
ciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxk
IGZpeCBhZnRlciByMjY1NTQ2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggNjVhNThj
ZDc2Zjk3YmNkOGUxM2NmOWJhMDMwMTBkNGU4N2QwODVlZS4uZTZjYzI4NzFmMDNhOWJiODg0M2Qx
NTllMjM3ZTEyMWY5ZjljMDAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0zNiw2
ICszNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB2b2lkIEpTV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAg
ICAgdmlzaXRvci5hZGRPcGFxdWVSb290KCZ3cmFwcGVkKCkpOworICAgIHdyYXBwZWQoKS52aXNp
dFJlZmVyZW5jZWRKU1dyYXBwZXJzKHZpc2l0b3IpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdM
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggYTBkYWY4NjdjZTZhNjhmMWFiNmM4NjVh
NTIwNTc5ZDE2Y2I1ZWQwYy4uZDkzZmI2YjFjYmY2NzAwM2ZmYWU0OGMwYWYzNDk3ZjU4YWQ2NjE0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtMzYsNiArMzYsNyBAQCB1c2luZyBuYW1l
c3BhY2UgSlNDOwogdm9pZCBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRBZGRpdGlvbmFs
Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgdmlzaXRvci5hZGRPcGFxdWVS
b290KCZ3cmFwcGVkKCkpOworICAgIHdyYXBwZWQoKS52aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJz
KHZpc2l0b3IpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDJl
YzgzNzg4OTAyZjk5ZTg2NjAxMTVjNmQ2MzBhYWI1MGJkNjI0ZjkuLjRiODU2MmQzZTZjNWI5YmMy
N2Y4NDQyZDg5NmI4NTlhOGZlNmMyMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC02Niw2ICs2Niw4IEBACiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvU2xvdFZpc2l0b3IuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90
VmlzaXRvcklubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5VHlw
ZS5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKQEAgLTY5Myw2ICs2OTUs
OCBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEJ1ZmZlclN1YkRhdGEoR0NHTGVu
dW0gdGFyZ2V0LCBsb25nIGxvbmcgc3JjQnl0ZQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmJpbmRGcmFtZWJ1ZmZlcihHQ0dMZW51bSB0YXJnZXQsIFdlYkdMRnJhbWVidWZmZXIqIGJ1
ZmZlcikKIHsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29iamVjdEdyYXBoTG9jayk7CisKICAg
ICBpZiAoIWNoZWNrT2JqZWN0VG9CZUJvdW5kKCJiaW5kRnJhbWVidWZmZXIiLCBidWZmZXIpKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTE4NDAsNiArMTg0NCw4IEBAIFJlZlB0cjxXZWJHTFF1ZXJ5
PiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVRdWVyeSgpCiAKIHZvaWQgV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6ZGVsZXRlUXVlcnkoV2ViR0xRdWVyeSogcXVlcnkpCiB7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIob2JqZWN0R3JhcGhMb2NrKCkpOworCiAgICAgaWYgKGlzQ29udGV4dExv
c3RPclBlbmRpbmcoKSB8fCAhcXVlcnkgfHwgIXF1ZXJ5LT5vYmplY3QoKSB8fCAhdmFsaWRhdGVX
ZWJHTE9iamVjdCgiZGVsZXRlUXVlcnkiLCBxdWVyeSkpCiAgICAgICAgIHJldHVybjsKICAgICBp
ZiAocXVlcnktPnRhcmdldCgpICYmIHF1ZXJ5ID09IG1fYWN0aXZlUXVlcmllcy5nZXQocXVlcnkt
PnRhcmdldCgpKSkgewpAQCAtMTg2OSw2ICsxODc1LDggQEAgYm9vbCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Ojp2YWxpZGF0ZVF1ZXJ5VGFyZ2V0KGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0NH
TGUKIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiZWdpblF1ZXJ5KEdDR0xlbnVtIHRh
cmdldCwgV2ViR0xRdWVyeSYgcXVlcnkpCiB7CisgICAgTG9ja0hvbGRlciBsb2NrZXIob2JqZWN0
R3JhcGhMb2NrKCkpOworCiAgICAgR0NHTGVudW0gdGFyZ2V0S2V5OwogICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImJlZ2luUXVlcnkiLCAm
cXVlcnkpIHx8ICF2YWxpZGF0ZVF1ZXJ5VGFyZ2V0KCJiZWdpblF1ZXJ5IiwgdGFyZ2V0LCAmdGFy
Z2V0S2V5KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTg5Miw2ICsxOTAwLDggQEAgdm9pZCBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpiZWdpblF1ZXJ5KEdDR0xlbnVtIHRhcmdldCwgV2ViR0xRdWVy
eSYgcXVlcnkpCiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZW5kUXVlcnkoR0NHTGVu
dW0gdGFyZ2V0KQogeworICAgIExvY2tIb2xkZXIgbG9ja2VyKG9iamVjdEdyYXBoTG9jaygpKTsK
KwogICAgIEdDR0xlbnVtIHRhcmdldEtleTsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGlu
ZygpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgfHwgIXZhbGlkYXRlUXVlcnlUYXJnZXQo
ImJlZ2luUXVlcnkiLCB0YXJnZXQsICZ0YXJnZXRLZXkpKQogICAgICAgICByZXR1cm47CkBAIC0x
OTYzLDYgKzE5NzMsOCBAQCBSZWZQdHI8V2ViR0xTYW1wbGVyPiBXZWJHTDJSZW5kZXJpbmdDb250
ZXh0OjpjcmVhdGVTYW1wbGVyKCkKIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxl
dGVTYW1wbGVyKFdlYkdMU2FtcGxlciogc2FtcGxlcikKIHsKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihvYmplY3RHcmFwaExvY2soKSk7CisKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygp
KQogICAgICAgICByZXR1cm47CiAKQEAgLTE5ODcsNiArMTk5OSw4IEBAIEdDR0xib29sZWFuIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmlzU2FtcGxlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpCiAK
IHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZFNhbXBsZXIoR0NHTHVpbnQgdW5pdCwg
V2ViR0xTYW1wbGVyKiBzYW1wbGVyKQogeworICAgIExvY2tIb2xkZXIgbG9ja2VyKG9iamVjdEdy
YXBoTG9jaygpKTsKKwogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAg
IHJldHVybjsKICAgICAKQEAgLTIxNzQsNiArMjE4OCw4IEBAIEdDR0xib29sZWFuIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OmlzVHJhbnNmb3JtRmVlZGJhY2soV2ViR0xUcmFuc2Zvcm1GZWVkYmFj
ayoKIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiaW5kVHJhbnNmb3JtRmVlZGJhY2so
R0NHTGVudW0gdGFyZ2V0LCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKiBmZWVkYmFja09iamVjdCkK
IHsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihvYmplY3RHcmFwaExvY2soKSk7CisKICAgICBpZiAo
aXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm47CiAKQEAgLTIyNDIsNiAr
MjI1OCw3IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmVnaW5UcmFuc2Zvcm1GZWVk
YmFjayhHQ0dMZW51bSBwcmltaXRpdmVNb2RlKQogCiAgICAgbV9jb250ZXh0LT5iZWdpblRyYW5z
Zm9ybUZlZWRiYWNrKHByaW1pdGl2ZU1vZGUpOwogCisgICAgTG9ja0hvbGRlciBsb2NrZXIob2Jq
ZWN0R3JhcGhMb2NrKCkpOwogICAgIG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+c2V0UHJvZ3Jh
bSgqbV9jdXJyZW50UHJvZ3JhbSk7CiAgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5zZXRB
Y3RpdmUodHJ1ZSk7CiAgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5zZXRQYXVzZWQoZmFs
c2UpOwpAQCAtMjMzOSw2ICsyMzU2LDggQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpy
ZXN1bWVUcmFuc2Zvcm1GZWVkYmFjaygpCiAKIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
c2V0SW5kZXhlZEJ1ZmZlckJpbmRpbmcoY29uc3QgY2hhciAqZnVuY3Rpb25OYW1lLCBHQ0dMZW51
bSB0YXJnZXQsIEdDR0x1aW50IGluZGV4LCBXZWJHTEJ1ZmZlciogYnVmZmVyKQogeworICAgIExv
Y2tIb2xkZXIgbG9ja2VyKG9iamVjdEdyYXBoTG9jaygpKTsKKwogICAgIGlmIChpc0NvbnRleHRM
b3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMzAxMCw2ICszMDI5
LDM1IEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y2hlY2tBbmRUcmFuc2xhdGVBdHRh
Y2htZW50cyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3Zv
aWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6
OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnModmlzaXRvcik7CisKKyAgICB2aXNpdG9yLmFkZE9w
YXF1ZVJvb3QobV9yZWFkRnJhbWVidWZmZXJCaW5kaW5nLmdldCgpKTsKKyAgICBpZiAobV9yZWFk
RnJhbWVidWZmZXJCaW5kaW5nKQorICAgICAgICBtX3JlYWRGcmFtZWJ1ZmZlckJpbmRpbmctPnZp
c2l0UmVmZXJlbmNlZEpTV3JhcHBlcnModmlzaXRvcik7CisKKyAgICB2aXNpdG9yLmFkZE9wYXF1
ZVJvb3QobV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLmdldCgpKTsKKyAgICBpZiAobV9ib3VuZFRy
YW5zZm9ybUZlZWRiYWNrKQorICAgICAgICBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2stPnZpc2l0
UmVmZXJlbmNlZEpTV3JhcHBlcnModmlzaXRvcik7CisKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJv
b3QobV9ib3VuZENvcHlSZWFkQnVmZmVyLmdldCgpKTsKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJv
b3QobV9ib3VuZENvcHlXcml0ZUJ1ZmZlci5nZXQoKSk7CisgICAgdmlzaXRvci5hZGRPcGFxdWVS
b290KG1fYm91bmRQaXhlbFBhY2tCdWZmZXIuZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3BhcXVl
Um9vdChtX2JvdW5kUGl4ZWxVbnBhY2tCdWZmZXIuZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3Bh
cXVlUm9vdChtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIuZ2V0KCkpOworICAgIHZpc2l0
b3IuYWRkT3BhcXVlUm9vdChtX2JvdW5kVW5pZm9ybUJ1ZmZlci5nZXQoKSk7CisKKyAgICBmb3Ig
KGF1dG8mIGJ1ZmZlciA6IG1fYm91bmRJbmRleGVkVW5pZm9ybUJ1ZmZlcnMpCisgICAgICAgIHZp
c2l0b3IuYWRkT3BhcXVlUm9vdChidWZmZXIuZ2V0KCkpOworCisgICAgZm9yIChhdXRvJiBlbnRy
eSA6IG1fYWN0aXZlUXVlcmllcykKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KGVudHJ5
LnZhbHVlLmdldCgpKTsKKworICAgIGZvciAoYXV0byYgZW50cnkgOiBtX2JvdW5kU2FtcGxlcnMp
CisgICAgICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChlbnRyeS5nZXQoKSk7Cit9CisKIEdDR0xl
bnVtIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJhc2VJbnRlcm5hbEZvcm1hdEZyb21JbnRlcm5h
bEZvcm1hdChHQ0dMZW51bSBpbnRlcm5hbGZvcm1hdCkKIHsKICAgICAvLyBIYW5kbGVzIHNpemVk
LCB1bnNpemVkLCBhbmQgY29tcHJlc3NlZCBpbnRlcm5hbCBmb3JtYXRzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDgx
OTlkOGU2NzMwZDE1NDc3MjJlMmVlMDNjMWVlNjcyZDA3NDM5YWMuLjBlM2ZmMmRmNGU4NTBkNTMy
NDZmNDEzNGExY2I4MmM4MDJlY2YwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTI2MSw2ICsyNjEsOCBAQCBwdWJs
aWM6CiAKICAgICBib29sIGNoZWNrQW5kVHJhbnNsYXRlQXR0YWNobWVudHMoY29uc3QgY2hhciog
ZnVuY3Rpb25OYW1lLCBHQ0dMZW51bSwgVmVjdG9yPEdDR0xlbnVtPiYpOwogCisgICAgdm9pZCB2
aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKKwog
cHJpdmF0ZToKICAgICBXZWJHTDJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmLCBHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMpOwogICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQoQ2FudmFz
QmFzZSYsIFJlZjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4mJiwgR3JhcGhpY3NDb250ZXh0R0xB
dHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
QnVmZmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbApp
bmRleCA2ZTJhYjljNTdiZjE1MjY2MzFmNjU2Y2VhNTE5NzE5NzkwOTZhYTU3Li5kYTQ3MDM1NjRi
NjA0OGE5NDYwZDMyZTk5ZDFkNWNjNWQ2Y2UxYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xCdWZmZXIuaWRsCkBAIC0yNSw1ICsyNSw2IEBACiAKIFsKICAgICBDb25kaXRp
b25hbD1XRUJHTCwKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwKIF0gaW50ZXJmYWNlIFdl
YkdMQnVmZmVyIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTENvbnRleHRHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRHcm91cC5jcHAKaW5kZXggNDJiOWNjZjQyM2UyMDMwZGY2NGMxZjY1OTRiYWQzOWU1ZWRi
OWIxYy4uNGNlOTZjYjU0MjE5MjY2MmYxMWE2NTAxOGJkZmFiZjIxM2FhNTBhMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcApAQCAtNTAs
NiArNTAsMTcgQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wmIFdlYkdMQ29udGV4dEdyb3VwOjpn
ZXRBR3JhcGhpY3NDb250ZXh0R0woKQogICAgIHJldHVybiAqKCptX2NvbnRleHRzLmJlZ2luKCkp
LT5ncmFwaGljc0NvbnRleHRHTCgpOwogfQogCitXVEY6OkxvY2sqIFdlYkdMQ29udGV4dEdyb3Vw
OjpvYmplY3RHcmFwaExvY2tGb3JBQ29udGV4dCgpCit7CisgICAgQVNTRVJUKCFtX2NvbnRleHRz
LmlzRW1wdHkoKSk7CisgICAgLy8gU2luY2UgdGhlIFdFQkdMX3NoYXJlZF9vYmplY3RzIGV4dGVu
c2lvbiBuZXZlciBzaGlwcGVkLCBhbmQgaXMKKyAgICAvLyB1bmxpa2VseSB0bywgdGhpcyBpcyBl
cXVpdmFsZW50IHRvIFdlYkdMQ29udGV4dE9iamVjdCdzCisgICAgLy8gaW1wbGVtZW50YXRpb24u
IElmIHRoZXJlIHdlcmUgdGhlIHBvc3NpYmlsaXR5IG9mIFdlYkdMIG9iamVjdHMKKyAgICAvLyBi
ZWluZyBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSBjb250ZXh0cywgdGhpcyB3b3VsZCBoYXZlIHRv
IGJlCisgICAgLy8gcmV0aG91Z2h0LgorICAgIHJldHVybiAoKm1fY29udGV4dHMuYmVnaW4oKSkt
Pm9iamVjdEdyYXBoTG9jaygpOworfQorCiB2b2lkIFdlYkdMQ29udGV4dEdyb3VwOjphZGRDb250
ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7CiAgICAgbV9jb250ZXh0
cy5hZGQoJmNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xDb250ZXh0R3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29u
dGV4dEdyb3VwLmgKaW5kZXggNjNkMWQyOTAxOWE3MWQ3NzhlY2VjM2M5MTNmYjRmMWFiMWE1MjA1
Yi4uNTg3NzgxYWQ1NTJhY2Q1ZDE2ODQ4ZmU5MDcxNGFkN2FjMDk3NjU4MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5oCkBAIC0yOSw2ICsyOSwx
MCBAQAogCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgogCituYW1lc3Bh
Y2UgV1RGIHsKK2NsYXNzIExvY2s7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
V2ViR0xDb250ZXh0R3JvdXAgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJHTENvbnRleHRHcm91cD4g
ewpAQCAtNDMsNiArNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVPYmplY3QoV2ViR0xT
aGFyZWRPYmplY3QmKTsKIAogICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMJiBnZXRBR3JhcGhp
Y3NDb250ZXh0R0woKTsKKyAgICBXVEY6OkxvY2sqIG9iamVjdEdyYXBoTG9ja0ZvckFDb250ZXh0
KCk7CiAKICAgICB2b2lkIGxvc2VDb250ZXh0R3JvdXAoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6TG9zdENvbnRleHRNb2RlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQ29udGV4dE9iamVjdC5jcHAKaW5kZXggNDUxNDEyOGI1MWY4NGViN2M3MGI4MDIxZjU5
ZDg3NWQxZjU1OGMxMy4uMjA5YTE0YzY2NzhkMmQ1NDIyOWVjODI0ODZkNzAzOTU2NTRhODI4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3Qu
Y3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFdFQkdMKQogCiAjaW5jbHVkZSAiV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNTMsNiArNTQsMTEgQEAgdm9pZCBXZWJHTENvbnRleHRPYmpl
Y3Q6OmRldGFjaENvbnRleHQoKQogICAgIH0KIH0KIAorV1RGOjpMb2NrKiBXZWJHTENvbnRleHRP
YmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKQoreworICAgIHJldHVybiBtX2NvbnRl
eHQgPyBtX2NvbnRleHQtPm9iamVjdEdyYXBoTG9jaygpIDogbnVsbHB0cjsKK30KKwogR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wqIFdlYkdMQ29udGV4dE9iamVjdDo6Z2V0QUdyYXBoaWNzQ29udGV4
dEdMKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb250ZXh0ID8gbV9jb250ZXh0LT5ncmFwaGlj
c0NvbnRleHRHTCgpIDogbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xDb250ZXh0T2JqZWN0LmgKaW5kZXggYzM4ZTY0ODcyM2U0N2I1NzIzZjA5MDViODVkYjIx
ZjM4YjExNTFkMy4uMTE4NzY5NmU0OTI4NDZiOWM4ZGI3Yjk4MTgyZTI2ZTk4NGU2YTlhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmgKQEAg
LTQ5LDYgKzQ5LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRhY2hDb250ZXh0KCk7CiAKKyAg
ICBXVEY6OkxvY2sqIG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKSBvdmVycmlkZTsKKwogcHJv
dGVjdGVkOgogICAgIFdlYkdMQ29udGV4dE9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVi
dWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5j
cHAKaW5kZXggZTZmNDM4MzNkYzUyNTA3NGM3NDkyZjgwNzcxZjhhNWY5NjFlZWZlNi4uYzIzODQ4
OWU3OWQ4OTg0MjNlN2VkNTUzMDdkOGE5YzE3NjA2ZTAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKQEAgLTMyLDYgKzMyLDkgQEAKICNp
bmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMRHJhd0J1ZmZlcnMu
aCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvU2xvdFZpc2l0b3IuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90
VmlzaXRvcklubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTU2LDYgKzU5LDcgQEAgbmFtZXNwYWNlIHsKICAgICAgICAgdm9pZCBvbkRl
dGFjaGVkKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQg
YXR0YWNoKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51
bSBhdHRhY2htZW50KSBvdmVycmlkZTsKICAgICAgICAgdm9pZCB1bmF0dGFjaChHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTCosIEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gYXR0YWNobWVudCkgb3Zl
cnJpZGU7CisgICAgICAgIHZvaWQgdmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RW
aXNpdG9yJikgb3ZlcnJpZGU7CiAKICAgICAgICAgV2ViR0xSZW5kZXJidWZmZXJBdHRhY2htZW50
KCkgeyB9OwogCkBAIC0xMzcsNiArMTQxLDExIEBAIG5hbWVzcGFjZSB7CiAgICAgICAgICAgICBj
b250ZXh0LT5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcih0YXJnZXQsIGF0dGFjaG1lbnQsIEdyYXBo
aWNzQ29udGV4dEdMOjpSRU5ERVJCVUZGRVIsIDApOwogICAgIH0KIAorICAgIHZvaWQgV2ViR0xS
ZW5kZXJidWZmZXJBdHRhY2htZW50Ojp2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKEpTQzo6U2xv
dFZpc2l0b3ImIHZpc2l0b3IpCisgICAgeworICAgICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qo
bV9yZW5kZXJidWZmZXIuZ2V0KCkpOworICAgIH0KKwogICAgIGNsYXNzIFdlYkdMVGV4dHVyZUF0
dGFjaG1lbnQgOiBwdWJsaWMgV2ViR0xGcmFtZWJ1ZmZlcjo6V2ViR0xBdHRhY2htZW50IHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBSZWY8V2ViR0xGcmFtZWJ1ZmZlcjo6V2ViR0xBdHRh
Y2htZW50PiBjcmVhdGUoV2ViR0xUZXh0dXJlKiwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxl
dmVsLCBHQ0dMaW50IGxheWVyKTsKQEAgLTE1Niw2ICsxNjUsNyBAQCBuYW1lc3BhY2UgewogICAg
ICAgICB2b2lkIG9uRGV0YWNoZWQoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKSBvdmVycmlkZTsK
ICAgICAgICAgdm9pZCBhdHRhY2goR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBHQ0dMZW51bSB0
YXJnZXQsIEdDR0xlbnVtIGF0dGFjaG1lbnQpIG92ZXJyaWRlOwogICAgICAgICB2b2lkIHVuYXR0
YWNoKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBh
dHRhY2htZW50KSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCB2aXNpdFJlZmVyZW5jZWRKU1dyYXBw
ZXJzKEpTQzo6U2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKIAogICAgICAgICBXZWJHTFRleHR1cmVB
dHRhY2htZW50KCkgeyB9OwogCkBAIC0yNTMsNiArMjYzLDExIEBAIG5hbWVzcGFjZSB7CiAjZW5k
aWYKICAgICB9CiAKKyAgICB2b2lkIFdlYkdMVGV4dHVyZUF0dGFjaG1lbnQ6OnZpc2l0UmVmZXJl
bmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKKyAgICB7CisgICAgICAg
IHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX3RleHR1cmUuZ2V0KCkpOworICAgIH0KKwogI2lmICFV
U0UoQU5HTEUpCiAgICAgYm9vbCBpc0F0dGFjaG1lbnRDb21wbGV0ZShXZWJHTEZyYW1lYnVmZmVy
OjpXZWJHTEF0dGFjaG1lbnQqIGF0dGFjaGVkT2JqZWN0LCBHQ0dMZW51bSBhdHRhY2htZW50LCBj
b25zdCBjaGFyKiogcmVhc29uKQogICAgIHsKQEAgLTM3Myw2ICszODgsOCBAQCBXZWJHTEZyYW1l
YnVmZmVyOjpXZWJHTEF0dGFjaG1lbnQqIFdlYkdMRnJhbWVidWZmZXI6OmdldEF0dGFjaG1lbnQo
R0NHTGVudW0gYXR0YQogCiB2b2lkIFdlYkdMRnJhbWVidWZmZXI6OnJlbW92ZUF0dGFjaG1lbnRG
cm9tQm91bmRGcmFtZWJ1ZmZlcihHQ0dMZW51bSB0YXJnZXQsIEdDR0xlbnVtIGF0dGFjaG1lbnQp
CiB7CisgICAgTG9ja0hvbGRlciBsb2NrZXIob2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpKTsK
KwogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgQVNTRVJUKGlzQm91bmQodGFyZ2V0KSk7CiAjZWxz
ZQpAQCAtNTQxLDYgKzU1OCw4IEBAIGJvb2wgV2ViR0xGcmFtZWJ1ZmZlcjo6aGFzU3RlbmNpbEJ1
ZmZlcigpIGNvbnN0CiAKIHZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6ZGVsZXRlT2JqZWN0SW1wbChH
cmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDNkLCBQbGF0Zm9ybUdMT2JqZWN0IG9iamVj
dCkKIHsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkp
OworCiAgICAgZm9yIChhdXRvJiBhdHRhY2htZW50IDogbV9hdHRhY2htZW50cy52YWx1ZXMoKSkK
ICAgICAgICAgYXR0YWNobWVudC0+b25EZXRhY2hlZChjb250ZXh0M2QpOwogCkBAIC01NDksNiAr
NTY4LDggQEAgdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QsIFBsYXQKIAogYm9vbCBXZWJHTEZyYW1lYnVmZmVy
Ojppbml0aWFsaXplQXR0YWNobWVudHMoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGczZCwgY29u
c3QgY2hhcioqIHJlYXNvbikKIHsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihvYmplY3RHcmFwaExv
Y2tGb3JDb250ZXh0KCkpOworCiAgICAgQVNTRVJUKG9iamVjdCgpKTsKICAgICBHQ0dMYml0Zmll
bGQgbWFzayA9IDA7CiAKQEAgLTY4OSw4ICs3MTAsMTYgQEAgR0NHTGVudW0gV2ViR0xGcmFtZWJ1
ZmZlcjo6Z2V0RHJhd0J1ZmZlcihHQ0dMZW51bSBkcmF3QnVmZmVyKQogICAgIHJldHVybiBHcmFw
aGljc0NvbnRleHRHTDo6Tk9ORTsKIH0KIAordm9pZCBXZWJHTEZyYW1lYnVmZmVyOjp2aXNpdFJl
ZmVyZW5jZWRKU1dyYXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgZm9y
IChhdXRvJiBlbnRyeSA6IG1fYXR0YWNobWVudHMpCisgICAgICAgIGVudHJ5LnZhbHVlLT52aXNp
dFJlZmVyZW5jZWRKU1dyYXBwZXJzKHZpc2l0b3IpOworfQorCiB2b2lkIFdlYkdMRnJhbWVidWZm
ZXI6OnNldEF0dGFjaG1lbnRJbnRlcm5hbChHQ0dMZW51bSBhdHRhY2htZW50LCBHQ0dMZW51bSB0
ZXhUYXJnZXQsIFdlYkdMVGV4dHVyZSogdGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGludCBs
YXllcikKIHsKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0
KCkpOworCiAgICAgcmVtb3ZlQXR0YWNobWVudEludGVybmFsKGF0dGFjaG1lbnQpOwogICAgIGlm
ICh0ZXh0dXJlICYmIHRleHR1cmUtPm9iamVjdCgpKSB7CiAgICAgICAgIG1fYXR0YWNobWVudHMu
c2V0KGF0dGFjaG1lbnQsIFdlYkdMVGV4dHVyZUF0dGFjaG1lbnQ6OmNyZWF0ZSh0ZXh0dXJlLCB0
ZXhUYXJnZXQsIGxldmVsLCBsYXllcikpOwpAQCAtNzAxLDYgKzczMCw4IEBAIHZvaWQgV2ViR0xG
cmFtZWJ1ZmZlcjo6c2V0QXR0YWNobWVudEludGVybmFsKEdDR0xlbnVtIGF0dGFjaG1lbnQsIEdD
R0xlbnVtIHRleFRhCiAKIHZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6c2V0QXR0YWNobWVudEludGVy
bmFsKEdDR0xlbnVtIGF0dGFjaG1lbnQsIFdlYkdMUmVuZGVyYnVmZmVyKiByZW5kZXJidWZmZXIp
CiB7CisgICAgTG9ja0hvbGRlciBsb2NrZXIob2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpKTsK
KwogICAgIHJlbW92ZUF0dGFjaG1lbnRJbnRlcm5hbChhdHRhY2htZW50KTsKICAgICBpZiAocmVu
ZGVyYnVmZmVyICYmIHJlbmRlcmJ1ZmZlci0+b2JqZWN0KCkpIHsKICAgICAgICAgbV9hdHRhY2ht
ZW50cy5zZXQoYXR0YWNobWVudCwgV2ViR0xSZW5kZXJidWZmZXJBdHRhY2htZW50OjpjcmVhdGUo
cmVuZGVyYnVmZmVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEZyYW1lYnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1l
YnVmZmVyLmgKaW5kZXggMWIyM2ZmMjJjODk0NTE5MDhiMjU5NDJhMWExMDY2NmIxN2E2YTc0Ni4u
MWM0M2M2ZjI4MjI3NzhhMWFhZWYzOTgzMzczYTQ2ZmI4ZjQ4ZTc3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaApAQCAtMzMsNiArMzMsMTAgQEAK
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAor
bmFtZXNwYWNlIEpTQyB7CitjbGFzcyBTbG90VmlzaXRvcjsKK30KKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBXZWJHTFJlbmRlcmJ1ZmZlcjsKQEAgLTU3LDYgKzYxLDcgQEAgcHVibGlj
OgogICAgICAgICB2aXJ0dWFsIHZvaWQgb25EZXRhY2hlZChHcmFwaGljc0NvbnRleHRHTE9wZW5H
TCopID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGF0dGFjaChHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCosIEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gYXR0YWNobWVudCkgPSAwOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgdW5hdHRhY2goR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBHQ0dMZW51
bSB0YXJnZXQsIEdDR0xlbnVtIGF0dGFjaG1lbnQpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lk
IHZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYpID0gMDsKIAogICAg
IHByb3RlY3RlZDoKICAgICAgICAgV2ViR0xBdHRhY2htZW50KCk7CkBAIC0xMDUsNiArMTEwLDgg
QEAgcHVibGljOgogCiAgICAgR0NHTGVudW0gZ2V0RHJhd0J1ZmZlcihHQ0dMZW51bSk7CiAKKyAg
ICB2b2lkIHZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYpOworCiBw
cml2YXRlOgogICAgIFdlYkdMRnJhbWVidWZmZXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVm
ZmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaWRs
CmluZGV4IDdjNmNjNDU5NWQ5NzM0NDg1ZTZjZTg5OTAxMjhhMjYwOGNlNmY5MjMuLmIxMzc3YTM2
OTk3MTcyMzAzZmY4NmVkZWM4YTEzZDRlYWEyNGE5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaWRsCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8K
IAogWwotICAgIENvbmRpdGlvbmFsPVdFQkdMCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAg
R2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsCiBdIGludGVyZmFjZSBXZWJHTEZyYW1lYnVmZmVyIHsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuaAppbmRleCAxZmFhMjA1
OGM4MjVkN2UzOTQ2NWI2ODJmOGFiMDkyOTM3MDUwN2E2Li5mMzVmYjhkNTBhNWYxNTkyZDUxNTBl
MGM3ZGQxNmNkMGE5NTEyMDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2Jq
ZWN0LmgKQEAgLTMwLDYgKzMwLDEwIEBACiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlc0dMLmgiCiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAorbmFtZXNwYWNlIFdURiB7CitjbGFzcyBMb2Nr
OworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOwpAQCAtNTgsNiArNjIsMTQgQEAgcHVibGljOgogICAgIC8vIFRydWUgaWYgdGhpcyBvYmpl
Y3QgYmVsb25ncyB0byB0aGUgZ3JvdXAgb3IgY29udGV4dC4KICAgICB2aXJ0dWFsIGJvb2wgdmFs
aWRhdGUoY29uc3QgV2ViR0xDb250ZXh0R3JvdXAqLCBjb25zdCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlJikgY29uc3QgPSAwOwogCisgICAgLy8gUmV0dXJucyB0aGUgb2JqZWN0IGdyYXBoIGxv
Y2sgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb250ZXh0IG1vc3QKKyAgICAvLyBjbG9zZWx5IGFzc29j
aWF0ZWQgd2l0aCB0aGlzIG9iamVjdC4gU2luY2UgdGhlCisgICAgLy8gV0VCR0xfc2hhcmVkX29i
amVjdHMgZXh0ZW5zaW9uIHNwZWNpZmljYXRpb24gbmV2ZXIgc2hpcHBlZCAoYW5kCisgICAgLy8g
aXMgdW5saWtlbHkgdG8pLCB0aGlzIGJhc2ljYWxseSByZXR1cm5zIHRoZSBzYW1lIHJlc3VsdCBm
b3IKKyAgICAvLyBib3RoIGNvbnRleHQgb2JqZWN0cyBhbmQgc2hhcmVkIG9iamVjdHMuIEl0IG1h
eSByZXR1cm4gbnVsbHB0cgorICAgIC8vIGlmIHRoZSBjb250ZXh0J3MgYmVlbiBkZWxldGVkIG9y
IGxvc3QuCisgICAgdmlydHVhbCBXVEY6OkxvY2sqIG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQo
KSA9IDA7CisKIHByb3RlY3RlZDoKICAgICBXZWJHTE9iamVjdCgpID0gZGVmYXVsdDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggNDBlNzgwN2Zl
MTRiNTRkZWY0NjBmOGE4M2U1N2Y4Y2QwNGM3ZjIxNy4uOTJkNjI0ZWFlNjhiMzg0MjZiMDA0NTky
ZGVmOTY2Zjg2MTE4NTU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xQcm9ncmFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFBy
b2dyYW0uY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAu
aCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCiAjaW5jbHVkZSAiV2Vi
R0xTaGFkZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvci5oPgorI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9ySW5saW5lcy5oPgogI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKQEAgLTE1OCw2ICsx
NjAsNyBAQCBXZWJHTFNoYWRlciogV2ViR0xQcm9ncmFtOjpnZXRBdHRhY2hlZFNoYWRlcihHQ0dM
ZW51bSB0eXBlKQogCiBib29sIFdlYkdMUHJvZ3JhbTo6YXR0YWNoU2hhZGVyKFdlYkdMU2hhZGVy
KiBzaGFkZXIpCiB7CisgICAgLy8gQ292ZXJlZCB1bmRlciB0aGUgb2JqZWN0R3JhcGhMb2NrIGlu
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmF0dGFjaFNoYWRlci4KICAgICBpZiAoIXNoYWRl
ciB8fCAhc2hhZGVyLT5vYmplY3QoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHN3aXRj
aCAoc2hhZGVyLT5nZXRUeXBlKCkpIHsKQEAgLTE5Niw2ICsxOTksMTIgQEAgYm9vbCBXZWJHTFBy
b2dyYW06OmRldGFjaFNoYWRlcihXZWJHTFNoYWRlciogc2hhZGVyKQogICAgIH0KIH0KIAordm9p
ZCBXZWJHTFByb2dyYW06OnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRv
ciYgdmlzaXRvcikKK3sKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV92ZXJ0ZXhTaGFkZXIu
Z2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2ZyYWdtZW50U2hhZGVyLmdldCgp
KTsKK30KKwogdm9pZCBXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9jYXRpb25zKEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QpCiB7CiAgICAgbV9hY3RpdmVBdHRyaWJM
b2NhdGlvbnMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFt
LmgKaW5kZXggODA4ZmQyMGYwOWMwM2NjZTQ2MjczOGQ1NWI2Nzc5Zjk2ZmVkZDJlNy4uMTU5ZmQ1
ZWM4MGVjMzdkYjFkMzhlYjM0N2NhYzY0MzMyNTU1Zjg3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKQEAgLTM0LDYgKzM0LDEwIEBACiAjaW5jbHVkZSA8d3Rm
L0xvY2suaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKK25hbWVzcGFjZSBKU0MgeworY2xh
c3MgU2xvdFZpc2l0b3I7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsKQEAgLTgwLDYgKzg0LDggQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gbV9yZXF1aXJlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyQ291bnQ7CiAgICAgfQogCisgICAg
dm9pZCB2aXNpdFJlZmVyZW5jZWRKU1dyYXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImKTsKKwogcHJp
dmF0ZToKICAgICBXZWJHTFByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaWRsIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmlkbAppbmRleCA3YzE4MGUy
YjVkZGEyY2QwNmEzMzI2MjQ2ZmUyZTBiNmMxMDNjNzZhLi5iMjY4YzA3ZWU3OTQxY2ZjNmNlZmU5
YjIzNmJjYzhjM2YzMmIwZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFByb2dyYW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UHJvZ3JhbS5pZGwKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiBbCi0gICAgQ29uZGl0aW9uYWw9
V0VCR0wKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUlt
cGwKIF0gaW50ZXJmYWNlIFdlYkdMUHJvZ3JhbSB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFF1ZXJ5LmlkbAppbmRleCAyM2QzNTNjNDZhNTU5MGE4MWE2Nzk1ZjRkZGUxNTVm
YTkzNzgyM2FhLi43ZDM5Njk2ZWJlZTM5NTRjYzY3NWEzZWNmYzhlOWNiNWEzN2M2NTUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmlkbApAQCAtMjQsNiArMjQsNyBA
QAogICovCiAKIFsKLSAgICBDb25kaXRpb25hbD1XRUJHTAorICAgIENvbmRpdGlvbmFsPVdFQkdM
LAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbAogXSBpbnRlcmZhY2UgV2ViR0xRdWVyeSB7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJi
dWZmZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIu
aWRsCmluZGV4IGZiODU1YTU2Y2U2MTc2YjNlNDQ3NGRmODk3YTIyZDA5NDRjNTkzZjYuLmZkNjFm
OGQ2MmMzZmFlOGRmMzE5NThmMWVhZDM5NzhmMGFhNjE1NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5pZGwKQEAgLTI0LDYgKzI0LDcgQEAK
ICAqLwogCiBbCi0gICAgQ29uZGl0aW9uYWw9V0VCR0wKKyAgICBDb25kaXRpb25hbD1XRUJHTCwK
KyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwKIF0gaW50ZXJmYWNlIFdlYkdMUmVuZGVyYnVm
ZmVyIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IGExMDdjYzdkYTM0OTM5OTdiN2JjNGFhMjVi
MWZiYmYzZjA1MDE2NTYuLmZmMDIzYTI3MDBkNjkxZjdkNDczMzQ0MjcyODAyMDU3Zjc5NTYxNTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwCkBAIC0xMDIsNiArMTAyLDggQEAKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2Fs
bFN0YWNrLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2NyaXB0Q2FsbFN0YWNrRmFjdG9y
eS5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9yLmg+CisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0b3JJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvVHlwZWRBcnJheUlubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9VaW50
MzJBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgpAQCAtMTMxOSw2
ICsxMzIxLDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphY3RpdmVUZXh0dXJl
KEdDR0xlbnVtIHRleHR1cmUpCiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YXR0
YWNoU2hhZGVyKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgV2ViR0xTaGFkZXIqIHNoYWRlcikKIHsK
KyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX29iamVjdEdyYXBoTG9jayk7CisKICAgICBpZiAoaXND
b250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMUHJvZ3JhbU9yU2hhZGVyKCJh
dHRhY2hTaGFkZXIiLCBwcm9ncmFtKSB8fCAhdmFsaWRhdGVXZWJHTFByb2dyYW1PclNoYWRlcigi
YXR0YWNoU2hhZGVyIiwgc2hhZGVyKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghcHJvZ3Jh
bS0+YXR0YWNoU2hhZGVyKHNoYWRlcikpIHsKQEAgLTE0MjIsNiArMTQyNiw4IEBAIGJvb2wgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVBbmRDYWNoZUJ1ZmZlckJpbmRpbmcoY29u
c3QgY2hhciogZnVuY3RpCiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YmluZEJ1
ZmZlcihHQ0dMZW51bSB0YXJnZXQsIFdlYkdMQnVmZmVyKiBidWZmZXIpCiB7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9vYmplY3RHcmFwaExvY2spOworCiAgICAgaWYgKCFjaGVja09iamVjdFRv
QmVCb3VuZCgiYmluZEJ1ZmZlciIsIGJ1ZmZlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTQz
Myw2ICsxNDM5LDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpiaW5kQnVmZmVy
KEdDR0xlbnVtIHRhcmdldCwgV2ViR0xCdWZmZXIqIGJ1ZmZlcikKIAogdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpiaW5kRnJhbWVidWZmZXIoR0NHTGVudW0gdGFyZ2V0LCBXZWJHTEZy
YW1lYnVmZmVyKiBidWZmZXIpCiB7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vYmplY3RHcmFw
aExvY2spOworCiAgICAgaWYgKCFjaGVja09iamVjdFRvQmVCb3VuZCgiYmluZEZyYW1lYnVmZmVy
IiwgYnVmZmVyKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNDQ2LDYgKzE0NTQsOCBAQCB2b2lk
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJpbmRGcmFtZWJ1ZmZlcihHQ0dMZW51bSB0YXJn
ZXQsIFdlYkdMRnJhbWVidWZmZQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJp
bmRSZW5kZXJidWZmZXIoR0NHTGVudW0gdGFyZ2V0LCBXZWJHTFJlbmRlcmJ1ZmZlciogcmVuZGVy
QnVmZmVyKQogeworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JqZWN0R3JhcGhMb2NrKTsKKwog
ICAgIGlmICghY2hlY2tPYmplY3RUb0JlQm91bmQoImJpbmRSZW5kZXJidWZmZXIiLCByZW5kZXJC
dWZmZXIpKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKHRhcmdldCAhPSBHcmFwaGljc0NvbnRl
eHRHTDo6UkVOREVSQlVGRkVSKSB7CkBAIC0xNDYwLDYgKzE0NzAsOCBAQCB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmJpbmRSZW5kZXJidWZmZXIoR0NHTGVudW0gdGFyZ2V0LCBXZWJH
TFJlbmRlcmJ1ZgogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJpbmRUZXh0dXJl
KEdDR0xlbnVtIHRhcmdldCwgV2ViR0xUZXh0dXJlKiB0ZXh0dXJlKQogeworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fb2JqZWN0R3JhcGhMb2NrKTsKKwogICAgIGlmICghY2hlY2tPYmplY3RUb0Jl
Qm91bmQoImJpbmRUZXh0dXJlIiwgdGV4dHVyZSkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAo
dGV4dHVyZSAmJiB0ZXh0dXJlLT5nZXRUYXJnZXQoKSAmJiB0ZXh0dXJlLT5nZXRUYXJnZXQoKSAh
PSB0YXJnZXQpIHsKQEAgLTIwMDIsMTEgKzIwMTQsMTkgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpkZWxldGVPYmplY3QoV2ViR0xPYmplY3QqIG9iamVjdCkKIAogdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmNhY2hlRGVsZXRlZEJ1ZmZlcihXZWJHTEJ1ZmZlciog
YnVmZmVyKQogeworICAgIExvY2tIb2xkZXIgbG9ja2VyKG9iamVjdEdyYXBoTG9jaygpKTsKKwog
ICAgIFJFTU9WRV9CVUZGRVJfRlJPTV9CSU5ESU5HKG1fYm91bmRBcnJheUJ1ZmZlcik7CiAKICAg
ICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPnVuYmluZEJ1ZmZlcigqYnVmZmVyKTsKIH0KIAor
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0
KFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKiBhcnJheU9iamVjdCkKK3sKKyAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX29iamVjdEdyYXBoTG9jayk7CisgICAgbV9ib3VuZFZlcnRleEFycmF5T2Jq
ZWN0ID0gYXJyYXlPYmplY3QgPyBhcnJheU9iamVjdCA6IG1fZGVmYXVsdFZlcnRleEFycmF5T2Jq
ZWN0OworfQorCiAjdW5kZWYgUkVNT1ZFX0JVRkZFUl9GUk9NX0JJTkRJTkcKIAogdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVCdWZmZXIoV2ViR0xCdWZmZXIqIGJ1ZmZlcikK
QEAgLTIwMTksNiArMjAzOSw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVs
ZXRlQnVmZmVyKFdlYkdMQnVmZmVyKiBidWZmZXIpCiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6ZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZlciogZnJhbWVidWZmZXIp
CiB7CisgICAgTG9ja0hvbGRlciBsb2NrZXIob2JqZWN0R3JhcGhMb2NrKCkpOworCiAgICAgaWYg
KCFkZWxldGVPYmplY3QoZnJhbWVidWZmZXIpKQogICAgICAgICByZXR1cm47CiAKQEAgLTIxMTgs
NiArMjE0MCw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVwdGhSYW5nZShH
Q0dMZmxvYXQgek5lYXIsIEdDR0xmbG9hdCB6RmFyKQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmRldGFjaFNoYWRlcihXZWJHTFByb2dyYW0qIHByb2dyYW0sIFdlYkdMU2hhZGVy
KiBzaGFkZXIpCiB7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vYmplY3RHcmFwaExvY2spOwor
CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTFByb2dy
YW1PclNoYWRlcigiZGV0YWNoU2hhZGVyIiwgcHJvZ3JhbSkgfHwgIXZhbGlkYXRlV2ViR0xQcm9n
cmFtT3JTaGFkZXIoImRldGFjaFNoYWRlciIsIHNoYWRlcikpCiAgICAgICAgIHJldHVybjsKICAg
ICBpZiAoIXByb2dyYW0tPmRldGFjaFNoYWRlcihzaGFkZXIpKSB7CkBAIC01ODk1LDYgKzU5MTks
OCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuaWZvcm1NYXRyaXg0ZnYoY29u
c3QgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvYwogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OnVzZVByb2dyYW0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtKQogeworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fb2JqZWN0R3JhcGhMb2NrKTsKKwogICAgIGlmICghY2hlY2tPYmplY3RUb0Jl
Qm91bmQoInVzZVByb2dyYW0iLCBwcm9ncmFtKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmIChw
cm9ncmFtICYmICFwcm9ncmFtLT5nZXRMaW5rU3RhdHVzKCkpIHsKQEAgLTU5NjAsNiArNTk4Niw4
IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliNGZ2KEdDR0x1
aW50IGluZGV4LCBGbG9hdDMyTGlzdCYmIHYpCiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6dmVydGV4QXR0cmliUG9pbnRlcihHQ0dMdWludCBpbmRleCwgR0NHTGludCBzaXplLCBH
Q0dMZW51bSB0eXBlLCBHQ0dMYm9vbGVhbiBub3JtYWxpemVkLCBHQ0dMc2l6ZWkgc3RyaWRlLCBs
b25nIGxvbmcgb2Zmc2V0KQogeworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JqZWN0R3JhcGhM
b2NrKTsKKwogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVy
bjsKICAgICBzd2l0Y2ggKHR5cGUpIHsKQEAgLTc3NjQsNiArNzc5Miw0NSBAQCB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dENoYW5nZWROb3RpZmljYXRpb24o
KQogICAgIHF1ZXVlVGFza1RvRGlzcGF0Y2hFdmVudCgqY2FudmFzLCBUYXNrU291cmNlOjpXZWJH
TCwgV2ViR0xDb250ZXh0RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2ViZ2xjb250ZXh0Y2hh
bmdlZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVz
LCBlbXB0eVN0cmluZygpKSk7CiB9CiAKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQorewor
ICAgIExvY2tIb2xkZXIgbG9jayhtX29iamVjdEdyYXBoTG9jayk7CisKKyAgICB2aXNpdG9yLmFk
ZE9wYXF1ZVJvb3QobV9ib3VuZEFycmF5QnVmZmVyLmdldCgpKTsKKworICAgIHZpc2l0b3IuYWRk
T3BhcXVlUm9vdChtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QuZ2V0KCkpOworICAgIGlmIChtX2Jv
dW5kVmVydGV4QXJyYXlPYmplY3QpCisgICAgICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+
dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyh2aXNpdG9yKTsKKworICAgIHZpc2l0b3IuYWRkT3Bh
cXVlUm9vdChtX2N1cnJlbnRQcm9ncmFtLmdldCgpKTsKKyAgICBpZiAobV9jdXJyZW50UHJvZ3Jh
bSkKKyAgICAgICAgbV9jdXJyZW50UHJvZ3JhbS0+dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyh2
aXNpdG9yKTsKKworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2ZyYW1lYnVmZmVyQmluZGlu
Zy5nZXQoKSk7CisgICAgaWYgKG1fZnJhbWVidWZmZXJCaW5kaW5nKQorICAgICAgICBtX2ZyYW1l
YnVmZmVyQmluZGluZy0+dmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyh2aXNpdG9yKTsKKworICAg
IHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX3JlbmRlcmJ1ZmZlckJpbmRpbmcuZ2V0KCkpOworCisg
ICAgZm9yIChhdXRvJiB1bml0IDogbV90ZXh0dXJlVW5pdHMpIHsKKyAgICAgICAgdmlzaXRvci5h
ZGRPcGFxdWVSb290KHVuaXQudGV4dHVyZTJEQmluZGluZy5nZXQoKSk7CisgICAgICAgIHZpc2l0
b3IuYWRkT3BhcXVlUm9vdCh1bml0LnRleHR1cmVDdWJlTWFwQmluZGluZy5nZXQoKSk7CisgICAg
ICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCh1bml0LnRleHR1cmUzREJpbmRpbmcuZ2V0KCkpOwor
ICAgICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QodW5pdC50ZXh0dXJlMkRBcnJheUJpbmRpbmcu
Z2V0KCkpOworICAgIH0KKworICAgIC8vIEV4dGVuc2lvbnMnIElETCBmaWxlcyB1c2UgR2VuZXJh
dGVJc1JlYWNoYWJsZT1JbXBsV2ViR0xSZW5kZXJpbmdDb250ZXh0LAorICAgIC8vIHdoaWNoIGNo
ZWNrcyB0byBzZWUgd2hldGhlciB0aGUgY29udGV4dCBpcyBpbiB0aGUgb3BhcXVlIHJvb3Qgc2V0
IChpdCBpczsKKyAgICAvLyBpdCdzIGFkZGVkIGluIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0IC8g
SlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0J3MgY3VzdG9tCisgICAgLy8gYmluZGluZ3MgY29kZSku
IEZvciB0aGlzIHJlYXNvbiBpdCdzIHVubmVjZXNzYXJ5IHRvIGV4cGxpY2l0bHkgYWRkIG9wYXF1
ZQorICAgIC8vIHJvb3RzIGZvciBleHRlbnNpb25zLgorfQorCitMb2NrKiBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpvYmplY3RHcmFwaExvY2soKQoreworICAgIHJldHVybiAmbV9vYmplY3RH
cmFwaExvY2s7Cit9CisKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cHJlcGFyZUZv
ckRpc3BsYXkoKQogewogICAgIGlmICghbV9jb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDhlN2Y0
YTJkNjEzNjU4NWExMzg1OWQzMGVhYzA4NTIzZDJmNGM2YjQuLjU2N2YzZTNkMzYyYjg4NDlhZmE1
NWM0MWMyZTdjY2VjYWQ4ZjEwYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTQ3LDYgKzQ3LDcgQEAKICNp
bmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9DaGVja2Vk
QXJpdGhtZXRpYy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKICNpZiBFTkFCTEUoV0VCR0wy
KQogI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKQEAgLTU2LDYgKzU3LDEwIEBA
CiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNlbmRpZgogCituYW1lc3BhY2Ug
SlNDIHsKK2NsYXNzIFNsb3RWaXNpdG9yOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEFOR0xFSW5zdGFuY2VkQXJyYXlzOwpAQCAtMzk4LDYgKzQwMywyMyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZWN5Y2xlQ29udGV4dCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hDb250
ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpIG92ZXJyaWRlOwogCisgICAgdmlydHVhbCB2b2lkIHZp
c2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYpOworICAgIC8vIFRoaXMg
bG9jayBtdXN0IGJlIGhlbGQgYWNyb3NzIGFsbCBtdXRhdGlvbnMgb2YgY29udGFpbmVycyBsaWtl
CisgICAgLy8gVmVjdG9ycywgSGFzaFNldHMsIGV0Yy4gd2hpY2ggY29udGFpbiBSZWZQdHI8V2Vi
R0xPYmplY3Q+LCBhbmQKKyAgICAvLyB3aGljaCBhcmUgdHJhdmVyc2VkIGJ5IHZpc2l0UmVmZXJl
bmNlZEpTV3JhcHBlcnMoKSBvciBhbnkgb2YKKyAgICAvLyB0aGUgc2ltaWxhcmx5LW5hbWVkIG1l
dGhvZHMgaW4gV2ViR0xPYmplY3Qgc3ViY2xhc3Nlcy4KKyAgICAvLworICAgIC8vIEZJWE1FOiBj
b25zaWRlciBjaGFuZ2luZyB0aGlzIG1lY2hhbmlzbSB0byBpbnN0ZWFkIHJlY29yZCB3aGVuCisg
ICAgLy8gaW5kaXZpZHVhbCBXZWJHTE9iamVjdHMgYXJlIGxhdGNoZWQgLyB1bmxhdGNoZWQgaW4g
dGhlCisgICAgLy8gY29udGV4dCdzIHN0YXRlLCBlaXRoZXIgZGlyZWN0bHksIG9yIGluZGlyZWN0
bHkgdGhyb3VnaAorICAgIC8vIGNvbnRhaW5lciBvYmplY3RzLiBJZiB0aGF0IHdlcmUgZG9uZSwg
dGhlbiB0aGUKKyAgICAvLyAiR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsIiBpbiB2YXJpb3VzIFdl
YkdMIG9iamVjdHMnIElETCBmaWxlcworICAgIC8vIHdvdWxkIG5lZWQgdG8gYmUgY2hhbmdlZCB0
byBpbnN0ZWFkIHF1ZXJ5IHdoZXRoZXIgdGhlIG9iamVjdCBpcworICAgIC8vIGN1cnJlbnRseSBs
YXRjaGVkIGludG8gdGhlIGNvbnRleHQgLSB3aXRob3V0IHRyYXZlcnNpbmcgYWxsIG9mCisgICAg
Ly8gdGhlIGxhdGNoZWQgb2JqZWN0cyB0byBmaW5kIHRoZSBjdXJyZW50IG9uZSwgd2hpY2ggd291
bGQgYmUKKyAgICAvLyBwcm9oaWJpdGl2ZWx5IGV4cGVuc2l2ZS4KKyAgICBMb2NrKiBvYmplY3RH
cmFwaExvY2soKTsKKwogcHJvdGVjdGVkOgogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uo
Q2FudmFzQmFzZSYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwogICAgIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UoQ2FudmFzQmFzZSYsIFJlZjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4mJiwg
V2ViR0xDb250ZXh0QXR0cmlidXRlcyk7CkBAIC00OTUsNiArNTE3LDcgQEAgcHJvdGVjdGVkOgog
CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBtX2NvbnRleHQ7CiAgICAgUmVm
UHRyPFdlYkdMQ29udGV4dEdyb3VwPiBtX2NvbnRleHRHcm91cDsKKyAgICBMb2NrIG1fb2JqZWN0
R3JhcGhMb2NrOwogCiAgICAgYm9vbCBtX3Jlc3RvcmVBbGxvd2VkIHsgZmFsc2UgfTsKICAgICBT
dXNwZW5kYWJsZVRpbWVyIG1fcmVzdG9yZVRpbWVyOwpAQCAtNTA5LDEwICs1MzIsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgUmVmUHRyPFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlPiBtX2RlZmF1bHRW
ZXJ0ZXhBcnJheU9iamVjdDsKICAgICBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U+
IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdDsKIAotICAgIHZvaWQgc2V0Qm91bmRWZXJ0ZXhBcnJh
eU9iamVjdChXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSogYXJyYXlPYmplY3QpCi0gICAgewot
ICAgICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QgPSBhcnJheU9iamVjdCA/IGFycmF5T2Jq
ZWN0IDogbV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3Q7Ci0gICAgfQorICAgIHZvaWQgc2V0Qm91
bmRWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSopOwogICAgIAog
ICAgIGNsYXNzIFZlcnRleEF0dHJpYlZhbHVlIHsKICAgICBwdWJsaWM6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNhbXBsZXIuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmlkbAppbmRleCA0ZTU0NGNhNmU0NDQ4NzM5Y2Nj
ZjlhNjhkYzRkN2U3NjEzNDRmZTE0Li5iOGVkYzJmNjc1OWQxOGNlODJjYzgwMmE0MWIwYTg3OTE5
OTc5M2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNhbXBs
ZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2FtcGxlci5pZGwK
QEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiBbCi0gICAgQ29uZGl0aW9uYWw9V0VCR0wKKyAgICBD
b25kaXRpb25hbD1XRUJHTCwKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwKIF0gaW50ZXJm
YWNlIFdlYkdMU2FtcGxlciB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xTaGFkZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xT
aGFkZXIuaWRsCmluZGV4IDUyZjk2MjAyNTYxNWNmNTcwNmEyYzdlN2ZkMmViYTU2ZDliNTFiMWUu
LmI1MDc5NDYwMWRlMGI4MjhkZjY1NjllMGY4ZDdkNjYwMzI1MTQ0MDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5pZGwKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwog
CiBbCi0gICAgQ29uZGl0aW9uYWw9V0VCR0wKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBH
ZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwKIF0gaW50ZXJmYWNlIFdlYkdMU2hhZGVyIHsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAKaW5k
ZXggZDAyYmZhNGUyODZmYjFjYmRjZDk5MzhhNGMyNDViZDI3MWE5NmExMi4uMTViY2FkNGQ4YWM1
MzE2Zjc5NTEzNDJhNzdmYTk3OGE3ZDg1NGNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5j
bHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmgiCisjaW5jbHVkZSA8d3RmL0xvY2suaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC01OSw2ICs2MCwxMSBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogV2ViR0xTaGFyZWRP
YmplY3Q6OmdldEFHcmFwaGljc0NvbnRleHRHTCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4
dEdyb3VwID8gJm1fY29udGV4dEdyb3VwLT5nZXRBR3JhcGhpY3NDb250ZXh0R0woKSA6IG51bGxw
dHI7CiB9CiAKK1dURjo6TG9jayogV2ViR0xTaGFyZWRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0Zv
ckNvbnRleHQoKQoreworICAgIHJldHVybiBtX2NvbnRleHRHcm91cCA/IG1fY29udGV4dEdyb3Vw
LT5vYmplY3RHcmFwaExvY2tGb3JBQ29udGV4dCgpIDogbnVsbHB0cjsKK30KKwogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xTaGFyZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
U2hhcmVkT2JqZWN0LmgKaW5kZXggN2YyMzlkNTFjNDNjMzkyNGZiMTc1Mzg1YjRiOWJkOTY5N2Zk
YmM5My4uY2JkMzgyZjhiNWExMTYzYjZiMWVjMGRjZWI3OGFkOGViYmYyMDA5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oCkBAIC0yOSw2ICsy
OSwxMCBAQAogCiAjaW5jbHVkZSAiV2ViR0xPYmplY3QuaCIKIAorbmFtZXNwYWNlIFdURiB7Citj
bGFzcyBMb2NrOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOwpAQCAtNTIsNiArNTYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRldGFj
aENvbnRleHRHcm91cCgpOwogCisgICAgV1RGOjpMb2NrKiBvYmplY3RHcmFwaExvY2tGb3JDb250
ZXh0KCkgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICBXZWJHTFNoYXJlZE9iamVjdChXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFRleHR1cmUuaWRsCmluZGV4IDY3ZGZhM2M0ZjZlMTFmZmFkYTg0NTVhNzAxMTI1NDJjMDIw
ZDU4NGUuLmE2MzA2ZTVhNTFiNjEwMGQyMjg2YWRiMjgyMjU2NmE4YjU1NTUxNWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbApAQCAtMjQsNiArMjQsNyBA
QAogICovCiAKIFsKLSAgICBDb25kaXRpb25hbD1XRUJHTAorICAgIENvbmRpdGlvbmFsPVdFQkdM
LAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbAogXSBpbnRlcmZhY2UgV2ViR0xUZXh0dXJl
IHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5z
Zm9ybUZlZWRiYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNm
b3JtRmVlZGJhY2suY3BwCmluZGV4IDkxNWNhZTI4MDM2MWM3MDZmYzUxYzdmYmZhODdjMjg4OWEw
NTI5NDMuLmMwOTdhZjhmNjM4MmU5ZWYyNzcwNzAwNzJkMTNjOTlkNGM5NWY3ZTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2su
Y3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgog
I2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9TbG90VmlzaXRvci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNp
dG9ySW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU3LDEyICs1OSwxNCBA
QCB2b2lkIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wqIGNvbnRleHQzZAogCiB2b2lkIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6
OnNldFByb2dyYW0oV2ViR0xQcm9ncmFtJiBwcm9ncmFtKQogeworICAgIC8vIENvdmVyZWQgdW5k
ZXIgdGhlIG9iamVjdEdyYXBoTG9jayBpbiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiZWdpblRy
YW5zZm9ybUZlZWRiYWNrLgogICAgIG1fcHJvZ3JhbSA9ICZwcm9ncmFtOwogICAgIG1fcHJvZ3Jh
bUxpbmtDb3VudCA9IHByb2dyYW0uZ2V0TGlua0NvdW50KCk7CiB9CiAKIHZvaWQgV2ViR0xUcmFu
c2Zvcm1GZWVkYmFjazo6c2V0Qm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIoR0NH
THVpbnQgaW5kZXgsIFdlYkdMQnVmZmVyKiBidWZmZXIpCiB7CisgICAgLy8gQ292ZXJlZCB1bmRl
ciB0aGUgb2JqZWN0R3JhcGhMb2NrIGluIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnNldEluZGV4
ZWRCdWZmZXJCaW5kaW5nLgogICAgIEFTU0VSVChpbmRleCA8IG1fYm91bmRJbmRleGVkVHJhbnNm
b3JtRmVlZGJhY2tCdWZmZXJzLnNpemUoKSk7CiAgICAgbV9ib3VuZEluZGV4ZWRUcmFuc2Zvcm1G
ZWVkYmFja0J1ZmZlcnNbaW5kZXhdID0gYnVmZmVyOwogfQpAQCAtODYsNiArOTAsMTYgQEAgYm9v
bCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpoYXNFbm91Z2hCdWZmZXJzKEdDR0x1aW50IG51bVJl
cXVpcmVkKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFdlYkdMVHJhbnNmb3Jt
RmVlZGJhY2s6OnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYgdmlz
aXRvcikKK3sKKyAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6IG1fYm91bmRJbmRleGVkVHJhbnNmb3Jt
RmVlZGJhY2tCdWZmZXJzKQorICAgICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoYnVmZmVyLmdl
dCgpKTsKKworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX3Byb2dyYW0uZ2V0KCkpOworICAg
IGlmIChtX3Byb2dyYW0pCisgICAgICAgIG1fcHJvZ3JhbS0+dmlzaXRSZWZlcmVuY2VkSlNXcmFw
cGVycyh2aXNpdG9yKTsKK30KKwogdm9pZCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjp1bmJpbmRC
dWZmZXIoV2ViR0xCdWZmZXImIGJ1ZmZlcikKIHsKICAgICBmb3IgKGF1dG8mIGJvdW5kQnVmZmVy
IDogbV9ib3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnMpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaAppbmRleCA3
N2RiOTU0OGMzYjg0NTUwNTZmYTcxN2FmNDEzNjRmMjJlMTc4ZDNiLi44M2JiYzViYWRhNjEzZjIy
YmFjNDZkNTEwNWY4MTFhMjVjMTEyYTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCkBAIC0zMCw2ICszMCwxMCBAQAogI2lu
Y2x1ZGUgIldlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHTFNoYXJlZE9i
amVjdC5oIgogCituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIFNsb3RWaXNpdG9yOworfQorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2sgZmluYWwgOiBw
dWJsaWMgV2ViR0xTaGFyZWRPYmplY3QgewpAQCAtNjEsNiArNjUsOSBAQCBwdWJsaWM6CiAgICAg
dm9pZCB1bmJpbmRCdWZmZXIoV2ViR0xCdWZmZXImKTsKICAgICAKICAgICBib29sIGhhc0Vub3Vn
aEJ1ZmZlcnMoR0NHTHVpbnQgbnVtUmVxdWlyZWQpIGNvbnN0OworCisgICAgdm9pZCB2aXNpdFJl
ZmVyZW5jZWRKU1dyYXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImKTsKKwogcHJpdmF0ZToKICAgICBX
ZWJHTFRyYW5zZm9ybUZlZWRiYWNrKFdlYkdMMlJlbmRlcmluZ0NvbnRleHQmKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmlk
bAppbmRleCA5MzczYzE4ZjhmNzQ3MjNmNDk4MDg4YzJmYmMyZWQwOTZjNmI2NDMzLi40NWFiZDVl
MmYyZWMyNDhiODM0ZTQ5M2E0YjI1ZmY3NmQzZTY2N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmlkbApAQCAtMjUsNiAr
MjUsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCR0wyLAotICAgIEVuYWJsZWRBdFJ1bnRp
bWU9V2ViR0wyCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJHTDIsCisgICAgR2VuZXJhdGVJc1Jl
YWNoYWJsZT1JbXBsCiBdIGludGVyZmFjZSBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrIHsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2Jq
ZWN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmpl
Y3QuaWRsCmluZGV4IDY3YTFmOWRlYzE3OWVmNTIxMmVmZTkyNjgzNjhhNTFmMGY3MTEyMGYuLmRk
OWM1YTgxMTQxNjQ1MTM1YzEyNWY2Mjc0NjQzNzgwZjUzY2NjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuaWRsCkBAIC0y
NSw2ICsyNSw3IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1XRUJHTDIsCi0gICAgRW5hYmxlZEF0
UnVudGltZT1XZWJHTDIKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdMMiwKKyAgICBHZW5lcmF0
ZUlzUmVhY2hhYmxlPUltcGwKIF0gaW50ZXJmYWNlIFdlYkdMVmVydGV4QXJyYXlPYmplY3Qgewog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJy
YXlPYmplY3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlLmNwcAppbmRleCAxMWNjOGI5ZTU0YjdjZDk3Yjg0ZGIzZDMzYmRhOWJl
MTM0NTEyMjI1Li5kMGJmOGNiOWNjMTBkMTVjODNkMTZmMDhmOGMxM2U4NGQ4OGE5YjVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdEJhc2UuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaWYgRU5BQkxFKFdFQkdMKQogCiAj
aW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1Nsb3RWaXNpdG9yLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0
b3JJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTEsNiArNTMsNyBAQCB2
b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRFbGVtZW50QXJyYXlCdWZmZXIoV2Vi
R0xCdWZmZXIqIGJ1ZmZlcikKIAogdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0
VmVydGV4QXR0cmliU3RhdGUoR0NHTHVpbnQgaW5kZXgsIEdDR0xzaXplaSBieXRlc1BlckVsZW1l
bnQsIEdDR0xpbnQgc2l6ZSwgR0NHTGVudW0gdHlwZSwgR0NHTGJvb2xlYW4gbm9ybWFsaXplZCwg
R0NHTHNpemVpIHN0cmlkZSwgR0NHTGludHB0ciBvZmZzZXQsIFdlYkdMQnVmZmVyKiBidWZmZXIp
CiB7CisgICAgLy8gQ292ZXJlZCB1bmRlciB0aGUgb2JqZWN0R3JhcGhMb2NrIGluIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OnZlcnRleEF0dHJpYlBvaW50ZXIuCiAgICAgR0NHTHNpemVpIHZh
bGlkYXRlZFN0cmlkZSA9IHN0cmlkZSA/IHN0cmlkZSA6IGJ5dGVzUGVyRWxlbWVudDsKICAgICAK
ICAgICBhdXRvJiBzdGF0ZSA9IG1fdmVydGV4QXR0cmliU3RhdGVbaW5kZXhdOwpAQCAtNzIsNiAr
NzUsNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJT
dGF0ZShHQ0dMdWludCBpbmRleCwgR0NHTHNpemVpCiAKIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdEJhc2U6OnVuYmluZEJ1ZmZlcihXZWJHTEJ1ZmZlciYgYnVmZmVyKQogeworICAgIC8vIENv
dmVyZWQgdW5kZXIgdGhlIG9iamVjdEdyYXBoTG9jayBpbiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjp1bmNhY2hlRGVsZXRlZEJ1ZmZlci4KICAgICBpZiAobV9ib3VuZEVsZW1lbnRBcnJheUJ1
ZmZlciA9PSAmYnVmZmVyKSB7CiAgICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXItPm9u
RGV0YWNoZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHRHTCgpKTsKICAgICAgICAgbV9ib3Vu
ZEVsZW1lbnRBcnJheUJ1ZmZlciA9IG51bGxwdHI7CkBAIC0xMDQsNyArMTA4LDE0IEBAIHZvaWQg
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYkRpdmlzb3IoR0NHTHVp
bnQgaW5kZXgsIEdDR0x1aW50CiB7CiAgICAgbV92ZXJ0ZXhBdHRyaWJTdGF0ZVtpbmRleF0uZGl2
aXNvciA9IGRpdmlzb3I7CiB9Ci0gICAgCisKK3ZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJh
c2U6OnZpc2l0UmVmZXJlbmNlZEpTV3JhcHBlcnMoSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikK
K3sKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlci5n
ZXQoKSk7CisgICAgZm9yIChhdXRvJiBzdGF0ZSA6IG1fdmVydGV4QXR0cmliU3RhdGUpCisgICAg
ICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChzdGF0ZS5idWZmZXJCaW5kaW5nLmdldCgpKTsKK30K
KwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgKaW5kZXggNGJkOTEz
NTEwZjYyYmViYzk4NWM1NzNkZDY4OGI5ZGU3MWZmM2FhMi4uYzljMDZkZTBlNGFkNzRjYWRlYzQ4
OWUyNTc2ZTNmODE5NmY2NzYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oCkBAIC0zMSw2ICszMSwxMCBAQAog
I2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0T2JqZWN0Lmgi
CiAKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgU2xvdFZpc2l0b3I7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UgOiBwdWJsaWMgV2Vi
R0xDb250ZXh0T2JqZWN0IHsKQEAgLTY4LDYgKzcyLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBz
ZXRWZXJ0ZXhBdHRyaWJEaXZpc29yKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludCBkaXZpc29yKTsK
IAorICAgIHZvaWQgdmlzaXRSZWZlcmVuY2VkSlNXcmFwcGVycyhKU0M6OlNsb3RWaXNpdG9yJik7
CisKIHByb3RlY3RlZDoKICAgICBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZShXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlJiwgVHlwZSk7CiAgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9iamVjdCkgb3ZlcnJpZGUgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTLmlkbAppbmRleCBmMTkwYTdlNjQxMzhlNWQ5NmI1MjdiMjZlMmYzNDYyNWYyY2JkNDc2
Li40NWEwNTdkYjczMzVhZDI4YTBhY2U1NmE1N2RlMTc2NzAxY2JiMWNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
LmlkbApAQCAtMjUsNiArMjUsNyBAQAogCiBbCiAgICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAg
Q29uZGl0aW9uYWw9V0VCR0wKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBHZW5lcmF0ZUlz
UmVhY2hhYmxlPUltcGwKIF0gaW50ZXJmYWNlIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMgewog
fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAxYTkzNTBhYjI1NDdiNWE3MjQzMGQ5NGQ1ZTBhN2Q5MjhjMzYwNWU4Li42YTk1
NmZjMWM5ZTJhMDEwZDJhZjcyMDJmNGFlZjg0OTBlMTU3MmQ0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMjAtMDgtMTIgIEtlbm5ldGggUnVzc2VsbCAgPGtickBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW1dlYkdMMl0gZXhwYW5kby1sb3NzIGFuZCBleHBhbmRvLWxvc3MtMiBjb25mb3JtYW5j
ZSB0ZXN0cyBhcmUgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE0NzY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmViYXNlbGluZSBleHBhbmRvLWxvc3MuaHRtbCBhbmQgZXhwYW5kby1sb3Nz
LTIuaHRtbCwgd2hpY2ggYXJlCisgICAgICAgIG5vdyBmdWxseSBwYXNzaW5nLgorCisgICAgICAg
IEFkZCBhIGhvb2sgdG8ganMtdGVzdC1wcmUuanMgd2hpY2ggYWxsb3dzIHRoZXNlIHRlc3RzIHRv
IGJlIHJ1bgorICAgICAgICBjb3JyZWN0bHkgaW4gdGhlIE1pbmlCcm93c2VyIGJ5IHNldHRpbmcg
dGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudAorICAgICAgICB2YXJpYWJsZXM6CisgICAgICAgICAg
ZXhwb3J0IEpTQ191c2VEb2xsYXJWTT0xCisgICAgICAgICAgZXhwb3J0IF9fWFBDX0pTQ191c2VE
b2xsYXJWTT0xCisKKyAgICAgICAgKiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS9taXNjL2V4cGFu
ZG8tbG9zcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2Uy
L21pc2MvZXhwYW5kby1sb3NzLTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmdsLzIuMC4w
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcHJlLmpzOgorCiAyMDIwLTA4
LTEyICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQ
RV0gUmViYXNlbGluZSBhZnRlciBuZXcgb2Zmc2NyZWVuY2FudmFzIHByb2dyZXNzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS9taXNjL2V4cGFuZG8tbG9z
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS9taXNj
L2V4cGFuZG8tbG9zcy1leHBlY3RlZC50eHQKaW5kZXggYTg5ZTJiMjc3OGI0Yzg0NDJlMDJmM2Vh
NWI4Yzk0MzcxODQ1YzA1Mi4uN2M1Zjg2ZmZkN2U3YjdlOGQ5ZmUxZTFkZTc3ZmI3YTEwZjBmZmJl
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UvbWlzYy9l
eHBhbmRvLWxvc3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2Nv
bmZvcm1hbmNlL21pc2MvZXhwYW5kby1sb3NzLWV4cGVjdGVkLnR4dApAQCAtMSw1NiArMSw0IEBA
CiBUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1l
IGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KIAogVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmds
X3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvbWlzYy9leHBhbmRvLWxvc3MuaHRtbAotCi1bIDE6IFBB
U1MgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5ESU5HXzJEKSByZXR1cm5zIGluc3RhbmNlIHRo
YXQgd2FzIGJvdW5kLgotWyAyOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFRFWFRVUkVfQklORElOR18y
RCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzogRkFJ
TCBdIGdldFBhcmFtZXRlcihURVhUVVJFX0JJTkRJTkdfMkQpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKEZS
QU1FQlVGRkVSX0JJTkRJTkcpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDU6
IEZBSUwgXSBnZXRQYXJhbWV0ZXIoRlJBTUVCVUZGRVJfQklORElORyk6IEV4cGVjdCBiYXNpYyBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNjogRkFJTCBdIGdldFBhcmFtZXRlcihG
UkFNRUJVRkZFUl9CSU5ESU5HKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgNzogUEFTUyBdIGdldFBhcmFtZXRlcihSRU5ERVJCVUZGRVJfQklORElO
RykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgODogRkFJTCBdIGdldFBhcmFt
ZXRlcihSRU5ERVJCVUZGRVJfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgOTogRkFJTCBdIGdldFBhcmFtZXRlcihSRU5ERVJCVUZGRVJfQklO
RElORyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDEwOiBQQVNTIF0gZ2V0UGFyYW1ldGVyKEVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkcpIHJl
dHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDExOiBGQUlMIF0gZ2V0UGFyYW1ldGVy
KEVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDEyOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKEVMRU1FTlRfQVJS
QVlfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyAxMzogUEFTUyBdIGdldFBhcmFtZXRlcihBUlJBWV9CVUZGRVJfQklORElO
RykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTQ6IEZBSUwgXSBnZXRQYXJh
bWV0ZXIoQVJSQVlfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDE1OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKEFSUkFZX0JVRkZFUl9C
SU5ESU5HKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMTY6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQKSByZXR1
cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxNzogRkFJTCBdIGdldFBhcmFtZXRlcihU
RVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVApOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDE4OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFRFWFRVUkVfQklORElOR19D
VUJFX01BUCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDE5OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKGdsLkNVUlJFTlRfUFJPR1JBTSkgcmV0dXJuIGlu
c3RhbmNlIHNldCB3aXRoIHVzZVByb2dyYW0KLVsgMjA6IFBBU1MgXSBWZXJ0ZXggc2hhZGVyIGlu
c3RhbmNlIGZvdW5kIGluIGdldEF0dGFjaGVkU2hhZGVycwotWyAyMTogUEFTUyBdIEZyYWdtZW50
IHNoYWRlciBpbnN0YW5jZSBmb3VuZCBpbiBnZXRBdHRhY2hlZFNoYWRlcnMKLVsgMjI6IEZBSUwg
XSBDdXJyZW50IHByb2dyYW06IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgMjM6IEZBSUwgXSBDdXJyZW50IHByb2dyYW06IEV4cGVjdCBzdWJvYmplY3QgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI0OiBQQVNTIF0gW29iamVjdCBXZWJHTFBy
b2dyYW1dIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMUHJvZ3JhbQotWyAyNTogRkFJTCBdIFNoYWRl
clswXTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNjog
RkFJTCBdIFNoYWRlclswXTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVz
cGl0ZSBHQy4KLVsgMjc6IFBBU1MgXSBbb2JqZWN0IFdlYkdMU2hhZGVyXSBpcyBhbiBpbnN0YW5j
ZSBvZiBXZWJHTFNoYWRlcgotWyAyODogRkFJTCBdIFNoYWRlclsxXTogRXhwZWN0IGJhc2ljIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyOTogRkFJTCBdIFNoYWRlclsxXTogRXhw
ZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzA6IFBBU1Mg
XSBbb2JqZWN0IFdlYkdMU2hhZGVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTFNoYWRlcgotWyAz
MTogUEFTUyBdIGdldFZlcnRleEF0dHJpYihWRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5E
SU5HKSByZXR1cm4gaW5zdGFuY2Ugc2V0IHdpdGggdmVydGV4QXR0cmliUG9pbnRlcgotWyAzMjog
RkFJTCBdIFZlcnRleCBBdHRyaWJ1dGUgQnVmZmVyOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMzOiBGQUlMIF0gVmVydGV4IEF0dHJpYnV0ZSBCdWZmZXI6
IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDM0OiBQ
QVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIK
LVsgMzU6IFBBU1MgXSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoQ09MT1JfQVRU
QUNITUVOVDApIHJldHVybnMgaW5zdGFuY2Ugc2V0IHdpdGggZnJhbWVidWZmZXJSZW5kZXJidWZm
ZXIKLVsgMzY6IFBBU1MgXSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoREVQVEhf
QVRUQUNITUVOVCkgcmV0dXJucyBpbnN0YW5jZSBzZXQgd2l0aCBmcmFtZWJ1ZmZlclJlbmRlcmJ1
ZmZlcgotWyAzNzogUEFTUyBdIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihTVEVO
Q0lMX0FUVEFDSE1FTlQpIHJldHVybnMgaW5zdGFuY2Ugc2V0IHdpdGggZnJhbWVidWZmZXJSZW5k
ZXJidWZmZXIKLVsgMzg6IFBBU1MgXSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIo
REVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UKSByZXR1cm5zIGluc3RhbmNlIHNldCB3aXRoIGZyYW1l
YnVmZmVyUmVuZGVyYnVmZmVyCi1bIDM5OiBGQUlMIF0gQ09MT1JfQVRUQUNITUVOVDA6IEV4cGVj
dCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDA6IEZBSUwgXSBDT0xP
Ul9BVFRBQ0hNRU5UMDogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgNDE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMUmVuZGVyYnVmZmVyXSBpcyBhbiBpbnN0
YW5jZSBvZiBXZWJHTFJlbmRlcmJ1ZmZlcgotWyA0MjogRkFJTCBdIERFUFRIX0FUVEFDSE1FTlQ6
IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDM6IEZBSUwg
XSBERVBUSF9BVFRBQ0hNRU5UOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyA0NDogUEFTUyBdIFtvYmplY3QgV2ViR0xSZW5kZXJidWZmZXJdIGlzIGFu
IGluc3RhbmNlIG9mIFdlYkdMUmVuZGVyYnVmZmVyCi1bIDQ1OiBGQUlMIF0gU1RFTkNJTF9BVFRB
Q0hNRU5UOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDQ2
OiBGQUlMIF0gU1RFTkNJTF9BVFRBQ0hNRU5UOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0NzogUEFTUyBdIFtvYmplY3QgV2ViR0xSZW5kZXJidWZm
ZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMUmVuZGVyYnVmZmVyCi1bIDQ4OiBGQUlMIF0gREVQ
VEhfU1RFTkNJTF9BVFRBQ0hNRU5UOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDQ5OiBGQUlMIF0gREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UOiBFeHBlY3Qg
c3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA1MDogUEFTUyBdIFtv
YmplY3QgV2ViR0xSZW5kZXJidWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMUmVuZGVyYnVm
ZmVyCi1bIDUxOiBQQVNTIF0gc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLVsgRkFJTCBdIDI4
IGZhaWx1cmVzIHJlcG9ydGVkCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvbWlzYy9leHBhbmRvLWxvc3Mt
Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvbWlz
Yy9leHBhbmRvLWxvc3MtMi1leHBlY3RlZC50eHQKaW5kZXggZDI5YzdmOWVmOGU0ZmMzYjM1NTMw
NDY5NDU1ZDg4MGFiMzA3MmYxOC4uZTdhNWFlMjhhOGI1Y2M3ZTNlZGU5YmY4MjUxYjBmODcyMzI5
Y2M3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL21p
c2MvZXhwYW5kby1sb3NzLTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi9taXNjL2V4cGFuZG8tbG9zcy0yLWV4cGVjdGVkLnR4dApAQCAtMSwz
NDEgKzEsNCBAQAogVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGlu
IGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCiAKIFRlc3Q6IC4uLy4uL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9taXNjL2V4cGFuZG8tbG9zcy0yLmh0
bWwKLQotWyAxOiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFNBTVBMRVJfQklORElORykgcmV0dXJucyBp
bnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMjogRkFJTCBdIGdldFBhcmFtZXRlcihTQU1QTEVS
X0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDM6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoU0FNUExFUl9CSU5ESU5HKTogRXhwZWN0IHN1Ym9iamVj
dCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDogUEFTUyBdIGdldFBhcmFtZXRl
cihTQU1QTEVSX0JJTkRJTkcpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDU6IFBBU1MgXSBbb2JqZWN0IFdlYkdMU2FtcGxlcl0gaXMgYW4gaW5zdGFuY2Ug
b2YgV2ViR0xTYW1wbGVyCi1bIDY6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURC
QUNLX0JJTkRJTkcpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDc6IEZBSUwg
XSBnZXRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDg6IEZBSUwgXSBnZXRQYXJhbWV0ZXIo
VFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJTkcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyA5OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFRSQU5TRk9STV9G
RUVEQkFDS19CSU5ESU5HKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyAxMDogUEFTUyBdIFtvYmplY3QgV2ViR0xUcmFuc2Zvcm1GZWVkYmFja10gaXMgYW4g
aW5zdGFuY2Ugb2YgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjawotWyAxMTogUEFTUyBdIGdldFBhcmFt
ZXRlcihWRVJURVhfQVJSQVlfQklORElORykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3Vu
ZC4KLVsgMTI6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVkVSVEVYX0FSUkFZX0JJTkRJTkcpOiBFeHBl
Y3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDEzOiBGQUlMIF0gZ2V0
UGFyYW1ldGVyKFZFUlRFWF9BUlJBWV9CSU5ESU5HKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTQ6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVkVSVEVY
X0FSUkFZX0JJTkRJTkcpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDE1OiBQQVNTIF0gW29iamVjdCBXZWJHTFZlcnRleEFycmF5T2JqZWN0XSBpcyBhbiBp
bnN0YW5jZSBvZiBXZWJHTFZlcnRleEFycmF5T2JqZWN0Ci1bIDE2OiBQQVNTIF0gZ2V0UGFyYW1l
dGVyKFRFWFRVUkVfQklORElOR18zRCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4K
LVsgMTc6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5ESU5HXzNEKTogRXhwZWN0IGJh
c2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxODogRkFJTCBdIGdldFBhcmFt
ZXRlcihURVhUVVJFX0JJTkRJTkdfM0QpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyAxOTogUEFTUyBdIGdldFBhcmFtZXRlcihURVhUVVJFX0JJTkRJ
TkdfM0QpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIw
OiBQQVNTIF0gW29iamVjdCBXZWJHTFRleHR1cmVdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMVGV4
dHVyZQotWyAyMTogUEFTUyBdIGdldFBhcmFtZXRlcihURVhUVVJFX0JJTkRJTkdfMkRfQVJSQVkp
IHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDIyOiBGQUlMIF0gZ2V0UGFyYW1l
dGVyKFRFWFRVUkVfQklORElOR18yRF9BUlJBWSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjM6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5E
SU5HXzJEX0FSUkFZKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgMjQ6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5ESU5HXzJEX0FSUkFZ
KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNTogUEFT
UyBdIFtvYmplY3QgV2ViR0xUZXh0dXJlXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTFRleHR1cmUK
LVsgMjY6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HKSByZXR1
cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAyNzogRkFJTCBdIGdldFBhcmFtZXRlcihS
RUFEX0ZSQU1FQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDI4OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFJFQURfRlJBTUVCVUZGRVJf
QklORElORyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDI5OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFJFQURfRlJBTUVCVUZGRVJfQklORElORyk6IEV4
cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzA6IFBBU1MgXSBb
b2JqZWN0IFdlYkdMRnJhbWVidWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMRnJhbWVidWZm
ZXIKLVsgMzE6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoRFJBV19GUkFNRUJVRkZFUl9CSU5ESU5HKSBy
ZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAzMjogRkFJTCBdIGdldFBhcmFtZXRl
cihEUkFXX0ZSQU1FQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDMzOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKERSQVdfRlJBTUVCVUZG
RVJfQklORElORyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDM0OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKERSQVdfRlJBTUVCVUZGRVJfQklORElORyk6
IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzU6IFBBU1Mg
XSBbb2JqZWN0IFdlYkdMRnJhbWVidWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMRnJhbWVi
dWZmZXIKLVsgMzY6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoQ09QWV9SRUFEX0JVRkZFUl9CSU5ESU5H
KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAzNzogRkFJTCBdIGdldFBhcmFt
ZXRlcihDT1BZX1JFQURfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDM4OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKENPUFlfUkVBRF9C
VUZGRVJfQklORElORyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDM5OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKENPUFlfUkVBRF9CVUZGRVJfQklORElO
Ryk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDA6IFBB
U1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgot
WyA0MTogUEFTUyBdIGdldFBhcmFtZXRlcihDT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HKSByZXR1
cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA0MjogRkFJTCBdIGdldFBhcmFtZXRlcihD
T1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyA0MzogRkFJTCBdIGdldFBhcmFtZXRlcihDT1BZX1dSSVRFX0JVRkZF
Ul9CSU5ESU5HKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgNDQ6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoQ09QWV9XUklURV9CVUZGRVJfQklORElORyk6
IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDU6IFBBU1Mg
XSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA0
NjogUEFTUyBdIGdldFBhcmFtZXRlcihQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HKSByZXR1cm5z
IGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA0NzogRkFJTCBdIGdldFBhcmFtZXRlcihQSVhF
TF9QQUNLX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyA0ODogRkFJTCBdIGdldFBhcmFtZXRlcihQSVhFTF9QQUNLX0JVRkZFUl9C
SU5ESU5HKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgNDk6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoUElYRUxfUEFDS19CVUZGRVJfQklORElORyk6IEV4
cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNTA6IFBBU1MgXSBb
b2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA1MTog
UEFTUyBdIGdldFBhcmFtZXRlcihQSVhFTF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkcpIHJldHVybnMg
aW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDUyOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFBJWEVM
X1VOUEFDS19CVUZGRVJfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgNTM6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoUElYRUxfVU5QQUNLX0JVRkZF
Ul9CSU5ESU5HKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgNTQ6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoUElYRUxfVU5QQUNLX0JVRkZFUl9CSU5ESU5H
KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA1NTogUEFT
UyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1b
IDU2OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElO
RykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNTc6IEZBSUwgXSBnZXRQYXJh
bWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGJhc2ljIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA1ODogRkFJTCBdIGdldFBhcmFtZXRlcihU
UkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA1OTogUEFTUyBdIGdldFBhcmFtZXRlcihUUkFO
U0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDYwOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMg
YW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgNjE6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVU5J
Rk9STV9CVUZGRVJfQklORElORykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsg
NjI6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORyk6IEV4cGVjdCBi
YXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNjM6IEZBSUwgXSBnZXRQYXJh
bWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDY0OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDY1OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2Yg
V2ViR0xCdWZmZXIKLVsgNjY6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9G
RUVEQkFDS19CVUZGRVJfQklORElORywgMCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3Vu
ZC4KLVsgNjc6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19C
VUZGRVJfQklORElORywgMSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNjg6
IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklO
RElORywgMikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNjk6IFBBU1MgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMykg
cmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNzA6IEZBSUwgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMCk6IEV4cGVjdCBi
YXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNzE6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMCk6IEV4cGVj
dCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDcyOiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcsIDAp
OiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDczOiBQQVNT
IF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsg
NzQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJf
QklORElORywgMSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgNzU6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZG
RVJfQklORElORywgMSk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDc2OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVFREJB
Q0tfQlVGRkVSX0JJTkRJTkcsIDEpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDc3OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFu
Y2Ugb2YgV2ViR0xCdWZmZXIKLVsgNzg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5T
Rk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMik6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNzk6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRS
QU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMik6IEV4cGVjdCBzdWJvYmplY3QgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDgwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcsIDIpOiBFeHBlY3QgZXh0cmEg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDgxOiBQQVNTIF0gW29iamVjdCBXZWJH
TEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgODI6IFBBU1MgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMyk6IEV4
cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgODM6IFBBU1MgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMyk6
IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDg0OiBQ
QVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJ
TkcsIDMpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDg1
OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZm
ZXIKLVsgODY6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDApIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDg3OiBQQVNTIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxKSByZXR1cm5zIGluc3Rh
bmNlIHRoYXQgd2FzIGJvdW5kLgotWyA4ODogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5J
Rk9STV9CVUZGRVJfQklORElORywgMikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4K
LVsgODk6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDMpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDkwOiBQQVNTIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0KSByZXR1cm5zIGluc3RhbmNl
IHRoYXQgd2FzIGJvdW5kLgotWyA5MTogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9S
TV9CVUZGRVJfQklORElORywgNSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsg
OTI6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDYp
IHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDkzOiBQQVNTIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA3KSByZXR1cm5zIGluc3RhbmNlIHRo
YXQgd2FzIGJvdW5kLgotWyA5NDogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9C
VUZGRVJfQklORElORywgOCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgOTU6
IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDkpIHJl
dHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDk2OiBQQVNTIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0
IHdhcyBib3VuZC4KLVsgOTc6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDExKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA5ODog
UEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTIpIHJl
dHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDk5OiBQQVNTIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMykgcmV0dXJucyBpbnN0YW5jZSB0aGF0
IHdhcyBib3VuZC4KLVsgMTAwOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCAxNCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTAx
OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxNSkg
cmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTAyOiBQQVNTIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxNikgcmV0dXJucyBpbnN0YW5jZSB0
aGF0IHdhcyBib3VuZC4KLVsgMTAzOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCAxNykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsg
MTA0OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAx
OCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTA1OiBQQVNTIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxOSkgcmV0dXJucyBpbnN0YW5j
ZSB0aGF0IHdhcyBib3VuZC4KLVsgMTA2OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCAyMCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4K
LVsgMTA3OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCAyMSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTA4OiBQQVNTIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMikgcmV0dXJucyBpbnN0
YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTA5OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3Vu
ZC4KLVsgMTEwOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAyNCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTExOiBQQVNTIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNSkgcmV0dXJucyBp
bnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTEyOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBi
b3VuZC4KLVsgMTEzOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCAyNykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTE0OiBQQVNT
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyOCkgcmV0dXJu
cyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTE1OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyOSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdh
cyBib3VuZC4KLVsgMTE2OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCAzMCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTE3OiBQ
QVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMSkgcmV0
dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTE4OiBQQVNTIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMikgcmV0dXJucyBpbnN0YW5jZSB0aGF0
IHdhcyBib3VuZC4KLVsgMTE5OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCAzMykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTIw
OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNCkg
cmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTIxOiBQQVNTIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNSkgcmV0dXJucyBpbnN0YW5jZSB0
aGF0IHdhcyBib3VuZC4KLVsgMTIyOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCAzNikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsg
MTIzOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAz
NykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTI0OiBQQVNTIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzOCkgcmV0dXJucyBpbnN0YW5j
ZSB0aGF0IHdhcyBib3VuZC4KLVsgMTI1OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCAzOSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4K
LVsgMTI2OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCA0MCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTI3OiBQQVNTIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0MSkgcmV0dXJucyBpbnN0
YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTI4OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0MikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3Vu
ZC4KLVsgMTI5OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCA0MykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTMwOiBQQVNTIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NCkgcmV0dXJucyBp
bnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTMxOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBi
b3VuZC4KLVsgMTMyOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCA0NikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTMzOiBQQVNT
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NykgcmV0dXJu
cyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTM0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAwKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxMzU6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDApOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyAxMzY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDApOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDEzNzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3Rh
bmNlIG9mIFdlYkdMQnVmZmVyCi1bIDEzODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5J
Rk9STV9CVUZGRVJfQklORElORywgMSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgMTM5OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCAxKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVz
cGl0ZSBHQy4KLVsgMTQwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCAxKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAxNDE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBX
ZWJHTEJ1ZmZlcgotWyAxNDI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDIpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDE0MzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklO
RElORywgMik6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDE0NDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
RywgMik6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTQ1
OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZm
ZXIKLVsgMTQ2OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAzKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAx
NDc6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMp
OiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNDg6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMpOiBF
eHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE0OTogUEFTUyBd
IFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE1
MDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNCk6
IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTUxOiBGQUlM
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0KTogRXhwZWN0
IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTUyOiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0KTogRXhwZWN0IGV4
dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNTM6IFBBU1MgXSBbb2JqZWN0
IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxNTQ6IEZBSUwg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDUpOiBFeHBlY3Qg
YmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE1NTogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNSk6IEV4cGVjdCBzdWJvYmpl
Y3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE1NjogRkFJTCBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNSk6IEV4cGVjdCBleHRyYSBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTU3OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1
ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTU4OiBGQUlMIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA2KTogRXhwZWN0IGJhc2ljIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNTk6IEZBSUwgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDYpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNjA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDYpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE2MTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlz
IGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE2MjogRkFJTCBdIGdldEluZGV4ZWRQYXJh
bWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTYzOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCA3KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTY0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCA3KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyAxNjU6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0
YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxNjY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDgpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDE2NzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9C
VUZGRVJfQklORElORywgOCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDE2ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZG
RVJfQklORElORywgOCk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMTY5OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2Yg
V2ViR0xCdWZmZXIKLVsgMTcwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCA5KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyAxNzE6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDkpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAxNzI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDkpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE3
MzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVm
ZmVyCi1bIDE3NDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklO
RElORywgMTApOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDE3NTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywg
MTApOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAx
NzY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEw
KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNzc6IFBB
U1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgot
WyAxNzg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDExKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNzk6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDExKTog
RXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTgwOiBG
QUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMSk6IEV4
cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTgxOiBQQVNTIF0g
W29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTgy
OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMik6
IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTgzOiBGQUlM
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMik6IEV4cGVj
dCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE4NDogRkFJTCBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTIpOiBFeHBlY3Qg
ZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE4NTogUEFTUyBdIFtvYmpl
Y3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE4NjogRkFJ
TCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTMpOiBFeHBl
Y3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE4NzogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTMpOiBFeHBlY3Qgc3Vi
b2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxODg6IEZBSUwgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEzKTogRXhwZWN0IGV4dHJh
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxODk6IFBBU1MgXSBbb2JqZWN0IFdl
YkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxOTA6IEZBSUwgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE0KTogRXhwZWN0IGJh
c2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxOTE6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE0KTogRXhwZWN0IHN1Ym9iamVj
dCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTkyOiBGQUlMIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxNCk6IEV4cGVjdCBleHRyYSBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTkzOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1
ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTk0OiBGQUlMIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxNSk6IEV4cGVjdCBiYXNpYyBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTk1OiBGQUlMIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxNSk6IEV4cGVjdCBzdWJvYmplY3QgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE5NjogRkFJTCBdIGdldEluZGV4ZWRQYXJh
bWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTUpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE5NzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJd
IGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE5ODogRkFJTCBdIGdldEluZGV4ZWRQ
YXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTYpOiBFeHBlY3QgYmFzaWMgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE5OTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTYpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMDA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE2KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyAyMDE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBh
biBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyMDI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE3KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMDM6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE3KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjA0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCAxNyk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgMjA1OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5z
dGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjA2OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxOCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgMjA3OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCAxOCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDIwODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9C
VUZGRVJfQklORElORywgMTgpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDIwOTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNl
IG9mIFdlYkdMQnVmZmVyCi1bIDIxMDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9S
TV9CVUZGRVJfQklORElORywgMTkpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDIxMTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZG
RVJfQklORElORywgMTkpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNw
aXRlIEdDLgotWyAyMTI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVS
X0JJTkRJTkcsIDE5KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAyMTM6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBX
ZWJHTEJ1ZmZlcgotWyAyMTQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDIwKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyAyMTU6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDIwKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMjE2OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAyMCk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MjE3OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xC
dWZmZXIKLVsgMjE4OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCAyMSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMjE5OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCAyMSk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDIyMDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywg
MjEpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIyMTog
UEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVy
Ci1bIDIyMjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
RywgMjIpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIy
MzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjIp
OiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMjQ6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIyKTog
RXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMjU6IFBBU1Mg
XSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAy
MjY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIz
KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMjc6IEZB
SUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIzKTogRXhw
ZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjI4OiBGQUlM
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMyk6IEV4cGVj
dCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjI5OiBQQVNTIF0gW29i
amVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjMwOiBG
QUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNCk6IEV4
cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjMxOiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNCk6IEV4cGVjdCBz
dWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIzMjogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjQpOiBFeHBlY3QgZXh0
cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIzMzogUEFTUyBdIFtvYmplY3Qg
V2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDIzNDogRkFJTCBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjUpOiBFeHBlY3Qg
YmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIzNTogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjUpOiBFeHBlY3Qgc3Vib2Jq
ZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMzY6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI1KTogRXhwZWN0IGV4dHJhIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMzc6IFBBU1MgXSBbb2JqZWN0IFdlYkdM
QnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyMzg6IEZBSUwgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI2KTogRXhwZWN0IGJhc2lj
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMzk6IEZBSUwgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI2KTogRXhwZWN0IHN1Ym9iamVjdCBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjQwOiBGQUlMIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNik6IEV4cGVjdCBleHRyYSBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjQxOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZl
cl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjQyOiBGQUlMIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNyk6IEV4cGVjdCBiYXNpYyBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjQzOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI0NDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjcpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI0NTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlz
IGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDI0NjogRkFJTCBdIGdldEluZGV4ZWRQYXJh
bWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjgpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI0NzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIo
VU5JRk9STV9CVUZGRVJfQklORElORywgMjgpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNDg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI4KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyAyNDk6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBp
bnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyNTA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI5KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyAyNTE6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDI5KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgMjUyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCAyOSk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVz
cGl0ZSBHQy4KLVsgMjUzOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFu
Y2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjU0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCAzMCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgMjU1OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCAzMCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDI1NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZG
RVJfQklORElORywgMzApOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDI1NzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9m
IFdlYkdMQnVmZmVyCi1bIDI1ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9C
VUZGRVJfQklORElORywgMzEpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDI1OTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJf
QklORElORywgMzEpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyAyNjA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDMxKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgot
WyAyNjE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJH
TEJ1ZmZlcgotWyAyNjI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVS
X0JJTkRJTkcsIDMyKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAyNjM6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDMyKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMjY0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCAzMik6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjY1
OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZm
ZXIKLVsgMjY2OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAzMyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MjY3OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAz
Myk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI2
ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzMp
OiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI2OTogUEFT
UyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1b
IDI3MDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywg
MzQpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI3MTog
RkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzQpOiBF
eHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNzI6IEZB
SUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM0KTogRXhw
ZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNzM6IFBBU1MgXSBb
b2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyNzQ6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM1KTog
RXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNzU6IEZBSUwg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM1KTogRXhwZWN0
IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjc2OiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNSk6IEV4cGVjdCBl
eHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjc3OiBQQVNTIF0gW29iamVj
dCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjc4OiBGQUlM
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNik6IEV4cGVj
dCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjc5OiBGQUlMIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNik6IEV4cGVjdCBzdWJv
YmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI4MDogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzYpOiBFeHBlY3QgZXh0cmEg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI4MTogUEFTUyBdIFtvYmplY3QgV2Vi
R0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDI4MjogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzcpOiBFeHBlY3QgYmFz
aWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI4MzogRkFJTCBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzcpOiBFeHBlY3Qgc3Vib2JqZWN0
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyODQ6IEZBSUwgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM3KTogRXhwZWN0IGV4dHJhIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyODU6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVm
ZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyODY6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM4KTogRXhwZWN0IGJhc2ljIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyODc6IEZBSUwgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM4KTogRXhwZWN0IHN1Ym9iamVjdCBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjg4OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzOCk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjg5OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0g
aXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjkwOiBGQUlMIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzOSk6IEV4cGVjdCBiYXNpYyBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjkxOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzOSk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI5MjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIo
VU5JRk9STV9CVUZGRVJfQklORElORywgMzkpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDI5MzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFu
IGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDI5NDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDApOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI5NTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5J
Rk9STV9CVUZGRVJfQklORElORywgNDApOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyAyOTY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDQwKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyAyOTc6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0
YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyOTg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQxKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyAyOTk6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDQxKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgMzAwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCA0MSk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgMzAxOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ug
b2YgV2ViR0xCdWZmZXIKLVsgMzAyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCA0Mik6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVz
cGl0ZSBHQy4KLVsgMzAzOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCA0Mik6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDMwNDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJf
QklORElORywgNDIpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDMwNTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdl
YkdMQnVmZmVyCi1bIDMwNjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZG
RVJfQklORElORywgNDMpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDMwNzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklO
RElORywgNDMpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAzMDg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDQzKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAz
MDk6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1
ZmZlcgotWyAzMTA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDQ0KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgot
WyAzMTE6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDQ0KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MzEyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0
NCk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzEzOiBQ
QVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIK
LVsgMzE0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCA0NSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzE1
OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NSk6
IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMxNjog
RkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDUpOiBF
eHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMxNzogUEFTUyBd
IFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDMx
ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDYp
OiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMxOTogRkFJ
TCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDYpOiBFeHBl
Y3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMjA6IEZBSUwg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ2KTogRXhwZWN0
IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMjE6IFBBU1MgXSBbb2Jq
ZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAzMjI6IFBB
U1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ3KTogRXhw
ZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMjM6IFBBU1MgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ3KTogRXhwZWN0IHN1
Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzI0OiBQQVNTIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Nyk6IEV4cGVjdCBleHRy
YSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzI1OiBQQVNTIF0gW29iamVjdCBX
ZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMzI2OiBQQVNTIF0g
Q1VSUkVOVF9RVUVSWSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAzMjc6IFBB
U1MgXSBDVVJSRU5UX1FVRVJZIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDMy
ODogRkFJTCBdIFF1ZXJ5OiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDMyOTogRkFJTCBdIFF1ZXJ5OiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyAzMzA6IFBBU1MgXSBRdWVyeTogRXhwZWN0IGV4dHJhIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMzE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMUXVl
cnldIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMUXVlcnkKLVsgMzMyOiBGQUlMIF0gUXVlcnk6IEV4
cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzMzOiBGQUlMIF0g
UXVlcnk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDMzNDogUEFTUyBdIFF1ZXJ5OiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDMzNTogUEFTUyBdIFtvYmplY3QgV2ViR0xRdWVyeV0gaXMgYW4gaW5zdGFuY2Ug
b2YgV2ViR0xRdWVyeQotWyAzMzY6IFBBU1MgXSBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
WyBGQUlMIF0gMTgwIGZhaWx1cmVzIHJlcG9ydGVkCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2Vk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9qcy9qcy10ZXN0LXByZS5qcyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcHJlLmpzCmluZGV4IGUxZTcwMTg4ZmI5
NzI4NTEyN2QyMDVlY2QyM2M5ZWY3NjQwNDg5M2MuLmU3ZjEzODU5MjQ1NTFiOWU0YzUzZmVkNTcx
OGE3NDdmN2NkNDQ5M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL3Jlc291
cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcHJlLmpzCisrKyBiL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC4wL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcHJlLmpz
CkBAIC03MDgsNiArNzA4LDEyIEBAIGZ1bmN0aW9uIHdlYmdsSGFybmVzc0NvbGxlY3RHYXJiYWdl
KCkgewogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgLy8gV2ViS2l0J3MgTWluaUJyb3dz
ZXIKKyAgICBpZiAod2luZG93LiR2bSkgeworICAgICAgICB3aW5kb3cuJHZtLmdjKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBmdW5jdGlvbiBnY1JlYyhuKSB7CiAgICAgICAgIGlm
IChuIDwgMSkKICAgICAgICAgICAgIHJldHVybiB7fTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406483</attachid>
            <date>2020-08-12 16:48:09 -0700</date>
            <delta_ts>2020-08-13 16:28:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214765-20200812164808.patch</filename>
            <type>text/plain</type>
            <size>86088</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDA1NTc3NTAxMGQyMmRk
ZjEyMGMwZWI1YTBkZDMxZThmYjAzMzY5Ni4uNTMwY2FiMzc2YzI4ZWM2M2Y4YTk2ZWM1M2I3MGQy
NjA1NDlhYTQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOSBAQAorMjAyMC0wOC0xMiAgS2Vu
bmV0aCBSdXNzZWxsICA8a2JyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViR0wyXSBleHBh
bmRvLWxvc3MgYW5kIGV4cGFuZG8tbG9zcy0yIGNvbmZvcm1hbmNlIHRlc3RzIGFyZSBmYWlsaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ3NjUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAoUmUtbGFu
ZCB3aXRoIGxvY2tpbmcgZml4ZXMgeXN1enVraUAgcG9pbnRlZCBvdXQgYXMgbmVjZXNzYXJ5KQor
CisgICAgICAgIFVzZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dCdzIGFuZCBKU1dlYkdMMlJlbmRl
cmluZ0NvbnRleHQncworICAgICAgICBleGlzdGluZyB2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbiBo
b29rICh2aWEgSlNDdXN0b21NYXJrRnVuY3Rpb24gaW4KKyAgICAgICAgdGhlaXIgSURMKSB0byBh
ZGQgb3BhcXVlIHJvb3RzIGZvciBhbGwgV2ViR0xPYmplY3RzIGxhdGNoZWQgaW4gdG8KKyAgICAg
ICAgdGhlIGNvbnRleHQgc3RhdGUsIGFuZCBhbGwgV2ViR0xPYmplY3RzIHRoZXkgcmVmZXIgdG8u
IChFeHRlbnNpb25zCisgICAgICAgIHdlcmUgYWxyZWFkeSBwcmV2aW91c2x5IGhhbmRsZWQuKQor
CisgICAgICAgIEdyYWIgYSBwZXItV2ViR0wtY29udGV4dCBsb2NrIGluIHZpc2l0QWRkaXRpb25h
bENoaWxkcmVuLCBhbmQgaW4KKyAgICAgICAgYWxsIFdlYkdMIGNvbnRleHQtIGFuZCBvYmplY3Qt
cmVsYXRlZCBtZXRob2RzIHdoaWNoIG1vZGlmeQorICAgICAgICBjb21wb3VuZCBkYXRhIHN0cnVj
dHVyZXMgbGlrZSBIYXNoTWFwcyBhbmQgVmVjdG9ycyB0aGF0IGFyZQorICAgICAgICB0cmF2ZXJz
ZWQgYnkgdmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4gYW5kIGl0cyBjYWxsZWVzLiBQZXIgZmVlZGJh
Y2sKKyAgICAgICAgZnJvbSB5c3V6dWtpQCwgdGhpcyBpcyBuZWVkZWQgdG8gcHJvcGVybHkgc3Vw
cG9ydCBjb25jdXJyZW50CisgICAgICAgIG1hcmtpbmcuCisKKyAgICAgICAgQWRkICJHZW5lcmF0
ZUlzUmVhY2hhYmxlPUltcGwiIHRvIHRoZSBJREwgZmlsZXMgb2YgbmVlZGVkIFdlYkdMCisgICAg
ICAgIG9iamVjdHMgKFdlYkdMQnVmZmVyLCBXZWJHTFRleHR1cmUsIGV0Yy4pIHNvIHRoYXQgdGhl
eSBwYXkKKyAgICAgICAgYXR0ZW50aW9uIHRvIHRoZSBvcGFxdWUgcm9vdCBzdGF0ZSB3aGVuIGRl
dGVybWluaW5nIGxpdmVuZXNzIG9mCisgICAgICAgIHRoZWlyIEphdmFTY3JpcHQgd3JhcHBlcnMu
IEFkZCBhIEZJWE1FIHRvIG9iamVjdEdyYXBoTG9jayBpbgorICAgICAgICBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlIHRvIGNvbnNpZGVyIHJld3JpdGluZyB0aGlzIGluIGEKKyAgICAgICAgbG9j
ay1mcmVlIG1hbm5lci4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIFdlYkdMIGNvbmZv
cm1hbmNlIHRlc3RzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdD
b250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbik6CisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiaW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlUXVlcnkpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmVnaW5RdWVyeSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjplbmRRdWVyeSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVTYW1wbGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJpbmRTYW1wbGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJpbmRUcmFuc2Zvcm1GZWVkYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiZWdpblRyYW5zZm9ybUZlZWRi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnNldEluZGV4
ZWRCdWZmZXJCaW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJH
TDJSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIu
aWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMQ29udGV4dEdyb3VwOjpvYmplY3RHcmFwaExvY2tGb3JBQ29udGV4
dCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaDoKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xDb250ZXh0T2JqZWN0OjpvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KToKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuaDoKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9XZWJHTEZyYW1lYnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZm
ZXI6OnJlbW92ZUF0dGFjaG1lbnRGcm9tQm91bmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTEZyYW1lYnVmZmVyOjpkZWxldGVPYmplY3RJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMRnJhbWVidWZmZXI6OmluaXRpYWxpemVBdHRhY2htZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTEZyYW1lYnVmZmVyOjphZGRNZW1iZXJzVG9PcGFxdWVSb290cyk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTEZyYW1lYnVmZmVyOjpzZXRBdHRhY2htZW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaDoKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJH
TE9iamVjdC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFByb2dyYW06OmF0dGFjaFNoYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFByb2dyYW06OmFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFBy
b2dyYW0uaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUXVlcnkuaWRsOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmF0dGFjaFNoYWRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpiaW5kQnVmZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJpbmRGcmFtZWJ1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpiaW5kUmVuZGVyYnVmZmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJpbmRUZXh0dXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuY2FjaGVE
ZWxldGVkQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OnNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlRnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGV0YWNoU2hhZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVzZVByb2dyYW0pOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliUG9pbnRlcik6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRNZW1iZXJz
VG9PcGFxdWVSb290cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpvYmplY3RHcmFwaExvY2spOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OnNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAqIGh0
bWwvY2FudmFzL1dlYkdMU2FtcGxlci5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xT
aGFkZXIuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMU2hhcmVkT2JqZWN0OjpvYmplY3RHcmFwaExvY2tGb3JD
b250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5pZGw6CisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFRy
YW5zZm9ybUZlZWRiYWNrOjpzZXRQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVHJh
bnNmb3JtRmVlZGJhY2s6OnNldEJvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OmFkZE1lbWJlcnNUb09w
YXF1ZVJvb3RzKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNr
Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5pZGw6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5pZGw6CisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJpbmRC
dWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6OmFk
ZE1lbWJlcnNUb09wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFZlcnRl
eEFycmF5T2JqZWN0QmFzZS5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMuaWRsOgorCiAyMDIwLTA4LTEyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIEFkZCBteSBuZXcgVHdpdHRlciBoYW5kbGUgdG8gdGhlIGZlYXR1
cmUgc3RhdHVzIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IDY1YTU4Y2Q3NmY5
N2JjZDhlMTNjZjliYTAzMDEwZDRlODdkMDg1ZWUuLjg4NDJhNTE4YTk3MGUzZDlhNTI2NTYyZWFh
MGMwMGIwZmMyYzg2NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtMzYsNiArMzYs
NyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogdm9pZCBKU1dlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIHZp
c2l0b3IuYWRkT3BhcXVlUm9vdCgmd3JhcHBlZCgpKTsKKyAgICB3cmFwcGVkKCkuYWRkTWVtYmVy
c1RvT3BhcXVlUm9vdHModmlzaXRvcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250
ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCBhMGRhZjg2N2NlNmE2OGYxYWI2Yzg2NWE1MjA1Nzlk
MTZjYjVlZDBjLi5hM2YwYWZkZjcyODZjZjkxZjhjMjU4NmE5YTA5MjU5MjE3YzAzNjI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4
dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0zNiw2ICszNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiB2b2lkIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJl
bihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoJndy
YXBwZWQoKSk7CisgICAgd3JhcHBlZCgpLmFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKHZpc2l0b3Ip
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDJlYzgzNzg4OTAy
Zjk5ZTg2NjAxMTVjNmQ2MzBhYWI1MGJkNjI0ZjkuLjAzYjdmMzUzZmZiNmUwMDdhZmY5MDg0Nzk1
NzhiMWM0ODFiZTUzYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC02Niw2ICs2Niw4IEBACiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0hlYXBJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvU2xvdFZpc2l0b3IuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvcklu
bGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5VHlwZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKQEAgLTY5Myw2ICs2OTUsOCBAQCB2b2lk
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEJ1ZmZlclN1YkRhdGEoR0NHTGVudW0gdGFyZ2V0
LCBsb25nIGxvbmcgc3JjQnl0ZQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJpbmRG
cmFtZWJ1ZmZlcihHQ0dMZW51bSB0YXJnZXQsIFdlYkdMRnJhbWVidWZmZXIqIGJ1ZmZlcikKIHsK
KyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG9iamVjdEdyYXBoTG9jaygpKTsKKwogICAgIGlm
ICghY2hlY2tPYmplY3RUb0JlQm91bmQoImJpbmRGcmFtZWJ1ZmZlciIsIGJ1ZmZlcikpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMTg0MCw2ICsxODQ0LDggQEAgUmVmUHRyPFdlYkdMUXVlcnk+IFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVF1ZXJ5KCkKIAogdm9pZCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpkZWxldGVRdWVyeShXZWJHTFF1ZXJ5KiBxdWVyeSkKIHsKKyAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG9iamVjdEdyYXBoTG9jaygpKTsKKwogICAgIGlmIChpc0NvbnRleHRM
b3N0T3JQZW5kaW5nKCkgfHwgIXF1ZXJ5IHx8ICFxdWVyeS0+b2JqZWN0KCkgfHwgIXZhbGlkYXRl
V2ViR0xPYmplY3QoImRlbGV0ZVF1ZXJ5IiwgcXVlcnkpKQogICAgICAgICByZXR1cm47CiAgICAg
aWYgKHF1ZXJ5LT50YXJnZXQoKSAmJiBxdWVyeSA9PSBtX2FjdGl2ZVF1ZXJpZXMuZ2V0KHF1ZXJ5
LT50YXJnZXQoKSkpIHsKQEAgLTE4NjksNiArMTg3NSw4IEBAIGJvb2wgV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6dmFsaWRhdGVRdWVyeVRhcmdldChjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdD
R0xlCiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmVnaW5RdWVyeShHQ0dMZW51bSB0
YXJnZXQsIFdlYkdMUXVlcnkmIHF1ZXJ5KQogeworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
b2JqZWN0R3JhcGhMb2NrKCkpOworCiAgICAgR0NHTGVudW0gdGFyZ2V0S2V5OwogICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRlV2ViR0xPYmplY3QoImJlZ2luUXVl
cnkiLCAmcXVlcnkpIHx8ICF2YWxpZGF0ZVF1ZXJ5VGFyZ2V0KCJiZWdpblF1ZXJ5IiwgdGFyZ2V0
LCAmdGFyZ2V0S2V5KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTg5Miw2ICsxOTAwLDggQEAgdm9p
ZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiZWdpblF1ZXJ5KEdDR0xlbnVtIHRhcmdldCwgV2Vi
R0xRdWVyeSYgcXVlcnkpCiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZW5kUXVlcnko
R0NHTGVudW0gdGFyZ2V0KQogeworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3Jh
cGhMb2NrKCkpOworCiAgICAgR0NHTGVudW0gdGFyZ2V0S2V5OwogICAgIGlmIChpc0NvbnRleHRM
b3N0T3JQZW5kaW5nKCkgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSB8fCAhdmFsaWRhdGVR
dWVyeVRhcmdldCgiYmVnaW5RdWVyeSIsIHRhcmdldCwgJnRhcmdldEtleSkpCiAgICAgICAgIHJl
dHVybjsKQEAgLTE5NjMsNiArMTk3Myw4IEBAIFJlZlB0cjxXZWJHTFNhbXBsZXI+IFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OmNyZWF0ZVNhbXBsZXIoKQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0Nv
bnRleHQ6OmRlbGV0ZVNhbXBsZXIoV2ViR0xTYW1wbGVyKiBzYW1wbGVyKQogeworICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3JhcGhMb2NrKCkpOworCiAgICAgaWYgKGlzQ29udGV4
dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xOTg3LDYgKzE5OTksOCBA
QCBHQ0dMYm9vbGVhbiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojppc1NhbXBsZXIoV2ViR0xTYW1w
bGVyKiBzYW1wbGVyKQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJpbmRTYW1wbGVy
KEdDR0x1aW50IHVuaXQsIFdlYkdMU2FtcGxlciogc2FtcGxlcikKIHsKKyAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG9iamVjdEdyYXBoTG9jaygpKTsKKwogICAgIGlmIChpc0NvbnRleHRMb3N0
T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTIxNzQsNiArMjE4OCw4IEBA
IEdDR0xib29sZWFuIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmlzVHJhbnNmb3JtRmVlZGJhY2so
V2ViR0xUcmFuc2Zvcm1GZWVkYmFjayoKIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpi
aW5kVHJhbnNmb3JtRmVlZGJhY2soR0NHTGVudW0gdGFyZ2V0LCBXZWJHTFRyYW5zZm9ybUZlZWRi
YWNrKiBmZWVkYmFja09iamVjdCkKIHsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG9iamVj
dEdyYXBoTG9jaygpKTsKKwogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMjI0Miw2ICsyMjU4LDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdD
b250ZXh0OjpiZWdpblRyYW5zZm9ybUZlZWRiYWNrKEdDR0xlbnVtIHByaW1pdGl2ZU1vZGUpCiAK
ICAgICBtX2NvbnRleHQtPmJlZ2luVHJhbnNmb3JtRmVlZGJhY2socHJpbWl0aXZlTW9kZSk7CiAK
KyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG9iamVjdEdyYXBoTG9jaygpKTsKICAgICBtX2Jv
dW5kVHJhbnNmb3JtRmVlZGJhY2stPnNldFByb2dyYW0oKm1fY3VycmVudFByb2dyYW0pOwogICAg
IG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFjay0+c2V0QWN0aXZlKHRydWUpOwogICAgIG1fYm91bmRU
cmFuc2Zvcm1GZWVkYmFjay0+c2V0UGF1c2VkKGZhbHNlKTsKQEAgLTIzMzksNiArMjM1Niw4IEBA
IHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cmVzdW1lVHJhbnNmb3JtRmVlZGJhY2soKQog
CiBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnNldEluZGV4ZWRCdWZmZXJCaW5kaW5nKGNv
bnN0IGNoYXIgKmZ1bmN0aW9uTmFtZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMdWludCBpbmRleCwg
V2ViR0xCdWZmZXIqIGJ1ZmZlcikKIHsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG9iamVj
dEdyYXBoTG9jaygpKTsKKwogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIApAQCAtMzAxMCw2ICszMDI5LDM2IEBAIGJvb2wgV2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6Y2hlY2tBbmRUcmFuc2xhdGVBdHRhY2htZW50cyhjb25zdCBjaGFyKiBm
dW5jdGlvbk5hCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDo6YWRkTWVtYmVyc1RvT3BhcXVlUm9vdHMoSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikK
K3sKKyAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRNZW1iZXJzVG9PcGFxdWVSb290
cyh2aXNpdG9yKTsKKworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3JhcGhMb2Nr
KCkpOworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX3JlYWRGcmFtZWJ1ZmZlckJpbmRpbmcu
Z2V0KCkpOworICAgIGlmIChtX3JlYWRGcmFtZWJ1ZmZlckJpbmRpbmcpCisgICAgICAgIG1fcmVh
ZEZyYW1lYnVmZmVyQmluZGluZy0+YWRkTWVtYmVyc1RvT3BhcXVlUm9vdHModmlzaXRvcik7CisK
KyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLmdldCgp
KTsKKyAgICBpZiAobV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrKQorICAgICAgICBtX2JvdW5kVHJh
bnNmb3JtRmVlZGJhY2stPmFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKHZpc2l0b3IpOworCisgICAg
dmlzaXRvci5hZGRPcGFxdWVSb290KG1fYm91bmRDb3B5UmVhZEJ1ZmZlci5nZXQoKSk7CisgICAg
dmlzaXRvci5hZGRPcGFxdWVSb290KG1fYm91bmRDb3B5V3JpdGVCdWZmZXIuZ2V0KCkpOworICAg
IHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2JvdW5kUGl4ZWxQYWNrQnVmZmVyLmdldCgpKTsKKyAg
ICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9ib3VuZFBpeGVsVW5wYWNrQnVmZmVyLmdldCgpKTsK
KyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVy
LmdldCgpKTsKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9ib3VuZFVuaWZvcm1CdWZmZXIu
Z2V0KCkpOworCisgICAgZm9yIChhdXRvJiBidWZmZXIgOiBtX2JvdW5kSW5kZXhlZFVuaWZvcm1C
dWZmZXJzKQorICAgICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoYnVmZmVyLmdldCgpKTsKKwor
ICAgIGZvciAoYXV0byYgZW50cnkgOiBtX2FjdGl2ZVF1ZXJpZXMpCisgICAgICAgIHZpc2l0b3Iu
YWRkT3BhcXVlUm9vdChlbnRyeS52YWx1ZS5nZXQoKSk7CisKKyAgICBmb3IgKGF1dG8mIGVudHJ5
IDogbV9ib3VuZFNhbXBsZXJzKQorICAgICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoZW50cnku
Z2V0KCkpOworfQorCiBHQ0dMZW51bSBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiYXNlSW50ZXJu
YWxGb3JtYXRGcm9tSW50ZXJuYWxGb3JtYXQoR0NHTGVudW0gaW50ZXJuYWxmb3JtYXQpCiB7CiAg
ICAgLy8gSGFuZGxlcyBzaXplZCwgdW5zaXplZCwgYW5kIGNvbXByZXNzZWQgaW50ZXJuYWwgZm9y
bWF0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRl
cmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmlu
Z0NvbnRleHQuaAppbmRleCA4MTk5ZDhlNjczMGQxNTQ3NzIyZTJlZTAzYzFlZTY3MmQwNzQzOWFj
Li4yODliMDA1NTE2N2UyMTIzMjBjZjU4NWJlODY3YjU4ZmUyZWI5NjkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0y
NjEsNiArMjYxLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBjaGVja0FuZFRyYW5zbGF0ZUF0dGFj
aG1lbnRzKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0NHTGVudW0sIFZlY3RvcjxHQ0dMZW51
bT4mKTsKIAorICAgIHZvaWQgYWRkTWVtYmVyc1RvT3BhcXVlUm9vdHMoSlNDOjpTbG90VmlzaXRv
ciYpIG92ZXJyaWRlOworCiBwcml2YXRlOgogICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQoQ2Fu
dmFzQmFzZSYsIEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyk7CiAgICAgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dChDYW52YXNCYXNlJiwgUmVmPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiYmLCBH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xCdWZmZXIuaWRsCmluZGV4IDZlMmFiOWM1N2JmMTUyNjYzMWY2NTZjZWE1MTk3MTk3OTA5
NmFhNTcuLmRhNDcwMzU2NGI2MDQ4YTk0NjBkMzJlOTlkMWQ1Y2M1ZDZjZTFhYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwKQEAgLTI1LDUgKzI1LDYgQEAK
IAogWwogICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1w
bAogXSBpbnRlcmZhY2UgV2ViR0xCdWZmZXIgewogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAppbmRleCA0MmI5Y2NmNDIzZTIwMzBkZjY0
YzFmNjU5NGJhZDM5ZTVlZGI5YjFjLi4xYzI3NDM5MWE4YzlhMWQ1MGIzODAxNzAwY2JiNGMxNzlj
Y2M0YjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRl
eHRHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
R3JvdXAuY3BwCkBAIC01MCw2ICs1MCwxNyBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCYgV2Vi
R0xDb250ZXh0R3JvdXA6OmdldEFHcmFwaGljc0NvbnRleHRHTCgpCiAgICAgcmV0dXJuICooKm1f
Y29udGV4dHMuYmVnaW4oKSktPmdyYXBoaWNzQ29udGV4dEdMKCk7CiB9CiAKK1dURjo6TG9jayYg
V2ViR0xDb250ZXh0R3JvdXA6Om9iamVjdEdyYXBoTG9ja0ZvckFDb250ZXh0KCkKK3sKKyAgICBB
U1NFUlQoIW1fY29udGV4dHMuaXNFbXB0eSgpKTsKKyAgICAvLyBTaW5jZSB0aGUgV0VCR0xfc2hh
cmVkX29iamVjdHMgZXh0ZW5zaW9uIG5ldmVyIHNoaXBwZWQsIGFuZCBpcworICAgIC8vIHVubGlr
ZWx5IHRvLCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gV2ViR0xDb250ZXh0T2JqZWN0J3MKKyAgICAv
LyBpbXBsZW1lbnRhdGlvbi4gSWYgdGhlcmUgd2VyZSB0aGUgcG9zc2liaWxpdHkgb2YgV2ViR0wg
b2JqZWN0cworICAgIC8vIGJlaW5nIHNoYXJlZCBiZXR3ZWVuIG11bHRpcGxlIGNvbnRleHRzLCB0
aGlzIHdvdWxkIGhhdmUgdG8gYmUKKyAgICAvLyByZXRob3VnaHQuCisgICAgcmV0dXJuICgqbV9j
b250ZXh0cy5iZWdpbigpKS0+b2JqZWN0R3JhcGhMb2NrKCk7Cit9CisKIHZvaWQgV2ViR0xDb250
ZXh0R3JvdXA6OmFkZENvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY29udGV4dCkK
IHsKICAgICBtX2NvbnRleHRzLmFkZCgmY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaAppbmRleCA2M2QxZDI5MDE5YTcxZDc3OGVjZWMz
YzkxM2ZiNGYxYWIxYTUyMDViLi5kYjU0NjA1N2NhZjlmNDdlNWYyMjVkMzBjOGQwMjRlOGZiYmRi
ZjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRH
cm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3Vw
LmgKQEAgLTI5LDYgKzI5LDEwIEBACiAKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmgiCiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTG9jazsKK30KKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBXZWJHTENvbnRleHRHcm91cCA6IHB1YmxpYyBSZWZDb3VudGVkPFdl
YkdMQ29udGV4dEdyb3VwPiB7CkBAIC00Myw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
bW92ZU9iamVjdChXZWJHTFNoYXJlZE9iamVjdCYpOwogCiAgICAgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wmIGdldEFHcmFwaGljc0NvbnRleHRHTCgpOworICAgIFdURjo6TG9jayYgb2JqZWN0R3Jh
cGhMb2NrRm9yQUNvbnRleHQoKTsKIAogICAgIHZvaWQgbG9zZUNvbnRleHRHcm91cChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpMb3N0Q29udGV4dE1vZGUpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0LmNwcAppbmRleCA0NTE0MTI4YjUx
Zjg0ZWI3YzcwYjgwMjFmNTlkODc1ZDFmNTU4YzEzLi43ZWQ3OGZhNDM4OWY4NWRkMTQzYTdjZTVj
YjI4ODE4NzZjZjliNGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTENvbnRleHRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQ29udGV4dE9iamVjdC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoV0VCR0wp
CiAKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCisjaW5jbHVkZSA8d3Rm
L0xvY2suaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Myw2ICs1NCwxMyBAQCB2b2lk
IFdlYkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29udGV4dCgpCiAgICAgfQogfQogCitXVEY6Okxv
Y2smIFdlYkdMQ29udGV4dE9iamVjdDo6b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpCit7Cisg
ICAgLy8gU2hvdWxkIG5vdCBjYWxsIHRoaXMgaWYgdGhlIG9iamVjdCBvciBjb250ZXh0IGhhcyBi
ZWVuIGRlbGV0ZWQuCisgICAgQVNTRVJUKG1fY29udGV4dCk7CisgICAgcmV0dXJuIG1fY29udGV4
dC0+b2JqZWN0R3JhcGhMb2NrKCk7Cit9CisKIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBXZWJH
TENvbnRleHRPYmplY3Q6OmdldEFHcmFwaGljc0NvbnRleHRHTCgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fY29udGV4dCA/IG1fY29udGV4dC0+Z3JhcGhpY3NDb250ZXh0R0woKSA6IG51bGxwdHI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oCmlu
ZGV4IGMzOGU2NDg3MjNlNDdiNTcyM2YwOTA1Yjg1ZGIyMWYzOGIxMTUxZDMuLmY2ODE2ZmNhYmMy
OTdkMzgxMjUzZDQwMDU1Y2Y0NmQ0YWFlMjc2OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oCkBAIC00OSw2ICs0OSw4IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgZGV0YWNoQ29udGV4dCgpOwogCisgICAgV1RGOjpMb2NrJiBvYmplY3RHcmFw
aExvY2tGb3JDb250ZXh0KCkgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICBXZWJHTENvbnRl
eHRPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCmluZGV4IGU2ZjQzODMzZGM1MjUw
NzRjNzQ5MmY4MDc3MWY4YTVmOTYxZWVmZTYuLmRjNTcyNWQ0ZGZlNTAzYWU0NjU3MzkyYjUzZjRk
NDE0NmRlOTkwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
RnJhbWVidWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJh
bWVidWZmZXIuY3BwCkBAIC0zMiw2ICszMiw5IEBACiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0R3Jv
dXAuaCIKICNpbmNsdWRlICJXZWJHTERyYXdCdWZmZXJzLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9y
Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0b3JJbmxpbmVzLmg+CisjaW5j
bHVkZSA8d3RmL0xvY2suaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Niw2ICs1OSw3
IEBAIG5hbWVzcGFjZSB7CiAgICAgICAgIHZvaWQgb25EZXRhY2hlZChHcmFwaGljc0NvbnRleHRH
TE9wZW5HTCopIG92ZXJyaWRlOwogICAgICAgICB2b2lkIGF0dGFjaChHcmFwaGljc0NvbnRleHRH
TE9wZW5HTCosIEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gYXR0YWNobWVudCkgb3ZlcnJpZGU7
CiAgICAgICAgIHZvaWQgdW5hdHRhY2goR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBHQ0dMZW51
bSB0YXJnZXQsIEdDR0xlbnVtIGF0dGFjaG1lbnQpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGFk
ZE1lbWJlcnNUb09wYXF1ZVJvb3RzKEpTQzo6U2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKIAogICAg
ICAgICBXZWJHTFJlbmRlcmJ1ZmZlckF0dGFjaG1lbnQoKSB7IH07CiAKQEAgLTEzNyw2ICsxNDEs
MTEgQEAgbmFtZXNwYWNlIHsKICAgICAgICAgICAgIGNvbnRleHQtPmZyYW1lYnVmZmVyUmVuZGVy
YnVmZmVyKHRhcmdldCwgYXR0YWNobWVudCwgR3JhcGhpY3NDb250ZXh0R0w6OlJFTkRFUkJVRkZF
UiwgMCk7CiAgICAgfQogCisgICAgdm9pZCBXZWJHTFJlbmRlcmJ1ZmZlckF0dGFjaG1lbnQ6OmFk
ZE1lbWJlcnNUb09wYXF1ZVJvb3RzKEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCisgICAgewor
ICAgICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9yZW5kZXJidWZmZXIuZ2V0KCkpOworICAg
IH0KKwogICAgIGNsYXNzIFdlYkdMVGV4dHVyZUF0dGFjaG1lbnQgOiBwdWJsaWMgV2ViR0xGcmFt
ZWJ1ZmZlcjo6V2ViR0xBdHRhY2htZW50IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBS
ZWY8V2ViR0xGcmFtZWJ1ZmZlcjo6V2ViR0xBdHRhY2htZW50PiBjcmVhdGUoV2ViR0xUZXh0dXJl
KiwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMaW50IGxheWVyKTsKQEAgLTE1
Niw2ICsxNjUsNyBAQCBuYW1lc3BhY2UgewogICAgICAgICB2b2lkIG9uRGV0YWNoZWQoR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wqKSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBhdHRhY2goR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wqLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xlbnVtIGF0dGFjaG1lbnQp
IG92ZXJyaWRlOwogICAgICAgICB2b2lkIHVuYXR0YWNoKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KiwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBhdHRhY2htZW50KSBvdmVycmlkZTsKKyAgICAg
ICAgdm9pZCBhZGRNZW1iZXJzVG9PcGFxdWVSb290cyhKU0M6OlNsb3RWaXNpdG9yJikgb3ZlcnJp
ZGU7CiAKICAgICAgICAgV2ViR0xUZXh0dXJlQXR0YWNobWVudCgpIHsgfTsKIApAQCAtMjUzLDYg
KzI2MywxMSBAQCBuYW1lc3BhY2UgewogI2VuZGlmCiAgICAgfQogCisgICAgdm9pZCBXZWJHTFRl
eHR1cmVBdHRhY2htZW50OjphZGRNZW1iZXJzVG9PcGFxdWVSb290cyhKU0M6OlNsb3RWaXNpdG9y
JiB2aXNpdG9yKQorICAgIHsKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fdGV4dHVy
ZS5nZXQoKSk7CisgICAgfQorCiAjaWYgIVVTRShBTkdMRSkKICAgICBib29sIGlzQXR0YWNobWVu
dENvbXBsZXRlKFdlYkdMRnJhbWVidWZmZXI6OldlYkdMQXR0YWNobWVudCogYXR0YWNoZWRPYmpl
Y3QsIEdDR0xlbnVtIGF0dGFjaG1lbnQsIGNvbnN0IGNoYXIqKiByZWFzb24pCiAgICAgewpAQCAt
MzczLDYgKzM4OCwxMiBAQCBXZWJHTEZyYW1lYnVmZmVyOjpXZWJHTEF0dGFjaG1lbnQqIFdlYkdM
RnJhbWVidWZmZXI6OmdldEF0dGFjaG1lbnQoR0NHTGVudW0gYXR0YQogCiB2b2lkIFdlYkdMRnJh
bWVidWZmZXI6OnJlbW92ZUF0dGFjaG1lbnRGcm9tQm91bmRGcmFtZWJ1ZmZlcihHQ0dMZW51bSB0
YXJnZXQsIEdDR0xlbnVtIGF0dGFjaG1lbnQpCiB7CisgICAgaWYgKCFjb250ZXh0KCkpIHsKKyAg
ICAgICAgLy8gQ29udGV4dCBoYXMgYmVlbiBkZWxldGVkIC0gc2hvdWxkIG5vdCBiZSBjYWxsaW5n
IHRoaXMuCisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayhvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkpOworCiAjaWYgQVNTRVJUX0VOQUJMRUQKICAg
ICBBU1NFUlQoaXNCb3VuZCh0YXJnZXQpKTsKICNlbHNlCkBAIC01NDEsNiArNTYyLDggQEAgYm9v
bCBXZWJHTEZyYW1lYnVmZmVyOjpoYXNTdGVuY2lsQnVmZmVyKCkgY29uc3QKIAogdm9pZCBXZWJH
TEZyYW1lYnVmZmVyOjpkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBj
b250ZXh0M2QsIFBsYXRmb3JtR0xPYmplY3Qgb2JqZWN0KQogeworICAgIC8vIG9iamVjdEdyYXBo
TG9ja0ZvckNvbnRleHQoKSBpcyBhbHJlYWR5IGhlbGQgaW4gV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6ZGVsZXRlRnJhbWVidWZmZXIuCisKICAgICBmb3IgKGF1dG8mIGF0dGFjaG1lbnQgOiBt
X2F0dGFjaG1lbnRzLnZhbHVlcygpKQogICAgICAgICBhdHRhY2htZW50LT5vbkRldGFjaGVkKGNv
bnRleHQzZCk7CiAKQEAgLTU0OSw2ICs1NzIsMTIgQEAgdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpk
ZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QsIFBsYXQK
IAogYm9vbCBXZWJHTEZyYW1lYnVmZmVyOjppbml0aWFsaXplQXR0YWNobWVudHMoR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wqIGczZCwgY29uc3QgY2hhcioqIHJlYXNvbikKIHsKKyAgICBpZiAoIWNv
bnRleHQoKSkgeworICAgICAgICAvLyBDb250ZXh0IGhhcyBiZWVuIGRlbGV0ZWQgLSBzaG91bGQg
bm90IGJlIGNhbGxpbmcgdGhpcy4KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKSk7CisKICAg
ICBBU1NFUlQob2JqZWN0KCkpOwogICAgIEdDR0xiaXRmaWVsZCBtYXNrID0gMDsKIApAQCAtNjg5
LDggKzcxOCwyMCBAQCBHQ0dMZW51bSBXZWJHTEZyYW1lYnVmZmVyOjpnZXREcmF3QnVmZmVyKEdD
R0xlbnVtIGRyYXdCdWZmZXIpCiAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dEdMOjpOT05FOwog
fQogCit2b2lkIFdlYkdMRnJhbWVidWZmZXI6OmFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKEpTQzo6
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgZm9yIChhdXRvJiBlbnRyeSA6IG1fYXR0YWNo
bWVudHMpCisgICAgICAgIGVudHJ5LnZhbHVlLT5hZGRNZW1iZXJzVG9PcGFxdWVSb290cyh2aXNp
dG9yKTsKK30KKwogdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpzZXRBdHRhY2htZW50SW50ZXJuYWwo
R0NHTGVudW0gYXR0YWNobWVudCwgR0NHTGVudW0gdGV4VGFyZ2V0LCBXZWJHTFRleHR1cmUqIHRl
eHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xpbnQgbGF5ZXIpCiB7CisgICAgaWYgKCFjb250ZXh0
KCkpIHsKKyAgICAgICAgLy8gQ29udGV4dCBoYXMgYmVlbiBkZWxldGVkIC0gc2hvdWxkIG5vdCBi
ZSBjYWxsaW5nIHRoaXMuCisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkpOworCiAgICAgcmVtb3ZlQXR0
YWNobWVudEludGVybmFsKGF0dGFjaG1lbnQpOwogICAgIGlmICh0ZXh0dXJlICYmIHRleHR1cmUt
Pm9iamVjdCgpKSB7CiAgICAgICAgIG1fYXR0YWNobWVudHMuc2V0KGF0dGFjaG1lbnQsIFdlYkdM
VGV4dHVyZUF0dGFjaG1lbnQ6OmNyZWF0ZSh0ZXh0dXJlLCB0ZXhUYXJnZXQsIGxldmVsLCBsYXll
cikpOwpAQCAtNzAxLDYgKzc0MiwxMiBAQCB2b2lkIFdlYkdMRnJhbWVidWZmZXI6OnNldEF0dGFj
aG1lbnRJbnRlcm5hbChHQ0dMZW51bSBhdHRhY2htZW50LCBHQ0dMZW51bSB0ZXhUYQogCiB2b2lk
IFdlYkdMRnJhbWVidWZmZXI6OnNldEF0dGFjaG1lbnRJbnRlcm5hbChHQ0dMZW51bSBhdHRhY2ht
ZW50LCBXZWJHTFJlbmRlcmJ1ZmZlciogcmVuZGVyYnVmZmVyKQogeworICAgIGlmICghY29udGV4
dCgpKSB7CisgICAgICAgIC8vIENvbnRleHQgaGFzIGJlZW4gZGVsZXRlZCAtIHNob3VsZCBub3Qg
YmUgY2FsbGluZyB0aGlzLgorICAgICAgICByZXR1cm47CisgICAgfQorICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sob2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpKTsKKwogICAgIHJlbW92ZUF0
dGFjaG1lbnRJbnRlcm5hbChhdHRhY2htZW50KTsKICAgICBpZiAocmVuZGVyYnVmZmVyICYmIHJl
bmRlcmJ1ZmZlci0+b2JqZWN0KCkpIHsKICAgICAgICAgbV9hdHRhY2htZW50cy5zZXQoYXR0YWNo
bWVudCwgV2ViR0xSZW5kZXJidWZmZXJBdHRhY2htZW50OjpjcmVhdGUocmVuZGVyYnVmZmVyKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmgKaW5kZXgg
MWIyM2ZmMjJjODk0NTE5MDhiMjU5NDJhMWExMDY2NmIxN2E2YTc0Ni4uYmQzOGFmYzNjNzFiNGM4
Yzg1MjkxN2Y0ZDBlNDA1Yjk4NzNhNzI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRnJhbWVidWZmZXIuaApAQCAtMzMsNiArMzMsMTAgQEAKICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAorbmFtZXNwYWNlIEpTQyB7
CitjbGFzcyBTbG90VmlzaXRvcjsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBX
ZWJHTFJlbmRlcmJ1ZmZlcjsKQEAgLTU3LDYgKzYxLDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0
dWFsIHZvaWQgb25EZXRhY2hlZChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCopID0gMDsKICAgICAg
ICAgdmlydHVhbCB2b2lkIGF0dGFjaChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIEdDR0xlbnVt
IHRhcmdldCwgR0NHTGVudW0gYXR0YWNobWVudCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
dW5hdHRhY2goR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xl
bnVtIGF0dGFjaG1lbnQpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1lbWJlcnNUb09w
YXF1ZVJvb3RzKEpTQzo6U2xvdFZpc2l0b3ImKSA9IDA7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAg
ICAgIFdlYkdMQXR0YWNobWVudCgpOwpAQCAtMTA1LDYgKzExMCw4IEBAIHB1YmxpYzoKIAogICAg
IEdDR0xlbnVtIGdldERyYXdCdWZmZXIoR0NHTGVudW0pOwogCisgICAgdm9pZCBhZGRNZW1iZXJz
VG9PcGFxdWVSb290cyhKU0M6OlNsb3RWaXNpdG9yJik7CisKIHByaXZhdGU6CiAgICAgV2ViR0xG
cmFtZWJ1ZmZlcihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaWRsIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5pZGwKaW5kZXggN2M2Y2M0NTk1ZDk3
MzQ0ODVlNmNlODk5MDEyOGEyNjA4Y2U2ZjkyMy4uYjEzNzdhMzY5OTcxNzIzMDNmZjg2ZWRlYzhh
MTNkNGVhYTI0YTk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xGcmFtZWJ1ZmZlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xG
cmFtZWJ1ZmZlci5pZGwKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiBbCi0gICAgQ29uZGl0aW9u
YWw9V0VCR0wKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxl
PUltcGwKIF0gaW50ZXJmYWNlIFdlYkdMRnJhbWVidWZmZXIgewogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oCmluZGV4IDFmYWEyMDU4YzgyNWQ3ZTM5NDY1YjY4MmY4
YWIwOTI5MzcwNTA3YTYuLmNhY2JjYTcwZjQ5ZjJhYzIyMDg0ZTdmNjg4YzQ3M2RhNjg4M2RmYWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuaApAQCAtMzAsNiArMzAs
MTAgQEAKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzR0wuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIExvY2s7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w7CkBAIC01OCw2ICs2Miwx
MyBAQCBwdWJsaWM6CiAgICAgLy8gVHJ1ZSBpZiB0aGlzIG9iamVjdCBiZWxvbmdzIHRvIHRoZSBn
cm91cCBvciBjb250ZXh0LgogICAgIHZpcnR1YWwgYm9vbCB2YWxpZGF0ZShjb25zdCBXZWJHTENv
bnRleHRHcm91cCosIGNvbnN0IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKSBjb25zdCA9IDA7
CiAKKyAgICAvLyBSZXR1cm5zIHRoZSBvYmplY3QgZ3JhcGggbG9jayBhc3NvY2lhdGVkIHdpdGgg
dGhlIGNvbnRleHQgbW9zdAorICAgIC8vIGNsb3NlbHkgYXNzb2NpYXRlZCB3aXRoIHRoaXMgb2Jq
ZWN0LiBTaW5jZSB0aGUKKyAgICAvLyBXRUJHTF9zaGFyZWRfb2JqZWN0cyBleHRlbnNpb24gc3Bl
Y2lmaWNhdGlvbiBuZXZlciBzaGlwcGVkIChhbmQKKyAgICAvLyBpcyB1bmxpa2VseSB0byksIHRo
aXMgYmFzaWNhbGx5IHJldHVybnMgdGhlIHNhbWUgcmVzdWx0IGZvcgorICAgIC8vIGJvdGggY29u
dGV4dCBvYmplY3RzIGFuZCBzaGFyZWQgb2JqZWN0cy4KKyAgICB2aXJ0dWFsIFdURjo6TG9jayYg
b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpID0gMDsKKwogcHJvdGVjdGVkOgogICAgIFdlYkdM
T2JqZWN0KCkgPSBkZWZhdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFByb2dyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQ
cm9ncmFtLmNwcAppbmRleCA0MGU3ODA3ZmUxNGI1NGRlZjQ2MGY4YTgzZTU3ZjhjZDA0YzdmMjE3
Li5kZWU4NTcyYzcyOGZiOTEzN2MxYTNmM2VjMDM4YTJiYjYwYzE2YmJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKQEAgLTMzLDYgKzMzLDggQEAKICNp
bmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuaCIKICNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1Nsb3RWaXNpdG9yLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0
b3JJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KIApAQCAtMTU4LDYgKzE2MCw3IEBAIFdlYkdMU2hhZGVyKiBXZWJHTFByb2dy
YW06OmdldEF0dGFjaGVkU2hhZGVyKEdDR0xlbnVtIHR5cGUpCiAKIGJvb2wgV2ViR0xQcm9ncmFt
OjphdHRhY2hTaGFkZXIoV2ViR0xTaGFkZXIqIHNoYWRlcikKIHsKKyAgICAvLyBDb3ZlcmVkIHVu
ZGVyIHRoZSBvYmplY3RHcmFwaExvY2sgaW4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YXR0
YWNoU2hhZGVyLgogICAgIGlmICghc2hhZGVyIHx8ICFzaGFkZXItPm9iamVjdCgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgc3dpdGNoIChzaGFkZXItPmdldFR5cGUoKSkgewpAQCAtMTk2
LDYgKzE5OSwxMiBAQCBib29sIFdlYkdMUHJvZ3JhbTo6ZGV0YWNoU2hhZGVyKFdlYkdMU2hhZGVy
KiBzaGFkZXIpCiAgICAgfQogfQogCit2b2lkIFdlYkdMUHJvZ3JhbTo6YWRkTWVtYmVyc1RvT3Bh
cXVlUm9vdHMoSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICB2aXNpdG9yLmFkZE9w
YXF1ZVJvb3QobV92ZXJ0ZXhTaGFkZXIuZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9v
dChtX2ZyYWdtZW50U2hhZGVyLmdldCgpKTsKK30KKwogdm9pZCBXZWJHTFByb2dyYW06OmNhY2hl
QWN0aXZlQXR0cmliTG9jYXRpb25zKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2Qp
CiB7CiAgICAgbV9hY3RpdmVBdHRyaWJMb2NhdGlvbnMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKaW5kZXggODA4ZmQyMGYwOWMwM2NjZTQ2MjczOGQ1
NWI2Nzc5Zjk2ZmVkZDJlNy4uNzJiOGRjYzIyN2VmNmJiMzM4OGQ5NGM1YWQ0MDlhYzNlMDQyNzg2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKQEAgLTM0LDYg
KzM0LDEwIEBACiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgU2xvdFZpc2l0b3I7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKQEAgLTgwLDYgKzg0LDgg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9yZXF1aXJlZFRyYW5zZm9ybUZlZWRiYWNrQnVm
ZmVyQ291bnQ7CiAgICAgfQogCisgICAgdm9pZCBhZGRNZW1iZXJzVG9PcGFxdWVSb290cyhKU0M6
OlNsb3RWaXNpdG9yJik7CisKIHByaXZhdGU6CiAgICAgV2ViR0xQcm9ncmFtKFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xQcm9ncmFtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJv
Z3JhbS5pZGwKaW5kZXggN2MxODBlMmI1ZGRhMmNkMDZhMzMyNjI0NmZlMmUwYjZjMTAzYzc2YS4u
YjI2OGMwN2VlNzk0MWNmYzZjZWZlOWIyMzZiY2M4YzNmMzJiMGQxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaWRsCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8K
IAogWwotICAgIENvbmRpdGlvbmFsPVdFQkdMCisgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAg
R2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsCiBdIGludGVyZmFjZSBXZWJHTFByb2dyYW0gewogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuaWRsIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5pZGwKaW5kZXggMjNkMzUzYzQ2
YTU1OTBhODFhNjc5NWY0ZGRlMTU1ZmE5Mzc4MjNhYS4uN2QzOTY5NmViZWUzOTU0Y2M2NzVhM2Vj
ZmM4ZTljYjVhMzdjNjU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xRdWVyeS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVy
eS5pZGwKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiBbCi0gICAgQ29uZGl0aW9uYWw9V0VCR0wK
KyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwKIF0g
aW50ZXJmYWNlIFdlYkdMUXVlcnkgewogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbAppbmRleCBmYjg1NWE1NmNlNjE3NmIzZTQ0NzRkZjg5
N2EyMmQwOTQ0YzU5M2Y2Li5mZDYxZjhkNjJjM2ZhZThkZjMxOTU4ZjFlYWQzOTc4ZjBhYTYxNTc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZl
ci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIu
aWRsCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogWwotICAgIENvbmRpdGlvbmFsPVdFQkdMCisg
ICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsCiBdIGlu
dGVyZmFjZSBXZWJHTFJlbmRlcmJ1ZmZlciB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCBhMTA3
Y2M3ZGEzNDkzOTk3YjdiYzRhYTI1YjFmYmJmM2YwNTAxNjU2Li40Y2M3ZGI3NzdjYzAwMmRjMzU1
ZWRlNTNlOGYyMTczNjJjY2ZjMzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMTAyLDYgKzEwMiw4
IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90
VmlzaXRvci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9ySW5saW5lcy5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlJbmxpbmVzLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvVWludDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFy
aXRobWV0aWMuaD4KQEAgLTEzMTksNiArMTMyMSw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6YWN0aXZlVGV4dHVyZShHQ0dMZW51bSB0ZXh0dXJlKQogCiB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmF0dGFjaFNoYWRlcihXZWJHTFByb2dyYW0qIHByb2dyYW0sIFdl
YkdMU2hhZGVyKiBzaGFkZXIpCiB7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhvYmplY3RH
cmFwaExvY2soKSk7CisKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxp
ZGF0ZVdlYkdMUHJvZ3JhbU9yU2hhZGVyKCJhdHRhY2hTaGFkZXIiLCBwcm9ncmFtKSB8fCAhdmFs
aWRhdGVXZWJHTFByb2dyYW1PclNoYWRlcigiYXR0YWNoU2hhZGVyIiwgc2hhZGVyKSkKICAgICAg
ICAgcmV0dXJuOwogICAgIGlmICghcHJvZ3JhbS0+YXR0YWNoU2hhZGVyKHNoYWRlcikpIHsKQEAg
LTE0MjIsNiArMTQyNiw4IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRh
dGVBbmRDYWNoZUJ1ZmZlckJpbmRpbmcoY29uc3QgY2hhciogZnVuY3RpCiAKIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6YmluZEJ1ZmZlcihHQ0dMZW51bSB0YXJnZXQsIFdlYkdMQnVm
ZmVyKiBidWZmZXIpCiB7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhvYmplY3RHcmFwaExv
Y2soKSk7CisKICAgICBpZiAoIWNoZWNrT2JqZWN0VG9CZUJvdW5kKCJiaW5kQnVmZmVyIiwgYnVm
ZmVyKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNDMzLDYgKzE0MzksOCBAQCB2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmJpbmRCdWZmZXIoR0NHTGVudW0gdGFyZ2V0LCBXZWJHTEJ1
ZmZlciogYnVmZmVyKQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJpbmRGcmFt
ZWJ1ZmZlcihHQ0dMZW51bSB0YXJnZXQsIFdlYkdMRnJhbWVidWZmZXIqIGJ1ZmZlcikKIHsKKyAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG9iamVjdEdyYXBoTG9jaygpKTsKKwogICAgIGlmICgh
Y2hlY2tPYmplY3RUb0JlQm91bmQoImJpbmRGcmFtZWJ1ZmZlciIsIGJ1ZmZlcikpCiAgICAgICAg
IHJldHVybjsKIApAQCAtMTQ0Niw2ICsxNDU0LDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpiaW5kRnJhbWVidWZmZXIoR0NHTGVudW0gdGFyZ2V0LCBXZWJHTEZyYW1lYnVmZmUK
IAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpiaW5kUmVuZGVyYnVmZmVyKEdDR0xl
bnVtIHRhcmdldCwgV2ViR0xSZW5kZXJidWZmZXIqIHJlbmRlckJ1ZmZlcikKIHsKKyAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG9iamVjdEdyYXBoTG9jaygpKTsKKwogICAgIGlmICghY2hlY2tP
YmplY3RUb0JlQm91bmQoImJpbmRSZW5kZXJidWZmZXIiLCByZW5kZXJCdWZmZXIpKQogICAgICAg
ICByZXR1cm47CiAgICAgaWYgKHRhcmdldCAhPSBHcmFwaGljc0NvbnRleHRHTDo6UkVOREVSQlVG
RkVSKSB7CkBAIC0xNDYwLDYgKzE0NzAsOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmJpbmRSZW5kZXJidWZmZXIoR0NHTGVudW0gdGFyZ2V0LCBXZWJHTFJlbmRlcmJ1ZgogCiB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJpbmRUZXh0dXJlKEdDR0xlbnVtIHRhcmdl
dCwgV2ViR0xUZXh0dXJlKiB0ZXh0dXJlKQogeworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
b2JqZWN0R3JhcGhMb2NrKCkpOworCiAgICAgaWYgKCFjaGVja09iamVjdFRvQmVCb3VuZCgiYmlu
ZFRleHR1cmUiLCB0ZXh0dXJlKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICh0ZXh0dXJlICYm
IHRleHR1cmUtPmdldFRhcmdldCgpICYmIHRleHR1cmUtPmdldFRhcmdldCgpICE9IHRhcmdldCkg
ewpAQCAtMjAwMiwxMSArMjAxNCwxOSBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmRlbGV0ZU9iamVjdChXZWJHTE9iamVjdCogb2JqZWN0KQogCiB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OnVuY2FjaGVEZWxldGVkQnVmZmVyKFdlYkdMQnVmZmVyKiBidWZmZXIpCiB7
CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhvYmplY3RHcmFwaExvY2soKSk7CisKICAgICBS
RU1PVkVfQlVGRkVSX0ZST01fQklORElORyhtX2JvdW5kQXJyYXlCdWZmZXIpOwogCiAgICAgbV9i
b3VuZFZlcnRleEFycmF5T2JqZWN0LT51bmJpbmRCdWZmZXIoKmJ1ZmZlcik7CiB9CiAKK3ZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChXZWJH
TFZlcnRleEFycmF5T2JqZWN0QmFzZSogYXJyYXlPYmplY3QpCit7CisgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhvYmplY3RHcmFwaExvY2soKSk7CisgICAgbV9ib3VuZFZlcnRleEFycmF5T2Jq
ZWN0ID0gYXJyYXlPYmplY3QgPyBhcnJheU9iamVjdCA6IG1fZGVmYXVsdFZlcnRleEFycmF5T2Jq
ZWN0OworfQorCiAjdW5kZWYgUkVNT1ZFX0JVRkZFUl9GUk9NX0JJTkRJTkcKIAogdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVCdWZmZXIoV2ViR0xCdWZmZXIqIGJ1ZmZlcikK
QEAgLTIwMTksNiArMjAzOSw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVs
ZXRlQnVmZmVyKFdlYkdMQnVmZmVyKiBidWZmZXIpCiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6ZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xGcmFtZWJ1ZmZlciogZnJhbWVidWZmZXIp
CiB7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhvYmplY3RHcmFwaExvY2soKSk7CisKICAg
ICBpZiAoIWRlbGV0ZU9iamVjdChmcmFtZWJ1ZmZlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAt
MjExOCw2ICsyMTQwLDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZXB0aFJh
bmdlKEdDR0xmbG9hdCB6TmVhciwgR0NHTGZsb2F0IHpGYXIpCiAKIHZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6ZGV0YWNoU2hhZGVyKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgV2ViR0xT
aGFkZXIqIHNoYWRlcikKIHsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG9iamVjdEdyYXBo
TG9jaygpKTsKKwogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlkYXRl
V2ViR0xQcm9ncmFtT3JTaGFkZXIoImRldGFjaFNoYWRlciIsIHByb2dyYW0pIHx8ICF2YWxpZGF0
ZVdlYkdMUHJvZ3JhbU9yU2hhZGVyKCJkZXRhY2hTaGFkZXIiLCBzaGFkZXIpKQogICAgICAgICBy
ZXR1cm47CiAgICAgaWYgKCFwcm9ncmFtLT5kZXRhY2hTaGFkZXIoc2hhZGVyKSkgewpAQCAtNTg5
NSw2ICs1OTE5LDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmlmb3JtTWF0
cml4NGZ2KGNvbnN0IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2MKIAogdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjp1c2VQcm9ncmFtKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSkKIHsKKyAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG9iamVjdEdyYXBoTG9jaygpKTsKKwogICAgIGlmICgh
Y2hlY2tPYmplY3RUb0JlQm91bmQoInVzZVByb2dyYW0iLCBwcm9ncmFtKSkKICAgICAgICAgcmV0
dXJuOwogICAgIGlmIChwcm9ncmFtICYmICFwcm9ncmFtLT5nZXRMaW5rU3RhdHVzKCkpIHsKQEAg
LTU5NjAsNiArNTk4Niw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4
QXR0cmliNGZ2KEdDR0x1aW50IGluZGV4LCBGbG9hdDMyTGlzdCYmIHYpCiAKIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliUG9pbnRlcihHQ0dMdWludCBpbmRleCwg
R0NHTGludCBzaXplLCBHQ0dMZW51bSB0eXBlLCBHQ0dMYm9vbGVhbiBub3JtYWxpemVkLCBHQ0dM
c2l6ZWkgc3RyaWRlLCBsb25nIGxvbmcgb2Zmc2V0KQogeworICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sob2JqZWN0R3JhcGhMb2NrKCkpOworCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRp
bmcoKSkKICAgICAgICAgcmV0dXJuOwogICAgIHN3aXRjaCAodHlwZSkgewpAQCAtNzc2NCw2ICs3
NzkyLDQ1IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGlzcGF0Y2hDb250ZXh0
Q2hhbmdlZE5vdGlmaWNhdGlvbigpCiAgICAgcXVldWVUYXNrVG9EaXNwYXRjaEV2ZW50KCpjYW52
YXMsIFRhc2tTb3VyY2U6OldlYkdMLCBXZWJHTENvbnRleHRFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS53ZWJnbGNvbnRleHRjaGFuZ2VkRXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpZZXMsIGVtcHR5U3RyaW5nKCkpKTsKIH0KIAordm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjphZGRNZW1iZXJzVG9PcGFxdWVSb290cyhKU0M6OlNsb3RWaXNp
dG9yJiB2aXNpdG9yKQoreworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3JhcGhM
b2NrKCkpOworCisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fYm91bmRBcnJheUJ1ZmZlci5n
ZXQoKSk7CisKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9ib3VuZFZlcnRleEFycmF5T2Jq
ZWN0LmdldCgpKTsKKyAgICBpZiAobV9ib3VuZFZlcnRleEFycmF5T2JqZWN0KQorICAgICAgICBt
X2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKHZpc2l0b3Ip
OworCisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fY3VycmVudFByb2dyYW0uZ2V0KCkpOwor
ICAgIGlmIChtX2N1cnJlbnRQcm9ncmFtKQorICAgICAgICBtX2N1cnJlbnRQcm9ncmFtLT5hZGRN
ZW1iZXJzVG9PcGFxdWVSb290cyh2aXNpdG9yKTsKKworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9v
dChtX2ZyYW1lYnVmZmVyQmluZGluZy5nZXQoKSk7CisgICAgaWYgKG1fZnJhbWVidWZmZXJCaW5k
aW5nKQorICAgICAgICBtX2ZyYW1lYnVmZmVyQmluZGluZy0+YWRkTWVtYmVyc1RvT3BhcXVlUm9v
dHModmlzaXRvcik7CisKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9yZW5kZXJidWZmZXJC
aW5kaW5nLmdldCgpKTsKKworICAgIGZvciAoYXV0byYgdW5pdCA6IG1fdGV4dHVyZVVuaXRzKSB7
CisgICAgICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCh1bml0LnRleHR1cmUyREJpbmRpbmcuZ2V0
KCkpOworICAgICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QodW5pdC50ZXh0dXJlQ3ViZU1hcEJp
bmRpbmcuZ2V0KCkpOworICAgICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QodW5pdC50ZXh0dXJl
M0RCaW5kaW5nLmdldCgpKTsKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHVuaXQudGV4
dHVyZTJEQXJyYXlCaW5kaW5nLmdldCgpKTsKKyAgICB9CisKKyAgICAvLyBFeHRlbnNpb25zJyBJ
REwgZmlsZXMgdXNlIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbFdlYkdMUmVuZGVyaW5nQ29udGV4
dCwKKyAgICAvLyB3aGljaCBjaGVja3MgdG8gc2VlIHdoZXRoZXIgdGhlIGNvbnRleHQgaXMgaW4g
dGhlIG9wYXF1ZSByb290IHNldCAoaXQgaXM7CisgICAgLy8gaXQncyBhZGRlZCBpbiBKU1dlYkdM
UmVuZGVyaW5nQ29udGV4dCAvIEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dCdzIGN1c3RvbQorICAg
IC8vIGJpbmRpbmdzIGNvZGUpLiBGb3IgdGhpcyByZWFzb24gaXQncyB1bm5lY2Vzc2FyeSB0byBl
eHBsaWNpdGx5IGFkZCBvcGFxdWUKKyAgICAvLyByb290cyBmb3IgZXh0ZW5zaW9ucy4KK30KKwor
TG9jayYgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6b2JqZWN0R3JhcGhMb2NrKCkKK3sKKyAg
ICByZXR1cm4gbV9vYmplY3RHcmFwaExvY2s7Cit9CisKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6cHJlcGFyZUZvckRpc3BsYXkoKQogewogICAgIGlmICghbV9jb250ZXh0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZS5oCmluZGV4IDhlN2Y0YTJkNjEzNjU4NWExMzg1OWQzMGVhYzA4NTIzZDJmNGM2YjQuLjIz
ODE0NjNiZjkyNTc3YzE1NjU3Nzc2OTRlOGZhN2IxODU3MzVjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAg
LTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2lu
Y2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAK
ICNpZiBFTkFCTEUoV0VCR0wyKQogI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIK
QEAgLTU2LDYgKzU3LDEwIEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNl
bmRpZgogCituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIFNsb3RWaXNpdG9yOworfQorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFOR0xFSW5zdGFuY2VkQXJyYXlzOwpAQCAtMzk4LDYgKzQw
MywyMyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWN5Y2xlQ29udGV4dCgpIG92ZXJyaWRlOwogICAg
IHZvaWQgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpIG92ZXJyaWRlOwogCisg
ICAgdmlydHVhbCB2b2lkIGFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKEpTQzo6U2xvdFZpc2l0b3Im
KTsKKyAgICAvLyBUaGlzIGxvY2sgbXVzdCBiZSBoZWxkIGFjcm9zcyBhbGwgbXV0YXRpb25zIG9m
IGNvbnRhaW5lcnMgbGlrZQorICAgIC8vIFZlY3RvcnMsIEhhc2hTZXRzLCBldGMuIHdoaWNoIGNv
bnRhaW4gUmVmUHRyPFdlYkdMT2JqZWN0PiwgYW5kCisgICAgLy8gd2hpY2ggYXJlIHRyYXZlcnNl
ZCBieSBhZGRNZW1iZXJzVG9PcGFxdWVSb290cygpIG9yIGFueSBvZiB0aGUKKyAgICAvLyBzaW1p
bGFybHktbmFtZWQgbWV0aG9kcyBpbiBXZWJHTE9iamVjdCBzdWJjbGFzc2VzLgorICAgIC8vCisg
ICAgLy8gRklYTUU6IGNvbnNpZGVyIGNoYW5naW5nIHRoaXMgbWVjaGFuaXNtIHRvIGluc3RlYWQg
cmVjb3JkIHdoZW4KKyAgICAvLyBpbmRpdmlkdWFsIFdlYkdMT2JqZWN0cyBhcmUgbGF0Y2hlZCAv
IHVubGF0Y2hlZCBpbiB0aGUKKyAgICAvLyBjb250ZXh0J3Mgc3RhdGUsIGVpdGhlciBkaXJlY3Rs
eSwgb3IgaW5kaXJlY3RseSB0aHJvdWdoCisgICAgLy8gY29udGFpbmVyIG9iamVjdHMuIElmIHRo
YXQgd2VyZSBkb25lLCB0aGVuIHRoZQorICAgIC8vICJHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwi
IGluIHZhcmlvdXMgV2ViR0wgb2JqZWN0cycgSURMIGZpbGVzCisgICAgLy8gd291bGQgbmVlZCB0
byBiZSBjaGFuZ2VkIHRvIGluc3RlYWQgcXVlcnkgd2hldGhlciB0aGUgb2JqZWN0IGlzCisgICAg
Ly8gY3VycmVudGx5IGxhdGNoZWQgaW50byB0aGUgY29udGV4dCAtIHdpdGhvdXQgdHJhdmVyc2lu
ZyBhbGwgb2YKKyAgICAvLyB0aGUgbGF0Y2hlZCBvYmplY3RzIHRvIGZpbmQgdGhlIGN1cnJlbnQg
b25lLCB3aGljaCB3b3VsZCBiZQorICAgIC8vIHByb2hpYml0aXZlbHkgZXhwZW5zaXZlLgorICAg
IExvY2smIG9iamVjdEdyYXBoTG9jaygpOworCiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyk7CiAgICAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiwgUmVmPEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMPiYmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKQEAgLTQ5NSw2ICs1MTcsNyBA
QCBwcm90ZWN0ZWQ6CiAKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IG1fY29u
dGV4dDsKICAgICBSZWZQdHI8V2ViR0xDb250ZXh0R3JvdXA+IG1fY29udGV4dEdyb3VwOworICAg
IExvY2sgbV9vYmplY3RHcmFwaExvY2s7CiAKICAgICBib29sIG1fcmVzdG9yZUFsbG93ZWQgeyBm
YWxzZSB9OwogICAgIFN1c3BlbmRhYmxlVGltZXIgbV9yZXN0b3JlVGltZXI7CkBAIC01MDksMTAg
KzUzMiw3IEBAIHByb3RlY3RlZDoKICAgICBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJh
c2U+IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogICAgIFJlZlB0cjxXZWJHTFZlcnRleEFy
cmF5T2JqZWN0QmFzZT4gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0OwogCi0gICAgdm9pZCBzZXRC
b3VuZFZlcnRleEFycmF5T2JqZWN0KFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKiBhcnJheU9i
amVjdCkKLSAgICB7Ci0gICAgICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCA9IGFycmF5T2Jq
ZWN0ID8gYXJyYXlPYmplY3QgOiBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdDsKLSAgICB9Cisg
ICAgdm9pZCBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlKik7CiAgICAgCiAgICAgY2xhc3MgVmVydGV4QXR0cmliVmFsdWUgewogICAgIHB1YmxpYzoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2FtcGxlci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNhbXBsZXIuaWRsCmluZGV4IDRlNTQ0
Y2E2ZTQ0NDg3MzljY2NmOWE2OGRjNGQ3ZTc2MTM0NGZlMTQuLmI4ZWRjMmY2NzU5ZDE4Y2U4MmNj
ODAyYTQxYjBhODc5MTk5NzkzZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMU2FtcGxlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xTYW1wbGVyLmlkbApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKIFsKLSAgICBDb25kaXRpb25h
bD1XRUJHTAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9
SW1wbAogXSBpbnRlcmZhY2UgV2ViR0xTYW1wbGVyIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFNoYWRlci5pZGwKaW5kZXggNTJmOTYyMDI1NjE1Y2Y1NzA2YTJjN2U3ZmQy
ZWJhNTZkOWI1MWIxZS4uYjUwNzk0NjAxZGUwYjgyOGRmNjU2OWUwZjhkN2Q2NjAzMjUxNDQwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbApAQCAtMjQsNiAr
MjQsNyBAQAogICovCiAKIFsKLSAgICBDb25kaXRpb25hbD1XRUJHTAorICAgIENvbmRpdGlvbmFs
PVdFQkdMLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbAogXSBpbnRlcmZhY2UgV2ViR0xT
aGFkZXIgewogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
U2hhcmVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVk
T2JqZWN0LmNwcAppbmRleCBkMDJiZmE0ZTI4NmZiMWNiZGNkOTkzOGE0YzI0NWJkMjcxYTk2YTEy
Li5kMWU3N2I3MGFlODMyN2I1Y2ZlOGQwNzkwMzkzZTI2NjRmYWQ3ZmExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTU5LDYgKzYwLDEzIEBAIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KiBXZWJHTFNoYXJlZE9iamVjdDo6Z2V0QUdyYXBoaWNzQ29udGV4dEdMKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9jb250ZXh0R3JvdXAgPyAmbV9jb250ZXh0R3JvdXAtPmdldEFHcmFwaGljc0NvbnRl
eHRHTCgpIDogbnVsbHB0cjsKIH0KIAorV1RGOjpMb2NrJiBXZWJHTFNoYXJlZE9iamVjdDo6b2Jq
ZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpCit7CisgICAgLy8gU2hvdWxkIG5vdCBjYWxsIHRoaXMg
aWYgdGhlIG9iamVjdCBvciBjb250ZXh0IGhhcyBiZWVuIGRlbGV0ZWQuCisgICAgQVNTRVJUKG1f
Y29udGV4dEdyb3VwKTsKKyAgICByZXR1cm4gbV9jb250ZXh0R3JvdXAtPm9iamVjdEdyYXBoTG9j
a0ZvckFDb250ZXh0KCk7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oCmluZGV4IDdmMjM5
ZDUxYzQzYzM5MjRmYjE3NTM4NWI0YjliZDk2OTdmZGJjOTMuLjZlMjJlMzliZWRiODcwNzg1MDA4
YmMxODUwZjcwMTAwNzA5YzE3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xTaGFyZWRPYmplY3QuaApAQCAtMjksNiArMjksMTAgQEAKIAogI2luY2x1ZGUgIldlYkdM
T2JqZWN0LmgiCiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgTG9jazsKK30KKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDsKQEAgLTUyLDYgKzU2
LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRhY2hDb250ZXh0R3JvdXAoKTsKIAorICAgIFdU
Rjo6TG9jayYgb2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpIG92ZXJyaWRlOworCiBwcm90ZWN0
ZWQ6CiAgICAgV2ViR0xTaGFyZWRPYmplY3QoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbAppbmRleCA2N2Rm
YTNjNGY2ZTExZmZhZGE4NDU1YTcwMTEyNTQyYzAyMGQ1ODRlLi5hNjMwNmU1YTUxYjYxMDBkMjI4
NmFkYjI4MjI1NjZhOGI1NTU1MTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFRleHR1cmUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVGV4dHVyZS5pZGwKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiBbCi0gICAgQ29uZGl0aW9u
YWw9V0VCR0wKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxl
PUltcGwKIF0gaW50ZXJmYWNlIFdlYkdMVGV4dHVyZSB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcAppbmRleCA5MTVj
YWUyODAzNjFjNzA2ZmM1MWM3ZmJmYTg3YzI4ODlhMDUyOTQzLi4xZTk5ZmRiZTM5ZDcxZjNjZWRj
NDNjZWJjNTczY2M1YzcxYjI2NDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcApAQCAtMzAsNiArMzAsOCBAQAogCiAj
aW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0b3IuaD4KKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvcklubGluZXMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC01NywxMiArNTksMTQgQEAgdm9pZCBXZWJHTFRyYW5zZm9ybUZlZWRi
YWNrOjpkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QK
IAogdm9pZCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpzZXRQcm9ncmFtKFdlYkdMUHJvZ3JhbSYg
cHJvZ3JhbSkKIHsKKyAgICAvLyBDb3ZlcmVkIHVuZGVyIHRoZSBvYmplY3RHcmFwaExvY2sgaW4g
V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmVnaW5UcmFuc2Zvcm1GZWVkYmFjay4KICAgICBtX3By
b2dyYW0gPSAmcHJvZ3JhbTsKICAgICBtX3Byb2dyYW1MaW5rQ291bnQgPSBwcm9ncmFtLmdldExp
bmtDb3VudCgpOwogfQogCiB2b2lkIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OnNldEJvdW5kSW5k
ZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyKEdDR0x1aW50IGluZGV4LCBXZWJHTEJ1ZmZlciog
YnVmZmVyKQogeworICAgIC8vIENvdmVyZWQgdW5kZXIgdGhlIG9iamVjdEdyYXBoTG9jayBpbiBX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpzZXRJbmRleGVkQnVmZmVyQmluZGluZy4KICAgICBBU1NF
UlQoaW5kZXggPCBtX2JvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVycy5zaXplKCkp
OwogICAgIG1fYm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzW2luZGV4XSA9IGJ1
ZmZlcjsKIH0KQEAgLTg2LDYgKzkwLDE2IEBAIGJvb2wgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6
aGFzRW5vdWdoQnVmZmVycyhHQ0dMdWludCBudW1SZXF1aXJlZCkgY29uc3QKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAordm9pZCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjphZGRNZW1iZXJzVG9PcGFx
dWVSb290cyhKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIGZvciAoYXV0byYgYnVm
ZmVyIDogbV9ib3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnMpCisgICAgICAgIHZp
c2l0b3IuYWRkT3BhcXVlUm9vdChidWZmZXIuZ2V0KCkpOworCisgICAgdmlzaXRvci5hZGRPcGFx
dWVSb290KG1fcHJvZ3JhbS5nZXQoKSk7CisgICAgaWYgKG1fcHJvZ3JhbSkKKyAgICAgICAgbV9w
cm9ncmFtLT5hZGRNZW1iZXJzVG9PcGFxdWVSb290cyh2aXNpdG9yKTsKK30KKwogdm9pZCBXZWJH
TFRyYW5zZm9ybUZlZWRiYWNrOjp1bmJpbmRCdWZmZXIoV2ViR0xCdWZmZXImIGJ1ZmZlcikKIHsK
ICAgICBmb3IgKGF1dG8mIGJvdW5kQnVmZmVyIDogbV9ib3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVk
YmFja0J1ZmZlcnMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVHJhbnNmb3JtRmVlZGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
VHJhbnNmb3JtRmVlZGJhY2suaAppbmRleCA3N2RiOTU0OGMzYjg0NTUwNTZmYTcxN2FmNDEzNjRm
MjJlMTc4ZDNiLi5mYzgwYzhhZGMzNTQ0Yjg5MjllYjNkMjA4OWVlZTU4YjI1M2VkYzI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNr
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFj
ay5oCkBAIC0zMCw2ICszMCwxMCBAQAogI2luY2x1ZGUgIldlYkdMMlJlbmRlcmluZ0NvbnRleHQu
aCIKICNpbmNsdWRlICJXZWJHTFNoYXJlZE9iamVjdC5oIgogCituYW1lc3BhY2UgSlNDIHsKK2Ns
YXNzIFNsb3RWaXNpdG9yOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdM
VHJhbnNmb3JtRmVlZGJhY2sgZmluYWwgOiBwdWJsaWMgV2ViR0xTaGFyZWRPYmplY3QgewpAQCAt
NjEsNiArNjUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bmJpbmRCdWZmZXIoV2ViR0xCdWZmZXIm
KTsKICAgICAKICAgICBib29sIGhhc0Vub3VnaEJ1ZmZlcnMoR0NHTHVpbnQgbnVtUmVxdWlyZWQp
IGNvbnN0OworCisgICAgdm9pZCBhZGRNZW1iZXJzVG9PcGFxdWVSb290cyhKU0M6OlNsb3RWaXNp
dG9yJik7CisKIHByaXZhdGU6CiAgICAgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5pZGwKaW5kZXggOTM3M2MxOGY4Zjc0NzIzZjQ5ODA4OGMy
ZmJjMmVkMDk2YzZiNjQzMy4uNDVhYmQ1ZTJmMmVjMjQ4YjgzNGU0OTNhNGIyNWZmNzZkM2U2Njdj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1G
ZWVkYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUcmFuc2Zv
cm1GZWVkYmFjay5pZGwKQEAgLTI1LDYgKzI1LDcgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdF
QkdMMiwKLSAgICBFbmFibGVkQXRSdW50aW1lPVdlYkdMMgorICAgIEVuYWJsZWRBdFJ1bnRpbWU9
V2ViR0wyLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbAogXSBpbnRlcmZhY2UgV2ViR0xU
cmFuc2Zvcm1GZWVkYmFjayB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmlkbAppbmRleCA2N2ExZjlkZWMxNzllZjUyMTJl
ZmU5MjY4MzY4YTUxZjBmNzExMjBmLi5kZDljNWE4MTE0MTY0NTEzNWMxMjVmNjI3NDY0Mzc4MGY1
M2NjYzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRl
eEFycmF5T2JqZWN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZl
cnRleEFycmF5T2JqZWN0LmlkbApAQCAtMjUsNiArMjUsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9u
YWw9V0VCR0wyLAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR0wyCisgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJHTDIsCisgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsCiBdIGludGVyZmFjZSBX
ZWJHTFZlcnRleEFycmF5T2JqZWN0IHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKaW5kZXggMTFjYzhi
OWU1NGI3Y2Q5N2I4NGRiM2QzM2JkYTliZTEzNDUxMjIyNS4uOTQyYWZlOGFiMTBlYWVlMGFmOTg0
OTJhMGQ4YzIwYjQ2MTZmNDRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcApAQCAtMjksNiArMjksOCBA
QAogI2lmIEVOQUJMRShXRUJHTCkKIAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvci5oPgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9ySW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTUxLDYgKzUzLDcgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6
c2V0RWxlbWVudEFycmF5QnVmZmVyKFdlYkdMQnVmZmVyKiBidWZmZXIpCiAKIHZvaWQgV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdEJhc2U6OnNldFZlcnRleEF0dHJpYlN0YXRlKEdDR0x1aW50IGluZGV4
LCBHQ0dMc2l6ZWkgYnl0ZXNQZXJFbGVtZW50LCBHQ0dMaW50IHNpemUsIEdDR0xlbnVtIHR5cGUs
IEdDR0xib29sZWFuIG5vcm1hbGl6ZWQsIEdDR0xzaXplaSBzdHJpZGUsIEdDR0xpbnRwdHIgb2Zm
c2V0LCBXZWJHTEJ1ZmZlciogYnVmZmVyKQogeworICAgIC8vIENvdmVyZWQgdW5kZXIgdGhlIG9i
amVjdEdyYXBoTG9jayBpbiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQ
b2ludGVyLgogICAgIEdDR0xzaXplaSB2YWxpZGF0ZWRTdHJpZGUgPSBzdHJpZGUgPyBzdHJpZGUg
OiBieXRlc1BlckVsZW1lbnQ7CiAgICAgCiAgICAgYXV0byYgc3RhdGUgPSBtX3ZlcnRleEF0dHJp
YlN0YXRlW2luZGV4XTsKQEAgLTcyLDYgKzc1LDcgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0QmFzZTo6c2V0VmVydGV4QXR0cmliU3RhdGUoR0NHTHVpbnQgaW5kZXgsIEdDR0xzaXplaQog
CiB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIoV2ViR0xCdWZm
ZXImIGJ1ZmZlcikKIHsKKyAgICAvLyBDb3ZlcmVkIHVuZGVyIHRoZSBvYmplY3RHcmFwaExvY2sg
aW4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dW5jYWNoZURlbGV0ZWRCdWZmZXIuCiAgICAg
aWYgKG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIgPT0gJmJ1ZmZlcikgewogICAgICAgICBtX2Jv
dW5kRWxlbWVudEFycmF5QnVmZmVyLT5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3NDb250
ZXh0R0woKSk7CiAgICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIgPSBudWxscHRyOwpA
QCAtMTA0LDcgKzEwOCwxNCBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjpzZXRW
ZXJ0ZXhBdHRyaWJEaXZpc29yKEdDR0x1aW50IGluZGV4LCBHQ0dMdWludAogewogICAgIG1fdmVy
dGV4QXR0cmliU3RhdGVbaW5kZXhdLmRpdmlzb3IgPSBkaXZpc29yOwogfQotICAgIAorCit2b2lk
IFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjphZGRNZW1iZXJzVG9PcGFxdWVSb290cyhKU0M6
OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2Jv
dW5kRWxlbWVudEFycmF5QnVmZmVyLmdldCgpKTsKKyAgICBmb3IgKGF1dG8mIHN0YXRlIDogbV92
ZXJ0ZXhBdHRyaWJTdGF0ZSkKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHN0YXRlLmJ1
ZmZlckJpbmRpbmcuZ2V0KCkpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2Jq
ZWN0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdEJhc2UuaAppbmRleCA0YmQ5MTM1MTBmNjJiZWJjOTg1YzU3M2RkNjg4YjlkZTcxZmYzYWEy
Li4xNTEzMmU5OWFiNTE5ZThjZmI1ZjdkZTFmMDM4MGM2N2ZiODQ1ZDNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNl
LmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKICNpbmNsdWRl
ICJXZWJHTENvbnRleHRPYmplY3QuaCIKIAorbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBTbG90Vmlz
aXRvcjsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZSA6IHB1YmxpYyBXZWJHTENvbnRleHRPYmplY3QgewpAQCAtNjgsNiArNzIsOCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFZlcnRleEF0dHJpYkRpdmlzb3IoR0NHTHVpbnQgaW5k
ZXgsIEdDR0x1aW50IGRpdmlzb3IpOwogCisgICAgdm9pZCBhZGRNZW1iZXJzVG9PcGFxdWVSb290
cyhKU0M6OlNsb3RWaXNpdG9yJik7CisKIHByb3RlY3RlZDoKICAgICBXZWJHTFZlcnRleEFycmF5
T2JqZWN0QmFzZShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVHlwZSk7CiAgICAgdm9pZCBk
ZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9iamVj
dCkgb3ZlcnJpZGUgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbAppbmRleCBmMTkwYTdlNjQxMzhlNWQ5NmI1
MjdiMjZlMmYzNDYyNWYyY2JkNDc2Li40NWEwNTdkYjczMzVhZDI4YTBhY2U1NmE1N2RlMTc2NzAx
Y2JiMWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRl
eEFycmF5T2JqZWN0T0VTLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbApAQCAtMjUsNiArMjUsNyBAQAogCiBbCiAgICAgTm9J
bnRlcmZhY2VPYmplY3QsCi0gICAgQ29uZGl0aW9uYWw9V0VCR0wKKyAgICBDb25kaXRpb25hbD1X
RUJHTCwKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwKIF0gaW50ZXJmYWNlIFdlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMgewogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmM2YyODNiZjI5YzM5MmZlZjZkNTNlOTli
ODdjMTI4MzkyZDc1OWQ3Li4zNmU3ZmI0NzA4NzExMTk4NWIyMDViYzQzZDY4ZjMzMGNkYWU1NGU1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDgtMTIgIEtlbm5ldGggUnVzc2VsbCAgPGti
ckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1dlYkdMMl0gZXhwYW5kby1sb3NzIGFuZCBleHBh
bmRvLWxvc3MtMiBjb25mb3JtYW5jZSB0ZXN0cyBhcmUgZmFpbGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NzY1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKFJlLWxhbmQgd2l0aCBsb2NraW5nIGZp
eGVzIHlzdXp1a2lAIHBvaW50ZWQgb3V0IGFzIG5lY2Vzc2FyeSkKKworICAgICAgICBSZWJhc2Vs
aW5lIGV4cGFuZG8tbG9zcy5odG1sIGFuZCBleHBhbmRvLWxvc3MtMi5odG1sLCB3aGljaCBhcmUK
KyAgICAgICAgbm93IGZ1bGx5IHBhc3NpbmcuCisKKyAgICAgICAgQWRkIGEgaG9vayB0byBqcy10
ZXN0LXByZS5qcyB3aGljaCBhbGxvd3MgdGhlc2UgdGVzdHMgdG8gYmUgcnVuCisgICAgICAgIGNv
cnJlY3RseSBpbiB0aGUgTWluaUJyb3dzZXIgYnkgc2V0dGluZyB0aGUgZm9sbG93aW5nIGVudmly
b25tZW50CisgICAgICAgIHZhcmlhYmxlczoKKyAgICAgICAgICBleHBvcnQgSlNDX3VzZURvbGxh
clZNPTEKKyAgICAgICAgICBleHBvcnQgX19YUENfSlNDX3VzZURvbGxhclZNPTEKKworICAgICAg
ICAqIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL21pc2MvZXhwYW5kby1sb3NzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvbWlzYy9leHBhbmRvLWxvc3Mt
Mi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViZ2wvMi4wLjAvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvanMvanMtdGVzdC1wcmUuanM6CisKIDIwMjAtMDgtMTIgIFJ5YW4gSGFkZGFkICA8
cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmlu
ZywgcmViYXNlbGluZSB0ZXN0IGFmdGVyIHIyNjU1MTQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS9taXNjL2V4cGFuZG8tbG9zcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS9taXNjL2V4cGFuZG8tbG9zcy1l
eHBlY3RlZC50eHQKaW5kZXggYTg5ZTJiMjc3OGI0Yzg0NDJlMDJmM2VhNWI4Yzk0MzcxODQ1YzA1
Mi4uN2M1Zjg2ZmZkN2U3YjdlOGQ5ZmUxZTFkZTc3ZmI3YTEwZjBmZmJlZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UvbWlzYy9leHBhbmRvLWxvc3MtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL21pc2Mv
ZXhwYW5kby1sb3NzLWV4cGVjdGVkLnR4dApAQCAtMSw1NiArMSw0IEBACiBUaGlzIHRlc3QgcnVu
cyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBB
U1Mgb3IgRkFJTC4KIAogVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvbWlzYy9leHBhbmRvLWxvc3MuaHRtbAotCi1bIDE6IFBBU1MgXSBnZXRQYXJhbWV0
ZXIoVEVYVFVSRV9CSU5ESU5HXzJEKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgot
WyAyOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFRFWFRVUkVfQklORElOR18yRCk6IEV4cGVjdCBiYXNp
YyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzogRkFJTCBdIGdldFBhcmFtZXRl
cihURVhUVVJFX0JJTkRJTkdfMkQpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyA0OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKEZSQU1FQlVGRkVSX0JJTkRJ
TkcpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDU6IEZBSUwgXSBnZXRQYXJh
bWV0ZXIoRlJBTUVCVUZGRVJfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgNjogRkFJTCBdIGdldFBhcmFtZXRlcihGUkFNRUJVRkZFUl9CSU5E
SU5HKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
NzogUEFTUyBdIGdldFBhcmFtZXRlcihSRU5ERVJCVUZGRVJfQklORElORykgcmV0dXJucyBpbnN0
YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgODogRkFJTCBdIGdldFBhcmFtZXRlcihSRU5ERVJCVUZG
RVJfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgOTogRkFJTCBdIGdldFBhcmFtZXRlcihSRU5ERVJCVUZGRVJfQklORElORyk6IEV4cGVjdCBz
dWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDEwOiBQQVNTIF0gZ2V0
UGFyYW1ldGVyKEVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkcpIHJldHVybnMgaW5zdGFuY2Ug
dGhhdCB3YXMgYm91bmQuCi1bIDExOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKEVMRU1FTlRfQVJSQVlf
QlVGRkVSX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDEyOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKEVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJ
TkcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAx
MzogUEFTUyBdIGdldFBhcmFtZXRlcihBUlJBWV9CVUZGRVJfQklORElORykgcmV0dXJucyBpbnN0
YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTQ6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoQVJSQVlfQlVG
RkVSX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDE1OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKEFSUkFZX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0
IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTY6IFBBU1MgXSBn
ZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQKSByZXR1cm5zIGluc3RhbmNlIHRo
YXQgd2FzIGJvdW5kLgotWyAxNzogRkFJTCBdIGdldFBhcmFtZXRlcihURVhUVVJFX0JJTkRJTkdf
Q1VCRV9NQVApOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDE4OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFRFWFRVUkVfQklORElOR19DVUJFX01BUCk6IEV4cGVj
dCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE5OiBQQVNTIF0g
Z2V0UGFyYW1ldGVyKGdsLkNVUlJFTlRfUFJPR1JBTSkgcmV0dXJuIGluc3RhbmNlIHNldCB3aXRo
IHVzZVByb2dyYW0KLVsgMjA6IFBBU1MgXSBWZXJ0ZXggc2hhZGVyIGluc3RhbmNlIGZvdW5kIGlu
IGdldEF0dGFjaGVkU2hhZGVycwotWyAyMTogUEFTUyBdIEZyYWdtZW50IHNoYWRlciBpbnN0YW5j
ZSBmb3VuZCBpbiBnZXRBdHRhY2hlZFNoYWRlcnMKLVsgMjI6IEZBSUwgXSBDdXJyZW50IHByb2dy
YW06IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjM6IEZB
SUwgXSBDdXJyZW50IHByb2dyYW06IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDI0OiBQQVNTIF0gW29iamVjdCBXZWJHTFByb2dyYW1dIGlzIGFuIGlu
c3RhbmNlIG9mIFdlYkdMUHJvZ3JhbQotWyAyNTogRkFJTCBdIFNoYWRlclswXTogRXhwZWN0IGJh
c2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNjogRkFJTCBdIFNoYWRlclsw
XTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjc6
IFBBU1MgXSBbb2JqZWN0IFdlYkdMU2hhZGVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTFNoYWRl
cgotWyAyODogRkFJTCBdIFNoYWRlclsxXTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyAyOTogRkFJTCBdIFNoYWRlclsxXTogRXhwZWN0IHN1Ym9iamVjdCBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzA6IFBBU1MgXSBbb2JqZWN0IFdlYkdM
U2hhZGVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTFNoYWRlcgotWyAzMTogUEFTUyBdIGdldFZl
cnRleEF0dHJpYihWRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HKSByZXR1cm4gaW5z
dGFuY2Ugc2V0IHdpdGggdmVydGV4QXR0cmliUG9pbnRlcgotWyAzMjogRkFJTCBdIFZlcnRleCBB
dHRyaWJ1dGUgQnVmZmVyOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDMzOiBGQUlMIF0gVmVydGV4IEF0dHJpYnV0ZSBCdWZmZXI6IEV4cGVjdCBzdWJvYmpl
Y3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDM0OiBQQVNTIF0gW29iamVjdCBX
ZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMzU6IFBBU1MgXSBn
ZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoQ09MT1JfQVRUQUNITUVOVDApIHJldHVy
bnMgaW5zdGFuY2Ugc2V0IHdpdGggZnJhbWVidWZmZXJSZW5kZXJidWZmZXIKLVsgMzY6IFBBU1Mg
XSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoREVQVEhfQVRUQUNITUVOVCkgcmV0
dXJucyBpbnN0YW5jZSBzZXQgd2l0aCBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcgotWyAzNzogUEFT
UyBdIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihTVEVOQ0lMX0FUVEFDSE1FTlQp
IHJldHVybnMgaW5zdGFuY2Ugc2V0IHdpdGggZnJhbWVidWZmZXJSZW5kZXJidWZmZXIKLVsgMzg6
IFBBU1MgXSBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIoREVQVEhfU1RFTkNJTF9B
VFRBQ0hNRU5UKSByZXR1cm5zIGluc3RhbmNlIHNldCB3aXRoIGZyYW1lYnVmZmVyUmVuZGVyYnVm
ZmVyCi1bIDM5OiBGQUlMIF0gQ09MT1JfQVRUQUNITUVOVDA6IEV4cGVjdCBiYXNpYyBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDA6IEZBSUwgXSBDT0xPUl9BVFRBQ0hNRU5UMDog
RXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDE6IFBB
U1MgXSBbb2JqZWN0IFdlYkdMUmVuZGVyYnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTFJl
bmRlcmJ1ZmZlcgotWyA0MjogRkFJTCBdIERFUFRIX0FUVEFDSE1FTlQ6IEV4cGVjdCBiYXNpYyBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDM6IEZBSUwgXSBERVBUSF9BVFRBQ0hN
RU5UOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0
NDogUEFTUyBdIFtvYmplY3QgV2ViR0xSZW5kZXJidWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdl
YkdMUmVuZGVyYnVmZmVyCi1bIDQ1OiBGQUlMIF0gU1RFTkNJTF9BVFRBQ0hNRU5UOiBFeHBlY3Qg
YmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDQ2OiBGQUlMIF0gU1RFTkNJ
TF9BVFRBQ0hNRU5UOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyA0NzogUEFTUyBdIFtvYmplY3QgV2ViR0xSZW5kZXJidWZmZXJdIGlzIGFuIGluc3Rh
bmNlIG9mIFdlYkdMUmVuZGVyYnVmZmVyCi1bIDQ4OiBGQUlMIF0gREVQVEhfU1RFTkNJTF9BVFRB
Q0hNRU5UOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDQ5
OiBGQUlMIF0gREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA1MDogUEFTUyBdIFtvYmplY3QgV2ViR0xSZW5k
ZXJidWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMUmVuZGVyYnVmZmVyCi1bIDUxOiBQQVNT
IF0gc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLVsgRkFJTCBdIDI4IGZhaWx1cmVzIHJlcG9y
dGVkCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvbWlzYy9leHBhbmRvLWxvc3MtMi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvbWlzYy9leHBhbmRvLWxvc3Mt
Mi1leHBlY3RlZC50eHQKaW5kZXggZDI5YzdmOWVmOGU0ZmMzYjM1NTMwNDY5NDU1ZDg4MGFiMzA3
MmYxOC4uZTdhNWFlMjhhOGI1Y2M3ZTNlZGU5YmY4MjUxYjBmODcyMzI5Y2M3MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL21pc2MvZXhwYW5kby1sb3Nz
LTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi9taXNjL2V4cGFuZG8tbG9zcy0yLWV4cGVjdGVkLnR4dApAQCAtMSwzNDEgKzEsNCBAQAogVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCiAKIFRlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlMi9taXNjL2V4cGFuZG8tbG9zcy0yLmh0bWwKLQotWyAxOiBQQVNT
IF0gZ2V0UGFyYW1ldGVyKFNBTVBMRVJfQklORElORykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdh
cyBib3VuZC4KLVsgMjogRkFJTCBdIGdldFBhcmFtZXRlcihTQU1QTEVSX0JJTkRJTkcpOiBFeHBl
Y3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDM6IEZBSUwgXSBnZXRQ
YXJhbWV0ZXIoU0FNUExFUl9CSU5ESU5HKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDogUEFTUyBdIGdldFBhcmFtZXRlcihTQU1QTEVSX0JJTkRJ
TkcpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDU6IFBB
U1MgXSBbb2JqZWN0IFdlYkdMU2FtcGxlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xTYW1wbGVy
Ci1bIDY6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJTkcpIHJl
dHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDc6IEZBSUwgXSBnZXRQYXJhbWV0ZXIo
VFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDg6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURC
QUNLX0JJTkRJTkcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyA5OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CSU5ESU5H
KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxMDogUEFT
UyBdIFtvYmplY3QgV2ViR0xUcmFuc2Zvcm1GZWVkYmFja10gaXMgYW4gaW5zdGFuY2Ugb2YgV2Vi
R0xUcmFuc2Zvcm1GZWVkYmFjawotWyAxMTogUEFTUyBdIGdldFBhcmFtZXRlcihWRVJURVhfQVJS
QVlfQklORElORykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTI6IEZBSUwg
XSBnZXRQYXJhbWV0ZXIoVkVSVEVYX0FSUkFZX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDEzOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFZFUlRF
WF9BUlJBWV9CSU5ESU5HKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVz
cGl0ZSBHQy4KLVsgMTQ6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVkVSVEVYX0FSUkFZX0JJTkRJTkcp
OiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE1OiBQQVNT
IF0gW29iamVjdCBXZWJHTFZlcnRleEFycmF5T2JqZWN0XSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJH
TFZlcnRleEFycmF5T2JqZWN0Ci1bIDE2OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFRFWFRVUkVfQklO
RElOR18zRCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTc6IEZBSUwgXSBn
ZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5ESU5HXzNEKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxODogRkFJTCBdIGdldFBhcmFtZXRlcihURVhUVVJFX0JJ
TkRJTkdfM0QpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAxOTogUEFTUyBdIGdldFBhcmFtZXRlcihURVhUVVJFX0JJTkRJTkdfM0QpOiBFeHBlY3Qg
ZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIwOiBQQVNTIF0gW29iamVj
dCBXZWJHTFRleHR1cmVdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMVGV4dHVyZQotWyAyMTogUEFT
UyBdIGdldFBhcmFtZXRlcihURVhUVVJFX0JJTkRJTkdfMkRfQVJSQVkpIHJldHVybnMgaW5zdGFu
Y2UgdGhhdCB3YXMgYm91bmQuCi1bIDIyOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFRFWFRVUkVfQklO
RElOR18yRF9BUlJBWSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMjM6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5ESU5HXzJEX0FSUkFZKTog
RXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjQ6IFBB
U1MgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5ESU5HXzJEX0FSUkFZKTogRXhwZWN0IGV4dHJh
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNTogUEFTUyBdIFtvYmplY3QgV2Vi
R0xUZXh0dXJlXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTFRleHR1cmUKLVsgMjY6IFBBU1MgXSBn
ZXRQYXJhbWV0ZXIoUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3RhbmNlIHRo
YXQgd2FzIGJvdW5kLgotWyAyNzogRkFJTCBdIGdldFBhcmFtZXRlcihSRUFEX0ZSQU1FQlVGRkVS
X0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDI4OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFJFQURfRlJBTUVCVUZGRVJfQklORElORyk6IEV4cGVj
dCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI5OiBQQVNTIF0g
Z2V0UGFyYW1ldGVyKFJFQURfRlJBTUVCVUZGRVJfQklORElORyk6IEV4cGVjdCBleHRyYSBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzA6IFBBU1MgXSBbb2JqZWN0IFdlYkdMRnJh
bWVidWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMRnJhbWVidWZmZXIKLVsgMzE6IFBBU1Mg
XSBnZXRQYXJhbWV0ZXIoRFJBV19GUkFNRUJVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3RhbmNl
IHRoYXQgd2FzIGJvdW5kLgotWyAzMjogRkFJTCBdIGdldFBhcmFtZXRlcihEUkFXX0ZSQU1FQlVG
RkVSX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDMzOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKERSQVdfRlJBTUVCVUZGRVJfQklORElORyk6IEV4
cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDM0OiBQQVNT
IF0gZ2V0UGFyYW1ldGVyKERSQVdfRlJBTUVCVUZGRVJfQklORElORyk6IEV4cGVjdCBleHRyYSBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzU6IFBBU1MgXSBbb2JqZWN0IFdlYkdM
RnJhbWVidWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMRnJhbWVidWZmZXIKLVsgMzY6IFBB
U1MgXSBnZXRQYXJhbWV0ZXIoQ09QWV9SRUFEX0JVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3Rh
bmNlIHRoYXQgd2FzIGJvdW5kLgotWyAzNzogRkFJTCBdIGdldFBhcmFtZXRlcihDT1BZX1JFQURf
QlVGRkVSX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDM4OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKENPUFlfUkVBRF9CVUZGRVJfQklORElORyk6
IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDM5OiBQ
QVNTIF0gZ2V0UGFyYW1ldGVyKENPUFlfUkVBRF9CVUZGRVJfQklORElORyk6IEV4cGVjdCBleHRy
YSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDA6IFBBU1MgXSBbb2JqZWN0IFdl
YkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA0MTogUEFTUyBdIGdl
dFBhcmFtZXRlcihDT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3RhbmNlIHRo
YXQgd2FzIGJvdW5kLgotWyA0MjogRkFJTCBdIGdldFBhcmFtZXRlcihDT1BZX1dSSVRFX0JVRkZF
Ul9CSU5ESU5HKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgot
WyA0MzogRkFJTCBdIGdldFBhcmFtZXRlcihDT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HKTogRXhw
ZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDQ6IFBBU1Mg
XSBnZXRQYXJhbWV0ZXIoQ09QWV9XUklURV9CVUZGRVJfQklORElORyk6IEV4cGVjdCBleHRyYSBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDU6IFBBU1MgXSBbb2JqZWN0IFdlYkdM
QnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA0NjogUEFTUyBdIGdldFBh
cmFtZXRlcihQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3RhbmNlIHRoYXQg
d2FzIGJvdW5kLgotWyA0NzogRkFJTCBdIGdldFBhcmFtZXRlcihQSVhFTF9QQUNLX0JVRkZFUl9C
SU5ESU5HKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0
ODogRkFJTCBdIGdldFBhcmFtZXRlcihQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0
IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDk6IFBBU1MgXSBn
ZXRQYXJhbWV0ZXIoUElYRUxfUEFDS19CVUZGRVJfQklORElORyk6IEV4cGVjdCBleHRyYSBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNTA6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVm
ZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA1MTogUEFTUyBdIGdldFBhcmFt
ZXRlcihQSVhFTF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkcpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3
YXMgYm91bmQuCi1bIDUyOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFBJWEVMX1VOUEFDS19CVUZGRVJf
QklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
NTM6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoUElYRUxfVU5QQUNLX0JVRkZFUl9CSU5ESU5HKTogRXhw
ZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNTQ6IFBBU1Mg
XSBnZXRQYXJhbWV0ZXIoUElYRUxfVU5QQUNLX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGV4dHJh
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA1NTogUEFTUyBdIFtvYmplY3QgV2Vi
R0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDU2OiBQQVNTIF0gZ2V0
UGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORykgcmV0dXJucyBpbnN0
YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNTc6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVFJBTlNGT1JN
X0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyA1ODogRkFJTCBdIGdldFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVFREJB
Q0tfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyA1OTogUEFTUyBdIGdldFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVFREJBQ0tf
QlVGRkVSX0JJTkRJTkcpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDYwOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2Yg
V2ViR0xCdWZmZXIKLVsgNjE6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklO
RElORykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNjI6IEZBSUwgXSBnZXRQ
YXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNjM6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVU5JRk9STV9C
VUZGRVJfQklORElORyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDY0OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcp
OiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDY1OiBQQVNT
IF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsg
NjY6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJf
QklORElORywgMCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNjc6IFBBU1Mg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywg
MSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNjg6IFBBU1MgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMikgcmV0dXJu
cyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNjk6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMykgcmV0dXJucyBpbnN0YW5j
ZSB0aGF0IHdhcyBib3VuZC4KLVsgNzA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5T
Rk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNzE6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRS
QU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMCk6IEV4cGVjdCBzdWJvYmplY3QgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDcyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcsIDApOiBFeHBlY3QgZXh0cmEg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDczOiBQQVNTIF0gW29iamVjdCBXZWJH
TEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgNzQ6IEZBSUwgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMSk6IEV4
cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNzU6IEZBSUwgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMSk6
IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDc2OiBG
QUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJ
TkcsIDEpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDc3
OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZm
ZXIKLVsgNzg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19C
VUZGRVJfQklORElORywgMik6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgNzk6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFD
S19CVUZGRVJfQklORElORywgMik6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDgwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihUUkFOU0ZPUk1f
RkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcsIDIpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDgxOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4g
aW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgODI6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMyk6IEV4cGVjdCBiYXNpYyBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgODM6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMyk6IEV4cGVjdCBzdWJvYmpl
Y3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDg0OiBQQVNTIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcsIDMpOiBFeHBlY3Qg
ZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDg1OiBQQVNTIF0gW29iamVj
dCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgODY6IFBBU1Mg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDApIHJldHVybnMg
aW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDg3OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJv
dW5kLgotWyA4ODogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklO
RElORywgMikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgODk6IFBBU1MgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMpIHJldHVybnMgaW5z
dGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDkwOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5k
LgotWyA5MTogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
RywgNSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgOTI6IFBBU1MgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDYpIHJldHVybnMgaW5zdGFu
Y2UgdGhhdCB3YXMgYm91bmQuCi1bIDkzOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCA3KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgot
WyA5NDogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywg
OCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgOTU6IFBBU1MgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDkpIHJldHVybnMgaW5zdGFuY2Ug
dGhhdCB3YXMgYm91bmQuCi1bIDk2OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCAxMCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsg
OTc6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEx
KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA5ODogUEFTUyBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTIpIHJldHVybnMgaW5zdGFuY2Ug
dGhhdCB3YXMgYm91bmQuCi1bIDk5OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCAxMykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsg
MTAwOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAx
NCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTAxOiBQQVNTIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxNSkgcmV0dXJucyBpbnN0YW5j
ZSB0aGF0IHdhcyBib3VuZC4KLVsgMTAyOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCAxNikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4K
LVsgMTAzOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCAxNykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTA0OiBQQVNTIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxOCkgcmV0dXJucyBpbnN0
YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTA1OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxOSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3Vu
ZC4KLVsgMTA2OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAyMCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTA3OiBQQVNTIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMSkgcmV0dXJucyBp
bnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTA4OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBi
b3VuZC4KLVsgMTA5OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCAyMykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTEwOiBQQVNT
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNCkgcmV0dXJu
cyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTExOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdh
cyBib3VuZC4KLVsgMTEyOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCAyNikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTEzOiBQ
QVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNykgcmV0
dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTE0OiBQQVNTIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyOCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0
IHdhcyBib3VuZC4KLVsgMTE1OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCAyOSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTE2
OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMCkg
cmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTE3OiBQQVNTIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMSkgcmV0dXJucyBpbnN0YW5jZSB0
aGF0IHdhcyBib3VuZC4KLVsgMTE4OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCAzMikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsg
MTE5OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAz
MykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTIwOiBQQVNTIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNCkgcmV0dXJucyBpbnN0YW5j
ZSB0aGF0IHdhcyBib3VuZC4KLVsgMTIxOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCAzNSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4K
LVsgMTIyOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCAzNikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTIzOiBQQVNTIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNykgcmV0dXJucyBpbnN0
YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTI0OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzOCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3Vu
ZC4KLVsgMTI1OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAzOSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTI2OiBQQVNTIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0MCkgcmV0dXJucyBp
bnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTI3OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0MSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBi
b3VuZC4KLVsgMTI4OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCA0MikgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTI5OiBQQVNT
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0MykgcmV0dXJu
cyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTMwOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NCkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdh
cyBib3VuZC4KLVsgMTMxOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCA0NSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTMyOiBQ
QVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NikgcmV0
dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMTMzOiBQQVNTIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NykgcmV0dXJucyBpbnN0YW5jZSB0aGF0
IHdhcyBib3VuZC4KLVsgMTM0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCAwKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyAxMzU6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDApOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAxMzY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDApOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDEz
NzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVm
ZmVyCi1bIDEzODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklO
RElORywgMSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MTM5OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAx
KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTQw
OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxKTog
RXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNDE6IFBBU1Mg
XSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAx
NDI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIp
OiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE0MzogRkFJ
TCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMik6IEV4cGVj
dCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE0NDogRkFJTCBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMik6IEV4cGVjdCBl
eHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTQ1OiBQQVNTIF0gW29iamVj
dCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTQ2OiBGQUlM
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzKTogRXhwZWN0
IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNDc6IEZBSUwgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMpOiBFeHBlY3Qgc3Vib2Jq
ZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNDg6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMpOiBFeHBlY3QgZXh0cmEgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE0OTogUEFTUyBdIFtvYmplY3QgV2ViR0xC
dWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE1MDogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNCk6IEV4cGVjdCBiYXNpYyBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTUxOiBGQUlMIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0KTogRXhwZWN0IHN1Ym9iamVjdCBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTUyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNTM6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBp
cyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxNTQ6IEZBSUwgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDUpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE1NTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIo
VU5JRk9STV9CVUZGRVJfQklORElORywgNSk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE1NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5J
Rk9STV9CVUZGRVJfQklORElORywgNSk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgMTU3OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5z
dGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTU4OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCA2KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyAxNTk6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDYpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyAxNjA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDYpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDE2MTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9m
IFdlYkdMQnVmZmVyCi1bIDE2MjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9C
VUZGRVJfQklORElORywgNyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgMTYzOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCA3KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMTY0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCA3KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAx
NjU6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1
ZmZlcgotWyAxNjY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDgpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDE2NzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywg
OCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE2
ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgOCk6
IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTY5OiBQQVNT
IF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsg
MTcwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA5
KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNzE6IEZB
SUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDkpOiBFeHBl
Y3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNzI6IEZBSUwg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDkpOiBFeHBlY3Qg
ZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE3MzogUEFTUyBdIFtvYmpl
Y3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE3NDogRkFJ
TCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTApOiBFeHBl
Y3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE3NTogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTApOiBFeHBlY3Qgc3Vi
b2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNzY6IEZBSUwgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEwKTogRXhwZWN0IGV4dHJh
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNzc6IFBBU1MgXSBbb2JqZWN0IFdl
YkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxNzg6IEZBSUwgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDExKTogRXhwZWN0IGJh
c2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNzk6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDExKTogRXhwZWN0IHN1Ym9iamVj
dCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTgwOiBGQUlMIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMSk6IEV4cGVjdCBleHRyYSBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTgxOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1
ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTgyOiBGQUlMIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMik6IEV4cGVjdCBiYXNpYyBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTgzOiBGQUlMIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMik6IEV4cGVjdCBzdWJvYmplY3QgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE4NDogRkFJTCBdIGdldEluZGV4ZWRQYXJh
bWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTIpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE4NTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJd
IGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE4NjogRkFJTCBdIGdldEluZGV4ZWRQ
YXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTMpOiBFeHBlY3QgYmFzaWMgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE4NzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTMpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxODg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEzKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyAxODk6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBh
biBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxOTA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE0KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxOTE6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE0KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTkyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCAxNCk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgMTkzOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5z
dGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTk0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxNSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgMTk1OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCAxNSk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDE5NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9C
VUZGRVJfQklORElORywgMTUpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDE5NzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNl
IG9mIFdlYkdMQnVmZmVyCi1bIDE5ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9S
TV9CVUZGRVJfQklORElORywgMTYpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDE5OTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZG
RVJfQklORElORywgMTYpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNw
aXRlIEdDLgotWyAyMDA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVS
X0JJTkRJTkcsIDE2KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAyMDE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBX
ZWJHTEJ1ZmZlcgotWyAyMDI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDE3KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyAyMDM6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDE3KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMjA0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAxNyk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MjA1OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xC
dWZmZXIKLVsgMjA2OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCAxOCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMjA3OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCAxOCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDIwODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywg
MTgpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIwOTog
UEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVy
Ci1bIDIxMDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
RywgMTkpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIx
MTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTkp
OiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMTI6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE5KTog
RXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMTM6IFBBU1Mg
XSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAy
MTQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIw
KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMTU6IEZB
SUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIwKTogRXhw
ZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjE2OiBGQUlM
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMCk6IEV4cGVj
dCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjE3OiBQQVNTIF0gW29i
amVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjE4OiBG
QUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMSk6IEV4
cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjE5OiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMSk6IEV4cGVjdCBz
dWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIyMDogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjEpOiBFeHBlY3QgZXh0
cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIyMTogUEFTUyBdIFtvYmplY3Qg
V2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDIyMjogRkFJTCBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjIpOiBFeHBlY3Qg
YmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIyMzogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjIpOiBFeHBlY3Qgc3Vib2Jq
ZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMjQ6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIyKTogRXhwZWN0IGV4dHJhIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMjU6IFBBU1MgXSBbb2JqZWN0IFdlYkdM
QnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyMjY6IEZBSUwgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIzKTogRXhwZWN0IGJhc2lj
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMjc6IEZBSUwgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIzKTogRXhwZWN0IHN1Ym9iamVjdCBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjI4OiBGQUlMIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMyk6IEV4cGVjdCBleHRyYSBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjI5OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZl
cl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjMwOiBGQUlMIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNCk6IEV4cGVjdCBiYXNpYyBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjMxOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIzMjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjQpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIzMzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlz
IGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDIzNDogRkFJTCBdIGdldEluZGV4ZWRQYXJh
bWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjUpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIzNTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIo
VU5JRk9STV9CVUZGRVJfQklORElORywgMjUpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMzY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI1KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyAyMzc6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBp
bnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyMzg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI2KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyAyMzk6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDI2KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgMjQwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCAyNik6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVz
cGl0ZSBHQy4KLVsgMjQxOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFu
Y2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjQyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCAyNyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgMjQzOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCAyNyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDI0NDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZG
RVJfQklORElORywgMjcpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDI0NTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9m
IFdlYkdMQnVmZmVyCi1bIDI0NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9C
VUZGRVJfQklORElORywgMjgpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDI0NzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJf
QklORElORywgMjgpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyAyNDg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDI4KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgot
WyAyNDk6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJH
TEJ1ZmZlcgotWyAyNTA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVS
X0JJTkRJTkcsIDI5KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAyNTE6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDI5KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMjUyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCAyOSk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjUz
OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZm
ZXIKLVsgMjU0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAzMCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MjU1OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAz
MCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI1
NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzAp
OiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI1NzogUEFT
UyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1b
IDI1ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywg
MzEpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI1OTog
RkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzEpOiBF
eHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNjA6IEZB
SUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMxKTogRXhw
ZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNjE6IFBBU1MgXSBb
b2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyNjI6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMyKTog
RXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNjM6IEZBSUwg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMyKTogRXhwZWN0
IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjY0OiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMik6IEV4cGVjdCBl
eHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjY1OiBQQVNTIF0gW29iamVj
dCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjY2OiBGQUlM
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMyk6IEV4cGVj
dCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjY3OiBGQUlMIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMyk6IEV4cGVjdCBzdWJv
YmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI2ODogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzMpOiBFeHBlY3QgZXh0cmEg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI2OTogUEFTUyBdIFtvYmplY3QgV2Vi
R0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDI3MDogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzQpOiBFeHBlY3QgYmFz
aWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI3MTogRkFJTCBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzQpOiBFeHBlY3Qgc3Vib2JqZWN0
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNzI6IEZBSUwgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM0KTogRXhwZWN0IGV4dHJhIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNzM6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVm
ZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyNzQ6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM1KTogRXhwZWN0IGJhc2ljIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNzU6IEZBSUwgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM1KTogRXhwZWN0IHN1Ym9iamVjdCBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjc2OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNSk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjc3OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0g
aXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjc4OiBGQUlMIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNik6IEV4cGVjdCBiYXNpYyBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjc5OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNik6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI4MDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIo
VU5JRk9STV9CVUZGRVJfQklORElORywgMzYpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDI4MTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFu
IGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDI4MjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI4MzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5J
Rk9STV9CVUZGRVJfQklORElORywgMzcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyAyODQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDM3KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyAyODU6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0
YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyODY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM4KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyAyODc6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDM4KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgMjg4OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCAzOCk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgMjg5OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ug
b2YgV2ViR0xCdWZmZXIKLVsgMjkwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCAzOSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVz
cGl0ZSBHQy4KLVsgMjkxOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCAzOSk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDI5MjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJf
QklORElORywgMzkpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDI5MzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdl
YkdMQnVmZmVyCi1bIDI5NDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZG
RVJfQklORElORywgNDApOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDI5NTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklO
RElORywgNDApOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAyOTY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDQwKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAy
OTc6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1
ZmZlcgotWyAyOTg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDQxKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgot
WyAyOTk6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDQxKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MzAwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0
MSk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzAxOiBQ
QVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIK
LVsgMzAyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCA0Mik6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzAz
OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Mik6
IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMwNDog
RkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDIpOiBF
eHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMwNTogUEFTUyBd
IFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDMw
NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDMp
OiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMwNzogRkFJ
TCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDMpOiBFeHBl
Y3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMDg6IEZBSUwg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQzKTogRXhwZWN0
IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMDk6IFBBU1MgXSBbb2Jq
ZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAzMTA6IEZB
SUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ0KTogRXhw
ZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMTE6IEZBSUwgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ0KTogRXhwZWN0IHN1
Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzEyOiBGQUlMIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NCk6IEV4cGVjdCBleHRy
YSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzEzOiBQQVNTIF0gW29iamVjdCBX
ZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMzE0OiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NSk6IEV4cGVjdCBi
YXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzE1OiBGQUlMIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NSk6IEV4cGVjdCBzdWJvYmpl
Y3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMxNjogRkFJTCBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDUpOiBFeHBlY3QgZXh0cmEgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMxNzogUEFTUyBdIFtvYmplY3QgV2ViR0xC
dWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDMxODogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDYpOiBFeHBlY3QgYmFzaWMg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMxOTogRkFJTCBdIGdldEluZGV4ZWRQ
YXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDYpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMjA6IEZBSUwgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ2KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMjE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVy
XSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAzMjI6IFBBU1MgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ3KTogRXhwZWN0IGJhc2ljIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMjM6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ3KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzI0OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Nyk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzI1OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMg
YW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMzI2OiBQQVNTIF0gQ1VSUkVOVF9RVUVSWSBy
ZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAzMjc6IFBBU1MgXSBDVVJSRU5UX1FV
RVJZIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDMyODogRkFJTCBdIFF1ZXJ5
OiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMyOTogRkFJ
TCBdIFF1ZXJ5OiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAzMzA6IFBBU1MgXSBRdWVyeTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyAzMzE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMUXVlcnldIGlzIGFuIGluc3Rh
bmNlIG9mIFdlYkdMUXVlcnkKLVsgMzMyOiBGQUlMIF0gUXVlcnk6IEV4cGVjdCBiYXNpYyBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzMzOiBGQUlMIF0gUXVlcnk6IEV4cGVjdCBz
dWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMzNDogUEFTUyBdIFF1
ZXJ5OiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMzNTog
UEFTUyBdIFtvYmplY3QgV2ViR0xRdWVyeV0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xRdWVyeQot
WyAzMzY6IFBBU1MgXSBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotWyBGQUlMIF0gMTgwIGZh
aWx1cmVzIHJlcG9ydGVkCitbIFBBU1MgXSBBbGwgdGVzdHMgcGFzc2VkCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9qcy9qcy10
ZXN0LXByZS5qcyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2pzL2pzLXRlc3QtcHJlLmpzCmluZGV4IGUxZTcwMTg4ZmI5NzI4NTEyN2QyMDVlY2Qy
M2M5ZWY3NjQwNDg5M2MuLmU3ZjEzODU5MjQ1NTFiOWU0YzUzZmVkNTcxOGE3NDdmN2NkNDQ5M2Ig
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2pzL2pzLXRlc3QtcHJlLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3QtcHJlLmpzCkBAIC03MDgsNiArNzA4
LDEyIEBAIGZ1bmN0aW9uIHdlYmdsSGFybmVzc0NvbGxlY3RHYXJiYWdlKCkgewogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCisgICAgLy8gV2ViS2l0J3MgTWluaUJyb3dzZXIKKyAgICBpZiAod2lu
ZG93LiR2bSkgeworICAgICAgICB3aW5kb3cuJHZtLmdjKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKICAgICBmdW5jdGlvbiBnY1JlYyhuKSB7CiAgICAgICAgIGlmIChuIDwgMSkKICAgICAg
ICAgICAgIHJldHVybiB7fTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406554</attachid>
            <date>2020-08-13 16:28:08 -0700</date>
            <delta_ts>2020-08-14 15:06:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214765-20200813162807.patch</filename>
            <type>text/plain</type>
            <size>147701</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDA1NTc3NTAxMGQyMmRk
ZjEyMGMwZWI1YTBkZDMxZThmYjAzMzY5Ni4uOWMzNjg1MzdhOGFhNjcxYmIzNzNlNDliODYxYjBm
MGViZWU5YTVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4OCBAQAorMjAyMC0wOC0xMyAgS2Vu
bmV0aCBSdXNzZWxsICA8a2JyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbV2ViR0wyXSBleHBh
bmRvLWxvc3MgYW5kIGV4cGFuZG8tbG9zcy0yIGNvbmZvcm1hbmNlIHRlc3RzIGFyZSBmYWlsaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ3NjUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZS1sYW5k
IHdpdGggbG9ja2luZyBmaXhlcyB5c3V6dWtpQCBwb2ludGVkIG91dCBhcyBuZWNlc3NhcnksIGFu
ZAorICAgICAgICBhZHZpc2VkIGhlYXZpbHkgb24uCisKKyAgICAgICAgVXNlIEpTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0J3MgYW5kIEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dCdzCisgICAgICAgIGV4
aXN0aW5nIHZpc2l0QWRkaXRpb25hbENoaWxkcmVuIGhvb2ssIHZpYSBKU0N1c3RvbU1hcmtGdW5j
dGlvbiBpbgorICAgICAgICB0aGVpciBJREwsIHRvIGFkZCBvcGFxdWUgcm9vdHMgZm9yIGFsbCBX
ZWJHTE9iamVjdHMgbGF0Y2hlZCBpbiB0bworICAgICAgICB0aGUgY29udGV4dCBzdGF0ZSwgYW5k
IGFsbCBXZWJHTE9iamVjdHMgdGhleSByZWZlciB0by4gRXh0ZW5zaW9ucworICAgICAgICB3ZXJl
IGFscmVhZHkgcHJldmlvdXNseSBoYW5kbGVkLgorCisgICAgICAgIEluIG9yZGVyIHRvIHN1cHBv
cnQgSlNDJ3MgY29uY3VycmVudCBtYXJraW5nLCBncmFiIGEKKyAgICAgICAgcGVyLVdlYkdMLWNv
bnRleHQgbG9jayBpbiB2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbiwgYW5kIGluIGFsbAorICAgICAg
ICBXZWJHTCBjb250ZXh0LSBhbmQgb2JqZWN0LXJlbGF0ZWQgbWV0aG9kcyB3aGljaCBtb2RpZnkg
Y29tcG91bmQKKyAgICAgICAgZGF0YSBzdHJ1Y3R1cmVzIGxpa2UgSGFzaE1hcHMgYW5kIFZlY3Rv
cnMgdGhhdCBhcmUgdHJhdmVyc2VkIGJ5CisgICAgICAgIHZpc2l0QWRkaXRpb25hbENoaWxkcmVu
IGFuZCBpdHMgY2FsbGVlcy4gQWRkICJjb25zdAorICAgICAgICBBYnN0cmFjdExvY2tlciYiIHRo
cm91Z2hvdXQgV2ViR0wncyBjYWxsIGhpZXJhcmNoeSB0byBndWFyYW50ZWUKKyAgICAgICAgdGhh
dCB0aGlzIGxvY2sgaXMgaGVsZCB3aGVyZSBuZWVkZWQuIEFkZCBuZWVkZWQgZXhjZXB0aW9uIGlu
CisgICAgICAgIFdlYkdMT2JqZWN0cycgZGVzdHJ1Y3RvcnMgdG8gYXZvaWQgcmVjdXJzaXZlIGxv
Y2tpbmcsIGFuZCBpbgorICAgICAgICBXZWJHTENvbnRleHRHcm91cCBkZXN0cnVjdGlvbiB0byBh
dm9pZCBtdXRhdGluZyBvYmplY3RzIHRoYXQgR0MKKyAgICAgICAgbWlnaHQgYmUgdHJhdmVyc2lu
ZyB3aGVuIGEgbG9jayBpcyBubyBsb25nZXIgYXZhaWxhYmxlIG9uIHRoZQorICAgICAgICBhcHBs
aWNhdGlvbidzIHRocmVhZC4KKworICAgICAgICBBZGQgIkdlbmVyYXRlSXNSZWFjaGFibGU9SW1w
bCIgdG8gdGhlIElETCBmaWxlcyBvZiBuZWVkZWQgV2ViR0wKKyAgICAgICAgb2JqZWN0cyAoV2Vi
R0xCdWZmZXIsIFdlYkdMVGV4dHVyZSwgZXRjLikgc28gdGhhdCB0aGV5IHBheQorICAgICAgICBh
dHRlbnRpb24gdG8gdGhlIG9wYXF1ZSByb290IHN0YXRlIHdoZW4gZGV0ZXJtaW5pbmcgbGl2ZW5l
c3Mgb2YKKyAgICAgICAgdGhlaXIgSmF2YVNjcmlwdCB3cmFwcGVycy4gQWRkIGEgRklYTUUgdG8g
b2JqZWN0R3JhcGhMb2NrIGluCisgICAgICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UgdG8g
Y29uc2lkZXIgcmV3cml0aW5nIHRoaXMgaW4gYQorICAgICAgICBsb2NrLWZyZWUgbWFubmVyLgor
CisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgV2ViR0wgY29uZm9ybWFuY2UgdGVzdHMuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2aXNpdEFkZGl0
aW9uYWxDaGlsZHJlbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PRVNW
ZXJ0ZXhBcnJheU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPRVNWZXJ0ZXhBcnJheU9i
amVjdDo6ZGVsZXRlVmVydGV4QXJyYXlPRVMpOgorICAgICAgICAoV2ViQ29yZTo6T0VTVmVydGV4
QXJyYXlPYmplY3Q6OmJpbmRWZXJ0ZXhBcnJheU9FUyk6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5k
ZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUFuZENhY2hlQnVmZmVyQmluZGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpiaW5kRnJhbWVidWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlRnJhbWVidWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlUXVlcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmVnaW5RdWVyeSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjplbmRRdWVyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVTYW1wbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJpbmRTYW1wbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0ZVN5bmMpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlVHJhbnNmb3JtRmVl
ZGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZFRy
YW5zZm9ybUZlZWRiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmJlZ2luVHJhbnNmb3JtRmVlZGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0wyUmVu
ZGVyaW5nQ29udGV4dDo6c2V0SW5kZXhlZEJ1ZmZlckJpbmRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlVmVydGV4QXJyYXkpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZFZlcnRleEFycmF5KToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmFkZE1lbWJlcnNUb09wYXF1ZVJv
b3RzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnVuY2FjaGVE
ZWxldGVkQnVmZmVyKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250
ZXh0Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xCdWZmZXI6On5XZWJHTEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTEJ1ZmZlcjo6ZGVsZXRlT2JqZWN0SW1wbCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xCdWZmZXIuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGw6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xDb250ZXh0R3JvdXA6Omhhc0FDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMQ29udGV4dEdyb3VwOjpvYmplY3RHcmFwaExvY2tGb3JBQ29udGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTENvbnRleHRHcm91cDo6ZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0
cyk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaDoKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xDb250ZXh0T2JqZWN0OjpkZXRhY2hDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMQ29udGV4dE9iamVjdDo6b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCk6CisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0xDb250ZXh0T2JqZWN0Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xGcmFtZWJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTEZyYW1lYnVmZmVy
Ojp+V2ViR0xGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTEZyYW1lYnVmZmVy
OjpyZW1vdmVBdHRhY2htZW50RnJvbUJvdW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6ZGVsZXRlT2JqZWN0SW1wbCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTEZyYW1lYnVmZmVyOjppbml0aWFsaXplQXR0YWNobWVudHMpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6YWRkTWVtYmVyc1RvT3BhcXVlUm9vdHMpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6c2V0QXR0YWNobWVudEludGVybmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMRnJhbWVidWZmZXI6OnJlbW92ZUF0dGFjaG1lbnRJbnRlcm5h
bCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMT2JqZWN0OjpydW5EZXN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMT2JqZWN0OjpkZWxldGVPYmplY3QpOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0Lmg6CisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xQcm9ncmFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUHJvZ3JhbTo6fldl
YkdMUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFByb2dyYW06OmRlbGV0ZU9iamVj
dEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xQcm9ncmFtOjphdHRhY2hTaGFkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xQcm9ncmFtOjpkZXRhY2hTaGFkZXIpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xQcm9ncmFtOjphZGRNZW1iZXJzVG9PcGFxdWVSb290cyk6CisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xQcm9ncmFtLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUXVlcnk6On5XZWJHTFF1ZXJ5KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUXVlcnk6OmRlbGV0ZU9iamVjdEltcGwpOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMUXVlcnkuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmlkbDoKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmJ1ZmZlcjo6fldlYkdMUmVuZGVyYnVmZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyYnVmZmVyOjpkZWxldGVPYmplY3RJbXBsKToKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMUmVuZGVyYnVmZmVyLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmF0dGFjaFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjp2YWxpZGF0ZUFuZENhY2hlQnVmZmVyQmluZGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpiaW5kQnVmZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJpbmRGcmFtZWJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpiaW5kUmVuZGVyYnVmZmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJpbmRUZXh0
dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0
ZU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1
bmNhY2hlRGVsZXRlZEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZUJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVGcmFtZWJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVQcm9ncmFtKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZVJlbmRl
cmJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpk
ZWxldGVTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6ZGVsZXRlVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpkZXRhY2hTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dXNlUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQb2ludGVyKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c2V0RnJhbWVidWZmZXIp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRkTWVtYmVy
c1RvT3BhcXVlUm9vdHMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6b2JqZWN0R3JhcGhMb2NrKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTFNhbXBsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTYW1w
bGVyOjp+V2ViR0xTYW1wbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMU2FtcGxlcjo6ZGVs
ZXRlT2JqZWN0SW1wbCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmg6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmlkbDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFNoYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYWRlcjo6fldl
YkdMU2hhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMU2hhZGVyOjpkZWxldGVPYmplY3RJ
bXBsKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFNoYWRlci5oOgorICAgICAgICAqIGh0
bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFNo
YXJlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFNoYXJlZE9iamVjdDo6ZGV0
YWNoQ29udGV4dEdyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMU2hhcmVkT2JqZWN0Ojpk
ZXRhY2hDb250ZXh0R3JvdXBXaXRob3V0RGVsZXRpbmdPYmplY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xTaGFyZWRPYmplY3Q6Omhhc0dyb3VwT3JDb250ZXh0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMU2hhcmVkT2JqZWN0OjpvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KToK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oOgorICAgICAgICAqIGh0
bWwvY2FudmFzL1dlYkdMU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFN5bmM6On5X
ZWJHTFN5bmMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTeW5jOjpkZWxldGVPYmplY3RJbXBs
KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFN5bmMuaDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFRleHR1cmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xUZXh0dXJlOjp+
V2ViR0xUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVGV4dHVyZTo6ZGVsZXRlT2Jq
ZWN0SW1wbCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmg6CisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVHJhbnNm
b3JtRmVlZGJhY2s6On5XZWJHTFRyYW5zZm9ybUZlZWRiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OmRlbGV0ZU9iamVjdEltcGwpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6c2V0UHJvZ3JhbSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpzZXRCb3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVk
YmFja0J1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjph
ZGRNZW1iZXJzVG9PcGFxdWVSb290cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFRyYW5zZm9y
bUZlZWRiYWNrOjp1bmJpbmRCdWZmZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVHJh
bnNmb3JtRmVlZGJhY2suaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZl
ZWRiYWNrLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3Q6On5XZWJHTFZl
cnRleEFycmF5T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmpl
Y3Q6OmRlbGV0ZU9iamVjdEltcGwpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4
QXJyYXlPYmplY3QuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2Jq
ZWN0LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0
RWxlbWVudEFycmF5QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlP
YmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjphZGRNZW1iZXJzVG9PcGFxdWVSb290cyk6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuaDoKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6On5XZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM6OmRl
bGV0ZU9iamVjdEltcGwpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVMuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTLmlkbDoKKwogMjAyMC0wOC0xMiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBBZGQgbXkgbmV3IFR3aXR0ZXIgaGFuZGxlIHRvIHRoZSBmZWF0dXJlIHN0YXR1
cyBwYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMMlJl
bmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
ZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCA2NWE1OGNkNzZmOTdiY2Q4ZTEz
Y2Y5YmEwMzAxMGQ0ZTg3ZDA4NWVlLi44ODQyYTUxOGE5NzBlM2Q5YTUyNjU2MmVhYTBjMDBiMGZj
MmM4NjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMMlJl
bmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViR0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAgdXNp
bmcgbmFtZXNwYWNlIEpTQzsKIHZvaWQgSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2aXNpdEFk
ZGl0aW9uYWxDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICB2aXNpdG9yLmFk
ZE9wYXF1ZVJvb3QoJndyYXBwZWQoKSk7CisgICAgd3JhcHBlZCgpLmFkZE1lbWJlcnNUb09wYXF1
ZVJvb3RzKHZpc2l0b3IpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4
dEN1c3RvbS5jcHAKaW5kZXggYTBkYWY4NjdjZTZhNjhmMWFiNmM4NjVhNTIwNTc5ZDE2Y2I1ZWQw
Yy4uYTNmMGFmZGY3Mjg2Y2Y5MWY4YzI1ODZhOWEwOTI1OTIxN2MwMzYyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250
ZXh0Q3VzdG9tLmNwcApAQCAtMzYsNiArMzYsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogdm9p
ZCBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KCZ3cmFwcGVkKCkp
OworICAgIHdyYXBwZWQoKS5hZGRNZW1iZXJzVG9PcGFxdWVSb290cyh2aXNpdG9yKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCmluZGV4IDc2YzYxMjAzMTgzYTlkY2MxYmRjMWJi
YTljNzIyMTIwNDFiYjBkMjYuLmJkMmY1M2E0NDY5NGE0MTAyMDlmYjk0NGQyMTYwNmY0YTdkN2Q3
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJh
eU9iamVjdC5jcHAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2luY2x1ZGUgIkV4dGVuc2lvbnNHTC5o
IgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9Mb2Nr
Lmg+CisjaW5jbHVkZSA8d3RmL0xvY2tlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTU1LDEzICs1NywxNSBAQCBSZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gT0VTVmVy
dGV4QXJyYXlPYmplY3Q6OmNyZWF0ZVZlcnRleEFycmF5T0VTKCkKIAogdm9pZCBPRVNWZXJ0ZXhB
cnJheU9iamVjdDo6ZGVsZXRlVmVydGV4QXJyYXlPRVMoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9F
UyogYXJyYXlPYmplY3QpCiB7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2NvbnRleHQu
b2JqZWN0R3JhcGhMb2NrKCkpOworCiAgICAgaWYgKCFhcnJheU9iamVjdCB8fCBtX2NvbnRleHQu
aXNDb250ZXh0TG9zdCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIWFycmF5T2JqZWN0
LT5pc0RlZmF1bHRPYmplY3QoKSAmJiBhcnJheU9iamVjdCA9PSBzdGF0aWNfY2FzdDxXZWJHTFJl
bmRlcmluZ0NvbnRleHQmPihtX2NvbnRleHQpLm1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Jj4obV9jb250ZXh0KS5zZXRC
b3VuZFZlcnRleEFycmF5T2JqZWN0KG51bGxwdHIpOworICAgICAgICBzdGF0aWNfY2FzdDxXZWJH
TFJlbmRlcmluZ0NvbnRleHQmPihtX2NvbnRleHQpLnNldEJvdW5kVmVydGV4QXJyYXlPYmplY3Qo
bG9ja2VyLCBudWxscHRyKTsKIAotICAgIGFycmF5T2JqZWN0LT5kZWxldGVPYmplY3QobV9jb250
ZXh0LmdyYXBoaWNzQ29udGV4dEdMKCkpOworICAgIGFycmF5T2JqZWN0LT5kZWxldGVPYmplY3Qo
bG9ja2VyLCBtX2NvbnRleHQuZ3JhcGhpY3NDb250ZXh0R0woKSk7CiB9CiAKIEdDR0xib29sZWFu
IE9FU1ZlcnRleEFycmF5T2JqZWN0Ojppc1ZlcnRleEFycmF5T0VTKFdlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVMqIGFycmF5T2JqZWN0KQpAQCAtNzIsNiArNzYsOCBAQCBHQ0dMYm9vbGVhbiBPRVNW
ZXJ0ZXhBcnJheU9iamVjdDo6aXNWZXJ0ZXhBcnJheU9FUyhXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTKiBhcgogCiB2b2lkIE9FU1ZlcnRleEFycmF5T2JqZWN0OjpiaW5kVmVydGV4QXJyYXlPRVMo
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyogYXJyYXlPYmplY3QpCiB7CisgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhtX2NvbnRleHQub2JqZWN0R3JhcGhMb2NrKCkpOworCiAgICAgaWYgKG1f
Y29udGV4dC5pc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtODUsMTAgKzkx
LDEwIEBAIHZvaWQgT0VTVmVydGV4QXJyYXlPYmplY3Q6OmJpbmRWZXJ0ZXhBcnJheU9FUyhXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTKiBhcnJheU9iCiAgICAgaWYgKGFycmF5T2JqZWN0ICYmICFh
cnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkgJiYgYXJyYXlPYmplY3QtPm9iamVjdCgpKSB7
CiAgICAgICAgIGV4dGVuc2lvbnMuYmluZFZlcnRleEFycmF5T0VTKGFycmF5T2JqZWN0LT5vYmpl
Y3QoKSk7CiAgICAgICAgIGFycmF5T2JqZWN0LT5zZXRIYXNFdmVyQmVlbkJvdW5kKCk7Ci0gICAg
ICAgIGNvbnRleHQuc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChhcnJheU9iamVjdCk7CisgICAg
ICAgIGNvbnRleHQuc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChsb2NrZXIsIGFycmF5T2JqZWN0
KTsKICAgICB9IGVsc2UgewogICAgICAgICBleHRlbnNpb25zLmJpbmRWZXJ0ZXhBcnJheU9FUygw
KTsKLSAgICAgICAgY29udGV4dC5zZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KG51bGxwdHIpOwor
ICAgICAgICBjb250ZXh0LnNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobG9ja2VyLCBudWxscHRy
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggMmVjODM3ODg5MDJmOTllODY2MDExNWM2ZDYz
MGFhYjUwYmQ2MjRmOS4uMmEzNDNjYjVjYTAyOTU1YTQwMTg5NjRlYWI1ZDdkNTQ2YzFhNDk4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5n
Q29udGV4dC5jcHAKQEAgLTY2LDggKzY2LDEyIEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
R2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0hlYXBJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNHZW5lcmljVHlwZWRB
cnJheVZpZXdJbmxpbmVzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0b3Iu
aD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvcklubGluZXMuaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5VHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTG9j
a2VyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzQ5LDcgKzM1Myw3IEBAIFdlYkdM
QnVmZmVyKiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUJ1ZmZlckRhdGFUYXJnZXQo
Y29uc3QgY2hhciogZnVuY3RpCiAgICAgcmV0dXJuIGJ1ZmZlcjsKIH0KIAotYm9vbCBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUFuZENhY2hlQnVmZmVyQmluZGluZyhjb25zdCBjaGFy
KiBmdW5jdGlvbk5hbWUsIEdDR0xlbnVtIHRhcmdldCwgV2ViR0xCdWZmZXIqIGJ1ZmZlcikKK2Jv
b2wgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVBbmRDYWNoZUJ1ZmZlckJpbmRpbmco
Y29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBH
Q0dMZW51bSB0YXJnZXQsIFdlYkdMQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgaWYgKCF2YWxpZGF0
ZUJ1ZmZlclRhcmdldChmdW5jdGlvbk5hbWUsIHRhcmdldCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTM2OCw3ICszNzIsNyBAQCBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZhbGlk
YXRlQW5kQ2FjaGVCdWZmZXJCaW5kaW5nKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTgogICAgICAgICBt
X2JvdW5kQ29weVdyaXRlQnVmZmVyID0gYnVmZmVyOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dEdMOjpFTEVNRU5UX0FSUkFZX0JVRkZFUjoKLSAgICAgICAgbV9ib3Vu
ZFZlcnRleEFycmF5T2JqZWN0LT5zZXRFbGVtZW50QXJyYXlCdWZmZXIoYnVmZmVyKTsKKyAgICAg
ICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5zZXRFbGVtZW50QXJyYXlCdWZmZXIobG9ja2Vy
LCBidWZmZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dEdMOjpQ
SVhFTF9QQUNLX0JVRkZFUjoKICAgICAgICAgbV9ib3VuZFBpeGVsUGFja0J1ZmZlciA9IGJ1ZmZl
cjsKQEAgLTY5Myw2ICs2OTcsOCBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldEJ1
ZmZlclN1YkRhdGEoR0NHTGVudW0gdGFyZ2V0LCBsb25nIGxvbmcgc3JjQnl0ZQogCiB2b2lkIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJpbmRGcmFtZWJ1ZmZlcihHQ0dMZW51bSB0YXJnZXQsIFdl
YkdMRnJhbWVidWZmZXIqIGJ1ZmZlcikKIHsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG9i
amVjdEdyYXBoTG9jaygpKTsKKwogICAgIGlmICghY2hlY2tPYmplY3RUb0JlQm91bmQoImJpbmRG
cmFtZWJ1ZmZlciIsIGJ1ZmZlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtNzA4LDcgKzcxNCw3
IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZEZyYW1lYnVmZmVyKEdDR0xlbnVt
IHRhcmdldCwgV2ViR0xGcmFtZWJ1ZmZlcioKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IHNldEZyYW1lYnVmZmVyKHRhcmdldCwgYnVmZmVyKTsKKyAgICBzZXRGcmFtZWJ1ZmZlcihsb2Nr
ZXIsIHRhcmdldCwgYnVmZmVyKTsKIH0KIAogdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0Ojpi
bGl0RnJhbWVidWZmZXIoR0NHTGludCBzcmNYMCwgR0NHTGludCBzcmNZMCwgR0NHTGludCBzcmNY
MSwgR0NHTGludCBzcmNZMSwgR0NHTGludCBkc3RYMCwgR0NHTGludCBkc3RZMCwgR0NHTGludCBk
c3RYMSwgR0NHTGludCBkc3RZMSwgR0NHTGJpdGZpZWxkIG1hc2ssIEdDR0xlbnVtIGZpbHRlcikK
QEAgLTcyMSw3ICs3MjcsOSBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJsaXRGcmFt
ZWJ1ZmZlcihHQ0dMaW50IHNyY1gwLCBHQ0dMaW50IHNyY1kwLCBHQ0dMaQogCiB2b2lkIFdlYkdM
MlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0ZUZyYW1lYnVmZmVyKFdlYkdMRnJhbWVidWZmZXIqIGZy
YW1lYnVmZmVyKQogewotICAgIGlmICghZGVsZXRlT2JqZWN0KGZyYW1lYnVmZmVyKSkKKyAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG9iamVjdEdyYXBoTG9jaygpKTsKKworICAgIGlmICghZGVs
ZXRlT2JqZWN0KGxvY2tlciwgZnJhbWVidWZmZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBH
Q0dMZW51bSB0YXJnZXQgPSAwOwpAQCAtMTg0MCwxMyArMTg0OCwxNSBAQCBSZWZQdHI8V2ViR0xR
dWVyeT4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlUXVlcnkoKQogCiB2b2lkIFdlYkdM
MlJlbmRlcmluZ0NvbnRleHQ6OmRlbGV0ZVF1ZXJ5KFdlYkdMUXVlcnkqIHF1ZXJ5KQogeworICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3JhcGhMb2NrKCkpOworCiAgICAgaWYgKGlz
Q29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhcXVlcnkgfHwgIXF1ZXJ5LT5vYmplY3QoKSB8fCAh
dmFsaWRhdGVXZWJHTE9iamVjdCgiZGVsZXRlUXVlcnkiLCBxdWVyeSkpCiAgICAgICAgIHJldHVy
bjsKICAgICBpZiAocXVlcnktPnRhcmdldCgpICYmIHF1ZXJ5ID09IG1fYWN0aXZlUXVlcmllcy5n
ZXQocXVlcnktPnRhcmdldCgpKSkgewogICAgICAgICBtX2NvbnRleHQtPmVuZFF1ZXJ5KHF1ZXJ5
LT50YXJnZXQoKSk7CiAgICAgICAgIG1fYWN0aXZlUXVlcmllcy5yZW1vdmUocXVlcnktPnRhcmdl
dCgpKTsKICAgICB9Ci0gICAgZGVsZXRlT2JqZWN0KHF1ZXJ5KTsKKyAgICBkZWxldGVPYmplY3Qo
bG9ja2VyLCBxdWVyeSk7CiB9CiAKIEdDR0xib29sZWFuIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OmlzUXVlcnkoV2ViR0xRdWVyeSogcXVlcnkpCkBAIC0xODY5LDYgKzE4NzksOCBAQCBib29sIFdl
YkdMMlJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlUXVlcnlUYXJnZXQoY29uc3QgY2hhciogZnVu
Y3Rpb25OYW1lLCBHQ0dMZQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJlZ2luUXVl
cnkoR0NHTGVudW0gdGFyZ2V0LCBXZWJHTFF1ZXJ5JiBxdWVyeSkKIHsKKyAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG9iamVjdEdyYXBoTG9jaygpKTsKKwogICAgIEdDR0xlbnVtIHRhcmdldEtl
eTsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2Jq
ZWN0KCJiZWdpblF1ZXJ5IiwgJnF1ZXJ5KSB8fCAhdmFsaWRhdGVRdWVyeVRhcmdldCgiYmVnaW5R
dWVyeSIsIHRhcmdldCwgJnRhcmdldEtleSkpCiAgICAgICAgIHJldHVybjsKQEAgLTE4OTIsNiAr
MTkwNCw4IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmVnaW5RdWVyeShHQ0dMZW51
bSB0YXJnZXQsIFdlYkdMUXVlcnkmIHF1ZXJ5KQogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRl
eHQ6OmVuZFF1ZXJ5KEdDR0xlbnVtIHRhcmdldCkKIHsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKG9iamVjdEdyYXBoTG9jaygpKTsKKwogICAgIEdDR0xlbnVtIHRhcmdldEtleTsKICAgICBp
ZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
fHwgIXZhbGlkYXRlUXVlcnlUYXJnZXQoImJlZ2luUXVlcnkiLCB0YXJnZXQsICZ0YXJnZXRLZXkp
KQogICAgICAgICByZXR1cm47CkBAIC0xOTYzLDYgKzE5NzcsOCBAQCBSZWZQdHI8V2ViR0xTYW1w
bGVyPiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVTYW1wbGVyKCkKIAogdm9pZCBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVTYW1wbGVyKFdlYkdMU2FtcGxlciogc2FtcGxlcikK
IHsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG9iamVjdEdyYXBoTG9jaygpKTsKKwogICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTk3
NCw3ICsxOTkwLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpkZWxldGVTYW1wbGVy
KFdlYkdMU2FtcGxlciogc2FtcGxlcikKICAgICAgICAgfQogICAgIH0KIAotICAgIGRlbGV0ZU9i
amVjdChzYW1wbGVyKTsKKyAgICBkZWxldGVPYmplY3QobG9ja2VyLCBzYW1wbGVyKTsKIH0KIAog
R0NHTGJvb2xlYW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNTYW1wbGVyKFdlYkdMU2FtcGxl
ciogc2FtcGxlcikKQEAgLTE5ODcsNiArMjAwMyw4IEBAIEdDR0xib29sZWFuIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmlzU2FtcGxlcihXZWJHTFNhbXBsZXIqIHNhbXBsZXIpCiAKIHZvaWQgV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZFNhbXBsZXIoR0NHTHVpbnQgdW5pdCwgV2ViR0xTYW1w
bGVyKiBzYW1wbGVyKQogeworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3JhcGhM
b2NrKCkpOworCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0
dXJuOwogICAgIApAQCAtMjA3Nyw5ICsyMDk1LDExIEBAIEdDR0xib29sZWFuIFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQ6OmlzU3luYyhXZWJHTFN5bmMqIHN5bmMpCiAKIHZvaWQgV2ViR0wyUmVuZGVy
aW5nQ29udGV4dDo6ZGVsZXRlU3luYyhXZWJHTFN5bmMqIHN5bmMpCiB7CisgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhvYmplY3RHcmFwaExvY2soKSk7CisKICAgICBpZiAoaXNDb250ZXh0TG9z
dE9yUGVuZGluZygpIHx8ICFzeW5jIHx8IHN5bmMtPmlzRGVsZXRlZCgpIHx8ICF2YWxpZGF0ZVdl
YkdMT2JqZWN0KCJkZWxldGVTeW5jIiwgc3luYykpCiAgICAgICAgIHJldHVybjsKLSAgICBkZWxl
dGVPYmplY3Qoc3luYyk7CisgICAgZGVsZXRlT2JqZWN0KGxvY2tlciwgc3luYyk7CiB9CiAKIEdD
R0xlbnVtIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmNsaWVudFdhaXRTeW5jKFdlYkdMU3luYyYg
c3luYywgR0NHTGJpdGZpZWxkIGZsYWdzLCBHQ0dMdWludDY0IHRpbWVvdXQpCkBAIC0yMTQ4LDYg
KzIxNjgsOCBAQCBSZWZQdHI8V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz4gV2ViR0wyUmVuZGVyaW5n
Q29udGV4dDo6Y3JlYXRlVHJhbnNmb3JtRmVlZGJhY2soKQogCiB2b2lkIFdlYkdMMlJlbmRlcmlu
Z0NvbnRleHQ6OmRlbGV0ZVRyYW5zZm9ybUZlZWRiYWNrKFdlYkdMVHJhbnNmb3JtRmVlZGJhY2sq
IGZlZWRiYWNrT2JqZWN0KQogeworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3Jh
cGhMb2NrKCkpOworCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhZmVlZGJh
Y2tPYmplY3QgfHwgZmVlZGJhY2tPYmplY3QtPmlzRGVsZXRlZCgpIHx8ICF2YWxpZGF0ZVdlYkdM
T2JqZWN0KCJkZWxldGVUcmFuc2Zvcm1GZWVkYmFjayIsIGZlZWRiYWNrT2JqZWN0KSkKICAgICAg
ICAgcmV0dXJuOwogICAgIApAQCAtMjE2MSw3ICsyMTgzLDcgQEAgdm9pZCBXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpkZWxldGVUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRyYW5zZm9ybUZlZWRiYWNr
KiBmZWUKICAgICBpZiAobV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrID09IGZlZWRiYWNrT2JqZWN0
KQogICAgICAgICBtX2JvdW5kVHJhbnNmb3JtRmVlZGJhY2sgPSBtX2RlZmF1bHRUcmFuc2Zvcm1G
ZWVkYmFjazsKIAotICAgIGRlbGV0ZU9iamVjdChmZWVkYmFja09iamVjdCk7CisgICAgZGVsZXRl
T2JqZWN0KGxvY2tlciwgZmVlZGJhY2tPYmplY3QpOwogfQogCiBHQ0dMYm9vbGVhbiBXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Ojppc1RyYW5zZm9ybUZlZWRiYWNrKFdlYkdMVHJhbnNmb3JtRmVlZGJh
Y2sqIGZlZWRiYWNrT2JqZWN0KQpAQCAtMjE3NCw2ICsyMTk2LDggQEAgR0NHTGJvb2xlYW4gV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dDo6aXNUcmFuc2Zvcm1GZWVkYmFjayhXZWJHTFRyYW5zZm9ybUZl
ZWRiYWNrKgogCiB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJpbmRUcmFuc2Zvcm1GZWVk
YmFjayhHQ0dMZW51bSB0YXJnZXQsIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2sqIGZlZWRiYWNrT2Jq
ZWN0KQogeworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3JhcGhMb2NrKCkpOwor
CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCkBA
IC0yMjQyLDcgKzIyNjYsOCBAQCB2b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmJlZ2luVHJh
bnNmb3JtRmVlZGJhY2soR0NHTGVudW0gcHJpbWl0aXZlTW9kZSkKIAogICAgIG1fY29udGV4dC0+
YmVnaW5UcmFuc2Zvcm1GZWVkYmFjayhwcmltaXRpdmVNb2RlKTsKIAotICAgIG1fYm91bmRUcmFu
c2Zvcm1GZWVkYmFjay0+c2V0UHJvZ3JhbSgqbV9jdXJyZW50UHJvZ3JhbSk7CisgICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhvYmplY3RHcmFwaExvY2soKSk7CisgICAgbV9ib3VuZFRyYW5zZm9y
bUZlZWRiYWNrLT5zZXRQcm9ncmFtKGxvY2tlciwgKm1fY3VycmVudFByb2dyYW0pOwogICAgIG1f
Ym91bmRUcmFuc2Zvcm1GZWVkYmFjay0+c2V0QWN0aXZlKHRydWUpOwogICAgIG1fYm91bmRUcmFu
c2Zvcm1GZWVkYmFjay0+c2V0UGF1c2VkKGZhbHNlKTsKIH0KQEAgLTIzMzksNiArMjM2NCw4IEBA
IHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cmVzdW1lVHJhbnNmb3JtRmVlZGJhY2soKQog
CiBib29sIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OnNldEluZGV4ZWRCdWZmZXJCaW5kaW5nKGNv
bnN0IGNoYXIgKmZ1bmN0aW9uTmFtZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMdWludCBpbmRleCwg
V2ViR0xCdWZmZXIqIGJ1ZmZlcikKIHsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG9iamVj
dEdyYXBoTG9jaygpKTsKKwogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjM2MywxMiArMjM5MCwxMiBAQCBib29sIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OnNldEluZGV4ZWRCdWZmZXJCaW5kaW5nKGNvbnN0IGNoYXIgKmZ1bmN0
aW9uTmFtZSwgRwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKCF2YWxp
ZGF0ZUFuZENhY2hlQnVmZmVyQmluZGluZyhmdW5jdGlvbk5hbWUsIHRhcmdldCwgYnVmZmVyKSkK
KyAgICBpZiAoIXZhbGlkYXRlQW5kQ2FjaGVCdWZmZXJCaW5kaW5nKGxvY2tlciwgZnVuY3Rpb25O
YW1lLCB0YXJnZXQsIGJ1ZmZlcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN3aXRj
aCAodGFyZ2V0KSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHRHTDo6VFJBTlNGT1JNX0ZFRURC
QUNLX0JVRkZFUjoKLSAgICAgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5zZXRCb3VuZElu
ZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcihpbmRleCwgYnVmZmVyKTsKKyAgICAgICAgbV9i
b3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5zZXRCb3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1
ZmZlcihsb2NrZXIsIGluZGV4LCBidWZmZXIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dEdMOjpVTklGT1JNX0JVRkZFUjoKICAgICAgICAgbV9ib3VuZEluZGV4ZWRV
bmlmb3JtQnVmZmVyc1tpbmRleF0gPSBidWZmZXI7CkBAIC0yNTczLDIwICsyNjAwLDI2IEBAIFJl
ZlB0cjxXZWJHTFZlcnRleEFycmF5T2JqZWN0PiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpjcmVh
dGVWZXJ0ZXhBcnJheSgpCiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6ZGVsZXRlVmVy
dGV4QXJyYXkoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdCogYXJyYXlPYmplY3QpCiB7CisgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhvYmplY3RHcmFwaExvY2soKSk7CisKICAgICBpZiAoIWFycmF5
T2JqZWN0IHx8IGlzQ29udGV4dExvc3QoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGFy
cmF5T2JqZWN0LT5pc0RlbGV0ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFhcnJh
eU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkgJiYgYXJyYXlPYmplY3QgPT0gbV9ib3VuZFZlcnRl
eEFycmF5T2JqZWN0KQorICAgIGlmICghYXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpICYm
IGFycmF5T2JqZWN0ID09IG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdCkgewogI2lmIFVTRShPUEVO
R0xfRVMpCi0gICAgICAgIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobnVsbHB0cik7CisgICAg
ICAgIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobG9ja2VyLCBudWxscHRyKTsKICNlbHNlCisg
ICAgICAgIC8vIGJpbmRWZXJ0ZXhBcnJheSBncmFicyB0aGUgbG9jayBpbnRlcm5hbGx5LgorICAg
ICAgICBsb2NrZXIudW5sb2NrRWFybHkoKTsKICAgICAgICAgYmluZFZlcnRleEFycmF5KG51bGxw
dHIpOyAvLyBUaGUgZGVmYXVsdCBWQU8gd2FzIHJlbW92ZWQgaW4gT3BlbkdMIDMuMyBidXQgbm90
IGZyb20gV2ViR0wgMjsgYmluZCB0aGUgZGVmYXVsdCBmb3IgV2ViR0wgdG8gdXNlLgorICAgICAg
ICBsb2NrZXIgPSBob2xkTG9jayhvYmplY3RHcmFwaExvY2soKSk7CiAjZW5kaWYKKyAgICB9CiAK
LSAgICBhcnJheU9iamVjdC0+ZGVsZXRlT2JqZWN0KGdyYXBoaWNzQ29udGV4dEdMKCkpOworICAg
IGFycmF5T2JqZWN0LT5kZWxldGVPYmplY3QobG9ja2VyLCBncmFwaGljc0NvbnRleHRHTCgpKTsK
IH0KIAogR0NHTGJvb2xlYW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6aXNWZXJ0ZXhBcnJheShX
ZWJHTFZlcnRleEFycmF5T2JqZWN0KiBhcnJheU9iamVjdCkKQEAgLTI2MDIsNiArMjYzNSw4IEBA
IEdDR0xib29sZWFuIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmlzVmVydGV4QXJyYXkoV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdCogYXJyYXlPCiAKIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6
YmluZFZlcnRleEFycmF5KFdlYkdMVmVydGV4QXJyYXlPYmplY3QqIGFycmF5T2JqZWN0KQogewor
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3JhcGhMb2NrKCkpOworCiAgICAgaWYg
KGlzQ29udGV4dExvc3QoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yNjEzLDEwICsyNjQ4LDEw
IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6YmluZFZlcnRleEFycmF5KFdlYkdMVmVy
dGV4QXJyYXlPYmplY3QqIGFycmF5T2JqZWN0CiAgICAgICAgIG1fY29udGV4dC0+YmluZFZlcnRl
eEFycmF5KGFycmF5T2JqZWN0LT5vYmplY3QoKSk7CiAKICAgICAgICAgYXJyYXlPYmplY3QtPnNl
dEhhc0V2ZXJCZWVuQm91bmQoKTsKLSAgICAgICAgc2V0Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChh
cnJheU9iamVjdCk7CisgICAgICAgIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobG9ja2VyLCBh
cnJheU9iamVjdCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9jb250ZXh0LT5iaW5kVmVydGV4
QXJyYXkobV9kZWZhdWx0VmVydGV4QXJyYXlPYmplY3QtPm9iamVjdCgpKTsKLSAgICAgICAgc2V0
Qm91bmRWZXJ0ZXhBcnJheU9iamVjdChtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKSk7
CisgICAgICAgIHNldEJvdW5kVmVydGV4QXJyYXlPYmplY3QobG9ja2VyLCBtX2RlZmF1bHRWZXJ0
ZXhBcnJheU9iamVjdC5nZXQoKSk7CiAgICAgfQogfQogCkBAIC0zMDEwLDYgKzMwNDUsMzYgQEAg
Ym9vbCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpjaGVja0FuZFRyYW5zbGF0ZUF0dGFjaG1lbnRz
KGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjphZGRNZW1iZXJzVG9PcGFxdWVSb290cyhKU0M6OlNsb3RWaXNp
dG9yJiB2aXNpdG9yKQoreworICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZE1lbWJl
cnNUb09wYXF1ZVJvb3RzKHZpc2l0b3IpOworCisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhv
YmplY3RHcmFwaExvY2soKSk7CisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fcmVhZEZyYW1l
YnVmZmVyQmluZGluZy5nZXQoKSk7CisgICAgaWYgKG1fcmVhZEZyYW1lYnVmZmVyQmluZGluZykK
KyAgICAgICAgbV9yZWFkRnJhbWVidWZmZXJCaW5kaW5nLT5hZGRNZW1iZXJzVG9PcGFxdWVSb290
cyhsb2NrZXIsIHZpc2l0b3IpOworCisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fYm91bmRU
cmFuc2Zvcm1GZWVkYmFjay5nZXQoKSk7CisgICAgaWYgKG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFj
aykKKyAgICAgICAgbV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrLT5hZGRNZW1iZXJzVG9PcGFxdWVS
b290cyhsb2NrZXIsIHZpc2l0b3IpOworCisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fYm91
bmRDb3B5UmVhZEJ1ZmZlci5nZXQoKSk7CisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fYm91
bmRDb3B5V3JpdGVCdWZmZXIuZ2V0KCkpOworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2Jv
dW5kUGl4ZWxQYWNrQnVmZmVyLmdldCgpKTsKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9i
b3VuZFBpeGVsVW5wYWNrQnVmZmVyLmdldCgpKTsKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qo
bV9ib3VuZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyLmdldCgpKTsKKyAgICB2aXNpdG9yLmFkZE9w
YXF1ZVJvb3QobV9ib3VuZFVuaWZvcm1CdWZmZXIuZ2V0KCkpOworCisgICAgZm9yIChhdXRvJiBi
dWZmZXIgOiBtX2JvdW5kSW5kZXhlZFVuaWZvcm1CdWZmZXJzKQorICAgICAgICB2aXNpdG9yLmFk
ZE9wYXF1ZVJvb3QoYnVmZmVyLmdldCgpKTsKKworICAgIGZvciAoYXV0byYgZW50cnkgOiBtX2Fj
dGl2ZVF1ZXJpZXMpCisgICAgICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChlbnRyeS52YWx1ZS5n
ZXQoKSk7CisKKyAgICBmb3IgKGF1dG8mIGVudHJ5IDogbV9ib3VuZFNhbXBsZXJzKQorICAgICAg
ICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoZW50cnkuZ2V0KCkpOworfQorCiBHQ0dMZW51bSBXZWJH
TDJSZW5kZXJpbmdDb250ZXh0OjpiYXNlSW50ZXJuYWxGb3JtYXRGcm9tSW50ZXJuYWxGb3JtYXQo
R0NHTGVudW0gaW50ZXJuYWxmb3JtYXQpCiB7CiAgICAgLy8gSGFuZGxlcyBzaXplZCwgdW5zaXpl
ZCwgYW5kIGNvbXByZXNzZWQgaW50ZXJuYWwgZm9ybWF0cy4KQEAgLTM0OTEsNyArMzU1Niw3IEBA
IHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cmVhZFBpeGVscyhHTGludCB4LCBHTGludCB5
LCBHTHNpemVpIHdpZHRoLCBHTHNpemVpCiAgICAgaWYgKGJpbmRpbmcgPT0gYnVmZmVyKSBcCiAg
ICAgICAgIGJpbmRpbmcgPSBudWxscHRyOwogCi12b2lkIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6
OnVuY2FjaGVEZWxldGVkQnVmZmVyKFdlYkdMQnVmZmVyKiBidWZmZXIpCit2b2lkIFdlYkdMMlJl
bmRlcmluZ0NvbnRleHQ6OnVuY2FjaGVEZWxldGVkQnVmZmVyKGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiBsb2NrZXIsIFdlYkdMQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgQVNTRVJUKGJ1ZmZlcik7CiAK
QEAgLTM1MDEsOSArMzU2Niw5IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6dW5jYWNo
ZURlbGV0ZWRCdWZmZXIoV2ViR0xCdWZmZXIqIGJ1ZmZlcikKICAgICBSRU1PVkVfQlVGRkVSX0ZS
T01fQklORElORyhtX2JvdW5kUGl4ZWxVbnBhY2tCdWZmZXIpOwogICAgIFJFTU9WRV9CVUZGRVJf
RlJPTV9CSU5ESU5HKG1fYm91bmRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcik7CiAgICAgUkVNT1ZF
X0JVRkZFUl9GUk9NX0JJTkRJTkcobV9ib3VuZFVuaWZvcm1CdWZmZXIpOwotICAgIG1fYm91bmRU
cmFuc2Zvcm1GZWVkYmFjay0+dW5iaW5kQnVmZmVyKCpidWZmZXIpOworICAgIG1fYm91bmRUcmFu
c2Zvcm1GZWVkYmFjay0+dW5iaW5kQnVmZmVyKGxvY2tlciwgKmJ1ZmZlcik7CiAKLSAgICBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmNhY2hlRGVsZXRlZEJ1ZmZlcihidWZmZXIpOworICAg
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVuY2FjaGVEZWxldGVkQnVmZmVyKGxvY2tlciwg
YnVmZmVyKTsKIH0KIAogI3VuZGVmIFJFTU9WRV9CVUZGRVJfRlJPTV9CSU5ESU5HCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmgKaW5k
ZXggODE5OWQ4ZTY3MzBkMTU0NzcyMmUyZWUwM2MxZWU2NzJkMDc0MzlhYy4uOTZkMWJmNTg1MjNl
MWU1ZWVkM2FlNGU1ZGUzNGI1ZTZjYzQ4ZWVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuaApAQCAtMjYxLDYgKzI2MSw4IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgY2hlY2tBbmRUcmFuc2xhdGVBdHRhY2htZW50cyhjb25zdCBj
aGFyKiBmdW5jdGlvbk5hbWUsIEdDR0xlbnVtLCBWZWN0b3I8R0NHTGVudW0+Jik7CiAKKyAgICB2
b2lkIGFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKEpTQzo6U2xvdFZpc2l0b3ImKSBvdmVycmlkZTsK
KwogcHJpdmF0ZToKICAgICBXZWJHTDJSZW5kZXJpbmdDb250ZXh0KENhbnZhc0Jhc2UmLCBHcmFw
aGljc0NvbnRleHRHTEF0dHJpYnV0ZXMpOwogICAgIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQoQ2Fu
dmFzQmFzZSYsIFJlZjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4mJiwgR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzKTsKQEAgLTI4NCw3ICsyODYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgdmFs
aWRhdGVCdWZmZXJUYXJnZXRDb21wYXRpYmlsaXR5KGNvbnN0IGNoYXIqLCBHQ0dMZW51bSwgV2Vi
R0xCdWZmZXIqKTsKICAgICBXZWJHTEJ1ZmZlciogdmFsaWRhdGVCdWZmZXJEYXRhUGFyYW1ldGVy
cyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gdXNh
Z2UpIGZpbmFsOwogICAgIFdlYkdMQnVmZmVyKiB2YWxpZGF0ZUJ1ZmZlckRhdGFUYXJnZXQoY29u
c3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQ0dMZW51bSB0YXJnZXQpIGZpbmFsOwotICAgIGJvb2wg
dmFsaWRhdGVBbmRDYWNoZUJ1ZmZlckJpbmRpbmcoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBH
Q0dMZW51bSB0YXJnZXQsIFdlYkdMQnVmZmVyKikgZmluYWw7CisgICAgYm9vbCB2YWxpZGF0ZUFu
ZENhY2hlQnVmZmVyQmluZGluZyhjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJiwgY29uc3QgY2hh
ciogZnVuY3Rpb25OYW1lLCBHQ0dMZW51bSB0YXJnZXQsIFdlYkdMQnVmZmVyKikgZmluYWw7CiAg
ICAgR0NHTGludCBnZXRNYXhEcmF3QnVmZmVycygpIGZpbmFsOwogICAgIEdDR0xpbnQgZ2V0TWF4
Q29sb3JBdHRhY2htZW50cygpIGZpbmFsOwogICAgIGJvb2wgdmFsaWRhdGVJbmRleEFycmF5Q29u
c2VydmF0aXZlKEdDR0xlbnVtIHR5cGUsIHVuc2lnbmVkJiBudW1FbGVtZW50c1JlcXVpcmVkKSBm
aW5hbDsKQEAgLTMyMSw3ICszMjMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgdmFsaWRhdGVUZXhT
dG9yYWdlRnVuY1BhcmFtZXRlcnMoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMc2l6ZWkgbGV2ZWxzLCBH
Q0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0
LCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpOwogI2VuZGlmCiAKLSAgICB2b2lkIHVuY2FjaGVE
ZWxldGVkQnVmZmVyKFdlYkdMQnVmZmVyKikgZmluYWw7CisgICAgdm9pZCB1bmNhY2hlRGVsZXRl
ZEJ1ZmZlcihjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJiwgV2ViR0xCdWZmZXIqKSBmaW5hbDsK
IAogICAgIGVudW0gY2xhc3MgQ2xlYXJCdWZmZXJDYWxsZXIgOiB1aW50OF90IHsKICAgICAgICAg
Q2xlYXJCdWZmZXJpdiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNw
cAppbmRleCA1YTc5NjhiYWZjYzAzMmZjYjIwODI2MTExNDBiZGJiZDBkOWVlYzAyLi4xZWNjM2Nh
NGZmY2YxZTdlYWYxZWU5ZWRkMzJlZGI5MjFlMmUzMDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiV2Vi
R0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQXJyYXlCdWZmZXIuaD4KKyNpbmNsdWRlIDx3dGYv
TG9jay5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC00OCwxMCArNTAsMTMgQEAgV2ViR0xCdWZmZXI6OldlYkdMQnVmZmVyKFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmIGN0eCkKIAogV2ViR0xCdWZmZXI6On5XZWJHTEJ1ZmZlcigpCiB7Ci0g
ICAgZGVsZXRlT2JqZWN0KDApOworICAgIGlmICghaGFzR3JvdXBPckNvbnRleHQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgcnVuRGVzdHJ1Y3RvcigpOwogfQogCi12b2lkIFdlYkdMQnVmZmVy
OjpkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QsIFBs
YXRmb3JtR0xPYmplY3Qgb2JqZWN0KQordm9pZCBXZWJHTEJ1ZmZlcjo6ZGVsZXRlT2JqZWN0SW1w
bChjb25zdCBBYnN0cmFjdExvY2tlciYsIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0
M2QsIFBsYXRmb3JtR0xPYmplY3Qgb2JqZWN0KQogewogICAgIGNvbnRleHQzZC0+ZGVsZXRlQnVm
ZmVyKG9iamVjdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaApp
bmRleCBlNGRjNzc5ODJiMzA3OWY5YTA4YzljYTVjNTlkNzU4Njc1YzM4MzliLi4wNWE4MGY5M2Jm
ZDFkNDQ4ZDUyZjA4YTY2MGZmNjZiYzlhYzdkNmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQnVmZmVyLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBXZWJHTEJ1ZmZlcihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAKLSAgICB2b2lkIGRl
bGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoY29uc3QgV1RGOjpBYnN0cmFj
dExvY2tlciYsIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9iamVjdCkgb3Zl
cnJpZGU7CiAKICAgICBHQ0dMZW51bSBtX3RhcmdldCB7IDAgfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRsCmluZGV4IDZlMmFiOWM1N2JmMTUyNjYzMWY2NTZj
ZWE1MTk3MTk3OTA5NmFhNTcuLmRhNDcwMzU2NGI2MDQ4YTk0NjBkMzJlOTlkMWQ1Y2M1ZDZjZTFh
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwKQEAgLTI1
LDUgKzI1LDYgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIEdlbmVyYXRlSXNS
ZWFjaGFibGU9SW1wbAogXSBpbnRlcmZhY2UgV2ViR0xCdWZmZXIgewogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEdyb3VwLmNwcAppbmRleCA0MmI5Y2Nm
NDIzZTIwMzBkZjY0YzFmNjU5NGJhZDM5ZTVlZGI5YjFjLi4zYTgyMGRlYjg1YjQ1N2I0MDAyNDM2
MGY3MDRhMGM0YTk5YzA0OTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTENvbnRleHRHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xDb250ZXh0R3JvdXAuY3BwCkBAIC00NCwxMiArNDQsMjggQEAgV2ViR0xDb250ZXh0R3Jv
dXA6On5XZWJHTENvbnRleHRHcm91cCgpCiAgICAgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygp
OwogfQogCitib29sIFdlYkdMQ29udGV4dEdyb3VwOjpoYXNBQ29udGV4dCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuICFtX2NvbnRleHRzLmlzRW1wdHkoKTsKK30KKwogR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wmIFdlYkdMQ29udGV4dEdyb3VwOjpnZXRBR3JhcGhpY3NDb250ZXh0R0woKQogewogICAg
IEFTU0VSVCghbV9jb250ZXh0cy5pc0VtcHR5KCkpOwogICAgIHJldHVybiAqKCptX2NvbnRleHRz
LmJlZ2luKCkpLT5ncmFwaGljc0NvbnRleHRHTCgpOwogfQogCitXVEY6OkxvY2smIFdlYkdMQ29u
dGV4dEdyb3VwOjpvYmplY3RHcmFwaExvY2tGb3JBQ29udGV4dCgpCit7CisgICAgQVNTRVJUKCFt
X2NvbnRleHRzLmlzRW1wdHkoKSk7CisgICAgLy8gU2luY2UgdGhlIFdFQkdMX3NoYXJlZF9vYmpl
Y3RzIGV4dGVuc2lvbiBuZXZlciBzaGlwcGVkLCBhbmQgaXMKKyAgICAvLyB1bmxpa2VseSB0bywg
dGhpcyBpcyBlcXVpdmFsZW50IHRvIFdlYkdMQ29udGV4dE9iamVjdCdzCisgICAgLy8gaW1wbGVt
ZW50YXRpb24uIElmIHRoZXJlIHdlcmUgdGhlIHBvc3NpYmlsaXR5IG9mIFdlYkdMIG9iamVjdHMK
KyAgICAvLyBiZWluZyBzaGFyZWQgYmV0d2VlbiBtdWx0aXBsZSBjb250ZXh0cywgdGhpcyB3b3Vs
ZCBoYXZlIHRvIGJlCisgICAgLy8gcmV0aG91Z2h0LgorICAgIHJldHVybiAoKm1fY29udGV4dHMu
YmVnaW4oKSktPm9iamVjdEdyYXBoTG9jaygpOworfQorCiB2b2lkIFdlYkdMQ29udGV4dEdyb3Vw
OjphZGRDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCiB7CiAgICAg
bV9jb250ZXh0cy5hZGQoJmNvbnRleHQpOwpAQCAtNzYsOCArOTIsMTcgQEAgdm9pZCBXZWJHTENv
bnRleHRHcm91cDo6YWRkT2JqZWN0KFdlYkdMU2hhcmVkT2JqZWN0JiBvYmplY3QpCiAKIHZvaWQg
V2ViR0xDb250ZXh0R3JvdXA6OmRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKQogeworICAgIGlm
IChtX2NvbnRleHRzLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBObyBvYmplY3RHcmFwaExvY2sg
aXMgYXZhaWxhYmxlIHRvIGNvdmVyIHRoZSBjYWxscyB0bworICAgICAgICAvLyBXZWJHTE9iamVj
dDo6ZGVsZXRlT2JqZWN0LgorICAgICAgICB3aGlsZSAoIW1fZ3JvdXBPYmplY3RzLmlzRW1wdHko
KSkKKyAgICAgICAgICAgICgqbV9ncm91cE9iamVjdHMuYmVnaW4oKSktPmRldGFjaENvbnRleHRH
cm91cFdpdGhvdXREZWxldGluZ09iamVjdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhvYmplY3RHcmFwaExvY2tGb3JBQ29udGV4dCgpKTsK
ICAgICB3aGlsZSAoIW1fZ3JvdXBPYmplY3RzLmlzRW1wdHkoKSkKLSAgICAgICAgKCptX2dyb3Vw
T2JqZWN0cy5iZWdpbigpKS0+ZGV0YWNoQ29udGV4dEdyb3VwKCk7CisgICAgICAgICgqbV9ncm91
cE9iamVjdHMuYmVnaW4oKSktPmRldGFjaENvbnRleHRHcm91cChsb2NrZXIpOwogfQogCiB2b2lk
IFdlYkdMQ29udGV4dEdyb3VwOjpsb3NlQ29udGV4dEdyb3VwKFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6Okxvc3RDb250ZXh0TW9kZSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dEdyb3VwLmgKaW5kZXggNjNkMWQyOTAxOWE3MWQ3NzhlY2VjM2M5MTNm
YjRmMWFiMWE1MjA1Yi4uNTIxMjMwZGU1YThkOGQyNTFhNTcxZDZiN2FjNDM5NDlhNWE2NGZkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0R3JvdXAu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRHcm91cC5oCkBA
IC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKFdFQkdMKQogCiAjaW5jbHVkZSAiV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5oIgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNDIsNyArNDMsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRPYmplY3Qo
V2ViR0xTaGFyZWRPYmplY3QmKTsKICAgICB2b2lkIHJlbW92ZU9iamVjdChXZWJHTFNoYXJlZE9i
amVjdCYpOwogCisgICAgYm9vbCBoYXNBQ29udGV4dCgpIGNvbnN0OwogICAgIEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMJiBnZXRBR3JhcGhpY3NDb250ZXh0R0woKTsKKyAgICBMb2NrJiBvYmplY3RH
cmFwaExvY2tGb3JBQ29udGV4dCgpOwogCiAgICAgdm9pZCBsb3NlQ29udGV4dEdyb3VwKFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6Okxvc3RDb250ZXh0TW9kZSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRPYmplY3QuY3BwCmluZGV4IDQ1MTQxMjhi
NTFmODRlYjdjNzBiODAyMWY1OWQ4NzVkMWY1NThjMTMuLmE5Yjg0MzA1N2E5NjVmOTc5NzA1NDVh
ODdhNzRmYTc3OWYyYWM5MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQ29udGV4dE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xDb250ZXh0T2JqZWN0LmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShXRUJH
TCkKIAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKKyNpbmNsdWRlIDx3
dGYvTG9jay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQzLDE2ICs0NCwyMyBAQCBX
ZWJHTENvbnRleHRPYmplY3Q6On5XZWJHTENvbnRleHRPYmplY3QoKQogICAgICAgICBtX2NvbnRl
eHQtPnJlbW92ZUNvbnRleHRPYmplY3QoKnRoaXMpOwogfQogCi12b2lkIFdlYkdMQ29udGV4dE9i
amVjdDo6ZGV0YWNoQ29udGV4dCgpCit2b2lkIFdlYkdMQ29udGV4dE9iamVjdDo6ZGV0YWNoQ29u
dGV4dChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKQogewogICAgIGRldGFjaCgpOwogICAg
IGlmIChtX2NvbnRleHQpIHsKLSAgICAgICAgZGVsZXRlT2JqZWN0KG1fY29udGV4dC0+Z3JhcGhp
Y3NDb250ZXh0R0woKSk7CisgICAgICAgIGRlbGV0ZU9iamVjdChsb2NrZXIsIG1fY29udGV4dC0+
Z3JhcGhpY3NDb250ZXh0R0woKSk7CiAgICAgICAgIG1fY29udGV4dC0+cmVtb3ZlQ29udGV4dE9i
amVjdCgqdGhpcyk7CiAgICAgICAgIG1fY29udGV4dCA9IG51bGxwdHI7CiAgICAgfQogfQogCitX
VEY6OkxvY2smIFdlYkdMQ29udGV4dE9iamVjdDo6b2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgp
Cit7CisgICAgLy8gU2hvdWxkIG5vdCBjYWxsIHRoaXMgaWYgdGhlIG9iamVjdCBvciBjb250ZXh0
IGhhcyBiZWVuIGRlbGV0ZWQuCisgICAgQVNTRVJUKG1fY29udGV4dCk7CisgICAgcmV0dXJuIG1f
Y29udGV4dC0+b2JqZWN0R3JhcGhMb2NrKCk7Cit9CisKIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KiBXZWJHTENvbnRleHRPYmplY3Q6OmdldEFHcmFwaGljc0NvbnRleHRHTCgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fY29udGV4dCA/IG1fY29udGV4dC0+Z3JhcGhpY3NDb250ZXh0R0woKSA6IG51
bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRl
eHRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVj
dC5oCmluZGV4IGMzOGU2NDg3MjNlNDdiNTcyM2YwOTA1Yjg1ZGIyMWYzOGIxMTUxZDMuLjM4MzVk
ODBhYTdhOTcxZjY5MzE4ZmNkZWMxNDA3NGVlMGUyNTNjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dE9iamVjdC5oCkBAIC00Nyw3ICs0Nyw5IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuICZjb250ZXh0ID09IG1fY29udGV4dDsKICAgICB9CiAKLSAg
ICB2b2lkIGRldGFjaENvbnRleHQoKTsKKyAgICB2b2lkIGRldGFjaENvbnRleHQoY29uc3QgV1RG
OjpBYnN0cmFjdExvY2tlciYpOworCisgICAgV1RGOjpMb2NrJiBvYmplY3RHcmFwaExvY2tGb3JD
b250ZXh0KCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBXZWJHTENvbnRleHRPYmplY3Qo
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcAppbmRleCBlNmY0MzgzM2RjNTI1MDc0Yzc0OTJmODA3
NzFmOGE1Zjk2MWVlZmU2Li5mZTFhODdlNWJlMmIwZDE5MzhiZGQ0NjdhMTNmN2FmZjI0ZTc0Mjhl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNw
cApAQCAtMzIsNiArMzIsMTAgQEAKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2lu
Y2x1ZGUgIldlYkdMRHJhd0J1ZmZlcnMuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0b3IuaD4KKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvcklubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYv
TG9jay5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC01Myw5ICs1NywxMCBAQCBuYW1lc3BhY2UgewogICAgICAgICBib29sIGlzVmFsaWQoKSBj
b25zdCBvdmVycmlkZTsKICAgICAgICAgYm9vbCBpc0luaXRpYWxpemVkKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgICAgIHZvaWQgc2V0SW5pdGlhbGl6ZWQoKSBvdmVycmlkZTsKLSAgICAgICAgdm9p
ZCBvbkRldGFjaGVkKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKikgb3ZlcnJpZGU7CisgICAgICAg
IHZvaWQgb25EZXRhY2hlZChjb25zdCBBYnN0cmFjdExvY2tlciYsIEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgYXR0YWNoKEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKiwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBhdHRhY2htZW50KSBvdmVycmlkZTsK
ICAgICAgICAgdm9pZCB1bmF0dGFjaChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIEdDR0xlbnVt
IHRhcmdldCwgR0NHTGVudW0gYXR0YWNobWVudCkgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgYWRk
TWVtYmVyc1RvT3BhcXVlUm9vdHMoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBKU0M6OlNsb3RWaXNp
dG9yJikgb3ZlcnJpZGU7CiAKICAgICAgICAgV2ViR0xSZW5kZXJidWZmZXJBdHRhY2htZW50KCkg
eyB9OwogCkBAIC0xMTUsOSArMTIwLDkgQEAgbmFtZXNwYWNlIHsKICAgICAgICAgICAgIG1fcmVu
ZGVyYnVmZmVyLT5zZXRJbml0aWFsaXplZCgpOwogICAgIH0KIAotICAgIHZvaWQgV2ViR0xSZW5k
ZXJidWZmZXJBdHRhY2htZW50OjpvbkRldGFjaGVkKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBj
b250ZXh0KQorICAgIHZvaWQgV2ViR0xSZW5kZXJidWZmZXJBdHRhY2htZW50OjpvbkRldGFjaGVk
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBj
b250ZXh0KQogICAgIHsKLSAgICAgICAgbV9yZW5kZXJidWZmZXItPm9uRGV0YWNoZWQoY29udGV4
dCk7CisgICAgICAgIG1fcmVuZGVyYnVmZmVyLT5vbkRldGFjaGVkKGxvY2tlciwgY29udGV4dCk7
CiAgICAgfQogCiAgICAgdm9pZCBXZWJHTFJlbmRlcmJ1ZmZlckF0dGFjaG1lbnQ6OmF0dGFjaChH
cmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dCwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMZW51
bSBhdHRhY2htZW50KQpAQCAtMTM3LDYgKzE0MiwxMSBAQCBuYW1lc3BhY2UgewogICAgICAgICAg
ICAgY29udGV4dC0+ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIodGFyZ2V0LCBhdHRhY2htZW50LCBH
cmFwaGljc0NvbnRleHRHTDo6UkVOREVSQlVGRkVSLCAwKTsKICAgICB9CiAKKyAgICB2b2lkIFdl
YkdMUmVuZGVyYnVmZmVyQXR0YWNobWVudDo6YWRkTWVtYmVyc1RvT3BhcXVlUm9vdHMoY29uc3Qg
QWJzdHJhY3RMb2NrZXImLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQorICAgIHsKKyAgICAg
ICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fcmVuZGVyYnVmZmVyLmdldCgpKTsKKyAgICB9CisK
ICAgICBjbGFzcyBXZWJHTFRleHR1cmVBdHRhY2htZW50IDogcHVibGljIFdlYkdMRnJhbWVidWZm
ZXI6OldlYkdMQXR0YWNobWVudCB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgUmVmPFdl
YkdMRnJhbWVidWZmZXI6OldlYkdMQXR0YWNobWVudD4gY3JlYXRlKFdlYkdMVGV4dHVyZSosIEdD
R0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGludCBsYXllcik7CkBAIC0xNTMsOSAr
MTYzLDEwIEBAIG5hbWVzcGFjZSB7CiAgICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJy
aWRlOwogICAgICAgICBib29sIGlzSW5pdGlhbGl6ZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICAg
ICAgdm9pZCBzZXRJbml0aWFsaXplZCgpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIG9uRGV0YWNo
ZWQoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBvbkRl
dGFjaGVkKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKSBv
dmVycmlkZTsKICAgICAgICAgdm9pZCBhdHRhY2goR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBH
Q0dMZW51bSB0YXJnZXQsIEdDR0xlbnVtIGF0dGFjaG1lbnQpIG92ZXJyaWRlOwogICAgICAgICB2
b2lkIHVuYXR0YWNoKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgR0NHTGVudW0gdGFyZ2V0LCBH
Q0dMZW51bSBhdHRhY2htZW50KSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBhZGRNZW1iZXJzVG9P
cGFxdWVSb290cyhjb25zdCBBYnN0cmFjdExvY2tlciYsIEpTQzo6U2xvdFZpc2l0b3ImKSBvdmVy
cmlkZTsKIAogICAgICAgICBXZWJHTFRleHR1cmVBdHRhY2htZW50KCkgeyB9OwogCkBAIC0yMjEs
OSArMjMyLDkgQEAgbmFtZXNwYWNlIHsKICAgICAgICAgLy8gVGV4dHVyZXMgYXJlIGFzc3VtZWQg
dG8gYmUgaW5pdGlhbGl6ZWQuCiAgICAgfQogCi0gICAgdm9pZCBXZWJHTFRleHR1cmVBdHRhY2ht
ZW50OjpvbkRldGFjaGVkKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0KQorICAgIHZv
aWQgV2ViR0xUZXh0dXJlQXR0YWNobWVudDo6b25EZXRhY2hlZChjb25zdCBBYnN0cmFjdExvY2tl
ciYgbG9ja2VyLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dCkKICAgICB7Ci0gICAg
ICAgIG1fdGV4dHVyZS0+b25EZXRhY2hlZChjb250ZXh0KTsKKyAgICAgICAgbV90ZXh0dXJlLT5v
bkRldGFjaGVkKGxvY2tlciwgY29udGV4dCk7CiAgICAgfQogCiAgICAgdm9pZCBXZWJHTFRleHR1
cmVBdHRhY2htZW50OjphdHRhY2goR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnRleHQsIEdD
R0xlbnVtIHRhcmdldCwgR0NHTGVudW0gYXR0YWNobWVudCkKQEAgLTI1Myw2ICsyNjQsMTEgQEAg
bmFtZXNwYWNlIHsKICNlbmRpZgogICAgIH0KIAorICAgIHZvaWQgV2ViR0xUZXh0dXJlQXR0YWNo
bWVudDo6YWRkTWVtYmVyc1RvT3BhcXVlUm9vdHMoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBKU0M6
OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQorICAgIHsKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVS
b290KG1fdGV4dHVyZS5nZXQoKSk7CisgICAgfQorCiAjaWYgIVVTRShBTkdMRSkKICAgICBib29s
IGlzQXR0YWNobWVudENvbXBsZXRlKFdlYkdMRnJhbWVidWZmZXI6OldlYkdMQXR0YWNobWVudCog
YXR0YWNoZWRPYmplY3QsIEdDR0xlbnVtIGF0dGFjaG1lbnQsIGNvbnN0IGNoYXIqKiByZWFzb24p
CiAgICAgewpAQCAtMjk5LDcgKzMxNSwxMCBAQCBXZWJHTEZyYW1lYnVmZmVyOjpXZWJHTEZyYW1l
YnVmZmVyKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKIAogV2ViR0xGcmFtZWJ1ZmZl
cjo6fldlYkdMRnJhbWVidWZmZXIoKQogewotICAgIGRlbGV0ZU9iamVjdCgwKTsKKyAgICBpZiAo
IWNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcnVuRGVzdHJ1Y3RvcigpOwogfQog
CiB2b2lkIFdlYkdMRnJhbWVidWZmZXI6OnNldEF0dGFjaG1lbnRGb3JCb3VuZEZyYW1lYnVmZmVy
KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gYXR0YWNobWVudCwgR0NHTGVudW0gdGV4VGFyZ2V0
LCBXZWJHTFRleHR1cmUqIHRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xpbnQgbGF5ZXIpCkBA
IC0zNzEsOCArMzkwLDEzIEBAIFdlYkdMRnJhbWVidWZmZXI6OldlYkdMQXR0YWNobWVudCogV2Vi
R0xGcmFtZWJ1ZmZlcjo6Z2V0QXR0YWNobWVudChHQ0dMZW51bSBhdHRhCiAgICAgcmV0dXJuIChp
dCAhPSBtX2F0dGFjaG1lbnRzLmVuZCgpKSA/IGl0LT52YWx1ZS5nZXQoKSA6IDA7CiB9CiAKLXZv
aWQgV2ViR0xGcmFtZWJ1ZmZlcjo6cmVtb3ZlQXR0YWNobWVudEZyb21Cb3VuZEZyYW1lYnVmZmVy
KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gYXR0YWNobWVudCkKK3ZvaWQgV2ViR0xGcmFtZWJ1
ZmZlcjo6cmVtb3ZlQXR0YWNobWVudEZyb21Cb3VuZEZyYW1lYnVmZmVyKGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gYXR0YWNobWVudCkKIHsK
KyAgICBpZiAoIWNvbnRleHQoKSkgeworICAgICAgICAvLyBDb250ZXh0IGhhcyBiZWVuIGRlbGV0
ZWQgLSBzaG91bGQgbm90IGJlIGNhbGxpbmcgdGhpcy4KKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgQVNTRVJUKGlzQm91bmQodGFyZ2V0KSk7CiAjZWxz
ZQpAQCAtMzgzLDcgKzQwNyw3IEBAIHZvaWQgV2ViR0xGcmFtZWJ1ZmZlcjo6cmVtb3ZlQXR0YWNo
bWVudEZyb21Cb3VuZEZyYW1lYnVmZmVyKEdDR0xlbnVtIHRhcmdldCwgR0NHCiAKICAgICBSZWZQ
dHI8V2ViR0xBdHRhY2htZW50PiBhdHRhY2htZW50T2JqZWN0ID0gZ2V0QXR0YWNobWVudChhdHRh
Y2htZW50KTsKICAgICBpZiAoYXR0YWNobWVudE9iamVjdCkgewotICAgICAgICBhdHRhY2htZW50
T2JqZWN0LT5vbkRldGFjaGVkKGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0R0woKSk7CisgICAg
ICAgIGF0dGFjaG1lbnRPYmplY3QtPm9uRGV0YWNoZWQobG9ja2VyLCBjb250ZXh0KCktPmdyYXBo
aWNzQ29udGV4dEdMKCkpOwogICAgICAgICBtX2F0dGFjaG1lbnRzLnJlbW92ZShhdHRhY2htZW50
KTsKICAgICAgICAgZHJhd0J1ZmZlcnNJZk5lY2Vzc2FyeShmYWxzZSk7CiAjaWYgIVVTRShBTkdM
RSkKQEAgLTQwMyw3ICs0MjcsNyBAQCB2b2lkIFdlYkdMRnJhbWVidWZmZXI6OnJlbW92ZUF0dGFj
aG1lbnRGcm9tQm91bmRGcmFtZWJ1ZmZlcihHQ0dMZW51bSB0YXJnZXQsIEdDRwogICAgIH0KIH0K
IAotdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpyZW1vdmVBdHRhY2htZW50RnJvbUJvdW5kRnJhbWVi
dWZmZXIoR0NHTGVudW0gdGFyZ2V0LCBXZWJHTFNoYXJlZE9iamVjdCogYXR0YWNobWVudCkKK3Zv
aWQgV2ViR0xGcmFtZWJ1ZmZlcjo6cmVtb3ZlQXR0YWNobWVudEZyb21Cb3VuZEZyYW1lYnVmZmVy
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEdDR0xlbnVtIHRhcmdldCwgV2ViR0xTaGFy
ZWRPYmplY3QqIGF0dGFjaG1lbnQpCiB7CiAgICAgQVNTRVJUKGlzQm91bmQodGFyZ2V0KSk7CiAg
ICAgaWYgKCFvYmplY3QoKSkKQEAgLTQxOSw3ICs0NDMsNyBAQCB2b2lkIFdlYkdMRnJhbWVidWZm
ZXI6OnJlbW92ZUF0dGFjaG1lbnRGcm9tQm91bmRGcmFtZWJ1ZmZlcihHQ0dMZW51bSB0YXJnZXQs
IFdlYgogICAgICAgICAgICAgaWYgKGF0dGFjaG1lbnRPYmplY3QtPmlzU2hhcmVkT2JqZWN0KGF0
dGFjaG1lbnQpKSB7CiAgICAgICAgICAgICAgICAgR0NHTGVudW0gYXR0YWNobWVudFR5cGUgPSBl
bnRyeS5rZXk7CiAgICAgICAgICAgICAgICAgYXR0YWNobWVudE9iamVjdC0+dW5hdHRhY2goY29u
dGV4dCgpLT5ncmFwaGljc0NvbnRleHRHTCgpLCB0YXJnZXQsIGF0dGFjaG1lbnRUeXBlKTsKLSAg
ICAgICAgICAgICAgICByZW1vdmVBdHRhY2htZW50RnJvbUJvdW5kRnJhbWVidWZmZXIodGFyZ2V0
LCBhdHRhY2htZW50VHlwZSk7CisgICAgICAgICAgICAgICAgcmVtb3ZlQXR0YWNobWVudEZyb21C
b3VuZEZyYW1lYnVmZmVyKGxvY2tlciwgdGFyZ2V0LCBhdHRhY2htZW50VHlwZSk7CiAgICAgICAg
ICAgICAgICAgY2hlY2tNb3JlID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIH0KQEAgLTUzOSwxNiArNTYzLDIzIEBAIGJvb2wgV2ViR0xGcmFtZWJ1ZmZlcjo6aGFz
U3RlbmNpbEJ1ZmZlcigpIGNvbnN0CiAgICAgcmV0dXJuIGF0dGFjaG1lbnQgJiYgYXR0YWNobWVu
dC0+aXNWYWxpZCgpOwogfQogCi12b2lkIFdlYkdMRnJhbWVidWZmZXI6OmRlbGV0ZU9iamVjdElt
cGwoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnRleHQzZCwgUGxhdGZvcm1HTE9iamVjdCBv
YmplY3QpCit2b2lkIFdlYkdMRnJhbWVidWZmZXI6OmRlbGV0ZU9iamVjdEltcGwoY29uc3QgQWJz
dHJhY3RMb2NrZXImIGxvY2tlciwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnRleHQzZCwg
UGxhdGZvcm1HTE9iamVjdCBvYmplY3QpCiB7CiAgICAgZm9yIChhdXRvJiBhdHRhY2htZW50IDog
bV9hdHRhY2htZW50cy52YWx1ZXMoKSkKLSAgICAgICAgYXR0YWNobWVudC0+b25EZXRhY2hlZChj
b250ZXh0M2QpOworICAgICAgICBhdHRhY2htZW50LT5vbkRldGFjaGVkKGxvY2tlciwgY29udGV4
dDNkKTsKIAogICAgIGNvbnRleHQzZC0+ZGVsZXRlRnJhbWVidWZmZXIob2JqZWN0KTsKIH0KIAor
I2lmICFVU0UoQU5HTEUpCiBib29sIFdlYkdMRnJhbWVidWZmZXI6OmluaXRpYWxpemVBdHRhY2ht
ZW50cyhHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogZzNkLCBjb25zdCBjaGFyKiogcmVhc29uKQog
eworICAgIGlmICghY29udGV4dCgpKSB7CisgICAgICAgIC8vIENvbnRleHQgaGFzIGJlZW4gZGVs
ZXRlZCAtIHNob3VsZCBub3QgYmUgY2FsbGluZyB0aGlzLgorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3JhcGhMb2NrRm9yQ29u
dGV4dCgpKTsKKwogICAgIEFTU0VSVChvYmplY3QoKSk7CiAgICAgR0NHTGJpdGZpZWxkIG1hc2sg
PSAwOwogCkBAIC02MzMsNiArNjY0LDcgQEAgYm9vbCBXZWJHTEZyYW1lYnVmZmVyOjppbml0aWFs
aXplQXR0YWNobWVudHMoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGczZCwgY29uc3QKICAgICB9
CiAgICAgcmV0dXJuIHRydWU7CiB9CisjZW5kaWYKIAogYm9vbCBXZWJHTEZyYW1lYnVmZmVyOjpp
c0JvdW5kKEdDR0xlbnVtIHRhcmdldCkgY29uc3QKIHsKQEAgLTY4OSw5ICs3MjEsMjEgQEAgR0NH
TGVudW0gV2ViR0xGcmFtZWJ1ZmZlcjo6Z2V0RHJhd0J1ZmZlcihHQ0dMZW51bSBkcmF3QnVmZmVy
KQogICAgIHJldHVybiBHcmFwaGljc0NvbnRleHRHTDo6Tk9ORTsKIH0KIAordm9pZCBXZWJHTEZy
YW1lYnVmZmVyOjphZGRNZW1iZXJzVG9PcGFxdWVSb290cyhjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIGZvciAoYXV0byYgZW50
cnkgOiBtX2F0dGFjaG1lbnRzKQorICAgICAgICBlbnRyeS52YWx1ZS0+YWRkTWVtYmVyc1RvT3Bh
cXVlUm9vdHMobG9ja2VyLCB2aXNpdG9yKTsKK30KKwogdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpz
ZXRBdHRhY2htZW50SW50ZXJuYWwoR0NHTGVudW0gYXR0YWNobWVudCwgR0NHTGVudW0gdGV4VGFy
Z2V0LCBXZWJHTFRleHR1cmUqIHRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xpbnQgbGF5ZXIp
CiB7Ci0gICAgcmVtb3ZlQXR0YWNobWVudEludGVybmFsKGF0dGFjaG1lbnQpOworICAgIGlmICgh
Y29udGV4dCgpKSB7CisgICAgICAgIC8vIENvbnRleHQgaGFzIGJlZW4gZGVsZXRlZCAtIHNob3Vs
ZCBub3QgYmUgY2FsbGluZyB0aGlzLgorICAgICAgICByZXR1cm47CisgICAgfQorICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3JhcGhMb2NrRm9yQ29udGV4dCgpKTsKKworICAgIHJl
bW92ZUF0dGFjaG1lbnRJbnRlcm5hbChsb2NrZXIsIGF0dGFjaG1lbnQpOwogICAgIGlmICh0ZXh0
dXJlICYmIHRleHR1cmUtPm9iamVjdCgpKSB7CiAgICAgICAgIG1fYXR0YWNobWVudHMuc2V0KGF0
dGFjaG1lbnQsIFdlYkdMVGV4dHVyZUF0dGFjaG1lbnQ6OmNyZWF0ZSh0ZXh0dXJlLCB0ZXhUYXJn
ZXQsIGxldmVsLCBsYXllcikpOwogICAgICAgICBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KGZhbHNl
KTsKQEAgLTcwMSw3ICs3NDUsMTMgQEAgdm9pZCBXZWJHTEZyYW1lYnVmZmVyOjpzZXRBdHRhY2ht
ZW50SW50ZXJuYWwoR0NHTGVudW0gYXR0YWNobWVudCwgR0NHTGVudW0gdGV4VGEKIAogdm9pZCBX
ZWJHTEZyYW1lYnVmZmVyOjpzZXRBdHRhY2htZW50SW50ZXJuYWwoR0NHTGVudW0gYXR0YWNobWVu
dCwgV2ViR0xSZW5kZXJidWZmZXIqIHJlbmRlcmJ1ZmZlcikKIHsKLSAgICByZW1vdmVBdHRhY2ht
ZW50SW50ZXJuYWwoYXR0YWNobWVudCk7CisgICAgaWYgKCFjb250ZXh0KCkpIHsKKyAgICAgICAg
Ly8gQ29udGV4dCBoYXMgYmVlbiBkZWxldGVkIC0gc2hvdWxkIG5vdCBiZSBjYWxsaW5nIHRoaXMu
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhvYmpl
Y3RHcmFwaExvY2tGb3JDb250ZXh0KCkpOworCisgICAgcmVtb3ZlQXR0YWNobWVudEludGVybmFs
KGxvY2tlciwgYXR0YWNobWVudCk7CiAgICAgaWYgKHJlbmRlcmJ1ZmZlciAmJiByZW5kZXJidWZm
ZXItPm9iamVjdCgpKSB7CiAgICAgICAgIG1fYXR0YWNobWVudHMuc2V0KGF0dGFjaG1lbnQsIFdl
YkdMUmVuZGVyYnVmZmVyQXR0YWNobWVudDo6Y3JlYXRlKHJlbmRlcmJ1ZmZlcikpOwogICAgICAg
ICBkcmF3QnVmZmVyc0lmTmVjZXNzYXJ5KGZhbHNlKTsKQEAgLTcwOSwxMSArNzU5LDExIEBAIHZv
aWQgV2ViR0xGcmFtZWJ1ZmZlcjo6c2V0QXR0YWNobWVudEludGVybmFsKEdDR0xlbnVtIGF0dGFj
aG1lbnQsIFdlYkdMUmVuZGVyYnVmCiAgICAgfQogfQogCi12b2lkIFdlYkdMRnJhbWVidWZmZXI6
OnJlbW92ZUF0dGFjaG1lbnRJbnRlcm5hbChHQ0dMZW51bSBhdHRhY2htZW50KQordm9pZCBXZWJH
TEZyYW1lYnVmZmVyOjpyZW1vdmVBdHRhY2htZW50SW50ZXJuYWwoY29uc3QgQWJzdHJhY3RMb2Nr
ZXImIGxvY2tlciwgR0NHTGVudW0gYXR0YWNobWVudCkKIHsKICAgICBXZWJHTEF0dGFjaG1lbnQq
IGF0dGFjaG1lbnRPYmplY3QgPSBnZXRBdHRhY2htZW50KGF0dGFjaG1lbnQpOwogICAgIGlmIChh
dHRhY2htZW50T2JqZWN0KSB7Ci0gICAgICAgIGF0dGFjaG1lbnRPYmplY3QtPm9uRGV0YWNoZWQo
Y29udGV4dCgpLT5ncmFwaGljc0NvbnRleHRHTCgpKTsKKyAgICAgICAgYXR0YWNobWVudE9iamVj
dC0+b25EZXRhY2hlZChsb2NrZXIsIGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0R0woKSk7CiAg
ICAgICAgIG1fYXR0YWNobWVudHMucmVtb3ZlKGF0dGFjaG1lbnQpOwogICAgICAgICBkcmF3QnVm
ZmVyc0lmTmVjZXNzYXJ5KGZhbHNlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTEZyYW1lYnVmZmVyLmgKaW5kZXggMWIyM2ZmMjJjODk0NTE5MDhiMjU5NDJhMWEx
MDY2NmIxN2E2YTc0Ni4uZjg4YjA2YTVlNGM2NDUyNWMyYjI2MmZkOWI4ZTM5MmE5OTA1ZDcyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaApAQCAt
MzMsNiArMzMsMTQgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAorbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBTbG90VmlzaXRvcjsKK30KKwor
bmFtZXNwYWNlIFdURiB7CitjbGFzcyBBYnN0cmFjdExvY2tlcjsKK30KKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBXZWJHTFJlbmRlcmJ1ZmZlcjsKQEAgLTU0LDkgKzYyLDEwIEBAIHB1
YmxpYzoKICAgICAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCA9IDA7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBpc0luaXRpYWxpemVkKCkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgc2V0SW5pdGlhbGl6ZWQoKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBvbkRldGFj
aGVkKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQg
b25EZXRhY2hlZChjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJiwgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wqKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wqLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xlbnVtIGF0dGFjaG1lbnQpID0gMDsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHVuYXR0YWNoKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgR0NH
TGVudW0gdGFyZ2V0LCBHQ0dMZW51bSBhdHRhY2htZW50KSA9IDA7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBhZGRNZW1iZXJzVG9PcGFxdWVSb290cyhjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJiwg
SlNDOjpTbG90VmlzaXRvciYpID0gMDsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgV2ViR0xB
dHRhY2htZW50KCk7CkBAIC02OSw5ICs3OCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEF0dGFj
aG1lbnRGb3JCb3VuZEZyYW1lYnVmZmVyKEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gYXR0YWNo
bWVudCwgR0NHTGVudW0gdGV4VGFyZ2V0LCBXZWJHTFRleHR1cmUqLCBHQ0dMaW50IGxldmVsLCBH
Q0dMaW50IGxheWVyKTsKICAgICB2b2lkIHNldEF0dGFjaG1lbnRGb3JCb3VuZEZyYW1lYnVmZmVy
KEdDR0xlbnVtIHRhcmdldCwgR0NHTGVudW0gYXR0YWNobWVudCwgV2ViR0xSZW5kZXJidWZmZXIq
KTsKICAgICAvLyBJZiBhbiBvYmplY3QgaXMgYXR0YWNoZWQgdG8gdGhlIGN1cnJlbnRseSBib3Vu
ZCBmcmFtZWJ1ZmZlciwgcmVtb3ZlIGl0LgotICAgIHZvaWQgcmVtb3ZlQXR0YWNobWVudEZyb21C
b3VuZEZyYW1lYnVmZmVyKEdDR0xlbnVtIHRhcmdldCwgV2ViR0xTaGFyZWRPYmplY3QqKTsKKyAg
ICB2b2lkIHJlbW92ZUF0dGFjaG1lbnRGcm9tQm91bmRGcmFtZWJ1ZmZlcihjb25zdCBXVEY6OkFi
c3RyYWN0TG9ja2VyJiwgR0NHTGVudW0gdGFyZ2V0LCBXZWJHTFNoYXJlZE9iamVjdCopOwogICAg
IC8vIElmIGEgZ2l2ZW4gYXR0YWNobWVudCBwb2ludCBmb3IgdGhlIGN1cnJlbnRseSBib3VuZCBm
cmFtZWJ1ZmZlciBpcyBub3QgbnVsbCwgcmVtb3ZlIHRoZSBhdHRhY2hlZCBvYmplY3QuCi0gICAg
dm9pZCByZW1vdmVBdHRhY2htZW50RnJvbUJvdW5kRnJhbWVidWZmZXIoR0NHTGVudW0gdGFyZ2V0
LCBHQ0dMZW51bSBhdHRhY2htZW50KTsKKyAgICB2b2lkIHJlbW92ZUF0dGFjaG1lbnRGcm9tQm91
bmRGcmFtZWJ1ZmZlcihjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJiwgR0NHTGVudW0gdGFyZ2V0
LCBHQ0dMZW51bSBhdHRhY2htZW50KTsKICAgICBXZWJHTFNoYXJlZE9iamVjdCogZ2V0QXR0YWNo
bWVudE9iamVjdChHQ0dMZW51bSkgY29uc3Q7CiAKICNpZiAhVVNFKEFOR0xFKQpAQCAtMTA1LDE1
ICsxMTQsMTkgQEAgcHVibGljOgogCiAgICAgR0NHTGVudW0gZ2V0RHJhd0J1ZmZlcihHQ0dMZW51
bSk7CiAKKyAgICB2b2lkIGFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKGNvbnN0IFdURjo6QWJzdHJh
Y3RMb2NrZXImLCBKU0M6OlNsb3RWaXNpdG9yJik7CisKIHByaXZhdGU6CiAgICAgV2ViR0xGcmFt
ZWJ1ZmZlcihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAKLSAgICB2b2lkIGRlbGV0ZU9i
amVjdEltcGwoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoY29uc3QgV1RGOjpBYnN0cmFjdExvY2tl
ciYsIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9iamVjdCkgb3ZlcnJpZGU7
CiAKICAgICBXZWJHTEF0dGFjaG1lbnQqIGdldEF0dGFjaG1lbnQoR0NHTGVudW0pIGNvbnN0Owog
CisjaWYgIVVTRShBTkdMRSkKICAgICAvLyBSZXR1cm4gZmFsc2UgaWYgZnJhbWVidWZmZXIgaXMg
aW5jb21wbGV0ZS4KICAgICBib29sIGluaXRpYWxpemVBdHRhY2htZW50cyhHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTCosIGNvbnN0IGNoYXIqKiByZWFzb24pOworI2VuZGlmCiAKICAgICAvLyBDaGVj
ayBpZiB0aGUgZnJhbWVidWZmZXIgaXMgY3VycmVudGx5IGJvdW5kIHRvIHRoZSBnaXZlbiB0YXJn
ZXQuCiAgICAgYm9vbCBpc0JvdW5kKEdDR0xlbnVtIHRhcmdldCkgY29uc3Q7CkBAIC0xMjgsNyAr
MTQxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEF0dGFjaG1lbnRJbnRlcm5hbChHQ0dMZW51
bSBhdHRhY2htZW50LCBXZWJHTFJlbmRlcmJ1ZmZlciopOwogICAgIC8vIElmIGEgZ2l2ZW4gYXR0
YWNobWVudCBwb2ludCBmb3IgdGhlIGN1cnJlbnRseSBib3VuZCBmcmFtZWJ1ZmZlciBpcyBub3QK
ICAgICAvLyBudWxsLCByZW1vdmUgdGhlIGF0dGFjaGVkIG9iamVjdC4KLSAgICB2b2lkIHJlbW92
ZUF0dGFjaG1lbnRJbnRlcm5hbChHQ0dMZW51bSBhdHRhY2htZW50KTsKKyAgICB2b2lkIHJlbW92
ZUF0dGFjaG1lbnRJbnRlcm5hbChjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJiwgR0NHTGVudW0g
YXR0YWNobWVudCk7CiAKICAgICB0eXBlZGVmIFdURjo6SGFzaE1hcDxHQ0dMZW51bSwgUmVmUHRy
PFdlYkdMQXR0YWNobWVudD4+IEF0dGFjaG1lbnRNYXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5pZGwKaW5kZXggN2M2Y2M0NTk1ZDk3MzQ0ODVl
NmNlODk5MDEyOGEyNjA4Y2U2ZjkyMy4uYjEzNzdhMzY5OTcxNzIzMDNmZjg2ZWRlYzhhMTNkNGVh
YTI0YTk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFt
ZWJ1ZmZlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1
ZmZlci5pZGwKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiBbCi0gICAgQ29uZGl0aW9uYWw9V0VC
R0wKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwK
IF0gaW50ZXJmYWNlIFdlYkdMRnJhbWVidWZmZXIgewogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMT2JqZWN0LmNwcAppbmRleCBmNjYwMTQ0MmQ2OWI1NWI3ZTQ5YTAxMWFhNTM0
ZTNiNjhjNzQ3ZmRmLi5hYjVjMTRmNTZiMTkyOGIxNWVlZDdmNmY1NjEzMDRkMjA3ZGFhODMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwCkBAIC00NCw3ICs0
NCwyMSBAQCB2b2lkIFdlYkdMT2JqZWN0OjpzZXRPYmplY3QoUGxhdGZvcm1HTE9iamVjdCBvYmpl
Y3QpCiAgICAgbV9vYmplY3QgPSBvYmplY3Q7CiB9CiAKLXZvaWQgV2ViR0xPYmplY3Q6OmRlbGV0
ZU9iamVjdChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDNkKQordm9pZCBXZWJHTE9i
amVjdDo6cnVuRGVzdHJ1Y3RvcigpCit7CisgICAgYXV0byYgbG9jayA9IG9iamVjdEdyYXBoTG9j
a0ZvckNvbnRleHQoKTsKKyAgICBpZiAobG9jay5pc0hlbGQoKSkgeworICAgICAgICAvLyBEZXN0
cnVjdGlvbiBvZiBXZWJHTE9iamVjdHMgY2FuIGhhcHBlbiBpbiBjaGFpbnMgdHJpZ2dlcmVkIGZy
b20gR0MuCisgICAgICAgIC8vIFRoZSBsb2NrIG11c3QgYmUgaGVsZCBvbmx5IG9uY2UsIGF0IHRo
ZSBiZWdpbm5pbmcgb2YgdGhlIGNoYWluLgorICAgICAgICBhdXRvIGxvY2tlciA9IEFic3RyYWN0
TG9ja2VyKE5vTG9ja2luZ05lY2Vzc2FyeSk7CisgICAgICAgIGRlbGV0ZU9iamVjdChsb2NrZXIs
IG51bGxwdHIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bG9jayk7CisgICAgICAgIGRlbGV0ZU9iamVjdChsb2NrZXIsIG51bGxwdHIpOworICAgIH0KK30K
Kwordm9pZCBXZWJHTE9iamVjdDo6ZGVsZXRlT2JqZWN0KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBs
b2NrZXIsIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QpCiB7CiAgICAgbV9kZWxl
dGVkID0gdHJ1ZTsKICAgICBpZiAoIW1fb2JqZWN0KQpAQCAtNjYsNyArODAsNyBAQCB2b2lkIFdl
YkdMT2JqZWN0OjpkZWxldGVPYmplY3QoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnRleHQz
ZCkKICAgICAgICAgICAgIGNvbnRleHQzZCA9IGdldEFHcmFwaGljc0NvbnRleHRHTCgpOwogCiAg
ICAgICAgIGlmIChjb250ZXh0M2QpCi0gICAgICAgICAgICBkZWxldGVPYmplY3RJbXBsKGNvbnRl
eHQzZCwgbV9vYmplY3QpOworICAgICAgICAgICAgZGVsZXRlT2JqZWN0SW1wbChsb2NrZXIsIGNv
bnRleHQzZCwgbV9vYmplY3QpOwogICAgIH0KIAogICAgIGlmICghbV9hdHRhY2htZW50Q291bnQp
CkBAIC03OCwxMiArOTIsMTIgQEAgdm9pZCBXZWJHTE9iamVjdDo6ZGV0YWNoKCkKICAgICBtX2F0
dGFjaG1lbnRDb3VudCA9IDA7IC8vIE1ha2Ugc3VyZSBPcGVuR0wgcmVzb3VyY2UgaXMgZGVsZXRl
ZC4KIH0KIAotdm9pZCBXZWJHTE9iamVjdDo6b25EZXRhY2hlZChHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCogY29udGV4dDNkKQordm9pZCBXZWJHTE9iamVjdDo6b25EZXRhY2hlZChjb25zdCBBYnN0
cmFjdExvY2tlciYgbG9ja2VyLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDNkKQog
ewogICAgIGlmIChtX2F0dGFjaG1lbnRDb3VudCkKICAgICAgICAgLS1tX2F0dGFjaG1lbnRDb3Vu
dDsKICAgICBpZiAobV9kZWxldGVkKQotICAgICAgICBkZWxldGVPYmplY3QoY29udGV4dDNkKTsK
KyAgICAgICAgZGVsZXRlT2JqZWN0KGxvY2tlciwgY29udGV4dDNkKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmgKaW5kZXggMWZhYTIwNThjODI1ZDdlMzk0
NjViNjgyZjhhYjA5MjkzNzA1MDdhNi4uZjBhYTIxMzdhM2VhZTVmOTdmOGFkOWJiOTFkOTAzM2Uw
MDlmMTZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oCkBAIC0z
MCw2ICszMCwxMSBAQAogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgQWJzdHJhY3RMb2NrZXI7
CitjbGFzcyBMb2NrOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOwpAQCAtNDUsMTAgKzUwLDEzIEBAIHB1YmxpYzoKICAgICAvLyBkZWxl
dGVPYmplY3QgbWF5IG5vdCBhbHdheXMgZGVsZXRlIHRoZSBPcGVuR0wgcmVzb3VyY2UuICBGb3Ig
cHJvZ3JhbXMgYW5kCiAgICAgLy8gc2hhZGVycywgZGVsZXRpb24gaXMgZGVsYXllZCB1bnRpbCB0
aGV5IGFyZSBubyBsb25nZXIgYXR0YWNoZWQuCiAgICAgLy8gRklYTUU6IHJldmlzaXQgdGhpcyB3
aGVuIHJlc291cmNlIHNoYXJpbmcgYmV0d2VlbiBjb250ZXh0cyBhcmUgaW1wbGVtZW50ZWQuCi0g
ICAgdm9pZCBkZWxldGVPYmplY3QoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKTsKKyAgICAvLyBU
aGUgQWJzdHJhY3RMb2NrZXIgYXJndW1lbnQgZW5mb3JjZXMgYXQgY29tcGlsZSB0aW1lIHRoYXQg
dGhlIG9iamVjdEdyYXBoTG9jaworICAgIC8vIGlzIGhlbGQuIFRoaXMgaXNuJ3QgbmVjZXNzYXJ5
IGZvciBhbGwgb2JqZWN0IHR5cGVzLCBidXQgZW5vdWdoIG9mIHRoZW0gdGhhdAorICAgIC8vIGl0
J3MgZG9uZSBmb3IgYWxsIG9mIHRoZW0uCisgICAgdm9pZCBkZWxldGVPYmplY3QoY29uc3QgV1RG
OjpBYnN0cmFjdExvY2tlciYsIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKik7CiAKICAgICB2b2lk
IG9uQXR0YWNoZWQoKSB7ICsrbV9hdHRhY2htZW50Q291bnQ7IH0KLSAgICB2b2lkIG9uRGV0YWNo
ZWQoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKTsKKyAgICB2b2lkIG9uRGV0YWNoZWQoY29uc3Qg
V1RGOjpBYnN0cmFjdExvY2tlciYsIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKik7CiAKICAgICAv
LyBUaGlzIGluZGljYXRlcyB3aGV0aGVyIHRoZSBjbGllbnQgc2lkZSBpc3N1ZSBhIGRlbGV0ZSBj
YWxsIGFscmVhZHksIG5vdAogICAgIC8vIHdoZXRoZXIgdGhlIE9wZW5HTCByZXNvdXJjZSBpcyBk
ZWxldGVkLgpAQCAtNTgsMTQgKzY2LDIzIEBAIHB1YmxpYzoKICAgICAvLyBUcnVlIGlmIHRoaXMg
b2JqZWN0IGJlbG9uZ3MgdG8gdGhlIGdyb3VwIG9yIGNvbnRleHQuCiAgICAgdmlydHVhbCBib29s
IHZhbGlkYXRlKGNvbnN0IFdlYkdMQ29udGV4dEdyb3VwKiwgY29uc3QgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYpIGNvbnN0ID0gMDsKIAorICAgIC8vIFJldHVybnMgdGhlIG9iamVjdCBncmFw
aCBsb2NrIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29udGV4dCBtb3N0CisgICAgLy8gY2xvc2VseSBh
c3NvY2lhdGVkIHdpdGggdGhpcyBvYmplY3QuIFNpbmNlIHRoZQorICAgIC8vIFdFQkdMX3NoYXJl
ZF9vYmplY3RzIGV4dGVuc2lvbiBzcGVjaWZpY2F0aW9uIG5ldmVyIHNoaXBwZWQgKGFuZAorICAg
IC8vIGlzIHVubGlrZWx5IHRvKSwgdGhpcyBiYXNpY2FsbHkgcmV0dXJucyB0aGUgc2FtZSByZXN1
bHQgZm9yCisgICAgLy8gYm90aCBjb250ZXh0IG9iamVjdHMgYW5kIHNoYXJlZCBvYmplY3RzLgor
ICAgIHZpcnR1YWwgV1RGOjpMb2NrJiBvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkgPSAwOwor
CiBwcm90ZWN0ZWQ6CiAgICAgV2ViR0xPYmplY3QoKSA9IGRlZmF1bHQ7CiAKICAgICAvLyBzZXRP
YmplY3Qgc2hvdWxkIGJlIG9ubHkgY2FsbGVkIG9uY2UgcmlnaHQgYWZ0ZXIgY3JlYXRpbmcgYSBX
ZWJHTE9iamVjdC4KICAgICB2b2lkIHNldE9iamVjdChQbGF0Zm9ybUdMT2JqZWN0KTsKIAorICAg
IHZvaWQgcnVuRGVzdHJ1Y3RvcigpOworCiAgICAgLy8gZGVsZXRlT2JqZWN0SW1wbCBzaG91bGQg
YmUgb25seSBjYWxsZWQgb25jZSB0byBkZWxldGUgdGhlIE9wZW5HTCByZXNvdXJjZS4KLSAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIFBs
YXRmb3JtR0xPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChj
b25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0
Zm9ybUdMT2JqZWN0KSA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFzR3JvdXBPckNvbnRleHQo
KSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0u
Y3BwCmluZGV4IDQwZTc4MDdmZTE0YjU0ZGVmNDYwZjhhODNlNTdmOGNkMDRjN2YyMTcuLjUwNjYw
Yzc1YzUwYWYxM2M1OTQ1MTIxNThkZDVjYmEzMTIzN2ZkZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcApAQCAtMzMsNyArMzMsMTAgQEAKICNpbmNsdWRl
ICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaCIKICNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1Nsb3RWaXNpdG9yLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0b3JJbmxp
bmVzLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTG9ja2VyLmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTczLDEzICs3NiwxNiBAQCBXZWJHTFByb2dyYW06On5XZWJHTFByb2dyYW0oKQogewogICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJHTFByb2dyYW0oKnRoaXMpOwog
Ci0gICAgZGVsZXRlT2JqZWN0KDApOwotCiAgICAgewogICAgICAgICBMb2NrSG9sZGVyIGxvY2so
aW5zdGFuY2VzTXV0ZXgoKSk7CiAgICAgICAgIEFTU0VSVChpbnN0YW5jZXMobG9jaykuY29udGFp
bnModGhpcykpOwogICAgICAgICBpbnN0YW5jZXMobG9jaykucmVtb3ZlKHRoaXMpOwogICAgIH0K
KworICAgIGlmICghaGFzR3JvdXBPckNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
cnVuRGVzdHJ1Y3RvcigpOwogfQogCiB2b2lkIFdlYkdMUHJvZ3JhbTo6Y29udGV4dERlc3Ryb3ll
ZCgpCkBAIC04OSwxNSArOTUsMTUgQEAgdm9pZCBXZWJHTFByb2dyYW06OmNvbnRleHREZXN0cm95
ZWQoKQogICAgIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7
CiB9CiAKLXZvaWQgV2ViR0xQcm9ncmFtOjpkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKiBjb250ZXh0M2QsIFBsYXRmb3JtR0xPYmplY3Qgb2JqKQordm9pZCBXZWJHTFBy
b2dyYW06OmRlbGV0ZU9iamVjdEltcGwoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnRleHQzZCwgUGxhdGZvcm1HTE9iamVjdCBvYmopCiB7
CiAgICAgY29udGV4dDNkLT5kZWxldGVQcm9ncmFtKG9iaik7CiAgICAgaWYgKG1fdmVydGV4U2hh
ZGVyKSB7Ci0gICAgICAgIG1fdmVydGV4U2hhZGVyLT5vbkRldGFjaGVkKGNvbnRleHQzZCk7Cisg
ICAgICAgIG1fdmVydGV4U2hhZGVyLT5vbkRldGFjaGVkKGxvY2tlciwgY29udGV4dDNkKTsKICAg
ICAgICAgbV92ZXJ0ZXhTaGFkZXIgPSBudWxscHRyOwogICAgIH0KICAgICBpZiAobV9mcmFnbWVu
dFNoYWRlcikgewotICAgICAgICBtX2ZyYWdtZW50U2hhZGVyLT5vbkRldGFjaGVkKGNvbnRleHQz
ZCk7CisgICAgICAgIG1fZnJhZ21lbnRTaGFkZXItPm9uRGV0YWNoZWQobG9ja2VyLCBjb250ZXh0
M2QpOwogICAgICAgICBtX2ZyYWdtZW50U2hhZGVyID0gbnVsbHB0cjsKICAgICB9CiB9CkBAIC0x
NTYsNyArMTYyLDcgQEAgV2ViR0xTaGFkZXIqIFdlYkdMUHJvZ3JhbTo6Z2V0QXR0YWNoZWRTaGFk
ZXIoR0NHTGVudW0gdHlwZSkKICAgICB9CiB9CiAKLWJvb2wgV2ViR0xQcm9ncmFtOjphdHRhY2hT
aGFkZXIoV2ViR0xTaGFkZXIqIHNoYWRlcikKK2Jvb2wgV2ViR0xQcm9ncmFtOjphdHRhY2hTaGFk
ZXIoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBXZWJHTFNoYWRlciogc2hhZGVyKQogewogICAgIGlm
ICghc2hhZGVyIHx8ICFzaGFkZXItPm9iamVjdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC0xNzYsNyArMTgyLDcgQEAgYm9vbCBXZWJHTFByb2dyYW06OmF0dGFjaFNoYWRlcihXZWJHTFNo
YWRlciogc2hhZGVyKQogICAgIH0KIH0KIAotYm9vbCBXZWJHTFByb2dyYW06OmRldGFjaFNoYWRl
cihXZWJHTFNoYWRlciogc2hhZGVyKQorYm9vbCBXZWJHTFByb2dyYW06OmRldGFjaFNoYWRlcihj
b25zdCBBYnN0cmFjdExvY2tlciYsIFdlYkdMU2hhZGVyKiBzaGFkZXIpCiB7CiAgICAgaWYgKCFz
aGFkZXIgfHwgIXNoYWRlci0+b2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE5
Niw2ICsyMDIsMTIgQEAgYm9vbCBXZWJHTFByb2dyYW06OmRldGFjaFNoYWRlcihXZWJHTFNoYWRl
ciogc2hhZGVyKQogICAgIH0KIH0KIAordm9pZCBXZWJHTFByb2dyYW06OmFkZE1lbWJlcnNUb09w
YXF1ZVJvb3RzKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgSlNDOjpTbG90VmlzaXRvciYgdmlzaXRv
cikKK3sKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV92ZXJ0ZXhTaGFkZXIuZ2V0KCkpOwor
ICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2ZyYWdtZW50U2hhZGVyLmdldCgpKTsKK30KKwog
dm9pZCBXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9jYXRpb25zKEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMKiBjb250ZXh0M2QpCiB7CiAgICAgbV9hY3RpdmVBdHRyaWJMb2NhdGlvbnMu
Y2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJv
Z3JhbS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKaW5kZXgg
ODA4ZmQyMGYwOWMwM2NjZTQ2MjczOGQ1NWI2Nzc5Zjk2ZmVkZDJlNy4uOGY3MGQwZDJiMGU0NzU1
ZjUyZjRlYTlhM2JiZGM0OWQ4NDM4ODMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xQcm9ncmFtLmgKQEAgLTM0LDYgKzM0LDE0IEBACiAjaW5jbHVkZSA8d3RmL0xvY2suaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgU2xvdFZp
c2l0b3I7Cit9CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgQWJzdHJhY3RMb2NrZXI7Cit9Owor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CkBA
IC02Nyw4ICs3NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGluY3JlYXNlTGlua0NvdW50KCk7CiAK
ICAgICBXZWJHTFNoYWRlciogZ2V0QXR0YWNoZWRTaGFkZXIoR0NHTGVudW0pOwotICAgIGJvb2wg
YXR0YWNoU2hhZGVyKFdlYkdMU2hhZGVyKik7Ci0gICAgYm9vbCBkZXRhY2hTaGFkZXIoV2ViR0xT
aGFkZXIqKTsKKyAgICBib29sIGF0dGFjaFNoYWRlcihjb25zdCBXVEY6OkFic3RyYWN0TG9ja2Vy
JiwgV2ViR0xTaGFkZXIqKTsKKyAgICBib29sIGRldGFjaFNoYWRlcihjb25zdCBXVEY6OkFic3Ry
YWN0TG9ja2VyJiwgV2ViR0xTaGFkZXIqKTsKICAgICAKICAgICB2b2lkIHNldFJlcXVpcmVkVHJh
bnNmb3JtRmVlZGJhY2tCdWZmZXJDb3VudChpbnQgY291bnQpCiAgICAgewpAQCAtODAsMTAgKzg4
LDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fcmVxdWlyZWRUcmFuc2Zvcm1GZWVkYmFj
a0J1ZmZlckNvdW50OwogICAgIH0KIAorICAgIHZvaWQgYWRkTWVtYmVyc1RvT3BhcXVlUm9vdHMo
Y29uc3QgV1RGOjpBYnN0cmFjdExvY2tlciYsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKwogcHJpdmF0
ZToKICAgICBXZWJHTFByb2dyYW0oV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwogCi0gICAg
dm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1H
TE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKGNvbnN0IFdURjo6
QWJzdHJhY3RMb2NrZXImLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmpl
Y3QpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBjYWNoZUFjdGl2ZUF0dHJpYkxvY2F0aW9ucyhHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCopOwogICAgIHZvaWQgY2FjaGVJbmZvSWZOZWVkZWQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaWRsCmluZGV4IDdjMTgwZTJi
NWRkYTJjZDA2YTMzMjYyNDZmZTJlMGI2YzEwM2M3NmEuLmIyNjhjMDdlZTc5NDFjZmM2Y2VmZTli
MjM2YmNjOGMzZjMyYjBkMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUHJvZ3JhbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQ
cm9ncmFtLmlkbApAQCAtMjQsNiArMjQsNyBAQAogICovCiAKIFsKLSAgICBDb25kaXRpb25hbD1X
RUJHTAorICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1w
bAogXSBpbnRlcmZhY2UgV2ViR0xQcm9ncmFtIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUXVlcnkuY3BwCmluZGV4IDRkMDNjMmFhNDJkYTVhZGRjY2Q2ZDBmYTMwMzQ4MGE2
YTM0Njg0ZTguLjE2NjIwYmQ4ZDg1ODI0Yjk1ZTU3MzhkNTYwMjVmMTFhOWNiZWY4NjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuY3BwCkBAIC0zMCw2ICszMCw4IEBA
CiAKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9M
b2NrZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIApAQCAtNDAsNyArNDIsMTAgQEAg
UmVmPFdlYkdMUXVlcnk+IFdlYkdMUXVlcnk6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlJiBjdHgpCiAKIFdlYkdMUXVlcnk6On5XZWJHTFF1ZXJ5KCkKIHsKLSAgICBkZWxldGVPYmpl
Y3QoMCk7CisgICAgaWYgKCFjb250ZXh0R3JvdXAoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
cnVuRGVzdHJ1Y3RvcigpOwogfQogCiBXZWJHTFF1ZXJ5OjpXZWJHTFF1ZXJ5KFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmIGN0eCkKQEAgLTQ5LDcgKzU0LDcgQEAgV2ViR0xRdWVyeTo6V2ViR0xR
dWVyeShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCiAgICAgc2V0T2JqZWN0KGN0eC5n
cmFwaGljc0NvbnRleHRHTCgpLT5jcmVhdGVRdWVyeSgpKTsKIH0KIAotdm9pZCBXZWJHTFF1ZXJ5
OjpkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QsIFBs
YXRmb3JtR0xPYmplY3Qgb2JqZWN0KQordm9pZCBXZWJHTFF1ZXJ5OjpkZWxldGVPYmplY3RJbXBs
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnRleHQz
ZCwgUGxhdGZvcm1HTE9iamVjdCBvYmplY3QpCiB7CiAgICAgY29udGV4dDNkLT5kZWxldGVRdWVy
eShvYmplY3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5oCmluZGV4
IDFiYWU1MjUyOWYwMDcxMzk4ODM5MTk5OTgzMTkyYmY4NmE5YTUyYjMuLjVhNmMwMzYxYTU5ODNi
NzJlNGI0NmY4ZTgyNDk4Y2VjNjE5ZGUxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUXVlcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFF1ZXJ5LmgKQEAgLTI5LDYgKzI5LDEwIEBACiAKICNpbmNsdWRlICJXZWJHTFNoYXJlZE9i
amVjdC5oIgogCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIEFic3RyYWN0TG9ja2VyOworfQorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMUXVlcnkgZmluYWwgOiBwdWJsaWMgV2Vi
R0xTaGFyZWRPYmplY3QgewpAQCAtNDUsNyArNDksNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgV2ViR0xRdWVyeShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7Ci0gICAg
dm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1H
TE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKGNvbnN0IFdURjo6
QWJzdHJhY3RMb2NrZXImLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmpl
Y3QpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBtX2lzUmVzdWx0QXZhaWxhYmxlIHsgZmFsc2UgfTsK
ICAgICBHQ0dMZW51bSBtX3RhcmdldCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUXVlcnkuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xRdWVyeS5pZGwKaW5kZXggMjNkMzUzYzQ2YTU1OTBhODFhNjc5NWY0ZGRlMTU1ZmE5Mzc4
MjNhYS4uN2QzOTY5NmViZWUzOTU0Y2M2NzVhM2VjZmM4ZTljYjVhMzdjNjU1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xRdWVyeS5pZGwKQEAgLTI0LDYgKzI0LDcgQEAKICAq
LwogCiBbCi0gICAgQ29uZGl0aW9uYWw9V0VCR0wKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAg
ICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwKIF0gaW50ZXJmYWNlIFdlYkdMUXVlcnkgewogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmNwcApp
bmRleCBhNWRjMTY0NDNjZThhNDMyODI5ZjE1NjE1YjcwYjE5NGM0ZmQyZTEzLi5kNDBkNGUwYjg1
NjFhZjU1YmVmYWU3ZTUxMmYwMDYxNDI1MTA5N2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuY3BwCkBAIC0zMSw2ICszMSw4IEBACiAKICNp
bmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrZXIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MSw3ICs0MywxMCBAQCBSZWY8V2ViR0xS
ZW5kZXJidWZmZXI+IFdlYkdMUmVuZGVyYnVmZmVyOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZSYgY3R4KQogCiBXZWJHTFJlbmRlcmJ1ZmZlcjo6fldlYkdMUmVuZGVyYnVmZmVyKCkK
IHsKLSAgICBkZWxldGVPYmplY3QoMCk7CisgICAgaWYgKCFoYXNHcm91cE9yQ29udGV4dCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBydW5EZXN0cnVjdG9yKCk7CiB9CiAKIFdlYkdMUmVuZGVy
YnVmZmVyOjpXZWJHTFJlbmRlcmJ1ZmZlcihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgp
CkBAIC01Niw3ICs2MSw3IEBAIFdlYkdMUmVuZGVyYnVmZmVyOjpXZWJHTFJlbmRlcmJ1ZmZlcihX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCiAgICAgc2V0T2JqZWN0KGN0eC5ncmFwaGlj
c0NvbnRleHRHTCgpLT5jcmVhdGVSZW5kZXJidWZmZXIoKSk7CiB9CiAKLXZvaWQgV2ViR0xSZW5k
ZXJidWZmZXI6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnRl
eHQzZCwgUGxhdGZvcm1HTE9iamVjdCBvYmplY3QpCit2b2lkIFdlYkdMUmVuZGVyYnVmZmVyOjpk
ZWxldGVPYmplY3RJbXBsKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wqIGNvbnRleHQzZCwgUGxhdGZvcm1HTE9iamVjdCBvYmplY3QpCiB7CiAgICAgY29udGV4
dDNkLT5kZWxldGVSZW5kZXJidWZmZXIob2JqZWN0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5oCmluZGV4IGI1NTk3NDE0MjdmMWIxNDY5YmFi
YzhiMmE0ZWU4MGU4NWE4NWM3OTcuLjRhN2ZhNmM5YTIzNjEyZTQxZDIzNWRlZGE0ZGNjMTBjNDJj
ZWMwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
YnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZm
ZXIuaApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYkdMUmVuZGVy
YnVmZmVyKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmKTsKIAotICAgIHZvaWQgZGVsZXRlT2Jq
ZWN0SW1wbChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmplY3QpIG92ZXJy
aWRlOworICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChjb25zdCBXVEY6OkFic3RyYWN0TG9ja2Vy
JiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0KSBvdmVycmlkZTsK
IAogICAgIGJvb2wgaXNSZW5kZXJidWZmZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
YnVmZmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVy
LmlkbAppbmRleCBmYjg1NWE1NmNlNjE3NmIzZTQ0NzRkZjg5N2EyMmQwOTQ0YzU5M2Y2Li5mZDYx
ZjhkNjJjM2ZhZThkZjMxOTU4ZjFlYWQzOTc4ZjBhYTYxNTc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsCkBAIC0yNCw2ICsyNCw3IEBA
CiAgKi8KIAogWwotICAgIENvbmRpdGlvbmFsPVdFQkdMCisgICAgQ29uZGl0aW9uYWw9V0VCR0ws
CisgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsCiBdIGludGVyZmFjZSBXZWJHTFJlbmRlcmJ1
ZmZlciB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCBhMTA3Y2M3ZGEzNDkzOTk3YjdiYzRhYTI1
YjFmYmJmM2YwNTAxNjU2Li4zM2NmNzdjMzNkZTYzYjhhYzI3MTdjNmE4ZWEzZWM2OTA0MDJjNDEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMTAyLDYgKzEwMiw4IEBACiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENh
bGxTdGFjay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFja0ZhY3Rv
cnkuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvci5oPgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1Nsb3RWaXNpdG9ySW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1R5cGVkQXJyYXlJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVWlu
dDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KQEAgLTEwOSw2
ICsxMTEsNyBAQAogI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL0xv
Y2tlci5oPgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlQXJyYXkuaD4KQEAgLTEzMTksOSArMTMyMiwxMSBA
QCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFjdGl2ZVRleHR1cmUoR0NHTGVudW0g
dGV4dHVyZSkKIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphdHRhY2hTaGFkZXIo
V2ViR0xQcm9ncmFtKiBwcm9ncmFtLCBXZWJHTFNoYWRlciogc2hhZGVyKQogeworICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3JhcGhMb2NrKCkpOworCiAgICAgaWYgKGlzQ29udGV4
dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVXZWJHTFByb2dyYW1PclNoYWRlcigiYXR0YWNo
U2hhZGVyIiwgcHJvZ3JhbSkgfHwgIXZhbGlkYXRlV2ViR0xQcm9ncmFtT3JTaGFkZXIoImF0dGFj
aFNoYWRlciIsIHNoYWRlcikpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIXByb2dyYW0tPmF0
dGFjaFNoYWRlcihzaGFkZXIpKSB7CisgICAgaWYgKCFwcm9ncmFtLT5hdHRhY2hTaGFkZXIobG9j
a2VyLCBzaGFkZXIpKSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dEdMOjpJTlZBTElEX09QRVJBVElPTiwgImF0dGFjaFNoYWRlciIsICJzaGFkZXIgYXR0YWNobWVu
dCBhbHJlYWR5IGhhcyBzaGFkZXIiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEzOTgs
NyArMTQwMyw3IEBAIFdlYkdMQnVmZmVyKiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxp
ZGF0ZUJ1ZmZlckRhdGFUYXJnZXQoY29uc3QgY2hhciogZnVuCiAgICAgcmV0dXJuIGJ1ZmZlcjsK
IH0KIAotYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxpZGF0ZUFuZENhY2hlQnVm
ZmVyQmluZGluZyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDR0xlbnVtIHRhcmdldCwgV2Vi
R0xCdWZmZXIqIGJ1ZmZlcikKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRh
dGVBbmRDYWNoZUJ1ZmZlckJpbmRpbmcoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgY29u
c3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQ0dMZW51bSB0YXJnZXQsIFdlYkdMQnVmZmVyKiBidWZm
ZXIpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUJ1ZmZlclRhcmdldChmdW5jdGlvbk5hbWUsIHRhcmdl
dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE0MTIsNyArMTQxNyw3IEBAIGJvb2wgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmFsaWRhdGVBbmRDYWNoZUJ1ZmZlckJpbmRpbmcoY29u
c3QgY2hhciogZnVuY3RpCiAgICAgICAgIG1fYm91bmRBcnJheUJ1ZmZlciA9IGJ1ZmZlcjsKICAg
ICBlbHNlIHsKICAgICAgICAgQVNTRVJUKHRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6RUxF
TUVOVF9BUlJBWV9CVUZGRVIpOwotICAgICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPnNl
dEVsZW1lbnRBcnJheUJ1ZmZlcihidWZmZXIpOworICAgICAgICBtX2JvdW5kVmVydGV4QXJyYXlP
YmplY3QtPnNldEVsZW1lbnRBcnJheUJ1ZmZlcihsb2NrZXIsIGJ1ZmZlcik7CiAgICAgfQogCiAg
ICAgaWYgKGJ1ZmZlciAmJiAhYnVmZmVyLT5nZXRUYXJnZXQoKSkKQEAgLTE0MjIsMTAgKzE0Mjcs
MTIgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2YWxpZGF0ZUFuZENhY2hlQnVm
ZmVyQmluZGluZyhjb25zdCBjaGFyKiBmdW5jdGkKIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpiaW5kQnVmZmVyKEdDR0xlbnVtIHRhcmdldCwgV2ViR0xCdWZmZXIqIGJ1ZmZlcikK
IHsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG9iamVjdEdyYXBoTG9jaygpKTsKKwogICAg
IGlmICghY2hlY2tPYmplY3RUb0JlQm91bmQoImJpbmRCdWZmZXIiLCBidWZmZXIpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoIXZhbGlkYXRlQW5kQ2FjaGVCdWZmZXJCaW5kaW5nKCJiaW5k
QnVmZmVyIiwgdGFyZ2V0LCBidWZmZXIpKQorICAgIGlmICghdmFsaWRhdGVBbmRDYWNoZUJ1ZmZl
ckJpbmRpbmcobG9ja2VyLCAiYmluZEJ1ZmZlciIsIHRhcmdldCwgYnVmZmVyKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgbV9jb250ZXh0LT5iaW5kQnVmZmVyKHRhcmdldCwgb2JqZWN0T3JaZXJv
KGJ1ZmZlcikpOwpAQCAtMTQzMyw2ICsxNDQwLDggQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpiaW5kQnVmZmVyKEdDR0xlbnVtIHRhcmdldCwgV2ViR0xCdWZmZXIqIGJ1ZmZlcikK
IAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpiaW5kRnJhbWVidWZmZXIoR0NHTGVu
dW0gdGFyZ2V0LCBXZWJHTEZyYW1lYnVmZmVyKiBidWZmZXIpCiB7CisgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhvYmplY3RHcmFwaExvY2soKSk7CisKICAgICBpZiAoIWNoZWNrT2JqZWN0VG9C
ZUJvdW5kKCJiaW5kRnJhbWVidWZmZXIiLCBidWZmZXIpKQogICAgICAgICByZXR1cm47CiAKQEAg
LTE0NDEsMTEgKzE0NTAsMTMgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpiaW5k
RnJhbWVidWZmZXIoR0NHTGVudW0gdGFyZ2V0LCBXZWJHTEZyYW1lYnVmZmUKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIHNldEZyYW1lYnVmZmVyKHRhcmdldCwgYnVmZmVyKTsKKyAgICBz
ZXRGcmFtZWJ1ZmZlcihsb2NrZXIsIHRhcmdldCwgYnVmZmVyKTsKIH0KIAogdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpiaW5kUmVuZGVyYnVmZmVyKEdDR0xlbnVtIHRhcmdldCwgV2Vi
R0xSZW5kZXJidWZmZXIqIHJlbmRlckJ1ZmZlcikKIHsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKG9iamVjdEdyYXBoTG9jaygpKTsKKwogICAgIGlmICghY2hlY2tPYmplY3RUb0JlQm91bmQo
ImJpbmRSZW5kZXJidWZmZXIiLCByZW5kZXJCdWZmZXIpKQogICAgICAgICByZXR1cm47CiAgICAg
aWYgKHRhcmdldCAhPSBHcmFwaGljc0NvbnRleHRHTDo6UkVOREVSQlVGRkVSKSB7CkBAIC0xNDYw
LDYgKzE0NzEsOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmJpbmRSZW5kZXJi
dWZmZXIoR0NHTGVudW0gdGFyZ2V0LCBXZWJHTFJlbmRlcmJ1ZgogCiB2b2lkIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmJpbmRUZXh0dXJlKEdDR0xlbnVtIHRhcmdldCwgV2ViR0xUZXh0dXJl
KiB0ZXh0dXJlKQogeworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3JhcGhMb2Nr
KCkpOworCiAgICAgaWYgKCFjaGVja09iamVjdFRvQmVCb3VuZCgiYmluZFRleHR1cmUiLCB0ZXh0
dXJlKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICh0ZXh0dXJlICYmIHRleHR1cmUtPmdldFRh
cmdldCgpICYmIHRleHR1cmUtPmdldFRhcmdldCgpICE9IHRhcmdldCkgewpAQCAtMTk3OSw3ICsx
OTkyLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjdWxsRmFjZShHQ0dMZW51
bSBtb2RlKQogICAgIG1fY29udGV4dC0+Y3VsbEZhY2UobW9kZSk7CiB9CiAKLWJvb2wgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlT2JqZWN0KFdlYkdMT2JqZWN0KiBvYmplY3QpCiti
b29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlbGV0ZU9iamVjdChjb25zdCBBYnN0cmFj
dExvY2tlciYgbG9ja2VyLCBXZWJHTE9iamVjdCogb2JqZWN0KQogewogICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkgfHwgIW9iamVjdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTk5Miw3ICsyMDA1LDcgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVP
YmplY3QoV2ViR0xPYmplY3QqIG9iamVjdCkKICAgICBpZiAob2JqZWN0LT5vYmplY3QoKSkKICAg
ICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIGNvbnRleHQgaGVyZSBiZWNhdXNlIHdlIHdhbnQK
ICAgICAgICAgLy8gdGhpbmdzIGluIHRoaXMgY29udGV4dCB1bmJvdW5kLgotICAgICAgICBvYmpl
Y3QtPmRlbGV0ZU9iamVjdChncmFwaGljc0NvbnRleHRHTCgpKTsKKyAgICAgICAgb2JqZWN0LT5k
ZWxldGVPYmplY3QobG9ja2VyLCBncmFwaGljc0NvbnRleHRHTCgpKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApAQCAtMjAwMCwyNiArMjAxMywzNSBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmRlbGV0ZU9iamVjdChXZWJHTE9iamVjdCogb2JqZWN0KQogICAgIGlmIChiaW5kaW5n
ID09IGJ1ZmZlcikgXAogICAgICAgICBiaW5kaW5nID0gbnVsbHB0cjsKIAotdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjp1bmNhY2hlRGVsZXRlZEJ1ZmZlcihXZWJHTEJ1ZmZlciogYnVm
ZmVyKQordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1bmNhY2hlRGVsZXRlZEJ1ZmZl
cihjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBXZWJHTEJ1ZmZlciogYnVmZmVyKQogewog
ICAgIFJFTU9WRV9CVUZGRVJfRlJPTV9CSU5ESU5HKG1fYm91bmRBcnJheUJ1ZmZlcik7CiAKLSAg
ICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPnVuYmluZEJ1ZmZlcigqYnVmZmVyKTsKKyAgICBt
X2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPnVuYmluZEJ1ZmZlcihsb2NrZXIsICpidWZmZXIpOwor
fQorCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnNldEJvdW5kVmVydGV4QXJyYXlP
YmplY3QoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSog
YXJyYXlPYmplY3QpCit7CisgICAgbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0ID0gYXJyYXlPYmpl
Y3QgPyBhcnJheU9iamVjdCA6IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogfQogCiAjdW5k
ZWYgUkVNT1ZFX0JVRkZFUl9GUk9NX0JJTkRJTkcKIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpkZWxldGVCdWZmZXIoV2ViR0xCdWZmZXIqIGJ1ZmZlcikKIHsKLSAgICBpZiAoIWRl
bGV0ZU9iamVjdChidWZmZXIpKQorICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3Jh
cGhMb2NrKCkpOworCisgICAgaWYgKCFkZWxldGVPYmplY3QobG9ja2VyLCBidWZmZXIpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICB1bmNhY2hlRGVsZXRlZEJ1ZmZlcihidWZmZXIpOworICAgIHVu
Y2FjaGVEZWxldGVkQnVmZmVyKGxvY2tlciwgYnVmZmVyKTsKIH0KIAogdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpkZWxldGVGcmFtZWJ1ZmZlcihXZWJHTEZyYW1lYnVmZmVyKiBmcmFt
ZWJ1ZmZlcikKIHsKLSAgICBpZiAoIWRlbGV0ZU9iamVjdChmcmFtZWJ1ZmZlcikpCisgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhvYmplY3RHcmFwaExvY2soKSk7CisKKyAgICBpZiAoIWRlbGV0
ZU9iamVjdChsb2NrZXIsIGZyYW1lYnVmZmVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KGZyYW1lYnVmZmVyID09IG1fZnJhbWVidWZmZXJCaW5kaW5nKSB7CkBAIC0yMDMzLDMyICsyMDU1
LDM5IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlUHJvZ3JhbShXZWJH
TFByb2dyYW0qIHByb2dyYW0pCiAgICAgaWYgKHByb2dyYW0pCiAgICAgICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbERlc3Ryb3lXZWJHTFByb2dyYW0oKnByb2dyYW0pOwogCi0gICAg
ZGVsZXRlT2JqZWN0KHByb2dyYW0pOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sob2JqZWN0
R3JhcGhMb2NrKCkpOworCisgICAgZGVsZXRlT2JqZWN0KGxvY2tlciwgcHJvZ3JhbSk7CiAgICAg
Ly8gV2UgZG9uJ3QgcmVzZXQgbV9jdXJyZW50UHJvZ3JhbSB0byAwIGhlcmUgYmVjYXVzZSB0aGUg
ZGVsZXRpb24gb2YgdGhlCiAgICAgLy8gY3VycmVudCBwcm9ncmFtIGlzIGRlbGF5ZWQuCiB9CiAK
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlUmVuZGVyYnVmZmVyKFdlYkdM
UmVuZGVyYnVmZmVyKiByZW5kZXJidWZmZXIpCiB7Ci0gICAgaWYgKCFkZWxldGVPYmplY3QocmVu
ZGVyYnVmZmVyKSkKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG9iamVjdEdyYXBoTG9jaygp
KTsKKworICAgIGlmICghZGVsZXRlT2JqZWN0KGxvY2tlciwgcmVuZGVyYnVmZmVyKSkKICAgICAg
ICAgcmV0dXJuOwogICAgIGlmIChyZW5kZXJidWZmZXIgPT0gbV9yZW5kZXJidWZmZXJCaW5kaW5n
KQogICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmcgPSBudWxscHRyOwogICAgIGlmIChtX2Zy
YW1lYnVmZmVyQmluZGluZykKLSAgICAgICAgbV9mcmFtZWJ1ZmZlckJpbmRpbmctPnJlbW92ZUF0
dGFjaG1lbnRGcm9tQm91bmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHRHTDo6RlJBTUVCVUZG
RVIsIHJlbmRlcmJ1ZmZlcik7CisgICAgICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nLT5yZW1vdmVB
dHRhY2htZW50RnJvbUJvdW5kRnJhbWVidWZmZXIobG9ja2VyLCBHcmFwaGljc0NvbnRleHRHTDo6
RlJBTUVCVUZGRVIsIHJlbmRlcmJ1ZmZlcik7CiAgICAgYXV0byByZWFkRnJhbWVidWZmZXJCaW5k
aW5nID0gZ2V0RnJhbWVidWZmZXJCaW5kaW5nKEdyYXBoaWNzQ29udGV4dEdMOjpSRUFEX0ZSQU1F
QlVGRkVSKTsKICAgICBpZiAocmVhZEZyYW1lYnVmZmVyQmluZGluZykKLSAgICAgICAgcmVhZEZy
YW1lYnVmZmVyQmluZGluZy0+cmVtb3ZlQXR0YWNobWVudEZyb21Cb3VuZEZyYW1lYnVmZmVyKEdy
YXBoaWNzQ29udGV4dEdMOjpSRUFEX0ZSQU1FQlVGRkVSLCByZW5kZXJidWZmZXIpOworICAgICAg
ICByZWFkRnJhbWVidWZmZXJCaW5kaW5nLT5yZW1vdmVBdHRhY2htZW50RnJvbUJvdW5kRnJhbWVi
dWZmZXIobG9ja2VyLCBHcmFwaGljc0NvbnRleHRHTDo6UkVBRF9GUkFNRUJVRkZFUiwgcmVuZGVy
YnVmZmVyKTsKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZWxldGVTaGFk
ZXIoV2ViR0xTaGFkZXIqIHNoYWRlcikKIHsKLSAgICBkZWxldGVPYmplY3Qoc2hhZGVyKTsKKyAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG9iamVjdEdyYXBoTG9jaygpKTsKKyAgICBkZWxldGVP
YmplY3QobG9ja2VyLCBzaGFkZXIpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OmRlbGV0ZVRleHR1cmUoV2ViR0xUZXh0dXJlKiB0ZXh0dXJlKQogewotICAgIGlmICghZGVs
ZXRlT2JqZWN0KHRleHR1cmUpKQorICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3Jh
cGhMb2NrKCkpOworCisgICAgaWYgKCFkZWxldGVPYmplY3QobG9ja2VyLCB0ZXh0dXJlKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgdW5zaWduZWQgY3VycmVudCA9IDA7CkBAIC0yMDg0LDEwICsy
MTEzLDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVsZXRlVGV4dHVyZShX
ZWJHTFRleHR1cmUqIHRleHR1cmUpCiAgICAgICAgICsrY3VycmVudDsKICAgICB9CiAgICAgaWYg
KG1fZnJhbWVidWZmZXJCaW5kaW5nKQotICAgICAgICBtX2ZyYW1lYnVmZmVyQmluZGluZy0+cmVt
b3ZlQXR0YWNobWVudEZyb21Cb3VuZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dEdMOjpGUkFN
RUJVRkZFUiwgdGV4dHVyZSk7CisgICAgICAgIG1fZnJhbWVidWZmZXJCaW5kaW5nLT5yZW1vdmVB
dHRhY2htZW50RnJvbUJvdW5kRnJhbWVidWZmZXIobG9ja2VyLCBHcmFwaGljc0NvbnRleHRHTDo6
RlJBTUVCVUZGRVIsIHRleHR1cmUpOwogICAgIGF1dG8gcmVhZEZyYW1lYnVmZmVyQmluZGluZyA9
IGdldEZyYW1lYnVmZmVyQmluZGluZyhHcmFwaGljc0NvbnRleHRHTDo6UkVBRF9GUkFNRUJVRkZF
Uik7CiAgICAgaWYgKHJlYWRGcmFtZWJ1ZmZlckJpbmRpbmcpCi0gICAgICAgIHJlYWRGcmFtZWJ1
ZmZlckJpbmRpbmctPnJlbW92ZUF0dGFjaG1lbnRGcm9tQm91bmRGcmFtZWJ1ZmZlcihHcmFwaGlj
c0NvbnRleHRHTDo6UkVBRF9GUkFNRUJVRkZFUiwgdGV4dHVyZSk7CisgICAgICAgIHJlYWRGcmFt
ZWJ1ZmZlckJpbmRpbmctPnJlbW92ZUF0dGFjaG1lbnRGcm9tQm91bmRGcmFtZWJ1ZmZlcihsb2Nr
ZXIsIEdyYXBoaWNzQ29udGV4dEdMOjpSRUFEX0ZSQU1FQlVGRkVSLCB0ZXh0dXJlKTsKIH0KIAog
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZXB0aEZ1bmMoR0NHTGVudW0gZnVuYykK
QEAgLTIxMTgsMTQgKzIxNDcsMTYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpk
ZXB0aFJhbmdlKEdDR0xmbG9hdCB6TmVhciwgR0NHTGZsb2F0IHpGYXIpCiAKIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGV0YWNoU2hhZGVyKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwg
V2ViR0xTaGFkZXIqIHNoYWRlcikKIHsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG9iamVj
dEdyYXBoTG9jaygpKTsKKwogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZh
bGlkYXRlV2ViR0xQcm9ncmFtT3JTaGFkZXIoImRldGFjaFNoYWRlciIsIHByb2dyYW0pIHx8ICF2
YWxpZGF0ZVdlYkdMUHJvZ3JhbU9yU2hhZGVyKCJkZXRhY2hTaGFkZXIiLCBzaGFkZXIpKQogICAg
ICAgICByZXR1cm47Ci0gICAgaWYgKCFwcm9ncmFtLT5kZXRhY2hTaGFkZXIoc2hhZGVyKSkgewor
ICAgIGlmICghcHJvZ3JhbS0+ZGV0YWNoU2hhZGVyKGxvY2tlciwgc2hhZGVyKSkgewogICAgICAg
ICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHRHTDo6SU5WQUxJRF9PUEVSQVRJT04s
ICJkZXRhY2hTaGFkZXIiLCAic2hhZGVyIG5vdCBhdHRhY2hlZCIpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIG1fY29udGV4dC0+ZGV0YWNoU2hhZGVyKG9iamVjdE9yWmVybyhwcm9ncmFt
KSwgb2JqZWN0T3JaZXJvKHNoYWRlcikpOwotICAgIHNoYWRlci0+b25EZXRhY2hlZChncmFwaGlj
c0NvbnRleHRHTCgpKTsKKyAgICBzaGFkZXItPm9uRGV0YWNoZWQobG9ja2VyLCBncmFwaGljc0Nv
bnRleHRHTCgpKTsKIH0KIAogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNhYmxl
KEdDR0xlbnVtIGNhcCkKQEAgLTU4OTUsNiArNTkyNiw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6dW5pZm9ybU1hdHJpeDRmdihjb25zdCBXZWJHTFVuaWZvcm1Mb2NhdGlvbiog
bG9jCiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dXNlUHJvZ3JhbShXZWJHTFBy
b2dyYW0qIHByb2dyYW0pCiB7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhvYmplY3RHcmFw
aExvY2soKSk7CisKICAgICBpZiAoIWNoZWNrT2JqZWN0VG9CZUJvdW5kKCJ1c2VQcm9ncmFtIiwg
cHJvZ3JhbSkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAocHJvZ3JhbSAmJiAhcHJvZ3JhbS0+
Z2V0TGlua1N0YXR1cygpKSB7CkBAIC01OTAzLDcgKzU5MzYsNyBAQCB2b2lkIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OnVzZVByb2dyYW0oV2ViR0xQcm9ncmFtKiBwcm9ncmFtKQogICAgIH0K
ICAgICBpZiAobV9jdXJyZW50UHJvZ3JhbSAhPSBwcm9ncmFtKSB7CiAgICAgICAgIGlmIChtX2N1
cnJlbnRQcm9ncmFtKQotICAgICAgICAgICAgbV9jdXJyZW50UHJvZ3JhbS0+b25EZXRhY2hlZChn
cmFwaGljc0NvbnRleHRHTCgpKTsKKyAgICAgICAgICAgIG1fY3VycmVudFByb2dyYW0tPm9uRGV0
YWNoZWQobG9ja2VyLCBncmFwaGljc0NvbnRleHRHTCgpKTsKICAgICAgICAgbV9jdXJyZW50UHJv
Z3JhbSA9IHByb2dyYW07CiAgICAgICAgIG1fY29udGV4dC0+dXNlUHJvZ3JhbShvYmplY3RPclpl
cm8ocHJvZ3JhbSkpOwogICAgICAgICBpZiAocHJvZ3JhbSkKQEAgLTU5NjAsNiArNTk5Myw4IEBA
IHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dmVydGV4QXR0cmliNGZ2KEdDR0x1aW50
IGluZGV4LCBGbG9hdDMyTGlzdCYmIHYpCiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6dmVydGV4QXR0cmliUG9pbnRlcihHQ0dMdWludCBpbmRleCwgR0NHTGludCBzaXplLCBHQ0dM
ZW51bSB0eXBlLCBHQ0dMYm9vbGVhbiBub3JtYWxpemVkLCBHQ0dMc2l6ZWkgc3RyaWRlLCBsb25n
IGxvbmcgb2Zmc2V0KQogeworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sob2JqZWN0R3JhcGhM
b2NrKCkpOworCiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0
dXJuOwogICAgIHN3aXRjaCAodHlwZSkgewpAQCAtNjAyMyw3ICs2MDU4LDcgQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDR0x1aW50IGluZGV4
LCBHQ0dMaW50IHNpemUKICAgICB9CiAgICAgR0NHTHNpemVpIGJ5dGVzUGVyRWxlbWVudCA9IHNp
emUgKiB0eXBlU2l6ZTsKIAotICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+c2V0VmVydGV4
QXR0cmliU3RhdGUoaW5kZXgsIGJ5dGVzUGVyRWxlbWVudCwgc2l6ZSwgdHlwZSwgbm9ybWFsaXpl
ZCwgc3RyaWRlLCBzdGF0aWNfY2FzdDxHQ0dMaW50cHRyPihvZmZzZXQpLCBtX2JvdW5kQXJyYXlC
dWZmZXIuZ2V0KCkpOworICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+c2V0VmVydGV4QXR0
cmliU3RhdGUobG9ja2VyLCBpbmRleCwgYnl0ZXNQZXJFbGVtZW50LCBzaXplLCB0eXBlLCBub3Jt
YWxpemVkLCBzdHJpZGUsIHN0YXRpY19jYXN0PEdDR0xpbnRwdHI+KG9mZnNldCksIG1fYm91bmRB
cnJheUJ1ZmZlci5nZXQoKSk7CiAgICAgbV9jb250ZXh0LT52ZXJ0ZXhBdHRyaWJQb2ludGVyKGlu
ZGV4LCBzaXplLCB0eXBlLCBub3JtYWxpemVkLCBzdHJpZGUsIHN0YXRpY19jYXN0PEdDR0xpbnRw
dHI+KG9mZnNldCkpOwogfQogCkBAIC02MTUyLDkgKzYxODcsMTEgQEAgdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCkKICAgICBpZiAobV9p
c1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKQogICAgICAgICByZXR1cm47CiAKKyAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG9iamVjdEdyYXBoTG9jaygpKTsKKwogICAgIHdoaWxlIChtX2NvbnRl
eHRPYmplY3RzLnNpemUoKSA+IDApIHsKICAgICAgICAgSGFzaFNldDxXZWJHTENvbnRleHRPYmpl
Y3QqPjo6aXRlcmF0b3IgaXQgPSBtX2NvbnRleHRPYmplY3RzLmJlZ2luKCk7Ci0gICAgICAgICgq
aXQpLT5kZXRhY2hDb250ZXh0KCk7CisgICAgICAgICgqaXQpLT5kZXRhY2hDb250ZXh0KGxvY2tl
cik7CiAgICAgfQogfQogCkBAIC03NTU4LDcgKzc1OTUsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OnNldEJhY2tEcmF3QnVmZmVyKEdDR0xlbnVtIGJ1ZikKICAgICBtX2JhY2tE
cmF3QnVmZmVyID0gYnVmOwogfQogCi12b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnNl
dEZyYW1lYnVmZmVyKEdDR0xlbnVtIHRhcmdldCwgV2ViR0xGcmFtZWJ1ZmZlciogYnVmZmVyKQor
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzZXRGcmFtZWJ1ZmZlcihjb25zdCBBYnN0
cmFjdExvY2tlciYsIEdDR0xlbnVtIHRhcmdldCwgV2ViR0xGcmFtZWJ1ZmZlciogYnVmZmVyKQog
ewogICAgIGlmIChidWZmZXIpCiAgICAgICAgIGJ1ZmZlci0+c2V0SGFzRXZlckJlZW5Cb3VuZCgp
OwpAQCAtNzc2NCw2ICs3ODAxLDQ1IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpCiAgICAgcXVldWVUYXNrVG9EaXNw
YXRjaEV2ZW50KCpjYW52YXMsIFRhc2tTb3VyY2U6OldlYkdMLCBXZWJHTENvbnRleHRFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRjaGFuZ2VkRXZlbnQsIEV2ZW50OjpDYW5C
dWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMsIGVtcHR5U3RyaW5nKCkpKTsKIH0K
IAordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphZGRNZW1iZXJzVG9PcGFxdWVSb290
cyhKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sob2JqZWN0R3JhcGhMb2NrKCkpOworCisgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG1fYm91
bmRBcnJheUJ1ZmZlci5nZXQoKSk7CisKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9ib3Vu
ZFZlcnRleEFycmF5T2JqZWN0LmdldCgpKTsKKyAgICBpZiAobV9ib3VuZFZlcnRleEFycmF5T2Jq
ZWN0KQorICAgICAgICBtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmFkZE1lbWJlcnNUb09wYXF1
ZVJvb3RzKGxvY2tlciwgdmlzaXRvcik7CisKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9j
dXJyZW50UHJvZ3JhbS5nZXQoKSk7CisgICAgaWYgKG1fY3VycmVudFByb2dyYW0pCisgICAgICAg
IG1fY3VycmVudFByb2dyYW0tPmFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKGxvY2tlciwgdmlzaXRv
cik7CisKKyAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9mcmFtZWJ1ZmZlckJpbmRpbmcuZ2V0
KCkpOworICAgIGlmIChtX2ZyYW1lYnVmZmVyQmluZGluZykKKyAgICAgICAgbV9mcmFtZWJ1ZmZl
ckJpbmRpbmctPmFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKGxvY2tlciwgdmlzaXRvcik7CisKKyAg
ICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QobV9yZW5kZXJidWZmZXJCaW5kaW5nLmdldCgpKTsKKwor
ICAgIGZvciAoYXV0byYgdW5pdCA6IG1fdGV4dHVyZVVuaXRzKSB7CisgICAgICAgIHZpc2l0b3Iu
YWRkT3BhcXVlUm9vdCh1bml0LnRleHR1cmUyREJpbmRpbmcuZ2V0KCkpOworICAgICAgICB2aXNp
dG9yLmFkZE9wYXF1ZVJvb3QodW5pdC50ZXh0dXJlQ3ViZU1hcEJpbmRpbmcuZ2V0KCkpOworICAg
ICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QodW5pdC50ZXh0dXJlM0RCaW5kaW5nLmdldCgpKTsK
KyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHVuaXQudGV4dHVyZTJEQXJyYXlCaW5kaW5n
LmdldCgpKTsKKyAgICB9CisKKyAgICAvLyBFeHRlbnNpb25zJyBJREwgZmlsZXMgdXNlIEdlbmVy
YXRlSXNSZWFjaGFibGU9SW1wbFdlYkdMUmVuZGVyaW5nQ29udGV4dCwKKyAgICAvLyB3aGljaCBj
aGVja3MgdG8gc2VlIHdoZXRoZXIgdGhlIGNvbnRleHQgaXMgaW4gdGhlIG9wYXF1ZSByb290IHNl
dCAoaXQgaXM7CisgICAgLy8gaXQncyBhZGRlZCBpbiBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dCAv
IEpTV2ViR0wyUmVuZGVyaW5nQ29udGV4dCdzIGN1c3RvbQorICAgIC8vIGJpbmRpbmdzIGNvZGUp
LiBGb3IgdGhpcyByZWFzb24gaXQncyB1bm5lY2Vzc2FyeSB0byBleHBsaWNpdGx5IGFkZCBvcGFx
dWUKKyAgICAvLyByb290cyBmb3IgZXh0ZW5zaW9ucy4KK30KKworTG9jayYgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6b2JqZWN0R3JhcGhMb2NrKCkKK3sKKyAgICByZXR1cm4gbV9vYmplY3RH
cmFwaExvY2s7Cit9CisKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cHJlcGFyZUZv
ckRpc3BsYXkoKQogewogICAgIGlmICghbV9jb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDhlN2Y0
YTJkNjEzNjU4NWExMzg1OWQzMGVhYzA4NTIzZDJmNGM2YjQuLjA1MDAwYTIxZjhiNWMxYTdjODA1
YTI1NDZhNDE0MTkyNTg0OGRkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTQ3LDYgKzQ3LDcgQEAKICNp
bmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9DaGVja2Vk
QXJpdGhtZXRpYy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKICNpZiBFTkFCTEUoV0VCR0wy
KQogI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKQEAgLTU2LDYgKzU3LDE0IEBA
CiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNlbmRpZgogCituYW1lc3BhY2Ug
SlNDIHsKK2NsYXNzIFNsb3RWaXNpdG9yOworfQorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIEFi
c3RyYWN0TG9ja2VyOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFOR0xFSW5z
dGFuY2VkQXJyYXlzOwpAQCAtMzk4LDYgKzQwNywyMyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWN5
Y2xlQ29udGV4dCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5v
dGlmaWNhdGlvbigpIG92ZXJyaWRlOwogCisgICAgdmlydHVhbCB2b2lkIGFkZE1lbWJlcnNUb09w
YXF1ZVJvb3RzKEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICAvLyBUaGlzIGxvY2sgbXVzdCBiZSBo
ZWxkIGFjcm9zcyBhbGwgbXV0YXRpb25zIG9mIGNvbnRhaW5lcnMgbGlrZQorICAgIC8vIFZlY3Rv
cnMsIEhhc2hTZXRzLCBldGMuIHdoaWNoIGNvbnRhaW4gUmVmUHRyPFdlYkdMT2JqZWN0PiwgYW5k
CisgICAgLy8gd2hpY2ggYXJlIHRyYXZlcnNlZCBieSBhZGRNZW1iZXJzVG9PcGFxdWVSb290cygp
IG9yIGFueSBvZiB0aGUKKyAgICAvLyBzaW1pbGFybHktbmFtZWQgbWV0aG9kcyBpbiBXZWJHTE9i
amVjdCBzdWJjbGFzc2VzLgorICAgIC8vCisgICAgLy8gRklYTUU6IGNvbnNpZGVyIGNoYW5naW5n
IHRoaXMgbWVjaGFuaXNtIHRvIGluc3RlYWQgcmVjb3JkIHdoZW4KKyAgICAvLyBpbmRpdmlkdWFs
IFdlYkdMT2JqZWN0cyBhcmUgbGF0Y2hlZCAvIHVubGF0Y2hlZCBpbiB0aGUKKyAgICAvLyBjb250
ZXh0J3Mgc3RhdGUsIGVpdGhlciBkaXJlY3RseSwgb3IgaW5kaXJlY3RseSB0aHJvdWdoCisgICAg
Ly8gY29udGFpbmVyIG9iamVjdHMuIElmIHRoYXQgd2VyZSBkb25lLCB0aGVuIHRoZQorICAgIC8v
ICJHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwiIGluIHZhcmlvdXMgV2ViR0wgb2JqZWN0cycgSURM
IGZpbGVzCisgICAgLy8gd291bGQgbmVlZCB0byBiZSBjaGFuZ2VkIHRvIGluc3RlYWQgcXVlcnkg
d2hldGhlciB0aGUgb2JqZWN0IGlzCisgICAgLy8gY3VycmVudGx5IGxhdGNoZWQgaW50byB0aGUg
Y29udGV4dCAtIHdpdGhvdXQgdHJhdmVyc2luZyBhbGwgb2YKKyAgICAvLyB0aGUgbGF0Y2hlZCBv
YmplY3RzIHRvIGZpbmQgdGhlIGN1cnJlbnQgb25lLCB3aGljaCB3b3VsZCBiZQorICAgIC8vIHBy
b2hpYml0aXZlbHkgZXhwZW5zaXZlLgorICAgIExvY2smIG9iamVjdEdyYXBoTG9jaygpOworCiBw
cm90ZWN0ZWQ6CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiwgV2Vi
R0xDb250ZXh0QXR0cmlidXRlcyk7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52
YXNCYXNlJiwgUmVmPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiYmLCBXZWJHTENvbnRleHRBdHRy
aWJ1dGVzKTsKQEAgLTQ5MSwxMCArNTE3LDExIEBAIHByb3RlY3RlZDoKIAogICAgIGJvb2wgZW5h
YmxlU3VwcG9ydGVkRXh0ZW5zaW9uKEFTQ0lJTGl0ZXJhbCBleHRlbnNpb25OYW1lTGl0ZXJhbCk7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgdW5jYWNoZURlbGV0ZWRCdWZmZXIoV2ViR0xCdWZmZXIqKTsK
KyAgICB2aXJ0dWFsIHZvaWQgdW5jYWNoZURlbGV0ZWRCdWZmZXIoY29uc3QgV1RGOjpBYnN0cmFj
dExvY2tlciYsIFdlYkdMQnVmZmVyKik7CiAKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w+IG1fY29udGV4dDsKICAgICBSZWZQdHI8V2ViR0xDb250ZXh0R3JvdXA+IG1fY29udGV4
dEdyb3VwOworICAgIExvY2sgbV9vYmplY3RHcmFwaExvY2s7CiAKICAgICBib29sIG1fcmVzdG9y
ZUFsbG93ZWQgeyBmYWxzZSB9OwogICAgIFN1c3BlbmRhYmxlVGltZXIgbV9yZXN0b3JlVGltZXI7
CkBAIC01MDksMTAgKzUzNiw3IEBAIHByb3RlY3RlZDoKICAgICBSZWZQdHI8V2ViR0xWZXJ0ZXhB
cnJheU9iamVjdEJhc2U+IG1fZGVmYXVsdFZlcnRleEFycmF5T2JqZWN0OwogICAgIFJlZlB0cjxX
ZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZT4gbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0OwogCi0g
ICAgdm9pZCBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KFdlYkdMVmVydGV4QXJyYXlPYmplY3RC
YXNlKiBhcnJheU9iamVjdCkKLSAgICB7Ci0gICAgICAgIG1fYm91bmRWZXJ0ZXhBcnJheU9iamVj
dCA9IGFycmF5T2JqZWN0ID8gYXJyYXlPYmplY3QgOiBtX2RlZmF1bHRWZXJ0ZXhBcnJheU9iamVj
dDsKLSAgICB9CisgICAgdm9pZCBzZXRCb3VuZFZlcnRleEFycmF5T2JqZWN0KGNvbnN0IFdURjo6
QWJzdHJhY3RMb2NrZXImLCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSopOwogICAgIAogICAg
IGNsYXNzIFZlcnRleEF0dHJpYlZhbHVlIHsKICAgICBwdWJsaWM6CkBAIC05OTIsNyArMTAxNiw3
IEBAIHByb3RlY3RlZDoKIAogICAgIC8vIEhlbHBlciBmdW5jdGlvbiBmb3IgZGVsZXRlKiAoZGVs
ZXRlQnVmZmVyLCBkZWxldGVQcm9ncmFtLCBldGMpIGZ1bmN0aW9ucy4KICAgICAvLyBSZXR1cm4g
ZmFsc2UgaWYgY2FsbGVyIHNob3VsZCByZXR1cm4gd2l0aG91dCBmdXJ0aGVyIHByb2Nlc3Npbmcu
Ci0gICAgYm9vbCBkZWxldGVPYmplY3QoV2ViR0xPYmplY3QqKTsKKyAgICBib29sIGRlbGV0ZU9i
amVjdChjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJiwgV2ViR0xPYmplY3QqKTsKIAogICAgIC8v
IEhlbHBlciBmdW5jdGlvbiBmb3IgYmluZCogKGJpbmRCdWZmZXIsIGJpbmRUZXh0dXJlLCBldGMp
IGFuZCB1c2VQcm9ncmFtLgogICAgIC8vIFJldHVybiBmYWxzZSBpZiBjYWxsZXIgc2hvdWxkIHJl
dHVybiB3aXRob3V0IGZ1cnRoZXIgcHJvY2Vzc2luZy4KQEAgLTEwMDYsNyArMTAzMCw3IEBAIHBy
b3RlY3RlZDoKICAgICAvLyBSZXR1cm4gdGhlIGN1cnJlbnQgYm91bmQgYnVmZmVyIHRvIHRhcmdl
dCwgb3IgMCBpZiB0aGUgdGFyZ2V0IGlzIGludmFsaWQuCiAgICAgdmlydHVhbCBXZWJHTEJ1ZmZl
ciogdmFsaWRhdGVCdWZmZXJEYXRhVGFyZ2V0KGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0NH
TGVudW0gdGFyZ2V0KTsKIAotICAgIHZpcnR1YWwgYm9vbCB2YWxpZGF0ZUFuZENhY2hlQnVmZmVy
QmluZGluZyhjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDR0xlbnVtIHRhcmdldCwgV2ViR0xC
dWZmZXIqKTsKKyAgICB2aXJ0dWFsIGJvb2wgdmFsaWRhdGVBbmRDYWNoZUJ1ZmZlckJpbmRpbmco
Y29uc3QgV1RGOjpBYnN0cmFjdExvY2tlciYsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0NH
TGVudW0gdGFyZ2V0LCBXZWJHTEJ1ZmZlciopOwogCiAjaWYgIVVTRShBTkdMRSkKICAgICAvLyBI
ZWxwZXJzIGZvciBzaW11bGF0aW5nIHZlcnRleEF0dHJpYjAuCkBAIC0xMDM1LDcgKzEwNTksNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBHQ0dMaW50IGdldE1heENvbG9yQXR0YWNobWVudHMo
KSA9IDA7CiAKICAgICB2b2lkIHNldEJhY2tEcmF3QnVmZmVyKEdDR0xlbnVtKTsKLSAgICB2b2lk
IHNldEZyYW1lYnVmZmVyKEdDR0xlbnVtLCBXZWJHTEZyYW1lYnVmZmVyKik7CisgICAgdm9pZCBz
ZXRGcmFtZWJ1ZmZlcihjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJiwgR0NHTGVudW0sIFdlYkdM
RnJhbWVidWZmZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlQ3VycmVudEZyYW1lYnVm
ZmVyKCk7CiAgICAgdm9pZCByZXN0b3JlQ3VycmVudFRleHR1cmUyRCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMU2FtcGxlci5jcHAKaW5kZXggYjhjMzU0NDNlMjc3ZDc4Zjk5
NzJjMDhjNTI4YTM5NDAyNTIwNmNiZi4uYjcyMDQyNTgyM2UzNjM1NmVhMmY3MDQ1NzA4Y2U1MTQx
NWFjYjA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1w
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNhbXBsZXIuY3Bw
CkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2lu
Y2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5o
PgorI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00
MCw3ICs0MiwxMCBAQCBSZWY8V2ViR0xTYW1wbGVyPiBXZWJHTFNhbXBsZXI6OmNyZWF0ZShXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCiAKIFdlYkdMU2FtcGxlcjo6fldlYkdMU2FtcGxl
cigpCiB7Ci0gICAgZGVsZXRlT2JqZWN0KDApOworICAgIGlmICghaGFzR3JvdXBPckNvbnRleHQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcnVuRGVzdHJ1Y3RvcigpOwogfQogCiBXZWJHTFNh
bXBsZXI6OldlYkdMU2FtcGxlcihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgpCkBAIC00
OSw3ICs1NCw3IEBAIFdlYkdMU2FtcGxlcjo6V2ViR0xTYW1wbGVyKFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UmIGN0eCkKICAgICBzZXRPYmplY3QoY3R4LmdyYXBoaWNzQ29udGV4dEdMKCktPmNy
ZWF0ZVNhbXBsZXIoKSk7CiB9CiAKLXZvaWQgV2ViR0xTYW1wbGVyOjpkZWxldGVPYmplY3RJbXBs
KEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QsIFBsYXRmb3JtR0xPYmplY3Qgb2Jq
ZWN0KQordm9pZCBXZWJHTFNhbXBsZXI6OmRlbGV0ZU9iamVjdEltcGwoY29uc3QgQWJzdHJhY3RM
b2NrZXImLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDNkLCBQbGF0Zm9ybUdMT2Jq
ZWN0IG9iamVjdCkKIHsKICAgICBjb250ZXh0M2QtPmRlbGV0ZVNhbXBsZXIob2JqZWN0KTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2FtcGxlci5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmgKaW5kZXggYTMyNzBhMTgz
NTljOWI4NTg2ODk0Mzg3N2FlNDJmNjZiZjk3M2NhNC4uOWIxMTgzZTVkNzNkZTI2MDVlNzFkNDk4
NzBhNjg0MDkwYzIxMTVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xTYW1wbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1w
bGVyLmgKQEAgLTI5LDYgKzI5LDEwIEBACiAKICNpbmNsdWRlICJXZWJHTFNoYXJlZE9iamVjdC5o
IgogCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIEFic3RyYWN0TG9ja2VyOworfQorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMU2FtcGxlciBmaW5hbCA6IHB1YmxpYyBXZWJHTFNo
YXJlZE9iamVjdCB7CkBAIC0zOCw3ICs0Miw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBXZWJHTFNhbXBsZXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYpOwotICAgIHZv
aWQgZGVsZXRlT2JqZWN0SW1wbChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xP
YmplY3QpIGZpbmFsOworICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1wbChjb25zdCBXVEY6OkFic3Ry
YWN0TG9ja2VyJiwgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0KSBm
aW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2FtcGxlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFNhbXBsZXIuaWRsCmluZGV4IDRlNTQ0Y2E2ZTQ0NDg3MzljY2NmOWE2OGRj
NGQ3ZTc2MTM0NGZlMTQuLmI4ZWRjMmY2NzU5ZDE4Y2U4MmNjODAyYTQxYjBhODc5MTk5NzkzZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2FtcGxlci5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTYW1wbGVyLmlkbApAQCAtMjQs
NiArMjQsNyBAQAogICovCiAKIFsKLSAgICBDb25kaXRpb25hbD1XRUJHTAorICAgIENvbmRpdGlv
bmFsPVdFQkdMLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbAogXSBpbnRlcmZhY2UgV2Vi
R0xTYW1wbGVyIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFNoYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5j
cHAKaW5kZXggNjQ3ODIwMzUwOWFhODY3YTJjMGVkMGRmMjZkZTViYTA4YWI4ZDVlNy4uYzcwZDBh
NDZkNmM5YjhlNGZmZDgyMDU1YTMxMjJkYjBiZDE2MTE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMU2hhZGVyLmNwcApAQCAtMzEsNiArMzEsOCBAQAogCiAjaW5jbHVkZSAi
V2ViR0xDb250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmgiCisjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvTG9ja2VyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTAsMTAgKzUyLDEzIEBAIFdlYkdMU2hhZGVyOjpXZWJH
TFNoYWRlcihXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjdHgsIEdDR0xlbnVtIHR5cGUpCiAK
IFdlYkdMU2hhZGVyOjp+V2ViR0xTaGFkZXIoKQogewotICAgIGRlbGV0ZU9iamVjdCgwKTsKKyAg
ICBpZiAoIWhhc0dyb3VwT3JDb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIHJ1bkRl
c3RydWN0b3IoKTsKIH0KIAotdm9pZCBXZWJHTFNoYWRlcjo6ZGVsZXRlT2JqZWN0SW1wbChHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDNkLCBQbGF0Zm9ybUdMT2JqZWN0IG9iamVjdCkK
K3ZvaWQgV2ViR0xTaGFkZXI6OmRlbGV0ZU9iamVjdEltcGwoY29uc3QgQWJzdHJhY3RMb2NrZXIm
LCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDNkLCBQbGF0Zm9ybUdMT2JqZWN0IG9i
amVjdCkKIHsKICAgICBjb250ZXh0M2QtPmRlbGV0ZVNoYWRlcihvYmplY3QpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmgKaW5kZXggZDNkM2E1NTIxZjAxYzEwYjM0
N2FjZDI2ZTI2MzYxNjNkN2UyMjdkYS4uN2I0NzMzYWJjZTdlYzRhZWM0N2E0ZmQ1MDI5ZjE0MjA2
YzhmZjg3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5oCkBAIC00
OCw3ICs0OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2ViR0xTaGFkZXIoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSYsIEdDR0xlbnVtKTsKIAotICAgIHZvaWQgZGVsZXRlT2JqZWN0SW1w
bChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmplY3QpIGZpbmFsOworICAg
IHZvaWQgZGVsZXRlT2JqZWN0SW1wbChjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJiwgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0KSBmaW5hbDsKIAogICAgIEdDR0xl
bnVtIG1fdHlwZTsKICAgICBTdHJpbmcgbV9zb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFNoYWRlci5pZGwKaW5kZXggNTJmOTYyMDI1NjE1Y2Y1NzA2YTJjN2U3ZmQyZWJh
NTZkOWI1MWIxZS4uYjUwNzk0NjAxZGUwYjgyOGRmNjU2OWUwZjhkN2Q2NjAzMjUxNDQwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbApAQCAtMjQsNiArMjQs
NyBAQAogICovCiAKIFsKLSAgICBDb25kaXRpb25hbD1XRUJHTAorICAgIENvbmRpdGlvbmFsPVdF
QkdMLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbAogXSBpbnRlcmZhY2UgV2ViR0xTaGFk
ZXIgewogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hh
cmVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2Jq
ZWN0LmNwcAppbmRleCBkMDJiZmE0ZTI4NmZiMWNiZGNkOTkzOGE0YzI0NWJkMjcxYTk2YTEyLi43
MTgyNmE0ZjUzMDc2YWZiODFkMWRmZjdkNmZiMzkwZDBlYWIwM2IzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFyZWRPYmplY3QuY3BwCkBAIC0zMCw2ICszMCw3
IEBACiAKICNpbmNsdWRlICJXZWJHTENvbnRleHRHcm91cC5oIgogI2luY2x1ZGUgIldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaCIKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTQ0LDIxICs0NSw1MCBAQCBXZWJHTFNoYXJlZE9iamVjdDo6fldlYkdM
U2hhcmVkT2JqZWN0KCkKICAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZU9iamVjdCgqdGhp
cyk7CiB9CiAKLXZvaWQgV2ViR0xTaGFyZWRPYmplY3Q6OmRldGFjaENvbnRleHRHcm91cCgpCit2
b2lkIFdlYkdMU2hhcmVkT2JqZWN0OjpkZXRhY2hDb250ZXh0R3JvdXAoY29uc3QgQWJzdHJhY3RM
b2NrZXImIGxvY2tlcikKIHsKICAgICBkZXRhY2goKTsKICAgICBpZiAobV9jb250ZXh0R3JvdXAp
IHsKLSAgICAgICAgZGVsZXRlT2JqZWN0KG51bGxwdHIpOworICAgICAgICBkZWxldGVPYmplY3Qo
bG9ja2VyLCBudWxscHRyKTsKICAgICAgICAgbV9jb250ZXh0R3JvdXAtPnJlbW92ZU9iamVjdCgq
dGhpcyk7CiAgICAgICAgIG1fY29udGV4dEdyb3VwID0gbnVsbHB0cjsKICAgICB9CiB9CiAKK3Zv
aWQgV2ViR0xTaGFyZWRPYmplY3Q6OmRldGFjaENvbnRleHRHcm91cFdpdGhvdXREZWxldGluZ09i
amVjdCgpCit7CisgICAgLy8gVGhpcyBjYW4gYmUgY2FsbGVkIGR1cmluZyBjb250ZXh0IHRlYXJk
b3duIGlmIHRoZSBzb2xlIGNvbnRleHQKKyAgICAvLyBpbiB0aGUgc2hhcmUgZ3JvdXAgaGFzIGFs
cmVhZHkgYmVlbiByZW1vdmVkLiBJbiB0aGlzIGNhc2UsIHRoZQorICAgIC8vIHVuZGVybHlpbmcg
V2ViR0wgb2JqZWN0IGhhcyBhbHJlYWR5IGJlZW4gaW1wbGljaXRseSBkZWxldGVkLCBzbworICAg
IC8vIGl0J3Mgbm90IG5lY2Vzc2FyeSB0byBjYWxsIGRlbGV0ZU9iamVjdCBvbiBpdCAtIHdoaWNo
IGNvdWxkbid0CisgICAgLy8gYmUgcHJvdGVjdGVkIGJ5IHRoZSBvYmplY3RHcmFwaExvY2suCisg
ICAgZGV0YWNoKCk7CisgICAgaWYgKG1fY29udGV4dEdyb3VwKSB7CisgICAgICAgIG1fY29udGV4
dEdyb3VwLT5yZW1vdmVPYmplY3QoKnRoaXMpOworICAgICAgICBtX2NvbnRleHRHcm91cCA9IG51
bGxwdHI7CisgICAgfQorfQorCitib29sIFdlYkdMU2hhcmVkT2JqZWN0OjpoYXNHcm91cE9yQ29u
dGV4dCgpIGNvbnN0Cit7CisgICAgLy8gUmV0dXJuaW5nIHRydWUgZnJvbSB0aGlzIGltcGxpZXMg
dGhhdCB0aGVyZSdzIGF0IGxlYXN0IG9uZSAob3IsCisgICAgLy8gc2luY2UgY29udGV4dCBzaGFy
aW5nIGlzbid0IGN1cnJlbnRseSBpbXBsZW1lbnRlZCwgZXhhY3RseSBvbmUpCisgICAgLy8gdmlh
YmxlIGNvbnRleHQgZnJvbSB3aGljaCB0byBncmFiIHRoZSBvYmplY3RHcmFwaExvY2suCisgICAg
cmV0dXJuIG1fY29udGV4dEdyb3VwICYmIG1fY29udGV4dEdyb3VwLT5oYXNBQ29udGV4dCgpOwor
fQorCiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogV2ViR0xTaGFyZWRPYmplY3Q6OmdldEFHcmFw
aGljc0NvbnRleHRHTCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29udGV4dEdyb3VwID8gJm1f
Y29udGV4dEdyb3VwLT5nZXRBR3JhcGhpY3NDb250ZXh0R0woKSA6IG51bGxwdHI7CiB9CiAKK1dU
Rjo6TG9jayYgV2ViR0xTaGFyZWRPYmplY3Q6Om9iamVjdEdyYXBoTG9ja0ZvckNvbnRleHQoKQor
eworICAgIC8vIFNob3VsZCBub3QgY2FsbCB0aGlzIGlmIHRoZSBvYmplY3Qgb3IgY29udGV4dCBo
YXMgYmVlbiBkZWxldGVkLgorICAgIEFTU0VSVChtX2NvbnRleHRHcm91cCk7CisgICAgcmV0dXJu
IG1fY29udGV4dEdyb3VwLT5vYmplY3RHcmFwaExvY2tGb3JBQ29udGV4dCgpOworfQorCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xTaGFyZWRPYmplY3QuaAppbmRleCA3ZjIzOWQ1MWM0M2MzOTI0ZmIxNzUzODViNGI5YmQ5
Njk3ZmRiYzkzLi5iZGNlYzZlMDJlNGFmNmYyMjc4M2EzZTYxMTM5YzIwNDQxNjBhMmY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYXJlZE9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhcmVkT2JqZWN0LmgKQEAgLTI5
LDYgKzI5LDExIEBACiAKICNpbmNsdWRlICJXZWJHTE9iamVjdC5oIgogCituYW1lc3BhY2UgV1RG
IHsKK2NsYXNzIEFic3RyYWN0TG9ja2VyOworY2xhc3MgTG9jazsKK30KKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDsKQEAgLTUwLDE1ICs1NSwx
NiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBjb250ZXh0R3JvdXAgPT0gbV9jb250ZXh0R3Jv
dXA7CiAgICAgfQogCi0gICAgdm9pZCBkZXRhY2hDb250ZXh0R3JvdXAoKTsKKyAgICB2b2lkIGRl
dGFjaENvbnRleHRHcm91cChjb25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJik7CisKKyAgICB2b2lk
IGRldGFjaENvbnRleHRHcm91cFdpdGhvdXREZWxldGluZ09iamVjdCgpOworCisgICAgV1RGOjpM
b2NrJiBvYmplY3RHcmFwaExvY2tGb3JDb250ZXh0KCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoK
ICAgICBXZWJHTFNoYXJlZE9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJik7CiAKLSAg
ICBib29sIGhhc0dyb3VwT3JDb250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAg
IHJldHVybiBtX2NvbnRleHRHcm91cDsKLSAgICB9CisgICAgYm9vbCBoYXNHcm91cE9yQ29udGV4
dCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGdldEFH
cmFwaGljc0NvbnRleHRHTCgpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFN5bmMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xTeW5jLmNwcAppbmRleCAxYjcwMTcwNWI5Mzg0ODM5NWUzYWNjZDMzNmQxYTMy
NDEwMjc0Y2QxLi4xNzlkNDg2YWIyMjIwZjRlOTUyYjQxN2RkNzRkNjc1MjBmNTBlNWI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFN5bmMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU3luYy5jcHAKQEAgLTMxLDYgKzMxLDggQEAK
ICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEdy
b3VwLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIgorI2luY2x1ZGUg
PHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL0xvY2tlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTQxLDcgKzQzLDEwIEBAIFJlZjxXZWJHTFN5bmM+IFdlYkdMU3luYzo6Y3JlYXRl
KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKIAogV2ViR0xTeW5jOjp+V2ViR0xTeW5j
KCkKIHsKLSAgICBkZWxldGVPYmplY3QoMCk7CisgICAgaWYgKCFoYXNHcm91cE9yQ29udGV4dCgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBydW5EZXN0cnVjdG9yKCk7CiB9CiAKIFdlYkdMU3lu
Yzo6V2ViR0xTeW5jKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKQEAgLTUzLDcgKzU4
LDcgQEAgV2ViR0xTeW5jOjpXZWJHTFN5bmMoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgY3R4
KQogICAgIHNldE9iamVjdCgtMSk7CiB9CiAKLXZvaWQgV2ViR0xTeW5jOjpkZWxldGVPYmplY3RJ
bXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QsIFBsYXRmb3JtR0xPYmplY3Qg
b2JqZWN0KQordm9pZCBXZWJHTFN5bmM6OmRlbGV0ZU9iamVjdEltcGwoY29uc3QgQWJzdHJhY3RM
b2NrZXImLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDNkLCBQbGF0Zm9ybUdMT2Jq
ZWN0IG9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0ob2JqZWN0KTsKICAgICBjb250ZXh0M2Qt
PmRlbGV0ZVN5bmMobV9zeW5jKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMU3luYy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTeW5jLmgK
aW5kZXggODFjNWI3MWY1NDJiN2ViNzRmY2UyYTliZmQwNTRiNTJhZGFmMzg1YS4uYzNkMzI2NGI4
NjBkZTlmN2RlNzM0MzUwYjMxMDhlZjlkM2E3YzAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xTeW5jLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xTeW5jLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICBHQ0dMaW50IG1f
c3luY1N0YXR1cyA9IHsgR3JhcGhpY3NDb250ZXh0R0w6OlVOU0lHTkFMRUQgfTsKICAgICBHQ0dM
c3luYyBtX3N5bmM7CiAKLSAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wqLCBQbGF0Zm9ybUdMT2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGRlbGV0ZU9i
amVjdEltcGwoY29uc3QgV1RGOjpBYnN0cmFjdExvY2tlciYsIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMKiwgUGxhdGZvcm1HTE9iamVjdCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRleHR1
cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmNwcAppbmRl
eCBlYTgyYTIyOGQ3YjkzODU4MWNlNjgwZGU4ODZkNzFlNWU0MDZhNzNlLi5hMzk4NmRhNTAyYjll
NGUwY2I2ZTYwODQ4OGUyNjA5ZWJmZjMxZWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMVGV4dHVyZS5jcHAKQEAgLTYyLDcgKzYyLDEwIEBAIFdlYkdMVGV4dHVyZTo6V2Vi
R0xUZXh0dXJlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGN0eCkKIAogV2ViR0xUZXh0dXJl
Ojp+V2ViR0xUZXh0dXJlKCkKIHsKLSAgICBkZWxldGVPYmplY3QoMCk7CisgICAgaWYgKCFoYXNH
cm91cE9yQ29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBydW5EZXN0cnVjdG9yKCk7
CiB9CiAKIHZvaWQgV2ViR0xUZXh0dXJlOjpzZXRUYXJnZXQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dM
aW50IG1heExldmVsKQpAQCAtOTIsNyArOTUsNyBAQCB2b2lkIFdlYkdMVGV4dHVyZTo6c2V0VGFy
Z2V0KEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBtYXhMZXZlbCkKICNlbmRpZiAvLyBVU0UoQU5H
TEUpCiB9CiAKLXZvaWQgV2ViR0xUZXh0dXJlOjpkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMKiBjb250ZXh0M2QsIFBsYXRmb3JtR0xPYmplY3Qgb2JqZWN0KQordm9pZCBX
ZWJHTFRleHR1cmU6OmRlbGV0ZU9iamVjdEltcGwoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDNkLCBQbGF0Zm9ybUdMT2JqZWN0IG9iamVjdCkK
IHsKICAgICBjb250ZXh0M2QtPmRlbGV0ZVRleHR1cmUob2JqZWN0KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmgKaW5kZXggNWE1MTZlNWU3Mzc2MjhkMzgxYzI4
Mzc5OWZkNmExYjUyZjY3MmI0Ny4uZGUyOWY4Yjg3NTdlNzkxY2RhOTllOGUwMTllYjdkYjhhNTll
MmIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmgKQEAgLTkw
LDcgKzkwLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJHTFRleHR1cmUoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZSYpOwogCi0gICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBk
ZWxldGVPYmplY3RJbXBsKGNvbnN0IFdURjo6QWJzdHJhY3RMb2NrZXImLCBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmplY3QpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1Rl
eHR1cmUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaWRsCmluZGV4IDY3ZGZhM2M0ZjZlMTFmZmFkYTg0
NTVhNzAxMTI1NDJjMDIwZDU4NGUuLmE2MzA2ZTVhNTFiNjEwMGQyMjg2YWRiMjgyMjU2NmE4YjU1
NTUxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVGV4dHVy
ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbApA
QCAtMjQsNiArMjQsNyBAQAogICovCiAKIFsKLSAgICBDb25kaXRpb25hbD1XRUJHTAorICAgIENv
bmRpdGlvbmFsPVdFQkdMLAorICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbAogXSBpbnRlcmZh
Y2UgV2ViR0xUZXh0dXJlIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suY3BwCmluZGV4IDkxNWNhZTI4MDM2MWM3MDZmYzUx
YzdmYmZhODdjMjg4OWEwNTI5NDMuLjAyNmViYjdhMmMxMzIyYmM5Y2JhMDVjODkxNDg4OWNlM2E4
MzY4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNm
b3JtRmVlZGJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJh
bnNmb3JtRmVlZGJhY2suY3BwCkBAIC0zMCw2ICszMCwxMCBAQAogCiAjaW5jbHVkZSAiV2ViR0xD
b250ZXh0R3JvdXAuaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgiCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0b3IuaD4KKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9TbG90VmlzaXRvcklubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2lu
Y2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCw3ICs0
NCwxMCBAQCBSZWY8V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaz4gV2ViR0xUcmFuc2Zvcm1GZWVkYmFj
azo6Y3JlYXRlKFdlYkdMMlJlbmRlcmluZ0NvbnRleAogCiBXZWJHTFRyYW5zZm9ybUZlZWRiYWNr
Ojp+V2ViR0xUcmFuc2Zvcm1GZWVkYmFjaygpCiB7Ci0gICAgZGVsZXRlT2JqZWN0KDApOworICAg
IGlmICghaGFzR3JvdXBPckNvbnRleHQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcnVuRGVz
dHJ1Y3RvcigpOwogfQogCiBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpXZWJHTFRyYW5zZm9ybUZl
ZWRiYWNrKFdlYkdMMlJlbmRlcmluZ0NvbnRleHQmIGN0eCkKQEAgLTUwLDE4ICs1NywxOCBAQCBX
ZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpXZWJHTFRyYW5zZm9ybUZlZWRiYWNrKFdlYkdMMlJlbmRl
cmluZ0NvbnRleHQmIGN0eCkKICAgICBtX2JvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVm
ZmVycy5yZXNpemUoY3R4Lm1heFRyYW5zZm9ybUZlZWRiYWNrU2VwYXJhdGVBdHRyaWJzKCkpOwog
fQogCi12b2lkIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OmRlbGV0ZU9iamVjdEltcGwoR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wqIGNvbnRleHQzZCwgUGxhdGZvcm1HTE9iamVjdCBvYmplY3QpCit2
b2lkIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OmRlbGV0ZU9iamVjdEltcGwoY29uc3QgQWJzdHJh
Y3RMb2NrZXImLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDNkLCBQbGF0Zm9ybUdM
T2JqZWN0IG9iamVjdCkKIHsKICAgICBjb250ZXh0M2QtPmRlbGV0ZVRyYW5zZm9ybUZlZWRiYWNr
KG9iamVjdCk7CiB9CiAKLXZvaWQgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6c2V0UHJvZ3JhbShX
ZWJHTFByb2dyYW0mIHByb2dyYW0pCit2b2lkIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2s6OnNldFBy
b2dyYW0oY29uc3QgQWJzdHJhY3RMb2NrZXImLCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAg
ICAgbV9wcm9ncmFtID0gJnByb2dyYW07CiAgICAgbV9wcm9ncmFtTGlua0NvdW50ID0gcHJvZ3Jh
bS5nZXRMaW5rQ291bnQoKTsKIH0KIAotdm9pZCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjpzZXRC
b3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcihHQ0dMdWludCBpbmRleCwgV2ViR0xC
dWZmZXIqIGJ1ZmZlcikKK3ZvaWQgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6c2V0Qm91bmRJbmRl
eGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXIoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBHQ0dMdWlu
dCBpbmRleCwgV2ViR0xCdWZmZXIqIGJ1ZmZlcikKIHsKICAgICBBU1NFUlQoaW5kZXggPCBtX2Jv
dW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVycy5zaXplKCkpOwogICAgIG1fYm91bmRJ
bmRleGVkVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzW2luZGV4XSA9IGJ1ZmZlcjsKQEAgLTg2LDcg
KzkzLDE3IEBAIGJvb2wgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6aGFzRW5vdWdoQnVmZmVycyhH
Q0dMdWludCBudW1SZXF1aXJlZCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBX
ZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjp1bmJpbmRCdWZmZXIoV2ViR0xCdWZmZXImIGJ1ZmZlcikK
K3ZvaWQgV2ViR0xUcmFuc2Zvcm1GZWVkYmFjazo6YWRkTWVtYmVyc1RvT3BhcXVlUm9vdHMoY29u
c3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKK3sK
KyAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6IG1fYm91bmRJbmRleGVkVHJhbnNmb3JtRmVlZGJhY2tC
dWZmZXJzKQorICAgICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoYnVmZmVyLmdldCgpKTsKKwor
ICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX3Byb2dyYW0uZ2V0KCkpOworICAgIGlmIChtX3By
b2dyYW0pCisgICAgICAgIG1fcHJvZ3JhbS0+YWRkTWVtYmVyc1RvT3BhcXVlUm9vdHMobG9ja2Vy
LCB2aXNpdG9yKTsKK30KKwordm9pZCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrOjp1bmJpbmRCdWZm
ZXIoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBXZWJHTEJ1ZmZlciYgYnVmZmVyKQogewogICAgIGZv
ciAoYXV0byYgYm91bmRCdWZmZXIgOiBtX2JvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVm
ZmVycykgewogICAgICAgICBpZiAoYm91bmRCdWZmZXIgPT0gJmJ1ZmZlcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVHJhbnNmb3JtRmVlZGJhY2suaAppbmRleCA3
N2RiOTU0OGMzYjg0NTUwNTZmYTcxN2FmNDEzNjRmMjJlMTc4ZDNiLi43Yjk5NGIzMDZkZTQ0NmFh
ZmUxZmNkNzBkZmJiMDdiZWI1ZGY1MjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5oCkBAIC0zMCw2ICszMCwxNCBAQAogI2lu
Y2x1ZGUgIldlYkdMMlJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHTFNoYXJlZE9i
amVjdC5oIgogCituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIFNsb3RWaXNpdG9yOworfQorCituYW1l
c3BhY2UgV1RGIHsKK2NsYXNzIEFic3RyYWN0TG9ja2VyOworfQorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFdlYkdMVHJhbnNmb3JtRmVlZGJhY2sgZmluYWwgOiBwdWJsaWMgV2ViR0xT
aGFyZWRPYmplY3QgewpAQCAtNDcsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhlc2UgYXJl
IHRoZSBpbmRleGVkIGJpbmQgcG9pbnRzIGZvciB0cmFuc2Zvcm0gZmVlZGJhY2sgYnVmZmVycy4K
ICAgICAvLyBSZXR1cm5zIGZhbHNlIGlmIGluZGV4IGlzIG91dCBvZiByYW5nZSBhbmQgdGhlIGNh
bGxlciBzaG91bGQKICAgICAvLyBzeW50aGVzaXplIGEgR0wgZXJyb3IuCi0gICAgdm9pZCBzZXRC
b3VuZEluZGV4ZWRUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcihHQ0dMdWludCBpbmRleCwgV2ViR0xC
dWZmZXIqKTsKKyAgICB2b2lkIHNldEJvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVy
KGNvbnN0IFdURjo6QWJzdHJhY3RMb2NrZXImLCBHQ0dMdWludCBpbmRleCwgV2ViR0xCdWZmZXIq
KTsKICAgICBib29sIGdldEJvdW5kSW5kZXhlZFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyKEdDR0x1
aW50IGluZGV4LCBXZWJHTEJ1ZmZlcioqIG91dEJ1ZmZlcik7CiAgICAgCiAgICAgYm9vbCB2YWxp
ZGF0ZVByb2dyYW1Gb3JSZXN1bWUoV2ViR0xQcm9ncmFtKikgY29uc3Q7CkBAIC01NiwxNSArNjQs
MTggQEAgcHVibGljOgogICAgIHZvaWQgc2V0SGFzRXZlckJlZW5Cb3VuZCgpIHsgbV9oYXNFdmVy
QmVlbkJvdW5kID0gdHJ1ZTsgfQogICAgIAogICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSgpIGNv
bnN0IHsgcmV0dXJuIG1fcHJvZ3JhbS5nZXQoKTsgfQotICAgIHZvaWQgc2V0UHJvZ3JhbShXZWJH
TFByb2dyYW0mKTsKKyAgICB2b2lkIHNldFByb2dyYW0oY29uc3QgV1RGOjpBYnN0cmFjdExvY2tl
ciYsIFdlYkdMUHJvZ3JhbSYpOwogICAgIAotICAgIHZvaWQgdW5iaW5kQnVmZmVyKFdlYkdMQnVm
ZmVyJik7CisgICAgdm9pZCB1bmJpbmRCdWZmZXIoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBXZWJH
TEJ1ZmZlciYpOwogICAgIAogICAgIGJvb2wgaGFzRW5vdWdoQnVmZmVycyhHQ0dMdWludCBudW1S
ZXF1aXJlZCkgY29uc3Q7CisKKyAgICB2b2lkIGFkZE1lbWJlcnNUb09wYXF1ZVJvb3RzKGNvbnN0
IEFic3RyYWN0TG9ja2VyJiwgSlNDOjpTbG90VmlzaXRvciYpOworCiBwcml2YXRlOgogICAgIFdl
YkdMVHJhbnNmb3JtRmVlZGJhY2soV2ViR0wyUmVuZGVyaW5nQ29udGV4dCYpOwogCi0gICAgdm9p
ZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9i
amVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKGNvbnN0IFdURjo6QWJz
dHJhY3RMb2NrZXImLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmplY3Qp
IG92ZXJyaWRlOwogICAgIAogICAgIGJvb2wgbV9hY3RpdmUgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9wYXVzZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xUcmFuc2Zvcm1GZWVkYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFRyYW5zZm9ybUZlZWRiYWNrLmlkbAppbmRleCA5MzczYzE4ZjhmNzQ3MjNmNDk4MDg4
YzJmYmMyZWQwOTZjNmI2NDMzLi40NWFiZDVlMmYyZWMyNDhiODM0ZTQ5M2E0YjI1ZmY3NmQzZTY2
N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5zZm9y
bUZlZWRiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRyYW5z
Zm9ybUZlZWRiYWNrLmlkbApAQCAtMjUsNiArMjUsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9
V0VCR0wyLAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR0wyCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJHTDIsCisgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsCiBdIGludGVyZmFjZSBXZWJH
TFRyYW5zZm9ybUZlZWRiYWNrIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3QuY3BwCmluZGV4IDA0MGY4Y2FlZDNmOGIwOGVm
NWM5YTJkZGM1OGQxMmUyMTFjY2ZlZjMuLjRlYmRlYmNhYTczYWU1ODI4NGU3ZmExZDU3NGM0MWE1
MmM2YjcwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVy
dGV4QXJyYXlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
VmVydGV4QXJyYXlPYmplY3QuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJXZWJH
TDJSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0R3JvdXAuaCIKKyNp
bmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIApAQCAtNDAsNyArNDIsMTAgQEAgUmVmPFdlYkdMVmVydGV4QXJyYXlP
YmplY3Q+IFdlYkdMVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRl
eHQKIAogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6fldlYkdMVmVydGV4QXJyYXlPYmplY3QoKQog
ewotICAgIGRlbGV0ZU9iamVjdChudWxscHRyKTsKKyAgICBpZiAoIWNvbnRleHQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgcnVuRGVzdHJ1Y3RvcigpOwogfQogCiBXZWJHTFZlcnRleEFycmF5
T2JqZWN0OjpXZWJHTFZlcnRleEFycmF5T2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
IGNvbnRleHQsIFR5cGUgdHlwZSkKQEAgLTUzLDcgKzU4LDcgQEAgV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdDo6V2ViR0xWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBj
b250ZXgKICAgICBzZXRPYmplY3QodGhpcy0+Y29udGV4dCgpLT5ncmFwaGljc0NvbnRleHRHTCgp
LT5jcmVhdGVWZXJ0ZXhBcnJheSgpKTsKIH0KIAotdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0
OjpkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QsIFBs
YXRmb3JtR0xPYmplY3Qgb2JqZWN0KQordm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0OjpkZWxl
dGVPYmplY3RJbXBsKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKiBjb250ZXh0M2QsIFBsYXRmb3JtR0xPYmplY3Qgb2JqZWN0KQogewogICAgIHN3
aXRjaCAobV90eXBlKSB7CiAgICAgY2FzZSBUeXBlOjpEZWZhdWx0OgpAQCAtNjQsMTEgKzY5LDEx
IEBAIHZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdDo6ZGVsZXRlT2JqZWN0SW1wbChHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTCogY29udGV4dDNkCiAgICAgfQogICAgIAogICAgIGlmIChtX2JvdW5k
RWxlbWVudEFycmF5QnVmZmVyKQotICAgICAgICBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyLT5v
bkRldGFjaGVkKGNvbnRleHQzZCk7CisgICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXIt
Pm9uRGV0YWNoZWQobG9ja2VyLCBjb250ZXh0M2QpOwogICAgIAogICAgIGZvciAoYXV0byYgc3Rh
dGUgOiBtX3ZlcnRleEF0dHJpYlN0YXRlKSB7CiAgICAgICAgIGlmIChzdGF0ZS5idWZmZXJCaW5k
aW5nKQotICAgICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZy0+b25EZXRhY2hlZChjb250ZXh0
M2QpOworICAgICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZy0+b25EZXRhY2hlZChsb2NrZXIs
IGNvbnRleHQzZCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0LmgKaW5kZXggYjRmZjdlNmUwNWFhNDk1ODIxNzdi
ODYzZjg1NmZlNjU1NDJiZGUxMC4uNDc0ZmJkNDM1NGE4YmM5MTA0NDE0ZDMzYjY2Y2Q2ZTM0ZmUx
NWY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4
QXJyYXlPYmplY3QuaApAQCAtMjksNiArMjksMTAgQEAKIAogI2luY2x1ZGUgIldlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlLmgiCiAKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgQWJzdHJhY3RMb2Nr
ZXI7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViR0wyUmVuZGVyaW5nQ29u
dGV4dDsKQEAgLTM5LDcgKzQzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfldlYkdMVmVydGV4
QXJyYXlPYmplY3QoKTsKIHByaXZhdGU6CiAgICAgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdChXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVHlwZSk7Ci0gICAgdm9pZCBkZWxldGVPYmplY3RJbXBs
KEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1HTE9iamVjdCkgZmluYWw7CisgICAg
dm9pZCBkZWxldGVPYmplY3RJbXBsKGNvbnN0IFdURjo6QWJzdHJhY3RMb2NrZXImLCBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmplY3QpIGZpbmFsOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFZlcnRleEFycmF5T2JqZWN0LmlkbAppbmRleCA2N2ExZjlkZWMxNzllZjUyMTJlZmU5MjY4
MzY4YTUxZjBmNzExMjBmLi5kZDljNWE4MTE0MTY0NTEzNWMxMjVmNjI3NDY0Mzc4MGY1M2NjYzk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5
T2JqZWN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFy
cmF5T2JqZWN0LmlkbApAQCAtMjUsNiArMjUsNyBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VC
R0wyLAotICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViR0wyCisgICAgRW5hYmxlZEF0UnVudGltZT1X
ZWJHTDIsCisgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsCiBdIGludGVyZmFjZSBXZWJHTFZl
cnRleEFycmF5T2JqZWN0IHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5jcHAKaW5kZXggMTFjYzhiOWU1NGI3
Y2Q5N2I4NGRiM2QzM2JkYTliZTEzNDUxMjIyNS4uZDg3ZmQ2MGNjZDNiYmRlZTU5ZjkyNmE5YTIw
NmIwYzdhNzhjNzk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmNwcApAQCAtMjksNiArMjksOSBAQAogI2lm
IEVOQUJMRShXRUJHTCkKIAogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCIK
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvci5oPgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1Nsb3RWaXNpdG9ySW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSwxNyArNDIsMTcgQEAgV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdEJhc2U6OldlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UKICAgICBtX3ZlcnRleEF0dHJpYlN0YXRlLnJlc2l6ZShjb250ZXh0LmdldE1h
eFZlcnRleEF0dHJpYnMoKSk7CiB9CiAKLXZvaWQgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2U6
OnNldEVsZW1lbnRBcnJheUJ1ZmZlcihXZWJHTEJ1ZmZlciogYnVmZmVyKQordm9pZCBXZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZTo6c2V0RWxlbWVudEFycmF5QnVmZmVyKGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIsIFdlYkdMQnVmZmVyKiBidWZmZXIpCiB7CiAgICAgaWYgKGJ1ZmZlcikK
ICAgICAgICAgYnVmZmVyLT5vbkF0dGFjaGVkKCk7CiAgICAgaWYgKG1fYm91bmRFbGVtZW50QXJy
YXlCdWZmZXIpCi0gICAgICAgIG1fYm91bmRFbGVtZW50QXJyYXlCdWZmZXItPm9uRGV0YWNoZWQo
Y29udGV4dCgpLT5ncmFwaGljc0NvbnRleHRHTCgpKTsKKyAgICAgICAgbV9ib3VuZEVsZW1lbnRB
cnJheUJ1ZmZlci0+b25EZXRhY2hlZChsb2NrZXIsIGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0
R0woKSk7CiAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlciA9IGJ1ZmZlcjsKICAgICAKIH0K
IAotdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4QXR0cmliU3RhdGUo
R0NHTHVpbnQgaW5kZXgsIEdDR0xzaXplaSBieXRlc1BlckVsZW1lbnQsIEdDR0xpbnQgc2l6ZSwg
R0NHTGVudW0gdHlwZSwgR0NHTGJvb2xlYW4gbm9ybWFsaXplZCwgR0NHTHNpemVpIHN0cmlkZSwg
R0NHTGludHB0ciBvZmZzZXQsIFdlYkdMQnVmZmVyKiBidWZmZXIpCit2b2lkIFdlYkdMVmVydGV4
QXJyYXlPYmplY3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShjb25zdCBBYnN0cmFjdExvY2tl
ciYgbG9ja2VyLCBHQ0dMdWludCBpbmRleCwgR0NHTHNpemVpIGJ5dGVzUGVyRWxlbWVudCwgR0NH
TGludCBzaXplLCBHQ0dMZW51bSB0eXBlLCBHQ0dMYm9vbGVhbiBub3JtYWxpemVkLCBHQ0dMc2l6
ZWkgc3RyaWRlLCBHQ0dMaW50cHRyIG9mZnNldCwgV2ViR0xCdWZmZXIqIGJ1ZmZlcikKIHsKICAg
ICBHQ0dMc2l6ZWkgdmFsaWRhdGVkU3RyaWRlID0gc3RyaWRlID8gc3RyaWRlIDogYnl0ZXNQZXJF
bGVtZW50OwogICAgIApAQCAtNTgsNyArNjEsNyBAQCB2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RCYXNlOjpzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShHQ0dMdWludCBpbmRleCwgR0NHTHNpemVpCiAg
ICAgaWYgKGJ1ZmZlcikKICAgICAgICAgYnVmZmVyLT5vbkF0dGFjaGVkKCk7CiAgICAgaWYgKHN0
YXRlLmJ1ZmZlckJpbmRpbmcpCi0gICAgICAgIHN0YXRlLmJ1ZmZlckJpbmRpbmctPm9uRGV0YWNo
ZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHRHTCgpKTsKKyAgICAgICAgc3RhdGUuYnVmZmVy
QmluZGluZy0+b25EZXRhY2hlZChsb2NrZXIsIGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0R0wo
KSk7CiAgICAgCiAgICAgc3RhdGUuYnVmZmVyQmluZGluZyA9IGJ1ZmZlcjsKICAgICBzdGF0ZS5i
eXRlc1BlckVsZW1lbnQgPSBieXRlc1BlckVsZW1lbnQ7CkBAIC03MCwxNyArNzMsMTcgQEAgdm9p
ZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4QXR0cmliU3RhdGUoR0NHTHVp
bnQgaW5kZXgsIEdDR0xzaXplaQogICAgIHN0YXRlLm9mZnNldCA9IG9mZnNldDsKIH0KIAotdm9p
ZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6dW5iaW5kQnVmZmVyKFdlYkdMQnVmZmVyJiBi
dWZmZXIpCit2b2lkIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlOjp1bmJpbmRCdWZmZXIoY29u
c3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgV2ViR0xCdWZmZXImIGJ1ZmZlcikKIHsKICAgICBp
ZiAobV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlciA9PSAmYnVmZmVyKSB7Ci0gICAgICAgIG1fYm91
bmRFbGVtZW50QXJyYXlCdWZmZXItPm9uRGV0YWNoZWQoY29udGV4dCgpLT5ncmFwaGljc0NvbnRl
eHRHTCgpKTsKKyAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlci0+b25EZXRhY2hlZChs
b2NrZXIsIGNvbnRleHQoKS0+Z3JhcGhpY3NDb250ZXh0R0woKSk7CiAgICAgICAgIG1fYm91bmRF
bGVtZW50QXJyYXlCdWZmZXIgPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fdmVydGV4QXR0cmliU3RhdGUuc2l6ZSgpOyArK2kpIHsKICAgICAgICAg
YXV0byYgc3RhdGUgPSBtX3ZlcnRleEF0dHJpYlN0YXRlW2ldOwogICAgICAgICBpZiAoc3RhdGUu
YnVmZmVyQmluZGluZyA9PSAmYnVmZmVyKSB7Ci0gICAgICAgICAgICBidWZmZXIub25EZXRhY2hl
ZChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dEdMKCkpOworICAgICAgICAgICAgYnVmZmVyLm9u
RGV0YWNoZWQobG9ja2VyLCBjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dEdMKCkpOwogICAgICAg
ICAgICAgCiAjaWYgIVVTRShBTkdMRSkKICAgICAgICAgICAgIGlmICghaSAmJiAhY29udGV4dCgp
LT5pc0dMRVMyQ29tcGxpYW50KCkpIHsKQEAgLTEwNCw3ICsxMDcsMTQgQEAgdm9pZCBXZWJHTFZl
cnRleEFycmF5T2JqZWN0QmFzZTo6c2V0VmVydGV4QXR0cmliRGl2aXNvcihHQ0dMdWludCBpbmRl
eCwgR0NHTHVpbnQKIHsKICAgICBtX3ZlcnRleEF0dHJpYlN0YXRlW2luZGV4XS5kaXZpc29yID0g
ZGl2aXNvcjsKIH0KLSAgICAKKwordm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZTo6YWRk
TWVtYmVyc1RvT3BhcXVlUm9vdHMoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBKU0M6OlNsb3RWaXNp
dG9yJiB2aXNpdG9yKQoreworICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChtX2JvdW5kRWxlbWVu
dEFycmF5QnVmZmVyLmdldCgpKTsKKyAgICBmb3IgKGF1dG8mIHN0YXRlIDogbV92ZXJ0ZXhBdHRy
aWJTdGF0ZSkKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHN0YXRlLmJ1ZmZlckJpbmRp
bmcuZ2V0KCkpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdEJhc2Uu
aAppbmRleCA0YmQ5MTM1MTBmNjJiZWJjOTg1YzU3M2RkNjg4YjlkZTcxZmYzYWEyLi4xYzZiNjcy
YTA3ZmEyZjQxNWE3NmM5MzgzYjQ0MGYxNzJhMmIxODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlLmgKQEAgLTMx
LDYgKzMxLDE0IEBACiAjaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTENv
bnRleHRPYmplY3QuaCIKIAorbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBTbG90VmlzaXRvcjsKK30K
KworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBBYnN0cmFjdExvY2tlcjsKK30KKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0QmFzZSA6IHB1YmxpYyBX
ZWJHTENvbnRleHRPYmplY3QgewpAQCAtNjAsMTcgKzY4LDE5IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEhhc0V2ZXJCZWVuQm91bmQoKSB7IG1faGFzRXZlckJlZW5Cb3VuZCA9IHRydWU7IH0KIAog
ICAgIFdlYkdMQnVmZmVyKiBnZXRFbGVtZW50QXJyYXlCdWZmZXIoKSBjb25zdCB7IHJldHVybiBt
X2JvdW5kRWxlbWVudEFycmF5QnVmZmVyLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRFbGVtZW50QXJy
YXlCdWZmZXIoV2ViR0xCdWZmZXIqKTsKKyAgICB2b2lkIHNldEVsZW1lbnRBcnJheUJ1ZmZlcihj
b25zdCBXVEY6OkFic3RyYWN0TG9ja2VyJiwgV2ViR0xCdWZmZXIqKTsKIAogICAgIFZlcnRleEF0
dHJpYlN0YXRlJiBnZXRWZXJ0ZXhBdHRyaWJTdGF0ZShpbnQgaW5kZXgpIHsgcmV0dXJuIG1fdmVy
dGV4QXR0cmliU3RhdGVbaW5kZXhdOyB9Ci0gICAgdm9pZCBzZXRWZXJ0ZXhBdHRyaWJTdGF0ZShH
Q0dMdWludCwgR0NHTHNpemVpLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGJvb2xlYW4sIEdDR0xz
aXplaSwgR0NHTGludHB0ciwgV2ViR0xCdWZmZXIqKTsKLSAgICB2b2lkIHVuYmluZEJ1ZmZlcihX
ZWJHTEJ1ZmZlciYpOworICAgIHZvaWQgc2V0VmVydGV4QXR0cmliU3RhdGUoY29uc3QgV1RGOjpB
YnN0cmFjdExvY2tlciYsIEdDR0x1aW50LCBHQ0dMc2l6ZWksIEdDR0xpbnQsIEdDR0xlbnVtLCBH
Q0dMYm9vbGVhbiwgR0NHTHNpemVpLCBHQ0dMaW50cHRyLCBXZWJHTEJ1ZmZlciopOworICAgIHZv
aWQgdW5iaW5kQnVmZmVyKGNvbnN0IFdURjo6QWJzdHJhY3RMb2NrZXImLCBXZWJHTEJ1ZmZlciYp
OwogCiAgICAgdm9pZCBzZXRWZXJ0ZXhBdHRyaWJEaXZpc29yKEdDR0x1aW50IGluZGV4LCBHQ0dM
dWludCBkaXZpc29yKTsKIAorICAgIHZvaWQgYWRkTWVtYmVyc1RvT3BhcXVlUm9vdHMoY29uc3Qg
V1RGOjpBYnN0cmFjdExvY2tlciYsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKwogcHJvdGVjdGVkOgog
ICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RCYXNlKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
LCBUeXBlKTsKLSAgICB2b2lkIGRlbGV0ZU9iamVjdEltcGwoR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wqLCBQbGF0Zm9ybUdMT2JqZWN0KSBvdmVycmlkZSA9IDA7CisgICAgdm9pZCBkZWxldGVPYmpl
Y3RJbXBsKGNvbnN0IFdURjo6QWJzdHJhY3RMb2NrZXImLCBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TCosIFBsYXRmb3JtR0xPYmplY3QpIG92ZXJyaWRlID0gMDsKIAogICAgIFR5cGUgbV90eXBlOwog
ICAgIGJvb2wgbV9oYXNFdmVyQmVlbkJvdW5kIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKaW5k
ZXggMDZmZGI3MzgzMzg2YjZiMWI2MGZiODM0NDFlYmY1OTk1NDY4NWRjZS4uNWZlODFkYmZmODhi
YTRmYzZhYmI4OGUyM2E5NzgzZWU4YzFhYzFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAKQEAgLTUzLDEw
ICs1MywxMyBAQCBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmCiAKIFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RPRVM6On5XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKCkKIHsKLSAgICBkZWxldGVPYmplY3Qo
bnVsbHB0cik7CisgICAgaWYgKCFjb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIHJ1
bkRlc3RydWN0b3IoKTsKIH0KIAotdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpkZWxl
dGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0M2QsIFBsYXRmb3Jt
R0xPYmplY3Qgb2JqZWN0KQordm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpkZWxldGVP
YmplY3RJbXBsKGNvbnN0IFdURjo6QWJzdHJhY3RMb2NrZXImIGxvY2tlciwgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wqIGNvbnRleHQzZCwgUGxhdGZvcm1HTE9iamVjdCBvYmplY3QpCiB7CiAgICAg
c3dpdGNoIChtX3R5cGUpIHsKICAgICBjYXNlIFR5cGU6OkRlZmF1bHQ6CkBAIC02NywxMSArNzAs
MTEgQEAgdm9pZCBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOjpkZWxldGVPYmplY3RJbXBsKEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXgKICAgICB9CiAKICAgICBpZiAobV9ib3VuZEVs
ZW1lbnRBcnJheUJ1ZmZlcikKLSAgICAgICAgbV9ib3VuZEVsZW1lbnRBcnJheUJ1ZmZlci0+b25E
ZXRhY2hlZChjb250ZXh0M2QpOworICAgICAgICBtX2JvdW5kRWxlbWVudEFycmF5QnVmZmVyLT5v
bkRldGFjaGVkKGxvY2tlciwgY29udGV4dDNkKTsKIAogICAgIGZvciAoYXV0byYgc3RhdGUgOiBt
X3ZlcnRleEF0dHJpYlN0YXRlKSB7CiAgICAgICAgIGlmIChzdGF0ZS5idWZmZXJCaW5kaW5nKQot
ICAgICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZy0+b25EZXRhY2hlZChjb250ZXh0M2QpOwor
ICAgICAgICAgICAgc3RhdGUuYnVmZmVyQmluZGluZy0+b25EZXRhY2hlZChsb2NrZXIsIGNvbnRl
eHQzZCk7CiAgICAgfQogfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oCmluZGV4IGMwMjdmOTczNGI0NTY2YWM4MDEx
OWI3NzJkZWY5OTBmZmRjZWQ3YzIuLjBjMTU5ZWFjZTkyNmIwOTVkYjVlYTYzMmRlM2FhNjE0MjVj
MDc2ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTLmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgfldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMoKTsKIHByaXZhdGU6CiAgICAgV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUyhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiwgVHlwZSk7Ci0gICAg
dm9pZCBkZWxldGVPYmplY3RJbXBsKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgUGxhdGZvcm1H
TE9iamVjdCkgZmluYWw7CisgICAgdm9pZCBkZWxldGVPYmplY3RJbXBsKGNvbnN0IFdURjo6QWJz
dHJhY3RMb2NrZXImLCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmplY3Qp
IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbAppbmRl
eCBmMTkwYTdlNjQxMzhlNWQ5NmI1MjdiMjZlMmYzNDYyNWYyY2JkNDc2Li40NWEwNTdkYjczMzVh
ZDI4YTBhY2U1NmE1N2RlMTc2NzAxY2JiMWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbApAQCAtMjUsNiAr
MjUsNyBAQAogCiBbCiAgICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgQ29uZGl0aW9uYWw9V0VC
R0wKKyAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwK
IF0gaW50ZXJmYWNlIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMgewogfTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmM2Yy
ODNiZjI5YzM5MmZlZjZkNTNlOTliODdjMTI4MzkyZDc1OWQ3Li44MTZkMTUxYTcxYWI3YWI2MDA5
OTNmMDIxNzNmMzVhYmQ2MGI5ZDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDgtMTMg
IEtlbm5ldGggUnVzc2VsbCAgPGtickBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1dlYkdMMl0g
ZXhwYW5kby1sb3NzIGFuZCBleHBhbmRvLWxvc3MtMiBjb25mb3JtYW5jZSB0ZXN0cyBhcmUgZmFp
bGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0
NzY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmUt
bGFuZCB3aXRoIGxvY2tpbmcgZml4ZXMgeXN1enVraUAgcG9pbnRlZCBvdXQgYXMgbmVjZXNzYXJ5
LCBhbmQKKyAgICAgICAgYWR2aXNlZCBoZWF2aWx5IG9uLgorCisgICAgICAgIFJlYmFzZWxpbmUg
ZXhwYW5kby1sb3NzLmh0bWwgYW5kIGV4cGFuZG8tbG9zcy0yLmh0bWwsIHdoaWNoIGFyZQorICAg
ICAgICBub3cgZnVsbHkgcGFzc2luZy4KKworICAgICAgICBBZGQgYSBob29rIHRvIGpzLXRlc3Qt
cHJlLmpzIHdoaWNoIGFsbG93cyB0aGVzZSB0ZXN0cyB0byBiZSBydW4KKyAgICAgICAgY29ycmVj
dGx5IGluIHRoZSBNaW5pQnJvd3NlciBieSBzZXR0aW5nIHRoZSBmb2xsb3dpbmcgZW52aXJvbm1l
bnQKKyAgICAgICAgdmFyaWFibGVzOgorICAgICAgICAgIGV4cG9ydCBKU0NfdXNlRG9sbGFyVk09
MQorICAgICAgICAgIGV4cG9ydCBfX1hQQ19KU0NfdXNlRG9sbGFyVk09MQorCisgICAgICAgICog
d2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UvbWlzYy9leHBhbmRvLWxvc3MtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9taXNjL2V4cGFuZG8tbG9zcy0yLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJnbC8yLjAuMC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9m
aWxlcy9qcy9qcy10ZXN0LXByZS5qczoKKwogMjAyMC0wOC0xMiAgUnlhbiBIYWRkYWQgIDxyeWFu
aGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLCBy
ZWJhc2VsaW5lIHRlc3QgYWZ0ZXIgcjI2NTUxNC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlL21pc2MvZXhwYW5kby1sb3NzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL21pc2MvZXhwYW5kby1sb3NzLWV4cGVj
dGVkLnR4dAppbmRleCBhODllMmIyNzc4YjRjODQ0MmUwMmYzZWE1YjhjOTQzNzE4NDVjMDUyLi43
YzVmODZmZmQ3ZTdiN2U4ZDlmZTFlMWRlNzdmYjdhMTBmMGZmYmVkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS9taXNjL2V4cGFuZG8tbG9zcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UvbWlzYy9leHBh
bmRvLWxvc3MtZXhwZWN0ZWQudHh0CkBAIC0xLDU2ICsxLDQgQEAKIFRoaXMgdGVzdCBydW5zIHRo
ZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBv
ciBGQUlMLgogCiBUZXN0OiAuLi8uLi9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3Jt
YW5jZS9taXNjL2V4cGFuZG8tbG9zcy5odG1sCi0KLVsgMTogUEFTUyBdIGdldFBhcmFtZXRlcihU
RVhUVVJFX0JJTkRJTkdfMkQpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDI6
IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5ESU5HXzJEKTogRXhwZWN0IGJhc2ljIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFRF
WFRVUkVfQklORElOR18yRCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDQ6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoRlJBTUVCVUZGRVJfQklORElORykg
cmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNTogRkFJTCBdIGdldFBhcmFtZXRl
cihGUkFNRUJVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyA2OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKEZSQU1FQlVGRkVSX0JJTkRJTkcp
OiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA3OiBQ
QVNTIF0gZ2V0UGFyYW1ldGVyKFJFTkRFUkJVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3RhbmNl
IHRoYXQgd2FzIGJvdW5kLgotWyA4OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFJFTkRFUkJVRkZFUl9C
SU5ESU5HKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA5
OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFJFTkRFUkJVRkZFUl9CSU5ESU5HKTogRXhwZWN0IHN1Ym9i
amVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTA6IFBBU1MgXSBnZXRQYXJh
bWV0ZXIoRUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElORykgcmV0dXJucyBpbnN0YW5jZSB0aGF0
IHdhcyBib3VuZC4KLVsgMTE6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoRUxFTUVOVF9BUlJBWV9CVUZG
RVJfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMTI6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoRUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElORyk6
IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDEzOiBQ
QVNTIF0gZ2V0UGFyYW1ldGVyKEFSUkFZX0JVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3RhbmNl
IHRoYXQgd2FzIGJvdW5kLgotWyAxNDogRkFJTCBdIGdldFBhcmFtZXRlcihBUlJBWV9CVUZGRVJf
QklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MTU6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoQVJSQVlfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3Qgc3Vi
b2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNjogUEFTUyBdIGdldFBh
cmFtZXRlcihURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVApIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3
YXMgYm91bmQuCi1bIDE3OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFRFWFRVUkVfQklORElOR19DVUJF
X01BUCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTg6
IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQKTogRXhwZWN0IHN1
Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTk6IFBBU1MgXSBnZXRQ
YXJhbWV0ZXIoZ2wuQ1VSUkVOVF9QUk9HUkFNKSByZXR1cm4gaW5zdGFuY2Ugc2V0IHdpdGggdXNl
UHJvZ3JhbQotWyAyMDogUEFTUyBdIFZlcnRleCBzaGFkZXIgaW5zdGFuY2UgZm91bmQgaW4gZ2V0
QXR0YWNoZWRTaGFkZXJzCi1bIDIxOiBQQVNTIF0gRnJhZ21lbnQgc2hhZGVyIGluc3RhbmNlIGZv
dW5kIGluIGdldEF0dGFjaGVkU2hhZGVycwotWyAyMjogRkFJTCBdIEN1cnJlbnQgcHJvZ3JhbTog
RXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMzogRkFJTCBd
IEN1cnJlbnQgcHJvZ3JhbTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVz
cGl0ZSBHQy4KLVsgMjQ6IFBBU1MgXSBbb2JqZWN0IFdlYkdMUHJvZ3JhbV0gaXMgYW4gaW5zdGFu
Y2Ugb2YgV2ViR0xQcm9ncmFtCi1bIDI1OiBGQUlMIF0gU2hhZGVyWzBdOiBFeHBlY3QgYmFzaWMg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI2OiBGQUlMIF0gU2hhZGVyWzBdOiBF
eHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNzogUEFT
UyBdIFtvYmplY3QgV2ViR0xTaGFkZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMU2hhZGVyCi1b
IDI4OiBGQUlMIF0gU2hhZGVyWzFdOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDI5OiBGQUlMIF0gU2hhZGVyWzFdOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMDogUEFTUyBdIFtvYmplY3QgV2ViR0xTaGFk
ZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMU2hhZGVyCi1bIDMxOiBQQVNTIF0gZ2V0VmVydGV4
QXR0cmliKFZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcpIHJldHVybiBpbnN0YW5j
ZSBzZXQgd2l0aCB2ZXJ0ZXhBdHRyaWJQb2ludGVyCi1bIDMyOiBGQUlMIF0gVmVydGV4IEF0dHJp
YnV0ZSBCdWZmZXI6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMzM6IEZBSUwgXSBWZXJ0ZXggQXR0cmlidXRlIEJ1ZmZlcjogRXhwZWN0IHN1Ym9iamVjdCBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzQ6IFBBU1MgXSBbb2JqZWN0IFdlYkdM
QnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAzNTogUEFTUyBdIGdldEZy
YW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihDT0xPUl9BVFRBQ0hNRU5UMCkgcmV0dXJucyBp
bnN0YW5jZSBzZXQgd2l0aCBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcgotWyAzNjogUEFTUyBdIGdl
dEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihERVBUSF9BVFRBQ0hNRU5UKSByZXR1cm5z
IGluc3RhbmNlIHNldCB3aXRoIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyCi1bIDM3OiBQQVNTIF0g
Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyKFNURU5DSUxfQVRUQUNITUVOVCkgcmV0
dXJucyBpbnN0YW5jZSBzZXQgd2l0aCBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcgotWyAzODogUEFT
UyBdIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcihERVBUSF9TVEVOQ0lMX0FUVEFD
SE1FTlQpIHJldHVybnMgaW5zdGFuY2Ugc2V0IHdpdGggZnJhbWVidWZmZXJSZW5kZXJidWZmZXIK
LVsgMzk6IEZBSUwgXSBDT0xPUl9BVFRBQ0hNRU5UMDogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0MDogRkFJTCBdIENPTE9SX0FUVEFDSE1FTlQwOiBFeHBl
Y3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0MTogUEFTUyBd
IFtvYmplY3QgV2ViR0xSZW5kZXJidWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMUmVuZGVy
YnVmZmVyCi1bIDQyOiBGQUlMIF0gREVQVEhfQVRUQUNITUVOVDogRXhwZWN0IGJhc2ljIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0MzogRkFJTCBdIERFUFRIX0FUVEFDSE1FTlQ6
IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDQ0OiBQ
QVNTIF0gW29iamVjdCBXZWJHTFJlbmRlcmJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xS
ZW5kZXJidWZmZXIKLVsgNDU6IEZBSUwgXSBTVEVOQ0lMX0FUVEFDSE1FTlQ6IEV4cGVjdCBiYXNp
YyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDY6IEZBSUwgXSBTVEVOQ0lMX0FU
VEFDSE1FTlQ6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDQ3OiBQQVNTIF0gW29iamVjdCBXZWJHTFJlbmRlcmJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ug
b2YgV2ViR0xSZW5kZXJidWZmZXIKLVsgNDg6IEZBSUwgXSBERVBUSF9TVEVOQ0lMX0FUVEFDSE1F
TlQ6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNDk6IEZB
SUwgXSBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDUwOiBQQVNTIF0gW29iamVjdCBXZWJHTFJlbmRlcmJ1
ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xSZW5kZXJidWZmZXIKLVsgNTE6IFBBU1MgXSBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotWyBGQUlMIF0gMjggZmFpbHVyZXMgcmVwb3J0ZWQK
K1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi9taXNjL2V4cGFuZG8tbG9zcy0yLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9taXNjL2V4cGFuZG8tbG9zcy0yLWV4
cGVjdGVkLnR4dAppbmRleCBkMjljN2Y5ZWY4ZTRmYzNiMzU1MzA0Njk0NTVkODgwYWIzMDcyZjE4
Li5lN2E1YWUyOGE4YjVjYzdlM2VkZTliZjgyNTFiMGY4NzIzMjljYzcwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvbWlzYy9leHBhbmRvLWxvc3MtMi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL21p
c2MvZXhwYW5kby1sb3NzLTItZXhwZWN0ZWQudHh0CkBAIC0xLDM0MSArMSw0IEBACiBUaGlzIHRl
c3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBv
cnRzIFBBU1Mgb3IgRkFJTC4KIAogVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UyL21pc2MvZXhwYW5kby1sb3NzLTIuaHRtbAotCi1bIDE6IFBBU1MgXSBn
ZXRQYXJhbWV0ZXIoU0FNUExFUl9CSU5ESU5HKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJv
dW5kLgotWyAyOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFNBTVBMRVJfQklORElORyk6IEV4cGVjdCBi
YXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzogRkFJTCBdIGdldFBhcmFt
ZXRlcihTQU1QTEVSX0JJTkRJTkcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyA0OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFNBTVBMRVJfQklORElORyk6
IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNTogUEFTUyBd
IFtvYmplY3QgV2ViR0xTYW1wbGVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTFNhbXBsZXIKLVsg
NjogUEFTUyBdIGdldFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVFREJBQ0tfQklORElORykgcmV0dXJu
cyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgNzogRkFJTCBdIGdldFBhcmFtZXRlcihUUkFO
U0ZPUk1fRkVFREJBQ0tfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgODogRkFJTCBdIGdldFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVFREJBQ0tf
QklORElORyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDk6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JJTkRJTkcpOiBF
eHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDEwOiBQQVNTIF0g
W29iamVjdCBXZWJHTFRyYW5zZm9ybUZlZWRiYWNrXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTFRy
YW5zZm9ybUZlZWRiYWNrCi1bIDExOiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFZFUlRFWF9BUlJBWV9C
SU5ESU5HKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMjogRkFJTCBdIGdl
dFBhcmFtZXRlcihWRVJURVhfQVJSQVlfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTM6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVkVSVEVYX0FS
UkFZX0JJTkRJTkcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyAxNDogUEFTUyBdIGdldFBhcmFtZXRlcihWRVJURVhfQVJSQVlfQklORElORyk6IEV4
cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTU6IFBBU1MgXSBb
b2JqZWN0IFdlYkdMVmVydGV4QXJyYXlPYmplY3RdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMVmVy
dGV4QXJyYXlPYmplY3QKLVsgMTY6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5ESU5H
XzNEKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxNzogRkFJTCBdIGdldFBh
cmFtZXRlcihURVhUVVJFX0JJTkRJTkdfM0QpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDE4OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFRFWFRVUkVfQklORElO
R18zRCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDE5OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFRFWFRVUkVfQklORElOR18zRCk6IEV4cGVjdCBleHRy
YSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjA6IFBBU1MgXSBbb2JqZWN0IFdl
YkdMVGV4dHVyZV0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xUZXh0dXJlCi1bIDIxOiBQQVNTIF0g
Z2V0UGFyYW1ldGVyKFRFWFRVUkVfQklORElOR18yRF9BUlJBWSkgcmV0dXJucyBpbnN0YW5jZSB0
aGF0IHdhcyBib3VuZC4KLVsgMjI6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoVEVYVFVSRV9CSU5ESU5H
XzJEX0FSUkFZKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgot
WyAyMzogRkFJTCBdIGdldFBhcmFtZXRlcihURVhUVVJFX0JJTkRJTkdfMkRfQVJSQVkpOiBFeHBl
Y3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNDogUEFTUyBd
IGdldFBhcmFtZXRlcihURVhUVVJFX0JJTkRJTkdfMkRfQVJSQVkpOiBFeHBlY3QgZXh0cmEgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI1OiBQQVNTIF0gW29iamVjdCBXZWJHTFRl
eHR1cmVdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMVGV4dHVyZQotWyAyNjogUEFTUyBdIGdldFBh
cmFtZXRlcihSRUFEX0ZSQU1FQlVGRkVSX0JJTkRJTkcpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3
YXMgYm91bmQuCi1bIDI3OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFJFQURfRlJBTUVCVUZGRVJfQklO
RElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjg6
IEZBSUwgXSBnZXRQYXJhbWV0ZXIoUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HKTogRXhwZWN0IHN1
Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjk6IFBBU1MgXSBnZXRQ
YXJhbWV0ZXIoUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMDogUEFTUyBdIFtvYmplY3QgV2ViR0xGcmFtZWJ1
ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xGcmFtZWJ1ZmZlcgotWyAzMTogUEFTUyBdIGdl
dFBhcmFtZXRlcihEUkFXX0ZSQU1FQlVGRkVSX0JJTkRJTkcpIHJldHVybnMgaW5zdGFuY2UgdGhh
dCB3YXMgYm91bmQuCi1bIDMyOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKERSQVdfRlJBTUVCVUZGRVJf
QklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MzM6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoRFJBV19GUkFNRUJVRkZFUl9CSU5ESU5HKTogRXhwZWN0
IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzQ6IFBBU1MgXSBn
ZXRQYXJhbWV0ZXIoRFJBV19GUkFNRUJVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGV4dHJhIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzNTogUEFTUyBdIFtvYmplY3QgV2ViR0xGcmFt
ZWJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xGcmFtZWJ1ZmZlcgotWyAzNjogUEFTUyBd
IGdldFBhcmFtZXRlcihDT1BZX1JFQURfQlVGRkVSX0JJTkRJTkcpIHJldHVybnMgaW5zdGFuY2Ug
dGhhdCB3YXMgYm91bmQuCi1bIDM3OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKENPUFlfUkVBRF9CVUZG
RVJfQklORElORyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMzg6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoQ09QWV9SRUFEX0JVRkZFUl9CSU5ESU5HKTogRXhw
ZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzk6IFBBU1Mg
XSBnZXRQYXJhbWV0ZXIoQ09QWV9SRUFEX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGV4dHJhIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0MDogUEFTUyBdIFtvYmplY3QgV2ViR0xC
dWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDQxOiBQQVNTIF0gZ2V0UGFy
YW1ldGVyKENPUFlfV1JJVEVfQlVGRkVSX0JJTkRJTkcpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3
YXMgYm91bmQuCi1bIDQyOiBGQUlMIF0gZ2V0UGFyYW1ldGVyKENPUFlfV1JJVEVfQlVGRkVSX0JJ
TkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDQz
OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKENPUFlfV1JJVEVfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3Qg
c3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0NDogUEFTUyBdIGdl
dFBhcmFtZXRlcihDT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGV4dHJhIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0NTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZm
ZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDQ2OiBQQVNTIF0gZ2V0UGFyYW1l
dGVyKFBJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJTkcpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMg
Ym91bmQuCi1bIDQ3OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFBJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJ
TkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDQ4OiBG
QUlMIF0gZ2V0UGFyYW1ldGVyKFBJWEVMX1BBQ0tfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3Qgc3Vi
b2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA0OTogUEFTUyBdIGdldFBh
cmFtZXRlcihQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA1MDogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJd
IGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDUxOiBQQVNTIF0gZ2V0UGFyYW1ldGVy
KFBJWEVMX1VOUEFDS19CVUZGRVJfQklORElORykgcmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBi
b3VuZC4KLVsgNTI6IEZBSUwgXSBnZXRQYXJhbWV0ZXIoUElYRUxfVU5QQUNLX0JVRkZFUl9CSU5E
SU5HKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA1Mzog
RkFJTCBdIGdldFBhcmFtZXRlcihQSVhFTF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3Qg
c3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA1NDogUEFTUyBdIGdl
dFBhcmFtZXRlcihQSVhFTF9VTlBBQ0tfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3QgZXh0cmEgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDU1OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1
ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgNTY6IFBBU1MgXSBnZXRQYXJh
bWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HKSByZXR1cm5zIGluc3RhbmNl
IHRoYXQgd2FzIGJvdW5kLgotWyA1NzogRkFJTCBdIGdldFBhcmFtZXRlcihUUkFOU0ZPUk1fRkVF
REJBQ0tfQlVGRkVSX0JJTkRJTkcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDU4OiBGQUlMIF0gZ2V0UGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19C
VUZGRVJfQklORElORyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDU5OiBQQVNTIF0gZ2V0UGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZG
RVJfQklORElORyk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgNjA6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJH
TEJ1ZmZlcgotWyA2MTogUEFTUyBdIGdldFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA2MjogRkFJTCBdIGdldFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyA2MzogRkFJTCBdIGdldFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgNjQ6IFBBU1MgXSBnZXRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORyk6IEV4
cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNjU6IFBBU1MgXSBb
b2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA2Njog
UEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5E
SU5HLCAwKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA2NzogUEFTUyBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAxKSBy
ZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA2ODogUEFTUyBdIGdldEluZGV4ZWRQ
YXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAyKSByZXR1cm5zIGlu
c3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA2OTogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIo
VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAzKSByZXR1cm5zIGluc3RhbmNlIHRo
YXQgd2FzIGJvdW5kLgotWyA3MDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVFJBTlNGT1JN
X0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAwKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyA3MTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVFJBTlNG
T1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAwKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNzI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMCk6IEV4cGVjdCBleHRyYSBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNzM6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVm
ZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA3NDogRkFJTCBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAxKTogRXhwZWN0
IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA3NTogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAxKTogRXhw
ZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNzY6IEZBSUwg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywg
MSk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgNzc6IFBB
U1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgot
WyA3ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZF
Ul9CSU5ESU5HLCAyKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyA3OTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVFJBTlNGT1JNX0ZFRURCQUNLX0JV
RkZFUl9CSU5ESU5HLCAyKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVz
cGl0ZSBHQy4KLVsgODA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFRSQU5TRk9STV9GRUVE
QkFDS19CVUZGRVJfQklORElORywgMik6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgODE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0
YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA4MjogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVFJB
TlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAzKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyA4MzogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIo
VFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HLCAzKTogRXhwZWN0IHN1Ym9iamVjdCBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgODQ6IFBBU1MgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfQklORElORywgMyk6IEV4cGVjdCBleHRy
YSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgODU6IFBBU1MgXSBbb2JqZWN0IFdl
YkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyA4NjogUEFTUyBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMCkgcmV0dXJucyBpbnN0
YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgODc6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQu
Ci1bIDg4OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCAyKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA4OTogUEFTUyBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMykgcmV0dXJucyBpbnN0YW5j
ZSB0aGF0IHdhcyBib3VuZC4KLVsgOTA6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDQpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1b
IDkxOiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA1
KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA5MjogUEFTUyBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNikgcmV0dXJucyBpbnN0YW5jZSB0
aGF0IHdhcyBib3VuZC4KLVsgOTM6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDcpIHJldHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDk0
OiBQQVNTIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA4KSBy
ZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA5NTogUEFTUyBdIGdldEluZGV4ZWRQ
YXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgOSkgcmV0dXJucyBpbnN0YW5jZSB0aGF0
IHdhcyBib3VuZC4KLVsgOTY6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDEwKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyA5Nzog
UEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTEpIHJl
dHVybnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDk4OiBQQVNTIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMikgcmV0dXJucyBpbnN0YW5jZSB0aGF0
IHdhcyBib3VuZC4KLVsgOTk6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDEzKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMDA6
IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE0KSBy
ZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMDE6IFBBU1MgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE1KSByZXR1cm5zIGluc3RhbmNlIHRo
YXQgd2FzIGJvdW5kLgotWyAxMDI6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDE2KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAx
MDM6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE3
KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMDQ6IFBBU1MgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE4KSByZXR1cm5zIGluc3RhbmNl
IHRoYXQgd2FzIGJvdW5kLgotWyAxMDU6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDE5KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgot
WyAxMDY6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDIwKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMDc6IFBBU1MgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIxKSByZXR1cm5zIGluc3Rh
bmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMDg6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIyKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5k
LgotWyAxMDk6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDIzKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMTA6IFBBU1MgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI0KSByZXR1cm5zIGlu
c3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMTE6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI1KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJv
dW5kLgotWyAxMTI6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDI2KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMTM6IFBBU1Mg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI3KSByZXR1cm5z
IGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMTQ6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI4KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2Fz
IGJvdW5kLgotWyAxMTU6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVS
X0JJTkRJTkcsIDI5KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMTY6IFBB
U1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMwKSByZXR1
cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMTc6IFBBU1MgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMxKSByZXR1cm5zIGluc3RhbmNlIHRoYXQg
d2FzIGJvdW5kLgotWyAxMTg6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDMyKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMTk6
IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMzKSBy
ZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMjA6IFBBU1MgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM0KSByZXR1cm5zIGluc3RhbmNlIHRo
YXQgd2FzIGJvdW5kLgotWyAxMjE6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDM1KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAx
MjI6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM2
KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMjM6IFBBU1MgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM3KSByZXR1cm5zIGluc3RhbmNl
IHRoYXQgd2FzIGJvdW5kLgotWyAxMjQ6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDM4KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgot
WyAxMjU6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDM5KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMjY6IFBBU1MgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQwKSByZXR1cm5zIGluc3Rh
bmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMjc6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQxKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5k
LgotWyAxMjg6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDQyKSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMjk6IFBBU1MgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQzKSByZXR1cm5zIGlu
c3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMzA6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ0KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJv
dW5kLgotWyAxMzE6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDQ1KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMzI6IFBBU1Mg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ2KSByZXR1cm5z
IGluc3RhbmNlIHRoYXQgd2FzIGJvdW5kLgotWyAxMzM6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ3KSByZXR1cm5zIGluc3RhbmNlIHRoYXQgd2Fz
IGJvdW5kLgotWyAxMzQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVS
X0JJTkRJTkcsIDApOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDEzNTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
RywgMCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDEzNjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywg
MCk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTM3OiBQ
QVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIK
LVsgMTM4OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCAxKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxMzk6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEpOiBF
eHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNDA6IEZB
SUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEpOiBFeHBl
Y3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE0MTogUEFTUyBdIFtv
YmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE0Mjog
RkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMik6IEV4
cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTQzOiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyKTogRXhwZWN0IHN1
Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTQ0OiBGQUlMIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyKTogRXhwZWN0IGV4dHJh
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNDU6IFBBU1MgXSBbb2JqZWN0IFdl
YkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxNDY6IEZBSUwgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMpOiBFeHBlY3QgYmFz
aWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE0NzogRkFJTCBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMyk6IEV4cGVjdCBzdWJvYmplY3Qg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE0ODogRkFJTCBdIGdldEluZGV4ZWRQ
YXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMyk6IEV4cGVjdCBleHRyYSBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTQ5OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZl
cl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTUwOiBGQUlMIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0KTogRXhwZWN0IGJhc2ljIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNTE6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNTI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDE1MzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFu
IGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE1NDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTU1OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCA1KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgMTU2OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCA1KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNw
aXRlIEdDLgotWyAxNTc6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5j
ZSBvZiBXZWJHTEJ1ZmZlcgotWyAxNTg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDYpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDE1OTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZG
RVJfQklORElORywgNik6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDE2MDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJf
QklORElORywgNik6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMTYxOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2Vi
R0xCdWZmZXIKLVsgMTYyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCA3KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAxNjM6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgot
WyAxNjQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDcpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE2NTog
UEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVy
Ci1bIDE2NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
RywgOCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTY3
OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA4KTog
RXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTY4OiBG
QUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA4KTogRXhw
ZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxNjk6IFBBU1MgXSBb
b2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxNzA6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDkpOiBF
eHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE3MTogRkFJTCBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgOSk6IEV4cGVjdCBz
dWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE3MjogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgOSk6IEV4cGVjdCBleHRy
YSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTczOiBQQVNTIF0gW29iamVjdCBX
ZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTc0OiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMCk6IEV4cGVjdCBi
YXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTc1OiBGQUlMIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMCk6IEV4cGVjdCBzdWJvYmpl
Y3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE3NjogRkFJTCBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTApOiBFeHBlY3QgZXh0cmEgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE3NzogUEFTUyBdIFtvYmplY3QgV2ViR0xC
dWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE3ODogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTEpOiBFeHBlY3QgYmFzaWMg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE3OTogRkFJTCBdIGdldEluZGV4ZWRQ
YXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTEpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxODA6IEZBSUwgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDExKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxODE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVy
XSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAxODI6IEZBSUwgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEyKTogRXhwZWN0IGJhc2ljIGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAxODM6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDEyKTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTg0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMik6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTg1OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMg
YW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMTg2OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMTg3OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxMyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDE4ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5J
Rk9STV9CVUZGRVJfQklORElORywgMTMpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDE4OTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGlu
c3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDE5MDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIo
VU5JRk9STV9CVUZGRVJfQklORElORywgMTQpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDE5MTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9S
TV9CVUZGRVJfQklORElORywgMTQpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyAxOTI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDE0KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNw
aXRlIEdDLgotWyAxOTM6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5j
ZSBvZiBXZWJHTEJ1ZmZlcgotWyAxOTQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZP
Uk1fQlVGRkVSX0JJTkRJTkcsIDE1KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyAxOTU6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDE1KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVz
cGl0ZSBHQy4KLVsgMTk2OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCAxNSk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMTk3OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2Yg
V2ViR0xCdWZmZXIKLVsgMTk4OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JV
RkZFUl9CSU5ESU5HLCAxNik6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgMTk5OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCAxNik6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUg
R0MuCi1bIDIwMDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklO
RElORywgMTYpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDIwMTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdM
QnVmZmVyCi1bIDIwMjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJf
QklORElORywgMTcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDIwMzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
RywgMTcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgot
WyAyMDQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDE3KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMDU6
IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZl
cgotWyAyMDY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJ
TkcsIDE4KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAy
MDc6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDE4
KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjA4
OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxOCk6
IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjA5OiBQQVNT
IF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsg
MjEwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAx
OSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjExOiBG
QUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAxOSk6IEV4
cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIxMjogRkFJ
TCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMTkpOiBFeHBl
Y3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIxMzogUEFTUyBdIFtv
YmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDIxNDog
RkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjApOiBF
eHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIxNTogRkFJTCBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjApOiBFeHBlY3Qg
c3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMTY6IEZBSUwgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIwKTogRXhwZWN0IGV4
dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMTc6IFBBU1MgXSBbb2JqZWN0
IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyMTg6IEZBSUwg
XSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIxKTogRXhwZWN0
IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMTk6IEZBSUwgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIxKTogRXhwZWN0IHN1Ym9i
amVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjIwOiBGQUlMIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMSk6IEV4cGVjdCBleHRyYSBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjIxOiBQQVNTIF0gW29iamVjdCBXZWJH
TEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjIyOiBGQUlMIF0gZ2V0
SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMik6IEV4cGVjdCBiYXNp
YyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjIzOiBGQUlMIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyMik6IEV4cGVjdCBzdWJvYmplY3Qg
ZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIyNDogRkFJTCBdIGdldEluZGV4ZWRQ
YXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjIpOiBFeHBlY3QgZXh0cmEgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIyNTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZm
ZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDIyNjogRkFJTCBdIGdldEluZGV4
ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjMpOiBFeHBlY3QgYmFzaWMgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDIyNzogRkFJTCBdIGdldEluZGV4ZWRQYXJh
bWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMjMpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFu
ZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMjg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDIzKTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMjk6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBp
cyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyMzA6IEZBSUwgXSBnZXRJbmRleGVkUGFy
YW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI0KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyMzE6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI0KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRv
IHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjMyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNCk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgMjMzOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4g
aW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjM0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRl
cihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAyNSk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjM1OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCAyNSk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2
aXZlIGRlc3BpdGUgR0MuCi1bIDIzNjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9S
TV9CVUZGRVJfQklORElORywgMjUpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDIzNzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3Rh
bmNlIG9mIFdlYkdMQnVmZmVyCi1bIDIzODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5J
Rk9STV9CVUZGRVJfQklORElORywgMjYpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDIzOTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9C
VUZGRVJfQklORElORywgMjYpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBk
ZXNwaXRlIEdDLgotWyAyNDA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDI2KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyAyNDE6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBv
ZiBXZWJHTEJ1ZmZlcgotWyAyNDI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1f
QlVGRkVSX0JJTkRJTkcsIDI3KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNw
aXRlIEdDLgotWyAyNDM6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVS
X0JJTkRJTkcsIDI3KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0
ZSBHQy4KLVsgMjQ0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCAyNyk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMjQ1OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2Vi
R0xCdWZmZXIKLVsgMjQ2OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZF
Ul9CSU5ESU5HLCAyOCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMjQ3OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAyOCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0Mu
Ci1bIDI0ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
RywgMjgpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI0
OTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVm
ZmVyCi1bIDI1MDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklO
RElORywgMjkpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDI1MTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywg
MjkpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAy
NTI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDI5
KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNTM6IFBB
U1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgot
WyAyNTQ6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcs
IDMwKTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNTU6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMwKTog
RXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjU2OiBG
QUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMCk6IEV4
cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjU3OiBQQVNTIF0g
W29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjU4
OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMSk6
IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjU5OiBGQUlM
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMSk6IEV4cGVj
dCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI2MDogRkFJTCBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzEpOiBFeHBlY3Qg
ZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI2MTogUEFTUyBdIFtvYmpl
Y3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDI2MjogRkFJ
TCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzIpOiBFeHBl
Y3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI2MzogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzIpOiBFeHBlY3Qgc3Vi
b2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNjQ6IEZBSUwgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMyKTogRXhwZWN0IGV4dHJh
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNjU6IFBBU1MgXSBbb2JqZWN0IFdl
YkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyNjY6IEZBSUwgXSBn
ZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMzKTogRXhwZWN0IGJh
c2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNjc6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDMzKTogRXhwZWN0IHN1Ym9iamVj
dCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjY4OiBGQUlMIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzMyk6IEV4cGVjdCBleHRyYSBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjY5OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1
ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjcwOiBGQUlMIF0gZ2V0SW5k
ZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNCk6IEV4cGVjdCBiYXNpYyBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjcxOiBGQUlMIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNCk6IEV4cGVjdCBzdWJvYmplY3QgZXhw
YW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI3MjogRkFJTCBdIGdldEluZGV4ZWRQYXJh
bWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzQpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI3MzogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJd
IGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDI3NDogRkFJTCBdIGdldEluZGV4ZWRQ
YXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzUpOiBFeHBlY3QgYmFzaWMgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI3NTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgMzUpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNzY6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVy
KFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM1KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vy
dml2ZSBkZXNwaXRlIEdDLgotWyAyNzc6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBh
biBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAyNzg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1l
dGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM2KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyAyNzk6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDM2KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1
cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMjgwOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklG
T1JNX0JVRkZFUl9CSU5ESU5HLCAzNik6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUg
ZGVzcGl0ZSBHQy4KLVsgMjgxOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5z
dGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMjgyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihV
TklGT1JNX0JVRkZFUl9CSU5ESU5HLCAzNyk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZp
dmUgZGVzcGl0ZSBHQy4KLVsgMjgzOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JN
X0JVRkZFUl9CSU5ESU5HLCAzNyk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZl
IGRlc3BpdGUgR0MuCi1bIDI4NDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9C
VUZGRVJfQklORElORywgMzcpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDI4NTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNl
IG9mIFdlYkdMQnVmZmVyCi1bIDI4NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9S
TV9CVUZGRVJfQklORElORywgMzgpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRl
c3BpdGUgR0MuCi1bIDI4NzogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZG
RVJfQklORElORywgMzgpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNw
aXRlIEdDLgotWyAyODg6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVS
X0JJTkRJTkcsIDM4KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdD
LgotWyAyODk6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBX
ZWJHTEJ1ZmZlcgotWyAyOTA6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVG
RkVSX0JJTkRJTkcsIDM5KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRl
IEdDLgotWyAyOTE6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJ
TkRJTkcsIDM5KTogRXhwZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBH
Qy4KLVsgMjkyOiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5E
SU5HLCAzOSk6IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsg
MjkzOiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xC
dWZmZXIKLVsgMjk0OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9C
SU5ESU5HLCA0MCk6IEV4cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4K
LVsgMjk1OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5H
LCA0MCk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDI5NjogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywg
NDApOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI5Nzog
UEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVy
Ci1bIDI5ODogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElO
RywgNDEpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDI5
OTogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDEp
OiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMDA6
IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQxKTog
RXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMDE6IFBBU1Mg
XSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAz
MDI6IEZBSUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQy
KTogRXhwZWN0IGJhc2ljIGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMDM6IEZB
SUwgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQyKTogRXhw
ZWN0IHN1Ym9iamVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzA0OiBGQUlM
IF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Mik6IEV4cGVj
dCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzA1OiBQQVNTIF0gW29i
amVjdCBXZWJHTEJ1ZmZlcl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMzA2OiBG
QUlMIF0gZ2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Myk6IEV4
cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzA3OiBGQUlMIF0g
Z2V0SW5kZXhlZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Myk6IEV4cGVjdCBz
dWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMwODogRkFJTCBdIGdl
dEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDMpOiBFeHBlY3QgZXh0
cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMwOTogUEFTUyBdIFtvYmplY3Qg
V2ViR0xCdWZmZXJdIGlzIGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDMxMDogRkFJTCBd
IGdldEluZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDQpOiBFeHBlY3Qg
YmFzaWMgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMxMTogRkFJTCBdIGdldElu
ZGV4ZWRQYXJhbWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDQpOiBFeHBlY3Qgc3Vib2Jq
ZWN0IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMTI6IEZBSUwgXSBnZXRJbmRl
eGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ0KTogRXhwZWN0IGV4dHJhIGV4
cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMTM6IFBBU1MgXSBbb2JqZWN0IFdlYkdM
QnVmZmVyXSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAzMTQ6IEZBSUwgXSBnZXRJ
bmRleGVkUGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ1KTogRXhwZWN0IGJhc2lj
IGV4cGFuZG8gdG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMTU6IEZBSUwgXSBnZXRJbmRleGVk
UGFyYW1ldGVyKFVOSUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ1KTogRXhwZWN0IHN1Ym9iamVjdCBl
eHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzE2OiBGQUlMIF0gZ2V0SW5kZXhlZFBh
cmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0NSk6IEV4cGVjdCBleHRyYSBleHBhbmRv
IHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzE3OiBQQVNTIF0gW29iamVjdCBXZWJHTEJ1ZmZl
cl0gaXMgYW4gaW5zdGFuY2Ugb2YgV2ViR0xCdWZmZXIKLVsgMzE4OiBGQUlMIF0gZ2V0SW5kZXhl
ZFBhcmFtZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Nik6IEV4cGVjdCBiYXNpYyBleHBh
bmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzE5OiBGQUlMIF0gZ2V0SW5kZXhlZFBhcmFt
ZXRlcihVTklGT1JNX0JVRkZFUl9CSU5ESU5HLCA0Nik6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5k
byB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMyMDogRkFJTCBdIGdldEluZGV4ZWRQYXJhbWV0
ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDYpOiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBz
dXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMyMTogUEFTUyBdIFtvYmplY3QgV2ViR0xCdWZmZXJdIGlz
IGFuIGluc3RhbmNlIG9mIFdlYkdMQnVmZmVyCi1bIDMyMjogUEFTUyBdIGdldEluZGV4ZWRQYXJh
bWV0ZXIoVU5JRk9STV9CVUZGRVJfQklORElORywgNDcpOiBFeHBlY3QgYmFzaWMgZXhwYW5kbyB0
byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1bIDMyMzogUEFTUyBdIGdldEluZGV4ZWRQYXJhbWV0ZXIo
VU5JRk9STV9CVUZGRVJfQklORElORywgNDcpOiBFeHBlY3Qgc3Vib2JqZWN0IGV4cGFuZG8gdG8g
c3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMjQ6IFBBU1MgXSBnZXRJbmRleGVkUGFyYW1ldGVyKFVO
SUZPUk1fQlVGRkVSX0JJTkRJTkcsIDQ3KTogRXhwZWN0IGV4dHJhIGV4cGFuZG8gdG8gc3Vydml2
ZSBkZXNwaXRlIEdDLgotWyAzMjU6IFBBU1MgXSBbb2JqZWN0IFdlYkdMQnVmZmVyXSBpcyBhbiBp
bnN0YW5jZSBvZiBXZWJHTEJ1ZmZlcgotWyAzMjY6IFBBU1MgXSBDVVJSRU5UX1FVRVJZIHJldHVy
bnMgaW5zdGFuY2UgdGhhdCB3YXMgYm91bmQuCi1bIDMyNzogUEFTUyBdIENVUlJFTlRfUVVFUlkg
cmV0dXJucyBpbnN0YW5jZSB0aGF0IHdhcyBib3VuZC4KLVsgMzI4OiBGQUlMIF0gUXVlcnk6IEV4
cGVjdCBiYXNpYyBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzI5OiBGQUlMIF0g
UXVlcnk6IEV4cGVjdCBzdWJvYmplY3QgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3BpdGUgR0MuCi1b
IDMzMDogUEFTUyBdIFF1ZXJ5OiBFeHBlY3QgZXh0cmEgZXhwYW5kbyB0byBzdXJ2aXZlIGRlc3Bp
dGUgR0MuCi1bIDMzMTogUEFTUyBdIFtvYmplY3QgV2ViR0xRdWVyeV0gaXMgYW4gaW5zdGFuY2Ug
b2YgV2ViR0xRdWVyeQotWyAzMzI6IEZBSUwgXSBRdWVyeTogRXhwZWN0IGJhc2ljIGV4cGFuZG8g
dG8gc3Vydml2ZSBkZXNwaXRlIEdDLgotWyAzMzM6IEZBSUwgXSBRdWVyeTogRXhwZWN0IHN1Ym9i
amVjdCBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzM0OiBQQVNTIF0gUXVlcnk6
IEV4cGVjdCBleHRyYSBleHBhbmRvIHRvIHN1cnZpdmUgZGVzcGl0ZSBHQy4KLVsgMzM1OiBQQVNT
IF0gW29iamVjdCBXZWJHTFF1ZXJ5XSBpcyBhbiBpbnN0YW5jZSBvZiBXZWJHTFF1ZXJ5Ci1bIDMz
NjogUEFTUyBdIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi1bIEZBSUwgXSAxODAgZmFpbHVy
ZXMgcmVwb3J0ZWQKK1sgUEFTUyBdIEFsbCB0ZXN0cyBwYXNzZWQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmdsLzIuMC4wL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2pzL2pzLXRlc3Qt
cHJlLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvanMvanMtdGVzdC1wcmUuanMKaW5kZXggZTFlNzAxODhmYjk3Mjg1MTI3ZDIwNWVjZDIzYzll
Zjc2NDA0ODkzYy4uZTdmMTM4NTkyNDU1MWI5ZTRjNTNmZWQ1NzE4YTc0N2Y3Y2Q0NDkzYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvanMvanMtdGVzdC1wcmUuanMKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvanMvanMtdGVzdC1wcmUuanMKQEAgLTcwOCw2ICs3MDgsMTIg
QEAgZnVuY3Rpb24gd2ViZ2xIYXJuZXNzQ29sbGVjdEdhcmJhZ2UoKSB7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKKyAgICAvLyBXZWJLaXQncyBNaW5pQnJvd3NlcgorICAgIGlmICh3aW5kb3cu
JHZtKSB7CisgICAgICAgIHdpbmRvdy4kdm0uZ2MoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogICAgIGZ1bmN0aW9uIGdjUmVjKG4pIHsKICAgICAgICAgaWYgKG4gPCAxKQogICAgICAgICAg
ICAgcmV0dXJuIHt9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>