<?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>230338</bug_id>
          
          <creation_ts>2021-09-16 03:49:09 -0700</creation_ts>
          <short_desc>Add utility to create CVPixelBuffers from IOSurfaces</short_desc>
          <delta_ts>2021-09-24 06:34:57 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>230613</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>annulen</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1794000</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-16 03:49:09 -0700</bug_when>
    <thetext>Add utility to create CVPixelBuffers from IOSurfaces</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794012</commentid>
    <comment_count>1</comment_count>
      <attachid>438338</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-16 04:46:48 -0700</bug_when>
    <thetext>Created attachment 438338
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794014</commentid>
    <comment_count>2</comment_count>
      <attachid>438339</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-16 05:27:12 -0700</bug_when>
    <thetext>Created attachment 438339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794015</commentid>
    <comment_count>3</comment_count>
      <attachid>438340</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-16 05:29:12 -0700</bug_when>
    <thetext>Created attachment 438340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794140</commentid>
    <comment_count>4</comment_count>
      <attachid>438378</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-16 11:50:53 -0700</bug_when>
    <thetext>Created attachment 438378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794147</commentid>
    <comment_count>5</comment_count>
      <attachid>438378</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-09-16 12:03:02 -0700</bug_when>
    <thetext>Comment on attachment 438378
Patch

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

&gt; Source/WebCore/platform/graphics/cv/CVUtilities.mm:84
&gt; +#if PLATFORM(MAC)
&gt; +    auto format = IOSurfaceGetPixelFormat(surface);
&gt; +    if (format == kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange || format == kCVPixelFormatType_420YpCbCr8BiPlanarFullRange) {
&gt; +        constexpr size_t macroblockSize = 16;
&gt; +        auto width = IOSurfaceGetWidth(surface);
&gt; +        auto height = IOSurfaceGetHeight(surface);
&gt; +        auto extendedRight = roundUpToMultipleOf(macroblockSize, width) - width;
&gt; +        auto extendedBottom = roundUpToMultipleOf(macroblockSize, height) - height;
&gt; +        if ((IOSurfaceGetBytesPerRowOfPlane(surface, 0) &gt;= width + extendedRight)
&gt; +            &amp;&amp; (IOSurfaceGetBytesPerRowOfPlane(surface, 1) &gt;= width + extendedRight)
&gt; +            &amp;&amp; (IOSurfaceGetAllocSize(surface) &gt;= (height + extendedBottom) * IOSurfaceGetBytesPerRowOfPlane(surface, 0) * 3 / 2)) {
&gt; +            return (__bridge CFDictionaryRef) @{
&gt; +#if PLATFORM(MAC)
&gt; +                (__bridge NSString *)kCVPixelBufferOpenGLCompatibilityKey : @YES,
&gt; +#endif

Why have nested `#if PLATFORM(MAC)` ?

&gt; Source/WebCore/platform/graphics/cv/CVUtilities.mm:102
&gt; +    if (!surface)

Might be worth ASSERT-ing this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794152</commentid>
    <comment_count>6</comment_count>
      <attachid>438382</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-16 12:14:37 -0700</bug_when>
    <thetext>Created attachment 438382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794173</commentid>
    <comment_count>7</comment_count>
      <attachid>438382</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-16 12:52:25 -0700</bug_when>
    <thetext>Comment on attachment 438382
Patch

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

&gt; Source/WebCore/platform/graphics/cv/CVUtilities.mm:72
&gt; +    if (format == kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange || format == kCVPixelFormatType_420YpCbCr8BiPlanarFullRange) {

I think this needs a brief &quot;why&quot; comment.

&gt; Source/WebCore/platform/graphics/cv/CVUtilities.mm:100
&gt; +    ASSERT(surface);

Why assert this? We’re not asserting pixelBufferPool above, for example.

Separately, but related: Maybe we could do a null check, return an unexpected value in that case, and remove the null check in ImageTransferSessionVT::createCMSampleBuffer?

&gt; Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:102
&gt; +        if (auto pool = createIOSurfaceCVPixelBufferPool({ static_cast&lt;int&gt;(width), static_cast&lt;int&gt;(height) }, poolBufferType)) {

Not new, but what guarantees the width and height fit into int?

&gt; Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:500
&gt; +        m_pixelBufferPool = WebCore::createIOSurfaceCVPixelBufferPool({ static_cast&lt;int&gt;(width), static_cast&lt;int&gt;(height) }, type).value_or(nullptr);

Not new, but what guarantees the width and height fit into int?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794175</commentid>
    <comment_count>8</comment_count>
      <attachid>438382</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-16 12:52:55 -0700</bug_when>
    <thetext>Comment on attachment 438382
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/cv/CVUtilities.mm:100
&gt;&gt; +    ASSERT(surface);
&gt; 
&gt; Why assert this? We’re not asserting pixelBufferPool above, for example.
&gt; 
&gt; Separately, but related: Maybe we could do a null check, return an unexpected value in that case, and remove the null check in ImageTransferSessionVT::createCMSampleBuffer?

I see now that my comment is the opposite of Eric’s!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794176</commentid>
    <comment_count>9</comment_count>
      <attachid>438382</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-09-16 12:59:01 -0700</bug_when>
    <thetext>Comment on attachment 438382
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/cv/CVUtilities.mm:100
&gt;&gt;&gt; +    ASSERT(surface);
&gt;&gt; 
&gt;&gt; Why assert this? We’re not asserting pixelBufferPool above, for example.
&gt;&gt; 
&gt;&gt; Separately, but related: Maybe we could do a null check, return an unexpected value in that case, and remove the null check in ImageTransferSessionVT::createCMSampleBuffer?
&gt; 
&gt; I see now that my comment is the opposite of Eric’s!

I suggested the change because CVPixelBufferCreateWithIOSurface already returns an error when passed a NULL surface, but I think it would be useful to catch this in debug builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794350</commentid>
    <comment_count>10</comment_count>
      <attachid>438448</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-16 23:38:03 -0700</bug_when>
    <thetext>Created attachment 438448
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794553</commentid>
    <comment_count>11</comment_count>
      <attachid>438500</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-17 12:29:33 -0700</bug_when>
    <thetext>Created attachment 438500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794573</commentid>
    <comment_count>12</comment_count>
      <attachid>438506</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-17 13:14:08 -0700</bug_when>
    <thetext>Created attachment 438506
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794576</commentid>
    <comment_count>13</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-17 13:16:17 -0700</bug_when>
    <thetext>
&gt; &gt; Source/WebCore/platform/graphics/cv/CVUtilities.mm:72
&gt; &gt; +    if (format == kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange || format == kCVPixelFormatType_420YpCbCr8BiPlanarFullRange) {
&gt; 
&gt; I think this needs a brief &quot;why&quot; comment.

Eric, do you have a wording for why?
I know roughly what it does, but not exactly why.

git log --oneline -S &quot;roundUpToMacroblockMultiple&quot; -- Source/WebCore/platform 

53093dc43c75 [MediaStream] Consolidate all image conversion and resizing into one class https://bugs.webkit.org/show_bug.cgi?id=190519 &lt;rdar://problem/45224307&gt;
600ac42b961f [MediaStream] Restructure getDisplayMedia classes https://bugs.webkit.org/show_bug.cgi?id=187905
342759df7ad6 [MediaStream] Add Mac screen capture source https://bugs.webkit.org/show_bug.cgi?id=181333 &lt;rdar://problem/36323219&gt;

I tried to formulate something, unsure if it&apos;s any better or exactly correct.


&gt; Not new, but what guarantees the width and height fit into int?
Reverted these to the original.

&gt;&gt;&gt;&gt; +    ASSERT(surface);
&gt;&gt;&gt; Why assert this? We’re not asserting pixelBufferPool above, for example.

Reverted the assert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796051</commentid>
    <comment_count>14</comment_count>
      <attachid>438506</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-09-22 06:41:46 -0700</bug_when>
    <thetext>Comment on attachment 438506
Patch

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

&gt; Source/WebCore/platform/graphics/cv/CVUtilities.mm:55
&gt; +        return makeUnexpected(status);

We do not seem to log errors at call sites of createIOSurfaceCVPixelBufferPool.
Maybe we should, or should do here.

&gt; Source/WebCore/platform/graphics/cv/CVUtilities.mm:64
&gt; +        return makeUnexpected(status);

It is a bit odd to have a case where kCVReturnSuccess and pixelBuffer is null.
But it seems good to make it the error path.

&gt; Source/WebCore/platform/graphics/cv/ImageTransferSessionVT.mm:79
&gt; +    auto bufferPool = createIOSurfaceCVPixelBufferPool(size.width(), size.height(), m_pixelFormat, 6).value_or(nullptr);

Preexisting issue but this value 6 is a bit mysterious.

&gt; Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:214
&gt; +    auto pixelBuffer = WebCore::createCVPixelBuffer(sample.surface()).value_or(nullptr);

If pixelBuffer is null, we probably want to exit early, maybe log an error.

&gt; Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:500
&gt; +        m_pixelBufferPool = WebCore::createIOSurfaceCVPixelBufferPool(width, height, type).value_or(nullptr);

We could not set m_pixelBufferPoolWidth/m_pixelBufferPoolHeight if m_pixelBufferPool creation failed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796444</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-23 03:50:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/83440494&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796812</commentid>
    <comment_count>16</comment_count>
      <attachid>439133</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-24 00:48:55 -0700</bug_when>
    <thetext>Created attachment 439133
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796852</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-24 05:41:11 -0700</bug_when>
    <thetext>Committed r283036 (242096@main): &lt;https://commits.webkit.org/242096@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439133.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438338</attachid>
            <date>2021-09-16 04:46:48 -0700</date>
            <delta_ts>2021-09-16 05:34:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230338-20210916144646.patch</filename>
            <type>text/plain</type>
            <size>42305</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRjNGU3ZmI1YjEyZGVl
YmViZmNiOTY4NDhjYzdhOWM4ZjA3ZDZkMi4uYmY3N2IwMWVkNWZjNTM5MjFkMjMzYWQyZTBjNTU5
YWQwZjRlMmNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIxLTA5LTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHV0aWxpdHkg
dG8gY3JlYXRlIENWUGl4ZWxCdWZmZXJzIGZyb20gSU9TdXJmYWNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMzM4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgZnVuY3Rpb25hbGl0eSBv
ZiBjcmVhdGluZyBDVlBpeGVsQnVmZmVycworICAgICAgICBmcm9tIElPU3VyZmFjZXMgZnJvbSBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUIHRvCisgICAgICAgIHN0YW5kYWxvbmUgZnVuY3Rpb25zIGlu
IG5ldyBoZWFkZXIgQ1ZVdGlsaXRpZXMuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IGRpZCBu
b3QgdXNlIGFueSBzdGF0ZSBvZgorICAgICAgICBJbWFnZVRyYW5zZmVyU2Vzc2lvblZULgorCisg
ICAgICAgIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1c2VmdWwgaW4gb3RoZXIgc2NlbmFyaW9zIHRv
by4KKworICAgICAgICBSZW1vdmUgaW5zdGFudGlhdGlvbnMgb2YgSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVCBmcm9tCisgICAgICAgIHRoZSBvbGQgY2FsbCBzaXRlcywgYXMgaXQgd2FzIG5ldmVyIHVz
ZWQgZm9yIGFueXRoaW5nCisgICAgICAgIGVsc2UgdGhhbiBjcmVhdGlvbiBvZiB0aGUgcGl4ZWwg
YnVmZmVyLgorCisgICAgICAgIE1vdmUgdGhlIHJlbGF0ZWQgQ1ZQaXhlbEJ1ZmZlclBvb2wgaW5z
dGFudGlhdGlvbgorICAgICAgICBmcm9tIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCB0byBDVlV0
aWxpdGllcy5oCisKKyAgICAgICAgUmVtb3ZlIHRoZSB1c2FnZSBvZiBrQ1ZQaXhlbEZvcm1hdE9w
ZW5HTEVTQ29tcGF0aWJpbGl0eQorICAgICAgICBmcm9tIHRoZSBDVlBpeGVsQnVmZmVyIGNyZWF0
aW9uIGNvZGUuIEl0IHdhcyBpbmNvcnJlY3QgcHJvcGVydHkKKyAgICAgICAgYWxsIGFsb25nLCBw
cm9wZXJ0eSBvZiBwaXhlbCBmb3JtYXRzIG5vdCBvZiBwaXhlbCBidWZmZXJzLiBUaGUKKyAgICAg
ICAgaW50ZW5kZWQgcHJvcGVydHkgd2FzIGtDVlBpeGVsQnVmZmVyT3BlbkdMRVNDb21wYXRpYmls
aXR5S2V5CisgICAgICAgIGJ1dCBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisgICAgICAgIFJl
dGFpbnMgdGhlIHVzYWdlIG9mIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSwg
dGhvdWdoCisgICAgICAgIGl0IGlzIGluY29ycmVjdCBhbmQgdW5uZWVkZWQgZm9yIHRoZSBjdXJy
ZW50IG9wZXJhdGlvbiB0b28uCisgICAgICAgIFNpbmNlIHRoZW9yZXRpY2FsbHkgdGhpcyBjb3Vs
ZCBhZmZlY3Qgc29tZXRoaW5nIG9uIE1hYywgdGhpcworICAgICAgICB3aWxsIGJlIHJlbW92ZWQg
aW4gYSBzZXBhcmF0ZSBmaXguCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhIHJlZmFjdG9yLgor
CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6bWFrZUNWUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlPU3VyZmFjZUNW
UGl4ZWxCdWZmZXJQb29sKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxCdWZmZXJG
cm9tUG9vbCk6CisgICAgICAgIFRoZSBhZGRlZCBmdW5jdGlvbnMgcmV0dXJuIFtvYmplY3QsIHN0
YXR1c10gcGFpciBzaW5jZQorICAgICAgICBzb21lIG9mIHRoZSBjYWxsZXJzIHdhbnQgdG8gbG9n
IHRoZSBmYWlsdXJlIHN0YXR1cyBjb2RlLgorICAgICAgICAoV2ViQ29yZTo6cGl4ZWxCdWZmZXJD
cmVhdGlvbk9wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ1ZQaXhlbEJ1ZmZlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQu
bW06CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpzZXRTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0
Q01TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3ZQaXhlbEZvcm1h
dE9wZW5HTEtleSk6IERlbGV0ZWQuCisgICAgICAgIEluY29ycmVjdCwgcmVwbGFjZWQgd2l0aCBN
YWMtb25seSB1c2Ugb2YgT3BlbkdMQ29tcGF0aWJpbGl0eUtleSBpbgorICAgICAgICBDVlV0aWxp
dGllcy5tbS4KKyAgICAgICAgKFdlYkNvcmU6OnJvdW5kVXBUb01hY3JvYmxvY2tNdWx0aXBsZSk6
IERlbGV0ZWQuCisgICAgICAgIFVzZSB0aGUgc2ltaWxhciBmdW5jdGlvbiBpbiBXVEYuCisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjppb1N1cmZhY2VQaXhlbEJ1ZmZl
ckNyZWF0aW9uT3B0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OnBpeGVsQnVmZmVyUG9vbCk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRp
ZXMuaDoKKyAgICAgICAgUHJlc2VydmVkLCBzaW5jZSBwcmVmZXJlZFBpeGVsQnVmZmVyRm9ybWF0
IG1lYW5zCisgICAgICAgICJ0aGUgcGl4ZWwgYnVmZmVyIGZvcm1hdCB0aGF0IGlzIHByZWZlcnJl
ZCBieSBtZWRpYSBzdHJlYW0gaW1wbGVtZW50YXRpb25zIgorICAgICAgICB3aGljaCBkb2VzIG5v
dCBmaXQgdG8gY2F0ZWdvcnkgb2YgIkNvcmVWaWRlbyBVdGlsaXRpZXMiLgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbToK
KyAgICAgICAgRml4IHVuaWZpZWQgYnVpbGQgZmFpbHVyZSBkdWUgdG8gYSBtaXNzaW5nIGluY2x1
ZGUuCisKIDIwMjEtMDktMTYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVzZSBzdGQ6Om9wdGlvbmFsIGZvciB0cnVuY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY0ZGVl
MmZlODliMjIxZTYwZmFiNTBmYmM5ZDA4NTlmZjRlOTFmZTMuLmJlZDE2NjVlZGQ0MDZhYTBhZTI0
MTFiMjYwNGEzZGI1MDljMzY5MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDkt
MTYgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
dXRpbGl0eSB0byBjcmVhdGUgQ1ZQaXhlbEJ1ZmZlcnMgZnJvbSBJT1N1cmZhY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAzMzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgaGVscGVyIGZ1bmN0
aW9uIG1vdmVkIGZyb20gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVAorICAgICAgICB0byBmcmVlIHN0
YW5kYWxvbmUgZnVuY3Rpb24uIFN0b3AgaW5zdGFudGlhdGluZyB0aGUKKyAgICAgICAgb2JqZWN0
IGFuZCBqdXN0IGNhbGwgdGhlIGZ1bmN0aW9uLgorCisgICAgICAgIEluIGJvdGggb2YgdGhlIGNh
c2VzLCB0aGUgcGl4ZWwgYnVmZmVyIGlzIGNyZWF0ZWQgb3V0IG9mCisgICAgICAgIHRoZSBJT1N1
cmZhY2UgYW5kIHRoZSBwb29sIGlzIG5vdCB1c2VkLiBJbiBib3RoIG9mIHRoZSBjYXNlcworICAg
ICAgICB0aGUgc2l6ZSBhbmQgdGhlIHBpeGVsIGZvcm1hdCBvZiB0aGUgaW1hZ2UgdHJhbnNmZXIg
c2Vzc2lvbgorICAgICAgICBpcyB0aGUgc2FtZSBhcyB0aGUgaW5wdXQgSU9TdXJmYWNlLgorCisg
ICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaDoKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNvZGluZyk6CisgICAgICAgIChXZWJL
aXQ6OkxpYldlYlJUQ0NvZGVjczo6ZW5jb2RlRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpMaWJX
ZWJSVENDb2RlY3M6OnBpeGVsQnVmZmVyUG9vbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oOgorCiAyMDIxLTA5LTE2ICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIHRlc3QgYW5p
bWF0aW9ucy9zdGVwcy10cmFuc2Zvcm0tcmVuZGVyaW5nLXVwZGF0ZXMuaHRtbCBmYWlscwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCA5MGRiZTEyZDk3Y2EwMDQ2OTU2MDUyZDlhYjViYmNi
OTQwMjkyOWRhLi5iODA4MjBjYzY0NTY1ZDIxZThjMmQ4ODMxZmZhZTQ2MzhlMjIwNzJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMzM3LDYgKzMzNyw3IEBAIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRQbGF0Zm9y
bURhdGFDb3JlVGV4dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9HbHlwaFBh
Z2VDb3JlVGV4dC5jcHAKIAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1t
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmNwcAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlUm90YXRpb25TZXNzaW9uVlQubW0KICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQKaW5kZXggZWYyMGJlZDM2MTViY2E4MTEwMmEyMjAxMDk0NDFhOGUyMTk1ZTc3
ZC4uNzkzNTIyY2QwN2Y1MmE2MjU4YjE2NDQ2MWYxMjg1MGI3ZDcxMzY0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC0zOTIsNiArMzkyLDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRl
eHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0Zv
bnRDb3JlVGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRQbGF0Zm9ybURh
dGFDb3JlVGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0dseXBoUGFnZUNvcmVU
ZXh0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KIHBsYXRmb3JtL2dy
YXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2
L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGlj
c0NvbnRleHRHTENWQU5HTEUuY3BwCkBAIC01NDIsNyArNTQzLDYgQEAgcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5tbQogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcAogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcAot
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMubW0KIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0KIHBsYXRm
b3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldE1vY2suY3BwCiBwbGF0Zm9ybS9tb2NrL01lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXJNb2NrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM3NTg0MzA2MTc3ZDg2NWI0OWUxOWI3
ZTAzOWRlZGY1MDBmMTNkNmQuLmQ1NjkwNDhjOTBkOWRmYTNhMGJhMTgyYjFlODdkMWY1NzY4Y2Zi
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTIzNTIsNiArMjM1Miw3IEBACiAJCTdCNDVBQjU1MjVGQkE5REUwMEZEMjdGNCAv
KiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjQ1QUI1NDI1RkJBOUREMDBGRDI3RjQgLyog
R3JhcGhpY3NDb250ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNkRDODE5MjU3MTJFOTIwMDM4MEM3MCAv
KiBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8q
IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I3MzExRkIyNUMwOTJCNzAwM0IyNzk2
IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCNzMxMUZBMjVDMDkyQjcwMDNCMjc5NiAvKiBT
Y29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0I4RUQ1RjAyNkYwQzEzRDAwOEFDMDIzIC8qIENW
VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QjhFRDVFRDI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjkwNDE3MDI1NTAxMTQyMDA2
RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCOTA0MTZFMjU1MDExMDkwMDZFRUI4
QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCQjM0QTE3MjUzNDVDQjIwMDAyOUQw
OCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkIzNEExNjI1MzQ1Q0IyMDAwMjlEMDggLyog
R3JhcGhpY3NDb250ZXh0R0xBTkdMRVV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCQjM0QTQ4MjUzNzc2Q0EwMDAyOUQwOCAvKiBH
cmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkIzNEE0NTI1Mzc3NkM2MDAwMjlEMDggLyogR3JhcGhp
Y3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC03OTQ4LDcgKzc5NDksNiBAQAogCQk0MTU3NDc0NDFFMzg2
OTlFMDBFOTE0RDggLyogTGliV2ViUlRDUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gTGliV2ViUlRDUHJvdmlkZXIuaDsgcGF0aCA9IGxpYndlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU3RUJGODFFM0FC
MDY4MDBBQzlGRTkgLyogTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU3RUJGOTFFM0FCMDY4MDBBQzlGRTkgLyogTW9j
a0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTQxNTg2NDlGMjNCRjdCOTMwMEEwQTYxRSAvKiBSZWFsdGltZVZpZGVv
VXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVh
bHRpbWVWaWRlb1V0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1
OERDQjYyNEZGQ0QxQjAwQjlEQTQxIC8qIFJUQ0ljZUNvbXBvbmVudC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUlRDSWNlQ29tcG9uZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE1OERDQjgyNEZGQ0RDMzAwQjlEQTQxIC8qIFJUQ0ljZVByb3RvY29sLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSVENJY2VQcm90b2NvbC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxNThEQ0I5MjRGRkNEQzMwMEI5REE0MSAvKiBSVENJY2VUY3BDYW5kaWRh
dGVUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENJY2VUY3BDYW5kaWRhdGVUeXBl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNjAxLDYgKzEwNjAxLDggQEAK
IAkJN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNl
U3dhcENoYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdCNzMxMUZBMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjb3BlZEhpZ2hQZXJmb3Jt
YW5jZUdQVVJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3NzRDNjIy
NUZCOTM1NTAwOTEzOTVGIC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGlsaXRpZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCOEVENUVEMjZGMEMxMjMwMDhBQzAy
MyAvKiBDVlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDVlV0
aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjhFRDVFRjI2RjBDMTIz
MDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBDVlV0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlC
YXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCQjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAv
KiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGlsaXRpZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBNDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNz
Q29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0
R0xJbWFnZUV4dHJhY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc2Mzgs
NyArMTc2NDAsNiBAQAogCQkJCTVDREQ4MzNDMUU0MzI0QkIwMDYyMUI4MyAvKiBSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5oICovLAogCQkJCTQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZD
RiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSAqLywKIAkJCQk0MUQxOTM4
RjIxNTJDNTYxMDA2RjE0Q0EgLyogUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oICovLAotCQkJCTQx
NTg2NDlGMjNCRjdCOTMwMEEwQTYxRSAvKiBSZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tICovLAog
CQkJCTA3RDYzNzNFMUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29j
b2EuaCAqLywKIAkJCQkwN0Q2MzczRjFCQjBCMTEzMDAyNTZDRTkgLyogV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckNvY29hLm1tICovLAogCQkJKTsKQEAgLTI4MzA4LDYgKzI4MzA5LDggQEAKIAkJQ0Q5
RDgyN0MxQzdCQjJFRDAwNkZGMDY2IC8qIGN2ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQk3QjhFRDVFRDI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRp
ZXMuaCAqLywKKwkJCQk3QjhFRDVFRjI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMubW0g
Ki8sCiAJCQkJN0IxMDMzOUQyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1Yu
aCAqLywKIAkJCQk3QjEwMzM5QTI1NDk3MjAwMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xD
VkFOR0xFLmNwcCAqLywKIAkJCQk3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3ND
b250ZXh0R0xDVkFOR0xFLmggKi8sCkBAIC0zMTk3MSw2ICszMTk3NCw3IEBACiAJCQkJNjJDRDMy
NUExMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
QzVEMjM4NTIyN0EwNjUyMDAwQjlCREEgLyogQ3VzdG9tSGVhZGVyRmllbGRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0QjFFMTNFNzIxNzkwRDY2MDA0MkNGOTggLyogQ3VzdG9tUGFpbnRDYW52YXMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTdCOEVENUYwMjZGMEMxM0QwMDhBQzAyMyAvKiBDVlV0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDQjQxM0UwRTg2MzNGRDAwMzJDNEYwIC8qIERh
c2hBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzZBMjExNTA1RjA4MTAwMUI3NEFDIC8q
IERhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0JDNkEyNDE1MDVGMDgxMDAxQjc0QUMg
LyogRGF0YWJhc2VBdXRob3JpemVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMzMTMyLDcgKzMzMTM2
LDYgQEAKIAkJCQlCQzY5MzI3NDBEN0UyOTM5MDBBRTQ0RDEgLyogSlNET01XaW5kb3dCYXNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2NTJGQkJCQzBERTI3Q0I2MDAwMUQzODYgLyogSlNET01XaW5k
b3dDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MENCRjM2MUQ0QkNEMEUwMDkyRTg4RSAv
KiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMEJDRjU2MjZG
MENEOEMwMDQwQjEyNCAvKiBSVENMb2NhbFNlc3Npb25EZXNjcmlwdGlvbkluaXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTY1RTBFOTQ0MTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTdDNDVDOUQzMUUzRkNCRDcwMEFBQjU1OCAvKiBKU0RPTVdyYXBw
ZXJDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNBODA2MUUxRTAzQjU4NTAwOEExRjI2IC8q
IEpTRG91YmxlUmFuZ2UuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ3NDIsNiArMzQ3NDUsNyBAQAog
CQkJCTA3QUI5OTZCMThEQTNDMDEwMDE4NzcxRSAvKiBSVENJY2VTZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMxMzU5MTA4MUU3RERDNzMwMEYzMDYzMCAvKiBSVENJY2VUcmFuc3BvcnRQb2xp
Y3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMzU5MTA5MUU3RERDNzMwMEYzMDYzMCAvKiBSVENJ
Y2VUcmFuc3BvcnRTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwQkNGNTYyNkYwQ0Q4QzAw
NDBCMTI0IC8qIFJUQ0xvY2FsU2Vzc2lvbkRlc2NyaXB0aW9uSW5pdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDFDMTRCQzYyNkRFNkRFODAwNjg1QkY1IC8qIFJUQ05ldHdvcmtNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzM3OTRGRTE5RjU4NjRFMDBFNUEwNDUgLyogUlRDTm90aWZpZXJz
TW9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDczNzk0REUxOUVFMkM1MjAwRTVBMDQ1IC8qIFJU
Q09mZmVyQW5zd2VyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDgyN2M1
OTk3MDZjMzlhMjBhYmYwYjVlNmY4YTEzNmM0YmY1ZGNiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaApAQCAtMCwwICsx
LDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxDb3JlVmlkZW8v
Q29yZVZpZGVvLmg+CisjaW5jbHVkZSA8dXRpbGl0eT4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRy
Lmg+CisKK3VzaW5nIENWUGl4ZWxCdWZmZXJQb29sUmVmID0gc3RydWN0IF9fQ1ZQaXhlbEJ1ZmZl
clBvb2wqOwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBDcmVhdGVzIENWUGl4ZWxCdWZmZXJQb29sIHRoYXQg
Y3JlYXRlcyBDVlBpeGVsQnVmZmVycyBiYWNrZWQgYnkgSU9TdXJmYWNlcy4KKy8vIFRoZXNlIGJ1
ZmZlcnMgY2FuIGJlIGZvciBleGFtcGxlIHNlbnQgdGhyb3VnaCBJUEMuCitXRUJDT1JFX0VYUE9S
VCBzdGQ6OnBhaXI8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiwgQ1ZSZXR1cm4+IGNy
ZWF0ZUlPU3VyZmFjZUNWUGl4ZWxCdWZmZXJQb29sKEludFNpemUsIE9TVHlwZSBwaXhlbEZvcm1h
dCwgdW5zaWduZWQgbWluaW11bUJ1ZmZlckNvdW50ID0gMHUpOworCitXRUJDT1JFX0VYUE9SVCBz
dGQ6OnBhaXI8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4gY3JlYXRlQ1ZQ
aXhlbEJ1ZmZlckZyb21Qb29sKENWUGl4ZWxCdWZmZXJQb29sUmVmKTsKKworV0VCQ09SRV9FWFBP
UlQgc3RkOjpwYWlyPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiwgQ1ZSZXR1cm4+IGNyZWF0
ZUNWUGl4ZWxCdWZmZXIoSU9TdXJmYWNlUmVmKTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTZlN2Fk
MWEzMDM1NDdlOTE0NzI5NjZkOWFjYzRkMGI1ODQzY2E1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KQEAgLTAsMCAr
MSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkNWVXRp
bGl0aWVzLmgiCisKKyNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbXBvcnQgIkNvcmVW
aWRlb1NvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGU8dHlwZW5h
bWUgVD4gc3RhdGljIHN0ZDo6cGFpcjxSZXRhaW5QdHI8VD4sIENWUmV0dXJuPiBtYWtlQ1ZSZXN1
bHQoVCBvYmplY3QsIENWUmV0dXJuIHN0YXR1cykKK3sKKyAgICBpZiAoc3RhdHVzID09IGtDVlJl
dHVyblN1Y2Nlc3MpCisgICAgICAgIHJldHVybiB7IGFkb3B0Q0Yob2JqZWN0KSwgc3RhdHVzIH07
CisgICAgcmV0dXJuIHsgbnVsbHB0ciwgc3RhdHVzIH07Cit9CisKK3N0ZDo6cGFpcjxSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclBvb2xSZWY+LCBDVlJldHVybj4gY3JlYXRlSU9TdXJmYWNlQ1ZQaXhl
bEJ1ZmZlclBvb2woSW50U2l6ZSBzaXplLCBPU1R5cGUgZm9ybWF0LCB1bnNpZ25lZCBtaW5pbXVt
QnVmZmVyQ291bnQpCit7CisgICAgYXV0byBwaXhlbEF0dHJpYnV0ZXMgPSBAeworICAgICAgICAo
X19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlcldpZHRoS2V5OiBAKHNpemUud2lkdGgo
KSksCisgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0S2V5
OiBAKHNpemUuaGVpZ2h0KCkpLAorICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhl
bEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleTogQChmb3JtYXQpLAorICAgICAgICAoX19icmlkZ2Ug
TlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckNHSW1hZ2VDb21wYXRpYmlsaXR5S2V5OiBATk8sCisj
aWYgUExBVEZPUk0oTUFDKQorICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1
ZmZlck9wZW5HTENvbXBhdGliaWxpdHlLZXkgOiBAWUVTLAorI2VuZGlmCisgICAgICAgIChfX2Jy
aWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7
IH0KKyAgICB9OworICAgIE5TRGljdGlvbmFyeSogcG9vbE9wdGlvbnMgPSBudWxscHRyOworICAg
IGlmIChtaW5pbXVtQnVmZmVyQ291bnQpIHsKKyAgICAgICAgcG9vbE9wdGlvbnMgPSBAeworICAg
ICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQb29sTWluaW11bUJ1
ZmZlckNvdW50S2V5OiBAKG1pbmltdW1CdWZmZXJDb3VudCkKKyAgICAgICAgfTsKKyAgICB9Cisg
ICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcG9vbCA9IG51bGxwdHI7CisgICAgYXV0byBzdGF0dXMg
PSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoX19icmlkZ2Ug
Q0ZEaWN0aW9uYXJ5UmVmKSBwb29sT3B0aW9ucywgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilw
aXhlbEF0dHJpYnV0ZXMsICZwb29sKTsKKyAgICByZXR1cm4gbWFrZUNWUmVzdWx0KHBvb2wsIHN0
YXR1cyk7Cit9CisKK3N0ZDo6cGFpcjxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4sIENWUmV0
dXJuPiBjcmVhdGVDVlBpeGVsQnVmZmVyRnJvbVBvb2woQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcGl4
ZWxCdWZmZXJQb29sKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBudWxs
cHRyOworICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGVQaXhlbEJ1ZmZl
cihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlclBvb2wsICZwaXhlbEJ1ZmZlcik7Cisg
ICAgcmV0dXJuIG1ha2VDVlJlc3VsdChwaXhlbEJ1ZmZlciwgc3RhdHVzKTsKK30KKworc3RhdGlj
IENGRGljdGlvbmFyeVJlZiBwaXhlbEJ1ZmZlckNyZWF0aW9uT3B0aW9ucyhJT1N1cmZhY2VSZWYg
c3VyZmFjZSkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgYXV0byBmb3JtYXQgPSBJT1N1cmZh
Y2VHZXRQaXhlbEZvcm1hdChzdXJmYWNlKTsKKyAgICBpZiAoZm9ybWF0ID09IGtDVlBpeGVsRm9y
bWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJWaWRlb1JhbmdlIHx8IGZvcm1hdCA9PSBrQ1ZQaXhl
bEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlKSB7CisgICAgICAgIGNvbnN0
ZXhwciBzaXplX3QgbWFjcm9ibG9ja1NpemUgPSAxNjsKKyAgICAgICAgYXV0byB3aWR0aCA9IElP
U3VyZmFjZUdldFdpZHRoKHN1cmZhY2UpOworICAgICAgICBhdXRvIGhlaWdodCA9IElPU3VyZmFj
ZUdldEhlaWdodChzdXJmYWNlKTsKKyAgICAgICAgYXV0byBleHRlbmRlZFJpZ2h0ID0gcm91bmRV
cFRvTXVsdGlwbGVPZihtYWNyb2Jsb2NrU2l6ZSwgd2lkdGgpIC0gd2lkdGg7CisgICAgICAgIGF1
dG8gZXh0ZW5kZWRCb3R0b20gPSByb3VuZFVwVG9NdWx0aXBsZU9mKG1hY3JvYmxvY2tTaXplLCBo
ZWlnaHQpIC0gaGVpZ2h0OworICAgICAgICBpZiAoKElPU3VyZmFjZUdldEJ5dGVzUGVyUm93T2ZQ
bGFuZShzdXJmYWNlLCAwKSA+PSB3aWR0aCArIGV4dGVuZGVkUmlnaHQpCisgICAgICAgICAgICAm
JiAoSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDEpID49IHdpZHRoICsg
ZXh0ZW5kZWRSaWdodCkKKyAgICAgICAgICAgICYmIChJT1N1cmZhY2VHZXRBbGxvY1NpemUoc3Vy
ZmFjZSkgPj0gKGhlaWdodCArIGV4dGVuZGVkQm90dG9tKSAqIElPU3VyZmFjZUdldEJ5dGVzUGVy
Um93T2ZQbGFuZShzdXJmYWNlLCAwKSAqIDMgLyAyKSkgeworICAgICAgICAgICAgcmV0dXJuIChf
X2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpIEB7CisjaWYgUExBVEZPUk0oTUFDKQorICAgICAgICAg
ICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJp
bGl0eUtleSA6IEBZRVMsCisjZW5kaWYKKyAgICAgICAgICAgICAgICAoX19icmlkZ2UgTlNTdHJp
bmcgKilrQ1ZQaXhlbEJ1ZmZlckV4dGVuZGVkUGl4ZWxzUmlnaHRLZXkgOiBAKGV4dGVuZGVkUmln
aHQpLAorICAgICAgICAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVy
RXh0ZW5kZWRQaXhlbHNCb3R0b21LZXkgOiBAKGV4dGVuZGVkQm90dG9tKQorICAgICAgICAgICAg
fTsKKyAgICAgICAgfQorICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHN1cmZhY2UpOwor
I2VuZGlmCisgICAgcmV0dXJuIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpIEB7CisjaWYgUExB
VEZPUk0oTUFDKQorICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9w
ZW5HTENvbXBhdGliaWxpdHlLZXkgOiBAWUVTCisjZW5kaWYKKyAgICB9OworfQorCitzdGQ6OnBh
aXI8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4gY3JlYXRlQ1ZQaXhlbEJ1
ZmZlcihJT1N1cmZhY2VSZWYgc3VyZmFjZSkKK3sKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAg
IHJldHVybiB7IG51bGxwdHIsIGtDVlJldHVybkludmFsaWRBcmd1bWVudCB9OworICAgIENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBudWxscHRyOworICAgIGF1dG8gc3RhdHVzID0gQ1ZQ
aXhlbEJ1ZmZlckNyZWF0ZVdpdGhJT1N1cmZhY2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3VyZmFj
ZSwgcGl4ZWxCdWZmZXJDcmVhdGlvbk9wdGlvbnMoc3VyZmFjZSksICZwaXhlbEJ1ZmZlcik7Cisg
ICAgcmV0dXJuIG1ha2VDVlJlc3VsdChwaXhlbEJ1ZmZlciwgc3RhdHVzKTsKK30KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVC5oCmluZGV4IGE1MjU4OTUxMDJiYmE1ODI5Y2QzNzg0NDdiOTVhYjU3
NmM2YWYyZjYuLjRmMjI5ZGU2YWZmOWRmMWExZDQyZDc2MGUyNzA5OTA1Yzg4N2Y0MGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFn
ZVRyYW5zZmVyU2Vzc2lvblZULmgKQEAgLTU4LDE4ICs1OCwxMiBAQCBwdWJsaWM6CiAjZW5kaWYK
ICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIFdFQkNPUkVfRVhQT1JU
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlcihJT1N1cmZhY2VS
ZWYpOwotICAgIFdFQkNPUkVfRVhQT1JUIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVh
dGVQaXhlbEJ1ZmZlcihJT1N1cmZhY2VSZWYsIGNvbnN0IEludFNpemUmKTsKLSNlbmRpZgotCiAg
ICAgdWludDMyX3QgcGl4ZWxGb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsRm9ybWF0OyB9
CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVCh1aW50MzJfdCBwaXhlbEZvcm1hdCk7CiAKICNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpCi0gICAgQ0ZEaWN0aW9uYXJ5UmVmIGlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRp
b25zKElPU3VyZmFjZVJlZik7CiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVh
dGVDTVNhbXBsZUJ1ZmZlcihJT1N1cmZhY2VSZWYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IElu
dFNpemUmKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQppbmRleCBmMzE2OWFi
YzAyNzcwODJmMGNmY2U0NzI2NzllMTEwNzk3YzhjOWY2Li41MDdlNjA3MWFjN2QwYTg3NTk1ZWY3
NWMyYzQ5Mzg3ZDhlZmRlMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KQEAgLTI2LDYg
KzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5oIgogCisjaW1wb3J0ICJDVlV0aWxpdGllcy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250
ZXh0Q0cuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk1lZGlhU2FtcGxlQVZGT2Jq
Qy5oIgpAQCAtNDMsMTUgKzQ0LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMg
aW5saW5lIENGU3RyaW5nUmVmIGN2UGl4ZWxGb3JtYXRPcGVuR0xLZXkoKQotewotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICByZXR1cm4ga0NW
UGl4ZWxGb3JtYXRPcGVuR0xFU0NvbXBhdGliaWxpdHk7Ci0jZWxzZQotICAgIHJldHVybiBrQ1ZQ
aXhlbEJ1ZmZlck9wZW5HTENvbXBhdGliaWxpdHlLZXk7Ci0jZW5kaWYKLX0KLQogSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVCh1aW50MzJfdCBwaXhlbEZvcm1h
dCkKIHsKICAgICBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uUmVmIHRyYW5zZmVyU2Vzc2lvbjsKQEAg
LTg0LDI5ICs3NiwxMSBAQCBib29sIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OnNldFNpemUoY29u
c3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAgICBpZiAobV9zaXplID09IHNpemUgJiYgbV9vdXRwdXRC
dWZmZXJQb29sKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIE5TRGljdGlvbmFyeSogcGl4
ZWxCdWZmZXJPcHRpb25zID0gQHsKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4
ZWxCdWZmZXJXaWR0aEtleSA6IEAoc2l6ZS53aWR0aCgpKSwKLSAgICAgICAgKF9fYnJpZGdlIE5T
U3RyaW5nICopa0NWUGl4ZWxCdWZmZXJIZWlnaHRLZXkgOiBAKHNpemUuaGVpZ2h0KCkpLAotICAg
ICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtl
eSA6IEAobV9waXhlbEZvcm1hdCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWN2UGl4
ZWxGb3JtYXRPcGVuR0xLZXkoKSA6IEBZRVMsCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAq
KWtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7IC8qZW1wdHkgZGljdGlv
bmFyeSovIH0sCi0gICAgfTsKLQotICAgIE5TRGljdGlvbmFyeSogcGl4ZWxCdWZmZXJQb29sT3B0
aW9ucyA9IEB7Ci0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUG9v
bE1pbmltdW1CdWZmZXJDb3VudEtleTogQCg2KQotICAgIH07Ci0KLSAgICBDVlBpeGVsQnVmZmVy
UG9vbFJlZiBidWZmZXJQb29sOwotICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclBvb2xD
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhl
bEJ1ZmZlclBvb2xPcHRpb25zLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBpeGVsQnVmZmVy
T3B0aW9ucywgJmJ1ZmZlclBvb2wpOwotICAgIEFTU0VSVCghc3RhdHVzKTsKLSAgICBpZiAoc3Rh
dHVzICE9IGtDVlJldHVyblN1Y2Nlc3MpCisgICAgYXV0byBidWZmZXJQb29sID0gY3JlYXRlSU9T
dXJmYWNlQ1ZQaXhlbEJ1ZmZlclBvb2woc2l6ZSwgbV9waXhlbEZvcm1hdCwgNikuZmlyc3Q7Cisg
ICAgaWYgKCFidWZmZXJQb29sKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBtX291dHB1
dEJ1ZmZlclBvb2wgPSBhZG9wdENGKGJ1ZmZlclBvb2wpOworICAgIG1fb3V0cHV0QnVmZmVyUG9v
bCA9IFdURk1vdmUoYnVmZmVyUG9vbCk7CiAgICAgbV9zaXplID0gc2l6ZTsKLSAgICBtX2lvU3Vy
ZmFjZUJ1ZmZlckF0dHJpYnV0ZXMgPSBudWxscHRyOwotCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
QEAgLTExOCwyNiArOTIsMTkgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IEltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcihDVlBpeGVsQnUKICAgICBpZiAoIXNv
dXJjZUJ1ZmZlciB8fCAhc2V0U2l6ZShzaXplKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICBDVlBpeGVsQnVmZmVyUmVmIG91dHB1dEJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgYXV0byBz
dGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZVBpeGVsQnVmZmVyKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIG1fb3V0cHV0QnVmZmVyUG9vbC5nZXQoKSwgJm91dHB1dEJ1ZmZlcik7CisgICAgYXV0
byBbb3V0cHV0QnVmZmVyLCBzdGF0dXNdID0gY3JlYXRlQ1ZQaXhlbEJ1ZmZlckZyb21Qb29sKG1f
b3V0cHV0QnVmZmVyUG9vbC5nZXQoKSk7CiAgICAgaWYgKHN0YXR1cykgewotICAgICAgICBSRUxF
QVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZl
ciwgQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGVQaXhlbEJ1ZmZlciBmYWlsZWQgd2l0aCBlcnJvciAl
ZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlh
LCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyLCBjcmVhdGVDVlBp
eGVsQnVmZmVyRnJvbVBvb2wgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCBzdGF0aWNfY2FzdDxpbnQ+
KHN0YXR1cykpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgYXV0byByZXN1
bHQgPSBhZG9wdENGKG91dHB1dEJ1ZmZlcik7CiAKLSAgICBhdXRvIGVyciA9IFZUUGl4ZWxUcmFu
c2ZlclNlc3Npb25UcmFuc2ZlckltYWdlKG1fdHJhbnNmZXJTZXNzaW9uLmdldCgpLCBzb3VyY2VC
dWZmZXIsIG91dHB1dEJ1ZmZlcik7CisgICAgYXV0byBlcnIgPSBWVFBpeGVsVHJhbnNmZXJTZXNz
aW9uVHJhbnNmZXJJbWFnZShtX3RyYW5zZmVyU2Vzc2lvbi5nZXQoKSwgc291cmNlQnVmZmVyLCBv
dXRwdXRCdWZmZXIuZ2V0KCkpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0co
TWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXIsIFZUUGl4
ZWxUcmFuc2ZlclNlc3Npb25UcmFuc2ZlckltYWdlIGZhaWxlZCB3aXRoIGVycm9yICVkIiwgc3Rh
dGljX2Nhc3Q8aW50PihlcnIpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0g
ICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IEltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIHNv
dXJjZUJ1ZmZlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLXsKLSAgICByZXR1cm4gY29udmVydFBp
eGVsQnVmZmVyKFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIp
LCBzaXplKTsKKyAgICByZXR1cm4gb3V0cHV0QnVmZmVyOwogfQogCiBSZXRhaW5QdHI8Q01TYW1w
bGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZl
cihDTVNhbXBsZUJ1ZmZlclJlZiBzb3VyY2VCdWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUpCkBA
IC0xNTQsNyArMTIxLDcgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5z
ZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICBpZiAoIXNldFNp
emUoc2l6ZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBjb252ZXJ0ZWRQ
aXhlbEJ1ZmZlciA9IGNyZWF0ZVBpeGVsQnVmZmVyKHNvdXJjZUJ1ZmZlciwgc2l6ZSk7CisgICAg
YXV0byBjb252ZXJ0ZWRQaXhlbEJ1ZmZlciA9IGNvbnZlcnRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZl
ciwgc2l6ZSk7CiAgICAgaWYgKCFjb252ZXJ0ZWRQaXhlbEJ1ZmZlcikKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKQEAgLTI2Niw4MiArMjMzLDExIEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIoQ0dJbWFn
CiAKICNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAKLSNpZiBQTEFURk9STShNQUMpCi1zdGF0
aWMgaW50MzJfdCByb3VuZFVwVG9NYWNyb2Jsb2NrTXVsdGlwbGUoaW50MzJfdCBzaXplKQotewot
ICAgIHJldHVybiAoc2l6ZSArIDE1KSAmIH4xNTsKLX0KLSNlbmRpZgotCi1DRkRpY3Rpb25hcnlS
ZWYgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6aW9TdXJmYWNlUGl4ZWxCdWZmZXJDcmVhdGlvbk9w
dGlvbnMoSU9TdXJmYWNlUmVmIHN1cmZhY2UpCi17Ci0gICAgaWYgKG1faW9TdXJmYWNlQnVmZmVy
QXR0cmlidXRlcykKLSAgICAgICAgcmV0dXJuIG1faW9TdXJmYWNlQnVmZmVyQXR0cmlidXRlcy5n
ZXQoKTsKLQotICAgIG1faW9TdXJmYWNlQnVmZmVyQXR0cmlidXRlcyA9IChfX2JyaWRnZSBDRkRp
Y3Rpb25hcnlSZWYpIEB7Ci0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWN2UGl4ZWxGb3Jt
YXRPcGVuR0xLZXkoKSA6IEBZRVMsCi0gICAgfTsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBh
dXRvIGZvcm1hdCA9IElPU3VyZmFjZUdldFBpeGVsRm9ybWF0KHN1cmZhY2UpOwotICAgIGF1dG8g
d2lkdGggPSBJT1N1cmZhY2VHZXRXaWR0aChzdXJmYWNlKTsKLSAgICBhdXRvIGhlaWdodCA9IElP
U3VyZmFjZUdldEhlaWdodChzdXJmYWNlKTsKLSAgICBhdXRvIGV4dGVuZGVkUmlnaHQgPSByb3Vu
ZFVwVG9NYWNyb2Jsb2NrTXVsdGlwbGUod2lkdGgpIC0gd2lkdGg7Ci0gICAgYXV0byBleHRlbmRl
ZEJvdHRvbSA9IHJvdW5kVXBUb01hY3JvYmxvY2tNdWx0aXBsZShoZWlnaHQpIC0gaGVpZ2h0Owot
Ci0gICAgaWYgKChmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5h
clZpZGVvUmFuZ2UgfHwgZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQ
bGFuYXJGdWxsUmFuZ2UpCi0gICAgICAgICYmIChJT1N1cmZhY2VHZXRCeXRlc1BlclJvd09mUGxh
bmUoc3VyZmFjZSwgMCkgPj0gd2lkdGggKyBleHRlbmRlZFJpZ2h0KQotICAgICAgICAmJiAoSU9T
dXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDEpID49IHdpZHRoICsgZXh0ZW5k
ZWRSaWdodCkKLSAgICAgICAgJiYgKElPU3VyZmFjZUdldEFsbG9jU2l6ZShzdXJmYWNlKSA+PSAo
aGVpZ2h0ICsgZXh0ZW5kZWRCb3R0b20pICogSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5l
KHN1cmZhY2UsIDApICogMyAvIDIpKSB7Ci0gICAgICAgICAgICBtX2lvU3VyZmFjZUJ1ZmZlckF0
dHJpYnV0ZXMgPSAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKSBAewotICAgICAgICAgICAgICAg
IChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtl
eSA6IEBZRVMsCi0gICAgICAgICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxC
dWZmZXJFeHRlbmRlZFBpeGVsc1JpZ2h0S2V5IDogQChleHRlbmRlZFJpZ2h0KSwKLSAgICAgICAg
ICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckV4dGVuZGVkUGl4ZWxz
Qm90dG9tS2V5IDogQChleHRlbmRlZEJvdHRvbSkKLSAgICAgICAgICAgIH07Ci0gICAgfQotI2Vs
c2UKLSAgICBVTlVTRURfUEFSQU0oc3VyZmFjZSk7Ci0jZW5kaWYKLQotICAgIHJldHVybiBtX2lv
U3VyZmFjZUJ1ZmZlckF0dHJpYnV0ZXMuZ2V0KCk7Ci19Ci0KLVJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcihJT1N1cmZh
Y2VSZWYgc3VyZmFjZSkKLXsKLSAgICBpZiAoIXN1cmZhY2UpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotCi0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcjsKLSAgICBhdXRvIHN0YXR1
cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGVXaXRoSU9TdXJmYWNlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IHN1cmZhY2UsIGlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRpb25zKHN1cmZhY2UpLCAm
cGl4ZWxCdWZmZXIpOwotICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgUkVMRUFTRV9MT0coTWVk
aWEsICJDVlBpeGVsQnVmZmVyQ3JlYXRlV2l0aElPU3VyZmFjZSBmYWlsZWQgd2l0aCBlcnJvciBj
b2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KLSAgICByZXR1cm4gYWRvcHRDRihwaXhlbEJ1ZmZlcik7Ci19Ci0KLVJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhl
bEJ1ZmZlcihJT1N1cmZhY2VSZWYgc3VyZmFjZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK1JldGFp
blB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01T
YW1wbGVCdWZmZXIoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIGNvbnN0IE1lZGlhVGltZSYgc2FtcGxl
VGltZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAgICBpZiAoIXN1cmZhY2UgfHwgIXNldFNp
emUoc2l6ZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlcjsKLSAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGVXaXRo
SU9TdXJmYWNlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN1cmZhY2UsIGlvU3VyZmFjZVBpeGVsQnVm
ZmVyQ3JlYXRpb25PcHRpb25zKHN1cmZhY2UpLCAmcGl4ZWxCdWZmZXIpOwotICAgIGlmIChzdGF0
dXMpIHsKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJDVlBpeGVsQnVmZmVyQ3JlYXRlV2l0
aElPU3VyZmFjZSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4o
c3RhdHVzKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIGF1dG8gcmV0
YWluZWRCdWZmZXIgPSBhZG9wdENGKHBpeGVsQnVmZmVyKTsKLSAgICBpZiAobV9zaXplID09IElu
dFNpemUoQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKSwgQ1ZQaXhlbEJ1ZmZlckdl
dEhlaWdodChwaXhlbEJ1ZmZlcikpICYmIG1fcGl4ZWxGb3JtYXQgPT0gQ1ZQaXhlbEJ1ZmZlckdl
dFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcikpCi0gICAgICAgIHJldHVybiByZXRhaW5lZEJ1
ZmZlcjsKLQotICAgIHJldHVybiBjb252ZXJ0UGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIsIHNpemUp
OwotfQotCi1SZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9u
VlQ6OmNyZWF0ZUNNU2FtcGxlQnVmZmVyKElPU3VyZmFjZVJlZiBzdXJmYWNlLCBjb25zdCBNZWRp
YVRpbWUmIHNhbXBsZVRpbWUsIGNvbnN0IEludFNpemUmIHNpemUpCi17Ci0gICAgYXV0byBwaXhl
bEJ1ZmZlciA9IGNyZWF0ZVBpeGVsQnVmZmVyKHN1cmZhY2UsIHNpemUpOworICAgIGF1dG8gcGl4
ZWxCdWZmZXIgPSBjcmVhdGVDVlBpeGVsQnVmZmVyKHN1cmZhY2UpLmZpcnN0OwogICAgIGlmICgh
cGl4ZWxCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KaW5kZXggNTIxZGU3YTk3NGVlYzIw
ZTk5NzRjMDhhZDM5YjZjZWY3YzIxZjdlMS4uY2U4YTQxYTBmYTA1OTgyZDdiMTRlNWIxNmZhOGI0
ZDNjNzk4NGQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYS5tbQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaWYgVVNFKExJQldFQlJUQykKIAorI2lt
cG9ydCAiQ1ZVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk1lZGlh
U2FtcGxlQVZGT2JqQy5oIgogI2ltcG9ydCAiUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oIgpAQCAt
OTgsNyArOTksNyBAQCBDVlBpeGVsQnVmZmVyUG9vbFJlZiBSZWFsdGltZUluY29taW5nVmlkZW9T
b3VyY2VDb2NvYTo6cGl4ZWxCdWZmZXJQb29sKHNpemVfdCB3aQogICAgICAgICBjYXNlIHdlYnJ0
Yzo6QnVmZmVyVHlwZTo6STAxMDoKICAgICAgICAgICAgIHBvb2xCdWZmZXJUeXBlID0ga0NWUGl4
ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjEwQmlQbGFuYXJWaWRlb1JhbmdlOwogICAgICAgICB9Ci0g
ICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sID0gY3JlYXRlUGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBo
ZWlnaHQsIHBvb2xCdWZmZXJUeXBlKTsKKyAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2wgPSBjcmVh
dGVJT1N1cmZhY2VDVlBpeGVsQnVmZmVyUG9vbCh7IHN0YXRpY19jYXN0PGludD4od2lkdGgpLCBz
dGF0aWNfY2FzdDxpbnQ+KGhlaWdodCkgfSwgcG9vbEJ1ZmZlclR5cGUpLmZpcnN0OwogICAgICAg
ICBtX3BpeGVsQnVmZmVyUG9vbFdpZHRoID0gd2lkdGg7CiAgICAgICAgIG1fcGl4ZWxCdWZmZXJQ
b29sSGVpZ2h0ID0gaGVpZ2h0OwogICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbEJ1ZmZlclR5cGUg
PSBidWZmZXJUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgKaW5kZXggNWZiYWY1
ZWRjNjQwMjYxNGVkYWZkN2FlMTZkYWU4MGJiYjE3YTkwMi4uMzgwZDM3MzFiMGExNTNhYmI5YzIy
NzBiZmVlNzY4MGYwM2IzYjhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oCkBA
IC0yNyw5ICsyNyw2IEBACiAKICNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CiAKLXVz
aW5nIENWUGl4ZWxCdWZmZXJQb29sUmVmID0gc3RydWN0IF9fQ1ZQaXhlbEJ1ZmZlclBvb2wqOwot
dXNpbmcgQ1ZQaXhlbEJ1ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsKLQogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBzdGF0aWMgaW5saW5lIE9TVHlwZSBwcmVmZXJlZFBpeGVsQnVmZmVyRm9y
bWF0KCkKQEAgLTQxLDcgKzM4LDQgQEAgc3RhdGljIGlubGluZSBPU1R5cGUgcHJlZmVyZWRQaXhl
bEJ1ZmZlckZvcm1hdCgpCiAjZW5kaWYKIH0KIAotV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJQb29sUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBz
aXplX3QgaGVpZ2h0LCBPU1R5cGUpOwotV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyRnJvbVBvb2woQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYp
OwotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyNjJlYzI3NmI0ZjEzMWQ3MDAzZjNmMzIwZTA5NzQ2Y2Q0Y2VjYzI4Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tCisr
KyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgcmVxdWly
ZWQgdG8gYmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUgotICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotICogREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0gKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmln
LmgiCi0jaW1wb3J0ICJSZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCi0KLSNpbXBvcnQgIkNvcmVW
aWRlb1NvZnRMaW5rLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJQb29sUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBzaXpl
X3QgaGVpZ2h0LCBPU1R5cGUgdmlkZW9DYXB0dXJlRm9ybWF0KQotewotICAgIGF1dG8gcGl4ZWxB
dHRyaWJ1dGVzID0gQHsKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZm
ZXJXaWR0aEtleTogQCh3aWR0aCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBp
eGVsQnVmZmVySGVpZ2h0S2V5OiBAKGhlaWdodCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmlu
ZyAqKWtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5OiBAKHZpZGVvQ2FwdHVyZUZvcm1h
dCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyQ0dJbWFnZUNv
bXBhdGliaWxpdHlLZXk6IEBOTywKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICAo
X19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEZvcm1hdE9wZW5HTEVTQ29tcGF0aWJpbGl0eSA6
IEBZRVMsCi0jZWxzZQotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZl
ck9wZW5HTENvbXBhdGliaWxpdHlLZXkgOiBAWUVTLAotI2VuZGlmCi0gICAgICAgIChfX2JyaWRn
ZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7IH0K
LSAgICB9OwotCi0gICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcG9vbCA9IG51bGxwdHI7Ci0gICAg
YXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBudWxscHRyLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBpeGVsQXR0cmlidXRlcywgJnBv
b2wpOwotCi0gICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzKQotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBhZG9wdENGKHBvb2wpOwotfQotCi1SZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gY3JlYXRlUGl4ZWxCdWZmZXJGcm9tUG9vbChDVlBpeGVsQnVmZmVy
UG9vbFJlZiBwaXhlbEJ1ZmZlclBvb2wpCi17Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlciA9IG51bGxwdHI7Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0
ZVBpeGVsQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyUG9vbCwgJnBpeGVs
QnVmZmVyKTsKLQotICAgIGlmIChzdGF0dXMgIT0ga0NWUmV0dXJuU3VjY2VzcykKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxCdWZmZXIpOwotfQotCi19
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3Jl
VVJMUmVzcG9uc2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJD
b3JlVVJMUmVzcG9uc2UubW0KaW5kZXggZGUzYmI2YTcwNzY4ZGM4YWU1OGQwY2RlYmEwYTQ4MGFl
OGJmYmVmNS4uY2E2NTBhNTRlNDNlODJjOGU0MjRkZGMzY2JjODQ0NzJmODY0ODNjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3Bv
bnNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVV
UkxSZXNwb25zZS5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5l
dHdvcmtTUEkuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvU29ydGVkQXJyYXlNYXAuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xp
YldlYlJUQ0NvZGVjc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xp
YldlYlJUQ0NvZGVjc1Byb3h5LmgKaW5kZXggZDk4ZjcyY2E1MmExZjFjMWVmOGIyOWI4ZjcxMjI0
MjM1YzgxOGY3YS4uZWVjOGQ2NmZhYWJhZmI3OTliMGZkZWRjNDU5YzRkYjVhN2YyMmUzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzUHJveHkuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIK
ICNpbmNsdWRlICJSVENEZWNvZGVySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJUQ0VuY29kZXJJ
ZGVudGlmaWVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+
CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC05Myw3ICs5Miw2
IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxSVENFbmNvZGVySWRlbnRpZmllciwgd2VicnRjOjpM
b2NhbEVuY29kZXI+IG1fZW5jb2RlcnMgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spOyAvLyBP
bmx5IG1vZGlmaWVkIG9uIHRoZSBsaWJXZWJSVENDb2RlY3NRdWV1ZSBidXQgbWF5IGdldCBhY2Nl
c3NlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KIAogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1f
aW1hZ2VUcmFuc2ZlclNlc3Npb247CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQppbmRleCBiMjMyNTgy
NzQ0YzE1ODYwZTkyNTNlYjNkYmU5MjQ0ZTkxOWU4NjFmLi5iNDg0ZTg1YzY4M2QwNzA1OGU2YmE1
NTU1ZmZjNTMwNTcyYTJhMjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KQEAgLTMzLDYgKzMzLDggQEAKICNp
bXBvcnQgIkxpYldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgiCiAjaW1wb3J0ICJMaWJXZWJSVENDb2Rl
Y3NQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNp
bXBvcnQgPFdlYkNvcmUvQ1ZVdGlsaXRpZXMuaD4KKwogI2ltcG9ydCA8V2ViQ29yZS9MaWJXZWJS
VENQcm92aWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2lt
cG9ydCA8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RGVjb2Rlci5oPgpAQCAtMjA3LDExICsyMDks
OCBAQCB2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjplbmNvZGVGcmFtZShSVENFbmNvZGVySWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOgogICAgIGlmICghZW5jb2RlcikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFu
c2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0gc2FtcGxlLnZpZGVvRm9ybWF0KCkpCi0gICAg
ICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUOjpjcmVhdGUoc2FtcGxlLnZpZGVvRm9ybWF0KCkpOwotCiAjaWYgIVBMQVRGT1JNKE1BQ0NB
VEFMWVNUKQotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5j
cmVhdGVQaXhlbEJ1ZmZlcihzYW1wbGUuc3VyZmFjZSgpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVy
ID0gV2ViQ29yZTo6Y3JlYXRlQ1ZQaXhlbEJ1ZmZlcihzYW1wbGUuc3VyZmFjZSgpKS5maXJzdDsK
ICAgICB3ZWJydGM6OmVuY29kZUxvY2FsRW5jb2RlckZyYW1lKGVuY29kZXIsIHBpeGVsQnVmZmVy
LmdldCgpLCBzYW1wbGUudGltZSgpLnRvVGltZVNjYWxlKDEwMDAwMDApLnRpbWVWYWx1ZSgpLCB0
aW1lU3RhbXAsIHRvV2ViUlRDVmlkZW9Sb3RhdGlvbihzYW1wbGUucm90YXRpb24oKSksIHNob3Vs
ZEVuY29kZUFzS2V5RnJhbWUpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAppbmRleCA5YWQ5NGQ2
ODZlNDM4MGI1YTEzYjk0NzcxMzNhODgyMjUxZGIwNDdjLi5kYmY5NDJhZDJkMGNkZDQ2YTMxNzBh
Yjg4MmRlMTM1M2Y5NjgyZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKQEAgLTMzLDkgKzMzLDkgQEAKICNp
bmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvQ1ZVdGlsaXRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVlA5VXRpbGl0aWVzQ29jb2EuaD4KQEAgLTMz
MiwxNSArMzMyLDcgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZERlY29kaW5nKFJU
Q0RlY29kZXJJZGVudGlmaWVyIGRlY29kZXJJZGVudGlmaWVyLAogICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlZEltYWdlQ2FsbGJhY2spCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgp
ICE9IHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKQotICAgICAgICBtX2ltYWdlVHJhbnNmZXJT
ZXNzaW9uID0gV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHJlbW90ZVNh
bXBsZS52aWRlb0Zvcm1hdCgpKTsKLQotICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikg
ewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVQ
aXhlbEJ1ZmZlcihyZW1vdGVTYW1wbGUuc3VyZmFjZSgpLCByZW1vdGVTYW1wbGUuc2l6ZSgpKTsK
KyAgICBhdXRvIHBpeGVsQnVmZmVyID0gY3JlYXRlQ1ZQaXhlbEJ1ZmZlcihyZW1vdGVTYW1wbGUu
c3VyZmFjZSgpKS5maXJzdDsKICAgICBpZiAoIXBpeGVsQnVmZmVyKSB7CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CkBAIC00NDQsNyArNDM2LDcgQEAgaW50
MzJfdCBMaWJXZWJSVENDb2RlY3M6OmVuY29kZUZyYW1lKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IHdlYnJ0Yzo6VmlkZW9GcmFtZSYKICAgICAgICAgaWYgKCFwaXhlbEJ1ZmZlclBvb2wpCiAgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICByZXR1cm4gV2ViQ29yZTo6Y3JlYXRl
UGl4ZWxCdWZmZXJGcm9tUG9vbChwaXhlbEJ1ZmZlclBvb2wpLmxlYWtSZWYoKTsKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxCdWZmZXJGcm9tUG9vbChwaXhlbEJ1ZmZlclBv
b2wpLmZpcnN0LmxlYWtSZWYoKTsKICAgICB9KSk7CiAKICAgICBpZiAoIXBpeGVsQnVmZmVyKQpA
QCAtNTAzLDcgKzQ5NSw3IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRFbmNvZGlu
ZyhSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OkRhCiBDVlBpeGVsQnVmZmVy
UG9vbFJlZiBMaWJXZWJSVENDb2RlY3M6OnBpeGVsQnVmZmVyUG9vbChzaXplX3Qgd2lkdGgsIHNp
emVfdCBoZWlnaHQsIE9TVHlwZSB0eXBlKQogewogICAgIGlmICghbV9waXhlbEJ1ZmZlclBvb2wg
fHwgbV9waXhlbEJ1ZmZlclBvb2xXaWR0aCAhPSB3aWR0aCB8fCBtX3BpeGVsQnVmZmVyUG9vbEhl
aWdodCAhPSBoZWlnaHQpIHsKLSAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2wgPSBjcmVhdGVQaXhl
bEJ1ZmZlclBvb2wod2lkdGgsIGhlaWdodCwgdHlwZSk7CisgICAgICAgIG1fcGl4ZWxCdWZmZXJQ
b29sID0gV2ViQ29yZTo6Y3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZlclBvb2woeyBzdGF0aWNf
Y2FzdDxpbnQ+KHdpZHRoKSwgc3RhdGljX2Nhc3Q8aW50PihoZWlnaHQpIH0sIHR5cGUpLmZpcnN0
OwogICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbFdpZHRoID0gd2lkdGg7CiAgICAgICAgIG1fcGl4
ZWxCdWZmZXJQb29sSGVpZ2h0ID0gaGVpZ2h0OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgKaW5kZXggZWJlNjIz
Y2JkN2I3YTg1ZDI4OWU2YWM4MmQzMTk1ZDZiZTEzNWZiYy4uNDA4MzNlMDMwZWY1YjBlZTg5NGQ3
ZjQ0YmU5OGNkNjc5ODFmNGEyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNs
dWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJSVENEZWNvZGVySWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIlJUQ0VuY29kZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9J
bWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QaXhlbEJ1ZmZlckNv
bmZvcm1lckNWLmg+CiAjaW5jbHVkZSA8bWFwPgogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvdmlkZW8v
dmlkZW9fY29kZWNfdHlwZS5oPgpAQCAtMTQ5LDcgKzE0OCw2IEBAIHByaXZhdGU6CiAgICAgVmVj
dG9yPEZ1bmN0aW9uPHZvaWQoKT4+IG1fdGFza3NUb0Rpc3BhdGNoQWZ0ZXJFc3RhYmxpc2hpbmdD
b25uZWN0aW9uOwogCiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vz
c2lvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vj4gbV9waXhlbEJ1ZmZlckNvbmZvcm1lcjsKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclBv
b2xSZWY+IG1fcGl4ZWxCdWZmZXJQb29sOwogICAgIHNpemVfdCBtX3BpeGVsQnVmZmVyUG9vbFdp
ZHRoIHsgMCB9Owo=
</data>
<flag name="commit-queue"
          id="461688"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438339</attachid>
            <date>2021-09-16 05:27:12 -0700</date>
            <delta_ts>2021-09-16 05:50:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230338-20210916152710.patch</filename>
            <type>text/plain</type>
            <size>42852</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRjNGU3ZmI1YjEyZGVl
YmViZmNiOTY4NDhjYzdhOWM4ZjA3ZDZkMi4uZGUyYjhkZTA1ODdkM2FiMWM2Mzc2M2MyMTA4N2M3
ZDEzZGMwOTgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIxLTA5LTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHV0aWxpdHkg
dG8gY3JlYXRlIENWUGl4ZWxCdWZmZXJzIGZyb20gSU9TdXJmYWNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMzM4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgZnVuY3Rpb25hbGl0eSBv
ZiBjcmVhdGluZyBDVlBpeGVsQnVmZmVycworICAgICAgICBmcm9tIElPU3VyZmFjZXMgZnJvbSBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUIHRvCisgICAgICAgIHN0YW5kYWxvbmUgZnVuY3Rpb25zIGlu
IG5ldyBoZWFkZXIgQ1ZVdGlsaXRpZXMuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IGRpZCBu
b3QgdXNlIGFueSBzdGF0ZSBvZgorICAgICAgICBJbWFnZVRyYW5zZmVyU2Vzc2lvblZULgorCisg
ICAgICAgIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1c2VmdWwgaW4gb3RoZXIgc2NlbmFyaW9zIHRv
by4KKworICAgICAgICBSZW1vdmUgaW5zdGFudGlhdGlvbnMgb2YgSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVCBmcm9tCisgICAgICAgIHRoZSBvbGQgY2FsbCBzaXRlcywgYXMgaXQgd2FzIG5ldmVyIHVz
ZWQgZm9yIGFueXRoaW5nCisgICAgICAgIGVsc2UgdGhhbiBjcmVhdGlvbiBvZiB0aGUgcGl4ZWwg
YnVmZmVyLgorCisgICAgICAgIE1vdmUgdGhlIHJlbGF0ZWQgQ1ZQaXhlbEJ1ZmZlclBvb2wgaW5z
dGFudGlhdGlvbgorICAgICAgICBmcm9tIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCB0byBDVlV0
aWxpdGllcy5oCisKKyAgICAgICAgUmVtb3ZlIHRoZSB1c2FnZSBvZiBrQ1ZQaXhlbEZvcm1hdE9w
ZW5HTEVTQ29tcGF0aWJpbGl0eQorICAgICAgICBmcm9tIHRoZSBDVlBpeGVsQnVmZmVyIGNyZWF0
aW9uIGNvZGUuIEl0IHdhcyBpbmNvcnJlY3QgcHJvcGVydHkKKyAgICAgICAgYWxsIGFsb25nLCBw
cm9wZXJ0eSBvZiBwaXhlbCBmb3JtYXRzIG5vdCBvZiBwaXhlbCBidWZmZXJzLiBUaGUKKyAgICAg
ICAgaW50ZW5kZWQgcHJvcGVydHkgd2FzIGtDVlBpeGVsQnVmZmVyT3BlbkdMRVNDb21wYXRpYmls
aXR5S2V5CisgICAgICAgIGJ1dCBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisgICAgICAgIFJl
dGFpbnMgdGhlIHVzYWdlIG9mIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSwg
dGhvdWdoCisgICAgICAgIGl0IGlzIGluY29ycmVjdCBhbmQgdW5uZWVkZWQgZm9yIHRoZSBjdXJy
ZW50IG9wZXJhdGlvbiB0b28uCisgICAgICAgIFNpbmNlIHRoZW9yZXRpY2FsbHkgdGhpcyBjb3Vs
ZCBhZmZlY3Qgc29tZXRoaW5nIG9uIE1hYywgdGhpcworICAgICAgICB3aWxsIGJlIHJlbW92ZWQg
aW4gYSBzZXBhcmF0ZSBmaXguCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhIHJlZmFjdG9yLgor
CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZlclBvb2wpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlQ1ZQaXhlbEJ1ZmZlckZyb21Qb29sKToKKyAgICAgICAgKFdlYkNvcmU6OnBpeGVs
QnVmZmVyQ3JlYXRpb25PcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxC
dWZmZXIpOgorICAgICAgICBUaGUgYWRkZWQgZnVuY3Rpb25zIHJldHVybiBFeHBlY3RlZDxvYmpl
Y3QsIHN0YXR1cz4gc2luY2UKKyAgICAgICAgc29tZSBvZiB0aGUgY2FsbGVycyB3YW50IHRvIGxv
ZyB0aGUgZmFpbHVyZSBzdGF0dXMgY29kZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjdlBpeGVsRm9ybWF0T3BlbkdMS2V5KTogRGVsZXRlZC4KKyAgICAgICAg
SW5jb3JyZWN0LCByZXBsYWNlZCB3aXRoIE1hYy1vbmx5IHVzZSBvZiBPcGVuR0xDb21wYXRpYmls
aXR5S2V5IGluCisgICAgICAgIENWVXRpbGl0aWVzLm1tLgorICAgICAgICAoV2ViQ29yZTo6cm91
bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKTogRGVsZXRlZC4KKyAgICAgICAgVXNlIHRoZSBzaW1p
bGFyIGZ1bmN0aW9uIGluIFdURi4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ6OmlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRpb25zKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYTo6cGl4ZWxCdWZmZXJQb29sKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oOgorICAgICAgICBQcmVzZXJ2ZWQsIHNpbmNl
IHByZWZlcmVkUGl4ZWxCdWZmZXJGb3JtYXQgbWVhbnMKKyAgICAgICAgInRoZSBwaXhlbCBidWZm
ZXIgZm9ybWF0IHRoYXQgaXMgcHJlZmVycmVkIGJ5IG1lZGlhIHN0cmVhbSBpbXBsZW1lbnRhdGlv
bnMiCisgICAgICAgIHdoaWNoIGRvZXMgbm90IGZpdCB0byBjYXRlZ29yeSBvZiAiQ29yZVZpZGVv
IFV0aWxpdGllcyIuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
VmlkZW9VdGlsaXRpZXMubW06IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tOgorICAgICAgICBGaXggdW5pZmllZCBidWlsZCBmYWls
dXJlIGR1ZSB0byBhIG1pc3NpbmcgaW5jbHVkZS4KKwogMjAyMS0wOS0xNiAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHN0ZDo6b3B0aW9uYWwgZm9yIHRy
dW5jYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZjRkZWUyZmU4OWIyMjFlNjBmYWI1MGZiYzlkMDg1OWZmNGU5
MWZlMy4uYmVkMTY2NWVkZDQwNmFhMGFlMjQxMWIyNjA0YTNkYjUwOWMzNjkyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNyBAQAorMjAyMS0wOS0xNiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCB1dGlsaXR5IHRvIGNyZWF0ZSBDVlBpeGVsQnVmZmVy
cyBmcm9tIElPU3VyZmFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMDMzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoZSBoZWxwZXIgZnVuY3Rpb24gbW92ZWQgZnJvbSBJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUCisgICAgICAgIHRvIGZyZWUgc3RhbmRhbG9uZSBmdW5jdGlvbi4gU3RvcCBpbnN0YW50
aWF0aW5nIHRoZQorICAgICAgICBvYmplY3QgYW5kIGp1c3QgY2FsbCB0aGUgZnVuY3Rpb24uCisK
KyAgICAgICAgSW4gYm90aCBvZiB0aGUgY2FzZXMsIHRoZSBwaXhlbCBidWZmZXIgaXMgY3JlYXRl
ZCBvdXQgb2YKKyAgICAgICAgdGhlIElPU3VyZmFjZSBhbmQgdGhlIHBvb2wgaXMgbm90IHVzZWQu
IEluIGJvdGggb2YgdGhlIGNhc2VzCisgICAgICAgIHRoZSBzaXplIGFuZCB0aGUgcGl4ZWwgZm9y
bWF0IG9mIHRoZSBpbWFnZSB0cmFuc2ZlciBzZXNzaW9uCisgICAgICAgIGlzIHRoZSBzYW1lIGFz
IHRoZSBpbnB1dCBJT1N1cmZhY2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6cGl4ZWxCdWZmZXJQb29sKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmg6CisKIDIw
MjEtMDktMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdW1dQRV0gdGVzdCBhbmltYXRpb25zL3N0ZXBzLXRyYW5zZm9ybS1yZW5kZXJp
bmctdXBkYXRlcy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDkwZGJl
MTJkOTdjYTAwNDY5NTYwNTJkOWFiNWJiY2I5NDAyOTI5ZGEuLmI4MDgyMGNjNjQ1NjVkMjFlOGMy
ZDg4MzFmZmFlNDYzOGUyMjA3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
TWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0zMzcs
NiArMzM3LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvcmV0ZXh0L0dseXBoUGFnZUNvcmVUZXh0LmNwcAogCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWQU5HTEUuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VS
b3RhdGlvblNlc3Npb25WVC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVy
Q29uZm9ybWVyQ1YuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBlZjIwYmVkMzYxNWJj
YTgxMTAyYTIyMDEwOTQ0MWE4ZTIxOTVlNzdkLi43OTM1MjJjZDA3ZjUyYTYyNThiMTY0NDYxZjEy
ODUwYjdkNzEzNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM5Miw2ICszOTIsNyBA
QCBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvR2x5cGhQYWdlQ29yZVRleHQuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9jdi9D
VlV0aWxpdGllcy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5jcHAKQEAgLTU0Miw3
ICs1NDMsNiBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYy5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjLm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlQ29jb2EuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCi1wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVWaWRlb1V0aWxpdGllcy5tbQogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJDb2NvYS5tbQogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9j
ay5jcHAKIHBsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggYzc1ODQzMDYxNzdkODY1YjQ5ZTE5YjdlMDM5ZGVkZjUwMGYxM2Q2ZC4uZDU2OTA0OGM5MGQ5
ZGZhM2EwYmExODJiMWU4N2QxZjU3NjhjZmJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM1Miw2ICsyMzUyLDcgQEAKIAkJ
N0I0NUFCNTUyNUZCQTlERTAwRkQyN0Y0IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
NDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0
aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QjczMTFGQjI1QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3
MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QjhF
RDVGMDI2RjBDMTNEMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCOEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBD
VlV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdCOTA0MTcwMjU1MDExNDIwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0JCMzRBMTcyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
QjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRpbGl0aWVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JC
MzRBNDgyNTM3NzZDQTAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjM0QTQ1
MjUzNzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc5NDgsNyAr
Nzk0OSw2IEBACiAJCTQxNTc0NzQ0MUUzODY5OUUwMEU5MTREOCAvKiBMaWJXZWJSVENQcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENQcm92aWRlci5o
OyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxNTdFQkY4MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTdF
QkY5MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE1ODY0OUYyM0JGN0I5
MzAwQTBBNjFFIC8qIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCNjI0RkZDRDFCMDBCOURBNDEgLyogUlRDSWNl
Q29tcG9uZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENJY2VDb21wb25lbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCODI0RkZDREMzMDBCOURBNDEg
LyogUlRDSWNlUHJvdG9jb2wuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ0ljZVByb3Rv
Y29sLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1OERDQjkyNEZGQ0RDMzAw
QjlEQTQxIC8qIFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTA2MDEsNiArMTA2MDEsOCBAQAogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyog
R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNj
b3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3Qjc3NEM2MjI1RkI5MzU1MDA5MTM5NUYgLyogR3JhcGhpY3NDb250
ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJN0I4RUQ1RUQyNkYwQzEyMzAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENWVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTdCOEVENUVGMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENWVXRpbGl0aWVzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjkwNDE2RTI1NTAxMTA5MDA2RUVCOEMgLyogUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGlsaXRp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xB
TkdMRVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkIzNEE0NTI1
Mzc3NkM2MDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzYzOCw3ICsxNzY0MCw2IEBACiAJCQkJNUNERDgzM0MxRTQz
MjRCQjAwNjIxQjgzIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmggKi8sCiAJ
CQkJNDE5MjQyNDcyMTI3QjdDQzAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZUNvY29hLm1tICovLAogCQkJCTQxRDE5MzhGMjE1MkM1NjEwMDZGMTRDQSAvKiBSZWFsdGltZVZp
ZGVvVXRpbGl0aWVzLmggKi8sCi0JCQkJNDE1ODY0OUYyM0JGN0I5MzAwQTBBNjFFIC8qIFJlYWx0
aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8sCiAJCQkJMDdENjM3M0UxQkIwQjExMzAwMjU2Q0U5IC8q
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oICovLAogCQkJCTA3RDYzNzNGMUJCMEIxMTMw
MDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0gKi8sCiAJCQkpOwpAQCAt
MjgzMDgsNiArMjgzMDksOCBAQAogCQlDRDlEODI3QzFDN0JCMkVEMDA2RkYwNjYgLyogY3YgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTdCOEVENUVEMjZG
MEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovLAorCQkJCTdCOEVENUVGMjZGMEMxMjMw
MDhBQzAyMyAvKiBDVlV0aWxpdGllcy5tbSAqLywKIAkJCQk3QjEwMzM5RDI1NDk3MjAxMDBDOEMx
QUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovLAogCQkJCTdCMTAzMzlBMjU0OTcyMDAwMEM4
QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuY3BwICovLAogCQkJCTdCMTAzMzlDMjU0
OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuaCAqLywKQEAgLTMxOTcx
LDYgKzMxOTc0LDcgQEAKIAkJCQk2MkNEMzI1QTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNUQyMzg1MjI3QTA2NTIwMDBCOUJEQSAvKiBDdXN0
b21IZWFkZXJGaWVsZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCMUUxM0U3MjE3OTBENjYwMDQy
Q0Y5OCAvKiBDdXN0b21QYWludENhbnZhcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0I4RUQ1RjAy
NkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENC
NDEzRTBFODYzM0ZEMDAzMkM0RjAgLyogRGFzaEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
N0JDNkEyMTE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3QkM2QTI0MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZUF1dGhvcml6ZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzMxMzIsNyArMzMxMzYsNiBAQAogCQkJCUJDNjkzMjc0MEQ3RTI5MzkwMEFF
NDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1MkZCQkJDMERF
MjdDQjYwMDAxRDM4NiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEwQkNGNTYyNkYwQ0Q4QzAwNDBCMTI0IC8qIFJUQ0xvY2FsU2Vzc2lv
bkRlc2NyaXB0aW9uSW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVFMEU5NDQxMTMzQzg5RjAw
QjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M0NUM5RDMxRTNG
Q0JENzAwQUFCNTU4IC8qIEpTRE9NV3JhcHBlckNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0E4MDYxRTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNDc0Miw2ICszNDc0NSw3IEBACiAJCQkJMDdBQjk5NkIxOERBM0MwMTAwMTg3NzFFIC8q
IFJUQ0ljZVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzNTkxMDgxRTdEREM3MzAwRjMw
NjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzNTkx
MDkxRTdEREM3MzAwRjMwNjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFN0YXRlLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTBCQ0Y1NjI2RjBDRDhDMDA0MEIxMjQgLyogUlRDTG9jYWxTZXNzaW9uRGVzY3Jp
cHRpb25Jbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUMxNEJDNjI2REU2REU4MDA2ODVCRjUg
LyogUlRDTmV0d29ya01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mzc5NEZFMTlGNTg2
NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzM3
OTRERTE5RUUyQzUyMDBFNUEwNDUgLyogUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NW
VXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxp
dGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJkMWZlMGU5Y2FmZTdkMGQ2MWFkMTRiNWIzMmFiZGFmMGZiODZi
MzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9DVlV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPENvcmVWaWRlby9Db3JlVmlkZW8uaD4KKyNpbmNsdWRlIDx1dGlsaXR5
PgorI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
KwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgPSBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVyUG9v
bCo7Cit1c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZmZXIqOworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKy8vIENyZWF0ZXMgQ1ZQaXhlbEJ1ZmZlclBvb2wgdGhhdCBjcmVh
dGVzIENWUGl4ZWxCdWZmZXJzIGJhY2tlZCBieSBJT1N1cmZhY2VzLgorLy8gVGhlc2UgYnVmZmVy
cyBjYW4gYmUgZm9yIGV4YW1wbGUgc2VudCB0aHJvdWdoIElQQy4KK1dFQkNPUkVfRVhQT1JUIEV4
cGVjdGVkPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4sIENWUmV0dXJuPiBjcmVhdGVJ
T1N1cmZhY2VDVlBpeGVsQnVmZmVyUG9vbChJbnRTaXplLCBPU1R5cGUgcGl4ZWxGb3JtYXQsIHVu
c2lnbmVkIG1pbmltdW1CdWZmZXJDb3VudCA9IDB1KTsKKworV0VCQ09SRV9FWFBPUlQgRXhwZWN0
ZWQ8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4gY3JlYXRlQ1ZQaXhlbEJ1
ZmZlckZyb21Qb29sKENWUGl4ZWxCdWZmZXJQb29sUmVmKTsKKworV0VCQ09SRV9FWFBPUlQgRXhw
ZWN0ZWQ8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4gY3JlYXRlQ1ZQaXhl
bEJ1ZmZlcihJT1N1cmZhY2VSZWYpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmMTI0MGM5NDRlYTEw
NmU1ZDExNDczODMxNjhiYzYzNDA3MmU5MGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQpAQCAtMCwwICsxLDExMSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQ1ZVdGlsaXRpZXMu
aCIKKworI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2ltcG9ydCAiQ29yZVZpZGVvU29m
dExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitFeHBlY3RlZDxSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclBvb2xSZWY+LCBDVlJldHVybj4gY3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZl
clBvb2woSW50U2l6ZSBzaXplLCBPU1R5cGUgZm9ybWF0LCB1bnNpZ25lZCBtaW5pbXVtQnVmZmVy
Q291bnQpCit7CisgICAgYXV0byBwaXhlbEF0dHJpYnV0ZXMgPSBAeworICAgICAgICAoX19icmlk
Z2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlcldpZHRoS2V5OiBAKHNpemUud2lkdGgoKSksCisg
ICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0S2V5OiBAKHNp
emUuaGVpZ2h0KCkpLAorICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZl
clBpeGVsRm9ybWF0VHlwZUtleTogQChmb3JtYXQpLAorICAgICAgICAoX19icmlkZ2UgTlNTdHJp
bmcgKilrQ1ZQaXhlbEJ1ZmZlckNHSW1hZ2VDb21wYXRpYmlsaXR5S2V5OiBATk8sCisjaWYgUExB
VEZPUk0oTUFDKQorICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9w
ZW5HTENvbXBhdGliaWxpdHlLZXkgOiBAWUVTLAorI2VuZGlmCisgICAgICAgIChfX2JyaWRnZSBO
U1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7IH0KKyAg
ICB9OworICAgIE5TRGljdGlvbmFyeSogcG9vbE9wdGlvbnMgPSBudWxscHRyOworICAgIGlmICht
aW5pbXVtQnVmZmVyQ291bnQpIHsKKyAgICAgICAgcG9vbE9wdGlvbnMgPSBAeworICAgICAgICAg
ICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQb29sTWluaW11bUJ1ZmZlckNv
dW50S2V5OiBAKG1pbmltdW1CdWZmZXJDb3VudCkKKyAgICAgICAgfTsKKyAgICB9CisgICAgQ1ZQ
aXhlbEJ1ZmZlclBvb2xSZWYgcG9vbCA9IG51bGxwdHI7CisgICAgYXV0byBzdGF0dXMgPSBDVlBp
eGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoX19icmlkZ2UgQ0ZEaWN0
aW9uYXJ5UmVmKSBwb29sT3B0aW9ucywgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhlbEF0
dHJpYnV0ZXMsICZwb29sKTsKKyAgICBpZiAoc3RhdHVzICE9IGtDVlJldHVyblN1Y2Nlc3MgfHwg
IXBvb2wpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChzdGF0dXMpOworICAgIHJldHVy
biBhZG9wdENGKHBvb2wpOworfQorCitFeHBlY3RlZDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4sIENWUmV0dXJuPiBjcmVhdGVDVlBpeGVsQnVmZmVyRnJvbVBvb2woQ1ZQaXhlbEJ1ZmZlclBv
b2xSZWYgcGl4ZWxCdWZmZXJQb29sKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIgPSBudWxscHRyOworICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGVQ
aXhlbEJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlclBvb2wsICZwaXhlbEJ1
ZmZlcik7CisgICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzIHx8ICFwaXhlbEJ1ZmZl
cikKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHN0YXR1cyk7CisgICAgcmV0dXJuIGFk
b3B0Q0YocGl4ZWxCdWZmZXIpOworfQorCitzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHBpeGVsQnVm
ZmVyQ3JlYXRpb25PcHRpb25zKElPU3VyZmFjZVJlZiBzdXJmYWNlKQoreworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICBhdXRvIGZvcm1hdCA9IElPU3VyZmFjZUdldFBpeGVsRm9ybWF0KHN1cmZhY2Up
OworICAgIGlmIChmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5h
clZpZGVvUmFuZ2UgfHwgZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQ
bGFuYXJGdWxsUmFuZ2UpIHsKKyAgICAgICAgY29uc3RleHByIHNpemVfdCBtYWNyb2Jsb2NrU2l6
ZSA9IDE2OworICAgICAgICBhdXRvIHdpZHRoID0gSU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFjZSk7
CisgICAgICAgIGF1dG8gaGVpZ2h0ID0gSU9TdXJmYWNlR2V0SGVpZ2h0KHN1cmZhY2UpOworICAg
ICAgICBhdXRvIGV4dGVuZGVkUmlnaHQgPSByb3VuZFVwVG9NdWx0aXBsZU9mKG1hY3JvYmxvY2tT
aXplLCB3aWR0aCkgLSB3aWR0aDsKKyAgICAgICAgYXV0byBleHRlbmRlZEJvdHRvbSA9IHJvdW5k
VXBUb011bHRpcGxlT2YobWFjcm9ibG9ja1NpemUsIGhlaWdodCkgLSBoZWlnaHQ7CisgICAgICAg
IGlmICgoSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApID49IHdpZHRo
ICsgZXh0ZW5kZWRSaWdodCkKKyAgICAgICAgICAgICYmIChJT1N1cmZhY2VHZXRCeXRlc1BlclJv
d09mUGxhbmUoc3VyZmFjZSwgMSkgPj0gd2lkdGggKyBleHRlbmRlZFJpZ2h0KQorICAgICAgICAg
ICAgJiYgKElPU3VyZmFjZUdldEFsbG9jU2l6ZShzdXJmYWNlKSA+PSAoaGVpZ2h0ICsgZXh0ZW5k
ZWRCb3R0b20pICogSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApICog
MyAvIDIpKSB7CisgICAgICAgICAgICByZXR1cm4gKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZikg
QHsKKyNpZiBQTEFURk9STShNQUMpCisgICAgICAgICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5n
ICopa0NWUGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5IDogQFlFUywKKyNlbmRpZgor
ICAgICAgICAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyRXh0ZW5k
ZWRQaXhlbHNSaWdodEtleSA6IEAoZXh0ZW5kZWRSaWdodCksCisgICAgICAgICAgICAgICAgKF9f
YnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJFeHRlbmRlZFBpeGVsc0JvdHRvbUtleSA6
IEAoZXh0ZW5kZWRCb3R0b20pCisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgfQorI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0oc3VyZmFjZSk7CisjZW5kaWYKKyAgICByZXR1cm4gKF9fYnJp
ZGdlIENGRGljdGlvbmFyeVJlZikgQHsKKyNpZiBQTEFURk9STShNQUMpCisgICAgICAgIChfX2Jy
aWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSA6IEBZ
RVMKKyNlbmRpZgorICAgIH07Cit9CisKK0V4cGVjdGVkPFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiwgQ1ZSZXR1cm4+IGNyZWF0ZUNWUGl4ZWxCdWZmZXIoSU9TdXJmYWNlUmVmIHN1cmZhY2Up
Cit7CisgICAgaWYgKCFzdXJmYWNlKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoa0NW
UmV0dXJuSW52YWxpZEFyZ3VtZW50KTsKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVy
ID0gbnVsbHB0cjsKKyAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGVXaXRoSU9T
dXJmYWNlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN1cmZhY2UsIHBpeGVsQnVmZmVyQ3JlYXRpb25P
cHRpb25zKHN1cmZhY2UpLCAmcGl4ZWxCdWZmZXIpOworICAgIGlmIChzdGF0dXMgIT0ga0NWUmV0
dXJuU3VjY2VzcyB8fCAhcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChzdGF0dXMpOworICAgIHJldHVybiBhZG9wdENGKHBpeGVsQnVmZmVyKTsKK30KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVC5oCmluZGV4IGE1MjU4OTUxMDJiYmE1ODI5Y2QzNzg0NDdiOTVhYjU3
NmM2YWYyZjYuLjRmMjI5ZGU2YWZmOWRmMWExZDQyZDc2MGUyNzA5OTA1Yzg4N2Y0MGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFn
ZVRyYW5zZmVyU2Vzc2lvblZULmgKQEAgLTU4LDE4ICs1OCwxMiBAQCBwdWJsaWM6CiAjZW5kaWYK
ICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIFdFQkNPUkVfRVhQT1JU
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlcihJT1N1cmZhY2VS
ZWYpOwotICAgIFdFQkNPUkVfRVhQT1JUIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVh
dGVQaXhlbEJ1ZmZlcihJT1N1cmZhY2VSZWYsIGNvbnN0IEludFNpemUmKTsKLSNlbmRpZgotCiAg
ICAgdWludDMyX3QgcGl4ZWxGb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsRm9ybWF0OyB9
CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVCh1aW50MzJfdCBwaXhlbEZvcm1hdCk7CiAKICNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpCi0gICAgQ0ZEaWN0aW9uYXJ5UmVmIGlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRp
b25zKElPU3VyZmFjZVJlZik7CiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVh
dGVDTVNhbXBsZUJ1ZmZlcihJT1N1cmZhY2VSZWYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IElu
dFNpemUmKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQppbmRleCBmMzE2OWFi
YzAyNzcwODJmMGNmY2U0NzI2NzllMTEwNzk3YzhjOWY2Li5jMGNhNWY2M2I4YTlhMmQ2NTNhYmEz
NDhhZTk5NDU0MjQ3NzM1NDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KQEAgLTI2LDYg
KzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5oIgogCisjaW1wb3J0ICJDVlV0aWxpdGllcy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250
ZXh0Q0cuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk1lZGlhU2FtcGxlQVZGT2Jq
Qy5oIgpAQCAtNDMsMTUgKzQ0LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMg
aW5saW5lIENGU3RyaW5nUmVmIGN2UGl4ZWxGb3JtYXRPcGVuR0xLZXkoKQotewotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICByZXR1cm4ga0NW
UGl4ZWxGb3JtYXRPcGVuR0xFU0NvbXBhdGliaWxpdHk7Ci0jZWxzZQotICAgIHJldHVybiBrQ1ZQ
aXhlbEJ1ZmZlck9wZW5HTENvbXBhdGliaWxpdHlLZXk7Ci0jZW5kaWYKLX0KLQogSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVCh1aW50MzJfdCBwaXhlbEZvcm1h
dCkKIHsKICAgICBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uUmVmIHRyYW5zZmVyU2Vzc2lvbjsKQEAg
LTg0LDI5ICs3NiwxMSBAQCBib29sIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OnNldFNpemUoY29u
c3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAgICBpZiAobV9zaXplID09IHNpemUgJiYgbV9vdXRwdXRC
dWZmZXJQb29sKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIE5TRGljdGlvbmFyeSogcGl4
ZWxCdWZmZXJPcHRpb25zID0gQHsKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4
ZWxCdWZmZXJXaWR0aEtleSA6IEAoc2l6ZS53aWR0aCgpKSwKLSAgICAgICAgKF9fYnJpZGdlIE5T
U3RyaW5nICopa0NWUGl4ZWxCdWZmZXJIZWlnaHRLZXkgOiBAKHNpemUuaGVpZ2h0KCkpLAotICAg
ICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtl
eSA6IEAobV9waXhlbEZvcm1hdCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWN2UGl4
ZWxGb3JtYXRPcGVuR0xLZXkoKSA6IEBZRVMsCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAq
KWtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7IC8qZW1wdHkgZGljdGlv
bmFyeSovIH0sCi0gICAgfTsKLQotICAgIE5TRGljdGlvbmFyeSogcGl4ZWxCdWZmZXJQb29sT3B0
aW9ucyA9IEB7Ci0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUG9v
bE1pbmltdW1CdWZmZXJDb3VudEtleTogQCg2KQotICAgIH07Ci0KLSAgICBDVlBpeGVsQnVmZmVy
UG9vbFJlZiBidWZmZXJQb29sOwotICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclBvb2xD
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhl
bEJ1ZmZlclBvb2xPcHRpb25zLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBpeGVsQnVmZmVy
T3B0aW9ucywgJmJ1ZmZlclBvb2wpOwotICAgIEFTU0VSVCghc3RhdHVzKTsKLSAgICBpZiAoc3Rh
dHVzICE9IGtDVlJldHVyblN1Y2Nlc3MpCisgICAgYXV0byBidWZmZXJQb29sID0gY3JlYXRlSU9T
dXJmYWNlQ1ZQaXhlbEJ1ZmZlclBvb2woc2l6ZSwgbV9waXhlbEZvcm1hdCwgNikudmFsdWVfb3Io
bnVsbHB0cik7CisgICAgaWYgKCFidWZmZXJQb29sKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBtX291dHB1dEJ1ZmZlclBvb2wgPSBhZG9wdENGKGJ1ZmZlclBvb2wpOworICAgIG1fb3V0
cHV0QnVmZmVyUG9vbCA9IFdURk1vdmUoYnVmZmVyUG9vbCk7CiAgICAgbV9zaXplID0gc2l6ZTsK
LSAgICBtX2lvU3VyZmFjZUJ1ZmZlckF0dHJpYnV0ZXMgPSBudWxscHRyOwotCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKQEAgLTExOCwyNiArOTIsMjAgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcihDVlBpeGVsQnUK
ICAgICBpZiAoIXNvdXJjZUJ1ZmZlciB8fCAhc2V0U2l6ZShzaXplKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICBDVlBpeGVsQnVmZmVyUmVmIG91dHB1dEJ1ZmZlciA9IG51bGxwdHI7
Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZVBpeGVsQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG1fb3V0cHV0QnVmZmVyUG9vbC5nZXQoKSwgJm91dHB1dEJ1ZmZl
cik7Ci0gICAgaWYgKHN0YXR1cykgewotICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlciwgQ1ZQaXhlbEJ1ZmZlclBvb2xD
cmVhdGVQaXhlbEJ1ZmZlciBmYWlsZWQgd2l0aCBlcnJvciAlZCIsIHN0YXRpY19jYXN0PGludD4o
c3RhdHVzKSk7CisgICAgYXV0byByZXN1bHQgPSBjcmVhdGVDVlBpeGVsQnVmZmVyRnJvbVBvb2wo
bV9vdXRwdXRCdWZmZXJQb29sLmdldCgpKTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICBS
RUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1
ZmZlciwgY3JlYXRlQ1ZQaXhlbEJ1ZmZlckZyb21Qb29sIGZhaWxlZCB3aXRoIGVycm9yICVkIiwg
c3RhdGljX2Nhc3Q8aW50PihyZXN1bHQuZXJyb3IoKSkpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9Ci0gICAgYXV0byByZXN1bHQgPSBhZG9wdENGKG91dHB1dEJ1ZmZlcik7CisgICAg
YXV0byBvdXRwdXRCdWZmZXIgPSBXVEZNb3ZlKCpyZXN1bHQpOwogCi0gICAgYXV0byBlcnIgPSBW
VFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJhbnNmZXJJbWFnZShtX3RyYW5zZmVyU2Vzc2lvbi5nZXQo
KSwgc291cmNlQnVmZmVyLCBvdXRwdXRCdWZmZXIpOworICAgIGF1dG8gZXJyID0gVlRQaXhlbFRy
YW5zZmVyU2Vzc2lvblRyYW5zZmVySW1hZ2UobV90cmFuc2ZlclNlc3Npb24uZ2V0KCksIHNvdXJj
ZUJ1ZmZlciwgb3V0cHV0QnVmZmVyLmdldCgpKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJF
TEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVm
ZmVyLCBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJhbnNmZXJJbWFnZSBmYWlsZWQgd2l0aCBlcnJv
ciAlZCIsIHN0YXRpY19jYXN0PGludD4oZXJyKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIAotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLVJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcihDTVNhbXBsZUJ1
ZmZlclJlZiBzb3VyY2VCdWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUpCi17Ci0gICAgcmV0dXJu
IGNvbnZlcnRQaXhlbEJ1ZmZlcihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291
cmNlQnVmZmVyKSwgc2l6ZSk7CisgICAgcmV0dXJuIG91dHB1dEJ1ZmZlcjsKIH0KIAogUmV0YWlu
UHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01T
YW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBjb25zdCBJbnRTaXpl
JiBzaXplKQpAQCAtMTU0LDcgKzEyMiw3IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4g
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAg
aWYgKCFzZXRTaXplKHNpemUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8g
Y29udmVydGVkUGl4ZWxCdWZmZXIgPSBjcmVhdGVQaXhlbEJ1ZmZlcihzb3VyY2VCdWZmZXIsIHNp
emUpOworICAgIGF1dG8gY29udmVydGVkUGl4ZWxCdWZmZXIgPSBjb252ZXJ0UGl4ZWxCdWZmZXIo
cGl4ZWxCdWZmZXIsIHNpemUpOwogICAgIGlmICghY29udmVydGVkUGl4ZWxCdWZmZXIpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCkBAIC0yNjYsODIgKzIzNCwxMSBAQCBSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZUNNU2FtcGxlQnVm
ZmVyKENHSW1hZwogCiAjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogCi0jaWYgUExBVEZPUk0o
TUFDKQotc3RhdGljIGludDMyX3Qgcm91bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKGludDMyX3Qg
c2l6ZSkKLXsKLSAgICByZXR1cm4gKHNpemUgKyAxNSkgJiB+MTU7Ci19Ci0jZW5kaWYKLQotQ0ZE
aWN0aW9uYXJ5UmVmIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmlvU3VyZmFjZVBpeGVsQnVmZmVy
Q3JlYXRpb25PcHRpb25zKElPU3VyZmFjZVJlZiBzdXJmYWNlKQotewotICAgIGlmIChtX2lvU3Vy
ZmFjZUJ1ZmZlckF0dHJpYnV0ZXMpCi0gICAgICAgIHJldHVybiBtX2lvU3VyZmFjZUJ1ZmZlckF0
dHJpYnV0ZXMuZ2V0KCk7Ci0KLSAgICBtX2lvU3VyZmFjZUJ1ZmZlckF0dHJpYnV0ZXMgPSAoX19i
cmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKSBAewotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilj
dlBpeGVsRm9ybWF0T3BlbkdMS2V5KCkgOiBAWUVTLAotICAgIH07Ci0KLSNpZiBQTEFURk9STShN
QUMpCi0gICAgYXV0byBmb3JtYXQgPSBJT1N1cmZhY2VHZXRQaXhlbEZvcm1hdChzdXJmYWNlKTsK
LSAgICBhdXRvIHdpZHRoID0gSU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFjZSk7Ci0gICAgYXV0byBo
ZWlnaHQgPSBJT1N1cmZhY2VHZXRIZWlnaHQoc3VyZmFjZSk7Ci0gICAgYXV0byBleHRlbmRlZFJp
Z2h0ID0gcm91bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKHdpZHRoKSAtIHdpZHRoOwotICAgIGF1
dG8gZXh0ZW5kZWRCb3R0b20gPSByb3VuZFVwVG9NYWNyb2Jsb2NrTXVsdGlwbGUoaGVpZ2h0KSAt
IGhlaWdodDsKLQotICAgIGlmICgoZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENi
Q3I4QmlQbGFuYXJWaWRlb1JhbmdlIHx8IGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIw
WXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlKQotICAgICAgICAmJiAoSU9TdXJmYWNlR2V0Qnl0ZXNQ
ZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApID49IHdpZHRoICsgZXh0ZW5kZWRSaWdodCkKLSAgICAg
ICAgJiYgKElPU3VyZmFjZUdldEJ5dGVzUGVyUm93T2ZQbGFuZShzdXJmYWNlLCAxKSA+PSB3aWR0
aCArIGV4dGVuZGVkUmlnaHQpCi0gICAgICAgICYmIChJT1N1cmZhY2VHZXRBbGxvY1NpemUoc3Vy
ZmFjZSkgPj0gKGhlaWdodCArIGV4dGVuZGVkQm90dG9tKSAqIElPU3VyZmFjZUdldEJ5dGVzUGVy
Um93T2ZQbGFuZShzdXJmYWNlLCAwKSAqIDMgLyAyKSkgewotICAgICAgICAgICAgbV9pb1N1cmZh
Y2VCdWZmZXJBdHRyaWJ1dGVzID0gKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZikgQHsKLSAgICAg
ICAgICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBh
dGliaWxpdHlLZXkgOiBAWUVTLAotICAgICAgICAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAq
KWtDVlBpeGVsQnVmZmVyRXh0ZW5kZWRQaXhlbHNSaWdodEtleSA6IEAoZXh0ZW5kZWRSaWdodCks
Ci0gICAgICAgICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJFeHRl
bmRlZFBpeGVsc0JvdHRvbUtleSA6IEAoZXh0ZW5kZWRCb3R0b20pCi0gICAgICAgICAgICB9Owot
ICAgIH0KLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHN1cmZhY2UpOwotI2VuZGlmCi0KLSAgICBy
ZXR1cm4gbV9pb1N1cmZhY2VCdWZmZXJBdHRyaWJ1dGVzLmdldCgpOwotfQotCi1SZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlUGl4ZWxCdWZm
ZXIoSU9TdXJmYWNlUmVmIHN1cmZhY2UpCi17Ci0gICAgaWYgKCFzdXJmYWNlKQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLQotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXI7Ci0gICAg
YXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyQ3JlYXRlV2l0aElPU3VyZmFjZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBzdXJmYWNlLCBpb1N1cmZhY2VQaXhlbEJ1ZmZlckNyZWF0aW9uT3B0aW9ucyhz
dXJmYWNlKSwgJnBpeGVsQnVmZmVyKTsKLSAgICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HKE1lZGlhLCAiQ1ZQaXhlbEJ1ZmZlckNyZWF0ZVdpdGhJT1N1cmZhY2UgZmFpbGVkIHdp
dGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxCdWZmZXIpOwot
fQotCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6
Y3JlYXRlUGl4ZWxCdWZmZXIoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIGNvbnN0IEludFNpemUmIHNp
emUpCitSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6
OmNyZWF0ZUNNU2FtcGxlQnVmZmVyKElPU3VyZmFjZVJlZiBzdXJmYWNlLCBjb25zdCBNZWRpYVRp
bWUmIHNhbXBsZVRpbWUsIGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAgICAgaWYgKCFzdXJmYWNl
IHx8ICFzZXRTaXplKHNpemUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXI7Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVy
Q3JlYXRlV2l0aElPU3VyZmFjZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzdXJmYWNlLCBpb1N1cmZh
Y2VQaXhlbEJ1ZmZlckNyZWF0aW9uT3B0aW9ucyhzdXJmYWNlKSwgJnBpeGVsQnVmZmVyKTsKLSAg
ICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiQ1ZQaXhlbEJ1ZmZl
ckNyZWF0ZVdpdGhJT1N1cmZhY2UgZmFpbGVkIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNf
Y2FzdDxpbnQ+KHN0YXR1cykpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAg
ICBhdXRvIHJldGFpbmVkQnVmZmVyID0gYWRvcHRDRihwaXhlbEJ1ZmZlcik7Ci0gICAgaWYgKG1f
c2l6ZSA9PSBJbnRTaXplKENWUGl4ZWxCdWZmZXJHZXRXaWR0aChwaXhlbEJ1ZmZlciksIENWUGl4
ZWxCdWZmZXJHZXRIZWlnaHQocGl4ZWxCdWZmZXIpKSAmJiBtX3BpeGVsRm9ybWF0ID09IENWUGl4
ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpKQotICAgICAgICByZXR1cm4g
cmV0YWluZWRCdWZmZXI7Ci0KLSAgICByZXR1cm4gY29udmVydFBpeGVsQnVmZmVyKHBpeGVsQnVm
ZmVyLCBzaXplKTsKLX0KLQotUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5z
ZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcihJT1N1cmZhY2VSZWYgc3VyZmFjZSwg
Y29uc3QgTWVkaWFUaW1lJiBzYW1wbGVUaW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQotewotICAg
IGF1dG8gcGl4ZWxCdWZmZXIgPSBjcmVhdGVQaXhlbEJ1ZmZlcihzdXJmYWNlLCBzaXplKTsKKyAg
ICBhdXRvIHBpeGVsQnVmZmVyID0gY3JlYXRlQ1ZQaXhlbEJ1ZmZlcihzdXJmYWNlKS52YWx1ZV9v
cihudWxscHRyKTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1t
CmluZGV4IDUyMWRlN2E5NzRlZWMyMGU5OTc0YzA4YWQzOWI2Y2VmN2MyMWY3ZTEuLjRhNDdkNDU2
M2RiYjUwNzBkMjE3YzE1NGQ5ZmFlNmZmZGY4NTU4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lm
IFVTRShMSUJXRUJSVEMpCiAKKyNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJMb2dn
aW5nLmgiCiAjaW1wb3J0ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKICNpbXBvcnQgIlJlYWx0aW1l
VmlkZW9VdGlsaXRpZXMuaCIKQEAgLTk4LDEwICs5OSwxMiBAQCBDVlBpeGVsQnVmZmVyUG9vbFJl
ZiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6cGl4ZWxCdWZmZXJQb29sKHNpemVf
dCB3aQogICAgICAgICBjYXNlIHdlYnJ0Yzo6QnVmZmVyVHlwZTo6STAxMDoKICAgICAgICAgICAg
IHBvb2xCdWZmZXJUeXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjEwQmlQbGFuYXJW
aWRlb1JhbmdlOwogICAgICAgICB9Ci0gICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sID0gY3JlYXRl
UGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQsIHBvb2xCdWZmZXJUeXBlKTsKLSAgICAgICAg
bV9waXhlbEJ1ZmZlclBvb2xXaWR0aCA9IHdpZHRoOwotICAgICAgICBtX3BpeGVsQnVmZmVyUG9v
bEhlaWdodCA9IGhlaWdodDsKLSAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xCdWZmZXJUeXBlID0g
YnVmZmVyVHlwZTsKKyAgICAgICAgaWYgKGF1dG8gcG9vbCA9IGNyZWF0ZUlPU3VyZmFjZUNWUGl4
ZWxCdWZmZXJQb29sKHsgc3RhdGljX2Nhc3Q8aW50Pih3aWR0aCksIHN0YXRpY19jYXN0PGludD4o
aGVpZ2h0KSB9LCBwb29sQnVmZmVyVHlwZSkpIHsKKyAgICAgICAgICAgIG1fcGl4ZWxCdWZmZXJQ
b29sID0gV1RGTW92ZSgqcG9vbCk7CisgICAgICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbFdpZHRo
ID0gd2lkdGg7CisgICAgICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbEhlaWdodCA9IGhlaWdodDsK
KyAgICAgICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sQnVmZmVyVHlwZSA9IGJ1ZmZlclR5cGU7Cisg
ICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIG1fcGl4ZWxCdWZmZXJQb29sLmdldCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lVmlkZW9VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgKaW5kZXggNWZiYWY1ZWRjNjQwMjYxNGVkYWZk
N2FlMTZkYWU4MGJiYjE3YTkwMi4uMzgwZDM3MzFiMGExNTNhYmI5YzIyNzBiZmVlNzY4MGYwM2Iz
YjhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oCkBAIC0yNyw5ICsyNyw2IEBA
CiAKICNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CiAKLXVzaW5nIENWUGl4ZWxCdWZm
ZXJQb29sUmVmID0gc3RydWN0IF9fQ1ZQaXhlbEJ1ZmZlclBvb2wqOwotdXNpbmcgQ1ZQaXhlbEJ1
ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dGF0aWMgaW5saW5lIE9TVHlwZSBwcmVmZXJlZFBpeGVsQnVmZmVyRm9ybWF0KCkKQEAgLTQxLDcg
KzM4LDQgQEAgc3RhdGljIGlubGluZSBPU1R5cGUgcHJlZmVyZWRQaXhlbEJ1ZmZlckZvcm1hdCgp
CiAjZW5kaWYKIH0KIAotV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29s
UmVmPiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBP
U1R5cGUpOwotV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0
ZVBpeGVsQnVmZmVyRnJvbVBvb2woQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYpOwotCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRl
b1V0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
NjJlYzI3NmI0ZjEzMWQ3MDAzZjNmMzIwZTA5NzQ2Y2Q0Y2VjYzI4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tCisrKyAvZGV2L251bGwKQEAg
LTEsNjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0Ogot
ICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgotICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAotICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSAqIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCi0gKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJS
ZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCi0KLSNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVm
PiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBPU1R5
cGUgdmlkZW9DYXB0dXJlRm9ybWF0KQotewotICAgIGF1dG8gcGl4ZWxBdHRyaWJ1dGVzID0gQHsK
LSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJXaWR0aEtleTogQCh3
aWR0aCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0
S2V5OiBAKGhlaWdodCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVm
ZmVyUGl4ZWxGb3JtYXRUeXBlS2V5OiBAKHZpZGVvQ2FwdHVyZUZvcm1hdCksCi0gICAgICAgIChf
X2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyQ0dJbWFnZUNvbXBhdGliaWxpdHlLZXk6
IEBOTywKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICAoX19icmlkZ2UgTlNTdHJp
bmcgKilrQ1ZQaXhlbEZvcm1hdE9wZW5HTEVTQ29tcGF0aWJpbGl0eSA6IEBZRVMsCi0jZWxzZQot
ICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBhdGli
aWxpdHlLZXkgOiBAWUVTLAotI2VuZGlmCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtD
VlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7IH0KLSAgICB9OwotCi0gICAg
Q1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcG9vbCA9IG51bGxwdHI7Ci0gICAgYXV0byBzdGF0dXMgPSBD
VlBpeGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCAoX19i
cmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBpeGVsQXR0cmlidXRlcywgJnBvb2wpOwotCi0gICAgaWYg
KHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQot
ICAgIHJldHVybiBhZG9wdENGKHBvb2wpOwotfQotCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4gY3JlYXRlUGl4ZWxCdWZmZXJGcm9tUG9vbChDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbEJ1
ZmZlclBvb2wpCi17Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IG51bGxwdHI7
Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZVBpeGVsQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyUG9vbCwgJnBpeGVsQnVmZmVyKTsKLQotICAg
IGlmIChzdGF0dXMgIT0ga0NWUmV0dXJuU3VjY2VzcykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxCdWZmZXIpOwotfQotCi19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2Uu
bW0KaW5kZXggZGUzYmI2YTcwNzY4ZGM4YWU1OGQwY2RlYmEwYTQ4MGFlOGJmYmVmNS4uY2E2NTBh
NTRlNDNlODJjOGU0MjRkZGMzY2JjODQ0NzJmODY0ODNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQpA
QCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNp
bXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1w
b3J0IDx3dGYvU29ydGVkQXJyYXlNYXAuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1By
b3h5LmgKaW5kZXggZDk4ZjcyY2E1MmExZjFjMWVmOGIyOWI4ZjcxMjI0MjM1YzgxOGY3YS4uZWVj
OGQ2NmZhYWJhZmI3OTliMGZkZWRjNDU5YzRkYjVhN2YyMmUzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaApAQCAt
MzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJSVENE
ZWNvZGVySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJUQ0VuY29kZXJJZGVudGlmaWVyLmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2suaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC05Myw3ICs5Miw2IEBAIHByaXZhdGU6CiAg
ICAgSGFzaE1hcDxSVENFbmNvZGVySWRlbnRpZmllciwgd2VicnRjOjpMb2NhbEVuY29kZXI+IG1f
ZW5jb2RlcnMgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spOyAvLyBPbmx5IG1vZGlmaWVkIG9u
IHRoZSBsaWJXZWJSVENDb2RlY3NRdWV1ZSBidXQgbWF5IGdldCBhY2Nlc3NlZCBmcm9tIHRoZSBt
YWluIHRocmVhZC4KIAogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7Ci0gICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNl
c3Npb247CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQppbmRleCBiMjMyNTgyNzQ0YzE1ODYwZTkyNTNl
YjNkYmU5MjQ0ZTkxOWU4NjFmLi4wYTNhNTlmODJkNWUxZTUzY2QwMTk4ZmRkYjhlMjk4ZTNmMzNi
ZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGli
V2ViUlRDQ29kZWNzUHJveHkubW0KQEAgLTMzLDYgKzMzLDggQEAKICNpbXBvcnQgIkxpYldlYlJU
Q0NvZGVjc01lc3NhZ2VzLmgiCiAjaW1wb3J0ICJMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2Vz
LmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbXBvcnQgPFdlYkNvcmUv
Q1ZVdGlsaXRpZXMuaD4KKwogI2ltcG9ydCA8V2ViQ29yZS9MaWJXZWJSVENQcm92aWRlci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2ltcG9ydCA8d2VicnRjL3Nk
ay9XZWJLaXQvV2ViS2l0RGVjb2Rlci5oPgpAQCAtMjA3LDExICsyMDksOCBAQCB2b2lkIExpYldl
YlJUQ0NvZGVjc1Byb3h5OjplbmNvZGVGcmFtZShSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlm
aWVyLCBXZWJDb3JlOgogICAgIGlmICghZW5jb2RlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBp
eGVsRm9ybWF0KCkgIT0gc2FtcGxlLnZpZGVvRm9ybWF0KCkpCi0gICAgICAgIG1faW1hZ2VUcmFu
c2ZlclNlc3Npb24gPSBXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUoc2Ft
cGxlLnZpZGVvRm9ybWF0KCkpOwotCiAjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIGF1
dG8gcGl4ZWxCdWZmZXIgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVQaXhlbEJ1ZmZl
cihzYW1wbGUuc3VyZmFjZSgpKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gV2ViQ29yZTo6Y3Jl
YXRlQ1ZQaXhlbEJ1ZmZlcihzYW1wbGUuc3VyZmFjZSgpKS52YWx1ZV9vcihudWxscHRyKTsKICAg
ICB3ZWJydGM6OmVuY29kZUxvY2FsRW5jb2RlckZyYW1lKGVuY29kZXIsIHBpeGVsQnVmZmVyLmdl
dCgpLCBzYW1wbGUudGltZSgpLnRvVGltZVNjYWxlKDEwMDAwMDApLnRpbWVWYWx1ZSgpLCB0aW1l
U3RhbXAsIHRvV2ViUlRDVmlkZW9Sb3RhdGlvbihzYW1wbGUucm90YXRpb24oKSksIHNob3VsZEVu
Y29kZUFzS2V5RnJhbWUpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAppbmRleCA5YWQ5NGQ2ODZl
NDM4MGI1YTEzYjk0NzcxMzNhODgyMjUxZGIwNDdjLi5lNGI1Y2UzOGYwYjAyZGJkZWQxMTg2YTEy
NjAyOGNmOTNiNDgzYzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKQEAgLTMzLDkgKzMzLDkgQEAKICNpbmNs
dWRlICJMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvQ1ZVdGlsaXRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ01hY3Jvcy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVlA5VXRpbGl0aWVzQ29jb2EuaD4KQEAgLTMzMiwx
NSArMzMyLDcgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZERlY29kaW5nKFJUQ0Rl
Y29kZXJJZGVudGlmaWVyIGRlY29kZXJJZGVudGlmaWVyLAogICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlZEltYWdlQ2FsbGJhY2spCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9
IHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKQotICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNz
aW9uID0gV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHJlbW90ZVNhbXBs
ZS52aWRlb0Zvcm1hdCgpKTsKLQotICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbikgewot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVQaXhl
bEJ1ZmZlcihyZW1vdGVTYW1wbGUuc3VyZmFjZSgpLCByZW1vdGVTYW1wbGUuc2l6ZSgpKTsKKyAg
ICBhdXRvIHBpeGVsQnVmZmVyID0gY3JlYXRlQ1ZQaXhlbEJ1ZmZlcihyZW1vdGVTYW1wbGUuc3Vy
ZmFjZSgpKS52YWx1ZV9vcihudWxscHRyKTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKSB7CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CkBAIC00NDQsNyArNDM2
LDcgQEAgaW50MzJfdCBMaWJXZWJSVENDb2RlY3M6OmVuY29kZUZyYW1lKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYKICAgICAgICAgaWYgKCFwaXhlbEJ1ZmZlclBv
b2wpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6Y3JlYXRlUGl4ZWxCdWZmZXJGcm9tUG9vbChwaXhlbEJ1ZmZlclBvb2wpLmxlYWtSZWYoKTsK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxCdWZmZXJGcm9tUG9vbChwaXhl
bEJ1ZmZlclBvb2wpLnZhbHVlX29yKG51bGxwdHIpLmxlYWtSZWYoKTsKICAgICB9KSk7CiAKICAg
ICBpZiAoIXBpeGVsQnVmZmVyKQpAQCAtNTAzLDkgKzQ5NSwxMSBAQCB2b2lkIExpYldlYlJUQ0Nv
ZGVjczo6Y29tcGxldGVkRW5jb2RpbmcoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwg
SVBDOjpEYQogQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgTGliV2ViUlRDQ29kZWNzOjpwaXhlbEJ1ZmZl
clBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBPU1R5cGUgdHlwZSkKIHsKICAgICBp
ZiAoIW1fcGl4ZWxCdWZmZXJQb29sIHx8IG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggIT0gd2lkdGgg
fHwgbV9waXhlbEJ1ZmZlclBvb2xIZWlnaHQgIT0gaGVpZ2h0KSB7Ci0gICAgICAgIG1fcGl4ZWxC
dWZmZXJQb29sID0gY3JlYXRlUGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQsIHR5cGUpOwot
ICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbFdpZHRoID0gd2lkdGg7Ci0gICAgICAgIG1fcGl4ZWxC
dWZmZXJQb29sSGVpZ2h0ID0gaGVpZ2h0OworICAgICAgICBpZiAoYXV0byBwb29sID0gV2ViQ29y
ZTo6Y3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZlclBvb2woeyBzdGF0aWNfY2FzdDxpbnQ+KHdp
ZHRoKSwgc3RhdGljX2Nhc3Q8aW50PihoZWlnaHQpIH0sIHR5cGUpIHsKKyAgICAgICAgICAgIG1f
cGl4ZWxCdWZmZXJQb29sID0gV1RGTW92ZSgqcG9vbCk7CisgICAgICAgICAgICBtX3BpeGVsQnVm
ZmVyUG9vbFdpZHRoID0gd2lkdGg7CisgICAgICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbEhlaWdo
dCA9IGhlaWdodDsKKyAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gbV9waXhlbEJ1ZmZlclBv
b2wuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjcy5oCmluZGV4IGViZTYyM2NiZDdiN2E4NWQyODllNmFjODJkMzE5
NWQ2YmUxMzVmYmMuLjQwODMzZTAzMGVmNWIwZWU4OTRkN2Y0NGJlOThjZDY3OTgxZjRhMmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJU
Q0NvZGVjcy5oCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
CiAjaW5jbHVkZSAiUlRDRGVjb2RlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSVENFbmNvZGVy
SWRlbnRpZmllci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oPgogI2luY2x1ZGUg
PG1hcD4KICNpbmNsdWRlIDx3ZWJydGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaD4KQEAg
LTE0OSw3ICsxNDgsNiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+PiBt
X3Rhc2tzVG9EaXNwYXRjaEFmdGVyRXN0YWJsaXNoaW5nQ29ubmVjdGlvbjsKIAogICAgIFJlZjxX
b3JrUXVldWU+IG1fcXVldWU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y+IG1fcGl4ZWxCdWZmZXJDb25mb3Jt
ZXI7CiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiBtX3BpeGVsQnVmZmVyUG9v
bDsKICAgICBzaXplX3QgbV9waXhlbEJ1ZmZlclBvb2xXaWR0aCB7IDAgfTsK
</data>
<flag name="commit-queue"
          id="461689"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438340</attachid>
            <date>2021-09-16 05:29:12 -0700</date>
            <delta_ts>2021-09-16 11:50:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230338-20210916152910.patch</filename>
            <type>text/plain</type>
            <size>42850</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRjNGU3ZmI1YjEyZGVl
YmViZmNiOTY4NDhjYzdhOWM4ZjA3ZDZkMi4uZGUyYjhkZTA1ODdkM2FiMWM2Mzc2M2MyMTA4N2M3
ZDEzZGMwOTgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIxLTA5LTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHV0aWxpdHkg
dG8gY3JlYXRlIENWUGl4ZWxCdWZmZXJzIGZyb20gSU9TdXJmYWNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMzM4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgZnVuY3Rpb25hbGl0eSBv
ZiBjcmVhdGluZyBDVlBpeGVsQnVmZmVycworICAgICAgICBmcm9tIElPU3VyZmFjZXMgZnJvbSBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUIHRvCisgICAgICAgIHN0YW5kYWxvbmUgZnVuY3Rpb25zIGlu
IG5ldyBoZWFkZXIgQ1ZVdGlsaXRpZXMuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IGRpZCBu
b3QgdXNlIGFueSBzdGF0ZSBvZgorICAgICAgICBJbWFnZVRyYW5zZmVyU2Vzc2lvblZULgorCisg
ICAgICAgIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1c2VmdWwgaW4gb3RoZXIgc2NlbmFyaW9zIHRv
by4KKworICAgICAgICBSZW1vdmUgaW5zdGFudGlhdGlvbnMgb2YgSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVCBmcm9tCisgICAgICAgIHRoZSBvbGQgY2FsbCBzaXRlcywgYXMgaXQgd2FzIG5ldmVyIHVz
ZWQgZm9yIGFueXRoaW5nCisgICAgICAgIGVsc2UgdGhhbiBjcmVhdGlvbiBvZiB0aGUgcGl4ZWwg
YnVmZmVyLgorCisgICAgICAgIE1vdmUgdGhlIHJlbGF0ZWQgQ1ZQaXhlbEJ1ZmZlclBvb2wgaW5z
dGFudGlhdGlvbgorICAgICAgICBmcm9tIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCB0byBDVlV0
aWxpdGllcy5oCisKKyAgICAgICAgUmVtb3ZlIHRoZSB1c2FnZSBvZiBrQ1ZQaXhlbEZvcm1hdE9w
ZW5HTEVTQ29tcGF0aWJpbGl0eQorICAgICAgICBmcm9tIHRoZSBDVlBpeGVsQnVmZmVyIGNyZWF0
aW9uIGNvZGUuIEl0IHdhcyBpbmNvcnJlY3QgcHJvcGVydHkKKyAgICAgICAgYWxsIGFsb25nLCBw
cm9wZXJ0eSBvZiBwaXhlbCBmb3JtYXRzIG5vdCBvZiBwaXhlbCBidWZmZXJzLiBUaGUKKyAgICAg
ICAgaW50ZW5kZWQgcHJvcGVydHkgd2FzIGtDVlBpeGVsQnVmZmVyT3BlbkdMRVNDb21wYXRpYmls
aXR5S2V5CisgICAgICAgIGJ1dCBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisgICAgICAgIFJl
dGFpbnMgdGhlIHVzYWdlIG9mIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSwg
dGhvdWdoCisgICAgICAgIGl0IGlzIGluY29ycmVjdCBhbmQgdW5uZWVkZWQgZm9yIHRoZSBjdXJy
ZW50IG9wZXJhdGlvbiB0b28uCisgICAgICAgIFNpbmNlIHRoZW9yZXRpY2FsbHkgdGhpcyBjb3Vs
ZCBhZmZlY3Qgc29tZXRoaW5nIG9uIE1hYywgdGhpcworICAgICAgICB3aWxsIGJlIHJlbW92ZWQg
aW4gYSBzZXBhcmF0ZSBmaXguCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhIHJlZmFjdG9yLgor
CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZlclBvb2wpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlQ1ZQaXhlbEJ1ZmZlckZyb21Qb29sKToKKyAgICAgICAgKFdlYkNvcmU6OnBpeGVs
QnVmZmVyQ3JlYXRpb25PcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxC
dWZmZXIpOgorICAgICAgICBUaGUgYWRkZWQgZnVuY3Rpb25zIHJldHVybiBFeHBlY3RlZDxvYmpl
Y3QsIHN0YXR1cz4gc2luY2UKKyAgICAgICAgc29tZSBvZiB0aGUgY2FsbGVycyB3YW50IHRvIGxv
ZyB0aGUgZmFpbHVyZSBzdGF0dXMgY29kZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjdlBpeGVsRm9ybWF0T3BlbkdMS2V5KTogRGVsZXRlZC4KKyAgICAgICAg
SW5jb3JyZWN0LCByZXBsYWNlZCB3aXRoIE1hYy1vbmx5IHVzZSBvZiBPcGVuR0xDb21wYXRpYmls
aXR5S2V5IGluCisgICAgICAgIENWVXRpbGl0aWVzLm1tLgorICAgICAgICAoV2ViQ29yZTo6cm91
bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKTogRGVsZXRlZC4KKyAgICAgICAgVXNlIHRoZSBzaW1p
bGFyIGZ1bmN0aW9uIGluIFdURi4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ6OmlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRpb25zKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYTo6cGl4ZWxCdWZmZXJQb29sKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oOgorICAgICAgICBQcmVzZXJ2ZWQsIHNpbmNl
IHByZWZlcmVkUGl4ZWxCdWZmZXJGb3JtYXQgbWVhbnMKKyAgICAgICAgInRoZSBwaXhlbCBidWZm
ZXIgZm9ybWF0IHRoYXQgaXMgcHJlZmVycmVkIGJ5IG1lZGlhIHN0cmVhbSBpbXBsZW1lbnRhdGlv
bnMiCisgICAgICAgIHdoaWNoIGRvZXMgbm90IGZpdCB0byBjYXRlZ29yeSBvZiAiQ29yZVZpZGVv
IFV0aWxpdGllcyIuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
VmlkZW9VdGlsaXRpZXMubW06IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tOgorICAgICAgICBGaXggdW5pZmllZCBidWlsZCBmYWls
dXJlIGR1ZSB0byBhIG1pc3NpbmcgaW5jbHVkZS4KKwogMjAyMS0wOS0xNiAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHN0ZDo6b3B0aW9uYWwgZm9yIHRy
dW5jYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZjRkZWUyZmU4OWIyMjFlNjBmYWI1MGZiYzlkMDg1OWZmNGU5
MWZlMy4uYmVkMTY2NWVkZDQwNmFhMGFlMjQxMWIyNjA0YTNkYjUwOWMzNjkyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNyBAQAorMjAyMS0wOS0xNiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCB1dGlsaXR5IHRvIGNyZWF0ZSBDVlBpeGVsQnVmZmVy
cyBmcm9tIElPU3VyZmFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMDMzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoZSBoZWxwZXIgZnVuY3Rpb24gbW92ZWQgZnJvbSBJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUCisgICAgICAgIHRvIGZyZWUgc3RhbmRhbG9uZSBmdW5jdGlvbi4gU3RvcCBpbnN0YW50
aWF0aW5nIHRoZQorICAgICAgICBvYmplY3QgYW5kIGp1c3QgY2FsbCB0aGUgZnVuY3Rpb24uCisK
KyAgICAgICAgSW4gYm90aCBvZiB0aGUgY2FzZXMsIHRoZSBwaXhlbCBidWZmZXIgaXMgY3JlYXRl
ZCBvdXQgb2YKKyAgICAgICAgdGhlIElPU3VyZmFjZSBhbmQgdGhlIHBvb2wgaXMgbm90IHVzZWQu
IEluIGJvdGggb2YgdGhlIGNhc2VzCisgICAgICAgIHRoZSBzaXplIGFuZCB0aGUgcGl4ZWwgZm9y
bWF0IG9mIHRoZSBpbWFnZSB0cmFuc2ZlciBzZXNzaW9uCisgICAgICAgIGlzIHRoZSBzYW1lIGFz
IHRoZSBpbnB1dCBJT1N1cmZhY2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6cGl4ZWxCdWZmZXJQb29sKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmg6CisKIDIw
MjEtMDktMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdW1dQRV0gdGVzdCBhbmltYXRpb25zL3N0ZXBzLXRyYW5zZm9ybS1yZW5kZXJp
bmctdXBkYXRlcy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDkwZGJl
MTJkOTdjYTAwNDY5NTYwNTJkOWFiNWJiY2I5NDAyOTI5ZGEuLmI4MDgyMGNjNjQ1NjVkMjFlOGMy
ZDg4MzFmZmFlNDYzOGUyMjA3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
TWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0zMzcs
NiArMzM3LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvcmV0ZXh0L0dseXBoUGFnZUNvcmVUZXh0LmNwcAogCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWQU5HTEUuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VS
b3RhdGlvblNlc3Npb25WVC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVy
Q29uZm9ybWVyQ1YuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBlZjIwYmVkMzYxNWJj
YTgxMTAyYTIyMDEwOTQ0MWE4ZTIxOTVlNzdkLi43OTM1MjJjZDA3ZjUyYTYyNThiMTY0NDYxZjEy
ODUwYjdkNzEzNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM5Miw2ICszOTIsNyBA
QCBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvR2x5cGhQYWdlQ29yZVRleHQuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9jdi9D
VlV0aWxpdGllcy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5jcHAKQEAgLTU0Miw3
ICs1NDMsNiBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYy5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjLm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlQ29jb2EuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCi1wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVWaWRlb1V0aWxpdGllcy5tbQogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJDb2NvYS5tbQogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9j
ay5jcHAKIHBsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggYzc1ODQzMDYxNzdkODY1YjQ5ZTE5YjdlMDM5ZGVkZjUwMGYxM2Q2ZC4uZDU2OTA0OGM5MGQ5
ZGZhM2EwYmExODJiMWU4N2QxZjU3NjhjZmJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM1Miw2ICsyMzUyLDcgQEAKIAkJ
N0I0NUFCNTUyNUZCQTlERTAwRkQyN0Y0IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
NDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0
aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QjczMTFGQjI1QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3
MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QjhF
RDVGMDI2RjBDMTNEMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCOEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBD
VlV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdCOTA0MTcwMjU1MDExNDIwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0JCMzRBMTcyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
QjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRpbGl0aWVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JC
MzRBNDgyNTM3NzZDQTAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjM0QTQ1
MjUzNzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc5NDgsNyAr
Nzk0OSw2IEBACiAJCTQxNTc0NzQ0MUUzODY5OUUwMEU5MTREOCAvKiBMaWJXZWJSVENQcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENQcm92aWRlci5o
OyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxNTdFQkY4MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTdF
QkY5MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE1ODY0OUYyM0JGN0I5
MzAwQTBBNjFFIC8qIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCNjI0RkZDRDFCMDBCOURBNDEgLyogUlRDSWNl
Q29tcG9uZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENJY2VDb21wb25lbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCODI0RkZDREMzMDBCOURBNDEg
LyogUlRDSWNlUHJvdG9jb2wuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ0ljZVByb3Rv
Y29sLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1OERDQjkyNEZGQ0RDMzAw
QjlEQTQxIC8qIFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTA2MDEsNiArMTA2MDEsOCBAQAogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyog
R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNj
b3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3Qjc3NEM2MjI1RkI5MzU1MDA5MTM5NUYgLyogR3JhcGhpY3NDb250
ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJN0I4RUQ1RUQyNkYwQzEyMzAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENWVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTdCOEVENUVGMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENWVXRpbGl0aWVzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjkwNDE2RTI1NTAxMTA5MDA2RUVCOEMgLyogUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGlsaXRp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xB
TkdMRVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkIzNEE0NTI1
Mzc3NkM2MDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzYzOCw3ICsxNzY0MCw2IEBACiAJCQkJNUNERDgzM0MxRTQz
MjRCQjAwNjIxQjgzIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmggKi8sCiAJ
CQkJNDE5MjQyNDcyMTI3QjdDQzAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZUNvY29hLm1tICovLAogCQkJCTQxRDE5MzhGMjE1MkM1NjEwMDZGMTRDQSAvKiBSZWFsdGltZVZp
ZGVvVXRpbGl0aWVzLmggKi8sCi0JCQkJNDE1ODY0OUYyM0JGN0I5MzAwQTBBNjFFIC8qIFJlYWx0
aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8sCiAJCQkJMDdENjM3M0UxQkIwQjExMzAwMjU2Q0U5IC8q
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oICovLAogCQkJCTA3RDYzNzNGMUJCMEIxMTMw
MDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0gKi8sCiAJCQkpOwpAQCAt
MjgzMDgsNiArMjgzMDksOCBAQAogCQlDRDlEODI3QzFDN0JCMkVEMDA2RkYwNjYgLyogY3YgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTdCOEVENUVEMjZG
MEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovLAorCQkJCTdCOEVENUVGMjZGMEMxMjMw
MDhBQzAyMyAvKiBDVlV0aWxpdGllcy5tbSAqLywKIAkJCQk3QjEwMzM5RDI1NDk3MjAxMDBDOEMx
QUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovLAogCQkJCTdCMTAzMzlBMjU0OTcyMDAwMEM4
QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuY3BwICovLAogCQkJCTdCMTAzMzlDMjU0
OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuaCAqLywKQEAgLTMxOTcx
LDYgKzMxOTc0LDcgQEAKIAkJCQk2MkNEMzI1QTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNUQyMzg1MjI3QTA2NTIwMDBCOUJEQSAvKiBDdXN0
b21IZWFkZXJGaWVsZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCMUUxM0U3MjE3OTBENjYwMDQy
Q0Y5OCAvKiBDdXN0b21QYWludENhbnZhcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0I4RUQ1RjAy
NkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENC
NDEzRTBFODYzM0ZEMDAzMkM0RjAgLyogRGFzaEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
N0JDNkEyMTE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3QkM2QTI0MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZUF1dGhvcml6ZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzMxMzIsNyArMzMxMzYsNiBAQAogCQkJCUJDNjkzMjc0MEQ3RTI5MzkwMEFF
NDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1MkZCQkJDMERF
MjdDQjYwMDAxRDM4NiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEwQkNGNTYyNkYwQ0Q4QzAwNDBCMTI0IC8qIFJUQ0xvY2FsU2Vzc2lv
bkRlc2NyaXB0aW9uSW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVFMEU5NDQxMTMzQzg5RjAw
QjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M0NUM5RDMxRTNG
Q0JENzAwQUFCNTU4IC8qIEpTRE9NV3JhcHBlckNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0E4MDYxRTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNDc0Miw2ICszNDc0NSw3IEBACiAJCQkJMDdBQjk5NkIxOERBM0MwMTAwMTg3NzFFIC8q
IFJUQ0ljZVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzNTkxMDgxRTdEREM3MzAwRjMw
NjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzNTkx
MDkxRTdEREM3MzAwRjMwNjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFN0YXRlLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTBCQ0Y1NjI2RjBDRDhDMDA0MEIxMjQgLyogUlRDTG9jYWxTZXNzaW9uRGVzY3Jp
cHRpb25Jbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUMxNEJDNjI2REU2REU4MDA2ODVCRjUg
LyogUlRDTmV0d29ya01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mzc5NEZFMTlGNTg2
NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzM3
OTRERTE5RUUyQzUyMDBFNUEwNDUgLyogUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NW
VXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxp
dGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJkMWZlMGU5Y2FmZTdkMGQ2MWFkMTRiNWIzMmFiZGFmMGZiODZi
MzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9DVlV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPENvcmVWaWRlby9Db3JlVmlkZW8uaD4KKyNpbmNsdWRlIDx1dGlsaXR5
PgorI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
KwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgPSBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVyUG9v
bCo7Cit1c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZmZXIqOworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKy8vIENyZWF0ZXMgQ1ZQaXhlbEJ1ZmZlclBvb2wgdGhhdCBjcmVh
dGVzIENWUGl4ZWxCdWZmZXJzIGJhY2tlZCBieSBJT1N1cmZhY2VzLgorLy8gVGhlc2UgYnVmZmVy
cyBjYW4gYmUgZm9yIGV4YW1wbGUgc2VudCB0aHJvdWdoIElQQy4KK1dFQkNPUkVfRVhQT1JUIEV4
cGVjdGVkPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4sIENWUmV0dXJuPiBjcmVhdGVJ
T1N1cmZhY2VDVlBpeGVsQnVmZmVyUG9vbChJbnRTaXplLCBPU1R5cGUgcGl4ZWxGb3JtYXQsIHVu
c2lnbmVkIG1pbmltdW1CdWZmZXJDb3VudCA9IDB1KTsKKworV0VCQ09SRV9FWFBPUlQgRXhwZWN0
ZWQ8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4gY3JlYXRlQ1ZQaXhlbEJ1
ZmZlckZyb21Qb29sKENWUGl4ZWxCdWZmZXJQb29sUmVmKTsKKworV0VCQ09SRV9FWFBPUlQgRXhw
ZWN0ZWQ8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4gY3JlYXRlQ1ZQaXhl
bEJ1ZmZlcihJT1N1cmZhY2VSZWYpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmMTI0MGM5NDRlYTEw
NmU1ZDExNDczODMxNjhiYzYzNDA3MmU5MGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQpAQCAtMCwwICsxLDExMSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQ1ZVdGlsaXRpZXMu
aCIKKworI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2ltcG9ydCAiQ29yZVZpZGVvU29m
dExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitFeHBlY3RlZDxSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclBvb2xSZWY+LCBDVlJldHVybj4gY3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZl
clBvb2woSW50U2l6ZSBzaXplLCBPU1R5cGUgZm9ybWF0LCB1bnNpZ25lZCBtaW5pbXVtQnVmZmVy
Q291bnQpCit7CisgICAgYXV0byBwaXhlbEF0dHJpYnV0ZXMgPSBAeworICAgICAgICAoX19icmlk
Z2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlcldpZHRoS2V5OiBAKHNpemUud2lkdGgoKSksCisg
ICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0S2V5OiBAKHNp
emUuaGVpZ2h0KCkpLAorICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZl
clBpeGVsRm9ybWF0VHlwZUtleTogQChmb3JtYXQpLAorICAgICAgICAoX19icmlkZ2UgTlNTdHJp
bmcgKilrQ1ZQaXhlbEJ1ZmZlckNHSW1hZ2VDb21wYXRpYmlsaXR5S2V5OiBATk8sCisjaWYgUExB
VEZPUk0oTUFDKQorICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9w
ZW5HTENvbXBhdGliaWxpdHlLZXkgOiBAWUVTLAorI2VuZGlmCisgICAgICAgIChfX2JyaWRnZSBO
U1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7IH0KKyAg
ICB9OworICAgIE5TRGljdGlvbmFyeSogcG9vbE9wdGlvbnMgPSBudWxscHRyOworICAgIGlmICht
aW5pbXVtQnVmZmVyQ291bnQpIHsKKyAgICAgICAgcG9vbE9wdGlvbnMgPSBAeworICAgICAgICAg
ICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQb29sTWluaW11bUJ1ZmZlckNv
dW50S2V5OiBAKG1pbmltdW1CdWZmZXJDb3VudCkKKyAgICAgICAgfTsKKyAgICB9CisgICAgQ1ZQ
aXhlbEJ1ZmZlclBvb2xSZWYgcG9vbCA9IG51bGxwdHI7CisgICAgYXV0byBzdGF0dXMgPSBDVlBp
eGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoX19icmlkZ2UgQ0ZEaWN0
aW9uYXJ5UmVmKSBwb29sT3B0aW9ucywgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhlbEF0
dHJpYnV0ZXMsICZwb29sKTsKKyAgICBpZiAoc3RhdHVzICE9IGtDVlJldHVyblN1Y2Nlc3MgfHwg
IXBvb2wpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChzdGF0dXMpOworICAgIHJldHVy
biBhZG9wdENGKHBvb2wpOworfQorCitFeHBlY3RlZDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4sIENWUmV0dXJuPiBjcmVhdGVDVlBpeGVsQnVmZmVyRnJvbVBvb2woQ1ZQaXhlbEJ1ZmZlclBv
b2xSZWYgcGl4ZWxCdWZmZXJQb29sKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIgPSBudWxscHRyOworICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGVQ
aXhlbEJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlclBvb2wsICZwaXhlbEJ1
ZmZlcik7CisgICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzIHx8ICFwaXhlbEJ1ZmZl
cikKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHN0YXR1cyk7CisgICAgcmV0dXJuIGFk
b3B0Q0YocGl4ZWxCdWZmZXIpOworfQorCitzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHBpeGVsQnVm
ZmVyQ3JlYXRpb25PcHRpb25zKElPU3VyZmFjZVJlZiBzdXJmYWNlKQoreworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICBhdXRvIGZvcm1hdCA9IElPU3VyZmFjZUdldFBpeGVsRm9ybWF0KHN1cmZhY2Up
OworICAgIGlmIChmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5h
clZpZGVvUmFuZ2UgfHwgZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQ
bGFuYXJGdWxsUmFuZ2UpIHsKKyAgICAgICAgY29uc3RleHByIHNpemVfdCBtYWNyb2Jsb2NrU2l6
ZSA9IDE2OworICAgICAgICBhdXRvIHdpZHRoID0gSU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFjZSk7
CisgICAgICAgIGF1dG8gaGVpZ2h0ID0gSU9TdXJmYWNlR2V0SGVpZ2h0KHN1cmZhY2UpOworICAg
ICAgICBhdXRvIGV4dGVuZGVkUmlnaHQgPSByb3VuZFVwVG9NdWx0aXBsZU9mKG1hY3JvYmxvY2tT
aXplLCB3aWR0aCkgLSB3aWR0aDsKKyAgICAgICAgYXV0byBleHRlbmRlZEJvdHRvbSA9IHJvdW5k
VXBUb011bHRpcGxlT2YobWFjcm9ibG9ja1NpemUsIGhlaWdodCkgLSBoZWlnaHQ7CisgICAgICAg
IGlmICgoSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApID49IHdpZHRo
ICsgZXh0ZW5kZWRSaWdodCkKKyAgICAgICAgICAgICYmIChJT1N1cmZhY2VHZXRCeXRlc1BlclJv
d09mUGxhbmUoc3VyZmFjZSwgMSkgPj0gd2lkdGggKyBleHRlbmRlZFJpZ2h0KQorICAgICAgICAg
ICAgJiYgKElPU3VyZmFjZUdldEFsbG9jU2l6ZShzdXJmYWNlKSA+PSAoaGVpZ2h0ICsgZXh0ZW5k
ZWRCb3R0b20pICogSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApICog
MyAvIDIpKSB7CisgICAgICAgICAgICByZXR1cm4gKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZikg
QHsKKyNpZiBQTEFURk9STShNQUMpCisgICAgICAgICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5n
ICopa0NWUGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5IDogQFlFUywKKyNlbmRpZgor
ICAgICAgICAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyRXh0ZW5k
ZWRQaXhlbHNSaWdodEtleSA6IEAoZXh0ZW5kZWRSaWdodCksCisgICAgICAgICAgICAgICAgKF9f
YnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJFeHRlbmRlZFBpeGVsc0JvdHRvbUtleSA6
IEAoZXh0ZW5kZWRCb3R0b20pCisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgfQorI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0oc3VyZmFjZSk7CisjZW5kaWYKKyAgICByZXR1cm4gKF9fYnJp
ZGdlIENGRGljdGlvbmFyeVJlZikgQHsKKyNpZiBQTEFURk9STShNQUMpCisgICAgICAgIChfX2Jy
aWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSA6IEBZ
RVMKKyNlbmRpZgorICAgIH07Cit9CisKK0V4cGVjdGVkPFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiwgQ1ZSZXR1cm4+IGNyZWF0ZUNWUGl4ZWxCdWZmZXIoSU9TdXJmYWNlUmVmIHN1cmZhY2Up
Cit7CisgICAgaWYgKCFzdXJmYWNlKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoa0NW
UmV0dXJuSW52YWxpZEFyZ3VtZW50KTsKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVy
ID0gbnVsbHB0cjsKKyAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGVXaXRoSU9T
dXJmYWNlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN1cmZhY2UsIHBpeGVsQnVmZmVyQ3JlYXRpb25P
cHRpb25zKHN1cmZhY2UpLCAmcGl4ZWxCdWZmZXIpOworICAgIGlmIChzdGF0dXMgIT0ga0NWUmV0
dXJuU3VjY2VzcyB8fCAhcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChzdGF0dXMpOworICAgIHJldHVybiBhZG9wdENGKHBpeGVsQnVmZmVyKTsKK30KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVC5oCmluZGV4IGE1MjU4OTUxMDJiYmE1ODI5Y2QzNzg0NDdiOTVhYjU3
NmM2YWYyZjYuLjRmMjI5ZGU2YWZmOWRmMWExZDQyZDc2MGUyNzA5OTA1Yzg4N2Y0MGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFn
ZVRyYW5zZmVyU2Vzc2lvblZULmgKQEAgLTU4LDE4ICs1OCwxMiBAQCBwdWJsaWM6CiAjZW5kaWYK
ICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIFdFQkNPUkVfRVhQT1JU
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlcihJT1N1cmZhY2VS
ZWYpOwotICAgIFdFQkNPUkVfRVhQT1JUIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVh
dGVQaXhlbEJ1ZmZlcihJT1N1cmZhY2VSZWYsIGNvbnN0IEludFNpemUmKTsKLSNlbmRpZgotCiAg
ICAgdWludDMyX3QgcGl4ZWxGb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsRm9ybWF0OyB9
CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVCh1aW50MzJfdCBwaXhlbEZvcm1hdCk7CiAKICNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpCi0gICAgQ0ZEaWN0aW9uYXJ5UmVmIGlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRp
b25zKElPU3VyZmFjZVJlZik7CiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVh
dGVDTVNhbXBsZUJ1ZmZlcihJT1N1cmZhY2VSZWYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IElu
dFNpemUmKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQppbmRleCBmMzE2OWFi
YzAyNzcwODJmMGNmY2U0NzI2NzllMTEwNzk3YzhjOWY2Li5jMGNhNWY2M2I4YTlhMmQ2NTNhYmEz
NDhhZTk5NDU0MjQ3NzM1NDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KQEAgLTI2LDYg
KzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5oIgogCisjaW1wb3J0ICJDVlV0aWxpdGllcy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250
ZXh0Q0cuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk1lZGlhU2FtcGxlQVZGT2Jq
Qy5oIgpAQCAtNDMsMTUgKzQ0LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMg
aW5saW5lIENGU3RyaW5nUmVmIGN2UGl4ZWxGb3JtYXRPcGVuR0xLZXkoKQotewotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICByZXR1cm4ga0NW
UGl4ZWxGb3JtYXRPcGVuR0xFU0NvbXBhdGliaWxpdHk7Ci0jZWxzZQotICAgIHJldHVybiBrQ1ZQ
aXhlbEJ1ZmZlck9wZW5HTENvbXBhdGliaWxpdHlLZXk7Ci0jZW5kaWYKLX0KLQogSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVCh1aW50MzJfdCBwaXhlbEZvcm1h
dCkKIHsKICAgICBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uUmVmIHRyYW5zZmVyU2Vzc2lvbjsKQEAg
LTg0LDI5ICs3NiwxMSBAQCBib29sIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OnNldFNpemUoY29u
c3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAgICBpZiAobV9zaXplID09IHNpemUgJiYgbV9vdXRwdXRC
dWZmZXJQb29sKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIE5TRGljdGlvbmFyeSogcGl4
ZWxCdWZmZXJPcHRpb25zID0gQHsKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4
ZWxCdWZmZXJXaWR0aEtleSA6IEAoc2l6ZS53aWR0aCgpKSwKLSAgICAgICAgKF9fYnJpZGdlIE5T
U3RyaW5nICopa0NWUGl4ZWxCdWZmZXJIZWlnaHRLZXkgOiBAKHNpemUuaGVpZ2h0KCkpLAotICAg
ICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtl
eSA6IEAobV9waXhlbEZvcm1hdCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWN2UGl4
ZWxGb3JtYXRPcGVuR0xLZXkoKSA6IEBZRVMsCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAq
KWtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7IC8qZW1wdHkgZGljdGlv
bmFyeSovIH0sCi0gICAgfTsKLQotICAgIE5TRGljdGlvbmFyeSogcGl4ZWxCdWZmZXJQb29sT3B0
aW9ucyA9IEB7Ci0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUG9v
bE1pbmltdW1CdWZmZXJDb3VudEtleTogQCg2KQotICAgIH07Ci0KLSAgICBDVlBpeGVsQnVmZmVy
UG9vbFJlZiBidWZmZXJQb29sOwotICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclBvb2xD
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhl
bEJ1ZmZlclBvb2xPcHRpb25zLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBpeGVsQnVmZmVy
T3B0aW9ucywgJmJ1ZmZlclBvb2wpOwotICAgIEFTU0VSVCghc3RhdHVzKTsKLSAgICBpZiAoc3Rh
dHVzICE9IGtDVlJldHVyblN1Y2Nlc3MpCisgICAgYXV0byBidWZmZXJQb29sID0gY3JlYXRlSU9T
dXJmYWNlQ1ZQaXhlbEJ1ZmZlclBvb2woc2l6ZSwgbV9waXhlbEZvcm1hdCwgNikudmFsdWVfb3Io
bnVsbHB0cik7CisgICAgaWYgKCFidWZmZXJQb29sKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBtX291dHB1dEJ1ZmZlclBvb2wgPSBhZG9wdENGKGJ1ZmZlclBvb2wpOworICAgIG1fb3V0
cHV0QnVmZmVyUG9vbCA9IFdURk1vdmUoYnVmZmVyUG9vbCk7CiAgICAgbV9zaXplID0gc2l6ZTsK
LSAgICBtX2lvU3VyZmFjZUJ1ZmZlckF0dHJpYnV0ZXMgPSBudWxscHRyOwotCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKQEAgLTExOCwyNiArOTIsMjAgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcihDVlBpeGVsQnUK
ICAgICBpZiAoIXNvdXJjZUJ1ZmZlciB8fCAhc2V0U2l6ZShzaXplKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICBDVlBpeGVsQnVmZmVyUmVmIG91dHB1dEJ1ZmZlciA9IG51bGxwdHI7
Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZVBpeGVsQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG1fb3V0cHV0QnVmZmVyUG9vbC5nZXQoKSwgJm91dHB1dEJ1ZmZl
cik7Ci0gICAgaWYgKHN0YXR1cykgewotICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlciwgQ1ZQaXhlbEJ1ZmZlclBvb2xD
cmVhdGVQaXhlbEJ1ZmZlciBmYWlsZWQgd2l0aCBlcnJvciAlZCIsIHN0YXRpY19jYXN0PGludD4o
c3RhdHVzKSk7CisgICAgYXV0byByZXN1bHQgPSBjcmVhdGVDVlBpeGVsQnVmZmVyRnJvbVBvb2wo
bV9vdXRwdXRCdWZmZXJQb29sLmdldCgpKTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICBS
RUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1
ZmZlciwgY3JlYXRlQ1ZQaXhlbEJ1ZmZlckZyb21Qb29sIGZhaWxlZCB3aXRoIGVycm9yICVkIiwg
c3RhdGljX2Nhc3Q8aW50PihyZXN1bHQuZXJyb3IoKSkpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9Ci0gICAgYXV0byByZXN1bHQgPSBhZG9wdENGKG91dHB1dEJ1ZmZlcik7CisgICAg
YXV0byBvdXRwdXRCdWZmZXIgPSBXVEZNb3ZlKCpyZXN1bHQpOwogCi0gICAgYXV0byBlcnIgPSBW
VFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJhbnNmZXJJbWFnZShtX3RyYW5zZmVyU2Vzc2lvbi5nZXQo
KSwgc291cmNlQnVmZmVyLCBvdXRwdXRCdWZmZXIpOworICAgIGF1dG8gZXJyID0gVlRQaXhlbFRy
YW5zZmVyU2Vzc2lvblRyYW5zZmVySW1hZ2UobV90cmFuc2ZlclNlc3Npb24uZ2V0KCksIHNvdXJj
ZUJ1ZmZlciwgb3V0cHV0QnVmZmVyLmdldCgpKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJF
TEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVm
ZmVyLCBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJhbnNmZXJJbWFnZSBmYWlsZWQgd2l0aCBlcnJv
ciAlZCIsIHN0YXRpY19jYXN0PGludD4oZXJyKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIAotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLVJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcihDTVNhbXBsZUJ1
ZmZlclJlZiBzb3VyY2VCdWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUpCi17Ci0gICAgcmV0dXJu
IGNvbnZlcnRQaXhlbEJ1ZmZlcihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291
cmNlQnVmZmVyKSwgc2l6ZSk7CisgICAgcmV0dXJuIG91dHB1dEJ1ZmZlcjsKIH0KIAogUmV0YWlu
UHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01T
YW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBjb25zdCBJbnRTaXpl
JiBzaXplKQpAQCAtMTU0LDcgKzEyMiw3IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4g
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAg
aWYgKCFzZXRTaXplKHNpemUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8g
Y29udmVydGVkUGl4ZWxCdWZmZXIgPSBjcmVhdGVQaXhlbEJ1ZmZlcihzb3VyY2VCdWZmZXIsIHNp
emUpOworICAgIGF1dG8gY29udmVydGVkUGl4ZWxCdWZmZXIgPSBjb252ZXJ0UGl4ZWxCdWZmZXIo
cGl4ZWxCdWZmZXIsIHNpemUpOwogICAgIGlmICghY29udmVydGVkUGl4ZWxCdWZmZXIpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCkBAIC0yNjYsODIgKzIzNCwxMSBAQCBSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZUNNU2FtcGxlQnVm
ZmVyKENHSW1hZwogCiAjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogCi0jaWYgUExBVEZPUk0o
TUFDKQotc3RhdGljIGludDMyX3Qgcm91bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKGludDMyX3Qg
c2l6ZSkKLXsKLSAgICByZXR1cm4gKHNpemUgKyAxNSkgJiB+MTU7Ci19Ci0jZW5kaWYKLQotQ0ZE
aWN0aW9uYXJ5UmVmIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmlvU3VyZmFjZVBpeGVsQnVmZmVy
Q3JlYXRpb25PcHRpb25zKElPU3VyZmFjZVJlZiBzdXJmYWNlKQotewotICAgIGlmIChtX2lvU3Vy
ZmFjZUJ1ZmZlckF0dHJpYnV0ZXMpCi0gICAgICAgIHJldHVybiBtX2lvU3VyZmFjZUJ1ZmZlckF0
dHJpYnV0ZXMuZ2V0KCk7Ci0KLSAgICBtX2lvU3VyZmFjZUJ1ZmZlckF0dHJpYnV0ZXMgPSAoX19i
cmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKSBAewotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilj
dlBpeGVsRm9ybWF0T3BlbkdMS2V5KCkgOiBAWUVTLAotICAgIH07Ci0KLSNpZiBQTEFURk9STShN
QUMpCi0gICAgYXV0byBmb3JtYXQgPSBJT1N1cmZhY2VHZXRQaXhlbEZvcm1hdChzdXJmYWNlKTsK
LSAgICBhdXRvIHdpZHRoID0gSU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFjZSk7Ci0gICAgYXV0byBo
ZWlnaHQgPSBJT1N1cmZhY2VHZXRIZWlnaHQoc3VyZmFjZSk7Ci0gICAgYXV0byBleHRlbmRlZFJp
Z2h0ID0gcm91bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKHdpZHRoKSAtIHdpZHRoOwotICAgIGF1
dG8gZXh0ZW5kZWRCb3R0b20gPSByb3VuZFVwVG9NYWNyb2Jsb2NrTXVsdGlwbGUoaGVpZ2h0KSAt
IGhlaWdodDsKLQotICAgIGlmICgoZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENi
Q3I4QmlQbGFuYXJWaWRlb1JhbmdlIHx8IGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIw
WXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlKQotICAgICAgICAmJiAoSU9TdXJmYWNlR2V0Qnl0ZXNQ
ZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApID49IHdpZHRoICsgZXh0ZW5kZWRSaWdodCkKLSAgICAg
ICAgJiYgKElPU3VyZmFjZUdldEJ5dGVzUGVyUm93T2ZQbGFuZShzdXJmYWNlLCAxKSA+PSB3aWR0
aCArIGV4dGVuZGVkUmlnaHQpCi0gICAgICAgICYmIChJT1N1cmZhY2VHZXRBbGxvY1NpemUoc3Vy
ZmFjZSkgPj0gKGhlaWdodCArIGV4dGVuZGVkQm90dG9tKSAqIElPU3VyZmFjZUdldEJ5dGVzUGVy
Um93T2ZQbGFuZShzdXJmYWNlLCAwKSAqIDMgLyAyKSkgewotICAgICAgICAgICAgbV9pb1N1cmZh
Y2VCdWZmZXJBdHRyaWJ1dGVzID0gKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZikgQHsKLSAgICAg
ICAgICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBh
dGliaWxpdHlLZXkgOiBAWUVTLAotICAgICAgICAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAq
KWtDVlBpeGVsQnVmZmVyRXh0ZW5kZWRQaXhlbHNSaWdodEtleSA6IEAoZXh0ZW5kZWRSaWdodCks
Ci0gICAgICAgICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJFeHRl
bmRlZFBpeGVsc0JvdHRvbUtleSA6IEAoZXh0ZW5kZWRCb3R0b20pCi0gICAgICAgICAgICB9Owot
ICAgIH0KLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHN1cmZhY2UpOwotI2VuZGlmCi0KLSAgICBy
ZXR1cm4gbV9pb1N1cmZhY2VCdWZmZXJBdHRyaWJ1dGVzLmdldCgpOwotfQotCi1SZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlUGl4ZWxCdWZm
ZXIoSU9TdXJmYWNlUmVmIHN1cmZhY2UpCi17Ci0gICAgaWYgKCFzdXJmYWNlKQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLQotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXI7Ci0gICAg
YXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyQ3JlYXRlV2l0aElPU3VyZmFjZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBzdXJmYWNlLCBpb1N1cmZhY2VQaXhlbEJ1ZmZlckNyZWF0aW9uT3B0aW9ucyhz
dXJmYWNlKSwgJnBpeGVsQnVmZmVyKTsKLSAgICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HKE1lZGlhLCAiQ1ZQaXhlbEJ1ZmZlckNyZWF0ZVdpdGhJT1N1cmZhY2UgZmFpbGVkIHdp
dGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxCdWZmZXIpOwot
fQotCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6
Y3JlYXRlUGl4ZWxCdWZmZXIoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIGNvbnN0IEludFNpemUmIHNp
emUpCitSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6
OmNyZWF0ZUNNU2FtcGxlQnVmZmVyKElPU3VyZmFjZVJlZiBzdXJmYWNlLCBjb25zdCBNZWRpYVRp
bWUmIHNhbXBsZVRpbWUsIGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAgICAgaWYgKCFzdXJmYWNl
IHx8ICFzZXRTaXplKHNpemUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXI7Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVy
Q3JlYXRlV2l0aElPU3VyZmFjZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzdXJmYWNlLCBpb1N1cmZh
Y2VQaXhlbEJ1ZmZlckNyZWF0aW9uT3B0aW9ucyhzdXJmYWNlKSwgJnBpeGVsQnVmZmVyKTsKLSAg
ICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiQ1ZQaXhlbEJ1ZmZl
ckNyZWF0ZVdpdGhJT1N1cmZhY2UgZmFpbGVkIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNf
Y2FzdDxpbnQ+KHN0YXR1cykpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAg
ICBhdXRvIHJldGFpbmVkQnVmZmVyID0gYWRvcHRDRihwaXhlbEJ1ZmZlcik7Ci0gICAgaWYgKG1f
c2l6ZSA9PSBJbnRTaXplKENWUGl4ZWxCdWZmZXJHZXRXaWR0aChwaXhlbEJ1ZmZlciksIENWUGl4
ZWxCdWZmZXJHZXRIZWlnaHQocGl4ZWxCdWZmZXIpKSAmJiBtX3BpeGVsRm9ybWF0ID09IENWUGl4
ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpKQotICAgICAgICByZXR1cm4g
cmV0YWluZWRCdWZmZXI7Ci0KLSAgICByZXR1cm4gY29udmVydFBpeGVsQnVmZmVyKHBpeGVsQnVm
ZmVyLCBzaXplKTsKLX0KLQotUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5z
ZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcihJT1N1cmZhY2VSZWYgc3VyZmFjZSwg
Y29uc3QgTWVkaWFUaW1lJiBzYW1wbGVUaW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQotewotICAg
IGF1dG8gcGl4ZWxCdWZmZXIgPSBjcmVhdGVQaXhlbEJ1ZmZlcihzdXJmYWNlLCBzaXplKTsKKyAg
ICBhdXRvIHBpeGVsQnVmZmVyID0gY3JlYXRlQ1ZQaXhlbEJ1ZmZlcihzdXJmYWNlKS52YWx1ZV9v
cihudWxscHRyKTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1t
CmluZGV4IDUyMWRlN2E5NzRlZWMyMGU5OTc0YzA4YWQzOWI2Y2VmN2MyMWY3ZTEuLjRhNDdkNDU2
M2RiYjUwNzBkMjE3YzE1NGQ5ZmFlNmZmZGY4NTU4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lm
IFVTRShMSUJXRUJSVEMpCiAKKyNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJMb2dn
aW5nLmgiCiAjaW1wb3J0ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKICNpbXBvcnQgIlJlYWx0aW1l
VmlkZW9VdGlsaXRpZXMuaCIKQEAgLTk4LDEwICs5OSwxMiBAQCBDVlBpeGVsQnVmZmVyUG9vbFJl
ZiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6cGl4ZWxCdWZmZXJQb29sKHNpemVf
dCB3aQogICAgICAgICBjYXNlIHdlYnJ0Yzo6QnVmZmVyVHlwZTo6STAxMDoKICAgICAgICAgICAg
IHBvb2xCdWZmZXJUeXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjEwQmlQbGFuYXJW
aWRlb1JhbmdlOwogICAgICAgICB9Ci0gICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sID0gY3JlYXRl
UGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQsIHBvb2xCdWZmZXJUeXBlKTsKLSAgICAgICAg
bV9waXhlbEJ1ZmZlclBvb2xXaWR0aCA9IHdpZHRoOwotICAgICAgICBtX3BpeGVsQnVmZmVyUG9v
bEhlaWdodCA9IGhlaWdodDsKLSAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xCdWZmZXJUeXBlID0g
YnVmZmVyVHlwZTsKKyAgICAgICAgaWYgKGF1dG8gcG9vbCA9IGNyZWF0ZUlPU3VyZmFjZUNWUGl4
ZWxCdWZmZXJQb29sKHsgc3RhdGljX2Nhc3Q8aW50Pih3aWR0aCksIHN0YXRpY19jYXN0PGludD4o
aGVpZ2h0KSB9LCBwb29sQnVmZmVyVHlwZSkpIHsKKyAgICAgICAgICAgIG1fcGl4ZWxCdWZmZXJQ
b29sID0gV1RGTW92ZSgqcG9vbCk7CisgICAgICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbFdpZHRo
ID0gd2lkdGg7CisgICAgICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbEhlaWdodCA9IGhlaWdodDsK
KyAgICAgICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sQnVmZmVyVHlwZSA9IGJ1ZmZlclR5cGU7Cisg
ICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIG1fcGl4ZWxCdWZmZXJQb29sLmdldCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lVmlkZW9VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgKaW5kZXggNWZiYWY1ZWRjNjQwMjYxNGVkYWZk
N2FlMTZkYWU4MGJiYjE3YTkwMi4uMzgwZDM3MzFiMGExNTNhYmI5YzIyNzBiZmVlNzY4MGYwM2Iz
YjhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oCkBAIC0yNyw5ICsyNyw2IEBA
CiAKICNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CiAKLXVzaW5nIENWUGl4ZWxCdWZm
ZXJQb29sUmVmID0gc3RydWN0IF9fQ1ZQaXhlbEJ1ZmZlclBvb2wqOwotdXNpbmcgQ1ZQaXhlbEJ1
ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dGF0aWMgaW5saW5lIE9TVHlwZSBwcmVmZXJlZFBpeGVsQnVmZmVyRm9ybWF0KCkKQEAgLTQxLDcg
KzM4LDQgQEAgc3RhdGljIGlubGluZSBPU1R5cGUgcHJlZmVyZWRQaXhlbEJ1ZmZlckZvcm1hdCgp
CiAjZW5kaWYKIH0KIAotV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29s
UmVmPiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBP
U1R5cGUpOwotV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0
ZVBpeGVsQnVmZmVyRnJvbVBvb2woQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYpOwotCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRl
b1V0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
NjJlYzI3NmI0ZjEzMWQ3MDAzZjNmMzIwZTA5NzQ2Y2Q0Y2VjYzI4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tCisrKyAvZGV2L251bGwKQEAg
LTEsNjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0Ogot
ICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgotICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAotICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSAqIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCi0gKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJS
ZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCi0KLSNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVm
PiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBPU1R5
cGUgdmlkZW9DYXB0dXJlRm9ybWF0KQotewotICAgIGF1dG8gcGl4ZWxBdHRyaWJ1dGVzID0gQHsK
LSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJXaWR0aEtleTogQCh3
aWR0aCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0
S2V5OiBAKGhlaWdodCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVm
ZmVyUGl4ZWxGb3JtYXRUeXBlS2V5OiBAKHZpZGVvQ2FwdHVyZUZvcm1hdCksCi0gICAgICAgIChf
X2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyQ0dJbWFnZUNvbXBhdGliaWxpdHlLZXk6
IEBOTywKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICAoX19icmlkZ2UgTlNTdHJp
bmcgKilrQ1ZQaXhlbEZvcm1hdE9wZW5HTEVTQ29tcGF0aWJpbGl0eSA6IEBZRVMsCi0jZWxzZQot
ICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBhdGli
aWxpdHlLZXkgOiBAWUVTLAotI2VuZGlmCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtD
VlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7IH0KLSAgICB9OwotCi0gICAg
Q1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcG9vbCA9IG51bGxwdHI7Ci0gICAgYXV0byBzdGF0dXMgPSBD
VlBpeGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCAoX19i
cmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBpeGVsQXR0cmlidXRlcywgJnBvb2wpOwotCi0gICAgaWYg
KHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQot
ICAgIHJldHVybiBhZG9wdENGKHBvb2wpOwotfQotCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4gY3JlYXRlUGl4ZWxCdWZmZXJGcm9tUG9vbChDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbEJ1
ZmZlclBvb2wpCi17Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IG51bGxwdHI7
Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZVBpeGVsQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyUG9vbCwgJnBpeGVsQnVmZmVyKTsKLQotICAg
IGlmIChzdGF0dXMgIT0ga0NWUmV0dXJuU3VjY2VzcykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxCdWZmZXIpOwotfQotCi19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2Uu
bW0KaW5kZXggZGUzYmI2YTcwNzY4ZGM4YWU1OGQwY2RlYmEwYTQ4MGFlOGJmYmVmNS4uY2E2NTBh
NTRlNDNlODJjOGU0MjRkZGMzY2JjODQ0NzJmODY0ODNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQpA
QCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNp
bXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1w
b3J0IDx3dGYvU29ydGVkQXJyYXlNYXAuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1By
b3h5LmgKaW5kZXggZDk4ZjcyY2E1MmExZjFjMWVmOGIyOWI4ZjcxMjI0MjM1YzgxOGY3YS4uZWVj
OGQ2NmZhYWJhZmI3OTliMGZkZWRjNDU5YzRkYjVhN2YyMmUzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaApAQCAt
MzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJSVENE
ZWNvZGVySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJUQ0VuY29kZXJJZGVudGlmaWVyLmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2suaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC05Myw3ICs5Miw2IEBAIHByaXZhdGU6CiAg
ICAgSGFzaE1hcDxSVENFbmNvZGVySWRlbnRpZmllciwgd2VicnRjOjpMb2NhbEVuY29kZXI+IG1f
ZW5jb2RlcnMgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spOyAvLyBPbmx5IG1vZGlmaWVkIG9u
IHRoZSBsaWJXZWJSVENDb2RlY3NRdWV1ZSBidXQgbWF5IGdldCBhY2Nlc3NlZCBmcm9tIHRoZSBt
YWluIHRocmVhZC4KIAogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7Ci0gICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNl
c3Npb247CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQppbmRleCBiMjMyNTgyNzQ0YzE1ODYwZTkyNTNl
YjNkYmU5MjQ0ZTkxOWU4NjFmLi4wMzI2ZWJkMDg4NDU4YTFhNzJiYWViNGE4MjQyMTZjNjc0NDVk
MDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGli
V2ViUlRDQ29kZWNzUHJveHkubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIkxpYldlYlJU
Q0NvZGVjc01lc3NhZ2VzLmgiCiAjaW1wb3J0ICJMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2Vz
LmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbXBvcnQgPFdlYkNvcmUv
Q1ZVdGlsaXRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvTGliV2ViUlRDUHJvdmlkZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KICNpbXBvcnQgPHdlYnJ0Yy9zZGsv
V2ViS2l0L1dlYktpdERlY29kZXIuaD4KQEAgLTIwNywxMSArMjA4LDggQEAgdm9pZCBMaWJXZWJS
VENDb2RlY3NQcm94eTo6ZW5jb2RlRnJhbWUoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmll
ciwgV2ViQ29yZToKICAgICBpZiAoIWVuY29kZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlm
ICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhl
bEZvcm1hdCgpICE9IHNhbXBsZS52aWRlb0Zvcm1hdCgpKQotICAgICAgICBtX2ltYWdlVHJhbnNm
ZXJTZXNzaW9uID0gV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHNhbXBs
ZS52aWRlb0Zvcm1hdCgpKTsKLQogI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICBhdXRv
IHBpeGVsQnVmZmVyID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlUGl4ZWxCdWZmZXIo
c2FtcGxlLnN1cmZhY2UoKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IFdlYkNvcmU6OmNyZWF0
ZUNWUGl4ZWxCdWZmZXIoc2FtcGxlLnN1cmZhY2UoKSkudmFsdWVfb3IobnVsbHB0cik7CiAgICAg
d2VicnRjOjplbmNvZGVMb2NhbEVuY29kZXJGcmFtZShlbmNvZGVyLCBwaXhlbEJ1ZmZlci5nZXQo
KSwgc2FtcGxlLnRpbWUoKS50b1RpbWVTY2FsZSgxMDAwMDAwKS50aW1lVmFsdWUoKSwgdGltZVN0
YW1wLCB0b1dlYlJUQ1ZpZGVvUm90YXRpb24oc2FtcGxlLnJvdGF0aW9uKCkpLCBzaG91bGRFbmNv
ZGVBc0tleUZyYW1lKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggOWFkOTRkNjg2ZTQz
ODBiNWExM2I5NDc3MTMzYTg4MjI1MWRiMDQ3Yy4uZTRiNWNlMzhmMGIwMmRiZGVkMTE4NmExMjYw
MjhjZjkzYjQ4M2M5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0zMyw5ICszMyw5IEBACiAjaW5jbHVk
ZSAiTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0NWVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENNYWNyb3MuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVt
b3RlVmlkZW9TYW1wbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZQOVV0aWxpdGllc0NvY29hLmg+CkBAIC0zMzIsMTUg
KzMzMiw3IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNvZGluZyhSVENEZWNv
ZGVySWRlbnRpZmllciBkZWNvZGVySWRlbnRpZmllciwKICAgICBpZiAoIWRlY29kZXItPmRlY29k
ZWRJbWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIW1faW1hZ2VUcmFu
c2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSBy
ZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKLSAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
biA9IFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUu
dmlkZW9Gb3JtYXQoKSk7Ci0KLSAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBhdXRvIHBpeGVsQnVmZmVyID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlUGl4ZWxC
dWZmZXIocmVtb3RlU2FtcGxlLnN1cmZhY2UoKSwgcmVtb3RlU2FtcGxlLnNpemUoKSk7CisgICAg
YXV0byBwaXhlbEJ1ZmZlciA9IGNyZWF0ZUNWUGl4ZWxCdWZmZXIocmVtb3RlU2FtcGxlLnN1cmZh
Y2UoKSkudmFsdWVfb3IobnVsbHB0cik7CiAgICAgaWYgKCFwaXhlbEJ1ZmZlcikgewogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDQ0LDcgKzQzNiw3
IEBAIGludDMyX3QgTGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFtZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmCiAgICAgICAgIGlmICghcGl4ZWxCdWZmZXJQb29s
KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OmNyZWF0ZVBpeGVsQnVmZmVyRnJvbVBvb2wocGl4ZWxCdWZmZXJQb29sKS5sZWFrUmVmKCk7Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpjcmVhdGVDVlBpeGVsQnVmZmVyRnJvbVBvb2wocGl4ZWxC
dWZmZXJQb29sKS52YWx1ZV9vcihudWxscHRyKS5sZWFrUmVmKCk7CiAgICAgfSkpOwogCiAgICAg
aWYgKCFwaXhlbEJ1ZmZlcikKQEAgLTUwMyw5ICs0OTUsMTEgQEAgdm9pZCBMaWJXZWJSVENDb2Rl
Y3M6OmNvbXBsZXRlZEVuY29kaW5nKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQ
Qzo6RGEKIENWUGl4ZWxCdWZmZXJQb29sUmVmIExpYldlYlJUQ0NvZGVjczo6cGl4ZWxCdWZmZXJQ
b29sKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgT1NUeXBlIHR5cGUpCiB7CiAgICAgaWYg
KCFtX3BpeGVsQnVmZmVyUG9vbCB8fCBtX3BpeGVsQnVmZmVyUG9vbFdpZHRoICE9IHdpZHRoIHx8
IG1fcGl4ZWxCdWZmZXJQb29sSGVpZ2h0ICE9IGhlaWdodCkgewotICAgICAgICBtX3BpeGVsQnVm
ZmVyUG9vbCA9IGNyZWF0ZVBpeGVsQnVmZmVyUG9vbCh3aWR0aCwgaGVpZ2h0LCB0eXBlKTsKLSAg
ICAgICAgbV9waXhlbEJ1ZmZlclBvb2xXaWR0aCA9IHdpZHRoOwotICAgICAgICBtX3BpeGVsQnVm
ZmVyUG9vbEhlaWdodCA9IGhlaWdodDsKKyAgICAgICAgaWYgKGF1dG8gcG9vbCA9IFdlYkNvcmU6
OmNyZWF0ZUlPU3VyZmFjZUNWUGl4ZWxCdWZmZXJQb29sKHsgc3RhdGljX2Nhc3Q8aW50Pih3aWR0
aCksIHN0YXRpY19jYXN0PGludD4oaGVpZ2h0KSB9LCB0eXBlKSB7CisgICAgICAgICAgICBtX3Bp
eGVsQnVmZmVyUG9vbCA9IFdURk1vdmUoKnBvb2wpOworICAgICAgICAgICAgbV9waXhlbEJ1ZmZl
clBvb2xXaWR0aCA9IHdpZHRoOworICAgICAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xIZWlnaHQg
PSBoZWlnaHQ7CisgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIG1fcGl4ZWxCdWZmZXJQb29s
LmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuaAppbmRleCBlYmU2MjNjYmQ3YjdhODVkMjg5ZTZhYzgyZDMxOTVk
NmJlMTM1ZmJjLi40MDgzM2UwMzBlZjViMGVlODk0ZDdmNDRiZTk4Y2Q2Nzk4MWY0YTJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3MuaApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgIlJUQ0RlY29kZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUlRDRW5jb2Rlcklk
ZW50aWZpZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaD4KICNpbmNsdWRlIDxt
YXA+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBlLmg+CkBAIC0x
NDksNyArMTQ4LDYgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPj4gbV90
YXNrc1RvRGlzcGF0Y2hBZnRlckVzdGFibGlzaGluZ0Nvbm5lY3Rpb247CiAKICAgICBSZWY8V29y
a1F1ZXVlPiBtX3F1ZXVlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRyYW5z
ZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWPiBtX3BpeGVsQnVmZmVyQ29uZm9ybWVy
OwogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4gbV9waXhlbEJ1ZmZlclBvb2w7
CiAgICAgc2l6ZV90IG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggeyAwIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438378</attachid>
            <date>2021-09-16 11:50:53 -0700</date>
            <delta_ts>2021-09-16 12:14:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230338-20210916215051.patch</filename>
            <type>text/plain</type>
            <size>42850</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRjNGU3ZmI1YjEyZGVl
YmViZmNiOTY4NDhjYzdhOWM4ZjA3ZDZkMi4uZGUyYjhkZTA1ODdkM2FiMWM2Mzc2M2MyMTA4N2M3
ZDEzZGMwOTgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIxLTA5LTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHV0aWxpdHkg
dG8gY3JlYXRlIENWUGl4ZWxCdWZmZXJzIGZyb20gSU9TdXJmYWNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMzM4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgZnVuY3Rpb25hbGl0eSBv
ZiBjcmVhdGluZyBDVlBpeGVsQnVmZmVycworICAgICAgICBmcm9tIElPU3VyZmFjZXMgZnJvbSBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUIHRvCisgICAgICAgIHN0YW5kYWxvbmUgZnVuY3Rpb25zIGlu
IG5ldyBoZWFkZXIgQ1ZVdGlsaXRpZXMuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IGRpZCBu
b3QgdXNlIGFueSBzdGF0ZSBvZgorICAgICAgICBJbWFnZVRyYW5zZmVyU2Vzc2lvblZULgorCisg
ICAgICAgIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1c2VmdWwgaW4gb3RoZXIgc2NlbmFyaW9zIHRv
by4KKworICAgICAgICBSZW1vdmUgaW5zdGFudGlhdGlvbnMgb2YgSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVCBmcm9tCisgICAgICAgIHRoZSBvbGQgY2FsbCBzaXRlcywgYXMgaXQgd2FzIG5ldmVyIHVz
ZWQgZm9yIGFueXRoaW5nCisgICAgICAgIGVsc2UgdGhhbiBjcmVhdGlvbiBvZiB0aGUgcGl4ZWwg
YnVmZmVyLgorCisgICAgICAgIE1vdmUgdGhlIHJlbGF0ZWQgQ1ZQaXhlbEJ1ZmZlclBvb2wgaW5z
dGFudGlhdGlvbgorICAgICAgICBmcm9tIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCB0byBDVlV0
aWxpdGllcy5oCisKKyAgICAgICAgUmVtb3ZlIHRoZSB1c2FnZSBvZiBrQ1ZQaXhlbEZvcm1hdE9w
ZW5HTEVTQ29tcGF0aWJpbGl0eQorICAgICAgICBmcm9tIHRoZSBDVlBpeGVsQnVmZmVyIGNyZWF0
aW9uIGNvZGUuIEl0IHdhcyBpbmNvcnJlY3QgcHJvcGVydHkKKyAgICAgICAgYWxsIGFsb25nLCBw
cm9wZXJ0eSBvZiBwaXhlbCBmb3JtYXRzIG5vdCBvZiBwaXhlbCBidWZmZXJzLiBUaGUKKyAgICAg
ICAgaW50ZW5kZWQgcHJvcGVydHkgd2FzIGtDVlBpeGVsQnVmZmVyT3BlbkdMRVNDb21wYXRpYmls
aXR5S2V5CisgICAgICAgIGJ1dCBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisgICAgICAgIFJl
dGFpbnMgdGhlIHVzYWdlIG9mIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSwg
dGhvdWdoCisgICAgICAgIGl0IGlzIGluY29ycmVjdCBhbmQgdW5uZWVkZWQgZm9yIHRoZSBjdXJy
ZW50IG9wZXJhdGlvbiB0b28uCisgICAgICAgIFNpbmNlIHRoZW9yZXRpY2FsbHkgdGhpcyBjb3Vs
ZCBhZmZlY3Qgc29tZXRoaW5nIG9uIE1hYywgdGhpcworICAgICAgICB3aWxsIGJlIHJlbW92ZWQg
aW4gYSBzZXBhcmF0ZSBmaXguCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhIHJlZmFjdG9yLgor
CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZlclBvb2wpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlQ1ZQaXhlbEJ1ZmZlckZyb21Qb29sKToKKyAgICAgICAgKFdlYkNvcmU6OnBpeGVs
QnVmZmVyQ3JlYXRpb25PcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxC
dWZmZXIpOgorICAgICAgICBUaGUgYWRkZWQgZnVuY3Rpb25zIHJldHVybiBFeHBlY3RlZDxvYmpl
Y3QsIHN0YXR1cz4gc2luY2UKKyAgICAgICAgc29tZSBvZiB0aGUgY2FsbGVycyB3YW50IHRvIGxv
ZyB0aGUgZmFpbHVyZSBzdGF0dXMgY29kZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjdlBpeGVsRm9ybWF0T3BlbkdMS2V5KTogRGVsZXRlZC4KKyAgICAgICAg
SW5jb3JyZWN0LCByZXBsYWNlZCB3aXRoIE1hYy1vbmx5IHVzZSBvZiBPcGVuR0xDb21wYXRpYmls
aXR5S2V5IGluCisgICAgICAgIENWVXRpbGl0aWVzLm1tLgorICAgICAgICAoV2ViQ29yZTo6cm91
bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKTogRGVsZXRlZC4KKyAgICAgICAgVXNlIHRoZSBzaW1p
bGFyIGZ1bmN0aW9uIGluIFdURi4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ6OmlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRpb25zKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYTo6cGl4ZWxCdWZmZXJQb29sKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oOgorICAgICAgICBQcmVzZXJ2ZWQsIHNpbmNl
IHByZWZlcmVkUGl4ZWxCdWZmZXJGb3JtYXQgbWVhbnMKKyAgICAgICAgInRoZSBwaXhlbCBidWZm
ZXIgZm9ybWF0IHRoYXQgaXMgcHJlZmVycmVkIGJ5IG1lZGlhIHN0cmVhbSBpbXBsZW1lbnRhdGlv
bnMiCisgICAgICAgIHdoaWNoIGRvZXMgbm90IGZpdCB0byBjYXRlZ29yeSBvZiAiQ29yZVZpZGVv
IFV0aWxpdGllcyIuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
VmlkZW9VdGlsaXRpZXMubW06IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tOgorICAgICAgICBGaXggdW5pZmllZCBidWlsZCBmYWls
dXJlIGR1ZSB0byBhIG1pc3NpbmcgaW5jbHVkZS4KKwogMjAyMS0wOS0xNiAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHN0ZDo6b3B0aW9uYWwgZm9yIHRy
dW5jYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZjRkZWUyZmU4OWIyMjFlNjBmYWI1MGZiYzlkMDg1OWZmNGU5
MWZlMy4uYmVkMTY2NWVkZDQwNmFhMGFlMjQxMWIyNjA0YTNkYjUwOWMzNjkyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNyBAQAorMjAyMS0wOS0xNiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCB1dGlsaXR5IHRvIGNyZWF0ZSBDVlBpeGVsQnVmZmVy
cyBmcm9tIElPU3VyZmFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMDMzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoZSBoZWxwZXIgZnVuY3Rpb24gbW92ZWQgZnJvbSBJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUCisgICAgICAgIHRvIGZyZWUgc3RhbmRhbG9uZSBmdW5jdGlvbi4gU3RvcCBpbnN0YW50
aWF0aW5nIHRoZQorICAgICAgICBvYmplY3QgYW5kIGp1c3QgY2FsbCB0aGUgZnVuY3Rpb24uCisK
KyAgICAgICAgSW4gYm90aCBvZiB0aGUgY2FzZXMsIHRoZSBwaXhlbCBidWZmZXIgaXMgY3JlYXRl
ZCBvdXQgb2YKKyAgICAgICAgdGhlIElPU3VyZmFjZSBhbmQgdGhlIHBvb2wgaXMgbm90IHVzZWQu
IEluIGJvdGggb2YgdGhlIGNhc2VzCisgICAgICAgIHRoZSBzaXplIGFuZCB0aGUgcGl4ZWwgZm9y
bWF0IG9mIHRoZSBpbWFnZSB0cmFuc2ZlciBzZXNzaW9uCisgICAgICAgIGlzIHRoZSBzYW1lIGFz
IHRoZSBpbnB1dCBJT1N1cmZhY2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6cGl4ZWxCdWZmZXJQb29sKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmg6CisKIDIw
MjEtMDktMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdW1dQRV0gdGVzdCBhbmltYXRpb25zL3N0ZXBzLXRyYW5zZm9ybS1yZW5kZXJp
bmctdXBkYXRlcy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDkwZGJl
MTJkOTdjYTAwNDY5NTYwNTJkOWFiNWJiY2I5NDAyOTI5ZGEuLmI4MDgyMGNjNjQ1NjVkMjFlOGMy
ZDg4MzFmZmFlNDYzOGUyMjA3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
TWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0zMzcs
NiArMzM3LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvcmV0ZXh0L0dseXBoUGFnZUNvcmVUZXh0LmNwcAogCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWQU5HTEUuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VS
b3RhdGlvblNlc3Npb25WVC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVy
Q29uZm9ybWVyQ1YuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBlZjIwYmVkMzYxNWJj
YTgxMTAyYTIyMDEwOTQ0MWE4ZTIxOTVlNzdkLi43OTM1MjJjZDA3ZjUyYTYyNThiMTY0NDYxZjEy
ODUwYjdkNzEzNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM5Miw2ICszOTIsNyBA
QCBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvR2x5cGhQYWdlQ29yZVRleHQuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9jdi9D
VlV0aWxpdGllcy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5jcHAKQEAgLTU0Miw3
ICs1NDMsNiBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYy5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjLm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlQ29jb2EuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCi1wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVWaWRlb1V0aWxpdGllcy5tbQogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJDb2NvYS5tbQogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9j
ay5jcHAKIHBsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggYzc1ODQzMDYxNzdkODY1YjQ5ZTE5YjdlMDM5ZGVkZjUwMGYxM2Q2ZC4uZDU2OTA0OGM5MGQ5
ZGZhM2EwYmExODJiMWU4N2QxZjU3NjhjZmJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM1Miw2ICsyMzUyLDcgQEAKIAkJ
N0I0NUFCNTUyNUZCQTlERTAwRkQyN0Y0IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
NDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0
aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QjczMTFGQjI1QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3
MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QjhF
RDVGMDI2RjBDMTNEMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCOEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBD
VlV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdCOTA0MTcwMjU1MDExNDIwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0JCMzRBMTcyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
QjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRpbGl0aWVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JC
MzRBNDgyNTM3NzZDQTAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjM0QTQ1
MjUzNzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc5NDgsNyAr
Nzk0OSw2IEBACiAJCTQxNTc0NzQ0MUUzODY5OUUwMEU5MTREOCAvKiBMaWJXZWJSVENQcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENQcm92aWRlci5o
OyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxNTdFQkY4MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTdF
QkY5MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE1ODY0OUYyM0JGN0I5
MzAwQTBBNjFFIC8qIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCNjI0RkZDRDFCMDBCOURBNDEgLyogUlRDSWNl
Q29tcG9uZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENJY2VDb21wb25lbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCODI0RkZDREMzMDBCOURBNDEg
LyogUlRDSWNlUHJvdG9jb2wuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ0ljZVByb3Rv
Y29sLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1OERDQjkyNEZGQ0RDMzAw
QjlEQTQxIC8qIFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTA2MDEsNiArMTA2MDEsOCBAQAogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyog
R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNj
b3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3Qjc3NEM2MjI1RkI5MzU1MDA5MTM5NUYgLyogR3JhcGhpY3NDb250
ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJN0I4RUQ1RUQyNkYwQzEyMzAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENWVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTdCOEVENUVGMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENWVXRpbGl0aWVzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjkwNDE2RTI1NTAxMTA5MDA2RUVCOEMgLyogUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGlsaXRp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xB
TkdMRVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkIzNEE0NTI1
Mzc3NkM2MDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzYzOCw3ICsxNzY0MCw2IEBACiAJCQkJNUNERDgzM0MxRTQz
MjRCQjAwNjIxQjgzIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmggKi8sCiAJ
CQkJNDE5MjQyNDcyMTI3QjdDQzAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZUNvY29hLm1tICovLAogCQkJCTQxRDE5MzhGMjE1MkM1NjEwMDZGMTRDQSAvKiBSZWFsdGltZVZp
ZGVvVXRpbGl0aWVzLmggKi8sCi0JCQkJNDE1ODY0OUYyM0JGN0I5MzAwQTBBNjFFIC8qIFJlYWx0
aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8sCiAJCQkJMDdENjM3M0UxQkIwQjExMzAwMjU2Q0U5IC8q
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oICovLAogCQkJCTA3RDYzNzNGMUJCMEIxMTMw
MDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0gKi8sCiAJCQkpOwpAQCAt
MjgzMDgsNiArMjgzMDksOCBAQAogCQlDRDlEODI3QzFDN0JCMkVEMDA2RkYwNjYgLyogY3YgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTdCOEVENUVEMjZG
MEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovLAorCQkJCTdCOEVENUVGMjZGMEMxMjMw
MDhBQzAyMyAvKiBDVlV0aWxpdGllcy5tbSAqLywKIAkJCQk3QjEwMzM5RDI1NDk3MjAxMDBDOEMx
QUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovLAogCQkJCTdCMTAzMzlBMjU0OTcyMDAwMEM4
QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuY3BwICovLAogCQkJCTdCMTAzMzlDMjU0
OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuaCAqLywKQEAgLTMxOTcx
LDYgKzMxOTc0LDcgQEAKIAkJCQk2MkNEMzI1QTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNUQyMzg1MjI3QTA2NTIwMDBCOUJEQSAvKiBDdXN0
b21IZWFkZXJGaWVsZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCMUUxM0U3MjE3OTBENjYwMDQy
Q0Y5OCAvKiBDdXN0b21QYWludENhbnZhcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0I4RUQ1RjAy
NkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENC
NDEzRTBFODYzM0ZEMDAzMkM0RjAgLyogRGFzaEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
N0JDNkEyMTE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3QkM2QTI0MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZUF1dGhvcml6ZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzMxMzIsNyArMzMxMzYsNiBAQAogCQkJCUJDNjkzMjc0MEQ3RTI5MzkwMEFF
NDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1MkZCQkJDMERF
MjdDQjYwMDAxRDM4NiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEwQkNGNTYyNkYwQ0Q4QzAwNDBCMTI0IC8qIFJUQ0xvY2FsU2Vzc2lv
bkRlc2NyaXB0aW9uSW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVFMEU5NDQxMTMzQzg5RjAw
QjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M0NUM5RDMxRTNG
Q0JENzAwQUFCNTU4IC8qIEpTRE9NV3JhcHBlckNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0E4MDYxRTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNDc0Miw2ICszNDc0NSw3IEBACiAJCQkJMDdBQjk5NkIxOERBM0MwMTAwMTg3NzFFIC8q
IFJUQ0ljZVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzNTkxMDgxRTdEREM3MzAwRjMw
NjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzNTkx
MDkxRTdEREM3MzAwRjMwNjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFN0YXRlLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTBCQ0Y1NjI2RjBDRDhDMDA0MEIxMjQgLyogUlRDTG9jYWxTZXNzaW9uRGVzY3Jp
cHRpb25Jbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUMxNEJDNjI2REU2REU4MDA2ODVCRjUg
LyogUlRDTmV0d29ya01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mzc5NEZFMTlGNTg2
NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzM3
OTRERTE5RUUyQzUyMDBFNUEwNDUgLyogUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NW
VXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxp
dGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJkMWZlMGU5Y2FmZTdkMGQ2MWFkMTRiNWIzMmFiZGFmMGZiODZi
MzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9DVlV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPENvcmVWaWRlby9Db3JlVmlkZW8uaD4KKyNpbmNsdWRlIDx1dGlsaXR5
PgorI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
KwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgPSBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVyUG9v
bCo7Cit1c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZmZXIqOworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKy8vIENyZWF0ZXMgQ1ZQaXhlbEJ1ZmZlclBvb2wgdGhhdCBjcmVh
dGVzIENWUGl4ZWxCdWZmZXJzIGJhY2tlZCBieSBJT1N1cmZhY2VzLgorLy8gVGhlc2UgYnVmZmVy
cyBjYW4gYmUgZm9yIGV4YW1wbGUgc2VudCB0aHJvdWdoIElQQy4KK1dFQkNPUkVfRVhQT1JUIEV4
cGVjdGVkPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4sIENWUmV0dXJuPiBjcmVhdGVJ
T1N1cmZhY2VDVlBpeGVsQnVmZmVyUG9vbChJbnRTaXplLCBPU1R5cGUgcGl4ZWxGb3JtYXQsIHVu
c2lnbmVkIG1pbmltdW1CdWZmZXJDb3VudCA9IDB1KTsKKworV0VCQ09SRV9FWFBPUlQgRXhwZWN0
ZWQ8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4gY3JlYXRlQ1ZQaXhlbEJ1
ZmZlckZyb21Qb29sKENWUGl4ZWxCdWZmZXJQb29sUmVmKTsKKworV0VCQ09SRV9FWFBPUlQgRXhw
ZWN0ZWQ8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4gY3JlYXRlQ1ZQaXhl
bEJ1ZmZlcihJT1N1cmZhY2VSZWYpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmMTI0MGM5NDRlYTEw
NmU1ZDExNDczODMxNjhiYzYzNDA3MmU5MGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQpAQCAtMCwwICsxLDExMSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQ1ZVdGlsaXRpZXMu
aCIKKworI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2ltcG9ydCAiQ29yZVZpZGVvU29m
dExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitFeHBlY3RlZDxSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclBvb2xSZWY+LCBDVlJldHVybj4gY3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZl
clBvb2woSW50U2l6ZSBzaXplLCBPU1R5cGUgZm9ybWF0LCB1bnNpZ25lZCBtaW5pbXVtQnVmZmVy
Q291bnQpCit7CisgICAgYXV0byBwaXhlbEF0dHJpYnV0ZXMgPSBAeworICAgICAgICAoX19icmlk
Z2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlcldpZHRoS2V5OiBAKHNpemUud2lkdGgoKSksCisg
ICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0S2V5OiBAKHNp
emUuaGVpZ2h0KCkpLAorICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZl
clBpeGVsRm9ybWF0VHlwZUtleTogQChmb3JtYXQpLAorICAgICAgICAoX19icmlkZ2UgTlNTdHJp
bmcgKilrQ1ZQaXhlbEJ1ZmZlckNHSW1hZ2VDb21wYXRpYmlsaXR5S2V5OiBATk8sCisjaWYgUExB
VEZPUk0oTUFDKQorICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9w
ZW5HTENvbXBhdGliaWxpdHlLZXkgOiBAWUVTLAorI2VuZGlmCisgICAgICAgIChfX2JyaWRnZSBO
U1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7IH0KKyAg
ICB9OworICAgIE5TRGljdGlvbmFyeSogcG9vbE9wdGlvbnMgPSBudWxscHRyOworICAgIGlmICht
aW5pbXVtQnVmZmVyQ291bnQpIHsKKyAgICAgICAgcG9vbE9wdGlvbnMgPSBAeworICAgICAgICAg
ICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQb29sTWluaW11bUJ1ZmZlckNv
dW50S2V5OiBAKG1pbmltdW1CdWZmZXJDb3VudCkKKyAgICAgICAgfTsKKyAgICB9CisgICAgQ1ZQ
aXhlbEJ1ZmZlclBvb2xSZWYgcG9vbCA9IG51bGxwdHI7CisgICAgYXV0byBzdGF0dXMgPSBDVlBp
eGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoX19icmlkZ2UgQ0ZEaWN0
aW9uYXJ5UmVmKSBwb29sT3B0aW9ucywgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhlbEF0
dHJpYnV0ZXMsICZwb29sKTsKKyAgICBpZiAoc3RhdHVzICE9IGtDVlJldHVyblN1Y2Nlc3MgfHwg
IXBvb2wpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChzdGF0dXMpOworICAgIHJldHVy
biBhZG9wdENGKHBvb2wpOworfQorCitFeHBlY3RlZDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4sIENWUmV0dXJuPiBjcmVhdGVDVlBpeGVsQnVmZmVyRnJvbVBvb2woQ1ZQaXhlbEJ1ZmZlclBv
b2xSZWYgcGl4ZWxCdWZmZXJQb29sKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIgPSBudWxscHRyOworICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGVQ
aXhlbEJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlclBvb2wsICZwaXhlbEJ1
ZmZlcik7CisgICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzIHx8ICFwaXhlbEJ1ZmZl
cikKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHN0YXR1cyk7CisgICAgcmV0dXJuIGFk
b3B0Q0YocGl4ZWxCdWZmZXIpOworfQorCitzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHBpeGVsQnVm
ZmVyQ3JlYXRpb25PcHRpb25zKElPU3VyZmFjZVJlZiBzdXJmYWNlKQoreworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICBhdXRvIGZvcm1hdCA9IElPU3VyZmFjZUdldFBpeGVsRm9ybWF0KHN1cmZhY2Up
OworICAgIGlmIChmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5h
clZpZGVvUmFuZ2UgfHwgZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQ
bGFuYXJGdWxsUmFuZ2UpIHsKKyAgICAgICAgY29uc3RleHByIHNpemVfdCBtYWNyb2Jsb2NrU2l6
ZSA9IDE2OworICAgICAgICBhdXRvIHdpZHRoID0gSU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFjZSk7
CisgICAgICAgIGF1dG8gaGVpZ2h0ID0gSU9TdXJmYWNlR2V0SGVpZ2h0KHN1cmZhY2UpOworICAg
ICAgICBhdXRvIGV4dGVuZGVkUmlnaHQgPSByb3VuZFVwVG9NdWx0aXBsZU9mKG1hY3JvYmxvY2tT
aXplLCB3aWR0aCkgLSB3aWR0aDsKKyAgICAgICAgYXV0byBleHRlbmRlZEJvdHRvbSA9IHJvdW5k
VXBUb011bHRpcGxlT2YobWFjcm9ibG9ja1NpemUsIGhlaWdodCkgLSBoZWlnaHQ7CisgICAgICAg
IGlmICgoSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApID49IHdpZHRo
ICsgZXh0ZW5kZWRSaWdodCkKKyAgICAgICAgICAgICYmIChJT1N1cmZhY2VHZXRCeXRlc1BlclJv
d09mUGxhbmUoc3VyZmFjZSwgMSkgPj0gd2lkdGggKyBleHRlbmRlZFJpZ2h0KQorICAgICAgICAg
ICAgJiYgKElPU3VyZmFjZUdldEFsbG9jU2l6ZShzdXJmYWNlKSA+PSAoaGVpZ2h0ICsgZXh0ZW5k
ZWRCb3R0b20pICogSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApICog
MyAvIDIpKSB7CisgICAgICAgICAgICByZXR1cm4gKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZikg
QHsKKyNpZiBQTEFURk9STShNQUMpCisgICAgICAgICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5n
ICopa0NWUGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5IDogQFlFUywKKyNlbmRpZgor
ICAgICAgICAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyRXh0ZW5k
ZWRQaXhlbHNSaWdodEtleSA6IEAoZXh0ZW5kZWRSaWdodCksCisgICAgICAgICAgICAgICAgKF9f
YnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJFeHRlbmRlZFBpeGVsc0JvdHRvbUtleSA6
IEAoZXh0ZW5kZWRCb3R0b20pCisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgfQorI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0oc3VyZmFjZSk7CisjZW5kaWYKKyAgICByZXR1cm4gKF9fYnJp
ZGdlIENGRGljdGlvbmFyeVJlZikgQHsKKyNpZiBQTEFURk9STShNQUMpCisgICAgICAgIChfX2Jy
aWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSA6IEBZ
RVMKKyNlbmRpZgorICAgIH07Cit9CisKK0V4cGVjdGVkPFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiwgQ1ZSZXR1cm4+IGNyZWF0ZUNWUGl4ZWxCdWZmZXIoSU9TdXJmYWNlUmVmIHN1cmZhY2Up
Cit7CisgICAgaWYgKCFzdXJmYWNlKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoa0NW
UmV0dXJuSW52YWxpZEFyZ3VtZW50KTsKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVy
ID0gbnVsbHB0cjsKKyAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGVXaXRoSU9T
dXJmYWNlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN1cmZhY2UsIHBpeGVsQnVmZmVyQ3JlYXRpb25P
cHRpb25zKHN1cmZhY2UpLCAmcGl4ZWxCdWZmZXIpOworICAgIGlmIChzdGF0dXMgIT0ga0NWUmV0
dXJuU3VjY2VzcyB8fCAhcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChzdGF0dXMpOworICAgIHJldHVybiBhZG9wdENGKHBpeGVsQnVmZmVyKTsKK30KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVC5oCmluZGV4IGE1MjU4OTUxMDJiYmE1ODI5Y2QzNzg0NDdiOTVhYjU3
NmM2YWYyZjYuLjRmMjI5ZGU2YWZmOWRmMWExZDQyZDc2MGUyNzA5OTA1Yzg4N2Y0MGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFn
ZVRyYW5zZmVyU2Vzc2lvblZULmgKQEAgLTU4LDE4ICs1OCwxMiBAQCBwdWJsaWM6CiAjZW5kaWYK
ICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIFdFQkNPUkVfRVhQT1JU
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlcihJT1N1cmZhY2VS
ZWYpOwotICAgIFdFQkNPUkVfRVhQT1JUIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVh
dGVQaXhlbEJ1ZmZlcihJT1N1cmZhY2VSZWYsIGNvbnN0IEludFNpemUmKTsKLSNlbmRpZgotCiAg
ICAgdWludDMyX3QgcGl4ZWxGb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsRm9ybWF0OyB9
CiAKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVCh1aW50MzJfdCBwaXhlbEZvcm1hdCk7CiAKICNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpCi0gICAgQ0ZEaWN0aW9uYXJ5UmVmIGlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRp
b25zKElPU3VyZmFjZVJlZik7CiAgICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjcmVh
dGVDTVNhbXBsZUJ1ZmZlcihJT1N1cmZhY2VSZWYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IElu
dFNpemUmKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQppbmRleCBmMzE2OWFi
YzAyNzcwODJmMGNmY2U0NzI2NzllMTEwNzk3YzhjOWY2Li5jMGNhNWY2M2I4YTlhMmQ2NTNhYmEz
NDhhZTk5NDU0MjQ3NzM1NDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KQEAgLTI2LDYg
KzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5oIgogCisjaW1wb3J0ICJDVlV0aWxpdGllcy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250
ZXh0Q0cuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk1lZGlhU2FtcGxlQVZGT2Jq
Qy5oIgpAQCAtNDMsMTUgKzQ0LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMg
aW5saW5lIENGU3RyaW5nUmVmIGN2UGl4ZWxGb3JtYXRPcGVuR0xLZXkoKQotewotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICByZXR1cm4ga0NW
UGl4ZWxGb3JtYXRPcGVuR0xFU0NvbXBhdGliaWxpdHk7Ci0jZWxzZQotICAgIHJldHVybiBrQ1ZQ
aXhlbEJ1ZmZlck9wZW5HTENvbXBhdGliaWxpdHlLZXk7Ci0jZW5kaWYKLX0KLQogSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVCh1aW50MzJfdCBwaXhlbEZvcm1h
dCkKIHsKICAgICBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uUmVmIHRyYW5zZmVyU2Vzc2lvbjsKQEAg
LTg0LDI5ICs3NiwxMSBAQCBib29sIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OnNldFNpemUoY29u
c3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAgICBpZiAobV9zaXplID09IHNpemUgJiYgbV9vdXRwdXRC
dWZmZXJQb29sKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIE5TRGljdGlvbmFyeSogcGl4
ZWxCdWZmZXJPcHRpb25zID0gQHsKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4
ZWxCdWZmZXJXaWR0aEtleSA6IEAoc2l6ZS53aWR0aCgpKSwKLSAgICAgICAgKF9fYnJpZGdlIE5T
U3RyaW5nICopa0NWUGl4ZWxCdWZmZXJIZWlnaHRLZXkgOiBAKHNpemUuaGVpZ2h0KCkpLAotICAg
ICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtl
eSA6IEAobV9waXhlbEZvcm1hdCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWN2UGl4
ZWxGb3JtYXRPcGVuR0xLZXkoKSA6IEBZRVMsCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAq
KWtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7IC8qZW1wdHkgZGljdGlv
bmFyeSovIH0sCi0gICAgfTsKLQotICAgIE5TRGljdGlvbmFyeSogcGl4ZWxCdWZmZXJQb29sT3B0
aW9ucyA9IEB7Ci0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUG9v
bE1pbmltdW1CdWZmZXJDb3VudEtleTogQCg2KQotICAgIH07Ci0KLSAgICBDVlBpeGVsQnVmZmVy
UG9vbFJlZiBidWZmZXJQb29sOwotICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclBvb2xD
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhl
bEJ1ZmZlclBvb2xPcHRpb25zLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBpeGVsQnVmZmVy
T3B0aW9ucywgJmJ1ZmZlclBvb2wpOwotICAgIEFTU0VSVCghc3RhdHVzKTsKLSAgICBpZiAoc3Rh
dHVzICE9IGtDVlJldHVyblN1Y2Nlc3MpCisgICAgYXV0byBidWZmZXJQb29sID0gY3JlYXRlSU9T
dXJmYWNlQ1ZQaXhlbEJ1ZmZlclBvb2woc2l6ZSwgbV9waXhlbEZvcm1hdCwgNikudmFsdWVfb3Io
bnVsbHB0cik7CisgICAgaWYgKCFidWZmZXJQb29sKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBtX291dHB1dEJ1ZmZlclBvb2wgPSBhZG9wdENGKGJ1ZmZlclBvb2wpOworICAgIG1fb3V0
cHV0QnVmZmVyUG9vbCA9IFdURk1vdmUoYnVmZmVyUG9vbCk7CiAgICAgbV9zaXplID0gc2l6ZTsK
LSAgICBtX2lvU3VyZmFjZUJ1ZmZlckF0dHJpYnV0ZXMgPSBudWxscHRyOwotCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKQEAgLTExOCwyNiArOTIsMjAgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcihDVlBpeGVsQnUK
ICAgICBpZiAoIXNvdXJjZUJ1ZmZlciB8fCAhc2V0U2l6ZShzaXplKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICBDVlBpeGVsQnVmZmVyUmVmIG91dHB1dEJ1ZmZlciA9IG51bGxwdHI7
Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZVBpeGVsQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG1fb3V0cHV0QnVmZmVyUG9vbC5nZXQoKSwgJm91dHB1dEJ1ZmZl
cik7Ci0gICAgaWYgKHN0YXR1cykgewotICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlciwgQ1ZQaXhlbEJ1ZmZlclBvb2xD
cmVhdGVQaXhlbEJ1ZmZlciBmYWlsZWQgd2l0aCBlcnJvciAlZCIsIHN0YXRpY19jYXN0PGludD4o
c3RhdHVzKSk7CisgICAgYXV0byByZXN1bHQgPSBjcmVhdGVDVlBpeGVsQnVmZmVyRnJvbVBvb2wo
bV9vdXRwdXRCdWZmZXJQb29sLmdldCgpKTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICBS
RUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1
ZmZlciwgY3JlYXRlQ1ZQaXhlbEJ1ZmZlckZyb21Qb29sIGZhaWxlZCB3aXRoIGVycm9yICVkIiwg
c3RhdGljX2Nhc3Q8aW50PihyZXN1bHQuZXJyb3IoKSkpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9Ci0gICAgYXV0byByZXN1bHQgPSBhZG9wdENGKG91dHB1dEJ1ZmZlcik7CisgICAg
YXV0byBvdXRwdXRCdWZmZXIgPSBXVEZNb3ZlKCpyZXN1bHQpOwogCi0gICAgYXV0byBlcnIgPSBW
VFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJhbnNmZXJJbWFnZShtX3RyYW5zZmVyU2Vzc2lvbi5nZXQo
KSwgc291cmNlQnVmZmVyLCBvdXRwdXRCdWZmZXIpOworICAgIGF1dG8gZXJyID0gVlRQaXhlbFRy
YW5zZmVyU2Vzc2lvblRyYW5zZmVySW1hZ2UobV90cmFuc2ZlclNlc3Npb24uZ2V0KCksIHNvdXJj
ZUJ1ZmZlciwgb3V0cHV0QnVmZmVyLmdldCgpKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJF
TEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVm
ZmVyLCBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJhbnNmZXJJbWFnZSBmYWlsZWQgd2l0aCBlcnJv
ciAlZCIsIHN0YXRpY19jYXN0PGludD4oZXJyKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIAotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLVJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcihDTVNhbXBsZUJ1
ZmZlclJlZiBzb3VyY2VCdWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUpCi17Ci0gICAgcmV0dXJu
IGNvbnZlcnRQaXhlbEJ1ZmZlcihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291
cmNlQnVmZmVyKSwgc2l6ZSk7CisgICAgcmV0dXJuIG91dHB1dEJ1ZmZlcjsKIH0KIAogUmV0YWlu
UHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01T
YW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBjb25zdCBJbnRTaXpl
JiBzaXplKQpAQCAtMTU0LDcgKzEyMiw3IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4g
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAg
aWYgKCFzZXRTaXplKHNpemUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8g
Y29udmVydGVkUGl4ZWxCdWZmZXIgPSBjcmVhdGVQaXhlbEJ1ZmZlcihzb3VyY2VCdWZmZXIsIHNp
emUpOworICAgIGF1dG8gY29udmVydGVkUGl4ZWxCdWZmZXIgPSBjb252ZXJ0UGl4ZWxCdWZmZXIo
cGl4ZWxCdWZmZXIsIHNpemUpOwogICAgIGlmICghY29udmVydGVkUGl4ZWxCdWZmZXIpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCkBAIC0yNjYsODIgKzIzNCwxMSBAQCBSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZUNNU2FtcGxlQnVm
ZmVyKENHSW1hZwogCiAjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogCi0jaWYgUExBVEZPUk0o
TUFDKQotc3RhdGljIGludDMyX3Qgcm91bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKGludDMyX3Qg
c2l6ZSkKLXsKLSAgICByZXR1cm4gKHNpemUgKyAxNSkgJiB+MTU7Ci19Ci0jZW5kaWYKLQotQ0ZE
aWN0aW9uYXJ5UmVmIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmlvU3VyZmFjZVBpeGVsQnVmZmVy
Q3JlYXRpb25PcHRpb25zKElPU3VyZmFjZVJlZiBzdXJmYWNlKQotewotICAgIGlmIChtX2lvU3Vy
ZmFjZUJ1ZmZlckF0dHJpYnV0ZXMpCi0gICAgICAgIHJldHVybiBtX2lvU3VyZmFjZUJ1ZmZlckF0
dHJpYnV0ZXMuZ2V0KCk7Ci0KLSAgICBtX2lvU3VyZmFjZUJ1ZmZlckF0dHJpYnV0ZXMgPSAoX19i
cmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKSBAewotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilj
dlBpeGVsRm9ybWF0T3BlbkdMS2V5KCkgOiBAWUVTLAotICAgIH07Ci0KLSNpZiBQTEFURk9STShN
QUMpCi0gICAgYXV0byBmb3JtYXQgPSBJT1N1cmZhY2VHZXRQaXhlbEZvcm1hdChzdXJmYWNlKTsK
LSAgICBhdXRvIHdpZHRoID0gSU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFjZSk7Ci0gICAgYXV0byBo
ZWlnaHQgPSBJT1N1cmZhY2VHZXRIZWlnaHQoc3VyZmFjZSk7Ci0gICAgYXV0byBleHRlbmRlZFJp
Z2h0ID0gcm91bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKHdpZHRoKSAtIHdpZHRoOwotICAgIGF1
dG8gZXh0ZW5kZWRCb3R0b20gPSByb3VuZFVwVG9NYWNyb2Jsb2NrTXVsdGlwbGUoaGVpZ2h0KSAt
IGhlaWdodDsKLQotICAgIGlmICgoZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENi
Q3I4QmlQbGFuYXJWaWRlb1JhbmdlIHx8IGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIw
WXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlKQotICAgICAgICAmJiAoSU9TdXJmYWNlR2V0Qnl0ZXNQ
ZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApID49IHdpZHRoICsgZXh0ZW5kZWRSaWdodCkKLSAgICAg
ICAgJiYgKElPU3VyZmFjZUdldEJ5dGVzUGVyUm93T2ZQbGFuZShzdXJmYWNlLCAxKSA+PSB3aWR0
aCArIGV4dGVuZGVkUmlnaHQpCi0gICAgICAgICYmIChJT1N1cmZhY2VHZXRBbGxvY1NpemUoc3Vy
ZmFjZSkgPj0gKGhlaWdodCArIGV4dGVuZGVkQm90dG9tKSAqIElPU3VyZmFjZUdldEJ5dGVzUGVy
Um93T2ZQbGFuZShzdXJmYWNlLCAwKSAqIDMgLyAyKSkgewotICAgICAgICAgICAgbV9pb1N1cmZh
Y2VCdWZmZXJBdHRyaWJ1dGVzID0gKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZikgQHsKLSAgICAg
ICAgICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBh
dGliaWxpdHlLZXkgOiBAWUVTLAotICAgICAgICAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAq
KWtDVlBpeGVsQnVmZmVyRXh0ZW5kZWRQaXhlbHNSaWdodEtleSA6IEAoZXh0ZW5kZWRSaWdodCks
Ci0gICAgICAgICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJFeHRl
bmRlZFBpeGVsc0JvdHRvbUtleSA6IEAoZXh0ZW5kZWRCb3R0b20pCi0gICAgICAgICAgICB9Owot
ICAgIH0KLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHN1cmZhY2UpOwotI2VuZGlmCi0KLSAgICBy
ZXR1cm4gbV9pb1N1cmZhY2VCdWZmZXJBdHRyaWJ1dGVzLmdldCgpOwotfQotCi1SZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlUGl4ZWxCdWZm
ZXIoSU9TdXJmYWNlUmVmIHN1cmZhY2UpCi17Ci0gICAgaWYgKCFzdXJmYWNlKQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLQotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXI7Ci0gICAg
YXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyQ3JlYXRlV2l0aElPU3VyZmFjZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBzdXJmYWNlLCBpb1N1cmZhY2VQaXhlbEJ1ZmZlckNyZWF0aW9uT3B0aW9ucyhz
dXJmYWNlKSwgJnBpeGVsQnVmZmVyKTsKLSAgICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HKE1lZGlhLCAiQ1ZQaXhlbEJ1ZmZlckNyZWF0ZVdpdGhJT1N1cmZhY2UgZmFpbGVkIHdp
dGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxCdWZmZXIpOwot
fQotCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6
Y3JlYXRlUGl4ZWxCdWZmZXIoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIGNvbnN0IEludFNpemUmIHNp
emUpCitSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6
OmNyZWF0ZUNNU2FtcGxlQnVmZmVyKElPU3VyZmFjZVJlZiBzdXJmYWNlLCBjb25zdCBNZWRpYVRp
bWUmIHNhbXBsZVRpbWUsIGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAgICAgaWYgKCFzdXJmYWNl
IHx8ICFzZXRTaXplKHNpemUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXI7Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVy
Q3JlYXRlV2l0aElPU3VyZmFjZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzdXJmYWNlLCBpb1N1cmZh
Y2VQaXhlbEJ1ZmZlckNyZWF0aW9uT3B0aW9ucyhzdXJmYWNlKSwgJnBpeGVsQnVmZmVyKTsKLSAg
ICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiQ1ZQaXhlbEJ1ZmZl
ckNyZWF0ZVdpdGhJT1N1cmZhY2UgZmFpbGVkIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNf
Y2FzdDxpbnQ+KHN0YXR1cykpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAg
ICBhdXRvIHJldGFpbmVkQnVmZmVyID0gYWRvcHRDRihwaXhlbEJ1ZmZlcik7Ci0gICAgaWYgKG1f
c2l6ZSA9PSBJbnRTaXplKENWUGl4ZWxCdWZmZXJHZXRXaWR0aChwaXhlbEJ1ZmZlciksIENWUGl4
ZWxCdWZmZXJHZXRIZWlnaHQocGl4ZWxCdWZmZXIpKSAmJiBtX3BpeGVsRm9ybWF0ID09IENWUGl4
ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpKQotICAgICAgICByZXR1cm4g
cmV0YWluZWRCdWZmZXI7Ci0KLSAgICByZXR1cm4gY29udmVydFBpeGVsQnVmZmVyKHBpeGVsQnVm
ZmVyLCBzaXplKTsKLX0KLQotUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5z
ZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcihJT1N1cmZhY2VSZWYgc3VyZmFjZSwg
Y29uc3QgTWVkaWFUaW1lJiBzYW1wbGVUaW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQotewotICAg
IGF1dG8gcGl4ZWxCdWZmZXIgPSBjcmVhdGVQaXhlbEJ1ZmZlcihzdXJmYWNlLCBzaXplKTsKKyAg
ICBhdXRvIHBpeGVsQnVmZmVyID0gY3JlYXRlQ1ZQaXhlbEJ1ZmZlcihzdXJmYWNlKS52YWx1ZV9v
cihudWxscHRyKTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1t
CmluZGV4IDUyMWRlN2E5NzRlZWMyMGU5OTc0YzA4YWQzOWI2Y2VmN2MyMWY3ZTEuLjRhNDdkNDU2
M2RiYjUwNzBkMjE3YzE1NGQ5ZmFlNmZmZGY4NTU4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lm
IFVTRShMSUJXRUJSVEMpCiAKKyNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJMb2dn
aW5nLmgiCiAjaW1wb3J0ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKICNpbXBvcnQgIlJlYWx0aW1l
VmlkZW9VdGlsaXRpZXMuaCIKQEAgLTk4LDEwICs5OSwxMiBAQCBDVlBpeGVsQnVmZmVyUG9vbFJl
ZiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6cGl4ZWxCdWZmZXJQb29sKHNpemVf
dCB3aQogICAgICAgICBjYXNlIHdlYnJ0Yzo6QnVmZmVyVHlwZTo6STAxMDoKICAgICAgICAgICAg
IHBvb2xCdWZmZXJUeXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjEwQmlQbGFuYXJW
aWRlb1JhbmdlOwogICAgICAgICB9Ci0gICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sID0gY3JlYXRl
UGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQsIHBvb2xCdWZmZXJUeXBlKTsKLSAgICAgICAg
bV9waXhlbEJ1ZmZlclBvb2xXaWR0aCA9IHdpZHRoOwotICAgICAgICBtX3BpeGVsQnVmZmVyUG9v
bEhlaWdodCA9IGhlaWdodDsKLSAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xCdWZmZXJUeXBlID0g
YnVmZmVyVHlwZTsKKyAgICAgICAgaWYgKGF1dG8gcG9vbCA9IGNyZWF0ZUlPU3VyZmFjZUNWUGl4
ZWxCdWZmZXJQb29sKHsgc3RhdGljX2Nhc3Q8aW50Pih3aWR0aCksIHN0YXRpY19jYXN0PGludD4o
aGVpZ2h0KSB9LCBwb29sQnVmZmVyVHlwZSkpIHsKKyAgICAgICAgICAgIG1fcGl4ZWxCdWZmZXJQ
b29sID0gV1RGTW92ZSgqcG9vbCk7CisgICAgICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbFdpZHRo
ID0gd2lkdGg7CisgICAgICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbEhlaWdodCA9IGhlaWdodDsK
KyAgICAgICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sQnVmZmVyVHlwZSA9IGJ1ZmZlclR5cGU7Cisg
ICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIG1fcGl4ZWxCdWZmZXJQb29sLmdldCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lVmlkZW9VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgKaW5kZXggNWZiYWY1ZWRjNjQwMjYxNGVkYWZk
N2FlMTZkYWU4MGJiYjE3YTkwMi4uMzgwZDM3MzFiMGExNTNhYmI5YzIyNzBiZmVlNzY4MGYwM2Iz
YjhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oCkBAIC0yNyw5ICsyNyw2IEBA
CiAKICNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZpZGVvLmg+CiAKLXVzaW5nIENWUGl4ZWxCdWZm
ZXJQb29sUmVmID0gc3RydWN0IF9fQ1ZQaXhlbEJ1ZmZlclBvb2wqOwotdXNpbmcgQ1ZQaXhlbEJ1
ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dGF0aWMgaW5saW5lIE9TVHlwZSBwcmVmZXJlZFBpeGVsQnVmZmVyRm9ybWF0KCkKQEAgLTQxLDcg
KzM4LDQgQEAgc3RhdGljIGlubGluZSBPU1R5cGUgcHJlZmVyZWRQaXhlbEJ1ZmZlckZvcm1hdCgp
CiAjZW5kaWYKIH0KIAotV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29s
UmVmPiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBP
U1R5cGUpOwotV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0
ZVBpeGVsQnVmZmVyRnJvbVBvb2woQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYpOwotCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRl
b1V0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
NjJlYzI3NmI0ZjEzMWQ3MDAzZjNmMzIwZTA5NzQ2Y2Q0Y2VjYzI4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tCisrKyAvZGV2L251bGwKQEAg
LTEsNjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0Ogot
ICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgotICogQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAotICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSAqIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCi0gKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJS
ZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCi0KLSNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVm
PiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBPU1R5
cGUgdmlkZW9DYXB0dXJlRm9ybWF0KQotewotICAgIGF1dG8gcGl4ZWxBdHRyaWJ1dGVzID0gQHsK
LSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJXaWR0aEtleTogQCh3
aWR0aCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0
S2V5OiBAKGhlaWdodCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVm
ZmVyUGl4ZWxGb3JtYXRUeXBlS2V5OiBAKHZpZGVvQ2FwdHVyZUZvcm1hdCksCi0gICAgICAgIChf
X2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyQ0dJbWFnZUNvbXBhdGliaWxpdHlLZXk6
IEBOTywKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICAoX19icmlkZ2UgTlNTdHJp
bmcgKilrQ1ZQaXhlbEZvcm1hdE9wZW5HTEVTQ29tcGF0aWJpbGl0eSA6IEBZRVMsCi0jZWxzZQot
ICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBhdGli
aWxpdHlLZXkgOiBAWUVTLAotI2VuZGlmCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtD
VlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7IH0KLSAgICB9OwotCi0gICAg
Q1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcG9vbCA9IG51bGxwdHI7Ci0gICAgYXV0byBzdGF0dXMgPSBD
VlBpeGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCAoX19i
cmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBpeGVsQXR0cmlidXRlcywgJnBvb2wpOwotCi0gICAgaWYg
KHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQot
ICAgIHJldHVybiBhZG9wdENGKHBvb2wpOwotfQotCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4gY3JlYXRlUGl4ZWxCdWZmZXJGcm9tUG9vbChDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbEJ1
ZmZlclBvb2wpCi17Ci0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IG51bGxwdHI7
Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZVBpeGVsQnVmZmVyKGtD
RkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyUG9vbCwgJnBpeGVsQnVmZmVyKTsKLQotICAg
IGlmIChzdGF0dXMgIT0ga0NWUmV0dXJuU3VjY2VzcykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxCdWZmZXIpOwotfQotCi19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2Uu
bW0KaW5kZXggZGUzYmI2YTcwNzY4ZGM4YWU1OGQwY2RlYmEwYTQ4MGFlOGJmYmVmNS4uY2E2NTBh
NTRlNDNlODJjOGU0MjRkZGMzY2JjODQ0NzJmODY0ODNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQpA
QCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNp
bXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1w
b3J0IDx3dGYvU29ydGVkQXJyYXlNYXAuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1By
b3h5LmgKaW5kZXggZDk4ZjcyY2E1MmExZjFjMWVmOGIyOWI4ZjcxMjI0MjM1YzgxOGY3YS4uZWVj
OGQ2NmZhYWJhZmI3OTliMGZkZWRjNDU5YzRkYjVhN2YyMmUzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaApAQCAt
MzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJSVENE
ZWNvZGVySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJUQ0VuY29kZXJJZGVudGlmaWVyLmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2suaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC05Myw3ICs5Miw2IEBAIHByaXZhdGU6CiAg
ICAgSGFzaE1hcDxSVENFbmNvZGVySWRlbnRpZmllciwgd2VicnRjOjpMb2NhbEVuY29kZXI+IG1f
ZW5jb2RlcnMgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spOyAvLyBPbmx5IG1vZGlmaWVkIG9u
IHRoZSBsaWJXZWJSVENDb2RlY3NRdWV1ZSBidXQgbWF5IGdldCBhY2Nlc3NlZCBmcm9tIHRoZSBt
YWluIHRocmVhZC4KIAogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7Ci0gICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNl
c3Npb247CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQppbmRleCBiMjMyNTgyNzQ0YzE1ODYwZTkyNTNl
YjNkYmU5MjQ0ZTkxOWU4NjFmLi4wMzI2ZWJkMDg4NDU4YTFhNzJiYWViNGE4MjQyMTZjNjc0NDVk
MDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGli
V2ViUlRDQ29kZWNzUHJveHkubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIkxpYldlYlJU
Q0NvZGVjc01lc3NhZ2VzLmgiCiAjaW1wb3J0ICJMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2Vz
LmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbXBvcnQgPFdlYkNvcmUv
Q1ZVdGlsaXRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvTGliV2ViUlRDUHJvdmlkZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KICNpbXBvcnQgPHdlYnJ0Yy9zZGsv
V2ViS2l0L1dlYktpdERlY29kZXIuaD4KQEAgLTIwNywxMSArMjA4LDggQEAgdm9pZCBMaWJXZWJS
VENDb2RlY3NQcm94eTo6ZW5jb2RlRnJhbWUoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmll
ciwgV2ViQ29yZToKICAgICBpZiAoIWVuY29kZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlm
ICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhl
bEZvcm1hdCgpICE9IHNhbXBsZS52aWRlb0Zvcm1hdCgpKQotICAgICAgICBtX2ltYWdlVHJhbnNm
ZXJTZXNzaW9uID0gV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHNhbXBs
ZS52aWRlb0Zvcm1hdCgpKTsKLQogI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICBhdXRv
IHBpeGVsQnVmZmVyID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlUGl4ZWxCdWZmZXIo
c2FtcGxlLnN1cmZhY2UoKSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IFdlYkNvcmU6OmNyZWF0
ZUNWUGl4ZWxCdWZmZXIoc2FtcGxlLnN1cmZhY2UoKSkudmFsdWVfb3IobnVsbHB0cik7CiAgICAg
d2VicnRjOjplbmNvZGVMb2NhbEVuY29kZXJGcmFtZShlbmNvZGVyLCBwaXhlbEJ1ZmZlci5nZXQo
KSwgc2FtcGxlLnRpbWUoKS50b1RpbWVTY2FsZSgxMDAwMDAwKS50aW1lVmFsdWUoKSwgdGltZVN0
YW1wLCB0b1dlYlJUQ1ZpZGVvUm90YXRpb24oc2FtcGxlLnJvdGF0aW9uKCkpLCBzaG91bGRFbmNv
ZGVBc0tleUZyYW1lKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggOWFkOTRkNjg2ZTQz
ODBiNWExM2I5NDc3MTMzYTg4MjI1MWRiMDQ3Yy4uZTRiNWNlMzhmMGIwMmRiZGVkMTE4NmExMjYw
MjhjZjkzYjQ4M2M5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0zMyw5ICszMyw5IEBACiAjaW5jbHVk
ZSAiTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0NWVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENNYWNyb3MuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVt
b3RlVmlkZW9TYW1wbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZQOVV0aWxpdGllc0NvY29hLmg+CkBAIC0zMzIsMTUg
KzMzMiw3IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNvZGluZyhSVENEZWNv
ZGVySWRlbnRpZmllciBkZWNvZGVySWRlbnRpZmllciwKICAgICBpZiAoIWRlY29kZXItPmRlY29k
ZWRJbWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIW1faW1hZ2VUcmFu
c2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSBy
ZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKLSAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
biA9IFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShyZW1vdGVTYW1wbGUu
dmlkZW9Gb3JtYXQoKSk7Ci0KLSAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24pIHsKLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBhdXRvIHBpeGVsQnVmZmVyID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlUGl4ZWxC
dWZmZXIocmVtb3RlU2FtcGxlLnN1cmZhY2UoKSwgcmVtb3RlU2FtcGxlLnNpemUoKSk7CisgICAg
YXV0byBwaXhlbEJ1ZmZlciA9IGNyZWF0ZUNWUGl4ZWxCdWZmZXIocmVtb3RlU2FtcGxlLnN1cmZh
Y2UoKSkudmFsdWVfb3IobnVsbHB0cik7CiAgICAgaWYgKCFwaXhlbEJ1ZmZlcikgewogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDQ0LDcgKzQzNiw3
IEBAIGludDMyX3QgTGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFtZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmCiAgICAgICAgIGlmICghcGl4ZWxCdWZmZXJQb29s
KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OmNyZWF0ZVBpeGVsQnVmZmVyRnJvbVBvb2wocGl4ZWxCdWZmZXJQb29sKS5sZWFrUmVmKCk7Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpjcmVhdGVDVlBpeGVsQnVmZmVyRnJvbVBvb2wocGl4ZWxC
dWZmZXJQb29sKS52YWx1ZV9vcihudWxscHRyKS5sZWFrUmVmKCk7CiAgICAgfSkpOwogCiAgICAg
aWYgKCFwaXhlbEJ1ZmZlcikKQEAgLTUwMyw5ICs0OTUsMTEgQEAgdm9pZCBMaWJXZWJSVENDb2Rl
Y3M6OmNvbXBsZXRlZEVuY29kaW5nKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQ
Qzo6RGEKIENWUGl4ZWxCdWZmZXJQb29sUmVmIExpYldlYlJUQ0NvZGVjczo6cGl4ZWxCdWZmZXJQ
b29sKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgT1NUeXBlIHR5cGUpCiB7CiAgICAgaWYg
KCFtX3BpeGVsQnVmZmVyUG9vbCB8fCBtX3BpeGVsQnVmZmVyUG9vbFdpZHRoICE9IHdpZHRoIHx8
IG1fcGl4ZWxCdWZmZXJQb29sSGVpZ2h0ICE9IGhlaWdodCkgewotICAgICAgICBtX3BpeGVsQnVm
ZmVyUG9vbCA9IGNyZWF0ZVBpeGVsQnVmZmVyUG9vbCh3aWR0aCwgaGVpZ2h0LCB0eXBlKTsKLSAg
ICAgICAgbV9waXhlbEJ1ZmZlclBvb2xXaWR0aCA9IHdpZHRoOwotICAgICAgICBtX3BpeGVsQnVm
ZmVyUG9vbEhlaWdodCA9IGhlaWdodDsKKyAgICAgICAgaWYgKGF1dG8gcG9vbCA9IFdlYkNvcmU6
OmNyZWF0ZUlPU3VyZmFjZUNWUGl4ZWxCdWZmZXJQb29sKHsgc3RhdGljX2Nhc3Q8aW50Pih3aWR0
aCksIHN0YXRpY19jYXN0PGludD4oaGVpZ2h0KSB9LCB0eXBlKSB7CisgICAgICAgICAgICBtX3Bp
eGVsQnVmZmVyUG9vbCA9IFdURk1vdmUoKnBvb2wpOworICAgICAgICAgICAgbV9waXhlbEJ1ZmZl
clBvb2xXaWR0aCA9IHdpZHRoOworICAgICAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xIZWlnaHQg
PSBoZWlnaHQ7CisgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIG1fcGl4ZWxCdWZmZXJQb29s
LmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuaAppbmRleCBlYmU2MjNjYmQ3YjdhODVkMjg5ZTZhYzgyZDMxOTVk
NmJlMTM1ZmJjLi40MDgzM2UwMzBlZjViMGVlODk0ZDdmNDRiZTk4Y2Q2Nzk4MWY0YTJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3MuaApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgIlJUQ0RlY29kZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUlRDRW5jb2Rlcklk
ZW50aWZpZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaD4KICNpbmNsdWRlIDxt
YXA+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBlLmg+CkBAIC0x
NDksNyArMTQ4LDYgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPj4gbV90
YXNrc1RvRGlzcGF0Y2hBZnRlckVzdGFibGlzaGluZ0Nvbm5lY3Rpb247CiAKICAgICBSZWY8V29y
a1F1ZXVlPiBtX3F1ZXVlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRyYW5z
ZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWPiBtX3BpeGVsQnVmZmVyQ29uZm9ybWVy
OwogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4gbV9waXhlbEJ1ZmZlclBvb2w7
CiAgICAgc2l6ZV90IG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggeyAwIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438382</attachid>
            <date>2021-09-16 12:14:37 -0700</date>
            <delta_ts>2021-09-16 23:37:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230338-20210916221435.patch</filename>
            <type>text/plain</type>
            <size>42676</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRjNGU3ZmI1YjEyZGVl
YmViZmNiOTY4NDhjYzdhOWM4ZjA3ZDZkMi4uZGUyYjhkZTA1ODdkM2FiMWM2Mzc2M2MyMTA4N2M3
ZDEzZGMwOTgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIxLTA5LTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHV0aWxpdHkg
dG8gY3JlYXRlIENWUGl4ZWxCdWZmZXJzIGZyb20gSU9TdXJmYWNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMzM4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgZnVuY3Rpb25hbGl0eSBv
ZiBjcmVhdGluZyBDVlBpeGVsQnVmZmVycworICAgICAgICBmcm9tIElPU3VyZmFjZXMgZnJvbSBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUIHRvCisgICAgICAgIHN0YW5kYWxvbmUgZnVuY3Rpb25zIGlu
IG5ldyBoZWFkZXIgQ1ZVdGlsaXRpZXMuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IGRpZCBu
b3QgdXNlIGFueSBzdGF0ZSBvZgorICAgICAgICBJbWFnZVRyYW5zZmVyU2Vzc2lvblZULgorCisg
ICAgICAgIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1c2VmdWwgaW4gb3RoZXIgc2NlbmFyaW9zIHRv
by4KKworICAgICAgICBSZW1vdmUgaW5zdGFudGlhdGlvbnMgb2YgSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVCBmcm9tCisgICAgICAgIHRoZSBvbGQgY2FsbCBzaXRlcywgYXMgaXQgd2FzIG5ldmVyIHVz
ZWQgZm9yIGFueXRoaW5nCisgICAgICAgIGVsc2UgdGhhbiBjcmVhdGlvbiBvZiB0aGUgcGl4ZWwg
YnVmZmVyLgorCisgICAgICAgIE1vdmUgdGhlIHJlbGF0ZWQgQ1ZQaXhlbEJ1ZmZlclBvb2wgaW5z
dGFudGlhdGlvbgorICAgICAgICBmcm9tIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCB0byBDVlV0
aWxpdGllcy5oCisKKyAgICAgICAgUmVtb3ZlIHRoZSB1c2FnZSBvZiBrQ1ZQaXhlbEZvcm1hdE9w
ZW5HTEVTQ29tcGF0aWJpbGl0eQorICAgICAgICBmcm9tIHRoZSBDVlBpeGVsQnVmZmVyIGNyZWF0
aW9uIGNvZGUuIEl0IHdhcyBpbmNvcnJlY3QgcHJvcGVydHkKKyAgICAgICAgYWxsIGFsb25nLCBw
cm9wZXJ0eSBvZiBwaXhlbCBmb3JtYXRzIG5vdCBvZiBwaXhlbCBidWZmZXJzLiBUaGUKKyAgICAg
ICAgaW50ZW5kZWQgcHJvcGVydHkgd2FzIGtDVlBpeGVsQnVmZmVyT3BlbkdMRVNDb21wYXRpYmls
aXR5S2V5CisgICAgICAgIGJ1dCBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisgICAgICAgIFJl
dGFpbnMgdGhlIHVzYWdlIG9mIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSwg
dGhvdWdoCisgICAgICAgIGl0IGlzIGluY29ycmVjdCBhbmQgdW5uZWVkZWQgZm9yIHRoZSBjdXJy
ZW50IG9wZXJhdGlvbiB0b28uCisgICAgICAgIFNpbmNlIHRoZW9yZXRpY2FsbHkgdGhpcyBjb3Vs
ZCBhZmZlY3Qgc29tZXRoaW5nIG9uIE1hYywgdGhpcworICAgICAgICB3aWxsIGJlIHJlbW92ZWQg
aW4gYSBzZXBhcmF0ZSBmaXguCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhIHJlZmFjdG9yLgor
CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZlclBvb2wpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlQ1ZQaXhlbEJ1ZmZlckZyb21Qb29sKToKKyAgICAgICAgKFdlYkNvcmU6OnBpeGVs
QnVmZmVyQ3JlYXRpb25PcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxC
dWZmZXIpOgorICAgICAgICBUaGUgYWRkZWQgZnVuY3Rpb25zIHJldHVybiBFeHBlY3RlZDxvYmpl
Y3QsIHN0YXR1cz4gc2luY2UKKyAgICAgICAgc29tZSBvZiB0aGUgY2FsbGVycyB3YW50IHRvIGxv
ZyB0aGUgZmFpbHVyZSBzdGF0dXMgY29kZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjdlBpeGVsRm9ybWF0T3BlbkdMS2V5KTogRGVsZXRlZC4KKyAgICAgICAg
SW5jb3JyZWN0LCByZXBsYWNlZCB3aXRoIE1hYy1vbmx5IHVzZSBvZiBPcGVuR0xDb21wYXRpYmls
aXR5S2V5IGluCisgICAgICAgIENWVXRpbGl0aWVzLm1tLgorICAgICAgICAoV2ViQ29yZTo6cm91
bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKTogRGVsZXRlZC4KKyAgICAgICAgVXNlIHRoZSBzaW1p
bGFyIGZ1bmN0aW9uIGluIFdURi4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ6OmlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRpb25zKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYTo6cGl4ZWxCdWZmZXJQb29sKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oOgorICAgICAgICBQcmVzZXJ2ZWQsIHNpbmNl
IHByZWZlcmVkUGl4ZWxCdWZmZXJGb3JtYXQgbWVhbnMKKyAgICAgICAgInRoZSBwaXhlbCBidWZm
ZXIgZm9ybWF0IHRoYXQgaXMgcHJlZmVycmVkIGJ5IG1lZGlhIHN0cmVhbSBpbXBsZW1lbnRhdGlv
bnMiCisgICAgICAgIHdoaWNoIGRvZXMgbm90IGZpdCB0byBjYXRlZ29yeSBvZiAiQ29yZVZpZGVv
IFV0aWxpdGllcyIuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
VmlkZW9VdGlsaXRpZXMubW06IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tOgorICAgICAgICBGaXggdW5pZmllZCBidWlsZCBmYWls
dXJlIGR1ZSB0byBhIG1pc3NpbmcgaW5jbHVkZS4KKwogMjAyMS0wOS0xNiAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHN0ZDo6b3B0aW9uYWwgZm9yIHRy
dW5jYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZjRkZWUyZmU4OWIyMjFlNjBmYWI1MGZiYzlkMDg1OWZmNGU5
MWZlMy4uYmVkMTY2NWVkZDQwNmFhMGFlMjQxMWIyNjA0YTNkYjUwOWMzNjkyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNyBAQAorMjAyMS0wOS0xNiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCB1dGlsaXR5IHRvIGNyZWF0ZSBDVlBpeGVsQnVmZmVy
cyBmcm9tIElPU3VyZmFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMDMzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoZSBoZWxwZXIgZnVuY3Rpb24gbW92ZWQgZnJvbSBJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUCisgICAgICAgIHRvIGZyZWUgc3RhbmRhbG9uZSBmdW5jdGlvbi4gU3RvcCBpbnN0YW50
aWF0aW5nIHRoZQorICAgICAgICBvYmplY3QgYW5kIGp1c3QgY2FsbCB0aGUgZnVuY3Rpb24uCisK
KyAgICAgICAgSW4gYm90aCBvZiB0aGUgY2FzZXMsIHRoZSBwaXhlbCBidWZmZXIgaXMgY3JlYXRl
ZCBvdXQgb2YKKyAgICAgICAgdGhlIElPU3VyZmFjZSBhbmQgdGhlIHBvb2wgaXMgbm90IHVzZWQu
IEluIGJvdGggb2YgdGhlIGNhc2VzCisgICAgICAgIHRoZSBzaXplIGFuZCB0aGUgcGl4ZWwgZm9y
bWF0IG9mIHRoZSBpbWFnZSB0cmFuc2ZlciBzZXNzaW9uCisgICAgICAgIGlzIHRoZSBzYW1lIGFz
IHRoZSBpbnB1dCBJT1N1cmZhY2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6cGl4ZWxCdWZmZXJQb29sKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmg6CisKIDIw
MjEtMDktMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdW1dQRV0gdGVzdCBhbmltYXRpb25zL3N0ZXBzLXRyYW5zZm9ybS1yZW5kZXJp
bmctdXBkYXRlcy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDkwZGJl
MTJkOTdjYTAwNDY5NTYwNTJkOWFiNWJiY2I5NDAyOTI5ZGEuLmI4MDgyMGNjNjQ1NjVkMjFlOGMy
ZDg4MzFmZmFlNDYzOGUyMjA3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
TWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0zMzcs
NiArMzM3LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvcmV0ZXh0L0dseXBoUGFnZUNvcmVUZXh0LmNwcAogCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWQU5HTEUuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VS
b3RhdGlvblNlc3Npb25WVC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVy
Q29uZm9ybWVyQ1YuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBlZjIwYmVkMzYxNWJj
YTgxMTAyYTIyMDEwOTQ0MWE4ZTIxOTVlNzdkLi43OTM1MjJjZDA3ZjUyYTYyNThiMTY0NDYxZjEy
ODUwYjdkNzEzNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM5Miw2ICszOTIsNyBA
QCBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvR2x5cGhQYWdlQ29yZVRleHQuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9jdi9D
VlV0aWxpdGllcy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5jcHAKQEAgLTU0Miw3
ICs1NDMsNiBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYy5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjLm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlQ29jb2EuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCi1wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVWaWRlb1V0aWxpdGllcy5tbQogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJDb2NvYS5tbQogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9j
ay5jcHAKIHBsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggYzc1ODQzMDYxNzdkODY1YjQ5ZTE5YjdlMDM5ZGVkZjUwMGYxM2Q2ZC4uZDU2OTA0OGM5MGQ5
ZGZhM2EwYmExODJiMWU4N2QxZjU3NjhjZmJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM1Miw2ICsyMzUyLDcgQEAKIAkJ
N0I0NUFCNTUyNUZCQTlERTAwRkQyN0Y0IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
NDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0
aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QjczMTFGQjI1QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3
MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QjhF
RDVGMDI2RjBDMTNEMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCOEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBD
VlV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdCOTA0MTcwMjU1MDExNDIwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0JCMzRBMTcyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
QjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRpbGl0aWVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JC
MzRBNDgyNTM3NzZDQTAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjM0QTQ1
MjUzNzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc5NDgsNyAr
Nzk0OSw2IEBACiAJCTQxNTc0NzQ0MUUzODY5OUUwMEU5MTREOCAvKiBMaWJXZWJSVENQcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENQcm92aWRlci5o
OyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxNTdFQkY4MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTdF
QkY5MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE1ODY0OUYyM0JGN0I5
MzAwQTBBNjFFIC8qIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCNjI0RkZDRDFCMDBCOURBNDEgLyogUlRDSWNl
Q29tcG9uZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENJY2VDb21wb25lbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCODI0RkZDREMzMDBCOURBNDEg
LyogUlRDSWNlUHJvdG9jb2wuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ0ljZVByb3Rv
Y29sLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1OERDQjkyNEZGQ0RDMzAw
QjlEQTQxIC8qIFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTA2MDEsNiArMTA2MDEsOCBAQAogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyog
R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNj
b3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3Qjc3NEM2MjI1RkI5MzU1MDA5MTM5NUYgLyogR3JhcGhpY3NDb250
ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJN0I4RUQ1RUQyNkYwQzEyMzAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENWVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTdCOEVENUVGMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENWVXRpbGl0aWVzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjkwNDE2RTI1NTAxMTA5MDA2RUVCOEMgLyogUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGlsaXRp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xB
TkdMRVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkIzNEE0NTI1
Mzc3NkM2MDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzYzOCw3ICsxNzY0MCw2IEBACiAJCQkJNUNERDgzM0MxRTQz
MjRCQjAwNjIxQjgzIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmggKi8sCiAJ
CQkJNDE5MjQyNDcyMTI3QjdDQzAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZUNvY29hLm1tICovLAogCQkJCTQxRDE5MzhGMjE1MkM1NjEwMDZGMTRDQSAvKiBSZWFsdGltZVZp
ZGVvVXRpbGl0aWVzLmggKi8sCi0JCQkJNDE1ODY0OUYyM0JGN0I5MzAwQTBBNjFFIC8qIFJlYWx0
aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8sCiAJCQkJMDdENjM3M0UxQkIwQjExMzAwMjU2Q0U5IC8q
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oICovLAogCQkJCTA3RDYzNzNGMUJCMEIxMTMw
MDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0gKi8sCiAJCQkpOwpAQCAt
MjgzMDgsNiArMjgzMDksOCBAQAogCQlDRDlEODI3QzFDN0JCMkVEMDA2RkYwNjYgLyogY3YgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTdCOEVENUVEMjZG
MEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovLAorCQkJCTdCOEVENUVGMjZGMEMxMjMw
MDhBQzAyMyAvKiBDVlV0aWxpdGllcy5tbSAqLywKIAkJCQk3QjEwMzM5RDI1NDk3MjAxMDBDOEMx
QUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovLAogCQkJCTdCMTAzMzlBMjU0OTcyMDAwMEM4
QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuY3BwICovLAogCQkJCTdCMTAzMzlDMjU0
OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuaCAqLywKQEAgLTMxOTcx
LDYgKzMxOTc0LDcgQEAKIAkJCQk2MkNEMzI1QTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNUQyMzg1MjI3QTA2NTIwMDBCOUJEQSAvKiBDdXN0
b21IZWFkZXJGaWVsZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCMUUxM0U3MjE3OTBENjYwMDQy
Q0Y5OCAvKiBDdXN0b21QYWludENhbnZhcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0I4RUQ1RjAy
NkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENC
NDEzRTBFODYzM0ZEMDAzMkM0RjAgLyogRGFzaEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
N0JDNkEyMTE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3QkM2QTI0MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZUF1dGhvcml6ZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzMxMzIsNyArMzMxMzYsNiBAQAogCQkJCUJDNjkzMjc0MEQ3RTI5MzkwMEFF
NDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1MkZCQkJDMERF
MjdDQjYwMDAxRDM4NiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEwQkNGNTYyNkYwQ0Q4QzAwNDBCMTI0IC8qIFJUQ0xvY2FsU2Vzc2lv
bkRlc2NyaXB0aW9uSW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVFMEU5NDQxMTMzQzg5RjAw
QjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M0NUM5RDMxRTNG
Q0JENzAwQUFCNTU4IC8qIEpTRE9NV3JhcHBlckNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0E4MDYxRTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNDc0Miw2ICszNDc0NSw3IEBACiAJCQkJMDdBQjk5NkIxOERBM0MwMTAwMTg3NzFFIC8q
IFJUQ0ljZVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzNTkxMDgxRTdEREM3MzAwRjMw
NjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzNTkx
MDkxRTdEREM3MzAwRjMwNjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFN0YXRlLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTBCQ0Y1NjI2RjBDRDhDMDA0MEIxMjQgLyogUlRDTG9jYWxTZXNzaW9uRGVzY3Jp
cHRpb25Jbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUMxNEJDNjI2REU2REU4MDA2ODVCRjUg
LyogUlRDTmV0d29ya01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mzc5NEZFMTlGNTg2
NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzM3
OTRERTE5RUUyQzUyMDBFNUEwNDUgLyogUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NW
VXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxp
dGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJkMWZlMGU5Y2FmZTdkMGQ2MWFkMTRiNWIzMmFiZGFmMGZiODZi
MzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9DVlV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPENvcmVWaWRlby9Db3JlVmlkZW8uaD4KKyNpbmNsdWRlIDx1dGlsaXR5
PgorI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
KwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgPSBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVyUG9v
bCo7Cit1c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZmZXIqOworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKy8vIENyZWF0ZXMgQ1ZQaXhlbEJ1ZmZlclBvb2wgdGhhdCBjcmVh
dGVzIENWUGl4ZWxCdWZmZXJzIGJhY2tlZCBieSBJT1N1cmZhY2VzLgorLy8gVGhlc2UgYnVmZmVy
cyBjYW4gYmUgZm9yIGV4YW1wbGUgc2VudCB0aHJvdWdoIElQQy4KK1dFQkNPUkVfRVhQT1JUIEV4
cGVjdGVkPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4sIENWUmV0dXJuPiBjcmVhdGVJ
T1N1cmZhY2VDVlBpeGVsQnVmZmVyUG9vbChJbnRTaXplLCBPU1R5cGUgcGl4ZWxGb3JtYXQsIHVu
c2lnbmVkIG1pbmltdW1CdWZmZXJDb3VudCA9IDB1KTsKKworV0VCQ09SRV9FWFBPUlQgRXhwZWN0
ZWQ8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4gY3JlYXRlQ1ZQaXhlbEJ1
ZmZlckZyb21Qb29sKENWUGl4ZWxCdWZmZXJQb29sUmVmKTsKKworV0VCQ09SRV9FWFBPUlQgRXhw
ZWN0ZWQ8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4gY3JlYXRlQ1ZQaXhl
bEJ1ZmZlcihJT1N1cmZhY2VSZWYpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjZDJkMTQzMDU4Mzlj
ZTE5OGNhZjJhNWRlNWQ2N2Y1YzFkNDY5YjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQpAQCAtMCwwICsxLDEwOCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQ1ZVdGlsaXRpZXMu
aCIKKworI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2ltcG9ydCAiQ29yZVZpZGVvU29m
dExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitFeHBlY3RlZDxSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclBvb2xSZWY+LCBDVlJldHVybj4gY3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZl
clBvb2woSW50U2l6ZSBzaXplLCBPU1R5cGUgZm9ybWF0LCB1bnNpZ25lZCBtaW5pbXVtQnVmZmVy
Q291bnQpCit7CisgICAgYXV0byBwaXhlbEF0dHJpYnV0ZXMgPSBAeworICAgICAgICAoX19icmlk
Z2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlcldpZHRoS2V5OiBAKHNpemUud2lkdGgoKSksCisg
ICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0S2V5OiBAKHNp
emUuaGVpZ2h0KCkpLAorICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZl
clBpeGVsRm9ybWF0VHlwZUtleTogQChmb3JtYXQpLAorICAgICAgICAoX19icmlkZ2UgTlNTdHJp
bmcgKilrQ1ZQaXhlbEJ1ZmZlckNHSW1hZ2VDb21wYXRpYmlsaXR5S2V5OiBATk8sCisjaWYgUExB
VEZPUk0oTUFDKQorICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9w
ZW5HTENvbXBhdGliaWxpdHlLZXkgOiBAWUVTLAorI2VuZGlmCisgICAgICAgIChfX2JyaWRnZSBO
U1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7IH0KKyAg
ICB9OworICAgIE5TRGljdGlvbmFyeSogcG9vbE9wdGlvbnMgPSBudWxscHRyOworICAgIGlmICht
aW5pbXVtQnVmZmVyQ291bnQpIHsKKyAgICAgICAgcG9vbE9wdGlvbnMgPSBAeworICAgICAgICAg
ICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQb29sTWluaW11bUJ1ZmZlckNv
dW50S2V5OiBAKG1pbmltdW1CdWZmZXJDb3VudCkKKyAgICAgICAgfTsKKyAgICB9CisgICAgQ1ZQ
aXhlbEJ1ZmZlclBvb2xSZWYgcG9vbCA9IG51bGxwdHI7CisgICAgYXV0byBzdGF0dXMgPSBDVlBp
eGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoX19icmlkZ2UgQ0ZEaWN0
aW9uYXJ5UmVmKSBwb29sT3B0aW9ucywgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhlbEF0
dHJpYnV0ZXMsICZwb29sKTsKKyAgICBpZiAoc3RhdHVzICE9IGtDVlJldHVyblN1Y2Nlc3MgfHwg
IXBvb2wpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChzdGF0dXMpOworICAgIHJldHVy
biBhZG9wdENGKHBvb2wpOworfQorCitFeHBlY3RlZDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4sIENWUmV0dXJuPiBjcmVhdGVDVlBpeGVsQnVmZmVyRnJvbVBvb2woQ1ZQaXhlbEJ1ZmZlclBv
b2xSZWYgcGl4ZWxCdWZmZXJQb29sKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIgPSBudWxscHRyOworICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGVQ
aXhlbEJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlclBvb2wsICZwaXhlbEJ1
ZmZlcik7CisgICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzIHx8ICFwaXhlbEJ1ZmZl
cikKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHN0YXR1cyk7CisgICAgcmV0dXJuIGFk
b3B0Q0YocGl4ZWxCdWZmZXIpOworfQorCitzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHBpeGVsQnVm
ZmVyQ3JlYXRpb25PcHRpb25zKElPU3VyZmFjZVJlZiBzdXJmYWNlKQoreworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICBhdXRvIGZvcm1hdCA9IElPU3VyZmFjZUdldFBpeGVsRm9ybWF0KHN1cmZhY2Up
OworICAgIGlmIChmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5h
clZpZGVvUmFuZ2UgfHwgZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQ
bGFuYXJGdWxsUmFuZ2UpIHsKKyAgICAgICAgY29uc3RleHByIHNpemVfdCBtYWNyb2Jsb2NrU2l6
ZSA9IDE2OworICAgICAgICBhdXRvIHdpZHRoID0gSU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFjZSk7
CisgICAgICAgIGF1dG8gaGVpZ2h0ID0gSU9TdXJmYWNlR2V0SGVpZ2h0KHN1cmZhY2UpOworICAg
ICAgICBhdXRvIGV4dGVuZGVkUmlnaHQgPSByb3VuZFVwVG9NdWx0aXBsZU9mKG1hY3JvYmxvY2tT
aXplLCB3aWR0aCkgLSB3aWR0aDsKKyAgICAgICAgYXV0byBleHRlbmRlZEJvdHRvbSA9IHJvdW5k
VXBUb011bHRpcGxlT2YobWFjcm9ibG9ja1NpemUsIGhlaWdodCkgLSBoZWlnaHQ7CisgICAgICAg
IGlmICgoSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApID49IHdpZHRo
ICsgZXh0ZW5kZWRSaWdodCkKKyAgICAgICAgICAgICYmIChJT1N1cmZhY2VHZXRCeXRlc1BlclJv
d09mUGxhbmUoc3VyZmFjZSwgMSkgPj0gd2lkdGggKyBleHRlbmRlZFJpZ2h0KQorICAgICAgICAg
ICAgJiYgKElPU3VyZmFjZUdldEFsbG9jU2l6ZShzdXJmYWNlKSA+PSAoaGVpZ2h0ICsgZXh0ZW5k
ZWRCb3R0b20pICogSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApICog
MyAvIDIpKSB7CisgICAgICAgICAgICByZXR1cm4gKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZikg
QHsKKyAgICAgICAgICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9w
ZW5HTENvbXBhdGliaWxpdHlLZXkgOiBAWUVTLAorICAgICAgICAgICAgICAgIChfX2JyaWRnZSBO
U1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyRXh0ZW5kZWRQaXhlbHNSaWdodEtleSA6IEAoZXh0ZW5k
ZWRSaWdodCksCisgICAgICAgICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxC
dWZmZXJFeHRlbmRlZFBpeGVsc0JvdHRvbUtleSA6IEAoZXh0ZW5kZWRCb3R0b20pCisgICAgICAg
ICAgICB9OworICAgICAgICB9CisgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc3VyZmFj
ZSk7CisjZW5kaWYKKyAgICByZXR1cm4gKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZikgQHsKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVm
ZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSA6IEBZRVMKKyNlbmRpZgorICAgIH07Cit9CisKK0V4
cGVjdGVkPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiwgQ1ZSZXR1cm4+IGNyZWF0ZUNWUGl4
ZWxCdWZmZXIoSU9TdXJmYWNlUmVmIHN1cmZhY2UpCit7CisgICAgQVNTRVJUKHN1cmZhY2UpOwor
ICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBudWxscHRyOworICAgIGF1dG8gc3Rh
dHVzID0gQ1ZQaXhlbEJ1ZmZlckNyZWF0ZVdpdGhJT1N1cmZhY2Uoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgc3VyZmFjZSwgcGl4ZWxCdWZmZXJDcmVhdGlvbk9wdGlvbnMoc3VyZmFjZSksICZwaXhlbEJ1
ZmZlcik7CisgICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzIHx8ICFwaXhlbEJ1ZmZl
cikKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHN0YXR1cyk7CisgICAgcmV0dXJuIGFk
b3B0Q0YocGl4ZWxCdWZmZXIpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKaW5kZXgg
YTUyNTg5NTEwMmJiYTU4MjljZDM3ODQ0N2I5NWFiNTc2YzZhZjJmNi4uNGYyMjlkZTZhZmY5ZGYx
YTFkNDJkNzYwZTI3MDk5MDVjODg3ZjQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaApAQCAt
NTgsMTggKzU4LDEyIEBAIHB1YmxpYzoKICNlbmRpZgogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0o
TUFDQ0FUQUxZU1QpCi0gICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+IGNyZWF0ZVBpeGVsQnVmZmVyKElPU3VyZmFjZVJlZik7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyKElPU3VyZmFjZVJl
ZiwgY29uc3QgSW50U2l6ZSYpOwotI2VuZGlmCi0KICAgICB1aW50MzJfdCBwaXhlbEZvcm1hdCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxGb3JtYXQ7IH0KIAogcHJpdmF0ZToKICAgICBXRUJDT1JF
X0VYUE9SVCBleHBsaWNpdCBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUKHVpbnQzMl90IHBpeGVsRm9y
bWF0KTsKIAogI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICBDRkRpY3Rpb25hcnlSZWYg
aW9TdXJmYWNlUGl4ZWxCdWZmZXJDcmVhdGlvbk9wdGlvbnMoSU9TdXJmYWNlUmVmKTsKICAgICBS
ZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUNNU2FtcGxlQnVmZmVyKElPU3VyZmFj
ZVJlZiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgSW50U2l6ZSYpOwogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRy
YW5zZmVyU2Vzc2lvblZULm1tCmluZGV4IGYzMTY5YWJjMDI3NzA4MmYwY2ZjZTQ3MjY3OWUxMTA3
OTdjOGM5ZjYuLmMwY2E1ZjYzYjhhOWEyZDY1M2FiYTM0OGFlOTk0NTQyNDc3MzU0NTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVC5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAiY29uZmln
LmgiCiAjaW1wb3J0ICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgiCiAKKyNpbXBvcnQgIkNWVXRp
bGl0aWVzLmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2ltcG9ydCAiTG9nZ2lu
Zy5oIgogI2ltcG9ydCAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCkBAIC00MywxNSArNDQsNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBpbmxpbmUgQ0ZTdHJpbmdSZWYgY3ZQaXhl
bEZvcm1hdE9wZW5HTEtleSgpCi17Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRG
T1JNKE1BQ0NBVEFMWVNUKQotICAgIHJldHVybiBrQ1ZQaXhlbEZvcm1hdE9wZW5HTEVTQ29tcGF0
aWJpbGl0eTsKLSNlbHNlCi0gICAgcmV0dXJuIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJp
bGl0eUtleTsKLSNlbmRpZgotfQotCiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpJbWFnZVRyYW5z
ZmVyU2Vzc2lvblZUKHVpbnQzMl90IHBpeGVsRm9ybWF0KQogewogICAgIFZUUGl4ZWxUcmFuc2Zl
clNlc3Npb25SZWYgdHJhbnNmZXJTZXNzaW9uOwpAQCAtODQsMjkgKzc2LDExIEBAIGJvb2wgSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVDo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogewogICAg
IGlmIChtX3NpemUgPT0gc2l6ZSAmJiBtX291dHB1dEJ1ZmZlclBvb2wpCiAgICAgICAgIHJldHVy
biB0cnVlOwotCi0gICAgTlNEaWN0aW9uYXJ5KiBwaXhlbEJ1ZmZlck9wdGlvbnMgPSBAewotICAg
ICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlcldpZHRoS2V5IDogQChzaXpl
LndpZHRoKCkpLAotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckhl
aWdodEtleSA6IEAoc2l6ZS5oZWlnaHQoKSksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAq
KWtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IDogQChtX3BpeGVsRm9ybWF0KSwKLSAg
ICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopY3ZQaXhlbEZvcm1hdE9wZW5HTEtleSgpIDogQFlF
UywKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VQ
cm9wZXJ0aWVzS2V5IDogQHsgLyplbXB0eSBkaWN0aW9uYXJ5Ki8gfSwKLSAgICB9OwotCi0gICAg
TlNEaWN0aW9uYXJ5KiBwaXhlbEJ1ZmZlclBvb2xPcHRpb25zID0gQHsKLSAgICAgICAgKF9fYnJp
ZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQb29sTWluaW11bUJ1ZmZlckNvdW50S2V5OiBA
KDYpCi0gICAgfTsKLQotICAgIENWUGl4ZWxCdWZmZXJQb29sUmVmIGJ1ZmZlclBvb2w7Ci0gICAg
YXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBpeGVsQnVmZmVyUG9vbE9wdGlvbnMsIChfX2Jy
aWRnZSBDRkRpY3Rpb25hcnlSZWYpcGl4ZWxCdWZmZXJPcHRpb25zLCAmYnVmZmVyUG9vbCk7Ci0g
ICAgQVNTRVJUKCFzdGF0dXMpOwotICAgIGlmIChzdGF0dXMgIT0ga0NWUmV0dXJuU3VjY2VzcykK
KyAgICBhdXRvIGJ1ZmZlclBvb2wgPSBjcmVhdGVJT1N1cmZhY2VDVlBpeGVsQnVmZmVyUG9vbChz
aXplLCBtX3BpeGVsRm9ybWF0LCA2KS52YWx1ZV9vcihudWxscHRyKTsKKyAgICBpZiAoIWJ1ZmZl
clBvb2wpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIG1fb3V0cHV0QnVmZmVyUG9vbCA9
IGFkb3B0Q0YoYnVmZmVyUG9vbCk7CisgICAgbV9vdXRwdXRCdWZmZXJQb29sID0gV1RGTW92ZShi
dWZmZXJQb29sKTsKICAgICBtX3NpemUgPSBzaXplOwotICAgIG1faW9TdXJmYWNlQnVmZmVyQXR0
cmlidXRlcyA9IG51bGxwdHI7Ci0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTE4LDI2ICs5
MiwyMCBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDo6Y29udmVydFBpeGVsQnVmZmVyKENWUGl4ZWxCdQogICAgIGlmICghc291cmNlQnVmZmVyIHx8
ICFzZXRTaXplKHNpemUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIENWUGl4ZWxC
dWZmZXJSZWYgb3V0cHV0QnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IENWUGl4
ZWxCdWZmZXJQb29sQ3JlYXRlUGl4ZWxCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9vdXRw
dXRCdWZmZXJQb29sLmdldCgpLCAmb3V0cHV0QnVmZmVyKTsKLSAgICBpZiAoc3RhdHVzKSB7Ci0g
ICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVy
dFBpeGVsQnVmZmVyLCBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZVBpeGVsQnVmZmVyIGZhaWxlZCB3
aXRoIGVycm9yICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKKyAgICBhdXRvIHJlc3Vs
dCA9IGNyZWF0ZUNWUGl4ZWxCdWZmZXJGcm9tUG9vbChtX291dHB1dEJ1ZmZlclBvb2wuZ2V0KCkp
OworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyLCBjcmVhdGVDVlBpeGVsQnVmZmVy
RnJvbVBvb2wgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdC5l
cnJvcigpKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICBhdXRvIHJlc3Vs
dCA9IGFkb3B0Q0Yob3V0cHV0QnVmZmVyKTsKKyAgICBhdXRvIG91dHB1dEJ1ZmZlciA9IFdURk1v
dmUoKnJlc3VsdCk7CiAKLSAgICBhdXRvIGVyciA9IFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25UcmFu
c2ZlckltYWdlKG1fdHJhbnNmZXJTZXNzaW9uLmdldCgpLCBzb3VyY2VCdWZmZXIsIG91dHB1dEJ1
ZmZlcik7CisgICAgYXV0byBlcnIgPSBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJhbnNmZXJJbWFn
ZShtX3RyYW5zZmVyU2Vzc2lvbi5nZXQoKSwgc291cmNlQnVmZmVyLCBvdXRwdXRCdWZmZXIuZ2V0
KCkpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRy
YW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXIsIFZUUGl4ZWxUcmFuc2ZlclNlc3Np
b25UcmFuc2ZlckltYWdlIGZhaWxlZCB3aXRoIGVycm9yICVkIiwgc3RhdGljX2Nhc3Q8aW50Pihl
cnIpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9u
VlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgY29u
c3QgSW50U2l6ZSYgc2l6ZSkKLXsKLSAgICByZXR1cm4gY29udmVydFBpeGVsQnVmZmVyKFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIpLCBzaXplKTsKKyAgICBy
ZXR1cm4gb3V0cHV0QnVmZmVyOwogfQogCiBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IElt
YWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZl
clJlZiBzb3VyY2VCdWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUpCkBAIC0xNTQsNyArMTIyLDcg
QEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpj
b252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICBpZiAoIXNldFNpemUoc2l6ZSkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBjb252ZXJ0ZWRQaXhlbEJ1ZmZlciA9IGNy
ZWF0ZVBpeGVsQnVmZmVyKHNvdXJjZUJ1ZmZlciwgc2l6ZSk7CisgICAgYXV0byBjb252ZXJ0ZWRQ
aXhlbEJ1ZmZlciA9IGNvbnZlcnRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc2l6ZSk7CiAgICAg
aWYgKCFjb252ZXJ0ZWRQaXhlbEJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAg
LTI2Niw4MiArMjM0LDExIEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIoQ0dJbWFnCiAKICNpZiAhUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpCiAKLSNpZiBQTEFURk9STShNQUMpCi1zdGF0aWMgaW50MzJfdCByb3Vu
ZFVwVG9NYWNyb2Jsb2NrTXVsdGlwbGUoaW50MzJfdCBzaXplKQotewotICAgIHJldHVybiAoc2l6
ZSArIDE1KSAmIH4xNTsKLX0KLSNlbmRpZgotCi1DRkRpY3Rpb25hcnlSZWYgSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDo6aW9TdXJmYWNlUGl4ZWxCdWZmZXJDcmVhdGlvbk9wdGlvbnMoSU9TdXJmYWNl
UmVmIHN1cmZhY2UpCi17Ci0gICAgaWYgKG1faW9TdXJmYWNlQnVmZmVyQXR0cmlidXRlcykKLSAg
ICAgICAgcmV0dXJuIG1faW9TdXJmYWNlQnVmZmVyQXR0cmlidXRlcy5nZXQoKTsKLQotICAgIG1f
aW9TdXJmYWNlQnVmZmVyQXR0cmlidXRlcyA9IChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpIEB7
Ci0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWN2UGl4ZWxGb3JtYXRPcGVuR0xLZXkoKSA6
IEBZRVMsCi0gICAgfTsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBhdXRvIGZvcm1hdCA9IElP
U3VyZmFjZUdldFBpeGVsRm9ybWF0KHN1cmZhY2UpOwotICAgIGF1dG8gd2lkdGggPSBJT1N1cmZh
Y2VHZXRXaWR0aChzdXJmYWNlKTsKLSAgICBhdXRvIGhlaWdodCA9IElPU3VyZmFjZUdldEhlaWdo
dChzdXJmYWNlKTsKLSAgICBhdXRvIGV4dGVuZGVkUmlnaHQgPSByb3VuZFVwVG9NYWNyb2Jsb2Nr
TXVsdGlwbGUod2lkdGgpIC0gd2lkdGg7Ci0gICAgYXV0byBleHRlbmRlZEJvdHRvbSA9IHJvdW5k
VXBUb01hY3JvYmxvY2tNdWx0aXBsZShoZWlnaHQpIC0gaGVpZ2h0OwotCi0gICAgaWYgKChmb3Jt
YXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hclZpZGVvUmFuZ2UgfHwg
Zm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJGdWxsUmFuZ2Up
Ci0gICAgICAgICYmIChJT1N1cmZhY2VHZXRCeXRlc1BlclJvd09mUGxhbmUoc3VyZmFjZSwgMCkg
Pj0gd2lkdGggKyBleHRlbmRlZFJpZ2h0KQotICAgICAgICAmJiAoSU9TdXJmYWNlR2V0Qnl0ZXNQ
ZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDEpID49IHdpZHRoICsgZXh0ZW5kZWRSaWdodCkKLSAgICAg
ICAgJiYgKElPU3VyZmFjZUdldEFsbG9jU2l6ZShzdXJmYWNlKSA+PSAoaGVpZ2h0ICsgZXh0ZW5k
ZWRCb3R0b20pICogSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApICog
MyAvIDIpKSB7Ci0gICAgICAgICAgICBtX2lvU3VyZmFjZUJ1ZmZlckF0dHJpYnV0ZXMgPSAoX19i
cmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKSBAewotICAgICAgICAgICAgICAgIChfX2JyaWRnZSBOU1N0
cmluZyAqKWtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSA6IEBZRVMsCi0gICAg
ICAgICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJFeHRlbmRlZFBp
eGVsc1JpZ2h0S2V5IDogQChleHRlbmRlZFJpZ2h0KSwKLSAgICAgICAgICAgICAgICAoX19icmlk
Z2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckV4dGVuZGVkUGl4ZWxzQm90dG9tS2V5IDogQChl
eHRlbmRlZEJvdHRvbSkKLSAgICAgICAgICAgIH07Ci0gICAgfQotI2Vsc2UKLSAgICBVTlVTRURf
UEFSQU0oc3VyZmFjZSk7Ci0jZW5kaWYKLQotICAgIHJldHVybiBtX2lvU3VyZmFjZUJ1ZmZlckF0
dHJpYnV0ZXMuZ2V0KCk7Ci19Ci0KLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFnZVRy
YW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcihJT1N1cmZhY2VSZWYgc3VyZmFjZSkK
LXsKLSAgICBpZiAoIXN1cmZhY2UpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcjsKLSAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZm
ZXJDcmVhdGVXaXRoSU9TdXJmYWNlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN1cmZhY2UsIGlvU3Vy
ZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRpb25zKHN1cmZhY2UpLCAmcGl4ZWxCdWZmZXIpOwot
ICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJDVlBpeGVsQnVm
ZmVyQ3JlYXRlV2l0aElPU3VyZmFjZSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRp
Y19jYXN0PGludD4oc3RhdHVzKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAg
ICByZXR1cm4gYWRvcHRDRihwaXhlbEJ1ZmZlcik7Ci19Ci0KLVJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcihJT1N1cmZh
Y2VSZWYgc3VyZmFjZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK1JldGFpblB0cjxDTVNhbXBsZUJ1
ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIoSU9T
dXJmYWNlUmVmIHN1cmZhY2UsIGNvbnN0IE1lZGlhVGltZSYgc2FtcGxlVGltZSwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkKIHsKICAgICBpZiAoIXN1cmZhY2UgfHwgIXNldFNpemUoc2l6ZSkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwotCi0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcjsK
LSAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGVXaXRoSU9TdXJmYWNlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIHN1cmZhY2UsIGlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRp
b25zKHN1cmZhY2UpLCAmcGl4ZWxCdWZmZXIpOwotICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAg
UkVMRUFTRV9MT0coTWVkaWEsICJDVlBpeGVsQnVmZmVyQ3JlYXRlV2l0aElPU3VyZmFjZSBmYWls
ZWQgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7Ci0gICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIGF1dG8gcmV0YWluZWRCdWZmZXIgPSBh
ZG9wdENGKHBpeGVsQnVmZmVyKTsKLSAgICBpZiAobV9zaXplID09IEludFNpemUoQ1ZQaXhlbEJ1
ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKSwgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChwaXhlbEJ1
ZmZlcikpICYmIG1fcGl4ZWxGb3JtYXQgPT0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlw
ZShwaXhlbEJ1ZmZlcikpCi0gICAgICAgIHJldHVybiByZXRhaW5lZEJ1ZmZlcjsKLQotICAgIHJl
dHVybiBjb252ZXJ0UGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIsIHNpemUpOwotfQotCi1SZXRhaW5Q
dHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZUNNU2Ft
cGxlQnVmZmVyKElPU3VyZmFjZVJlZiBzdXJmYWNlLCBjb25zdCBNZWRpYVRpbWUmIHNhbXBsZVRp
bWUsIGNvbnN0IEludFNpemUmIHNpemUpCi17Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IGNyZWF0
ZVBpeGVsQnVmZmVyKHN1cmZhY2UsIHNpemUpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBjcmVh
dGVDVlBpeGVsQnVmZmVyKHN1cmZhY2UpLnZhbHVlX29yKG51bGxwdHIpOwogICAgIGlmICghcGl4
ZWxCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KaW5kZXggNTIxZGU3YTk3NGVlYzIwZTk5
NzRjMDhhZDM5YjZjZWY3YzIxZjdlMS4uNGE0N2Q0NTYzZGJiNTA3MGQyMTdjMTU0ZDlmYWU2ZmZk
Zjg1NThjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VD
b2NvYS5tbQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaWYgVVNFKExJQldFQlJUQykKIAorI2ltcG9y
dCAiQ1ZVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk1lZGlhU2Ft
cGxlQVZGT2JqQy5oIgogI2ltcG9ydCAiUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oIgpAQCAtOTgs
MTAgKzk5LDEyIEBAIENWUGl4ZWxCdWZmZXJQb29sUmVmIFJlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZUNvY29hOjpwaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpCiAgICAgICAgIGNhc2Ugd2VicnRj
OjpCdWZmZXJUeXBlOjpJMDEwOgogICAgICAgICAgICAgcG9vbEJ1ZmZlclR5cGUgPSBrQ1ZQaXhl
bEZvcm1hdFR5cGVfNDIwWXBDYkNyMTBCaVBsYW5hclZpZGVvUmFuZ2U7CiAgICAgICAgIH0KLSAg
ICAgICAgbV9waXhlbEJ1ZmZlclBvb2wgPSBjcmVhdGVQaXhlbEJ1ZmZlclBvb2wod2lkdGgsIGhl
aWdodCwgcG9vbEJ1ZmZlclR5cGUpOwotICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbFdpZHRoID0g
d2lkdGg7Ci0gICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sSGVpZ2h0ID0gaGVpZ2h0OwotICAgICAg
ICBtX3BpeGVsQnVmZmVyUG9vbEJ1ZmZlclR5cGUgPSBidWZmZXJUeXBlOworICAgICAgICBpZiAo
YXV0byBwb29sID0gY3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZlclBvb2woeyBzdGF0aWNfY2Fz
dDxpbnQ+KHdpZHRoKSwgc3RhdGljX2Nhc3Q8aW50PihoZWlnaHQpIH0sIHBvb2xCdWZmZXJUeXBl
KSkgeworICAgICAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2wgPSBXVEZNb3ZlKCpwb29sKTsKKyAg
ICAgICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggPSB3aWR0aDsKKyAgICAgICAgICAgIG1f
cGl4ZWxCdWZmZXJQb29sSGVpZ2h0ID0gaGVpZ2h0OworICAgICAgICAgICAgbV9waXhlbEJ1ZmZl
clBvb2xCdWZmZXJUeXBlID0gYnVmZmVyVHlwZTsKKyAgICAgICAgfQogICAgIH0KICAgICByZXR1
cm4gbV9waXhlbEJ1ZmZlclBvb2wuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRp
ZXMuaAppbmRleCA1ZmJhZjVlZGM2NDAyNjE0ZWRhZmQ3YWUxNmRhZTgwYmJiMTdhOTAyLi4zODBk
MzczMWIwYTE1M2FiYjljMjI3MGJmZWU3NjgwZjAzYjNiOGVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZp
ZGVvVXRpbGl0aWVzLmgKQEAgLTI3LDkgKzI3LDYgQEAKIAogI2luY2x1ZGUgPENvcmVWaWRlby9D
b3JlVmlkZW8uaD4KIAotdXNpbmcgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgPSBzdHJ1Y3QgX19DVlBp
eGVsQnVmZmVyUG9vbCo7Ci11c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZm
ZXIqOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgT1NUeXBlIHByZWZl
cmVkUGl4ZWxCdWZmZXJGb3JtYXQoKQpAQCAtNDEsNyArMzgsNCBAQCBzdGF0aWMgaW5saW5lIE9T
VHlwZSBwcmVmZXJlZFBpeGVsQnVmZmVyRm9ybWF0KCkKICNlbmRpZgogfQogCi1XRUJDT1JFX0VY
UE9SVCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclBvb2xSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyUG9v
bChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIE9TVHlwZSk7Ci1XRUJDT1JFX0VYUE9SVCBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY3JlYXRlUGl4ZWxCdWZmZXJGcm9tUG9vbChDVlBp
eGVsQnVmZmVyUG9vbFJlZik7Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMubW0K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2MmVjMjc2YjRmMTMxZDcwMDNmM2YzMjBl
MDk3NDZjZDRjZWNjMjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlk
ZW9VdGlsaXRpZXMubW0KKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0gKiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0g
KiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUgotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSAqIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCi0gKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIlJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCIK
LQotI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclBvb2xSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyUG9vbChz
aXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIE9TVHlwZSB2aWRlb0NhcHR1cmVGb3JtYXQpCi17
Ci0gICAgYXV0byBwaXhlbEF0dHJpYnV0ZXMgPSBAewotICAgICAgICAoX19icmlkZ2UgTlNTdHJp
bmcgKilrQ1ZQaXhlbEJ1ZmZlcldpZHRoS2V5OiBAKHdpZHRoKSwKLSAgICAgICAgKF9fYnJpZGdl
IE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJIZWlnaHRLZXk6IEAoaGVpZ2h0KSwKLSAgICAgICAg
KF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXk6IEAo
dmlkZW9DYXB0dXJlRm9ybWF0KSwKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4
ZWxCdWZmZXJDR0ltYWdlQ29tcGF0aWJpbGl0eUtleTogQE5PLAotI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsRm9ybWF0T3BlbkdM
RVNDb21wYXRpYmlsaXR5IDogQFlFUywKLSNlbHNlCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmlu
ZyAqKWtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSA6IEBZRVMsCi0jZW5kaWYK
LSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VQcm9w
ZXJ0aWVzS2V5IDogQHsgfQotICAgIH07Ci0KLSAgICBDVlBpeGVsQnVmZmVyUG9vbFJlZiBwb29s
ID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJQb29sQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpcGl4
ZWxBdHRyaWJ1dGVzLCAmcG9vbCk7Ci0KLSAgICBpZiAoc3RhdHVzICE9IGtDVlJldHVyblN1Y2Nl
c3MpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIGFkb3B0Q0YocG9vbCk7
Ci19Ci0KLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlckZyb21Q
b29sKENWUGl4ZWxCdWZmZXJQb29sUmVmIHBpeGVsQnVmZmVyUG9vbCkKLXsKLSAgICBDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IENWUGl4
ZWxCdWZmZXJQb29sQ3JlYXRlUGl4ZWxCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxC
dWZmZXJQb29sLCAmcGl4ZWxCdWZmZXIpOwotCi0gICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1cm5T
dWNjZXNzKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gYWRvcHRDRihwaXhl
bEJ1ZmZlcik7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQppbmRleCBkZTNiYjZhNzA3NjhkYzhh
ZTU4ZDBjZGViYTBhNDgwYWU4YmZiZWY1Li5jYTY1MGE1NGU0M2U4MmM4ZTQyNGRkYzNjYmM4NDQ3
MmY4NjQ4M2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlVVJMUmVzcG9uc2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0
IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4K
ICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9Tb3J0ZWRBcnJheU1hcC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaAppbmRleCBkOThmNzJjYTUyYTFm
MWMxZWY4YjI5YjhmNzEyMjQyMzVjODE4ZjdhLi5lZWM4ZDY2ZmFhYmFmYjc5OWIwZmRlZGM0NTlj
NGRiNWE3ZjIyZTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAi
RGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlJUQ0RlY29kZXJJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiUlRDRW5jb2RlcklkZW50aWZpZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJh
bnNmZXJTZXNzaW9uVlQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogCiBuYW1lc3BhY2UgSVBD
IHsKQEAgLTkzLDcgKzkyLDYgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFJUQ0VuY29kZXJJZGVu
dGlmaWVyLCB3ZWJydGM6OkxvY2FsRW5jb2Rlcj4gbV9lbmNvZGVycyBXVEZfR1VBUkRFRF9CWV9M
T0NLKG1fbG9jayk7IC8vIE9ubHkgbW9kaWZpZWQgb24gdGhlIGxpYldlYlJUQ0NvZGVjc1F1ZXVl
IGJ1dCBtYXkgZ2V0IGFjY2Vzc2VkIGZyb20gdGhlIG1haW4gdGhyZWFkLgogCiAgICAgUmVmPFdv
cmtRdWV1ZT4gbV9xdWV1ZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFu
c2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHku
bW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5
Lm1tCmluZGV4IGIyMzI1ODI3NDRjMTU4NjBlOTI1M2ViM2RiZTkyNDRlOTE5ZTg2MWYuLjQ4ODk1
MmMyNWQ5MTg5NjYwYjAzZjE2ODQyM2I0YjQwZmU1M2VlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQpAQCAt
MzMsNiArMzMsNyBAQAogI2ltcG9ydCAiTGliV2ViUlRDQ29kZWNzTWVzc2FnZXMuaCIKICNpbXBv
cnQgIkxpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgorI2ltcG9ydCA8V2ViQ29yZS9DVlV0aWxpdGllcy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9MaWJXZWJSVENQcm92aWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW1vdGVWaWRl
b1NhbXBsZS5oPgogI2ltcG9ydCA8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RGVjb2Rlci5oPgpA
QCAtMjA3LDExICsyMDgsMTAgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6ZW5jb2RlRnJh
bWUoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZToKICAgICBpZiAoIWVu
Y29kZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
biB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9IHNhbXBsZS52aWRl
b0Zvcm1hdCgpKQotICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gV2ViQ29yZTo6SW1h
Z2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHNhbXBsZS52aWRlb0Zvcm1hdCgpKTsKLQogI2lm
ICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbi0+Y3JlYXRlUGl4ZWxCdWZmZXIoc2FtcGxlLnN1cmZhY2UoKSk7CisgICAg
aWYgKCFzYW1wbGUuc3VyZmFjZSgpKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBwaXhlbEJ1
ZmZlciA9IFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxCdWZmZXIoc2FtcGxlLnN1cmZhY2UoKSkudmFs
dWVfb3IobnVsbHB0cik7CiAgICAgd2VicnRjOjplbmNvZGVMb2NhbEVuY29kZXJGcmFtZShlbmNv
ZGVyLCBwaXhlbEJ1ZmZlci5nZXQoKSwgc2FtcGxlLnRpbWUoKS50b1RpbWVTY2FsZSgxMDAwMDAw
KS50aW1lVmFsdWUoKSwgdGltZVN0YW1wLCB0b1dlYlJUQ1ZpZGVvUm90YXRpb24oc2FtcGxlLnJv
dGF0aW9uKCkpLCBzaG91bGRFbmNvZGVBc0tleUZyYW1lKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5j
cHAKaW5kZXggOWFkOTRkNjg2ZTQzODBiNWExM2I5NDc3MTMzYTg4MjI1MWRiMDQ3Yy4uNzMwMTFl
MTY4YTk4ZjgwMzczY2QwYjY3M2Y3NGIwYzZkNDMxMjY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0z
Myw5ICszMyw5IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3Mu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NWVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9M
aWJXZWJSVENNYWNyb3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZQOVV0aWxpdGll
c0NvY29hLmg+CkBAIC0zMzIsMTUgKzMzMiw5IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21w
bGV0ZWREZWNvZGluZyhSVENEZWNvZGVySWRlbnRpZmllciBkZWNvZGVySWRlbnRpZmllciwKICAg
ICBpZiAoIWRlY29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lv
bi0+cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKLSAgICAgICAg
bV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6
OmNyZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7Ci0KLSAgICBpZiAoIW1faW1hZ2VU
cmFuc2ZlclNlc3Npb24pIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgaWYg
KCFyZW1vdGVTYW1wbGUuc3VyZmFjZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
YXV0byBwaXhlbEJ1ZmZlciA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZVBpeGVsQnVm
ZmVyKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBsZS5zaXplKCkpOworICAgIGF1
dG8gcGl4ZWxCdWZmZXIgPSBjcmVhdGVDVlBpeGVsQnVmZmVyKHJlbW90ZVNhbXBsZS5zdXJmYWNl
KCkpLnZhbHVlX29yKG51bGxwdHIpOwogICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTQ0NCw3ICs0MzgsNyBA
QCBpbnQzMl90IExpYldlYlJUQ0NvZGVjczo6ZW5jb2RlRnJhbWUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJgogICAgICAgICBpZiAoIXBpeGVsQnVmZmVyUG9vbCkK
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIHJldHVybiBXZWJDb3JlOjpj
cmVhdGVQaXhlbEJ1ZmZlckZyb21Qb29sKHBpeGVsQnVmZmVyUG9vbCkubGVha1JlZigpOworICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6Y3JlYXRlQ1ZQaXhlbEJ1ZmZlckZyb21Qb29sKHBpeGVsQnVm
ZmVyUG9vbCkudmFsdWVfb3IobnVsbHB0cikubGVha1JlZigpOwogICAgIH0pKTsKIAogICAgIGlm
ICghcGl4ZWxCdWZmZXIpCkBAIC01MDMsNyArNDk3LDcgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6
OmNvbXBsZXRlZEVuY29kaW5nKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQQzo6
RGEKIENWUGl4ZWxCdWZmZXJQb29sUmVmIExpYldlYlJUQ0NvZGVjczo6cGl4ZWxCdWZmZXJQb29s
KHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgT1NUeXBlIHR5cGUpCiB7CiAgICAgaWYgKCFt
X3BpeGVsQnVmZmVyUG9vbCB8fCBtX3BpeGVsQnVmZmVyUG9vbFdpZHRoICE9IHdpZHRoIHx8IG1f
cGl4ZWxCdWZmZXJQb29sSGVpZ2h0ICE9IGhlaWdodCkgewotICAgICAgICBtX3BpeGVsQnVmZmVy
UG9vbCA9IGNyZWF0ZVBpeGVsQnVmZmVyUG9vbCh3aWR0aCwgaGVpZ2h0LCB0eXBlKTsKKyAgICAg
ICAgbV9waXhlbEJ1ZmZlclBvb2wgPSBXZWJDb3JlOjpjcmVhdGVJT1N1cmZhY2VDVlBpeGVsQnVm
ZmVyUG9vbCh7IHN0YXRpY19jYXN0PGludD4od2lkdGgpLCBzdGF0aWNfY2FzdDxpbnQ+KGhlaWdo
dCkgfSwgdHlwZSkudmFsdWVfb3IobnVsbHB0cik7CiAgICAgICAgIG1fcGl4ZWxCdWZmZXJQb29s
V2lkdGggPSB3aWR0aDsKICAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xIZWlnaHQgPSBoZWlnaHQ7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
TGliV2ViUlRDQ29kZWNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3MuaAppbmRleCBlYmU2MjNjYmQ3YjdhODVkMjg5ZTZhYzgyZDMxOTVkNmJl
MTM1ZmJjLi40MDgzM2UwMzBlZjViMGVlODk0ZDdmNDRiZTk4Y2Q2Nzk4MWY0YTJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3MuaApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2lu
Y2x1ZGUgIlJUQ0RlY29kZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUlRDRW5jb2RlcklkZW50
aWZpZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaD4KICNpbmNsdWRlIDxtYXA+
CiAjaW5jbHVkZSA8d2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBlLmg+CkBAIC0xNDks
NyArMTQ4LDYgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPj4gbV90YXNr
c1RvRGlzcGF0Y2hBZnRlckVzdGFibGlzaGluZ0Nvbm5lY3Rpb247CiAKICAgICBSZWY8V29ya1F1
ZXVlPiBtX3F1ZXVlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRyYW5zZmVy
U2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWPiBtX3BpeGVsQnVmZmVyQ29uZm9ybWVyOwog
ICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4gbV9waXhlbEJ1ZmZlclBvb2w7CiAg
ICAgc2l6ZV90IG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggeyAwIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438448</attachid>
            <date>2021-09-16 23:38:03 -0700</date>
            <delta_ts>2021-09-17 12:29:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230338-20210917093801.patch</filename>
            <type>text/plain</type>
            <size>42895</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRjNGU3ZmI1YjEyZGVl
YmViZmNiOTY4NDhjYzdhOWM4ZjA3ZDZkMi4uZGUyYjhkZTA1ODdkM2FiMWM2Mzc2M2MyMTA4N2M3
ZDEzZGMwOTgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIxLTA5LTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHV0aWxpdHkg
dG8gY3JlYXRlIENWUGl4ZWxCdWZmZXJzIGZyb20gSU9TdXJmYWNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMzM4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgZnVuY3Rpb25hbGl0eSBv
ZiBjcmVhdGluZyBDVlBpeGVsQnVmZmVycworICAgICAgICBmcm9tIElPU3VyZmFjZXMgZnJvbSBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUIHRvCisgICAgICAgIHN0YW5kYWxvbmUgZnVuY3Rpb25zIGlu
IG5ldyBoZWFkZXIgQ1ZVdGlsaXRpZXMuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IGRpZCBu
b3QgdXNlIGFueSBzdGF0ZSBvZgorICAgICAgICBJbWFnZVRyYW5zZmVyU2Vzc2lvblZULgorCisg
ICAgICAgIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1c2VmdWwgaW4gb3RoZXIgc2NlbmFyaW9zIHRv
by4KKworICAgICAgICBSZW1vdmUgaW5zdGFudGlhdGlvbnMgb2YgSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVCBmcm9tCisgICAgICAgIHRoZSBvbGQgY2FsbCBzaXRlcywgYXMgaXQgd2FzIG5ldmVyIHVz
ZWQgZm9yIGFueXRoaW5nCisgICAgICAgIGVsc2UgdGhhbiBjcmVhdGlvbiBvZiB0aGUgcGl4ZWwg
YnVmZmVyLgorCisgICAgICAgIE1vdmUgdGhlIHJlbGF0ZWQgQ1ZQaXhlbEJ1ZmZlclBvb2wgaW5z
dGFudGlhdGlvbgorICAgICAgICBmcm9tIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCB0byBDVlV0
aWxpdGllcy5oCisKKyAgICAgICAgUmVtb3ZlIHRoZSB1c2FnZSBvZiBrQ1ZQaXhlbEZvcm1hdE9w
ZW5HTEVTQ29tcGF0aWJpbGl0eQorICAgICAgICBmcm9tIHRoZSBDVlBpeGVsQnVmZmVyIGNyZWF0
aW9uIGNvZGUuIEl0IHdhcyBpbmNvcnJlY3QgcHJvcGVydHkKKyAgICAgICAgYWxsIGFsb25nLCBw
cm9wZXJ0eSBvZiBwaXhlbCBmb3JtYXRzIG5vdCBvZiBwaXhlbCBidWZmZXJzLiBUaGUKKyAgICAg
ICAgaW50ZW5kZWQgcHJvcGVydHkgd2FzIGtDVlBpeGVsQnVmZmVyT3BlbkdMRVNDb21wYXRpYmls
aXR5S2V5CisgICAgICAgIGJ1dCBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisgICAgICAgIFJl
dGFpbnMgdGhlIHVzYWdlIG9mIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSwg
dGhvdWdoCisgICAgICAgIGl0IGlzIGluY29ycmVjdCBhbmQgdW5uZWVkZWQgZm9yIHRoZSBjdXJy
ZW50IG9wZXJhdGlvbiB0b28uCisgICAgICAgIFNpbmNlIHRoZW9yZXRpY2FsbHkgdGhpcyBjb3Vs
ZCBhZmZlY3Qgc29tZXRoaW5nIG9uIE1hYywgdGhpcworICAgICAgICB3aWxsIGJlIHJlbW92ZWQg
aW4gYSBzZXBhcmF0ZSBmaXguCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhIHJlZmFjdG9yLgor
CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZlclBvb2wpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlQ1ZQaXhlbEJ1ZmZlckZyb21Qb29sKToKKyAgICAgICAgKFdlYkNvcmU6OnBpeGVs
QnVmZmVyQ3JlYXRpb25PcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxC
dWZmZXIpOgorICAgICAgICBUaGUgYWRkZWQgZnVuY3Rpb25zIHJldHVybiBFeHBlY3RlZDxvYmpl
Y3QsIHN0YXR1cz4gc2luY2UKKyAgICAgICAgc29tZSBvZiB0aGUgY2FsbGVycyB3YW50IHRvIGxv
ZyB0aGUgZmFpbHVyZSBzdGF0dXMgY29kZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjdlBpeGVsRm9ybWF0T3BlbkdMS2V5KTogRGVsZXRlZC4KKyAgICAgICAg
SW5jb3JyZWN0LCByZXBsYWNlZCB3aXRoIE1hYy1vbmx5IHVzZSBvZiBPcGVuR0xDb21wYXRpYmls
aXR5S2V5IGluCisgICAgICAgIENWVXRpbGl0aWVzLm1tLgorICAgICAgICAoV2ViQ29yZTo6cm91
bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKTogRGVsZXRlZC4KKyAgICAgICAgVXNlIHRoZSBzaW1p
bGFyIGZ1bmN0aW9uIGluIFdURi4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ6OmlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRpb25zKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYTo6cGl4ZWxCdWZmZXJQb29sKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oOgorICAgICAgICBQcmVzZXJ2ZWQsIHNpbmNl
IHByZWZlcmVkUGl4ZWxCdWZmZXJGb3JtYXQgbWVhbnMKKyAgICAgICAgInRoZSBwaXhlbCBidWZm
ZXIgZm9ybWF0IHRoYXQgaXMgcHJlZmVycmVkIGJ5IG1lZGlhIHN0cmVhbSBpbXBsZW1lbnRhdGlv
bnMiCisgICAgICAgIHdoaWNoIGRvZXMgbm90IGZpdCB0byBjYXRlZ29yeSBvZiAiQ29yZVZpZGVv
IFV0aWxpdGllcyIuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
VmlkZW9VdGlsaXRpZXMubW06IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tOgorICAgICAgICBGaXggdW5pZmllZCBidWlsZCBmYWls
dXJlIGR1ZSB0byBhIG1pc3NpbmcgaW5jbHVkZS4KKwogMjAyMS0wOS0xNiAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHN0ZDo6b3B0aW9uYWwgZm9yIHRy
dW5jYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZjRkZWUyZmU4OWIyMjFlNjBmYWI1MGZiYzlkMDg1OWZmNGU5
MWZlMy4uYmVkMTY2NWVkZDQwNmFhMGFlMjQxMWIyNjA0YTNkYjUwOWMzNjkyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNyBAQAorMjAyMS0wOS0xNiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCB1dGlsaXR5IHRvIGNyZWF0ZSBDVlBpeGVsQnVmZmVy
cyBmcm9tIElPU3VyZmFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMDMzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoZSBoZWxwZXIgZnVuY3Rpb24gbW92ZWQgZnJvbSBJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUCisgICAgICAgIHRvIGZyZWUgc3RhbmRhbG9uZSBmdW5jdGlvbi4gU3RvcCBpbnN0YW50
aWF0aW5nIHRoZQorICAgICAgICBvYmplY3QgYW5kIGp1c3QgY2FsbCB0aGUgZnVuY3Rpb24uCisK
KyAgICAgICAgSW4gYm90aCBvZiB0aGUgY2FzZXMsIHRoZSBwaXhlbCBidWZmZXIgaXMgY3JlYXRl
ZCBvdXQgb2YKKyAgICAgICAgdGhlIElPU3VyZmFjZSBhbmQgdGhlIHBvb2wgaXMgbm90IHVzZWQu
IEluIGJvdGggb2YgdGhlIGNhc2VzCisgICAgICAgIHRoZSBzaXplIGFuZCB0aGUgcGl4ZWwgZm9y
bWF0IG9mIHRoZSBpbWFnZSB0cmFuc2ZlciBzZXNzaW9uCisgICAgICAgIGlzIHRoZSBzYW1lIGFz
IHRoZSBpbnB1dCBJT1N1cmZhY2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6cGl4ZWxCdWZmZXJQb29sKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmg6CisKIDIw
MjEtMDktMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdW1dQRV0gdGVzdCBhbmltYXRpb25zL3N0ZXBzLXRyYW5zZm9ybS1yZW5kZXJp
bmctdXBkYXRlcy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDkwZGJl
MTJkOTdjYTAwNDY5NTYwNTJkOWFiNWJiY2I5NDAyOTI5ZGEuLmI4MDgyMGNjNjQ1NjVkMjFlOGMy
ZDg4MzFmZmFlNDYzOGUyMjA3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
TWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0zMzcs
NiArMzM3LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvcmV0ZXh0L0dseXBoUGFnZUNvcmVUZXh0LmNwcAogCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWQU5HTEUuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VS
b3RhdGlvblNlc3Npb25WVC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVy
Q29uZm9ybWVyQ1YuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBlZjIwYmVkMzYxNWJj
YTgxMTAyYTIyMDEwOTQ0MWE4ZTIxOTVlNzdkLi43OTM1MjJjZDA3ZjUyYTYyNThiMTY0NDYxZjEy
ODUwYjdkNzEzNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM5Miw2ICszOTIsNyBA
QCBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvR2x5cGhQYWdlQ29yZVRleHQuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9jdi9D
VlV0aWxpdGllcy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5jcHAKQEAgLTU0Miw3
ICs1NDMsNiBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYy5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjLm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlQ29jb2EuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCi1wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVWaWRlb1V0aWxpdGllcy5tbQogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJDb2NvYS5tbQogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9j
ay5jcHAKIHBsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggYzc1ODQzMDYxNzdkODY1YjQ5ZTE5YjdlMDM5ZGVkZjUwMGYxM2Q2ZC4uZDU2OTA0OGM5MGQ5
ZGZhM2EwYmExODJiMWU4N2QxZjU3NjhjZmJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM1Miw2ICsyMzUyLDcgQEAKIAkJ
N0I0NUFCNTUyNUZCQTlERTAwRkQyN0Y0IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
NDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0
aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QjczMTFGQjI1QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3
MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QjhF
RDVGMDI2RjBDMTNEMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCOEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBD
VlV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdCOTA0MTcwMjU1MDExNDIwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0JCMzRBMTcyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
QjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRpbGl0aWVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JC
MzRBNDgyNTM3NzZDQTAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjM0QTQ1
MjUzNzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc5NDgsNyAr
Nzk0OSw2IEBACiAJCTQxNTc0NzQ0MUUzODY5OUUwMEU5MTREOCAvKiBMaWJXZWJSVENQcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENQcm92aWRlci5o
OyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxNTdFQkY4MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTdF
QkY5MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE1ODY0OUYyM0JGN0I5
MzAwQTBBNjFFIC8qIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCNjI0RkZDRDFCMDBCOURBNDEgLyogUlRDSWNl
Q29tcG9uZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENJY2VDb21wb25lbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCODI0RkZDREMzMDBCOURBNDEg
LyogUlRDSWNlUHJvdG9jb2wuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ0ljZVByb3Rv
Y29sLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1OERDQjkyNEZGQ0RDMzAw
QjlEQTQxIC8qIFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTA2MDEsNiArMTA2MDEsOCBAQAogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyog
R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNj
b3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3Qjc3NEM2MjI1RkI5MzU1MDA5MTM5NUYgLyogR3JhcGhpY3NDb250
ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJN0I4RUQ1RUQyNkYwQzEyMzAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENWVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTdCOEVENUVGMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENWVXRpbGl0aWVzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjkwNDE2RTI1NTAxMTA5MDA2RUVCOEMgLyogUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGlsaXRp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xB
TkdMRVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkIzNEE0NTI1
Mzc3NkM2MDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzYzOCw3ICsxNzY0MCw2IEBACiAJCQkJNUNERDgzM0MxRTQz
MjRCQjAwNjIxQjgzIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmggKi8sCiAJ
CQkJNDE5MjQyNDcyMTI3QjdDQzAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZUNvY29hLm1tICovLAogCQkJCTQxRDE5MzhGMjE1MkM1NjEwMDZGMTRDQSAvKiBSZWFsdGltZVZp
ZGVvVXRpbGl0aWVzLmggKi8sCi0JCQkJNDE1ODY0OUYyM0JGN0I5MzAwQTBBNjFFIC8qIFJlYWx0
aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8sCiAJCQkJMDdENjM3M0UxQkIwQjExMzAwMjU2Q0U5IC8q
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oICovLAogCQkJCTA3RDYzNzNGMUJCMEIxMTMw
MDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0gKi8sCiAJCQkpOwpAQCAt
MjgzMDgsNiArMjgzMDksOCBAQAogCQlDRDlEODI3QzFDN0JCMkVEMDA2RkYwNjYgLyogY3YgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTdCOEVENUVEMjZG
MEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovLAorCQkJCTdCOEVENUVGMjZGMEMxMjMw
MDhBQzAyMyAvKiBDVlV0aWxpdGllcy5tbSAqLywKIAkJCQk3QjEwMzM5RDI1NDk3MjAxMDBDOEMx
QUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovLAogCQkJCTdCMTAzMzlBMjU0OTcyMDAwMEM4
QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuY3BwICovLAogCQkJCTdCMTAzMzlDMjU0
OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuaCAqLywKQEAgLTMxOTcx
LDYgKzMxOTc0LDcgQEAKIAkJCQk2MkNEMzI1QTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNUQyMzg1MjI3QTA2NTIwMDBCOUJEQSAvKiBDdXN0
b21IZWFkZXJGaWVsZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCMUUxM0U3MjE3OTBENjYwMDQy
Q0Y5OCAvKiBDdXN0b21QYWludENhbnZhcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0I4RUQ1RjAy
NkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENC
NDEzRTBFODYzM0ZEMDAzMkM0RjAgLyogRGFzaEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
N0JDNkEyMTE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3QkM2QTI0MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZUF1dGhvcml6ZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzMxMzIsNyArMzMxMzYsNiBAQAogCQkJCUJDNjkzMjc0MEQ3RTI5MzkwMEFF
NDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1MkZCQkJDMERF
MjdDQjYwMDAxRDM4NiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEwQkNGNTYyNkYwQ0Q4QzAwNDBCMTI0IC8qIFJUQ0xvY2FsU2Vzc2lv
bkRlc2NyaXB0aW9uSW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVFMEU5NDQxMTMzQzg5RjAw
QjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M0NUM5RDMxRTNG
Q0JENzAwQUFCNTU4IC8qIEpTRE9NV3JhcHBlckNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0E4MDYxRTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNDc0Miw2ICszNDc0NSw3IEBACiAJCQkJMDdBQjk5NkIxOERBM0MwMTAwMTg3NzFFIC8q
IFJUQ0ljZVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzNTkxMDgxRTdEREM3MzAwRjMw
NjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzNTkx
MDkxRTdEREM3MzAwRjMwNjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFN0YXRlLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTBCQ0Y1NjI2RjBDRDhDMDA0MEIxMjQgLyogUlRDTG9jYWxTZXNzaW9uRGVzY3Jp
cHRpb25Jbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUMxNEJDNjI2REU2REU4MDA2ODVCRjUg
LyogUlRDTmV0d29ya01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mzc5NEZFMTlGNTg2
NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzM3
OTRERTE5RUUyQzUyMDBFNUEwNDUgLyogUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NW
VXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxp
dGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJkMWZlMGU5Y2FmZTdkMGQ2MWFkMTRiNWIzMmFiZGFmMGZiODZi
MzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9DVlV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPENvcmVWaWRlby9Db3JlVmlkZW8uaD4KKyNpbmNsdWRlIDx1dGlsaXR5
PgorI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
KwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgPSBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVyUG9v
bCo7Cit1c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZmZXIqOworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKy8vIENyZWF0ZXMgQ1ZQaXhlbEJ1ZmZlclBvb2wgdGhhdCBjcmVh
dGVzIENWUGl4ZWxCdWZmZXJzIGJhY2tlZCBieSBJT1N1cmZhY2VzLgorLy8gVGhlc2UgYnVmZmVy
cyBjYW4gYmUgZm9yIGV4YW1wbGUgc2VudCB0aHJvdWdoIElQQy4KK1dFQkNPUkVfRVhQT1JUIEV4
cGVjdGVkPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4sIENWUmV0dXJuPiBjcmVhdGVJ
T1N1cmZhY2VDVlBpeGVsQnVmZmVyUG9vbChJbnRTaXplLCBPU1R5cGUgcGl4ZWxGb3JtYXQsIHVu
c2lnbmVkIG1pbmltdW1CdWZmZXJDb3VudCA9IDB1KTsKKworV0VCQ09SRV9FWFBPUlQgRXhwZWN0
ZWQ8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4gY3JlYXRlQ1ZQaXhlbEJ1
ZmZlckZyb21Qb29sKENWUGl4ZWxCdWZmZXJQb29sUmVmKTsKKworV0VCQ09SRV9FWFBPUlQgRXhw
ZWN0ZWQ8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4gY3JlYXRlQ1ZQaXhl
bEJ1ZmZlcihJT1N1cmZhY2VSZWYpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjZDJkMTQzMDU4Mzlj
ZTE5OGNhZjJhNWRlNWQ2N2Y1YzFkNDY5YjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQpAQCAtMCwwICsxLDEwOCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQ1ZVdGlsaXRpZXMu
aCIKKworI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2ltcG9ydCAiQ29yZVZpZGVvU29m
dExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitFeHBlY3RlZDxSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclBvb2xSZWY+LCBDVlJldHVybj4gY3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZl
clBvb2woSW50U2l6ZSBzaXplLCBPU1R5cGUgZm9ybWF0LCB1bnNpZ25lZCBtaW5pbXVtQnVmZmVy
Q291bnQpCit7CisgICAgYXV0byBwaXhlbEF0dHJpYnV0ZXMgPSBAeworICAgICAgICAoX19icmlk
Z2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlcldpZHRoS2V5OiBAKHNpemUud2lkdGgoKSksCisg
ICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0S2V5OiBAKHNp
emUuaGVpZ2h0KCkpLAorICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZl
clBpeGVsRm9ybWF0VHlwZUtleTogQChmb3JtYXQpLAorICAgICAgICAoX19icmlkZ2UgTlNTdHJp
bmcgKilrQ1ZQaXhlbEJ1ZmZlckNHSW1hZ2VDb21wYXRpYmlsaXR5S2V5OiBATk8sCisjaWYgUExB
VEZPUk0oTUFDKQorICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9w
ZW5HTENvbXBhdGliaWxpdHlLZXkgOiBAWUVTLAorI2VuZGlmCisgICAgICAgIChfX2JyaWRnZSBO
U1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7IH0KKyAg
ICB9OworICAgIE5TRGljdGlvbmFyeSogcG9vbE9wdGlvbnMgPSBudWxscHRyOworICAgIGlmICht
aW5pbXVtQnVmZmVyQ291bnQpIHsKKyAgICAgICAgcG9vbE9wdGlvbnMgPSBAeworICAgICAgICAg
ICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQb29sTWluaW11bUJ1ZmZlckNv
dW50S2V5OiBAKG1pbmltdW1CdWZmZXJDb3VudCkKKyAgICAgICAgfTsKKyAgICB9CisgICAgQ1ZQ
aXhlbEJ1ZmZlclBvb2xSZWYgcG9vbCA9IG51bGxwdHI7CisgICAgYXV0byBzdGF0dXMgPSBDVlBp
eGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoX19icmlkZ2UgQ0ZEaWN0
aW9uYXJ5UmVmKSBwb29sT3B0aW9ucywgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhlbEF0
dHJpYnV0ZXMsICZwb29sKTsKKyAgICBpZiAoc3RhdHVzICE9IGtDVlJldHVyblN1Y2Nlc3MgfHwg
IXBvb2wpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChzdGF0dXMpOworICAgIHJldHVy
biBhZG9wdENGKHBvb2wpOworfQorCitFeHBlY3RlZDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4sIENWUmV0dXJuPiBjcmVhdGVDVlBpeGVsQnVmZmVyRnJvbVBvb2woQ1ZQaXhlbEJ1ZmZlclBv
b2xSZWYgcGl4ZWxCdWZmZXJQb29sKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIgPSBudWxscHRyOworICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGVQ
aXhlbEJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlclBvb2wsICZwaXhlbEJ1
ZmZlcik7CisgICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzIHx8ICFwaXhlbEJ1ZmZl
cikKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHN0YXR1cyk7CisgICAgcmV0dXJuIGFk
b3B0Q0YocGl4ZWxCdWZmZXIpOworfQorCitzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHBpeGVsQnVm
ZmVyQ3JlYXRpb25PcHRpb25zKElPU3VyZmFjZVJlZiBzdXJmYWNlKQoreworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICBhdXRvIGZvcm1hdCA9IElPU3VyZmFjZUdldFBpeGVsRm9ybWF0KHN1cmZhY2Up
OworICAgIGlmIChmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5h
clZpZGVvUmFuZ2UgfHwgZm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQ
bGFuYXJGdWxsUmFuZ2UpIHsKKyAgICAgICAgY29uc3RleHByIHNpemVfdCBtYWNyb2Jsb2NrU2l6
ZSA9IDE2OworICAgICAgICBhdXRvIHdpZHRoID0gSU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFjZSk7
CisgICAgICAgIGF1dG8gaGVpZ2h0ID0gSU9TdXJmYWNlR2V0SGVpZ2h0KHN1cmZhY2UpOworICAg
ICAgICBhdXRvIGV4dGVuZGVkUmlnaHQgPSByb3VuZFVwVG9NdWx0aXBsZU9mKG1hY3JvYmxvY2tT
aXplLCB3aWR0aCkgLSB3aWR0aDsKKyAgICAgICAgYXV0byBleHRlbmRlZEJvdHRvbSA9IHJvdW5k
VXBUb011bHRpcGxlT2YobWFjcm9ibG9ja1NpemUsIGhlaWdodCkgLSBoZWlnaHQ7CisgICAgICAg
IGlmICgoSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApID49IHdpZHRo
ICsgZXh0ZW5kZWRSaWdodCkKKyAgICAgICAgICAgICYmIChJT1N1cmZhY2VHZXRCeXRlc1BlclJv
d09mUGxhbmUoc3VyZmFjZSwgMSkgPj0gd2lkdGggKyBleHRlbmRlZFJpZ2h0KQorICAgICAgICAg
ICAgJiYgKElPU3VyZmFjZUdldEFsbG9jU2l6ZShzdXJmYWNlKSA+PSAoaGVpZ2h0ICsgZXh0ZW5k
ZWRCb3R0b20pICogSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApICog
MyAvIDIpKSB7CisgICAgICAgICAgICByZXR1cm4gKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZikg
QHsKKyAgICAgICAgICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9w
ZW5HTENvbXBhdGliaWxpdHlLZXkgOiBAWUVTLAorICAgICAgICAgICAgICAgIChfX2JyaWRnZSBO
U1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyRXh0ZW5kZWRQaXhlbHNSaWdodEtleSA6IEAoZXh0ZW5k
ZWRSaWdodCksCisgICAgICAgICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxC
dWZmZXJFeHRlbmRlZFBpeGVsc0JvdHRvbUtleSA6IEAoZXh0ZW5kZWRCb3R0b20pCisgICAgICAg
ICAgICB9OworICAgICAgICB9CisgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc3VyZmFj
ZSk7CisjZW5kaWYKKyAgICByZXR1cm4gKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZikgQHsKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVm
ZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSA6IEBZRVMKKyNlbmRpZgorICAgIH07Cit9CisKK0V4
cGVjdGVkPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiwgQ1ZSZXR1cm4+IGNyZWF0ZUNWUGl4
ZWxCdWZmZXIoSU9TdXJmYWNlUmVmIHN1cmZhY2UpCit7CisgICAgQVNTRVJUKHN1cmZhY2UpOwor
ICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBudWxscHRyOworICAgIGF1dG8gc3Rh
dHVzID0gQ1ZQaXhlbEJ1ZmZlckNyZWF0ZVdpdGhJT1N1cmZhY2Uoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgc3VyZmFjZSwgcGl4ZWxCdWZmZXJDcmVhdGlvbk9wdGlvbnMoc3VyZmFjZSksICZwaXhlbEJ1
ZmZlcik7CisgICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzIHx8ICFwaXhlbEJ1ZmZl
cikKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHN0YXR1cyk7CisgICAgcmV0dXJuIGFk
b3B0Q0YocGl4ZWxCdWZmZXIpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKaW5kZXgg
YTUyNTg5NTEwMmJiYTU4MjljZDM3ODQ0N2I5NWFiNTc2YzZhZjJmNi4uNGYyMjlkZTZhZmY5ZGYx
YTFkNDJkNzYwZTI3MDk5MDVjODg3ZjQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaApAQCAt
NTgsMTggKzU4LDEyIEBAIHB1YmxpYzoKICNlbmRpZgogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0o
TUFDQ0FUQUxZU1QpCi0gICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+IGNyZWF0ZVBpeGVsQnVmZmVyKElPU3VyZmFjZVJlZik7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyKElPU3VyZmFjZVJl
ZiwgY29uc3QgSW50U2l6ZSYpOwotI2VuZGlmCi0KICAgICB1aW50MzJfdCBwaXhlbEZvcm1hdCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxGb3JtYXQ7IH0KIAogcHJpdmF0ZToKICAgICBXRUJDT1JF
X0VYUE9SVCBleHBsaWNpdCBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUKHVpbnQzMl90IHBpeGVsRm9y
bWF0KTsKIAogI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICBDRkRpY3Rpb25hcnlSZWYg
aW9TdXJmYWNlUGl4ZWxCdWZmZXJDcmVhdGlvbk9wdGlvbnMoSU9TdXJmYWNlUmVmKTsKICAgICBS
ZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUNNU2FtcGxlQnVmZmVyKElPU3VyZmFj
ZVJlZiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgSW50U2l6ZSYpOwogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRy
YW5zZmVyU2Vzc2lvblZULm1tCmluZGV4IGYzMTY5YWJjMDI3NzA4MmYwY2ZjZTQ3MjY3OWUxMTA3
OTdjOGM5ZjYuLmMwY2E1ZjYzYjhhOWEyZDY1M2FiYTM0OGFlOTk0NTQyNDc3MzU0NTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVC5tbQpAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAiY29uZmln
LmgiCiAjaW1wb3J0ICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgiCiAKKyNpbXBvcnQgIkNWVXRp
bGl0aWVzLmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRDRy5oIgogI2ltcG9ydCAiTG9nZ2lu
Zy5oIgogI2ltcG9ydCAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCkBAIC00MywxNSArNDQsNiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBpbmxpbmUgQ0ZTdHJpbmdSZWYgY3ZQaXhl
bEZvcm1hdE9wZW5HTEtleSgpCi17Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRG
T1JNKE1BQ0NBVEFMWVNUKQotICAgIHJldHVybiBrQ1ZQaXhlbEZvcm1hdE9wZW5HTEVTQ29tcGF0
aWJpbGl0eTsKLSNlbHNlCi0gICAgcmV0dXJuIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJp
bGl0eUtleTsKLSNlbmRpZgotfQotCiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpJbWFnZVRyYW5z
ZmVyU2Vzc2lvblZUKHVpbnQzMl90IHBpeGVsRm9ybWF0KQogewogICAgIFZUUGl4ZWxUcmFuc2Zl
clNlc3Npb25SZWYgdHJhbnNmZXJTZXNzaW9uOwpAQCAtODQsMjkgKzc2LDExIEBAIGJvb2wgSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVDo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogewogICAg
IGlmIChtX3NpemUgPT0gc2l6ZSAmJiBtX291dHB1dEJ1ZmZlclBvb2wpCiAgICAgICAgIHJldHVy
biB0cnVlOwotCi0gICAgTlNEaWN0aW9uYXJ5KiBwaXhlbEJ1ZmZlck9wdGlvbnMgPSBAewotICAg
ICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlcldpZHRoS2V5IDogQChzaXpl
LndpZHRoKCkpLAotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckhl
aWdodEtleSA6IEAoc2l6ZS5oZWlnaHQoKSksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAq
KWtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IDogQChtX3BpeGVsRm9ybWF0KSwKLSAg
ICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopY3ZQaXhlbEZvcm1hdE9wZW5HTEtleSgpIDogQFlF
UywKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VQ
cm9wZXJ0aWVzS2V5IDogQHsgLyplbXB0eSBkaWN0aW9uYXJ5Ki8gfSwKLSAgICB9OwotCi0gICAg
TlNEaWN0aW9uYXJ5KiBwaXhlbEJ1ZmZlclBvb2xPcHRpb25zID0gQHsKLSAgICAgICAgKF9fYnJp
ZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQb29sTWluaW11bUJ1ZmZlckNvdW50S2V5OiBA
KDYpCi0gICAgfTsKLQotICAgIENWUGl4ZWxCdWZmZXJQb29sUmVmIGJ1ZmZlclBvb2w7Ci0gICAg
YXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBpeGVsQnVmZmVyUG9vbE9wdGlvbnMsIChfX2Jy
aWRnZSBDRkRpY3Rpb25hcnlSZWYpcGl4ZWxCdWZmZXJPcHRpb25zLCAmYnVmZmVyUG9vbCk7Ci0g
ICAgQVNTRVJUKCFzdGF0dXMpOwotICAgIGlmIChzdGF0dXMgIT0ga0NWUmV0dXJuU3VjY2VzcykK
KyAgICBhdXRvIGJ1ZmZlclBvb2wgPSBjcmVhdGVJT1N1cmZhY2VDVlBpeGVsQnVmZmVyUG9vbChz
aXplLCBtX3BpeGVsRm9ybWF0LCA2KS52YWx1ZV9vcihudWxscHRyKTsKKyAgICBpZiAoIWJ1ZmZl
clBvb2wpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIG1fb3V0cHV0QnVmZmVyUG9vbCA9
IGFkb3B0Q0YoYnVmZmVyUG9vbCk7CisgICAgbV9vdXRwdXRCdWZmZXJQb29sID0gV1RGTW92ZShi
dWZmZXJQb29sKTsKICAgICBtX3NpemUgPSBzaXplOwotICAgIG1faW9TdXJmYWNlQnVmZmVyQXR0
cmlidXRlcyA9IG51bGxwdHI7Ci0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTE4LDI2ICs5
MiwyMCBAQCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDo6Y29udmVydFBpeGVsQnVmZmVyKENWUGl4ZWxCdQogICAgIGlmICghc291cmNlQnVmZmVyIHx8
ICFzZXRTaXplKHNpemUpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIENWUGl4ZWxC
dWZmZXJSZWYgb3V0cHV0QnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IENWUGl4
ZWxCdWZmZXJQb29sQ3JlYXRlUGl4ZWxCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9vdXRw
dXRCdWZmZXJQb29sLmdldCgpLCAmb3V0cHV0QnVmZmVyKTsKLSAgICBpZiAoc3RhdHVzKSB7Ci0g
ICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVy
dFBpeGVsQnVmZmVyLCBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZVBpeGVsQnVmZmVyIGZhaWxlZCB3
aXRoIGVycm9yICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKKyAgICBhdXRvIHJlc3Vs
dCA9IGNyZWF0ZUNWUGl4ZWxCdWZmZXJGcm9tUG9vbChtX291dHB1dEJ1ZmZlclBvb2wuZ2V0KCkp
OworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyLCBjcmVhdGVDVlBpeGVsQnVmZmVy
RnJvbVBvb2wgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdC5l
cnJvcigpKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICBhdXRvIHJlc3Vs
dCA9IGFkb3B0Q0Yob3V0cHV0QnVmZmVyKTsKKyAgICBhdXRvIG91dHB1dEJ1ZmZlciA9IFdURk1v
dmUoKnJlc3VsdCk7CiAKLSAgICBhdXRvIGVyciA9IFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25UcmFu
c2ZlckltYWdlKG1fdHJhbnNmZXJTZXNzaW9uLmdldCgpLCBzb3VyY2VCdWZmZXIsIG91dHB1dEJ1
ZmZlcik7CisgICAgYXV0byBlcnIgPSBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJhbnNmZXJJbWFn
ZShtX3RyYW5zZmVyU2Vzc2lvbi5nZXQoKSwgc291cmNlQnVmZmVyLCBvdXRwdXRCdWZmZXIuZ2V0
KCkpOwogICAgIGlmIChlcnIpIHsKICAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRy
YW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXIsIFZUUGl4ZWxUcmFuc2ZlclNlc3Np
b25UcmFuc2ZlckltYWdlIGZhaWxlZCB3aXRoIGVycm9yICVkIiwgc3RhdGljX2Nhc3Q8aW50Pihl
cnIpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCi0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9u
VlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgY29u
c3QgSW50U2l6ZSYgc2l6ZSkKLXsKLSAgICByZXR1cm4gY29udmVydFBpeGVsQnVmZmVyKFBBTDo6
Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzb3VyY2VCdWZmZXIpLCBzaXplKTsKKyAgICBy
ZXR1cm4gb3V0cHV0QnVmZmVyOwogfQogCiBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IElt
YWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZl
clJlZiBzb3VyY2VCdWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUpCkBAIC0xNTQsNyArMTIyLDcg
QEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpj
b252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW0KICAgICBpZiAoIXNldFNpemUoc2l6ZSkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBjb252ZXJ0ZWRQaXhlbEJ1ZmZlciA9IGNy
ZWF0ZVBpeGVsQnVmZmVyKHNvdXJjZUJ1ZmZlciwgc2l6ZSk7CisgICAgYXV0byBjb252ZXJ0ZWRQ
aXhlbEJ1ZmZlciA9IGNvbnZlcnRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc2l6ZSk7CiAgICAg
aWYgKCFjb252ZXJ0ZWRQaXhlbEJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAg
LTI2Niw4MiArMjM0LDExIEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIoQ0dJbWFnCiAKICNpZiAhUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpCiAKLSNpZiBQTEFURk9STShNQUMpCi1zdGF0aWMgaW50MzJfdCByb3Vu
ZFVwVG9NYWNyb2Jsb2NrTXVsdGlwbGUoaW50MzJfdCBzaXplKQotewotICAgIHJldHVybiAoc2l6
ZSArIDE1KSAmIH4xNTsKLX0KLSNlbmRpZgotCi1DRkRpY3Rpb25hcnlSZWYgSW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDo6aW9TdXJmYWNlUGl4ZWxCdWZmZXJDcmVhdGlvbk9wdGlvbnMoSU9TdXJmYWNl
UmVmIHN1cmZhY2UpCi17Ci0gICAgaWYgKG1faW9TdXJmYWNlQnVmZmVyQXR0cmlidXRlcykKLSAg
ICAgICAgcmV0dXJuIG1faW9TdXJmYWNlQnVmZmVyQXR0cmlidXRlcy5nZXQoKTsKLQotICAgIG1f
aW9TdXJmYWNlQnVmZmVyQXR0cmlidXRlcyA9IChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpIEB7
Ci0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWN2UGl4ZWxGb3JtYXRPcGVuR0xLZXkoKSA6
IEBZRVMsCi0gICAgfTsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBhdXRvIGZvcm1hdCA9IElP
U3VyZmFjZUdldFBpeGVsRm9ybWF0KHN1cmZhY2UpOwotICAgIGF1dG8gd2lkdGggPSBJT1N1cmZh
Y2VHZXRXaWR0aChzdXJmYWNlKTsKLSAgICBhdXRvIGhlaWdodCA9IElPU3VyZmFjZUdldEhlaWdo
dChzdXJmYWNlKTsKLSAgICBhdXRvIGV4dGVuZGVkUmlnaHQgPSByb3VuZFVwVG9NYWNyb2Jsb2Nr
TXVsdGlwbGUod2lkdGgpIC0gd2lkdGg7Ci0gICAgYXV0byBleHRlbmRlZEJvdHRvbSA9IHJvdW5k
VXBUb01hY3JvYmxvY2tNdWx0aXBsZShoZWlnaHQpIC0gaGVpZ2h0OwotCi0gICAgaWYgKChmb3Jt
YXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hclZpZGVvUmFuZ2UgfHwg
Zm9ybWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJGdWxsUmFuZ2Up
Ci0gICAgICAgICYmIChJT1N1cmZhY2VHZXRCeXRlc1BlclJvd09mUGxhbmUoc3VyZmFjZSwgMCkg
Pj0gd2lkdGggKyBleHRlbmRlZFJpZ2h0KQotICAgICAgICAmJiAoSU9TdXJmYWNlR2V0Qnl0ZXNQ
ZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDEpID49IHdpZHRoICsgZXh0ZW5kZWRSaWdodCkKLSAgICAg
ICAgJiYgKElPU3VyZmFjZUdldEFsbG9jU2l6ZShzdXJmYWNlKSA+PSAoaGVpZ2h0ICsgZXh0ZW5k
ZWRCb3R0b20pICogSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApICog
MyAvIDIpKSB7Ci0gICAgICAgICAgICBtX2lvU3VyZmFjZUJ1ZmZlckF0dHJpYnV0ZXMgPSAoX19i
cmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKSBAewotICAgICAgICAgICAgICAgIChfX2JyaWRnZSBOU1N0
cmluZyAqKWtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSA6IEBZRVMsCi0gICAg
ICAgICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJFeHRlbmRlZFBp
eGVsc1JpZ2h0S2V5IDogQChleHRlbmRlZFJpZ2h0KSwKLSAgICAgICAgICAgICAgICAoX19icmlk
Z2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckV4dGVuZGVkUGl4ZWxzQm90dG9tS2V5IDogQChl
eHRlbmRlZEJvdHRvbSkKLSAgICAgICAgICAgIH07Ci0gICAgfQotI2Vsc2UKLSAgICBVTlVTRURf
UEFSQU0oc3VyZmFjZSk7Ci0jZW5kaWYKLQotICAgIHJldHVybiBtX2lvU3VyZmFjZUJ1ZmZlckF0
dHJpYnV0ZXMuZ2V0KCk7Ci19Ci0KLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFnZVRy
YW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcihJT1N1cmZhY2VSZWYgc3VyZmFjZSkK
LXsKLSAgICBpZiAoIXN1cmZhY2UpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcjsKLSAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZm
ZXJDcmVhdGVXaXRoSU9TdXJmYWNlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHN1cmZhY2UsIGlvU3Vy
ZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRpb25zKHN1cmZhY2UpLCAmcGl4ZWxCdWZmZXIpOwot
ICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJDVlBpeGVsQnVm
ZmVyQ3JlYXRlV2l0aElPU3VyZmFjZSBmYWlsZWQgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRp
Y19jYXN0PGludD4oc3RhdHVzKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAg
ICByZXR1cm4gYWRvcHRDRihwaXhlbEJ1ZmZlcik7Ci19Ci0KLVJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVQaXhlbEJ1ZmZlcihJT1N1cmZh
Y2VSZWYgc3VyZmFjZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK1JldGFpblB0cjxDTVNhbXBsZUJ1
ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIoSU9T
dXJmYWNlUmVmIHN1cmZhY2UsIGNvbnN0IE1lZGlhVGltZSYgc2FtcGxlVGltZSwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkKIHsKICAgICBpZiAoIXN1cmZhY2UgfHwgIXNldFNpemUoc2l6ZSkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwotCi0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcjsK
LSAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGVXaXRoSU9TdXJmYWNlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIHN1cmZhY2UsIGlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRp
b25zKHN1cmZhY2UpLCAmcGl4ZWxCdWZmZXIpOwotICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAg
UkVMRUFTRV9MT0coTWVkaWEsICJDVlBpeGVsQnVmZmVyQ3JlYXRlV2l0aElPU3VyZmFjZSBmYWls
ZWQgd2l0aCBlcnJvciBjb2RlOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7Ci0gICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIGF1dG8gcmV0YWluZWRCdWZmZXIgPSBh
ZG9wdENGKHBpeGVsQnVmZmVyKTsKLSAgICBpZiAobV9zaXplID09IEludFNpemUoQ1ZQaXhlbEJ1
ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKSwgQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChwaXhlbEJ1
ZmZlcikpICYmIG1fcGl4ZWxGb3JtYXQgPT0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlw
ZShwaXhlbEJ1ZmZlcikpCi0gICAgICAgIHJldHVybiByZXRhaW5lZEJ1ZmZlcjsKLQotICAgIHJl
dHVybiBjb252ZXJ0UGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIsIHNpemUpOwotfQotCi1SZXRhaW5Q
dHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZUNNU2Ft
cGxlQnVmZmVyKElPU3VyZmFjZVJlZiBzdXJmYWNlLCBjb25zdCBNZWRpYVRpbWUmIHNhbXBsZVRp
bWUsIGNvbnN0IEludFNpemUmIHNpemUpCi17Ci0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IGNyZWF0
ZVBpeGVsQnVmZmVyKHN1cmZhY2UsIHNpemUpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBjcmVh
dGVDVlBpeGVsQnVmZmVyKHN1cmZhY2UpLnZhbHVlX29yKG51bGxwdHIpOwogICAgIGlmICghcGl4
ZWxCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KaW5kZXggNTIxZGU3YTk3NGVlYzIwZTk5
NzRjMDhhZDM5YjZjZWY3YzIxZjdlMS4uMmYwNzQxNTNkOTg4Yzc4MDRjOGZkOTI1Yjc2ZWE2MDFi
ZTc5NDcyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VD
b2NvYS5tbQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaWYgVVNFKExJQldFQlJUQykKIAorI2ltcG9y
dCAiQ1ZVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk1lZGlhU2Ft
cGxlQVZGT2JqQy5oIgogI2ltcG9ydCAiUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oIgpAQCAtMzks
NiArNDAsNyBAQCBBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgogI2ltcG9ydCA8d2VicnRj
L3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmg+CiBBTExPV19VTlVTRURfUEFSQU1FVEVSU19F
TkQKIAorI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKICNpbXBvcnQgPHBhbC9jZi9Db3Jl
TWVkaWFTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05OCwxMCArMTAwLDEy
IEBAIENWUGl4ZWxCdWZmZXJQb29sUmVmIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29h
OjpwaXhlbEJ1ZmZlclBvb2woc2l6ZV90IHdpCiAgICAgICAgIGNhc2Ugd2VicnRjOjpCdWZmZXJU
eXBlOjpJMDEwOgogICAgICAgICAgICAgcG9vbEJ1ZmZlclR5cGUgPSBrQ1ZQaXhlbEZvcm1hdFR5
cGVfNDIwWXBDYkNyMTBCaVBsYW5hclZpZGVvUmFuZ2U7CiAgICAgICAgIH0KLSAgICAgICAgbV9w
aXhlbEJ1ZmZlclBvb2wgPSBjcmVhdGVQaXhlbEJ1ZmZlclBvb2wod2lkdGgsIGhlaWdodCwgcG9v
bEJ1ZmZlclR5cGUpOwotICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbFdpZHRoID0gd2lkdGg7Ci0g
ICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sSGVpZ2h0ID0gaGVpZ2h0OwotICAgICAgICBtX3BpeGVs
QnVmZmVyUG9vbEJ1ZmZlclR5cGUgPSBidWZmZXJUeXBlOworICAgICAgICBpZiAoYXV0byBwb29s
ID0gY3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZlclBvb2woeyBzdGF0aWNfY2FzdDxpbnQ+KHdp
ZHRoKSwgc3RhdGljX2Nhc3Q8aW50PihoZWlnaHQpIH0sIHBvb2xCdWZmZXJUeXBlKSkgeworICAg
ICAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2wgPSBXVEZNb3ZlKCpwb29sKTsKKyAgICAgICAgICAg
IG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggPSB3aWR0aDsKKyAgICAgICAgICAgIG1fcGl4ZWxCdWZm
ZXJQb29sSGVpZ2h0ID0gaGVpZ2h0OworICAgICAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xCdWZm
ZXJUeXBlID0gYnVmZmVyVHlwZTsKKyAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gbV9waXhl
bEJ1ZmZlclBvb2wuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaAppbmRl
eCA1ZmJhZjVlZGM2NDAyNjE0ZWRhZmQ3YWUxNmRhZTgwYmJiMTdhOTAyLi4zODBkMzczMWIwYTE1
M2FiYjljMjI3MGJmZWU3NjgwZjAzYjNiOGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0
aWVzLmgKQEAgLTI3LDkgKzI3LDYgQEAKIAogI2luY2x1ZGUgPENvcmVWaWRlby9Db3JlVmlkZW8u
aD4KIAotdXNpbmcgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgPSBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVy
UG9vbCo7Ci11c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZmZXIqOwotCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgT1NUeXBlIHByZWZlcmVkUGl4ZWxC
dWZmZXJGb3JtYXQoKQpAQCAtNDEsNyArMzgsNCBAQCBzdGF0aWMgaW5saW5lIE9TVHlwZSBwcmVm
ZXJlZFBpeGVsQnVmZmVyRm9ybWF0KCkKICNlbmRpZgogfQogCi1XRUJDT1JFX0VYUE9SVCBSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclBvb2xSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyUG9vbChzaXplX3Qg
d2lkdGgsIHNpemVfdCBoZWlnaHQsIE9TVHlwZSk7Ci1XRUJDT1JFX0VYUE9SVCBSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gY3JlYXRlUGl4ZWxCdWZmZXJGcm9tUG9vbChDVlBpeGVsQnVmZmVy
UG9vbFJlZik7Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMubW0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2MmVjMjc2YjRmMTMxZDcwMDNmM2YzMjBlMDk3NDZjZDRj
ZWNjMjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRp
ZXMubW0KKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSByZXF1aXJlZCB0byBiZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0gKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0gKiBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSAqIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
Ci0gKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0
ICJjb25maWcuaCIKLSNpbXBvcnQgIlJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCIKLQotI2ltcG9y
dCAiQ29yZVZpZGVvU29mdExpbmsuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1SZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclBvb2xSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyUG9vbChzaXplX3Qgd2lk
dGgsIHNpemVfdCBoZWlnaHQsIE9TVHlwZSB2aWRlb0NhcHR1cmVGb3JtYXQpCi17Ci0gICAgYXV0
byBwaXhlbEF0dHJpYnV0ZXMgPSBAewotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQ
aXhlbEJ1ZmZlcldpZHRoS2V5OiBAKHdpZHRoKSwKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5n
ICopa0NWUGl4ZWxCdWZmZXJIZWlnaHRLZXk6IEAoaGVpZ2h0KSwKLSAgICAgICAgKF9fYnJpZGdl
IE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXk6IEAodmlkZW9DYXB0
dXJlRm9ybWF0KSwKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJD
R0ltYWdlQ29tcGF0aWJpbGl0eUtleTogQE5PLAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsRm9ybWF0T3BlbkdMRVNDb21wYXRp
YmlsaXR5IDogQFlFUywKLSNlbHNlCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBp
eGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSA6IEBZRVMsCi0jZW5kaWYKLSAgICAgICAg
KF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VQcm9wZXJ0aWVzS2V5
IDogQHsgfQotICAgIH07Ci0KLSAgICBDVlBpeGVsQnVmZmVyUG9vbFJlZiBwb29sID0gbnVsbHB0
cjsKLSAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJQb29sQ3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIG51bGxwdHIsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpcGl4ZWxBdHRyaWJ1
dGVzLCAmcG9vbCk7Ci0KLSAgICBpZiAoc3RhdHVzICE9IGtDVlJldHVyblN1Y2Nlc3MpCi0gICAg
ICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIGFkb3B0Q0YocG9vbCk7Ci19Ci0KLVJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlckZyb21Qb29sKENWUGl4
ZWxCdWZmZXJQb29sUmVmIHBpeGVsQnVmZmVyUG9vbCkKLXsKLSAgICBDVlBpeGVsQnVmZmVyUmVm
IHBpeGVsQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJQ
b29sQ3JlYXRlUGl4ZWxCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGl4ZWxCdWZmZXJQb29s
LCAmcGl4ZWxCdWZmZXIpOwotCi0gICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzKQot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gYWRvcHRDRihwaXhlbEJ1ZmZlcik7
Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1dlYkNvcmVVUkxSZXNwb25zZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQppbmRleCBkZTNiYjZhNzA3NjhkYzhhZTU4ZDBjZGVi
YTBhNDgwYWU4YmZiZWY1Li5jYTY1MGE1NGU0M2U4MmM4ZTQyNGRkYzNjYmM4NDQ3MmY4NjQ4M2Nl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3Jl
VVJMUmVzcG9uc2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
V2ViQ29yZVVSTFJlc3BvbnNlLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0IDxwYWwvc3Bp
L2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9Tb3J0ZWRBcnJheU1hcC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaAppbmRleCBkOThmNzJjYTUyYTFmMWMxZWY4YjI5
YjhmNzEyMjQyMzVjODE4ZjdhLi5lZWM4ZDY2ZmFhYmFmYjc5OWIwZmRlZGM0NTljNGRiNWE3ZjIy
ZTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiRGF0YVJlZmVy
ZW5jZS5oIgogI2luY2x1ZGUgIlJUQ0RlY29kZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUlRD
RW5jb2RlcklkZW50aWZpZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNz
aW9uVlQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTkz
LDcgKzkyLDYgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFJUQ0VuY29kZXJJZGVudGlmaWVyLCB3
ZWJydGM6OkxvY2FsRW5jb2Rlcj4gbV9lbmNvZGVycyBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fbG9j
ayk7IC8vIE9ubHkgbW9kaWZpZWQgb24gdGhlIGxpYldlYlJUQ0NvZGVjc1F1ZXVlIGJ1dCBtYXkg
Z2V0IGFjY2Vzc2VkIGZyb20gdGhlIG1haW4gdGhyZWFkLgogCiAgICAgUmVmPFdvcmtRdWV1ZT4g
bV9xdWV1ZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Np
b25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0gYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCmluZGV4
IGIyMzI1ODI3NDRjMTU4NjBlOTI1M2ViM2RiZTkyNDRlOTE5ZTg2MWYuLjQ4ODk1MmMyNWQ5MTg5
NjYwYjAzZjE2ODQyM2I0YjQwZmU1M2VlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQpAQCAtMzMsNiArMzMs
NyBAQAogI2ltcG9ydCAiTGliV2ViUlRDQ29kZWNzTWVzc2FnZXMuaCIKICNpbXBvcnQgIkxpYldl
YlJUQ0NvZGVjc1Byb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgorI2ltcG9ydCA8V2ViQ29yZS9DVlV0aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9M
aWJXZWJSVENQcm92aWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5o
PgogI2ltcG9ydCA8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RGVjb2Rlci5oPgpAQCAtMjA3LDEx
ICsyMDgsMTAgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6ZW5jb2RlRnJhbWUoUlRDRW5j
b2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZToKICAgICBpZiAoIWVuY29kZXIpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2lt
YWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9IHNhbXBsZS52aWRlb0Zvcm1hdCgp
KQotICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gV2ViQ29yZTo6SW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDo6Y3JlYXRlKHNhbXBsZS52aWRlb0Zvcm1hdCgpKTsKLQogI2lmICFQTEFURk9S
TShNQUNDQVRBTFlTVCkKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gbV9pbWFnZVRyYW5zZmVyU2Vz
c2lvbi0+Y3JlYXRlUGl4ZWxCdWZmZXIoc2FtcGxlLnN1cmZhY2UoKSk7CisgICAgaWYgKCFzYW1w
bGUuc3VyZmFjZSgpKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IFdl
YkNvcmU6OmNyZWF0ZUNWUGl4ZWxCdWZmZXIoc2FtcGxlLnN1cmZhY2UoKSkudmFsdWVfb3IobnVs
bHB0cik7CiAgICAgd2VicnRjOjplbmNvZGVMb2NhbEVuY29kZXJGcmFtZShlbmNvZGVyLCBwaXhl
bEJ1ZmZlci5nZXQoKSwgc2FtcGxlLnRpbWUoKS50b1RpbWVTY2FsZSgxMDAwMDAwKS50aW1lVmFs
dWUoKSwgdGltZVN0YW1wLCB0b1dlYlJUQ1ZpZGVvUm90YXRpb24oc2FtcGxlLnJvdGF0aW9uKCkp
LCBzaG91bGRFbmNvZGVBc0tleUZyYW1lKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXgg
OWFkOTRkNjg2ZTQzODBiNWExM2I5NDc3MTMzYTg4MjI1MWRiMDQ3Yy4uNzMwMTFlMTY4YTk4Zjgw
MzczY2QwYjY3M2Y3NGIwYzZkNDMxMjY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0zMyw5ICszMyw5
IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0NWVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENN
YWNyb3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZQOVV0aWxpdGllc0NvY29hLmg+
CkBAIC0zMzIsMTUgKzMzMiw5IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNv
ZGluZyhSVENEZWNvZGVySWRlbnRpZmllciBkZWNvZGVySWRlbnRpZmllciwKICAgICBpZiAoIWRl
Y29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAo
IW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxG
b3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKLSAgICAgICAgbV9pbWFnZVRy
YW5zZmVyU2Vzc2lvbiA9IFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShy
ZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7Ci0KLSAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNl
c3Npb24pIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgaWYgKCFyZW1vdGVT
YW1wbGUuc3VyZmFjZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byBwaXhl
bEJ1ZmZlciA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZVBpeGVsQnVmZmVyKHJlbW90
ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBsZS5zaXplKCkpOworICAgIGF1dG8gcGl4ZWxC
dWZmZXIgPSBjcmVhdGVDVlBpeGVsQnVmZmVyKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCkpLnZhbHVl
X29yKG51bGxwdHIpOwogICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTQ0NCw3ICs0MzgsNyBAQCBpbnQzMl90
IExpYldlYlJUQ0NvZGVjczo6ZW5jb2RlRnJhbWUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qgd2Vi
cnRjOjpWaWRlb0ZyYW1lJgogICAgICAgICBpZiAoIXBpeGVsQnVmZmVyUG9vbCkKICAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIHJldHVybiBXZWJDb3JlOjpjcmVhdGVQaXhl
bEJ1ZmZlckZyb21Qb29sKHBpeGVsQnVmZmVyUG9vbCkubGVha1JlZigpOworICAgICAgICByZXR1
cm4gV2ViQ29yZTo6Y3JlYXRlQ1ZQaXhlbEJ1ZmZlckZyb21Qb29sKHBpeGVsQnVmZmVyUG9vbCku
dmFsdWVfb3IobnVsbHB0cikubGVha1JlZigpOwogICAgIH0pKTsKIAogICAgIGlmICghcGl4ZWxC
dWZmZXIpCkBAIC01MDMsNyArNDk3LDcgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZEVuY29kaW5nKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQQzo6RGEKIENWUGl4
ZWxCdWZmZXJQb29sUmVmIExpYldlYlJUQ0NvZGVjczo6cGl4ZWxCdWZmZXJQb29sKHNpemVfdCB3
aWR0aCwgc2l6ZV90IGhlaWdodCwgT1NUeXBlIHR5cGUpCiB7CiAgICAgaWYgKCFtX3BpeGVsQnVm
ZmVyUG9vbCB8fCBtX3BpeGVsQnVmZmVyUG9vbFdpZHRoICE9IHdpZHRoIHx8IG1fcGl4ZWxCdWZm
ZXJQb29sSGVpZ2h0ICE9IGhlaWdodCkgewotICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbCA9IGNy
ZWF0ZVBpeGVsQnVmZmVyUG9vbCh3aWR0aCwgaGVpZ2h0LCB0eXBlKTsKKyAgICAgICAgbV9waXhl
bEJ1ZmZlclBvb2wgPSBXZWJDb3JlOjpjcmVhdGVJT1N1cmZhY2VDVlBpeGVsQnVmZmVyUG9vbCh7
IHN0YXRpY19jYXN0PGludD4od2lkdGgpLCBzdGF0aWNfY2FzdDxpbnQ+KGhlaWdodCkgfSwgdHlw
ZSkudmFsdWVfb3IobnVsbHB0cik7CiAgICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggPSB3
aWR0aDsKICAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xIZWlnaHQgPSBoZWlnaHQ7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRD
Q29kZWNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3MuaAppbmRleCBlYmU2MjNjYmQ3YjdhODVkMjg5ZTZhYzgyZDMxOTVkNmJlMTM1ZmJjLi40
MDgzM2UwMzBlZjViMGVlODk0ZDdmNDRiZTk4Y2Q2Nzk4MWY0YTJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaApAQCAt
MzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlJU
Q0RlY29kZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUlRDRW5jb2RlcklkZW50aWZpZXIuaCIK
LSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaD4KICNpbmNsdWRlIDxtYXA+CiAjaW5jbHVk
ZSA8d2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBlLmg+CkBAIC0xNDksNyArMTQ4LDYg
QEAgcHJpdmF0ZToKICAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPj4gbV90YXNrc1RvRGlzcGF0
Y2hBZnRlckVzdGFibGlzaGluZ0Nvbm5lY3Rpb247CiAKICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1
ZXVlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZU
PiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQ
aXhlbEJ1ZmZlckNvbmZvcm1lckNWPiBtX3BpeGVsQnVmZmVyQ29uZm9ybWVyOwogICAgIFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4gbV9waXhlbEJ1ZmZlclBvb2w7CiAgICAgc2l6ZV90
IG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggeyAwIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438500</attachid>
            <date>2021-09-17 12:29:33 -0700</date>
            <delta_ts>2021-09-17 13:14:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230338-20210917222931.patch</filename>
            <type>text/plain</type>
            <size>42906</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRjNGU3ZmI1YjEyZGVl
YmViZmNiOTY4NDhjYzdhOWM4ZjA3ZDZkMi4uZGUyYjhkZTA1ODdkM2FiMWM2Mzc2M2MyMTA4N2M3
ZDEzZGMwOTgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIxLTA5LTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHV0aWxpdHkg
dG8gY3JlYXRlIENWUGl4ZWxCdWZmZXJzIGZyb20gSU9TdXJmYWNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMzM4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgZnVuY3Rpb25hbGl0eSBv
ZiBjcmVhdGluZyBDVlBpeGVsQnVmZmVycworICAgICAgICBmcm9tIElPU3VyZmFjZXMgZnJvbSBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUIHRvCisgICAgICAgIHN0YW5kYWxvbmUgZnVuY3Rpb25zIGlu
IG5ldyBoZWFkZXIgQ1ZVdGlsaXRpZXMuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IGRpZCBu
b3QgdXNlIGFueSBzdGF0ZSBvZgorICAgICAgICBJbWFnZVRyYW5zZmVyU2Vzc2lvblZULgorCisg
ICAgICAgIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1c2VmdWwgaW4gb3RoZXIgc2NlbmFyaW9zIHRv
by4KKworICAgICAgICBSZW1vdmUgaW5zdGFudGlhdGlvbnMgb2YgSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVCBmcm9tCisgICAgICAgIHRoZSBvbGQgY2FsbCBzaXRlcywgYXMgaXQgd2FzIG5ldmVyIHVz
ZWQgZm9yIGFueXRoaW5nCisgICAgICAgIGVsc2UgdGhhbiBjcmVhdGlvbiBvZiB0aGUgcGl4ZWwg
YnVmZmVyLgorCisgICAgICAgIE1vdmUgdGhlIHJlbGF0ZWQgQ1ZQaXhlbEJ1ZmZlclBvb2wgaW5z
dGFudGlhdGlvbgorICAgICAgICBmcm9tIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCB0byBDVlV0
aWxpdGllcy5oCisKKyAgICAgICAgUmVtb3ZlIHRoZSB1c2FnZSBvZiBrQ1ZQaXhlbEZvcm1hdE9w
ZW5HTEVTQ29tcGF0aWJpbGl0eQorICAgICAgICBmcm9tIHRoZSBDVlBpeGVsQnVmZmVyIGNyZWF0
aW9uIGNvZGUuIEl0IHdhcyBpbmNvcnJlY3QgcHJvcGVydHkKKyAgICAgICAgYWxsIGFsb25nLCBw
cm9wZXJ0eSBvZiBwaXhlbCBmb3JtYXRzIG5vdCBvZiBwaXhlbCBidWZmZXJzLiBUaGUKKyAgICAg
ICAgaW50ZW5kZWQgcHJvcGVydHkgd2FzIGtDVlBpeGVsQnVmZmVyT3BlbkdMRVNDb21wYXRpYmls
aXR5S2V5CisgICAgICAgIGJ1dCBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisgICAgICAgIFJl
dGFpbnMgdGhlIHVzYWdlIG9mIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSwg
dGhvdWdoCisgICAgICAgIGl0IGlzIGluY29ycmVjdCBhbmQgdW5uZWVkZWQgZm9yIHRoZSBjdXJy
ZW50IG9wZXJhdGlvbiB0b28uCisgICAgICAgIFNpbmNlIHRoZW9yZXRpY2FsbHkgdGhpcyBjb3Vs
ZCBhZmZlY3Qgc29tZXRoaW5nIG9uIE1hYywgdGhpcworICAgICAgICB3aWxsIGJlIHJlbW92ZWQg
aW4gYSBzZXBhcmF0ZSBmaXguCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhIHJlZmFjdG9yLgor
CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZlclBvb2wpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlQ1ZQaXhlbEJ1ZmZlckZyb21Qb29sKToKKyAgICAgICAgKFdlYkNvcmU6OnBpeGVs
QnVmZmVyQ3JlYXRpb25PcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxC
dWZmZXIpOgorICAgICAgICBUaGUgYWRkZWQgZnVuY3Rpb25zIHJldHVybiBFeHBlY3RlZDxvYmpl
Y3QsIHN0YXR1cz4gc2luY2UKKyAgICAgICAgc29tZSBvZiB0aGUgY2FsbGVycyB3YW50IHRvIGxv
ZyB0aGUgZmFpbHVyZSBzdGF0dXMgY29kZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjdlBpeGVsRm9ybWF0T3BlbkdMS2V5KTogRGVsZXRlZC4KKyAgICAgICAg
SW5jb3JyZWN0LCByZXBsYWNlZCB3aXRoIE1hYy1vbmx5IHVzZSBvZiBPcGVuR0xDb21wYXRpYmls
aXR5S2V5IGluCisgICAgICAgIENWVXRpbGl0aWVzLm1tLgorICAgICAgICAoV2ViQ29yZTo6cm91
bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKTogRGVsZXRlZC4KKyAgICAgICAgVXNlIHRoZSBzaW1p
bGFyIGZ1bmN0aW9uIGluIFdURi4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ6OmlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRpb25zKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYTo6cGl4ZWxCdWZmZXJQb29sKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oOgorICAgICAgICBQcmVzZXJ2ZWQsIHNpbmNl
IHByZWZlcmVkUGl4ZWxCdWZmZXJGb3JtYXQgbWVhbnMKKyAgICAgICAgInRoZSBwaXhlbCBidWZm
ZXIgZm9ybWF0IHRoYXQgaXMgcHJlZmVycmVkIGJ5IG1lZGlhIHN0cmVhbSBpbXBsZW1lbnRhdGlv
bnMiCisgICAgICAgIHdoaWNoIGRvZXMgbm90IGZpdCB0byBjYXRlZ29yeSBvZiAiQ29yZVZpZGVv
IFV0aWxpdGllcyIuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
VmlkZW9VdGlsaXRpZXMubW06IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tOgorICAgICAgICBGaXggdW5pZmllZCBidWlsZCBmYWls
dXJlIGR1ZSB0byBhIG1pc3NpbmcgaW5jbHVkZS4KKwogMjAyMS0wOS0xNiAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHN0ZDo6b3B0aW9uYWwgZm9yIHRy
dW5jYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZjRkZWUyZmU4OWIyMjFlNjBmYWI1MGZiYzlkMDg1OWZmNGU5
MWZlMy4uYmVkMTY2NWVkZDQwNmFhMGFlMjQxMWIyNjA0YTNkYjUwOWMzNjkyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNyBAQAorMjAyMS0wOS0xNiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCB1dGlsaXR5IHRvIGNyZWF0ZSBDVlBpeGVsQnVmZmVy
cyBmcm9tIElPU3VyZmFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMDMzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoZSBoZWxwZXIgZnVuY3Rpb24gbW92ZWQgZnJvbSBJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUCisgICAgICAgIHRvIGZyZWUgc3RhbmRhbG9uZSBmdW5jdGlvbi4gU3RvcCBpbnN0YW50
aWF0aW5nIHRoZQorICAgICAgICBvYmplY3QgYW5kIGp1c3QgY2FsbCB0aGUgZnVuY3Rpb24uCisK
KyAgICAgICAgSW4gYm90aCBvZiB0aGUgY2FzZXMsIHRoZSBwaXhlbCBidWZmZXIgaXMgY3JlYXRl
ZCBvdXQgb2YKKyAgICAgICAgdGhlIElPU3VyZmFjZSBhbmQgdGhlIHBvb2wgaXMgbm90IHVzZWQu
IEluIGJvdGggb2YgdGhlIGNhc2VzCisgICAgICAgIHRoZSBzaXplIGFuZCB0aGUgcGl4ZWwgZm9y
bWF0IG9mIHRoZSBpbWFnZSB0cmFuc2ZlciBzZXNzaW9uCisgICAgICAgIGlzIHRoZSBzYW1lIGFz
IHRoZSBpbnB1dCBJT1N1cmZhY2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6cGl4ZWxCdWZmZXJQb29sKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmg6CisKIDIw
MjEtMDktMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdW1dQRV0gdGVzdCBhbmltYXRpb25zL3N0ZXBzLXRyYW5zZm9ybS1yZW5kZXJp
bmctdXBkYXRlcy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDkwZGJl
MTJkOTdjYTAwNDY5NTYwNTJkOWFiNWJiY2I5NDAyOTI5ZGEuLmI4MDgyMGNjNjQ1NjVkMjFlOGMy
ZDg4MzFmZmFlNDYzOGUyMjA3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
TWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0zMzcs
NiArMzM3LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvcmV0ZXh0L0dseXBoUGFnZUNvcmVUZXh0LmNwcAogCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWQU5HTEUuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VS
b3RhdGlvblNlc3Npb25WVC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVy
Q29uZm9ybWVyQ1YuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBlZjIwYmVkMzYxNWJj
YTgxMTAyYTIyMDEwOTQ0MWE4ZTIxOTVlNzdkLi43OTM1MjJjZDA3ZjUyYTYyNThiMTY0NDYxZjEy
ODUwYjdkNzEzNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM5Miw2ICszOTIsNyBA
QCBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvR2x5cGhQYWdlQ29yZVRleHQuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9jdi9D
VlV0aWxpdGllcy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5jcHAKQEAgLTU0Miw3
ICs1NDMsNiBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYy5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjLm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlQ29jb2EuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCi1wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVWaWRlb1V0aWxpdGllcy5tbQogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJDb2NvYS5tbQogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9j
ay5jcHAKIHBsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggYzc1ODQzMDYxNzdkODY1YjQ5ZTE5YjdlMDM5ZGVkZjUwMGYxM2Q2ZC4uZDU2OTA0OGM5MGQ5
ZGZhM2EwYmExODJiMWU4N2QxZjU3NjhjZmJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM1Miw2ICsyMzUyLDcgQEAKIAkJ
N0I0NUFCNTUyNUZCQTlERTAwRkQyN0Y0IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
NDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0
aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QjczMTFGQjI1QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3
MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QjhF
RDVGMDI2RjBDMTNEMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCOEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBD
VlV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdCOTA0MTcwMjU1MDExNDIwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0JCMzRBMTcyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
QjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRpbGl0aWVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JC
MzRBNDgyNTM3NzZDQTAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjM0QTQ1
MjUzNzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc5NDgsNyAr
Nzk0OSw2IEBACiAJCTQxNTc0NzQ0MUUzODY5OUUwMEU5MTREOCAvKiBMaWJXZWJSVENQcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENQcm92aWRlci5o
OyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxNTdFQkY4MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTdF
QkY5MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE1ODY0OUYyM0JGN0I5
MzAwQTBBNjFFIC8qIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCNjI0RkZDRDFCMDBCOURBNDEgLyogUlRDSWNl
Q29tcG9uZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENJY2VDb21wb25lbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCODI0RkZDREMzMDBCOURBNDEg
LyogUlRDSWNlUHJvdG9jb2wuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ0ljZVByb3Rv
Y29sLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1OERDQjkyNEZGQ0RDMzAw
QjlEQTQxIC8qIFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTA2MDEsNiArMTA2MDEsOCBAQAogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyog
R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNj
b3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3Qjc3NEM2MjI1RkI5MzU1MDA5MTM5NUYgLyogR3JhcGhpY3NDb250
ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJN0I4RUQ1RUQyNkYwQzEyMzAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENWVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTdCOEVENUVGMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENWVXRpbGl0aWVzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjkwNDE2RTI1NTAxMTA5MDA2RUVCOEMgLyogUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGlsaXRp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xB
TkdMRVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkIzNEE0NTI1
Mzc3NkM2MDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzYzOCw3ICsxNzY0MCw2IEBACiAJCQkJNUNERDgzM0MxRTQz
MjRCQjAwNjIxQjgzIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmggKi8sCiAJ
CQkJNDE5MjQyNDcyMTI3QjdDQzAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZUNvY29hLm1tICovLAogCQkJCTQxRDE5MzhGMjE1MkM1NjEwMDZGMTRDQSAvKiBSZWFsdGltZVZp
ZGVvVXRpbGl0aWVzLmggKi8sCi0JCQkJNDE1ODY0OUYyM0JGN0I5MzAwQTBBNjFFIC8qIFJlYWx0
aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8sCiAJCQkJMDdENjM3M0UxQkIwQjExMzAwMjU2Q0U5IC8q
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oICovLAogCQkJCTA3RDYzNzNGMUJCMEIxMTMw
MDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0gKi8sCiAJCQkpOwpAQCAt
MjgzMDgsNiArMjgzMDksOCBAQAogCQlDRDlEODI3QzFDN0JCMkVEMDA2RkYwNjYgLyogY3YgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTdCOEVENUVEMjZG
MEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovLAorCQkJCTdCOEVENUVGMjZGMEMxMjMw
MDhBQzAyMyAvKiBDVlV0aWxpdGllcy5tbSAqLywKIAkJCQk3QjEwMzM5RDI1NDk3MjAxMDBDOEMx
QUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovLAogCQkJCTdCMTAzMzlBMjU0OTcyMDAwMEM4
QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuY3BwICovLAogCQkJCTdCMTAzMzlDMjU0
OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuaCAqLywKQEAgLTMxOTcx
LDYgKzMxOTc0LDcgQEAKIAkJCQk2MkNEMzI1QTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNUQyMzg1MjI3QTA2NTIwMDBCOUJEQSAvKiBDdXN0
b21IZWFkZXJGaWVsZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCMUUxM0U3MjE3OTBENjYwMDQy
Q0Y5OCAvKiBDdXN0b21QYWludENhbnZhcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0I4RUQ1RjAy
NkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENC
NDEzRTBFODYzM0ZEMDAzMkM0RjAgLyogRGFzaEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
N0JDNkEyMTE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3QkM2QTI0MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZUF1dGhvcml6ZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzMxMzIsNyArMzMxMzYsNiBAQAogCQkJCUJDNjkzMjc0MEQ3RTI5MzkwMEFF
NDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1MkZCQkJDMERF
MjdDQjYwMDAxRDM4NiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEwQkNGNTYyNkYwQ0Q4QzAwNDBCMTI0IC8qIFJUQ0xvY2FsU2Vzc2lv
bkRlc2NyaXB0aW9uSW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVFMEU5NDQxMTMzQzg5RjAw
QjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M0NUM5RDMxRTNG
Q0JENzAwQUFCNTU4IC8qIEpTRE9NV3JhcHBlckNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0E4MDYxRTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNDc0Miw2ICszNDc0NSw3IEBACiAJCQkJMDdBQjk5NkIxOERBM0MwMTAwMTg3NzFFIC8q
IFJUQ0ljZVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzNTkxMDgxRTdEREM3MzAwRjMw
NjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzNTkx
MDkxRTdEREM3MzAwRjMwNjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFN0YXRlLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTBCQ0Y1NjI2RjBDRDhDMDA0MEIxMjQgLyogUlRDTG9jYWxTZXNzaW9uRGVzY3Jp
cHRpb25Jbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUMxNEJDNjI2REU2REU4MDA2ODVCRjUg
LyogUlRDTmV0d29ya01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mzc5NEZFMTlGNTg2
NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzM3
OTRERTE5RUUyQzUyMDBFNUEwNDUgLyogUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NW
VXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxp
dGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJkMWZlMGU5Y2FmZTdkMGQ2MWFkMTRiNWIzMmFiZGFmMGZiODZi
MzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9DVlV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPENvcmVWaWRlby9Db3JlVmlkZW8uaD4KKyNpbmNsdWRlIDx1dGlsaXR5
PgorI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
KwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgPSBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVyUG9v
bCo7Cit1c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZmZXIqOworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKy8vIENyZWF0ZXMgQ1ZQaXhlbEJ1ZmZlclBvb2wgdGhhdCBjcmVh
dGVzIENWUGl4ZWxCdWZmZXJzIGJhY2tlZCBieSBJT1N1cmZhY2VzLgorLy8gVGhlc2UgYnVmZmVy
cyBjYW4gYmUgZm9yIGV4YW1wbGUgc2VudCB0aHJvdWdoIElQQy4KK1dFQkNPUkVfRVhQT1JUIEV4
cGVjdGVkPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4sIENWUmV0dXJuPiBjcmVhdGVJ
T1N1cmZhY2VDVlBpeGVsQnVmZmVyUG9vbChJbnRTaXplLCBPU1R5cGUgcGl4ZWxGb3JtYXQsIHVu
c2lnbmVkIG1pbmltdW1CdWZmZXJDb3VudCA9IDB1KTsKKworV0VCQ09SRV9FWFBPUlQgRXhwZWN0
ZWQ8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4gY3JlYXRlQ1ZQaXhlbEJ1
ZmZlckZyb21Qb29sKENWUGl4ZWxCdWZmZXJQb29sUmVmKTsKKworV0VCQ09SRV9FWFBPUlQgRXhw
ZWN0ZWQ8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4gY3JlYXRlQ1ZQaXhl
bEJ1ZmZlcihJT1N1cmZhY2VSZWYpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyZDFiZGNhZmRhODE4
Y2Y2MmMzMjM4MjlmNjkyODgwNmVhNDZjNWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQpAQCAtMCwwICsxLDEwOCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQ1ZVdGlsaXRpZXMu
aCIKKworI2ltcG9ydCA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2ltcG9ydCAiQ29yZVZpZGVvU29m
dExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitFeHBlY3RlZDxSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclBvb2xSZWY+LCBDVlJldHVybj4gY3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZl
clBvb2woSW50U2l6ZSBzaXplLCBPU1R5cGUgZm9ybWF0LCB1bnNpZ25lZCBtaW5pbXVtQnVmZmVy
Q291bnQpCit7CisgICAgYXV0byBwaXhlbEF0dHJpYnV0ZXMgPSBAeworICAgICAgICAoX19icmlk
Z2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlcldpZHRoS2V5IDogQChzaXplLndpZHRoKCkpLAor
ICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckhlaWdodEtleSA6IEAo
c2l6ZS5oZWlnaHQoKSksCisgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVm
ZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IDogQChmb3JtYXQpLAorICAgICAgICAoX19icmlkZ2UgTlNT
dHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckNHSW1hZ2VDb21wYXRpYmlsaXR5S2V5IDogQE5PLAorI2lm
IFBMQVRGT1JNKE1BQykKKyAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZm
ZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5IDogQFlFUywKKyNlbmRpZgorICAgICAgICAoX19icmlk
Z2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZVByb3BlcnRpZXNLZXkgOiBAIHsg
YSA6IGIgfQorICAgIH07CisgICAgTlNEaWN0aW9uYXJ5ICpwb29sT3B0aW9ucyA9IG51bGxwdHI7
CisgICAgaWYgKG1pbmltdW1CdWZmZXJDb3VudCkgeworICAgICAgICBwb29sT3B0aW9ucyA9IEB7
CisgICAgICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBvb2xNaW5p
bXVtQnVmZmVyQ291bnRLZXkgOiBAKG1pbmltdW1CdWZmZXJDb3VudCkKKyAgICAgICAgfTsKKyAg
ICB9CisgICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcG9vbCA9IG51bGxwdHI7CisgICAgYXV0byBz
dGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoX19i
cmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBvb2xPcHRpb25zLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5
UmVmKXBpeGVsQXR0cmlidXRlcywgJnBvb2wpOworICAgIGlmIChzdGF0dXMgIT0ga0NWUmV0dXJu
U3VjY2VzcyB8fCAhcG9vbCkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHN0YXR1cyk7
CisgICAgcmV0dXJuIGFkb3B0Q0YocG9vbCk7Cit9CisKK0V4cGVjdGVkPFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiwgQ1ZSZXR1cm4+IGNyZWF0ZUNWUGl4ZWxCdWZmZXJGcm9tUG9vbChDVlBp
eGVsQnVmZmVyUG9vbFJlZiBwaXhlbEJ1ZmZlclBvb2wpCit7CisgICAgQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlciA9IG51bGxwdHI7CisgICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVy
UG9vbENyZWF0ZVBpeGVsQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVyUG9v
bCwgJnBpeGVsQnVmZmVyKTsKKyAgICBpZiAoc3RhdHVzICE9IGtDVlJldHVyblN1Y2Nlc3MgfHwg
IXBpeGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoc3RhdHVzKTsKKyAg
ICByZXR1cm4gYWRvcHRDRihwaXhlbEJ1ZmZlcik7Cit9CisKK3N0YXRpYyBDRkRpY3Rpb25hcnlS
ZWYgcGl4ZWxCdWZmZXJDcmVhdGlvbk9wdGlvbnMoSU9TdXJmYWNlUmVmIHN1cmZhY2UpCit7Cisj
aWYgUExBVEZPUk0oTUFDKQorICAgIGF1dG8gZm9ybWF0ID0gSU9TdXJmYWNlR2V0UGl4ZWxGb3Jt
YXQoc3VyZmFjZSk7CisgICAgaWYgKGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBD
YkNyOEJpUGxhbmFyVmlkZW9SYW5nZSB8fCBmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQy
MFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZSkgeworICAgICAgICBjb25zdGV4cHIgc2l6ZV90IG1h
Y3JvYmxvY2tTaXplID0gMTY7CisgICAgICAgIGF1dG8gd2lkdGggPSBJT1N1cmZhY2VHZXRXaWR0
aChzdXJmYWNlKTsKKyAgICAgICAgYXV0byBoZWlnaHQgPSBJT1N1cmZhY2VHZXRIZWlnaHQoc3Vy
ZmFjZSk7CisgICAgICAgIGF1dG8gZXh0ZW5kZWRSaWdodCA9IHJvdW5kVXBUb011bHRpcGxlT2Yo
bWFjcm9ibG9ja1NpemUsIHdpZHRoKSAtIHdpZHRoOworICAgICAgICBhdXRvIGV4dGVuZGVkQm90
dG9tID0gcm91bmRVcFRvTXVsdGlwbGVPZihtYWNyb2Jsb2NrU2l6ZSwgaGVpZ2h0KSAtIGhlaWdo
dDsKKyAgICAgICAgaWYgKChJT1N1cmZhY2VHZXRCeXRlc1BlclJvd09mUGxhbmUoc3VyZmFjZSwg
MCkgPj0gd2lkdGggKyBleHRlbmRlZFJpZ2h0KQorICAgICAgICAgICAgJiYgKElPU3VyZmFjZUdl
dEJ5dGVzUGVyUm93T2ZQbGFuZShzdXJmYWNlLCAxKSA+PSB3aWR0aCArIGV4dGVuZGVkUmlnaHQp
CisgICAgICAgICAgICAmJiAoSU9TdXJmYWNlR2V0QWxsb2NTaXplKHN1cmZhY2UpID49IChoZWln
aHQgKyBleHRlbmRlZEJvdHRvbSkgKiBJT1N1cmZhY2VHZXRCeXRlc1BlclJvd09mUGxhbmUoc3Vy
ZmFjZSwgMCkgKiAzIC8gMikpIHsKKyAgICAgICAgICAgIHJldHVybiAoX19icmlkZ2UgQ0ZEaWN0
aW9uYXJ5UmVmKSBAeworICAgICAgICAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBp
eGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSA6IEBZRVMsCisgICAgICAgICAgICAgICAg
KF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJFeHRlbmRlZFBpeGVsc1JpZ2h0S2V5
IDogQChleHRlbmRlZFJpZ2h0KSwKKyAgICAgICAgICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcg
KilrQ1ZQaXhlbEJ1ZmZlckV4dGVuZGVkUGl4ZWxzQm90dG9tS2V5IDogQChleHRlbmRlZEJvdHRv
bSkKKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShzdXJmYWNlKTsKKyNlbmRpZgorICAgIHJldHVybiAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5
UmVmKSBAeworI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICop
a0NWUGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5IDogQFlFUworI2VuZGlmCisgICAg
fTsKK30KKworRXhwZWN0ZWQ8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4g
Y3JlYXRlQ1ZQaXhlbEJ1ZmZlcihJT1N1cmZhY2VSZWYgc3VyZmFjZSkKK3sKKyAgICBBU1NFUlQo
c3VyZmFjZSk7CisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IG51bGxwdHI7Cisg
ICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyQ3JlYXRlV2l0aElPU3VyZmFjZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBzdXJmYWNlLCBwaXhlbEJ1ZmZlckNyZWF0aW9uT3B0aW9ucyhzdXJmYWNl
KSwgJnBpeGVsQnVmZmVyKTsKKyAgICBpZiAoc3RhdHVzICE9IGtDVlJldHVyblN1Y2Nlc3MgfHwg
IXBpeGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoc3RhdHVzKTsKKyAg
ICByZXR1cm4gYWRvcHRDRihwaXhlbEJ1ZmZlcik7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9u
VlQuaAppbmRleCBhNTI1ODk1MTAyYmJhNTgyOWNkMzc4NDQ3Yjk1YWI1NzZjNmFmMmY2Li40ZjIy
OWRlNmFmZjlkZjFhMWQ0MmQ3NjBlMjcwOTkwNWM4ODdmNDBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5oCkBAIC01OCwxOCArNTgsMTIgQEAgcHVibGljOgogI2VuZGlmCiAjZW5kaWYKIAotI2lm
ICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICBXRUJDT1JFX0VYUE9SVCBSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4gY3JlYXRlUGl4ZWxCdWZmZXIoSU9TdXJmYWNlUmVmKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY3JlYXRlUGl4ZWxCdWZmZXIo
SU9TdXJmYWNlUmVmLCBjb25zdCBJbnRTaXplJik7Ci0jZW5kaWYKLQogICAgIHVpbnQzMl90IHBp
eGVsRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV9waXhlbEZvcm1hdDsgfQogCiBwcml2YXRlOgog
ICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQodWludDMy
X3QgcGl4ZWxGb3JtYXQpOwogCiAjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIENGRGlj
dGlvbmFyeVJlZiBpb1N1cmZhY2VQaXhlbEJ1ZmZlckNyZWF0aW9uT3B0aW9ucyhJT1N1cmZhY2VS
ZWYpOwogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gY3JlYXRlQ01TYW1wbGVCdWZm
ZXIoSU9TdXJmYWNlUmVmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBJbnRTaXplJik7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KaW5kZXggZjMxNjlhYmMwMjc3MDgyZjBjZmNl
NDcyNjc5ZTExMDc5N2M4YzlmNi4uYjk3YWQzYmQ1ZjEzZWZmZGJjYjEyYzc4MTdjNzMxODU5OGFm
NTVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1h
Z2VUcmFuc2ZlclNlc3Npb25WVC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1w
b3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaCIKIAorI2lt
cG9ydCAiQ1ZVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW1w
b3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKQEAgLTQzLDE1
ICs0NCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGlubGluZSBDRlN0cmlu
Z1JlZiBjdlBpeGVsRm9ybWF0T3BlbkdMS2V5KCkKLXsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0gICAgcmV0dXJuIGtDVlBpeGVsRm9ybWF0T3Bl
bkdMRVNDb21wYXRpYmlsaXR5OwotI2Vsc2UKLSAgICByZXR1cm4ga0NWUGl4ZWxCdWZmZXJPcGVu
R0xDb21wYXRpYmlsaXR5S2V5OwotI2VuZGlmCi19Ci0KIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6
OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQodWludDMyX3QgcGl4ZWxGb3JtYXQpCiB7CiAgICAgVlRQ
aXhlbFRyYW5zZmVyU2Vzc2lvblJlZiB0cmFuc2ZlclNlc3Npb247CkBAIC04NCwyOSArNzYsMTEg
QEAgYm9vbCBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpzZXRTaXplKGNvbnN0IEludFNpemUmIHNp
emUpCiB7CiAgICAgaWYgKG1fc2l6ZSA9PSBzaXplICYmIG1fb3V0cHV0QnVmZmVyUG9vbCkKICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBOU0RpY3Rpb25hcnkqIHBpeGVsQnVmZmVyT3B0aW9u
cyA9IEB7Ci0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyV2lkdGhL
ZXkgOiBAKHNpemUud2lkdGgoKSksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBp
eGVsQnVmZmVySGVpZ2h0S2V5IDogQChzaXplLmhlaWdodCgpKSwKLSAgICAgICAgKF9fYnJpZGdl
IE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkgOiBAKG1fcGl4ZWxG
b3JtYXQpLAotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKiljdlBpeGVsRm9ybWF0T3BlbkdM
S2V5KCkgOiBAWUVTLAotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZl
cklPU3VyZmFjZVByb3BlcnRpZXNLZXkgOiBAeyAvKmVtcHR5IGRpY3Rpb25hcnkqLyB9LAotICAg
IH07Ci0KLSAgICBOU0RpY3Rpb25hcnkqIHBpeGVsQnVmZmVyUG9vbE9wdGlvbnMgPSBAewotICAg
ICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBvb2xNaW5pbXVtQnVmZmVy
Q291bnRLZXk6IEAoNikKLSAgICB9OwotCi0gICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgYnVmZmVy
UG9vbDsKLSAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJQb29sQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpcGl4ZWxCdWZmZXJQb29sT3B0
aW9ucywgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhlbEJ1ZmZlck9wdGlvbnMsICZidWZm
ZXJQb29sKTsKLSAgICBBU1NFUlQoIXN0YXR1cyk7Ci0gICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1
cm5TdWNjZXNzKQorICAgIGF1dG8gYnVmZmVyUG9vbCA9IGNyZWF0ZUlPU3VyZmFjZUNWUGl4ZWxC
dWZmZXJQb29sKHNpemUsIG1fcGl4ZWxGb3JtYXQsIDYpLnZhbHVlX29yKG51bGxwdHIpOworICAg
IGlmICghYnVmZmVyUG9vbCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgbV9vdXRwdXRC
dWZmZXJQb29sID0gYWRvcHRDRihidWZmZXJQb29sKTsKKyAgICBtX291dHB1dEJ1ZmZlclBvb2wg
PSBXVEZNb3ZlKGJ1ZmZlclBvb2wpOwogICAgIG1fc2l6ZSA9IHNpemU7Ci0gICAgbV9pb1N1cmZh
Y2VCdWZmZXJBdHRyaWJ1dGVzID0gbnVsbHB0cjsKLQogICAgIHJldHVybiB0cnVlOwogfQogCkBA
IC0xMTgsMjYgKzkyLDIwIEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFnZVRyYW5z
ZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXIoQ1ZQaXhlbEJ1CiAgICAgaWYgKCFzb3Vy
Y2VCdWZmZXIgfHwgIXNldFNpemUoc2l6ZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgQ1ZQaXhlbEJ1ZmZlclJlZiBvdXRwdXRCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gc3Rh
dHVzID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGVQaXhlbEJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBtX291dHB1dEJ1ZmZlclBvb2wuZ2V0KCksICZvdXRwdXRCdWZmZXIpOwotICAgIGlmIChz
dGF0dXMpIHsKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUOjpjb252ZXJ0UGl4ZWxCdWZmZXIsIENWUGl4ZWxCdWZmZXJQb29sQ3JlYXRlUGl4ZWxCdWZm
ZXIgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOworICAg
IGF1dG8gcmVzdWx0ID0gY3JlYXRlQ1ZQaXhlbEJ1ZmZlckZyb21Qb29sKG1fb3V0cHV0QnVmZmVy
UG9vbC5nZXQoKSk7CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgUkVMRUFTRV9MT0coTWVk
aWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXIsIGNyZWF0ZUNW
UGl4ZWxCdWZmZXJGcm9tUG9vbCBmYWlsZWQgd2l0aCBlcnJvciAlZCIsIHN0YXRpY19jYXN0PGlu
dD4ocmVzdWx0LmVycm9yKCkpKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAg
IGF1dG8gcmVzdWx0ID0gYWRvcHRDRihvdXRwdXRCdWZmZXIpOworICAgIGF1dG8gb3V0cHV0QnVm
ZmVyID0gV1RGTW92ZSgqcmVzdWx0KTsKIAotICAgIGF1dG8gZXJyID0gVlRQaXhlbFRyYW5zZmVy
U2Vzc2lvblRyYW5zZmVySW1hZ2UobV90cmFuc2ZlclNlc3Npb24uZ2V0KCksIHNvdXJjZUJ1ZmZl
ciwgb3V0cHV0QnVmZmVyKTsKKyAgICBhdXRvIGVyciA9IFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25U
cmFuc2ZlckltYWdlKG1fdHJhbnNmZXJTZXNzaW9uLmdldCgpLCBzb3VyY2VCdWZmZXIsIG91dHB1
dEJ1ZmZlci5nZXQoKSk7CiAgICAgaWYgKGVycikgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRp
YSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlciwgVlRQaXhlbFRy
YW5zZmVyU2Vzc2lvblRyYW5zZmVySW1hZ2UgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCBzdGF0aWNf
Y2FzdDxpbnQ+KGVycikpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBy
ZXR1cm4gcmVzdWx0OwotfQotCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDo6Y3JlYXRlUGl4ZWxCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgc291cmNl
QnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQotewotICAgIHJldHVybiBjb252ZXJ0UGl4ZWxC
dWZmZXIoUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlciksIHNp
emUpOworICAgIHJldHVybiBvdXRwdXRCdWZmZXI7CiB9CiAKIFJldGFpblB0cjxDTVNhbXBsZUJ1
ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENN
U2FtcGxlQnVmZmVyUmVmIHNvdXJjZUJ1ZmZlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKQEAgLTE1
NCw3ICsxMjIsNyBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcihDTVNhbQogICAgIGlmICghc2V0U2l6ZShz
aXplKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIGNvbnZlcnRlZFBpeGVs
QnVmZmVyID0gY3JlYXRlUGl4ZWxCdWZmZXIoc291cmNlQnVmZmVyLCBzaXplKTsKKyAgICBhdXRv
IGNvbnZlcnRlZFBpeGVsQnVmZmVyID0gY29udmVydFBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLCBz
aXplKTsKICAgICBpZiAoIWNvbnZlcnRlZFBpeGVsQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIApAQCAtMjY2LDgyICsyMzQsMTEgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVm
PiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcihDR0ltYWcKIAog
I2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKIAotI2lmIFBMQVRGT1JNKE1BQykKLXN0YXRpYyBp
bnQzMl90IHJvdW5kVXBUb01hY3JvYmxvY2tNdWx0aXBsZShpbnQzMl90IHNpemUpCi17Ci0gICAg
cmV0dXJuIChzaXplICsgMTUpICYgfjE1OwotfQotI2VuZGlmCi0KLUNGRGljdGlvbmFyeVJlZiBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUOjppb1N1cmZhY2VQaXhlbEJ1ZmZlckNyZWF0aW9uT3B0aW9u
cyhJT1N1cmZhY2VSZWYgc3VyZmFjZSkKLXsKLSAgICBpZiAobV9pb1N1cmZhY2VCdWZmZXJBdHRy
aWJ1dGVzKQotICAgICAgICByZXR1cm4gbV9pb1N1cmZhY2VCdWZmZXJBdHRyaWJ1dGVzLmdldCgp
OwotCi0gICAgbV9pb1N1cmZhY2VCdWZmZXJBdHRyaWJ1dGVzID0gKF9fYnJpZGdlIENGRGljdGlv
bmFyeVJlZikgQHsKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopY3ZQaXhlbEZvcm1hdE9w
ZW5HTEtleSgpIDogQFlFUywKLSAgICB9OwotCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIGF1dG8g
Zm9ybWF0ID0gSU9TdXJmYWNlR2V0UGl4ZWxGb3JtYXQoc3VyZmFjZSk7Ci0gICAgYXV0byB3aWR0
aCA9IElPU3VyZmFjZUdldFdpZHRoKHN1cmZhY2UpOwotICAgIGF1dG8gaGVpZ2h0ID0gSU9TdXJm
YWNlR2V0SGVpZ2h0KHN1cmZhY2UpOwotICAgIGF1dG8gZXh0ZW5kZWRSaWdodCA9IHJvdW5kVXBU
b01hY3JvYmxvY2tNdWx0aXBsZSh3aWR0aCkgLSB3aWR0aDsKLSAgICBhdXRvIGV4dGVuZGVkQm90
dG9tID0gcm91bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKGhlaWdodCkgLSBoZWlnaHQ7Ci0KLSAg
ICBpZiAoKGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyVmlk
ZW9SYW5nZSB8fCBmb3JtYXQgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5h
ckZ1bGxSYW5nZSkKLSAgICAgICAgJiYgKElPU3VyZmFjZUdldEJ5dGVzUGVyUm93T2ZQbGFuZShz
dXJmYWNlLCAwKSA+PSB3aWR0aCArIGV4dGVuZGVkUmlnaHQpCi0gICAgICAgICYmIChJT1N1cmZh
Y2VHZXRCeXRlc1BlclJvd09mUGxhbmUoc3VyZmFjZSwgMSkgPj0gd2lkdGggKyBleHRlbmRlZFJp
Z2h0KQotICAgICAgICAmJiAoSU9TdXJmYWNlR2V0QWxsb2NTaXplKHN1cmZhY2UpID49IChoZWln
aHQgKyBleHRlbmRlZEJvdHRvbSkgKiBJT1N1cmZhY2VHZXRCeXRlc1BlclJvd09mUGxhbmUoc3Vy
ZmFjZSwgMCkgKiAzIC8gMikpIHsKLSAgICAgICAgICAgIG1faW9TdXJmYWNlQnVmZmVyQXR0cmli
dXRlcyA9IChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpIEB7Ci0gICAgICAgICAgICAgICAgKF9f
YnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5IDog
QFlFUywKLSAgICAgICAgICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZl
ckV4dGVuZGVkUGl4ZWxzUmlnaHRLZXkgOiBAKGV4dGVuZGVkUmlnaHQpLAotICAgICAgICAgICAg
ICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyRXh0ZW5kZWRQaXhlbHNCb3R0
b21LZXkgOiBAKGV4dGVuZGVkQm90dG9tKQotICAgICAgICAgICAgfTsKLSAgICB9Ci0jZWxzZQot
ICAgIFVOVVNFRF9QQVJBTShzdXJmYWNlKTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIG1faW9TdXJm
YWNlQnVmZmVyQXR0cmlidXRlcy5nZXQoKTsKLX0KLQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKElPU3VyZmFjZVJl
ZiBzdXJmYWNlKQotewotICAgIGlmICghc3VyZmFjZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0KLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyOwotICAgIGF1dG8gc3RhdHVzID0g
Q1ZQaXhlbEJ1ZmZlckNyZWF0ZVdpdGhJT1N1cmZhY2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3Vy
ZmFjZSwgaW9TdXJmYWNlUGl4ZWxCdWZmZXJDcmVhdGlvbk9wdGlvbnMoc3VyZmFjZSksICZwaXhl
bEJ1ZmZlcik7Ci0gICAgaWYgKHN0YXR1cykgewotICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwg
IkNWUGl4ZWxCdWZmZXJDcmVhdGVXaXRoSU9TdXJmYWNlIGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6
ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgfQotICAgIHJldHVybiBhZG9wdENGKHBpeGVsQnVmZmVyKTsKLX0KLQotUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZVBpeGVsQnVm
ZmVyKElPU3VyZmFjZVJlZiBzdXJmYWNlLCBjb25zdCBJbnRTaXplJiBzaXplKQorUmV0YWluUHRy
PENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBs
ZUJ1ZmZlcihJT1N1cmZhY2VSZWYgc3VyZmFjZSwgY29uc3QgTWVkaWFUaW1lICZzYW1wbGVUaW1l
LCBjb25zdCBJbnRTaXplICZzaXplKQogewogICAgIGlmICghc3VyZmFjZSB8fCAhc2V0U2l6ZShz
aXplKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBp
eGVsQnVmZmVyOwotICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckNyZWF0ZVdpdGhJT1N1
cmZhY2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3VyZmFjZSwgaW9TdXJmYWNlUGl4ZWxCdWZmZXJD
cmVhdGlvbk9wdGlvbnMoc3VyZmFjZSksICZwaXhlbEJ1ZmZlcik7Ci0gICAgaWYgKHN0YXR1cykg
ewotICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkNWUGl4ZWxCdWZmZXJDcmVhdGVXaXRoSU9T
dXJmYWNlIGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0
dXMpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgYXV0byByZXRhaW5l
ZEJ1ZmZlciA9IGFkb3B0Q0YocGl4ZWxCdWZmZXIpOwotICAgIGlmIChtX3NpemUgPT0gSW50U2l6
ZShDVlBpeGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIpLCBDVlBpeGVsQnVmZmVyR2V0SGVp
Z2h0KHBpeGVsQnVmZmVyKSkgJiYgbV9waXhlbEZvcm1hdCA9PSBDVlBpeGVsQnVmZmVyR2V0UGl4
ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKSkKLSAgICAgICAgcmV0dXJuIHJldGFpbmVkQnVmZmVy
OwotCi0gICAgcmV0dXJuIGNvbnZlcnRQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc2l6ZSk7Ci19
Ci0KLVJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6
Y3JlYXRlQ01TYW1wbGVCdWZmZXIoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIGNvbnN0IE1lZGlhVGlt
ZSYgc2FtcGxlVGltZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLXsKLSAgICBhdXRvIHBpeGVsQnVm
ZmVyID0gY3JlYXRlUGl4ZWxCdWZmZXIoc3VyZmFjZSwgc2l6ZSk7CisgICAgYXV0byBwaXhlbEJ1
ZmZlciA9IGNyZWF0ZUNWUGl4ZWxCdWZmZXIoc3VyZmFjZSkudmFsdWVfb3IobnVsbHB0cik7CiAg
ICAgaWYgKCFwaXhlbEJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29t
aW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQppbmRleCA1MjFkZTdh
OTc0ZWVjMjBlOTk3NGMwOGFkMzliNmNlZjdjMjFmN2UxLi4yZjA3NDE1M2Q5ODhjNzgwNGM4ZmQ5
MjViNzZlYTYwMWJlNzk0NzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdW
aWRlb1NvdXJjZUNvY29hLm1tCkBAIC0zMCw2ICszMCw3IEBACiAKICNpZiBVU0UoTElCV0VCUlRD
KQogCisjaW1wb3J0ICJDVlV0aWxpdGllcy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9y
dCAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJSZWFsdGltZVZpZGVvVXRpbGl0aWVz
LmgiCkBAIC0zOSw2ICs0MCw3IEBAIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAjaW1w
b3J0IDx3ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaD4KIEFMTE9XX1VOVVNFRF9Q
QVJBTUVURVJTX0VORAogCisjaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2ltcG9ydCA8
cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk4
LDEwICsxMDAsMTIgQEAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlQ29jb2E6OnBpeGVsQnVmZmVyUG9vbChzaXplX3Qgd2kKICAgICAgICAgY2FzZSB3ZWJy
dGM6OkJ1ZmZlclR5cGU6OkkwMTA6CiAgICAgICAgICAgICBwb29sQnVmZmVyVHlwZSA9IGtDVlBp
eGVsRm9ybWF0VHlwZV80MjBZcENiQ3IxMEJpUGxhbmFyVmlkZW9SYW5nZTsKICAgICAgICAgfQot
ICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbCA9IGNyZWF0ZVBpeGVsQnVmZmVyUG9vbCh3aWR0aCwg
aGVpZ2h0LCBwb29sQnVmZmVyVHlwZSk7Ci0gICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sV2lkdGgg
PSB3aWR0aDsKLSAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xIZWlnaHQgPSBoZWlnaHQ7Ci0gICAg
ICAgIG1fcGl4ZWxCdWZmZXJQb29sQnVmZmVyVHlwZSA9IGJ1ZmZlclR5cGU7CisgICAgICAgIGlm
IChhdXRvIHBvb2wgPSBjcmVhdGVJT1N1cmZhY2VDVlBpeGVsQnVmZmVyUG9vbCh7IHN0YXRpY19j
YXN0PGludD4od2lkdGgpLCBzdGF0aWNfY2FzdDxpbnQ+KGhlaWdodCkgfSwgcG9vbEJ1ZmZlclR5
cGUpKSB7CisgICAgICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbCA9IFdURk1vdmUoKnBvb2wpOwor
ICAgICAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xXaWR0aCA9IHdpZHRoOworICAgICAgICAgICAg
bV9waXhlbEJ1ZmZlclBvb2xIZWlnaHQgPSBoZWlnaHQ7CisgICAgICAgICAgICBtX3BpeGVsQnVm
ZmVyUG9vbEJ1ZmZlclR5cGUgPSBidWZmZXJUeXBlOworICAgICAgICB9CiAgICAgfQogICAgIHJl
dHVybiBtX3BpeGVsQnVmZmVyUG9vbC5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxp
dGllcy5oCmluZGV4IDVmYmFmNWVkYzY0MDI2MTRlZGFmZDdhZTE2ZGFlODBiYmIxN2E5MDIuLjM4
MGQzNzMxYjBhMTUzYWJiOWMyMjcwYmZlZTc2ODBmMDNiM2I4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
VmlkZW9VdGlsaXRpZXMuaApAQCAtMjcsOSArMjcsNiBAQAogCiAjaW5jbHVkZSA8Q29yZVZpZGVv
L0NvcmVWaWRlby5oPgogCi11c2luZyBDVlBpeGVsQnVmZmVyUG9vbFJlZiA9IHN0cnVjdCBfX0NW
UGl4ZWxCdWZmZXJQb29sKjsKLXVzaW5nIENWUGl4ZWxCdWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1
ZmZlcio7Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGlubGluZSBPU1R5cGUgcHJl
ZmVyZWRQaXhlbEJ1ZmZlckZvcm1hdCgpCkBAIC00MSw3ICszOCw0IEBAIHN0YXRpYyBpbmxpbmUg
T1NUeXBlIHByZWZlcmVkUGl4ZWxCdWZmZXJGb3JtYXQoKQogI2VuZGlmCiB9CiAKLVdFQkNPUkVf
RVhQT1JUIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4gY3JlYXRlUGl4ZWxCdWZmZXJQ
b29sKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgT1NUeXBlKTsKLVdFQkNPUkVfRVhQT1JU
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlckZyb21Qb29sKENW
UGl4ZWxCdWZmZXJQb29sUmVmKTsKLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5t
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjYyZWMyNzZiNGYxMzFkNzAwM2YzZjMy
MGUwOTc0NmNkNGNlY2MyOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVW
aWRlb1V0aWxpdGllcy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIHJlcXVpcmVkIHRvIGJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0g
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSAqIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
LSAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCi0gKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotICogQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwKLSAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5o
IgotCi0jaW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4gY3JlYXRlUGl4ZWxCdWZmZXJQb29s
KHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCwgT1NUeXBlIHZpZGVvQ2FwdHVyZUZvcm1hdCkK
LXsKLSAgICBhdXRvIHBpeGVsQXR0cmlidXRlcyA9IEB7Ci0gICAgICAgIChfX2JyaWRnZSBOU1N0
cmluZyAqKWtDVlBpeGVsQnVmZmVyV2lkdGhLZXk6IEAod2lkdGgpLAotICAgICAgICAoX19icmlk
Z2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckhlaWdodEtleTogQChoZWlnaHQpLAotICAgICAg
ICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleTog
QCh2aWRlb0NhcHR1cmVGb3JtYXQpLAotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQ
aXhlbEJ1ZmZlckNHSW1hZ2VDb21wYXRpYmlsaXR5S2V5OiBATk8sCi0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxGb3JtYXRPcGVu
R0xFU0NvbXBhdGliaWxpdHkgOiBAWUVTLAotI2Vsc2UKLSAgICAgICAgKF9fYnJpZGdlIE5TU3Ry
aW5nICopa0NWUGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5IDogQFlFUywKLSNlbmRp
ZgotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZVBy
b3BlcnRpZXNLZXkgOiBAeyB9Ci0gICAgfTsKLQotICAgIENWUGl4ZWxCdWZmZXJQb29sUmVmIHBv
b2wgPSBudWxscHRyOwotICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilw
aXhlbEF0dHJpYnV0ZXMsICZwb29sKTsKLQotICAgIGlmIChzdGF0dXMgIT0ga0NWUmV0dXJuU3Vj
Y2VzcykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICByZXR1cm4gYWRvcHRDRihwb29s
KTsKLX0KLQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyRnJv
bVBvb2woQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcGl4ZWxCdWZmZXJQb29sKQotewotICAgIENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gc3RhdHVzID0gQ1ZQ
aXhlbEJ1ZmZlclBvb2xDcmVhdGVQaXhlbEJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBwaXhl
bEJ1ZmZlclBvb2wsICZwaXhlbEJ1ZmZlcik7Ci0KLSAgICBpZiAoc3RhdHVzICE9IGtDVlJldHVy
blN1Y2Nlc3MpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBhZG9wdENGKHBp
eGVsQnVmZmVyKTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCmluZGV4IGRlM2JiNmE3MDc2OGRj
OGFlNThkMGNkZWJhMGE0ODBhZThiZmJlZjUuLmNhNjUwYTU0ZTQzZTgyYzhlNDI0ZGRjM2NiYzg0
NDcyZjg2NDgzY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBv
cnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5o
PgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1NvcnRlZEFycmF5TWFw
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCmluZGV4IGQ5OGY3MmNhNTJh
MWYxYzFlZjhiMjliOGY3MTIyNDIzNWM4MThmN2EuLmVlYzhkNjZmYWFiYWZiNzk5YjBmZGVkYzQ1
OWM0ZGI1YTdmMjJlM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRl
ICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiUlRDRGVjb2RlcklkZW50aWZpZXIuaCIKICNp
bmNsdWRlICJSVENFbmNvZGVySWRlbnRpZmllci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAKIG5hbWVzcGFjZSBJ
UEMgewpAQCAtOTMsNyArOTIsNiBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8UlRDRW5jb2Rlcklk
ZW50aWZpZXIsIHdlYnJ0Yzo6TG9jYWxFbmNvZGVyPiBtX2VuY29kZXJzIFdURl9HVUFSREVEX0JZ
X0xPQ0sobV9sb2NrKTsgLy8gT25seSBtb2RpZmllZCBvbiB0aGUgbGliV2ViUlRDQ29kZWNzUXVl
dWUgYnV0IG1heSBnZXQgYWNjZXNzZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCiAKICAgICBSZWY8
V29ya1F1ZXVlPiBtX3F1ZXVlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRy
YW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94
eS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJv
eHkubW0KaW5kZXggYjIzMjU4Mjc0NGMxNTg2MGU5MjUzZWIzZGJlOTI0NGU5MTllODYxZi4uNDg4
OTUyYzI1ZDkxODk2NjBiMDNmMTY4NDIzYjRiNDBmZTUzZWViZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCkBA
IC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJMaWJXZWJSVENDb2RlY3NNZXNzYWdlcy5oIgogI2lt
cG9ydCAiTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCisjaW1wb3J0IDxXZWJDb3JlL0NWVXRpbGl0aWVzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0xpYldlYlJUQ1Byb3ZpZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbW90ZVZp
ZGVvU2FtcGxlLmg+CiAjaW1wb3J0IDx3ZWJydGMvc2RrL1dlYktpdC9XZWJLaXREZWNvZGVyLmg+
CkBAIC0yMDcsMTEgKzIwOCwxMCBAQCB2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjplbmNvZGVG
cmFtZShSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOgogICAgIGlmICgh
ZW5jb2RlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNz
aW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBpeGVsRm9ybWF0KCkgIT0gc2FtcGxlLnZp
ZGVvRm9ybWF0KCkpCi0gICAgICAgIG1faW1hZ2VUcmFuc2ZlclNlc3Npb24gPSBXZWJDb3JlOjpJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGUoc2FtcGxlLnZpZGVvRm9ybWF0KCkpOwotCiAj
aWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBtX2ltYWdl
VHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVQaXhlbEJ1ZmZlcihzYW1wbGUuc3VyZmFjZSgpKTsKKyAg
ICBpZiAoIXNhbXBsZS5zdXJmYWNlKCkpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIHBpeGVs
QnVmZmVyID0gV2ViQ29yZTo6Y3JlYXRlQ1ZQaXhlbEJ1ZmZlcihzYW1wbGUuc3VyZmFjZSgpKS52
YWx1ZV9vcihudWxscHRyKTsKICAgICB3ZWJydGM6OmVuY29kZUxvY2FsRW5jb2RlckZyYW1lKGVu
Y29kZXIsIHBpeGVsQnVmZmVyLmdldCgpLCBzYW1wbGUudGltZSgpLnRvVGltZVNjYWxlKDEwMDAw
MDApLnRpbWVWYWx1ZSgpLCB0aW1lU3RhbXAsIHRvV2ViUlRDVmlkZW9Sb3RhdGlvbihzYW1wbGUu
cm90YXRpb24oKSksIHNob3VsZEVuY29kZUFzS2V5RnJhbWUpOwogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNz
LmNwcAppbmRleCA5YWQ5NGQ2ODZlNDM4MGI1YTEzYjk0NzcxMzNhODgyMjUxZGIwNDdjLi43MzAx
MWUxNjhhOThmODAzNzNjZDBiNjczZjc0YjBjNmQ0MzEyNjc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKQEAg
LTMzLDkgKzMzLDkgQEAKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ1ZVdGlsaXRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0xpYldlYlJUQ01hY3Jvcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVlA5VXRpbGl0
aWVzQ29jb2EuaD4KQEAgLTMzMiwxNSArMzMyLDkgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6OmNv
bXBsZXRlZERlY29kaW5nKFJUQ0RlY29kZXJJZGVudGlmaWVyIGRlY29kZXJJZGVudGlmaWVyLAog
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlZEltYWdlQ2FsbGJhY2spCiAgICAgICAgIHJldHVybjsK
IAotICAgIGlmICghbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNz
aW9uLT5waXhlbEZvcm1hdCgpICE9IHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKQotICAgICAg
ICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25W
VDo6Y3JlYXRlKHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpKTsKLQotICAgIGlmICghbV9pbWFn
ZVRyYW5zZmVyU2Vzc2lvbikgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBp
ZiAoIXJlbW90ZVNhbXBsZS5zdXJmYWNlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBhdXRvIHBpeGVsQnVmZmVyID0gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlUGl4ZWxC
dWZmZXIocmVtb3RlU2FtcGxlLnN1cmZhY2UoKSwgcmVtb3RlU2FtcGxlLnNpemUoKSk7CisgICAg
YXV0byBwaXhlbEJ1ZmZlciA9IGNyZWF0ZUNWUGl4ZWxCdWZmZXIocmVtb3RlU2FtcGxlLnN1cmZh
Y2UoKSkudmFsdWVfb3IobnVsbHB0cik7CiAgICAgaWYgKCFwaXhlbEJ1ZmZlcikgewogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDQ0LDcgKzQzOCw3
IEBAIGludDMyX3QgTGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFtZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmCiAgICAgICAgIGlmICghcGl4ZWxCdWZmZXJQb29s
KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OmNyZWF0ZVBpeGVsQnVmZmVyRnJvbVBvb2wocGl4ZWxCdWZmZXJQb29sKS5sZWFrUmVmKCk7Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpjcmVhdGVDVlBpeGVsQnVmZmVyRnJvbVBvb2wocGl4ZWxC
dWZmZXJQb29sKS52YWx1ZV9vcihudWxscHRyKS5sZWFrUmVmKCk7CiAgICAgfSkpOwogCiAgICAg
aWYgKCFwaXhlbEJ1ZmZlcikKQEAgLTUwMyw3ICs0OTcsNyBAQCB2b2lkIExpYldlYlJUQ0NvZGVj
czo6Y29tcGxldGVkRW5jb2RpbmcoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgSVBD
OjpEYQogQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgTGliV2ViUlRDQ29kZWNzOjpwaXhlbEJ1ZmZlclBv
b2woc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBPU1R5cGUgdHlwZSkKIHsKICAgICBpZiAo
IW1fcGl4ZWxCdWZmZXJQb29sIHx8IG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggIT0gd2lkdGggfHwg
bV9waXhlbEJ1ZmZlclBvb2xIZWlnaHQgIT0gaGVpZ2h0KSB7Ci0gICAgICAgIG1fcGl4ZWxCdWZm
ZXJQb29sID0gY3JlYXRlUGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQsIHR5cGUpOworICAg
ICAgICBtX3BpeGVsQnVmZmVyUG9vbCA9IFdlYkNvcmU6OmNyZWF0ZUlPU3VyZmFjZUNWUGl4ZWxC
dWZmZXJQb29sKHsgc3RhdGljX2Nhc3Q8aW50Pih3aWR0aCksIHN0YXRpY19jYXN0PGludD4oaGVp
Z2h0KSB9LCB0eXBlKS52YWx1ZV9vcihudWxscHRyKTsKICAgICAgICAgbV9waXhlbEJ1ZmZlclBv
b2xXaWR0aCA9IHdpZHRoOwogICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbEhlaWdodCA9IGhlaWdo
dDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L0xpYldlYlJUQ0NvZGVjcy5oCmluZGV4IGViZTYyM2NiZDdiN2E4NWQyODllNmFjODJkMzE5NWQ2
YmUxMzVmYmMuLjQwODMzZTAzMGVmNWIwZWU4OTRkN2Y0NGJlOThjZDY3OTgxZjRhMmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVj
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjcy5oCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAj
aW5jbHVkZSAiUlRDRGVjb2RlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSVENFbmNvZGVySWRl
bnRpZmllci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oPgogI2luY2x1ZGUgPG1h
cD4KICNpbmNsdWRlIDx3ZWJydGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaD4KQEAgLTE0
OSw3ICsxNDgsNiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+PiBtX3Rh
c2tzVG9EaXNwYXRjaEFmdGVyRXN0YWJsaXNoaW5nQ29ubmVjdGlvbjsKIAogICAgIFJlZjxXb3Jr
UXVldWU+IG1fcXVldWU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y+IG1fcGl4ZWxCdWZmZXJDb25mb3JtZXI7
CiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiBtX3BpeGVsQnVmZmVyUG9vbDsK
ICAgICBzaXplX3QgbV9waXhlbEJ1ZmZlclBvb2xXaWR0aCB7IDAgfTsK
</data>
<flag name="commit-queue"
          id="461904"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438506</attachid>
            <date>2021-09-17 13:14:08 -0700</date>
            <delta_ts>2021-09-24 00:48:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230338-20210917231406.patch</filename>
            <type>text/plain</type>
            <size>43087</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRjNGU3ZmI1YjEyZGVl
YmViZmNiOTY4NDhjYzdhOWM4ZjA3ZDZkMi4uZGUyYjhkZTA1ODdkM2FiMWM2Mzc2M2MyMTA4N2M3
ZDEzZGMwOTgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIxLTA5LTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHV0aWxpdHkg
dG8gY3JlYXRlIENWUGl4ZWxCdWZmZXJzIGZyb20gSU9TdXJmYWNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMzM4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgZnVuY3Rpb25hbGl0eSBv
ZiBjcmVhdGluZyBDVlBpeGVsQnVmZmVycworICAgICAgICBmcm9tIElPU3VyZmFjZXMgZnJvbSBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUIHRvCisgICAgICAgIHN0YW5kYWxvbmUgZnVuY3Rpb25zIGlu
IG5ldyBoZWFkZXIgQ1ZVdGlsaXRpZXMuCisgICAgICAgIFRoZSBmdW5jdGlvbmFsaXR5IGRpZCBu
b3QgdXNlIGFueSBzdGF0ZSBvZgorICAgICAgICBJbWFnZVRyYW5zZmVyU2Vzc2lvblZULgorCisg
ICAgICAgIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1c2VmdWwgaW4gb3RoZXIgc2NlbmFyaW9zIHRv
by4KKworICAgICAgICBSZW1vdmUgaW5zdGFudGlhdGlvbnMgb2YgSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVCBmcm9tCisgICAgICAgIHRoZSBvbGQgY2FsbCBzaXRlcywgYXMgaXQgd2FzIG5ldmVyIHVz
ZWQgZm9yIGFueXRoaW5nCisgICAgICAgIGVsc2UgdGhhbiBjcmVhdGlvbiBvZiB0aGUgcGl4ZWwg
YnVmZmVyLgorCisgICAgICAgIE1vdmUgdGhlIHJlbGF0ZWQgQ1ZQaXhlbEJ1ZmZlclBvb2wgaW5z
dGFudGlhdGlvbgorICAgICAgICBmcm9tIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCB0byBDVlV0
aWxpdGllcy5oCisKKyAgICAgICAgUmVtb3ZlIHRoZSB1c2FnZSBvZiBrQ1ZQaXhlbEZvcm1hdE9w
ZW5HTEVTQ29tcGF0aWJpbGl0eQorICAgICAgICBmcm9tIHRoZSBDVlBpeGVsQnVmZmVyIGNyZWF0
aW9uIGNvZGUuIEl0IHdhcyBpbmNvcnJlY3QgcHJvcGVydHkKKyAgICAgICAgYWxsIGFsb25nLCBw
cm9wZXJ0eSBvZiBwaXhlbCBmb3JtYXRzIG5vdCBvZiBwaXhlbCBidWZmZXJzLiBUaGUKKyAgICAg
ICAgaW50ZW5kZWQgcHJvcGVydHkgd2FzIGtDVlBpeGVsQnVmZmVyT3BlbkdMRVNDb21wYXRpYmls
aXR5S2V5CisgICAgICAgIGJ1dCBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisgICAgICAgIFJl
dGFpbnMgdGhlIHVzYWdlIG9mIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSwg
dGhvdWdoCisgICAgICAgIGl0IGlzIGluY29ycmVjdCBhbmQgdW5uZWVkZWQgZm9yIHRoZSBjdXJy
ZW50IG9wZXJhdGlvbiB0b28uCisgICAgICAgIFNpbmNlIHRoZW9yZXRpY2FsbHkgdGhpcyBjb3Vs
ZCBhZmZlY3Qgc29tZXRoaW5nIG9uIE1hYywgdGhpcworICAgICAgICB3aWxsIGJlIHJlbW92ZWQg
aW4gYSBzZXBhcmF0ZSBmaXguCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhIHJlZmFjdG9yLgor
CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW06IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZlclBvb2wpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlQ1ZQaXhlbEJ1ZmZlckZyb21Qb29sKToKKyAgICAgICAgKFdlYkNvcmU6OnBpeGVs
QnVmZmVyQ3JlYXRpb25PcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxC
dWZmZXIpOgorICAgICAgICBUaGUgYWRkZWQgZnVuY3Rpb25zIHJldHVybiBFeHBlY3RlZDxvYmpl
Y3QsIHN0YXR1cz4gc2luY2UKKyAgICAgICAgc29tZSBvZiB0aGUgY2FsbGVycyB3YW50IHRvIGxv
ZyB0aGUgZmFpbHVyZSBzdGF0dXMgY29kZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OnNldFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2Zl
clNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjdlBpeGVsRm9ybWF0T3BlbkdMS2V5KTogRGVsZXRlZC4KKyAgICAgICAg
SW5jb3JyZWN0LCByZXBsYWNlZCB3aXRoIE1hYy1vbmx5IHVzZSBvZiBPcGVuR0xDb21wYXRpYmls
aXR5S2V5IGluCisgICAgICAgIENWVXRpbGl0aWVzLm1tLgorICAgICAgICAoV2ViQ29yZTo6cm91
bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKTogRGVsZXRlZC4KKyAgICAgICAgVXNlIHRoZSBzaW1p
bGFyIGZ1bmN0aW9uIGluIFdURi4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNz
aW9uVlQ6OmlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRpb25zKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYTo6cGl4ZWxCdWZmZXJQb29sKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oOgorICAgICAgICBQcmVzZXJ2ZWQsIHNpbmNl
IHByZWZlcmVkUGl4ZWxCdWZmZXJGb3JtYXQgbWVhbnMKKyAgICAgICAgInRoZSBwaXhlbCBidWZm
ZXIgZm9ybWF0IHRoYXQgaXMgcHJlZmVycmVkIGJ5IG1lZGlhIHN0cmVhbSBpbXBsZW1lbnRhdGlv
bnMiCisgICAgICAgIHdoaWNoIGRvZXMgbm90IGZpdCB0byBjYXRlZ29yeSBvZiAiQ29yZVZpZGVv
IFV0aWxpdGllcyIuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
VmlkZW9VdGlsaXRpZXMubW06IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tOgorICAgICAgICBGaXggdW5pZmllZCBidWlsZCBmYWls
dXJlIGR1ZSB0byBhIG1pc3NpbmcgaW5jbHVkZS4KKwogMjAyMS0wOS0xNiAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHN0ZDo6b3B0aW9uYWwgZm9yIHRy
dW5jYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZjRkZWUyZmU4OWIyMjFlNjBmYWI1MGZiYzlkMDg1OWZmNGU5
MWZlMy4uYmVkMTY2NWVkZDQwNmFhMGFlMjQxMWIyNjA0YTNkYjUwOWMzNjkyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNyBAQAorMjAyMS0wOS0xNiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCB1dGlsaXR5IHRvIGNyZWF0ZSBDVlBpeGVsQnVmZmVy
cyBmcm9tIElPU3VyZmFjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMDMzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoZSBoZWxwZXIgZnVuY3Rpb24gbW92ZWQgZnJvbSBJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUCisgICAgICAgIHRvIGZyZWUgc3RhbmRhbG9uZSBmdW5jdGlvbi4gU3RvcCBpbnN0YW50
aWF0aW5nIHRoZQorICAgICAgICBvYmplY3QgYW5kIGp1c3QgY2FsbCB0aGUgZnVuY3Rpb24uCisK
KyAgICAgICAgSW4gYm90aCBvZiB0aGUgY2FzZXMsIHRoZSBwaXhlbCBidWZmZXIgaXMgY3JlYXRl
ZCBvdXQgb2YKKyAgICAgICAgdGhlIElPU3VyZmFjZSBhbmQgdGhlIHBvb2wgaXMgbm90IHVzZWQu
IEluIGJvdGggb2YgdGhlIGNhc2VzCisgICAgICAgIHRoZSBzaXplIGFuZCB0aGUgcGl4ZWwgZm9y
bWF0IG9mIHRoZSBpbWFnZSB0cmFuc2ZlciBzZXNzaW9uCisgICAgICAgIGlzIHRoZSBzYW1lIGFz
IHRoZSBpbnB1dCBJT1N1cmZhY2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6cGl4ZWxCdWZmZXJQb29sKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmg6CisKIDIw
MjEtMDktMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdW1dQRV0gdGVzdCBhbmltYXRpb25zL3N0ZXBzLXRyYW5zZm9ybS1yZW5kZXJp
bmctdXBkYXRlcy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDkwZGJl
MTJkOTdjYTAwNDY5NTYwNTJkOWFiNWJiY2I5NDAyOTI5ZGEuLmI4MDgyMGNjNjQ1NjVkMjFlOGMy
ZDg4MzFmZmFlNDYzOGUyMjA3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
TWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0zMzcs
NiArMzM3LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NvcmV0ZXh0L0dseXBoUGFnZUNvcmVUZXh0LmNwcAogCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWQU5HTEUuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VS
b3RhdGlvblNlc3Npb25WVC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVy
Q29uZm9ybWVyQ1YuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBlZjIwYmVkMzYxNWJj
YTgxMTAyYTIyMDEwOTQ0MWE4ZTIxOTVlNzdkLi43OTM1MjJjZDA3ZjUyYTYyNThiMTY0NDYxZjEy
ODUwYjdkNzEzNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM5Miw2ICszOTIsNyBA
QCBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVUZXh0LmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZXRleHQvR2x5cGhQYWdlQ29yZVRleHQuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9jdi9D
VlV0aWxpdGllcy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25W
VC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5jcHAKQEAgLTU0Miw3
ICs1NDMsNiBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYy5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjLm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlQ29jb2EuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCi1wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVWaWRlb1V0aWxpdGllcy5tbQogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJDb2NvYS5tbQogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9j
ay5jcHAKIHBsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1vY2suY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggYzc1ODQzMDYxNzdkODY1YjQ5ZTE5YjdlMDM5ZGVkZjUwMGYxM2Q2ZC4uZDU2OTA0OGM5MGQ5
ZGZhM2EwYmExODJiMWU4N2QxZjU3NjhjZmJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM1Miw2ICsyMzUyLDcgQEAKIAkJ
N0I0NUFCNTUyNUZCQTlERTAwRkQyN0Y0IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVFR0xVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
NDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0
aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QjczMTFGQjI1QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3
MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QjhF
RDVGMDI2RjBDMTNEMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCOEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBD
VlV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdCOTA0MTcwMjU1MDExNDIwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJv
eHlCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0JCMzRBMTcyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
QjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRpbGl0aWVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JC
MzRBNDgyNTM3NzZDQTAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjM0QTQ1
MjUzNzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc5NDgsNyAr
Nzk0OSw2IEBACiAJCTQxNTc0NzQ0MUUzODY5OUUwMEU5MTREOCAvKiBMaWJXZWJSVENQcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENQcm92aWRlci5o
OyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxNTdFQkY4MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTdF
QkY5MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE1ODY0OUYyM0JGN0I5
MzAwQTBBNjFFIC8qIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCNjI0RkZDRDFCMDBCOURBNDEgLyogUlRDSWNl
Q29tcG9uZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENJY2VDb21wb25lbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCODI0RkZDREMzMDBCOURBNDEg
LyogUlRDSWNlUHJvdG9jb2wuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ0ljZVByb3Rv
Y29sLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1OERDQjkyNEZGQ0RDMzAw
QjlEQTQxIC8qIFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTA2MDEsNiArMTA2MDEsOCBAQAogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyog
R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNj
b3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3Qjc3NEM2MjI1RkI5MzU1MDA5MTM5NUYgLyogR3JhcGhpY3NDb250
ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJN0I4RUQ1RUQyNkYwQzEyMzAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENWVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTdCOEVENUVGMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENWVXRpbGl0aWVzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjkwNDE2RTI1NTAxMTA5MDA2RUVCOEMgLyogUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGlsaXRp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xB
TkdMRVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkIzNEE0NTI1
Mzc3NkM2MDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzYzOCw3ICsxNzY0MCw2IEBACiAJCQkJNUNERDgzM0MxRTQz
MjRCQjAwNjIxQjgzIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmggKi8sCiAJ
CQkJNDE5MjQyNDcyMTI3QjdDQzAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZUNvY29hLm1tICovLAogCQkJCTQxRDE5MzhGMjE1MkM1NjEwMDZGMTRDQSAvKiBSZWFsdGltZVZp
ZGVvVXRpbGl0aWVzLmggKi8sCi0JCQkJNDE1ODY0OUYyM0JGN0I5MzAwQTBBNjFFIC8qIFJlYWx0
aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8sCiAJCQkJMDdENjM3M0UxQkIwQjExMzAwMjU2Q0U5IC8q
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oICovLAogCQkJCTA3RDYzNzNGMUJCMEIxMTMw
MDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0gKi8sCiAJCQkpOwpAQCAt
MjgzMDgsNiArMjgzMDksOCBAQAogCQlDRDlEODI3QzFDN0JCMkVEMDA2RkYwNjYgLyogY3YgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTdCOEVENUVEMjZG
MEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovLAorCQkJCTdCOEVENUVGMjZGMEMxMjMw
MDhBQzAyMyAvKiBDVlV0aWxpdGllcy5tbSAqLywKIAkJCQk3QjEwMzM5RDI1NDk3MjAxMDBDOEMx
QUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovLAogCQkJCTdCMTAzMzlBMjU0OTcyMDAwMEM4
QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuY3BwICovLAogCQkJCTdCMTAzMzlDMjU0
OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuaCAqLywKQEAgLTMxOTcx
LDYgKzMxOTc0LDcgQEAKIAkJCQk2MkNEMzI1QTExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNUQyMzg1MjI3QTA2NTIwMDBCOUJEQSAvKiBDdXN0
b21IZWFkZXJGaWVsZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCMUUxM0U3MjE3OTBENjYwMDQy
Q0Y5OCAvKiBDdXN0b21QYWludENhbnZhcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0I4RUQ1RjAy
NkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENC
NDEzRTBFODYzM0ZEMDAzMkM0RjAgLyogRGFzaEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
N0JDNkEyMTE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3QkM2QTI0MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZUF1dGhvcml6ZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzMxMzIsNyArMzMxMzYsNiBAQAogCQkJCUJDNjkzMjc0MEQ3RTI5MzkwMEFF
NDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1MkZCQkJDMERF
MjdDQjYwMDAxRDM4NiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEwQkNGNTYyNkYwQ0Q4QzAwNDBCMTI0IC8qIFJUQ0xvY2FsU2Vzc2lv
bkRlc2NyaXB0aW9uSW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVFMEU5NDQxMTMzQzg5RjAw
QjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M0NUM5RDMxRTNG
Q0JENzAwQUFCNTU4IC8qIEpTRE9NV3JhcHBlckNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0E4MDYxRTFFMDNCNTg1MDA4QTFGMjYgLyogSlNEb3VibGVSYW5nZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNDc0Miw2ICszNDc0NSw3IEBACiAJCQkJMDdBQjk5NkIxOERBM0MwMTAwMTg3NzFFIC8q
IFJUQ0ljZVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzNTkxMDgxRTdEREM3MzAwRjMw
NjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEzNTkx
MDkxRTdEREM3MzAwRjMwNjMwIC8qIFJUQ0ljZVRyYW5zcG9ydFN0YXRlLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTBCQ0Y1NjI2RjBDRDhDMDA0MEIxMjQgLyogUlRDTG9jYWxTZXNzaW9uRGVzY3Jp
cHRpb25Jbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUMxNEJDNjI2REU2REU4MDA2ODVCRjUg
LyogUlRDTmV0d29ya01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Mzc5NEZFMTlGNTg2
NEUwMEU1QTA0NSAvKiBSVENOb3RpZmllcnNNb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzM3
OTRERTE5RUUyQzUyMDBFNUEwNDUgLyogUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NW
VXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxp
dGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmM1OTRjZTkwYjg3ZDhhM2VhZmU3YzQ1ODVkYzQ5OGE0MTc5NmU3
NjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9DVlV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPENvcmVWaWRlby9Db3JlVmlkZW8uaD4KKyNpbmNsdWRlIDx1dGlsaXR5
PgorI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
KwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgPSBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVyUG9v
bCo7Cit1c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZmZXIqOworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKy8vIENyZWF0ZXMgQ1ZQaXhlbEJ1ZmZlclBvb2wgdGhhdCBjcmVh
dGVzIENWUGl4ZWxCdWZmZXJzIGJhY2tlZCBieSBJT1N1cmZhY2VzLgorLy8gVGhlc2UgYnVmZmVy
cyBjYW4gYmUgZm9yIGV4YW1wbGUgc2VudCB0aHJvdWdoIElQQy4KK1dFQkNPUkVfRVhQT1JUIEV4
cGVjdGVkPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4sIENWUmV0dXJuPiBjcmVhdGVJ
T1N1cmZhY2VDVlBpeGVsQnVmZmVyUG9vbChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIE9T
VHlwZSBwaXhlbEZvcm1hdCwgdW5zaWduZWQgbWluaW11bUJ1ZmZlckNvdW50ID0gMHUpOworCitX
RUJDT1JFX0VYUE9SVCBFeHBlY3RlZDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4sIENWUmV0
dXJuPiBjcmVhdGVDVlBpeGVsQnVmZmVyRnJvbVBvb2woQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYpOwor
CitXRUJDT1JFX0VYUE9SVCBFeHBlY3RlZDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4sIENW
UmV0dXJuPiBjcmVhdGVDVlBpeGVsQnVmZmVyKElPU3VyZmFjZVJlZik7CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZGRjZjk4YzY5YmVhNjQ3YzJiMjZmNTkwZTE1ZTNkMDE3YjgzZTZkZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVz
Lm1tCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJDVlV0aWxpdGllcy5oIgorCisjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+Cisj
aW1wb3J0ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0V4
cGVjdGVkPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4sIENWUmV0dXJuPiBjcmVhdGVJ
T1N1cmZhY2VDVlBpeGVsQnVmZmVyUG9vbChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIE9T
VHlwZSBmb3JtYXQsIHVuc2lnbmVkIG1pbmltdW1CdWZmZXJDb3VudCkKK3sKKyAgICBhdXRvIHBp
eGVsQXR0cmlidXRlcyA9IEB7CisgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVs
QnVmZmVyV2lkdGhLZXkgOiBAKHdpZHRoKSwKKyAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICop
a0NWUGl4ZWxCdWZmZXJIZWlnaHRLZXkgOiBAKGhlaWdodCksCisgICAgICAgIChfX2JyaWRnZSBO
U1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IDogQChmb3JtYXQpLAor
ICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckNHSW1hZ2VDb21wYXRp
YmlsaXR5S2V5IDogQE5PLAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgKF9fYnJpZGdlIE5T
U3RyaW5nICopa0NWUGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5IDogQFlFUywKKyNl
bmRpZgorICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFj
ZVByb3BlcnRpZXNLZXkgOiBAeyB9CisgICAgfTsKKyAgICBOU0RpY3Rpb25hcnkgKnBvb2xPcHRp
b25zID0gbnVsbHB0cjsKKyAgICBpZiAobWluaW11bUJ1ZmZlckNvdW50KSB7CisgICAgICAgIHBv
b2xPcHRpb25zID0gQHsKKyAgICAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVs
QnVmZmVyUG9vbE1pbmltdW1CdWZmZXJDb3VudEtleSA6IEAobWluaW11bUJ1ZmZlckNvdW50KQor
ICAgICAgICB9OworICAgIH0KKyAgICBDVlBpeGVsQnVmZmVyUG9vbFJlZiBwb29sID0gbnVsbHB0
cjsKKyAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJQb29sQ3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpcG9vbE9wdGlvbnMsIChfX2JyaWRn
ZSBDRkRpY3Rpb25hcnlSZWYpcGl4ZWxBdHRyaWJ1dGVzLCAmcG9vbCk7CisgICAgaWYgKHN0YXR1
cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzIHx8ICFwb29sKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQoc3RhdHVzKTsKKyAgICByZXR1cm4gYWRvcHRDRihwb29sKTsKK30KKworRXhwZWN0ZWQ8
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+LCBDVlJldHVybj4gY3JlYXRlQ1ZQaXhlbEJ1ZmZl
ckZyb21Qb29sKENWUGl4ZWxCdWZmZXJQb29sUmVmIHBpeGVsQnVmZmVyUG9vbCkKK3sKKyAgICBD
VlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gbnVsbHB0cjsKKyAgICBhdXRvIHN0YXR1cyA9
IENWUGl4ZWxCdWZmZXJQb29sQ3JlYXRlUGl4ZWxCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
cGl4ZWxCdWZmZXJQb29sLCAmcGl4ZWxCdWZmZXIpOworICAgIGlmIChzdGF0dXMgIT0ga0NWUmV0
dXJuU3VjY2VzcyB8fCAhcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChzdGF0dXMpOworICAgIHJldHVybiBhZG9wdENGKHBpeGVsQnVmZmVyKTsKK30KKworc3RhdGlj
IENGRGljdGlvbmFyeVJlZiBwaXhlbEJ1ZmZlckNyZWF0aW9uT3B0aW9ucyhJT1N1cmZhY2VSZWYg
c3VyZmFjZSkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgYXV0byBmb3JtYXQgPSBJT1N1cmZh
Y2VHZXRQaXhlbEZvcm1hdChzdXJmYWNlKTsKKyAgICBpZiAoZm9ybWF0ID09IGtDVlBpeGVsRm9y
bWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJWaWRlb1JhbmdlIHx8IGZvcm1hdCA9PSBrQ1ZQaXhl
bEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlKSB7CisgICAgICAgIC8vIFlV
ViBmb3JtYXRzIG1pZ2h0IGNvbnRhaW4gZXh0cmEgcGl4ZWxzIGR1ZSB0byBibG9jayBzaXplLiBE
ZWZpbmUgdGhlIHBpY3R1cmUgcG9zaXRpb24KKyAgICAgICAgLy8gaW4gdGhlIGJ1ZmZlciBhcyB0
aGUgZGVmYXVsdCB0b3AtbGVmdCBwb3NpdGlvbi4gVGhlIGNhbGxlciBtaWdodCB1c2UgdGhlIHBp
eGVsIGJ1ZmZlcgorICAgICAgICAvLyB3aXRoIEFQSXMgdGhhdCBleHBlY3QgdGhlIHByb3BlcnRp
ZXMuCisgICAgICAgIGNvbnN0ZXhwciBzaXplX3QgbWFjcm9ibG9ja1NpemUgPSAxNjsKKyAgICAg
ICAgYXV0byB3aWR0aCA9IElPU3VyZmFjZUdldFdpZHRoKHN1cmZhY2UpOworICAgICAgICBhdXRv
IGhlaWdodCA9IElPU3VyZmFjZUdldEhlaWdodChzdXJmYWNlKTsKKyAgICAgICAgYXV0byBleHRl
bmRlZFJpZ2h0ID0gcm91bmRVcFRvTXVsdGlwbGVPZihtYWNyb2Jsb2NrU2l6ZSwgd2lkdGgpIC0g
d2lkdGg7CisgICAgICAgIGF1dG8gZXh0ZW5kZWRCb3R0b20gPSByb3VuZFVwVG9NdWx0aXBsZU9m
KG1hY3JvYmxvY2tTaXplLCBoZWlnaHQpIC0gaGVpZ2h0OworICAgICAgICBpZiAoKElPU3VyZmFj
ZUdldEJ5dGVzUGVyUm93T2ZQbGFuZShzdXJmYWNlLCAwKSA+PSB3aWR0aCArIGV4dGVuZGVkUmln
aHQpCisgICAgICAgICAgICAmJiAoSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZh
Y2UsIDEpID49IHdpZHRoICsgZXh0ZW5kZWRSaWdodCkKKyAgICAgICAgICAgICYmIChJT1N1cmZh
Y2VHZXRBbGxvY1NpemUoc3VyZmFjZSkgPj0gKGhlaWdodCArIGV4dGVuZGVkQm90dG9tKSAqIElP
U3VyZmFjZUdldEJ5dGVzUGVyUm93T2ZQbGFuZShzdXJmYWNlLCAwKSAqIDMgLyAyKSkgeworICAg
ICAgICAgICAgcmV0dXJuIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpIEB7CisgICAgICAgICAg
ICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmls
aXR5S2V5IDogQFlFUywKKyAgICAgICAgICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQ
aXhlbEJ1ZmZlckV4dGVuZGVkUGl4ZWxzUmlnaHRLZXkgOiBAKGV4dGVuZGVkUmlnaHQpLAorICAg
ICAgICAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyRXh0ZW5kZWRQ
aXhlbHNCb3R0b21LZXkgOiBAKGV4dGVuZGVkQm90dG9tKQorICAgICAgICAgICAgfTsKKyAgICAg
ICAgfQorICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHN1cmZhY2UpOworI2VuZGlmCisg
ICAgcmV0dXJuIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpIEB7CisjaWYgUExBVEZPUk0oTUFD
KQorICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBh
dGliaWxpdHlLZXkgOiBAWUVTCisjZW5kaWYKKyAgICB9OworfQorCitFeHBlY3RlZDxSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4sIENWUmV0dXJuPiBjcmVhdGVDVlBpeGVsQnVmZmVyKElPU3Vy
ZmFjZVJlZiBzdXJmYWNlKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBu
dWxscHRyOworICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckNyZWF0ZVdpdGhJT1N1cmZh
Y2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3VyZmFjZSwgcGl4ZWxCdWZmZXJDcmVhdGlvbk9wdGlv
bnMoc3VyZmFjZSksICZwaXhlbEJ1ZmZlcik7CisgICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1cm5T
dWNjZXNzIHx8ICFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHN0
YXR1cyk7CisgICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxCdWZmZXIpOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vz
c2lvblZULmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5z
ZmVyU2Vzc2lvblZULmgKaW5kZXggYTUyNTg5NTEwMmJiYTU4MjljZDM3ODQ0N2I5NWFiNTc2YzZh
ZjJmNi4uNGYyMjlkZTZhZmY5ZGYxYTFkNDJkNzYwZTI3MDk5MDVjODg3ZjQwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Np
b25WVC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJh
bnNmZXJTZXNzaW9uVlQuaApAQCAtNTgsMTggKzU4LDEyIEBAIHB1YmxpYzoKICNlbmRpZgogI2Vu
ZGlmCiAKLSNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0gICAgV0VCQ09SRV9FWFBPUlQgUmV0
YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyKElPU3VyZmFjZVJlZik7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZVBp
eGVsQnVmZmVyKElPU3VyZmFjZVJlZiwgY29uc3QgSW50U2l6ZSYpOwotI2VuZGlmCi0KICAgICB1
aW50MzJfdCBwaXhlbEZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxGb3JtYXQ7IH0KIAog
cHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUKHVpbnQzMl90IHBpeGVsRm9ybWF0KTsKIAogI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkK
LSAgICBDRkRpY3Rpb25hcnlSZWYgaW9TdXJmYWNlUGl4ZWxCdWZmZXJDcmVhdGlvbk9wdGlvbnMo
SU9TdXJmYWNlUmVmKTsKICAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUNN
U2FtcGxlQnVmZmVyKElPU3VyZmFjZVJlZiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgSW50U2l6
ZSYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCmluZGV4IGYzMTY5YWJjMDI3
NzA4MmYwY2ZjZTQ3MjY3OWUxMTA3OTdjOGM5ZjYuLmQ1NzNiN2Y5NWFhY2E4YzI0MWU1YTUxYjk0
MGJiMzA3YTEyN2Y4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQpAQCAtMjYsNiArMjYs
NyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZU
LmgiCiAKKyNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRD
Ry5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFTYW1wbGVBVkZPYmpDLmgi
CkBAIC00MywxNSArNDQsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBpbmxp
bmUgQ0ZTdHJpbmdSZWYgY3ZQaXhlbEZvcm1hdE9wZW5HTEtleSgpCi17Ci0jaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIHJldHVybiBrQ1ZQaXhl
bEZvcm1hdE9wZW5HTEVTQ29tcGF0aWJpbGl0eTsKLSNlbHNlCi0gICAgcmV0dXJuIGtDVlBpeGVs
QnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleTsKLSNlbmRpZgotfQotCiBJbWFnZVRyYW5zZmVy
U2Vzc2lvblZUOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUKHVpbnQzMl90IHBpeGVsRm9ybWF0KQog
ewogICAgIFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25SZWYgdHJhbnNmZXJTZXNzaW9uOwpAQCAtODQs
MjkgKzc2LDExIEBAIGJvb2wgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6c2V0U2l6ZShjb25zdCBJ
bnRTaXplJiBzaXplKQogewogICAgIGlmIChtX3NpemUgPT0gc2l6ZSAmJiBtX291dHB1dEJ1ZmZl
clBvb2wpCiAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgTlNEaWN0aW9uYXJ5KiBwaXhlbEJ1
ZmZlck9wdGlvbnMgPSBAewotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1
ZmZlcldpZHRoS2V5IDogQChzaXplLndpZHRoKCkpLAotICAgICAgICAoX19icmlkZ2UgTlNTdHJp
bmcgKilrQ1ZQaXhlbEJ1ZmZlckhlaWdodEtleSA6IEAoc2l6ZS5oZWlnaHQoKSksCi0gICAgICAg
IChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5IDog
QChtX3BpeGVsRm9ybWF0KSwKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopY3ZQaXhlbEZv
cm1hdE9wZW5HTEtleSgpIDogQFlFUywKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NW
UGl4ZWxCdWZmZXJJT1N1cmZhY2VQcm9wZXJ0aWVzS2V5IDogQHsgLyplbXB0eSBkaWN0aW9uYXJ5
Ki8gfSwKLSAgICB9OwotCi0gICAgTlNEaWN0aW9uYXJ5KiBwaXhlbEJ1ZmZlclBvb2xPcHRpb25z
ID0gQHsKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQb29sTWlu
aW11bUJ1ZmZlckNvdW50S2V5OiBAKDYpCi0gICAgfTsKLQotICAgIENWUGl4ZWxCdWZmZXJQb29s
UmVmIGJ1ZmZlclBvb2w7Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBpeGVsQnVm
ZmVyUG9vbE9wdGlvbnMsIChfX2JyaWRnZSBDRkRpY3Rpb25hcnlSZWYpcGl4ZWxCdWZmZXJPcHRp
b25zLCAmYnVmZmVyUG9vbCk7Ci0gICAgQVNTRVJUKCFzdGF0dXMpOwotICAgIGlmIChzdGF0dXMg
IT0ga0NWUmV0dXJuU3VjY2VzcykKKyAgICBhdXRvIGJ1ZmZlclBvb2wgPSBjcmVhdGVJT1N1cmZh
Y2VDVlBpeGVsQnVmZmVyUG9vbChzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCksIG1fcGl4ZWxG
b3JtYXQsIDYpLnZhbHVlX29yKG51bGxwdHIpOworICAgIGlmICghYnVmZmVyUG9vbCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgbV9vdXRwdXRCdWZmZXJQb29sID0gYWRvcHRDRihidWZm
ZXJQb29sKTsKKyAgICBtX291dHB1dEJ1ZmZlclBvb2wgPSBXVEZNb3ZlKGJ1ZmZlclBvb2wpOwog
ICAgIG1fc2l6ZSA9IHNpemU7Ci0gICAgbV9pb1N1cmZhY2VCdWZmZXJBdHRyaWJ1dGVzID0gbnVs
bHB0cjsKLQogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xMTgsMjYgKzkyLDIwIEBAIFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4
ZWxCdWZmZXIoQ1ZQaXhlbEJ1CiAgICAgaWYgKCFzb3VyY2VCdWZmZXIgfHwgIXNldFNpemUoc2l6
ZSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgQ1ZQaXhlbEJ1ZmZlclJlZiBvdXRw
dXRCdWZmZXIgPSBudWxscHRyOwotICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclBvb2xD
cmVhdGVQaXhlbEJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX291dHB1dEJ1ZmZlclBvb2wu
Z2V0KCksICZvdXRwdXRCdWZmZXIpOwotICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXIs
IENWUGl4ZWxCdWZmZXJQb29sQ3JlYXRlUGl4ZWxCdWZmZXIgZmFpbGVkIHdpdGggZXJyb3IgJWQi
LCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOworICAgIGF1dG8gcmVzdWx0ID0gY3JlYXRlQ1ZQ
aXhlbEJ1ZmZlckZyb21Qb29sKG1fb3V0cHV0QnVmZmVyUG9vbC5nZXQoKSk7CisgICAgaWYgKCFy
ZXN1bHQpIHsKKyAgICAgICAgUkVMRUFTRV9MT0coTWVkaWEsICJJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUOjpjb252ZXJ0UGl4ZWxCdWZmZXIsIGNyZWF0ZUNWUGl4ZWxCdWZmZXJGcm9tUG9vbCBmYWls
ZWQgd2l0aCBlcnJvciAlZCIsIHN0YXRpY19jYXN0PGludD4ocmVzdWx0LmVycm9yKCkpKTsKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRDRihv
dXRwdXRCdWZmZXIpOworICAgIGF1dG8gb3V0cHV0QnVmZmVyID0gV1RGTW92ZSgqcmVzdWx0KTsK
IAotICAgIGF1dG8gZXJyID0gVlRQaXhlbFRyYW5zZmVyU2Vzc2lvblRyYW5zZmVySW1hZ2UobV90
cmFuc2ZlclNlc3Npb24uZ2V0KCksIHNvdXJjZUJ1ZmZlciwgb3V0cHV0QnVmZmVyKTsKKyAgICBh
dXRvIGVyciA9IFZUUGl4ZWxUcmFuc2ZlclNlc3Npb25UcmFuc2ZlckltYWdlKG1fdHJhbnNmZXJT
ZXNzaW9uLmdldCgpLCBzb3VyY2VCdWZmZXIsIG91dHB1dEJ1ZmZlci5nZXQoKSk7CiAgICAgaWYg
KGVycikgewogICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9u
VlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlciwgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvblRyYW5zZmVySW1h
Z2UgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KGVycikpOwogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1SZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlUGl4
ZWxCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgc291cmNlQnVmZmVyLCBjb25zdCBJbnRTaXplJiBz
aXplKQotewotICAgIHJldHVybiBjb252ZXJ0UGl4ZWxCdWZmZXIoUEFMOjpDTVNhbXBsZUJ1ZmZl
ckdldEltYWdlQnVmZmVyKHNvdXJjZUJ1ZmZlciksIHNpemUpOworICAgIHJldHVybiBvdXRwdXRC
dWZmZXI7CiB9CiAKIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNl
c3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIHNvdXJjZUJ1
ZmZlciwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKQEAgLTE1NCw3ICsxMjIsNyBAQCBSZXRhaW5QdHI8
Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRDTVNhbXBs
ZUJ1ZmZlcihDTVNhbQogICAgIGlmICghc2V0U2l6ZShzaXplKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICBhdXRvIGNvbnZlcnRlZFBpeGVsQnVmZmVyID0gY3JlYXRlUGl4ZWxCdWZm
ZXIoc291cmNlQnVmZmVyLCBzaXplKTsKKyAgICBhdXRvIGNvbnZlcnRlZFBpeGVsQnVmZmVyID0g
Y29udmVydFBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLCBzaXplKTsKICAgICBpZiAoIWNvbnZlcnRl
ZFBpeGVsQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMjY2LDgyICsyMzQs
MTEgQEAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZU
OjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcihDR0ltYWcKIAogI2lmICFQTEFURk9STShNQUNDQVRBTFlT
VCkKIAotI2lmIFBMQVRGT1JNKE1BQykKLXN0YXRpYyBpbnQzMl90IHJvdW5kVXBUb01hY3JvYmxv
Y2tNdWx0aXBsZShpbnQzMl90IHNpemUpCi17Ci0gICAgcmV0dXJuIChzaXplICsgMTUpICYgfjE1
OwotfQotI2VuZGlmCi0KLUNGRGljdGlvbmFyeVJlZiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpp
b1N1cmZhY2VQaXhlbEJ1ZmZlckNyZWF0aW9uT3B0aW9ucyhJT1N1cmZhY2VSZWYgc3VyZmFjZSkK
LXsKLSAgICBpZiAobV9pb1N1cmZhY2VCdWZmZXJBdHRyaWJ1dGVzKQotICAgICAgICByZXR1cm4g
bV9pb1N1cmZhY2VCdWZmZXJBdHRyaWJ1dGVzLmdldCgpOwotCi0gICAgbV9pb1N1cmZhY2VCdWZm
ZXJBdHRyaWJ1dGVzID0gKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZikgQHsKLSAgICAgICAgKF9f
YnJpZGdlIE5TU3RyaW5nICopY3ZQaXhlbEZvcm1hdE9wZW5HTEtleSgpIDogQFlFUywKLSAgICB9
OwotCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIGF1dG8gZm9ybWF0ID0gSU9TdXJmYWNlR2V0UGl4
ZWxGb3JtYXQoc3VyZmFjZSk7Ci0gICAgYXV0byB3aWR0aCA9IElPU3VyZmFjZUdldFdpZHRoKHN1
cmZhY2UpOwotICAgIGF1dG8gaGVpZ2h0ID0gSU9TdXJmYWNlR2V0SGVpZ2h0KHN1cmZhY2UpOwot
ICAgIGF1dG8gZXh0ZW5kZWRSaWdodCA9IHJvdW5kVXBUb01hY3JvYmxvY2tNdWx0aXBsZSh3aWR0
aCkgLSB3aWR0aDsKLSAgICBhdXRvIGV4dGVuZGVkQm90dG9tID0gcm91bmRVcFRvTWFjcm9ibG9j
a011bHRpcGxlKGhlaWdodCkgLSBoZWlnaHQ7Ci0KLSAgICBpZiAoKGZvcm1hdCA9PSBrQ1ZQaXhl
bEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyVmlkZW9SYW5nZSB8fCBmb3JtYXQgPT0ga0NW
UGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZSkKLSAgICAgICAgJiYg
KElPU3VyZmFjZUdldEJ5dGVzUGVyUm93T2ZQbGFuZShzdXJmYWNlLCAwKSA+PSB3aWR0aCArIGV4
dGVuZGVkUmlnaHQpCi0gICAgICAgICYmIChJT1N1cmZhY2VHZXRCeXRlc1BlclJvd09mUGxhbmUo
c3VyZmFjZSwgMSkgPj0gd2lkdGggKyBleHRlbmRlZFJpZ2h0KQotICAgICAgICAmJiAoSU9TdXJm
YWNlR2V0QWxsb2NTaXplKHN1cmZhY2UpID49IChoZWlnaHQgKyBleHRlbmRlZEJvdHRvbSkgKiBJ
T1N1cmZhY2VHZXRCeXRlc1BlclJvd09mUGxhbmUoc3VyZmFjZSwgMCkgKiAzIC8gMikpIHsKLSAg
ICAgICAgICAgIG1faW9TdXJmYWNlQnVmZmVyQXR0cmlidXRlcyA9IChfX2JyaWRnZSBDRkRpY3Rp
b25hcnlSZWYpIEB7Ci0gICAgICAgICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4
ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5IDogQFlFUywKLSAgICAgICAgICAgICAgICAo
X19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckV4dGVuZGVkUGl4ZWxzUmlnaHRLZXkg
OiBAKGV4dGVuZGVkUmlnaHQpLAotICAgICAgICAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAq
KWtDVlBpeGVsQnVmZmVyRXh0ZW5kZWRQaXhlbHNCb3R0b21LZXkgOiBAKGV4dGVuZGVkQm90dG9t
KQotICAgICAgICAgICAgfTsKLSAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzdXJmYWNl
KTsKLSNlbmRpZgotCi0gICAgcmV0dXJuIG1faW9TdXJmYWNlQnVmZmVyQXR0cmlidXRlcy5nZXQo
KTsKLX0KLQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9u
VlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKElPU3VyZmFjZVJlZiBzdXJmYWNlKQotewotICAgIGlmICgh
c3VyZmFjZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBDVlBpeGVsQnVmZmVyUmVm
IHBpeGVsQnVmZmVyOwotICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckNyZWF0ZVdpdGhJ
T1N1cmZhY2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3VyZmFjZSwgaW9TdXJmYWNlUGl4ZWxCdWZm
ZXJDcmVhdGlvbk9wdGlvbnMoc3VyZmFjZSksICZwaXhlbEJ1ZmZlcik7Ci0gICAgaWYgKHN0YXR1
cykgewotICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkNWUGl4ZWxCdWZmZXJDcmVhdGVXaXRo
SU9TdXJmYWNlIGZhaWxlZCB3aXRoIGVycm9yIGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50Pihz
dGF0dXMpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBhZG9w
dENGKHBpeGVsQnVmZmVyKTsKLX0KLQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IEltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZVBpeGVsQnVmZmVyKElPU3VyZmFjZVJlZiBzdXJmYWNl
LCBjb25zdCBJbnRTaXplJiBzaXplKQorUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFn
ZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNhbXBsZUJ1ZmZlcihJT1N1cmZhY2VSZWYgc3Vy
ZmFjZSwgY29uc3QgTWVkaWFUaW1lICZzYW1wbGVUaW1lLCBjb25zdCBJbnRTaXplICZzaXplKQog
ewogICAgIGlmICghc3VyZmFjZSB8fCAhc2V0U2l6ZShzaXplKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0KLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyOwotICAgIGF1dG8gc3Rh
dHVzID0gQ1ZQaXhlbEJ1ZmZlckNyZWF0ZVdpdGhJT1N1cmZhY2Uoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgc3VyZmFjZSwgaW9TdXJmYWNlUGl4ZWxCdWZmZXJDcmVhdGlvbk9wdGlvbnMoc3VyZmFjZSks
ICZwaXhlbEJ1ZmZlcik7Ci0gICAgaWYgKHN0YXR1cykgewotICAgICAgICBSRUxFQVNFX0xPRyhN
ZWRpYSwgIkNWUGl4ZWxCdWZmZXJDcmVhdGVXaXRoSU9TdXJmYWNlIGZhaWxlZCB3aXRoIGVycm9y
IGNvZGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgfQotCi0gICAgYXV0byByZXRhaW5lZEJ1ZmZlciA9IGFkb3B0Q0YocGl4ZWxC
dWZmZXIpOwotICAgIGlmIChtX3NpemUgPT0gSW50U2l6ZShDVlBpeGVsQnVmZmVyR2V0V2lkdGgo
cGl4ZWxCdWZmZXIpLCBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKSkgJiYgbV9w
aXhlbEZvcm1hdCA9PSBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVy
KSkKLSAgICAgICAgcmV0dXJuIHJldGFpbmVkQnVmZmVyOwotCi0gICAgcmV0dXJuIGNvbnZlcnRQ
aXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlciwgc2l6ZSk7Ci19Ci0KLVJldGFpblB0cjxDTVNhbXBsZUJ1
ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlQ01TYW1wbGVCdWZmZXIoSU9T
dXJmYWNlUmVmIHN1cmZhY2UsIGNvbnN0IE1lZGlhVGltZSYgc2FtcGxlVGltZSwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkKLXsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gY3JlYXRlUGl4ZWxCdWZmZXIo
c3VyZmFjZSwgc2l6ZSk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IGNyZWF0ZUNWUGl4ZWxCdWZm
ZXIoc3VyZmFjZSkudmFsdWVfb3IobnVsbHB0cik7CiAgICAgaWYgKCFwaXhlbEJ1ZmZlcikKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2VDb2NvYS5tbQppbmRleCA1MjFkZTdhOTc0ZWVjMjBlOTk3NGMwOGFkMzliNmNl
ZjdjMjFmN2UxLi45ZWNhNmY3N2M3ZjQ0MjljMjViYTI2ZWFiZGQ2MTBkMDJmYmFiMzg0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCkBAIC0z
MCw2ICszMCw3IEBACiAKICNpZiBVU0UoTElCV0VCUlRDKQogCisjaW1wb3J0ICJDVlV0aWxpdGll
cy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFTYW1wbGVBVkZPYmpDLmgi
CiAjaW1wb3J0ICJSZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCkBAIC0zOSw2ICs0MCw3IEBAIEFM
TE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAjaW1wb3J0IDx3ZWJydGMvc2RrL1dlYktpdC9X
ZWJLaXRVdGlsaXRpZXMuaD4KIEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0VORAogCisjaW1wb3J0
ICJDb3JlVmlkZW9Tb2Z0TGluay5oIgogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk4LDEwICsxMDAsMTIgQEAgQ1ZQaXhlbEJ1
ZmZlclBvb2xSZWYgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OnBpeGVsQnVmZmVy
UG9vbChzaXplX3Qgd2kKICAgICAgICAgY2FzZSB3ZWJydGM6OkJ1ZmZlclR5cGU6OkkwMTA6CiAg
ICAgICAgICAgICBwb29sQnVmZmVyVHlwZSA9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3Ix
MEJpUGxhbmFyVmlkZW9SYW5nZTsKICAgICAgICAgfQotICAgICAgICBtX3BpeGVsQnVmZmVyUG9v
bCA9IGNyZWF0ZVBpeGVsQnVmZmVyUG9vbCh3aWR0aCwgaGVpZ2h0LCBwb29sQnVmZmVyVHlwZSk7
Ci0gICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggPSB3aWR0aDsKLSAgICAgICAgbV9waXhl
bEJ1ZmZlclBvb2xIZWlnaHQgPSBoZWlnaHQ7Ci0gICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sQnVm
ZmVyVHlwZSA9IGJ1ZmZlclR5cGU7CisgICAgICAgIGlmIChhdXRvIHBvb2wgPSBjcmVhdGVJT1N1
cmZhY2VDVlBpeGVsQnVmZmVyUG9vbCh3aWR0aCwgaGVpZ2h0LCBwb29sQnVmZmVyVHlwZSkpIHsK
KyAgICAgICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sID0gV1RGTW92ZSgqcG9vbCk7CisgICAgICAg
ICAgICBtX3BpeGVsQnVmZmVyUG9vbFdpZHRoID0gd2lkdGg7CisgICAgICAgICAgICBtX3BpeGVs
QnVmZmVyUG9vbEhlaWdodCA9IGhlaWdodDsKKyAgICAgICAgICAgIG1fcGl4ZWxCdWZmZXJQb29s
QnVmZmVyVHlwZSA9IGJ1ZmZlclR5cGU7CisgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIG1f
cGl4ZWxCdWZmZXJQb29sLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgK
aW5kZXggNWZiYWY1ZWRjNjQwMjYxNGVkYWZkN2FlMTZkYWU4MGJiYjE3YTkwMi4uMzgwZDM3MzFi
MGExNTNhYmI5YzIyNzBiZmVlNzY4MGYwM2IzYjhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0
aWxpdGllcy5oCkBAIC0yNyw5ICsyNyw2IEBACiAKICNpbmNsdWRlIDxDb3JlVmlkZW8vQ29yZVZp
ZGVvLmg+CiAKLXVzaW5nIENWUGl4ZWxCdWZmZXJQb29sUmVmID0gc3RydWN0IF9fQ1ZQaXhlbEJ1
ZmZlclBvb2wqOwotdXNpbmcgQ1ZQaXhlbEJ1ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsK
LQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgaW5saW5lIE9TVHlwZSBwcmVmZXJlZFBp
eGVsQnVmZmVyRm9ybWF0KCkKQEAgLTQxLDcgKzM4LDQgQEAgc3RhdGljIGlubGluZSBPU1R5cGUg
cHJlZmVyZWRQaXhlbEJ1ZmZlckZvcm1hdCgpCiAjZW5kaWYKIH0KIAotV0VCQ09SRV9FWFBPUlQg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6
ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBPU1R5cGUpOwotV0VCQ09SRV9FWFBPUlQgUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+IGNyZWF0ZVBpeGVsQnVmZmVyRnJvbVBvb2woQ1ZQaXhlbEJ1
ZmZlclBvb2xSZWYpOwotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjJlYzI3NmI0ZjEzMWQ3MDAzZjNmMzIwZTA5NzQ2
Y2Q0Y2VjYzI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRp
bGl0aWVzLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgcmVxdWlyZWQgdG8gYmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotICogQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotICogREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKLSAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0gKiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLAotICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lt
cG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJSZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgiCi0KLSNp
bXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmV0
YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiBjcmVhdGVQaXhlbEJ1ZmZlclBvb2woc2l6ZV90
IHdpZHRoLCBzaXplX3QgaGVpZ2h0LCBPU1R5cGUgdmlkZW9DYXB0dXJlRm9ybWF0KQotewotICAg
IGF1dG8gcGl4ZWxBdHRyaWJ1dGVzID0gQHsKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICop
a0NWUGl4ZWxCdWZmZXJXaWR0aEtleTogQCh3aWR0aCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0
cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0S2V5OiBAKGhlaWdodCksCi0gICAgICAgIChfX2Jy
aWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5OiBAKHZpZGVv
Q2FwdHVyZUZvcm1hdCksCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVm
ZmVyQ0dJbWFnZUNvbXBhdGliaWxpdHlLZXk6IEBOTywKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEZvcm1hdE9wZW5HTEVTQ29t
cGF0aWJpbGl0eSA6IEBZRVMsCi0jZWxzZQotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilr
Q1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBhdGliaWxpdHlLZXkgOiBAWUVTLAotI2VuZGlmCi0gICAg
ICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGll
c0tleSA6IEB7IH0KLSAgICB9OwotCi0gICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcG9vbCA9IG51
bGxwdHI7Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBudWxscHRyLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKXBpeGVsQXR0
cmlidXRlcywgJnBvb2wpOwotCi0gICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzKQot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBhZG9wdENGKHBvb2wpOwotfQot
Ci1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY3JlYXRlUGl4ZWxCdWZmZXJGcm9tUG9vbChD
VlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbEJ1ZmZlclBvb2wpCi17Ci0gICAgQ1ZQaXhlbEJ1ZmZl
clJlZiBwaXhlbEJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVm
ZmVyUG9vbENyZWF0ZVBpeGVsQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBpeGVsQnVmZmVy
UG9vbCwgJnBpeGVsQnVmZmVyKTsKLQotICAgIGlmIChzdGF0dXMgIT0ga0NWUmV0dXJuU3VjY2Vz
cykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxCdWZm
ZXIpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0KaW5kZXggZGUzYmI2YTcwNzY4ZGM4YWU1OGQw
Y2RlYmEwYTQ4MGFlOGJmYmVmNS4uY2E2NTBhNTRlNDNlODJjOGU0MjRkZGMzY2JjODQ0NzJmODY0
ODNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2Vi
Q29yZVVSTFJlc3BvbnNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCA8cGFs
L3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvU29ydGVkQXJyYXlNYXAuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKaW5kZXggZDk4ZjcyY2E1MmExZjFjMWVm
OGIyOWI4ZjcxMjI0MjM1YzgxOGY3YS4uZWVjOGQ2NmZhYWJhZmI3OTliMGZkZWRjNDU5YzRkYjVh
N2YyMmUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
TGliV2ViUlRDQ29kZWNzUHJveHkuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkRhdGFS
ZWZlcmVuY2UuaCIKICNpbmNsdWRlICJSVENEZWNvZGVySWRlbnRpZmllci5oIgogI2luY2x1ZGUg
IlJUQ0VuY29kZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9JbWFnZVRyYW5zZmVy
U2Vzc2lvblZULmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KIAogbmFtZXNwYWNlIElQQyB7CkBA
IC05Myw3ICs5Miw2IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxSVENFbmNvZGVySWRlbnRpZmll
ciwgd2VicnRjOjpMb2NhbEVuY29kZXI+IG1fZW5jb2RlcnMgV1RGX0dVQVJERURfQllfTE9DSyht
X2xvY2spOyAvLyBPbmx5IG1vZGlmaWVkIG9uIHRoZSBsaWJXZWJSVENDb2RlY3NRdWV1ZSBidXQg
bWF5IGdldCBhY2Nlc3NlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KIAogICAgIFJlZjxXb3JrUXVl
dWU+IG1fcXVldWU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247CiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQpp
bmRleCBiMjMyNTgyNzQ0YzE1ODYwZTkyNTNlYjNkYmU5MjQ0ZTkxOWU4NjFmLi40ODg5NTJjMjVk
OTE4OTY2MGIwM2YxNjg0MjNiNGI0MGZlNTNlZWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KQEAgLTMzLDYg
KzMzLDcgQEAKICNpbXBvcnQgIkxpYldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgiCiAjaW1wb3J0ICJM
aWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQ1ZVdGlsaXRpZXMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTGliV2ViUlRDUHJvdmlkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1w
bGUuaD4KICNpbXBvcnQgPHdlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdERlY29kZXIuaD4KQEAgLTIw
NywxMSArMjA4LDEwIEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmVuY29kZUZyYW1lKFJU
Q0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6CiAgICAgaWYgKCFlbmNvZGVy
KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwg
bV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+cGl4ZWxGb3JtYXQoKSAhPSBzYW1wbGUudmlkZW9Gb3Jt
YXQoKSkKLSAgICAgICAgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbiA9IFdlYkNvcmU6OkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZShzYW1wbGUudmlkZW9Gb3JtYXQoKSk7Ci0KICNpZiAhUExB
VEZPUk0oTUFDQ0FUQUxZU1QpCi0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IG1faW1hZ2VUcmFuc2Zl
clNlc3Npb24tPmNyZWF0ZVBpeGVsQnVmZmVyKHNhbXBsZS5zdXJmYWNlKCkpOworICAgIGlmICgh
c2FtcGxlLnN1cmZhY2UoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGF1dG8gcGl4ZWxCdWZmZXIg
PSBXZWJDb3JlOjpjcmVhdGVDVlBpeGVsQnVmZmVyKHNhbXBsZS5zdXJmYWNlKCkpLnZhbHVlX29y
KG51bGxwdHIpOwogICAgIHdlYnJ0Yzo6ZW5jb2RlTG9jYWxFbmNvZGVyRnJhbWUoZW5jb2Rlciwg
cGl4ZWxCdWZmZXIuZ2V0KCksIHNhbXBsZS50aW1lKCkudG9UaW1lU2NhbGUoMTAwMDAwMCkudGlt
ZVZhbHVlKCksIHRpbWVTdGFtcCwgdG9XZWJSVENWaWRlb1JvdGF0aW9uKHNhbXBsZS5yb3RhdGlv
bigpKSwgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCmlu
ZGV4IDlhZDk0ZDY4NmU0MzgwYjVhMTNiOTQ3NzEzM2E4ODIyNTFkYjA0N2MuLmU3Mzk4NjgyM2E0
MzJmYjM2MzA2Yzg3Zjg2YzQ2ZGNmZDZlN2I4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcApAQCAtMzMsOSAr
MzMsOSBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNs
dWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9DVlV0aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2Vi
UlRDTWFjcm9zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WUDlVdGlsaXRpZXNDb2Nv
YS5oPgpAQCAtMzMyLDE1ICszMzIsOSBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVk
RGVjb2RpbmcoUlRDRGVjb2RlcklkZW50aWZpZXIgZGVjb2RlcklkZW50aWZpZXIsCiAgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKCFtX2ltYWdlVHJhbnNmZXJTZXNzaW9uIHx8IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPnBp
eGVsRm9ybWF0KCkgIT0gcmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpCi0gICAgICAgIG1faW1h
Z2VUcmFuc2ZlclNlc3Npb24gPSBXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVh
dGUocmVtb3RlU2FtcGxlLnZpZGVvRm9ybWF0KCkpOwotCi0gICAgaWYgKCFtX2ltYWdlVHJhbnNm
ZXJTZXNzaW9uKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIGlmICghcmVt
b3RlU2FtcGxlLnN1cmZhY2UoKSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8g
cGl4ZWxCdWZmZXIgPSBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5jcmVhdGVQaXhlbEJ1ZmZlcihy
ZW1vdGVTYW1wbGUuc3VyZmFjZSgpLCByZW1vdGVTYW1wbGUuc2l6ZSgpKTsKKyAgICBhdXRvIHBp
eGVsQnVmZmVyID0gY3JlYXRlQ1ZQaXhlbEJ1ZmZlcihyZW1vdGVTYW1wbGUuc3VyZmFjZSgpKS52
YWx1ZV9vcihudWxscHRyKTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKSB7CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CkBAIC00NDQsNyArNDM4LDcgQEAgaW50
MzJfdCBMaWJXZWJSVENDb2RlY3M6OmVuY29kZUZyYW1lKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IHdlYnJ0Yzo6VmlkZW9GcmFtZSYKICAgICAgICAgaWYgKCFwaXhlbEJ1ZmZlclBvb2wpCiAgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICByZXR1cm4gV2ViQ29yZTo6Y3JlYXRl
UGl4ZWxCdWZmZXJGcm9tUG9vbChwaXhlbEJ1ZmZlclBvb2wpLmxlYWtSZWYoKTsKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OmNyZWF0ZUNWUGl4ZWxCdWZmZXJGcm9tUG9vbChwaXhlbEJ1ZmZlclBv
b2wpLnZhbHVlX29yKG51bGxwdHIpLmxlYWtSZWYoKTsKICAgICB9KSk7CiAKICAgICBpZiAoIXBp
eGVsQnVmZmVyKQpAQCAtNTAzLDcgKzQ5Nyw3IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21w
bGV0ZWRFbmNvZGluZyhSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OkRhCiBD
VlBpeGVsQnVmZmVyUG9vbFJlZiBMaWJXZWJSVENDb2RlY3M6OnBpeGVsQnVmZmVyUG9vbChzaXpl
X3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIE9TVHlwZSB0eXBlKQogewogICAgIGlmICghbV9waXhl
bEJ1ZmZlclBvb2wgfHwgbV9waXhlbEJ1ZmZlclBvb2xXaWR0aCAhPSB3aWR0aCB8fCBtX3BpeGVs
QnVmZmVyUG9vbEhlaWdodCAhPSBoZWlnaHQpIHsKLSAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2wg
PSBjcmVhdGVQaXhlbEJ1ZmZlclBvb2wod2lkdGgsIGhlaWdodCwgdHlwZSk7CisgICAgICAgIG1f
cGl4ZWxCdWZmZXJQb29sID0gV2ViQ29yZTo6Y3JlYXRlSU9TdXJmYWNlQ1ZQaXhlbEJ1ZmZlclBv
b2wod2lkdGgsIGhlaWdodCwgdHlwZSkudmFsdWVfb3IobnVsbHB0cik7CiAgICAgICAgIG1fcGl4
ZWxCdWZmZXJQb29sV2lkdGggPSB3aWR0aDsKICAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xIZWln
aHQgPSBoZWlnaHQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaAppbmRleCBlYmU2MjNjYmQ3YjdhODVkMjg5ZTZh
YzgyZDMxOTVkNmJlMTM1ZmJjLi40MDgzM2UwMzBlZjViMGVlODk0ZDdmNDRiZTk4Y2Q2Nzk4MWY0
YTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3MuaApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgogI2luY2x1ZGUgIlJUQ0RlY29kZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUlRD
RW5jb2RlcklkZW50aWZpZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJTZXNz
aW9uVlQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaD4KICNp
bmNsdWRlIDxtYXA+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBl
Lmg+CkBAIC0xNDksNyArMTQ4LDYgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8RnVuY3Rpb248dm9p
ZCgpPj4gbV90YXNrc1RvRGlzcGF0Y2hBZnRlckVzdGFibGlzaGluZ0Nvbm5lY3Rpb247CiAKICAg
ICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWPiBtX3BpeGVsQnVmZmVy
Q29uZm9ybWVyOwogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4gbV9waXhlbEJ1
ZmZlclBvb2w7CiAgICAgc2l6ZV90IG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggeyAwIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439133</attachid>
            <date>2021-09-24 00:48:55 -0700</date>
            <delta_ts>2021-09-24 06:34:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230338-20210924104853.patch</filename>
            <type>text/plain</type>
            <size>42634</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTUwMGZhMWUyMzU1MzAw
N2ExN2QzZDNhN2FlNWM3OGI3ZTk2OGNlOC4uNjc5MjM0NjZhZDRkZjgwMzViZmY1NjAxNjliODFl
NGYyODVhZGZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIxLTA5LTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHV0aWxpdHkg
dG8gY3JlYXRlIENWUGl4ZWxCdWZmZXJzIGZyb20gSU9TdXJmYWNlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwMzM4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBNb3ZlIHRoZSBmdW5jdGlvbmFsaXR5IG9m
IGNyZWF0aW5nIENWUGl4ZWxCdWZmZXJzCisgICAgICAgIGZyb20gSU9TdXJmYWNlcyBmcm9tIElt
YWdlVHJhbnNmZXJTZXNzaW9uVlQgdG8KKyAgICAgICAgc3RhbmRhbG9uZSBmdW5jdGlvbnMgaW4g
bmV3IGhlYWRlciBDVlV0aWxpdGllcy4KKyAgICAgICAgVGhlIGZ1bmN0aW9uYWxpdHkgZGlkIG5v
dCB1c2UgYW55IHN0YXRlIG9mCisgICAgICAgIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQuCisKKyAg
ICAgICAgVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHVzZWZ1bCBpbiBvdGhlciBzY2VuYXJpb3MgdG9v
LgorCisgICAgICAgIFJlbW92ZSBpbnN0YW50aWF0aW9ucyBvZiBJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUIGZyb20KKyAgICAgICAgdGhlIG9sZCBjYWxsIHNpdGVzLCBhcyBpdCB3YXMgbmV2ZXIgdXNl
ZCBmb3IgYW55dGhpbmcKKyAgICAgICAgZWxzZSB0aGFuIGNyZWF0aW9uIG9mIHRoZSBwaXhlbCBi
dWZmZXIuCisKKyAgICAgICAgTW92ZSB0aGUgcmVsYXRlZCBDVlBpeGVsQnVmZmVyUG9vbCBpbnN0
YW50aWF0aW9uCisgICAgICAgIGZyb20gUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oIHRvIENWVXRp
bGl0aWVzLmgKKworICAgICAgICBSZW1vdmUgdGhlIHVzYWdlIG9mIGtDVlBpeGVsRm9ybWF0T3Bl
bkdMRVNDb21wYXRpYmlsaXR5CisgICAgICAgIGZyb20gdGhlIENWUGl4ZWxCdWZmZXIgY3JlYXRp
b24gY29kZS4gSXQgd2FzIGluY29ycmVjdCBwcm9wZXJ0eQorICAgICAgICBhbGwgYWxvbmcsIHBy
b3BlcnR5IG9mIHBpeGVsIGZvcm1hdHMgbm90IG9mIHBpeGVsIGJ1ZmZlcnMuIFRoZQorICAgICAg
ICBpbnRlbmRlZCBwcm9wZXJ0eSB3YXMga0NWUGl4ZWxCdWZmZXJPcGVuR0xFU0NvbXBhdGliaWxp
dHlLZXkKKyAgICAgICAgYnV0IGl0IGlzIG5vdCBuZWVkZWQgYW55bW9yZS4KKyAgICAgICAgUmV0
YWlucyB0aGUgdXNhZ2Ugb2Yga0NWUGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5LCB0
aG91Z2gKKyAgICAgICAgaXQgaXMgaW5jb3JyZWN0IGFuZCB1bm5lZWRlZCBmb3IgdGhlIGN1cnJl
bnQgb3BlcmF0aW9uIHRvby4KKyAgICAgICAgU2luY2UgdGhlb3JldGljYWxseSB0aGlzIGNvdWxk
IGFmZmVjdCBzb21ldGhpbmcgb24gTWFjLCB0aGlzCisgICAgICAgIHdpbGwgYmUgcmVtb3ZlZCBp
biBhIHNlcGFyYXRlIGZpeC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGEgcmVmYWN0b3IuCisK
KyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVJT1N1cmZhY2VDVlBpeGVsQnVmZmVyUG9vbCk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVDVlBpeGVsQnVmZmVyRnJvbVBvb2wpOgorICAgICAgICAoV2ViQ29yZTo6cGl4ZWxC
dWZmZXJDcmVhdGlvbk9wdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ1ZQaXhlbEJ1
ZmZlcik6CisgICAgICAgIFRoZSBhZGRlZCBmdW5jdGlvbnMgcmV0dXJuIEV4cGVjdGVkPG9iamVj
dCwgc3RhdHVzPiBzaW5jZQorICAgICAgICBzb21lIG9mIHRoZSBjYWxsZXJzIHdhbnQgdG8gbG9n
IHRoZSBmYWlsdXJlIHN0YXR1cyBjb2RlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2
L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
di9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VUcmFu
c2ZlclNlc3Npb25WVDo6c2V0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVRyYW5zZmVy
U2Vzc2lvblZUOjpjb252ZXJ0UGl4ZWxCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VU
cmFuc2ZlclNlc3Npb25WVDo6Y29udmVydENNU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZUNNU2FtcGxlQnVmZmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmN2UGl4ZWxGb3JtYXRPcGVuR0xLZXkpOiBEZWxldGVkLgorICAgICAgICBJ
bmNvcnJlY3QsIHJlcGxhY2VkIHdpdGggTWFjLW9ubHkgdXNlIG9mIE9wZW5HTENvbXBhdGliaWxp
dHlLZXkgaW4KKyAgICAgICAgQ1ZVdGlsaXRpZXMubW0uCisgICAgICAgIChXZWJDb3JlOjpyb3Vu
ZFVwVG9NYWNyb2Jsb2NrTXVsdGlwbGUpOiBEZWxldGVkLgorICAgICAgICBVc2UgdGhlIHNpbWls
YXIgZnVuY3Rpb24gaW4gV1RGLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Np
b25WVDo6aW9TdXJmYWNlUGl4ZWxCdWZmZXJDcmVhdGlvbk9wdGlvbnMpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJj
ZUNvY29hOjpwaXhlbEJ1ZmZlclBvb2wpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmg6CisgICAgICAgIFByZXNlcnZlZCwgc2luY2Ug
cHJlZmVyZWRQaXhlbEJ1ZmZlckZvcm1hdCBtZWFucworICAgICAgICAidGhlIHBpeGVsIGJ1ZmZl
ciBmb3JtYXQgdGhhdCBpcyBwcmVmZXJyZWQgYnkgbWVkaWEgc3RyZWFtIGltcGxlbWVudGF0aW9u
cyIKKyAgICAgICAgd2hpY2ggZG9lcyBub3QgZml0IHRvIGNhdGVnb3J5IG9mICJDb3JlVmlkZW8g
VXRpbGl0aWVzIi4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVW
aWRlb1V0aWxpdGllcy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlVVJMUmVzcG9uc2UubW06CisgICAgICAgIEZpeCB1bmlmaWVkIGJ1aWxkIGZhaWx1
cmUgZHVlIHRvIGEgbWlzc2luZyBpbmNsdWRlLgorCiAyMDIxLTA5LTIzICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgU2Nyb2xsU25hcEFuaW1h
dG9yU3RhdGUncyBTY3JvbGxBbmltYXRpb25Nb21lbnR1bSBpbnRvIFNjcm9sbGluZ0VmZmVjdHND
b250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZhOGE0ZGY5MTliNmE4MjAxNzUyODA0MTExMTljYzYxYWY0
ZjMwYjkuLjI5ODQ2NzI4NDczNDI2ZjgwMzEyY2I4ZWYzZjdjMjBmOGU5NGVmZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDktMTYgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVu
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgdXRpbGl0eSB0byBjcmVhdGUgQ1ZQaXhlbEJ1ZmZl
cnMgZnJvbSBJT1N1cmZhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzAzMzgKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0Lgor
CisgICAgICAgIFRoZSBoZWxwZXIgZnVuY3Rpb24gbW92ZWQgZnJvbSBJbWFnZVRyYW5zZmVyU2Vz
c2lvblZUCisgICAgICAgIHRvIGZyZWUgc3RhbmRhbG9uZSBmdW5jdGlvbi4gU3RvcCBpbnN0YW50
aWF0aW5nIHRoZQorICAgICAgICBvYmplY3QgYW5kIGp1c3QgY2FsbCB0aGUgZnVuY3Rpb24uCisK
KyAgICAgICAgSW4gYm90aCBvZiB0aGUgY2FzZXMsIHRoZSBwaXhlbCBidWZmZXIgaXMgY3JlYXRl
ZCBvdXQgb2YKKyAgICAgICAgdGhlIElPU3VyZmFjZSBhbmQgdGhlIHBvb2wgaXMgbm90IHVzZWQu
IEluIGJvdGggb2YgdGhlIGNhc2VzCisgICAgICAgIHRoZSBzaXplIGFuZCB0aGUgcGl4ZWwgZm9y
bWF0IG9mIHRoZSBpbWFnZSB0cmFuc2ZlciBzZXNzaW9uCisgICAgICAgIGlzIHRoZSBzYW1lIGFz
IHRoZSBpbnB1dCBJT1N1cmZhY2UuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRl
ZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6cGl4ZWxCdWZmZXJQb29sKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmg6CisKIDIw
MjEtMDktMjMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1dlYktpdDJdIFJlZmFjdG9yIHNvbWUgSVBDIGFyZ3VtZW50IGVuY29kZXIgbG9naWMgdG8g
d29yayB3aXRoIFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtl
CmluZGV4IDM1ZWI4MDEwYzJiYmJjYzNmNzkyZjdlMzNiNjU2NGI4ODE2OWY5YjcuLjJjNTZmNDFm
YTE1YjUwOTBiYTViNzEzNzJkOWY1ZDUxZjE0YWE1ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNt
YWtlCkBAIC0zMzcsNiArMzM3LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0dseXBoUGFnZUNvcmVUZXh0LmNwcAogCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQU5HTEUuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2N2
L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBi
MTNkNTExMTg1ZmJhOTQ1MDEwZDlhMjRmZDczNDRlYjVkMDA0NDVkLi42YzRjZjA3NDYwYmFkZWJj
MzMxNzE2OTA4MzlhNTdiMGQwOWE0ZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM5
MSw2ICszOTEsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q2FzY2FkZUNvcmVU
ZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENvcmVUZXh0LmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvR2x5cGhQYWdlQ29yZVRleHQuY3BwCitwbGF0Zm9ybS9n
cmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFu
c2ZlclNlc3Npb25WVC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5j
cHAKQEAgLTU0Miw3ICs1NDMsNiBAQCBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyTWFjLm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCi1wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5tbQogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1dlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5tbQogcGxhdGZvcm0vbW9jay9NZWRpYVBsYXli
YWNrVGFyZ2V0TW9jay5jcHAKIHBsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
ck1vY2suY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNTQ4YmI4MjI5OGZlMmU0ZjNmOTIwNDllM2JhNWY1NTI5YTBiMWRhNi4u
NDc2MmU4YTcxNzE2YjhmZDUyMTg5YzNjNGVhZWFkODA5NWNmY2NmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM1MSw2ICsy
MzUxLDcgQEAKIAkJN0I0NUFCNTUyNUZCQTlERTAwRkQyN0Y0IC8qIEdyYXBoaWNzQ29udGV4dEdM
QU5HTEVFR0xVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCNDVBQjU0MjVGQkE5REQwMEZEMjdGNCAvKiBHcmFwaGljc0NvbnRleHRHTEFO
R0xFRUdMVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJN0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdM
SU9TdXJmYWNlU3dhcENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJ
T1N1cmZhY2VTd2FwQ2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk3QjczMTFGQjI1QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBlcmZv
cm1hbmNlR1BVUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0I3MzExRkEyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5j
ZUdQVVJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk3QjhFRDVGMDI2RjBDMTNEMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCOEVENUVEMjZGMEMxMjMw
MDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdCOTA0MTcwMjU1MDExNDIwMDZFRUI4QyAvKiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJN0JCMzRBMTcyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4
dEdMQU5HTEVVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCQjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEFO
R0xFVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJN0JCMzRBNDgyNTM3NzZDQTAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1h
Z2VFeHRyYWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCQjM0QTQ1MjUzNzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0
cmFjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTc5NTgsNyArNzk1OSw2IEBACiAJCTQxNTc0NzQ0MUUzODY5OUUwMEU5MTREOCAvKiBMaWJX
ZWJSVENQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJS
VENQcm92aWRlci5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTdFQkY4MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2Nr
TGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxNTdFQkY5MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDE1
ODY0OUYyM0JGN0I5MzAwQTBBNjFFIC8qIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZWFsdGltZVZpZGVvVXRpbGl0aWVz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCNjI0RkZDRDFCMDBCOURB
NDEgLyogUlRDSWNlQ29tcG9uZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENJY2VD
b21wb25lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTU4RENCODI0RkZD
REMzMDBCOURBNDEgLyogUlRDSWNlUHJvdG9jb2wuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJUQ0ljZVByb3RvY29sLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1OERD
QjkyNEZGQ0RDMzAwQjlEQTQxIC8qIFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJUQ0ljZVRjcENhbmRpZGF0ZVR5cGUuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTA2MTQsNiArMTA2MTQsOCBAQAogCQk3QjZEQzgxNzI1NzEyRTky
MDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MzExRkEyNUMwOTJCNzAw
M0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Qjc3NEM2MjI1RkI5MzU1MDA5MTM5NUYgLyog
R3JhcGhpY3NDb250ZXh0R0xBTkdMRUVHTFV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRHTEFOR0xFRUdMVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJN0I4RUQ1RUQyNkYwQzEyMzAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENWVXRpbGl0aWVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCOEVENUVGMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxp
dGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENWVXRpbGl0
aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjkwNDE2RTI1NTAxMTA5MDA2
RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdM
QU5HTEVVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3QkIzNEE0NTI1Mzc3NkM2MDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJh
Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzY0Nyw3ICsxNzY0OSw2IEBACiAJCQkJ
NUNERDgzM0MxRTQzMjRCQjAwNjIxQjgzIC8qIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hLmggKi8sCiAJCQkJNDE5MjQyNDcyMTI3QjdDQzAwNjM0RkNGIC8qIFJlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZUNvY29hLm1tICovLAogCQkJCTQxRDE5MzhGMjE1MkM1NjEwMDZGMTRDQSAv
KiBSZWFsdGltZVZpZGVvVXRpbGl0aWVzLmggKi8sCi0JCQkJNDE1ODY0OUYyM0JGN0I5MzAwQTBB
NjFFIC8qIFJlYWx0aW1lVmlkZW9VdGlsaXRpZXMubW0gKi8sCiAJCQkJMDdENjM3M0UxQkIwQjEx
MzAwMjU2Q0U5IC8qIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJDb2NvYS5oICovLAogCQkJCTA3RDYz
NzNGMUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQ29jb2EubW0gKi8s
CiAJCQkpOwpAQCAtMjgzODEsNiArMjgzODIsOCBAQAogCQlDRDlEODI3QzFDN0JCMkVEMDA2RkYw
NjYgLyogY3YgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJ
CTdCOEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovLAorCQkJCTdCOEVE
NUVGMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5tbSAqLywKIAkJCQk3QjEwMzM5RDI1
NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovLAogCQkJCTdCMTAzMzlB
MjU0OTcyMDAwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuY3BwICovLAogCQkJ
CTdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQU5HTEUuaCAq
LywKQEAgLTMyMDYzLDYgKzMyMDY2LDcgQEAKIAkJCQk2MkNEMzI1QTExNTdFNTdDMDA2M0IwQTcg
LyogQ3VzdG9tRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNUQyMzg1MjI3QTA2NTIwMDBC
OUJEQSAvKiBDdXN0b21IZWFkZXJGaWVsZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCMUUxM0U3
MjE3OTBENjYwMDQyQ0Y5OCAvKiBDdXN0b21QYWludENhbnZhcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJN0I4RUQ1RjAyNkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOENCNDEzRTBFODYzM0ZEMDAzMkM0RjAgLyogRGFzaEFycmF5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5N0JDNkEyMTE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3QkM2QTI0MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZUF1dGhvcml6
ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2N2L0NWVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU5NGNlOTBiODdkOGEzZWFmZTdjNDU4
NWRjNDk4YTQxNzk2ZTc2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8Q29yZVZpZGVvL0NvcmVWaWRlby5oPgorI2lu
Y2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8d3RmL0V4cGVjdGVkLmg+CisjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgorCit1c2luZyBDVlBpeGVsQnVmZmVyUG9vbFJlZiA9IHN0cnVjdCBfX0NW
UGl4ZWxCdWZmZXJQb29sKjsKK3VzaW5nIENWUGl4ZWxCdWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1
ZmZlcio7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gQ3JlYXRlcyBDVlBpeGVsQnVmZmVy
UG9vbCB0aGF0IGNyZWF0ZXMgQ1ZQaXhlbEJ1ZmZlcnMgYmFja2VkIGJ5IElPU3VyZmFjZXMuCisv
LyBUaGVzZSBidWZmZXJzIGNhbiBiZSBmb3IgZXhhbXBsZSBzZW50IHRocm91Z2ggSVBDLgorV0VC
Q09SRV9FWFBPUlQgRXhwZWN0ZWQ8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiwgQ1ZS
ZXR1cm4+IGNyZWF0ZUlPU3VyZmFjZUNWUGl4ZWxCdWZmZXJQb29sKHNpemVfdCB3aWR0aCwgc2l6
ZV90IGhlaWdodCwgT1NUeXBlIHBpeGVsRm9ybWF0LCB1bnNpZ25lZCBtaW5pbXVtQnVmZmVyQ291
bnQgPSAwdSk7CisKK1dFQkNPUkVfRVhQT1JUIEV4cGVjdGVkPFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiwgQ1ZSZXR1cm4+IGNyZWF0ZUNWUGl4ZWxCdWZmZXJGcm9tUG9vbChDVlBpeGVsQnVm
ZmVyUG9vbFJlZik7CisKK1dFQkNPUkVfRVhQT1JUIEV4cGVjdGVkPFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiwgQ1ZSZXR1cm4+IGNyZWF0ZUNWUGl4ZWxCdWZmZXIoSU9TdXJmYWNlUmVmKTsK
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZV
dGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxp
dGllcy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kZGNmOThjNjliZWE2NDdjMmIyNmY1OTBlMTVlM2QwMTdiODNl
NmRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvQ1ZVdGlsaXRpZXMubW0KQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCisKKyNpbXBvcnQgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KKyNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworRXhwZWN0ZWQ8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiwgQ1ZS
ZXR1cm4+IGNyZWF0ZUlPU3VyZmFjZUNWUGl4ZWxCdWZmZXJQb29sKHNpemVfdCB3aWR0aCwgc2l6
ZV90IGhlaWdodCwgT1NUeXBlIGZvcm1hdCwgdW5zaWduZWQgbWluaW11bUJ1ZmZlckNvdW50KQor
eworICAgIGF1dG8gcGl4ZWxBdHRyaWJ1dGVzID0gQHsKKyAgICAgICAgKF9fYnJpZGdlIE5TU3Ry
aW5nICopa0NWUGl4ZWxCdWZmZXJXaWR0aEtleSA6IEAod2lkdGgpLAorICAgICAgICAoX19icmlk
Z2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlckhlaWdodEtleSA6IEAoaGVpZ2h0KSwKKyAgICAg
ICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkg
OiBAKGZvcm1hdCksCisgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVy
Q0dJbWFnZUNvbXBhdGliaWxpdHlLZXkgOiBATk8sCisjaWYgUExBVEZPUk0oTUFDKQorICAgICAg
ICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBhdGliaWxpdHlL
ZXkgOiBAWUVTLAorI2VuZGlmCisgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVs
QnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSA6IEB7IH0KKyAgICB9OworICAgIE5TRGljdGlv
bmFyeSAqcG9vbE9wdGlvbnMgPSBudWxscHRyOworICAgIGlmIChtaW5pbXVtQnVmZmVyQ291bnQp
IHsKKyAgICAgICAgcG9vbE9wdGlvbnMgPSBAeworICAgICAgICAgICAgKF9fYnJpZGdlIE5TU3Ry
aW5nICopa0NWUGl4ZWxCdWZmZXJQb29sTWluaW11bUJ1ZmZlckNvdW50S2V5IDogQChtaW5pbXVt
QnVmZmVyQ291bnQpCisgICAgICAgIH07CisgICAgfQorICAgIENWUGl4ZWxCdWZmZXJQb29sUmVm
IHBvb2wgPSBudWxscHRyOworICAgIGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwb29sT3B0
aW9ucywgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilwaXhlbEF0dHJpYnV0ZXMsICZwb29sKTsK
KyAgICBpZiAoc3RhdHVzICE9IGtDVlJldHVyblN1Y2Nlc3MgfHwgIXBvb2wpCisgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChzdGF0dXMpOworICAgIHJldHVybiBhZG9wdENGKHBvb2wpOwor
fQorCitFeHBlY3RlZDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4sIENWUmV0dXJuPiBjcmVh
dGVDVlBpeGVsQnVmZmVyRnJvbVBvb2woQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcGl4ZWxCdWZmZXJQ
b29sKQoreworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBudWxscHRyOworICAg
IGF1dG8gc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGVQaXhlbEJ1ZmZlcihrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBwaXhlbEJ1ZmZlclBvb2wsICZwaXhlbEJ1ZmZlcik7CisgICAgaWYgKHN0
YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzIHx8ICFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKHN0YXR1cyk7CisgICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxCdWZmZXIp
OworfQorCitzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHBpeGVsQnVmZmVyQ3JlYXRpb25PcHRpb25z
KElPU3VyZmFjZVJlZiBzdXJmYWNlKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBhdXRvIGZv
cm1hdCA9IElPU3VyZmFjZUdldFBpeGVsRm9ybWF0KHN1cmZhY2UpOworICAgIGlmIChmb3JtYXQg
PT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hclZpZGVvUmFuZ2UgfHwgZm9y
bWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJGdWxsUmFuZ2UpIHsK
KyAgICAgICAgLy8gWVVWIGZvcm1hdHMgbWlnaHQgY29udGFpbiBleHRyYSBwaXhlbHMgZHVlIHRv
IGJsb2NrIHNpemUuIERlZmluZSB0aGUgcGljdHVyZSBwb3NpdGlvbgorICAgICAgICAvLyBpbiB0
aGUgYnVmZmVyIGFzIHRoZSBkZWZhdWx0IHRvcC1sZWZ0IHBvc2l0aW9uLiBUaGUgY2FsbGVyIG1p
Z2h0IHVzZSB0aGUgcGl4ZWwgYnVmZmVyCisgICAgICAgIC8vIHdpdGggQVBJcyB0aGF0IGV4cGVj
dCB0aGUgcHJvcGVydGllcy4KKyAgICAgICAgY29uc3RleHByIHNpemVfdCBtYWNyb2Jsb2NrU2l6
ZSA9IDE2OworICAgICAgICBhdXRvIHdpZHRoID0gSU9TdXJmYWNlR2V0V2lkdGgoc3VyZmFjZSk7
CisgICAgICAgIGF1dG8gaGVpZ2h0ID0gSU9TdXJmYWNlR2V0SGVpZ2h0KHN1cmZhY2UpOworICAg
ICAgICBhdXRvIGV4dGVuZGVkUmlnaHQgPSByb3VuZFVwVG9NdWx0aXBsZU9mKG1hY3JvYmxvY2tT
aXplLCB3aWR0aCkgLSB3aWR0aDsKKyAgICAgICAgYXV0byBleHRlbmRlZEJvdHRvbSA9IHJvdW5k
VXBUb011bHRpcGxlT2YobWFjcm9ibG9ja1NpemUsIGhlaWdodCkgLSBoZWlnaHQ7CisgICAgICAg
IGlmICgoSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApID49IHdpZHRo
ICsgZXh0ZW5kZWRSaWdodCkKKyAgICAgICAgICAgICYmIChJT1N1cmZhY2VHZXRCeXRlc1BlclJv
d09mUGxhbmUoc3VyZmFjZSwgMSkgPj0gd2lkdGggKyBleHRlbmRlZFJpZ2h0KQorICAgICAgICAg
ICAgJiYgKElPU3VyZmFjZUdldEFsbG9jU2l6ZShzdXJmYWNlKSA+PSAoaGVpZ2h0ICsgZXh0ZW5k
ZWRCb3R0b20pICogSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDApICog
MyAvIDIpKSB7CisgICAgICAgICAgICByZXR1cm4gKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZikg
QHsKKyAgICAgICAgICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9w
ZW5HTENvbXBhdGliaWxpdHlLZXkgOiBAWUVTLAorICAgICAgICAgICAgICAgIChfX2JyaWRnZSBO
U1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyRXh0ZW5kZWRQaXhlbHNSaWdodEtleSA6IEAoZXh0ZW5k
ZWRSaWdodCksCisgICAgICAgICAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxC
dWZmZXJFeHRlbmRlZFBpeGVsc0JvdHRvbUtleSA6IEAoZXh0ZW5kZWRCb3R0b20pCisgICAgICAg
ICAgICB9OworICAgICAgICB9CisgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc3VyZmFj
ZSk7CisjZW5kaWYKKyAgICByZXR1cm4gKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZikgQHsKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVm
ZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSA6IEBZRVMKKyNlbmRpZgorICAgIH07Cit9CisKK0V4
cGVjdGVkPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiwgQ1ZSZXR1cm4+IGNyZWF0ZUNWUGl4
ZWxCdWZmZXIoSU9TdXJmYWNlUmVmIHN1cmZhY2UpCit7CisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlciA9IG51bGxwdHI7CisgICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyQ3Jl
YXRlV2l0aElPU3VyZmFjZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzdXJmYWNlLCBwaXhlbEJ1ZmZl
ckNyZWF0aW9uT3B0aW9ucyhzdXJmYWNlKSwgJnBpeGVsQnVmZmVyKTsKKyAgICBpZiAoc3RhdHVz
ICE9IGtDVlJldHVyblN1Y2Nlc3MgfHwgIXBpeGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoc3RhdHVzKTsKKyAgICByZXR1cm4gYWRvcHRDRihwaXhlbEJ1ZmZlcik7Cit9
CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0lt
YWdlVHJhbnNmZXJTZXNzaW9uVlQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaAppbmRleCBhNTI1ODk1MTAyYmJhNTgyOWNkMzc4
NDQ3Yjk1YWI1NzZjNmFmMmY2Li40ZjIyOWRlNmFmZjlkZjFhMWQ0MmQ3NjBlMjcwOTkwNWM4ODdm
NDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFn
ZVRyYW5zZmVyU2Vzc2lvblZULmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5oCkBAIC01OCwxOCArNTgsMTIgQEAgcHVibGlj
OgogI2VuZGlmCiAjZW5kaWYKIAotI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICBXRUJD
T1JFX0VYUE9SVCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY3JlYXRlUGl4ZWxCdWZmZXIo
SU9TdXJmYWNlUmVmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gY3JlYXRlUGl4ZWxCdWZmZXIoSU9TdXJmYWNlUmVmLCBjb25zdCBJbnRTaXplJik7Ci0j
ZW5kaWYKLQogICAgIHVpbnQzMl90IHBpeGVsRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV9waXhl
bEZvcm1hdDsgfQogCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEltYWdl
VHJhbnNmZXJTZXNzaW9uVlQodWludDMyX3QgcGl4ZWxGb3JtYXQpOwogCiAjaWYgIVBMQVRGT1JN
KE1BQ0NBVEFMWVNUKQotICAgIENGRGljdGlvbmFyeVJlZiBpb1N1cmZhY2VQaXhlbEJ1ZmZlckNy
ZWF0aW9uT3B0aW9ucyhJT1N1cmZhY2VSZWYpOwogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gY3JlYXRlQ01TYW1wbGVCdWZmZXIoSU9TdXJmYWNlUmVmLCBjb25zdCBNZWRpYVRpbWUm
LCBjb25zdCBJbnRTaXplJik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KaW5k
ZXggZjMxNjlhYmMwMjc3MDgyZjBjZmNlNDcyNjc5ZTExMDc5N2M4YzlmNi4uZDU3M2I3Zjk1YWFj
YThjMjQxZTVhNTFiOTQwYmIzMDdhMTI3ZjhlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1t
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIkltYWdlVHJh
bnNmZXJTZXNzaW9uVlQuaCIKIAorI2ltcG9ydCAiQ1ZVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkdy
YXBoaWNzQ29udGV4dENHLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYVNh
bXBsZUFWRk9iakMuaCIKQEAgLTQzLDE1ICs0NCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotc3RhdGljIGlubGluZSBDRlN0cmluZ1JlZiBjdlBpeGVsRm9ybWF0T3BlbkdMS2V5KCkKLXsK
LSNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0gICAg
cmV0dXJuIGtDVlBpeGVsRm9ybWF0T3BlbkdMRVNDb21wYXRpYmlsaXR5OwotI2Vsc2UKLSAgICBy
ZXR1cm4ga0NWUGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5OwotI2VuZGlmCi19Ci0K
IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQodWludDMyX3Qg
cGl4ZWxGb3JtYXQpCiB7CiAgICAgVlRQaXhlbFRyYW5zZmVyU2Vzc2lvblJlZiB0cmFuc2ZlclNl
c3Npb247CkBAIC04NCwyOSArNzYsMTEgQEAgYm9vbCBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpz
ZXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAgICAgaWYgKG1fc2l6ZSA9PSBzaXplICYm
IG1fb3V0cHV0QnVmZmVyUG9vbCkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBOU0RpY3Rp
b25hcnkqIHBpeGVsQnVmZmVyT3B0aW9ucyA9IEB7Ci0gICAgICAgIChfX2JyaWRnZSBOU1N0cmlu
ZyAqKWtDVlBpeGVsQnVmZmVyV2lkdGhLZXkgOiBAKHNpemUud2lkdGgoKSksCi0gICAgICAgIChf
X2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVySGVpZ2h0S2V5IDogQChzaXplLmhlaWdo
dCgpKSwKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQaXhlbEZv
cm1hdFR5cGVLZXkgOiBAKG1fcGl4ZWxGb3JtYXQpLAotICAgICAgICAoX19icmlkZ2UgTlNTdHJp
bmcgKiljdlBpeGVsRm9ybWF0T3BlbkdMS2V5KCkgOiBAWUVTLAotICAgICAgICAoX19icmlkZ2Ug
TlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZVByb3BlcnRpZXNLZXkgOiBAeyAvKmVt
cHR5IGRpY3Rpb25hcnkqLyB9LAotICAgIH07Ci0KLSAgICBOU0RpY3Rpb25hcnkqIHBpeGVsQnVm
ZmVyUG9vbE9wdGlvbnMgPSBAewotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKilrQ1ZQaXhl
bEJ1ZmZlclBvb2xNaW5pbXVtQnVmZmVyQ291bnRLZXk6IEAoNikKLSAgICB9OwotCi0gICAgQ1ZQ
aXhlbEJ1ZmZlclBvb2xSZWYgYnVmZmVyUG9vbDsKLSAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxC
dWZmZXJQb29sQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIChfX2JyaWRnZSBDRkRpY3Rpb25h
cnlSZWYpcGl4ZWxCdWZmZXJQb29sT3B0aW9ucywgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilw
aXhlbEJ1ZmZlck9wdGlvbnMsICZidWZmZXJQb29sKTsKLSAgICBBU1NFUlQoIXN0YXR1cyk7Ci0g
ICAgaWYgKHN0YXR1cyAhPSBrQ1ZSZXR1cm5TdWNjZXNzKQorICAgIGF1dG8gYnVmZmVyUG9vbCA9
IGNyZWF0ZUlPU3VyZmFjZUNWUGl4ZWxCdWZmZXJQb29sKHNpemUud2lkdGgoKSwgc2l6ZS5oZWln
aHQoKSwgbV9waXhlbEZvcm1hdCwgNikudmFsdWVfb3IobnVsbHB0cik7CisgICAgaWYgKCFidWZm
ZXJQb29sKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBtX291dHB1dEJ1ZmZlclBvb2wg
PSBhZG9wdENGKGJ1ZmZlclBvb2wpOworICAgIG1fb3V0cHV0QnVmZmVyUG9vbCA9IFdURk1vdmUo
YnVmZmVyUG9vbCk7CiAgICAgbV9zaXplID0gc2l6ZTsKLSAgICBtX2lvU3VyZmFjZUJ1ZmZlckF0
dHJpYnV0ZXMgPSBudWxscHRyOwotCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTExOCwyNiAr
OTIsMjAgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9u
VlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlcihDVlBpeGVsQnUKICAgICBpZiAoIXNvdXJjZUJ1ZmZlciB8
fCAhc2V0U2l6ZShzaXplKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBDVlBpeGVs
QnVmZmVyUmVmIG91dHB1dEJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBp
eGVsQnVmZmVyUG9vbENyZWF0ZVBpeGVsQnVmZmVyKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fb3V0
cHV0QnVmZmVyUG9vbC5nZXQoKSwgJm91dHB1dEJ1ZmZlcik7Ci0gICAgaWYgKHN0YXR1cykgewot
ICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZl
cnRQaXhlbEJ1ZmZlciwgQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGVQaXhlbEJ1ZmZlciBmYWlsZWQg
d2l0aCBlcnJvciAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CisgICAgYXV0byByZXN1
bHQgPSBjcmVhdGVDVlBpeGVsQnVmZmVyRnJvbVBvb2wobV9vdXRwdXRCdWZmZXJQb29sLmdldCgp
KTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICBSRUxFQVNFX0xPRyhNZWRpYSwgIkltYWdl
VHJhbnNmZXJTZXNzaW9uVlQ6OmNvbnZlcnRQaXhlbEJ1ZmZlciwgY3JlYXRlQ1ZQaXhlbEJ1ZmZl
ckZyb21Qb29sIGZhaWxlZCB3aXRoIGVycm9yICVkIiwgc3RhdGljX2Nhc3Q8aW50PihyZXN1bHQu
ZXJyb3IoKSkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgYXV0byByZXN1
bHQgPSBhZG9wdENGKG91dHB1dEJ1ZmZlcik7CisgICAgYXV0byBvdXRwdXRCdWZmZXIgPSBXVEZN
b3ZlKCpyZXN1bHQpOwogCi0gICAgYXV0byBlcnIgPSBWVFBpeGVsVHJhbnNmZXJTZXNzaW9uVHJh
bnNmZXJJbWFnZShtX3RyYW5zZmVyU2Vzc2lvbi5nZXQoKSwgc291cmNlQnVmZmVyLCBvdXRwdXRC
dWZmZXIpOworICAgIGF1dG8gZXJyID0gVlRQaXhlbFRyYW5zZmVyU2Vzc2lvblRyYW5zZmVySW1h
Z2UobV90cmFuc2ZlclNlc3Npb24uZ2V0KCksIHNvdXJjZUJ1ZmZlciwgb3V0cHV0QnVmZmVyLmdl
dCgpKTsKICAgICBpZiAoZXJyKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVDo6Y29udmVydFBpeGVsQnVmZmVyLCBWVFBpeGVsVHJhbnNmZXJTZXNz
aW9uVHJhbnNmZXJJbWFnZSBmYWlsZWQgd2l0aCBlcnJvciAlZCIsIHN0YXRpY19jYXN0PGludD4o
ZXJyKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIHJldHVybiByZXN1
bHQ7Ci19Ci0KLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lv
blZUOjpjcmVhdGVQaXhlbEJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBzb3VyY2VCdWZmZXIsIGNv
bnN0IEludFNpemUmIHNpemUpCi17Ci0gICAgcmV0dXJuIGNvbnZlcnRQaXhlbEJ1ZmZlcihQQUw6
OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc291cmNlQnVmZmVyKSwgc2l6ZSk7CisgICAg
cmV0dXJuIG91dHB1dEJ1ZmZlcjsKIH0KIAogUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJ
bWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjb252ZXJ0Q01TYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZm
ZXJSZWYgc291cmNlQnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtMTU0LDcgKzEyMiw3
IEBAIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6
Y29udmVydENNU2FtcGxlQnVmZmVyKENNU2FtCiAgICAgaWYgKCFzZXRTaXplKHNpemUpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gY29udmVydGVkUGl4ZWxCdWZmZXIgPSBj
cmVhdGVQaXhlbEJ1ZmZlcihzb3VyY2VCdWZmZXIsIHNpemUpOworICAgIGF1dG8gY29udmVydGVk
UGl4ZWxCdWZmZXIgPSBjb252ZXJ0UGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIsIHNpemUpOwogICAg
IGlmICghY29udmVydGVkUGl4ZWxCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBA
IC0yNjYsODIgKzIzNCwxMSBAQCBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEltYWdlVHJh
bnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZUNNU2FtcGxlQnVmZmVyKENHSW1hZwogCiAjaWYgIVBMQVRG
T1JNKE1BQ0NBVEFMWVNUKQogCi0jaWYgUExBVEZPUk0oTUFDKQotc3RhdGljIGludDMyX3Qgcm91
bmRVcFRvTWFjcm9ibG9ja011bHRpcGxlKGludDMyX3Qgc2l6ZSkKLXsKLSAgICByZXR1cm4gKHNp
emUgKyAxNSkgJiB+MTU7Ci19Ci0jZW5kaWYKLQotQ0ZEaWN0aW9uYXJ5UmVmIEltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ6OmlvU3VyZmFjZVBpeGVsQnVmZmVyQ3JlYXRpb25PcHRpb25zKElPU3VyZmFj
ZVJlZiBzdXJmYWNlKQotewotICAgIGlmIChtX2lvU3VyZmFjZUJ1ZmZlckF0dHJpYnV0ZXMpCi0g
ICAgICAgIHJldHVybiBtX2lvU3VyZmFjZUJ1ZmZlckF0dHJpYnV0ZXMuZ2V0KCk7Ci0KLSAgICBt
X2lvU3VyZmFjZUJ1ZmZlckF0dHJpYnV0ZXMgPSAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKSBA
ewotICAgICAgICAoX19icmlkZ2UgTlNTdHJpbmcgKiljdlBpeGVsRm9ybWF0T3BlbkdMS2V5KCkg
OiBAWUVTLAotICAgIH07Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgYXV0byBmb3JtYXQgPSBJ
T1N1cmZhY2VHZXRQaXhlbEZvcm1hdChzdXJmYWNlKTsKLSAgICBhdXRvIHdpZHRoID0gSU9TdXJm
YWNlR2V0V2lkdGgoc3VyZmFjZSk7Ci0gICAgYXV0byBoZWlnaHQgPSBJT1N1cmZhY2VHZXRIZWln
aHQoc3VyZmFjZSk7Ci0gICAgYXV0byBleHRlbmRlZFJpZ2h0ID0gcm91bmRVcFRvTWFjcm9ibG9j
a011bHRpcGxlKHdpZHRoKSAtIHdpZHRoOwotICAgIGF1dG8gZXh0ZW5kZWRCb3R0b20gPSByb3Vu
ZFVwVG9NYWNyb2Jsb2NrTXVsdGlwbGUoaGVpZ2h0KSAtIGhlaWdodDsKLQotICAgIGlmICgoZm9y
bWF0ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJWaWRlb1JhbmdlIHx8
IGZvcm1hdCA9PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdl
KQotICAgICAgICAmJiAoSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHN1cmZhY2UsIDAp
ID49IHdpZHRoICsgZXh0ZW5kZWRSaWdodCkKLSAgICAgICAgJiYgKElPU3VyZmFjZUdldEJ5dGVz
UGVyUm93T2ZQbGFuZShzdXJmYWNlLCAxKSA+PSB3aWR0aCArIGV4dGVuZGVkUmlnaHQpCi0gICAg
ICAgICYmIChJT1N1cmZhY2VHZXRBbGxvY1NpemUoc3VyZmFjZSkgPj0gKGhlaWdodCArIGV4dGVu
ZGVkQm90dG9tKSAqIElPU3VyZmFjZUdldEJ5dGVzUGVyUm93T2ZQbGFuZShzdXJmYWNlLCAwKSAq
IDMgLyAyKSkgewotICAgICAgICAgICAgbV9pb1N1cmZhY2VCdWZmZXJBdHRyaWJ1dGVzID0gKF9f
YnJpZGdlIENGRGljdGlvbmFyeVJlZikgQHsKLSAgICAgICAgICAgICAgICAoX19icmlkZ2UgTlNT
dHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBhdGliaWxpdHlLZXkgOiBAWUVTLAotICAg
ICAgICAgICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyRXh0ZW5kZWRQ
aXhlbHNSaWdodEtleSA6IEAoZXh0ZW5kZWRSaWdodCksCi0gICAgICAgICAgICAgICAgKF9fYnJp
ZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJFeHRlbmRlZFBpeGVsc0JvdHRvbUtleSA6IEAo
ZXh0ZW5kZWRCb3R0b20pCi0gICAgICAgICAgICB9OwotICAgIH0KLSNlbHNlCi0gICAgVU5VU0VE
X1BBUkFNKHN1cmZhY2UpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gbV9pb1N1cmZhY2VCdWZmZXJB
dHRyaWJ1dGVzLmdldCgpOwotfQotCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gSW1hZ2VU
cmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlUGl4ZWxCdWZmZXIoSU9TdXJmYWNlUmVmIHN1cmZhY2Up
Ci17Ci0gICAgaWYgKCFzdXJmYWNlKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXI7Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVm
ZmVyQ3JlYXRlV2l0aElPU3VyZmFjZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzdXJmYWNlLCBpb1N1
cmZhY2VQaXhlbEJ1ZmZlckNyZWF0aW9uT3B0aW9ucyhzdXJmYWNlKSwgJnBpeGVsQnVmZmVyKTsK
LSAgICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HKE1lZGlhLCAiQ1ZQaXhlbEJ1
ZmZlckNyZWF0ZVdpdGhJT1N1cmZhY2UgZmFpbGVkIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0
aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0g
ICAgcmV0dXJuIGFkb3B0Q0YocGl4ZWxCdWZmZXIpOwotfQotCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1
ZmZlclJlZj4gSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlUGl4ZWxCdWZmZXIoSU9TdXJm
YWNlUmVmIHN1cmZhY2UsIGNvbnN0IEludFNpemUmIHNpemUpCitSZXRhaW5QdHI8Q01TYW1wbGVC
dWZmZXJSZWY+IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNyZWF0ZUNNU2FtcGxlQnVmZmVyKElP
U3VyZmFjZVJlZiBzdXJmYWNlLCBjb25zdCBNZWRpYVRpbWUgJnNhbXBsZVRpbWUsIGNvbnN0IElu
dFNpemUgJnNpemUpCiB7CiAgICAgaWYgKCFzdXJmYWNlIHx8ICFzZXRTaXplKHNpemUpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXI7
Ci0gICAgYXV0byBzdGF0dXMgPSBDVlBpeGVsQnVmZmVyQ3JlYXRlV2l0aElPU3VyZmFjZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBzdXJmYWNlLCBpb1N1cmZhY2VQaXhlbEJ1ZmZlckNyZWF0aW9uT3B0
aW9ucyhzdXJmYWNlKSwgJnBpeGVsQnVmZmVyKTsKLSAgICBpZiAoc3RhdHVzKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HKE1lZGlhLCAiQ1ZQaXhlbEJ1ZmZlckNyZWF0ZVdpdGhJT1N1cmZhY2UgZmFp
bGVkIHdpdGggZXJyb3IgY29kZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHN0YXR1cykpOwotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBhdXRvIHJldGFpbmVkQnVmZmVyID0g
YWRvcHRDRihwaXhlbEJ1ZmZlcik7Ci0gICAgaWYgKG1fc2l6ZSA9PSBJbnRTaXplKENWUGl4ZWxC
dWZmZXJHZXRXaWR0aChwaXhlbEJ1ZmZlciksIENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQocGl4ZWxC
dWZmZXIpKSAmJiBtX3BpeGVsRm9ybWF0ID09IENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5
cGUocGl4ZWxCdWZmZXIpKQotICAgICAgICByZXR1cm4gcmV0YWluZWRCdWZmZXI7Ci0KLSAgICBy
ZXR1cm4gY29udmVydFBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyLCBzaXplKTsKLX0KLQotUmV0YWlu
UHRyPENNU2FtcGxlQnVmZmVyUmVmPiBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOjpjcmVhdGVDTVNh
bXBsZUJ1ZmZlcihJT1N1cmZhY2VSZWYgc3VyZmFjZSwgY29uc3QgTWVkaWFUaW1lJiBzYW1wbGVU
aW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQotewotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBjcmVh
dGVQaXhlbEJ1ZmZlcihzdXJmYWNlLCBzaXplKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gY3Jl
YXRlQ1ZQaXhlbEJ1ZmZlcihzdXJmYWNlKS52YWx1ZV9vcihudWxscHRyKTsKICAgICBpZiAoIXBp
eGVsQnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tCmluZGV4IDUyMWRlN2E5NzRlZWMyMGU5
OTc0YzA4YWQzOWI2Y2VmN2MyMWY3ZTEuLjllY2E2Zjc3YzdmNDQyOWMyNWJhMjZlYWJkZDYxMGQw
MmZiYWIzODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNl
Q29jb2EubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lmIFVTRShMSUJXRUJSVEMpCiAKKyNpbXBv
cnQgIkNWVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYVNh
bXBsZUFWRk9iakMuaCIKICNpbXBvcnQgIlJlYWx0aW1lVmlkZW9VdGlsaXRpZXMuaCIKQEAgLTM5
LDYgKzQwLDcgQEAgQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfQkVHSU4KICNpbXBvcnQgPHdlYnJ0
Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oPgogQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNf
RU5ECiAKKyNpbXBvcnQgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAjaW1wb3J0IDxwYWwvY2YvQ29y
ZU1lZGlhU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTgsMTAgKzEwMCwx
MiBAQCBDVlBpeGVsQnVmZmVyUG9vbFJlZiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2Nv
YTo6cGl4ZWxCdWZmZXJQb29sKHNpemVfdCB3aQogICAgICAgICBjYXNlIHdlYnJ0Yzo6QnVmZmVy
VHlwZTo6STAxMDoKICAgICAgICAgICAgIHBvb2xCdWZmZXJUeXBlID0ga0NWUGl4ZWxGb3JtYXRU
eXBlXzQyMFlwQ2JDcjEwQmlQbGFuYXJWaWRlb1JhbmdlOwogICAgICAgICB9Ci0gICAgICAgIG1f
cGl4ZWxCdWZmZXJQb29sID0gY3JlYXRlUGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQsIHBv
b2xCdWZmZXJUeXBlKTsKLSAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xXaWR0aCA9IHdpZHRoOwot
ICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbEhlaWdodCA9IGhlaWdodDsKLSAgICAgICAgbV9waXhl
bEJ1ZmZlclBvb2xCdWZmZXJUeXBlID0gYnVmZmVyVHlwZTsKKyAgICAgICAgaWYgKGF1dG8gcG9v
bCA9IGNyZWF0ZUlPU3VyZmFjZUNWUGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQsIHBvb2xC
dWZmZXJUeXBlKSkgeworICAgICAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2wgPSBXVEZNb3ZlKCpw
b29sKTsKKyAgICAgICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggPSB3aWR0aDsKKyAgICAg
ICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sSGVpZ2h0ID0gaGVpZ2h0OworICAgICAgICAgICAgbV9w
aXhlbEJ1ZmZlclBvb2xCdWZmZXJUeXBlID0gYnVmZmVyVHlwZTsKKyAgICAgICAgfQogICAgIH0K
ICAgICByZXR1cm4gbV9waXhlbEJ1ZmZlclBvb2wuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0aWxpdGll
cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlk
ZW9VdGlsaXRpZXMuaAppbmRleCA1ZmJhZjVlZGM2NDAyNjE0ZWRhZmQ3YWUxNmRhZTgwYmJiMTdh
OTAyLi4zODBkMzczMWIwYTE1M2FiYjljMjI3MGJmZWU3NjgwZjAzYjNiOGVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVWaWRlb1V0
aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZVZpZGVvVXRpbGl0aWVzLmgKQEAgLTI3LDkgKzI3LDYgQEAKIAogI2luY2x1ZGUgPENv
cmVWaWRlby9Db3JlVmlkZW8uaD4KIAotdXNpbmcgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgPSBzdHJ1
Y3QgX19DVlBpeGVsQnVmZmVyUG9vbCo7Ci11c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3RydWN0
IF9fQ1ZCdWZmZXIqOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUgT1NU
eXBlIHByZWZlcmVkUGl4ZWxCdWZmZXJGb3JtYXQoKQpAQCAtNDEsNyArMzgsNCBAQCBzdGF0aWMg
aW5saW5lIE9TVHlwZSBwcmVmZXJlZFBpeGVsQnVmZmVyRm9ybWF0KCkKICNlbmRpZgogfQogCi1X
RUJDT1JFX0VYUE9SVCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclBvb2xSZWY+IGNyZWF0ZVBpeGVs
QnVmZmVyUG9vbChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIE9TVHlwZSk7Ci1XRUJDT1JF
X0VYUE9SVCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gY3JlYXRlUGl4ZWxCdWZmZXJGcm9t
UG9vbChDVlBpeGVsQnVmZmVyUG9vbFJlZik7Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lVmlkZW9VdGls
aXRpZXMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2MmVjMjc2YjRmMTMxZDcw
MDNmM2YzMjBlMDk3NDZjZDRjZWNjMjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lVmlkZW9VdGlsaXRpZXMubW0KKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSByZXF1aXJlZCB0byBiZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0gKiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCi0gKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSAqIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCi0gKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIlJlYWx0aW1lVmlkZW9VdGls
aXRpZXMuaCIKLQotI2ltcG9ydCAiQ29yZVZpZGVvU29mdExpbmsuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclBvb2xSZWY+IGNyZWF0ZVBpeGVsQnVm
ZmVyUG9vbChzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIE9TVHlwZSB2aWRlb0NhcHR1cmVG
b3JtYXQpCi17Ci0gICAgYXV0byBwaXhlbEF0dHJpYnV0ZXMgPSBAewotICAgICAgICAoX19icmlk
Z2UgTlNTdHJpbmcgKilrQ1ZQaXhlbEJ1ZmZlcldpZHRoS2V5OiBAKHdpZHRoKSwKLSAgICAgICAg
KF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJIZWlnaHRLZXk6IEAoaGVpZ2h0KSwK
LSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5
cGVLZXk6IEAodmlkZW9DYXB0dXJlRm9ybWF0KSwKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5n
ICopa0NWUGl4ZWxCdWZmZXJDR0ltYWdlQ29tcGF0aWJpbGl0eUtleTogQE5PLAotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgICAgIChfX2JyaWRnZSBOU1N0cmluZyAqKWtDVlBpeGVsRm9y
bWF0T3BlbkdMRVNDb21wYXRpYmlsaXR5IDogQFlFUywKLSNlbHNlCi0gICAgICAgIChfX2JyaWRn
ZSBOU1N0cmluZyAqKWtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSA6IEBZRVMs
Ci0jZW5kaWYKLSAgICAgICAgKF9fYnJpZGdlIE5TU3RyaW5nICopa0NWUGl4ZWxCdWZmZXJJT1N1
cmZhY2VQcm9wZXJ0aWVzS2V5IDogQHsgfQotICAgIH07Ci0KLSAgICBDVlBpeGVsQnVmZmVyUG9v
bFJlZiBwb29sID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJQb29s
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIChfX2JyaWRnZSBDRkRpY3Rpb25h
cnlSZWYpcGl4ZWxBdHRyaWJ1dGVzLCAmcG9vbCk7Ci0KLSAgICBpZiAoc3RhdHVzICE9IGtDVlJl
dHVyblN1Y2Nlc3MpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIGFkb3B0
Q0YocG9vbCk7Ci19Ci0KLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBjcmVhdGVQaXhlbEJ1
ZmZlckZyb21Qb29sKENWUGl4ZWxCdWZmZXJQb29sUmVmIHBpeGVsQnVmZmVyUG9vbCkKLXsKLSAg
ICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIHN0YXR1
cyA9IENWUGl4ZWxCdWZmZXJQb29sQ3JlYXRlUGl4ZWxCdWZmZXIoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgcGl4ZWxCdWZmZXJQb29sLCAmcGl4ZWxCdWZmZXIpOwotCi0gICAgaWYgKHN0YXR1cyAhPSBr
Q1ZSZXR1cm5TdWNjZXNzKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gYWRv
cHRDRihwaXhlbEJ1ZmZlcik7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVVUkxSZXNwb25zZS5tbQppbmRleCBkZTNiYjZh
NzA3NjhkYzhhZTU4ZDBjZGViYTBhNDgwYWU4YmZiZWY1Li5jYTY1MGE1NGU0M2U4MmM4ZTQyNGRk
YzNjYmM4NDQ3MmY4NjQ4M2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9XZWJDb3JlVVJMUmVzcG9uc2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVVSTFJlc3BvbnNlLm1tCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8d3RmL0Fzc2Vy
dGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9Tb3J0ZWRB
cnJheU1hcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaAppbmRleCBkOThm
NzJjYTUyYTFmMWMxZWY4YjI5YjhmNzEyMjQyMzVjODE4ZjdhLi5lZWM4ZDY2ZmFhYmFmYjc5OWIw
ZmRlZGM0NTljNGRiNWE3ZjIyZTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5oCkBAIC0zMSw3ICszMSw2IEBACiAj
aW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlJUQ0RlY29kZXJJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiUlRDRW5jb2RlcklkZW50aWZpZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3Jl
L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogCiBuYW1l
c3BhY2UgSVBDIHsKQEAgLTkzLDcgKzkyLDYgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFJUQ0Vu
Y29kZXJJZGVudGlmaWVyLCB3ZWJydGM6OkxvY2FsRW5jb2Rlcj4gbV9lbmNvZGVycyBXVEZfR1VB
UkRFRF9CWV9MT0NLKG1fbG9jayk7IC8vIE9ubHkgbW9kaWZpZWQgb24gdGhlIGxpYldlYlJUQ0Nv
ZGVjc1F1ZXVlIGJ1dCBtYXkgZ2V0IGFjY2Vzc2VkIGZyb20gdGhlIG1haW4gdGhyZWFkLgogCiAg
ICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjc1Byb3h5Lm1tCmluZGV4IDAyZGE1Zjk2MzhkMzJhMGYwNTMxNDZiNDYzMGJhYmExODY5NjBm
YzUuLmUwMmY5YjEwNmMzY2JhZWE1NjkzNzQ5NDNlZDEzMGY2YTRiZDAzNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0K
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94
eS5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCAiTGliV2ViUlRDQ29kZWNzTWVzc2FnZXMu
aCIKICNpbXBvcnQgIkxpYldlYlJUQ0NvZGVjc1Byb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgorI2ltcG9ydCA8V2ViQ29yZS9DVlV0aWxpdGllcy5oPgog
I2ltcG9ydCA8V2ViQ29yZS9MaWJXZWJSVENQcm92aWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9S
ZW1vdGVWaWRlb1NhbXBsZS5oPgogI2ltcG9ydCA8d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RGVj
b2Rlci5oPgpAQCAtMjA3LDEyICsyMDgsMTMgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6
ZW5jb2RlRnJhbWUoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZToKICAg
ICBpZiAoIWVuY29kZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9pbWFnZVRyYW5z
ZmVyU2Vzc2lvbiB8fCBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uLT5waXhlbEZvcm1hdCgpICE9IHNh
bXBsZS52aWRlb0Zvcm1hdCgpKQotICAgICAgICBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uID0gV2Vi
Q29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVDo6Y3JlYXRlKHNhbXBsZS52aWRlb0Zvcm1hdCgp
KTsKLQogI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0g
bV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+Y3JlYXRlUGl4ZWxCdWZmZXIoc2FtcGxlLnN1cmZhY2Uo
KSk7Ci0gICAgd2VicnRjOjplbmNvZGVMb2NhbEVuY29kZXJGcmFtZShlbmNvZGVyLCBwaXhlbEJ1
ZmZlci5nZXQoKSwgc2FtcGxlLnRpbWUoKS50b1RpbWVTY2FsZSgxMDAwMDAwKS50aW1lVmFsdWUo
KSwgdGltZVN0YW1wLCB0b1dlYlJUQ1ZpZGVvUm90YXRpb24oc2FtcGxlLnJvdGF0aW9uKCkpLCBz
aG91bGRFbmNvZGVBc0tleUZyYW1lKTsKKyAgICBpZiAoIXNhbXBsZS5zdXJmYWNlKCkpCisgICAg
ICAgIHJldHVybjsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gV2ViQ29yZTo6Y3JlYXRlQ1ZQaXhl
bEJ1ZmZlcihzYW1wbGUuc3VyZmFjZSgpKTsKKyAgICBpZiAoIXBpeGVsQnVmZmVyKQorICAgICAg
ICByZXR1cm47CisgICAgd2VicnRjOjplbmNvZGVMb2NhbEVuY29kZXJGcmFtZShlbmNvZGVyLCBw
aXhlbEJ1ZmZlci0+Z2V0KCksIHNhbXBsZS50aW1lKCkudG9UaW1lU2NhbGUoMTAwMDAwMCkudGlt
ZVZhbHVlKCksIHRpbWVTdGFtcCwgdG9XZWJSVENWaWRlb1JvdGF0aW9uKHNhbXBsZS5yb3RhdGlv
bigpKSwgc2hvdWxkRW5jb2RlQXNLZXlGcmFtZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAK
aW5kZXggNWM0NTkxY2Y5NjI5ZGNhZDY0OTRkZjgxMmI0ZDg5ZGI5NWM0MWViMy4uZDg1YTE4MmEz
MTE4MjBkNDJkODJhOTJlMDg3OGNjMjA0Yzk4ZmRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0zMyw5
ICszMyw5IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0NWVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJX
ZWJSVENNYWNyb3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVWaWRlb1V0aWxpdGllcy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZQOVV0aWxpdGllc0Nv
Y29hLmg+CkBAIC0zMzIsMTUgKzMzMiw5IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0
ZWREZWNvZGluZyhSVENEZWNvZGVySWRlbnRpZmllciBkZWNvZGVySWRlbnRpZmllciwKICAgICBp
ZiAoIWRlY29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAoIW1faW1hZ2VUcmFuc2ZlclNlc3Npb24gfHwgbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbi0+
cGl4ZWxGb3JtYXQoKSAhPSByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSkKLSAgICAgICAgbV9p
bWFnZVRyYW5zZmVyU2Vzc2lvbiA9IFdlYkNvcmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ6OmNy
ZWF0ZShyZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQoKSk7Ci0KLSAgICBpZiAoIW1faW1hZ2VUcmFu
c2ZlclNlc3Npb24pIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgaWYgKCFy
ZW1vdGVTYW1wbGUuc3VyZmFjZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0
byBwaXhlbEJ1ZmZlciA9IG1faW1hZ2VUcmFuc2ZlclNlc3Npb24tPmNyZWF0ZVBpeGVsQnVmZmVy
KHJlbW90ZVNhbXBsZS5zdXJmYWNlKCksIHJlbW90ZVNhbXBsZS5zaXplKCkpOworICAgIGF1dG8g
cGl4ZWxCdWZmZXIgPSBjcmVhdGVDVlBpeGVsQnVmZmVyKHJlbW90ZVNhbXBsZS5zdXJmYWNlKCkp
LnZhbHVlX29yKG51bGxwdHIpOwogICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTQ0NCw3ICs0MzgsNyBAQCBp
bnQzMl90IExpYldlYlJUQ0NvZGVjczo6ZW5jb2RlRnJhbWUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3Qgd2VicnRjOjpWaWRlb0ZyYW1lJgogICAgICAgICBpZiAoIXBpeGVsQnVmZmVyUG9vbCkKICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgICAgIHJldHVybiBXZWJDb3JlOjpjcmVh
dGVQaXhlbEJ1ZmZlckZyb21Qb29sKHBpeGVsQnVmZmVyUG9vbCkubGVha1JlZigpOworICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6Y3JlYXRlQ1ZQaXhlbEJ1ZmZlckZyb21Qb29sKHBpeGVsQnVmZmVy
UG9vbCkudmFsdWVfb3IobnVsbHB0cikubGVha1JlZigpOwogICAgIH0pKTsKIAogICAgIGlmICgh
cGl4ZWxCdWZmZXIpCkBAIC01MDMsOSArNDk3LDE0IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpj
b21wbGV0ZWRFbmNvZGluZyhSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OkRh
CiBDVlBpeGVsQnVmZmVyUG9vbFJlZiBMaWJXZWJSVENDb2RlY3M6OnBpeGVsQnVmZmVyUG9vbChz
aXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQsIE9TVHlwZSB0eXBlKQogewogICAgIGlmICghbV9w
aXhlbEJ1ZmZlclBvb2wgfHwgbV9waXhlbEJ1ZmZlclBvb2xXaWR0aCAhPSB3aWR0aCB8fCBtX3Bp
eGVsQnVmZmVyUG9vbEhlaWdodCAhPSBoZWlnaHQpIHsKLSAgICAgICAgbV9waXhlbEJ1ZmZlclBv
b2wgPSBjcmVhdGVQaXhlbEJ1ZmZlclBvb2wod2lkdGgsIGhlaWdodCwgdHlwZSk7Ci0gICAgICAg
IG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggPSB3aWR0aDsKLSAgICAgICAgbV9waXhlbEJ1ZmZlclBv
b2xIZWlnaHQgPSBoZWlnaHQ7CisgICAgICAgIG1fcGl4ZWxCdWZmZXJQb29sID0gbnVsbHB0cjsK
KyAgICAgICAgbV9waXhlbEJ1ZmZlclBvb2xXaWR0aCA9IDA7CisgICAgICAgIG1fcGl4ZWxCdWZm
ZXJQb29sSGVpZ2h0ID0gMDsKKyAgICAgICAgaWYgKGF1dG8gcG9vbCA9IFdlYkNvcmU6OmNyZWF0
ZUlPU3VyZmFjZUNWUGl4ZWxCdWZmZXJQb29sKHdpZHRoLCBoZWlnaHQsIHR5cGUpKSB7CisgICAg
ICAgICAgICBtX3BpeGVsQnVmZmVyUG9vbCA9IFdURk1vdmUoKnBvb2wpOworICAgICAgICAgICAg
bV9waXhlbEJ1ZmZlclBvb2xXaWR0aCA9IHdpZHRoOworICAgICAgICAgICAgbV9waXhlbEJ1ZmZl
clBvb2xIZWlnaHQgPSBoZWlnaHQ7CisgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIG1fcGl4
ZWxCdWZmZXJQb29sLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaAppbmRleCBlYmU2MjNjYmQ3YjdhODVkMjg5
ZTZhYzgyZDMxOTVkNmJlMTM1ZmJjLi40MDgzM2UwMzBlZjViMGVlODk0ZDdmNDRiZTk4Y2Q2Nzk4
MWY0YTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3MuaApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlci5oIgogI2luY2x1ZGUgIlJUQ0RlY29kZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
UlRDRW5jb2RlcklkZW50aWZpZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaD4K
ICNpbmNsdWRlIDxtYXA+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190
eXBlLmg+CkBAIC0xNDksNyArMTQ4LDYgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8RnVuY3Rpb248
dm9pZCgpPj4gbV90YXNrc1RvRGlzcGF0Y2hBZnRlckVzdGFibGlzaGluZ0Nvbm5lY3Rpb247CiAK
ICAgICBSZWY8V29ya1F1ZXVlPiBtX3F1ZXVlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWPiBtX3BpeGVsQnVm
ZmVyQ29uZm9ybWVyOwogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUG9vbFJlZj4gbV9waXhl
bEJ1ZmZlclBvb2w7CiAgICAgc2l6ZV90IG1fcGl4ZWxCdWZmZXJQb29sV2lkdGggeyAwIH07Cg==
</data>
<flag name="commit-queue"
          id="462731"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>