<?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>217637</bug_id>
          
          <creation_ts>2020-10-12 15:10:55 -0700</creation_ts>
          <short_desc>&apos;parameters&apos; argument to AudioWorkletProcessor.process() is not spec-compliant</short_desc>
          <delta_ts>2020-10-13 13:03:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>217058</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1697067</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-12 15:10:55 -0700</bug_when>
    <thetext>&apos;parameters&apos; argument to AudioWorkletProcessor.process() is not spec-compliant:
- https://www.w3.org/TR/webaudio/#dom-audioworkletprocessor-process-inputs-outputs-parameters-parameters

Its type should not be a JSMap, as evidenced by how WPT tests use it. Also, as per the specification, if no automation is scheduled during the render quantum, the array may have length 1 with the array element being the constant value of the AudioParam for the render quantum.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697078</commentid>
    <comment_count>1</comment_count>
      <attachid>411170</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-12 15:27:12 -0700</bug_when>
    <thetext>Created attachment 411170
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697082</commentid>
    <comment_count>2</comment_count>
      <attachid>411172</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-12 15:33:40 -0700</bug_when>
    <thetext>Created attachment 411172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697342</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-13 12:32:25 -0700</bug_when>
    <thetext>Patch is ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697346</commentid>
    <comment_count>4</comment_count>
      <attachid>411172</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-13 12:54:08 -0700</bug_when>
    <thetext>Comment on attachment 411172
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        Its type should not be a JS Map, as evidenced by how WPT tests use it. We now pass a generic JS Object,
&gt; +        as Blink is doing.

I understand that the test helped make this clear. Was it also clear in the specification, or do we need to file an issue to ask for it to be made clearer.

&gt; Source/WebCore/ChangeLog:15
&gt; +        Also, as per the specification, if no automation is scheduled during the render quantum, the array may
&gt; +        have length 1 with the array element being the constant value of the AudioParam for the render quantum.

Not sure I understand the word &quot;may&quot; here. Does this mean it &quot;must&quot;?

&gt; Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp:997
&gt; +    auto endFrame = startFrame + AudioUtilities::renderQuantumSize;

What if someone passes a really huge startFrame in, like numeric_limits&lt;size_t&gt;::max()? Should we return true in that case instead of overflowing? Or is that impossible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697348</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-13 13:00:36 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 411172 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=411172&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:12
&gt; &gt; +        Its type should not be a JS Map, as evidenced by how WPT tests use it. We now pass a generic JS Object,
&gt; &gt; +        as Blink is doing.
&gt; 
&gt; I understand that the test helped make this clear. Was it also clear in the
&gt; specification, or do we need to file an issue to ask for it to be made
&gt; clearer.

The specification points to this:
https://infra.spec.whatwg.org/#ordered-map

I wrongly interpreted that as a JS map it seems.

&gt; &gt; Source/WebCore/ChangeLog:15
&gt; &gt; +        Also, as per the specification, if no automation is scheduled during the render quantum, the array may
&gt; &gt; +        have length 1 with the array element being the constant value of the AudioParam for the render quantum.
&gt; 
&gt; Not sure I understand the word &quot;may&quot; here. Does this mean it &quot;must&quot;?

Indeed, while the spec says &quot;MAY&quot;, there are web-platform-tests that fail if you don&apos;t do it. I think either the tests or the specification should change because they are not in complete agreement.

&gt; 
&gt; &gt; Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp:997
&gt; &gt; +    auto endFrame = startFrame + AudioUtilities::renderQuantumSize;
&gt; 
&gt; What if someone passes a really huge startFrame in, like
&gt; numeric_limits&lt;size_t&gt;::max()? Should we return true in that case instead of
&gt; overflowing? Or is that impossible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697349</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-13 13:02:28 -0700</bug_when>
    <thetext>Committed r268414: &lt;https://trac.webkit.org/changeset/268414&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411172.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697352</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-13 13:03:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/70262818&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411170</attachid>
            <date>2020-10-12 15:27:12 -0700</date>
            <delta_ts>2020-10-12 15:33:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217637-20201012152711.patch</filename>
            <type>text/plain</type>
            <size>35724</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA3YWI0MzVlYjA1OGZm
NjhhZTU2ZDZlN2FkM2NkZDM0NGYyNzE2ZC4uZDZkNjkzNzljMzhhNGIwZGI3MGY1ZDExMWM0YTNi
N2ExZDZlZWY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTEwLTEyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgJ3BhcmFtZXRlcnMnIGFyZ3Vt
ZW50IHRvIEF1ZGlvV29ya2xldFByb2Nlc3Nvci5wcm9jZXNzKCkgaXMgbm90IHNwZWMtY29tcGxp
YW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc2
MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAncGFy
YW1ldGVycycgYXJndW1lbnQgdG8gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLnByb2Nlc3MoKSBpcyBu
b3Qgc3BlYy1jb21wbGlhbnQ6CisgICAgICAgIC0gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1
ZGlvLyNkb20tYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtaW5wdXRzLW91dHB1dHMtcGFy
YW1ldGVycy1wYXJhbWV0ZXJzCisKKyAgICAgICAgSXRzIHR5cGUgc2hvdWxkIG5vdCBiZSBhIEpT
IE1hcCwgYXMgZXZpZGVuY2VkIGJ5IGhvdyBXUFQgdGVzdHMgdXNlIGl0LiBXZSBub3cgcGFzcyBh
IGdlbmVyaWMgSlMgT2JqZWN0LAorICAgICAgICBhcyBCbGluayBpcyBkb2luZy4KKworICAgICAg
ICBBbHNvLCBhcyBwZXIgdGhlIHNwZWNpZmljYXRpb24sIGlmIG5vIGF1dG9tYXRpb24gaXMgc2No
ZWR1bGVkIGR1cmluZyB0aGUgcmVuZGVyIHF1YW50dW0sIHRoZSBhcnJheSBtYXkKKyAgICAgICAg
aGF2ZSBsZW5ndGggMSB3aXRoIHRoZSBhcnJheSBlbGVtZW50IGJlaW5nIHRoZSBjb25zdGFudCB2
YWx1ZSBvZiB0aGUgQXVkaW9QYXJhbSBmb3IgdGhlIHJlbmRlciBxdWFudHVtLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cywgcmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Q
YXJhbTo6aGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRp
bWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6aGFzVmFs
dWVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGlu
ZS5oOgorICAgICAgICBUaGlzIGlzIGFuIG9wdGltaXphdGlvbiB0byBhdm9pZCBjYWxjdWxhdGlu
ZyBzYW1wbGUgYWNjdXJhdGUgdmFsdWVzIGlmIHRoZSBmaXJzdCB0aW1lbGluZSBldmVudCBpcwor
ICAgICAgICBzdGlsbCBpbiB0aGUgZnV0dXJlLiBBdCBzb21lIHBvaW50LCB3ZSBzaG91bGQgY29u
c2lkZXIgaW1wcm92aW5nIHRoZSBsb2dpYyB0byBkbyBzbyB3aGVuIGFsbCBldmVudHMKKyAgICAg
ICAgYXJlIGluIHRoZSBwYXN0LCBzaW1pbGFybHkgdG8gd2hhdCBCbGluayBpcyBkb2luZy4KKwor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjppbml0aWFsaXplQXVkaW9QYXJhbWV0ZXJzKToK
KyAgICAgICAgRG8gbm90IGluaXRpYWxpemUgbWVtb3J5IGZvciB0aGUgQXVkaW9GbG9hdEFycmF5
cyBvZiBlYWNoIEF1ZGlvUGFyYW0geWV0IHNpbmNlIHdlIHdvbid0IGtub3cgdW50aWwKKyAgICAg
ICAgcHJvY2VzcygpIGlzIGNhbGxlZCBpZiBzaXplIHdpbGwgYmUgMSBvciByZW5kZXJRdWFudHVt
U2l6ZSBhbmQgc2luY2UgdGhlIHNpemUgY2FuIGNoYW5nZSBkeW5hbWljYWxseS4KKworICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Tm9kZTo6cHJvY2Vzcyk6CisgICAgICAgIEFzIHBlciB0
aGUgc3BlY2lmaWNhdGlvbiwgaWYgdGhlcmUgaXMgbm8gdGltZWxpbmUgZXZlbnQsIHdlIHBhc3Mg
YW4gYXJyYXkgdGhhdCBoYXMgbGVuZ3RoIDEgYW5kIHdob3NlCisgICAgICAgIGVsZW1lbnQgaXMg
dGhlIGNvbnN0YW50IHZhbHVlLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0RnJvemVuS2V5
VmFsdWVPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpw
cm9jZXNzKToKKyAgICAgICAgSW5zdGVhZCBvZiBwYXNzaW5nIHRoZSBwYXJhbWV0ZXJzIGFzIGEg
SlMgbWFwLCB3ZSBub3cgdXNlIGEgc2ltcGxlIGZyb3plbiBvYmplY3QuIFdlIGFsc28gbWFrZSBz
dXJlCisgICAgICAgIHRoZSBGbG9hdDMyQXJyYXkgd2UgcGFzcyBKUyBoYXMgbGVuZ3RoIDEgaWYg
dGhlIGlucHV0IGFycmF5IGNvbnN0YWlucyBhIGNvbnN0YW50IHZhbHVlLiBUaGlzIGJlaGF2aW9y
CisgICAgICAgIGlzIGNvbnNpc3RlbnQgd2l0aCB3aGF0IEJsaW5rIGlzIGRvaW5nLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEZWxheURTUEtlcm5lbDo6RGVsYXlEU1BLZXJuZWwpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZUFuYWx5c2VyOjpzZXRGZnRTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0Fy
cmF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0FycmF5OjpBdWRpb0FycmF5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6OnJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b0FycmF5OjphdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0FycmF5Ojp6ZXJvKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6Onplcm9SYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb0FycmF5Ojpjb3B5VG9SYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0FycmF5Ojpj
b250YWluc0NvbnN0YW50VmFsdWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0Jp
cXVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWQ6OkJpcXVhZCk6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyU3RhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmV2ZXJiQ29udm9sdmVyU3RhZ2U6OlJldmVyYkNvbnZvbHZlclN0YWdlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9GaWxlUmVhZGVySU9TLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9tYWMvQXVkaW9GaWxlUmVhZGVyTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
RmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAgUmVuYW1lIEF1ZGlvQXJyYXk6OmFsbG9j
YXRlKCkgdG8gQXVkaW9BcnJheTo6cmVzaXplKCkgZm9yIGNsYXJpdHkgc2luY2UgaXQgY2FuIGJl
IGNhbGxlZCBtdWx0aXBsZSB0aW1lcworICAgICAgICBhZnRlciBjb25zdHJ1Y3Rpb24gb2YgdGhl
IEF1ZGlvQXJyYXkuIE1ha2UgaXQgYSBuby1vcCBpZiB0aGUgbmV3IHNpemUgaXMgdGhlIHNhbWUg
YXMgdGhlIG9sZCBvbmUuCisgICAgICAgIEFsc28gYWRkIGEgdXRpbGl0eSBmdW5jdGlvbiB0byBj
aGVjayBpZiB0aGUgYXJyYXkgY29uc3RhaW5zIGEgY29uc3RhbnQgdmFsdWUuCisKIDIwMjAtMTAt
MTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBDYWxsaW5nIEF1
ZGlvQ29udGV4dC5yZXN1bWUoKSByaWdodCBhZnRlciBBdWRpb0NvbnRleHQuc3VzcGVuZCgpIHNo
b3VsZCBub3QgYmUgYSBuby1vcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1BhcmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9QYXJhbS5jcHAKaW5kZXggMzdhMzNlNWVjM2RkNjUyMWIzNDBjNTEyNzQ0M2YxMjA3MDlh
YzUxNC4uYzU4Y2RhZmI0YjFkMmI2NjBlZDVkM2E3YjI2NDYwNDViYTk2MzM1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCkBAIC0yMjMsNiAr
MjIzLDE0IEBAIEV4Y2VwdGlvbk9yPEF1ZGlvUGFyYW0mPiBBdWRpb1BhcmFtOjpjYW5jZWxBbmRI
b2xkQXRUaW1lKGRvdWJsZSBjYW5jZWxUaW1lKQogICAgIHJldHVybiAqdGhpczsKIH0KIAorYm9v
bCBBdWRpb1BhcmFtOjpoYXNTYW1wbGVBY2N1cmF0ZVZhbHVlcygpCit7CisgICAgaWYgKG51bWJl
ck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBy
ZXR1cm4gbV90aW1lbGluZS5oYXNWYWx1ZXMoY29udGV4dCgpLmN1cnJlbnRTYW1wbGVGcmFtZSgp
LCBjb250ZXh0KCkuc2FtcGxlUmF0ZSgpKTsKK30KKwogZmxvYXQgQXVkaW9QYXJhbTo6ZmluYWxW
YWx1ZSgpCiB7CiAgICAgZmxvYXQgdmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9QYXJhbS5oCmluZGV4IDE2YjQzMjU1YjYzZTI3NzcxODM4NTI3MTA0YmQ3YWY5
YTA2MTQyNGYuLjQ4OTkwMWQ5NjJhNmFkZmJjMTEzNWQ5OTllYjZlYzIxNjVkNjlmM2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCkBAIC0xMDYsNyAr
MTA2LDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPEF1ZGlvUGFyYW0mPiBjYW5jZWxTY2hl
ZHVsZWRWYWx1ZXMoZG91YmxlIGNhbmNlbFRpbWUpOwogICAgIEV4Y2VwdGlvbk9yPEF1ZGlvUGFy
YW0mPiBjYW5jZWxBbmRIb2xkQXRUaW1lKGRvdWJsZSBjYW5jZWxUaW1lKTsKIAotICAgIGJvb2wg
aGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3RpbWVsaW5lLmhhc1Zh
bHVlcygpIHx8IG51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKTsgfQorICAgIGJvb2wgaGFz
U2FtcGxlQWNjdXJhdGVWYWx1ZXMoKTsKICAgICAKICAgICAvLyBDYWxjdWxhdGVzIG51bWJlck9m
VmFsdWVzIHBhcmFtZXRlciB2YWx1ZXMgc3RhcnRpbmcgYXQgdGhlIGNvbnRleHQncyBjdXJyZW50
IHRpbWUuCiAgICAgLy8gTXVzdCBiZSBjYWxsZWQgaW4gdGhlIGNvbnRleHQncyByZW5kZXIgdGhy
ZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtVGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtVGltZWxpbmUuY3BwCmluZGV4IGZmNjgxNzI4NTAwOGJlNzBiNTZjNWU2NTZiZjgwNTM5YTZm
NWQ4OTYuLjFhNDkyMGZlMmE2ODM1NGQ3NjBhY2MwYTUyYzRhYTMzYThjMGVlYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGlu
ZS5jcHAKQEAgLTk4Nyw2ICs5ODcsMTYgQEAgYm9vbCBBdWRpb1BhcmFtVGltZWxpbmU6OmlzRXZl
bnRDdXJyZW50KGNvbnN0IFBhcmFtRXZlbnQmIGV2ZW50LCBjb25zdCBQYXJhbUV2ZW4KICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBBdWRpb1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyhzaXpl
X3Qgc3RhcnRGcmFtZSwgZG91YmxlIHNhbXBsZVJhdGUpIGNvbnN0Cit7CisgICAgYXV0byBsb2Nr
ZXIgPSB0cnlIb2xkTG9jayhtX2V2ZW50c0xvY2spOworICAgIGlmICghbG9ja2VyKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIGF1dG8gZW5kRnJhbWUgPSBzdGFydEZyYW1lICsgQXVkaW9V
dGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplOworICAgIHJldHVybiAhbV9ldmVudHMuaXNFbXB0
eSgpICYmIGVuZEZyYW1lIC8gc2FtcGxlUmF0ZSA+IG1fZXZlbnRzWzBdLT50aW1lKCkudmFsdWUo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9B
VURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbVRpbWVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFy
YW1UaW1lbGluZS5oCmluZGV4IGJkZTAwMGE5MmFiODI0ZTIyNDljYzEyZDBiNmRiN2UzMDNjMTNm
MDIuLmZiOTA5Mjk0ZTc4Yjk5YjQ1Yjc3MTQxMTkwNTEwZGIwMzRkYmVmMDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaApA
QCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIHJlbmRlciBxdWFudHVtIHNpemUg
c3VjaCB0aGF0IHRoZSBwYXJhbWV0ZXIgdmFsdWUgY2hhbmdlcyBvbmNlIHBlciByZW5kZXIgcXVh
bnR1bS4KICAgICBmbG9hdCB2YWx1ZXNGb3JGcmFtZVJhbmdlKHNpemVfdCBzdGFydEZyYW1lLCBz
aXplX3QgZW5kRnJhbWUsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxvYXQgbWluVmFsdWUsIGZsb2F0
IG1heFZhbHVlLCBmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1iZXJPZlZhbHVlcywgZG91Ymxl
IHNhbXBsZVJhdGUsIGRvdWJsZSBjb250cm9sUmF0ZSk7CiAKLSAgICBib29sIGhhc1ZhbHVlcygp
IGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRzLnNpemUoKTsgfQorICAgIGJvb2wgaGFzVmFsdWVzKHNp
emVfdCBzdGFydEZyYW1lLCBkb3VibGUgc2FtcGxlUmF0ZSkgY29uc3Q7CiAKIHByaXZhdGU6CiAg
ICAgY2xhc3MgUGFyYW1FdmVudCB7CkBAIC0yMDEsNyArMjAxLDcgQEAgcHJpdmF0ZToKIAogICAg
IFZlY3RvcjxVbmlxdWVSZWY8UGFyYW1FdmVudD4+IG1fZXZlbnRzOwogCi0gICAgTG9jayBtX2V2
ZW50c0xvY2s7CisgICAgbXV0YWJsZSBMb2NrIG1fZXZlbnRzTG9jazsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvV29ya2xldE5vZGUuY3BwCmluZGV4IDYxNDllN2EwMWM2MjcwNmM4M2NkN2EyNDE5NDcx
MzkzNmRhNzU2MWQuLmU3Yjc5ZDQ0MjM5ODc3YmRiYjcxYmYwMjM0NDBjNGJhMWE0OTQ5ZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRO
b2RlLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIHZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6aW5pdGlh
bGl6ZUF1ZGlvUGFyYW1ldGVycyhjb25zdCBWZWN0b3I8QXVkaW9QYXJhbURlc2NyaXB0CiAgICAg
fQogCiAgICAgZm9yIChhdXRvJiBwYXJhbWV0ZXJOYW1lIDogbV9wYXJhbWV0ZXJzLT5tYXAoKS5r
ZXlzKCkpCi0gICAgICAgIG1fcGFyYW1WYWx1ZXNNYXAuYWRkKHBhcmFtZXRlck5hbWUsIG1ha2VV
bmlxdWU8QXVkaW9GbG9hdEFycmF5PihBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUp
KTsKKyAgICAgICAgbV9wYXJhbVZhbHVlc01hcC5hZGQocGFyYW1ldGVyTmFtZSwgbWFrZVVuaXF1
ZTxBdWRpb0Zsb2F0QXJyYXk+KCkpOwogfQogCiB2b2lkIEF1ZGlvV29ya2xldE5vZGU6OnNldFBy
b2Nlc3NvcihSZWZQdHI8QXVkaW9Xb3JrbGV0UHJvY2Vzc29yPiYmIHByb2Nlc3NvcikKQEAgLTIw
NCwxMCArMjA0LDE1IEBAIHZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6cHJvY2VzcyhzaXplX3QgZnJh
bWVzVG9Qcm9jZXNzKQogICAgIGZvciAoYXV0byYgYXVkaW9QYXJhbSA6IG1fcGFyYW1ldGVycy0+
bWFwKCkudmFsdWVzKCkpIHsKICAgICAgICAgYXV0byogcGFyYW1WYWx1ZXMgPSBtX3BhcmFtVmFs
dWVzTWFwLmdldChhdWRpb1BhcmFtLT5uYW1lKCkpOwogICAgICAgICBBU1NFUlQocGFyYW1WYWx1
ZXMpOwotICAgICAgICBpZiAoYXVkaW9QYXJhbS0+aGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMoKSAm
JiBhdWRpb1BhcmFtLT5hdXRvbWF0aW9uUmF0ZSgpID09IEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkK
KyAgICAgICAgaWYgKGF1ZGlvUGFyYW0tPmhhc1NhbXBsZUFjY3VyYXRlVmFsdWVzKCkgJiYgYXVk
aW9QYXJhbS0+YXV0b21hdGlvblJhdGUoKSA9PSBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpIHsKKyAg
ICAgICAgICAgIHBhcmFtVmFsdWVzLT5yZXNpemUoZnJhbWVzVG9Qcm9jZXNzKTsKICAgICAgICAg
ICAgIGF1ZGlvUGFyYW0tPmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKHBhcmFtVmFsdWVz
LT5kYXRhKCksIGZyYW1lc1RvUHJvY2Vzcyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN0
ZDo6ZmlsbChwYXJhbVZhbHVlcy0+ZGF0YSgpLCBwYXJhbVZhbHVlcy0+ZGF0YSgpICsgZnJhbWVz
VG9Qcm9jZXNzLCBhdWRpb1BhcmFtLT5maW5hbFZhbHVlKCkpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgLy8gSWYgbm8gYXV0b21hdGlvbiBpcyBzY2hlZHVsZWQgZHVyaW5nIHRoaXMg
cmVuZGVyIHF1YW50dW0sIHRoZSBhcnJheSBtYXkgaGF2ZSBsZW5ndGggMQorICAgICAgICAgICAg
Ly8gd2l0aCB0aGUgYXJyYXkgZWxlbWVudCBiZWluZyB0aGUgY29uc3RhbnQgdmFsdWUgb2YgdGhl
IEF1ZGlvUGFyYW0gZm9yIHRoZSByZW5kZXIgcXVhbnR1bS4KKyAgICAgICAgICAgIHBhcmFtVmFs
dWVzLT5yZXNpemUoMSk7CisgICAgICAgICAgICAqcGFyYW1WYWx1ZXMtPmRhdGEoKSA9IGF1ZGlv
UGFyYW0tPmZpbmFsVmFsdWUoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGJvb2wgdGhyZXdF
eGNlcHRpb24gPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcAppbmRleCA4ZGQwMTUzMDg3NjU1Yzhh
ZGU5ODdiMzM1Yzc4NGE0OGE0MTZmNTI3Li5jNDdjMWM0MzI5YWJkZjM4NzA2MTkyOWI3ZWQzMDA5
N2RjY2I5NTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVk
ZSAiSlNDYWxsYmFja0RhdGEuaCIKICNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgi
CiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU01h
cC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTVHlwZWRBcnJheXMuaD4KICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CiAKQEAgLTU0LDEyICs1MywyMCBAQCBzdGF0aWMgSlNGbG9hdDMyQXJy
YXkqIGNvbnN0cnVjdEpTRmxvYXQzMkFycmF5KEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qs
IHVucwogICAgIHJldHVybiBqc0FycmF5OwogfQogCi1zdGF0aWMgSlNNYXAqIGNvbnN0cnVjdEpT
TWFwKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgY29uc3QgSGFzaE1hcDxT
dHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXAp
CitzdGF0aWMgSlNPYmplY3QqIGNvbnN0cnVjdEZyb3plbktleVZhbHVlT2JqZWN0KFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgY29uc3QgSGFzaE1hcDxTdHJpbmcsIHN0ZDo6
dW5pcXVlX3B0cjxBdWRpb0Zsb2F0QXJyYXk+PiYgcGFyYW1WYWx1ZXNNYXApCiB7Ci0gICAgYXV0
byogbWFwID0gSlNNYXA6OmNyZWF0ZSgmZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0Lm1h
cFN0cnVjdHVyZSgpKTsKLSAgICBmb3IgKGF1dG8mIHBhaXIgOiBwYXJhbVZhbHVlc01hcCkKLSAg
ICAgICAgbWFwLT5zZXQoJmdsb2JhbE9iamVjdCwganNTdHJpbmdXaXRoQ2FjaGUodm0sIHBhaXIu
a2V5KSwgY29uc3RydWN0SlNGbG9hdDMyQXJyYXkoZ2xvYmFsT2JqZWN0LCBwYWlyLnZhbHVlLT5z
aXplKCksIHBhaXIudmFsdWUtPmRhdGEoKSkpOwotICAgIHJldHVybiBtYXA7CisgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGF1dG8qIHBsYWluT2JqZWN0U3Ry
dWN0dXJlID0gSlNGaW5hbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCAmZ2xvYmFsT2JqZWN0
LCBnbG9iYWxPYmplY3Qub2JqZWN0UHJvdG90eXBlKCksIDApOworICAgIGF1dG8qIG9iamVjdCA9
IEpTRmluYWxPYmplY3Q6OmNyZWF0ZSh2bSwgcGxhaW5PYmplY3RTdHJ1Y3R1cmUpOworICAgIGZv
ciAoYXV0byYgcGFpciA6IHBhcmFtVmFsdWVzTWFwKSB7CisgICAgICAgIFB1dFByb3BlcnR5U2xv
dCBzbG90KG9iamVjdCwgZmFsc2UsIFB1dFByb3BlcnR5U2xvdDo6UHV0QnlJZCk7CisgICAgICAg
IC8vIFBlciB0aGUgc3BlY2lmaWNhdGlvbiwgaWYgdGhlIHZhbHVlIGlzIGNvbnN0YW50LCB3ZSBw
YXNzIHRoZSBKUyBhbiBhcnJheSB3aXRoIGxlbmd0aCAxLCB3aXRoIHRoZSBhcnJheSBpdGVtIGJl
aW5nIHRoZSBjb25zdGFudC4KKyAgICAgICAgdW5zaWduZWQganNBcnJheVNpemUgPSBwYWlyLnZh
bHVlLT5jb250YWluc0NvbnN0YW50VmFsdWUoKSA/IDEgOiBwYWlyLnZhbHVlLT5zaXplKCk7Cisg
ICAgICAgIG9iamVjdC0+cHV0SW5saW5lKCZnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHBhaXIua2V5KSwgY29uc3RydWN0SlNGbG9hdDMyQXJyYXkoZ2xvYmFsT2JqZWN0
LCBqc0FycmF5U2l6ZSwgcGFpci52YWx1ZS0+ZGF0YSgpKSwgc2xvdCk7CisgICAgfQorICAgIEpT
Qzo6b2JqZWN0Q29uc3RydWN0b3JGcmVlemUoJmdsb2JhbE9iamVjdCwgb2JqZWN0KTsKKyAgICBF
WENFUFRJT05fQVNTRVJUX1VOVVNFRChzY29wZSwgIXNjb3BlLmV4Y2VwdGlvbigpKTsKKyAgICBy
ZXR1cm4gb2JqZWN0OwogfQogCiBlbnVtIGNsYXNzIFNob3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGEg
OiBib29sIHsgTm8sIFllcyB9OwpAQCAtMTM5LDcgKzE0Niw3IEBAIGJvb2wgQXVkaW9Xb3JrbGV0
UHJvY2Vzc29yOjpwcm9jZXNzKGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRz
LCBWZWN0CiAgICAgYXJncy5hcHBlbmQoY29uc3RydWN0RnJvemVuSlNBcnJheSh2bSwgZ2xvYmFs
T2JqZWN0LCBpbnB1dHMsIFNob3VsZFBvcHVsYXRlV2l0aEJ1c0RhdGE6OlllcykpOwogICAgIGF1
dG8qIG91cHV0SlNBcnJheSA9IGNvbnN0cnVjdEZyb3plbkpTQXJyYXkodm0sIGdsb2JhbE9iamVj
dCwgb3V0cHV0cywgU2hvdWxkUG9wdWxhdGVXaXRoQnVzRGF0YTo6Tm8pOwogICAgIGFyZ3MuYXBw
ZW5kKG91cHV0SlNBcnJheSk7Ci0gICAgYXJncy5hcHBlbmQoY29uc3RydWN0SlNNYXAodm0sIGds
b2JhbE9iamVjdCwgcGFyYW1WYWx1ZXNNYXApKTsKKyAgICBhcmdzLmFwcGVuZChjb25zdHJ1Y3RG
cm96ZW5LZXlWYWx1ZU9iamVjdCh2bSwgZ2xvYmFsT2JqZWN0LCBwYXJhbVZhbHVlc01hcCkpOwog
CiAgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhjZXB0aW9uOwogICAgIGF1
dG8gcmVzdWx0ID0gbV9wcm9jZXNzQ2FsbGJhY2stPmludm9rZUNhbGxiYWNrKGpzVW5kZWZpbmVk
KCksIGFyZ3MsIEpTQ2FsbGJhY2tEYXRhOjpDYWxsYmFja1R5cGU6Ok9iamVjdCwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgInByb2Nlc3MiKSwgcmV0dXJuZWRFeGNlcHRpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWREU1BLZXJuZWwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWREU1BLZXJuZWwuY3BwCmlu
ZGV4IGMwNzc2OGUxNjMwYzdjYjAyNmI3YzBiMTg0ZDI5NjdhM2QyZTlmYmEuLmFlNDE2Zjg5YmRi
NTgzNDg4YjcxNjgxNzE0YmE0MzkzMDRlYmU1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRFNQS2VybmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZERTUEtlcm5lbC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAK
IAogI2luY2x1ZGUgIkJpcXVhZERTUEtlcm5lbC5oIgogCisjaW5jbHVkZSAiQXVkaW9BcnJheS5o
IgogI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiQmlxdWFkLmgiCiAjaW5j
bHVkZSAiQmlxdWFkUHJvY2Vzc29yLmgiCkBAIC0zNyw0NCArMzgsMzAgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1zdGF0aWMgYm9vbCBoYXNDb25zdGFudFZhbHVlcyhmbG9hdCogdmFsdWVz
LCBpbnQgZnJhbWVzVG9Qcm9jZXNzKQotewotICAgIC8vIEZJWE1FOiBVc2UgU0lNRCB0byBvcHRp
bWl6ZSB0aGlzLiBUaGlzIHdvdWxkIHNwZWVkIHVwIHByb2Nlc3NpbmcgYnkgYSBmYWN0b3Igb2Yg
NAotICAgIC8vIGJlY2F1c2Ugd2UgY2FuIHByb2Nlc3MgNCBmbG9hdHMgYXQgYSB0aW1lLgotICAg
IGZsb2F0IHZhbHVlID0gdmFsdWVzWzBdOwotICAgIGZvciAoaW50IGsgPSAxOyBrIDwgZnJhbWVz
VG9Qcm9jZXNzOyArK2spIHsKLSAgICAgICAgaWYgKHZhbHVlc1trXSAhPSB2YWx1ZSkKLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQg
QmlxdWFkRFNQS2VybmVsOjp1cGRhdGVDb2VmZmljaWVudHNJZk5lY2Vzc2FyeShzaXplX3QgZnJh
bWVzVG9Qcm9jZXNzKQogewogICAgIGlmIChiaXF1YWRQcm9jZXNzb3IoKS0+ZmlsdGVyQ29lZmZp
Y2llbnRzRGlydHkoKSkgewogICAgICAgICBpZiAoYmlxdWFkUHJvY2Vzc29yKCktPmhhc1NhbXBs
ZUFjY3VyYXRlVmFsdWVzKCkgJiYgYmlxdWFkUHJvY2Vzc29yKCktPnNob3VsZFVzZUFSYXRlKCkp
IHsKLSAgICAgICAgICAgIGZsb2F0IGN1dG9mZkZyZXF1ZW5jeVtBdWRpb1V0aWxpdGllczo6cmVu
ZGVyUXVhbnR1bVNpemVdOwotICAgICAgICAgICAgZmxvYXQgcVtBdWRpb1V0aWxpdGllczo6cmVu
ZGVyUXVhbnR1bVNpemVdOwotICAgICAgICAgICAgZmxvYXQgZ2FpbltBdWRpb1V0aWxpdGllczo6
cmVuZGVyUXVhbnR1bVNpemVdOwotICAgICAgICAgICAgZmxvYXQgZGV0dW5lW0F1ZGlvVXRpbGl0
aWVzOjpyZW5kZXJRdWFudHVtU2l6ZV07IC8vIGluIENlbnRzCisgICAgICAgICAgICBBdWRpb0Zs
b2F0QXJyYXkgY3V0b2ZmRnJlcXVlbmN5KGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICBB
dWRpb0Zsb2F0QXJyYXkgcShmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgQXVkaW9GbG9h
dEFycmF5IGdhaW4oZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgICAgIEF1ZGlvRmxvYXRBcnJh
eSBkZXR1bmUoZnJhbWVzVG9Qcm9jZXNzKTsgLy8gaW4gQ2VudHMKIAogICAgICAgICAgICAgQVNT
RVJUKGZyYW1lc1RvUHJvY2VzcyA8PSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUp
OwogCi0gICAgICAgICAgICBiaXF1YWRQcm9jZXNzb3IoKS0+cGFyYW1ldGVyMSgpLmNhbGN1bGF0
ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKGN1dG9mZkZyZXF1ZW5jeSwgZnJhbWVzVG9Qcm9jZXNzKTsK
LSAgICAgICAgICAgIGJpcXVhZFByb2Nlc3NvcigpLT5wYXJhbWV0ZXIyKCkuY2FsY3VsYXRlU2Ft
cGxlQWNjdXJhdGVWYWx1ZXMocSwgZnJhbWVzVG9Qcm9jZXNzKTsKLSAgICAgICAgICAgIGJpcXVh
ZFByb2Nlc3NvcigpLT5wYXJhbWV0ZXIzKCkuY2FsY3VsYXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXMo
Z2FpbiwgZnJhbWVzVG9Qcm9jZXNzKTsKLSAgICAgICAgICAgIGJpcXVhZFByb2Nlc3NvcigpLT5w
YXJhbWV0ZXI0KCkuY2FsY3VsYXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXMoZGV0dW5lLCBmcmFtZXNU
b1Byb2Nlc3MpOworICAgICAgICAgICAgYmlxdWFkUHJvY2Vzc29yKCktPnBhcmFtZXRlcjEoKS5j
YWxjdWxhdGVTYW1wbGVBY2N1cmF0ZVZhbHVlcyhjdXRvZmZGcmVxdWVuY3kuZGF0YSgpLCBmcmFt
ZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgYmlxdWFkUHJvY2Vzc29yKCktPnBhcmFtZXRlcjIo
KS5jYWxjdWxhdGVTYW1wbGVBY2N1cmF0ZVZhbHVlcyhxLmRhdGEoKSwgZnJhbWVzVG9Qcm9jZXNz
KTsKKyAgICAgICAgICAgIGJpcXVhZFByb2Nlc3NvcigpLT5wYXJhbWV0ZXIzKCkuY2FsY3VsYXRl
U2FtcGxlQWNjdXJhdGVWYWx1ZXMoZ2Fpbi5kYXRhKCksIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAg
ICAgICAgICBiaXF1YWRQcm9jZXNzb3IoKS0+cGFyYW1ldGVyNCgpLmNhbGN1bGF0ZVNhbXBsZUFj
Y3VyYXRlVmFsdWVzKGRldHVuZS5kYXRhKCksIGZyYW1lc1RvUHJvY2Vzcyk7CiAKICAgICAgICAg
ICAgIC8vIElmIGFsbCB0aGUgdmFsdWVzIGFyZSBhY3R1YWxseSBjb25zdGFudCBmb3IgdGhpcyBy
ZW5kZXIgKG9yIHRoZQogICAgICAgICAgICAgLy8gYXV0b21hdGlvbiByYXRlIGlzICJrLXJhdGUi
IGZvciBhbGwgb2YgdGhlIEF1ZGlvUGFyYW1zKSwgd2UgZG9uJ3QgbmVlZAogICAgICAgICAgICAg
Ly8gdG8gY29tcHV0ZSBmaWx0ZXIgY29lZmZpY2llbnRzIGZvciBlYWNoIGZyYW1lIHNpbmNlIHRo
ZXkgd291bGQgYmUgdGhlCiAgICAgICAgICAgICAvLyBzYW1lIGFzIHRoZSBmaXJzdC4KLSAgICAg
ICAgICAgIGJvb2wgaXNDb25zdGFudCA9IGhhc0NvbnN0YW50VmFsdWVzKGN1dG9mZkZyZXF1ZW5j
eSwgZnJhbWVzVG9Qcm9jZXNzKQotICAgICAgICAgICAgICAgICYmIGhhc0NvbnN0YW50VmFsdWVz
KHEsIGZyYW1lc1RvUHJvY2VzcykKLSAgICAgICAgICAgICAgICAmJiBoYXNDb25zdGFudFZhbHVl
cyhnYWluLCBmcmFtZXNUb1Byb2Nlc3MpCi0gICAgICAgICAgICAgICAgJiYgaGFzQ29uc3RhbnRW
YWx1ZXMoZGV0dW5lLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgYm9vbCBpc0NvbnN0
YW50ID0gY3V0b2ZmRnJlcXVlbmN5LmNvbnRhaW5zQ29uc3RhbnRWYWx1ZSgpICYmIHEuY29udGFp
bnNDb25zdGFudFZhbHVlKCkKKyAgICAgICAgICAgICAgICAmJiBnYWluLmNvbnRhaW5zQ29uc3Rh
bnRWYWx1ZSgpICYmIGRldHVuZS5jb250YWluc0NvbnN0YW50VmFsdWUoKTsKIAotICAgICAgICAg
ICAgdXBkYXRlQ29lZmZpY2llbnRzKGlzQ29uc3RhbnQgPyAxIDogZnJhbWVzVG9Qcm9jZXNzLCBj
dXRvZmZGcmVxdWVuY3ksIHEsIGdhaW4sIGRldHVuZSk7CisgICAgICAgICAgICB1cGRhdGVDb2Vm
ZmljaWVudHMoaXNDb25zdGFudCA/IDEgOiBmcmFtZXNUb1Byb2Nlc3MsIGN1dG9mZkZyZXF1ZW5j
eS5kYXRhKCksIHEuZGF0YSgpLCBnYWluLmRhdGEoKSwgZGV0dW5lLmRhdGEoKSk7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBmbG9hdCBjdXRvZmZGcmVxdWVuY3kgPSBiaXF1YWRQcm9j
ZXNzb3IoKS0+cGFyYW1ldGVyMSgpLmZpbmFsVmFsdWUoKTsKICAgICAgICAgICAgIGZsb2F0IHEg
PSBiaXF1YWRQcm9jZXNzb3IoKS0+cGFyYW1ldGVyMigpLmZpbmFsVmFsdWUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHAKaW5kZXgg
YzIyMDJjNmIxYWI3MTMxYzM0MjBjZDE1Nzc1MmM1N2VjYjVkYmM3MC4uYWZiZWExYWI2OGI0YWVk
ZDE3MzM4OWQwZmM1NjA4MzhkYzhhOWZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgRGVsYXlE
U1BLZXJuZWw6OkRlbGF5RFNQS2VybmVsKERlbGF5UHJvY2Vzc29yKiBwcm9jZXNzb3IpCiAgICAg
aWYgKG1fbWF4RGVsYXlUaW1lIDwgMCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9idWZmZXIu
YWxsb2NhdGUoYnVmZmVyTGVuZ3RoRm9yRGVsYXkobV9tYXhEZWxheVRpbWUsIHByb2Nlc3Nvci0+
c2FtcGxlUmF0ZSgpKSk7CisgICAgbV9idWZmZXIucmVzaXplKGJ1ZmZlckxlbmd0aEZvckRlbGF5
KG1fbWF4RGVsYXlUaW1lLCBwcm9jZXNzb3ItPnNhbXBsZVJhdGUoKSkpOwogICAgIG1fYnVmZmVy
Lnplcm8oKTsKIH0KIApAQCAtNjMsNyArNjMsNyBAQCBEZWxheURTUEtlcm5lbDo6RGVsYXlEU1BL
ZXJuZWwoZG91YmxlIG1heERlbGF5VGltZSwgZmxvYXQgc2FtcGxlUmF0ZSkKICAgICBpZiAoIWJ1
ZmZlckxlbmd0aCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9idWZmZXIuYWxsb2NhdGUoYnVm
ZmVyTGVuZ3RoKTsKKyAgICBtX2J1ZmZlci5yZXNpemUoYnVmZmVyTGVuZ3RoKTsKICAgICBtX2J1
ZmZlci56ZXJvKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwCmluZGV4IGZkMjQ0ZWMxY2U4MjFkMmUzYjkzMjViOTU4
MTU3ZTM5MmQzZGRhNDkuLmU5ZmQyOTkyNmRmMjU5NDMyMjBkOGQwYjU4YTMzM2JiOWJlNzYyOTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFs
eXNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFu
YWx5c2VyLmNwcApAQCAtNjUsNyArNjUsNyBAQCBib29sIFJlYWx0aW1lQW5hbHlzZXI6OnNldEZm
dFNpemUoc2l6ZV90IHNpemUpCiAgICAgaWYgKG1fZmZ0U2l6ZSAhPSBzaXplKSB7CiAgICAgICAg
IG1fYW5hbHlzaXNGcmFtZSA9IG1ha2VVbmlxdWU8RkZURnJhbWU+KHNpemUpOwogICAgICAgICAv
LyBtX21hZ25pdHVkZUJ1ZmZlciBoYXMgc2l6ZSA9IGZmdFNpemUgLyAyIGJlY2F1c2UgaXQgY29u
dGFpbnMgZmxvYXRzIHJlZHVjZWQgZnJvbSBjb21wbGV4IHZhbHVlcyBpbiBtX2FuYWx5c2lzRnJh
bWUuCi0gICAgICAgIG1fbWFnbml0dWRlQnVmZmVyLmFsbG9jYXRlKHNpemUgLyAyKTsKKyAgICAg
ICAgbV9tYWduaXR1ZGVCdWZmZXIucmVzaXplKHNpemUgLyAyKTsKICAgICAgICAgbV9mZnRTaXpl
ID0gc2l6ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0F1ZGlvQXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJy
YXkuaAppbmRleCAzNDk2MDRlMmNlYmM5ZjlhNDNhMWJjM2M3YWFkZWU0ZTM5OWNjZGE3Li5jYjU1
NjdjZjdiODc3OGVjYzMyZTk2ZGE0YjE5NzkyMzI3Y2FhMDE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAg
ICBBdWRpb0FycmF5KCkgPSBkZWZhdWx0OwogICAgIGV4cGxpY2l0IEF1ZGlvQXJyYXkoc2l6ZV90
IG4pCiAgICAgewotICAgICAgICBhbGxvY2F0ZShuKTsKKyAgICAgICAgcmVzaXplKG4pOwogICAg
IH0KIAogICAgIH5BdWRpb0FycmF5KCkKQEAgLTUwLDEwICs1MCwxMyBAQCBwdWJsaWM6CiAgICAg
ICAgIGZhc3RBbGlnbmVkRnJlZShtX2FsbG9jYXRpb24pOwogICAgIH0KIAotICAgIC8vIEl0J3Mg
T0sgdG8gY2FsbCBhbGxvY2F0ZSgpIG11bHRpcGxlIHRpbWVzLCBidXQgZGF0YSB3aWxsICpub3Qq
IGJlIGNvcGllZCBmcm9tIGFuIGluaXRpYWwgYWxsb2NhdGlvbgorICAgIC8vIEl0J3MgT0sgdG8g
Y2FsbCByZXNpemUoKSBtdWx0aXBsZSB0aW1lcywgYnV0IGRhdGEgd2lsbCAqbm90KiBiZSBjb3Bp
ZWQgZnJvbSBhbiBpbml0aWFsIGFsbG9jYXRpb24KICAgICAvLyBpZiByZS1hbGxvY2F0ZWQuIEFs
bG9jYXRpb25zIGFyZSB6ZXJvLWluaXRpYWxpemVkLgotICAgIHZvaWQgYWxsb2NhdGUoQ2hlY2tl
ZDxzaXplX3Q+IG4pCisgICAgdm9pZCByZXNpemUoQ2hlY2tlZDxzaXplX3Q+IG4pCiAgICAgewor
ICAgICAgICBpZiAobiA9PSBtX3NpemUpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAg
Q2hlY2tlZDxzaXplX3Q+IGluaXRpYWxTaXplID0gc2l6ZW9mKFQpICogbjsKICAgICAgICAgY29u
c3Qgc2l6ZV90IGFsaWdubWVudCA9IDE2OwogCkBAIC03Myw3ICs3Niw3IEBAIHB1YmxpYzoKICAg
ICBUJiBhdChzaXplX3QgaSkKICAgICB7CiAgICAgICAgIC8vIE5vdGUgdGhhdCBhbHRob3VnaCBp
dCBpcyBhIHNpemVfdCwgbV9zaXplIGlzIG5vdyBndWFyYW50ZWVkIHRvIGJlCi0gICAgICAgIC8v
IG5vIGdyZWF0ZXIgdGhhbiBtYXggdW5zaWduZWQuIFRoaXMgZ3VhcmFudGVlIGlzIGVuZm9yY2Vk
IGluIGFsbG9jYXRlKCkuCisgICAgICAgIC8vIG5vIGdyZWF0ZXIgdGhhbiBtYXggdW5zaWduZWQu
IFRoaXMgZ3VhcmFudGVlIGlzIGVuZm9yY2VkIGluIHJlc2l6ZSgpLgogICAgICAgICBBU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpIDwgc2l6ZSgpKTsKICAgICAgICAgcmV0dXJuIGRh
dGEoKVtpXTsKICAgICB9CkBAIC04Miw3ICs4NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgemVy
bygpCiAgICAgewotICAgICAgICAvLyBUaGlzIG11bHRpcGxpY2F0aW9uIGlzIG1hZGUgc2FmZSBi
eSB0aGUgY2hlY2sgaW4gYWxsb2NhdGUoKS4KKyAgICAgICAgLy8gVGhpcyBtdWx0aXBsaWNhdGlv
biBpcyBtYWRlIHNhZmUgYnkgdGhlIGNoZWNrIGluIHJlc2l6ZSgpLgogICAgICAgICBtZW1zZXQo
dGhpcy0+ZGF0YSgpLCAwLCBzaXplb2YoVCkgKiB0aGlzLT5zaXplKCkpOwogICAgIH0KIApAQCAt
OTQsNyArOTcsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgLy8g
VGhpcyBleHByZXNzaW9uIGNhbm5vdCBvdmVyZmxvdyBiZWNhdXNlIGVuZCAtIHN0YXJ0IGNhbm5v
dCBiZQotICAgICAgICAvLyBncmVhdGVyIHRoYW4gbV9zaXplLCB3aGljaCBpcyBzYWZlIGR1ZSB0
byB0aGUgY2hlY2sgaW4gYWxsb2NhdGUoKS4KKyAgICAgICAgLy8gZ3JlYXRlciB0aGFuIG1fc2l6
ZSwgd2hpY2ggaXMgc2FmZSBkdWUgdG8gdGhlIGNoZWNrIGluIHJlc2l6ZSgpLgogICAgICAgICBt
ZW1zZXQodGhpcy0+ZGF0YSgpICsgc3RhcnQsIDAsIHNpemVvZihUKSAqIChlbmQgLSBzdGFydCkp
OwogICAgIH0KIApAQCAtMTA2LDEwICsxMDksMjIgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0
dXJuOwogCiAgICAgICAgIC8vIFRoaXMgZXhwcmVzc2lvbiBjYW5ub3Qgb3ZlcmZsb3cgYmVjYXVz
ZSBlbmQgLSBzdGFydCBjYW5ub3QgYmUKLSAgICAgICAgLy8gZ3JlYXRlciB0aGFuIG1fc2l6ZSwg
d2hpY2ggaXMgc2FmZSBkdWUgdG8gdGhlIGNoZWNrIGluIGFsbG9jYXRlKCkuCisgICAgICAgIC8v
IGdyZWF0ZXIgdGhhbiBtX3NpemUsIHdoaWNoIGlzIHNhZmUgZHVlIHRvIHRoZSBjaGVjayBpbiBy
ZXNpemUoKS4KICAgICAgICAgbWVtY3B5KHRoaXMtPmRhdGEoKSArIHN0YXJ0LCBzb3VyY2VEYXRh
LCBzaXplb2YoVCkgKiAoZW5kIC0gc3RhcnQpKTsKICAgICB9CiAKKyAgICBib29sIGNvbnRhaW5z
Q29uc3RhbnRWYWx1ZSgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAobV9zaXplIDw9IDEpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZmxvYXQgY29uc3RhbnQgPSBkYXRhKClb
MF07CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBtX3NpemU7ICsraSkgeworICAg
ICAgICAgICAgaWYgKGRhdGEoKVtpXSAhPSBjb25zdGFudCkKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiBwcml2
YXRlOgogICAgIFQqIG1fYWxsb2NhdGlvbiB7IG51bGxwdHIgfTsKICAgICBzaXplX3QgbV9zaXpl
IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQmlxdWFk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0JpcXVhZC5jcHAKaW5kZXggNGQ5
MTQ4OWJlMDY3ZWI5MGYzYzc2OWU1OTc2OTIxZDI3ZjVmMGM1NC4uOTM4NWUxOGU0YjJiOTY0OWQx
ZDVjNmUxN2I1NTg2YjRmMjY4NjQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQmlxdWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9C
aXF1YWQuY3BwCkBAIC01NCwxNyArNTQsMTcgQEAgQmlxdWFkOjpCaXF1YWQoKQogewogI2lmIFVT
RShBQ0NFTEVSQVRFKQogICAgIC8vIEFsbG9jYXRlIHR3byBzYW1wbGVzIG1vcmUgZm9yIGZpbHRl
ciBoaXN0b3J5Ci0gICAgbV9pbnB1dEJ1ZmZlci5hbGxvY2F0ZShrQnVmZmVyU2l6ZSArIDIpOwot
ICAgIG1fb3V0cHV0QnVmZmVyLmFsbG9jYXRlKGtCdWZmZXJTaXplICsgMik7CisgICAgbV9pbnB1
dEJ1ZmZlci5yZXNpemUoa0J1ZmZlclNpemUgKyAyKTsKKyAgICBtX291dHB1dEJ1ZmZlci5yZXNp
emUoa0J1ZmZlclNpemUgKyAyKTsKICNlbmRpZgogCiAgICAgLy8gQWxsb2NhdGUgZW5vdWdoIHNw
YWNlIGZvciB0aGUgYS1yYXRlIGZpbHRlciBjb2VmZmljaWVudHMgdG8gaGFuZGxlIGEKICAgICAv
LyByZW5kZXJpbmcgcXVhbnR1bSBvZiAxMjggZnJhbWVzLgotICAgIG1fYjAuYWxsb2NhdGUoQXVk
aW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKLSAgICBtX2IxLmFsbG9jYXRlKEF1ZGlv
VXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7Ci0gICAgbV9iMi5hbGxvY2F0ZShBdWRpb1V0
aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwotICAgIG1fYTEuYWxsb2NhdGUoQXVkaW9VdGls
aXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKLSAgICBtX2EyLmFsbG9jYXRlKEF1ZGlvVXRpbGl0
aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgbV9iMC5yZXNpemUoQXVkaW9VdGlsaXRpZXM6
OnJlbmRlclF1YW50dW1TaXplKTsKKyAgICBtX2IxLnJlc2l6ZShBdWRpb1V0aWxpdGllczo6cmVu
ZGVyUXVhbnR1bVNpemUpOworICAgIG1fYjIucmVzaXplKEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJR
dWFudHVtU2l6ZSk7CisgICAgbV9hMS5yZXNpemUoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50
dW1TaXplKTsKKyAgICBtX2EyLnJlc2l6ZShBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNp
emUpOwogCiAgICAgLy8gSW5pdGlhbGl6ZSBhcyBwYXNzLXRocnUgKHN0cmFpZ2h0LXdpcmUsIG5v
IGZpbHRlciBlZmZlY3QpCiAgICAgc2V0Tm9ybWFsaXplZENvZWZmaWNpZW50cygwLCAxLCAwLCAw
LCAxLCAwLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Jl
dmVyYkNvbnZvbHZlclN0YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Jl
dmVyYkNvbnZvbHZlclN0YWdlLmNwcAppbmRleCA2YjgyMjJlZTdiN2E2Mjk5ZjhmNzAxNWI5NDU3
MjBlOTQ1NjU3MzA5Li4wM2YxN2VkNGQyM2ZlZjY4Yjk4ODczYTE0MjU5MWIyMDdjNDA2YWMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXJT
dGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9s
dmVyU3RhZ2UuY3BwCkBAIC03MSw3ICs3MSw3IEBAIFJldmVyYkNvbnZvbHZlclN0YWdlOjpSZXZl
cmJDb252b2x2ZXJTdGFnZShjb25zdCBmbG9hdCogaW1wdWxzZVJlc3BvbnNlLCBzaXplX3QsCiAg
ICAgICAgICAgICBWZWN0b3JNYXRoOjptdWx0aXBseUJ5U2NhbGFyKG1fZGlyZWN0S2VybmVsLT5k
YXRhKCksIHNjYWxlLCBtX2RpcmVjdEtlcm5lbC0+ZGF0YSgpLCBzdGFnZUxlbmd0aCk7CiAgICAg
ICAgIG1fZGlyZWN0Q29udm9sdmVyID0gbWFrZVVuaXF1ZTxEaXJlY3RDb252b2x2ZXI+KHJlbmRl
clNsaWNlU2l6ZSk7CiAgICAgfQotICAgIG1fdGVtcG9yYXJ5QnVmZmVyLmFsbG9jYXRlKHJlbmRl
clNsaWNlU2l6ZSk7CisgICAgbV90ZW1wb3JhcnlCdWZmZXIucmVzaXplKHJlbmRlclNsaWNlU2l6
ZSk7CiAKICAgICAvLyBUaGUgY29udm9sdXRpb24gc3RhZ2UgYXQgb2Zmc2V0IHN0YWdlT2Zmc2V0
IG5lZWRzIHRvIGhhdmUgYSBjb3JyZXNwb25kaW5nIGRlbGF5IHRvIGNhbmNlbCBvdXQgdGhlIG9m
ZnNldC4KICAgICBzaXplX3QgdG90YWxEZWxheSA9IHN0YWdlT2Zmc2V0ICsgcmV2ZXJiVG90YWxM
YXRlbmN5OwpAQCAtOTcsNyArOTcsNyBAQCBSZXZlcmJDb252b2x2ZXJTdGFnZTo6UmV2ZXJiQ29u
dm9sdmVyU3RhZ2UoY29uc3QgZmxvYXQqIGltcHVsc2VSZXNwb25zZSwgc2l6ZV90LAogCiAgICAg
c2l6ZV90IGRlbGF5QnVmZmVyU2l6ZSA9IG1fcHJlRGVsYXlMZW5ndGggPCBmZnRTaXplID8gZmZ0
U2l6ZSA6IG1fcHJlRGVsYXlMZW5ndGg7CiAgICAgZGVsYXlCdWZmZXJTaXplID0gZGVsYXlCdWZm
ZXJTaXplIDwgcmVuZGVyU2xpY2VTaXplID8gcmVuZGVyU2xpY2VTaXplIDogZGVsYXlCdWZmZXJT
aXplOwotICAgIG1fcHJlRGVsYXlCdWZmZXIuYWxsb2NhdGUoZGVsYXlCdWZmZXJTaXplKTsKKyAg
ICBtX3ByZURlbGF5QnVmZmVyLnJlc2l6ZShkZWxheUJ1ZmZlclNpemUpOwogfQogCiBSZXZlcmJD
b252b2x2ZXJTdGFnZTo6flJldmVyYkNvbnZvbHZlclN0YWdlKCkgPSBkZWZhdWx0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRmlsZVJlYWRlcklP
Uy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9GaWxlUmVhZGVy
SU9TLmNwcAppbmRleCBhZDQzYjcxMjhkZDA2NmE1NTVlODBhYTMzOTU4Yjc3OWJlYTBiYmEzLi5l
ZjEyMzFiY2MzN2I2MWViYTA5OTM5YWIzY2Q1MjAzZTI3MTgwMmIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9GaWxlUmVhZGVySU9TLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9GaWxlUmVhZGVySU9TLmNw
cApAQCAtMTkwLDggKzE5MCw4IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVyOjpj
cmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCiAgICAgY29uc3Qgc2l6
ZV90IGJ1ZmZlclNpemUgPSBudW1iZXJPZkZyYW1lcyAqIHNpemVvZihmbG9hdCk7CiAKICAgICBp
ZiAobWl4VG9Nb25vICYmIG51bWJlck9mQ2hhbm5lbHMgPT0gMikgewotICAgICAgICBsZWZ0Q2hh
bm5lbC5hbGxvY2F0ZShudW1iZXJPZkZyYW1lcyk7Ci0gICAgICAgIHJpZ2h0Q2hhbm5lbC5hbGxv
Y2F0ZShudW1iZXJPZkZyYW1lcyk7CisgICAgICAgIGxlZnRDaGFubmVsLnJlc2l6ZShudW1iZXJP
ZkZyYW1lcyk7CisgICAgICAgIHJpZ2h0Q2hhbm5lbC5yZXNpemUobnVtYmVyT2ZGcmFtZXMpOwog
CiAgICAgICAgIGJ1ZmZlckxpc3QtPm1CdWZmZXJzWzBdLm1OdW1iZXJDaGFubmVscyA9IDE7CiAg
ICAgICAgIGJ1ZmZlckxpc3QtPm1CdWZmZXJzWzBdLm1EYXRhQnl0ZVNpemUgPSBidWZmZXJTaXpl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmls
ZVJlYWRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9G
aWxlUmVhZGVyTWFjLmNwcAppbmRleCBkYzE0NDExNWFjMjk2ZTgyZjMzYmU5YzJkZjIzMDRhMmI4
YTYyMTE4Li4wOGJhNzRhNDY1MTMzZjE5ZWQxNTEyN2QxYWVkYjQ4OGI4ZjUxYWQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9GaWxlUmVhZGVyTWFj
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9GaWxlUmVh
ZGVyTWFjLmNwcApAQCAtMTkzLDggKzE5Myw4IEBAIFJlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxl
UmVhZGVyOjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8pCiAgICAg
QXVkaW9CdWZmZXJMaXN0KiBidWZmZXJMaXN0ID0gY3JlYXRlQXVkaW9CdWZmZXJMaXN0KG51bWJl
ck9mQ2hhbm5lbHMpOwogCiAgICAgaWYgKG1peFRvTW9ubyAmJiBudW1iZXJPZkNoYW5uZWxzID09
IDIpIHsKLSAgICAgICAgYnVmTC5hbGxvY2F0ZShudW1iZXJPZkZyYW1lcyk7Ci0gICAgICAgIGJ1
ZlIuYWxsb2NhdGUobnVtYmVyT2ZGcmFtZXMpOworICAgICAgICBidWZMLnJlc2l6ZShudW1iZXJP
ZkZyYW1lcyk7CisgICAgICAgIGJ1ZlIucmVzaXplKG51bWJlck9mRnJhbWVzKTsKICAgICAgICAg
YnVmZmVyTCA9IGJ1ZkwuZGF0YSgpOwogICAgICAgICBidWZmZXJSID0gYnVmUi5kYXRhKCk7CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDYwZmY5NmU4MzFjNjZiMTJlYTE4YTk0
YTBmZmM1NWFlYWFmYTRkNjAuLjkzMWU0NDMwYjhkN2VlYjM4YjM4YmYzYTk4YWZkZWE0MThlMWJi
MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIw
LTEwLTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgJ3BhcmFt
ZXRlcnMnIGFyZ3VtZW50IHRvIEF1ZGlvV29ya2xldFByb2Nlc3Nvci5wcm9jZXNzKCkgaXMgbm90
IHNwZWMtY29tcGxpYW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTc2MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0cyB0aGF0IGFyZSBub3cgcGFzc2luZy4KKworICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRp
b3BhcmFtLWludGVyZmFjZS9rLXJhdGUtYXVkaW93b3JrbGV0LWNvbm5lY3Rpb25zLmh0dHBzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1
ZGlvLWFwaS90aGUtYXVkaW9wYXJhbS1pbnRlcmZhY2Uvay1yYXRlLWF1ZGlvd29ya2xldC5odHRw
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0LWF1ZGlv
cGFyYW0tc2l6ZS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVk
aW93b3JrbGV0LWF1ZGlvcGFyYW0uaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50
ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtY2hhbm5lbC1jb3VudC5odHRwcy1leHBlY3RlZC50eHQ6
CisKIDIwMjAtMTAtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBDYWxsaW5nIEF1ZGlvQ29udGV4dC5yZXN1bWUoKSByaWdodCBhZnRlciBBdWRpb0NvbnRleHQu
c3VzcGVuZCgpIHNob3VsZCBub3QgYmUgYSBuby1vcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3BhcmFtLWludGVyZmFjZS9rLXJhdGUtYXVkaW93b3JrbGV0LWNvbm5lY3Rpb25zLmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9wYXJhbS1pbnRlcmZhY2Uvay1y
YXRlLWF1ZGlvd29ya2xldC1jb25uZWN0aW9ucy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggOTgy
YzliZjA1YzI0M2YwYzJiN2M2ZDUzNDk5MTFiN2RjMmRhZGIzZC4uNmY5Y2MwOTIxOGM0ZjVkMDJj
MTFlMGMyZDBjZTZhZTE4ZjFiZGMxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3Bh
cmFtLWludGVyZmFjZS9rLXJhdGUtYXVkaW93b3JrbGV0LWNvbm5lY3Rpb25zLmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvcGFyYW0taW50ZXJmYWNlL2stcmF0ZS1h
dWRpb3dvcmtsZXQtY29ubmVjdGlvbnMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC03LDExICs3LDEx
IEBAIFBBU1MgPiBbQ3JlYXRlIFRlc3QgV29ya2xldF0KIFBBU1MgICBDb25zdHJ1Y3Rpb24gb2Yg
QXVkaW9Xb3JrbGV0IHJlc29sdmVkIGNvcnJlY3RseS4KIFBBU1MgPCBbQ3JlYXRlIFRlc3QgV29y
a2xldF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKQogUEFTUyA+
IFtBdWRpb1dvcmtsZXQgay1yYXRlIEF1ZGlvUGFyYW1dCi1GQUlMIFggb3V0cHV0IHNob3VsZCBo
YXZlIGNvbnRhaW4gYXQgbGVhc3Qgb25lIHZhbHVlIGRpZmZlcmVudCBmcm9tIDAuIGFzc2VydF90
cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIG91dHB1dCBpcyBub3QgY29uc3Rh
bnRseSAwIChjb250YWlucyAzODQgZGlmZmVyZW50IHZhbHVlcykuCiBQQVNTICAgIGstcmF0ZSBv
dXRwdXQgWzA6IDEyN10gY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4KLVBBU1MgICAgay1y
YXRlIG91dHB1dCBbMTI4OiAyNTVdIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuCi1QQVNT
ICAgIGstcmF0ZSBvdXRwdXQgWzI1NjogMzgzXSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAw
LgotUEFTUyAgICBrLXJhdGUgb3V0cHV0IFszODQ6IDUxMV0gY29udGFpbnMgb25seSB0aGUgY29u
c3RhbnQgMC4KLUZBSUwgPCBbQXVkaW9Xb3JrbGV0IGstcmF0ZSBBdWRpb1BhcmFtXSAxIG91dCBv
ZiA1IGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQotRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiAyIHRh
c2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BB
U1MgICAgay1yYXRlIG91dHB1dCBbMTI4OiAyNTVdIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50
IDIuNS4KK1BBU1MgICAgay1yYXRlIG91dHB1dCBbMjU2OiAzODNdIGNvbnRhaW5zIG9ubHkgdGhl
IGNvbnN0YW50IDUuCitQQVNTICAgIGstcmF0ZSBvdXRwdXQgWzM4NDogNTExXSBjb250YWlucyBv
bmx5IHRoZSBjb25zdGFudCA3LjUuCitQQVNTIDwgW0F1ZGlvV29ya2xldCBrLXJhdGUgQXVkaW9Q
YXJhbV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNSBhc3NlcnRpb25zKQorUEFTUyAj
IEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAyIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9wYXJhbS1pbnRlcmZhY2Uvay1yYXRlLWF1
ZGlvd29ya2xldC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvcGFyYW0t
aW50ZXJmYWNlL2stcmF0ZS1hdWRpb3dvcmtsZXQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDE0
MGMxZjA0NDQ5YjdjNGY0OWQ0MWViZTRmZjk4N2U5YzM2MWI3YjcuLjhjM2NhMzcxNjczNzI0ZTRl
MWVjYWQ5ZTU3Y2RiNzgwNWQyNzNkZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9w
YXJhbS1pbnRlcmZhY2Uvay1yYXRlLWF1ZGlvd29ya2xldC5odHRwcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3BhcmFtLWludGVyZmFjZS9rLXJhdGUtYXVkaW93b3JrbGV0
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtOCw5ICs4LDkgQEAgUEFTUyAgIENvbnN0cnVjdGlvbiBv
ZiBBdWRpb1dvcmtsZXQgcmVzb2x2ZWQgY29ycmVjdGx5LgogUEFTUyA8IFtDcmVhdGUgVGVzdCBX
b3JrbGV0XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpCiBQQVNT
ID4gW0F1ZGlvV29ya2xldCBrLXJhdGUgQXVkaW9QYXJhbV0KIFBBU1MgICAgay1yYXRlIG91dHB1
dCBbMDogMTI3XSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLgotUEFTUyAgICBrLXJhdGUg
b3V0cHV0IFsxMjg6IDI1NV0gY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4KLVBBU1MgICAg
ay1yYXRlIG91dHB1dCBbMjU2OiAzODNdIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuCi1Q
QVNTICAgIGstcmF0ZSBvdXRwdXQgWzM4NDogNTExXSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFu
dCAwLgorUEFTUyAgICBrLXJhdGUgb3V0cHV0IFsxMjg6IDI1NV0gY29udGFpbnMgb25seSB0aGUg
Y29uc3RhbnQgMi41LgorUEFTUyAgICBrLXJhdGUgb3V0cHV0IFsyNTY6IDM4M10gY29udGFpbnMg
b25seSB0aGUgY29uc3RhbnQgNS4KK1BBU1MgICAgay1yYXRlIG91dHB1dCBbMzg0OiA1MTFdIGNv
bnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDcuNS4KIFBBU1MgPCBbQXVkaW9Xb3JrbGV0IGstcmF0
ZSBBdWRpb1BhcmFtXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0IGFzc2VydGlvbnMp
CiBQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDIgdGFza3MgcmFuIHN1Y2Nlc3Nm
dWxseS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNl
L2F1ZGlvd29ya2xldC1hdWRpb3BhcmFtLXNpemUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldC1hdWRpb3BhcmFtLXNp
emUuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDkwYjViODUwNDhhNzkwNTkwN2VkNDJlOTAyNGE1
MTc4ZWIwZmEwM2MuLjE5Nzg5YmE4YzQ2OTI1NWE1ZjVjZTRjOTE1NGQ2NjM4MzQ0ZTIwMzUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmts
ZXQtYXVkaW9wYXJhbS1zaXplLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhl
LWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0LWF1ZGlvcGFyYW0tc2l6ZS5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTgsMzQgKzgsMTAgQEAgUEFTUyAgIENyZWF0aW5nIG9mZmxpbmUg
Y29udGV4dCBmb3IgdGVzdGluZyBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4KIFBBU1MgICBD
cmVhdGluZyB0ZXN0IHdvcmtsZXQgcmVzb2x2ZWQgY29ycmVjdGx5LgogUEFTUyA8IFtJbml0aWFs
aXppbmcgQXVkaW9Xb3JrbGV0IGFuZCBDb250ZXh0XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0
b3RhbCAyIGFzc2VydGlvbnMpCiBQQVNTID4gW1ZlcmlmeSBTaXplIG9mIEF1ZGlvUGFyYW0gQXJy
YXlzXQotRkFJTCBYIFJlbmRlciBxdWFudHVtIDA6IGFycmF5IHNpemU6IEV4cGVjdGVkIDEgZm9y
IGFsbCB2YWx1ZXMgYnV0IGZvdW5kIDEyOCB1bmV4cGVjdGVkIHZhbHVlczoKLQlJbmRleAlBY3R1
YWwKLQlbMF0JMAotCVsxXQkwCi0JWzJdCTAKLQlbM10JMAotCS4uLmFuZCAxMjQgbW9yZSBlcnJv
cnMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIFJlbmRlciBx
dWFudHVtIDE6IGFycmF5IHNpemU6IEV4cGVjdGVkIDEgZm9yIGFsbCB2YWx1ZXMgYnV0IGZvdW5k
IDEyOCB1bmV4cGVjdGVkIHZhbHVlczoKLQlJbmRleAlBY3R1YWwKLQlbMF0JMAotCVsxXQkwCi0J
WzJdCTAKLQlbM10JMAotCS4uLmFuZCAxMjQgbW9yZSBlcnJvcnMuIGFzc2VydF90cnVlOiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBYIFJlbmRlciBxdWFudHVtIDItMzogYXJyYXkgc2l6
ZTogRXhwZWN0ZWQgMTI4IGZvciBhbGwgdmFsdWVzIGJ1dCBmb3VuZCAyNTYgdW5leHBlY3RlZCB2
YWx1ZXM6Ci0JSW5kZXgJQWN0dWFsCi0JWzBdCTAKLQlbMV0JMAotCVsyXQkwCi0JWzNdCTAKLQku
Li5hbmQgMjUyIG1vcmUgZXJyb3JzLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKLUZBSUwgWCBSZW1haW5pbmcgcmVuZGVyczogYXJyYXkgc2l6ZTogRXhwZWN0ZWQgMSBmb3Ig
YWxsIHZhbHVlcyBidXQgZm91bmQgNzY4IHVuZXhwZWN0ZWQgdmFsdWVzOgotCUluZGV4CUFjdHVh
bAotCVswXQkwCi0JWzFdCTAKLQlbMl0JMAotCVszXQkwCi0JLi4uYW5kIDc2NCBtb3JlIGVycm9y
cy4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIDwgW1ZlcmlmeSBT
aXplIG9mIEF1ZGlvUGFyYW0gQXJyYXlzXSA0IG91dCBvZiA0IGFzc2VydGlvbnMgd2VyZSBmYWls
ZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCAjIEFVRElUIFRB
U0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiAyIHRhc2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRf
dHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBSZW5kZXIgcXVhbnR1bSAwOiBh
cnJheSBzaXplIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDEuCitQQVNTICAgUmVuZGVyIHF1
YW50dW0gMTogYXJyYXkgc2l6ZSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAxLgorUEFTUyAg
IFJlbmRlciBxdWFudHVtIDItMzogYXJyYXkgc2l6ZSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFu
dCAxMjguCitQQVNTICAgUmVtYWluaW5nIHJlbmRlcnM6IGFycmF5IHNpemUgY29udGFpbnMgb25s
eSB0aGUgY29uc3RhbnQgMS4KK1BBU1MgPCBbVmVyaWZ5IFNpemUgb2YgQXVkaW9QYXJhbSBBcnJh
eXNdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykKK1BBU1MgIyBB
VURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3Jr
bGV0LWF1ZGlvcGFyYW0uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dv
cmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldC1hdWRpb3BhcmFtLmh0dHBzLWV4cGVjdGVkLnR4
dAppbmRleCA2ZTA5Y2E4YWM3ZmQ2OGM5ZmQ3MzBlMGY4ZTc3YTI4NTM3OTgwNTg2Li5lN2QzNGQz
N2EyYTExYmU4OTFjYTE0ZDU2ZDMyOTNmNDRiY2Y2ZjQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkv
dGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0LWF1ZGlvcGFyYW0uaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9h
dWRpb3dvcmtsZXQtYXVkaW9wYXJhbS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTgsMTMgKzgsNyBA
QCBQQVNTIDwgW0luaXRpYWxpemluZyBBdWRpb1dvcmtsZXQgYW5kIENvbnRleHRdIEFsbCBhc3Nl
cnRpb25zIHBhc3NlZC4gKHRvdGFsIDAgYQogUEFTUyA+IFtWZXJpZnlpbmcgQXVkaW9QYXJhbSBp
biBBdWRpb1dvcmtsZXROb2RlXQogUEFTUyAgIERlZmF1bHQgZ2FpbiB2YWx1ZSBvZiBnYWluV29y
a2xldE5vZGUgaXMgZXF1YWwgdG8gMC43MDcwMDAwMTcxNjYxMzc3LgogUEFTUyAgIFZhbHVlIG9m
IGdhaW5Xb3JrbGV0UGFyYW0gYWZ0ZXIgc2V0dGVyID0gMC4xIGlzIGVxdWFsIHRvIDAuMTAwMDAw
MDAxNDkwMTE2MTIuCi1GQUlMIFggVGhlIHJlbmRlcmVkIGJ1ZmZlcjogRXhwZWN0ZWQgMCBmb3Ig
YWxsIHZhbHVlcyBidXQgZm91bmQgMjg3OTggdW5leHBlY3RlZCB2YWx1ZXM6Ci0JSW5kZXgJQWN0
dWFsCi0JWzFdCS0wLjAwMDIwODMzMzMzODM3Nzk5NzI4Ci0JWzJdCS0wLjAwMDQxNjY2NjY3Njc1
NTk5NDU2Ci0JWzNdCS0wLjAwMDYyNDk5OTk4NjAzMDE2MTQKLQlbNF0JLTAuMDAwODMzMzMzMzUz
NTExOTg5MQotCS4uLmFuZCAyODc5NCBtb3JlIGVycm9ycy4gYXNzZXJ0X3RydWU6IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCi1GQUlMIDwgW1ZlcmlmeWluZyBBdWRpb1BhcmFtIGluIEF1ZGlvV29y
a2xldE5vZGVdIDEgb3V0IG9mIDMgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNI
RUQ6IDEgb3V0IG9mIDIgdGFza3Mgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQorUEFTUyAgIFRoZSByZW5kZXJlZCBidWZmZXIgY29udGFpbnMgb25seSB0
aGUgY29uc3RhbnQgMC4KK1BBU1MgPCBbVmVyaWZ5aW5nIEF1ZGlvUGFyYW0gaW4gQXVkaW9Xb3Jr
bGV0Tm9kZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKQorUEFT
UyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAyIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHku
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRp
b3dvcmtsZXRub2RlLWNoYW5uZWwtY291bnQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBp
L3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtY2hhbm5lbC1jb3Vu
dC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNWUyYzg5MTE4MGZkNmFkOGU5Y2E1MjM1NDliZTVj
NzhmOThlZGIyZS4uYjU5ZTc2NGYwYTczNDFlMTlhMTlmNTU2NWNlMjI0Mjc1MjAzYzU5MyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJh
dWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xl
dG5vZGUtY2hhbm5lbC1jb3VudC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3Ro
ZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldG5vZGUtY2hhbm5lbC1jb3VudC5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTcsMjkgKzcsMTEgQEAgUEFTUyA+IFtzZXR1cC1idWZmZXIt
YW5kLXdvcmtsZXRdCiBQQVNTIDwgW3NldHVwLWJ1ZmZlci1hbmQtd29ya2xldF0gQWxsIGFzc2Vy
dGlvbnMgcGFzc2VkLiAodG90YWwgMCBhc3NlcnRpb25zKQogUEFTUyA+IFt2ZXJpZnktcmVuZGVy
ZWQtYnVmZmVyXQogUEFTUyAgIEZpcnN0IGhhbGYgb2YgQ2hhbm5lbCAjMCBjb250YWlucyBvbmx5
IHRoZSBjb25zdGFudCAwLgotRkFJTCBYIFNlY29uZCBoYWxmIG9mIENoYW5uZWwgIzA6IEV4cGVj
dGVkIDEgZm9yIGFsbCB2YWx1ZXMgYnV0IGZvdW5kIDEyOCB1bmV4cGVjdGVkIHZhbHVlczoKLQlJ
bmRleAlBY3R1YWwKLQlbMF0JMAotCVsxXQkwCi0JWzJdCTAKLQlbM10JMAotCS4uLmFuZCAxMjQg
bW9yZSBlcnJvcnMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAg
IFNlY29uZCBoYWxmIG9mIENoYW5uZWwgIzAgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMS4K
IFBBU1MgICBGaXJzdCBoYWxmIG9mIENoYW5uZWwgIzEgY29udGFpbnMgb25seSB0aGUgY29uc3Rh
bnQgMC4KLUZBSUwgWCBTZWNvbmQgaGFsZiBvZiBDaGFubmVsICMxOiBFeHBlY3RlZCAyIGZvciBh
bGwgdmFsdWVzIGJ1dCBmb3VuZCAxMjggdW5leHBlY3RlZCB2YWx1ZXM6Ci0JSW5kZXgJQWN0dWFs
Ci0JWzBdCTAKLQlbMV0JMAotCVsyXQkwCi0JWzNdCTAKLQkuLi5hbmQgMTI0IG1vcmUgZXJyb3Jz
LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBTZWNvbmQgaGFs
ZiBvZiBDaGFubmVsICMxIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDIuCiBQQVNTICAgRmly
c3QgaGFsZiBvZiBDaGFubmVsICMyIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuCi1GQUlM
IFggU2Vjb25kIGhhbGYgb2YgQ2hhbm5lbCAjMjogRXhwZWN0ZWQgMyBmb3IgYWxsIHZhbHVlcyBi
dXQgZm91bmQgMTI4IHVuZXhwZWN0ZWQgdmFsdWVzOgotCUluZGV4CUFjdHVhbAotCVswXQkwCi0J
WzFdCTAKLQlbMl0JMAotCVszXQkwCi0JLi4uYW5kIDEyNCBtb3JlIGVycm9ycy4gYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIDwgW3ZlcmlmeS1yZW5kZXJlZC1idWZm
ZXJdIDMgb3V0IG9mIDYgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEg
b3V0IG9mIDIgdGFza3Mgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorUEFTUyAgIFNlY29uZCBoYWxmIG9mIENoYW5uZWwgIzIgY29udGFpbnMgb25seSB0
aGUgY29uc3RhbnQgMy4KK1BBU1MgPCBbdmVyaWZ5LXJlbmRlcmVkLWJ1ZmZlcl0gQWxsIGFzc2Vy
dGlvbnMgcGFzc2VkLiAodG90YWwgNiBhc3NlcnRpb25zKQorUEFTUyAjIEFVRElUIFRBU0sgUlVO
TkVSIEZJTklTSEVEOiAyIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411172</attachid>
            <date>2020-10-12 15:33:40 -0700</date>
            <delta_ts>2020-10-13 13:02:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217637-20201012153339.patch</filename>
            <type>text/plain</type>
            <size>36733</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4Mjg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA3YWI0MzVlYjA1OGZm
NjhhZTU2ZDZlN2FkM2NkZDM0NGYyNzE2ZC4uZDZkNjkzNzljMzhhNGIwZGI3MGY1ZDExMWM0YTNi
N2ExZDZlZWY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTEwLTEyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgJ3BhcmFtZXRlcnMnIGFyZ3Vt
ZW50IHRvIEF1ZGlvV29ya2xldFByb2Nlc3Nvci5wcm9jZXNzKCkgaXMgbm90IHNwZWMtY29tcGxp
YW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc2
MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAncGFy
YW1ldGVycycgYXJndW1lbnQgdG8gQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLnByb2Nlc3MoKSBpcyBu
b3Qgc3BlYy1jb21wbGlhbnQ6CisgICAgICAgIC0gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1
ZGlvLyNkb20tYXVkaW93b3JrbGV0cHJvY2Vzc29yLXByb2Nlc3MtaW5wdXRzLW91dHB1dHMtcGFy
YW1ldGVycy1wYXJhbWV0ZXJzCisKKyAgICAgICAgSXRzIHR5cGUgc2hvdWxkIG5vdCBiZSBhIEpT
IE1hcCwgYXMgZXZpZGVuY2VkIGJ5IGhvdyBXUFQgdGVzdHMgdXNlIGl0LiBXZSBub3cgcGFzcyBh
IGdlbmVyaWMgSlMgT2JqZWN0LAorICAgICAgICBhcyBCbGluayBpcyBkb2luZy4KKworICAgICAg
ICBBbHNvLCBhcyBwZXIgdGhlIHNwZWNpZmljYXRpb24sIGlmIG5vIGF1dG9tYXRpb24gaXMgc2No
ZWR1bGVkIGR1cmluZyB0aGUgcmVuZGVyIHF1YW50dW0sIHRoZSBhcnJheSBtYXkKKyAgICAgICAg
aGF2ZSBsZW5ndGggMSB3aXRoIHRoZSBhcnJheSBlbGVtZW50IGJlaW5nIHRoZSBjb25zdGFudCB2
YWx1ZSBvZiB0aGUgQXVkaW9QYXJhbSBmb3IgdGhlIHJlbmRlciBxdWFudHVtLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cywgcmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Q
YXJhbTo6aGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRp
bWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6aGFzVmFs
dWVzIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGlu
ZS5oOgorICAgICAgICBUaGlzIGlzIGFuIG9wdGltaXphdGlvbiB0byBhdm9pZCBjYWxjdWxhdGlu
ZyBzYW1wbGUgYWNjdXJhdGUgdmFsdWVzIGlmIHRoZSBmaXJzdCB0aW1lbGluZSBldmVudCBpcwor
ICAgICAgICBzdGlsbCBpbiB0aGUgZnV0dXJlLiBBdCBzb21lIHBvaW50LCB3ZSBzaG91bGQgY29u
c2lkZXIgaW1wcm92aW5nIHRoZSBsb2dpYyB0byBkbyBzbyB3aGVuIGFsbCBldmVudHMKKyAgICAg
ICAgYXJlIGluIHRoZSBwYXN0LCBzaW1pbGFybHkgdG8gd2hhdCBCbGluayBpcyBkb2luZy4KKwor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1dvcmtsZXROb2RlOjppbml0aWFsaXplQXVkaW9QYXJhbWV0ZXJzKToK
KyAgICAgICAgRG8gbm90IGluaXRpYWxpemUgbWVtb3J5IGZvciB0aGUgQXVkaW9GbG9hdEFycmF5
cyBvZiBlYWNoIEF1ZGlvUGFyYW0geWV0IHNpbmNlIHdlIHdvbid0IGtub3cgdW50aWwKKyAgICAg
ICAgcHJvY2VzcygpIGlzIGNhbGxlZCBpZiBzaXplIHdpbGwgYmUgMSBvciByZW5kZXJRdWFudHVt
U2l6ZSBhbmQgc2luY2UgdGhlIHNpemUgY2FuIGNoYW5nZSBkeW5hbWljYWxseS4KKworICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0Tm9kZTo6cHJvY2Vzcyk6CisgICAgICAgIEFzIHBlciB0
aGUgc3BlY2lmaWNhdGlvbiwgaWYgdGhlcmUgaXMgbm8gdGltZWxpbmUgZXZlbnQsIHdlIHBhc3Mg
YW4gYXJyYXkgdGhhdCBoYXMgbGVuZ3RoIDEgYW5kIHdob3NlCisgICAgICAgIGVsZW1lbnQgaXMg
dGhlIGNvbnN0YW50IHZhbHVlLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dv
cmtsZXRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0RnJvemVuS2V5
VmFsdWVPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpw
cm9jZXNzKToKKyAgICAgICAgSW5zdGVhZCBvZiBwYXNzaW5nIHRoZSBwYXJhbWV0ZXJzIGFzIGEg
SlMgbWFwLCB3ZSBub3cgdXNlIGEgc2ltcGxlIGZyb3plbiBvYmplY3QuIFdlIGFsc28gbWFrZSBz
dXJlCisgICAgICAgIHRoZSBGbG9hdDMyQXJyYXkgd2UgcGFzcyBKUyBoYXMgbGVuZ3RoIDEgaWYg
dGhlIGlucHV0IGFycmF5IGNvbnN0YWlucyBhIGNvbnN0YW50IHZhbHVlLiBUaGlzIGJlaGF2aW9y
CisgICAgICAgIGlzIGNvbnNpc3RlbnQgd2l0aCB3aGF0IEJsaW5rIGlzIGRvaW5nLgorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEZWxheURTUEtlcm5lbDo6RGVsYXlEU1BLZXJuZWwpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZUFuYWx5c2VyOjpzZXRGZnRTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0Fy
cmF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0FycmF5OjpBdWRpb0FycmF5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6OnJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b0FycmF5OjphdCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0FycmF5Ojp6ZXJvKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6Onplcm9SYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb0FycmF5Ojpjb3B5VG9SYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0FycmF5Ojpj
b250YWluc0NvbnN0YW50VmFsdWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0Jp
cXVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWQ6OkJpcXVhZCk6CisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyU3RhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmV2ZXJiQ29udm9sdmVyU3RhZ2U6OlJldmVyYkNvbnZvbHZlclN0YWdlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9GaWxlUmVhZGVySU9TLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9tYWMvQXVkaW9GaWxlUmVhZGVyTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
RmlsZVJlYWRlcjo6Y3JlYXRlQnVzKToKKyAgICAgICAgUmVuYW1lIEF1ZGlvQXJyYXk6OmFsbG9j
YXRlKCkgdG8gQXVkaW9BcnJheTo6cmVzaXplKCkgZm9yIGNsYXJpdHkgc2luY2UgaXQgY2FuIGJl
IGNhbGxlZCBtdWx0aXBsZSB0aW1lcworICAgICAgICBhZnRlciBjb25zdHJ1Y3Rpb24gb2YgdGhl
IEF1ZGlvQXJyYXkuIE1ha2UgaXQgYSBuby1vcCBpZiB0aGUgbmV3IHNpemUgaXMgdGhlIHNhbWUg
YXMgdGhlIG9sZCBvbmUuCisgICAgICAgIEFsc28gYWRkIGEgdXRpbGl0eSBmdW5jdGlvbiB0byBj
aGVjayBpZiB0aGUgYXJyYXkgY29uc3RhaW5zIGEgY29uc3RhbnQgdmFsdWUuCisKIDIwMjAtMTAt
MTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBDYWxsaW5nIEF1
ZGlvQ29udGV4dC5yZXN1bWUoKSByaWdodCBhZnRlciBBdWRpb0NvbnRleHQuc3VzcGVuZCgpIHNo
b3VsZCBub3QgYmUgYSBuby1vcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1BhcmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9QYXJhbS5jcHAKaW5kZXggMzdhMzNlNWVjM2RkNjUyMWIzNDBjNTEyNzQ0M2YxMjA3MDlh
YzUxNC4uMjI1NGM2NTg2MmU4NmExMmEyYmI3YTM3YWU2ZTJhZDk4YjllMWJkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCkBAIC0yMjMsNiAr
MjIzLDE0IEBAIEV4Y2VwdGlvbk9yPEF1ZGlvUGFyYW0mPiBBdWRpb1BhcmFtOjpjYW5jZWxBbmRI
b2xkQXRUaW1lKGRvdWJsZSBjYW5jZWxUaW1lKQogICAgIHJldHVybiAqdGhpczsKIH0KIAorYm9v
bCBBdWRpb1BhcmFtOjpoYXNTYW1wbGVBY2N1cmF0ZVZhbHVlcygpIGNvbnN0Cit7CisgICAgaWYg
KG51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
KyAgICByZXR1cm4gbV90aW1lbGluZS5oYXNWYWx1ZXMoY29udGV4dCgpLmN1cnJlbnRTYW1wbGVG
cmFtZSgpLCBjb250ZXh0KCkuc2FtcGxlUmF0ZSgpKTsKK30KKwogZmxvYXQgQXVkaW9QYXJhbTo6
ZmluYWxWYWx1ZSgpCiB7CiAgICAgZmxvYXQgdmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCmluZGV4IDE2YjQzMjU1YjYzZTI3NzcxODM4NTI3MTA0
YmQ3YWY5YTA2MTQyNGYuLjc2MGNiN2M2OGU5OTE0MmM2NTJiZjI2N2I5ODhiOWJjZTNiNzI1Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oCkBAIC0x
MDYsNyArMTA2LDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPEF1ZGlvUGFyYW0mPiBjYW5j
ZWxTY2hlZHVsZWRWYWx1ZXMoZG91YmxlIGNhbmNlbFRpbWUpOwogICAgIEV4Y2VwdGlvbk9yPEF1
ZGlvUGFyYW0mPiBjYW5jZWxBbmRIb2xkQXRUaW1lKGRvdWJsZSBjYW5jZWxUaW1lKTsKIAotICAg
IGJvb2wgaGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3RpbWVsaW5l
Lmhhc1ZhbHVlcygpIHx8IG51bWJlck9mUmVuZGVyaW5nQ29ubmVjdGlvbnMoKTsgfQorICAgIGJv
b2wgaGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMoKSBjb25zdDsKICAgICAKICAgICAvLyBDYWxjdWxh
dGVzIG51bWJlck9mVmFsdWVzIHBhcmFtZXRlciB2YWx1ZXMgc3RhcnRpbmcgYXQgdGhlIGNvbnRl
eHQncyBjdXJyZW50IHRpbWUuCiAgICAgLy8gTXVzdCBiZSBjYWxsZWQgaW4gdGhlIGNvbnRleHQn
cyByZW5kZXIgdGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCmluZGV4IGZmNjgxNzI4NTAwOGJlNzBiNTZjNWU2
NTZiZjgwNTM5YTZmNWQ4OTYuLjM3YTA1Y2IwMDdhMDNkNWJhYzZjMDY5YmJkNmZjZmI5NTIwNDQw
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJh
bVRpbWVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
UGFyYW1UaW1lbGluZS5jcHAKQEAgLTk4Nyw2ICs5ODcsMTcgQEAgYm9vbCBBdWRpb1BhcmFtVGlt
ZWxpbmU6OmlzRXZlbnRDdXJyZW50KGNvbnN0IFBhcmFtRXZlbnQmIGV2ZW50LCBjb25zdCBQYXJh
bUV2ZW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBBdWRpb1BhcmFtVGltZWxpbmU6Omhh
c1ZhbHVlcyhzaXplX3Qgc3RhcnRGcmFtZSwgZG91YmxlIHNhbXBsZVJhdGUpIGNvbnN0Cit7Cisg
ICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2V2ZW50c0xvY2spOworICAgIGlmICghbG9j
a2VyKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIFJldHVybiBmYWxzZSBpZiB0aGVy
ZSBhcmUgbm8gZXZlbnRzIGluIHRoZSB0aW1lIHJhbmdlLgorICAgIGF1dG8gZW5kRnJhbWUgPSBz
dGFydEZyYW1lICsgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplOworICAgIHJldHVy
biAhbV9ldmVudHMuaXNFbXB0eSgpICYmIGVuZEZyYW1lIC8gc2FtcGxlUmF0ZSA+IG1fZXZlbnRz
WzBdLT50aW1lKCkudmFsdWUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5oCmluZGV4IGJkZTAwMGE5MmFiODI0ZTIyNDlj
YzEyZDBiNmRiN2UzMDNjMTNmMDIuLmZiOTA5Mjk0ZTc4Yjk5YjQ1Yjc3MTQxMTkwNTEwZGIwMzRk
YmVmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbVRpbWVsaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtVGltZWxpbmUuaApAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgLy8gdGhlIHJl
bmRlciBxdWFudHVtIHNpemUgc3VjaCB0aGF0IHRoZSBwYXJhbWV0ZXIgdmFsdWUgY2hhbmdlcyBv
bmNlIHBlciByZW5kZXIgcXVhbnR1bS4KICAgICBmbG9hdCB2YWx1ZXNGb3JGcmFtZVJhbmdlKHNp
emVfdCBzdGFydEZyYW1lLCBzaXplX3QgZW5kRnJhbWUsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxv
YXQgbWluVmFsdWUsIGZsb2F0IG1heFZhbHVlLCBmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1i
ZXJPZlZhbHVlcywgZG91YmxlIHNhbXBsZVJhdGUsIGRvdWJsZSBjb250cm9sUmF0ZSk7CiAKLSAg
ICBib29sIGhhc1ZhbHVlcygpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRzLnNpemUoKTsgfQorICAg
IGJvb2wgaGFzVmFsdWVzKHNpemVfdCBzdGFydEZyYW1lLCBkb3VibGUgc2FtcGxlUmF0ZSkgY29u
c3Q7CiAKIHByaXZhdGU6CiAgICAgY2xhc3MgUGFyYW1FdmVudCB7CkBAIC0yMDEsNyArMjAxLDcg
QEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxVbmlxdWVSZWY8UGFyYW1FdmVudD4+IG1fZXZlbnRz
OwogCi0gICAgTG9jayBtX2V2ZW50c0xvY2s7CisgICAgbXV0YWJsZSBMb2NrIG1fZXZlbnRzTG9j
azsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uaAppbmRleCA1MjMyMTI3
NTkxOTkxNDliZjUwZDAzYTIzMzI4ODA4ODFiYTkxODg2Li5mMjVlZGRmZTNlODkxMWVjMTkwZWYz
N2E1MDk3MTljMDIzNGQzNjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5oCkBAIC00Miw2ICs0Miw3IEBAIHB1Ymxp
YzoKIAogICAgIC8vIENhbiBiZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFkLgogICAgIEJhc2VBdWRp
b0NvbnRleHQmIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRleHQ7IH0KKyAgICBjb25zdCBCYXNl
QXVkaW9Db250ZXh0JiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0OyB9CiAKICAg
ICAvLyBUaGlzIG11c3QgYmUgY2FsbGVkIHdoZW5ldmVyIHdlIG1vZGlmeSBtX291dHB1dHMuCiAg
ICAgdm9pZCBjaGFuZ2VkT3V0cHV0cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAKaW5kZXggNjE0OWU3YTAxYzYyNzA2Yzgz
Y2Q3YTI0MTk0NzEzOTM2ZGE3NTYxZC4uZTdiNzlkNDQyMzk4NzdiZGJiNzFiZjAyMzQ0MGM0YmEx
YTQ5NDllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1dvcmtsZXROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvV29ya2xldE5vZGUuY3BwCkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBBdWRpb1dvcmtsZXRO
b2RlOjppbml0aWFsaXplQXVkaW9QYXJhbWV0ZXJzKGNvbnN0IFZlY3RvcjxBdWRpb1BhcmFtRGVz
Y3JpcHQKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIHBhcmFtZXRlck5hbWUgOiBtX3BhcmFtZXRl
cnMtPm1hcCgpLmtleXMoKSkKLSAgICAgICAgbV9wYXJhbVZhbHVlc01hcC5hZGQocGFyYW1ldGVy
TmFtZSwgbWFrZVVuaXF1ZTxBdWRpb0Zsb2F0QXJyYXk+KEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJR
dWFudHVtU2l6ZSkpOworICAgICAgICBtX3BhcmFtVmFsdWVzTWFwLmFkZChwYXJhbWV0ZXJOYW1l
LCBtYWtlVW5pcXVlPEF1ZGlvRmxvYXRBcnJheT4oKSk7CiB9CiAKIHZvaWQgQXVkaW9Xb3JrbGV0
Tm9kZTo6c2V0UHJvY2Vzc29yKFJlZlB0cjxBdWRpb1dvcmtsZXRQcm9jZXNzb3I+JiYgcHJvY2Vz
c29yKQpAQCAtMjA0LDEwICsyMDQsMTUgQEAgdm9pZCBBdWRpb1dvcmtsZXROb2RlOjpwcm9jZXNz
KHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgZm9yIChhdXRvJiBhdWRpb1BhcmFtIDogbV9w
YXJhbWV0ZXJzLT5tYXAoKS52YWx1ZXMoKSkgewogICAgICAgICBhdXRvKiBwYXJhbVZhbHVlcyA9
IG1fcGFyYW1WYWx1ZXNNYXAuZ2V0KGF1ZGlvUGFyYW0tPm5hbWUoKSk7CiAgICAgICAgIEFTU0VS
VChwYXJhbVZhbHVlcyk7Ci0gICAgICAgIGlmIChhdWRpb1BhcmFtLT5oYXNTYW1wbGVBY2N1cmF0
ZVZhbHVlcygpICYmIGF1ZGlvUGFyYW0tPmF1dG9tYXRpb25SYXRlKCkgPT0gQXV0b21hdGlvblJh
dGU6OkFSYXRlKQorICAgICAgICBpZiAoYXVkaW9QYXJhbS0+aGFzU2FtcGxlQWNjdXJhdGVWYWx1
ZXMoKSAmJiBhdWRpb1BhcmFtLT5hdXRvbWF0aW9uUmF0ZSgpID09IEF1dG9tYXRpb25SYXRlOjpB
UmF0ZSkgeworICAgICAgICAgICAgcGFyYW1WYWx1ZXMtPnJlc2l6ZShmcmFtZXNUb1Byb2Nlc3Mp
OwogICAgICAgICAgICAgYXVkaW9QYXJhbS0+Y2FsY3VsYXRlU2FtcGxlQWNjdXJhdGVWYWx1ZXMo
cGFyYW1WYWx1ZXMtPmRhdGEoKSwgZnJhbWVzVG9Qcm9jZXNzKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgc3RkOjpmaWxsKHBhcmFtVmFsdWVzLT5kYXRhKCksIHBhcmFtVmFsdWVzLT5kYXRh
KCkgKyBmcmFtZXNUb1Byb2Nlc3MsIGF1ZGlvUGFyYW0tPmZpbmFsVmFsdWUoKSk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAvLyBJZiBubyBhdXRvbWF0aW9uIGlzIHNjaGVkdWxlZCBk
dXJpbmcgdGhpcyByZW5kZXIgcXVhbnR1bSwgdGhlIGFycmF5IG1heSBoYXZlIGxlbmd0aCAxCisg
ICAgICAgICAgICAvLyB3aXRoIHRoZSBhcnJheSBlbGVtZW50IGJlaW5nIHRoZSBjb25zdGFudCB2
YWx1ZSBvZiB0aGUgQXVkaW9QYXJhbSBmb3IgdGhlIHJlbmRlciBxdWFudHVtLgorICAgICAgICAg
ICAgcGFyYW1WYWx1ZXMtPnJlc2l6ZSgxKTsKKyAgICAgICAgICAgICpwYXJhbVZhbHVlcy0+ZGF0
YSgpID0gYXVkaW9QYXJhbS0+ZmluYWxWYWx1ZSgpOworICAgICAgICB9CiAgICAgfQogCiAgICAg
Ym9vbCB0aHJld0V4Y2VwdGlvbiA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCmluZGV4IDhkZDAx
NTMwODc2NTVjOGFkZTk4N2IzMzVjNzg0YTQ4YTQxNmY1MjcuLmEyMjMxNTEyYmIxYWQ4NTY5ZDAy
MDEyZWYwMjgyMmRjNzVmZTFmYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xldFByb2Nlc3Nvci5jcHAKQEAgLTM4LDcgKzM4LDYg
QEAKICNpbmNsdWRlICJKU0NhbGxiYWNrRGF0YS5oIgogI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9u
SGFuZGxpbmcuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgotI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTTWFwLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNUeXBlZEFycmF5cy5o
PgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIApAQCAtNTQsMTIgKzUzLDIwIEBAIHN0YXRpYyBK
U0Zsb2F0MzJBcnJheSogY29uc3RydWN0SlNGbG9hdDMyQXJyYXkoSlNHbG9iYWxPYmplY3QmIGds
b2JhbE9iamVjdCwgdW5zCiAgICAgcmV0dXJuIGpzQXJyYXk7CiB9CiAKLXN0YXRpYyBKU01hcCog
Y29uc3RydWN0SlNNYXAoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25z
dCBIYXNoTWFwPFN0cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJh
bVZhbHVlc01hcCkKK3N0YXRpYyBKU09iamVjdCogY29uc3RydWN0RnJvemVuS2V5VmFsdWVPYmpl
Y3QoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBIYXNoTWFwPFN0
cmluZywgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmxvYXRBcnJheT4+JiBwYXJhbVZhbHVlc01hcCkK
IHsKLSAgICBhdXRvKiBtYXAgPSBKU01hcDo6Y3JlYXRlKCZnbG9iYWxPYmplY3QsIHZtLCBnbG9i
YWxPYmplY3QubWFwU3RydWN0dXJlKCkpOwotICAgIGZvciAoYXV0byYgcGFpciA6IHBhcmFtVmFs
dWVzTWFwKQotICAgICAgICBtYXAtPnNldCgmZ2xvYmFsT2JqZWN0LCBqc1N0cmluZ1dpdGhDYWNo
ZSh2bSwgcGFpci5rZXkpLCBjb25zdHJ1Y3RKU0Zsb2F0MzJBcnJheShnbG9iYWxPYmplY3QsIHBh
aXIudmFsdWUtPnNpemUoKSwgcGFpci52YWx1ZS0+ZGF0YSgpKSk7Ci0gICAgcmV0dXJuIG1hcDsK
KyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgYXV0byogcGxh
aW5PYmplY3RTdHJ1Y3R1cmUgPSBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sICZn
bG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKSwgMCk7CisgICAgYXV0
byogb2JqZWN0ID0gSlNGaW5hbE9iamVjdDo6Y3JlYXRlKHZtLCBwbGFpbk9iamVjdFN0cnVjdHVy
ZSk7CisgICAgZm9yIChhdXRvJiBwYWlyIDogcGFyYW1WYWx1ZXNNYXApIHsKKyAgICAgICAgUHV0
UHJvcGVydHlTbG90IHNsb3Qob2JqZWN0LCBmYWxzZSwgUHV0UHJvcGVydHlTbG90OjpQdXRCeUlk
KTsKKyAgICAgICAgLy8gUGVyIHRoZSBzcGVjaWZpY2F0aW9uLCBpZiB0aGUgdmFsdWUgaXMgY29u
c3RhbnQsIHdlIHBhc3MgdGhlIEpTIGFuIGFycmF5IHdpdGggbGVuZ3RoIDEsIHdpdGggdGhlIGFy
cmF5IGl0ZW0gYmVpbmcgdGhlIGNvbnN0YW50LgorICAgICAgICB1bnNpZ25lZCBqc0FycmF5U2l6
ZSA9IHBhaXIudmFsdWUtPmNvbnRhaW5zQ29uc3RhbnRWYWx1ZSgpID8gMSA6IHBhaXIudmFsdWUt
PnNpemUoKTsKKyAgICAgICAgb2JqZWN0LT5wdXRJbmxpbmUoJmdsb2JhbE9iamVjdCwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgcGFpci5rZXkpLCBjb25zdHJ1Y3RKU0Zsb2F0MzJBcnJheShn
bG9iYWxPYmplY3QsIGpzQXJyYXlTaXplLCBwYWlyLnZhbHVlLT5kYXRhKCkpLCBzbG90KTsKKyAg
ICB9CisgICAgSlNDOjpvYmplY3RDb25zdHJ1Y3RvckZyZWV6ZSgmZ2xvYmFsT2JqZWN0LCBvYmpl
Y3QpOworICAgIEVYQ0VQVElPTl9BU1NFUlRfVU5VU0VEKHNjb3BlLCAhc2NvcGUuZXhjZXB0aW9u
KCkpOworICAgIHJldHVybiBvYmplY3Q7CiB9CiAKIGVudW0gY2xhc3MgU2hvdWxkUG9wdWxhdGVX
aXRoQnVzRGF0YSA6IGJvb2wgeyBObywgWWVzIH07CkBAIC0xMzQsMTIgKzE0MSwxMiBAQCBib29s
IEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2Vzcyhjb25zdCBWZWN0b3I8UmVmUHRyPEF1ZGlv
QnVzPj4mIGlucHV0cywgVmVjdAogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKIAogICAgIE1h
cmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBjb25zaWRl
ciBjYWNoaW5nIHRoZSBKU0FycmF5cyAmIEpTTWFwIGFuZCBvbmx5IHVwZGF0ZSB0aGVpciBpdGVt
cworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY29uc2lkZXIgY2FjaGluZyB0aGUgSlNBcnJheXMg
JiBKU09iamVjdCBhbmQgb25seSB1cGRhdGUgdGhlaXIgaXRlbXMKICAgICAvLyBldmVyeSB0aW1l
IHByb2Nlc3MoKSBpcyBjYWxsZWQsIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLgogICAgIGFyZ3Mu
YXBwZW5kKGNvbnN0cnVjdEZyb3plbkpTQXJyYXkodm0sIGdsb2JhbE9iamVjdCwgaW5wdXRzLCBT
aG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhOjpZZXMpKTsKICAgICBhdXRvKiBvdXB1dEpTQXJyYXkg
PSBjb25zdHJ1Y3RGcm96ZW5KU0FycmF5KHZtLCBnbG9iYWxPYmplY3QsIG91dHB1dHMsIFNob3Vs
ZFBvcHVsYXRlV2l0aEJ1c0RhdGE6Ok5vKTsKICAgICBhcmdzLmFwcGVuZChvdXB1dEpTQXJyYXkp
OwotICAgIGFyZ3MuYXBwZW5kKGNvbnN0cnVjdEpTTWFwKHZtLCBnbG9iYWxPYmplY3QsIHBhcmFt
VmFsdWVzTWFwKSk7CisgICAgYXJncy5hcHBlbmQoY29uc3RydWN0RnJvemVuS2V5VmFsdWVPYmpl
Y3Qodm0sIGdsb2JhbE9iamVjdCwgcGFyYW1WYWx1ZXNNYXApKTsKIAogICAgIE5ha2VkUHRyPEpT
Qzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKICAgICBhdXRvIHJlc3VsdCA9IG1fcHJv
Y2Vzc0NhbGxiYWNrLT5pbnZva2VDYWxsYmFjayhqc1VuZGVmaW5lZCgpLCBhcmdzLCBKU0NhbGxi
YWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjpPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJwcm9jZXNzIiksIHJldHVybmVkRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRFNQS2VybmVsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRFNQS2VybmVsLmNwcAppbmRleCBjMDc3NjhlMTYzMGM3
Y2IwMjZiN2MwYjE4NGQyOTY3YTNkMmU5ZmJhLi5hZTQxNmY4OWJkYjU4MzQ4OGI3MTY4MTcxNGJh
NDM5MzA0ZWJlNTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0JpcXVhZERTUEtlcm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9CaXF1YWREU1BLZXJuZWwuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJCaXF1
YWREU1BLZXJuZWwuaCIKIAorI2luY2x1ZGUgIkF1ZGlvQXJyYXkuaCIKICNpbmNsdWRlICJBdWRp
b1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIkJpcXVhZC5oIgogI2luY2x1ZGUgIkJpcXVhZFByb2Nl
c3Nvci5oIgpAQCAtMzcsNDQgKzM4LDMwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Rh
dGljIGJvb2wgaGFzQ29uc3RhbnRWYWx1ZXMoZmxvYXQqIHZhbHVlcywgaW50IGZyYW1lc1RvUHJv
Y2VzcykKLXsKLSAgICAvLyBGSVhNRTogVXNlIFNJTUQgdG8gb3B0aW1pemUgdGhpcy4gVGhpcyB3
b3VsZCBzcGVlZCB1cCBwcm9jZXNzaW5nIGJ5IGEgZmFjdG9yIG9mIDQKLSAgICAvLyBiZWNhdXNl
IHdlIGNhbiBwcm9jZXNzIDQgZmxvYXRzIGF0IGEgdGltZS4KLSAgICBmbG9hdCB2YWx1ZSA9IHZh
bHVlc1swXTsKLSAgICBmb3IgKGludCBrID0gMTsgayA8IGZyYW1lc1RvUHJvY2VzczsgKytrKSB7
Ci0gICAgICAgIGlmICh2YWx1ZXNba10gIT0gdmFsdWUpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIEJpcXVhZERTUEtlcm5lbDo6
dXBkYXRlQ29lZmZpY2llbnRzSWZOZWNlc3Nhcnkoc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKIHsK
ICAgICBpZiAoYmlxdWFkUHJvY2Vzc29yKCktPmZpbHRlckNvZWZmaWNpZW50c0RpcnR5KCkpIHsK
ICAgICAgICAgaWYgKGJpcXVhZFByb2Nlc3NvcigpLT5oYXNTYW1wbGVBY2N1cmF0ZVZhbHVlcygp
ICYmIGJpcXVhZFByb2Nlc3NvcigpLT5zaG91bGRVc2VBUmF0ZSgpKSB7Ci0gICAgICAgICAgICBm
bG9hdCBjdXRvZmZGcmVxdWVuY3lbQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplXTsK
LSAgICAgICAgICAgIGZsb2F0IHFbQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplXTsK
LSAgICAgICAgICAgIGZsb2F0IGdhaW5bQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXpl
XTsKLSAgICAgICAgICAgIGZsb2F0IGRldHVuZVtBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemVdOyAvLyBpbiBDZW50cworICAgICAgICAgICAgQXVkaW9GbG9hdEFycmF5IGN1dG9mZkZy
ZXF1ZW5jeShmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgQXVkaW9GbG9hdEFycmF5IHEo
ZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgICAgIEF1ZGlvRmxvYXRBcnJheSBnYWluKGZyYW1l
c1RvUHJvY2Vzcyk7CisgICAgICAgICAgICBBdWRpb0Zsb2F0QXJyYXkgZGV0dW5lKGZyYW1lc1Rv
UHJvY2Vzcyk7IC8vIGluIENlbnRzCiAKICAgICAgICAgICAgIEFTU0VSVChmcmFtZXNUb1Byb2Nl
c3MgPD0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIAotICAgICAgICAgICAg
YmlxdWFkUHJvY2Vzc29yKCktPnBhcmFtZXRlcjEoKS5jYWxjdWxhdGVTYW1wbGVBY2N1cmF0ZVZh
bHVlcyhjdXRvZmZGcmVxdWVuY3ksIGZyYW1lc1RvUHJvY2Vzcyk7Ci0gICAgICAgICAgICBiaXF1
YWRQcm9jZXNzb3IoKS0+cGFyYW1ldGVyMigpLmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVz
KHEsIGZyYW1lc1RvUHJvY2Vzcyk7Ci0gICAgICAgICAgICBiaXF1YWRQcm9jZXNzb3IoKS0+cGFy
YW1ldGVyMygpLmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKGdhaW4sIGZyYW1lc1RvUHJv
Y2Vzcyk7Ci0gICAgICAgICAgICBiaXF1YWRQcm9jZXNzb3IoKS0+cGFyYW1ldGVyNCgpLmNhbGN1
bGF0ZVNhbXBsZUFjY3VyYXRlVmFsdWVzKGRldHVuZSwgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAg
ICAgICAgIGJpcXVhZFByb2Nlc3NvcigpLT5wYXJhbWV0ZXIxKCkuY2FsY3VsYXRlU2FtcGxlQWNj
dXJhdGVWYWx1ZXMoY3V0b2ZmRnJlcXVlbmN5LmRhdGEoKSwgZnJhbWVzVG9Qcm9jZXNzKTsKKyAg
ICAgICAgICAgIGJpcXVhZFByb2Nlc3NvcigpLT5wYXJhbWV0ZXIyKCkuY2FsY3VsYXRlU2FtcGxl
QWNjdXJhdGVWYWx1ZXMocS5kYXRhKCksIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgICAgICAgICBi
aXF1YWRQcm9jZXNzb3IoKS0+cGFyYW1ldGVyMygpLmNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlVmFs
dWVzKGdhaW4uZGF0YSgpLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICAgICAgYmlxdWFkUHJv
Y2Vzc29yKCktPnBhcmFtZXRlcjQoKS5jYWxjdWxhdGVTYW1wbGVBY2N1cmF0ZVZhbHVlcyhkZXR1
bmUuZGF0YSgpLCBmcmFtZXNUb1Byb2Nlc3MpOwogCiAgICAgICAgICAgICAvLyBJZiBhbGwgdGhl
IHZhbHVlcyBhcmUgYWN0dWFsbHkgY29uc3RhbnQgZm9yIHRoaXMgcmVuZGVyIChvciB0aGUKICAg
ICAgICAgICAgIC8vIGF1dG9tYXRpb24gcmF0ZSBpcyAiay1yYXRlIiBmb3IgYWxsIG9mIHRoZSBB
dWRpb1BhcmFtcyksIHdlIGRvbid0IG5lZWQKICAgICAgICAgICAgIC8vIHRvIGNvbXB1dGUgZmls
dGVyIGNvZWZmaWNpZW50cyBmb3IgZWFjaCBmcmFtZSBzaW5jZSB0aGV5IHdvdWxkIGJlIHRoZQog
ICAgICAgICAgICAgLy8gc2FtZSBhcyB0aGUgZmlyc3QuCi0gICAgICAgICAgICBib29sIGlzQ29u
c3RhbnQgPSBoYXNDb25zdGFudFZhbHVlcyhjdXRvZmZGcmVxdWVuY3ksIGZyYW1lc1RvUHJvY2Vz
cykKLSAgICAgICAgICAgICAgICAmJiBoYXNDb25zdGFudFZhbHVlcyhxLCBmcmFtZXNUb1Byb2Nl
c3MpCi0gICAgICAgICAgICAgICAgJiYgaGFzQ29uc3RhbnRWYWx1ZXMoZ2FpbiwgZnJhbWVzVG9Q
cm9jZXNzKQotICAgICAgICAgICAgICAgICYmIGhhc0NvbnN0YW50VmFsdWVzKGRldHVuZSwgZnJh
bWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgICAgIGJvb2wgaXNDb25zdGFudCA9IGN1dG9mZkZyZXF1
ZW5jeS5jb250YWluc0NvbnN0YW50VmFsdWUoKSAmJiBxLmNvbnRhaW5zQ29uc3RhbnRWYWx1ZSgp
CisgICAgICAgICAgICAgICAgJiYgZ2Fpbi5jb250YWluc0NvbnN0YW50VmFsdWUoKSAmJiBkZXR1
bmUuY29udGFpbnNDb25zdGFudFZhbHVlKCk7CiAKLSAgICAgICAgICAgIHVwZGF0ZUNvZWZmaWNp
ZW50cyhpc0NvbnN0YW50ID8gMSA6IGZyYW1lc1RvUHJvY2VzcywgY3V0b2ZmRnJlcXVlbmN5LCBx
LCBnYWluLCBkZXR1bmUpOworICAgICAgICAgICAgdXBkYXRlQ29lZmZpY2llbnRzKGlzQ29uc3Rh
bnQgPyAxIDogZnJhbWVzVG9Qcm9jZXNzLCBjdXRvZmZGcmVxdWVuY3kuZGF0YSgpLCBxLmRhdGEo
KSwgZ2Fpbi5kYXRhKCksIGRldHVuZS5kYXRhKCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgZmxvYXQgY3V0b2ZmRnJlcXVlbmN5ID0gYmlxdWFkUHJvY2Vzc29yKCktPnBhcmFtZXRl
cjEoKS5maW5hbFZhbHVlKCk7CiAgICAgICAgICAgICBmbG9hdCBxID0gYmlxdWFkUHJvY2Vzc29y
KCktPnBhcmFtZXRlcjIoKS5maW5hbFZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5RFNQS2VybmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuY3BwCmluZGV4IGMyMjAyYzZiMWFiNzEzMWMz
NDIwY2QxNTc3NTJjNTdlY2I1ZGJjNzAuLmFmYmVhMWFiNjhiNGFlZGQxNzMzODlkMGZjNTYwODM4
ZGM4YTlmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVs
YXlEU1BLZXJuZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVs
YXlEU1BLZXJuZWwuY3BwCkBAIC00Niw3ICs0Niw3IEBAIERlbGF5RFNQS2VybmVsOjpEZWxheURT
UEtlcm5lbChEZWxheVByb2Nlc3NvciogcHJvY2Vzc29yKQogICAgIGlmIChtX21heERlbGF5VGlt
ZSA8IDApCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fYnVmZmVyLmFsbG9jYXRlKGJ1ZmZlckxl
bmd0aEZvckRlbGF5KG1fbWF4RGVsYXlUaW1lLCBwcm9jZXNzb3ItPnNhbXBsZVJhdGUoKSkpOwor
ICAgIG1fYnVmZmVyLnJlc2l6ZShidWZmZXJMZW5ndGhGb3JEZWxheShtX21heERlbGF5VGltZSwg
cHJvY2Vzc29yLT5zYW1wbGVSYXRlKCkpKTsKICAgICBtX2J1ZmZlci56ZXJvKCk7CiB9CiAKQEAg
LTYzLDcgKzYzLDcgQEAgRGVsYXlEU1BLZXJuZWw6OkRlbGF5RFNQS2VybmVsKGRvdWJsZSBtYXhE
ZWxheVRpbWUsIGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgaWYgKCFidWZmZXJMZW5ndGgpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1fYnVmZmVyLmFsbG9jYXRlKGJ1ZmZlckxlbmd0aCk7CisgICAg
bV9idWZmZXIucmVzaXplKGJ1ZmZlckxlbmd0aCk7CiAgICAgbV9idWZmZXIuemVybygpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5h
bHlzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5
c2VyLmNwcAppbmRleCBmZDI0NGVjMWNlODIxZDJlM2I5MzI1Yjk1ODE1N2UzOTJkM2RkYTQ5Li5l
OWZkMjk5MjZkZjI1OTQzMjIwZDhkMGI1OGEzMzNiYjliZTc2Mjk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAKQEAgLTY1
LDcgKzY1LDcgQEAgYm9vbCBSZWFsdGltZUFuYWx5c2VyOjpzZXRGZnRTaXplKHNpemVfdCBzaXpl
KQogICAgIGlmIChtX2ZmdFNpemUgIT0gc2l6ZSkgewogICAgICAgICBtX2FuYWx5c2lzRnJhbWUg
PSBtYWtlVW5pcXVlPEZGVEZyYW1lPihzaXplKTsKICAgICAgICAgLy8gbV9tYWduaXR1ZGVCdWZm
ZXIgaGFzIHNpemUgPSBmZnRTaXplIC8gMiBiZWNhdXNlIGl0IGNvbnRhaW5zIGZsb2F0cyByZWR1
Y2VkIGZyb20gY29tcGxleCB2YWx1ZXMgaW4gbV9hbmFseXNpc0ZyYW1lLgotICAgICAgICBtX21h
Z25pdHVkZUJ1ZmZlci5hbGxvY2F0ZShzaXplIC8gMik7CisgICAgICAgIG1fbWFnbml0dWRlQnVm
ZmVyLnJlc2l6ZShzaXplIC8gMik7CiAgICAgICAgIG1fZmZ0U2l6ZSA9IHNpemU7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKaW5kZXggMzQ5NjA0
ZTJjZWJjOWY5YTQzYTFiYzNjN2FhZGVlNGUzOTljY2RhNy4uY2I1NTY3Y2Y3Yjg3NzhlY2MzMmU5
NmRhNGIxOTc5MjMyN2NhYTAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9BcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvQXJyYXkuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgQXVkaW9BcnJheSgpID0g
ZGVmYXVsdDsKICAgICBleHBsaWNpdCBBdWRpb0FycmF5KHNpemVfdCBuKQogICAgIHsKLSAgICAg
ICAgYWxsb2NhdGUobik7CisgICAgICAgIHJlc2l6ZShuKTsKICAgICB9CiAKICAgICB+QXVkaW9B
cnJheSgpCkBAIC01MCwxMCArNTAsMTMgQEAgcHVibGljOgogICAgICAgICBmYXN0QWxpZ25lZEZy
ZWUobV9hbGxvY2F0aW9uKTsKICAgICB9CiAKLSAgICAvLyBJdCdzIE9LIHRvIGNhbGwgYWxsb2Nh
dGUoKSBtdWx0aXBsZSB0aW1lcywgYnV0IGRhdGEgd2lsbCAqbm90KiBiZSBjb3BpZWQgZnJvbSBh
biBpbml0aWFsIGFsbG9jYXRpb24KKyAgICAvLyBJdCdzIE9LIHRvIGNhbGwgcmVzaXplKCkgbXVs
dGlwbGUgdGltZXMsIGJ1dCBkYXRhIHdpbGwgKm5vdCogYmUgY29waWVkIGZyb20gYW4gaW5pdGlh
bCBhbGxvY2F0aW9uCiAgICAgLy8gaWYgcmUtYWxsb2NhdGVkLiBBbGxvY2F0aW9ucyBhcmUgemVy
by1pbml0aWFsaXplZC4KLSAgICB2b2lkIGFsbG9jYXRlKENoZWNrZWQ8c2l6ZV90PiBuKQorICAg
IHZvaWQgcmVzaXplKENoZWNrZWQ8c2l6ZV90PiBuKQogICAgIHsKKyAgICAgICAgaWYgKG4gPT0g
bV9zaXplKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIENoZWNrZWQ8c2l6ZV90PiBp
bml0aWFsU2l6ZSA9IHNpemVvZihUKSAqIG47CiAgICAgICAgIGNvbnN0IHNpemVfdCBhbGlnbm1l
bnQgPSAxNjsKIApAQCAtNzMsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAgVCYgYXQoc2l6ZV90IGkp
CiAgICAgewogICAgICAgICAvLyBOb3RlIHRoYXQgYWx0aG91Z2ggaXQgaXMgYSBzaXplX3QsIG1f
c2l6ZSBpcyBub3cgZ3VhcmFudGVlZCB0byBiZQotICAgICAgICAvLyBubyBncmVhdGVyIHRoYW4g
bWF4IHVuc2lnbmVkLiBUaGlzIGd1YXJhbnRlZSBpcyBlbmZvcmNlZCBpbiBhbGxvY2F0ZSgpLgor
ICAgICAgICAvLyBubyBncmVhdGVyIHRoYW4gbWF4IHVuc2lnbmVkLiBUaGlzIGd1YXJhbnRlZSBp
cyBlbmZvcmNlZCBpbiByZXNpemUoKS4KICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oaSA8IHNpemUoKSk7CiAgICAgICAgIHJldHVybiBkYXRhKClbaV07CiAgICAgfQpA
QCAtODIsNyArODUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHplcm8oKQogICAgIHsKLSAgICAg
ICAgLy8gVGhpcyBtdWx0aXBsaWNhdGlvbiBpcyBtYWRlIHNhZmUgYnkgdGhlIGNoZWNrIGluIGFs
bG9jYXRlKCkuCisgICAgICAgIC8vIFRoaXMgbXVsdGlwbGljYXRpb24gaXMgbWFkZSBzYWZlIGJ5
IHRoZSBjaGVjayBpbiByZXNpemUoKS4KICAgICAgICAgbWVtc2V0KHRoaXMtPmRhdGEoKSwgMCwg
c2l6ZW9mKFQpICogdGhpcy0+c2l6ZSgpKTsKICAgICB9CiAKQEAgLTk0LDcgKzk3LDcgQEAgcHVi
bGljOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIC8vIFRoaXMgZXhwcmVzc2lvbiBj
YW5ub3Qgb3ZlcmZsb3cgYmVjYXVzZSBlbmQgLSBzdGFydCBjYW5ub3QgYmUKLSAgICAgICAgLy8g
Z3JlYXRlciB0aGFuIG1fc2l6ZSwgd2hpY2ggaXMgc2FmZSBkdWUgdG8gdGhlIGNoZWNrIGluIGFs
bG9jYXRlKCkuCisgICAgICAgIC8vIGdyZWF0ZXIgdGhhbiBtX3NpemUsIHdoaWNoIGlzIHNhZmUg
ZHVlIHRvIHRoZSBjaGVjayBpbiByZXNpemUoKS4KICAgICAgICAgbWVtc2V0KHRoaXMtPmRhdGEo
KSArIHN0YXJ0LCAwLCBzaXplb2YoVCkgKiAoZW5kIC0gc3RhcnQpKTsKICAgICB9CiAKQEAgLTEw
NiwxMCArMTA5LDIyIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAv
LyBUaGlzIGV4cHJlc3Npb24gY2Fubm90IG92ZXJmbG93IGJlY2F1c2UgZW5kIC0gc3RhcnQgY2Fu
bm90IGJlCi0gICAgICAgIC8vIGdyZWF0ZXIgdGhhbiBtX3NpemUsIHdoaWNoIGlzIHNhZmUgZHVl
IHRvIHRoZSBjaGVjayBpbiBhbGxvY2F0ZSgpLgorICAgICAgICAvLyBncmVhdGVyIHRoYW4gbV9z
aXplLCB3aGljaCBpcyBzYWZlIGR1ZSB0byB0aGUgY2hlY2sgaW4gcmVzaXplKCkuCiAgICAgICAg
IG1lbWNweSh0aGlzLT5kYXRhKCkgKyBzdGFydCwgc291cmNlRGF0YSwgc2l6ZW9mKFQpICogKGVu
ZCAtIHN0YXJ0KSk7CiAgICAgfQogCisgICAgYm9vbCBjb250YWluc0NvbnN0YW50VmFsdWUoKSBj
b25zdAorICAgIHsKKyAgICAgICAgaWYgKG1fc2l6ZSA8PSAxKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIGZsb2F0IGNvbnN0YW50ID0gZGF0YSgpWzBdOworICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAxOyBpIDwgbV9zaXplOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChkYXRh
KClbaV0gIT0gY29uc3RhbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogcHJpdmF0ZToKICAgICBUKiBtX2Fs
bG9jYXRpb24geyBudWxscHRyIH07CiAgICAgc2l6ZV90IG1fc2l6ZSB7IDAgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0JpcXVhZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9CaXF1YWQuY3BwCmluZGV4IDRkOTE0ODliZTA2N2ViOTBmM2M3
NjllNTk3NjkyMWQyN2Y1ZjBjNTQuLjkzODVlMThlNGIyYjk2NDlkMWQ1YzZlMTdiNTU4NmI0ZjI2
ODY0OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0JpcXVhZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQmlxdWFkLmNwcApAQCAtNTQs
MTcgKzU0LDE3IEBAIEJpcXVhZDo6QmlxdWFkKCkKIHsKICNpZiBVU0UoQUNDRUxFUkFURSkKICAg
ICAvLyBBbGxvY2F0ZSB0d28gc2FtcGxlcyBtb3JlIGZvciBmaWx0ZXIgaGlzdG9yeQotICAgIG1f
aW5wdXRCdWZmZXIuYWxsb2NhdGUoa0J1ZmZlclNpemUgKyAyKTsKLSAgICBtX291dHB1dEJ1ZmZl
ci5hbGxvY2F0ZShrQnVmZmVyU2l6ZSArIDIpOworICAgIG1faW5wdXRCdWZmZXIucmVzaXplKGtC
dWZmZXJTaXplICsgMik7CisgICAgbV9vdXRwdXRCdWZmZXIucmVzaXplKGtCdWZmZXJTaXplICsg
Mik7CiAjZW5kaWYKIAogICAgIC8vIEFsbG9jYXRlIGVub3VnaCBzcGFjZSBmb3IgdGhlIGEtcmF0
ZSBmaWx0ZXIgY29lZmZpY2llbnRzIHRvIGhhbmRsZSBhCiAgICAgLy8gcmVuZGVyaW5nIHF1YW50
dW0gb2YgMTI4IGZyYW1lcy4KLSAgICBtX2IwLmFsbG9jYXRlKEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSk7Ci0gICAgbV9iMS5hbGxvY2F0ZShBdWRpb1V0aWxpdGllczo6cmVuZGVy
UXVhbnR1bVNpemUpOwotICAgIG1fYjIuYWxsb2NhdGUoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1
YW50dW1TaXplKTsKLSAgICBtX2ExLmFsbG9jYXRlKEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFu
dHVtU2l6ZSk7Ci0gICAgbV9hMi5hbGxvY2F0ZShBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemUpOworICAgIG1fYjAucmVzaXplKEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6
ZSk7CisgICAgbV9iMS5yZXNpemUoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsK
KyAgICBtX2IyLnJlc2l6ZShBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOworICAg
IG1fYTEucmVzaXplKEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgbV9h
Mi5yZXNpemUoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKIAogICAgIC8vIElu
aXRpYWxpemUgYXMgcGFzcy10aHJ1IChzdHJhaWdodC13aXJlLCBubyBmaWx0ZXIgZWZmZWN0KQog
ICAgIHNldE5vcm1hbGl6ZWRDb2VmZmljaWVudHMoMCwgMSwgMCwgMCwgMSwgMCwgMCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXJTdGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXJTdGFn
ZS5jcHAKaW5kZXggNmI4MjIyZWU3YjdhNjI5OWY4ZjcwMTViOTQ1NzIwZTk0NTY1NzMwOS4uMDNm
MTdlZDRkMjNmZWY2OGI5ODg3M2ExNDI1OTFiMjA3YzQwNmFjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyU3RhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlclN0YWdlLmNwcApAQCAt
NzEsNyArNzEsNyBAQCBSZXZlcmJDb252b2x2ZXJTdGFnZTo6UmV2ZXJiQ29udm9sdmVyU3RhZ2Uo
Y29uc3QgZmxvYXQqIGltcHVsc2VSZXNwb25zZSwgc2l6ZV90LAogICAgICAgICAgICAgVmVjdG9y
TWF0aDo6bXVsdGlwbHlCeVNjYWxhcihtX2RpcmVjdEtlcm5lbC0+ZGF0YSgpLCBzY2FsZSwgbV9k
aXJlY3RLZXJuZWwtPmRhdGEoKSwgc3RhZ2VMZW5ndGgpOwogICAgICAgICBtX2RpcmVjdENvbnZv
bHZlciA9IG1ha2VVbmlxdWU8RGlyZWN0Q29udm9sdmVyPihyZW5kZXJTbGljZVNpemUpOwogICAg
IH0KLSAgICBtX3RlbXBvcmFyeUJ1ZmZlci5hbGxvY2F0ZShyZW5kZXJTbGljZVNpemUpOworICAg
IG1fdGVtcG9yYXJ5QnVmZmVyLnJlc2l6ZShyZW5kZXJTbGljZVNpemUpOwogCiAgICAgLy8gVGhl
IGNvbnZvbHV0aW9uIHN0YWdlIGF0IG9mZnNldCBzdGFnZU9mZnNldCBuZWVkcyB0byBoYXZlIGEg
Y29ycmVzcG9uZGluZyBkZWxheSB0byBjYW5jZWwgb3V0IHRoZSBvZmZzZXQuCiAgICAgc2l6ZV90
IHRvdGFsRGVsYXkgPSBzdGFnZU9mZnNldCArIHJldmVyYlRvdGFsTGF0ZW5jeTsKQEAgLTk3LDcg
Kzk3LDcgQEAgUmV2ZXJiQ29udm9sdmVyU3RhZ2U6OlJldmVyYkNvbnZvbHZlclN0YWdlKGNvbnN0
IGZsb2F0KiBpbXB1bHNlUmVzcG9uc2UsIHNpemVfdCwKIAogICAgIHNpemVfdCBkZWxheUJ1ZmZl
clNpemUgPSBtX3ByZURlbGF5TGVuZ3RoIDwgZmZ0U2l6ZSA/IGZmdFNpemUgOiBtX3ByZURlbGF5
TGVuZ3RoOwogICAgIGRlbGF5QnVmZmVyU2l6ZSA9IGRlbGF5QnVmZmVyU2l6ZSA8IHJlbmRlclNs
aWNlU2l6ZSA/IHJlbmRlclNsaWNlU2l6ZSA6IGRlbGF5QnVmZmVyU2l6ZTsKLSAgICBtX3ByZURl
bGF5QnVmZmVyLmFsbG9jYXRlKGRlbGF5QnVmZmVyU2l6ZSk7CisgICAgbV9wcmVEZWxheUJ1ZmZl
ci5yZXNpemUoZGVsYXlCdWZmZXJTaXplKTsKIH0KIAogUmV2ZXJiQ29udm9sdmVyU3RhZ2U6On5S
ZXZlcmJDb252b2x2ZXJTdGFnZSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb0ZpbGVSZWFkZXJJT1MuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRmlsZVJlYWRlcklPUy5jcHAKaW5kZXggYWQ0
M2I3MTI4ZGQwNjZhNTU1ZTgwYWEzMzk1OGI3NzliZWEwYmJhMy4uZWYxMjMxYmNjMzdiNjFlYmEw
OTkzOWFiM2NkNTIwM2UyNzE4MDJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvRmlsZVJlYWRlcklPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRmlsZVJlYWRlcklPUy5jcHAKQEAgLTE5MCw4ICsxOTAs
OCBAQCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVzKGZsb2F0IHNh
bXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogICAgIGNvbnN0IHNpemVfdCBidWZmZXJTaXplID0g
bnVtYmVyT2ZGcmFtZXMgKiBzaXplb2YoZmxvYXQpOwogCiAgICAgaWYgKG1peFRvTW9ubyAmJiBu
dW1iZXJPZkNoYW5uZWxzID09IDIpIHsKLSAgICAgICAgbGVmdENoYW5uZWwuYWxsb2NhdGUobnVt
YmVyT2ZGcmFtZXMpOwotICAgICAgICByaWdodENoYW5uZWwuYWxsb2NhdGUobnVtYmVyT2ZGcmFt
ZXMpOworICAgICAgICBsZWZ0Q2hhbm5lbC5yZXNpemUobnVtYmVyT2ZGcmFtZXMpOworICAgICAg
ICByaWdodENoYW5uZWwucmVzaXplKG51bWJlck9mRnJhbWVzKTsKIAogICAgICAgICBidWZmZXJM
aXN0LT5tQnVmZmVyc1swXS5tTnVtYmVyQ2hhbm5lbHMgPSAxOwogICAgICAgICBidWZmZXJMaXN0
LT5tQnVmZmVyc1swXS5tRGF0YUJ5dGVTaXplID0gYnVmZmVyU2l6ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0ZpbGVSZWFkZXJNYWMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRlck1hYy5jcHAK
aW5kZXggZGMxNDQxMTVhYzI5NmU4MmYzM2JlOWMyZGYyMzA0YTJiOGE2MjExOC4uMDhiYTc0YTQ2
NTEzM2YxOWVkMTUxMjdkMWFlZGI0ODhiOGY1MWFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRlck1hYy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRlck1hYy5jcHAKQEAgLTE5
Myw4ICsxOTMsOCBAQCBSZWZQdHI8QXVkaW9CdXM+IEF1ZGlvRmlsZVJlYWRlcjo6Y3JlYXRlQnVz
KGZsb2F0IHNhbXBsZVJhdGUsIGJvb2wgbWl4VG9Nb25vKQogICAgIEF1ZGlvQnVmZmVyTGlzdCog
YnVmZmVyTGlzdCA9IGNyZWF0ZUF1ZGlvQnVmZmVyTGlzdChudW1iZXJPZkNoYW5uZWxzKTsKIAog
ICAgIGlmIChtaXhUb01vbm8gJiYgbnVtYmVyT2ZDaGFubmVscyA9PSAyKSB7Ci0gICAgICAgIGJ1
ZkwuYWxsb2NhdGUobnVtYmVyT2ZGcmFtZXMpOwotICAgICAgICBidWZSLmFsbG9jYXRlKG51bWJl
ck9mRnJhbWVzKTsKKyAgICAgICAgYnVmTC5yZXNpemUobnVtYmVyT2ZGcmFtZXMpOworICAgICAg
ICBidWZSLnJlc2l6ZShudW1iZXJPZkZyYW1lcyk7CiAgICAgICAgIGJ1ZmZlckwgPSBidWZMLmRh
dGEoKTsKICAgICAgICAgYnVmZmVyUiA9IGJ1ZlIuZGF0YSgpOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwppbmRleCA2MGZmOTZlODMxYzY2YjEyZWExOGE5NGEwZmZjNTVhZWFhZmE0ZDYw
Li45MzFlNDQzMGI4ZDdlZWIzOGIzOGJmM2E5OGFmZGVhNDE4ZTFiYjJjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0xMC0xMiAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgICdwYXJhbWV0ZXJzJyBhcmd1bWVudCB0
byBBdWRpb1dvcmtsZXRQcm9jZXNzb3IucHJvY2VzcygpIGlzIG5vdCBzcGVjLWNvbXBsaWFudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NjM3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGlu
ZSBXUFQgdGVzdHMgdGhhdCBhcmUgbm93IHBhc3NpbmcuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9wYXJhbS1pbnRlcmZhY2Uv
ay1yYXRlLWF1ZGlvd29ya2xldC1jb25uZWN0aW9ucy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlv
cGFyYW0taW50ZXJmYWNlL2stcmF0ZS1hdWRpb3dvcmtsZXQuaHR0cHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1h
dWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldC1hdWRpb3BhcmFtLXNpemUuaHR0cHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUt
YXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldC1hdWRpb3Bh
cmFtLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
YXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmts
ZXRub2RlLWNoYW5uZWwtY291bnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorCiAyMDIwLTEwLTEyICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FsbGluZyBBdWRpb0Nv
bnRleHQucmVzdW1lKCkgcmlnaHQgYWZ0ZXIgQXVkaW9Db250ZXh0LnN1c3BlbmQoKSBzaG91bGQg
bm90IGJlIGEgbm8tb3AKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9wYXJhbS1pbnRl
cmZhY2Uvay1yYXRlLWF1ZGlvd29ya2xldC1jb25uZWN0aW9ucy5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWF1ZGlvcGFyYW0taW50ZXJmYWNlL2stcmF0ZS1hdWRpb3dvcmtsZXQt
Y29ubmVjdGlvbnMuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDk4MmM5YmYwNWMyNDNmMGMyYjdj
NmQ1MzQ5OTExYjdkYzJkYWRiM2QuLjZmOWNjMDkyMThjNGY1ZDAyYzExZTBjMmQwY2U2YWUxOGYx
YmRjMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9wYXJhbS1pbnRlcmZhY2Uvay1y
YXRlLWF1ZGlvd29ya2xldC1jb25uZWN0aW9ucy5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVk
aW8tYXBpL3RoZS1hdWRpb3BhcmFtLWludGVyZmFjZS9rLXJhdGUtYXVkaW93b3JrbGV0LWNvbm5l
Y3Rpb25zLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNywxMSArNywxMSBAQCBQQVNTID4gW0NyZWF0
ZSBUZXN0IFdvcmtsZXRdCiBQQVNTICAgQ29uc3RydWN0aW9uIG9mIEF1ZGlvV29ya2xldCByZXNv
bHZlZCBjb3JyZWN0bHkuCiBQQVNTIDwgW0NyZWF0ZSBUZXN0IFdvcmtsZXRdIEFsbCBhc3NlcnRp
b25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKIFBBU1MgPiBbQXVkaW9Xb3JrbGV0IGst
cmF0ZSBBdWRpb1BhcmFtXQotRkFJTCBYIG91dHB1dCBzaG91bGQgaGF2ZSBjb250YWluIGF0IGxl
YXN0IG9uZSB2YWx1ZSBkaWZmZXJlbnQgZnJvbSAwLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKK1BBU1MgICBvdXRwdXQgaXMgbm90IGNvbnN0YW50bHkgMCAoY29udGFpbnMg
Mzg0IGRpZmZlcmVudCB2YWx1ZXMpLgogUEFTUyAgICBrLXJhdGUgb3V0cHV0IFswOiAxMjddIGNv
bnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuCi1QQVNTICAgIGstcmF0ZSBvdXRwdXQgWzEyODog
MjU1XSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLgotUEFTUyAgICBrLXJhdGUgb3V0cHV0
IFsyNTY6IDM4M10gY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4KLVBBU1MgICAgay1yYXRl
IG91dHB1dCBbMzg0OiA1MTFdIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuCi1GQUlMIDwg
W0F1ZGlvV29ya2xldCBrLXJhdGUgQXVkaW9QYXJhbV0gMSBvdXQgb2YgNSBhc3NlcnRpb25zIHdl
cmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgIyBB
VURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSBvdXQgb2YgMiB0YXNrcyB3ZXJlIGZhaWxlZC4g
YXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgIGstcmF0ZSBvdXRw
dXQgWzEyODogMjU1XSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAyLjUuCitQQVNTICAgIGst
cmF0ZSBvdXRwdXQgWzI1NjogMzgzXSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCA1LgorUEFT
UyAgICBrLXJhdGUgb3V0cHV0IFszODQ6IDUxMV0gY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQg
Ny41LgorUEFTUyA8IFtBdWRpb1dvcmtsZXQgay1yYXRlIEF1ZGlvUGFyYW1dIEFsbCBhc3NlcnRp
b25zIHBhc3NlZC4gKHRvdGFsIDUgYXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5F
UiBGSU5JU0hFRDogMiB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRp
by1hcGkvdGhlLWF1ZGlvcGFyYW0taW50ZXJmYWNlL2stcmF0ZS1hdWRpb3dvcmtsZXQuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3BhcmFtLWludGVyZmFjZS9rLXJhdGUt
YXVkaW93b3JrbGV0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAxNDBjMWYwNDQ0OWI3YzRmNDlk
NDFlYmU0ZmY5ODdlOWMzNjFiN2I3Li44YzNjYTM3MTY3MzcyNGU0ZTFlY2FkOWU1N2NkYjc4MDVk
MjczZGQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvcGFyYW0taW50ZXJmYWNlL2st
cmF0ZS1hdWRpb3dvcmtsZXQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUt
YXVkaW9wYXJhbS1pbnRlcmZhY2Uvay1yYXRlLWF1ZGlvd29ya2xldC5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTgsOSArOCw5IEBAIFBBU1MgICBDb25zdHJ1Y3Rpb24gb2YgQXVkaW9Xb3JrbGV0IHJl
c29sdmVkIGNvcnJlY3RseS4KIFBBU1MgPCBbQ3JlYXRlIFRlc3QgV29ya2xldF0gQWxsIGFzc2Vy
dGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKQogUEFTUyA+IFtBdWRpb1dvcmtsZXQg
ay1yYXRlIEF1ZGlvUGFyYW1dCiBQQVNTICAgIGstcmF0ZSBvdXRwdXQgWzA6IDEyN10gY29udGFp
bnMgb25seSB0aGUgY29uc3RhbnQgMC4KLVBBU1MgICAgay1yYXRlIG91dHB1dCBbMTI4OiAyNTVd
IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuCi1QQVNTICAgIGstcmF0ZSBvdXRwdXQgWzI1
NjogMzgzXSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLgotUEFTUyAgICBrLXJhdGUgb3V0
cHV0IFszODQ6IDUxMV0gY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4KK1BBU1MgICAgay1y
YXRlIG91dHB1dCBbMTI4OiAyNTVdIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDIuNS4KK1BB
U1MgICAgay1yYXRlIG91dHB1dCBbMjU2OiAzODNdIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50
IDUuCitQQVNTICAgIGstcmF0ZSBvdXRwdXQgWzM4NDogNTExXSBjb250YWlucyBvbmx5IHRoZSBj
b25zdGFudCA3LjUuCiBQQVNTIDwgW0F1ZGlvV29ya2xldCBrLXJhdGUgQXVkaW9QYXJhbV0gQWxs
IGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBhc3NlcnRpb25zKQogUEFTUyAjIEFVRElUIFRB
U0sgUlVOTkVSIEZJTklTSEVEOiAyIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8v
dGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXQtYXVk
aW9wYXJhbS1zaXplLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3Jr
bGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXQtYXVkaW9wYXJhbS1zaXplLmh0dHBzLWV4cGVjdGVk
LnR4dAppbmRleCA5MGI1Yjg1MDQ4YTc5MDU5MDdlZDQyZTkwMjRhNTE3OGViMGZhMDNjLi4xOTc4
OWJhOGM0NjkyNTVhNWY1Y2U0YzkxNTRkNjYzODM0NGUyMDM1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1h
cGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0LWF1ZGlvcGFyYW0tc2l6
ZS5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50
ZXJmYWNlL2F1ZGlvd29ya2xldC1hdWRpb3BhcmFtLXNpemUuaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC04LDM0ICs4LDEwIEBAIFBBU1MgICBDcmVhdGluZyBvZmZsaW5lIGNvbnRleHQgZm9yIHRlc3Rp
bmcgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTICAgQ3JlYXRpbmcgdGVzdCB3b3Jr
bGV0IHJlc29sdmVkIGNvcnJlY3RseS4KIFBBU1MgPCBbSW5pdGlhbGl6aW5nIEF1ZGlvV29ya2xl
dCBhbmQgQ29udGV4dF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25z
KQogUEFTUyA+IFtWZXJpZnkgU2l6ZSBvZiBBdWRpb1BhcmFtIEFycmF5c10KLUZBSUwgWCBSZW5k
ZXIgcXVhbnR1bSAwOiBhcnJheSBzaXplOiBFeHBlY3RlZCAxIGZvciBhbGwgdmFsdWVzIGJ1dCBm
b3VuZCAxMjggdW5leHBlY3RlZCB2YWx1ZXM6Ci0JSW5kZXgJQWN0dWFsCi0JWzBdCTAKLQlbMV0J
MAotCVsyXQkwCi0JWzNdCTAKLQkuLi5hbmQgMTI0IG1vcmUgZXJyb3JzLiBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgWCBSZW5kZXIgcXVhbnR1bSAxOiBhcnJheSBz
aXplOiBFeHBlY3RlZCAxIGZvciBhbGwgdmFsdWVzIGJ1dCBmb3VuZCAxMjggdW5leHBlY3RlZCB2
YWx1ZXM6Ci0JSW5kZXgJQWN0dWFsCi0JWzBdCTAKLQlbMV0JMAotCVsyXQkwCi0JWzNdCTAKLQku
Li5hbmQgMTI0IG1vcmUgZXJyb3JzLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKLUZBSUwgWCBSZW5kZXIgcXVhbnR1bSAyLTM6IGFycmF5IHNpemU6IEV4cGVjdGVkIDEyOCBm
b3IgYWxsIHZhbHVlcyBidXQgZm91bmQgMjU2IHVuZXhwZWN0ZWQgdmFsdWVzOgotCUluZGV4CUFj
dHVhbAotCVswXQkwCi0JWzFdCTAKLQlbMl0JMAotCVszXQkwCi0JLi4uYW5kIDI1MiBtb3JlIGVy
cm9ycy4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFggUmVtYWlu
aW5nIHJlbmRlcnM6IGFycmF5IHNpemU6IEV4cGVjdGVkIDEgZm9yIGFsbCB2YWx1ZXMgYnV0IGZv
dW5kIDc2OCB1bmV4cGVjdGVkIHZhbHVlczoKLQlJbmRleAlBY3R1YWwKLQlbMF0JMAotCVsxXQkw
Ci0JWzJdCTAKLQlbM10JMAotCS4uLmFuZCA3NjQgbW9yZSBlcnJvcnMuIGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCA8IFtWZXJpZnkgU2l6ZSBvZiBBdWRpb1BhcmFt
IEFycmF5c10gNCBvdXQgb2YgNCBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hF
RDogMSBvdXQgb2YgMiB0YXNrcyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCitQQVNTICAgUmVuZGVyIHF1YW50dW0gMDogYXJyYXkgc2l6ZSBjb250YWlu
cyBvbmx5IHRoZSBjb25zdGFudCAxLgorUEFTUyAgIFJlbmRlciBxdWFudHVtIDE6IGFycmF5IHNp
emUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMS4KK1BBU1MgICBSZW5kZXIgcXVhbnR1bSAy
LTM6IGFycmF5IHNpemUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMTI4LgorUEFTUyAgIFJl
bWFpbmluZyByZW5kZXJzOiBhcnJheSBzaXplIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDEu
CitQQVNTIDwgW1ZlcmlmeSBTaXplIG9mIEF1ZGlvUGFyYW0gQXJyYXlzXSBBbGwgYXNzZXJ0aW9u
cyBwYXNzZWQuICh0b3RhbCA0IGFzc2VydGlvbnMpCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIg
RklOSVNIRUQ6IDIgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1hdWRpb3dvcmtsZXQtaW50ZXJmYWNlL2F1ZGlvd29ya2xldC1hdWRpb3BhcmFtLmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9h
dWRpb3dvcmtsZXQtYXVkaW9wYXJhbS5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNmUwOWNhOGFj
N2ZkNjhjOWZkNzMwZTBmOGU3N2EyODUzNzk4MDU4Ni4uZTdkMzRkMzdhMmExMWJlODkxY2ExNGQ1
NmQzMjkzZjQ0YmNmNmY0NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3dvcmtsZXQt
aW50ZXJmYWNlL2F1ZGlvd29ya2xldC1hdWRpb3BhcmFtLmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3Ro
ZS1hdWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0LWF1ZGlv
cGFyYW0uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC04LDEzICs4LDcgQEAgUEFTUyA8IFtJbml0aWFs
aXppbmcgQXVkaW9Xb3JrbGV0IGFuZCBDb250ZXh0XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0
b3RhbCAwIGEKIFBBU1MgPiBbVmVyaWZ5aW5nIEF1ZGlvUGFyYW0gaW4gQXVkaW9Xb3JrbGV0Tm9k
ZV0KIFBBU1MgICBEZWZhdWx0IGdhaW4gdmFsdWUgb2YgZ2FpbldvcmtsZXROb2RlIGlzIGVxdWFs
IHRvIDAuNzA3MDAwMDE3MTY2MTM3Ny4KIFBBU1MgICBWYWx1ZSBvZiBnYWluV29ya2xldFBhcmFt
IGFmdGVyIHNldHRlciA9IDAuMSBpcyBlcXVhbCB0byAwLjEwMDAwMDAwMTQ5MDExNjEyLgotRkFJ
TCBYIFRoZSByZW5kZXJlZCBidWZmZXI6IEV4cGVjdGVkIDAgZm9yIGFsbCB2YWx1ZXMgYnV0IGZv
dW5kIDI4Nzk4IHVuZXhwZWN0ZWQgdmFsdWVzOgotCUluZGV4CUFjdHVhbAotCVsxXQktMC4wMDAy
MDgzMzMzMzgzNzc5OTcyOAotCVsyXQktMC4wMDA0MTY2NjY2NzY3NTU5OTQ1NgotCVszXQktMC4w
MDA2MjQ5OTk5ODYwMzAxNjE0Ci0JWzRdCS0wLjAwMDgzMzMzMzM1MzUxMTk4OTEKLQkuLi5hbmQg
Mjg3OTQgbW9yZSBlcnJvcnMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQot
RkFJTCA8IFtWZXJpZnlpbmcgQXVkaW9QYXJhbSBpbiBBdWRpb1dvcmtsZXROb2RlXSAxIG91dCBv
ZiAzIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQotRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiAyIHRh
c2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BB
U1MgICBUaGUgcmVuZGVyZWQgYnVmZmVyIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuCitQ
QVNTIDwgW1ZlcmlmeWluZyBBdWRpb1BhcmFtIGluIEF1ZGlvV29ya2xldE5vZGVdIEFsbCBhc3Nl
cnRpb25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJV
Tk5FUiBGSU5JU0hFRDogMiB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1h
dWRpby1hcGkvdGhlLWF1ZGlvd29ya2xldC1pbnRlcmZhY2UvYXVkaW93b3JrbGV0bm9kZS1jaGFu
bmVsLWNvdW50Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0
LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWNoYW5uZWwtY291bnQuaHR0cHMtZXhwZWN0ZWQu
dHh0CmluZGV4IDVlMmM4OTExODBmZDZhZDhlOWNhNTIzNTQ5YmU1Yzc4Zjk4ZWRiMmUuLmI1OWU3
NjRmMGE3MzQxZTE5YTE5ZjU1NjVjZTIyNDI3NTIwM2M1OTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFw
aS90aGUtYXVkaW93b3JrbGV0LWludGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWNoYW5uZWwtY291
bnQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW93b3JrbGV0LWlu
dGVyZmFjZS9hdWRpb3dvcmtsZXRub2RlLWNoYW5uZWwtY291bnQuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC03LDI5ICs3LDExIEBAIFBBU1MgPiBbc2V0dXAtYnVmZmVyLWFuZC13b3JrbGV0XQogUEFT
UyA8IFtzZXR1cC1idWZmZXItYW5kLXdvcmtsZXRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRv
dGFsIDAgYXNzZXJ0aW9ucykKIFBBU1MgPiBbdmVyaWZ5LXJlbmRlcmVkLWJ1ZmZlcl0KIFBBU1Mg
ICBGaXJzdCBoYWxmIG9mIENoYW5uZWwgIzAgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4K
LUZBSUwgWCBTZWNvbmQgaGFsZiBvZiBDaGFubmVsICMwOiBFeHBlY3RlZCAxIGZvciBhbGwgdmFs
dWVzIGJ1dCBmb3VuZCAxMjggdW5leHBlY3RlZCB2YWx1ZXM6Ci0JSW5kZXgJQWN0dWFsCi0JWzBd
CTAKLQlbMV0JMAotCVsyXQkwCi0JWzNdCTAKLQkuLi5hbmQgMTI0IG1vcmUgZXJyb3JzLiBhc3Nl
cnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBTZWNvbmQgaGFsZiBvZiBD
aGFubmVsICMwIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDEuCiBQQVNTICAgRmlyc3QgaGFs
ZiBvZiBDaGFubmVsICMxIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuCi1GQUlMIFggU2Vj
b25kIGhhbGYgb2YgQ2hhbm5lbCAjMTogRXhwZWN0ZWQgMiBmb3IgYWxsIHZhbHVlcyBidXQgZm91
bmQgMTI4IHVuZXhwZWN0ZWQgdmFsdWVzOgotCUluZGV4CUFjdHVhbAotCVswXQkwCi0JWzFdCTAK
LQlbMl0JMAotCVszXQkwCi0JLi4uYW5kIDEyNCBtb3JlIGVycm9ycy4gYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgU2Vjb25kIGhhbGYgb2YgQ2hhbm5lbCAjMSBj
b250YWlucyBvbmx5IHRoZSBjb25zdGFudCAyLgogUEFTUyAgIEZpcnN0IGhhbGYgb2YgQ2hhbm5l
bCAjMiBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLgotRkFJTCBYIFNlY29uZCBoYWxmIG9m
IENoYW5uZWwgIzI6IEV4cGVjdGVkIDMgZm9yIGFsbCB2YWx1ZXMgYnV0IGZvdW5kIDEyOCB1bmV4
cGVjdGVkIHZhbHVlczoKLQlJbmRleAlBY3R1YWwKLQlbMF0JMAotCVsxXQkwCi0JWzJdCTAKLQlb
M10JMAotCS4uLmFuZCAxMjQgbW9yZSBlcnJvcnMuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQotRkFJTCA8IFt2ZXJpZnktcmVuZGVyZWQtYnVmZmVyXSAzIG91dCBvZiA2IGFz
c2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQotRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91dCBvZiAyIHRhc2tzIHdl
cmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBT
ZWNvbmQgaGFsZiBvZiBDaGFubmVsICMyIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDMuCitQ
QVNTIDwgW3ZlcmlmeS1yZW5kZXJlZC1idWZmZXJdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRv
dGFsIDYgYXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMiB0
YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>