<?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>198345</bug_id>
          
          <creation_ts>2019-05-29 12:15:44 -0700</creation_ts>
          <short_desc>Video playback in Safari should continue when CarPlay is plugged in</short_desc>
          <delta_ts>2019-05-30 21:46:50 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1540054</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-05-29 12:15:44 -0700</bug_when>
    <thetext>Video playback in Safari should continue when CarPlay is plugged in</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540057</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-05-29 12:17:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/45505750&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540058</commentid>
    <comment_count>2</comment_count>
      <attachid>370875</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-05-29 12:18:14 -0700</bug_when>
    <thetext>Created attachment 370875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540139</commentid>
    <comment_count>3</comment_count>
      <attachid>370875</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-05-29 15:15:05 -0700</bug_when>
    <thetext>Comment on attachment 370875
Patch

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

&gt; Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm:213
&gt; +    setIsPlayingToAutomotiveHeadUnit(carPlayIsConnected.value());

Shouldn&apos;t this be: setIsPlayingToAutomotiveHeadUnit(carPlayIsConnected &amp;&amp; carPlayIsConnected.value())

&gt; Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm:312
&gt; +    callOnWebThreadOrDispatchAsyncOnMainThread([protectedSelf = retainPtr(self)]() mutable {

:-/

&gt; Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm:450
&gt; +        protectedSelf-&gt;_callback-&gt;carPlayServerDied();

_callback should be NULL-checked, it may have been clear by the time this runs

&gt; Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm:467
&gt; +        protectedSelf-&gt;_callback-&gt;updateCarPlayIsConnected(WTFMove(carPlayIsConnected));

Ditto.

&gt; LayoutTests/media/video-isplayingtoautomotiveheadunit.html:11
&gt; +		findMediaElement();
&gt; +
&gt; +		run(&apos;video.src = findMediaFile(&quot;video&quot;, &quot;content/test&quot;)&apos;);

:-O TABS!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540175</commentid>
    <comment_count>4</comment_count>
      <attachid>370875</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-05-29 16:38:26 -0700</bug_when>
    <thetext>Comment on attachment 370875
Patch

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

&gt;&gt; Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm:213
&gt;&gt; +    setIsPlayingToAutomotiveHeadUnit(carPlayIsConnected.value());
&gt; 
&gt; Shouldn&apos;t this be: setIsPlayingToAutomotiveHeadUnit(carPlayIsConnected &amp;&amp; carPlayIsConnected.value())

Yeah, it probably should be (in the case that we can&apos;t load the CarPlayIsConnectedAttribute).

&gt;&gt; Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm:450
&gt;&gt; +        protectedSelf-&gt;_callback-&gt;carPlayServerDied();
&gt; 
&gt; _callback should be NULL-checked, it may have been clear by the time this runs

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540306</commentid>
    <comment_count>5</comment_count>
      <attachid>370944</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-05-30 08:49:53 -0700</bug_when>
    <thetext>Created attachment 370944
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540308</commentid>
    <comment_count>6</comment_count>
      <attachid>370945</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-05-30 08:50:41 -0700</bug_when>
    <thetext>Created attachment 370945
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540321</commentid>
    <comment_count>7</comment_count>
      <attachid>370945</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-30 09:29:44 -0700</bug_when>
    <thetext>Comment on attachment 370945
Patch for landing

Clearing flags on attachment: 370945

Committed r245887: &lt;https://trac.webkit.org/changeset/245887&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540322</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-30 09:29:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540337</commentid>
    <comment_count>9</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-05-30 09:56:41 -0700</bug_when>
    <thetext>Fixed iOS build in https://trac.webkit.org/changeset/245890/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540408</commentid>
    <comment_count>10</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-05-30 12:04:46 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #9)
&gt; Fixed iOS build in https://trac.webkit.org/changeset/245890/webkit

Thanks Truitt!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540600</commentid>
    <comment_count>11</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2019-05-30 20:18:23 -0700</bug_when>
    <thetext>This change broke internal builds, details in email and radar. 

Reverted in https://trac.webkit.org/r245944</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540634</commentid>
    <comment_count>12</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-05-30 21:46:50 -0700</bug_when>
    <thetext>Committed r245947: &lt;https://trac.webkit.org/changeset/245947&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370875</attachid>
            <date>2019-05-29 12:18:14 -0700</date>
            <delta_ts>2019-05-30 08:49:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198345-20190529121814.patch</filename>
            <type>text/plain</type>
            <size>20620</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWVjYjYxYjIxMjJlZWEw
OWI3YTU4MWU2OTQxZTdjMTFjOWUzNzMxMS4uNzU2N2ZlOTZlMWM1YjU0ODY0YzZjYjMyMGYyZjJi
Y2M4ZGY2NDMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE5LTA1LTI5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFZpZGVvIHBsYXliYWNrIGlu
IFNhZmFyaSBzaG91bGQgY29udGludWUgd2hlbiBDYXJQbGF5IGlzIHBsdWdnZWQgaW4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODM0NQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDU1MDU3NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbWVkaWEvdmlkZW8taXNwbGF5aW5ndG9hdXRvbW90
aXZlaGVhZHVuaXQuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dy
b3VuZFBsYXliYWNrUmVzdHJpY3Rpb24gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldElzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6aXNQbGF5
aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
aW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25NYW5hZ2VyaU9TOjpNZWRpYVNlc3Npb25NYW5hZ2VyaU9TKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OmNhclBsYXlTZXJ2ZXJEaWVkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnVwZGF0ZUNhclBsYXlJc0Nvbm5lY3Rl
ZCk6CisgICAgICAgICgtW1dlYk1lZGlhU2Vzc2lvbkhlbHBlciBpbml0V2l0aENhbGxiYWNrOl0p
OgorICAgICAgICAoLVtXZWJNZWRpYVNlc3Npb25IZWxwZXIgc3RhcnRNb25pdG9yaW5nQWlyUGxh
eVJvdXRlc10pOgorICAgICAgICAoLVtXZWJNZWRpYVNlc3Npb25IZWxwZXIgaW50ZXJydXB0aW9u
Ol0pOgorICAgICAgICAoLVtXZWJNZWRpYVNlc3Npb25IZWxwZXIgYXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kOl0pOgorICAgICAgICAoLVtXZWJNZWRpYVNlc3Npb25IZWxwZXIgYXBwbGlj
YXRpb25EaWRCZWNvbWVBY3RpdmU6XSk6CisgICAgICAgICgtW1dlYk1lZGlhU2Vzc2lvbkhlbHBl
ciBhcHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmU6XSk6CisgICAgICAgICgtW1dlYk1lZGlhU2Vz
c2lvbkhlbHBlciB3aXJlbGVzc1JvdXRlc0F2YWlsYWJsZURpZENoYW5nZTpdKToKKyAgICAgICAg
KC1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kOl0p
OgorICAgICAgICAoLVtXZWJNZWRpYVNlc3Npb25IZWxwZXIgY2FyUGxheVNlcnZlckRpZWQ6XSk6
CisgICAgICAgICgtW1dlYk1lZGlhU2Vzc2lvbkhlbHBlciBjYXJQbGF5SXNDb25uZWN0ZWREaWRD
aGFuZ2U6XSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6c2V0SXNQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRs
OgorCiAyMDE5LTA1LTAxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAg
ICAgIEhpZGUgTWVkaWFDYXBhYmlsaXRpZXMuZW5jb2RpbmdJbmZvKCkgd2hlbiB0aGUgcGxhdGZv
cm0gZG9lcyBub3Qgc3VwcG9ydCBpdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCmluZGV4IGYwMGQ4MWNhMDg4OWJiNDkyN2YzNDczYTJiNTQwMWVjOGVlOGE0YjUuLjc1
ZjE5MzgzYWQ2MTQ1OTM2ZDRkNzU3ZjhmYmQzNWZjOTk0OGE4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzcxNSw2ICs3NzE1LDEwIEBAIGJvb2wgSFRN
TE1lZGlhRWxlbWVudDo6c2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlv
bihQbGF0Zm9ybU1lZGlhCiAgICAgICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAicmV0
dXJuaW5nIHRydWUgYmVjYXVzZSBpc1BsYXlpbmdUb0V4dGVybmFsVGFyZ2V0KCkgaXMgdHJ1ZSIp
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmlzUGxheWluZ1RvQXV0b21v
dGl2ZUhlYWRVbml0KCkpIHsKKyAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJy
ZXR1cm5pbmcgdHJ1ZSBiZWNhdXNlIGlzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KCkgaXMg
dHJ1ZSIpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICAgICAgaWYg
KG1fdmlkZW9GdWxsc2NyZWVuTW9kZSAmIFZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0
dXJlKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFC
TEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCkBAIC03NzI2LDYgKzc3MzAsMTAgQEAgYm9vbCBI
VE1MTWVkaWFFbGVtZW50OjpzaG91bGRPdmVycmlkZUJhY2tncm91bmRQbGF5YmFja1Jlc3RyaWN0
aW9uKFBsYXRmb3JtTWVkaWEKICAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJy
ZXR1cm5pbmcgdHJ1ZSBiZWNhdXNlIGlzUGxheWluZ1RvRXh0ZXJuYWxUYXJnZXQoKSBpcyB0cnVl
Iik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorICAgICAgICBpZiAoUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaXNQbGF5aW5nVG9BdXRv
bW90aXZlSGVhZFVuaXQoKSkgeworICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwg
InJldHVybmluZyB0cnVlIGJlY2F1c2UgaXNQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQoKSBp
cyB0cnVlIik7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KICAg
ICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCA0MjZhNjc0
NWEwNWQ4YmViZWE2NzU0MGI1MjJhZDI5NGRiZTkxN2Q0Li5kMjYzYWEwZWE2OGI5N2MwNDNjMDUw
NGVjMTZmOGNiNjVkNTA2MDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTM5NCw2
ICszOTQsMTQgQEAgdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnByb2Nlc3NEaWRS
ZXN1bWUoKQogI2VuZGlmCiB9CiAKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpz
ZXRJc1BsYXlpbmdUb0F1dG9tb3RpdmVIZWFkVW5pdChib29sIGlzUGxheWluZ1RvQXV0b21vdGl2
ZUhlYWRVbml0KQoreworICAgIGlmIChpc1BsYXlpbmdUb0F1dG9tb3RpdmVIZWFkVW5pdCA9PSBt
X2lzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KQorICAgICAgICByZXR1cm47CisKKyAgICBB
TFdBWVNfTE9HKExPR0lERU5USUZJRVIsIGlzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KTsK
KyAgICBtX2lzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0ID0gaXNQbGF5aW5nVG9BdXRvbW90
aXZlSGVhZFVuaXQ7Cit9CiAKIHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNz
aW9uSXNQbGF5aW5nVG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0Q2hhbmdlZChQbGF0Zm9ybU1lZGlh
U2Vzc2lvbiYgc2Vzc2lvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMzY4NTMwN2I3
MzA4ZDBlMzkwOGNhMzZlZjVmYTEzYjcyODUxMjE3OC4uYjkxMTllMDlmNTJhYzhkZTY0NjI3NGJi
YmUxZTgzOGQ1NWFhZjcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKQEAgLTEyOSw2ICsxMjks
OSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNlc3Npb25Jc1BsYXlpbmdUb1dpcmVsZXNzUGxheWJh
Y2tUYXJnZXRDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uJik7CiAKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldElzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KGJvb2wpOworICAgIGJv
b2wgaXNQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQoKSBjb25zdCB7IHJldHVybiBtX2lzUGxh
eWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0OyB9CisKICAgICB2b2lkIGZvckVhY2hNYXRjaGluZ1Nl
c3Npb24oY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpPiYg
cHJlZGljYXRlLCBjb25zdCBGdW5jdGlvbjx2b2lkKFBsYXRmb3JtTWVkaWFTZXNzaW9uJik+JiBt
YXRjaGluZ0NhbGxiYWNrKTsKIAogcHJvdGVjdGVkOgpAQCAtMTg4LDYgKzE5MSw3IEBAIHByaXZh
dGU6CiAgICAgbXV0YWJsZSBib29sIG1faXNBcHBsaWNhdGlvbkluQmFja2dyb3VuZCB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX3dpbGxJZ25vcmVTeXN0ZW1JbnRlcnJ1cHRpb25zIHsgZmFsc2UgfTsK
ICAgICBib29sIG1fcHJvY2Vzc0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNQ
bGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQgeyBmYWxzZSB9OwogCiAjaWYgVVNFKEFVRElPX1NF
U1NJT04pCiAgICAgYm9vbCBtX2JlY2FtZUFjdGl2ZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJ
T1MuaAppbmRleCBlYjAxZDZmMzc5ZTdhNThiYTU0OTMwZWE1NmZmYWU1ZDBiODhhOGVjLi40Nzlk
YTdhYmE1ZDdkMzNmYTdlZGM4NWU2ODc1YTMzOWU2NjU5OGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9T
LmgKQEAgLTQ3LDYgKzQ3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBleHRlcm5hbE91dHB1dERl
dmljZUF2YWlsYWJsZURpZENoYW5nZSgpOwogICAgIGJvb2wgaGFzV2lyZWxlc3NUYXJnZXRzQXZh
aWxhYmxlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjYXJQbGF5U2VydmVyRGllZCgpOworICAgIHZv
aWQgdXBkYXRlQ2FyUGxheUlzQ29ubmVjdGVkKE9wdGlvbmFsPGJvb2w+JiYpOwogCiBwcml2YXRl
OgogICAgIGZyaWVuZCBjbGFzcyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdl
cklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25N
YW5hZ2VySU9TLm1tCmluZGV4IDAwNDM5MDRhNTMwMjVlNDQ1MDAxNWFmMDA2OGI2M2M1MzI0NDc4
NTMuLmU5ZTM3ODBmMGI5YjBhZGRlZDJjNTFlNjNhMzg2ZmU3MzUxMTliYjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25N
YW5hZ2VySU9TLm1tCkBAIC01Niw2ICs1NiwxMCBAQCBXRUJDT1JFX0VYUE9SVCBOU1N0cmluZyog
V2ViVUlBcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZE5vdGlmaWNhdGlvbiA9IEAiV2ViVQog
U09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX09QVElPTkFMKENlbGVzdGlhbCkKIFNPRlRfTElO
S19DTEFTU19PUFRJT05BTChDZWxlc3RpYWwsIEFWU3lzdGVtQ29udHJvbGxlcikKIFNPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTChDZWxlc3RpYWwsIEFWU3lzdGVtQ29udHJvbGxlcl9QSURUb0lu
aGVyaXRBcHBsaWNhdGlvblN0YXRlRnJvbSwgTlNTdHJpbmcgKikKK1NPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTChDZWxlc3RpYWwsIEFWU3lzdGVtQ29udHJvbGxlcl9DYXJQbGF5SXNDb25uZWN0
ZWRBdHRyaWJ1dGUsIE5TU3RyaW5nICopCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwoQ2Vs
ZXN0aWFsLCBBVlN5c3RlbUNvbnRyb2xsZXJfQ2FyUGxheUlzQ29ubmVjdGVkRGlkQ2hhbmdlTm90
aWZpY2F0aW9uLCBOU1N0cmluZyAqKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKENlbGVz
dGlhbCwgQVZTeXN0ZW1Db250cm9sbGVyX0NhclBsYXlJc0Nvbm5lY3RlZE5vdGlmaWNhdGlvblBh
cmFtZXRlciwgTlNTdHJpbmcgKikKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChDZWxlc3Rp
YWwsIEFWU3lzdGVtQ29udHJvbGxlcl9TZXJ2ZXJDb25uZWN0aW9uRGllZE5vdGlmaWNhdGlvbiwg
TlNTdHJpbmcgKikKICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTEwOSw2
ICsxMTMsOCBAQCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpNZWRpYVNlc3Npb25NYW5hZ2VyaU9T
KCkKICAgICBtX29iamNPYnNlcnZlciA9IGFkb3B0TlMoW1tXZWJNZWRpYVNlc3Npb25IZWxwZXIg
YWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6dGhpc10pOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKICAgICByZXNldFJlc3RyaWN0aW9ucygpOworCisgICAgdXBkYXRlQ2FyUGxheUlzQ29u
bmVjdGVkKFdURjo6bnVsbG9wdCk7CiB9CiAKIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6On5NZWRp
YVNlc3Npb25NYW5hZ2VyaU9TKCkKQEAgLTE5NCw2ICsyMDAsMTkgQEAgdm9pZCBNZWRpYVNlc3Np
b25NYW5hZ2VyaU9TOjpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZSgpCiAg
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFn
ZXJpT1M6OmNhclBsYXlTZXJ2ZXJEaWVkKCkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIpOworICAgIHVwZGF0ZUNhclBsYXlJc0Nvbm5lY3RlZChXVEY6Om51bGxvcHQpOworfQorCit2
b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnVwZGF0ZUNhclBsYXlJc0Nvbm5lY3RlZChPcHRp
b25hbDxib29sPiYmIGNhclBsYXlJc0Nvbm5lY3RlZCkKK3sKKyAgICBpZiAoIWNhclBsYXlJc0Nv
bm5lY3RlZCAmJiBjYW5Mb2FkQVZTeXN0ZW1Db250cm9sbGVyX0NhclBsYXlJc0Nvbm5lY3RlZEF0
dHJpYnV0ZSgpKQorICAgICAgICBjYXJQbGF5SXNDb25uZWN0ZWQgPSBbW1tnZXRBVlN5c3RlbUNv
bnRyb2xsZXJDbGFzcygpIHNoYXJlZEFWU3lzdGVtQ29udHJvbGxlcl0gYXR0cmlidXRlRm9yS2V5
OmdldEFWU3lzdGVtQ29udHJvbGxlcl9DYXJQbGF5SXNDb25uZWN0ZWRBdHRyaWJ1dGUoKV0gYm9v
bFZhbHVlXTsKKyAgICBzZXRJc1BsYXlpbmdUb0F1dG9tb3RpdmVIZWFkVW5pdChjYXJQbGF5SXND
b25uZWN0ZWQudmFsdWUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogQGltcGxl
bWVudGF0aW9uIFdlYk1lZGlhU2Vzc2lvbkhlbHBlcgpAQCAtMjE4LDYgKzIzNywxMCBAQCAtIChp
ZClpbml0V2l0aENhbGxiYWNrOihNZWRpYVNlc3Npb25NYW5hZ2VyaU9TKiljYWxsYmFjawogICAg
IFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoYXBwbGljYXRpb25X
aWxsUmVzaWduQWN0aXZlOikgbmFtZTpXZWJVSUFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZU5v
dGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2Vs
ZWN0b3I6QHNlbGVjdG9yKGFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kOikgbmFtZTpQQUw6
OmdldF9VSUtpdF9VSUFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uKCkg
b2JqZWN0Om5pbF07CiAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxl
Y3RvcihhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZDopIG5hbWU6V2ViVUlBcHBsaWNhdGlv
bkRpZEVudGVyQmFja2dyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAgICBpZiAoY2Fu
TG9hZEFWU3lzdGVtQ29udHJvbGxlcl9TZXJ2ZXJDb25uZWN0aW9uRGllZE5vdGlmaWNhdGlvbigp
KQorICAgICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGNh
clBsYXlTZXJ2ZXJEaWVkOikgbmFtZTpnZXRBVlN5c3RlbUNvbnRyb2xsZXJfU2VydmVyQ29ubmVj
dGlvbkRpZWROb3RpZmljYXRpb24oKSBvYmplY3Q6bmlsXTsKKyAgICBpZiAoY2FuTG9hZEFWU3lz
dGVtQ29udHJvbGxlcl9DYXJQbGF5SXNDb25uZWN0ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24oKSkK
KyAgICAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihjYXJQ
bGF5SXNDb25uZWN0ZWREaWRDaGFuZ2U6KSBuYW1lOmdldEFWU3lzdGVtQ29udHJvbGxlcl9DYXJQ
bGF5SXNDb25uZWN0ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24oKSBvYmplY3Q6bmlsXTsKIAogICAg
IC8vIE5vdyBwbGF5aW5nIHdvbid0IHdvcmsgdW5sZXNzIHdlIHR1cm4gb24gdGhlIGRlbGl2ZXJ5
IG9mIHJlbW90ZSBjb250cm9sIGV2ZW50cy4KICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBeIHsKQEAgLTI4NiwxNCArMzA5LDE0IEBAIC0gKHZvaWQpc3RhcnRN
b25pdG9yaW5nQWlyUGxheVJvdXRlcwogCiAgICAgTE9HKE1lZGlhLCAiLVtXZWJNZWRpYVNlc3Np
b25IZWxwZXIgc3RhcnRNb25pdG9yaW5nQWlyUGxheVJvdXRlc10iKTsKIAotICAgIGNhbGxPbldl
YlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFdURk1v
dmUoc2VsZildKCkgbXV0YWJsZSB7CisgICAgY2FsbE9uV2ViVGhyZWFkT3JEaXNwYXRjaEFzeW5j
T25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXSgpIG11dGFibGUg
ewogICAgICAgICBBU1NFUlQoIXByb3RlY3RlZFNlbGYtPl9yb3V0ZURldGVjdG9yKTsKIAogICAg
ICAgICBpZiAocHJvdGVjdGVkU2VsZi0+X2NhbGxiYWNrKSB7CiAgICAgICAgICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9yb3V0ZURl
dGVjdG9yID0gYWRvcHROUyhbUEFMOjphbGxvY0FWUm91dGVEZXRlY3Rvckluc3RhbmNlKCkgaW5p
dF0pOwogICAgICAgICAgICAgcHJvdGVjdGVkU2VsZi0+X3JvdXRlRGV0ZWN0b3IuZ2V0KCkucm91
dGVEZXRlY3Rpb25FbmFibGVkID0gcHJvdGVjdGVkU2VsZi0+X21vbml0b3JpbmdBaXJQbGF5Um91
dGVzOwotICAgICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBh
ZGRPYnNlcnZlcjpwcm90ZWN0ZWRTZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcih3aXJlbGVzc1JvdXRl
c0F2YWlsYWJsZURpZENoYW5nZTopIG5hbWU6QVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNE
ZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6cHJvdGVjdGVkU2VsZi0+X3JvdXRl
RGV0ZWN0b3IuZ2V0KCldOworICAgICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZh
dWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpwcm90ZWN0ZWRTZWxmLmdldCgpIHNlbGVjdG9yOkBzZWxl
Y3Rvcih3aXJlbGVzc1JvdXRlc0F2YWlsYWJsZURpZENoYW5nZTopIG5hbWU6QVZSb3V0ZURldGVj
dG9yTXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6cHJv
dGVjdGVkU2VsZi0+X3JvdXRlRGV0ZWN0b3IuZ2V0KCldOwogCiAgICAgICAgICAgICBwcm90ZWN0
ZWRTZWxmLT5fY2FsbGJhY2stPmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlkQ2hhbmdl
KCk7CiAgICAgICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCkBAIC0zMjgsNyArMzUx
LDcgQEAgLSAodm9pZClpbnRlcnJ1cHRpb246KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9u
CiAgICAgaWYgKHR5cGUgPT0gQVZBdWRpb1Nlc3Npb25JbnRlcnJ1cHRpb25UeXBlRW5kZWQgJiYg
W1tbbm90aWZpY2F0aW9uIHVzZXJJbmZvXSBvYmplY3RGb3JLZXk6QVZBdWRpb1Nlc3Npb25JbnRl
cnJ1cHRpb25PcHRpb25LZXldIHVuc2lnbmVkSW50ZWdlclZhbHVlXSA9PSBBVkF1ZGlvU2Vzc2lv
bkludGVycnVwdGlvbk9wdGlvblNob3VsZFJlc3VtZSkKICAgICAgICAgZmxhZ3MgPSBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6TWF5UmVzdW1lUGxheWluZzsKIAotICAgIGNhbGxPbldlYlRocmVhZE9y
RGlzcGF0Y2hBc3luY09uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUoc2VsZiks
IHR5cGUsIGZsYWdzXSgpIG11dGFibGUgeworICAgIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hB
c3luY09uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgdHlwZSwg
ZmxhZ3NdKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8qIGNhbGxiYWNrID0gcHJvdGVjdGVkU2Vs
Zi0+X2NhbGxiYWNrOwogICAgICAgICBpZiAoIWNhbGxiYWNrKQogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMzUxLDcgKzM3NCw3IEBAIC0gKHZvaWQpYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3Jv
dW5kOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogICAgIExPRyhNZWRpYSwgIi1bV2Vi
TWVkaWFTZXNzaW9uSGVscGVyIGFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZF0iKTsKIAog
ICAgIEJPT0wgaXNTdXNwZW5kZWRVbmRlckxvY2sgPSBbW1tub3RpZmljYXRpb24gdXNlckluZm9d
IG9iamVjdEZvcktleTpAImlzU3VzcGVuZGVkVW5kZXJMb2NrIl0gYm9vbFZhbHVlXTsKLSAgICBj
YWxsT25XZWJUaHJlYWRPckRpc3BhdGNoQXN5bmNPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYg
PSBXVEZNb3ZlKHNlbGYpLCBpc1N1c3BlbmRlZFVuZGVyTG9ja10oKSBtdXRhYmxlIHsKKyAgICBj
YWxsT25XZWJUaHJlYWRPckRpc3BhdGNoQXN5bmNPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYg
PSByZXRhaW5QdHIoc2VsZiksIGlzU3VzcGVuZGVkVW5kZXJMb2NrXSgpIG11dGFibGUgewogICAg
ICAgICBpZiAoYXV0byogY2FsbGJhY2sgPSBwcm90ZWN0ZWRTZWxmLT5fY2FsbGJhY2spCiAgICAg
ICAgICAgICBjYWxsYmFjay0+YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKGlzU3VzcGVu
ZGVkVW5kZXJMb2NrKTsKICAgICB9KTsKQEAgLTM2Niw3ICszODksNyBAQCAtICh2b2lkKWFwcGxp
Y2F0aW9uRGlkQmVjb21lQWN0aXZlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogCiAg
ICAgTE9HKE1lZGlhLCAiLVtXZWJNZWRpYVNlc3Npb25IZWxwZXIgYXBwbGljYXRpb25EaWRCZWNv
bWVBY3RpdmVdIik7CiAKLSAgICBjYWxsT25XZWJUaHJlYWRPckRpc3BhdGNoQXN5bmNPbk1haW5U
aHJlYWQoW3Byb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHNlbGYpXSgpIG11dGFibGUgeworICAgIGNh
bGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9
IHJldGFpblB0cihzZWxmKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGF1dG8qIGNhbGxiYWNr
ID0gcHJvdGVjdGVkU2VsZi0+X2NhbGxiYWNrKQogICAgICAgICAgICAgY2FsbGJhY2stPmFwcGxp
Y2F0aW9uRGlkQmVjb21lQWN0aXZlKCk7CiAgICAgfSk7CkBAIC0zODEsNyArNDA0LDcgQEAgLSAo
dm9pZClhcHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmU6KE5TTm90aWZpY2F0aW9uICopbm90aWZp
Y2F0aW9uCiAKICAgICBMT0coTWVkaWEsICItW1dlYk1lZGlhU2Vzc2lvbkhlbHBlciBhcHBsaWNh
dGlvbldpbGxSZXNpZ25BY3RpdmVdIik7CiAKLSAgICBjYWxsT25XZWJUaHJlYWRPckRpc3BhdGNo
QXN5bmNPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHNlbGYpXSgpIG11dGFi
bGUgeworICAgIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVhZChbcHJv
dGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGF1
dG8qIGNhbGxiYWNrID0gcHJvdGVjdGVkU2VsZi0+X2NhbGxiYWNrKQogICAgICAgICAgICAgY2Fs
bGJhY2stPmFwcGxpY2F0aW9uV2lsbEJlY29tZUluYWN0aXZlKCk7CiAgICAgfSk7CkBAIC0zOTYs
NyArNDE5LDcgQEAgLSAodm9pZCl3aXJlbGVzc1JvdXRlc0F2YWlsYWJsZURpZENoYW5nZTooTlNO
b3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIAogICAgIExPRyhNZWRpYSwgIi1bV2ViTWVkaWFT
ZXNzaW9uSGVscGVyIHdpcmVsZXNzUm91dGVzQXZhaWxhYmxlRGlkQ2hhbmdlXSIpOwogCi0gICAg
Y2FsbE9uV2ViVGhyZWFkT3JEaXNwYXRjaEFzeW5jT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxm
ID0gV1RGTW92ZShzZWxmKV0oKSBtdXRhYmxlIHsKKyAgICBjYWxsT25XZWJUaHJlYWRPckRpc3Bh
dGNoQXN5bmNPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZildKCkg
bXV0YWJsZSB7CiAgICAgICAgIGlmIChhdXRvKiBjYWxsYmFjayA9IHByb3RlY3RlZFNlbGYtPl9j
YWxsYmFjaykKICAgICAgICAgICAgIGNhbGxiYWNrLT5leHRlcm5hbE91dHB1dERldmljZUF2YWls
YWJsZURpZENoYW5nZSgpOwogICAgIH0pOwpAQCAtNDEwLDExICs0MzMsNDAgQEAgLSAodm9pZClh
cHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZDooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRp
b24KICAgICBMT0coTWVkaWEsICItW1dlYk1lZGlhU2Vzc2lvbkhlbHBlciBhcHBsaWNhdGlvbkRp
ZEVudGVyQmFja2dyb3VuZF0iKTsKIAogICAgIEJPT0wgaXNTdXNwZW5kZWRVbmRlckxvY2sgPSBb
W1tub3RpZmljYXRpb24gdXNlckluZm9dIG9iamVjdEZvcktleTpAImlzU3VzcGVuZGVkVW5kZXJM
b2NrIl0gYm9vbFZhbHVlXTsKLSAgICBjYWxsT25XZWJUaHJlYWRPckRpc3BhdGNoQXN5bmNPbk1h
aW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSBXVEZNb3ZlKHNlbGYpLCBpc1N1c3BlbmRlZFVuZGVy
TG9ja10oKSBtdXRhYmxlIHsKKyAgICBjYWxsT25XZWJUaHJlYWRPckRpc3BhdGNoQXN5bmNPbk1h
aW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZiksIGlzU3VzcGVuZGVkVW5k
ZXJMb2NrXSgpIG11dGFibGUgewogICAgICAgICBpZiAoYXV0byogY2FsbGJhY2sgPSBwcm90ZWN0
ZWRTZWxmLT5fY2FsbGJhY2spCiAgICAgICAgICAgICBjYWxsYmFjay0+YXBwbGljYXRpb25EaWRF
bnRlckJhY2tncm91bmQoaXNTdXNwZW5kZWRVbmRlckxvY2spOwogICAgIH0pOwogfQorCistICh2
b2lkKWNhclBsYXlTZXJ2ZXJEaWVkOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgorewor
ICAgIGlmICghX2NhbGxiYWNrKQorICAgICAgICByZXR1cm47CisKKyAgICBMT0coTWVkaWEsICIt
W1dlYk1lZGlhU2Vzc2lvbkhlbHBlciBjYXJQbGF5U2VydmVyRGllZDpdIik7CisgICAgVU5VU0VE
X1BBUkFNKG5vdGlmaWNhdGlvbik7CisgICAgY2FsbE9uV2ViVGhyZWFkT3JEaXNwYXRjaEFzeW5j
T25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXSgpIG11dGFibGUg
eworICAgICAgICBwcm90ZWN0ZWRTZWxmLT5fY2FsbGJhY2stPmNhclBsYXlTZXJ2ZXJEaWVkKCk7
CisgICAgfSk7Cit9CisKKy0gKHZvaWQpY2FyUGxheUlzQ29ubmVjdGVkRGlkQ2hhbmdlOihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIGlmICghX2NhbGxiYWNrKQorICAgICAg
ICByZXR1cm47CisKKyAgICBPcHRpb25hbDxib29sPiBjYXJQbGF5SXNDb25uZWN0ZWQ7CisgICAg
aWYgKG5vdGlmaWNhdGlvbiAmJiBjYW5Mb2FkQVZTeXN0ZW1Db250cm9sbGVyX0NhclBsYXlJc0Nv
bm5lY3RlZE5vdGlmaWNhdGlvblBhcmFtZXRlcigpKSB7CisgICAgICAgIE5TTnVtYmVyICpuc0Nh
clBsYXlJc0Nvbm5lY3RlZCA9IFtbbm90aWZpY2F0aW9uIHVzZXJJbmZvXSB2YWx1ZUZvcktleTpn
ZXRBVlN5c3RlbUNvbnRyb2xsZXJfQ2FyUGxheUlzQ29ubmVjdGVkTm90aWZpY2F0aW9uUGFyYW1l
dGVyKCldOworICAgICAgICBpZiAobnNDYXJQbGF5SXNDb25uZWN0ZWQpCisgICAgICAgICAgICBj
YXJQbGF5SXNDb25uZWN0ZWQgPSBbbnNDYXJQbGF5SXNDb25uZWN0ZWQgYm9vbFZhbHVlXTsKKyAg
ICB9CisKKyAgICBjYWxsT25XZWJUaHJlYWRPckRpc3BhdGNoQXN5bmNPbk1haW5UaHJlYWQoW3By
b3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZiksIGNhclBsYXlJc0Nvbm5lY3RlZCA9IFdURk1v
dmUoY2FyUGxheUlzQ29ubmVjdGVkKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgcHJvdGVjdGVkU2Vs
Zi0+X2NhbGxiYWNrLT51cGRhdGVDYXJQbGF5SXNDb25uZWN0ZWQoV1RGTW92ZShjYXJQbGF5SXND
b25uZWN0ZWQpKTsKKyAgICB9KTsKK30KIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19G
QU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNTEwZWYwZDMxYjZl
YTQyMGU0YWIwOWJmZTgxZjQxNWEzMThmMmVmZS4uMjczMGRmZWE0YjBiN2I2ZjA4ZWU4ZjkzYTQ5
ZGJmYjM2Mjk0ODE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDky
LDYgKzQ5Miw3IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2Um
IHBhZ2UpCiAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCku
cmVzZXRSZXN0cmljdGlvbnMoKTsKICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNo
YXJlZE1hbmFnZXIoKS5zZXRXaWxsSWdub3JlU3lzdGVtSW50ZXJydXB0aW9ucyh0cnVlKTsKICNl
bmRpZgorICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnNl
dElzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KGZhbHNlKTsKICNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCiAgICAgQVhPYmplY3RDYWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNz
aWJpbGl0eShmYWxzZSk7CiAgICAgQVhPYmplY3RDYWNoZTo6ZGlzYWJsZUFjY2Vzc2liaWxpdHko
KTsKQEAgLTUwNjcsNCArNTA2OCw5IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRYSFJNYXhpbXVtSW50
ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcoWE1MSHR0cFJlcXVlc3QmIHJlCiAgICAgcmVx
dWVzdC5zZXRNYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcoaW50ZXJ2YWwp
OwogfQogCit2b2lkIEludGVybmFsczo6c2V0SXNQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQo
Ym9vbCBpc1BsYXlpbmcpCit7CisgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFy
ZWRNYW5hZ2VyKCkuc2V0SXNQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQoaXNQbGF5aW5nKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
aW5kZXggM2FjNjZmNzI1OTgwMzBjMDg5ZjcxMjAyYjQ0ODEzMDgzNzlmNzk0Ni4uNDZkNDI2YTEw
YzllN2Q1NmI3OWU5YTA5YmJlYzg2MDcxZjVmNDEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCkBAIC04MjMsNiArODIzLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRYSFJNYXhp
bXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcoWE1MSHR0cFJlcXVlc3QmLCBkb3Vi
bGUpOwogCisgICAgdm9pZCBzZXRJc1BsYXlpbmdUb0F1dG9tb3RpdmVIZWFkVW5pdChib29sKTsK
KwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQmKTsKICAgICBEb2N1
bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKaW5kZXggY2EyYmM1NDViM2UwNGE3ODY4YzNkNDg5NDBhZTA3NzI0OWQxNDdhNy4uM2E1
OWI0ZDdmNWViOWM3MGZjMzIxMzQzZDdjNTMwY2QyNWViMjhlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbApAQCAtNzUzLDQgKzc1Myw2IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xp
Y3kgewogICAgIHZvaWQgdGVzdERpY3Rpb25hcnlMb2dnaW5nKCk7CiAKICAgICB2b2lkIHNldFhI
Uk1heGltdW1JbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZyhYTUxIdHRwUmVxdWVzdCB4
aHIsIGRvdWJsZSBpbnRlcnZhbCk7CisKKyAgICB2b2lkIHNldElzUGxheWluZ1RvQXV0b21vdGl2
ZUhlYWRVbml0KGJvb2xlYW4gdmFsdWUpOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3ZDA5MzZiNGYwYWUxMDc4MzQ3
ZTA5ODFlNGIwYTc1MzliZDZkMDI2Li4wMmRiNWMxNDE4ZjRkNmQ5NWRkYWM0Yjc0M2FiMTA1MTU1
MzA3YzM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDUtMjkgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgVmlkZW8gcGxheWJhY2sgaW4gU2FmYXJpIHNo
b3VsZCBjb250aW51ZSB3aGVuIENhclBsYXkgaXMgcGx1Z2dlZCBpbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MzQ1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NTUwNTc1MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIG1lZGlhL3ZpZGVvLWlzcGxheWluZ3RvYXV0b21vdGl2ZWhlYWR1bml0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdmlkZW8taXNwbGF5aW5ndG9hdXRv
bW90aXZlaGVhZHVuaXQuaHRtbDogQWRkZWQuCisKIDIwMTktMDUtMDEgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgSGlkZSBNZWRpYUNhcGFiaWxpdGllcy5lbmNv
ZGluZ0luZm8oKSB3aGVuIHRoZSBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0IGl0LgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8taXNwbGF5aW5ndG9hdXRvbW90aXZlaGVhZHVu
aXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8taXNwbGF5aW5ndG9hdXRv
bW90aXZlaGVhZHVuaXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2M2U1ZWRmNDJkYjk3NTZl
OTc4NTkxZjNmYmE2NTIzOWRkZWUyNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS92aWRlby1pc3BsYXlpbmd0b2F1dG9tb3RpdmVoZWFkdW5pdC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNSBAQAorCitSVU4odmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAi
Y29udGVudC90ZXN0IikpCitFVkVOVChjYW5wbGF5dGhyb3VnaCkKK1JVTih2aWRlby5wbGF5KCkp
CitFVkVOVChwbGF5aW5nKQorUlVOKGludGVybmFscy5zZXRNZWRpYVNlc3Npb25SZXN0cmljdGlv
bnMoInZpZGVvYXVkaW8iLCAic3VzcGVuZGVkdW5kZXJsb2NrcGxheWJhY2tyZXN0cmljdGVkIikp
CitSVU4oaW50ZXJuYWxzLmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKHRydWUpKQorRVZF
TlQocGF1c2UpCitSVU4oaW50ZXJuYWxzLmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCh0
cnVlKSkKK0VWRU5UKHBsYXlpbmcpCitSVU4oaW50ZXJuYWxzLnNldElzUGxheWluZ1RvQXV0b21v
dGl2ZUhlYWRVbml0KHRydWUpKQorUlVOKGludGVybmFscy5hcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZCh0cnVlKSkKK0VYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ2ZhbHNlJykgT0sKK0VO
RCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWlzcGxheWlu
Z3RvYXV0b21vdGl2ZWhlYWR1bml0Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1pc3Bs
YXlpbmd0b2F1dG9tb3RpdmVoZWFkdW5pdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNGM4ZjczYWQzMWNi
MGY0ZjdlNDA0Yzc2ODk0MjhlMjczMTc3MWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS92aWRlby1pc3BsYXlpbmd0b2F1dG9tb3RpdmVoZWFkdW5pdC5odG1sCkBAIC0wLDAg
KzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKwk8dGl0bGU+dmlkZW8t
aXNwbGF5aW5ndG9hdXRvbW90aXZlaGVhZHVuaXQ8L3RpdGxlPgorCTxzY3JpcHQgc3JjPSJ2aWRl
by10ZXN0LmpzIj48L3NjcmlwdD4KKwk8c2NyaXB0IHNyYz0ibWVkaWEtZmlsZS5qcyI+PC9zY3Jp
cHQ+CisJPHNjcmlwdD4KKwl3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2
ZW50ID0+IHsKKwkJZmluZE1lZGlhRWxlbWVudCgpOworCisJCXJ1bigndmlkZW8uc3JjID0gZmlu
ZE1lZGlhRmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0IiknKTsKKwkJYXdhaXQgd2FpdEZvcih2
aWRlbywgJ2NhbnBsYXl0aHJvdWdoJyk7CisKKwkJcnVuV2l0aEtleURvd24oJ3ZpZGVvLnBsYXko
KScpOworCQlhd2FpdCB3YWl0Rm9yKHZpZGVvLCAncGxheWluZycpOworCisJCXJ1bignaW50ZXJu
YWxzLnNldE1lZGlhU2Vzc2lvblJlc3RyaWN0aW9ucygidmlkZW9hdWRpbyIsICJzdXNwZW5kZWR1
bmRlcmxvY2twbGF5YmFja3Jlc3RyaWN0ZWQiKScpCisJCXJ1bignaW50ZXJuYWxzLmFwcGxpY2F0
aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKHRydWUpJyk7CisJCWF3YWl0IHdhaXRGb3IodmlkZW8sICdw
YXVzZScpOworCisJCXJ1bignaW50ZXJuYWxzLmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3Vu
ZCh0cnVlKScpOworCQlhd2FpdCB3YWl0Rm9yKHZpZGVvLCAncGxheWluZycpOworCisJCXJ1bign
aW50ZXJuYWxzLnNldElzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KHRydWUpJyk7CisJCXJ1
bignaW50ZXJuYWxzLmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKHRydWUpJyk7CisJCXRl
c3RFeHBlY3RlZCgndmlkZW8ucGF1c2VkJywgZmFsc2UpOworCQllbmRUZXN0KCk7CisJfSk7CisJ
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKwk8dmlkZW8gY29udHJvbHM+PC92aWRlbz4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370944</attachid>
            <date>2019-05-30 08:49:53 -0700</date>
            <delta_ts>2019-05-30 08:50:20 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-198345-20190530084952.patch</filename>
            <type>text/plain</type>
            <size>20162</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1ODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGVmOGZmNDUyZjU2YWZh
OTgzNWQ1MmUyZTc0OGE2ZDg3ZWQ5NWIwYy4uYjg4YWZhOWY5NmE3NDQ3NTViZDgxYmJhNGRjNmEz
M2I0M2QyMWQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE5LTA1LTMwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFZpZGVvIHBsYXliYWNrIGlu
IFNhZmFyaSBzaG91bGQgY29udGludWUgd2hlbiBDYXJQbGF5IGlzIHBsdWdnZWQgaW4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODM0NQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDU1MDU3NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBD
YXJsc29uLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3ZpZGVvLWlzcGxheWluZ3RvYXV0b21vdGl2
ZWhlYWR1bml0Lmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzaG91bGRPdmVycmlkZUJhY2tncm91
bmRQbGF5YmFja1Jlc3RyaWN0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRJc1BsYXlpbmdUb0F1dG9tb3RpdmVIZWFkVW5pdCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OmlzUGxheWlu
Z1RvQXV0b21vdGl2ZUhlYWRVbml0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9p
b3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lv
cy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uTWFuYWdlcmlPUzo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpjYXJQbGF5U2VydmVyRGllZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjp1cGRhdGVDYXJQbGF5SXNDb25uZWN0ZWQp
OgorICAgICAgICAoLVtXZWJNZWRpYVNlc3Npb25IZWxwZXIgaW5pdFdpdGhDYWxsYmFjazpdKToK
KyAgICAgICAgKC1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIHN0YXJ0TW9uaXRvcmluZ0FpclBsYXlS
b3V0ZXNdKToKKyAgICAgICAgKC1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGludGVycnVwdGlvbjpd
KToKKyAgICAgICAgKC1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGFwcGxpY2F0aW9uV2lsbEVudGVy
Rm9yZWdyb3VuZDpdKToKKyAgICAgICAgKC1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGFwcGxpY2F0
aW9uRGlkQmVjb21lQWN0aXZlOl0pOgorICAgICAgICAoLVtXZWJNZWRpYVNlc3Npb25IZWxwZXIg
YXBwbGljYXRpb25XaWxsUmVzaWduQWN0aXZlOl0pOgorICAgICAgICAoLVtXZWJNZWRpYVNlc3Np
b25IZWxwZXIgd2lyZWxlc3NSb3V0ZXNBdmFpbGFibGVEaWRDaGFuZ2U6XSk6CisgICAgICAgICgt
W1dlYk1lZGlhU2Vzc2lvbkhlbHBlciBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZDpdKToK
KyAgICAgICAgKC1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGNhclBsYXlTZXJ2ZXJEaWVkOl0pOgor
ICAgICAgICAoLVtXZWJNZWRpYVNlc3Npb25IZWxwZXIgY2FyUGxheUlzQ29ubmVjdGVkRGlkQ2hh
bmdlOl0pOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnNldElzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoK
KwogMjAxOS0wNS0yOSAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtXSExTTF0gUGFyc2luZyBhbmQgbGV4aW5nIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IGlz
IHNsb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGYwMGQ4
MWNhMDg4OWJiNDkyN2YzNDczYTJiNTQwMWVjOGVlOGE0YjUuLjc1ZjE5MzgzYWQ2MTQ1OTM2ZDRk
NzU3ZjhmYmQzNWZjOTk0OGE4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcApAQCAtNzcxNSw2ICs3NzE1LDEwIEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6c2hv
dWxkT3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlhCiAg
ICAgICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAicmV0dXJuaW5nIHRydWUgYmVjYXVz
ZSBpc1BsYXlpbmdUb0V4dGVybmFsVGFyZ2V0KCkgaXMgdHJ1ZSIpOwogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6c2hhcmVkTWFuYWdlcigpLmlzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KCkpIHsK
KyAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJyZXR1cm5pbmcgdHJ1ZSBiZWNh
dXNlIGlzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KCkgaXMgdHJ1ZSIpOworICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVu
TW9kZSAmIFZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCkBAIC03NzI2LDYgKzc3MzAsMTAgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojpz
aG91bGRPdmVycmlkZUJhY2tncm91bmRQbGF5YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWEK
ICAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJyZXR1cm5pbmcgdHJ1ZSBiZWNh
dXNlIGlzUGxheWluZ1RvRXh0ZXJuYWxUYXJnZXQoKSBpcyB0cnVlIik7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorICAgICAgICBpZiAoUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaXNQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQoKSkg
eworICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInJldHVybmluZyB0cnVlIGJl
Y2F1c2UgaXNQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQoKSBpcyB0cnVlIik7CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCA4MzcwZmIwYzQ4ZmU0NmMxYzIzOWJjNDBm
MjlkNzkwZmIwYTdmNDE1Li5iNDJjMjE0OGI4ZDMxN2ExYjdiOTM4Zjk1N2MxNTQ1MTY3YmQ1YjRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Bs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTM5MSw2ICszOTEsMTQgQEAgdm9pZCBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnByb2Nlc3NEaWRSZXN1bWUoKQogI2VuZGlmCiB9
CiAKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRJc1BsYXlpbmdUb0F1dG9t
b3RpdmVIZWFkVW5pdChib29sIGlzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KQoreworICAg
IGlmIChpc1BsYXlpbmdUb0F1dG9tb3RpdmVIZWFkVW5pdCA9PSBtX2lzUGxheWluZ1RvQXV0b21v
dGl2ZUhlYWRVbml0KQorICAgICAgICByZXR1cm47CisKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIsIGlzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KTsKKyAgICBtX2lzUGxheWluZ1Rv
QXV0b21vdGl2ZUhlYWRVbml0ID0gaXNQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQ7Cit9CiAK
IHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uSXNQbGF5aW5nVG9XaXJl
bGVzc1BsYXliYWNrVGFyZ2V0Q2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMzY4NTMwN2I3MzA4ZDBlMzkwOGNhMzZlZjVm
YTEzYjcyODUxMjE3OC4uYjkxMTllMDlmNTJhYzhkZTY0NjI3NGJiYmUxZTgzOGQ1NWFhZjcxYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKQEAgLTEyOSw2ICsxMjksOSBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNlc3Npb25Jc1BsYXlpbmdUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXRDaGFuZ2VkKFBs
YXRmb3JtTWVkaWFTZXNzaW9uJik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElzUGxh
eWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KGJvb2wpOworICAgIGJvb2wgaXNQbGF5aW5nVG9BdXRv
bW90aXZlSGVhZFVuaXQoKSBjb25zdCB7IHJldHVybiBtX2lzUGxheWluZ1RvQXV0b21vdGl2ZUhl
YWRVbml0OyB9CisKICAgICB2b2lkIGZvckVhY2hNYXRjaGluZ1Nlc3Npb24oY29uc3QgRnVuY3Rp
b248Ym9vbChjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpPiYgcHJlZGljYXRlLCBjb25zdCBG
dW5jdGlvbjx2b2lkKFBsYXRmb3JtTWVkaWFTZXNzaW9uJik+JiBtYXRjaGluZ0NhbGxiYWNrKTsK
IAogcHJvdGVjdGVkOgpAQCAtMTg4LDYgKzE5MSw3IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBi
b29sIG1faXNBcHBsaWNhdGlvbkluQmFja2dyb3VuZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3dp
bGxJZ25vcmVTeXN0ZW1JbnRlcnJ1cHRpb25zIHsgZmFsc2UgfTsKICAgICBib29sIG1fcHJvY2Vz
c0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNQbGF5aW5nVG9BdXRvbW90aXZl
SGVhZFVuaXQgeyBmYWxzZSB9OwogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pCiAgICAgYm9vbCBt
X2JlY2FtZUFjdGl2ZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaAppbmRleCBlYjAxZDZm
Mzc5ZTdhNThiYTU0OTMwZWE1NmZmYWU1ZDBiODhhOGVjLi40NzlkYTdhYmE1ZDdkMzNmYTdlZGM4
NWU2ODc1YTMzOWU2NjU5OGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKQEAgLTQ3LDYgKzQ3LDgg
QEAgcHVibGljOgogCiAgICAgdm9pZCBleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENo
YW5nZSgpOwogICAgIGJvb2wgaGFzV2lyZWxlc3NUYXJnZXRzQXZhaWxhYmxlKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBjYXJQbGF5U2VydmVyRGllZCgpOworICAgIHZvaWQgdXBkYXRlQ2FyUGxheUlz
Q29ubmVjdGVkKE9wdGlvbmFsPGJvb2w+JiYpOwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFz
cyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCmluZGV4
IDAwNDM5MDRhNTMwMjVlNDQ1MDAxNWFmMDA2OGI2M2M1MzI0NDc4NTMuLjlkNGVlZDY4YzJhYThi
NWQ1MGVmNWE1MzE0YjNjZjA1MTg2NzU1YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCkBAIC01
Niw2ICs1NiwxMCBAQCBXRUJDT1JFX0VYUE9SVCBOU1N0cmluZyogV2ViVUlBcHBsaWNhdGlvbkRp
ZEVudGVyQmFja2dyb3VuZE5vdGlmaWNhdGlvbiA9IEAiV2ViVQogU09GVF9MSU5LX1BSSVZBVEVf
RlJBTUVXT1JLX09QVElPTkFMKENlbGVzdGlhbCkKIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChD
ZWxlc3RpYWwsIEFWU3lzdGVtQ29udHJvbGxlcikKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJ
TChDZWxlc3RpYWwsIEFWU3lzdGVtQ29udHJvbGxlcl9QSURUb0luaGVyaXRBcHBsaWNhdGlvblN0
YXRlRnJvbSwgTlNTdHJpbmcgKikKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChDZWxlc3Rp
YWwsIEFWU3lzdGVtQ29udHJvbGxlcl9DYXJQbGF5SXNDb25uZWN0ZWRBdHRyaWJ1dGUsIE5TU3Ry
aW5nICopCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwoQ2VsZXN0aWFsLCBBVlN5c3RlbUNv
bnRyb2xsZXJfQ2FyUGxheUlzQ29ubmVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uLCBOU1N0cmlu
ZyAqKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKENlbGVzdGlhbCwgQVZTeXN0ZW1Db250
cm9sbGVyX0NhclBsYXlJc0Nvbm5lY3RlZE5vdGlmaWNhdGlvblBhcmFtZXRlciwgTlNTdHJpbmcg
KikKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChDZWxlc3RpYWwsIEFWU3lzdGVtQ29udHJv
bGxlcl9TZXJ2ZXJDb25uZWN0aW9uRGllZE5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKikKICNlbmRp
ZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTEwOSw2ICsxMTMsOCBAQCBNZWRpYVNl
c3Npb25NYW5hZ2VyaU9TOjpNZWRpYVNlc3Npb25NYW5hZ2VyaU9TKCkKICAgICBtX29iamNPYnNl
cnZlciA9IGFkb3B0TlMoW1tXZWJNZWRpYVNlc3Npb25IZWxwZXIgYWxsb2NdIGluaXRXaXRoQ2Fs
bGJhY2s6dGhpc10pOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICByZXNldFJl
c3RyaWN0aW9ucygpOworCisgICAgdXBkYXRlQ2FyUGxheUlzQ29ubmVjdGVkKFdURjo6bnVsbG9w
dCk7CiB9CiAKIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6On5NZWRpYVNlc3Npb25NYW5hZ2VyaU9T
KCkKQEAgLTE5NCw2ICsyMDAsMjcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpleHRl
cm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZSgpCiAgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwogfQogCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OmNhclBsYXlTZXJ2
ZXJEaWVkKCkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIHVwZGF0ZUNh
clBsYXlJc0Nvbm5lY3RlZChXVEY6Om51bGxvcHQpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1h
bmFnZXJpT1M6OnVwZGF0ZUNhclBsYXlJc0Nvbm5lY3RlZChPcHRpb25hbDxib29sPiYmIGNhclBs
YXlJc0Nvbm5lY3RlZCkKK3sKKyAgICBpZiAoY2FyUGxheUlzQ29ubmVjdGVkKSB7CisgICAgICAg
IHNldElzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KGNhclBsYXlJc0Nvbm5lY3RlZC52YWx1
ZSgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghY2FuTG9hZEFWU3lzdGVt
Q29udHJvbGxlcl9DYXJQbGF5SXNDb25uZWN0ZWRBdHRyaWJ1dGUoKSkgeworICAgICAgICBzZXRJ
c1BsYXlpbmdUb0F1dG9tb3RpdmVIZWFkVW5pdChmYWxzZSkKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHNldElzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KFtbW2dldEFWU3lzdGVt
Q29udHJvbGxlckNsYXNzKCkgc2hhcmVkQVZTeXN0ZW1Db250cm9sbGVyXSBhdHRyaWJ1dGVGb3JL
ZXk6Z2V0QVZTeXN0ZW1Db250cm9sbGVyX0NhclBsYXlJc0Nvbm5lY3RlZEF0dHJpYnV0ZSgpXSBi
b29sVmFsdWVdKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBAaW1wbGVtZW50YXRp
b24gV2ViTWVkaWFTZXNzaW9uSGVscGVyCkBAIC0yMTgsNiArMjQ1LDEwIEBAIC0gKGlkKWluaXRX
aXRoQ2FsbGJhY2s6KE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1MqKWNhbGxiYWNrCiAgICAgW2NlbnRl
ciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihhcHBsaWNhdGlvbldpbGxSZXNp
Z25BY3RpdmU6KSBuYW1lOldlYlVJQXBwbGljYXRpb25XaWxsUmVzaWduQWN0aXZlTm90aWZpY2F0
aW9uIG9iamVjdDpuaWxdOwogICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpA
c2VsZWN0b3IoYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQ6KSBuYW1lOlBBTDo6Z2V0X1VJ
S2l0X1VJQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmROb3RpZmljYXRpb24oKSBvYmplY3Q6
bmlsXTsKICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGFw
cGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kOikgbmFtZTpXZWJVSUFwcGxpY2F0aW9uRGlkRW50
ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworICAgIGlmIChjYW5Mb2FkQVZT
eXN0ZW1Db250cm9sbGVyX1NlcnZlckNvbm5lY3Rpb25EaWVkTm90aWZpY2F0aW9uKCkpCisgICAg
ICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoY2FyUGxheVNl
cnZlckRpZWQ6KSBuYW1lOmdldEFWU3lzdGVtQ29udHJvbGxlcl9TZXJ2ZXJDb25uZWN0aW9uRGll
ZE5vdGlmaWNhdGlvbigpIG9iamVjdDpuaWxdOworICAgIGlmIChjYW5Mb2FkQVZTeXN0ZW1Db250
cm9sbGVyX0NhclBsYXlJc0Nvbm5lY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpKQorICAgICAg
ICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGNhclBsYXlJc0Nv
bm5lY3RlZERpZENoYW5nZTopIG5hbWU6Z2V0QVZTeXN0ZW1Db250cm9sbGVyX0NhclBsYXlJc0Nv
bm5lY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpIG9iamVjdDpuaWxdOwogCiAgICAgLy8gTm93
IHBsYXlpbmcgd29uJ3Qgd29yayB1bmxlc3Mgd2UgdHVybiBvbiB0aGUgZGVsaXZlcnkgb2YgcmVt
b3RlIGNvbnRyb2wgZXZlbnRzLgogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWlu
X3F1ZXVlKCksIF4gewpAQCAtMjg2LDE0ICszMTcsMTQgQEAgLSAodm9pZClzdGFydE1vbml0b3Jp
bmdBaXJQbGF5Um91dGVzCiAKICAgICBMT0coTWVkaWEsICItW1dlYk1lZGlhU2Vzc2lvbkhlbHBl
ciBzdGFydE1vbml0b3JpbmdBaXJQbGF5Um91dGVzXSIpOwogCi0gICAgY2FsbE9uV2ViVGhyZWFk
T3JEaXNwYXRjaEFzeW5jT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShzZWxm
KV0oKSBtdXRhYmxlIHsKKyAgICBjYWxsT25XZWJUaHJlYWRPckRpc3BhdGNoQXN5bmNPbk1haW5U
aHJlYWQoW3Byb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZildKCkgbXV0YWJsZSB7CiAgICAg
ICAgIEFTU0VSVCghcHJvdGVjdGVkU2VsZi0+X3JvdXRlRGV0ZWN0b3IpOwogCiAgICAgICAgIGlm
IChwcm90ZWN0ZWRTZWxmLT5fY2FsbGJhY2spIHsKICAgICAgICAgICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwogICAgICAgICAgICAgcHJvdGVjdGVkU2VsZi0+X3JvdXRlRGV0ZWN0b3Ig
PSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZSb3V0ZURldGVjdG9ySW5zdGFuY2UoKSBpbml0XSk7CiAg
ICAgICAgICAgICBwcm90ZWN0ZWRTZWxmLT5fcm91dGVEZXRlY3Rvci5nZXQoKS5yb3V0ZURldGVj
dGlvbkVuYWJsZWQgPSBwcm90ZWN0ZWRTZWxmLT5fbW9uaXRvcmluZ0FpclBsYXlSb3V0ZXM7Ci0g
ICAgICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2Vy
dmVyOnByb3RlY3RlZFNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHdpcmVsZXNzUm91dGVzQXZhaWxh
YmxlRGlkQ2hhbmdlOikgbmFtZTpBVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVk
RGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpwcm90ZWN0ZWRTZWxmLT5fcm91dGVEZXRlY3Rv
ci5nZXQoKV07CisgICAgICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50
ZXJdIGFkZE9ic2VydmVyOnByb3RlY3RlZFNlbGYuZ2V0KCkgc2VsZWN0b3I6QHNlbGVjdG9yKHdp
cmVsZXNzUm91dGVzQXZhaWxhYmxlRGlkQ2hhbmdlOikgbmFtZTpBVlJvdXRlRGV0ZWN0b3JNdWx0
aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpwcm90ZWN0ZWRT
ZWxmLT5fcm91dGVEZXRlY3Rvci5nZXQoKV07CiAKICAgICAgICAgICAgIHByb3RlY3RlZFNlbGYt
Pl9jYWxsYmFjay0+ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVEaWRDaGFuZ2UoKTsKICAg
ICAgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKQEAgLTMyOCw3ICszNTksNyBAQCAt
ICh2b2lkKWludGVycnVwdGlvbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KICAgICBp
ZiAodHlwZSA9PSBBVkF1ZGlvU2Vzc2lvbkludGVycnVwdGlvblR5cGVFbmRlZCAmJiBbW1tub3Rp
ZmljYXRpb24gdXNlckluZm9dIG9iamVjdEZvcktleTpBVkF1ZGlvU2Vzc2lvbkludGVycnVwdGlv
bk9wdGlvbktleV0gdW5zaWduZWRJbnRlZ2VyVmFsdWVdID09IEFWQXVkaW9TZXNzaW9uSW50ZXJy
dXB0aW9uT3B0aW9uU2hvdWxkUmVzdW1lKQogICAgICAgICBmbGFncyA9IFBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpNYXlSZXN1bWVQbGF5aW5nOwogCi0gICAgY2FsbE9uV2ViVGhyZWFkT3JEaXNwYXRj
aEFzeW5jT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShzZWxmKSwgdHlwZSwg
ZmxhZ3NdKCkgbXV0YWJsZSB7CisgICAgY2FsbE9uV2ViVGhyZWFkT3JEaXNwYXRjaEFzeW5jT25N
YWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpLCB0eXBlLCBmbGFnc10o
KSBtdXRhYmxlIHsKICAgICAgICAgYXV0byogY2FsbGJhY2sgPSBwcm90ZWN0ZWRTZWxmLT5fY2Fs
bGJhY2s7CiAgICAgICAgIGlmICghY2FsbGJhY2spCiAgICAgICAgICAgICByZXR1cm47CkBAIC0z
NTEsNyArMzgyLDcgQEAgLSAodm9pZClhcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQ6KE5T
Tm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiAgICAgTE9HKE1lZGlhLCAiLVtXZWJNZWRpYVNl
c3Npb25IZWxwZXIgYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kXSIpOwogCiAgICAgQk9P
TCBpc1N1c3BlbmRlZFVuZGVyTG9jayA9IFtbW25vdGlmaWNhdGlvbiB1c2VySW5mb10gb2JqZWN0
Rm9yS2V5OkAiaXNTdXNwZW5kZWRVbmRlckxvY2siXSBib29sVmFsdWVdOwotICAgIGNhbGxPbldl
YlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFdURk1v
dmUoc2VsZiksIGlzU3VzcGVuZGVkVW5kZXJMb2NrXSgpIG11dGFibGUgeworICAgIGNhbGxPbldl
YlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IHJldGFp
blB0cihzZWxmKSwgaXNTdXNwZW5kZWRVbmRlckxvY2tdKCkgbXV0YWJsZSB7CiAgICAgICAgIGlm
IChhdXRvKiBjYWxsYmFjayA9IHByb3RlY3RlZFNlbGYtPl9jYWxsYmFjaykKICAgICAgICAgICAg
IGNhbGxiYWNrLT5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoaXNTdXNwZW5kZWRVbmRl
ckxvY2spOwogICAgIH0pOwpAQCAtMzY2LDcgKzM5Nyw3IEBAIC0gKHZvaWQpYXBwbGljYXRpb25E
aWRCZWNvbWVBY3RpdmU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiAKICAgICBMT0co
TWVkaWEsICItW1dlYk1lZGlhU2Vzc2lvbkhlbHBlciBhcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2
ZV0iKTsKIAotICAgIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVhZChb
cHJvdGVjdGVkU2VsZiA9IFdURk1vdmUoc2VsZildKCkgbXV0YWJsZSB7CisgICAgY2FsbE9uV2Vi
VGhyZWFkT3JEaXNwYXRjaEFzeW5jT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gcmV0YWlu
UHRyKHNlbGYpXSgpIG11dGFibGUgewogICAgICAgICBpZiAoYXV0byogY2FsbGJhY2sgPSBwcm90
ZWN0ZWRTZWxmLT5fY2FsbGJhY2spCiAgICAgICAgICAgICBjYWxsYmFjay0+YXBwbGljYXRpb25E
aWRCZWNvbWVBY3RpdmUoKTsKICAgICB9KTsKQEAgLTM4MSw3ICs0MTIsNyBAQCAtICh2b2lkKWFw
cGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24K
IAogICAgIExPRyhNZWRpYSwgIi1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGFwcGxpY2F0aW9uV2ls
bFJlc2lnbkFjdGl2ZV0iKTsKIAotICAgIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3luY09u
TWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUoc2VsZildKCkgbXV0YWJsZSB7Cisg
ICAgY2FsbE9uV2ViVGhyZWFkT3JEaXNwYXRjaEFzeW5jT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRT
ZWxmID0gcmV0YWluUHRyKHNlbGYpXSgpIG11dGFibGUgewogICAgICAgICBpZiAoYXV0byogY2Fs
bGJhY2sgPSBwcm90ZWN0ZWRTZWxmLT5fY2FsbGJhY2spCiAgICAgICAgICAgICBjYWxsYmFjay0+
YXBwbGljYXRpb25XaWxsQmVjb21lSW5hY3RpdmUoKTsKICAgICB9KTsKQEAgLTM5Niw3ICs0Mjcs
NyBAQCAtICh2b2lkKXdpcmVsZXNzUm91dGVzQXZhaWxhYmxlRGlkQ2hhbmdlOihOU05vdGlmaWNh
dGlvbiAqKW5vdGlmaWNhdGlvbgogCiAgICAgTE9HKE1lZGlhLCAiLVtXZWJNZWRpYVNlc3Npb25I
ZWxwZXIgd2lyZWxlc3NSb3V0ZXNBdmFpbGFibGVEaWRDaGFuZ2VdIik7CiAKLSAgICBjYWxsT25X
ZWJUaHJlYWRPckRpc3BhdGNoQXN5bmNPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSBXVEZN
b3ZlKHNlbGYpXSgpIG11dGFibGUgeworICAgIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3lu
Y09uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0oKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKGF1dG8qIGNhbGxiYWNrID0gcHJvdGVjdGVkU2VsZi0+X2NhbGxiYWNr
KQogICAgICAgICAgICAgY2FsbGJhY2stPmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlk
Q2hhbmdlKCk7CiAgICAgfSk7CkBAIC00MTAsMTEgKzQ0MSw0MiBAQCAtICh2b2lkKWFwcGxpY2F0
aW9uRGlkRW50ZXJCYWNrZ3JvdW5kOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogICAg
IExPRyhNZWRpYSwgIi1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGFwcGxpY2F0aW9uRGlkRW50ZXJC
YWNrZ3JvdW5kXSIpOwogCiAgICAgQk9PTCBpc1N1c3BlbmRlZFVuZGVyTG9jayA9IFtbW25vdGlm
aWNhdGlvbiB1c2VySW5mb10gb2JqZWN0Rm9yS2V5OkAiaXNTdXNwZW5kZWRVbmRlckxvY2siXSBi
b29sVmFsdWVdOwotICAgIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVh
ZChbcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUoc2VsZiksIGlzU3VzcGVuZGVkVW5kZXJMb2NrXSgp
IG11dGFibGUgeworICAgIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVh
ZChbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgaXNTdXNwZW5kZWRVbmRlckxvY2td
KCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChhdXRvKiBjYWxsYmFjayA9IHByb3RlY3RlZFNlbGYt
Pl9jYWxsYmFjaykKICAgICAgICAgICAgIGNhbGxiYWNrLT5hcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZChpc1N1c3BlbmRlZFVuZGVyTG9jayk7CiAgICAgfSk7CiB9CisKKy0gKHZvaWQpY2Fy
UGxheVNlcnZlckRpZWQ6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgaWYg
KCFfY2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIExPRyhNZWRpYSwgIi1bV2ViTWVk
aWFTZXNzaW9uSGVscGVyIGNhclBsYXlTZXJ2ZXJEaWVkOl0iKTsKKyAgICBVTlVTRURfUEFSQU0o
bm90aWZpY2F0aW9uKTsKKyAgICBjYWxsT25XZWJUaHJlYWRPckRpc3BhdGNoQXN5bmNPbk1haW5U
aHJlYWQoW3Byb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZildKCkgbXV0YWJsZSB7CisgICAg
ICAgIGlmIChhdXRvKiBjYWxsYmFjayA9IHByb3RlY3RlZFNlbGYtPl9jYWxsYmFjaykKKyAgICAg
ICAgICAgIGNhbGxiYWNrLT5jYXJQbGF5U2VydmVyRGllZCgpOworICAgIH0pOworfQorCistICh2
b2lkKWNhclBsYXlJc0Nvbm5lY3RlZERpZENoYW5nZTooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KK3sKKyAgICBpZiAoIV9jYWxsYmFjaykKKyAgICAgICAgcmV0dXJuOworCisgICAgT3B0
aW9uYWw8Ym9vbD4gY2FyUGxheUlzQ29ubmVjdGVkOworICAgIGlmIChub3RpZmljYXRpb24gJiYg
Y2FuTG9hZEFWU3lzdGVtQ29udHJvbGxlcl9DYXJQbGF5SXNDb25uZWN0ZWROb3RpZmljYXRpb25Q
YXJhbWV0ZXIoKSkgeworICAgICAgICBOU051bWJlciAqbnNDYXJQbGF5SXNDb25uZWN0ZWQgPSBb
W25vdGlmaWNhdGlvbiB1c2VySW5mb10gdmFsdWVGb3JLZXk6Z2V0QVZTeXN0ZW1Db250cm9sbGVy
X0NhclBsYXlJc0Nvbm5lY3RlZE5vdGlmaWNhdGlvblBhcmFtZXRlcigpXTsKKyAgICAgICAgaWYg
KG5zQ2FyUGxheUlzQ29ubmVjdGVkKQorICAgICAgICAgICAgY2FyUGxheUlzQ29ubmVjdGVkID0g
W25zQ2FyUGxheUlzQ29ubmVjdGVkIGJvb2xWYWx1ZV07CisgICAgfQorCisgICAgY2FsbE9uV2Vi
VGhyZWFkT3JEaXNwYXRjaEFzeW5jT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gcmV0YWlu
UHRyKHNlbGYpLCBjYXJQbGF5SXNDb25uZWN0ZWQgPSBXVEZNb3ZlKGNhclBsYXlJc0Nvbm5lY3Rl
ZCldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChhdXRvKiBjYWxsYmFjayA9IHByb3RlY3RlZFNl
bGYtPl9jYWxsYmFjaykKKyAgICAgICAgICAgIGNhbGxiYWNrLT51cGRhdGVDYXJQbGF5SXNDb25u
ZWN0ZWQoV1RGTW92ZShjYXJQbGF5SXNDb25uZWN0ZWQpKTsKKyAgICB9KTsKK30KIEBlbmQKIAog
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKaW5kZXggNTEwZWYwZDMxYjZlYTQyMGU0YWIwOWJmZTgxZjQxNWEzMThmMmVmZS4uMjcz
MGRmZWE0YjBiN2I2ZjA4ZWU4ZjkzYTQ5ZGJmYjM2Mjk0ODE3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcApAQCAtNDkyLDYgKzQ5Miw3IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNl
dFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UmIHBhZ2UpCiAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVzZXRSZXN0cmljdGlvbnMoKTsKICAgICBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXRXaWxsSWdub3JlU3lzdGVt
SW50ZXJydXB0aW9ucyh0cnVlKTsKICNlbmRpZgorICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6c2hhcmVkTWFuYWdlcigpLnNldElzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KGZh
bHNlKTsKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAgQVhPYmplY3RDYWNoZTo6c2V0RW5o
YW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShmYWxzZSk7CiAgICAgQVhPYmplY3RDYWNo
ZTo6ZGlzYWJsZUFjY2Vzc2liaWxpdHkoKTsKQEAgLTUwNjcsNCArNTA2OCw5IEBAIHZvaWQgSW50
ZXJuYWxzOjpzZXRYSFJNYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcoWE1M
SHR0cFJlcXVlc3QmIHJlCiAgICAgcmVxdWVzdC5zZXRNYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2Vz
dHVyZUZvcndhcmRpbmcoaW50ZXJ2YWwpOwogfQogCit2b2lkIEludGVybmFsczo6c2V0SXNQbGF5
aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQoYm9vbCBpc1BsYXlpbmcpCit7CisgICAgUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuc2V0SXNQbGF5aW5nVG9BdXRvbW90
aXZlSGVhZFVuaXQoaXNQbGF5aW5nKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggM2FjNjZmNzI1OTgwMzBjMDg5ZjcxMjAyYjQ0
ODEzMDgzNzlmNzk0Ni4uNDZkNDI2YTEwYzllN2Q1NmI3OWU5YTA5YmJlYzg2MDcxZjVmNDEzMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC04MjMsNiArODIzLDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzZXRYSFJNYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRp
bmcoWE1MSHR0cFJlcXVlc3QmLCBkb3VibGUpOwogCisgICAgdm9pZCBzZXRJc1BsYXlpbmdUb0F1
dG9tb3RpdmVIZWFkVW5pdChib29sKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5h
bHMoRG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggY2EyYmM1NDViM2UwNGE3ODY4YzNk
NDg5NDBhZTA3NzI0OWQxNDdhNy4uM2E1OWI0ZDdmNWViOWM3MGZjMzIxMzQzZDdjNTMwY2QyNWVi
MjhlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNzUzLDQgKzc1Myw2
IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAgIHZvaWQgdGVzdERpY3Rpb25hcnlMb2dn
aW5nKCk7CiAKICAgICB2b2lkIHNldFhIUk1heGltdW1JbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9y
d2FyZGluZyhYTUxIdHRwUmVxdWVzdCB4aHIsIGRvdWJsZSBpbnRlcnZhbCk7CisKKyAgICB2b2lk
IHNldElzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KGJvb2xlYW4gdmFsdWUpOwogfTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWlzcGxheWluZ3RvYXV0b21vdGl2ZWhl
YWR1bml0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWlzcGxheWluZ3Rv
YXV0b21vdGl2ZWhlYWR1bml0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjNlNWVkZjQyZGI5
NzU2ZTk3ODU5MWYzZmJhNjUyMzlkZGVlMjZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvdmlkZW8taXNwbGF5aW5ndG9hdXRvbW90aXZlaGVhZHVuaXQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTUgQEAKKworUlVOKHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVv
IiwgImNvbnRlbnQvdGVzdCIpKQorRVZFTlQoY2FucGxheXRocm91Z2gpCitSVU4odmlkZW8ucGxh
eSgpKQorRVZFTlQocGxheWluZykKK1JVTihpbnRlcm5hbHMuc2V0TWVkaWFTZXNzaW9uUmVzdHJp
Y3Rpb25zKCJ2aWRlb2F1ZGlvIiwgInN1c3BlbmRlZHVuZGVybG9ja3BsYXliYWNrcmVzdHJpY3Rl
ZCIpKQorUlVOKGludGVybmFscy5hcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCh0cnVlKSkK
K0VWRU5UKHBhdXNlKQorUlVOKGludGVybmFscy5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91
bmQodHJ1ZSkpCitFVkVOVChwbGF5aW5nKQorUlVOKGludGVybmFscy5zZXRJc1BsYXlpbmdUb0F1
dG9tb3RpdmVIZWFkVW5pdCh0cnVlKSkKK1JVTihpbnRlcm5hbHMuYXBwbGljYXRpb25EaWRFbnRl
ckJhY2tncm91bmQodHJ1ZSkpCitFWFBFQ1RFRCAodmlkZW8ucGF1c2VkID09ICdmYWxzZScpIE9L
CitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1pc3Bs
YXlpbmd0b2F1dG9tb3RpdmVoZWFkdW5pdC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
aXNwbGF5aW5ndG9hdXRvbW90aXZlaGVhZHVuaXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTA1M2Y5MDQx
YWE2NWM3YTU1ZWU2M2JlMjk5ZTE3NzNkOTUyMjIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8taXNwbGF5aW5ndG9hdXRvbW90aXZlaGVhZHVuaXQuaHRtbApAQCAt
MCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxl
PnZpZGVvLWlzcGxheWluZ3RvYXV0b21vdGl2ZWhlYWR1bml0PC90aXRsZT4KKyAgICA8c2NyaXB0
IHNyYz0idmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Im1lZGlhLWZp
bGUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9PiB7CisgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsK
KworICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgImNvbnRl
bnQvdGVzdCIpJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3IodmlkZW8sICdjYW5wbGF5dGhyb3Vn
aCcpOworCisgICAgICAgIHJ1bldpdGhLZXlEb3duKCd2aWRlby5wbGF5KCknKTsKKyAgICAgICAg
YXdhaXQgd2FpdEZvcih2aWRlbywgJ3BsYXlpbmcnKTsKKworICAgICAgICBydW4oJ2ludGVybmFs
cy5zZXRNZWRpYVNlc3Npb25SZXN0cmljdGlvbnMoInZpZGVvYXVkaW8iLCAic3VzcGVuZGVkdW5k
ZXJsb2NrcGxheWJhY2tyZXN0cmljdGVkIiknKQorICAgICAgICBydW4oJ2ludGVybmFscy5hcHBs
aWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCh0cnVlKScpOworICAgICAgICBhd2FpdCB3YWl0Rm9y
KHZpZGVvLCAncGF1c2UnKTsKKworICAgICAgICBydW4oJ2ludGVybmFscy5hcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQodHJ1ZSknKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcih2aWRlbywg
J3BsYXlpbmcnKTsKKworICAgICAgICBydW4oJ2ludGVybmFscy5zZXRJc1BsYXlpbmdUb0F1dG9t
b3RpdmVIZWFkVW5pdCh0cnVlKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5hcHBsaWNhdGlv
bkRpZEVudGVyQmFja2dyb3VuZCh0cnVlKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVv
LnBhdXNlZCcsIGZhbHNlKTsKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0pOworICAgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHZpZGVvIGNvbnRyb2xzPjwvdmlkZW8+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="commit-queue"
          id="386829"
          type_id="3"
          status="+"
          setter="jer.noble"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370945</attachid>
            <date>2019-05-30 08:50:41 -0700</date>
            <delta_ts>2019-05-30 09:29:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-198345-20190530085041.patch</filename>
            <type>text/plain</type>
            <size>21017</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1ODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGVmOGZmNDUyZjU2YWZh
OTgzNWQ1MmUyZTc0OGE2ZDg3ZWQ5NWIwYy4uYjg4YWZhOWY5NmE3NDQ3NTViZDgxYmJhNGRjNmEz
M2I0M2QyMWQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE5LTA1LTMwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFZpZGVvIHBsYXliYWNrIGlu
IFNhZmFyaSBzaG91bGQgY29udGludWUgd2hlbiBDYXJQbGF5IGlzIHBsdWdnZWQgaW4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODM0NQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDU1MDU3NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBD
YXJsc29uLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3ZpZGVvLWlzcGxheWluZ3RvYXV0b21vdGl2
ZWhlYWR1bml0Lmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzaG91bGRPdmVycmlkZUJhY2tncm91
bmRQbGF5YmFja1Jlc3RyaWN0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRJc1BsYXlpbmdUb0F1dG9tb3RpdmVIZWFkVW5pdCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OmlzUGxheWlu
Z1RvQXV0b21vdGl2ZUhlYWRVbml0IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9p
b3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lv
cy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uTWFuYWdlcmlPUzo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpjYXJQbGF5U2VydmVyRGllZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjp1cGRhdGVDYXJQbGF5SXNDb25uZWN0ZWQp
OgorICAgICAgICAoLVtXZWJNZWRpYVNlc3Npb25IZWxwZXIgaW5pdFdpdGhDYWxsYmFjazpdKToK
KyAgICAgICAgKC1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIHN0YXJ0TW9uaXRvcmluZ0FpclBsYXlS
b3V0ZXNdKToKKyAgICAgICAgKC1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGludGVycnVwdGlvbjpd
KToKKyAgICAgICAgKC1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGFwcGxpY2F0aW9uV2lsbEVudGVy
Rm9yZWdyb3VuZDpdKToKKyAgICAgICAgKC1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGFwcGxpY2F0
aW9uRGlkQmVjb21lQWN0aXZlOl0pOgorICAgICAgICAoLVtXZWJNZWRpYVNlc3Npb25IZWxwZXIg
YXBwbGljYXRpb25XaWxsUmVzaWduQWN0aXZlOl0pOgorICAgICAgICAoLVtXZWJNZWRpYVNlc3Np
b25IZWxwZXIgd2lyZWxlc3NSb3V0ZXNBdmFpbGFibGVEaWRDaGFuZ2U6XSk6CisgICAgICAgICgt
W1dlYk1lZGlhU2Vzc2lvbkhlbHBlciBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZDpdKToK
KyAgICAgICAgKC1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGNhclBsYXlTZXJ2ZXJEaWVkOl0pOgor
ICAgICAgICAoLVtXZWJNZWRpYVNlc3Npb25IZWxwZXIgY2FyUGxheUlzQ29ubmVjdGVkRGlkQ2hh
bmdlOl0pOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnNldElzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoK
KwogMjAxOS0wNS0yOSAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtXSExTTF0gUGFyc2luZyBhbmQgbGV4aW5nIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IGlz
IHNsb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGYwMGQ4
MWNhMDg4OWJiNDkyN2YzNDczYTJiNTQwMWVjOGVlOGE0YjUuLjc1ZjE5MzgzYWQ2MTQ1OTM2ZDRk
NzU3ZjhmYmQzNWZjOTk0OGE4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcApAQCAtNzcxNSw2ICs3NzE1LDEwIEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6c2hv
dWxkT3ZlcnJpZGVCYWNrZ3JvdW5kUGxheWJhY2tSZXN0cmljdGlvbihQbGF0Zm9ybU1lZGlhCiAg
ICAgICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAicmV0dXJuaW5nIHRydWUgYmVjYXVz
ZSBpc1BsYXlpbmdUb0V4dGVybmFsVGFyZ2V0KCkgaXMgdHJ1ZSIpOwogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6c2hhcmVkTWFuYWdlcigpLmlzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KCkpIHsK
KyAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJyZXR1cm5pbmcgdHJ1ZSBiZWNh
dXNlIGlzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KCkgaXMgdHJ1ZSIpOworICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVu
TW9kZSAmIFZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0dXJlSW5QaWN0dXJlKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCkBAIC03NzI2LDYgKzc3MzAsMTAgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojpz
aG91bGRPdmVycmlkZUJhY2tncm91bmRQbGF5YmFja1Jlc3RyaWN0aW9uKFBsYXRmb3JtTWVkaWEK
ICAgICAgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJyZXR1cm5pbmcgdHJ1ZSBiZWNh
dXNlIGlzUGxheWluZ1RvRXh0ZXJuYWxUYXJnZXQoKSBpcyB0cnVlIik7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorICAgICAgICBpZiAoUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaXNQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQoKSkg
eworICAgICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInJldHVybmluZyB0cnVlIGJl
Y2F1c2UgaXNQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQoKSBpcyB0cnVlIik7CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCA4MzcwZmIwYzQ4ZmU0NmMxYzIzOWJjNDBm
MjlkNzkwZmIwYTdmNDE1Li5iNDJjMjE0OGI4ZDMxN2ExYjdiOTM4Zjk1N2MxNTQ1MTY3YmQ1YjRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Bs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTM5MSw2ICszOTEsMTQgQEAgdm9pZCBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnByb2Nlc3NEaWRSZXN1bWUoKQogI2VuZGlmCiB9
CiAKK3ZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXRJc1BsYXlpbmdUb0F1dG9t
b3RpdmVIZWFkVW5pdChib29sIGlzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KQoreworICAg
IGlmIChpc1BsYXlpbmdUb0F1dG9tb3RpdmVIZWFkVW5pdCA9PSBtX2lzUGxheWluZ1RvQXV0b21v
dGl2ZUhlYWRVbml0KQorICAgICAgICByZXR1cm47CisKKyAgICBBTFdBWVNfTE9HKExPR0lERU5U
SUZJRVIsIGlzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KTsKKyAgICBtX2lzUGxheWluZ1Rv
QXV0b21vdGl2ZUhlYWRVbml0ID0gaXNQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQ7Cit9CiAK
IHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uSXNQbGF5aW5nVG9XaXJl
bGVzc1BsYXliYWNrVGFyZ2V0Q2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMzY4NTMwN2I3MzA4ZDBlMzkwOGNhMzZlZjVm
YTEzYjcyODUxMjE3OC4uYjkxMTllMDlmNTJhYzhkZTY0NjI3NGJiYmUxZTgzOGQ1NWFhZjcxYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKQEAgLTEyOSw2ICsxMjksOSBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNlc3Npb25Jc1BsYXlpbmdUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXRDaGFuZ2VkKFBs
YXRmb3JtTWVkaWFTZXNzaW9uJik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElzUGxh
eWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KGJvb2wpOworICAgIGJvb2wgaXNQbGF5aW5nVG9BdXRv
bW90aXZlSGVhZFVuaXQoKSBjb25zdCB7IHJldHVybiBtX2lzUGxheWluZ1RvQXV0b21vdGl2ZUhl
YWRVbml0OyB9CisKICAgICB2b2lkIGZvckVhY2hNYXRjaGluZ1Nlc3Npb24oY29uc3QgRnVuY3Rp
b248Ym9vbChjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpPiYgcHJlZGljYXRlLCBjb25zdCBG
dW5jdGlvbjx2b2lkKFBsYXRmb3JtTWVkaWFTZXNzaW9uJik+JiBtYXRjaGluZ0NhbGxiYWNrKTsK
IAogcHJvdGVjdGVkOgpAQCAtMTg4LDYgKzE5MSw3IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBi
b29sIG1faXNBcHBsaWNhdGlvbkluQmFja2dyb3VuZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3dp
bGxJZ25vcmVTeXN0ZW1JbnRlcnJ1cHRpb25zIHsgZmFsc2UgfTsKICAgICBib29sIG1fcHJvY2Vz
c0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNQbGF5aW5nVG9BdXRvbW90aXZl
SGVhZFVuaXQgeyBmYWxzZSB9OwogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pCiAgICAgYm9vbCBt
X2JlY2FtZUFjdGl2ZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaAppbmRleCBlYjAxZDZm
Mzc5ZTdhNThiYTU0OTMwZWE1NmZmYWU1ZDBiODhhOGVjLi40NzlkYTdhYmE1ZDdkMzNmYTdlZGM4
NWU2ODc1YTMzOWU2NjU5OGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKQEAgLTQ3LDYgKzQ3LDgg
QEAgcHVibGljOgogCiAgICAgdm9pZCBleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENo
YW5nZSgpOwogICAgIGJvb2wgaGFzV2lyZWxlc3NUYXJnZXRzQXZhaWxhYmxlKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBjYXJQbGF5U2VydmVyRGllZCgpOworICAgIHZvaWQgdXBkYXRlQ2FyUGxheUlz
Q29ubmVjdGVkKE9wdGlvbmFsPGJvb2w+JiYpOwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFz
cyBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCmluZGV4
IDAwNDM5MDRhNTMwMjVlNDQ1MDAxNWFmMDA2OGI2M2M1MzI0NDc4NTMuLjlkNGVlZDY4YzJhYThi
NWQ1MGVmNWE1MzE0YjNjZjA1MTg2NzU1YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCkBAIC01
Niw2ICs1NiwxMCBAQCBXRUJDT1JFX0VYUE9SVCBOU1N0cmluZyogV2ViVUlBcHBsaWNhdGlvbkRp
ZEVudGVyQmFja2dyb3VuZE5vdGlmaWNhdGlvbiA9IEAiV2ViVQogU09GVF9MSU5LX1BSSVZBVEVf
RlJBTUVXT1JLX09QVElPTkFMKENlbGVzdGlhbCkKIFNPRlRfTElOS19DTEFTU19PUFRJT05BTChD
ZWxlc3RpYWwsIEFWU3lzdGVtQ29udHJvbGxlcikKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJ
TChDZWxlc3RpYWwsIEFWU3lzdGVtQ29udHJvbGxlcl9QSURUb0luaGVyaXRBcHBsaWNhdGlvblN0
YXRlRnJvbSwgTlNTdHJpbmcgKikKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChDZWxlc3Rp
YWwsIEFWU3lzdGVtQ29udHJvbGxlcl9DYXJQbGF5SXNDb25uZWN0ZWRBdHRyaWJ1dGUsIE5TU3Ry
aW5nICopCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwoQ2VsZXN0aWFsLCBBVlN5c3RlbUNv
bnRyb2xsZXJfQ2FyUGxheUlzQ29ubmVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uLCBOU1N0cmlu
ZyAqKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKENlbGVzdGlhbCwgQVZTeXN0ZW1Db250
cm9sbGVyX0NhclBsYXlJc0Nvbm5lY3RlZE5vdGlmaWNhdGlvblBhcmFtZXRlciwgTlNTdHJpbmcg
KikKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChDZWxlc3RpYWwsIEFWU3lzdGVtQ29udHJv
bGxlcl9TZXJ2ZXJDb25uZWN0aW9uRGllZE5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKikKICNlbmRp
ZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTEwOSw2ICsxMTMsOCBAQCBNZWRpYVNl
c3Npb25NYW5hZ2VyaU9TOjpNZWRpYVNlc3Npb25NYW5hZ2VyaU9TKCkKICAgICBtX29iamNPYnNl
cnZlciA9IGFkb3B0TlMoW1tXZWJNZWRpYVNlc3Npb25IZWxwZXIgYWxsb2NdIGluaXRXaXRoQ2Fs
bGJhY2s6dGhpc10pOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICByZXNldFJl
c3RyaWN0aW9ucygpOworCisgICAgdXBkYXRlQ2FyUGxheUlzQ29ubmVjdGVkKFdURjo6bnVsbG9w
dCk7CiB9CiAKIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6On5NZWRpYVNlc3Npb25NYW5hZ2VyaU9T
KCkKQEAgLTE5NCw2ICsyMDAsMjcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpleHRl
cm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZSgpCiAgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwogfQogCit2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OmNhclBsYXlTZXJ2
ZXJEaWVkKCkKK3sKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOworICAgIHVwZGF0ZUNh
clBsYXlJc0Nvbm5lY3RlZChXVEY6Om51bGxvcHQpOworfQorCit2b2lkIE1lZGlhU2Vzc2lvbk1h
bmFnZXJpT1M6OnVwZGF0ZUNhclBsYXlJc0Nvbm5lY3RlZChPcHRpb25hbDxib29sPiYmIGNhclBs
YXlJc0Nvbm5lY3RlZCkKK3sKKyAgICBpZiAoY2FyUGxheUlzQ29ubmVjdGVkKSB7CisgICAgICAg
IHNldElzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KGNhclBsYXlJc0Nvbm5lY3RlZC52YWx1
ZSgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghY2FuTG9hZEFWU3lzdGVt
Q29udHJvbGxlcl9DYXJQbGF5SXNDb25uZWN0ZWRBdHRyaWJ1dGUoKSkgeworICAgICAgICBzZXRJ
c1BsYXlpbmdUb0F1dG9tb3RpdmVIZWFkVW5pdChmYWxzZSkKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHNldElzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KFtbW2dldEFWU3lzdGVt
Q29udHJvbGxlckNsYXNzKCkgc2hhcmVkQVZTeXN0ZW1Db250cm9sbGVyXSBhdHRyaWJ1dGVGb3JL
ZXk6Z2V0QVZTeXN0ZW1Db250cm9sbGVyX0NhclBsYXlJc0Nvbm5lY3RlZEF0dHJpYnV0ZSgpXSBi
b29sVmFsdWVdKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBAaW1wbGVtZW50YXRp
b24gV2ViTWVkaWFTZXNzaW9uSGVscGVyCkBAIC0yMTgsNiArMjQ1LDEwIEBAIC0gKGlkKWluaXRX
aXRoQ2FsbGJhY2s6KE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1MqKWNhbGxiYWNrCiAgICAgW2NlbnRl
ciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihhcHBsaWNhdGlvbldpbGxSZXNp
Z25BY3RpdmU6KSBuYW1lOldlYlVJQXBwbGljYXRpb25XaWxsUmVzaWduQWN0aXZlTm90aWZpY2F0
aW9uIG9iamVjdDpuaWxdOwogICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpA
c2VsZWN0b3IoYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQ6KSBuYW1lOlBBTDo6Z2V0X1VJ
S2l0X1VJQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmROb3RpZmljYXRpb24oKSBvYmplY3Q6
bmlsXTsKICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGFw
cGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kOikgbmFtZTpXZWJVSUFwcGxpY2F0aW9uRGlkRW50
ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworICAgIGlmIChjYW5Mb2FkQVZT
eXN0ZW1Db250cm9sbGVyX1NlcnZlckNvbm5lY3Rpb25EaWVkTm90aWZpY2F0aW9uKCkpCisgICAg
ICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoY2FyUGxheVNl
cnZlckRpZWQ6KSBuYW1lOmdldEFWU3lzdGVtQ29udHJvbGxlcl9TZXJ2ZXJDb25uZWN0aW9uRGll
ZE5vdGlmaWNhdGlvbigpIG9iamVjdDpuaWxdOworICAgIGlmIChjYW5Mb2FkQVZTeXN0ZW1Db250
cm9sbGVyX0NhclBsYXlJc0Nvbm5lY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpKQorICAgICAg
ICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGNhclBsYXlJc0Nv
bm5lY3RlZERpZENoYW5nZTopIG5hbWU6Z2V0QVZTeXN0ZW1Db250cm9sbGVyX0NhclBsYXlJc0Nv
bm5lY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpIG9iamVjdDpuaWxdOwogCiAgICAgLy8gTm93
IHBsYXlpbmcgd29uJ3Qgd29yayB1bmxlc3Mgd2UgdHVybiBvbiB0aGUgZGVsaXZlcnkgb2YgcmVt
b3RlIGNvbnRyb2wgZXZlbnRzLgogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWlu
X3F1ZXVlKCksIF4gewpAQCAtMjg2LDE0ICszMTcsMTQgQEAgLSAodm9pZClzdGFydE1vbml0b3Jp
bmdBaXJQbGF5Um91dGVzCiAKICAgICBMT0coTWVkaWEsICItW1dlYk1lZGlhU2Vzc2lvbkhlbHBl
ciBzdGFydE1vbml0b3JpbmdBaXJQbGF5Um91dGVzXSIpOwogCi0gICAgY2FsbE9uV2ViVGhyZWFk
T3JEaXNwYXRjaEFzeW5jT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShzZWxm
KV0oKSBtdXRhYmxlIHsKKyAgICBjYWxsT25XZWJUaHJlYWRPckRpc3BhdGNoQXN5bmNPbk1haW5U
aHJlYWQoW3Byb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZildKCkgbXV0YWJsZSB7CiAgICAg
ICAgIEFTU0VSVCghcHJvdGVjdGVkU2VsZi0+X3JvdXRlRGV0ZWN0b3IpOwogCiAgICAgICAgIGlm
IChwcm90ZWN0ZWRTZWxmLT5fY2FsbGJhY2spIHsKICAgICAgICAgICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwogICAgICAgICAgICAgcHJvdGVjdGVkU2VsZi0+X3JvdXRlRGV0ZWN0b3Ig
PSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZSb3V0ZURldGVjdG9ySW5zdGFuY2UoKSBpbml0XSk7CiAg
ICAgICAgICAgICBwcm90ZWN0ZWRTZWxmLT5fcm91dGVEZXRlY3Rvci5nZXQoKS5yb3V0ZURldGVj
dGlvbkVuYWJsZWQgPSBwcm90ZWN0ZWRTZWxmLT5fbW9uaXRvcmluZ0FpclBsYXlSb3V0ZXM7Ci0g
ICAgICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2Vy
dmVyOnByb3RlY3RlZFNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKHdpcmVsZXNzUm91dGVzQXZhaWxh
YmxlRGlkQ2hhbmdlOikgbmFtZTpBVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVk
RGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpwcm90ZWN0ZWRTZWxmLT5fcm91dGVEZXRlY3Rv
ci5nZXQoKV07CisgICAgICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50
ZXJdIGFkZE9ic2VydmVyOnByb3RlY3RlZFNlbGYuZ2V0KCkgc2VsZWN0b3I6QHNlbGVjdG9yKHdp
cmVsZXNzUm91dGVzQXZhaWxhYmxlRGlkQ2hhbmdlOikgbmFtZTpBVlJvdXRlRGV0ZWN0b3JNdWx0
aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpwcm90ZWN0ZWRT
ZWxmLT5fcm91dGVEZXRlY3Rvci5nZXQoKV07CiAKICAgICAgICAgICAgIHByb3RlY3RlZFNlbGYt
Pl9jYWxsYmFjay0+ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVEaWRDaGFuZ2UoKTsKICAg
ICAgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKQEAgLTMyOCw3ICszNTksNyBAQCAt
ICh2b2lkKWludGVycnVwdGlvbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KICAgICBp
ZiAodHlwZSA9PSBBVkF1ZGlvU2Vzc2lvbkludGVycnVwdGlvblR5cGVFbmRlZCAmJiBbW1tub3Rp
ZmljYXRpb24gdXNlckluZm9dIG9iamVjdEZvcktleTpBVkF1ZGlvU2Vzc2lvbkludGVycnVwdGlv
bk9wdGlvbktleV0gdW5zaWduZWRJbnRlZ2VyVmFsdWVdID09IEFWQXVkaW9TZXNzaW9uSW50ZXJy
dXB0aW9uT3B0aW9uU2hvdWxkUmVzdW1lKQogICAgICAgICBmbGFncyA9IFBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpNYXlSZXN1bWVQbGF5aW5nOwogCi0gICAgY2FsbE9uV2ViVGhyZWFkT3JEaXNwYXRj
aEFzeW5jT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gV1RGTW92ZShzZWxmKSwgdHlwZSwg
ZmxhZ3NdKCkgbXV0YWJsZSB7CisgICAgY2FsbE9uV2ViVGhyZWFkT3JEaXNwYXRjaEFzeW5jT25N
YWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpLCB0eXBlLCBmbGFnc10o
KSBtdXRhYmxlIHsKICAgICAgICAgYXV0byogY2FsbGJhY2sgPSBwcm90ZWN0ZWRTZWxmLT5fY2Fs
bGJhY2s7CiAgICAgICAgIGlmICghY2FsbGJhY2spCiAgICAgICAgICAgICByZXR1cm47CkBAIC0z
NTEsNyArMzgyLDcgQEAgLSAodm9pZClhcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQ6KE5T
Tm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiAgICAgTE9HKE1lZGlhLCAiLVtXZWJNZWRpYVNl
c3Npb25IZWxwZXIgYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kXSIpOwogCiAgICAgQk9P
TCBpc1N1c3BlbmRlZFVuZGVyTG9jayA9IFtbW25vdGlmaWNhdGlvbiB1c2VySW5mb10gb2JqZWN0
Rm9yS2V5OkAiaXNTdXNwZW5kZWRVbmRlckxvY2siXSBib29sVmFsdWVdOwotICAgIGNhbGxPbldl
YlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFdURk1v
dmUoc2VsZiksIGlzU3VzcGVuZGVkVW5kZXJMb2NrXSgpIG11dGFibGUgeworICAgIGNhbGxPbldl
YlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IHJldGFp
blB0cihzZWxmKSwgaXNTdXNwZW5kZWRVbmRlckxvY2tdKCkgbXV0YWJsZSB7CiAgICAgICAgIGlm
IChhdXRvKiBjYWxsYmFjayA9IHByb3RlY3RlZFNlbGYtPl9jYWxsYmFjaykKICAgICAgICAgICAg
IGNhbGxiYWNrLT5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoaXNTdXNwZW5kZWRVbmRl
ckxvY2spOwogICAgIH0pOwpAQCAtMzY2LDcgKzM5Nyw3IEBAIC0gKHZvaWQpYXBwbGljYXRpb25E
aWRCZWNvbWVBY3RpdmU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiAKICAgICBMT0co
TWVkaWEsICItW1dlYk1lZGlhU2Vzc2lvbkhlbHBlciBhcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2
ZV0iKTsKIAotICAgIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVhZChb
cHJvdGVjdGVkU2VsZiA9IFdURk1vdmUoc2VsZildKCkgbXV0YWJsZSB7CisgICAgY2FsbE9uV2Vi
VGhyZWFkT3JEaXNwYXRjaEFzeW5jT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gcmV0YWlu
UHRyKHNlbGYpXSgpIG11dGFibGUgewogICAgICAgICBpZiAoYXV0byogY2FsbGJhY2sgPSBwcm90
ZWN0ZWRTZWxmLT5fY2FsbGJhY2spCiAgICAgICAgICAgICBjYWxsYmFjay0+YXBwbGljYXRpb25E
aWRCZWNvbWVBY3RpdmUoKTsKICAgICB9KTsKQEAgLTM4MSw3ICs0MTIsNyBAQCAtICh2b2lkKWFw
cGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24K
IAogICAgIExPRyhNZWRpYSwgIi1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGFwcGxpY2F0aW9uV2ls
bFJlc2lnbkFjdGl2ZV0iKTsKIAotICAgIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3luY09u
TWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUoc2VsZildKCkgbXV0YWJsZSB7Cisg
ICAgY2FsbE9uV2ViVGhyZWFkT3JEaXNwYXRjaEFzeW5jT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRT
ZWxmID0gcmV0YWluUHRyKHNlbGYpXSgpIG11dGFibGUgewogICAgICAgICBpZiAoYXV0byogY2Fs
bGJhY2sgPSBwcm90ZWN0ZWRTZWxmLT5fY2FsbGJhY2spCiAgICAgICAgICAgICBjYWxsYmFjay0+
YXBwbGljYXRpb25XaWxsQmVjb21lSW5hY3RpdmUoKTsKICAgICB9KTsKQEAgLTM5Niw3ICs0Mjcs
NyBAQCAtICh2b2lkKXdpcmVsZXNzUm91dGVzQXZhaWxhYmxlRGlkQ2hhbmdlOihOU05vdGlmaWNh
dGlvbiAqKW5vdGlmaWNhdGlvbgogCiAgICAgTE9HKE1lZGlhLCAiLVtXZWJNZWRpYVNlc3Npb25I
ZWxwZXIgd2lyZWxlc3NSb3V0ZXNBdmFpbGFibGVEaWRDaGFuZ2VdIik7CiAKLSAgICBjYWxsT25X
ZWJUaHJlYWRPckRpc3BhdGNoQXN5bmNPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSBXVEZN
b3ZlKHNlbGYpXSgpIG11dGFibGUgeworICAgIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3lu
Y09uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0oKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKGF1dG8qIGNhbGxiYWNrID0gcHJvdGVjdGVkU2VsZi0+X2NhbGxiYWNr
KQogICAgICAgICAgICAgY2FsbGJhY2stPmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlk
Q2hhbmdlKCk7CiAgICAgfSk7CkBAIC00MTAsMTEgKzQ0MSw0MiBAQCAtICh2b2lkKWFwcGxpY2F0
aW9uRGlkRW50ZXJCYWNrZ3JvdW5kOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogICAg
IExPRyhNZWRpYSwgIi1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGFwcGxpY2F0aW9uRGlkRW50ZXJC
YWNrZ3JvdW5kXSIpOwogCiAgICAgQk9PTCBpc1N1c3BlbmRlZFVuZGVyTG9jayA9IFtbW25vdGlm
aWNhdGlvbiB1c2VySW5mb10gb2JqZWN0Rm9yS2V5OkAiaXNTdXNwZW5kZWRVbmRlckxvY2siXSBi
b29sVmFsdWVdOwotICAgIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVh
ZChbcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUoc2VsZiksIGlzU3VzcGVuZGVkVW5kZXJMb2NrXSgp
IG11dGFibGUgeworICAgIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVh
ZChbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgaXNTdXNwZW5kZWRVbmRlckxvY2td
KCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChhdXRvKiBjYWxsYmFjayA9IHByb3RlY3RlZFNlbGYt
Pl9jYWxsYmFjaykKICAgICAgICAgICAgIGNhbGxiYWNrLT5hcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZChpc1N1c3BlbmRlZFVuZGVyTG9jayk7CiAgICAgfSk7CiB9CisKKy0gKHZvaWQpY2Fy
UGxheVNlcnZlckRpZWQ6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgaWYg
KCFfY2FsbGJhY2spCisgICAgICAgIHJldHVybjsKKworICAgIExPRyhNZWRpYSwgIi1bV2ViTWVk
aWFTZXNzaW9uSGVscGVyIGNhclBsYXlTZXJ2ZXJEaWVkOl0iKTsKKyAgICBVTlVTRURfUEFSQU0o
bm90aWZpY2F0aW9uKTsKKyAgICBjYWxsT25XZWJUaHJlYWRPckRpc3BhdGNoQXN5bmNPbk1haW5U
aHJlYWQoW3Byb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZildKCkgbXV0YWJsZSB7CisgICAg
ICAgIGlmIChhdXRvKiBjYWxsYmFjayA9IHByb3RlY3RlZFNlbGYtPl9jYWxsYmFjaykKKyAgICAg
ICAgICAgIGNhbGxiYWNrLT5jYXJQbGF5U2VydmVyRGllZCgpOworICAgIH0pOworfQorCistICh2
b2lkKWNhclBsYXlJc0Nvbm5lY3RlZERpZENoYW5nZTooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KK3sKKyAgICBpZiAoIV9jYWxsYmFjaykKKyAgICAgICAgcmV0dXJuOworCisgICAgT3B0
aW9uYWw8Ym9vbD4gY2FyUGxheUlzQ29ubmVjdGVkOworICAgIGlmIChub3RpZmljYXRpb24gJiYg
Y2FuTG9hZEFWU3lzdGVtQ29udHJvbGxlcl9DYXJQbGF5SXNDb25uZWN0ZWROb3RpZmljYXRpb25Q
YXJhbWV0ZXIoKSkgeworICAgICAgICBOU051bWJlciAqbnNDYXJQbGF5SXNDb25uZWN0ZWQgPSBb
W25vdGlmaWNhdGlvbiB1c2VySW5mb10gdmFsdWVGb3JLZXk6Z2V0QVZTeXN0ZW1Db250cm9sbGVy
X0NhclBsYXlJc0Nvbm5lY3RlZE5vdGlmaWNhdGlvblBhcmFtZXRlcigpXTsKKyAgICAgICAgaWYg
KG5zQ2FyUGxheUlzQ29ubmVjdGVkKQorICAgICAgICAgICAgY2FyUGxheUlzQ29ubmVjdGVkID0g
W25zQ2FyUGxheUlzQ29ubmVjdGVkIGJvb2xWYWx1ZV07CisgICAgfQorCisgICAgY2FsbE9uV2Vi
VGhyZWFkT3JEaXNwYXRjaEFzeW5jT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gcmV0YWlu
UHRyKHNlbGYpLCBjYXJQbGF5SXNDb25uZWN0ZWQgPSBXVEZNb3ZlKGNhclBsYXlJc0Nvbm5lY3Rl
ZCldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChhdXRvKiBjYWxsYmFjayA9IHByb3RlY3RlZFNl
bGYtPl9jYWxsYmFjaykKKyAgICAgICAgICAgIGNhbGxiYWNrLT51cGRhdGVDYXJQbGF5SXNDb25u
ZWN0ZWQoV1RGTW92ZShjYXJQbGF5SXNDb25uZWN0ZWQpKTsKKyAgICB9KTsKK30KIEBlbmQKIAog
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKaW5kZXggNTEwZWYwZDMxYjZlYTQyMGU0YWIwOWJmZTgxZjQxNWEzMThmMmVmZS4uMjcz
MGRmZWE0YjBiN2I2ZjA4ZWU4ZjkzYTQ5ZGJmYjM2Mjk0ODE3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcApAQCAtNDkyLDYgKzQ5Miw3IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNl
dFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UmIHBhZ2UpCiAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25N
YW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVzZXRSZXN0cmljdGlvbnMoKTsKICAgICBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXRXaWxsSWdub3JlU3lzdGVt
SW50ZXJydXB0aW9ucyh0cnVlKTsKICNlbmRpZgorICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6c2hhcmVkTWFuYWdlcigpLnNldElzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KGZh
bHNlKTsKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCiAgICAgQVhPYmplY3RDYWNoZTo6c2V0RW5o
YW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShmYWxzZSk7CiAgICAgQVhPYmplY3RDYWNo
ZTo6ZGlzYWJsZUFjY2Vzc2liaWxpdHkoKTsKQEAgLTUwNjcsNCArNTA2OCw5IEBAIHZvaWQgSW50
ZXJuYWxzOjpzZXRYSFJNYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcoWE1M
SHR0cFJlcXVlc3QmIHJlCiAgICAgcmVxdWVzdC5zZXRNYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2Vz
dHVyZUZvcndhcmRpbmcoaW50ZXJ2YWwpOwogfQogCit2b2lkIEludGVybmFsczo6c2V0SXNQbGF5
aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQoYm9vbCBpc1BsYXlpbmcpCit7CisgICAgUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuc2V0SXNQbGF5aW5nVG9BdXRvbW90
aXZlSGVhZFVuaXQoaXNQbGF5aW5nKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggM2FjNjZmNzI1OTgwMzBjMDg5ZjcxMjAyYjQ0
ODEzMDgzNzlmNzk0Ni4uNDZkNDI2YTEwYzllN2Q1NmI3OWU5YTA5YmJlYzg2MDcxZjVmNDEzMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC04MjMsNiArODIzLDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzZXRYSFJNYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRp
bmcoWE1MSHR0cFJlcXVlc3QmLCBkb3VibGUpOwogCisgICAgdm9pZCBzZXRJc1BsYXlpbmdUb0F1
dG9tb3RpdmVIZWFkVW5pdChib29sKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5h
bHMoRG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggY2EyYmM1NDViM2UwNGE3ODY4YzNk
NDg5NDBhZTA3NzI0OWQxNDdhNy4uM2E1OWI0ZDdmNWViOWM3MGZjMzIxMzQzZDdjNTMwY2QyNWVi
MjhlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNzUzLDQgKzc1Myw2
IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAgIHZvaWQgdGVzdERpY3Rpb25hcnlMb2dn
aW5nKCk7CiAKICAgICB2b2lkIHNldFhIUk1heGltdW1JbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9y
d2FyZGluZyhYTUxIdHRwUmVxdWVzdCB4aHIsIGRvdWJsZSBpbnRlcnZhbCk7CisKKyAgICB2b2lk
IHNldElzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KGJvb2xlYW4gdmFsdWUpOwogfTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBlN2RhMTdmZTE0MzQ1YzdlZGU0ZDhlZWVkOWNjY2EyYjY2ODdjNmM2Li4zOTg4OWMyNzZh
MDRkY2M2YWRjOThkMzcxNTI0YTVkZTE3NjJhMTYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTktMDUtMzAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgVmlk
ZW8gcGxheWJhY2sgaW4gU2FmYXJpIHNob3VsZCBjb250aW51ZSB3aGVuIENhclBsYXkgaXMgcGx1
Z2dlZCBpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk4MzQ1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTUwNTc1MD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBtZWRpYS92aWRlby1pc3BsYXlpbmd0
b2F1dG9tb3RpdmVoZWFkdW5pdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlh
L3ZpZGVvLWlzcGxheWluZ3RvYXV0b21vdGl2ZWhlYWR1bml0Lmh0bWw6IEFkZGVkLgorCiAyMDE5
LTA1LTI5ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjI0NDE4MikgW01hYyBXSzJdIExheW91dCBUZXN0IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlzdWFsLXZpZXdwb3J0L3ZpZXdwb3J0LXJlc2l6ZS1l
dmVudC1vbi1sb2FkLW92ZXJmbG93aW5nLXBhZ2UuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWlzcGxheWluZ3RvYXV0b21vdGl2ZWhl
YWR1bml0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWlzcGxheWluZ3Rv
YXV0b21vdGl2ZWhlYWR1bml0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjNlNWVkZjQyZGI5
NzU2ZTk3ODU5MWYzZmJhNjUyMzlkZGVlMjZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvdmlkZW8taXNwbGF5aW5ndG9hdXRvbW90aXZlaGVhZHVuaXQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTUgQEAKKworUlVOKHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVv
IiwgImNvbnRlbnQvdGVzdCIpKQorRVZFTlQoY2FucGxheXRocm91Z2gpCitSVU4odmlkZW8ucGxh
eSgpKQorRVZFTlQocGxheWluZykKK1JVTihpbnRlcm5hbHMuc2V0TWVkaWFTZXNzaW9uUmVzdHJp
Y3Rpb25zKCJ2aWRlb2F1ZGlvIiwgInN1c3BlbmRlZHVuZGVybG9ja3BsYXliYWNrcmVzdHJpY3Rl
ZCIpKQorUlVOKGludGVybmFscy5hcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCh0cnVlKSkK
K0VWRU5UKHBhdXNlKQorUlVOKGludGVybmFscy5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91
bmQodHJ1ZSkpCitFVkVOVChwbGF5aW5nKQorUlVOKGludGVybmFscy5zZXRJc1BsYXlpbmdUb0F1
dG9tb3RpdmVIZWFkVW5pdCh0cnVlKSkKK1JVTihpbnRlcm5hbHMuYXBwbGljYXRpb25EaWRFbnRl
ckJhY2tncm91bmQodHJ1ZSkpCitFWFBFQ1RFRCAodmlkZW8ucGF1c2VkID09ICdmYWxzZScpIE9L
CitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1pc3Bs
YXlpbmd0b2F1dG9tb3RpdmVoZWFkdW5pdC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
aXNwbGF5aW5ndG9hdXRvbW90aXZlaGVhZHVuaXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTA1M2Y5MDQx
YWE2NWM3YTU1ZWU2M2JlMjk5ZTE3NzNkOTUyMjIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8taXNwbGF5aW5ndG9hdXRvbW90aXZlaGVhZHVuaXQuaHRtbApAQCAt
MCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxl
PnZpZGVvLWlzcGxheWluZ3RvYXV0b21vdGl2ZWhlYWR1bml0PC90aXRsZT4KKyAgICA8c2NyaXB0
IHNyYz0idmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Im1lZGlhLWZp
bGUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9PiB7CisgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsK
KworICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgImNvbnRl
bnQvdGVzdCIpJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3IodmlkZW8sICdjYW5wbGF5dGhyb3Vn
aCcpOworCisgICAgICAgIHJ1bldpdGhLZXlEb3duKCd2aWRlby5wbGF5KCknKTsKKyAgICAgICAg
YXdhaXQgd2FpdEZvcih2aWRlbywgJ3BsYXlpbmcnKTsKKworICAgICAgICBydW4oJ2ludGVybmFs
cy5zZXRNZWRpYVNlc3Npb25SZXN0cmljdGlvbnMoInZpZGVvYXVkaW8iLCAic3VzcGVuZGVkdW5k
ZXJsb2NrcGxheWJhY2tyZXN0cmljdGVkIiknKQorICAgICAgICBydW4oJ2ludGVybmFscy5hcHBs
aWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCh0cnVlKScpOworICAgICAgICBhd2FpdCB3YWl0Rm9y
KHZpZGVvLCAncGF1c2UnKTsKKworICAgICAgICBydW4oJ2ludGVybmFscy5hcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQodHJ1ZSknKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcih2aWRlbywg
J3BsYXlpbmcnKTsKKworICAgICAgICBydW4oJ2ludGVybmFscy5zZXRJc1BsYXlpbmdUb0F1dG9t
b3RpdmVIZWFkVW5pdCh0cnVlKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5hcHBsaWNhdGlv
bkRpZEVudGVyQmFja2dyb3VuZCh0cnVlKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVv
LnBhdXNlZCcsIGZhbHNlKTsKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0pOworICAgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHZpZGVvIGNvbnRyb2xzPjwvdmlkZW8+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>