<?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>235233</bug_id>
          
          <creation_ts>2022-01-14 08:25:53 -0800</creation_ts>
          <short_desc>Implement WebGL GPU buffer texture upload path for Cocoa getUserMedia camera streams</short_desc>
          <delta_ts>2022-01-21 01:14:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=235396</see_also>
          <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>235352</blocked>
    
    <blocked>232727</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>annulen</cc>
    
    <cc>dino</cc>
    
    <cc>dpino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</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>1830917</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-14 08:25:53 -0800</bug_when>
    <thetext>Implement WebGL GPU buffer texture upload path for Cocoa getUserMedia camera streams</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830919</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-14 08:26:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/87601762&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831636</commentid>
    <comment_count>2</comment_count>
      <attachid>449368</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-18 01:11:03 -0800</bug_when>
    <thetext>Created attachment 449368
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831637</commentid>
    <comment_count>3</comment_count>
      <attachid>449369</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-18 01:27:55 -0800</bug_when>
    <thetext>Created attachment 449369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831660</commentid>
    <comment_count>4</comment_count>
      <attachid>449381</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-18 06:11:57 -0800</bug_when>
    <thetext>Created attachment 449381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831665</commentid>
    <comment_count>5</comment_count>
      <attachid>449385</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-18 06:57:25 -0800</bug_when>
    <thetext>Created attachment 449385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831669</commentid>
    <comment_count>6</comment_count>
      <attachid>449385</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-01-18 07:21:57 -0800</bug_when>
    <thetext>Comment on attachment 449385
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Make full texture uploads from MSE camera captures use CVPixelBuffers

s/MSE/MediaStream</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831756</commentid>
    <comment_count>7</comment_count>
      <attachid>449407</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-18 11:54:30 -0800</bug_when>
    <thetext>Created attachment 449407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831953</commentid>
    <comment_count>8</comment_count>
      <attachid>449468</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-18 23:39:34 -0800</bug_when>
    <thetext>Created attachment 449468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831973</commentid>
    <comment_count>9</comment_count>
      <attachid>449471</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-19 02:58:31 -0800</bug_when>
    <thetext>Created attachment 449471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831986</commentid>
    <comment_count>10</comment_count>
      <attachid>449474</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-19 04:37:13 -0800</bug_when>
    <thetext>Created attachment 449474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831991</commentid>
    <comment_count>11</comment_count>
      <attachid>449476</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-19 05:05:34 -0800</bug_when>
    <thetext>Created attachment 449476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832039</commentid>
    <comment_count>12</comment_count>
      <attachid>449476</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-19 08:45:05 -0800</bug_when>
    <thetext>Comment on attachment 449476
Patch

Direction looks good to me though I do not see why introduce a new frame structure.
To limit the size of the patch, we could also think of introducing a rotation getter that we would only implement for MediaPlayerPrivateMediaStreamAVFObjC.

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        with a rotation or a flip.

Why not using a MediaSample which is already the structure we use for MediaStream?
Creating a MediaSample from a CVPixelBuffer is done via MediaSampleAVFObjC::createImageSample(RetainPtr&lt;CVPixelBufferRef&gt;&amp;&amp;, VideoRotation, bool mirrored);

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:145
&gt; +    std::optional&lt;MediaPlayerVideoFrame&gt; videoFrameForCurrentTime() override;

Should be final probably.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832096</commentid>
    <comment_count>13</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-19 11:15:59 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #12)
&gt; Comment on attachment 449476 [details]
&gt; Direction looks good to me though I do not see why introduce a new frame
&gt; structure.
&gt; To limit the size of the patch, we could also think of introducing a
&gt; rotation getter that we would only implement for
&gt; MediaPlayerPrivateMediaStreamAVFObjC.

So the raw video frame does not make sense without the orientation transform.
This means it does not make sense to say &quot;pixelBufferForCurrentFrame()&quot; as you cannot use it correctly for anything.

It also does not make sense to think that it somehow limits to MediaPlayerPrivateMediaStreamAVFObjC. Also MediaPlayerPrivateAVFoundationObjC does rotate the pixel buffer for no good reason from WebGL perspective. This is problematic for GPUP as this causes more memory pressure (and currently the extra pixel buffer is unattributed). So maybe this rotation is moved from pixel buffer generation to cgimage generation phase.
 
&gt; Why not using a MediaSample which is already the structure we use for
&gt; MediaStream?

So instead of:
std::optional&lt;MediaPlayerVideoFrame&gt; MediaPlayerPrivateInterface::videoFrameForCurrentTime();

We would have:
RefPtr&lt;MediaSample&gt; MediaPlayerPrivateInterface::mediaSampleForCurrentTime()?

It&apos;s a bit counterproductive to wrap each CVPixelBufferRef to CMSampleBufferRef via CMSampleBufferCreateReadyWithImageBuffer. OTOH, maybe some day it we can get it directly also from the normal video file decoding process in GPUP?
I can of course try it..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832368</commentid>
    <comment_count>14</comment_count>
      <attachid>449476</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-20 00:32:01 -0800</bug_when>
    <thetext>Comment on attachment 449476
Patch

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

&gt; Source/WebCore/platform/graphics/cv/GraphicsContextGLCV.h:43
&gt; +    virtual bool copyVideoFrameToTexture(MediaPlayerVideoFrame&amp;, PlatformGLObject outputTexture, GCGLint level, GCGLenum internalFormat, GCGLenum format, GCGLenum type, FlipY) = 0;

Should probably be const&amp; if we keep passing a MediaPlayerVideoFrame.

&gt; Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:285
&gt; +    completionHandler(contextCV-&gt;copyVideoFrameToTexture(*videoFrame, texture, level, internalFormat, format, type, GraphicsContextGL::FlipY(flipY)));

We could directly pass the pixel buffer and rotation here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832370</commentid>
    <comment_count>15</comment_count>
      <attachid>449476</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-20 00:34:56 -0800</bug_when>
    <thetext>Comment on attachment 449476
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:2633
&gt; +    return MediaPlayerVideoFrame { RetainPtr { m_lastPixelBuffer }, ImageOrientation::None };

Do we need the RetainPtr here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832373</commentid>
    <comment_count>16</comment_count>
      <attachid>449476</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-20 01:00:25 -0800</bug_when>
    <thetext>Comment on attachment 449476
Patch

Thinking a bit more, MediaSample is probably too heavyweight.
Using a more lightweight structure seems fine but we might want to rationalise all these video frame objects at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832382</commentid>
    <comment_count>17</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-20 02:35:20 -0800</bug_when>
    <thetext>@Philn, any idea why gtk is not happy with the new test.
Are there known issues with mock rotation?
Looking at the test expectations, I do not see anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832383</commentid>
    <comment_count>18</comment_count>
      <attachid>449560</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-20 02:49:36 -0800</bug_when>
    <thetext>Created attachment 449560
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832497</commentid>
    <comment_count>19</comment_count>
      <attachid>449595</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-01-20 11:08:12 -0800</bug_when>
    <thetext>Created attachment 449595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832538</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-20 12:49:54 -0800</bug_when>
    <thetext>Committed r288315 (246231@main): &lt;https://commits.webkit.org/246231@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449595.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832699</commentid>
    <comment_count>21</comment_count>
      <attachid>449595</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-01-21 00:27:54 -0800</bug_when>
    <thetext>Comment on attachment 449595
Patch

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

&gt; LayoutTests/platform/gtk/TestExpectations:215
&gt; +# setMockCameraOrientation seems to fail.
&gt; +webkit.org/b/235396 fast/mediastream/getUserMedia-to-canvas-1.html [ Failure ]
&gt; +webkit.org/b/235396 fast/mediastream/getUserMedia-to-canvas-2.html [ Failure ]

Can you move this to the glib TestExpectations please? That&apos;s the common place for WPE and GTK.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449368</attachid>
            <date>2022-01-18 01:11:03 -0800</date>
            <delta_ts>2022-01-18 02:02:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235233-20220118111101.patch</filename>
            <type>text/plain</type>
            <size>61963</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAwODliMmFlOGM0YTE0
ZGNmNGYwYTFlZjc4ZTE5ZjQ4ZmNiMjU0NC4uNDY5NGE3YTc1NDBjOTUxYTQxOTAzYjhlOWYwYWYy
ZDA3NGEzNDI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIyLTAxLTE3ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdl
YkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlh
IGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NjAxNzYyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgZnVsbCB0ZXh0
dXJlIHVwbG9hZHMgZnJvbSBNU0UgY2FtZXJhIGNhcHR1cmVzIHVzZSBDVlBpeGVsQnVmZmVycwor
ICAgICAgICBpbnN0ZWFkIG9mIHJlYWRpbmcgdGhlIHBpeGVscyBiYWNrLgorICAgICAgICBJbXBs
ZW1lbnQgTWVkaWFQbGF5ZXJJbnRlcmZhY2U6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKSBm
b3IKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLgorICAgICAg
ICBSZW5hbWUgZnVuY3Rpb25zIGZyb20gcGl4ZWxCdWZmZXIuLi4gdG8gdmlkZW9GcmFtZS4KKyAg
ICAgICAgVXNlIG5ldyB0eXBlIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBpbnN0ZWFkIG9mIENWUGl4
ZWxCdWZmZXIuCisgICAgICAgIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBjb250YWlucyBhbHNvIHRo
ZSBmcmFtZSBvcmllbnRhdGlvbi4gVGhlCisgICAgICAgIG9yaWVudGF0aW9uIGlzIG5lZWRlZCBh
cyB0aGUgY2FtZXJhIG1pZ2h0IGNhcHR1cmUgdGhlIGltYWdlCisgICAgICAgIHdpdGggYSByb3Rh
dGlvbiBvciBhIGZsaXAuCisKKyAgICAgICAgVG8gYXZvaWQgaWZkZWZzLCB0aGUgbmV3IEFQSSB2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgZXhpc3RzCisgICAgICAgIGZvciBhbGwgcGxhdGZvcm1z
LCBidXQgaXMgY3VycmVudGx5IGNhbGxlZCBvbmx5IGJ5IENvY29hLgorICAgICAgICBBbHNvIHRo
ZSB0eXBlIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBleGlzdHMgZm9yIGFsbCBwbGF0Zm9ybXMKKyAg
ICAgICAgYnV0IGhhcyB0aGUgZnJhbWUgY29udGVudHMgaW1wbGVtZW50YXRpb24gb25seSBmb3Ig
Q29jb2EuCisKKyAgICAgICAgVGVzdGVkIGJ5IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlh
LXRvLWNhbnZhcy5odG1sCisKKyAgICAgICAgQ3VycmVudGx5IHRoZSAibWlycm9yZWQiIHBhcnQg
aXMgdGVzdGVkIG1hbnVhbGx5LCBXZWJLaXQKKyAgICAgICAgZG9lcyBub3QgcmVxdWVzdCBtaXJy
b3JlZCBjYW1lcmEgaW1hZ2Ugc28gaXQgaXMgZGVhZCBjb2RlLgorCisgICAgICAgICogSGVhZGVy
cy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6dmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpwaXhlbEJ1
ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
Ojpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpwaXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclZpZGVvRnJhbWUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclZpZGVvRnJhbWU6Om9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyVmlkZW9GcmFtZTo6cGl4ZWxCdWZmZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lQVZGLm1tOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRl
eHRHTENWLmguCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU6Ok1lZGlh
UGxheWVyVmlkZW9GcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwaXhl
bEJ1ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjp2
aWRlb09yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRleHR1cmVGcm9tTWVkaWEp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpHcmFwaGlj
c0NvbnRleHRHTENWQ29jb2EpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xD
VkNvY29hOjpjb3B5VmlkZW9GcmFtZVRvVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29h
Lmg6CisKIDIwMjItMDEtMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6cmVzZXQgc2hvdWxkIGhv
cCB0byB0aGUgbWFpbiB0aHJlYWQgYmVmb3JlIGNhbGxpbmcgaXRzIG9ic2VydmVycwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA3OTM1NWI5Mzk1NmUwMzQ1NGMxNjZjYTVjZDNjZjkzM2EyMTVhYjI1Li40ZDVmYzE0MjI1
YjkwOTQyNzJkYWJiODhiNzg4Y2ZhNjAzM2RlMzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBA
CisyMDIyLTAxLTE3ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IFdlYkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0aCBmb3Ig
Q29jb2EgZ2V0VXNlck1lZGlhIGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg3NjAxNzYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbmFtZSBmdW5jdGlvbnMgZnJvbSBwaXhlbEJ1ZmZlci4uLiB0byB2aWRlb0ZyYW1lLgor
ICAgICAgICBTZW5kIG5ldyB0eXBlIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBpbnN0ZWFkIG9mIENW
UGl4ZWxCdWZmZXIuCisgICAgICAgIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBjb250YWlucyBhbHNv
IHRoZSBmcmFtZSBvcmllbnRhdGlvbi4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cGl4
ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBpeGVsQnVm
ZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWUpOiBEZWxldGVkLgorCiAyMDIyLTAxLTE3ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbR1RLXSBJbXBsZW1lbnQgZm9ybSB2YWxpZGF0aW9uIHdpdGgg
Z3RrMyB3aWRnZXRzIGluIHRoZSBVSSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA4ODkw
ZjhkYmE0NzRjMzkyYzM3MzI5OGRhNzU4MGY3MTljZTVjM2RlLi43OGU3YmM5MTI2NzI2MjU5NTQ4
MWE5Mjg1MjRlOTgwZmJhNTQzODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE1MTEsNiArMTUx
MSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllckVudW1zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllcklkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNvdXJjZVByaXZhdGUuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFVc2FnZUluZm8uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMmMzYjRmODFhNTJm
NTY2OTljYmZkNDEyZGZhYzA5NDM2NjZhZWFlNy4uZGQxZWQ4YWU2MmYyYTRiMmU2M2QxZWQxOTM1
MTU5OGZlZTBkYmNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yOTYsNiArMjk2LDcg
QEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNr
UHJpdmF0ZUFWRi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWJhY2tUYXJnZXRDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXllclZpZGVvRnJhbWVBVkYubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIw
ODFiNmExOWQzZGQ1ZmI2N2ZiMTZlN2JmYTljNzU4NmZmOWYxYWQuLmYzYjFkOGQ3Njk2MTQ5OWNk
MTU0MWE4ZWM5ZDUxMjQ5MTFkMDM4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI0MCw2ICsyNDAsNyBAQAogCQkwODFFQkYz
QjBGRDM0RjQxMDBEQTc1NTkgLyogU1ZHRmlsdGVyQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDgxRUJGMzkwRkQzNEY0MTAwREE3NTU5IC8q
IFNWR0ZpbHRlckJ1aWxkZXIuaCAqLzsgfTsKIAkJMDgzREFFQTcwRjAxQTdGQjAwMzQyNzU0IC8q
IFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODNEQUVBMzBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmUuaCAqLzsgfTsKIAkJMDgzREFFQTkwRjAxQTdGQjAwMzQyNzU0IC8q
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDgzREFFQTUwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5oICovOyB9OworCQkwODQ0QjAxRDEyNTVCNEU2MDBCOUNERDAg
LyogU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDg0NEIwMUQxMjU1RTRFNjAwQjlDREQwIC8qIFNWR0JvdW5k
aW5nQm94Q29tcHV0YXRpb24uaCAqLzsgfTsKIAkJMDg0NTY4MDgxMkI5MERBNjAwOTYwQTlGIC8q
IEZvbnRNZXRyaWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwODQ1NjgwNzEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwODU0QjAxNTEyNTVFNEU2
MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODU0QjAwMzEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZH
SW5saW5lLmggKi87IH07CiAJCTA4NTRCMDE3MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJ
bmxpbmVUZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwODU0QjAwNTEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lVGV4dC5oICovOyB9
OwpAQCAtMjM5MSw2ICsyMzkyLDcgQEAKIAkJN0FGOUIyMEYxOENGQjVGNDAwQzY0QkVGIC8qIEpT
VlRUUmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0FGOUIyMEIxOENGQjVGMzAwQzY0QkVGIC8qIEpTVlRUUmVnaW9uTGlzdC5oICovOyB9
OwogCQk3QjEwMzM5RTI1NDk3MjE3MDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IxMDMzOUQyNTQ5
NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjEwMzM5RjI1NDk3MjFFMDBDOEMxQUMg
LyogR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3ND
b250ZXh0R0xDVkNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJN0I0NDEwRTEyNzk1OEZDNTAwMEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9G
cmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I0
NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNjA5NEREMjcwQzQ0
QkQwMDY0ODM1QyAvKiBBTkdMRVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEFOR0xFVXRp
bGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNl
U3dhcENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VT
d2FwQ2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3QjcyMEIwQzI3NDNEQkE3MDAwOEFCRUQgLyogR3JhcGhpY3NMYXllckNvbnRlbnRzRGlz
cGxheURlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QjcyMEIwQTI3NDNEQkE2MDAwOEFCRUQgLyogR3JhcGhpY3NMYXllckNvbnRlbnRzRGlz
cGxheURlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTQ2MzYsOCArNDYzOCw4IEBACiAJCUNERjc0N0YxMjcwRjc2NkYwMDhGRUVFQyAv
KiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0N0YwMjcwRjc2NkYwMDhGRUVFQyAvKiBSZW5k
ZXJTVkdSZXNvdXJjZU1hcmtlcklubGluZXMuaCAqLzsgfTsKIAkJQ0RGNzQ3RjMyNzBGNzZDRjAw
OEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnRJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDdGMjI3MEY3NkNG
MDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMuaCAqLzsg
fTsKIAkJQ0RGNzQ3RjUyNzBGODNCMTAwOEZFRUVDIC8qIFJlbmRlclNWR0dyYWRpZW50U3RvcElu
bGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
Rjc0N0Y0MjcwRjgzQjEwMDhGRUVFQyAvKiBSZW5kZXJTVkdHcmFkaWVudFN0b3BJbmxpbmVzLmgg
Ki87IH07Ci0JCUNERjc0N0Y3MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFw
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERjc0N0Y2MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMu
aCAqLzsgfTsKIAkJQ0RGNzQ3RjcyNzBGODNCNDEwN0RFRUVDIC8qIFJlbmRlclNWR1NoYXBlSW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RG
NzQ3RjYyNzBGODNCNDEwN0RFRUVDIC8qIFJlbmRlclNWR1NoYXBlSW5saW5lcy5oICovOyB9Owor
CQlDREY3NDdGNzI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDdG
NjI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmggKi87IH07
CiAJCUNERjc0N0Y5MjcwRjg3Q0IwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdy
YWRpZW50SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RGNzQ3RjgyNzBGODdDQjAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlUmFkaWFs
R3JhZGllbnRJbmxpbmVzLmggKi87IH07CiAJCUNERjc0N0ZCMjcwRjg5MUEwMDhGRUVFQyAvKiBS
ZW5kZXJTVkdSZXNvdXJjZU1hc2tlcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0N0ZBMjcwRjg5MUEwMDhGRUVFQyAvKiBSZW5kZXJT
VkdSZXNvdXJjZU1hc2tlcklubGluZXMuaCAqLzsgfTsKIAkJQ0RGNzQ4M0YxOEZFQkNFQzAwMDZF
Q0MwIC8qIEdyaWRQb3NpdGlvbnNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ4M0QxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRQb3Np
dGlvbnNSZXNvbHZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC02MTk4LDEwICs2MjAwLDEyIEBACiAJCTA4MUFBOEQ5MTExMTIzN0UwMDJBQjA2
RSAvKiBTVkdFbGVtZW50UmFyZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHRWxlbWVudFJhcmVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4
MUVCRjM4MEZEMzRGNDEwMERBNzU1OSAvKiBTVkdGaWx0ZXJCdWlsZGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0ZpbHRlckJ1aWxkZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwODFFQkYzOTBGRDM0RjQxMDBEQTc1NTkgLyogU1ZHRmls
dGVyQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdGaWx0ZXJC
dWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4MzRCMDBDMTI0NEU0RTYw
MEI5Q0REMCAvKiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODNEQUVBMjBGMDFBN0ZCMDAzNDI3NTQgLyogUmVu
ZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwODNEQUVBMzBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRy
b2xNdWx0aUxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgzREFF
QTQwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODNEQUVBNTBGMDFBN0ZC
MDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwODQ0QjAxRDEyNTVFNEU2MDBCOUNERDAgLyogU1ZHQm91
bmRpbmdCb3hDb21wdXRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA4NDU2ODA3MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBGb250TWV0cmljcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwODU0QjAwMjEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR0lubGluZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NTRCMDAzMTI1NUU0RTYwMEI5Q0REMCAv
KiBSZW5kZXJTVkdJbmxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyU1ZHSW5saW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTQ2OSw2ICsx
MTQ3Myw4IEBACiAJCTdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBH
cmFwaGljc0NvbnRleHRHTENWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1Yu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxNjE5MTAyNzE5ODgwRTAwQzQwRUFD
IC8qIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdCNDQxMERGMjc5NThGQzQwMDBCNEY4QSAvKiBNZWRpYVBsYXllclZp
ZGVvRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJW
aWRlb0ZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCNDQxMEUyMjc5NThG
REUwMDBCNEY4QSAvKiBNZWRpYVBsYXllclZpZGVvRnJhbWVBVkYubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBNZWRpYVBsYXllclZpZGVvRnJhbWVBVkYubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdCNkRDODE1MjU3MTJFOTEwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElP
U3VyZmFjZVN3YXBDaGFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdCNkRDODE3MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRl
eHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QjcyMEIwQTI3NDNEQkE2MDAwOEFCRUQgLyogR3JhcGhpY3NMYXllckNv
bnRlbnRzRGlzcGxheURlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTM0MDcsOSArMTM0MTMsOSBAQAogCQlBMTBCQjU4MzE0ODRFM0E3MDBC
MkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZHUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMZWdhY3lSZW5kZXJTVkdSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUExMEJCNTgzMTQ4NEUzQTcwMEIzQUI2RCAvKiBSZW5kZXJTVkdSZWN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1JlY3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTEwQkI1ODgxNDg0RTNCMzAwQjJFODdBIC8qIExlZ2FjeVJlbmRlclNW
R1NoYXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlZ2FjeVJl
bmRlclNWR1NoYXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTEwQ0M1ODgx
NDczRTNCMzAwQjJBOEJGIC8qIFJlbmRlclNWR1NoYXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEwQkI1ODkxNDg0RTNCMzAwQjJFODdBIC8qIExlZ2FjeVJlbmRlclNWR1No
YXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1No
YXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg5MTQ4NEUzQjMwMEMz
Rjc3QiAvKiBSZW5kZXJTVkdTaGFwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW5kZXJTVkdTaGFwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTBDQzU4
ODE0NzNFM0IzMDBCMkE4QkYgLyogUmVuZGVyU1ZHU2hhcGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMTBENkU5NDIxNDRDOTk4MDBGREQxNEQgLyogSlNQYXltZW50UmVzcG9u
c2VDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQYXltZW50UmVzcG9uc2VDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBEQkY0NjE4RjkyMzE3MDAwRDcw
QzYgLyogTGVnYWN5UHJldmlld0xvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExMERDNzY4MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlR3JpZERhdGEuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYzMTEsOCArMTYzMTcsOCBAQAogCQlD
REY3NDdGMDI3MEY3NjZGMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXJJbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGMjI3MEY3NkNGMDA4RkVFRUMgLyogUmVu
ZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RGNzQ3RjQyNzBGODNCMTAwOEZFRUVDIC8qIFJlbmRlclNWR0dyYWRpZW50
U3RvcElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHR3JhZGllbnRTdG9wSW5saW5l
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDREY3NDdGNjI3MEY4NkE0MDA4RkVF
RUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2Fj
eVJlbmRlclNWR1NoYXBlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REY3NDdGNjI3MEY4M0I0MTA3REVFRUMgLyogUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDREY3NDdGNjI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJ
bmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1NoYXBlSW5saW5lcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGODI3MEY4N0NCMDA4RkVFRUMgLyog
UmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0RGNzQ3RkEyNzBGODkxQTAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291
cmNlTWFza2VySW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tl
cklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNzQ4M0MxOEZFQkNF
QzAwMDZFQ0MwIC8qIEdyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTg2ODEsNiArMTg2ODcsNyBAQAogCQkwNzZGMEQwODEyQjgx
OTI3MDBDMjZBQTQgLyogYXZmb3VuZGF0aW9uICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQk3QjQ0MTBFMjI3OTU4RkRFMDAwQjRGOEEgLyogTWVkaWFQbGF5
ZXJWaWRlb0ZyYW1lQVZGLm1tICovLAogCQkJCURGOUFGRDZGMTNGQzMxQjAwMDE1RkVCNyAvKiBv
YmpjICovLAogCQkJCUNEOEE3QkJBMTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQy5oICovLAogCQkJCUNEOEE3QkI5MTk3NzM1RkUwMENCRDY0MyAvKiBBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5tbSAqLywKQEAgLTI4NzA3LDYgKzI4NzE0LDcgQEAKIAkJQjJB
MDE1OTEwQUY2Q0Q1MzAwNkJDRTBFIC8qIGdyYXBoaWNzICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVk
aWFQbGF5ZXJWaWRlb0ZyYW1lLmggKi8sCiAJCQkJNkUyN0YyNDEyMjk4Q0UyRTAwRjFGNjMyIC8q
IGFuZ2xlICovLAogCQkJCTA3NkYwRDA4MTJCODE5MjcwMEMyNkFBNCAvKiBhdmZvdW5kYXRpb24g
Ki8sCiAJCQkJNDk5QjNFQzAxMjhDQ0MxODAwRTcyNkMyIC8qIGNhICovLApAQCAtMzU2NDQsNiAr
MzU2NTIsNyBAQAogCQkJCTI0RDkxMjk2MTNDQTk1NjEwMEQyMTkxNSAvKiBKU1NWR0FsdEdseXBo
SXRlbUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjJGNjk5MEFCNzcxOTUwMDIyRUZB
RCAvKiBKU1NWR0FuZ2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0QzNzBBQjc1QTZGMDAw
RTVBQzQgLyogSlNTVkdBbmltYXRlQ29sb3JFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3
QjQ0MTBFMTI3OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMkZBM0QzOTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdBbmltYXRlZEFu
Z2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0QzQjBBQjc1QTZGMDAwRTVBQzQgLyogSlNT
VkdBbmltYXRlZEJvb2xlYW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRDNEMEFCNzVBNkYw
MDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVkRW51bWVyYXRpb24uaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4
IGMxMjgxYTQ0NmIxNTY1OTA5YjMxNDRhNzgyYzk5NzhlZTkwODlmZTIuLjc3NDc2OGUyYzE5Mjc2
MWY4MGE4NTZkYTkyZTJhZjZhODhkODdmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTEwNjIsMTUgKzEwNjIsMTMgQEAgYm9v
bCBNZWRpYVBsYXllcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNz
Q29udGV4dEdMKiBjb250ZXh0LAogICAgIHJldHVybiBtX3ByaXZhdGUtPmNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZShjb250ZXh0LCB0ZXh0dXJlLCB0YXJnZXQsIGxldmVsLCBpbnRl
cm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVtdWx0aXBseUFscGhhLCBmbGlwWSk7CiB9CiAK
LSNlbHNlCisjZW5kaWYKIAotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVy
OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKK3N0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJW
aWRlb0ZyYW1lPiBNZWRpYVBsYXllcjo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKLSAg
ICByZXR1cm4gbV9wcml2YXRlLT5waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCk7CisgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiB9CiAKLSNlbmRpZgot
CiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxheWVyOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRU
aW1lKCkKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1l
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApp
bmRleCBjMTNkNzAzMmYyOGNjZDkwODcyYjA5Mjc2ZDkzNzJhNDI2NTNhMjAxLi4yN2E2OTA3M2Mz
ODA3NTQxNGJhNzIxMTA3Y2I1MGQwY2ZmNGZkODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRl
ICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJFbnVtcy5oIgogI2luY2x1ZGUg
Ik1lZGlhUGxheWVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyVmlkZW9GcmFt
ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRleHRU
cmFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgpAQCAtNDY3LDEwICs0Njgs
OCBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIGN1cnJlbnQgcmVzdHJpY3Rpb25zIHJlcXVpcmUgdGhh
dCBmb3JtYXQgc2hvdWQgYmUgUkdCIG9yIFJHQkEsIHR5cGUgc2hvdWxkIGJlIFVOU0lHTkVEX0JZ
VEUgYW5kIGxldmVsIHNob3VsZCBiZSAwLiBJdCBtYXkgYmUgbGlmdGVkIGluIHRoZSBmdXR1cmUu
CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0
Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0IHRleHR1cmUs
IEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQs
IEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBi
b29sIGZsaXBZKTsKLSNlbHNlCi0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVs
QnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKICNlbmRpZgotCisgICAgc3RkOjpvcHRpb25hbDxNZWRp
YVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwogICAgIFJlZlB0
cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpOwogICAgIERlc3RpbmF0
aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggNmU0NzdiY2FmOWM0
ODU3YTAxNzcyNjU3MjJmODFiZjg0ZmJjMzBkZS4uMDg1ZjhhYjM1ZDhmNWZkNWE4NjM5Y2Y0ODg0
ZWRkMTZjMDUyOWU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTI5LDggKzI5LDEwIEBACiAKICNpbmNsdWRl
ICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVySWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAj
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKICNpZiBFTkFCTEUoTEVHQUNZX0VO
Q1JZUFRFRF9NRURJQSkKQEAgLTE3OCw5ICsxODAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYgYywgY29uc3Qg
RmxvYXRSZWN0JiByKSB7IHBhaW50KGMsIHIpOyB9CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAg
ICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGlj
c0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51
bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKSB7IHJldHVybiBmYWxzZTsgfQotI2Vs
c2UKLSAgICB2aXJ0dWFsIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZv
ckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCisgICAgdmlydHVhbCBz
dGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lKCkgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CiAgICAgdmlydHVhbCBSZWZQdHI8TmF0aXZl
SW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSB7IHJldHVybiBudWxscHRyOyB9CiAg
ICAgdmlydHVhbCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpID0gMDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJWaWRl
b0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclZp
ZGVvRnJhbWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OWRjOWYxMzQ3YTEzNjY1ODQ4NGIwYjZlOGFmODQyMDJj
ZDMxMjViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShWSURFTykKKyNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCisKKyNpZiBVU0UoQVZG
T1VOREFUSU9OKQorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwordXNpbmcgQ1ZQaXhlbEJ1
ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIE1lZGlhUGxheWVyVmlkZW9GcmFtZSB7CitwdWJsaWM6CisgICAgTWVkaWFQ
bGF5ZXJWaWRlb0ZyYW1lKCkgPSBkZWxldGU7CisjaWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBX
RUJDT1JFX0VYUE9SVCBNZWRpYVBsYXllclZpZGVvRnJhbWUoUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJSZWY+JiYsIEltYWdlT3JpZW50YXRpb24pOworI2VuZGlmCisKKyAgICBJbWFnZU9yaWVudGF0
aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQorCisjaWYg
VVNFKEFWRk9VTkRBVElPTikKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKCkgY29u
c3QgeyByZXR1cm4gbV9waXhlbEJ1ZmZlci5nZXQoKTsgfQorI2VuZGlmCisKKyAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lJiBvdGhlcikgY29uc3Q7CisKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8TWVk
aWFQbGF5ZXJWaWRlb0ZyYW1lPiBkZWNvZGUoRGVjb2RlciYpOworCitwcml2YXRlOgorI2lmIFVT
RShBVkZPVU5EQVRJT04pCisgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG1fcGl4ZWxC
dWZmZXI7CisjZW5kaWYKKyAgICBJbWFnZU9yaWVudGF0aW9uIG1fb3JpZW50YXRpb247Cit9Owor
CitpbmxpbmUgYm9vbCBNZWRpYVBsYXllclZpZGVvRnJhbWU6Om9wZXJhdG9yPT0oY29uc3QgTWVk
aWFQbGF5ZXJWaWRlb0ZyYW1lJiBvdGhlcikgY29uc3QKK3sKKyNpZiBVU0UoQVZGT1VOREFUSU9O
KQorICAgIGlmIChtX3BpeGVsQnVmZmVyICE9IG90aGVyLm1fcGl4ZWxCdWZmZXIpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIHJldHVybiBJbWFnZU9yaWVudGF0aW9uOjpPcmll
bnRhdGlvbihvdGhlci5tX29yaWVudGF0aW9uKSA9PSBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRh
dGlvbihtX29yaWVudGF0aW9uKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9p
ZCBNZWRpYVBsYXllclZpZGVvRnJhbWU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAgZW5jb2RlciA8PCBtX3BpeGVsQnVmZmVyOwor
ICAgIGVuY29kZXIgPDwgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24obV9vcmllbnRhdGlv
bik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsKKyNlbmRpZgorfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFt
ZT4gTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNp
ZiBIQVZFKEFWRk9VTkRBVElPTikKKyAgICBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPj4gcGl4ZWxCdWZmZXI7CisgICAgZGVjb2RlciA+PiBwaXhlbEJ1ZmZlcjsKKyAg
ICBpZiAoIXBpeGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHN0
ZDo6b3B0aW9uYWw8SW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24+IG9yaWVudGF0aW9uOwor
ICAgIGRlY29kZXIgPj4gb3JpZW50YXRpb247CisgICAgaWYgKCFvcmllbnRhdGlvbikKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gTWVkaWFQbGF5ZXJWaWRlb0ZyYW1l
IHsgV1RGTW92ZShwaXhlbEJ1ZmZlciksIG9yaWVudGF0aW9uIH07CisjZWxzZQorICAgIFVOVVNF
RF9QQVJBTShkZWNvZGVyKTsKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworI2VuZGlmCit9CisK
K30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclZpZGVvRnJhbWVBVkYu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTVjMGRkY2FmYWRkMzFlZWY2MjJjMmFhZGYzYzBkMmU2NjU1ZTRmYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXllclZpZGVvRnJhbWVBVkYubW0KQEAgLTAsMCArMSw0MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIEVOQUJMRShWSURFTykKKyNpbmNsdWRlICJNZWRpYVBsYXllclZpZGVvRnJh
bWUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitNZWRpYVBsYXllclZpZGVvRnJhbWU6Ok1l
ZGlhUGxheWVyVmlkZW9GcmFtZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiBwaXhlbEJ1
ZmZlciwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKKyAgICA6IG1fcGl4ZWxCdWZmZXIo
V1RGTW92ZShwaXhlbEJ1ZmZlcikpCisgICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQor
eworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDk1YTM3ODlhZDYy
NzE5YzEwMGJjMDY3ZDNjZThhYWE5MzJkNTc0MTEuLmFiNjk4M2JkOTk2Y2E5ZGFlMzc0MmY1Yzc2
NDNjNWVjMGVmODE0MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTI2MiwxMiArMjYyLDEx
IEBAIHByaXZhdGU6CiAgICAgYm9vbCB1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKTsKICAgICBib29s
IHZpZGVvT3V0cHV0SGFzQXZhaWxhYmxlRnJhbWUoKTsKICAgICB2b2lkIHBhaW50V2l0aFZpZGVv
T3V0cHV0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpOworICAgIHN0ZDo6b3B0
aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBm
aW5hbDsKICAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUo
KSBmaW5hbDsKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGZpbmFsOwog
ICAgIHZvaWQgd2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZSgpOwogCi0gICAg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKSBm
aW5hbDsKLQogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQogICAgIHZvaWQga2V5
QWRkZWQoKSBmaW5hbDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGVnYWN5Q0RNU2Vzc2lvbj4gY3Jl
YXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgTGVnYWN5Q0RNU2Vzc2lvbkNsaWVu
dCopIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggYmRjMmE4MmU3M2Y0ZmRmODhi
NWE1NGM5OTdmMzJiZjY4OWRlOTk2YS4uNzhjODNlZGFkZWU3YTgzZDYzZmQ3NDg3ZDdkNjE5Yjg5
NDNlZjg1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yNjI1LDExICsyNjI1LDExIEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9P
dXRwdXQoR3JhcGhpY3NDb250ZXh0JiBjCiAKIH0KIAotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBpeGVsQnVmZmVyRm9yQ3Vy
cmVudFRpbWUoKQorc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCiB7
CiAgICAgdXBkYXRlTGFzdFBpeGVsQnVmZmVyKCk7CiAKLSAgICByZXR1cm4gbV9sYXN0UGl4ZWxC
dWZmZXI7CisgICAgcmV0dXJuIE1lZGlhUGxheWVyVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IG1f
bGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3JpZW50YXRpb246Ok5vbmUgfTsKIH0KIAogUmVmUHRy
PE5hdGl2ZUltYWdlPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpuYXRpdmVJ
bWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggOTMxM2Mx
YjNkZjZkMzY5NjA4Yzc1NWYwNTVkNDYxZGFiNWRmNzIyYS4uZDc0ODNlNzRlNzZlZTVhOGU4Mjg0
NGE4ZGZlMWMxNmVhZDczNTI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTIyMiw3
ICsyMjIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBkYXRlTGFzdEltYWdlKCk7CiAgICAgdm9p
ZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAg
ICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBw
aXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgZmluYWw7CisgICAgc3RkOjpvcHRpb25hbDxNZWRp
YVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAg
IERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkgZmluYWw7CiAKICAgICBib29sIHN1
cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbQppbmRleCBiMmNlNmJiYzdhYWNjOGNlY2MyMWM5NDEyOTVlNDMxOGFkY2I4
OWEzLi42N2JlMTc0NWVlOTliNWZjYTk5YTA5MzdhZGI4YWNlZTc3YTYxM2YxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tCkBAIC03MjEsNyArNzIxLDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBo
aWNzQ28KICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqaW1hZ2UsIGltYWdlUmVjdC5zaXpl
KCksIG91dHB1dFJlY3QsIGltYWdlUmVjdCk7CiB9CiAKLVJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBpeGVsQnVmZmVyRm9y
Q3VycmVudFRpbWUoKQorc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1l
KCkKIHsKICAgICAvLyBXZSBoYXZlIGJlZW4gYXNrZWQgdG8gcGFpbnQgaW50byBhIFdlYkdMIGNh
bnZhcywgc28gdGFrZSB0aGF0IGFzIGEgc2lnbmFsIHRvIGNyZWF0ZQogICAgIC8vIGEgZGVjb21w
cmVzc2lvbiBzZXNzaW9uLCBldmVuIGlmIHRoYXQgbWVhbnMgdGhlIG5hdGl2ZSB2aWRlbyBjYW4n
dCBhbHNvIGJlIGRpc3BsYXllZApAQCAtNzM0LDcgKzczNCw3IEBAIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBpeGVsQnVm
ZmVyRm9yCiAgICAgaWYgKCFtX2lzR2F0aGVyaW5nVmlkZW9GcmFtZU1ldGFkYXRhKQogICAgICAg
ICB1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKTsKIAotICAgIHJldHVybiBtX2xhc3RQaXhlbEJ1ZmZl
cjsKKyAgICByZXR1cm4gTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIHsgUmV0YWluUHRyIHsgbV9sYXN0
UGl4ZWxCdWZmZXIgfSwgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSB9OwogfQogCiBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjb2xvclNw
YWNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKaW5kZXggNmQ5NTU2NzRkMDYyNzVhZTQzM2U1
YTU0YTM3YzM0ZTZiZjM3ZjlhMi4uOWI2ZmQyYjVmMjc1NDkyNjdkYjM5OTNjOTg5NWRiMTYzMjE1
ODZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKQEAgLTE0Miw2ICsxNDIsNyBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
KSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHN0ZDo6b3B0aW9uYWw8
TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBvdmVycmlk
ZTsKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIG92ZXJyaWRlOwogICAg
IGJvb2wgbWV0YURhdGFBdmFpbGFibGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtUHJp
dmF0ZSAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVNZXRh
ZGF0YTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggNDlmNDJmOWMwMmI4Mjk1
MzI1NzczOGMzNDQwNDNkZWI0MTA4NTFjMi4uMTQ4ZjY4YWMwNjA4NjhkNzE1YzFlNjEyZWJlODlm
MzExNzJjOWRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMjQ0LDYgKzI0NCwy
MiBAQCBzdGF0aWMgaW5saW5lIENHQWZmaW5lVHJhbnNmb3JtIHZpZGVvVHJhbnNmb3JtYXRpb25N
YXRyaXgoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICByZXR1cm4gdmlkZW9UcmFuc2Zvcm07CiB9
CiAKK3N0YXRpYyBpbmxpbmUgSW1hZ2VPcmllbnRhdGlvbiB2aWRlb09yaWVudGF0aW9uKE1lZGlh
U2FtcGxlJiBzYW1wbGUpCit7CisgICAgLy8gU2FtcGxlIHRyYW5zZm9ybSBmaXJzdCBmbGlwcyB4
LWNvb3JkaW5hdGVzLCB0aGVuIHJvdGF0ZXMuCisgICAgYm9vbCBmbGlwWCA9IHNhbXBsZS52aWRl
b01pcnJvcmVkKCk7IC8vIExlZnQgc2lkZSBzd2l0Y2hlcyB3aXRoIHJpZ2h0IHNpZGUuCisgICAg
c3dpdGNoIChzYW1wbGUudmlkZW9Sb3RhdGlvbigpKSB7CisgICAgY2FzZSBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6Tm9uZToKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmllbnRh
dGlvbjo6T3JpZ2luVG9wUmlnaHQgOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Ub3BMZWZ0Owor
ICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0OgorICAgICAgICByZXR1
cm4gZmxpcFggPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodEJvdHRvbSA6IEltYWdlT3Jp
ZW50YXRpb246Ok9yaWdpblJpZ2h0VG9wOworICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90
YXRpb246OlVwc2lkZURvd246CisgICAgICAgIHJldHVybiBmbGlwWCA/IEltYWdlT3JpZW50YXRp
b246Ok9yaWdpbkJvdHRvbUxlZnQgOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21SaWdo
dDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0OgorICAgICAgICBy
ZXR1cm4gZmxpcFggPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0VG9wIDogSW1hZ2VPcmll
bnRhdGlvbjo6T3JpZ2luTGVmdEJvdHRvbTsKKyAgICB9Cit9CisKIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBs
ZSYgc2FtcGxlLCBWaWRlb1NhbXBsZU1ldGFkYXRhIG1ldGFkYXRhKQogewogICAgIGF1dG8gcHJl
c2VudGF0aW9uVGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCk7
CkBAIC0xMDAzLDYgKzEwMTksMTkgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ28KICAgICBjb250
ZXh0LmRyYXdOYXRpdmVJbWFnZSgqaW1hZ2UsIGltYWdlUmVjdC5zaXplKCksIHRyYW5zZm9ybWVk
RGVzdFJlY3QsIGltYWdlUmVjdCk7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRl
b0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZSgpCit7CisgICAgaWYgKG1fZGlzcGxheU1vZGUgPT0gTm9uZSB8fCAhbWV0
YURhdGFBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAo
bV9kaXNwbGF5TW9kZSA9PSBQYWludEl0QmxhY2spCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgaWYgKCFtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBtX2lt
YWdlUGFpbnRlci5tZWRpYVNhbXBsZS0+cGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVC
dWZmZXI7CisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IHN0YXRpY19jYXN0PENW
UGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGVC
dWZmZXIpKTsKKyAgICByZXR1cm4gTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIHsgUmV0YWluUHRyIHsg
cGl4ZWxCdWZmZXIgfSwgdmlkZW9PcmllbnRhdGlvbigqbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1w
bGUpIH07Cit9CisKIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OmNvbG9yU3BhY2UoKQogewogICAgIHVwZGF0ZUN1cnJlbnRGcmFtZUlt
YWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCAzMmRiNmVlODJjY2Qw
MTkzOGI0MDdhNmI2ZThkZWNmODU1MmJjODE5Li45NTdiYTZiYTkwYmIwMThiYjg4OGQwMmM1ZGM4
Mzc0NmI2NTNkZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTc5MSw4
ICs3OTEsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtUmVsZWFzZVRo
cmVhZFJlc291cmNlcygpCiAjaWYgRU5BQkxFKFZJREVPKQogYm9vbCBHcmFwaGljc0NvbnRleHRH
TENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0Zm9y
bUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xlbnVtIG91dHB1dFRhcmdldCwgR0NHTGludCBs
ZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0g
dHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKQogewotICAgIGF1dG8gcGl4
ZWxCdWZmZXIgPSBwbGF5ZXIucGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpOwotICAgIGlmICgh
cGl4ZWxCdWZmZXIpCisgICAgYXV0byB2aWRlb0ZyYW1lID0gcGxheWVyLnZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSgpOworICAgIGlmICghdmlkZW9GcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgYXV0byBjb250ZXh0Q1YgPSBhc0NWKCk7CkBAIC04MDEsNyArODAxLDcgQEAgYm9v
bCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXll
ciYgcGxheWVyLCBQbGF0Zm9ybUcKIAogICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFs
cGhhKTsKICAgICBBU1NFUlRfVU5VU0VEKG91dHB1dFRhcmdldCwgb3V0cHV0VGFyZ2V0ID09IEdy
YXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJEKTsKLSAgICByZXR1cm4gY29udGV4dENWLT5jb3B5
UGl4ZWxCdWZmZXJUb1RleHR1cmUocGl4ZWxCdWZmZXIuZ2V0KCksIG91dHB1dFRleHR1cmUsIGxl
dmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6Rmxp
cFkoZmxpcFkpKTsKKyAgICByZXR1cm4gY29udGV4dENWLT5jb3B5VmlkZW9GcmFtZVRvVGV4dHVy
ZSgqdmlkZW9GcmFtZSwgb3V0cHV0VGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3Jt
YXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpOwogfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNz
Q29udGV4dEdMQ1YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBo
aWNzQ29udGV4dEdMQ1YuaAppbmRleCAxZDYxNWE3ZjBlZjExMzIzMjY4MDJlNTY0YTlhZDUyNTI3
ZTAzMDY3Li42ZDEwOWQ2NDUwYTAxNWUyN2RiMzk0OWFkODM4YzY4NGJmZDFkNTk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRH
TENWLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3ND
b250ZXh0R0xDVi5oCkBAIC0yOSw5ICsyOSw4IEBACiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRl
eHRHTC5oIgogCi10eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVmOwot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBNZWRpYVBsYXllclZpZGVvRnJhbWU7CiAKIC8v
IEludGVyZmFjZSB0byBpbnRlcmFjdCB3aXRoIENWIG9iamVjdHMgYW5kIEdyYXBoaWNzQ29udGV4
dEdMLgogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xDViB7CkBAIC00MSw3ICs0MCw3IEBAIHB1Ymxp
YzoKICAgICB1c2luZyBGbGlwWSA9IEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWTsKICAgICAvLyBD
b3BpZXMgQ1YgcGl4ZWwgYnVmZmVyIHRvIEdyYXBoaWNzQ29udGV4dEdMIFRFWFRVUkVfMkQgdGV4
dHVyZSBvZiB0aGUgc2FtZSBzaXplIGFzIHRoZSBwaXhlbCBidWZmZXIuCiAgICAgLy8gUmV0dXJu
cyB0cnVlIG9uIHN1Y2Nlc3MuCi0gICAgdmlydHVhbCBib29sIGNvcHlQaXhlbEJ1ZmZlclRvVGV4
dHVyZShDVlBpeGVsQnVmZmVyUmVmLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdD
R0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdD
R0xlbnVtIHR5cGUsIEZsaXBZKSA9IDA7CisgICAgdmlydHVhbCBib29sIGNvcHlWaWRlb0ZyYW1l
VG9UZXh0dXJlKE1lZGlhUGxheWVyVmlkZW9GcmFtZSYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0
VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVt
IGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZD
b2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0Nv
bnRleHRHTENWQ29jb2EuY3BwCmluZGV4IDI0OTk1YTNlZWVkYmVjOTQ4NWJjMWM2YTY5YjYyNWQw
YmU3YTg5OTMuLmMwMzI5YmM0OGU2ZTE0NzA2ZjVlMGUyYTgwNGQ1MzVhZmVmOWMzNjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4
dEdMQ1ZDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcApAQCAtNDksNiArNDksOCBAQCBzdGF0aWMgY29u
c3RleHByIGF1dG8gc195dXZWZXJ0ZXhTaGFkZXJUZXh0dXJlMkQgewogICAgICJ1bmlmb3JtIHZl
YzIgdV95VGV4dHVyZVNpemU7IgogICAgICJ1bmlmb3JtIHZlYzIgdV91dlRleHR1cmVTaXplOyIK
ICAgICAidW5pZm9ybSBpbnQgdV9mbGlwWTsiCisgICAgInVuaWZvcm0gaW50IHVfZmxpcFg7Igor
ICAgICJ1bmlmb3JtIGludCB1X3N3YXBYWTsiCiAgICAgInZhcnlpbmcgdmVjMiB2X3lUZXh0dXJl
Q29vcmRpbmF0ZTsiCiAgICAgInZhcnlpbmcgdmVjMiB2X3V2VGV4dHVyZUNvb3JkaW5hdGU7Igog
ICAgICJ2b2lkIG1haW4oKSIKQEAgLTU3LDYgKzU5LDEwIEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0
byBzX3l1dlZlcnRleFNoYWRlclRleHR1cmUyRCB7CiAgICAgIiAgICB2ZWMyIG5vcm1hbGl6ZWRQ
b3NpdGlvbiA9IGFfcG9zaXRpb24gKiAuNSArIC41OyIKICAgICAiICAgIGlmICh1X2ZsaXBZID09
IDEpIgogICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlvbi55ID0gMS4wIC0gbm9ybWFsaXpl
ZFBvc2l0aW9uLnk7IgorICAgICIgICAgaWYgKHVfZmxpcFggPT0gMSkiCisgICAgIiAgICAgICAg
bm9ybWFsaXplZFBvc2l0aW9uLnggPSAxLjAgLSBub3JtYWxpemVkUG9zaXRpb24ueDsiCisgICAg
IiAgICBpZiAodV9zd2FwWFkgPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9u
Lnh5ID0gbm9ybWFsaXplZFBvc2l0aW9uLnl4OyIKICAgICAiICAgIHZfeVRleHR1cmVDb29yZGlu
YXRlID0gbm9ybWFsaXplZFBvc2l0aW9uOyIKICAgICAiICAgIHZfdXZUZXh0dXJlQ29vcmRpbmF0
ZSA9IG5vcm1hbGl6ZWRQb3NpdGlvbjsiCiAgICAgIn0iX3MKQEAgLTY3LDYgKzczLDggQEAgc3Rh
dGljIGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVydGV4U2hhZGVyVGV4dHVyZVJlY3RhbmdsZSB7CiAg
ICAgInVuaWZvcm0gdmVjMiB1X3lUZXh0dXJlU2l6ZTsiCiAgICAgInVuaWZvcm0gdmVjMiB1X3V2
VGV4dHVyZVNpemU7IgogICAgICJ1bmlmb3JtIGludCB1X2ZsaXBZOyIKKyAgICAidW5pZm9ybSBp
bnQgdV9mbGlwWDsiCisgICAgInVuaWZvcm0gaW50IHVfc3dhcFhZOyIKICAgICAidmFyeWluZyB2
ZWMyIHZfeVRleHR1cmVDb29yZGluYXRlOyIKICAgICAidmFyeWluZyB2ZWMyIHZfdXZUZXh0dXJl
Q29vcmRpbmF0ZTsiCiAgICAgInZvaWQgbWFpbigpIgpAQCAtNzUsNiArODMsMTAgQEAgc3RhdGlj
IGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVydGV4U2hhZGVyVGV4dHVyZVJlY3RhbmdsZSB7CiAgICAg
IiAgICB2ZWMyIG5vcm1hbGl6ZWRQb3NpdGlvbiA9IGFfcG9zaXRpb24gKiAuNSArIC41OyIKICAg
ICAiICAgIGlmICh1X2ZsaXBZID09IDEpIgogICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlv
bi55ID0gMS4wIC0gbm9ybWFsaXplZFBvc2l0aW9uLnk7IgorICAgICIgICAgaWYgKHVfZmxpcFgg
PT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnggPSAxLjAgLSBub3JtYWxp
emVkUG9zaXRpb24ueDsiCisgICAgIiAgICBpZiAodV9zd2FwWFkgPT0gMSkiCisgICAgIiAgICAg
ICAgbm9ybWFsaXplZFBvc2l0aW9uLnh5ID0gbm9ybWFsaXplZFBvc2l0aW9uLnl4OyIKICAgICAi
ICAgIHZfeVRleHR1cmVDb29yZGluYXRlID0gbm9ybWFsaXplZFBvc2l0aW9uICogdV95VGV4dHVy
ZVNpemU7IgogICAgICIgICAgdl91dlRleHR1cmVDb29yZGluYXRlID0gbm9ybWFsaXplZFBvc2l0
aW9uICogdV91dlRleHR1cmVTaXplOyIKICAgICAifSJfcwpAQCAtNTQ4LDYgKzU2MCw4IEBAIEdy
YXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hKEdyYXBoaWNz
Q29udGV4dEdMQ29jb2EmIG93bmVyCiAgICAgbV91dlRleHR1cmVVbmlmb3JtTG9jYXRpb24gPSBH
TF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfdXZUZXh0dXJlIik7CiAgICAgbV9j
b2xvck1hdHJpeFVuaWZvcm1Mb2NhdGlvbiA9IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9n
cmFtLCAidV9jb2xvck1hdHJpeCIpOwogICAgIG1feXV2RmxpcFlVbmlmb3JtTG9jYXRpb24gPSBH
TF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfZmxpcFkiKTsKKyAgICBtX3l1dkZs
aXBYVW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1
X2ZsaXBYIik7CisgICAgbV95dXZTd2FwWFlVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3Jt
TG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfc3dhcFhZIik7CiAgICAgbV95VGV4dHVyZVNpemVVbmlm
b3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfeVRleHR1
cmVTaXplIik7CiAgICAgbV91dlRleHR1cmVTaXplVW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5p
Zm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1X3V2VGV4dHVyZVNpemUiKTsKICAgICBtX3l1dlBv
c2l0aW9uQXR0cmlidXRlTG9jYXRpb24gPSBHTF9HZXRBdHRyaWJMb2NhdGlvbih5dXZQcm9ncmFt
LCAiYV9wb3NpdGlvbiIpOwpAQCAtNTU5LDggKzU3Myw5IEBAIEdyYXBoaWNzQ29udGV4dEdMQ1ZD
b2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmIG93
bmVyCiAgICAgR0xfQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2ZyYW1lYnVmZmVy
KTsKIH0KIAotYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRv
VGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRl
eHR1cmUsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQs
IEdMZW51bSB0eXBlLCBGbGlwWSBmbGlwWSkKK2Jvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29h
Ojpjb3B5VmlkZW9GcmFtZVRvVGV4dHVyZShNZWRpYVBsYXllclZpZGVvRnJhbWUmIHZpZGVvRnJh
bWUsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0xpbnQgbGV2ZWwsIEdMZW51bSBp
bnRlcm5hbEZvcm1hdCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIEZsaXBZIHVucGFja0Zs
aXBZKQogeworICAgIGF1dG8gaW1hZ2UgPSB2aWRlb0ZyYW1lLnBpeGVsQnVmZmVyKCk7CiAgICAg
Ly8gRklYTUU6IFRoaXMgY3VycmVudGx5IG9ubHkgc3VwcG9ydHMgJzQyMHYnIGFuZCAnNDIwZicg
cGl4ZWwgZm9ybWF0cy4gSW52ZXN0aWdhdGUgc3VwcG9ydGluZyBtb3JlIHBpeGVsIGZvcm1hdHMu
CiAgICAgT1NUeXBlIHBpeGVsRm9ybWF0ID0gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlw
ZShpbWFnZSk7CiAgICAgaWYgKHBpeGVsRm9ybWF0ICE9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZ
cENiQ3I4QmlQbGFuYXJWaWRlb1JhbmdlIC8vIE5PTElOVApAQCAtNTc3LDkgKzU5MiwxMiBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKENW
UGl4ZWxCdWZmZXJSZWYgaW1hZ2UsCiAgICAgaWYgKCFzdXJmYWNlKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKKyAgICBhdXRvIG9yaWVudGF0aW9uID0gdmlkZW9GcmFtZS5vcmllbnRhdGlvbigp
OworICAgIGlmICh1bnBhY2tGbGlwWSA9PSBGbGlwWTo6WWVzKQorICAgICAgICBvcmllbnRhdGlv
biA9IG9yaWVudGF0aW9uLndpdGhGbGlwcGVkWSgpOworCiAgICAgYXV0byBuZXdTdXJmYWNlU2Vl
ZCA9IElPU3VyZmFjZUdldFNlZWQoc3VyZmFjZSk7Ci0gICAgaWYgKGZsaXBZID09IG1fbGFzdEZs
aXBZCi0gICAgICAgICYmIHN1cmZhY2UgPT0gbV9sYXN0U3VyZmFjZQorICAgIGlmIChJbWFnZU9y
aWVudGF0aW9uOjpPcmllbnRhdGlvbihvcmllbnRhdGlvbikgPT0gSW1hZ2VPcmllbnRhdGlvbjo6
T3JpZW50YXRpb24obV9sYXN0U3VyZmFjZU9yaWVudGF0aW9uKQogICAgICAgICAmJiBuZXdTdXJm
YWNlU2VlZCA9PSBtX2xhc3RTdXJmYWNlU2VlZAogICAgICAgICAmJiBsYXN0VGV4dHVyZVNlZWQo
b3V0cHV0VGV4dHVyZSkgPT0gbV9vd25lci50ZXh0dXJlU2VlZChvdXRwdXRUZXh0dXJlKSkgewog
ICAgICAgICAvLyBJZiB0aGUgdGV4dHVyZSBoYXNuJ3QgYmVlbiBtb2RpZmllZCBzaW5jZSB0aGUg
bGFzdCB0aW1lIHdlIGNvcGllZCB0byBpdCwgYW5kIHRoZQpAQCAtNTg5LDggKzYwNyw1NyBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKENW
UGl4ZWxCdWZmZXJSZWYgaW1hZ2UsCiAgICAgaWYgKCFtX2NvbnRleHQgfHwgIUdyYXBoaWNzQ29u
dGV4dEdMQ29jb2E6Om1ha2VDdXJyZW50KG1fZGlzcGxheSwgbV9jb250ZXh0KSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgc2l6ZV90IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRo
KGltYWdlKTsKLSAgICBzaXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChpbWFn
ZSk7CisgICAgLy8gQ29tcHV0ZSB0cmFuc2Zvcm0gdGhhdCB1bmRvZXMgdGhlIGBvcmllbnRhdGlv
bmAsIGUuZy4gbW92ZXMgdGhlIG9yaWdpbiB0byB0b3AgbGVmdC4KKyAgICAvLyBFdmVuIG51bWJl
ciBvZiBvcGVyYXRpb25zIChmbGlwWCwgZmxpcFksIHN3YXBYWSkgbWVhbnMgYSByb3RhdGlvbi4K
KyAgICAvLyBPZGQgbnVtYmVyIG9mIG9wZXJhdGlvbnMgbWVhbnMgYSByb3RhdGlvbiBhbmQgYSBm
bGlwLgorICAgIC8vIGBmbGlwWGAgc3dpdGNoZXMgYmV0d2VlbiBMZWZ0IGFuZCBSaWdodC4gYGZs
aXBZYCBzd2l0Y2hlcyBiZXR3ZWVuIFRvcCBhbmQgQm90dG9tLgorICAgIC8vIGBzd2FwWFlgc3dp
dGNoZXMgTGVmdFRvcCB0byBUb3BMZWZ0LgorICAgIC8vIEdvYWwgaXMgdG8gZ2V0IHRvIE9yaWdp
blRvcExlZnQuCisgICAgYm9vbCBmbGlwWSA9IGZhbHNlOyAvLyBGbGlwIHkgY29vcmRpbmF0ZSwg
aS5lLiBtaXJyb3JlZCBhbG9uZyB0aGUgeC1heGlzLgorICAgIGJvb2wgZmxpcFggPSBmYWxzZTsg
Ly8gRmxpcCB4IGNvb3JkaW5hdGUsIGkuZS4gbWlycm9yZWQgYWxvbmcgdGhlIHktYXhpcy4KKyAg
ICBib29sIHN3YXBYWSA9IGZhbHNlOworICAgIHN3aXRjaCAodmlkZW9GcmFtZS5vcmllbnRhdGlv
bigpKSB7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2U6CisgICAgY2FzZSBJ
bWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Ub3BMZWZ0OgorICAgICAgICBicmVhazsKKyAgICBjYXNl
IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0OgorICAgICAgICBmbGlwWCA9IHRydWU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9t
UmlnaHQ6CisgICAgICAgIC8vIFJvdGF0ZWQgMTgwIGRlZ3JlZXMuCisgICAgICAgIGZsaXBZID0g
dHJ1ZTsKKyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElt
YWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbUxlZnQ6CisgICAgICAgIC8vIE1pcnJvcmVkIGFs
b25nIHRoZSB4LWF4aXMuCisgICAgICAgIGZsaXBZID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0VG9wOgorICAgICAgICAvLyBNaXJy
b3JlZCBhbG9uZyB4LWF4aXMgYW5kIHJvdGF0ZWQgMjcwIGRlZ3JlZXMgY2xvY2std2lzZS4KKyAg
ICAgICAgc3dhcFhZID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVu
dGF0aW9uOjpPcmlnaW5SaWdodFRvcDoKKyAgICAgICAgLy8gUm9hdGF0ZWQgOTAgZGVncmVlcyBj
bG9jay13aXNlLgorICAgICAgICBmbGlwWCA9IHRydWU7CisgICAgICAgIHN3YXBYWSA9IHRydWU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRC
b3R0b206CisgICAgICAgIC8vIE1pcnJvciBhbG9uZyB4LWF4aXMgYW5kIHJvdGF0ZWQgOTAgZGVn
cmVlcyBjbG9ja3dpc2UuCisgICAgICAgIGZsaXBZID0gdHJ1ZTsKKyAgICAgICAgZmxpcFggPSB0
cnVlOworICAgICAgICBzd2FwWFkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElt
YWdlT3JpZW50YXRpb246Ok9yaWdpbkxlZnRCb3R0b206CisgICAgICAgIC8vIFJvdGF0ZWQgMjcw
IGRlZ3JlZXMgY2xvY2std2lzZS4KKyAgICAgICAgZmxpcFkgPSB0cnVlOworICAgICAgICBzd2Fw
WFkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgc2l6ZV90IHNvdXJjZVdpZHRo
ID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKGltYWdlKTsKKyAgICBzaXplX3Qgc291cmNlSGVpZ2h0
ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChpbWFnZSk7CisKKyAgICBzaXplX3Qgd2lkdGggPSBz
d2FwWFkgPyBzb3VyY2VIZWlnaHQgOiBzb3VyY2VXaWR0aDsKKyAgICBzaXplX3QgaGVpZ2h0ID0g
c3dhcFhZID8gc291cmNlV2lkdGggOiBzb3VyY2VIZWlnaHQ7CiAKICAgICBHTF9WaWV3cG9ydCgw
LCAwLCB3aWR0aCwgaGVpZ2h0KTsKIApAQCAtNjY0LDcgKzczMSw5IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0R0xDVkNvY29hOjpjb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJl
ZiBpbWFnZSwKICAgICAvLyBDb25maWd1cmUgdGhlIGRyYXdpbmcgcGFyYW1ldGVycy4KICAgICBH
TF9Vbmlmb3JtMWkobV95VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiwgMCk7CiAgICAgR0xfVW5pZm9y
bTFpKG1fdXZUZXh0dXJlVW5pZm9ybUxvY2F0aW9uLCAxKTsKLSAgICBHTF9Vbmlmb3JtMWkobV95
dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiwgZmxpcFkgPT0gRmxpcFk6OlllcyA/IDEgOiAwKTsKKyAg
ICBHTF9Vbmlmb3JtMWkobV95dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiwgZmxpcFkgPyAxIDogMCk7
CisgICAgR0xfVW5pZm9ybTFpKG1feXV2RmxpcFhVbmlmb3JtTG9jYXRpb24sIGZsaXBYID8gMSA6
IDApOworICAgIEdMX1VuaWZvcm0xaShtX3l1dlN3YXBYWVVuaWZvcm1Mb2NhdGlvbiwgc3dhcFhZ
ID8gMSA6IDApOwogICAgIEdMX1VuaWZvcm0yZihtX3lUZXh0dXJlU2l6ZVVuaWZvcm1Mb2NhdGlv
biwgeVBsYW5lV2lkdGgsIHlQbGFuZUhlaWdodCk7CiAgICAgR0xfVW5pZm9ybTJmKG1fdXZUZXh0
dXJlU2l6ZVVuaWZvcm1Mb2NhdGlvbiwgdXZQbGFuZVdpZHRoLCB1dlBsYW5lSGVpZ2h0KTsKIApA
QCAtNjc4LDggKzc0Nyw4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5UGl4
ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZSwKIAogICAgIG1fbGFzdFN1
cmZhY2UgPSBzdXJmYWNlOwogICAgIG1fbGFzdFN1cmZhY2VTZWVkID0gbmV3U3VyZmFjZVNlZWQ7
CisgICAgbV9sYXN0U3VyZmFjZU9yaWVudGF0aW9uID0gb3JpZW50YXRpb247CiAgICAgbV9sYXN0
VGV4dHVyZVNlZWQuc2V0KG91dHB1dFRleHR1cmUsIG1fb3duZXIudGV4dHVyZVNlZWQob3V0cHV0
VGV4dHVyZSkpOwotICAgIG1fbGFzdEZsaXBZID0gZmxpcFk7CiAgICAgYXV0b0NsZWFyVGV4dHVy
ZU9uRXJyb3IucmVsZWFzZSgpOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29h
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuaAppbmRleCBjNGUzOTYwYjZkNzA4MGU0YzM5NDBiOGFmN2FkOWRjZTYyNDYyNzBm
Li5hMmY5YjhhODI0ZGFlY2VhMDhiYTI4NWU4YmJiNGQxOTljZWI1MzYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0Nv
bnRleHRHTENWQ29jb2EuaApAQCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJHTCkgJiYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiR3JhcGhpY3ND
b250ZXh0R0xDVi5oIgotCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUg
PG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvVW5zYWZlUG9pbnRlci5oPgogCkBAIC00NCw3ICs0NCw3
IEBAIHB1YmxpYzoKIAogICAgIH5HcmFwaGljc0NvbnRleHRHTENWQ29jb2EoKSBmaW5hbDsKIAot
ICAgIGJvb2wgY29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYsIFBsYXRm
b3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJu
YWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpIGZpbmFsOwor
ICAgIGJvb2wgY29weVZpZGVvRnJhbWVUb1RleHR1cmUoTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lJiwg
UGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBp
bnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBGbGlwWSkgZmlu
YWw7CiAKIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hKEdyYXBoaWNzQ29u
dGV4dEdMQ29jb2EmKTsKQEAgLTY0LDEyICs2NCwxNCBAQCBwcml2YXRlOgogICAgIEdDR0xpbnQg
bV95VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBtX3V2VGV4dHVy
ZVVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBtX3l1dkZsaXBZVW5pZm9ybUxv
Y2F0aW9uIHsgLTEgfTsKKyAgICBHQ0dMaW50IG1feXV2RmxpcFhVbmlmb3JtTG9jYXRpb24geyAt
MSB9OworICAgIEdDR0xpbnQgbV95dXZTd2FwWFlVbmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAg
IEdDR0xpbnQgbV9jb2xvck1hdHJpeFVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAgR0NHTGlu
dCBtX3l1dlBvc2l0aW9uQXR0cmlidXRlTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV95
VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV91dlRleHR1
cmVTaXplVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKIAotICAgIEZsaXBZIG1fbGFzdEZsaXBZIHsg
RmxpcFk6Ok5vIH07CisgICAgSW1hZ2VPcmllbnRhdGlvbiBtX2xhc3RTdXJmYWNlT3JpZW50YXRp
b247CiAgICAgVW5zYWZlUG9pbnRlcjxJT1N1cmZhY2VSZWY+IG1fbGFzdFN1cmZhY2U7CiAgICAg
dWludDMyX3QgbV9sYXN0U3VyZmFjZVNlZWQgeyAwIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
Y3BwCmluZGV4IDA3MzNmM2MxNzg2ZTFjNTcwYmM5ZTNhNGY0ZDFiOGU3MjdkMTdjNjYuLmZmMTMz
OTdlNjQ0MTkxZTQwMTM3OWY1Yzg4YTA0NjYxZjcxMTcwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMLmNwcApAQCAtMjYwLDE4ICsyNjAsMTggQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWUKICAg
ICBVTlVTRURfVkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgQVNTRVJUX1VOVVNFRCh0
YXJnZXQsIHRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7CiAKLSAgICBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXI7Ci0gICAgYXV0byBnZXRQaXhl
bEJ1ZmZlciA9IFsmXSB7CisgICAgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+
IHZpZGVvRnJhbWU7CisgICAgYXV0byBnZXRWaWRlb0ZyYW1lID0gWyZdIHsKICAgICAgICAgaWYg
KCFtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgaWYgKGF1dG8gbWVkaWFQbGF5ZXIgPSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mt
PnJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkubWVkaWFQbGF5ZXIobWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyKSkKLSAgICAgICAgICAgIHBpeGVsQnVmZmVyID0gbWVkaWFQbGF5ZXItPnBpeGVs
QnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKKyAgICAgICAgICAgIHZpZGVvRnJhbWUgPSBtZWRpYVBs
YXllci0+dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgfTsKIAotICAgIGNhbGxPbk1h
aW5SdW5Mb29wQW5kV2FpdChXVEZNb3ZlKGdldFBpeGVsQnVmZmVyKSk7CisgICAgY2FsbE9uTWFp
blJ1bkxvb3BBbmRXYWl0KFdURk1vdmUoZ2V0VmlkZW9GcmFtZSkpOwogCi0gICAgaWYgKCFwaXhl
bEJ1ZmZlcikgeworICAgIGlmICghdmlkZW9GcmFtZSkgewogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yODIsNyArMjgyLDcgQEAg
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNv
bXBsZXRpb25IYW5kbGVyKGNvbnRleHRDVi0+Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKHBpeGVs
QnVmZmVyLmdldCgpLCB0ZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlw
ZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSkpOworICAgIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnRleHRDVi0+Y29weVZpZGVvRnJhbWVUb1RleHR1cmUoKnZpZGVvRnJhbWUsIHRleHR1
cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRH
TDo6RmxpcFkoZmxpcFkpKSk7CiAjZWxzZQogICAgIFVOVVNFRF9WQVJJQUJMRShtZWRpYVBsYXll
cklkZW50aWZpZXIpOwogICAgIFVOVVNFRF9WQVJJQUJMRSh0ZXh0dXJlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcAppbmRleCA4ODEwOGNiYzUzM2MxMGM3NWUzNzBiZmNjODk4MDBhNTNjNjcyOWFkLi43Njkx
M2M5NjYyNzllNDM5ZmQwZGM1NzhlZTliZWM1Y2QxOTFlMDkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
CkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjppbnZhbGlk
YXRlKCkKICAgICB9CiAgICAgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0ID0geyB9OwogI2lm
IFVTRShBVkZPVU5EQVRJT04pCi0gICAgbV9waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lID0gbnVs
bHB0cjsKKyAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IHN0ZDo6bnVsbG9wdDsKICNl
bmRpZgogfQogCkBAIC04NjgsNiArODY4LDIxIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6Y3VycmVudFRpbWVDaGFuZ2VkKGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW1lKQogICAgIG1f
d2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6Q3VycmVudFRpbWVDaGFuZ2VkKG1lZGlhVGltZSwgTW9ub3RvbmljVGltZTo6bm93KCks
ICFtZWRpYVBsYXllclBhdXNlZE9yU3RhbGxlZCgpKSwgbV9pZCk7CiB9CiAKK3ZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVv
RnJhbWU+JiYsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiByZXN1bHQ7CisgICAgYm9vbCBjaGFu
Z2VkID0gZmFsc2U7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVv
RnJhbWU+IHZpZGVvRnJhbWU7CisgICAgaWYgKG1fcGxheWVyKQorICAgICAgICB2aWRlb0ZyYW1l
ID0gbV9wbGF5ZXItPnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOworICAgIGlmIChtX3ZpZGVv
RnJhbWVGb3JDdXJyZW50VGltZSAhPSB2aWRlb0ZyYW1lKSB7CisgICAgICAgIG1fdmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lID0gdmlkZW9GcmFtZTsKKyAgICAgICAgY2hhbmdlZCA9IHRydWU7Cisg
ICAgICAgIHJlc3VsdCA9IFdURk1vdmUodmlkZW9GcmFtZSk7CisgICAgfQorICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSwgY2hhbmdlZCk7Cit9CisKIHZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6dXBkYXRlQ2FjaGVkU3RhdGUoYm9vbCBmb3JjZUN1cnJlbnRUaW1lVXBk
YXRlKQogewogICAgIGlmICghbV9vYnNlcnZpbmdUaW1lQ2hhbmdlcyB8fCBmb3JjZUN1cnJlbnRU
aW1lVXBkYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggMzJmM2E0NmFhMGYwOWIxM2IwMjRlNDE2NDA3
OGE1ZGFkZGVkYzU0ZS4uZTEzOTQ2ZjdhN2MzMzFlNzAzZDM0NmE1OTMwZDEwNGEzMDI3ZGYwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5oCkBAIC0zMjAsOSArMzIwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG5h
dGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlv
bmFsPFdURjo6TWFjaFNlbmRSaWdodD4mJiwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNl
KT4mJik7CiAgICAgdm9pZCBjb2xvclNwYWNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6RGVzdGluYXRpb25Db2xvclNwYWNlKT4mJik7CiAjZW5kaWYKLSNpZiBVU0UoQVZGT1VOREFU
SU9OKQotICAgIHZvaWQgcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
PiYmKT4mJik7Ci0jZW5kaWYKKyAgICB2b2lkIHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hh
bmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQ
bGF5ZXJWaWRlb0ZyYW1lPiYmLCBib29sKT4mJik7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJM
RUQKICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgZmluYWwgeyByZXR1cm4g
bV9sb2dnZXI7IH0KQEAgLTM3OCw5ICszNzYsNyBAQCBwcml2YXRlOgogICAgIFNjb3BlZFJlbmRl
cmluZ1Jlc291cmNlc1JlcXVlc3QgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0OwogCiAgICAg
Ym9vbCBtX29ic2VydmluZ1RpbWVDaGFuZ2VzIHsgZmFsc2UgfTsKLSNpZiBVU0UoQVZGT1VOREFU
SU9OKQotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyRm9yQ3Vy
cmVudFRpbWU7Ci0jZW5kaWYKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVy
VmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dlcjsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCAzOWM4NzI5YjI3MzllMTM2NDRiMzFhYTgwZGJh
ODBkNGEzMzBjOGFlLi5lNTM5YjQ5MmY2ZmMwNTU1NzQ0ZTkwNTg0NjQzN2Q0ODhkNTM4NDMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTI2LDkgKzEyNiw3IEBAIG1l
c3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgTmF0
aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIC0+IChzdGQ6Om9wdGlvbmFsPE1hY2hTZW5kUmlnaHQ+
IHNlbmRSaWdodCwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UpIFN5
bmNocm9ub3VzCiAgICAgQ29sb3JTcGFjZSgpIC0+IChXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9y
U3BhY2UgY29sb3JTcGFjZSkgU3luY2hyb25vdXMKICNlbmRpZgotI2lmIFVTRShBVkZPVU5EQVRJ
T04pCi0gICAgUGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpIC0+IChzdGQ6Om9w
dGlvbmFsPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPj4gcGl4ZWxCdWZmZXIpIFN5bmNocm9u
b3VzCi0jZW5kaWYKKyAgICBWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSAtPiAo
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJhbWUs
IGJvb2wgY2hhbmdlZCkgU3luY2hyb25vdXMKIAogICAgIFBsYXlBdEhvc3RUaW1lKE1vbm90b25p
Y1RpbWUgdGltZSkKICAgICBQYXVzZUF0SG9zdFRpbWUoTW9ub3RvbmljVGltZSB0aW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlh
UGxheWVyUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2Nv
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KaW5kZXggYzZiYmEzYWEyYjRlNTVmYWVm
YjkzM2JiZTJlNjM1OWQ3M2Y2MzE5OC4uZmJlMTBiYzMwNWQyZDJlMTVhMjRhN2NlZTQ1MDdlYTE3
NjczNzQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29h
L1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCkBAIC0xMjcs
MjEgKzEyNyw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Y29sb3JTcGFjZShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRlc3RpbmF0CiAgICAgY29tcGxldGlvbkhhbmRs
ZXIobV9wbGF5ZXItPmNvbG9yU3BhY2UoKSk7CiB9CiAKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQot
dm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lSWZD
aGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIHN0ZDo6b3B0
aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+PiByZXN1bHQ7Ci0gICAgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyOwotICAgIGlmIChtX3BsYXllcikKLSAgICAg
ICAgcGl4ZWxCdWZmZXIgPSBtX3BsYXllci0+cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpOwot
ICAgIGlmIChtX3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUgIT0gcGl4ZWxCdWZmZXIpIHsKLSAg
ICAgICAgcmVzdWx0ID0gcGl4ZWxCdWZmZXI7Ci0gICAgICAgIG1fcGl4ZWxCdWZmZXJGb3JDdXJy
ZW50VGltZSA9IFdURk1vdmUocGl4ZWxCdWZmZXIpOwotICAgIH0KLSAgICBjb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCA5YTY0Mjk0Mzc4NDJmNDNkYjZkYTFjMjUw
MTFlZDRhNTQ0Y2JmMzYxLi5iNTM5MmUwNGQ5ZmY5NmRiZjExMDgxNGE4MGEwNGE2YjZlZjI4ODM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0xMDAwLDEzICsxMDAwLDE4IEBA
IGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9y
bVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1
cm4gZmFsc2U7CiB9Ci0jZWxpZiAhUExBVEZPUk0oQ09DT0EpCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1
ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRU
aW1lKCkKKyNlbmRpZgorCitzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9G
cmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUo
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiByZXN1bHQ7CisgICAgYm9v
bCBjaGFuZ2VkID0gZmFsc2U7CisgICAgaWYgKCFjb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hh
bmdlZCgpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lSWZDaGFuZ2VkOjpSZXBseShyZXN1bHQsIGNoYW5nZWQpLCBtX2lkKSkKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoY2hhbmdlZCkKKyAgICAgICAgbV92aWRl
b0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBXVEZNb3ZlKHJlc3VsdCk7CisgICAgcmV0dXJuIG1fdmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lOwogfQotI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oQ09DT0Ep
CiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bmF0aXZlSW1h
Z2VGb3JDdXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCBlYjMyNjI0
MDRjNmY5MWQ4ZDI2N2EzODUxNjQ1MjI3YTA5MDM3OWU4Li5lYTJhMDY2YjAwNjM5M2FkNmRlMjM1
YTVhMDkyNmY5M2NlNjc2MTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTI5Miw5
ICsyOTIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmlu
YWw7CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9Q
bGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2Jq
ZWN0LCBHQ0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9v
bCwgYm9vbCkgZmluYWw7Ci0jZWxzZQotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBw
aXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAjZW5kaWYKKyAgICBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lKCkgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBuYXRpdmVJbWFn
ZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNw
YWNlIGNvbG9yU3BhY2UoKSBmaW5hbDsKIApAQCAtNDYxLDkgKzQ2MCw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX3dhaXRpbmdGb3JLZXkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90aW1lSXNQcm9n
cmVzc2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQg
eyBmYWxzZSB9OwotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZTsKLSNlbmRpZgorICAgIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1
ZmZlclJlZj4gbV9waXhlbEJ1ZmZlckdhdGhlcmVkV2l0aFZpZGVvRnJhbWVNZXRhZGF0YTsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4gbV9waXhl
bEJ1ZmZlckNvbmZvcm1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUNvY29hLm1tCmluZGV4IGMwYjc3NmRjNzczYjE3ZmE0MzBjZDU4OTY4YjAwN2IzMWJkNzZhOGQu
LjQxZGJjN2E1M2I3MTc3NjJlNDVhMjA5ZTBmODQ3MGUxMTVmMTEwMWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9j
b2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQpAQCAtOTQsMTggKzk0LDYgQEAg
V2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
Y29sb3JTcGFjZSgpCiAgICAgcmV0dXJuIGNvbG9yU3BhY2U7CiB9CiAKLSNpZiBVU0UoQVZGT1VO
REFUSU9OKQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCi17Ci0gICAgc3RkOjpvcHRpb25hbDxS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHJlc3VsdDsKLSAgICBpZiAoIWNvbm5lY3Rpb24o
KS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UGl4ZWxCdWZmZXJG
b3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6UGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZDo6UmVwbHkocmVzdWx0KSwgbV9p
ZCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGlmIChyZXN1bHQpCi0gICAgICAgIG1f
cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSA9IFdURk1vdmUoKnJlc3VsdCk7Ci0gICAgcmV0dXJu
IG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZTsKLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09D
T0EpCg==
</data>
<flag name="commit-queue"
          id="475421"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449369</attachid>
            <date>2022-01-18 01:27:55 -0800</date>
            <delta_ts>2022-01-18 06:11:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235233-20220118112752.patch</filename>
            <type>text/plain</type>
            <size>73220</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAwODliMmFlOGM0YTE0
ZGNmNGYwYTFlZjc4ZTE5ZjQ4ZmNiMjU0NC4uNDY5NGE3YTc1NDBjOTUxYTQxOTAzYjhlOWYwYWYy
ZDA3NGEzNDI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIyLTAxLTE3ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdl
YkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlh
IGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NjAxNzYyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgZnVsbCB0ZXh0
dXJlIHVwbG9hZHMgZnJvbSBNU0UgY2FtZXJhIGNhcHR1cmVzIHVzZSBDVlBpeGVsQnVmZmVycwor
ICAgICAgICBpbnN0ZWFkIG9mIHJlYWRpbmcgdGhlIHBpeGVscyBiYWNrLgorICAgICAgICBJbXBs
ZW1lbnQgTWVkaWFQbGF5ZXJJbnRlcmZhY2U6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKSBm
b3IKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLgorICAgICAg
ICBSZW5hbWUgZnVuY3Rpb25zIGZyb20gcGl4ZWxCdWZmZXIuLi4gdG8gdmlkZW9GcmFtZS4KKyAg
ICAgICAgVXNlIG5ldyB0eXBlIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBpbnN0ZWFkIG9mIENWUGl4
ZWxCdWZmZXIuCisgICAgICAgIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBjb250YWlucyBhbHNvIHRo
ZSBmcmFtZSBvcmllbnRhdGlvbi4gVGhlCisgICAgICAgIG9yaWVudGF0aW9uIGlzIG5lZWRlZCBh
cyB0aGUgY2FtZXJhIG1pZ2h0IGNhcHR1cmUgdGhlIGltYWdlCisgICAgICAgIHdpdGggYSByb3Rh
dGlvbiBvciBhIGZsaXAuCisKKyAgICAgICAgVG8gYXZvaWQgaWZkZWZzLCB0aGUgbmV3IEFQSSB2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgZXhpc3RzCisgICAgICAgIGZvciBhbGwgcGxhdGZvcm1z
LCBidXQgaXMgY3VycmVudGx5IGNhbGxlZCBvbmx5IGJ5IENvY29hLgorICAgICAgICBBbHNvIHRo
ZSB0eXBlIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBleGlzdHMgZm9yIGFsbCBwbGF0Zm9ybXMKKyAg
ICAgICAgYnV0IGhhcyB0aGUgZnJhbWUgY29udGVudHMgaW1wbGVtZW50YXRpb24gb25seSBmb3Ig
Q29jb2EuCisKKyAgICAgICAgVGVzdGVkIGJ5IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlh
LXRvLWNhbnZhcy5odG1sCisKKyAgICAgICAgQ3VycmVudGx5IHRoZSAibWlycm9yZWQiIHBhcnQg
aXMgdGVzdGVkIG1hbnVhbGx5LCBXZWJLaXQKKyAgICAgICAgZG9lcyBub3QgcmVxdWVzdCBtaXJy
b3JlZCBjYW1lcmEgaW1hZ2Ugc28gaXQgaXMgZGVhZCBjb2RlLgorCisgICAgICAgICogSGVhZGVy
cy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6dmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpwaXhlbEJ1
ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
Ojpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpwaXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclZpZGVvRnJhbWUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclZpZGVvRnJhbWU6Om9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyVmlkZW9GcmFtZTo6cGl4ZWxCdWZmZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lQVZGLm1tOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRl
eHRHTENWLmguCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU6Ok1lZGlh
UGxheWVyVmlkZW9GcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwaXhl
bEJ1ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjp2
aWRlb09yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRleHR1cmVGcm9tTWVkaWEp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpHcmFwaGlj
c0NvbnRleHRHTENWQ29jb2EpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xD
VkNvY29hOjpjb3B5VmlkZW9GcmFtZVRvVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29h
Lmg6CisKIDIwMjItMDEtMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6cmVzZXQgc2hvdWxkIGhv
cCB0byB0aGUgbWFpbiB0aHJlYWQgYmVmb3JlIGNhbGxpbmcgaXRzIG9ic2VydmVycwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA3OTM1NWI5Mzk1NmUwMzQ1NGMxNjZjYTVjZDNjZjkzM2EyMTVhYjI1Li40ZDVmYzE0MjI1
YjkwOTQyNzJkYWJiODhiNzg4Y2ZhNjAzM2RlMzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBA
CisyMDIyLTAxLTE3ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IFdlYkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0aCBmb3Ig
Q29jb2EgZ2V0VXNlck1lZGlhIGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg3NjAxNzYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbmFtZSBmdW5jdGlvbnMgZnJvbSBwaXhlbEJ1ZmZlci4uLiB0byB2aWRlb0ZyYW1lLgor
ICAgICAgICBTZW5kIG5ldyB0eXBlIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBpbnN0ZWFkIG9mIENW
UGl4ZWxCdWZmZXIuCisgICAgICAgIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBjb250YWlucyBhbHNv
IHRoZSBmcmFtZSBvcmllbnRhdGlvbi4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cGl4
ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBpeGVsQnVm
ZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWUpOiBEZWxldGVkLgorCiAyMDIyLTAxLTE3ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbR1RLXSBJbXBsZW1lbnQgZm9ybSB2YWxpZGF0aW9uIHdpdGgg
Z3RrMyB3aWRnZXRzIGluIHRoZSBVSSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA4ODkw
ZjhkYmE0NzRjMzkyYzM3MzI5OGRhNzU4MGY3MTljZTVjM2RlLi43OGU3YmM5MTI2NzI2MjU5NTQ4
MWE5Mjg1MjRlOTgwZmJhNTQzODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE1MTEsNiArMTUx
MSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllckVudW1zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllcklkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNvdXJjZVByaXZhdGUuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFVc2FnZUluZm8uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMmMzYjRmODFhNTJm
NTY2OTljYmZkNDEyZGZhYzA5NDM2NjZhZWFlNy4uZGQxZWQ4YWU2MmYyYTRiMmU2M2QxZWQxOTM1
MTU5OGZlZTBkYmNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yOTYsNiArMjk2LDcg
QEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNr
UHJpdmF0ZUFWRi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWJhY2tUYXJnZXRDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXllclZpZGVvRnJhbWVBVkYubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIw
ODFiNmExOWQzZGQ1ZmI2N2ZiMTZlN2JmYTljNzU4NmZmOWYxYWQuLjI5MmI1YzExYzY4NzRlOTIw
YmYyNTE5YTU2N2MwNzhiZmYwMTU5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI0MCw2ICsyNDAsNyBAQAogCQkwODFFQkYz
QjBGRDM0RjQxMDBEQTc1NTkgLyogU1ZHRmlsdGVyQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDgxRUJGMzkwRkQzNEY0MTAwREE3NTU5IC8q
IFNWR0ZpbHRlckJ1aWxkZXIuaCAqLzsgfTsKIAkJMDgzREFFQTcwRjAxQTdGQjAwMzQyNzU0IC8q
IFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODNEQUVBMzBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmUuaCAqLzsgfTsKIAkJMDgzREFFQTkwRjAxQTdGQjAwMzQyNzU0IC8q
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDgzREFFQTUwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5oICovOyB9OworCQkwODQ0QjAxRDEyNTVCNEU2MDBCOUNERDAg
LyogU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDg0NEIwMUQxMjU1RTRFNjAwQjlDREQwIC8qIFNWR0JvdW5k
aW5nQm94Q29tcHV0YXRpb24uaCAqLzsgfTsKIAkJMDg0NTY4MDgxMkI5MERBNjAwOTYwQTlGIC8q
IEZvbnRNZXRyaWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwODQ1NjgwNzEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwODU0QjAxNTEyNTVFNEU2
MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODU0QjAwMzEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZH
SW5saW5lLmggKi87IH07CiAJCTA4NTRCMDE3MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJ
bmxpbmVUZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwODU0QjAwNTEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lVGV4dC5oICovOyB9
OwpAQCAtMjM5MSw2ICsyMzkyLDcgQEAKIAkJN0FGOUIyMEYxOENGQjVGNDAwQzY0QkVGIC8qIEpT
VlRUUmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0FGOUIyMEIxOENGQjVGMzAwQzY0QkVGIC8qIEpTVlRUUmVnaW9uTGlzdC5oICovOyB9
OwogCQk3QjEwMzM5RTI1NDk3MjE3MDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IxMDMzOUQyNTQ5
NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjEwMzM5RjI1NDk3MjFFMDBDOEMxQUMg
LyogR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3ND
b250ZXh0R0xDVkNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJN0I0NDEwRTEyNzk1OEZDNTAwMEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9G
cmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I0
NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNjA5NEREMjcwQzQ0
QkQwMDY0ODM1QyAvKiBBTkdMRVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEFOR0xFVXRp
bGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNl
U3dhcENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VT
d2FwQ2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3QjcyMEIwQzI3NDNEQkE3MDAwOEFCRUQgLyogR3JhcGhpY3NMYXllckNvbnRlbnRzRGlz
cGxheURlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QjcyMEIwQTI3NDNEQkE2MDAwOEFCRUQgLyogR3JhcGhpY3NMYXllckNvbnRlbnRzRGlz
cGxheURlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTQ2MzYsOCArNDYzOCw4IEBACiAJCUNERjc0N0YxMjcwRjc2NkYwMDhGRUVFQyAv
KiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0N0YwMjcwRjc2NkYwMDhGRUVFQyAvKiBSZW5k
ZXJTVkdSZXNvdXJjZU1hcmtlcklubGluZXMuaCAqLzsgfTsKIAkJQ0RGNzQ3RjMyNzBGNzZDRjAw
OEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnRJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDdGMjI3MEY3NkNG
MDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMuaCAqLzsg
fTsKIAkJQ0RGNzQ3RjUyNzBGODNCMTAwOEZFRUVDIC8qIFJlbmRlclNWR0dyYWRpZW50U3RvcElu
bGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
Rjc0N0Y0MjcwRjgzQjEwMDhGRUVFQyAvKiBSZW5kZXJTVkdHcmFkaWVudFN0b3BJbmxpbmVzLmgg
Ki87IH07Ci0JCUNERjc0N0Y3MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFw
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERjc0N0Y2MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMu
aCAqLzsgfTsKIAkJQ0RGNzQ3RjcyNzBGODNCNDEwN0RFRUVDIC8qIFJlbmRlclNWR1NoYXBlSW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RG
NzQ3RjYyNzBGODNCNDEwN0RFRUVDIC8qIFJlbmRlclNWR1NoYXBlSW5saW5lcy5oICovOyB9Owor
CQlDREY3NDdGNzI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDdG
NjI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmggKi87IH07
CiAJCUNERjc0N0Y5MjcwRjg3Q0IwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdy
YWRpZW50SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RGNzQ3RjgyNzBGODdDQjAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlUmFkaWFs
R3JhZGllbnRJbmxpbmVzLmggKi87IH07CiAJCUNERjc0N0ZCMjcwRjg5MUEwMDhGRUVFQyAvKiBS
ZW5kZXJTVkdSZXNvdXJjZU1hc2tlcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0N0ZBMjcwRjg5MUEwMDhGRUVFQyAvKiBSZW5kZXJT
VkdSZXNvdXJjZU1hc2tlcklubGluZXMuaCAqLzsgfTsKIAkJQ0RGNzQ4M0YxOEZFQkNFQzAwMDZF
Q0MwIC8qIEdyaWRQb3NpdGlvbnNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ4M0QxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRQb3Np
dGlvbnNSZXNvbHZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC02MTk4LDEwICs2MjAwLDEyIEBACiAJCTA4MUFBOEQ5MTExMTIzN0UwMDJBQjA2
RSAvKiBTVkdFbGVtZW50UmFyZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHRWxlbWVudFJhcmVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4
MUVCRjM4MEZEMzRGNDEwMERBNzU1OSAvKiBTVkdGaWx0ZXJCdWlsZGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0ZpbHRlckJ1aWxkZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwODFFQkYzOTBGRDM0RjQxMDBEQTc1NTkgLyogU1ZHRmls
dGVyQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdGaWx0ZXJC
dWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4MzRCMDBDMTI0NEU0RTYw
MEI5Q0REMCAvKiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODNEQUVBMjBGMDFBN0ZCMDAzNDI3NTQgLyogUmVu
ZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwODNEQUVBMzBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRy
b2xNdWx0aUxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgzREFF
QTQwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODNEQUVBNTBGMDFBN0ZC
MDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwODQ0QjAxRDEyNTVFNEU2MDBCOUNERDAgLyogU1ZHQm91
bmRpbmdCb3hDb21wdXRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA4NDU2ODA3MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBGb250TWV0cmljcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwODU0QjAwMjEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR0lubGluZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NTRCMDAzMTI1NUU0RTYwMEI5Q0REMCAv
KiBSZW5kZXJTVkdJbmxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyU1ZHSW5saW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTQ2OSw2ICsx
MTQ3Myw4IEBACiAJCTdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBH
cmFwaGljc0NvbnRleHRHTENWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1Yu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxNjE5MTAyNzE5ODgwRTAwQzQwRUFD
IC8qIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdCNDQxMERGMjc5NThGQzQwMDBCNEY4QSAvKiBNZWRpYVBsYXllclZp
ZGVvRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJW
aWRlb0ZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCNDQxMEUyMjc5NThG
REUwMDBCNEY4QSAvKiBNZWRpYVBsYXllclZpZGVvRnJhbWVBVkYubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBNZWRpYVBsYXllclZpZGVvRnJhbWVBVkYubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdCNkRDODE1MjU3MTJFOTEwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElP
U3VyZmFjZVN3YXBDaGFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdCNkRDODE3MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRl
eHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QjcyMEIwQTI3NDNEQkE2MDAwOEFCRUQgLyogR3JhcGhpY3NMYXllckNv
bnRlbnRzRGlzcGxheURlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTM0MDcsOSArMTM0MTMsOSBAQAogCQlBMTBCQjU4MzE0ODRFM0E3MDBC
MkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZHUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMZWdhY3lSZW5kZXJTVkdSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUExMEJCNTgzMTQ4NEUzQTcwMEIzQUI2RCAvKiBSZW5kZXJTVkdSZWN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1JlY3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTEwQkI1ODgxNDg0RTNCMzAwQjJFODdBIC8qIExlZ2FjeVJlbmRlclNW
R1NoYXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlZ2FjeVJl
bmRlclNWR1NoYXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTEwQ0M1ODgx
NDczRTNCMzAwQjJBOEJGIC8qIFJlbmRlclNWR1NoYXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEwQkI1ODkxNDg0RTNCMzAwQjJFODdBIC8qIExlZ2FjeVJlbmRlclNWR1No
YXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1No
YXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg5MTQ4NEUzQjMwMEMz
Rjc3QiAvKiBSZW5kZXJTVkdTaGFwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW5kZXJTVkdTaGFwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTBDQzU4
ODE0NzNFM0IzMDBCMkE4QkYgLyogUmVuZGVyU1ZHU2hhcGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMTBENkU5NDIxNDRDOTk4MDBGREQxNEQgLyogSlNQYXltZW50UmVzcG9u
c2VDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQYXltZW50UmVzcG9uc2VDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBEQkY0NjE4RjkyMzE3MDAwRDcw
QzYgLyogTGVnYWN5UHJldmlld0xvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExMERDNzY4MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlR3JpZERhdGEuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYzMTEsOCArMTYzMTcsOCBAQAogCQlD
REY3NDdGMDI3MEY3NjZGMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXJJbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGMjI3MEY3NkNGMDA4RkVFRUMgLyogUmVu
ZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RGNzQ3RjQyNzBGODNCMTAwOEZFRUVDIC8qIFJlbmRlclNWR0dyYWRpZW50
U3RvcElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHR3JhZGllbnRTdG9wSW5saW5l
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDREY3NDdGNjI3MEY4NkE0MDA4RkVF
RUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2Fj
eVJlbmRlclNWR1NoYXBlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REY3NDdGNjI3MEY4M0I0MTA3REVFRUMgLyogUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDREY3NDdGNjI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJ
bmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1NoYXBlSW5saW5lcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGODI3MEY4N0NCMDA4RkVFRUMgLyog
UmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0RGNzQ3RkEyNzBGODkxQTAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291
cmNlTWFza2VySW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tl
cklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNzQ4M0MxOEZFQkNF
QzAwMDZFQ0MwIC8qIEdyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTg3MDMsNiArMTg3MDksNyBAQAogCQkJCTA3MUU0OTZEMUFE
NUFBMEQwMDhBNTBCNCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EubW0gKi8sCiAJCQkJMDc2
RjBEMDkxMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHAgKi8sCiAJCQkJMDc2RjBEMEExMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5oICovLAorCQkJCTdCNDQxMEUyMjc5NThGREUwMDBCNEY4QSAvKiBNZWRp
YVBsYXllclZpZGVvRnJhbWVBVkYubW0gKi8sCiAJCQkJQ0RCRUFFQUIxOUQ5MkI2QzAwQkVCQTg4
IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLmggKi8sCiAJCQkJQ0RCRUFFQUExOUQ5MkI2
QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tICovLAogCQkJCTQxMDI0
RkM4MjNDRjI1NEYwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwICovLApA
QCAtMjg5MjgsNiArMjg5MzUsNyBAQAogCQkJCUNENTIwOUUzMUIwQkQ4MzgwMDc3MTg0RSAvKiBN
ZWRpYVBsYXllckVudW1zLmggKi8sCiAJCQkJRjQyOTI2MTcyNTI2NEQ0NDAwMDA3ODk4IC8qIE1l
ZGlhUGxheWVySWRlbnRpZmllci5oICovLAogCQkJCTA3OUY1RTRCMEYzQkVCRUEwMDVFMDc4MiAv
KiBNZWRpYVBsYXllclByaXZhdGUuaCAqLywKKwkJCQk3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEg
LyogTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmggKi8sCiAJCQkJQ0Q2NDFFQjExODE4RjVFRDAwRUU0
QzQxIC8qIE1lZGlhU291cmNlUHJpdmF0ZS5oICovLAogCQkJCUNEREMxRTc5MThBOTUyRjMwMDI3
QTlENCAvKiBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCAqLywKIAkJCQkwNzYxMURCODI0M0ZC
NzVDMDBEODA3MDQgLyogTWVkaWFVc2FnZUluZm8uaCAqLywKQEAgLTM2MTA2LDYgKzM2MTE0LDcg
QEAKIAkJCQlERjlBRkQ3MjEzRkMzMUQ4MDAxNUZFQjcgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOEI1QTMxODA0NjM0NzAwMTZF
Njg1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTUwNTI0RjQxQjcxMkZGNjAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0I0NDEwRTEyNzk1OEZDNTAw
MEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc3
QkE1NzYyNjBGQURGNjAwNzJGMTlGIC8qIE1lZGlhUG9zaXRpb25TdGF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTJFMkNBRkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcAppbmRleCBjMTI4MWE0NDZiMTU2NTkwOWIzMTQ0YTc4MmM5OTc4ZWU5MDg5
ZmUyLi43NzQ3NjhlMmMxOTI3NjFmODBhODU2ZGE5MmUyYWY2YTg4ZDg3ZmMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xMDYy
LDE1ICsxMDYyLDEzIEBAIGJvb2wgTWVkaWFQbGF5ZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRm
b3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCogY29udGV4dCwKICAgICByZXR1cm4gbV9wcml2
YXRlLT5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoY29udGV4dCwgdGV4dHVyZSwg
dGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgcHJlbXVsdGlwbHlB
bHBoYSwgZmxpcFkpOwogfQogCi0jZWxzZQorI2VuZGlmCiAKLVJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBNZWRpYVBsYXllcjo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCitzdGQ6Om9w
dGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXI6OnZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSgpCiB7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+cGl4ZWxCdWZmZXJGb3JDdXJy
ZW50VGltZSgpOworICAgIHJldHVybiBtX3ByaXZhdGUtPnZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSgpOwogfQogCi0jZW5kaWYKLQogUmVmUHRyPE5hdGl2ZUltYWdlPiBNZWRpYVBsYXllcjo6bmF0
aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bmF0aXZl
SW1hZ2VGb3JDdXJyZW50VGltZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKaW5kZXggYzEzZDcwMzJmMjhjY2Q5MDg3MmIwOTI3NmQ5MzcyYTQy
NjUzYTIwMS4uMjdhNjkwNzNjMzgwNzU0MTRiYTcyMTEwN2NiNTBkMGNmZjRmZDg0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVy
RW51bXMuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllcklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJN
ZWRpYVBsYXllclZpZGVvRnJhbWUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1UZXh0VHJhY2suaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEu
aCIKQEAgLTQ2NywxMCArNDY4LDggQEAgcHVibGljOgogICAgIC8vIFRoZSBjdXJyZW50IHJlc3Ry
aWN0aW9ucyByZXF1aXJlIHRoYXQgZm9ybWF0IHNob3VkIGJlIFJHQiBvciBSR0JBLCB0eXBlIHNo
b3VsZCBiZSBVTlNJR05FRF9CWVRFIGFuZCBsZXZlbCBzaG91bGQgYmUgMC4gSXQgbWF5IGJlIGxp
ZnRlZCBpbiB0aGUgZnV0dXJlLgogI2lmICFVU0UoQVZGT1VOREFUSU9OKQogICAgIGJvb2wgY29w
eVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiwgUGxhdGZv
cm1HTE9iamVjdCB0ZXh0dXJlLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xl
bnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIGJvb2wg
cHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSk7Ci0jZWxzZQotICAgIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCk7CiAjZW5kaWYKLQorICAg
IHN0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKTsKICAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRp
bWUoKTsKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
CmluZGV4IDZlNDc3YmNhZjljNDg1N2EwMTc3MjY1NzIyZjgxYmY4NGZiYzMwZGUuLjA4NWY4YWIz
NWQ4ZjVmZDVhODYzOWNmNDg4NGVkZDE2YzA1MjllOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0yOSw4ICsy
OSwxMCBAQAogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVBsYXll
cklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJNZWRpYVBsYXllclZpZGVvRnJhbWUuaCIKICNpbmNs
dWRlICJOYXRpdmVJbWFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGltZVJhbmdlcy5oIgorI2lu
Y2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiAj
aWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCkBAIC0xNzgsOSArMTgwLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGlj
c0NvbnRleHQmIGMsIGNvbnN0IEZsb2F0UmVjdCYgcikgeyBwYWludChjLCByKTsgfQogI2lmICFV
U0UoQVZGT1VOREFUSU9OKQogICAgIHZpcnR1YWwgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0
Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51
bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgeyBy
ZXR1cm4gZmFsc2U7IH0KLSNlbHNlCi0gICAgdmlydHVhbCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KICNl
bmRpZgorICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZp
ZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQogICAgIHZp
cnR1YWwgUmVmUHRyPE5hdGl2ZUltYWdlPiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9y
U3BhY2UoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyVmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjlkYzlmMTM0N2ExMzY2
NTg0ODRiMGI2ZThhZjg0MjAyY2QzMTI1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyVmlkZW9GcmFtZS5oCkBAIC0wLDAgKzEs
MTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlv
bi5oIgorCisjaWYgVVNFKEFWRk9VTkRBVElPTikKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisKK3VzaW5nIENWUGl4ZWxCdWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1ZmZlcio7CisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVBsYXllclZpZGVvRnJhbWUgewor
cHVibGljOgorICAgIE1lZGlhUGxheWVyVmlkZW9GcmFtZSgpID0gZGVsZXRlOworI2lmIFVTRShB
VkZPVU5EQVRJT04pCisgICAgV0VCQ09SRV9FWFBPUlQgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lKFJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmLCBJbWFnZU9yaWVudGF0aW9uKTsKKyNlbmRpZgor
CisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb3Jp
ZW50YXRpb247IH0KKworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAgQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxCdWZmZXIuZ2V0KCk7IH0KKyNl
bmRpZgorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1lZGlhUGxheWVyVmlkZW9GcmFtZSYg
b3RoZXIpIGNvbnN0OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gZGVjb2RlKERlY29kZXImKTsK
KworcHJpdmF0ZToKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyOworI2VuZGlmCisgICAgSW1hZ2VPcmllbnRhdGlvbiBt
X29yaWVudGF0aW9uOworfTsKKworaW5saW5lIGJvb2wgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpv
cGVyYXRvcj09KGNvbnN0IE1lZGlhUGxheWVyVmlkZW9GcmFtZSYgb3RoZXIpIGNvbnN0Cit7Cisj
aWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBpZiAobV9waXhlbEJ1ZmZlciAhPSBvdGhlci5tX3Bp
eGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICByZXR1cm4gSW1h
Z2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24ob3RoZXIubV9vcmllbnRhdGlvbikgPT0gSW1hZ2VP
cmllbnRhdGlvbjo6T3JpZW50YXRpb24obV9vcmllbnRhdGlvbik7Cit9CisKK3RlbXBsYXRlPHR5
cGVuYW1lIEVuY29kZXI+IHZvaWQgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIGVuY29kZXIg
PDwgbV9waXhlbEJ1ZmZlcjsKKyAgICBlbmNvZGVyIDw8IEltYWdlT3JpZW50YXRpb246Ok9yaWVu
dGF0aW9uKG1fb3JpZW50YXRpb24pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5jb2Rlcik7
CisjZW5kaWYKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxN
ZWRpYVBsYXllclZpZGVvRnJhbWU+IE1lZGlhUGxheWVyVmlkZW9GcmFtZTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisjaWYgSEFWRShBVkZPVU5EQVRJT04pCisgICAgc3RkOjpvcHRpb25h
bDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHBpeGVsQnVmZmVyOworICAgIGRlY29kZXIg
Pj4gcGl4ZWxCdWZmZXI7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICBzdGQ6Om9wdGlvbmFsPEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0
aW9uPiBvcmllbnRhdGlvbjsKKyAgICBkZWNvZGVyID4+IG9yaWVudGF0aW9uOworICAgIGlmICgh
b3JpZW50YXRpb24pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIE1l
ZGlhUGxheWVyVmlkZW9GcmFtZSB7IFdURk1vdmUocGl4ZWxCdWZmZXIpLCBvcmllbnRhdGlvbiB9
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyNlbmRpZgorfQorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclZpZGVvRnJhbWVBVkYu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJWaWRlb0ZyYW1lQVZGLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1YzBkZGNhZmFkZDMxZWVmNjIyYzJh
YWRmM2MwZDJlNjY1NWU0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lQVZGLm1tCkBA
IC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisjaW5jbHVkZSAi
TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTWVkaWFQ
bGF5ZXJWaWRlb0ZyYW1lOjpNZWRpYVBsYXllclZpZGVvRnJhbWUoUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+JiYgcGl4ZWxCdWZmZXIsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCisg
ICAgOiBtX3BpeGVsQnVmZmVyKFdURk1vdmUocGl4ZWxCdWZmZXIpKQorICAgICwgbV9vcmllbnRh
dGlvbihvcmllbnRhdGlvbikKK3sKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aAppbmRleCA5NWEzNzg5YWQ2MjcxOWMxMDBiYzA2N2QzY2U4YWFhOTMyZDU3NDExLi5hYjY5ODNi
ZDk5NmNhOWRhZTM3NDJmNWM3NjQzYzVlYzBlZjgxNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5o
CkBAIC0yNjIsMTIgKzI2MiwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBkYXRlTGFzdFBpeGVs
QnVmZmVyKCk7CiAgICAgYm9vbCB2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCk7CiAgICAg
dm9pZCBwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gdmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBuYXRpdmVJ
bWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNlIGNv
bG9yU3BhY2UoKSBmaW5hbDsKICAgICB2b2lkIHdhaXRGb3JWaWRlb091dHB1dE1lZGlhRGF0YVdp
bGxDaGFuZ2UoKTsKIAotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lKCkgZmluYWw7Ci0KICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9N
RURJQSkKICAgICB2b2lkIGtleUFkZGVkKCkgZmluYWw7CiAgICAgc3RkOjp1bmlxdWVfcHRyPExl
Z2FjeUNETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIExl
Z2FjeUNETVNlc3Npb25DbGllbnQqKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4
IGJkYzJhODJlNzNmNGZkZjg4YjVhNTRjOTk3ZjMyYmY2ODlkZTk5NmEuLjc4YzgzZWRhZGVlN2E4
M2Q2M2ZkNzQ4N2Q3ZDYxOWI4OTQzZWY4NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAt
MjYyNSwxMSArMjYyNSwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYgYwogCiB9CiAKLVJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKK3N0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJW
aWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWUoKQogewogICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpOwogCi0gICAg
cmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyOworICAgIHJldHVybiBNZWRpYVBsYXllclZpZGVvRnJh
bWUgeyBSZXRhaW5QdHIgeyBtX2xhc3RQaXhlbEJ1ZmZlciB9LCBJbWFnZU9yaWVudGF0aW9uOjpO
b25lIH07CiB9CiAKIFJlZlB0cjxOYXRpdmVJbWFnZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oCmluZGV4IDkzMTNjMWIzZGY2ZDM2OTYwOGM3NTVmMDU1ZDQ2MWRhYjVkZjcyMmEuLmQ3
NDgzZTc0ZTc2ZWU1YThlODI4NDRhOGRmZTFjMTZlYWQ3MzUyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oCkBAIC0yMjIsNyArMjIyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUxh
c3RJbWFnZSgpOwogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKLSAgICBSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpIGZpbmFsOworICAg
IHN0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKSBmaW5hbDsKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGZp
bmFsOwogCiAgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggYjJjZTZiYmM3YWFjYzhjZWNj
MjFjOTQxMjk1ZTQzMThhZGNiODlhMy4uNjdiZTE3NDVlZTk5YjVmY2E5OWEwOTM3YWRiOGFjZWU3
N2E2MTNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNzIxLDcgKzcyMSw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dChHcmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmlt
YWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCBvdXRwdXRSZWN0LCBpbWFnZVJlY3QpOwogfQogCi1SZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKK3N0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5
ZXJWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVv
RnJhbWVGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgLy8gV2UgaGF2ZSBiZWVuIGFza2VkIHRvIHBh
aW50IGludG8gYSBXZWJHTCBjYW52YXMsIHNvIHRha2UgdGhhdCBhcyBhIHNpZ25hbCB0byBjcmVh
dGUKICAgICAvLyBhIGRlY29tcHJlc3Npb24gc2Vzc2lvbiwgZXZlbiBpZiB0aGF0IG1lYW5zIHRo
ZSBuYXRpdmUgdmlkZW8gY2FuJ3QgYWxzbyBiZSBkaXNwbGF5ZWQKQEAgLTczNCw3ICs3MzQsNyBA
QCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpwaXhlbEJ1ZmZlckZvcgogICAgIGlmICghbV9pc0dhdGhlcmluZ1ZpZGVvRnJh
bWVNZXRhZGF0YSkKICAgICAgICAgdXBkYXRlTGFzdFBpeGVsQnVmZmVyKCk7CiAKLSAgICByZXR1
cm4gbV9sYXN0UGl4ZWxCdWZmZXI7CisgICAgcmV0dXJuIE1lZGlhUGxheWVyVmlkZW9GcmFtZSB7
IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3JpZW50YXRpb246Ok5vbmUg
fTsKIH0KIAogRGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6Y29sb3JTcGFjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDZk
OTU1Njc0ZDA2Mjc1YWU0MzNlNWE1NGEzN2MzNGU2YmYzN2Y5YTIuLjliNmZkMmI1ZjI3NTQ5MjY3
ZGIzOTkzYzk4OTVkYjE2MzIxNTg2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0x
NDIsNiArMTQyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFt
ZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsK
KyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lKCkgb3ZlcnJpZGU7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3Bh
Y2UoKSBvdmVycmlkZTsKICAgICBib29sIG1ldGFEYXRhQXZhaWxhYmxlKCkgY29uc3QgeyByZXR1
cm4gbV9tZWRpYVN0cmVhbVByaXZhdGUgJiYgbV9yZWFkeVN0YXRlID49IE1lZGlhUGxheWVyOjpS
ZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGE7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmlu
ZGV4IDQ5ZjQyZjljMDJiODI5NTMyNTc3MzhjMzQ0MDQzZGViNDEwODUxYzIuLjE0OGY2OGFjMDYw
ODY4ZDcxNWMxZTYxMmViZTg5ZjMxMTcyYzlkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
bW0KQEAgLTI0NCw2ICsyNDQsMjIgQEAgc3RhdGljIGlubGluZSBDR0FmZmluZVRyYW5zZm9ybSB2
aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgcmV0dXJu
IHZpZGVvVHJhbnNmb3JtOwogfQogCitzdGF0aWMgaW5saW5lIEltYWdlT3JpZW50YXRpb24gdmlk
ZW9PcmllbnRhdGlvbihNZWRpYVNhbXBsZSYgc2FtcGxlKQoreworICAgIC8vIFNhbXBsZSB0cmFu
c2Zvcm0gZmlyc3QgZmxpcHMgeC1jb29yZGluYXRlcywgdGhlbiByb3RhdGVzLgorICAgIGJvb2wg
ZmxpcFggPSBzYW1wbGUudmlkZW9NaXJyb3JlZCgpOyAvLyBMZWZ0IHNpZGUgc3dpdGNoZXMgd2l0
aCByaWdodCBzaWRlLgorICAgIHN3aXRjaCAoc2FtcGxlLnZpZGVvUm90YXRpb24oKSkgeworICAg
IGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU6CisgICAgICAgIHJldHVybiBm
bGlwWCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IDogSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luVG9wTGVmdDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpS
aWdodDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmln
aHRCb3R0b20gOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodFRvcDsKKyAgICBjYXNlIE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAgICAgICByZXR1cm4gZmxp
cFggPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21MZWZ0IDogSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luQm90dG9tUmlnaHQ7CisgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlv
bjo6TGVmdDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2lu
TGVmdFRvcCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkxlZnRCb3R0b207CisgICAgfQorfQor
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9TYW1wbGVB
dmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSwgVmlkZW9TYW1wbGVNZXRhZGF0YSBtZXRhZGF0
YSkKIHsKICAgICBhdXRvIHByZXNlbnRhdGlvblRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKS5z
ZWNvbmRzU2luY2VFcG9jaCgpOwpAQCAtMTAwMyw2ICsxMDE5LDE5IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChH
cmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmltYWdlLCBpbWFnZVJlY3Qu
c2l6ZSgpLCB0cmFuc2Zvcm1lZERlc3RSZWN0LCBpbWFnZVJlY3QpOwogfQogCitzdGQ6Om9wdGlv
bmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQoreworICAgIGlmIChtX2Rpc3BsYXlN
b2RlID09IE5vbmUgfHwgIW1ldGFEYXRhQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgaWYgKG1fZGlzcGxheU1vZGUgPT0gUGFpbnRJdEJsYWNrKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1w
bGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlQnVmZmVyID0gbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUtPnBsYXRmb3JtU2FtcGxl
KCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyOworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgcmV0dXJuIE1lZGlhUGxheWVyVmlkZW9G
cmFtZSB7IFJldGFpblB0ciB7IHBpeGVsQnVmZmVyIH0sIHZpZGVvT3JpZW50YXRpb24oKm1faW1h
Z2VQYWludGVyLm1lZGlhU2FtcGxlKSB9OworfQorCiBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjb2xvclNwYWNlKCkKIHsKICAgICB1
cGRhdGVDdXJyZW50RnJhbWVJbWFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0K
aW5kZXggMzJkYjZlZTgyY2NkMDE5MzhiNDA3YTZiNmU4ZGVjZjg1NTJiYzgxOS4uOTU3YmE2YmE5
MGJiMDE4YmI4ODhkMDJjNWRjODM3NDZiNjUzZGZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRH
TENvY29hLm1tCkBAIC03OTEsOCArNzkxLDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xF
OjpwbGF0Zm9ybVJlbGVhc2VUaHJlYWRSZXNvdXJjZXMoKQogI2lmIEVOQUJMRShWSURFTykKIGJv
b2wgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRleHR1cmVGcm9tTWVkaWEoTWVkaWFQbGF5
ZXImIHBsYXllciwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMZW51bSBvdXRw
dXRUYXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51
bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlw
WSkKIHsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gcGxheWVyLnBpeGVsQnVmZmVyRm9yQ3VycmVu
dFRpbWUoKTsKLSAgICBpZiAoIXBpeGVsQnVmZmVyKQorICAgIGF1dG8gdmlkZW9GcmFtZSA9IHBs
YXllci52aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKKyAgICBpZiAoIXZpZGVvRnJhbWUpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8gY29udGV4dENWID0gYXNDVigpOwpAQCAt
ODAxLDcgKzgwMSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRleHR1cmVG
cm9tTWVkaWEoTWVkaWFQbGF5ZXImIHBsYXllciwgUGxhdGZvcm1HCiAKICAgICBVTlVTRURfVkFS
SUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgQVNTRVJUX1VOVVNFRChvdXRwdXRUYXJnZXQs
IG91dHB1dFRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7Ci0gICAgcmV0
dXJuIGNvbnRleHRDVi0+Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKHBpeGVsQnVmZmVyLmdldCgp
LCBvdXRwdXRUZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3Jh
cGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSk7CisgICAgcmV0dXJuIGNvbnRleHRDVi0+Y29w
eVZpZGVvRnJhbWVUb1RleHR1cmUoKnZpZGVvRnJhbWUsIG91dHB1dFRleHR1cmUsIGxldmVsLCBp
bnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxp
cFkpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmgKaW5kZXggMWQ2MTVhN2YwZWYxMTMy
MzI2ODAyZTU2NGE5YWQ1MjUyN2UwMzA2Ny4uNmQxMDlkNjQ1MGEwMTVlMjdkYjM5NDlhZDgzOGM2
ODRiZmQxZDU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvR3JhcGhpY3NDb250ZXh0R0xDVi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaApAQCAtMjksOSArMjksOCBAQAogCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0R0wuaCIKIAotdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciog
Q1ZQaXhlbEJ1ZmZlclJlZjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTWVkaWFQbGF5
ZXJWaWRlb0ZyYW1lOwogCiAvLyBJbnRlcmZhY2UgdG8gaW50ZXJhY3Qgd2l0aCBDViBvYmplY3Rz
IGFuZCBHcmFwaGljc0NvbnRleHRHTC4KIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMQ1YgewpAQCAt
NDEsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgRmxpcFkgPSBHcmFwaGljc0NvbnRleHRH
TDo6RmxpcFk7CiAgICAgLy8gQ29waWVzIENWIHBpeGVsIGJ1ZmZlciB0byBHcmFwaGljc0NvbnRl
eHRHTCBURVhUVVJFXzJEIHRleHR1cmUgb2YgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgcGl4ZWwgYnVm
ZmVyLgogICAgIC8vIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgotICAgIHZpcnR1YWwgYm9vbCBj
b3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiwgUGxhdGZvcm1HTE9iamVj
dCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwg
R0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBGbGlwWSkgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBjb3B5VmlkZW9GcmFtZVRvVGV4dHVyZShNZWRpYVBsYXllclZpZGVvRnJhbWUmLCBQbGF0
Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVy
bmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZKSA9IDA7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9H
cmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcAppbmRleCAyNDk5NWEzZWVlZGJl
Yzk0ODViYzFjNmE2OWI2MjVkMGJlN2E4OTkzLi5jMDMyOWJjNDhlNmUxNDcwNmY1ZTBlMmE4MDRk
NTM1YWZlZjljMzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKQEAgLTQ5LDYg
KzQ5LDggQEAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVydGV4U2hhZGVyVGV4dHVyZTJE
IHsKICAgICAidW5pZm9ybSB2ZWMyIHVfeVRleHR1cmVTaXplOyIKICAgICAidW5pZm9ybSB2ZWMy
IHVfdXZUZXh0dXJlU2l6ZTsiCiAgICAgInVuaWZvcm0gaW50IHVfZmxpcFk7IgorICAgICJ1bmlm
b3JtIGludCB1X2ZsaXBYOyIKKyAgICAidW5pZm9ybSBpbnQgdV9zd2FwWFk7IgogICAgICJ2YXJ5
aW5nIHZlYzIgdl95VGV4dHVyZUNvb3JkaW5hdGU7IgogICAgICJ2YXJ5aW5nIHZlYzIgdl91dlRl
eHR1cmVDb29yZGluYXRlOyIKICAgICAidm9pZCBtYWluKCkiCkBAIC01Nyw2ICs1OSwxMCBAQCBz
dGF0aWMgY29uc3RleHByIGF1dG8gc195dXZWZXJ0ZXhTaGFkZXJUZXh0dXJlMkQgewogICAgICIg
ICAgdmVjMiBub3JtYWxpemVkUG9zaXRpb24gPSBhX3Bvc2l0aW9uICogLjUgKyAuNTsiCiAgICAg
IiAgICBpZiAodV9mbGlwWSA9PSAxKSIKICAgICAiICAgICAgICBub3JtYWxpemVkUG9zaXRpb24u
eSA9IDEuMCAtIG5vcm1hbGl6ZWRQb3NpdGlvbi55OyIKKyAgICAiICAgIGlmICh1X2ZsaXBYID09
IDEpIgorICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlvbi54ID0gMS4wIC0gbm9ybWFsaXpl
ZFBvc2l0aW9uLng7IgorICAgICIgICAgaWYgKHVfc3dhcFhZID09IDEpIgorICAgICIgICAgICAg
IG5vcm1hbGl6ZWRQb3NpdGlvbi54eSA9IG5vcm1hbGl6ZWRQb3NpdGlvbi55eDsiCiAgICAgIiAg
ICB2X3lUZXh0dXJlQ29vcmRpbmF0ZSA9IG5vcm1hbGl6ZWRQb3NpdGlvbjsiCiAgICAgIiAgICB2
X3V2VGV4dHVyZUNvb3JkaW5hdGUgPSBub3JtYWxpemVkUG9zaXRpb247IgogICAgICJ9Il9zCkBA
IC02Nyw2ICs3Myw4IEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzX3l1dlZlcnRleFNoYWRlclRl
eHR1cmVSZWN0YW5nbGUgewogICAgICJ1bmlmb3JtIHZlYzIgdV95VGV4dHVyZVNpemU7IgogICAg
ICJ1bmlmb3JtIHZlYzIgdV91dlRleHR1cmVTaXplOyIKICAgICAidW5pZm9ybSBpbnQgdV9mbGlw
WTsiCisgICAgInVuaWZvcm0gaW50IHVfZmxpcFg7IgorICAgICJ1bmlmb3JtIGludCB1X3N3YXBY
WTsiCiAgICAgInZhcnlpbmcgdmVjMiB2X3lUZXh0dXJlQ29vcmRpbmF0ZTsiCiAgICAgInZhcnlp
bmcgdmVjMiB2X3V2VGV4dHVyZUNvb3JkaW5hdGU7IgogICAgICJ2b2lkIG1haW4oKSIKQEAgLTc1
LDYgKzgzLDEwIEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzX3l1dlZlcnRleFNoYWRlclRleHR1
cmVSZWN0YW5nbGUgewogICAgICIgICAgdmVjMiBub3JtYWxpemVkUG9zaXRpb24gPSBhX3Bvc2l0
aW9uICogLjUgKyAuNTsiCiAgICAgIiAgICBpZiAodV9mbGlwWSA9PSAxKSIKICAgICAiICAgICAg
ICBub3JtYWxpemVkUG9zaXRpb24ueSA9IDEuMCAtIG5vcm1hbGl6ZWRQb3NpdGlvbi55OyIKKyAg
ICAiICAgIGlmICh1X2ZsaXBYID09IDEpIgorICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlv
bi54ID0gMS4wIC0gbm9ybWFsaXplZFBvc2l0aW9uLng7IgorICAgICIgICAgaWYgKHVfc3dhcFhZ
ID09IDEpIgorICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlvbi54eSA9IG5vcm1hbGl6ZWRQ
b3NpdGlvbi55eDsiCiAgICAgIiAgICB2X3lUZXh0dXJlQ29vcmRpbmF0ZSA9IG5vcm1hbGl6ZWRQ
b3NpdGlvbiAqIHVfeVRleHR1cmVTaXplOyIKICAgICAiICAgIHZfdXZUZXh0dXJlQ29vcmRpbmF0
ZSA9IG5vcm1hbGl6ZWRQb3NpdGlvbiAqIHVfdXZUZXh0dXJlU2l6ZTsiCiAgICAgIn0iX3MKQEAg
LTU0OCw2ICs1NjAsOCBAQCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OkdyYXBoaWNzQ29udGV4
dEdMQ1ZDb2NvYShHcmFwaGljc0NvbnRleHRHTENvY29hJiBvd25lcgogICAgIG1fdXZUZXh0dXJl
VW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1X3V2
VGV4dHVyZSIpOwogICAgIG1fY29sb3JNYXRyaXhVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlm
b3JtTG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfY29sb3JNYXRyaXgiKTsKICAgICBtX3l1dkZsaXBZ
VW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1X2Zs
aXBZIik7CisgICAgbV95dXZGbGlwWFVuaWZvcm1Mb2NhdGlvbiA9IEdMX0dldFVuaWZvcm1Mb2Nh
dGlvbih5dXZQcm9ncmFtLCAidV9mbGlwWCIpOworICAgIG1feXV2U3dhcFhZVW5pZm9ybUxvY2F0
aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1X3N3YXBYWSIpOwogICAg
IG1feVRleHR1cmVTaXplVW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1
dlByb2dyYW0sICJ1X3lUZXh0dXJlU2l6ZSIpOwogICAgIG1fdXZUZXh0dXJlU2l6ZVVuaWZvcm1M
b2NhdGlvbiA9IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9ncmFtLCAidV91dlRleHR1cmVT
aXplIik7CiAgICAgbV95dXZQb3NpdGlvbkF0dHJpYnV0ZUxvY2F0aW9uID0gR0xfR2V0QXR0cmli
TG9jYXRpb24oeXV2UHJvZ3JhbSwgImFfcG9zaXRpb24iKTsKQEAgLTU1OSw4ICs1NzMsOSBAQCBH
cmFwaGljc0NvbnRleHRHTENWQ29jb2E6OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYShHcmFwaGlj
c0NvbnRleHRHTENvY29hJiBvd25lcgogICAgIEdMX0JpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgbV9mcmFtZWJ1ZmZlcik7CiB9CiAKLWJvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29h
Ojpjb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZSwgUGxhdGZv
cm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsRm9y
bWF0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgRmxpcFkgZmxpcFkpCitib29sIEdyYXBo
aWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVZpZGVvRnJhbWVUb1RleHR1cmUoTWVkaWFQbGF5ZXJW
aWRlb0ZyYW1lJiB2aWRlb0ZyYW1lLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdM
aW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0
eXBlLCBGbGlwWSB1bnBhY2tGbGlwWSkKIHsKKyAgICBhdXRvIGltYWdlID0gdmlkZW9GcmFtZS5w
aXhlbEJ1ZmZlcigpOwogICAgIC8vIEZJWE1FOiBUaGlzIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRz
ICc0MjB2JyBhbmQgJzQyMGYnIHBpeGVsIGZvcm1hdHMuIEludmVzdGlnYXRlIHN1cHBvcnRpbmcg
bW9yZSBwaXhlbCBmb3JtYXRzLgogICAgIE9TVHlwZSBwaXhlbEZvcm1hdCA9IENWUGl4ZWxCdWZm
ZXJHZXRQaXhlbEZvcm1hdFR5cGUoaW1hZ2UpOwogICAgIGlmIChwaXhlbEZvcm1hdCAhPSBrQ1ZQ
aXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyVmlkZW9SYW5nZSAvLyBOT0xJTlQKQEAg
LTU3Nyw5ICs1OTIsMTIgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhl
bEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLAogICAgIGlmICghc3VyZmFj
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgYXV0byBvcmllbnRhdGlvbiA9IHZpZGVv
RnJhbWUub3JpZW50YXRpb24oKTsKKyAgICBpZiAodW5wYWNrRmxpcFkgPT0gRmxpcFk6OlllcykK
KyAgICAgICAgb3JpZW50YXRpb24gPSBvcmllbnRhdGlvbi53aXRoRmxpcHBlZFkoKTsKKwogICAg
IGF1dG8gbmV3U3VyZmFjZVNlZWQgPSBJT1N1cmZhY2VHZXRTZWVkKHN1cmZhY2UpOwotICAgIGlm
IChmbGlwWSA9PSBtX2xhc3RGbGlwWQotICAgICAgICAmJiBzdXJmYWNlID09IG1fbGFzdFN1cmZh
Y2UKKyAgICBpZiAoSW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24ob3JpZW50YXRpb24pID09
IEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uKG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbikK
ICAgICAgICAgJiYgbmV3U3VyZmFjZVNlZWQgPT0gbV9sYXN0U3VyZmFjZVNlZWQKICAgICAgICAg
JiYgbGFzdFRleHR1cmVTZWVkKG91dHB1dFRleHR1cmUpID09IG1fb3duZXIudGV4dHVyZVNlZWQo
b3V0cHV0VGV4dHVyZSkpIHsKICAgICAgICAgLy8gSWYgdGhlIHRleHR1cmUgaGFzbid0IGJlZW4g
bW9kaWZpZWQgc2luY2UgdGhlIGxhc3QgdGltZSB3ZSBjb3BpZWQgdG8gaXQsIGFuZCB0aGUKQEAg
LTU4OSw4ICs2MDcsNTcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhl
bEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLAogICAgIGlmICghbV9jb250
ZXh0IHx8ICFHcmFwaGljc0NvbnRleHRHTENvY29hOjptYWtlQ3VycmVudChtX2Rpc3BsYXksIG1f
Y29udGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHNpemVfdCB3aWR0aCA9IENW
UGl4ZWxCdWZmZXJHZXRXaWR0aChpbWFnZSk7Ci0gICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxC
dWZmZXJHZXRIZWlnaHQoaW1hZ2UpOworICAgIC8vIENvbXB1dGUgdHJhbnNmb3JtIHRoYXQgdW5k
b2VzIHRoZSBgb3JpZW50YXRpb25gLCBlLmcuIG1vdmVzIHRoZSBvcmlnaW4gdG8gdG9wIGxlZnQu
CisgICAgLy8gRXZlbiBudW1iZXIgb2Ygb3BlcmF0aW9ucyAoZmxpcFgsIGZsaXBZLCBzd2FwWFkp
IG1lYW5zIGEgcm90YXRpb24uCisgICAgLy8gT2RkIG51bWJlciBvZiBvcGVyYXRpb25zIG1lYW5z
IGEgcm90YXRpb24gYW5kIGEgZmxpcC4KKyAgICAvLyBgZmxpcFhgIHN3aXRjaGVzIGJldHdlZW4g
TGVmdCBhbmQgUmlnaHQuIGBmbGlwWWAgc3dpdGNoZXMgYmV0d2VlbiBUb3AgYW5kIEJvdHRvbS4K
KyAgICAvLyBgc3dhcFhZYHN3aXRjaGVzIExlZnRUb3AgdG8gVG9wTGVmdC4KKyAgICAvLyBHb2Fs
IGlzIHRvIGdldCB0byBPcmlnaW5Ub3BMZWZ0LgorICAgIGJvb2wgZmxpcFkgPSBmYWxzZTsgLy8g
RmxpcCB5IGNvb3JkaW5hdGUsIGkuZS4gbWlycm9yZWQgYWxvbmcgdGhlIHgtYXhpcy4KKyAgICBi
b29sIGZsaXBYID0gZmFsc2U7IC8vIEZsaXAgeCBjb29yZGluYXRlLCBpLmUuIG1pcnJvcmVkIGFs
b25nIHRoZSB5LWF4aXMuCisgICAgYm9vbCBzd2FwWFkgPSBmYWxzZTsKKyAgICBzd2l0Y2ggKHZp
ZGVvRnJhbWUub3JpZW50YXRpb24oKSkgeworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6RnJv
bUltYWdlOgorICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wTGVmdDoKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Ub3BSaWdodDoKKyAg
ICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEltYWdlT3JpZW50
YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0OgorICAgICAgICAvLyBSb3RhdGVkIDE4MCBkZWdyZWVz
LgorICAgICAgICBmbGlwWSA9IHRydWU7CisgICAgICAgIGZsaXBYID0gdHJ1ZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21MZWZ0OgorICAg
ICAgICAvLyBNaXJyb3JlZCBhbG9uZyB0aGUgeC1heGlzLgorICAgICAgICBmbGlwWSA9IHRydWU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luTGVmdFRv
cDoKKyAgICAgICAgLy8gTWlycm9yZWQgYWxvbmcgeC1heGlzIGFuZCByb3RhdGVkIDI3MCBkZWdy
ZWVzIGNsb2NrLXdpc2UuCisgICAgICAgIHN3YXBYWSA9IHRydWU7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRUb3A6CisgICAgICAgIC8vIFJv
YXRhdGVkIDkwIGRlZ3JlZXMgY2xvY2std2lzZS4KKyAgICAgICAgZmxpcFggPSB0cnVlOworICAg
ICAgICBzd2FwWFkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEltYWdlT3JpZW50
YXRpb246Ok9yaWdpblJpZ2h0Qm90dG9tOgorICAgICAgICAvLyBNaXJyb3IgYWxvbmcgeC1heGlz
IGFuZCByb3RhdGVkIDkwIGRlZ3JlZXMgY2xvY2t3aXNlLgorICAgICAgICBmbGlwWSA9IHRydWU7
CisgICAgICAgIGZsaXBYID0gdHJ1ZTsKKyAgICAgICAgc3dhcFhZID0gdHJ1ZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0Qm90dG9tOgorICAg
ICAgICAvLyBSb3RhdGVkIDI3MCBkZWdyZWVzIGNsb2NrLXdpc2UuCisgICAgICAgIGZsaXBZID0g
dHJ1ZTsKKyAgICAgICAgc3dhcFhZID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IHNpemVfdCBzb3VyY2VXaWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChpbWFnZSk7CisgICAg
c2l6ZV90IHNvdXJjZUhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoaW1hZ2UpOworCisg
ICAgc2l6ZV90IHdpZHRoID0gc3dhcFhZID8gc291cmNlSGVpZ2h0IDogc291cmNlV2lkdGg7Cisg
ICAgc2l6ZV90IGhlaWdodCA9IHN3YXBYWSA/IHNvdXJjZVdpZHRoIDogc291cmNlSGVpZ2h0Owog
CiAgICAgR0xfVmlld3BvcnQoMCwgMCwgd2lkdGgsIGhlaWdodCk7CiAKQEAgLTY2NCw3ICs3MzEs
OSBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVBpeGVsQnVmZmVyVG9UZXh0
dXJlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2UsCiAgICAgLy8gQ29uZmlndXJlIHRoZSBkcmF3aW5n
IHBhcmFtZXRlcnMuCiAgICAgR0xfVW5pZm9ybTFpKG1feVRleHR1cmVVbmlmb3JtTG9jYXRpb24s
IDApOwogICAgIEdMX1VuaWZvcm0xaShtX3V2VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiwgMSk7Ci0g
ICAgR0xfVW5pZm9ybTFpKG1feXV2RmxpcFlVbmlmb3JtTG9jYXRpb24sIGZsaXBZID09IEZsaXBZ
OjpZZXMgPyAxIDogMCk7CisgICAgR0xfVW5pZm9ybTFpKG1feXV2RmxpcFlVbmlmb3JtTG9jYXRp
b24sIGZsaXBZID8gMSA6IDApOworICAgIEdMX1VuaWZvcm0xaShtX3l1dkZsaXBYVW5pZm9ybUxv
Y2F0aW9uLCBmbGlwWCA/IDEgOiAwKTsKKyAgICBHTF9Vbmlmb3JtMWkobV95dXZTd2FwWFlVbmlm
b3JtTG9jYXRpb24sIHN3YXBYWSA/IDEgOiAwKTsKICAgICBHTF9Vbmlmb3JtMmYobV95VGV4dHVy
ZVNpemVVbmlmb3JtTG9jYXRpb24sIHlQbGFuZVdpZHRoLCB5UGxhbmVIZWlnaHQpOwogICAgIEdM
X1VuaWZvcm0yZihtX3V2VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRpb24sIHV2UGxhbmVXaWR0aCwg
dXZQbGFuZUhlaWdodCk7CiAKQEAgLTY3OCw4ICs3NDcsOCBAQCBib29sIEdyYXBoaWNzQ29udGV4
dEdMQ1ZDb2NvYTo6Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYgaW1h
Z2UsCiAKICAgICBtX2xhc3RTdXJmYWNlID0gc3VyZmFjZTsKICAgICBtX2xhc3RTdXJmYWNlU2Vl
ZCA9IG5ld1N1cmZhY2VTZWVkOworICAgIG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbiA9IG9yaWVu
dGF0aW9uOwogICAgIG1fbGFzdFRleHR1cmVTZWVkLnNldChvdXRwdXRUZXh0dXJlLCBtX293bmVy
LnRleHR1cmVTZWVkKG91dHB1dFRleHR1cmUpKTsKLSAgICBtX2xhc3RGbGlwWSA9IGZsaXBZOwog
ICAgIGF1dG9DbGVhclRleHR1cmVPbkVycm9yLnJlbGVhc2UoKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBo
aWNzQ29udGV4dEdMQ1ZDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmgKaW5kZXggYzRlMzk2MGI2ZDcwODBlNGMzOTQw
YjhhZjdhZDlkY2U2MjQ2MjcwZi4uYTJmOWI4YTgyNGRhZWNlYTA4YmEyODVlOGJiYjRkMTk5Y2Vi
NTM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3Jh
cGhpY3NDb250ZXh0R0xDVkNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmgKQEAgLTI4LDcgKzI4LDcgQEAKICNp
ZiBFTkFCTEUoV0VCR0wpICYmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKIAog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMQ1YuaCIKLQorI2luY2x1ZGUgIkltYWdlT3JpZW50
YXRpb24uaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL1Vuc2FmZVBvaW50ZXIu
aD4KIApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICB+R3JhcGhpY3NDb250ZXh0R0xD
VkNvY29hKCkgZmluYWw7CiAKLSAgICBib29sIGNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBp
eGVsQnVmZmVyUmVmLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2
ZWwsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5
cGUsIEZsaXBZKSBmaW5hbDsKKyAgICBib29sIGNvcHlWaWRlb0ZyYW1lVG9UZXh0dXJlKE1lZGlh
UGxheWVyVmlkZW9GcmFtZSYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGlu
dCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVu
dW0gdHlwZSwgRmxpcFkpIGZpbmFsOwogCiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dEdM
Q1ZDb2NvYShHcmFwaGljc0NvbnRleHRHTENvY29hJik7CkBAIC02NCwxMiArNjQsMTQgQEAgcHJp
dmF0ZToKICAgICBHQ0dMaW50IG1feVRleHR1cmVVbmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAg
IEdDR0xpbnQgbV91dlRleHR1cmVVbmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQg
bV95dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CisgICAgR0NHTGludCBtX3l1dkZsaXBY
VW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKKyAgICBHQ0dMaW50IG1feXV2U3dhcFhZVW5pZm9ybUxv
Y2F0aW9uIHsgLTEgfTsKICAgICBHQ0dMaW50IG1fY29sb3JNYXRyaXhVbmlmb3JtTG9jYXRpb24g
eyAtMSB9OwogICAgIEdDR0xpbnQgbV95dXZQb3NpdGlvbkF0dHJpYnV0ZUxvY2F0aW9uIHsgLTEg
fTsKICAgICBHQ0dMaW50IG1feVRleHR1cmVTaXplVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKICAg
ICBHQ0dMaW50IG1fdXZUZXh0dXJlU2l6ZVVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAKLSAgICBG
bGlwWSBtX2xhc3RGbGlwWSB7IEZsaXBZOjpObyB9OworICAgIEltYWdlT3JpZW50YXRpb24gbV9s
YXN0U3VyZmFjZU9yaWVudGF0aW9uOwogICAgIFVuc2FmZVBvaW50ZXI8SU9TdXJmYWNlUmVmPiBt
X2xhc3RTdXJmYWNlOwogICAgIHVpbnQzMl90IG1fbGFzdFN1cmZhY2VTZWVkIHsgMCB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCAwNzMzZjNjMTc4NmUxYzU3MGJjOWUzYTRmNGQx
YjhlNzI3ZDE3YzY2Li5mZjEzMzk3ZTY0NDE5MWU0MDEzNzlmNWM4OGEwNDY2MWY3MTE3MDhhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTI2MCwxOCArMjYwLDE4IEBAIHZvaWQgUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlh
UGxheWVySWRlbnRpZmllCiAgICAgVU5VU0VEX1ZBUklBQkxFKHByZW11bHRpcGx5QWxwaGEpOwog
ICAgIEFTU0VSVF9VTlVTRUQodGFyZ2V0LCB0YXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0R0w6OlRF
WFRVUkVfMkQpOwogCi0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVy
OwotICAgIGF1dG8gZ2V0UGl4ZWxCdWZmZXIgPSBbJl0geworICAgIHN0ZDo6b3B0aW9uYWw8TWVk
aWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOworICAgIGF1dG8gZ2V0VmlkZW9GcmFtZSA9
IFsmXSB7CiAgICAgICAgIGlmICghbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmIChhdXRvIG1lZGlhUGxheWVyID0gbV9ncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLT5yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLm1lZGlh
UGxheWVyKG1lZGlhUGxheWVySWRlbnRpZmllcikpCi0gICAgICAgICAgICBwaXhlbEJ1ZmZlciA9
IG1lZGlhUGxheWVyLT5waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCk7CisgICAgICAgICAgICB2
aWRlb0ZyYW1lID0gbWVkaWFQbGF5ZXItPnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwogICAg
IH07CiAKLSAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoV1RGTW92ZShnZXRQaXhlbEJ1ZmZl
cikpOworICAgIGNhbGxPbk1haW5SdW5Mb29wQW5kV2FpdChXVEZNb3ZlKGdldFZpZGVvRnJhbWUp
KTsKIAotICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKKyAgICBpZiAoIXZpZGVvRnJhbWUpIHsKICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMjgyLDcgKzI4Miw3IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0
dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0Q1YtPmNvcHlQaXhlbEJ1
ZmZlclRvVGV4dHVyZShwaXhlbEJ1ZmZlci5nZXQoKSwgdGV4dHVyZSwgbGV2ZWwsIGludGVybmFs
Rm9ybWF0LCBmb3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpKTsK
KyAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0Q1YtPmNvcHlWaWRlb0ZyYW1lVG9UZXh0dXJl
KCp2aWRlb0ZyYW1lLCB0ZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlw
ZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSkpOwogI2Vsc2UKICAgICBVTlVTRURf
VkFSSUFCTEUobWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsKICAgICBVTlVTRURfVkFSSUFCTEUodGV4
dHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggODgxMDhjYmM1MzNjMTBjNzVlMzcwYmZjYzg5
ODAwYTUzYzY3MjlhZC4uNzY5MTNjOTY2Mjc5ZTQzOWZkMGRjNTc4ZWU5YmVjNWNkMTkxZTA5MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6aW52YWxpZGF0ZSgpCiAgICAgfQogICAgIG1fcmVuZGVyaW5nUmVzb3VyY2Vz
UmVxdWVzdCA9IHsgfTsKICNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIG1fcGl4ZWxCdWZmZXJG
b3JDdXJyZW50VGltZSA9IG51bGxwdHI7CisgICAgbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUg
PSBzdGQ6Om51bGxvcHQ7CiAjZW5kaWYKIH0KIApAQCAtODY4LDYgKzg2OCwyMSBAQCB2b2lkIFJl
bW90ZU1lZGlhUGxheWVyUHJveHk6OmN1cnJlbnRUaW1lQ2hhbmdlZChjb25zdCBNZWRpYVRpbWUm
IG1lZGlhVGltZSkKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkN1cnJlbnRUaW1lQ2hhbmdlZChtZWRpYVRpbWUsIE1v
bm90b25pY1RpbWU6Om5vdygpLCAhbWVkaWFQbGF5ZXJQYXVzZWRPclN0YWxsZWQoKSksIG1faWQp
OwogfQogCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50
VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiYmLCBib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4gcmVz
dWx0OworICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOworICAgIGlmIChtX3BsYXllcikK
KyAgICAgICAgdmlkZW9GcmFtZSA9IG1fcGxheWVyLT52aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUo
KTsKKyAgICBpZiAobV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgIT0gdmlkZW9GcmFtZSkgewor
ICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IHZpZGVvRnJhbWU7CisgICAgICAg
IGNoYW5nZWQgPSB0cnVlOworICAgICAgICByZXN1bHQgPSBXVEZNb3ZlKHZpZGVvRnJhbWUpOwor
ICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCksIGNoYW5nZWQpOwor
fQorCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnVwZGF0ZUNhY2hlZFN0YXRlKGJvb2wg
Zm9yY2VDdXJyZW50VGltZVVwZGF0ZSkKIHsKICAgICBpZiAoIW1fb2JzZXJ2aW5nVGltZUNoYW5n
ZXMgfHwgZm9yY2VDdXJyZW50VGltZVVwZGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4IDMyZjNhNDZh
YTBmMDliMTNiMDI0ZTQxNjQwNzhhNWRhZGRlZGM1NGUuLmUxMzk0NmY3YTdjMzMxZTcwM2QzNDZh
NTkzMGQxMDRhMzAyN2RmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAtMzIwLDkgKzMyMCw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXVEY6Ok1hY2hTZW5kUmlnaHQ+JiYsIFdlYkNvcmU6OkRl
c3RpbmF0aW9uQ29sb3JTcGFjZSk+JiYpOwogICAgIHZvaWQgY29sb3JTcGFjZShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSk+JiYpOwogI2VuZGlm
Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICB2b2lkIHBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWVJZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPj4mJik+JiYpOwotI2VuZGlmCisgICAgdm9pZCB2aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4mJiwgYm9vbCk+JiYpOwogCiAjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dl
cigpIGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyOyB9CkBAIC0zNzgsOSArMzc2LDcgQEAgcHJpdmF0
ZToKICAgICBTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0IG1fcmVuZGVyaW5nUmVzb3Vy
Y2VzUmVxdWVzdDsKIAogICAgIGJvb2wgbV9vYnNlcnZpbmdUaW1lQ2hhbmdlcyB7IGZhbHNlIH07
Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4g
bV9waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lOwotI2VuZGlmCisgICAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU+IG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1l
OwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbV9sb2dnZXI7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMzljODcyOWIy
NzM5ZTEzNjQ0YjMxYWE4MGRiYTgwZDRhMzMwYzhhZS4uZTUzOWI0OTJmNmZjMDU1NTc0NGU5MDU4
NDY0MzdkNDg4ZDUzODQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KQEAg
LTEyNiw5ICsxMjYsNyBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJl
ZkNvdW50ZWQgewogICAgIE5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSAtPiAoc3RkOjpvcHRp
b25hbDxNYWNoU2VuZFJpZ2h0PiBzZW5kUmlnaHQsIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JT
cGFjZSBjb2xvclNwYWNlKSBTeW5jaHJvbm91cwogICAgIENvbG9yU3BhY2UoKSAtPiAoV2ViQ29y
ZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UpIFN5bmNocm9ub3VzCiAjZW5kaWYK
LSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWVJZkNo
YW5nZWQoKSAtPiAoc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHBp
eGVsQnVmZmVyKSBTeW5jaHJvbm91cwotI2VuZGlmCisgICAgVmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lSWZDaGFuZ2VkKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRl
b0ZyYW1lPiB2aWRlb0ZyYW1lLCBib29sIGNoYW5nZWQpIFN5bmNocm9ub3VzCiAKICAgICBQbGF5
QXRIb3N0VGltZShNb25vdG9uaWNUaW1lIHRpbWUpCiAgICAgUGF1c2VBdEhvc3RUaW1lKE1vbm90
b25pY1RpbWUgdGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCmluZGV4
IGM2YmJhM2FhMmI0ZTU1ZmFlZmI5MzNiYmUyZTYzNTlkNzNmNjMxOTguLmZiZTEwYmMzMDVkMmQy
ZTE1YTI0YTdjZWU0NTA3ZWExNzY3Mzc0NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHlDb2NvYS5tbQpAQCAtMTI3LDIxICsxMjcsNiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6OmNvbG9yU3BhY2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXN0aW5hdAog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fcGxheWVyLT5jb2xvclNwYWNlKCkpOwogfQogCi0jaWYg
VVNFKEFWRk9VTkRBVElPTikKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cGl4ZWxCdWZm
ZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKLXsKLSAgICBzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPj4gcmVz
dWx0OwotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlcjsKLSAgICBp
ZiAobV9wbGF5ZXIpCi0gICAgICAgIHBpeGVsQnVmZmVyID0gbV9wbGF5ZXItPnBpeGVsQnVmZmVy
Rm9yQ3VycmVudFRpbWUoKTsKLSAgICBpZiAobV9waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lICE9
IHBpeGVsQnVmZmVyKSB7Ci0gICAgICAgIHJlc3VsdCA9IHBpeGVsQnVmZmVyOwotICAgICAgICBt
X3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUgPSBXVEZNb3ZlKHBpeGVsQnVmZmVyKTsKLSAgICB9
Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKLX0KLSNlbmRpZgotCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
UExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggOWE2NDI5
NDM3ODQyZjQzZGI2ZGExYzI1MDExZWQ0YTU0NGNiZjM2MS4uYjUzOTJlMDRkOWZmOTZkYmYxMTA4
MTRhODBhMDRhNmI2ZWYyODgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAt
MTAwMCwxMyArMTAwMCwxOCBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y29weVZp
ZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaQogICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQotI2VsaWYgIVBMQVRGT1JNKENPQ09BKQot
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGl4
ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCisjZW5kaWYKKworc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpNZWRpYVBsYXllclZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFt
ZT4gcmVzdWx0OworICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOworICAgIGlmICghY29ubmVjdGlv
bigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpWaWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6OlZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZDo6UmVwbHkocmVzdWx0LCBjaGFu
Z2VkKSwgbV9pZCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKGNoYW5n
ZWQpCisgICAgICAgIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID0gV1RGTW92ZShyZXN1bHQp
OworICAgIHJldHVybiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKIH0KLSNlbmRpZgogCiAj
aWYgIVBMQVRGT1JNKENPQ09BKQogUmVmUHRyPE5hdGl2ZUltYWdlPiBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6Om5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmgKaW5kZXggZWIzMjYyNDA0YzZmOTFkOGQyNjdhMzg1MTY0NTIyN2EwOTAzNzllOC4uZWEy
YTA2NmIwMDYzOTNhZDZkZTIzNWE1YTA5MjZmOTNjZTY3NjEwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oCkBAIC0yOTIsOSArMjkyLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50Q3Vy
cmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYpIGZpbmFsOwogI2lmICFVU0UoQVZGT1VOREFUSU9OKQogICAgIGJvb2wg
Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMKiwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dM
ZW51bSwgR0NHTGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwotI2Vsc2UKLSAgICBSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogI2Vu
ZGlmCisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZp
ZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRp
dmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIFdlYkNvcmU6
OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkgZmluYWw7CiAKQEAgLTQ2MSw5ICs0
NjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YWl0aW5nRm9yS2V5IHsgZmFsc2UgfTsKICAg
ICBib29sIG1fdGltZUlzUHJvZ3Jlc3NpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9yZW5kZXJp
bmdDYW5CZUFjY2VsZXJhdGVkIHsgZmFsc2UgfTsKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWU7
Ci0jZW5kaWYKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFt
ZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXJHYXRoZXJlZFdpdGhWaWRl
b0ZyYW1lTWV0YWRhdGE7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBpeGVsQnVmZmVy
Q29uZm9ybWVyQ1Y+IG1fcGl4ZWxCdWZmZXJDb25mb3JtZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQppbmRleCBjMGI3NzZkYzc3M2IxN2ZhNDMwY2Q1
ODk2OGIwMDdiMzFiZDc2YThkLi40MWRiYzdhNTNiNzE3NzYyZTQ1YTIwOWUwZjg0NzBlMTE1ZjEx
MDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29h
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0K
QEAgLTk0LDE4ICs5NCw2IEBAIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OmNvbG9yU3BhY2UoKQogICAgIHJldHVybiBjb2xvclNwYWNlOwog
fQogCi0jaWYgVVNFKEFWRk9VTkRBVElPTikKLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQotewot
ICAgIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+PiByZXN1bHQ7Ci0g
ICAgaWYgKCFjb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OlBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSwgTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHk6OlBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQ6
OlJlcGx5KHJlc3VsdCksIG1faWQpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBpZiAo
cmVzdWx0KQotICAgICAgICBtX3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUgPSBXVEZNb3ZlKCpy
ZXN1bHQpOwotICAgIHJldHVybiBtX3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWU7Ci19Ci0jZW5k
aWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNlNWMzMGQwZDRlZTJhMzU1ZTA2ODkwNjk3
ZDkwMjQ3YTBhZGNiNDQuLmQ1OTIyNTU5Mjc3ZTIxYWMyZTQyMTA3MWFmNTYyMmI1YjIzZTliNWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wMS0xNyAgS2ltbW8gS2lubnVuZW4gIDxra2lu
bnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBXZWJHTCBHUFUgYnVmZmVyIHRl
eHR1cmUgdXBsb2FkIHBhdGggZm9yIENvY29hIGdldFVzZXJNZWRpYSBjYW1lcmEgc3RyZWFtcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MjMzCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NzYwMTc2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlh
LXRvLWNhbnZhcy5odG1sOgorICAgICAgICAqIHdlYnJ0Yy9yb3V0aW5lcy5qczoKKyAgICAgICAg
VGVzdCBjYW1lcmEgaW1hZ2Ugcm90YXRpb25zIGluIHRoZSB0ZXN0LgorCiAyMDIyLTAxLTE3ICBD
aGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9yZz4KIAogICAgICAgICBbR1RLXSBJbXBs
ZW1lbnQgZm9ybSB2YWxpZGF0aW9uIHdpdGggZ3RrMyB3aWRnZXRzIGluIHRoZSBVSSBwcm9jZXNz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10
by1jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlh
LXRvLWNhbnZhcy5odG1sCmluZGV4IGQyODNmNDhmN2NmMzE0ZDMxNDlhMzJlM2Y4OTAzOWY3NDc4
NGZkYWEuLjMzYjA3ZTI0NmQ3OGJlZDEzNGI2Njk0ZjIyN2NiMzIyZjFiM2Y2YjEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNh
bnZhcy5odG1sCkBAIC0xOSw2ICsxOSwxMSBAQAogY29uc3Qgd3R1ID0gV2ViR0xUZXN0VXRpbHM7
CiBjb25zdCB3aWR0aCA9IDY0MzsKIGNvbnN0IHZlcmlmeVdpZHRoID0gMjAwOworY29uc3Qgc3Vi
Y2FzZXMgPSBbXTsKK2ZvciAobGV0IGFuZ2xlIG9mIFswLCA5MCwgMTgwLCAyNzBdKSB7CisgICAg
c3ViY2FzZXMucHVzaCh7IGFuZ2xlOiBhbmdsZSB9KTsKK30KKwogY29uc3QgZGVidWdlID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlYnVnZSIpOwogCiBhc3luYyBmdW5jdGlvbiBjcmVhdGVT
b3VyY2VWaWRlbygpIHsKQEAgLTU4LDEzICs2MywxOCBAQCBmdW5jdGlvbiBnZXRGcmFtZWJ1ZmZl
ckFzSW1hZ2VEYXRhKGdsKcKgewogcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGxldCB2
aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7CiAgICAgZGVidWdlLmFwcGVuZCh2aWRl
byk7Ci0gICAgbGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbyk7Ci0gICAgZGVi
dWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7Ci0KLSAgICBsZXQgY3R4ID0gY2FudmFzLmdldENvbnRl
eHQoIjJkIik7Ci0gICAgY3R4LmRyYXdJbWFnZSh2aWRlbywgMCwgMCwgY2FudmFzLndpZHRoLCBj
YW52YXMuaGVpZ2h0KTsKLSAgICBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFn
ZShjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCkpOwot
ICAgIGRlYnVnZS5yZW1vdmVDaGlsZChjYW52YXMpOworICAgIGZvciAobGV0IHN1YmNhc2Ugb2Yg
c3ViY2FzZXMpIHsKKyAgICAgICAgbGV0IHZpZGVvU2l6ZSA9IFt2aWRlby52aWRlb1dpZHRoLCB2
aWRlby52aWRlb0hlaWdodF07CisgICAgICAgIFsgLCB2aWRlb1NpemVdID0gc2V0TW9ja0NhbWVy
YUltYWdlT3JpZW50YXRpb24oc3ViY2FzZS5hbmdsZSwgdmlkZW9TaXplKTsKKyAgICAgICAgd2Fp
dEZvclZpZGVvU2l6ZSh2aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVbMV0pOworICAgICAg
ICBsZXQgY2FudmFzID0gY3JlYXRlVmVyaWZ5Q2FudmFzKHZpZGVvKTsKKyAgICAgICAgZGVidWdl
LmFwcGVuZENoaWxkKGNhbnZhcyk7CisKKyAgICAgICAgbGV0IGN0eCA9IGNhbnZhcy5nZXRDb250
ZXh0KCIyZCIpOworICAgICAgICBjdHguZHJhd0ltYWdlKHZpZGVvLCAwLCAwLCBjYW52YXMud2lk
dGgsIGNhbnZhcy5oZWlnaHQpOworICAgICAgICBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tD
YW1lcmFJbWFnZShjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhl
aWdodCkpOworICAgICAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQoY2FudmFzKTsKKyAgICB9CiAgICAg
ZGVidWdlLnJlbW92ZUNoaWxkKHZpZGVvKTsKIAogfSwgZG9jdW1lbnQudGl0bGUgKyAiIHZpYSAy
RENvbnRleHQiKTsKQEAgLTcyLDU5ICs4Miw3NSBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgbGV0IHZpZGVvID0gYXdhaXQgY3JlYXRl
U291cmNlVmlkZW8oKTsKICAgICBkZWJ1Z2UuYXBwZW5kKHZpZGVvKTsKLSAgICBsZXQgY2FudmFz
ID0gY3JlYXRlVmVyaWZ5Q2FudmFzKHZpZGVvKTsKLSAgICBkZWJ1Z2UuYXBwZW5kQ2hpbGQoY2Fu
dmFzKTsKLQotICAgIGxldCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKLSAgICBsZXQg
aW1hZ2VCaXRtYXAgPSBhd2FpdCBjcmVhdGVJbWFnZUJpdG1hcCh2aWRlbyk7Ci0gICAgY3R4LmRy
YXdJbWFnZShpbWFnZUJpdG1hcCwgMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsK
LSAgICBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShjdHguZ2V0SW1hZ2VE
YXRhKDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCkpOwotICAgIGRlYnVnZS5yZW1v
dmVDaGlsZChjYW52YXMpOworICAgIGZvciAobGV0IHN1YmNhc2Ugb2Ygc3ViY2FzZXMpIHsKKyAg
ICAgICAgbGV0IHZpZGVvU2l6ZSA9IFt2aWRlby52aWRlb1dpZHRoLCB2aWRlby52aWRlb0hlaWdo
dF07CisgICAgICAgIFsgLCB2aWRlb1NpemVdID0gc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50YXRp
b24oc3ViY2FzZS5hbmdsZSwgdmlkZW9TaXplKTsKKyAgICAgICAgd2FpdEZvclZpZGVvU2l6ZSh2
aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVbMV0pOworICAgICAgICBsZXQgY2FudmFzID0g
Y3JlYXRlVmVyaWZ5Q2FudmFzKHZpZGVvKTsKKyAgICAgICAgZGVidWdlLmFwcGVuZENoaWxkKGNh
bnZhcyk7CisKKyAgICAgICAgbGV0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAg
ICAgICBsZXQgaW1hZ2VCaXRtYXAgPSBhd2FpdCBjcmVhdGVJbWFnZUJpdG1hcCh2aWRlbyk7Cisg
ICAgICAgIGN0eC5kcmF3SW1hZ2UoaW1hZ2VCaXRtYXAsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2Fu
dmFzLmhlaWdodCk7CisgICAgICAgIGFzc2VydEltYWdlRGF0YUNvbnRhaW5zTW9ja0NhbWVyYUlt
YWdlKGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KSk7
CisgICAgICAgIGRlYnVnZS5yZW1vdmVDaGlsZChjYW52YXMpOworICAgIH0KICAgICBkZWJ1Z2Uu
cmVtb3ZlQ2hpbGQodmlkZW8pOwogfSwgZG9jdW1lbnQudGl0bGUgKyAiIHZpYSBJbWFnZUJpdG1h
cCB0byAyRENvbnRleHQiKTsKIAogcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGxldCB2
aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7CiAgICAgZGVidWdlLmFwcGVuZCh2aWRl
byk7Ci0gICAgbGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbyk7Ci0gICAgZGVi
dWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7Ci0KLSAgICBsZXQgZ2wgPSBjcmVhdGVWZXJpZnlXZWJH
TENvbnRleHQoY2FudmFzKTsKLSAgICBsZXQgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsK
LSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAgICBnbC50ZXhQ
YXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVT
VCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19G
SUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGdsLnRleFBhcmFtZXRl
cmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwot
ICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgdmlkZW8pOwotICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCwg
WzAsIDAsIDAsIDI1NV0pOwotCi0gICAgbGV0IGltYWdlRGF0YSA9IGdldEZyYW1lYnVmZmVyQXNJ
bWFnZURhdGEoZ2wpOwotICAgIGFzc2VydEltYWdlRGF0YUNvbnRhaW5zTW9ja0NhbWVyYUltYWdl
KGltYWdlRGF0YSk7Ci0gICAgZGVidWdlLnJlbW92ZUNoaWxkKGNhbnZhcyk7CisgICAgZm9yIChs
ZXQgc3ViY2FzZSBvZiBzdWJjYXNlcykgeworICAgICAgICBsZXQgdmlkZW9TaXplID0gW3ZpZGVv
LnZpZGVvV2lkdGgsIHZpZGVvLnZpZGVvSGVpZ2h0XTsKKyAgICAgICAgWyAsIHZpZGVvU2l6ZV0g
PSBzZXRNb2NrQ2FtZXJhSW1hZ2VPcmllbnRhdGlvbihzdWJjYXNlLmFuZ2xlLCB2aWRlb1NpemUp
OworICAgICAgICB3YWl0Rm9yVmlkZW9TaXplKHZpZGVvLCB2aWRlb1NpemVbMF0sIHZpZGVvU2l6
ZVsxXSk7CisgICAgICAgIGxldCBjYW52YXMgPSBjcmVhdGVWZXJpZnlDYW52YXModmlkZW8pOwor
ICAgICAgICBkZWJ1Z2UuYXBwZW5kQ2hpbGQoY2FudmFzKTsKKworICAgICAgICBsZXQgZ2wgPSBj
cmVhdGVWZXJpZnlXZWJHTENvbnRleHQoY2FudmFzKTsKKyAgICAgICAgbGV0IHRleHR1cmUgPSBn
bC5jcmVhdGVUZXh0dXJlKCk7CisgICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IHRleHR1cmUpOworICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRF
WFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICAg
ICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wu
Q0xBTVBfVE9fRURHRSk7CisgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOworICAgICAgICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IHZpZGVvKTsKKyAgICAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwg
MjU1XSk7CisKKyAgICAgICAgbGV0IGltYWdlRGF0YSA9IGdldEZyYW1lYnVmZmVyQXNJbWFnZURh
dGEoZ2wpOworICAgICAgICBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShp
bWFnZURhdGEpOworICAgICAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQoY2FudmFzKTsKKyAgICB9CiAg
ICAgZGVidWdlLnJlbW92ZUNoaWxkKHZpZGVvKTsKIH0sIGRvY3VtZW50LnRpdGxlICsgIiB2aWEg
V2ViR0wgdGV4dHVyZSIpOwogCiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgbGV0IHZp
ZGVvID0gYXdhaXQgY3JlYXRlU291cmNlVmlkZW8oKTsKICAgICBkZWJ1Z2UuYXBwZW5kKHZpZGVv
KTsKLSAgICBsZXQgY2FudmFzID0gY3JlYXRlVmVyaWZ5Q2FudmFzKHZpZGVvKTsKLSAgICBkZWJ1
Z2UuYXBwZW5kQ2hpbGQoY2FudmFzKTsKLQotICAgIGxldCBnbCA9IGNyZWF0ZVZlcmlmeVdlYkdM
Q29udGV4dChjYW52YXMpOwotICAgIGxldCB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwot
ICAgIGxldCBpbWFnZUJpdG1hcCA9IGF3YWl0IGNyZWF0ZUltYWdlQml0bWFwKHZpZGVvKTsKLSAg
ICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAgICBnbC50ZXhQYXJh
bWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7
Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxU
RVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wu
VEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotICAg
IGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgaW1hZ2VCaXRtYXApOwotICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChn
bCwgWzAsIDAsIDAsIDI1NV0pOwotCi0gICAgbGV0IGltYWdlRGF0YSA9IGdldEZyYW1lYnVmZmVy
QXNJbWFnZURhdGEoZ2wpOwotICAgIGFzc2VydEltYWdlRGF0YUNvbnRhaW5zTW9ja0NhbWVyYUlt
YWdlKGltYWdlRGF0YSk7Ci0gICAgZGVidWdlLnJlbW92ZUNoaWxkKGNhbnZhcyk7CisgICAgZm9y
IChsZXQgc3ViY2FzZSBvZiBzdWJjYXNlcykgeworICAgICAgICBsZXQgdmlkZW9TaXplID0gW3Zp
ZGVvLnZpZGVvV2lkdGgsIHZpZGVvLnZpZGVvSGVpZ2h0XTsKKyAgICAgICAgWyAsIHZpZGVvU2l6
ZV0gPSBzZXRNb2NrQ2FtZXJhSW1hZ2VPcmllbnRhdGlvbihzdWJjYXNlLmFuZ2xlLCB2aWRlb1Np
emUpOworICAgICAgICB3YWl0Rm9yVmlkZW9TaXplKHZpZGVvLCB2aWRlb1NpemVbMF0sIHZpZGVv
U2l6ZVsxXSk7CisgICAgICAgIAorICAgICAgICBsZXQgY2FudmFzID0gY3JlYXRlVmVyaWZ5Q2Fu
dmFzKHZpZGVvKTsKKyAgICAgICAgZGVidWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7CisKKyAgICAg
ICAgbGV0IGdsID0gY3JlYXRlVmVyaWZ5V2ViR0xDb250ZXh0KGNhbnZhcyk7CisgICAgICAgIGxl
dCB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgICAgICBsZXQgaW1hZ2VCaXRtYXAg
PSBhd2FpdCBjcmVhdGVJbWFnZUJpdG1hcCh2aWRlbyk7CisgICAgICAgIGdsLmJpbmRUZXh0dXJl
KGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOworICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgICAgIGds
LnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5O
RUFSRVNUKTsKKyAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7CisgICAgICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOworICAg
ICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGds
LlVOU0lHTkVEX0JZVEUsIGltYWdlQml0bWFwKTsKKyAgICAgICAgd3R1LmNsZWFyQW5kRHJhd1Vu
aXRRdWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7CisKKyAgICAgICAgbGV0IGltYWdlRGF0YSA9IGdl
dEZyYW1lYnVmZmVyQXNJbWFnZURhdGEoZ2wpOworICAgICAgICBhc3NlcnRJbWFnZURhdGFDb250
YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEpOworICAgICAgICBkZWJ1Z2UucmVtb3ZlQ2hp
bGQoY2FudmFzKTsKKyAgICB9CiAgICAgZGVidWdlLnJlbW92ZUNoaWxkKHZpZGVvKTsKIH0sIGRv
Y3VtZW50LnRpdGxlICsgIiB2aWEgSW1hZ2VCaXRtYXAgdG8gV2ViR0wgdGV4dHVyZSIpOwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMgYi9MYXlvdXRUZXN0cy93
ZWJydGMvcm91dGluZXMuanMKaW5kZXggZjgzN2FhMDBkN2FlMzc4YjQ1NWM4Y2NhNDQ5ODE5NTBi
YTA1ZTA5YS4uOGE3YzIxZDE5NmQ0NTk0NWViZGFjZTg1MGNjY2RhMDVlZjhkMjRiMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVzLmpzCisrKyBiL0xheW91dFRlc3RzL3dl
YnJ0Yy9yb3V0aW5lcy5qcwpAQCAtMjk4LDYgKzI5OCwyMSBAQCBmdW5jdGlvbiBzZXRIMjY0SGln
aENvZGVjKHNkcCkKICAgICB9KS5qb2luKCdcclxuJyk7CiB9CiAKKy8vIFNldHMgdGhlIGNhbWVy
YSBpbWFnZSBvcmllbnRhdGlvbiBpZiBydW5uaW5nIG9uIHRlc3QgcnVubmVyLgorLy8gYW5nbGU6
IG9yaWVudGF0aW9uIGFuZ2xlIG9mIHRoZSBjYW1lcmEgaW1hZ2UgaW4gZGVncmVlcworZnVuY3Rp
b24gc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50YXRpb24oYW5nbGUsIHZpZGVvU2l6ZSkgeworICAg
IGlmIChbMCwgOTAsIDE4MCwgMjcwXS5pbmRleE9mKGFuZ2xlKSA9PSAtMSkKKyAgICAgICAgdGhy
b3cgImludmFsaWQgYW5nbGUiOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0TW9ja0NhbWVyYU9yaWVudGF0aW9uKGFuZ2xlKTsKKyAgICAgICAg
aWYgKHZpZGVvU2l6ZSAmJiAoYW5nbGUgPT0gOTAgfHwgYW5nbGUgPT0gMjcwKSkKKyAgICAgICAg
ICAgIHZpZGVvU2l6ZSA9IFt2aWRlb1NpemVbMV0sIHZpZGVvU2l6ZVswXV07CisgICAgICAgIHJl
dHVybiBbYW5nbGUsIHZpZGVvU2l6ZV07CisgICAgfQorICAgIHJldHVybiBbMCwgdmlkZW9TaXpl
XTsKK30KKwogLy8gUmV0dXJucyBVaW50OEFycmF5WzRdIG9mIFJHQkEgY29sb3IuCiAvLyBwOiBb
eCwgeV0gb2YgMC4uMSByYW5nZS4KIGZ1bmN0aW9uIGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0
YSwgcCkKQEAgLTMxMSwxNiArMzI2LDI2IEBAIGZ1bmN0aW9uIGdldEltYWdlRGF0YVBpeGVsKGlt
YWdlRGF0YSwgcCkKIC8vIEFzc2VydHMgdGhhdCBJbWFnZURhdGEgaW5zdGFuY2UgY29udGFpbnMg
bW9jayBjYW1lcmEgaW1hZ2UgcmVuZGVyZWQgYnkgTWluaUJyb3dzZXIgYW5kIFdlYktpdFRlc3RS
dW5uZXIuCiAvLyBPYnRhaW4gZnVsbCBjYW1lcmEgaW1hZ2Ugb2Ygc2l6ZSBgd2lkdGhgOgogLy8g
IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgdmlkZW86IHsgd2lk
dGg6IHsgZXhhY3Q6IHdpZHRoIH0gfSB9KTsKLWZ1bmN0aW9uIGFzc2VydEltYWdlRGF0YUNvbnRh
aW5zTW9ja0NhbWVyYUltYWdlKGltYWdlRGF0YSkKK2Z1bmN0aW9uIGFzc2VydEltYWdlRGF0YUNv
bnRhaW5zTW9ja0NhbWVyYUltYWdlKGltYWdlRGF0YSwgYW5nbGUpCiB7CisgICAgaWYgKHR5cGVv
ZiBhbmdsZSA9PT0gInVuZGVmaW5lZCIpCisgICAgICAgIGFuZ2xlID0gMDsKKyAgICBmdW5jdGlv
biByb3RhdGVQb2ludChwKSB7CisgICAgICAgIHJldHVybiBbIHBbMF0sIHBbMV0gXTsKKyAgICB9
CisgICAgICAgIAogICAgIGNvbnN0IHdoaXRlID0gWyAyNTUsIDI1NSwgMjU1LCAyNTUgXTsKKyAg
ICBjb25zdCB3aGl0ZVBvaW50ID0gcm90YXRlUG9pbnQoWyAwLjA0LCAwLjcgXSk7CiAgICAgY29u
c3QgeWVsbG93ID0gWyAyNTUsIDI1NSwgMCwgMjU1IF07CisgICAgY29uc3QgeWVsbG93UG9pbnQg
PSByb3RhdGVQb2ludChbIDAuMDgsIDAuNyBdKTsKICAgICBjb25zdCBjeWFuID0gWyAwLCAyNTUs
IDI1NSwgMjU1IF07CisgICAgY29uc3QgY3lhblBvaW50ID0gcm90YXRlUG9pbnQoWyAwLjEyLCAw
LjcgXSk7CiAgICAgY29uc3QgbGlnaHRHcmVlbiA9IFsgMCwgMTI4LCAwLCAyNTUgXTsKKyAgICBj
b25zdCBsaWdodEdyZWVuUG9pbnQgPSByb3RhdGVQb2ludChbIDAuMTYsIDAuNyBdKTsKIAogICAg
IGxldCBlcnIgPSAzOwotICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0
YVBpeGVsKGltYWdlRGF0YSwgWyAwLjA0LCAwLjcgXSksIHdoaXRlLCBlcnIsICJ3aGl0ZSByZWN0
IG5vdCBmb3VuZCIpOwotICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0
YVBpeGVsKGltYWdlRGF0YSwgWyAwLjA4LCAwLjcgXSksIHllbGxvdywgZXJyLCAieWVsbG93IHJl
Y3Qgbm90IGZvdW5kIik7Ci0gICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VE
YXRhUGl4ZWwoaW1hZ2VEYXRhLCBbIDAuMTIsIDAuNyBdKSwgY3lhbiwgZXJyLCAiY3lhbiByZWN0
IG5vdCBmb3VuZCIpOwotICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0
YVBpeGVsKGltYWdlRGF0YSwgWyAwLjE2LCAwLjcgXSksIGxpZ2h0R3JlZW4sIGVyciwgImxpZ2h0
IGdyZWVuIHJlY3Qgbm90IGZvdW5kIik7CisgICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMo
Z2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCB3aGl0ZVBvaW50KSwgd2hpdGUsIGVyciwgIndo
aXRlIHJlY3Qgbm90IGZvdW5kIik7CisgICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0
SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCB5ZWxsb3dQb2ludCksIHllbGxvdywgZXJyLCAieWVs
bG93IHJlY3Qgbm90IGZvdW5kIik7CisgICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0
SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCBjeWFuUG9pbnQpLCBjeWFuLCBlcnIsICJjeWFuIHJl
Y3Qgbm90IGZvdW5kIik7CisgICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VE
YXRhUGl4ZWwoaW1hZ2VEYXRhLCBsaWdodEdyZWVuUG9pbnQpLCBsaWdodEdyZWVuLCBlcnIsICJs
aWdodCBncmVlbiByZWN0IG5vdCBmb3VuZCIpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449381</attachid>
            <date>2022-01-18 06:11:57 -0800</date>
            <delta_ts>2022-01-18 07:23:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235233-20220118161155.patch</filename>
            <type>text/plain</type>
            <size>76875</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAwODliMmFlOGM0YTE0
ZGNmNGYwYTFlZjc4ZTE5ZjQ4ZmNiMjU0NC4uNDY5NGE3YTc1NDBjOTUxYTQxOTAzYjhlOWYwYWYy
ZDA3NGEzNDI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIyLTAxLTE3ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdl
YkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlh
IGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NjAxNzYyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgZnVsbCB0ZXh0
dXJlIHVwbG9hZHMgZnJvbSBNU0UgY2FtZXJhIGNhcHR1cmVzIHVzZSBDVlBpeGVsQnVmZmVycwor
ICAgICAgICBpbnN0ZWFkIG9mIHJlYWRpbmcgdGhlIHBpeGVscyBiYWNrLgorICAgICAgICBJbXBs
ZW1lbnQgTWVkaWFQbGF5ZXJJbnRlcmZhY2U6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKSBm
b3IKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLgorICAgICAg
ICBSZW5hbWUgZnVuY3Rpb25zIGZyb20gcGl4ZWxCdWZmZXIuLi4gdG8gdmlkZW9GcmFtZS4KKyAg
ICAgICAgVXNlIG5ldyB0eXBlIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBpbnN0ZWFkIG9mIENWUGl4
ZWxCdWZmZXIuCisgICAgICAgIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBjb250YWlucyBhbHNvIHRo
ZSBmcmFtZSBvcmllbnRhdGlvbi4gVGhlCisgICAgICAgIG9yaWVudGF0aW9uIGlzIG5lZWRlZCBh
cyB0aGUgY2FtZXJhIG1pZ2h0IGNhcHR1cmUgdGhlIGltYWdlCisgICAgICAgIHdpdGggYSByb3Rh
dGlvbiBvciBhIGZsaXAuCisKKyAgICAgICAgVG8gYXZvaWQgaWZkZWZzLCB0aGUgbmV3IEFQSSB2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgZXhpc3RzCisgICAgICAgIGZvciBhbGwgcGxhdGZvcm1z
LCBidXQgaXMgY3VycmVudGx5IGNhbGxlZCBvbmx5IGJ5IENvY29hLgorICAgICAgICBBbHNvIHRo
ZSB0eXBlIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBleGlzdHMgZm9yIGFsbCBwbGF0Zm9ybXMKKyAg
ICAgICAgYnV0IGhhcyB0aGUgZnJhbWUgY29udGVudHMgaW1wbGVtZW50YXRpb24gb25seSBmb3Ig
Q29jb2EuCisKKyAgICAgICAgVGVzdGVkIGJ5IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlh
LXRvLWNhbnZhcy5odG1sCisKKyAgICAgICAgQ3VycmVudGx5IHRoZSAibWlycm9yZWQiIHBhcnQg
aXMgdGVzdGVkIG1hbnVhbGx5LCBXZWJLaXQKKyAgICAgICAgZG9lcyBub3QgcmVxdWVzdCBtaXJy
b3JlZCBjYW1lcmEgaW1hZ2Ugc28gaXQgaXMgZGVhZCBjb2RlLgorCisgICAgICAgICogSGVhZGVy
cy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6dmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpwaXhlbEJ1
ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
Ojpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpwaXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclZpZGVvRnJhbWUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclZpZGVvRnJhbWU6Om9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyVmlkZW9GcmFtZTo6cGl4ZWxCdWZmZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lQVZGLm1tOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRl
eHRHTENWLmguCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU6Ok1lZGlh
UGxheWVyVmlkZW9GcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwaXhl
bEJ1ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjp2
aWRlb09yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRleHR1cmVGcm9tTWVkaWEp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpHcmFwaGlj
c0NvbnRleHRHTENWQ29jb2EpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xD
VkNvY29hOjpjb3B5VmlkZW9GcmFtZVRvVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29h
Lmg6CisKIDIwMjItMDEtMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6cmVzZXQgc2hvdWxkIGhv
cCB0byB0aGUgbWFpbiB0aHJlYWQgYmVmb3JlIGNhbGxpbmcgaXRzIG9ic2VydmVycwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA3OTM1NWI5Mzk1NmUwMzQ1NGMxNjZjYTVjZDNjZjkzM2EyMTVhYjI1Li40ZDVmYzE0MjI1
YjkwOTQyNzJkYWJiODhiNzg4Y2ZhNjAzM2RlMzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBA
CisyMDIyLTAxLTE3ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IFdlYkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0aCBmb3Ig
Q29jb2EgZ2V0VXNlck1lZGlhIGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg3NjAxNzYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbmFtZSBmdW5jdGlvbnMgZnJvbSBwaXhlbEJ1ZmZlci4uLiB0byB2aWRlb0ZyYW1lLgor
ICAgICAgICBTZW5kIG5ldyB0eXBlIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBpbnN0ZWFkIG9mIENW
UGl4ZWxCdWZmZXIuCisgICAgICAgIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBjb250YWlucyBhbHNv
IHRoZSBmcmFtZSBvcmllbnRhdGlvbi4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cGl4
ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBpeGVsQnVm
ZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWUpOiBEZWxldGVkLgorCiAyMDIyLTAxLTE3ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbR1RLXSBJbXBsZW1lbnQgZm9ybSB2YWxpZGF0aW9uIHdpdGgg
Z3RrMyB3aWRnZXRzIGluIHRoZSBVSSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA4ODkw
ZjhkYmE0NzRjMzkyYzM3MzI5OGRhNzU4MGY3MTljZTVjM2RlLi43OGU3YmM5MTI2NzI2MjU5NTQ4
MWE5Mjg1MjRlOTgwZmJhNTQzODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE1MTEsNiArMTUx
MSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllckVudW1zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllcklkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNvdXJjZVByaXZhdGUuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFVc2FnZUluZm8uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMmMzYjRmODFhNTJm
NTY2OTljYmZkNDEyZGZhYzA5NDM2NjZhZWFlNy4uZGQxZWQ4YWU2MmYyYTRiMmU2M2QxZWQxOTM1
MTU5OGZlZTBkYmNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yOTYsNiArMjk2LDcg
QEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNr
UHJpdmF0ZUFWRi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWJhY2tUYXJnZXRDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXllclZpZGVvRnJhbWVBVkYubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIw
ODFiNmExOWQzZGQ1ZmI2N2ZiMTZlN2JmYTljNzU4NmZmOWYxYWQuLjI5MmI1YzExYzY4NzRlOTIw
YmYyNTE5YTU2N2MwNzhiZmYwMTU5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI0MCw2ICsyNDAsNyBAQAogCQkwODFFQkYz
QjBGRDM0RjQxMDBEQTc1NTkgLyogU1ZHRmlsdGVyQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDgxRUJGMzkwRkQzNEY0MTAwREE3NTU5IC8q
IFNWR0ZpbHRlckJ1aWxkZXIuaCAqLzsgfTsKIAkJMDgzREFFQTcwRjAxQTdGQjAwMzQyNzU0IC8q
IFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODNEQUVBMzBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmUuaCAqLzsgfTsKIAkJMDgzREFFQTkwRjAxQTdGQjAwMzQyNzU0IC8q
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDgzREFFQTUwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5oICovOyB9OworCQkwODQ0QjAxRDEyNTVCNEU2MDBCOUNERDAg
LyogU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDg0NEIwMUQxMjU1RTRFNjAwQjlDREQwIC8qIFNWR0JvdW5k
aW5nQm94Q29tcHV0YXRpb24uaCAqLzsgfTsKIAkJMDg0NTY4MDgxMkI5MERBNjAwOTYwQTlGIC8q
IEZvbnRNZXRyaWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwODQ1NjgwNzEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwODU0QjAxNTEyNTVFNEU2
MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODU0QjAwMzEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZH
SW5saW5lLmggKi87IH07CiAJCTA4NTRCMDE3MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJ
bmxpbmVUZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwODU0QjAwNTEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lVGV4dC5oICovOyB9
OwpAQCAtMjM5MSw2ICsyMzkyLDcgQEAKIAkJN0FGOUIyMEYxOENGQjVGNDAwQzY0QkVGIC8qIEpT
VlRUUmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0FGOUIyMEIxOENGQjVGMzAwQzY0QkVGIC8qIEpTVlRUUmVnaW9uTGlzdC5oICovOyB9
OwogCQk3QjEwMzM5RTI1NDk3MjE3MDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IxMDMzOUQyNTQ5
NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjEwMzM5RjI1NDk3MjFFMDBDOEMxQUMg
LyogR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3ND
b250ZXh0R0xDVkNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJN0I0NDEwRTEyNzk1OEZDNTAwMEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9G
cmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I0
NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNjA5NEREMjcwQzQ0
QkQwMDY0ODM1QyAvKiBBTkdMRVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEFOR0xFVXRp
bGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNl
U3dhcENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VT
d2FwQ2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3QjcyMEIwQzI3NDNEQkE3MDAwOEFCRUQgLyogR3JhcGhpY3NMYXllckNvbnRlbnRzRGlz
cGxheURlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QjcyMEIwQTI3NDNEQkE2MDAwOEFCRUQgLyogR3JhcGhpY3NMYXllckNvbnRlbnRzRGlz
cGxheURlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTQ2MzYsOCArNDYzOCw4IEBACiAJCUNERjc0N0YxMjcwRjc2NkYwMDhGRUVFQyAv
KiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0N0YwMjcwRjc2NkYwMDhGRUVFQyAvKiBSZW5k
ZXJTVkdSZXNvdXJjZU1hcmtlcklubGluZXMuaCAqLzsgfTsKIAkJQ0RGNzQ3RjMyNzBGNzZDRjAw
OEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnRJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDdGMjI3MEY3NkNG
MDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMuaCAqLzsg
fTsKIAkJQ0RGNzQ3RjUyNzBGODNCMTAwOEZFRUVDIC8qIFJlbmRlclNWR0dyYWRpZW50U3RvcElu
bGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
Rjc0N0Y0MjcwRjgzQjEwMDhGRUVFQyAvKiBSZW5kZXJTVkdHcmFkaWVudFN0b3BJbmxpbmVzLmgg
Ki87IH07Ci0JCUNERjc0N0Y3MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFw
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERjc0N0Y2MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMu
aCAqLzsgfTsKIAkJQ0RGNzQ3RjcyNzBGODNCNDEwN0RFRUVDIC8qIFJlbmRlclNWR1NoYXBlSW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RG
NzQ3RjYyNzBGODNCNDEwN0RFRUVDIC8qIFJlbmRlclNWR1NoYXBlSW5saW5lcy5oICovOyB9Owor
CQlDREY3NDdGNzI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDdG
NjI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmggKi87IH07
CiAJCUNERjc0N0Y5MjcwRjg3Q0IwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdy
YWRpZW50SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RGNzQ3RjgyNzBGODdDQjAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlUmFkaWFs
R3JhZGllbnRJbmxpbmVzLmggKi87IH07CiAJCUNERjc0N0ZCMjcwRjg5MUEwMDhGRUVFQyAvKiBS
ZW5kZXJTVkdSZXNvdXJjZU1hc2tlcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0N0ZBMjcwRjg5MUEwMDhGRUVFQyAvKiBSZW5kZXJT
VkdSZXNvdXJjZU1hc2tlcklubGluZXMuaCAqLzsgfTsKIAkJQ0RGNzQ4M0YxOEZFQkNFQzAwMDZF
Q0MwIC8qIEdyaWRQb3NpdGlvbnNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ4M0QxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRQb3Np
dGlvbnNSZXNvbHZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC02MTk4LDEwICs2MjAwLDEyIEBACiAJCTA4MUFBOEQ5MTExMTIzN0UwMDJBQjA2
RSAvKiBTVkdFbGVtZW50UmFyZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHRWxlbWVudFJhcmVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4
MUVCRjM4MEZEMzRGNDEwMERBNzU1OSAvKiBTVkdGaWx0ZXJCdWlsZGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0ZpbHRlckJ1aWxkZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwODFFQkYzOTBGRDM0RjQxMDBEQTc1NTkgLyogU1ZHRmls
dGVyQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdGaWx0ZXJC
dWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4MzRCMDBDMTI0NEU0RTYw
MEI5Q0REMCAvKiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODNEQUVBMjBGMDFBN0ZCMDAzNDI3NTQgLyogUmVu
ZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwODNEQUVBMzBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRy
b2xNdWx0aUxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgzREFF
QTQwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODNEQUVBNTBGMDFBN0ZC
MDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwODQ0QjAxRDEyNTVFNEU2MDBCOUNERDAgLyogU1ZHQm91
bmRpbmdCb3hDb21wdXRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA4NDU2ODA3MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBGb250TWV0cmljcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwODU0QjAwMjEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR0lubGluZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NTRCMDAzMTI1NUU0RTYwMEI5Q0REMCAv
KiBSZW5kZXJTVkdJbmxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyU1ZHSW5saW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTQ2OSw2ICsx
MTQ3Myw4IEBACiAJCTdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBH
cmFwaGljc0NvbnRleHRHTENWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1Yu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxNjE5MTAyNzE5ODgwRTAwQzQwRUFD
IC8qIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdCNDQxMERGMjc5NThGQzQwMDBCNEY4QSAvKiBNZWRpYVBsYXllclZp
ZGVvRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJW
aWRlb0ZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCNDQxMEUyMjc5NThG
REUwMDBCNEY4QSAvKiBNZWRpYVBsYXllclZpZGVvRnJhbWVBVkYubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBNZWRpYVBsYXllclZpZGVvRnJhbWVBVkYubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdCNkRDODE1MjU3MTJFOTEwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElP
U3VyZmFjZVN3YXBDaGFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdCNkRDODE3MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRl
eHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QjcyMEIwQTI3NDNEQkE2MDAwOEFCRUQgLyogR3JhcGhpY3NMYXllckNv
bnRlbnRzRGlzcGxheURlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTM0MDcsOSArMTM0MTMsOSBAQAogCQlBMTBCQjU4MzE0ODRFM0E3MDBC
MkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZHUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMZWdhY3lSZW5kZXJTVkdSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUExMEJCNTgzMTQ4NEUzQTcwMEIzQUI2RCAvKiBSZW5kZXJTVkdSZWN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1JlY3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTEwQkI1ODgxNDg0RTNCMzAwQjJFODdBIC8qIExlZ2FjeVJlbmRlclNW
R1NoYXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlZ2FjeVJl
bmRlclNWR1NoYXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTEwQ0M1ODgx
NDczRTNCMzAwQjJBOEJGIC8qIFJlbmRlclNWR1NoYXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEwQkI1ODkxNDg0RTNCMzAwQjJFODdBIC8qIExlZ2FjeVJlbmRlclNWR1No
YXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1No
YXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg5MTQ4NEUzQjMwMEMz
Rjc3QiAvKiBSZW5kZXJTVkdTaGFwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW5kZXJTVkdTaGFwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTBDQzU4
ODE0NzNFM0IzMDBCMkE4QkYgLyogUmVuZGVyU1ZHU2hhcGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMTBENkU5NDIxNDRDOTk4MDBGREQxNEQgLyogSlNQYXltZW50UmVzcG9u
c2VDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQYXltZW50UmVzcG9uc2VDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBEQkY0NjE4RjkyMzE3MDAwRDcw
QzYgLyogTGVnYWN5UHJldmlld0xvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExMERDNzY4MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlR3JpZERhdGEuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYzMTEsOCArMTYzMTcsOCBAQAogCQlD
REY3NDdGMDI3MEY3NjZGMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXJJbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGMjI3MEY3NkNGMDA4RkVFRUMgLyogUmVu
ZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RGNzQ3RjQyNzBGODNCMTAwOEZFRUVDIC8qIFJlbmRlclNWR0dyYWRpZW50
U3RvcElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHR3JhZGllbnRTdG9wSW5saW5l
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDREY3NDdGNjI3MEY4NkE0MDA4RkVF
RUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2Fj
eVJlbmRlclNWR1NoYXBlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REY3NDdGNjI3MEY4M0I0MTA3REVFRUMgLyogUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDREY3NDdGNjI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJ
bmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1NoYXBlSW5saW5lcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGODI3MEY4N0NCMDA4RkVFRUMgLyog
UmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0RGNzQ3RkEyNzBGODkxQTAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291
cmNlTWFza2VySW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tl
cklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNzQ4M0MxOEZFQkNF
QzAwMDZFQ0MwIC8qIEdyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTg3MDMsNiArMTg3MDksNyBAQAogCQkJCTA3MUU0OTZEMUFE
NUFBMEQwMDhBNTBCNCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EubW0gKi8sCiAJCQkJMDc2
RjBEMDkxMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHAgKi8sCiAJCQkJMDc2RjBEMEExMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5oICovLAorCQkJCTdCNDQxMEUyMjc5NThGREUwMDBCNEY4QSAvKiBNZWRp
YVBsYXllclZpZGVvRnJhbWVBVkYubW0gKi8sCiAJCQkJQ0RCRUFFQUIxOUQ5MkI2QzAwQkVCQTg4
IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLmggKi8sCiAJCQkJQ0RCRUFFQUExOUQ5MkI2
QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tICovLAogCQkJCTQxMDI0
RkM4MjNDRjI1NEYwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwICovLApA
QCAtMjg5MjgsNiArMjg5MzUsNyBAQAogCQkJCUNENTIwOUUzMUIwQkQ4MzgwMDc3MTg0RSAvKiBN
ZWRpYVBsYXllckVudW1zLmggKi8sCiAJCQkJRjQyOTI2MTcyNTI2NEQ0NDAwMDA3ODk4IC8qIE1l
ZGlhUGxheWVySWRlbnRpZmllci5oICovLAogCQkJCTA3OUY1RTRCMEYzQkVCRUEwMDVFMDc4MiAv
KiBNZWRpYVBsYXllclByaXZhdGUuaCAqLywKKwkJCQk3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEg
LyogTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmggKi8sCiAJCQkJQ0Q2NDFFQjExODE4RjVFRDAwRUU0
QzQxIC8qIE1lZGlhU291cmNlUHJpdmF0ZS5oICovLAogCQkJCUNEREMxRTc5MThBOTUyRjMwMDI3
QTlENCAvKiBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCAqLywKIAkJCQkwNzYxMURCODI0M0ZC
NzVDMDBEODA3MDQgLyogTWVkaWFVc2FnZUluZm8uaCAqLywKQEAgLTM2MTA2LDYgKzM2MTE0LDcg
QEAKIAkJCQlERjlBRkQ3MjEzRkMzMUQ4MDAxNUZFQjcgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOEI1QTMxODA0NjM0NzAwMTZF
Njg1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTUwNTI0RjQxQjcxMkZGNjAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0I0NDEwRTEyNzk1OEZDNTAw
MEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc3
QkE1NzYyNjBGQURGNjAwNzJGMTlGIC8qIE1lZGlhUG9zaXRpb25TdGF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTJFMkNBRkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcAppbmRleCBjMTI4MWE0NDZiMTU2NTkwOWIzMTQ0YTc4MmM5OTc4ZWU5MDg5
ZmUyLi43NzQ3NjhlMmMxOTI3NjFmODBhODU2ZGE5MmUyYWY2YTg4ZDg3ZmMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xMDYy
LDE1ICsxMDYyLDEzIEBAIGJvb2wgTWVkaWFQbGF5ZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRm
b3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCogY29udGV4dCwKICAgICByZXR1cm4gbV9wcml2
YXRlLT5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoY29udGV4dCwgdGV4dHVyZSwg
dGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgcHJlbXVsdGlwbHlB
bHBoYSwgZmxpcFkpOwogfQogCi0jZWxzZQorI2VuZGlmCiAKLVJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBNZWRpYVBsYXllcjo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCitzdGQ6Om9w
dGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXI6OnZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSgpCiB7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+cGl4ZWxCdWZmZXJGb3JDdXJy
ZW50VGltZSgpOworICAgIHJldHVybiBtX3ByaXZhdGUtPnZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSgpOwogfQogCi0jZW5kaWYKLQogUmVmUHRyPE5hdGl2ZUltYWdlPiBNZWRpYVBsYXllcjo6bmF0
aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bmF0aXZl
SW1hZ2VGb3JDdXJyZW50VGltZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKaW5kZXggYzEzZDcwMzJmMjhjY2Q5MDg3MmIwOTI3NmQ5MzcyYTQy
NjUzYTIwMS4uMjdhNjkwNzNjMzgwNzU0MTRiYTcyMTEwN2NiNTBkMGNmZjRmZDg0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVy
RW51bXMuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllcklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJN
ZWRpYVBsYXllclZpZGVvRnJhbWUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1UZXh0VHJhY2suaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEu
aCIKQEAgLTQ2NywxMCArNDY4LDggQEAgcHVibGljOgogICAgIC8vIFRoZSBjdXJyZW50IHJlc3Ry
aWN0aW9ucyByZXF1aXJlIHRoYXQgZm9ybWF0IHNob3VkIGJlIFJHQiBvciBSR0JBLCB0eXBlIHNo
b3VsZCBiZSBVTlNJR05FRF9CWVRFIGFuZCBsZXZlbCBzaG91bGQgYmUgMC4gSXQgbWF5IGJlIGxp
ZnRlZCBpbiB0aGUgZnV0dXJlLgogI2lmICFVU0UoQVZGT1VOREFUSU9OKQogICAgIGJvb2wgY29w
eVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiwgUGxhdGZv
cm1HTE9iamVjdCB0ZXh0dXJlLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xl
bnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIGJvb2wg
cHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSk7Ci0jZWxzZQotICAgIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCk7CiAjZW5kaWYKLQorICAg
IHN0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKTsKICAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRp
bWUoKTsKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
CmluZGV4IDZlNDc3YmNhZjljNDg1N2EwMTc3MjY1NzIyZjgxYmY4NGZiYzMwZGUuLjA4NWY4YWIz
NWQ4ZjVmZDVhODYzOWNmNDg4NGVkZDE2YzA1MjllOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0yOSw4ICsy
OSwxMCBAQAogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVBsYXll
cklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJNZWRpYVBsYXllclZpZGVvRnJhbWUuaCIKICNpbmNs
dWRlICJOYXRpdmVJbWFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGltZVJhbmdlcy5oIgorI2lu
Y2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiAj
aWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCkBAIC0xNzgsOSArMTgwLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGlj
c0NvbnRleHQmIGMsIGNvbnN0IEZsb2F0UmVjdCYgcikgeyBwYWludChjLCByKTsgfQogI2lmICFV
U0UoQVZGT1VOREFUSU9OKQogICAgIHZpcnR1YWwgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0
Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51
bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgeyBy
ZXR1cm4gZmFsc2U7IH0KLSNlbHNlCi0gICAgdmlydHVhbCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KICNl
bmRpZgorICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZp
ZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQogICAgIHZp
cnR1YWwgUmVmUHRyPE5hdGl2ZUltYWdlPiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9y
U3BhY2UoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyVmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjlkYzlmMTM0N2ExMzY2
NTg0ODRiMGI2ZThhZjg0MjAyY2QzMTI1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyVmlkZW9GcmFtZS5oCkBAIC0wLDAgKzEs
MTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlv
bi5oIgorCisjaWYgVVNFKEFWRk9VTkRBVElPTikKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisKK3VzaW5nIENWUGl4ZWxCdWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1ZmZlcio7CisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVBsYXllclZpZGVvRnJhbWUgewor
cHVibGljOgorICAgIE1lZGlhUGxheWVyVmlkZW9GcmFtZSgpID0gZGVsZXRlOworI2lmIFVTRShB
VkZPVU5EQVRJT04pCisgICAgV0VCQ09SRV9FWFBPUlQgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lKFJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmLCBJbWFnZU9yaWVudGF0aW9uKTsKKyNlbmRpZgor
CisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb3Jp
ZW50YXRpb247IH0KKworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAgQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxCdWZmZXIuZ2V0KCk7IH0KKyNl
bmRpZgorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1lZGlhUGxheWVyVmlkZW9GcmFtZSYg
b3RoZXIpIGNvbnN0OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gZGVjb2RlKERlY29kZXImKTsK
KworcHJpdmF0ZToKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyOworI2VuZGlmCisgICAgSW1hZ2VPcmllbnRhdGlvbiBt
X29yaWVudGF0aW9uOworfTsKKworaW5saW5lIGJvb2wgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpv
cGVyYXRvcj09KGNvbnN0IE1lZGlhUGxheWVyVmlkZW9GcmFtZSYgb3RoZXIpIGNvbnN0Cit7Cisj
aWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBpZiAobV9waXhlbEJ1ZmZlciAhPSBvdGhlci5tX3Bp
eGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICByZXR1cm4gSW1h
Z2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24ob3RoZXIubV9vcmllbnRhdGlvbikgPT0gSW1hZ2VP
cmllbnRhdGlvbjo6T3JpZW50YXRpb24obV9vcmllbnRhdGlvbik7Cit9CisKK3RlbXBsYXRlPHR5
cGVuYW1lIEVuY29kZXI+IHZvaWQgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIGVuY29kZXIg
PDwgbV9waXhlbEJ1ZmZlcjsKKyAgICBlbmNvZGVyIDw8IEltYWdlT3JpZW50YXRpb246Ok9yaWVu
dGF0aW9uKG1fb3JpZW50YXRpb24pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5jb2Rlcik7
CisjZW5kaWYKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxN
ZWRpYVBsYXllclZpZGVvRnJhbWU+IE1lZGlhUGxheWVyVmlkZW9GcmFtZTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisjaWYgSEFWRShBVkZPVU5EQVRJT04pCisgICAgc3RkOjpvcHRpb25h
bDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHBpeGVsQnVmZmVyOworICAgIGRlY29kZXIg
Pj4gcGl4ZWxCdWZmZXI7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICBzdGQ6Om9wdGlvbmFsPEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0
aW9uPiBvcmllbnRhdGlvbjsKKyAgICBkZWNvZGVyID4+IG9yaWVudGF0aW9uOworICAgIGlmICgh
b3JpZW50YXRpb24pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIE1l
ZGlhUGxheWVyVmlkZW9GcmFtZSB7IFdURk1vdmUocGl4ZWxCdWZmZXIpLCBvcmllbnRhdGlvbiB9
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyNlbmRpZgorfQorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclZpZGVvRnJhbWVBVkYu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJWaWRlb0ZyYW1lQVZGLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1YzBkZGNhZmFkZDMxZWVmNjIyYzJh
YWRmM2MwZDJlNjY1NWU0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lQVZGLm1tCkBA
IC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisjaW5jbHVkZSAi
TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTWVkaWFQ
bGF5ZXJWaWRlb0ZyYW1lOjpNZWRpYVBsYXllclZpZGVvRnJhbWUoUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+JiYgcGl4ZWxCdWZmZXIsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCisg
ICAgOiBtX3BpeGVsQnVmZmVyKFdURk1vdmUocGl4ZWxCdWZmZXIpKQorICAgICwgbV9vcmllbnRh
dGlvbihvcmllbnRhdGlvbikKK3sKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aAppbmRleCA5NWEzNzg5YWQ2MjcxOWMxMDBiYzA2N2QzY2U4YWFhOTMyZDU3NDExLi5hYjY5ODNi
ZDk5NmNhOWRhZTM3NDJmNWM3NjQzYzVlYzBlZjgxNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5o
CkBAIC0yNjIsMTIgKzI2MiwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBkYXRlTGFzdFBpeGVs
QnVmZmVyKCk7CiAgICAgYm9vbCB2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCk7CiAgICAg
dm9pZCBwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gdmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBuYXRpdmVJ
bWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNlIGNv
bG9yU3BhY2UoKSBmaW5hbDsKICAgICB2b2lkIHdhaXRGb3JWaWRlb091dHB1dE1lZGlhRGF0YVdp
bGxDaGFuZ2UoKTsKIAotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lKCkgZmluYWw7Ci0KICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9N
RURJQSkKICAgICB2b2lkIGtleUFkZGVkKCkgZmluYWw7CiAgICAgc3RkOjp1bmlxdWVfcHRyPExl
Z2FjeUNETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIExl
Z2FjeUNETVNlc3Npb25DbGllbnQqKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4
IGJkYzJhODJlNzNmNGZkZjg4YjVhNTRjOTk3ZjMyYmY2ODlkZTk5NmEuLjc4YzgzZWRhZGVlN2E4
M2Q2M2ZkNzQ4N2Q3ZDYxOWI4OTQzZWY4NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAt
MjYyNSwxMSArMjYyNSwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYgYwogCiB9CiAKLVJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKK3N0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJW
aWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWUoKQogewogICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpOwogCi0gICAg
cmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyOworICAgIHJldHVybiBNZWRpYVBsYXllclZpZGVvRnJh
bWUgeyBSZXRhaW5QdHIgeyBtX2xhc3RQaXhlbEJ1ZmZlciB9LCBJbWFnZU9yaWVudGF0aW9uOjpO
b25lIH07CiB9CiAKIFJlZlB0cjxOYXRpdmVJbWFnZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oCmluZGV4IDkzMTNjMWIzZGY2ZDM2OTYwOGM3NTVmMDU1ZDQ2MWRhYjVkZjcyMmEuLmQ3
NDgzZTc0ZTc2ZWU1YThlODI4NDRhOGRmZTFjMTZlYWQ3MzUyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oCkBAIC0yMjIsNyArMjIyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUxh
c3RJbWFnZSgpOwogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKLSAgICBSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpIGZpbmFsOworICAg
IHN0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKSBmaW5hbDsKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGZp
bmFsOwogCiAgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggYjJjZTZiYmM3YWFjYzhjZWNj
MjFjOTQxMjk1ZTQzMThhZGNiODlhMy4uNjdiZTE3NDVlZTk5YjVmY2E5OWEwOTM3YWRiOGFjZWU3
N2E2MTNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNzIxLDcgKzcyMSw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dChHcmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmlt
YWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCBvdXRwdXRSZWN0LCBpbWFnZVJlY3QpOwogfQogCi1SZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKK3N0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5
ZXJWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVv
RnJhbWVGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgLy8gV2UgaGF2ZSBiZWVuIGFza2VkIHRvIHBh
aW50IGludG8gYSBXZWJHTCBjYW52YXMsIHNvIHRha2UgdGhhdCBhcyBhIHNpZ25hbCB0byBjcmVh
dGUKICAgICAvLyBhIGRlY29tcHJlc3Npb24gc2Vzc2lvbiwgZXZlbiBpZiB0aGF0IG1lYW5zIHRo
ZSBuYXRpdmUgdmlkZW8gY2FuJ3QgYWxzbyBiZSBkaXNwbGF5ZWQKQEAgLTczNCw3ICs3MzQsNyBA
QCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpwaXhlbEJ1ZmZlckZvcgogICAgIGlmICghbV9pc0dhdGhlcmluZ1ZpZGVvRnJh
bWVNZXRhZGF0YSkKICAgICAgICAgdXBkYXRlTGFzdFBpeGVsQnVmZmVyKCk7CiAKLSAgICByZXR1
cm4gbV9sYXN0UGl4ZWxCdWZmZXI7CisgICAgcmV0dXJuIE1lZGlhUGxheWVyVmlkZW9GcmFtZSB7
IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3JpZW50YXRpb246Ok5vbmUg
fTsKIH0KIAogRGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6Y29sb3JTcGFjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDZk
OTU1Njc0ZDA2Mjc1YWU0MzNlNWE1NGEzN2MzNGU2YmYzN2Y5YTIuLjliNmZkMmI1ZjI3NTQ5MjY3
ZGIzOTkzYzk4OTVkYjE2MzIxNTg2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0x
NDIsNiArMTQyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFt
ZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsK
KyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lKCkgb3ZlcnJpZGU7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3Bh
Y2UoKSBvdmVycmlkZTsKICAgICBib29sIG1ldGFEYXRhQXZhaWxhYmxlKCkgY29uc3QgeyByZXR1
cm4gbV9tZWRpYVN0cmVhbVByaXZhdGUgJiYgbV9yZWFkeVN0YXRlID49IE1lZGlhUGxheWVyOjpS
ZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGE7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmlu
ZGV4IDQ5ZjQyZjljMDJiODI5NTMyNTc3MzhjMzQ0MDQzZGViNDEwODUxYzIuLjE0OGY2OGFjMDYw
ODY4ZDcxNWMxZTYxMmViZTg5ZjMxMTcyYzlkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
bW0KQEAgLTI0NCw2ICsyNDQsMjIgQEAgc3RhdGljIGlubGluZSBDR0FmZmluZVRyYW5zZm9ybSB2
aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgcmV0dXJu
IHZpZGVvVHJhbnNmb3JtOwogfQogCitzdGF0aWMgaW5saW5lIEltYWdlT3JpZW50YXRpb24gdmlk
ZW9PcmllbnRhdGlvbihNZWRpYVNhbXBsZSYgc2FtcGxlKQoreworICAgIC8vIFNhbXBsZSB0cmFu
c2Zvcm0gZmlyc3QgZmxpcHMgeC1jb29yZGluYXRlcywgdGhlbiByb3RhdGVzLgorICAgIGJvb2wg
ZmxpcFggPSBzYW1wbGUudmlkZW9NaXJyb3JlZCgpOyAvLyBMZWZ0IHNpZGUgc3dpdGNoZXMgd2l0
aCByaWdodCBzaWRlLgorICAgIHN3aXRjaCAoc2FtcGxlLnZpZGVvUm90YXRpb24oKSkgeworICAg
IGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU6CisgICAgICAgIHJldHVybiBm
bGlwWCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IDogSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luVG9wTGVmdDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpS
aWdodDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmln
aHRCb3R0b20gOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodFRvcDsKKyAgICBjYXNlIE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAgICAgICByZXR1cm4gZmxp
cFggPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21MZWZ0IDogSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luQm90dG9tUmlnaHQ7CisgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlv
bjo6TGVmdDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2lu
TGVmdFRvcCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkxlZnRCb3R0b207CisgICAgfQorfQor
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9TYW1wbGVB
dmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSwgVmlkZW9TYW1wbGVNZXRhZGF0YSBtZXRhZGF0
YSkKIHsKICAgICBhdXRvIHByZXNlbnRhdGlvblRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKS5z
ZWNvbmRzU2luY2VFcG9jaCgpOwpAQCAtMTAwMyw2ICsxMDE5LDE5IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChH
cmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmltYWdlLCBpbWFnZVJlY3Qu
c2l6ZSgpLCB0cmFuc2Zvcm1lZERlc3RSZWN0LCBpbWFnZVJlY3QpOwogfQogCitzdGQ6Om9wdGlv
bmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQoreworICAgIGlmIChtX2Rpc3BsYXlN
b2RlID09IE5vbmUgfHwgIW1ldGFEYXRhQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgaWYgKG1fZGlzcGxheU1vZGUgPT0gUGFpbnRJdEJsYWNrKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1w
bGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlQnVmZmVyID0gbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUtPnBsYXRmb3JtU2FtcGxl
KCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyOworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgcmV0dXJuIE1lZGlhUGxheWVyVmlkZW9G
cmFtZSB7IFJldGFpblB0ciB7IHBpeGVsQnVmZmVyIH0sIHZpZGVvT3JpZW50YXRpb24oKm1faW1h
Z2VQYWludGVyLm1lZGlhU2FtcGxlKSB9OworfQorCiBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjb2xvclNwYWNlKCkKIHsKICAgICB1
cGRhdGVDdXJyZW50RnJhbWVJbWFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0K
aW5kZXggMzJkYjZlZTgyY2NkMDE5MzhiNDA3YTZiNmU4ZGVjZjg1NTJiYzgxOS4uOTU3YmE2YmE5
MGJiMDE4YmI4ODhkMDJjNWRjODM3NDZiNjUzZGZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRH
TENvY29hLm1tCkBAIC03OTEsOCArNzkxLDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xF
OjpwbGF0Zm9ybVJlbGVhc2VUaHJlYWRSZXNvdXJjZXMoKQogI2lmIEVOQUJMRShWSURFTykKIGJv
b2wgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRleHR1cmVGcm9tTWVkaWEoTWVkaWFQbGF5
ZXImIHBsYXllciwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMZW51bSBvdXRw
dXRUYXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51
bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlw
WSkKIHsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gcGxheWVyLnBpeGVsQnVmZmVyRm9yQ3VycmVu
dFRpbWUoKTsKLSAgICBpZiAoIXBpeGVsQnVmZmVyKQorICAgIGF1dG8gdmlkZW9GcmFtZSA9IHBs
YXllci52aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKKyAgICBpZiAoIXZpZGVvRnJhbWUpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8gY29udGV4dENWID0gYXNDVigpOwpAQCAt
ODAxLDcgKzgwMSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRleHR1cmVG
cm9tTWVkaWEoTWVkaWFQbGF5ZXImIHBsYXllciwgUGxhdGZvcm1HCiAKICAgICBVTlVTRURfVkFS
SUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgQVNTRVJUX1VOVVNFRChvdXRwdXRUYXJnZXQs
IG91dHB1dFRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7Ci0gICAgcmV0
dXJuIGNvbnRleHRDVi0+Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKHBpeGVsQnVmZmVyLmdldCgp
LCBvdXRwdXRUZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3Jh
cGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSk7CisgICAgcmV0dXJuIGNvbnRleHRDVi0+Y29w
eVZpZGVvRnJhbWVUb1RleHR1cmUoKnZpZGVvRnJhbWUsIG91dHB1dFRleHR1cmUsIGxldmVsLCBp
bnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxp
cFkpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmgKaW5kZXggMWQ2MTVhN2YwZWYxMTMy
MzI2ODAyZTU2NGE5YWQ1MjUyN2UwMzA2Ny4uNmQxMDlkNjQ1MGEwMTVlMjdkYjM5NDlhZDgzOGM2
ODRiZmQxZDU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvR3JhcGhpY3NDb250ZXh0R0xDVi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaApAQCAtMjksOSArMjksOCBAQAogCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0R0wuaCIKIAotdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciog
Q1ZQaXhlbEJ1ZmZlclJlZjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTWVkaWFQbGF5
ZXJWaWRlb0ZyYW1lOwogCiAvLyBJbnRlcmZhY2UgdG8gaW50ZXJhY3Qgd2l0aCBDViBvYmplY3Rz
IGFuZCBHcmFwaGljc0NvbnRleHRHTC4KIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMQ1YgewpAQCAt
NDEsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgRmxpcFkgPSBHcmFwaGljc0NvbnRleHRH
TDo6RmxpcFk7CiAgICAgLy8gQ29waWVzIENWIHBpeGVsIGJ1ZmZlciB0byBHcmFwaGljc0NvbnRl
eHRHTCBURVhUVVJFXzJEIHRleHR1cmUgb2YgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgcGl4ZWwgYnVm
ZmVyLgogICAgIC8vIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgotICAgIHZpcnR1YWwgYm9vbCBj
b3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiwgUGxhdGZvcm1HTE9iamVj
dCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwg
R0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBGbGlwWSkgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBjb3B5VmlkZW9GcmFtZVRvVGV4dHVyZShNZWRpYVBsYXllclZpZGVvRnJhbWUmLCBQbGF0
Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVy
bmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZKSA9IDA7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9H
cmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcAppbmRleCAyNDk5NWEzZWVlZGJl
Yzk0ODViYzFjNmE2OWI2MjVkMGJlN2E4OTkzLi5mNTAwMWZiYThmOWQwYTk0YWZjNmQyZWYxMWI2
OGMzMWEzOTM0ZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKQEAgLTQ5LDYg
KzQ5LDggQEAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVydGV4U2hhZGVyVGV4dHVyZTJE
IHsKICAgICAidW5pZm9ybSB2ZWMyIHVfeVRleHR1cmVTaXplOyIKICAgICAidW5pZm9ybSB2ZWMy
IHVfdXZUZXh0dXJlU2l6ZTsiCiAgICAgInVuaWZvcm0gaW50IHVfZmxpcFk7IgorICAgICJ1bmlm
b3JtIGludCB1X2ZsaXBYOyIKKyAgICAidW5pZm9ybSBpbnQgdV9zd2FwWFk7IgogICAgICJ2YXJ5
aW5nIHZlYzIgdl95VGV4dHVyZUNvb3JkaW5hdGU7IgogICAgICJ2YXJ5aW5nIHZlYzIgdl91dlRl
eHR1cmVDb29yZGluYXRlOyIKICAgICAidm9pZCBtYWluKCkiCkBAIC01Nyw2ICs1OSwxMCBAQCBz
dGF0aWMgY29uc3RleHByIGF1dG8gc195dXZWZXJ0ZXhTaGFkZXJUZXh0dXJlMkQgewogICAgICIg
ICAgdmVjMiBub3JtYWxpemVkUG9zaXRpb24gPSBhX3Bvc2l0aW9uICogLjUgKyAuNTsiCiAgICAg
IiAgICBpZiAodV9mbGlwWSA9PSAxKSIKICAgICAiICAgICAgICBub3JtYWxpemVkUG9zaXRpb24u
eSA9IDEuMCAtIG5vcm1hbGl6ZWRQb3NpdGlvbi55OyIKKyAgICAiICAgIGlmICh1X2ZsaXBYID09
IDEpIgorICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlvbi54ID0gMS4wIC0gbm9ybWFsaXpl
ZFBvc2l0aW9uLng7IgorICAgICIgICAgaWYgKHVfc3dhcFhZID09IDEpIgorICAgICIgICAgICAg
IG5vcm1hbGl6ZWRQb3NpdGlvbi54eSA9IG5vcm1hbGl6ZWRQb3NpdGlvbi55eDsiCiAgICAgIiAg
ICB2X3lUZXh0dXJlQ29vcmRpbmF0ZSA9IG5vcm1hbGl6ZWRQb3NpdGlvbjsiCiAgICAgIiAgICB2
X3V2VGV4dHVyZUNvb3JkaW5hdGUgPSBub3JtYWxpemVkUG9zaXRpb247IgogICAgICJ9Il9zCkBA
IC02Nyw2ICs3Myw4IEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzX3l1dlZlcnRleFNoYWRlclRl
eHR1cmVSZWN0YW5nbGUgewogICAgICJ1bmlmb3JtIHZlYzIgdV95VGV4dHVyZVNpemU7IgogICAg
ICJ1bmlmb3JtIHZlYzIgdV91dlRleHR1cmVTaXplOyIKICAgICAidW5pZm9ybSBpbnQgdV9mbGlw
WTsiCisgICAgInVuaWZvcm0gaW50IHVfZmxpcFg7IgorICAgICJ1bmlmb3JtIGludCB1X3N3YXBY
WTsiCiAgICAgInZhcnlpbmcgdmVjMiB2X3lUZXh0dXJlQ29vcmRpbmF0ZTsiCiAgICAgInZhcnlp
bmcgdmVjMiB2X3V2VGV4dHVyZUNvb3JkaW5hdGU7IgogICAgICJ2b2lkIG1haW4oKSIKQEAgLTc1
LDYgKzgzLDEwIEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzX3l1dlZlcnRleFNoYWRlclRleHR1
cmVSZWN0YW5nbGUgewogICAgICIgICAgdmVjMiBub3JtYWxpemVkUG9zaXRpb24gPSBhX3Bvc2l0
aW9uICogLjUgKyAuNTsiCiAgICAgIiAgICBpZiAodV9mbGlwWSA9PSAxKSIKICAgICAiICAgICAg
ICBub3JtYWxpemVkUG9zaXRpb24ueSA9IDEuMCAtIG5vcm1hbGl6ZWRQb3NpdGlvbi55OyIKKyAg
ICAiICAgIGlmICh1X2ZsaXBYID09IDEpIgorICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlv
bi54ID0gMS4wIC0gbm9ybWFsaXplZFBvc2l0aW9uLng7IgorICAgICIgICAgaWYgKHVfc3dhcFhZ
ID09IDEpIgorICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlvbi54eSA9IG5vcm1hbGl6ZWRQ
b3NpdGlvbi55eDsiCiAgICAgIiAgICB2X3lUZXh0dXJlQ29vcmRpbmF0ZSA9IG5vcm1hbGl6ZWRQ
b3NpdGlvbiAqIHVfeVRleHR1cmVTaXplOyIKICAgICAiICAgIHZfdXZUZXh0dXJlQ29vcmRpbmF0
ZSA9IG5vcm1hbGl6ZWRQb3NpdGlvbiAqIHVfdXZUZXh0dXJlU2l6ZTsiCiAgICAgIn0iX3MKQEAg
LTU0OCw2ICs1NjAsOCBAQCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OkdyYXBoaWNzQ29udGV4
dEdMQ1ZDb2NvYShHcmFwaGljc0NvbnRleHRHTENvY29hJiBvd25lcgogICAgIG1fdXZUZXh0dXJl
VW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1X3V2
VGV4dHVyZSIpOwogICAgIG1fY29sb3JNYXRyaXhVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlm
b3JtTG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfY29sb3JNYXRyaXgiKTsKICAgICBtX3l1dkZsaXBZ
VW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1X2Zs
aXBZIik7CisgICAgbV95dXZGbGlwWFVuaWZvcm1Mb2NhdGlvbiA9IEdMX0dldFVuaWZvcm1Mb2Nh
dGlvbih5dXZQcm9ncmFtLCAidV9mbGlwWCIpOworICAgIG1feXV2U3dhcFhZVW5pZm9ybUxvY2F0
aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1X3N3YXBYWSIpOwogICAg
IG1feVRleHR1cmVTaXplVW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1
dlByb2dyYW0sICJ1X3lUZXh0dXJlU2l6ZSIpOwogICAgIG1fdXZUZXh0dXJlU2l6ZVVuaWZvcm1M
b2NhdGlvbiA9IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9ncmFtLCAidV91dlRleHR1cmVT
aXplIik7CiAgICAgbV95dXZQb3NpdGlvbkF0dHJpYnV0ZUxvY2F0aW9uID0gR0xfR2V0QXR0cmli
TG9jYXRpb24oeXV2UHJvZ3JhbSwgImFfcG9zaXRpb24iKTsKQEAgLTU1OSw4ICs1NzMsOSBAQCBH
cmFwaGljc0NvbnRleHRHTENWQ29jb2E6OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYShHcmFwaGlj
c0NvbnRleHRHTENvY29hJiBvd25lcgogICAgIEdMX0JpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgbV9mcmFtZWJ1ZmZlcik7CiB9CiAKLWJvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29h
Ojpjb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZSwgUGxhdGZv
cm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsRm9y
bWF0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgRmxpcFkgZmxpcFkpCitib29sIEdyYXBo
aWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVZpZGVvRnJhbWVUb1RleHR1cmUoTWVkaWFQbGF5ZXJW
aWRlb0ZyYW1lJiB2aWRlb0ZyYW1lLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdM
aW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0
eXBlLCBGbGlwWSB1bnBhY2tGbGlwWSkKIHsKKyAgICBhdXRvIGltYWdlID0gdmlkZW9GcmFtZS5w
aXhlbEJ1ZmZlcigpOwogICAgIC8vIEZJWE1FOiBUaGlzIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRz
ICc0MjB2JyBhbmQgJzQyMGYnIHBpeGVsIGZvcm1hdHMuIEludmVzdGlnYXRlIHN1cHBvcnRpbmcg
bW9yZSBwaXhlbCBmb3JtYXRzLgogICAgIE9TVHlwZSBwaXhlbEZvcm1hdCA9IENWUGl4ZWxCdWZm
ZXJHZXRQaXhlbEZvcm1hdFR5cGUoaW1hZ2UpOwogICAgIGlmIChwaXhlbEZvcm1hdCAhPSBrQ1ZQ
aXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyVmlkZW9SYW5nZSAvLyBOT0xJTlQKQEAg
LTU3Nyw5ICs1OTIsMTIgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhl
bEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLAogICAgIGlmICghc3VyZmFj
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgYXV0byBvcmllbnRhdGlvbiA9IHZpZGVv
RnJhbWUub3JpZW50YXRpb24oKTsKKyAgICBpZiAodW5wYWNrRmxpcFkgPT0gRmxpcFk6OlllcykK
KyAgICAgICAgb3JpZW50YXRpb24gPSBvcmllbnRhdGlvbi53aXRoRmxpcHBlZFkoKTsKKwogICAg
IGF1dG8gbmV3U3VyZmFjZVNlZWQgPSBJT1N1cmZhY2VHZXRTZWVkKHN1cmZhY2UpOwotICAgIGlm
IChmbGlwWSA9PSBtX2xhc3RGbGlwWQotICAgICAgICAmJiBzdXJmYWNlID09IG1fbGFzdFN1cmZh
Y2UKKyAgICBpZiAoSW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24ob3JpZW50YXRpb24pID09
IEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uKG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbikK
ICAgICAgICAgJiYgbmV3U3VyZmFjZVNlZWQgPT0gbV9sYXN0U3VyZmFjZVNlZWQKICAgICAgICAg
JiYgbGFzdFRleHR1cmVTZWVkKG91dHB1dFRleHR1cmUpID09IG1fb3duZXIudGV4dHVyZVNlZWQo
b3V0cHV0VGV4dHVyZSkpIHsKICAgICAgICAgLy8gSWYgdGhlIHRleHR1cmUgaGFzbid0IGJlZW4g
bW9kaWZpZWQgc2luY2UgdGhlIGxhc3QgdGltZSB3ZSBjb3BpZWQgdG8gaXQsIGFuZCB0aGUKQEAg
LTU4OSw4ICs2MDcsNTcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhl
bEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLAogICAgIGlmICghbV9jb250
ZXh0IHx8ICFHcmFwaGljc0NvbnRleHRHTENvY29hOjptYWtlQ3VycmVudChtX2Rpc3BsYXksIG1f
Y29udGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHNpemVfdCB3aWR0aCA9IENW
UGl4ZWxCdWZmZXJHZXRXaWR0aChpbWFnZSk7Ci0gICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxC
dWZmZXJHZXRIZWlnaHQoaW1hZ2UpOworICAgIC8vIENvbXB1dGUgdHJhbnNmb3JtIHRoYXQgdW5k
b2VzIHRoZSBgb3JpZW50YXRpb25gLCBlLmcuIG1vdmVzIHRoZSBvcmlnaW4gdG8gdG9wIGxlZnQu
CisgICAgLy8gRXZlbiBudW1iZXIgb2Ygb3BlcmF0aW9ucyAoZmxpcFgsIGZsaXBZLCBzd2FwWFkp
IG1lYW5zIGEgcm90YXRpb24uCisgICAgLy8gT2RkIG51bWJlciBvZiBvcGVyYXRpb25zIG1lYW5z
IGEgcm90YXRpb24gYW5kIGEgZmxpcC4KKyAgICAvLyBgZmxpcFhgIHN3aXRjaGVzIGJldHdlZW4g
TGVmdCBhbmQgUmlnaHQuIGBmbGlwWWAgc3dpdGNoZXMgYmV0d2VlbiBUb3AgYW5kIEJvdHRvbS4K
KyAgICAvLyBgc3dhcFhZYHN3aXRjaGVzIExlZnRUb3AgdG8gVG9wTGVmdC4KKyAgICAvLyBHb2Fs
IGlzIHRvIGdldCB0byBPcmlnaW5Ub3BMZWZ0LgorICAgIGJvb2wgZmxpcFkgPSBmYWxzZTsgLy8g
RmxpcCB5IGNvb3JkaW5hdGUsIGkuZS4gbWlycm9yZWQgYWxvbmcgdGhlIHgtYXhpcy4KKyAgICBi
b29sIGZsaXBYID0gZmFsc2U7IC8vIEZsaXAgeCBjb29yZGluYXRlLCBpLmUuIG1pcnJvcmVkIGFs
b25nIHRoZSB5LWF4aXMuCisgICAgYm9vbCBzd2FwWFkgPSBmYWxzZTsKKyAgICBzd2l0Y2ggKHZp
ZGVvRnJhbWUub3JpZW50YXRpb24oKSkgeworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6RnJv
bUltYWdlOgorICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wTGVmdDoKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Ub3BSaWdodDoKKyAg
ICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEltYWdlT3JpZW50
YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0OgorICAgICAgICAvLyBSb3RhdGVkIDE4MCBkZWdyZWVz
LgorICAgICAgICBmbGlwWSA9IHRydWU7CisgICAgICAgIGZsaXBYID0gdHJ1ZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21MZWZ0OgorICAg
ICAgICAvLyBNaXJyb3JlZCBhbG9uZyB0aGUgeC1heGlzLgorICAgICAgICBmbGlwWSA9IHRydWU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luTGVmdFRv
cDoKKyAgICAgICAgLy8gTWlycm9yZWQgYWxvbmcgeC1heGlzIGFuZCByb3RhdGVkIDI3MCBkZWdy
ZWVzIGNsb2NrLXdpc2UuCisgICAgICAgIHN3YXBYWSA9IHRydWU7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRUb3A6CisgICAgICAgIC8vIFJv
dGF0ZWQgOTAgZGVncmVlcyBjbG9jay13aXNlLgorICAgICAgICBmbGlwWCA9IHRydWU7CisgICAg
ICAgIHN3YXBYWSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRh
dGlvbjo6T3JpZ2luUmlnaHRCb3R0b206CisgICAgICAgIC8vIE1pcnJvciBhbG9uZyB4LWF4aXMg
YW5kIHJvdGF0ZWQgOTAgZGVncmVlcyBjbG9ja3dpc2UuCisgICAgICAgIGZsaXBZID0gdHJ1ZTsK
KyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBzd2FwWFkgPSB0cnVlOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkxlZnRCb3R0b206CisgICAg
ICAgIC8vIFJvdGF0ZWQgMjcwIGRlZ3JlZXMgY2xvY2std2lzZS4KKyAgICAgICAgZmxpcFkgPSB0
cnVlOworICAgICAgICBzd2FwWFkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
c2l6ZV90IHNvdXJjZVdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKGltYWdlKTsKKyAgICBz
aXplX3Qgc291cmNlSGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChpbWFnZSk7CisKKyAg
ICBzaXplX3Qgd2lkdGggPSBzd2FwWFkgPyBzb3VyY2VIZWlnaHQgOiBzb3VyY2VXaWR0aDsKKyAg
ICBzaXplX3QgaGVpZ2h0ID0gc3dhcFhZID8gc291cmNlV2lkdGggOiBzb3VyY2VIZWlnaHQ7CiAK
ICAgICBHTF9WaWV3cG9ydCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKIApAQCAtNjY0LDcgKzczMSw5
IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5UGl4ZWxCdWZmZXJUb1RleHR1
cmUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZSwKICAgICAvLyBDb25maWd1cmUgdGhlIGRyYXdpbmcg
cGFyYW1ldGVycy4KICAgICBHTF9Vbmlmb3JtMWkobV95VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiwg
MCk7CiAgICAgR0xfVW5pZm9ybTFpKG1fdXZUZXh0dXJlVW5pZm9ybUxvY2F0aW9uLCAxKTsKLSAg
ICBHTF9Vbmlmb3JtMWkobV95dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiwgZmxpcFkgPT0gRmxpcFk6
OlllcyA/IDEgOiAwKTsKKyAgICBHTF9Vbmlmb3JtMWkobV95dXZGbGlwWVVuaWZvcm1Mb2NhdGlv
biwgZmxpcFkgPyAxIDogMCk7CisgICAgR0xfVW5pZm9ybTFpKG1feXV2RmxpcFhVbmlmb3JtTG9j
YXRpb24sIGZsaXBYID8gMSA6IDApOworICAgIEdMX1VuaWZvcm0xaShtX3l1dlN3YXBYWVVuaWZv
cm1Mb2NhdGlvbiwgc3dhcFhZID8gMSA6IDApOwogICAgIEdMX1VuaWZvcm0yZihtX3lUZXh0dXJl
U2l6ZVVuaWZvcm1Mb2NhdGlvbiwgeVBsYW5lV2lkdGgsIHlQbGFuZUhlaWdodCk7CiAgICAgR0xf
VW5pZm9ybTJmKG1fdXZUZXh0dXJlU2l6ZVVuaWZvcm1Mb2NhdGlvbiwgdXZQbGFuZVdpZHRoLCB1
dlBsYW5lSGVpZ2h0KTsKIApAQCAtNjc4LDggKzc0Nyw4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0
R0xDVkNvY29hOjpjb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFn
ZSwKIAogICAgIG1fbGFzdFN1cmZhY2UgPSBzdXJmYWNlOwogICAgIG1fbGFzdFN1cmZhY2VTZWVk
ID0gbmV3U3VyZmFjZVNlZWQ7CisgICAgbV9sYXN0U3VyZmFjZU9yaWVudGF0aW9uID0gb3JpZW50
YXRpb247CiAgICAgbV9sYXN0VGV4dHVyZVNlZWQuc2V0KG91dHB1dFRleHR1cmUsIG1fb3duZXIu
dGV4dHVyZVNlZWQob3V0cHV0VGV4dHVyZSkpOwotICAgIG1fbGFzdEZsaXBZID0gZmxpcFk7CiAg
ICAgYXV0b0NsZWFyVGV4dHVyZU9uRXJyb3IucmVsZWFzZSgpOwogICAgIHJldHVybiB0cnVlOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhp
Y3NDb250ZXh0R0xDVkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAppbmRleCBjNGUzOTYwYjZkNzA4MGU0YzM5NDBi
OGFmN2FkOWRjZTYyNDYyNzBmLi5hMmY5YjhhODI0ZGFlY2VhMDhiYTI4NWU4YmJiNGQxOTljZWI1
MzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaApAQCAtMjgsNyArMjgsNyBAQAogI2lm
IEVOQUJMRShXRUJHTCkgJiYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xDVi5oIgotCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRh
dGlvbi5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvVW5zYWZlUG9pbnRlci5o
PgogCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIH5HcmFwaGljc0NvbnRleHRHTENW
Q29jb2EoKSBmaW5hbDsKIAotICAgIGJvb2wgY29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4
ZWxCdWZmZXJSZWYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZl
bCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlw
ZSwgRmxpcFkpIGZpbmFsOworICAgIGJvb2wgY29weVZpZGVvRnJhbWVUb1RleHR1cmUoTWVkaWFQ
bGF5ZXJWaWRlb0ZyYW1lJiwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50
IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51
bSB0eXBlLCBGbGlwWSkgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0R0xD
VkNvY29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmKTsKQEAgLTY0LDEyICs2NCwxNCBAQCBwcml2
YXRlOgogICAgIEdDR0xpbnQgbV95VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAg
R0NHTGludCBtX3V2VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBt
X3l1dkZsaXBZVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKKyAgICBHQ0dMaW50IG1feXV2RmxpcFhV
bmlmb3JtTG9jYXRpb24geyAtMSB9OworICAgIEdDR0xpbnQgbV95dXZTd2FwWFlVbmlmb3JtTG9j
YXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV9jb2xvck1hdHJpeFVuaWZvcm1Mb2NhdGlvbiB7
IC0xIH07CiAgICAgR0NHTGludCBtX3l1dlBvc2l0aW9uQXR0cmlidXRlTG9jYXRpb24geyAtMSB9
OwogICAgIEdDR0xpbnQgbV95VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAg
IEdDR0xpbnQgbV91dlRleHR1cmVTaXplVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKIAotICAgIEZs
aXBZIG1fbGFzdEZsaXBZIHsgRmxpcFk6Ok5vIH07CisgICAgSW1hZ2VPcmllbnRhdGlvbiBtX2xh
c3RTdXJmYWNlT3JpZW50YXRpb247CiAgICAgVW5zYWZlUG9pbnRlcjxJT1N1cmZhY2VSZWY+IG1f
bGFzdFN1cmZhY2U7CiAgICAgdWludDMyX3QgbV9sYXN0U3VyZmFjZVNlZWQgeyAwIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHAKaW5kZXggMzcwNjY3M2U5ZjA2MjFhYTFhNTM4M2NmM2IwZTJmNWNmOTA1MDIx
OS4uNjBjNWE4Y2Q2ZDUwZTkwMGU0YzFlYmQxZmQ4ZTJkZGFlOGI2ZGI5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAKQEAgLTUwOSw2ICs1MDksNyBAQCB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpv
cmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKQogICAgICAgICBtX2RldmljZU9yaWVu
dGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd247CiAgICAgICAg
IGJyZWFrOwogICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCAwNzMz
ZjNjMTc4NmUxYzU3MGJjOWUzYTRmNGQxYjhlNzI3ZDE3YzY2Li5mZjEzMzk3ZTY0NDE5MWU0MDEz
NzlmNWM4OGEwNDY2MWY3MTE3MDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTI2
MCwxOCArMjYwLDE4IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJl
RnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllCiAgICAgVU5VU0VEX1ZBUklB
QkxFKHByZW11bHRpcGx5QWxwaGEpOwogICAgIEFTU0VSVF9VTlVTRUQodGFyZ2V0LCB0YXJnZXQg
PT0gR3JhcGhpY3NDb250ZXh0R0w6OlRFWFRVUkVfMkQpOwogCi0gICAgUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyOwotICAgIGF1dG8gZ2V0UGl4ZWxCdWZmZXIgPSBbJl0g
eworICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOwor
ICAgIGF1dG8gZ2V0VmlkZW9GcmFtZSA9IFsmXSB7CiAgICAgICAgIGlmICghbV9ncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmIChhdXRv
IG1lZGlhUGxheWVyID0gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5yZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eSgpLm1lZGlhUGxheWVyKG1lZGlhUGxheWVySWRlbnRpZmllcikpCi0g
ICAgICAgICAgICBwaXhlbEJ1ZmZlciA9IG1lZGlhUGxheWVyLT5waXhlbEJ1ZmZlckZvckN1cnJl
bnRUaW1lKCk7CisgICAgICAgICAgICB2aWRlb0ZyYW1lID0gbWVkaWFQbGF5ZXItPnZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZSgpOwogICAgIH07CiAKLSAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdh
aXQoV1RGTW92ZShnZXRQaXhlbEJ1ZmZlcikpOworICAgIGNhbGxPbk1haW5SdW5Mb29wQW5kV2Fp
dChXVEZNb3ZlKGdldFZpZGVvRnJhbWUpKTsKIAotICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKKyAg
ICBpZiAoIXZpZGVvRnJhbWUpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjgyLDcgKzI4Miw3IEBAIHZvaWQgUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVy
SWRlbnRpZmllCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjb21wbGV0aW9uSGFuZGxl
cihjb250ZXh0Q1YtPmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShwaXhlbEJ1ZmZlci5nZXQoKSwg
dGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29u
dGV4dEdMOjpGbGlwWShmbGlwWSkpKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0Q1Yt
PmNvcHlWaWRlb0ZyYW1lVG9UZXh0dXJlKCp2aWRlb0ZyYW1lLCB0ZXh0dXJlLCBsZXZlbCwgaW50
ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZ
KSkpOwogI2Vsc2UKICAgICBVTlVTRURfVkFSSUFCTEUobWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsK
ICAgICBVTlVTRURfVkFSSUFCTEUodGV4dHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggODgx
MDhjYmM1MzNjMTBjNzVlMzcwYmZjYzg5ODAwYTUzYzY3MjlhZC4uNzY5MTNjOTY2Mjc5ZTQzOWZk
MGRjNTc4ZWU5YmVjNWNkMTkxZTA5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMTA3LDcgKzEw
Nyw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6aW52YWxpZGF0ZSgpCiAgICAgfQog
ICAgIG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCA9IHsgfTsKICNpZiBVU0UoQVZGT1VOREFU
SU9OKQotICAgIG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSA9IG51bGxwdHI7CisgICAgbV92
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBzdGQ6Om51bGxvcHQ7CiAjZW5kaWYKIH0KIApAQCAt
ODY4LDYgKzg2OCwyMSBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmN1cnJlbnRUaW1l
Q2hhbmdlZChjb25zdCBNZWRpYVRpbWUmIG1lZGlhVGltZSkKICAgICBtX3dlYlByb2Nlc3NDb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkN1cnJlbnRU
aW1lQ2hhbmdlZChtZWRpYVRpbWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCAhbWVkaWFQbGF5ZXJQ
YXVzZWRPclN0YWxsZWQoKSksIG1faWQpOwogfQogCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiYmLCBib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1l
ZGlhUGxheWVyVmlkZW9GcmFtZT4gcmVzdWx0OworICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOwor
ICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0Zy
YW1lOworICAgIGlmIChtX3BsYXllcikKKyAgICAgICAgdmlkZW9GcmFtZSA9IG1fcGxheWVyLT52
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKKyAgICBpZiAobV92aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUgIT0gdmlkZW9GcmFtZSkgeworICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSA9IHZpZGVvRnJhbWU7CisgICAgICAgIGNoYW5nZWQgPSB0cnVlOworICAgICAgICByZXN1bHQg
PSBXVEZNb3ZlKHZpZGVvRnJhbWUpOworICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZN
b3ZlKHJlc3VsdCksIGNoYW5nZWQpOworfQorCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OnVwZGF0ZUNhY2hlZFN0YXRlKGJvb2wgZm9yY2VDdXJyZW50VGltZVVwZGF0ZSkKIHsKICAgICBp
ZiAoIW1fb2JzZXJ2aW5nVGltZUNoYW5nZXMgfHwgZm9yY2VDdXJyZW50VGltZVVwZGF0ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5oCmluZGV4IDMyZjNhNDZhYTBmMDliMTNiMDI0ZTQxNjQwNzhhNWRhZGRlZGM1NGUu
LmUxMzk0NmY3YTdjMzMxZTcwM2QzNDZhNTkzMGQxMDRhMzAyN2RmMGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
aApAQCAtMzIwLDkgKzMyMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBuYXRpdmVJbWFnZUZvckN1
cnJlbnRUaW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXVEY6Ok1hY2hT
ZW5kUmlnaHQ+JiYsIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSk+JiYpOwogICAgIHZv
aWQgY29sb3JTcGFjZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRlc3RpbmF0aW9u
Q29sb3JTcGFjZSk+JiYpOwogI2VuZGlmCi0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICB2b2lk
IHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPj4mJik+JiYpOwotI2Vu
ZGlmCisgICAgdm9pZCB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFt
ZT4mJiwgYm9vbCk+JiYpOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3Qg
TG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dlcigpIGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyOyB9CkBA
IC0zNzgsOSArMzc2LDcgQEAgcHJpdmF0ZToKICAgICBTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNS
ZXF1ZXN0IG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdDsKIAogICAgIGJvb2wgbV9vYnNlcnZp
bmdUaW1lQ2hhbmdlcyB7IGZhbHNlIH07Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lOwotI2Vu
ZGlmCisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU+IG1f
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
IGNvbnN0IExvZ2dlciYgbV9sb2dnZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggMzljODcyOWIyNzM5ZTEzNjQ0YjMxYWE4MGRiYTgwZDRhMzMwYzhhZS4u
ZTUzOWI0OTJmNmZjMDU1NTc0NGU5MDU4NDY0MzdkNDg4ZDUzODQzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTEyNiw5ICsxMjYsNyBAQCBtZXNzYWdlcyAtPiBSZW1v
dGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIE5hdGl2ZUltYWdlRm9yQ3Vy
cmVudFRpbWUoKSAtPiAoc3RkOjpvcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiBzZW5kUmlnaHQsIFdl
YkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKSBTeW5jaHJvbm91cwogICAg
IENvbG9yU3BhY2UoKSAtPiAoV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3Bh
Y2UpIFN5bmNocm9ub3VzCiAjZW5kaWYKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFBpeGVs
QnVmZmVyRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSAtPiAoc3RkOjpvcHRpb25hbDxSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHBpeGVsQnVmZmVyKSBTeW5jaHJvbm91cwotI2VuZGlmCisg
ICAgVmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCkgLT4gKHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lLCBib29sIGNoYW5nZWQp
IFN5bmNocm9ub3VzCiAKICAgICBQbGF5QXRIb3N0VGltZShNb25vdG9uaWNUaW1lIHRpbWUpCiAg
ICAgUGF1c2VBdEhvc3RUaW1lKE1vbm90b25pY1RpbWUgdGltZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eUNvY29hLm1tCmluZGV4IGM2YmJhM2FhMmI0ZTU1ZmFlZmI5MzNiYmUyZTYzNTlk
NzNmNjMxOTguLmZiZTEwYmMzMDVkMmQyZTE1YTI0YTdjZWU0NTA3ZWExNzY3Mzc0NjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2Nv
Y29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQpAQCAtMTI3LDIxICsxMjcsNiBAQCB2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmNvbG9yU3BhY2UoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpEZXN0aW5hdAogICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fcGxheWVyLT5j
b2xvclNwYWNlKCkpOwogfQogCi0jaWYgVVNFKEFWRk9VTkRBVElPTikKLXZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBzdGQ6Om9wdGlvbmFsPFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPj4gcmVzdWx0OwotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPiBwaXhlbEJ1ZmZlcjsKLSAgICBpZiAobV9wbGF5ZXIpCi0gICAgICAgIHBpeGVsQnVmZmVy
ID0gbV9wbGF5ZXItPnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKLSAgICBpZiAobV9waXhl
bEJ1ZmZlckZvckN1cnJlbnRUaW1lICE9IHBpeGVsQnVmZmVyKSB7Ci0gICAgICAgIHJlc3VsdCA9
IHBpeGVsQnVmZmVyOwotICAgICAgICBtX3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUgPSBXVEZN
b3ZlKHBpeGVsQnVmZmVyKTsKLSAgICB9Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShy
ZXN1bHQpKTsKLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5jcHAKaW5kZXggOWE2NDI5NDM3ODQyZjQzZGI2ZGExYzI1MDExZWQ0YTU0NGNiZjM2
MS4uYjUzOTJlMDRkOWZmOTZkYmYxMTA4MTRhODBhMDRhNmI2ZWYyODgzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMTAwMCwxMyArMTAwMCwxOCBAQCBib29sIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNv
cmU6OkdyYXBoaQogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQot
I2VsaWYgIVBMQVRGT1JNKENPQ09BKQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCisjZW5kaWYK
Kworc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU+IE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4gcmVzdWx0OworICAgIGJvb2wgY2hhbmdlZCA9IGZh
bHNlOworICAgIGlmICghY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSwgTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hh
bmdlZDo6UmVwbHkocmVzdWx0LCBjaGFuZ2VkKSwgbV9pZCkpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgaWYgKGNoYW5nZWQpCisgICAgICAgIG1fdmlkZW9GcmFtZUZvckN1cnJl
bnRUaW1lID0gV1RGTW92ZShyZXN1bHQpOworICAgIHJldHVybiBtX3ZpZGVvRnJhbWVGb3JDdXJy
ZW50VGltZTsKIH0KLSNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogUmVmUHRyPE5hdGl2
ZUltYWdlPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om5hdGl2ZUltYWdlRm9yQ3VycmVudFRp
bWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggZWIzMjYyNDA0YzZmOTFkOGQyNjdh
Mzg1MTY0NTIyN2EwOTAzNzllOC4uZWEyYTA2NmIwMDYzOTNhZDZkZTIzNWE1YTA5MjZmOTNjZTY3
NjEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0yOTIsOSArMjkyLDggQEAgcHJp
dmF0ZToKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOwogI2lmICFVU0Uo
QVZGT1VOREFUSU9OKQogICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJl
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMKiwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVudW0s
IEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJvb2wsIGJvb2wpIGZpbmFs
OwotI2Vsc2UKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSgpIGZpbmFsOwogI2VuZGlmCisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpN
ZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwog
ICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGlt
ZSgpIGZpbmFsOwogICAgIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNl
KCkgZmluYWw7CiAKQEAgLTQ2MSw5ICs0NjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YWl0
aW5nRm9yS2V5IHsgZmFsc2UgfTsKICAgICBib29sIG1fdGltZUlzUHJvZ3Jlc3NpbmcgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkIHsgZmFsc2UgfTsKLSNp
ZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX3Bp
eGVsQnVmZmVyRm9yQ3VycmVudFRpbWU7Ci0jZW5kaWYKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG1fcGl4
ZWxCdWZmZXJHYXRoZXJlZFdpdGhWaWRlb0ZyYW1lTWV0YWRhdGE7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y+IG1fcGl4ZWxCdWZmZXJDb25mb3Jt
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29h
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQppbmRl
eCBjMGI3NzZkYzc3M2IxN2ZhNDMwY2Q1ODk2OGIwMDdiMzFiZDc2YThkLi40MWRiYzdhNTNiNzE3
NzYyZTQ1YTIwOWUwZjg0NzBlMTE1ZjExMDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0KQEAgLTk0LDE4ICs5NCw2IEBAIFdlYkNvcmU6OkRlc3Rp
bmF0aW9uQ29sb3JTcGFjZSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNvbG9yU3BhY2UoKQog
ICAgIHJldHVybiBjb2xvclNwYWNlOwogfQogCi0jaWYgVVNFKEFWRk9VTkRBVElPTikKLVJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBpeGVsQnVm
ZmVyRm9yQ3VycmVudFRpbWUoKQotewotICAgIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJSZWY+PiByZXN1bHQ7Ci0gICAgaWYgKCFjb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWVJ
ZkNoYW5nZWQoKSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlBpeGVsQnVmZmVy
Rm9yQ3VycmVudFRpbWVJZkNoYW5nZWQ6OlJlcGx5KHJlc3VsdCksIG1faWQpKQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICBpZiAocmVzdWx0KQotICAgICAgICBtX3BpeGVsQnVmZmVyRm9y
Q3VycmVudFRpbWUgPSBXVEZNb3ZlKCpyZXN1bHQpOwotICAgIHJldHVybiBtX3BpeGVsQnVmZmVy
Rm9yQ3VycmVudFRpbWU7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNl
bmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNl
NWMzMGQwZDRlZTJhMzU1ZTA2ODkwNjk3ZDkwMjQ3YTBhZGNiNDQuLmQ1OTIyNTU5Mjc3ZTIxYWMy
ZTQyMTA3MWFmNTYyMmI1YjIzZTliNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wMS0x
NyAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxl
bWVudCBXZWJHTCBHUFUgYnVmZmVyIHRleHR1cmUgdXBsb2FkIHBhdGggZm9yIENvY29hIGdldFVz
ZXJNZWRpYSBjYW1lcmEgc3RyZWFtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM1MjMzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NzYwMTc2Mj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy5odG1sOgorICAgICAgICAqIHdlYnJ0
Yy9yb3V0aW5lcy5qczoKKyAgICAgICAgVGVzdCBjYW1lcmEgaW1hZ2Ugcm90YXRpb25zIGluIHRo
ZSB0ZXN0LgorCiAyMDIyLTAxLTE3ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbR1RLXSBJbXBsZW1lbnQgZm9ybSB2YWxpZGF0aW9uIHdpdGggZ3RrMyB3
aWRnZXRzIGluIHRoZSBVSSBwcm9jZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLWV4cGVjdGVkLnR4dApp
bmRleCA4NjU5NDAyNmZlNzliMzAwMzllZDczZWNlMjllZDZmY2UyODcwMWU0Li5kZmNhMDljMGE3
NjU3MzlkMDkxZDRmM2VjZjIxNjM0NTNlMjdjNDAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw0IEBACiAKLVBBU1MgVGVzdGluZyBnZXRVc2VyTWVkaWEgc3Ry
ZWFtIHRvIGNhbnZhcyBjb250ZXh0cyB2aWEgMkRDb250ZXh0Ci1QQVNTIFRlc3RpbmcgZ2V0VXNl
ck1lZGlhIHN0cmVhbSB0byBjYW52YXMgY29udGV4dHMgdmlhIEltYWdlQml0bWFwIHRvIDJEQ29u
dGV4dAotUEFTUyBUZXN0aW5nIGdldFVzZXJNZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRleHRz
IHZpYSBXZWJHTCB0ZXh0dXJlCi1QQVNTIFRlc3RpbmcgZ2V0VXNlck1lZGlhIHN0cmVhbSB0byBj
YW52YXMgY29udGV4dHMgdmlhIEltYWdlQml0bWFwIHRvIFdlYkdMIHRleHR1cmUKKworRkFJTCBU
ZXN0aW5nIGdldFVzZXJNZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRleHRzIGFzc2VydF9hcnJh
eV9hcHByb3hfZXF1YWxzOiB3aGl0ZSByZWN0IG5vdCBmb3VuZCBzdWJ0ZXN0IG5hbWU6IHdpdGhX
ZWJHTFRleFN1YkltYWdlRXh0cmEgYW5nbGU6MCBwcm9wZXJ0eSAwLCBleHBlY3RlZCAyNTUgKy8t
IDMsIGV4cGVjdGVkIDI1NSBidXQgZ290IDAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMuaHRtbAppbmRleCBkMjgzZjQ4
ZjdjZjMxNGQzMTQ5YTMyZTNmODkwMzlmNzQ3ODRmZGFhLi44OWFhYzYzOTcxYzE0OTM4MTY3YTFl
MzJhOTM3YTMwMWIxN2FmNTY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMuaHRtbApAQCAtOSw3ICs5LDggQEAKICAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uL2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11
dGlscy5qcyI+PC9zY3JpcHQ+CiAKICAgICAgICAgPHN0eWxlIHR5cGU9dGV4dC9jc3M+Ci0gICAg
ICAgICAgICBjYW52YXMgeyB3aWR0aDogNjAwcHggfQorICAgICAgICAgICAgY2FudmFzIHsgd2lk
dGg6IDYwcHggfQorICAgICAgICAgICAgdmlkZW8geyB3aWR0aDogNjBweCB9CiAgICAgICAgIDwv
c3R5bGU+CiAgICAgPC9oZWFkPgogICAgIDxib2R5PgpAQCAtMzYsMTIgKzM3LDE4IEBAIGZ1bmN0
aW9uIGNyZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbykgewogICAgIHJldHVybiBjYW52YXM7CiB9CiAK
LWZ1bmN0aW9uIGNyZWF0ZVZlcmlmeVdlYkdMQ29udGV4dChjYW52YXMpIHsKK2Z1bmN0aW9uIGNy
ZWF0ZVZlcmlmeVdlYkdMU3RhdGUoY2FudmFzKSB7CiAgICAgbGV0IGdsID0gd3R1LmNyZWF0ZTNE
Q29udGV4dChjYW52YXMsIHsgZGVwdGg6IGZhbHNlLCBzdGVuY2lsOiBmYWxzZSwgYW50aWFsaWFz
OiBmYWxzZSB9KTsKICAgICBnbC52aWV3cG9ydCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5o
ZWlnaHQpOwogICAgIGxldCBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKICAg
ICBnbC51bmlmb3JtMWkoZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKSwgMCk7
Ci0gICAgcmV0dXJuIGdsOworICAgIGxldCB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwor
ICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOworICAgIGdsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNU
KTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJ
TFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7CisgICAgZ2wudGV4UGFyYW1ldGVy
aShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Cisg
ICAgcmV0dXJuIFtnbCwgdGV4dHVyZV07CiB9CiAKIGZ1bmN0aW9uIGdldEZyYW1lYnVmZmVyQXNJ
bWFnZURhdGEoZ2wpwqB7CkBAIC01NSw3OSArNjIsMTA1IEBAIGZ1bmN0aW9uIGdldEZyYW1lYnVm
ZmVyQXNJbWFnZURhdGEoZ2wpwqB7CiAgICAgcmV0dXJuIGltYWdlRGF0YTsKIH0KIAotcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGxldCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZp
ZGVvKCk7Ci0gICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7Ci0gICAgbGV0IGNhbnZhcyA9IGNyZWF0
ZVZlcmlmeUNhbnZhcyh2aWRlbyk7Ci0gICAgZGVidWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7Ci0K
K2Z1bmN0aW9uIHdpdGgyRENvbnRleHREcmF3SW1hZ2UodmlkZW8sIGNhbnZhcykgewogICAgIGxl
dCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKICAgICBjdHguZHJhd0ltYWdlKHZpZGVv
LCAwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwotICAgIGFzc2VydEltYWdlRGF0
YUNvbnRhaW5zTW9ja0NhbWVyYUltYWdlKGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgY2FudmFzLndp
ZHRoLCBjYW52YXMuaGVpZ2h0KSk7Ci0gICAgZGVidWdlLnJlbW92ZUNoaWxkKGNhbnZhcyk7Ci0g
ICAgZGVidWdlLnJlbW92ZUNoaWxkKHZpZGVvKTsKLQotfSwgZG9jdW1lbnQudGl0bGUgKyAiIHZp
YSAyRENvbnRleHQiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGxldCB2aWRl
byA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7Ci0gICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7
Ci0gICAgbGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbyk7Ci0gICAgZGVidWdl
LmFwcGVuZENoaWxkKGNhbnZhcyk7CisgICAgcmV0dXJuIGN0eC5nZXRJbWFnZURhdGEoMCwgMCwg
Y2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKK30KIAorYXN5bmMgZnVuY3Rpb24gd2l0aDJE
Q29udGV4dERyYXdJbWFnZUltYWdlQml0bWFwKHZpZGVvLCBjYW52YXMpIHsKICAgICBsZXQgY3R4
ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CiAgICAgbGV0IGltYWdlQml0bWFwID0gYXdhaXQg
Y3JlYXRlSW1hZ2VCaXRtYXAodmlkZW8pOwogICAgIGN0eC5kcmF3SW1hZ2UoaW1hZ2VCaXRtYXAs
IDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Ci0gICAgYXNzZXJ0SW1hZ2VEYXRh
Q29udGFpbnNNb2NrQ2FtZXJhSW1hZ2UoY3R4LmdldEltYWdlRGF0YSgwLCAwLCBjYW52YXMud2lk
dGgsIGNhbnZhcy5oZWlnaHQpKTsKLSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQoY2FudmFzKTsKLSAg
ICBkZWJ1Z2UucmVtb3ZlQ2hpbGQodmlkZW8pOwotfSwgZG9jdW1lbnQudGl0bGUgKyAiIHZpYSBJ
bWFnZUJpdG1hcCB0byAyRENvbnRleHQiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewot
ICAgIGxldCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7Ci0gICAgZGVidWdlLmFw
cGVuZCh2aWRlbyk7Ci0gICAgbGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbyk7
Ci0gICAgZGVidWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7CisgICAgcmV0dXJuIGN0eC5nZXRJbWFn
ZURhdGEoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKK30KIAotICAgIGxldCBn
bCA9IGNyZWF0ZVZlcmlmeVdlYkdMQ29udGV4dChjYW52YXMpOwotICAgIGxldCB0ZXh0dXJlID0g
Z2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRl
eHR1cmUpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
SU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wudGV4UGFyYW1l
dGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7
Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwg
Z2wuQ0xBTVBfVE9fRURHRSk7CitmdW5jdGlvbiB3aXRoV2ViR0xUZXhJbWFnZSh2aWRlbywgY2Fu
dmFzKSB7CisgICAgbGV0IFtnbCwgdGV4dHVyZV0gPSBjcmVhdGVWZXJpZnlXZWJHTFN0YXRlKGNh
bnZhcyk7CiAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCB2aWRlbyk7CiAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRR
dWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7CisgICAgcmV0dXJuIGdldEZyYW1lYnVmZmVyQXNJbWFn
ZURhdGEoZ2wpOworfQogCi0gICAgbGV0IGltYWdlRGF0YSA9IGdldEZyYW1lYnVmZmVyQXNJbWFn
ZURhdGEoZ2wpOwotICAgIGFzc2VydEltYWdlRGF0YUNvbnRhaW5zTW9ja0NhbWVyYUltYWdlKGlt
YWdlRGF0YSk7Ci0gICAgZGVidWdlLnJlbW92ZUNoaWxkKGNhbnZhcyk7Ci0gICAgZGVidWdlLnJl
bW92ZUNoaWxkKHZpZGVvKTsKLX0sIGRvY3VtZW50LnRpdGxlICsgIiB2aWEgV2ViR0wgdGV4dHVy
ZSIpOworZnVuY3Rpb24gd2l0aFdlYkdMVGV4U3ViSW1hZ2UodmlkZW8sIGNhbnZhcykgeworICAg
IGxldCBbZ2wsIHRleHR1cmVdID0gY3JlYXRlVmVyaWZ5V2ViR0xTdGF0ZShjYW52YXMpOworICAg
IGxldCB3ID0gdmlkZW8udmlkZW9XaWR0aDsKKyAgICBsZXQgaCA9IHZpZGVvLnZpZGVvSGVpZ2h0
OworICAgIGxldCBwaXhlbHMgPSBuZXcgVWludDhBcnJheSh3ICogaCAqIDQpOworICAgIHBpeGVs
cy5maWxsKDApOworICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwg
dywgaCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgcGl4ZWxzKTsKKyAgICBnbC50ZXhT
dWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZ
VEUsIHZpZGVvKTsKKyAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAwLCAy
NTVdKTsKKyAgICByZXR1cm4gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCk7Cit9CiAKLXBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBsZXQgdmlkZW8gPSBhd2FpdCBjcmVhdGVTb3Vy
Y2VWaWRlbygpOwotICAgIGRlYnVnZS5hcHBlbmQodmlkZW8pOwotICAgIGxldCBjYW52YXMgPSBj
cmVhdGVWZXJpZnlDYW52YXModmlkZW8pOwotICAgIGRlYnVnZS5hcHBlbmRDaGlsZChjYW52YXMp
OworZnVuY3Rpb24gd2l0aFdlYkdMVGV4U3ViSW1hZ2VFeHRyYSh2aWRlbywgY2FudmFzKSB7Cisg
ICAgbGV0IFtnbCwgdGV4dHVyZV0gPSBjcmVhdGVWZXJpZnlXZWJHTFN0YXRlKGNhbnZhcyk7Cisg
ICAgbGV0IHcgPSB2aWRlby52aWRlb1dpZHRoICsgMTsKKyAgICBsZXQgaCA9IHZpZGVvLnZpZGVv
SGVpZ2h0ICsgMjsKKyAgICBsZXQgcGl4ZWxzID0gbmV3IFVpbnQ4QXJyYXkodyAqIGggKiA0KTsK
KyAgICBwaXhlbHMuZmlsbCgwKTsKKyAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IGdsLlJHQkEsIHcsIGgsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHBpeGVscyk7Cisg
ICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAxLCAyLCAwLCBnbC5SR0JBLCBnbC5V
TlNJR05FRF9CWVRFLCB2aWRlbyk7CisgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBb
MCwgMCwgMCwgMjU1XSk7CisgICAgcmV0dXJuIGdldEZyYW1lYnVmZmVyQXNJbWFnZURhdGEoZ2wp
OworfQogCi0gICAgbGV0IGdsID0gY3JlYXRlVmVyaWZ5V2ViR0xDb250ZXh0KGNhbnZhcyk7Ci0g
ICAgbGV0IHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Cithc3luYyBmdW5jdGlvbiB3aXRo
V2ViR0xUZXhJbWFnZUltYWdlQml0bWFwKHZpZGVvLCBjYW52YXMpIHsKKyAgICBsZXQgW2dsLCB0
ZXh0dXJlXSA9IGNyZWF0ZVZlcmlmeVdlYkdMU3RhdGUoY2FudmFzKTsKICAgICBsZXQgaW1hZ2VC
aXRtYXAgPSBhd2FpdCBjcmVhdGVJbWFnZUJpdG1hcCh2aWRlbyk7Ci0gICAgZ2wuYmluZFRleHR1
cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhU
VVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBh
cmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNU
KTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9T
LCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQs
IGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKICAgICBnbC50ZXhJbWFnZTJE
KGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGlt
YWdlQml0bWFwKTsKICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAwLCAy
NTVdKTsKKyAgICByZXR1cm4gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCk7Cit9CiAKLSAg
ICBsZXQgaW1hZ2VEYXRhID0gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCk7Ci0gICAgYXNz
ZXJ0SW1hZ2VEYXRhQ29udGFpbnNNb2NrQ2FtZXJhSW1hZ2UoaW1hZ2VEYXRhKTsKLSAgICBkZWJ1
Z2UucmVtb3ZlQ2hpbGQoY2FudmFzKTsKLSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQodmlkZW8pOwot
fSwgZG9jdW1lbnQudGl0bGUgKyAiIHZpYSBJbWFnZUJpdG1hcCB0byBXZWJHTCB0ZXh0dXJlIik7
Citjb25zdCBmdW5jcyA9IFt3aXRoMkRDb250ZXh0RHJhd0ltYWdlLCB3aXRoMkRDb250ZXh0RHJh
d0ltYWdlSW1hZ2VCaXRtYXAsIHdpdGhXZWJHTFRleEltYWdlLCB3aXRoV2ViR0xUZXhTdWJJbWFn
ZSwgd2l0aFdlYkdMVGV4U3ViSW1hZ2VFeHRyYSwgd2l0aFdlYkdMVGV4SW1hZ2VJbWFnZUJpdG1h
cF07Citjb25zdCBzdWJjYXNlcyA9IFtdOworLy8gRklYTUU6IDI3MCBub3QgdGVzdGVkIGJlY2F1
c2UgaXQncyBub3QgcGFzc2VkIHRvIHRoZSBtb2NrIGFzIC05MC4gQ3VycmVudGx5IG5vdCBjaGFu
Z2VkIHRvCisvLyBhdm9pZCByZWdyZXNzaW5nLgorZm9yIChsZXQgYW5nbGUgb2YgWzAsIDkwLCAx
ODBdKSB7CisgICAgZm9yIChsZXQgZnVuYyBvZiBmdW5jcykKKyAgICAgICAgc3ViY2FzZXMucHVz
aCh7IGFuZ2xlOiBhbmdsZSwgdGVzdDogZnVuYyB9KTsKK30KIAorcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICAgIHQuYWRkX2NsZWFudXAoYXN5bmMgKCkgPT4gc2V0TW9ja0NhbWVyYUltYWdl
T3JpZW50YXRpb24oMCkpOworICAgIGxldCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVv
KCk7CisgICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7CisgICAgbGV0IHJlYWxWaWRlb1NpemUgPSBb
dmlkZW8udmlkZW9XaWR0aCwgdmlkZW8udmlkZW9IZWlnaHRdOworCisgICAgZm9yIChsZXQgc3Vi
Y2FzZSBvZiBzdWJjYXNlcykgeworICAgICAgICBsZXQgZGVzYyA9IGBzdWJ0ZXN0IG5hbWU6ICR7
c3ViY2FzZS50ZXN0Lm5hbWV9IGFuZ2xlOiR7c3ViY2FzZS5hbmdsZX1gOworICAgICAgICBpZiAo
c3ViY2FzZS5hbmdsZSA9PSAxODApIHsKKyAgICAgICAgICAgIC8vIDAgLT4gMTgwIGNhbm5vdCBk
ZXRlY3Qgcm90YXRpb24gdmlhIHZpZGVvIHNpemUgY2hhbmdlLiBHbyB2aWEgOTAuCisgICAgICAg
ICAgICBsZXQgW2FuZ2xlLCB2aWRlb1NpemVdID0gc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50YXRp
b24oOTAsIHJlYWxWaWRlb1NpemUpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvclZpZGVvU2l6
ZSh2aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVbMV0pOworICAgICAgICB9CisgICAgICAg
IGxldCBbYW5nbGUsIHZpZGVvU2l6ZV0gPSBzZXRNb2NrQ2FtZXJhSW1hZ2VPcmllbnRhdGlvbihz
dWJjYXNlLmFuZ2xlLCByZWFsVmlkZW9TaXplKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvclZpZGVv
U2l6ZSh2aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVbMV0pOworCisgICAgICAgIGxldCBj
YW52YXMgPSBjcmVhdGVWZXJpZnlDYW52YXModmlkZW8pOworICAgICAgICBkZWJ1Z2UuYXBwZW5k
Q2hpbGQoY2FudmFzKTsKKyAgICAgICAgbGV0IGltYWdlRGF0YSA9IGF3YWl0IHN1YmNhc2UudGVz
dCh2aWRlbywgY2FudmFzKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGFzc2VydEltYWdl
RGF0YUNvbnRhaW5zTW9ja0NhbWVyYUltYWdlKGltYWdlRGF0YSwgYW5nbGUsIGRlc2MpOworICAg
ICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAvLyBVc2UgdGhpcyBmb3IgZGVidWdnaW5n
OgorICAgICAgICAgICAgLy8gYXdhaXQgd2FpdEZvcigxMDAwMDApOworICAgICAgICAgICAgdGhy
b3cgZTsKKyAgICAgICAgfQorICAgICAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQoY2FudmFzKTsKKyAg
ICAgICAgLy8gUmVzZXQgb3JpZW50YXRpb24gZm9yIHRoZSBuZXh0IHRlc3QgYnkgZ29pbmcgdG8g
MC4KKyAgICAgICAgaWYgKHN1YmNhc2UuYW5nbGUgPT0gMTgwKSB7CisgICAgICAgICAgICAvLyAx
ODAgLT4gMCBjYW5ub3QgZGV0ZWN0IHJvdGF0aW9uIHZpYSB2aWRlbyBzaXplIGNoYW5nZS4gR28g
dmlhIDkwLgorICAgICAgICAgICAgbGV0IFthbmdsZSwgdmlkZW9TaXplXSA9IHNldE1vY2tDYW1l
cmFJbWFnZU9yaWVudGF0aW9uKDkwLCByZWFsVmlkZW9TaXplKTsKKyAgICAgICAgICAgIGF3YWl0
IHdhaXRGb3JWaWRlb1NpemUodmlkZW8sIHZpZGVvU2l6ZVswXSwgdmlkZW9TaXplWzFdKTsKKyAg
ICAgICAgfQorICAgICAgICBzZXRNb2NrQ2FtZXJhSW1hZ2VPcmllbnRhdGlvbigwKTsKKyAgICAg
ICAgYXdhaXQgd2FpdEZvclZpZGVvU2l6ZSh2aWRlbywgcmVhbFZpZGVvU2l6ZVswXSwgcmVhbFZp
ZGVvU2l6ZVsxXSk7CisgICAgfQorICAgIGRlYnVnZS5yZW1vdmVDaGlsZCh2aWRlbyk7Cit9LCBk
b2N1bWVudC50aXRsZSk7CiAgICAgICAgIDwvc2NyaXB0PgogICAgIDwvYm9keT4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcyBiL0xheW91dFRlc3Rz
L3dlYnJ0Yy9yb3V0aW5lcy5qcwppbmRleCBmODM3YWEwMGQ3YWUzNzhiNDU1YzhjY2E0NDk4MTk1
MGJhMDVlMDlhLi40NzhhMTAxMzE3ZGUxMjA4YzJlMzVjMzQwZWIxNGU3ZTJkZWUyMDIxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMKKysrIGIvTGF5b3V0VGVzdHMv
d2VicnRjL3JvdXRpbmVzLmpzCkBAIC0yNTMsNyArMjUzLDcgQEAgYXN5bmMgZnVuY3Rpb24gY29t
cHV0ZUZyYW1lUmF0ZShzdHJlYW0sIHZpZGVvKQogewogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KSB7CiAgICAgICAgIGludGVybmFscy5vYnNlcnZlTWVkaWFTdHJlYW1UcmFjayhzdHJlYW0uZ2V0
VmlkZW9UcmFja3MoKVswXSk7Ci0gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
c2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpOwogICAgICAgICByZXR1cm4gaW50
ZXJuYWxzLnRyYWNrVmlkZW9TYW1wbGVDb3VudDsKICAgICB9CiAKQEAgLTI3Myw3ICsyNzMsNyBA
QCBhc3luYyBmdW5jdGlvbiBjb21wdXRlRnJhbWVSYXRlKHN0cmVhbSwgdmlkZW8pCiAgICAgYXdh
aXQgdmlkZW8ucGxheSgpOwogCiAgICAgY29uc3Qgc3RhdHMxID0gYXdhaXQgZ2V0UmVjZWl2ZWRU
cmFja1N0YXRzKGNvbm5lY3Rpb24pOwotICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
c2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29s
dmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7CiAgICAgY29uc3Qgc3RhdHMyID0gYXdh
aXQgZ2V0UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24pOwogICAgIHJldHVybiAoc3RhdHMy
LmZyYW1lc1JlY2VpdmVkIC0gc3RhdHMxLmZyYW1lc1JlY2VpdmVkKSAqIDEwMDAgLyAoc3RhdHMy
LnRpbWVzdGFtcCAtIHN0YXRzMS50aW1lc3RhbXApOwogfQpAQCAtMjk4LDYgKzI5OCwyMCBAQCBm
dW5jdGlvbiBzZXRIMjY0SGlnaENvZGVjKHNkcCkKICAgICB9KS5qb2luKCdcclxuJyk7CiB9CiAK
Ky8vIFNldHMgdGhlIGNhbWVyYSBpbWFnZSBvcmllbnRhdGlvbiBpZiBydW5uaW5nIG9uIHRlc3Qg
cnVubmVyLgorLy8gYW5nbGU6IG9yaWVudGF0aW9uIGFuZ2xlIG9mIHRoZSBjYW1lcmEgaW1hZ2Ug
aW4gZGVncmVlcworZnVuY3Rpb24gc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50YXRpb24oYW5nbGUs
IHZpZGVvU2l6ZSkgeworICAgIGlmIChbMCwgOTAsIDE4MCwgMjcwXS5pbmRleE9mKGFuZ2xlKSA9
PSAtMSkKKyAgICAgICAgdGhyb3cgImludmFsaWQgYW5nbGUiOworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYW1lcmFPcmllbnRhdGlvbihh
bmdsZSk7CisgICAgICAgIGlmICh2aWRlb1NpemUgJiYgKGFuZ2xlID09IDkwIHx8IGFuZ2xlID09
IDI3MCkpCisgICAgICAgICAgICB2aWRlb1NpemUgPSBbdmlkZW9TaXplWzFdLCB2aWRlb1NpemVb
MF1dOworICAgICAgICByZXR1cm4gW2FuZ2xlLCB2aWRlb1NpemVdOworICAgIH0KKyAgICByZXR1
cm4gWzAsIHZpZGVvU2l6ZV07Cit9CisKIC8vIFJldHVybnMgVWludDhBcnJheVs0XSBvZiBSR0JB
IGNvbG9yLgogLy8gcDogW3gsIHldIG9mIDAuLjEgcmFuZ2UuCiBmdW5jdGlvbiBnZXRJbWFnZURh
dGFQaXhlbChpbWFnZURhdGEsIHApCkBAIC0zMTEsMTYgKzMyNSwzMyBAQCBmdW5jdGlvbiBnZXRJ
bWFnZURhdGFQaXhlbChpbWFnZURhdGEsIHApCiAvLyBBc3NlcnRzIHRoYXQgSW1hZ2VEYXRhIGlu
c3RhbmNlIGNvbnRhaW5zIG1vY2sgY2FtZXJhIGltYWdlIHJlbmRlcmVkIGJ5IE1pbmlCcm93c2Vy
IGFuZCBXZWJLaXRUZXN0UnVubmVyLgogLy8gT2J0YWluIGZ1bGwgY2FtZXJhIGltYWdlIG9mIHNp
emUgYHdpZHRoYDoKIC8vICBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRp
YSh7IHZpZGVvOiB7IHdpZHRoOiB7IGV4YWN0OiB3aWR0aCB9IH0gfSk7Ci1mdW5jdGlvbiBhc3Nl
cnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEpCitmdW5jdGlvbiBh
c3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEsIGFuZ2xlLCBk
ZXNjKQogeworICAgIGFuZ2xlID0gYW5nbGUgfHwgMDsKKyAgICBkZXNjID0gZGVzYyB8fCAiIjsK
KworICAgIGZ1bmN0aW9uIHJvdGF0ZVBvaW50KHApIHsKKyAgICAgICAgbGV0IGEgPSBhbmdsZTsK
KyAgICAgICAgbGV0IG4gPSBbIHBbMF0sIHBbMV0gXTsKKyAgICAgICAgd2hpbGUgKGEgPiAwKSB7
CisgICAgICAgICAgICBuID0gWyAxLjAgLSBuWzFdLCBuWzBdIF07CisgICAgICAgICAgICBhIC09
IDkwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuOworICAgIH0KKwogICAgIGNvbnN0IHdo
aXRlID0gWyAyNTUsIDI1NSwgMjU1LCAyNTUgXTsKKyAgICBjb25zdCB3aGl0ZVBvaW50ID0gcm90
YXRlUG9pbnQoWyAwLjA0LCAwLjcgXSk7CiAgICAgY29uc3QgeWVsbG93ID0gWyAyNTUsIDI1NSwg
MCwgMjU1IF07CisgICAgY29uc3QgeWVsbG93UG9pbnQgPSByb3RhdGVQb2ludChbIDAuMDgsIDAu
NyBdKTsKICAgICBjb25zdCBjeWFuID0gWyAwLCAyNTUsIDI1NSwgMjU1IF07CisgICAgY29uc3Qg
Y3lhblBvaW50ID0gcm90YXRlUG9pbnQoWyAwLjEyLCAwLjcgXSk7CiAgICAgY29uc3QgbGlnaHRH
cmVlbiA9IFsgMCwgMTI4LCAwLCAyNTUgXTsKKyAgICBjb25zdCBsaWdodEdyZWVuUG9pbnQgPSBy
b3RhdGVQb2ludChbIDAuMTYsIDAuNyBdKTsKIAogICAgIGxldCBlcnIgPSAzOwotICAgIGFzc2Vy
dF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgWyAwLjA0
LCAwLjcgXSksIHdoaXRlLCBlcnIsICJ3aGl0ZSByZWN0IG5vdCBmb3VuZCIpOwotICAgIGFzc2Vy
dF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgWyAwLjA4
LCAwLjcgXSksIHllbGxvdywgZXJyLCAieWVsbG93IHJlY3Qgbm90IGZvdW5kIik7Ci0gICAgYXNz
ZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCBbIDAu
MTIsIDAuNyBdKSwgY3lhbiwgZXJyLCAiY3lhbiByZWN0IG5vdCBmb3VuZCIpOwotICAgIGFzc2Vy
dF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgWyAwLjE2
LCAwLjcgXSksIGxpZ2h0R3JlZW4sIGVyciwgImxpZ2h0IGdyZWVuIHJlY3Qgbm90IGZvdW5kIik7
CisgICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VE
YXRhLCB3aGl0ZVBvaW50KSwgd2hpdGUsIGVyciwgIndoaXRlIHJlY3Qgbm90IGZvdW5kICIgKyBk
ZXNjKTsKKyAgICBhc3NlcnRfYXJyYXlfYXBwcm94X2VxdWFscyhnZXRJbWFnZURhdGFQaXhlbChp
bWFnZURhdGEsIHllbGxvd1BvaW50KSwgeWVsbG93LCBlcnIsICJ5ZWxsb3cgcmVjdCBub3QgZm91
bmQiICsgZGVzYyk7CisgICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRh
UGl4ZWwoaW1hZ2VEYXRhLCBjeWFuUG9pbnQpLCBjeWFuLCBlcnIsICJjeWFuIHJlY3Qgbm90IGZv
dW5kICIgKyBkZXNjKTsKKyAgICBhc3NlcnRfYXJyYXlfYXBwcm94X2VxdWFscyhnZXRJbWFnZURh
dGFQaXhlbChpbWFnZURhdGEsIGxpZ2h0R3JlZW5Qb2ludCksIGxpZ2h0R3JlZW4sIGVyciwgImxp
Z2h0IGdyZWVuIHJlY3Qgbm90IGZvdW5kICIgKyBkZXNjKTsKIH0K
</data>
<flag name="commit-queue"
          id="475436"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449385</attachid>
            <date>2022-01-18 06:57:25 -0800</date>
            <delta_ts>2022-01-18 11:54:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235233-20220118165723.patch</filename>
            <type>text/plain</type>
            <size>76878</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAwODliMmFlOGM0YTE0
ZGNmNGYwYTFlZjc4ZTE5ZjQ4ZmNiMjU0NC4uNDY5NGE3YTc1NDBjOTUxYTQxOTAzYjhlOWYwYWYy
ZDA3NGEzNDI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIyLTAxLTE3ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdl
YkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlh
IGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NjAxNzYyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgZnVsbCB0ZXh0
dXJlIHVwbG9hZHMgZnJvbSBNU0UgY2FtZXJhIGNhcHR1cmVzIHVzZSBDVlBpeGVsQnVmZmVycwor
ICAgICAgICBpbnN0ZWFkIG9mIHJlYWRpbmcgdGhlIHBpeGVscyBiYWNrLgorICAgICAgICBJbXBs
ZW1lbnQgTWVkaWFQbGF5ZXJJbnRlcmZhY2U6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKSBm
b3IKKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLgorICAgICAg
ICBSZW5hbWUgZnVuY3Rpb25zIGZyb20gcGl4ZWxCdWZmZXIuLi4gdG8gdmlkZW9GcmFtZS4KKyAg
ICAgICAgVXNlIG5ldyB0eXBlIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBpbnN0ZWFkIG9mIENWUGl4
ZWxCdWZmZXIuCisgICAgICAgIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBjb250YWlucyBhbHNvIHRo
ZSBmcmFtZSBvcmllbnRhdGlvbi4gVGhlCisgICAgICAgIG9yaWVudGF0aW9uIGlzIG5lZWRlZCBh
cyB0aGUgY2FtZXJhIG1pZ2h0IGNhcHR1cmUgdGhlIGltYWdlCisgICAgICAgIHdpdGggYSByb3Rh
dGlvbiBvciBhIGZsaXAuCisKKyAgICAgICAgVG8gYXZvaWQgaWZkZWZzLCB0aGUgbmV3IEFQSSB2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgZXhpc3RzCisgICAgICAgIGZvciBhbGwgcGxhdGZvcm1z
LCBidXQgaXMgY3VycmVudGx5IGNhbGxlZCBvbmx5IGJ5IENvY29hLgorICAgICAgICBBbHNvIHRo
ZSB0eXBlIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBleGlzdHMgZm9yIGFsbCBwbGF0Zm9ybXMKKyAg
ICAgICAgYnV0IGhhcyB0aGUgZnJhbWUgY29udGVudHMgaW1wbGVtZW50YXRpb24gb25seSBmb3Ig
Q29jb2EuCisKKyAgICAgICAgVGVzdGVkIGJ5IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlh
LXRvLWNhbnZhcy5odG1sCisKKyAgICAgICAgQ3VycmVudGx5IHRoZSAibWlycm9yZWQiIHBhcnQg
aXMgdGVzdGVkIG1hbnVhbGx5LCBXZWJLaXQKKyAgICAgICAgZG9lcyBub3QgcmVxdWVzdCBtaXJy
b3JlZCBjYW1lcmEgaW1hZ2Ugc28gaXQgaXMgZGVhZCBjb2RlLgorCisgICAgICAgICogSGVhZGVy
cy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6dmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpwaXhlbEJ1
ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
Ojpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpwaXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclZpZGVvRnJhbWUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclZpZGVvRnJhbWU6Om9yaWVudGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyVmlkZW9GcmFtZTo6cGl4ZWxCdWZmZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lQVZGLm1tOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRl
eHRHTENWLmguCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU6Ok1lZGlh
UGxheWVyVmlkZW9GcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwaXhl
bEJ1ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjp2
aWRlb09yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRleHR1cmVGcm9tTWVkaWEp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2Eu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpHcmFwaGlj
c0NvbnRleHRHTENWQ29jb2EpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xD
VkNvY29hOjpjb3B5VmlkZW9GcmFtZVRvVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29h
Lmg6CisKIDIwMjItMDEtMTcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6cmVzZXQgc2hvdWxkIGhv
cCB0byB0aGUgbWFpbiB0aHJlYWQgYmVmb3JlIGNhbGxpbmcgaXRzIG9ic2VydmVycwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA3OTM1NWI5Mzk1NmUwMzQ1NGMxNjZjYTVjZDNjZjkzM2EyMTVhYjI1Li40ZDVmYzE0MjI1
YjkwOTQyNzJkYWJiODhiNzg4Y2ZhNjAzM2RlMzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBA
CisyMDIyLTAxLTE3ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IFdlYkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0aCBmb3Ig
Q29jb2EgZ2V0VXNlck1lZGlhIGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzg3NjAxNzYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbmFtZSBmdW5jdGlvbnMgZnJvbSBwaXhlbEJ1ZmZlci4uLiB0byB2aWRlb0ZyYW1lLgor
ICAgICAgICBTZW5kIG5ldyB0eXBlIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBpbnN0ZWFkIG9mIENW
UGl4ZWxCdWZmZXIuCisgICAgICAgIE1lZGlhUGxheWVyVmlkZW9GcmFtZSBjb250YWlucyBhbHNv
IHRoZSBmcmFtZSBvcmllbnRhdGlvbi4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEpOgorICAgICAgICAqIEdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cGl4
ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBpeGVsQnVm
ZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWUpOiBEZWxldGVkLgorCiAyMDIyLTAxLTE3ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbR1RLXSBJbXBsZW1lbnQgZm9ybSB2YWxpZGF0aW9uIHdpdGgg
Z3RrMyB3aWRnZXRzIGluIHRoZSBVSSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA4ODkw
ZjhkYmE0NzRjMzkyYzM3MzI5OGRhNzU4MGY3MTljZTVjM2RlLi43OGU3YmM5MTI2NzI2MjU5NTQ4
MWE5Mjg1MjRlOTgwZmJhNTQzODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE1MTEsNiArMTUx
MSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllckVudW1zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllcklkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNvdXJjZVByaXZhdGUuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFVc2FnZUluZm8uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMmMzYjRmODFhNTJm
NTY2OTljYmZkNDEyZGZhYzA5NDM2NjZhZWFlNy4uZGQxZWQ4YWU2MmYyYTRiMmU2M2QxZWQxOTM1
MTU5OGZlZTBkYmNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yOTYsNiArMjk2LDcg
QEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNr
UHJpdmF0ZUFWRi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlQVZGLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWJhY2tUYXJnZXRDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXllclZpZGVvRnJhbWVBVkYubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIw
ODFiNmExOWQzZGQ1ZmI2N2ZiMTZlN2JmYTljNzU4NmZmOWYxYWQuLjI5MmI1YzExYzY4NzRlOTIw
YmYyNTE5YTU2N2MwNzhiZmYwMTU5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI0MCw2ICsyNDAsNyBAQAogCQkwODFFQkYz
QjBGRDM0RjQxMDBEQTc1NTkgLyogU1ZHRmlsdGVyQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDgxRUJGMzkwRkQzNEY0MTAwREE3NTU5IC8q
IFNWR0ZpbHRlckJ1aWxkZXIuaCAqLzsgfTsKIAkJMDgzREFFQTcwRjAxQTdGQjAwMzQyNzU0IC8q
IFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODNEQUVBMzBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmUuaCAqLzsgfTsKIAkJMDgzREFFQTkwRjAxQTdGQjAwMzQyNzU0IC8q
IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDgzREFFQTUwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5oICovOyB9OworCQkwODQ0QjAxRDEyNTVCNEU2MDBCOUNERDAg
LyogU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDg0NEIwMUQxMjU1RTRFNjAwQjlDREQwIC8qIFNWR0JvdW5k
aW5nQm94Q29tcHV0YXRpb24uaCAqLzsgfTsKIAkJMDg0NTY4MDgxMkI5MERBNjAwOTYwQTlGIC8q
IEZvbnRNZXRyaWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwODQ1NjgwNzEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwODU0QjAxNTEyNTVFNEU2
MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODU0QjAwMzEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZH
SW5saW5lLmggKi87IH07CiAJCTA4NTRCMDE3MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJ
bmxpbmVUZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwODU0QjAwNTEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lVGV4dC5oICovOyB9
OwpAQCAtMjM5MSw2ICsyMzkyLDcgQEAKIAkJN0FGOUIyMEYxOENGQjVGNDAwQzY0QkVGIC8qIEpT
VlRUUmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0FGOUIyMEIxOENGQjVGMzAwQzY0QkVGIC8qIEpTVlRUUmVnaW9uTGlzdC5oICovOyB9
OwogCQk3QjEwMzM5RTI1NDk3MjE3MDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IxMDMzOUQyNTQ5
NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjEwMzM5RjI1NDk3MjFFMDBDOEMxQUMg
LyogR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3ND
b250ZXh0R0xDVkNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJN0I0NDEwRTEyNzk1OEZDNTAwMEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9G
cmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I0
NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNjA5NEREMjcwQzQ0
QkQwMDY0ODM1QyAvKiBBTkdMRVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEFOR0xFVXRp
bGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNl
U3dhcENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VT
d2FwQ2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3QjcyMEIwQzI3NDNEQkE3MDAwOEFCRUQgLyogR3JhcGhpY3NMYXllckNvbnRlbnRzRGlz
cGxheURlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QjcyMEIwQTI3NDNEQkE2MDAwOEFCRUQgLyogR3JhcGhpY3NMYXllckNvbnRlbnRzRGlz
cGxheURlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTQ2MzYsOCArNDYzOCw4IEBACiAJCUNERjc0N0YxMjcwRjc2NkYwMDhGRUVFQyAv
KiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0N0YwMjcwRjc2NkYwMDhGRUVFQyAvKiBSZW5k
ZXJTVkdSZXNvdXJjZU1hcmtlcklubGluZXMuaCAqLzsgfTsKIAkJQ0RGNzQ3RjMyNzBGNzZDRjAw
OEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnRJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDdGMjI3MEY3NkNG
MDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMuaCAqLzsg
fTsKIAkJQ0RGNzQ3RjUyNzBGODNCMTAwOEZFRUVDIC8qIFJlbmRlclNWR0dyYWRpZW50U3RvcElu
bGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
Rjc0N0Y0MjcwRjgzQjEwMDhGRUVFQyAvKiBSZW5kZXJTVkdHcmFkaWVudFN0b3BJbmxpbmVzLmgg
Ki87IH07Ci0JCUNERjc0N0Y3MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFw
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERjc0N0Y2MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMu
aCAqLzsgfTsKIAkJQ0RGNzQ3RjcyNzBGODNCNDEwN0RFRUVDIC8qIFJlbmRlclNWR1NoYXBlSW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RG
NzQ3RjYyNzBGODNCNDEwN0RFRUVDIC8qIFJlbmRlclNWR1NoYXBlSW5saW5lcy5oICovOyB9Owor
CQlDREY3NDdGNzI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDdG
NjI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmggKi87IH07
CiAJCUNERjc0N0Y5MjcwRjg3Q0IwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdy
YWRpZW50SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RGNzQ3RjgyNzBGODdDQjAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlUmFkaWFs
R3JhZGllbnRJbmxpbmVzLmggKi87IH07CiAJCUNERjc0N0ZCMjcwRjg5MUEwMDhGRUVFQyAvKiBS
ZW5kZXJTVkdSZXNvdXJjZU1hc2tlcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0N0ZBMjcwRjg5MUEwMDhGRUVFQyAvKiBSZW5kZXJT
VkdSZXNvdXJjZU1hc2tlcklubGluZXMuaCAqLzsgfTsKIAkJQ0RGNzQ4M0YxOEZFQkNFQzAwMDZF
Q0MwIC8qIEdyaWRQb3NpdGlvbnNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ4M0QxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRQb3Np
dGlvbnNSZXNvbHZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC02MTk4LDEwICs2MjAwLDEyIEBACiAJCTA4MUFBOEQ5MTExMTIzN0UwMDJBQjA2
RSAvKiBTVkdFbGVtZW50UmFyZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHRWxlbWVudFJhcmVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4
MUVCRjM4MEZEMzRGNDEwMERBNzU1OSAvKiBTVkdGaWx0ZXJCdWlsZGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0ZpbHRlckJ1aWxkZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwODFFQkYzOTBGRDM0RjQxMDBEQTc1NTkgLyogU1ZHRmls
dGVyQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdGaWx0ZXJC
dWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4MzRCMDBDMTI0NEU0RTYw
MEI5Q0REMCAvKiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODNEQUVBMjBGMDFBN0ZCMDAzNDI3NTQgLyogUmVu
ZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwODNEQUVBMzBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRy
b2xNdWx0aUxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgzREFF
QTQwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODNEQUVBNTBGMDFBN0ZC
MDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwODQ0QjAxRDEyNTVFNEU2MDBCOUNERDAgLyogU1ZHQm91
bmRpbmdCb3hDb21wdXRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA4NDU2ODA3MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBGb250TWV0cmljcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwODU0QjAwMjEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR0lubGluZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4NTRCMDAzMTI1NUU0RTYwMEI5Q0REMCAv
KiBSZW5kZXJTVkdJbmxpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyU1ZHSW5saW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTQ2OSw2ICsx
MTQ3Myw4IEBACiAJCTdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBH
cmFwaGljc0NvbnRleHRHTENWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1Yu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxNjE5MTAyNzE5ODgwRTAwQzQwRUFD
IC8qIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTdCNDQxMERGMjc5NThGQzQwMDBCNEY4QSAvKiBNZWRpYVBsYXllclZp
ZGVvRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJW
aWRlb0ZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCNDQxMEUyMjc5NThG
REUwMDBCNEY4QSAvKiBNZWRpYVBsYXllclZpZGVvRnJhbWVBVkYubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBNZWRpYVBsYXllclZpZGVvRnJhbWVBVkYubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdCNkRDODE1MjU3MTJFOTEwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElP
U3VyZmFjZVN3YXBDaGFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdCNkRDODE3MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRl
eHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QjcyMEIwQTI3NDNEQkE2MDAwOEFCRUQgLyogR3JhcGhpY3NMYXllckNv
bnRlbnRzRGlzcGxheURlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTM0MDcsOSArMTM0MTMsOSBAQAogCQlBMTBCQjU4MzE0ODRFM0E3MDBC
MkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZHUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMZWdhY3lSZW5kZXJTVkdSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUExMEJCNTgzMTQ4NEUzQTcwMEIzQUI2RCAvKiBSZW5kZXJTVkdSZWN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1JlY3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTEwQkI1ODgxNDg0RTNCMzAwQjJFODdBIC8qIExlZ2FjeVJlbmRlclNW
R1NoYXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlZ2FjeVJl
bmRlclNWR1NoYXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTEwQ0M1ODgx
NDczRTNCMzAwQjJBOEJGIC8qIFJlbmRlclNWR1NoYXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEwQkI1ODkxNDg0RTNCMzAwQjJFODdBIC8qIExlZ2FjeVJlbmRlclNWR1No
YXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1No
YXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg5MTQ4NEUzQjMwMEMz
Rjc3QiAvKiBSZW5kZXJTVkdTaGFwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW5kZXJTVkdTaGFwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTBDQzU4
ODE0NzNFM0IzMDBCMkE4QkYgLyogUmVuZGVyU1ZHU2hhcGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMTBENkU5NDIxNDRDOTk4MDBGREQxNEQgLyogSlNQYXltZW50UmVzcG9u
c2VDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQYXltZW50UmVzcG9uc2VDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBEQkY0NjE4RjkyMzE3MDAwRDcw
QzYgLyogTGVnYWN5UHJldmlld0xvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExMERDNzY4MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlR3JpZERhdGEuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYzMTEsOCArMTYzMTcsOCBAQAogCQlD
REY3NDdGMDI3MEY3NjZGMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXJJbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGMjI3MEY3NkNGMDA4RkVFRUMgLyogUmVu
ZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RGNzQ3RjQyNzBGODNCMTAwOEZFRUVDIC8qIFJlbmRlclNWR0dyYWRpZW50
U3RvcElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHR3JhZGllbnRTdG9wSW5saW5l
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDREY3NDdGNjI3MEY4NkE0MDA4RkVF
RUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2Fj
eVJlbmRlclNWR1NoYXBlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REY3NDdGNjI3MEY4M0I0MTA3REVFRUMgLyogUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDREY3NDdGNjI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJ
bmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1NoYXBlSW5saW5lcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGODI3MEY4N0NCMDA4RkVFRUMgLyog
UmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyU1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0RGNzQ3RkEyNzBGODkxQTAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291
cmNlTWFza2VySW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZU1hc2tl
cklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNzQ4M0MxOEZFQkNF
QzAwMDZFQ0MwIC8qIEdyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTg3MDMsNiArMTg3MDksNyBAQAogCQkJCTA3MUU0OTZEMUFE
NUFBMEQwMDhBNTBCNCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EubW0gKi8sCiAJCQkJMDc2
RjBEMDkxMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHAgKi8sCiAJCQkJMDc2RjBEMEExMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5oICovLAorCQkJCTdCNDQxMEUyMjc5NThGREUwMDBCNEY4QSAvKiBNZWRp
YVBsYXllclZpZGVvRnJhbWVBVkYubW0gKi8sCiAJCQkJQ0RCRUFFQUIxOUQ5MkI2QzAwQkVCQTg4
IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLmggKi8sCiAJCQkJQ0RCRUFFQUExOUQ5MkI2
QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tICovLAogCQkJCTQxMDI0
RkM4MjNDRjI1NEYwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwICovLApA
QCAtMjg5MjgsNiArMjg5MzUsNyBAQAogCQkJCUNENTIwOUUzMUIwQkQ4MzgwMDc3MTg0RSAvKiBN
ZWRpYVBsYXllckVudW1zLmggKi8sCiAJCQkJRjQyOTI2MTcyNTI2NEQ0NDAwMDA3ODk4IC8qIE1l
ZGlhUGxheWVySWRlbnRpZmllci5oICovLAogCQkJCTA3OUY1RTRCMEYzQkVCRUEwMDVFMDc4MiAv
KiBNZWRpYVBsYXllclByaXZhdGUuaCAqLywKKwkJCQk3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEg
LyogTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmggKi8sCiAJCQkJQ0Q2NDFFQjExODE4RjVFRDAwRUU0
QzQxIC8qIE1lZGlhU291cmNlUHJpdmF0ZS5oICovLAogCQkJCUNEREMxRTc5MThBOTUyRjMwMDI3
QTlENCAvKiBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCAqLywKIAkJCQkwNzYxMURCODI0M0ZC
NzVDMDBEODA3MDQgLyogTWVkaWFVc2FnZUluZm8uaCAqLywKQEAgLTM2MTA2LDYgKzM2MTE0LDcg
QEAKIAkJCQlERjlBRkQ3MjEzRkMzMUQ4MDAxNUZFQjcgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOEI1QTMxODA0NjM0NzAwMTZF
Njg1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTUwNTI0RjQxQjcxMkZGNjAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0I0NDEwRTEyNzk1OEZDNTAw
MEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc3
QkE1NzYyNjBGQURGNjAwNzJGMTlGIC8qIE1lZGlhUG9zaXRpb25TdGF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTJFMkNBRkMxOUZGMDIwNzAwMUVFQjRGIC8qIE1lZGlhUHJvZHVjZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcAppbmRleCBjMTI4MWE0NDZiMTU2NTkwOWIzMTQ0YTc4MmM5OTc4ZWU5MDg5
ZmUyLi43NzQ3NjhlMmMxOTI3NjFmODBhODU2ZGE5MmUyYWY2YTg4ZDg3ZmMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xMDYy
LDE1ICsxMDYyLDEzIEBAIGJvb2wgTWVkaWFQbGF5ZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRm
b3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCogY29udGV4dCwKICAgICByZXR1cm4gbV9wcml2
YXRlLT5jb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoY29udGV4dCwgdGV4dHVyZSwg
dGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgcHJlbXVsdGlwbHlB
bHBoYSwgZmxpcFkpOwogfQogCi0jZWxzZQorI2VuZGlmCiAKLVJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBNZWRpYVBsYXllcjo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCitzdGQ6Om9w
dGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXI6OnZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSgpCiB7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+cGl4ZWxCdWZmZXJGb3JDdXJy
ZW50VGltZSgpOworICAgIHJldHVybiBtX3ByaXZhdGUtPnZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSgpOwogfQogCi0jZW5kaWYKLQogUmVmUHRyPE5hdGl2ZUltYWdlPiBNZWRpYVBsYXllcjo6bmF0
aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bmF0aXZl
SW1hZ2VGb3JDdXJyZW50VGltZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKaW5kZXggYzEzZDcwMzJmMjhjY2Q5MDg3MmIwOTI3NmQ5MzcyYTQy
NjUzYTIwMS4uMjdhNjkwNzNjMzgwNzU0MTRiYTcyMTEwN2NiNTBkMGNmZjRmZDg0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVy
RW51bXMuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllcklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJN
ZWRpYVBsYXllclZpZGVvRnJhbWUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1UZXh0VHJhY2suaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEu
aCIKQEAgLTQ2NywxMCArNDY4LDggQEAgcHVibGljOgogICAgIC8vIFRoZSBjdXJyZW50IHJlc3Ry
aWN0aW9ucyByZXF1aXJlIHRoYXQgZm9ybWF0IHNob3VkIGJlIFJHQiBvciBSR0JBLCB0eXBlIHNo
b3VsZCBiZSBVTlNJR05FRF9CWVRFIGFuZCBsZXZlbCBzaG91bGQgYmUgMC4gSXQgbWF5IGJlIGxp
ZnRlZCBpbiB0aGUgZnV0dXJlLgogI2lmICFVU0UoQVZGT1VOREFUSU9OKQogICAgIGJvb2wgY29w
eVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiwgUGxhdGZv
cm1HTE9iamVjdCB0ZXh0dXJlLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xl
bnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIGJvb2wg
cHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSk7Ci0jZWxzZQotICAgIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCk7CiAjZW5kaWYKLQorICAg
IHN0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKTsKICAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRp
bWUoKTsKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
CmluZGV4IDZlNDc3YmNhZjljNDg1N2EwMTc3MjY1NzIyZjgxYmY4NGZiYzMwZGUuLjA4NWY4YWIz
NWQ4ZjVmZDVhODYzOWNmNDg4NGVkZDE2YzA1MjllOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0yOSw4ICsy
OSwxMCBAQAogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVBsYXll
cklkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJNZWRpYVBsYXllclZpZGVvRnJhbWUuaCIKICNpbmNs
dWRlICJOYXRpdmVJbWFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGltZVJhbmdlcy5oIgorI2lu
Y2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiAj
aWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCkBAIC0xNzgsOSArMTgwLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGlj
c0NvbnRleHQmIGMsIGNvbnN0IEZsb2F0UmVjdCYgcikgeyBwYWludChjLCByKTsgfQogI2lmICFV
U0UoQVZGT1VOREFUSU9OKQogICAgIHZpcnR1YWwgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0
Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51
bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgeyBy
ZXR1cm4gZmFsc2U7IH0KLSNlbHNlCi0gICAgdmlydHVhbCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4gcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KICNl
bmRpZgorICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZp
ZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQogICAgIHZp
cnR1YWwgUmVmUHRyPE5hdGl2ZUltYWdlPiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9y
U3BhY2UoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyVmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjlkYzlmMTM0N2ExMzY2
NTg0ODRiMGI2ZThhZjg0MjAyY2QzMTI1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyVmlkZW9GcmFtZS5oCkBAIC0wLDAgKzEs
MTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlv
bi5oIgorCisjaWYgVVNFKEFWRk9VTkRBVElPTikKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CisKK3VzaW5nIENWUGl4ZWxCdWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1ZmZlcio7CisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYVBsYXllclZpZGVvRnJhbWUgewor
cHVibGljOgorICAgIE1lZGlhUGxheWVyVmlkZW9GcmFtZSgpID0gZGVsZXRlOworI2lmIFVTRShB
VkZPVU5EQVRJT04pCisgICAgV0VCQ09SRV9FWFBPUlQgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lKFJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmLCBJbWFnZU9yaWVudGF0aW9uKTsKKyNlbmRpZgor
CisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb3Jp
ZW50YXRpb247IH0KKworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAgQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxCdWZmZXIuZ2V0KCk7IH0KKyNl
bmRpZgorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1lZGlhUGxheWVyVmlkZW9GcmFtZSYg
b3RoZXIpIGNvbnN0OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gZGVjb2RlKERlY29kZXImKTsK
KworcHJpdmF0ZToKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyOworI2VuZGlmCisgICAgSW1hZ2VPcmllbnRhdGlvbiBt
X29yaWVudGF0aW9uOworfTsKKworaW5saW5lIGJvb2wgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpv
cGVyYXRvcj09KGNvbnN0IE1lZGlhUGxheWVyVmlkZW9GcmFtZSYgb3RoZXIpIGNvbnN0Cit7Cisj
aWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBpZiAobV9waXhlbEJ1ZmZlciAhPSBvdGhlci5tX3Bp
eGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICByZXR1cm4gSW1h
Z2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24ob3RoZXIubV9vcmllbnRhdGlvbikgPT0gSW1hZ2VP
cmllbnRhdGlvbjo6T3JpZW50YXRpb24obV9vcmllbnRhdGlvbik7Cit9CisKK3RlbXBsYXRlPHR5
cGVuYW1lIEVuY29kZXI+IHZvaWQgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIGVuY29kZXIg
PDwgbV9waXhlbEJ1ZmZlcjsKKyAgICBlbmNvZGVyIDw8IEltYWdlT3JpZW50YXRpb246Ok9yaWVu
dGF0aW9uKG1fb3JpZW50YXRpb24pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5jb2Rlcik7
CisjZW5kaWYKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxN
ZWRpYVBsYXllclZpZGVvRnJhbWU+IE1lZGlhUGxheWVyVmlkZW9GcmFtZTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisjaWYgSEFWRShBVkZPVU5EQVRJT04pCisgICAgc3RkOjpvcHRpb25h
bDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHBpeGVsQnVmZmVyOworICAgIGRlY29kZXIg
Pj4gcGl4ZWxCdWZmZXI7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICBzdGQ6Om9wdGlvbmFsPEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0
aW9uPiBvcmllbnRhdGlvbjsKKyAgICBkZWNvZGVyID4+IG9yaWVudGF0aW9uOworICAgIGlmICgh
b3JpZW50YXRpb24pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIE1l
ZGlhUGxheWVyVmlkZW9GcmFtZSB7IFdURk1vdmUocGl4ZWxCdWZmZXIpLCBvcmllbnRhdGlvbiB9
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyNlbmRpZgorfQorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclZpZGVvRnJhbWVBVkYu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJWaWRlb0ZyYW1lQVZGLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1YzBkZGNhZmFkZDMxZWVmNjIyYzJh
YWRmM2MwZDJlNjY1NWU0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lQVZGLm1tCkBA
IC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisjaW5jbHVkZSAi
TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTWVkaWFQ
bGF5ZXJWaWRlb0ZyYW1lOjpNZWRpYVBsYXllclZpZGVvRnJhbWUoUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+JiYgcGl4ZWxCdWZmZXIsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCisg
ICAgOiBtX3BpeGVsQnVmZmVyKFdURk1vdmUocGl4ZWxCdWZmZXIpKQorICAgICwgbV9vcmllbnRh
dGlvbihvcmllbnRhdGlvbikKK3sKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aAppbmRleCA5NWEzNzg5YWQ2MjcxOWMxMDBiYzA2N2QzY2U4YWFhOTMyZDU3NDExLi5hYjY5ODNi
ZDk5NmNhOWRhZTM3NDJmNWM3NjQzYzVlYzBlZjgxNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5o
CkBAIC0yNjIsMTIgKzI2MiwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBkYXRlTGFzdFBpeGVs
QnVmZmVyKCk7CiAgICAgYm9vbCB2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCk7CiAgICAg
dm9pZCBwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gdmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBuYXRpdmVJ
bWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNlIGNv
bG9yU3BhY2UoKSBmaW5hbDsKICAgICB2b2lkIHdhaXRGb3JWaWRlb091dHB1dE1lZGlhRGF0YVdp
bGxDaGFuZ2UoKTsKIAotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lKCkgZmluYWw7Ci0KICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9N
RURJQSkKICAgICB2b2lkIGtleUFkZGVkKCkgZmluYWw7CiAgICAgc3RkOjp1bmlxdWVfcHRyPExl
Z2FjeUNETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIExl
Z2FjeUNETVNlc3Npb25DbGllbnQqKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4
IGJkYzJhODJlNzNmNGZkZjg4YjVhNTRjOTk3ZjMyYmY2ODlkZTk5NmEuLjc4YzgzZWRhZGVlN2E4
M2Q2M2ZkNzQ4N2Q3ZDYxOWI4OTQzZWY4NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAt
MjYyNSwxMSArMjYyNSwxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYgYwogCiB9CiAKLVJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKK3N0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJW
aWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWUoKQogewogICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpOwogCi0gICAg
cmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyOworICAgIHJldHVybiBNZWRpYVBsYXllclZpZGVvRnJh
bWUgeyBSZXRhaW5QdHIgeyBtX2xhc3RQaXhlbEJ1ZmZlciB9LCBJbWFnZU9yaWVudGF0aW9uOjpO
b25lIH07CiB9CiAKIFJlZlB0cjxOYXRpdmVJbWFnZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oCmluZGV4IDkzMTNjMWIzZGY2ZDM2OTYwOGM3NTVmMDU1ZDQ2MWRhYjVkZjcyMmEuLmQ3
NDgzZTc0ZTc2ZWU1YThlODI4NDRhOGRmZTFjMTZlYWQ3MzUyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oCkBAIC0yMjIsNyArMjIyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUxh
c3RJbWFnZSgpOwogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKLSAgICBSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpIGZpbmFsOworICAg
IHN0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKSBmaW5hbDsKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGZp
bmFsOwogCiAgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggYjJjZTZiYmM3YWFjYzhjZWNj
MjFjOTQxMjk1ZTQzMThhZGNiODlhMy4uNjdiZTE3NDVlZTk5YjVmY2E5OWEwOTM3YWRiOGFjZWU3
N2E2MTNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNzIxLDcgKzcyMSw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dChHcmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmlt
YWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCBvdXRwdXRSZWN0LCBpbWFnZVJlY3QpOwogfQogCi1SZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKK3N0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5
ZXJWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVv
RnJhbWVGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgLy8gV2UgaGF2ZSBiZWVuIGFza2VkIHRvIHBh
aW50IGludG8gYSBXZWJHTCBjYW52YXMsIHNvIHRha2UgdGhhdCBhcyBhIHNpZ25hbCB0byBjcmVh
dGUKICAgICAvLyBhIGRlY29tcHJlc3Npb24gc2Vzc2lvbiwgZXZlbiBpZiB0aGF0IG1lYW5zIHRo
ZSBuYXRpdmUgdmlkZW8gY2FuJ3QgYWxzbyBiZSBkaXNwbGF5ZWQKQEAgLTczNCw3ICs3MzQsNyBA
QCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpwaXhlbEJ1ZmZlckZvcgogICAgIGlmICghbV9pc0dhdGhlcmluZ1ZpZGVvRnJh
bWVNZXRhZGF0YSkKICAgICAgICAgdXBkYXRlTGFzdFBpeGVsQnVmZmVyKCk7CiAKLSAgICByZXR1
cm4gbV9sYXN0UGl4ZWxCdWZmZXI7CisgICAgcmV0dXJuIE1lZGlhUGxheWVyVmlkZW9GcmFtZSB7
IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3JpZW50YXRpb246Ok5vbmUg
fTsKIH0KIAogRGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6Y29sb3JTcGFjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDZk
OTU1Njc0ZDA2Mjc1YWU0MzNlNWE1NGEzN2MzNGU2YmYzN2Y5YTIuLjliNmZkMmI1ZjI3NTQ5MjY3
ZGIzOTkzYzk4OTVkYjE2MzIxNTg2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0x
NDIsNiArMTQyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFt
ZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsK
KyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lKCkgb3ZlcnJpZGU7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3Bh
Y2UoKSBvdmVycmlkZTsKICAgICBib29sIG1ldGFEYXRhQXZhaWxhYmxlKCkgY29uc3QgeyByZXR1
cm4gbV9tZWRpYVN0cmVhbVByaXZhdGUgJiYgbV9yZWFkeVN0YXRlID49IE1lZGlhUGxheWVyOjpS
ZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGE7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmlu
ZGV4IDQ5ZjQyZjljMDJiODI5NTMyNTc3MzhjMzQ0MDQzZGViNDEwODUxYzIuLjE0OGY2OGFjMDYw
ODY4ZDcxNWMxZTYxMmViZTg5ZjMxMTcyYzlkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
bW0KQEAgLTI0NCw2ICsyNDQsMjIgQEAgc3RhdGljIGlubGluZSBDR0FmZmluZVRyYW5zZm9ybSB2
aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgcmV0dXJu
IHZpZGVvVHJhbnNmb3JtOwogfQogCitzdGF0aWMgaW5saW5lIEltYWdlT3JpZW50YXRpb24gdmlk
ZW9PcmllbnRhdGlvbihNZWRpYVNhbXBsZSYgc2FtcGxlKQoreworICAgIC8vIFNhbXBsZSB0cmFu
c2Zvcm0gZmlyc3QgZmxpcHMgeC1jb29yZGluYXRlcywgdGhlbiByb3RhdGVzLgorICAgIGJvb2wg
ZmxpcFggPSBzYW1wbGUudmlkZW9NaXJyb3JlZCgpOyAvLyBMZWZ0IHNpZGUgc3dpdGNoZXMgd2l0
aCByaWdodCBzaWRlLgorICAgIHN3aXRjaCAoc2FtcGxlLnZpZGVvUm90YXRpb24oKSkgeworICAg
IGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU6CisgICAgICAgIHJldHVybiBm
bGlwWCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IDogSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luVG9wTGVmdDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpS
aWdodDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmln
aHRCb3R0b20gOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodFRvcDsKKyAgICBjYXNlIE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAgICAgICByZXR1cm4gZmxp
cFggPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21MZWZ0IDogSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luQm90dG9tUmlnaHQ7CisgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlv
bjo6TGVmdDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2lu
TGVmdFRvcCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkxlZnRCb3R0b207CisgICAgfQorfQor
CiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9TYW1wbGVB
dmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSwgVmlkZW9TYW1wbGVNZXRhZGF0YSBtZXRhZGF0
YSkKIHsKICAgICBhdXRvIHByZXNlbnRhdGlvblRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKS5z
ZWNvbmRzU2luY2VFcG9jaCgpOwpAQCAtMTAwMyw2ICsxMDE5LDE5IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChH
cmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmltYWdlLCBpbWFnZVJlY3Qu
c2l6ZSgpLCB0cmFuc2Zvcm1lZERlc3RSZWN0LCBpbWFnZVJlY3QpOwogfQogCitzdGQ6Om9wdGlv
bmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQoreworICAgIGlmIChtX2Rpc3BsYXlN
b2RlID09IE5vbmUgfHwgIW1ldGFEYXRhQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgaWYgKG1fZGlzcGxheU1vZGUgPT0gUGFpbnRJdEJsYWNrKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1w
bGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlQnVmZmVyID0gbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUtPnBsYXRmb3JtU2FtcGxl
KCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyOworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0
SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgcmV0dXJuIE1lZGlhUGxheWVyVmlkZW9G
cmFtZSB7IFJldGFpblB0ciB7IHBpeGVsQnVmZmVyIH0sIHZpZGVvT3JpZW50YXRpb24oKm1faW1h
Z2VQYWludGVyLm1lZGlhU2FtcGxlKSB9OworfQorCiBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjb2xvclNwYWNlKCkKIHsKICAgICB1
cGRhdGVDdXJyZW50RnJhbWVJbWFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0K
aW5kZXggMzJkYjZlZTgyY2NkMDE5MzhiNDA3YTZiNmU4ZGVjZjg1NTJiYzgxOS4uOTU3YmE2YmE5
MGJiMDE4YmI4ODhkMDJjNWRjODM3NDZiNjUzZGZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRH
TENvY29hLm1tCkBAIC03OTEsOCArNzkxLDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xF
OjpwbGF0Zm9ybVJlbGVhc2VUaHJlYWRSZXNvdXJjZXMoKQogI2lmIEVOQUJMRShWSURFTykKIGJv
b2wgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRleHR1cmVGcm9tTWVkaWEoTWVkaWFQbGF5
ZXImIHBsYXllciwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMZW51bSBvdXRw
dXRUYXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51
bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlw
WSkKIHsKLSAgICBhdXRvIHBpeGVsQnVmZmVyID0gcGxheWVyLnBpeGVsQnVmZmVyRm9yQ3VycmVu
dFRpbWUoKTsKLSAgICBpZiAoIXBpeGVsQnVmZmVyKQorICAgIGF1dG8gdmlkZW9GcmFtZSA9IHBs
YXllci52aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKKyAgICBpZiAoIXZpZGVvRnJhbWUpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8gY29udGV4dENWID0gYXNDVigpOwpAQCAt
ODAxLDcgKzgwMSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRleHR1cmVG
cm9tTWVkaWEoTWVkaWFQbGF5ZXImIHBsYXllciwgUGxhdGZvcm1HCiAKICAgICBVTlVTRURfVkFS
SUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgQVNTRVJUX1VOVVNFRChvdXRwdXRUYXJnZXQs
IG91dHB1dFRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7Ci0gICAgcmV0
dXJuIGNvbnRleHRDVi0+Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKHBpeGVsQnVmZmVyLmdldCgp
LCBvdXRwdXRUZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3Jh
cGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSk7CisgICAgcmV0dXJuIGNvbnRleHRDVi0+Y29w
eVZpZGVvRnJhbWVUb1RleHR1cmUoKnZpZGVvRnJhbWUsIG91dHB1dFRleHR1cmUsIGxldmVsLCBp
bnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxp
cFkpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmgKaW5kZXggMWQ2MTVhN2YwZWYxMTMy
MzI2ODAyZTU2NGE5YWQ1MjUyN2UwMzA2Ny4uNmQxMDlkNjQ1MGEwMTVlMjdkYjM5NDlhZDgzOGM2
ODRiZmQxZDU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvR3JhcGhpY3NDb250ZXh0R0xDVi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaApAQCAtMjksOSArMjksOCBAQAogCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0R0wuaCIKIAotdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciog
Q1ZQaXhlbEJ1ZmZlclJlZjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTWVkaWFQbGF5
ZXJWaWRlb0ZyYW1lOwogCiAvLyBJbnRlcmZhY2UgdG8gaW50ZXJhY3Qgd2l0aCBDViBvYmplY3Rz
IGFuZCBHcmFwaGljc0NvbnRleHRHTC4KIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMQ1YgewpAQCAt
NDEsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgRmxpcFkgPSBHcmFwaGljc0NvbnRleHRH
TDo6RmxpcFk7CiAgICAgLy8gQ29waWVzIENWIHBpeGVsIGJ1ZmZlciB0byBHcmFwaGljc0NvbnRl
eHRHTCBURVhUVVJFXzJEIHRleHR1cmUgb2YgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgcGl4ZWwgYnVm
ZmVyLgogICAgIC8vIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgotICAgIHZpcnR1YWwgYm9vbCBj
b3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiwgUGxhdGZvcm1HTE9iamVj
dCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwg
R0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBGbGlwWSkgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBjb3B5VmlkZW9GcmFtZVRvVGV4dHVyZShNZWRpYVBsYXllclZpZGVvRnJhbWUmLCBQbGF0
Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVy
bmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZKSA9IDA7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9H
cmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcAppbmRleCAyNDk5NWEzZWVlZGJl
Yzk0ODViYzFjNmE2OWI2MjVkMGJlN2E4OTkzLi5mNTAwMWZiYThmOWQwYTk0YWZjNmQyZWYxMWI2
OGMzMWEzOTM0ZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKQEAgLTQ5LDYg
KzQ5LDggQEAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVydGV4U2hhZGVyVGV4dHVyZTJE
IHsKICAgICAidW5pZm9ybSB2ZWMyIHVfeVRleHR1cmVTaXplOyIKICAgICAidW5pZm9ybSB2ZWMy
IHVfdXZUZXh0dXJlU2l6ZTsiCiAgICAgInVuaWZvcm0gaW50IHVfZmxpcFk7IgorICAgICJ1bmlm
b3JtIGludCB1X2ZsaXBYOyIKKyAgICAidW5pZm9ybSBpbnQgdV9zd2FwWFk7IgogICAgICJ2YXJ5
aW5nIHZlYzIgdl95VGV4dHVyZUNvb3JkaW5hdGU7IgogICAgICJ2YXJ5aW5nIHZlYzIgdl91dlRl
eHR1cmVDb29yZGluYXRlOyIKICAgICAidm9pZCBtYWluKCkiCkBAIC01Nyw2ICs1OSwxMCBAQCBz
dGF0aWMgY29uc3RleHByIGF1dG8gc195dXZWZXJ0ZXhTaGFkZXJUZXh0dXJlMkQgewogICAgICIg
ICAgdmVjMiBub3JtYWxpemVkUG9zaXRpb24gPSBhX3Bvc2l0aW9uICogLjUgKyAuNTsiCiAgICAg
IiAgICBpZiAodV9mbGlwWSA9PSAxKSIKICAgICAiICAgICAgICBub3JtYWxpemVkUG9zaXRpb24u
eSA9IDEuMCAtIG5vcm1hbGl6ZWRQb3NpdGlvbi55OyIKKyAgICAiICAgIGlmICh1X2ZsaXBYID09
IDEpIgorICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlvbi54ID0gMS4wIC0gbm9ybWFsaXpl
ZFBvc2l0aW9uLng7IgorICAgICIgICAgaWYgKHVfc3dhcFhZID09IDEpIgorICAgICIgICAgICAg
IG5vcm1hbGl6ZWRQb3NpdGlvbi54eSA9IG5vcm1hbGl6ZWRQb3NpdGlvbi55eDsiCiAgICAgIiAg
ICB2X3lUZXh0dXJlQ29vcmRpbmF0ZSA9IG5vcm1hbGl6ZWRQb3NpdGlvbjsiCiAgICAgIiAgICB2
X3V2VGV4dHVyZUNvb3JkaW5hdGUgPSBub3JtYWxpemVkUG9zaXRpb247IgogICAgICJ9Il9zCkBA
IC02Nyw2ICs3Myw4IEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzX3l1dlZlcnRleFNoYWRlclRl
eHR1cmVSZWN0YW5nbGUgewogICAgICJ1bmlmb3JtIHZlYzIgdV95VGV4dHVyZVNpemU7IgogICAg
ICJ1bmlmb3JtIHZlYzIgdV91dlRleHR1cmVTaXplOyIKICAgICAidW5pZm9ybSBpbnQgdV9mbGlw
WTsiCisgICAgInVuaWZvcm0gaW50IHVfZmxpcFg7IgorICAgICJ1bmlmb3JtIGludCB1X3N3YXBY
WTsiCiAgICAgInZhcnlpbmcgdmVjMiB2X3lUZXh0dXJlQ29vcmRpbmF0ZTsiCiAgICAgInZhcnlp
bmcgdmVjMiB2X3V2VGV4dHVyZUNvb3JkaW5hdGU7IgogICAgICJ2b2lkIG1haW4oKSIKQEAgLTc1
LDYgKzgzLDEwIEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzX3l1dlZlcnRleFNoYWRlclRleHR1
cmVSZWN0YW5nbGUgewogICAgICIgICAgdmVjMiBub3JtYWxpemVkUG9zaXRpb24gPSBhX3Bvc2l0
aW9uICogLjUgKyAuNTsiCiAgICAgIiAgICBpZiAodV9mbGlwWSA9PSAxKSIKICAgICAiICAgICAg
ICBub3JtYWxpemVkUG9zaXRpb24ueSA9IDEuMCAtIG5vcm1hbGl6ZWRQb3NpdGlvbi55OyIKKyAg
ICAiICAgIGlmICh1X2ZsaXBYID09IDEpIgorICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlv
bi54ID0gMS4wIC0gbm9ybWFsaXplZFBvc2l0aW9uLng7IgorICAgICIgICAgaWYgKHVfc3dhcFhZ
ID09IDEpIgorICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlvbi54eSA9IG5vcm1hbGl6ZWRQ
b3NpdGlvbi55eDsiCiAgICAgIiAgICB2X3lUZXh0dXJlQ29vcmRpbmF0ZSA9IG5vcm1hbGl6ZWRQ
b3NpdGlvbiAqIHVfeVRleHR1cmVTaXplOyIKICAgICAiICAgIHZfdXZUZXh0dXJlQ29vcmRpbmF0
ZSA9IG5vcm1hbGl6ZWRQb3NpdGlvbiAqIHVfdXZUZXh0dXJlU2l6ZTsiCiAgICAgIn0iX3MKQEAg
LTU0OCw2ICs1NjAsOCBAQCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OkdyYXBoaWNzQ29udGV4
dEdMQ1ZDb2NvYShHcmFwaGljc0NvbnRleHRHTENvY29hJiBvd25lcgogICAgIG1fdXZUZXh0dXJl
VW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1X3V2
VGV4dHVyZSIpOwogICAgIG1fY29sb3JNYXRyaXhVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlm
b3JtTG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfY29sb3JNYXRyaXgiKTsKICAgICBtX3l1dkZsaXBZ
VW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1X2Zs
aXBZIik7CisgICAgbV95dXZGbGlwWFVuaWZvcm1Mb2NhdGlvbiA9IEdMX0dldFVuaWZvcm1Mb2Nh
dGlvbih5dXZQcm9ncmFtLCAidV9mbGlwWCIpOworICAgIG1feXV2U3dhcFhZVW5pZm9ybUxvY2F0
aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1X3N3YXBYWSIpOwogICAg
IG1feVRleHR1cmVTaXplVW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1
dlByb2dyYW0sICJ1X3lUZXh0dXJlU2l6ZSIpOwogICAgIG1fdXZUZXh0dXJlU2l6ZVVuaWZvcm1M
b2NhdGlvbiA9IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9ncmFtLCAidV91dlRleHR1cmVT
aXplIik7CiAgICAgbV95dXZQb3NpdGlvbkF0dHJpYnV0ZUxvY2F0aW9uID0gR0xfR2V0QXR0cmli
TG9jYXRpb24oeXV2UHJvZ3JhbSwgImFfcG9zaXRpb24iKTsKQEAgLTU1OSw4ICs1NzMsOSBAQCBH
cmFwaGljc0NvbnRleHRHTENWQ29jb2E6OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYShHcmFwaGlj
c0NvbnRleHRHTENvY29hJiBvd25lcgogICAgIEdMX0JpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgbV9mcmFtZWJ1ZmZlcik7CiB9CiAKLWJvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29h
Ojpjb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZSwgUGxhdGZv
cm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsRm9y
bWF0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgRmxpcFkgZmxpcFkpCitib29sIEdyYXBo
aWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVZpZGVvRnJhbWVUb1RleHR1cmUoTWVkaWFQbGF5ZXJW
aWRlb0ZyYW1lJiB2aWRlb0ZyYW1lLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdM
aW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0
eXBlLCBGbGlwWSB1bnBhY2tGbGlwWSkKIHsKKyAgICBhdXRvIGltYWdlID0gdmlkZW9GcmFtZS5w
aXhlbEJ1ZmZlcigpOwogICAgIC8vIEZJWE1FOiBUaGlzIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRz
ICc0MjB2JyBhbmQgJzQyMGYnIHBpeGVsIGZvcm1hdHMuIEludmVzdGlnYXRlIHN1cHBvcnRpbmcg
bW9yZSBwaXhlbCBmb3JtYXRzLgogICAgIE9TVHlwZSBwaXhlbEZvcm1hdCA9IENWUGl4ZWxCdWZm
ZXJHZXRQaXhlbEZvcm1hdFR5cGUoaW1hZ2UpOwogICAgIGlmIChwaXhlbEZvcm1hdCAhPSBrQ1ZQ
aXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyVmlkZW9SYW5nZSAvLyBOT0xJTlQKQEAg
LTU3Nyw5ICs1OTIsMTIgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhl
bEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLAogICAgIGlmICghc3VyZmFj
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgYXV0byBvcmllbnRhdGlvbiA9IHZpZGVv
RnJhbWUub3JpZW50YXRpb24oKTsKKyAgICBpZiAodW5wYWNrRmxpcFkgPT0gRmxpcFk6OlllcykK
KyAgICAgICAgb3JpZW50YXRpb24gPSBvcmllbnRhdGlvbi53aXRoRmxpcHBlZFkoKTsKKwogICAg
IGF1dG8gbmV3U3VyZmFjZVNlZWQgPSBJT1N1cmZhY2VHZXRTZWVkKHN1cmZhY2UpOwotICAgIGlm
IChmbGlwWSA9PSBtX2xhc3RGbGlwWQotICAgICAgICAmJiBzdXJmYWNlID09IG1fbGFzdFN1cmZh
Y2UKKyAgICBpZiAoSW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24ob3JpZW50YXRpb24pID09
IEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uKG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbikK
ICAgICAgICAgJiYgbmV3U3VyZmFjZVNlZWQgPT0gbV9sYXN0U3VyZmFjZVNlZWQKICAgICAgICAg
JiYgbGFzdFRleHR1cmVTZWVkKG91dHB1dFRleHR1cmUpID09IG1fb3duZXIudGV4dHVyZVNlZWQo
b3V0cHV0VGV4dHVyZSkpIHsKICAgICAgICAgLy8gSWYgdGhlIHRleHR1cmUgaGFzbid0IGJlZW4g
bW9kaWZpZWQgc2luY2UgdGhlIGxhc3QgdGltZSB3ZSBjb3BpZWQgdG8gaXQsIGFuZCB0aGUKQEAg
LTU4OSw4ICs2MDcsNTcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhl
bEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLAogICAgIGlmICghbV9jb250
ZXh0IHx8ICFHcmFwaGljc0NvbnRleHRHTENvY29hOjptYWtlQ3VycmVudChtX2Rpc3BsYXksIG1f
Y29udGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHNpemVfdCB3aWR0aCA9IENW
UGl4ZWxCdWZmZXJHZXRXaWR0aChpbWFnZSk7Ci0gICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxC
dWZmZXJHZXRIZWlnaHQoaW1hZ2UpOworICAgIC8vIENvbXB1dGUgdHJhbnNmb3JtIHRoYXQgdW5k
b2VzIHRoZSBgb3JpZW50YXRpb25gLCBlLmcuIG1vdmVzIHRoZSBvcmlnaW4gdG8gdG9wIGxlZnQu
CisgICAgLy8gRXZlbiBudW1iZXIgb2Ygb3BlcmF0aW9ucyAoZmxpcFgsIGZsaXBZLCBzd2FwWFkp
IG1lYW5zIGEgcm90YXRpb24uCisgICAgLy8gT2RkIG51bWJlciBvZiBvcGVyYXRpb25zIG1lYW5z
IGEgcm90YXRpb24gYW5kIGEgZmxpcC4KKyAgICAvLyBgZmxpcFhgIHN3aXRjaGVzIGJldHdlZW4g
TGVmdCBhbmQgUmlnaHQuIGBmbGlwWWAgc3dpdGNoZXMgYmV0d2VlbiBUb3AgYW5kIEJvdHRvbS4K
KyAgICAvLyBgc3dhcFhZYHN3aXRjaGVzIExlZnRUb3AgdG8gVG9wTGVmdC4KKyAgICAvLyBHb2Fs
IGlzIHRvIGdldCB0byBPcmlnaW5Ub3BMZWZ0LgorICAgIGJvb2wgZmxpcFkgPSBmYWxzZTsgLy8g
RmxpcCB5IGNvb3JkaW5hdGUsIGkuZS4gbWlycm9yZWQgYWxvbmcgdGhlIHgtYXhpcy4KKyAgICBi
b29sIGZsaXBYID0gZmFsc2U7IC8vIEZsaXAgeCBjb29yZGluYXRlLCBpLmUuIG1pcnJvcmVkIGFs
b25nIHRoZSB5LWF4aXMuCisgICAgYm9vbCBzd2FwWFkgPSBmYWxzZTsKKyAgICBzd2l0Y2ggKHZp
ZGVvRnJhbWUub3JpZW50YXRpb24oKSkgeworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6RnJv
bUltYWdlOgorICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wTGVmdDoKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Ub3BSaWdodDoKKyAg
ICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEltYWdlT3JpZW50
YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0OgorICAgICAgICAvLyBSb3RhdGVkIDE4MCBkZWdyZWVz
LgorICAgICAgICBmbGlwWSA9IHRydWU7CisgICAgICAgIGZsaXBYID0gdHJ1ZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21MZWZ0OgorICAg
ICAgICAvLyBNaXJyb3JlZCBhbG9uZyB0aGUgeC1heGlzLgorICAgICAgICBmbGlwWSA9IHRydWU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luTGVmdFRv
cDoKKyAgICAgICAgLy8gTWlycm9yZWQgYWxvbmcgeC1heGlzIGFuZCByb3RhdGVkIDI3MCBkZWdy
ZWVzIGNsb2NrLXdpc2UuCisgICAgICAgIHN3YXBYWSA9IHRydWU7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRUb3A6CisgICAgICAgIC8vIFJv
dGF0ZWQgOTAgZGVncmVlcyBjbG9jay13aXNlLgorICAgICAgICBmbGlwWCA9IHRydWU7CisgICAg
ICAgIHN3YXBYWSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRh
dGlvbjo6T3JpZ2luUmlnaHRCb3R0b206CisgICAgICAgIC8vIE1pcnJvciBhbG9uZyB4LWF4aXMg
YW5kIHJvdGF0ZWQgOTAgZGVncmVlcyBjbG9ja3dpc2UuCisgICAgICAgIGZsaXBZID0gdHJ1ZTsK
KyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBzd2FwWFkgPSB0cnVlOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkxlZnRCb3R0b206CisgICAg
ICAgIC8vIFJvdGF0ZWQgMjcwIGRlZ3JlZXMgY2xvY2std2lzZS4KKyAgICAgICAgZmxpcFkgPSB0
cnVlOworICAgICAgICBzd2FwWFkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
c2l6ZV90IHNvdXJjZVdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKGltYWdlKTsKKyAgICBz
aXplX3Qgc291cmNlSGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChpbWFnZSk7CisKKyAg
ICBzaXplX3Qgd2lkdGggPSBzd2FwWFkgPyBzb3VyY2VIZWlnaHQgOiBzb3VyY2VXaWR0aDsKKyAg
ICBzaXplX3QgaGVpZ2h0ID0gc3dhcFhZID8gc291cmNlV2lkdGggOiBzb3VyY2VIZWlnaHQ7CiAK
ICAgICBHTF9WaWV3cG9ydCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKIApAQCAtNjY0LDcgKzczMSw5
IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5UGl4ZWxCdWZmZXJUb1RleHR1
cmUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZSwKICAgICAvLyBDb25maWd1cmUgdGhlIGRyYXdpbmcg
cGFyYW1ldGVycy4KICAgICBHTF9Vbmlmb3JtMWkobV95VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiwg
MCk7CiAgICAgR0xfVW5pZm9ybTFpKG1fdXZUZXh0dXJlVW5pZm9ybUxvY2F0aW9uLCAxKTsKLSAg
ICBHTF9Vbmlmb3JtMWkobV95dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiwgZmxpcFkgPT0gRmxpcFk6
OlllcyA/IDEgOiAwKTsKKyAgICBHTF9Vbmlmb3JtMWkobV95dXZGbGlwWVVuaWZvcm1Mb2NhdGlv
biwgZmxpcFkgPyAxIDogMCk7CisgICAgR0xfVW5pZm9ybTFpKG1feXV2RmxpcFhVbmlmb3JtTG9j
YXRpb24sIGZsaXBYID8gMSA6IDApOworICAgIEdMX1VuaWZvcm0xaShtX3l1dlN3YXBYWVVuaWZv
cm1Mb2NhdGlvbiwgc3dhcFhZID8gMSA6IDApOwogICAgIEdMX1VuaWZvcm0yZihtX3lUZXh0dXJl
U2l6ZVVuaWZvcm1Mb2NhdGlvbiwgeVBsYW5lV2lkdGgsIHlQbGFuZUhlaWdodCk7CiAgICAgR0xf
VW5pZm9ybTJmKG1fdXZUZXh0dXJlU2l6ZVVuaWZvcm1Mb2NhdGlvbiwgdXZQbGFuZVdpZHRoLCB1
dlBsYW5lSGVpZ2h0KTsKIApAQCAtNjc4LDggKzc0Nyw4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0
R0xDVkNvY29hOjpjb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFn
ZSwKIAogICAgIG1fbGFzdFN1cmZhY2UgPSBzdXJmYWNlOwogICAgIG1fbGFzdFN1cmZhY2VTZWVk
ID0gbmV3U3VyZmFjZVNlZWQ7CisgICAgbV9sYXN0U3VyZmFjZU9yaWVudGF0aW9uID0gb3JpZW50
YXRpb247CiAgICAgbV9sYXN0VGV4dHVyZVNlZWQuc2V0KG91dHB1dFRleHR1cmUsIG1fb3duZXIu
dGV4dHVyZVNlZWQob3V0cHV0VGV4dHVyZSkpOwotICAgIG1fbGFzdEZsaXBZID0gZmxpcFk7CiAg
ICAgYXV0b0NsZWFyVGV4dHVyZU9uRXJyb3IucmVsZWFzZSgpOwogICAgIHJldHVybiB0cnVlOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhp
Y3NDb250ZXh0R0xDVkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAppbmRleCBjNGUzOTYwYjZkNzA4MGU0YzM5NDBi
OGFmN2FkOWRjZTYyNDYyNzBmLi5hMmY5YjhhODI0ZGFlY2VhMDhiYTI4NWU4YmJiNGQxOTljZWI1
MzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaApAQCAtMjgsNyArMjgsNyBAQAogI2lm
IEVOQUJMRShXRUJHTCkgJiYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xDVi5oIgotCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRh
dGlvbi5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvVW5zYWZlUG9pbnRlci5o
PgogCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIH5HcmFwaGljc0NvbnRleHRHTENW
Q29jb2EoKSBmaW5hbDsKIAotICAgIGJvb2wgY29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4
ZWxCdWZmZXJSZWYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZl
bCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlw
ZSwgRmxpcFkpIGZpbmFsOworICAgIGJvb2wgY29weVZpZGVvRnJhbWVUb1RleHR1cmUoTWVkaWFQ
bGF5ZXJWaWRlb0ZyYW1lJiwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50
IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51
bSB0eXBlLCBGbGlwWSkgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0R0xD
VkNvY29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmKTsKQEAgLTY0LDEyICs2NCwxNCBAQCBwcml2
YXRlOgogICAgIEdDR0xpbnQgbV95VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAg
R0NHTGludCBtX3V2VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBt
X3l1dkZsaXBZVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKKyAgICBHQ0dMaW50IG1feXV2RmxpcFhV
bmlmb3JtTG9jYXRpb24geyAtMSB9OworICAgIEdDR0xpbnQgbV95dXZTd2FwWFlVbmlmb3JtTG9j
YXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV9jb2xvck1hdHJpeFVuaWZvcm1Mb2NhdGlvbiB7
IC0xIH07CiAgICAgR0NHTGludCBtX3l1dlBvc2l0aW9uQXR0cmlidXRlTG9jYXRpb24geyAtMSB9
OwogICAgIEdDR0xpbnQgbV95VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAg
IEdDR0xpbnQgbV91dlRleHR1cmVTaXplVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKIAotICAgIEZs
aXBZIG1fbGFzdEZsaXBZIHsgRmxpcFk6Ok5vIH07CisgICAgSW1hZ2VPcmllbnRhdGlvbiBtX2xh
c3RTdXJmYWNlT3JpZW50YXRpb247CiAgICAgVW5zYWZlUG9pbnRlcjxJT1N1cmZhY2VSZWY+IG1f
bGFzdFN1cmZhY2U7CiAgICAgdWludDMyX3QgbV9sYXN0U3VyZmFjZVNlZWQgeyAwIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHAKaW5kZXggMzcwNjY3M2U5ZjA2MjFhYTFhNTM4M2NmM2IwZTJmNWNmOTA1MDIx
OS4uNjBjNWE4Y2Q2ZDUwZTkwMGU0YzFlYmQxZmQ4ZTJkZGFlOGI2ZGI5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAKQEAgLTUwOSw2ICs1MDksNyBAQCB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpv
cmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKQogICAgICAgICBtX2RldmljZU9yaWVu
dGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd247CiAgICAgICAg
IGJyZWFrOwogICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCAwNzMz
ZjNjMTc4NmUxYzU3MGJjOWUzYTRmNGQxYjhlNzI3ZDE3YzY2Li5mZjEzMzk3ZTY0NDE5MWU0MDEz
NzlmNWM4OGEwNDY2MWY3MTE3MDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTI2
MCwxOCArMjYwLDE4IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJl
RnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllCiAgICAgVU5VU0VEX1ZBUklB
QkxFKHByZW11bHRpcGx5QWxwaGEpOwogICAgIEFTU0VSVF9VTlVTRUQodGFyZ2V0LCB0YXJnZXQg
PT0gR3JhcGhpY3NDb250ZXh0R0w6OlRFWFRVUkVfMkQpOwogCi0gICAgUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyOwotICAgIGF1dG8gZ2V0UGl4ZWxCdWZmZXIgPSBbJl0g
eworICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOwor
ICAgIGF1dG8gZ2V0VmlkZW9GcmFtZSA9IFsmXSB7CiAgICAgICAgIGlmICghbV9ncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmIChhdXRv
IG1lZGlhUGxheWVyID0gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5yZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eSgpLm1lZGlhUGxheWVyKG1lZGlhUGxheWVySWRlbnRpZmllcikpCi0g
ICAgICAgICAgICBwaXhlbEJ1ZmZlciA9IG1lZGlhUGxheWVyLT5waXhlbEJ1ZmZlckZvckN1cnJl
bnRUaW1lKCk7CisgICAgICAgICAgICB2aWRlb0ZyYW1lID0gbWVkaWFQbGF5ZXItPnZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZSgpOwogICAgIH07CiAKLSAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdh
aXQoV1RGTW92ZShnZXRQaXhlbEJ1ZmZlcikpOworICAgIGNhbGxPbk1haW5SdW5Mb29wQW5kV2Fp
dChXVEZNb3ZlKGdldFZpZGVvRnJhbWUpKTsKIAotICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKKyAg
ICBpZiAoIXZpZGVvRnJhbWUpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjgyLDcgKzI4Miw3IEBAIHZvaWQgUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVy
SWRlbnRpZmllCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjb21wbGV0aW9uSGFuZGxl
cihjb250ZXh0Q1YtPmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShwaXhlbEJ1ZmZlci5nZXQoKSwg
dGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29u
dGV4dEdMOjpGbGlwWShmbGlwWSkpKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0Q1Yt
PmNvcHlWaWRlb0ZyYW1lVG9UZXh0dXJlKCp2aWRlb0ZyYW1lLCB0ZXh0dXJlLCBsZXZlbCwgaW50
ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZ
KSkpOwogI2Vsc2UKICAgICBVTlVTRURfVkFSSUFCTEUobWVkaWFQbGF5ZXJJZGVudGlmaWVyKTsK
ICAgICBVTlVTRURfVkFSSUFCTEUodGV4dHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggODgx
MDhjYmM1MzNjMTBjNzVlMzcwYmZjYzg5ODAwYTUzYzY3MjlhZC4uMWYwMDFhNTQ4MDQxZThlN2Rm
ODZiNjhiYjI3M2U0NDgzYjcxYzU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMTA3LDcgKzEw
Nyw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6aW52YWxpZGF0ZSgpCiAgICAgfQog
ICAgIG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCA9IHsgfTsKICNpZiBVU0UoQVZGT1VOREFU
SU9OKQotICAgIG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSA9IG51bGxwdHI7CisgICAgbV92
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBzdGQ6Om51bGxvcHQ7CiAjZW5kaWYKIH0KIApAQCAt
ODY4LDYgKzg2OCwyMSBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmN1cnJlbnRUaW1l
Q2hhbmdlZChjb25zdCBNZWRpYVRpbWUmIG1lZGlhVGltZSkKICAgICBtX3dlYlByb2Nlc3NDb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OkN1cnJlbnRU
aW1lQ2hhbmdlZChtZWRpYVRpbWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCAhbWVkaWFQbGF5ZXJQ
YXVzZWRPclN0YWxsZWQoKSksIG1faWQpOwogfQogCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiYmLCBib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1l
ZGlhUGxheWVyVmlkZW9GcmFtZT4gcmVzdWx0OworICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOwor
ICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0Zy
YW1lOworICAgIGlmIChtX3BsYXllcikKKyAgICAgICAgdmlkZW9GcmFtZSA9IG1fcGxheWVyLT52
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKKyAgICBpZiAoIShtX3ZpZGVvRnJhbWVGb3JDdXJy
ZW50VGltZSA9PSB2aWRlb0ZyYW1lKSkgeworICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50
VGltZSA9IHZpZGVvRnJhbWU7CisgICAgICAgIGNoYW5nZWQgPSB0cnVlOworICAgICAgICByZXN1
bHQgPSBXVEZNb3ZlKHZpZGVvRnJhbWUpOworICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKHJlc3VsdCksIGNoYW5nZWQpOworfQorCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6OnVwZGF0ZUNhY2hlZFN0YXRlKGJvb2wgZm9yY2VDdXJyZW50VGltZVVwZGF0ZSkKIHsKICAg
ICBpZiAoIW1fb2JzZXJ2aW5nVGltZUNoYW5nZXMgfHwgZm9yY2VDdXJyZW50VGltZVVwZGF0ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oCmluZGV4IDMyZjNhNDZhYTBmMDliMTNiMDI0ZTQxNjQwNzhhNWRhZGRlZGM1
NGUuLmUxMzk0NmY3YTdjMzMxZTcwM2QzNDZhNTkzMGQxMDRhMzAyN2RmMGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaApAQCAtMzIwLDkgKzMyMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBuYXRpdmVJbWFnZUZv
ckN1cnJlbnRUaW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXVEY6Ok1h
Y2hTZW5kUmlnaHQ+JiYsIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSk+JiYpOwogICAg
IHZvaWQgY29sb3JTcGFjZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRlc3RpbmF0
aW9uQ29sb3JTcGFjZSk+JiYpOwogI2VuZGlmCi0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICB2
b2lkIHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPj4mJik+JiYpOwot
I2VuZGlmCisgICAgdm9pZCB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9G
cmFtZT4mJiwgYm9vbCk+JiYpOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29u
c3QgTG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dlcigpIGZpbmFsIHsgcmV0dXJuIG1fbG9nZ2VyOyB9
CkBAIC0zNzgsOSArMzc2LDcgQEAgcHJpdmF0ZToKICAgICBTY29wZWRSZW5kZXJpbmdSZXNvdXJj
ZXNSZXF1ZXN0IG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdDsKIAogICAgIGJvb2wgbV9vYnNl
cnZpbmdUaW1lQ2hhbmdlcyB7IGZhbHNlIH07Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lOwot
I2VuZGlmCisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU+
IG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
ICAgIGNvbnN0IExvZ2dlciYgbV9sb2dnZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggMzljODcyOWIyNzM5ZTEzNjQ0YjMxYWE4MGRiYTgwZDRhMzMwYzhh
ZS4uZTUzOWI0OTJmNmZjMDU1NTc0NGU5MDU4NDY0MzdkNDg4ZDUzODQzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTEyNiw5ICsxMjYsNyBAQCBtZXNzYWdlcyAtPiBS
ZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIE5hdGl2ZUltYWdlRm9y
Q3VycmVudFRpbWUoKSAtPiAoc3RkOjpvcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiBzZW5kUmlnaHQs
IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKSBTeW5jaHJvbm91cwog
ICAgIENvbG9yU3BhY2UoKSAtPiAoV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9y
U3BhY2UpIFN5bmNocm9ub3VzCiAjZW5kaWYKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFBp
eGVsQnVmZmVyRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSAtPiAoc3RkOjpvcHRpb25hbDxSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHBpeGVsQnVmZmVyKSBTeW5jaHJvbm91cwotI2VuZGlm
CisgICAgVmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCkgLT4gKHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lLCBib29sIGNoYW5n
ZWQpIFN5bmNocm9ub3VzCiAKICAgICBQbGF5QXRIb3N0VGltZShNb25vdG9uaWNUaW1lIHRpbWUp
CiAgICAgUGF1c2VBdEhvc3RUaW1lKE1vbm90b25pY1RpbWUgdGltZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvY29hLm1tCmluZGV4IGM2YmJhM2FhMmI0ZTU1ZmFlZmI5MzNiYmUyZTYz
NTlkNzNmNjMxOTguLmZiZTEwYmMzMDVkMmQyZTE1YTI0YTdjZWU0NTA3ZWExNzY3Mzc0NjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQpAQCAtMTI3LDIxICsxMjcsNiBA
QCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmNvbG9yU3BhY2UoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpEZXN0aW5hdAogICAgIGNvbXBsZXRpb25IYW5kbGVyKG1fcGxheWVy
LT5jb2xvclNwYWNlKCkpOwogfQogCi0jaWYgVVNFKEFWRk9VTkRBVElPTikKLXZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBzdGQ6Om9wdGlvbmFsPFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPj4gcmVzdWx0OwotICAgIFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBwaXhlbEJ1ZmZlcjsKLSAgICBpZiAobV9wbGF5ZXIpCi0gICAgICAgIHBpeGVsQnVm
ZmVyID0gbV9wbGF5ZXItPnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKLSAgICBpZiAobV9w
aXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lICE9IHBpeGVsQnVmZmVyKSB7Ci0gICAgICAgIHJlc3Vs
dCA9IHBpeGVsQnVmZmVyOwotICAgICAgICBtX3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUgPSBX
VEZNb3ZlKHBpeGVsQnVmZmVyKTsKLSAgICB9Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92
ZShyZXN1bHQpKTsKLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlm
IC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAKaW5kZXggOWE2NDI5NDM3ODQyZjQzZGI2ZGExYzI1MDExZWQ0YTU0NGNi
ZjM2MS4uYjUzOTJlMDRkOWZmOTZkYmYxMTA4MTRhODBhMDRhNmI2ZWYyODgzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtMTAwMCwxMyArMTAwMCwxOCBAQCBib29sIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdl
YkNvcmU6OkdyYXBoaQogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwog
fQotI2VsaWYgIVBMQVRGT1JNKENPQ09BKQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCisjZW5k
aWYKKworc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU+IE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4gcmVzdWx0OworICAgIGJvb2wgY2hhbmdlZCA9
IGZhbHNlOworICAgIGlmICghY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSwgTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlm
Q2hhbmdlZDo6UmVwbHkocmVzdWx0LCBjaGFuZ2VkKSwgbV9pZCkpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgaWYgKGNoYW5nZWQpCisgICAgICAgIG1fdmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lID0gV1RGTW92ZShyZXN1bHQpOworICAgIHJldHVybiBtX3ZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZTsKIH0KLSNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogUmVmUHRyPE5h
dGl2ZUltYWdlPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om5hdGl2ZUltYWdlRm9yQ3VycmVu
dFRpbWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggZWIzMjYyNDA0YzZmOTFkOGQy
NjdhMzg1MTY0NTIyN2EwOTAzNzllOC4uZWEyYTA2NmIwMDYzOTNhZDZkZTIzNWE1YTA5MjZmOTNj
ZTY3NjEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0yOTIsOSArMjkyLDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOwogI2lmICFV
U0UoQVZGT1VOREFUSU9OKQogICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0
dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMKiwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVu
dW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJvb2wsIGJvb2wpIGZp
bmFsOwotI2Vsc2UKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXJG
b3JDdXJyZW50VGltZSgpIGZpbmFsOwogI2VuZGlmCisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFs
OwogICAgIFJlZlB0cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50
VGltZSgpIGZpbmFsOwogICAgIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNw
YWNlKCkgZmluYWw7CiAKQEAgLTQ2MSw5ICs0NjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93
YWl0aW5nRm9yS2V5IHsgZmFsc2UgfTsKICAgICBib29sIG1fdGltZUlzUHJvZ3Jlc3NpbmcgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkIHsgZmFsc2UgfTsK
LSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBt
X3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWU7Ci0jZW5kaWYKKyAgICBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG1f
cGl4ZWxCdWZmZXJHYXRoZXJlZFdpdGhWaWRlb0ZyYW1lTWV0YWRhdGE7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y+IG1fcGl4ZWxCdWZmZXJDb25m
b3JtZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2Nv
Y29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQpp
bmRleCBjMGI3NzZkYzc3M2IxN2ZhNDMwY2Q1ODk2OGIwMDdiMzFiZDc2YThkLi40MWRiYzdhNTNi
NzE3NzYyZTQ1YTIwOWUwZjg0NzBlMTE1ZjExMDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0KQEAgLTk0LDE4ICs5NCw2IEBAIFdlYkNvcmU6OkRl
c3RpbmF0aW9uQ29sb3JTcGFjZSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNvbG9yU3BhY2Uo
KQogICAgIHJldHVybiBjb2xvclNwYWNlOwogfQogCi0jaWYgVVNFKEFWRk9VTkRBVElPTikKLVJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBpeGVs
QnVmZmVyRm9yQ3VycmVudFRpbWUoKQotewotICAgIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+PiByZXN1bHQ7Ci0gICAgaWYgKCFjb25uZWN0aW9uKCkuc2VuZFN5bmMo
TWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWVJZkNoYW5nZWQoKSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlBpeGVsQnVm
ZmVyRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQ6OlJlcGx5KHJlc3VsdCksIG1faWQpKQotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICBpZiAocmVzdWx0KQotICAgICAgICBtX3BpeGVsQnVmZmVy
Rm9yQ3VycmVudFRpbWUgPSBXVEZNb3ZlKCpyZXN1bHQpOwotICAgIHJldHVybiBtX3BpeGVsQnVm
ZmVyRm9yQ3VycmVudFRpbWU7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGNlNWMzMGQwZDRlZTJhMzU1ZTA2ODkwNjk3ZDkwMjQ3YTBhZGNiNDQuLmQ1OTIyNTU5Mjc3ZTIx
YWMyZTQyMTA3MWFmNTYyMmI1YjIzZTliNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0w
MS0xNyAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBXZWJHTCBHUFUgYnVmZmVyIHRleHR1cmUgdXBsb2FkIHBhdGggZm9yIENvY29hIGdl
dFVzZXJNZWRpYSBjYW1lcmEgc3RyZWFtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MjMzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NzYwMTc2
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZh
c3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy5odG1sOgorICAgICAgICAqIHdl
YnJ0Yy9yb3V0aW5lcy5qczoKKyAgICAgICAgVGVzdCBjYW1lcmEgaW1hZ2Ugcm90YXRpb25zIGlu
IHRoZSB0ZXN0LgorCiAyMDIyLTAxLTE3ICBDaGFuZ1Nlb2sgT2ggIDxjaGFuZ3Nlb2tAd2Via2l0
Lm9yZz4KIAogICAgICAgICBbR1RLXSBJbXBsZW1lbnQgZm9ybSB2YWxpZGF0aW9uIHdpdGggZ3Rr
MyB3aWRnZXRzIGluIHRoZSBVSSBwcm9jZXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLWV4cGVjdGVkLnR4
dAppbmRleCA4NjU5NDAyNmZlNzliMzAwMzllZDczZWNlMjllZDZmY2UyODcwMWU0Li5kZmNhMDlj
MGE3NjU3MzlkMDkxZDRmM2VjZjIxNjM0NTNlMjdjNDAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy1l
eHBlY3RlZC50eHQKQEAgLTEsNiArMSw0IEBACiAKLVBBU1MgVGVzdGluZyBnZXRVc2VyTWVkaWEg
c3RyZWFtIHRvIGNhbnZhcyBjb250ZXh0cyB2aWEgMkRDb250ZXh0Ci1QQVNTIFRlc3RpbmcgZ2V0
VXNlck1lZGlhIHN0cmVhbSB0byBjYW52YXMgY29udGV4dHMgdmlhIEltYWdlQml0bWFwIHRvIDJE
Q29udGV4dAotUEFTUyBUZXN0aW5nIGdldFVzZXJNZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRl
eHRzIHZpYSBXZWJHTCB0ZXh0dXJlCi1QQVNTIFRlc3RpbmcgZ2V0VXNlck1lZGlhIHN0cmVhbSB0
byBjYW52YXMgY29udGV4dHMgdmlhIEltYWdlQml0bWFwIHRvIFdlYkdMIHRleHR1cmUKKworRkFJ
TCBUZXN0aW5nIGdldFVzZXJNZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRleHRzIGFzc2VydF9h
cnJheV9hcHByb3hfZXF1YWxzOiB3aGl0ZSByZWN0IG5vdCBmb3VuZCBzdWJ0ZXN0IG5hbWU6IHdp
dGhXZWJHTFRleFN1YkltYWdlRXh0cmEgYW5nbGU6MCBwcm9wZXJ0eSAwLCBleHBlY3RlZCAyNTUg
Ky8tIDMsIGV4cGVjdGVkIDI1NSBidXQgZ290IDAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMuaHRtbAppbmRleCBkMjgz
ZjQ4ZjdjZjMxNGQzMTQ5YTMyZTNmODkwMzlmNzQ3ODRmZGFhLi44OWFhYzYzOTcxYzE0OTM4MTY3
YTFlMzJhOTM3YTMwMWIxN2FmNTY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMuaHRtbApAQCAtOSw3ICs5LDggQEAK
ICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2wtdGVz
dC11dGlscy5qcyI+PC9zY3JpcHQ+CiAKICAgICAgICAgPHN0eWxlIHR5cGU9dGV4dC9jc3M+Ci0g
ICAgICAgICAgICBjYW52YXMgeyB3aWR0aDogNjAwcHggfQorICAgICAgICAgICAgY2FudmFzIHsg
d2lkdGg6IDYwcHggfQorICAgICAgICAgICAgdmlkZW8geyB3aWR0aDogNjBweCB9CiAgICAgICAg
IDwvc3R5bGU+CiAgICAgPC9oZWFkPgogICAgIDxib2R5PgpAQCAtMzYsMTIgKzM3LDE4IEBAIGZ1
bmN0aW9uIGNyZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbykgewogICAgIHJldHVybiBjYW52YXM7CiB9
CiAKLWZ1bmN0aW9uIGNyZWF0ZVZlcmlmeVdlYkdMQ29udGV4dChjYW52YXMpIHsKK2Z1bmN0aW9u
IGNyZWF0ZVZlcmlmeVdlYkdMU3RhdGUoY2FudmFzKSB7CiAgICAgbGV0IGdsID0gd3R1LmNyZWF0
ZTNEQ29udGV4dChjYW52YXMsIHsgZGVwdGg6IGZhbHNlLCBzdGVuY2lsOiBmYWxzZSwgYW50aWFs
aWFzOiBmYWxzZSB9KTsKICAgICBnbC52aWV3cG9ydCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZh
cy5oZWlnaHQpOwogICAgIGxldCBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsK
ICAgICBnbC51bmlmb3JtMWkoZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKSwg
MCk7Ci0gICAgcmV0dXJuIGdsOworICAgIGxldCB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgp
OworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOworICAgIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFS
RVNUKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFH
X0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7CisgICAgZ2wudGV4UGFyYW1l
dGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7
CisgICAgcmV0dXJuIFtnbCwgdGV4dHVyZV07CiB9CiAKIGZ1bmN0aW9uIGdldEZyYW1lYnVmZmVy
QXNJbWFnZURhdGEoZ2wpwqB7CkBAIC01NSw3OSArNjIsMTA1IEBAIGZ1bmN0aW9uIGdldEZyYW1l
YnVmZmVyQXNJbWFnZURhdGEoZ2wpwqB7CiAgICAgcmV0dXJuIGltYWdlRGF0YTsKIH0KIAotcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGxldCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJj
ZVZpZGVvKCk7Ci0gICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7Ci0gICAgbGV0IGNhbnZhcyA9IGNy
ZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbyk7Ci0gICAgZGVidWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7
Ci0KK2Z1bmN0aW9uIHdpdGgyRENvbnRleHREcmF3SW1hZ2UodmlkZW8sIGNhbnZhcykgewogICAg
IGxldCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKICAgICBjdHguZHJhd0ltYWdlKHZp
ZGVvLCAwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwotICAgIGFzc2VydEltYWdl
RGF0YUNvbnRhaW5zTW9ja0NhbWVyYUltYWdlKGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgY2FudmFz
LndpZHRoLCBjYW52YXMuaGVpZ2h0KSk7Ci0gICAgZGVidWdlLnJlbW92ZUNoaWxkKGNhbnZhcyk7
Ci0gICAgZGVidWdlLnJlbW92ZUNoaWxkKHZpZGVvKTsKLQotfSwgZG9jdW1lbnQudGl0bGUgKyAi
IHZpYSAyRENvbnRleHQiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGxldCB2
aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7Ci0gICAgZGVidWdlLmFwcGVuZCh2aWRl
byk7Ci0gICAgbGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbyk7Ci0gICAgZGVi
dWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7CisgICAgcmV0dXJuIGN0eC5nZXRJbWFnZURhdGEoMCwg
MCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKK30KIAorYXN5bmMgZnVuY3Rpb24gd2l0
aDJEQ29udGV4dERyYXdJbWFnZUltYWdlQml0bWFwKHZpZGVvLCBjYW52YXMpIHsKICAgICBsZXQg
Y3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CiAgICAgbGV0IGltYWdlQml0bWFwID0gYXdh
aXQgY3JlYXRlSW1hZ2VCaXRtYXAodmlkZW8pOwogICAgIGN0eC5kcmF3SW1hZ2UoaW1hZ2VCaXRt
YXAsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Ci0gICAgYXNzZXJ0SW1hZ2VE
YXRhQ29udGFpbnNNb2NrQ2FtZXJhSW1hZ2UoY3R4LmdldEltYWdlRGF0YSgwLCAwLCBjYW52YXMu
d2lkdGgsIGNhbnZhcy5oZWlnaHQpKTsKLSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQoY2FudmFzKTsK
LSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQodmlkZW8pOwotfSwgZG9jdW1lbnQudGl0bGUgKyAiIHZp
YSBJbWFnZUJpdG1hcCB0byAyRENvbnRleHQiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
ewotICAgIGxldCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7Ci0gICAgZGVidWdl
LmFwcGVuZCh2aWRlbyk7Ci0gICAgbGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlmeUNhbnZhcyh2aWRl
byk7Ci0gICAgZGVidWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7CisgICAgcmV0dXJuIGN0eC5nZXRJ
bWFnZURhdGEoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKK30KIAotICAgIGxl
dCBnbCA9IGNyZWF0ZVZlcmlmeVdlYkdMQ29udGV4dChjYW52YXMpOwotICAgIGxldCB0ZXh0dXJl
ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IHRleHR1cmUpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURH
RSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBf
VCwgZ2wuQ0xBTVBfVE9fRURHRSk7CitmdW5jdGlvbiB3aXRoV2ViR0xUZXhJbWFnZSh2aWRlbywg
Y2FudmFzKSB7CisgICAgbGV0IFtnbCwgdGV4dHVyZV0gPSBjcmVhdGVWZXJpZnlXZWJHTFN0YXRl
KGNhbnZhcyk7CiAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCB2aWRlbyk7CiAgICAgd3R1LmNsZWFyQW5kRHJhd1Vu
aXRRdWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7CisgICAgcmV0dXJuIGdldEZyYW1lYnVmZmVyQXNJ
bWFnZURhdGEoZ2wpOworfQogCi0gICAgbGV0IGltYWdlRGF0YSA9IGdldEZyYW1lYnVmZmVyQXNJ
bWFnZURhdGEoZ2wpOwotICAgIGFzc2VydEltYWdlRGF0YUNvbnRhaW5zTW9ja0NhbWVyYUltYWdl
KGltYWdlRGF0YSk7Ci0gICAgZGVidWdlLnJlbW92ZUNoaWxkKGNhbnZhcyk7Ci0gICAgZGVidWdl
LnJlbW92ZUNoaWxkKHZpZGVvKTsKLX0sIGRvY3VtZW50LnRpdGxlICsgIiB2aWEgV2ViR0wgdGV4
dHVyZSIpOworZnVuY3Rpb24gd2l0aFdlYkdMVGV4U3ViSW1hZ2UodmlkZW8sIGNhbnZhcykgewor
ICAgIGxldCBbZ2wsIHRleHR1cmVdID0gY3JlYXRlVmVyaWZ5V2ViR0xTdGF0ZShjYW52YXMpOwor
ICAgIGxldCB3ID0gdmlkZW8udmlkZW9XaWR0aDsKKyAgICBsZXQgaCA9IHZpZGVvLnZpZGVvSGVp
Z2h0OworICAgIGxldCBwaXhlbHMgPSBuZXcgVWludDhBcnJheSh3ICogaCAqIDQpOworICAgIHBp
eGVscy5maWxsKDApOworICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdC
QSwgdywgaCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgcGl4ZWxzKTsKKyAgICBnbC50
ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIHZpZGVvKTsKKyAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAw
LCAyNTVdKTsKKyAgICByZXR1cm4gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCk7Cit9CiAK
LXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBsZXQgdmlkZW8gPSBhd2FpdCBjcmVhdGVT
b3VyY2VWaWRlbygpOwotICAgIGRlYnVnZS5hcHBlbmQodmlkZW8pOwotICAgIGxldCBjYW52YXMg
PSBjcmVhdGVWZXJpZnlDYW52YXModmlkZW8pOwotICAgIGRlYnVnZS5hcHBlbmRDaGlsZChjYW52
YXMpOworZnVuY3Rpb24gd2l0aFdlYkdMVGV4U3ViSW1hZ2VFeHRyYSh2aWRlbywgY2FudmFzKSB7
CisgICAgbGV0IFtnbCwgdGV4dHVyZV0gPSBjcmVhdGVWZXJpZnlXZWJHTFN0YXRlKGNhbnZhcyk7
CisgICAgbGV0IHcgPSB2aWRlby52aWRlb1dpZHRoICsgMTsKKyAgICBsZXQgaCA9IHZpZGVvLnZp
ZGVvSGVpZ2h0ICsgMjsKKyAgICBsZXQgcGl4ZWxzID0gbmV3IFVpbnQ4QXJyYXkodyAqIGggKiA0
KTsKKyAgICBwaXhlbHMuZmlsbCgwKTsKKyAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIGdsLlJHQkEsIHcsIGgsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHBpeGVscyk7
CisgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAxLCAyLCAwLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCB2aWRlbyk7CisgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGds
LCBbMCwgMCwgMCwgMjU1XSk7CisgICAgcmV0dXJuIGdldEZyYW1lYnVmZmVyQXNJbWFnZURhdGEo
Z2wpOworfQogCi0gICAgbGV0IGdsID0gY3JlYXRlVmVyaWZ5V2ViR0xDb250ZXh0KGNhbnZhcyk7
Ci0gICAgbGV0IHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Cithc3luYyBmdW5jdGlvbiB3
aXRoV2ViR0xUZXhJbWFnZUltYWdlQml0bWFwKHZpZGVvLCBjYW52YXMpIHsKKyAgICBsZXQgW2ds
LCB0ZXh0dXJlXSA9IGNyZWF0ZVZlcmlmeVdlYkdMU3RhdGUoY2FudmFzKTsKICAgICBsZXQgaW1h
Z2VCaXRtYXAgPSBhd2FpdCBjcmVhdGVJbWFnZUJpdG1hcCh2aWRlbyk7Ci0gICAgZ2wuYmluZFRl
eHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFS
RVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JB
UF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKICAgICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IGltYWdlQml0bWFwKTsKICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAw
LCAyNTVdKTsKKyAgICByZXR1cm4gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCk7Cit9CiAK
LSAgICBsZXQgaW1hZ2VEYXRhID0gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCk7Ci0gICAg
YXNzZXJ0SW1hZ2VEYXRhQ29udGFpbnNNb2NrQ2FtZXJhSW1hZ2UoaW1hZ2VEYXRhKTsKLSAgICBk
ZWJ1Z2UucmVtb3ZlQ2hpbGQoY2FudmFzKTsKLSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQodmlkZW8p
OwotfSwgZG9jdW1lbnQudGl0bGUgKyAiIHZpYSBJbWFnZUJpdG1hcCB0byBXZWJHTCB0ZXh0dXJl
Iik7Citjb25zdCBmdW5jcyA9IFt3aXRoMkRDb250ZXh0RHJhd0ltYWdlLCB3aXRoMkRDb250ZXh0
RHJhd0ltYWdlSW1hZ2VCaXRtYXAsIHdpdGhXZWJHTFRleEltYWdlLCB3aXRoV2ViR0xUZXhTdWJJ
bWFnZSwgd2l0aFdlYkdMVGV4U3ViSW1hZ2VFeHRyYSwgd2l0aFdlYkdMVGV4SW1hZ2VJbWFnZUJp
dG1hcF07Citjb25zdCBzdWJjYXNlcyA9IFtdOworLy8gRklYTUU6IDI3MCBub3QgdGVzdGVkIGJl
Y2F1c2UgaXQncyBub3QgcGFzc2VkIHRvIHRoZSBtb2NrIGFzIC05MC4gQ3VycmVudGx5IG5vdCBj
aGFuZ2VkIHRvCisvLyBhdm9pZCByZWdyZXNzaW5nLgorZm9yIChsZXQgYW5nbGUgb2YgWzAsIDkw
LCAxODBdKSB7CisgICAgZm9yIChsZXQgZnVuYyBvZiBmdW5jcykKKyAgICAgICAgc3ViY2FzZXMu
cHVzaCh7IGFuZ2xlOiBhbmdsZSwgdGVzdDogZnVuYyB9KTsKK30KIAorcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4geworICAgIHQuYWRkX2NsZWFudXAoYXN5bmMgKCkgPT4gc2V0TW9ja0NhbWVyYUlt
YWdlT3JpZW50YXRpb24oMCkpOworICAgIGxldCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZp
ZGVvKCk7CisgICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7CisgICAgbGV0IHJlYWxWaWRlb1NpemUg
PSBbdmlkZW8udmlkZW9XaWR0aCwgdmlkZW8udmlkZW9IZWlnaHRdOworCisgICAgZm9yIChsZXQg
c3ViY2FzZSBvZiBzdWJjYXNlcykgeworICAgICAgICBsZXQgZGVzYyA9IGBzdWJ0ZXN0IG5hbWU6
ICR7c3ViY2FzZS50ZXN0Lm5hbWV9IGFuZ2xlOiR7c3ViY2FzZS5hbmdsZX1gOworICAgICAgICBp
ZiAoc3ViY2FzZS5hbmdsZSA9PSAxODApIHsKKyAgICAgICAgICAgIC8vIDAgLT4gMTgwIGNhbm5v
dCBkZXRlY3Qgcm90YXRpb24gdmlhIHZpZGVvIHNpemUgY2hhbmdlLiBHbyB2aWEgOTAuCisgICAg
ICAgICAgICBsZXQgW2FuZ2xlLCB2aWRlb1NpemVdID0gc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50
YXRpb24oOTAsIHJlYWxWaWRlb1NpemUpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvclZpZGVv
U2l6ZSh2aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVbMV0pOworICAgICAgICB9CisgICAg
ICAgIGxldCBbYW5nbGUsIHZpZGVvU2l6ZV0gPSBzZXRNb2NrQ2FtZXJhSW1hZ2VPcmllbnRhdGlv
bihzdWJjYXNlLmFuZ2xlLCByZWFsVmlkZW9TaXplKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvclZp
ZGVvU2l6ZSh2aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVbMV0pOworCisgICAgICAgIGxl
dCBjYW52YXMgPSBjcmVhdGVWZXJpZnlDYW52YXModmlkZW8pOworICAgICAgICBkZWJ1Z2UuYXBw
ZW5kQ2hpbGQoY2FudmFzKTsKKyAgICAgICAgbGV0IGltYWdlRGF0YSA9IGF3YWl0IHN1YmNhc2Uu
dGVzdCh2aWRlbywgY2FudmFzKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGFzc2VydElt
YWdlRGF0YUNvbnRhaW5zTW9ja0NhbWVyYUltYWdlKGltYWdlRGF0YSwgYW5nbGUsIGRlc2MpOwor
ICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAvLyBVc2UgdGhpcyBmb3IgZGVidWdn
aW5nOgorICAgICAgICAgICAgLy8gYXdhaXQgd2FpdEZvcigxMDAwMDApOworICAgICAgICAgICAg
dGhyb3cgZTsKKyAgICAgICAgfQorICAgICAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQoY2FudmFzKTsK
KyAgICAgICAgLy8gUmVzZXQgb3JpZW50YXRpb24gZm9yIHRoZSBuZXh0IHRlc3QgYnkgZ29pbmcg
dG8gMC4KKyAgICAgICAgaWYgKHN1YmNhc2UuYW5nbGUgPT0gMTgwKSB7CisgICAgICAgICAgICAv
LyAxODAgLT4gMCBjYW5ub3QgZGV0ZWN0IHJvdGF0aW9uIHZpYSB2aWRlbyBzaXplIGNoYW5nZS4g
R28gdmlhIDkwLgorICAgICAgICAgICAgbGV0IFthbmdsZSwgdmlkZW9TaXplXSA9IHNldE1vY2tD
YW1lcmFJbWFnZU9yaWVudGF0aW9uKDkwLCByZWFsVmlkZW9TaXplKTsKKyAgICAgICAgICAgIGF3
YWl0IHdhaXRGb3JWaWRlb1NpemUodmlkZW8sIHZpZGVvU2l6ZVswXSwgdmlkZW9TaXplWzFdKTsK
KyAgICAgICAgfQorICAgICAgICBzZXRNb2NrQ2FtZXJhSW1hZ2VPcmllbnRhdGlvbigwKTsKKyAg
ICAgICAgYXdhaXQgd2FpdEZvclZpZGVvU2l6ZSh2aWRlbywgcmVhbFZpZGVvU2l6ZVswXSwgcmVh
bFZpZGVvU2l6ZVsxXSk7CisgICAgfQorICAgIGRlYnVnZS5yZW1vdmVDaGlsZCh2aWRlbyk7Cit9
LCBkb2N1bWVudC50aXRsZSk7CiAgICAgICAgIDwvc2NyaXB0PgogICAgIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcyBiL0xheW91dFRl
c3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcwppbmRleCBmODM3YWEwMGQ3YWUzNzhiNDU1YzhjY2E0NDk4
MTk1MGJhMDVlMDlhLi40NzhhMTAxMzE3ZGUxMjA4YzJlMzVjMzQwZWIxNGU3ZTJkZWUyMDIxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMKKysrIGIvTGF5b3V0VGVz
dHMvd2VicnRjL3JvdXRpbmVzLmpzCkBAIC0yNTMsNyArMjUzLDcgQEAgYXN5bmMgZnVuY3Rpb24g
Y29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0sIHZpZGVvKQogewogICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKSB7CiAgICAgICAgIGludGVybmFscy5vYnNlcnZlTWVkaWFTdHJlYW1UcmFjayhzdHJlYW0u
Z2V0VmlkZW9UcmFja3MoKVswXSk7Ci0gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUg
PT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgICAgICBhd2FpdCBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpOwogICAgICAgICByZXR1cm4g
aW50ZXJuYWxzLnRyYWNrVmlkZW9TYW1wbGVDb3VudDsKICAgICB9CiAKQEAgLTI3Myw3ICsyNzMs
NyBAQCBhc3luYyBmdW5jdGlvbiBjb21wdXRlRnJhbWVSYXRlKHN0cmVhbSwgdmlkZW8pCiAgICAg
YXdhaXQgdmlkZW8ucGxheSgpOwogCiAgICAgY29uc3Qgc3RhdHMxID0gYXdhaXQgZ2V0UmVjZWl2
ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24pOwotICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUg
PT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJl
c29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7CiAgICAgY29uc3Qgc3RhdHMyID0g
YXdhaXQgZ2V0UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24pOwogICAgIHJldHVybiAoc3Rh
dHMyLmZyYW1lc1JlY2VpdmVkIC0gc3RhdHMxLmZyYW1lc1JlY2VpdmVkKSAqIDEwMDAgLyAoc3Rh
dHMyLnRpbWVzdGFtcCAtIHN0YXRzMS50aW1lc3RhbXApOwogfQpAQCAtMjk4LDYgKzI5OCwyMCBA
QCBmdW5jdGlvbiBzZXRIMjY0SGlnaENvZGVjKHNkcCkKICAgICB9KS5qb2luKCdcclxuJyk7CiB9
CiAKKy8vIFNldHMgdGhlIGNhbWVyYSBpbWFnZSBvcmllbnRhdGlvbiBpZiBydW5uaW5nIG9uIHRl
c3QgcnVubmVyLgorLy8gYW5nbGU6IG9yaWVudGF0aW9uIGFuZ2xlIG9mIHRoZSBjYW1lcmEgaW1h
Z2UgaW4gZGVncmVlcworZnVuY3Rpb24gc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50YXRpb24oYW5n
bGUsIHZpZGVvU2l6ZSkgeworICAgIGlmIChbMCwgOTAsIDE4MCwgMjcwXS5pbmRleE9mKGFuZ2xl
KSA9PSAtMSkKKyAgICAgICAgdGhyb3cgImludmFsaWQgYW5nbGUiOworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYW1lcmFPcmllbnRhdGlv
bihhbmdsZSk7CisgICAgICAgIGlmICh2aWRlb1NpemUgJiYgKGFuZ2xlID09IDkwIHx8IGFuZ2xl
ID09IDI3MCkpCisgICAgICAgICAgICB2aWRlb1NpemUgPSBbdmlkZW9TaXplWzFdLCB2aWRlb1Np
emVbMF1dOworICAgICAgICByZXR1cm4gW2FuZ2xlLCB2aWRlb1NpemVdOworICAgIH0KKyAgICBy
ZXR1cm4gWzAsIHZpZGVvU2l6ZV07Cit9CisKIC8vIFJldHVybnMgVWludDhBcnJheVs0XSBvZiBS
R0JBIGNvbG9yLgogLy8gcDogW3gsIHldIG9mIDAuLjEgcmFuZ2UuCiBmdW5jdGlvbiBnZXRJbWFn
ZURhdGFQaXhlbChpbWFnZURhdGEsIHApCkBAIC0zMTEsMTYgKzMyNSwzMyBAQCBmdW5jdGlvbiBn
ZXRJbWFnZURhdGFQaXhlbChpbWFnZURhdGEsIHApCiAvLyBBc3NlcnRzIHRoYXQgSW1hZ2VEYXRh
IGluc3RhbmNlIGNvbnRhaW5zIG1vY2sgY2FtZXJhIGltYWdlIHJlbmRlcmVkIGJ5IE1pbmlCcm93
c2VyIGFuZCBXZWJLaXRUZXN0UnVubmVyLgogLy8gT2J0YWluIGZ1bGwgY2FtZXJhIGltYWdlIG9m
IHNpemUgYHdpZHRoYDoKIC8vICBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJN
ZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiB7IGV4YWN0OiB3aWR0aCB9IH0gfSk7Ci1mdW5jdGlvbiBh
c3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEpCitmdW5jdGlv
biBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEsIGFuZ2xl
LCBkZXNjKQogeworICAgIGFuZ2xlID0gYW5nbGUgfHwgMDsKKyAgICBkZXNjID0gZGVzYyB8fCAi
IjsKKworICAgIGZ1bmN0aW9uIHJvdGF0ZVBvaW50KHApIHsKKyAgICAgICAgbGV0IGEgPSBhbmds
ZTsKKyAgICAgICAgbGV0IG4gPSBbIHBbMF0sIHBbMV0gXTsKKyAgICAgICAgd2hpbGUgKGEgPiAw
KSB7CisgICAgICAgICAgICBuID0gWyAxLjAgLSBuWzFdLCBuWzBdIF07CisgICAgICAgICAgICBh
IC09IDkwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuOworICAgIH0KKwogICAgIGNvbnN0
IHdoaXRlID0gWyAyNTUsIDI1NSwgMjU1LCAyNTUgXTsKKyAgICBjb25zdCB3aGl0ZVBvaW50ID0g
cm90YXRlUG9pbnQoWyAwLjA0LCAwLjcgXSk7CiAgICAgY29uc3QgeWVsbG93ID0gWyAyNTUsIDI1
NSwgMCwgMjU1IF07CisgICAgY29uc3QgeWVsbG93UG9pbnQgPSByb3RhdGVQb2ludChbIDAuMDgs
IDAuNyBdKTsKICAgICBjb25zdCBjeWFuID0gWyAwLCAyNTUsIDI1NSwgMjU1IF07CisgICAgY29u
c3QgY3lhblBvaW50ID0gcm90YXRlUG9pbnQoWyAwLjEyLCAwLjcgXSk7CiAgICAgY29uc3QgbGln
aHRHcmVlbiA9IFsgMCwgMTI4LCAwLCAyNTUgXTsKKyAgICBjb25zdCBsaWdodEdyZWVuUG9pbnQg
PSByb3RhdGVQb2ludChbIDAuMTYsIDAuNyBdKTsKIAogICAgIGxldCBlcnIgPSAzOwotICAgIGFz
c2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgWyAw
LjA0LCAwLjcgXSksIHdoaXRlLCBlcnIsICJ3aGl0ZSByZWN0IG5vdCBmb3VuZCIpOwotICAgIGFz
c2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgWyAw
LjA4LCAwLjcgXSksIHllbGxvdywgZXJyLCAieWVsbG93IHJlY3Qgbm90IGZvdW5kIik7Ci0gICAg
YXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCBb
IDAuMTIsIDAuNyBdKSwgY3lhbiwgZXJyLCAiY3lhbiByZWN0IG5vdCBmb3VuZCIpOwotICAgIGFz
c2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgWyAw
LjE2LCAwLjcgXSksIGxpZ2h0R3JlZW4sIGVyciwgImxpZ2h0IGdyZWVuIHJlY3Qgbm90IGZvdW5k
Iik7CisgICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1h
Z2VEYXRhLCB3aGl0ZVBvaW50KSwgd2hpdGUsIGVyciwgIndoaXRlIHJlY3Qgbm90IGZvdW5kICIg
KyBkZXNjKTsKKyAgICBhc3NlcnRfYXJyYXlfYXBwcm94X2VxdWFscyhnZXRJbWFnZURhdGFQaXhl
bChpbWFnZURhdGEsIHllbGxvd1BvaW50KSwgeWVsbG93LCBlcnIsICJ5ZWxsb3cgcmVjdCBub3Qg
Zm91bmQiICsgZGVzYyk7CisgICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VE
YXRhUGl4ZWwoaW1hZ2VEYXRhLCBjeWFuUG9pbnQpLCBjeWFuLCBlcnIsICJjeWFuIHJlY3Qgbm90
IGZvdW5kICIgKyBkZXNjKTsKKyAgICBhc3NlcnRfYXJyYXlfYXBwcm94X2VxdWFscyhnZXRJbWFn
ZURhdGFQaXhlbChpbWFnZURhdGEsIGxpZ2h0R3JlZW5Qb2ludCksIGxpZ2h0R3JlZW4sIGVyciwg
ImxpZ2h0IGdyZWVuIHJlY3Qgbm90IGZvdW5kICIgKyBkZXNjKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449407</attachid>
            <date>2022-01-18 11:54:30 -0800</date>
            <delta_ts>2022-01-18 23:39:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235233-20220118215427.patch</filename>
            <type>text/plain</type>
            <size>76611</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAwODliMmFlOGM0YTE0
ZGNmNGYwYTFlZjc4ZTE5ZjQ4ZmNiMjU0NC4uNmE4ODk1ZTdlNDBiMWVlMjlkZDRkMTE1NTRkZjhj
MGU2ODYxN2YwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIyLTAxLTE3ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdl
YkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlh
IGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NjAxNzYyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgZnVsbCB0ZXh0
dXJlIHVwbG9hZHMgZnJvbSBNZWRpYVN0cmVhbSBjYW1lcmEgY2FwdHVyZXMgdXNlIENWUGl4ZWxC
dWZmZXJzCisgICAgICAgIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcGl4ZWxzIGJhY2suCisgICAg
ICAgIEltcGxlbWVudCBNZWRpYVBsYXllckludGVyZmFjZTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50
VGltZSgpIGZvcgorICAgICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
CisgICAgICAgIFJlbmFtZSBmdW5jdGlvbnMgZnJvbSBwaXhlbEJ1ZmZlci4uLiB0byB2aWRlb0Zy
YW1lLgorICAgICAgICBVc2UgbmV3IHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGluc3RlYWQg
b2YgQ1ZQaXhlbEJ1ZmZlci4KKyAgICAgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGNvbnRhaW5z
IGFsc28gdGhlIGZyYW1lIG9yaWVudGF0aW9uLiBUaGUKKyAgICAgICAgb3JpZW50YXRpb24gaXMg
bmVlZGVkIGFzIHRoZSBjYW1lcmEgbWlnaHQgY2FwdHVyZSB0aGUgaW1hZ2UKKyAgICAgICAgd2l0
aCBhIHJvdGF0aW9uIG9yIGEgZmxpcC4KKworICAgICAgICBUbyBhdm9pZCBpZmRlZnMsIHRoZSBu
ZXcgQVBJIHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSBleGlzdHMKKyAgICAgICAgZm9yIGFsbCBw
bGF0Zm9ybXMsIGJ1dCBpcyBjdXJyZW50bHkgY2FsbGVkIG9ubHkgYnkgQ29jb2EuCisgICAgICAg
IEFsc28gdGhlIHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGV4aXN0cyBmb3IgYWxsIHBsYXRm
b3JtcworICAgICAgICBidXQgaGFzIHRoZSBmcmFtZSBjb250ZW50cyBpbXBsZW1lbnRhdGlvbiBv
bmx5IGZvciBDb2NvYS4KKworICAgICAgICBUZXN0ZWQgYnkgZmFzdC9tZWRpYXN0cmVhbS9nZXRV
c2VyTWVkaWEtdG8tY2FudmFzLmh0bWwKKworICAgICAgICBDdXJyZW50bHkgdGhlICJtaXJyb3Jl
ZCIgcGFydCBpcyB0ZXN0ZWQgbWFudWFsbHksIFdlYktpdAorICAgICAgICBkb2VzIG5vdCByZXF1
ZXN0IG1pcnJvcmVkIGNhbWVyYSBpbWFnZSBzbyBpdCBpcyBkZWFkIGNvZGUuCisKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6
OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnZpZGVvRnJhbWVGb3JDdXJyZW50
VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnBp
eGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyVmlkZW9GcmFtZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyVmlkZW9GcmFtZTo6b3JpZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpwaXhlbEJ1ZmZlciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU6Om9wZXJhdG9yPT0gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpkZWNvZGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclZpZGVvRnJhbWVBVkYu
bW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBo
aWNzQ29udGV4dEdMQ1YuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFt
ZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwaXhlbEJ1
ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OnZpZGVvT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZy
b21NZWRpYSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0
R0xDVi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdM
Q1ZDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6
OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2E6OmNvcHlWaWRlb0ZyYW1lVG9UZXh0dXJlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuaDoKKwogMjAyMi0wMS0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZXNldCBz
aG91bGQgaG9wIHRvIHRoZSBtYWluIHRocmVhZCBiZWZvcmUgY2FsbGluZyBpdHMgb2JzZXJ2ZXJz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDc5MzU1YjkzOTU2ZTAzNDU0YzE2NmNhNWNkM2NmOTMzYTIxNWFiMjUuLjRk
NWZjMTQyMjViOTA5NDI3MmRhYmI4OGI3ODhjZmE2MDMzZGUzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzEgQEAKKzIwMjItMDEtMTcgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNv
bT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViR0wgR1BVIGJ1ZmZlciB0ZXh0dXJlIHVwbG9hZCBw
YXRoIGZvciBDb2NvYSBnZXRVc2VyTWVkaWEgY2FtZXJhIHN0cmVhbXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTIzMworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vODc2MDE3NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVuYW1lIGZ1bmN0aW9ucyBmcm9tIHBpeGVsQnVmZmVyLi4uIHRvIHZpZGVv
RnJhbWUuCisgICAgICAgIFNlbmQgbmV3IHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGluc3Rl
YWQgb2YgQ1ZQaXhlbEJ1ZmZlci4KKyAgICAgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGNvbnRh
aW5zIGFsc28gdGhlIGZyYW1lIG9yaWVudGF0aW9uLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hh
bmdlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSk6IERlbGV0ZWQuCisKIDIwMjItMDEtMTcgIENoYW5nU2VvayBPaCAgPGNoYW5n
c2Vva0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtHVEtdIEltcGxlbWVudCBmb3JtIHZhbGlkYXRp
b24gd2l0aCBndGszIHdpZGdldHMgaW4gdGhlIFVJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IDg4OTBmOGRiYTQ3NGMzOTJjMzczMjk4ZGE3NTgwZjcxOWNlNWMzZGUuLjc4ZTdiYzkxMjY3
MjYyNTk1NDgxYTkyODUyNGU5ODBmYmE1NDM4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTUx
MSw2ICsxNTExLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyRW51bXMuaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVySWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclZpZGVvRnJh
bWUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZS5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVVzYWdlSW5mby5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAyYzNi
NGY4MWE1MmY1NjY5OWNiZmQ0MTJkZmFjMDk0MzY2NmFlYWU3Li5kZDFlZDhhZTYyZjJhNGIyZTYz
ZDFlZDE5MzUxNTk4ZmVlMGRiY2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTI5Niw2
ICsyOTYsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAorcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbQogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYjA4MWI2YTE5ZDNkZDVmYjY3ZmIxNmU3YmZhOWM3NTg2ZmY5ZjFhZC4uMjkyYjVjMTFj
Njg3NGU5MjBiZjI1MTlhNTY3YzA3OGJmZjAxNTk3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQwLDYgKzI0MCw3IEBACiAJ
CTA4MUVCRjNCMEZEMzRGNDEwMERBNzU1OSAvKiBTVkdGaWx0ZXJCdWlsZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODFFQkYzOTBGRDM0RjQxMDBE
QTc1NTkgLyogU1ZHRmlsdGVyQnVpbGRlci5oICovOyB9OwogCQkwODNEQUVBNzBGMDFBN0ZCMDAz
NDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4M0RBRUEzMEYwMUE3RkIwMDM0Mjc1NCAvKiBS
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oICovOyB9OwogCQkwODNEQUVBOTBGMDFBN0ZCMDAz
NDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODNEQUVBNTBGMDFBN0ZCMDAzNDI3NTQgLyog
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggKi87IH07CisJCTA4NDRCMDFEMTI1NUI0RTYw
MEI5Q0REMCAvKiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODQ0QjAxRDEyNTVFNEU2MDBCOUNERDAgLyog
U1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5oICovOyB9OwogCQkwODQ1NjgwODEyQjkwREE2MDA5
NjBBOUYgLyogRm9udE1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA4NDU2ODA3MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA4NTRCMDE1
MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDAzMTI1NUU0RTYwMEI5Q0REMCAvKiBS
ZW5kZXJTVkdJbmxpbmUuaCAqLzsgfTsKIAkJMDg1NEIwMTcxMjU1RTRFNjAwQjlDREQwIC8qIFJl
bmRlclNWR0lubGluZVRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA4NTRCMDA1MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmVUZXh0
LmggKi87IH07CkBAIC0yMzkxLDYgKzIzOTIsNyBAQAogCQk3QUY5QjIwRjE4Q0ZCNUY0MDBDNjRC
RUYgLyogSlNWVFRSZWdpb25MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QUY5QjIwQjE4Q0ZCNUYzMDBDNjRCRUYgLyogSlNWVFRSZWdpb25MaXN0
LmggKi87IH07CiAJCTdCMTAzMzlFMjU0OTcyMTcwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRH
TENWLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEw
MzM5RDI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCMTAzMzlGMjU0OTcyMUUw
MEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBH
cmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk3QjQ0MTBFMTI3OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFQbGF5
ZXJWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I2MDk0
REQyNzBDNDRCRDAwNjQ4MzVDIC8qIEFOR0xFVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkIzNEExNjI1MzQ1Q0IyMDAwMjlEMDggLyog
QU5HTEVVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QjZEQzgxOTI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJ
T1N1cmZhY2VTd2FwQ2hhaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCNkRDODE3MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElP
U3VyZmFjZVN3YXBDaGFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTdCNzIwQjBDMjc0M0RCQTcwMDA4QUJFRCAvKiBHcmFwaGljc0xheWVyQ29u
dGVudHNEaXNwbGF5RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdCNzIwQjBBMjc0M0RCQTYwMDA4QUJFRCAvKiBHcmFwaGljc0xheWVyQ29u
dGVudHNEaXNwbGF5RGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtNDYzNiw4ICs0NjM4LDggQEAKIAkJQ0RGNzQ3RjEyNzBGNzY2RjAw
OEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RjAyNzBGNzY2RjAwOEZFRUVD
IC8qIFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oICovOyB9OwogCQlDREY3NDdGMzI3
MEY3NkNGMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0N0Yy
MjcwRjc2Q0YwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5l
cy5oICovOyB9OwogCQlDREY3NDdGNTI3MEY4M0IxMDA4RkVFRUMgLyogUmVuZGVyU1ZHR3JhZGll
bnRTdG9wSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RGNzQ3RjQyNzBGODNCMTAwOEZFRUVDIC8qIFJlbmRlclNWR0dyYWRpZW50U3RvcElu
bGluZXMuaCAqLzsgfTsKLQkJQ0RGNzQ3RjcyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRl
clNWR1NoYXBlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RGNzQ3RjYyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRlclNWR1NoYXBl
SW5saW5lcy5oICovOyB9OwogCQlDREY3NDdGNzI3MEY4M0I0MTA3REVFRUMgLyogUmVuZGVyU1ZH
U2hhcGVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREY3NDdGNjI3MEY4M0I0MTA3REVFRUMgLyogUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmgg
Ki87IH07CisJCUNERjc0N0Y3MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFw
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERjc0N0Y2MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMu
aCAqLzsgfTsKIAkJQ0RGNzQ3RjkyNzBGODdDQjAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNl
UmFkaWFsR3JhZGllbnRJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREY3NDdGODI3MEY4N0NCMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3Vy
Y2VSYWRpYWxHcmFkaWVudElubGluZXMuaCAqLzsgfTsKIAkJQ0RGNzQ3RkIyNzBGODkxQTAwOEZF
RUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTWFza2VySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RkEyNzBGODkxQTAwOEZFRUVDIC8q
IFJlbmRlclNWR1Jlc291cmNlTWFza2VySW5saW5lcy5oICovOyB9OwogCQlDREY3NDgzRjE4RkVC
Q0VDMDAwNkVDQzAgLyogR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDgzRDE4RkVCQ0VDMDAwNkVDQzAgLyog
R3JpZFBvc2l0aW9uc1Jlc29sdmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTYxOTgsMTAgKzYyMDAsMTIgQEAKIAkJMDgxQUE4RDkxMTExMjM3
RTAwMkFCMDZFIC8qIFNWR0VsZW1lbnRSYXJlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdFbGVtZW50UmFyZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDgxRUJGMzgwRkQzNEY0MTAwREE3NTU5IC8qIFNWR0ZpbHRlckJ1aWxkZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRmlsdGVyQnVpbGRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4MUVCRjM5MEZEMzRGNDEwMERBNzU1OSAv
KiBTVkdGaWx0ZXJCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R0ZpbHRlckJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDgzNEIwMEMx
MjQ0RTRFNjAwQjlDREQwIC8qIFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4M0RBRUEyMEYwMUE3RkIwMDM0Mjc1
NCAvKiBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4M0RBRUEzMEYwMUE3RkIwMDM0Mjc1NCAvKiBSZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwODNEQUVBNDBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4M0RBRUE1
MEYwMUE3RkIwMDM0Mjc1NCAvKiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4NDRCMDFEMTI1NUU0RTYwMEI5Q0REMCAv
KiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDg0NTY4MDcxMkI5MERBNjAwOTYwQTlGIC8qIEZvbnRNZXRyaWNzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRNZXRyaWNzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA4NTRCMDAyMTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxp
bmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHSW5s
aW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg1NEIwMDMxMjU1RTRFNjAw
QjlDREQwIC8qIFJlbmRlclNWR0lubGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJTVkdJbmxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEx
NDY5LDYgKzExNDczLDggQEAKIAkJN0IxMDMzOUMyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNz
Q29udGV4dEdMQ1ZDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxMDMzOUQyNTQ5NzIwMTAwQzhD
MUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjE2MTkxMDI3MTk4ODBF
MDBDNDBFQUMgLyogV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I0NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlh
UGxheWVyVmlkZW9GcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRp
YVBsYXllclZpZGVvRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I0NDEw
RTIyNzk1OEZERTAwMEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE1lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTUyNTcxMkU5MTAwMzgwQzcwIC8qIEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBo
aWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNzIwQjBBMjc0M0RCQTYwMDA4QUJFRCAvKiBHcmFwaGlj
c0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzQwNyw5ICsxMzQxMyw5IEBACiAJCUExMEJCNTgzMTQ4
NEUzQTcwMEIyRTg3QSAvKiBMZWdhY3lSZW5kZXJTVkdSZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1JlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEwQkI1ODMxNDg0RTNBNzAwQjNBQjZEIC8qIFJlbmRlclNWR1JlY3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHUmVjdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBCQjU4ODE0ODRFM0IzMDBCMkU4N0EgLyogTGVnYWN5
UmVuZGVyU1ZHU2hhcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TGVnYWN5UmVuZGVyU1ZHU2hhcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
MTBDQzU4ODE0NzNFM0IzMDBCMkE4QkYgLyogUmVuZGVyU1ZHU2hhcGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMTBCQjU4OTE0ODRFM0IzMDBCMkU4N0EgLyogTGVnYWN5UmVu
ZGVyU1ZHU2hhcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UmVu
ZGVyU1ZHU2hhcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwQkI1ODkxNDg0
RTNCMzAwQzNGNzdCIC8qIFJlbmRlclNWR1NoYXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUExMENDNTg4MTQ3M0UzQjMwMEIyQThCRiAvKiBSZW5kZXJTVkdTaGFwZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdTaGFwZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEQ2RTk0MjE0NEM5OTgwMEZERDE0RCAvKiBKU1BheW1l
bnRSZXNwb25zZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BheW1lbnRSZXNwb25z
ZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMERCRjQ2MThGOTIz
MTcwMDBENzBDNiAvKiBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwREM3NjgxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3Jp
ZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVHcmlk
RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjMxMSw4ICsxNjMxNyw4
IEBACiAJCUNERjc0N0YwMjcwRjc2NkYwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtl
cklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXJJbmxpbmVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjc0N0YyMjcwRjc2Q0YwMDhGRUVF
QyAvKiBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5lcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGNDI3MEY4M0IxMDA4RkVFRUMgLyogUmVuZGVyU1ZH
R3JhZGllbnRTdG9wSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdHcmFkaWVudFN0
b3BJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNERjc0N0Y2MjcwRjg2
QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNERjc0N0Y2MjcwRjgzQjQxMDdERUVFQyAvKiBSZW5kZXJTVkdTaGFwZUlubGluZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNERjc0N0Y2MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJT
VkdTaGFwZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjc0N0Y4MjcwRjg3Q0IwMDhG
RUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50SW5saW5lcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50SW5saW5lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGQTI3MEY4OTFBMDA4RkVFRUMgLyogUmVuZGVy
U1ZHUmVzb3VyY2VNYXNrZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1Jlc291
cmNlTWFza2VySW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDgz
QzE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODcwMyw2ICsxODcwOSw3IEBACiAJCQkJMDcx
RTQ5NkQxQUQ1QUEwRDAwOEE1MEI0IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbSAqLywK
IAkJCQkwNzZGMEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmNwcCAqLywKIAkJCQkwNzZGMEQwQTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggKi8sCisJCQkJN0I0NDEwRTIyNzk1OEZERTAwMEI0RjhB
IC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbSAqLywKIAkJCQlDREJFQUVBQjE5RDkyQjZD
MDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCAqLywKIAkJCQlDREJFQUVB
QTE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0gKi8sCiAJ
CQkJNDEwMjRGQzgyM0NGMjU0RjAwRkRGOThFIC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5j
cHAgKi8sCkBAIC0yODkyOCw2ICsyODkzNSw3IEBACiAJCQkJQ0Q1MjA5RTMxQjBCRDgzODAwNzcx
ODRFIC8qIE1lZGlhUGxheWVyRW51bXMuaCAqLywKIAkJCQlGNDI5MjYxNzI1MjY0RDQ0MDAwMDc4
OTggLyogTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmggKi8sCiAJCQkJMDc5RjVFNEIwRjNCRUJFQTAw
NUUwNzgyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZS5oICovLAorCQkJCTdCNDQxMERGMjc5NThGQzQw
MDBCNEY4QSAvKiBNZWRpYVBsYXllclZpZGVvRnJhbWUuaCAqLywKIAkJCQlDRDY0MUVCMTE4MThG
NUVEMDBFRTRDNDEgLyogTWVkaWFTb3VyY2VQcml2YXRlLmggKi8sCiAJCQkJQ0REQzFFNzkxOEE5
NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oICovLAogCQkJCTA3NjEx
REI4MjQzRkI3NUMwMEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oICovLApAQCAtMzYxMDYsNiAr
MzYxMTQsNyBAQAogCQkJCURGOUFGRDcyMTNGQzMxRDgwMDE1RkVCNyAvKiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM4QjVBMzE4MDQ2
MzQ3MDAxNkU2ODUgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNTA1MjRGNDFCNzEyRkY2MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjQ0MTBFMTI3
OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwNzdCQTU3NjI2MEZBREY2MDA3MkYxOUYgLyogTWVkaWFQb3NpdGlvblN0YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MkUyQ0FGQzE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlh
UXVlcnkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGMxMjgxYTQ0NmIxNTY1OTA5YjMxNDRhNzgyYzk5
NzhlZTkwODlmZTIuLjc3NDc2OGUyYzE5Mjc2MWY4MGE4NTZkYTkyZTJhZjZhODhkODdmYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
QEAgLTEwNjIsMTUgKzEwNjIsMTMgQEAgYm9vbCBNZWRpYVBsYXllcjo6Y29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiBjb250ZXh0LAogICAgIHJldHVy
biBtX3ByaXZhdGUtPmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShjb250ZXh0LCB0
ZXh0dXJlLCB0YXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVt
dWx0aXBseUFscGhhLCBmbGlwWSk7CiB9CiAKLSNlbHNlCisjZW5kaWYKIAotUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkK
K3N0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiBNZWRpYVBsYXllcjo6dmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5waXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lKCk7CiB9CiAKLSNlbmRpZgotCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxh
eWVyOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICByZXR1cm4gbV9wcml2YXRl
LT5uYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBjMTNkNzAzMmYyOGNjZDkwODcyYjA5Mjc2
ZDkzNzJhNDI2NTNhMjAxLi4yN2E2OTA3M2MzODA3NTQxNGJhNzIxMTA3Y2I1MGQwY2ZmNGZkODQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJFbnVtcy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVySWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luRGF0YS5oIgpAQCAtNDY3LDEwICs0NjgsOCBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIGN1cnJl
bnQgcmVzdHJpY3Rpb25zIHJlcXVpcmUgdGhhdCBmb3JtYXQgc2hvdWQgYmUgUkdCIG9yIFJHQkEs
IHR5cGUgc2hvdWxkIGJlIFVOU0lHTkVEX0JZVEUgYW5kIGxldmVsIHNob3VsZCBiZSAwLiBJdCBt
YXkgYmUgbGlmdGVkIGluIHRoZSBmdXR1cmUuCiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAg
Ym9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wq
LCBQbGF0Zm9ybUdMT2JqZWN0IHRleHR1cmUsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZl
bCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlw
ZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKTsKLSNlbHNlCi0gICAgUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKICNlbmRp
ZgotCisgICAgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZSgpOwogICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JD
dXJyZW50VGltZSgpOwogICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQ
cml2YXRlLmgKaW5kZXggNmU0NzdiY2FmOWM0ODU3YTAxNzcyNjU3MjJmODFiZjg0ZmJjMzBkZS4u
MDg1ZjhhYjM1ZDhmNWZkNWE4NjM5Y2Y0ODg0ZWRkMTZjMDUyOWU5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAg
LTI5LDggKzI5LDEwIEBACiAKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1l
ZGlhUGxheWVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyVmlkZW9GcmFtZS5o
IgogI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2Vz
LmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVy
Lmg+CiAKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKQEAgLTE3OCw5ICsxODAs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0
KEdyYXBoaWNzQ29udGV4dCYgYywgY29uc3QgRmxvYXRSZWN0JiByKSB7IHBhaW50KGMsIHIpOyB9
CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3Qs
IEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBi
b29sKSB7IHJldHVybiBmYWxzZTsgfQotI2Vsc2UKLSAgICB2aXJ0dWFsIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbnVsbHB0
cjsgfQogI2VuZGlmCisgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9G
cmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9
CiAgICAgdmlydHVhbCBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRp
bWUoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2UgY29sb3JTcGFjZSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclZpZGVvRnJhbWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTViYzk0
MjUwYzMzNmUwOTIwMjFlYmFiMmE0ZGRiYmU3MDVlYmZlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgKQEAg
LTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKyNpbmNsdWRlICJJbWFnZU9y
aWVudGF0aW9uLmgiCisKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KKwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsK
KyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhUGxheWVyVmlkZW9G
cmFtZSB7CitwdWJsaWM6CisgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lKCkgPSBkZWxldGU7Cisj
aWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVBsYXllclZpZGVv
RnJhbWUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYsIEltYWdlT3JpZW50YXRpb24pOwor
I2VuZGlmCisKKyAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9vcmllbnRhdGlvbjsgfQorCisjaWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9waXhlbEJ1ZmZlci5nZXQo
KTsgfQorI2VuZGlmCisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTWVkaWFQbGF5ZXJWaWRl
b0ZyYW1lJiBvdGhlcikgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiBkZWNvZGUoRGVj
b2RlciYpOworCitwcml2YXRlOgorI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXI7CisjZW5kaWYKKyAgICBJbWFnZU9yaWVu
dGF0aW9uIG1fb3JpZW50YXRpb247Cit9OworCitpbmxpbmUgYm9vbCBNZWRpYVBsYXllclZpZGVv
RnJhbWU6Om9wZXJhdG9yPT0oY29uc3QgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lJiBvdGhlcikgY29u
c3QKK3sKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIGlmIChtX3BpeGVsQnVmZmVyICE9IG90
aGVyLm1fcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIHJl
dHVybiBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbihvdGhlci5tX29yaWVudGF0aW9uKSA9
PSBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbihtX29yaWVudGF0aW9uKTsKK30KKwordGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBNZWRpYVBsYXllclZpZGVvRnJhbWU6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAg
ZW5jb2RlciA8PCBtX3BpeGVsQnVmZmVyOworICAgIGVuY29kZXIgPDwgSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZW50YXRpb24obV9vcmllbnRhdGlvbik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShl
bmNvZGVyKTsKKyNlbmRpZgorfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGQ6Om9w
dGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIHN0ZDo6
b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+PiBwaXhlbEJ1ZmZlcjsKKyAgICBk
ZWNvZGVyID4+IHBpeGVsQnVmZmVyOworICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgc3RkOjpvcHRpb25hbDxJbWFnZU9yaWVudGF0aW9uOjpP
cmllbnRhdGlvbj4gb3JpZW50YXRpb247CisgICAgZGVjb2RlciA+PiBvcmllbnRhdGlvbjsKKyAg
ICBpZiAoIW9yaWVudGF0aW9uKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJl
dHVybiBNZWRpYVBsYXllclZpZGVvRnJhbWUgeyBXVEZNb3ZlKCpwaXhlbEJ1ZmZlciksICpvcmll
bnRhdGlvbiB9OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyNlbmRpZgorfQorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclZpZGVv
RnJhbWVBVkYubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lQVZGLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1YzBkZGNhZmFkZDMx
ZWVmNjIyYzJhYWRmM2MwZDJlNjY1NWU0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1l
QVZGLm1tCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisj
aW5jbHVkZSAiTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpNZWRpYVBsYXllclZpZGVvRnJhbWUoUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+JiYgcGl4ZWxCdWZmZXIsIEltYWdlT3JpZW50YXRpb24gb3JpZW50
YXRpb24pCisgICAgOiBtX3BpeGVsQnVmZmVyKFdURk1vdmUocGl4ZWxCdWZmZXIpKQorICAgICwg
bV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKK3sKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaAppbmRleCA5NWEzNzg5YWQ2MjcxOWMxMDBiYzA2N2QzY2U4YWFhOTMyZDU3NDEx
Li5hYjY5ODNiZDk5NmNhOWRhZTM3NDJmNWM3NjQzYzVlYzBlZjgxNDI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oCkBAIC0yNjIsMTIgKzI2MiwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBkYXRl
TGFzdFBpeGVsQnVmZmVyKCk7CiAgICAgYm9vbCB2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1l
KCk7CiAgICAgdm9pZCBwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdl
PiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgRGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UoKSBmaW5hbDsKICAgICB2b2lkIHdhaXRGb3JWaWRlb091dHB1dE1l
ZGlhRGF0YVdpbGxDaGFuZ2UoKTsKIAotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBw
aXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgZmluYWw7Ci0KICNpZiBFTkFCTEUoTEVHQUNZX0VO
Q1JZUFRFRF9NRURJQSkKICAgICB2b2lkIGtleUFkZGVkKCkgZmluYWw7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPExlZ2FjeUNETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0sIExlZ2FjeUNETVNlc3Npb25DbGllbnQqKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCmluZGV4IGJkYzJhODJlNzNmNGZkZjg4YjVhNTRjOTk3ZjMyYmY2ODlkZTk5NmEuLmYzN2Rm
MDdlNjBjNzJhNDg5MTlhMjA1M2YwNTIyYzQwNzRkYTMyM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQpAQCAtMjYyNSwxMSArMjYyNSwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYgYwogCiB9
CiAKLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKK3N0ZDo6b3B0aW9uYWw8TWVk
aWFQbGF5ZXJWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewogICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigp
OwotCi0gICAgcmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyOworICAgIGlmICghbV9sYXN0UGl4ZWxC
dWZmZXIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIE1lZGlhUGxh
eWVyVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUgfTsKIH0KIAogUmVmUHRyPE5hdGl2ZUltYWdlPiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggOTMxM2MxYjNkZjZkMzY5NjA4Yzc1NWYwNTVkNDYxZGFi
NWRmNzIyYS4uZDc0ODNlNzRlNzZlZTVhOGU4Mjg0NGE4ZGZlMWMxNmVhZDczNTI1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTIyMiw3ICsyMjIsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgdXBkYXRlTGFzdEltYWdlKCk7CiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5D
b250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwotICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkg
ZmluYWw7CisgICAgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xv
clNwYWNlKCkgZmluYWw7CiAKICAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmco
KSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCBiMmNlNmJi
YzdhYWNjOGNlY2MyMWM5NDEyOTVlNDMxOGFkY2I4OWEzLi4yZjJkZTQ1N2RmMDVhMzYyNDA1NTM5
NmQxMzcyYmJiNDA5OTMwNTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC03MjEs
NyArNzIxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBh
aW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ28KICAgICBjb250ZXh0LmRyYXdOYXRp
dmVJbWFnZSgqaW1hZ2UsIGltYWdlUmVjdC5zaXplKCksIG91dHB1dFJlY3QsIGltYWdlUmVjdCk7
CiB9CiAKLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQorc3RkOjpvcHRpb25h
bDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICAvLyBXZSBoYXZlIGJlZW4g
YXNrZWQgdG8gcGFpbnQgaW50byBhIFdlYkdMIGNhbnZhcywgc28gdGFrZSB0aGF0IGFzIGEgc2ln
bmFsIHRvIGNyZWF0ZQogICAgIC8vIGEgZGVjb21wcmVzc2lvbiBzZXNzaW9uLCBldmVuIGlmIHRo
YXQgbWVhbnMgdGhlIG5hdGl2ZSB2aWRlbyBjYW4ndCBhbHNvIGJlIGRpc3BsYXllZApAQCAtNzMz
LDggKzczMyw5IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OnBpeGVsQnVmZmVyRm9yCiAKICAgICBpZiAoIW1faXNHYXRo
ZXJpbmdWaWRlb0ZyYW1lTWV0YWRhdGEpCiAgICAgICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigp
OwotCi0gICAgcmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyOworICAgIGlmICghbV9sYXN0UGl4ZWxC
dWZmZXIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIE1lZGlhUGxh
eWVyVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUgfTsKIH0KIAogRGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y29sb3JTcGFjZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQy5oCmluZGV4IDZkOTU1Njc0ZDA2Mjc1YWU0MzNlNWE1NGEzN2MzNGU2YmYzN2Y5YTIuLjli
NmZkMmI1ZjI3NTQ5MjY3ZGIzOTkzYzk4OTVkYjE2MzIxNTg2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oCkBAIC0xNDIsNiArMTQyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGFpbnQo
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBw
YWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmKSBvdmVycmlkZTsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgb3ZlcnJpZGU7CiAgICAgRGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UoKSBvdmVycmlkZTsKICAgICBib29sIG1ldGFEYXRhQXZhaWxhYmxl
KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0cmVhbVByaXZhdGUgJiYgbV9yZWFkeVN0YXRlID49
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGE7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tCmluZGV4IDQ5ZjQyZjljMDJiODI5NTMyNTc3MzhjMzQ0MDQzZGViNDEwODUx
YzIuLmFiZmFmMWM3YTM1ZGUxZDJmMWQxNjAxOWE4ZTMzN2QzODU2MDM5NDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KQEAgLTI0NCw2ICsyNDQsMjIgQEAgc3RhdGljIGlubGluZSBDR0Fm
ZmluZVRyYW5zZm9ybSB2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KE1lZGlhU2FtcGxlJiBzYW1w
bGUpCiAgICAgcmV0dXJuIHZpZGVvVHJhbnNmb3JtOwogfQogCitzdGF0aWMgaW5saW5lIEltYWdl
T3JpZW50YXRpb24gdmlkZW9PcmllbnRhdGlvbihNZWRpYVNhbXBsZSYgc2FtcGxlKQoreworICAg
IC8vIFNhbXBsZSB0cmFuc2Zvcm0gZmlyc3QgZmxpcHMgeC1jb29yZGluYXRlcywgdGhlbiByb3Rh
dGVzLgorICAgIGJvb2wgZmxpcFggPSBzYW1wbGUudmlkZW9NaXJyb3JlZCgpOyAvLyBMZWZ0IHNp
ZGUgc3dpdGNoZXMgd2l0aCByaWdodCBzaWRlLgorICAgIHN3aXRjaCAoc2FtcGxlLnZpZGVvUm90
YXRpb24oKSkgeworICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU6Cisg
ICAgICAgIHJldHVybiBmbGlwWCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IDog
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wTGVmdDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpW
aWRlb1JvdGF0aW9uOjpSaWdodDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmllbnRh
dGlvbjo6T3JpZ2luUmlnaHRCb3R0b20gOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodFRv
cDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAg
ICAgICByZXR1cm4gZmxpcFggPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21MZWZ0IDog
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9tUmlnaHQ7CisgICAgY2FzZSBNZWRpYVNhbXBs
ZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmll
bnRhdGlvbjo6T3JpZ2luTGVmdFRvcCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkxlZnRCb3R0
b207CisgICAgfQorfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSwgVmlkZW9TYW1wbGVN
ZXRhZGF0YSBtZXRhZGF0YSkKIHsKICAgICBhdXRvIHByZXNlbnRhdGlvblRpbWUgPSBNb25vdG9u
aWNUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpOwpAQCAtMTAwMyw2ICsxMDE5LDIxIEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dChHcmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmlt
YWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCB0cmFuc2Zvcm1lZERlc3RSZWN0LCBpbWFnZVJlY3QpOwog
fQogCitzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQoreworICAg
IGlmIChtX2Rpc3BsYXlNb2RlID09IE5vbmUgfHwgIW1ldGFEYXRhQXZhaWxhYmxlKCkpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKG1fZGlzcGxheU1vZGUgPT0gUGFpbnRJ
dEJsYWNrKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghbV9pbWFnZVBh
aW50ZXIubWVkaWFTYW1wbGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUt
PnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyOworICAgIENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgaWYgKCFwaXhl
bEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gTWVkaWFQ
bGF5ZXJWaWRlb0ZyYW1lIHsgUmV0YWluUHRyIHsgcGl4ZWxCdWZmZXIgfSwgdmlkZW9PcmllbnRh
dGlvbigqbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUpIH07Cit9CisKIERlc3RpbmF0aW9uQ29s
b3JTcGFjZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNvbG9yU3BhY2Uo
KQogewogICAgIHVwZGF0ZUN1cnJlbnRGcmFtZUltYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbQppbmRleCAzMmRiNmVlODJjY2QwMTkzOGI0MDdhNmI2ZThkZWNmODU1MmJjODE5
Li45NTdiYTZiYTkwYmIwMThiYjg4OGQwMmM1ZGM4Mzc0NmI2NTNkZmFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBo
aWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTc5MSw4ICs3OTEsOCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEU6OnBsYXRmb3JtUmVsZWFzZVRocmVhZFJlc291cmNlcygpCiAjaWYgRU5BQkxF
KFZJREVPKQogYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRp
YShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdD
R0xlbnVtIG91dHB1dFRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3Jt
YXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhh
LCBib29sIGZsaXBZKQogewotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBwbGF5ZXIucGl4ZWxCdWZm
ZXJGb3JDdXJyZW50VGltZSgpOwotICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgYXV0byB2aWRl
b0ZyYW1lID0gcGxheWVyLnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOworICAgIGlmICghdmlk
ZW9GcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYXV0byBjb250ZXh0Q1YgPSBh
c0NWKCk7CkBAIC04MDEsNyArODAxLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpj
b3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUcKIAogICAg
IFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5VU0VEKG91
dHB1dFRhcmdldCwgb3V0cHV0VGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJE
KTsKLSAgICByZXR1cm4gY29udGV4dENWLT5jb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUocGl4ZWxC
dWZmZXIuZ2V0KCksIG91dHB1dFRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0
LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKTsKKyAgICByZXR1cm4gY29u
dGV4dENWLT5jb3B5VmlkZW9GcmFtZVRvVGV4dHVyZSgqdmlkZW9GcmFtZSwgb3V0cHV0VGV4dHVy
ZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdM
OjpGbGlwWShmbGlwWSkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaAppbmRleCAxZDYx
NWE3ZjBlZjExMzIzMjY4MDJlNTY0YTlhZDUyNTI3ZTAzMDY3Li42ZDEwOWQ2NDUwYTAxNWUyN2Ri
Mzk0OWFkODM4YzY4NGJmZDFkNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVi5oCkBAIC0yOSw5ICsyOSw4
IEBACiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTC5oIgogCi10eXBlZGVmIHN0cnVjdCBf
X0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVmOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBNZWRpYVBsYXllclZpZGVvRnJhbWU7CiAKIC8vIEludGVyZmFjZSB0byBpbnRlcmFjdCB3aXRo
IENWIG9iamVjdHMgYW5kIEdyYXBoaWNzQ29udGV4dEdMLgogY2xhc3MgR3JhcGhpY3NDb250ZXh0
R0xDViB7CkBAIC00MSw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBGbGlwWSA9IEdyYXBo
aWNzQ29udGV4dEdMOjpGbGlwWTsKICAgICAvLyBDb3BpZXMgQ1YgcGl4ZWwgYnVmZmVyIHRvIEdy
YXBoaWNzQ29udGV4dEdMIFRFWFRVUkVfMkQgdGV4dHVyZSBvZiB0aGUgc2FtZSBzaXplIGFzIHRo
ZSBwaXhlbCBidWZmZXIuCiAgICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCi0gICAgdmly
dHVhbCBib29sIGNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmLCBQbGF0
Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVy
bmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZKSA9IDA7Cisg
ICAgdmlydHVhbCBib29sIGNvcHlWaWRlb0ZyYW1lVG9UZXh0dXJlKE1lZGlhUGxheWVyVmlkZW9G
cmFtZSYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NH
TGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxp
cFkpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCmluZGV4IDI0
OTk1YTNlZWVkYmVjOTQ4NWJjMWM2YTY5YjYyNWQwYmU3YTg5OTMuLjU2YWVhODg5M2JkMzk1ODdl
OWE4YWZmM2ZmY2Y4M2IwMTJlYjU2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNw
cApAQCAtNDksNiArNDksOCBAQCBzdGF0aWMgY29uc3RleHByIGF1dG8gc195dXZWZXJ0ZXhTaGFk
ZXJUZXh0dXJlMkQgewogICAgICJ1bmlmb3JtIHZlYzIgdV95VGV4dHVyZVNpemU7IgogICAgICJ1
bmlmb3JtIHZlYzIgdV91dlRleHR1cmVTaXplOyIKICAgICAidW5pZm9ybSBpbnQgdV9mbGlwWTsi
CisgICAgInVuaWZvcm0gaW50IHVfZmxpcFg7IgorICAgICJ1bmlmb3JtIGludCB1X3N3YXBYWTsi
CiAgICAgInZhcnlpbmcgdmVjMiB2X3lUZXh0dXJlQ29vcmRpbmF0ZTsiCiAgICAgInZhcnlpbmcg
dmVjMiB2X3V2VGV4dHVyZUNvb3JkaW5hdGU7IgogICAgICJ2b2lkIG1haW4oKSIKQEAgLTU3LDYg
KzU5LDEwIEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzX3l1dlZlcnRleFNoYWRlclRleHR1cmUy
RCB7CiAgICAgIiAgICB2ZWMyIG5vcm1hbGl6ZWRQb3NpdGlvbiA9IGFfcG9zaXRpb24gKiAuNSAr
IC41OyIKICAgICAiICAgIGlmICh1X2ZsaXBZID09IDEpIgogICAgICIgICAgICAgIG5vcm1hbGl6
ZWRQb3NpdGlvbi55ID0gMS4wIC0gbm9ybWFsaXplZFBvc2l0aW9uLnk7IgorICAgICIgICAgaWYg
KHVfZmxpcFggPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnggPSAxLjAg
LSBub3JtYWxpemVkUG9zaXRpb24ueDsiCisgICAgIiAgICBpZiAodV9zd2FwWFkgPT0gMSkiCisg
ICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnh5ID0gbm9ybWFsaXplZFBvc2l0aW9uLnl4
OyIKICAgICAiICAgIHZfeVRleHR1cmVDb29yZGluYXRlID0gbm9ybWFsaXplZFBvc2l0aW9uOyIK
ICAgICAiICAgIHZfdXZUZXh0dXJlQ29vcmRpbmF0ZSA9IG5vcm1hbGl6ZWRQb3NpdGlvbjsiCiAg
ICAgIn0iX3MKQEAgLTY3LDYgKzczLDggQEAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVy
dGV4U2hhZGVyVGV4dHVyZVJlY3RhbmdsZSB7CiAgICAgInVuaWZvcm0gdmVjMiB1X3lUZXh0dXJl
U2l6ZTsiCiAgICAgInVuaWZvcm0gdmVjMiB1X3V2VGV4dHVyZVNpemU7IgogICAgICJ1bmlmb3Jt
IGludCB1X2ZsaXBZOyIKKyAgICAidW5pZm9ybSBpbnQgdV9mbGlwWDsiCisgICAgInVuaWZvcm0g
aW50IHVfc3dhcFhZOyIKICAgICAidmFyeWluZyB2ZWMyIHZfeVRleHR1cmVDb29yZGluYXRlOyIK
ICAgICAidmFyeWluZyB2ZWMyIHZfdXZUZXh0dXJlQ29vcmRpbmF0ZTsiCiAgICAgInZvaWQgbWFp
bigpIgpAQCAtNzUsNiArODMsMTAgQEAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVydGV4
U2hhZGVyVGV4dHVyZVJlY3RhbmdsZSB7CiAgICAgIiAgICB2ZWMyIG5vcm1hbGl6ZWRQb3NpdGlv
biA9IGFfcG9zaXRpb24gKiAuNSArIC41OyIKICAgICAiICAgIGlmICh1X2ZsaXBZID09IDEpIgog
ICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlvbi55ID0gMS4wIC0gbm9ybWFsaXplZFBvc2l0
aW9uLnk7IgorICAgICIgICAgaWYgKHVfZmxpcFggPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFs
aXplZFBvc2l0aW9uLnggPSAxLjAgLSBub3JtYWxpemVkUG9zaXRpb24ueDsiCisgICAgIiAgICBp
ZiAodV9zd2FwWFkgPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnh5ID0g
bm9ybWFsaXplZFBvc2l0aW9uLnl4OyIKICAgICAiICAgIHZfeVRleHR1cmVDb29yZGluYXRlID0g
bm9ybWFsaXplZFBvc2l0aW9uICogdV95VGV4dHVyZVNpemU7IgogICAgICIgICAgdl91dlRleHR1
cmVDb29yZGluYXRlID0gbm9ybWFsaXplZFBvc2l0aW9uICogdV91dlRleHR1cmVTaXplOyIKICAg
ICAifSJfcwpAQCAtNTQ4LDYgKzU2MCw4IEBAIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6R3Jh
cGhpY3NDb250ZXh0R0xDVkNvY29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmIG93bmVyCiAgICAg
bV91dlRleHR1cmVVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJv
Z3JhbSwgInVfdXZUZXh0dXJlIik7CiAgICAgbV9jb2xvck1hdHJpeFVuaWZvcm1Mb2NhdGlvbiA9
IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9ncmFtLCAidV9jb2xvck1hdHJpeCIpOwogICAg
IG1feXV2RmxpcFlVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJv
Z3JhbSwgInVfZmxpcFkiKTsKKyAgICBtX3l1dkZsaXBYVW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0
VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1X2ZsaXBYIik7CisgICAgbV95dXZTd2FwWFlV
bmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfc3dh
cFhZIik7CiAgICAgbV95VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3Jt
TG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfeVRleHR1cmVTaXplIik7CiAgICAgbV91dlRleHR1cmVT
aXplVW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1
X3V2VGV4dHVyZVNpemUiKTsKICAgICBtX3l1dlBvc2l0aW9uQXR0cmlidXRlTG9jYXRpb24gPSBH
TF9HZXRBdHRyaWJMb2NhdGlvbih5dXZQcm9ncmFtLCAiYV9wb3NpdGlvbiIpOwpAQCAtNTU5LDgg
KzU3Myw5IEBAIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDVkNv
Y29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmIG93bmVyCiAgICAgR0xfQmluZEZyYW1lYnVmZmVy
KEdMX0ZSQU1FQlVGRkVSLCBtX2ZyYW1lYnVmZmVyKTsKIH0KIAotYm9vbCBHcmFwaGljc0NvbnRl
eHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGlt
YWdlLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdMaW50IGxldmVsLCBHTGVudW0g
aW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBGbGlwWSBmbGlwWSkK
K2Jvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5VmlkZW9GcmFtZVRvVGV4dHVyZShN
ZWRpYVBsYXllclZpZGVvRnJhbWUmIHZpZGVvRnJhbWUsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0
VGV4dHVyZSwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xlbnVtIGZvcm1h
dCwgR0xlbnVtIHR5cGUsIEZsaXBZIHVucGFja0ZsaXBZKQogeworICAgIGF1dG8gaW1hZ2UgPSB2
aWRlb0ZyYW1lLnBpeGVsQnVmZmVyKCk7CiAgICAgLy8gRklYTUU6IFRoaXMgY3VycmVudGx5IG9u
bHkgc3VwcG9ydHMgJzQyMHYnIGFuZCAnNDIwZicgcGl4ZWwgZm9ybWF0cy4gSW52ZXN0aWdhdGUg
c3VwcG9ydGluZyBtb3JlIHBpeGVsIGZvcm1hdHMuCiAgICAgT1NUeXBlIHBpeGVsRm9ybWF0ID0g
Q1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShpbWFnZSk7CiAgICAgaWYgKHBpeGVsRm9y
bWF0ICE9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJWaWRlb1JhbmdlIC8v
IE5PTElOVApAQCAtNTc3LDkgKzU5MiwxMCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2Nv
YTo6Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2UsCiAgICAg
aWYgKCFzdXJmYWNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBhdXRvIG9yaWVudGF0
aW9uID0gdmlkZW9GcmFtZS5vcmllbnRhdGlvbigpOwogICAgIGF1dG8gbmV3U3VyZmFjZVNlZWQg
PSBJT1N1cmZhY2VHZXRTZWVkKHN1cmZhY2UpOwotICAgIGlmIChmbGlwWSA9PSBtX2xhc3RGbGlw
WQotICAgICAgICAmJiBzdXJmYWNlID09IG1fbGFzdFN1cmZhY2UKKyAgICBpZiAoSW1hZ2VPcmll
bnRhdGlvbjo6T3JpZW50YXRpb24ob3JpZW50YXRpb24pID09IEltYWdlT3JpZW50YXRpb246Ok9y
aWVudGF0aW9uKG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbikKKyAgICAgICAgJiYgdW5wYWNrRmxp
cFkgPT0gbV9sYXN0VW5wYWNrRmxpcFkKICAgICAgICAgJiYgbmV3U3VyZmFjZVNlZWQgPT0gbV9s
YXN0U3VyZmFjZVNlZWQKICAgICAgICAgJiYgbGFzdFRleHR1cmVTZWVkKG91dHB1dFRleHR1cmUp
ID09IG1fb3duZXIudGV4dHVyZVNlZWQob3V0cHV0VGV4dHVyZSkpIHsKICAgICAgICAgLy8gSWYg
dGhlIHRleHR1cmUgaGFzbid0IGJlZW4gbW9kaWZpZWQgc2luY2UgdGhlIGxhc3QgdGltZSB3ZSBj
b3BpZWQgdG8gaXQsIGFuZCB0aGUKQEAgLTU4OSw4ICs2MDUsNjMgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVm
IGltYWdlLAogICAgIGlmICghbV9jb250ZXh0IHx8ICFHcmFwaGljc0NvbnRleHRHTENvY29hOjpt
YWtlQ3VycmVudChtX2Rpc3BsYXksIG1fY29udGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChpbWFnZSk7Ci0gICAg
c2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoaW1hZ2UpOworICAgIC8vIENv
bXB1dGUgdHJhbnNmb3JtIHRoYXQgdW5kb2VzIHRoZSBgb3JpZW50YXRpb25gLCBlLmcuIG1vdmVz
IHRoZSBvcmlnaW4gdG8gdG9wIGxlZnQuCisgICAgLy8gRXZlbiBudW1iZXIgb2Ygb3BlcmF0aW9u
cyAoZmxpcFgsIGZsaXBZLCBzd2FwWFkpIG1lYW5zIGEgcm90YXRpb24uCisgICAgLy8gT2RkIG51
bWJlciBvZiBvcGVyYXRpb25zIG1lYW5zIGEgcm90YXRpb24gYW5kIGEgZmxpcC4KKyAgICAvLyBg
ZmxpcFhgIHN3aXRjaGVzIGJldHdlZW4gTGVmdCBhbmQgUmlnaHQuIGBmbGlwWWAgc3dpdGNoZXMg
YmV0d2VlbiBUb3AgYW5kIEJvdHRvbS4KKyAgICAvLyBgc3dhcFhZYHN3aXRjaGVzIExlZnRUb3Ag
dG8gVG9wTGVmdC4KKyAgICAvLyBHb2FsIGlzIHRvIGdldCB0byBPcmlnaW5Ub3BMZWZ0LgorICAg
IGJvb2wgZmxpcFkgPSBmYWxzZTsgLy8gRmxpcCB5IGNvb3JkaW5hdGUsIGkuZS4gbWlycm9yZWQg
YWxvbmcgdGhlIHgtYXhpcy4KKyAgICBib29sIGZsaXBYID0gZmFsc2U7IC8vIEZsaXAgeCBjb29y
ZGluYXRlLCBpLmUuIG1pcnJvcmVkIGFsb25nIHRoZSB5LWF4aXMuCisgICAgYm9vbCBzd2FwWFkg
PSBmYWxzZTsKKyAgICBzd2l0Y2ggKHZpZGVvRnJhbWUub3JpZW50YXRpb24oKSkgeworICAgIGNh
c2UgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlOgorICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luVG9wTGVmdDoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0
aW9uOjpPcmlnaW5Ub3BSaWdodDoKKyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0OgorICAgICAg
ICAvLyBSb3RhdGVkIDE4MCBkZWdyZWVzLgorICAgICAgICBmbGlwWSA9IHRydWU7CisgICAgICAg
IGZsaXBYID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9u
OjpPcmlnaW5Cb3R0b21MZWZ0OgorICAgICAgICAvLyBNaXJyb3JlZCBhbG9uZyB0aGUgeC1heGlz
LgorICAgICAgICBmbGlwWSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VP
cmllbnRhdGlvbjo6T3JpZ2luTGVmdFRvcDoKKyAgICAgICAgLy8gTWlycm9yZWQgYWxvbmcgeC1h
eGlzIGFuZCByb3RhdGVkIDI3MCBkZWdyZWVzIGNsb2NrLXdpc2UuCisgICAgICAgIHN3YXBYWSA9
IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2lu
UmlnaHRUb3A6CisgICAgICAgIC8vIFJvdGF0ZWQgOTAgZGVncmVlcyBjbG9jay13aXNlLgorICAg
ICAgICBmbGlwWCA9IHRydWU7CisgICAgICAgIHN3YXBYWSA9IHRydWU7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRCb3R0b206CisgICAgICAg
IC8vIE1pcnJvciBhbG9uZyB4LWF4aXMgYW5kIHJvdGF0ZWQgOTAgZGVncmVlcyBjbG9ja3dpc2Uu
CisgICAgICAgIGZsaXBZID0gdHJ1ZTsKKyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBz
d2FwWFkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEltYWdlT3JpZW50YXRpb246
Ok9yaWdpbkxlZnRCb3R0b206CisgICAgICAgIC8vIFJvdGF0ZWQgMjcwIGRlZ3JlZXMgY2xvY2st
d2lzZS4KKyAgICAgICAgZmxpcFkgPSB0cnVlOworICAgICAgICBzd2FwWFkgPSB0cnVlOworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKHVucGFja0ZsaXBZID09IEZsaXBZOjpZZXMpIHsK
KyAgICAgICAgaWYgKHN3YXBYWSkKKyAgICAgICAgICAgIGZsaXBYID0gIWZsaXBYOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBmbGlwWSA9ICFmbGlwWTsKKyAgICB9CisgICAgc2l6ZV90IHNv
dXJjZVdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKGltYWdlKTsKKyAgICBzaXplX3Qgc291
cmNlSGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChpbWFnZSk7CisKKyAgICBzaXplX3Qg
d2lkdGggPSBzd2FwWFkgPyBzb3VyY2VIZWlnaHQgOiBzb3VyY2VXaWR0aDsKKyAgICBzaXplX3Qg
aGVpZ2h0ID0gc3dhcFhZID8gc291cmNlV2lkdGggOiBzb3VyY2VIZWlnaHQ7CiAKICAgICBHTF9W
aWV3cG9ydCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKIApAQCAtNjY0LDcgKzczNSw5IEBAIGJvb2wg
R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhl
bEJ1ZmZlclJlZiBpbWFnZSwKICAgICAvLyBDb25maWd1cmUgdGhlIGRyYXdpbmcgcGFyYW1ldGVy
cy4KICAgICBHTF9Vbmlmb3JtMWkobV95VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiwgMCk7CiAgICAg
R0xfVW5pZm9ybTFpKG1fdXZUZXh0dXJlVW5pZm9ybUxvY2F0aW9uLCAxKTsKLSAgICBHTF9Vbmlm
b3JtMWkobV95dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiwgZmxpcFkgPT0gRmxpcFk6OlllcyA/IDEg
OiAwKTsKKyAgICBHTF9Vbmlmb3JtMWkobV95dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiwgZmxpcFkg
PyAxIDogMCk7CisgICAgR0xfVW5pZm9ybTFpKG1feXV2RmxpcFhVbmlmb3JtTG9jYXRpb24sIGZs
aXBYID8gMSA6IDApOworICAgIEdMX1VuaWZvcm0xaShtX3l1dlN3YXBYWVVuaWZvcm1Mb2NhdGlv
biwgc3dhcFhZID8gMSA6IDApOwogICAgIEdMX1VuaWZvcm0yZihtX3lUZXh0dXJlU2l6ZVVuaWZv
cm1Mb2NhdGlvbiwgeVBsYW5lV2lkdGgsIHlQbGFuZUhlaWdodCk7CiAgICAgR0xfVW5pZm9ybTJm
KG1fdXZUZXh0dXJlU2l6ZVVuaWZvcm1Mb2NhdGlvbiwgdXZQbGFuZVdpZHRoLCB1dlBsYW5lSGVp
Z2h0KTsKIApAQCAtNjc2LDEwICs3NDksMTEgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29j
b2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLAogICAg
IC8vIERvIHRoZSBhY3R1YWwgZHJhd2luZy4KICAgICBHTF9EcmF3QXJyYXlzKEdMX1RSSUFOR0xF
UywgMCwgNik7CiAKKyAgICBtX2xhc3RVbnBhY2tGbGlwWSA9IHVucGFja0ZsaXBZOwogICAgIG1f
bGFzdFN1cmZhY2UgPSBzdXJmYWNlOwogICAgIG1fbGFzdFN1cmZhY2VTZWVkID0gbmV3U3VyZmFj
ZVNlZWQ7CisgICAgbV9sYXN0U3VyZmFjZU9yaWVudGF0aW9uID0gb3JpZW50YXRpb247CiAgICAg
bV9sYXN0VGV4dHVyZVNlZWQuc2V0KG91dHB1dFRleHR1cmUsIG1fb3duZXIudGV4dHVyZVNlZWQo
b3V0cHV0VGV4dHVyZSkpOwotICAgIG1fbGFzdEZsaXBZID0gZmxpcFk7CiAgICAgYXV0b0NsZWFy
VGV4dHVyZU9uRXJyb3IucmVsZWFzZSgpOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xD
VkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0Nv
bnRleHRHTENWQ29jb2EuaAppbmRleCBjNGUzOTYwYjZkNzA4MGU0YzM5NDBiOGFmN2FkOWRjZTYy
NDYyNzBmLi4xZThjYWRkNWVlOGJjNzUxMWJkYzY5NjM1NGQzMzVhZjk1M2FiOTAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWQ29jb2EuaApAQCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJH
TCkgJiYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0R0xDVi5oIgotCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvVW5zYWZlUG9pbnRlci5oPgogCkBAIC00NCw3
ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIH5HcmFwaGljc0NvbnRleHRHTENWQ29jb2EoKSBmaW5h
bDsKIAotICAgIGJvb2wgY29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYs
IFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0g
aW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpIGZp
bmFsOworICAgIGJvb2wgY29weVZpZGVvRnJhbWVUb1RleHR1cmUoTWVkaWFQbGF5ZXJWaWRlb0Zy
YW1lJiwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50IGxldmVsLCBHQ0dM
ZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBGbGlw
WSkgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hKEdyYXBo
aWNzQ29udGV4dEdMQ29jb2EmKTsKQEAgLTY0LDEyICs2NCwxNSBAQCBwcml2YXRlOgogICAgIEdD
R0xpbnQgbV95VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBtX3V2
VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBtX3l1dkZsaXBZVW5p
Zm9ybUxvY2F0aW9uIHsgLTEgfTsKKyAgICBHQ0dMaW50IG1feXV2RmxpcFhVbmlmb3JtTG9jYXRp
b24geyAtMSB9OworICAgIEdDR0xpbnQgbV95dXZTd2FwWFlVbmlmb3JtTG9jYXRpb24geyAtMSB9
OwogICAgIEdDR0xpbnQgbV9jb2xvck1hdHJpeFVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAg
R0NHTGludCBtX3l1dlBvc2l0aW9uQXR0cmlidXRlTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xp
bnQgbV95VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV91
dlRleHR1cmVTaXplVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKIAotICAgIEZsaXBZIG1fbGFzdEZs
aXBZIHsgRmxpcFk6Ok5vIH07CisgICAgRmxpcFkgbV9sYXN0VW5wYWNrRmxpcFkgeyBGbGlwWTo6
Tm8gfTsKKyAgICBJbWFnZU9yaWVudGF0aW9uIG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbjsKICAg
ICBVbnNhZmVQb2ludGVyPElPU3VyZmFjZVJlZj4gbV9sYXN0U3VyZmFjZTsKICAgICB1aW50MzJf
dCBtX2xhc3RTdXJmYWNlU2VlZCB7IDAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCAzNzA2Njcz
ZTlmMDYyMWFhMWE1MzgzY2YzYjBlMmY1Y2Y5MDUwMjE5Li42MGM1YThjZDZkNTBlOTAwZTRjMWVi
ZDFmZDhlMmRkYWU4YjZkYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtNTA5LDYgKzUwOSw3IEBA
IHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3Jp
ZW50YXRpb24pCiAgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNhbXBsZTo6Vmlk
ZW9Sb3RhdGlvbjo6VXBzaWRlRG93bjsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0wuY3BwCmluZGV4IDA3MzNmM2MxNzg2ZTFjNTcwYmM5ZTNhNGY0ZDFi
OGU3MjdkMTdjNjYuLmZmMTMzOTdlNjQ0MTkxZTQwMTM3OWY1Yzg4YTA0NjYxZjcxMTcwOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcApAQCAtMjYwLDE4ICsyNjAsMTggQEAgdm9pZCBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJJZGVudGlmaWUKICAgICBVTlVTRURfVkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAg
ICAgQVNTRVJUX1VOVVNFRCh0YXJnZXQsIHRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVY
VFVSRV8yRCk7CiAKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXI7
Ci0gICAgYXV0byBnZXRQaXhlbEJ1ZmZlciA9IFsmXSB7CisgICAgc3RkOjpvcHRpb25hbDxNZWRp
YVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJhbWU7CisgICAgYXV0byBnZXRWaWRlb0ZyYW1lID0g
WyZdIHsKICAgICAgICAgaWYgKCFtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKGF1dG8gbWVkaWFQbGF5ZXIgPSBtX2dwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MtPnJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkubWVkaWFQ
bGF5ZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKSkKLSAgICAgICAgICAgIHBpeGVsQnVmZmVyID0g
bWVkaWFQbGF5ZXItPnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKKyAgICAgICAgICAgIHZp
ZGVvRnJhbWUgPSBtZWRpYVBsYXllci0+dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAg
fTsKIAotICAgIGNhbGxPbk1haW5SdW5Mb29wQW5kV2FpdChXVEZNb3ZlKGdldFBpeGVsQnVmZmVy
KSk7CisgICAgY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KFdURk1vdmUoZ2V0VmlkZW9GcmFtZSkp
OwogCi0gICAgaWYgKCFwaXhlbEJ1ZmZlcikgeworICAgIGlmICghdmlkZW9GcmFtZSkgewogICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0yODIsNyArMjgyLDcgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1
cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWUKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHRDVi0+Y29weVBpeGVsQnVm
ZmVyVG9UZXh0dXJlKHBpeGVsQnVmZmVyLmdldCgpLCB0ZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxG
b3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSkpOwor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHRDVi0+Y29weVZpZGVvRnJhbWVUb1RleHR1cmUo
KnZpZGVvRnJhbWUsIHRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBl
LCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKSk7CiAjZWxzZQogICAgIFVOVVNFRF9W
QVJJQUJMRShtZWRpYVBsYXllcklkZW50aWZpZXIpOwogICAgIFVOVVNFRF9WQVJJQUJMRSh0ZXh0
dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCA4ODEwOGNiYzUzM2MxMGM3NWUzNzBiZmNjODk4
MDBhNTNjNjcyOWFkLi4xZjAwMWE1NDgwNDFlOGU3ZGY4NmI2OGJiMjczZTQ0ODNiNzFjNTkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjppbnZhbGlkYXRlKCkKICAgICB9CiAgICAgbV9yZW5kZXJpbmdSZXNvdXJjZXNS
ZXF1ZXN0ID0geyB9OwogI2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgbV9waXhlbEJ1ZmZlckZv
ckN1cnJlbnRUaW1lID0gbnVsbHB0cjsKKyAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9
IHN0ZDo6bnVsbG9wdDsKICNlbmRpZgogfQogCkBAIC04NjgsNiArODY4LDIxIEBAIHZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6Y3VycmVudFRpbWVDaGFuZ2VkKGNvbnN0IE1lZGlhVGltZSYg
bWVkaWFUaW1lKQogICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Q3VycmVudFRpbWVDaGFuZ2VkKG1lZGlhVGltZSwgTW9u
b3RvbmljVGltZTo6bm93KCksICFtZWRpYVBsYXllclBhdXNlZE9yU3RhbGxlZCgpKSwgbV9pZCk7
CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpNZWRpYVBsYXllclZpZGVvRnJhbWU+JiYsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiByZXN1
bHQ7CisgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJhbWU7CisgICAgaWYgKG1fcGxheWVyKQor
ICAgICAgICB2aWRlb0ZyYW1lID0gbV9wbGF5ZXItPnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgp
OworICAgIGlmICghKG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID09IHZpZGVvRnJhbWUpKSB7
CisgICAgICAgIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID0gdmlkZW9GcmFtZTsKKyAgICAg
ICAgY2hhbmdlZCA9IHRydWU7CisgICAgICAgIHJlc3VsdCA9IFdURk1vdmUodmlkZW9GcmFtZSk7
CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSwgY2hhbmdlZCk7
Cit9CisKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dXBkYXRlQ2FjaGVkU3RhdGUoYm9v
bCBmb3JjZUN1cnJlbnRUaW1lVXBkYXRlKQogewogICAgIGlmICghbV9vYnNlcnZpbmdUaW1lQ2hh
bmdlcyB8fCBmb3JjZUN1cnJlbnRUaW1lVXBkYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggMzJmM2E0
NmFhMGYwOWIxM2IwMjRlNDE2NDA3OGE1ZGFkZGVkYzU0ZS4uZTEzOTQ2ZjdhN2MzMzFlNzAzZDM0
NmE1OTMwZDEwNGEzMDI3ZGYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0zMjAsOSArMzIwLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdURjo6TWFjaFNlbmRSaWdodD4mJiwgV2ViQ29yZTo6
RGVzdGluYXRpb25Db2xvclNwYWNlKT4mJik7CiAgICAgdm9pZCBjb2xvclNwYWNlKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlKT4mJik7CiAjZW5k
aWYKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIHZvaWQgcGl4ZWxCdWZmZXJGb3JDdXJyZW50
VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+PiYmKT4mJik7Ci0jZW5kaWYKKyAgICB2b2lkIHZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiYmLCBib29sKT4mJik7CiAKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9n
Z2VyKCkgZmluYWwgeyByZXR1cm4gbV9sb2dnZXI7IH0KQEAgLTM3OCw5ICszNzYsNyBAQCBwcml2
YXRlOgogICAgIFNjb3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgbV9yZW5kZXJpbmdSZXNv
dXJjZXNSZXF1ZXN0OwogCiAgICAgYm9vbCBtX29ic2VydmluZ1RpbWVDaGFuZ2VzIHsgZmFsc2Ug
fTsKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiBtX3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWU7Ci0jZW5kaWYKKyAgICBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWU7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dl
cjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCAzOWM4NzI5
YjI3MzllMTM2NDRiMzFhYTgwZGJhODBkNGEzMzBjOGFlLi5lNTM5YjQ5MmY2ZmMwNTU1NzQ0ZTkw
NTg0NjQzN2Q0ODhkNTM4NDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMTI2LDkgKzEyNiw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90
UmVmQ291bnRlZCB7CiAgICAgTmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIC0+IChzdGQ6Om9w
dGlvbmFsPE1hY2hTZW5kUmlnaHQ+IHNlbmRSaWdodCwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UpIFN5bmNocm9ub3VzCiAgICAgQ29sb3JTcGFjZSgpIC0+IChXZWJD
b3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSkgU3luY2hyb25vdXMKICNlbmRp
ZgotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgUGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlm
Q2hhbmdlZCgpIC0+IChzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPj4g
cGl4ZWxCdWZmZXIpIFN5bmNocm9ub3VzCi0jZW5kaWYKKyAgICBWaWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWVJZkNoYW5nZWQoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZp
ZGVvRnJhbWU+IHZpZGVvRnJhbWUsIGJvb2wgY2hhbmdlZCkgU3luY2hyb25vdXMKIAogICAgIFBs
YXlBdEhvc3RUaW1lKE1vbm90b25pY1RpbWUgdGltZSkKICAgICBQYXVzZUF0SG9zdFRpbWUoTW9u
b3RvbmljVGltZSB0aW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KaW5k
ZXggYzZiYmEzYWEyYjRlNTVmYWVmYjkzM2JiZTJlNjM1OWQ3M2Y2MzE5OC4uZmJlMTBiYzMwNWQy
ZDJlMTVhMjRhN2NlZTQ1MDdlYTE3NjczNzQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eUNvY29hLm1tCkBAIC0xMjcsMjEgKzEyNyw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6Y29sb3JTcGFjZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRlc3RpbmF0
CiAgICAgY29tcGxldGlvbkhhbmRsZXIobV9wbGF5ZXItPmNvbG9yU3BhY2UoKSk7CiB9CiAKLSNp
ZiBVU0UoQVZGT1VOREFUSU9OKQotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwaXhlbEJ1
ZmZlckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+PiBy
ZXN1bHQ7Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyOwotICAg
IGlmIChtX3BsYXllcikKLSAgICAgICAgcGl4ZWxCdWZmZXIgPSBtX3BsYXllci0+cGl4ZWxCdWZm
ZXJGb3JDdXJyZW50VGltZSgpOwotICAgIGlmIChtX3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUg
IT0gcGl4ZWxCdWZmZXIpIHsKLSAgICAgICAgcmVzdWx0ID0gcGl4ZWxCdWZmZXI7Ci0gICAgICAg
IG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSA9IFdURk1vdmUocGl4ZWxCdWZmZXIpOwotICAg
IH0KLSAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwotfQotI2VuZGlmCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCA5YTY0
Mjk0Mzc4NDJmNDNkYjZkYTFjMjUwMTFlZDRhNTQ0Y2JmMzYxLi5iNTM5MmUwNGQ5ZmY5NmRiZjEx
MDgxNGE4MGEwNGE2YjZlZjI4ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBA
IC0xMDAwLDEzICsxMDAwLDE4IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjb3B5
VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9Ci0jZWxpZiAhUExBVEZPUk0oQ09DT0Ep
Ci1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpw
aXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKKyNlbmRpZgorCitzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRl
b0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIGZhbHNlOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0Zy
YW1lPiByZXN1bHQ7CisgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7CisgICAgaWYgKCFjb25uZWN0
aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6VmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkOjpSZXBseShyZXN1bHQsIGNo
YW5nZWQpLCBtX2lkKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoY2hh
bmdlZCkKKyAgICAgICAgbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBXVEZNb3ZlKHJlc3Vs
dCk7CisgICAgcmV0dXJuIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwogfQotI2VuZGlmCiAK
ICNpZiAhUExBVEZPUk0oQ09DT0EpCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuaAppbmRleCBlYjMyNjI0MDRjNmY5MWQ4ZDI2N2EzODUxNjQ1MjI3YTA5MDM3OWU4Li5l
YTJhMDY2YjAwNjM5M2FkNmRlMjM1YTVhMDkyNmY5M2NlNjc2MTBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmgKQEAgLTI5Miw5ICsyOTIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRD
dXJyZW50RnJhbWVJbkNvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JikgZmluYWw7CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgYm9v
bCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdD
R0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7Ci0jZWxzZQotICAgIFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAj
ZW5kaWYKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5h
dGl2ZUltYWdlPiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgV2ViQ29y
ZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSBmaW5hbDsKIApAQCAtNDYxLDkg
KzQ2MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JLZXkgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV90aW1lSXNQcm9ncmVzc2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbmRl
cmluZ0NhbkJlQWNjZWxlcmF0ZWQgeyBmYWxzZSB9OwotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0g
ICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGlt
ZTsKLSNlbmRpZgorICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0Zy
YW1lPiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlckdhdGhlcmVkV2l0aFZp
ZGVvRnJhbWVNZXRhZGF0YTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGl4ZWxCdWZm
ZXJDb25mb3JtZXJDVj4gbV9waXhlbEJ1ZmZlckNvbmZvcm1lcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCmluZGV4IGMwYjc3NmRjNzczYjE3ZmE0MzBj
ZDU4OTY4YjAwN2IzMWJkNzZhOGQuLjQxZGJjN2E1M2I3MTc3NjJlNDVhMjA5ZTBmODQ3MGUxMTVm
MTEwMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29j
b2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5t
bQpAQCAtOTQsMTggKzk0LDYgQEAgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6Y29sb3JTcGFjZSgpCiAgICAgcmV0dXJuIGNvbG9yU3BhY2U7
CiB9CiAKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCi17
Ci0gICAgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHJlc3VsdDsK
LSAgICBpZiAoIWNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6UGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpLCBNZXNzYWdlczo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdl
ZDo6UmVwbHkocmVzdWx0KSwgbV9pZCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGlm
IChyZXN1bHQpCi0gICAgICAgIG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSA9IFdURk1vdmUo
KnJlc3VsdCk7Ci0gICAgcmV0dXJuIG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZTsKLX0KLSNl
bmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2U1YzMwZDBkNGVlMmEzNTVlMDY4OTA2
OTdkOTAyNDdhMGFkY2I0NC4uZDU5MjI1NTkyNzdlMjFhYzJlNDIxMDcxYWY1NjIyYjViMjNlOWI1
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAxLTE3ICBLaW1tbyBLaW5udW5lbiAgPGtr
aW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdlYkdMIEdQVSBidWZmZXIg
dGV4dHVyZSB1cGxvYWQgcGF0aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlhIGNhbWVyYSBzdHJlYW1z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUyMzMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NjAxNzYyPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVk
aWEtdG8tY2FudmFzLmh0bWw6CisgICAgICAgICogd2VicnRjL3JvdXRpbmVzLmpzOgorICAgICAg
ICBUZXN0IGNhbWVyYSBpbWFnZSByb3RhdGlvbnMgaW4gdGhlIHRlc3QuCisKIDIwMjItMDEtMTcg
IENoYW5nU2VvayBPaCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtHVEtdIElt
cGxlbWVudCBmb3JtIHZhbGlkYXRpb24gd2l0aCBndGszIHdpZGdldHMgaW4gdGhlIFVJIHByb2Nl
c3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlh
LXRvLWNhbnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dl
dFVzZXJNZWRpYS10by1jYW52YXMtZXhwZWN0ZWQudHh0CmluZGV4IDg2NTk0MDI2ZmU3OWIzMDAz
OWVkNzNlY2UyOWVkNmZjZTI4NzAxZTQuLmY3MzM0YmUyNjM0NjAzM2JmNmMzMWViMjVjOWNlMDU4
OTNlYTQ2YWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNl
ck1lZGlhLXRvLWNhbnZhcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMg
QEAKIAotUEFTUyBUZXN0aW5nIGdldFVzZXJNZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRleHRz
IHZpYSAyRENvbnRleHQKLVBBU1MgVGVzdGluZyBnZXRVc2VyTWVkaWEgc3RyZWFtIHRvIGNhbnZh
cyBjb250ZXh0cyB2aWEgSW1hZ2VCaXRtYXAgdG8gMkRDb250ZXh0Ci1QQVNTIFRlc3RpbmcgZ2V0
VXNlck1lZGlhIHN0cmVhbSB0byBjYW52YXMgY29udGV4dHMgdmlhIFdlYkdMIHRleHR1cmUKLVBB
U1MgVGVzdGluZyBnZXRVc2VyTWVkaWEgc3RyZWFtIHRvIGNhbnZhcyBjb250ZXh0cyB2aWEgSW1h
Z2VCaXRtYXAgdG8gV2ViR0wgdGV4dHVyZQorUEFTUyBUZXN0aW5nIGdldFVzZXJNZWRpYSBzdHJl
YW0gdG8gY2FudmFzIGNvbnRleHRzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLmh0bWwKaW5kZXggZDI4M2Y0OGY3Y2Yz
MTRkMzE0OWEzMmUzZjg5MDM5Zjc0Nzg0ZmRhYS4uN2FhNmJlMzlkOWU2ZTBlOGMyMzRkYzFkOWMy
NmJlZWYxYmIyMjM1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9n
ZXRVc2VyTWVkaWEtdG8tY2FudmFzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLmh0bWwKQEAgLTksNyArOSw4IEBACiAgICAgICAg
IDxzY3JpcHQgc3JjPSIuLi9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMu
anMiPjwvc2NyaXB0PgogCiAgICAgICAgIDxzdHlsZSB0eXBlPXRleHQvY3NzPgotICAgICAgICAg
ICAgY2FudmFzIHsgd2lkdGg6IDYwMHB4IH0KKyAgICAgICAgICAgIGNhbnZhcyB7IHdpZHRoOiA2
MHB4IH0KKyAgICAgICAgICAgIHZpZGVvIHsgd2lkdGg6IDYwcHggfQogICAgICAgICA8L3N0eWxl
PgogICAgIDwvaGVhZD4KICAgICA8Ym9keT4KQEAgLTM2LDEyICszNywxOCBAQCBmdW5jdGlvbiBj
cmVhdGVWZXJpZnlDYW52YXModmlkZW8pIHsKICAgICByZXR1cm4gY2FudmFzOwogfQogCi1mdW5j
dGlvbiBjcmVhdGVWZXJpZnlXZWJHTENvbnRleHQoY2FudmFzKSB7CitmdW5jdGlvbiBjcmVhdGVW
ZXJpZnlXZWJHTFN0YXRlKGNhbnZhcykgewogICAgIGxldCBnbCA9IHd0dS5jcmVhdGUzRENvbnRl
eHQoY2FudmFzLCB7IGRlcHRoOiBmYWxzZSwgc3RlbmNpbDogZmFsc2UsIGFudGlhbGlhczogZmFs
c2UgfSk7CiAgICAgZ2wudmlld3BvcnQoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0
KTsKICAgICBsZXQgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7CiAgICAgZ2wu
dW5pZm9ybTFpKGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4IiksIDApOwotICAg
IHJldHVybiBnbDsKKyAgICBsZXQgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICBn
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKKyAgICBnbC50ZXhQYXJhbWV0
ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Cisg
ICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIs
IGdsLk5FQVJFU1QpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOworICAgIHJl
dHVybiBbZ2wsIHRleHR1cmVdOwogfQogCiBmdW5jdGlvbiBnZXRGcmFtZWJ1ZmZlckFzSW1hZ2VE
YXRhKGdsKcKgewpAQCAtNTUsNzkgKzYyLDkzIEBAIGZ1bmN0aW9uIGdldEZyYW1lYnVmZmVyQXNJ
bWFnZURhdGEoZ2wpwqB7CiAgICAgcmV0dXJuIGltYWdlRGF0YTsKIH0KIAotcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4gewotICAgIGxldCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7
Ci0gICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7Ci0gICAgbGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlm
eUNhbnZhcyh2aWRlbyk7Ci0gICAgZGVidWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7Ci0KK2Z1bmN0
aW9uIHdpdGgyRENvbnRleHREcmF3SW1hZ2UodmlkZW8sIGNhbnZhcykgewogICAgIGxldCBjdHgg
PSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKICAgICBjdHguZHJhd0ltYWdlKHZpZGVvLCAwLCAw
LCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwotICAgIGFzc2VydEltYWdlRGF0YUNvbnRh
aW5zTW9ja0NhbWVyYUltYWdlKGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgY2FudmFzLndpZHRoLCBj
YW52YXMuaGVpZ2h0KSk7Ci0gICAgZGVidWdlLnJlbW92ZUNoaWxkKGNhbnZhcyk7Ci0gICAgZGVi
dWdlLnJlbW92ZUNoaWxkKHZpZGVvKTsKLQotfSwgZG9jdW1lbnQudGl0bGUgKyAiIHZpYSAyRENv
bnRleHQiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGxldCB2aWRlbyA9IGF3
YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7Ci0gICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7Ci0gICAg
bGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbyk7Ci0gICAgZGVidWdlLmFwcGVu
ZENoaWxkKGNhbnZhcyk7CisgICAgcmV0dXJuIGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgY2FudmFz
LndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKK30KIAorYXN5bmMgZnVuY3Rpb24gd2l0aDJEQ29udGV4
dERyYXdJbWFnZUltYWdlQml0bWFwKHZpZGVvLCBjYW52YXMpIHsKICAgICBsZXQgY3R4ID0gY2Fu
dmFzLmdldENvbnRleHQoIjJkIik7CiAgICAgbGV0IGltYWdlQml0bWFwID0gYXdhaXQgY3JlYXRl
SW1hZ2VCaXRtYXAodmlkZW8pOwogICAgIGN0eC5kcmF3SW1hZ2UoaW1hZ2VCaXRtYXAsIDAsIDAs
IGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Ci0gICAgYXNzZXJ0SW1hZ2VEYXRhQ29udGFp
bnNNb2NrQ2FtZXJhSW1hZ2UoY3R4LmdldEltYWdlRGF0YSgwLCAwLCBjYW52YXMud2lkdGgsIGNh
bnZhcy5oZWlnaHQpKTsKLSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQoY2FudmFzKTsKLSAgICBkZWJ1
Z2UucmVtb3ZlQ2hpbGQodmlkZW8pOwotfSwgZG9jdW1lbnQudGl0bGUgKyAiIHZpYSBJbWFnZUJp
dG1hcCB0byAyRENvbnRleHQiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGxl
dCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7Ci0gICAgZGVidWdlLmFwcGVuZCh2
aWRlbyk7Ci0gICAgbGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbyk7Ci0gICAg
ZGVidWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7CisgICAgcmV0dXJuIGN0eC5nZXRJbWFnZURhdGEo
MCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKK30KIAotICAgIGxldCBnbCA9IGNy
ZWF0ZVZlcmlmeVdlYkdMQ29udGV4dChjYW52YXMpOwotICAgIGxldCB0ZXh0dXJlID0gZ2wuY3Jl
YXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUp
OwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklM
VEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShn
bC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xB
TVBfVE9fRURHRSk7CitmdW5jdGlvbiB3aXRoV2ViR0xUZXhJbWFnZSh2aWRlbywgY2FudmFzKSB7
CisgICAgbGV0IFtnbCwgdGV4dHVyZV0gPSBjcmVhdGVWZXJpZnlXZWJHTFN0YXRlKGNhbnZhcyk7
CiAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCB2aWRlbyk7CiAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGds
LCBbMCwgMCwgMCwgMjU1XSk7CisgICAgcmV0dXJuIGdldEZyYW1lYnVmZmVyQXNJbWFnZURhdGEo
Z2wpOworfQogCi0gICAgbGV0IGltYWdlRGF0YSA9IGdldEZyYW1lYnVmZmVyQXNJbWFnZURhdGEo
Z2wpOwotICAgIGFzc2VydEltYWdlRGF0YUNvbnRhaW5zTW9ja0NhbWVyYUltYWdlKGltYWdlRGF0
YSk7Ci0gICAgZGVidWdlLnJlbW92ZUNoaWxkKGNhbnZhcyk7Ci0gICAgZGVidWdlLnJlbW92ZUNo
aWxkKHZpZGVvKTsKLX0sIGRvY3VtZW50LnRpdGxlICsgIiB2aWEgV2ViR0wgdGV4dHVyZSIpOwot
Ci1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgbGV0IHZpZGVvID0gYXdhaXQgY3JlYXRl
U291cmNlVmlkZW8oKTsKLSAgICBkZWJ1Z2UuYXBwZW5kKHZpZGVvKTsKLSAgICBsZXQgY2FudmFz
ID0gY3JlYXRlVmVyaWZ5Q2FudmFzKHZpZGVvKTsKLSAgICBkZWJ1Z2UuYXBwZW5kQ2hpbGQoY2Fu
dmFzKTsKK2Z1bmN0aW9uIHdpdGhXZWJHTFRleFN1YkltYWdlKHZpZGVvLCBjYW52YXMpIHsKKyAg
ICBsZXQgW2dsLCB0ZXh0dXJlXSA9IGNyZWF0ZVZlcmlmeVdlYkdMU3RhdGUoY2FudmFzKTsKKyAg
ICBsZXQgdyA9IHZpZGVvLnZpZGVvV2lkdGg7CisgICAgbGV0IGggPSB2aWRlby52aWRlb0hlaWdo
dDsKKyAgICBsZXQgcGl4ZWxzID0gbmV3IFVpbnQ4QXJyYXkodyAqIGggKiA0KTsKKyAgICBwaXhl
bHMuZmlsbCgwKTsKKyAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEs
IHcsIGgsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHBpeGVscyk7CisgICAgZ2wudGV4
U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCB2aWRlbyk7CisgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwg
MjU1XSk7CisgICAgcmV0dXJuIGdldEZyYW1lYnVmZmVyQXNJbWFnZURhdGEoZ2wpOworfQogCi0g
ICAgbGV0IGdsID0gY3JlYXRlVmVyaWZ5V2ViR0xDb250ZXh0KGNhbnZhcyk7Ci0gICAgbGV0IHRl
eHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Cithc3luYyBmdW5jdGlvbiB3aXRoV2ViR0xUZXhJ
bWFnZUltYWdlQml0bWFwKHZpZGVvLCBjYW52YXMpIHsKKyAgICBsZXQgW2dsLCB0ZXh0dXJlXSA9
IGNyZWF0ZVZlcmlmeVdlYkdMU3RhdGUoY2FudmFzKTsKICAgICBsZXQgaW1hZ2VCaXRtYXAgPSBh
d2FpdCBjcmVhdGVJbWFnZUJpdG1hcCh2aWRlbyk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFN
UF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltYWdlQml0bWFw
KTsKICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKKyAg
ICByZXR1cm4gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCk7Cit9CiAKLSAgICBsZXQgaW1h
Z2VEYXRhID0gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCk7Ci0gICAgYXNzZXJ0SW1hZ2VE
YXRhQ29udGFpbnNNb2NrQ2FtZXJhSW1hZ2UoaW1hZ2VEYXRhKTsKLSAgICBkZWJ1Z2UucmVtb3Zl
Q2hpbGQoY2FudmFzKTsKLSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQodmlkZW8pOwotfSwgZG9jdW1l
bnQudGl0bGUgKyAiIHZpYSBJbWFnZUJpdG1hcCB0byBXZWJHTCB0ZXh0dXJlIik7Citjb25zdCBm
dW5jcyA9IFt3aXRoMkRDb250ZXh0RHJhd0ltYWdlLCB3aXRoMkRDb250ZXh0RHJhd0ltYWdlSW1h
Z2VCaXRtYXAsIHdpdGhXZWJHTFRleEltYWdlLCB3aXRoV2ViR0xUZXhTdWJJbWFnZSwgd2l0aFdl
YkdMVGV4SW1hZ2VJbWFnZUJpdG1hcF07Citjb25zdCBzdWJjYXNlcyA9IFtdOworLy8gRklYTUU6
IDI3MCBub3QgdGVzdGVkIGJlY2F1c2UgaXQncyBub3QgcGFzc2VkIHRvIHRoZSBtb2NrIGFzIC05
MC4gQ3VycmVudGx5IG5vdCBjaGFuZ2VkIHRvCisvLyBhdm9pZCByZWdyZXNzaW5nLgorZm9yIChs
ZXQgYW5nbGUgb2YgWzAsIDkwLCAxODBdKSB7CisgICAgZm9yIChsZXQgZnVuYyBvZiBmdW5jcykK
KyAgICAgICAgc3ViY2FzZXMucHVzaCh7IGFuZ2xlOiBhbmdsZSwgdGVzdDogZnVuYyB9KTsKK30K
IAorcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIHQuYWRkX2NsZWFudXAoYXN5bmMgKCkg
PT4gc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50YXRpb24oMCkpOworICAgIGxldCB2aWRlbyA9IGF3
YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7CisgICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7CisgICAg
bGV0IHJlYWxWaWRlb1NpemUgPSBbdmlkZW8udmlkZW9XaWR0aCwgdmlkZW8udmlkZW9IZWlnaHRd
OworCisgICAgZm9yIChsZXQgc3ViY2FzZSBvZiBzdWJjYXNlcykgeworICAgICAgICBsZXQgZGVz
YyA9IGBzdWJ0ZXN0IG5hbWU6ICR7c3ViY2FzZS50ZXN0Lm5hbWV9IGFuZ2xlOiR7c3ViY2FzZS5h
bmdsZX1gOworICAgICAgICBpZiAoc3ViY2FzZS5hbmdsZSA9PSAxODApIHsKKyAgICAgICAgICAg
IC8vIDAgLT4gMTgwIGNhbm5vdCBkZXRlY3Qgcm90YXRpb24gdmlhIHZpZGVvIHNpemUgY2hhbmdl
LiBHbyB2aWEgOTAuCisgICAgICAgICAgICBsZXQgW2FuZ2xlLCB2aWRlb1NpemVdID0gc2V0TW9j
a0NhbWVyYUltYWdlT3JpZW50YXRpb24oOTAsIHJlYWxWaWRlb1NpemUpOworICAgICAgICAgICAg
YXdhaXQgd2FpdEZvclZpZGVvU2l6ZSh2aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVbMV0p
OworICAgICAgICB9CisgICAgICAgIGxldCBbYW5nbGUsIHZpZGVvU2l6ZV0gPSBzZXRNb2NrQ2Ft
ZXJhSW1hZ2VPcmllbnRhdGlvbihzdWJjYXNlLmFuZ2xlLCByZWFsVmlkZW9TaXplKTsKKyAgICAg
ICAgYXdhaXQgd2FpdEZvclZpZGVvU2l6ZSh2aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVb
MV0pOworCisgICAgICAgIGxldCBjYW52YXMgPSBjcmVhdGVWZXJpZnlDYW52YXModmlkZW8pOwor
ICAgICAgICBkZWJ1Z2UuYXBwZW5kQ2hpbGQoY2FudmFzKTsKKyAgICAgICAgbGV0IGltYWdlRGF0
YSA9IGF3YWl0IHN1YmNhc2UudGVzdCh2aWRlbywgY2FudmFzKTsKKyAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICAgIGFzc2VydEltYWdlRGF0YUNvbnRhaW5zTW9ja0NhbWVyYUltYWdlKGltYWdlRGF0
YSwgYW5nbGUsIGRlc2MpOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAvLyBV
c2UgdGhpcyBmb3IgZGVidWdnaW5nOgorICAgICAgICAgICAgLy8gYXdhaXQgd2FpdEZvcigxMDAw
MDApOworICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfQorICAgICAgICBkZWJ1Z2UucmVt
b3ZlQ2hpbGQoY2FudmFzKTsKKyAgICAgICAgLy8gUmVzZXQgb3JpZW50YXRpb24gZm9yIHRoZSBu
ZXh0IHRlc3QgYnkgZ29pbmcgdG8gMC4KKyAgICAgICAgaWYgKHN1YmNhc2UuYW5nbGUgPT0gMTgw
KSB7CisgICAgICAgICAgICAvLyAxODAgLT4gMCBjYW5ub3QgZGV0ZWN0IHJvdGF0aW9uIHZpYSB2
aWRlbyBzaXplIGNoYW5nZS4gR28gdmlhIDkwLgorICAgICAgICAgICAgbGV0IFthbmdsZSwgdmlk
ZW9TaXplXSA9IHNldE1vY2tDYW1lcmFJbWFnZU9yaWVudGF0aW9uKDkwLCByZWFsVmlkZW9TaXpl
KTsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JWaWRlb1NpemUodmlkZW8sIHZpZGVvU2l6ZVsw
XSwgdmlkZW9TaXplWzFdKTsKKyAgICAgICAgfQorICAgICAgICBzZXRNb2NrQ2FtZXJhSW1hZ2VP
cmllbnRhdGlvbigwKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvclZpZGVvU2l6ZSh2aWRlbywgcmVh
bFZpZGVvU2l6ZVswXSwgcmVhbFZpZGVvU2l6ZVsxXSk7CisgICAgfQorICAgIGRlYnVnZS5yZW1v
dmVDaGlsZCh2aWRlbyk7Cit9LCBkb2N1bWVudC50aXRsZSk7CiAgICAgICAgIDwvc2NyaXB0Pgog
ICAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0
aW5lcy5qcyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcwppbmRleCBmODM3YWEwMGQ3
YWUzNzhiNDU1YzhjY2E0NDk4MTk1MGJhMDVlMDlhLi40NzhhMTAxMzE3ZGUxMjA4YzJlMzVjMzQw
ZWIxNGU3ZTJkZWUyMDIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMu
anMKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVzLmpzCkBAIC0yNTMsNyArMjUzLDcg
QEAgYXN5bmMgZnVuY3Rpb24gY29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0sIHZpZGVvKQogewogICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAgIGludGVybmFscy5vYnNlcnZlTWVkaWFT
dHJlYW1UcmFjayhzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSk7Ci0gICAgICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgICAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkp
OwogICAgICAgICByZXR1cm4gaW50ZXJuYWxzLnRyYWNrVmlkZW9TYW1wbGVDb3VudDsKICAgICB9
CiAKQEAgLTI3Myw3ICsyNzMsNyBAQCBhc3luYyBmdW5jdGlvbiBjb21wdXRlRnJhbWVSYXRlKHN0
cmVhbSwgdmlkZW8pCiAgICAgYXdhaXQgdmlkZW8ucGxheSgpOwogCiAgICAgY29uc3Qgc3RhdHMx
ID0gYXdhaXQgZ2V0UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24pOwotICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgIGF3
YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7CiAg
ICAgY29uc3Qgc3RhdHMyID0gYXdhaXQgZ2V0UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24p
OwogICAgIHJldHVybiAoc3RhdHMyLmZyYW1lc1JlY2VpdmVkIC0gc3RhdHMxLmZyYW1lc1JlY2Vp
dmVkKSAqIDEwMDAgLyAoc3RhdHMyLnRpbWVzdGFtcCAtIHN0YXRzMS50aW1lc3RhbXApOwogfQpA
QCAtMjk4LDYgKzI5OCwyMCBAQCBmdW5jdGlvbiBzZXRIMjY0SGlnaENvZGVjKHNkcCkKICAgICB9
KS5qb2luKCdcclxuJyk7CiB9CiAKKy8vIFNldHMgdGhlIGNhbWVyYSBpbWFnZSBvcmllbnRhdGlv
biBpZiBydW5uaW5nIG9uIHRlc3QgcnVubmVyLgorLy8gYW5nbGU6IG9yaWVudGF0aW9uIGFuZ2xl
IG9mIHRoZSBjYW1lcmEgaW1hZ2UgaW4gZGVncmVlcworZnVuY3Rpb24gc2V0TW9ja0NhbWVyYUlt
YWdlT3JpZW50YXRpb24oYW5nbGUsIHZpZGVvU2l6ZSkgeworICAgIGlmIChbMCwgOTAsIDE4MCwg
MjcwXS5pbmRleE9mKGFuZ2xlKSA9PSAtMSkKKyAgICAgICAgdGhyb3cgImludmFsaWQgYW5nbGUi
OworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldE1v
Y2tDYW1lcmFPcmllbnRhdGlvbihhbmdsZSk7CisgICAgICAgIGlmICh2aWRlb1NpemUgJiYgKGFu
Z2xlID09IDkwIHx8IGFuZ2xlID09IDI3MCkpCisgICAgICAgICAgICB2aWRlb1NpemUgPSBbdmlk
ZW9TaXplWzFdLCB2aWRlb1NpemVbMF1dOworICAgICAgICByZXR1cm4gW2FuZ2xlLCB2aWRlb1Np
emVdOworICAgIH0KKyAgICByZXR1cm4gWzAsIHZpZGVvU2l6ZV07Cit9CisKIC8vIFJldHVybnMg
VWludDhBcnJheVs0XSBvZiBSR0JBIGNvbG9yLgogLy8gcDogW3gsIHldIG9mIDAuLjEgcmFuZ2Uu
CiBmdW5jdGlvbiBnZXRJbWFnZURhdGFQaXhlbChpbWFnZURhdGEsIHApCkBAIC0zMTEsMTYgKzMy
NSwzMyBAQCBmdW5jdGlvbiBnZXRJbWFnZURhdGFQaXhlbChpbWFnZURhdGEsIHApCiAvLyBBc3Nl
cnRzIHRoYXQgSW1hZ2VEYXRhIGluc3RhbmNlIGNvbnRhaW5zIG1vY2sgY2FtZXJhIGltYWdlIHJl
bmRlcmVkIGJ5IE1pbmlCcm93c2VyIGFuZCBXZWJLaXRUZXN0UnVubmVyLgogLy8gT2J0YWluIGZ1
bGwgY2FtZXJhIGltYWdlIG9mIHNpemUgYHdpZHRoYDoKIC8vICBhd2FpdCBuYXZpZ2F0b3IubWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiB7IGV4YWN0OiB3aWR0aCB9
IH0gfSk7Ci1mdW5jdGlvbiBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShp
bWFnZURhdGEpCitmdW5jdGlvbiBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFn
ZShpbWFnZURhdGEsIGFuZ2xlLCBkZXNjKQogeworICAgIGFuZ2xlID0gYW5nbGUgfHwgMDsKKyAg
ICBkZXNjID0gZGVzYyB8fCAiIjsKKworICAgIGZ1bmN0aW9uIHJvdGF0ZVBvaW50KHApIHsKKyAg
ICAgICAgbGV0IGEgPSBhbmdsZTsKKyAgICAgICAgbGV0IG4gPSBbIHBbMF0sIHBbMV0gXTsKKyAg
ICAgICAgd2hpbGUgKGEgPiAwKSB7CisgICAgICAgICAgICBuID0gWyAxLjAgLSBuWzFdLCBuWzBd
IF07CisgICAgICAgICAgICBhIC09IDkwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuOwor
ICAgIH0KKwogICAgIGNvbnN0IHdoaXRlID0gWyAyNTUsIDI1NSwgMjU1LCAyNTUgXTsKKyAgICBj
b25zdCB3aGl0ZVBvaW50ID0gcm90YXRlUG9pbnQoWyAwLjA0LCAwLjcgXSk7CiAgICAgY29uc3Qg
eWVsbG93ID0gWyAyNTUsIDI1NSwgMCwgMjU1IF07CisgICAgY29uc3QgeWVsbG93UG9pbnQgPSBy
b3RhdGVQb2ludChbIDAuMDgsIDAuNyBdKTsKICAgICBjb25zdCBjeWFuID0gWyAwLCAyNTUsIDI1
NSwgMjU1IF07CisgICAgY29uc3QgY3lhblBvaW50ID0gcm90YXRlUG9pbnQoWyAwLjEyLCAwLjcg
XSk7CiAgICAgY29uc3QgbGlnaHRHcmVlbiA9IFsgMCwgMTI4LCAwLCAyNTUgXTsKKyAgICBjb25z
dCBsaWdodEdyZWVuUG9pbnQgPSByb3RhdGVQb2ludChbIDAuMTYsIDAuNyBdKTsKIAogICAgIGxl
dCBlcnIgPSAzOwotICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBp
eGVsKGltYWdlRGF0YSwgWyAwLjA0LCAwLjcgXSksIHdoaXRlLCBlcnIsICJ3aGl0ZSByZWN0IG5v
dCBmb3VuZCIpOwotICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBp
eGVsKGltYWdlRGF0YSwgWyAwLjA4LCAwLjcgXSksIHllbGxvdywgZXJyLCAieWVsbG93IHJlY3Qg
bm90IGZvdW5kIik7Ci0gICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRh
UGl4ZWwoaW1hZ2VEYXRhLCBbIDAuMTIsIDAuNyBdKSwgY3lhbiwgZXJyLCAiY3lhbiByZWN0IG5v
dCBmb3VuZCIpOwotICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBp
eGVsKGltYWdlRGF0YSwgWyAwLjE2LCAwLjcgXSksIGxpZ2h0R3JlZW4sIGVyciwgImxpZ2h0IGdy
ZWVuIHJlY3Qgbm90IGZvdW5kIik7CisgICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0
SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCB3aGl0ZVBvaW50KSwgd2hpdGUsIGVyciwgIndoaXRl
IHJlY3Qgbm90IGZvdW5kICIgKyBkZXNjKTsKKyAgICBhc3NlcnRfYXJyYXlfYXBwcm94X2VxdWFs
cyhnZXRJbWFnZURhdGFQaXhlbChpbWFnZURhdGEsIHllbGxvd1BvaW50KSwgeWVsbG93LCBlcnIs
ICJ5ZWxsb3cgcmVjdCBub3QgZm91bmQiICsgZGVzYyk7CisgICAgYXNzZXJ0X2FycmF5X2FwcHJv
eF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCBjeWFuUG9pbnQpLCBjeWFuLCBl
cnIsICJjeWFuIHJlY3Qgbm90IGZvdW5kICIgKyBkZXNjKTsKKyAgICBhc3NlcnRfYXJyYXlfYXBw
cm94X2VxdWFscyhnZXRJbWFnZURhdGFQaXhlbChpbWFnZURhdGEsIGxpZ2h0R3JlZW5Qb2ludCks
IGxpZ2h0R3JlZW4sIGVyciwgImxpZ2h0IGdyZWVuIHJlY3Qgbm90IGZvdW5kICIgKyBkZXNjKTsK
IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449468</attachid>
            <date>2022-01-18 23:39:34 -0800</date>
            <delta_ts>2022-01-19 02:58:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235233-20220119093930.patch</filename>
            <type>text/plain</type>
            <size>76630</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAwODliMmFlOGM0YTE0
ZGNmNGYwYTFlZjc4ZTE5ZjQ4ZmNiMjU0NC4uNmE4ODk1ZTdlNDBiMWVlMjlkZDRkMTE1NTRkZjhj
MGU2ODYxN2YwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIyLTAxLTE3ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdl
YkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlh
IGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NjAxNzYyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgZnVsbCB0ZXh0
dXJlIHVwbG9hZHMgZnJvbSBNZWRpYVN0cmVhbSBjYW1lcmEgY2FwdHVyZXMgdXNlIENWUGl4ZWxC
dWZmZXJzCisgICAgICAgIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcGl4ZWxzIGJhY2suCisgICAg
ICAgIEltcGxlbWVudCBNZWRpYVBsYXllckludGVyZmFjZTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50
VGltZSgpIGZvcgorICAgICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
CisgICAgICAgIFJlbmFtZSBmdW5jdGlvbnMgZnJvbSBwaXhlbEJ1ZmZlci4uLiB0byB2aWRlb0Zy
YW1lLgorICAgICAgICBVc2UgbmV3IHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGluc3RlYWQg
b2YgQ1ZQaXhlbEJ1ZmZlci4KKyAgICAgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGNvbnRhaW5z
IGFsc28gdGhlIGZyYW1lIG9yaWVudGF0aW9uLiBUaGUKKyAgICAgICAgb3JpZW50YXRpb24gaXMg
bmVlZGVkIGFzIHRoZSBjYW1lcmEgbWlnaHQgY2FwdHVyZSB0aGUgaW1hZ2UKKyAgICAgICAgd2l0
aCBhIHJvdGF0aW9uIG9yIGEgZmxpcC4KKworICAgICAgICBUbyBhdm9pZCBpZmRlZnMsIHRoZSBu
ZXcgQVBJIHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSBleGlzdHMKKyAgICAgICAgZm9yIGFsbCBw
bGF0Zm9ybXMsIGJ1dCBpcyBjdXJyZW50bHkgY2FsbGVkIG9ubHkgYnkgQ29jb2EuCisgICAgICAg
IEFsc28gdGhlIHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGV4aXN0cyBmb3IgYWxsIHBsYXRm
b3JtcworICAgICAgICBidXQgaGFzIHRoZSBmcmFtZSBjb250ZW50cyBpbXBsZW1lbnRhdGlvbiBv
bmx5IGZvciBDb2NvYS4KKworICAgICAgICBUZXN0ZWQgYnkgZmFzdC9tZWRpYXN0cmVhbS9nZXRV
c2VyTWVkaWEtdG8tY2FudmFzLmh0bWwKKworICAgICAgICBDdXJyZW50bHkgdGhlICJtaXJyb3Jl
ZCIgcGFydCBpcyB0ZXN0ZWQgbWFudWFsbHksIFdlYktpdAorICAgICAgICBkb2VzIG5vdCByZXF1
ZXN0IG1pcnJvcmVkIGNhbWVyYSBpbWFnZSBzbyBpdCBpcyBkZWFkIGNvZGUuCisKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6
OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnZpZGVvRnJhbWVGb3JDdXJyZW50
VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnBp
eGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyVmlkZW9GcmFtZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyVmlkZW9GcmFtZTo6b3JpZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpwaXhlbEJ1ZmZlciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU6Om9wZXJhdG9yPT0gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpkZWNvZGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclZpZGVvRnJhbWVBVkYu
bW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBo
aWNzQ29udGV4dEdMQ1YuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFt
ZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwaXhlbEJ1
ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OnZpZGVvT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZy
b21NZWRpYSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0
R0xDVi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdM
Q1ZDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6
OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2E6OmNvcHlWaWRlb0ZyYW1lVG9UZXh0dXJlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuaDoKKwogMjAyMi0wMS0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZXNldCBz
aG91bGQgaG9wIHRvIHRoZSBtYWluIHRocmVhZCBiZWZvcmUgY2FsbGluZyBpdHMgb2JzZXJ2ZXJz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDc5MzU1YjkzOTU2ZTAzNDU0YzE2NmNhNWNkM2NmOTMzYTIxNWFiMjUuLjRk
NWZjMTQyMjViOTA5NDI3MmRhYmI4OGI3ODhjZmE2MDMzZGUzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzEgQEAKKzIwMjItMDEtMTcgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNv
bT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViR0wgR1BVIGJ1ZmZlciB0ZXh0dXJlIHVwbG9hZCBw
YXRoIGZvciBDb2NvYSBnZXRVc2VyTWVkaWEgY2FtZXJhIHN0cmVhbXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTIzMworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vODc2MDE3NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVuYW1lIGZ1bmN0aW9ucyBmcm9tIHBpeGVsQnVmZmVyLi4uIHRvIHZpZGVv
RnJhbWUuCisgICAgICAgIFNlbmQgbmV3IHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGluc3Rl
YWQgb2YgQ1ZQaXhlbEJ1ZmZlci4KKyAgICAgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGNvbnRh
aW5zIGFsc28gdGhlIGZyYW1lIG9yaWVudGF0aW9uLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hh
bmdlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSk6IERlbGV0ZWQuCisKIDIwMjItMDEtMTcgIENoYW5nU2VvayBPaCAgPGNoYW5n
c2Vva0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtHVEtdIEltcGxlbWVudCBmb3JtIHZhbGlkYXRp
b24gd2l0aCBndGszIHdpZGdldHMgaW4gdGhlIFVJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IDg4OTBmOGRiYTQ3NGMzOTJjMzczMjk4ZGE3NTgwZjcxOWNlNWMzZGUuLjc4ZTdiYzkxMjY3
MjYyNTk1NDgxYTkyODUyNGU5ODBmYmE1NDM4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTUx
MSw2ICsxNTExLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyRW51bXMuaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVySWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclZpZGVvRnJh
bWUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZS5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVVzYWdlSW5mby5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAyYzNi
NGY4MWE1MmY1NjY5OWNiZmQ0MTJkZmFjMDk0MzY2NmFlYWU3Li5kZDFlZDhhZTYyZjJhNGIyZTYz
ZDFlZDE5MzUxNTk4ZmVlMGRiY2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTI5Niw2
ICsyOTYsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAorcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbQogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYjA4MWI2YTE5ZDNkZDVmYjY3ZmIxNmU3YmZhOWM3NTg2ZmY5ZjFhZC4uMjkyYjVjMTFj
Njg3NGU5MjBiZjI1MTlhNTY3YzA3OGJmZjAxNTk3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQwLDYgKzI0MCw3IEBACiAJ
CTA4MUVCRjNCMEZEMzRGNDEwMERBNzU1OSAvKiBTVkdGaWx0ZXJCdWlsZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODFFQkYzOTBGRDM0RjQxMDBE
QTc1NTkgLyogU1ZHRmlsdGVyQnVpbGRlci5oICovOyB9OwogCQkwODNEQUVBNzBGMDFBN0ZCMDAz
NDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4M0RBRUEzMEYwMUE3RkIwMDM0Mjc1NCAvKiBS
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oICovOyB9OwogCQkwODNEQUVBOTBGMDFBN0ZCMDAz
NDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODNEQUVBNTBGMDFBN0ZCMDAzNDI3NTQgLyog
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggKi87IH07CisJCTA4NDRCMDFEMTI1NUI0RTYw
MEI5Q0REMCAvKiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODQ0QjAxRDEyNTVFNEU2MDBCOUNERDAgLyog
U1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5oICovOyB9OwogCQkwODQ1NjgwODEyQjkwREE2MDA5
NjBBOUYgLyogRm9udE1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA4NDU2ODA3MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA4NTRCMDE1
MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDAzMTI1NUU0RTYwMEI5Q0REMCAvKiBS
ZW5kZXJTVkdJbmxpbmUuaCAqLzsgfTsKIAkJMDg1NEIwMTcxMjU1RTRFNjAwQjlDREQwIC8qIFJl
bmRlclNWR0lubGluZVRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA4NTRCMDA1MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmVUZXh0
LmggKi87IH07CkBAIC0yMzkxLDYgKzIzOTIsNyBAQAogCQk3QUY5QjIwRjE4Q0ZCNUY0MDBDNjRC
RUYgLyogSlNWVFRSZWdpb25MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QUY5QjIwQjE4Q0ZCNUYzMDBDNjRCRUYgLyogSlNWVFRSZWdpb25MaXN0
LmggKi87IH07CiAJCTdCMTAzMzlFMjU0OTcyMTcwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRH
TENWLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEw
MzM5RDI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCMTAzMzlGMjU0OTcyMUUw
MEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBH
cmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk3QjQ0MTBFMTI3OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFQbGF5
ZXJWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I2MDk0
REQyNzBDNDRCRDAwNjQ4MzVDIC8qIEFOR0xFVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkIzNEExNjI1MzQ1Q0IyMDAwMjlEMDggLyog
QU5HTEVVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QjZEQzgxOTI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJ
T1N1cmZhY2VTd2FwQ2hhaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCNkRDODE3MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElP
U3VyZmFjZVN3YXBDaGFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTdCNzIwQjBDMjc0M0RCQTcwMDA4QUJFRCAvKiBHcmFwaGljc0xheWVyQ29u
dGVudHNEaXNwbGF5RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdCNzIwQjBBMjc0M0RCQTYwMDA4QUJFRCAvKiBHcmFwaGljc0xheWVyQ29u
dGVudHNEaXNwbGF5RGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtNDYzNiw4ICs0NjM4LDggQEAKIAkJQ0RGNzQ3RjEyNzBGNzY2RjAw
OEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RjAyNzBGNzY2RjAwOEZFRUVD
IC8qIFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oICovOyB9OwogCQlDREY3NDdGMzI3
MEY3NkNGMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0N0Yy
MjcwRjc2Q0YwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5l
cy5oICovOyB9OwogCQlDREY3NDdGNTI3MEY4M0IxMDA4RkVFRUMgLyogUmVuZGVyU1ZHR3JhZGll
bnRTdG9wSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RGNzQ3RjQyNzBGODNCMTAwOEZFRUVDIC8qIFJlbmRlclNWR0dyYWRpZW50U3RvcElu
bGluZXMuaCAqLzsgfTsKLQkJQ0RGNzQ3RjcyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRl
clNWR1NoYXBlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RGNzQ3RjYyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRlclNWR1NoYXBl
SW5saW5lcy5oICovOyB9OwogCQlDREY3NDdGNzI3MEY4M0I0MTA3REVFRUMgLyogUmVuZGVyU1ZH
U2hhcGVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREY3NDdGNjI3MEY4M0I0MTA3REVFRUMgLyogUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmgg
Ki87IH07CisJCUNERjc0N0Y3MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFw
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERjc0N0Y2MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMu
aCAqLzsgfTsKIAkJQ0RGNzQ3RjkyNzBGODdDQjAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNl
UmFkaWFsR3JhZGllbnRJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREY3NDdGODI3MEY4N0NCMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3Vy
Y2VSYWRpYWxHcmFkaWVudElubGluZXMuaCAqLzsgfTsKIAkJQ0RGNzQ3RkIyNzBGODkxQTAwOEZF
RUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTWFza2VySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RkEyNzBGODkxQTAwOEZFRUVDIC8q
IFJlbmRlclNWR1Jlc291cmNlTWFza2VySW5saW5lcy5oICovOyB9OwogCQlDREY3NDgzRjE4RkVC
Q0VDMDAwNkVDQzAgLyogR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDgzRDE4RkVCQ0VDMDAwNkVDQzAgLyog
R3JpZFBvc2l0aW9uc1Jlc29sdmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTYxOTgsMTAgKzYyMDAsMTIgQEAKIAkJMDgxQUE4RDkxMTExMjM3
RTAwMkFCMDZFIC8qIFNWR0VsZW1lbnRSYXJlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdFbGVtZW50UmFyZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDgxRUJGMzgwRkQzNEY0MTAwREE3NTU5IC8qIFNWR0ZpbHRlckJ1aWxkZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRmlsdGVyQnVpbGRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4MUVCRjM5MEZEMzRGNDEwMERBNzU1OSAv
KiBTVkdGaWx0ZXJCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R0ZpbHRlckJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDgzNEIwMEMx
MjQ0RTRFNjAwQjlDREQwIC8qIFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4M0RBRUEyMEYwMUE3RkIwMDM0Mjc1
NCAvKiBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4M0RBRUEzMEYwMUE3RkIwMDM0Mjc1NCAvKiBSZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwODNEQUVBNDBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4M0RBRUE1
MEYwMUE3RkIwMDM0Mjc1NCAvKiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4NDRCMDFEMTI1NUU0RTYwMEI5Q0REMCAv
KiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDg0NTY4MDcxMkI5MERBNjAwOTYwQTlGIC8qIEZvbnRNZXRyaWNzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRNZXRyaWNzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA4NTRCMDAyMTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxp
bmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHSW5s
aW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg1NEIwMDMxMjU1RTRFNjAw
QjlDREQwIC8qIFJlbmRlclNWR0lubGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJTVkdJbmxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEx
NDY5LDYgKzExNDczLDggQEAKIAkJN0IxMDMzOUMyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNz
Q29udGV4dEdMQ1ZDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxMDMzOUQyNTQ5NzIwMTAwQzhD
MUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjE2MTkxMDI3MTk4ODBF
MDBDNDBFQUMgLyogV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I0NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlh
UGxheWVyVmlkZW9GcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRp
YVBsYXllclZpZGVvRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I0NDEw
RTIyNzk1OEZERTAwMEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE1lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTUyNTcxMkU5MTAwMzgwQzcwIC8qIEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBo
aWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNzIwQjBBMjc0M0RCQTYwMDA4QUJFRCAvKiBHcmFwaGlj
c0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzQwNyw5ICsxMzQxMyw5IEBACiAJCUExMEJCNTgzMTQ4
NEUzQTcwMEIyRTg3QSAvKiBMZWdhY3lSZW5kZXJTVkdSZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1JlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEwQkI1ODMxNDg0RTNBNzAwQjNBQjZEIC8qIFJlbmRlclNWR1JlY3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHUmVjdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBCQjU4ODE0ODRFM0IzMDBCMkU4N0EgLyogTGVnYWN5
UmVuZGVyU1ZHU2hhcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TGVnYWN5UmVuZGVyU1ZHU2hhcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
MTBDQzU4ODE0NzNFM0IzMDBCMkE4QkYgLyogUmVuZGVyU1ZHU2hhcGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMTBCQjU4OTE0ODRFM0IzMDBCMkU4N0EgLyogTGVnYWN5UmVu
ZGVyU1ZHU2hhcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UmVu
ZGVyU1ZHU2hhcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwQkI1ODkxNDg0
RTNCMzAwQzNGNzdCIC8qIFJlbmRlclNWR1NoYXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUExMENDNTg4MTQ3M0UzQjMwMEIyQThCRiAvKiBSZW5kZXJTVkdTaGFwZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdTaGFwZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEQ2RTk0MjE0NEM5OTgwMEZERDE0RCAvKiBKU1BheW1l
bnRSZXNwb25zZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BheW1lbnRSZXNwb25z
ZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMERCRjQ2MThGOTIz
MTcwMDBENzBDNiAvKiBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwREM3NjgxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3Jp
ZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVHcmlk
RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjMxMSw4ICsxNjMxNyw4
IEBACiAJCUNERjc0N0YwMjcwRjc2NkYwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtl
cklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXJJbmxpbmVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjc0N0YyMjcwRjc2Q0YwMDhGRUVF
QyAvKiBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5lcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGNDI3MEY4M0IxMDA4RkVFRUMgLyogUmVuZGVyU1ZH
R3JhZGllbnRTdG9wSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdHcmFkaWVudFN0
b3BJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNERjc0N0Y2MjcwRjg2
QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNERjc0N0Y2MjcwRjgzQjQxMDdERUVFQyAvKiBSZW5kZXJTVkdTaGFwZUlubGluZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNERjc0N0Y2MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJT
VkdTaGFwZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjc0N0Y4MjcwRjg3Q0IwMDhG
RUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50SW5saW5lcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50SW5saW5lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGQTI3MEY4OTFBMDA4RkVFRUMgLyogUmVuZGVy
U1ZHUmVzb3VyY2VNYXNrZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1Jlc291
cmNlTWFza2VySW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDgz
QzE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODcwMyw2ICsxODcwOSw3IEBACiAJCQkJMDcx
RTQ5NkQxQUQ1QUEwRDAwOEE1MEI0IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbSAqLywK
IAkJCQkwNzZGMEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmNwcCAqLywKIAkJCQkwNzZGMEQwQTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggKi8sCisJCQkJN0I0NDEwRTIyNzk1OEZERTAwMEI0RjhB
IC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbSAqLywKIAkJCQlDREJFQUVBQjE5RDkyQjZD
MDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCAqLywKIAkJCQlDREJFQUVB
QTE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0gKi8sCiAJ
CQkJNDEwMjRGQzgyM0NGMjU0RjAwRkRGOThFIC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5j
cHAgKi8sCkBAIC0yODkyOCw2ICsyODkzNSw3IEBACiAJCQkJQ0Q1MjA5RTMxQjBCRDgzODAwNzcx
ODRFIC8qIE1lZGlhUGxheWVyRW51bXMuaCAqLywKIAkJCQlGNDI5MjYxNzI1MjY0RDQ0MDAwMDc4
OTggLyogTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmggKi8sCiAJCQkJMDc5RjVFNEIwRjNCRUJFQTAw
NUUwNzgyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZS5oICovLAorCQkJCTdCNDQxMERGMjc5NThGQzQw
MDBCNEY4QSAvKiBNZWRpYVBsYXllclZpZGVvRnJhbWUuaCAqLywKIAkJCQlDRDY0MUVCMTE4MThG
NUVEMDBFRTRDNDEgLyogTWVkaWFTb3VyY2VQcml2YXRlLmggKi8sCiAJCQkJQ0REQzFFNzkxOEE5
NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oICovLAogCQkJCTA3NjEx
REI4MjQzRkI3NUMwMEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oICovLApAQCAtMzYxMDYsNiAr
MzYxMTQsNyBAQAogCQkJCURGOUFGRDcyMTNGQzMxRDgwMDE1RkVCNyAvKiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM4QjVBMzE4MDQ2
MzQ3MDAxNkU2ODUgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNTA1MjRGNDFCNzEyRkY2MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjQ0MTBFMTI3
OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwNzdCQTU3NjI2MEZBREY2MDA3MkYxOUYgLyogTWVkaWFQb3NpdGlvblN0YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MkUyQ0FGQzE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlh
UXVlcnkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGMxMjgxYTQ0NmIxNTY1OTA5YjMxNDRhNzgyYzk5
NzhlZTkwODlmZTIuLjc3NDc2OGUyYzE5Mjc2MWY4MGE4NTZkYTkyZTJhZjZhODhkODdmYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
QEAgLTEwNjIsMTUgKzEwNjIsMTMgQEAgYm9vbCBNZWRpYVBsYXllcjo6Y29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiBjb250ZXh0LAogICAgIHJldHVy
biBtX3ByaXZhdGUtPmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShjb250ZXh0LCB0
ZXh0dXJlLCB0YXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVt
dWx0aXBseUFscGhhLCBmbGlwWSk7CiB9CiAKLSNlbHNlCisjZW5kaWYKIAotUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkK
K3N0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiBNZWRpYVBsYXllcjo6dmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5waXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lKCk7CiB9CiAKLSNlbmRpZgotCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxh
eWVyOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICByZXR1cm4gbV9wcml2YXRl
LT5uYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBjMTNkNzAzMmYyOGNjZDkwODcyYjA5Mjc2
ZDkzNzJhNDI2NTNhMjAxLi4yN2E2OTA3M2MzODA3NTQxNGJhNzIxMTA3Y2I1MGQwY2ZmNGZkODQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJFbnVtcy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVySWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luRGF0YS5oIgpAQCAtNDY3LDEwICs0NjgsOCBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIGN1cnJl
bnQgcmVzdHJpY3Rpb25zIHJlcXVpcmUgdGhhdCBmb3JtYXQgc2hvdWQgYmUgUkdCIG9yIFJHQkEs
IHR5cGUgc2hvdWxkIGJlIFVOU0lHTkVEX0JZVEUgYW5kIGxldmVsIHNob3VsZCBiZSAwLiBJdCBt
YXkgYmUgbGlmdGVkIGluIHRoZSBmdXR1cmUuCiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAg
Ym9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wq
LCBQbGF0Zm9ybUdMT2JqZWN0IHRleHR1cmUsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZl
bCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlw
ZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKTsKLSNlbHNlCi0gICAgUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKICNlbmRp
ZgotCisgICAgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZSgpOwogICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JD
dXJyZW50VGltZSgpOwogICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQ
cml2YXRlLmgKaW5kZXggNmU0NzdiY2FmOWM0ODU3YTAxNzcyNjU3MjJmODFiZjg0ZmJjMzBkZS4u
MDg1ZjhhYjM1ZDhmNWZkNWE4NjM5Y2Y0ODg0ZWRkMTZjMDUyOWU5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAg
LTI5LDggKzI5LDEwIEBACiAKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1l
ZGlhUGxheWVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyVmlkZW9GcmFtZS5o
IgogI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2Vz
LmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVy
Lmg+CiAKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKQEAgLTE3OCw5ICsxODAs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0
KEdyYXBoaWNzQ29udGV4dCYgYywgY29uc3QgRmxvYXRSZWN0JiByKSB7IHBhaW50KGMsIHIpOyB9
CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3Qs
IEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBi
b29sKSB7IHJldHVybiBmYWxzZTsgfQotI2Vsc2UKLSAgICB2aXJ0dWFsIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbnVsbHB0
cjsgfQogI2VuZGlmCisgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9G
cmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9
CiAgICAgdmlydHVhbCBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRp
bWUoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2UgY29sb3JTcGFjZSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclZpZGVvRnJhbWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTViYzk0
MjUwYzMzNmUwOTIwMjFlYmFiMmE0ZGRiYmU3MDVlYmZlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgKQEAg
LTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKyNpbmNsdWRlICJJbWFnZU9y
aWVudGF0aW9uLmgiCisKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KKwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsK
KyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhUGxheWVyVmlkZW9G
cmFtZSB7CitwdWJsaWM6CisgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lKCkgPSBkZWxldGU7Cisj
aWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVBsYXllclZpZGVv
RnJhbWUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYsIEltYWdlT3JpZW50YXRpb24pOwor
I2VuZGlmCisKKyAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9vcmllbnRhdGlvbjsgfQorCisjaWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9waXhlbEJ1ZmZlci5nZXQo
KTsgfQorI2VuZGlmCisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTWVkaWFQbGF5ZXJWaWRl
b0ZyYW1lJiBvdGhlcikgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiBkZWNvZGUoRGVj
b2RlciYpOworCitwcml2YXRlOgorI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXI7CisjZW5kaWYKKyAgICBJbWFnZU9yaWVu
dGF0aW9uIG1fb3JpZW50YXRpb247Cit9OworCitpbmxpbmUgYm9vbCBNZWRpYVBsYXllclZpZGVv
RnJhbWU6Om9wZXJhdG9yPT0oY29uc3QgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lJiBvdGhlcikgY29u
c3QKK3sKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIGlmIChtX3BpeGVsQnVmZmVyICE9IG90
aGVyLm1fcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIHJl
dHVybiBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbihvdGhlci5tX29yaWVudGF0aW9uKSA9
PSBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbihtX29yaWVudGF0aW9uKTsKK30KKwordGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBNZWRpYVBsYXllclZpZGVvRnJhbWU6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAg
ZW5jb2RlciA8PCBtX3BpeGVsQnVmZmVyOworICAgIGVuY29kZXIgPDwgSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZW50YXRpb24obV9vcmllbnRhdGlvbik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShl
bmNvZGVyKTsKKyNlbmRpZgorfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGQ6Om9w
dGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIHN0ZDo6
b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+PiBwaXhlbEJ1ZmZlcjsKKyAgICBk
ZWNvZGVyID4+IHBpeGVsQnVmZmVyOworICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgc3RkOjpvcHRpb25hbDxJbWFnZU9yaWVudGF0aW9uOjpP
cmllbnRhdGlvbj4gb3JpZW50YXRpb247CisgICAgZGVjb2RlciA+PiBvcmllbnRhdGlvbjsKKyAg
ICBpZiAoIW9yaWVudGF0aW9uKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJl
dHVybiBNZWRpYVBsYXllclZpZGVvRnJhbWUgeyBXVEZNb3ZlKCpwaXhlbEJ1ZmZlciksICpvcmll
bnRhdGlvbiB9OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyNlbmRpZgorfQorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclZpZGVv
RnJhbWVBVkYubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lQVZGLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1YzBkZGNhZmFkZDMx
ZWVmNjIyYzJhYWRmM2MwZDJlNjY1NWU0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1l
QVZGLm1tCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisj
aW5jbHVkZSAiTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpNZWRpYVBsYXllclZpZGVvRnJhbWUoUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+JiYgcGl4ZWxCdWZmZXIsIEltYWdlT3JpZW50YXRpb24gb3JpZW50
YXRpb24pCisgICAgOiBtX3BpeGVsQnVmZmVyKFdURk1vdmUocGl4ZWxCdWZmZXIpKQorICAgICwg
bV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKK3sKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaAppbmRleCA5NWEzNzg5YWQ2MjcxOWMxMDBiYzA2N2QzY2U4YWFhOTMyZDU3NDEx
Li5hYjY5ODNiZDk5NmNhOWRhZTM3NDJmNWM3NjQzYzVlYzBlZjgxNDI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oCkBAIC0yNjIsMTIgKzI2MiwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBkYXRl
TGFzdFBpeGVsQnVmZmVyKCk7CiAgICAgYm9vbCB2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1l
KCk7CiAgICAgdm9pZCBwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdl
PiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgRGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UoKSBmaW5hbDsKICAgICB2b2lkIHdhaXRGb3JWaWRlb091dHB1dE1l
ZGlhRGF0YVdpbGxDaGFuZ2UoKTsKIAotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBw
aXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgZmluYWw7Ci0KICNpZiBFTkFCTEUoTEVHQUNZX0VO
Q1JZUFRFRF9NRURJQSkKICAgICB2b2lkIGtleUFkZGVkKCkgZmluYWw7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPExlZ2FjeUNETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0sIExlZ2FjeUNETVNlc3Npb25DbGllbnQqKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCmluZGV4IGJkYzJhODJlNzNmNGZkZjg4YjVhNTRjOTk3ZjMyYmY2ODlkZTk5NmEuLmYzN2Rm
MDdlNjBjNzJhNDg5MTlhMjA1M2YwNTIyYzQwNzRkYTMyM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQpAQCAtMjYyNSwxMSArMjYyNSwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYgYwogCiB9
CiAKLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKK3N0ZDo6b3B0aW9uYWw8TWVk
aWFQbGF5ZXJWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewogICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigp
OwotCi0gICAgcmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyOworICAgIGlmICghbV9sYXN0UGl4ZWxC
dWZmZXIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIE1lZGlhUGxh
eWVyVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUgfTsKIH0KIAogUmVmUHRyPE5hdGl2ZUltYWdlPiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggOTMxM2MxYjNkZjZkMzY5NjA4Yzc1NWYwNTVkNDYxZGFi
NWRmNzIyYS4uZDc0ODNlNzRlNzZlZTVhOGU4Mjg0NGE4ZGZlMWMxNmVhZDczNTI1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTIyMiw3ICsyMjIsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgdXBkYXRlTGFzdEltYWdlKCk7CiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5D
b250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwotICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkg
ZmluYWw7CisgICAgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xv
clNwYWNlKCkgZmluYWw7CiAKICAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmco
KSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCBiMmNlNmJi
YzdhYWNjOGNlY2MyMWM5NDEyOTVlNDMxOGFkY2I4OWEzLi4yZjJkZTQ1N2RmMDVhMzYyNDA1NTM5
NmQxMzcyYmJiNDA5OTMwNTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC03MjEs
NyArNzIxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBh
aW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ28KICAgICBjb250ZXh0LmRyYXdOYXRp
dmVJbWFnZSgqaW1hZ2UsIGltYWdlUmVjdC5zaXplKCksIG91dHB1dFJlY3QsIGltYWdlUmVjdCk7
CiB9CiAKLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQorc3RkOjpvcHRpb25h
bDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICAvLyBXZSBoYXZlIGJlZW4g
YXNrZWQgdG8gcGFpbnQgaW50byBhIFdlYkdMIGNhbnZhcywgc28gdGFrZSB0aGF0IGFzIGEgc2ln
bmFsIHRvIGNyZWF0ZQogICAgIC8vIGEgZGVjb21wcmVzc2lvbiBzZXNzaW9uLCBldmVuIGlmIHRo
YXQgbWVhbnMgdGhlIG5hdGl2ZSB2aWRlbyBjYW4ndCBhbHNvIGJlIGRpc3BsYXllZApAQCAtNzMz
LDggKzczMyw5IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OnBpeGVsQnVmZmVyRm9yCiAKICAgICBpZiAoIW1faXNHYXRo
ZXJpbmdWaWRlb0ZyYW1lTWV0YWRhdGEpCiAgICAgICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigp
OwotCi0gICAgcmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyOworICAgIGlmICghbV9sYXN0UGl4ZWxC
dWZmZXIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIE1lZGlhUGxh
eWVyVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUgfTsKIH0KIAogRGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y29sb3JTcGFjZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQy5oCmluZGV4IDZkOTU1Njc0ZDA2Mjc1YWU0MzNlNWE1NGEzN2MzNGU2YmYzN2Y5YTIuLjli
NmZkMmI1ZjI3NTQ5MjY3ZGIzOTkzYzk4OTVkYjE2MzIxNTg2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oCkBAIC0xNDIsNiArMTQyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGFpbnQo
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBw
YWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmKSBvdmVycmlkZTsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgb3ZlcnJpZGU7CiAgICAgRGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UoKSBvdmVycmlkZTsKICAgICBib29sIG1ldGFEYXRhQXZhaWxhYmxl
KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0cmVhbVByaXZhdGUgJiYgbV9yZWFkeVN0YXRlID49
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGE7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tCmluZGV4IDQ5ZjQyZjljMDJiODI5NTMyNTc3MzhjMzQ0MDQzZGViNDEwODUx
YzIuLmFiZmFmMWM3YTM1ZGUxZDJmMWQxNjAxOWE4ZTMzN2QzODU2MDM5NDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KQEAgLTI0NCw2ICsyNDQsMjIgQEAgc3RhdGljIGlubGluZSBDR0Fm
ZmluZVRyYW5zZm9ybSB2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KE1lZGlhU2FtcGxlJiBzYW1w
bGUpCiAgICAgcmV0dXJuIHZpZGVvVHJhbnNmb3JtOwogfQogCitzdGF0aWMgaW5saW5lIEltYWdl
T3JpZW50YXRpb24gdmlkZW9PcmllbnRhdGlvbihNZWRpYVNhbXBsZSYgc2FtcGxlKQoreworICAg
IC8vIFNhbXBsZSB0cmFuc2Zvcm0gZmlyc3QgZmxpcHMgeC1jb29yZGluYXRlcywgdGhlbiByb3Rh
dGVzLgorICAgIGJvb2wgZmxpcFggPSBzYW1wbGUudmlkZW9NaXJyb3JlZCgpOyAvLyBMZWZ0IHNp
ZGUgc3dpdGNoZXMgd2l0aCByaWdodCBzaWRlLgorICAgIHN3aXRjaCAoc2FtcGxlLnZpZGVvUm90
YXRpb24oKSkgeworICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU6Cisg
ICAgICAgIHJldHVybiBmbGlwWCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IDog
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wTGVmdDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpW
aWRlb1JvdGF0aW9uOjpSaWdodDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmllbnRh
dGlvbjo6T3JpZ2luUmlnaHRCb3R0b20gOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodFRv
cDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAg
ICAgICByZXR1cm4gZmxpcFggPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21MZWZ0IDog
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9tUmlnaHQ7CisgICAgY2FzZSBNZWRpYVNhbXBs
ZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmll
bnRhdGlvbjo6T3JpZ2luTGVmdFRvcCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkxlZnRCb3R0
b207CisgICAgfQorfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSwgVmlkZW9TYW1wbGVN
ZXRhZGF0YSBtZXRhZGF0YSkKIHsKICAgICBhdXRvIHByZXNlbnRhdGlvblRpbWUgPSBNb25vdG9u
aWNUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpOwpAQCAtMTAwMyw2ICsxMDE5LDIxIEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dChHcmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmlt
YWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCB0cmFuc2Zvcm1lZERlc3RSZWN0LCBpbWFnZVJlY3QpOwog
fQogCitzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQoreworICAg
IGlmIChtX2Rpc3BsYXlNb2RlID09IE5vbmUgfHwgIW1ldGFEYXRhQXZhaWxhYmxlKCkpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKG1fZGlzcGxheU1vZGUgPT0gUGFpbnRJ
dEJsYWNrKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghbV9pbWFnZVBh
aW50ZXIubWVkaWFTYW1wbGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUt
PnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyOworICAgIENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgaWYgKCFwaXhl
bEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gTWVkaWFQ
bGF5ZXJWaWRlb0ZyYW1lIHsgUmV0YWluUHRyIHsgcGl4ZWxCdWZmZXIgfSwgdmlkZW9PcmllbnRh
dGlvbigqbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUpIH07Cit9CisKIERlc3RpbmF0aW9uQ29s
b3JTcGFjZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNvbG9yU3BhY2Uo
KQogewogICAgIHVwZGF0ZUN1cnJlbnRGcmFtZUltYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbQppbmRleCAzMmRiNmVlODJjY2QwMTkzOGI0MDdhNmI2ZThkZWNmODU1MmJjODE5
Li45NTdiYTZiYTkwYmIwMThiYjg4OGQwMmM1ZGM4Mzc0NmI2NTNkZmFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBo
aWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTc5MSw4ICs3OTEsOCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEU6OnBsYXRmb3JtUmVsZWFzZVRocmVhZFJlc291cmNlcygpCiAjaWYgRU5BQkxF
KFZJREVPKQogYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRp
YShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdD
R0xlbnVtIG91dHB1dFRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3Jt
YXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhh
LCBib29sIGZsaXBZKQogewotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBwbGF5ZXIucGl4ZWxCdWZm
ZXJGb3JDdXJyZW50VGltZSgpOwotICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgYXV0byB2aWRl
b0ZyYW1lID0gcGxheWVyLnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOworICAgIGlmICghdmlk
ZW9GcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYXV0byBjb250ZXh0Q1YgPSBh
c0NWKCk7CkBAIC04MDEsNyArODAxLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpj
b3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUcKIAogICAg
IFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5VU0VEKG91
dHB1dFRhcmdldCwgb3V0cHV0VGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJE
KTsKLSAgICByZXR1cm4gY29udGV4dENWLT5jb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUocGl4ZWxC
dWZmZXIuZ2V0KCksIG91dHB1dFRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0
LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKTsKKyAgICByZXR1cm4gY29u
dGV4dENWLT5jb3B5VmlkZW9GcmFtZVRvVGV4dHVyZSgqdmlkZW9GcmFtZSwgb3V0cHV0VGV4dHVy
ZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdM
OjpGbGlwWShmbGlwWSkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaAppbmRleCAxZDYx
NWE3ZjBlZjExMzIzMjY4MDJlNTY0YTlhZDUyNTI3ZTAzMDY3Li42ZDEwOWQ2NDUwYTAxNWUyN2Ri
Mzk0OWFkODM4YzY4NGJmZDFkNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVi5oCkBAIC0yOSw5ICsyOSw4
IEBACiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTC5oIgogCi10eXBlZGVmIHN0cnVjdCBf
X0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVmOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBNZWRpYVBsYXllclZpZGVvRnJhbWU7CiAKIC8vIEludGVyZmFjZSB0byBpbnRlcmFjdCB3aXRo
IENWIG9iamVjdHMgYW5kIEdyYXBoaWNzQ29udGV4dEdMLgogY2xhc3MgR3JhcGhpY3NDb250ZXh0
R0xDViB7CkBAIC00MSw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBGbGlwWSA9IEdyYXBo
aWNzQ29udGV4dEdMOjpGbGlwWTsKICAgICAvLyBDb3BpZXMgQ1YgcGl4ZWwgYnVmZmVyIHRvIEdy
YXBoaWNzQ29udGV4dEdMIFRFWFRVUkVfMkQgdGV4dHVyZSBvZiB0aGUgc2FtZSBzaXplIGFzIHRo
ZSBwaXhlbCBidWZmZXIuCiAgICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCi0gICAgdmly
dHVhbCBib29sIGNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmLCBQbGF0
Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVy
bmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZKSA9IDA7Cisg
ICAgdmlydHVhbCBib29sIGNvcHlWaWRlb0ZyYW1lVG9UZXh0dXJlKE1lZGlhUGxheWVyVmlkZW9G
cmFtZSYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NH
TGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxp
cFkpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCmluZGV4IDI0
OTk1YTNlZWVkYmVjOTQ4NWJjMWM2YTY5YjYyNWQwYmU3YTg5OTMuLjU2YWVhODg5M2JkMzk1ODdl
OWE4YWZmM2ZmY2Y4M2IwMTJlYjU2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNw
cApAQCAtNDksNiArNDksOCBAQCBzdGF0aWMgY29uc3RleHByIGF1dG8gc195dXZWZXJ0ZXhTaGFk
ZXJUZXh0dXJlMkQgewogICAgICJ1bmlmb3JtIHZlYzIgdV95VGV4dHVyZVNpemU7IgogICAgICJ1
bmlmb3JtIHZlYzIgdV91dlRleHR1cmVTaXplOyIKICAgICAidW5pZm9ybSBpbnQgdV9mbGlwWTsi
CisgICAgInVuaWZvcm0gaW50IHVfZmxpcFg7IgorICAgICJ1bmlmb3JtIGludCB1X3N3YXBYWTsi
CiAgICAgInZhcnlpbmcgdmVjMiB2X3lUZXh0dXJlQ29vcmRpbmF0ZTsiCiAgICAgInZhcnlpbmcg
dmVjMiB2X3V2VGV4dHVyZUNvb3JkaW5hdGU7IgogICAgICJ2b2lkIG1haW4oKSIKQEAgLTU3LDYg
KzU5LDEwIEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzX3l1dlZlcnRleFNoYWRlclRleHR1cmUy
RCB7CiAgICAgIiAgICB2ZWMyIG5vcm1hbGl6ZWRQb3NpdGlvbiA9IGFfcG9zaXRpb24gKiAuNSAr
IC41OyIKICAgICAiICAgIGlmICh1X2ZsaXBZID09IDEpIgogICAgICIgICAgICAgIG5vcm1hbGl6
ZWRQb3NpdGlvbi55ID0gMS4wIC0gbm9ybWFsaXplZFBvc2l0aW9uLnk7IgorICAgICIgICAgaWYg
KHVfZmxpcFggPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnggPSAxLjAg
LSBub3JtYWxpemVkUG9zaXRpb24ueDsiCisgICAgIiAgICBpZiAodV9zd2FwWFkgPT0gMSkiCisg
ICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnh5ID0gbm9ybWFsaXplZFBvc2l0aW9uLnl4
OyIKICAgICAiICAgIHZfeVRleHR1cmVDb29yZGluYXRlID0gbm9ybWFsaXplZFBvc2l0aW9uOyIK
ICAgICAiICAgIHZfdXZUZXh0dXJlQ29vcmRpbmF0ZSA9IG5vcm1hbGl6ZWRQb3NpdGlvbjsiCiAg
ICAgIn0iX3MKQEAgLTY3LDYgKzczLDggQEAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVy
dGV4U2hhZGVyVGV4dHVyZVJlY3RhbmdsZSB7CiAgICAgInVuaWZvcm0gdmVjMiB1X3lUZXh0dXJl
U2l6ZTsiCiAgICAgInVuaWZvcm0gdmVjMiB1X3V2VGV4dHVyZVNpemU7IgogICAgICJ1bmlmb3Jt
IGludCB1X2ZsaXBZOyIKKyAgICAidW5pZm9ybSBpbnQgdV9mbGlwWDsiCisgICAgInVuaWZvcm0g
aW50IHVfc3dhcFhZOyIKICAgICAidmFyeWluZyB2ZWMyIHZfeVRleHR1cmVDb29yZGluYXRlOyIK
ICAgICAidmFyeWluZyB2ZWMyIHZfdXZUZXh0dXJlQ29vcmRpbmF0ZTsiCiAgICAgInZvaWQgbWFp
bigpIgpAQCAtNzUsNiArODMsMTAgQEAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVydGV4
U2hhZGVyVGV4dHVyZVJlY3RhbmdsZSB7CiAgICAgIiAgICB2ZWMyIG5vcm1hbGl6ZWRQb3NpdGlv
biA9IGFfcG9zaXRpb24gKiAuNSArIC41OyIKICAgICAiICAgIGlmICh1X2ZsaXBZID09IDEpIgog
ICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlvbi55ID0gMS4wIC0gbm9ybWFsaXplZFBvc2l0
aW9uLnk7IgorICAgICIgICAgaWYgKHVfZmxpcFggPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFs
aXplZFBvc2l0aW9uLnggPSAxLjAgLSBub3JtYWxpemVkUG9zaXRpb24ueDsiCisgICAgIiAgICBp
ZiAodV9zd2FwWFkgPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnh5ID0g
bm9ybWFsaXplZFBvc2l0aW9uLnl4OyIKICAgICAiICAgIHZfeVRleHR1cmVDb29yZGluYXRlID0g
bm9ybWFsaXplZFBvc2l0aW9uICogdV95VGV4dHVyZVNpemU7IgogICAgICIgICAgdl91dlRleHR1
cmVDb29yZGluYXRlID0gbm9ybWFsaXplZFBvc2l0aW9uICogdV91dlRleHR1cmVTaXplOyIKICAg
ICAifSJfcwpAQCAtNTQ4LDYgKzU2MCw4IEBAIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6R3Jh
cGhpY3NDb250ZXh0R0xDVkNvY29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmIG93bmVyCiAgICAg
bV91dlRleHR1cmVVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJv
Z3JhbSwgInVfdXZUZXh0dXJlIik7CiAgICAgbV9jb2xvck1hdHJpeFVuaWZvcm1Mb2NhdGlvbiA9
IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9ncmFtLCAidV9jb2xvck1hdHJpeCIpOwogICAg
IG1feXV2RmxpcFlVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJv
Z3JhbSwgInVfZmxpcFkiKTsKKyAgICBtX3l1dkZsaXBYVW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0
VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1X2ZsaXBYIik7CisgICAgbV95dXZTd2FwWFlV
bmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfc3dh
cFhZIik7CiAgICAgbV95VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3Jt
TG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfeVRleHR1cmVTaXplIik7CiAgICAgbV91dlRleHR1cmVT
aXplVW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1
X3V2VGV4dHVyZVNpemUiKTsKICAgICBtX3l1dlBvc2l0aW9uQXR0cmlidXRlTG9jYXRpb24gPSBH
TF9HZXRBdHRyaWJMb2NhdGlvbih5dXZQcm9ncmFtLCAiYV9wb3NpdGlvbiIpOwpAQCAtNTU5LDgg
KzU3Myw5IEBAIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDVkNv
Y29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmIG93bmVyCiAgICAgR0xfQmluZEZyYW1lYnVmZmVy
KEdMX0ZSQU1FQlVGRkVSLCBtX2ZyYW1lYnVmZmVyKTsKIH0KIAotYm9vbCBHcmFwaGljc0NvbnRl
eHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGlt
YWdlLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdMaW50IGxldmVsLCBHTGVudW0g
aW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBGbGlwWSBmbGlwWSkK
K2Jvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5VmlkZW9GcmFtZVRvVGV4dHVyZShN
ZWRpYVBsYXllclZpZGVvRnJhbWUmIHZpZGVvRnJhbWUsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0
VGV4dHVyZSwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xlbnVtIGZvcm1h
dCwgR0xlbnVtIHR5cGUsIEZsaXBZIHVucGFja0ZsaXBZKQogeworICAgIGF1dG8gaW1hZ2UgPSB2
aWRlb0ZyYW1lLnBpeGVsQnVmZmVyKCk7CiAgICAgLy8gRklYTUU6IFRoaXMgY3VycmVudGx5IG9u
bHkgc3VwcG9ydHMgJzQyMHYnIGFuZCAnNDIwZicgcGl4ZWwgZm9ybWF0cy4gSW52ZXN0aWdhdGUg
c3VwcG9ydGluZyBtb3JlIHBpeGVsIGZvcm1hdHMuCiAgICAgT1NUeXBlIHBpeGVsRm9ybWF0ID0g
Q1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShpbWFnZSk7CiAgICAgaWYgKHBpeGVsRm9y
bWF0ICE9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJWaWRlb1JhbmdlIC8v
IE5PTElOVApAQCAtNTc3LDkgKzU5MiwxMCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2Nv
YTo6Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2UsCiAgICAg
aWYgKCFzdXJmYWNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBhdXRvIG9yaWVudGF0
aW9uID0gdmlkZW9GcmFtZS5vcmllbnRhdGlvbigpOwogICAgIGF1dG8gbmV3U3VyZmFjZVNlZWQg
PSBJT1N1cmZhY2VHZXRTZWVkKHN1cmZhY2UpOwotICAgIGlmIChmbGlwWSA9PSBtX2xhc3RGbGlw
WQotICAgICAgICAmJiBzdXJmYWNlID09IG1fbGFzdFN1cmZhY2UKKyAgICBpZiAoSW1hZ2VPcmll
bnRhdGlvbjo6T3JpZW50YXRpb24ob3JpZW50YXRpb24pID09IEltYWdlT3JpZW50YXRpb246Ok9y
aWVudGF0aW9uKG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbikKKyAgICAgICAgJiYgdW5wYWNrRmxp
cFkgPT0gbV9sYXN0VW5wYWNrRmxpcFkKICAgICAgICAgJiYgbmV3U3VyZmFjZVNlZWQgPT0gbV9s
YXN0U3VyZmFjZVNlZWQKICAgICAgICAgJiYgbGFzdFRleHR1cmVTZWVkKG91dHB1dFRleHR1cmUp
ID09IG1fb3duZXIudGV4dHVyZVNlZWQob3V0cHV0VGV4dHVyZSkpIHsKICAgICAgICAgLy8gSWYg
dGhlIHRleHR1cmUgaGFzbid0IGJlZW4gbW9kaWZpZWQgc2luY2UgdGhlIGxhc3QgdGltZSB3ZSBj
b3BpZWQgdG8gaXQsIGFuZCB0aGUKQEAgLTU4OSw4ICs2MDUsNjMgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVm
IGltYWdlLAogICAgIGlmICghbV9jb250ZXh0IHx8ICFHcmFwaGljc0NvbnRleHRHTENvY29hOjpt
YWtlQ3VycmVudChtX2Rpc3BsYXksIG1fY29udGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChpbWFnZSk7Ci0gICAg
c2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoaW1hZ2UpOworICAgIC8vIENv
bXB1dGUgdHJhbnNmb3JtIHRoYXQgdW5kb2VzIHRoZSBgb3JpZW50YXRpb25gLCBlLmcuIG1vdmVz
IHRoZSBvcmlnaW4gdG8gdG9wIGxlZnQuCisgICAgLy8gRXZlbiBudW1iZXIgb2Ygb3BlcmF0aW9u
cyAoZmxpcFgsIGZsaXBZLCBzd2FwWFkpIG1lYW5zIGEgcm90YXRpb24uCisgICAgLy8gT2RkIG51
bWJlciBvZiBvcGVyYXRpb25zIG1lYW5zIGEgcm90YXRpb24gYW5kIGEgZmxpcC4KKyAgICAvLyBg
ZmxpcFhgIHN3aXRjaGVzIGJldHdlZW4gTGVmdCBhbmQgUmlnaHQuIGBmbGlwWWAgc3dpdGNoZXMg
YmV0d2VlbiBUb3AgYW5kIEJvdHRvbS4KKyAgICAvLyBgc3dhcFhZYHN3aXRjaGVzIExlZnRUb3Ag
dG8gVG9wTGVmdC4KKyAgICAvLyBHb2FsIGlzIHRvIGdldCB0byBPcmlnaW5Ub3BMZWZ0LgorICAg
IGJvb2wgZmxpcFkgPSBmYWxzZTsgLy8gRmxpcCB5IGNvb3JkaW5hdGUsIGkuZS4gbWlycm9yZWQg
YWxvbmcgdGhlIHgtYXhpcy4KKyAgICBib29sIGZsaXBYID0gZmFsc2U7IC8vIEZsaXAgeCBjb29y
ZGluYXRlLCBpLmUuIG1pcnJvcmVkIGFsb25nIHRoZSB5LWF4aXMuCisgICAgYm9vbCBzd2FwWFkg
PSBmYWxzZTsKKyAgICBzd2l0Y2ggKHZpZGVvRnJhbWUub3JpZW50YXRpb24oKSkgeworICAgIGNh
c2UgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlOgorICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luVG9wTGVmdDoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0
aW9uOjpPcmlnaW5Ub3BSaWdodDoKKyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0OgorICAgICAg
ICAvLyBSb3RhdGVkIDE4MCBkZWdyZWVzLgorICAgICAgICBmbGlwWSA9IHRydWU7CisgICAgICAg
IGZsaXBYID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9u
OjpPcmlnaW5Cb3R0b21MZWZ0OgorICAgICAgICAvLyBNaXJyb3JlZCBhbG9uZyB0aGUgeC1heGlz
LgorICAgICAgICBmbGlwWSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VP
cmllbnRhdGlvbjo6T3JpZ2luTGVmdFRvcDoKKyAgICAgICAgLy8gTWlycm9yZWQgYWxvbmcgeC1h
eGlzIGFuZCByb3RhdGVkIDI3MCBkZWdyZWVzIGNsb2NrLXdpc2UuCisgICAgICAgIHN3YXBYWSA9
IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2lu
UmlnaHRUb3A6CisgICAgICAgIC8vIFJvdGF0ZWQgOTAgZGVncmVlcyBjbG9jay13aXNlLgorICAg
ICAgICBmbGlwWCA9IHRydWU7CisgICAgICAgIHN3YXBYWSA9IHRydWU7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRCb3R0b206CisgICAgICAg
IC8vIE1pcnJvciBhbG9uZyB4LWF4aXMgYW5kIHJvdGF0ZWQgOTAgZGVncmVlcyBjbG9ja3dpc2Uu
CisgICAgICAgIGZsaXBZID0gdHJ1ZTsKKyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBz
d2FwWFkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEltYWdlT3JpZW50YXRpb246
Ok9yaWdpbkxlZnRCb3R0b206CisgICAgICAgIC8vIFJvdGF0ZWQgMjcwIGRlZ3JlZXMgY2xvY2st
d2lzZS4KKyAgICAgICAgZmxpcFkgPSB0cnVlOworICAgICAgICBzd2FwWFkgPSB0cnVlOworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKHVucGFja0ZsaXBZID09IEZsaXBZOjpZZXMpIHsK
KyAgICAgICAgaWYgKHN3YXBYWSkKKyAgICAgICAgICAgIGZsaXBYID0gIWZsaXBYOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBmbGlwWSA9ICFmbGlwWTsKKyAgICB9CisgICAgc2l6ZV90IHNv
dXJjZVdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKGltYWdlKTsKKyAgICBzaXplX3Qgc291
cmNlSGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChpbWFnZSk7CisKKyAgICBzaXplX3Qg
d2lkdGggPSBzd2FwWFkgPyBzb3VyY2VIZWlnaHQgOiBzb3VyY2VXaWR0aDsKKyAgICBzaXplX3Qg
aGVpZ2h0ID0gc3dhcFhZID8gc291cmNlV2lkdGggOiBzb3VyY2VIZWlnaHQ7CiAKICAgICBHTF9W
aWV3cG9ydCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKIApAQCAtNjY0LDcgKzczNSw5IEBAIGJvb2wg
R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhl
bEJ1ZmZlclJlZiBpbWFnZSwKICAgICAvLyBDb25maWd1cmUgdGhlIGRyYXdpbmcgcGFyYW1ldGVy
cy4KICAgICBHTF9Vbmlmb3JtMWkobV95VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiwgMCk7CiAgICAg
R0xfVW5pZm9ybTFpKG1fdXZUZXh0dXJlVW5pZm9ybUxvY2F0aW9uLCAxKTsKLSAgICBHTF9Vbmlm
b3JtMWkobV95dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiwgZmxpcFkgPT0gRmxpcFk6OlllcyA/IDEg
OiAwKTsKKyAgICBHTF9Vbmlmb3JtMWkobV95dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiwgZmxpcFkg
PyAxIDogMCk7CisgICAgR0xfVW5pZm9ybTFpKG1feXV2RmxpcFhVbmlmb3JtTG9jYXRpb24sIGZs
aXBYID8gMSA6IDApOworICAgIEdMX1VuaWZvcm0xaShtX3l1dlN3YXBYWVVuaWZvcm1Mb2NhdGlv
biwgc3dhcFhZID8gMSA6IDApOwogICAgIEdMX1VuaWZvcm0yZihtX3lUZXh0dXJlU2l6ZVVuaWZv
cm1Mb2NhdGlvbiwgeVBsYW5lV2lkdGgsIHlQbGFuZUhlaWdodCk7CiAgICAgR0xfVW5pZm9ybTJm
KG1fdXZUZXh0dXJlU2l6ZVVuaWZvcm1Mb2NhdGlvbiwgdXZQbGFuZVdpZHRoLCB1dlBsYW5lSGVp
Z2h0KTsKIApAQCAtNjc2LDEwICs3NDksMTEgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29j
b2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLAogICAg
IC8vIERvIHRoZSBhY3R1YWwgZHJhd2luZy4KICAgICBHTF9EcmF3QXJyYXlzKEdMX1RSSUFOR0xF
UywgMCwgNik7CiAKKyAgICBtX2xhc3RVbnBhY2tGbGlwWSA9IHVucGFja0ZsaXBZOwogICAgIG1f
bGFzdFN1cmZhY2UgPSBzdXJmYWNlOwogICAgIG1fbGFzdFN1cmZhY2VTZWVkID0gbmV3U3VyZmFj
ZVNlZWQ7CisgICAgbV9sYXN0U3VyZmFjZU9yaWVudGF0aW9uID0gb3JpZW50YXRpb247CiAgICAg
bV9sYXN0VGV4dHVyZVNlZWQuc2V0KG91dHB1dFRleHR1cmUsIG1fb3duZXIudGV4dHVyZVNlZWQo
b3V0cHV0VGV4dHVyZSkpOwotICAgIG1fbGFzdEZsaXBZID0gZmxpcFk7CiAgICAgYXV0b0NsZWFy
VGV4dHVyZU9uRXJyb3IucmVsZWFzZSgpOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xD
VkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0Nv
bnRleHRHTENWQ29jb2EuaAppbmRleCBjNGUzOTYwYjZkNzA4MGU0YzM5NDBiOGFmN2FkOWRjZTYy
NDYyNzBmLi4xZThjYWRkNWVlOGJjNzUxMWJkYzY5NjM1NGQzMzVhZjk1M2FiOTAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWQ29jb2EuaApAQCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJH
TCkgJiYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0R0xDVi5oIgotCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvVW5zYWZlUG9pbnRlci5oPgogCkBAIC00NCw3
ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIH5HcmFwaGljc0NvbnRleHRHTENWQ29jb2EoKSBmaW5h
bDsKIAotICAgIGJvb2wgY29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYs
IFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0g
aW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpIGZp
bmFsOworICAgIGJvb2wgY29weVZpZGVvRnJhbWVUb1RleHR1cmUoTWVkaWFQbGF5ZXJWaWRlb0Zy
YW1lJiwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50IGxldmVsLCBHQ0dM
ZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBGbGlw
WSkgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hKEdyYXBo
aWNzQ29udGV4dEdMQ29jb2EmKTsKQEAgLTY0LDEyICs2NCwxNSBAQCBwcml2YXRlOgogICAgIEdD
R0xpbnQgbV95VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBtX3V2
VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBtX3l1dkZsaXBZVW5p
Zm9ybUxvY2F0aW9uIHsgLTEgfTsKKyAgICBHQ0dMaW50IG1feXV2RmxpcFhVbmlmb3JtTG9jYXRp
b24geyAtMSB9OworICAgIEdDR0xpbnQgbV95dXZTd2FwWFlVbmlmb3JtTG9jYXRpb24geyAtMSB9
OwogICAgIEdDR0xpbnQgbV9jb2xvck1hdHJpeFVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAg
R0NHTGludCBtX3l1dlBvc2l0aW9uQXR0cmlidXRlTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xp
bnQgbV95VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV91
dlRleHR1cmVTaXplVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKIAotICAgIEZsaXBZIG1fbGFzdEZs
aXBZIHsgRmxpcFk6Ok5vIH07CisgICAgRmxpcFkgbV9sYXN0VW5wYWNrRmxpcFkgeyBGbGlwWTo6
Tm8gfTsKKyAgICBJbWFnZU9yaWVudGF0aW9uIG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbjsKICAg
ICBVbnNhZmVQb2ludGVyPElPU3VyZmFjZVJlZj4gbV9sYXN0U3VyZmFjZTsKICAgICB1aW50MzJf
dCBtX2xhc3RTdXJmYWNlU2VlZCB7IDAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCAzNzA2Njcz
ZTlmMDYyMWFhMWE1MzgzY2YzYjBlMmY1Y2Y5MDUwMjE5Li42MGM1YThjZDZkNTBlOTAwZTRjMWVi
ZDFmZDhlMmRkYWU4YjZkYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtNTA5LDYgKzUwOSw3IEBA
IHZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3Jp
ZW50YXRpb24pCiAgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNhbXBsZTo6Vmlk
ZW9Sb3RhdGlvbjo6VXBzaWRlRG93bjsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0wuY3BwCmluZGV4IDA3MzNmM2MxNzg2ZTFjNTcwYmM5ZTNhNGY0ZDFi
OGU3MjdkMTdjNjYuLmZmMTMzOTdlNjQ0MTkxZTQwMTM3OWY1Yzg4YTA0NjYxZjcxMTcwOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcApAQCAtMjYwLDE4ICsyNjAsMTggQEAgdm9pZCBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJJZGVudGlmaWUKICAgICBVTlVTRURfVkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAg
ICAgQVNTRVJUX1VOVVNFRCh0YXJnZXQsIHRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVY
VFVSRV8yRCk7CiAKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXI7
Ci0gICAgYXV0byBnZXRQaXhlbEJ1ZmZlciA9IFsmXSB7CisgICAgc3RkOjpvcHRpb25hbDxNZWRp
YVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJhbWU7CisgICAgYXV0byBnZXRWaWRlb0ZyYW1lID0g
WyZdIHsKICAgICAgICAgaWYgKCFtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKGF1dG8gbWVkaWFQbGF5ZXIgPSBtX2dwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MtPnJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkubWVkaWFQ
bGF5ZXIobWVkaWFQbGF5ZXJJZGVudGlmaWVyKSkKLSAgICAgICAgICAgIHBpeGVsQnVmZmVyID0g
bWVkaWFQbGF5ZXItPnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKKyAgICAgICAgICAgIHZp
ZGVvRnJhbWUgPSBtZWRpYVBsYXllci0+dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAg
fTsKIAotICAgIGNhbGxPbk1haW5SdW5Mb29wQW5kV2FpdChXVEZNb3ZlKGdldFBpeGVsQnVmZmVy
KSk7CisgICAgY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KFdURk1vdmUoZ2V0VmlkZW9GcmFtZSkp
OwogCi0gICAgaWYgKCFwaXhlbEJ1ZmZlcikgeworICAgIGlmICghdmlkZW9GcmFtZSkgewogICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0yODIsNyArMjgyLDcgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1
cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWUKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHRDVi0+Y29weVBpeGVsQnVm
ZmVyVG9UZXh0dXJlKHBpeGVsQnVmZmVyLmdldCgpLCB0ZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxG
b3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSkpOwor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHRDVi0+Y29weVZpZGVvRnJhbWVUb1RleHR1cmUo
KnZpZGVvRnJhbWUsIHRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBl
LCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKSk7CiAjZWxzZQogICAgIFVOVVNFRF9W
QVJJQUJMRShtZWRpYVBsYXllcklkZW50aWZpZXIpOwogICAgIFVOVVNFRF9WQVJJQUJMRSh0ZXh0
dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCA4ODEwOGNiYzUzM2MxMGM3NWUzNzBiZmNjODk4
MDBhNTNjNjcyOWFkLi4xZjAwMWE1NDgwNDFlOGU3ZGY4NmI2OGJiMjczZTQ0ODNiNzFjNTkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjppbnZhbGlkYXRlKCkKICAgICB9CiAgICAgbV9yZW5kZXJpbmdSZXNvdXJjZXNS
ZXF1ZXN0ID0geyB9OwogI2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgbV9waXhlbEJ1ZmZlckZv
ckN1cnJlbnRUaW1lID0gbnVsbHB0cjsKKyAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9
IHN0ZDo6bnVsbG9wdDsKICNlbmRpZgogfQogCkBAIC04NjgsNiArODY4LDIxIEBAIHZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6Y3VycmVudFRpbWVDaGFuZ2VkKGNvbnN0IE1lZGlhVGltZSYg
bWVkaWFUaW1lKQogICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Q3VycmVudFRpbWVDaGFuZ2VkKG1lZGlhVGltZSwgTW9u
b3RvbmljVGltZTo6bm93KCksICFtZWRpYVBsYXllclBhdXNlZE9yU3RhbGxlZCgpKSwgbV9pZCk7
CiB9CiAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpNZWRpYVBsYXllclZpZGVvRnJhbWU+JiYsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiByZXN1
bHQ7CisgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJhbWU7CisgICAgaWYgKG1fcGxheWVyKQor
ICAgICAgICB2aWRlb0ZyYW1lID0gbV9wbGF5ZXItPnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgp
OworICAgIGlmICghKG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID09IHZpZGVvRnJhbWUpKSB7
CisgICAgICAgIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID0gdmlkZW9GcmFtZTsKKyAgICAg
ICAgY2hhbmdlZCA9IHRydWU7CisgICAgICAgIHJlc3VsdCA9IFdURk1vdmUodmlkZW9GcmFtZSk7
CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSwgY2hhbmdlZCk7
Cit9CisKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dXBkYXRlQ2FjaGVkU3RhdGUoYm9v
bCBmb3JjZUN1cnJlbnRUaW1lVXBkYXRlKQogewogICAgIGlmICghbV9vYnNlcnZpbmdUaW1lQ2hh
bmdlcyB8fCBmb3JjZUN1cnJlbnRUaW1lVXBkYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggMzJmM2E0
NmFhMGYwOWIxM2IwMjRlNDE2NDA3OGE1ZGFkZGVkYzU0ZS4uZTEzOTQ2ZjdhN2MzMzFlNzAzZDM0
NmE1OTMwZDEwNGEzMDI3ZGYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0zMjAsOSArMzIwLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdURjo6TWFjaFNlbmRSaWdodD4mJiwgV2ViQ29yZTo6
RGVzdGluYXRpb25Db2xvclNwYWNlKT4mJik7CiAgICAgdm9pZCBjb2xvclNwYWNlKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlKT4mJik7CiAjZW5k
aWYKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIHZvaWQgcGl4ZWxCdWZmZXJGb3JDdXJyZW50
VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+PiYmKT4mJik7Ci0jZW5kaWYKKyAgICB2b2lkIHZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiYmLCBib29sKT4mJik7CiAKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9n
Z2VyKCkgZmluYWwgeyByZXR1cm4gbV9sb2dnZXI7IH0KQEAgLTM3OCw5ICszNzYsNyBAQCBwcml2
YXRlOgogICAgIFNjb3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgbV9yZW5kZXJpbmdSZXNv
dXJjZXNSZXF1ZXN0OwogCiAgICAgYm9vbCBtX29ic2VydmluZ1RpbWVDaGFuZ2VzIHsgZmFsc2Ug
fTsKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiBtX3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWU7Ci0jZW5kaWYKKyAgICBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWU7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dl
cjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCAzOWM4NzI5
YjI3MzllMTM2NDRiMzFhYTgwZGJhODBkNGEzMzBjOGFlLi5lNTM5YjQ5MmY2ZmMwNTU1NzQ0ZTkw
NTg0NjQzN2Q0ODhkNTM4NDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMTI2LDkgKzEyNiw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90
UmVmQ291bnRlZCB7CiAgICAgTmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIC0+IChzdGQ6Om9w
dGlvbmFsPE1hY2hTZW5kUmlnaHQ+IHNlbmRSaWdodCwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UpIFN5bmNocm9ub3VzCiAgICAgQ29sb3JTcGFjZSgpIC0+IChXZWJD
b3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSkgU3luY2hyb25vdXMKICNlbmRp
ZgotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgUGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlm
Q2hhbmdlZCgpIC0+IChzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPj4g
cGl4ZWxCdWZmZXIpIFN5bmNocm9ub3VzCi0jZW5kaWYKKyAgICBWaWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWVJZkNoYW5nZWQoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZp
ZGVvRnJhbWU+IHZpZGVvRnJhbWUsIGJvb2wgY2hhbmdlZCkgU3luY2hyb25vdXMKIAogICAgIFBs
YXlBdEhvc3RUaW1lKE1vbm90b25pY1RpbWUgdGltZSkKICAgICBQYXVzZUF0SG9zdFRpbWUoTW9u
b3RvbmljVGltZSB0aW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KaW5k
ZXggYzZiYmEzYWEyYjRlNTVmYWVmYjkzM2JiZTJlNjM1OWQ3M2Y2MzE5OC4uZmJlMTBiYzMwNWQy
ZDJlMTVhMjRhN2NlZTQ1MDdlYTE3NjczNzQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eUNvY29hLm1tCkBAIC0xMjcsMjEgKzEyNyw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6Y29sb3JTcGFjZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRlc3RpbmF0
CiAgICAgY29tcGxldGlvbkhhbmRsZXIobV9wbGF5ZXItPmNvbG9yU3BhY2UoKSk7CiB9CiAKLSNp
ZiBVU0UoQVZGT1VOREFUSU9OKQotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwaXhlbEJ1
ZmZlckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+PiBy
ZXN1bHQ7Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyOwotICAg
IGlmIChtX3BsYXllcikKLSAgICAgICAgcGl4ZWxCdWZmZXIgPSBtX3BsYXllci0+cGl4ZWxCdWZm
ZXJGb3JDdXJyZW50VGltZSgpOwotICAgIGlmIChtX3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUg
IT0gcGl4ZWxCdWZmZXIpIHsKLSAgICAgICAgcmVzdWx0ID0gcGl4ZWxCdWZmZXI7Ci0gICAgICAg
IG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSA9IFdURk1vdmUocGl4ZWxCdWZmZXIpOwotICAg
IH0KLSAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwotfQotI2VuZGlmCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCA5YTY0
Mjk0Mzc4NDJmNDNkYjZkYTFjMjUwMTFlZDRhNTQ0Y2JmMzYxLi5iNTM5MmUwNGQ5ZmY5NmRiZjEx
MDgxNGE4MGEwNGE2YjZlZjI4ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBA
IC0xMDAwLDEzICsxMDAwLDE4IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjb3B5
VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9Ci0jZWxpZiAhUExBVEZPUk0oQ09DT0Ep
Ci1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpw
aXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKKyNlbmRpZgorCitzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRl
b0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIGZhbHNlOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0Zy
YW1lPiByZXN1bHQ7CisgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7CisgICAgaWYgKCFjb25uZWN0
aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6VmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkOjpSZXBseShyZXN1bHQsIGNo
YW5nZWQpLCBtX2lkKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoY2hh
bmdlZCkKKyAgICAgICAgbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBXVEZNb3ZlKHJlc3Vs
dCk7CisgICAgcmV0dXJuIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwogfQotI2VuZGlmCiAK
ICNpZiAhUExBVEZPUk0oQ09DT0EpCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuaAppbmRleCBlYjMyNjI0MDRjNmY5MWQ4ZDI2N2EzODUxNjQ1MjI3YTA5MDM3OWU4Li5l
YTJhMDY2YjAwNjM5M2FkNmRlMjM1YTVhMDkyNmY5M2NlNjc2MTBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlLmgKQEAgLTI5Miw5ICsyOTIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRD
dXJyZW50RnJhbWVJbkNvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JikgZmluYWw7CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgYm9v
bCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdD
R0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7Ci0jZWxzZQotICAgIFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAj
ZW5kaWYKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5h
dGl2ZUltYWdlPiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgV2ViQ29y
ZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSBmaW5hbDsKIApAQCAtNDYxLDkg
KzQ2MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JLZXkgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV90aW1lSXNQcm9ncmVzc2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbmRl
cmluZ0NhbkJlQWNjZWxlcmF0ZWQgeyBmYWxzZSB9OwotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0g
ICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGlt
ZTsKLSNlbmRpZgorICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0Zy
YW1lPiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlckdhdGhlcmVkV2l0aFZp
ZGVvRnJhbWVNZXRhZGF0YTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGl4ZWxCdWZm
ZXJDb25mb3JtZXJDVj4gbV9waXhlbEJ1ZmZlckNvbmZvcm1lcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCmluZGV4IGMwYjc3NmRjNzczYjE3ZmE0MzBj
ZDU4OTY4YjAwN2IzMWJkNzZhOGQuLjQxZGJjN2E1M2I3MTc3NjJlNDVhMjA5ZTBmODQ3MGUxMTVm
MTEwMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29j
b2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5t
bQpAQCAtOTQsMTggKzk0LDYgQEAgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6Y29sb3JTcGFjZSgpCiAgICAgcmV0dXJuIGNvbG9yU3BhY2U7
CiB9CiAKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCi17
Ci0gICAgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHJlc3VsdDsK
LSAgICBpZiAoIWNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6UGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpLCBNZXNzYWdlczo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdl
ZDo6UmVwbHkocmVzdWx0KSwgbV9pZCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGlm
IChyZXN1bHQpCi0gICAgICAgIG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSA9IFdURk1vdmUo
KnJlc3VsdCk7Ci0gICAgcmV0dXJuIG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZTsKLX0KLSNl
bmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2U1YzMwZDBkNGVlMmEzNTVlMDY4OTA2
OTdkOTAyNDdhMGFkY2I0NC4uZDU5MjI1NTkyNzdlMjFhYzJlNDIxMDcxYWY1NjIyYjViMjNlOWI1
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAxLTE3ICBLaW1tbyBLaW5udW5lbiAgPGtr
aW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdlYkdMIEdQVSBidWZmZXIg
dGV4dHVyZSB1cGxvYWQgcGF0aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlhIGNhbWVyYSBzdHJlYW1z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUyMzMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NjAxNzYyPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVk
aWEtdG8tY2FudmFzLmh0bWw6CisgICAgICAgICogd2VicnRjL3JvdXRpbmVzLmpzOgorICAgICAg
ICBUZXN0IGNhbWVyYSBpbWFnZSByb3RhdGlvbnMgaW4gdGhlIHRlc3QuCisKIDIwMjItMDEtMTcg
IENoYW5nU2VvayBPaCAgPGNoYW5nc2Vva0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtHVEtdIElt
cGxlbWVudCBmb3JtIHZhbGlkYXRpb24gd2l0aCBndGszIHdpZGdldHMgaW4gdGhlIFVJIHByb2Nl
c3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlh
LXRvLWNhbnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dl
dFVzZXJNZWRpYS10by1jYW52YXMtZXhwZWN0ZWQudHh0CmluZGV4IDg2NTk0MDI2ZmU3OWIzMDAz
OWVkNzNlY2UyOWVkNmZjZTI4NzAxZTQuLmY3MzM0YmUyNjM0NjAzM2JmNmMzMWViMjVjOWNlMDU4
OTNlYTQ2YWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNl
ck1lZGlhLXRvLWNhbnZhcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMg
QEAKIAotUEFTUyBUZXN0aW5nIGdldFVzZXJNZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRleHRz
IHZpYSAyRENvbnRleHQKLVBBU1MgVGVzdGluZyBnZXRVc2VyTWVkaWEgc3RyZWFtIHRvIGNhbnZh
cyBjb250ZXh0cyB2aWEgSW1hZ2VCaXRtYXAgdG8gMkRDb250ZXh0Ci1QQVNTIFRlc3RpbmcgZ2V0
VXNlck1lZGlhIHN0cmVhbSB0byBjYW52YXMgY29udGV4dHMgdmlhIFdlYkdMIHRleHR1cmUKLVBB
U1MgVGVzdGluZyBnZXRVc2VyTWVkaWEgc3RyZWFtIHRvIGNhbnZhcyBjb250ZXh0cyB2aWEgSW1h
Z2VCaXRtYXAgdG8gV2ViR0wgdGV4dHVyZQorUEFTUyBUZXN0aW5nIGdldFVzZXJNZWRpYSBzdHJl
YW0gdG8gY2FudmFzIGNvbnRleHRzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLmh0bWwKaW5kZXggZDI4M2Y0OGY3Y2Yz
MTRkMzE0OWEzMmUzZjg5MDM5Zjc0Nzg0ZmRhYS4uN2FhNmJlMzlkOWU2ZTBlOGMyMzRkYzFkOWMy
NmJlZWYxYmIyMjM1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9n
ZXRVc2VyTWVkaWEtdG8tY2FudmFzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLmh0bWwKQEAgLTksNyArOSw4IEBACiAgICAgICAg
IDxzY3JpcHQgc3JjPSIuLi9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMu
anMiPjwvc2NyaXB0PgogCiAgICAgICAgIDxzdHlsZSB0eXBlPXRleHQvY3NzPgotICAgICAgICAg
ICAgY2FudmFzIHsgd2lkdGg6IDYwMHB4IH0KKyAgICAgICAgICAgIGNhbnZhcyB7IHdpZHRoOiA2
MHB4IH0KKyAgICAgICAgICAgIHZpZGVvIHsgd2lkdGg6IDYwcHggfQogICAgICAgICA8L3N0eWxl
PgogICAgIDwvaGVhZD4KICAgICA8Ym9keT4KQEAgLTM2LDEyICszNywxOCBAQCBmdW5jdGlvbiBj
cmVhdGVWZXJpZnlDYW52YXModmlkZW8pIHsKICAgICByZXR1cm4gY2FudmFzOwogfQogCi1mdW5j
dGlvbiBjcmVhdGVWZXJpZnlXZWJHTENvbnRleHQoY2FudmFzKSB7CitmdW5jdGlvbiBjcmVhdGVW
ZXJpZnlXZWJHTFN0YXRlKGNhbnZhcykgewogICAgIGxldCBnbCA9IHd0dS5jcmVhdGUzRENvbnRl
eHQoY2FudmFzLCB7IGRlcHRoOiBmYWxzZSwgc3RlbmNpbDogZmFsc2UsIGFudGlhbGlhczogZmFs
c2UgfSk7CiAgICAgZ2wudmlld3BvcnQoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0
KTsKICAgICBsZXQgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7CiAgICAgZ2wu
dW5pZm9ybTFpKGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4IiksIDApOwotICAg
IHJldHVybiBnbDsKKyAgICBsZXQgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKKyAgICBn
bC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKKyAgICBnbC50ZXhQYXJhbWV0
ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Cisg
ICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIs
IGdsLk5FQVJFU1QpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOworICAgIHJl
dHVybiBbZ2wsIHRleHR1cmVdOwogfQogCiBmdW5jdGlvbiBnZXRGcmFtZWJ1ZmZlckFzSW1hZ2VE
YXRhKGdsKcKgewpAQCAtNTUsNzkgKzYyLDkzIEBAIGZ1bmN0aW9uIGdldEZyYW1lYnVmZmVyQXNJ
bWFnZURhdGEoZ2wpwqB7CiAgICAgcmV0dXJuIGltYWdlRGF0YTsKIH0KIAotcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4gewotICAgIGxldCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7
Ci0gICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7Ci0gICAgbGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlm
eUNhbnZhcyh2aWRlbyk7Ci0gICAgZGVidWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7Ci0KK2Z1bmN0
aW9uIHdpdGgyRENvbnRleHREcmF3SW1hZ2UodmlkZW8sIGNhbnZhcykgewogICAgIGxldCBjdHgg
PSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKICAgICBjdHguZHJhd0ltYWdlKHZpZGVvLCAwLCAw
LCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwotICAgIGFzc2VydEltYWdlRGF0YUNvbnRh
aW5zTW9ja0NhbWVyYUltYWdlKGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgY2FudmFzLndpZHRoLCBj
YW52YXMuaGVpZ2h0KSk7Ci0gICAgZGVidWdlLnJlbW92ZUNoaWxkKGNhbnZhcyk7Ci0gICAgZGVi
dWdlLnJlbW92ZUNoaWxkKHZpZGVvKTsKLQotfSwgZG9jdW1lbnQudGl0bGUgKyAiIHZpYSAyRENv
bnRleHQiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGxldCB2aWRlbyA9IGF3
YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7Ci0gICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7Ci0gICAg
bGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbyk7Ci0gICAgZGVidWdlLmFwcGVu
ZENoaWxkKGNhbnZhcyk7CisgICAgcmV0dXJuIGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgY2FudmFz
LndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKK30KIAorYXN5bmMgZnVuY3Rpb24gd2l0aDJEQ29udGV4
dERyYXdJbWFnZUltYWdlQml0bWFwKHZpZGVvLCBjYW52YXMpIHsKICAgICBsZXQgY3R4ID0gY2Fu
dmFzLmdldENvbnRleHQoIjJkIik7CiAgICAgbGV0IGltYWdlQml0bWFwID0gYXdhaXQgY3JlYXRl
SW1hZ2VCaXRtYXAodmlkZW8pOwogICAgIGN0eC5kcmF3SW1hZ2UoaW1hZ2VCaXRtYXAsIDAsIDAs
IGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Ci0gICAgYXNzZXJ0SW1hZ2VEYXRhQ29udGFp
bnNNb2NrQ2FtZXJhSW1hZ2UoY3R4LmdldEltYWdlRGF0YSgwLCAwLCBjYW52YXMud2lkdGgsIGNh
bnZhcy5oZWlnaHQpKTsKLSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQoY2FudmFzKTsKLSAgICBkZWJ1
Z2UucmVtb3ZlQ2hpbGQodmlkZW8pOwotfSwgZG9jdW1lbnQudGl0bGUgKyAiIHZpYSBJbWFnZUJp
dG1hcCB0byAyRENvbnRleHQiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGxl
dCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7Ci0gICAgZGVidWdlLmFwcGVuZCh2
aWRlbyk7Ci0gICAgbGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbyk7Ci0gICAg
ZGVidWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7CisgICAgcmV0dXJuIGN0eC5nZXRJbWFnZURhdGEo
MCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKK30KIAotICAgIGxldCBnbCA9IGNy
ZWF0ZVZlcmlmeVdlYkdMQ29udGV4dChjYW52YXMpOwotICAgIGxldCB0ZXh0dXJlID0gZ2wuY3Jl
YXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUp
OwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklM
VEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGds
LlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShn
bC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xB
TVBfVE9fRURHRSk7CitmdW5jdGlvbiB3aXRoV2ViR0xUZXhJbWFnZSh2aWRlbywgY2FudmFzKSB7
CisgICAgbGV0IFtnbCwgdGV4dHVyZV0gPSBjcmVhdGVWZXJpZnlXZWJHTFN0YXRlKGNhbnZhcyk7
CiAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBn
bC5VTlNJR05FRF9CWVRFLCB2aWRlbyk7CiAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGds
LCBbMCwgMCwgMCwgMjU1XSk7CisgICAgcmV0dXJuIGdldEZyYW1lYnVmZmVyQXNJbWFnZURhdGEo
Z2wpOworfQogCi0gICAgbGV0IGltYWdlRGF0YSA9IGdldEZyYW1lYnVmZmVyQXNJbWFnZURhdGEo
Z2wpOwotICAgIGFzc2VydEltYWdlRGF0YUNvbnRhaW5zTW9ja0NhbWVyYUltYWdlKGltYWdlRGF0
YSk7Ci0gICAgZGVidWdlLnJlbW92ZUNoaWxkKGNhbnZhcyk7Ci0gICAgZGVidWdlLnJlbW92ZUNo
aWxkKHZpZGVvKTsKLX0sIGRvY3VtZW50LnRpdGxlICsgIiB2aWEgV2ViR0wgdGV4dHVyZSIpOwot
Ci1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgbGV0IHZpZGVvID0gYXdhaXQgY3JlYXRl
U291cmNlVmlkZW8oKTsKLSAgICBkZWJ1Z2UuYXBwZW5kKHZpZGVvKTsKLSAgICBsZXQgY2FudmFz
ID0gY3JlYXRlVmVyaWZ5Q2FudmFzKHZpZGVvKTsKLSAgICBkZWJ1Z2UuYXBwZW5kQ2hpbGQoY2Fu
dmFzKTsKK2Z1bmN0aW9uIHdpdGhXZWJHTFRleFN1YkltYWdlKHZpZGVvLCBjYW52YXMpIHsKKyAg
ICBsZXQgW2dsLCB0ZXh0dXJlXSA9IGNyZWF0ZVZlcmlmeVdlYkdMU3RhdGUoY2FudmFzKTsKKyAg
ICBsZXQgdyA9IHZpZGVvLnZpZGVvV2lkdGg7CisgICAgbGV0IGggPSB2aWRlby52aWRlb0hlaWdo
dDsKKyAgICBsZXQgcGl4ZWxzID0gbmV3IFVpbnQ4QXJyYXkodyAqIGggKiA0KTsKKyAgICBwaXhl
bHMuZmlsbCgwKTsKKyAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEs
IHcsIGgsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHBpeGVscyk7CisgICAgZ2wudGV4
U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9C
WVRFLCB2aWRlbyk7CisgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwg
MjU1XSk7CisgICAgcmV0dXJuIGdldEZyYW1lYnVmZmVyQXNJbWFnZURhdGEoZ2wpOworfQogCi0g
ICAgbGV0IGdsID0gY3JlYXRlVmVyaWZ5V2ViR0xDb250ZXh0KGNhbnZhcyk7Ci0gICAgbGV0IHRl
eHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Cithc3luYyBmdW5jdGlvbiB3aXRoV2ViR0xUZXhJ
bWFnZUltYWdlQml0bWFwKHZpZGVvLCBjYW52YXMpIHsKKyAgICBsZXQgW2dsLCB0ZXh0dXJlXSA9
IGNyZWF0ZVZlcmlmeVdlYkdMU3RhdGUoY2FudmFzKTsKICAgICBsZXQgaW1hZ2VCaXRtYXAgPSBh
d2FpdCBjcmVhdGVJbWFnZUJpdG1hcCh2aWRlbyk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFN
UF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltYWdlQml0bWFw
KTsKICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKKyAg
ICByZXR1cm4gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCk7Cit9CiAKLSAgICBsZXQgaW1h
Z2VEYXRhID0gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCk7Ci0gICAgYXNzZXJ0SW1hZ2VE
YXRhQ29udGFpbnNNb2NrQ2FtZXJhSW1hZ2UoaW1hZ2VEYXRhKTsKLSAgICBkZWJ1Z2UucmVtb3Zl
Q2hpbGQoY2FudmFzKTsKLSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQodmlkZW8pOwotfSwgZG9jdW1l
bnQudGl0bGUgKyAiIHZpYSBJbWFnZUJpdG1hcCB0byBXZWJHTCB0ZXh0dXJlIik7Citjb25zdCBm
dW5jcyA9IFt3aXRoMkRDb250ZXh0RHJhd0ltYWdlLCB3aXRoMkRDb250ZXh0RHJhd0ltYWdlSW1h
Z2VCaXRtYXAsIHdpdGhXZWJHTFRleEltYWdlLCB3aXRoV2ViR0xUZXhTdWJJbWFnZSwgd2l0aFdl
YkdMVGV4SW1hZ2VJbWFnZUJpdG1hcF07Citjb25zdCBzdWJjYXNlcyA9IFtdOworLy8gRklYTUU6
IDI3MCBub3QgdGVzdGVkIGJlY2F1c2UgaXQncyBub3QgcGFzc2VkIHRvIHRoZSBtb2NrIGFzIC05
MC4gQ3VycmVudGx5IG5vdCBjaGFuZ2VkIHRvCisvLyBhdm9pZCByZWdyZXNzaW5nLgorZm9yIChs
ZXQgYW5nbGUgb2YgWzAsIDkwLCAxODBdKSB7CisgICAgZm9yIChsZXQgZnVuYyBvZiBmdW5jcykK
KyAgICAgICAgc3ViY2FzZXMucHVzaCh7IGFuZ2xlOiBhbmdsZSwgdGVzdDogZnVuYyB9KTsKK30K
IAorcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIHQuYWRkX2NsZWFudXAoYXN5bmMgKCkg
PT4gc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50YXRpb24oMCkpOworICAgIGxldCB2aWRlbyA9IGF3
YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7CisgICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7CisgICAg
bGV0IHJlYWxWaWRlb1NpemUgPSBbdmlkZW8udmlkZW9XaWR0aCwgdmlkZW8udmlkZW9IZWlnaHRd
OworCisgICAgZm9yIChsZXQgc3ViY2FzZSBvZiBzdWJjYXNlcykgeworICAgICAgICBsZXQgZGVz
YyA9IGBzdWJ0ZXN0IG5hbWU6ICR7c3ViY2FzZS50ZXN0Lm5hbWV9IGFuZ2xlOiR7c3ViY2FzZS5h
bmdsZX1gOworICAgICAgICBpZiAoc3ViY2FzZS5hbmdsZSA9PSAxODApIHsKKyAgICAgICAgICAg
IC8vIDAgLT4gMTgwIGNhbm5vdCBkZXRlY3Qgcm90YXRpb24gdmlhIHZpZGVvIHNpemUgY2hhbmdl
LiBHbyB2aWEgOTAuCisgICAgICAgICAgICBsZXQgW2FuZ2xlLCB2aWRlb1NpemVdID0gc2V0TW9j
a0NhbWVyYUltYWdlT3JpZW50YXRpb24oOTAsIHJlYWxWaWRlb1NpemUpOworICAgICAgICAgICAg
YXdhaXQgd2FpdEZvclZpZGVvU2l6ZSh2aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVbMV0p
OworICAgICAgICB9CisgICAgICAgIGxldCBbYW5nbGUsIHZpZGVvU2l6ZV0gPSBzZXRNb2NrQ2Ft
ZXJhSW1hZ2VPcmllbnRhdGlvbihzdWJjYXNlLmFuZ2xlLCByZWFsVmlkZW9TaXplKTsKKyAgICAg
ICAgYXdhaXQgd2FpdEZvclZpZGVvU2l6ZSh2aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVb
MV0pOworCisgICAgICAgIGxldCBjYW52YXMgPSBjcmVhdGVWZXJpZnlDYW52YXModmlkZW8pOwor
ICAgICAgICBkZWJ1Z2UuYXBwZW5kQ2hpbGQoY2FudmFzKTsKKyAgICAgICAgbGV0IGltYWdlRGF0
YSA9IGF3YWl0IHN1YmNhc2UudGVzdCh2aWRlbywgY2FudmFzKTsKKyAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICAgIGFzc2VydEltYWdlRGF0YUNvbnRhaW5zTW9ja0NhbWVyYUltYWdlKGltYWdlRGF0
YSwgYW5nbGUsIGRlc2MpOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAvLyBV
c2UgdGhpcyBmb3IgZGVidWdnaW5nOgorICAgICAgICAgICAgLy8gYXdhaXQgd2FpdEZvcigxMDAw
MDApOworICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfQorICAgICAgICBkZWJ1Z2UucmVt
b3ZlQ2hpbGQoY2FudmFzKTsKKyAgICAgICAgLy8gUmVzZXQgb3JpZW50YXRpb24gZm9yIHRoZSBu
ZXh0IHRlc3QgYnkgZ29pbmcgdG8gMC4KKyAgICAgICAgaWYgKHN1YmNhc2UuYW5nbGUgPT0gMTgw
KSB7CisgICAgICAgICAgICAvLyAxODAgLT4gMCBjYW5ub3QgZGV0ZWN0IHJvdGF0aW9uIHZpYSB2
aWRlbyBzaXplIGNoYW5nZS4gR28gdmlhIDkwLgorICAgICAgICAgICAgbGV0IFthbmdsZSwgdmlk
ZW9TaXplXSA9IHNldE1vY2tDYW1lcmFJbWFnZU9yaWVudGF0aW9uKDkwLCByZWFsVmlkZW9TaXpl
KTsKKyAgICAgICAgICAgIGF3YWl0IHdhaXRGb3JWaWRlb1NpemUodmlkZW8sIHZpZGVvU2l6ZVsw
XSwgdmlkZW9TaXplWzFdKTsKKyAgICAgICAgfQorICAgICAgICBzZXRNb2NrQ2FtZXJhSW1hZ2VP
cmllbnRhdGlvbigwKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvclZpZGVvU2l6ZSh2aWRlbywgcmVh
bFZpZGVvU2l6ZVswXSwgcmVhbFZpZGVvU2l6ZVsxXSk7CisgICAgfQorICAgIGRlYnVnZS5yZW1v
dmVDaGlsZCh2aWRlbyk7Cit9LCBkb2N1bWVudC50aXRsZSk7CiAgICAgICAgIDwvc2NyaXB0Pgog
ICAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0
aW5lcy5qcyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcwppbmRleCBmODM3YWEwMGQ3
YWUzNzhiNDU1YzhjY2E0NDk4MTk1MGJhMDVlMDlhLi4yY2ZmNjllNjUxYjk0MTdiNWUxOTk4YmJk
NTY3OTIxOWE1N2YyY2UxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMu
anMKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVzLmpzCkBAIC0yNTMsNyArMjUzLDcg
QEAgYXN5bmMgZnVuY3Rpb24gY29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0sIHZpZGVvKQogewogICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAgIGludGVybmFscy5vYnNlcnZlTWVkaWFT
dHJlYW1UcmFjayhzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSk7Ci0gICAgICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgICAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkp
OwogICAgICAgICByZXR1cm4gaW50ZXJuYWxzLnRyYWNrVmlkZW9TYW1wbGVDb3VudDsKICAgICB9
CiAKQEAgLTI3Myw3ICsyNzMsNyBAQCBhc3luYyBmdW5jdGlvbiBjb21wdXRlRnJhbWVSYXRlKHN0
cmVhbSwgdmlkZW8pCiAgICAgYXdhaXQgdmlkZW8ucGxheSgpOwogCiAgICAgY29uc3Qgc3RhdHMx
ID0gYXdhaXQgZ2V0UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24pOwotICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgIGF3
YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7CiAg
ICAgY29uc3Qgc3RhdHMyID0gYXdhaXQgZ2V0UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24p
OwogICAgIHJldHVybiAoc3RhdHMyLmZyYW1lc1JlY2VpdmVkIC0gc3RhdHMxLmZyYW1lc1JlY2Vp
dmVkKSAqIDEwMDAgLyAoc3RhdHMyLnRpbWVzdGFtcCAtIHN0YXRzMS50aW1lc3RhbXApOwogfQpA
QCAtMjk4LDYgKzI5OCwyMCBAQCBmdW5jdGlvbiBzZXRIMjY0SGlnaENvZGVjKHNkcCkKICAgICB9
KS5qb2luKCdcclxuJyk7CiB9CiAKKy8vIFNldHMgdGhlIGNhbWVyYSBpbWFnZSBvcmllbnRhdGlv
biBpZiBydW5uaW5nIG9uIHRlc3QgcnVubmVyLgorLy8gYW5nbGU6IG9yaWVudGF0aW9uIGFuZ2xl
IG9mIHRoZSBjYW1lcmEgaW1hZ2UgaW4gZGVncmVlcworZnVuY3Rpb24gc2V0TW9ja0NhbWVyYUlt
YWdlT3JpZW50YXRpb24oYW5nbGUsIHZpZGVvU2l6ZSkgeworICAgIGlmIChbMCwgOTAsIDE4MCwg
MjcwXS5pbmRleE9mKGFuZ2xlKSA9PSAtMSkKKyAgICAgICAgdGhyb3cgImludmFsaWQgYW5nbGUi
OworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldE1v
Y2tDYW1lcmFPcmllbnRhdGlvbihhbmdsZSk7CisgICAgICAgIGlmICh2aWRlb1NpemUgJiYgKGFu
Z2xlID09IDkwIHx8IGFuZ2xlID09IDI3MCkpCisgICAgICAgICAgICB2aWRlb1NpemUgPSBbdmlk
ZW9TaXplWzFdLCB2aWRlb1NpemVbMF1dOworICAgICAgICByZXR1cm4gW2FuZ2xlLCB2aWRlb1Np
emVdOworICAgIH0KKyAgICByZXR1cm4gWzAsIHZpZGVvU2l6ZV07Cit9CisKIC8vIFJldHVybnMg
VWludDhBcnJheVs0XSBvZiBSR0JBIGNvbG9yLgogLy8gcDogW3gsIHldIG9mIDAuLjEgcmFuZ2Uu
CiBmdW5jdGlvbiBnZXRJbWFnZURhdGFQaXhlbChpbWFnZURhdGEsIHApCkBAIC0zMTEsMTYgKzMy
NSwzMyBAQCBmdW5jdGlvbiBnZXRJbWFnZURhdGFQaXhlbChpbWFnZURhdGEsIHApCiAvLyBBc3Nl
cnRzIHRoYXQgSW1hZ2VEYXRhIGluc3RhbmNlIGNvbnRhaW5zIG1vY2sgY2FtZXJhIGltYWdlIHJl
bmRlcmVkIGJ5IE1pbmlCcm93c2VyIGFuZCBXZWJLaXRUZXN0UnVubmVyLgogLy8gT2J0YWluIGZ1
bGwgY2FtZXJhIGltYWdlIG9mIHNpemUgYHdpZHRoYDoKIC8vICBhd2FpdCBuYXZpZ2F0b3IubWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiB7IGV4YWN0OiB3aWR0aCB9
IH0gfSk7Ci1mdW5jdGlvbiBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShp
bWFnZURhdGEpCitmdW5jdGlvbiBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFn
ZShpbWFnZURhdGEsIGFuZ2xlLCBkZXNjKQogeworICAgIGFuZ2xlID0gYW5nbGUgfHwgMDsKKyAg
ICBkZXNjID0gZGVzYyB8fCAiIjsKKworICAgIGZ1bmN0aW9uIHJvdGF0ZVBvaW50KHApIHsKKyAg
ICAgICAgbGV0IGEgPSBhbmdsZTsKKyAgICAgICAgbGV0IG4gPSBbIHBbMF0sIHBbMV0gXTsKKyAg
ICAgICAgd2hpbGUgKGEgPiAwKSB7CisgICAgICAgICAgICBuID0gWyAxLjAgLSBuWzFdLCBuWzBd
IF07CisgICAgICAgICAgICBhIC09IDkwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuOwor
ICAgIH0KKwogICAgIGNvbnN0IHdoaXRlID0gWyAyNTUsIDI1NSwgMjU1LCAyNTUgXTsKKyAgICBj
b25zdCB3aGl0ZVBvaW50ID0gcm90YXRlUG9pbnQoWyAwLjA0LCAwLjcgXSk7CiAgICAgY29uc3Qg
eWVsbG93ID0gWyAyNTUsIDI1NSwgMCwgMjU1IF07CisgICAgY29uc3QgeWVsbG93UG9pbnQgPSBy
b3RhdGVQb2ludChbIDAuMDgsIDAuNyBdKTsKICAgICBjb25zdCBjeWFuID0gWyAwLCAyNTUsIDI1
NSwgMjU1IF07CisgICAgY29uc3QgY3lhblBvaW50ID0gcm90YXRlUG9pbnQoWyAwLjEyLCAwLjcg
XSk7CiAgICAgY29uc3QgbGlnaHRHcmVlbiA9IFsgMCwgMTI4LCAwLCAyNTUgXTsKKyAgICBjb25z
dCBsaWdodEdyZWVuUG9pbnQgPSByb3RhdGVQb2ludChbIDAuMTYsIDAuNyBdKTsKIAotICAgIGxl
dCBlcnIgPSAzOwotICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBp
eGVsKGltYWdlRGF0YSwgWyAwLjA0LCAwLjcgXSksIHdoaXRlLCBlcnIsICJ3aGl0ZSByZWN0IG5v
dCBmb3VuZCIpOwotICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBp
eGVsKGltYWdlRGF0YSwgWyAwLjA4LCAwLjcgXSksIHllbGxvdywgZXJyLCAieWVsbG93IHJlY3Qg
bm90IGZvdW5kIik7Ci0gICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRh
UGl4ZWwoaW1hZ2VEYXRhLCBbIDAuMTIsIDAuNyBdKSwgY3lhbiwgZXJyLCAiY3lhbiByZWN0IG5v
dCBmb3VuZCIpOwotICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBp
eGVsKGltYWdlRGF0YSwgWyAwLjE2LCAwLjcgXSksIGxpZ2h0R3JlZW4sIGVyciwgImxpZ2h0IGdy
ZWVuIHJlY3Qgbm90IGZvdW5kIik7CisgICAgbGV0IGVyciA9IDExOworICAgIGFzc2VydF9hcnJh
eV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgd2hpdGVQb2ludCks
IHdoaXRlLCBlcnIsICJ3aGl0ZSByZWN0IG5vdCBmb3VuZCAiICsgZGVzYyk7CisgICAgYXNzZXJ0
X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCB5ZWxsb3dQ
b2ludCksIHllbGxvdywgZXJyLCAieWVsbG93IHJlY3Qgbm90IGZvdW5kIiArIGRlc2MpOworICAg
IGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwg
Y3lhblBvaW50KSwgY3lhbiwgZXJyLCAiY3lhbiByZWN0IG5vdCBmb3VuZCAiICsgZGVzYyk7Cisg
ICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRh
LCBsaWdodEdyZWVuUG9pbnQpLCBsaWdodEdyZWVuLCBlcnIsICJsaWdodCBncmVlbiByZWN0IG5v
dCBmb3VuZCAiICsgZGVzYyk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449471</attachid>
            <date>2022-01-19 02:58:31 -0800</date>
            <delta_ts>2022-01-19 04:37:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235233-20220119125829.patch</filename>
            <type>text/plain</type>
            <size>79645</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAwODliMmFlOGM0YTE0
ZGNmNGYwYTFlZjc4ZTE5ZjQ4ZmNiMjU0NC4uNmE4ODk1ZTdlNDBiMWVlMjlkZDRkMTE1NTRkZjhj
MGU2ODYxN2YwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIyLTAxLTE3ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdl
YkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlh
IGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NjAxNzYyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgZnVsbCB0ZXh0
dXJlIHVwbG9hZHMgZnJvbSBNZWRpYVN0cmVhbSBjYW1lcmEgY2FwdHVyZXMgdXNlIENWUGl4ZWxC
dWZmZXJzCisgICAgICAgIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcGl4ZWxzIGJhY2suCisgICAg
ICAgIEltcGxlbWVudCBNZWRpYVBsYXllckludGVyZmFjZTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50
VGltZSgpIGZvcgorICAgICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
CisgICAgICAgIFJlbmFtZSBmdW5jdGlvbnMgZnJvbSBwaXhlbEJ1ZmZlci4uLiB0byB2aWRlb0Zy
YW1lLgorICAgICAgICBVc2UgbmV3IHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGluc3RlYWQg
b2YgQ1ZQaXhlbEJ1ZmZlci4KKyAgICAgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGNvbnRhaW5z
IGFsc28gdGhlIGZyYW1lIG9yaWVudGF0aW9uLiBUaGUKKyAgICAgICAgb3JpZW50YXRpb24gaXMg
bmVlZGVkIGFzIHRoZSBjYW1lcmEgbWlnaHQgY2FwdHVyZSB0aGUgaW1hZ2UKKyAgICAgICAgd2l0
aCBhIHJvdGF0aW9uIG9yIGEgZmxpcC4KKworICAgICAgICBUbyBhdm9pZCBpZmRlZnMsIHRoZSBu
ZXcgQVBJIHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSBleGlzdHMKKyAgICAgICAgZm9yIGFsbCBw
bGF0Zm9ybXMsIGJ1dCBpcyBjdXJyZW50bHkgY2FsbGVkIG9ubHkgYnkgQ29jb2EuCisgICAgICAg
IEFsc28gdGhlIHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGV4aXN0cyBmb3IgYWxsIHBsYXRm
b3JtcworICAgICAgICBidXQgaGFzIHRoZSBmcmFtZSBjb250ZW50cyBpbXBsZW1lbnRhdGlvbiBv
bmx5IGZvciBDb2NvYS4KKworICAgICAgICBUZXN0ZWQgYnkgZmFzdC9tZWRpYXN0cmVhbS9nZXRV
c2VyTWVkaWEtdG8tY2FudmFzLmh0bWwKKworICAgICAgICBDdXJyZW50bHkgdGhlICJtaXJyb3Jl
ZCIgcGFydCBpcyB0ZXN0ZWQgbWFudWFsbHksIFdlYktpdAorICAgICAgICBkb2VzIG5vdCByZXF1
ZXN0IG1pcnJvcmVkIGNhbWVyYSBpbWFnZSBzbyBpdCBpcyBkZWFkIGNvZGUuCisKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6
OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnZpZGVvRnJhbWVGb3JDdXJyZW50
VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnBp
eGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyVmlkZW9GcmFtZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyVmlkZW9GcmFtZTo6b3JpZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpwaXhlbEJ1ZmZlciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU6Om9wZXJhdG9yPT0gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpkZWNvZGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclZpZGVvRnJhbWVBVkYu
bW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBo
aWNzQ29udGV4dEdMQ1YuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFt
ZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwaXhlbEJ1
ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OnZpZGVvT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZy
b21NZWRpYSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0
R0xDVi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdM
Q1ZDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6
OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2E6OmNvcHlWaWRlb0ZyYW1lVG9UZXh0dXJlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuaDoKKwogMjAyMi0wMS0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZXNldCBz
aG91bGQgaG9wIHRvIHRoZSBtYWluIHRocmVhZCBiZWZvcmUgY2FsbGluZyBpdHMgb2JzZXJ2ZXJz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDc5MzU1YjkzOTU2ZTAzNDU0YzE2NmNhNWNkM2NmOTMzYTIxNWFiMjUuLjRk
NWZjMTQyMjViOTA5NDI3MmRhYmI4OGI3ODhjZmE2MDMzZGUzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzEgQEAKKzIwMjItMDEtMTcgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNv
bT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViR0wgR1BVIGJ1ZmZlciB0ZXh0dXJlIHVwbG9hZCBw
YXRoIGZvciBDb2NvYSBnZXRVc2VyTWVkaWEgY2FtZXJhIHN0cmVhbXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTIzMworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vODc2MDE3NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVuYW1lIGZ1bmN0aW9ucyBmcm9tIHBpeGVsQnVmZmVyLi4uIHRvIHZpZGVv
RnJhbWUuCisgICAgICAgIFNlbmQgbmV3IHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGluc3Rl
YWQgb2YgQ1ZQaXhlbEJ1ZmZlci4KKyAgICAgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGNvbnRh
aW5zIGFsc28gdGhlIGZyYW1lIG9yaWVudGF0aW9uLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hh
bmdlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSk6IERlbGV0ZWQuCisKIDIwMjItMDEtMTcgIENoYW5nU2VvayBPaCAgPGNoYW5n
c2Vva0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtHVEtdIEltcGxlbWVudCBmb3JtIHZhbGlkYXRp
b24gd2l0aCBndGszIHdpZGdldHMgaW4gdGhlIFVJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IDg4OTBmOGRiYTQ3NGMzOTJjMzczMjk4ZGE3NTgwZjcxOWNlNWMzZGUuLjc4ZTdiYzkxMjY3
MjYyNTk1NDgxYTkyODUyNGU5ODBmYmE1NDM4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTUx
MSw2ICsxNTExLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyRW51bXMuaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVySWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclZpZGVvRnJh
bWUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZS5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVVzYWdlSW5mby5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAyYzNi
NGY4MWE1MmY1NjY5OWNiZmQ0MTJkZmFjMDk0MzY2NmFlYWU3Li5kZDFlZDhhZTYyZjJhNGIyZTYz
ZDFlZDE5MzUxNTk4ZmVlMGRiY2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTI5Niw2
ICsyOTYsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAorcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbQogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYjA4MWI2YTE5ZDNkZDVmYjY3ZmIxNmU3YmZhOWM3NTg2ZmY5ZjFhZC4uMjkyYjVjMTFj
Njg3NGU5MjBiZjI1MTlhNTY3YzA3OGJmZjAxNTk3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQwLDYgKzI0MCw3IEBACiAJ
CTA4MUVCRjNCMEZEMzRGNDEwMERBNzU1OSAvKiBTVkdGaWx0ZXJCdWlsZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODFFQkYzOTBGRDM0RjQxMDBE
QTc1NTkgLyogU1ZHRmlsdGVyQnVpbGRlci5oICovOyB9OwogCQkwODNEQUVBNzBGMDFBN0ZCMDAz
NDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4M0RBRUEzMEYwMUE3RkIwMDM0Mjc1NCAvKiBS
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oICovOyB9OwogCQkwODNEQUVBOTBGMDFBN0ZCMDAz
NDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODNEQUVBNTBGMDFBN0ZCMDAzNDI3NTQgLyog
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggKi87IH07CisJCTA4NDRCMDFEMTI1NUI0RTYw
MEI5Q0REMCAvKiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODQ0QjAxRDEyNTVFNEU2MDBCOUNERDAgLyog
U1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5oICovOyB9OwogCQkwODQ1NjgwODEyQjkwREE2MDA5
NjBBOUYgLyogRm9udE1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA4NDU2ODA3MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA4NTRCMDE1
MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDAzMTI1NUU0RTYwMEI5Q0REMCAvKiBS
ZW5kZXJTVkdJbmxpbmUuaCAqLzsgfTsKIAkJMDg1NEIwMTcxMjU1RTRFNjAwQjlDREQwIC8qIFJl
bmRlclNWR0lubGluZVRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA4NTRCMDA1MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmVUZXh0
LmggKi87IH07CkBAIC0yMzkxLDYgKzIzOTIsNyBAQAogCQk3QUY5QjIwRjE4Q0ZCNUY0MDBDNjRC
RUYgLyogSlNWVFRSZWdpb25MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QUY5QjIwQjE4Q0ZCNUYzMDBDNjRCRUYgLyogSlNWVFRSZWdpb25MaXN0
LmggKi87IH07CiAJCTdCMTAzMzlFMjU0OTcyMTcwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRH
TENWLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEw
MzM5RDI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCMTAzMzlGMjU0OTcyMUUw
MEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBH
cmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk3QjQ0MTBFMTI3OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFQbGF5
ZXJWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I2MDk0
REQyNzBDNDRCRDAwNjQ4MzVDIC8qIEFOR0xFVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkIzNEExNjI1MzQ1Q0IyMDAwMjlEMDggLyog
QU5HTEVVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QjZEQzgxOTI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJ
T1N1cmZhY2VTd2FwQ2hhaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCNkRDODE3MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElP
U3VyZmFjZVN3YXBDaGFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTdCNzIwQjBDMjc0M0RCQTcwMDA4QUJFRCAvKiBHcmFwaGljc0xheWVyQ29u
dGVudHNEaXNwbGF5RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdCNzIwQjBBMjc0M0RCQTYwMDA4QUJFRCAvKiBHcmFwaGljc0xheWVyQ29u
dGVudHNEaXNwbGF5RGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtNDYzNiw4ICs0NjM4LDggQEAKIAkJQ0RGNzQ3RjEyNzBGNzY2RjAw
OEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RjAyNzBGNzY2RjAwOEZFRUVD
IC8qIFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oICovOyB9OwogCQlDREY3NDdGMzI3
MEY3NkNGMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0N0Yy
MjcwRjc2Q0YwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5l
cy5oICovOyB9OwogCQlDREY3NDdGNTI3MEY4M0IxMDA4RkVFRUMgLyogUmVuZGVyU1ZHR3JhZGll
bnRTdG9wSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RGNzQ3RjQyNzBGODNCMTAwOEZFRUVDIC8qIFJlbmRlclNWR0dyYWRpZW50U3RvcElu
bGluZXMuaCAqLzsgfTsKLQkJQ0RGNzQ3RjcyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRl
clNWR1NoYXBlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RGNzQ3RjYyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRlclNWR1NoYXBl
SW5saW5lcy5oICovOyB9OwogCQlDREY3NDdGNzI3MEY4M0I0MTA3REVFRUMgLyogUmVuZGVyU1ZH
U2hhcGVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREY3NDdGNjI3MEY4M0I0MTA3REVFRUMgLyogUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmgg
Ki87IH07CisJCUNERjc0N0Y3MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFw
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERjc0N0Y2MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMu
aCAqLzsgfTsKIAkJQ0RGNzQ3RjkyNzBGODdDQjAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNl
UmFkaWFsR3JhZGllbnRJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREY3NDdGODI3MEY4N0NCMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3Vy
Y2VSYWRpYWxHcmFkaWVudElubGluZXMuaCAqLzsgfTsKIAkJQ0RGNzQ3RkIyNzBGODkxQTAwOEZF
RUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTWFza2VySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RkEyNzBGODkxQTAwOEZFRUVDIC8q
IFJlbmRlclNWR1Jlc291cmNlTWFza2VySW5saW5lcy5oICovOyB9OwogCQlDREY3NDgzRjE4RkVC
Q0VDMDAwNkVDQzAgLyogR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDgzRDE4RkVCQ0VDMDAwNkVDQzAgLyog
R3JpZFBvc2l0aW9uc1Jlc29sdmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTYxOTgsMTAgKzYyMDAsMTIgQEAKIAkJMDgxQUE4RDkxMTExMjM3
RTAwMkFCMDZFIC8qIFNWR0VsZW1lbnRSYXJlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdFbGVtZW50UmFyZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDgxRUJGMzgwRkQzNEY0MTAwREE3NTU5IC8qIFNWR0ZpbHRlckJ1aWxkZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRmlsdGVyQnVpbGRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4MUVCRjM5MEZEMzRGNDEwMERBNzU1OSAv
KiBTVkdGaWx0ZXJCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R0ZpbHRlckJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDgzNEIwMEMx
MjQ0RTRFNjAwQjlDREQwIC8qIFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4M0RBRUEyMEYwMUE3RkIwMDM0Mjc1
NCAvKiBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4M0RBRUEzMEYwMUE3RkIwMDM0Mjc1NCAvKiBSZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwODNEQUVBNDBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4M0RBRUE1
MEYwMUE3RkIwMDM0Mjc1NCAvKiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4NDRCMDFEMTI1NUU0RTYwMEI5Q0REMCAv
KiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDg0NTY4MDcxMkI5MERBNjAwOTYwQTlGIC8qIEZvbnRNZXRyaWNzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRNZXRyaWNzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA4NTRCMDAyMTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxp
bmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHSW5s
aW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg1NEIwMDMxMjU1RTRFNjAw
QjlDREQwIC8qIFJlbmRlclNWR0lubGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJTVkdJbmxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEx
NDY5LDYgKzExNDczLDggQEAKIAkJN0IxMDMzOUMyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNz
Q29udGV4dEdMQ1ZDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxMDMzOUQyNTQ5NzIwMTAwQzhD
MUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjE2MTkxMDI3MTk4ODBF
MDBDNDBFQUMgLyogV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I0NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlh
UGxheWVyVmlkZW9GcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRp
YVBsYXllclZpZGVvRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I0NDEw
RTIyNzk1OEZERTAwMEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE1lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTUyNTcxMkU5MTAwMzgwQzcwIC8qIEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBo
aWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNzIwQjBBMjc0M0RCQTYwMDA4QUJFRCAvKiBHcmFwaGlj
c0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzQwNyw5ICsxMzQxMyw5IEBACiAJCUExMEJCNTgzMTQ4
NEUzQTcwMEIyRTg3QSAvKiBMZWdhY3lSZW5kZXJTVkdSZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1JlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEwQkI1ODMxNDg0RTNBNzAwQjNBQjZEIC8qIFJlbmRlclNWR1JlY3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHUmVjdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBCQjU4ODE0ODRFM0IzMDBCMkU4N0EgLyogTGVnYWN5
UmVuZGVyU1ZHU2hhcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TGVnYWN5UmVuZGVyU1ZHU2hhcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
MTBDQzU4ODE0NzNFM0IzMDBCMkE4QkYgLyogUmVuZGVyU1ZHU2hhcGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMTBCQjU4OTE0ODRFM0IzMDBCMkU4N0EgLyogTGVnYWN5UmVu
ZGVyU1ZHU2hhcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UmVu
ZGVyU1ZHU2hhcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwQkI1ODkxNDg0
RTNCMzAwQzNGNzdCIC8qIFJlbmRlclNWR1NoYXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUExMENDNTg4MTQ3M0UzQjMwMEIyQThCRiAvKiBSZW5kZXJTVkdTaGFwZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdTaGFwZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEQ2RTk0MjE0NEM5OTgwMEZERDE0RCAvKiBKU1BheW1l
bnRSZXNwb25zZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BheW1lbnRSZXNwb25z
ZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMERCRjQ2MThGOTIz
MTcwMDBENzBDNiAvKiBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwREM3NjgxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3Jp
ZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVHcmlk
RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjMxMSw4ICsxNjMxNyw4
IEBACiAJCUNERjc0N0YwMjcwRjc2NkYwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtl
cklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXJJbmxpbmVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjc0N0YyMjcwRjc2Q0YwMDhGRUVF
QyAvKiBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5lcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGNDI3MEY4M0IxMDA4RkVFRUMgLyogUmVuZGVyU1ZH
R3JhZGllbnRTdG9wSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdHcmFkaWVudFN0
b3BJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNERjc0N0Y2MjcwRjg2
QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNERjc0N0Y2MjcwRjgzQjQxMDdERUVFQyAvKiBSZW5kZXJTVkdTaGFwZUlubGluZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNERjc0N0Y2MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJT
VkdTaGFwZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjc0N0Y4MjcwRjg3Q0IwMDhG
RUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50SW5saW5lcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50SW5saW5lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGQTI3MEY4OTFBMDA4RkVFRUMgLyogUmVuZGVy
U1ZHUmVzb3VyY2VNYXNrZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1Jlc291
cmNlTWFza2VySW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDgz
QzE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODcwMyw2ICsxODcwOSw3IEBACiAJCQkJMDcx
RTQ5NkQxQUQ1QUEwRDAwOEE1MEI0IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbSAqLywK
IAkJCQkwNzZGMEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmNwcCAqLywKIAkJCQkwNzZGMEQwQTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggKi8sCisJCQkJN0I0NDEwRTIyNzk1OEZERTAwMEI0RjhB
IC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbSAqLywKIAkJCQlDREJFQUVBQjE5RDkyQjZD
MDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCAqLywKIAkJCQlDREJFQUVB
QTE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0gKi8sCiAJ
CQkJNDEwMjRGQzgyM0NGMjU0RjAwRkRGOThFIC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5j
cHAgKi8sCkBAIC0yODkyOCw2ICsyODkzNSw3IEBACiAJCQkJQ0Q1MjA5RTMxQjBCRDgzODAwNzcx
ODRFIC8qIE1lZGlhUGxheWVyRW51bXMuaCAqLywKIAkJCQlGNDI5MjYxNzI1MjY0RDQ0MDAwMDc4
OTggLyogTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmggKi8sCiAJCQkJMDc5RjVFNEIwRjNCRUJFQTAw
NUUwNzgyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZS5oICovLAorCQkJCTdCNDQxMERGMjc5NThGQzQw
MDBCNEY4QSAvKiBNZWRpYVBsYXllclZpZGVvRnJhbWUuaCAqLywKIAkJCQlDRDY0MUVCMTE4MThG
NUVEMDBFRTRDNDEgLyogTWVkaWFTb3VyY2VQcml2YXRlLmggKi8sCiAJCQkJQ0REQzFFNzkxOEE5
NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oICovLAogCQkJCTA3NjEx
REI4MjQzRkI3NUMwMEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oICovLApAQCAtMzYxMDYsNiAr
MzYxMTQsNyBAQAogCQkJCURGOUFGRDcyMTNGQzMxRDgwMDE1RkVCNyAvKiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM4QjVBMzE4MDQ2
MzQ3MDAxNkU2ODUgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNTA1MjRGNDFCNzEyRkY2MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjQ0MTBFMTI3
OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwNzdCQTU3NjI2MEZBREY2MDA3MkYxOUYgLyogTWVkaWFQb3NpdGlvblN0YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MkUyQ0FGQzE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlh
UXVlcnkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGMxMjgxYTQ0NmIxNTY1OTA5YjMxNDRhNzgyYzk5
NzhlZTkwODlmZTIuLjc3NDc2OGUyYzE5Mjc2MWY4MGE4NTZkYTkyZTJhZjZhODhkODdmYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
QEAgLTEwNjIsMTUgKzEwNjIsMTMgQEAgYm9vbCBNZWRpYVBsYXllcjo6Y29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiBjb250ZXh0LAogICAgIHJldHVy
biBtX3ByaXZhdGUtPmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShjb250ZXh0LCB0
ZXh0dXJlLCB0YXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVt
dWx0aXBseUFscGhhLCBmbGlwWSk7CiB9CiAKLSNlbHNlCisjZW5kaWYKIAotUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkK
K3N0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiBNZWRpYVBsYXllcjo6dmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5waXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lKCk7CiB9CiAKLSNlbmRpZgotCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxh
eWVyOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICByZXR1cm4gbV9wcml2YXRl
LT5uYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBjMTNkNzAzMmYyOGNjZDkwODcyYjA5Mjc2
ZDkzNzJhNDI2NTNhMjAxLi4yN2E2OTA3M2MzODA3NTQxNGJhNzIxMTA3Y2I1MGQwY2ZmNGZkODQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJFbnVtcy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVySWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luRGF0YS5oIgpAQCAtNDY3LDEwICs0NjgsOCBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIGN1cnJl
bnQgcmVzdHJpY3Rpb25zIHJlcXVpcmUgdGhhdCBmb3JtYXQgc2hvdWQgYmUgUkdCIG9yIFJHQkEs
IHR5cGUgc2hvdWxkIGJlIFVOU0lHTkVEX0JZVEUgYW5kIGxldmVsIHNob3VsZCBiZSAwLiBJdCBt
YXkgYmUgbGlmdGVkIGluIHRoZSBmdXR1cmUuCiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAg
Ym9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wq
LCBQbGF0Zm9ybUdMT2JqZWN0IHRleHR1cmUsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZl
bCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlw
ZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKTsKLSNlbHNlCi0gICAgUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKICNlbmRp
ZgotCisgICAgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZSgpOwogICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JD
dXJyZW50VGltZSgpOwogICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQ
cml2YXRlLmgKaW5kZXggNmU0NzdiY2FmOWM0ODU3YTAxNzcyNjU3MjJmODFiZjg0ZmJjMzBkZS4u
MDg1ZjhhYjM1ZDhmNWZkNWE4NjM5Y2Y0ODg0ZWRkMTZjMDUyOWU5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAg
LTI5LDggKzI5LDEwIEBACiAKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1l
ZGlhUGxheWVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyVmlkZW9GcmFtZS5o
IgogI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2Vz
LmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVy
Lmg+CiAKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKQEAgLTE3OCw5ICsxODAs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0
KEdyYXBoaWNzQ29udGV4dCYgYywgY29uc3QgRmxvYXRSZWN0JiByKSB7IHBhaW50KGMsIHIpOyB9
CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3Qs
IEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBi
b29sKSB7IHJldHVybiBmYWxzZTsgfQotI2Vsc2UKLSAgICB2aXJ0dWFsIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbnVsbHB0
cjsgfQogI2VuZGlmCisgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9G
cmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9
CiAgICAgdmlydHVhbCBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRp
bWUoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2UgY29sb3JTcGFjZSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclZpZGVvRnJhbWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTViYzk0
MjUwYzMzNmUwOTIwMjFlYmFiMmE0ZGRiYmU3MDVlYmZlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgKQEAg
LTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKyNpbmNsdWRlICJJbWFnZU9y
aWVudGF0aW9uLmgiCisKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KKwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsK
KyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhUGxheWVyVmlkZW9G
cmFtZSB7CitwdWJsaWM6CisgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lKCkgPSBkZWxldGU7Cisj
aWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVBsYXllclZpZGVv
RnJhbWUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYsIEltYWdlT3JpZW50YXRpb24pOwor
I2VuZGlmCisKKyAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9vcmllbnRhdGlvbjsgfQorCisjaWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9waXhlbEJ1ZmZlci5nZXQo
KTsgfQorI2VuZGlmCisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTWVkaWFQbGF5ZXJWaWRl
b0ZyYW1lJiBvdGhlcikgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiBkZWNvZGUoRGVj
b2RlciYpOworCitwcml2YXRlOgorI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXI7CisjZW5kaWYKKyAgICBJbWFnZU9yaWVu
dGF0aW9uIG1fb3JpZW50YXRpb247Cit9OworCitpbmxpbmUgYm9vbCBNZWRpYVBsYXllclZpZGVv
RnJhbWU6Om9wZXJhdG9yPT0oY29uc3QgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lJiBvdGhlcikgY29u
c3QKK3sKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIGlmIChtX3BpeGVsQnVmZmVyICE9IG90
aGVyLm1fcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIHJl
dHVybiBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbihvdGhlci5tX29yaWVudGF0aW9uKSA9
PSBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbihtX29yaWVudGF0aW9uKTsKK30KKwordGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBNZWRpYVBsYXllclZpZGVvRnJhbWU6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAg
ZW5jb2RlciA8PCBtX3BpeGVsQnVmZmVyOworICAgIGVuY29kZXIgPDwgSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZW50YXRpb24obV9vcmllbnRhdGlvbik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShl
bmNvZGVyKTsKKyNlbmRpZgorfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGQ6Om9w
dGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIHN0ZDo6
b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+PiBwaXhlbEJ1ZmZlcjsKKyAgICBk
ZWNvZGVyID4+IHBpeGVsQnVmZmVyOworICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgc3RkOjpvcHRpb25hbDxJbWFnZU9yaWVudGF0aW9uOjpP
cmllbnRhdGlvbj4gb3JpZW50YXRpb247CisgICAgZGVjb2RlciA+PiBvcmllbnRhdGlvbjsKKyAg
ICBpZiAoIW9yaWVudGF0aW9uKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJl
dHVybiBNZWRpYVBsYXllclZpZGVvRnJhbWUgeyBXVEZNb3ZlKCpwaXhlbEJ1ZmZlciksICpvcmll
bnRhdGlvbiB9OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyNlbmRpZgorfQorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclZpZGVv
RnJhbWVBVkYubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lQVZGLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1YzBkZGNhZmFkZDMx
ZWVmNjIyYzJhYWRmM2MwZDJlNjY1NWU0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1l
QVZGLm1tCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisj
aW5jbHVkZSAiTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpNZWRpYVBsYXllclZpZGVvRnJhbWUoUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+JiYgcGl4ZWxCdWZmZXIsIEltYWdlT3JpZW50YXRpb24gb3JpZW50
YXRpb24pCisgICAgOiBtX3BpeGVsQnVmZmVyKFdURk1vdmUocGl4ZWxCdWZmZXIpKQorICAgICwg
bV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKK3sKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaAppbmRleCA5NWEzNzg5YWQ2MjcxOWMxMDBiYzA2N2QzY2U4YWFhOTMyZDU3NDEx
Li5hYjY5ODNiZDk5NmNhOWRhZTM3NDJmNWM3NjQzYzVlYzBlZjgxNDI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oCkBAIC0yNjIsMTIgKzI2MiwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBkYXRl
TGFzdFBpeGVsQnVmZmVyKCk7CiAgICAgYm9vbCB2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1l
KCk7CiAgICAgdm9pZCBwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdl
PiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgRGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UoKSBmaW5hbDsKICAgICB2b2lkIHdhaXRGb3JWaWRlb091dHB1dE1l
ZGlhRGF0YVdpbGxDaGFuZ2UoKTsKIAotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBw
aXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgZmluYWw7Ci0KICNpZiBFTkFCTEUoTEVHQUNZX0VO
Q1JZUFRFRF9NRURJQSkKICAgICB2b2lkIGtleUFkZGVkKCkgZmluYWw7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPExlZ2FjeUNETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0sIExlZ2FjeUNETVNlc3Npb25DbGllbnQqKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCmluZGV4IGJkYzJhODJlNzNmNGZkZjg4YjVhNTRjOTk3ZjMyYmY2ODlkZTk5NmEuLmYzN2Rm
MDdlNjBjNzJhNDg5MTlhMjA1M2YwNTIyYzQwNzRkYTMyM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQpAQCAtMjYyNSwxMSArMjYyNSwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYgYwogCiB9
CiAKLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKK3N0ZDo6b3B0aW9uYWw8TWVk
aWFQbGF5ZXJWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewogICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigp
OwotCi0gICAgcmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyOworICAgIGlmICghbV9sYXN0UGl4ZWxC
dWZmZXIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIE1lZGlhUGxh
eWVyVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUgfTsKIH0KIAogUmVmUHRyPE5hdGl2ZUltYWdlPiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggOTMxM2MxYjNkZjZkMzY5NjA4Yzc1NWYwNTVkNDYxZGFi
NWRmNzIyYS4uZDc0ODNlNzRlNzZlZTVhOGU4Mjg0NGE4ZGZlMWMxNmVhZDczNTI1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTIyMiw3ICsyMjIsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgdXBkYXRlTGFzdEltYWdlKCk7CiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5D
b250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwotICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkg
ZmluYWw7CisgICAgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xv
clNwYWNlKCkgZmluYWw7CiAKICAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmco
KSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCBiMmNlNmJi
YzdhYWNjOGNlY2MyMWM5NDEyOTVlNDMxOGFkY2I4OWEzLi4yZjJkZTQ1N2RmMDVhMzYyNDA1NTM5
NmQxMzcyYmJiNDA5OTMwNTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC03MjEs
NyArNzIxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBh
aW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ28KICAgICBjb250ZXh0LmRyYXdOYXRp
dmVJbWFnZSgqaW1hZ2UsIGltYWdlUmVjdC5zaXplKCksIG91dHB1dFJlY3QsIGltYWdlUmVjdCk7
CiB9CiAKLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQorc3RkOjpvcHRpb25h
bDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICAvLyBXZSBoYXZlIGJlZW4g
YXNrZWQgdG8gcGFpbnQgaW50byBhIFdlYkdMIGNhbnZhcywgc28gdGFrZSB0aGF0IGFzIGEgc2ln
bmFsIHRvIGNyZWF0ZQogICAgIC8vIGEgZGVjb21wcmVzc2lvbiBzZXNzaW9uLCBldmVuIGlmIHRo
YXQgbWVhbnMgdGhlIG5hdGl2ZSB2aWRlbyBjYW4ndCBhbHNvIGJlIGRpc3BsYXllZApAQCAtNzMz
LDggKzczMyw5IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OnBpeGVsQnVmZmVyRm9yCiAKICAgICBpZiAoIW1faXNHYXRo
ZXJpbmdWaWRlb0ZyYW1lTWV0YWRhdGEpCiAgICAgICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigp
OwotCi0gICAgcmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyOworICAgIGlmICghbV9sYXN0UGl4ZWxC
dWZmZXIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIE1lZGlhUGxh
eWVyVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUgfTsKIH0KIAogRGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y29sb3JTcGFjZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQy5oCmluZGV4IDZkOTU1Njc0ZDA2Mjc1YWU0MzNlNWE1NGEzN2MzNGU2YmYzN2Y5YTIuLjli
NmZkMmI1ZjI3NTQ5MjY3ZGIzOTkzYzk4OTVkYjE2MzIxNTg2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oCkBAIC0xNDIsNiArMTQyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGFpbnQo
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBw
YWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmKSBvdmVycmlkZTsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgb3ZlcnJpZGU7CiAgICAgRGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UoKSBvdmVycmlkZTsKICAgICBib29sIG1ldGFEYXRhQXZhaWxhYmxl
KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0cmVhbVByaXZhdGUgJiYgbV9yZWFkeVN0YXRlID49
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGE7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tCmluZGV4IDQ5ZjQyZjljMDJiODI5NTMyNTc3MzhjMzQ0MDQzZGViNDEwODUx
YzIuLmFiZmFmMWM3YTM1ZGUxZDJmMWQxNjAxOWE4ZTMzN2QzODU2MDM5NDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KQEAgLTI0NCw2ICsyNDQsMjIgQEAgc3RhdGljIGlubGluZSBDR0Fm
ZmluZVRyYW5zZm9ybSB2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KE1lZGlhU2FtcGxlJiBzYW1w
bGUpCiAgICAgcmV0dXJuIHZpZGVvVHJhbnNmb3JtOwogfQogCitzdGF0aWMgaW5saW5lIEltYWdl
T3JpZW50YXRpb24gdmlkZW9PcmllbnRhdGlvbihNZWRpYVNhbXBsZSYgc2FtcGxlKQoreworICAg
IC8vIFNhbXBsZSB0cmFuc2Zvcm0gZmlyc3QgZmxpcHMgeC1jb29yZGluYXRlcywgdGhlbiByb3Rh
dGVzLgorICAgIGJvb2wgZmxpcFggPSBzYW1wbGUudmlkZW9NaXJyb3JlZCgpOyAvLyBMZWZ0IHNp
ZGUgc3dpdGNoZXMgd2l0aCByaWdodCBzaWRlLgorICAgIHN3aXRjaCAoc2FtcGxlLnZpZGVvUm90
YXRpb24oKSkgeworICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU6Cisg
ICAgICAgIHJldHVybiBmbGlwWCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IDog
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wTGVmdDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpW
aWRlb1JvdGF0aW9uOjpSaWdodDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmllbnRh
dGlvbjo6T3JpZ2luUmlnaHRCb3R0b20gOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodFRv
cDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAg
ICAgICByZXR1cm4gZmxpcFggPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21MZWZ0IDog
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9tUmlnaHQ7CisgICAgY2FzZSBNZWRpYVNhbXBs
ZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmll
bnRhdGlvbjo6T3JpZ2luTGVmdFRvcCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkxlZnRCb3R0
b207CisgICAgfQorfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSwgVmlkZW9TYW1wbGVN
ZXRhZGF0YSBtZXRhZGF0YSkKIHsKICAgICBhdXRvIHByZXNlbnRhdGlvblRpbWUgPSBNb25vdG9u
aWNUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpOwpAQCAtMTAwMyw2ICsxMDE5LDIxIEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dChHcmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmlt
YWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCB0cmFuc2Zvcm1lZERlc3RSZWN0LCBpbWFnZVJlY3QpOwog
fQogCitzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQoreworICAg
IGlmIChtX2Rpc3BsYXlNb2RlID09IE5vbmUgfHwgIW1ldGFEYXRhQXZhaWxhYmxlKCkpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKG1fZGlzcGxheU1vZGUgPT0gUGFpbnRJ
dEJsYWNrKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghbV9pbWFnZVBh
aW50ZXIubWVkaWFTYW1wbGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUt
PnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyOworICAgIENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgaWYgKCFwaXhl
bEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gTWVkaWFQ
bGF5ZXJWaWRlb0ZyYW1lIHsgUmV0YWluUHRyIHsgcGl4ZWxCdWZmZXIgfSwgdmlkZW9PcmllbnRh
dGlvbigqbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUpIH07Cit9CisKIERlc3RpbmF0aW9uQ29s
b3JTcGFjZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNvbG9yU3BhY2Uo
KQogewogICAgIHVwZGF0ZUN1cnJlbnRGcmFtZUltYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbQppbmRleCAzMmRiNmVlODJjY2QwMTkzOGI0MDdhNmI2ZThkZWNmODU1MmJjODE5
Li45NTdiYTZiYTkwYmIwMThiYjg4OGQwMmM1ZGM4Mzc0NmI2NTNkZmFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBo
aWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTc5MSw4ICs3OTEsOCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEU6OnBsYXRmb3JtUmVsZWFzZVRocmVhZFJlc291cmNlcygpCiAjaWYgRU5BQkxF
KFZJREVPKQogYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRp
YShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdD
R0xlbnVtIG91dHB1dFRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3Jt
YXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhh
LCBib29sIGZsaXBZKQogewotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBwbGF5ZXIucGl4ZWxCdWZm
ZXJGb3JDdXJyZW50VGltZSgpOwotICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgYXV0byB2aWRl
b0ZyYW1lID0gcGxheWVyLnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOworICAgIGlmICghdmlk
ZW9GcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYXV0byBjb250ZXh0Q1YgPSBh
c0NWKCk7CkBAIC04MDEsNyArODAxLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpj
b3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUcKIAogICAg
IFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5VU0VEKG91
dHB1dFRhcmdldCwgb3V0cHV0VGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJE
KTsKLSAgICByZXR1cm4gY29udGV4dENWLT5jb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUocGl4ZWxC
dWZmZXIuZ2V0KCksIG91dHB1dFRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0
LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKTsKKyAgICByZXR1cm4gY29u
dGV4dENWLT5jb3B5VmlkZW9GcmFtZVRvVGV4dHVyZSgqdmlkZW9GcmFtZSwgb3V0cHV0VGV4dHVy
ZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdM
OjpGbGlwWShmbGlwWSkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaAppbmRleCAxZDYx
NWE3ZjBlZjExMzIzMjY4MDJlNTY0YTlhZDUyNTI3ZTAzMDY3Li42ZDEwOWQ2NDUwYTAxNWUyN2Ri
Mzk0OWFkODM4YzY4NGJmZDFkNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVi5oCkBAIC0yOSw5ICsyOSw4
IEBACiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTC5oIgogCi10eXBlZGVmIHN0cnVjdCBf
X0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVmOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBNZWRpYVBsYXllclZpZGVvRnJhbWU7CiAKIC8vIEludGVyZmFjZSB0byBpbnRlcmFjdCB3aXRo
IENWIG9iamVjdHMgYW5kIEdyYXBoaWNzQ29udGV4dEdMLgogY2xhc3MgR3JhcGhpY3NDb250ZXh0
R0xDViB7CkBAIC00MSw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBGbGlwWSA9IEdyYXBo
aWNzQ29udGV4dEdMOjpGbGlwWTsKICAgICAvLyBDb3BpZXMgQ1YgcGl4ZWwgYnVmZmVyIHRvIEdy
YXBoaWNzQ29udGV4dEdMIFRFWFRVUkVfMkQgdGV4dHVyZSBvZiB0aGUgc2FtZSBzaXplIGFzIHRo
ZSBwaXhlbCBidWZmZXIuCiAgICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCi0gICAgdmly
dHVhbCBib29sIGNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmLCBQbGF0
Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVy
bmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZKSA9IDA7Cisg
ICAgdmlydHVhbCBib29sIGNvcHlWaWRlb0ZyYW1lVG9UZXh0dXJlKE1lZGlhUGxheWVyVmlkZW9G
cmFtZSYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NH
TGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxp
cFkpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCmluZGV4IDI0
OTk1YTNlZWVkYmVjOTQ4NWJjMWM2YTY5YjYyNWQwYmU3YTg5OTMuLmZiNDRlYTU2Mzk5MmQ4ZWE3
YTUxMDY1NzJjYmFlMzA5NjJlY2U2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNw
cApAQCAtNDksNiArNDksOCBAQCBzdGF0aWMgY29uc3RleHByIGF1dG8gc195dXZWZXJ0ZXhTaGFk
ZXJUZXh0dXJlMkQgewogICAgICJ1bmlmb3JtIHZlYzIgdV95VGV4dHVyZVNpemU7IgogICAgICJ1
bmlmb3JtIHZlYzIgdV91dlRleHR1cmVTaXplOyIKICAgICAidW5pZm9ybSBpbnQgdV9mbGlwWTsi
CisgICAgInVuaWZvcm0gaW50IHVfZmxpcFg7IgorICAgICJ1bmlmb3JtIGludCB1X3N3YXBYWTsi
CiAgICAgInZhcnlpbmcgdmVjMiB2X3lUZXh0dXJlQ29vcmRpbmF0ZTsiCiAgICAgInZhcnlpbmcg
dmVjMiB2X3V2VGV4dHVyZUNvb3JkaW5hdGU7IgogICAgICJ2b2lkIG1haW4oKSIKQEAgLTU3LDYg
KzU5LDEwIEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzX3l1dlZlcnRleFNoYWRlclRleHR1cmUy
RCB7CiAgICAgIiAgICB2ZWMyIG5vcm1hbGl6ZWRQb3NpdGlvbiA9IGFfcG9zaXRpb24gKiAuNSAr
IC41OyIKICAgICAiICAgIGlmICh1X2ZsaXBZID09IDEpIgogICAgICIgICAgICAgIG5vcm1hbGl6
ZWRQb3NpdGlvbi55ID0gMS4wIC0gbm9ybWFsaXplZFBvc2l0aW9uLnk7IgorICAgICIgICAgaWYg
KHVfZmxpcFggPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnggPSAxLjAg
LSBub3JtYWxpemVkUG9zaXRpb24ueDsiCisgICAgIiAgICBpZiAodV9zd2FwWFkgPT0gMSkiCisg
ICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnh5ID0gbm9ybWFsaXplZFBvc2l0aW9uLnl4
OyIKICAgICAiICAgIHZfeVRleHR1cmVDb29yZGluYXRlID0gbm9ybWFsaXplZFBvc2l0aW9uOyIK
ICAgICAiICAgIHZfdXZUZXh0dXJlQ29vcmRpbmF0ZSA9IG5vcm1hbGl6ZWRQb3NpdGlvbjsiCiAg
ICAgIn0iX3MKQEAgLTY3LDYgKzczLDggQEAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVy
dGV4U2hhZGVyVGV4dHVyZVJlY3RhbmdsZSB7CiAgICAgInVuaWZvcm0gdmVjMiB1X3lUZXh0dXJl
U2l6ZTsiCiAgICAgInVuaWZvcm0gdmVjMiB1X3V2VGV4dHVyZVNpemU7IgogICAgICJ1bmlmb3Jt
IGludCB1X2ZsaXBZOyIKKyAgICAidW5pZm9ybSBpbnQgdV9mbGlwWDsiCisgICAgInVuaWZvcm0g
aW50IHVfc3dhcFhZOyIKICAgICAidmFyeWluZyB2ZWMyIHZfeVRleHR1cmVDb29yZGluYXRlOyIK
ICAgICAidmFyeWluZyB2ZWMyIHZfdXZUZXh0dXJlQ29vcmRpbmF0ZTsiCiAgICAgInZvaWQgbWFp
bigpIgpAQCAtNzUsNiArODMsMTAgQEAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVydGV4
U2hhZGVyVGV4dHVyZVJlY3RhbmdsZSB7CiAgICAgIiAgICB2ZWMyIG5vcm1hbGl6ZWRQb3NpdGlv
biA9IGFfcG9zaXRpb24gKiAuNSArIC41OyIKICAgICAiICAgIGlmICh1X2ZsaXBZID09IDEpIgog
ICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlvbi55ID0gMS4wIC0gbm9ybWFsaXplZFBvc2l0
aW9uLnk7IgorICAgICIgICAgaWYgKHVfZmxpcFggPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFs
aXplZFBvc2l0aW9uLnggPSAxLjAgLSBub3JtYWxpemVkUG9zaXRpb24ueDsiCisgICAgIiAgICBp
ZiAodV9zd2FwWFkgPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnh5ID0g
bm9ybWFsaXplZFBvc2l0aW9uLnl4OyIKICAgICAiICAgIHZfeVRleHR1cmVDb29yZGluYXRlID0g
bm9ybWFsaXplZFBvc2l0aW9uICogdV95VGV4dHVyZVNpemU7IgogICAgICIgICAgdl91dlRleHR1
cmVDb29yZGluYXRlID0gbm9ybWFsaXplZFBvc2l0aW9uICogdV91dlRleHR1cmVTaXplOyIKICAg
ICAifSJfcwpAQCAtNTQ4LDYgKzU2MCw4IEBAIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6R3Jh
cGhpY3NDb250ZXh0R0xDVkNvY29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmIG93bmVyCiAgICAg
bV91dlRleHR1cmVVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJv
Z3JhbSwgInVfdXZUZXh0dXJlIik7CiAgICAgbV9jb2xvck1hdHJpeFVuaWZvcm1Mb2NhdGlvbiA9
IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9ncmFtLCAidV9jb2xvck1hdHJpeCIpOwogICAg
IG1feXV2RmxpcFlVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJv
Z3JhbSwgInVfZmxpcFkiKTsKKyAgICBtX3l1dkZsaXBYVW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0
VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1X2ZsaXBYIik7CisgICAgbV95dXZTd2FwWFlV
bmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfc3dh
cFhZIik7CiAgICAgbV95VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3Jt
TG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfeVRleHR1cmVTaXplIik7CiAgICAgbV91dlRleHR1cmVT
aXplVW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1
X3V2VGV4dHVyZVNpemUiKTsKICAgICBtX3l1dlBvc2l0aW9uQXR0cmlidXRlTG9jYXRpb24gPSBH
TF9HZXRBdHRyaWJMb2NhdGlvbih5dXZQcm9ncmFtLCAiYV9wb3NpdGlvbiIpOwpAQCAtNTU5LDgg
KzU3Myw5IEBAIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDVkNv
Y29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmIG93bmVyCiAgICAgR0xfQmluZEZyYW1lYnVmZmVy
KEdMX0ZSQU1FQlVGRkVSLCBtX2ZyYW1lYnVmZmVyKTsKIH0KIAotYm9vbCBHcmFwaGljc0NvbnRl
eHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGlt
YWdlLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdMaW50IGxldmVsLCBHTGVudW0g
aW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBGbGlwWSBmbGlwWSkK
K2Jvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5VmlkZW9GcmFtZVRvVGV4dHVyZShN
ZWRpYVBsYXllclZpZGVvRnJhbWUmIHZpZGVvRnJhbWUsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0
VGV4dHVyZSwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xlbnVtIGZvcm1h
dCwgR0xlbnVtIHR5cGUsIEZsaXBZIHVucGFja0ZsaXBZKQogeworICAgIGF1dG8gaW1hZ2UgPSB2
aWRlb0ZyYW1lLnBpeGVsQnVmZmVyKCk7CiAgICAgLy8gRklYTUU6IFRoaXMgY3VycmVudGx5IG9u
bHkgc3VwcG9ydHMgJzQyMHYnIGFuZCAnNDIwZicgcGl4ZWwgZm9ybWF0cy4gSW52ZXN0aWdhdGUg
c3VwcG9ydGluZyBtb3JlIHBpeGVsIGZvcm1hdHMuCiAgICAgT1NUeXBlIHBpeGVsRm9ybWF0ID0g
Q1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShpbWFnZSk7CiAgICAgaWYgKHBpeGVsRm9y
bWF0ICE9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJWaWRlb1JhbmdlIC8v
IE5PTElOVApAQCAtNTc3LDkgKzU5MiwxMCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2Nv
YTo6Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2UsCiAgICAg
aWYgKCFzdXJmYWNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBhdXRvIG9yaWVudGF0
aW9uID0gdmlkZW9GcmFtZS5vcmllbnRhdGlvbigpOwogICAgIGF1dG8gbmV3U3VyZmFjZVNlZWQg
PSBJT1N1cmZhY2VHZXRTZWVkKHN1cmZhY2UpOwotICAgIGlmIChmbGlwWSA9PSBtX2xhc3RGbGlw
WQotICAgICAgICAmJiBzdXJmYWNlID09IG1fbGFzdFN1cmZhY2UKKyAgICBpZiAoSW1hZ2VPcmll
bnRhdGlvbjo6T3JpZW50YXRpb24ob3JpZW50YXRpb24pID09IEltYWdlT3JpZW50YXRpb246Ok9y
aWVudGF0aW9uKG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbikKKyAgICAgICAgJiYgdW5wYWNrRmxp
cFkgPT0gbV9sYXN0VW5wYWNrRmxpcFkKICAgICAgICAgJiYgbmV3U3VyZmFjZVNlZWQgPT0gbV9s
YXN0U3VyZmFjZVNlZWQKICAgICAgICAgJiYgbGFzdFRleHR1cmVTZWVkKG91dHB1dFRleHR1cmUp
ID09IG1fb3duZXIudGV4dHVyZVNlZWQob3V0cHV0VGV4dHVyZSkpIHsKICAgICAgICAgLy8gSWYg
dGhlIHRleHR1cmUgaGFzbid0IGJlZW4gbW9kaWZpZWQgc2luY2UgdGhlIGxhc3QgdGltZSB3ZSBj
b3BpZWQgdG8gaXQsIGFuZCB0aGUKQEAgLTU4OSw4ICs2MDUsNjAgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVm
IGltYWdlLAogICAgIGlmICghbV9jb250ZXh0IHx8ICFHcmFwaGljc0NvbnRleHRHTENvY29hOjpt
YWtlQ3VycmVudChtX2Rpc3BsYXksIG1fY29udGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChpbWFnZSk7Ci0gICAg
c2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoaW1hZ2UpOworICAgIC8vIENv
bXB1dGUgdHJhbnNmb3JtIHRoYXQgdW5kb2VzIHRoZSBgb3JpZW50YXRpb25gLCBlLmcuIG1vdmVz
IHRoZSBvcmlnaW4gdG8gdG9wIGxlZnQuCisgICAgLy8gRXZlbiBudW1iZXIgb2Ygb3BlcmF0aW9u
cyAoZmxpcFgsIGZsaXBZLCBzd2FwWFkpIG1lYW5zIGEgcm90YXRpb24uCisgICAgLy8gT2RkIG51
bWJlciBvZiBvcGVyYXRpb25zIG1lYW5zIGEgcm90YXRpb24gYW5kIGEgZmxpcC4KKyAgICAvLyBg
ZmxpcFhgIHN3aXRjaGVzIGJldHdlZW4gTGVmdCBhbmQgUmlnaHQuIGBmbGlwWWAgc3dpdGNoZXMg
YmV0d2VlbiBUb3AgYW5kIEJvdHRvbS4KKyAgICAvLyBgc3dhcFhZYHN3aXRjaGVzIExlZnRUb3Ag
dG8gVG9wTGVmdC4KKyAgICAvLyBHb2FsIGlzIHRvIGdldCB0byBPcmlnaW5Ub3BMZWZ0LgorICAg
IGJvb2wgZmxpcFkgPSBmYWxzZTsgLy8gRmxpcCB5IGNvb3JkaW5hdGUsIGkuZS4gbWlycm9yZWQg
YWxvbmcgdGhlIHgtYXhpcy4KKyAgICBib29sIGZsaXBYID0gZmFsc2U7IC8vIEZsaXAgeCBjb29y
ZGluYXRlLCBpLmUuIG1pcnJvcmVkIGFsb25nIHRoZSB5LWF4aXMuCisgICAgYm9vbCBzd2FwWFkg
PSBmYWxzZTsKKyAgICBzd2l0Y2ggKHZpZGVvRnJhbWUub3JpZW50YXRpb24oKSkgeworICAgIGNh
c2UgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlOgorICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luVG9wTGVmdDoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0
aW9uOjpPcmlnaW5Ub3BSaWdodDoKKyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0OgorICAgICAg
ICAvLyBSb3RhdGVkIDE4MCBkZWdyZWVzLgorICAgICAgICBmbGlwWSA9IHRydWU7CisgICAgICAg
IGZsaXBYID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9u
OjpPcmlnaW5Cb3R0b21MZWZ0OgorICAgICAgICAvLyBNaXJyb3JlZCBhbG9uZyB0aGUgeC1heGlz
LgorICAgICAgICBmbGlwWSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VP
cmllbnRhdGlvbjo6T3JpZ2luTGVmdFRvcDoKKyAgICAgICAgLy8gTWlycm9yZWQgYWxvbmcgeC1h
eGlzIGFuZCByb3RhdGVkIDI3MCBkZWdyZWVzIGNsb2NrLXdpc2UuCisgICAgICAgIHN3YXBYWSA9
IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2lu
UmlnaHRUb3A6CisgICAgICAgIC8vIFJvdGF0ZWQgOTAgZGVncmVlcyBjbG9jay13aXNlLgorICAg
ICAgICBmbGlwWCA9IHRydWU7CisgICAgICAgIHN3YXBYWSA9IHRydWU7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRCb3R0b206CisgICAgICAg
IC8vIE1pcnJvciBhbG9uZyB4LWF4aXMgYW5kIHJvdGF0ZWQgOTAgZGVncmVlcyBjbG9ja3dpc2Uu
CisgICAgICAgIGZsaXBZID0gdHJ1ZTsKKyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBz
d2FwWFkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEltYWdlT3JpZW50YXRpb246
Ok9yaWdpbkxlZnRCb3R0b206CisgICAgICAgIC8vIFJvdGF0ZWQgMjcwIGRlZ3JlZXMgY2xvY2st
d2lzZS4KKyAgICAgICAgZmxpcFkgPSB0cnVlOworICAgICAgICBzd2FwWFkgPSB0cnVlOworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKHVucGFja0ZsaXBZID09IEZsaXBZOjpZZXMpCisg
ICAgICAgIGZsaXBZID0gIWZsaXBZOworCisgICAgc2l6ZV90IHNvdXJjZVdpZHRoID0gQ1ZQaXhl
bEJ1ZmZlckdldFdpZHRoKGltYWdlKTsKKyAgICBzaXplX3Qgc291cmNlSGVpZ2h0ID0gQ1ZQaXhl
bEJ1ZmZlckdldEhlaWdodChpbWFnZSk7CisKKyAgICBzaXplX3Qgd2lkdGggPSBzd2FwWFkgPyBz
b3VyY2VIZWlnaHQgOiBzb3VyY2VXaWR0aDsKKyAgICBzaXplX3QgaGVpZ2h0ID0gc3dhcFhZID8g
c291cmNlV2lkdGggOiBzb3VyY2VIZWlnaHQ7CiAKICAgICBHTF9WaWV3cG9ydCgwLCAwLCB3aWR0
aCwgaGVpZ2h0KTsKIApAQCAtNjY0LDcgKzczMiw5IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xD
VkNvY29hOjpjb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZSwK
ICAgICAvLyBDb25maWd1cmUgdGhlIGRyYXdpbmcgcGFyYW1ldGVycy4KICAgICBHTF9Vbmlmb3Jt
MWkobV95VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiwgMCk7CiAgICAgR0xfVW5pZm9ybTFpKG1fdXZU
ZXh0dXJlVW5pZm9ybUxvY2F0aW9uLCAxKTsKLSAgICBHTF9Vbmlmb3JtMWkobV95dXZGbGlwWVVu
aWZvcm1Mb2NhdGlvbiwgZmxpcFkgPT0gRmxpcFk6OlllcyA/IDEgOiAwKTsKKyAgICBHTF9Vbmlm
b3JtMWkobV95dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiwgZmxpcFkgPyAxIDogMCk7CisgICAgR0xf
VW5pZm9ybTFpKG1feXV2RmxpcFhVbmlmb3JtTG9jYXRpb24sIGZsaXBYID8gMSA6IDApOworICAg
IEdMX1VuaWZvcm0xaShtX3l1dlN3YXBYWVVuaWZvcm1Mb2NhdGlvbiwgc3dhcFhZID8gMSA6IDAp
OwogICAgIEdMX1VuaWZvcm0yZihtX3lUZXh0dXJlU2l6ZVVuaWZvcm1Mb2NhdGlvbiwgeVBsYW5l
V2lkdGgsIHlQbGFuZUhlaWdodCk7CiAgICAgR0xfVW5pZm9ybTJmKG1fdXZUZXh0dXJlU2l6ZVVu
aWZvcm1Mb2NhdGlvbiwgdXZQbGFuZVdpZHRoLCB1dlBsYW5lSGVpZ2h0KTsKIApAQCAtNjc2LDEw
ICs3NDYsMTEgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZl
clRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLAogICAgIC8vIERvIHRoZSBhY3R1YWwg
ZHJhd2luZy4KICAgICBHTF9EcmF3QXJyYXlzKEdMX1RSSUFOR0xFUywgMCwgNik7CiAKKyAgICBt
X2xhc3RVbnBhY2tGbGlwWSA9IHVucGFja0ZsaXBZOwogICAgIG1fbGFzdFN1cmZhY2UgPSBzdXJm
YWNlOwogICAgIG1fbGFzdFN1cmZhY2VTZWVkID0gbmV3U3VyZmFjZVNlZWQ7CisgICAgbV9sYXN0
U3VyZmFjZU9yaWVudGF0aW9uID0gb3JpZW50YXRpb247CiAgICAgbV9sYXN0VGV4dHVyZVNlZWQu
c2V0KG91dHB1dFRleHR1cmUsIG1fb3duZXIudGV4dHVyZVNlZWQob3V0cHV0VGV4dHVyZSkpOwot
ICAgIG1fbGFzdEZsaXBZID0gZmxpcFk7CiAgICAgYXV0b0NsZWFyVGV4dHVyZU9uRXJyb3IucmVs
ZWFzZSgpOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaApp
bmRleCBjNGUzOTYwYjZkNzA4MGU0YzM5NDBiOGFmN2FkOWRjZTYyNDYyNzBmLi4xZThjYWRkNWVl
OGJjNzUxMWJkYzY5NjM1NGQzMzVhZjk1M2FiOTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuaApAQCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJHTCkgJiYgRU5BQkxFKFZJREVP
KSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xDVi5o
IgotCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNp
bmNsdWRlIDx3dGYvVW5zYWZlUG9pbnRlci5oPgogCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoK
IAogICAgIH5HcmFwaGljc0NvbnRleHRHTENWQ29jb2EoKSBmaW5hbDsKIAotICAgIGJvb2wgY29w
eVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYsIFBsYXRmb3JtR0xPYmplY3Qg
b3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdD
R0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpIGZpbmFsOworICAgIGJvb2wgY29w
eVZpZGVvRnJhbWVUb1RleHR1cmUoTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lJiwgUGxhdGZvcm1HTE9i
amVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1h
dCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBGbGlwWSkgZmluYWw7CiAKIHByaXZh
dGU6CiAgICAgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2Em
KTsKQEAgLTY0LDEyICs2NCwxNSBAQCBwcml2YXRlOgogICAgIEdDR0xpbnQgbV95VGV4dHVyZVVu
aWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBtX3V2VGV4dHVyZVVuaWZvcm1Mb2Nh
dGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBtX3l1dkZsaXBZVW5pZm9ybUxvY2F0aW9uIHsgLTEg
fTsKKyAgICBHQ0dMaW50IG1feXV2RmxpcFhVbmlmb3JtTG9jYXRpb24geyAtMSB9OworICAgIEdD
R0xpbnQgbV95dXZTd2FwWFlVbmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV9j
b2xvck1hdHJpeFVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBtX3l1dlBvc2l0
aW9uQXR0cmlidXRlTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV95VGV4dHVyZVNpemVV
bmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV91dlRleHR1cmVTaXplVW5pZm9y
bUxvY2F0aW9uIHsgLTEgfTsKIAotICAgIEZsaXBZIG1fbGFzdEZsaXBZIHsgRmxpcFk6Ok5vIH07
CisgICAgRmxpcFkgbV9sYXN0VW5wYWNrRmxpcFkgeyBGbGlwWTo6Tm8gfTsKKyAgICBJbWFnZU9y
aWVudGF0aW9uIG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbjsKICAgICBVbnNhZmVQb2ludGVyPElP
U3VyZmFjZVJlZj4gbV9sYXN0U3VyZmFjZTsKICAgICB1aW50MzJfdCBtX2xhc3RTdXJmYWNlU2Vl
ZCB7IDAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCAzNzA2NjczZTlmMDYyMWFhMWE1MzgzY2Yz
YjBlMmY1Y2Y5MDUwMjE5Li42MGM1YThjZDZkNTBlOTAwZTRjMWViZDFmZDhlMmRkYWU4YjZkYjlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmNwcApAQCAtNTA5LDYgKzUwOSw3IEBAIHZvaWQgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pCiAgICAgICAg
IG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRl
RG93bjsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
Y3BwCmluZGV4IDA3MzNmM2MxNzg2ZTFjNTcwYmM5ZTNhNGY0ZDFiOGU3MjdkMTdjNjYuLmZmMTMz
OTdlNjQ0MTkxZTQwMTM3OWY1Yzg4YTA0NjYxZjcxMTcwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMLmNwcApAQCAtMjYwLDE4ICsyNjAsMTggQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWUKICAg
ICBVTlVTRURfVkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgQVNTRVJUX1VOVVNFRCh0
YXJnZXQsIHRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7CiAKLSAgICBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXI7Ci0gICAgYXV0byBnZXRQaXhl
bEJ1ZmZlciA9IFsmXSB7CisgICAgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+
IHZpZGVvRnJhbWU7CisgICAgYXV0byBnZXRWaWRlb0ZyYW1lID0gWyZdIHsKICAgICAgICAgaWYg
KCFtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgaWYgKGF1dG8gbWVkaWFQbGF5ZXIgPSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mt
PnJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkubWVkaWFQbGF5ZXIobWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyKSkKLSAgICAgICAgICAgIHBpeGVsQnVmZmVyID0gbWVkaWFQbGF5ZXItPnBpeGVs
QnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKKyAgICAgICAgICAgIHZpZGVvRnJhbWUgPSBtZWRpYVBs
YXllci0+dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgfTsKIAotICAgIGNhbGxPbk1h
aW5SdW5Mb29wQW5kV2FpdChXVEZNb3ZlKGdldFBpeGVsQnVmZmVyKSk7CisgICAgY2FsbE9uTWFp
blJ1bkxvb3BBbmRXYWl0KFdURk1vdmUoZ2V0VmlkZW9GcmFtZSkpOwogCi0gICAgaWYgKCFwaXhl
bEJ1ZmZlcikgeworICAgIGlmICghdmlkZW9GcmFtZSkgewogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yODIsNyArMjgyLDcgQEAg
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNv
bXBsZXRpb25IYW5kbGVyKGNvbnRleHRDVi0+Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKHBpeGVs
QnVmZmVyLmdldCgpLCB0ZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlw
ZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSkpOworICAgIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnRleHRDVi0+Y29weVZpZGVvRnJhbWVUb1RleHR1cmUoKnZpZGVvRnJhbWUsIHRleHR1
cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRH
TDo6RmxpcFkoZmxpcFkpKSk7CiAjZWxzZQogICAgIFVOVVNFRF9WQVJJQUJMRShtZWRpYVBsYXll
cklkZW50aWZpZXIpOwogICAgIFVOVVNFRF9WQVJJQUJMRSh0ZXh0dXJlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcAppbmRleCA4ODEwOGNiYzUzM2MxMGM3NWUzNzBiZmNjODk4MDBhNTNjNjcyOWFkLi4xZjAw
MWE1NDgwNDFlOGU3ZGY4NmI2OGJiMjczZTQ0ODNiNzFjNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
CkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjppbnZhbGlk
YXRlKCkKICAgICB9CiAgICAgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0ID0geyB9OwogI2lm
IFVTRShBVkZPVU5EQVRJT04pCi0gICAgbV9waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lID0gbnVs
bHB0cjsKKyAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IHN0ZDo6bnVsbG9wdDsKICNl
bmRpZgogfQogCkBAIC04NjgsNiArODY4LDIxIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6Y3VycmVudFRpbWVDaGFuZ2VkKGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW1lKQogICAgIG1f
d2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6Q3VycmVudFRpbWVDaGFuZ2VkKG1lZGlhVGltZSwgTW9ub3RvbmljVGltZTo6bm93KCks
ICFtZWRpYVBsYXllclBhdXNlZE9yU3RhbGxlZCgpKSwgbV9pZCk7CiB9CiAKK3ZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVv
RnJhbWU+JiYsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiByZXN1bHQ7CisgICAgYm9vbCBjaGFu
Z2VkID0gZmFsc2U7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVv
RnJhbWU+IHZpZGVvRnJhbWU7CisgICAgaWYgKG1fcGxheWVyKQorICAgICAgICB2aWRlb0ZyYW1l
ID0gbV9wbGF5ZXItPnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOworICAgIGlmICghKG1fdmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lID09IHZpZGVvRnJhbWUpKSB7CisgICAgICAgIG1fdmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lID0gdmlkZW9GcmFtZTsKKyAgICAgICAgY2hhbmdlZCA9IHRydWU7
CisgICAgICAgIHJlc3VsdCA9IFdURk1vdmUodmlkZW9GcmFtZSk7CisgICAgfQorICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSwgY2hhbmdlZCk7Cit9CisKIHZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6dXBkYXRlQ2FjaGVkU3RhdGUoYm9vbCBmb3JjZUN1cnJlbnRUaW1l
VXBkYXRlKQogewogICAgIGlmICghbV9vYnNlcnZpbmdUaW1lQ2hhbmdlcyB8fCBmb3JjZUN1cnJl
bnRUaW1lVXBkYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggMzJmM2E0NmFhMGYwOWIxM2IwMjRlNDE2
NDA3OGE1ZGFkZGVkYzU0ZS4uZTEzOTQ2ZjdhN2MzMzFlNzAzZDM0NmE1OTMwZDEwNGEzMDI3ZGYw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0zMjAsOSArMzIwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPFdURjo6TWFjaFNlbmRSaWdodD4mJiwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNw
YWNlKT4mJik7CiAgICAgdm9pZCBjb2xvclNwYWNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlKT4mJik7CiAjZW5kaWYKLSNpZiBVU0UoQVZGT1VO
REFUSU9OKQotICAgIHZvaWQgcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+PiYmKT4mJik7Ci0jZW5kaWYKKyAgICB2b2lkIHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlm
Q2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVk
aWFQbGF5ZXJWaWRlb0ZyYW1lPiYmLCBib29sKT4mJik7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgZmluYWwgeyByZXR1
cm4gbV9sb2dnZXI7IH0KQEAgLTM3OCw5ICszNzYsNyBAQCBwcml2YXRlOgogICAgIFNjb3BlZFJl
bmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0OwogCiAg
ICAgYm9vbCBtX29ic2VydmluZ1RpbWVDaGFuZ2VzIHsgZmFsc2UgfTsKLSNpZiBVU0UoQVZGT1VO
REFUSU9OKQotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyRm9y
Q3VycmVudFRpbWU7Ci0jZW5kaWYKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxh
eWVyVmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiAjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dlcjsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCAzOWM4NzI5YjI3MzllMTM2NDRiMzFhYTgw
ZGJhODBkNGEzMzBjOGFlLi5lNTM5YjQ5MmY2ZmMwNTU1NzQ0ZTkwNTg0NjQzN2Q0ODhkNTM4NDMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTI2LDkgKzEyNiw3IEBA
IG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAg
TmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIC0+IChzdGQ6Om9wdGlvbmFsPE1hY2hTZW5kUmln
aHQ+IHNlbmRSaWdodCwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2Up
IFN5bmNocm9ub3VzCiAgICAgQ29sb3JTcGFjZSgpIC0+IChXZWJDb3JlOjpEZXN0aW5hdGlvbkNv
bG9yU3BhY2UgY29sb3JTcGFjZSkgU3luY2hyb25vdXMKICNlbmRpZgotI2lmIFVTRShBVkZPVU5E
QVRJT04pCi0gICAgUGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpIC0+IChzdGQ6
Om9wdGlvbmFsPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPj4gcGl4ZWxCdWZmZXIpIFN5bmNo
cm9ub3VzCi0jZW5kaWYKKyAgICBWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSAt
PiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJh
bWUsIGJvb2wgY2hhbmdlZCkgU3luY2hyb25vdXMKIAogICAgIFBsYXlBdEhvc3RUaW1lKE1vbm90
b25pY1RpbWUgdGltZSkKICAgICBQYXVzZUF0SG9zdFRpbWUoTW9ub3RvbmljVGltZSB0aW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9j
b2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KaW5kZXggYzZiYmEzYWEyYjRlNTVm
YWVmYjkzM2JiZTJlNjM1OWQ3M2Y2MzE5OC4uZmJlMTBiYzMwNWQyZDJlMTVhMjRhN2NlZTQ1MDdl
YTE3NjczNzQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2Nv
Y29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCkBAIC0x
MjcsMjEgKzEyNyw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Y29sb3JTcGFjZShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRlc3RpbmF0CiAgICAgY29tcGxldGlvbkhh
bmRsZXIobV9wbGF5ZXItPmNvbG9yU3BhY2UoKSk7CiB9CiAKLSNpZiBVU0UoQVZGT1VOREFUSU9O
KQotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1l
SWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIHN0ZDo6
b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+PiByZXN1bHQ7Ci0gICAgUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyOwotICAgIGlmIChtX3BsYXllcikKLSAg
ICAgICAgcGl4ZWxCdWZmZXIgPSBtX3BsYXllci0+cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgp
OwotICAgIGlmIChtX3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUgIT0gcGl4ZWxCdWZmZXIpIHsK
LSAgICAgICAgcmVzdWx0ID0gcGl4ZWxCdWZmZXI7Ci0gICAgICAgIG1fcGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSA9IFdURk1vdmUocGl4ZWxCdWZmZXIpOwotICAgIH0KLSAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCA5YTY0Mjk0Mzc4NDJmNDNkYjZkYTFj
MjUwMTFlZDRhNTQ0Y2JmMzYxLi5iNTM5MmUwNGQ5ZmY5NmRiZjExMDgxNGE4MGEwNGE2YjZlZjI4
ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0xMDAwLDEzICsxMDAwLDE4
IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0
Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9Ci0jZWxpZiAhUExBVEZPUk0oQ09DT0EpCi1SZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwaXhlbEJ1ZmZlckZvckN1cnJl
bnRUaW1lKCkKKyNlbmRpZgorCitzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlk
ZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiByZXN1bHQ7CisgICAg
Ym9vbCBjaGFuZ2VkID0gZmFsc2U7CisgICAgaWYgKCFjb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlm
Q2hhbmdlZCgpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VmlkZW9GcmFtZUZv
ckN1cnJlbnRUaW1lSWZDaGFuZ2VkOjpSZXBseShyZXN1bHQsIGNoYW5nZWQpLCBtX2lkKSkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoY2hhbmdlZCkKKyAgICAgICAgbV92
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBXVEZNb3ZlKHJlc3VsdCk7CisgICAgcmV0dXJuIG1f
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwogfQotI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oQ09D
T0EpCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bmF0aXZl
SW1hZ2VGb3JDdXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCBlYjMy
NjI0MDRjNmY5MWQ4ZDI2N2EzODUxNjQ1MjI3YTA5MDM3OWU4Li5lYTJhMDY2YjAwNjM5M2FkNmRl
MjM1YTVhMDkyNmY5M2NlNjc2MTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTI5
Miw5ICsyOTIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRl
eHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
ZmluYWw7CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJl
VG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdM
T2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwg
Ym9vbCwgYm9vbCkgZmluYWw7Ci0jZWxzZQotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAjZW5kaWYKKyAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJl
bnRUaW1lKCkgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBuYXRpdmVJ
bWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UoKSBmaW5hbDsKIApAQCAtNDYxLDkgKzQ2MCw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JLZXkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90aW1lSXNQ
cm9ncmVzc2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0
ZWQgeyBmYWxzZSB9OwotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZTsKLSNlbmRpZgorICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlckdhdGhlcmVkV2l0aFZpZGVvRnJhbWVNZXRhZGF0YTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4gbV9w
aXhlbEJ1ZmZlckNvbmZvcm1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUNvY29hLm1tCmluZGV4IGMwYjc3NmRjNzczYjE3ZmE0MzBjZDU4OTY4YjAwN2IzMWJkNzZh
OGQuLjQxZGJjN2E1M2I3MTc3NjJlNDVhMjA5ZTBmODQ3MGUxMTVmMTEwMWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQpAQCAtOTQsMTggKzk0LDYg
QEAgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6Y29sb3JTcGFjZSgpCiAgICAgcmV0dXJuIGNvbG9yU3BhY2U7CiB9CiAKLSNpZiBVU0UoQVZG
T1VOREFUSU9OKQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCi17Ci0gICAgc3RkOjpvcHRpb25h
bDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHJlc3VsdDsKLSAgICBpZiAoIWNvbm5lY3Rp
b24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UGl4ZWxCdWZm
ZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6UGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZDo6UmVwbHkocmVzdWx0KSwg
bV9pZCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGlmIChyZXN1bHQpCi0gICAgICAg
IG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSA9IFdURk1vdmUoKnJlc3VsdCk7Ci0gICAgcmV0
dXJuIG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZTsKLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0o
Q09DT0EpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggY2U1YzMwZDBkNGVlMmEzNTVlMDY4OTA2OTdkOTAyNDdhMGFkY2I0NC4u
ZDU5MjI1NTkyNzdlMjFhYzJlNDIxMDcxYWY1NjIyYjViMjNlOWI1ZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIyLTAxLTE3ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IFdlYkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0
aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlhIGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg3NjAxNzYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLmh0bWw6
CisgICAgICAgICogd2VicnRjL3JvdXRpbmVzLmpzOgorICAgICAgICBUZXN0IGNhbWVyYSBpbWFn
ZSByb3RhdGlvbnMgaW4gdGhlIHRlc3QuCisKIDIwMjItMDEtMTcgIENoYW5nU2VvayBPaCAgPGNo
YW5nc2Vva0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtHVEtdIEltcGxlbWVudCBmb3JtIHZhbGlk
YXRpb24gd2l0aCBndGszIHdpZGdldHMgaW4gdGhlIFVJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52
YXMtZXhwZWN0ZWQudHh0CmluZGV4IDg2NTk0MDI2ZmU3OWIzMDAzOWVkNzNlY2UyOWVkNmZjZTI4
NzAxZTQuLmY3MzM0YmUyNjM0NjAzM2JmNmMzMWViMjVjOWNlMDU4OTNlYTQ2YWUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVk
aWEtdG8tY2FudmFzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKIAotUEFTUyBUZXN0aW5n
IGdldFVzZXJNZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRleHRzIHZpYSAyRENvbnRleHQKLVBB
U1MgVGVzdGluZyBnZXRVc2VyTWVkaWEgc3RyZWFtIHRvIGNhbnZhcyBjb250ZXh0cyB2aWEgSW1h
Z2VCaXRtYXAgdG8gMkRDb250ZXh0Ci1QQVNTIFRlc3RpbmcgZ2V0VXNlck1lZGlhIHN0cmVhbSB0
byBjYW52YXMgY29udGV4dHMgdmlhIFdlYkdMIHRleHR1cmUKLVBBU1MgVGVzdGluZyBnZXRVc2Vy
TWVkaWEgc3RyZWFtIHRvIGNhbnZhcyBjb250ZXh0cyB2aWEgSW1hZ2VCaXRtYXAgdG8gV2ViR0wg
dGV4dHVyZQorUEFTUyBUZXN0aW5nIGdldFVzZXJNZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRl
eHRzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1l
ZGlhLXRvLWNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2Vy
TWVkaWEtdG8tY2FudmFzLmh0bWwKaW5kZXggZDI4M2Y0OGY3Y2YzMTRkMzE0OWEzMmUzZjg5MDM5
Zjc0Nzg0ZmRhYS4uMTg1NjAwNjVlZjc3NGFiZDg1MTg4YjlkYzc2NGNkZTI3NTlkYjQ4OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2Fu
dmFzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEt
dG8tY2FudmFzLmh0bWwKQEAgLTEsNiArMSw3IEBACiA8IWRvY3R5cGUgaHRtbD4KIDxodG1sPgog
ICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4K
ICAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgICAgICA8dGl0bGU+VGVzdGluZyBn
ZXRVc2VyTWVkaWEgc3RyZWFtIHRvIGNhbnZhcyBjb250ZXh0czwvdGl0bGU+CiAgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgpAQCAt
OSwyMCArMTAsMjQgQEAKICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL2NhbnZhcy93ZWJnbC9yZXNv
dXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CiAKICAgICAgICAgPHN0eWxlIHR5
cGU9dGV4dC9jc3M+Ci0gICAgICAgICAgICBjYW52YXMgeyB3aWR0aDogNjAwcHggfQorICAgICAg
ICAgICAgY2FudmFzIHsgd2lkdGg6IDYwcHggfQorICAgICAgICAgICAgdmlkZW8geyB3aWR0aDog
NjBweCB9CiAgICAgICAgIDwvc3R5bGU+CiAgICAgPC9oZWFkPgogICAgIDxib2R5PgogICAgICAg
ICA8ZGl2IGlkPSJkZWJ1Z2UiPjwvZGl2PgogICAgICAgICA8c2NyaXB0PgogInVzZSBzdHJpY3Qi
OworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5z
ZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoZmFsc2UpOworCiBjb25zdCB3dHUgPSBXZWJH
TFRlc3RVdGlsczsKIGNvbnN0IHdpZHRoID0gNjQzOwogY29uc3QgdmVyaWZ5V2lkdGggPSAyMDA7
CiBjb25zdCBkZWJ1Z2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVidWdlIik7CiAKIGFz
eW5jIGZ1bmN0aW9uIGNyZWF0ZVNvdXJjZVZpZGVvKCkgewotICAgIGxldCB2aWRlbyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIik7CisgICAgY29uc3QgdmlkZW8gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJ2aWRlbyIpOwogICAgIHZpZGVvLnNyY09iamVjdCA9IGF3YWl0IG5hdmln
YXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgdmlkZW86IHsgd2lkdGg6IHsgZXhhY3Q6
IHdpZHRoIH0gfSB9KTsKICAgICBhd2FpdCB2aWRlby5wbGF5KCk7CiAgICAgYXNzZXJ0X2VxdWFs
cyh2aWRlby52aWRlb1dpZHRoLCB3aWR0aCk7CkBAIC0zMCwyMyArMzUsMjkgQEAgYXN5bmMgZnVu
Y3Rpb24gY3JlYXRlU291cmNlVmlkZW8oKSB7CiB9CiAKIGZ1bmN0aW9uIGNyZWF0ZVZlcmlmeUNh
bnZhcyh2aWRlbykgewotICAgIGxldCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJj
YW52YXMiKTsKKyAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52
YXMiKTsKICAgICBjYW52YXMud2lkdGggPSB2ZXJpZnlXaWR0aDsKICAgICBjYW52YXMuaGVpZ2h0
ID0gTWF0aC5mbG9vcih2aWRlby52aWRlb0hlaWdodCAvIHZpZGVvLnZpZGVvV2lkdGggKiB2ZXJp
ZnlXaWR0aCk7CiAgICAgcmV0dXJuIGNhbnZhczsKIH0KIAotZnVuY3Rpb24gY3JlYXRlVmVyaWZ5
V2ViR0xDb250ZXh0KGNhbnZhcykgewotICAgIGxldCBnbCA9IHd0dS5jcmVhdGUzRENvbnRleHQo
Y2FudmFzLCB7IGRlcHRoOiBmYWxzZSwgc3RlbmNpbDogZmFsc2UsIGFudGlhbGlhczogZmFsc2Ug
fSk7CitmdW5jdGlvbiBjcmVhdGVWZXJpZnlXZWJHTFN0YXRlKGNhbnZhcykgeworICAgIGNvbnN0
IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIHsgZGVwdGg6IGZhbHNlLCBzdGVuY2ls
OiBmYWxzZSwgYW50aWFsaWFzOiBmYWxzZSB9KTsKICAgICBnbC52aWV3cG9ydCgwLCAwLCBjYW52
YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwotICAgIGxldCBwcm9ncmFtID0gd3R1LnNldHVwVGV4
dHVyZWRRdWFkKGdsKTsKKyAgICBjb25zdCBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVyZWRRdWFk
KGdsKTsKICAgICBnbC51bmlmb3JtMWkoZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0
ZXgiKSwgMCk7Ci0gICAgcmV0dXJuIGdsOworICAgIGNvbnN0IHRleHR1cmUgPSBnbC5jcmVhdGVU
ZXh0dXJlKCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Cisg
ICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIs
IGdsLk5FQVJFU1QpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVY
VFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICBnbC50
ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9U
T19FREdFKTsKKyAgICByZXR1cm4gW2dsLCB0ZXh0dXJlXTsKIH0KIAotZnVuY3Rpb24gZ2V0RnJh
bWVidWZmZXJBc0ltYWdlRGF0YShnbCnCoHsKLSAgICBsZXQgY2FudmFzID0gZ2wuY2FudmFzOwot
ICAgIGxldCBpbWFnZURhdGEgPSB7CitmdW5jdGlvbiBnZXRGcmFtZWJ1ZmZlckFzSW1hZ2VEYXRh
KGdsKSB7CisgICAgY29uc3QgY2FudmFzID0gZ2wuY2FudmFzOworICAgIGNvbnN0IGltYWdlRGF0
YSA9IHsKICAgICAgICAgd2lkdGg6IGNhbnZhcy53aWR0aCwKICAgICAgICAgaGVpZ2h0OiBjYW52
YXMuaGVpZ2h0LAogICAgICAgICBkYXRhOiBuZXcgVWludDhBcnJheShjYW52YXMud2lkdGggKiBj
YW52YXMuaGVpZ2h0ICogNCkKQEAgLTU1LDc5ICs2NiwxMjcgQEAgZnVuY3Rpb24gZ2V0RnJhbWVi
dWZmZXJBc0ltYWdlRGF0YShnbCnCoHsKICAgICByZXR1cm4gaW1hZ2VEYXRhOwogfQogCi1wcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgbGV0IHZpZGVvID0gYXdhaXQgY3JlYXRlU291cmNl
VmlkZW8oKTsKLSAgICBkZWJ1Z2UuYXBwZW5kKHZpZGVvKTsKLSAgICBsZXQgY2FudmFzID0gY3Jl
YXRlVmVyaWZ5Q2FudmFzKHZpZGVvKTsKLSAgICBkZWJ1Z2UuYXBwZW5kQ2hpbGQoY2FudmFzKTsK
K2Z1bmN0aW9uIHNldHVwSW52ZXJzZVVuaXRRdWFkVGV4dHVyZUNvb3JkaW5hdGVzKGdsLCB0ZXhj
b29yZExvY2F0aW9uKSB7CisgICAgdGV4Y29vcmRMb2NhdGlvbiA9IHRleGNvb3JkTG9jYXRpb24g
fHwgMTsKKyAgICBjb25zdCB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZmZXIoKTsKKyAgICBn
bC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsKKyAgICBnbC5idWZm
ZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShbCisgICAgICAgIDEuMCwg
MC4wLAorICAgICAgICAwLjAsIDAuMCwKKyAgICAgICAgMC4wLCAxLjAsCisgICAgICAgIDEuMCwg
MC4wLAorICAgICAgICAwLjAsIDEuMCwKKyAgICAgICAgMS4wLCAxLjBdKSwgZ2wuU1RBVElDX0RS
QVcpOworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHRleGNvb3JkTG9jYXRpb24pOwor
ICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIodGV4Y29vcmRMb2NhdGlvbiwgMiwgZ2wuRkxPQVQs
IGZhbHNlLCAwLCAwKTsKK30KIAotICAgIGxldCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQi
KTsKK2FzeW5jIGZ1bmN0aW9uIHdpdGgyRENvbnRleHQoc3ViY2FzZSwgdmlkZW8sIGNhbnZhcykg
eworICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgIGxldCBzb3Vy
Y2UgPSB2aWRlbzsKKyAgICBpZiAoc3ViY2FzZS5pbWFnZUJpdG1hcCkKKyAgICAgICAgc291cmNl
ID0gYXdhaXQgY3JlYXRlSW1hZ2VCaXRtYXAoc291cmNlKTsKICAgICBjdHguZHJhd0ltYWdlKHZp
ZGVvLCAwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwotICAgIGFzc2VydEltYWdl
RGF0YUNvbnRhaW5zTW9ja0NhbWVyYUltYWdlKGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgY2FudmFz
LndpZHRoLCBjYW52YXMuaGVpZ2h0KSk7Ci0gICAgZGVidWdlLnJlbW92ZUNoaWxkKGNhbnZhcyk7
Ci0gICAgZGVidWdlLnJlbW92ZUNoaWxkKHZpZGVvKTsKLQotfSwgZG9jdW1lbnQudGl0bGUgKyAi
IHZpYSAyRENvbnRleHQiKTsKLQotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGxldCB2
aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7Ci0gICAgZGVidWdlLmFwcGVuZCh2aWRl
byk7Ci0gICAgbGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbyk7Ci0gICAgZGVi
dWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7CisgICAgcmV0dXJuIGN0eC5nZXRJbWFnZURhdGEoMCwg
MCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKK30KIAotICAgIGxldCBjdHggPSBjYW52
YXMuZ2V0Q29udGV4dCgiMmQiKTsKLSAgICBsZXQgaW1hZ2VCaXRtYXAgPSBhd2FpdCBjcmVhdGVJ
bWFnZUJpdG1hcCh2aWRlbyk7Ci0gICAgY3R4LmRyYXdJbWFnZShpbWFnZUJpdG1hcCwgMCwgMCwg
Y2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKLSAgICBhc3NlcnRJbWFnZURhdGFDb250YWlu
c01vY2tDYW1lcmFJbWFnZShjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIGNhbnZhcy53aWR0aCwgY2Fu
dmFzLmhlaWdodCkpOwotICAgIGRlYnVnZS5yZW1vdmVDaGlsZChjYW52YXMpOwotICAgIGRlYnVn
ZS5yZW1vdmVDaGlsZCh2aWRlbyk7Ci19LCBkb2N1bWVudC50aXRsZSArICIgdmlhIEltYWdlQml0
bWFwIHRvIDJEQ29udGV4dCIpOworYXN5bmMgZnVuY3Rpb24gd2l0aFdlYkdMKHN1YmNhc2UsIHZp
ZGVvLCBjYW52YXMpIHsKKyAgICBjb25zdCBbZ2wsIHRleHR1cmVdID0gY3JlYXRlVmVyaWZ5V2Vi
R0xTdGF0ZShjYW52YXMpOworICAgIGxldCBzb3VyY2UgPSB2aWRlbzsKKyAgICBpZiAoc3ViY2Fz
ZS5pbWFnZUJpdG1hcCkKKyAgICAgICAgc291cmNlID0gYXdhaXQgY3JlYXRlSW1hZ2VCaXRtYXAo
c291cmNlKTsKKyAgICBpZiAoc3ViY2FzZS51bnBhY2tGbGlwWSkKKyAgICAgICAgZ2wucGl4ZWxT
dG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgdHJ1ZSk7CisgICAgaWYgKHN1YmNhc2Uuc3Vi
SW1hZ2UpIHsKKyAgICAgICAgY29uc3QgdyA9IHZpZGVvLnZpZGVvV2lkdGg7CisgICAgICAgIGNv
bnN0IGggPSB2aWRlby52aWRlb0hlaWdodDsKKyAgICAgICAgY29uc3QgcGl4ZWxzID0gbmV3IFVp
bnQ4QXJyYXkodyAqIGggKiA0KTsKKyAgICAgICAgcGl4ZWxzLmZpbGwoMCk7CisgICAgICAgIGds
LnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgdywgaCwgMCwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwgcGl4ZWxzKTsKKyAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBzb3VyY2UpOwor
ICAgIH0gZWxzZQorICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJH
QkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNvdXJjZSk7CisKKyAgICBpZiAoc3ViY2Fz
ZS51bnBhY2tGbGlwWSkgeworICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9Z
X1dFQkdMLCBmYWxzZSk7CisgICAgICAgIHNldHVwSW52ZXJzZVVuaXRRdWFkVGV4dHVyZUNvb3Jk
aW5hdGVzKGdsKTsKKyAgICAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBbMCwgMCwg
MCwgMjU1XSk7CisgICAgfSBlbHNlCisgICAgICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChn
bCwgWzAsIDAsIDAsIDI1NV0pOworICAgIHJldHVybiBnZXRGcmFtZWJ1ZmZlckFzSW1hZ2VEYXRh
KGdsKTsKK30KIAotcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGxldCB2aWRlbyA9IGF3
YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7Ci0gICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7Ci0gICAg
bGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbyk7Ci0gICAgZGVidWdlLmFwcGVu
ZENoaWxkKGNhbnZhcyk7Citjb25zdCBzdWJjYXNlcyA9IFtdOworY29uc3QgYW5nbGVzID0gWzAs
IDkwLCAxODBdOyAvLyBGSVhNRTogLTkwIG1ha2Ugc2V0TW9ja0NhbWVyYS4uLiBhY2NlcHQgc2ln
bmVkLiBodHRwczovL3dlYmtpdC5vcmcvYi8yMzUzNTIKK2NvbnN0IGZhbHNlQW5kVHJ1ZSA9IFtm
YWxzZSwgdHJ1ZV07Citmb3IgKGNvbnN0IGFuZ2xlIG9mIGFuZ2xlcykgeworICAgIGZvciAoY29u
c3QgaW1hZ2VCaXRtYXAgb2YgZmFsc2VBbmRUcnVlKQorICAgICAgICBzdWJjYXNlcy5wdXNoKHsg
ZnVuYzogd2l0aDJEQ29udGV4dCwgYW5nbGU6IGFuZ2xlLCBpbWFnZUJpdG1hcDogaW1hZ2VCaXRt
YXAgfSk7Cit9CiAKLSAgICBsZXQgZ2wgPSBjcmVhdGVWZXJpZnlXZWJHTENvbnRleHQoY2FudmFz
KTsKLSAgICBsZXQgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5iaW5kVGV4
dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRF
WFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wudGV4
UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJF
U1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQ
X1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGdsLnRleEltYWdl
MkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
dmlkZW8pOwotICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVhZChnbCwgWzAsIDAsIDAsIDI1NV0p
OworZm9yIChjb25zdCBhbmdsZSBvZiBhbmdsZXMpIHsKKyAgICBmb3IgKGNvbnN0IGltYWdlQml0
bWFwIG9mIGZhbHNlQW5kVHJ1ZSkgeworICAgICAgICBmb3IgKGNvbnN0IHN1YkltYWdlIG9mIGZh
bHNlQW5kVHJ1ZSkgeworICAgICAgICAgICAgZm9yIChjb25zdCB1bnBhY2tGbGlwWSBvZiBmYWxz
ZUFuZFRydWUpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW1hZ2VCaXRtYXAgPT0gdHJ1ZSAmJiB1
bnBhY2tGbGlwWSA9PSB0cnVlKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gRklY
TUU6IFdlYkdMIHRleHR1cmUgdXBsb2FkIG9mIEltYWdlQml0bWFwIGRvZXMgbm90IHJlc3BlY3Qg
VU5QQUNLX0ZMSVBfWV9XRUJHTC4gaHR0cHM6Ly93ZWJraXQub3JnL2IvMjM1MzUwCisgICAgICAg
ICAgICAgICAgc3ViY2FzZXMucHVzaCh7ZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogYW5nbGUsIGlt
YWdlQml0bWFwOiBpbWFnZUJpdG1hcCwgc3ViSW1hZ2U6IHN1YkltYWdlLCB1bnBhY2tGbGlwWTog
dW5wYWNrRmxpcFl9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KIAotICAg
IGxldCBpbWFnZURhdGEgPSBnZXRGcmFtZWJ1ZmZlckFzSW1hZ2VEYXRhKGdsKTsKLSAgICBhc3Nl
cnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEpOwotICAgIGRlYnVn
ZS5yZW1vdmVDaGlsZChjYW52YXMpOwotICAgIGRlYnVnZS5yZW1vdmVDaGlsZCh2aWRlbyk7Ci19
LCBkb2N1bWVudC50aXRsZSArICIgdmlhIFdlYkdMIHRleHR1cmUiKTsKK2Z1bmN0aW9uIHRlc3RE
ZXNjcmlwdGlvbihzdWJjYXNlKSB7CisgICAgbGV0IGRlc2MgPSAiZnVuYzogIiArIHN1YmNhc2Uu
ZnVuYy5uYW1lOworICAgIGZvciAoY29uc3QgayBpbiBzdWJjYXNlKSB7CisgICAgICAgIGlmIChr
ID09PSAiZnVuYyIpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgZGVzYyArPSBgLCAk
e2t9OiAke3N1YmNhc2Vba119YDsKKyAgICB9CisgICAgcmV0dXJuIGRlc2M7Cit9CiAKLXByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBsZXQgdmlkZW8gPSBhd2FpdCBjcmVhdGVTb3VyY2VW
aWRlbygpOworYXN5bmMgZnVuY3Rpb24gdGVzdFVzZXJNZWRpYVRvQ2FudmFzKHQsIHN1YmNhc2Up
IHsKKyAgICBjb25zdCBkZXNjID0gdGVzdERlc2NyaXB0aW9uKHN1YmNhc2UpOworICAgIGNvbnN0
IHZpZGVvID0gYXdhaXQgY3JlYXRlU291cmNlVmlkZW8oKTsKICAgICBkZWJ1Z2UuYXBwZW5kKHZp
ZGVvKTsKLSAgICBsZXQgY2FudmFzID0gY3JlYXRlVmVyaWZ5Q2FudmFzKHZpZGVvKTsKLSAgICBk
ZWJ1Z2UuYXBwZW5kQ2hpbGQoY2FudmFzKTsKLQotICAgIGxldCBnbCA9IGNyZWF0ZVZlcmlmeVdl
YkdMQ29udGV4dChjYW52YXMpOwotICAgIGxldCB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgp
OwotICAgIGxldCBpbWFnZUJpdG1hcCA9IGF3YWl0IGNyZWF0ZUltYWdlQml0bWFwKHZpZGVvKTsK
LSAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAgICBnbC50ZXhQ
YXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVT
VCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19G
SUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwotICAgIGdsLnRleFBhcmFtZXRl
cmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwot
ICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wu
VU5TSUdORURfQllURSwgaW1hZ2VCaXRtYXApOwotICAgIHd0dS5jbGVhckFuZERyYXdVbml0UXVh
ZChnbCwgWzAsIDAsIDAsIDI1NV0pOworICAgIGNvbnN0IHJlYWxWaWRlb1NpemUgPSBbdmlkZW8u
dmlkZW9XaWR0aCwgdmlkZW8udmlkZW9IZWlnaHRdOworICAgIHQuYWRkX2NsZWFudXAoYXN5bmMg
KCkgPT4geworICAgICAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQodmlkZW8pOworICAgICAgICAvLyBS
ZXNldCBvcmllbnRhdGlvbiBmb3IgdGhlIG5leHQgdGVzdCBieSBnb2luZyB0byAwLgorICAgICAg
ICBpZiAoc3ViY2FzZS5hbmdsZSA9PSAxODApIHsKKyAgICAgICAgICAgIC8vIDE4MCAtPiAwIGNh
bm5vdCBkZXRlY3Qgcm90YXRpb24gdmlhIHZpZGVvIHNpemUgY2hhbmdlLiBHbyB2aWEgOTAuCisg
ICAgICAgICAgICBjb25zdCBbYW5nbGUsIHZpZGVvU2l6ZV0gPSBzZXRNb2NrQ2FtZXJhSW1hZ2VP
cmllbnRhdGlvbig5MCwgcmVhbFZpZGVvU2l6ZSk7CisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9y
VmlkZW9TaXplKHZpZGVvLCB2aWRlb1NpemVbMF0sIHZpZGVvU2l6ZVsxXSk7CisgICAgICAgIH0K
KyAgICAgICAgc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50YXRpb24oMCk7CisgICAgICAgIGF3YWl0
IHdhaXRGb3JWaWRlb1NpemUodmlkZW8sIHJlYWxWaWRlb1NpemVbMF0sIHJlYWxWaWRlb1NpemVb
MV0pOworICAgIH0pOworCisgICAgaWYgKHN1YmNhc2UuYW5nbGUgPT0gMTgwKSB7CisgICAgICAg
IC8vIDAgLT4gMTgwIGNhbm5vdCBkZXRlY3Qgcm90YXRpb24gdmlhIHZpZGVvIHNpemUgY2hhbmdl
LiBHbyB2aWEgOTAuCisgICAgICAgIGNvbnN0IFthbmdsZSwgdmlkZW9TaXplXSA9IHNldE1vY2tD
YW1lcmFJbWFnZU9yaWVudGF0aW9uKDkwLCByZWFsVmlkZW9TaXplKTsKKyAgICAgICAgYXdhaXQg
d2FpdEZvclZpZGVvU2l6ZSh2aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVbMV0pOworICAg
IH0KKyAgICBjb25zdCBbYW5nbGUsIHZpZGVvU2l6ZV0gPSBzZXRNb2NrQ2FtZXJhSW1hZ2VPcmll
bnRhdGlvbihzdWJjYXNlLmFuZ2xlLCByZWFsVmlkZW9TaXplKTsKKyAgICBhd2FpdCB3YWl0Rm9y
VmlkZW9TaXplKHZpZGVvLCB2aWRlb1NpemVbMF0sIHZpZGVvU2l6ZVsxXSk7CiAKLSAgICBsZXQg
aW1hZ2VEYXRhID0gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCk7Ci0gICAgYXNzZXJ0SW1h
Z2VEYXRhQ29udGFpbnNNb2NrQ2FtZXJhSW1hZ2UoaW1hZ2VEYXRhKTsKLSAgICBkZWJ1Z2UucmVt
b3ZlQ2hpbGQoY2FudmFzKTsKLSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQodmlkZW8pOwotfSwgZG9j
dW1lbnQudGl0bGUgKyAiIHZpYSBJbWFnZUJpdG1hcCB0byBXZWJHTCB0ZXh0dXJlIik7CisgICAg
Y29uc3QgY2FudmFzID0gY3JlYXRlVmVyaWZ5Q2FudmFzKHZpZGVvKTsKKyAgICBkZWJ1Z2UuYXBw
ZW5kQ2hpbGQoY2FudmFzKTsKKyAgICB0LmFkZF9jbGVhbnVwKGFzeW5jICgpID0+IGRlYnVnZS5y
ZW1vdmVDaGlsZChjYW52YXMpKTsKKyAgICBjb25zdCBpbWFnZURhdGEgPSBhd2FpdCBzdWJjYXNl
LmZ1bmMoc3ViY2FzZSwgdmlkZW8sIGNhbnZhcyk7CisgICAgdHJ5IHsKKyAgICAgICAgYXNzZXJ0
SW1hZ2VEYXRhQ29udGFpbnNNb2NrQ2FtZXJhSW1hZ2UoaW1hZ2VEYXRhLCBhbmdsZSwgZGVzYyk7
CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAvLyBVc2UgdGhpcyBmb3IgZGVidWdnaW5nOgor
ICAgICAgICAvL2F3YWl0IHdhaXRGb3IoMTAwMDApOworICAgICAgICB0aHJvdyBlOworICAgIH0K
K30KIAorZm9yIChjb25zdCBzdWJjYXNlIG9mIHN1YmNhc2VzKSB7CisgICAgcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geyBhd2FpdCB0ZXN0VXNlck1lZGlhVG9DYW52YXModCwgc3ViY2FzZSk7IH0s
IHRlc3REZXNjcmlwdGlvbihzdWJjYXNlKSk7Cit9CiAgICAgICAgIDwvc2NyaXB0PgogICAgIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5q
cyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcwppbmRleCBmODM3YWEwMGQ3YWUzNzhi
NDU1YzhjY2E0NDk4MTk1MGJhMDVlMDlhLi4yY2ZmNjllNjUxYjk0MTdiNWUxOTk4YmJkNTY3OTIx
OWE1N2YyY2UxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMKKysr
IGIvTGF5b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVzLmpzCkBAIC0yNTMsNyArMjUzLDcgQEAgYXN5
bmMgZnVuY3Rpb24gY29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0sIHZpZGVvKQogewogICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAgIGludGVybmFscy5vYnNlcnZlTWVkaWFTdHJlYW1U
cmFjayhzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSk7Ci0gICAgICAgIGF3YWl0IG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgICAgICBhd2Fp
dCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpOwogICAg
ICAgICByZXR1cm4gaW50ZXJuYWxzLnRyYWNrVmlkZW9TYW1wbGVDb3VudDsKICAgICB9CiAKQEAg
LTI3Myw3ICsyNzMsNyBAQCBhc3luYyBmdW5jdGlvbiBjb21wdXRlRnJhbWVSYXRlKHN0cmVhbSwg
dmlkZW8pCiAgICAgYXdhaXQgdmlkZW8ucGxheSgpOwogCiAgICAgY29uc3Qgc3RhdHMxID0gYXdh
aXQgZ2V0UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24pOwotICAgIGF3YWl0IG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7CiAgICAgY29u
c3Qgc3RhdHMyID0gYXdhaXQgZ2V0UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24pOwogICAg
IHJldHVybiAoc3RhdHMyLmZyYW1lc1JlY2VpdmVkIC0gc3RhdHMxLmZyYW1lc1JlY2VpdmVkKSAq
IDEwMDAgLyAoc3RhdHMyLnRpbWVzdGFtcCAtIHN0YXRzMS50aW1lc3RhbXApOwogfQpAQCAtMjk4
LDYgKzI5OCwyMCBAQCBmdW5jdGlvbiBzZXRIMjY0SGlnaENvZGVjKHNkcCkKICAgICB9KS5qb2lu
KCdcclxuJyk7CiB9CiAKKy8vIFNldHMgdGhlIGNhbWVyYSBpbWFnZSBvcmllbnRhdGlvbiBpZiBy
dW5uaW5nIG9uIHRlc3QgcnVubmVyLgorLy8gYW5nbGU6IG9yaWVudGF0aW9uIGFuZ2xlIG9mIHRo
ZSBjYW1lcmEgaW1hZ2UgaW4gZGVncmVlcworZnVuY3Rpb24gc2V0TW9ja0NhbWVyYUltYWdlT3Jp
ZW50YXRpb24oYW5nbGUsIHZpZGVvU2l6ZSkgeworICAgIGlmIChbMCwgOTAsIDE4MCwgMjcwXS5p
bmRleE9mKGFuZ2xlKSA9PSAtMSkKKyAgICAgICAgdGhyb3cgImludmFsaWQgYW5nbGUiOworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYW1l
cmFPcmllbnRhdGlvbihhbmdsZSk7CisgICAgICAgIGlmICh2aWRlb1NpemUgJiYgKGFuZ2xlID09
IDkwIHx8IGFuZ2xlID09IDI3MCkpCisgICAgICAgICAgICB2aWRlb1NpemUgPSBbdmlkZW9TaXpl
WzFdLCB2aWRlb1NpemVbMF1dOworICAgICAgICByZXR1cm4gW2FuZ2xlLCB2aWRlb1NpemVdOwor
ICAgIH0KKyAgICByZXR1cm4gWzAsIHZpZGVvU2l6ZV07Cit9CisKIC8vIFJldHVybnMgVWludDhB
cnJheVs0XSBvZiBSR0JBIGNvbG9yLgogLy8gcDogW3gsIHldIG9mIDAuLjEgcmFuZ2UuCiBmdW5j
dGlvbiBnZXRJbWFnZURhdGFQaXhlbChpbWFnZURhdGEsIHApCkBAIC0zMTEsMTYgKzMyNSwzMyBA
QCBmdW5jdGlvbiBnZXRJbWFnZURhdGFQaXhlbChpbWFnZURhdGEsIHApCiAvLyBBc3NlcnRzIHRo
YXQgSW1hZ2VEYXRhIGluc3RhbmNlIGNvbnRhaW5zIG1vY2sgY2FtZXJhIGltYWdlIHJlbmRlcmVk
IGJ5IE1pbmlCcm93c2VyIGFuZCBXZWJLaXRUZXN0UnVubmVyLgogLy8gT2J0YWluIGZ1bGwgY2Ft
ZXJhIGltYWdlIG9mIHNpemUgYHdpZHRoYDoKIC8vICBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiB7IGV4YWN0OiB3aWR0aCB9IH0gfSk7
Ci1mdW5jdGlvbiBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURh
dGEpCitmdW5jdGlvbiBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFn
ZURhdGEsIGFuZ2xlLCBkZXNjKQogeworICAgIGFuZ2xlID0gYW5nbGUgfHwgMDsKKyAgICBkZXNj
ID0gZGVzYyB8fCAiIjsKKworICAgIGZ1bmN0aW9uIHJvdGF0ZVBvaW50KHApIHsKKyAgICAgICAg
bGV0IGEgPSBhbmdsZTsKKyAgICAgICAgbGV0IG4gPSBbIHBbMF0sIHBbMV0gXTsKKyAgICAgICAg
d2hpbGUgKGEgPiAwKSB7CisgICAgICAgICAgICBuID0gWyAxLjAgLSBuWzFdLCBuWzBdIF07Cisg
ICAgICAgICAgICBhIC09IDkwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuOworICAgIH0K
KwogICAgIGNvbnN0IHdoaXRlID0gWyAyNTUsIDI1NSwgMjU1LCAyNTUgXTsKKyAgICBjb25zdCB3
aGl0ZVBvaW50ID0gcm90YXRlUG9pbnQoWyAwLjA0LCAwLjcgXSk7CiAgICAgY29uc3QgeWVsbG93
ID0gWyAyNTUsIDI1NSwgMCwgMjU1IF07CisgICAgY29uc3QgeWVsbG93UG9pbnQgPSByb3RhdGVQ
b2ludChbIDAuMDgsIDAuNyBdKTsKICAgICBjb25zdCBjeWFuID0gWyAwLCAyNTUsIDI1NSwgMjU1
IF07CisgICAgY29uc3QgY3lhblBvaW50ID0gcm90YXRlUG9pbnQoWyAwLjEyLCAwLjcgXSk7CiAg
ICAgY29uc3QgbGlnaHRHcmVlbiA9IFsgMCwgMTI4LCAwLCAyNTUgXTsKKyAgICBjb25zdCBsaWdo
dEdyZWVuUG9pbnQgPSByb3RhdGVQb2ludChbIDAuMTYsIDAuNyBdKTsKIAotICAgIGxldCBlcnIg
PSAzOwotICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGlt
YWdlRGF0YSwgWyAwLjA0LCAwLjcgXSksIHdoaXRlLCBlcnIsICJ3aGl0ZSByZWN0IG5vdCBmb3Vu
ZCIpOwotICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGlt
YWdlRGF0YSwgWyAwLjA4LCAwLjcgXSksIHllbGxvdywgZXJyLCAieWVsbG93IHJlY3Qgbm90IGZv
dW5kIik7Ci0gICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwo
aW1hZ2VEYXRhLCBbIDAuMTIsIDAuNyBdKSwgY3lhbiwgZXJyLCAiY3lhbiByZWN0IG5vdCBmb3Vu
ZCIpOwotICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGlt
YWdlRGF0YSwgWyAwLjE2LCAwLjcgXSksIGxpZ2h0R3JlZW4sIGVyciwgImxpZ2h0IGdyZWVuIHJl
Y3Qgbm90IGZvdW5kIik7CisgICAgbGV0IGVyciA9IDExOworICAgIGFzc2VydF9hcnJheV9hcHBy
b3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgd2hpdGVQb2ludCksIHdoaXRl
LCBlcnIsICJ3aGl0ZSByZWN0IG5vdCBmb3VuZCAiICsgZGVzYyk7CisgICAgYXNzZXJ0X2FycmF5
X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCB5ZWxsb3dQb2ludCks
IHllbGxvdywgZXJyLCAieWVsbG93IHJlY3Qgbm90IGZvdW5kIiArIGRlc2MpOworICAgIGFzc2Vy
dF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgY3lhblBv
aW50KSwgY3lhbiwgZXJyLCAiY3lhbiByZWN0IG5vdCBmb3VuZCAiICsgZGVzYyk7CisgICAgYXNz
ZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCBsaWdo
dEdyZWVuUG9pbnQpLCBsaWdodEdyZWVuLCBlcnIsICJsaWdodCBncmVlbiByZWN0IG5vdCBmb3Vu
ZCAiICsgZGVzYyk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449474</attachid>
            <date>2022-01-19 04:37:13 -0800</date>
            <delta_ts>2022-01-19 05:05:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235233-20220119143711.patch</filename>
            <type>text/plain</type>
            <size>85966</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAwODliMmFlOGM0YTE0
ZGNmNGYwYTFlZjc4ZTE5ZjQ4ZmNiMjU0NC4uNmE4ODk1ZTdlNDBiMWVlMjlkZDRkMTE1NTRkZjhj
MGU2ODYxN2YwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIyLTAxLTE3ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdl
YkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlh
IGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NjAxNzYyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgZnVsbCB0ZXh0
dXJlIHVwbG9hZHMgZnJvbSBNZWRpYVN0cmVhbSBjYW1lcmEgY2FwdHVyZXMgdXNlIENWUGl4ZWxC
dWZmZXJzCisgICAgICAgIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcGl4ZWxzIGJhY2suCisgICAg
ICAgIEltcGxlbWVudCBNZWRpYVBsYXllckludGVyZmFjZTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50
VGltZSgpIGZvcgorICAgICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
CisgICAgICAgIFJlbmFtZSBmdW5jdGlvbnMgZnJvbSBwaXhlbEJ1ZmZlci4uLiB0byB2aWRlb0Zy
YW1lLgorICAgICAgICBVc2UgbmV3IHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGluc3RlYWQg
b2YgQ1ZQaXhlbEJ1ZmZlci4KKyAgICAgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGNvbnRhaW5z
IGFsc28gdGhlIGZyYW1lIG9yaWVudGF0aW9uLiBUaGUKKyAgICAgICAgb3JpZW50YXRpb24gaXMg
bmVlZGVkIGFzIHRoZSBjYW1lcmEgbWlnaHQgY2FwdHVyZSB0aGUgaW1hZ2UKKyAgICAgICAgd2l0
aCBhIHJvdGF0aW9uIG9yIGEgZmxpcC4KKworICAgICAgICBUbyBhdm9pZCBpZmRlZnMsIHRoZSBu
ZXcgQVBJIHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSBleGlzdHMKKyAgICAgICAgZm9yIGFsbCBw
bGF0Zm9ybXMsIGJ1dCBpcyBjdXJyZW50bHkgY2FsbGVkIG9ubHkgYnkgQ29jb2EuCisgICAgICAg
IEFsc28gdGhlIHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGV4aXN0cyBmb3IgYWxsIHBsYXRm
b3JtcworICAgICAgICBidXQgaGFzIHRoZSBmcmFtZSBjb250ZW50cyBpbXBsZW1lbnRhdGlvbiBv
bmx5IGZvciBDb2NvYS4KKworICAgICAgICBUZXN0ZWQgYnkgZmFzdC9tZWRpYXN0cmVhbS9nZXRV
c2VyTWVkaWEtdG8tY2FudmFzLmh0bWwKKworICAgICAgICBDdXJyZW50bHkgdGhlICJtaXJyb3Jl
ZCIgcGFydCBpcyB0ZXN0ZWQgbWFudWFsbHksIFdlYktpdAorICAgICAgICBkb2VzIG5vdCByZXF1
ZXN0IG1pcnJvcmVkIGNhbWVyYSBpbWFnZSBzbyBpdCBpcyBkZWFkIGNvZGUuCisKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6
OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnZpZGVvRnJhbWVGb3JDdXJyZW50
VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnBp
eGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyVmlkZW9GcmFtZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyVmlkZW9GcmFtZTo6b3JpZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpwaXhlbEJ1ZmZlciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU6Om9wZXJhdG9yPT0gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpkZWNvZGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclZpZGVvRnJhbWVBVkYu
bW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBo
aWNzQ29udGV4dEdMQ1YuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFt
ZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwaXhlbEJ1
ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OnZpZGVvT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZy
b21NZWRpYSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0
R0xDVi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdM
Q1ZDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6
OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2E6OmNvcHlWaWRlb0ZyYW1lVG9UZXh0dXJlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuaDoKKwogMjAyMi0wMS0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZXNldCBz
aG91bGQgaG9wIHRvIHRoZSBtYWluIHRocmVhZCBiZWZvcmUgY2FsbGluZyBpdHMgb2JzZXJ2ZXJz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDc5MzU1YjkzOTU2ZTAzNDU0YzE2NmNhNWNkM2NmOTMzYTIxNWFiMjUuLjRk
NWZjMTQyMjViOTA5NDI3MmRhYmI4OGI3ODhjZmE2MDMzZGUzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzEgQEAKKzIwMjItMDEtMTcgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNv
bT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViR0wgR1BVIGJ1ZmZlciB0ZXh0dXJlIHVwbG9hZCBw
YXRoIGZvciBDb2NvYSBnZXRVc2VyTWVkaWEgY2FtZXJhIHN0cmVhbXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTIzMworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vODc2MDE3NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVuYW1lIGZ1bmN0aW9ucyBmcm9tIHBpeGVsQnVmZmVyLi4uIHRvIHZpZGVv
RnJhbWUuCisgICAgICAgIFNlbmQgbmV3IHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGluc3Rl
YWQgb2YgQ1ZQaXhlbEJ1ZmZlci4KKyAgICAgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGNvbnRh
aW5zIGFsc28gdGhlIGZyYW1lIG9yaWVudGF0aW9uLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hh
bmdlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSk6IERlbGV0ZWQuCisKIDIwMjItMDEtMTcgIENoYW5nU2VvayBPaCAgPGNoYW5n
c2Vva0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtHVEtdIEltcGxlbWVudCBmb3JtIHZhbGlkYXRp
b24gd2l0aCBndGszIHdpZGdldHMgaW4gdGhlIFVJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IDg4OTBmOGRiYTQ3NGMzOTJjMzczMjk4ZGE3NTgwZjcxOWNlNWMzZGUuLjc4ZTdiYzkxMjY3
MjYyNTk1NDgxYTkyODUyNGU5ODBmYmE1NDM4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTUx
MSw2ICsxNTExLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyRW51bXMuaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVySWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclZpZGVvRnJh
bWUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZS5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVVzYWdlSW5mby5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAyYzNi
NGY4MWE1MmY1NjY5OWNiZmQ0MTJkZmFjMDk0MzY2NmFlYWU3Li5kZDFlZDhhZTYyZjJhNGIyZTYz
ZDFlZDE5MzUxNTk4ZmVlMGRiY2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTI5Niw2
ICsyOTYsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAorcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbQogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYjA4MWI2YTE5ZDNkZDVmYjY3ZmIxNmU3YmZhOWM3NTg2ZmY5ZjFhZC4uMjkyYjVjMTFj
Njg3NGU5MjBiZjI1MTlhNTY3YzA3OGJmZjAxNTk3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQwLDYgKzI0MCw3IEBACiAJ
CTA4MUVCRjNCMEZEMzRGNDEwMERBNzU1OSAvKiBTVkdGaWx0ZXJCdWlsZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODFFQkYzOTBGRDM0RjQxMDBE
QTc1NTkgLyogU1ZHRmlsdGVyQnVpbGRlci5oICovOyB9OwogCQkwODNEQUVBNzBGMDFBN0ZCMDAz
NDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4M0RBRUEzMEYwMUE3RkIwMDM0Mjc1NCAvKiBS
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oICovOyB9OwogCQkwODNEQUVBOTBGMDFBN0ZCMDAz
NDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODNEQUVBNTBGMDFBN0ZCMDAzNDI3NTQgLyog
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggKi87IH07CisJCTA4NDRCMDFEMTI1NUI0RTYw
MEI5Q0REMCAvKiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODQ0QjAxRDEyNTVFNEU2MDBCOUNERDAgLyog
U1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5oICovOyB9OwogCQkwODQ1NjgwODEyQjkwREE2MDA5
NjBBOUYgLyogRm9udE1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA4NDU2ODA3MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA4NTRCMDE1
MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDAzMTI1NUU0RTYwMEI5Q0REMCAvKiBS
ZW5kZXJTVkdJbmxpbmUuaCAqLzsgfTsKIAkJMDg1NEIwMTcxMjU1RTRFNjAwQjlDREQwIC8qIFJl
bmRlclNWR0lubGluZVRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA4NTRCMDA1MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmVUZXh0
LmggKi87IH07CkBAIC0yMzkxLDYgKzIzOTIsNyBAQAogCQk3QUY5QjIwRjE4Q0ZCNUY0MDBDNjRC
RUYgLyogSlNWVFRSZWdpb25MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QUY5QjIwQjE4Q0ZCNUYzMDBDNjRCRUYgLyogSlNWVFRSZWdpb25MaXN0
LmggKi87IH07CiAJCTdCMTAzMzlFMjU0OTcyMTcwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRH
TENWLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEw
MzM5RDI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCMTAzMzlGMjU0OTcyMUUw
MEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBH
cmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk3QjQ0MTBFMTI3OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFQbGF5
ZXJWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I2MDk0
REQyNzBDNDRCRDAwNjQ4MzVDIC8qIEFOR0xFVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkIzNEExNjI1MzQ1Q0IyMDAwMjlEMDggLyog
QU5HTEVVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QjZEQzgxOTI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJ
T1N1cmZhY2VTd2FwQ2hhaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCNkRDODE3MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElP
U3VyZmFjZVN3YXBDaGFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTdCNzIwQjBDMjc0M0RCQTcwMDA4QUJFRCAvKiBHcmFwaGljc0xheWVyQ29u
dGVudHNEaXNwbGF5RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdCNzIwQjBBMjc0M0RCQTYwMDA4QUJFRCAvKiBHcmFwaGljc0xheWVyQ29u
dGVudHNEaXNwbGF5RGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtNDYzNiw4ICs0NjM4LDggQEAKIAkJQ0RGNzQ3RjEyNzBGNzY2RjAw
OEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RjAyNzBGNzY2RjAwOEZFRUVD
IC8qIFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oICovOyB9OwogCQlDREY3NDdGMzI3
MEY3NkNGMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0N0Yy
MjcwRjc2Q0YwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5l
cy5oICovOyB9OwogCQlDREY3NDdGNTI3MEY4M0IxMDA4RkVFRUMgLyogUmVuZGVyU1ZHR3JhZGll
bnRTdG9wSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RGNzQ3RjQyNzBGODNCMTAwOEZFRUVDIC8qIFJlbmRlclNWR0dyYWRpZW50U3RvcElu
bGluZXMuaCAqLzsgfTsKLQkJQ0RGNzQ3RjcyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRl
clNWR1NoYXBlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RGNzQ3RjYyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRlclNWR1NoYXBl
SW5saW5lcy5oICovOyB9OwogCQlDREY3NDdGNzI3MEY4M0I0MTA3REVFRUMgLyogUmVuZGVyU1ZH
U2hhcGVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREY3NDdGNjI3MEY4M0I0MTA3REVFRUMgLyogUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmgg
Ki87IH07CisJCUNERjc0N0Y3MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFw
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERjc0N0Y2MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMu
aCAqLzsgfTsKIAkJQ0RGNzQ3RjkyNzBGODdDQjAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNl
UmFkaWFsR3JhZGllbnRJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREY3NDdGODI3MEY4N0NCMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3Vy
Y2VSYWRpYWxHcmFkaWVudElubGluZXMuaCAqLzsgfTsKIAkJQ0RGNzQ3RkIyNzBGODkxQTAwOEZF
RUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTWFza2VySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RkEyNzBGODkxQTAwOEZFRUVDIC8q
IFJlbmRlclNWR1Jlc291cmNlTWFza2VySW5saW5lcy5oICovOyB9OwogCQlDREY3NDgzRjE4RkVC
Q0VDMDAwNkVDQzAgLyogR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDgzRDE4RkVCQ0VDMDAwNkVDQzAgLyog
R3JpZFBvc2l0aW9uc1Jlc29sdmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTYxOTgsMTAgKzYyMDAsMTIgQEAKIAkJMDgxQUE4RDkxMTExMjM3
RTAwMkFCMDZFIC8qIFNWR0VsZW1lbnRSYXJlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdFbGVtZW50UmFyZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDgxRUJGMzgwRkQzNEY0MTAwREE3NTU5IC8qIFNWR0ZpbHRlckJ1aWxkZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRmlsdGVyQnVpbGRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4MUVCRjM5MEZEMzRGNDEwMERBNzU1OSAv
KiBTVkdGaWx0ZXJCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R0ZpbHRlckJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDgzNEIwMEMx
MjQ0RTRFNjAwQjlDREQwIC8qIFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4M0RBRUEyMEYwMUE3RkIwMDM0Mjc1
NCAvKiBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4M0RBRUEzMEYwMUE3RkIwMDM0Mjc1NCAvKiBSZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwODNEQUVBNDBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4M0RBRUE1
MEYwMUE3RkIwMDM0Mjc1NCAvKiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4NDRCMDFEMTI1NUU0RTYwMEI5Q0REMCAv
KiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDg0NTY4MDcxMkI5MERBNjAwOTYwQTlGIC8qIEZvbnRNZXRyaWNzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRNZXRyaWNzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA4NTRCMDAyMTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxp
bmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHSW5s
aW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg1NEIwMDMxMjU1RTRFNjAw
QjlDREQwIC8qIFJlbmRlclNWR0lubGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJTVkdJbmxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEx
NDY5LDYgKzExNDczLDggQEAKIAkJN0IxMDMzOUMyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNz
Q29udGV4dEdMQ1ZDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxMDMzOUQyNTQ5NzIwMTAwQzhD
MUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjE2MTkxMDI3MTk4ODBF
MDBDNDBFQUMgLyogV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I0NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlh
UGxheWVyVmlkZW9GcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRp
YVBsYXllclZpZGVvRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I0NDEw
RTIyNzk1OEZERTAwMEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE1lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTUyNTcxMkU5MTAwMzgwQzcwIC8qIEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBo
aWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNzIwQjBBMjc0M0RCQTYwMDA4QUJFRCAvKiBHcmFwaGlj
c0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzQwNyw5ICsxMzQxMyw5IEBACiAJCUExMEJCNTgzMTQ4
NEUzQTcwMEIyRTg3QSAvKiBMZWdhY3lSZW5kZXJTVkdSZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1JlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEwQkI1ODMxNDg0RTNBNzAwQjNBQjZEIC8qIFJlbmRlclNWR1JlY3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHUmVjdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBCQjU4ODE0ODRFM0IzMDBCMkU4N0EgLyogTGVnYWN5
UmVuZGVyU1ZHU2hhcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TGVnYWN5UmVuZGVyU1ZHU2hhcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
MTBDQzU4ODE0NzNFM0IzMDBCMkE4QkYgLyogUmVuZGVyU1ZHU2hhcGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMTBCQjU4OTE0ODRFM0IzMDBCMkU4N0EgLyogTGVnYWN5UmVu
ZGVyU1ZHU2hhcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UmVu
ZGVyU1ZHU2hhcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwQkI1ODkxNDg0
RTNCMzAwQzNGNzdCIC8qIFJlbmRlclNWR1NoYXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUExMENDNTg4MTQ3M0UzQjMwMEIyQThCRiAvKiBSZW5kZXJTVkdTaGFwZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdTaGFwZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEQ2RTk0MjE0NEM5OTgwMEZERDE0RCAvKiBKU1BheW1l
bnRSZXNwb25zZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BheW1lbnRSZXNwb25z
ZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMERCRjQ2MThGOTIz
MTcwMDBENzBDNiAvKiBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwREM3NjgxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3Jp
ZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVHcmlk
RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjMxMSw4ICsxNjMxNyw4
IEBACiAJCUNERjc0N0YwMjcwRjc2NkYwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtl
cklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXJJbmxpbmVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjc0N0YyMjcwRjc2Q0YwMDhGRUVF
QyAvKiBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5lcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGNDI3MEY4M0IxMDA4RkVFRUMgLyogUmVuZGVyU1ZH
R3JhZGllbnRTdG9wSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdHcmFkaWVudFN0
b3BJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNERjc0N0Y2MjcwRjg2
QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNERjc0N0Y2MjcwRjgzQjQxMDdERUVFQyAvKiBSZW5kZXJTVkdTaGFwZUlubGluZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNERjc0N0Y2MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJT
VkdTaGFwZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjc0N0Y4MjcwRjg3Q0IwMDhG
RUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50SW5saW5lcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50SW5saW5lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGQTI3MEY4OTFBMDA4RkVFRUMgLyogUmVuZGVy
U1ZHUmVzb3VyY2VNYXNrZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1Jlc291
cmNlTWFza2VySW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDgz
QzE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODcwMyw2ICsxODcwOSw3IEBACiAJCQkJMDcx
RTQ5NkQxQUQ1QUEwRDAwOEE1MEI0IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbSAqLywK
IAkJCQkwNzZGMEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmNwcCAqLywKIAkJCQkwNzZGMEQwQTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggKi8sCisJCQkJN0I0NDEwRTIyNzk1OEZERTAwMEI0RjhB
IC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbSAqLywKIAkJCQlDREJFQUVBQjE5RDkyQjZD
MDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCAqLywKIAkJCQlDREJFQUVB
QTE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0gKi8sCiAJ
CQkJNDEwMjRGQzgyM0NGMjU0RjAwRkRGOThFIC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5j
cHAgKi8sCkBAIC0yODkyOCw2ICsyODkzNSw3IEBACiAJCQkJQ0Q1MjA5RTMxQjBCRDgzODAwNzcx
ODRFIC8qIE1lZGlhUGxheWVyRW51bXMuaCAqLywKIAkJCQlGNDI5MjYxNzI1MjY0RDQ0MDAwMDc4
OTggLyogTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmggKi8sCiAJCQkJMDc5RjVFNEIwRjNCRUJFQTAw
NUUwNzgyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZS5oICovLAorCQkJCTdCNDQxMERGMjc5NThGQzQw
MDBCNEY4QSAvKiBNZWRpYVBsYXllclZpZGVvRnJhbWUuaCAqLywKIAkJCQlDRDY0MUVCMTE4MThG
NUVEMDBFRTRDNDEgLyogTWVkaWFTb3VyY2VQcml2YXRlLmggKi8sCiAJCQkJQ0REQzFFNzkxOEE5
NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oICovLAogCQkJCTA3NjEx
REI4MjQzRkI3NUMwMEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oICovLApAQCAtMzYxMDYsNiAr
MzYxMTQsNyBAQAogCQkJCURGOUFGRDcyMTNGQzMxRDgwMDE1RkVCNyAvKiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM4QjVBMzE4MDQ2
MzQ3MDAxNkU2ODUgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNTA1MjRGNDFCNzEyRkY2MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjQ0MTBFMTI3
OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwNzdCQTU3NjI2MEZBREY2MDA3MkYxOUYgLyogTWVkaWFQb3NpdGlvblN0YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MkUyQ0FGQzE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlh
UXVlcnkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGMxMjgxYTQ0NmIxNTY1OTA5YjMxNDRhNzgyYzk5
NzhlZTkwODlmZTIuLjc3NDc2OGUyYzE5Mjc2MWY4MGE4NTZkYTkyZTJhZjZhODhkODdmYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
QEAgLTEwNjIsMTUgKzEwNjIsMTMgQEAgYm9vbCBNZWRpYVBsYXllcjo6Y29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiBjb250ZXh0LAogICAgIHJldHVy
biBtX3ByaXZhdGUtPmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShjb250ZXh0LCB0
ZXh0dXJlLCB0YXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVt
dWx0aXBseUFscGhhLCBmbGlwWSk7CiB9CiAKLSNlbHNlCisjZW5kaWYKIAotUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkK
K3N0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiBNZWRpYVBsYXllcjo6dmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5waXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lKCk7CiB9CiAKLSNlbmRpZgotCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxh
eWVyOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICByZXR1cm4gbV9wcml2YXRl
LT5uYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBjMTNkNzAzMmYyOGNjZDkwODcyYjA5Mjc2
ZDkzNzJhNDI2NTNhMjAxLi4yN2E2OTA3M2MzODA3NTQxNGJhNzIxMTA3Y2I1MGQwY2ZmNGZkODQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJFbnVtcy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVySWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luRGF0YS5oIgpAQCAtNDY3LDEwICs0NjgsOCBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIGN1cnJl
bnQgcmVzdHJpY3Rpb25zIHJlcXVpcmUgdGhhdCBmb3JtYXQgc2hvdWQgYmUgUkdCIG9yIFJHQkEs
IHR5cGUgc2hvdWxkIGJlIFVOU0lHTkVEX0JZVEUgYW5kIGxldmVsIHNob3VsZCBiZSAwLiBJdCBt
YXkgYmUgbGlmdGVkIGluIHRoZSBmdXR1cmUuCiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAg
Ym9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wq
LCBQbGF0Zm9ybUdMT2JqZWN0IHRleHR1cmUsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZl
bCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlw
ZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKTsKLSNlbHNlCi0gICAgUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKICNlbmRp
ZgotCisgICAgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZSgpOwogICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JD
dXJyZW50VGltZSgpOwogICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQ
cml2YXRlLmgKaW5kZXggNmU0NzdiY2FmOWM0ODU3YTAxNzcyNjU3MjJmODFiZjg0ZmJjMzBkZS4u
MDg1ZjhhYjM1ZDhmNWZkNWE4NjM5Y2Y0ODg0ZWRkMTZjMDUyOWU5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAg
LTI5LDggKzI5LDEwIEBACiAKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1l
ZGlhUGxheWVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyVmlkZW9GcmFtZS5o
IgogI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2Vz
LmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVy
Lmg+CiAKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKQEAgLTE3OCw5ICsxODAs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0
KEdyYXBoaWNzQ29udGV4dCYgYywgY29uc3QgRmxvYXRSZWN0JiByKSB7IHBhaW50KGMsIHIpOyB9
CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3Qs
IEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBi
b29sKSB7IHJldHVybiBmYWxzZTsgfQotI2Vsc2UKLSAgICB2aXJ0dWFsIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbnVsbHB0
cjsgfQogI2VuZGlmCisgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9G
cmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9
CiAgICAgdmlydHVhbCBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRp
bWUoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2UgY29sb3JTcGFjZSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclZpZGVvRnJhbWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTViYzk0
MjUwYzMzNmUwOTIwMjFlYmFiMmE0ZGRiYmU3MDVlYmZlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgKQEAg
LTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKyNpbmNsdWRlICJJbWFnZU9y
aWVudGF0aW9uLmgiCisKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KKwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsK
KyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhUGxheWVyVmlkZW9G
cmFtZSB7CitwdWJsaWM6CisgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lKCkgPSBkZWxldGU7Cisj
aWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVBsYXllclZpZGVv
RnJhbWUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYsIEltYWdlT3JpZW50YXRpb24pOwor
I2VuZGlmCisKKyAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9vcmllbnRhdGlvbjsgfQorCisjaWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9waXhlbEJ1ZmZlci5nZXQo
KTsgfQorI2VuZGlmCisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTWVkaWFQbGF5ZXJWaWRl
b0ZyYW1lJiBvdGhlcikgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiBkZWNvZGUoRGVj
b2RlciYpOworCitwcml2YXRlOgorI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXI7CisjZW5kaWYKKyAgICBJbWFnZU9yaWVu
dGF0aW9uIG1fb3JpZW50YXRpb247Cit9OworCitpbmxpbmUgYm9vbCBNZWRpYVBsYXllclZpZGVv
RnJhbWU6Om9wZXJhdG9yPT0oY29uc3QgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lJiBvdGhlcikgY29u
c3QKK3sKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIGlmIChtX3BpeGVsQnVmZmVyICE9IG90
aGVyLm1fcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIHJl
dHVybiBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbihvdGhlci5tX29yaWVudGF0aW9uKSA9
PSBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbihtX29yaWVudGF0aW9uKTsKK30KKwordGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBNZWRpYVBsYXllclZpZGVvRnJhbWU6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAg
ZW5jb2RlciA8PCBtX3BpeGVsQnVmZmVyOworICAgIGVuY29kZXIgPDwgSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZW50YXRpb24obV9vcmllbnRhdGlvbik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShl
bmNvZGVyKTsKKyNlbmRpZgorfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGQ6Om9w
dGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIHN0ZDo6
b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+PiBwaXhlbEJ1ZmZlcjsKKyAgICBk
ZWNvZGVyID4+IHBpeGVsQnVmZmVyOworICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgc3RkOjpvcHRpb25hbDxJbWFnZU9yaWVudGF0aW9uOjpP
cmllbnRhdGlvbj4gb3JpZW50YXRpb247CisgICAgZGVjb2RlciA+PiBvcmllbnRhdGlvbjsKKyAg
ICBpZiAoIW9yaWVudGF0aW9uKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJl
dHVybiBNZWRpYVBsYXllclZpZGVvRnJhbWUgeyBXVEZNb3ZlKCpwaXhlbEJ1ZmZlciksICpvcmll
bnRhdGlvbiB9OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyNlbmRpZgorfQorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclZpZGVv
RnJhbWVBVkYubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lQVZGLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1YzBkZGNhZmFkZDMx
ZWVmNjIyYzJhYWRmM2MwZDJlNjY1NWU0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1l
QVZGLm1tCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisj
aW5jbHVkZSAiTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpNZWRpYVBsYXllclZpZGVvRnJhbWUoUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+JiYgcGl4ZWxCdWZmZXIsIEltYWdlT3JpZW50YXRpb24gb3JpZW50
YXRpb24pCisgICAgOiBtX3BpeGVsQnVmZmVyKFdURk1vdmUocGl4ZWxCdWZmZXIpKQorICAgICwg
bV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKK3sKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaAppbmRleCA5NWEzNzg5YWQ2MjcxOWMxMDBiYzA2N2QzY2U4YWFhOTMyZDU3NDEx
Li5hYjY5ODNiZDk5NmNhOWRhZTM3NDJmNWM3NjQzYzVlYzBlZjgxNDI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oCkBAIC0yNjIsMTIgKzI2MiwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBkYXRl
TGFzdFBpeGVsQnVmZmVyKCk7CiAgICAgYm9vbCB2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1l
KCk7CiAgICAgdm9pZCBwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdl
PiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgRGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UoKSBmaW5hbDsKICAgICB2b2lkIHdhaXRGb3JWaWRlb091dHB1dE1l
ZGlhRGF0YVdpbGxDaGFuZ2UoKTsKIAotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBw
aXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgZmluYWw7Ci0KICNpZiBFTkFCTEUoTEVHQUNZX0VO
Q1JZUFRFRF9NRURJQSkKICAgICB2b2lkIGtleUFkZGVkKCkgZmluYWw7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPExlZ2FjeUNETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0sIExlZ2FjeUNETVNlc3Npb25DbGllbnQqKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCmluZGV4IGJkYzJhODJlNzNmNGZkZjg4YjVhNTRjOTk3ZjMyYmY2ODlkZTk5NmEuLmYzN2Rm
MDdlNjBjNzJhNDg5MTlhMjA1M2YwNTIyYzQwNzRkYTMyM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQpAQCAtMjYyNSwxMSArMjYyNSwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYgYwogCiB9
CiAKLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKK3N0ZDo6b3B0aW9uYWw8TWVk
aWFQbGF5ZXJWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewogICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigp
OwotCi0gICAgcmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyOworICAgIGlmICghbV9sYXN0UGl4ZWxC
dWZmZXIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIE1lZGlhUGxh
eWVyVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUgfTsKIH0KIAogUmVmUHRyPE5hdGl2ZUltYWdlPiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggOTMxM2MxYjNkZjZkMzY5NjA4Yzc1NWYwNTVkNDYxZGFi
NWRmNzIyYS4uZDc0ODNlNzRlNzZlZTVhOGU4Mjg0NGE4ZGZlMWMxNmVhZDczNTI1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTIyMiw3ICsyMjIsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgdXBkYXRlTGFzdEltYWdlKCk7CiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5D
b250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwotICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkg
ZmluYWw7CisgICAgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xv
clNwYWNlKCkgZmluYWw7CiAKICAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmco
KSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCBiMmNlNmJi
YzdhYWNjOGNlY2MyMWM5NDEyOTVlNDMxOGFkY2I4OWEzLi4yZjJkZTQ1N2RmMDVhMzYyNDA1NTM5
NmQxMzcyYmJiNDA5OTMwNTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC03MjEs
NyArNzIxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBh
aW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ28KICAgICBjb250ZXh0LmRyYXdOYXRp
dmVJbWFnZSgqaW1hZ2UsIGltYWdlUmVjdC5zaXplKCksIG91dHB1dFJlY3QsIGltYWdlUmVjdCk7
CiB9CiAKLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQorc3RkOjpvcHRpb25h
bDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICAvLyBXZSBoYXZlIGJlZW4g
YXNrZWQgdG8gcGFpbnQgaW50byBhIFdlYkdMIGNhbnZhcywgc28gdGFrZSB0aGF0IGFzIGEgc2ln
bmFsIHRvIGNyZWF0ZQogICAgIC8vIGEgZGVjb21wcmVzc2lvbiBzZXNzaW9uLCBldmVuIGlmIHRo
YXQgbWVhbnMgdGhlIG5hdGl2ZSB2aWRlbyBjYW4ndCBhbHNvIGJlIGRpc3BsYXllZApAQCAtNzMz
LDggKzczMyw5IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OnBpeGVsQnVmZmVyRm9yCiAKICAgICBpZiAoIW1faXNHYXRo
ZXJpbmdWaWRlb0ZyYW1lTWV0YWRhdGEpCiAgICAgICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigp
OwotCi0gICAgcmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyOworICAgIGlmICghbV9sYXN0UGl4ZWxC
dWZmZXIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIE1lZGlhUGxh
eWVyVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUgfTsKIH0KIAogRGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y29sb3JTcGFjZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQy5oCmluZGV4IDZkOTU1Njc0ZDA2Mjc1YWU0MzNlNWE1NGEzN2MzNGU2YmYzN2Y5YTIuLjli
NmZkMmI1ZjI3NTQ5MjY3ZGIzOTkzYzk4OTVkYjE2MzIxNTg2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oCkBAIC0xNDIsNiArMTQyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGFpbnQo
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBw
YWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmKSBvdmVycmlkZTsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgb3ZlcnJpZGU7CiAgICAgRGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UoKSBvdmVycmlkZTsKICAgICBib29sIG1ldGFEYXRhQXZhaWxhYmxl
KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0cmVhbVByaXZhdGUgJiYgbV9yZWFkeVN0YXRlID49
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGE7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tCmluZGV4IDQ5ZjQyZjljMDJiODI5NTMyNTc3MzhjMzQ0MDQzZGViNDEwODUx
YzIuLmFiZmFmMWM3YTM1ZGUxZDJmMWQxNjAxOWE4ZTMzN2QzODU2MDM5NDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KQEAgLTI0NCw2ICsyNDQsMjIgQEAgc3RhdGljIGlubGluZSBDR0Fm
ZmluZVRyYW5zZm9ybSB2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KE1lZGlhU2FtcGxlJiBzYW1w
bGUpCiAgICAgcmV0dXJuIHZpZGVvVHJhbnNmb3JtOwogfQogCitzdGF0aWMgaW5saW5lIEltYWdl
T3JpZW50YXRpb24gdmlkZW9PcmllbnRhdGlvbihNZWRpYVNhbXBsZSYgc2FtcGxlKQoreworICAg
IC8vIFNhbXBsZSB0cmFuc2Zvcm0gZmlyc3QgZmxpcHMgeC1jb29yZGluYXRlcywgdGhlbiByb3Rh
dGVzLgorICAgIGJvb2wgZmxpcFggPSBzYW1wbGUudmlkZW9NaXJyb3JlZCgpOyAvLyBMZWZ0IHNp
ZGUgc3dpdGNoZXMgd2l0aCByaWdodCBzaWRlLgorICAgIHN3aXRjaCAoc2FtcGxlLnZpZGVvUm90
YXRpb24oKSkgeworICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU6Cisg
ICAgICAgIHJldHVybiBmbGlwWCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IDog
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wTGVmdDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpW
aWRlb1JvdGF0aW9uOjpSaWdodDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmllbnRh
dGlvbjo6T3JpZ2luUmlnaHRCb3R0b20gOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodFRv
cDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAg
ICAgICByZXR1cm4gZmxpcFggPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21MZWZ0IDog
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9tUmlnaHQ7CisgICAgY2FzZSBNZWRpYVNhbXBs
ZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmll
bnRhdGlvbjo6T3JpZ2luTGVmdFRvcCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkxlZnRCb3R0
b207CisgICAgfQorfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSwgVmlkZW9TYW1wbGVN
ZXRhZGF0YSBtZXRhZGF0YSkKIHsKICAgICBhdXRvIHByZXNlbnRhdGlvblRpbWUgPSBNb25vdG9u
aWNUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpOwpAQCAtMTAwMyw2ICsxMDE5LDIxIEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dChHcmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmlt
YWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCB0cmFuc2Zvcm1lZERlc3RSZWN0LCBpbWFnZVJlY3QpOwog
fQogCitzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQoreworICAg
IGlmIChtX2Rpc3BsYXlNb2RlID09IE5vbmUgfHwgIW1ldGFEYXRhQXZhaWxhYmxlKCkpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKG1fZGlzcGxheU1vZGUgPT0gUGFpbnRJ
dEJsYWNrKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghbV9pbWFnZVBh
aW50ZXIubWVkaWFTYW1wbGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUt
PnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyOworICAgIENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgaWYgKCFwaXhl
bEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gTWVkaWFQ
bGF5ZXJWaWRlb0ZyYW1lIHsgUmV0YWluUHRyIHsgcGl4ZWxCdWZmZXIgfSwgdmlkZW9PcmllbnRh
dGlvbigqbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUpIH07Cit9CisKIERlc3RpbmF0aW9uQ29s
b3JTcGFjZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNvbG9yU3BhY2Uo
KQogewogICAgIHVwZGF0ZUN1cnJlbnRGcmFtZUltYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbQppbmRleCAzMmRiNmVlODJjY2QwMTkzOGI0MDdhNmI2ZThkZWNmODU1MmJjODE5
Li45NTdiYTZiYTkwYmIwMThiYjg4OGQwMmM1ZGM4Mzc0NmI2NTNkZmFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBo
aWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTc5MSw4ICs3OTEsOCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEU6OnBsYXRmb3JtUmVsZWFzZVRocmVhZFJlc291cmNlcygpCiAjaWYgRU5BQkxF
KFZJREVPKQogYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRp
YShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdD
R0xlbnVtIG91dHB1dFRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3Jt
YXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhh
LCBib29sIGZsaXBZKQogewotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBwbGF5ZXIucGl4ZWxCdWZm
ZXJGb3JDdXJyZW50VGltZSgpOwotICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgYXV0byB2aWRl
b0ZyYW1lID0gcGxheWVyLnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOworICAgIGlmICghdmlk
ZW9GcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYXV0byBjb250ZXh0Q1YgPSBh
c0NWKCk7CkBAIC04MDEsNyArODAxLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpj
b3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUcKIAogICAg
IFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5VU0VEKG91
dHB1dFRhcmdldCwgb3V0cHV0VGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJE
KTsKLSAgICByZXR1cm4gY29udGV4dENWLT5jb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUocGl4ZWxC
dWZmZXIuZ2V0KCksIG91dHB1dFRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0
LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKTsKKyAgICByZXR1cm4gY29u
dGV4dENWLT5jb3B5VmlkZW9GcmFtZVRvVGV4dHVyZSgqdmlkZW9GcmFtZSwgb3V0cHV0VGV4dHVy
ZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdM
OjpGbGlwWShmbGlwWSkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaAppbmRleCAxZDYx
NWE3ZjBlZjExMzIzMjY4MDJlNTY0YTlhZDUyNTI3ZTAzMDY3Li42ZDEwOWQ2NDUwYTAxNWUyN2Ri
Mzk0OWFkODM4YzY4NGJmZDFkNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVi5oCkBAIC0yOSw5ICsyOSw4
IEBACiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTC5oIgogCi10eXBlZGVmIHN0cnVjdCBf
X0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVmOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBNZWRpYVBsYXllclZpZGVvRnJhbWU7CiAKIC8vIEludGVyZmFjZSB0byBpbnRlcmFjdCB3aXRo
IENWIG9iamVjdHMgYW5kIEdyYXBoaWNzQ29udGV4dEdMLgogY2xhc3MgR3JhcGhpY3NDb250ZXh0
R0xDViB7CkBAIC00MSw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBGbGlwWSA9IEdyYXBo
aWNzQ29udGV4dEdMOjpGbGlwWTsKICAgICAvLyBDb3BpZXMgQ1YgcGl4ZWwgYnVmZmVyIHRvIEdy
YXBoaWNzQ29udGV4dEdMIFRFWFRVUkVfMkQgdGV4dHVyZSBvZiB0aGUgc2FtZSBzaXplIGFzIHRo
ZSBwaXhlbCBidWZmZXIuCiAgICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCi0gICAgdmly
dHVhbCBib29sIGNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmLCBQbGF0
Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVy
bmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZKSA9IDA7Cisg
ICAgdmlydHVhbCBib29sIGNvcHlWaWRlb0ZyYW1lVG9UZXh0dXJlKE1lZGlhUGxheWVyVmlkZW9G
cmFtZSYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NH
TGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxp
cFkpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCmluZGV4IDI0
OTk1YTNlZWVkYmVjOTQ4NWJjMWM2YTY5YjYyNWQwYmU3YTg5OTMuLmZiNDRlYTU2Mzk5MmQ4ZWE3
YTUxMDY1NzJjYmFlMzA5NjJlY2U2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNw
cApAQCAtNDksNiArNDksOCBAQCBzdGF0aWMgY29uc3RleHByIGF1dG8gc195dXZWZXJ0ZXhTaGFk
ZXJUZXh0dXJlMkQgewogICAgICJ1bmlmb3JtIHZlYzIgdV95VGV4dHVyZVNpemU7IgogICAgICJ1
bmlmb3JtIHZlYzIgdV91dlRleHR1cmVTaXplOyIKICAgICAidW5pZm9ybSBpbnQgdV9mbGlwWTsi
CisgICAgInVuaWZvcm0gaW50IHVfZmxpcFg7IgorICAgICJ1bmlmb3JtIGludCB1X3N3YXBYWTsi
CiAgICAgInZhcnlpbmcgdmVjMiB2X3lUZXh0dXJlQ29vcmRpbmF0ZTsiCiAgICAgInZhcnlpbmcg
dmVjMiB2X3V2VGV4dHVyZUNvb3JkaW5hdGU7IgogICAgICJ2b2lkIG1haW4oKSIKQEAgLTU3LDYg
KzU5LDEwIEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzX3l1dlZlcnRleFNoYWRlclRleHR1cmUy
RCB7CiAgICAgIiAgICB2ZWMyIG5vcm1hbGl6ZWRQb3NpdGlvbiA9IGFfcG9zaXRpb24gKiAuNSAr
IC41OyIKICAgICAiICAgIGlmICh1X2ZsaXBZID09IDEpIgogICAgICIgICAgICAgIG5vcm1hbGl6
ZWRQb3NpdGlvbi55ID0gMS4wIC0gbm9ybWFsaXplZFBvc2l0aW9uLnk7IgorICAgICIgICAgaWYg
KHVfZmxpcFggPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnggPSAxLjAg
LSBub3JtYWxpemVkUG9zaXRpb24ueDsiCisgICAgIiAgICBpZiAodV9zd2FwWFkgPT0gMSkiCisg
ICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnh5ID0gbm9ybWFsaXplZFBvc2l0aW9uLnl4
OyIKICAgICAiICAgIHZfeVRleHR1cmVDb29yZGluYXRlID0gbm9ybWFsaXplZFBvc2l0aW9uOyIK
ICAgICAiICAgIHZfdXZUZXh0dXJlQ29vcmRpbmF0ZSA9IG5vcm1hbGl6ZWRQb3NpdGlvbjsiCiAg
ICAgIn0iX3MKQEAgLTY3LDYgKzczLDggQEAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVy
dGV4U2hhZGVyVGV4dHVyZVJlY3RhbmdsZSB7CiAgICAgInVuaWZvcm0gdmVjMiB1X3lUZXh0dXJl
U2l6ZTsiCiAgICAgInVuaWZvcm0gdmVjMiB1X3V2VGV4dHVyZVNpemU7IgogICAgICJ1bmlmb3Jt
IGludCB1X2ZsaXBZOyIKKyAgICAidW5pZm9ybSBpbnQgdV9mbGlwWDsiCisgICAgInVuaWZvcm0g
aW50IHVfc3dhcFhZOyIKICAgICAidmFyeWluZyB2ZWMyIHZfeVRleHR1cmVDb29yZGluYXRlOyIK
ICAgICAidmFyeWluZyB2ZWMyIHZfdXZUZXh0dXJlQ29vcmRpbmF0ZTsiCiAgICAgInZvaWQgbWFp
bigpIgpAQCAtNzUsNiArODMsMTAgQEAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVydGV4
U2hhZGVyVGV4dHVyZVJlY3RhbmdsZSB7CiAgICAgIiAgICB2ZWMyIG5vcm1hbGl6ZWRQb3NpdGlv
biA9IGFfcG9zaXRpb24gKiAuNSArIC41OyIKICAgICAiICAgIGlmICh1X2ZsaXBZID09IDEpIgog
ICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlvbi55ID0gMS4wIC0gbm9ybWFsaXplZFBvc2l0
aW9uLnk7IgorICAgICIgICAgaWYgKHVfZmxpcFggPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFs
aXplZFBvc2l0aW9uLnggPSAxLjAgLSBub3JtYWxpemVkUG9zaXRpb24ueDsiCisgICAgIiAgICBp
ZiAodV9zd2FwWFkgPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnh5ID0g
bm9ybWFsaXplZFBvc2l0aW9uLnl4OyIKICAgICAiICAgIHZfeVRleHR1cmVDb29yZGluYXRlID0g
bm9ybWFsaXplZFBvc2l0aW9uICogdV95VGV4dHVyZVNpemU7IgogICAgICIgICAgdl91dlRleHR1
cmVDb29yZGluYXRlID0gbm9ybWFsaXplZFBvc2l0aW9uICogdV91dlRleHR1cmVTaXplOyIKICAg
ICAifSJfcwpAQCAtNTQ4LDYgKzU2MCw4IEBAIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6R3Jh
cGhpY3NDb250ZXh0R0xDVkNvY29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmIG93bmVyCiAgICAg
bV91dlRleHR1cmVVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJv
Z3JhbSwgInVfdXZUZXh0dXJlIik7CiAgICAgbV9jb2xvck1hdHJpeFVuaWZvcm1Mb2NhdGlvbiA9
IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9ncmFtLCAidV9jb2xvck1hdHJpeCIpOwogICAg
IG1feXV2RmxpcFlVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJv
Z3JhbSwgInVfZmxpcFkiKTsKKyAgICBtX3l1dkZsaXBYVW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0
VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1X2ZsaXBYIik7CisgICAgbV95dXZTd2FwWFlV
bmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfc3dh
cFhZIik7CiAgICAgbV95VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3Jt
TG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfeVRleHR1cmVTaXplIik7CiAgICAgbV91dlRleHR1cmVT
aXplVW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1
X3V2VGV4dHVyZVNpemUiKTsKICAgICBtX3l1dlBvc2l0aW9uQXR0cmlidXRlTG9jYXRpb24gPSBH
TF9HZXRBdHRyaWJMb2NhdGlvbih5dXZQcm9ncmFtLCAiYV9wb3NpdGlvbiIpOwpAQCAtNTU5LDgg
KzU3Myw5IEBAIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDVkNv
Y29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmIG93bmVyCiAgICAgR0xfQmluZEZyYW1lYnVmZmVy
KEdMX0ZSQU1FQlVGRkVSLCBtX2ZyYW1lYnVmZmVyKTsKIH0KIAotYm9vbCBHcmFwaGljc0NvbnRl
eHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGlt
YWdlLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdMaW50IGxldmVsLCBHTGVudW0g
aW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBGbGlwWSBmbGlwWSkK
K2Jvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5VmlkZW9GcmFtZVRvVGV4dHVyZShN
ZWRpYVBsYXllclZpZGVvRnJhbWUmIHZpZGVvRnJhbWUsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0
VGV4dHVyZSwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xlbnVtIGZvcm1h
dCwgR0xlbnVtIHR5cGUsIEZsaXBZIHVucGFja0ZsaXBZKQogeworICAgIGF1dG8gaW1hZ2UgPSB2
aWRlb0ZyYW1lLnBpeGVsQnVmZmVyKCk7CiAgICAgLy8gRklYTUU6IFRoaXMgY3VycmVudGx5IG9u
bHkgc3VwcG9ydHMgJzQyMHYnIGFuZCAnNDIwZicgcGl4ZWwgZm9ybWF0cy4gSW52ZXN0aWdhdGUg
c3VwcG9ydGluZyBtb3JlIHBpeGVsIGZvcm1hdHMuCiAgICAgT1NUeXBlIHBpeGVsRm9ybWF0ID0g
Q1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShpbWFnZSk7CiAgICAgaWYgKHBpeGVsRm9y
bWF0ICE9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJWaWRlb1JhbmdlIC8v
IE5PTElOVApAQCAtNTc3LDkgKzU5MiwxMCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2Nv
YTo6Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2UsCiAgICAg
aWYgKCFzdXJmYWNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBhdXRvIG9yaWVudGF0
aW9uID0gdmlkZW9GcmFtZS5vcmllbnRhdGlvbigpOwogICAgIGF1dG8gbmV3U3VyZmFjZVNlZWQg
PSBJT1N1cmZhY2VHZXRTZWVkKHN1cmZhY2UpOwotICAgIGlmIChmbGlwWSA9PSBtX2xhc3RGbGlw
WQotICAgICAgICAmJiBzdXJmYWNlID09IG1fbGFzdFN1cmZhY2UKKyAgICBpZiAoSW1hZ2VPcmll
bnRhdGlvbjo6T3JpZW50YXRpb24ob3JpZW50YXRpb24pID09IEltYWdlT3JpZW50YXRpb246Ok9y
aWVudGF0aW9uKG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbikKKyAgICAgICAgJiYgdW5wYWNrRmxp
cFkgPT0gbV9sYXN0VW5wYWNrRmxpcFkKICAgICAgICAgJiYgbmV3U3VyZmFjZVNlZWQgPT0gbV9s
YXN0U3VyZmFjZVNlZWQKICAgICAgICAgJiYgbGFzdFRleHR1cmVTZWVkKG91dHB1dFRleHR1cmUp
ID09IG1fb3duZXIudGV4dHVyZVNlZWQob3V0cHV0VGV4dHVyZSkpIHsKICAgICAgICAgLy8gSWYg
dGhlIHRleHR1cmUgaGFzbid0IGJlZW4gbW9kaWZpZWQgc2luY2UgdGhlIGxhc3QgdGltZSB3ZSBj
b3BpZWQgdG8gaXQsIGFuZCB0aGUKQEAgLTU4OSw4ICs2MDUsNjAgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVm
IGltYWdlLAogICAgIGlmICghbV9jb250ZXh0IHx8ICFHcmFwaGljc0NvbnRleHRHTENvY29hOjpt
YWtlQ3VycmVudChtX2Rpc3BsYXksIG1fY29udGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChpbWFnZSk7Ci0gICAg
c2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoaW1hZ2UpOworICAgIC8vIENv
bXB1dGUgdHJhbnNmb3JtIHRoYXQgdW5kb2VzIHRoZSBgb3JpZW50YXRpb25gLCBlLmcuIG1vdmVz
IHRoZSBvcmlnaW4gdG8gdG9wIGxlZnQuCisgICAgLy8gRXZlbiBudW1iZXIgb2Ygb3BlcmF0aW9u
cyAoZmxpcFgsIGZsaXBZLCBzd2FwWFkpIG1lYW5zIGEgcm90YXRpb24uCisgICAgLy8gT2RkIG51
bWJlciBvZiBvcGVyYXRpb25zIG1lYW5zIGEgcm90YXRpb24gYW5kIGEgZmxpcC4KKyAgICAvLyBg
ZmxpcFhgIHN3aXRjaGVzIGJldHdlZW4gTGVmdCBhbmQgUmlnaHQuIGBmbGlwWWAgc3dpdGNoZXMg
YmV0d2VlbiBUb3AgYW5kIEJvdHRvbS4KKyAgICAvLyBgc3dhcFhZYHN3aXRjaGVzIExlZnRUb3Ag
dG8gVG9wTGVmdC4KKyAgICAvLyBHb2FsIGlzIHRvIGdldCB0byBPcmlnaW5Ub3BMZWZ0LgorICAg
IGJvb2wgZmxpcFkgPSBmYWxzZTsgLy8gRmxpcCB5IGNvb3JkaW5hdGUsIGkuZS4gbWlycm9yZWQg
YWxvbmcgdGhlIHgtYXhpcy4KKyAgICBib29sIGZsaXBYID0gZmFsc2U7IC8vIEZsaXAgeCBjb29y
ZGluYXRlLCBpLmUuIG1pcnJvcmVkIGFsb25nIHRoZSB5LWF4aXMuCisgICAgYm9vbCBzd2FwWFkg
PSBmYWxzZTsKKyAgICBzd2l0Y2ggKHZpZGVvRnJhbWUub3JpZW50YXRpb24oKSkgeworICAgIGNh
c2UgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlOgorICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luVG9wTGVmdDoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0
aW9uOjpPcmlnaW5Ub3BSaWdodDoKKyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0OgorICAgICAg
ICAvLyBSb3RhdGVkIDE4MCBkZWdyZWVzLgorICAgICAgICBmbGlwWSA9IHRydWU7CisgICAgICAg
IGZsaXBYID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9u
OjpPcmlnaW5Cb3R0b21MZWZ0OgorICAgICAgICAvLyBNaXJyb3JlZCBhbG9uZyB0aGUgeC1heGlz
LgorICAgICAgICBmbGlwWSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VP
cmllbnRhdGlvbjo6T3JpZ2luTGVmdFRvcDoKKyAgICAgICAgLy8gTWlycm9yZWQgYWxvbmcgeC1h
eGlzIGFuZCByb3RhdGVkIDI3MCBkZWdyZWVzIGNsb2NrLXdpc2UuCisgICAgICAgIHN3YXBYWSA9
IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2lu
UmlnaHRUb3A6CisgICAgICAgIC8vIFJvdGF0ZWQgOTAgZGVncmVlcyBjbG9jay13aXNlLgorICAg
ICAgICBmbGlwWCA9IHRydWU7CisgICAgICAgIHN3YXBYWSA9IHRydWU7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRCb3R0b206CisgICAgICAg
IC8vIE1pcnJvciBhbG9uZyB4LWF4aXMgYW5kIHJvdGF0ZWQgOTAgZGVncmVlcyBjbG9ja3dpc2Uu
CisgICAgICAgIGZsaXBZID0gdHJ1ZTsKKyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBz
d2FwWFkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEltYWdlT3JpZW50YXRpb246
Ok9yaWdpbkxlZnRCb3R0b206CisgICAgICAgIC8vIFJvdGF0ZWQgMjcwIGRlZ3JlZXMgY2xvY2st
d2lzZS4KKyAgICAgICAgZmxpcFkgPSB0cnVlOworICAgICAgICBzd2FwWFkgPSB0cnVlOworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKHVucGFja0ZsaXBZID09IEZsaXBZOjpZZXMpCisg
ICAgICAgIGZsaXBZID0gIWZsaXBZOworCisgICAgc2l6ZV90IHNvdXJjZVdpZHRoID0gQ1ZQaXhl
bEJ1ZmZlckdldFdpZHRoKGltYWdlKTsKKyAgICBzaXplX3Qgc291cmNlSGVpZ2h0ID0gQ1ZQaXhl
bEJ1ZmZlckdldEhlaWdodChpbWFnZSk7CisKKyAgICBzaXplX3Qgd2lkdGggPSBzd2FwWFkgPyBz
b3VyY2VIZWlnaHQgOiBzb3VyY2VXaWR0aDsKKyAgICBzaXplX3QgaGVpZ2h0ID0gc3dhcFhZID8g
c291cmNlV2lkdGggOiBzb3VyY2VIZWlnaHQ7CiAKICAgICBHTF9WaWV3cG9ydCgwLCAwLCB3aWR0
aCwgaGVpZ2h0KTsKIApAQCAtNjY0LDcgKzczMiw5IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xD
VkNvY29hOjpjb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZSwK
ICAgICAvLyBDb25maWd1cmUgdGhlIGRyYXdpbmcgcGFyYW1ldGVycy4KICAgICBHTF9Vbmlmb3Jt
MWkobV95VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiwgMCk7CiAgICAgR0xfVW5pZm9ybTFpKG1fdXZU
ZXh0dXJlVW5pZm9ybUxvY2F0aW9uLCAxKTsKLSAgICBHTF9Vbmlmb3JtMWkobV95dXZGbGlwWVVu
aWZvcm1Mb2NhdGlvbiwgZmxpcFkgPT0gRmxpcFk6OlllcyA/IDEgOiAwKTsKKyAgICBHTF9Vbmlm
b3JtMWkobV95dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiwgZmxpcFkgPyAxIDogMCk7CisgICAgR0xf
VW5pZm9ybTFpKG1feXV2RmxpcFhVbmlmb3JtTG9jYXRpb24sIGZsaXBYID8gMSA6IDApOworICAg
IEdMX1VuaWZvcm0xaShtX3l1dlN3YXBYWVVuaWZvcm1Mb2NhdGlvbiwgc3dhcFhZID8gMSA6IDAp
OwogICAgIEdMX1VuaWZvcm0yZihtX3lUZXh0dXJlU2l6ZVVuaWZvcm1Mb2NhdGlvbiwgeVBsYW5l
V2lkdGgsIHlQbGFuZUhlaWdodCk7CiAgICAgR0xfVW5pZm9ybTJmKG1fdXZUZXh0dXJlU2l6ZVVu
aWZvcm1Mb2NhdGlvbiwgdXZQbGFuZVdpZHRoLCB1dlBsYW5lSGVpZ2h0KTsKIApAQCAtNjc2LDEw
ICs3NDYsMTEgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZl
clRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLAogICAgIC8vIERvIHRoZSBhY3R1YWwg
ZHJhd2luZy4KICAgICBHTF9EcmF3QXJyYXlzKEdMX1RSSUFOR0xFUywgMCwgNik7CiAKKyAgICBt
X2xhc3RVbnBhY2tGbGlwWSA9IHVucGFja0ZsaXBZOwogICAgIG1fbGFzdFN1cmZhY2UgPSBzdXJm
YWNlOwogICAgIG1fbGFzdFN1cmZhY2VTZWVkID0gbmV3U3VyZmFjZVNlZWQ7CisgICAgbV9sYXN0
U3VyZmFjZU9yaWVudGF0aW9uID0gb3JpZW50YXRpb247CiAgICAgbV9sYXN0VGV4dHVyZVNlZWQu
c2V0KG91dHB1dFRleHR1cmUsIG1fb3duZXIudGV4dHVyZVNlZWQob3V0cHV0VGV4dHVyZSkpOwot
ICAgIG1fbGFzdEZsaXBZID0gZmxpcFk7CiAgICAgYXV0b0NsZWFyVGV4dHVyZU9uRXJyb3IucmVs
ZWFzZSgpOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaApp
bmRleCBjNGUzOTYwYjZkNzA4MGU0YzM5NDBiOGFmN2FkOWRjZTYyNDYyNzBmLi4xZThjYWRkNWVl
OGJjNzUxMWJkYzY5NjM1NGQzMzVhZjk1M2FiOTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuaApAQCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJHTCkgJiYgRU5BQkxFKFZJREVP
KSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xDVi5o
IgotCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNp
bmNsdWRlIDx3dGYvVW5zYWZlUG9pbnRlci5oPgogCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoK
IAogICAgIH5HcmFwaGljc0NvbnRleHRHTENWQ29jb2EoKSBmaW5hbDsKIAotICAgIGJvb2wgY29w
eVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYsIFBsYXRmb3JtR0xPYmplY3Qg
b3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdD
R0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpIGZpbmFsOworICAgIGJvb2wgY29w
eVZpZGVvRnJhbWVUb1RleHR1cmUoTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lJiwgUGxhdGZvcm1HTE9i
amVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1h
dCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBGbGlwWSkgZmluYWw7CiAKIHByaXZh
dGU6CiAgICAgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2Em
KTsKQEAgLTY0LDEyICs2NCwxNSBAQCBwcml2YXRlOgogICAgIEdDR0xpbnQgbV95VGV4dHVyZVVu
aWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBtX3V2VGV4dHVyZVVuaWZvcm1Mb2Nh
dGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBtX3l1dkZsaXBZVW5pZm9ybUxvY2F0aW9uIHsgLTEg
fTsKKyAgICBHQ0dMaW50IG1feXV2RmxpcFhVbmlmb3JtTG9jYXRpb24geyAtMSB9OworICAgIEdD
R0xpbnQgbV95dXZTd2FwWFlVbmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV9j
b2xvck1hdHJpeFVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBtX3l1dlBvc2l0
aW9uQXR0cmlidXRlTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV95VGV4dHVyZVNpemVV
bmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV91dlRleHR1cmVTaXplVW5pZm9y
bUxvY2F0aW9uIHsgLTEgfTsKIAotICAgIEZsaXBZIG1fbGFzdEZsaXBZIHsgRmxpcFk6Ok5vIH07
CisgICAgRmxpcFkgbV9sYXN0VW5wYWNrRmxpcFkgeyBGbGlwWTo6Tm8gfTsKKyAgICBJbWFnZU9y
aWVudGF0aW9uIG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbjsKICAgICBVbnNhZmVQb2ludGVyPElP
U3VyZmFjZVJlZj4gbV9sYXN0U3VyZmFjZTsKICAgICB1aW50MzJfdCBtX2xhc3RTdXJmYWNlU2Vl
ZCB7IDAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCAzNzA2NjczZTlmMDYyMWFhMWE1MzgzY2Yz
YjBlMmY1Y2Y5MDUwMjE5Li42MGM1YThjZDZkNTBlOTAwZTRjMWViZDFmZDhlMmRkYWU4YjZkYjlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmNwcApAQCAtNTA5LDYgKzUwOSw3IEBAIHZvaWQgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pCiAgICAgICAg
IG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRl
RG93bjsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
Y3BwCmluZGV4IDA3MzNmM2MxNzg2ZTFjNTcwYmM5ZTNhNGY0ZDFiOGU3MjdkMTdjNjYuLmZmMTMz
OTdlNjQ0MTkxZTQwMTM3OWY1Yzg4YTA0NjYxZjcxMTcwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMLmNwcApAQCAtMjYwLDE4ICsyNjAsMTggQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWUKICAg
ICBVTlVTRURfVkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgQVNTRVJUX1VOVVNFRCh0
YXJnZXQsIHRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7CiAKLSAgICBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXI7Ci0gICAgYXV0byBnZXRQaXhl
bEJ1ZmZlciA9IFsmXSB7CisgICAgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+
IHZpZGVvRnJhbWU7CisgICAgYXV0byBnZXRWaWRlb0ZyYW1lID0gWyZdIHsKICAgICAgICAgaWYg
KCFtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgaWYgKGF1dG8gbWVkaWFQbGF5ZXIgPSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mt
PnJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkubWVkaWFQbGF5ZXIobWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyKSkKLSAgICAgICAgICAgIHBpeGVsQnVmZmVyID0gbWVkaWFQbGF5ZXItPnBpeGVs
QnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKKyAgICAgICAgICAgIHZpZGVvRnJhbWUgPSBtZWRpYVBs
YXllci0+dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgfTsKIAotICAgIGNhbGxPbk1h
aW5SdW5Mb29wQW5kV2FpdChXVEZNb3ZlKGdldFBpeGVsQnVmZmVyKSk7CisgICAgY2FsbE9uTWFp
blJ1bkxvb3BBbmRXYWl0KFdURk1vdmUoZ2V0VmlkZW9GcmFtZSkpOwogCi0gICAgaWYgKCFwaXhl
bEJ1ZmZlcikgeworICAgIGlmICghdmlkZW9GcmFtZSkgewogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yODIsNyArMjgyLDcgQEAg
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNv
bXBsZXRpb25IYW5kbGVyKGNvbnRleHRDVi0+Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKHBpeGVs
QnVmZmVyLmdldCgpLCB0ZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlw
ZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSkpOworICAgIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnRleHRDVi0+Y29weVZpZGVvRnJhbWVUb1RleHR1cmUoKnZpZGVvRnJhbWUsIHRleHR1
cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRH
TDo6RmxpcFkoZmxpcFkpKSk7CiAjZWxzZQogICAgIFVOVVNFRF9WQVJJQUJMRShtZWRpYVBsYXll
cklkZW50aWZpZXIpOwogICAgIFVOVVNFRF9WQVJJQUJMRSh0ZXh0dXJlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcAppbmRleCA4ODEwOGNiYzUzM2MxMGM3NWUzNzBiZmNjODk4MDBhNTNjNjcyOWFkLi4xZjAw
MWE1NDgwNDFlOGU3ZGY4NmI2OGJiMjczZTQ0ODNiNzFjNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
CkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjppbnZhbGlk
YXRlKCkKICAgICB9CiAgICAgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0ID0geyB9OwogI2lm
IFVTRShBVkZPVU5EQVRJT04pCi0gICAgbV9waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lID0gbnVs
bHB0cjsKKyAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IHN0ZDo6bnVsbG9wdDsKICNl
bmRpZgogfQogCkBAIC04NjgsNiArODY4LDIxIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6Y3VycmVudFRpbWVDaGFuZ2VkKGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW1lKQogICAgIG1f
d2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6Q3VycmVudFRpbWVDaGFuZ2VkKG1lZGlhVGltZSwgTW9ub3RvbmljVGltZTo6bm93KCks
ICFtZWRpYVBsYXllclBhdXNlZE9yU3RhbGxlZCgpKSwgbV9pZCk7CiB9CiAKK3ZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVv
RnJhbWU+JiYsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiByZXN1bHQ7CisgICAgYm9vbCBjaGFu
Z2VkID0gZmFsc2U7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVv
RnJhbWU+IHZpZGVvRnJhbWU7CisgICAgaWYgKG1fcGxheWVyKQorICAgICAgICB2aWRlb0ZyYW1l
ID0gbV9wbGF5ZXItPnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOworICAgIGlmICghKG1fdmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lID09IHZpZGVvRnJhbWUpKSB7CisgICAgICAgIG1fdmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lID0gdmlkZW9GcmFtZTsKKyAgICAgICAgY2hhbmdlZCA9IHRydWU7
CisgICAgICAgIHJlc3VsdCA9IFdURk1vdmUodmlkZW9GcmFtZSk7CisgICAgfQorICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSwgY2hhbmdlZCk7Cit9CisKIHZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6dXBkYXRlQ2FjaGVkU3RhdGUoYm9vbCBmb3JjZUN1cnJlbnRUaW1l
VXBkYXRlKQogewogICAgIGlmICghbV9vYnNlcnZpbmdUaW1lQ2hhbmdlcyB8fCBmb3JjZUN1cnJl
bnRUaW1lVXBkYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggMzJmM2E0NmFhMGYwOWIxM2IwMjRlNDE2
NDA3OGE1ZGFkZGVkYzU0ZS4uZTEzOTQ2ZjdhN2MzMzFlNzAzZDM0NmE1OTMwZDEwNGEzMDI3ZGYw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0zMjAsOSArMzIwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPFdURjo6TWFjaFNlbmRSaWdodD4mJiwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNw
YWNlKT4mJik7CiAgICAgdm9pZCBjb2xvclNwYWNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlKT4mJik7CiAjZW5kaWYKLSNpZiBVU0UoQVZGT1VO
REFUSU9OKQotICAgIHZvaWQgcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+PiYmKT4mJik7Ci0jZW5kaWYKKyAgICB2b2lkIHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlm
Q2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVk
aWFQbGF5ZXJWaWRlb0ZyYW1lPiYmLCBib29sKT4mJik7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgZmluYWwgeyByZXR1
cm4gbV9sb2dnZXI7IH0KQEAgLTM3OCw5ICszNzYsNyBAQCBwcml2YXRlOgogICAgIFNjb3BlZFJl
bmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0OwogCiAg
ICAgYm9vbCBtX29ic2VydmluZ1RpbWVDaGFuZ2VzIHsgZmFsc2UgfTsKLSNpZiBVU0UoQVZGT1VO
REFUSU9OKQotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyRm9y
Q3VycmVudFRpbWU7Ci0jZW5kaWYKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxh
eWVyVmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiAjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dlcjsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCAzOWM4NzI5YjI3MzllMTM2NDRiMzFhYTgw
ZGJhODBkNGEzMzBjOGFlLi5lNTM5YjQ5MmY2ZmMwNTU1NzQ0ZTkwNTg0NjQzN2Q0ODhkNTM4NDMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTI2LDkgKzEyNiw3IEBA
IG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAg
TmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIC0+IChzdGQ6Om9wdGlvbmFsPE1hY2hTZW5kUmln
aHQ+IHNlbmRSaWdodCwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2Up
IFN5bmNocm9ub3VzCiAgICAgQ29sb3JTcGFjZSgpIC0+IChXZWJDb3JlOjpEZXN0aW5hdGlvbkNv
bG9yU3BhY2UgY29sb3JTcGFjZSkgU3luY2hyb25vdXMKICNlbmRpZgotI2lmIFVTRShBVkZPVU5E
QVRJT04pCi0gICAgUGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpIC0+IChzdGQ6
Om9wdGlvbmFsPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPj4gcGl4ZWxCdWZmZXIpIFN5bmNo
cm9ub3VzCi0jZW5kaWYKKyAgICBWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSAt
PiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJh
bWUsIGJvb2wgY2hhbmdlZCkgU3luY2hyb25vdXMKIAogICAgIFBsYXlBdEhvc3RUaW1lKE1vbm90
b25pY1RpbWUgdGltZSkKICAgICBQYXVzZUF0SG9zdFRpbWUoTW9ub3RvbmljVGltZSB0aW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9j
b2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KaW5kZXggYzZiYmEzYWEyYjRlNTVm
YWVmYjkzM2JiZTJlNjM1OWQ3M2Y2MzE5OC4uZmJlMTBiYzMwNWQyZDJlMTVhMjRhN2NlZTQ1MDdl
YTE3NjczNzQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2Nv
Y29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCkBAIC0x
MjcsMjEgKzEyNyw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Y29sb3JTcGFjZShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRlc3RpbmF0CiAgICAgY29tcGxldGlvbkhh
bmRsZXIobV9wbGF5ZXItPmNvbG9yU3BhY2UoKSk7CiB9CiAKLSNpZiBVU0UoQVZGT1VOREFUSU9O
KQotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1l
SWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIHN0ZDo6
b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+PiByZXN1bHQ7Ci0gICAgUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyOwotICAgIGlmIChtX3BsYXllcikKLSAg
ICAgICAgcGl4ZWxCdWZmZXIgPSBtX3BsYXllci0+cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgp
OwotICAgIGlmIChtX3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUgIT0gcGl4ZWxCdWZmZXIpIHsK
LSAgICAgICAgcmVzdWx0ID0gcGl4ZWxCdWZmZXI7Ci0gICAgICAgIG1fcGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSA9IFdURk1vdmUocGl4ZWxCdWZmZXIpOwotICAgIH0KLSAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCA5YTY0Mjk0Mzc4NDJmNDNkYjZkYTFj
MjUwMTFlZDRhNTQ0Y2JmMzYxLi5iNTM5MmUwNGQ5ZmY5NmRiZjExMDgxNGE4MGEwNGE2YjZlZjI4
ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0xMDAwLDEzICsxMDAwLDE4
IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0
Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9Ci0jZWxpZiAhUExBVEZPUk0oQ09DT0EpCi1SZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwaXhlbEJ1ZmZlckZvckN1cnJl
bnRUaW1lKCkKKyNlbmRpZgorCitzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlk
ZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiByZXN1bHQ7CisgICAg
Ym9vbCBjaGFuZ2VkID0gZmFsc2U7CisgICAgaWYgKCFjb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlm
Q2hhbmdlZCgpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VmlkZW9GcmFtZUZv
ckN1cnJlbnRUaW1lSWZDaGFuZ2VkOjpSZXBseShyZXN1bHQsIGNoYW5nZWQpLCBtX2lkKSkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoY2hhbmdlZCkKKyAgICAgICAgbV92
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBXVEZNb3ZlKHJlc3VsdCk7CisgICAgcmV0dXJuIG1f
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwogfQotI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oQ09D
T0EpCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bmF0aXZl
SW1hZ2VGb3JDdXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCBlYjMy
NjI0MDRjNmY5MWQ4ZDI2N2EzODUxNjQ1MjI3YTA5MDM3OWU4Li5lYTJhMDY2YjAwNjM5M2FkNmRl
MjM1YTVhMDkyNmY5M2NlNjc2MTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTI5
Miw5ICsyOTIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRl
eHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
ZmluYWw7CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJl
VG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdM
T2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwg
Ym9vbCwgYm9vbCkgZmluYWw7Ci0jZWxzZQotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAjZW5kaWYKKyAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJl
bnRUaW1lKCkgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBuYXRpdmVJ
bWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UoKSBmaW5hbDsKIApAQCAtNDYxLDkgKzQ2MCw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JLZXkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90aW1lSXNQ
cm9ncmVzc2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0
ZWQgeyBmYWxzZSB9OwotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZTsKLSNlbmRpZgorICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlckdhdGhlcmVkV2l0aFZpZGVvRnJhbWVNZXRhZGF0YTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4gbV9w
aXhlbEJ1ZmZlckNvbmZvcm1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUNvY29hLm1tCmluZGV4IGMwYjc3NmRjNzczYjE3ZmE0MzBjZDU4OTY4YjAwN2IzMWJkNzZh
OGQuLjQxZGJjN2E1M2I3MTc3NjJlNDVhMjA5ZTBmODQ3MGUxMTVmMTEwMWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQpAQCAtOTQsMTggKzk0LDYg
QEAgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6Y29sb3JTcGFjZSgpCiAgICAgcmV0dXJuIGNvbG9yU3BhY2U7CiB9CiAKLSNpZiBVU0UoQVZG
T1VOREFUSU9OKQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCi17Ci0gICAgc3RkOjpvcHRpb25h
bDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHJlc3VsdDsKLSAgICBpZiAoIWNvbm5lY3Rp
b24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UGl4ZWxCdWZm
ZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6UGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZDo6UmVwbHkocmVzdWx0KSwg
bV9pZCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGlmIChyZXN1bHQpCi0gICAgICAg
IG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSA9IFdURk1vdmUoKnJlc3VsdCk7Ci0gICAgcmV0
dXJuIG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZTsKLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0o
Q09DT0EpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggY2U1YzMwZDBkNGVlMmEzNTVlMDY4OTA2OTdkOTAyNDdhMGFkY2I0NC4u
ZDU5MjI1NTkyNzdlMjFhYzJlNDIxMDcxYWY1NjIyYjViMjNlOWI1ZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIyLTAxLTE3ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IFdlYkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0
aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlhIGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg3NjAxNzYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLmh0bWw6
CisgICAgICAgICogd2VicnRjL3JvdXRpbmVzLmpzOgorICAgICAgICBUZXN0IGNhbWVyYSBpbWFn
ZSByb3RhdGlvbnMgaW4gdGhlIHRlc3QuCisKIDIwMjItMDEtMTcgIENoYW5nU2VvayBPaCAgPGNo
YW5nc2Vva0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtHVEtdIEltcGxlbWVudCBmb3JtIHZhbGlk
YXRpb24gd2l0aCBndGszIHdpZGdldHMgaW4gdGhlIFVJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0xLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNh
bnZhcy0xLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTRjNjA1Yjc1ZjhjNzUyNmQ4ZGQzNTcy
YTIxNmZkNjczY2YzM2ViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTQgQEAKKworUEFTUyBmdW5jOiB3aXRoMkRDb250ZXh0LCBhbmdsZTogMCwgaW1hZ2VCaXRtYXA6
IGZhbHNlCitQQVNTIGZ1bmM6IHdpdGgyRENvbnRleHQsIGFuZ2xlOiAwLCBpbWFnZUJpdG1hcDog
dHJ1ZQorUEFTUyBmdW5jOiB3aXRoMkRDb250ZXh0LCBhbmdsZTogOTAsIGltYWdlQml0bWFwOiBm
YWxzZQorUEFTUyBmdW5jOiB3aXRoMkRDb250ZXh0LCBhbmdsZTogOTAsIGltYWdlQml0bWFwOiB0
cnVlCitQQVNTIGZ1bmM6IHdpdGgyRENvbnRleHQsIGFuZ2xlOiAxODAsIGltYWdlQml0bWFwOiBm
YWxzZQorUEFTUyBmdW5jOiB3aXRoMkRDb250ZXh0LCBhbmdsZTogMTgwLCBpbWFnZUJpdG1hcDog
dHJ1ZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiAwLCBpbWFnZUJpdG1hcDogZmFsc2Us
IHN1YkltYWdlOiBmYWxzZSwgdW5wYWNrRmxpcFk6IGZhbHNlCitQQVNTIGZ1bmM6IHdpdGhXZWJH
TCwgYW5nbGU6IDAsIGltYWdlQml0bWFwOiBmYWxzZSwgc3ViSW1hZ2U6IGZhbHNlLCB1bnBhY2tG
bGlwWTogdHJ1ZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiAwLCBpbWFnZUJpdG1hcDog
ZmFsc2UsIHN1YkltYWdlOiB0cnVlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVuYzogd2l0
aFdlYkdMLCBhbmdsZTogMCwgaW1hZ2VCaXRtYXA6IGZhbHNlLCBzdWJJbWFnZTogdHJ1ZSwgdW5w
YWNrRmxpcFk6IHRydWUKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogMCwgaW1hZ2VCaXRt
YXA6IHRydWUsIHN1YkltYWdlOiBmYWxzZSwgdW5wYWNrRmxpcFk6IGZhbHNlCitQQVNTIGZ1bmM6
IHdpdGhXZWJHTCwgYW5nbGU6IDAsIGltYWdlQml0bWFwOiB0cnVlLCBzdWJJbWFnZTogdHJ1ZSwg
dW5wYWNrRmxpcFk6IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0xLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NzQz
NDE5YjAxZDRjNzE3ZGEyMGRiODg5YTdlMWI3N2FmYzJjZGQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMS5odG1s
CkBAIC0wLDAgKzEsMjMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+CisgICAgPHRpdGxlPlRlc3RpbmcgZ2V0VXNlck1lZGlhIHN0cmVhbSB0byBjYW52YXMg
Y29udGV4dHMgMTwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3dl
YnJ0Yy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2NhbnZhcy93
ZWJnbC9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLmpzIj48L3NjcmlwdD4KKyAg
ICA8c3R5bGUgdHlwZT10ZXh0L2Nzcz4KKyAgICAgICAgY2FudmFzIHsgd2lkdGg6IDYwcHggfQor
ICAgICAgICB2aWRlbyB7IHdpZHRoOiA2MHB4IH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPGRpdiBpZD0iZGVidWdlIj48L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgICAgICBj
cmVhdGVVc2VyTWVkaWFUb0NhbnZhc1Rlc3RzKDAsIDIpOworICAgIDwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRV
c2VyTWVkaWEtdG8tY2FudmFzLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgyYTdkMDE5MmMxZjM1OWE4Zjk4YzQwZDU2ZTA2NmQwYzM2ZGFlZTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMt
Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorCitQQVNTIGZ1bmM6IHdpdGhXZWJHTCwg
YW5nbGU6IDkwLCBpbWFnZUJpdG1hcDogZmFsc2UsIHN1YkltYWdlOiBmYWxzZSwgdW5wYWNrRmxp
cFk6IGZhbHNlCitQQVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDkwLCBpbWFnZUJpdG1hcDog
ZmFsc2UsIHN1YkltYWdlOiBmYWxzZSwgdW5wYWNrRmxpcFk6IHRydWUKK1BBU1MgZnVuYzogd2l0
aFdlYkdMLCBhbmdsZTogOTAsIGltYWdlQml0bWFwOiBmYWxzZSwgc3ViSW1hZ2U6IHRydWUsIHVu
cGFja0ZsaXBZOiBmYWxzZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiA5MCwgaW1hZ2VC
aXRtYXA6IGZhbHNlLCBzdWJJbWFnZTogdHJ1ZSwgdW5wYWNrRmxpcFk6IHRydWUKK1BBU1MgZnVu
Yzogd2l0aFdlYkdMLCBhbmdsZTogOTAsIGltYWdlQml0bWFwOiB0cnVlLCBzdWJJbWFnZTogZmFs
c2UsIHVucGFja0ZsaXBZOiBmYWxzZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiA5MCwg
aW1hZ2VCaXRtYXA6IHRydWUsIHN1YkltYWdlOiB0cnVlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BB
U1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogMTgwLCBpbWFnZUJpdG1hcDogZmFsc2UsIHN1Yklt
YWdlOiBmYWxzZSwgdW5wYWNrRmxpcFk6IGZhbHNlCitQQVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5n
bGU6IDE4MCwgaW1hZ2VCaXRtYXA6IGZhbHNlLCBzdWJJbWFnZTogZmFsc2UsIHVucGFja0ZsaXBZ
OiB0cnVlCitQQVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDE4MCwgaW1hZ2VCaXRtYXA6IGZh
bHNlLCBzdWJJbWFnZTogdHJ1ZSwgdW5wYWNrRmxpcFk6IGZhbHNlCitQQVNTIGZ1bmM6IHdpdGhX
ZWJHTCwgYW5nbGU6IDE4MCwgaW1hZ2VCaXRtYXA6IGZhbHNlLCBzdWJJbWFnZTogdHJ1ZSwgdW5w
YWNrRmxpcFk6IHRydWUKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogMTgwLCBpbWFnZUJp
dG1hcDogdHJ1ZSwgc3ViSW1hZ2U6IGZhbHNlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVu
Yzogd2l0aFdlYkdMLCBhbmdsZTogMTgwLCBpbWFnZUJpdG1hcDogdHJ1ZSwgc3ViSW1hZ2U6IHRy
dWUsIHVucGFja0ZsaXBZOiBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTIuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
NzBkNDg3YTdmNTYyYjZmYzkyZWUxMGE3NjAyMmJjNjZjYzg2NGM3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTIu
aHRtbApAQCAtMCwwICsxLDIzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+CisgICAgPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorICAgIDx0aXRsZT5UZXN0aW5nIGdldFVzZXJNZWRpYSBzdHJlYW0gdG8gY2Fu
dmFzIGNvbnRleHRzIDI8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li93ZWJydGMvcm91dGluZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9jYW52
YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHN0eWxlIHR5cGU9dGV4dC9jc3M+CisgICAgICAgIGNhbnZhcyB7IHdpZHRoOiA2MHB4
IH0KKyAgICAgICAgdmlkZW8geyB3aWR0aDogNjBweCB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorICAgIDxkaXYgaWQ9ImRlYnVnZSI+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAg
ICAgY3JlYXRlVXNlck1lZGlhVG9DYW52YXNUZXN0cygxLCAyKTsKKyAgICA8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
Z2V0VXNlck1lZGlhLXRvLWNhbnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4NjU5NDAyNmZlNzliMzAwMzllZDczZWNlMjllZDZmY2UyODcw
MWU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLQotUEFTUyBUZXN0aW5nIGdldFVzZXJN
ZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRleHRzIHZpYSAyRENvbnRleHQKLVBBU1MgVGVzdGlu
ZyBnZXRVc2VyTWVkaWEgc3RyZWFtIHRvIGNhbnZhcyBjb250ZXh0cyB2aWEgSW1hZ2VCaXRtYXAg
dG8gMkRDb250ZXh0Ci1QQVNTIFRlc3RpbmcgZ2V0VXNlck1lZGlhIHN0cmVhbSB0byBjYW52YXMg
Y29udGV4dHMgdmlhIFdlYkdMIHRleHR1cmUKLVBBU1MgVGVzdGluZyBnZXRVc2VyTWVkaWEgc3Ry
ZWFtIHRvIGNhbnZhcyBjb250ZXh0cyB2aWEgSW1hZ2VCaXRtYXAgdG8gV2ViR0wgdGV4dHVyZQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10
by1jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlh
LXRvLWNhbnZhcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjgzZjQ4Zjdj
ZjMxNGQzMTQ5YTMyZTNmODkwMzlmNzQ3ODRmZGFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNl
ck1lZGlhLXRvLWNhbnZhcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMzICswLDAgQEAKLTwh
ZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLSAgICAgICAgPHRpdGxlPlRlc3RpbmcgZ2V0VXNlck1lZGlhIHN0cmVhbSB0byBj
YW52YXMgY29udGV4dHM8L3RpdGxlPgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi93ZWJydGMvcm91dGluZXMuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2Ny
aXB0IHNyYz0iLi4vY2FudmFzL3dlYmdsL3Jlc291cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48
L3NjcmlwdD4KLQotICAgICAgICA8c3R5bGUgdHlwZT10ZXh0L2Nzcz4KLSAgICAgICAgICAgIGNh
bnZhcyB7IHdpZHRoOiA2MDBweCB9Ci0gICAgICAgIDwvc3R5bGU+Ci0gICAgPC9oZWFkPgotICAg
IDxib2R5PgotICAgICAgICA8ZGl2IGlkPSJkZWJ1Z2UiPjwvZGl2PgotICAgICAgICA8c2NyaXB0
PgotInVzZSBzdHJpY3QiOwotY29uc3Qgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci1jb25zdCB3aWR0
aCA9IDY0MzsKLWNvbnN0IHZlcmlmeVdpZHRoID0gMjAwOwotY29uc3QgZGVidWdlID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImRlYnVnZSIpOwotCi1hc3luYyBmdW5jdGlvbiBjcmVhdGVTb3Vy
Y2VWaWRlbygpIHsKLSAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRl
byIpOwotICAgIHZpZGVvLnNyY09iamVjdCA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHsgdmlkZW86IHsgd2lkdGg6IHsgZXhhY3Q6IHdpZHRoIH0gfSB9KTsKLSAg
ICBhd2FpdCB2aWRlby5wbGF5KCk7Ci0gICAgYXNzZXJ0X2VxdWFscyh2aWRlby52aWRlb1dpZHRo
LCB3aWR0aCk7Ci0gICAgcmV0dXJuIHZpZGVvOwotfQotCi1mdW5jdGlvbiBjcmVhdGVWZXJpZnlD
YW52YXModmlkZW8pIHsKLSAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
Y2FudmFzIik7Ci0gICAgY2FudmFzLndpZHRoID0gdmVyaWZ5V2lkdGg7Ci0gICAgY2FudmFzLmhl
aWdodCA9IE1hdGguZmxvb3IodmlkZW8udmlkZW9IZWlnaHQgLyB2aWRlby52aWRlb1dpZHRoICog
dmVyaWZ5V2lkdGgpOwotICAgIHJldHVybiBjYW52YXM7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZVZl
cmlmeVdlYkdMQ29udGV4dChjYW52YXMpIHsKLSAgICBsZXQgZ2wgPSB3dHUuY3JlYXRlM0RDb250
ZXh0KGNhbnZhcywgeyBkZXB0aDogZmFsc2UsIHN0ZW5jaWw6IGZhbHNlLCBhbnRpYWxpYXM6IGZh
bHNlIH0pOwotICAgIGdsLnZpZXdwb3J0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdo
dCk7Ci0gICAgbGV0IHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotICAgIGds
LnVuaWZvcm0xaShnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpLCAwKTsKLSAg
ICByZXR1cm4gZ2w7Ci19Ci0KLWZ1bmN0aW9uIGdldEZyYW1lYnVmZmVyQXNJbWFnZURhdGEoZ2wp
wqB7Ci0gICAgbGV0IGNhbnZhcyA9IGdsLmNhbnZhczsKLSAgICBsZXQgaW1hZ2VEYXRhID0gewot
ICAgICAgICB3aWR0aDogY2FudmFzLndpZHRoLAotICAgICAgICBoZWlnaHQ6IGNhbnZhcy5oZWln
aHQsCi0gICAgICAgIGRhdGE6IG5ldyBVaW50OEFycmF5KGNhbnZhcy53aWR0aCAqIGNhbnZhcy5o
ZWlnaHQgKiA0KQotICAgIH0KLSAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIGNhbnZhcy53aWR0aCwg
Y2FudmFzLmhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1hZ2VEYXRhLmRhdGEp
OwotICAgIHJldHVybiBpbWFnZURhdGE7Ci19Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
LSAgICBsZXQgdmlkZW8gPSBhd2FpdCBjcmVhdGVTb3VyY2VWaWRlbygpOwotICAgIGRlYnVnZS5h
cHBlbmQodmlkZW8pOwotICAgIGxldCBjYW52YXMgPSBjcmVhdGVWZXJpZnlDYW52YXModmlkZW8p
OwotICAgIGRlYnVnZS5hcHBlbmRDaGlsZChjYW52YXMpOwotCi0gICAgbGV0IGN0eCA9IGNhbnZh
cy5nZXRDb250ZXh0KCIyZCIpOwotICAgIGN0eC5kcmF3SW1hZ2UodmlkZW8sIDAsIDAsIGNhbnZh
cy53aWR0aCwgY2FudmFzLmhlaWdodCk7Ci0gICAgYXNzZXJ0SW1hZ2VEYXRhQ29udGFpbnNNb2Nr
Q2FtZXJhSW1hZ2UoY3R4LmdldEltYWdlRGF0YSgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5o
ZWlnaHQpKTsKLSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQoY2FudmFzKTsKLSAgICBkZWJ1Z2UucmVt
b3ZlQ2hpbGQodmlkZW8pOwotCi19LCBkb2N1bWVudC50aXRsZSArICIgdmlhIDJEQ29udGV4dCIp
OwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgbGV0IHZpZGVvID0gYXdhaXQgY3Jl
YXRlU291cmNlVmlkZW8oKTsKLSAgICBkZWJ1Z2UuYXBwZW5kKHZpZGVvKTsKLSAgICBsZXQgY2Fu
dmFzID0gY3JlYXRlVmVyaWZ5Q2FudmFzKHZpZGVvKTsKLSAgICBkZWJ1Z2UuYXBwZW5kQ2hpbGQo
Y2FudmFzKTsKLQotICAgIGxldCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKLSAgICBs
ZXQgaW1hZ2VCaXRtYXAgPSBhd2FpdCBjcmVhdGVJbWFnZUJpdG1hcCh2aWRlbyk7Ci0gICAgY3R4
LmRyYXdJbWFnZShpbWFnZUJpdG1hcCwgMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0
KTsKLSAgICBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShjdHguZ2V0SW1h
Z2VEYXRhKDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCkpOwotICAgIGRlYnVnZS5y
ZW1vdmVDaGlsZChjYW52YXMpOwotICAgIGRlYnVnZS5yZW1vdmVDaGlsZCh2aWRlbyk7Ci19LCBk
b2N1bWVudC50aXRsZSArICIgdmlhIEltYWdlQml0bWFwIHRvIDJEQ29udGV4dCIpOwotCi1wcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgbGV0IHZpZGVvID0gYXdhaXQgY3JlYXRlU291cmNl
VmlkZW8oKTsKLSAgICBkZWJ1Z2UuYXBwZW5kKHZpZGVvKTsKLSAgICBsZXQgY2FudmFzID0gY3Jl
YXRlVmVyaWZ5Q2FudmFzKHZpZGVvKTsKLSAgICBkZWJ1Z2UuYXBwZW5kQ2hpbGQoY2FudmFzKTsK
LQotICAgIGxldCBnbCA9IGNyZWF0ZVZlcmlmeVdlYkdMQ29udGV4dChjYW52YXMpOwotICAgIGxl
dCB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRF
WFRVUkVfMkQsIHRleHR1cmUpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xB
TVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhU
VVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCB2aWRlbyk7Ci0g
ICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7Ci0KLSAgICBs
ZXQgaW1hZ2VEYXRhID0gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCk7Ci0gICAgYXNzZXJ0
SW1hZ2VEYXRhQ29udGFpbnNNb2NrQ2FtZXJhSW1hZ2UoaW1hZ2VEYXRhKTsKLSAgICBkZWJ1Z2Uu
cmVtb3ZlQ2hpbGQoY2FudmFzKTsKLSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQodmlkZW8pOwotfSwg
ZG9jdW1lbnQudGl0bGUgKyAiIHZpYSBXZWJHTCB0ZXh0dXJlIik7Ci0KLXByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKLSAgICBsZXQgdmlkZW8gPSBhd2FpdCBjcmVhdGVTb3VyY2VWaWRlbygpOwot
ICAgIGRlYnVnZS5hcHBlbmQodmlkZW8pOwotICAgIGxldCBjYW52YXMgPSBjcmVhdGVWZXJpZnlD
YW52YXModmlkZW8pOwotICAgIGRlYnVnZS5hcHBlbmRDaGlsZChjYW52YXMpOwotCi0gICAgbGV0
IGdsID0gY3JlYXRlVmVyaWZ5V2ViR0xDb250ZXh0KGNhbnZhcyk7Ci0gICAgbGV0IHRleHR1cmUg
PSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgbGV0IGltYWdlQml0bWFwID0gYXdhaXQgY3JlYXRl
SW1hZ2VCaXRtYXAodmlkZW8pOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRl
eHR1cmUpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9N
SU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAgZ2wudGV4UGFyYW1l
dGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7
Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwg
Z2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBn
bC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWFnZUJpdG1hcCk7Ci0gICAgd3R1
LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7Ci0KLSAgICBsZXQgaW1h
Z2VEYXRhID0gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCk7Ci0gICAgYXNzZXJ0SW1hZ2VE
YXRhQ29udGFpbnNNb2NrQ2FtZXJhSW1hZ2UoaW1hZ2VEYXRhKTsKLSAgICBkZWJ1Z2UucmVtb3Zl
Q2hpbGQoY2FudmFzKTsKLSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQodmlkZW8pOwotfSwgZG9jdW1l
bnQudGl0bGUgKyAiIHZpYSBJbWFnZUJpdG1hcCB0byBXZWJHTCB0ZXh0dXJlIik7Ci0KLSAgICAg
ICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMvZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL2dldFVzZXJNZWRpYS10by1j
YW52YXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE0Zjg4NjUwMjRmZmZiMGE5N2QwY2JjNTZmZGZjMmNlYTMy
Yjg1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVz
b3VyY2VzL2dldFVzZXJNZWRpYS10by1jYW52YXMuanMKQEAgLTAsMCArMSwxNzMgQEAKKyJ1c2Ug
c3RyaWN0IjsKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
dGluZ3Muc2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGZhbHNlKTsKKworY29uc3Qgd3R1
ID0gV2ViR0xUZXN0VXRpbHM7Citjb25zdCB3aWR0aCA9IDY0MzsKK2NvbnN0IHZlcmlmeVdpZHRo
ID0gMjAwOworCithc3luYyBmdW5jdGlvbiBjcmVhdGVTb3VyY2VWaWRlbygpIHsKKyAgICBjb25z
dCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIik7CisgICAgdmlkZW8uc3Jj
T2JqZWN0ID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyB2aWRl
bzogeyB3aWR0aDogeyBleGFjdDogd2lkdGggfSB9IH0pOworICAgIGF3YWl0IHZpZGVvLnBsYXko
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHZpZGVvLnZpZGVvV2lkdGgsIHdpZHRoKTsKKyAgICByZXR1
cm4gdmlkZW87Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbykgeworICAg
IGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOworICAgIGNh
bnZhcy53aWR0aCA9IHZlcmlmeVdpZHRoOworICAgIGNhbnZhcy5oZWlnaHQgPSBNYXRoLmZsb29y
KHZpZGVvLnZpZGVvSGVpZ2h0IC8gdmlkZW8udmlkZW9XaWR0aCAqIHZlcmlmeVdpZHRoKTsKKyAg
ICByZXR1cm4gY2FudmFzOworfQorCitmdW5jdGlvbiBjcmVhdGVWZXJpZnlXZWJHTFN0YXRlKGNh
bnZhcykgeworICAgIGNvbnN0IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIHsgZGVw
dGg6IGZhbHNlLCBzdGVuY2lsOiBmYWxzZSwgYW50aWFsaWFzOiBmYWxzZSB9KTsKKyAgICBnbC52
aWV3cG9ydCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworICAgIGNvbnN0IHBy
b2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOworICAgIGdsLnVuaWZvcm0xaShnbC5n
ZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpLCAwKTsKKyAgICBjb25zdCB0ZXh0dXJl
ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQs
IHRleHR1cmUpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVS
RV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRV
UkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgZ2wudGV4UGFy
YW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURH
RSk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBf
VCwgZ2wuQ0xBTVBfVE9fRURHRSk7CisgICAgcmV0dXJuIFtnbCwgdGV4dHVyZV07Cit9CisKK2Z1
bmN0aW9uIGdldEZyYW1lYnVmZmVyQXNJbWFnZURhdGEoZ2wpIHsKKyAgICBjb25zdCBjYW52YXMg
PSBnbC5jYW52YXM7CisgICAgY29uc3QgaW1hZ2VEYXRhID0geworICAgICAgICB3aWR0aDogY2Fu
dmFzLndpZHRoLAorICAgICAgICBoZWlnaHQ6IGNhbnZhcy5oZWlnaHQsCisgICAgICAgIGRhdGE6
IG5ldyBVaW50OEFycmF5KGNhbnZhcy53aWR0aCAqIGNhbnZhcy5oZWlnaHQgKiA0KQorICAgIH0K
KyAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1hZ2VEYXRhLmRhdGEpOworICAgIHJldHVybiBpbWFn
ZURhdGE7Cit9CisKK2Z1bmN0aW9uIHNldHVwSW52ZXJzZVVuaXRRdWFkVGV4dHVyZUNvb3JkaW5h
dGVzKGdsLCB0ZXhjb29yZExvY2F0aW9uKSB7CisgICAgdGV4Y29vcmRMb2NhdGlvbiA9IHRleGNv
b3JkTG9jYXRpb24gfHwgMTsKKyAgICBjb25zdCB2ZXJ0ZXhPYmplY3QgPSBnbC5jcmVhdGVCdWZm
ZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVydGV4T2JqZWN0KTsK
KyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0MzJBcnJheShbCisg
ICAgICAgIDEuMCwgMC4wLAorICAgICAgICAwLjAsIDAuMCwKKyAgICAgICAgMC4wLCAxLjAsCisg
ICAgICAgIDEuMCwgMC4wLAorICAgICAgICAwLjAsIDEuMCwKKyAgICAgICAgMS4wLCAxLjBdKSwg
Z2wuU1RBVElDX0RSQVcpOworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHRleGNvb3Jk
TG9jYXRpb24pOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIodGV4Y29vcmRMb2NhdGlvbiwg
MiwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKK30KKworYXN5bmMgZnVuY3Rpb24gd2l0aDJEQ29u
dGV4dChzdWJjYXNlLCB2aWRlbywgY2FudmFzKSB7CisgICAgY29uc3QgY3R4ID0gY2FudmFzLmdl
dENvbnRleHQoIjJkIik7CisgICAgbGV0IHNvdXJjZSA9IHZpZGVvOworICAgIGlmIChzdWJjYXNl
LmltYWdlQml0bWFwKQorICAgICAgICBzb3VyY2UgPSBhd2FpdCBjcmVhdGVJbWFnZUJpdG1hcChz
b3VyY2UpOworICAgIGN0eC5kcmF3SW1hZ2UodmlkZW8sIDAsIDAsIGNhbnZhcy53aWR0aCwgY2Fu
dmFzLmhlaWdodCk7CisgICAgcmV0dXJuIGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgY2FudmFzLndp
ZHRoLCBjYW52YXMuaGVpZ2h0KTsKK30KKworYXN5bmMgZnVuY3Rpb24gd2l0aFdlYkdMKHN1YmNh
c2UsIHZpZGVvLCBjYW52YXMpIHsKKyAgICBjb25zdCBbZ2wsIHRleHR1cmVdID0gY3JlYXRlVmVy
aWZ5V2ViR0xTdGF0ZShjYW52YXMpOworICAgIGxldCBzb3VyY2UgPSB2aWRlbzsKKyAgICBpZiAo
c3ViY2FzZS5pbWFnZUJpdG1hcCkKKyAgICAgICAgc291cmNlID0gYXdhaXQgY3JlYXRlSW1hZ2VC
aXRtYXAoc291cmNlKTsKKyAgICBpZiAoc3ViY2FzZS51bnBhY2tGbGlwWSkKKyAgICAgICAgZ2wu
cGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgdHJ1ZSk7CisgICAgaWYgKHN1YmNh
c2Uuc3ViSW1hZ2UpIHsKKyAgICAgICAgY29uc3QgdyA9IHZpZGVvLnZpZGVvV2lkdGg7CisgICAg
ICAgIGNvbnN0IGggPSB2aWRlby52aWRlb0hlaWdodDsKKyAgICAgICAgY29uc3QgcGl4ZWxzID0g
bmV3IFVpbnQ4QXJyYXkodyAqIGggKiA0KTsKKyAgICAgICAgcGl4ZWxzLmZpbGwoMCk7CisgICAg
ICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgdywgaCwgMCwgZ2wu
UkdCQSwgZ2wuVU5TSUdORURfQllURSwgcGl4ZWxzKTsKKyAgICAgICAgZ2wudGV4U3ViSW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBzb3Vy
Y2UpOworICAgIH0gZWxzZQorICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAs
IGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNvdXJjZSk7CisKKyAgICBpZiAo
c3ViY2FzZS51bnBhY2tGbGlwWSkgeworICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tf
RkxJUF9ZX1dFQkdMLCBmYWxzZSk7CisgICAgICAgIHNldHVwSW52ZXJzZVVuaXRRdWFkVGV4dHVy
ZUNvb3JkaW5hdGVzKGdsKTsKKyAgICAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBb
MCwgMCwgMCwgMjU1XSk7CisgICAgfSBlbHNlCisgICAgICAgIHd0dS5jbGVhckFuZERyYXdVbml0
UXVhZChnbCwgWzAsIDAsIDAsIDI1NV0pOworICAgIHJldHVybiBnZXRGcmFtZWJ1ZmZlckFzSW1h
Z2VEYXRhKGdsKTsKK30KKworY29uc3Qgc3ViY2FzZXMgPSBbXTsKK2NvbnN0IGFuZ2xlcyA9IFsw
LCA5MCwgMTgwXTsgLy8gRklYTUU6IC05MCBtYWtlIHNldE1vY2tDYW1lcmEuLi4gYWNjZXB0IHNp
Z25lZC4gaHR0cHM6Ly93ZWJraXQub3JnL2IvMjM1MzUyCitjb25zdCBmYWxzZUFuZFRydWUgPSBb
ZmFsc2UsIHRydWVdOworZm9yIChjb25zdCBhbmdsZSBvZiBhbmdsZXMpIHsKKyAgICBmb3IgKGNv
bnN0IGltYWdlQml0bWFwIG9mIGZhbHNlQW5kVHJ1ZSkKKyAgICAgICAgc3ViY2FzZXMucHVzaCh7
IGZ1bmM6IHdpdGgyRENvbnRleHQsIGFuZ2xlOiBhbmdsZSwgaW1hZ2VCaXRtYXA6IGltYWdlQml0
bWFwIH0pOworfQorCitmb3IgKGNvbnN0IGFuZ2xlIG9mIGFuZ2xlcykgeworICAgIGZvciAoY29u
c3QgaW1hZ2VCaXRtYXAgb2YgZmFsc2VBbmRUcnVlKSB7CisgICAgICAgIGZvciAoY29uc3Qgc3Vi
SW1hZ2Ugb2YgZmFsc2VBbmRUcnVlKSB7CisgICAgICAgICAgICBmb3IgKGNvbnN0IHVucGFja0Zs
aXBZIG9mIGZhbHNlQW5kVHJ1ZSkgeworICAgICAgICAgICAgICAgIGlmIChpbWFnZUJpdG1hcCA9
PSB0cnVlICYmIHVucGFja0ZsaXBZID09IHRydWUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOyAvLyBGSVhNRTogV2ViR0wgdGV4dHVyZSB1cGxvYWQgb2YgSW1hZ2VCaXRtYXAgZG9lcyBu
b3QgcmVzcGVjdCBVTlBBQ0tfRkxJUF9ZX1dFQkdMLiBodHRwczovL3dlYmtpdC5vcmcvYi8yMzUz
NTAKKyAgICAgICAgICAgICAgICBzdWJjYXNlcy5wdXNoKHtmdW5jOiB3aXRoV2ViR0wsIGFuZ2xl
OiBhbmdsZSwgaW1hZ2VCaXRtYXA6IGltYWdlQml0bWFwLCBzdWJJbWFnZTogc3ViSW1hZ2UsIHVu
cGFja0ZsaXBZOiB1bnBhY2tGbGlwWX0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fQorfQorCitmdW5jdGlvbiB0ZXN0RGVzY3JpcHRpb24oc3ViY2FzZSkgeworICAgIGxldCBkZXNj
ID0gImZ1bmM6ICIgKyBzdWJjYXNlLmZ1bmMubmFtZTsKKyAgICBmb3IgKGNvbnN0IGsgaW4gc3Vi
Y2FzZSkgeworICAgICAgICBpZiAoayA9PT0gImZ1bmMiKQorICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIGRlc2MgKz0gYCwgJHtrfTogJHtzdWJjYXNlW2tdfWA7CisgICAgfQorICAgIHJl
dHVybiBkZXNjOworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0VXNlck1lZGlhVG9DYW52YXModCwg
c3ViY2FzZSkgeworICAgIGNvbnN0IGRlc2MgPSB0ZXN0RGVzY3JpcHRpb24oc3ViY2FzZSk7Cisg
ICAgY29uc3QgdmlkZW8gPSBhd2FpdCBjcmVhdGVTb3VyY2VWaWRlbygpOworICAgIGNvbnN0IGRl
YnVnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWJ1Z2UiKTsKKyAgICBkZWJ1Z2UuYXBw
ZW5kKHZpZGVvKTsKKyAgICBjb25zdCByZWFsVmlkZW9TaXplID0gW3ZpZGVvLnZpZGVvV2lkdGgs
IHZpZGVvLnZpZGVvSGVpZ2h0XTsKKyAgICB0LmFkZF9jbGVhbnVwKGFzeW5jICgpID0+IHsKKyAg
ICAgICAgZGVidWdlLnJlbW92ZUNoaWxkKHZpZGVvKTsKKyAgICAgICAgLy8gUmVzZXQgb3JpZW50
YXRpb24gZm9yIHRoZSBuZXh0IHRlc3QgYnkgZ29pbmcgdG8gMC4KKyAgICAgICAgaWYgKHN1YmNh
c2UuYW5nbGUgPT0gMTgwKSB7CisgICAgICAgICAgICAvLyAxODAgLT4gMCBjYW5ub3QgZGV0ZWN0
IHJvdGF0aW9uIHZpYSB2aWRlbyBzaXplIGNoYW5nZS4gR28gdmlhIDkwLgorICAgICAgICAgICAg
Y29uc3QgW2FuZ2xlLCB2aWRlb1NpemVdID0gc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50YXRpb24o
OTAsIHJlYWxWaWRlb1NpemUpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZvclZpZGVvU2l6ZSh2
aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVbMV0pOworICAgICAgICB9CisgICAgICAgIHNl
dE1vY2tDYW1lcmFJbWFnZU9yaWVudGF0aW9uKDApOworICAgICAgICBhd2FpdCB3YWl0Rm9yVmlk
ZW9TaXplKHZpZGVvLCByZWFsVmlkZW9TaXplWzBdLCByZWFsVmlkZW9TaXplWzFdKTsKKyAgICB9
KTsKKworICAgIGlmIChzdWJjYXNlLmFuZ2xlID09IDE4MCkgeworICAgICAgICAvLyAwIC0+IDE4
MCBjYW5ub3QgZGV0ZWN0IHJvdGF0aW9uIHZpYSB2aWRlbyBzaXplIGNoYW5nZS4gR28gdmlhIDkw
LgorICAgICAgICBjb25zdCBbYW5nbGUsIHZpZGVvU2l6ZV0gPSBzZXRNb2NrQ2FtZXJhSW1hZ2VP
cmllbnRhdGlvbig5MCwgcmVhbFZpZGVvU2l6ZSk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JWaWRl
b1NpemUodmlkZW8sIHZpZGVvU2l6ZVswXSwgdmlkZW9TaXplWzFdKTsKKyAgICB9CisgICAgY29u
c3QgW2FuZ2xlLCB2aWRlb1NpemVdID0gc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50YXRpb24oc3Vi
Y2FzZS5hbmdsZSwgcmVhbFZpZGVvU2l6ZSk7CisgICAgYXdhaXQgd2FpdEZvclZpZGVvU2l6ZSh2
aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVbMV0pOworCisgICAgY29uc3QgY2FudmFzID0g
Y3JlYXRlVmVyaWZ5Q2FudmFzKHZpZGVvKTsKKyAgICBkZWJ1Z2UuYXBwZW5kQ2hpbGQoY2FudmFz
KTsKKyAgICB0LmFkZF9jbGVhbnVwKGFzeW5jICgpID0+IGRlYnVnZS5yZW1vdmVDaGlsZChjYW52
YXMpKTsKKyAgICBjb25zdCBpbWFnZURhdGEgPSBhd2FpdCBzdWJjYXNlLmZ1bmMoc3ViY2FzZSwg
dmlkZW8sIGNhbnZhcyk7CisgICAgdHJ5IHsKKyAgICAgICAgYXNzZXJ0SW1hZ2VEYXRhQ29udGFp
bnNNb2NrQ2FtZXJhSW1hZ2UoaW1hZ2VEYXRhLCBhbmdsZSwgZGVzYyk7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICAvLyBVc2UgdGhpcyBmb3IgZGVidWdnaW5nOgorICAgICAgICAvL2F3YWl0
IHdhaXRGb3IoMTAwMDApOworICAgICAgICB0aHJvdyBlOworICAgIH0KK30KKworZnVuY3Rpb24g
Y3JlYXRlVXNlck1lZGlhVG9DYW52YXNUZXN0cyhzbGljZSwgc2xpY2VzKSB7CisgICAgY29uc3Qg
c2xpY2VTaXplID0gTWF0aC5mbG9vcihzdWJjYXNlcy5sZW5ndGggLyBzbGljZXMpOworICAgIGNv
bnN0IGZpcnN0ID0gc2xpY2VTaXplICogc2xpY2U7CisgICAgZm9yIChjb25zdCBzdWJjYXNlIG9m
IHN1YmNhc2VzLnNsaWNlKGZpcnN0LCBmaXJzdCArIHNsaWNlU2l6ZSkpCisgICAgICAgIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsgYXdhaXQgdGVzdFVzZXJNZWRpYVRvQ2FudmFzKHQsIHN1YmNh
c2UpOyB9LCB0ZXN0RGVzY3JpcHRpb24oc3ViY2FzZSkpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcyBiL0xh
eW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcwppbmRleCBmODM3YWEwMGQ3YWUzNzhiNDU1Yzhj
Y2E0NDk4MTk1MGJhMDVlMDlhLi4yY2ZmNjllNjUxYjk0MTdiNWUxOTk4YmJkNTY3OTIxOWE1N2Yy
Y2UxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMKKysrIGIvTGF5
b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVzLmpzCkBAIC0yNTMsNyArMjUzLDcgQEAgYXN5bmMgZnVu
Y3Rpb24gY29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0sIHZpZGVvKQogewogICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKSB7CiAgICAgICAgIGludGVybmFscy5vYnNlcnZlTWVkaWFTdHJlYW1UcmFjayhz
dHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSk7Ci0gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJl
c29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgICAgICBhd2FpdCBuZXcg
UHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpOwogICAgICAgICBy
ZXR1cm4gaW50ZXJuYWxzLnRyYWNrVmlkZW9TYW1wbGVDb3VudDsKICAgICB9CiAKQEAgLTI3Myw3
ICsyNzMsNyBAQCBhc3luYyBmdW5jdGlvbiBjb21wdXRlRnJhbWVSYXRlKHN0cmVhbSwgdmlkZW8p
CiAgICAgYXdhaXQgdmlkZW8ucGxheSgpOwogCiAgICAgY29uc3Qgc3RhdHMxID0gYXdhaXQgZ2V0
UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24pOwotICAgIGF3YWl0IG5ldyBQcm9taXNlKHJl
c29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgIGF3YWl0IG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7CiAgICAgY29uc3Qgc3Rh
dHMyID0gYXdhaXQgZ2V0UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24pOwogICAgIHJldHVy
biAoc3RhdHMyLmZyYW1lc1JlY2VpdmVkIC0gc3RhdHMxLmZyYW1lc1JlY2VpdmVkKSAqIDEwMDAg
LyAoc3RhdHMyLnRpbWVzdGFtcCAtIHN0YXRzMS50aW1lc3RhbXApOwogfQpAQCAtMjk4LDYgKzI5
OCwyMCBAQCBmdW5jdGlvbiBzZXRIMjY0SGlnaENvZGVjKHNkcCkKICAgICB9KS5qb2luKCdcclxu
Jyk7CiB9CiAKKy8vIFNldHMgdGhlIGNhbWVyYSBpbWFnZSBvcmllbnRhdGlvbiBpZiBydW5uaW5n
IG9uIHRlc3QgcnVubmVyLgorLy8gYW5nbGU6IG9yaWVudGF0aW9uIGFuZ2xlIG9mIHRoZSBjYW1l
cmEgaW1hZ2UgaW4gZGVncmVlcworZnVuY3Rpb24gc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50YXRp
b24oYW5nbGUsIHZpZGVvU2l6ZSkgeworICAgIGlmIChbMCwgOTAsIDE4MCwgMjcwXS5pbmRleE9m
KGFuZ2xlKSA9PSAtMSkKKyAgICAgICAgdGhyb3cgImludmFsaWQgYW5nbGUiOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYW1lcmFPcmll
bnRhdGlvbihhbmdsZSk7CisgICAgICAgIGlmICh2aWRlb1NpemUgJiYgKGFuZ2xlID09IDkwIHx8
IGFuZ2xlID09IDI3MCkpCisgICAgICAgICAgICB2aWRlb1NpemUgPSBbdmlkZW9TaXplWzFdLCB2
aWRlb1NpemVbMF1dOworICAgICAgICByZXR1cm4gW2FuZ2xlLCB2aWRlb1NpemVdOworICAgIH0K
KyAgICByZXR1cm4gWzAsIHZpZGVvU2l6ZV07Cit9CisKIC8vIFJldHVybnMgVWludDhBcnJheVs0
XSBvZiBSR0JBIGNvbG9yLgogLy8gcDogW3gsIHldIG9mIDAuLjEgcmFuZ2UuCiBmdW5jdGlvbiBn
ZXRJbWFnZURhdGFQaXhlbChpbWFnZURhdGEsIHApCkBAIC0zMTEsMTYgKzMyNSwzMyBAQCBmdW5j
dGlvbiBnZXRJbWFnZURhdGFQaXhlbChpbWFnZURhdGEsIHApCiAvLyBBc3NlcnRzIHRoYXQgSW1h
Z2VEYXRhIGluc3RhbmNlIGNvbnRhaW5zIG1vY2sgY2FtZXJhIGltYWdlIHJlbmRlcmVkIGJ5IE1p
bmlCcm93c2VyIGFuZCBXZWJLaXRUZXN0UnVubmVyLgogLy8gT2J0YWluIGZ1bGwgY2FtZXJhIGlt
YWdlIG9mIHNpemUgYHdpZHRoYDoKIC8vICBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdl
dFVzZXJNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiB7IGV4YWN0OiB3aWR0aCB9IH0gfSk7Ci1mdW5j
dGlvbiBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEpCitm
dW5jdGlvbiBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEs
IGFuZ2xlLCBkZXNjKQogeworICAgIGFuZ2xlID0gYW5nbGUgfHwgMDsKKyAgICBkZXNjID0gZGVz
YyB8fCAiIjsKKworICAgIGZ1bmN0aW9uIHJvdGF0ZVBvaW50KHApIHsKKyAgICAgICAgbGV0IGEg
PSBhbmdsZTsKKyAgICAgICAgbGV0IG4gPSBbIHBbMF0sIHBbMV0gXTsKKyAgICAgICAgd2hpbGUg
KGEgPiAwKSB7CisgICAgICAgICAgICBuID0gWyAxLjAgLSBuWzFdLCBuWzBdIF07CisgICAgICAg
ICAgICBhIC09IDkwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuOworICAgIH0KKwogICAg
IGNvbnN0IHdoaXRlID0gWyAyNTUsIDI1NSwgMjU1LCAyNTUgXTsKKyAgICBjb25zdCB3aGl0ZVBv
aW50ID0gcm90YXRlUG9pbnQoWyAwLjA0LCAwLjcgXSk7CiAgICAgY29uc3QgeWVsbG93ID0gWyAy
NTUsIDI1NSwgMCwgMjU1IF07CisgICAgY29uc3QgeWVsbG93UG9pbnQgPSByb3RhdGVQb2ludChb
IDAuMDgsIDAuNyBdKTsKICAgICBjb25zdCBjeWFuID0gWyAwLCAyNTUsIDI1NSwgMjU1IF07Cisg
ICAgY29uc3QgY3lhblBvaW50ID0gcm90YXRlUG9pbnQoWyAwLjEyLCAwLjcgXSk7CiAgICAgY29u
c3QgbGlnaHRHcmVlbiA9IFsgMCwgMTI4LCAwLCAyNTUgXTsKKyAgICBjb25zdCBsaWdodEdyZWVu
UG9pbnQgPSByb3RhdGVQb2ludChbIDAuMTYsIDAuNyBdKTsKIAotICAgIGxldCBlcnIgPSAzOwot
ICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0
YSwgWyAwLjA0LCAwLjcgXSksIHdoaXRlLCBlcnIsICJ3aGl0ZSByZWN0IG5vdCBmb3VuZCIpOwot
ICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0
YSwgWyAwLjA4LCAwLjcgXSksIHllbGxvdywgZXJyLCAieWVsbG93IHJlY3Qgbm90IGZvdW5kIik7
Ci0gICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VE
YXRhLCBbIDAuMTIsIDAuNyBdKSwgY3lhbiwgZXJyLCAiY3lhbiByZWN0IG5vdCBmb3VuZCIpOwot
ICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0
YSwgWyAwLjE2LCAwLjcgXSksIGxpZ2h0R3JlZW4sIGVyciwgImxpZ2h0IGdyZWVuIHJlY3Qgbm90
IGZvdW5kIik7CisgICAgbGV0IGVyciA9IDExOworICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1
YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgd2hpdGVQb2ludCksIHdoaXRlLCBlcnIs
ICJ3aGl0ZSByZWN0IG5vdCBmb3VuZCAiICsgZGVzYyk7CisgICAgYXNzZXJ0X2FycmF5X2FwcHJv
eF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCB5ZWxsb3dQb2ludCksIHllbGxv
dywgZXJyLCAieWVsbG93IHJlY3Qgbm90IGZvdW5kIiArIGRlc2MpOworICAgIGFzc2VydF9hcnJh
eV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgY3lhblBvaW50KSwg
Y3lhbiwgZXJyLCAiY3lhbiByZWN0IG5vdCBmb3VuZCAiICsgZGVzYyk7CisgICAgYXNzZXJ0X2Fy
cmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCBsaWdodEdyZWVu
UG9pbnQpLCBsaWdodEdyZWVuLCBlcnIsICJsaWdodCBncmVlbiByZWN0IG5vdCBmb3VuZCAiICsg
ZGVzYyk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449476</attachid>
            <date>2022-01-19 05:05:34 -0800</date>
            <delta_ts>2022-01-20 02:49:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235233-20220119150532.patch</filename>
            <type>text/plain</type>
            <size>86434</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDAwODliMmFlOGM0YTE0
ZGNmNGYwYTFlZjc4ZTE5ZjQ4ZmNiMjU0NC4uNmE4ODk1ZTdlNDBiMWVlMjlkZDRkMTE1NTRkZjhj
MGU2ODYxN2YwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIyLTAxLTE3ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdl
YkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlh
IGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NjAxNzYyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgZnVsbCB0ZXh0
dXJlIHVwbG9hZHMgZnJvbSBNZWRpYVN0cmVhbSBjYW1lcmEgY2FwdHVyZXMgdXNlIENWUGl4ZWxC
dWZmZXJzCisgICAgICAgIGluc3RlYWQgb2YgcmVhZGluZyB0aGUgcGl4ZWxzIGJhY2suCisgICAg
ICAgIEltcGxlbWVudCBNZWRpYVBsYXllckludGVyZmFjZTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50
VGltZSgpIGZvcgorICAgICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
CisgICAgICAgIFJlbmFtZSBmdW5jdGlvbnMgZnJvbSBwaXhlbEJ1ZmZlci4uLiB0byB2aWRlb0Zy
YW1lLgorICAgICAgICBVc2UgbmV3IHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGluc3RlYWQg
b2YgQ1ZQaXhlbEJ1ZmZlci4KKyAgICAgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGNvbnRhaW5z
IGFsc28gdGhlIGZyYW1lIG9yaWVudGF0aW9uLiBUaGUKKyAgICAgICAgb3JpZW50YXRpb24gaXMg
bmVlZGVkIGFzIHRoZSBjYW1lcmEgbWlnaHQgY2FwdHVyZSB0aGUgaW1hZ2UKKyAgICAgICAgd2l0
aCBhIHJvdGF0aW9uIG9yIGEgZmxpcC4KKworICAgICAgICBUbyBhdm9pZCBpZmRlZnMsIHRoZSBu
ZXcgQVBJIHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSBleGlzdHMKKyAgICAgICAgZm9yIGFsbCBw
bGF0Zm9ybXMsIGJ1dCBpcyBjdXJyZW50bHkgY2FsbGVkIG9ubHkgYnkgQ29jb2EuCisgICAgICAg
IEFsc28gdGhlIHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGV4aXN0cyBmb3IgYWxsIHBsYXRm
b3JtcworICAgICAgICBidXQgaGFzIHRoZSBmcmFtZSBjb250ZW50cyBpbXBsZW1lbnRhdGlvbiBv
bmx5IGZvciBDb2NvYS4KKworICAgICAgICBUZXN0ZWQgYnkgZmFzdC9tZWRpYXN0cmVhbS9nZXRV
c2VyTWVkaWEtdG8tY2FudmFzLmh0bWwKKworICAgICAgICBDdXJyZW50bHkgdGhlICJtaXJyb3Jl
ZCIgcGFydCBpcyB0ZXN0ZWQgbWFudWFsbHksIFdlYktpdAorICAgICAgICBkb2VzIG5vdCByZXF1
ZXN0IG1pcnJvcmVkIGNhbWVyYSBpbWFnZSBzbyBpdCBpcyBkZWFkIGNvZGUuCisKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjp2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6
OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnZpZGVvRnJhbWVGb3JDdXJyZW50
VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnBp
eGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyVmlkZW9GcmFtZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyVmlkZW9GcmFtZTo6b3JpZW50YXRpb24gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpwaXhlbEJ1ZmZlciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU6Om9wZXJhdG9yPT0gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpkZWNvZGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclZpZGVvRnJhbWVBVkYu
bW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBo
aWNzQ29udGV4dEdMQ1YuaC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFt
ZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwaXhlbEJ1
ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OnZpZGVvT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZy
b21NZWRpYSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0
R0xDVi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdM
Q1ZDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6
OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2E6OmNvcHlWaWRlb0ZyYW1lVG9UZXh0dXJlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuaDoKKwogMjAyMi0wMS0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZXNldCBz
aG91bGQgaG9wIHRvIHRoZSBtYWluIHRocmVhZCBiZWZvcmUgY2FsbGluZyBpdHMgb2JzZXJ2ZXJz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDc5MzU1YjkzOTU2ZTAzNDU0YzE2NmNhNWNkM2NmOTMzYTIxNWFiMjUuLjRk
NWZjMTQyMjViOTA5NDI3MmRhYmI4OGI3ODhjZmE2MDMzZGUzNjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzEgQEAKKzIwMjItMDEtMTcgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNv
bT4KKworICAgICAgICBJbXBsZW1lbnQgV2ViR0wgR1BVIGJ1ZmZlciB0ZXh0dXJlIHVwbG9hZCBw
YXRoIGZvciBDb2NvYSBnZXRVc2VyTWVkaWEgY2FtZXJhIHN0cmVhbXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTIzMworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vODc2MDE3NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVuYW1lIGZ1bmN0aW9ucyBmcm9tIHBpeGVsQnVmZmVyLi4uIHRvIHZpZGVv
RnJhbWUuCisgICAgICAgIFNlbmQgbmV3IHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGluc3Rl
YWQgb2YgQ1ZQaXhlbEJ1ZmZlci4KKyAgICAgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGNvbnRh
aW5zIGFsc28gdGhlIGZyYW1lIG9yaWVudGF0aW9uLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hh
bmdlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSk6IERlbGV0ZWQuCisKIDIwMjItMDEtMTcgIENoYW5nU2VvayBPaCAgPGNoYW5n
c2Vva0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtHVEtdIEltcGxlbWVudCBmb3JtIHZhbGlkYXRp
b24gd2l0aCBndGszIHdpZGdldHMgaW4gdGhlIFVJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IDg4OTBmOGRiYTQ3NGMzOTJjMzczMjk4ZGE3NTgwZjcxOWNlNWMzZGUuLjc4ZTdiYzkxMjY3
MjYyNTk1NDgxYTkyODUyNGU5ODBmYmE1NDM4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTUx
MSw2ICsxNTExLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyRW51bXMuaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVySWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclZpZGVvRnJh
bWUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZS5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVVzYWdlSW5mby5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAyYzNi
NGY4MWE1MmY1NjY5OWNiZmQ0MTJkZmFjMDk0MzY2NmFlYWU3Li5kZDFlZDhhZTYyZjJhNGIyZTYz
ZDFlZDE5MzUxNTk4ZmVlMGRiY2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTI5Niw2
ICsyOTYsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAorcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbQogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYjA4MWI2YTE5ZDNkZDVmYjY3ZmIxNmU3YmZhOWM3NTg2ZmY5ZjFhZC4uMjkyYjVjMTFj
Njg3NGU5MjBiZjI1MTlhNTY3YzA3OGJmZjAxNTk3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQwLDYgKzI0MCw3IEBACiAJ
CTA4MUVCRjNCMEZEMzRGNDEwMERBNzU1OSAvKiBTVkdGaWx0ZXJCdWlsZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODFFQkYzOTBGRDM0RjQxMDBE
QTc1NTkgLyogU1ZHRmlsdGVyQnVpbGRlci5oICovOyB9OwogCQkwODNEQUVBNzBGMDFBN0ZCMDAz
NDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4M0RBRUEzMEYwMUE3RkIwMDM0Mjc1NCAvKiBS
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oICovOyB9OwogCQkwODNEQUVBOTBGMDFBN0ZCMDAz
NDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODNEQUVBNTBGMDFBN0ZCMDAzNDI3NTQgLyog
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggKi87IH07CisJCTA4NDRCMDFEMTI1NUI0RTYw
MEI5Q0REMCAvKiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODQ0QjAxRDEyNTVFNEU2MDBCOUNERDAgLyog
U1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5oICovOyB9OwogCQkwODQ1NjgwODEyQjkwREE2MDA5
NjBBOUYgLyogRm9udE1ldHJpY3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA4NDU2ODA3MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA4NTRCMDE1
MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NTRCMDAzMTI1NUU0RTYwMEI5Q0REMCAvKiBS
ZW5kZXJTVkdJbmxpbmUuaCAqLzsgfTsKIAkJMDg1NEIwMTcxMjU1RTRFNjAwQjlDREQwIC8qIFJl
bmRlclNWR0lubGluZVRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA4NTRCMDA1MTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxpbmVUZXh0
LmggKi87IH07CkBAIC0yMzkxLDYgKzIzOTIsNyBAQAogCQk3QUY5QjIwRjE4Q0ZCNUY0MDBDNjRC
RUYgLyogSlNWVFRSZWdpb25MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QUY5QjIwQjE4Q0ZCNUYzMDBDNjRCRUYgLyogSlNWVFRSZWdpb25MaXN0
LmggKi87IH07CiAJCTdCMTAzMzlFMjU0OTcyMTcwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRH
TENWLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEw
MzM5RDI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCMTAzMzlGMjU0OTcyMUUw
MEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBH
cmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk3QjQ0MTBFMTI3OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFQbGF5
ZXJWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I2MDk0
REQyNzBDNDRCRDAwNjQ4MzVDIC8qIEFOR0xFVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkIzNEExNjI1MzQ1Q0IyMDAwMjlEMDggLyog
QU5HTEVVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QjZEQzgxOTI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJ
T1N1cmZhY2VTd2FwQ2hhaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCNkRDODE3MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElP
U3VyZmFjZVN3YXBDaGFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTdCNzIwQjBDMjc0M0RCQTcwMDA4QUJFRCAvKiBHcmFwaGljc0xheWVyQ29u
dGVudHNEaXNwbGF5RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdCNzIwQjBBMjc0M0RCQTYwMDA4QUJFRCAvKiBHcmFwaGljc0xheWVyQ29u
dGVudHNEaXNwbGF5RGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtNDYzNiw4ICs0NjM4LDggQEAKIAkJQ0RGNzQ3RjEyNzBGNzY2RjAw
OEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RjAyNzBGNzY2RjAwOEZFRUVD
IC8qIFJlbmRlclNWR1Jlc291cmNlTWFya2VySW5saW5lcy5oICovOyB9OwogCQlDREY3NDdGMzI3
MEY3NkNGMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudElubGluZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0N0Yy
MjcwRjc2Q0YwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5l
cy5oICovOyB9OwogCQlDREY3NDdGNTI3MEY4M0IxMDA4RkVFRUMgLyogUmVuZGVyU1ZHR3JhZGll
bnRTdG9wSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RGNzQ3RjQyNzBGODNCMTAwOEZFRUVDIC8qIFJlbmRlclNWR0dyYWRpZW50U3RvcElu
bGluZXMuaCAqLzsgfTsKLQkJQ0RGNzQ3RjcyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRl
clNWR1NoYXBlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RGNzQ3RjYyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRlclNWR1NoYXBl
SW5saW5lcy5oICovOyB9OwogCQlDREY3NDdGNzI3MEY4M0I0MTA3REVFRUMgLyogUmVuZGVyU1ZH
U2hhcGVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREY3NDdGNjI3MEY4M0I0MTA3REVFRUMgLyogUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmgg
Ki87IH07CisJCUNERjc0N0Y3MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFw
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERjc0N0Y2MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMu
aCAqLzsgfTsKIAkJQ0RGNzQ3RjkyNzBGODdDQjAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNl
UmFkaWFsR3JhZGllbnRJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREY3NDdGODI3MEY4N0NCMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3Vy
Y2VSYWRpYWxHcmFkaWVudElubGluZXMuaCAqLzsgfTsKIAkJQ0RGNzQ3RkIyNzBGODkxQTAwOEZF
RUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTWFza2VySW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RkEyNzBGODkxQTAwOEZFRUVDIC8q
IFJlbmRlclNWR1Jlc291cmNlTWFza2VySW5saW5lcy5oICovOyB9OwogCQlDREY3NDgzRjE4RkVC
Q0VDMDAwNkVDQzAgLyogR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDgzRDE4RkVCQ0VDMDAwNkVDQzAgLyog
R3JpZFBvc2l0aW9uc1Jlc29sdmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTYxOTgsMTAgKzYyMDAsMTIgQEAKIAkJMDgxQUE4RDkxMTExMjM3
RTAwMkFCMDZFIC8qIFNWR0VsZW1lbnRSYXJlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdFbGVtZW50UmFyZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDgxRUJGMzgwRkQzNEY0MTAwREE3NTU5IC8qIFNWR0ZpbHRlckJ1aWxkZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHRmlsdGVyQnVpbGRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4MUVCRjM5MEZEMzRGNDEwMERBNzU1OSAv
KiBTVkdGaWx0ZXJCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R0ZpbHRlckJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDgzNEIwMEMx
MjQ0RTRFNjAwQjlDREQwIC8qIFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4M0RBRUEyMEYwMUE3RkIwMDM0Mjc1
NCAvKiBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4M0RBRUEzMEYwMUE3RkIwMDM0Mjc1NCAvKiBSZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwODNEQUVBNDBGMDFBN0ZCMDAzNDI3NTQgLyogUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4M0RBRUE1
MEYwMUE3RkIwMDM0Mjc1NCAvKiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4NDRCMDFEMTI1NUU0RTYwMEI5Q0REMCAv
KiBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDg0NTY4MDcxMkI5MERBNjAwOTYwQTlGIC8qIEZvbnRNZXRyaWNzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRNZXRyaWNzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA4NTRCMDAyMTI1NUU0RTYwMEI5Q0REMCAvKiBSZW5kZXJTVkdJbmxp
bmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHSW5s
aW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg1NEIwMDMxMjU1RTRFNjAw
QjlDREQwIC8qIFJlbmRlclNWR0lubGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJTVkdJbmxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEx
NDY5LDYgKzExNDczLDggQEAKIAkJN0IxMDMzOUMyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNz
Q29udGV4dEdMQ1ZDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxMDMzOUQyNTQ5NzIwMTAwQzhD
MUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjE2MTkxMDI3MTk4ODBF
MDBDNDBFQUMgLyogV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I0NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlh
UGxheWVyVmlkZW9GcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRp
YVBsYXllclZpZGVvRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0I0NDEw
RTIyNzk1OEZERTAwMEI0RjhBIC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE1lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTUyNTcxMkU5MTAwMzgwQzcwIC8qIEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBo
aWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNzIwQjBBMjc0M0RCQTYwMDA4QUJFRCAvKiBHcmFwaGlj
c0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzQwNyw5ICsxMzQxMyw5IEBACiAJCUExMEJCNTgzMTQ4
NEUzQTcwMEIyRTg3QSAvKiBMZWdhY3lSZW5kZXJTVkdSZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1JlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEwQkI1ODMxNDg0RTNBNzAwQjNBQjZEIC8qIFJlbmRlclNWR1JlY3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHUmVjdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBCQjU4ODE0ODRFM0IzMDBCMkU4N0EgLyogTGVnYWN5
UmVuZGVyU1ZHU2hhcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TGVnYWN5UmVuZGVyU1ZHU2hhcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
MTBDQzU4ODE0NzNFM0IzMDBCMkE4QkYgLyogUmVuZGVyU1ZHU2hhcGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMTBCQjU4OTE0ODRFM0IzMDBCMkU4N0EgLyogTGVnYWN5UmVu
ZGVyU1ZHU2hhcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UmVu
ZGVyU1ZHU2hhcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwQkI1ODkxNDg0
RTNCMzAwQzNGNzdCIC8qIFJlbmRlclNWR1NoYXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUExMENDNTg4MTQ3M0UzQjMwMEIyQThCRiAvKiBSZW5kZXJTVkdTaGFwZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdTaGFwZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEQ2RTk0MjE0NEM5OTgwMEZERDE0RCAvKiBKU1BheW1l
bnRSZXNwb25zZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BheW1lbnRSZXNwb25z
ZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMERCRjQ2MThGOTIz
MTcwMDBENzBDNiAvKiBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwREM3NjgxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3Jp
ZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVHcmlk
RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjMxMSw4ICsxNjMxNyw4
IEBACiAJCUNERjc0N0YwMjcwRjc2NkYwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZU1hcmtl
cklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXJJbmxpbmVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjc0N0YyMjcwRjc2Q0YwMDhGRUVF
QyAvKiBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5lcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGNDI3MEY4M0IxMDA4RkVFRUMgLyogUmVuZGVyU1ZH
R3JhZGllbnRTdG9wSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdHcmFkaWVudFN0
b3BJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNERjc0N0Y2MjcwRjg2
QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNERjc0N0Y2MjcwRjgzQjQxMDdERUVFQyAvKiBSZW5kZXJTVkdTaGFwZUlubGluZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNERjc0N0Y2MjcwRjg2QTQwMDhGRUVFQyAvKiBMZWdhY3lSZW5kZXJT
VkdTaGFwZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjc0N0Y4MjcwRjg3Q0IwMDhG
RUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50SW5saW5lcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50SW5saW5lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDdGQTI3MEY4OTFBMDA4RkVFRUMgLyogUmVuZGVy
U1ZHUmVzb3VyY2VNYXNrZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1Jlc291
cmNlTWFza2VySW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY3NDgz
QzE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODcwMyw2ICsxODcwOSw3IEBACiAJCQkJMDcx
RTQ5NkQxQUQ1QUEwRDAwOEE1MEI0IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbSAqLywK
IAkJCQkwNzZGMEQwOTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmNwcCAqLywKIAkJCQkwNzZGMEQwQTEyQjgxOTI3MDBDMjZBQTQgLyogTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggKi8sCisJCQkJN0I0NDEwRTIyNzk1OEZERTAwMEI0RjhB
IC8qIE1lZGlhUGxheWVyVmlkZW9GcmFtZUFWRi5tbSAqLywKIAkJCQlDREJFQUVBQjE5RDkyQjZD
MDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCAqLywKIAkJCQlDREJFQUVB
QTE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0gKi8sCiAJ
CQkJNDEwMjRGQzgyM0NGMjU0RjAwRkRGOThFIC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5j
cHAgKi8sCkBAIC0yODkyOCw2ICsyODkzNSw3IEBACiAJCQkJQ0Q1MjA5RTMxQjBCRDgzODAwNzcx
ODRFIC8qIE1lZGlhUGxheWVyRW51bXMuaCAqLywKIAkJCQlGNDI5MjYxNzI1MjY0RDQ0MDAwMDc4
OTggLyogTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmggKi8sCiAJCQkJMDc5RjVFNEIwRjNCRUJFQTAw
NUUwNzgyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZS5oICovLAorCQkJCTdCNDQxMERGMjc5NThGQzQw
MDBCNEY4QSAvKiBNZWRpYVBsYXllclZpZGVvRnJhbWUuaCAqLywKIAkJCQlDRDY0MUVCMTE4MThG
NUVEMDBFRTRDNDEgLyogTWVkaWFTb3VyY2VQcml2YXRlLmggKi8sCiAJCQkJQ0REQzFFNzkxOEE5
NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oICovLAogCQkJCTA3NjEx
REI4MjQzRkI3NUMwMEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oICovLApAQCAtMzYxMDYsNiAr
MzYxMTQsNyBAQAogCQkJCURGOUFGRDcyMTNGQzMxRDgwMDE1RkVCNyAvKiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM4QjVBMzE4MDQ2
MzQ3MDAxNkU2ODUgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNTA1MjRGNDFCNzEyRkY2MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QjQ0MTBFMTI3
OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwNzdCQTU3NjI2MEZBREY2MDA3MkYxOUYgLyogTWVkaWFQb3NpdGlvblN0YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MkUyQ0FGQzE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEUxOTU5MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlh
UXVlcnkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGMxMjgxYTQ0NmIxNTY1OTA5YjMxNDRhNzgyYzk5
NzhlZTkwODlmZTIuLjc3NDc2OGUyYzE5Mjc2MWY4MGE4NTZkYTkyZTJhZjZhODhkODdmYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
QEAgLTEwNjIsMTUgKzEwNjIsMTMgQEAgYm9vbCBNZWRpYVBsYXllcjo6Y29weVZpZGVvVGV4dHVy
ZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiBjb250ZXh0LAogICAgIHJldHVy
biBtX3ByaXZhdGUtPmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShjb250ZXh0LCB0
ZXh0dXJlLCB0YXJnZXQsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBwcmVt
dWx0aXBseUFscGhhLCBmbGlwWSk7CiB9CiAKLSNlbHNlCisjZW5kaWYKIAotUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkK
K3N0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiBNZWRpYVBsYXllcjo6dmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5waXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lKCk7CiB9CiAKLSNlbmRpZgotCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxh
eWVyOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICByZXR1cm4gbV9wcml2YXRl
LT5uYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBjMTNkNzAzMmYyOGNjZDkwODcyYjA5Mjc2
ZDkzNzJhNDI2NTNhMjAxLi4yN2E2OTA3M2MzODA3NTQxNGJhNzIxMTA3Y2I1MGQwY2ZmNGZkODQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJFbnVtcy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVySWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVRleHRUcmFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luRGF0YS5oIgpAQCAtNDY3LDEwICs0NjgsOCBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIGN1cnJl
bnQgcmVzdHJpY3Rpb25zIHJlcXVpcmUgdGhhdCBmb3JtYXQgc2hvdWQgYmUgUkdCIG9yIFJHQkEs
IHR5cGUgc2hvdWxkIGJlIFVOU0lHTkVEX0JZVEUgYW5kIGxldmVsIHNob3VsZCBiZSAwLiBJdCBt
YXkgYmUgbGlmdGVkIGluIHRoZSBmdXR1cmUuCiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAg
Ym9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wq
LCBQbGF0Zm9ybUdMT2JqZWN0IHRleHR1cmUsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZl
bCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlw
ZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKTsKLSNlbHNlCi0gICAgUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKICNlbmRp
ZgotCisgICAgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZSgpOwogICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JD
dXJyZW50VGltZSgpOwogICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQ
cml2YXRlLmgKaW5kZXggNmU0NzdiY2FmOWM0ODU3YTAxNzcyNjU3MjJmODFiZjg0ZmJjMzBkZS4u
MDg1ZjhhYjM1ZDhmNWZkNWE4NjM5Y2Y0ODg0ZWRkMTZjMDUyOWU5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAg
LTI5LDggKzI5LDEwIEBACiAKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1l
ZGlhUGxheWVySWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyVmlkZW9GcmFtZS5o
IgogI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2Vz
LmgiCisjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVy
Lmg+CiAKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKQEAgLTE3OCw5ICsxODAs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0
KEdyYXBoaWNzQ29udGV4dCYgYywgY29uc3QgRmxvYXRSZWN0JiByKSB7IHBhaW50KGMsIHIpOyB9
CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3Qs
IEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBi
b29sKSB7IHJldHVybiBmYWxzZTsgfQotI2Vsc2UKLSAgICB2aXJ0dWFsIFJldGFpblB0cjxDVlBp
eGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbnVsbHB0
cjsgfQogI2VuZGlmCisgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9G
cmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9
CiAgICAgdmlydHVhbCBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRp
bWUoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2UgY29sb3JTcGFjZSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclZpZGVvRnJhbWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTViYzk0
MjUwYzMzNmUwOTIwMjFlYmFiMmE0ZGRiYmU3MDVlYmZlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgKQEAg
LTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKyNpbmNsdWRlICJJbWFnZU9y
aWVudGF0aW9uLmgiCisKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KKwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsK
KyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhUGxheWVyVmlkZW9G
cmFtZSB7CitwdWJsaWM6CisgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lKCkgPSBkZWxldGU7Cisj
aWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVBsYXllclZpZGVv
RnJhbWUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYsIEltYWdlT3JpZW50YXRpb24pOwor
I2VuZGlmCisKKyAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9vcmllbnRhdGlvbjsgfQorCisjaWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9waXhlbEJ1ZmZlci5nZXQo
KTsgfQorI2VuZGlmCisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTWVkaWFQbGF5ZXJWaWRl
b0ZyYW1lJiBvdGhlcikgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiBkZWNvZGUoRGVj
b2RlciYpOworCitwcml2YXRlOgorI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXI7CisjZW5kaWYKKyAgICBJbWFnZU9yaWVu
dGF0aW9uIG1fb3JpZW50YXRpb247Cit9OworCitpbmxpbmUgYm9vbCBNZWRpYVBsYXllclZpZGVv
RnJhbWU6Om9wZXJhdG9yPT0oY29uc3QgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lJiBvdGhlcikgY29u
c3QKK3sKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIGlmIChtX3BpeGVsQnVmZmVyICE9IG90
aGVyLm1fcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIHJl
dHVybiBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbihvdGhlci5tX29yaWVudGF0aW9uKSA9
PSBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbihtX29yaWVudGF0aW9uKTsKK30KKwordGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBNZWRpYVBsYXllclZpZGVvRnJhbWU6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAg
ZW5jb2RlciA8PCBtX3BpeGVsQnVmZmVyOworICAgIGVuY29kZXIgPDwgSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZW50YXRpb24obV9vcmllbnRhdGlvbik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShl
bmNvZGVyKTsKKyNlbmRpZgorfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGQ6Om9w
dGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIHN0ZDo6
b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+PiBwaXhlbEJ1ZmZlcjsKKyAgICBk
ZWNvZGVyID4+IHBpeGVsQnVmZmVyOworICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgc3RkOjpvcHRpb25hbDxJbWFnZU9yaWVudGF0aW9uOjpP
cmllbnRhdGlvbj4gb3JpZW50YXRpb247CisgICAgZGVjb2RlciA+PiBvcmllbnRhdGlvbjsKKyAg
ICBpZiAoIW9yaWVudGF0aW9uKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJl
dHVybiBNZWRpYVBsYXllclZpZGVvRnJhbWUgeyBXVEZNb3ZlKCpwaXhlbEJ1ZmZlciksICpvcmll
bnRhdGlvbiB9OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyNlbmRpZgorfQorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclZpZGVv
RnJhbWVBVkYubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lQVZGLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1YzBkZGNhZmFkZDMx
ZWVmNjIyYzJhYWRmM2MwZDJlNjY1NWU0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJWaWRlb0ZyYW1l
QVZGLm1tCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisj
aW5jbHVkZSAiTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lOjpNZWRpYVBsYXllclZpZGVvRnJhbWUoUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+JiYgcGl4ZWxCdWZmZXIsIEltYWdlT3JpZW50YXRpb24gb3JpZW50
YXRpb24pCisgICAgOiBtX3BpeGVsQnVmZmVyKFdURk1vdmUocGl4ZWxCdWZmZXIpKQorICAgICwg
bV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKK3sKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaAppbmRleCA5NWEzNzg5YWQ2MjcxOWMxMDBiYzA2N2QzY2U4YWFhOTMyZDU3NDEx
Li5hYjY5ODNiZDk5NmNhOWRhZTM3NDJmNWM3NjQzYzVlYzBlZjgxNDI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oCkBAIC0yNjIsMTIgKzI2MiwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBkYXRl
TGFzdFBpeGVsQnVmZmVyKCk7CiAgICAgYm9vbCB2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZyYW1l
KCk7CiAgICAgdm9pZCBwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdl
PiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgRGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UoKSBmaW5hbDsKICAgICB2b2lkIHdhaXRGb3JWaWRlb091dHB1dE1l
ZGlhRGF0YVdpbGxDaGFuZ2UoKTsKIAotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBw
aXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgZmluYWw7Ci0KICNpZiBFTkFCTEUoTEVHQUNZX0VO
Q1JZUFRFRF9NRURJQSkKICAgICB2b2lkIGtleUFkZGVkKCkgZmluYWw7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPExlZ2FjeUNETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0sIExlZ2FjeUNETVNlc3Npb25DbGllbnQqKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCmluZGV4IGJkYzJhODJlNzNmNGZkZjg4YjVhNTRjOTk3ZjMyYmY2ODlkZTk5NmEuLmYzN2Rm
MDdlNjBjNzJhNDg5MTlhMjA1M2YwNTIyYzQwNzRkYTMyM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQpAQCAtMjYyNSwxMSArMjYyNSwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYgYwogCiB9
CiAKLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKK3N0ZDo6b3B0aW9uYWw8TWVk
aWFQbGF5ZXJWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewogICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigp
OwotCi0gICAgcmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyOworICAgIGlmICghbV9sYXN0UGl4ZWxC
dWZmZXIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIE1lZGlhUGxh
eWVyVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUgfTsKIH0KIAogUmVmUHRyPE5hdGl2ZUltYWdlPiBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggOTMxM2MxYjNkZjZkMzY5NjA4Yzc1NWYwNTVkNDYxZGFi
NWRmNzIyYS4uZDc0ODNlNzRlNzZlZTVhOGU4Mjg0NGE4ZGZlMWMxNmVhZDczNTI1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTIyMiw3ICsyMjIsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgdXBkYXRlTGFzdEltYWdlKCk7CiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5D
b250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwotICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkg
ZmluYWw7CisgICAgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xv
clNwYWNlKCkgZmluYWw7CiAKICAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmco
KSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCBiMmNlNmJi
YzdhYWNjOGNlY2MyMWM5NDEyOTVlNDMxOGFkY2I4OWEzLi4yZjJkZTQ1N2RmMDVhMzYyNDA1NTM5
NmQxMzcyYmJiNDA5OTMwNTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC03MjEs
NyArNzIxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBh
aW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ28KICAgICBjb250ZXh0LmRyYXdOYXRp
dmVJbWFnZSgqaW1hZ2UsIGltYWdlUmVjdC5zaXplKCksIG91dHB1dFJlY3QsIGltYWdlUmVjdCk7
CiB9CiAKLVJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQorc3RkOjpvcHRpb25h
bDxNZWRpYVBsYXllclZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICAvLyBXZSBoYXZlIGJlZW4g
YXNrZWQgdG8gcGFpbnQgaW50byBhIFdlYkdMIGNhbnZhcywgc28gdGFrZSB0aGF0IGFzIGEgc2ln
bmFsIHRvIGNyZWF0ZQogICAgIC8vIGEgZGVjb21wcmVzc2lvbiBzZXNzaW9uLCBldmVuIGlmIHRo
YXQgbWVhbnMgdGhlIG5hdGl2ZSB2aWRlbyBjYW4ndCBhbHNvIGJlIGRpc3BsYXllZApAQCAtNzMz
LDggKzczMyw5IEBAIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OnBpeGVsQnVmZmVyRm9yCiAKICAgICBpZiAoIW1faXNHYXRo
ZXJpbmdWaWRlb0ZyYW1lTWV0YWRhdGEpCiAgICAgICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigp
OwotCi0gICAgcmV0dXJuIG1fbGFzdFBpeGVsQnVmZmVyOworICAgIGlmICghbV9sYXN0UGl4ZWxC
dWZmZXIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIE1lZGlhUGxh
eWVyVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3Jp
ZW50YXRpb246Ok5vbmUgfTsKIH0KIAogRGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6Y29sb3JTcGFjZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQy5oCmluZGV4IDZkOTU1Njc0ZDA2Mjc1YWU0MzNlNWE1NGEzN2MzNGU2YmYzN2Y5YTIuLjli
NmZkMmI1ZjI3NTQ5MjY3ZGIzOTkzYzk4OTVkYjE2MzIxNTg2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oCkBAIC0xNDIsNiArMTQyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGFpbnQo
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBw
YWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmKSBvdmVycmlkZTsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgb3ZlcnJpZGU7CiAgICAgRGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UoKSBvdmVycmlkZTsKICAgICBib29sIG1ldGFEYXRhQXZhaWxhYmxl
KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0cmVhbVByaXZhdGUgJiYgbV9yZWFkeVN0YXRlID49
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGE7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tCmluZGV4IDQ5ZjQyZjljMDJiODI5NTMyNTc3MzhjMzQ0MDQzZGViNDEwODUx
YzIuLmFiZmFmMWM3YTM1ZGUxZDJmMWQxNjAxOWE4ZTMzN2QzODU2MDM5NDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KQEAgLTI0NCw2ICsyNDQsMjIgQEAgc3RhdGljIGlubGluZSBDR0Fm
ZmluZVRyYW5zZm9ybSB2aWRlb1RyYW5zZm9ybWF0aW9uTWF0cml4KE1lZGlhU2FtcGxlJiBzYW1w
bGUpCiAgICAgcmV0dXJuIHZpZGVvVHJhbnNmb3JtOwogfQogCitzdGF0aWMgaW5saW5lIEltYWdl
T3JpZW50YXRpb24gdmlkZW9PcmllbnRhdGlvbihNZWRpYVNhbXBsZSYgc2FtcGxlKQoreworICAg
IC8vIFNhbXBsZSB0cmFuc2Zvcm0gZmlyc3QgZmxpcHMgeC1jb29yZGluYXRlcywgdGhlbiByb3Rh
dGVzLgorICAgIGJvb2wgZmxpcFggPSBzYW1wbGUudmlkZW9NaXJyb3JlZCgpOyAvLyBMZWZ0IHNp
ZGUgc3dpdGNoZXMgd2l0aCByaWdodCBzaWRlLgorICAgIHN3aXRjaCAoc2FtcGxlLnZpZGVvUm90
YXRpb24oKSkgeworICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU6Cisg
ICAgICAgIHJldHVybiBmbGlwWCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IDog
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wTGVmdDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpW
aWRlb1JvdGF0aW9uOjpSaWdodDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmllbnRh
dGlvbjo6T3JpZ2luUmlnaHRCb3R0b20gOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodFRv
cDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAg
ICAgICByZXR1cm4gZmxpcFggPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21MZWZ0IDog
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9tUmlnaHQ7CisgICAgY2FzZSBNZWRpYVNhbXBs
ZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDoKKyAgICAgICAgcmV0dXJuIGZsaXBYID8gSW1hZ2VPcmll
bnRhdGlvbjo6T3JpZ2luTGVmdFRvcCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkxlZnRCb3R0
b207CisgICAgfQorfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSwgVmlkZW9TYW1wbGVN
ZXRhZGF0YSBtZXRhZGF0YSkKIHsKICAgICBhdXRvIHByZXNlbnRhdGlvblRpbWUgPSBNb25vdG9u
aWNUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpOwpAQCAtMTAwMyw2ICsxMDE5LDIxIEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dChHcmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmlt
YWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCB0cmFuc2Zvcm1lZERlc3RSZWN0LCBpbWFnZVJlY3QpOwog
fQogCitzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVyVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQoreworICAg
IGlmIChtX2Rpc3BsYXlNb2RlID09IE5vbmUgfHwgIW1ldGFEYXRhQXZhaWxhYmxlKCkpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKG1fZGlzcGxheU1vZGUgPT0gUGFpbnRJ
dEJsYWNrKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghbV9pbWFnZVBh
aW50ZXIubWVkaWFTYW1wbGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgQ01T
YW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUt
PnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxlQnVmZmVyOworICAgIENWUGl4ZWxCdWZm
ZXJSZWYgcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNN
U2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7CisgICAgaWYgKCFwaXhl
bEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gTWVkaWFQ
bGF5ZXJWaWRlb0ZyYW1lIHsgUmV0YWluUHRyIHsgcGl4ZWxCdWZmZXIgfSwgdmlkZW9PcmllbnRh
dGlvbigqbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUpIH07Cit9CisKIERlc3RpbmF0aW9uQ29s
b3JTcGFjZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNvbG9yU3BhY2Uo
KQogewogICAgIHVwZGF0ZUN1cnJlbnRGcmFtZUltYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbQppbmRleCAzMmRiNmVlODJjY2QwMTkzOGI0MDdhNmI2ZThkZWNmODU1MmJjODE5
Li45NTdiYTZiYTkwYmIwMThiYjg4OGQwMmM1ZGM4Mzc0NmI2NTNkZmFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBo
aWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTc5MSw4ICs3OTEsOCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEU6OnBsYXRmb3JtUmVsZWFzZVRocmVhZFJlc291cmNlcygpCiAjaWYgRU5BQkxF
KFZJREVPKQogYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRp
YShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdD
R0xlbnVtIG91dHB1dFRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3Jt
YXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhh
LCBib29sIGZsaXBZKQogewotICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBwbGF5ZXIucGl4ZWxCdWZm
ZXJGb3JDdXJyZW50VGltZSgpOwotICAgIGlmICghcGl4ZWxCdWZmZXIpCisgICAgYXV0byB2aWRl
b0ZyYW1lID0gcGxheWVyLnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOworICAgIGlmICghdmlk
ZW9GcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYXV0byBjb250ZXh0Q1YgPSBh
c0NWKCk7CkBAIC04MDEsNyArODAxLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpj
b3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUcKIAogICAg
IFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5VU0VEKG91
dHB1dFRhcmdldCwgb3V0cHV0VGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJE
KTsKLSAgICByZXR1cm4gY29udGV4dENWLT5jb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUocGl4ZWxC
dWZmZXIuZ2V0KCksIG91dHB1dFRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0
LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKTsKKyAgICByZXR1cm4gY29u
dGV4dENWLT5jb3B5VmlkZW9GcmFtZVRvVGV4dHVyZSgqdmlkZW9GcmFtZSwgb3V0cHV0VGV4dHVy
ZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdM
OjpGbGlwWShmbGlwWSkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaAppbmRleCAxZDYx
NWE3ZjBlZjExMzIzMjY4MDJlNTY0YTlhZDUyNTI3ZTAzMDY3Li42ZDEwOWQ2NDUwYTAxNWUyN2Ri
Mzk0OWFkODM4YzY4NGJmZDFkNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVi5oCkBAIC0yOSw5ICsyOSw4
IEBACiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTC5oIgogCi10eXBlZGVmIHN0cnVjdCBf
X0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVmOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBNZWRpYVBsYXllclZpZGVvRnJhbWU7CiAKIC8vIEludGVyZmFjZSB0byBpbnRlcmFjdCB3aXRo
IENWIG9iamVjdHMgYW5kIEdyYXBoaWNzQ29udGV4dEdMLgogY2xhc3MgR3JhcGhpY3NDb250ZXh0
R0xDViB7CkBAIC00MSw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBGbGlwWSA9IEdyYXBo
aWNzQ29udGV4dEdMOjpGbGlwWTsKICAgICAvLyBDb3BpZXMgQ1YgcGl4ZWwgYnVmZmVyIHRvIEdy
YXBoaWNzQ29udGV4dEdMIFRFWFRVUkVfMkQgdGV4dHVyZSBvZiB0aGUgc2FtZSBzaXplIGFzIHRo
ZSBwaXhlbCBidWZmZXIuCiAgICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCi0gICAgdmly
dHVhbCBib29sIGNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmLCBQbGF0
Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVy
bmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZKSA9IDA7Cisg
ICAgdmlydHVhbCBib29sIGNvcHlWaWRlb0ZyYW1lVG9UZXh0dXJlKE1lZGlhUGxheWVyVmlkZW9G
cmFtZSYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NH
TGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxp
cFkpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCmluZGV4IDI0
OTk1YTNlZWVkYmVjOTQ4NWJjMWM2YTY5YjYyNWQwYmU3YTg5OTMuLmZiNDRlYTU2Mzk5MmQ4ZWE3
YTUxMDY1NzJjYmFlMzA5NjJlY2U2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNw
cApAQCAtNDksNiArNDksOCBAQCBzdGF0aWMgY29uc3RleHByIGF1dG8gc195dXZWZXJ0ZXhTaGFk
ZXJUZXh0dXJlMkQgewogICAgICJ1bmlmb3JtIHZlYzIgdV95VGV4dHVyZVNpemU7IgogICAgICJ1
bmlmb3JtIHZlYzIgdV91dlRleHR1cmVTaXplOyIKICAgICAidW5pZm9ybSBpbnQgdV9mbGlwWTsi
CisgICAgInVuaWZvcm0gaW50IHVfZmxpcFg7IgorICAgICJ1bmlmb3JtIGludCB1X3N3YXBYWTsi
CiAgICAgInZhcnlpbmcgdmVjMiB2X3lUZXh0dXJlQ29vcmRpbmF0ZTsiCiAgICAgInZhcnlpbmcg
dmVjMiB2X3V2VGV4dHVyZUNvb3JkaW5hdGU7IgogICAgICJ2b2lkIG1haW4oKSIKQEAgLTU3LDYg
KzU5LDEwIEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzX3l1dlZlcnRleFNoYWRlclRleHR1cmUy
RCB7CiAgICAgIiAgICB2ZWMyIG5vcm1hbGl6ZWRQb3NpdGlvbiA9IGFfcG9zaXRpb24gKiAuNSAr
IC41OyIKICAgICAiICAgIGlmICh1X2ZsaXBZID09IDEpIgogICAgICIgICAgICAgIG5vcm1hbGl6
ZWRQb3NpdGlvbi55ID0gMS4wIC0gbm9ybWFsaXplZFBvc2l0aW9uLnk7IgorICAgICIgICAgaWYg
KHVfZmxpcFggPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnggPSAxLjAg
LSBub3JtYWxpemVkUG9zaXRpb24ueDsiCisgICAgIiAgICBpZiAodV9zd2FwWFkgPT0gMSkiCisg
ICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnh5ID0gbm9ybWFsaXplZFBvc2l0aW9uLnl4
OyIKICAgICAiICAgIHZfeVRleHR1cmVDb29yZGluYXRlID0gbm9ybWFsaXplZFBvc2l0aW9uOyIK
ICAgICAiICAgIHZfdXZUZXh0dXJlQ29vcmRpbmF0ZSA9IG5vcm1hbGl6ZWRQb3NpdGlvbjsiCiAg
ICAgIn0iX3MKQEAgLTY3LDYgKzczLDggQEAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVy
dGV4U2hhZGVyVGV4dHVyZVJlY3RhbmdsZSB7CiAgICAgInVuaWZvcm0gdmVjMiB1X3lUZXh0dXJl
U2l6ZTsiCiAgICAgInVuaWZvcm0gdmVjMiB1X3V2VGV4dHVyZVNpemU7IgogICAgICJ1bmlmb3Jt
IGludCB1X2ZsaXBZOyIKKyAgICAidW5pZm9ybSBpbnQgdV9mbGlwWDsiCisgICAgInVuaWZvcm0g
aW50IHVfc3dhcFhZOyIKICAgICAidmFyeWluZyB2ZWMyIHZfeVRleHR1cmVDb29yZGluYXRlOyIK
ICAgICAidmFyeWluZyB2ZWMyIHZfdXZUZXh0dXJlQ29vcmRpbmF0ZTsiCiAgICAgInZvaWQgbWFp
bigpIgpAQCAtNzUsNiArODMsMTAgQEAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVydGV4
U2hhZGVyVGV4dHVyZVJlY3RhbmdsZSB7CiAgICAgIiAgICB2ZWMyIG5vcm1hbGl6ZWRQb3NpdGlv
biA9IGFfcG9zaXRpb24gKiAuNSArIC41OyIKICAgICAiICAgIGlmICh1X2ZsaXBZID09IDEpIgog
ICAgICIgICAgICAgIG5vcm1hbGl6ZWRQb3NpdGlvbi55ID0gMS4wIC0gbm9ybWFsaXplZFBvc2l0
aW9uLnk7IgorICAgICIgICAgaWYgKHVfZmxpcFggPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFs
aXplZFBvc2l0aW9uLnggPSAxLjAgLSBub3JtYWxpemVkUG9zaXRpb24ueDsiCisgICAgIiAgICBp
ZiAodV9zd2FwWFkgPT0gMSkiCisgICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnh5ID0g
bm9ybWFsaXplZFBvc2l0aW9uLnl4OyIKICAgICAiICAgIHZfeVRleHR1cmVDb29yZGluYXRlID0g
bm9ybWFsaXplZFBvc2l0aW9uICogdV95VGV4dHVyZVNpemU7IgogICAgICIgICAgdl91dlRleHR1
cmVDb29yZGluYXRlID0gbm9ybWFsaXplZFBvc2l0aW9uICogdV91dlRleHR1cmVTaXplOyIKICAg
ICAifSJfcwpAQCAtNTQ4LDYgKzU2MCw4IEBAIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6R3Jh
cGhpY3NDb250ZXh0R0xDVkNvY29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmIG93bmVyCiAgICAg
bV91dlRleHR1cmVVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJv
Z3JhbSwgInVfdXZUZXh0dXJlIik7CiAgICAgbV9jb2xvck1hdHJpeFVuaWZvcm1Mb2NhdGlvbiA9
IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9ncmFtLCAidV9jb2xvck1hdHJpeCIpOwogICAg
IG1feXV2RmxpcFlVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJv
Z3JhbSwgInVfZmxpcFkiKTsKKyAgICBtX3l1dkZsaXBYVW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0
VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1X2ZsaXBYIik7CisgICAgbV95dXZTd2FwWFlV
bmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfc3dh
cFhZIik7CiAgICAgbV95VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3Jt
TG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfeVRleHR1cmVTaXplIik7CiAgICAgbV91dlRleHR1cmVT
aXplVW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxvY2F0aW9uKHl1dlByb2dyYW0sICJ1
X3V2VGV4dHVyZVNpemUiKTsKICAgICBtX3l1dlBvc2l0aW9uQXR0cmlidXRlTG9jYXRpb24gPSBH
TF9HZXRBdHRyaWJMb2NhdGlvbih5dXZQcm9ncmFtLCAiYV9wb3NpdGlvbiIpOwpAQCAtNTU5LDgg
KzU3Myw5IEBAIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDVkNv
Y29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmIG93bmVyCiAgICAgR0xfQmluZEZyYW1lYnVmZmVy
KEdMX0ZSQU1FQlVGRkVSLCBtX2ZyYW1lYnVmZmVyKTsKIH0KIAotYm9vbCBHcmFwaGljc0NvbnRl
eHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGlt
YWdlLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdMaW50IGxldmVsLCBHTGVudW0g
aW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBGbGlwWSBmbGlwWSkK
K2Jvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5VmlkZW9GcmFtZVRvVGV4dHVyZShN
ZWRpYVBsYXllclZpZGVvRnJhbWUmIHZpZGVvRnJhbWUsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0
VGV4dHVyZSwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xlbnVtIGZvcm1h
dCwgR0xlbnVtIHR5cGUsIEZsaXBZIHVucGFja0ZsaXBZKQogeworICAgIGF1dG8gaW1hZ2UgPSB2
aWRlb0ZyYW1lLnBpeGVsQnVmZmVyKCk7CiAgICAgLy8gRklYTUU6IFRoaXMgY3VycmVudGx5IG9u
bHkgc3VwcG9ydHMgJzQyMHYnIGFuZCAnNDIwZicgcGl4ZWwgZm9ybWF0cy4gSW52ZXN0aWdhdGUg
c3VwcG9ydGluZyBtb3JlIHBpeGVsIGZvcm1hdHMuCiAgICAgT1NUeXBlIHBpeGVsRm9ybWF0ID0g
Q1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShpbWFnZSk7CiAgICAgaWYgKHBpeGVsRm9y
bWF0ICE9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJWaWRlb1JhbmdlIC8v
IE5PTElOVApAQCAtNTc3LDkgKzU5MiwxMCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2Nv
YTo6Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2UsCiAgICAg
aWYgKCFzdXJmYWNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBhdXRvIG9yaWVudGF0
aW9uID0gdmlkZW9GcmFtZS5vcmllbnRhdGlvbigpOwogICAgIGF1dG8gbmV3U3VyZmFjZVNlZWQg
PSBJT1N1cmZhY2VHZXRTZWVkKHN1cmZhY2UpOwotICAgIGlmIChmbGlwWSA9PSBtX2xhc3RGbGlw
WQotICAgICAgICAmJiBzdXJmYWNlID09IG1fbGFzdFN1cmZhY2UKKyAgICBpZiAoSW1hZ2VPcmll
bnRhdGlvbjo6T3JpZW50YXRpb24ob3JpZW50YXRpb24pID09IEltYWdlT3JpZW50YXRpb246Ok9y
aWVudGF0aW9uKG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbikKKyAgICAgICAgJiYgdW5wYWNrRmxp
cFkgPT0gbV9sYXN0VW5wYWNrRmxpcFkKICAgICAgICAgJiYgbmV3U3VyZmFjZVNlZWQgPT0gbV9s
YXN0U3VyZmFjZVNlZWQKICAgICAgICAgJiYgbGFzdFRleHR1cmVTZWVkKG91dHB1dFRleHR1cmUp
ID09IG1fb3duZXIudGV4dHVyZVNlZWQob3V0cHV0VGV4dHVyZSkpIHsKICAgICAgICAgLy8gSWYg
dGhlIHRleHR1cmUgaGFzbid0IGJlZW4gbW9kaWZpZWQgc2luY2UgdGhlIGxhc3QgdGltZSB3ZSBj
b3BpZWQgdG8gaXQsIGFuZCB0aGUKQEAgLTU4OSw4ICs2MDUsNjAgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVm
IGltYWdlLAogICAgIGlmICghbV9jb250ZXh0IHx8ICFHcmFwaGljc0NvbnRleHRHTENvY29hOjpt
YWtlQ3VycmVudChtX2Rpc3BsYXksIG1fY29udGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChpbWFnZSk7Ci0gICAg
c2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoaW1hZ2UpOworICAgIC8vIENv
bXB1dGUgdHJhbnNmb3JtIHRoYXQgdW5kb2VzIHRoZSBgb3JpZW50YXRpb25gLCBlLmcuIG1vdmVz
IHRoZSBvcmlnaW4gdG8gdG9wIGxlZnQuCisgICAgLy8gRXZlbiBudW1iZXIgb2Ygb3BlcmF0aW9u
cyAoZmxpcFgsIGZsaXBZLCBzd2FwWFkpIG1lYW5zIGEgcm90YXRpb24uCisgICAgLy8gT2RkIG51
bWJlciBvZiBvcGVyYXRpb25zIG1lYW5zIGEgcm90YXRpb24gYW5kIGEgZmxpcC4KKyAgICAvLyBg
ZmxpcFhgIHN3aXRjaGVzIGJldHdlZW4gTGVmdCBhbmQgUmlnaHQuIGBmbGlwWWAgc3dpdGNoZXMg
YmV0d2VlbiBUb3AgYW5kIEJvdHRvbS4KKyAgICAvLyBgc3dhcFhZYHN3aXRjaGVzIExlZnRUb3Ag
dG8gVG9wTGVmdC4KKyAgICAvLyBHb2FsIGlzIHRvIGdldCB0byBPcmlnaW5Ub3BMZWZ0LgorICAg
IGJvb2wgZmxpcFkgPSBmYWxzZTsgLy8gRmxpcCB5IGNvb3JkaW5hdGUsIGkuZS4gbWlycm9yZWQg
YWxvbmcgdGhlIHgtYXhpcy4KKyAgICBib29sIGZsaXBYID0gZmFsc2U7IC8vIEZsaXAgeCBjb29y
ZGluYXRlLCBpLmUuIG1pcnJvcmVkIGFsb25nIHRoZSB5LWF4aXMuCisgICAgYm9vbCBzd2FwWFkg
PSBmYWxzZTsKKyAgICBzd2l0Y2ggKHZpZGVvRnJhbWUub3JpZW50YXRpb24oKSkgeworICAgIGNh
c2UgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlOgorICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luVG9wTGVmdDoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0
aW9uOjpPcmlnaW5Ub3BSaWdodDoKKyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0OgorICAgICAg
ICAvLyBSb3RhdGVkIDE4MCBkZWdyZWVzLgorICAgICAgICBmbGlwWSA9IHRydWU7CisgICAgICAg
IGZsaXBYID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9u
OjpPcmlnaW5Cb3R0b21MZWZ0OgorICAgICAgICAvLyBNaXJyb3JlZCBhbG9uZyB0aGUgeC1heGlz
LgorICAgICAgICBmbGlwWSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VP
cmllbnRhdGlvbjo6T3JpZ2luTGVmdFRvcDoKKyAgICAgICAgLy8gTWlycm9yZWQgYWxvbmcgeC1h
eGlzIGFuZCByb3RhdGVkIDI3MCBkZWdyZWVzIGNsb2NrLXdpc2UuCisgICAgICAgIHN3YXBYWSA9
IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2lu
UmlnaHRUb3A6CisgICAgICAgIC8vIFJvdGF0ZWQgOTAgZGVncmVlcyBjbG9jay13aXNlLgorICAg
ICAgICBmbGlwWCA9IHRydWU7CisgICAgICAgIHN3YXBYWSA9IHRydWU7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRCb3R0b206CisgICAgICAg
IC8vIE1pcnJvciBhbG9uZyB4LWF4aXMgYW5kIHJvdGF0ZWQgOTAgZGVncmVlcyBjbG9ja3dpc2Uu
CisgICAgICAgIGZsaXBZID0gdHJ1ZTsKKyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBz
d2FwWFkgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEltYWdlT3JpZW50YXRpb246
Ok9yaWdpbkxlZnRCb3R0b206CisgICAgICAgIC8vIFJvdGF0ZWQgMjcwIGRlZ3JlZXMgY2xvY2st
d2lzZS4KKyAgICAgICAgZmxpcFkgPSB0cnVlOworICAgICAgICBzd2FwWFkgPSB0cnVlOworICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKHVucGFja0ZsaXBZID09IEZsaXBZOjpZZXMpCisg
ICAgICAgIGZsaXBZID0gIWZsaXBZOworCisgICAgc2l6ZV90IHNvdXJjZVdpZHRoID0gQ1ZQaXhl
bEJ1ZmZlckdldFdpZHRoKGltYWdlKTsKKyAgICBzaXplX3Qgc291cmNlSGVpZ2h0ID0gQ1ZQaXhl
bEJ1ZmZlckdldEhlaWdodChpbWFnZSk7CisKKyAgICBzaXplX3Qgd2lkdGggPSBzd2FwWFkgPyBz
b3VyY2VIZWlnaHQgOiBzb3VyY2VXaWR0aDsKKyAgICBzaXplX3QgaGVpZ2h0ID0gc3dhcFhZID8g
c291cmNlV2lkdGggOiBzb3VyY2VIZWlnaHQ7CiAKICAgICBHTF9WaWV3cG9ydCgwLCAwLCB3aWR0
aCwgaGVpZ2h0KTsKIApAQCAtNjY0LDcgKzczMiw5IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xD
VkNvY29hOjpjb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZSwK
ICAgICAvLyBDb25maWd1cmUgdGhlIGRyYXdpbmcgcGFyYW1ldGVycy4KICAgICBHTF9Vbmlmb3Jt
MWkobV95VGV4dHVyZVVuaWZvcm1Mb2NhdGlvbiwgMCk7CiAgICAgR0xfVW5pZm9ybTFpKG1fdXZU
ZXh0dXJlVW5pZm9ybUxvY2F0aW9uLCAxKTsKLSAgICBHTF9Vbmlmb3JtMWkobV95dXZGbGlwWVVu
aWZvcm1Mb2NhdGlvbiwgZmxpcFkgPT0gRmxpcFk6OlllcyA/IDEgOiAwKTsKKyAgICBHTF9Vbmlm
b3JtMWkobV95dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiwgZmxpcFkgPyAxIDogMCk7CisgICAgR0xf
VW5pZm9ybTFpKG1feXV2RmxpcFhVbmlmb3JtTG9jYXRpb24sIGZsaXBYID8gMSA6IDApOworICAg
IEdMX1VuaWZvcm0xaShtX3l1dlN3YXBYWVVuaWZvcm1Mb2NhdGlvbiwgc3dhcFhZID8gMSA6IDAp
OwogICAgIEdMX1VuaWZvcm0yZihtX3lUZXh0dXJlU2l6ZVVuaWZvcm1Mb2NhdGlvbiwgeVBsYW5l
V2lkdGgsIHlQbGFuZUhlaWdodCk7CiAgICAgR0xfVW5pZm9ybTJmKG1fdXZUZXh0dXJlU2l6ZVVu
aWZvcm1Mb2NhdGlvbiwgdXZQbGFuZVdpZHRoLCB1dlBsYW5lSGVpZ2h0KTsKIApAQCAtNjc2LDEw
ICs3NDYsMTEgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZl
clRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLAogICAgIC8vIERvIHRoZSBhY3R1YWwg
ZHJhd2luZy4KICAgICBHTF9EcmF3QXJyYXlzKEdMX1RSSUFOR0xFUywgMCwgNik7CiAKKyAgICBt
X2xhc3RVbnBhY2tGbGlwWSA9IHVucGFja0ZsaXBZOwogICAgIG1fbGFzdFN1cmZhY2UgPSBzdXJm
YWNlOwogICAgIG1fbGFzdFN1cmZhY2VTZWVkID0gbmV3U3VyZmFjZVNlZWQ7CisgICAgbV9sYXN0
U3VyZmFjZU9yaWVudGF0aW9uID0gb3JpZW50YXRpb247CiAgICAgbV9sYXN0VGV4dHVyZVNlZWQu
c2V0KG91dHB1dFRleHR1cmUsIG1fb3duZXIudGV4dHVyZVNlZWQob3V0cHV0VGV4dHVyZSkpOwot
ICAgIG1fbGFzdEZsaXBZID0gZmxpcFk7CiAgICAgYXV0b0NsZWFyVGV4dHVyZU9uRXJyb3IucmVs
ZWFzZSgpOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaApp
bmRleCBjNGUzOTYwYjZkNzA4MGU0YzM5NDBiOGFmN2FkOWRjZTYyNDYyNzBmLi4xZThjYWRkNWVl
OGJjNzUxMWJkYzY5NjM1NGQzMzVhZjk1M2FiOTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuaApAQCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJHTCkgJiYgRU5BQkxFKFZJREVP
KSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xDVi5o
IgotCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNp
bmNsdWRlIDx3dGYvVW5zYWZlUG9pbnRlci5oPgogCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoK
IAogICAgIH5HcmFwaGljc0NvbnRleHRHTENWQ29jb2EoKSBmaW5hbDsKIAotICAgIGJvb2wgY29w
eVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYsIFBsYXRmb3JtR0xPYmplY3Qg
b3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdD
R0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpIGZpbmFsOworICAgIGJvb2wgY29w
eVZpZGVvRnJhbWVUb1RleHR1cmUoTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lJiwgUGxhdGZvcm1HTE9i
amVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1h
dCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBGbGlwWSkgZmluYWw7CiAKIHByaXZh
dGU6CiAgICAgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hKEdyYXBoaWNzQ29udGV4dEdMQ29jb2Em
KTsKQEAgLTY0LDEyICs2NCwxNSBAQCBwcml2YXRlOgogICAgIEdDR0xpbnQgbV95VGV4dHVyZVVu
aWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBtX3V2VGV4dHVyZVVuaWZvcm1Mb2Nh
dGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBtX3l1dkZsaXBZVW5pZm9ybUxvY2F0aW9uIHsgLTEg
fTsKKyAgICBHQ0dMaW50IG1feXV2RmxpcFhVbmlmb3JtTG9jYXRpb24geyAtMSB9OworICAgIEdD
R0xpbnQgbV95dXZTd2FwWFlVbmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV9j
b2xvck1hdHJpeFVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07CiAgICAgR0NHTGludCBtX3l1dlBvc2l0
aW9uQXR0cmlidXRlTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV95VGV4dHVyZVNpemVV
bmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV91dlRleHR1cmVTaXplVW5pZm9y
bUxvY2F0aW9uIHsgLTEgfTsKIAotICAgIEZsaXBZIG1fbGFzdEZsaXBZIHsgRmxpcFk6Ok5vIH07
CisgICAgRmxpcFkgbV9sYXN0VW5wYWNrRmxpcFkgeyBGbGlwWTo6Tm8gfTsKKyAgICBJbWFnZU9y
aWVudGF0aW9uIG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbjsKICAgICBVbnNhZmVQb2ludGVyPElP
U3VyZmFjZVJlZj4gbV9sYXN0U3VyZmFjZTsKICAgICB1aW50MzJfdCBtX2xhc3RTdXJmYWNlU2Vl
ZCB7IDAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCAzNzA2NjczZTlmMDYyMWFhMWE1MzgzY2Yz
YjBlMmY1Y2Y5MDUwMjE5Li42MGM1YThjZDZkNTBlOTAwZTRjMWViZDFmZDhlMmRkYWU4YjZkYjlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmNwcApAQCAtNTA5LDYgKzUwOSw3IEBAIHZvaWQgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pCiAgICAgICAg
IG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRl
RG93bjsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
Y3BwCmluZGV4IDA3MzNmM2MxNzg2ZTFjNTcwYmM5ZTNhNGY0ZDFiOGU3MjdkMTdjNjYuLmZmMTMz
OTdlNjQ0MTkxZTQwMTM3OWY1Yzg4YTA0NjYxZjcxMTcwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMLmNwcApAQCAtMjYwLDE4ICsyNjAsMTggQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWUKICAg
ICBVTlVTRURfVkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgQVNTRVJUX1VOVVNFRCh0
YXJnZXQsIHRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7CiAKLSAgICBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXI7Ci0gICAgYXV0byBnZXRQaXhl
bEJ1ZmZlciA9IFsmXSB7CisgICAgc3RkOjpvcHRpb25hbDxNZWRpYVBsYXllclZpZGVvRnJhbWU+
IHZpZGVvRnJhbWU7CisgICAgYXV0byBnZXRWaWRlb0ZyYW1lID0gWyZdIHsKICAgICAgICAgaWYg
KCFtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgaWYgKGF1dG8gbWVkaWFQbGF5ZXIgPSBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mt
PnJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkubWVkaWFQbGF5ZXIobWVkaWFQbGF5ZXJJ
ZGVudGlmaWVyKSkKLSAgICAgICAgICAgIHBpeGVsQnVmZmVyID0gbWVkaWFQbGF5ZXItPnBpeGVs
QnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKKyAgICAgICAgICAgIHZpZGVvRnJhbWUgPSBtZWRpYVBs
YXllci0+dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgfTsKIAotICAgIGNhbGxPbk1h
aW5SdW5Mb29wQW5kV2FpdChXVEZNb3ZlKGdldFBpeGVsQnVmZmVyKSk7CisgICAgY2FsbE9uTWFp
blJ1bkxvb3BBbmRXYWl0KFdURk1vdmUoZ2V0VmlkZW9GcmFtZSkpOwogCi0gICAgaWYgKCFwaXhl
bEJ1ZmZlcikgeworICAgIGlmICghdmlkZW9GcmFtZSkgewogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yODIsNyArMjgyLDcgQEAg
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNv
bXBsZXRpb25IYW5kbGVyKGNvbnRleHRDVi0+Y29weVBpeGVsQnVmZmVyVG9UZXh0dXJlKHBpeGVs
QnVmZmVyLmdldCgpLCB0ZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlw
ZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSkpOworICAgIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnRleHRDVi0+Y29weVZpZGVvRnJhbWVUb1RleHR1cmUoKnZpZGVvRnJhbWUsIHRleHR1
cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRH
TDo6RmxpcFkoZmxpcFkpKSk7CiAjZWxzZQogICAgIFVOVVNFRF9WQVJJQUJMRShtZWRpYVBsYXll
cklkZW50aWZpZXIpOwogICAgIFVOVVNFRF9WQVJJQUJMRSh0ZXh0dXJlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcAppbmRleCA4ODEwOGNiYzUzM2MxMGM3NWUzNzBiZmNjODk4MDBhNTNjNjcyOWFkLi4xZjAw
MWE1NDgwNDFlOGU3ZGY4NmI2OGJiMjczZTQ0ODNiNzFjNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
CkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjppbnZhbGlk
YXRlKCkKICAgICB9CiAgICAgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0ID0geyB9OwogI2lm
IFVTRShBVkZPVU5EQVRJT04pCi0gICAgbV9waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lID0gbnVs
bHB0cjsKKyAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IHN0ZDo6bnVsbG9wdDsKICNl
bmRpZgogfQogCkBAIC04NjgsNiArODY4LDIxIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6Y3VycmVudFRpbWVDaGFuZ2VkKGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW1lKQogICAgIG1f
d2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6Q3VycmVudFRpbWVDaGFuZ2VkKG1lZGlhVGltZSwgTW9ub3RvbmljVGltZTo6bm93KCks
ICFtZWRpYVBsYXllclBhdXNlZE9yU3RhbGxlZCgpKSwgbV9pZCk7CiB9CiAKK3ZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVv
RnJhbWU+JiYsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiByZXN1bHQ7CisgICAgYm9vbCBjaGFu
Z2VkID0gZmFsc2U7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVv
RnJhbWU+IHZpZGVvRnJhbWU7CisgICAgaWYgKG1fcGxheWVyKQorICAgICAgICB2aWRlb0ZyYW1l
ID0gbV9wbGF5ZXItPnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOworICAgIGlmICghKG1fdmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lID09IHZpZGVvRnJhbWUpKSB7CisgICAgICAgIG1fdmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lID0gdmlkZW9GcmFtZTsKKyAgICAgICAgY2hhbmdlZCA9IHRydWU7
CisgICAgICAgIHJlc3VsdCA9IFdURk1vdmUodmlkZW9GcmFtZSk7CisgICAgfQorICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSwgY2hhbmdlZCk7Cit9CisKIHZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6dXBkYXRlQ2FjaGVkU3RhdGUoYm9vbCBmb3JjZUN1cnJlbnRUaW1l
VXBkYXRlKQogewogICAgIGlmICghbV9vYnNlcnZpbmdUaW1lQ2hhbmdlcyB8fCBmb3JjZUN1cnJl
bnRUaW1lVXBkYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggMzJmM2E0NmFhMGYwOWIxM2IwMjRlNDE2
NDA3OGE1ZGFkZGVkYzU0ZS4uZTEzOTQ2ZjdhN2MzMzFlNzAzZDM0NmE1OTMwZDEwNGEzMDI3ZGYw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0zMjAsOSArMzIwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPFdURjo6TWFjaFNlbmRSaWdodD4mJiwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNw
YWNlKT4mJik7CiAgICAgdm9pZCBjb2xvclNwYWNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlKT4mJik7CiAjZW5kaWYKLSNpZiBVU0UoQVZGT1VO
REFUSU9OKQotICAgIHZvaWQgcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+PiYmKT4mJik7Ci0jZW5kaWYKKyAgICB2b2lkIHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlm
Q2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVk
aWFQbGF5ZXJWaWRlb0ZyYW1lPiYmLCBib29sKT4mJik7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgZmluYWwgeyByZXR1
cm4gbV9sb2dnZXI7IH0KQEAgLTM3OCw5ICszNzYsNyBAQCBwcml2YXRlOgogICAgIFNjb3BlZFJl
bmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0OwogCiAg
ICAgYm9vbCBtX29ic2VydmluZ1RpbWVDaGFuZ2VzIHsgZmFsc2UgfTsKLSNpZiBVU0UoQVZGT1VO
REFUSU9OKQotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyRm9y
Q3VycmVudFRpbWU7Ci0jZW5kaWYKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxh
eWVyVmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiAjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dlcjsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCAzOWM4NzI5YjI3MzllMTM2NDRiMzFhYTgw
ZGJhODBkNGEzMzBjOGFlLi5lNTM5YjQ5MmY2ZmMwNTU1NzQ0ZTkwNTg0NjQzN2Q0ODhkNTM4NDMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTI2LDkgKzEyNiw3IEBA
IG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAg
TmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIC0+IChzdGQ6Om9wdGlvbmFsPE1hY2hTZW5kUmln
aHQ+IHNlbmRSaWdodCwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2Up
IFN5bmNocm9ub3VzCiAgICAgQ29sb3JTcGFjZSgpIC0+IChXZWJDb3JlOjpEZXN0aW5hdGlvbkNv
bG9yU3BhY2UgY29sb3JTcGFjZSkgU3luY2hyb25vdXMKICNlbmRpZgotI2lmIFVTRShBVkZPVU5E
QVRJT04pCi0gICAgUGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpIC0+IChzdGQ6
Om9wdGlvbmFsPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPj4gcGl4ZWxCdWZmZXIpIFN5bmNo
cm9ub3VzCi0jZW5kaWYKKyAgICBWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSAt
PiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVBsYXllclZpZGVvRnJhbWU+IHZpZGVvRnJh
bWUsIGJvb2wgY2hhbmdlZCkgU3luY2hyb25vdXMKIAogICAgIFBsYXlBdEhvc3RUaW1lKE1vbm90
b25pY1RpbWUgdGltZSkKICAgICBQYXVzZUF0SG9zdFRpbWUoTW9ub3RvbmljVGltZSB0aW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2NvY29hL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9j
b2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KaW5kZXggYzZiYmEzYWEyYjRlNTVm
YWVmYjkzM2JiZTJlNjM1OWQ3M2Y2MzE5OC4uZmJlMTBiYzMwNWQyZDJlMTVhMjRhN2NlZTQ1MDdl
YTE3NjczNzQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2Nv
Y29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCkBAIC0x
MjcsMjEgKzEyNyw2IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Y29sb3JTcGFjZShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRlc3RpbmF0CiAgICAgY29tcGxldGlvbkhh
bmRsZXIobV9wbGF5ZXItPmNvbG9yU3BhY2UoKSk7CiB9CiAKLSNpZiBVU0UoQVZGT1VOREFUSU9O
KQotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1l
SWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIHN0ZDo6
b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+PiByZXN1bHQ7Ci0gICAgUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyOwotICAgIGlmIChtX3BsYXllcikKLSAg
ICAgICAgcGl4ZWxCdWZmZXIgPSBtX3BsYXllci0+cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgp
OwotICAgIGlmIChtX3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUgIT0gcGl4ZWxCdWZmZXIpIHsK
LSAgICAgICAgcmVzdWx0ID0gcGl4ZWxCdWZmZXI7Ci0gICAgICAgIG1fcGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSA9IFdURk1vdmUocGl4ZWxCdWZmZXIpOwotICAgIH0KLSAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShDT0NPQSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCA5YTY0Mjk0Mzc4NDJmNDNkYjZkYTFj
MjUwMTFlZDRhNTQ0Y2JmMzYxLi5iNTM5MmUwNGQ5ZmY5NmRiZjExMDgxNGE4MGEwNGE2YjZlZjI4
ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0xMDAwLDEzICsxMDAwLDE4
IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0
Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICBy
ZXR1cm4gZmFsc2U7CiB9Ci0jZWxpZiAhUExBVEZPUk0oQ09DT0EpCi1SZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpwaXhlbEJ1ZmZlckZvckN1cnJl
bnRUaW1lKCkKKyNlbmRpZgorCitzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlk
ZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiByZXN1bHQ7CisgICAg
Ym9vbCBjaGFuZ2VkID0gZmFsc2U7CisgICAgaWYgKCFjb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlm
Q2hhbmdlZCgpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VmlkZW9GcmFtZUZv
ckN1cnJlbnRUaW1lSWZDaGFuZ2VkOjpSZXBseShyZXN1bHQsIGNoYW5nZWQpLCBtX2lkKSkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoY2hhbmdlZCkKKyAgICAgICAgbV92
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBXVEZNb3ZlKHJlc3VsdCk7CisgICAgcmV0dXJuIG1f
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwogfQotI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oQ09D
T0EpCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bmF0aXZl
SW1hZ2VGb3JDdXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCBlYjMy
NjI0MDRjNmY5MWQ4ZDI2N2EzODUxNjQ1MjI3YTA5MDM3OWU4Li5lYTJhMDY2YjAwNjM5M2FkNmRl
MjM1YTVhMDkyNmY5M2NlNjc2MTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTI5
Miw5ICsyOTIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRl
eHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
ZmluYWw7CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJl
VG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdM
T2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwg
Ym9vbCwgYm9vbCkgZmluYWw7Ci0jZWxzZQotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAjZW5kaWYKKyAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6Ok1lZGlhUGxheWVyVmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJl
bnRUaW1lKCkgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBuYXRpdmVJ
bWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UoKSBmaW5hbDsKIApAQCAtNDYxLDkgKzQ2MCw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JLZXkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90aW1lSXNQ
cm9ncmVzc2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0
ZWQgeyBmYWxzZSB9OwotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgUmV0YWluUHRyPENWUGl4
ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZTsKLSNlbmRpZgorICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFQbGF5ZXJWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlckdhdGhlcmVkV2l0aFZpZGVvRnJhbWVNZXRhZGF0YTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4gbV9w
aXhlbEJ1ZmZlckNvbmZvcm1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUNvY29hLm1tCmluZGV4IGMwYjc3NmRjNzczYjE3ZmE0MzBjZDU4OTY4YjAwN2IzMWJkNzZh
OGQuLjQxZGJjN2E1M2I3MTc3NjJlNDVhMjA5ZTBmODQ3MGUxMTVmMTEwMWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbQpAQCAtOTQsMTggKzk0LDYg
QEAgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6Y29sb3JTcGFjZSgpCiAgICAgcmV0dXJuIGNvbG9yU3BhY2U7CiB9CiAKLSNpZiBVU0UoQVZG
T1VOREFUSU9OKQotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCi17Ci0gICAgc3RkOjpvcHRpb25h
bDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHJlc3VsdDsKLSAgICBpZiAoIWNvbm5lY3Rp
b24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UGl4ZWxCdWZm
ZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6UGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZUlmQ2hhbmdlZDo6UmVwbHkocmVzdWx0KSwg
bV9pZCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGlmIChyZXN1bHQpCi0gICAgICAg
IG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSA9IFdURk1vdmUoKnJlc3VsdCk7Ci0gICAgcmV0
dXJuIG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZTsKLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgUExBVEZPUk0o
Q09DT0EpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggY2U1YzMwZDBkNGVlMmEzNTVlMDY4OTA2OTdkOTAyNDdhMGFkY2I0NC4u
ZDU5MjI1NTkyNzdlMjFhYzJlNDIxMDcxYWY1NjIyYjViMjNlOWI1ZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIyLTAxLTE3ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IFdlYkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0
aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlhIGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg3NjAxNzYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLmh0bWw6
CisgICAgICAgICogd2VicnRjL3JvdXRpbmVzLmpzOgorICAgICAgICBUZXN0IGNhbWVyYSBpbWFn
ZSByb3RhdGlvbnMgaW4gdGhlIHRlc3QuCisKIDIwMjItMDEtMTcgIENoYW5nU2VvayBPaCAgPGNo
YW5nc2Vva0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtHVEtdIEltcGxlbWVudCBmb3JtIHZhbGlk
YXRpb24gd2l0aCBndGszIHdpZGdldHMgaW4gdGhlIFVJIHByb2Nlc3MKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0xLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNh
bnZhcy0xLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWIyNzNkZTJkN2RlYTYzODMyNzFkZmYw
MjUxZDQ1NjZjMjA5MDI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTcgQEAKKworUEFTUyBmdW5jOiB3aXRoMkRDb250ZXh0LCBhbmdsZTogMCwgaW1hZ2VCaXRtYXA6
IGZhbHNlCitQQVNTIGZ1bmM6IHdpdGgyRENvbnRleHQsIGFuZ2xlOiAwLCBpbWFnZUJpdG1hcDog
dHJ1ZQorUEFTUyBmdW5jOiB3aXRoMkRDb250ZXh0LCBhbmdsZTogOTAsIGltYWdlQml0bWFwOiBm
YWxzZQorUEFTUyBmdW5jOiB3aXRoMkRDb250ZXh0LCBhbmdsZTogOTAsIGltYWdlQml0bWFwOiB0
cnVlCitQQVNTIGZ1bmM6IHdpdGgyRENvbnRleHQsIGFuZ2xlOiAxODAsIGltYWdlQml0bWFwOiBm
YWxzZQorUEFTUyBmdW5jOiB3aXRoMkRDb250ZXh0LCBhbmdsZTogMTgwLCBpbWFnZUJpdG1hcDog
dHJ1ZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiAwLCBpbWFnZUJpdG1hcDogZmFsc2Us
IHN1YkltYWdlOiBmYWxzZSwgdW5wYWNrRmxpcFk6IGZhbHNlCitQQVNTIGZ1bmM6IHdpdGhXZWJH
TCwgYW5nbGU6IDAsIGltYWdlQml0bWFwOiBmYWxzZSwgc3ViSW1hZ2U6IGZhbHNlLCB1bnBhY2tG
bGlwWTogdHJ1ZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiAwLCBpbWFnZUJpdG1hcDog
ZmFsc2UsIHN1YkltYWdlOiB0cnVlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVuYzogd2l0
aFdlYkdMLCBhbmdsZTogMCwgaW1hZ2VCaXRtYXA6IGZhbHNlLCBzdWJJbWFnZTogdHJ1ZSwgdW5w
YWNrRmxpcFk6IHRydWUKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogMCwgaW1hZ2VCaXRt
YXA6IHRydWUsIHN1YkltYWdlOiBmYWxzZSwgdW5wYWNrRmxpcFk6IGZhbHNlCitQQVNTIGZ1bmM6
IHdpdGhXZWJHTCwgYW5nbGU6IDAsIGltYWdlQml0bWFwOiB0cnVlLCBzdWJJbWFnZTogZmFsc2Us
IHVucGFja0ZsaXBZOiB0cnVlCitQQVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDAsIGltYWdl
Qml0bWFwOiB0cnVlLCBzdWJJbWFnZTogdHJ1ZSwgdW5wYWNrRmxpcFk6IGZhbHNlCitQQVNTIGZ1
bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDAsIGltYWdlQml0bWFwOiB0cnVlLCBzdWJJbWFnZTogdHJ1
ZSwgdW5wYWNrRmxpcFk6IHRydWUKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogOTAsIGlt
YWdlQml0bWFwOiBmYWxzZSwgc3ViSW1hZ2U6IGZhbHNlLCB1bnBhY2tGbGlwWTogZmFsc2UKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8t
Y2FudmFzLTEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlh
LXRvLWNhbnZhcy0xLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDY3NDM0MTliMDFkNGM3MTdkYTIwZGI4ODlh
N2UxYjc3YWZjMmNkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0xLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+VGVz
dGluZyBnZXRVc2VyTWVkaWEgc3RyZWFtIHRvIGNhbnZhcyBjb250ZXh0cyAxPC90aXRsZT4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vd2VicnRjL3JvdXRpbmVzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vY2FudmFzL3dlYmdsL3Jlc291cmNlcy93ZWJnbC10
ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2dldFVz
ZXJNZWRpYS10by1jYW52YXMuanMiPjwvc2NyaXB0PgorICAgIDxzdHlsZSB0eXBlPXRleHQvY3Nz
PgorICAgICAgICBjYW52YXMgeyB3aWR0aDogNjBweCB9CisgICAgICAgIHZpZGVvIHsgd2lkdGg6
IDYwcHggfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJkZWJ1
Z2UiPjwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGNyZWF0ZVVzZXJNZWRpYVRvQ2FudmFz
VGVzdHMoMCwgMik7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10
by1jYW52YXMtMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQyNWMzNjEyYTEyNDlhZjMxMDVj
NWNmYzM3NWYzZDE5NzMxNmRiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0yLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE3IEBACisKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogOTAsIGltYWdlQml0bWFw
OiBmYWxzZSwgc3ViSW1hZ2U6IGZhbHNlLCB1bnBhY2tGbGlwWTogdHJ1ZQorUEFTUyBmdW5jOiB3
aXRoV2ViR0wsIGFuZ2xlOiA5MCwgaW1hZ2VCaXRtYXA6IGZhbHNlLCBzdWJJbWFnZTogdHJ1ZSwg
dW5wYWNrRmxpcFk6IGZhbHNlCitQQVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDkwLCBpbWFn
ZUJpdG1hcDogZmFsc2UsIHN1YkltYWdlOiB0cnVlLCB1bnBhY2tGbGlwWTogdHJ1ZQorUEFTUyBm
dW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiA5MCwgaW1hZ2VCaXRtYXA6IHRydWUsIHN1YkltYWdlOiBm
YWxzZSwgdW5wYWNrRmxpcFk6IGZhbHNlCitQQVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDkw
LCBpbWFnZUJpdG1hcDogdHJ1ZSwgc3ViSW1hZ2U6IGZhbHNlLCB1bnBhY2tGbGlwWTogdHJ1ZQor
UEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiA5MCwgaW1hZ2VCaXRtYXA6IHRydWUsIHN1Yklt
YWdlOiB0cnVlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmds
ZTogOTAsIGltYWdlQml0bWFwOiB0cnVlLCBzdWJJbWFnZTogdHJ1ZSwgdW5wYWNrRmxpcFk6IHRy
dWUKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogMTgwLCBpbWFnZUJpdG1hcDogZmFsc2Us
IHN1YkltYWdlOiBmYWxzZSwgdW5wYWNrRmxpcFk6IGZhbHNlCitQQVNTIGZ1bmM6IHdpdGhXZWJH
TCwgYW5nbGU6IDE4MCwgaW1hZ2VCaXRtYXA6IGZhbHNlLCBzdWJJbWFnZTogZmFsc2UsIHVucGFj
a0ZsaXBZOiB0cnVlCitQQVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDE4MCwgaW1hZ2VCaXRt
YXA6IGZhbHNlLCBzdWJJbWFnZTogdHJ1ZSwgdW5wYWNrRmxpcFk6IGZhbHNlCitQQVNTIGZ1bmM6
IHdpdGhXZWJHTCwgYW5nbGU6IDE4MCwgaW1hZ2VCaXRtYXA6IGZhbHNlLCBzdWJJbWFnZTogdHJ1
ZSwgdW5wYWNrRmxpcFk6IHRydWUKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogMTgwLCBp
bWFnZUJpdG1hcDogdHJ1ZSwgc3ViSW1hZ2U6IGZhbHNlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BB
U1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogMTgwLCBpbWFnZUJpdG1hcDogdHJ1ZSwgc3ViSW1h
Z2U6IGZhbHNlLCB1bnBhY2tGbGlwWTogdHJ1ZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xl
OiAxODAsIGltYWdlQml0bWFwOiB0cnVlLCBzdWJJbWFnZTogdHJ1ZSwgdW5wYWNrRmxpcFk6IGZh
bHNlCitQQVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDE4MCwgaW1hZ2VCaXRtYXA6IHRydWUs
IHN1YkltYWdlOiB0cnVlLCB1bnBhY2tGbGlwWTogdHJ1ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMi5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTIuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kNzBkNDg3YTdmNTYyYjZmYzkyZWUxMGE3NjAyMmJjNjZjYzg2NGM3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEt
dG8tY2FudmFzLTIuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+CisgICAg
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5UZXN0aW5nIGdldFVzZXJNZWRpYSBz
dHJlYW0gdG8gY2FudmFzIGNvbnRleHRzIDI8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi93ZWJydGMvcm91dGluZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIuLi9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy5q
cyI+PC9zY3JpcHQ+CisgICAgPHN0eWxlIHR5cGU9dGV4dC9jc3M+CisgICAgICAgIGNhbnZhcyB7
IHdpZHRoOiA2MHB4IH0KKyAgICAgICAgdmlkZW8geyB3aWR0aDogNjBweCB9CisgICAgPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImRlYnVnZSI+PC9kaXY+CisgICAgPHNj
cmlwdD4KKyAgICAgICAgY3JlYXRlVXNlck1lZGlhVG9DYW52YXNUZXN0cygxLCAyKTsKKyAgICA8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NjU5NDAyNmZlNzliMzAwMzllZDczZWNl
MjllZDZmY2UyODcwMWU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZh
cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLQotUEFTUyBUZXN0
aW5nIGdldFVzZXJNZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRleHRzIHZpYSAyRENvbnRleHQK
LVBBU1MgVGVzdGluZyBnZXRVc2VyTWVkaWEgc3RyZWFtIHRvIGNhbnZhcyBjb250ZXh0cyB2aWEg
SW1hZ2VCaXRtYXAgdG8gMkRDb250ZXh0Ci1QQVNTIFRlc3RpbmcgZ2V0VXNlck1lZGlhIHN0cmVh
bSB0byBjYW52YXMgY29udGV4dHMgdmlhIFdlYkdMIHRleHR1cmUKLVBBU1MgVGVzdGluZyBnZXRV
c2VyTWVkaWEgc3RyZWFtIHRvIGNhbnZhcyBjb250ZXh0cyB2aWEgSW1hZ2VCaXRtYXAgdG8gV2Vi
R0wgdGV4dHVyZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dl
dFVzZXJNZWRpYS10by1jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
Z2V0VXNlck1lZGlhLXRvLWNhbnZhcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkMjgzZjQ4ZjdjZjMxNGQzMTQ5YTMyZTNmODkwMzlmNzQ3ODRmZGFhLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMz
ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICAgICAgPHRpdGxlPlRlc3RpbmcgZ2V0VXNlck1lZGlh
IHN0cmVhbSB0byBjYW52YXMgY29udGV4dHM8L3RpdGxlPgotICAgICAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0g
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi93ZWJydGMvcm91dGluZXMuanMiPjwvc2NyaXB0Pgot
ICAgICAgICA8c2NyaXB0IHNyYz0iLi4vY2FudmFzL3dlYmdsL3Jlc291cmNlcy93ZWJnbC10ZXN0
LXV0aWxzLmpzIj48L3NjcmlwdD4KLQotICAgICAgICA8c3R5bGUgdHlwZT10ZXh0L2Nzcz4KLSAg
ICAgICAgICAgIGNhbnZhcyB7IHdpZHRoOiA2MDBweCB9Ci0gICAgICAgIDwvc3R5bGU+Ci0gICAg
PC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8ZGl2IGlkPSJkZWJ1Z2UiPjwvZGl2PgotICAg
ICAgICA8c2NyaXB0PgotInVzZSBzdHJpY3QiOwotY29uc3Qgd3R1ID0gV2ViR0xUZXN0VXRpbHM7
Ci1jb25zdCB3aWR0aCA9IDY0MzsKLWNvbnN0IHZlcmlmeVdpZHRoID0gMjAwOwotY29uc3QgZGVi
dWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlYnVnZSIpOwotCi1hc3luYyBmdW5jdGlv
biBjcmVhdGVTb3VyY2VWaWRlbygpIHsKLSAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJ2aWRlbyIpOwotICAgIHZpZGVvLnNyY09iamVjdCA9IGF3YWl0IG5hdmlnYXRvci5t
ZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgdmlkZW86IHsgd2lkdGg6IHsgZXhhY3Q6IHdpZHRo
IH0gfSB9KTsKLSAgICBhd2FpdCB2aWRlby5wbGF5KCk7Ci0gICAgYXNzZXJ0X2VxdWFscyh2aWRl
by52aWRlb1dpZHRoLCB3aWR0aCk7Ci0gICAgcmV0dXJuIHZpZGVvOwotfQotCi1mdW5jdGlvbiBj
cmVhdGVWZXJpZnlDYW52YXModmlkZW8pIHsKLSAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiY2FudmFzIik7Ci0gICAgY2FudmFzLndpZHRoID0gdmVyaWZ5V2lkdGg7Ci0g
ICAgY2FudmFzLmhlaWdodCA9IE1hdGguZmxvb3IodmlkZW8udmlkZW9IZWlnaHQgLyB2aWRlby52
aWRlb1dpZHRoICogdmVyaWZ5V2lkdGgpOwotICAgIHJldHVybiBjYW52YXM7Ci19Ci0KLWZ1bmN0
aW9uIGNyZWF0ZVZlcmlmeVdlYkdMQ29udGV4dChjYW52YXMpIHsKLSAgICBsZXQgZ2wgPSB3dHUu
Y3JlYXRlM0RDb250ZXh0KGNhbnZhcywgeyBkZXB0aDogZmFsc2UsIHN0ZW5jaWw6IGZhbHNlLCBh
bnRpYWxpYXM6IGZhbHNlIH0pOwotICAgIGdsLnZpZXdwb3J0KDAsIDAsIGNhbnZhcy53aWR0aCwg
Y2FudmFzLmhlaWdodCk7Ci0gICAgbGV0IHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQo
Z2wpOwotICAgIGdsLnVuaWZvcm0xaShnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRl
eCIpLCAwKTsKLSAgICByZXR1cm4gZ2w7Ci19Ci0KLWZ1bmN0aW9uIGdldEZyYW1lYnVmZmVyQXNJ
bWFnZURhdGEoZ2wpwqB7Ci0gICAgbGV0IGNhbnZhcyA9IGdsLmNhbnZhczsKLSAgICBsZXQgaW1h
Z2VEYXRhID0gewotICAgICAgICB3aWR0aDogY2FudmFzLndpZHRoLAotICAgICAgICBoZWlnaHQ6
IGNhbnZhcy5oZWlnaHQsCi0gICAgICAgIGRhdGE6IG5ldyBVaW50OEFycmF5KGNhbnZhcy53aWR0
aCAqIGNhbnZhcy5oZWlnaHQgKiA0KQotICAgIH0KLSAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIGNh
bnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1h
Z2VEYXRhLmRhdGEpOwotICAgIHJldHVybiBpbWFnZURhdGE7Ci19Ci0KLXByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKLSAgICBsZXQgdmlkZW8gPSBhd2FpdCBjcmVhdGVTb3VyY2VWaWRlbygpOwot
ICAgIGRlYnVnZS5hcHBlbmQodmlkZW8pOwotICAgIGxldCBjYW52YXMgPSBjcmVhdGVWZXJpZnlD
YW52YXModmlkZW8pOwotICAgIGRlYnVnZS5hcHBlbmRDaGlsZChjYW52YXMpOwotCi0gICAgbGV0
IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOwotICAgIGN0eC5kcmF3SW1hZ2UodmlkZW8s
IDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Ci0gICAgYXNzZXJ0SW1hZ2VEYXRh
Q29udGFpbnNNb2NrQ2FtZXJhSW1hZ2UoY3R4LmdldEltYWdlRGF0YSgwLCAwLCBjYW52YXMud2lk
dGgsIGNhbnZhcy5oZWlnaHQpKTsKLSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQoY2FudmFzKTsKLSAg
ICBkZWJ1Z2UucmVtb3ZlQ2hpbGQodmlkZW8pOwotCi19LCBkb2N1bWVudC50aXRsZSArICIgdmlh
IDJEQ29udGV4dCIpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgbGV0IHZpZGVv
ID0gYXdhaXQgY3JlYXRlU291cmNlVmlkZW8oKTsKLSAgICBkZWJ1Z2UuYXBwZW5kKHZpZGVvKTsK
LSAgICBsZXQgY2FudmFzID0gY3JlYXRlVmVyaWZ5Q2FudmFzKHZpZGVvKTsKLSAgICBkZWJ1Z2Uu
YXBwZW5kQ2hpbGQoY2FudmFzKTsKLQotICAgIGxldCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgi
MmQiKTsKLSAgICBsZXQgaW1hZ2VCaXRtYXAgPSBhd2FpdCBjcmVhdGVJbWFnZUJpdG1hcCh2aWRl
byk7Ci0gICAgY3R4LmRyYXdJbWFnZShpbWFnZUJpdG1hcCwgMCwgMCwgY2FudmFzLndpZHRoLCBj
YW52YXMuaGVpZ2h0KTsKLSAgICBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFn
ZShjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCkpOwot
ICAgIGRlYnVnZS5yZW1vdmVDaGlsZChjYW52YXMpOwotICAgIGRlYnVnZS5yZW1vdmVDaGlsZCh2
aWRlbyk7Ci19LCBkb2N1bWVudC50aXRsZSArICIgdmlhIEltYWdlQml0bWFwIHRvIDJEQ29udGV4
dCIpOwotCi1wcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgbGV0IHZpZGVvID0gYXdhaXQg
Y3JlYXRlU291cmNlVmlkZW8oKTsKLSAgICBkZWJ1Z2UuYXBwZW5kKHZpZGVvKTsKLSAgICBsZXQg
Y2FudmFzID0gY3JlYXRlVmVyaWZ5Q2FudmFzKHZpZGVvKTsKLSAgICBkZWJ1Z2UuYXBwZW5kQ2hp
bGQoY2FudmFzKTsKLQotICAgIGxldCBnbCA9IGNyZWF0ZVZlcmlmeVdlYkdMQ29udGV4dChjYW52
YXMpOwotICAgIGxldCB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRU
ZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wu
VEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50
ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVB
UkVTVCk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dS
QVBfUywgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJF
XzJELCBnbC5URVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCB2aWRlbyk7Ci0gICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwgMjU1
XSk7Ci0KLSAgICBsZXQgaW1hZ2VEYXRhID0gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCk7
Ci0gICAgYXNzZXJ0SW1hZ2VEYXRhQ29udGFpbnNNb2NrQ2FtZXJhSW1hZ2UoaW1hZ2VEYXRhKTsK
LSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQoY2FudmFzKTsKLSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQo
dmlkZW8pOwotfSwgZG9jdW1lbnQudGl0bGUgKyAiIHZpYSBXZWJHTCB0ZXh0dXJlIik7Ci0KLXBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBsZXQgdmlkZW8gPSBhd2FpdCBjcmVhdGVTb3Vy
Y2VWaWRlbygpOwotICAgIGRlYnVnZS5hcHBlbmQodmlkZW8pOwotICAgIGxldCBjYW52YXMgPSBj
cmVhdGVWZXJpZnlDYW52YXModmlkZW8pOwotICAgIGRlYnVnZS5hcHBlbmRDaGlsZChjYW52YXMp
OwotCi0gICAgbGV0IGdsID0gY3JlYXRlVmVyaWZ5V2ViR0xDb250ZXh0KGNhbnZhcyk7Ci0gICAg
bGV0IHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgbGV0IGltYWdlQml0bWFwID0g
YXdhaXQgY3JlYXRlSW1hZ2VCaXRtYXAodmlkZW8pOwotICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRF
WFRVUkVfMkQsIHRleHR1cmUpOwotICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwg
Z2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJp
KGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Ci0gICAg
Z2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xB
TVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhU
VVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhU
VVJFXzJELCAwLCBnbC5SR0JBLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWFnZUJpdG1h
cCk7Ci0gICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7Ci0K
LSAgICBsZXQgaW1hZ2VEYXRhID0gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCk7Ci0gICAg
YXNzZXJ0SW1hZ2VEYXRhQ29udGFpbnNNb2NrQ2FtZXJhSW1hZ2UoaW1hZ2VEYXRhKTsKLSAgICBk
ZWJ1Z2UucmVtb3ZlQ2hpbGQoY2FudmFzKTsKLSAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQodmlkZW8p
OwotfSwgZG9jdW1lbnQudGl0bGUgKyAiIHZpYSBJbWFnZUJpdG1hcCB0byBXZWJHTCB0ZXh0dXJl
Iik7Ci0KLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMvZ2V0VXNlck1lZGlhLXRv
LWNhbnZhcy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL2dldFVz
ZXJNZWRpYS10by1jYW52YXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjEzODk0NzZmZjUwZWVmZDkzZTRiNWNh
ZDhjODJjNTg5ZGI3ZTZlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vcmVzb3VyY2VzL2dldFVzZXJNZWRpYS10by1jYW52YXMuanMKQEAgLTAsMCArMSwx
NzIgQEAKKyJ1c2Ugc3RyaWN0IjsKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0dGluZ3Muc2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGZhbHNlKTsK
KworY29uc3Qgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Citjb25zdCB3aWR0aCA9IDY0MzsKK2NvbnN0
IHZlcmlmeVdpZHRoID0gMjAwOworCithc3luYyBmdW5jdGlvbiBjcmVhdGVTb3VyY2VWaWRlbygp
IHsKKyAgICBjb25zdCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIik7Cisg
ICAgdmlkZW8uc3JjT2JqZWN0ID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEoeyB2aWRlbzogeyB3aWR0aDogeyBleGFjdDogd2lkdGggfSB9IH0pOworICAgIGF3YWl0
IHZpZGVvLnBsYXkoKTsKKyAgICBhc3NlcnRfZXF1YWxzKHZpZGVvLnZpZGVvV2lkdGgsIHdpZHRo
KTsKKyAgICByZXR1cm4gdmlkZW87Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVZlcmlmeUNhbnZhcyh2
aWRlbykgeworICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZh
cyIpOworICAgIGNhbnZhcy53aWR0aCA9IHZlcmlmeVdpZHRoOworICAgIGNhbnZhcy5oZWlnaHQg
PSBNYXRoLmZsb29yKHZpZGVvLnZpZGVvSGVpZ2h0IC8gdmlkZW8udmlkZW9XaWR0aCAqIHZlcmlm
eVdpZHRoKTsKKyAgICByZXR1cm4gY2FudmFzOworfQorCitmdW5jdGlvbiBjcmVhdGVWZXJpZnlX
ZWJHTFN0YXRlKGNhbnZhcykgeworICAgIGNvbnN0IGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChj
YW52YXMsIHsgZGVwdGg6IGZhbHNlLCBzdGVuY2lsOiBmYWxzZSwgYW50aWFsaWFzOiBmYWxzZSB9
KTsKKyAgICBnbC52aWV3cG9ydCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwor
ICAgIGNvbnN0IHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOworICAgIGdsLnVu
aWZvcm0xaShnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgInRleCIpLCAwKTsKKyAgICBj
b25zdCB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICAgIGdsLmJpbmRUZXh0dXJlKGds
LlRFWFRVUkVfMkQsIHRleHR1cmUpOworICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8y
RCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAgICBnbC50ZXhQYXJhbWV0
ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7Cisg
ICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wu
Q0xBTVBfVE9fRURHRSk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5U
RVhUVVJFX1dSQVBfVCwgZ2wuQ0xBTVBfVE9fRURHRSk7CisgICAgcmV0dXJuIFtnbCwgdGV4dHVy
ZV07Cit9CisKK2Z1bmN0aW9uIGdldEZyYW1lYnVmZmVyQXNJbWFnZURhdGEoZ2wpIHsKKyAgICBj
b25zdCBjYW52YXMgPSBnbC5jYW52YXM7CisgICAgY29uc3QgaW1hZ2VEYXRhID0geworICAgICAg
ICB3aWR0aDogY2FudmFzLndpZHRoLAorICAgICAgICBoZWlnaHQ6IGNhbnZhcy5oZWlnaHQsCisg
ICAgICAgIGRhdGE6IG5ldyBVaW50OEFycmF5KGNhbnZhcy53aWR0aCAqIGNhbnZhcy5oZWlnaHQg
KiA0KQorICAgIH0KKyAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFz
LmhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1hZ2VEYXRhLmRhdGEpOworICAg
IHJldHVybiBpbWFnZURhdGE7Cit9CisKK2Z1bmN0aW9uIHNldHVwSW52ZXJzZVVuaXRRdWFkVGV4
dHVyZUNvb3JkaW5hdGVzKGdsLCB0ZXhjb29yZExvY2F0aW9uKSB7CisgICAgdGV4Y29vcmRMb2Nh
dGlvbiA9IHRleGNvb3JkTG9jYXRpb24gfHwgMTsKKyAgICBjb25zdCB2ZXJ0ZXhPYmplY3QgPSBn
bC5jcmVhdGVCdWZmZXIoKTsKKyAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgdmVy
dGV4T2JqZWN0KTsKKyAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgbmV3IEZsb2F0
MzJBcnJheShbCisgICAgICAgIDEuMCwgMC4wLAorICAgICAgICAwLjAsIDAuMCwKKyAgICAgICAg
MC4wLCAxLjAsCisgICAgICAgIDEuMCwgMC4wLAorICAgICAgICAwLjAsIDEuMCwKKyAgICAgICAg
MS4wLCAxLjBdKSwgZ2wuU1RBVElDX0RSQVcpOworICAgIGdsLmVuYWJsZVZlcnRleEF0dHJpYkFy
cmF5KHRleGNvb3JkTG9jYXRpb24pOworICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIodGV4Y29v
cmRMb2NhdGlvbiwgMiwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKK30KKworYXN5bmMgZnVuY3Rp
b24gd2l0aDJEQ29udGV4dChzdWJjYXNlLCB2aWRlbywgY2FudmFzKSB7CisgICAgY29uc3QgY3R4
ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgbGV0IHNvdXJjZSA9IHZpZGVvOworICAg
IGlmIChzdWJjYXNlLmltYWdlQml0bWFwKQorICAgICAgICBzb3VyY2UgPSBhd2FpdCBjcmVhdGVJ
bWFnZUJpdG1hcChzb3VyY2UpOworICAgIGN0eC5kcmF3SW1hZ2UodmlkZW8sIDAsIDAsIGNhbnZh
cy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisgICAgcmV0dXJuIGN0eC5nZXRJbWFnZURhdGEoMCwg
MCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKK30KKworYXN5bmMgZnVuY3Rpb24gd2l0
aFdlYkdMKHN1YmNhc2UsIHZpZGVvLCBjYW52YXMpIHsKKyAgICBjb25zdCBbZ2wsIHRleHR1cmVd
ID0gY3JlYXRlVmVyaWZ5V2ViR0xTdGF0ZShjYW52YXMpOworICAgIGxldCBzb3VyY2UgPSB2aWRl
bzsKKyAgICBpZiAoc3ViY2FzZS5pbWFnZUJpdG1hcCkKKyAgICAgICAgc291cmNlID0gYXdhaXQg
Y3JlYXRlSW1hZ2VCaXRtYXAoc291cmNlKTsKKyAgICBpZiAoc3ViY2FzZS51bnBhY2tGbGlwWSkK
KyAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgdHJ1ZSk7Cisg
ICAgaWYgKHN1YmNhc2Uuc3ViSW1hZ2UpIHsKKyAgICAgICAgY29uc3QgdyA9IHZpZGVvLnZpZGVv
V2lkdGg7CisgICAgICAgIGNvbnN0IGggPSB2aWRlby52aWRlb0hlaWdodDsKKyAgICAgICAgY29u
c3QgcGl4ZWxzID0gbmV3IFVpbnQ4QXJyYXkodyAqIGggKiA0KTsKKyAgICAgICAgcGl4ZWxzLmZp
bGwoMCk7CisgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwg
dywgaCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgcGl4ZWxzKTsKKyAgICAgICAgZ2wu
dGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05F
RF9CWVRFLCBzb3VyY2UpOworICAgIH0gZWxzZQorICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIHNvdXJjZSk7
CisKKyAgICAvLyBVTlBBQ0tfRkxJUF9ZX1dFQkdMIGlzIGlnbm9yZWQgZm9yIEltYWdlQml0bWFw
cyBhcyBwZXIgV2ViR0wgc3BlYy4gVGVzdCB0aGlzIGJ5CisgICAgLy8gcmVuZGVyaW5nIG5vcm1h
bGx5IGFuZCBleHBlY3Rpbmcgbm9ybWFsIHJlc3VsdC4KKyAgICBjb25zdCBzaG91bGRSZW5kZXJJ
bnZlcnRlZCA9IHN1YmNhc2UudW5wYWNrRmxpcFkgJiYgIXN1YmNhc2UuaW1hZ2VCaXRtYXA7Cisg
ICAgaWYgKHNob3VsZFJlbmRlckludmVydGVkKSB7CisgICAgICAgIHNldHVwSW52ZXJzZVVuaXRR
dWFkVGV4dHVyZUNvb3JkaW5hdGVzKGdsKTsKKyAgICAgICAgd3R1LmNsZWFyQW5kRHJhd1VuaXRR
dWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7CisgICAgfSBlbHNlCisgICAgICAgIHd0dS5jbGVhckFu
ZERyYXdVbml0UXVhZChnbCwgWzAsIDAsIDAsIDI1NV0pOworICAgIHJldHVybiBnZXRGcmFtZWJ1
ZmZlckFzSW1hZ2VEYXRhKGdsKTsKK30KKworY29uc3Qgc3ViY2FzZXMgPSBbXTsKK2NvbnN0IGFu
Z2xlcyA9IFswLCA5MCwgMTgwXTsgLy8gRklYTUU6IC05MCBtYWtlIHNldE1vY2tDYW1lcmEuLi4g
YWNjZXB0IHNpZ25lZC4gaHR0cHM6Ly93ZWJraXQub3JnL2IvMjM1MzUyCitjb25zdCBmYWxzZUFu
ZFRydWUgPSBbZmFsc2UsIHRydWVdOworZm9yIChjb25zdCBhbmdsZSBvZiBhbmdsZXMpIHsKKyAg
ICBmb3IgKGNvbnN0IGltYWdlQml0bWFwIG9mIGZhbHNlQW5kVHJ1ZSkKKyAgICAgICAgc3ViY2Fz
ZXMucHVzaCh7IGZ1bmM6IHdpdGgyRENvbnRleHQsIGFuZ2xlOiBhbmdsZSwgaW1hZ2VCaXRtYXA6
IGltYWdlQml0bWFwIH0pOworfQorCitmb3IgKGNvbnN0IGFuZ2xlIG9mIGFuZ2xlcykgeworICAg
IGZvciAoY29uc3QgaW1hZ2VCaXRtYXAgb2YgZmFsc2VBbmRUcnVlKSB7CisgICAgICAgIGZvciAo
Y29uc3Qgc3ViSW1hZ2Ugb2YgZmFsc2VBbmRUcnVlKSB7CisgICAgICAgICAgICBmb3IgKGNvbnN0
IHVucGFja0ZsaXBZIG9mIGZhbHNlQW5kVHJ1ZSkKKyAgICAgICAgICAgICAgICBzdWJjYXNlcy5w
dXNoKHtmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiBhbmdsZSwgaW1hZ2VCaXRtYXA6IGltYWdlQml0
bWFwLCBzdWJJbWFnZTogc3ViSW1hZ2UsIHVucGFja0ZsaXBZOiB1bnBhY2tGbGlwWX0pOworICAg
ICAgICB9CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0RGVzY3JpcHRpb24oc3ViY2FzZSkgewor
ICAgIGxldCBkZXNjID0gImZ1bmM6ICIgKyBzdWJjYXNlLmZ1bmMubmFtZTsKKyAgICBmb3IgKGNv
bnN0IGsgaW4gc3ViY2FzZSkgeworICAgICAgICBpZiAoayA9PT0gImZ1bmMiKQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIGRlc2MgKz0gYCwgJHtrfTogJHtzdWJjYXNlW2tdfWA7Cisg
ICAgfQorICAgIHJldHVybiBkZXNjOworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0VXNlck1lZGlh
VG9DYW52YXModCwgc3ViY2FzZSkgeworICAgIGNvbnN0IGRlc2MgPSB0ZXN0RGVzY3JpcHRpb24o
c3ViY2FzZSk7CisgICAgY29uc3QgdmlkZW8gPSBhd2FpdCBjcmVhdGVTb3VyY2VWaWRlbygpOwor
ICAgIGNvbnN0IGRlYnVnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWJ1Z2UiKTsKKyAg
ICBkZWJ1Z2UuYXBwZW5kKHZpZGVvKTsKKyAgICBjb25zdCByZWFsVmlkZW9TaXplID0gW3ZpZGVv
LnZpZGVvV2lkdGgsIHZpZGVvLnZpZGVvSGVpZ2h0XTsKKyAgICB0LmFkZF9jbGVhbnVwKGFzeW5j
ICgpID0+IHsKKyAgICAgICAgZGVidWdlLnJlbW92ZUNoaWxkKHZpZGVvKTsKKyAgICAgICAgLy8g
UmVzZXQgb3JpZW50YXRpb24gZm9yIHRoZSBuZXh0IHRlc3QgYnkgZ29pbmcgdG8gMC4KKyAgICAg
ICAgaWYgKHN1YmNhc2UuYW5nbGUgPT0gMTgwKSB7CisgICAgICAgICAgICAvLyAxODAgLT4gMCBj
YW5ub3QgZGV0ZWN0IHJvdGF0aW9uIHZpYSB2aWRlbyBzaXplIGNoYW5nZS4gR28gdmlhIDkwLgor
ICAgICAgICAgICAgY29uc3QgW2FuZ2xlLCB2aWRlb1NpemVdID0gc2V0TW9ja0NhbWVyYUltYWdl
T3JpZW50YXRpb24oOTAsIHJlYWxWaWRlb1NpemUpOworICAgICAgICAgICAgYXdhaXQgd2FpdEZv
clZpZGVvU2l6ZSh2aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVbMV0pOworICAgICAgICB9
CisgICAgICAgIHNldE1vY2tDYW1lcmFJbWFnZU9yaWVudGF0aW9uKDApOworICAgICAgICBhd2Fp
dCB3YWl0Rm9yVmlkZW9TaXplKHZpZGVvLCByZWFsVmlkZW9TaXplWzBdLCByZWFsVmlkZW9TaXpl
WzFdKTsKKyAgICB9KTsKKworICAgIGlmIChzdWJjYXNlLmFuZ2xlID09IDE4MCkgeworICAgICAg
ICAvLyAwIC0+IDE4MCBjYW5ub3QgZGV0ZWN0IHJvdGF0aW9uIHZpYSB2aWRlbyBzaXplIGNoYW5n
ZS4gR28gdmlhIDkwLgorICAgICAgICBjb25zdCBbYW5nbGUsIHZpZGVvU2l6ZV0gPSBzZXRNb2Nr
Q2FtZXJhSW1hZ2VPcmllbnRhdGlvbig5MCwgcmVhbFZpZGVvU2l6ZSk7CisgICAgICAgIGF3YWl0
IHdhaXRGb3JWaWRlb1NpemUodmlkZW8sIHZpZGVvU2l6ZVswXSwgdmlkZW9TaXplWzFdKTsKKyAg
ICB9CisgICAgY29uc3QgW2FuZ2xlLCB2aWRlb1NpemVdID0gc2V0TW9ja0NhbWVyYUltYWdlT3Jp
ZW50YXRpb24oc3ViY2FzZS5hbmdsZSwgcmVhbFZpZGVvU2l6ZSk7CisgICAgYXdhaXQgd2FpdEZv
clZpZGVvU2l6ZSh2aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVbMV0pOworCisgICAgY29u
c3QgY2FudmFzID0gY3JlYXRlVmVyaWZ5Q2FudmFzKHZpZGVvKTsKKyAgICBkZWJ1Z2UuYXBwZW5k
Q2hpbGQoY2FudmFzKTsKKyAgICB0LmFkZF9jbGVhbnVwKGFzeW5jICgpID0+IGRlYnVnZS5yZW1v
dmVDaGlsZChjYW52YXMpKTsKKyAgICBjb25zdCBpbWFnZURhdGEgPSBhd2FpdCBzdWJjYXNlLmZ1
bmMoc3ViY2FzZSwgdmlkZW8sIGNhbnZhcyk7CisgICAgdHJ5IHsKKyAgICAgICAgYXNzZXJ0SW1h
Z2VEYXRhQ29udGFpbnNNb2NrQ2FtZXJhSW1hZ2UoaW1hZ2VEYXRhLCBhbmdsZSwgZGVzYyk7Cisg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICAvLyBVc2UgdGhpcyBmb3IgZGVidWdnaW5nOgorICAg
ICAgICAvL2F3YWl0IHdhaXRGb3IoMTAwMDApOworICAgICAgICB0aHJvdyBlOworICAgIH0KK30K
KworZnVuY3Rpb24gY3JlYXRlVXNlck1lZGlhVG9DYW52YXNUZXN0cyhzbGljZSwgc2xpY2VzKSB7
CisgICAgY29uc3Qgc2xpY2VTaXplID0gTWF0aC5mbG9vcihzdWJjYXNlcy5sZW5ndGggLyBzbGlj
ZXMpOworICAgIGNvbnN0IGZpcnN0ID0gc2xpY2VTaXplICogc2xpY2U7CisgICAgZm9yIChjb25z
dCBzdWJjYXNlIG9mIHN1YmNhc2VzLnNsaWNlKGZpcnN0LCBmaXJzdCArIHNsaWNlU2l6ZSkpCisg
ICAgICAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsgYXdhaXQgdGVzdFVzZXJNZWRpYVRvQ2Fu
dmFzKHQsIHN1YmNhc2UpOyB9LCB0ZXN0RGVzY3JpcHRpb24oc3ViY2FzZSkpOworfQpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0
aW5lcy5qcyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcwppbmRleCBmODM3YWEwMGQ3
YWUzNzhiNDU1YzhjY2E0NDk4MTk1MGJhMDVlMDlhLi4yY2ZmNjllNjUxYjk0MTdiNWUxOTk4YmJk
NTY3OTIxOWE1N2YyY2UxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMu
anMKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3JvdXRpbmVzLmpzCkBAIC0yNTMsNyArMjUzLDcg
QEAgYXN5bmMgZnVuY3Rpb24gY29tcHV0ZUZyYW1lUmF0ZShzdHJlYW0sIHZpZGVvKQogewogICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAgIGludGVybmFscy5vYnNlcnZlTWVkaWFT
dHJlYW1UcmFjayhzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSk7Ci0gICAgICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgICAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkp
OwogICAgICAgICByZXR1cm4gaW50ZXJuYWxzLnRyYWNrVmlkZW9TYW1wbGVDb3VudDsKICAgICB9
CiAKQEAgLTI3Myw3ICsyNzMsNyBAQCBhc3luYyBmdW5jdGlvbiBjb21wdXRlRnJhbWVSYXRlKHN0
cmVhbSwgdmlkZW8pCiAgICAgYXdhaXQgdmlkZW8ucGxheSgpOwogCiAgICAgY29uc3Qgc3RhdHMx
ID0gYXdhaXQgZ2V0UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24pOwotICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgIGF3
YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7CiAg
ICAgY29uc3Qgc3RhdHMyID0gYXdhaXQgZ2V0UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24p
OwogICAgIHJldHVybiAoc3RhdHMyLmZyYW1lc1JlY2VpdmVkIC0gc3RhdHMxLmZyYW1lc1JlY2Vp
dmVkKSAqIDEwMDAgLyAoc3RhdHMyLnRpbWVzdGFtcCAtIHN0YXRzMS50aW1lc3RhbXApOwogfQpA
QCAtMjk4LDYgKzI5OCwyMCBAQCBmdW5jdGlvbiBzZXRIMjY0SGlnaENvZGVjKHNkcCkKICAgICB9
KS5qb2luKCdcclxuJyk7CiB9CiAKKy8vIFNldHMgdGhlIGNhbWVyYSBpbWFnZSBvcmllbnRhdGlv
biBpZiBydW5uaW5nIG9uIHRlc3QgcnVubmVyLgorLy8gYW5nbGU6IG9yaWVudGF0aW9uIGFuZ2xl
IG9mIHRoZSBjYW1lcmEgaW1hZ2UgaW4gZGVncmVlcworZnVuY3Rpb24gc2V0TW9ja0NhbWVyYUlt
YWdlT3JpZW50YXRpb24oYW5nbGUsIHZpZGVvU2l6ZSkgeworICAgIGlmIChbMCwgOTAsIDE4MCwg
MjcwXS5pbmRleE9mKGFuZ2xlKSA9PSAtMSkKKyAgICAgICAgdGhyb3cgImludmFsaWQgYW5nbGUi
OworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldE1v
Y2tDYW1lcmFPcmllbnRhdGlvbihhbmdsZSk7CisgICAgICAgIGlmICh2aWRlb1NpemUgJiYgKGFu
Z2xlID09IDkwIHx8IGFuZ2xlID09IDI3MCkpCisgICAgICAgICAgICB2aWRlb1NpemUgPSBbdmlk
ZW9TaXplWzFdLCB2aWRlb1NpemVbMF1dOworICAgICAgICByZXR1cm4gW2FuZ2xlLCB2aWRlb1Np
emVdOworICAgIH0KKyAgICByZXR1cm4gWzAsIHZpZGVvU2l6ZV07Cit9CisKIC8vIFJldHVybnMg
VWludDhBcnJheVs0XSBvZiBSR0JBIGNvbG9yLgogLy8gcDogW3gsIHldIG9mIDAuLjEgcmFuZ2Uu
CiBmdW5jdGlvbiBnZXRJbWFnZURhdGFQaXhlbChpbWFnZURhdGEsIHApCkBAIC0zMTEsMTYgKzMy
NSwzMyBAQCBmdW5jdGlvbiBnZXRJbWFnZURhdGFQaXhlbChpbWFnZURhdGEsIHApCiAvLyBBc3Nl
cnRzIHRoYXQgSW1hZ2VEYXRhIGluc3RhbmNlIGNvbnRhaW5zIG1vY2sgY2FtZXJhIGltYWdlIHJl
bmRlcmVkIGJ5IE1pbmlCcm93c2VyIGFuZCBXZWJLaXRUZXN0UnVubmVyLgogLy8gT2J0YWluIGZ1
bGwgY2FtZXJhIGltYWdlIG9mIHNpemUgYHdpZHRoYDoKIC8vICBhd2FpdCBuYXZpZ2F0b3IubWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiB7IGV4YWN0OiB3aWR0aCB9
IH0gfSk7Ci1mdW5jdGlvbiBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShp
bWFnZURhdGEpCitmdW5jdGlvbiBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFn
ZShpbWFnZURhdGEsIGFuZ2xlLCBkZXNjKQogeworICAgIGFuZ2xlID0gYW5nbGUgfHwgMDsKKyAg
ICBkZXNjID0gZGVzYyB8fCAiIjsKKworICAgIGZ1bmN0aW9uIHJvdGF0ZVBvaW50KHApIHsKKyAg
ICAgICAgbGV0IGEgPSBhbmdsZTsKKyAgICAgICAgbGV0IG4gPSBbIHBbMF0sIHBbMV0gXTsKKyAg
ICAgICAgd2hpbGUgKGEgPiAwKSB7CisgICAgICAgICAgICBuID0gWyAxLjAgLSBuWzFdLCBuWzBd
IF07CisgICAgICAgICAgICBhIC09IDkwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuOwor
ICAgIH0KKwogICAgIGNvbnN0IHdoaXRlID0gWyAyNTUsIDI1NSwgMjU1LCAyNTUgXTsKKyAgICBj
b25zdCB3aGl0ZVBvaW50ID0gcm90YXRlUG9pbnQoWyAwLjA0LCAwLjcgXSk7CiAgICAgY29uc3Qg
eWVsbG93ID0gWyAyNTUsIDI1NSwgMCwgMjU1IF07CisgICAgY29uc3QgeWVsbG93UG9pbnQgPSBy
b3RhdGVQb2ludChbIDAuMDgsIDAuNyBdKTsKICAgICBjb25zdCBjeWFuID0gWyAwLCAyNTUsIDI1
NSwgMjU1IF07CisgICAgY29uc3QgY3lhblBvaW50ID0gcm90YXRlUG9pbnQoWyAwLjEyLCAwLjcg
XSk7CiAgICAgY29uc3QgbGlnaHRHcmVlbiA9IFsgMCwgMTI4LCAwLCAyNTUgXTsKKyAgICBjb25z
dCBsaWdodEdyZWVuUG9pbnQgPSByb3RhdGVQb2ludChbIDAuMTYsIDAuNyBdKTsKIAotICAgIGxl
dCBlcnIgPSAzOwotICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBp
eGVsKGltYWdlRGF0YSwgWyAwLjA0LCAwLjcgXSksIHdoaXRlLCBlcnIsICJ3aGl0ZSByZWN0IG5v
dCBmb3VuZCIpOwotICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBp
eGVsKGltYWdlRGF0YSwgWyAwLjA4LCAwLjcgXSksIHllbGxvdywgZXJyLCAieWVsbG93IHJlY3Qg
bm90IGZvdW5kIik7Ci0gICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRh
UGl4ZWwoaW1hZ2VEYXRhLCBbIDAuMTIsIDAuNyBdKSwgY3lhbiwgZXJyLCAiY3lhbiByZWN0IG5v
dCBmb3VuZCIpOwotICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBp
eGVsKGltYWdlRGF0YSwgWyAwLjE2LCAwLjcgXSksIGxpZ2h0R3JlZW4sIGVyciwgImxpZ2h0IGdy
ZWVuIHJlY3Qgbm90IGZvdW5kIik7CisgICAgbGV0IGVyciA9IDExOworICAgIGFzc2VydF9hcnJh
eV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgd2hpdGVQb2ludCks
IHdoaXRlLCBlcnIsICJ3aGl0ZSByZWN0IG5vdCBmb3VuZCAiICsgZGVzYyk7CisgICAgYXNzZXJ0
X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCB5ZWxsb3dQ
b2ludCksIHllbGxvdywgZXJyLCAieWVsbG93IHJlY3Qgbm90IGZvdW5kIiArIGRlc2MpOworICAg
IGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwg
Y3lhblBvaW50KSwgY3lhbiwgZXJyLCAiY3lhbiByZWN0IG5vdCBmb3VuZCAiICsgZGVzYyk7Cisg
ICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRh
LCBsaWdodEdyZWVuUG9pbnQpLCBsaWdodEdyZWVuLCBlcnIsICJsaWdodCBncmVlbiByZWN0IG5v
dCBmb3VuZCAiICsgZGVzYyk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449560</attachid>
            <date>2022-01-20 02:49:36 -0800</date>
            <delta_ts>2022-01-20 11:08:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235233-20220120124934.patch</filename>
            <type>text/plain</type>
            <size>89371</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4Mjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzhhNjM2YmMwMzAzZTJj
ODQ0ODIxY2RlYzQ0ZWRiZTFiMDE3MGRlZi4uNmQxMDcwNjMyMDlkMTg0ZGY1MTE0NWQ5MTZmNTZj
MGU3ZmJhMDQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDIyLTAxLTIwICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdl
YkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlh
IGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NjAxNzYyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgTWFrZSBmdWxsIHRleHR1
cmUgdXBsb2FkcyBmcm9tIE1lZGlhU3RyZWFtIGNhbWVyYSBjYXB0dXJlcyB1c2UgQ1ZQaXhlbEJ1
ZmZlcnMKKyAgICAgICAgaW5zdGVhZCBvZiByZWFkaW5nIHRoZSBwaXhlbHMgYmFjay4KKyAgICAg
ICAgSW1wbGVtZW50IE1lZGlhUGxheWVySW50ZXJmYWNlOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRU
aW1lKCkgZm9yCisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy4K
KyAgICAgICAgUmVuYW1lIGZ1bmN0aW9ucyBmcm9tIHBpeGVsQnVmZmVyLi4uIHRvIHZpZGVvU2Ft
cGxlLi4uCisgICAgICAgIFVzZSBuZXcgdHlwZSBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgaW5zdGVh
ZCBvZiBDVlBpeGVsQnVmZmVyLgorICAgICAgICBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgY29udGFp
bnMgYWxzbyB0aGUgZnJhbWUgb3JpZW50YXRpb24uIFRoZQorICAgICAgICBvcmllbnRhdGlvbiBp
cyBuZWVkZWQgYXMgdGhlIGNhbWVyYSBtaWdodCBjYXB0dXJlIHRoZSBpbWFnZQorICAgICAgICB3
aXRoIGEgcm90YXRpb24gb3IgYSBmbGlwLgorCisgICAgICAgIFRvIGF2b2lkIGlmZGVmcywgdGhl
IG5ldyBBUEkgdmlkZW9TYW1wbGVGb3JDdXJyZW50VGltZSBleGlzdHMKKyAgICAgICAgZm9yIGFs
bCBwbGF0Zm9ybXMsIGJ1dCBpcyBjdXJyZW50bHkgY2FsbGVkIG9ubHkgYnkgQ29jb2EuCisgICAg
ICAgIEFsc28gdGhlIHR5cGUgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lIGV4aXN0cyBmb3IgYWxsIHBs
YXRmb3JtcworICAgICAgICBidXQgaGFzIHRoZSBmcmFtZSBjb250ZW50cyBpbXBsZW1lbnRhdGlv
biBvbmx5IGZvciBDb2NvYS4KKworICAgICAgICBUZXN0ZWQgYnkKKyAgICAgICAgZmFzdC9tZWRp
YXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTEuaHRtbAorICAgICAgICBmYXN0L21lZGlh
c3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMi5odG1sCisKKyAgICAgICAgQ3VycmVudGx5
IHRoZSAibWlycm9yZWQiIHBhcnQgaXMgdGVzdGVkIG1hbnVhbGx5LCBXZWJLaXQKKyAgICAgICAg
ZG9lcyBub3QgcmVxdWVzdCBtaXJyb3JlZCBjYW1lcmEgaW1hZ2Ugc28gaXQgaXMgZGVhZCBjb2Rl
LgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6dmlkZW9TYW1wbGVGb3JDdXJyZW50VGltZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllcjo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZTo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6dmlkZW9T
YW1wbGVGb3JDdXJyZW50VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhU2FtcGxlVmlkZW9GcmFtZS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZTo6b3JpZW50YXRpb24gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lOjpwaXhlbEJ1ZmZlciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU6Om9wZXJhdG9y
PT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lOjpkZWNv
ZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNhbXBs
ZVZpZGVvRnJhbWVBVkYubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVW
aWRlb0ZyYW1lOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dmlkZW9TYW1wbGVGb3JDdXJyZW50VGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvU2FtcGxlRm9y
Q3VycmVudFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06Cisg
ICAgICAgIChXZWJDb3JlOjp2aWRlb09yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9TYW1wbGVGb3JDdXJyZW50
VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNv
cHlUZXh0dXJlRnJvbU1lZGlhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhp
Y3NDb250ZXh0R0xDVkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQ1ZDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVZpZGVvRnJhbWVUb1RleHR1cmUpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5UGl4ZWxCdWZmZXJU
b1RleHR1cmUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBo
aWNzQ29udGV4dEdMQ1ZDb2NvYS5oOgorCiAyMDIyLTAxLTIwICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5h
Z2VyIGlzIG5vdCBhbHdheXMgY29tcHV0aW5nIHRoZSByaWdodCBkZWZhdWx0IGlucHV0IGRldmlj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAzN2U4YTlmODA2MjlmZmU5MDllNTk5YTQxNjgxNDAxNTNjNTIzNmIxLi43
OGY5NWU3MWIwNDBlZjgzMWI4NjQ2YjYzZmVlNDAzMmIyYTE4ODExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMxIEBACisyMDIyLTAxLTIwICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IFdlYkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQg
cGF0aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlhIGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzg3NjAxNzYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQu
CisKKyAgICAgICAgUmVuYW1lIGZ1bmN0aW9ucyBmcm9tIHBpeGVsQnVmZmVyLi4uIHRvIHZpZGVv
RnJhbWUuCisgICAgICAgIFNlbmQgbmV3IHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGluc3Rl
YWQgb2YgQ1ZQaXhlbEJ1ZmZlci4KKyAgICAgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGNvbnRh
aW5zIGFsc28gdGhlIGZyYW1lIG9yaWVudGF0aW9uLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hh
bmdlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSk6IERlbGV0ZWQuCisKIDIwMjItMDEtMTkgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgR3JhbnQgYWNjZXNzIHRvIEdsb2JhbFByZWZlcmVu
Y2VzIGFuZCBHbG9iYWxQcmVmZXJlbmNlc19tIHVuaWZvcm1seQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5k
ZXggODg5MGY4ZGJhNDc0YzM5MmMzNzMyOThkYTc1ODBmNzE5Y2U1YzNkZS4uZTUwMzcyZjZiZDVh
MGFhYTEzMmMyYmUxZWNjMjk5OGE0YjIyZjY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xNTEx
LDYgKzE1MTEsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJFbnVtcy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhU2FtcGxlVmlkZW9GcmFt
ZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhVXNhZ2VJbmZvLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDJjM2I0
ZjgxYTUyZjU2Njk5Y2JmZDQxMmRmYWMwOTQzNjY2YWVhZTcuLjNhZDY3MWI4MjIxZmU2OWRlMjE3
YWFhMzI1ZWU3YmMxOGYzYjU1NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMjk2LDYg
KzI5Niw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRNZXRhZGF0YVRl
eHRUcmFja1ByaXZhdGVBVkYuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCitwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tCiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBiMDgxYjZhMTlkM2RkNWZiNjdmYjE2ZTdiZmE5Yzc1ODZmZjlmMWFkLi5iODI5ZDE0YTRk
YzVhNTRiODQzZjMzZTRkN2Q4ZTcyMjY3MjU3OTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDAsNiArMjQwLDcgQEAKIAkJ
MDgxRUJGM0IwRkQzNEY0MTAwREE3NTU5IC8qIFNWR0ZpbHRlckJ1aWxkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4MUVCRjM5MEZEMzRGNDEwMERB
NzU1OSAvKiBTVkdGaWx0ZXJCdWlsZGVyLmggKi87IH07CiAJCTA4M0RBRUE3MEYwMUE3RkIwMDM0
Mjc1NCAvKiBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDgzREFFQTMwRjAxQTdGQjAwMzQyNzU0IC8qIFJl
bmRlclRleHRDb250cm9sTXVsdGlMaW5lLmggKi87IH07CiAJCTA4M0RBRUE5MEYwMUE3RkIwMDM0
Mjc1NCAvKiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4M0RBRUE1MEYwMUE3RkIwMDM0Mjc1NCAvKiBS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCAqLzsgfTsKKwkJMDg0NEIwMUQxMjU1QjRFNjAw
QjlDREQwIC8qIFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NDRCMDFEMTI1NUU0RTYwMEI5Q0REMCAvKiBT
VkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmggKi87IH07CiAJCTA4NDU2ODA4MTJCOTBEQTYwMDk2
MEE5RiAvKiBGb250TWV0cmljcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDg0NTY4MDcxMkI5MERBNjAwOTYwQTlGIC8qIEZvbnRNZXRyaWNzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDg1NEIwMTUx
MjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg1NEIwMDMxMjU1RTRFNjAwQjlDREQwIC8qIFJl
bmRlclNWR0lubGluZS5oICovOyB9OwogCQkwODU0QjAxNzEyNTVFNEU2MDBCOUNERDAgLyogUmVu
ZGVyU1ZHSW5saW5lVGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDg1NEIwMDUxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZVRleHQu
aCAqLzsgfTsKQEAgLTIzOTEsNiArMjM5Miw3IEBACiAJCTdBRjlCMjBGMThDRkI1RjQwMEM2NEJF
RiAvKiBKU1ZUVFJlZ2lvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdBRjlCMjBCMThDRkI1RjMwMEM2NEJFRiAvKiBKU1ZUVFJlZ2lvbkxpc3Qu
aCAqLzsgfTsKIAkJN0IxMDMzOUUyNTQ5NzIxNzAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdM
Q1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMTAz
MzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0IxMDMzOUYyNTQ5NzIxRTAw
QzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IxMDMzOUMyNTQ5NzIwMTAwQzhDMUFDIC8qIEdy
YXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTdCNDQxMEUxMjc5NThGQzUwMDBCNEY4QSAvKiBNZWRpYVNhbXBs
ZVZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCNDQxMERGMjc5NThGQzQwMDBCNEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjYwOTRE
RDI3MEM0NEJEMDA2NDgzNUMgLyogQU5HTEVVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBB
TkdMRVV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTdCNkRDODE5MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElP
U3VyZmFjZVN3YXBDaGFpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJN0I3MjBCMEMyNzQzREJBNzAwMDhBQkVEIC8qIEdyYXBoaWNzTGF5ZXJDb250
ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0I3MjBCMEEyNzQzREJBNjAwMDhBQkVEIC8qIEdyYXBoaWNzTGF5ZXJDb250
ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC00NjM2LDggKzQ2MzgsOCBAQAogCQlDREY3NDdGMTI3MEY3NjZGMDA4
RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDdGMDI3MEY3NjZGMDA4RkVFRUMg
LyogUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXJJbmxpbmVzLmggKi87IH07CiAJCUNERjc0N0YzMjcw
Rjc2Q0YwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5lcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RjIy
NzBGNzZDRjAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnRJbmxpbmVz
LmggKi87IH07CiAJCUNERjc0N0Y1MjcwRjgzQjEwMDhGRUVFQyAvKiBSZW5kZXJTVkdHcmFkaWVu
dFN0b3BJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREY3NDdGNDI3MEY4M0IxMDA4RkVFRUMgLyogUmVuZGVyU1ZHR3JhZGllbnRTdG9wSW5s
aW5lcy5oICovOyB9OwotCQlDREY3NDdGNzI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVy
U1ZHU2hhcGVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREY3NDdGNjI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJ
bmxpbmVzLmggKi87IH07CiAJCUNERjc0N0Y3MjcwRjgzQjQxMDdERUVFQyAvKiBSZW5kZXJTVkdT
aGFwZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENERjc0N0Y2MjcwRjgzQjQxMDdERUVFQyAvKiBSZW5kZXJTVkdTaGFwZUlubGluZXMuaCAq
LzsgfTsKKwkJQ0RGNzQ3RjcyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRlclNWR1NoYXBl
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RGNzQ3RjYyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRlclNWR1NoYXBlSW5saW5lcy5o
ICovOyB9OwogCQlDREY3NDdGOTI3MEY4N0NCMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VS
YWRpYWxHcmFkaWVudElubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENERjc0N0Y4MjcwRjg3Q0IwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJj
ZVJhZGlhbEdyYWRpZW50SW5saW5lcy5oICovOyB9OwogCQlDREY3NDdGQjI3MEY4OTFBMDA4RkVF
RUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDdGQTI3MEY4OTFBMDA4RkVFRUMgLyog
UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXJJbmxpbmVzLmggKi87IH07CiAJCUNERjc0ODNGMThGRUJD
RUMwMDA2RUNDMCAvKiBHcmlkUG9zaXRpb25zUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0ODNEMThGRUJDRUMwMDA2RUNDMCAvKiBH
cmlkUG9zaXRpb25zUmVzb2x2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtNjE5OCwxMCArNjIwMCwxMiBAQAogCQkwODFBQThEOTExMTEyMzdF
MDAyQUIwNkUgLyogU1ZHRWxlbWVudFJhcmVEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNWR0VsZW1lbnRSYXJlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwODFFQkYzODBGRDM0RjQxMDBEQTc1NTkgLyogU1ZHRmlsdGVyQnVpbGRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdGaWx0ZXJCdWlsZGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgxRUJGMzkwRkQzNEY0MTAwREE3NTU5IC8q
IFNWR0ZpbHRlckJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
RmlsdGVyQnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwODM0QjAwQzEy
NDRFNEU2MDBCOUNERDAgLyogU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgzREFFQTIwRjAxQTdGQjAwMzQyNzU0
IC8qIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgzREFFQTMwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRl
eHRDb250cm9sTXVsdGlMaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bmRlclRleHRDb250cm9sTXVsdGlMaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA4M0RBRUE0MEYwMUE3RkIwMDM0Mjc1NCAvKiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgzREFFQTUw
RjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDg0NEIwMUQxMjU1RTRFNjAwQjlDREQwIC8q
IFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwODQ1NjgwNzEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udE1ldHJpY3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDg1NEIwMDIxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGlu
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdJbmxp
bmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODU0QjAwMzEyNTVFNEU2MDBC
OUNERDAgLyogUmVuZGVyU1ZHSW5saW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlclNWR0lubGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE0
NjksNiArMTE0NzMsOCBAQAogCQk3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3ND
b250ZXh0R0xDVkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2Nv
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjEwMzM5RDI1NDk3MjAxMDBDOEMx
QUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRl
eHRHTENWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTYxOTEwMjcxOTg4MEUw
MEM0MEVBQyAvKiBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVkaWFT
YW1wbGVWaWRlb0ZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
U2FtcGxlVmlkZW9GcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjQ0MTBF
MjI3OTU4RkRFMDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3QjZEQzgxNTI1NzEyRTkxMDAzODBDNzAgLyogR3JhcGhpY3NDb250
ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhp
Y3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MjBCMEEyNzQzREJBNjAwMDhBQkVEIC8qIEdyYXBoaWNz
TGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNDA3LDkgKzEzNDEzLDkgQEAKIAkJQTEwQkI1ODMxNDg0
RTNBNzAwQjJFODdBIC8qIExlZ2FjeVJlbmRlclNWR1JlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTGVnYWN5UmVuZGVyU1ZHUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBMTBCQjU4MzE0ODRFM0E3MDBCM0FCNkQgLyogUmVuZGVyU1ZHUmVjdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZWN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg4MTQ4NEUzQjMwMEIyRTg3QSAvKiBMZWdhY3lS
ZW5kZXJTVkdTaGFwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBM
ZWdhY3lSZW5kZXJTVkdTaGFwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUEx
MENDNTg4MTQ3M0UzQjMwMEIyQThCRiAvKiBSZW5kZXJTVkdTaGFwZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdTaGFwZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg5MTQ4NEUzQjMwMEIyRTg3QSAvKiBMZWdhY3lSZW5k
ZXJTVkdTaGFwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lSZW5k
ZXJTVkdTaGFwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBCQjU4OTE0ODRF
M0IzMDBDM0Y3N0IgLyogUmVuZGVyU1ZHU2hhcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVuZGVyU1ZHU2hhcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTEwQ0M1ODgxNDczRTNCMzAwQjJBOEJGIC8qIFJlbmRlclNWR1NoYXBlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwRDZFOTQyMTQ0Qzk5ODAwRkREMTREIC8qIEpTUGF5bWVu
dFJlc3BvbnNlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGF5bWVudFJlc3BvbnNl
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwREJGNDYxOEY5MjMx
NzAwMEQ3MEM2IC8qIExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UHJldmlld0xvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMTBEQzc2ODE0NzQ3QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlk
RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUdyaWRE
YXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MzExLDggKzE2MzE3LDgg
QEAKIAkJQ0RGNzQ3RjAyNzBGNzY2RjAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTWFya2Vy
SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcklubGluZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNzQ3RjIyNzBGNzZDRjAwOEZFRUVD
IC8qIFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnRJbmxpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnRJbmxpbmVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNERjc0N0Y0MjcwRjgzQjEwMDhGRUVFQyAvKiBSZW5kZXJTVkdH
cmFkaWVudFN0b3BJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR0dyYWRpZW50U3Rv
cElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0RGNzQ3RjYyNzBGODZB
NDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRlclNWR1NoYXBlSW5saW5lcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RGNzQ3RjYyNzBGODNCNDEwN0RFRUVDIC8qIFJlbmRlclNWR1NoYXBlSW5saW5lcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdTaGFwZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0RGNzQ3RjYyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRlclNW
R1NoYXBlSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGlu
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNzQ3RjgyNzBGODdDQjAwOEZF
RUVDIC8qIFJlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnRJbmxpbmVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnRJbmxpbmVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjc0N0ZBMjcwRjg5MUEwMDhGRUVFQyAvKiBSZW5kZXJT
VkdSZXNvdXJjZU1hc2tlcklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHUmVzb3Vy
Y2VNYXNrZXJJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjc0ODND
MThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NzAzLDYgKzE4NzA5LDcgQEAKIAkJCQkwNzFF
NDk2RDFBRDVBQTBEMDA4QTUwQjQgLyogTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tICovLAog
CQkJCTA3NkYwRDA5MTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uY3BwICovLAogCQkJCTA3NkYwRDBBMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uaCAqLywKKwkJCQk3QjQ0MTBFMjI3OTU4RkRFMDAwQjRGOEEg
LyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tICovLAogCQkJCUNEQkVBRUFCMTlEOTJCNkMw
MEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oICovLAogCQkJCUNEQkVBRUFB
MTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbSAqLywKIAkJ
CQk0MTAyNEZDODIzQ0YyNTRGMDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNw
cCAqLywKQEAgLTI4OTI4LDYgKzI4OTM1LDcgQEAKIAkJCQlDRDUyMDlFMzFCMEJEODM4MDA3NzE4
NEUgLyogTWVkaWFQbGF5ZXJFbnVtcy5oICovLAogCQkJCUY0MjkyNjE3MjUyNjRENDQwMDAwNzg5
OCAvKiBNZWRpYVBsYXllcklkZW50aWZpZXIuaCAqLywKIAkJCQkwNzlGNUU0QjBGM0JFQkVBMDA1
RTA3ODIgLyogTWVkaWFQbGF5ZXJQcml2YXRlLmggKi8sCisJCQkJN0I0NDEwREYyNzk1OEZDNDAw
MEI0RjhBIC8qIE1lZGlhU2FtcGxlVmlkZW9GcmFtZS5oICovLAogCQkJCUNENjQxRUIxMTgxOEY1
RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVByaXZhdGUuaCAqLywKIAkJCQlDRERDMUU3OTE4QTk1
MkYzMDAyN0E5RDQgLyogTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmggKi8sCiAJCQkJMDc2MTFE
QjgyNDNGQjc1QzAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggKi8sCkBAIC0zNjEwNiw2ICsz
NjExNCw3IEBACiAJCQkJREY5QUZENzIxM0ZDMzFEODAwMTVGRUI3IC8qIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzhCNUEzMTgwNDYz
NDcwMDE2RTY4NSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTE1MDUyNEY0MUI3MTJGRjYwMDY5NkFBOSAvKiBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCNDQxMEUxMjc5
NThGQzUwMDBCNEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA3N0JBNTc2MjYwRkFERjYwMDcyRjE5RiAvKiBNZWRpYVBvc2l0aW9uU3RhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9NZWRpYVNhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaApp
bmRleCAwODQ3Yjk3NGU5M2U4NzJhMjI5ZTdhMTYxMGYyZDQ0ZTkwMmNjMGJkLi4zNWJhYTMwMDg1
YTk1MWU1NTBhYWFiYmUwYmY2M2I4ZmE2NWMyN2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01l
ZGlhU2FtcGxlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAi
RmxvYXRTaXplLmgiCisjaW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgiCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJheXMuaD4KICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0
cy5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KQEAgLTEwNiw2ICsxMDcsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCB7IHJl
dHVybiBWaWRlb1JvdGF0aW9uOjpOb25lOyB9CiAgICAgdmlydHVhbCBib29sIHZpZGVvTWlycm9y
ZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdWludDMyX3QgdmlkZW9Q
aXhlbEZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9u
YWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lKCkgY29uc3QgeyByZXR1cm4gc3Rk
OjpudWxsb3B0OyB9OwogCiAgICAgYm9vbCBpc1N5bmMoKSBjb25zdCB7IHJldHVybiBmbGFncygp
ICYgSXNTeW5jOyB9CiAgICAgYm9vbCBpc05vbkRpc3BsYXlpbmcoKSBjb25zdCB7IHJldHVybiBm
bGFncygpICYgSXNOb25EaXNwbGF5aW5nOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggYzEyODFhNDQ2YjE1NjU5MDliMzE0NGE3
ODJjOTk3OGVlOTA4OWZlMi4uM2ZjYWU4YzMxMGQ4NjE3ZTBhNWYzYjQ5NTdjNWNjY2VhZGFjMTFh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcApAQCAtMTA2MiwxNSArMTA2MiwxMyBAQCBib29sIE1lZGlhUGxheWVyOjpjb3B5VmlkZW9U
ZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wqIGNvbnRleHQsCiAgICAg
cmV0dXJuIG1fcHJpdmF0ZS0+Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKGNvbnRl
eHQsIHRleHR1cmUsIHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUs
IHByZW11bHRpcGx5QWxwaGEsIGZsaXBZKTsKIH0KIAotI2Vsc2UKKyNlbmRpZgogCi1SZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXI6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWUoKQorc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhUGxheWVyOjp2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewotICAgIHJldHVybiBtX3ByaXZhdGUtPnBpeGVs
QnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT52aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWUoKTsKIH0KIAotI2VuZGlmCi0KIFJlZlB0cjxOYXRpdmVJbWFnZT4gTWVk
aWFQbGF5ZXI6Om5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKQogewogICAgIHJldHVybiBtX3By
aXZhdGUtPm5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGMxM2Q3MDMyZjI4Y2NkOTA4NzJi
MDkyNzZkOTM3MmE0MjY1M2EyMDEuLjA3MWNjMWU2ZTVlMDNmZjE0NzVhMGY0OTUyY2I1YjhkMGFl
MTBkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKICNpbmNsdWRl
ICJNZWRpYVBsYXllckVudW1zLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1M
YXllci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW5EYXRhLmgiCkBAIC00NjcsMTAgKzQ2OCw4IEBAIHB1YmxpYzoKICAgICAvLyBUaGUg
Y3VycmVudCByZXN0cmljdGlvbnMgcmVxdWlyZSB0aGF0IGZvcm1hdCBzaG91ZCBiZSBSR0Igb3Ig
UkdCQSwgdHlwZSBzaG91bGQgYmUgVU5TSUdORURfQllURSBhbmQgbGV2ZWwgc2hvdWxkIGJlIDAu
IEl0IG1heSBiZSBsaWZ0ZWQgaW4gdGhlIGZ1dHVyZS4KICNpZiAhVVNFKEFWRk9VTkRBVElPTikK
ICAgICBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRl
eHRHTCosIFBsYXRmb3JtR0xPYmplY3QgdGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50
IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51
bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpOwotI2Vsc2UKLSAgICBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpOwog
I2VuZGlmCi0KKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBuYXRpdmVJbWFn
ZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2Uo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaAppbmRleCA2ZTQ3N2JjYWY5YzQ4NTdhMDE3NzI2NTcyMmY4MWJmODRmYmMz
MGRlLi5mOWZmNGNiZjI4NjlkOTMzMTIwZWRlMDBkMDE1ZTVhZGRmNDc4MjkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUu
aApAQCAtMjksOCArMjksMTAgQEAKIAogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0Zy
YW1lLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVS
YW5nZXMuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KIAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQpAQCAtMTc4LDkg
KzE4MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNv
bnRleHQoR3JhcGhpY3NDb250ZXh0JiBjLCBjb25zdCBGbG9hdFJlY3QmIHIpIHsgcGFpbnQoYywg
cik7IH0KICNpZiAhVVNFKEFWRk9VTkRBVElPTikKICAgICB2aXJ0dWFsIGJvb2wgY29weVZpZGVv
VGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiwgUGxhdGZvcm1HTE9i
amVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJv
b2wsIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9Ci0jZWxzZQotICAgIHZpcnR1YWwgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKSB7IHJldHVybiBu
dWxscHRyOyB9CiAjZW5kaWYKKyAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVW
aWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSB7IHJldHVybiBzdGQ6Om51bGxv
cHQ7IH0KICAgICB2aXJ0dWFsIFJlZlB0cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJy
ZW50VGltZSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIERlc3RpbmF0aW9uQ29s
b3JTcGFjZSBjb2xvclNwYWNlKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhU2FtcGxlVmlkZW9GcmFtZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcx
NDc0Y2ZiMTNmZmIxMTk2ZDNjMjQwNTBhMTYyNmI3M2I0ODNlZjYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUu
aApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorI2luY2x1ZGUgIklt
YWdlT3JpZW50YXRpb24uaCIKKworI2lmIFVTRShBVkZPVU5EQVRJT04pCisjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgorCit1c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZm
ZXIqOworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFTYW1wbGVW
aWRlb0ZyYW1lIHsKK3B1YmxpYzoKKyAgICBNZWRpYVNhbXBsZVZpZGVvRnJhbWUoKSA9IGRlbGV0
ZTsKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhU2FtcGxl
VmlkZW9GcmFtZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiwgSW1hZ2VPcmllbnRhdGlv
bik7CisjZW5kaWYKKworICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCB7
IHJldHVybiBtX29yaWVudGF0aW9uOyB9CisKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsQnVmZmVy
LmdldCgpOyB9CisjZW5kaWYKKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBNZWRpYVNhbXBs
ZVZpZGVvRnJhbWUmIG90aGVyKSBjb25zdDsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IGRlY29k
ZShEZWNvZGVyJik7CisKK3ByaXZhdGU6CisjaWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlcjsKKyNlbmRpZgorICAgIEltYWdl
T3JpZW50YXRpb24gbV9vcmllbnRhdGlvbjsKK307CisKK2lubGluZSBib29sIE1lZGlhU2FtcGxl
VmlkZW9GcmFtZTo6b3BlcmF0b3I9PShjb25zdCBNZWRpYVNhbXBsZVZpZGVvRnJhbWUmIG90aGVy
KSBjb25zdAoreworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAgaWYgKG1fcGl4ZWxCdWZmZXIg
IT0gb3RoZXIubV9waXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisg
ICAgcmV0dXJuIEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uKG90aGVyLm1fb3JpZW50YXRp
b24pID09IEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uKG1fb3JpZW50YXRpb24pOworfQor
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIE1lZGlhU2FtcGxlVmlkZW9GcmFtZTo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisjaWYgVVNFKEFWRk9VTkRBVElPTikK
KyAgICBlbmNvZGVyIDw8IG1fcGl4ZWxCdWZmZXI7CisgICAgZW5jb2RlciA8PCBJbWFnZU9yaWVu
dGF0aW9uOjpPcmllbnRhdGlvbihtX29yaWVudGF0aW9uKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGVuY29kZXIpOworI2VuZGlmCit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0
ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVNhbXBsZVZpZGVvRnJhbWU6
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAg
c3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHBpeGVsQnVmZmVyOwor
ICAgIGRlY29kZXIgPj4gcGl4ZWxCdWZmZXI7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBzdGQ6Om9wdGlvbmFsPEltYWdlT3JpZW50YXRp
b246Ok9yaWVudGF0aW9uPiBvcmllbnRhdGlvbjsKKyAgICBkZWNvZGVyID4+IG9yaWVudGF0aW9u
OworICAgIGlmICghb3JpZW50YXRpb24pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgcmV0dXJuIE1lZGlhU2FtcGxlVmlkZW9GcmFtZSB7IFdURk1vdmUoKnBpeGVsQnVmZmVyKSwg
Km9yaWVudGF0aW9uIH07CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZWNvZGVyKTsKKyAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworI2VuZGlmCit9CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2FtcGxl
VmlkZW9GcmFtZUFWRi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ5NTk4MTJm
NjZmY2E3MDU0MTdiMDJhZjU1MWZmYzEzMWE4NDM2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNhbXBsZVZpZGVv
RnJhbWVBVkYubW0KQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShWSURF
TykKKyNpbmNsdWRlICJNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitNZWRpYVNhbXBsZVZpZGVvRnJhbWU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZShSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiBwaXhlbEJ1ZmZlciwgSW1hZ2VPcmllbnRhdGlvbiBv
cmllbnRhdGlvbikKKyAgICA6IG1fcGl4ZWxCdWZmZXIoV1RGTW92ZShwaXhlbEJ1ZmZlcikpCisg
ICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQoreworfQorCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oCmluZGV4IDk1YTM3ODlhZDYyNzE5YzEwMGJjMDY3ZDNjZThhYWE5MzJk
NTc0MTEuLmNkYWExYjA5OGMzYTU0YjFhNmM2MWE0NWRkZGJkZjJjNjkzZDYyYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKQEAgLTI2MiwxMiArMjYyLDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCB1
cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKTsKICAgICBib29sIHZpZGVvT3V0cHV0SGFzQXZhaWxhYmxl
RnJhbWUoKTsKICAgICB2b2lkIHBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEZsb2F0UmVjdCYpOworICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0Zy
YW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKICAgICBSZWZQdHI8TmF0aXZl
SW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKICAgICBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGZpbmFsOwogICAgIHZvaWQgd2FpdEZvclZpZGVvT3V0
cHV0TWVkaWFEYXRhV2lsbENoYW5nZSgpOwogCi0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+IHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKLQogI2lmIEVOQUJMRShMRUdB
Q1lfRU5DUllQVEVEX01FRElBKQogICAgIHZvaWQga2V5QWRkZWQoKSBmaW5hbDsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8TGVnYWN5Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcm
IGtleVN5c3RlbSwgTGVnYWN5Q0RNU2Vzc2lvbkNsaWVudCopIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KaW5kZXggYmRjMmE4MmU3M2Y0ZmRmODhiNWE1NGM5OTdmMzJiZjY4OWRlOTk2YS4u
OGM5YWVkYjIxZDFhZWRkMDA5ZDIwZWM5OTI4MDZkZmY1ZWI3ZjQ2MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCkBAIC0yNjI1LDExICsyNjI1LDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0JiBj
CiAKIH0KIAotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQorc3RkOjpvcHRpb25h
bDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgdXBkYXRlTGFzdFBpeGVsQnVm
ZmVyKCk7Ci0KLSAgICByZXR1cm4gbV9sYXN0UGl4ZWxCdWZmZXI7CisgICAgaWYgKCFtX2xhc3RQ
aXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gTWVk
aWFTYW1wbGVWaWRlb0ZyYW1lIHsgUmV0YWluUHRyIHsgbV9sYXN0UGl4ZWxCdWZmZXIgfSwgSW1h
Z2VPcmllbnRhdGlvbjo6Tm9uZSB9OwogfQogCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCA5MzEzYzFiM2RmNmQzNjk2MDhjNzU1ZjA1NWQ0
NjFkYWI1ZGY3MjJhLi5iY2FkMTI1NDM2M2ExODdjNjhhMzM2OGZhN2E3YTE0ODUxNWI4MmU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtMjIyLDcgKzIyMiw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCB1cGRhdGVMYXN0SW1hZ2UoKTsKICAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4
dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJh
bWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7
Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWUoKSBmaW5hbDsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNl
IGNvbG9yU3BhY2UoKSBmaW5hbDsKIAogICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRl
cmluZygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IGIy
Y2U2YmJjN2FhY2M4Y2VjYzIxYzk0MTI5NWU0MzE4YWRjYjg5YTMuLmY2NzhmY2RhMDcxODhmY2Ix
OTJkOTRlM2Q2YmVjMzdjNWU2YzdiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAg
LTcyMSw3ICs3MjEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDbwogICAgIGNvbnRleHQuZHJh
d05hdGl2ZUltYWdlKCppbWFnZSwgaW1hZ2VSZWN0LnNpemUoKSwgb3V0cHV0UmVjdCwgaW1hZ2VS
ZWN0KTsKIH0KIAotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCitzdGQ6Om9w
dGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewogICAgIC8vIFdlIGhhdmUg
YmVlbiBhc2tlZCB0byBwYWludCBpbnRvIGEgV2ViR0wgY2FudmFzLCBzbyB0YWtlIHRoYXQgYXMg
YSBzaWduYWwgdG8gY3JlYXRlCiAgICAgLy8gYSBkZWNvbXByZXNzaW9uIHNlc3Npb24sIGV2ZW4g
aWYgdGhhdCBtZWFucyB0aGUgbmF0aXZlIHZpZGVvIGNhbid0IGFsc28gYmUgZGlzcGxheWVkCkBA
IC03MzMsOCArNzMzLDkgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGl4ZWxCdWZmZXJGb3IKIAogICAgIGlmICghbV9p
c0dhdGhlcmluZ1ZpZGVvRnJhbWVNZXRhZGF0YSkKICAgICAgICAgdXBkYXRlTGFzdFBpeGVsQnVm
ZmVyKCk7Ci0KLSAgICByZXR1cm4gbV9sYXN0UGl4ZWxCdWZmZXI7CisgICAgaWYgKCFtX2xhc3RQ
aXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gTWVk
aWFTYW1wbGVWaWRlb0ZyYW1lIHsgUmV0YWluUHRyIHsgbV9sYXN0UGl4ZWxCdWZmZXIgfSwgSW1h
Z2VPcmllbnRhdGlvbjo6Tm9uZSB9OwogfQogCiBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjb2xvclNwYWNlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLmgKaW5kZXggNmQ5NTU2NzRkMDYyNzVhZTQzM2U1YTU0YTM3YzM0ZTZiZjM3Zjlh
Mi4uMGRhYmI5NjNmNDU5ZTU5YjY5ZGRjYzIyMjg2NWNhZmY1MWQ1YzFhMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLmgKQEAgLTE0Miw2ICsxNDIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBw
YWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2
b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0Zy
YW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBvdmVycmlkZTsKICAgICBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIG92ZXJyaWRlOwogICAgIGJvb2wgbWV0YURhdGFBdmFp
bGFibGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtUHJpdmF0ZSAmJiBtX3JlYWR5U3Rh
dGUgPj0gTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KaW5kZXggNDlmNDJmOWMwMmI4Mjk1MzI1NzczOGMzNDQwNDNkZWI0
MTA4NTFjMi4uZDkyMWVlZmM3ZDFiYWY1NTkzZDIxYmY0M2QxMTY3ZmY4NDdkMWEzNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMTAwMyw2ICsxMDAzLDE3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4
dChHcmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmltYWdlLCBpbWFnZVJl
Y3Quc2l6ZSgpLCB0cmFuc2Zvcm1lZERlc3RSZWN0LCBpbWFnZVJlY3QpOwogfQogCitzdGQ6Om9w
dGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQoreworICAgIGlmIChtX2Rpc3Bs
YXlNb2RlID09IE5vbmUgfHwgIW1ldGFEYXRhQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgaWYgKG1fZGlzcGxheU1vZGUgPT0gUGFpbnRJdEJsYWNrKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghbV9pbWFnZVBhaW50ZXIubWVkaWFT
YW1wbGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIG1faW1hZ2VQ
YWludGVyLm1lZGlhU2FtcGxlLT52aWRlb0ZyYW1lKCk7Cit9CisKIERlc3RpbmF0aW9uQ29sb3JT
cGFjZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNvbG9yU3BhY2UoKQog
ewogICAgIHVwZGF0ZUN1cnJlbnRGcmFtZUltYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9i
akMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhU2FtcGxlQVZGT2JqQy5oCmluZGV4IGVhYTBhMWQ0MWY2ZTI2MDllNDAwMmZmNDI2Zjc1
NzA4ODAzYzlhOGUuLjkwMDdkY2NhOWRlZTEwZWViYzNiMzFkNjMzODA2MGQ3ZTkyMzcwNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCkBAIC03Miw3ICs3
Miw3IEBAIHB1YmxpYzoKICAgICBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX3JvdGF0aW9uOyB9CiAgICAgYm9vbCB2aWRlb01pcnJvcmVkKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9taXJyb3JlZDsgfQogICAgIFdFQkNPUkVfRVhQT1JU
IHVpbnQzMl90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKLQorICAgIFdFQkNPUkVf
RVhQT1JUIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lKCkg
Y29uc3QgZmluYWw7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyKCkgY29uc3Qg
eyByZXR1cm4gbV9zYW1wbGUuZ2V0KCk7IH0KIAogICAgIGJvb2wgaXNIb21vZ2VuZW91cygpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCmluZGV4
IDdhMWEwMGZlOTAzZTc5NTcxMmFkMmVhM2FmZTUyMDk2YzdiNDRiYjAuLjRhMGZhYzYxZWIxZWY2
MDMzZWQyOTc0MzVkYWE5MjZlOWVkZWFjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVNhbXBsZUFWRk9iakMubW0KQEAgLTE2NSw2ICsxNjUsMjcgQEAgdWludDMyX3QgTWVkaWFT
YW1wbGVBVkZPYmpDOjp2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QKICAgICByZXR1cm4gQ1ZQaXhl
bEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcik7CiB9CiAKK3N0ZDo6b3B0aW9u
YWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVNhbXBsZUFWRk9iakM6OnZpZGVvRnJhbWUo
KSBjb25zdAoreworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVm
ZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0KCkp
KTsKKyAgICBpZiAoIXBpeGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBbJl0geworICAgICAgICAvLyBTYW1w
bGUgdHJhbnNmb3JtIGZpcnN0IGZsaXBzIHgtY29vcmRpbmF0ZXMsIHRoZW4gcm90YXRlcy4KKyAg
ICAgICAgc3dpdGNoIChtX3JvdGF0aW9uKSB7CisgICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZp
ZGVvUm90YXRpb246Ok5vbmU6CisgICAgICAgICAgICByZXR1cm4gbV9taXJyb3JlZCA/IEltYWdl
T3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9w
TGVmdDsKKyAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ6Cisg
ICAgICAgICAgICByZXR1cm4gbV9taXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblJp
Z2h0Qm90dG9tIDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRUb3A7CisgICAgICAgIGNh
c2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd246CisgICAgICAgICAgICBy
ZXR1cm4gbV9taXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbUxlZnQgOiBJ
bWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21SaWdodDsKKyAgICAgICAgY2FzZSBNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDoKKyAgICAgICAgICAgIHJldHVybiBtX21pcnJvcmVk
ID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luTGVmdFRvcCA6IEltYWdlT3JpZW50YXRpb246Ok9y
aWdpbkxlZnRCb3R0b207CisgICAgICAgIH0KKyAgICB9KCk7CisgICAgcmV0dXJuIE1lZGlhU2Ft
cGxlVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IHBpeGVsQnVmZmVyIH0sIG9yaWVudGF0aW9uIH07
Cit9CisKIHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50UmFuZG9tQWNjZXNz
KENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50RGljdCkKIHsKICAgICByZXR1cm4gIUNGRGljdGlv
bmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfTm90U3luYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCAzMmRiNmVl
ODJjY2QwMTkzOGI0MDdhNmI2ZThkZWNmODU1MmJjODE5Li41MzAyYTcxYTkwZTZkYjUxNjM1Njkw
ZDdiMDBhZTAzYTFmYTU5YTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAg
LTc5MSw4ICs3OTEsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtUmVs
ZWFzZVRocmVhZFJlc291cmNlcygpCiAjaWYgRU5BQkxFKFZJREVPKQogYm9vbCBHcmFwaGljc0Nv
bnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBQ
bGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xlbnVtIG91dHB1dFRhcmdldCwgR0NH
TGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NH
TGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKQogewotICAgIGF1
dG8gcGl4ZWxCdWZmZXIgPSBwbGF5ZXIucGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpOwotICAg
IGlmICghcGl4ZWxCdWZmZXIpCisgICAgYXV0byB2aWRlb0ZyYW1lID0gcGxheWVyLnZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZSgpOworICAgIGlmICghdmlkZW9GcmFtZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgYXV0byBjb250ZXh0Q1YgPSBhc0NWKCk7CkBAIC04MDEsNyArODAxLDcg
QEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRp
YVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUcKIAogICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0
aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5VU0VEKG91dHB1dFRhcmdldCwgb3V0cHV0VGFyZ2V0
ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJEKTsKLSAgICByZXR1cm4gY29udGV4dENW
LT5jb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUocGl4ZWxCdWZmZXIuZ2V0KCksIG91dHB1dFRleHR1
cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRH
TDo6RmxpcFkoZmxpcFkpKTsKKyAgICByZXR1cm4gY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVU
b1RleHR1cmUoKnZpZGVvRnJhbWUsIG91dHB1dFRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1h
dCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKTsKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9H
cmFwaGljc0NvbnRleHRHTENWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9HcmFwaGljc0NvbnRleHRHTENWLmgKaW5kZXggMWQ2MTVhN2YwZWYxMTMyMzI2ODAyZTU2NGE5
YWQ1MjUyN2UwMzA2Ny4uYWMxNDc1ZTlkYTM2ZWQxNDEzNTIyZTk2OTEyMmI2MzFlMzE5M2VmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3ND
b250ZXh0R0xDVi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dy
YXBoaWNzQ29udGV4dEdMQ1YuaApAQCAtMjksOSArMjksOCBAQAogCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0R0wuaCIKIAotdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZl
clJlZjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTWVkaWFTYW1wbGVWaWRlb0ZyYW1l
OwogCiAvLyBJbnRlcmZhY2UgdG8gaW50ZXJhY3Qgd2l0aCBDViBvYmplY3RzIGFuZCBHcmFwaGlj
c0NvbnRleHRHTC4KIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMQ1YgewpAQCAtNDEsNyArNDAsNyBA
QCBwdWJsaWM6CiAgICAgdXNpbmcgRmxpcFkgPSBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFk7CiAg
ICAgLy8gQ29waWVzIENWIHBpeGVsIGJ1ZmZlciB0byBHcmFwaGljc0NvbnRleHRHTCBURVhUVVJF
XzJEIHRleHR1cmUgb2YgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgcGl4ZWwgYnVmZmVyLgogICAgIC8v
IFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgotICAgIHZpcnR1YWwgYm9vbCBjb3B5UGl4ZWxCdWZm
ZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0
dXJlLCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9y
bWF0LCBHQ0dMZW51bSB0eXBlLCBGbGlwWSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjb3B5Vmlk
ZW9TYW1wbGVUb1RleHR1cmUoY29uc3QgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lJiwgUGxhdGZvcm1H
TE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZv
cm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBGbGlwWSkgPSAwOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhp
Y3NDb250ZXh0R0xDVkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKaW5kZXggMjQ5OTVhM2VlZWRiZWM5NDg1
YmMxYzZhNjliNjI1ZDBiZTdhODk5My4uZDQ1MjA0OWNhZDM3MzBiZjk5MzA5ZTc2ZjIyOTc1ODcw
NjFhODk2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCkBAIC00OSw2ICs0OSw4
IEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzX3l1dlZlcnRleFNoYWRlclRleHR1cmUyRCB7CiAg
ICAgInVuaWZvcm0gdmVjMiB1X3lUZXh0dXJlU2l6ZTsiCiAgICAgInVuaWZvcm0gdmVjMiB1X3V2
VGV4dHVyZVNpemU7IgogICAgICJ1bmlmb3JtIGludCB1X2ZsaXBZOyIKKyAgICAidW5pZm9ybSBp
bnQgdV9mbGlwWDsiCisgICAgInVuaWZvcm0gaW50IHVfc3dhcFhZOyIKICAgICAidmFyeWluZyB2
ZWMyIHZfeVRleHR1cmVDb29yZGluYXRlOyIKICAgICAidmFyeWluZyB2ZWMyIHZfdXZUZXh0dXJl
Q29vcmRpbmF0ZTsiCiAgICAgInZvaWQgbWFpbigpIgpAQCAtNTcsNiArNTksMTAgQEAgc3RhdGlj
IGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVydGV4U2hhZGVyVGV4dHVyZTJEIHsKICAgICAiICAgIHZl
YzIgbm9ybWFsaXplZFBvc2l0aW9uID0gYV9wb3NpdGlvbiAqIC41ICsgLjU7IgogICAgICIgICAg
aWYgKHVfZmxpcFkgPT0gMSkiCiAgICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnkgPSAx
LjAgLSBub3JtYWxpemVkUG9zaXRpb24ueTsiCisgICAgIiAgICBpZiAodV9mbGlwWCA9PSAxKSIK
KyAgICAiICAgICAgICBub3JtYWxpemVkUG9zaXRpb24ueCA9IDEuMCAtIG5vcm1hbGl6ZWRQb3Np
dGlvbi54OyIKKyAgICAiICAgIGlmICh1X3N3YXBYWSA9PSAxKSIKKyAgICAiICAgICAgICBub3Jt
YWxpemVkUG9zaXRpb24ueHkgPSBub3JtYWxpemVkUG9zaXRpb24ueXg7IgogICAgICIgICAgdl95
VGV4dHVyZUNvb3JkaW5hdGUgPSBub3JtYWxpemVkUG9zaXRpb247IgogICAgICIgICAgdl91dlRl
eHR1cmVDb29yZGluYXRlID0gbm9ybWFsaXplZFBvc2l0aW9uOyIKICAgICAifSJfcwpAQCAtNjcs
NiArNzMsOCBAQCBzdGF0aWMgY29uc3RleHByIGF1dG8gc195dXZWZXJ0ZXhTaGFkZXJUZXh0dXJl
UmVjdGFuZ2xlIHsKICAgICAidW5pZm9ybSB2ZWMyIHVfeVRleHR1cmVTaXplOyIKICAgICAidW5p
Zm9ybSB2ZWMyIHVfdXZUZXh0dXJlU2l6ZTsiCiAgICAgInVuaWZvcm0gaW50IHVfZmxpcFk7Igor
ICAgICJ1bmlmb3JtIGludCB1X2ZsaXBYOyIKKyAgICAidW5pZm9ybSBpbnQgdV9zd2FwWFk7Igog
ICAgICJ2YXJ5aW5nIHZlYzIgdl95VGV4dHVyZUNvb3JkaW5hdGU7IgogICAgICJ2YXJ5aW5nIHZl
YzIgdl91dlRleHR1cmVDb29yZGluYXRlOyIKICAgICAidm9pZCBtYWluKCkiCkBAIC03NSw2ICs4
MywxMCBAQCBzdGF0aWMgY29uc3RleHByIGF1dG8gc195dXZWZXJ0ZXhTaGFkZXJUZXh0dXJlUmVj
dGFuZ2xlIHsKICAgICAiICAgIHZlYzIgbm9ybWFsaXplZFBvc2l0aW9uID0gYV9wb3NpdGlvbiAq
IC41ICsgLjU7IgogICAgICIgICAgaWYgKHVfZmxpcFkgPT0gMSkiCiAgICAgIiAgICAgICAgbm9y
bWFsaXplZFBvc2l0aW9uLnkgPSAxLjAgLSBub3JtYWxpemVkUG9zaXRpb24ueTsiCisgICAgIiAg
ICBpZiAodV9mbGlwWCA9PSAxKSIKKyAgICAiICAgICAgICBub3JtYWxpemVkUG9zaXRpb24ueCA9
IDEuMCAtIG5vcm1hbGl6ZWRQb3NpdGlvbi54OyIKKyAgICAiICAgIGlmICh1X3N3YXBYWSA9PSAx
KSIKKyAgICAiICAgICAgICBub3JtYWxpemVkUG9zaXRpb24ueHkgPSBub3JtYWxpemVkUG9zaXRp
b24ueXg7IgogICAgICIgICAgdl95VGV4dHVyZUNvb3JkaW5hdGUgPSBub3JtYWxpemVkUG9zaXRp
b24gKiB1X3lUZXh0dXJlU2l6ZTsiCiAgICAgIiAgICB2X3V2VGV4dHVyZUNvb3JkaW5hdGUgPSBu
b3JtYWxpemVkUG9zaXRpb24gKiB1X3V2VGV4dHVyZVNpemU7IgogICAgICJ9Il9zCkBAIC01NDgs
NiArNTYwLDggQEAgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpHcmFwaGljc0NvbnRleHRHTENW
Q29jb2EoR3JhcGhpY3NDb250ZXh0R0xDb2NvYSYgb3duZXIKICAgICBtX3V2VGV4dHVyZVVuaWZv
cm1Mb2NhdGlvbiA9IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9ncmFtLCAidV91dlRleHR1
cmUiKTsKICAgICBtX2NvbG9yTWF0cml4VW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxv
Y2F0aW9uKHl1dlByb2dyYW0sICJ1X2NvbG9yTWF0cml4Iik7CiAgICAgbV95dXZGbGlwWVVuaWZv
cm1Mb2NhdGlvbiA9IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9ncmFtLCAidV9mbGlwWSIp
OworICAgIG1feXV2RmxpcFhVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24o
eXV2UHJvZ3JhbSwgInVfZmxpcFgiKTsKKyAgICBtX3l1dlN3YXBYWVVuaWZvcm1Mb2NhdGlvbiA9
IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9ncmFtLCAidV9zd2FwWFkiKTsKICAgICBtX3lU
ZXh0dXJlU2l6ZVVuaWZvcm1Mb2NhdGlvbiA9IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9n
cmFtLCAidV95VGV4dHVyZVNpemUiKTsKICAgICBtX3V2VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRp
b24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfdXZUZXh0dXJlU2l6ZSIp
OwogICAgIG1feXV2UG9zaXRpb25BdHRyaWJ1dGVMb2NhdGlvbiA9IEdMX0dldEF0dHJpYkxvY2F0
aW9uKHl1dlByb2dyYW0sICJhX3Bvc2l0aW9uIik7CkBAIC01NTksOCArNTczLDkgQEAgR3JhcGhp
Y3NDb250ZXh0R0xDVkNvY29hOjpHcmFwaGljc0NvbnRleHRHTENWQ29jb2EoR3JhcGhpY3NDb250
ZXh0R0xDb2NvYSYgb3duZXIKICAgICBHTF9CaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIs
IG1fZnJhbWVidWZmZXIpOwogfQogCi1ib29sIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29w
eVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2UsIFBsYXRmb3JtR0xP
YmplY3Qgb3V0cHV0VGV4dHVyZSwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwg
R0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIEZsaXBZIGZsaXBZKQorYm9vbCBHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2E6OmNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShjb25zdCBNZWRpYVNhbXBs
ZVZpZGVvRnJhbWUmIHZpZGVvRnJhbWUsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwg
R0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVt
IHR5cGUsIEZsaXBZIHVucGFja0ZsaXBZKQogeworICAgIGF1dG8gaW1hZ2UgPSB2aWRlb0ZyYW1l
LnBpeGVsQnVmZmVyKCk7CiAgICAgLy8gRklYTUU6IFRoaXMgY3VycmVudGx5IG9ubHkgc3VwcG9y
dHMgJzQyMHYnIGFuZCAnNDIwZicgcGl4ZWwgZm9ybWF0cy4gSW52ZXN0aWdhdGUgc3VwcG9ydGlu
ZyBtb3JlIHBpeGVsIGZvcm1hdHMuCiAgICAgT1NUeXBlIHBpeGVsRm9ybWF0ID0gQ1ZQaXhlbEJ1
ZmZlckdldFBpeGVsRm9ybWF0VHlwZShpbWFnZSk7CiAgICAgaWYgKHBpeGVsRm9ybWF0ICE9IGtD
VlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJWaWRlb1JhbmdlIC8vIE5PTElOVApA
QCAtNTc3LDkgKzU5MiwxMCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVBp
eGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2UsCiAgICAgaWYgKCFzdXJm
YWNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBhdXRvIG9yaWVudGF0aW9uID0gdmlk
ZW9GcmFtZS5vcmllbnRhdGlvbigpOwogICAgIGF1dG8gbmV3U3VyZmFjZVNlZWQgPSBJT1N1cmZh
Y2VHZXRTZWVkKHN1cmZhY2UpOwotICAgIGlmIChmbGlwWSA9PSBtX2xhc3RGbGlwWQotICAgICAg
ICAmJiBzdXJmYWNlID09IG1fbGFzdFN1cmZhY2UKKyAgICBpZiAoSW1hZ2VPcmllbnRhdGlvbjo6
T3JpZW50YXRpb24ob3JpZW50YXRpb24pID09IEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9u
KG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbikKKyAgICAgICAgJiYgdW5wYWNrRmxpcFkgPT0gbV9s
YXN0VW5wYWNrRmxpcFkKICAgICAgICAgJiYgbmV3U3VyZmFjZVNlZWQgPT0gbV9sYXN0U3VyZmFj
ZVNlZWQKICAgICAgICAgJiYgbGFzdFRleHR1cmVTZWVkKG91dHB1dFRleHR1cmUpID09IG1fb3du
ZXIudGV4dHVyZVNlZWQob3V0cHV0VGV4dHVyZSkpIHsKICAgICAgICAgLy8gSWYgdGhlIHRleHR1
cmUgaGFzbid0IGJlZW4gbW9kaWZpZWQgc2luY2UgdGhlIGxhc3QgdGltZSB3ZSBjb3BpZWQgdG8g
aXQsIGFuZCB0aGUKQEAgLTU4OSw4ICs2MDUsNjAgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENW
Q29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLAog
ICAgIGlmICghbV9jb250ZXh0IHx8ICFHcmFwaGljc0NvbnRleHRHTENvY29hOjptYWtlQ3VycmVu
dChtX2Rpc3BsYXksIG1fY29udGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHNp
emVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChpbWFnZSk7Ci0gICAgc2l6ZV90IGhl
aWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoaW1hZ2UpOworICAgIC8vIENvbXB1dGUgdHJh
bnNmb3JtIHRoYXQgdW5kb2VzIHRoZSBgb3JpZW50YXRpb25gLCBlLmcuIG1vdmVzIHRoZSBvcmln
aW4gdG8gdG9wIGxlZnQuCisgICAgLy8gRXZlbiBudW1iZXIgb2Ygb3BlcmF0aW9ucyAoZmxpcFgs
IGZsaXBZLCBzd2FwWFkpIG1lYW5zIGEgcm90YXRpb24uCisgICAgLy8gT2RkIG51bWJlciBvZiBv
cGVyYXRpb25zIG1lYW5zIGEgcm90YXRpb24gYW5kIGEgZmxpcC4KKyAgICAvLyBgZmxpcFhgIHN3
aXRjaGVzIGJldHdlZW4gTGVmdCBhbmQgUmlnaHQuIGBmbGlwWWAgc3dpdGNoZXMgYmV0d2VlbiBU
b3AgYW5kIEJvdHRvbS4KKyAgICAvLyBgc3dhcFhZYHN3aXRjaGVzIExlZnRUb3AgdG8gVG9wTGVm
dC4KKyAgICAvLyBHb2FsIGlzIHRvIGdldCB0byBPcmlnaW5Ub3BMZWZ0LgorICAgIGJvb2wgZmxp
cFkgPSBmYWxzZTsgLy8gRmxpcCB5IGNvb3JkaW5hdGUsIGkuZS4gbWlycm9yZWQgYWxvbmcgdGhl
IHgtYXhpcy4KKyAgICBib29sIGZsaXBYID0gZmFsc2U7IC8vIEZsaXAgeCBjb29yZGluYXRlLCBp
LmUuIG1pcnJvcmVkIGFsb25nIHRoZSB5LWF4aXMuCisgICAgYm9vbCBzd2FwWFkgPSBmYWxzZTsK
KyAgICBzd2l0Y2ggKHZpZGVvRnJhbWUub3JpZW50YXRpb24oKSkgeworICAgIGNhc2UgSW1hZ2VP
cmllbnRhdGlvbjo6RnJvbUltYWdlOgorICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2lu
VG9wTGVmdDoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9uOjpPcmln
aW5Ub3BSaWdodDoKKyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0OgorICAgICAgICAvLyBSb3Rh
dGVkIDE4MCBkZWdyZWVzLgorICAgICAgICBmbGlwWSA9IHRydWU7CisgICAgICAgIGZsaXBYID0g
dHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5C
b3R0b21MZWZ0OgorICAgICAgICAvLyBNaXJyb3JlZCBhbG9uZyB0aGUgeC1heGlzLgorICAgICAg
ICBmbGlwWSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luTGVmdFRvcDoKKyAgICAgICAgLy8gTWlycm9yZWQgYWxvbmcgeC1heGlzIGFuZCBy
b3RhdGVkIDI3MCBkZWdyZWVzIGNsb2NrLXdpc2UuCisgICAgICAgIHN3YXBYWSA9IHRydWU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRUb3A6
CisgICAgICAgIC8vIFJvdGF0ZWQgOTAgZGVncmVlcyBjbG9jay13aXNlLgorICAgICAgICBmbGlw
WCA9IHRydWU7CisgICAgICAgIHN3YXBYWSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRCb3R0b206CisgICAgICAgIC8vIE1pcnJv
ciBhbG9uZyB4LWF4aXMgYW5kIHJvdGF0ZWQgOTAgZGVncmVlcyBjbG9ja3dpc2UuCisgICAgICAg
IGZsaXBZID0gdHJ1ZTsKKyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBzd2FwWFkgPSB0
cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkxl
ZnRCb3R0b206CisgICAgICAgIC8vIFJvdGF0ZWQgMjcwIGRlZ3JlZXMgY2xvY2std2lzZS4KKyAg
ICAgICAgZmxpcFkgPSB0cnVlOworICAgICAgICBzd2FwWFkgPSB0cnVlOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgaWYgKHVucGFja0ZsaXBZID09IEZsaXBZOjpZZXMpCisgICAgICAgIGZs
aXBZID0gIWZsaXBZOworCisgICAgc2l6ZV90IHNvdXJjZVdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdl
dFdpZHRoKGltYWdlKTsKKyAgICBzaXplX3Qgc291cmNlSGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdl
dEhlaWdodChpbWFnZSk7CisKKyAgICBzaXplX3Qgd2lkdGggPSBzd2FwWFkgPyBzb3VyY2VIZWln
aHQgOiBzb3VyY2VXaWR0aDsKKyAgICBzaXplX3QgaGVpZ2h0ID0gc3dhcFhZID8gc291cmNlV2lk
dGggOiBzb3VyY2VIZWlnaHQ7CiAKICAgICBHTF9WaWV3cG9ydCgwLCAwLCB3aWR0aCwgaGVpZ2h0
KTsKIApAQCAtNjY0LDcgKzczMiw5IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpj
b3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZSwKICAgICAvLyBD
b25maWd1cmUgdGhlIGRyYXdpbmcgcGFyYW1ldGVycy4KICAgICBHTF9Vbmlmb3JtMWkobV95VGV4
dHVyZVVuaWZvcm1Mb2NhdGlvbiwgMCk7CiAgICAgR0xfVW5pZm9ybTFpKG1fdXZUZXh0dXJlVW5p
Zm9ybUxvY2F0aW9uLCAxKTsKLSAgICBHTF9Vbmlmb3JtMWkobV95dXZGbGlwWVVuaWZvcm1Mb2Nh
dGlvbiwgZmxpcFkgPT0gRmxpcFk6OlllcyA/IDEgOiAwKTsKKyAgICBHTF9Vbmlmb3JtMWkobV95
dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiwgZmxpcFkgPyAxIDogMCk7CisgICAgR0xfVW5pZm9ybTFp
KG1feXV2RmxpcFhVbmlmb3JtTG9jYXRpb24sIGZsaXBYID8gMSA6IDApOworICAgIEdMX1VuaWZv
cm0xaShtX3l1dlN3YXBYWVVuaWZvcm1Mb2NhdGlvbiwgc3dhcFhZID8gMSA6IDApOwogICAgIEdM
X1VuaWZvcm0yZihtX3lUZXh0dXJlU2l6ZVVuaWZvcm1Mb2NhdGlvbiwgeVBsYW5lV2lkdGgsIHlQ
bGFuZUhlaWdodCk7CiAgICAgR0xfVW5pZm9ybTJmKG1fdXZUZXh0dXJlU2l6ZVVuaWZvcm1Mb2Nh
dGlvbiwgdXZQbGFuZVdpZHRoLCB1dlBsYW5lSGVpZ2h0KTsKIApAQCAtNjc2LDEwICs3NDYsMTEg
QEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVy
ZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLAogICAgIC8vIERvIHRoZSBhY3R1YWwgZHJhd2luZy4K
ICAgICBHTF9EcmF3QXJyYXlzKEdMX1RSSUFOR0xFUywgMCwgNik7CiAKKyAgICBtX2xhc3RVbnBh
Y2tGbGlwWSA9IHVucGFja0ZsaXBZOwogICAgIG1fbGFzdFN1cmZhY2UgPSBzdXJmYWNlOwogICAg
IG1fbGFzdFN1cmZhY2VTZWVkID0gbmV3U3VyZmFjZVNlZWQ7CisgICAgbV9sYXN0U3VyZmFjZU9y
aWVudGF0aW9uID0gb3JpZW50YXRpb247CiAgICAgbV9sYXN0VGV4dHVyZVNlZWQuc2V0KG91dHB1
dFRleHR1cmUsIG1fb3duZXIudGV4dHVyZVNlZWQob3V0cHV0VGV4dHVyZSkpOwotICAgIG1fbGFz
dEZsaXBZID0gZmxpcFk7CiAgICAgYXV0b0NsZWFyVGV4dHVyZU9uRXJyb3IucmVsZWFzZSgpOwog
ICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAppbmRleCBjNGUz
OTYwYjZkNzA4MGU0YzM5NDBiOGFmN2FkOWRjZTYyNDYyNzBmLi5jZDE1Y2NjZjA2ZTVmZWU5ZmUx
OTE3OTM0YWI3NjUxZGVlN2Y4ZjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaApAQCAt
MjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJHTCkgJiYgRU5BQkxFKFZJREVPKSAmJiBVU0Uo
QVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xDVi5oIgotCisjaW5j
bHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3
dGYvVW5zYWZlUG9pbnRlci5oPgogCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIH5H
cmFwaGljc0NvbnRleHRHTENWQ29jb2EoKSBmaW5hbDsKIAotICAgIGJvb2wgY29weVBpeGVsQnVm
ZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4
dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZv
cm1hdCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpIGZpbmFsOworICAgIGJvb2wgY29weVZpZGVvU2Ft
cGxlVG9UZXh0dXJlKGNvbnN0IE1lZGlhU2FtcGxlVmlkZW9GcmFtZSYsIFBsYXRmb3JtR0xPYmpl
Y3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQs
IEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpIGZpbmFsOwogCiBwcml2YXRl
OgogICAgIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYShHcmFwaGljc0NvbnRleHRHTENvY29hJik7
CkBAIC02NCwxMiArNjQsMTUgQEAgcHJpdmF0ZToKICAgICBHQ0dMaW50IG1feVRleHR1cmVVbmlm
b3JtTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV91dlRleHR1cmVVbmlmb3JtTG9jYXRp
b24geyAtMSB9OwogICAgIEdDR0xpbnQgbV95dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07
CisgICAgR0NHTGludCBtX3l1dkZsaXBYVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKKyAgICBHQ0dM
aW50IG1feXV2U3dhcFhZVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKICAgICBHQ0dMaW50IG1fY29s
b3JNYXRyaXhVbmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV95dXZQb3NpdGlv
bkF0dHJpYnV0ZUxvY2F0aW9uIHsgLTEgfTsKICAgICBHQ0dMaW50IG1feVRleHR1cmVTaXplVW5p
Zm9ybUxvY2F0aW9uIHsgLTEgfTsKICAgICBHQ0dMaW50IG1fdXZUZXh0dXJlU2l6ZVVuaWZvcm1M
b2NhdGlvbiB7IC0xIH07CiAKLSAgICBGbGlwWSBtX2xhc3RGbGlwWSB7IEZsaXBZOjpObyB9Owor
ICAgIEZsaXBZIG1fbGFzdFVucGFja0ZsaXBZIHsgRmxpcFk6Ok5vIH07CisgICAgSW1hZ2VPcmll
bnRhdGlvbiBtX2xhc3RTdXJmYWNlT3JpZW50YXRpb247CiAgICAgVW5zYWZlUG9pbnRlcjxJT1N1
cmZhY2VSZWY+IG1fbGFzdFN1cmZhY2U7CiAgICAgdWludDMyX3QgbV9sYXN0U3VyZmFjZVNlZWQg
eyAwIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggMzcwNjY3M2U5ZjA2MjFhYTFhNTM4M2NmM2Iw
ZTJmNWNmOTA1MDIxOS4uNjBjNWE4Y2Q2ZDUwZTkwMGU0YzFlYmQxZmQ4ZTJkZGFlOGI2ZGI5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAKQEAgLTUwOSw2ICs1MDksNyBAQCB2b2lkIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKQogICAgICAgICBt
X2RldmljZU9yaWVudGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURv
d247CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNw
cAppbmRleCAwNzMzZjNjMTc4NmUxYzU3MGJjOWUzYTRmNGQxYjhlNzI3ZDE3YzY2Li5lY2I0YjU3
NjdjYzlhOGUyNjg2NDZkY2UzOWQyNjYyYzM0MmMzM2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TC5jcHAKQEAgLTI2MCwxOCArMjYwLDE4IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6
OmNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllCiAgICAg
VU5VU0VEX1ZBUklBQkxFKHByZW11bHRpcGx5QWxwaGEpOwogICAgIEFTU0VSVF9VTlVTRUQodGFy
Z2V0LCB0YXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0R0w6OlRFWFRVUkVfMkQpOwogCi0gICAgUmV0
YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyOwotICAgIGF1dG8gZ2V0UGl4ZWxC
dWZmZXIgPSBbJl0geworICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2
aWRlb0ZyYW1lOworICAgIGF1dG8gZ2V0VmlkZW9GcmFtZSA9IFsmXSB7CiAgICAgICAgIGlmICgh
bV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgIGlmIChhdXRvIG1lZGlhUGxheWVyID0gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5y
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLm1lZGlhUGxheWVyKG1lZGlhUGxheWVySWRl
bnRpZmllcikpCi0gICAgICAgICAgICBwaXhlbEJ1ZmZlciA9IG1lZGlhUGxheWVyLT5waXhlbEJ1
ZmZlckZvckN1cnJlbnRUaW1lKCk7CisgICAgICAgICAgICB2aWRlb0ZyYW1lID0gbWVkaWFQbGF5
ZXItPnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwogICAgIH07CiAKLSAgICBjYWxsT25NYWlu
UnVuTG9vcEFuZFdhaXQoV1RGTW92ZShnZXRQaXhlbEJ1ZmZlcikpOworICAgIGNhbGxPbk1haW5S
dW5Mb29wQW5kV2FpdChXVEZNb3ZlKGdldFZpZGVvRnJhbWUpKTsKIAotICAgIGlmICghcGl4ZWxC
dWZmZXIpIHsKKyAgICBpZiAoIXZpZGVvRnJhbWUpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjgyLDcgKzI4Miw3IEBAIHZv
aWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6
Ok1lZGlhUGxheWVySWRlbnRpZmllCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjb21w
bGV0aW9uSGFuZGxlcihjb250ZXh0Q1YtPmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShwaXhlbEJ1
ZmZlci5nZXQoKSwgdGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUs
IEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpKTsKKyAgICBjb21wbGV0aW9uSGFuZGxl
cihjb250ZXh0Q1YtPmNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZSgqdmlkZW9GcmFtZSwgdGV4dHVy
ZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdM
OjpGbGlwWShmbGlwWSkpKTsKICNlbHNlCiAgICAgVU5VU0VEX1ZBUklBQkxFKG1lZGlhUGxheWVy
SWRlbnRpZmllcik7CiAgICAgVU5VU0VEX1ZBUklBQkxFKHRleHR1cmUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
Y3BwCmluZGV4IDg4MTA4Y2JjNTMzYzEwYzc1ZTM3MGJmY2M4OTgwMGE1M2M2NzI5YWQuLjQyYTMy
MDY1NGIwM2RmOWI0Mzk3Nzc5NDI1NjQ1ODIwMDZjZGExMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAK
QEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmludmFsaWRh
dGUoKQogICAgIH0KICAgICBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgPSB7IH07CiAjaWYg
VVNFKEFWRk9VTkRBVElPTikKLSAgICBtX3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUgPSBudWxs
cHRyOworICAgIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID0gc3RkOjpudWxsb3B0OwogI2Vu
ZGlmCiB9CiAKQEAgLTg2OCw2ICs4NjgsMjEgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjpjdXJyZW50VGltZUNoYW5nZWQoY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUpCiAgICAgbV93
ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpDdXJyZW50VGltZUNoYW5nZWQobWVkaWFUaW1lLCBNb25vdG9uaWNUaW1lOjpub3coKSwg
IW1lZGlhUGxheWVyUGF1c2VkT3JTdGFsbGVkKCkpLCBtX2lkKTsKIH0KIAordm9pZCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9G
cmFtZT4mJiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHJlc3VsdDsKKyAgICBib29sIGNoYW5n
ZWQgPSBmYWxzZTsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9G
cmFtZT4gdmlkZW9GcmFtZTsKKyAgICBpZiAobV9wbGF5ZXIpCisgICAgICAgIHZpZGVvRnJhbWUg
PSBtX3BsYXllci0+dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CisgICAgaWYgKCEobV92aWRl
b0ZyYW1lRm9yQ3VycmVudFRpbWUgPT0gdmlkZW9GcmFtZSkpIHsKKyAgICAgICAgbV92aWRlb0Zy
YW1lRm9yQ3VycmVudFRpbWUgPSB2aWRlb0ZyYW1lOworICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsK
KyAgICAgICAgcmVzdWx0ID0gV1RGTW92ZSh2aWRlb0ZyYW1lKTsKKyAgICB9CisgICAgY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpLCBjaGFuZ2VkKTsKK30KKwogdm9pZCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5Ojp1cGRhdGVDYWNoZWRTdGF0ZShib29sIGZvcmNlQ3VycmVudFRpbWVV
cGRhdGUpCiB7CiAgICAgaWYgKCFtX29ic2VydmluZ1RpbWVDaGFuZ2VzIHx8IGZvcmNlQ3VycmVu
dFRpbWVVcGRhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCAzMmYzYTQ2YWEwZjA5YjEzYjAyNGU0MTY0
MDc4YTVkYWRkZWRjNTRlLi4xZmJlMWY5MzNkMDk1MDA2ZjQyZmQ5ZGNmYzZmMmE0NDJhNzY0MDkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmgKQEAgLTMyMCw5ICszMjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8V1RGOjpNYWNoU2VuZFJpZ2h0PiYmLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2UpPiYmKTsKICAgICB2b2lkIGNvbG9yU3BhY2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UpPiYmKTsKICNlbmRpZgotI2lmIFVTRShBVkZPVU5E
QVRJT04pCi0gICAgdm9pZCBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4+JiYpPiYmKTsKLSNlbmRpZgorICAgIHZvaWQgdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZD
aGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRp
YVNhbXBsZVZpZGVvRnJhbWU+JiYsIGJvb2wpPiYmKTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAogICAgIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7IHJldHVy
biBtX2xvZ2dlcjsgfQpAQCAtMzc4LDkgKzM3Niw3IEBAIHByaXZhdGU6CiAgICAgU2NvcGVkUmVu
ZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Q7CiAKICAg
ICBib29sIG1fb2JzZXJ2aW5nVGltZUNoYW5nZXMgeyBmYWxzZSB9OwotI2lmIFVTRShBVkZPVU5E
QVRJT04pCi0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZTsKLSNlbmRpZgorICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1w
bGVWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1fbG9nZ2VyOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDM5Yzg3MjliMjczOWUxMzY0NGIzMWFhODBk
YmE4MGQ0YTMzMGM4YWUuLjRlNGZlY2EyODMxYTRjZDNlM2E5YmU3OTJhYjIwNWIxZTEzZWQyNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMjYsOSArMTI2LDcgQEAg
bWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBO
YXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgLT4gKHN0ZDo6b3B0aW9uYWw8TWFjaFNlbmRSaWdo
dD4gc2VuZFJpZ2h0LCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSkg
U3luY2hyb25vdXMKICAgICBDb2xvclNwYWNlKCkgLT4gKFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29s
b3JTcGFjZSBjb2xvclNwYWNlKSBTeW5jaHJvbm91cwogI2VuZGlmCi0jaWYgVVNFKEFWRk9VTkRB
VElPTikKLSAgICBQaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCkgLT4gKHN0ZDo6
b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+PiBwaXhlbEJ1ZmZlcikgU3luY2hy
b25vdXMKLSNlbmRpZgorICAgIFZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpIC0+
IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFt
ZSwgYm9vbCBjaGFuZ2VkKSBTeW5jaHJvbm91cwogCiAgICAgUGxheUF0SG9zdFRpbWUoTW9ub3Rv
bmljVGltZSB0aW1lKQogICAgIFBhdXNlQXRIb3N0VGltZShNb25vdG9uaWNUaW1lIHRpbWUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2Nv
Y29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQppbmRleCBjNmJiYTNhYTJiNGU1NWZh
ZWZiOTMzYmJlMmU2MzU5ZDczZjYzMTk4Li5mYmUxMGJjMzA1ZDJkMmUxNWEyNGE3Y2VlNDUwN2Vh
MTc2NzM3NDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29j
b2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KQEAgLTEy
NywyMSArMTI3LDYgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpjb2xvclNwYWNlKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGVzdGluYXQKICAgICBjb21wbGV0aW9uSGFu
ZGxlcihtX3BsYXllci0+Y29sb3JTcGFjZSgpKTsKIH0KIAotI2lmIFVTRShBVkZPVU5EQVRJT04p
Ci12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWVJ
ZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxD
VlBpeGVsQnVmZmVyUmVmPj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgc3RkOjpv
cHRpb25hbDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHJlc3VsdDsKLSAgICBSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXI7Ci0gICAgaWYgKG1fcGxheWVyKQotICAg
ICAgICBwaXhlbEJ1ZmZlciA9IG1fcGxheWVyLT5waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCk7
Ci0gICAgaWYgKG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSAhPSBwaXhlbEJ1ZmZlcikgewot
ICAgICAgICByZXN1bHQgPSBwaXhlbEJ1ZmZlcjsKLSAgICAgICAgbV9waXhlbEJ1ZmZlckZvckN1
cnJlbnRUaW1lID0gV1RGTW92ZShwaXhlbEJ1ZmZlcik7Ci0gICAgfQotICAgIGNvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUocmVzdWx0KSk7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDlhNjQyOTQzNzg0MmY0M2RiNmRhMWMy
NTAxMWVkNGE1NDRjYmYzNjEuLjhkOWU1ZmY5MmFjM2IzZjBlYjcxMzM5ZWZlOGI0YmYzZjQyOTY0
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTEwMDAsMTMgKzEwMDAsMTgg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRm
b3JtVGV4dHVyZShXZWJDb3JlOjpHcmFwaGkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJl
dHVybiBmYWxzZTsKIH0KLSNlbGlmICFQTEFURk9STShDT0NPQSkKLVJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBpeGVsQnVmZmVyRm9yQ3VycmVu
dFRpbWUoKQorI2VuZGlmCisKK3N0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRl
b0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHJlc3VsdDsKKyAgICBi
b29sIGNoYW5nZWQgPSBmYWxzZTsKKyAgICBpZiAoIWNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNz
YWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZD
aGFuZ2VkKCksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpWaWRlb0ZyYW1lRm9y
Q3VycmVudFRpbWVJZkNoYW5nZWQ6OlJlcGx5KHJlc3VsdCwgY2hhbmdlZCksIG1faWQpKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmIChjaGFuZ2VkKQorICAgICAgICBtX3Zp
ZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IFdURk1vdmUocmVzdWx0KTsKKyAgICByZXR1cm4gbV92
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiB9Ci0jZW5kaWYKIAogI2lmICFQTEFURk9STShDT0NP
QSkKIFJlZlB0cjxOYXRpdmVJbWFnZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpuYXRpdmVJ
bWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IGViMzI2
MjQwNGM2ZjkxZDhkMjY3YTM4NTE2NDUyMjdhMDkwMzc5ZTguLjFhNmEzNDAzNDNkMTQyZWRmZGVl
YTM2YjM3NGE5OWY5OTNlZmViOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMjky
LDkgKzI5Miw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4
dChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBm
aW5hbDsKICNpZiAhVVNFKEFWRk9VTkRBVElPTikKICAgICBib29sIGNvcHlWaWRlb1RleHR1cmVU
b1BsYXRmb3JtVGV4dHVyZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xP
YmplY3QsIEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBi
b29sLCBib29sKSBmaW5hbDsKLSNlbHNlCi0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
IHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKICNlbmRpZgorICAgIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKSBmaW5hbDsKICAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IG5hdGl2ZUlt
YWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKICAgICBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9y
U3BhY2UgY29sb3JTcGFjZSgpIGZpbmFsOwogCkBAIC00NjEsOSArNDYwLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fd2FpdGluZ0ZvcktleSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3RpbWVJc1By
b2dyZXNzaW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRl
ZCB7IGZhbHNlIH07Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lOwotI2VuZGlmCisgICAgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IG1fdmlkZW9GcmFtZUZv
ckN1cnJlbnRUaW1lOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyR2F0aGVyZWRXaXRoVmlkZW9GcmFtZU1ldGFkYXRhOwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWPiBtX3Bp
eGVsQnVmZmVyQ29uZm9ybWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlQ29jb2EubW0KaW5kZXggYzBiNzc2ZGM3NzNiMTdmYTQzMGNkNTg5NjhiMDA3YjMxYmQ3NmE4
ZC4uNDFkYmM3YTUzYjcxNzc2MmU0NWEyMDllMGY4NDcwZTExNWYxMTAxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCkBAIC05NCwxOCArOTQsNiBA
QCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Ojpjb2xvclNwYWNlKCkKICAgICByZXR1cm4gY29sb3JTcGFjZTsKIH0KIAotI2lmIFVTRShBVkZP
VU5EQVRJT04pCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKLXsKLSAgICBzdGQ6Om9wdGlvbmFs
PFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPj4gcmVzdWx0OwotICAgIGlmICghY29ubmVjdGlv
bigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpQaXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpQaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkOjpSZXBseShyZXN1bHQpLCBt
X2lkKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYgKHJlc3VsdCkKLSAgICAgICAg
bV9waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lID0gV1RGTW92ZSgqcmVzdWx0KTsKLSAgICByZXR1
cm4gbV9waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShD
T0NPQSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAyYmNjODcwMzc0ODczMWIxMTViMzk5ODk4NDI2YTI1ZjkyMTQ5YTNjLi5m
NjJjODNhMjYzMmVmZmQzM2MyNmIzNDA4OGFkYzgwNjA1NjVmY2RkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMjItMDEtMjAgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgV2ViR0wgR1BVIGJ1ZmZlciB0ZXh0dXJlIHVwbG9hZCBwYXRo
IGZvciBDb2NvYSBnZXRVc2VyTWVkaWEgY2FtZXJhIHN0cmVhbXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTIzMworICAgICAgICA8cmRhcjovL3By
b2JsZW0vODc2MDE3NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKwor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy5odG1sOgor
ICAgICAgICAqIHdlYnJ0Yy9yb3V0aW5lcy5qczoKKyAgICAgICAgVGVzdCBjYW1lcmEgaW1hZ2Ug
cm90YXRpb25zIGluIHRoZSB0ZXN0LgorCiAyMDIyLTAxLTE5ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIDxkaWFsb2c+IHdpdGggdHJhbnNmb3JtZWQg
YW5jZXN0b3IgYXNzZXJ0cyB1bmRlciBSZW5kZXJHZW9tZXRyeU1hcApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTEtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2Fu
dmFzLTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlYjI3M2RlMmQ3ZGVhNjM4MzI3MWRmZjAy
NTFkNDU2NmMyMDkwMjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NyBAQAorCitQQVNTIGZ1bmM6IHdpdGgyRENvbnRleHQsIGFuZ2xlOiAwLCBpbWFnZUJpdG1hcDog
ZmFsc2UKK1BBU1MgZnVuYzogd2l0aDJEQ29udGV4dCwgYW5nbGU6IDAsIGltYWdlQml0bWFwOiB0
cnVlCitQQVNTIGZ1bmM6IHdpdGgyRENvbnRleHQsIGFuZ2xlOiA5MCwgaW1hZ2VCaXRtYXA6IGZh
bHNlCitQQVNTIGZ1bmM6IHdpdGgyRENvbnRleHQsIGFuZ2xlOiA5MCwgaW1hZ2VCaXRtYXA6IHRy
dWUKK1BBU1MgZnVuYzogd2l0aDJEQ29udGV4dCwgYW5nbGU6IDE4MCwgaW1hZ2VCaXRtYXA6IGZh
bHNlCitQQVNTIGZ1bmM6IHdpdGgyRENvbnRleHQsIGFuZ2xlOiAxODAsIGltYWdlQml0bWFwOiB0
cnVlCitQQVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDAsIGltYWdlQml0bWFwOiBmYWxzZSwg
c3ViSW1hZ2U6IGZhbHNlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVuYzogd2l0aFdlYkdM
LCBhbmdsZTogMCwgaW1hZ2VCaXRtYXA6IGZhbHNlLCBzdWJJbWFnZTogZmFsc2UsIHVucGFja0Zs
aXBZOiB0cnVlCitQQVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDAsIGltYWdlQml0bWFwOiBm
YWxzZSwgc3ViSW1hZ2U6IHRydWUsIHVucGFja0ZsaXBZOiBmYWxzZQorUEFTUyBmdW5jOiB3aXRo
V2ViR0wsIGFuZ2xlOiAwLCBpbWFnZUJpdG1hcDogZmFsc2UsIHN1YkltYWdlOiB0cnVlLCB1bnBh
Y2tGbGlwWTogdHJ1ZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiAwLCBpbWFnZUJpdG1h
cDogdHJ1ZSwgc3ViSW1hZ2U6IGZhbHNlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVuYzog
d2l0aFdlYkdMLCBhbmdsZTogMCwgaW1hZ2VCaXRtYXA6IHRydWUsIHN1YkltYWdlOiBmYWxzZSwg
dW5wYWNrRmxpcFk6IHRydWUKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogMCwgaW1hZ2VC
aXRtYXA6IHRydWUsIHN1YkltYWdlOiB0cnVlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVu
Yzogd2l0aFdlYkdMLCBhbmdsZTogMCwgaW1hZ2VCaXRtYXA6IHRydWUsIHN1YkltYWdlOiB0cnVl
LCB1bnBhY2tGbGlwWTogdHJ1ZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiA5MCwgaW1h
Z2VCaXRtYXA6IGZhbHNlLCBzdWJJbWFnZTogZmFsc2UsIHVucGFja0ZsaXBZOiBmYWxzZQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1j
YW52YXMtMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEt
dG8tY2FudmFzLTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Njc0MzQxOWIwMWQ0YzcxN2RhMjBkYjg4OWE3
ZTFiNzdhZmMyY2RkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTEuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyI+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5UZXN0
aW5nIGdldFVzZXJNZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRleHRzIDE8L3RpdGxlPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi93ZWJydGMvcm91dGluZXMuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRl
c3QtdXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZ2V0VXNl
ck1lZGlhLXRvLWNhbnZhcy5qcyI+PC9zY3JpcHQ+CisgICAgPHN0eWxlIHR5cGU9dGV4dC9jc3M+
CisgICAgICAgIGNhbnZhcyB7IHdpZHRoOiA2MHB4IH0KKyAgICAgICAgdmlkZW8geyB3aWR0aDog
NjBweCB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImRlYnVn
ZSI+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgY3JlYXRlVXNlck1lZGlhVG9DYW52YXNU
ZXN0cygwLCAyKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0yLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRv
LWNhbnZhcy0yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDI1YzM2MTJhMTI0OWFmMzEwNWM1
Y2ZjMzc1ZjNkMTk3MzE2ZGIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTcgQEAKKworUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiA5MCwgaW1hZ2VCaXRtYXA6
IGZhbHNlLCBzdWJJbWFnZTogZmFsc2UsIHVucGFja0ZsaXBZOiB0cnVlCitQQVNTIGZ1bmM6IHdp
dGhXZWJHTCwgYW5nbGU6IDkwLCBpbWFnZUJpdG1hcDogZmFsc2UsIHN1YkltYWdlOiB0cnVlLCB1
bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogOTAsIGltYWdl
Qml0bWFwOiBmYWxzZSwgc3ViSW1hZ2U6IHRydWUsIHVucGFja0ZsaXBZOiB0cnVlCitQQVNTIGZ1
bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDkwLCBpbWFnZUJpdG1hcDogdHJ1ZSwgc3ViSW1hZ2U6IGZh
bHNlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogOTAs
IGltYWdlQml0bWFwOiB0cnVlLCBzdWJJbWFnZTogZmFsc2UsIHVucGFja0ZsaXBZOiB0cnVlCitQ
QVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDkwLCBpbWFnZUJpdG1hcDogdHJ1ZSwgc3ViSW1h
Z2U6IHRydWUsIHVucGFja0ZsaXBZOiBmYWxzZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xl
OiA5MCwgaW1hZ2VCaXRtYXA6IHRydWUsIHN1YkltYWdlOiB0cnVlLCB1bnBhY2tGbGlwWTogdHJ1
ZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiAxODAsIGltYWdlQml0bWFwOiBmYWxzZSwg
c3ViSW1hZ2U6IGZhbHNlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVuYzogd2l0aFdlYkdM
LCBhbmdsZTogMTgwLCBpbWFnZUJpdG1hcDogZmFsc2UsIHN1YkltYWdlOiBmYWxzZSwgdW5wYWNr
RmxpcFk6IHRydWUKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogMTgwLCBpbWFnZUJpdG1h
cDogZmFsc2UsIHN1YkltYWdlOiB0cnVlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVuYzog
d2l0aFdlYkdMLCBhbmdsZTogMTgwLCBpbWFnZUJpdG1hcDogZmFsc2UsIHN1YkltYWdlOiB0cnVl
LCB1bnBhY2tGbGlwWTogdHJ1ZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiAxODAsIGlt
YWdlQml0bWFwOiB0cnVlLCBzdWJJbWFnZTogZmFsc2UsIHVucGFja0ZsaXBZOiBmYWxzZQorUEFT
UyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiAxODAsIGltYWdlQml0bWFwOiB0cnVlLCBzdWJJbWFn
ZTogZmFsc2UsIHVucGFja0ZsaXBZOiB0cnVlCitQQVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5nbGU6
IDE4MCwgaW1hZ2VCaXRtYXA6IHRydWUsIHN1YkltYWdlOiB0cnVlLCB1bnBhY2tGbGlwWTogZmFs
c2UKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogMTgwLCBpbWFnZUJpdG1hcDogdHJ1ZSwg
c3ViSW1hZ2U6IHRydWUsIHVucGFja0ZsaXBZOiB0cnVlCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0yLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ3MGQ0ODdhN2Y1NjJiNmZjOTJlZTEwYTc2MDIyYmM2NmNjODY0YzcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10
by1jYW52YXMtMi5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKyAgICA8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlRlc3RpbmcgZ2V0VXNlck1lZGlhIHN0
cmVhbSB0byBjYW52YXMgY29udGV4dHMgMjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3dlYnJ0Yy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uL2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLmpz
Ij48L3NjcmlwdD4KKyAgICA8c3R5bGUgdHlwZT10ZXh0L2Nzcz4KKyAgICAgICAgY2FudmFzIHsg
d2lkdGg6IDYwcHggfQorICAgICAgICB2aWRlbyB7IHdpZHRoOiA2MHB4IH0KKyAgICA8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0iZGVidWdlIj48L2Rpdj4KKyAgICA8c2Ny
aXB0PgorICAgICAgICBjcmVhdGVVc2VyTWVkaWFUb0NhbnZhc1Rlc3RzKDEsIDIpOworICAgIDwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2NTk0MDI2ZmU3OWIzMDAzOWVkNzNlY2Uy
OWVkNmZjZTI4NzAxZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFz
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotCi1QQVNTIFRlc3Rp
bmcgZ2V0VXNlck1lZGlhIHN0cmVhbSB0byBjYW52YXMgY29udGV4dHMgdmlhIDJEQ29udGV4dAot
UEFTUyBUZXN0aW5nIGdldFVzZXJNZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRleHRzIHZpYSBJ
bWFnZUJpdG1hcCB0byAyRENvbnRleHQKLVBBU1MgVGVzdGluZyBnZXRVc2VyTWVkaWEgc3RyZWFt
IHRvIGNhbnZhcyBjb250ZXh0cyB2aWEgV2ViR0wgdGV4dHVyZQotUEFTUyBUZXN0aW5nIGdldFVz
ZXJNZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRleHRzIHZpYSBJbWFnZUJpdG1hcCB0byBXZWJH
TCB0ZXh0dXJlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0
VXNlck1lZGlhLXRvLWNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9n
ZXRVc2VyTWVkaWEtdG8tY2FudmFzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGQyODNmNDhmN2NmMzE0ZDMxNDlhMzJlM2Y4OTAzOWY3NDc4NGZkYWEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMg
KzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotICAgICAgICA8dGl0bGU+VGVzdGluZyBnZXRVc2VyTWVkaWEg
c3RyZWFtIHRvIGNhbnZhcyBjb250ZXh0czwvdGl0bGU+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3dlYnJ0Yy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+Ci0g
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRlc3Qt
dXRpbHMuanMiPjwvc2NyaXB0PgotCi0gICAgICAgIDxzdHlsZSB0eXBlPXRleHQvY3NzPgotICAg
ICAgICAgICAgY2FudmFzIHsgd2lkdGg6IDYwMHB4IH0KLSAgICAgICAgPC9zdHlsZT4KLSAgICA8
L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxkaXYgaWQ9ImRlYnVnZSI+PC9kaXY+Ci0gICAg
ICAgIDxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1jb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsK
LWNvbnN0IHdpZHRoID0gNjQzOwotY29uc3QgdmVyaWZ5V2lkdGggPSAyMDA7Ci1jb25zdCBkZWJ1
Z2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVidWdlIik7Ci0KLWFzeW5jIGZ1bmN0aW9u
IGNyZWF0ZVNvdXJjZVZpZGVvKCkgewotICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInZpZGVvIik7Ci0gICAgdmlkZW8uc3JjT2JqZWN0ID0gYXdhaXQgbmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyB2aWRlbzogeyB3aWR0aDogeyBleGFjdDogd2lkdGgg
fSB9IH0pOwotICAgIGF3YWl0IHZpZGVvLnBsYXkoKTsKLSAgICBhc3NlcnRfZXF1YWxzKHZpZGVv
LnZpZGVvV2lkdGgsIHdpZHRoKTsKLSAgICByZXR1cm4gdmlkZW87Ci19Ci0KLWZ1bmN0aW9uIGNy
ZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbykgewotICAgIGxldCBjYW52YXMgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJjYW52YXMiKTsKLSAgICBjYW52YXMud2lkdGggPSB2ZXJpZnlXaWR0aDsKLSAg
ICBjYW52YXMuaGVpZ2h0ID0gTWF0aC5mbG9vcih2aWRlby52aWRlb0hlaWdodCAvIHZpZGVvLnZp
ZGVvV2lkdGggKiB2ZXJpZnlXaWR0aCk7Ci0gICAgcmV0dXJuIGNhbnZhczsKLX0KLQotZnVuY3Rp
b24gY3JlYXRlVmVyaWZ5V2ViR0xDb250ZXh0KGNhbnZhcykgewotICAgIGxldCBnbCA9IHd0dS5j
cmVhdGUzRENvbnRleHQoY2FudmFzLCB7IGRlcHRoOiBmYWxzZSwgc3RlbmNpbDogZmFsc2UsIGFu
dGlhbGlhczogZmFsc2UgfSk7Ci0gICAgZ2wudmlld3BvcnQoMCwgMCwgY2FudmFzLndpZHRoLCBj
YW52YXMuaGVpZ2h0KTsKLSAgICBsZXQgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChn
bCk7Ci0gICAgZ2wudW5pZm9ybTFpKGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4
IiksIDApOwotICAgIHJldHVybiBnbDsKLX0KLQotZnVuY3Rpb24gZ2V0RnJhbWVidWZmZXJBc0lt
YWdlRGF0YShnbCnCoHsKLSAgICBsZXQgY2FudmFzID0gZ2wuY2FudmFzOwotICAgIGxldCBpbWFn
ZURhdGEgPSB7Ci0gICAgICAgIHdpZHRoOiBjYW52YXMud2lkdGgsCi0gICAgICAgIGhlaWdodDog
Y2FudmFzLmhlaWdodCwKLSAgICAgICAgZGF0YTogbmV3IFVpbnQ4QXJyYXkoY2FudmFzLndpZHRo
ICogY2FudmFzLmhlaWdodCAqIDQpCi0gICAgfQotICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgY2Fu
dmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWFn
ZURhdGEuZGF0YSk7Ci0gICAgcmV0dXJuIGltYWdlRGF0YTsKLX0KLQotcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4gewotICAgIGxldCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7Ci0g
ICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7Ci0gICAgbGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlmeUNh
bnZhcyh2aWRlbyk7Ci0gICAgZGVidWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7Ci0KLSAgICBsZXQg
Y3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7Ci0gICAgY3R4LmRyYXdJbWFnZSh2aWRlbywg
MCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKLSAgICBhc3NlcnRJbWFnZURhdGFD
b250YWluc01vY2tDYW1lcmFJbWFnZShjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIGNhbnZhcy53aWR0
aCwgY2FudmFzLmhlaWdodCkpOwotICAgIGRlYnVnZS5yZW1vdmVDaGlsZChjYW52YXMpOwotICAg
IGRlYnVnZS5yZW1vdmVDaGlsZCh2aWRlbyk7Ci0KLX0sIGRvY3VtZW50LnRpdGxlICsgIiB2aWEg
MkRDb250ZXh0Iik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBsZXQgdmlkZW8g
PSBhd2FpdCBjcmVhdGVTb3VyY2VWaWRlbygpOwotICAgIGRlYnVnZS5hcHBlbmQodmlkZW8pOwot
ICAgIGxldCBjYW52YXMgPSBjcmVhdGVWZXJpZnlDYW52YXModmlkZW8pOwotICAgIGRlYnVnZS5h
cHBlbmRDaGlsZChjYW52YXMpOwotCi0gICAgbGV0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCIy
ZCIpOwotICAgIGxldCBpbWFnZUJpdG1hcCA9IGF3YWl0IGNyZWF0ZUltYWdlQml0bWFwKHZpZGVv
KTsKLSAgICBjdHguZHJhd0ltYWdlKGltYWdlQml0bWFwLCAwLCAwLCBjYW52YXMud2lkdGgsIGNh
bnZhcy5oZWlnaHQpOwotICAgIGFzc2VydEltYWdlRGF0YUNvbnRhaW5zTW9ja0NhbWVyYUltYWdl
KGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KSk7Ci0g
ICAgZGVidWdlLnJlbW92ZUNoaWxkKGNhbnZhcyk7Ci0gICAgZGVidWdlLnJlbW92ZUNoaWxkKHZp
ZGVvKTsKLX0sIGRvY3VtZW50LnRpdGxlICsgIiB2aWEgSW1hZ2VCaXRtYXAgdG8gMkRDb250ZXh0
Iik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBsZXQgdmlkZW8gPSBhd2FpdCBj
cmVhdGVTb3VyY2VWaWRlbygpOwotICAgIGRlYnVnZS5hcHBlbmQodmlkZW8pOwotICAgIGxldCBj
YW52YXMgPSBjcmVhdGVWZXJpZnlDYW52YXModmlkZW8pOwotICAgIGRlYnVnZS5hcHBlbmRDaGls
ZChjYW52YXMpOwotCi0gICAgbGV0IGdsID0gY3JlYXRlVmVyaWZ5V2ViR0xDb250ZXh0KGNhbnZh
cyk7Ci0gICAgbGV0IHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRl
eHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFS
RVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JB
UF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IHZpZGVvKTsKLSAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAwLCAyNTVd
KTsKLQotICAgIGxldCBpbWFnZURhdGEgPSBnZXRGcmFtZWJ1ZmZlckFzSW1hZ2VEYXRhKGdsKTsK
LSAgICBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEpOwot
ICAgIGRlYnVnZS5yZW1vdmVDaGlsZChjYW52YXMpOwotICAgIGRlYnVnZS5yZW1vdmVDaGlsZCh2
aWRlbyk7Ci19LCBkb2N1bWVudC50aXRsZSArICIgdmlhIFdlYkdMIHRleHR1cmUiKTsKLQotcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGxldCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJj
ZVZpZGVvKCk7Ci0gICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7Ci0gICAgbGV0IGNhbnZhcyA9IGNy
ZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbyk7Ci0gICAgZGVidWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7
Ci0KLSAgICBsZXQgZ2wgPSBjcmVhdGVWZXJpZnlXZWJHTENvbnRleHQoY2FudmFzKTsKLSAgICBs
ZXQgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBsZXQgaW1hZ2VCaXRtYXAgPSBh
d2FpdCBjcmVhdGVJbWFnZUJpdG1hcCh2aWRlbyk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFN
UF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltYWdlQml0bWFw
KTsKLSAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKLQot
ICAgIGxldCBpbWFnZURhdGEgPSBnZXRGcmFtZWJ1ZmZlckFzSW1hZ2VEYXRhKGdsKTsKLSAgICBh
c3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEpOwotICAgIGRl
YnVnZS5yZW1vdmVDaGlsZChjYW52YXMpOwotICAgIGRlYnVnZS5yZW1vdmVDaGlsZCh2aWRlbyk7
Ci19LCBkb2N1bWVudC50aXRsZSArICIgdmlhIEltYWdlQml0bWFwIHRvIFdlYkdMIHRleHR1cmUi
KTsKLQotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9nZXRVc2VyTWVkaWEtdG8t
Y2FudmFzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMvZ2V0VXNl
ck1lZGlhLXRvLWNhbnZhcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTM4OTQ3NmZmNTBlZWZkOTNlNGI1Y2Fk
OGM4MmM1ODlkYjdlNmUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9yZXNvdXJjZXMvZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy5qcwpAQCAtMCwwICsxLDE3
MiBAQAorInVzZSBzdHJpY3QiOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoZmFsc2UpOwor
Citjb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2NvbnN0IHdpZHRoID0gNjQzOworY29uc3Qg
dmVyaWZ5V2lkdGggPSAyMDA7CisKK2FzeW5jIGZ1bmN0aW9uIGNyZWF0ZVNvdXJjZVZpZGVvKCkg
eworICAgIGNvbnN0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTsKKyAg
ICB2aWRlby5zcmNPYmplY3QgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJN
ZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiB7IGV4YWN0OiB3aWR0aCB9IH0gfSk7CisgICAgYXdhaXQg
dmlkZW8ucGxheSgpOworICAgIGFzc2VydF9lcXVhbHModmlkZW8udmlkZW9XaWR0aCwgd2lkdGgp
OworICAgIHJldHVybiB2aWRlbzsKK30KKworZnVuY3Rpb24gY3JlYXRlVmVyaWZ5Q2FudmFzKHZp
ZGVvKSB7CisgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFz
Iik7CisgICAgY2FudmFzLndpZHRoID0gdmVyaWZ5V2lkdGg7CisgICAgY2FudmFzLmhlaWdodCA9
IE1hdGguZmxvb3IodmlkZW8udmlkZW9IZWlnaHQgLyB2aWRlby52aWRlb1dpZHRoICogdmVyaWZ5
V2lkdGgpOworICAgIHJldHVybiBjYW52YXM7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVZlcmlmeVdl
YkdMU3RhdGUoY2FudmFzKSB7CisgICAgY29uc3QgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNh
bnZhcywgeyBkZXB0aDogZmFsc2UsIHN0ZW5jaWw6IGZhbHNlLCBhbnRpYWxpYXM6IGZhbHNlIH0p
OworICAgIGdsLnZpZXdwb3J0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Cisg
ICAgY29uc3QgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7CisgICAgZ2wudW5p
Zm9ybTFpKGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4IiksIDApOworICAgIGNv
bnN0IHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wu
VEVYVFVSRV8yRCwgdGV4dHVyZSk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOworICAgIGdsLnRleFBhcmFtZXRl
cmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAg
ICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5D
TEFNUF9UT19FREdFKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRF
WFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICByZXR1cm4gW2dsLCB0ZXh0dXJl
XTsKK30KKworZnVuY3Rpb24gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCkgeworICAgIGNv
bnN0IGNhbnZhcyA9IGdsLmNhbnZhczsKKyAgICBjb25zdCBpbWFnZURhdGEgPSB7CisgICAgICAg
IHdpZHRoOiBjYW52YXMud2lkdGgsCisgICAgICAgIGhlaWdodDogY2FudmFzLmhlaWdodCwKKyAg
ICAgICAgZGF0YTogbmV3IFVpbnQ4QXJyYXkoY2FudmFzLndpZHRoICogY2FudmFzLmhlaWdodCAq
IDQpCisgICAgfQorICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMu
aGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWFnZURhdGEuZGF0YSk7CisgICAg
cmV0dXJuIGltYWdlRGF0YTsKK30KKworZnVuY3Rpb24gc2V0dXBJbnZlcnNlVW5pdFF1YWRUZXh0
dXJlQ29vcmRpbmF0ZXMoZ2wsIHRleGNvb3JkTG9jYXRpb24pIHsKKyAgICB0ZXhjb29yZExvY2F0
aW9uID0gdGV4Y29vcmRMb2NhdGlvbiB8fCAxOworICAgIGNvbnN0IHZlcnRleE9iamVjdCA9IGds
LmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2ZXJ0
ZXhPYmplY3QpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQz
MkFycmF5KFsKKyAgICAgICAgMS4wLCAwLjAsCisgICAgICAgIDAuMCwgMC4wLAorICAgICAgICAw
LjAsIDEuMCwKKyAgICAgICAgMS4wLCAwLjAsCisgICAgICAgIDAuMCwgMS4wLAorICAgICAgICAx
LjAsIDEuMF0pLCBnbC5TVEFUSUNfRFJBVyk7CisgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJy
YXkodGV4Y29vcmRMb2NhdGlvbik7CisgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcih0ZXhjb29y
ZExvY2F0aW9uLCAyLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOworfQorCithc3luYyBmdW5jdGlv
biB3aXRoMkRDb250ZXh0KHN1YmNhc2UsIHZpZGVvLCBjYW52YXMpIHsKKyAgICBjb25zdCBjdHgg
PSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBsZXQgc291cmNlID0gdmlkZW87CisgICAg
aWYgKHN1YmNhc2UuaW1hZ2VCaXRtYXApCisgICAgICAgIHNvdXJjZSA9IGF3YWl0IGNyZWF0ZUlt
YWdlQml0bWFwKHNvdXJjZSk7CisgICAgY3R4LmRyYXdJbWFnZSh2aWRlbywgMCwgMCwgY2FudmFz
LndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKyAgICByZXR1cm4gY3R4LmdldEltYWdlRGF0YSgwLCAw
LCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworfQorCithc3luYyBmdW5jdGlvbiB3aXRo
V2ViR0woc3ViY2FzZSwgdmlkZW8sIGNhbnZhcykgeworICAgIGNvbnN0IFtnbCwgdGV4dHVyZV0g
PSBjcmVhdGVWZXJpZnlXZWJHTFN0YXRlKGNhbnZhcyk7CisgICAgbGV0IHNvdXJjZSA9IHZpZGVv
OworICAgIGlmIChzdWJjYXNlLmltYWdlQml0bWFwKQorICAgICAgICBzb3VyY2UgPSBhd2FpdCBj
cmVhdGVJbWFnZUJpdG1hcChzb3VyY2UpOworICAgIGlmIChzdWJjYXNlLnVucGFja0ZsaXBZKQor
ICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCB0cnVlKTsKKyAg
ICBpZiAoc3ViY2FzZS5zdWJJbWFnZSkgeworICAgICAgICBjb25zdCB3ID0gdmlkZW8udmlkZW9X
aWR0aDsKKyAgICAgICAgY29uc3QgaCA9IHZpZGVvLnZpZGVvSGVpZ2h0OworICAgICAgICBjb25z
dCBwaXhlbHMgPSBuZXcgVWludDhBcnJheSh3ICogaCAqIDQpOworICAgICAgICBwaXhlbHMuZmls
bCgwKTsKKyAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCB3
LCBoLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBwaXhlbHMpOworICAgICAgICBnbC50
ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIHNvdXJjZSk7CisgICAgfSBlbHNlCisgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgc291cmNlKTsK
KworICAgIC8vIFVOUEFDS19GTElQX1lfV0VCR0wgaXMgaWdub3JlZCBmb3IgSW1hZ2VCaXRtYXBz
IGFzIHBlciBXZWJHTCBzcGVjLiBUZXN0IHRoaXMgYnkKKyAgICAvLyByZW5kZXJpbmcgbm9ybWFs
bHkgYW5kIGV4cGVjdGluZyBub3JtYWwgcmVzdWx0LgorICAgIGNvbnN0IHNob3VsZFJlbmRlcklu
dmVydGVkID0gc3ViY2FzZS51bnBhY2tGbGlwWSAmJiAhc3ViY2FzZS5pbWFnZUJpdG1hcDsKKyAg
ICBpZiAoc2hvdWxkUmVuZGVySW52ZXJ0ZWQpIHsKKyAgICAgICAgc2V0dXBJbnZlcnNlVW5pdFF1
YWRUZXh0dXJlQ29vcmRpbmF0ZXMoZ2wpOworICAgICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1
YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKKyAgICB9IGVsc2UKKyAgICAgICAgd3R1LmNsZWFyQW5k
RHJhd1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7CisgICAgcmV0dXJuIGdldEZyYW1lYnVm
ZmVyQXNJbWFnZURhdGEoZ2wpOworfQorCitjb25zdCBzdWJjYXNlcyA9IFtdOworY29uc3QgYW5n
bGVzID0gWzAsIDkwLCAxODBdOyAvLyBGSVhNRTogLTkwIG1ha2Ugc2V0TW9ja0NhbWVyYS4uLiBh
Y2NlcHQgc2lnbmVkLiBodHRwczovL3dlYmtpdC5vcmcvYi8yMzUzNTIKK2NvbnN0IGZhbHNlQW5k
VHJ1ZSA9IFtmYWxzZSwgdHJ1ZV07Citmb3IgKGNvbnN0IGFuZ2xlIG9mIGFuZ2xlcykgeworICAg
IGZvciAoY29uc3QgaW1hZ2VCaXRtYXAgb2YgZmFsc2VBbmRUcnVlKQorICAgICAgICBzdWJjYXNl
cy5wdXNoKHsgZnVuYzogd2l0aDJEQ29udGV4dCwgYW5nbGU6IGFuZ2xlLCBpbWFnZUJpdG1hcDog
aW1hZ2VCaXRtYXAgfSk7Cit9CisKK2ZvciAoY29uc3QgYW5nbGUgb2YgYW5nbGVzKSB7CisgICAg
Zm9yIChjb25zdCBpbWFnZUJpdG1hcCBvZiBmYWxzZUFuZFRydWUpIHsKKyAgICAgICAgZm9yIChj
b25zdCBzdWJJbWFnZSBvZiBmYWxzZUFuZFRydWUpIHsKKyAgICAgICAgICAgIGZvciAoY29uc3Qg
dW5wYWNrRmxpcFkgb2YgZmFsc2VBbmRUcnVlKQorICAgICAgICAgICAgICAgIHN1YmNhc2VzLnB1
c2goe2Z1bmM6IHdpdGhXZWJHTCwgYW5nbGU6IGFuZ2xlLCBpbWFnZUJpdG1hcDogaW1hZ2VCaXRt
YXAsIHN1YkltYWdlOiBzdWJJbWFnZSwgdW5wYWNrRmxpcFk6IHVucGFja0ZsaXBZfSk7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3REZXNjcmlwdGlvbihzdWJjYXNlKSB7Cisg
ICAgbGV0IGRlc2MgPSAiZnVuYzogIiArIHN1YmNhc2UuZnVuYy5uYW1lOworICAgIGZvciAoY29u
c3QgayBpbiBzdWJjYXNlKSB7CisgICAgICAgIGlmIChrID09PSAiZnVuYyIpCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgZGVzYyArPSBgLCAke2t9OiAke3N1YmNhc2Vba119YDsKKyAg
ICB9CisgICAgcmV0dXJuIGRlc2M7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RVc2VyTWVkaWFU
b0NhbnZhcyh0LCBzdWJjYXNlKSB7CisgICAgY29uc3QgZGVzYyA9IHRlc3REZXNjcmlwdGlvbihz
dWJjYXNlKTsKKyAgICBjb25zdCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7Cisg
ICAgY29uc3QgZGVidWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlYnVnZSIpOworICAg
IGRlYnVnZS5hcHBlbmQodmlkZW8pOworICAgIGNvbnN0IHJlYWxWaWRlb1NpemUgPSBbdmlkZW8u
dmlkZW9XaWR0aCwgdmlkZW8udmlkZW9IZWlnaHRdOworICAgIHQuYWRkX2NsZWFudXAoYXN5bmMg
KCkgPT4geworICAgICAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQodmlkZW8pOworICAgICAgICAvLyBS
ZXNldCBvcmllbnRhdGlvbiBmb3IgdGhlIG5leHQgdGVzdCBieSBnb2luZyB0byAwLgorICAgICAg
ICBpZiAoc3ViY2FzZS5hbmdsZSA9PSAxODApIHsKKyAgICAgICAgICAgIC8vIDE4MCAtPiAwIGNh
bm5vdCBkZXRlY3Qgcm90YXRpb24gdmlhIHZpZGVvIHNpemUgY2hhbmdlLiBHbyB2aWEgOTAuCisg
ICAgICAgICAgICBjb25zdCBbYW5nbGUsIHZpZGVvU2l6ZV0gPSBzZXRNb2NrQ2FtZXJhSW1hZ2VP
cmllbnRhdGlvbig5MCwgcmVhbFZpZGVvU2l6ZSk7CisgICAgICAgICAgICBhd2FpdCB3YWl0Rm9y
VmlkZW9TaXplKHZpZGVvLCB2aWRlb1NpemVbMF0sIHZpZGVvU2l6ZVsxXSk7CisgICAgICAgIH0K
KyAgICAgICAgc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50YXRpb24oMCk7CisgICAgICAgIGF3YWl0
IHdhaXRGb3JWaWRlb1NpemUodmlkZW8sIHJlYWxWaWRlb1NpemVbMF0sIHJlYWxWaWRlb1NpemVb
MV0pOworICAgIH0pOworCisgICAgaWYgKHN1YmNhc2UuYW5nbGUgPT0gMTgwKSB7CisgICAgICAg
IC8vIDAgLT4gMTgwIGNhbm5vdCBkZXRlY3Qgcm90YXRpb24gdmlhIHZpZGVvIHNpemUgY2hhbmdl
LiBHbyB2aWEgOTAuCisgICAgICAgIGNvbnN0IFthbmdsZSwgdmlkZW9TaXplXSA9IHNldE1vY2tD
YW1lcmFJbWFnZU9yaWVudGF0aW9uKDkwLCByZWFsVmlkZW9TaXplKTsKKyAgICAgICAgYXdhaXQg
d2FpdEZvclZpZGVvU2l6ZSh2aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVbMV0pOworICAg
IH0KKyAgICBjb25zdCBbYW5nbGUsIHZpZGVvU2l6ZV0gPSBzZXRNb2NrQ2FtZXJhSW1hZ2VPcmll
bnRhdGlvbihzdWJjYXNlLmFuZ2xlLCByZWFsVmlkZW9TaXplKTsKKyAgICBhd2FpdCB3YWl0Rm9y
VmlkZW9TaXplKHZpZGVvLCB2aWRlb1NpemVbMF0sIHZpZGVvU2l6ZVsxXSk7CisKKyAgICBjb25z
dCBjYW52YXMgPSBjcmVhdGVWZXJpZnlDYW52YXModmlkZW8pOworICAgIGRlYnVnZS5hcHBlbmRD
aGlsZChjYW52YXMpOworICAgIHQuYWRkX2NsZWFudXAoYXN5bmMgKCkgPT4gZGVidWdlLnJlbW92
ZUNoaWxkKGNhbnZhcykpOworICAgIGNvbnN0IGltYWdlRGF0YSA9IGF3YWl0IHN1YmNhc2UuZnVu
YyhzdWJjYXNlLCB2aWRlbywgY2FudmFzKTsKKyAgICB0cnkgeworICAgICAgICBhc3NlcnRJbWFn
ZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEsIGFuZ2xlLCBkZXNjKTsKKyAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgIC8vIFVzZSB0aGlzIGZvciBkZWJ1Z2dpbmc6CisgICAg
ICAgIC8vYXdhaXQgd2FpdEZvcigxMDAwMCk7CisgICAgICAgIHRocm93IGU7CisgICAgfQorfQor
CitmdW5jdGlvbiBjcmVhdGVVc2VyTWVkaWFUb0NhbnZhc1Rlc3RzKHNsaWNlLCBzbGljZXMpIHsK
KyAgICBjb25zdCBzbGljZVNpemUgPSBNYXRoLmZsb29yKHN1YmNhc2VzLmxlbmd0aCAvIHNsaWNl
cyk7CisgICAgY29uc3QgZmlyc3QgPSBzbGljZVNpemUgKiBzbGljZTsKKyAgICBmb3IgKGNvbnN0
IHN1YmNhc2Ugb2Ygc3ViY2FzZXMuc2xpY2UoZmlyc3QsIGZpcnN0ICsgc2xpY2VTaXplKSkKKyAg
ICAgICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geyBhd2FpdCB0ZXN0VXNlck1lZGlhVG9DYW52
YXModCwgc3ViY2FzZSk7IH0sIHRlc3REZXNjcmlwdGlvbihzdWJjYXNlKSk7Cit9ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBhMjk3Njg3MjhmZGZiZmJjMjRiZTE5YzVjYWQ2YjcyOGRjY2NjYzdmLi41ZTU3
NTRlYmUzM2MwNjMzMjRlNWI4NjZmZmU2NzJhMmI3ZGNhYjc5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjEwLDYgKzIxMCwxMCBAQCB3ZWJraXQub3Jn
L2IvMjA4OTg4IGh0dHAvd3B0L3dlYnhyIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjA4OTg4IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIgWyBTa2lwIF0KIHdlYmtpdC5vcmcv
Yi8yMDg5ODggd2VieHIgWyBTa2lwIF0KIAorIyBzZXRNb2NrQ2FtZXJhT3JpZW50YXRpb24gc2Vl
bXMgdG8gZmFpbC4KK3dlYmtpdC5vcmcvYi8yMzUzOTYgZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2Vy
TWVkaWEtdG8tY2FudmFzLTEuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzIzNTM5NiBm
YXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMi5odG1sIFsgRmFpbHVyZSBd
CisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIFRyaWFnZWQg
RXhwZWN0YXRpb25zCiAjIExlZ2FjeSBFeHBlY3RhdGlvbnMgc2VjdGlvbnMgYmVsb3cKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcyBiL0xheW91dFRlc3RzL3dlYnJ0
Yy9yb3V0aW5lcy5qcwppbmRleCBmODM3YWEwMGQ3YWUzNzhiNDU1YzhjY2E0NDk4MTk1MGJhMDVl
MDlhLi4yY2ZmNjllNjUxYjk0MTdiNWUxOTk4YmJkNTY3OTIxOWE1N2YyY2UxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRj
L3JvdXRpbmVzLmpzCkBAIC0yNTMsNyArMjUzLDcgQEAgYXN5bmMgZnVuY3Rpb24gY29tcHV0ZUZy
YW1lUmF0ZShzdHJlYW0sIHZpZGVvKQogewogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAg
ICAgICAgIGludGVybmFscy5vYnNlcnZlTWVkaWFTdHJlYW1UcmFjayhzdHJlYW0uZ2V0VmlkZW9U
cmFja3MoKVswXSk7Ci0gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGlt
ZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpOwogICAgICAgICByZXR1cm4gaW50ZXJuYWxz
LnRyYWNrVmlkZW9TYW1wbGVDb3VudDsKICAgICB9CiAKQEAgLTI3Myw3ICsyNzMsNyBAQCBhc3lu
YyBmdW5jdGlvbiBjb21wdXRlRnJhbWVSYXRlKHN0cmVhbSwgdmlkZW8pCiAgICAgYXdhaXQgdmlk
ZW8ucGxheSgpOwogCiAgICAgY29uc3Qgc3RhdHMxID0gYXdhaXQgZ2V0UmVjZWl2ZWRUcmFja1N0
YXRzKGNvbm5lY3Rpb24pOwotICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGlt
ZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
c2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7CiAgICAgY29uc3Qgc3RhdHMyID0gYXdhaXQgZ2V0
UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24pOwogICAgIHJldHVybiAoc3RhdHMyLmZyYW1l
c1JlY2VpdmVkIC0gc3RhdHMxLmZyYW1lc1JlY2VpdmVkKSAqIDEwMDAgLyAoc3RhdHMyLnRpbWVz
dGFtcCAtIHN0YXRzMS50aW1lc3RhbXApOwogfQpAQCAtMjk4LDYgKzI5OCwyMCBAQCBmdW5jdGlv
biBzZXRIMjY0SGlnaENvZGVjKHNkcCkKICAgICB9KS5qb2luKCdcclxuJyk7CiB9CiAKKy8vIFNl
dHMgdGhlIGNhbWVyYSBpbWFnZSBvcmllbnRhdGlvbiBpZiBydW5uaW5nIG9uIHRlc3QgcnVubmVy
LgorLy8gYW5nbGU6IG9yaWVudGF0aW9uIGFuZ2xlIG9mIHRoZSBjYW1lcmEgaW1hZ2UgaW4gZGVn
cmVlcworZnVuY3Rpb24gc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50YXRpb24oYW5nbGUsIHZpZGVv
U2l6ZSkgeworICAgIGlmIChbMCwgOTAsIDE4MCwgMjcwXS5pbmRleE9mKGFuZ2xlKSA9PSAtMSkK
KyAgICAgICAgdGhyb3cgImludmFsaWQgYW5nbGUiOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYW1lcmFPcmllbnRhdGlvbihhbmdsZSk7
CisgICAgICAgIGlmICh2aWRlb1NpemUgJiYgKGFuZ2xlID09IDkwIHx8IGFuZ2xlID09IDI3MCkp
CisgICAgICAgICAgICB2aWRlb1NpemUgPSBbdmlkZW9TaXplWzFdLCB2aWRlb1NpemVbMF1dOwor
ICAgICAgICByZXR1cm4gW2FuZ2xlLCB2aWRlb1NpemVdOworICAgIH0KKyAgICByZXR1cm4gWzAs
IHZpZGVvU2l6ZV07Cit9CisKIC8vIFJldHVybnMgVWludDhBcnJheVs0XSBvZiBSR0JBIGNvbG9y
LgogLy8gcDogW3gsIHldIG9mIDAuLjEgcmFuZ2UuCiBmdW5jdGlvbiBnZXRJbWFnZURhdGFQaXhl
bChpbWFnZURhdGEsIHApCkBAIC0zMTEsMTYgKzMyNSwzMyBAQCBmdW5jdGlvbiBnZXRJbWFnZURh
dGFQaXhlbChpbWFnZURhdGEsIHApCiAvLyBBc3NlcnRzIHRoYXQgSW1hZ2VEYXRhIGluc3RhbmNl
IGNvbnRhaW5zIG1vY2sgY2FtZXJhIGltYWdlIHJlbmRlcmVkIGJ5IE1pbmlCcm93c2VyIGFuZCBX
ZWJLaXRUZXN0UnVubmVyLgogLy8gT2J0YWluIGZ1bGwgY2FtZXJhIGltYWdlIG9mIHNpemUgYHdp
ZHRoYDoKIC8vICBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZp
ZGVvOiB7IHdpZHRoOiB7IGV4YWN0OiB3aWR0aCB9IH0gfSk7Ci1mdW5jdGlvbiBhc3NlcnRJbWFn
ZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEpCitmdW5jdGlvbiBhc3NlcnRJ
bWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEsIGFuZ2xlLCBkZXNjKQog
eworICAgIGFuZ2xlID0gYW5nbGUgfHwgMDsKKyAgICBkZXNjID0gZGVzYyB8fCAiIjsKKworICAg
IGZ1bmN0aW9uIHJvdGF0ZVBvaW50KHApIHsKKyAgICAgICAgbGV0IGEgPSBhbmdsZTsKKyAgICAg
ICAgbGV0IG4gPSBbIHBbMF0sIHBbMV0gXTsKKyAgICAgICAgd2hpbGUgKGEgPiAwKSB7CisgICAg
ICAgICAgICBuID0gWyAxLjAgLSBuWzFdLCBuWzBdIF07CisgICAgICAgICAgICBhIC09IDkwOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBuOworICAgIH0KKwogICAgIGNvbnN0IHdoaXRlID0g
WyAyNTUsIDI1NSwgMjU1LCAyNTUgXTsKKyAgICBjb25zdCB3aGl0ZVBvaW50ID0gcm90YXRlUG9p
bnQoWyAwLjA0LCAwLjcgXSk7CiAgICAgY29uc3QgeWVsbG93ID0gWyAyNTUsIDI1NSwgMCwgMjU1
IF07CisgICAgY29uc3QgeWVsbG93UG9pbnQgPSByb3RhdGVQb2ludChbIDAuMDgsIDAuNyBdKTsK
ICAgICBjb25zdCBjeWFuID0gWyAwLCAyNTUsIDI1NSwgMjU1IF07CisgICAgY29uc3QgY3lhblBv
aW50ID0gcm90YXRlUG9pbnQoWyAwLjEyLCAwLjcgXSk7CiAgICAgY29uc3QgbGlnaHRHcmVlbiA9
IFsgMCwgMTI4LCAwLCAyNTUgXTsKKyAgICBjb25zdCBsaWdodEdyZWVuUG9pbnQgPSByb3RhdGVQ
b2ludChbIDAuMTYsIDAuNyBdKTsKIAotICAgIGxldCBlcnIgPSAzOwotICAgIGFzc2VydF9hcnJh
eV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgWyAwLjA0LCAwLjcg
XSksIHdoaXRlLCBlcnIsICJ3aGl0ZSByZWN0IG5vdCBmb3VuZCIpOwotICAgIGFzc2VydF9hcnJh
eV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgWyAwLjA4LCAwLjcg
XSksIHllbGxvdywgZXJyLCAieWVsbG93IHJlY3Qgbm90IGZvdW5kIik7Ci0gICAgYXNzZXJ0X2Fy
cmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCBbIDAuMTIsIDAu
NyBdKSwgY3lhbiwgZXJyLCAiY3lhbiByZWN0IG5vdCBmb3VuZCIpOwotICAgIGFzc2VydF9hcnJh
eV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgWyAwLjE2LCAwLjcg
XSksIGxpZ2h0R3JlZW4sIGVyciwgImxpZ2h0IGdyZWVuIHJlY3Qgbm90IGZvdW5kIik7CisgICAg
bGV0IGVyciA9IDExOworICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0
YVBpeGVsKGltYWdlRGF0YSwgd2hpdGVQb2ludCksIHdoaXRlLCBlcnIsICJ3aGl0ZSByZWN0IG5v
dCBmb3VuZCAiICsgZGVzYyk7CisgICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1h
Z2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCB5ZWxsb3dQb2ludCksIHllbGxvdywgZXJyLCAieWVsbG93
IHJlY3Qgbm90IGZvdW5kIiArIGRlc2MpOworICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxz
KGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgY3lhblBvaW50KSwgY3lhbiwgZXJyLCAiY3lh
biByZWN0IG5vdCBmb3VuZCAiICsgZGVzYyk7CisgICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVh
bHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCBsaWdodEdyZWVuUG9pbnQpLCBsaWdodEdy
ZWVuLCBlcnIsICJsaWdodCBncmVlbiByZWN0IG5vdCBmb3VuZCAiICsgZGVzYyk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449595</attachid>
            <date>2022-01-20 11:08:12 -0800</date>
            <delta_ts>2022-01-20 13:12:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235233-20220120210810.patch</filename>
            <type>text/plain</type>
            <size>89371</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4Mjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzhhNjM2YmMwMzAzZTJj
ODQ0ODIxY2RlYzQ0ZWRiZTFiMDE3MGRlZi4uNmQxMDcwNjMyMDlkMTg0ZGY1MTE0NWQ5MTZmNTZj
MGU3ZmJhMDQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDIyLTAxLTIwICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdl
YkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQgcGF0aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlh
IGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NjAxNzYyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgTWFrZSBmdWxsIHRleHR1
cmUgdXBsb2FkcyBmcm9tIE1lZGlhU3RyZWFtIGNhbWVyYSBjYXB0dXJlcyB1c2UgQ1ZQaXhlbEJ1
ZmZlcnMKKyAgICAgICAgaW5zdGVhZCBvZiByZWFkaW5nIHRoZSBwaXhlbHMgYmFjay4KKyAgICAg
ICAgSW1wbGVtZW50IE1lZGlhUGxheWVySW50ZXJmYWNlOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRU
aW1lKCkgZm9yCisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy4K
KyAgICAgICAgUmVuYW1lIGZ1bmN0aW9ucyBmcm9tIHBpeGVsQnVmZmVyLi4uIHRvIHZpZGVvU2Ft
cGxlLi4uCisgICAgICAgIFVzZSBuZXcgdHlwZSBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgaW5zdGVh
ZCBvZiBDVlBpeGVsQnVmZmVyLgorICAgICAgICBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgY29udGFp
bnMgYWxzbyB0aGUgZnJhbWUgb3JpZW50YXRpb24uIFRoZQorICAgICAgICBvcmllbnRhdGlvbiBp
cyBuZWVkZWQgYXMgdGhlIGNhbWVyYSBtaWdodCBjYXB0dXJlIHRoZSBpbWFnZQorICAgICAgICB3
aXRoIGEgcm90YXRpb24gb3IgYSBmbGlwLgorCisgICAgICAgIFRvIGF2b2lkIGlmZGVmcywgdGhl
IG5ldyBBUEkgdmlkZW9TYW1wbGVGb3JDdXJyZW50VGltZSBleGlzdHMKKyAgICAgICAgZm9yIGFs
bCBwbGF0Zm9ybXMsIGJ1dCBpcyBjdXJyZW50bHkgY2FsbGVkIG9ubHkgYnkgQ29jb2EuCisgICAg
ICAgIEFsc28gdGhlIHR5cGUgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lIGV4aXN0cyBmb3IgYWxsIHBs
YXRmb3JtcworICAgICAgICBidXQgaGFzIHRoZSBmcmFtZSBjb250ZW50cyBpbXBsZW1lbnRhdGlv
biBvbmx5IGZvciBDb2NvYS4KKworICAgICAgICBUZXN0ZWQgYnkKKyAgICAgICAgZmFzdC9tZWRp
YXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTEuaHRtbAorICAgICAgICBmYXN0L21lZGlh
c3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMi5odG1sCisKKyAgICAgICAgQ3VycmVudGx5
IHRoZSAibWlycm9yZWQiIHBhcnQgaXMgdGVzdGVkIG1hbnVhbGx5LCBXZWJLaXQKKyAgICAgICAg
ZG9lcyBub3QgcmVxdWVzdCBtaXJyb3JlZCBjYW1lcmEgaW1hZ2Ugc28gaXQgaXMgZGVhZCBjb2Rl
LgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6dmlkZW9TYW1wbGVGb3JDdXJyZW50VGltZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllcjo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSk6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZTo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6dmlkZW9T
YW1wbGVGb3JDdXJyZW50VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhU2FtcGxlVmlkZW9GcmFtZS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZTo6b3JpZW50YXRpb24gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lOjpwaXhlbEJ1ZmZlciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU6Om9wZXJhdG9y
PT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lOjpkZWNv
ZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNhbXBs
ZVZpZGVvRnJhbWVBVkYubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVW
aWRlb0ZyYW1lOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dmlkZW9TYW1wbGVGb3JDdXJyZW50VGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvU2FtcGxlRm9y
Q3VycmVudFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06Cisg
ICAgICAgIChXZWJDb3JlOjp2aWRlb09yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9TYW1wbGVGb3JDdXJyZW50
VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNv
cHlUZXh0dXJlRnJvbU1lZGlhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhp
Y3NDb250ZXh0R0xDVkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQ1ZDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVZpZGVvRnJhbWVUb1RleHR1cmUpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5UGl4ZWxCdWZmZXJU
b1RleHR1cmUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBo
aWNzQ29udGV4dEdMQ1ZDb2NvYS5oOgorCiAyMDIyLTAxLTIwICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5h
Z2VyIGlzIG5vdCBhbHdheXMgY29tcHV0aW5nIHRoZSByaWdodCBkZWZhdWx0IGlucHV0IGRldmlj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAzN2U4YTlmODA2MjlmZmU5MDllNTk5YTQxNjgxNDAxNTNjNTIzNmIxLi43
OGY5NWU3MWIwNDBlZjgzMWI4NjQ2YjYzZmVlNDAzMmIyYTE4ODExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMxIEBACisyMDIyLTAxLTIwICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IFdlYkdMIEdQVSBidWZmZXIgdGV4dHVyZSB1cGxvYWQg
cGF0aCBmb3IgQ29jb2EgZ2V0VXNlck1lZGlhIGNhbWVyYSBzdHJlYW1zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUyMzMKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzg3NjAxNzYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQu
CisKKyAgICAgICAgUmVuYW1lIGZ1bmN0aW9ucyBmcm9tIHBpeGVsQnVmZmVyLi4uIHRvIHZpZGVv
RnJhbWUuCisgICAgICAgIFNlbmQgbmV3IHR5cGUgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGluc3Rl
YWQgb2YgQ1ZQaXhlbEJ1ZmZlci4KKyAgICAgICAgTWVkaWFQbGF5ZXJWaWRlb0ZyYW1lIGNvbnRh
aW5zIGFsc28gdGhlIGZyYW1lIG9yaWVudGF0aW9uLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hh
bmdlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZSk6IERlbGV0ZWQuCisKIDIwMjItMDEtMTkgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgR3JhbnQgYWNjZXNzIHRvIEdsb2JhbFByZWZlcmVu
Y2VzIGFuZCBHbG9iYWxQcmVmZXJlbmNlc19tIHVuaWZvcm1seQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5k
ZXggODg5MGY4ZGJhNDc0YzM5MmMzNzMyOThkYTc1ODBmNzE5Y2U1YzNkZS4uZTUwMzcyZjZiZDVh
MGFhYTEzMmMyYmUxZWNjMjk5OGE0YjIyZjY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xNTEx
LDYgKzE1MTEsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJFbnVtcy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhU2FtcGxlVmlkZW9GcmFt
ZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhVXNhZ2VJbmZvLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDJjM2I0
ZjgxYTUyZjU2Njk5Y2JmZDQxMmRmYWMwOTQzNjY2YWVhZTcuLjNhZDY3MWI4MjIxZmU2OWRlMjE3
YWFhMzI1ZWU3YmMxOGYzYjU1NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMjk2LDYg
KzI5Niw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRNZXRhZGF0YVRl
eHRUcmFja1ByaXZhdGVBVkYuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCitwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tCiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBiMDgxYjZhMTlkM2RkNWZiNjdmYjE2ZTdiZmE5Yzc1ODZmZjlmMWFkLi5iODI5ZDE0YTRk
YzVhNTRiODQzZjMzZTRkN2Q4ZTcyMjY3MjU3OTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDAsNiArMjQwLDcgQEAKIAkJ
MDgxRUJGM0IwRkQzNEY0MTAwREE3NTU5IC8qIFNWR0ZpbHRlckJ1aWxkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4MUVCRjM5MEZEMzRGNDEwMERB
NzU1OSAvKiBTVkdGaWx0ZXJCdWlsZGVyLmggKi87IH07CiAJCTA4M0RBRUE3MEYwMUE3RkIwMDM0
Mjc1NCAvKiBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDgzREFFQTMwRjAxQTdGQjAwMzQyNzU0IC8qIFJl
bmRlclRleHRDb250cm9sTXVsdGlMaW5lLmggKi87IH07CiAJCTA4M0RBRUE5MEYwMUE3RkIwMDM0
Mjc1NCAvKiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4M0RBRUE1MEYwMUE3RkIwMDM0Mjc1NCAvKiBS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCAqLzsgfTsKKwkJMDg0NEIwMUQxMjU1QjRFNjAw
QjlDREQwIC8qIFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4NDRCMDFEMTI1NUU0RTYwMEI5Q0REMCAvKiBT
VkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmggKi87IH07CiAJCTA4NDU2ODA4MTJCOTBEQTYwMDk2
MEE5RiAvKiBGb250TWV0cmljcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDg0NTY4MDcxMkI5MERBNjAwOTYwQTlGIC8qIEZvbnRNZXRyaWNzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDg1NEIwMTUx
MjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg1NEIwMDMxMjU1RTRFNjAwQjlDREQwIC8qIFJl
bmRlclNWR0lubGluZS5oICovOyB9OwogCQkwODU0QjAxNzEyNTVFNEU2MDBCOUNERDAgLyogUmVu
ZGVyU1ZHSW5saW5lVGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDg1NEIwMDUxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGluZVRleHQu
aCAqLzsgfTsKQEAgLTIzOTEsNiArMjM5Miw3IEBACiAJCTdBRjlCMjBGMThDRkI1RjQwMEM2NEJF
RiAvKiBKU1ZUVFJlZ2lvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdBRjlCMjBCMThDRkI1RjMwMEM2NEJFRiAvKiBKU1ZUVFJlZ2lvbkxpc3Qu
aCAqLzsgfTsKIAkJN0IxMDMzOUUyNTQ5NzIxNzAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdM
Q1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMTAz
MzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0IxMDMzOUYyNTQ5NzIxRTAw
QzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IxMDMzOUMyNTQ5NzIwMTAwQzhDMUFDIC8qIEdy
YXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTdCNDQxMEUxMjc5NThGQzUwMDBCNEY4QSAvKiBNZWRpYVNhbXBs
ZVZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCNDQxMERGMjc5NThGQzQwMDBCNEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjYwOTRE
RDI3MEM0NEJEMDA2NDgzNUMgLyogQU5HTEVVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjM0QTE2MjUzNDVDQjIwMDAyOUQwOCAvKiBB
TkdMRVV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTdCNkRDODE5MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElP
U3VyZmFjZVN3YXBDaGFpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJN0I3MjBCMEMyNzQzREJBNzAwMDhBQkVEIC8qIEdyYXBoaWNzTGF5ZXJDb250
ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0I3MjBCMEEyNzQzREJBNjAwMDhBQkVEIC8qIEdyYXBoaWNzTGF5ZXJDb250
ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC00NjM2LDggKzQ2MzgsOCBAQAogCQlDREY3NDdGMTI3MEY3NjZGMDA4
RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDdGMDI3MEY3NjZGMDA4RkVFRUMg
LyogUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXJJbmxpbmVzLmggKi87IH07CiAJCUNERjc0N0YzMjcw
Rjc2Q0YwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRpZW50SW5saW5lcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ3RjIy
NzBGNzZDRjAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnRJbmxpbmVz
LmggKi87IH07CiAJCUNERjc0N0Y1MjcwRjgzQjEwMDhGRUVFQyAvKiBSZW5kZXJTVkdHcmFkaWVu
dFN0b3BJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREY3NDdGNDI3MEY4M0IxMDA4RkVFRUMgLyogUmVuZGVyU1ZHR3JhZGllbnRTdG9wSW5s
aW5lcy5oICovOyB9OwotCQlDREY3NDdGNzI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVy
U1ZHU2hhcGVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREY3NDdGNjI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJ
bmxpbmVzLmggKi87IH07CiAJCUNERjc0N0Y3MjcwRjgzQjQxMDdERUVFQyAvKiBSZW5kZXJTVkdT
aGFwZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENERjc0N0Y2MjcwRjgzQjQxMDdERUVFQyAvKiBSZW5kZXJTVkdTaGFwZUlubGluZXMuaCAq
LzsgfTsKKwkJQ0RGNzQ3RjcyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRlclNWR1NoYXBl
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RGNzQ3RjYyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRlclNWR1NoYXBlSW5saW5lcy5o
ICovOyB9OwogCQlDREY3NDdGOTI3MEY4N0NCMDA4RkVFRUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VS
YWRpYWxHcmFkaWVudElubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENERjc0N0Y4MjcwRjg3Q0IwMDhGRUVFQyAvKiBSZW5kZXJTVkdSZXNvdXJj
ZVJhZGlhbEdyYWRpZW50SW5saW5lcy5oICovOyB9OwogCQlDREY3NDdGQjI3MEY4OTFBMDA4RkVF
RUMgLyogUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDdGQTI3MEY4OTFBMDA4RkVFRUMgLyog
UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXJJbmxpbmVzLmggKi87IH07CiAJCUNERjc0ODNGMThGRUJD
RUMwMDA2RUNDMCAvKiBHcmlkUG9zaXRpb25zUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0ODNEMThGRUJDRUMwMDA2RUNDMCAvKiBH
cmlkUG9zaXRpb25zUmVzb2x2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtNjE5OCwxMCArNjIwMCwxMiBAQAogCQkwODFBQThEOTExMTEyMzdF
MDAyQUIwNkUgLyogU1ZHRWxlbWVudFJhcmVEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNWR0VsZW1lbnRSYXJlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwODFFQkYzODBGRDM0RjQxMDBEQTc1NTkgLyogU1ZHRmlsdGVyQnVpbGRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdGaWx0ZXJCdWlsZGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgxRUJGMzkwRkQzNEY0MTAwREE3NTU5IC8q
IFNWR0ZpbHRlckJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
RmlsdGVyQnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwODM0QjAwQzEy
NDRFNEU2MDBCOUNERDAgLyogU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdCb3VuZGluZ0JveENvbXB1dGF0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgzREFFQTIwRjAxQTdGQjAwMzQyNzU0
IC8qIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgzREFFQTMwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRl
eHRDb250cm9sTXVsdGlMaW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bmRlclRleHRDb250cm9sTXVsdGlMaW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA4M0RBRUE0MEYwMUE3RkIwMDM0Mjc1NCAvKiBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDgzREFFQTUw
RjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDg0NEIwMUQxMjU1RTRFNjAwQjlDREQwIC8q
IFNWR0JvdW5kaW5nQm94Q29tcHV0YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU1ZHQm91bmRpbmdCb3hDb21wdXRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwODQ1NjgwNzEyQjkwREE2MDA5NjBBOUYgLyogRm9udE1ldHJpY3MuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udE1ldHJpY3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDg1NEIwMDIxMjU1RTRFNjAwQjlDREQwIC8qIFJlbmRlclNWR0lubGlu
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdJbmxp
bmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODU0QjAwMzEyNTVFNEU2MDBC
OUNERDAgLyogUmVuZGVyU1ZHSW5saW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlclNWR0lubGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE0
NjksNiArMTE0NzMsOCBAQAogCQk3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3ND
b250ZXh0R0xDVkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2Nv
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjEwMzM5RDI1NDk3MjAxMDBDOEMx
QUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRl
eHRHTENWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTYxOTEwMjcxOTg4MEUw
MEM0MEVBQyAvKiBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVkaWFT
YW1wbGVWaWRlb0ZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
U2FtcGxlVmlkZW9GcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QjQ0MTBF
MjI3OTU4RkRFMDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3QjZEQzgxNTI1NzEyRTkxMDAzODBDNzAgLyogR3JhcGhpY3NDb250
ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhp
Y3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I3MjBCMEEyNzQzREJBNjAwMDhBQkVEIC8qIEdyYXBoaWNz
TGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNDA3LDkgKzEzNDEzLDkgQEAKIAkJQTEwQkI1ODMxNDg0
RTNBNzAwQjJFODdBIC8qIExlZ2FjeVJlbmRlclNWR1JlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTGVnYWN5UmVuZGVyU1ZHUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBMTBCQjU4MzE0ODRFM0E3MDBCM0FCNkQgLyogUmVuZGVyU1ZHUmVjdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZWN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg4MTQ4NEUzQjMwMEIyRTg3QSAvKiBMZWdhY3lS
ZW5kZXJTVkdTaGFwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBM
ZWdhY3lSZW5kZXJTVkdTaGFwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUEx
MENDNTg4MTQ3M0UzQjMwMEIyQThCRiAvKiBSZW5kZXJTVkdTaGFwZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJTVkdTaGFwZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg5MTQ4NEUzQjMwMEIyRTg3QSAvKiBMZWdhY3lSZW5k
ZXJTVkdTaGFwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lSZW5k
ZXJTVkdTaGFwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBCQjU4OTE0ODRF
M0IzMDBDM0Y3N0IgLyogUmVuZGVyU1ZHU2hhcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVuZGVyU1ZHU2hhcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTEwQ0M1ODgxNDczRTNCMzAwQjJBOEJGIC8qIFJlbmRlclNWR1NoYXBlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwRDZFOTQyMTQ0Qzk5ODAwRkREMTREIC8qIEpTUGF5bWVu
dFJlc3BvbnNlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGF5bWVudFJlc3BvbnNl
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwREJGNDYxOEY5MjMx
NzAwMEQ3MEM2IC8qIExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UHJldmlld0xvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMTBEQzc2ODE0NzQ3QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlk
RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUdyaWRE
YXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MzExLDggKzE2MzE3LDgg
QEAKIAkJQ0RGNzQ3RjAyNzBGNzY2RjAwOEZFRUVDIC8qIFJlbmRlclNWR1Jlc291cmNlTWFya2Vy
SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZU1hcmtlcklubGluZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNzQ3RjIyNzBGNzZDRjAwOEZFRUVD
IC8qIFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnRJbmxpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlclNWR1Jlc291cmNlTGluZWFyR3JhZGllbnRJbmxpbmVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNERjc0N0Y0MjcwRjgzQjEwMDhGRUVFQyAvKiBSZW5kZXJTVkdH
cmFkaWVudFN0b3BJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR0dyYWRpZW50U3Rv
cElubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQ0RGNzQ3RjYyNzBGODZB
NDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRlclNWR1NoYXBlSW5saW5lcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RGNzQ3RjYyNzBGODNCNDEwN0RFRUVDIC8qIFJlbmRlclNWR1NoYXBlSW5saW5lcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdTaGFwZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0RGNzQ3RjYyNzBGODZBNDAwOEZFRUVDIC8qIExlZ2FjeVJlbmRlclNW
R1NoYXBlSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lSZW5kZXJTVkdTaGFwZUlubGlu
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNzQ3RjgyNzBGODdDQjAwOEZF
RUVDIC8qIFJlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnRJbmxpbmVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnRJbmxpbmVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjc0N0ZBMjcwRjg5MUEwMDhGRUVFQyAvKiBSZW5kZXJT
VkdSZXNvdXJjZU1hc2tlcklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU1ZHUmVzb3Vy
Y2VNYXNrZXJJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjc0ODND
MThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NzAzLDYgKzE4NzA5LDcgQEAKIAkJCQkwNzFF
NDk2RDFBRDVBQTBEMDA4QTUwQjQgLyogTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tICovLAog
CQkJCTA3NkYwRDA5MTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uY3BwICovLAogCQkJCTA3NkYwRDBBMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uaCAqLywKKwkJCQk3QjQ0MTBFMjI3OTU4RkRFMDAwQjRGOEEg
LyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tICovLAogCQkJCUNEQkVBRUFCMTlEOTJCNkMw
MEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oICovLAogCQkJCUNEQkVBRUFB
MTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbSAqLywKIAkJ
CQk0MTAyNEZDODIzQ0YyNTRGMDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNw
cCAqLywKQEAgLTI4OTI4LDYgKzI4OTM1LDcgQEAKIAkJCQlDRDUyMDlFMzFCMEJEODM4MDA3NzE4
NEUgLyogTWVkaWFQbGF5ZXJFbnVtcy5oICovLAogCQkJCUY0MjkyNjE3MjUyNjRENDQwMDAwNzg5
OCAvKiBNZWRpYVBsYXllcklkZW50aWZpZXIuaCAqLywKIAkJCQkwNzlGNUU0QjBGM0JFQkVBMDA1
RTA3ODIgLyogTWVkaWFQbGF5ZXJQcml2YXRlLmggKi8sCisJCQkJN0I0NDEwREYyNzk1OEZDNDAw
MEI0RjhBIC8qIE1lZGlhU2FtcGxlVmlkZW9GcmFtZS5oICovLAogCQkJCUNENjQxRUIxMTgxOEY1
RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVByaXZhdGUuaCAqLywKIAkJCQlDRERDMUU3OTE4QTk1
MkYzMDAyN0E5RDQgLyogTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmggKi8sCiAJCQkJMDc2MTFE
QjgyNDNGQjc1QzAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggKi8sCkBAIC0zNjEwNiw2ICsz
NjExNCw3IEBACiAJCQkJREY5QUZENzIxM0ZDMzFEODAwMTVGRUI3IC8qIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzhCNUEzMTgwNDYz
NDcwMDE2RTY4NSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTE1MDUyNEY0MUI3MTJGRjYwMDY5NkFBOSAvKiBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCNDQxMEUxMjc5
NThGQzUwMDBCNEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA3N0JBNTc2MjYwRkFERjYwMDcyRjE5RiAvKiBNZWRpYVBvc2l0aW9uU3RhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUyRTJDQUZDMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyQTBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9NZWRpYVNhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaApp
bmRleCAwODQ3Yjk3NGU5M2U4NzJhMjI5ZTdhMTYxMGYyZDQ0ZTkwMmNjMGJkLi4zNWJhYTMwMDg1
YTk1MWU1NTBhYWFiYmUwYmY2M2I4ZmE2NWMyN2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01l
ZGlhU2FtcGxlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAi
RmxvYXRTaXplLmgiCisjaW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgiCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJheXMuaD4KICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0
cy5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KQEAgLTEwNiw2ICsxMDcsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCB7IHJl
dHVybiBWaWRlb1JvdGF0aW9uOjpOb25lOyB9CiAgICAgdmlydHVhbCBib29sIHZpZGVvTWlycm9y
ZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdWludDMyX3QgdmlkZW9Q
aXhlbEZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9u
YWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lKCkgY29uc3QgeyByZXR1cm4gc3Rk
OjpudWxsb3B0OyB9OwogCiAgICAgYm9vbCBpc1N5bmMoKSBjb25zdCB7IHJldHVybiBmbGFncygp
ICYgSXNTeW5jOyB9CiAgICAgYm9vbCBpc05vbkRpc3BsYXlpbmcoKSBjb25zdCB7IHJldHVybiBm
bGFncygpICYgSXNOb25EaXNwbGF5aW5nOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggYzEyODFhNDQ2YjE1NjU5MDliMzE0NGE3
ODJjOTk3OGVlOTA4OWZlMi4uM2ZjYWU4YzMxMGQ4NjE3ZTBhNWYzYjQ5NTdjNWNjY2VhZGFjMTFh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcApAQCAtMTA2MiwxNSArMTA2MiwxMyBAQCBib29sIE1lZGlhUGxheWVyOjpjb3B5VmlkZW9U
ZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wqIGNvbnRleHQsCiAgICAg
cmV0dXJuIG1fcHJpdmF0ZS0+Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKGNvbnRl
eHQsIHRleHR1cmUsIHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUs
IHByZW11bHRpcGx5QWxwaGEsIGZsaXBZKTsKIH0KIAotI2Vsc2UKKyNlbmRpZgogCi1SZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXI6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWUoKQorc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhUGxheWVyOjp2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewotICAgIHJldHVybiBtX3ByaXZhdGUtPnBpeGVs
QnVmZmVyRm9yQ3VycmVudFRpbWUoKTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT52aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWUoKTsKIH0KIAotI2VuZGlmCi0KIFJlZlB0cjxOYXRpdmVJbWFnZT4gTWVk
aWFQbGF5ZXI6Om5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKQogewogICAgIHJldHVybiBtX3By
aXZhdGUtPm5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGMxM2Q3MDMyZjI4Y2NkOTA4NzJi
MDkyNzZkOTM3MmE0MjY1M2EyMDEuLjA3MWNjMWU2ZTVlMDNmZjE0NzVhMGY0OTUyY2I1YjhkMGFl
MTBkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKICNpbmNsdWRl
ICJNZWRpYVBsYXllckVudW1zLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1M
YXllci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW5EYXRhLmgiCkBAIC00NjcsMTAgKzQ2OCw4IEBAIHB1YmxpYzoKICAgICAvLyBUaGUg
Y3VycmVudCByZXN0cmljdGlvbnMgcmVxdWlyZSB0aGF0IGZvcm1hdCBzaG91ZCBiZSBSR0Igb3Ig
UkdCQSwgdHlwZSBzaG91bGQgYmUgVU5TSUdORURfQllURSBhbmQgbGV2ZWwgc2hvdWxkIGJlIDAu
IEl0IG1heSBiZSBsaWZ0ZWQgaW4gdGhlIGZ1dHVyZS4KICNpZiAhVVNFKEFWRk9VTkRBVElPTikK
ICAgICBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRl
eHRHTCosIFBsYXRmb3JtR0xPYmplY3QgdGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50
IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51
bSB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpOwotI2Vsc2UKLSAgICBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpOwog
I2VuZGlmCi0KKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBuYXRpdmVJbWFn
ZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2Uo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaAppbmRleCA2ZTQ3N2JjYWY5YzQ4NTdhMDE3NzI2NTcyMmY4MWJmODRmYmMz
MGRlLi5mOWZmNGNiZjI4NjlkOTMzMTIwZWRlMDBkMDE1ZTVhZGRmNDc4MjkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUu
aApAQCAtMjksOCArMjksMTAgQEAKIAogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0Zy
YW1lLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVS
YW5nZXMuaCIKKyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KIAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQpAQCAtMTc4LDkg
KzE4MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNv
bnRleHQoR3JhcGhpY3NDb250ZXh0JiBjLCBjb25zdCBGbG9hdFJlY3QmIHIpIHsgcGFpbnQoYywg
cik7IH0KICNpZiAhVVNFKEFWRk9VTkRBVElPTikKICAgICB2aXJ0dWFsIGJvb2wgY29weVZpZGVv
VGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiwgUGxhdGZvcm1HTE9i
amVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJv
b2wsIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9Ci0jZWxzZQotICAgIHZpcnR1YWwgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKSB7IHJldHVybiBu
dWxscHRyOyB9CiAjZW5kaWYKKyAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVW
aWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSB7IHJldHVybiBzdGQ6Om51bGxv
cHQ7IH0KICAgICB2aXJ0dWFsIFJlZlB0cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJy
ZW50VGltZSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIERlc3RpbmF0aW9uQ29s
b3JTcGFjZSBjb2xvclNwYWNlKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhU2FtcGxlVmlkZW9GcmFtZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcx
NDc0Y2ZiMTNmZmIxMTk2ZDNjMjQwNTBhMTYyNmI3M2I0ODNlZjYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUu
aApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorI2luY2x1ZGUgIklt
YWdlT3JpZW50YXRpb24uaCIKKworI2lmIFVTRShBVkZPVU5EQVRJT04pCisjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgorCit1c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZm
ZXIqOworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFTYW1wbGVW
aWRlb0ZyYW1lIHsKK3B1YmxpYzoKKyAgICBNZWRpYVNhbXBsZVZpZGVvRnJhbWUoKSA9IGRlbGV0
ZTsKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhU2FtcGxl
VmlkZW9GcmFtZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiwgSW1hZ2VPcmllbnRhdGlv
bik7CisjZW5kaWYKKworICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCB7
IHJldHVybiBtX29yaWVudGF0aW9uOyB9CisKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsQnVmZmVy
LmdldCgpOyB9CisjZW5kaWYKKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBNZWRpYVNhbXBs
ZVZpZGVvRnJhbWUmIG90aGVyKSBjb25zdDsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IGRlY29k
ZShEZWNvZGVyJik7CisKK3ByaXZhdGU6CisjaWYgVVNFKEFWRk9VTkRBVElPTikKKyAgICBSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlcjsKKyNlbmRpZgorICAgIEltYWdl
T3JpZW50YXRpb24gbV9vcmllbnRhdGlvbjsKK307CisKK2lubGluZSBib29sIE1lZGlhU2FtcGxl
VmlkZW9GcmFtZTo6b3BlcmF0b3I9PShjb25zdCBNZWRpYVNhbXBsZVZpZGVvRnJhbWUmIG90aGVy
KSBjb25zdAoreworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAgaWYgKG1fcGl4ZWxCdWZmZXIg
IT0gb3RoZXIubV9waXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisg
ICAgcmV0dXJuIEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uKG90aGVyLm1fb3JpZW50YXRp
b24pID09IEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uKG1fb3JpZW50YXRpb24pOworfQor
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIE1lZGlhU2FtcGxlVmlkZW9GcmFtZTo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisjaWYgVVNFKEFWRk9VTkRBVElPTikK
KyAgICBlbmNvZGVyIDw8IG1fcGl4ZWxCdWZmZXI7CisgICAgZW5jb2RlciA8PCBJbWFnZU9yaWVu
dGF0aW9uOjpPcmllbnRhdGlvbihtX29yaWVudGF0aW9uKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGVuY29kZXIpOworI2VuZGlmCit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0
ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVNhbXBsZVZpZGVvRnJhbWU6
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAg
c3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHBpeGVsQnVmZmVyOwor
ICAgIGRlY29kZXIgPj4gcGl4ZWxCdWZmZXI7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBzdGQ6Om9wdGlvbmFsPEltYWdlT3JpZW50YXRp
b246Ok9yaWVudGF0aW9uPiBvcmllbnRhdGlvbjsKKyAgICBkZWNvZGVyID4+IG9yaWVudGF0aW9u
OworICAgIGlmICghb3JpZW50YXRpb24pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgcmV0dXJuIE1lZGlhU2FtcGxlVmlkZW9GcmFtZSB7IFdURk1vdmUoKnBpeGVsQnVmZmVyKSwg
Km9yaWVudGF0aW9uIH07CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZWNvZGVyKTsKKyAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworI2VuZGlmCit9CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2FtcGxl
VmlkZW9GcmFtZUFWRi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ5NTk4MTJm
NjZmY2E3MDU0MTdiMDJhZjU1MWZmYzEzMWE4NDM2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNhbXBsZVZpZGVv
RnJhbWVBVkYubW0KQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShWSURF
TykKKyNpbmNsdWRlICJNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitNZWRpYVNhbXBsZVZpZGVvRnJhbWU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZShSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiBwaXhlbEJ1ZmZlciwgSW1hZ2VPcmllbnRhdGlvbiBv
cmllbnRhdGlvbikKKyAgICA6IG1fcGl4ZWxCdWZmZXIoV1RGTW92ZShwaXhlbEJ1ZmZlcikpCisg
ICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQoreworfQorCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oCmluZGV4IDk1YTM3ODlhZDYyNzE5YzEwMGJjMDY3ZDNjZThhYWE5MzJk
NTc0MTEuLmNkYWExYjA5OGMzYTU0YjFhNmM2MWE0NWRkZGJkZjJjNjkzZDYyYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKQEAgLTI2MiwxMiArMjYyLDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCB1
cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKTsKICAgICBib29sIHZpZGVvT3V0cHV0SGFzQXZhaWxhYmxl
RnJhbWUoKTsKICAgICB2b2lkIHBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEZsb2F0UmVjdCYpOworICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0Zy
YW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKICAgICBSZWZQdHI8TmF0aXZl
SW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKICAgICBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGZpbmFsOwogICAgIHZvaWQgd2FpdEZvclZpZGVvT3V0
cHV0TWVkaWFEYXRhV2lsbENoYW5nZSgpOwogCi0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+IHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKLQogI2lmIEVOQUJMRShMRUdB
Q1lfRU5DUllQVEVEX01FRElBKQogICAgIHZvaWQga2V5QWRkZWQoKSBmaW5hbDsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8TGVnYWN5Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcm
IGtleVN5c3RlbSwgTGVnYWN5Q0RNU2Vzc2lvbkNsaWVudCopIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KaW5kZXggYmRjMmE4MmU3M2Y0ZmRmODhiNWE1NGM5OTdmMzJiZjY4OWRlOTk2YS4u
OGM5YWVkYjIxZDFhZWRkMDA5ZDIwZWM5OTI4MDZkZmY1ZWI3ZjQ2MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCkBAIC0yNjI1LDExICsyNjI1LDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRXaXRoVmlkZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0JiBj
CiAKIH0KIAotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKQorc3RkOjpvcHRpb25h
bDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgdXBkYXRlTGFzdFBpeGVsQnVm
ZmVyKCk7Ci0KLSAgICByZXR1cm4gbV9sYXN0UGl4ZWxCdWZmZXI7CisgICAgaWYgKCFtX2xhc3RQ
aXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gTWVk
aWFTYW1wbGVWaWRlb0ZyYW1lIHsgUmV0YWluUHRyIHsgbV9sYXN0UGl4ZWxCdWZmZXIgfSwgSW1h
Z2VPcmllbnRhdGlvbjo6Tm9uZSB9OwogfQogCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Om5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMuaAppbmRleCA5MzEzYzFiM2RmNmQzNjk2MDhjNzU1ZjA1NWQ0
NjFkYWI1ZGY3MjJhLi5iY2FkMTI1NDM2M2ExODdjNjhhMzM2OGZhN2E3YTE0ODUxNWI4MmU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApAQCAtMjIyLDcgKzIyMiw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCB1cGRhdGVMYXN0SW1hZ2UoKTsKICAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4
dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJh
bWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7
Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyRm9yQ3VycmVudFRp
bWUoKSBmaW5hbDsKKyAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNl
IGNvbG9yU3BhY2UoKSBmaW5hbDsKIAogICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRl
cmluZygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IGIy
Y2U2YmJjN2FhY2M4Y2VjYzIxYzk0MTI5NWU0MzE4YWRjYjg5YTMuLmY2NzhmY2RhMDcxODhmY2Ix
OTJkOTRlM2Q2YmVjMzdjNWU2YzdiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAg
LTcyMSw3ICs3MjEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDbwogICAgIGNvbnRleHQuZHJh
d05hdGl2ZUltYWdlKCppbWFnZSwgaW1hZ2VSZWN0LnNpemUoKSwgb3V0cHV0UmVjdCwgaW1hZ2VS
ZWN0KTsKIH0KIAotUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpCitzdGQ6Om9w
dGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewogICAgIC8vIFdlIGhhdmUg
YmVlbiBhc2tlZCB0byBwYWludCBpbnRvIGEgV2ViR0wgY2FudmFzLCBzbyB0YWtlIHRoYXQgYXMg
YSBzaWduYWwgdG8gY3JlYXRlCiAgICAgLy8gYSBkZWNvbXByZXNzaW9uIHNlc3Npb24sIGV2ZW4g
aWYgdGhhdCBtZWFucyB0aGUgbmF0aXZlIHZpZGVvIGNhbid0IGFsc28gYmUgZGlzcGxheWVkCkBA
IC03MzMsOCArNzMzLDkgQEAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGl4ZWxCdWZmZXJGb3IKIAogICAgIGlmICghbV9p
c0dhdGhlcmluZ1ZpZGVvRnJhbWVNZXRhZGF0YSkKICAgICAgICAgdXBkYXRlTGFzdFBpeGVsQnVm
ZmVyKCk7Ci0KLSAgICByZXR1cm4gbV9sYXN0UGl4ZWxCdWZmZXI7CisgICAgaWYgKCFtX2xhc3RQ
aXhlbEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gTWVk
aWFTYW1wbGVWaWRlb0ZyYW1lIHsgUmV0YWluUHRyIHsgbV9sYXN0UGl4ZWxCdWZmZXIgfSwgSW1h
Z2VPcmllbnRhdGlvbjo6Tm9uZSB9OwogfQogCiBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjb2xvclNwYWNlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLmgKaW5kZXggNmQ5NTU2NzRkMDYyNzVhZTQzM2U1YTU0YTM3YzM0ZTZiZjM3Zjlh
Mi4uMGRhYmI5NjNmNDU5ZTU5YjY5ZGRjYzIyMjg2NWNhZmY1MWQ1YzFhMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLmgKQEAgLTE0Miw2ICsxNDIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBw
YWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2
b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0Zy
YW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBvdmVycmlkZTsKICAgICBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIG92ZXJyaWRlOwogICAgIGJvb2wgbWV0YURhdGFBdmFp
bGFibGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtUHJpdmF0ZSAmJiBtX3JlYWR5U3Rh
dGUgPj0gTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KaW5kZXggNDlmNDJmOWMwMmI4Mjk1MzI1NzczOGMzNDQwNDNkZWI0
MTA4NTFjMi4uZDkyMWVlZmM3ZDFiYWY1NTkzZDIxYmY0M2QxMTY3ZmY4NDdkMWEzNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMTAwMyw2ICsxMDAzLDE3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4
dChHcmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmltYWdlLCBpbWFnZVJl
Y3Quc2l6ZSgpLCB0cmFuc2Zvcm1lZERlc3RSZWN0LCBpbWFnZVJlY3QpOwogfQogCitzdGQ6Om9w
dGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQoreworICAgIGlmIChtX2Rpc3Bs
YXlNb2RlID09IE5vbmUgfHwgIW1ldGFEYXRhQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgaWYgKG1fZGlzcGxheU1vZGUgPT0gUGFpbnRJdEJsYWNrKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghbV9pbWFnZVBhaW50ZXIubWVkaWFT
YW1wbGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIG1faW1hZ2VQ
YWludGVyLm1lZGlhU2FtcGxlLT52aWRlb0ZyYW1lKCk7Cit9CisKIERlc3RpbmF0aW9uQ29sb3JT
cGFjZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNvbG9yU3BhY2UoKQog
ewogICAgIHVwZGF0ZUN1cnJlbnRGcmFtZUltYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9i
akMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhU2FtcGxlQVZGT2JqQy5oCmluZGV4IGVhYTBhMWQ0MWY2ZTI2MDllNDAwMmZmNDI2Zjc1
NzA4ODAzYzlhOGUuLjkwMDdkY2NhOWRlZTEwZWViYzNiMzFkNjMzODA2MGQ3ZTkyMzcwNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCkBAIC03Miw3ICs3
Miw3IEBAIHB1YmxpYzoKICAgICBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX3JvdGF0aW9uOyB9CiAgICAgYm9vbCB2aWRlb01pcnJvcmVkKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9taXJyb3JlZDsgfQogICAgIFdFQkNPUkVfRVhQT1JU
IHVpbnQzMl90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKLQorICAgIFdFQkNPUkVf
RVhQT1JUIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lKCkg
Y29uc3QgZmluYWw7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyKCkgY29uc3Qg
eyByZXR1cm4gbV9zYW1wbGUuZ2V0KCk7IH0KIAogICAgIGJvb2wgaXNIb21vZ2VuZW91cygpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCmluZGV4
IDdhMWEwMGZlOTAzZTc5NTcxMmFkMmVhM2FmZTUyMDk2YzdiNDRiYjAuLjRhMGZhYzYxZWIxZWY2
MDMzZWQyOTc0MzVkYWE5MjZlOWVkZWFjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVNhbXBsZUFWRk9iakMubW0KQEAgLTE2NSw2ICsxNjUsMjcgQEAgdWludDMyX3QgTWVkaWFT
YW1wbGVBVkZPYmpDOjp2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QKICAgICByZXR1cm4gQ1ZQaXhl
bEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcik7CiB9CiAKK3N0ZDo6b3B0aW9u
YWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVNhbXBsZUFWRk9iakM6OnZpZGVvRnJhbWUo
KSBjb25zdAoreworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVm
ZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0KCkp
KTsKKyAgICBpZiAoIXBpeGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBbJl0geworICAgICAgICAvLyBTYW1w
bGUgdHJhbnNmb3JtIGZpcnN0IGZsaXBzIHgtY29vcmRpbmF0ZXMsIHRoZW4gcm90YXRlcy4KKyAg
ICAgICAgc3dpdGNoIChtX3JvdGF0aW9uKSB7CisgICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZp
ZGVvUm90YXRpb246Ok5vbmU6CisgICAgICAgICAgICByZXR1cm4gbV9taXJyb3JlZCA/IEltYWdl
T3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9w
TGVmdDsKKyAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ6Cisg
ICAgICAgICAgICByZXR1cm4gbV9taXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblJp
Z2h0Qm90dG9tIDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRUb3A7CisgICAgICAgIGNh
c2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd246CisgICAgICAgICAgICBy
ZXR1cm4gbV9taXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbUxlZnQgOiBJ
bWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21SaWdodDsKKyAgICAgICAgY2FzZSBNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDoKKyAgICAgICAgICAgIHJldHVybiBtX21pcnJvcmVk
ID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luTGVmdFRvcCA6IEltYWdlT3JpZW50YXRpb246Ok9y
aWdpbkxlZnRCb3R0b207CisgICAgICAgIH0KKyAgICB9KCk7CisgICAgcmV0dXJuIE1lZGlhU2Ft
cGxlVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IHBpeGVsQnVmZmVyIH0sIG9yaWVudGF0aW9uIH07
Cit9CisKIHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50UmFuZG9tQWNjZXNz
KENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50RGljdCkKIHsKICAgICByZXR1cm4gIUNGRGljdGlv
bmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0LCBQQUw6OmtDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfTm90U3luYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCAzMmRiNmVl
ODJjY2QwMTkzOGI0MDdhNmI2ZThkZWNmODU1MmJjODE5Li41MzAyYTcxYTkwZTZkYjUxNjM1Njkw
ZDdiMDBhZTAzYTFmYTU5YTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAg
LTc5MSw4ICs3OTEsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnBsYXRmb3JtUmVs
ZWFzZVRocmVhZFJlc291cmNlcygpCiAjaWYgRU5BQkxFKFZJREVPKQogYm9vbCBHcmFwaGljc0Nv
bnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBQ
bGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xlbnVtIG91dHB1dFRhcmdldCwgR0NH
TGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NH
TGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGZsaXBZKQogewotICAgIGF1
dG8gcGl4ZWxCdWZmZXIgPSBwbGF5ZXIucGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpOwotICAg
IGlmICghcGl4ZWxCdWZmZXIpCisgICAgYXV0byB2aWRlb0ZyYW1lID0gcGxheWVyLnZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZSgpOworICAgIGlmICghdmlkZW9GcmFtZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgYXV0byBjb250ZXh0Q1YgPSBhc0NWKCk7CkBAIC04MDEsNyArODAxLDcg
QEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRp
YVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUcKIAogICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0
aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5VU0VEKG91dHB1dFRhcmdldCwgb3V0cHV0VGFyZ2V0
ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJEKTsKLSAgICByZXR1cm4gY29udGV4dENW
LT5jb3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUocGl4ZWxCdWZmZXIuZ2V0KCksIG91dHB1dFRleHR1
cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRH
TDo6RmxpcFkoZmxpcFkpKTsKKyAgICByZXR1cm4gY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVU
b1RleHR1cmUoKnZpZGVvRnJhbWUsIG91dHB1dFRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1h
dCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKTsKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9H
cmFwaGljc0NvbnRleHRHTENWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9HcmFwaGljc0NvbnRleHRHTENWLmgKaW5kZXggMWQ2MTVhN2YwZWYxMTMyMzI2ODAyZTU2NGE5
YWQ1MjUyN2UwMzA2Ny4uYWMxNDc1ZTlkYTM2ZWQxNDEzNTIyZTk2OTEyMmI2MzFlMzE5M2VmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3ND
b250ZXh0R0xDVi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dy
YXBoaWNzQ29udGV4dEdMQ1YuaApAQCAtMjksOSArMjksOCBAQAogCiAjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0R0wuaCIKIAotdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZl
clJlZjsKLQogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTWVkaWFTYW1wbGVWaWRlb0ZyYW1l
OwogCiAvLyBJbnRlcmZhY2UgdG8gaW50ZXJhY3Qgd2l0aCBDViBvYmplY3RzIGFuZCBHcmFwaGlj
c0NvbnRleHRHTC4KIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMQ1YgewpAQCAtNDEsNyArNDAsNyBA
QCBwdWJsaWM6CiAgICAgdXNpbmcgRmxpcFkgPSBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFk7CiAg
ICAgLy8gQ29waWVzIENWIHBpeGVsIGJ1ZmZlciB0byBHcmFwaGljc0NvbnRleHRHTCBURVhUVVJF
XzJEIHRleHR1cmUgb2YgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgcGl4ZWwgYnVmZmVyLgogICAgIC8v
IFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgotICAgIHZpcnR1YWwgYm9vbCBjb3B5UGl4ZWxCdWZm
ZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0
dXJlLCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9y
bWF0LCBHQ0dMZW51bSB0eXBlLCBGbGlwWSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjb3B5Vmlk
ZW9TYW1wbGVUb1RleHR1cmUoY29uc3QgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lJiwgUGxhdGZvcm1H
TE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZv
cm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBGbGlwWSkgPSAwOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhp
Y3NDb250ZXh0R0xDVkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKaW5kZXggMjQ5OTVhM2VlZWRiZWM5NDg1
YmMxYzZhNjliNjI1ZDBiZTdhODk5My4uZDQ1MjA0OWNhZDM3MzBiZjk5MzA5ZTc2ZjIyOTc1ODcw
NjFhODk2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCkBAIC00OSw2ICs0OSw4
IEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzX3l1dlZlcnRleFNoYWRlclRleHR1cmUyRCB7CiAg
ICAgInVuaWZvcm0gdmVjMiB1X3lUZXh0dXJlU2l6ZTsiCiAgICAgInVuaWZvcm0gdmVjMiB1X3V2
VGV4dHVyZVNpemU7IgogICAgICJ1bmlmb3JtIGludCB1X2ZsaXBZOyIKKyAgICAidW5pZm9ybSBp
bnQgdV9mbGlwWDsiCisgICAgInVuaWZvcm0gaW50IHVfc3dhcFhZOyIKICAgICAidmFyeWluZyB2
ZWMyIHZfeVRleHR1cmVDb29yZGluYXRlOyIKICAgICAidmFyeWluZyB2ZWMyIHZfdXZUZXh0dXJl
Q29vcmRpbmF0ZTsiCiAgICAgInZvaWQgbWFpbigpIgpAQCAtNTcsNiArNTksMTAgQEAgc3RhdGlj
IGNvbnN0ZXhwciBhdXRvIHNfeXV2VmVydGV4U2hhZGVyVGV4dHVyZTJEIHsKICAgICAiICAgIHZl
YzIgbm9ybWFsaXplZFBvc2l0aW9uID0gYV9wb3NpdGlvbiAqIC41ICsgLjU7IgogICAgICIgICAg
aWYgKHVfZmxpcFkgPT0gMSkiCiAgICAgIiAgICAgICAgbm9ybWFsaXplZFBvc2l0aW9uLnkgPSAx
LjAgLSBub3JtYWxpemVkUG9zaXRpb24ueTsiCisgICAgIiAgICBpZiAodV9mbGlwWCA9PSAxKSIK
KyAgICAiICAgICAgICBub3JtYWxpemVkUG9zaXRpb24ueCA9IDEuMCAtIG5vcm1hbGl6ZWRQb3Np
dGlvbi54OyIKKyAgICAiICAgIGlmICh1X3N3YXBYWSA9PSAxKSIKKyAgICAiICAgICAgICBub3Jt
YWxpemVkUG9zaXRpb24ueHkgPSBub3JtYWxpemVkUG9zaXRpb24ueXg7IgogICAgICIgICAgdl95
VGV4dHVyZUNvb3JkaW5hdGUgPSBub3JtYWxpemVkUG9zaXRpb247IgogICAgICIgICAgdl91dlRl
eHR1cmVDb29yZGluYXRlID0gbm9ybWFsaXplZFBvc2l0aW9uOyIKICAgICAifSJfcwpAQCAtNjcs
NiArNzMsOCBAQCBzdGF0aWMgY29uc3RleHByIGF1dG8gc195dXZWZXJ0ZXhTaGFkZXJUZXh0dXJl
UmVjdGFuZ2xlIHsKICAgICAidW5pZm9ybSB2ZWMyIHVfeVRleHR1cmVTaXplOyIKICAgICAidW5p
Zm9ybSB2ZWMyIHVfdXZUZXh0dXJlU2l6ZTsiCiAgICAgInVuaWZvcm0gaW50IHVfZmxpcFk7Igor
ICAgICJ1bmlmb3JtIGludCB1X2ZsaXBYOyIKKyAgICAidW5pZm9ybSBpbnQgdV9zd2FwWFk7Igog
ICAgICJ2YXJ5aW5nIHZlYzIgdl95VGV4dHVyZUNvb3JkaW5hdGU7IgogICAgICJ2YXJ5aW5nIHZl
YzIgdl91dlRleHR1cmVDb29yZGluYXRlOyIKICAgICAidm9pZCBtYWluKCkiCkBAIC03NSw2ICs4
MywxMCBAQCBzdGF0aWMgY29uc3RleHByIGF1dG8gc195dXZWZXJ0ZXhTaGFkZXJUZXh0dXJlUmVj
dGFuZ2xlIHsKICAgICAiICAgIHZlYzIgbm9ybWFsaXplZFBvc2l0aW9uID0gYV9wb3NpdGlvbiAq
IC41ICsgLjU7IgogICAgICIgICAgaWYgKHVfZmxpcFkgPT0gMSkiCiAgICAgIiAgICAgICAgbm9y
bWFsaXplZFBvc2l0aW9uLnkgPSAxLjAgLSBub3JtYWxpemVkUG9zaXRpb24ueTsiCisgICAgIiAg
ICBpZiAodV9mbGlwWCA9PSAxKSIKKyAgICAiICAgICAgICBub3JtYWxpemVkUG9zaXRpb24ueCA9
IDEuMCAtIG5vcm1hbGl6ZWRQb3NpdGlvbi54OyIKKyAgICAiICAgIGlmICh1X3N3YXBYWSA9PSAx
KSIKKyAgICAiICAgICAgICBub3JtYWxpemVkUG9zaXRpb24ueHkgPSBub3JtYWxpemVkUG9zaXRp
b24ueXg7IgogICAgICIgICAgdl95VGV4dHVyZUNvb3JkaW5hdGUgPSBub3JtYWxpemVkUG9zaXRp
b24gKiB1X3lUZXh0dXJlU2l6ZTsiCiAgICAgIiAgICB2X3V2VGV4dHVyZUNvb3JkaW5hdGUgPSBu
b3JtYWxpemVkUG9zaXRpb24gKiB1X3V2VGV4dHVyZVNpemU7IgogICAgICJ9Il9zCkBAIC01NDgs
NiArNTYwLDggQEAgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpHcmFwaGljc0NvbnRleHRHTENW
Q29jb2EoR3JhcGhpY3NDb250ZXh0R0xDb2NvYSYgb3duZXIKICAgICBtX3V2VGV4dHVyZVVuaWZv
cm1Mb2NhdGlvbiA9IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9ncmFtLCAidV91dlRleHR1
cmUiKTsKICAgICBtX2NvbG9yTWF0cml4VW5pZm9ybUxvY2F0aW9uID0gR0xfR2V0VW5pZm9ybUxv
Y2F0aW9uKHl1dlByb2dyYW0sICJ1X2NvbG9yTWF0cml4Iik7CiAgICAgbV95dXZGbGlwWVVuaWZv
cm1Mb2NhdGlvbiA9IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9ncmFtLCAidV9mbGlwWSIp
OworICAgIG1feXV2RmxpcFhVbmlmb3JtTG9jYXRpb24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24o
eXV2UHJvZ3JhbSwgInVfZmxpcFgiKTsKKyAgICBtX3l1dlN3YXBYWVVuaWZvcm1Mb2NhdGlvbiA9
IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9ncmFtLCAidV9zd2FwWFkiKTsKICAgICBtX3lU
ZXh0dXJlU2l6ZVVuaWZvcm1Mb2NhdGlvbiA9IEdMX0dldFVuaWZvcm1Mb2NhdGlvbih5dXZQcm9n
cmFtLCAidV95VGV4dHVyZVNpemUiKTsKICAgICBtX3V2VGV4dHVyZVNpemVVbmlmb3JtTG9jYXRp
b24gPSBHTF9HZXRVbmlmb3JtTG9jYXRpb24oeXV2UHJvZ3JhbSwgInVfdXZUZXh0dXJlU2l6ZSIp
OwogICAgIG1feXV2UG9zaXRpb25BdHRyaWJ1dGVMb2NhdGlvbiA9IEdMX0dldEF0dHJpYkxvY2F0
aW9uKHl1dlByb2dyYW0sICJhX3Bvc2l0aW9uIik7CkBAIC01NTksOCArNTczLDkgQEAgR3JhcGhp
Y3NDb250ZXh0R0xDVkNvY29hOjpHcmFwaGljc0NvbnRleHRHTENWQ29jb2EoR3JhcGhpY3NDb250
ZXh0R0xDb2NvYSYgb3duZXIKICAgICBHTF9CaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIs
IG1fZnJhbWVidWZmZXIpOwogfQogCi1ib29sIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29w
eVBpeGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2UsIFBsYXRmb3JtR0xP
YmplY3Qgb3V0cHV0VGV4dHVyZSwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwg
R0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIEZsaXBZIGZsaXBZKQorYm9vbCBHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2E6OmNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShjb25zdCBNZWRpYVNhbXBs
ZVZpZGVvRnJhbWUmIHZpZGVvRnJhbWUsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwg
R0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVt
IHR5cGUsIEZsaXBZIHVucGFja0ZsaXBZKQogeworICAgIGF1dG8gaW1hZ2UgPSB2aWRlb0ZyYW1l
LnBpeGVsQnVmZmVyKCk7CiAgICAgLy8gRklYTUU6IFRoaXMgY3VycmVudGx5IG9ubHkgc3VwcG9y
dHMgJzQyMHYnIGFuZCAnNDIwZicgcGl4ZWwgZm9ybWF0cy4gSW52ZXN0aWdhdGUgc3VwcG9ydGlu
ZyBtb3JlIHBpeGVsIGZvcm1hdHMuCiAgICAgT1NUeXBlIHBpeGVsRm9ybWF0ID0gQ1ZQaXhlbEJ1
ZmZlckdldFBpeGVsRm9ybWF0VHlwZShpbWFnZSk7CiAgICAgaWYgKHBpeGVsRm9ybWF0ICE9IGtD
VlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJWaWRlb1JhbmdlIC8vIE5PTElOVApA
QCAtNTc3LDkgKzU5MiwxMCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVBp
eGVsQnVmZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2UsCiAgICAgaWYgKCFzdXJm
YWNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBhdXRvIG9yaWVudGF0aW9uID0gdmlk
ZW9GcmFtZS5vcmllbnRhdGlvbigpOwogICAgIGF1dG8gbmV3U3VyZmFjZVNlZWQgPSBJT1N1cmZh
Y2VHZXRTZWVkKHN1cmZhY2UpOwotICAgIGlmIChmbGlwWSA9PSBtX2xhc3RGbGlwWQotICAgICAg
ICAmJiBzdXJmYWNlID09IG1fbGFzdFN1cmZhY2UKKyAgICBpZiAoSW1hZ2VPcmllbnRhdGlvbjo6
T3JpZW50YXRpb24ob3JpZW50YXRpb24pID09IEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9u
KG1fbGFzdFN1cmZhY2VPcmllbnRhdGlvbikKKyAgICAgICAgJiYgdW5wYWNrRmxpcFkgPT0gbV9s
YXN0VW5wYWNrRmxpcFkKICAgICAgICAgJiYgbmV3U3VyZmFjZVNlZWQgPT0gbV9sYXN0U3VyZmFj
ZVNlZWQKICAgICAgICAgJiYgbGFzdFRleHR1cmVTZWVkKG91dHB1dFRleHR1cmUpID09IG1fb3du
ZXIudGV4dHVyZVNlZWQob3V0cHV0VGV4dHVyZSkpIHsKICAgICAgICAgLy8gSWYgdGhlIHRleHR1
cmUgaGFzbid0IGJlZW4gbW9kaWZpZWQgc2luY2UgdGhlIGxhc3QgdGltZSB3ZSBjb3BpZWQgdG8g
aXQsIGFuZCB0aGUKQEAgLTU4OSw4ICs2MDUsNjAgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENW
Q29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLAog
ICAgIGlmICghbV9jb250ZXh0IHx8ICFHcmFwaGljc0NvbnRleHRHTENvY29hOjptYWtlQ3VycmVu
dChtX2Rpc3BsYXksIG1fY29udGV4dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHNp
emVfdCB3aWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChpbWFnZSk7Ci0gICAgc2l6ZV90IGhl
aWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQoaW1hZ2UpOworICAgIC8vIENvbXB1dGUgdHJh
bnNmb3JtIHRoYXQgdW5kb2VzIHRoZSBgb3JpZW50YXRpb25gLCBlLmcuIG1vdmVzIHRoZSBvcmln
aW4gdG8gdG9wIGxlZnQuCisgICAgLy8gRXZlbiBudW1iZXIgb2Ygb3BlcmF0aW9ucyAoZmxpcFgs
IGZsaXBZLCBzd2FwWFkpIG1lYW5zIGEgcm90YXRpb24uCisgICAgLy8gT2RkIG51bWJlciBvZiBv
cGVyYXRpb25zIG1lYW5zIGEgcm90YXRpb24gYW5kIGEgZmxpcC4KKyAgICAvLyBgZmxpcFhgIHN3
aXRjaGVzIGJldHdlZW4gTGVmdCBhbmQgUmlnaHQuIGBmbGlwWWAgc3dpdGNoZXMgYmV0d2VlbiBU
b3AgYW5kIEJvdHRvbS4KKyAgICAvLyBgc3dhcFhZYHN3aXRjaGVzIExlZnRUb3AgdG8gVG9wTGVm
dC4KKyAgICAvLyBHb2FsIGlzIHRvIGdldCB0byBPcmlnaW5Ub3BMZWZ0LgorICAgIGJvb2wgZmxp
cFkgPSBmYWxzZTsgLy8gRmxpcCB5IGNvb3JkaW5hdGUsIGkuZS4gbWlycm9yZWQgYWxvbmcgdGhl
IHgtYXhpcy4KKyAgICBib29sIGZsaXBYID0gZmFsc2U7IC8vIEZsaXAgeCBjb29yZGluYXRlLCBp
LmUuIG1pcnJvcmVkIGFsb25nIHRoZSB5LWF4aXMuCisgICAgYm9vbCBzd2FwWFkgPSBmYWxzZTsK
KyAgICBzd2l0Y2ggKHZpZGVvRnJhbWUub3JpZW50YXRpb24oKSkgeworICAgIGNhc2UgSW1hZ2VP
cmllbnRhdGlvbjo6RnJvbUltYWdlOgorICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2lu
VG9wTGVmdDoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9uOjpPcmln
aW5Ub3BSaWdodDoKKyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0OgorICAgICAgICAvLyBSb3Rh
dGVkIDE4MCBkZWdyZWVzLgorICAgICAgICBmbGlwWSA9IHRydWU7CisgICAgICAgIGZsaXBYID0g
dHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5C
b3R0b21MZWZ0OgorICAgICAgICAvLyBNaXJyb3JlZCBhbG9uZyB0aGUgeC1heGlzLgorICAgICAg
ICBmbGlwWSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luTGVmdFRvcDoKKyAgICAgICAgLy8gTWlycm9yZWQgYWxvbmcgeC1heGlzIGFuZCBy
b3RhdGVkIDI3MCBkZWdyZWVzIGNsb2NrLXdpc2UuCisgICAgICAgIHN3YXBYWSA9IHRydWU7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRUb3A6
CisgICAgICAgIC8vIFJvdGF0ZWQgOTAgZGVncmVlcyBjbG9jay13aXNlLgorICAgICAgICBmbGlw
WCA9IHRydWU7CisgICAgICAgIHN3YXBYWSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRCb3R0b206CisgICAgICAgIC8vIE1pcnJv
ciBhbG9uZyB4LWF4aXMgYW5kIHJvdGF0ZWQgOTAgZGVncmVlcyBjbG9ja3dpc2UuCisgICAgICAg
IGZsaXBZID0gdHJ1ZTsKKyAgICAgICAgZmxpcFggPSB0cnVlOworICAgICAgICBzd2FwWFkgPSB0
cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkxl
ZnRCb3R0b206CisgICAgICAgIC8vIFJvdGF0ZWQgMjcwIGRlZ3JlZXMgY2xvY2std2lzZS4KKyAg
ICAgICAgZmxpcFkgPSB0cnVlOworICAgICAgICBzd2FwWFkgPSB0cnVlOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgaWYgKHVucGFja0ZsaXBZID09IEZsaXBZOjpZZXMpCisgICAgICAgIGZs
aXBZID0gIWZsaXBZOworCisgICAgc2l6ZV90IHNvdXJjZVdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdl
dFdpZHRoKGltYWdlKTsKKyAgICBzaXplX3Qgc291cmNlSGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdl
dEhlaWdodChpbWFnZSk7CisKKyAgICBzaXplX3Qgd2lkdGggPSBzd2FwWFkgPyBzb3VyY2VIZWln
aHQgOiBzb3VyY2VXaWR0aDsKKyAgICBzaXplX3QgaGVpZ2h0ID0gc3dhcFhZID8gc291cmNlV2lk
dGggOiBzb3VyY2VIZWlnaHQ7CiAKICAgICBHTF9WaWV3cG9ydCgwLCAwLCB3aWR0aCwgaGVpZ2h0
KTsKIApAQCAtNjY0LDcgKzczMiw5IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpj
b3B5UGl4ZWxCdWZmZXJUb1RleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZSwKICAgICAvLyBD
b25maWd1cmUgdGhlIGRyYXdpbmcgcGFyYW1ldGVycy4KICAgICBHTF9Vbmlmb3JtMWkobV95VGV4
dHVyZVVuaWZvcm1Mb2NhdGlvbiwgMCk7CiAgICAgR0xfVW5pZm9ybTFpKG1fdXZUZXh0dXJlVW5p
Zm9ybUxvY2F0aW9uLCAxKTsKLSAgICBHTF9Vbmlmb3JtMWkobV95dXZGbGlwWVVuaWZvcm1Mb2Nh
dGlvbiwgZmxpcFkgPT0gRmxpcFk6OlllcyA/IDEgOiAwKTsKKyAgICBHTF9Vbmlmb3JtMWkobV95
dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiwgZmxpcFkgPyAxIDogMCk7CisgICAgR0xfVW5pZm9ybTFp
KG1feXV2RmxpcFhVbmlmb3JtTG9jYXRpb24sIGZsaXBYID8gMSA6IDApOworICAgIEdMX1VuaWZv
cm0xaShtX3l1dlN3YXBYWVVuaWZvcm1Mb2NhdGlvbiwgc3dhcFhZID8gMSA6IDApOwogICAgIEdM
X1VuaWZvcm0yZihtX3lUZXh0dXJlU2l6ZVVuaWZvcm1Mb2NhdGlvbiwgeVBsYW5lV2lkdGgsIHlQ
bGFuZUhlaWdodCk7CiAgICAgR0xfVW5pZm9ybTJmKG1fdXZUZXh0dXJlU2l6ZVVuaWZvcm1Mb2Nh
dGlvbiwgdXZQbGFuZVdpZHRoLCB1dlBsYW5lSGVpZ2h0KTsKIApAQCAtNjc2LDEwICs3NDYsMTEg
QEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVy
ZShDVlBpeGVsQnVmZmVyUmVmIGltYWdlLAogICAgIC8vIERvIHRoZSBhY3R1YWwgZHJhd2luZy4K
ICAgICBHTF9EcmF3QXJyYXlzKEdMX1RSSUFOR0xFUywgMCwgNik7CiAKKyAgICBtX2xhc3RVbnBh
Y2tGbGlwWSA9IHVucGFja0ZsaXBZOwogICAgIG1fbGFzdFN1cmZhY2UgPSBzdXJmYWNlOwogICAg
IG1fbGFzdFN1cmZhY2VTZWVkID0gbmV3U3VyZmFjZVNlZWQ7CisgICAgbV9sYXN0U3VyZmFjZU9y
aWVudGF0aW9uID0gb3JpZW50YXRpb247CiAgICAgbV9sYXN0VGV4dHVyZVNlZWQuc2V0KG91dHB1
dFRleHR1cmUsIG1fb3duZXIudGV4dHVyZVNlZWQob3V0cHV0VGV4dHVyZSkpOwotICAgIG1fbGFz
dEZsaXBZID0gZmxpcFk7CiAgICAgYXV0b0NsZWFyVGV4dHVyZU9uRXJyb3IucmVsZWFzZSgpOwog
ICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAppbmRleCBjNGUz
OTYwYjZkNzA4MGU0YzM5NDBiOGFmN2FkOWRjZTYyNDYyNzBmLi5jZDE1Y2NjZjA2ZTVmZWU5ZmUx
OTE3OTM0YWI3NjUxZGVlN2Y4ZjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaApAQCAt
MjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJHTCkgJiYgRU5BQkxFKFZJREVPKSAmJiBVU0Uo
QVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xDVi5oIgotCisjaW5j
bHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3
dGYvVW5zYWZlUG9pbnRlci5oPgogCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIH5H
cmFwaGljc0NvbnRleHRHTENWQ29jb2EoKSBmaW5hbDsKIAotICAgIGJvb2wgY29weVBpeGVsQnVm
ZmVyVG9UZXh0dXJlKENWUGl4ZWxCdWZmZXJSZWYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4
dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZv
cm1hdCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpIGZpbmFsOworICAgIGJvb2wgY29weVZpZGVvU2Ft
cGxlVG9UZXh0dXJlKGNvbnN0IE1lZGlhU2FtcGxlVmlkZW9GcmFtZSYsIFBsYXRmb3JtR0xPYmpl
Y3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQs
IEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpIGZpbmFsOwogCiBwcml2YXRl
OgogICAgIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYShHcmFwaGljc0NvbnRleHRHTENvY29hJik7
CkBAIC02NCwxMiArNjQsMTUgQEAgcHJpdmF0ZToKICAgICBHQ0dMaW50IG1feVRleHR1cmVVbmlm
b3JtTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV91dlRleHR1cmVVbmlmb3JtTG9jYXRp
b24geyAtMSB9OwogICAgIEdDR0xpbnQgbV95dXZGbGlwWVVuaWZvcm1Mb2NhdGlvbiB7IC0xIH07
CisgICAgR0NHTGludCBtX3l1dkZsaXBYVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKKyAgICBHQ0dM
aW50IG1feXV2U3dhcFhZVW5pZm9ybUxvY2F0aW9uIHsgLTEgfTsKICAgICBHQ0dMaW50IG1fY29s
b3JNYXRyaXhVbmlmb3JtTG9jYXRpb24geyAtMSB9OwogICAgIEdDR0xpbnQgbV95dXZQb3NpdGlv
bkF0dHJpYnV0ZUxvY2F0aW9uIHsgLTEgfTsKICAgICBHQ0dMaW50IG1feVRleHR1cmVTaXplVW5p
Zm9ybUxvY2F0aW9uIHsgLTEgfTsKICAgICBHQ0dMaW50IG1fdXZUZXh0dXJlU2l6ZVVuaWZvcm1M
b2NhdGlvbiB7IC0xIH07CiAKLSAgICBGbGlwWSBtX2xhc3RGbGlwWSB7IEZsaXBZOjpObyB9Owor
ICAgIEZsaXBZIG1fbGFzdFVucGFja0ZsaXBZIHsgRmxpcFk6Ok5vIH07CisgICAgSW1hZ2VPcmll
bnRhdGlvbiBtX2xhc3RTdXJmYWNlT3JpZW50YXRpb247CiAgICAgVW5zYWZlUG9pbnRlcjxJT1N1
cmZhY2VSZWY+IG1fbGFzdFN1cmZhY2U7CiAgICAgdWludDMyX3QgbV9sYXN0U3VyZmFjZVNlZWQg
eyAwIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggMzcwNjY3M2U5ZjA2MjFhYTFhNTM4M2NmM2Iw
ZTJmNWNmOTA1MDIxOS4uNjBjNWE4Y2Q2ZDUwZTkwMGU0YzFlYmQxZmQ4ZTJkZGFlOGI2ZGI5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAKQEAgLTUwOSw2ICs1MDksNyBAQCB2b2lkIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKQogICAgICAgICBt
X2RldmljZU9yaWVudGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURv
d247CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNw
cAppbmRleCAwNzMzZjNjMTc4NmUxYzU3MGJjOWUzYTRmNGQxYjhlNzI3ZDE3YzY2Li5lY2I0YjU3
NjdjYzlhOGUyNjg2NDZkY2UzOWQyNjYyYzM0MmMzM2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TC5jcHAKQEAgLTI2MCwxOCArMjYwLDE4IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6
OmNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllCiAgICAg
VU5VU0VEX1ZBUklBQkxFKHByZW11bHRpcGx5QWxwaGEpOwogICAgIEFTU0VSVF9VTlVTRUQodGFy
Z2V0LCB0YXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0R0w6OlRFWFRVUkVfMkQpOwogCi0gICAgUmV0
YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyOwotICAgIGF1dG8gZ2V0UGl4ZWxC
dWZmZXIgPSBbJl0geworICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2
aWRlb0ZyYW1lOworICAgIGF1dG8gZ2V0VmlkZW9GcmFtZSA9IFsmXSB7CiAgICAgICAgIGlmICgh
bV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgIGlmIChhdXRvIG1lZGlhUGxheWVyID0gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5y
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLm1lZGlhUGxheWVyKG1lZGlhUGxheWVySWRl
bnRpZmllcikpCi0gICAgICAgICAgICBwaXhlbEJ1ZmZlciA9IG1lZGlhUGxheWVyLT5waXhlbEJ1
ZmZlckZvckN1cnJlbnRUaW1lKCk7CisgICAgICAgICAgICB2aWRlb0ZyYW1lID0gbWVkaWFQbGF5
ZXItPnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwogICAgIH07CiAKLSAgICBjYWxsT25NYWlu
UnVuTG9vcEFuZFdhaXQoV1RGTW92ZShnZXRQaXhlbEJ1ZmZlcikpOworICAgIGNhbGxPbk1haW5S
dW5Mb29wQW5kV2FpdChXVEZNb3ZlKGdldFZpZGVvRnJhbWUpKTsKIAotICAgIGlmICghcGl4ZWxC
dWZmZXIpIHsKKyAgICBpZiAoIXZpZGVvRnJhbWUpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjgyLDcgKzI4Miw3IEBAIHZv
aWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6
Ok1lZGlhUGxheWVySWRlbnRpZmllCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjb21w
bGV0aW9uSGFuZGxlcihjb250ZXh0Q1YtPmNvcHlQaXhlbEJ1ZmZlclRvVGV4dHVyZShwaXhlbEJ1
ZmZlci5nZXQoKSwgdGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUs
IEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpKTsKKyAgICBjb21wbGV0aW9uSGFuZGxl
cihjb250ZXh0Q1YtPmNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZSgqdmlkZW9GcmFtZSwgdGV4dHVy
ZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdM
OjpGbGlwWShmbGlwWSkpKTsKICNlbHNlCiAgICAgVU5VU0VEX1ZBUklBQkxFKG1lZGlhUGxheWVy
SWRlbnRpZmllcik7CiAgICAgVU5VU0VEX1ZBUklBQkxFKHRleHR1cmUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
Y3BwCmluZGV4IDg4MTA4Y2JjNTMzYzEwYzc1ZTM3MGJmY2M4OTgwMGE1M2M2NzI5YWQuLjQyYTMy
MDY1NGIwM2RmOWI0Mzk3Nzc5NDI1NjQ1ODIwMDZjZGExMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAK
QEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmludmFsaWRh
dGUoKQogICAgIH0KICAgICBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgPSB7IH07CiAjaWYg
VVNFKEFWRk9VTkRBVElPTikKLSAgICBtX3BpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUgPSBudWxs
cHRyOworICAgIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID0gc3RkOjpudWxsb3B0OwogI2Vu
ZGlmCiB9CiAKQEAgLTg2OCw2ICs4NjgsMjEgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjpjdXJyZW50VGltZUNoYW5nZWQoY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUpCiAgICAgbV93
ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpDdXJyZW50VGltZUNoYW5nZWQobWVkaWFUaW1lLCBNb25vdG9uaWNUaW1lOjpub3coKSwg
IW1lZGlhUGxheWVyUGF1c2VkT3JTdGFsbGVkKCkpLCBtX2lkKTsKIH0KIAordm9pZCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9G
cmFtZT4mJiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHJlc3VsdDsKKyAgICBib29sIGNoYW5n
ZWQgPSBmYWxzZTsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9G
cmFtZT4gdmlkZW9GcmFtZTsKKyAgICBpZiAobV9wbGF5ZXIpCisgICAgICAgIHZpZGVvRnJhbWUg
PSBtX3BsYXllci0+dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CisgICAgaWYgKCEobV92aWRl
b0ZyYW1lRm9yQ3VycmVudFRpbWUgPT0gdmlkZW9GcmFtZSkpIHsKKyAgICAgICAgbV92aWRlb0Zy
YW1lRm9yQ3VycmVudFRpbWUgPSB2aWRlb0ZyYW1lOworICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsK
KyAgICAgICAgcmVzdWx0ID0gV1RGTW92ZSh2aWRlb0ZyYW1lKTsKKyAgICB9CisgICAgY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpLCBjaGFuZ2VkKTsKK30KKwogdm9pZCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5Ojp1cGRhdGVDYWNoZWRTdGF0ZShib29sIGZvcmNlQ3VycmVudFRpbWVV
cGRhdGUpCiB7CiAgICAgaWYgKCFtX29ic2VydmluZ1RpbWVDaGFuZ2VzIHx8IGZvcmNlQ3VycmVu
dFRpbWVVcGRhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCAzMmYzYTQ2YWEwZjA5YjEzYjAyNGU0MTY0
MDc4YTVkYWRkZWRjNTRlLi4xZmJlMWY5MzNkMDk1MDA2ZjQyZmQ5ZGNmYzZmMmE0NDJhNzY0MDkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmgKQEAgLTMyMCw5ICszMjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8V1RGOjpNYWNoU2VuZFJpZ2h0PiYmLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2UpPiYmKTsKICAgICB2b2lkIGNvbG9yU3BhY2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UpPiYmKTsKICNlbmRpZgotI2lmIFVTRShBVkZPVU5E
QVRJT04pCi0gICAgdm9pZCBwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4+JiYpPiYmKTsKLSNlbmRpZgorICAgIHZvaWQgdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZD
aGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRp
YVNhbXBsZVZpZGVvRnJhbWU+JiYsIGJvb2wpPiYmKTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAogICAgIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7IHJldHVy
biBtX2xvZ2dlcjsgfQpAQCAtMzc4LDkgKzM3Niw3IEBAIHByaXZhdGU6CiAgICAgU2NvcGVkUmVu
ZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Q7CiAKICAg
ICBib29sIG1fb2JzZXJ2aW5nVGltZUNoYW5nZXMgeyBmYWxzZSB9OwotI2lmIFVTRShBVkZPVU5E
QVRJT04pCi0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXJGb3JD
dXJyZW50VGltZTsKLSNlbmRpZgorICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1w
bGVWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKICNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1fbG9nZ2VyOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDM5Yzg3MjliMjczOWUxMzY0NGIzMWFhODBk
YmE4MGQ0YTMzMGM4YWUuLjRlNGZlY2EyODMxYTRjZDNlM2E5YmU3OTJhYjIwNWIxZTEzZWQyNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMjYsOSArMTI2LDcgQEAg
bWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBO
YXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgLT4gKHN0ZDo6b3B0aW9uYWw8TWFjaFNlbmRSaWdo
dD4gc2VuZFJpZ2h0LCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSkg
U3luY2hyb25vdXMKICAgICBDb2xvclNwYWNlKCkgLT4gKFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29s
b3JTcGFjZSBjb2xvclNwYWNlKSBTeW5jaHJvbm91cwogI2VuZGlmCi0jaWYgVVNFKEFWRk9VTkRB
VElPTikKLSAgICBQaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCkgLT4gKHN0ZDo6
b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+PiBwaXhlbEJ1ZmZlcikgU3luY2hy
b25vdXMKLSNlbmRpZgorICAgIFZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpIC0+
IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFt
ZSwgYm9vbCBjaGFuZ2VkKSBTeW5jaHJvbm91cwogCiAgICAgUGxheUF0SG9zdFRpbWUoTW9ub3Rv
bmljVGltZSB0aW1lKQogICAgIFBhdXNlQXRIb3N0VGltZShNb25vdG9uaWNUaW1lIHRpbWUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29jb2EvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL2Nv
Y29hL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbQppbmRleCBjNmJiYTNhYTJiNGU1NWZh
ZWZiOTMzYmJlMmU2MzU5ZDczZjYzMTk4Li5mYmUxMGJjMzA1ZDJkMmUxNWEyNGE3Y2VlNDUwN2Vh
MTc2NzM3NDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvY29j
b2EvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9jb2NvYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29jb2EubW0KQEAgLTEy
NywyMSArMTI3LDYgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpjb2xvclNwYWNlKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGVzdGluYXQKICAgICBjb21wbGV0aW9uSGFu
ZGxlcihtX3BsYXllci0+Y29sb3JTcGFjZSgpKTsKIH0KIAotI2lmIFVTRShBVkZPVU5EQVRJT04p
Ci12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWVJ
ZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFJldGFpblB0cjxD
VlBpeGVsQnVmZmVyUmVmPj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgc3RkOjpv
cHRpb25hbDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHJlc3VsdDsKLSAgICBSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXI7Ci0gICAgaWYgKG1fcGxheWVyKQotICAg
ICAgICBwaXhlbEJ1ZmZlciA9IG1fcGxheWVyLT5waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCk7
Ci0gICAgaWYgKG1fcGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSAhPSBwaXhlbEJ1ZmZlcikgewot
ICAgICAgICByZXN1bHQgPSBwaXhlbEJ1ZmZlcjsKLSAgICAgICAgbV9waXhlbEJ1ZmZlckZvckN1
cnJlbnRUaW1lID0gV1RGTW92ZShwaXhlbEJ1ZmZlcik7Ci0gICAgfQotICAgIGNvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUocmVzdWx0KSk7Ci19Ci0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDlhNjQyOTQzNzg0MmY0M2RiNmRhMWMy
NTAxMWVkNGE1NDRjYmYzNjEuLjhkOWU1ZmY5MmFjM2IzZjBlYjcxMzM5ZWZlOGI0YmYzZjQyOTY0
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTEwMDAsMTMgKzEwMDAsMTgg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRm
b3JtVGV4dHVyZShXZWJDb3JlOjpHcmFwaGkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJl
dHVybiBmYWxzZTsKIH0KLSNlbGlmICFQTEFURk9STShDT0NPQSkKLVJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnBpeGVsQnVmZmVyRm9yQ3VycmVu
dFRpbWUoKQorI2VuZGlmCisKK3N0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRl
b0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHJlc3VsdDsKKyAgICBi
b29sIGNoYW5nZWQgPSBmYWxzZTsKKyAgICBpZiAoIWNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNz
YWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZD
aGFuZ2VkKCksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpWaWRlb0ZyYW1lRm9y
Q3VycmVudFRpbWVJZkNoYW5nZWQ6OlJlcGx5KHJlc3VsdCwgY2hhbmdlZCksIG1faWQpKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmIChjaGFuZ2VkKQorICAgICAgICBtX3Zp
ZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IFdURk1vdmUocmVzdWx0KTsKKyAgICByZXR1cm4gbV92
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiB9Ci0jZW5kaWYKIAogI2lmICFQTEFURk9STShDT0NP
QSkKIFJlZlB0cjxOYXRpdmVJbWFnZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpuYXRpdmVJ
bWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IGViMzI2
MjQwNGM2ZjkxZDhkMjY3YTM4NTE2NDUyMjdhMDkwMzc5ZTguLjFhNmEzNDAzNDNkMTQyZWRmZGVl
YTM2YjM3NGE5OWY5OTNlZmViOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMjky
LDkgKzI5Miw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4
dChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBm
aW5hbDsKICNpZiAhVVNFKEFWRk9VTkRBVElPTikKICAgICBib29sIGNvcHlWaWRlb1RleHR1cmVU
b1BsYXRmb3JtVGV4dHVyZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xP
YmplY3QsIEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBi
b29sLCBib29sKSBmaW5hbDsKLSNlbHNlCi0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
IHBpeGVsQnVmZmVyRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKICNlbmRpZgorICAgIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKSBmaW5hbDsKICAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IG5hdGl2ZUlt
YWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKICAgICBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9y
U3BhY2UgY29sb3JTcGFjZSgpIGZpbmFsOwogCkBAIC00NjEsOSArNDYwLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fd2FpdGluZ0ZvcktleSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3RpbWVJc1By
b2dyZXNzaW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRl
ZCB7IGZhbHNlIH07Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lOwotI2VuZGlmCisgICAgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IG1fdmlkZW9GcmFtZUZv
ckN1cnJlbnRUaW1lOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyR2F0aGVyZWRXaXRoVmlkZW9GcmFtZU1ldGFkYXRhOwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWPiBtX3Bp
eGVsQnVmZmVyQ29uZm9ybWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvY29jb2EvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlQ29jb2EubW0KaW5kZXggYzBiNzc2ZGM3NzNiMTdmYTQzMGNkNTg5NjhiMDA3YjMxYmQ3NmE4
ZC4uNDFkYmM3YTUzYjcxNzc2MmU0NWEyMDllMGY4NDcwZTExNWYxMTAxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9jb2NvYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L2NvY29hL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUNvY29hLm1tCkBAIC05NCwxOCArOTQsNiBA
QCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
Ojpjb2xvclNwYWNlKCkKICAgICByZXR1cm4gY29sb3JTcGFjZTsKIH0KIAotI2lmIFVTRShBVkZP
VU5EQVRJT04pCi1SZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlOjpwaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lKCkKLXsKLSAgICBzdGQ6Om9wdGlvbmFs
PFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPj4gcmVzdWx0OwotICAgIGlmICghY29ubmVjdGlv
bigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpQaXhlbEJ1ZmZl
ckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjpQaXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkOjpSZXBseShyZXN1bHQpLCBt
X2lkKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYgKHJlc3VsdCkKLSAgICAgICAg
bV9waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lID0gV1RGTW92ZSgqcmVzdWx0KTsKLSAgICByZXR1
cm4gbV9waXhlbEJ1ZmZlckZvckN1cnJlbnRUaW1lOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBQTEFURk9STShD
T0NPQSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAyYmNjODcwMzc0ODczMWIxMTViMzk5ODk4NDI2YTI1ZjkyMTQ5YTNjLi5m
NjJjODNhMjYzMmVmZmQzM2MyNmIzNDA4OGFkYzgwNjA1NjVmY2RkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMjItMDEtMjAgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgV2ViR0wgR1BVIGJ1ZmZlciB0ZXh0dXJlIHVwbG9hZCBwYXRo
IGZvciBDb2NvYSBnZXRVc2VyTWVkaWEgY2FtZXJhIHN0cmVhbXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTIzMworICAgICAgICA8cmRhcjovL3By
b2JsZW0vODc2MDE3NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKwor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy5odG1sOgor
ICAgICAgICAqIHdlYnJ0Yy9yb3V0aW5lcy5qczoKKyAgICAgICAgVGVzdCBjYW1lcmEgaW1hZ2Ug
cm90YXRpb25zIGluIHRoZSB0ZXN0LgorCiAyMDIyLTAxLTE5ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIDxkaWFsb2c+IHdpdGggdHJhbnNmb3JtZWQg
YW5jZXN0b3IgYXNzZXJ0cyB1bmRlciBSZW5kZXJHZW9tZXRyeU1hcApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTEtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2Fu
dmFzLTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlYjI3M2RlMmQ3ZGVhNjM4MzI3MWRmZjAy
NTFkNDU2NmMyMDkwMjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NyBAQAorCitQQVNTIGZ1bmM6IHdpdGgyRENvbnRleHQsIGFuZ2xlOiAwLCBpbWFnZUJpdG1hcDog
ZmFsc2UKK1BBU1MgZnVuYzogd2l0aDJEQ29udGV4dCwgYW5nbGU6IDAsIGltYWdlQml0bWFwOiB0
cnVlCitQQVNTIGZ1bmM6IHdpdGgyRENvbnRleHQsIGFuZ2xlOiA5MCwgaW1hZ2VCaXRtYXA6IGZh
bHNlCitQQVNTIGZ1bmM6IHdpdGgyRENvbnRleHQsIGFuZ2xlOiA5MCwgaW1hZ2VCaXRtYXA6IHRy
dWUKK1BBU1MgZnVuYzogd2l0aDJEQ29udGV4dCwgYW5nbGU6IDE4MCwgaW1hZ2VCaXRtYXA6IGZh
bHNlCitQQVNTIGZ1bmM6IHdpdGgyRENvbnRleHQsIGFuZ2xlOiAxODAsIGltYWdlQml0bWFwOiB0
cnVlCitQQVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDAsIGltYWdlQml0bWFwOiBmYWxzZSwg
c3ViSW1hZ2U6IGZhbHNlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVuYzogd2l0aFdlYkdM
LCBhbmdsZTogMCwgaW1hZ2VCaXRtYXA6IGZhbHNlLCBzdWJJbWFnZTogZmFsc2UsIHVucGFja0Zs
aXBZOiB0cnVlCitQQVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDAsIGltYWdlQml0bWFwOiBm
YWxzZSwgc3ViSW1hZ2U6IHRydWUsIHVucGFja0ZsaXBZOiBmYWxzZQorUEFTUyBmdW5jOiB3aXRo
V2ViR0wsIGFuZ2xlOiAwLCBpbWFnZUJpdG1hcDogZmFsc2UsIHN1YkltYWdlOiB0cnVlLCB1bnBh
Y2tGbGlwWTogdHJ1ZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiAwLCBpbWFnZUJpdG1h
cDogdHJ1ZSwgc3ViSW1hZ2U6IGZhbHNlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVuYzog
d2l0aFdlYkdMLCBhbmdsZTogMCwgaW1hZ2VCaXRtYXA6IHRydWUsIHN1YkltYWdlOiBmYWxzZSwg
dW5wYWNrRmxpcFk6IHRydWUKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogMCwgaW1hZ2VC
aXRtYXA6IHRydWUsIHN1YkltYWdlOiB0cnVlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVu
Yzogd2l0aFdlYkdMLCBhbmdsZTogMCwgaW1hZ2VCaXRtYXA6IHRydWUsIHN1YkltYWdlOiB0cnVl
LCB1bnBhY2tGbGlwWTogdHJ1ZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiA5MCwgaW1h
Z2VCaXRtYXA6IGZhbHNlLCBzdWJJbWFnZTogZmFsc2UsIHVucGFja0ZsaXBZOiBmYWxzZQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1j
YW52YXMtMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEt
dG8tY2FudmFzLTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Njc0MzQxOWIwMWQ0YzcxN2RhMjBkYjg4OWE3
ZTFiNzdhZmMyY2RkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTEuaHRtbApAQCAtMCwwICsxLDIzIEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyI+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5UZXN0
aW5nIGdldFVzZXJNZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRleHRzIDE8L3RpdGxlPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi93ZWJydGMvcm91dGluZXMuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRl
c3QtdXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZ2V0VXNl
ck1lZGlhLXRvLWNhbnZhcy5qcyI+PC9zY3JpcHQ+CisgICAgPHN0eWxlIHR5cGU9dGV4dC9jc3M+
CisgICAgICAgIGNhbnZhcyB7IHdpZHRoOiA2MHB4IH0KKyAgICAgICAgdmlkZW8geyB3aWR0aDog
NjBweCB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImRlYnVn
ZSI+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgY3JlYXRlVXNlck1lZGlhVG9DYW52YXNU
ZXN0cygwLCAyKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0yLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRv
LWNhbnZhcy0yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDI1YzM2MTJhMTI0OWFmMzEwNWM1
Y2ZjMzc1ZjNkMTk3MzE2ZGIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLTItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTcgQEAKKworUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiA5MCwgaW1hZ2VCaXRtYXA6
IGZhbHNlLCBzdWJJbWFnZTogZmFsc2UsIHVucGFja0ZsaXBZOiB0cnVlCitQQVNTIGZ1bmM6IHdp
dGhXZWJHTCwgYW5nbGU6IDkwLCBpbWFnZUJpdG1hcDogZmFsc2UsIHN1YkltYWdlOiB0cnVlLCB1
bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogOTAsIGltYWdl
Qml0bWFwOiBmYWxzZSwgc3ViSW1hZ2U6IHRydWUsIHVucGFja0ZsaXBZOiB0cnVlCitQQVNTIGZ1
bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDkwLCBpbWFnZUJpdG1hcDogdHJ1ZSwgc3ViSW1hZ2U6IGZh
bHNlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogOTAs
IGltYWdlQml0bWFwOiB0cnVlLCBzdWJJbWFnZTogZmFsc2UsIHVucGFja0ZsaXBZOiB0cnVlCitQ
QVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5nbGU6IDkwLCBpbWFnZUJpdG1hcDogdHJ1ZSwgc3ViSW1h
Z2U6IHRydWUsIHVucGFja0ZsaXBZOiBmYWxzZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xl
OiA5MCwgaW1hZ2VCaXRtYXA6IHRydWUsIHN1YkltYWdlOiB0cnVlLCB1bnBhY2tGbGlwWTogdHJ1
ZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiAxODAsIGltYWdlQml0bWFwOiBmYWxzZSwg
c3ViSW1hZ2U6IGZhbHNlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVuYzogd2l0aFdlYkdM
LCBhbmdsZTogMTgwLCBpbWFnZUJpdG1hcDogZmFsc2UsIHN1YkltYWdlOiBmYWxzZSwgdW5wYWNr
RmxpcFk6IHRydWUKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogMTgwLCBpbWFnZUJpdG1h
cDogZmFsc2UsIHN1YkltYWdlOiB0cnVlLCB1bnBhY2tGbGlwWTogZmFsc2UKK1BBU1MgZnVuYzog
d2l0aFdlYkdMLCBhbmdsZTogMTgwLCBpbWFnZUJpdG1hcDogZmFsc2UsIHN1YkltYWdlOiB0cnVl
LCB1bnBhY2tGbGlwWTogdHJ1ZQorUEFTUyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiAxODAsIGlt
YWdlQml0bWFwOiB0cnVlLCBzdWJJbWFnZTogZmFsc2UsIHVucGFja0ZsaXBZOiBmYWxzZQorUEFT
UyBmdW5jOiB3aXRoV2ViR0wsIGFuZ2xlOiAxODAsIGltYWdlQml0bWFwOiB0cnVlLCBzdWJJbWFn
ZTogZmFsc2UsIHVucGFja0ZsaXBZOiB0cnVlCitQQVNTIGZ1bmM6IHdpdGhXZWJHTCwgYW5nbGU6
IDE4MCwgaW1hZ2VCaXRtYXA6IHRydWUsIHN1YkltYWdlOiB0cnVlLCB1bnBhY2tGbGlwWTogZmFs
c2UKK1BBU1MgZnVuYzogd2l0aFdlYkdMLCBhbmdsZTogMTgwLCBpbWFnZUJpdG1hcDogdHJ1ZSwg
c3ViSW1hZ2U6IHRydWUsIHVucGFja0ZsaXBZOiB0cnVlCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy0yLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ3MGQ0ODdhN2Y1NjJiNmZjOTJlZTEwYTc2MDIyYmM2NmNjODY0YzcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10
by1jYW52YXMtMi5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKyAgICA8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPlRlc3RpbmcgZ2V0VXNlck1lZGlhIHN0
cmVhbSB0byBjYW52YXMgY29udGV4dHMgMjwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3dlYnJ0Yy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uL2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLmpz
Ij48L3NjcmlwdD4KKyAgICA8c3R5bGUgdHlwZT10ZXh0L2Nzcz4KKyAgICAgICAgY2FudmFzIHsg
d2lkdGg6IDYwcHggfQorICAgICAgICB2aWRlbyB7IHdpZHRoOiA2MHB4IH0KKyAgICA8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0iZGVidWdlIj48L2Rpdj4KKyAgICA8c2Ny
aXB0PgorICAgICAgICBjcmVhdGVVc2VyTWVkaWFUb0NhbnZhc1Rlc3RzKDEsIDIpOworICAgIDwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2NTk0MDI2ZmU3OWIzMDAzOWVkNzNlY2Uy
OWVkNmZjZTI4NzAxZTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFz
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotCi1QQVNTIFRlc3Rp
bmcgZ2V0VXNlck1lZGlhIHN0cmVhbSB0byBjYW52YXMgY29udGV4dHMgdmlhIDJEQ29udGV4dAot
UEFTUyBUZXN0aW5nIGdldFVzZXJNZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRleHRzIHZpYSBJ
bWFnZUJpdG1hcCB0byAyRENvbnRleHQKLVBBU1MgVGVzdGluZyBnZXRVc2VyTWVkaWEgc3RyZWFt
IHRvIGNhbnZhcyBjb250ZXh0cyB2aWEgV2ViR0wgdGV4dHVyZQotUEFTUyBUZXN0aW5nIGdldFVz
ZXJNZWRpYSBzdHJlYW0gdG8gY2FudmFzIGNvbnRleHRzIHZpYSBJbWFnZUJpdG1hcCB0byBXZWJH
TCB0ZXh0dXJlCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0
VXNlck1lZGlhLXRvLWNhbnZhcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9n
ZXRVc2VyTWVkaWEtdG8tY2FudmFzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGQyODNmNDhmN2NmMzE0ZDMxNDlhMzJlM2Y4OTAzOWY3NDc4NGZkYWEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtdG8tY2FudmFzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMg
KzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiPgotICAgICAgICA8dGl0bGU+VGVzdGluZyBnZXRVc2VyTWVkaWEg
c3RyZWFtIHRvIGNhbnZhcyBjb250ZXh0czwvdGl0bGU+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3dlYnJ0Yy9yb3V0aW5lcy5qcyI+PC9zY3JpcHQ+Ci0g
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsLXRlc3Qt
dXRpbHMuanMiPjwvc2NyaXB0PgotCi0gICAgICAgIDxzdHlsZSB0eXBlPXRleHQvY3NzPgotICAg
ICAgICAgICAgY2FudmFzIHsgd2lkdGg6IDYwMHB4IH0KLSAgICAgICAgPC9zdHlsZT4KLSAgICA8
L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxkaXYgaWQ9ImRlYnVnZSI+PC9kaXY+Ci0gICAg
ICAgIDxzY3JpcHQ+Ci0idXNlIHN0cmljdCI7Ci1jb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsK
LWNvbnN0IHdpZHRoID0gNjQzOwotY29uc3QgdmVyaWZ5V2lkdGggPSAyMDA7Ci1jb25zdCBkZWJ1
Z2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVidWdlIik7Ci0KLWFzeW5jIGZ1bmN0aW9u
IGNyZWF0ZVNvdXJjZVZpZGVvKCkgewotICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInZpZGVvIik7Ci0gICAgdmlkZW8uc3JjT2JqZWN0ID0gYXdhaXQgbmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyB2aWRlbzogeyB3aWR0aDogeyBleGFjdDogd2lkdGgg
fSB9IH0pOwotICAgIGF3YWl0IHZpZGVvLnBsYXkoKTsKLSAgICBhc3NlcnRfZXF1YWxzKHZpZGVv
LnZpZGVvV2lkdGgsIHdpZHRoKTsKLSAgICByZXR1cm4gdmlkZW87Ci19Ci0KLWZ1bmN0aW9uIGNy
ZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbykgewotICAgIGxldCBjYW52YXMgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJjYW52YXMiKTsKLSAgICBjYW52YXMud2lkdGggPSB2ZXJpZnlXaWR0aDsKLSAg
ICBjYW52YXMuaGVpZ2h0ID0gTWF0aC5mbG9vcih2aWRlby52aWRlb0hlaWdodCAvIHZpZGVvLnZp
ZGVvV2lkdGggKiB2ZXJpZnlXaWR0aCk7Ci0gICAgcmV0dXJuIGNhbnZhczsKLX0KLQotZnVuY3Rp
b24gY3JlYXRlVmVyaWZ5V2ViR0xDb250ZXh0KGNhbnZhcykgewotICAgIGxldCBnbCA9IHd0dS5j
cmVhdGUzRENvbnRleHQoY2FudmFzLCB7IGRlcHRoOiBmYWxzZSwgc3RlbmNpbDogZmFsc2UsIGFu
dGlhbGlhczogZmFsc2UgfSk7Ci0gICAgZ2wudmlld3BvcnQoMCwgMCwgY2FudmFzLndpZHRoLCBj
YW52YXMuaGVpZ2h0KTsKLSAgICBsZXQgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChn
bCk7Ci0gICAgZ2wudW5pZm9ybTFpKGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4
IiksIDApOwotICAgIHJldHVybiBnbDsKLX0KLQotZnVuY3Rpb24gZ2V0RnJhbWVidWZmZXJBc0lt
YWdlRGF0YShnbCnCoHsKLSAgICBsZXQgY2FudmFzID0gZ2wuY2FudmFzOwotICAgIGxldCBpbWFn
ZURhdGEgPSB7Ci0gICAgICAgIHdpZHRoOiBjYW52YXMud2lkdGgsCi0gICAgICAgIGhlaWdodDog
Y2FudmFzLmhlaWdodCwKLSAgICAgICAgZGF0YTogbmV3IFVpbnQ4QXJyYXkoY2FudmFzLndpZHRo
ICogY2FudmFzLmhlaWdodCAqIDQpCi0gICAgfQotICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgY2Fu
dmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWFn
ZURhdGEuZGF0YSk7Ci0gICAgcmV0dXJuIGltYWdlRGF0YTsKLX0KLQotcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4gewotICAgIGxldCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7Ci0g
ICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7Ci0gICAgbGV0IGNhbnZhcyA9IGNyZWF0ZVZlcmlmeUNh
bnZhcyh2aWRlbyk7Ci0gICAgZGVidWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7Ci0KLSAgICBsZXQg
Y3R4ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7Ci0gICAgY3R4LmRyYXdJbWFnZSh2aWRlbywg
MCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKLSAgICBhc3NlcnRJbWFnZURhdGFD
b250YWluc01vY2tDYW1lcmFJbWFnZShjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIGNhbnZhcy53aWR0
aCwgY2FudmFzLmhlaWdodCkpOwotICAgIGRlYnVnZS5yZW1vdmVDaGlsZChjYW52YXMpOwotICAg
IGRlYnVnZS5yZW1vdmVDaGlsZCh2aWRlbyk7Ci0KLX0sIGRvY3VtZW50LnRpdGxlICsgIiB2aWEg
MkRDb250ZXh0Iik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBsZXQgdmlkZW8g
PSBhd2FpdCBjcmVhdGVTb3VyY2VWaWRlbygpOwotICAgIGRlYnVnZS5hcHBlbmQodmlkZW8pOwot
ICAgIGxldCBjYW52YXMgPSBjcmVhdGVWZXJpZnlDYW52YXModmlkZW8pOwotICAgIGRlYnVnZS5h
cHBlbmRDaGlsZChjYW52YXMpOwotCi0gICAgbGV0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCIy
ZCIpOwotICAgIGxldCBpbWFnZUJpdG1hcCA9IGF3YWl0IGNyZWF0ZUltYWdlQml0bWFwKHZpZGVv
KTsKLSAgICBjdHguZHJhd0ltYWdlKGltYWdlQml0bWFwLCAwLCAwLCBjYW52YXMud2lkdGgsIGNh
bnZhcy5oZWlnaHQpOwotICAgIGFzc2VydEltYWdlRGF0YUNvbnRhaW5zTW9ja0NhbWVyYUltYWdl
KGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KSk7Ci0g
ICAgZGVidWdlLnJlbW92ZUNoaWxkKGNhbnZhcyk7Ci0gICAgZGVidWdlLnJlbW92ZUNoaWxkKHZp
ZGVvKTsKLX0sIGRvY3VtZW50LnRpdGxlICsgIiB2aWEgSW1hZ2VCaXRtYXAgdG8gMkRDb250ZXh0
Iik7Ci0KLXByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKLSAgICBsZXQgdmlkZW8gPSBhd2FpdCBj
cmVhdGVTb3VyY2VWaWRlbygpOwotICAgIGRlYnVnZS5hcHBlbmQodmlkZW8pOwotICAgIGxldCBj
YW52YXMgPSBjcmVhdGVWZXJpZnlDYW52YXModmlkZW8pOwotICAgIGRlYnVnZS5hcHBlbmRDaGls
ZChjYW52YXMpOwotCi0gICAgbGV0IGdsID0gY3JlYXRlVmVyaWZ5V2ViR0xDb250ZXh0KGNhbnZh
cyk7Ci0gICAgbGV0IHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRl
eHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5U
RVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRl
eFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFS
RVNUKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JB
UF9TLCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IHZpZGVvKTsKLSAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAwLCAyNTVd
KTsKLQotICAgIGxldCBpbWFnZURhdGEgPSBnZXRGcmFtZWJ1ZmZlckFzSW1hZ2VEYXRhKGdsKTsK
LSAgICBhc3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEpOwot
ICAgIGRlYnVnZS5yZW1vdmVDaGlsZChjYW52YXMpOwotICAgIGRlYnVnZS5yZW1vdmVDaGlsZCh2
aWRlbyk7Ci19LCBkb2N1bWVudC50aXRsZSArICIgdmlhIFdlYkdMIHRleHR1cmUiKTsKLQotcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGxldCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJj
ZVZpZGVvKCk7Ci0gICAgZGVidWdlLmFwcGVuZCh2aWRlbyk7Ci0gICAgbGV0IGNhbnZhcyA9IGNy
ZWF0ZVZlcmlmeUNhbnZhcyh2aWRlbyk7Ci0gICAgZGVidWdlLmFwcGVuZENoaWxkKGNhbnZhcyk7
Ci0KLSAgICBsZXQgZ2wgPSBjcmVhdGVWZXJpZnlXZWJHTENvbnRleHQoY2FudmFzKTsKLSAgICBs
ZXQgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBsZXQgaW1hZ2VCaXRtYXAgPSBh
d2FpdCBjcmVhdGVJbWFnZUJpdG1hcCh2aWRlbyk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVY
VFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBn
bC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOwotICAgIGdsLnRleFBhcmFtZXRlcmko
Z2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKLSAgICBn
bC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFN
UF9UT19FREdFKTsKLSAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRV
UkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsLlJHQkEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGltYWdlQml0bWFw
KTsKLSAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKLQot
ICAgIGxldCBpbWFnZURhdGEgPSBnZXRGcmFtZWJ1ZmZlckFzSW1hZ2VEYXRhKGdsKTsKLSAgICBh
c3NlcnRJbWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEpOwotICAgIGRl
YnVnZS5yZW1vdmVDaGlsZChjYW52YXMpOwotICAgIGRlYnVnZS5yZW1vdmVDaGlsZCh2aWRlbyk7
Ci19LCBkb2N1bWVudC50aXRsZSArICIgdmlhIEltYWdlQml0bWFwIHRvIFdlYkdMIHRleHR1cmUi
KTsKLQotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9nZXRVc2VyTWVkaWEtdG8t
Y2FudmFzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMvZ2V0VXNl
ck1lZGlhLXRvLWNhbnZhcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MGJjMjMwZDczYmJhYzMyYzY0NWQ4N2U3
NzI5NDBiNGI3N2Y1ODllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9yZXNvdXJjZXMvZ2V0VXNlck1lZGlhLXRvLWNhbnZhcy5qcwpAQCAtMCwwICsxLDE3
MiBAQAorInVzZSBzdHJpY3QiOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoZmFsc2UpOwor
Citjb25zdCB3dHUgPSBXZWJHTFRlc3RVdGlsczsKK2NvbnN0IHdpZHRoID0gNjQzOworY29uc3Qg
dmVyaWZ5V2lkdGggPSAyMDA7CisKK2FzeW5jIGZ1bmN0aW9uIGNyZWF0ZVNvdXJjZVZpZGVvKCkg
eworICAgIGNvbnN0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTsKKyAg
ICB2aWRlby5zcmNPYmplY3QgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJN
ZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiB7IGV4YWN0OiB3aWR0aCB9IH0gfSk7CisgICAgYXdhaXQg
dmlkZW8ucGxheSgpOworICAgIGFzc2VydF9lcXVhbHModmlkZW8udmlkZW9XaWR0aCwgd2lkdGgp
OworICAgIHJldHVybiB2aWRlbzsKK30KKworZnVuY3Rpb24gY3JlYXRlVmVyaWZ5Q2FudmFzKHZp
ZGVvKSB7CisgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFz
Iik7CisgICAgY2FudmFzLndpZHRoID0gdmVyaWZ5V2lkdGg7CisgICAgY2FudmFzLmhlaWdodCA9
IE1hdGguZmxvb3IodmlkZW8udmlkZW9IZWlnaHQgLyB2aWRlby52aWRlb1dpZHRoICogdmVyaWZ5
V2lkdGgpOworICAgIHJldHVybiBjYW52YXM7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZVZlcmlmeVdl
YkdMU3RhdGUoY2FudmFzKSB7CisgICAgY29uc3QgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNh
bnZhcywgeyBkZXB0aDogZmFsc2UsIHN0ZW5jaWw6IGZhbHNlLCBhbnRpYWxpYXM6IGZhbHNlIH0p
OworICAgIGdsLnZpZXdwb3J0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7Cisg
ICAgY29uc3QgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7CisgICAgZ2wudW5p
Zm9ybTFpKGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4IiksIDApOworICAgIGNv
bnN0IHRleHR1cmUgPSBnbC5jcmVhdGVUZXh0dXJlKCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wu
VEVYVFVSRV8yRCwgdGV4dHVyZSk7CisgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJE
LCBnbC5URVhUVVJFX01JTl9GSUxURVIsIGdsLk5FQVJFU1QpOworICAgIGdsLnRleFBhcmFtZXRl
cmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5ORUFSRVNUKTsKKyAg
ICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5D
TEFNUF9UT19FREdFKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRF
WFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICByZXR1cm4gW2dsLCB0ZXh0dXJl
XTsKK30KKworZnVuY3Rpb24gZ2V0RnJhbWVidWZmZXJBc0ltYWdlRGF0YShnbCkgeworICAgIGNv
bnN0IGNhbnZhcyA9IGdsLmNhbnZhczsKKyAgICBjb25zdCBpbWFnZURhdGEgPSB7CisgICAgICAg
IHdpZHRoOiBjYW52YXMud2lkdGgsCisgICAgICAgIGhlaWdodDogY2FudmFzLmhlaWdodCwKKyAg
ICAgICAgZGF0YTogbmV3IFVpbnQ4QXJyYXkoY2FudmFzLndpZHRoICogY2FudmFzLmhlaWdodCAq
IDQpCisgICAgfQorICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMu
aGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBpbWFnZURhdGEuZGF0YSk7CisgICAg
cmV0dXJuIGltYWdlRGF0YTsKK30KKworZnVuY3Rpb24gc2V0dXBJbnZlcnNlVW5pdFF1YWRUZXh0
dXJlQ29vcmRpbmF0ZXMoZ2wsIHRleGNvb3JkTG9jYXRpb24pIHsKKyAgICB0ZXhjb29yZExvY2F0
aW9uID0gdGV4Y29vcmRMb2NhdGlvbiB8fCAxOworICAgIGNvbnN0IHZlcnRleE9iamVjdCA9IGds
LmNyZWF0ZUJ1ZmZlcigpOworICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB2ZXJ0
ZXhPYmplY3QpOworICAgIGdsLmJ1ZmZlckRhdGEoZ2wuQVJSQVlfQlVGRkVSLCBuZXcgRmxvYXQz
MkFycmF5KFsKKyAgICAgICAgMS4wLCAwLjAsCisgICAgICAgIDAuMCwgMC4wLAorICAgICAgICAw
LjAsIDEuMCwKKyAgICAgICAgMS4wLCAwLjAsCisgICAgICAgIDAuMCwgMS4wLAorICAgICAgICAx
LjAsIDEuMF0pLCBnbC5TVEFUSUNfRFJBVyk7CisgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJy
YXkodGV4Y29vcmRMb2NhdGlvbik7CisgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcih0ZXhjb29y
ZExvY2F0aW9uLCAyLCBnbC5GTE9BVCwgZmFsc2UsIDAsIDApOworfQorCithc3luYyBmdW5jdGlv
biB3aXRoMkRDb250ZXh0KHN1YmNhc2UsIHZpZGVvLCBjYW52YXMpIHsKKyAgICBjb25zdCBjdHgg
PSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBsZXQgc291cmNlID0gdmlkZW87CisgICAg
aWYgKHN1YmNhc2UuaW1hZ2VCaXRtYXApCisgICAgICAgIHNvdXJjZSA9IGF3YWl0IGNyZWF0ZUlt
YWdlQml0bWFwKHNvdXJjZSk7CisgICAgY3R4LmRyYXdJbWFnZSh2aWRlbywgMCwgMCwgY2FudmFz
LndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKyAgICByZXR1cm4gY3R4LmdldEltYWdlRGF0YSgwLCAw
LCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworfQorCithc3luYyBmdW5jdGlvbiB3aXRo
V2ViR0woc3ViY2FzZSwgdmlkZW8sIGNhbnZhcykgeworICAgIGNvbnN0IFtnbCwgdGV4dHVyZV0g
PSBjcmVhdGVWZXJpZnlXZWJHTFN0YXRlKGNhbnZhcyk7CisgICAgbGV0IHNvdXJjZSA9IHZpZGVv
OworICAgIGlmIChzdWJjYXNlLmltYWdlQml0bWFwKQorICAgICAgICBzb3VyY2UgPSBhd2FpdCBj
cmVhdGVJbWFnZUJpdG1hcChzb3VyY2UpOworICAgIGlmIChzdWJjYXNlLnVucGFja0ZsaXBZKQor
ICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCB0cnVlKTsKKyAg
ICBpZiAoc3ViY2FzZS5zdWJJbWFnZSkgeworICAgICAgICBjb25zdCB3ID0gdmlkZW8udmlkZW9X
aWR0aDsKKyAgICAgICAgY29uc3QgaCA9IHZpZGVvLnZpZGVvSGVpZ2h0OworICAgICAgICBjb25z
dCBwaXhlbHMgPSBuZXcgVWludDhBcnJheSh3ICogaCAqIDQpOworICAgICAgICBwaXhlbHMuZmls
bCgwKTsKKyAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCB3
LCBoLCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBwaXhlbHMpOworICAgICAgICBnbC50
ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIHNvdXJjZSk7CisgICAgfSBlbHNlCisgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgc291cmNlKTsK
KworICAgIC8vIFVOUEFDS19GTElQX1lfV0VCR0wgaXMgaWdub3JlZCBmb3IgSW1hZ2VCaXRtYXBz
IGFzIHBlciBXZWJHTCBzcGVjLiBUZXN0IHRoaXMgYnkKKyAgICAvLyByZW5kZXJpbmcgbm9ybWFs
bHkgYW5kIGV4cGVjdGluZyBub3JtYWwgcmVzdWx0LgorICAgIGNvbnN0IHNob3VsZFJlbmRlcklu
dmVydGVkID0gc3ViY2FzZS51bnBhY2tGbGlwWSAmJiAhc3ViY2FzZS5pbWFnZUJpdG1hcDsKKyAg
ICBpZiAoc2hvdWxkUmVuZGVySW52ZXJ0ZWQpIHsKKyAgICAgICAgc2V0dXBJbnZlcnNlVW5pdFF1
YWRUZXh0dXJlQ29vcmRpbmF0ZXMoZ2wpOworICAgICAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1
YWQoZ2wsIFswLCAwLCAwLCAyNTVdKTsKKyAgICB9IGVsc2UKKyAgICAgICAgd3R1LmNsZWFyQW5k
RHJhd1VuaXRRdWFkKGdsLCBbMCwgMCwgMCwgMjU1XSk7CisgICAgcmV0dXJuIGdldEZyYW1lYnVm
ZmVyQXNJbWFnZURhdGEoZ2wpOworfQorCitjb25zdCBzdWJjYXNlcyA9IFtdOworY29uc3QgYW5n
bGVzID0gWzAsIDkwLCAxODBdOyAvLyBGSVhNRTogLTkwIG1ha2Ugc2V0TW9ja0NhbWVyYS4uLiBh
Y2NlcHQgc2lnbmVkLiBodHRwczovL3dlYmtpdC5vcmcvYi8yMzUzNTIKK2NvbnN0IGZhbHNlQW5k
VHJ1ZSA9IFtmYWxzZSwgdHJ1ZV07Citmb3IgKGNvbnN0IGFuZ2xlIG9mIGFuZ2xlcykgeworICAg
IGZvciAoY29uc3QgaW1hZ2VCaXRtYXAgb2YgZmFsc2VBbmRUcnVlKQorICAgICAgICBzdWJjYXNl
cy5wdXNoKHsgZnVuYzogd2l0aDJEQ29udGV4dCwgYW5nbGU6IGFuZ2xlLCBpbWFnZUJpdG1hcDog
aW1hZ2VCaXRtYXAgfSk7Cit9CisKK2ZvciAoY29uc3QgYW5nbGUgb2YgYW5nbGVzKSB7CisgICAg
Zm9yIChjb25zdCBpbWFnZUJpdG1hcCBvZiBmYWxzZUFuZFRydWUpIHsKKyAgICAgICAgZm9yIChj
b25zdCBzdWJJbWFnZSBvZiBmYWxzZUFuZFRydWUpIHsKKyAgICAgICAgICAgIGZvciAoY29uc3Qg
dW5wYWNrRmxpcFkgb2YgZmFsc2VBbmRUcnVlKQorICAgICAgICAgICAgICAgIHN1YmNhc2VzLnB1
c2goe2Z1bmM6IHdpdGhXZWJHTCwgYW5nbGU6IGFuZ2xlLCBpbWFnZUJpdG1hcDogaW1hZ2VCaXRt
YXAsIHN1YkltYWdlOiBzdWJJbWFnZSwgdW5wYWNrRmxpcFk6IHVucGFja0ZsaXBZfSk7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3REZXNjcmlwdGlvbihzdWJjYXNlKSB7Cisg
ICAgbGV0IGRlc2MgPSAiZnVuYzogIiArIHN1YmNhc2UuZnVuYy5uYW1lOworICAgIGZvciAoY29u
c3QgayBpbiBzdWJjYXNlKSB7CisgICAgICAgIGlmIChrID09PSAiZnVuYyIpCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgZGVzYyArPSBgLCAke2t9OiAke3N1YmNhc2Vba119YDsKKyAg
ICB9CisgICAgcmV0dXJuIGRlc2M7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RVc2VyTWVkaWFU
b0NhbnZhcyh0LCBzdWJjYXNlKSB7CisgICAgY29uc3QgZGVzYyA9IHRlc3REZXNjcmlwdGlvbihz
dWJjYXNlKTsKKyAgICBjb25zdCB2aWRlbyA9IGF3YWl0IGNyZWF0ZVNvdXJjZVZpZGVvKCk7Cisg
ICAgY29uc3QgZGVidWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlYnVnZSIpOworICAg
IGRlYnVnZS5hcHBlbmQodmlkZW8pOworICAgIGNvbnN0IHJlYWxWaWRlb1NpemUgPSBbdmlkZW8u
dmlkZW9XaWR0aCwgdmlkZW8udmlkZW9IZWlnaHRdOworICAgIHQuYWRkX2NsZWFudXAoYXN5bmMg
KCkgPT4geworICAgICAgICAvLyBSZXNldCBvcmllbnRhdGlvbiBmb3IgdGhlIG5leHQgdGVzdCBi
eSBnb2luZyB0byAwLgorICAgICAgICBpZiAoc3ViY2FzZS5hbmdsZSA9PSAxODApIHsKKyAgICAg
ICAgICAgIC8vIDE4MCAtPiAwIGNhbm5vdCBkZXRlY3Qgcm90YXRpb24gdmlhIHZpZGVvIHNpemUg
Y2hhbmdlLiBHbyB2aWEgOTAuCisgICAgICAgICAgICBjb25zdCBbYW5nbGUsIHZpZGVvU2l6ZV0g
PSBzZXRNb2NrQ2FtZXJhSW1hZ2VPcmllbnRhdGlvbig5MCwgcmVhbFZpZGVvU2l6ZSk7CisgICAg
ICAgICAgICBhd2FpdCB3YWl0Rm9yVmlkZW9TaXplKHZpZGVvLCB2aWRlb1NpemVbMF0sIHZpZGVv
U2l6ZVsxXSk7CisgICAgICAgIH0KKyAgICAgICAgc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50YXRp
b24oMCk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JWaWRlb1NpemUodmlkZW8sIHJlYWxWaWRlb1Np
emVbMF0sIHJlYWxWaWRlb1NpemVbMV0pOworICAgICAgICBkZWJ1Z2UucmVtb3ZlQ2hpbGQodmlk
ZW8pOworICAgIH0pOworCisgICAgaWYgKHN1YmNhc2UuYW5nbGUgPT0gMTgwKSB7CisgICAgICAg
IC8vIDAgLT4gMTgwIGNhbm5vdCBkZXRlY3Qgcm90YXRpb24gdmlhIHZpZGVvIHNpemUgY2hhbmdl
LiBHbyB2aWEgOTAuCisgICAgICAgIGNvbnN0IFthbmdsZSwgdmlkZW9TaXplXSA9IHNldE1vY2tD
YW1lcmFJbWFnZU9yaWVudGF0aW9uKDkwLCByZWFsVmlkZW9TaXplKTsKKyAgICAgICAgYXdhaXQg
d2FpdEZvclZpZGVvU2l6ZSh2aWRlbywgdmlkZW9TaXplWzBdLCB2aWRlb1NpemVbMV0pOworICAg
IH0KKyAgICBjb25zdCBbYW5nbGUsIHZpZGVvU2l6ZV0gPSBzZXRNb2NrQ2FtZXJhSW1hZ2VPcmll
bnRhdGlvbihzdWJjYXNlLmFuZ2xlLCByZWFsVmlkZW9TaXplKTsKKyAgICBhd2FpdCB3YWl0Rm9y
VmlkZW9TaXplKHZpZGVvLCB2aWRlb1NpemVbMF0sIHZpZGVvU2l6ZVsxXSk7CisKKyAgICBjb25z
dCBjYW52YXMgPSBjcmVhdGVWZXJpZnlDYW52YXModmlkZW8pOworICAgIGRlYnVnZS5hcHBlbmRD
aGlsZChjYW52YXMpOworICAgIHQuYWRkX2NsZWFudXAoYXN5bmMgKCkgPT4gZGVidWdlLnJlbW92
ZUNoaWxkKGNhbnZhcykpOworICAgIGNvbnN0IGltYWdlRGF0YSA9IGF3YWl0IHN1YmNhc2UuZnVu
YyhzdWJjYXNlLCB2aWRlbywgY2FudmFzKTsKKyAgICB0cnkgeworICAgICAgICBhc3NlcnRJbWFn
ZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEsIGFuZ2xlLCBkZXNjKTsKKyAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgIC8vIFVzZSB0aGlzIGZvciBkZWJ1Z2dpbmc6CisgICAg
ICAgIC8vYXdhaXQgd2FpdEZvcigxMDAwMCk7CisgICAgICAgIHRocm93IGU7CisgICAgfQorfQor
CitmdW5jdGlvbiBjcmVhdGVVc2VyTWVkaWFUb0NhbnZhc1Rlc3RzKHNsaWNlLCBzbGljZXMpIHsK
KyAgICBjb25zdCBzbGljZVNpemUgPSBNYXRoLmZsb29yKHN1YmNhc2VzLmxlbmd0aCAvIHNsaWNl
cyk7CisgICAgY29uc3QgZmlyc3QgPSBzbGljZVNpemUgKiBzbGljZTsKKyAgICBmb3IgKGNvbnN0
IHN1YmNhc2Ugb2Ygc3ViY2FzZXMuc2xpY2UoZmlyc3QsIGZpcnN0ICsgc2xpY2VTaXplKSkKKyAg
ICAgICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geyBhd2FpdCB0ZXN0VXNlck1lZGlhVG9DYW52
YXModCwgc3ViY2FzZSk7IH0sIHRlc3REZXNjcmlwdGlvbihzdWJjYXNlKSk7Cit9ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBhMjk3Njg3MjhmZGZiZmJjMjRiZTE5YzVjYWQ2YjcyOGRjY2NjYzdmLi41ZTU3
NTRlYmUzM2MwNjMzMjRlNWI4NjZmZmU2NzJhMmI3ZGNhYjc5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjEwLDYgKzIxMCwxMCBAQCB3ZWJraXQub3Jn
L2IvMjA4OTg4IGh0dHAvd3B0L3dlYnhyIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjA4OTg4IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIgWyBTa2lwIF0KIHdlYmtpdC5vcmcv
Yi8yMDg5ODggd2VieHIgWyBTa2lwIF0KIAorIyBzZXRNb2NrQ2FtZXJhT3JpZW50YXRpb24gc2Vl
bXMgdG8gZmFpbC4KK3dlYmtpdC5vcmcvYi8yMzUzOTYgZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2Vy
TWVkaWEtdG8tY2FudmFzLTEuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzIzNTM5NiBm
YXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS10by1jYW52YXMtMi5odG1sIFsgRmFpbHVyZSBd
CisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIFRyaWFnZWQg
RXhwZWN0YXRpb25zCiAjIExlZ2FjeSBFeHBlY3RhdGlvbnMgc2VjdGlvbnMgYmVsb3cKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9yb3V0aW5lcy5qcyBiL0xheW91dFRlc3RzL3dlYnJ0
Yy9yb3V0aW5lcy5qcwppbmRleCBmODM3YWEwMGQ3YWUzNzhiNDU1YzhjY2E0NDk4MTk1MGJhMDVl
MDlhLi4yY2ZmNjllNjUxYjk0MTdiNWUxOTk4YmJkNTY3OTIxOWE1N2YyY2UxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJydGMvcm91dGluZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRj
L3JvdXRpbmVzLmpzCkBAIC0yNTMsNyArMjUzLDcgQEAgYXN5bmMgZnVuY3Rpb24gY29tcHV0ZUZy
YW1lUmF0ZShzdHJlYW0sIHZpZGVvKQogewogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAg
ICAgICAgIGludGVybmFscy5vYnNlcnZlTWVkaWFTdHJlYW1UcmFjayhzdHJlYW0uZ2V0VmlkZW9U
cmFja3MoKVswXSk7Ci0gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGlt
ZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpOwogICAgICAgICByZXR1cm4gaW50ZXJuYWxz
LnRyYWNrVmlkZW9TYW1wbGVDb3VudDsKICAgICB9CiAKQEAgLTI3Myw3ICsyNzMsNyBAQCBhc3lu
YyBmdW5jdGlvbiBjb21wdXRlRnJhbWVSYXRlKHN0cmVhbSwgdmlkZW8pCiAgICAgYXdhaXQgdmlk
ZW8ucGxheSgpOwogCiAgICAgY29uc3Qgc3RhdHMxID0gYXdhaXQgZ2V0UmVjZWl2ZWRUcmFja1N0
YXRzKGNvbm5lY3Rpb24pOwotICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGlt
ZW91dChyZXNvbHZlLCAxMDAwKSk7IAorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
c2V0VGltZW91dChyZXNvbHZlLCAxMDAwKSk7CiAgICAgY29uc3Qgc3RhdHMyID0gYXdhaXQgZ2V0
UmVjZWl2ZWRUcmFja1N0YXRzKGNvbm5lY3Rpb24pOwogICAgIHJldHVybiAoc3RhdHMyLmZyYW1l
c1JlY2VpdmVkIC0gc3RhdHMxLmZyYW1lc1JlY2VpdmVkKSAqIDEwMDAgLyAoc3RhdHMyLnRpbWVz
dGFtcCAtIHN0YXRzMS50aW1lc3RhbXApOwogfQpAQCAtMjk4LDYgKzI5OCwyMCBAQCBmdW5jdGlv
biBzZXRIMjY0SGlnaENvZGVjKHNkcCkKICAgICB9KS5qb2luKCdcclxuJyk7CiB9CiAKKy8vIFNl
dHMgdGhlIGNhbWVyYSBpbWFnZSBvcmllbnRhdGlvbiBpZiBydW5uaW5nIG9uIHRlc3QgcnVubmVy
LgorLy8gYW5nbGU6IG9yaWVudGF0aW9uIGFuZ2xlIG9mIHRoZSBjYW1lcmEgaW1hZ2UgaW4gZGVn
cmVlcworZnVuY3Rpb24gc2V0TW9ja0NhbWVyYUltYWdlT3JpZW50YXRpb24oYW5nbGUsIHZpZGVv
U2l6ZSkgeworICAgIGlmIChbMCwgOTAsIDE4MCwgMjcwXS5pbmRleE9mKGFuZ2xlKSA9PSAtMSkK
KyAgICAgICAgdGhyb3cgImludmFsaWQgYW5nbGUiOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICB0ZXN0UnVubmVyLnNldE1vY2tDYW1lcmFPcmllbnRhdGlvbihhbmdsZSk7
CisgICAgICAgIGlmICh2aWRlb1NpemUgJiYgKGFuZ2xlID09IDkwIHx8IGFuZ2xlID09IDI3MCkp
CisgICAgICAgICAgICB2aWRlb1NpemUgPSBbdmlkZW9TaXplWzFdLCB2aWRlb1NpemVbMF1dOwor
ICAgICAgICByZXR1cm4gW2FuZ2xlLCB2aWRlb1NpemVdOworICAgIH0KKyAgICByZXR1cm4gWzAs
IHZpZGVvU2l6ZV07Cit9CisKIC8vIFJldHVybnMgVWludDhBcnJheVs0XSBvZiBSR0JBIGNvbG9y
LgogLy8gcDogW3gsIHldIG9mIDAuLjEgcmFuZ2UuCiBmdW5jdGlvbiBnZXRJbWFnZURhdGFQaXhl
bChpbWFnZURhdGEsIHApCkBAIC0zMTEsMTYgKzMyNSwzMyBAQCBmdW5jdGlvbiBnZXRJbWFnZURh
dGFQaXhlbChpbWFnZURhdGEsIHApCiAvLyBBc3NlcnRzIHRoYXQgSW1hZ2VEYXRhIGluc3RhbmNl
IGNvbnRhaW5zIG1vY2sgY2FtZXJhIGltYWdlIHJlbmRlcmVkIGJ5IE1pbmlCcm93c2VyIGFuZCBX
ZWJLaXRUZXN0UnVubmVyLgogLy8gT2J0YWluIGZ1bGwgY2FtZXJhIGltYWdlIG9mIHNpemUgYHdp
ZHRoYDoKIC8vICBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IHZp
ZGVvOiB7IHdpZHRoOiB7IGV4YWN0OiB3aWR0aCB9IH0gfSk7Ci1mdW5jdGlvbiBhc3NlcnRJbWFn
ZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEpCitmdW5jdGlvbiBhc3NlcnRJ
bWFnZURhdGFDb250YWluc01vY2tDYW1lcmFJbWFnZShpbWFnZURhdGEsIGFuZ2xlLCBkZXNjKQog
eworICAgIGFuZ2xlID0gYW5nbGUgfHwgMDsKKyAgICBkZXNjID0gZGVzYyB8fCAiIjsKKworICAg
IGZ1bmN0aW9uIHJvdGF0ZVBvaW50KHApIHsKKyAgICAgICAgbGV0IGEgPSBhbmdsZTsKKyAgICAg
ICAgbGV0IG4gPSBbIHBbMF0sIHBbMV0gXTsKKyAgICAgICAgd2hpbGUgKGEgPiAwKSB7CisgICAg
ICAgICAgICBuID0gWyAxLjAgLSBuWzFdLCBuWzBdIF07CisgICAgICAgICAgICBhIC09IDkwOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBuOworICAgIH0KKwogICAgIGNvbnN0IHdoaXRlID0g
WyAyNTUsIDI1NSwgMjU1LCAyNTUgXTsKKyAgICBjb25zdCB3aGl0ZVBvaW50ID0gcm90YXRlUG9p
bnQoWyAwLjA0LCAwLjcgXSk7CiAgICAgY29uc3QgeWVsbG93ID0gWyAyNTUsIDI1NSwgMCwgMjU1
IF07CisgICAgY29uc3QgeWVsbG93UG9pbnQgPSByb3RhdGVQb2ludChbIDAuMDgsIDAuNyBdKTsK
ICAgICBjb25zdCBjeWFuID0gWyAwLCAyNTUsIDI1NSwgMjU1IF07CisgICAgY29uc3QgY3lhblBv
aW50ID0gcm90YXRlUG9pbnQoWyAwLjEyLCAwLjcgXSk7CiAgICAgY29uc3QgbGlnaHRHcmVlbiA9
IFsgMCwgMTI4LCAwLCAyNTUgXTsKKyAgICBjb25zdCBsaWdodEdyZWVuUG9pbnQgPSByb3RhdGVQ
b2ludChbIDAuMTYsIDAuNyBdKTsKIAotICAgIGxldCBlcnIgPSAzOwotICAgIGFzc2VydF9hcnJh
eV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgWyAwLjA0LCAwLjcg
XSksIHdoaXRlLCBlcnIsICJ3aGl0ZSByZWN0IG5vdCBmb3VuZCIpOwotICAgIGFzc2VydF9hcnJh
eV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgWyAwLjA4LCAwLjcg
XSksIHllbGxvdywgZXJyLCAieWVsbG93IHJlY3Qgbm90IGZvdW5kIik7Ci0gICAgYXNzZXJ0X2Fy
cmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCBbIDAuMTIsIDAu
NyBdKSwgY3lhbiwgZXJyLCAiY3lhbiByZWN0IG5vdCBmb3VuZCIpOwotICAgIGFzc2VydF9hcnJh
eV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgWyAwLjE2LCAwLjcg
XSksIGxpZ2h0R3JlZW4sIGVyciwgImxpZ2h0IGdyZWVuIHJlY3Qgbm90IGZvdW5kIik7CisgICAg
bGV0IGVyciA9IDExOworICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxzKGdldEltYWdlRGF0
YVBpeGVsKGltYWdlRGF0YSwgd2hpdGVQb2ludCksIHdoaXRlLCBlcnIsICJ3aGl0ZSByZWN0IG5v
dCBmb3VuZCAiICsgZGVzYyk7CisgICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVhbHMoZ2V0SW1h
Z2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCB5ZWxsb3dQb2ludCksIHllbGxvdywgZXJyLCAieWVsbG93
IHJlY3Qgbm90IGZvdW5kIiArIGRlc2MpOworICAgIGFzc2VydF9hcnJheV9hcHByb3hfZXF1YWxz
KGdldEltYWdlRGF0YVBpeGVsKGltYWdlRGF0YSwgY3lhblBvaW50KSwgY3lhbiwgZXJyLCAiY3lh
biByZWN0IG5vdCBmb3VuZCAiICsgZGVzYyk7CisgICAgYXNzZXJ0X2FycmF5X2FwcHJveF9lcXVh
bHMoZ2V0SW1hZ2VEYXRhUGl4ZWwoaW1hZ2VEYXRhLCBsaWdodEdyZWVuUG9pbnQpLCBsaWdodEdy
ZWVuLCBlcnIsICJsaWdodCBncmVlbiByZWN0IG5vdCBmb3VuZCAiICsgZGVzYyk7CiB9Cg==
</data>
<flag name="commit-queue"
          id="475733"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>