<?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>206806</bug_id>
          
          <creation_ts>2020-01-25 23:00:46 -0800</creation_ts>
          <short_desc>Support &apos;allow=&quot;fullscreen&quot;&apos; feature policy</short_desc>
          <delta_ts>2022-08-13 06:39:04 -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>bugs</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1611140</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-01-25 23:00:46 -0800</bug_when>
    <thetext>Support &apos;allow=&quot;fullscreen&quot;&apos; feature policy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611141</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-01-25 23:01:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/55640448&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611142</commentid>
    <comment_count>2</comment_count>
      <attachid>388799</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-01-25 23:08:23 -0800</bug_when>
    <thetext>Created attachment 388799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611144</commentid>
    <comment_count>3</comment_count>
      <attachid>388799</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-26 00:40:54 -0800</bug_when>
    <thetext>Comment on attachment 388799
Patch

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

&gt; Source/WebCore/dom/FullscreenManager.cpp:64
&gt; +    }

This code is very similar with UserMediaController isAllowedToUse.
Maybe we should add a routine for crawling up the tree.

&gt; Source/WebCore/html/FeaturePolicy.cpp:148
&gt; +        if (iframe.hasAttribute(allowfullscreenAttr) || iframe.hasAttribute(webkitallowfullscreenAttr)) {

GTK does not like it, unified build issue maybe, HTMLNames.h missing probably.

&gt; LayoutTests/http/tests/fullscreen/fullscreen-feature-policy.html:55
&gt; +    &lt;iframe allow=&quot;fullscreen *&quot; data-enabled=&quot;true&quot; src=&quot;http://localhost:8000/resources/pointer-lock/inner-iframe.html&quot;&gt;&lt;/iframe&gt;

Maybe add a test like allow=&quot;fullscreen http://localhost...&quot;?

Also, there are probably WPT tests that are testing this but there is no rebasing.
Are there some WPT test we should import?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611145</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-26 00:44:06 -0800</bug_when>
    <thetext>Looking at WPT, I see LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-allow.html and LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-allowfullscreen.html.

But it seems they fail since they test document.fullscreenEnabled.
It would be nice to add support for it along document.webkitFullscreenEnabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611169</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-01-26 08:37:46 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #3)
&gt; Comment on attachment 388799 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=388799&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/FullscreenManager.cpp:64
&gt; &gt; +    }
&gt; 
&gt; This code is very similar with UserMediaController isAllowedToUse.
&gt; Maybe we should add a routine for crawling up the tree.
&gt; 
&gt; &gt; Source/WebCore/html/FeaturePolicy.cpp:148
&gt; &gt; +        if (iframe.hasAttribute(allowfullscreenAttr) || iframe.hasAttribute(webkitallowfullscreenAttr)) {
&gt; 
&gt; GTK does not like it, unified build issue maybe, HTMLNames.h missing
&gt; probably.

Good point; will add. 

&gt; &gt; LayoutTests/http/tests/fullscreen/fullscreen-feature-policy.html:55
&gt; &gt; +    &lt;iframe allow=&quot;fullscreen *&quot; data-enabled=&quot;true&quot; src=&quot;http://localhost:8000/resources/pointer-lock/inner-iframe.html&quot;&gt;&lt;/iframe&gt;
&gt; 
&gt; Maybe add a test like allow=&quot;fullscreen http://localhost...&quot;?

Sure! It’s super easy to add new tests this way. 

&gt; Also, there are probably WPT tests that are testing this but there is no
&gt; rebasing.
&gt; Are there some WPT test we should import?

I checked in wpt/feature-policy, but it looks like those depend on a DOM-exposed mechanism for querying feature policies that we haven’t yet implemented, and wpt/fullscreen didn’t include any of these checks. I didn’t think to check wpt/.../the-iframe-element/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611170</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-01-26 08:39:30 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #4)
&gt; Looking at WPT, I see
&gt; LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/
&gt; the-iframe-element/iframe-allow.html and
&gt; LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/
&gt; the-iframe-element/iframe-allowfullscreen.html.
&gt; 
&gt; But it seems they fail since they test document.fullscreenEnabled.
&gt; It would be nice to add support for it along
&gt; document.webkitFullscreenEnabled.

We are holding off unprefixing the Fullscreen APIs till we fully implement the current spec. This feature policy work is some of that, but the largest remaining work is layout and stacking context changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611173</commentid>
    <comment_count>7</comment_count>
      <attachid>388804</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-01-26 09:46:02 -0800</bug_when>
    <thetext>Created attachment 388804
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611174</commentid>
    <comment_count>8</comment_count>
      <attachid>388805</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-01-26 10:11:16 -0800</bug_when>
    <thetext>Created attachment 388805
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611187</commentid>
    <comment_count>9</comment_count>
      <attachid>388810</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-01-26 11:56:20 -0800</bug_when>
    <thetext>Created attachment 388810
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611421</commentid>
    <comment_count>10</comment_count>
      <attachid>388863</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-01-27 08:27:52 -0800</bug_when>
    <thetext>Created attachment 388863
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611525</commentid>
    <comment_count>11</comment_count>
      <attachid>388863</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-27 12:54:59 -0800</bug_when>
    <thetext>Comment on attachment 388863
Patch for landing

Clearing flags on attachment: 388863

Committed r255162: &lt;https://trac.webkit.org/changeset/255162&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611526</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-27 12:55:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1891111</commentid>
    <comment_count>13</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-08-13 06:39:04 -0700</bug_when>
    <thetext>*** Bug 74660 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388799</attachid>
            <date>2020-01-25 23:08:23 -0800</date>
            <delta_ts>2020-01-26 09:46:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206806-20200125230750.patch</filename>
            <type>text/plain</type>
            <size>24422</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjViYmI3MTFjMDc2MGYx
NTZiMDZiYmYwM2QxMTA2MjNmNDQ0NjQwMS4uNzlkMjhjZTllMWUwNjlhOTM2YWExODkyNGI1NWIy
MmNlY2IxZjM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTAxLTI1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgJ2FsbG93PSJm
dWxsc2NyZWVuIicgZmVhdHVyZSBwb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNjgwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU2NDA0
NDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dDogaHR0cC90ZXN0cy9mdWxsc2NyZWVuL2Z1bGxzY3JlZW4tZmVhdHVyZS1wb2xpY3kuaHRtbAor
CisgICAgICAgIFRoZSB1bnByZWZpeGVkIHZlcnNpb24gb2YgdGhlIEZ1bGxzY3JlZW4gQVBJIGhh
cyBkZXByZWNhdGVkIHRoZSAnYWxsb3dmdWxsc2NyZWVuJyBpZnJhbWUKKyAgICAgICAgYXR0cmli
dXRlIGluIGZhdm9yIG9mIHRoZSAnYWxsb3c9ImZ1bGxzY3JlZW4iJyBzdHlsZSBhdHRyaWJ1dGUg
dXNlZCBieSBGZWF0dXJlIFBvbGljeS4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHN1Y2gsIGlu
Y2x1ZGluZyB0aGUgc3BlY2lmaWVkIGhhbmRsaW5nIGZvciB0aGUgbGVnYWN5ICdhbGxvd2Z1bGxz
Y3JlZW4nCisgICAgICAgIGF0dHJpYnV0ZS4KKworICAgICAgICBOb3RlOiB0aGlzIHBhdGNoIHdp
bGwgKGludGVudGlvbmFsbHkpIGNoYW5nZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiA8aWZyYW1l
PnMuIFByZXZpb3VzbHkKKyAgICAgICAgYW55IDxpZnJhbWU+IHdpdGhvdXQgdGhlICJhbGxvd2Z1
bGxzY3JlZW4iIGF0dHJpYnV0ZSB3b3VsZCBub3QgYmUgYWxsb3dlZCB0byBlbnRlciBmdWxsc2Ny
ZWVuCisgICAgICAgIG1vZGUuIEFmdGVyIHRoaXMgcGF0Y2gsIDxpZnJhbWVzPiB3aXRob3V0IHRo
ZSBsZWdhY3kgYXR0cmlidXRlIG9yIGFuIGV4cGxpY2l0IGZ1bGxzY3JlZW4KKyAgICAgICAgRmVh
dHVyZSBQb2xpY3kgd2lsbCBiZSBhbGxvd2VkIHRvIGVudGVyIGZ1bGxzY3JlZW4gc28gbG9uZyBh
cyB0aGVpciBvcmlnaW4gaXMgdGhlIHNhbWUgYXMKKyAgICAgICAgdGhlIHRvcCBkb2N1bWVudCAo
YW5kIHRoYXQgYWxsIHBhcmVudCBpZnJhbWVzIGFyZSBhbHNvIGFsbG93ZWQgdG8gZW50ZXIgZnVs
bHNjcmVlbikuCisKKyAgICAgICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aXNGdWxsc2NyZWVuQWxsb3dlZEJ5RmVhdHVyZVBvbGljeSk6CisgICAgICAg
IChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxzY3JlZW5NYW5hZ2VyOjppc0Z1bGxzY3JlZW5FbmFi
bGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmlzQXR0cmlidXRlT25BbGxPd25lcnMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5J
c0FsbG93ZWRGb3JFbGVtZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRnVsbHNj
cmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBodG1sL0ZlYXR1cmVQb2xpY3kuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RmVhdHVyZVBvbGljeTo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6RmVh
dHVyZVBvbGljeTo6YWxsb3dzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0ZlYXR1cmVQb2xpY3ku
aDoKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJRnJhbWVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSUZyYW1lRWxlbWVudDo6ZmVhdHVyZVBvbGljeSBjb25zdCk6CisKIDIwMjAtMDEtMjMg
IEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0VNRV0gS2V5IHJl
bmV3YWwgZmFpbHMgd2hlbiB1c2luZyBBVkNvbnRlbnRLZXlSZXBvcnRHcm91cApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKaW5kZXggZTkwNGM0NWVhNTMwNGM1NmJmMzc5
MzRmOGJiMTcyMmRmNGM4ZGQ1NS4uNjAxOTJlZmI4MjQ3YTVkNTUxMjRjNTZjOWM1YTcwYmQwNjM4
NmNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCkBAIC0zMiw3
ICszMiw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFF
bGVtZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlF1YWxpZmllZE5hbWUuaCIK
QEAgLTQ0LDE0ICs0NCwyNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKLXN0YXRpYyBib29sIGlzQXR0cmlidXRlT25BbGxPd25lcnMoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlLCBjb25zdCBRdWFsaWZpZWROYW1lJiBwcmVmaXhlZEF0
dHJpYnV0ZSwgY29uc3QgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lcikKK3N0YXRpYyBib29s
IGlzRnVsbHNjcmVlbkFsbG93ZWRCeUZlYXR1cmVQb2xpY3koY29uc3QgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewotICAgIGlmICghb3duZXIpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGRvIHsK
LSAgICAgICAgaWYgKCEob3duZXItPmhhc0F0dHJpYnV0ZShhdHRyaWJ1dGUpIHx8IG93bmVyLT5o
YXNBdHRyaWJ1dGUocHJlZml4ZWRBdHRyaWJ1dGUpKSkKKyAgICBhdXRvJiB0b3BEb2N1bWVudCA9
IGRvY3VtZW50LnRvcERvY3VtZW50KCk7CisgICAgYXV0byBhbmNlc3RvckRvY3VtZW50ID0gJmRv
Y3VtZW50OworICAgIHdoaWxlIChhbmNlc3RvckRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudCkgewor
ICAgICAgICBpZiAoIWFuY2VzdG9yRG9jdW1lbnQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfSB3aGlsZSAoKG93bmVyID0gb3duZXItPmRvY3VtZW50KCkub3duZXJFbGVtZW50KCkp
KTsKKworICAgICAgICBhdXRvIG93bmVyRWxlbWVudCA9IGFuY2VzdG9yRG9jdW1lbnQtPm93bmVy
RWxlbWVudCgpOworICAgICAgICBpZiAoIWlzPEhUTUxJRnJhbWVFbGVtZW50Pihvd25lckVsZW1l
bnQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGF1dG8gZmVhdHVyZVBv
bGljeSA9IGRvd25jYXN0PEhUTUxJRnJhbWVFbGVtZW50Pihvd25lckVsZW1lbnQpLT5mZWF0dXJl
UG9saWN5KCk7CisgICAgICAgIGlmICghZmVhdHVyZVBvbGljeS5hbGxvd3MoRmVhdHVyZVBvbGlj
eTo6VHlwZTo6RnVsbHNjcmVlbiwgYW5jZXN0b3JEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS5k
YXRhKCkpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGFuY2VzdG9yRG9j
dW1lbnQgPSBhbmNlc3RvckRvY3VtZW50LT5wYXJlbnREb2N1bWVudCgpOworICAgIH0KKwogICAg
IHJldHVybiB0cnVlOwogfQogCkBAIC02MiwxMSArNzMsNiBAQCBGdWxsc2NyZWVuTWFuYWdlcjo6
RnVsbHNjcmVlbk1hbmFnZXIoRG9jdW1lbnQmIGRvY3VtZW50KQogCiBGdWxsc2NyZWVuTWFuYWdl
cjo6fkZ1bGxzY3JlZW5NYW5hZ2VyKCkgPSBkZWZhdWx0OwogCi1ib29sIEZ1bGxzY3JlZW5NYW5h
Z2VyOjpmdWxsc2NyZWVuSXNBbGxvd2VkRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KSBjb25z
dAotewotICAgIHJldHVybiBpc0F0dHJpYnV0ZU9uQWxsT3duZXJzKGFsbG93ZnVsbHNjcmVlbkF0
dHIsIHdlYmtpdGFsbG93ZnVsbHNjcmVlbkF0dHIsIGVsZW1lbnQuZG9jdW1lbnQoKS5vd25lckVs
ZW1lbnQoKSk7Ci19Ci0KIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RGdWxsc2NyZWVu
Rm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGdWxsc2NyZWVuQ2hlY2tUeXBlIGNoZWNrVHlw
ZSkKIHsKICAgICBpZiAoIWVsZW1lbnQpCkBAIC0xNDIsNyArMTQ4LDcgQEAgdm9pZCBGdWxsc2Ny
ZWVuTWFuYWdlcjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQs
IEZ1bGxzY3JlZW4KIAogICAgICAgICAvLyBUaGUgY29udGV4dCBvYmplY3QncyBub2RlIGRvY3Vt
ZW50LCBvciBhbiBhbmNlc3RvciBicm93c2luZyBjb250ZXh0J3MgZG9jdW1lbnQgZG9lcyBub3Qg
aGF2ZQogICAgICAgICAvLyB0aGUgZnVsbHNjcmVlbiBlbmFibGVkIGZsYWcgc2V0LgotICAgICAg
ICBpZiAoY2hlY2tUeXBlID09IEVuZm9yY2VJRnJhbWVBbGxvd0Z1bGxzY3JlZW5SZXF1aXJlbWVu
dCAmJiAhZnVsbHNjcmVlbklzQWxsb3dlZEZvckVsZW1lbnQoKmVsZW1lbnQpKSB7CisgICAgICAg
IGlmIChjaGVja1R5cGUgPT0gRW5mb3JjZUlGcmFtZUFsbG93RnVsbHNjcmVlblJlcXVpcmVtZW50
ICYmICFpc0Z1bGxzY3JlZW5BbGxvd2VkQnlGZWF0dXJlUG9saWN5KGRvY3VtZW50KCkpKSB7CiAg
ICAgICAgICAgICBmYWlsZWRQcmVmbGlnaHRzKFdURk1vdmUoZWxlbWVudCkpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0zNDUsNyArMzUxLDcgQEAgYm9vbCBGdWxsc2NyZWVu
TWFuYWdlcjo6aXNGdWxsc2NyZWVuRW5hYmxlZCgpIGNvbnN0CiAgICAgLy8gYnJvd3NpbmcgY29u
dGV4dCdzIGRvY3VtZW50cyBoYXZlIHRoZWlyIGZ1bGxzY3JlZW4gZW5hYmxlZCBmbGFnIHNldCwg
b3IgZmFsc2Ugb3RoZXJ3aXNlLgogCiAgICAgLy8gVG9wLWxldmVsIGJyb3dzaW5nIGNvbnRleHRz
IGFyZSBpbXBsaWVkIHRvIGhhdmUgdGhlaXIgYWxsb3dGdWxsc2NyZWVuIGF0dHJpYnV0ZSBzZXQu
Ci0gICAgcmV0dXJuIGlzQXR0cmlidXRlT25BbGxPd25lcnMoYWxsb3dmdWxsc2NyZWVuQXR0ciwg
d2Via2l0YWxsb3dmdWxsc2NyZWVuQXR0ciwgZG9jdW1lbnQoKS5vd25lckVsZW1lbnQoKSk7Cisg
ICAgcmV0dXJuIGlzRnVsbHNjcmVlbkFsbG93ZWRCeUZlYXR1cmVQb2xpY3koZG9jdW1lbnQoKSk7
CiB9CiAKIHN0YXRpYyB2b2lkIHVud3JhcEZ1bGxzY3JlZW5SZW5kZXJlcihSZW5kZXJGdWxsU2Ny
ZWVuKiBmdWxsc2NyZWVuUmVuZGVyZXIsIEVsZW1lbnQqIGZ1bGxzY3JlZW5FbGVtZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCBiZmQyMTdmZDExOTVhMGM5ZjEz
MTA3ZWJkZjdmM2I5YTAwNzNkZDEwLi4wYzViMmVlN2E5OTkxN2MyNjdkMTIzMTJiOGRmN2U5NmQy
NDc3YWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtODMsNyAr
ODMsNiBAQCBwdWJsaWM6CiAgICAgUmVuZGVyRnVsbFNjcmVlbiogZnVsbHNjcmVlblJlbmRlcmVy
KCkgY29uc3Q7CiAKICAgICB2b2lkIGRpc3BhdGNoRnVsbHNjcmVlbkNoYW5nZUV2ZW50cygpOwot
ICAgIGJvb2wgZnVsbHNjcmVlbklzQWxsb3dlZEZvckVsZW1lbnQoRWxlbWVudCYpIGNvbnN0Owog
ICAgIHZvaWQgZnVsbHNjcmVlbkVsZW1lbnRSZW1vdmVkKCk7CiAKICAgICB2b2lkIGFkanVzdEZ1
bGxzY3JlZW5FbGVtZW50T25Ob2RlUmVtb3ZhbChOb2RlJiwgRG9jdW1lbnQ6Ok5vZGVSZW1vdmFs
ID0gRG9jdW1lbnQ6Ok5vZGVSZW1vdmFsOjpOb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQ
b2xpY3kuY3BwCmluZGV4IGU0MzQyYWVlYTYwYTNhYWUyNmFjMTNhOTVkNmQ2Y2Q1M2FhYjUyMDgu
LjkyYTczZmUwZWYyOGNkNzRiNDZlMzExMzg5Mjg4MmZhMDdiODk3NWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GZWF0dXJlUG9saWN5LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkZlYXR1
cmVQb2xpY3kuaCIKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiSFRNTElGcmFt
ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiU2Vj
dXJpdHlPcmlnaW4uaCIKIApAQCAtOTQsMTMgKzk1LDE0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB1
cGRhdGVMaXN0KERvY3VtZW50JiBkb2N1bWVudCwgRmVhdHVyZVBvbGljeTo6QWxsb3dSdWxlJiBy
dWxlCiAgICAgfQogfQogCi1GZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3Vt
ZW50JiBkb2N1bWVudCwgU3RyaW5nVmlldyBhbGxvd0F0dHJpYnV0ZVZhbHVlKQorRmVhdHVyZVBv
bGljeSBGZWF0dXJlUG9saWN5OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJ
RnJhbWVFbGVtZW50JiBpZnJhbWUsIFN0cmluZ1ZpZXcgYWxsb3dBdHRyaWJ1dGVWYWx1ZSkKIHsK
ICAgICBGZWF0dXJlUG9saWN5IHBvbGljeTsKICAgICBib29sIGlzQ2FtZXJhSW5pdGlhbGl6ZWQg
PSBmYWxzZTsKICAgICBib29sIGlzTWljcm9waG9uZUluaXRpYWxpemVkID0gZmFsc2U7CiAgICAg
Ym9vbCBpc0Rpc3BsYXlDYXB0dXJlSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlzU3lu
Y1hIUkluaXRpYWxpemVkID0gZmFsc2U7CisgICAgYm9vbCBpc0Z1bGxzY3JlZW5Jbml0aWFsaXpl
ZCA9IGZhbHNlOwogICAgIGZvciAoYXV0byBhbGxvd0l0ZW0gOiBhbGxvd0F0dHJpYnV0ZVZhbHVl
LnNwbGl0KCc7JykpIHsKICAgICAgICAgYXV0byBpdGVtID0gYWxsb3dJdGVtLnN0cmlwTGVhZGlu
Z0FuZFRyYWlsaW5nTWF0Y2hlZENoYXJhY3RlcnMoaXNIVE1MU3BhY2U8VUNoYXI+KTsKICAgICAg
ICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgiY2FtZXJhIikpIHsKQEAgLTEyMyw5ICsxMjUsMTQgQEAg
RmVhdHVyZVBvbGljeSBGZWF0dXJlUG9saWN5OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIFN0
cmluZ1ZpZXcgYWxsb3dBdHRyaWJ1dGUKICAgICAgICAgICAgIHVwZGF0ZUxpc3QoZG9jdW1lbnQs
IHBvbGljeS5tX3N5bmNYSFJSdWxlLCBpdGVtLnN1YnN0cmluZyg4KSk7CiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQorICAgICAgICBpZiAoaXRlbS5zdGFydHNXaXRoKCJmdWxsc2Ny
ZWVuIikpIHsKKyAgICAgICAgICAgIGlzRnVsbHNjcmVlbkluaXRpYWxpemVkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHVwZGF0ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5tX2Z1bGxzY3JlZW5SdWxlLCBp
dGVtLnN1YnN0cmluZygxMSkpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KICAg
ICB9CiAKLSAgICAvLyBCeSBkZWZhdWx0LCBjYW1lcmEsIG1pY3JvcGhvbmUgYW5kIGRpc3BsYXkt
Y2FwdHVyZSBwb2xpY3kgaXMgJ3NlbGYnCisgICAgLy8gQnkgZGVmYXVsdCwgY2FtZXJhLCBtaWNy
b3Bob25lLCBkaXNwbGF5LWNhcHR1cmUsIGFuZCBmdWxsc2NyZWVuIHBvbGljeSBpcyAnc2VsZicK
ICAgICBpZiAoIWlzQ2FtZXJhSW5pdGlhbGl6ZWQpCiAgICAgICAgIHBvbGljeS5tX2NhbWVyYVJ1
bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKICAg
ICBpZiAoIWlzTWljcm9waG9uZUluaXRpYWxpemVkKQpAQCAtMTMzLDYgKzE0MCwyMSBAQCBGZWF0
dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgU3RyaW5n
VmlldyBhbGxvd0F0dHJpYnV0ZQogICAgIGlmICghaXNEaXNwbGF5Q2FwdHVyZUluaXRpYWxpemVk
KQogICAgICAgICBwb2xpY3kubV9kaXNwbGF5Q2FwdHVyZVJ1bGUuYWxsb3dlZExpc3QuYWRkKGRv
Y3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKIAorICAgIC8vIGh0dHBzOi8vdzNjLmdp
dGh1Yi5pby93ZWJhcHBzZWMtZmVhdHVyZS1wb2xpY3kvI3Byb2Nlc3MtZmVhdHVyZS1wb2xpY3kt
YXR0cmlidXRlcworICAgIC8vIDkuNSBQcm9jZXNzIEZlYXR1cmUgUG9saWN5IEF0dHJpYnV0ZXMK
KyAgICAvLyAzLjEgSWYgZWxlbWVudOKAmXMgYWxsb3dmdWxsc2NyZWVuIGF0dHJpYnV0ZSBpcyBz
cGVjaWZpZWQsIGFuZCBjb250YWluZXIgcG9saWN5IGRvZXMKKyAgICAvLyAgICAgbm90IGNvbnRh
aW4gYW4gYWxsb3dsaXN0IGZvciBmdWxsc2NyZWVuLAorICAgIGlmICghaXNGdWxsc2NyZWVuSW5p
dGlhbGl6ZWQpIHsKKyAgICAgICAgaWYgKGlmcmFtZS5oYXNBdHRyaWJ1dGUoYWxsb3dmdWxsc2Ny
ZWVuQXR0cikgfHwgaWZyYW1lLmhhc0F0dHJpYnV0ZSh3ZWJraXRhbGxvd2Z1bGxzY3JlZW5BdHRy
KSkgeworICAgICAgICAgICAgLy8gMy4xLjEgQ29uc3RydWN0IGEgbmV3IGRlY2xhcmF0aW9uIGZv
ciBmdWxsc2NyZWVuLCB3aG9zZSBhbGxvd2xpc3QgaXMgdGhlIHNwZWNpYWwgdmFsdWUgKi4KKyAg
ICAgICAgICAgIHBvbGljeS5tX2Z1bGxzY3JlZW5SdWxlLnR5cGUgPSBGZWF0dXJlUG9saWN5OjpB
bGxvd1J1bGU6OlR5cGU6OkFsbDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGh0
dHBzOi8vZnVsbHNjcmVlbi5zcGVjLndoYXR3Zy5vcmcvI2ZlYXR1cmUtcG9saWN5LWludGVncmF0
aW9uCisgICAgICAgICAgICAvLyBUaGUgZGVmYXVsdCBhbGxvd2xpc3QgaXMgJ3NlbGYnLgorICAg
ICAgICAgICAgcG9saWN5Lm1fZnVsbHNjcmVlblJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50
LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmICgh
aXNTeW5jWEhSSW5pdGlhbGl6ZWQpCiAgICAgICAgIHBvbGljeS5tX3N5bmNYSFJSdWxlLnR5cGUg
PSBBbGxvd1J1bGU6OlR5cGU6OkFsbDsKIApAQCAtMTUwLDYgKzE3Miw4IEBAIGJvb2wgRmVhdHVy
ZVBvbGljeTo6YWxsb3dzKFR5cGUgdHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmln
aW4pIGNvbnN0CiAgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV9kaXNw
bGF5Q2FwdHVyZVJ1bGUsIG9yaWdpbik7CiAgICAgY2FzZSBUeXBlOjpTeW5jWEhSOgogICAgICAg
ICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KG1fc3luY1hIUlJ1bGUsIG9yaWdpbik7
CisgICAgY2FzZSBUeXBlOjpGdWxsc2NyZWVuOgorICAgICAgICByZXR1cm4gaXNBbGxvd2VkQnlG
ZWF0dXJlUG9saWN5KG1fZnVsbHNjcmVlblJ1bGUsIG9yaWdpbik7CiAgICAgfQogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJl
UG9saWN5LmgKaW5kZXggZmM3MWRmZTJhNWQ3M2RmNTExNmRkYTZhNmU3NDE5YzYwOWJmNTFkNS4u
MjM1NmZmNTUxOTQxZDgyZWI1ZTAzMzY5NDhjOTJjYzJlNjJlZTQ2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9GZWF0dXJlUG9saWN5LmgKQEAgLTMyLDEyICszMiwxMyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEhUTUxJRnJhbWVFbGVtZW50OwogCiBjbGFzcyBG
ZWF0dXJlUG9saWN5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgRmVhdHVyZVBvbGljeSBwYXJzZShE
b2N1bWVudCYsIFN0cmluZ1ZpZXcpOworICAgIHN0YXRpYyBGZWF0dXJlUG9saWN5IHBhcnNlKERv
Y3VtZW50JiwgY29uc3QgSFRNTElGcmFtZUVsZW1lbnQmLCBTdHJpbmdWaWV3KTsKIAotICAgIGVu
dW0gY2xhc3MgVHlwZSB7IENhbWVyYSwgTWljcm9waG9uZSwgRGlzcGxheUNhcHR1cmUsIFN5bmNY
SFIgfTsKKyAgICBlbnVtIGNsYXNzIFR5cGUgeyBDYW1lcmEsIE1pY3JvcGhvbmUsIERpc3BsYXlD
YXB0dXJlLCBTeW5jWEhSLCBGdWxsc2NyZWVuIH07CiAgICAgYm9vbCBhbGxvd3MoVHlwZSwgY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhJikgY29uc3Q7CiAKICAgICBzdHJ1Y3QgQWxsb3dSdWxlIHsK
QEAgLTUxLDYgKzUyLDcgQEAgcHJpdmF0ZToKICAgICBBbGxvd1J1bGUgbV9taWNyb3Bob25lUnVs
ZTsKICAgICBBbGxvd1J1bGUgbV9kaXNwbGF5Q2FwdHVyZVJ1bGU7CiAgICAgQWxsb3dSdWxlIG1f
c3luY1hIUlJ1bGU7CisgICAgQWxsb3dSdWxlIG1fZnVsbHNjcmVlblJ1bGU7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
RnJhbWVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQu
Y3BwCmluZGV4IGFlM2M4YTkxNDlkNThjYjQ5MWRkODJkZDFkMzI0NjgyZWU5NGE4NGMuLjNlOWZj
OGE5YWQ4YTBmNjYwMjRhODBkOTg2NWJlMzFjZjdhYjliNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBIVE1MSUZy
YW1lRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmkKICAgICAgICAgc2V0U2FuZGJveEZsYWdzKHZhbHVlLmlzTnVsbCgpID8gU2Fu
ZGJveE5vbmUgOiBTZWN1cml0eUNvbnRleHQ6OnBhcnNlU2FuZGJveFBvbGljeSh2YWx1ZSwgaW52
YWxpZFRva2VucykpOwogICAgICAgICBpZiAoIWludmFsaWRUb2tlbnMuaXNOdWxsKCkpCiAgICAg
ICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVy
LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiRXJyb3Igd2hpbGUgcGFyc2luZyB0aGUgJ3NhbmRib3gn
IGF0dHJpYnV0ZTogIiArIGludmFsaWRUb2tlbnMpOwotICAgIH0gZWxzZSBpZiAobmFtZSA9PSBh
bGxvd0F0dHIpCisgICAgfSBlbHNlIGlmIChuYW1lID09IGFsbG93QXR0ciB8fCBuYW1lID09IGFs
bG93ZnVsbHNjcmVlbkF0dHIgfHwgbmFtZSA9PSB3ZWJraXRhbGxvd2Z1bGxzY3JlZW5BdHRyKQog
ICAgICAgICBtX2ZlYXR1cmVQb2xpY3kgPSBXVEY6Om51bGxvcHQ7CiAgICAgZWxzZQogICAgICAg
ICBIVE1MRnJhbWVFbGVtZW50QmFzZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwpAQCAt
MTM4LDcgKzEzOCw3IEBAIFJlZmVycmVyUG9saWN5IEhUTUxJRnJhbWVFbGVtZW50OjpyZWZlcnJl
clBvbGljeSgpIGNvbnN0CiBjb25zdCBGZWF0dXJlUG9saWN5JiBIVE1MSUZyYW1lRWxlbWVudDo6
ZmVhdHVyZVBvbGljeSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZlYXR1cmVQb2xpY3kpCi0gICAg
ICAgIG1fZmVhdHVyZVBvbGljeSA9IEZlYXR1cmVQb2xpY3k6OnBhcnNlKGRvY3VtZW50KCksIGF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYWxsb3dBdHRyKSk7CisgICAgICAgIG1fZmVh
dHVyZVBvbGljeSA9IEZlYXR1cmVQb2xpY3k6OnBhcnNlKGRvY3VtZW50KCksICp0aGlzLCBhdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFsbG93QXR0cikpOwogICAgIHJldHVybiAqbV9m
ZWF0dXJlUG9saWN5OwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTE0ODBlN2E2NmIyNmQ0ZmExZjNkOWNmODA3NDYy
ZTVhNWQyYWRjOC4uNDEyZThkMWVjZDUxYjRiNTYyNjUxNDkzOTU5MDFmMGY1MDAwN2FlNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTAxLTI1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgJ2FsbG93PSJmdWxsc2NyZWVuIicgZmVhdHVyZSBw
b2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NjgwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU2NDA0NDg+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVu
LWVuYWJsZWQtcHJlZml4ZWQuaHRtbDoKKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVu
LWVuYWJsZWQuaHRtbDoKKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1u
b3QtYWxsb3dlZC5odG1sOgorICAgICAgICAqIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVzdHJp
Y3Rpb25zLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9mdWxsc2NyZWVuL2Z1bGxzY3JlZW4t
ZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1mZWF0dXJlLXBvbGljeS5odG1sOiBBZGRlZC4KKwogMjAy
MC0wMS0xNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNF
XSBEZWNvZGUgZ2xpdGNoZXMgd2hlbiB3YXRjaGluZyB2aWRlb3Mgb24gQ05OLmNvbQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1lbmFibGVkLXByZWZpeGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWVuYWJsZWQtcHJlZml4
ZWQuaHRtbAppbmRleCA2ZDEwYmU1MjU1MWY0ZjhlZmE2YjkyNDg5MTRmMTY4NGQ2NGM5OTJiLi42
MThhYWRmYTVkZDIzODY1ZTY2NTZhYTk3OTAyNTQ1NGFlMjViMzgwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWVuYWJsZWQtcHJlZml4ZWQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWVuYWJsZWQtcHJlZml4ZWQuaHRt
bApAQCAtNiw2ICs2LDcgQEAKICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpKTsKICAgICBp
ZnJhbWUuc2V0QXR0cmlidXRlKCd3ZWJraXRhbGxvd2Z1bGxzY3JlZW4nLCAndHJ1ZScpOwogICAg
IHZhciBpZnJhbWUyID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpKTsKKyAgICBpZnJhbWUyLnNldEF0dHJpYnV0ZSgn
YWxsb3cnLCAiZnVsbHNjcmVlbiAnbm9uZSciKTsKICAgICB0ZXN0RXhwZWN0ZWQoJ2lmcmFtZS5j
b250ZW50RG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQnLCB0cnVlKTsKICAgICB0ZXN0
RXhwZWN0ZWQoJ2lmcmFtZTIuY29udGVudERvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVk
JywgZmFsc2UpOwogICAgIGVuZFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxz
Y3JlZW4vZnVsbC1zY3JlZW4tZW5hYmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9m
dWxsLXNjcmVlbi1lbmFibGVkLmh0bWwKaW5kZXggNjYxN2M0ZGFlMzI0NzVhYzY1ODA2ZjYxM2E1
Njk5MWU5Y2E1YTA5My4uMmQwNjAxMDQ4OTMyMWUwY2FiNzNjMTBhZDlhOTgxZTNhNjY5ZjE4ZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1lbmFibGVkLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1lbmFibGVkLmh0bWwK
QEAgLTYsNiArNiw3IEBACiAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKSk7CiAgICAgaWZy
YW1lLnNldEF0dHJpYnV0ZSgnYWxsb3dmdWxsc2NyZWVuJywgJ3RydWUnKTsKICAgICB2YXIgaWZy
YW1lMiA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdpZnJhbWUnKSk7CisgICAgaWZyYW1lMi5zZXRBdHRyaWJ1dGUoJ2FsbG93Jywg
ImZ1bGxzY3JlZW4gJ25vbmUnIik7CiAgICAgdGVzdEV4cGVjdGVkKCdpZnJhbWUuY29udGVudERv
Y3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkJywgdHJ1ZSk7CiAgICAgdGVzdEV4cGVjdGVk
KCdpZnJhbWUyLmNvbnRlbnREb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCcsIGZhbHNl
KTsKICAgICBlbmRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1
bGwtc2NyZWVuLWlmcmFtZS1ub3QtYWxsb3dlZC5odG1sIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVl
bi9mdWxsLXNjcmVlbi1pZnJhbWUtbm90LWFsbG93ZWQuaHRtbAppbmRleCBhODgzM2RlZGJmNzg4
OTRkYjgyZjM2NTA0NTk1MTgzYWJiZTZjMjc1Li5jMmI2ZjhiNWE1MzBhN2I5NDUyOWU0MGY1MzEy
NjUyYmY5YTJlOGIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2Ny
ZWVuLWlmcmFtZS1ub3QtYWxsb3dlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4v
ZnVsbC1zY3JlZW4taWZyYW1lLW5vdC1hbGxvd2VkLmh0bWwKQEAgLTIwLDUgKzIwLDUgQEAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKICAgICB9KTsKIH0KIDwvc2NyaXB0PgotPGlmcmFtZSBpZD0iZnJh
bWUiIHNyYz0icmVzb3VyY2VzL2lubmVyLmh0bWwiIG9ubG9hZD0icnVuVGVzdCgpIj4KKzxpZnJh
bWUgaWQ9ImZyYW1lIiBzcmM9InJlc291cmNlcy9pbm5lci5odG1sIiBvbmxvYWQ9InJ1blRlc3Qo
KSIgYWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUnIj4KIDwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZXN0cmljdGlvbnMuaHRtbCBiL0xheW91
dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVzdHJpY3Rpb25zLmh0bWwKaW5kZXggNGFk
ODQ0MDMwYjcyMjY5MDA5OWExNWQ2NmFmMTk0MjQ0NTNkMmMyNS4uYmRjY2QwZmI0YWYwODFkYzg1
ZGYzOGI4MzQ0ZTMyYTY2NjAyZmNjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVl
bi9mdWxsLXNjcmVlbi1yZXN0cmljdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mdWxsc2Ny
ZWVuL2Z1bGwtc2NyZWVuLXJlc3RyaWN0aW9ucy5odG1sCkBAIC0xOCw2ICsxOCw3IEBACiAgICAg
ICAgIHZhciBzdGVwMiA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc29sZVdyaXRlKCci
VGhlIGNvbnRleHQgb2JqZWN0XCdzIG5vZGUgZG9jdW1lbnQsIG9yIGFuIGFuY2VzdG9yIGJyb3dz
aW5nIGNvbnRleHRcJ3MgZG9jdW1lbnQgZG9lcyBub3QgaGF2ZSB0aGUgZnVsbHNjcmVlbiBlbmFi
bGVkIGZsYWcgc2V0LiInKQogICAgICAgICAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKSk7
CisgICAgICAgICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhbGxvdycsICJmdWxsc2NyZWVuICdu
b25lJyIpOwogICAgICAgICAgICAgdmFyIGRpdiA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGlmcmFtZS5jb250ZW50RG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2JykpOwogCiAgICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKGlmcmFtZS5jb250
ZW50RG9jdW1lbnQsICd3ZWJraXRmdWxsc2NyZWVuZXJyb3InLCBzdGVwMyk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1mZWF0dXJlLXBv
bGljeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Z1bGxzY3JlZW4vZnVs
bHNjcmVlbi1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzgwNTQ3Njg5
MGMwZTY0Mjk3Y2JmMGU5MGY0OTRkOTIwYzQxMDZmNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvZnVsbHNjcmVlbi9mdWxsc2NyZWVuLWZlYXR1cmUtcG9saWN5LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitQQVNTIGlmcmFtZSB3aXRoIHNyYz0iaHR0cDov
L2xvYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09
IGZhbHNlLgorUEFTUyBpZnJhbWUgd2l0aCBzcmM9Ii4uL3Jlc291cmMuLi4iIHNob3VsZCBoYXZl
IGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0cnVlLgorUEFTUyBpZnJhbWUg
d2l0aCBhbGxvdz0iZnVsbHNjcmVlbiIsIHNyYz0iaHR0cDovL2xvYy4uLiIgc2hvdWxkIGhhdmUg
ZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IHRydWUuCitQQVNTIGlmcmFtZSB3
aXRoIGFsbG93PSJmdWxsc2NyZWVuIiwgc3JjPSIuLi9yZXNvdXJjLi4uIiBzaG91bGQgaGF2ZSBk
b2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gdHJ1ZS4KK1BBU1MgaWZyYW1lIHdp
dGggYWxsb3c9ImZ1bGxzY3JlZW4gKiIsIHNyYz0iaHR0cDovL2xvYy4uLiIgc2hvdWxkIGhhdmUg
ZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IHRydWUuCitQQVNTIGlmcmFtZSB3
aXRoIGFsbG93PSJmdWxsc2NyZWVuICoiLCBzcmM9Ii4uL3Jlc291cmMuLi4iIHNob3VsZCBoYXZl
IGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0cnVlLgorUEFTUyBpZnJhbWUg
d2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAnbm9uZSciLCBzcmM9Imh0dHA6Ly9sb2MuLi4iIHNob3Vs
ZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSBmYWxzZS4KK1BBU1Mg
aWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUnIiwgc3JjPSIuLi9yZXNvdXJjLi4u
IiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gZmFsc2Uu
CitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuICdzZWxmJyIsIHNyYz0iaHR0cDov
L2xvYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09
IGZhbHNlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAnc2VsZiciLCBzcmM9
Ii4uL3Jlc291cmMuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFi
bGVkID09PSB0cnVlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvd2Z1bGxzY3JlZW4sIHNyYz0iaHR0
cDovL2xvYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQg
PT09IHRydWUuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93ZnVsbHNjcmVlbiwgc3JjPSIuLi9yZXNv
dXJjLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0g
dHJ1ZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUnIiwgYWxsb3dm
dWxsc2NyZWVuLCBzcmM9Imh0dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtp
dEZ1bGxzY3JlZW5FbmFibGVkID09PSBmYWxzZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1
bGxzY3JlZW4gJ25vbmUnIiwgYWxsb3dmdWxsc2NyZWVuLCBzcmM9Ii4uL3Jlc291cmMuLi4iIHNo
b3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSBmYWxzZS4KK1BB
U1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4gJ3NlbGYnIiwgYWxsb3dmdWxsc2NyZWVu
LCBzcmM9Imh0dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3Jl
ZW5FbmFibGVkID09PSBmYWxzZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4g
J3NlbGYnIiwgYWxsb3dmdWxsc2NyZWVuLCBzcmM9Ii4uL3Jlc291cmMuLi4iIHNob3VsZCBoYXZl
IGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0cnVlLgorUEFTUyBpZnJhbWUg
d2l0aCB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4sIHNyYz0iaHR0cDovL2xvYy4uLiIgc2hvdWxkIGhh
dmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IHRydWUuCitQQVNTIGlmcmFt
ZSB3aXRoIHdlYmtpdGFsbG93ZnVsbHNjcmVlbiwgc3JjPSIuLi9yZXNvdXJjLi4uIiBzaG91bGQg
aGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gdHJ1ZS4KK1BBU1MgaWZy
YW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUnIiwgd2Via2l0YWxsb3dmdWxsc2NyZWVu
LCBzcmM9Imh0dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3Jl
ZW5FbmFibGVkID09PSBmYWxzZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4g
J25vbmUnIiwgd2Via2l0YWxsb3dmdWxsc2NyZWVuLCBzcmM9Ii4uL3Jlc291cmMuLi4iIHNob3Vs
ZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSBmYWxzZS4KK1BBU1Mg
aWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4gJ3NlbGYnIiwgd2Via2l0YWxsb3dmdWxsc2Ny
ZWVuLCBzcmM9Imh0dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxz
Y3JlZW5FbmFibGVkID09PSBmYWxzZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxzY3Jl
ZW4gJ3NlbGYnIiwgd2Via2l0YWxsb3dmdWxsc2NyZWVuLCBzcmM9Ii4uL3Jlc291cmMuLi4iIHNo
b3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0cnVlLgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1m
ZWF0dXJlLXBvbGljeS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9mdWxsc2NyZWVuL2Z1
bGxzY3JlZW4tZmVhdHVyZS1wb2xpY3kuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2Q4YmNlMjg1NDc4Mjhl
OGM2YjQ1ZjM5M2QyNmFkN2Y3NjgzYjdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9mdWxsc2NyZWVuL2Z1bGxzY3JlZW4tZmVhdHVyZS1wb2xpY3kuaHRtbApAQCAt
MCwwICsxLDczIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxl
PmlmcmFtZSB7IGRpc3BsYXk6IG5vbmU7IH08L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biB3YWl0Rm9yKGVsZW1lbnQsIHR5cGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJl
c29sdmUgPT4geworICAgICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGV2
ZW50ID0+IHsKKyAgICAgICAgICAgICAgICByZXNvbHZlKGV2ZW50KTsKKyAgICAgICAgICAgIH0s
IHsgb25jZTogdHJ1ZSB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9PiB7CisgICAgICAgIHRyeSB7CisgICAg
ICAgICAgICBsZXQgYXR0cmlidXRlRmlsdGVyID0gYXR0cmlidXRlID0+IHsgcmV0dXJuIGF0dHJp
YnV0ZS5uYW1lICE9PSAnZGF0YS1lbmFibGVkJzsgfTsKKyAgICAgICAgICAgIGxldCBhdHRyaWJ1
dGVNYXAgPSBhdHRyaWJ1dGUgPT4geworICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUudmFs
dWUgPT09ICcnKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXR0cmlidXRlLm5hbWU7Cisg
ICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZS5uYW1lID09PSAnc3JjJykKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGAke2F0dHJpYnV0ZS5uYW1lfT0iJHthdHRyaWJ1dGUudmFsdWUuc3Vi
c3RyaW5nKDAsIDEwKX0uLi4iYDsKKyAgICAgICAgICAgICAgICByZXR1cm4gYCR7YXR0cmlidXRl
Lm5hbWV9PSIke2F0dHJpYnV0ZS52YWx1ZX0iYDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgZm9yICh2YXIgZnJhbWUgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaWZyYW1lJykp
IHsKKyAgICAgICAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKFsiZXZh
bCIsICdwYXJlbnQucG9zdE1lc3NhZ2UoZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQs
ICIqIiknXSwgIioiKTsKKyAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZUV2ZW50ID0gYXdhaXQg
d2FpdEZvcih3aW5kb3csICdtZXNzYWdlJyk7CisgICAgICAgICAgICAgICAgbGV0IGV4cGVjdGVk
TWVzc2FnZSA9IGZyYW1lLmdldEF0dHJpYnV0ZSgnZGF0YS1lbmFibGVkJyk7CisgICAgICAgICAg
ICAgICAgbGV0IGZyYW1lQXR0cmlidXRlcyA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChm
cmFtZS5hdHRyaWJ1dGVzLCBhdHRyaWJ1dGVGaWx0ZXIpLm1hcChhdHRyaWJ1dGVNYXApOworICAg
ICAgICAgICAgICAgIGxldCB0ZXN0RGVzY3JpcHRpb24gPSBgaWZyYW1lIHdpdGggJHsgZnJhbWVB
dHRyaWJ1dGVzLmpvaW4oJywgJykgfSBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2Ny
ZWVuRW5hYmxlZCA9PT0gJHsgZXhwZWN0ZWRNZXNzYWdlIH1gOworICAgICAgICAgICAgICAgIGlm
IChTdHJpbmcobWVzc2FnZUV2ZW50LmRhdGEpID09PSBleHBlY3RlZE1lc3NhZ2UpCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoYCR7dGVzdERlc2NyaXB0aW9ufS5gKTsKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoYCR7dGVzdERlc2Ny
aXB0aW9ufSwgd2FzICR7IG1lc3NhZ2VFdmVudC5kYXRhIH1gKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKGBTaG91bGQgbm90IHRo
cm93LiBUaHJldyBleGNlcHRpb24gJHsgZSB9LmApCisgICAgICAgIH0KKyAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8aWZyYW1lIGRhdGEt
ZW5hYmxlZD0iZmFsc2UiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlcy9wb2lu
dGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgZGF0YS1l
bmFibGVkPSJ0cnVlIiBzcmM9Ii4uL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1l
Lmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4iIGRhdGEtZW5h
YmxlZD0idHJ1ZSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VzL3BvaW50ZXIt
bG9jay9pbm5lci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVs
bHNjcmVlbiIgZGF0YS1lbmFibGVkPSJ0cnVlIiBzcmM9Ii4uL3Jlc291cmNlcy9wb2ludGVyLWxv
Y2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxz
Y3JlZW4gKiIgZGF0YS1lbmFibGVkPSJ0cnVlIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9y
ZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8
aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICoiIGRhdGEtZW5hYmxlZD0idHJ1ZSIgc3JjPSIuLi9y
ZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8
aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdub25lJyIgZGF0YS1lbmFibGVkPSJmYWxzZSIgc3Jj
PSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJh
bWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAnbm9uZSci
IGRhdGEtZW5hYmxlZD0iZmFsc2UiIHNyYz0iLi4vcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5l
ci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAn
c2VsZiciIGRhdGEtZW5hYmxlZD0iZmFsc2UiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jl
c291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxp
ZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gJ3NlbGYnIiBkYXRhLWVuYWJsZWQ9InRydWUiIHNyYz0i
Li4vcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cisg
ICAgPGlmcmFtZSBkYXRhLWVuYWJsZWQ9InRydWUiIGFsbG93ZnVsbHNjcmVlbiBzcmM9Imh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1s
Ij48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGRhdGEtZW5hYmxlZD0idHJ1ZSIgYWxsb3dmdWxsc2Ny
ZWVuIHNyYz0iLi4vcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUuaHRtbCI+PC9p
ZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAnbm9uZSciIGFsbG93ZnVsbHNj
cmVlbiBkYXRhLWVuYWJsZWQ9ImZhbHNlIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNv
dXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZy
YW1lIGFsbG93PSJmdWxsc2NyZWVuICdub25lJyIgYWxsb3dmdWxsc2NyZWVuIGRhdGEtZW5hYmxl
ZD0iZmFsc2UiIHNyYz0iLi4vcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUuaHRt
bCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAnc2VsZiciIGFsbG93
ZnVsbHNjcmVlbiBkYXRhLWVuYWJsZWQ9ImZhbHNlIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAg
ICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdzZWxmJyIgYWxsb3dmdWxsc2NyZWVuIGRhdGEt
ZW5hYmxlZD0idHJ1ZSIgc3JjPSIuLi9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFt
ZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGRhdGEtZW5hYmxlZD0idHJ1ZSIgd2Via2l0
YWxsb3dmdWxsc2NyZWVuIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlcy9wb2lu
dGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgZGF0YS1l
bmFibGVkPSJ0cnVlIiB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4gc3JjPSIuLi9yZXNvdXJjZXMvcG9p
bnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93
PSJmdWxsc2NyZWVuICdub25lJyIgd2Via2l0YWxsb3dmdWxsc2NyZWVuIGRhdGEtZW5hYmxlZD0i
ZmFsc2UiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlcy9wb2ludGVyLWxvY2sv
aW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3Jl
ZW4gJ25vbmUnIiB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4gZGF0YS1lbmFibGVkPSJmYWxzZSIgc3Jj
PSIuLi9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4K
KyAgICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdzZWxmJyIgd2Via2l0YWxsb3dmdWxsc2Ny
ZWVuIGRhdGEtZW5hYmxlZD0iZmFsc2UiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJh
bWUgYWxsb3c9ImZ1bGxzY3JlZW4gJ3NlbGYnIiB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4gZGF0YS1l
bmFibGVkPSJ0cnVlIiBzcmM9Ii4uL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1l
Lmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388804</attachid>
            <date>2020-01-26 09:46:02 -0800</date>
            <delta_ts>2020-01-26 10:11:15 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-206806-20200126094529.patch</filename>
            <type>text/plain</type>
            <size>27478</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjViYmI3MTFjMDc2MGYx
NTZiMDZiYmYwM2QxMTA2MjNmNDQ0NjQwMS4uMTkwYzI2NThiNjcxODRlZTU3MzAwYzJlNDhlMGE3
ZDUzYTcxYWYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTAxLTI1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgJ2FsbG93PSJm
dWxsc2NyZWVuIicgZmVhdHVyZSBwb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNjgwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU2NDA0
NDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBUZXN0
OiBodHRwL3Rlc3RzL2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1mZWF0dXJlLXBvbGljeS5odG1sCisK
KyAgICAgICAgVGhlIHVucHJlZml4ZWQgdmVyc2lvbiBvZiB0aGUgRnVsbHNjcmVlbiBBUEkgaGFz
IGRlcHJlY2F0ZWQgdGhlICdhbGxvd2Z1bGxzY3JlZW4nIGlmcmFtZQorICAgICAgICBhdHRyaWJ1
dGUgaW4gZmF2b3Igb2YgdGhlICdhbGxvdz0iZnVsbHNjcmVlbiInIHN0eWxlIGF0dHJpYnV0ZSB1
c2VkIGJ5IEZlYXR1cmUgUG9saWN5LgorICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc3VjaCwgaW5j
bHVkaW5nIHRoZSBzcGVjaWZpZWQgaGFuZGxpbmcgZm9yIHRoZSBsZWdhY3kgJ2FsbG93ZnVsbHNj
cmVlbicKKyAgICAgICAgYXR0cmlidXRlLgorCisgICAgICAgIE5vdGU6IHRoaXMgcGF0Y2ggd2ls
bCAoaW50ZW50aW9uYWxseSkgY2hhbmdlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIDxpZnJhbWU+
cy4gUHJldmlvdXNseQorICAgICAgICBhbnkgPGlmcmFtZT4gd2l0aG91dCB0aGUgImFsbG93ZnVs
bHNjcmVlbiIgYXR0cmlidXRlIHdvdWxkIG5vdCBiZSBhbGxvd2VkIHRvIGVudGVyIGZ1bGxzY3Jl
ZW4KKyAgICAgICAgbW9kZS4gQWZ0ZXIgdGhpcyBwYXRjaCwgPGlmcmFtZXM+IHdpdGhvdXQgdGhl
IGxlZ2FjeSBhdHRyaWJ1dGUgb3IgYW4gZXhwbGljaXQgZnVsbHNjcmVlbgorICAgICAgICBGZWF0
dXJlIFBvbGljeSB3aWxsIGJlIGFsbG93ZWQgdG8gZW50ZXIgZnVsbHNjcmVlbiBzbyBsb25nIGFz
IHRoZWlyIG9yaWdpbiBpcyB0aGUgc2FtZSBhcworICAgICAgICB0aGUgdG9wIGRvY3VtZW50IChh
bmQgdGhhdCBhbGwgcGFyZW50IGlmcmFtZXMgYXJlIGFsc28gYWxsb3dlZCB0byBlbnRlciBmdWxs
c2NyZWVuKS4KKworICAgICAgICAqIGRvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxzY3JlZW5NYW5hZ2VyOjppc0Z1bGxzY3JlZW5FbmFi
bGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmlzQXR0cmlidXRlT25BbGxPd25lcnMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5J
c0FsbG93ZWRGb3JFbGVtZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRnVsbHNj
cmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBodG1sL0ZlYXR1cmVQb2xpY3kuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMp
OgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZVBvbGljeTo6cGFyc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RmVhdHVyZVBvbGljeTo6YWxsb3dzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0ZlYXR1
cmVQb2xpY3kuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJRnJhbWVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSUZyYW1lRWxlbWVudDo6ZmVhdHVyZVBvbGljeSBjb25zdCk6CisgICAg
ICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBS
ZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OmlzU3luY1hIUkFsbG93
ZWRCeUZlYXR1cmVQb2xpY3kpOiBEZWxldGVkLgorCiAyMDIwLTAxLTIzICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtFTUVdIEtleSByZW5ld2FsIGZhaWxzIHdo
ZW4gdXNpbmcgQVZDb250ZW50S2V5UmVwb3J0R3JvdXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNj
cmVlbk1hbmFnZXIuY3BwCmluZGV4IGU5MDRjNDVlYTUzMDRjNTZiZjM3OTM0ZjhiYjE3MjJkZjRj
OGRkNTUuLjk2ZmI5YjEwZmQ2ZmYxNjhjMmM4MTRmYjY4MzliNTI1MjQxMDlhYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgotI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxJRnJhbWVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCkBAIC00NCwxNyArNDQs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAK
LXN0YXRpYyBib29sIGlzQXR0cmlidXRlT25BbGxPd25lcnMoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlLCBjb25zdCBRdWFsaWZpZWROYW1lJiBwcmVmaXhlZEF0dHJpYnV0ZSwgY29uc3Qg
SFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lcikKLXsKLSAgICBpZiAoIW93bmVyKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICBkbyB7Ci0gICAgICAgIGlmICghKG93bmVyLT5oYXNBdHRyaWJ1
dGUoYXR0cmlidXRlKSB8fCBvd25lci0+aGFzQXR0cmlidXRlKHByZWZpeGVkQXR0cmlidXRlKSkp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSB3aGlsZSAoKG93bmVyID0gb3duZXIt
PmRvY3VtZW50KCkub3duZXJFbGVtZW50KCkpKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogRnVs
bHNjcmVlbk1hbmFnZXI6OkZ1bGxzY3JlZW5NYW5hZ2VyKERvY3VtZW50JiBkb2N1bWVudCkKICAg
ICA6IG1fZG9jdW1lbnQgeyBkb2N1bWVudCB9CiB7CkBAIC02MiwxMSArNTEsNiBAQCBGdWxsc2Ny
ZWVuTWFuYWdlcjo6RnVsbHNjcmVlbk1hbmFnZXIoRG9jdW1lbnQmIGRvY3VtZW50KQogCiBGdWxs
c2NyZWVuTWFuYWdlcjo6fkZ1bGxzY3JlZW5NYW5hZ2VyKCkgPSBkZWZhdWx0OwogCi1ib29sIEZ1
bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuSXNBbGxvd2VkRm9yRWxlbWVudChFbGVtZW50JiBl
bGVtZW50KSBjb25zdAotewotICAgIHJldHVybiBpc0F0dHJpYnV0ZU9uQWxsT3duZXJzKGFsbG93
ZnVsbHNjcmVlbkF0dHIsIHdlYmtpdGFsbG93ZnVsbHNjcmVlbkF0dHIsIGVsZW1lbnQuZG9jdW1l
bnQoKS5vd25lckVsZW1lbnQoKSk7Ci19Ci0KIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVl
c3RGdWxsc2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGdWxsc2NyZWVuQ2hlY2tU
eXBlIGNoZWNrVHlwZSkKIHsKICAgICBpZiAoIWVsZW1lbnQpCkBAIC0xNDIsNyArMTI2LDcgQEAg
dm9pZCBGdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50KEVsZW1l
bnQqIGVsZW1lbnQsIEZ1bGxzY3JlZW4KIAogICAgICAgICAvLyBUaGUgY29udGV4dCBvYmplY3Qn
cyBub2RlIGRvY3VtZW50LCBvciBhbiBhbmNlc3RvciBicm93c2luZyBjb250ZXh0J3MgZG9jdW1l
bnQgZG9lcyBub3QgaGF2ZQogICAgICAgICAvLyB0aGUgZnVsbHNjcmVlbiBlbmFibGVkIGZsYWcg
c2V0LgotICAgICAgICBpZiAoY2hlY2tUeXBlID09IEVuZm9yY2VJRnJhbWVBbGxvd0Z1bGxzY3Jl
ZW5SZXF1aXJlbWVudCAmJiAhZnVsbHNjcmVlbklzQWxsb3dlZEZvckVsZW1lbnQoKmVsZW1lbnQp
KSB7CisgICAgICAgIGlmIChjaGVja1R5cGUgPT0gRW5mb3JjZUlGcmFtZUFsbG93RnVsbHNjcmVl
blJlcXVpcmVtZW50ICYmICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93
bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpGdWxsc2NyZWVuLCBkb2N1bWVudCgpKSkgewogICAg
ICAgICAgICAgZmFpbGVkUHJlZmxpZ2h0cyhXVEZNb3ZlKGVsZW1lbnQpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpAQCAtMzQ1LDcgKzMyOSw3IEBAIGJvb2wgRnVsbHNjcmVlbk1h
bmFnZXI6OmlzRnVsbHNjcmVlbkVuYWJsZWQoKSBjb25zdAogICAgIC8vIGJyb3dzaW5nIGNvbnRl
eHQncyBkb2N1bWVudHMgaGF2ZSB0aGVpciBmdWxsc2NyZWVuIGVuYWJsZWQgZmxhZyBzZXQsIG9y
IGZhbHNlIG90aGVyd2lzZS4KIAogICAgIC8vIFRvcC1sZXZlbCBicm93c2luZyBjb250ZXh0cyBh
cmUgaW1wbGllZCB0byBoYXZlIHRoZWlyIGFsbG93RnVsbHNjcmVlbiBhdHRyaWJ1dGUgc2V0Lgot
ICAgIHJldHVybiBpc0F0dHJpYnV0ZU9uQWxsT3duZXJzKGFsbG93ZnVsbHNjcmVlbkF0dHIsIHdl
YmtpdGFsbG93ZnVsbHNjcmVlbkF0dHIsIGRvY3VtZW50KCkub3duZXJFbGVtZW50KCkpOworICAg
IHJldHVybiBpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0
dXJlUG9saWN5OjpUeXBlOjpGdWxsc2NyZWVuLCBkb2N1bWVudCgpKTsKIH0KIAogc3RhdGljIHZv
aWQgdW53cmFwRnVsbHNjcmVlblJlbmRlcmVyKFJlbmRlckZ1bGxTY3JlZW4qIGZ1bGxzY3JlZW5S
ZW5kZXJlciwgRWxlbWVudCogZnVsbHNjcmVlbkVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxs
c2NyZWVuTWFuYWdlci5oCmluZGV4IGJmZDIxN2ZkMTE5NWEwYzlmMTMxMDdlYmRmN2YzYjlhMDA3
M2RkMTAuLjBjNWIyZWU3YTk5OTE3YzI2N2QxMjMxMmI4ZGY3ZTk2ZDI0NzdhZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC04Myw3ICs4Myw2IEBAIHB1YmxpYzoK
ICAgICBSZW5kZXJGdWxsU2NyZWVuKiBmdWxsc2NyZWVuUmVuZGVyZXIoKSBjb25zdDsKIAogICAg
IHZvaWQgZGlzcGF0Y2hGdWxsc2NyZWVuQ2hhbmdlRXZlbnRzKCk7Ci0gICAgYm9vbCBmdWxsc2Ny
ZWVuSXNBbGxvd2VkRm9yRWxlbWVudChFbGVtZW50JikgY29uc3Q7CiAgICAgdm9pZCBmdWxsc2Ny
ZWVuRWxlbWVudFJlbW92ZWQoKTsKIAogICAgIHZvaWQgYWRqdXN0RnVsbHNjcmVlbkVsZW1lbnRP
bk5vZGVSZW1vdmFsKE5vZGUmLCBEb2N1bWVudDo6Tm9kZVJlbW92YWwgPSBEb2N1bWVudDo6Tm9k
ZVJlbW92YWw6Ok5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJl
UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAKaW5kZXgg
ZTQzNDJhZWVhNjBhM2FhZTI2YWMxM2E5NWQ2ZDZjZDUzYWFiNTIwOC4uYjUzYWM0ZjczYmMzN2E2
ZDQ5ZTVmMjA0NGQxOTEyMGI3OTg0M2FiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GZWF0dXJlUG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xp
Y3kuY3BwCkBAIC0yNywxMSArMjcsMzUgQEAKICNpbmNsdWRlICJGZWF0dXJlUG9saWN5LmgiCiAK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorYm9vbCBp
c0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5
OjpUeXBlIHR5cGUsIGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBhdXRvJiB0b3BE
b2N1bWVudCA9IGRvY3VtZW50LnRvcERvY3VtZW50KCk7CisgICAgYXV0byBhbmNlc3RvckRvY3Vt
ZW50ID0gJmRvY3VtZW50OworICAgIHdoaWxlIChhbmNlc3RvckRvY3VtZW50ICE9ICZ0b3BEb2N1
bWVudCkgeworICAgICAgICBpZiAoIWFuY2VzdG9yRG9jdW1lbnQpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICAgICAgYXV0byBvd25lckVsZW1lbnQgPSBhbmNlc3RvckRvY3VtZW50
LT5vd25lckVsZW1lbnQoKTsKKyAgICAgICAgaWYgKCFpczxIVE1MSUZyYW1lRWxlbWVudD4ob3du
ZXJFbGVtZW50KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBhdXRvIGZl
YXR1cmVQb2xpY3kgPSBkb3duY2FzdDxIVE1MSUZyYW1lRWxlbWVudD4ob3duZXJFbGVtZW50KS0+
ZmVhdHVyZVBvbGljeSgpOworICAgICAgICBpZiAoIWZlYXR1cmVQb2xpY3kuYWxsb3dzKHR5cGUs
IGFuY2VzdG9yRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICBhbmNlc3RvckRvY3VtZW50ID0gYW5jZXN0b3JEb2N1
bWVudC0+cGFyZW50RG9jdW1lbnQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwog
c3RhdGljIGJvb2wgaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KGNvbnN0IEZlYXR1cmVQb2xpY3k6
OkFsbG93UnVsZSYgcnVsZSwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4pCiB7CiAg
ICAgc3dpdGNoIChydWxlLnR5cGUpIHsKQEAgLTk0LDEzICsxMTgsMTQgQEAgc3RhdGljIGlubGlu
ZSB2b2lkIHVwZGF0ZUxpc3QoRG9jdW1lbnQmIGRvY3VtZW50LCBGZWF0dXJlUG9saWN5OjpBbGxv
d1J1bGUmIHJ1bGUKICAgICB9CiB9CiAKLUZlYXR1cmVQb2xpY3kgRmVhdHVyZVBvbGljeTo6cGFy
c2UoRG9jdW1lbnQmIGRvY3VtZW50LCBTdHJpbmdWaWV3IGFsbG93QXR0cmlidXRlVmFsdWUpCitG
ZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgSFRNTElGcmFtZUVsZW1lbnQmIGlmcmFtZSwgU3RyaW5nVmlldyBhbGxvd0F0dHJpYnV0ZVZh
bHVlKQogewogICAgIEZlYXR1cmVQb2xpY3kgcG9saWN5OwogICAgIGJvb2wgaXNDYW1lcmFJbml0
aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNNaWNyb3Bob25lSW5pdGlhbGl6ZWQgPSBmYWxz
ZTsKICAgICBib29sIGlzRGlzcGxheUNhcHR1cmVJbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJv
b2wgaXNTeW5jWEhSSW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAgICBib29sIGlzRnVsbHNjcmVlbklu
aXRpYWxpemVkID0gZmFsc2U7CiAgICAgZm9yIChhdXRvIGFsbG93SXRlbSA6IGFsbG93QXR0cmli
dXRlVmFsdWUuc3BsaXQoJzsnKSkgewogICAgICAgICBhdXRvIGl0ZW0gPSBhbGxvd0l0ZW0uc3Ry
aXBMZWFkaW5nQW5kVHJhaWxpbmdNYXRjaGVkQ2hhcmFjdGVycyhpc0hUTUxTcGFjZTxVQ2hhcj4p
OwogICAgICAgICBpZiAoaXRlbS5zdGFydHNXaXRoKCJjYW1lcmEiKSkgewpAQCAtMTIzLDkgKzE0
OCwxNCBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1
bWVudCwgU3RyaW5nVmlldyBhbGxvd0F0dHJpYnV0ZQogICAgICAgICAgICAgdXBkYXRlTGlzdChk
b2N1bWVudCwgcG9saWN5Lm1fc3luY1hIUlJ1bGUsIGl0ZW0uc3Vic3RyaW5nKDgpKTsKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CisgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgo
ImZ1bGxzY3JlZW4iKSkgeworICAgICAgICAgICAgaXNGdWxsc2NyZWVuSW5pdGlhbGl6ZWQgPSB0
cnVlOworICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVudCwgcG9saWN5Lm1fZnVsbHNjcmVl
blJ1bGUsIGl0ZW0uc3Vic3RyaW5nKDExKSk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgfQogICAgIH0KIAotICAgIC8vIEJ5IGRlZmF1bHQsIGNhbWVyYSwgbWljcm9waG9uZSBhbmQg
ZGlzcGxheS1jYXB0dXJlIHBvbGljeSBpcyAnc2VsZicKKyAgICAvLyBCeSBkZWZhdWx0LCBjYW1l
cmEsIG1pY3JvcGhvbmUsIGRpc3BsYXktY2FwdHVyZSwgYW5kIGZ1bGxzY3JlZW4gcG9saWN5IGlz
ICdzZWxmJwogICAgIGlmICghaXNDYW1lcmFJbml0aWFsaXplZCkKICAgICAgICAgcG9saWN5Lm1f
Y2FtZXJhUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRh
KCkpOwogICAgIGlmICghaXNNaWNyb3Bob25lSW5pdGlhbGl6ZWQpCkBAIC0xMzMsNiArMTYzLDIx
IEBAIEZlYXR1cmVQb2xpY3kgRmVhdHVyZVBvbGljeTo6cGFyc2UoRG9jdW1lbnQmIGRvY3VtZW50
LCBTdHJpbmdWaWV3IGFsbG93QXR0cmlidXRlCiAgICAgaWYgKCFpc0Rpc3BsYXlDYXB0dXJlSW5p
dGlhbGl6ZWQpCiAgICAgICAgIHBvbGljeS5tX2Rpc3BsYXlDYXB0dXJlUnVsZS5hbGxvd2VkTGlz
dC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOwogCisgICAgLy8gaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL3dlYmFwcHNlYy1mZWF0dXJlLXBvbGljeS8jcHJvY2Vzcy1mZWF0dXJl
LXBvbGljeS1hdHRyaWJ1dGVzCisgICAgLy8gOS41IFByb2Nlc3MgRmVhdHVyZSBQb2xpY3kgQXR0
cmlidXRlcworICAgIC8vIDMuMSBJZiBlbGVtZW504oCZcyBhbGxvd2Z1bGxzY3JlZW4gYXR0cmli
dXRlIGlzIHNwZWNpZmllZCwgYW5kIGNvbnRhaW5lciBwb2xpY3kgZG9lcworICAgIC8vICAgICBu
b3QgY29udGFpbiBhbiBhbGxvd2xpc3QgZm9yIGZ1bGxzY3JlZW4sCisgICAgaWYgKCFpc0Z1bGxz
Y3JlZW5Jbml0aWFsaXplZCkgeworICAgICAgICBpZiAoaWZyYW1lLmhhc0F0dHJpYnV0ZShhbGxv
d2Z1bGxzY3JlZW5BdHRyKSB8fCBpZnJhbWUuaGFzQXR0cmlidXRlKHdlYmtpdGFsbG93ZnVsbHNj
cmVlbkF0dHIpKSB7CisgICAgICAgICAgICAvLyAzLjEuMSBDb25zdHJ1Y3QgYSBuZXcgZGVjbGFy
YXRpb24gZm9yIGZ1bGxzY3JlZW4sIHdob3NlIGFsbG93bGlzdCBpcyB0aGUgc3BlY2lhbCB2YWx1
ZSAqLgorICAgICAgICAgICAgcG9saWN5Lm1fZnVsbHNjcmVlblJ1bGUudHlwZSA9IEZlYXR1cmVQ
b2xpY3k6OkFsbG93UnVsZTo6VHlwZTo6QWxsOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgLy8gaHR0cHM6Ly9mdWxsc2NyZWVuLnNwZWMud2hhdHdnLm9yZy8jZmVhdHVyZS1wb2xpY3kt
aW50ZWdyYXRpb24KKyAgICAgICAgICAgIC8vIFRoZSBkZWZhdWx0IGFsbG93bGlzdCBpcyAnc2Vs
ZicuCisgICAgICAgICAgICBwb2xpY3kubV9mdWxsc2NyZWVuUnVsZS5hbGxvd2VkTGlzdC5hZGQo
ZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOworICAgICAgICB9CisgICAgfQorCiAg
ICAgaWYgKCFpc1N5bmNYSFJJbml0aWFsaXplZCkKICAgICAgICAgcG9saWN5Lm1fc3luY1hIUlJ1
bGUudHlwZSA9IEFsbG93UnVsZTo6VHlwZTo6QWxsOwogCkBAIC0xNTAsNiArMTk1LDggQEAgYm9v
bCBGZWF0dXJlUG9saWN5OjphbGxvd3MoVHlwZSB0eXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIG9yaWdpbikgY29uc3QKICAgICAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGlj
eShtX2Rpc3BsYXlDYXB0dXJlUnVsZSwgb3JpZ2luKTsKICAgICBjYXNlIFR5cGU6OlN5bmNYSFI6
CiAgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV9zeW5jWEhSUnVsZSwg
b3JpZ2luKTsKKyAgICBjYXNlIFR5cGU6OkZ1bGxzY3JlZW46CisgICAgICAgIHJldHVybiBpc0Fs
bG93ZWRCeUZlYXR1cmVQb2xpY3kobV9mdWxsc2NyZWVuUnVsZSwgb3JpZ2luKTsKICAgICB9CiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ZlYXR1cmVQb2xpY3kuaAppbmRleCBmYzcxZGZlMmE1ZDczZGY1MTE2ZGRhNmE2ZTc0MTljNjA5
YmY1MWQ1Li42NTRmYjgzOGYwYjQwMTVlYjRkMzY2NDhhNDE1MTg3MWJhZGY0MDg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaApAQCAtMzIsMTIgKzMyLDEzIEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OworY2xhc3MgSFRNTElGcmFtZUVsZW1lbnQ7CiAK
IGNsYXNzIEZlYXR1cmVQb2xpY3kgewogcHVibGljOgotICAgIHN0YXRpYyBGZWF0dXJlUG9saWN5
IHBhcnNlKERvY3VtZW50JiwgU3RyaW5nVmlldyk7CisgICAgc3RhdGljIEZlYXR1cmVQb2xpY3kg
cGFyc2UoRG9jdW1lbnQmLCBjb25zdCBIVE1MSUZyYW1lRWxlbWVudCYsIFN0cmluZ1ZpZXcpOwog
Ci0gICAgZW51bSBjbGFzcyBUeXBlIHsgQ2FtZXJhLCBNaWNyb3Bob25lLCBEaXNwbGF5Q2FwdHVy
ZSwgU3luY1hIUiB9OworICAgIGVudW0gY2xhc3MgVHlwZSB7IENhbWVyYSwgTWljcm9waG9uZSwg
RGlzcGxheUNhcHR1cmUsIFN5bmNYSFIsIEZ1bGxzY3JlZW4gfTsKICAgICBib29sIGFsbG93cyhU
eXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKSBjb25zdDsKIAogICAgIHN0cnVjdCBBbGxv
d1J1bGUgewpAQCAtNTEsNiArNTIsOSBAQCBwcml2YXRlOgogICAgIEFsbG93UnVsZSBtX21pY3Jv
cGhvbmVSdWxlOwogICAgIEFsbG93UnVsZSBtX2Rpc3BsYXlDYXB0dXJlUnVsZTsKICAgICBBbGxv
d1J1bGUgbV9zeW5jWEhSUnVsZTsKKyAgICBBbGxvd1J1bGUgbV9mdWxsc2NyZWVuUnVsZTsKIH07
CiAKK2V4dGVybiBib29sIGlzRmVhdHVyZVBvbGljeUFsbG93ZWRCeURvY3VtZW50QW5kQWxsT3du
ZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGUsIGNvbnN0IERvY3VtZW50Jik7CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKaW5k
ZXggYWUzYzhhOTE0OWQ1OGNiNDkxZGQ4MmRkMWQzMjQ2ODJlZTk0YTg0Yy4uM2U5ZmM4YTlhZDhh
MGY2NjAyNGE4MGQ5ODY1YmUzMWNmN2FiOWI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SUZyYW1lRWxlbWVudC5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lkIEhUTUxJRnJhbWVFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaQogICAgICAgICBzZXRTYW5kYm94RmxhZ3ModmFsdWUuaXNOdWxsKCkgPyBTYW5kYm94Tm9u
ZSA6IFNlY3VyaXR5Q29udGV4dDo6cGFyc2VTYW5kYm94UG9saWN5KHZhbHVlLCBpbnZhbGlkVG9r
ZW5zKSk7CiAgICAgICAgIGlmICghaW52YWxpZFRva2Vucy5pc051bGwoKSkKICAgICAgICAgICAg
IGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3Nh
Z2VMZXZlbDo6RXJyb3IsICJFcnJvciB3aGlsZSBwYXJzaW5nIHRoZSAnc2FuZGJveCcgYXR0cmli
dXRlOiAiICsgaW52YWxpZFRva2Vucyk7Ci0gICAgfSBlbHNlIGlmIChuYW1lID09IGFsbG93QXR0
cikKKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gYWxsb3dBdHRyIHx8IG5hbWUgPT0gYWxsb3dmdWxs
c2NyZWVuQXR0ciB8fCBuYW1lID09IHdlYmtpdGFsbG93ZnVsbHNjcmVlbkF0dHIpCiAgICAgICAg
IG1fZmVhdHVyZVBvbGljeSA9IFdURjo6bnVsbG9wdDsKICAgICBlbHNlCiAgICAgICAgIEhUTUxG
cmFtZUVsZW1lbnRCYXNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CkBAIC0xMzgsNyAr
MTM4LDcgQEAgUmVmZXJyZXJQb2xpY3kgSFRNTElGcmFtZUVsZW1lbnQ6OnJlZmVycmVyUG9saWN5
KCkgY29uc3QKIGNvbnN0IEZlYXR1cmVQb2xpY3kmIEhUTUxJRnJhbWVFbGVtZW50OjpmZWF0dXJl
UG9saWN5KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZmVhdHVyZVBvbGljeSkKLSAgICAgICAgbV9m
ZWF0dXJlUG9saWN5ID0gRmVhdHVyZVBvbGljeTo6cGFyc2UoZG9jdW1lbnQoKSwgYXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihhbGxvd0F0dHIpKTsKKyAgICAgICAgbV9mZWF0dXJlUG9s
aWN5ID0gRmVhdHVyZVBvbGljeTo6cGFyc2UoZG9jdW1lbnQoKSwgKnRoaXMsIGF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oYWxsb3dBdHRyKSk7CiAgICAgcmV0dXJuICptX2ZlYXR1cmVQ
b2xpY3k7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDEzNTNl
NWRmNmY5Y2I4NWMxMjlmYjc1NDgzYWNiNjIyM2MzNTZlZDkuLjM5ZDhjYTU5MjU4ZDYxNjJkNGY4
Yjk5NWNkM2M5OTA5ZTk1ZmVkODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cApAQCAtNTc4LDIzICs1NzgsNiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6
c2VuZEJ5dGVzRGF0YShjb25zdCB2b2lkKiBkYXRhLCBzaXplX3QgbGVuZ3RoKQogICAgIHJldHVy
biBjcmVhdGVSZXF1ZXN0KCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1N5bmNYSFJBbGxv
d2VkQnlGZWF0dXJlUG9saWN5KERvY3VtZW50JiBkb2N1bWVudCkKLXsKLSAgICBhdXRvJiB0b3BE
b2N1bWVudCA9IGRvY3VtZW50LnRvcERvY3VtZW50KCk7Ci0gICAgaWYgKCZkb2N1bWVudCAhPSAm
dG9wRG9jdW1lbnQpIHsKLSAgICAgICAgZm9yIChhdXRvKiBhbmNlc3RvckRvY3VtZW50ID0gJmRv
Y3VtZW50OyBhbmNlc3RvckRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudDsgYW5jZXN0b3JEb2N1bWVu
dCA9IGFuY2VzdG9yRG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCkpIHsKLSAgICAgICAgICAgIGF1
dG8qIGVsZW1lbnQgPSBhbmNlc3RvckRvY3VtZW50LT5vd25lckVsZW1lbnQoKTsKLSAgICAgICAg
ICAgIEFTU0VSVChlbGVtZW50KTsKLSAgICAgICAgICAgIGlmIChlbGVtZW50ICYmIGlzPEhUTUxJ
RnJhbWVFbGVtZW50PigqZWxlbWVudCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvJiBmZWF0dXJl
UG9saWN5ID0gZG93bmNhc3Q8SFRNTElGcmFtZUVsZW1lbnQ+KCplbGVtZW50KS5mZWF0dXJlUG9s
aWN5KCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFmZWF0dXJlUG9saWN5LmFsbG93cyhGZWF0dXJl
UG9saWN5OjpUeXBlOjpTeW5jWEhSLCBhbmNlc3RvckRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigp
LmRhdGEoKSkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogRXhjZXB0aW9uT3I8
dm9pZD4gWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoKQogewogICAgIC8vIE9ubHkgR0VU
IHJlcXVlc3QgaXMgc3VwcG9ydGVkIGZvciBibG9iIFVSTC4KQEAgLTY2OCw3ICs2NTEsNyBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAgICAg
IGlmIChtX2xvYWRlcikKICAgICAgICAgICAgIHNldFBlbmRpbmdBY3Rpdml0eSgqdGhpcyk7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1
bWVudCgpICYmICFpc1N5bmNYSFJBbGxvd2VkQnlGZWF0dXJlUG9saWN5KCpkb2N1bWVudCgpKSkK
KyAgICAgICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpICYmICFp
c0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5
OjpUeXBlOjpTeW5jWEhSLCAqZG9jdW1lbnQoKSkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTmV0d29ya0Vycm9yIH07CiAKICAgICAgICAgcmVxdWVzdC5zZXREb21haW5Gb3JDYWNo
ZVBhcnRpdGlvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmRvbWFpbkZvckNhY2hlUGFydGl0
aW9uKCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGUxNDgwZTdhNjZiMjZkNGZhMWYzZDljZjgwNzQ2MmU1YTVkMmFkYzgu
LmRhMjdlZTNmZmI4M2Q1OTU2ZDliMzJkMzAzNmRlNTU5OGI3YmE2OWUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOCBAQAorMjAyMC0wMS0yNSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKwor
ICAgICAgICBTdXBwb3J0ICdhbGxvdz0iZnVsbHNjcmVlbiInIGZlYXR1cmUgcG9saWN5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY4MDYKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzU1NjQwNDQ4PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVu
biBGYWJsZXQuCisKKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWVuYWJsZWQtcHJl
Zml4ZWQuaHRtbDoKKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWVuYWJsZWQuaHRt
bDoKKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1ub3QtYWxsb3dlZC5o
dG1sOgorICAgICAgICAqIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVzdHJpY3Rpb25zLmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9mdWxsc2NyZWVuL2Z1bGxzY3JlZW4tZmVhdHVyZS1wb2xp
Y3ktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2Z1bGxzY3JlZW4v
ZnVsbHNjcmVlbi1mZWF0dXJlLXBvbGljeS5odG1sOiBBZGRlZC4KKwogMjAyMC0wMS0xNyAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXSBEZWNvZGUgZ2xp
dGNoZXMgd2hlbiB3YXRjaGluZyB2aWRlb3Mgb24gQ05OLmNvbQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1lbmFibGVkLXByZWZpeGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWVuYWJsZWQtcHJlZml4ZWQuaHRtbAppbmRl
eCA2ZDEwYmU1MjU1MWY0ZjhlZmE2YjkyNDg5MTRmMTY4NGQ2NGM5OTJiLi42MThhYWRmYTVkZDIz
ODY1ZTY2NTZhYTk3OTAyNTQ1NGFlMjViMzgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mdWxs
c2NyZWVuL2Z1bGwtc2NyZWVuLWVuYWJsZWQtcHJlZml4ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWVuYWJsZWQtcHJlZml4ZWQuaHRtbApAQCAtNiw2ICs2
LDcgQEAKICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpKTsKICAgICBpZnJhbWUuc2V0QXR0
cmlidXRlKCd3ZWJraXRhbGxvd2Z1bGxzY3JlZW4nLCAndHJ1ZScpOwogICAgIHZhciBpZnJhbWUy
ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2lmcmFtZScpKTsKKyAgICBpZnJhbWUyLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAiZnVs
bHNjcmVlbiAnbm9uZSciKTsKICAgICB0ZXN0RXhwZWN0ZWQoJ2lmcmFtZS5jb250ZW50RG9jdW1l
bnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQnLCB0cnVlKTsKICAgICB0ZXN0RXhwZWN0ZWQoJ2lm
cmFtZTIuY29udGVudERvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkJywgZmFsc2UpOwog
ICAgIGVuZFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1z
Y3JlZW4tZW5hYmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1l
bmFibGVkLmh0bWwKaW5kZXggNjYxN2M0ZGFlMzI0NzVhYzY1ODA2ZjYxM2E1Njk5MWU5Y2E1YTA5
My4uMmQwNjAxMDQ4OTMyMWUwY2FiNzNjMTBhZDlhOTgxZTNhNjY5ZjE4ZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1lbmFibGVkLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1lbmFibGVkLmh0bWwKQEAgLTYsNiArNiw3
IEBACiAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKSk7CiAgICAgaWZyYW1lLnNldEF0dHJp
YnV0ZSgnYWxsb3dmdWxsc2NyZWVuJywgJ3RydWUnKTsKICAgICB2YXIgaWZyYW1lMiA9IGRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdp
ZnJhbWUnKSk7CisgICAgaWZyYW1lMi5zZXRBdHRyaWJ1dGUoJ2FsbG93JywgImZ1bGxzY3JlZW4g
J25vbmUnIik7CiAgICAgdGVzdEV4cGVjdGVkKCdpZnJhbWUuY29udGVudERvY3VtZW50LndlYmtp
dEZ1bGxzY3JlZW5FbmFibGVkJywgdHJ1ZSk7CiAgICAgdGVzdEV4cGVjdGVkKCdpZnJhbWUyLmNv
bnRlbnREb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCcsIGZhbHNlKTsKICAgICBlbmRU
ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlm
cmFtZS1ub3QtYWxsb3dlZC5odG1sIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVl
bi1pZnJhbWUtbm90LWFsbG93ZWQuaHRtbAppbmRleCBhODgzM2RlZGJmNzg4OTRkYjgyZjM2NTA0
NTk1MTgzYWJiZTZjMjc1Li5jMmI2ZjhiNWE1MzBhN2I5NDUyOWU0MGY1MzEyNjUyYmY5YTJlOGIy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1u
b3QtYWxsb3dlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4t
aWZyYW1lLW5vdC1hbGxvd2VkLmh0bWwKQEAgLTIwLDUgKzIwLDUgQEAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKICAgICB9KTsKIH0KIDwvc2NyaXB0PgotPGlmcmFtZSBpZD0iZnJhbWUiIHNyYz0icmVz
b3VyY2VzL2lubmVyLmh0bWwiIG9ubG9hZD0icnVuVGVzdCgpIj4KKzxpZnJhbWUgaWQ9ImZyYW1l
IiBzcmM9InJlc291cmNlcy9pbm5lci5odG1sIiBvbmxvYWQ9InJ1blRlc3QoKSIgYWxsb3c9ImZ1
bGxzY3JlZW4gJ25vbmUnIj4KIDwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZnVs
bHNjcmVlbi9mdWxsLXNjcmVlbi1yZXN0cmljdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Z1bGxz
Y3JlZW4vZnVsbC1zY3JlZW4tcmVzdHJpY3Rpb25zLmh0bWwKaW5kZXggNGFkODQ0MDMwYjcyMjY5
MDA5OWExNWQ2NmFmMTk0MjQ0NTNkMmMyNS4uYmRjY2QwZmI0YWYwODFkYzg1ZGYzOGI4MzQ0ZTMy
YTY2NjAyZmNjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVl
bi1yZXN0cmljdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2Ny
ZWVuLXJlc3RyaWN0aW9ucy5odG1sCkBAIC0xOCw2ICsxOCw3IEBACiAgICAgICAgIHZhciBzdGVw
MiA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgY29uc29sZVdyaXRlKCciVGhlIGNvbnRleHQg
b2JqZWN0XCdzIG5vZGUgZG9jdW1lbnQsIG9yIGFuIGFuY2VzdG9yIGJyb3dzaW5nIGNvbnRleHRc
J3MgZG9jdW1lbnQgZG9lcyBub3QgaGF2ZSB0aGUgZnVsbHNjcmVlbiBlbmFibGVkIGZsYWcgc2V0
LiInKQogICAgICAgICAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKSk7CisgICAgICAgICAg
ICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhbGxvdycsICJmdWxsc2NyZWVuICdub25lJyIpOwogICAg
ICAgICAgICAgdmFyIGRpdiA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
LmFwcGVuZENoaWxkKGlmcmFtZS5jb250ZW50RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jykp
OwogCiAgICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKGlmcmFtZS5jb250ZW50RG9jdW1lbnQs
ICd3ZWJraXRmdWxsc2NyZWVuZXJyb3InLCBzdGVwMyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1mZWF0dXJlLXBvbGljeS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1mZWF0
dXJlLXBvbGljeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY2ZGQxYTM3OTQ1NWEzODVhNTA0
NmQwYTAyYWUyMWYzZGZjZjJiZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvZnVsbHNjcmVlbi9mdWxsc2NyZWVuLWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDI1IEBACitQQVNTIGlmcmFtZSB3aXRoIHNyYz0iaHR0cDovL2xvYy4uLiIgc2hv
dWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IGZhbHNlLgorUEFT
UyBpZnJhbWUgd2l0aCBzcmM9Ii4uL3Jlc291cmMuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50Lndl
YmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0cnVlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0i
ZnVsbHNjcmVlbiIsIHNyYz0iaHR0cDovL2xvYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Vi
a2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IHRydWUuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJm
dWxsc2NyZWVuIiwgc3JjPSIuLi9yZXNvdXJjLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJr
aXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gdHJ1ZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1
bGxzY3JlZW4gKiIsIHNyYz0iaHR0cDovL2xvYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Vi
a2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IHRydWUuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJm
dWxsc2NyZWVuICoiLCBzcmM9Ii4uL3Jlc291cmMuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50Lndl
YmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0cnVlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0i
ZnVsbHNjcmVlbiAnbm9uZSciLCBzcmM9Imh0dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRvY3Vt
ZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSBmYWxzZS4KK1BBU1MgaWZyYW1lIHdpdGgg
YWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUnIiwgc3JjPSIuLi9yZXNvdXJjLi4uIiBzaG91bGQgaGF2
ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gZmFsc2UuCitQQVNTIGlmcmFt
ZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuICdzZWxmJyIsIHNyYz0iaHR0cDovL2xvYy4uLiIgc2hv
dWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IGZhbHNlLgorUEFT
UyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAnc2VsZiciLCBzcmM9Ii4uL3Jlc291cmMu
Li4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0cnVl
LgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiBodHRwOi8vbG9jYWxob3N0Ojgw
MDAiLCBzcmM9Imh0dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxz
Y3JlZW5FbmFibGVkID09PSB0cnVlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVl
biBodHRwOi8vbG9jYWxob3N0OjgwMDAiLCBzcmM9Ii4uL3Jlc291cmMuLi4iIHNob3VsZCBoYXZl
IGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSBmYWxzZS4KK1BBU1MgaWZyYW1l
IHdpdGggYWxsb3dmdWxsc2NyZWVuLCBzcmM9Imh0dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRv
Y3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0cnVlLgorUEFTUyBpZnJhbWUgd2l0
aCBhbGxvd2Z1bGxzY3JlZW4sIHNyYz0iLi4vcmVzb3VyYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1l
bnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IHRydWUuCitQQVNTIGlmcmFtZSB3aXRoIGFs
bG93PSJmdWxsc2NyZWVuICdub25lJyIsIGFsbG93ZnVsbHNjcmVlbiwgc3JjPSJodHRwOi8vbG9j
Li4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gZmFs
c2UuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuICdub25lJyIsIGFsbG93ZnVs
bHNjcmVlbiwgc3JjPSIuLi9yZXNvdXJjLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRG
dWxsc2NyZWVuRW5hYmxlZCA9PT0gZmFsc2UuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxs
c2NyZWVuICdzZWxmJyIsIGFsbG93ZnVsbHNjcmVlbiwgc3JjPSJodHRwOi8vbG9jLi4uIiBzaG91
bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gZmFsc2UuCitQQVNT
IGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuICdzZWxmJyIsIGFsbG93ZnVsbHNjcmVlbiwg
c3JjPSIuLi9yZXNvdXJjLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVu
RW5hYmxlZCA9PT0gdHJ1ZS4KK1BBU1MgaWZyYW1lIHdpdGggd2Via2l0YWxsb3dmdWxsc2NyZWVu
LCBzcmM9Imh0dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3Jl
ZW5FbmFibGVkID09PSB0cnVlLgorUEFTUyBpZnJhbWUgd2l0aCB3ZWJraXRhbGxvd2Z1bGxzY3Jl
ZW4sIHNyYz0iLi4vcmVzb3VyYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNj
cmVlbkVuYWJsZWQgPT09IHRydWUuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVu
ICdub25lJyIsIHdlYmtpdGFsbG93ZnVsbHNjcmVlbiwgc3JjPSJodHRwOi8vbG9jLi4uIiBzaG91
bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gZmFsc2UuCitQQVNT
IGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuICdub25lJyIsIHdlYmtpdGFsbG93ZnVsbHNj
cmVlbiwgc3JjPSIuLi9yZXNvdXJjLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxs
c2NyZWVuRW5hYmxlZCA9PT0gZmFsc2UuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2Ny
ZWVuICdzZWxmJyIsIHdlYmtpdGFsbG93ZnVsbHNjcmVlbiwgc3JjPSJodHRwOi8vbG9jLi4uIiBz
aG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gZmFsc2UuCitQ
QVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuICdzZWxmJyIsIHdlYmtpdGFsbG93ZnVs
bHNjcmVlbiwgc3JjPSIuLi9yZXNvdXJjLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRG
dWxsc2NyZWVuRW5hYmxlZCA9PT0gdHJ1ZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9mdWxsc2NyZWVuL2Z1bGxzY3JlZW4tZmVhdHVyZS1wb2xpY3kuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvZnVsbHNjcmVlbi9mdWxsc2NyZWVuLWZlYXR1cmUtcG9saWN5Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZThkODNlNjkxYWJiMjA5ZWU2OTY5OGFiYWQxNmNkZjM4NmM0ZjQwNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZnVsbHNjcmVlbi9mdWxs
c2NyZWVuLWZlYXR1cmUtcG9saWN5Lmh0bWwKQEAgLTAsMCArMSw3NSBAQAorPCFET0NUWVBFIEhU
TUw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT5pZnJhbWUgeyBkaXNwbGF5OiBub25lOyB9
PC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gd2FpdEZvcihlbGVtZW50LCB0eXBlKSB7
CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIGVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBldmVudCA9PiB7CisgICAgICAgICAgICAgICAg
cmVzb2x2ZShldmVudCk7CisgICAgICAgICAgICB9LCB7IG9uY2U6IHRydWUgfSk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMg
ZXZlbnQgPT4geworICAgICAgICB0cnkgeworICAgICAgICAgICAgbGV0IGF0dHJpYnV0ZUZpbHRl
ciA9IGF0dHJpYnV0ZSA9PiB7IHJldHVybiBhdHRyaWJ1dGUubmFtZSAhPT0gJ2RhdGEtZW5hYmxl
ZCc7IH07CisgICAgICAgICAgICBsZXQgYXR0cmlidXRlTWFwID0gYXR0cmlidXRlID0+IHsKKyAg
ICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlLnZhbHVlID09PSAnJykKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGF0dHJpYnV0ZS5uYW1lOworICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1
dGUubmFtZSA9PT0gJ3NyYycpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHthdHRyaWJ1
dGUubmFtZX09IiR7YXR0cmlidXRlLnZhbHVlLnN1YnN0cmluZygwLCAxMCl9Li4uImA7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGAke2F0dHJpYnV0ZS5uYW1lfT0iJHthdHRyaWJ1dGUudmFsdWV9
ImA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAodmFyIGZyYW1lIG9mIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lmcmFtZScpKSB7CisgICAgICAgICAgICAgICAgZnJhbWUu
Y29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShbImV2YWwiLCAncGFyZW50LnBvc3RNZXNzYWdlKGRv
Y3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkLCAiKiIpJ10sICIqIik7CisgICAgICAgICAg
ICAgICAgbGV0IG1lc3NhZ2VFdmVudCA9IGF3YWl0IHdhaXRGb3Iod2luZG93LCAnbWVzc2FnZScp
OworICAgICAgICAgICAgICAgIGxldCBleHBlY3RlZE1lc3NhZ2UgPSBmcmFtZS5nZXRBdHRyaWJ1
dGUoJ2RhdGEtZW5hYmxlZCcpOworICAgICAgICAgICAgICAgIGxldCBmcmFtZUF0dHJpYnV0ZXMg
PSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoZnJhbWUuYXR0cmlidXRlcywgYXR0cmlidXRl
RmlsdGVyKS5tYXAoYXR0cmlidXRlTWFwKTsKKyAgICAgICAgICAgICAgICBsZXQgdGVzdERlc2Ny
aXB0aW9uID0gYGlmcmFtZSB3aXRoICR7IGZyYW1lQXR0cmlidXRlcy5qb2luKCcsICcpIH0gc2hv
dWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09ICR7IGV4cGVjdGVk
TWVzc2FnZSB9YDsKKyAgICAgICAgICAgICAgICBpZiAoU3RyaW5nKG1lc3NhZ2VFdmVudC5kYXRh
KSA9PT0gZXhwZWN0ZWRNZXNzYWdlKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGAk
e3Rlc3REZXNjcmlwdGlvbn0uYCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKGAke3Rlc3REZXNjcmlwdGlvbn0sIHdhcyAkeyBtZXNzYWdlRXZl
bnQuZGF0YSB9YCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAg
ICAgICAgdGVzdEZhaWxlZChgU2hvdWxkIG5vdCB0aHJvdy4gVGhyZXcgZXhjZXB0aW9uICR7IGUg
fS5gKQorICAgICAgICB9CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+CisgICAgPGlmcmFtZSBkYXRhLWVuYWJsZWQ9ImZhbHNlIiBzcmM9Imh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1s
Ij48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGRhdGEtZW5hYmxlZD0idHJ1ZSIgc3JjPSIuLi9yZXNv
dXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZy
YW1lIGFsbG93PSJmdWxsc2NyZWVuIiBkYXRhLWVuYWJsZWQ9InRydWUiIHNyYz0iaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwv
aWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4iIGRhdGEtZW5hYmxlZD0idHJ1
ZSIgc3JjPSIuLi9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lm
cmFtZT4KKyAgICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICoiIGRhdGEtZW5hYmxlZD0idHJ1
ZSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5l
ci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAq
IiBkYXRhLWVuYWJsZWQ9InRydWUiIHNyYz0iLi4vcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5l
ci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAn
bm9uZSciIGRhdGEtZW5hYmxlZD0iZmFsc2UiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jl
c291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxp
ZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUnIiBkYXRhLWVuYWJsZWQ9ImZhbHNlIiBzcmM9
Ii4uL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgor
ICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gJ3NlbGYnIiBkYXRhLWVuYWJsZWQ9ImZhbHNl
IiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVy
LWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdz
ZWxmJyIgZGF0YS1lbmFibGVkPSJ0cnVlIiBzcmM9Ii4uL3Jlc291cmNlcy9wb2ludGVyLWxvY2sv
aW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3Jl
ZW4gaHR0cDovL2xvY2FsaG9zdDo4MDAwIiBkYXRhLWVuYWJsZWQ9InRydWUiIHNyYz0iaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwi
PjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gaHR0cDovL2xvY2FsaG9z
dDo4MDAwIiBkYXRhLWVuYWJsZWQ9ImZhbHNlIiBzcmM9Ii4uL3Jlc291cmNlcy9wb2ludGVyLWxv
Y2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3dmdWxsc2Ny
ZWVuIGRhdGEtZW5hYmxlZD0idHJ1ZSIgIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJh
bWUgYWxsb3dmdWxsc2NyZWVuIGRhdGEtZW5hYmxlZD0idHJ1ZSIgc3JjPSIuLi9yZXNvdXJjZXMv
cG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFs
bG93PSJmdWxsc2NyZWVuICdub25lJyIgYWxsb3dmdWxsc2NyZWVuIGRhdGEtZW5hYmxlZD0iZmFs
c2UiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5u
ZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4g
J25vbmUnIiBhbGxvd2Z1bGxzY3JlZW4gZGF0YS1lbmFibGVkPSJmYWxzZSIgc3JjPSIuLi9yZXNv
dXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZy
YW1lIGFsbG93PSJmdWxsc2NyZWVuICdzZWxmJyIgYWxsb3dmdWxsc2NyZWVuIGRhdGEtZW5hYmxl
ZD0iZmFsc2UiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlcy9wb2ludGVyLWxv
Y2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxz
Y3JlZW4gJ3NlbGYnIiBhbGxvd2Z1bGxzY3JlZW4gZGF0YS1lbmFibGVkPSJ0cnVlIiBzcmM9Ii4u
L3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAg
IDxpZnJhbWUgd2Via2l0YWxsb3dmdWxsc2NyZWVuIGRhdGEtZW5hYmxlZD0idHJ1ZSIgc3JjPSJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUu
aHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4gZGF0YS1l
bmFibGVkPSJ0cnVlIiBzcmM9Ii4uL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1l
Lmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUnIiB3
ZWJraXRhbGxvd2Z1bGxzY3JlZW4gZGF0YS1lbmFibGVkPSJmYWxzZSIgc3JjPSJodHRwOi8vbG9j
YWxob3N0OjgwMDAvcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUuaHRtbCI+PC9p
ZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAnbm9uZSciIHdlYmtpdGFsbG93
ZnVsbHNjcmVlbiBkYXRhLWVuYWJsZWQ9ImZhbHNlIiBzcmM9Ii4uL3Jlc291cmNlcy9wb2ludGVy
LWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1
bGxzY3JlZW4gJ3NlbGYnIiB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4gZGF0YS1lbmFibGVkPSJmYWxz
ZSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5l
ci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAn
c2VsZiciIHdlYmtpdGFsbG93ZnVsbHNjcmVlbiBkYXRhLWVuYWJsZWQ9InRydWUiIHNyYz0iLi4v
cmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8L2Jv
ZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388805</attachid>
            <date>2020-01-26 10:11:16 -0800</date>
            <delta_ts>2020-01-26 11:56:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-206806-20200126101044.patch</filename>
            <type>text/plain</type>
            <size>27508</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjViYmI3MTFjMDc2MGYx
NTZiMDZiYmYwM2QxMTA2MjNmNDQ0NjQwMS4uMTkwYzI2NThiNjcxODRlZTU3MzAwYzJlNDhlMGE3
ZDUzYTcxYWYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTAxLTI1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgJ2FsbG93PSJm
dWxsc2NyZWVuIicgZmVhdHVyZSBwb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNjgwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU2NDA0
NDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBUZXN0
OiBodHRwL3Rlc3RzL2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1mZWF0dXJlLXBvbGljeS5odG1sCisK
KyAgICAgICAgVGhlIHVucHJlZml4ZWQgdmVyc2lvbiBvZiB0aGUgRnVsbHNjcmVlbiBBUEkgaGFz
IGRlcHJlY2F0ZWQgdGhlICdhbGxvd2Z1bGxzY3JlZW4nIGlmcmFtZQorICAgICAgICBhdHRyaWJ1
dGUgaW4gZmF2b3Igb2YgdGhlICdhbGxvdz0iZnVsbHNjcmVlbiInIHN0eWxlIGF0dHJpYnV0ZSB1
c2VkIGJ5IEZlYXR1cmUgUG9saWN5LgorICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc3VjaCwgaW5j
bHVkaW5nIHRoZSBzcGVjaWZpZWQgaGFuZGxpbmcgZm9yIHRoZSBsZWdhY3kgJ2FsbG93ZnVsbHNj
cmVlbicKKyAgICAgICAgYXR0cmlidXRlLgorCisgICAgICAgIE5vdGU6IHRoaXMgcGF0Y2ggd2ls
bCAoaW50ZW50aW9uYWxseSkgY2hhbmdlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIDxpZnJhbWU+
cy4gUHJldmlvdXNseQorICAgICAgICBhbnkgPGlmcmFtZT4gd2l0aG91dCB0aGUgImFsbG93ZnVs
bHNjcmVlbiIgYXR0cmlidXRlIHdvdWxkIG5vdCBiZSBhbGxvd2VkIHRvIGVudGVyIGZ1bGxzY3Jl
ZW4KKyAgICAgICAgbW9kZS4gQWZ0ZXIgdGhpcyBwYXRjaCwgPGlmcmFtZXM+IHdpdGhvdXQgdGhl
IGxlZ2FjeSBhdHRyaWJ1dGUgb3IgYW4gZXhwbGljaXQgZnVsbHNjcmVlbgorICAgICAgICBGZWF0
dXJlIFBvbGljeSB3aWxsIGJlIGFsbG93ZWQgdG8gZW50ZXIgZnVsbHNjcmVlbiBzbyBsb25nIGFz
IHRoZWlyIG9yaWdpbiBpcyB0aGUgc2FtZSBhcworICAgICAgICB0aGUgdG9wIGRvY3VtZW50IChh
bmQgdGhhdCBhbGwgcGFyZW50IGlmcmFtZXMgYXJlIGFsc28gYWxsb3dlZCB0byBlbnRlciBmdWxs
c2NyZWVuKS4KKworICAgICAgICAqIGRvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxzY3JlZW5NYW5hZ2VyOjppc0Z1bGxzY3JlZW5FbmFi
bGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmlzQXR0cmlidXRlT25BbGxPd25lcnMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5J
c0FsbG93ZWRGb3JFbGVtZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRnVsbHNj
cmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBodG1sL0ZlYXR1cmVQb2xpY3kuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMp
OgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZVBvbGljeTo6cGFyc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RmVhdHVyZVBvbGljeTo6YWxsb3dzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0ZlYXR1
cmVQb2xpY3kuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJRnJhbWVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSUZyYW1lRWxlbWVudDo6ZmVhdHVyZVBvbGljeSBjb25zdCk6CisgICAg
ICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBS
ZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OmlzU3luY1hIUkFsbG93
ZWRCeUZlYXR1cmVQb2xpY3kpOiBEZWxldGVkLgorCiAyMDIwLTAxLTIzICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtFTUVdIEtleSByZW5ld2FsIGZhaWxzIHdo
ZW4gdXNpbmcgQVZDb250ZW50S2V5UmVwb3J0R3JvdXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNj
cmVlbk1hbmFnZXIuY3BwCmluZGV4IGU5MDRjNDVlYTUzMDRjNTZiZjM3OTM0ZjhiYjE3MjJkZjRj
OGRkNTUuLjk2ZmI5YjEwZmQ2ZmYxNjhjMmM4MTRmYjY4MzliNTI1MjQxMDlhYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgotI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxJRnJhbWVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCkBAIC00NCwxNyArNDQs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAK
LXN0YXRpYyBib29sIGlzQXR0cmlidXRlT25BbGxPd25lcnMoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlLCBjb25zdCBRdWFsaWZpZWROYW1lJiBwcmVmaXhlZEF0dHJpYnV0ZSwgY29uc3Qg
SFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lcikKLXsKLSAgICBpZiAoIW93bmVyKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICBkbyB7Ci0gICAgICAgIGlmICghKG93bmVyLT5oYXNBdHRyaWJ1
dGUoYXR0cmlidXRlKSB8fCBvd25lci0+aGFzQXR0cmlidXRlKHByZWZpeGVkQXR0cmlidXRlKSkp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSB3aGlsZSAoKG93bmVyID0gb3duZXIt
PmRvY3VtZW50KCkub3duZXJFbGVtZW50KCkpKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogRnVs
bHNjcmVlbk1hbmFnZXI6OkZ1bGxzY3JlZW5NYW5hZ2VyKERvY3VtZW50JiBkb2N1bWVudCkKICAg
ICA6IG1fZG9jdW1lbnQgeyBkb2N1bWVudCB9CiB7CkBAIC02MiwxMSArNTEsNiBAQCBGdWxsc2Ny
ZWVuTWFuYWdlcjo6RnVsbHNjcmVlbk1hbmFnZXIoRG9jdW1lbnQmIGRvY3VtZW50KQogCiBGdWxs
c2NyZWVuTWFuYWdlcjo6fkZ1bGxzY3JlZW5NYW5hZ2VyKCkgPSBkZWZhdWx0OwogCi1ib29sIEZ1
bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuSXNBbGxvd2VkRm9yRWxlbWVudChFbGVtZW50JiBl
bGVtZW50KSBjb25zdAotewotICAgIHJldHVybiBpc0F0dHJpYnV0ZU9uQWxsT3duZXJzKGFsbG93
ZnVsbHNjcmVlbkF0dHIsIHdlYmtpdGFsbG93ZnVsbHNjcmVlbkF0dHIsIGVsZW1lbnQuZG9jdW1l
bnQoKS5vd25lckVsZW1lbnQoKSk7Ci19Ci0KIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVl
c3RGdWxsc2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGdWxsc2NyZWVuQ2hlY2tU
eXBlIGNoZWNrVHlwZSkKIHsKICAgICBpZiAoIWVsZW1lbnQpCkBAIC0xNDIsNyArMTI2LDcgQEAg
dm9pZCBGdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50KEVsZW1l
bnQqIGVsZW1lbnQsIEZ1bGxzY3JlZW4KIAogICAgICAgICAvLyBUaGUgY29udGV4dCBvYmplY3Qn
cyBub2RlIGRvY3VtZW50LCBvciBhbiBhbmNlc3RvciBicm93c2luZyBjb250ZXh0J3MgZG9jdW1l
bnQgZG9lcyBub3QgaGF2ZQogICAgICAgICAvLyB0aGUgZnVsbHNjcmVlbiBlbmFibGVkIGZsYWcg
c2V0LgotICAgICAgICBpZiAoY2hlY2tUeXBlID09IEVuZm9yY2VJRnJhbWVBbGxvd0Z1bGxzY3Jl
ZW5SZXF1aXJlbWVudCAmJiAhZnVsbHNjcmVlbklzQWxsb3dlZEZvckVsZW1lbnQoKmVsZW1lbnQp
KSB7CisgICAgICAgIGlmIChjaGVja1R5cGUgPT0gRW5mb3JjZUlGcmFtZUFsbG93RnVsbHNjcmVl
blJlcXVpcmVtZW50ICYmICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93
bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpGdWxsc2NyZWVuLCBkb2N1bWVudCgpKSkgewogICAg
ICAgICAgICAgZmFpbGVkUHJlZmxpZ2h0cyhXVEZNb3ZlKGVsZW1lbnQpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpAQCAtMzQ1LDcgKzMyOSw3IEBAIGJvb2wgRnVsbHNjcmVlbk1h
bmFnZXI6OmlzRnVsbHNjcmVlbkVuYWJsZWQoKSBjb25zdAogICAgIC8vIGJyb3dzaW5nIGNvbnRl
eHQncyBkb2N1bWVudHMgaGF2ZSB0aGVpciBmdWxsc2NyZWVuIGVuYWJsZWQgZmxhZyBzZXQsIG9y
IGZhbHNlIG90aGVyd2lzZS4KIAogICAgIC8vIFRvcC1sZXZlbCBicm93c2luZyBjb250ZXh0cyBh
cmUgaW1wbGllZCB0byBoYXZlIHRoZWlyIGFsbG93RnVsbHNjcmVlbiBhdHRyaWJ1dGUgc2V0Lgot
ICAgIHJldHVybiBpc0F0dHJpYnV0ZU9uQWxsT3duZXJzKGFsbG93ZnVsbHNjcmVlbkF0dHIsIHdl
YmtpdGFsbG93ZnVsbHNjcmVlbkF0dHIsIGRvY3VtZW50KCkub3duZXJFbGVtZW50KCkpOworICAg
IHJldHVybiBpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0
dXJlUG9saWN5OjpUeXBlOjpGdWxsc2NyZWVuLCBkb2N1bWVudCgpKTsKIH0KIAogc3RhdGljIHZv
aWQgdW53cmFwRnVsbHNjcmVlblJlbmRlcmVyKFJlbmRlckZ1bGxTY3JlZW4qIGZ1bGxzY3JlZW5S
ZW5kZXJlciwgRWxlbWVudCogZnVsbHNjcmVlbkVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxs
c2NyZWVuTWFuYWdlci5oCmluZGV4IGJmZDIxN2ZkMTE5NWEwYzlmMTMxMDdlYmRmN2YzYjlhMDA3
M2RkMTAuLjBjNWIyZWU3YTk5OTE3YzI2N2QxMjMxMmI4ZGY3ZTk2ZDI0NzdhZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC04Myw3ICs4Myw2IEBAIHB1YmxpYzoK
ICAgICBSZW5kZXJGdWxsU2NyZWVuKiBmdWxsc2NyZWVuUmVuZGVyZXIoKSBjb25zdDsKIAogICAg
IHZvaWQgZGlzcGF0Y2hGdWxsc2NyZWVuQ2hhbmdlRXZlbnRzKCk7Ci0gICAgYm9vbCBmdWxsc2Ny
ZWVuSXNBbGxvd2VkRm9yRWxlbWVudChFbGVtZW50JikgY29uc3Q7CiAgICAgdm9pZCBmdWxsc2Ny
ZWVuRWxlbWVudFJlbW92ZWQoKTsKIAogICAgIHZvaWQgYWRqdXN0RnVsbHNjcmVlbkVsZW1lbnRP
bk5vZGVSZW1vdmFsKE5vZGUmLCBEb2N1bWVudDo6Tm9kZVJlbW92YWwgPSBEb2N1bWVudDo6Tm9k
ZVJlbW92YWw6Ok5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJl
UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAKaW5kZXgg
ZTQzNDJhZWVhNjBhM2FhZTI2YWMxM2E5NWQ2ZDZjZDUzYWFiNTIwOC4uNDc1ZDkyNGNjYzhlY2Nh
ZjhlMzZlNmY2NGY2MDRjNWNjYjg5MjgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GZWF0dXJlUG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xp
Y3kuY3BwCkBAIC0yNywxMSArMjcsMzcgQEAKICNpbmNsdWRlICJGZWF0dXJlUG9saWN5LmgiCiAK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKKworYm9vbCBpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1
bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlIHR5cGUsIGNvbnN0IERvY3VtZW50
JiBkb2N1bWVudCkKK3sKKyAgICBhdXRvJiB0b3BEb2N1bWVudCA9IGRvY3VtZW50LnRvcERvY3Vt
ZW50KCk7CisgICAgYXV0byBhbmNlc3RvckRvY3VtZW50ID0gJmRvY3VtZW50OworICAgIHdoaWxl
IChhbmNlc3RvckRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudCkgeworICAgICAgICBpZiAoIWFuY2Vz
dG9yRG9jdW1lbnQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgYXV0byBv
d25lckVsZW1lbnQgPSBhbmNlc3RvckRvY3VtZW50LT5vd25lckVsZW1lbnQoKTsKKyAgICAgICAg
aWYgKCFpczxIVE1MSUZyYW1lRWxlbWVudD4ob3duZXJFbGVtZW50KSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICBhdXRvIGZlYXR1cmVQb2xpY3kgPSBkb3duY2FzdDxIVE1M
SUZyYW1lRWxlbWVudD4ob3duZXJFbGVtZW50KS0+ZmVhdHVyZVBvbGljeSgpOworICAgICAgICBp
ZiAoIWZlYXR1cmVQb2xpY3kuYWxsb3dzKHR5cGUsIGFuY2VzdG9yRG9jdW1lbnQtPnNlY3VyaXR5
T3JpZ2luKCkuZGF0YSgpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBh
bmNlc3RvckRvY3VtZW50ID0gYW5jZXN0b3JEb2N1bWVudC0+cGFyZW50RG9jdW1lbnQoKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIGJvb2wgaXNBbGxvd2VkQnlGZWF0
dXJlUG9saWN5KGNvbnN0IEZlYXR1cmVQb2xpY3k6OkFsbG93UnVsZSYgcnVsZSwgY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4pCiB7CiAgICAgc3dpdGNoIChydWxlLnR5cGUpIHsKQEAg
LTk0LDEzICsxMjAsMTQgQEAgc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZUxpc3QoRG9jdW1lbnQm
IGRvY3VtZW50LCBGZWF0dXJlUG9saWN5OjpBbGxvd1J1bGUmIHJ1bGUKICAgICB9CiB9CiAKLUZl
YXR1cmVQb2xpY3kgRmVhdHVyZVBvbGljeTo6cGFyc2UoRG9jdW1lbnQmIGRvY3VtZW50LCBTdHJp
bmdWaWV3IGFsbG93QXR0cmlidXRlVmFsdWUpCitGZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6
OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgSFRNTElGcmFtZUVsZW1lbnQmIGlmcmFt
ZSwgU3RyaW5nVmlldyBhbGxvd0F0dHJpYnV0ZVZhbHVlKQogewogICAgIEZlYXR1cmVQb2xpY3kg
cG9saWN5OwogICAgIGJvb2wgaXNDYW1lcmFJbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wg
aXNNaWNyb3Bob25lSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlzRGlzcGxheUNhcHR1
cmVJbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGJvb2wgaXNTeW5jWEhSSW5pdGlhbGl6ZWQgPSBm
YWxzZTsKKyAgICBib29sIGlzRnVsbHNjcmVlbkluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgZm9y
IChhdXRvIGFsbG93SXRlbSA6IGFsbG93QXR0cmlidXRlVmFsdWUuc3BsaXQoJzsnKSkgewogICAg
ICAgICBhdXRvIGl0ZW0gPSBhbGxvd0l0ZW0uc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdNYXRjaGVk
Q2hhcmFjdGVycyhpc0hUTUxTcGFjZTxVQ2hhcj4pOwogICAgICAgICBpZiAoaXRlbS5zdGFydHNX
aXRoKCJjYW1lcmEiKSkgewpAQCAtMTIzLDkgKzE1MCwxNCBAQCBGZWF0dXJlUG9saWN5IEZlYXR1
cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgU3RyaW5nVmlldyBhbGxvd0F0dHJp
YnV0ZQogICAgICAgICAgICAgdXBkYXRlTGlzdChkb2N1bWVudCwgcG9saWN5Lm1fc3luY1hIUlJ1
bGUsIGl0ZW0uc3Vic3RyaW5nKDgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CisgICAgICAgIGlmIChpdGVtLnN0YXJ0c1dpdGgoImZ1bGxzY3JlZW4iKSkgeworICAgICAgICAg
ICAgaXNGdWxsc2NyZWVuSW5pdGlhbGl6ZWQgPSB0cnVlOworICAgICAgICAgICAgdXBkYXRlTGlz
dChkb2N1bWVudCwgcG9saWN5Lm1fZnVsbHNjcmVlblJ1bGUsIGl0ZW0uc3Vic3RyaW5nKDExKSk7
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQogICAgIH0KIAotICAgIC8vIEJ5IGRl
ZmF1bHQsIGNhbWVyYSwgbWljcm9waG9uZSBhbmQgZGlzcGxheS1jYXB0dXJlIHBvbGljeSBpcyAn
c2VsZicKKyAgICAvLyBCeSBkZWZhdWx0LCBjYW1lcmEsIG1pY3JvcGhvbmUsIGRpc3BsYXktY2Fw
dHVyZSwgYW5kIGZ1bGxzY3JlZW4gcG9saWN5IGlzICdzZWxmJwogICAgIGlmICghaXNDYW1lcmFJ
bml0aWFsaXplZCkKICAgICAgICAgcG9saWN5Lm1fY2FtZXJhUnVsZS5hbGxvd2VkTGlzdC5hZGQo
ZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOwogICAgIGlmICghaXNNaWNyb3Bob25l
SW5pdGlhbGl6ZWQpCkBAIC0xMzMsNiArMTY1LDIxIEBAIEZlYXR1cmVQb2xpY3kgRmVhdHVyZVBv
bGljeTo6cGFyc2UoRG9jdW1lbnQmIGRvY3VtZW50LCBTdHJpbmdWaWV3IGFsbG93QXR0cmlidXRl
CiAgICAgaWYgKCFpc0Rpc3BsYXlDYXB0dXJlSW5pdGlhbGl6ZWQpCiAgICAgICAgIHBvbGljeS5t
X2Rpc3BsYXlDYXB0dXJlUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmln
aW4oKS5kYXRhKCkpOwogCisgICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmFwcHNlYy1m
ZWF0dXJlLXBvbGljeS8jcHJvY2Vzcy1mZWF0dXJlLXBvbGljeS1hdHRyaWJ1dGVzCisgICAgLy8g
OS41IFByb2Nlc3MgRmVhdHVyZSBQb2xpY3kgQXR0cmlidXRlcworICAgIC8vIDMuMSBJZiBlbGVt
ZW504oCZcyBhbGxvd2Z1bGxzY3JlZW4gYXR0cmlidXRlIGlzIHNwZWNpZmllZCwgYW5kIGNvbnRh
aW5lciBwb2xpY3kgZG9lcworICAgIC8vICAgICBub3QgY29udGFpbiBhbiBhbGxvd2xpc3QgZm9y
IGZ1bGxzY3JlZW4sCisgICAgaWYgKCFpc0Z1bGxzY3JlZW5Jbml0aWFsaXplZCkgeworICAgICAg
ICBpZiAoaWZyYW1lLmhhc0F0dHJpYnV0ZShhbGxvd2Z1bGxzY3JlZW5BdHRyKSB8fCBpZnJhbWUu
aGFzQXR0cmlidXRlKHdlYmtpdGFsbG93ZnVsbHNjcmVlbkF0dHIpKSB7CisgICAgICAgICAgICAv
LyAzLjEuMSBDb25zdHJ1Y3QgYSBuZXcgZGVjbGFyYXRpb24gZm9yIGZ1bGxzY3JlZW4sIHdob3Nl
IGFsbG93bGlzdCBpcyB0aGUgc3BlY2lhbCB2YWx1ZSAqLgorICAgICAgICAgICAgcG9saWN5Lm1f
ZnVsbHNjcmVlblJ1bGUudHlwZSA9IEZlYXR1cmVQb2xpY3k6OkFsbG93UnVsZTo6VHlwZTo6QWxs
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gaHR0cHM6Ly9mdWxsc2NyZWVuLnNw
ZWMud2hhdHdnLm9yZy8jZmVhdHVyZS1wb2xpY3ktaW50ZWdyYXRpb24KKyAgICAgICAgICAgIC8v
IFRoZSBkZWZhdWx0IGFsbG93bGlzdCBpcyAnc2VsZicuCisgICAgICAgICAgICBwb2xpY3kubV9m
dWxsc2NyZWVuUnVsZS5hbGxvd2VkTGlzdC5hZGQoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5k
YXRhKCkpOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKCFpc1N5bmNYSFJJbml0aWFsaXpl
ZCkKICAgICAgICAgcG9saWN5Lm1fc3luY1hIUlJ1bGUudHlwZSA9IEFsbG93UnVsZTo6VHlwZTo6
QWxsOwogCkBAIC0xNTAsNiArMTk3LDggQEAgYm9vbCBGZWF0dXJlUG9saWN5OjphbGxvd3MoVHlw
ZSB0eXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikgY29uc3QKICAgICAgICAg
cmV0dXJuIGlzQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShtX2Rpc3BsYXlDYXB0dXJlUnVsZSwgb3Jp
Z2luKTsKICAgICBjYXNlIFR5cGU6OlN5bmNYSFI6CiAgICAgICAgIHJldHVybiBpc0FsbG93ZWRC
eUZlYXR1cmVQb2xpY3kobV9zeW5jWEhSUnVsZSwgb3JpZ2luKTsKKyAgICBjYXNlIFR5cGU6OkZ1
bGxzY3JlZW46CisgICAgICAgIHJldHVybiBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV9mdWxs
c2NyZWVuUnVsZSwgb3JpZ2luKTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJl
UG9saWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaAppbmRleCBmYzcx
ZGZlMmE1ZDczZGY1MTE2ZGRhNmE2ZTc0MTljNjA5YmY1MWQ1Li42NTRmYjgzOGYwYjQwMTVlYjRk
MzY2NDhhNDE1MTg3MWJhZGY0MDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zl
YXR1cmVQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xpY3kuaApA
QCAtMzIsMTIgKzMyLDEzIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50
OworY2xhc3MgSFRNTElGcmFtZUVsZW1lbnQ7CiAKIGNsYXNzIEZlYXR1cmVQb2xpY3kgewogcHVi
bGljOgotICAgIHN0YXRpYyBGZWF0dXJlUG9saWN5IHBhcnNlKERvY3VtZW50JiwgU3RyaW5nVmll
dyk7CisgICAgc3RhdGljIEZlYXR1cmVQb2xpY3kgcGFyc2UoRG9jdW1lbnQmLCBjb25zdCBIVE1M
SUZyYW1lRWxlbWVudCYsIFN0cmluZ1ZpZXcpOwogCi0gICAgZW51bSBjbGFzcyBUeXBlIHsgQ2Ft
ZXJhLCBNaWNyb3Bob25lLCBEaXNwbGF5Q2FwdHVyZSwgU3luY1hIUiB9OworICAgIGVudW0gY2xh
c3MgVHlwZSB7IENhbWVyYSwgTWljcm9waG9uZSwgRGlzcGxheUNhcHR1cmUsIFN5bmNYSFIsIEZ1
bGxzY3JlZW4gfTsKICAgICBib29sIGFsbG93cyhUeXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmKSBjb25zdDsKIAogICAgIHN0cnVjdCBBbGxvd1J1bGUgewpAQCAtNTEsNiArNTIsOSBAQCBw
cml2YXRlOgogICAgIEFsbG93UnVsZSBtX21pY3JvcGhvbmVSdWxlOwogICAgIEFsbG93UnVsZSBt
X2Rpc3BsYXlDYXB0dXJlUnVsZTsKICAgICBBbGxvd1J1bGUgbV9zeW5jWEhSUnVsZTsKKyAgICBB
bGxvd1J1bGUgbV9mdWxsc2NyZWVuUnVsZTsKIH07CiAKK2V4dGVybiBib29sIGlzRmVhdHVyZVBv
bGljeUFsbG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGUsIGNv
bnN0IERvY3VtZW50Jik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKaW5kZXggYWUzYzhhOTE0OWQ1OGNiNDkxZGQ4MmRk
MWQzMjQ2ODJlZTk0YTg0Yy4uM2U5ZmM4YTlhZDhhMGY2NjAyNGE4MGQ5ODY1YmUzMWNmN2FiOWI2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKQEAgLTEwMiw3
ICsxMDIsNyBAQCB2b2lkIEhUTUxJRnJhbWVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogICAgICAgICBzZXRTYW5kYm94Rmxh
Z3ModmFsdWUuaXNOdWxsKCkgPyBTYW5kYm94Tm9uZSA6IFNlY3VyaXR5Q29udGV4dDo6cGFyc2VT
YW5kYm94UG9saWN5KHZhbHVlLCBpbnZhbGlkVG9rZW5zKSk7CiAgICAgICAgIGlmICghaW52YWxp
ZFRva2Vucy5pc051bGwoKSkKICAgICAgICAgICAgIGRvY3VtZW50KCkuYWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJFcnJvciB3aGls
ZSBwYXJzaW5nIHRoZSAnc2FuZGJveCcgYXR0cmlidXRlOiAiICsgaW52YWxpZFRva2Vucyk7Ci0g
ICAgfSBlbHNlIGlmIChuYW1lID09IGFsbG93QXR0cikKKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0g
YWxsb3dBdHRyIHx8IG5hbWUgPT0gYWxsb3dmdWxsc2NyZWVuQXR0ciB8fCBuYW1lID09IHdlYmtp
dGFsbG93ZnVsbHNjcmVlbkF0dHIpCiAgICAgICAgIG1fZmVhdHVyZVBvbGljeSA9IFdURjo6bnVs
bG9wdDsKICAgICBlbHNlCiAgICAgICAgIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSk7CkBAIC0xMzgsNyArMTM4LDcgQEAgUmVmZXJyZXJQb2xpY3kgSFRN
TElGcmFtZUVsZW1lbnQ6OnJlZmVycmVyUG9saWN5KCkgY29uc3QKIGNvbnN0IEZlYXR1cmVQb2xp
Y3kmIEhUTUxJRnJhbWVFbGVtZW50OjpmZWF0dXJlUG9saWN5KCkgY29uc3QKIHsKICAgICBpZiAo
IW1fZmVhdHVyZVBvbGljeSkKLSAgICAgICAgbV9mZWF0dXJlUG9saWN5ID0gRmVhdHVyZVBvbGlj
eTo6cGFyc2UoZG9jdW1lbnQoKSwgYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihhbGxv
d0F0dHIpKTsKKyAgICAgICAgbV9mZWF0dXJlUG9saWN5ID0gRmVhdHVyZVBvbGljeTo6cGFyc2Uo
ZG9jdW1lbnQoKSwgKnRoaXMsIGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYWxsb3dB
dHRyKSk7CiAgICAgcmV0dXJuICptX2ZlYXR1cmVQb2xpY3k7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDEzNTNlNWRmNmY5Y2I4NWMxMjlmYjc1NDgzYWNiNjIy
M2MzNTZlZDkuLjM5ZDhjYTU5MjU4ZDYxNjJkNGY4Yjk5NWNkM2M5OTA5ZTk1ZmVkODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtNTc4LDIzICs1NzgsNiBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6c2VuZEJ5dGVzRGF0YShjb25zdCB2b2lkKiBk
YXRhLCBzaXplX3QgbGVuZ3RoKQogICAgIHJldHVybiBjcmVhdGVSZXF1ZXN0KCk7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgYm9vbCBpc1N5bmNYSFJBbGxvd2VkQnlGZWF0dXJlUG9saWN5KERvY3VtZW50
JiBkb2N1bWVudCkKLXsKLSAgICBhdXRvJiB0b3BEb2N1bWVudCA9IGRvY3VtZW50LnRvcERvY3Vt
ZW50KCk7Ci0gICAgaWYgKCZkb2N1bWVudCAhPSAmdG9wRG9jdW1lbnQpIHsKLSAgICAgICAgZm9y
IChhdXRvKiBhbmNlc3RvckRvY3VtZW50ID0gJmRvY3VtZW50OyBhbmNlc3RvckRvY3VtZW50ICE9
ICZ0b3BEb2N1bWVudDsgYW5jZXN0b3JEb2N1bWVudCA9IGFuY2VzdG9yRG9jdW1lbnQtPnBhcmVu
dERvY3VtZW50KCkpIHsKLSAgICAgICAgICAgIGF1dG8qIGVsZW1lbnQgPSBhbmNlc3RvckRvY3Vt
ZW50LT5vd25lckVsZW1lbnQoKTsKLSAgICAgICAgICAgIEFTU0VSVChlbGVtZW50KTsKLSAgICAg
ICAgICAgIGlmIChlbGVtZW50ICYmIGlzPEhUTUxJRnJhbWVFbGVtZW50PigqZWxlbWVudCkpIHsK
LSAgICAgICAgICAgICAgICBhdXRvJiBmZWF0dXJlUG9saWN5ID0gZG93bmNhc3Q8SFRNTElGcmFt
ZUVsZW1lbnQ+KCplbGVtZW50KS5mZWF0dXJlUG9saWN5KCk7Ci0gICAgICAgICAgICAgICAgaWYg
KCFmZWF0dXJlUG9saWN5LmFsbG93cyhGZWF0dXJlUG9saWN5OjpUeXBlOjpTeW5jWEhSLCBhbmNl
c3RvckRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSkpCi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQogRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6OmNyZWF0
ZVJlcXVlc3QoKQogewogICAgIC8vIE9ubHkgR0VUIHJlcXVlc3QgaXMgc3VwcG9ydGVkIGZvciBi
bG9iIFVSTC4KQEAgLTY2OCw3ICs2NTEsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVx
dWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAgICAgIGlmIChtX2xvYWRlcikKICAgICAgICAgICAg
IHNldFBlbmRpbmdBY3Rpdml0eSgqdGhpcyk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpICYmICFpc1N5bmNYSFJBbGxvd2Vk
QnlGZWF0dXJlUG9saWN5KCpkb2N1bWVudCgpKSkKKyAgICAgICAgaWYgKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+aXNEb2N1bWVudCgpICYmICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1
bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpTeW5jWEhSLCAqZG9jdW1lbnQo
KSkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTmV0d29ya0Vycm9yIH07CiAKICAg
ICAgICAgcmVxdWVzdC5zZXREb21haW5Gb3JDYWNoZVBhcnRpdGlvbihzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPmRvbWFpbkZvckNhY2hlUGFydGl0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUxNDgwZTdhNjZi
MjZkNGZhMWYzZDljZjgwNzQ2MmU1YTVkMmFkYzguLmRhMjdlZTNmZmI4M2Q1OTU2ZDliMzJkMzAz
NmRlNTU5OGI3YmE2OWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wMS0yNSAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0ICdhbGxvdz0iZnVs
bHNjcmVlbiInIGZlYXR1cmUgcG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDY4MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1NjQwNDQ4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBmdWxs
c2NyZWVuL2Z1bGwtc2NyZWVuLWVuYWJsZWQtcHJlZml4ZWQuaHRtbDoKKyAgICAgICAgKiBmdWxs
c2NyZWVuL2Z1bGwtc2NyZWVuLWVuYWJsZWQuaHRtbDoKKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1
bGwtc2NyZWVuLWlmcmFtZS1ub3QtYWxsb3dlZC5odG1sOgorICAgICAgICAqIGZ1bGxzY3JlZW4v
ZnVsbC1zY3JlZW4tcmVzdHJpY3Rpb25zLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9mdWxs
c2NyZWVuL2Z1bGxzY3JlZW4tZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1mZWF0dXJlLXBvbGljeS5o
dG1sOiBBZGRlZC4KKwogMjAyMC0wMS0xNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTVNFXSBEZWNvZGUgZ2xpdGNoZXMgd2hlbiB3YXRjaGluZyB2aWRlb3Mg
b24gQ05OLmNvbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVl
bi1lbmFibGVkLXByZWZpeGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2Ny
ZWVuLWVuYWJsZWQtcHJlZml4ZWQuaHRtbAppbmRleCA2ZDEwYmU1MjU1MWY0ZjhlZmE2YjkyNDg5
MTRmMTY4NGQ2NGM5OTJiLi42MThhYWRmYTVkZDIzODY1ZTY2NTZhYTk3OTAyNTQ1NGFlMjViMzgw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWVuYWJsZWQt
cHJlZml4ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWVu
YWJsZWQtcHJlZml4ZWQuaHRtbApAQCAtNiw2ICs2LDcgQEAKICAgICB2YXIgaWZyYW1lID0gZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2lmcmFtZScpKTsKICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCd3ZWJraXRhbGxvd2Z1bGxzY3Jl
ZW4nLCAndHJ1ZScpOwogICAgIHZhciBpZnJhbWUyID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpKTsKKyAgICBpZnJh
bWUyLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAiZnVsbHNjcmVlbiAnbm9uZSciKTsKICAgICB0ZXN0
RXhwZWN0ZWQoJ2lmcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQn
LCB0cnVlKTsKICAgICB0ZXN0RXhwZWN0ZWQoJ2lmcmFtZTIuY29udGVudERvY3VtZW50LndlYmtp
dEZ1bGxzY3JlZW5FbmFibGVkJywgZmFsc2UpOwogICAgIGVuZFRlc3QoKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZW5hYmxlZC5odG1sIGIvTGF5b3V0
VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1lbmFibGVkLmh0bWwKaW5kZXggNjYxN2M0ZGFl
MzI0NzVhYzY1ODA2ZjYxM2E1Njk5MWU5Y2E1YTA5My4uMmQwNjAxMDQ4OTMyMWUwY2FiNzNjMTBh
ZDlhOTgxZTNhNjY5ZjE4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxs
LXNjcmVlbi1lbmFibGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNj
cmVlbi1lbmFibGVkLmh0bWwKQEAgLTYsNiArNiw3IEBACiAgICAgdmFyIGlmcmFtZSA9IGRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdp
ZnJhbWUnKSk7CiAgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnYWxsb3dmdWxsc2NyZWVuJywgJ3Ry
dWUnKTsKICAgICB2YXIgaWZyYW1lMiA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKSk7CisgICAgaWZyYW1lMi5zZXRB
dHRyaWJ1dGUoJ2FsbG93JywgImZ1bGxzY3JlZW4gJ25vbmUnIik7CiAgICAgdGVzdEV4cGVjdGVk
KCdpZnJhbWUuY29udGVudERvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkJywgdHJ1ZSk7
CiAgICAgdGVzdEV4cGVjdGVkKCdpZnJhbWUyLmNvbnRlbnREb2N1bWVudC53ZWJraXRGdWxsc2Ny
ZWVuRW5hYmxlZCcsIGZhbHNlKTsKICAgICBlbmRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1ub3QtYWxsb3dlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtbm90LWFsbG93ZWQuaHRtbApp
bmRleCBhODgzM2RlZGJmNzg4OTRkYjgyZjM2NTA0NTk1MTgzYWJiZTZjMjc1Li5jMmI2ZjhiNWE1
MzBhN2I5NDUyOWU0MGY1MzEyNjUyYmY5YTJlOGIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
dWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1ub3QtYWxsb3dlZC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLW5vdC1hbGxvd2VkLmh0bWwKQEAg
LTIwLDUgKzIwLDUgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB9KTsKIH0KIDwvc2NyaXB0
PgotPGlmcmFtZSBpZD0iZnJhbWUiIHNyYz0icmVzb3VyY2VzL2lubmVyLmh0bWwiIG9ubG9hZD0i
cnVuVGVzdCgpIj4KKzxpZnJhbWUgaWQ9ImZyYW1lIiBzcmM9InJlc291cmNlcy9pbm5lci5odG1s
IiBvbmxvYWQ9InJ1blRlc3QoKSIgYWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUnIj4KIDwvaWZyYW1l
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZXN0cmlj
dGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVzdHJpY3Rp
b25zLmh0bWwKaW5kZXggNGFkODQ0MDMwYjcyMjY5MDA5OWExNWQ2NmFmMTk0MjQ0NTNkMmMyNS4u
YmRjY2QwZmI0YWYwODFkYzg1ZGYzOGI4MzQ0ZTMyYTY2NjAyZmNjOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZXN0cmljdGlvbnMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlc3RyaWN0aW9ucy5odG1sCkBAIC0x
OCw2ICsxOCw3IEBACiAgICAgICAgIHZhciBzdGVwMiA9IGZ1bmN0aW9uKCkgewogICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCciVGhlIGNvbnRleHQgb2JqZWN0XCdzIG5vZGUgZG9jdW1lbnQsIG9y
IGFuIGFuY2VzdG9yIGJyb3dzaW5nIGNvbnRleHRcJ3MgZG9jdW1lbnQgZG9lcyBub3QgaGF2ZSB0
aGUgZnVsbHNjcmVlbiBlbmFibGVkIGZsYWcgc2V0LiInKQogICAgICAgICAgICAgdmFyIGlmcmFt
ZSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdpZnJhbWUnKSk7CisgICAgICAgICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhbGxv
dycsICJmdWxsc2NyZWVuICdub25lJyIpOwogICAgICAgICAgICAgdmFyIGRpdiA9IGlmcmFtZS5j
b250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGlmcmFtZS5jb250ZW50
RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpOwogCiAgICAgICAgICAgICB3YWl0Rm9yRXZl
bnRPbmNlKGlmcmFtZS5jb250ZW50RG9jdW1lbnQsICd3ZWJraXRmdWxsc2NyZWVuZXJyb3InLCBz
dGVwMyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Z1bGxzY3JlZW4vZnVs
bHNjcmVlbi1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWY2ZGQxYTM3OTQ1NWEzODVhNTA0NmQwYTAyYWUyMWYzZGZjZjJiZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZnVsbHNjcmVlbi9mdWxsc2NyZWVu
LWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACitQQVNTIGlmcmFt
ZSB3aXRoIHNyYz0iaHR0cDovL2xvYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVs
bHNjcmVlbkVuYWJsZWQgPT09IGZhbHNlLgorUEFTUyBpZnJhbWUgd2l0aCBzcmM9Ii4uL3Jlc291
cmMuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0
cnVlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiIsIHNyYz0iaHR0cDovL2xv
Yy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IHRy
dWUuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuIiwgc3JjPSIuLi9yZXNvdXJj
Li4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gdHJ1
ZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4gKiIsIHNyYz0iaHR0cDovL2xv
Yy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IHRy
dWUuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuICoiLCBzcmM9Ii4uL3Jlc291
cmMuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0
cnVlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAnbm9uZSciLCBzcmM9Imh0
dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVk
ID09PSBmYWxzZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUnIiwg
c3JjPSIuLi9yZXNvdXJjLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVu
RW5hYmxlZCA9PT0gZmFsc2UuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuICdz
ZWxmJyIsIHNyYz0iaHR0cDovL2xvYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVs
bHNjcmVlbkVuYWJsZWQgPT09IGZhbHNlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNj
cmVlbiAnc2VsZiciLCBzcmM9Ii4uL3Jlc291cmMuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50Lndl
YmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0cnVlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0i
ZnVsbHNjcmVlbiBodHRwOi8vbG9jYWxob3N0OjgwMDAiLCBzcmM9Imh0dHA6Ly9sb2MuLi4iIHNo
b3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0cnVlLgorUEFT
UyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiBodHRwOi8vbG9jYWxob3N0OjgwMDAiLCBz
cmM9Ii4uL3Jlc291cmMuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5F
bmFibGVkID09PSBmYWxzZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3dmdWxsc2NyZWVuLCBzcmM9
Imh0dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFi
bGVkID09PSB0cnVlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvd2Z1bGxzY3JlZW4sIHNyYz0iLi4v
cmVzb3VyYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQg
PT09IHRydWUuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuICdub25lJyIsIGFs
bG93ZnVsbHNjcmVlbiwgc3JjPSJodHRwOi8vbG9jLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53
ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gZmFsc2UuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93
PSJmdWxsc2NyZWVuICdub25lJyIsIGFsbG93ZnVsbHNjcmVlbiwgc3JjPSIuLi9yZXNvdXJjLi4u
IiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gZmFsc2Uu
CitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuICdzZWxmJyIsIGFsbG93ZnVsbHNj
cmVlbiwgc3JjPSJodHRwOi8vbG9jLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxs
c2NyZWVuRW5hYmxlZCA9PT0gZmFsc2UuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2Ny
ZWVuICdzZWxmJyIsIGFsbG93ZnVsbHNjcmVlbiwgc3JjPSIuLi9yZXNvdXJjLi4uIiBzaG91bGQg
aGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gdHJ1ZS4KK1BBU1MgaWZy
YW1lIHdpdGggd2Via2l0YWxsb3dmdWxsc2NyZWVuLCBzcmM9Imh0dHA6Ly9sb2MuLi4iIHNob3Vs
ZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0cnVlLgorUEFTUyBp
ZnJhbWUgd2l0aCB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4sIHNyYz0iLi4vcmVzb3VyYy4uLiIgc2hv
dWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IHRydWUuCitQQVNT
IGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuICdub25lJyIsIHdlYmtpdGFsbG93ZnVsbHNj
cmVlbiwgc3JjPSJodHRwOi8vbG9jLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxs
c2NyZWVuRW5hYmxlZCA9PT0gZmFsc2UuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2Ny
ZWVuICdub25lJyIsIHdlYmtpdGFsbG93ZnVsbHNjcmVlbiwgc3JjPSIuLi9yZXNvdXJjLi4uIiBz
aG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gZmFsc2UuCitQ
QVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuICdzZWxmJyIsIHdlYmtpdGFsbG93ZnVs
bHNjcmVlbiwgc3JjPSJodHRwOi8vbG9jLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRG
dWxsc2NyZWVuRW5hYmxlZCA9PT0gZmFsc2UuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxs
c2NyZWVuICdzZWxmJyIsIHdlYmtpdGFsbG93ZnVsbHNjcmVlbiwgc3JjPSIuLi9yZXNvdXJjLi4u
IiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gdHJ1ZS4K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9mdWxsc2NyZWVuL2Z1bGxzY3Jl
ZW4tZmVhdHVyZS1wb2xpY3kuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZnVsbHNjcmVl
bi9mdWxsc2NyZWVuLWZlYXR1cmUtcG9saWN5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThkODNlNjkxYWJi
MjA5ZWU2OTY5OGFiYWQxNmNkZjM4NmM0ZjQwNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZnVsbHNjcmVlbi9mdWxsc2NyZWVuLWZlYXR1cmUtcG9saWN5Lmh0bWwK
QEAgLTAsMCArMSw3NSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxz
dHlsZT5pZnJhbWUgeyBkaXNwbGF5OiBub25lOyB9PC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gd2FpdEZvcihlbGVtZW50LCB0eXBlKSB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0eXBl
LCBldmVudCA9PiB7CisgICAgICAgICAgICAgICAgcmVzb2x2ZShldmVudCk7CisgICAgICAgICAg
ICB9LCB7IG9uY2U6IHRydWUgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAgICAgICB0cnkgewor
ICAgICAgICAgICAgbGV0IGF0dHJpYnV0ZUZpbHRlciA9IGF0dHJpYnV0ZSA9PiB7IHJldHVybiBh
dHRyaWJ1dGUubmFtZSAhPT0gJ2RhdGEtZW5hYmxlZCc7IH07CisgICAgICAgICAgICBsZXQgYXR0
cmlidXRlTWFwID0gYXR0cmlidXRlID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRl
LnZhbHVlID09PSAnJykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZS5uYW1l
OworICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUubmFtZSA9PT0gJ3NyYycpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBgJHthdHRyaWJ1dGUubmFtZX09IiR7YXR0cmlidXRlLnZhbHVl
LnN1YnN0cmluZygwLCAxMCl9Li4uImA7CisgICAgICAgICAgICAgICAgcmV0dXJuIGAke2F0dHJp
YnV0ZS5uYW1lfT0iJHthdHRyaWJ1dGUudmFsdWV9ImA7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGZvciAodmFyIGZyYW1lIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lmcmFt
ZScpKSB7CisgICAgICAgICAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShb
ImV2YWwiLCAncGFyZW50LnBvc3RNZXNzYWdlKGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFi
bGVkLCAiKiIpJ10sICIqIik7CisgICAgICAgICAgICAgICAgbGV0IG1lc3NhZ2VFdmVudCA9IGF3
YWl0IHdhaXRGb3Iod2luZG93LCAnbWVzc2FnZScpOworICAgICAgICAgICAgICAgIGxldCBleHBl
Y3RlZE1lc3NhZ2UgPSBmcmFtZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtZW5hYmxlZCcpOworICAgICAg
ICAgICAgICAgIGxldCBmcmFtZUF0dHJpYnV0ZXMgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNh
bGwoZnJhbWUuYXR0cmlidXRlcywgYXR0cmlidXRlRmlsdGVyKS5tYXAoYXR0cmlidXRlTWFwKTsK
KyAgICAgICAgICAgICAgICBsZXQgdGVzdERlc2NyaXB0aW9uID0gYGlmcmFtZSB3aXRoICR7IGZy
YW1lQXR0cmlidXRlcy5qb2luKCcsICcpIH0gc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVs
bHNjcmVlbkVuYWJsZWQgPT09ICR7IGV4cGVjdGVkTWVzc2FnZSB9YDsKKyAgICAgICAgICAgICAg
ICBpZiAoU3RyaW5nKG1lc3NhZ2VFdmVudC5kYXRhKSA9PT0gZXhwZWN0ZWRNZXNzYWdlKQorICAg
ICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGAke3Rlc3REZXNjcmlwdGlvbn0uYCk7CisgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGAke3Rlc3RE
ZXNjcmlwdGlvbn0sIHdhcyAkeyBtZXNzYWdlRXZlbnQuZGF0YSB9YCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZChgU2hvdWxkIG5v
dCB0aHJvdy4gVGhyZXcgZXhjZXB0aW9uICR7IGUgfS5gKQorICAgICAgICB9CisgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGlmcmFtZSBk
YXRhLWVuYWJsZWQ9ImZhbHNlIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMv
cG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGRh
dGEtZW5hYmxlZD0idHJ1ZSIgc3JjPSIuLi9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlm
cmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuIiBkYXRh
LWVuYWJsZWQ9InRydWUiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlcy9wb2lu
dGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9
ImZ1bGxzY3JlZW4iIGRhdGEtZW5hYmxlZD0idHJ1ZSIgc3JjPSIuLi9yZXNvdXJjZXMvcG9pbnRl
ci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93PSJm
dWxsc2NyZWVuICoiIGRhdGEtZW5hYmxlZD0idHJ1ZSIgc3JjPSJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cisg
ICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAqIiBkYXRhLWVuYWJsZWQ9InRydWUiIHNyYz0i
Li4vcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cisg
ICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAnbm9uZSciIGRhdGEtZW5hYmxlZD0iZmFsc2Ui
IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXIt
aWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gJ25v
bmUnIiBkYXRhLWVuYWJsZWQ9ImZhbHNlIiBzcmM9Ii4uL3Jlc291cmNlcy9wb2ludGVyLWxvY2sv
aW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3Jl
ZW4gJ3NlbGYnIiBkYXRhLWVuYWJsZWQ9ImZhbHNlIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAg
ICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdzZWxmJyIgZGF0YS1lbmFibGVkPSJ0cnVlIiBz
cmM9Ii4uL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1l
PgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gaHR0cDovL2xvY2FsaG9zdDo4MDAwIiBk
YXRhLWVuYWJsZWQ9InRydWUiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlcy9w
b2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxs
b3c9ImZ1bGxzY3JlZW4gaHR0cDovL2xvY2FsaG9zdDo4MDAwIiBkYXRhLWVuYWJsZWQ9ImZhbHNl
IiBzcmM9Ii4uL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZy
YW1lPgorICAgIDxpZnJhbWUgYWxsb3dmdWxsc2NyZWVuIGRhdGEtZW5hYmxlZD0idHJ1ZSIgIHNy
Yz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZy
YW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3dmdWxsc2NyZWVuIGRhdGEtZW5h
YmxlZD0idHJ1ZSIgc3JjPSIuLi9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5o
dG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdub25lJyIgYWxs
b3dmdWxsc2NyZWVuIGRhdGEtZW5hYmxlZD0iZmFsc2UiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgor
ICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUnIiBhbGxvd2Z1bGxzY3JlZW4gZGF0
YS1lbmFibGVkPSJmYWxzZSIgc3JjPSIuLi9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlm
cmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdzZWxm
JyIgYWxsb3dmdWxsc2NyZWVuIGRhdGEtZW5hYmxlZD0iZmFsc2UiIHNyYz0iaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZy
YW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gJ3NlbGYnIiBhbGxvd2Z1bGxzY3Jl
ZW4gZGF0YS1lbmFibGVkPSJ0cnVlIiBzcmM9Ii4uL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5u
ZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgd2Via2l0YWxsb3dmdWxsc2Ny
ZWVuIGRhdGEtZW5hYmxlZD0idHJ1ZSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3Vy
Y2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFt
ZSB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4gZGF0YS1lbmFibGVkPSJ0cnVlIiBzcmM9Ii4uL3Jlc291
cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJh
bWUgYWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUnIiB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4gZGF0YS1l
bmFibGVkPSJmYWxzZSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VzL3BvaW50
ZXItbG9jay9pbm5lci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0i
ZnVsbHNjcmVlbiAnbm9uZSciIHdlYmtpdGFsbG93ZnVsbHNjcmVlbiBkYXRhLWVuYWJsZWQ9ImZh
bHNlIiBzcmM9Ii4uL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwv
aWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gJ3NlbGYnIiB3ZWJraXRhbGxv
d2Z1bGxzY3JlZW4gZGF0YS1lbmFibGVkPSJmYWxzZSIgc3JjPSJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cisg
ICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAnc2VsZiciIHdlYmtpdGFsbG93ZnVsbHNjcmVl
biBkYXRhLWVuYWJsZWQ9InRydWUiIHNyYz0iLi4vcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5l
ci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388810</attachid>
            <date>2020-01-26 11:56:20 -0800</date>
            <delta_ts>2020-01-27 08:27:49 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-206806-20200126115547.patch</filename>
            <type>text/plain</type>
            <size>27503</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjViYmI3MTFjMDc2MGYx
NTZiMDZiYmYwM2QxMTA2MjNmNDQ0NjQwMS4uMTkwYzI2NThiNjcxODRlZTU3MzAwYzJlNDhlMGE3
ZDUzYTcxYWYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTAxLTI1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgJ2FsbG93PSJm
dWxsc2NyZWVuIicgZmVhdHVyZSBwb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNjgwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU2NDA0
NDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBUZXN0
OiBodHRwL3Rlc3RzL2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1mZWF0dXJlLXBvbGljeS5odG1sCisK
KyAgICAgICAgVGhlIHVucHJlZml4ZWQgdmVyc2lvbiBvZiB0aGUgRnVsbHNjcmVlbiBBUEkgaGFz
IGRlcHJlY2F0ZWQgdGhlICdhbGxvd2Z1bGxzY3JlZW4nIGlmcmFtZQorICAgICAgICBhdHRyaWJ1
dGUgaW4gZmF2b3Igb2YgdGhlICdhbGxvdz0iZnVsbHNjcmVlbiInIHN0eWxlIGF0dHJpYnV0ZSB1
c2VkIGJ5IEZlYXR1cmUgUG9saWN5LgorICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc3VjaCwgaW5j
bHVkaW5nIHRoZSBzcGVjaWZpZWQgaGFuZGxpbmcgZm9yIHRoZSBsZWdhY3kgJ2FsbG93ZnVsbHNj
cmVlbicKKyAgICAgICAgYXR0cmlidXRlLgorCisgICAgICAgIE5vdGU6IHRoaXMgcGF0Y2ggd2ls
bCAoaW50ZW50aW9uYWxseSkgY2hhbmdlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIDxpZnJhbWU+
cy4gUHJldmlvdXNseQorICAgICAgICBhbnkgPGlmcmFtZT4gd2l0aG91dCB0aGUgImFsbG93ZnVs
bHNjcmVlbiIgYXR0cmlidXRlIHdvdWxkIG5vdCBiZSBhbGxvd2VkIHRvIGVudGVyIGZ1bGxzY3Jl
ZW4KKyAgICAgICAgbW9kZS4gQWZ0ZXIgdGhpcyBwYXRjaCwgPGlmcmFtZXM+IHdpdGhvdXQgdGhl
IGxlZ2FjeSBhdHRyaWJ1dGUgb3IgYW4gZXhwbGljaXQgZnVsbHNjcmVlbgorICAgICAgICBGZWF0
dXJlIFBvbGljeSB3aWxsIGJlIGFsbG93ZWQgdG8gZW50ZXIgZnVsbHNjcmVlbiBzbyBsb25nIGFz
IHRoZWlyIG9yaWdpbiBpcyB0aGUgc2FtZSBhcworICAgICAgICB0aGUgdG9wIGRvY3VtZW50IChh
bmQgdGhhdCBhbGwgcGFyZW50IGlmcmFtZXMgYXJlIGFsc28gYWxsb3dlZCB0byBlbnRlciBmdWxs
c2NyZWVuKS4KKworICAgICAgICAqIGRvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxzY3JlZW5NYW5hZ2VyOjppc0Z1bGxzY3JlZW5FbmFi
bGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmlzQXR0cmlidXRlT25BbGxPd25lcnMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5J
c0FsbG93ZWRGb3JFbGVtZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRnVsbHNj
cmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBodG1sL0ZlYXR1cmVQb2xpY3kuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMp
OgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZVBvbGljeTo6cGFyc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RmVhdHVyZVBvbGljeTo6YWxsb3dzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0ZlYXR1
cmVQb2xpY3kuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJRnJhbWVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSUZyYW1lRWxlbWVudDo6ZmVhdHVyZVBvbGljeSBjb25zdCk6CisgICAg
ICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBS
ZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OmlzU3luY1hIUkFsbG93
ZWRCeUZlYXR1cmVQb2xpY3kpOiBEZWxldGVkLgorCiAyMDIwLTAxLTIzICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtFTUVdIEtleSByZW5ld2FsIGZhaWxzIHdo
ZW4gdXNpbmcgQVZDb250ZW50S2V5UmVwb3J0R3JvdXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNj
cmVlbk1hbmFnZXIuY3BwCmluZGV4IGU5MDRjNDVlYTUzMDRjNTZiZjM3OTM0ZjhiYjE3MjJkZjRj
OGRkNTUuLjk2ZmI5YjEwZmQ2ZmYxNjhjMmM4MTRmYjY4MzliNTI1MjQxMDlhYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgotI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxJRnJhbWVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCkBAIC00NCwxNyArNDQs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAK
LXN0YXRpYyBib29sIGlzQXR0cmlidXRlT25BbGxPd25lcnMoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlLCBjb25zdCBRdWFsaWZpZWROYW1lJiBwcmVmaXhlZEF0dHJpYnV0ZSwgY29uc3Qg
SFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lcikKLXsKLSAgICBpZiAoIW93bmVyKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICBkbyB7Ci0gICAgICAgIGlmICghKG93bmVyLT5oYXNBdHRyaWJ1
dGUoYXR0cmlidXRlKSB8fCBvd25lci0+aGFzQXR0cmlidXRlKHByZWZpeGVkQXR0cmlidXRlKSkp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSB3aGlsZSAoKG93bmVyID0gb3duZXIt
PmRvY3VtZW50KCkub3duZXJFbGVtZW50KCkpKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogRnVs
bHNjcmVlbk1hbmFnZXI6OkZ1bGxzY3JlZW5NYW5hZ2VyKERvY3VtZW50JiBkb2N1bWVudCkKICAg
ICA6IG1fZG9jdW1lbnQgeyBkb2N1bWVudCB9CiB7CkBAIC02MiwxMSArNTEsNiBAQCBGdWxsc2Ny
ZWVuTWFuYWdlcjo6RnVsbHNjcmVlbk1hbmFnZXIoRG9jdW1lbnQmIGRvY3VtZW50KQogCiBGdWxs
c2NyZWVuTWFuYWdlcjo6fkZ1bGxzY3JlZW5NYW5hZ2VyKCkgPSBkZWZhdWx0OwogCi1ib29sIEZ1
bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuSXNBbGxvd2VkRm9yRWxlbWVudChFbGVtZW50JiBl
bGVtZW50KSBjb25zdAotewotICAgIHJldHVybiBpc0F0dHJpYnV0ZU9uQWxsT3duZXJzKGFsbG93
ZnVsbHNjcmVlbkF0dHIsIHdlYmtpdGFsbG93ZnVsbHNjcmVlbkF0dHIsIGVsZW1lbnQuZG9jdW1l
bnQoKS5vd25lckVsZW1lbnQoKSk7Ci19Ci0KIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVl
c3RGdWxsc2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGdWxsc2NyZWVuQ2hlY2tU
eXBlIGNoZWNrVHlwZSkKIHsKICAgICBpZiAoIWVsZW1lbnQpCkBAIC0xNDIsNyArMTI2LDcgQEAg
dm9pZCBGdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50KEVsZW1l
bnQqIGVsZW1lbnQsIEZ1bGxzY3JlZW4KIAogICAgICAgICAvLyBUaGUgY29udGV4dCBvYmplY3Qn
cyBub2RlIGRvY3VtZW50LCBvciBhbiBhbmNlc3RvciBicm93c2luZyBjb250ZXh0J3MgZG9jdW1l
bnQgZG9lcyBub3QgaGF2ZQogICAgICAgICAvLyB0aGUgZnVsbHNjcmVlbiBlbmFibGVkIGZsYWcg
c2V0LgotICAgICAgICBpZiAoY2hlY2tUeXBlID09IEVuZm9yY2VJRnJhbWVBbGxvd0Z1bGxzY3Jl
ZW5SZXF1aXJlbWVudCAmJiAhZnVsbHNjcmVlbklzQWxsb3dlZEZvckVsZW1lbnQoKmVsZW1lbnQp
KSB7CisgICAgICAgIGlmIChjaGVja1R5cGUgPT0gRW5mb3JjZUlGcmFtZUFsbG93RnVsbHNjcmVl
blJlcXVpcmVtZW50ICYmICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93
bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpGdWxsc2NyZWVuLCBkb2N1bWVudCgpKSkgewogICAg
ICAgICAgICAgZmFpbGVkUHJlZmxpZ2h0cyhXVEZNb3ZlKGVsZW1lbnQpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpAQCAtMzQ1LDcgKzMyOSw3IEBAIGJvb2wgRnVsbHNjcmVlbk1h
bmFnZXI6OmlzRnVsbHNjcmVlbkVuYWJsZWQoKSBjb25zdAogICAgIC8vIGJyb3dzaW5nIGNvbnRl
eHQncyBkb2N1bWVudHMgaGF2ZSB0aGVpciBmdWxsc2NyZWVuIGVuYWJsZWQgZmxhZyBzZXQsIG9y
IGZhbHNlIG90aGVyd2lzZS4KIAogICAgIC8vIFRvcC1sZXZlbCBicm93c2luZyBjb250ZXh0cyBh
cmUgaW1wbGllZCB0byBoYXZlIHRoZWlyIGFsbG93RnVsbHNjcmVlbiBhdHRyaWJ1dGUgc2V0Lgot
ICAgIHJldHVybiBpc0F0dHJpYnV0ZU9uQWxsT3duZXJzKGFsbG93ZnVsbHNjcmVlbkF0dHIsIHdl
YmtpdGFsbG93ZnVsbHNjcmVlbkF0dHIsIGRvY3VtZW50KCkub3duZXJFbGVtZW50KCkpOworICAg
IHJldHVybiBpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0
dXJlUG9saWN5OjpUeXBlOjpGdWxsc2NyZWVuLCBkb2N1bWVudCgpKTsKIH0KIAogc3RhdGljIHZv
aWQgdW53cmFwRnVsbHNjcmVlblJlbmRlcmVyKFJlbmRlckZ1bGxTY3JlZW4qIGZ1bGxzY3JlZW5S
ZW5kZXJlciwgRWxlbWVudCogZnVsbHNjcmVlbkVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxs
c2NyZWVuTWFuYWdlci5oCmluZGV4IGJmZDIxN2ZkMTE5NWEwYzlmMTMxMDdlYmRmN2YzYjlhMDA3
M2RkMTAuLjBjNWIyZWU3YTk5OTE3YzI2N2QxMjMxMmI4ZGY3ZTk2ZDI0NzdhZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC04Myw3ICs4Myw2IEBAIHB1YmxpYzoK
ICAgICBSZW5kZXJGdWxsU2NyZWVuKiBmdWxsc2NyZWVuUmVuZGVyZXIoKSBjb25zdDsKIAogICAg
IHZvaWQgZGlzcGF0Y2hGdWxsc2NyZWVuQ2hhbmdlRXZlbnRzKCk7Ci0gICAgYm9vbCBmdWxsc2Ny
ZWVuSXNBbGxvd2VkRm9yRWxlbWVudChFbGVtZW50JikgY29uc3Q7CiAgICAgdm9pZCBmdWxsc2Ny
ZWVuRWxlbWVudFJlbW92ZWQoKTsKIAogICAgIHZvaWQgYWRqdXN0RnVsbHNjcmVlbkVsZW1lbnRP
bk5vZGVSZW1vdmFsKE5vZGUmLCBEb2N1bWVudDo6Tm9kZVJlbW92YWwgPSBEb2N1bWVudDo6Tm9k
ZVJlbW92YWw6Ok5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJl
UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAKaW5kZXgg
ZTQzNDJhZWVhNjBhM2FhZTI2YWMxM2E5NWQ2ZDZjZDUzYWFiNTIwOC4uMTkyNDY1YTcxY2Q2ODZj
MmJjNzlhYzdmZDdmOWRmZTI0OWNiYjc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GZWF0dXJlUG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xp
Y3kuY3BwCkBAIC0yNywxMSArMjcsMzYgQEAKICNpbmNsdWRlICJGZWF0dXJlUG9saWN5LmgiCiAK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKKworYm9vbCBpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1
bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlIHR5cGUsIGNvbnN0IERvY3VtZW50
JiBkb2N1bWVudCkKK3sKKyAgICBhdXRvJiB0b3BEb2N1bWVudCA9IGRvY3VtZW50LnRvcERvY3Vt
ZW50KCk7CisgICAgYXV0byBhbmNlc3RvckRvY3VtZW50ID0gJmRvY3VtZW50OworICAgIHdoaWxl
IChhbmNlc3RvckRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudCkgeworICAgICAgICBpZiAoIWFuY2Vz
dG9yRG9jdW1lbnQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgYXV0byBv
d25lckVsZW1lbnQgPSBhbmNlc3RvckRvY3VtZW50LT5vd25lckVsZW1lbnQoKTsKKyAgICAgICAg
aWYgKGlzPEhUTUxJRnJhbWVFbGVtZW50Pihvd25lckVsZW1lbnQpKSB7CisgICAgICAgICAgICBh
dXRvIGZlYXR1cmVQb2xpY3kgPSBkb3duY2FzdDxIVE1MSUZyYW1lRWxlbWVudD4ob3duZXJFbGVt
ZW50KS0+ZmVhdHVyZVBvbGljeSgpOworICAgICAgICAgICAgaWYgKCFmZWF0dXJlUG9saWN5LmFs
bG93cyh0eXBlLCBhbmNlc3RvckRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgYW5jZXN0
b3JEb2N1bWVudCA9IGFuY2VzdG9yRG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCk7CisgICAgfQor
CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBib29sIGlzQWxsb3dlZEJ5RmVhdHVyZVBv
bGljeShjb25zdCBGZWF0dXJlUG9saWN5OjpBbGxvd1J1bGUmIHJ1bGUsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgb3JpZ2luKQogewogICAgIHN3aXRjaCAocnVsZS50eXBlKSB7CkBAIC05NCwx
MyArMTE5LDE0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVMaXN0KERvY3VtZW50JiBkb2N1
bWVudCwgRmVhdHVyZVBvbGljeTo6QWxsb3dSdWxlJiBydWxlCiAgICAgfQogfQogCi1GZWF0dXJl
UG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgU3RyaW5nVmll
dyBhbGxvd0F0dHJpYnV0ZVZhbHVlKQorRmVhdHVyZVBvbGljeSBGZWF0dXJlUG9saWN5OjpwYXJz
ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJhbWVFbGVtZW50JiBpZnJhbWUsIFN0
cmluZ1ZpZXcgYWxsb3dBdHRyaWJ1dGVWYWx1ZSkKIHsKICAgICBGZWF0dXJlUG9saWN5IHBvbGlj
eTsKICAgICBib29sIGlzQ2FtZXJhSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlzTWlj
cm9waG9uZUluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgYm9vbCBpc0Rpc3BsYXlDYXB0dXJlSW5p
dGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlzU3luY1hIUkluaXRpYWxpemVkID0gZmFsc2U7
CisgICAgYm9vbCBpc0Z1bGxzY3JlZW5Jbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGZvciAoYXV0
byBhbGxvd0l0ZW0gOiBhbGxvd0F0dHJpYnV0ZVZhbHVlLnNwbGl0KCc7JykpIHsKICAgICAgICAg
YXV0byBpdGVtID0gYWxsb3dJdGVtLnN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nTWF0Y2hlZENoYXJh
Y3RlcnMoaXNIVE1MU3BhY2U8VUNoYXI+KTsKICAgICAgICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgi
Y2FtZXJhIikpIHsKQEAgLTEyMyw5ICsxNDksMTQgQEAgRmVhdHVyZVBvbGljeSBGZWF0dXJlUG9s
aWN5OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgYWxsb3dBdHRyaWJ1dGUK
ICAgICAgICAgICAgIHVwZGF0ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5tX3N5bmNYSFJSdWxlLCBp
dGVtLnN1YnN0cmluZyg4KSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQorICAg
ICAgICBpZiAoaXRlbS5zdGFydHNXaXRoKCJmdWxsc2NyZWVuIikpIHsKKyAgICAgICAgICAgIGlz
RnVsbHNjcmVlbkluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHVwZGF0ZUxpc3QoZG9j
dW1lbnQsIHBvbGljeS5tX2Z1bGxzY3JlZW5SdWxlLCBpdGVtLnN1YnN0cmluZygxMSkpOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBCeSBkZWZhdWx0
LCBjYW1lcmEsIG1pY3JvcGhvbmUgYW5kIGRpc3BsYXktY2FwdHVyZSBwb2xpY3kgaXMgJ3NlbGYn
CisgICAgLy8gQnkgZGVmYXVsdCwgY2FtZXJhLCBtaWNyb3Bob25lLCBkaXNwbGF5LWNhcHR1cmUs
IGFuZCBmdWxsc2NyZWVuIHBvbGljeSBpcyAnc2VsZicKICAgICBpZiAoIWlzQ2FtZXJhSW5pdGlh
bGl6ZWQpCiAgICAgICAgIHBvbGljeS5tX2NhbWVyYVJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3Vt
ZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKICAgICBpZiAoIWlzTWljcm9waG9uZUluaXRp
YWxpemVkKQpAQCAtMTMzLDYgKzE2NCwyMSBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6
OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgU3RyaW5nVmlldyBhbGxvd0F0dHJpYnV0ZQogICAg
IGlmICghaXNEaXNwbGF5Q2FwdHVyZUluaXRpYWxpemVkKQogICAgICAgICBwb2xpY3kubV9kaXNw
bGF5Q2FwdHVyZVJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCku
ZGF0YSgpKTsKIAorICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMtZmVhdHVy
ZS1wb2xpY3kvI3Byb2Nlc3MtZmVhdHVyZS1wb2xpY3ktYXR0cmlidXRlcworICAgIC8vIDkuNSBQ
cm9jZXNzIEZlYXR1cmUgUG9saWN5IEF0dHJpYnV0ZXMKKyAgICAvLyAzLjEgSWYgZWxlbWVudOKA
mXMgYWxsb3dmdWxsc2NyZWVuIGF0dHJpYnV0ZSBpcyBzcGVjaWZpZWQsIGFuZCBjb250YWluZXIg
cG9saWN5IGRvZXMKKyAgICAvLyAgICAgbm90IGNvbnRhaW4gYW4gYWxsb3dsaXN0IGZvciBmdWxs
c2NyZWVuLAorICAgIGlmICghaXNGdWxsc2NyZWVuSW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgaWYg
KGlmcmFtZS5oYXNBdHRyaWJ1dGUoYWxsb3dmdWxsc2NyZWVuQXR0cikgfHwgaWZyYW1lLmhhc0F0
dHJpYnV0ZSh3ZWJraXRhbGxvd2Z1bGxzY3JlZW5BdHRyKSkgeworICAgICAgICAgICAgLy8gMy4x
LjEgQ29uc3RydWN0IGEgbmV3IGRlY2xhcmF0aW9uIGZvciBmdWxsc2NyZWVuLCB3aG9zZSBhbGxv
d2xpc3QgaXMgdGhlIHNwZWNpYWwgdmFsdWUgKi4KKyAgICAgICAgICAgIHBvbGljeS5tX2Z1bGxz
Y3JlZW5SdWxlLnR5cGUgPSBGZWF0dXJlUG9saWN5OjpBbGxvd1J1bGU6OlR5cGU6OkFsbDsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGh0dHBzOi8vZnVsbHNjcmVlbi5zcGVjLndo
YXR3Zy5vcmcvI2ZlYXR1cmUtcG9saWN5LWludGVncmF0aW9uCisgICAgICAgICAgICAvLyBUaGUg
ZGVmYXVsdCBhbGxvd2xpc3QgaXMgJ3NlbGYnLgorICAgICAgICAgICAgcG9saWN5Lm1fZnVsbHNj
cmVlblJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgp
KTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmICghaXNTeW5jWEhSSW5pdGlhbGl6ZWQpCiAg
ICAgICAgIHBvbGljeS5tX3N5bmNYSFJSdWxlLnR5cGUgPSBBbGxvd1J1bGU6OlR5cGU6OkFsbDsK
IApAQCAtMTUwLDYgKzE5Niw4IEBAIGJvb2wgRmVhdHVyZVBvbGljeTo6YWxsb3dzKFR5cGUgdHlw
ZSwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4pIGNvbnN0CiAgICAgICAgIHJldHVy
biBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV9kaXNwbGF5Q2FwdHVyZVJ1bGUsIG9yaWdpbik7
CiAgICAgY2FzZSBUeXBlOjpTeW5jWEhSOgogICAgICAgICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0
dXJlUG9saWN5KG1fc3luY1hIUlJ1bGUsIG9yaWdpbik7CisgICAgY2FzZSBUeXBlOjpGdWxsc2Ny
ZWVuOgorICAgICAgICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KG1fZnVsbHNjcmVl
blJ1bGUsIG9yaWdpbik7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGlj
eS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmgKaW5kZXggZmM3MWRmZTJh
NWQ3M2RmNTExNmRkYTZhNmU3NDE5YzYwOWJmNTFkNS4uNjU0ZmI4MzhmMGI0MDE1ZWI0ZDM2NjQ4
YTQxNTE4NzFiYWRmNDA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJl
UG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmgKQEAgLTMy
LDEyICszMiwxMyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKK2Ns
YXNzIEhUTUxJRnJhbWVFbGVtZW50OwogCiBjbGFzcyBGZWF0dXJlUG9saWN5IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgRmVhdHVyZVBvbGljeSBwYXJzZShEb2N1bWVudCYsIFN0cmluZ1ZpZXcpOwor
ICAgIHN0YXRpYyBGZWF0dXJlUG9saWN5IHBhcnNlKERvY3VtZW50JiwgY29uc3QgSFRNTElGcmFt
ZUVsZW1lbnQmLCBTdHJpbmdWaWV3KTsKIAotICAgIGVudW0gY2xhc3MgVHlwZSB7IENhbWVyYSwg
TWljcm9waG9uZSwgRGlzcGxheUNhcHR1cmUsIFN5bmNYSFIgfTsKKyAgICBlbnVtIGNsYXNzIFR5
cGUgeyBDYW1lcmEsIE1pY3JvcGhvbmUsIERpc3BsYXlDYXB0dXJlLCBTeW5jWEhSLCBGdWxsc2Ny
ZWVuIH07CiAgICAgYm9vbCBhbGxvd3MoVHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJikg
Y29uc3Q7CiAKICAgICBzdHJ1Y3QgQWxsb3dSdWxlIHsKQEAgLTUxLDYgKzUyLDkgQEAgcHJpdmF0
ZToKICAgICBBbGxvd1J1bGUgbV9taWNyb3Bob25lUnVsZTsKICAgICBBbGxvd1J1bGUgbV9kaXNw
bGF5Q2FwdHVyZVJ1bGU7CiAgICAgQWxsb3dSdWxlIG1fc3luY1hIUlJ1bGU7CisgICAgQWxsb3dS
dWxlIG1fZnVsbHNjcmVlblJ1bGU7CiB9OwogCitleHRlcm4gYm9vbCBpc0ZlYXR1cmVQb2xpY3lB
bGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlLCBjb25zdCBE
b2N1bWVudCYpOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuY3BwCmluZGV4IGFlM2M4YTkxNDlkNThjYjQ5MWRkODJkZDFkMzI0
NjgyZWU5NGE4NGMuLjNlOWZjOGE5YWQ4YTBmNjYwMjRhODBkOTg2NWJlMzFjZjdhYjliNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCkBAIC0xMDIsNyArMTAy
LDcgQEAgdm9pZCBIVE1MSUZyYW1lRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICAgICAgc2V0U2FuZGJveEZsYWdzKHZh
bHVlLmlzTnVsbCgpID8gU2FuZGJveE5vbmUgOiBTZWN1cml0eUNvbnRleHQ6OnBhcnNlU2FuZGJv
eFBvbGljeSh2YWx1ZSwgaW52YWxpZFRva2VucykpOwogICAgICAgICBpZiAoIWludmFsaWRUb2tl
bnMuaXNOdWxsKCkpCiAgICAgICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiRXJyb3Igd2hpbGUgcGFy
c2luZyB0aGUgJ3NhbmRib3gnIGF0dHJpYnV0ZTogIiArIGludmFsaWRUb2tlbnMpOwotICAgIH0g
ZWxzZSBpZiAobmFtZSA9PSBhbGxvd0F0dHIpCisgICAgfSBlbHNlIGlmIChuYW1lID09IGFsbG93
QXR0ciB8fCBuYW1lID09IGFsbG93ZnVsbHNjcmVlbkF0dHIgfHwgbmFtZSA9PSB3ZWJraXRhbGxv
d2Z1bGxzY3JlZW5BdHRyKQogICAgICAgICBtX2ZlYXR1cmVQb2xpY3kgPSBXVEY6Om51bGxvcHQ7
CiAgICAgZWxzZQogICAgICAgICBIVE1MRnJhbWVFbGVtZW50QmFzZTo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOwpAQCAtMTM4LDcgKzEzOCw3IEBAIFJlZmVycmVyUG9saWN5IEhUTUxJRnJh
bWVFbGVtZW50OjpyZWZlcnJlclBvbGljeSgpIGNvbnN0CiBjb25zdCBGZWF0dXJlUG9saWN5JiBI
VE1MSUZyYW1lRWxlbWVudDo6ZmVhdHVyZVBvbGljeSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2Zl
YXR1cmVQb2xpY3kpCi0gICAgICAgIG1fZmVhdHVyZVBvbGljeSA9IEZlYXR1cmVQb2xpY3k6OnBh
cnNlKGRvY3VtZW50KCksIGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYWxsb3dBdHRy
KSk7CisgICAgICAgIG1fZmVhdHVyZVBvbGljeSA9IEZlYXR1cmVQb2xpY3k6OnBhcnNlKGRvY3Vt
ZW50KCksICp0aGlzLCBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFsbG93QXR0cikp
OwogICAgIHJldHVybiAqbV9mZWF0dXJlUG9saWN5OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcAppbmRleCAxMzUzZTVkZjZmOWNiODVjMTI5ZmI3NTQ4M2FjYjYyMjNjMzU2
ZWQ5Li4zOWQ4Y2E1OTI1OGQ2MTYyZDRmOGI5OTVjZDNjOTkwOWU5NWZlZDg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTU3OCwyMyArNTc4LDYgQEAgRXhjZXB0aW9u
T3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6OnNlbmRCeXRlc0RhdGEoY29uc3Qgdm9pZCogZGF0YSwg
c2l6ZV90IGxlbmd0aCkKICAgICByZXR1cm4gY3JlYXRlUmVxdWVzdCgpOwogfQogCi1zdGF0aWMg
aW5saW5lIGJvb2wgaXNTeW5jWEhSQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShEb2N1bWVudCYgZG9j
dW1lbnQpCi17Ci0gICAgYXV0byYgdG9wRG9jdW1lbnQgPSBkb2N1bWVudC50b3BEb2N1bWVudCgp
OwotICAgIGlmICgmZG9jdW1lbnQgIT0gJnRvcERvY3VtZW50KSB7Ci0gICAgICAgIGZvciAoYXV0
byogYW5jZXN0b3JEb2N1bWVudCA9ICZkb2N1bWVudDsgYW5jZXN0b3JEb2N1bWVudCAhPSAmdG9w
RG9jdW1lbnQ7IGFuY2VzdG9yRG9jdW1lbnQgPSBhbmNlc3RvckRvY3VtZW50LT5wYXJlbnREb2N1
bWVudCgpKSB7Ci0gICAgICAgICAgICBhdXRvKiBlbGVtZW50ID0gYW5jZXN0b3JEb2N1bWVudC0+
b3duZXJFbGVtZW50KCk7Ci0gICAgICAgICAgICBBU1NFUlQoZWxlbWVudCk7Ci0gICAgICAgICAg
ICBpZiAoZWxlbWVudCAmJiBpczxIVE1MSUZyYW1lRWxlbWVudD4oKmVsZW1lbnQpKSB7Ci0gICAg
ICAgICAgICAgICAgYXV0byYgZmVhdHVyZVBvbGljeSA9IGRvd25jYXN0PEhUTUxJRnJhbWVFbGVt
ZW50PigqZWxlbWVudCkuZmVhdHVyZVBvbGljeSgpOwotICAgICAgICAgICAgICAgIGlmICghZmVh
dHVyZVBvbGljeS5hbGxvd3MoRmVhdHVyZVBvbGljeTo6VHlwZTo6U3luY1hIUiwgYW5jZXN0b3JE
b2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpKQotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1
ZXN0KCkKIHsKICAgICAvLyBPbmx5IEdFVCByZXF1ZXN0IGlzIHN1cHBvcnRlZCBmb3IgYmxvYiBV
UkwuCkBAIC02NjgsNyArNjUxLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6
OmNyZWF0ZVJlcXVlc3QoKQogICAgICAgICBpZiAobV9sb2FkZXIpCiAgICAgICAgICAgICBzZXRQ
ZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSAmJiAhaXNTeW5jWEhSQWxsb3dlZEJ5RmVh
dHVyZVBvbGljeSgqZG9jdW1lbnQoKSkpCisgICAgICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPmlzRG9jdW1lbnQoKSAmJiAhaXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRB
bmRBbGxPd25lcnMoRmVhdHVyZVBvbGljeTo6VHlwZTo6U3luY1hIUiwgKmRvY3VtZW50KCkpKQog
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5ldHdvcmtFcnJvciB9OwogCiAgICAgICAg
IHJlcXVlc3Quc2V0RG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5kb21haW5Gb3JDYWNoZVBhcnRpdGlvbigpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMTQ4MGU3YTY2YjI2ZDRm
YTFmM2Q5Y2Y4MDc0NjJlNWE1ZDJhZGM4Li5kYTI3ZWUzZmZiODNkNTk1NmQ5YjMyZDMwMzZkZTU1
OThiN2JhNjllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDEtMjUgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCAnYWxsb3c9ImZ1bGxzY3Jl
ZW4iJyBmZWF0dXJlIHBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA2ODA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTY0MDQ0OD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogZnVsbHNjcmVl
bi9mdWxsLXNjcmVlbi1lbmFibGVkLXByZWZpeGVkLmh0bWw6CisgICAgICAgICogZnVsbHNjcmVl
bi9mdWxsLXNjcmVlbi1lbmFibGVkLmh0bWw6CisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNj
cmVlbi1pZnJhbWUtbm90LWFsbG93ZWQuaHRtbDoKKyAgICAgICAgKiBmdWxsc2NyZWVuL2Z1bGwt
c2NyZWVuLXJlc3RyaWN0aW9ucy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvZnVsbHNjcmVl
bi9mdWxsc2NyZWVuLWZlYXR1cmUtcG9saWN5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9mdWxsc2NyZWVuL2Z1bGxzY3JlZW4tZmVhdHVyZS1wb2xpY3kuaHRtbDog
QWRkZWQuCisKIDIwMjAtMDEtMTcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW01TRV0gRGVjb2RlIGdsaXRjaGVzIHdoZW4gd2F0Y2hpbmcgdmlkZW9zIG9uIENO
Ti5jb20KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZW5h
YmxlZC1wcmVmaXhlZC5odG1sIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1l
bmFibGVkLXByZWZpeGVkLmh0bWwKaW5kZXggNmQxMGJlNTI1NTFmNGY4ZWZhNmI5MjQ4OTE0ZjE2
ODRkNjRjOTkyYi4uNjE4YWFkZmE1ZGQyMzg2NWU2NjU2YWE5NzkwMjU0NTRhZTI1YjM4MCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1lbmFibGVkLXByZWZp
eGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1lbmFibGVk
LXByZWZpeGVkLmh0bWwKQEAgLTYsNiArNiw3IEBACiAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJh
bWUnKSk7CiAgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnd2Via2l0YWxsb3dmdWxsc2NyZWVuJywg
J3RydWUnKTsKICAgICB2YXIgaWZyYW1lMiA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKSk7CisgICAgaWZyYW1lMi5z
ZXRBdHRyaWJ1dGUoJ2FsbG93JywgImZ1bGxzY3JlZW4gJ25vbmUnIik7CiAgICAgdGVzdEV4cGVj
dGVkKCdpZnJhbWUuY29udGVudERvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkJywgdHJ1
ZSk7CiAgICAgdGVzdEV4cGVjdGVkKCdpZnJhbWUyLmNvbnRlbnREb2N1bWVudC53ZWJraXRGdWxs
c2NyZWVuRW5hYmxlZCcsIGZhbHNlKTsKICAgICBlbmRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWVuYWJsZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZW5hYmxlZC5odG1sCmluZGV4IDY2MTdjNGRhZTMyNDc1
YWM2NTgwNmY2MTNhNTY5OTFlOWNhNWEwOTMuLjJkMDYwMTA0ODkzMjFlMGNhYjczYzEwYWQ5YTk4
MWUzYTY2OWYxOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3Jl
ZW4tZW5hYmxlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4t
ZW5hYmxlZC5odG1sCkBAIC02LDYgKzYsNyBAQAogICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5k
b2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1l
JykpOwogICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoJ2FsbG93ZnVsbHNjcmVlbicsICd0cnVlJyk7
CiAgICAgdmFyIGlmcmFtZTIgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJykpOworICAgIGlmcmFtZTIuc2V0QXR0cmli
dXRlKCdhbGxvdycsICJmdWxsc2NyZWVuICdub25lJyIpOwogICAgIHRlc3RFeHBlY3RlZCgnaWZy
YW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCcsIHRydWUpOwogICAg
IHRlc3RFeHBlY3RlZCgnaWZyYW1lMi5jb250ZW50RG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVu
YWJsZWQnLCBmYWxzZSk7CiAgICAgZW5kVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtbm90LWFsbG93ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLW5vdC1hbGxvd2VkLmh0bWwKaW5kZXgg
YTg4MzNkZWRiZjc4ODk0ZGI4MmYzNjUwNDU5NTE4M2FiYmU2YzI3NS4uYzJiNmY4YjVhNTMwYTdi
OTQ1MjllNDBmNTMxMjY1MmJmOWEyZThiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZnVsbHNj
cmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtbm90LWFsbG93ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1ub3QtYWxsb3dlZC5odG1sCkBAIC0yMCw1
ICsyMCw1IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgfSk7CiB9CiA8L3NjcmlwdD4KLTxp
ZnJhbWUgaWQ9ImZyYW1lIiBzcmM9InJlc291cmNlcy9pbm5lci5odG1sIiBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8aWZyYW1lIGlkPSJmcmFtZSIgc3JjPSJyZXNvdXJjZXMvaW5uZXIuaHRtbCIgb25s
b2FkPSJydW5UZXN0KCkiIGFsbG93PSJmdWxsc2NyZWVuICdub25lJyI+CiA8L2lmcmFtZT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVzdHJpY3Rpb25z
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlc3RyaWN0aW9ucy5o
dG1sCmluZGV4IDRhZDg0NDAzMGI3MjI2OTAwOTlhMTVkNjZhZjE5NDI0NDUzZDJjMjUuLmJkY2Nk
MGZiNGFmMDgxZGM4NWRmMzhiODM0NGUzMmE2NjYwMmZjYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVzdHJpY3Rpb25zLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZXN0cmljdGlvbnMuaHRtbApAQCAtMTgsNiAr
MTgsNyBAQAogICAgICAgICB2YXIgc3RlcDIgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgnIlRoZSBjb250ZXh0IG9iamVjdFwncyBub2RlIGRvY3VtZW50LCBvciBhbiBh
bmNlc3RvciBicm93c2luZyBjb250ZXh0XCdzIGRvY3VtZW50IGRvZXMgbm90IGhhdmUgdGhlIGZ1
bGxzY3JlZW4gZW5hYmxlZCBmbGFnIHNldC4iJykKICAgICAgICAgICAgIHZhciBpZnJhbWUgPSBk
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnaWZyYW1lJykpOworICAgICAgICAgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAi
ZnVsbHNjcmVlbiAnbm9uZSciKTsKICAgICAgICAgICAgIHZhciBkaXYgPSBpZnJhbWUuY29udGVu
dERvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChpZnJhbWUuY29udGVudERvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKIAogICAgICAgICAgICAgd2FpdEZvckV2ZW50T25j
ZShpZnJhbWUuY29udGVudERvY3VtZW50LCAnd2Via2l0ZnVsbHNjcmVlbmVycm9yJywgc3RlcDMp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9mdWxsc2NyZWVuL2Z1bGxzY3Jl
ZW4tZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9m
dWxsc2NyZWVuL2Z1bGxzY3JlZW4tZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjVmNmRkMWEzNzk0NTVhMzg1YTUwNDZkMGEwMmFlMjFmM2RmY2YyYmYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1mZWF0
dXJlLXBvbGljeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorUEFTUyBpZnJhbWUgd2l0
aCBzcmM9Imh0dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3Jl
ZW5FbmFibGVkID09PSBmYWxzZS4KK1BBU1MgaWZyYW1lIHdpdGggc3JjPSIuLi9yZXNvdXJjLi4u
IiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gdHJ1ZS4K
K1BBU1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4iLCBzcmM9Imh0dHA6Ly9sb2MuLi4i
IHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0cnVlLgor
UEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiIsIHNyYz0iLi4vcmVzb3VyYy4uLiIg
c2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IHRydWUuCitQ
QVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuICoiLCBzcmM9Imh0dHA6Ly9sb2MuLi4i
IHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0cnVlLgor
UEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAqIiwgc3JjPSIuLi9yZXNvdXJjLi4u
IiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gdHJ1ZS4K
K1BBU1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUnIiwgc3JjPSJodHRwOi8v
bG9jLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0g
ZmFsc2UuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuICdub25lJyIsIHNyYz0i
Li4vcmVzb3VyYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJs
ZWQgPT09IGZhbHNlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAnc2VsZici
LCBzcmM9Imh0dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3Jl
ZW5FbmFibGVkID09PSBmYWxzZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4g
J3NlbGYnIiwgc3JjPSIuLi9yZXNvdXJjLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRG
dWxsc2NyZWVuRW5hYmxlZCA9PT0gdHJ1ZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxz
Y3JlZW4gaHR0cDovL2xvY2FsaG9zdDo4MDAwIiwgc3JjPSJodHRwOi8vbG9jLi4uIiBzaG91bGQg
aGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gdHJ1ZS4KK1BBU1MgaWZy
YW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4gaHR0cDovL2xvY2FsaG9zdDo4MDAwIiwgc3JjPSIu
Li9yZXNvdXJjLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxl
ZCA9PT0gZmFsc2UuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93ZnVsbHNjcmVlbiwgc3JjPSJodHRw
Oi8vbG9jLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9
PT0gdHJ1ZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3dmdWxsc2NyZWVuLCBzcmM9Ii4uL3Jlc291
cmMuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0
cnVlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAnbm9uZSciLCBhbGxvd2Z1
bGxzY3JlZW4sIHNyYz0iaHR0cDovL2xvYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0
RnVsbHNjcmVlbkVuYWJsZWQgPT09IGZhbHNlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVs
bHNjcmVlbiAnbm9uZSciLCBhbGxvd2Z1bGxzY3JlZW4sIHNyYz0iLi4vcmVzb3VyYy4uLiIgc2hv
dWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IGZhbHNlLgorUEFT
UyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAnc2VsZiciLCBhbGxvd2Z1bGxzY3JlZW4s
IHNyYz0iaHR0cDovL2xvYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVl
bkVuYWJsZWQgPT09IGZhbHNlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAn
c2VsZiciLCBhbGxvd2Z1bGxzY3JlZW4sIHNyYz0iLi4vcmVzb3VyYy4uLiIgc2hvdWxkIGhhdmUg
ZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IHRydWUuCitQQVNTIGlmcmFtZSB3
aXRoIHdlYmtpdGFsbG93ZnVsbHNjcmVlbiwgc3JjPSJodHRwOi8vbG9jLi4uIiBzaG91bGQgaGF2
ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gdHJ1ZS4KK1BBU1MgaWZyYW1l
IHdpdGggd2Via2l0YWxsb3dmdWxsc2NyZWVuLCBzcmM9Ii4uL3Jlc291cmMuLi4iIHNob3VsZCBo
YXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0cnVlLgorUEFTUyBpZnJh
bWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAnbm9uZSciLCB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4s
IHNyYz0iaHR0cDovL2xvYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVl
bkVuYWJsZWQgPT09IGZhbHNlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAn
bm9uZSciLCB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4sIHNyYz0iLi4vcmVzb3VyYy4uLiIgc2hvdWxk
IGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IGZhbHNlLgorUEFTUyBp
ZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAnc2VsZiciLCB3ZWJraXRhbGxvd2Z1bGxzY3Jl
ZW4sIHNyYz0iaHR0cDovL2xvYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNj
cmVlbkVuYWJsZWQgPT09IGZhbHNlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVl
biAnc2VsZiciLCB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4sIHNyYz0iLi4vcmVzb3VyYy4uLiIgc2hv
dWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IHRydWUuCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZnVsbHNjcmVlbi9mdWxsc2NyZWVuLWZl
YXR1cmUtcG9saWN5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Z1bGxzY3JlZW4vZnVs
bHNjcmVlbi1mZWF0dXJlLXBvbGljeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4ZDgzZTY5MWFiYjIwOWVl
Njk2OThhYmFkMTZjZGYzODZjNGY0MDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1mZWF0dXJlLXBvbGljeS5odG1sCkBAIC0w
LDAgKzEsNzUgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+
aWZyYW1lIHsgZGlzcGxheTogbm9uZTsgfTwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHdhaXRGb3IoZWxlbWVudCwgdHlwZSkgeworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB7CisgICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgZXZl
bnQgPT4geworICAgICAgICAgICAgICAgIHJlc29sdmUoZXZlbnQpOworICAgICAgICAgICAgfSwg
eyBvbmNlOiB0cnVlIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgIGxldCBhdHRyaWJ1dGVGaWx0ZXIgPSBhdHRyaWJ1dGUgPT4geyByZXR1cm4gYXR0cmli
dXRlLm5hbWUgIT09ICdkYXRhLWVuYWJsZWQnOyB9OworICAgICAgICAgICAgbGV0IGF0dHJpYnV0
ZU1hcCA9IGF0dHJpYnV0ZSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZS52YWx1
ZSA9PT0gJycpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGUubmFtZTsKKyAg
ICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlLm5hbWUgPT09ICdzcmMnKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gYCR7YXR0cmlidXRlLm5hbWV9PSIke2F0dHJpYnV0ZS52YWx1ZS5zdWJz
dHJpbmcoMCwgMTApfS4uLiJgOworICAgICAgICAgICAgICAgIHJldHVybiBgJHthdHRyaWJ1dGUu
bmFtZX09IiR7YXR0cmlidXRlLnZhbHVlfSJgOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBmb3IgKHZhciBmcmFtZSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpZnJhbWUnKSkg
eworICAgICAgICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoWyJldmFs
IiwgJ3BhcmVudC5wb3N0TWVzc2FnZShkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCwg
IioiKSddLCAiKiIpOworICAgICAgICAgICAgICAgIGxldCBtZXNzYWdlRXZlbnQgPSBhd2FpdCB3
YWl0Rm9yKHdpbmRvdywgJ21lc3NhZ2UnKTsKKyAgICAgICAgICAgICAgICBsZXQgZXhwZWN0ZWRN
ZXNzYWdlID0gZnJhbWUuZ2V0QXR0cmlidXRlKCdkYXRhLWVuYWJsZWQnKTsKKyAgICAgICAgICAg
ICAgICBsZXQgZnJhbWVBdHRyaWJ1dGVzID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKGZy
YW1lLmF0dHJpYnV0ZXMsIGF0dHJpYnV0ZUZpbHRlcikubWFwKGF0dHJpYnV0ZU1hcCk7CisgICAg
ICAgICAgICAgICAgbGV0IHRlc3REZXNjcmlwdGlvbiA9IGBpZnJhbWUgd2l0aCAkeyBmcmFtZUF0
dHJpYnV0ZXMuam9pbignLCAnKSB9IHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3Jl
ZW5FbmFibGVkID09PSAkeyBleHBlY3RlZE1lc3NhZ2UgfWA7CisgICAgICAgICAgICAgICAgaWYg
KFN0cmluZyhtZXNzYWdlRXZlbnQuZGF0YSkgPT09IGV4cGVjdGVkTWVzc2FnZSkKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdFBhc3NlZChgJHt0ZXN0RGVzY3JpcHRpb259LmApOworICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChgJHt0ZXN0RGVzY3Jp
cHRpb259LCB3YXMgJHsgbWVzc2FnZUV2ZW50LmRhdGEgfWApOworICAgICAgICAgICAgfQorICAg
ICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoYFNob3VsZCBub3QgdGhy
b3cuIFRocmV3IGV4Y2VwdGlvbiAkeyBlIH0uYCkKKyAgICAgICAgfQorICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxpZnJhbWUgZGF0YS1l
bmFibGVkPSJmYWxzZSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VzL3BvaW50
ZXItbG9jay9pbm5lci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBkYXRhLWVu
YWJsZWQ9InRydWUiIHNyYz0iLi4vcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUu
aHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiIgZGF0YS1lbmFi
bGVkPSJ0cnVlIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMvcG9pbnRlci1s
b2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93PSJmdWxs
c2NyZWVuIiBkYXRhLWVuYWJsZWQ9InRydWUiIHNyYz0iLi4vcmVzb3VyY2VzL3BvaW50ZXItbG9j
ay9pbm5lci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNj
cmVlbiAqIiBkYXRhLWVuYWJsZWQ9InRydWUiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jl
c291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxp
ZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gKiIgZGF0YS1lbmFibGVkPSJ0cnVlIiBzcmM9Ii4uL3Jl
c291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxp
ZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUnIiBkYXRhLWVuYWJsZWQ9ImZhbHNlIiBzcmM9
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFt
ZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdub25lJyIg
ZGF0YS1lbmFibGVkPSJmYWxzZSIgc3JjPSIuLi9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVy
LWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdz
ZWxmJyIgZGF0YS1lbmFibGVkPSJmYWxzZSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVz
b3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlm
cmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAnc2VsZiciIGRhdGEtZW5hYmxlZD0idHJ1ZSIgc3JjPSIu
Li9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAg
ICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgZGF0YS1l
bmFibGVkPSJ0cnVlIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMvcG9pbnRl
ci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93PSJm
dWxsc2NyZWVuIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgZGF0YS1lbmFibGVkPSJmYWxzZSIgc3Jj
PSIuLi9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4K
KyAgICA8aWZyYW1lIGFsbG93ZnVsbHNjcmVlbiBkYXRhLWVuYWJsZWQ9InRydWUiICBzcmM9Imh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5o
dG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93ZnVsbHNjcmVlbiBkYXRhLWVuYWJsZWQ9
InRydWUiIHNyYz0iLi4vcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUuaHRtbCI+
PC9pZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAnbm9uZSciIGFsbG93ZnVs
bHNjcmVlbiBkYXRhLWVuYWJsZWQ9ImZhbHNlIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9y
ZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8
aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdub25lJyIgYWxsb3dmdWxsc2NyZWVuIGRhdGEtZW5h
YmxlZD0iZmFsc2UiIHNyYz0iLi4vcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUu
aHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAnc2VsZiciIGFs
bG93ZnVsbHNjcmVlbiBkYXRhLWVuYWJsZWQ9ImZhbHNlIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4K
KyAgICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdzZWxmJyIgYWxsb3dmdWxsc2NyZWVuIGRh
dGEtZW5hYmxlZD0idHJ1ZSIgc3JjPSIuLi9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlm
cmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIHdlYmtpdGFsbG93ZnVsbHNjcmVlbiBk
YXRhLWVuYWJsZWQ9InRydWUiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlcy9w
b2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgd2Vi
a2l0YWxsb3dmdWxsc2NyZWVuIGRhdGEtZW5hYmxlZD0idHJ1ZSIgc3JjPSIuLi9yZXNvdXJjZXMv
cG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFs
bG93PSJmdWxsc2NyZWVuICdub25lJyIgd2Via2l0YWxsb3dmdWxsc2NyZWVuIGRhdGEtZW5hYmxl
ZD0iZmFsc2UiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlcy9wb2ludGVyLWxv
Y2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxz
Y3JlZW4gJ25vbmUnIiB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4gZGF0YS1lbmFibGVkPSJmYWxzZSIg
c3JjPSIuLi9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFt
ZT4KKyAgICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdzZWxmJyIgd2Via2l0YWxsb3dmdWxs
c2NyZWVuIGRhdGEtZW5hYmxlZD0iZmFsc2UiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jl
c291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxp
ZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gJ3NlbGYnIiB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4gZGF0
YS1lbmFibGVkPSJ0cnVlIiBzcmM9Ii4uL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZy
YW1lLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388863</attachid>
            <date>2020-01-27 08:27:52 -0800</date>
            <delta_ts>2020-01-27 12:54:59 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-206806-20200127082718.patch</filename>
            <type>text/plain</type>
            <size>29741</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjViYmI3MTFjMDc2MGYx
NTZiMDZiYmYwM2QxMTA2MjNmNDQ0NjQwMS4uMTkwYzI2NThiNjcxODRlZTU3MzAwYzJlNDhlMGE3
ZDUzYTcxYWYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTAxLTI1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgJ2FsbG93PSJm
dWxsc2NyZWVuIicgZmVhdHVyZSBwb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNjgwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU2NDA0
NDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBUZXN0
OiBodHRwL3Rlc3RzL2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1mZWF0dXJlLXBvbGljeS5odG1sCisK
KyAgICAgICAgVGhlIHVucHJlZml4ZWQgdmVyc2lvbiBvZiB0aGUgRnVsbHNjcmVlbiBBUEkgaGFz
IGRlcHJlY2F0ZWQgdGhlICdhbGxvd2Z1bGxzY3JlZW4nIGlmcmFtZQorICAgICAgICBhdHRyaWJ1
dGUgaW4gZmF2b3Igb2YgdGhlICdhbGxvdz0iZnVsbHNjcmVlbiInIHN0eWxlIGF0dHJpYnV0ZSB1
c2VkIGJ5IEZlYXR1cmUgUG9saWN5LgorICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc3VjaCwgaW5j
bHVkaW5nIHRoZSBzcGVjaWZpZWQgaGFuZGxpbmcgZm9yIHRoZSBsZWdhY3kgJ2FsbG93ZnVsbHNj
cmVlbicKKyAgICAgICAgYXR0cmlidXRlLgorCisgICAgICAgIE5vdGU6IHRoaXMgcGF0Y2ggd2ls
bCAoaW50ZW50aW9uYWxseSkgY2hhbmdlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIDxpZnJhbWU+
cy4gUHJldmlvdXNseQorICAgICAgICBhbnkgPGlmcmFtZT4gd2l0aG91dCB0aGUgImFsbG93ZnVs
bHNjcmVlbiIgYXR0cmlidXRlIHdvdWxkIG5vdCBiZSBhbGxvd2VkIHRvIGVudGVyIGZ1bGxzY3Jl
ZW4KKyAgICAgICAgbW9kZS4gQWZ0ZXIgdGhpcyBwYXRjaCwgPGlmcmFtZXM+IHdpdGhvdXQgdGhl
IGxlZ2FjeSBhdHRyaWJ1dGUgb3IgYW4gZXhwbGljaXQgZnVsbHNjcmVlbgorICAgICAgICBGZWF0
dXJlIFBvbGljeSB3aWxsIGJlIGFsbG93ZWQgdG8gZW50ZXIgZnVsbHNjcmVlbiBzbyBsb25nIGFz
IHRoZWlyIG9yaWdpbiBpcyB0aGUgc2FtZSBhcworICAgICAgICB0aGUgdG9wIGRvY3VtZW50IChh
bmQgdGhhdCBhbGwgcGFyZW50IGlmcmFtZXMgYXJlIGFsc28gYWxsb3dlZCB0byBlbnRlciBmdWxs
c2NyZWVuKS4KKworICAgICAgICAqIGRvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxzY3JlZW5NYW5hZ2VyOjppc0Z1bGxzY3JlZW5FbmFi
bGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmlzQXR0cmlidXRlT25BbGxPd25lcnMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5J
c0FsbG93ZWRGb3JFbGVtZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRnVsbHNj
cmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBodG1sL0ZlYXR1cmVQb2xpY3kuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMp
OgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZVBvbGljeTo6cGFyc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RmVhdHVyZVBvbGljeTo6YWxsb3dzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0ZlYXR1
cmVQb2xpY3kuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJRnJhbWVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSUZyYW1lRWxlbWVudDo6ZmVhdHVyZVBvbGljeSBjb25zdCk6CisgICAg
ICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBS
ZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OmlzU3luY1hIUkFsbG93
ZWRCeUZlYXR1cmVQb2xpY3kpOiBEZWxldGVkLgorCiAyMDIwLTAxLTIzICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtFTUVdIEtleSByZW5ld2FsIGZhaWxzIHdo
ZW4gdXNpbmcgQVZDb250ZW50S2V5UmVwb3J0R3JvdXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNj
cmVlbk1hbmFnZXIuY3BwCmluZGV4IGU5MDRjNDVlYTUzMDRjNTZiZjM3OTM0ZjhiYjE3MjJkZjRj
OGRkNTUuLjk2ZmI5YjEwZmQ2ZmYxNjhjMmM4MTRmYjY4MzliNTI1MjQxMDlhYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtMzIsNyArMzIsNyBAQAogI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgotI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxJRnJhbWVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCkBAIC00NCwxNyArNDQs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAK
LXN0YXRpYyBib29sIGlzQXR0cmlidXRlT25BbGxPd25lcnMoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlLCBjb25zdCBRdWFsaWZpZWROYW1lJiBwcmVmaXhlZEF0dHJpYnV0ZSwgY29uc3Qg
SFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lcikKLXsKLSAgICBpZiAoIW93bmVyKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICBkbyB7Ci0gICAgICAgIGlmICghKG93bmVyLT5oYXNBdHRyaWJ1
dGUoYXR0cmlidXRlKSB8fCBvd25lci0+aGFzQXR0cmlidXRlKHByZWZpeGVkQXR0cmlidXRlKSkp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSB3aGlsZSAoKG93bmVyID0gb3duZXIt
PmRvY3VtZW50KCkub3duZXJFbGVtZW50KCkpKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogRnVs
bHNjcmVlbk1hbmFnZXI6OkZ1bGxzY3JlZW5NYW5hZ2VyKERvY3VtZW50JiBkb2N1bWVudCkKICAg
ICA6IG1fZG9jdW1lbnQgeyBkb2N1bWVudCB9CiB7CkBAIC02MiwxMSArNTEsNiBAQCBGdWxsc2Ny
ZWVuTWFuYWdlcjo6RnVsbHNjcmVlbk1hbmFnZXIoRG9jdW1lbnQmIGRvY3VtZW50KQogCiBGdWxs
c2NyZWVuTWFuYWdlcjo6fkZ1bGxzY3JlZW5NYW5hZ2VyKCkgPSBkZWZhdWx0OwogCi1ib29sIEZ1
bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuSXNBbGxvd2VkRm9yRWxlbWVudChFbGVtZW50JiBl
bGVtZW50KSBjb25zdAotewotICAgIHJldHVybiBpc0F0dHJpYnV0ZU9uQWxsT3duZXJzKGFsbG93
ZnVsbHNjcmVlbkF0dHIsIHdlYmtpdGFsbG93ZnVsbHNjcmVlbkF0dHIsIGVsZW1lbnQuZG9jdW1l
bnQoKS5vd25lckVsZW1lbnQoKSk7Ci19Ci0KIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVl
c3RGdWxsc2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGdWxsc2NyZWVuQ2hlY2tU
eXBlIGNoZWNrVHlwZSkKIHsKICAgICBpZiAoIWVsZW1lbnQpCkBAIC0xNDIsNyArMTI2LDcgQEAg
dm9pZCBGdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdEZ1bGxzY3JlZW5Gb3JFbGVtZW50KEVsZW1l
bnQqIGVsZW1lbnQsIEZ1bGxzY3JlZW4KIAogICAgICAgICAvLyBUaGUgY29udGV4dCBvYmplY3Qn
cyBub2RlIGRvY3VtZW50LCBvciBhbiBhbmNlc3RvciBicm93c2luZyBjb250ZXh0J3MgZG9jdW1l
bnQgZG9lcyBub3QgaGF2ZQogICAgICAgICAvLyB0aGUgZnVsbHNjcmVlbiBlbmFibGVkIGZsYWcg
c2V0LgotICAgICAgICBpZiAoY2hlY2tUeXBlID09IEVuZm9yY2VJRnJhbWVBbGxvd0Z1bGxzY3Jl
ZW5SZXF1aXJlbWVudCAmJiAhZnVsbHNjcmVlbklzQWxsb3dlZEZvckVsZW1lbnQoKmVsZW1lbnQp
KSB7CisgICAgICAgIGlmIChjaGVja1R5cGUgPT0gRW5mb3JjZUlGcmFtZUFsbG93RnVsbHNjcmVl
blJlcXVpcmVtZW50ICYmICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93
bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpGdWxsc2NyZWVuLCBkb2N1bWVudCgpKSkgewogICAg
ICAgICAgICAgZmFpbGVkUHJlZmxpZ2h0cyhXVEZNb3ZlKGVsZW1lbnQpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpAQCAtMzQ1LDcgKzMyOSw3IEBAIGJvb2wgRnVsbHNjcmVlbk1h
bmFnZXI6OmlzRnVsbHNjcmVlbkVuYWJsZWQoKSBjb25zdAogICAgIC8vIGJyb3dzaW5nIGNvbnRl
eHQncyBkb2N1bWVudHMgaGF2ZSB0aGVpciBmdWxsc2NyZWVuIGVuYWJsZWQgZmxhZyBzZXQsIG9y
IGZhbHNlIG90aGVyd2lzZS4KIAogICAgIC8vIFRvcC1sZXZlbCBicm93c2luZyBjb250ZXh0cyBh
cmUgaW1wbGllZCB0byBoYXZlIHRoZWlyIGFsbG93RnVsbHNjcmVlbiBhdHRyaWJ1dGUgc2V0Lgot
ICAgIHJldHVybiBpc0F0dHJpYnV0ZU9uQWxsT3duZXJzKGFsbG93ZnVsbHNjcmVlbkF0dHIsIHdl
YmtpdGFsbG93ZnVsbHNjcmVlbkF0dHIsIGRvY3VtZW50KCkub3duZXJFbGVtZW50KCkpOworICAg
IHJldHVybiBpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0
dXJlUG9saWN5OjpUeXBlOjpGdWxsc2NyZWVuLCBkb2N1bWVudCgpKTsKIH0KIAogc3RhdGljIHZv
aWQgdW53cmFwRnVsbHNjcmVlblJlbmRlcmVyKFJlbmRlckZ1bGxTY3JlZW4qIGZ1bGxzY3JlZW5S
ZW5kZXJlciwgRWxlbWVudCogZnVsbHNjcmVlbkVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxs
c2NyZWVuTWFuYWdlci5oCmluZGV4IGJmZDIxN2ZkMTE5NWEwYzlmMTMxMDdlYmRmN2YzYjlhMDA3
M2RkMTAuLjBjNWIyZWU3YTk5OTE3YzI2N2QxMjMxMmI4ZGY3ZTk2ZDI0NzdhZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC04Myw3ICs4Myw2IEBAIHB1YmxpYzoK
ICAgICBSZW5kZXJGdWxsU2NyZWVuKiBmdWxsc2NyZWVuUmVuZGVyZXIoKSBjb25zdDsKIAogICAg
IHZvaWQgZGlzcGF0Y2hGdWxsc2NyZWVuQ2hhbmdlRXZlbnRzKCk7Ci0gICAgYm9vbCBmdWxsc2Ny
ZWVuSXNBbGxvd2VkRm9yRWxlbWVudChFbGVtZW50JikgY29uc3Q7CiAgICAgdm9pZCBmdWxsc2Ny
ZWVuRWxlbWVudFJlbW92ZWQoKTsKIAogICAgIHZvaWQgYWRqdXN0RnVsbHNjcmVlbkVsZW1lbnRP
bk5vZGVSZW1vdmFsKE5vZGUmLCBEb2N1bWVudDo6Tm9kZVJlbW92YWwgPSBEb2N1bWVudDo6Tm9k
ZVJlbW92YWw6Ok5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJl
UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGljeS5jcHAKaW5kZXgg
ZTQzNDJhZWVhNjBhM2FhZTI2YWMxM2E5NWQ2ZDZjZDUzYWFiNTIwOC4uMTkyNDY1YTcxY2Q2ODZj
MmJjNzlhYzdmZDdmOWRmZTI0OWNiYjc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GZWF0dXJlUG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZlYXR1cmVQb2xp
Y3kuY3BwCkBAIC0yNywxMSArMjcsMzYgQEAKICNpbmNsdWRlICJGZWF0dXJlUG9saWN5LmgiCiAK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKKworYm9vbCBpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1
bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlIHR5cGUsIGNvbnN0IERvY3VtZW50
JiBkb2N1bWVudCkKK3sKKyAgICBhdXRvJiB0b3BEb2N1bWVudCA9IGRvY3VtZW50LnRvcERvY3Vt
ZW50KCk7CisgICAgYXV0byBhbmNlc3RvckRvY3VtZW50ID0gJmRvY3VtZW50OworICAgIHdoaWxl
IChhbmNlc3RvckRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudCkgeworICAgICAgICBpZiAoIWFuY2Vz
dG9yRG9jdW1lbnQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgYXV0byBv
d25lckVsZW1lbnQgPSBhbmNlc3RvckRvY3VtZW50LT5vd25lckVsZW1lbnQoKTsKKyAgICAgICAg
aWYgKGlzPEhUTUxJRnJhbWVFbGVtZW50Pihvd25lckVsZW1lbnQpKSB7CisgICAgICAgICAgICBh
dXRvIGZlYXR1cmVQb2xpY3kgPSBkb3duY2FzdDxIVE1MSUZyYW1lRWxlbWVudD4ob3duZXJFbGVt
ZW50KS0+ZmVhdHVyZVBvbGljeSgpOworICAgICAgICAgICAgaWYgKCFmZWF0dXJlUG9saWN5LmFs
bG93cyh0eXBlLCBhbmNlc3RvckRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgYW5jZXN0
b3JEb2N1bWVudCA9IGFuY2VzdG9yRG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCk7CisgICAgfQor
CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBib29sIGlzQWxsb3dlZEJ5RmVhdHVyZVBv
bGljeShjb25zdCBGZWF0dXJlUG9saWN5OjpBbGxvd1J1bGUmIHJ1bGUsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgb3JpZ2luKQogewogICAgIHN3aXRjaCAocnVsZS50eXBlKSB7CkBAIC05NCwx
MyArMTE5LDE0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVMaXN0KERvY3VtZW50JiBkb2N1
bWVudCwgRmVhdHVyZVBvbGljeTo6QWxsb3dSdWxlJiBydWxlCiAgICAgfQogfQogCi1GZWF0dXJl
UG9saWN5IEZlYXR1cmVQb2xpY3k6OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgU3RyaW5nVmll
dyBhbGxvd0F0dHJpYnV0ZVZhbHVlKQorRmVhdHVyZVBvbGljeSBGZWF0dXJlUG9saWN5OjpwYXJz
ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEhUTUxJRnJhbWVFbGVtZW50JiBpZnJhbWUsIFN0
cmluZ1ZpZXcgYWxsb3dBdHRyaWJ1dGVWYWx1ZSkKIHsKICAgICBGZWF0dXJlUG9saWN5IHBvbGlj
eTsKICAgICBib29sIGlzQ2FtZXJhSW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlzTWlj
cm9waG9uZUluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgYm9vbCBpc0Rpc3BsYXlDYXB0dXJlSW5p
dGlhbGl6ZWQgPSBmYWxzZTsKICAgICBib29sIGlzU3luY1hIUkluaXRpYWxpemVkID0gZmFsc2U7
CisgICAgYm9vbCBpc0Z1bGxzY3JlZW5Jbml0aWFsaXplZCA9IGZhbHNlOwogICAgIGZvciAoYXV0
byBhbGxvd0l0ZW0gOiBhbGxvd0F0dHJpYnV0ZVZhbHVlLnNwbGl0KCc7JykpIHsKICAgICAgICAg
YXV0byBpdGVtID0gYWxsb3dJdGVtLnN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nTWF0Y2hlZENoYXJh
Y3RlcnMoaXNIVE1MU3BhY2U8VUNoYXI+KTsKICAgICAgICAgaWYgKGl0ZW0uc3RhcnRzV2l0aCgi
Y2FtZXJhIikpIHsKQEAgLTEyMyw5ICsxNDksMTQgQEAgRmVhdHVyZVBvbGljeSBGZWF0dXJlUG9s
aWN5OjpwYXJzZShEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgYWxsb3dBdHRyaWJ1dGUK
ICAgICAgICAgICAgIHVwZGF0ZUxpc3QoZG9jdW1lbnQsIHBvbGljeS5tX3N5bmNYSFJSdWxlLCBp
dGVtLnN1YnN0cmluZyg4KSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQorICAg
ICAgICBpZiAoaXRlbS5zdGFydHNXaXRoKCJmdWxsc2NyZWVuIikpIHsKKyAgICAgICAgICAgIGlz
RnVsbHNjcmVlbkluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHVwZGF0ZUxpc3QoZG9j
dW1lbnQsIHBvbGljeS5tX2Z1bGxzY3JlZW5SdWxlLCBpdGVtLnN1YnN0cmluZygxMSkpOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBCeSBkZWZhdWx0
LCBjYW1lcmEsIG1pY3JvcGhvbmUgYW5kIGRpc3BsYXktY2FwdHVyZSBwb2xpY3kgaXMgJ3NlbGYn
CisgICAgLy8gQnkgZGVmYXVsdCwgY2FtZXJhLCBtaWNyb3Bob25lLCBkaXNwbGF5LWNhcHR1cmUs
IGFuZCBmdWxsc2NyZWVuIHBvbGljeSBpcyAnc2VsZicKICAgICBpZiAoIWlzQ2FtZXJhSW5pdGlh
bGl6ZWQpCiAgICAgICAgIHBvbGljeS5tX2NhbWVyYVJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3Vt
ZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKICAgICBpZiAoIWlzTWljcm9waG9uZUluaXRp
YWxpemVkKQpAQCAtMTMzLDYgKzE2NCwyMSBAQCBGZWF0dXJlUG9saWN5IEZlYXR1cmVQb2xpY3k6
OnBhcnNlKERvY3VtZW50JiBkb2N1bWVudCwgU3RyaW5nVmlldyBhbGxvd0F0dHJpYnV0ZQogICAg
IGlmICghaXNEaXNwbGF5Q2FwdHVyZUluaXRpYWxpemVkKQogICAgICAgICBwb2xpY3kubV9kaXNw
bGF5Q2FwdHVyZVJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCku
ZGF0YSgpKTsKIAorICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMtZmVhdHVy
ZS1wb2xpY3kvI3Byb2Nlc3MtZmVhdHVyZS1wb2xpY3ktYXR0cmlidXRlcworICAgIC8vIDkuNSBQ
cm9jZXNzIEZlYXR1cmUgUG9saWN5IEF0dHJpYnV0ZXMKKyAgICAvLyAzLjEgSWYgZWxlbWVudOKA
mXMgYWxsb3dmdWxsc2NyZWVuIGF0dHJpYnV0ZSBpcyBzcGVjaWZpZWQsIGFuZCBjb250YWluZXIg
cG9saWN5IGRvZXMKKyAgICAvLyAgICAgbm90IGNvbnRhaW4gYW4gYWxsb3dsaXN0IGZvciBmdWxs
c2NyZWVuLAorICAgIGlmICghaXNGdWxsc2NyZWVuSW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgaWYg
KGlmcmFtZS5oYXNBdHRyaWJ1dGUoYWxsb3dmdWxsc2NyZWVuQXR0cikgfHwgaWZyYW1lLmhhc0F0
dHJpYnV0ZSh3ZWJraXRhbGxvd2Z1bGxzY3JlZW5BdHRyKSkgeworICAgICAgICAgICAgLy8gMy4x
LjEgQ29uc3RydWN0IGEgbmV3IGRlY2xhcmF0aW9uIGZvciBmdWxsc2NyZWVuLCB3aG9zZSBhbGxv
d2xpc3QgaXMgdGhlIHNwZWNpYWwgdmFsdWUgKi4KKyAgICAgICAgICAgIHBvbGljeS5tX2Z1bGxz
Y3JlZW5SdWxlLnR5cGUgPSBGZWF0dXJlUG9saWN5OjpBbGxvd1J1bGU6OlR5cGU6OkFsbDsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGh0dHBzOi8vZnVsbHNjcmVlbi5zcGVjLndo
YXR3Zy5vcmcvI2ZlYXR1cmUtcG9saWN5LWludGVncmF0aW9uCisgICAgICAgICAgICAvLyBUaGUg
ZGVmYXVsdCBhbGxvd2xpc3QgaXMgJ3NlbGYnLgorICAgICAgICAgICAgcG9saWN5Lm1fZnVsbHNj
cmVlblJ1bGUuYWxsb3dlZExpc3QuYWRkKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgp
KTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmICghaXNTeW5jWEhSSW5pdGlhbGl6ZWQpCiAg
ICAgICAgIHBvbGljeS5tX3N5bmNYSFJSdWxlLnR5cGUgPSBBbGxvd1J1bGU6OlR5cGU6OkFsbDsK
IApAQCAtMTUwLDYgKzE5Niw4IEBAIGJvb2wgRmVhdHVyZVBvbGljeTo6YWxsb3dzKFR5cGUgdHlw
ZSwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4pIGNvbnN0CiAgICAgICAgIHJldHVy
biBpc0FsbG93ZWRCeUZlYXR1cmVQb2xpY3kobV9kaXNwbGF5Q2FwdHVyZVJ1bGUsIG9yaWdpbik7
CiAgICAgY2FzZSBUeXBlOjpTeW5jWEhSOgogICAgICAgICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0
dXJlUG9saWN5KG1fc3luY1hIUlJ1bGUsIG9yaWdpbik7CisgICAgY2FzZSBUeXBlOjpGdWxsc2Ny
ZWVuOgorICAgICAgICByZXR1cm4gaXNBbGxvd2VkQnlGZWF0dXJlUG9saWN5KG1fZnVsbHNjcmVl
blJ1bGUsIG9yaWdpbik7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmVhdHVyZVBvbGlj
eS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmgKaW5kZXggZmM3MWRmZTJh
NWQ3M2RmNTExNmRkYTZhNmU3NDE5YzYwOWJmNTFkNS4uNjU0ZmI4MzhmMGI0MDE1ZWI0ZDM2NjQ4
YTQxNTE4NzFiYWRmNDA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJl
UG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GZWF0dXJlUG9saWN5LmgKQEAgLTMy
LDEyICszMiwxMyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKK2Ns
YXNzIEhUTUxJRnJhbWVFbGVtZW50OwogCiBjbGFzcyBGZWF0dXJlUG9saWN5IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgRmVhdHVyZVBvbGljeSBwYXJzZShEb2N1bWVudCYsIFN0cmluZ1ZpZXcpOwor
ICAgIHN0YXRpYyBGZWF0dXJlUG9saWN5IHBhcnNlKERvY3VtZW50JiwgY29uc3QgSFRNTElGcmFt
ZUVsZW1lbnQmLCBTdHJpbmdWaWV3KTsKIAotICAgIGVudW0gY2xhc3MgVHlwZSB7IENhbWVyYSwg
TWljcm9waG9uZSwgRGlzcGxheUNhcHR1cmUsIFN5bmNYSFIgfTsKKyAgICBlbnVtIGNsYXNzIFR5
cGUgeyBDYW1lcmEsIE1pY3JvcGhvbmUsIERpc3BsYXlDYXB0dXJlLCBTeW5jWEhSLCBGdWxsc2Ny
ZWVuIH07CiAgICAgYm9vbCBhbGxvd3MoVHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJikg
Y29uc3Q7CiAKICAgICBzdHJ1Y3QgQWxsb3dSdWxlIHsKQEAgLTUxLDYgKzUyLDkgQEAgcHJpdmF0
ZToKICAgICBBbGxvd1J1bGUgbV9taWNyb3Bob25lUnVsZTsKICAgICBBbGxvd1J1bGUgbV9kaXNw
bGF5Q2FwdHVyZVJ1bGU7CiAgICAgQWxsb3dSdWxlIG1fc3luY1hIUlJ1bGU7CisgICAgQWxsb3dS
dWxlIG1fZnVsbHNjcmVlblJ1bGU7CiB9OwogCitleHRlcm4gYm9vbCBpc0ZlYXR1cmVQb2xpY3lB
bGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlLCBjb25zdCBE
b2N1bWVudCYpOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuY3BwCmluZGV4IGFlM2M4YTkxNDlkNThjYjQ5MWRkODJkZDFkMzI0
NjgyZWU5NGE4NGMuLjNlOWZjOGE5YWQ4YTBmNjYwMjRhODBkOTg2NWJlMzFjZjdhYjliNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCkBAIC0xMDIsNyArMTAy
LDcgQEAgdm9pZCBIVE1MSUZyYW1lRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICAgICAgc2V0U2FuZGJveEZsYWdzKHZh
bHVlLmlzTnVsbCgpID8gU2FuZGJveE5vbmUgOiBTZWN1cml0eUNvbnRleHQ6OnBhcnNlU2FuZGJv
eFBvbGljeSh2YWx1ZSwgaW52YWxpZFRva2VucykpOwogICAgICAgICBpZiAoIWludmFsaWRUb2tl
bnMuaXNOdWxsKCkpCiAgICAgICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiRXJyb3Igd2hpbGUgcGFy
c2luZyB0aGUgJ3NhbmRib3gnIGF0dHJpYnV0ZTogIiArIGludmFsaWRUb2tlbnMpOwotICAgIH0g
ZWxzZSBpZiAobmFtZSA9PSBhbGxvd0F0dHIpCisgICAgfSBlbHNlIGlmIChuYW1lID09IGFsbG93
QXR0ciB8fCBuYW1lID09IGFsbG93ZnVsbHNjcmVlbkF0dHIgfHwgbmFtZSA9PSB3ZWJraXRhbGxv
d2Z1bGxzY3JlZW5BdHRyKQogICAgICAgICBtX2ZlYXR1cmVQb2xpY3kgPSBXVEY6Om51bGxvcHQ7
CiAgICAgZWxzZQogICAgICAgICBIVE1MRnJhbWVFbGVtZW50QmFzZTo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOwpAQCAtMTM4LDcgKzEzOCw3IEBAIFJlZmVycmVyUG9saWN5IEhUTUxJRnJh
bWVFbGVtZW50OjpyZWZlcnJlclBvbGljeSgpIGNvbnN0CiBjb25zdCBGZWF0dXJlUG9saWN5JiBI
VE1MSUZyYW1lRWxlbWVudDo6ZmVhdHVyZVBvbGljeSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2Zl
YXR1cmVQb2xpY3kpCi0gICAgICAgIG1fZmVhdHVyZVBvbGljeSA9IEZlYXR1cmVQb2xpY3k6OnBh
cnNlKGRvY3VtZW50KCksIGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYWxsb3dBdHRy
KSk7CisgICAgICAgIG1fZmVhdHVyZVBvbGljeSA9IEZlYXR1cmVQb2xpY3k6OnBhcnNlKGRvY3Vt
ZW50KCksICp0aGlzLCBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFsbG93QXR0cikp
OwogICAgIHJldHVybiAqbV9mZWF0dXJlUG9saWN5OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcAppbmRleCAxMzUzZTVkZjZmOWNiODVjMTI5ZmI3NTQ4M2FjYjYyMjNjMzU2
ZWQ5Li4zOWQ4Y2E1OTI1OGQ2MTYyZDRmOGI5OTVjZDNjOTkwOWU5NWZlZDg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTU3OCwyMyArNTc4LDYgQEAgRXhjZXB0aW9u
T3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6OnNlbmRCeXRlc0RhdGEoY29uc3Qgdm9pZCogZGF0YSwg
c2l6ZV90IGxlbmd0aCkKICAgICByZXR1cm4gY3JlYXRlUmVxdWVzdCgpOwogfQogCi1zdGF0aWMg
aW5saW5lIGJvb2wgaXNTeW5jWEhSQWxsb3dlZEJ5RmVhdHVyZVBvbGljeShEb2N1bWVudCYgZG9j
dW1lbnQpCi17Ci0gICAgYXV0byYgdG9wRG9jdW1lbnQgPSBkb2N1bWVudC50b3BEb2N1bWVudCgp
OwotICAgIGlmICgmZG9jdW1lbnQgIT0gJnRvcERvY3VtZW50KSB7Ci0gICAgICAgIGZvciAoYXV0
byogYW5jZXN0b3JEb2N1bWVudCA9ICZkb2N1bWVudDsgYW5jZXN0b3JEb2N1bWVudCAhPSAmdG9w
RG9jdW1lbnQ7IGFuY2VzdG9yRG9jdW1lbnQgPSBhbmNlc3RvckRvY3VtZW50LT5wYXJlbnREb2N1
bWVudCgpKSB7Ci0gICAgICAgICAgICBhdXRvKiBlbGVtZW50ID0gYW5jZXN0b3JEb2N1bWVudC0+
b3duZXJFbGVtZW50KCk7Ci0gICAgICAgICAgICBBU1NFUlQoZWxlbWVudCk7Ci0gICAgICAgICAg
ICBpZiAoZWxlbWVudCAmJiBpczxIVE1MSUZyYW1lRWxlbWVudD4oKmVsZW1lbnQpKSB7Ci0gICAg
ICAgICAgICAgICAgYXV0byYgZmVhdHVyZVBvbGljeSA9IGRvd25jYXN0PEhUTUxJRnJhbWVFbGVt
ZW50PigqZWxlbWVudCkuZmVhdHVyZVBvbGljeSgpOwotICAgICAgICAgICAgICAgIGlmICghZmVh
dHVyZVBvbGljeS5hbGxvd3MoRmVhdHVyZVBvbGljeTo6VHlwZTo6U3luY1hIUiwgYW5jZXN0b3JE
b2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpKQotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1
ZXN0KCkKIHsKICAgICAvLyBPbmx5IEdFVCByZXF1ZXN0IGlzIHN1cHBvcnRlZCBmb3IgYmxvYiBV
UkwuCkBAIC02NjgsNyArNjUxLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6
OmNyZWF0ZVJlcXVlc3QoKQogICAgICAgICBpZiAobV9sb2FkZXIpCiAgICAgICAgICAgICBzZXRQ
ZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQoKSAmJiAhaXNTeW5jWEhSQWxsb3dlZEJ5RmVh
dHVyZVBvbGljeSgqZG9jdW1lbnQoKSkpCisgICAgICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPmlzRG9jdW1lbnQoKSAmJiAhaXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRB
bmRBbGxPd25lcnMoRmVhdHVyZVBvbGljeTo6VHlwZTo6U3luY1hIUiwgKmRvY3VtZW50KCkpKQog
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5ldHdvcmtFcnJvciB9OwogCiAgICAgICAg
IHJlcXVlc3Quc2V0RG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5kb21haW5Gb3JDYWNoZVBhcnRpdGlvbigpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMTQ4MGU3YTY2YjI2ZDRm
YTFmM2Q5Y2Y4MDc0NjJlNWE1ZDJhZGM4Li5kZjkyYTVjNTVlNzYyNGE1ZTEzMzI1YWU2ZjE4OGM3
NjRjODQwZjY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDEtMjUgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCAnYWxsb3c9ImZ1bGxzY3Jl
ZW4iJyBmZWF0dXJlIHBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA2ODA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTY0MDQ0OD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogZnVsbHNjcmVl
bi9mdWxsLXNjcmVlbi1lbmFibGVkLXByZWZpeGVkLmh0bWw6CisgICAgICAgICogZnVsbHNjcmVl
bi9mdWxsLXNjcmVlbi1lbmFibGVkLmh0bWw6CisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNj
cmVlbi1mcmFtZXNldC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZnVsbHNjcmVl
bi9mdWxsLXNjcmVlbi1mcmFtZXNldC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZ1bGxzY3Jl
ZW4vZnVsbC1zY3JlZW4taWZyYW1lLW5vdC1hbGxvd2VkLmh0bWw6CisgICAgICAgICogZnVsbHNj
cmVlbi9mdWxsLXNjcmVlbi1yZXN0cmljdGlvbnMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvZnVsbHNjcmVlbi9mdWxsc2NyZWVuLWZlYXR1cmUtcG9s
aWN5Lmh0bWw6IEFkZGVkLgorCiAyMDIwLTAxLTE3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIFtNU0VdIERlY29kZSBnbGl0Y2hlcyB3aGVuIHdhdGNoaW5nIHZp
ZGVvcyBvbiBDTk4uY29tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwt
c2NyZWVuLWVuYWJsZWQtcHJlZml4ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVs
bC1zY3JlZW4tZW5hYmxlZC1wcmVmaXhlZC5odG1sCmluZGV4IDZkMTBiZTUyNTUxZjRmOGVmYTZi
OTI0ODkxNGYxNjg0ZDY0Yzk5MmIuLjYxOGFhZGZhNWRkMjM4NjVlNjY1NmFhOTc5MDI1NDU0YWUy
NWIzODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZW5h
YmxlZC1wcmVmaXhlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3Jl
ZW4tZW5hYmxlZC1wcmVmaXhlZC5odG1sCkBAIC02LDYgKzYsNyBAQAogICAgIHZhciBpZnJhbWUg
PSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnaWZyYW1lJykpOwogICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoJ3dlYmtpdGFsbG93ZnVs
bHNjcmVlbicsICd0cnVlJyk7CiAgICAgdmFyIGlmcmFtZTIgPSBkb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJykpOworICAg
IGlmcmFtZTIuc2V0QXR0cmlidXRlKCdhbGxvdycsICJmdWxsc2NyZWVuICdub25lJyIpOwogICAg
IHRlc3RFeHBlY3RlZCgnaWZyYW1lLmNvbnRlbnREb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5h
YmxlZCcsIHRydWUpOwogICAgIHRlc3RFeHBlY3RlZCgnaWZyYW1lMi5jb250ZW50RG9jdW1lbnQu
d2Via2l0RnVsbHNjcmVlbkVuYWJsZWQnLCBmYWxzZSk7CiAgICAgZW5kVGVzdCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1lbmFibGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWVuYWJsZWQuaHRtbAppbmRleCA2NjE3
YzRkYWUzMjQ3NWFjNjU4MDZmNjEzYTU2OTkxZTljYTVhMDkzLi4yZDA2MDEwNDg5MzIxZTBjYWI3
M2MxMGFkOWE5ODFlM2E2NjlmMThmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVu
L2Z1bGwtc2NyZWVuLWVuYWJsZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1
bGwtc2NyZWVuLWVuYWJsZWQuaHRtbApAQCAtNiw2ICs2LDcgQEAKICAgICB2YXIgaWZyYW1lID0g
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2lmcmFtZScpKTsKICAgICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhbGxvd2Z1bGxzY3JlZW4n
LCAndHJ1ZScpOwogICAgIHZhciBpZnJhbWUyID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpKTsKKyAgICBpZnJhbWUy
LnNldEF0dHJpYnV0ZSgnYWxsb3cnLCAiZnVsbHNjcmVlbiAnbm9uZSciKTsKICAgICB0ZXN0RXhw
ZWN0ZWQoJ2lmcmFtZS5jb250ZW50RG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQnLCB0
cnVlKTsKICAgICB0ZXN0RXhwZWN0ZWQoJ2lmcmFtZTIuY29udGVudERvY3VtZW50LndlYmtpdEZ1
bGxzY3JlZW5FbmFibGVkJywgZmFsc2UpOwogICAgIGVuZFRlc3QoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tZnJhbWVzZXQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1mcmFtZXNldC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5MDFiZDA1MzE3N2E0ZDhjN2MzYzY4MzY0
ODk3MzBjY2ZmZWQ4ZTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1mcmFtZXNldC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0KLQotLS0tLS0tLS0KLUZyYW1l
OiAnaGVhZGVyJwotLS0tLS0tLS0KLVRlc3QgZm9yIGJ1ZyA1ODYzODogRG8gbm90IGFsbG93IGZ1
bGxzY3JlZW4gZnJvbSB3aXRoaW4gYSA8ZnJhbWU+IGVsZW1lbnQsIGV2ZW4gd2l0aCB0aGUgd2Vi
a2l0YWxsb3dmdWxsc2NyZWVuIGF0dHJpYnV0ZSBzZXQuCi0KLVRvIHRlc3QgbWFudWFsbHksIGNs
aWNrIHRoZSAiR28gZnVsbCBzY3JlZW4iIGJ1dHRvbiAtIHRoZSBwYWdlIHNob3VsZCBub3QgZW50
ZXIgZnVsbCBzY3JlZW4gbW9kZS4KLQotU1VDQ0VFRCAtIGRpZCBub3QgZW50ZXIgZnVsbCBzY3Jl
ZW4hCi1FTkQgT0YgVEVTVAotCi0KLS0tLS0tLS0tCi1GcmFtZTogJ2ZyYW1lJwotLS0tLS0tLS0K
LUdvIGZ1bGwgc2NyZWVuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwt
c2NyZWVuLWZyYW1lc2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVu
LWZyYW1lc2V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwMGNlNGM2Y2Y2
ZjVjMmVmYTlkYWI3OWRlZTYzNTlmMTI4NjQ3MmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1m
cmFtZXNldC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotPHNjcmlwdCBzcmM9
ImZ1bGwtc2NyZWVuLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwotCi12YXIg
d2FpdGluZ0ZvciA9IDI7Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICgtLXdhaXRpbmdG
b3IpCi0gICAgICAgIHJldHVybjsKLSAgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZnJhbWUnKTsKLQotICAgIHdhaXRGb3JFdmVudChmcmFtZS5jb250ZW50RG9jdW1lbnQs
ICd3ZWJraXRmdWxsc2NyZWVuY2hhbmdlJywgZnVuY3Rpb24oKSB7IAotICAgICAgICAgICAgY29u
c29sZVdyaXRlKCJGQUlMIC0gZW50ZXJlZCBmdWxsIHNjcmVlbiEiKTsKLSAgICAgICAgICAgIGVu
ZFRlc3QoKTsgCi0gICAgICAgICAgICBpZiAodGVzdFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsgICAgIAotICAgIH0pOwotCi0gICAgcnVuV2l0aEtleURv
d24oZnVuY3Rpb24oKSB7Ci0KLSAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgCi0gICAg
ICAgICAgICBjb25zb2xlV3JpdGUoIlNVQ0NFRUQgLSBkaWQgbm90IGVudGVyIGZ1bGwgc2NyZWVu
ISIpOyAKLSAgICAgICAgICAgIGVuZFRlc3QoKTsKLSAgICAgICAgICAgIGlmICh0ZXN0UnVubmVy
KQotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOyAgICAgCi0gICAgICAg
IH0sIDUwKTsKLQotICAgICAgICBmcmFtZS5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
LndlYmtpdFJlcXVlc3RGdWxsU2NyZWVuKCk7Ci0gICAgfSk7Ci19Ci08L3NjcmlwdD4KLTxmcmFt
ZXNldCByb3dzPSIxNTAsKiI+Ci0gICAgPGZyYW1lIG5hbWU9ImhlYWRlciIgc3JjPSJyZXNvdXJj
ZXMvbm90LWFsbG93ZWQuaHRtbCIgd2Via2l0ZnVsbHNjcmVlbmFsbG93ZWQgb25sb2FkPSJydW5U
ZXN0KCkiPgotICAgIDxmcmFtZSBpZD0iZnJhbWUiIG5hbWU9ImZyYW1lIiBzcmM9InJlc291cmNl
cy9pbm5lci5odG1sIiBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08L2ZyYW1lc2V0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtbm90LWFsbG93ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLW5vdC1hbGxv
d2VkLmh0bWwKaW5kZXggYTg4MzNkZWRiZjc4ODk0ZGI4MmYzNjUwNDU5NTE4M2FiYmU2YzI3NS4u
YzJiNmY4YjVhNTMwYTdiOTQ1MjllNDBmNTMxMjY1MmJmOWEyZThiMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtbm90LWFsbG93ZWQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1ub3QtYWxsb3dl
ZC5odG1sCkBAIC0yMCw1ICsyMCw1IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgfSk7CiB9
CiA8L3NjcmlwdD4KLTxpZnJhbWUgaWQ9ImZyYW1lIiBzcmM9InJlc291cmNlcy9pbm5lci5odG1s
IiBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8aWZyYW1lIGlkPSJmcmFtZSIgc3JjPSJyZXNvdXJjZXMv
aW5uZXIuaHRtbCIgb25sb2FkPSJydW5UZXN0KCkiIGFsbG93PSJmdWxsc2NyZWVuICdub25lJyI+
CiA8L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3Jl
ZW4tcmVzdHJpY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVu
LXJlc3RyaWN0aW9ucy5odG1sCmluZGV4IDRhZDg0NDAzMGI3MjI2OTAwOTlhMTVkNjZhZjE5NDI0
NDUzZDJjMjUuLmJkY2NkMGZiNGFmMDgxZGM4NWRmMzhiODM0NGUzMmE2NjYwMmZjYzkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVzdHJpY3Rpb25zLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZXN0cmljdGlvbnMu
aHRtbApAQCAtMTgsNiArMTgsNyBAQAogICAgICAgICB2YXIgc3RlcDIgPSBmdW5jdGlvbigpIHsK
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgnIlRoZSBjb250ZXh0IG9iamVjdFwncyBub2RlIGRv
Y3VtZW50LCBvciBhbiBhbmNlc3RvciBicm93c2luZyBjb250ZXh0XCdzIGRvY3VtZW50IGRvZXMg
bm90IGhhdmUgdGhlIGZ1bGxzY3JlZW4gZW5hYmxlZCBmbGFnIHNldC4iJykKICAgICAgICAgICAg
IHZhciBpZnJhbWUgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJykpOworICAgICAgICAgICAgaWZyYW1lLnNldEF0dHJp
YnV0ZSgnYWxsb3cnLCAiZnVsbHNjcmVlbiAnbm9uZSciKTsKICAgICAgICAgICAgIHZhciBkaXYg
PSBpZnJhbWUuY29udGVudERvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChpZnJh
bWUuY29udGVudERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKIAogICAgICAgICAgICAg
d2FpdEZvckV2ZW50T25jZShpZnJhbWUuY29udGVudERvY3VtZW50LCAnd2Via2l0ZnVsbHNjcmVl
bmVycm9yJywgc3RlcDMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9mdWxs
c2NyZWVuL2Z1bGxzY3JlZW4tZmVhdHVyZS1wb2xpY3ktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9mdWxsc2NyZWVuL2Z1bGxzY3JlZW4tZmVhdHVyZS1wb2xpY3ktZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVmNmRkMWEzNzk0NTVhMzg1YTUwNDZkMGEwMmFlMjFmM2RmY2Yy
YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Z1bGxzY3JlZW4v
ZnVsbHNjcmVlbi1mZWF0dXJlLXBvbGljeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAor
UEFTUyBpZnJhbWUgd2l0aCBzcmM9Imh0dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50
LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSBmYWxzZS4KK1BBU1MgaWZyYW1lIHdpdGggc3Jj
PSIuLi9yZXNvdXJjLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5h
YmxlZCA9PT0gdHJ1ZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4iLCBzcmM9
Imh0dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFi
bGVkID09PSB0cnVlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiIsIHNyYz0i
Li4vcmVzb3VyYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJs
ZWQgPT09IHRydWUuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVuICoiLCBzcmM9
Imh0dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFi
bGVkID09PSB0cnVlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAqIiwgc3Jj
PSIuLi9yZXNvdXJjLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5h
YmxlZCA9PT0gdHJ1ZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUn
Iiwgc3JjPSJodHRwOi8vbG9jLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2Ny
ZWVuRW5hYmxlZCA9PT0gZmFsc2UuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93PSJmdWxsc2NyZWVu
ICdub25lJyIsIHNyYz0iLi4vcmVzb3VyYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0
RnVsbHNjcmVlbkVuYWJsZWQgPT09IGZhbHNlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVs
bHNjcmVlbiAnc2VsZiciLCBzcmM9Imh0dHA6Ly9sb2MuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50
LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSBmYWxzZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxs
b3c9ImZ1bGxzY3JlZW4gJ3NlbGYnIiwgc3JjPSIuLi9yZXNvdXJjLi4uIiBzaG91bGQgaGF2ZSBk
b2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gdHJ1ZS4KK1BBU1MgaWZyYW1lIHdp
dGggYWxsb3c9ImZ1bGxzY3JlZW4gaHR0cDovL2xvY2FsaG9zdDo4MDAwIiwgc3JjPSJodHRwOi8v
bG9jLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0g
dHJ1ZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3c9ImZ1bGxzY3JlZW4gaHR0cDovL2xvY2FsaG9z
dDo4MDAwIiwgc3JjPSIuLi9yZXNvdXJjLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRG
dWxsc2NyZWVuRW5hYmxlZCA9PT0gZmFsc2UuCitQQVNTIGlmcmFtZSB3aXRoIGFsbG93ZnVsbHNj
cmVlbiwgc3JjPSJodHRwOi8vbG9jLi4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxs
c2NyZWVuRW5hYmxlZCA9PT0gdHJ1ZS4KK1BBU1MgaWZyYW1lIHdpdGggYWxsb3dmdWxsc2NyZWVu
LCBzcmM9Ii4uL3Jlc291cmMuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3Jl
ZW5FbmFibGVkID09PSB0cnVlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAn
bm9uZSciLCBhbGxvd2Z1bGxzY3JlZW4sIHNyYz0iaHR0cDovL2xvYy4uLiIgc2hvdWxkIGhhdmUg
ZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IGZhbHNlLgorUEFTUyBpZnJhbWUg
d2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAnbm9uZSciLCBhbGxvd2Z1bGxzY3JlZW4sIHNyYz0iLi4v
cmVzb3VyYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQg
PT09IGZhbHNlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAnc2VsZiciLCBh
bGxvd2Z1bGxzY3JlZW4sIHNyYz0iaHR0cDovL2xvYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQu
d2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IGZhbHNlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxv
dz0iZnVsbHNjcmVlbiAnc2VsZiciLCBhbGxvd2Z1bGxzY3JlZW4sIHNyYz0iLi4vcmVzb3VyYy4u
LiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IHRydWUu
CitQQVNTIGlmcmFtZSB3aXRoIHdlYmtpdGFsbG93ZnVsbHNjcmVlbiwgc3JjPSJodHRwOi8vbG9j
Li4uIiBzaG91bGQgaGF2ZSBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCA9PT0gdHJ1
ZS4KK1BBU1MgaWZyYW1lIHdpdGggd2Via2l0YWxsb3dmdWxsc2NyZWVuLCBzcmM9Ii4uL3Jlc291
cmMuLi4iIHNob3VsZCBoYXZlIGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSB0
cnVlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAnbm9uZSciLCB3ZWJraXRh
bGxvd2Z1bGxzY3JlZW4sIHNyYz0iaHR0cDovL2xvYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQu
d2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IGZhbHNlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxv
dz0iZnVsbHNjcmVlbiAnbm9uZSciLCB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4sIHNyYz0iLi4vcmVz
b3VyYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09
IGZhbHNlLgorUEFTUyBpZnJhbWUgd2l0aCBhbGxvdz0iZnVsbHNjcmVlbiAnc2VsZiciLCB3ZWJr
aXRhbGxvd2Z1bGxzY3JlZW4sIHNyYz0iaHR0cDovL2xvYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1l
bnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQgPT09IGZhbHNlLgorUEFTUyBpZnJhbWUgd2l0aCBh
bGxvdz0iZnVsbHNjcmVlbiAnc2VsZiciLCB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4sIHNyYz0iLi4v
cmVzb3VyYy4uLiIgc2hvdWxkIGhhdmUgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVuYWJsZWQg
PT09IHRydWUuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZnVsbHNjcmVl
bi9mdWxsc2NyZWVuLWZlYXR1cmUtcG9saWN5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1mZWF0dXJlLXBvbGljeS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4
ZDgzZTY5MWFiYjIwOWVlNjk2OThhYmFkMTZjZGYzODZjNGY0MDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi1mZWF0dXJlLXBv
bGljeS5odG1sCkBAIC0wLDAgKzEsNzUgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8c3R5bGU+aWZyYW1lIHsgZGlzcGxheTogbm9uZTsgfTwvc3R5bGU+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdD4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHdhaXRGb3IoZWxlbWVudCwgdHlwZSkgeworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIodHlwZSwgZXZlbnQgPT4geworICAgICAgICAgICAgICAgIHJlc29sdmUoZXZlbnQpOwor
ICAgICAgICAgICAgfSwgeyBvbmNlOiB0cnVlIH0pOworICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKyAgICAg
ICAgdHJ5IHsKKyAgICAgICAgICAgIGxldCBhdHRyaWJ1dGVGaWx0ZXIgPSBhdHRyaWJ1dGUgPT4g
eyByZXR1cm4gYXR0cmlidXRlLm5hbWUgIT09ICdkYXRhLWVuYWJsZWQnOyB9OworICAgICAgICAg
ICAgbGV0IGF0dHJpYnV0ZU1hcCA9IGF0dHJpYnV0ZSA9PiB7CisgICAgICAgICAgICAgICAgaWYg
KGF0dHJpYnV0ZS52YWx1ZSA9PT0gJycpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBhdHRy
aWJ1dGUubmFtZTsKKyAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlLm5hbWUgPT09ICdzcmMn
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7YXR0cmlidXRlLm5hbWV9PSIke2F0dHJp
YnV0ZS52YWx1ZS5zdWJzdHJpbmcoMCwgMTApfS4uLiJgOworICAgICAgICAgICAgICAgIHJldHVy
biBgJHthdHRyaWJ1dGUubmFtZX09IiR7YXR0cmlidXRlLnZhbHVlfSJgOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBmb3IgKHZhciBmcmFtZSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCdpZnJhbWUnKSkgeworICAgICAgICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9z
dE1lc3NhZ2UoWyJldmFsIiwgJ3BhcmVudC5wb3N0TWVzc2FnZShkb2N1bWVudC53ZWJraXRGdWxs
c2NyZWVuRW5hYmxlZCwgIioiKSddLCAiKiIpOworICAgICAgICAgICAgICAgIGxldCBtZXNzYWdl
RXZlbnQgPSBhd2FpdCB3YWl0Rm9yKHdpbmRvdywgJ21lc3NhZ2UnKTsKKyAgICAgICAgICAgICAg
ICBsZXQgZXhwZWN0ZWRNZXNzYWdlID0gZnJhbWUuZ2V0QXR0cmlidXRlKCdkYXRhLWVuYWJsZWQn
KTsKKyAgICAgICAgICAgICAgICBsZXQgZnJhbWVBdHRyaWJ1dGVzID0gQXJyYXkucHJvdG90eXBl
LmZpbHRlci5jYWxsKGZyYW1lLmF0dHJpYnV0ZXMsIGF0dHJpYnV0ZUZpbHRlcikubWFwKGF0dHJp
YnV0ZU1hcCk7CisgICAgICAgICAgICAgICAgbGV0IHRlc3REZXNjcmlwdGlvbiA9IGBpZnJhbWUg
d2l0aCAkeyBmcmFtZUF0dHJpYnV0ZXMuam9pbignLCAnKSB9IHNob3VsZCBoYXZlIGRvY3VtZW50
LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkID09PSAkeyBleHBlY3RlZE1lc3NhZ2UgfWA7CisgICAg
ICAgICAgICAgICAgaWYgKFN0cmluZyhtZXNzYWdlRXZlbnQuZGF0YSkgPT09IGV4cGVjdGVkTWVz
c2FnZSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChgJHt0ZXN0RGVzY3JpcHRpb259
LmApOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZChgJHt0ZXN0RGVzY3JpcHRpb259LCB3YXMgJHsgbWVzc2FnZUV2ZW50LmRhdGEgfWApOworICAg
ICAgICAgICAgfQorICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
YFNob3VsZCBub3QgdGhyb3cuIFRocmV3IGV4Y2VwdGlvbiAkeyBlIH0uYCkKKyAgICAgICAgfQor
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAg
IDxpZnJhbWUgZGF0YS1lbmFibGVkPSJmYWxzZSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAv
cmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAg
PGlmcmFtZSBkYXRhLWVuYWJsZWQ9InRydWUiIHNyYz0iLi4vcmVzb3VyY2VzL3BvaW50ZXItbG9j
ay9pbm5lci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNj
cmVlbiIgZGF0YS1lbmFibGVkPSJ0cnVlIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNv
dXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZy
YW1lIGFsbG93PSJmdWxsc2NyZWVuIiBkYXRhLWVuYWJsZWQ9InRydWUiIHNyYz0iLi4vcmVzb3Vy
Y2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFt
ZSBhbGxvdz0iZnVsbHNjcmVlbiAqIiBkYXRhLWVuYWJsZWQ9InRydWUiIHNyYz0iaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwv
aWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gKiIgZGF0YS1lbmFibGVkPSJ0
cnVlIiBzcmM9Ii4uL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwv
aWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUnIiBkYXRhLWVuYWJs
ZWQ9ImZhbHNlIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMvcG9pbnRlci1s
b2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93PSJmdWxs
c2NyZWVuICdub25lJyIgZGF0YS1lbmFibGVkPSJmYWxzZSIgc3JjPSIuLi9yZXNvdXJjZXMvcG9p
bnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93
PSJmdWxsc2NyZWVuICdzZWxmJyIgZGF0YS1lbmFibGVkPSJmYWxzZSIgc3JjPSJodHRwOi8vbG9j
YWxob3N0OjgwMDAvcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5lci1pZnJhbWUuaHRtbCI+PC9p
ZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAnc2VsZiciIGRhdGEtZW5hYmxl
ZD0idHJ1ZSIgc3JjPSIuLi9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1s
Ij48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuIGh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCIgZGF0YS1lbmFibGVkPSJ0cnVlIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9y
ZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8
aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIgZGF0YS1lbmFi
bGVkPSJmYWxzZSIgc3JjPSIuLi9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5o
dG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93ZnVsbHNjcmVlbiBkYXRhLWVuYWJsZWQ9
InRydWUiICBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMvcG9pbnRlci1sb2Nr
L2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93ZnVsbHNjcmVl
biBkYXRhLWVuYWJsZWQ9InRydWUiIHNyYz0iLi4vcmVzb3VyY2VzL3BvaW50ZXItbG9jay9pbm5l
ci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNjcmVlbiAn
bm9uZSciIGFsbG93ZnVsbHNjcmVlbiBkYXRhLWVuYWJsZWQ9ImZhbHNlIiBzcmM9Imh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48
L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdub25lJyIgYWxsb3dmdWxs
c2NyZWVuIGRhdGEtZW5hYmxlZD0iZmFsc2UiIHNyYz0iLi4vcmVzb3VyY2VzL3BvaW50ZXItbG9j
ay9pbm5lci1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBhbGxvdz0iZnVsbHNj
cmVlbiAnc2VsZiciIGFsbG93ZnVsbHNjcmVlbiBkYXRhLWVuYWJsZWQ9ImZhbHNlIiBzcmM9Imh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5o
dG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdzZWxmJyIgYWxs
b3dmdWxsc2NyZWVuIGRhdGEtZW5hYmxlZD0idHJ1ZSIgc3JjPSIuLi9yZXNvdXJjZXMvcG9pbnRl
ci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIHdlYmtpdGFs
bG93ZnVsbHNjcmVlbiBkYXRhLWVuYWJsZWQ9InRydWUiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgor
ICAgIDxpZnJhbWUgd2Via2l0YWxsb3dmdWxsc2NyZWVuIGRhdGEtZW5hYmxlZD0idHJ1ZSIgc3Jj
PSIuLi9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFtZS5odG1sIj48L2lmcmFtZT4K
KyAgICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdub25lJyIgd2Via2l0YWxsb3dmdWxsc2Ny
ZWVuIGRhdGEtZW5hYmxlZD0iZmFsc2UiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291
cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJh
bWUgYWxsb3c9ImZ1bGxzY3JlZW4gJ25vbmUnIiB3ZWJraXRhbGxvd2Z1bGxzY3JlZW4gZGF0YS1l
bmFibGVkPSJmYWxzZSIgc3JjPSIuLi9yZXNvdXJjZXMvcG9pbnRlci1sb2NrL2lubmVyLWlmcmFt
ZS5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGFsbG93PSJmdWxsc2NyZWVuICdzZWxmJyIg
d2Via2l0YWxsb3dmdWxsc2NyZWVuIGRhdGEtZW5hYmxlZD0iZmFsc2UiIHNyYz0iaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3Jlc291cmNlcy9wb2ludGVyLWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwv
aWZyYW1lPgorICAgIDxpZnJhbWUgYWxsb3c9ImZ1bGxzY3JlZW4gJ3NlbGYnIiB3ZWJraXRhbGxv
d2Z1bGxzY3JlZW4gZGF0YS1lbmFibGVkPSJ0cnVlIiBzcmM9Ii4uL3Jlc291cmNlcy9wb2ludGVy
LWxvY2svaW5uZXItaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>