<?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>78011</bug_id>
          
          <creation_ts>2012-02-07 11:43:38 -0800</creation_ts>
          <short_desc>Implement Paint Timing Level 1</short_desc>
          <delta_ts>2023-12-29 00:02:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed, WPTImpact</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>208499</dependson>
    
    <dependson>208500</dependson>
    
    <dependson>211736</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Simonsen">simonjam</reporter>
          <assigned_to name="James Simonsen">simonjam</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>andrewscheuermann</cc>
    
    <cc>annevk</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>emilio</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gilles</cc>
    
    <cc>japhet</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>krinklemail</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>noam</cc>
    
    <cc>paulirish</cc>
    
    <cc>rego</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkitbugzilla</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>551188</commentid>
    <comment_count>0</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-02-07 11:43:38 -0800</bug_when>
    <thetext>In order for Navigation Timing to fully supplant the client side instrumentation (CSI) that&apos;s custom added to browsers, we need to expose a first paint time to window.performance.timing. Microsoft already has this in IE10 as msFirstPaint. We should add webkitFirstPaint and work on standardizing the exact definition of first paint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571541</commentid>
    <comment_count>1</comment_count>
    <who name="">krinklemail</who>
    <bug_when>2019-09-17 08:21:24 -0700</bug_when>
    <thetext>A spec has since emerged from WICG, and was published two years ago as W3C Working Draft (September 2017).

* Working Draft: https://www.w3.org/TR/paint-timing/
* Editor&apos;s Draft: https://w3c.github.io/paint-timing/
* https://github.com/w3c/paint-timing
* https://github.com/WICG/paint-timing

firstPaint, Paint Timing, PerformancePaintTiming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624412</commentid>
    <comment_count>2</comment_count>
      <attachid>392102</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-03-01 13:47:57 -0800</bug_when>
    <thetext>Created attachment 392102
Patch for discussion (not for review yet)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624414</commentid>
    <comment_count>3</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-03-01 14:00:16 -0800</bug_when>
    <thetext>The patch is not ready - the added skipped tests in TestExpectations tell where this doesn&apos;t fit the spec yet.

To detail of the approach:

There are 3 relevant milestones in WebKit painting:
- (A) The actual milestone used to decide when to unblock painting, called in webkit &quot;DidFirstMeaningfulPaint&quot;.
patch). 
- (B) First paint, as defined in the spec. In this first patch, it&apos;s the same as the first milestone.
- (C) First contentful paint, called in webkit &quot;DidFirstContentfulPaint&quot; (new in this 

&quot;DidFirstMeaningfulPaint&quot; is not the same as first-paint - it&apos;s less strict in the sense that it would fire in case of no content at all or insufficient content, if the page is fully loaded and no content is expected at that phase. So DidFirstMeaningfulPaint can be fired even before first-paint and first-contentful-paint should fire according to spec. In 3 of the failing w3c tests, this is the case.

Also, first-contentful-paint, unlike DidFirstMeaningfulPaint, should fire when background images are rendered, and respond to rendered canvas only if it has any content.

We should decide whether to have first-contentful-paint adhere tightly to the spec (I believe so), or be closer to WebKit&apos;s concept of DidFirstMeaningfulPaint (less work, maybe). 

btw - it&apos;s true that in most websites A, B and C would happen at the same time - however, having a gap between them would be a good indication, in some cases, for</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624415</commentid>
    <comment_count>4</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-03-01 14:00:59 -0800</bug_when>
    <thetext>
&gt; btw - it&apos;s true that in most websites A, B and C would happen at the same
&gt; time - however, having a gap between them would be a good indication, in
&gt; some cases, for...
a website regression, which is part of what this API is for</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624709</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-02 13:20:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/59964760&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624972</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-03-03 00:18:40 -0800</bug_when>
    <thetext>Based on the discussion we had (between Maciej, Simon, Alan, and I), we should take the following items into account for WebKit&apos;s first meaningful paint heuristics:
Background image
SVG images
&quot;Contentful&quot; canvas once we rigorously defined what it means: https://github.com/w3c/paint-timing/issues/50
First frame / poster image of a video: https://github.com/w3c/paint-timing/issues/51
Then as Maciej pointed out there are a few spec works to do:
WebKit takes any text regardless of whether they appear within UA shadow root or not into account for the first meaningful paint. The spec needs to clarify this behavior - https://github.com/w3c/paint-timing/issues/52
The exact timing of navigation should be defined - https://github.com/w3c/paint-timing/issues/19
Clarify whether &quot;first paint&quot; or &quot;first content paint&quot; ever happens to a blank page - https://github.com/w3c/paint-timing/issues/53
Clarify what happens to a page which consists of just an iframe - https://github.com/w3c/paint-timing/issues/54
Combination of paint timing and long tasks can expose precise paint timing - https://github.com/w3c/paint-timing/issues/55
To supplement earlier Maciej&apos;s points, per our discussion, we don&apos;t think &quot;first paint&quot; is a good metric to expose to the Web since Safari / WebKit users would never see that. If any website optimize for the first paint metrics instead of or at the cost of first contentful paint, then such an optimization would only result in perceived regressions for our users.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624973</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-03-03 00:20:38 -0800</bug_when>
    <thetext>Oops, re-posting my comment because that was jumbled up.

Based on the discussion we had (between Maciej, Simon, Alan, and I), we should take the following items into account for WebKit&apos;s first meaningful paint heuristics:
 * Background image
 * SVG images
 * &quot;Contentful&quot; canvas once we rigorously defined what it means: https://github.com/w3c/paint-timing/issues/50
 * First frame / poster image of a video: https://github.com/w3c/paint-timing/issues/51

There are a few spec works to do:
 * WebKit takes any text regardless of whether they appear within UA shadow root or not into account for the first meaningful paint. The spec needs to clarify this behavior - https://github.com/w3c/paint-timing/issues/52
 * The exact timing of navigation should be defined - https://github.com/w3c/paint-timing/issues/19
 * Clarify whether &quot;first paint&quot; or &quot;first content paint&quot; ever happens to a blank page - https://github.com/w3c/paint-timing/issues/53
 * Clarify what happens to a page which consists of just an iframe - https://github.com/w3c/paint-timing/issues/54
 * Combination of paint timing and long tasks can expose precise paint timing - https://github.com/w3c/paint-timing/issues/55

We don&apos;t want to implement &quot;first paint&quot; metric because Safari / WebKit users would not see anything at when this timing occurs. If any website optimize for the first paint metrics instead of or at the cost of first contentful paint, such an optimization would only negatively impact our users.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636610</commentid>
    <comment_count>8</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-04-01 12:39:08 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #7)

To touch base on the discussion regarding paint API:
&gt; we
&gt; should take the following items into account for WebKit&apos;s first meaningful
&gt; paint heuristics:
&gt;  * SVG images
Landed, https://trac.webkit.org/changeset/257952/webkit

&gt;  * Background image
Patch ready for review, https://bugs.webkit.org/show_bug.cgi?id=208501.

&gt;  * &quot;Contentful&quot; canvas once we rigorously defined what it means:
&gt; https://github.com/w3c/paint-timing/issues/50
Spec issue resolved, patch for canvas bassed on it: https://bugs.webkit.org/show_bug.cgi?id=208482


&gt;  * First frame / poster image of a video:
&gt; https://github.com/w3c/paint-timing/issues/51
Spec issue resolved, still need patch for VNE - want to resolve above 2 patches first as they contain similar functionality and would probably share code.

&gt; 
&gt; There are a few spec works to do:
&gt;  * WebKit takes any text regardless of whether they appear within UA shadow
&gt; root or not into account for the first meaningful paint. The spec needs to
&gt; clarify this behavior - https://github.com/w3c/paint-timing/issues/52
&gt;  * The exact timing of navigation should be defined -
&gt; https://github.com/w3c/paint-timing/issues/19
&gt;  * Clarify whether &quot;first paint&quot; or &quot;first content paint&quot; ever happens to a
&gt; blank page - https://github.com/w3c/paint-timing/issues/53
&gt;  * Clarify what happens to a page which consists of just an iframe -
&gt; https://github.com/w3c/paint-timing/issues/54
&gt;  * Combination of paint timing and long tasks can expose precise paint
&gt; timing - https://github.com/w3c/paint-timing/issues/55
Above spec issues resolved.

&gt; 
&gt; We don&apos;t want to implement &quot;first paint&quot; metric because Safari / WebKit
&gt; users would not see anything at when this timing occurs. If any website
&gt; optimize for the first paint metrics instead of or at the cost of first
&gt; contentful paint, such an optimization would only negatively impact our
&gt; users.
The spec now specifies that first-paint is optional. https://bugs.webkit.org/show_bug.cgi?id=208499 implements only first-contentful-paint.

Simon has raised the point about tests for VNE in https://bugs.webkit.org/show_bug.cgi?id=208482#c8 - do we want to land FCP and use it to test VNE, add a new way to test VNE, or leave it as is (contributing to VNE without tests)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651168</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-10 20:16:04 -0700</bug_when>
    <thetext>Noam, the two blocking bugs are fixed. What remains here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651184</commentid>
    <comment_count>10</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-05-10 22:22:47 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #9)
&gt; Noam, the two blocking bugs are fixed. What remains here?

I think, just maturing paint-timing out of &quot;experimental flag&quot; land. What would be required for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651305</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-11 10:31:56 -0700</bug_when>
    <thetext>How confident are we in the implementation? How well does it match other browsers, and how well-tested is it by WPT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651309</commentid>
    <comment_count>12</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-05-11 10:34:14 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #11)
&gt; How confident are we in the implementation? How well does it match other
&gt; browsers, and how well-tested is it by WPT?

It totally matches chrome after the few spec iteration we&apos;ve done and has over 25 WPT tests that cover it, which were imported as part of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651313</commentid>
    <comment_count>13</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2020-05-11 10:45:20 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #11)
&gt; How confident are we in the implementation? How well does it match other
&gt; browsers, and how well-tested is it by WPT?

Re. the implementation - it&apos;s pretty straightforward, does a fake paint and reports the timing if contentfulness is detected.

I think the open issue is that it still doesn&apos;t support layout formatting context. I think we should do that once LFC implementation itself is a bit less in flux, but I don&apos;t know if this should be a blocker, not sure what the plan is regarding LFC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651345</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-11 11:31:21 -0700</bug_when>
    <thetext>LFC is not a blocker. I think it would be fine to change the PaintTimingEnabled experimental feature to on by default. Perhaps mail webkit-dev to tell people that you&apos;re doing so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838281</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-02-07 11:58:01 -0800</bug_when>
    <thetext>*** Bug 236155 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1876092</commentid>
    <comment_count>16</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-06-15 14:57:52 -0700</bug_when>
    <thetext>Hi Team - is this something can be turned on by default in Safari now? Considering the comments in Comment 13 and Comment 14 and also in WPT (for Stable), I can see Safari 15.5 do pass some tests (not all).

https://wpt.fyi/results/paint-timing?label=master&amp;label=stable&amp;aligned

Although - there is &quot;experimental&quot; flag still present in Safari 15.5 on macOS 12.4 for &quot;Paint Timing&quot;? Is it because of &quot;WPT&quot; failures - it is still experimental? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1876201</commentid>
    <comment_count>17</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2022-06-16 00:03:09 -0700</bug_when>
    <thetext>(In reply to Ahmad Saleem from comment #16)
&gt; Hi Team - is this something can be turned on by default in Safari now?
&gt; Considering the comments in Comment 13 and Comment 14 and also in WPT (for
&gt; Stable), I can see Safari 15.5 do pass some tests (not all).
&gt; 
&gt; https://wpt.fyi/results/paint-timing?label=master&amp;label=stable&amp;aligned
&gt; 
&gt; Although - there is &quot;experimental&quot; flag still present in Safari 15.5 on
&gt; macOS 12.4 for &quot;Paint Timing&quot;? Is it because of &quot;WPT&quot; failures - it is still
&gt; experimental? Thanks!

It’s been enabled by default for a while now (first contentful paint only).
Some WPTs fail because WebKit chose to implement a subset.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392102</attachid>
            <date>2020-03-01 13:47:57 -0800</date>
            <delta_ts>2020-03-01 14:01:19 -0800</delta_ts>
            <desc>Patch for discussion (not for review yet)</desc>
            <filename>bug-78011-20200301234755.patch</filename>
            <type>text/plain</type>
            <size>99220</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2YyZGU5ZWE1ZDYyMzUy
ZDFmOWE3ZWViZWNhZDE4NzQ4OGE4NmY5Ni4uZWU5YjYwMjljM2RkN2U5ZjM5N2QzYTY1NTU1OGVl
MGM0NjQxODc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDIwLTAzLTAxICBOb2Ft
IFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbV2ViIFRpbWluZ10gSW1w
bGVtZW50IFBhaW50IFRpbWluZyAxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODAxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFBhaW50IEFQSTogYXR0ZW1wdCAxCisKKyAgICAgICAgVGVzdHM6IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2Jhc2V0ZXN0Lmh0bWwKKyAg
ICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5n
L2NoaWxkLXBhaW50aW5nLWZpcnN0LWltYWdlLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWNvbnRlbnRmdWwtYmct
aW1hZ2UuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYWludC10aW1pbmcvZmlyc3QtY29udGVudGZ1bC1jYW52YXMuaHRtbAorICAgICAgICAgICAg
ICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvZmlyc3QtY29u
dGVudGZ1bC1pbWFnZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3BhaW50LXRpbWluZy9maXJzdC1jb250ZW50ZnVsLXBhaW50Lmh0bWwKKyAgICAg
ICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2Zp
cnN0LWNvbnRlbnRmdWwtc3ZnLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWltYWdlLWNoaWxkLmh0bWwKKyAgICAg
ICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2Zp
cnN0LXBhaW50LWJnLWNvbG9yLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LXBhaW50LW9ubHkuaHRtbAorICAgICAg
ICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvaWRs
aGFybmVzcy53aW5kb3cuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvcGFpbnQtdmlzaXRlZC5odG1sCisgICAgICAgICAgICAg
ICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9zaWJsaW5nLXBh
aW50aW5nLWZpcnN0LWltYWdlLmh0bWwKKyAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLWFwaS9w
YWludC10aW1pbmctYXBpcy5odG1sCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BlcmZvcm1hbmNlRW50cnlDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICog
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGxvYWRlci9Mb2Fk
VGltaW5nLmNwcDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppc0VsZW1lbnRWaXNpYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cXVh
bGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6cXVhbGlmaWVzQXNDb250ZW50ZnVsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6ZmlyZUxheW91dFJlbGF0ZWRNaWxlc3RvbmVzSWZOZWVkZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVWaWV3OjpyZXBvcnRQYWludE1pbGVzdG9uZXNUb1BlcmZvcm1hbmNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZmlyZVBhaW50UmVsYXRlZE1pbGVzdG9uZXNJ
Zk5lZWRlZCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL0xh
eW91dE1pbGVzdG9uZS5oOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGVyZm9ybWFuY2U6OlBlcmZvcm1hbmNlKToKKyAgICAgICAgKFdlYkNvcmU6
OlBlcmZvcm1hbmNlOjpnZXRFbnRyaWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlOjpnZXRFbnRyaWVzQnlUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlOjpnZXRFbnRyaWVzQnlOYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlOjptYXJrUGFpbnRUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2U6
OnJlcG9ydFBhaW50TWlsZXN0b25lcyk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6
cmVnaXN0ZXJQZXJmb3JtYW5jZU9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlOjpxdWV1ZUVudHJ5KToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmg6CisgICAgICAg
ICogcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1h
bmNlRW50cnk6OnBhcnNlRW50cnlUeXBlU3RyaW5nKToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1h
bmNlRW50cnkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnk6OmlzUGFpbnQg
Y29uc3QpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VPYnNlcnZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQZXJmb3JtYW5jZU9ic2VydmVyOjpzdXBwb3J0ZWRFbnRyeVR5cGVzKToKKyAg
ICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlUGFpbnRUaW1pbmcuaDogQWRkZWQuCisgICAgICAgIChp
c1R5cGUpOgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VQYWludFRpbWluZy5pZGw6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGVyZm9ybWFuY2VFbnRyeUN1c3Rv
bS5jcHAuCisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAg
IChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRQYWludFRpbWluZ0VuYWJsZWQp
OgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6cGFpbnRUaW1pbmdF
bmFibGVkIGNvbnN0KToKKwogMjAyMC0wMi0yNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBs
ZS5jb20+CiAKICAgICAgICAgTG9hZCBhc3luYyBzY3JpcHRzIHdpdGggbG93IHByaW9yaXR5CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDlhODc2MmU2YzVmYjIwZTk5MmJlZjY2MDdlNTgyZGI5ZThjYWM1OGEuLjE2Zjhk
N2UyNzRhZGI3YTgxODJkZWM3ODhlZjE4ZjYxM2Y5YWIzYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMjAtMDMtMDEgIE5vYW0gUm9zZW50aGFsICA8bm9hbUB3ZWJraXQub3JnPgorCisg
ICAgICAgIFtXZWIgVGltaW5nXSBJbXBsZW1lbnQgUGFpbnQgVGltaW5nIDEKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDExCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFpbnQgQVBJOiBhdHRlbXB0IDEK
KworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRQ
YWludFRpbWluZ0VuYWJsZWQpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldFBhaW50VGltaW5n
RW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2
YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OnVwZGF0ZVByZWZlcmVuY2VzU3RvcmUpOgorCiAyMDIwLTAyLTI3ICBKYWNvYiBVcGhv
ZmYgIDxqYWNvYl91cGhvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIyNTc1MzAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYmQ0ZDBmZTNi
NmFkMGNiMTY2MjdiNmZiNGU1ZmI5ZWI0NDE2NWNlMy4uZTBlZDU5ZmM4MzdjYWNiNWMxNjUzMTgw
NjFiNzc1YjU2M2U2NmRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDIwLTAzLTAxICBOb2FtIFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBbV2ViIFRpbWluZ10gSW1wbGVtZW50IFBhaW50IFRpbWluZyAxCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODAxMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhaW50IEFQSTogYXR0ZW1wdCAx
CisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVuY2Vz
IGluaXRpYWxpemVdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgcGFpbnRUaW1pbmdFbmFi
bGVkXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldFBhaW50VGltaW5nRW5hYmxlZDpd
KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKwogMjAyMC0wMi0yNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBDcmVhdGUgQXVkaW9EZXN0aW5hdGlvbiBpbiB0aGUgR1BV
IHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCA1YjQ2OGI2ODk0ZmUzZWJj
ODFjOWM4NThhZGQyMGQ5Zjc5ZGY2YjZkLi4xYTRhODJkNGY1NzJmYmM4MzcwNWUxZmY4NzFhNmQ3
NzM0NGZhZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMjAtMDMtMDEgIE5vYW0gUm9zZW50aGFsICA8bm9hbUB3ZWJraXQub3JnPgorCisgICAgICAg
IFtXZWIgVGltaW5nXSBJbXBsZW1lbnQgUGFpbnQgVGltaW5nIDEKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDExCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFpbnQgQVBJOiBhdHRlbXB0IDEKKworICAg
ICAgICAqIEludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGw6CisgICAgICAgICog
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuaDoK
KyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeVByZWZlcmVu
Y2VzQ2hhbmdlZCk6CisKIDIwMjAtMDItMjYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQ3JlYXRlIEF1ZGlvRGVzdGluYXRpb24gaW4gdGhlIEdQVSBwcm9jZXNz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA1YmEyNmI4MDgyZGU2ODkwMWMyZTEy
NjYyZjY0NzRhODY3MDcyNDIzLi5kMjViNGM0OWUzZmY3MTBhOGU0NjMyNTZmMmQ3MGI1NmY0NjFh
YWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTg5NCw2ICs4OTQsNyBAQCBK
U19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1BlcmZvcm1hbmNlT2JzZXJ2
ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvUGVyZm9ybWFuY2VPYnNlcnZlckNhbGxiYWNr
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1BlcmZvcm1hbmNlT2JzZXJ2ZXJFbnRyeUxpc3Qu
aWRsIFwKKyAgICAkKFdlYkNvcmUpL3BhZ2UvUGVyZm9ybWFuY2VQYWludFRpbWluZy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9wYWdlL1BlcmZvcm1hbmNlU2VydmVyVGltaW5nLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGFmNDVj
NTE5NzE1YjViZjg4YTMxMTMyMzE3OWZjM2E0YmU2ZWFiMDYuLjQ5MmQ2ZjcwZjNmNDVmOGI4NmFh
ZDFjZDA1ZTUxMjZmYjY1NDY0NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zMTYyLDYgKzMxNjIsNyBA
QCBKU1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAKIEpTUGVyZm9ybWFuY2VPYnNlcnZlci5jcHAK
IEpTUGVyZm9ybWFuY2VPYnNlcnZlckNhbGxiYWNrLmNwcAogSlNQZXJmb3JtYW5jZU9ic2VydmVy
RW50cnlMaXN0LmNwcAorSlNQZXJmb3JtYW5jZVBhaW50VGltaW5nLmNwcAogSlNQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nLmNwcAogSlNQZXJmb3JtYW5jZVNlcnZlclRpbWluZy5jcHAKIEpTUGVy
Zm9ybWFuY2VUaW1pbmcuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTdlMDBkYjAzYWQwZDViNDdjZjJiNGFhODE0MjI2MmEy
MDJkYTFjMi4uOTkwYzZmOTUxNjk5NWQyMGI5OGFhMWUwNDY0YjgxMWI0ZjI1YzNhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTM2OTIsNiArMTM2OTIsOSBAQAogCQlDQTA5MUQ4NjIzQ0Y5MDc4MDBBRDQzNDYgLyogU3R5bGVJ
bWFnZVNldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUltYWdlU2V0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EwOTFEODkyM0NGOTA4ODAwQUQ0MzQ2IC8qIFN0eWxl
SW1hZ2VTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVJbWFnZVNldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDQTE2MzVEQzIwNzJFNzY5MDBFN0QyQ0UgLyogUmVmZXJyZXJQb2xp
Y3kuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVmZXJyZXJQb2xp
Y3kuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDQTE5MzNENDI0MDdDRjZGMDA3
MTI0MUEgLyogUGVyZm9ybWFuY2VQYWludEVudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmZvcm1h
bmNlUGFpbnRFbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDQTE5MzNENTI0
MDdENjQwMDA3MTI0MUEgLyogUGVyZm9ybWFuY2VQYWludFRpbWluZy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQZXJmb3JtYW5jZVBhaW50VGltaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNBMTkzM0Q4MjQwN0VEQ0YwMDcxMjQxQSAvKiBQZXJmb3JtYW5jZVBhaW50VGltaW5nLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQZXJmb3JtYW5jZVBhaW50VGltaW5nLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0IxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9s
bEFuaW1hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9s
bEFuaW1hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0QxMEQ5
OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNBNTJCQUU1MjNEMEFGMTYwMERFMEI4NCAvKiBTdHlsZUN1cnNvckltYWdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFN0eWxlQ3Vyc29ySW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjA3MjAsNiArMjA3MjMsNyBAQAogCQkJCTBGRjJFODBDMUVFMEQ0MzAwMDlFQUJE
NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwICovLAogCQkJCTBGODUwRkUyMUVEN0Mx
ODMwMEZCNzdBNyAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaCAqLywKIAkJCQkzN0M3MzhF
ODFFREJEMkVEMDAzRjJCMEIgLyogUGVyZm9ybWFuY2VNYXJrLmggKi8sCisJCQkJQ0ExOTMzRDQy
NDA3Q0Y2RjAwNzEyNDFBIC8qIFBlcmZvcm1hbmNlUGFpbnRFbnRyeS5oICovLAogCQkJCTM3Qzcz
OEVBMUVEQkQzODEwMDNGMkIwQiAvKiBQZXJmb3JtYW5jZU1lYXN1cmUuaCAqLywKIAkJCQk4M0ZF
OTAyNTFFMzA3QzFDMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmNwcCAqLywKIAkJCQk4
M0ZFOTAyNjFFMzA3QzFDMDAzRTkxOTkgLyogUGVyZm9ybWFuY2VNb25pdG9yLmggKi8sCkBAIC0y
MDczNyw2ICsyMDc0MSw3IEBACiAJCQkJODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwICovLAogCQkJCTg2NTEyRURDMTU0QTJBRUYwMEE5MDQy
NiAvKiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmggKi8sCiAJCQkJODY1MTJFREQxNTRBMkFF
RjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsICovLAorCQkJCUNBMTkz
M0Q4MjQwN0VEQ0YwMDcxMjQxQSAvKiBQZXJmb3JtYW5jZVBhaW50VGltaW5nLmlkbCAqLywKIAkJ
CQkyOERCOUJDNTIwMjBFQTA0MDBFNTRBMDcgLyogUGVyZm9ybWFuY2VTZXJ2ZXJUaW1pbmcuY3Bw
ICovLAogCQkJCTI4REI5QkM2MjAyMEVBMDQwMEU1NEEwNyAvKiBQZXJmb3JtYW5jZVNlcnZlclRp
bWluZy5oICovLAogCQkJCTI4REI5QkM3MjAyMEVBMDQwMEU1NEEwNyAvKiBQZXJmb3JtYW5jZVNl
cnZlclRpbWluZy5pZGwgKi8sCkBAIC0yMDc0NSw2ICsyMDc1MCw3IEBACiAJCQkJOEFGNEU1NUEx
MURDNUE2MzAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlVGltaW5nLmlkbCAqLywKIAkJCQlBNTU0QjVG
MDFFMzgzOTM2MDAxRDRFMDMgLyogUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcCAqLywKIAkJCQlB
NTU0QjVGMTFFMzgzOTM2MDAxRDRFMDMgLyogUGVyZm9ybWFuY2VVc2VyVGltaW5nLmggKi8sCisJ
CQkJQ0ExOTMzRDUyNDA3RDY0MDAwNzEyNDFBIC8qIFBlcmZvcm1hbmNlUGFpbnRUaW1pbmcuaCAq
LywKIAkJCQkzMUQ1OTFCMTE2Njk3QTZDMDBFNkJGMDIgLyogUGx1Z0luQ2xpZW50LmggKi8sCiAJ
CQkJNzFCNUFCMjUyMUYxRDlFMzAwMzc2RTVDIC8qIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxlci5j
cHAgKi8sCiAJCQkJNzFCNUFCMjQyMUYxRDlFMjAwMzc2RTVDIC8qIFBvaW50ZXJDYXB0dXJlQ29u
dHJvbGxlci5oICovLApAQCAtMzMzMDEsNiArMzMzMDcsNyBAQAogCQkJCUJDQUQxODBBMTMxQzdB
MEQwMDk5MDQwNiAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzIGluIFJlc291cmNlcyAqLywKIAkJCQk4
MzdBODAxMzFFMUUxMjczMDAwMjZCOUYgLyogTG9jYWxpemFibGUuc3RyaW5nc2RpY3QgaW4gUmVz
b3VyY2VzICovLAogCQkJCTMxMUMwOEJEMThFQjdDQUYwMEI2NTYxNSAvKiBtZWRpYUNvbnRyb2xz
QXBwbGUuY3NzIGluIFJlc291cmNlcyAqLywKKwkJCQlDQTE5MzNEOTI0MDdFRENGMDA3MTI0MUEg
LyogUGVyZm9ybWFuY2VQYWludFRpbWluZy5pZGwgaW4gUmVzb3VyY2VzICovLAogCQkJCTMxMUMw
OEJFMThFQjdDQUYwMEI2NTYxNSAvKiBtZWRpYUNvbnRyb2xzQXBwbGUuanMgaW4gUmVzb3VyY2Vz
ICovLAogCQkJCTMxMUMwOEJGMThFQjdDQUYwMEI2NTYxNSAvKiBtZWRpYUNvbnRyb2xzaU9TLmNz
cyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJMzExQzA4QzAxOEVCN0NBRjAwQjY1NjE1IC8qIG1lZGlh
Q29udHJvbHNpT1MuanMgaW4gUmVzb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNQZXJmb3JtYW5jZUVudHJ5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTUGVyZm9ybWFuY2VFbnRyeUN1c3RvbS5jcHAKaW5kZXggMzE3OGEx
ZmQwNjJhYzRjOWNmM2VkNzA2ZWJiNjI3ODZjNGI3OGI2NS4uYmJmODExMTQyZGFiOWU2YTkyY2I1
YzZjZmFiMDZiMjQ1OGJhNzE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNQZXJmb3JtYW5jZUVudHJ5Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1BlcmZvcm1hbmNlRW50cnlDdXN0b20uY3BwCkBAIC0zNSw5ICszNSwxMSBAQAog
I2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTUGVyZm9ybWFuY2VNYXJrLmgi
CiAjaW5jbHVkZSAiSlNQZXJmb3JtYW5jZU1lYXN1cmUuaCIKKyNpbmNsdWRlICJKU1BlcmZvcm1h
bmNlUGFpbnRUaW1pbmcuaCIKICNpbmNsdWRlICJKU1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcu
aCIKICNpbmNsdWRlICJQZXJmb3JtYW5jZU1hcmsuaCIKICNpbmNsdWRlICJQZXJmb3JtYW5jZU1l
YXN1cmUuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZVBhaW50VGltaW5nLmgiCiAjaW5jbHVkZSAi
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oIgogCiAKQEAgLTQ2LDYgKzQ4LDkgQEAgdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAogSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTR2xvYmFsT2JqZWN0
KiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFBlcmZvcm1hbmNlRW50cnk+
JiYgZW50cnkpCiB7CisgICAgaWYgKGlzPFBlcmZvcm1hbmNlUGFpbnRUaW1pbmc+KGVudHJ5KSkK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8UGVyZm9ybWFuY2VQYWludFRpbWluZz4oZ2xv
YmFsT2JqZWN0LCBXVEZNb3ZlKGVudHJ5KSk7CisKICAgICBpZiAoaXM8UGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZz4oZW50cnkpKQogICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxQZXJmb3Jt
YW5jZVJlc291cmNlVGltaW5nPihnbG9iYWxPYmplY3QsIFdURk1vdmUoZW50cnkpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4
IDQ0ZDUwYjIwN2M1MzhhMTk3OTJiNGYzMjI2YWZlNjUyODc3ODcyMDkuLjMxZGQ5ZTNjMDVmZGIw
YzBmMjJkMDhkNmU0MjY3YjM0OGM3MzFjZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTE3OSw2ICsxNzksNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oUGVyZm9ybWFuY2VNZWFzdXJlKSBcCiAgICAgbWFjcm8o
UGVyZm9ybWFuY2VPYnNlcnZlcikgXAogICAgIG1hY3JvKFBlcmZvcm1hbmNlT2JzZXJ2ZXJFbnRy
eUxpc3QpIFwKKyAgICBtYWNybyhQZXJmb3JtYW5jZVBhaW50VGltaW5nKSBcCiAgICAgbWFjcm8o
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZykgXAogICAgIG1hY3JvKFBlcmZvcm1hbmNlU2VydmVy
VGltaW5nKSBcCiAgICAgbWFjcm8oUG9pbnRlckV2ZW50KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTG9hZFRpbWluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9h
ZFRpbWluZy5jcHAKaW5kZXggNDgwZDM1NjVkYmYzOWM2YWJjZjg3NWExZWZkZWRkNjdkY2E2YzA0
OC4uODBiMTljNmMzMmNkZjkzZGEwNGUyY2Q1NmYzNDFkNGRkODgwNzRjNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Mb2FkVGltaW5nLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiQ3Vz
dG9tSGVhZGVyRmllbGRzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJEb2N1
bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiIAogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggZjRmOGU3ZDQ3YWNmZDhjNjU4NTdl
ODdiNGJmZDNkNjdiNDExN2ZhNS4uM2Y2MGEwNzdiODM2ZmJiYzBkZjk2MThjMWNlZmY2M2JhNGJl
MTgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNzEsNiArNzEsNyBAQAogI2lu
Y2x1ZGUgIk92ZXJmbG93RXZlbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFn
ZU92ZXJsYXlDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiUGVyZm9ybWFuY2UuaCIKICNpbmNsdWRl
ICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgog
I2luY2x1ZGUgIlJlbmRlckZ1bGxTY3JlZW4uaCIKQEAgLTQzNzUsNiArNDM3NiwxNSBAQCBib29s
IEZyYW1lVmlldzo6cXVhbGlmaWVzQXNTaWduaWZpY2FudFJlbmRlcmVkVGV4dCgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1faGFzUmVhY2hlZFNpZ25pZmljYW50UmVuZGVyZWRUZXh0VGhyZXNob2xkOwog
fQogCitzdGF0aWMgYm9vbCBpc0VsZW1lbnRWaXNpYmxlKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQp
Cit7CisgICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LT5yZW5kZXJlcigpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigpLT5vcGFjaXR5KCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZWxlbWVudC0+cmVuZGVyZXIoKS0+c3R5
bGUoKS52aXNpYmlsaXR5KCkgPT0gVmlzaWJpbGl0eTo6VmlzaWJsZTsKK30KKwogYm9vbCBGcmFt
ZVZpZXc6OnF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSgpIGNvbnN0CiB7CiAgICAgLy8gTm8g
Y29udGVudCB5ZXQuCkBAIC00Mzg1LDI0ICs0Mzk1LDExIEBAIGJvb2wgRnJhbWVWaWV3OjpxdWFs
aWZpZXNBc1Zpc3VhbGx5Tm9uRW1wdHkoKSBjb25zdAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
YWxzbyBpZ25vcmUgcmVuZGVyZXJzIHdpdGggbm9uLWZpbmFsIHN0eWxlLgogICAgIGlmIChmcmFt
ZSgpLmRvY3VtZW50KCktPnN0eWxlU2NvcGUoKS5oYXNQZW5kaW5nU2hlZXRzQmVmb3JlQm9keSgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBhdXRvIGZpbmlzaGVkUGFyc2luZ01haW5E
b2N1bWVudCA9IGZyYW1lKCkubG9hZGVyKCkuc3RhdGVNYWNoaW5lKCkuY29tbWl0dGVkRmlyc3RS
ZWFsRG9jdW1lbnRMb2FkKCkgJiYgKGZyYW1lKCkuZG9jdW1lbnQoKS0+cmVhZHlTdGF0ZSgpID09
IERvY3VtZW50OjpJbnRlcmFjdGl2ZSB8fCBmcmFtZSgpLmRvY3VtZW50KCktPnJlYWR5U3RhdGUo
KSA9PSBEb2N1bWVudDo6Q29tcGxldGUpOwotICAgIC8vIEVuc3VyZSB0aGF0IHdlIGFsd2F5cyBm
aXJlIHZpc3VhbGx5IG5vbi1lbXB0eSBtaWxlc3RvbmUgZXZlbnR1YWxseS4KLSAgICBpZiAoZmlu
aXNoZWRQYXJzaW5nTWFpbkRvY3VtZW50ICYmIGZyYW1lKCkubG9hZGVyKCkuaXNDb21wbGV0ZSgp
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGF1dG8gaXNWaXNpYmxlID0gW10oY29uc3Qg
RWxlbWVudCogZWxlbWVudCkgewotICAgICAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQtPnJl
bmRlcmVyKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghZWxlbWVu
dC0+cmVuZGVyZXIoKS0+b3BhY2l0eSgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICByZXR1cm4gZWxlbWVudC0+cmVuZGVyZXIoKS0+c3R5bGUoKS52aXNpYmlsaXR5KCkgPT0g
VmlzaWJpbGl0eTo6VmlzaWJsZTsKLSAgICB9OwotCi0gICAgaWYgKCFpc1Zpc2libGUoZG9jdW1l
bnRFbGVtZW50KSkKKyAgICAKKyAgICBpZiAoIWlzRWxlbWVudFZpc2libGUoZG9jdW1lbnRFbGVt
ZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFpc1Zpc2libGUoZnJhbWUo
KS5kb2N1bWVudCgpLT5ib2R5KCkpKQorICAgIGlmICghaXNFbGVtZW50VmlzaWJsZShmcmFtZSgp
LmRvY3VtZW50KCktPmJvZHkoKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFRo
ZSBmaXJzdCBmZXcgaHVuZHJlZCBjaGFyYWN0ZXJzIHJhcmVseSBjb250YWluIHRoZSBpbnRlcmVz
dGluZyBjb250ZW50IG9mIHRoZSBwYWdlLgpAQCAtNDQxMiw2ICs0NDA5LDkgQEAgYm9vbCBGcmFt
ZVZpZXc6OnF1YWxpZmllc0FzVmlzdWFsbHlOb25FbXB0eSgpIGNvbnN0CiAgICAgLy8gVXNlIGEg
dGhyZXNob2xkIHZhbHVlIHRvIHByZXZlbnQgdmVyeSBzbWFsbCBhbW91bnRzIG9mIHZpc2libGUg
Y29udGVudCBmcm9tIHRyaWdnZXJpbmcgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0CiAg
ICAgaWYgKG1fdmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQgPiB2aXN1YWxQaXhlbFRocmVzaG9s
ZCkKICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgCisgICAgYXV0byBmaW5pc2hlZFBhcnNpbmdN
YWluRG9jdW1lbnQgPSBmcmFtZSgpLmxvYWRlcigpLnN0YXRlTWFjaGluZSgpLmNvbW1pdHRlZEZp
cnN0UmVhbERvY3VtZW50TG9hZCgpCisgICAgJiYgKGZyYW1lKCkuZG9jdW1lbnQoKS0+cmVhZHlT
dGF0ZSgpID09IERvY3VtZW50OjpJbnRlcmFjdGl2ZSB8fCBmcmFtZSgpLmRvY3VtZW50KCktPnJl
YWR5U3RhdGUoKSA9PSBEb2N1bWVudDo6Q29tcGxldGUpOwogCiAgICAgYXV0byBpc01vcmVDb250
ZW50RXhwZWN0ZWQgPSBbJl0oKSB7CiAgICAgICAgIEFTU0VSVChmaW5pc2hlZFBhcnNpbmdNYWlu
RG9jdW1lbnQpOwpAQCAtNDQ0MSw2ICs0NDQxLDI5IEBAIGJvb2wgRnJhbWVWaWV3OjpxdWFsaWZp
ZXNBc1Zpc3VhbGx5Tm9uRW1wdHkoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9v
bCBGcmFtZVZpZXc6OnF1YWxpZmllc0FzQ29udGVudGZ1bCgpIGNvbnN0Cit7CisgICAgYXV0byBk
b2N1bWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKTsKKworICAgIGlmICghaXNFbGVtZW50VmlzaWJs
ZShkb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgCisgICAgaWYgKCFpc0VsZW1lbnRWaXNpYmxlKGRvY3VtZW50LT5ib2R5KCkpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKCFtX2NvbnRlbnRRdWFsaWZpZXNBc1Zpc3Vh
bGx5Tm9uRW1wdHkgJiYgZnJhbWUoKS5pc01haW5GcmFtZSgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBpZiAobV92aXN1YWxseU5vbkVtcHR5Q2hhcmFjdGVyQ291bnQpCisgICAgICAg
IHJldHVybiB0cnVlOworICAgIAorICAgIGlmIChtX3Zpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIAorICAgIHJldHVybiBmYWxzZTsKK30KKwog
Ym9vbCBGcmFtZVZpZXc6OmlzVmlld0ZvckRvY3VtZW50SW5GcmFtZSgpIGNvbnN0CiB7CiAgICAg
UmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKQEAgLTUwOTksNiAr
NTEyMiwxOCBAQCB2b2lkIEZyYW1lVmlldzo6ZmlyZUxheW91dFJlbGF0ZWRNaWxlc3RvbmVzSWZO
ZWVkZWQoKQogICAgICAgICAgICAgICAgIG1pbGVzdG9uZXNBY2hpZXZlZC5hZGQoRGlkRmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0KTsKICAgICAgICAgfQogICAgIH0KKyAgICAKKyAgICBpZiAo
bV9maXJzdENvbnRlbnRmdWxQYWludE1pbGVzdG9uZUlzUGVuZGluZykgeworICAgICAgICBpZiAo
IW1fY29udGVudFF1YWxpZmllc0FzQ29udGVudGZ1bCkKKyAgICAgICAgICAgIG1fY29udGVudFF1
YWxpZmllc0FzQ29udGVudGZ1bCA9IHF1YWxpZmllc0FzQ29udGVudGZ1bCgpOworCisgICAgICAg
IGlmIChtX2NvbnRlbnRRdWFsaWZpZXNBc0NvbnRlbnRmdWwpIHsKKyAgICAgICAgICAgIG1fZmly
c3RDb250ZW50ZnVsUGFpbnRNaWxlc3RvbmVJc1BlbmRpbmcgPSBmYWxzZTsKKyAgICAgICAgICAg
IGFkZFBhaW50UGVuZGluZ01pbGVzdG9uZXMoRGlkRmlyc3RDb250ZW50ZnVsUGFpbnQpOworICAg
ICAgICAgICAgaWYgKHJlcXVlc3RlZE1pbGVzdG9uZXMgJiBEaWRGaXJzdENvbnRlbnRmdWxQYWlu
dCkKKyAgICAgICAgICAgICAgICBtaWxlc3RvbmVzQWNoaWV2ZWQuYWRkKERpZEZpcnN0Q29udGVu
dGZ1bFBhaW50KTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIGlmICghbV9yZW5kZXJlZFNpZ25p
ZmljYW50QW1vdW50T2ZUZXh0ICYmIHF1YWxpZmllc0FzU2lnbmlmaWNhbnRSZW5kZXJlZFRleHQo
KSkgewogICAgICAgICBtX3JlbmRlcmVkU2lnbmlmaWNhbnRBbW91bnRPZlRleHQgPSB0cnVlOwpA
QCAtNTEwOSwxOCArNTE0NCwzNyBAQCB2b2lkIEZyYW1lVmlldzo6ZmlyZUxheW91dFJlbGF0ZWRN
aWxlc3RvbmVzSWZOZWVkZWQoKQogICAgIGlmIChtaWxlc3RvbmVzQWNoaWV2ZWQgJiYgZnJhbWUo
KS5pc01haW5GcmFtZSgpKSB7CiAgICAgICAgIGlmIChtaWxlc3RvbmVzQWNoaWV2ZWQuY29udGFp
bnMoRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KSkKICAgICAgICAgICAgIEZSQU1FVklF
V19SRUxFQVNFX0xPR19JRl9BTExPV0VEKExheW91dCwgImZpcmVMYXlvdXRSZWxhdGVkTWlsZXN0
b25lc0lmTmVlZGVkOiBGaXJpbmcgZmlyc3QgdmlzdWFsbHkgbm9uLWVtcHR5IGxheW91dCBtaWxl
c3RvbmUgb24gdGhlIG1haW4gZnJhbWUiKTsKKwogICAgICAgICBmcmFtZSgpLmxvYWRlcigpLmRp
ZFJlYWNoTGF5b3V0TWlsZXN0b25lKG1pbGVzdG9uZXNBY2hpZXZlZCk7CiAgICAgfQogfQogCit2
b2lkIEZyYW1lVmlldzo6cmVwb3J0UGFpbnRNaWxlc3RvbmVzVG9QZXJmb3JtYW5jZSgpCit7Cisg
ICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnBhaW50VGlt
aW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fbWlsZXN0b25lc1Bl
bmRpbmdQYWludCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGlmICghZnJhbWUoKS5pc01h
aW5GcmFtZSgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgY29uc3QgYXV0byogd2luZG93
ID0gZnJhbWUoKS5kb2N1bWVudCgpLT5kb21XaW5kb3coKTsKKyAgICBpZiAod2luZG93KQorICAg
ICAgICB3aW5kb3ctPnBlcmZvcm1hbmNlKCkucmVwb3J0UGFpbnRNaWxlc3RvbmVzKG1fbWlsZXN0
b25lc1BlbmRpbmdQYWludCk7Cit9CisKIHZvaWQgRnJhbWVWaWV3OjpmaXJlUGFpbnRSZWxhdGVk
TWlsZXN0b25lc0lmTmVlZGVkKCkKIHsKICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7
CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBPcHRpb25TZXQ8TGF5b3V0
TWlsZXN0b25lPiBtaWxlc3RvbmVzQWNoaWV2ZWQ7CisgICAgcmVwb3J0UGFpbnRNaWxlc3RvbmVz
VG9QZXJmb3JtYW5jZSgpOwogCisgICAgT3B0aW9uU2V0PExheW91dE1pbGVzdG9uZT4gbWlsZXN0
b25lc0FjaGlldmVkOworICAgIAogICAgIC8vIE1ha2Ugc3VyZSB0aGUgcGVuZGluZyBwYWludCBt
aWxlc3RvbmVzIGhhdmUgYWN0dWFsbHkgYmVlbiByZXF1ZXN0ZWQgYmVmb3JlIHdlIHNlbmQgdGhl
bS4KICAgICBpZiAobV9taWxlc3RvbmVzUGVuZGluZ1BhaW50ICYgRGlkRmlyc3RGbHVzaEZvckhl
YWRlckxheWVyKSB7CiAgICAgICAgIGlmIChwYWdlLT5yZXF1ZXN0ZWRMYXlvdXRNaWxlc3RvbmVz
KCkgJiBEaWRGaXJzdEZsdXNoRm9ySGVhZGVyTGF5ZXIpCkBAIC01MTM3LDYgKzUxOTEsMTEgQEAg
dm9pZCBGcmFtZVZpZXc6OmZpcmVQYWludFJlbGF0ZWRNaWxlc3RvbmVzSWZOZWVkZWQoKQogICAg
ICAgICAgICAgbWlsZXN0b25lc0FjaGlldmVkLmFkZChEaWRGaXJzdE1lYW5pbmdmdWxQYWludCk7
CiAgICAgfQogCisgICAgaWYgKG1fbWlsZXN0b25lc1BlbmRpbmdQYWludCAmIERpZEZpcnN0Q29u
dGVudGZ1bFBhaW50KSB7CisgICAgICAgIGlmIChwYWdlLT5yZXF1ZXN0ZWRMYXlvdXRNaWxlc3Rv
bmVzKCkgJiBEaWRGaXJzdENvbnRlbnRmdWxQYWludCkKKyAgICAgICAgICAgIG1pbGVzdG9uZXNB
Y2hpZXZlZC5hZGQoRGlkRmlyc3RDb250ZW50ZnVsUGFpbnQpOworICAgIH0KKwogICAgIG1fbWls
ZXN0b25lc1BlbmRpbmdQYWludCA9IHsgfTsKIAogICAgIGlmIChtaWxlc3RvbmVzQWNoaWV2ZWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCAyYzUwY2JmZTMyMDJjMzZhN2U0YjQxYzM1ZTkw
OGFkNzA1ODFmMzMyLi5kM2I5OTJhZGQ2NjY5MmNkMjllYTQyNjQ1OGE0YWRhYjkxYjExYzVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTczNSw2ICs3MzUsOCBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAgICAgdm9pZCBjb250ZW50c1Jlc2l6ZWQoKSBmaW5hbDsKIAorICAgIGJvb2wgcXVhbGlm
aWVzQXNDb250ZW50ZnVsKCkgY29uc3Q7CisKICNpZiBFTkFCTEUoREFSS19NT0RFX0NTUykKICAg
ICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyRm9yQ29sb3JTY2hlbWUoKSBjb25zdDsKICNlbmRpZgpA
QCAtODE0LDYgKzgxNiw4IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBPdmVycmlkZVZpZXdwb3J0U2l6ZSYgcmhzKSBjb25zdCB7IHJldHVybiByaHMud2lkdGggPT0g
d2lkdGggJiYgcmhzLmhlaWdodCA9PSBoZWlnaHQ7IH0KICAgICB9OwogICAgIHZvaWQgb3ZlcnJp
ZGVWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKE92ZXJyaWRlVmlld3BvcnRTaXplKTsK
KyAgICAKKyAgICB2b2lkIHJlcG9ydFBhaW50TWlsZXN0b25lc1RvUGVyZm9ybWFuY2UoKTsKIAog
ICAgIHN0YXRpYyBNb25vdG9uaWNUaW1lIHNDdXJyZW50UGFpbnRUaW1lU3RhbXA7IC8vIHVzZWQg
Zm9yIGRldGVjdGluZyBkZWNvZGVkIHJlc291cmNlIHRocmFzaCBpbiB0aGUgY2FjaGUKIApAQCAt
OTE4LDkgKzkyMiwxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRTY3JvbGxUb0ZvY3Vz
ZWRFbGVtZW50IHsgZmFsc2UgfTsKIAogICAgIGJvb2wgbV9pc1BhaW50aW5nIHsgZmFsc2UgfTsK
LQorICAgIAogICAgIGJvb2wgbV9jb250ZW50UXVhbGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5IHsg
ZmFsc2UgfTsKICAgICBib29sIG1fZmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0TWlsZXN0b25l
SXNQZW5kaW5nIHsgdHJ1ZSB9OworICAgIAorICAgIGJvb2wgbV9jb250ZW50UXVhbGlmaWVzQXND
b250ZW50ZnVsIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZmlyc3RDb250ZW50ZnVsUGFpbnRNaWxl
c3RvbmVJc1BlbmRpbmcgeyB0cnVlIH07CiAKICAgICBib29sIG1fcmVuZGVyZWRTaWduaWZpY2Fu
dEFtb3VudE9mVGV4dCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1JlYWNoZWRTaWduaWZpY2Fu
dFJlbmRlcmVkVGV4dFRocmVzaG9sZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0xheW91dE1pbGVzdG9uZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9MYXlvdXRN
aWxlc3RvbmUuaAppbmRleCA4YTdjNjdlMzE2MDYxMzA1MzhlMzA5ZjFhM2VlZDJjYmJjNzFkM2U1
Li5hMTQ1MzU1ZWQzMDNjZWU1ZmM5Yjg2ZDJjOTQ3NmRhYzI5MjFiMThiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0xheW91dE1pbGVzdG9uZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvTGF5b3V0TWlsZXN0b25lLmgKQEAgLTQyLDYgKzQyLDcgQEAgZW51bSBMYXlvdXRNaWxl
c3RvbmUgewogICAgIFJlYWNoZWRTZXNzaW9uUmVzdG9yYXRpb25SZW5kZXJUcmVlU2l6ZVRocmVz
aG9sZCAgICA9IDEgPDwgNiwgLy8gRklYTUU6IG9ubHkgaW1wbGVtZW50ZWQgYnkgV0syIGN1cnJl
bnRseS4KICAgICBEaWRSZW5kZXJTaWduaWZpY2FudEFtb3VudE9mVGV4dCAgICAgICAgICAgICAg
ICAgICAgPSAxIDw8IDcsCiAgICAgRGlkRmlyc3RNZWFuaW5nZnVsUGFpbnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gMSA8PCA4LAorICAgIERpZEZpcnN0Q29udGVudGZ1bFBhaW50ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgOQogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAppbmRleCBjYmJhYzIxZDQwMDVi
MWIwZTExODAyMmY3YWExNGE4YmNmZWQ4NTI0Li4zMGEzZTRkMzYwY2M2NmQ1MDNiYzUyNTlhNmZl
YjFmMjUxMWJlYmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcApAQCAtNDIsNiAr
NDIsNyBAQAogI2luY2x1ZGUgIlBlcmZvcm1hbmNlRW50cnkuaCIKICNpbmNsdWRlICJQZXJmb3Jt
YW5jZU5hdmlnYXRpb24uaCIKICNpbmNsdWRlICJQZXJmb3JtYW5jZU9ic2VydmVyLmgiCisjaW5j
bHVkZSAiUGVyZm9ybWFuY2VQYWludFRpbWluZy5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuaCIKICNpbmNsdWRlICJQZXJmb3JtYW5jZVRpbWluZy5oIgogI2luY2x1ZGUg
IlBlcmZvcm1hbmNlVXNlclRpbWluZy5oIgpAQCAtNTksNiArNjAsNyBAQCBQZXJmb3JtYW5jZTo6
UGVyZm9ybWFuY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTW9ub3RvbmljVGlt
ZSB0aW1lT3JpZwogICAgICwgbV90aW1lT3JpZ2luKHRpbWVPcmlnaW4pCiAgICAgLCBtX3BlcmZv
cm1hbmNlVGltZWxpbmVUYXNrUXVldWUoY29udGV4dCkKIHsKKyAgICBXVEZMb2dBbHdheXMoIiVz
ICVkIiwgX19GSUxFX18sIF9fTElORV9fKTsKICAgICBBU1NFUlQobV90aW1lT3JpZ2luKTsKICAg
ICBBU1NFUlQoY29udGV4dCB8fCBtX3BlcmZvcm1hbmNlVGltZWxpbmVUYXNrUXVldWUuaXNDbG9z
ZWQoKSk7CiB9CkBAIC0xMjQsNiArMTI2LDggQEAgVmVjdG9yPFJlZlB0cjxQZXJmb3JtYW5jZUVu
dHJ5Pj4gUGVyZm9ybWFuY2U6OmdldEVudHJpZXMoKSBjb25zdAogICAgICAgICBlbnRyaWVzLmFw
cGVuZFZlY3RvcihtX3VzZXJUaW1pbmctPmdldE1lYXN1cmVzKCkpOwogICAgIH0KIAorICAgIGVu
dHJpZXMuYXBwZW5kVmVjdG9yKG1fcGFpbnRUaW1pbmcpOworCiAgICAgc3RkOjpzb3J0KGVudHJp
ZXMuYmVnaW4oKSwgZW50cmllcy5lbmQoKSwgUGVyZm9ybWFuY2VFbnRyeTo6c3RhcnRUaW1lQ29t
cGFyZUxlc3NUaGFuKTsKICAgICByZXR1cm4gZW50cmllczsKIH0KQEAgLTEzNSw2ICsxMzksOSBA
QCBWZWN0b3I8UmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+PiBQZXJmb3JtYW5jZTo6Z2V0RW50cmll
c0J5VHlwZShjb25zdCBTdHJpbmcmIGVudAogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZShlbnRyeVR5cGUsICJyZXNvdXJjZSIpKQogICAgICAgICBlbnRyaWVzLmFwcGVuZFZl
Y3RvcihtX3Jlc291cmNlVGltaW5nQnVmZmVyKTsKIAorICAgIGlmIChlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShlbnRyeVR5cGUsICJwYWludCIpKQorICAgICAgICBlbnRyaWVzLmFwcGVu
ZFZlY3RvcihtX3BhaW50VGltaW5nKTsKKwogICAgIGlmIChtX3VzZXJUaW1pbmcpIHsKICAgICAg
ICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVudHJ5VHlwZSwgIm1hcmsiKSkK
ICAgICAgICAgICAgIGVudHJpZXMuYXBwZW5kVmVjdG9yKG1fdXNlclRpbWluZy0+Z2V0TWFya3Mo
KSk7CkBAIC0xNTYsNiArMTYzLDE1IEBAIFZlY3RvcjxSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4+
IFBlcmZvcm1hbmNlOjpnZXRFbnRyaWVzQnlOYW1lKGNvbnN0IFN0cmluZyYgbmFtCiAgICAgICAg
ICAgICAgICAgZW50cmllcy5hcHBlbmQocmVzb3VyY2UpOwogICAgICAgICB9CiAgICAgfQorICAg
IAorICAgIGlmIChlbnRyeVR5cGUuaXNOdWxsKCkgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UoZW50cnlUeXBlLCAicGFpbnQiKSkgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGVu
dHJ5IDogbV9wYWludFRpbWluZykgeworICAgICAgICAgICAgaWYgKGVudHJ5LT5uYW1lKCkgPT0g
bmFtZSkgeworICAgICAgICAgICAgICAgIGVudHJpZXMuYXBwZW5kKGVudHJ5KTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KIAogICAgIGlm
IChtX3VzZXJUaW1pbmcpIHsKICAgICAgICAgaWYgKGVudHJ5VHlwZS5pc051bGwoKSB8fCBlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbnRyeVR5cGUsICJtYXJrIikpCkBAIC0xODAsNiAr
MTk2LDIzIEBAIHZvaWQgUGVyZm9ybWFuY2U6OnNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSh1
bnNpZ25lZCBzaXplKQogICAgIG1fcmVzb3VyY2VUaW1pbmdCdWZmZXJGdWxsRmxhZyA9IGZhbHNl
OwogfQogCit2b2lkIFBlcmZvcm1hbmNlOjptYXJrUGFpbnRUaW1pbmcoUmVmUHRyPFBlcmZvcm1h
bmNlUGFpbnRUaW1pbmc+JiYgZW50cnkpCit7CisgICAgcXVldWVFbnRyeSgqZW50cnkpOworICAg
IG1fcGFpbnRUaW1pbmcuYXBwZW5kKFdURk1vdmUoZW50cnkpKTsKK30KKwordm9pZCBQZXJmb3Jt
YW5jZTo6cmVwb3J0UGFpbnRNaWxlc3RvbmVzKE9wdGlvblNldDxMYXlvdXRNaWxlc3RvbmU+IG1p
bGVzdG9uZXMpCit7CisgICAgY29uc3QgYXV0byB0aW1lc3RhbXAgPSBub3coKTsKKworICAgIC8v
IFdlYktpdCdzIEZpcnN0TWVhbmluZ2Z1bFBhaW50IGlzIGFjdHVhbGx5IGVxdWl2YWxlbnQgdG8g
Zmlyc3QtcGFpbnQgaW4gdGhlIHNwZWMuCisgICAgaWYgKG1pbGVzdG9uZXMuY29udGFpbnMoTGF5
b3V0TWlsZXN0b25lOjpEaWRGaXJzdE1lYW5pbmdmdWxQYWludCkpCisgICAgICAgIG1hcmtQYWlu
dFRpbWluZyhQZXJmb3JtYW5jZVBhaW50VGltaW5nOjpjcmVhdGVGaXJzdFBhaW50KHRpbWVzdGFt
cCkpOworICAgIGlmIChtaWxlc3RvbmVzLmNvbnRhaW5zKExheW91dE1pbGVzdG9uZTo6RGlkRmly
c3RDb250ZW50ZnVsUGFpbnQpKQorICAgICAgICBtYXJrUGFpbnRUaW1pbmcoUGVyZm9ybWFuY2VQ
YWludFRpbWluZzo6Y3JlYXRlRmlyc3RDb250ZW50ZnVsUGFpbnQodGltZXN0YW1wKSk7Cit9CisK
IHZvaWQgUGVyZm9ybWFuY2U6OmFkZFJlc291cmNlVGltaW5nKFJlc291cmNlVGltaW5nJiYgcmVz
b3VyY2VUaW1pbmcpCiB7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CkBA
IC0zMTMsNiArMzQ2LDcgQEAgdm9pZCBQZXJmb3JtYW5jZTo6cmVtb3ZlQWxsT2JzZXJ2ZXJzKCkK
IAogdm9pZCBQZXJmb3JtYW5jZTo6cmVnaXN0ZXJQZXJmb3JtYW5jZU9ic2VydmVyKFBlcmZvcm1h
bmNlT2JzZXJ2ZXImIG9ic2VydmVyKQogeworICAgIFdURkxvZ0Fsd2F5cygiJXMgJWQiLCBfX0ZJ
TEVfXywgX19MSU5FX18pOwogICAgIG1fb2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIpOwogfQogCkBA
IC0zMjMsNiArMzU3LDcgQEAgdm9pZCBQZXJmb3JtYW5jZTo6dW5yZWdpc3RlclBlcmZvcm1hbmNl
T2JzZXJ2ZXIoUGVyZm9ybWFuY2VPYnNlcnZlciYgb2JzZXJ2ZXIpCiAKIHZvaWQgUGVyZm9ybWFu
Y2U6OnF1ZXVlRW50cnkoUGVyZm9ybWFuY2VFbnRyeSYgZW50cnkpCiB7CisgICAgV1RGTG9nQWx3
YXlzKCJRdWV1ZWluZyBwZXJmb3JtYW5jZSBlbnRyeSAlcyAlZCIsIGVudHJ5Lm5hbWUoKS51dGY4
KCkuZGF0YSgpLCBlbnRyeS50eXBlKCkpOwogICAgIGJvb2wgc2hvdWxkU2NoZWR1bGVUYXNrID0g
ZmFsc2U7CiAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKSB7CiAgICAgICAg
IGlmIChvYnNlcnZlci0+dHlwZUZpbHRlcigpLmNvbnRhaW5zKGVudHJ5LnR5cGUoKSkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2UuaAppbmRleCBkNWIxMWMyMWY3ZTY5NzJmMjEyMDdjYmE3NTc2
Mzg5MWE3Y2I1MWYzLi41NTI2NDQxOGZjNWY3MzY3ZmQ3MzQ0ZjJiYjNkYTk0MTU5Njk1ZmE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCkBAIC0zNyw3ICszNyw5IEBACiAjaW5jbHVkZSAi
RXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIkdlbmVy
aWNUYXNrUXVldWUuaCIKKyNpbmNsdWRlICJMYXlvdXRNaWxlc3RvbmUuaCIKICNpbmNsdWRlIDx3
dGYvTGlzdEhhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNDUsNiArNDcsNyBAQCBjbGFzcyBMb2FkVGltaW5nOwogY2xhc3Mg
UGVyZm9ybWFuY2VFbnRyeTsKIGNsYXNzIFBlcmZvcm1hbmNlTmF2aWdhdGlvbjsKIGNsYXNzIFBl
cmZvcm1hbmNlT2JzZXJ2ZXI7CitjbGFzcyBQZXJmb3JtYW5jZVBhaW50VGltaW5nOwogY2xhc3Mg
UGVyZm9ybWFuY2VUaW1pbmc7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgUmVzb3Vy
Y2VUaW1pbmc7CkBAIC03Niw2ICs3OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyTWVhc3Vy
ZXMoY29uc3QgU3RyaW5nJiBtZWFzdXJlTmFtZSk7CiAKICAgICB2b2lkIGFkZFJlc291cmNlVGlt
aW5nKFJlc291cmNlVGltaW5nJiYpOworICAgIAorICAgIHZvaWQgcmVwb3J0UGFpbnRNaWxlc3Rv
bmVzKE9wdGlvblNldDxMYXlvdXRNaWxlc3RvbmU+KTsKIAogICAgIHZvaWQgcmVtb3ZlQWxsT2Jz
ZXJ2ZXJzKCk7CiAgICAgdm9pZCByZWdpc3RlclBlcmZvcm1hbmNlT2JzZXJ2ZXIoUGVyZm9ybWFu
Y2VPYnNlcnZlciYpOwpAQCAtMTAzLDYgKzEwOCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc1Jl
c291cmNlVGltaW5nQnVmZmVyRnVsbCgpIGNvbnN0OwogICAgIHZvaWQgcmVzb3VyY2VUaW1pbmdC
dWZmZXJGdWxsVGltZXJGaXJlZCgpOwogCisgICAgdm9pZCBtYXJrUGFpbnRUaW1pbmcoUmVmUHRy
PFBlcmZvcm1hbmNlUGFpbnRUaW1pbmc+JiYpOworCiAgICAgdm9pZCBxdWV1ZUVudHJ5KFBlcmZv
cm1hbmNlRW50cnkmKTsKIAogICAgIG11dGFibGUgUmVmUHRyPFBlcmZvcm1hbmNlTmF2aWdhdGlv
bj4gbV9uYXZpZ2F0aW9uOwpAQCAtMTIxLDYgKzEyOCw3IEBAIHByaXZhdGU6CiAKICAgICBNb25v
dG9uaWNUaW1lIG1fdGltZU9yaWdpbjsKIAorICAgIFZlY3RvcjxSZWZQdHI8UGVyZm9ybWFuY2VQ
YWludFRpbWluZz4sIDI+IG1fcGFpbnRUaW1pbmc7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJU
aW1pbmc+IG1fdXNlclRpbWluZzsKIAogICAgIEdlbmVyaWNUYXNrUXVldWU8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dD4gbV9wZXJmb3JtYW5jZVRpbWVsaW5lVGFza1F1ZXVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5jcHAKaW5kZXggNjlhNjBkYTUxZWNhNDgyOTA4MDM3YjZi
MGQ4OGU3MjAxYzNiYjcxNy4uZWUzMjNmMjI3ODBjMTM1OWIwMjJmYjQxOWJjZjJiNjBkZjg3YjZh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnkuY3BwCkBAIC02Niw2ICs2
NiwxMSBAQCBPcHRpb25hbDxQZXJmb3JtYW5jZUVudHJ5OjpUeXBlPiBQZXJmb3JtYW5jZUVudHJ5
OjpwYXJzZUVudHJ5VHlwZVN0cmluZyhjb25zdCBTdAogICAgICAgICAgICAgcmV0dXJuIE9wdGlv
bmFsPFR5cGU+KFR5cGU6OlJlc291cmNlKTsKICAgICB9CiAKKyAgICAvLyBpZiAoUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5wYWludFRpbWluZ0VuYWJsZWQoKSkgewor
ICAgICAgICBpZiAoZW50cnlUeXBlID09ICJwYWludCIpCisgICAgICAgICAgICByZXR1cm4gT3B0
aW9uYWw8VHlwZT4oVHlwZTo6UGFpbnQpOworICAgIC8vIH0KKwogICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VF
bnRyeS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmgKaW5kZXggNTEy
MmZlOWQ4YTliNzQ0N2QwZjEwNjI1MWY5YzUzMzhlZTIyY2IyZC4uM2JkYjU3ZmFlODkyN2FkYjhm
MGYzZTFkZGExNjJmYjhiZWM2YTBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZUVudHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVu
dHJ5LmgKQEAgLTUzLDYgKzUzLDcgQEAgcHVibGljOgogICAgICAgICBNYXJrID0gMSA8PCAxLAog
ICAgICAgICBNZWFzdXJlID0gMSA8PCAyLAogICAgICAgICBSZXNvdXJjZSA9IDEgPDwgMywKKyAg
ICAgICAgUGFpbnQgPSAxIDw8IDQKICAgICB9OwogCiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlOyB9CkBAIC02Miw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzUmVz
b3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6UmVzb3VyY2U7IH0KICAgICBi
b29sIGlzTWFyaygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpNYXJrOyB9CiAgICAg
Ym9vbCBpc01lYXN1cmUoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gVHlwZTo6TWVhc3VyZTsg
fQorICAgIGJvb2wgaXNQYWludCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUeXBlOjpQYWlu
dDsgfQogCiAgICAgc3RhdGljIGJvb2wgc3RhcnRUaW1lQ29tcGFyZUxlc3NUaGFuKGNvbnN0IFJl
ZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiYgYSwgY29uc3QgUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+
JiBiKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VP
YnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlT2JzZXJ2ZXIuY3Bw
CmluZGV4IDkyNDM1MDQwMmJjMjYxYmQwYWU5ZTc0NmE3NTAzZjQwNGNhZjgzN2EuLjZjMWRjMmYw
MjRiM2ExODk3YTJhYzM0ZmU5OWI4OGQ4YWVjNjI4NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2VPYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZU9ic2VydmVyLmNwcApAQCAtMTIwLDYgKzEyMCw3IEBAIFZlY3RvcjxTdHJp
bmc+IFBlcmZvcm1hbmNlT2JzZXJ2ZXI6OnN1cHBvcnRlZEVudHJ5VHlwZXMoKQogICAgICAgICAv
LyAibmF2aWdhdGlvbiJfcywKICAgICAgICAgIm1hcmsiX3MsCiAgICAgICAgICJtZWFzdXJlIl9z
LAorICAgICAgICAicGFpbnQiX3MsCiAgICAgICAgICJyZXNvdXJjZSJfcwogICAgIH07CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUGFpbnRUaW1pbmcuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VQYWludFRpbWluZy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFkMmNlMjc0MDdhZWZkYzM3MTIxNWFjZGE5ZTIxOThmMTYxZTliZGYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUGFpbnRUaW1pbmcuaApAQCAtMCww
ICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIFdpa2lNZWRpYSBGb3VuZGF0aW9u
LiBBbGwgUmlnaHRzIFJlc2VydmUuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiUGVyZm9ybWFuY2VFbnRyeS5oIgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFBlcmZvcm1hbmNlUGFpbnRUaW1pbmcgZmluYWwgOiBwdWJsaWMgUGVyZm9ybWFuY2VF
bnRyeSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQZXJmb3JtYW5jZVBhaW50VGltaW5nPiBj
cmVhdGVGaXJzdFBhaW50KGRvdWJsZSB0aW1lU3RhbXApCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBQZXJmb3JtYW5jZVBhaW50VGltaW5nKCJmaXJzdC1wYWludCJfcywgdGlt
ZVN0YW1wKSk7CisgICAgfQorICAgIHN0YXRpYyBSZWY8UGVyZm9ybWFuY2VQYWludFRpbWluZz4g
Y3JlYXRlRmlyc3RDb250ZW50ZnVsUGFpbnQoZG91YmxlIHRpbWVTdGFtcCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBlcmZvcm1hbmNlUGFpbnRUaW1pbmcoImZpcnN0LWNv
bnRlbnRmdWwtcGFpbnQiX3MsIHRpbWVTdGFtcCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBQ
ZXJmb3JtYW5jZVBhaW50VGltaW5nKGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIHRpbWVTdGFt
cCkKKyAgICAgICAgOiBQZXJmb3JtYW5jZUVudHJ5KFBlcmZvcm1hbmNlRW50cnk6OlR5cGU6OlBh
aW50LCBuYW1lLCAicGFpbnQiX3MsIHRpbWVTdGFtcCwgdGltZVN0YW1wKQorICAgIHsKKyAgICB9
CisgICAgCisgICAgflBlcmZvcm1hbmNlUGFpbnRUaW1pbmcoKSA9IGRlZmF1bHQ7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2Vi
Q29yZTo6UGVyZm9ybWFuY2VQYWludFRpbWluZykKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29u
c3QgV2ViQ29yZTo6UGVyZm9ybWFuY2VFbnRyeSYgZW50cnkpIHsgcmV0dXJuIGVudHJ5LmlzUGFp
bnQoKTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVBhaW50VGltaW5nLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VQYWludFRpbWluZy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU5NDZjZGU1YmE2
NDNmZTU4NjFhZTIyZDhkYTJhMzNiNzJjMDk2MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VQYWludFRpbWluZy5pZGwKQEAgLTAsMCArMSwzOSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8v
IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wYWludC10aW1pbmcvCisKK3R5cGVkZWYgZG91YmxlIERP
TUhpZ2hSZXNUaW1lU3RhbXA7CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVBhaW50VGltaW5n
LAorICAgIEV4cG9zZWQ9KFdpbmRvdyksCitdIGludGVyZmFjZSBQZXJmb3JtYW5jZVBhaW50VGlt
aW5nIDogUGVyZm9ybWFuY2VFbnRyeSB7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBhYTI5YjgzNTVmYjU4ZTEzMTExNDA0NTE2YzQwNjcw
MTM3OGExYjIwLi45NmJmNzQ5ZjkyM2QxMjE4OGUwYjlmMjA2NTAzOTk2NmQ1MjA3ZmIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtNjIsNiAr
NjIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VyVGltaW5nRW5hYmxlZChib29sIGlzRW5h
YmxlZCkgeyBtX2lzVXNlclRpbWluZ0VuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIHVz
ZXJUaW1pbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1VzZXJUaW1pbmdFbmFibGVkOyB9
CiAKKyAgICB2b2lkIHNldFBhaW50VGltaW5nRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lz
UGFpbnRUaW1pbmdFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9vbCBwYWludFRpbWluZ0Vu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUGFpbnRUaW1pbmdFbmFibGVkOyB9CisKICAgICBi
b29sIHBlcmZvcm1hbmNlVGltZWxpbmVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gcmVzb3VyY2VU
aW1pbmdFbmFibGVkKCkgfHwgdXNlclRpbWluZ0VuYWJsZWQoKTsgfQogCiAgICAgdm9pZCBzZXRT
aGFkb3dET01FbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1faXNTaGFkb3dET01FbmFibGVkID0g
aXNFbmFibGVkOyB9CkBAIC00MTQsNiArNDE3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNM
aW5rUHJlbG9hZEVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2lzTGlua1ByZWZldGNoRW5h
YmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzTWVkaWFQcmVsb2FkaW5nRW5hYmxlZCB7IGZh
bHNlIH07CisgICAgYm9vbCBtX2lzUGFpbnRUaW1pbmdFbmFibGVkIHsgZmFsc2UgfTsKICAgICBi
b29sIG1faXNSZXNvdXJjZVRpbWluZ0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1Vz
ZXJUaW1pbmdFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNJbnRlcmFjdGl2ZUZvcm1W
YWxpZGF0aW9uRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbAppbmRleCAwYTJjODRlNzYxYmY3MGM5MjIzMjQwYTRhMDk4M2U1MzhjM2E4Y2M0
Li42NmNiMmQ0NWZjNDU0ZDA1NTNhODUxZDk4N2E5ZWViODAzMzI4ZDIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTgzOSw2ICs4MzksMTMgQEAgVXNlclRp
bWluZ0VuYWJsZWQ6CiAgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBVc2VyVGlt
aW5nIEFQSSIKICAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKIAorUGFp
bnRUaW1pbmdFbmFibGVkOgorICB0eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogdHJ1ZQorICBo
dW1hblJlYWRhYmxlTmFtZTogIlBhaW50IFRpbWluZyIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0
aW9uOiAiRW5hYmxlIFBhaW50IFRpbWluZyBBUEkiCisgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzCisKIEJlYWNvbkFQSUVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVm
YXVsdFZhbHVlOiB0cnVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXMuY3BwCmluZGV4IGRlMzM4MjNjN2YyOTBjODIyM2FhMTVkN2ZlZGM3YzQyMWYyOTk4
ZTYuLmMzNTNkNmE1ZTYxZjEwMmEzNGNmMDllMGFjOTZhOGM4MjM4MDlhNzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0xODE5LDYg
KzE4MTksMTYgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0VXNlclRpbWluZ0VuYWJsZWQoV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2Vz
UmVmKS0+dXNlclRpbWluZ0VuYWJsZWQoKTsKIH0KIAordm9pZCBXS1ByZWZlcmVuY2VzU2V0UGFp
bnRUaW1pbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxh
ZykKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRQYWludFRpbWluZ0VuYWJsZWQo
ZmxhZyk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldFBhaW50VGltaW5nRW5hYmxlZChXS1By
ZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVy
ZW5jZXNSZWYpLT5wYWludFRpbWluZ0VuYWJsZWQoKTsKK30KKwogdm9pZCBXS1ByZWZlcmVuY2Vz
U2V0UmVzb3VyY2VUaW1pbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYs
IGJvb2wgZmxhZykKIHsKICAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRSZXNvdXJjZVRp
bWluZ0VuYWJsZWQoZmxhZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAppbmRleCBkOWNhYjlkYzBlNzQ5MzliYjUw
Zjg5NjcwMTZiZDYzYmFlNjQ0ZmEzLi5hZmQ5OTBlNmIwZDRmNGM1ZTlkODM5MWYyODMwNDVjNTI0
ZGZmODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzUmVmUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKQEAgLTQ5OSw2ICs0OTksMTAgQEAgV0tfRVhQT1JUIGJv
b2wgV0tQcmVmZXJlbmNlc0dldFdlYlNoYXJlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKIFdL
X0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRVc2VyVGltaW5nRW5hYmxlZChXS1ByZWZlcmVu
Y2VzUmVmLCBib29sIGZsYWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFVzZXJU
aW1pbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwogCisvLyBEZWZhdWx0cyB0byBmYWxzZQor
V0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFBhaW50VGltaW5nRW5hYmxlZChXS1ByZWZl
cmVuY2VzUmVmLCBib29sIGZsYWcpOworV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFBh
aW50VGltaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKKwogLy8gRGVmYXVsdHMgdG8gZmFs
c2UKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRSZXNvdXJjZVRpbWluZ0VuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5j
ZXNHZXRSZXNvdXJjZVRpbWluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggM2I0OGQ5ZTAxNDJlZTJjN2I3MjJmYWNjYzUw
MzkxN2Q1MDBmODdmMi4uMGVhYTJhNjI2MTNkNmQ3Yjc2NGExOTdjMTI3OWZjOWYyM2EzY2VkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtMTIyLDYgKzEyMiw3IEBA
IHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnVwZGF0ZVByZWZlcmVuY2VzU3Rv
cmUoY29uc3QgV2ViUHJlZmVyZW5jZXNTCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5zZXRDYWNoZUFQSUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5OjpjYWNoZUFQSUVuYWJsZWRLZXkoKSkpOwogICAgIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0RmV0Y2hBUElFbmFibGVkKHN0b3Jl
LmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZmV0Y2hBUElFbmFibGVkS2V5
KCkpKTsKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFVz
ZXJUaW1pbmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6dXNlclRpbWluZ0VuYWJsZWRLZXkoKSkpOworICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuc2V0UGFpbnRUaW1pbmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1
ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cGFpbnRUaW1pbmdFbmFibGVkS2V5KCkpKTsKICAg
ICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFJlc291cmNlVGlt
aW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnJl
c291cmNlVGltaW5nRW5hYmxlZEtleSgpKSk7CiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5zZXRGZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWQoc3RvcmUuZ2V0Qm9v
bFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpmZXRjaEFQSUtlZXBBbGl2ZUVuYWJsZWRL
ZXkoKSkpOwogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0
UmVzdHJpY3RlZEhUVFBSZXNwb25zZUFjY2VzcyhzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2Vi
UHJlZmVyZW5jZXNLZXk6OnJlc3RyaWN0ZWRIVFRQUmVzcG9uc2VBY2Nlc3NLZXkoKSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZUtleXNQcml2YXRlLmgKaW5kZXggMTMxN2I0OWYxNmY2NzJlMWUxN2ZmMjljNGJiZmRlZmU4MmI0
Y2M5ZC4uNTU4NTAzMzc1YWI1ZGY0MGI0NWQ4ODkyZjgwMzgwYmE0ZmE4MmRhZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCkBAIC0yNjIsNiArMjYyLDcgQEAKICNkZWZpbmUgV2ViS2l0QXR0YWNobWVu
dEVsZW1lbnRFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEF0dGFjaG1lbnRFbGVtZW50RW5h
YmxlZCIKICNkZWZpbmUgV2ViS2l0SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbmFibGVkUHJlZmVyZW5j
ZUtleSBAIldlYktpdEludGVyc2VjdGlvbk9ic2VydmVyRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0
TWVudUl0ZW1FbGVtZW50RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNZW51SXRlbUVsZW1l
bnRFbmFibGVkIgorI2RlZmluZSBXZWJLaXRQYWludFRpbWluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0UGFpbnRUaW1pbmdFbmFibGVkIgogI2RlZmluZSBXZWJLaXRVc2VyVGltaW5nRW5h
YmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRVc2VyVGltaW5nRW5hYmxlZCIKICNkZWZpbmUgV2Vi
S2l0UmVzb3VyY2VUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFJlc291cmNlVGlt
aW5nRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCBlMjBlZTc0NDVjYTliMzUyZmE2N2Q4NWYzNDFmMjIx
MmEwZDYyMGU1Li4zMTQwNWZhODY4ZGZmNmVhNTQ0NGM1YTFlOTIzYWIyYzQ2N2I2N2Y1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0K
QEAgLTY4NSw2ICs2ODUsNyBAQCArICh2b2lkKWluaXRpYWxpemUKICNpZiBFTkFCTEUoSU5URVJT
RUNUSU9OX09CU0VSVkVSKQogICAgICAgICBATk8sIFdlYktpdEludGVyc2VjdGlvbk9ic2VydmVy
RW5hYmxlZFByZWZlcmVuY2VLZXksCiAjZW5kaWYKKyAgICAgICAgQE5PLCBXZWJLaXRQYWludFRp
bWluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBATk8sIFdlYktpdFVzZXJUaW1pbmdF
bmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQE5PLCBXZWJLaXRSZXNvdXJjZVRpbWluZ0Vu
YWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBATk8sIFdlYktpdE1lZGlhVXNlckdlc3R1cmVJ
bmhlcml0c0Zyb21Eb2N1bWVudCwKQEAgLTMzMjksNiArMzMzMCwxNiBAQCAtICh2b2lkKXNldFVz
ZXJUaW1pbmdFbmFibGVkOihCT09MKWZsYWcKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcg
Zm9yS2V5OldlYktpdFVzZXJUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJP
T0wpcGFpbnRUaW1pbmdFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JL
ZXk6V2ViS2l0UGFpbnRUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQp
c2V0UGFpbnRUaW1pbmdFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZh
bHVlOmZsYWcgZm9yS2V5OldlYktpdFBhaW50VGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOwor
fQorCiAtIChCT09MKXJlc291cmNlVGltaW5nRW5hYmxlZAogewogICAgIHJldHVybiBbc2VsZiBf
Ym9vbFZhbHVlRm9yS2V5OldlYktpdFJlc291cmNlVGltaW5nRW5hYmxlZFByZWZlcmVuY2VLZXld
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmgKaW5kZXggM2JjMzc0MWYzN2M5ZDMxNzM4NGRlY2IyY2M2OGYxNWNmNGQ5
YmQzOS4uYjE0MzAzZjkzYTdlMDJkZDQ0Yzk0NGUzYzlhOTRiM2FlNGMyYWFkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oCkBAIC02NjMsNiArNjYzLDcgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNl
c0NhY2hlTW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb24gV0VCS0lUX0RFUFIKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGtleWdlbkVsZW1lbnRFbmFibGVkOwogQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgdXNlclRpbWluZ0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCByZXNvdXJjZVRpbWluZ0VuYWJsZWQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBw
YWludFRpbWluZ0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBsaW5rUHJlbG9h
ZEVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBtZWRpYVVzZXJHZXN0dXJlSW5o
ZXJpdHNGcm9tRG9jdW1lbnQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBpc1NlY3VyZUNv
bnRleHRBdHRyaWJ1dGVFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCmluZGV4IDI4OTc5ZThhNmY1NGQ0OTM0N2JhMGY5MzU3Mzc0YjJlODNjN2M1OWYu
LjNjZTBjMjI3ZjA4NGYxZDgzYWFkNGRkOWY1YmU1Yzk4OTE1YmMxZGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTMxOTcsNiArMzE5Nyw3IEBAIC0g
KHZvaWQpX3ByZWZlcmVuY2VzQ2hhbmdlZDooV2ViUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcwog
CiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRVc2VyVGlt
aW5nRW5hYmxlZChwcmVmZXJlbmNlcy51c2VyVGltaW5nRW5hYmxlZCk7CiAgICAgUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRSZXNvdXJjZVRpbWluZ0VuYWJsZWQo
cHJlZmVyZW5jZXMucmVzb3VyY2VUaW1pbmdFbmFibGVkKTsKKyAgICBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFBhaW50VGltaW5nRW5hYmxlZChwcmVmZXJlbmNl
cy5wYWludFRpbWluZ0VuYWJsZWQpOwogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuc2V0TGlua1ByZWxvYWRFbmFibGVkKHByZWZlcmVuY2VzLmxpbmtQcmVsb2Fk
RW5hYmxlZCk7CiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5z
ZXRNZWRpYVByZWxvYWRpbmdFbmFibGVkKHByZWZlcmVuY2VzLm1lZGlhUHJlbG9hZGluZ0VuYWJs
ZWQpOwogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0SXNT
ZWN1cmVDb250ZXh0QXR0cmlidXRlRW5hYmxlZChwcmVmZXJlbmNlcy5pc1NlY3VyZUNvbnRleHRB
dHRyaWJ1dGVFbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0lu
dGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCmluZGV4IGRmZmQ5NGRk
ODZjMmZmZDcwNjcwOGFjNzcwNzc2Y2ViMDMwZWRiNDkuLjQzMzhjZWQ4ZDliNzg4NTcwYTI0ODZh
YWNiYjc4OTNhNDVhMGY4ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0lu
dGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApAQCAtMTk3LDYg
KzE5Nyw4IEBAIGludGVyZmFjZSBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNCA6IElXZWJQcmVmZXJl
bmNlc1ByaXZhdGUzCiAgICAgSFJFU1VMVCBzZXRVc2VyVGltaW5nRW5hYmxlZChbaW5dIEJPT0wg
ZW5hYmxlZCk7CiAgICAgSFJFU1VMVCByZXNvdXJjZVRpbWluZ0VuYWJsZWQoW291dCwgcmV0dmFs
XSBCT09MKik7CiAgICAgSFJFU1VMVCBzZXRSZXNvdXJjZVRpbWluZ0VuYWJsZWQoW2luXSBCT09M
IGVuYWJsZWQpOworICAgIEhSRVNVTFQgcGFpbnRUaW1pbmdFbmFibGVkKFtvdXQsIHJldHZhbF0g
Qk9PTCopOworICAgIEhSRVNVTFQgc2V0UGFpbnRUaW1pbmdFbmFibGVkKFtpbl0gQk9PTCBlbmFi
bGVkKTsKICAgICBIUkVTVUxUIGxpbmtQcmVsb2FkRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wq
KTsKICAgICBIUkVTVUxUIHNldExpbmtQcmVsb2FkRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7
CiAgICAgSFJFU1VMVCBtZWRpYVByZWxvYWRpbmdFbmFibGVkKFtvdXQsIHJldHZhbF0gQk9PTCop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaAppbmRleCAxN2JjZjliZTE4ZWJhODIzNDMyM2Q0YmQyY2E5MjUxZmI3YjBmZjIyLi4yYWYx
NDBlNTVhOGI1Nzk2Njg1MGY4NTc1MDk2YjkwN2E0ZjBhNTY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTk3LDYgKzE5
Nyw4IEBACiAKICNkZWZpbmUgV2ViS2l0VXNlclRpbWluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJX
ZWJLaXRVc2VyVGltaW5nRW5hYmxlZCIKIAorI2RlZmluZSBXZWJLaXRQYWludFRpbWluZ0VuYWJs
ZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRQYWludFRpbWluZ0VuYWJsZWQiCisKICNkZWZpbmUgV2Vi
S2l0UmVzb3VyY2VUaW1pbmdFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0UmVzb3VyY2VUaW1p
bmdFbmFibGVkIgogCiAjZGVmaW5lIFdlYktpdExpbmtQcmVsb2FkRW5hYmxlZFByZWZlcmVuY2VL
ZXkgIldlYktpdExpbmtQcmVsb2FkRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQ
cmVmZXJlbmNlcy5oCmluZGV4IGEzMWJhMDNhODI1NDcwZDgxMzM0Y2RmNjQzOGY1MTdmNGFkZjA5
MWYuLjMxOTQyMGMyZWUxMGRmMzVhZmQyMzhiNmUzNzZhOGM1OTdlNWNhM2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaApAQCAtMjUxLDYgKzI1MSw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0VXNlclRpbWluZ0Vu
YWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJlc291
cmNlVGltaW5nRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHNldFJlc291cmNlVGltaW5nRW5hYmxlZChCT09MKTsKKyAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcGFpbnRUaW1pbmdFbmFibGVkKF9PdXRfIEJPT0wq
KTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0UGFpbnRUaW1pbmdF
bmFibGVkKEJPT0wpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBsaW5r
UHJlbG9hZEVuYWJsZWQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBzZXRMaW5rUHJlbG9hZEVuYWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIG1lZGlhUHJlbG9hZGluZ0VuYWJsZWQoX091dF8gQk9PTCop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCA2ZDFhYzJjMmQ3OTAyM2FmMzAy
MWJiZDFiMjU4ZjdiMTdjZjM3NDQ3Li5lOGU5YmRlMmJhNjZmODFiMmU2NTRkNjRkMGFkODc3MTk5
MjU2NjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtNTI4MSw2ICs1Mjgx
LDExIEBAIEhSRVNVTFQgV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKElXZWJOb3Rp
ZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAgICAgICAgcmV0dXJuIGhyOwogICAgIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0VXNlclRpbWluZ0VuYWJsZWQoISFl
bmFibGVkKTsKIAorICAgIGhyID0gcHJlZnNQcml2YXRlLT5wYWludFRpbWluZ0VuYWJsZWQoJmVu
YWJsZWQpOworICAgIGlmIChGQUlMRUQoaHIpKQorICAgICAgICByZXR1cm4gaHI7CisgICAgUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRQYWludFRpbWluZ0VuYWJs
ZWQoISFlbmFibGVkKTsKKwogICAgIGhyID0gcHJlZnNQcml2YXRlLT5yZXNvdXJjZVRpbWluZ0Vu
YWJsZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWYy
ZWI3YWQ5ZGQ1MzAwYzY0OTE0M2RkZTFkZmZlY2UwOWJkZThhMy4uMGM2NGNhOTg3MmJjNzhiMmE2
YmYxODY3Mjk0OTJhMjUyNWNkZDliNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTAzLTAxICBOb2FtIFJvc2Vu
dGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbV2ViIFRpbWluZ10gSW1wbGVtZW50
IFBhaW50IFRpbWluZyAxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODAxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFBhaW50IEFQSTogYXR0ZW1wdCAxCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChyZXNldFdlYlByZWZlcmVuY2VzVG9Db25z
aXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRy
ZWUuY3BwOgorICAgICAgICAocmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVz
KToKKwogMjAyMC0wMi0yNyAgSmFjb2IgVXBob2ZmICA8amFjb2JfdXBob2ZmQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjU3NTMwLgpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IGJmYjIwMmViYmE1NjZkNzE2ZDFl
M2NkNzEzZGRlNTA0ZTBiNDVlYzIuLmMxYjg3NWRkYWQ5ZDQxZTczMWNjNjBiYjc5NGI4ZjBlMDU0
MTQ0MmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAg
LTEwMDQsNiArMTAwNCw3IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNp
c3RlbnRWYWx1ZXMoKQogICAgIFtwcmVmZXJlbmNlcyBzZXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5h
YmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRSZXNvdXJjZVRpbWluZ0VuYWJsZWQ6WUVT
XTsKICAgICBbcHJlZmVyZW5jZXMgc2V0VXNlclRpbWluZ0VuYWJsZWQ6WUVTXTsKKyAgICBbcHJl
ZmVyZW5jZXMgc2V0UGFpbnRUaW1pbmdFbmFibGVkOllFU107CiAKICAgICBbcHJlZmVyZW5jZXMg
c2V0Q2FjaGVBUElFbmFibGVkOk5PXTsKICAgICBwcmVmZXJlbmNlcy5tZWRpYUNhcGFiaWxpdGll
c0VuYWJsZWQgPSBZRVM7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVt
cFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcAppbmRleCAwYjdjNmU5N2FjMzEwYmM4MmNkMjYyMzJmOWQwNGIzNTAwMzNiYjQxLi4xZTNm
ZTA5ZDNiZWY2YTc4ZDExZjhlNGEwMTgzMGI5M2M0Y2ZlMzA4IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTg5OSw2ICs4OTksNyBAQCBzdGF0aWMg
dm9pZCByZXNldFdlYlByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKElXZWJQcmVmZXJlbmNl
cyogcHJlZmVyZW5jZXMpCiAgICAgcHJlZnNQcml2YXRlLT5zZXRDdXN0b21FbGVtZW50c0VuYWJs
ZWQoVFJVRSk7CiAgICAgcHJlZnNQcml2YXRlLT5zZXRSZXNvdXJjZVRpbWluZ0VuYWJsZWQoVFJV
RSk7CiAgICAgcHJlZnNQcml2YXRlLT5zZXRVc2VyVGltaW5nRW5hYmxlZChUUlVFKTsKKyAgICBw
cmVmc1ByaXZhdGUtPnNldFBhaW50VGltaW5nRW5hYmxlZChUUlVFKTsKICAgICBwcmVmc1ByaXZh
dGUtPnNldERhdGFUcmFuc2Zlckl0ZW1zRW5hYmxlZChUUlVFKTsKICAgICBwcmVmc1ByaXZhdGUt
PmNsZWFyTmV0d29ya0xvYWRlclNlc3Npb24oKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAppbmRleCAyMTNiN2ViNzEzNDZmMGVmYTRmMTQ4Y2MzZGM1OTliMDQ0
YTJmMTI0Li4wOTkzMWJlYWMwMTllOTVkYTNlZGZlNjBlMjQyMDhiNWY4NDJiNzE0IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtOTIyLDYgKzkyMiw3IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMo
Y29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvCiAgICAgV0tQcmVmZXJlbmNlc1NldEZldGNoQVBJS2Vl
cEFsaXZlRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldFJl
c291cmNlVGltaW5nRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAgV0tQcmVmZXJlbmNl
c1NldFVzZXJUaW1pbmdFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKKyAgICBXS1ByZWZlcmVu
Y2VzU2V0UGFpbnRUaW1pbmdFbmFibGVkKHByZWZlcmVuY2VzLCB0cnVlKTsKICAgICBXS1ByZWZl
cmVuY2VzU2V0TWVkaWFQcmVsb2FkaW5nRW5hYmxlZChwcmVmZXJlbmNlcywgdHJ1ZSk7CiAgICAg
V0tQcmVmZXJlbmNlc1NldE1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUocHJlZmVyZW5jZXMsIHRy
dWUpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5
c0lubGluZUF0dHJpYnV0ZShwcmVmZXJlbmNlcywgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQwYjQ2MzZhNDM0
YzVhZGM3NDMyMGU0YjFkMjM5OGI5ZjJkOTI1NTYuLmUzNzkwYzM4MzA1NTcwZDRhYTA5ZDc3NGJm
NGVlMzI5OTViZDNlNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wMy0wMSAgTm9hbSBS
b3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYiBUaW1pbmddIEltcGxl
bWVudCBQYWludCBUaW1pbmcgMQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzgwMTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICAgICAgICAgU2tpcCBwYWlu
dC1BUEkgdGVzdHMgd2hlcmUgd2UgZG9uJ3QgbWF0Y2ggdGhlIHNwZWMgeWV0LgorCisgICAgICAg
ICogcGVyZm9ybWFuY2UtYXBpL3BhaW50LXRpbWluZy1hcGlzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGVyZm9ybWFuY2UtYXBpL3BhaW50LXRpbWluZy1hcGlzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHBlcmZvcm1hbmNlLWFwaS9yZXNvdXJjZXMvcGFpbnQtdGltaW5nLWFwaS5q
czogQWRkZWQuCisKIDIwMjAtMDItMjYgIE5pa29zIE1vdWNodGFyaXMgIDxubW91Y2h0YXJpc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIHBsYXRmb3JtIHRlc3RzIGZvciBXZWIgU2hhcmUgQVBJ
IGZhaWwgaW5jb3JyZWN0bHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDk0YzRj
NTgzM2ZiZWFmODE1YzAxYmNhODBjNDdlZTlhNWM4YzJiMDAuLmEyNzExMTg1ODRjMGQ1NzhhZTAy
ZTg4Y2I2NmZjMTg4Mjc2ZjRhYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQ2IEBACisyMDIwLTAzLTAxICBOb2FtIFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBbV2ViIFRpbWluZ10gSW1wbGVtZW50IFBhaW50IFRpbWluZyAxCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODAxMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcG9ydGVkIHczYyB0
ZXN0cyBmb3IgcGFpbnQgQVBJCisKKyAgICAgICAgKiByZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0
aW9ucy5qc29uOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvTUVU
QS55bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcv
YmFzZXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvcGFpbnQtdGltaW5nL2Jhc2V0ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvY2hpbGQtcGFpbnRpbmctZmlyc3QtaW1hZ2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9maXJzdC1j
b250ZW50ZnVsLWJnLWltYWdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9wYWludC10aW1pbmcvZmlyc3QtY29udGVudGZ1bC1jYW52YXMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWNv
bnRlbnRmdWwtY2FudmFzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9wYWludC10aW1pbmcvZmlyc3QtY29udGVudGZ1bC1pbWFnZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvZmlyc3QtY29udGVu
dGZ1bC1pbWFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGFp
bnQtdGltaW5nL2ZpcnN0LWNvbnRlbnRmdWwtcGFpbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWNvbnRlbnRmdWwt
cGFpbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRp
bWluZy9maXJzdC1jb250ZW50ZnVsLXN2Zy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvZmlyc3QtY29udGVudGZ1bC1zdmcuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9maXJz
dC1pbWFnZS1jaGlsZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy9wYWludC10aW1pbmcvZmlyc3QtaW1hZ2UtY2hpbGQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9maXJzdC1wYWludC1iZy1jb2xv
ci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYWlu
dC10aW1pbmcvZmlyc3QtcGFpbnQtYmctY29sb3IuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9maXJzdC1wYWludC1vbmx5LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9maXJz
dC1wYWludC1vbmx5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9w
YWludC10aW1pbmcvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2lkbGhhcm5lc3Mud2luZG93Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvaWRs
aGFybmVzcy53aW5kb3cuanM6IEFkZGVkLgorICAgICAgICAodC5jb25zdC50aW1lb3V0Lm5ldy5Q
cm9taXNlKToKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL3BhaW50
LXZpc2l0ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvcGFpbnQtdGltaW5nL3BhaW50LXZpc2l0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9yZXNvdXJjZXMvY2lyY2xlLnN2ZzogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9yZXNvdXJjZXMvY2ly
Y2xlcy5wbmc6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1p
bmcvcmVzb3VyY2VzL3N1YmZyYW1lLXBhaW50aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvcmVzb3VyY2VzL3N1YmZyYW1lLXNlbmRpbmct
cGFpbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRp
bWluZy9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2c6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvc2libGluZy1wYWludGluZy1maXJzdC1pbWFnZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL3czYy1p
bXBvcnQubG9nOiBBZGRlZC4KKwogMjAyMC0wMi0yNiAgTmlrb3MgTW91Y2h0YXJpcyAgPG5tb3Vj
aHRhcmlzQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgcGxhdGZvcm0gdGVzdHMgZm9yIFdlYiBT
aGFyZSBBUEkgZmFpbCBpbmNvcnJlY3RseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjRjY2Q1ZDM3
MThlZDgzMWEyOTQyYTQyMDg4ODc2ZDVlYWY3ODNiNS4uOTVmZjM2N2NlOTI0MzM4MmE2MDc0NmJh
NmI2MjE4MmYwZGFlNDBmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yODMsNiArMjgzLDE1IEBA
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmVyLXRpbWluZy90ZXN0X3NlcnZl
cl90aW1pbmcuaHR0cHMuaHRtbCBbIFNrCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZlci10aW1pbmcvbmF2aWdhdGlvbl90aW1pbmdfaWRsLmh0bWwgWyBTa2lwIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmVyLXRpbWluZy9uYXZpZ2F0aW9uX3RpbWlu
Z19pZGwuaHR0cHMuaHRtbCBbIFNraXAgXQogCisjIFBhaW50IEFQSTogSW4gc29tZSBjYXNlcywg
RlAgc2hvdWxkIGJlIG1vcmUgc3RyaWN0IHRoYW4gY3VycmVudCB3ZWJraXQncyBGTVAKK2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2NoaWxkLXBhaW50aW5nLWZp
cnN0LWltYWdlLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGFpbnQtdGltaW5nL2ZpcnN0LWltYWdlLWNoaWxkLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL3NpYmxpbmctcGFpbnRpbmctZmlyc3Qt
aW1hZ2UuaHRtbCBbIFNraXAgXQorCisjIFBhaW50IEFQSTogRkNQIHNob3VsZCBhbHNvIGZpcmUg
Zm9yIGJhY2tncm91bmQgaW1hZ2VzCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
aW50LXRpbWluZy9maXJzdC1jb250ZW50ZnVsLWJnLWltYWdlLmh0bWwgWyBTa2lwIF0KKworCiAj
IENvbnNvbGUgbG9nIGxpbmVzIG1heSBhcHBlYXIgaW4gYSBkaWZmZXJlbnQgb3JkZXIgc28gd2Ug
c2lsZW5jZSB0aGVtLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dz
ZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1wcm90b2NvbC1zZXR0
ZXItbm9uLWJyb2tlbi5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIEZhaWx1cmUgUGFz
cyBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9y
eS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJv
a2VuLXdlaXJkLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpz
b24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlv
bnMuanNvbgppbmRleCBlYmYwOWYzNTcxMTYxNWY2NWIxZTYzOTU3OThiOTRhMzQ3MzUxYjBmLi5k
ZTA2MjEzY2MxMWZiYTc3OWE2YmYzZGZhMGM4MTFiZDJhMjZjMjE3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlv
bnMuanNvbgpAQCAtMTMsNiArMTMsOCBAQAogICAgICJjc3MvZ2VvbWV0cnkiOiAiaW1wb3J0Iiwg
CiAgICAgImNzcy9zdXBwb3J0IjogImltcG9ydCIsIAogICAgICJjdXN0b20tZWxlbWVudHMiOiAi
aW1wb3J0IiwgCisgICAgInBhaW50LXRpbWluZyI6ICJpbXBvcnQiLCAKKyAgICAicGFpbnQtdGlt
aW5nLyoiOiAiaW1wb3J0IiwgCiAgICAgInNoYWRvdy1kb20iOiAiaW1wb3J0IiwgCiAgICAgInRv
b2xzIjogImltcG9ydCIsIAogICAgICJ3ZWItYW5pbWF0aW9ucyI6ICJpbXBvcnQiLCAKQEAgLTMx
NSw3ICszMTcsNyBAQAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvb3JpZW50YXRpb24tZXZlbnQi
OiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvb3JpZW50YXRpb24tc2Vuc29yIjog
InNraXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3BhZ2UtdmlzaWJpbGl0eSI6ICJza2lw
IiwgCi0gICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmciOiAic2tpcCIsIAorICAg
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nIjogImltcG9ydCIsIAogICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1oYW5kbGVyIjogInNraXAiLCAKICAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL3BheW1lbnQtbWV0aG9kLWJhc2ljLWNhcmQiOiAic2tpcCIsIAogICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvcGF5bWVudC1tZXRob2QtaWQiOiAic2tpcCIsIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcv
TUVUQS55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
aW50LXRpbWluZy9NRVRBLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNGFjYjI1ODdkMWEzNzViZmVlMTJjNTZj
NTZkZDQ1N2VlNjE1MmNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvTUVUQS55bWwKQEAgLTAsMCArMSw0
IEBACitzcGVjOiBodHRwczovL3czYy5naXRodWIuaW8vcGFpbnQtdGltaW5nLworc3VnZ2VzdGVk
X3Jldmlld2VyczoKKyAgLSBzcGFuaWNrZXIKKyAgLSB0ZHJlc3NlcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvYmFz
ZXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYWludC10aW1pbmcvYmFzZXRlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3
MTVhNzliODJiYjhlZTVjMmU1YmM3Y2QyMThmMjhlNDNjOTg2NjIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWlu
Zy9iYXNldGVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACit0ZXN0CisKK1BBU1MgQmFz
aWMgdGVzdCB0byBjaGVjayBleGlzdGVuY2Ugb2YgRlAgYW5kIEZDUC4gCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5n
L2Jhc2V0ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BhaW50LXRpbWluZy9iYXNldGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmODQ1NjZkOWE4NjNl
OGJkMjVjMmVjZTgyYzYxNDFmN2IwMjk0MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9iYXNldGVzdC5o
dG1sCkBAIC0wLDAgKzEsNDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGhlYWQ+Cis8dGl0bGU+UGVy
Zm9ybWFuY2UgUGFpbnQgVGltaW5nIFRlc3Q8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJt
YWluIj48L2Rpdj4KKworPHNjcmlwdD4KK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHQu
c3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAgY29uc3QgYnVmZmVyZWRFbnRyaWVzID0gcGVyZm9y
bWFuY2UuZ2V0RW50cmllc0J5VHlwZSgncGFpbnQnKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhi
dWZmZXJlZEVudHJpZXMubGVuZ3RoLCAwLCAiTm8gcGFpbnQgZW50cmllcyB5ZXQiKTsKKyAgICB9
KTsKKyAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBk
aXYuc3R5bGUud2lkdGggPSAiMTAwcHgiOworICAgIGRpdi5zdHlsZS5oZWlnaHQgPSAiMTAwcHgi
OworICAgIGRpdi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAicmVkIjsKKyAgICBkaXYuc3R5bGUu
Y29sb3IgPSAiYmx1ZSI7CisgICAgZGl2LmlubmVySFRNTCA9ICJ0ZXN0IgorICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJtYWluIikuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICBmdW5jdGlvbiB0
ZXN0UGFpbnRFbnRyaWVzKCkgeworICAgICAgICBjb25zdCBidWZmZXJlZEVudHJpZXMgPSBwZXJm
b3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKCdwYWludCcpOworICAgICAgICBpZiAoYnVmZmVyZWRF
bnRyaWVzLmxlbmd0aCA8IDIpIHsKKyAgICAgICAgICAgIHQuc3RlcF90aW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIHRlc3RQYWludEVudHJpZXMoKTsKKyAgICAgICAgICAgIH0s
IDIwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0LnN0ZXAoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50cmllcy5sZW5n
dGgsIDIsICJGUCBhbmQgRkNQLiIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhidWZmZXJl
ZEVudHJpZXNbMF0uZW50cnlUeXBlLCAicGFpbnQiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoYnVmZmVyZWRFbnRyaWVzWzBdLm5hbWUsICJmaXJzdC1wYWludCIpOworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhidWZmZXJlZEVudHJpZXNbMV0uZW50cnlUeXBlLCAicGFpbnQiKTsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoYnVmZmVyZWRFbnRyaWVzWzFdLm5hbWUsICJmaXJzdC1j
b250ZW50ZnVsLXBhaW50Iik7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7Cisg
ICAgfQorICAgIHQuc3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAgdGVzdFBhaW50RW50cmllcygp
OworICAgIH0pOworfSwgIkJhc2ljIHRlc3QgdG8gY2hlY2sgZXhpc3RlbmNlIG9mIEZQIGFuZCBG
Q1AuIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2NoaWxkLXBh
aW50aW5nLWZpcnN0LWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9jaGlsZC1wYWludGluZy1maXJzdC1pbWFnZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ2NzE2MDRjZjA5YjljNWVhZjBjMTFkYWE3MTY5MmZlNTc5MGEyNzAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BhaW50LXRpbWluZy9jaGlsZC1wYWludGluZy1maXJzdC1pbWFnZS5odG1sCkBAIC0wLDAg
KzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cithc3luY190ZXN0KGZ1bmN0
aW9uICh0KSB7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBf
ZnVuYyhlID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEsICcyIHBhaW50IGZpcnN0
LXBhaW50IHBhaW50IGZpcnN0LWNvbnRlbnRmdWwtcGFpbnQnKTsKKyAgICAgICAgLy8gV2hlbiBv
bmx5IGNoaWxkIGZyYW1lIHBhaW50cywgZXhwZWN0IG9ubHkgZmlyc3QtcGFpbnQuCisgICAgICAg
IHQuc3RlcF90aW1lb3V0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGNvbnN0IGJ1ZmZlcmVk
RW50cmllcyA9IHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoJ3BhaW50Jyk7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50cmllcy5sZW5ndGgsIDEpOworICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhidWZmZXJlZEVudHJpZXNbMF0uZW50cnlUeXBlLCAncGFpbnQnKTsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYnVmZmVyZWRFbnRyaWVzWzBdLm5hbWUsICdmaXJz
dC1wYWludCcpOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0sIDUwKTsKKyAgICB9
KSk7CisgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7
CisgICAgaWZyYW1lLmlkID0gJ2NoaWxkLWlmcmFtZSc7CisgICAgaWZyYW1lLnNyYyA9ICdyZXNv
dXJjZXMvc3ViZnJhbWUtcGFpbnRpbmcuaHRtbCc7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChpZnJhbWUpOworfSwgJ1BhcmVudCBmcmFtZSBpZ25vcmVzIHBhaW50LXRpbWluZyBldmVu
dHMgZmlyZWQgZnJvbSBjaGlsZCBpbWFnZSByZW5kZXJpbmcuJyk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWNvbnRlbnRmdWwtYmctaW1hZ2UuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5n
L2ZpcnN0LWNvbnRlbnRmdWwtYmctaW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZGNjNzhmYmU1NWVj
NTVjMzRmYWE1OWQyNWYxYTJhY2I0ZTE3MjRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvZmlyc3QtY29u
dGVudGZ1bC1iZy1pbWFnZS5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGhlYWQ+Cis8dGl0bGU+UGVyZm9ybWFuY2UgUGFpbnQgVGltaW5nIFRlc3Q6IEZDUCBkdWUgdG8g
YmFja2dyb3VuZCBpbWFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9Im1haW4iPjwvZGl2
PgorPC9ib2R5PgorCis8Zm9vdGVyPgorPHNjcmlwdD4KK2FzeW5jX3Rlc3QoZnVuY3Rpb24gKHQp
IHsKKyAgICBjb25zdCBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHkn
KVswXTsKKyAgICBib2R5LnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICd1cmwocmVzb3VyY2VzL2Np
cmNsZXMucG5nKSc7CisgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICBm
dW5jdGlvbiB0ZXN0UGFpbnRFbnRyaWVzKCkgeworICAgICAgICAgICAgY29uc3QgYnVmZmVyZWRF
bnRyaWVzID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgncGFpbnQnKTsKKyAgICAgICAg
ICAgIGlmIChidWZmZXJlZEVudHJpZXMubGVuZ3RoIDwgMikgeworICAgICAgICAgICAgICAgIHQu
c3RlcF90aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFpbnRF
bnRyaWVzKCk7CisgICAgICAgICAgICAgICAgfSwgMjApOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHQuc3RlcChmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50cmllcy5sZW5ndGgsIDIsICJUaGVy
ZSBzaG91bGQgYmUgdHdvIHBhaW50IHRpbWluZyBpbnN0YW5jZXMuIik7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhidWZmZXJlZEVudHJpZXNbMF0uZW50cnlUeXBlLCAicGFpbnQiKTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50cmllc1swXS5uYW1lLCAi
Zmlyc3QtcGFpbnQiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50
cmllc1sxXS5lbnRyeVR5cGUsICJwYWludCIpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoYnVmZmVyZWRFbnRyaWVzWzFdLm5hbWUsICJmaXJzdC1jb250ZW50ZnVsLXBhaW50Iik7Cisg
ICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAg
ICAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UGFpbnRFbnRyaWVzKCk7
CisgICAgICAgIH0pOworICAgIH07Cit9LCAiRmlyc3QgY29udGVudGZ1bCBwYWludCBmaXJlcyBk
dWUgdG8gYmFja2dyb3VuZCBpbWFnZSByZW5kZXIuIik7Cis8L3NjcmlwdD4KKzxmb290ZXI+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BhaW50LXRpbWluZy9maXJzdC1jb250ZW50ZnVsLWNhbnZhcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWlu
Zy9maXJzdC1jb250ZW50ZnVsLWNhbnZhcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjcxNTJi
YjQzNmE1MmY1MDEwOTU1YmJhMDhiMmI3MmI2NzBiODY2MAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2Zp
cnN0LWNvbnRlbnRmdWwtY2FudmFzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBGaXJzdCBjb250ZW50ZnVsIHBhaW50IGZpcmVzIGR1ZSB0byBjYW52YXMgcmVuZGVyLiAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YWludC10aW1pbmcvZmlyc3QtY29udGVudGZ1bC1jYW52YXMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWNvbnRlbnRm
dWwtY2FudmFzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzYxMGE1N2VjNzE2YzRjMDg3Y2FlZGM2YWJhMGMx
MzJlOThkZWQwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWNvbnRlbnRmdWwtY2FudmFzLmh0
bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5QZXJm
b3JtYW5jZSBQYWludCBUaW1pbmcgVGVzdDogRkNQIGR1ZSB0byBjYW52YXM8L3RpdGxlPgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiA+PC9j
YW52YXM+CisKKzxzY3JpcHQ+Cithc3luY190ZXN0KGZ1bmN0aW9uICh0KSB7CisgICAgY29uc3Qg
Y2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworICAgIGNvbnN0IGNv
bnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb250ZXh0LmJlZ2luUGF0aCgp
OworICAgIGNvbnRleHQubW92ZVRvKDAsMCk7CisgICAgY29udGV4dC5saW5lVG8oMzAwLDE1MCk7
CisgICAgY29udGV4dC5zdHJva2UoKTsKKyAgICBmdW5jdGlvbiB0ZXN0UGFpbnRFbnRyaWVzKCkg
eworICAgICAgICBjb25zdCBidWZmZXJlZEVudHJpZXMgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVz
QnlUeXBlKCdwYWludCcpOworICAgICAgICBpZiAoYnVmZmVyZWRFbnRyaWVzLmxlbmd0aCA8IDIp
IHsKKyAgICAgICAgICAgIHQuc3RlcF90aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIHRlc3RQYWludEVudHJpZXMoKTsKKyAgICAgICAgICAgIH0sIDIwKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50cmllcy5sZW5ndGgsIDIsICJUaGVyZSBzaG91
bGQgYmUgdHdvIHBhaW50IHRpbWluZyBpbnN0YW5jZXMuIik7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGJ1ZmZlcmVkRW50cmllc1swXS5lbnRyeVR5cGUsICJwYWludCIpOworICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhidWZmZXJlZEVudHJpZXNbMF0ubmFtZSwgImZpcnN0LXBhaW50Iik7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50cmllc1sxXS5lbnRyeVR5cGUs
ICJwYWludCIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhidWZmZXJlZEVudHJpZXNbMV0u
bmFtZSwgImZpcnN0LWNvbnRlbnRmdWwtcGFpbnQiKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOwor
ICAgICAgICB9KTsKKyAgICB9OworICAgIHQuc3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAgdGVz
dFBhaW50RW50cmllcygpOworICAgIH0pOworfSwgIkZpcnN0IGNvbnRlbnRmdWwgcGFpbnQgZmly
ZXMgZHVlIHRvIGNhbnZhcyByZW5kZXIuIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGFpbnQtdGltaW5nL2ZpcnN0LWNvbnRlbnRmdWwtaW1hZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvZmlyc3Qt
Y29udGVudGZ1bC1pbWFnZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODM0MmJmOWM4OTIxOTQw
Zjg5MTcxMTkzYmZmZjhiNTc1NmQ0ZTI1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWNvbnRl
bnRmdWwtaW1hZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgRmlyc3Qg
Y29udGVudGZ1bCBwYWludCBmaXJlcyBkdWUgdG8gaW1hZ2UgcmVuZGVyLiAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1p
bmcvZmlyc3QtY29udGVudGZ1bC1pbWFnZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvZmlyc3QtY29udGVudGZ1bC1pbWFnZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE0ZTg5YjM3NjU3MzYxMzU4ZjFiODU0ZTk0YzhkNmIyYTMwZDhjNmMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3BhaW50LXRpbWluZy9maXJzdC1jb250ZW50ZnVsLWltYWdlLmh0bWwKQEAgLTAsMCAr
MSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5QZXJmb3JtYW5jZSBQYWlu
dCBUaW1pbmcgVGVzdDogRkNQIGR1ZSB0byBpbWFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYg
aWQ9ImltYWdlIj48L2Rpdj4KKworPHNjcmlwdD4KK2FzeW5jX3Rlc3QoZnVuY3Rpb24gKHQpIHsK
KyAgICBjb25zdCBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsKKyAgICBpbWcu
c3JjID0gInJlc291cmNlcy9jaXJjbGVzLnBuZyI7CisgICAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9u
KCkgeworICAgICAgICBmdW5jdGlvbiB0ZXN0UGFpbnRFbnRyaWVzKCkgeworICAgICAgICAgICAg
Y29uc3QgYnVmZmVyZWRFbnRyaWVzID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgncGFp
bnQnKTsKKyAgICAgICAgICAgIGlmIChidWZmZXJlZEVudHJpZXMubGVuZ3RoIDwgMikgeworICAg
ICAgICAgICAgICAgIHQuc3RlcF90aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
ICAgICB0ZXN0UGFpbnRFbnRyaWVzKCk7CisgICAgICAgICAgICAgICAgfSwgMjApOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHQuc3RlcChmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50cmllcy5s
ZW5ndGgsIDIsICJUaGVyZSBzaG91bGQgYmUgdHdvIHBhaW50IHRpbWluZyBpbnN0YW5jZXMuIik7
CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhidWZmZXJlZEVudHJpZXNbMF0uZW50cnlU
eXBlLCAicGFpbnQiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50
cmllc1swXS5uYW1lLCAiZmlyc3QtcGFpbnQiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGJ1ZmZlcmVkRW50cmllc1sxXS5lbnRyeVR5cGUsICJwYWludCIpOworICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoYnVmZmVyZWRFbnRyaWVzWzFdLm5hbWUsICJmaXJzdC1jb250ZW50
ZnVsLXBhaW50Iik7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9KQor
ICAgICAgICB9CisgICAgICAgIHQuc3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RQ
YWludEVudHJpZXMoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaW1hZ2UnKS5hcHBlbmRDaGlsZChpbWcpOworfSwgIkZpcnN0IGNvbnRlbnRmdWwg
cGFpbnQgZmlyZXMgZHVlIHRvIGltYWdlIHJlbmRlci4iKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYWludC10aW1pbmcvZmlyc3QtY29udGVudGZ1bC1wYWludC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWlu
Zy9maXJzdC1jb250ZW50ZnVsLXBhaW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZDI3YzNi
YjdlNDgyMTZhNDEzNzUzYTlkOGRmOTNlZWFkMTRhYmEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvZmly
c3QtY29udGVudGZ1bC1wYWludC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworUEFT
UyBGaXJzdCBQYWludCB0cmlnZ2VyZWQgYnkgbm9uLWNvbnRlbnRmdWwgcGFpbnQuIEltYWdlIGxv
YWQgdHJpZ2dlcnMgRmlyc3QgQ29udGVudGZ1bCBQYWludC4gCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0
LWNvbnRlbnRmdWwtcGFpbnQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWNvbnRlbnRmdWwtcGFpbnQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kOGVhYmVmZTEyZjY5OGJjMWQ5YWUwZGI0NzdhYTcwOTQ2YTk1MWZiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YWludC10aW1pbmcvZmlyc3QtY29udGVudGZ1bC1wYWludC5odG1sCkBAIC0wLDAgKzEsNzQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGhlYWQ+Cis8dGl0bGU+UGVyZm9ybWFuY2UgUGFpbnQgVGltaW5n
IFRlc3Q6IEZQIGZvbGxvd2VkIGJ5IEZDUDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9Im1h
aW4iPjwvZGl2PgorPGRpdiBpZD0iaW1hZ2UiPjwvZGl2PgorCis8c2NyaXB0PgorYXN5bmNfdGVz
dChmdW5jdGlvbiAodCkgeworICAgIGNvbnN0IGJ1ZmZlcmVkRW50cmllcyA9IHBlcmZvcm1hbmNl
LmdldEVudHJpZXNCeVR5cGUoJ3BhaW50Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhidWZmZXJlZEVu
dHJpZXMubGVuZ3RoLCAwLCAiTm8gcGFpbnQgZW50cmllcyB5ZXQiKTsKKyAgICBjb25zdCBkaXYg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBkaXYuc3R5bGUud2lkdGggPSAi
MTAwcHgiOworICAgIGRpdi5zdHlsZS5oZWlnaHQgPSAiMTAwcHgiOworICAgIGRpdi5zdHlsZS5i
YWNrZ3JvdW5kQ29sb3IgPSAicmVkIjsKKyAgICBkaXYuc3R5bGUuY29sb3IgPSAiYmx1ZSI7Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4iKS5hcHBlbmRDaGlsZChkaXYpOworICAg
IGZ1bmN0aW9uIHRlc3RQYWludEVudHJpZXMoKSB7CisgICAgICBjb25zdCBidWZmZXJlZEVudHJp
ZXMgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKCdwYWludCcpOworICAgICAgaWYgKGJ1
ZmZlcmVkRW50cmllcy5sZW5ndGggPCAxKSB7CisgICAgICAgIHQuc3RlcF90aW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICAgIHRlc3RQYWludEVudHJpZXMoKTsKKyAgICAgICAgfSwgMjApOwor
ICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoYnVmZmVyZWRFbnRyaWVzLmxlbmd0aCwgMSwgIkZQIG9ubHkuIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoYnVmZmVyZWRFbnRyaWVzWzBdLmVudHJ5VHlwZSwgInBh
aW50Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoYnVmZmVyZWRFbnRyaWVzWzBdLm5hbWUsICJm
aXJzdC1wYWludCIpOworICAgICAgfSk7CisgICAgICBjb25zdCBpbWcgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJJTUciKTsKKyAgICAgIGltZy5zcmMgPSAicmVzb3VyY2VzL2NpcmNsZXMucG5n
IjsKKyAgICAgIGltZy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgZnVuY3Rpb24gc2Vj
b25kVGVzdFBhaW50RW50cmllcygpIHsKKyAgICAgICAgICBjb25zdCBtb3JlQnVmZmVyZWRFbnRy
aWVzID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgncGFpbnQnKTsKKyAgICAgICAgICBp
ZiAobW9yZUJ1ZmZlcmVkRW50cmllcy5sZW5ndGggPCAyKSB7CisgICAgICAgICAgICB0LnN0ZXBf
dGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgc2Vjb25kVGVzdFBhaW50RW50cmll
cygpOworICAgICAgICAgICAgfSwgMjApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
IH0KKyAgICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKG1vcmVCdWZmZXJlZEVudHJpZXMubGVuZ3RoLCAyLCAiRlAgYW5kIEZDUC4iKTsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMobW9yZUJ1ZmZlcmVkRW50cmllc1swXS5lbnRyeVR5cGUsICJw
YWludCIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtb3JlQnVmZmVyZWRFbnRyaWVzWzBd
Lm5hbWUsICJmaXJzdC1wYWludCIpOworICAgICAgICAgICAgY29uc3QgZnBFbnRyaWVzR290QnlO
YW1lID0KKyAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKCdmaXJz
dC1wYWludCcpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhmcEVudHJpZXNHb3RCeU5hbWUu
bGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobW9yZUJ1ZmZlcmVkRW50cmll
c1swXSwgZnBFbnRyaWVzR290QnlOYW1lWzBdKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
bW9yZUJ1ZmZlcmVkRW50cmllc1sxXS5lbnRyeVR5cGUsICJwYWludCIpOworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhtb3JlQnVmZmVyZWRFbnRyaWVzWzFdLm5hbWUsICJmaXJzdC1jb250ZW50
ZnVsLXBhaW50Iik7CisgICAgICAgICAgICBjb25zdCBmY3BFbnRyaWVzR290QnlOYW1lID0KKyAg
ICAgICAgICAgICAgICBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKCdmaXJzdC1jb250ZW50
ZnVsLXBhaW50Jyk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGZjcEVudHJpZXNHb3RCeU5h
bWUubGVuZ3RoLCAxKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobW9yZUJ1ZmZlcmVkRW50
cmllc1sxXSwgZmNwRW50cmllc0dvdEJ5TmFtZVswXSk7CisgICAgICAgICAgICB0LmRvbmUoKTsK
KyAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgc2Vjb25kVGVzdFBhaW50RW50cmllcygpOworICAgICAgICB9KTsKKyAgICAgIH07
CisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1hZ2UnKS5hcHBlbmRDaGlsZChpbWcp
OworICAgIH0KKyAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICB0ZXN0UGFpbnRFbnRyaWVz
KCk7CisgICAgfSk7Cit9LCAiRmlyc3QgUGFpbnQgdHJpZ2dlcmVkIGJ5IG5vbi1jb250ZW50ZnVs
IHBhaW50LiBJbWFnZSBsb2FkIHRyaWdnZXJzIEZpcnN0IENvbnRlbnRmdWwgUGFpbnQuIik7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWNvbnRlbnRmdWwt
c3ZnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWNvbnRlbnRmdWwtc3ZnLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMjBkZDFkZGZmOWNlOTkwOTliMTkyNmUxMjg2MGFmZWFhZDZlZTgxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9w
YWludC10aW1pbmcvZmlyc3QtY29udGVudGZ1bC1zdmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NCBAQAorCisKK1BBU1MgRmlyc3QgY29udGVudGZ1bCBwYWludCBmaXJlcyBkdWUgdG8gc3ZnLiAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYWludC10aW1pbmcvZmlyc3QtY29udGVudGZ1bC1zdmcuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWNvbnRlbnRm
dWwtc3ZnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2YzZTk1NDI3NTgyZmM2MTI3MTJhYzM4MzA4NmRiYTQy
NGY2NTU2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWNvbnRlbnRmdWwtc3ZnLmh0bWwKQEAg
LTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5QZXJmb3JtYW5j
ZSBQYWludCBUaW1pbmcgVGVzdDogRkNQIGR1ZSB0byBTVkc8L3RpdGxlPgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
ZGl2IGlkPSJzdmciPjwvZGl2PgorCis8c2NyaXB0PgorYXN5bmNfdGVzdChmdW5jdGlvbiAodCkg
eworICAgIGNvbnN0IGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklNRyIpOworICAgIGlt
Zy5zcmMgPSAicmVzb3VyY2VzL2NpcmNsZS5zdmciOworICAgIGltZy5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgZnVuY3Rpb24gdGVzdFBhaW50RW50cmllcygpIHsKKyAgICAgICAgICAg
IGNvbnN0IGJ1ZmZlcmVkRW50cmllcyA9IHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoJ3Bh
aW50Jyk7CisgICAgICAgICAgICBpZiAoYnVmZmVyZWRFbnRyaWVzLmxlbmd0aCA8IDIpIHsKKyAg
ICAgICAgICAgICAgdC5zdGVwX3RpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
dGVzdFBhaW50RW50cmllcygpOworICAgICAgICAgICAgICB9LCAyMCk7CisgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHQuc3RlcChmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50cmllcy5sZW5ndGgsIDIs
ICJUaGVyZSBzaG91bGQgYmUgdHdvIHBhaW50IHRpbWluZyBpbnN0YW5jZXMuIik7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhidWZmZXJlZEVudHJpZXNbMF0uZW50cnlUeXBlLCAicGFp
bnQiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50cmllc1swXS5u
YW1lLCAiZmlyc3QtcGFpbnQiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZl
cmVkRW50cmllc1sxXS5lbnRyeVR5cGUsICJwYWludCIpOworICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoYnVmZmVyZWRFbnRyaWVzWzFdLm5hbWUsICJmaXJzdC1jb250ZW50ZnVsLXBhaW50
Iik7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UGFpbnRFbnRy
aWVzKCk7CisgICAgICAgIH0pOworICAgIH07CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3N2ZycpLmFwcGVuZENoaWxkKGltZyk7Cit9LCAiRmlyc3QgY29udGVudGZ1bCBwYWludCBmaXJl
cyBkdWUgdG8gc3ZnLiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWlu
Zy9maXJzdC1pbWFnZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9maXJzdC1pbWFnZS1jaGlsZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjEzNDMwYjg2N2EyNzM3NzVmYjEzYmU0OGZiYWU0ZGFhYzRm
MGY0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWltYWdlLWNoaWxkLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKKworCitGQUlMIENoaWxkIGlmcmFtZSBpZ25vcmVzIHBhaW50LXRpbWlu
ZyBldmVudHMgZmlyZWQgZnJvbSBwYXJlbnQgaW1hZ2UgcmVuZGVyaW5nLiBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiMCIgYnV0IGdvdCAiMSBwYWludCBmaXJzdC1wYWludCIKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1p
bmcvZmlyc3QtaW1hZ2UtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWltYWdlLWNoaWxkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDYyMmRkZWY5NmI1NzYyYjA4ZTY0NzUxNWY4OWM5NTI1ZTExYWMyNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFp
bnQtdGltaW5nL2ZpcnN0LWltYWdlLWNoaWxkLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5QZXJmb3JtYW5jZSBQYWludCBUaW1pbmcgVGVzdDog
Y2hpbGQgaWdub3JlcyBwYXJlbnQgRkNQPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0iaW1h
Z2UiPjwvZGl2PgorCis8c2NyaXB0PgorYXN5bmNfdGVzdChmdW5jdGlvbiAodCkgeworICAgIGNv
bnN0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgIGlmcmFt
ZS5pZCA9ICdjaGlsZC1pZnJhbWUnOworICAgIGlmcmFtZS5zcmMgPSAncmVzb3VyY2VzL3N1YmZy
YW1lLXNlbmRpbmctcGFpbnQuaHRtbCc7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChp
ZnJhbWUpOworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1
bmMoZSA9PiB7CisgICAgICAgIC8vIENoaWxkIGlmcmFtZSBzaG91bGQgbm90IGhhdmUgYW55IHBh
aW50LXRpbWluZyBlbnRyaWVzLgorICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YSwgJzAnKTsK
KyAgICAgICAgdC5kb25lKCk7CisgICAgfSkpOworICAgIGNvbnN0IGltZyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ0lNRycpOworICAgIGltZy5zcmMgPSAncmVzb3VyY2VzL2NpcmNsZXMucG5n
JzsKKyAgICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGZ1bmN0aW9uIHRlc3RQ
YWludEVudHJpZXMoKSB7CisgICAgICAgICAgICBjb25zdCBidWZmZXJlZEVudHJpZXMgPSBwZXJm
b3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKCdwYWludCcpOworICAgICAgICAgICAgaWYgKGJ1ZmZl
cmVkRW50cmllcy5sZW5ndGggPCAyKSB7CisgICAgICAgICAgICAgICAgdC5zdGVwX3RpbWVvdXQo
dGVzdFBhaW50RW50cmllcywgMjApOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIHQuc3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50cmllcy5sZW5ndGgsIDIsICdUaGVyZSBzaG91bGQgYmUg
dHdvIHBhaW50IHRpbWluZyBpbnN0YW5jZXMuJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhidWZmZXJlZEVudHJpZXNbMF0uZW50cnlUeXBlLCAncGFpbnQnKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50cmllc1swXS5uYW1lLCAnZmlyc3QtcGFpbnQn
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50cmllc1sxXS5lbnRy
eVR5cGUsICdwYWludCcpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYnVmZmVyZWRF
bnRyaWVzWzFdLm5hbWUsICdmaXJzdC1jb250ZW50ZnVsLXBhaW50Jyk7CisgICAgICAgICAgICAg
ICAgLy8gQXNrIGNoaWxkIGlmcmFtZSB0byBzZW5kIGl0cyBwYWludC10aW1pbmcgZW50cmllcy4K
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hpbGQtaWZyYW1lJyku
CisgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoJycsICcqJyk7
CisgICAgICAgICAgICB9KQorICAgICAgICB9CisgICAgICAgIHRlc3RQYWludEVudHJpZXMoKTsK
KyAgICB9OworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWFnZScpLmFwcGVuZENoaWxk
KGltZyk7Cit9LCAnQ2hpbGQgaWZyYW1lIGlnbm9yZXMgcGFpbnQtdGltaW5nIGV2ZW50cyBmaXJl
ZCBmcm9tIHBhcmVudCBpbWFnZSByZW5kZXJpbmcuJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LXBhaW50LWJnLWNvbG9yLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2Zp
cnN0LXBhaW50LWJnLWNvbG9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWM4ZmMxYjUzZjQ2
YjdkN2JlMmM0ZDI3NTc3ZTE5NWI0ZmFkYzRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvZmlyc3QtcGFp
bnQtYmctY29sb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIEZpcnN0IHBh
aW50IGZpcmVzIGR1ZSB0byBiYWNrZ3JvdW5kIGNvbG9yLiBObyBGQ1AgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5n
L2ZpcnN0LXBhaW50LWJnLWNvbG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9maXJzdC1wYWludC1iZy1jb2xvci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ2ZWZiOWUyNjc0YjE0MWNlODU0NzQ5YmU1NjU2NTAzNDFlYmI5NjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BhaW50LXRpbWluZy9maXJzdC1wYWludC1iZy1jb2xvci5odG1sCkBAIC0wLDAgKzEsMzcgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGhlYWQ+Cis8dGl0bGU+UGVyZm9ybWFuY2UgUGFpbnQgVGltaW5n
IFRlc3Q6IEZQIGR1ZSB0byBiYWNrZ3JvdW5kIGNvbG9yPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGRp
diBpZD0ibWFpbiI+PC9kaXY+Cis8L2JvZHk+CisKKzxmb290ZXI+Cis8c2NyaXB0PgorYXN5bmNf
dGVzdChmdW5jdGlvbiAodCkgeworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuYmFja2dyb3VuZENv
bG9yID0gIiNBQTAwMDAiOworCisgICAgZnVuY3Rpb24gdGVzdFBhaW50RW50cmllcygpIHsKKyAg
ICAgIGNvbnN0IGJ1ZmZlcmVkRW50cmllcyA9IHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUo
J3BhaW50Jyk7CisgICAgICBpZiAoYnVmZmVyZWRFbnRyaWVzLmxlbmd0aCA8IDEpIHsKKyAgICAg
ICAgdC5zdGVwX3RpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgdGVzdFBhaW50RW50cmll
cygpOworICAgICAgICB9LCAyMCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIHQu
c3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhidWZmZXJlZEVudHJpZXMu
bGVuZ3RoLCAxLCAiRlAgc2hvdWxkIGZpcmUgZm9yIGJhY2tncm91bmQgY29sb3IsIG5vdCBGQ1Ai
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhidWZmZXJlZEVudHJpZXNbMF0uZW50cnlUeXBlLCAi
cGFpbnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhidWZmZXJlZEVudHJpZXNbMF0ubmFtZSwg
ImZpcnN0LXBhaW50Iik7CisgICAgICAgIHQuZG9uZSgpOworICAgICAgfSk7CisgICAgfQorICAg
IHQuc3RlcChmdW5jdGlvbigpIHsKKyAgICAgIHRlc3RQYWludEVudHJpZXMoKTsKKyAgICB9KQor
fSwgIkZpcnN0IHBhaW50IGZpcmVzIGR1ZSB0byBiYWNrZ3JvdW5kIGNvbG9yLiBObyBGQ1AiKTsK
Kzwvc2NyaXB0PgorPGZvb3Rlcj4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LXBhaW50LW9u
bHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYWludC10aW1pbmcvZmlyc3QtcGFpbnQtb25seS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjdkZDAxODVkZDFiYjhiY2Y3ODIxZGZjMTU1YzY0YWEwZDhjYzY4ZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQt
dGltaW5nL2ZpcnN0LXBhaW50LW9ubHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIFBlcmZvcm1hbmNlIGZpcnN0IHBhaW50IHRpbWluZyBlbnRyeSBleGlzdHMuIE5vIGZpcnN0
IGNvbnRlbnRmdWwgcGFpbnQuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9maXJzdC1wYWludC1vbmx5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWlu
Zy9maXJzdC1wYWludC1vbmx5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmIwZTc1Mjg3NTMxZWEwMTljMWY5
ODZkNDY0ODFkMTYxNmVmYTk5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LXBhaW50LW9ubHku
aHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxoZWFkPgorPHRpdGxlPlBl
cmZvcm1hbmNlIFBhaW50IFRpbWluZyBUZXN0OiBGUCBvbmx5PC90aXRsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PGRpdiBpZD0ibWFpbiI+PC9kaXY+CisKKzxzY3JpcHQ+Cithc3luY190ZXN0KGZ1bmN0aW9uICh0
KSB7CisgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAg
ZGl2LnN0eWxlLndpZHRoID0gIjEwMHB4IjsKKyAgICBkaXYuc3R5bGUuaGVpZ2h0ID0gIjEwMHB4
IjsKKyAgICBkaXYuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gInJlZCI7CisgICAgZGl2LnN0eWxl
LmNvbG9yID0gImJsdWUiOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluIikuYXBw
ZW5kQ2hpbGQoZGl2KTsKKworICAgIGZ1bmN0aW9uIHRlc3RQYWludEVudHJpZXMoKSB7CisgICAg
ICAgIGNvbnN0IGJ1ZmZlcmVkRW50cmllcyA9IHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUo
J3BhaW50Jyk7CisgICAgICAgIGlmIChidWZmZXJlZEVudHJpZXMubGVuZ3RoIDwgMSkgeworICAg
ICAgICAgIHQuc3RlcF90aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFBhaW50
RW50cmllcygpOworICAgICAgICAgIH0sIDIwKTsKKyAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhidWZmZXJlZEVudHJpZXMubGVuZ3RoLCAxLCAiRlAgb25seS4iKTsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoYnVmZmVyZWRFbnRyaWVzWzBdLmVudHJ5VHlwZSwgInBhaW50Iik7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50cmllc1swXS5uYW1lLCAiZmlyc3QtcGFp
bnQiKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisgICAgdC5z
dGVwKGZ1bmN0aW9uKCkgeworICAgICAgdGVzdFBhaW50RW50cmllcygpOworICAgIH0pCit9LCAi
UGVyZm9ybWFuY2UgZmlyc3QgcGFpbnQgdGltaW5nIGVudHJ5IGV4aXN0cy4gTm8gZmlyc3QgY29u
dGVudGZ1bCBwYWludC4iKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1p
bmcvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvaWRsaGFybmVzcy53aW5kb3ctZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxMDhiNGZkZDU0YjQ4ZDEyNTVkYWE1MTY5YjBmZWRiOGE2
NTYyYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMiBAQAorCitGQUlMIGlkbF90ZXN0IHNldHVwIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHBhaW50
IGV2ZW50IgorUEFTUyBpZGxfdGVzdCB2YWxpZGF0aW9uIAorUEFTUyBQZXJmb3JtYW5jZVBhaW50
VGltaW5nIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QgCitQQVNTIFBlcmZvcm1hbmNlUGFpbnRUaW1pbmcgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGggCitQQVNTIFBlcmZvcm1hbmNlUGFpbnRUaW1pbmcgaW50ZXJmYWNlIG9iamVjdCBuYW1lIAor
UEFTUyBQZXJmb3JtYW5jZVBhaW50VGltaW5nIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAorUEFTUyBQZXJmb3JtYW5jZVBh
aW50VGltaW5nIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKK1BBU1MgUGVyZm9y
bWFuY2VQYWludFRpbWluZyBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgCitGQUlM
IFBlcmZvcm1hbmNlUGFpbnRUaW1pbmcgbXVzdCBiZSBwcmltYXJ5IGludGVyZmFjZSBvZiBwYWlu
dFRpbWluZyBhc3NlcnRfZXF1YWxzOiBVbmV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGV2YWx1YXRp
bmcgb2JqZWN0IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIlJlZmVyZW5jZUVycm9yOiBD
YW4ndCBmaW5kIHZhcmlhYmxlOiBwYWludFRpbWluZyIKK0ZBSUwgU3RyaW5naWZpY2F0aW9uIG9m
IHBhaW50VGltaW5nIGFzc2VydF9lcXVhbHM6IFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gZXZh
bHVhdGluZyBvYmplY3QgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiUmVmZXJlbmNlRXJy
b3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHBhaW50VGltaW5nIgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9pZGxo
YXJuZXNzLndpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wYWludC10aW1pbmcvaWRsaGFybmVzcy53aW5kb3cuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1p
bmcvaWRsaGFybmVzcy53aW5kb3cuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBp
cyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1w
bGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9p
ZGxoYXJuZXNzLndpbmRvdy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcGFpbnQtdGltaW5nL2lkbGhhcm5lc3Mud2luZG93LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNh
ZDBkY2QwYmU1MTBjMWJhZmExZjE4Y2E0MTBjOWRmNDE4YTkzMjYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWlu
Zy9pZGxoYXJuZXNzLndpbmRvdy5qcwpAQCAtMCwwICsxLDI4IEBACisvLyBNRVRBOiBzY3JpcHQ9
L3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMKKy8vIE1FVEE6IHNjcmlwdD0vcmVzb3VyY2VzL2lk
bGhhcm5lc3MuanMKKworJ3VzZSBzdHJpY3QnOworCisvLyBodHRwczovL3czYy5naXRodWIuaW8v
cGFpbnQtdGltaW5nLworCitpZGxfdGVzdCgKKyAgWydwYWludC10aW1pbmcnXSwKKyAgWydwZXJm
b3JtYW5jZS10aW1lbGluZSddLAorICAoaWRsX2FycmF5LCB0KSA9PiB7CisgICAgaWRsX2FycmF5
LmFkZF9vYmplY3RzKHsKKyAgICAgIFBlcmZvcm1hbmNlUGFpbnRUaW1pbmc6IFsncGFpbnRUaW1p
bmcnXSwKKyAgICB9KTsKKworICAgIGNvbnN0IGF3YWl0UGFpbnQgPSBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKKyAgICAgIGxldCBvYnNlcnZlciA9IG5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKGxp
c3QgPT4geworICAgICAgICBzZWxmLnBhaW50VGltaW5nID0gbGlzdC5nZXRFbnRyaWVzKClbMF07
CisgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh7
IGVudHJ5VHlwZXM6IFsncGFpbnQnXSB9KTsKKyAgICB9KTsKKyAgICBjb25zdCB0aW1lb3V0ID0g
bmV3IFByb21pc2UoKF8sIHJlamVjdCkgPT4geworICAgICAgdC5zdGVwX3RpbWVvdXQoKCkgPT4g
cmVqZWN0KCdUaW1lZCBvdXQgd2FpdGluZyBmb3IgcGFpbnQgZXZlbnQnKSwgNTAwMCk7CisgICAg
fSk7CisgICAgcmV0dXJuIFByb21pc2UucmFjZShbYXdhaXRQYWludCwgdGltZW91dF0pOworICB9
CispOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYWludC10aW1pbmcvcGFpbnQtdmlzaXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9wYWludC12aXNp
dGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzhmZjM0OTc2ZDc4YTJmZWM5MjlhZGYwYjAz
YjIzYTIyZDJkODg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvcGFpbnQtdmlzaXRlZC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0IEBACitsaW5rCisKK1BBU1MgVmlzaXRlZC1hdHRhY2sgdGVzdCB0byBj
aGVjayBleGlzdGVuY2Ugb2YgRlAgYW5kIEZDUC4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL3BhaW50LXZpc2l0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFp
bnQtdGltaW5nL3BhaW50LXZpc2l0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMDczNGY5N2FjYzJjY2E1
MDBmMjgwYTU4ZmFiNjlmZDhiMjZjNzc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvcGFpbnQtdmlzaXRl
ZC5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICBhOnZp
c2l0ZWQgeworICAgIGNvbG9yOndoaXRlOworICB9Cis8L3N0eWxlPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8YSBpZD0ibGluayIg
aHJlZj0iLi8iPmxpbms8L2E+Cis8c2NyaXB0PgorLyogVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBh
biBlbXB0eSBwYWdlIGlzIHBhaW50ZWQgd2hlbiB0aGVyZSBpcyBhbiBpbnZpc2libGUgdmlzaXRl
ZCBsaW5rICh0aGF0IHdvdWxkIGJlIHZpc2libGUgaWYgdGhlIGxpbmsgd2FzIG5vdCB2aXNpdGVk
KS4gSXQncyBuZWNlc3NhcnkgdGhhdCB3aGV0aGVyIHRoZSBwYWdlIGlzIHBhaW50ZWQgb3Igbm90
IGRvZXMgbm90IGRlcGVuZCBvbiB2aXNpdGVkbmVzcyBvZiB0aGUgbGluay4gT3RoZXJ3aXNlIHRo
ZSBwYWludC10aW1pbmcgQVBJIGNvdWxkIGJlIHVzZWQgdG8gc25pZmYgd2hldGhlciBhIGxpbmsg
aGFzIGJlZW4gdmlzaXRlZCBvciBub3QuICovCit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7
CisgIC8qIENvbnZlbmllbmNlIGhlbHBlciB0byBnZXQgdGhlIGxpbmsgaW50byB0aGUgYnJvd3Np
bmcgaGlzdG9yeS4KKyAgICBVc2luZyBhIHJlbGF0aXZlIHBhdGggYmVjYXVzZSBzb21lIGJyb3dz
ZXJzIG9ubHkgYWxsb3cgcmVwbGFjZVN0YXRlIHdpdGhpbiB0aGUgc2FtZSBkb21haW4uICovCisg
IGN1cnJlbnRfdXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWY7CisgIGhpc3RvcnkucmVwbGFjZVN0
YXRlKHt9LCAiIiwgIi4vIik7CisgIGhpc3RvcnkucmVwbGFjZVN0YXRlKHt9LCAiIiwgY3VycmVu
dF91cmwpOworfQorYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgIGZ1bmN0aW9uIHRlc3RQYWlu
dEVudHJpZXMoKSB7CisgICAgICBjb25zdCBidWZmZXJlZEVudHJpZXMgPSBwZXJmb3JtYW5jZS5n
ZXRFbnRyaWVzQnlUeXBlKCdwYWludCcpOworICAgICAgaWYgKGJ1ZmZlcmVkRW50cmllcy5sZW5n
dGggPCAyKSB7CisgICAgICAgICAgdC5zdGVwX3RpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgIHRlc3RQYWludEVudHJpZXMoKTsKKyAgICAgICAgICB9LCAyMCk7CisgICAgICAgICAg
cmV0dXJuOworICAgICAgfQorICAgICAgdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAgICAgIGFz
c2VydF9lcXVhbHMoYnVmZmVyZWRFbnRyaWVzLmxlbmd0aCwgMiwgIkZQIGFuZCBGQ1AuIik7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhidWZmZXJlZEVudHJpZXNbMF0uZW50cnlUeXBlLCAicGFp
bnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50cmllc1swXS5uYW1lLCAi
Zmlyc3QtcGFpbnQiKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJ1ZmZlcmVkRW50cmllc1sx
XS5lbnRyeVR5cGUsICJwYWludCIpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoYnVmZmVyZWRF
bnRyaWVzWzFdLm5hbWUsICJmaXJzdC1jb250ZW50ZnVsLXBhaW50Iik7CisgICAgICAgICAgdC5k
b25lKCk7CisgICAgICB9KTsKKyAgfQorICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICB0ZXN0
UGFpbnRFbnRyaWVzKCk7CisgIH0pOworfSwgIlZpc2l0ZWQtYXR0YWNrIHRlc3QgdG8gY2hlY2sg
ZXhpc3RlbmNlIG9mIEZQIGFuZCBGQ1AuIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGlt
aW5nL3Jlc291cmNlcy9jaXJjbGUuc3ZnIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvcmVzb3VyY2VzL2NpcmNsZS5zdmcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmI1ZmRiZThlMDY1MzcyODEyNTMzMWI1OThmNTZjZDU1NDU4YTk0ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQt
dGltaW5nL3Jlc291cmNlcy9jaXJjbGUuc3ZnCkBAIC0wLDAgKzEsMyBAQAorPHN2ZyB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSI+CisgICA8Y2lyY2xlIGN4
PSIxMDAiIGN5PSI1MCIgcj0iNDAiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMiIgZmls
bD0ibm9uZSIgLz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvcmVzb3VyY2VzL2NpcmNsZXMucG5nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcv
cmVzb3VyY2VzL2NpcmNsZXMucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwODY4MmEyMDdiNDdkODdmNTgyYzc5
ZjNhNWFiNTE5ZDdmNTIwNWQKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDI0NzkKemNtVjtnMn5o
VGxQKTxoOzNLfExrMDAwZTFOSkxUcTAwMU5hMDAya2AxXkBzNm87RnZ4MDAwOCtYK3VMJE5rYzsq
CnpQO3pmKFg+NFR4MEMpan5STF5TQEtAfFFyWm1HfkIyd0gwbnZVcmRwTm07OUNNYnRMXjVuXmkk
K2FJPD9rWXFEUwp6KV4wWkk/azJVUmh+KG5ZRCY5cnlwJEdxZjkod1IoRkdfYDRNSlYyQEN9Tj0o
RSVEODZPdHopIXp8TWEyLVokQGsKelorNzFSNFJYPm5ePyhIQTRhWldWNW92NkVMVGRibzBGSSZ3
S3tPPiordzR2eDIwPz4hYEZyUXNkSmxuSFI+T1B5CnpjZH5iX24kb3RLMlphNFY7NzZMLUR6TlZ0
YVNCLXkwKkV9e3AoKTM3Mjtid19eNlpafVBJLTkyd0dTJmojOTFQSQp6S3M3RFNlQChiayVfWS03
Z0dlfShePkk9QG9ZI3cjKkJ1OUdaZjNeRjVXUD4zcm59N1V0NzQmP1BXQkZ2eWBBKWEKelBQNSlW
IVhkJjc4TGRBP3hRKDltak1ZRWxWZDEzYSNEK1pfNyZZfHhVPV9DLXNyV1UqNmtpWmNDISRudyop
OSQ3CnpuNkNYK0A9QWhta1R9WEBWU3NhNU5LZTtIWnVxKX4xJGAjaDZSK1pUUiNELTNqfXZGISla
T256KzUpZEk0amx7ewp6NDRNcntQIUw0flZWSk5gSyEhWFRGKkxHcktPP0lLODxUcjdidEchTGJZ
ZXVZTDM9amJKLTFQJC04fXYlQjV7O00KendGcntATEg7VlEkeHIyWmBPOTNlKmpEJEh0KCUmPF41
OHFnPChhdH05QG8+ejw4d2AzZTNqSThsVUdOVXRhKkM4CnpuKFBgcz57cGpEPTdLZWsjQjtGd0Bo
eEFLJSRGJlE2dmc5Sl5YZn40YnlfaHUtPUEhTUozWm5xJm5+c3JiRkdQcwp6SCYmYU1YWj5uT2B8
aGZ8bGpjP1ZQaFIhJHtBYk8/Vzh4Xz5DVSVQRkEmSG04RjdjQXNPUkVkd1V+Ul87b3QxX3UKeihy
dUNZQi1MUEduIU5RZFR8WmxSeSsoZndeLStgPSUrZ2VlX2tZNEZXSGc8KjRzWkk4K3NGSkQ8b0Fs
X3BDfCReCnpZfmFZNXhAfVcmPyt+RzdyRVlWczB2RXMwZWVrdyFZb21UUmB+K0Ekc31gK05ISj4y
NzBVVU9SZExITzBuQTRWKQp6JXtmd3NFVDVDUT5CP2VLJXV3NHlRY345PypKVm88dnpiKzU+Mn16
ZSg7YVJjcCpjZUwjSFVKU2xscmdtNXdRS1IKelF1K0M7UXJVaF44ckZmQWBmdEZ6e1lBaWRpLWBh
TDAxMHFOUyN0bVkzbGpoVTNsamtWbnclSF8wMHc3Q0xfdCgmCnoxP2AkcVomZ0pRJDlKelM1bUhO
QVZ1SGpiSzhnZWJwQHxCOTAofHR6Q2xjYDt6SlI4WUZNI2lBTFBFbG1rTWFvdwp6QiFTZV9zNjNq
SylGen5XKm5ueHtVNFE/WElYJD1NLXFJSEM8Pl5lYT1qX2hlb3RkNFQtSk98eGJER2EzP0Z2ZkQK
elhAO0tyUSVSNGdLaXdRdjV5K2RFTTR0b25uRmpOV2BhfEJtVXdiKz5zJC0zSXFiVlpZNU0mP3E2
Xkp8T2xGcXtRCnoxZyUtaEEmUGBwPCsoKE1VbD88cF9FUXJocl5EZGFMJEhxWjxTYEpRQmFtMitL
flRoJlpFemB7QDs7WUpJbkNSSgp6dW4pfSNMcnU3UmxsUFVCXkFGWXxyejVsPFB+Vl5vKT4hVWVH
U15CPGxNRVNXQWhSeEs1I25wd3I7S24oemU0WE8Kej9TKWtHQUg0cSN7SzFzVlFKOWAmJXhVbikx
QWlCeHpHQlJFK0syY3FmdTJ6TXdiYy0pVUx2aSNUQlVyKTw4eHsoCnpVQX4zQG0lLW5tNFZxJG90
WDA+QTZPPVRFZkVTX2g4Ny1MU0AxYiElIz9BMVNaRVkyKkF5OCR3NHtjRUR7Pio/Ngp6Q15zMVEx
QEMoJUsoYntOQTxhfl8oZDh8SGdwO2pGdiU8Tn1yU3ZZJVopdTtRKz1rWU5MOGxVYG51M2dFNkV4
cFIKemlsaGQqenc8Wj5tdjFOK2dUTzR6d0xCfjgwbn4pbDUoUzU8cmUhfH0+UnV8SGtMaHJrYT1+
ZUwtVUJhUTs7SDN4CnpUQUVUYyN6Qm82KFNsfk8zOFF0RkZtS2FtaWZgPG92PTtyaDNJbm5TXmk1
P2cjIU5YNFhlRGUodzhnYGhULXNGRwp6QjlPTkJuOz0oTmI4TG9YRHlFckI7Tk1+M1V6RW8mc0cy
Pl45bD0+QHRaMFo8JTlvcnJKZShJaWpkISl8XlNTcnwKemhUWDg2UXUmYiVIJSFJU2owbXxzPzh0
bz05WGlsezMhMyorPyo3Q1pvNjRWSD0tUGQ8ciRAM3YlfGVDPHUoZ2YzCno4TCR2cXA4ciVDNXtR
OykwPiVUYTcqOFEyTHJFUks0JWlLTD0kLVBkWk0jVlpUckhDWjM8SSohJSQpODtKVUIpWQp6WFBm
aDBMMz1hT2tuU2VJSWVSOX44Ry1NbnV6Q003cS1RNStMb1JzUD4ySzhjcjtjQmdlNnkydjUlZTct
KXBlbioKej0lUU5ScCo9K05OJD9QXyNvI1MmKnBPfipVNmUmZmRjR0JHTjE+VktqR1R2ZjhnRkVm
RVAqYHt5fTZzTHJXNHJECnpnKGpLZHZfKlIoY3I3P2ReQm52bDBXc0BIeUNfdiVfeDREaT5wbz84
ST1CcER0YFQ9N2JaZEx0NTI7YmdRe1I2VAp6UGs4fkc4WDZfKnowdDt+MUBpUHs8QGh0YXtuaj9y
JFI2UyRVZ0dKWERgWm5jeC08Y0V1MmhNV1RoKT1sSn50MHwKekk9QnFKJWtZNjZQTVZae2A/QHY3
aGF0YTJUaSU1TD9AfHlsVkFQNVpiaCpoQCNhRmdvcWNgZzYhcSRROENabkw+CnpmRFhvS1EoWkJL
VHQ0c3xaOD4wYW9PfSpjaDZ0aUw4OWM9NkkwdiRWMGRicXchVDJvTFVVOD1RenlrTzVNeGlQQgp6
VVNZXz1EPTlLRHU5OVVRMHF5U00jXyE1YCRCc0oza1haaCt5dWA7UXA3bnB9aGtTT1luZW5xcl9j
dGdtejtCTkMKelZSKUBiTHl8MntXYCF6M25MfCFCTztCRF9Xaz9gZXE2cnVldUBfSClXUVlVRCE7
dkhBeG4pOFheVzw+SSY5ayM+CnpnQExxUTk1aHp2antLbmVrUF9gUEBLYWMlNFckNm1nTnVrZDxm
QS1iZk51UXIzXjt+TVp+QCNaWlRaITVeNXc4PQp6YFN2MjV2QGVeUDt5dUNtS2NXMykoN3RXRmpI
Z0FqUEIjUzc0MFFXJEZjPV9pRGhoK2x5X0FxMTJLZnZYMkZYX3YKenhHOCRRX2dRSzQ0U0w5Y213
WWwyMjktcCMzbEQpdXY5KSYqMF9sXjhpX3JgUF4oayZycHJ8O2l1c3ZUbVAhIUduCnpLb0tNbXlt
fUBrSkB0VD1QSFUtLWheU2V4Jks3YTlCWFlVUWNrS3dCUV9Jd3FJRlFFdmlLM2ZaeE1kMnYpPFdz
NAp6T2lhNTs1ZTdDQm4oLShAeXRhekt3cn1RI2VCRV87Wkolc2RnIW5ES0tRR3p2NSNRZzNwX2Io
PyM+O05uZCRQZ0MKeiQzdTNZYCRocXpXKD9zLSRKaUN+eW1YQjk8fF5VQHduSHp7Rn18RGpvUV5T
U0BvO1Q8czNaP1MlSyNzV3tQMncxCnpTP3BNRjJoU3AzODg4PjZDIzx9JENudDg3dW98I3JBeHF6
QCU4YX5ANVEtWGYzPTlTcmMhRUJZYm9pSGt2SzMpPgp6aE9ITDBiTmBYfD0tS3Z6YylqZUJ0KGpo
NFMmbmhna3tPT2luYDZgaE9CLSYkelQ4IzRHVCUxRyp4YnNzTzt4b3YKeiRMT31Se25NPlhlcEgp
ZCsrSXQpVSltZ0Z1UXMtO3c+aWVgR31GWXBxdFdJVm58aTYrWkh9P2wjYT9Qe2o8TUVPCnpuYDVr
WEZ9VCg+YmVtKUIqR2AqYj9BSisrWD4qTFZGMSVLUzslJHlHJko7X31EVWEwcVhPdVJfTlEhc2hB
RFlANgp0V0I7R3h7Q0JTPExqRzVwVzdKPFdNKSRZRHt7ZE5VNExKfSlaWmBrYDAwMm92UERITGtW
MWZlMiNwM19+CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9yZXNvdXJjZXMv
c3ViZnJhbWUtcGFpbnRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL3Jlc291cmNlcy9zdWJmcmFtZS1wYWludGluZy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVmYjVlMjhkOGE0YWJmM2U1ZTA3ZDliMDZiMzY2OTRjYWMyNDAyYzAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3BhaW50LXRpbWluZy9yZXNvdXJjZXMvc3ViZnJhbWUtcGFpbnRpbmcuaHRtbApAQCAtMCww
ICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPGRpdiBpZD0iaW1hZ2UiPjwvZGl2
PgorPHNjcmlwdD4KKyAgY29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnSU1HJyk7
CisgIGltZy5zcmMgPSAnY2lyY2xlcy5wbmcnOworICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7
CisgICAgZnVuY3Rpb24gc2VuZFBhaW50RW50cmllcygpIHsKKyAgICAgIGNvbnN0IHBhaW50RW50
cmllcyA9IHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoJ3BhaW50Jyk7CisgICAgICBpZiAo
cGFpbnRFbnRyaWVzLmxlbmd0aCA8IDIpIHsKKyAgICAgICAgc2V0VGltZW91dChzZW5kUGFpbnRF
bnRyaWVzLCAyMCk7CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIGxldCBlbnRyeUNv
bnRlbnRzID0gcGFpbnRFbnRyaWVzLmxlbmd0aCArICcnOworICAgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCBwYWludEVudHJpZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgY29uc3QgZW50cnkgPSBw
YWludEVudHJpZXNbaV07CisgICAgICAgIGVudHJ5Q29udGVudHMgKz0gJyAnICsgZW50cnkuZW50
cnlUeXBlICsgJyAnICArIGVudHJ5Lm5hbWU7CisgICAgICB9CisgICAgICBwYXJlbnQucG9zdE1l
c3NhZ2UoZW50cnlDb250ZW50cywgJyonKTsKKyAgICB9OworICAgIHNlbmRQYWludEVudHJpZXMo
KTsKKyAgfTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltYWdlJykuYXBwZW5kQ2hpbGQo
aW1nKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvcmVzb3VyY2Vz
L3N1YmZyYW1lLXNlbmRpbmctcGFpbnQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL3Jlc291cmNlcy9zdWJmcmFtZS1zZW5kaW5n
LXBhaW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM3MmJkNmY0Zjg4NDY4YWU2N2E0YjUxMzkzNDY0NjFj
OGQzNTYyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL3Jlc291cmNlcy9zdWJmcmFtZS1zZW5kaW5nLXBh
aW50Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0PgorICBz
ZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihlKSB7CisgICAgLy8gU2Vu
ZCBwYWludC10aW1pbmcgZW50cmllcyB1cG9uIHJlY2VpdmluZyBhIG1lc3NhZ2UuCisgICAgY29u
c3QgcGFpbnRFbnRyaWVzID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgncGFpbnQnKTsK
KyAgICBsZXQgZW50cnlDb250ZW50cyA9IHBhaW50RW50cmllcy5sZW5ndGggKyAnJzsKKyAgICBm
b3IgKGxldCBpID0gMDsgaSA8IHBhaW50RW50cmllcy5sZW5ndGg7IGkrKykgeworICAgICAgY29u
c3QgZW50cnkgPSBwYWludEVudHJpZXNbaV07CisgICAgICBlbnRyeUNvbnRlbnRzICs9ICcgJyAr
IGVudHJ5LmVudHJ5VHlwZSArICcgJyAgKyBlbnRyeS5uYW1lOworICAgIH0KKyAgICBwYXJlbnQu
cG9zdE1lc3NhZ2UoZW50cnlDb250ZW50cywgJyonKTsKKyAgfSk7Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQt
dGltaW5nL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL3Jlc291cmNlcy93M2MtaW1wb3J0Lmxv
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43OTJkZTRkMzY5NjMxNTFjYzI5MzM4ODMwYWY0MjQzZDdjMTA2NTFhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wYWludC10aW1pbmcvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjAg
QEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJ
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKwor
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1By
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0
IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cGFpbnQtdGltaW5nL3Jlc291cmNlcy9jaXJjbGUuc3ZnCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvcmVzb3VyY2VzL2NpcmNsZXMucG5n
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1p
bmcvcmVzb3VyY2VzL3N1YmZyYW1lLXBhaW50aW5nLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9yZXNvdXJjZXMvc3ViZnJhbWUt
c2VuZGluZy1wYWludC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9zaWJsaW5nLXBhaW50aW5nLWZpcnN0LWlt
YWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
aW50LXRpbWluZy9zaWJsaW5nLXBhaW50aW5nLWZpcnN0LWltYWdlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDQxOTdlOGEzNWM0NDQ0MDFiMGE3ZGM4NGYwZmM1YTI3OTE5M2NhMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGlt
aW5nL3NpYmxpbmctcGFpbnRpbmctZmlyc3QtaW1hZ2UuaHRtbApAQCAtMCwwICsxLDM0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorIDwhLS0gVGhpcyBpZnJhbWUgd2lsbCBoYXZlIGEgc2libGluZyB0
aGF0IHBhaW50cywgd2Ugd2FudCB0byBlbnN1cmUgaXQgZG9lcyBub3QgZGV0ZWN0IHRoYXQgcGFp
bnQuIC0tPgorPGlmcmFtZSBpZD0ibGlzdGVuaW5nLWlmcmFtZSIgc3JjPSJyZXNvdXJjZXMvc3Vi
ZnJhbWUtc2VuZGluZy1wYWludC5odG1sIj48L2lmcmFtZT4KKzxzY3JpcHQ+Cithc3luY190ZXN0
KGZ1bmN0aW9uICh0KSB7CisgICAgbGV0IHBhaW50aW5nSWZyYW1lSGFzRGlzcGF0Y2hlZEVudHJp
ZXMgPSBmYWxzZTsKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHQuc3Rl
cF9mdW5jKGUgPT4geworICAgICAgICBpZiAoIXBhaW50aW5nSWZyYW1lSGFzRGlzcGF0Y2hlZEVu
dHJpZXMpIHsKKyAgICAgICAgICAgIC8vIENoZWNrIHBhaW50LXRpbWluZyBlbnRyaWVzIGZyb20g
dGhlIHBhaW50aW5nIGlmcmFtZS4KKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLCAn
MiBwYWludCBmaXJzdC1wYWludCBwYWludCBmaXJzdC1jb250ZW50ZnVsLXBhaW50Jyk7CisgICAg
ICAgICAgICBwYWludGluZ0lmcmFtZUhhc0Rpc3BhdGNoZWRFbnRyaWVzID0gdHJ1ZTsKKyAgICAg
ICAgICAgIC8vIEFzayB0aGUgbGlzdGVuaW5nIGlmcmFtZSB0byBzZW5kIGl0cyBwYWludC10aW1p
bmcgZW50cmllcy4KKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaXN0ZW5p
bmctaWZyYW1lJykuCisgICAgICAgICAgICAgICAgY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZSgn
JywgJyonKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyBDaGVj
ayB0aGUgcGFpbnQtdGltaW5nIGVudHJpZXMgZnJvbSB0aGUgbGlzdGVuaW5nIGlmcmFtZS4KKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEsICcwJyk7CisgICAgICAgIC8vIENoZWNrIHRoYXQg
Y3VycmVudCBmcmFtZSByZWNlaXZlcyBmaXJzdC1wYWludCBidXQgbm90IGZpcnN0LWNvbnRlbnRm
dWwtcGFpbnQuCisgICAgICAgIGNvbnN0IGJ1ZmZlcmVkRW50cmllcyA9IHBlcmZvcm1hbmNlLmdl
dEVudHJpZXNCeVR5cGUoJ3BhaW50Jyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoYnVmZmVyZWRF
bnRyaWVzLmxlbmd0aCwgMSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoYnVmZmVyZWRFbnRyaWVz
WzBdLmVudHJ5VHlwZSwgJ3BhaW50Jyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoYnVmZmVyZWRF
bnRyaWVzWzBdLm5hbWUsICdmaXJzdC1wYWludCcpOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9
KSk7Cit9LCAnRnJhbWUgaWdub3JlcyBwYWludC10aW1pbmcgZXZlbnRzIGZpcmVkIGZyb20gc2li
bGluZyBmcmFtZS4nKTsKKzwvc2NyaXB0PgorPCEtLSBUaGlzIGlmcmFtZSBpcyB3aGVyZSBhbGwg
b2YgdGhlIHBhaW50aW5nIG9jY3Vycy4gLS0+Cis8aWZyYW1lIGlkPSJwYWludGluZy1pZnJhbWUi
IHNyYz0icmVzb3VyY2VzL3N1YmZyYW1lLXBhaW50aW5nLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy93M2MtaW1wb3J0LmxvZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41OTlkNDFjZmQ1M2I2M2ZlMDc3OTJmYjRkY2I0ZjNlYTMzZjJhYmUyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wYWludC10aW1pbmcvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwzMCBAQAorVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
CitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcv
TUVUQS55bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
aW50LXRpbWluZy9iYXNldGVzdC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvY2hpbGQtcGFpbnRpbmctZmlyc3QtaW1hZ2UuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGlt
aW5nL2ZpcnN0LWNvbnRlbnRmdWwtYmctaW1hZ2UuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL2ZpcnN0LWNvbnRlbnRmdWwtY2Fu
dmFzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Bh
aW50LXRpbWluZy9maXJzdC1jb250ZW50ZnVsLWltYWdlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9maXJzdC1jb250ZW50ZnVs
LXBhaW50Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3BhaW50LXRpbWluZy9maXJzdC1jb250ZW50ZnVsLXN2Zy5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wYWludC10aW1pbmcvZmlyc3QtaW1hZ2UtY2hp
bGQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFp
bnQtdGltaW5nL2ZpcnN0LXBhaW50LWJnLWNvbG9yLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRpbWluZy9maXJzdC1wYWludC1vbmx5Lmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BhaW50LXRp
bWluZy9pZGxoYXJuZXNzLndpbmRvdy5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL3BhaW50LXZpc2l0ZWQuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGFpbnQtdGltaW5nL3NpYmxpbmct
cGFpbnRpbmctZmlyc3QtaW1hZ2UuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGVyZm9y
bWFuY2UtYXBpL3BhaW50LXRpbWluZy1hcGlzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bl
cmZvcm1hbmNlLWFwaS9wYWludC10aW1pbmctYXBpcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Zjk3YTgyOTBiNjhhMmJmYWEyNjEwNGYzZmI0MmU1ZjIxYjk3N2Y4ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BlcmZvcm1hbmNlLWFwaS9wYWludC10aW1pbmctYXBpcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQmFzaWMgSW50ZXJmYWNlIHRlc3QgZm9yIHBhaW50LXRp
bWluZyBBUElzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUGVyZm9ybWFuY2VQ
YWludFRpbWluZworUEFTUyBQZXJmb3JtYW5jZVBhaW50VGltaW5nIGlzIGRlZmluZWQuCitQQVNT
IFBlcmZvcm1hbmNlUGFpbnRUaW1pbmcucHJvdG90eXBlLnRvSlNPTiBpcyBkZWZpbmVkLgorUEFT
UyBuZXcgUGVyZm9ybWFuY2VQYWludFRpbWluZygpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IGZ1bmN0aW9uIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgUGVyZm9ybWFu
Y2VQYWludFRpbWluZygpJykuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGVyZm9ybWFuY2UtYXBpL3Bh
aW50LXRpbWluZy1hcGlzLmh0bWwgYi9MYXlvdXRUZXN0cy9wZXJmb3JtYW5jZS1hcGkvcGFpbnQt
dGltaW5nLWFwaXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGRhZGYyZDFkMWQxZTU0ZjdlNGI0NDAyZmY2
MzI3NWUxZjcwNWZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGVyZm9ybWFuY2Ut
YXBpL3BhaW50LXRpbWluZy1hcGlzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhU
TUw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cGFpbnQtdGltaW5nLWFwaS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wZXJmb3JtYW5jZS1hcGkvcmVzb3VyY2VzL3BhaW50LXRpbWluZy1hcGku
anMgYi9MYXlvdXRUZXN0cy9wZXJmb3JtYW5jZS1hcGkvcmVzb3VyY2VzL3BhaW50LXRpbWluZy1h
cGkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2YwYzhiNjBiYTRiOTU1YTdmYTk5ZWRhYjRmN2NhNTE3YmNkZGRi
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BlcmZvcm1hbmNlLWFwaS9yZXNvdXJj
ZXMvcGFpbnQtdGltaW5nLWFwaS5qcwpAQCAtMCwwICsxLDEzIEBACitpZiAoc2VsZi5pbXBvcnRT
Y3JpcHRzKQorICAgIGltcG9ydFNjcmlwdHMoIi4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyIpOworCitpZiAoc2VsZi53aW5kb3cpCisgICAgZGVzY3JpcHRpb24oIkJhc2ljIEludGVyZmFj
ZSB0ZXN0IGZvciBwYWludC10aW1pbmcgQVBJcy4iKTsKKworZGVidWcoIlBlcmZvcm1hbmNlUGFp
bnRUaW1pbmciKTsKK3Nob3VsZEJlRGVmaW5lZCgiUGVyZm9ybWFuY2VQYWludFRpbWluZyIpOwor
c2hvdWxkQmVEZWZpbmVkKGBQZXJmb3JtYW5jZVBhaW50VGltaW5nLnByb3RvdHlwZS50b0pTT05g
KTsKK3Nob3VsZFRocm93KGBuZXcgUGVyZm9ybWFuY2VQYWludFRpbWluZygpYCk7CisKK2lmIChz
ZWxmLmltcG9ydFNjcmlwdHMpCisgICAgZmluaXNoSlNUZXN0KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>