<?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>173457</bug_id>
          
          <creation_ts>2017-06-15 22:58:25 -0700</creation_ts>
          <short_desc>Consider allow gUM to be called from localhost without https</short_desc>
          <delta_ts>2021-10-01 09:12:28 -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>Media</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="Jon Lee">jonlee</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>adam</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>gsnedders</cc>
    
    <cc>pqg</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zulaica</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1319863</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-06-15 22:58:25 -0700</bug_when>
    <thetext>https://stackoverflow.com/questions/44523609/getusermedia-is-not-allowed-in-localhost-safari-11</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1322180</commentid>
    <comment_count>1</comment_count>
    <who name="David Zulaica">zulaica</who>
    <bug_when>2017-06-22 20:21:32 -0700</bug_when>
    <thetext>getUserMedia is also not available with the file:/// protocol.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338464</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-08-14 14:18:07 -0700</bug_when>
    <thetext>Note that it is possible to enable/disable gUM on insecure sites with the Safari Develop menu. See https://webkit.org/blog/7763/a-closer-look-into-webrtc for details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338465</commentid>
    <comment_count>3</comment_count>
      <attachid>318060</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-08-14 14:18:45 -0700</bug_when>
    <thetext>Created attachment 318060
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338470</commentid>
    <comment_count>4</comment_count>
      <attachid>318060</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-14 14:49:57 -0700</bug_when>
    <thetext>Comment on attachment 318060
Proposed patch.

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

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:105
&gt; +    return equalLettersIgnoringASCIICase(response.url().host(), &quot;localhost&quot;);

So only localhost and not 127.0.0.1?
Do you know what other browsers are doing?

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:111
&gt; +    if (requiresSecureConnection &amp;&amp; !isSecure(*document.loader()) &amp;&amp; !isLocalhost(*document.loader())) {

Geolocation is not allowing localhost/127.0.0.1 but it is accepting file URLs.
I wonder whether we should not make these two consistent.
If so, we should come up with a common routine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338763</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-15 11:45:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/33900527&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338825</commentid>
    <comment_count>6</comment_count>
      <attachid>318159</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-08-15 13:17:12 -0700</bug_when>
    <thetext>Created attachment 318159
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338841</commentid>
    <comment_count>7</comment_count>
      <attachid>318159</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-15 13:33:17 -0700</bug_when>
    <thetext>Comment on attachment 318159
Patch for landing.


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

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:98
&gt; +    return SchemeRegistry::shouldTreatURLSchemeAsSecure(response.url().protocol().toStringWithoutCopying())

I did not know about toStringWithoutCopying method.
Maybe shouldTreatURLSchemeAsSecure should take a StringView though?

&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:107
&gt; +    if (requiresSecureConnection &amp;&amp; !isSecure(documentLoader) &amp;&amp; !SecurityOrigin::isLocalHostOrLoopbackIPAddress(documentLoader.response().url())) {

Why not placing SecurityOrigin::isLocalHostOrLoopbackIPAddress call in isSecure function?

&gt; Source/WebCore/page/SecurityOrigin.cpp:134
&gt; +    if (SecurityOrigin::isLocalHostOrLoopbackIPAddress(url))

Sounds good although unrelated to the initial purpose of that change.
Looking at https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy, it also considers www.localhost as potentially trustworthy.
Maybe we should split out this part and try realigning our implementation with the spec.

&gt; Source/WebCore/page/SecurityOrigin.cpp:592
&gt; +    // FIXME: Ensure that localhost resolves to the loopback address.

As per the spec, this FIXME might no longer be something we might care about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338856</commentid>
    <comment_count>8</comment_count>
      <attachid>318159</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-08-15 13:58:08 -0700</bug_when>
    <thetext>Comment on attachment 318159
Patch for landing.

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

&gt;&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:107
&gt;&gt; +    if (requiresSecureConnection &amp;&amp; !isSecure(documentLoader) &amp;&amp; !SecurityOrigin::isLocalHostOrLoopbackIPAddress(documentLoader.response().url())) {
&gt; 
&gt; Why not placing SecurityOrigin::isLocalHostOrLoopbackIPAddress call in isSecure function?

I am not an expert in this area, but I assume SecurityOrigin::isPotentionallyTrustworthy allows localhost/loopback and SecurityOrigin::isSecure doesn&apos;t by design, so I will leave this as is for now and talk to @dbates about it.

&gt;&gt; Source/WebCore/page/SecurityOrigin.cpp:134
&gt;&gt; +    if (SecurityOrigin::isLocalHostOrLoopbackIPAddress(url))
&gt; 
&gt; Sounds good although unrelated to the initial purpose of that change.
&gt; Looking at https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy, it also considers www.localhost as potentially trustworthy.
&gt; Maybe we should split out this part and try realigning our implementation with the spec.

This will have implications for other parts of WebKit, so lets leave that for another change.

&gt;&gt; Source/WebCore/page/SecurityOrigin.cpp:592
&gt;&gt; +    // FIXME: Ensure that localhost resolves to the loopback address.
&gt; 
&gt; As per the spec, this FIXME might no longer be something we might care about.

I think we do for now because https://w3c.github.io/webappsec-secure-contexts/#localhost says that user agents MAY treat localhost names as having potentially trustworthy origins &quot;if and only if ... localhost never resolves to a non-loopback address&quot;. Others are following discussions elsewhere about changing this, so this comment will be removed if/when that changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338875</commentid>
    <comment_count>9</comment_count>
      <attachid>318159</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-15 14:15:20 -0700</bug_when>
    <thetext>Comment on attachment 318159
Patch for landing.

Rejecting attachment 318159 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 318159, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
.webkit.org/git/WebKit
   4ef9ce9..1fb5568  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 220758 = 4ef9ce9da4ece36525787f3029fc0747c27790c8
r220759 = 1fb556876104fc0d5aaf782e9e62313e62d0acde
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/4319604</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338888</commentid>
    <comment_count>10</comment_count>
      <attachid>318159</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-08-15 14:51:56 -0700</bug_when>
    <thetext>Comment on attachment 318159
Patch for landing.

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

&gt;&gt;&gt; Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:107
&gt;&gt;&gt; +    if (requiresSecureConnection &amp;&amp; !isSecure(documentLoader) &amp;&amp; !SecurityOrigin::isLocalHostOrLoopbackIPAddress(documentLoader.response().url())) {
&gt;&gt; 
&gt;&gt; Why not placing SecurityOrigin::isLocalHostOrLoopbackIPAddress call in isSecure function?
&gt; 
&gt; I am not an expert in this area, but I assume SecurityOrigin::isPotentionallyTrustworthy allows localhost/loopback and SecurityOrigin::isSecure doesn&apos;t by design, so I will leave this as is for now and talk to @dbates about it.

Oops, Dan pointed out that you were suggesting I do this check inside of isSecure in *this* file. I didn&apos;t do that because semantically localhost/loopback isn&apos;t secure, but it is something we allow as an exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338889</commentid>
    <comment_count>11</comment_count>
      <attachid>318177</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-08-15 14:56:59 -0700</bug_when>
    <thetext>Created attachment 318177
Rebased patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338908</commentid>
    <comment_count>12</comment_count>
      <attachid>318177</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-15 15:38:38 -0700</bug_when>
    <thetext>Comment on attachment 318177
Rebased patch.

Rejecting attachment 318177 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 318177, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
    -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 220761 = 0f5ef5f5c48ee19395f265454cec76a57a23306f
r220762 = 70a4f6f95592494e9aa0c812d3a03e08630ecc0f
r220763 = abc7aa56fed15ca049b6c3cd6c35949bf1412e48
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/4320064</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339265</commentid>
    <comment_count>13</comment_count>
      <attachid>318177</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-16 13:20:59 -0700</bug_when>
    <thetext>Comment on attachment 318177
Rebased patch.

Clearing flags on attachment: 318177

Committed r220805: &lt;http://trac.webkit.org/changeset/220805&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799329</commentid>
    <comment_count>14</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-10-01 09:12:28 -0700</bug_when>
    <thetext>This appears to have been fixed by the above commit?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318060</attachid>
            <date>2017-08-14 14:18:45 -0700</date>
            <delta_ts>2017-11-14 07:03:20 -0800</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>local_host_patch_2.txt</filename>
            <type>text/plain</type>
            <size>4917</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMDcxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA4LTE0ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIENvbnNpZGVyIGFsbG93
IGdVTSB0byBiZSBjYWxsZWQgZnJvbSBsb2NhbGhvc3Qgd2l0aG91dCBodHRwcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczNDU3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9t
ZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LXVzZXItbWVkaWEtbG9jYWxob3N0Lmh0bWwKKworICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjppc0xvY2FsaG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpjYW5DYWxsR2V0VXNlck1l
ZGlhKToKKwogMjAxNy0wOC0xNCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtXUEVdIEltcGxlbWVudCBXZWJDb3JlOjpzdGFuZGFyZFVzZXJB
Z2VudCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAJKHJldmlzaW9uIDIyMDUyOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTk5LDEwICs5OSwxNiBAQCBzdGF0aWMgYm9vbCBpc1NlY3VyZShEb2N1bWVudExv
YWRlciYgZG9jCiAgICAgICAgICYmICFyZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKS0+Y29udGFp
bnNOb25Sb290U0hBMVNpZ25lZENlcnRpZmljYXRlKCk7CiB9CiAKK3N0YXRpYyBib29sIGlzTG9j
YWxob3N0KERvY3VtZW50TG9hZGVyJiBkb2N1bWVudExvYWRlcikKK3sKKyAgICBhdXRvJiByZXNw
b25zZSA9IGRvY3VtZW50TG9hZGVyLnJlc3BvbnNlKCk7CisgICAgcmV0dXJuIGVxdWFsTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKHJlc3BvbnNlLnVybCgpLmhvc3QoKSwgImxvY2FsaG9zdCIpOwor
fQorCiBzdGF0aWMgYm9vbCBjYW5DYWxsR2V0VXNlck1lZGlhKERvY3VtZW50JiBkb2N1bWVudCwg
U3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7CiAgICAgYm9vbCByZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24gPSBkb2N1bWVudC5zZXR0aW5ncygpLm1lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVj
dGlvbigpOwotICAgIGlmIChyZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gJiYgIWlzU2VjdXJlKCpk
b2N1bWVudC5sb2FkZXIoKSkpIHsKKyAgICBpZiAocmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uICYm
ICFpc1NlY3VyZSgqZG9jdW1lbnQubG9hZGVyKCkpICYmICFpc0xvY2FsaG9zdCgqZG9jdW1lbnQu
bG9hZGVyKCkpKSB7CiAgICAgICAgIGVycm9yTWVzc2FnZSA9ICJUcnlpbmcgdG8gY2FsbCBnZXRV
c2VyTWVkaWEgZnJvbSBhbiBpbnNlY3VyZSBkb2N1bWVudC4iOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwNTI4KQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDgtMTQgIEVyaWMg
Q2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ29uc2lkZXIgYWxs
b3cgZ1VNIHRvIGJlIGNhbGxlZCBmcm9tIGxvY2FsaG9zdCB3aXRob3V0IGh0dHBzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM0NTcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc3RyZWFtL2dldC11c2VyLW1lZGlhLWxvY2FsaG9zdC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2dldC11c2VyLW1l
ZGlhLWxvY2FsaG9zdC5odG1sOiBBZGRlZC4KKwogMjAxNy0wOC0xMCAgTWlndWVsIEdvbWV6ICA8
bWFnb21lekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLKyBnYXJkZW5pbmcu
IFVwZGF0ZSBleHBlY3RhdGlvbnMgb2Ygc2V2ZXJhbCB0ZXN0cyBmYWlsaW5nIGF0IHIyMjA1MTYu
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtdXNl
ci1tZWRpYS1sb2NhbGhvc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2dldC11c2VyLW1lZGlhLWxvY2FsaG9zdC1l
eHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zdHJlYW0vZ2V0LXVzZXItbWVkaWEtbG9jYWxob3N0LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDcgQEAKK1Rlc3RzIHRoYXQgZ2V0VXNlck1lZGlhIGlzIGFs
bG93ZWQgZnJvbSBsb2NhbGhvc3Qgd2hlbiBzZWN1cmUgY29ubmVjdGlvbiBpcyByZXF1aXJlZC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZ2V0VXNlck1lZGlhIHN1Y2Nl
ZWRlZAorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9n
ZXQtdXNlci1tZWRpYS1sb2NhbGhvc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtdXNlci1tZWRpYS1sb2NhbGhvc3QuaHRt
bAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0
cmVhbS9nZXQtdXNlci1tZWRpYS1sb2NhbGhvc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDM5IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdD4KKworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldE1lZGlhQ2FwdHVyZVJlcXVpcmVzU2Vj
dXJlQ29ubmVjdGlvbih0cnVlKTsKKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBpZiAobG9jYXRpb24uaG9zdG5hbWUgIT0gImxvY2FsaG9zdCIpIHsKKyAgICAgICAg
ICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbjsKKyAgICAgICAgICAgICAg
ICB3aW5kb3cubG9jYXRpb24gPSBgJHtsb2NhdGlvbi5wcm90b2NvbH0vL2xvY2FsaG9zdDoke2xv
Y2F0aW9uLnBvcnR9JHtsb2NhdGlvbi5wYXRobmFtZX1gOworICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGFzeW5jICgp
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGF3YWl0IHdpbmRvdy5uYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86
dHJ1ZX0pOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiZ2V0VXNlck1lZGlh
IHN1Y2NlZWRlZCIpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGVycikgeworICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChgZ2V0VXNlck1lZGlhIHNob3VsZCBoYXZlIHN1
Y2NlZWRlZCBidXQgZmFpbGVkIHdpdGggZXJyb3IgIiR7ZXJyfSJgKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVz
dHMgdGhhdCBnZXRVc2VyTWVkaWEgaXMgYWxsb3dlZCBmcm9tIGxvY2FsaG9zdCB3aGVuIHNlY3Vy
ZSBjb25uZWN0aW9uIGlzIHJlcXVpcmVkLiIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hl
YWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDwv
Ym9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318159</attachid>
            <date>2017-08-15 13:17:12 -0700</date>
            <delta_ts>2017-08-15 14:56:59 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>local_host_patch_3.txt</filename>
            <type>text/plain</type>
            <size>11110</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMDc1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE3LTA4LTE1ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIENvbnNpZGVyIGFsbG93
IGdVTSB0byBiZSBjYWxsZWQgZnJvbSBsb2NhbGhvc3Qgd2l0aG91dCBodHRwcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczNDU3CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zMzkwMDUyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFi
bGV0LgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQt
dXNlci1tZWRpYS1sb2NhbGhvc3QuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zdHJlYW0vZ2V0LXVzZXItbWVkaWEtbG9vcGJhY2staXAuaHRtbAorCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmlzU2VjdXJlKTogQ2FsbCBTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hl
bWVBc1NlY3VyZSBpbnN0ZWFkIG9mIGxvb2tpbmcgZm9yCisgICAgICAgIHRoZSBzdHJpbmcgJ2h0
dHBzJy4KKyAgICAgICAgKFdlYkNvcmU6OmNhbkNhbGxHZXRVc2VyTWVkaWEpOiBBbGxvdyBsb2Nh
bGhvc3Qgb3IgbG9vcGJhY2sgYWRkcmVzcy4KKworICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmln
aW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNMb29wYmFja0lQQWRkcmVzcyk6IEFkZCBhIGNv
bW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpzaG91bGRUcmVhdEFzUG90ZW50aW9uYWxseVRydXN0
d29ydGh5KTogTW92ZSB0ZXN0cyBmb3IgbG9jYWxob3N0IGFuZCBsb29wYmFjayBhZGRyZXNzCisg
ICAgICAgIHRvIGlzTG9jYWxIb3N0T3JMb29wYmFja0lQQWRkcmVzcywgY2FsbCBpdC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjppc0xvY2FsSG9zdE9yTG9vcGJhY2tJUEFkZHJl
c3MpOiAKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6CisKIDIwMTctMDgtMTUgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgcXVvdGEg
bGltaXRhdGlvbiBmb3Iga2VlcGFsaXZlIEZldGNoIHJlcXVlc3RzCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5j
cHAJKHJldmlzaW9uIDIyMDUyOCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vVXNlck1lZGlhUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDExIEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNDQsNiArNDQsNyBAQAog
I2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHMuaCIKICNp
bmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgiCisjaW5jbHVkZSAiU2NoZW1lUmVn
aXN0cnkuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNvbnRy
b2xsZXIuaCIKIApAQCAtOTQsNyArOTUsNyBAQCBTZWN1cml0eU9yaWdpbiogVXNlck1lZGlhUmVx
dWVzdDo6dG9wTGV2CiBzdGF0aWMgYm9vbCBpc1NlY3VyZShEb2N1bWVudExvYWRlciYgZG9jdW1l
bnRMb2FkZXIpCiB7CiAgICAgYXV0byYgcmVzcG9uc2UgPSBkb2N1bWVudExvYWRlci5yZXNwb25z
ZSgpOwotICAgIHJldHVybiByZXNwb25zZS51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpCisgICAg
cmV0dXJuIFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzU2VjdXJlKHJlc3Bv
bnNlLnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKQogICAgICAgICAm
JiByZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKQogICAgICAgICAmJiAhcmVzcG9uc2UuY2VydGlm
aWNhdGVJbmZvKCktPmNvbnRhaW5zTm9uUm9vdFNIQTFTaWduZWRDZXJ0aWZpY2F0ZSgpOwogfQpA
QCAtMTAyLDcgKzEwMyw4IEBAIHN0YXRpYyBib29sIGlzU2VjdXJlKERvY3VtZW50TG9hZGVyJiBk
b2MKIHN0YXRpYyBib29sIGNhbkNhbGxHZXRVc2VyTWVkaWEoRG9jdW1lbnQmIGRvY3VtZW50LCBT
dHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKICAgICBib29sIHJlcXVpcmVzU2VjdXJlQ29ubmVjdGlv
biA9IGRvY3VtZW50LnNldHRpbmdzKCkubWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uKCk7Ci0gICAgaWYgKHJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiAmJiAhaXNTZWN1cmUoKmRv
Y3VtZW50LmxvYWRlcigpKSkgeworICAgIGF1dG8mIGRvY3VtZW50TG9hZGVyID0gKmRvY3VtZW50
LmxvYWRlcigpOworICAgIGlmIChyZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24gJiYgIWlzU2VjdXJl
KGRvY3VtZW50TG9hZGVyKSAmJiAhU2VjdXJpdHlPcmlnaW46OmlzTG9jYWxIb3N0T3JMb29wYmFj
a0lQQWRkcmVzcyhkb2N1bWVudExvYWRlci5yZXNwb25zZSgpLnVybCgpKSkgewogICAgICAgICBl
cnJvck1lc3NhZ2UgPSAiVHJ5aW5nIHRvIGNhbGwgZ2V0VXNlck1lZGlhIGZyb20gYW4gaW5zZWN1
cmUgZG9jdW1lbnQuIjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCShyZXZpc2lvbiAyMjA1MjgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAx
LDYgKzEwMSw3IEBAIHN0YXRpYyBib29sIHNob3VsZFRyZWF0QXNVbmlxdWVPcmlnaW4oY28KIAog
c3RhdGljIGJvb2wgaXNMb29wYmFja0lQQWRkcmVzcyhjb25zdCBVUkwmIHVybCkKIHsKKyAgICAv
LyBUaGUgSVB2NiBsb29wYmFjayBhZGRyZXNzIGlzIDA6MDowOjA6MDowOjA6MSwgd2hpY2ggY29t
cHJlc3NlcyB0byA6OjEuCiAgICAgQVNTRVJUKHVybC5pc1ZhbGlkKCkpOwogICAgIGF1dG8gaG9z
dCA9IHVybC5ob3N0KCk7CiAgICAgaWYgKGhvc3QgPT0gIls6OjFdIikKQEAgLTEzMCwxMSArMTMx
LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRBc1BvdGVudGlvbmFsbHlUcgogICAgIGlmIChT
Y2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc1NlY3VyZSh1cmwucHJvdG9jb2wo
KS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
IGlmIChpc0xvb3BiYWNrSVBBZGRyZXNzKHVybCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0g
ICAgLy8gRklYTUU6IEVuc3VyZSB0aGF0IGxvY2FsaG9zdCByZXNvbHZlcyB0byB0aGUgbG9vcGJh
Y2sgYWRkcmVzcy4KLSAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodXJsLmhv
c3QoKSwgImxvY2FsaG9zdCIpKQorICAgIGlmIChTZWN1cml0eU9yaWdpbjo6aXNMb2NhbEhvc3RP
ckxvb3BiYWNrSVBBZGRyZXNzKHVybCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYg
KFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTG9jYWwodXJsLnByb3RvY29s
KCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKSkKQEAgLTU4Nyw0ICs1ODQsMTYgQEAgVVJMIFNl
Y3VyaXR5T3JpZ2luOjp1cmxXaXRoVW5pcXVlU2VjdXJpdAogICAgIHJldHVybiB1bmlxdWVTZWN1
cml0eU9yaWdpblVSTDsKIH0KIAorYm9vbCBTZWN1cml0eU9yaWdpbjo6aXNMb2NhbEhvc3RPckxv
b3BiYWNrSVBBZGRyZXNzKGNvbnN0IFVSTCYgdXJsKQoreworICAgIGlmIChpc0xvb3BiYWNrSVBB
ZGRyZXNzKHVybCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gRklYTUU6IEVuc3Vy
ZSB0aGF0IGxvY2FsaG9zdCByZXNvbHZlcyB0byB0aGUgbG9vcGJhY2sgYWRkcmVzcy4KKyAgICBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodXJsLmhvc3QoKSwgImxvY2FsaG9zdCIp
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdp
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAko
cmV2aXNpb24gMjIwNTI4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMDIsNiArMjAyLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBp
c1BvdGVudGlvbmFsbHlUcnVzdHdvcnRoeSgpIGNvbnN0IHsgcmV0dXJuIG1faXNQb3RlbnRpb25h
bGx5VHJ1c3R3b3J0aHk7IH0KIAorICAgIHN0YXRpYyBib29sIGlzTG9jYWxIb3N0T3JMb29wYmFj
a0lQQWRkcmVzcyhjb25zdCBVUkwmKTsKKwogcHJpdmF0ZToKICAgICBTZWN1cml0eU9yaWdpbigp
OwogICAgIGV4cGxpY2l0IFNlY3VyaXR5T3JpZ2luKGNvbnN0IFVSTCYpOwpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMjIwNTI4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTctMDgtMTUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgQ29uc2lkZXIgYWxsb3cgZ1VNIHRvIGJlIGNhbGxlZCBmcm9t
IGxvY2FsaG9zdCB3aXRob3V0IGh0dHBzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzM0NTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzOTAwNTI3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtdXNlci1tZWRpYS1sb2NhbGhvc3QtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9n
ZXQtdXNlci1tZWRpYS1sb2NhbGhvc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LXVzZXItbWVkaWEtbG9vcGJhY2staXAtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQt
dXNlci1tZWRpYS1sb29wYmFjay1pcC5odG1sOiBBZGRlZC4KKwogMjAxNy0wOC0xMCAgTWlndWVs
IEdvbWV6ICA8bWFnb21lekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLKyBn
YXJkZW5pbmcuIFVwZGF0ZSBleHBlY3RhdGlvbnMgb2Ygc2V2ZXJhbCB0ZXN0cyBmYWlsaW5nIGF0
IHIyMjA1MTYuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVh
bS9nZXQtdXNlci1tZWRpYS1sb2NhbGhvc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2dldC11c2VyLW1lZGlhLWxv
Y2FsaG9zdC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LXVzZXItbWVkaWEtbG9jYWxob3N0LWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGdldFVzZXJN
ZWRpYSBpcyBhbGxvd2VkIGZyb20gbG9jYWxob3N0IHdoZW4gc2VjdXJlIGNvbm5lY3Rpb24gaXMg
cmVxdWlyZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGdldFVzZXJN
ZWRpYSBzdWNjZWVkZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVh
bS9nZXQtdXNlci1tZWRpYS1sb2NhbGhvc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtdXNlci1tZWRpYS1sb2NhbGhvc3Qu
aHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlh
LXN0cmVhbS9nZXQtdXNlci1tZWRpYS1sb2NhbGhvc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQwIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdD4KKworICAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uKHRydWUpOworCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlm
IChsb2NhdGlvbi5ob3N0bmFtZSAhPSAibG9jYWxob3N0IikKKyAgICAgICAgICAgICAgICB3aW5k
b3cubG9jYXRpb24gPSBgJHtsb2NhdGlvbi5wcm90b2NvbH0vL2xvY2FsaG9zdDoke2xvY2F0aW9u
LnBvcnR9JHtsb2NhdGlvbi5wYXRobmFtZX1gOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB3
aW5kb3cubmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoImdldFVzZXJNZWRpYSBzdWNjZWVk
ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChlcnIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoYGdldFVzZXJNZWRpYSBzaG91bGQgaGF2ZSBzdWNjZWVkZWQg
YnV0IGZhaWxlZCB3aXRoIGVycm9yICIke2Vycn0iYCk7CisgICAgICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
Z2V0VXNlck1lZGlhIGlzIGFsbG93ZWQgZnJvbSBsb2NhbGhvc3Qgd2hlbiBzZWN1cmUgY29ubmVj
dGlvbiBpcyByZXF1aXJlZC4iKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisgICAgPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zdHJlYW0vZ2V0LXVzZXItbWVkaWEtbG9vcGJhY2staXAtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2dl
dC11c2VyLW1lZGlhLWxvb3BiYWNrLWlwLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtdXNlci1tZWRpYS1s
b29wYmFjay1pcC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAor
VGVzdHMgdGhhdCBnZXRVc2VyTWVkaWEgaXMgYWxsb3dlZCBmcm9tIHRoZSBsb29wYmFjayBJUCBh
ZGRyZXNzIHdoZW4gc2VjdXJlIGNvbm5lY3Rpb24gaXMgcmVxdWlyZWQuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIGdldFVzZXJNZWRpYSBzdWNjZWVkZWQKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtdXNlci1tZWRpYS1sb29wYmFj
ay1pcC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc3RyZWFtL2dldC11c2VyLW1lZGlhLWxvb3BiYWNrLWlwLmh0bWwJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LXVzZXItbWVk
aWEtbG9vcGJhY2staXAuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQyIEBACis8IURP
Q1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4K
KworICAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgICAg
ICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKHRydWUpOworCisgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJN
ZWRpYVBlcm1pc3Npb24odHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgIGlmIChsb2NhdGlvbi5w
cm90b2NvbCAhPSAiaHR0cDoiIHx8IGxvY2F0aW9uLmhvc3QgIT0gIjEyNy4wLjAuMTo4MDAwIikg
eworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUaGlzIHRlc3QgbXVzdCBiZSBydW4g
ZnJvbSBodHRwOi8vMTI3LjAuMC4xOjgwMDAiKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBhd2FpdCB3aW5k
b3cubmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWV9KTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiZ2V0VXNlck1lZGlhIHN1Y2NlZWRlZCIpOwor
ICAgICAgICAgICAgICAgIH0gY2F0Y2goZXJyKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoYGdldFVzZXJNZWRpYSBzaG91bGQgaGF2ZSBzdWNjZWVkZWQgYnV0IGZhaWxlZCB3aXRo
IGVycm9yICIke2Vycn0iYCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgZGVzY3JpcHRp
b24oIlRlc3RzIHRoYXQgZ2V0VXNlck1lZGlhIGlzIGFsbG93ZWQgZnJvbSB0aGUgbG9vcGJhY2sg
SVAgYWRkcmVzcyB3aGVuIHNlY3VyZSBjb25uZWN0aW9uIGlzIHJlcXVpcmVkLiIpOworICAgICAg
ICA8L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAg
ICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="338605"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318177</attachid>
            <date>2017-08-15 14:56:59 -0700</date>
            <delta_ts>2017-08-16 13:20:59 -0700</delta_ts>
            <desc>Rebased patch.</desc>
            <filename>local_host_patch_4.txt</filename>
            <type>text/plain</type>
            <size>11127</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMDc2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE3LTA4LTE1ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIENvbnNpZGVyIGFsbG93
IGdVTSB0byBiZSBjYWxsZWQgZnJvbSBsb2NhbGhvc3Qgd2l0aG91dCBodHRwcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczNDU3CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zMzkwMDUyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFi
bGV0LgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQt
dXNlci1tZWRpYS1sb2NhbGhvc3QuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zdHJlYW0vZ2V0LXVzZXItbWVkaWEtbG9vcGJhY2staXAuaHRtbAorCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmlzU2VjdXJlKTogQ2FsbCBTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hl
bWVBc1NlY3VyZSBpbnN0ZWFkIG9mIGxvb2tpbmcgZm9yCisgICAgICAgIHRoZSBzdHJpbmcgJ2h0
dHBzJy4KKyAgICAgICAgKFdlYkNvcmU6OmNhbkNhbGxHZXRVc2VyTWVkaWEpOiBBbGxvdyBsb2Nh
bGhvc3Qgb3IgbG9vcGJhY2sgYWRkcmVzcy4KKworICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmln
aW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNMb29wYmFja0lQQWRkcmVzcyk6IEFkZCBhIGNv
bW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpzaG91bGRUcmVhdEFzUG90ZW50aW9uYWxseVRydXN0
d29ydGh5KTogTW92ZSB0ZXN0cyBmb3IgbG9jYWxob3N0IGFuZCBsb29wYmFjayBhZGRyZXNzCisg
ICAgICAgIHRvIGlzTG9jYWxIb3N0T3JMb29wYmFja0lQQWRkcmVzcywgY2FsbCBpdC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjppc0xvY2FsSG9zdE9yTG9vcGJhY2tJUEFkZHJl
c3MpOiAKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6CisKIDIwMTctMDgtMTUgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSgpIHRvIHJldHVybiBhIFdURjo6RXhwZWN0ZWQK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVz
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9V
c2VyTWVkaWFSZXF1ZXN0LmNwcAkocmV2aXNpb24gMjIwNzYxKQorKysgU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBA
IC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTWVkaWFD
b25zdHJhaW50cy5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCIKKyNp
bmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiVXNlck1lZGlhQ29udHJvbGxlci5oIgogCkBAIC05NCw3ICs5NSw3IEBAIFNlY3VyaXR5T3Jp
Z2luKiBVc2VyTWVkaWFSZXF1ZXN0Ojp0b3BMZXYKIHN0YXRpYyBib29sIGlzU2VjdXJlKERvY3Vt
ZW50TG9hZGVyJiBkb2N1bWVudExvYWRlcikKIHsKICAgICBhdXRvJiByZXNwb25zZSA9IGRvY3Vt
ZW50TG9hZGVyLnJlc3BvbnNlKCk7Ci0gICAgcmV0dXJuIHJlc3BvbnNlLnVybCgpLnByb3RvY29s
SXMoImh0dHBzIikKKyAgICByZXR1cm4gU2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2No
ZW1lQXNTZWN1cmUocmVzcG9uc2UudXJsKCkucHJvdG9jb2woKS50b1N0cmluZ1dpdGhvdXRDb3B5
aW5nKCkpCiAgICAgICAgICYmIHJlc3BvbnNlLmNlcnRpZmljYXRlSW5mbygpCiAgICAgICAgICYm
ICFyZXNwb25zZS5jZXJ0aWZpY2F0ZUluZm8oKS0+Y29udGFpbnNOb25Sb290U0hBMVNpZ25lZENl
cnRpZmljYXRlKCk7CiB9CkBAIC0xMDIsNyArMTAzLDggQEAgc3RhdGljIGJvb2wgaXNTZWN1cmUo
RG9jdW1lbnRMb2FkZXImIGRvYwogc3RhdGljIGJvb2wgY2FuQ2FsbEdldFVzZXJNZWRpYShEb2N1
bWVudCYgZG9jdW1lbnQsIFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewogICAgIGJvb2wgcmVxdWly
ZXNTZWN1cmVDb25uZWN0aW9uID0gZG9jdW1lbnQuc2V0dGluZ3MoKS5tZWRpYUNhcHR1cmVSZXF1
aXJlc1NlY3VyZUNvbm5lY3Rpb24oKTsKLSAgICBpZiAocmVxdWlyZXNTZWN1cmVDb25uZWN0aW9u
ICYmICFpc1NlY3VyZSgqZG9jdW1lbnQubG9hZGVyKCkpKSB7CisgICAgYXV0byYgZG9jdW1lbnRM
b2FkZXIgPSAqZG9jdW1lbnQubG9hZGVyKCk7CisgICAgaWYgKHJlcXVpcmVzU2VjdXJlQ29ubmVj
dGlvbiAmJiAhaXNTZWN1cmUoZG9jdW1lbnRMb2FkZXIpICYmICFTZWN1cml0eU9yaWdpbjo6aXNM
b2NhbEhvc3RPckxvb3BiYWNrSVBBZGRyZXNzKGRvY3VtZW50TG9hZGVyLnJlc3BvbnNlKCkudXJs
KCkpKSB7CiAgICAgICAgIGVycm9yTWVzc2FnZSA9ICJUcnlpbmcgdG8gY2FsbCBnZXRVc2VyTWVk
aWEgZnJvbSBhbiBpbnNlY3VyZSBkb2N1bWVudC4iOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAJKHJldmlzaW9u
IDIyMDc2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRBc1Vu
aXF1ZU9yaWdpbihjbwogCiBzdGF0aWMgYm9vbCBpc0xvb3BiYWNrSVBBZGRyZXNzKGNvbnN0IFVS
TCYgdXJsKQogeworICAgIC8vIFRoZSBJUHY2IGxvb3BiYWNrIGFkZHJlc3MgaXMgMDowOjA6MDow
OjA6MDoxLCB3aGljaCBjb21wcmVzc2VzIHRvIDo6MS4KICAgICBBU1NFUlQodXJsLmlzVmFsaWQo
KSk7CiAgICAgYXV0byBob3N0ID0gdXJsLmhvc3QoKTsKICAgICBpZiAoaG9zdCA9PSAiWzo6MV0i
KQpAQCAtMTMwLDExICsxMzEsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdEFzUG90ZW50aW9u
YWxseVRyCiAgICAgaWYgKFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzU2Vj
dXJlKHVybC5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgaWYgKGlzTG9vcGJhY2tJUEFkZHJlc3ModXJsKSkKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0KLSAgICAvLyBGSVhNRTogRW5zdXJlIHRoYXQgbG9jYWxob3N0IHJlc29s
dmVzIHRvIHRoZSBsb29wYmFjayBhZGRyZXNzLgotICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmlu
Z0FTQ0lJQ2FzZSh1cmwuaG9zdCgpLCAibG9jYWxob3N0IikpCisgICAgaWYgKFNlY3VyaXR5T3Jp
Z2luOjppc0xvY2FsSG9zdE9yTG9vcGJhY2tJUEFkZHJlc3ModXJsKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKICAgICBpZiAoU2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNM
b2NhbCh1cmwucHJvdG9jb2woKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpKQpAQCAtNTg3LDQg
KzU4NCwxNiBAQCBVUkwgU2VjdXJpdHlPcmlnaW46OnVybFdpdGhVbmlxdWVTZWN1cml0CiAgICAg
cmV0dXJuIHVuaXF1ZVNlY3VyaXR5T3JpZ2luVVJMOwogfQogCitib29sIFNlY3VyaXR5T3JpZ2lu
Ojppc0xvY2FsSG9zdE9yTG9vcGJhY2tJUEFkZHJlc3MoY29uc3QgVVJMJiB1cmwpCit7CisgICAg
aWYgKGlzTG9vcGJhY2tJUEFkZHJlc3ModXJsKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICAvLyBGSVhNRTogRW5zdXJlIHRoYXQgbG9jYWxob3N0IHJlc29sdmVzIHRvIHRoZSBsb29wYmFj
ayBhZGRyZXNzLgorICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh1cmwuaG9z
dCgpLCAibG9jYWxob3N0IikpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGZh
bHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1NlY3VyaXR5T3JpZ2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9T
ZWN1cml0eU9yaWdpbi5oCShyZXZpc2lvbiAyMjA3NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L1NlY3VyaXR5T3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwMiw2ICsyMDIsOCBAQCBwdWJs
aWM6CiAKICAgICBib29sIGlzUG90ZW50aW9uYWxseVRydXN0d29ydGh5KCkgY29uc3QgeyByZXR1
cm4gbV9pc1BvdGVudGlvbmFsbHlUcnVzdHdvcnRoeTsgfQogCisgICAgc3RhdGljIGJvb2wgaXNM
b2NhbEhvc3RPckxvb3BiYWNrSVBBZGRyZXNzKGNvbnN0IFVSTCYpOworCiBwcml2YXRlOgogICAg
IFNlY3VyaXR5T3JpZ2luKCk7CiAgICAgZXhwbGljaXQgU2VjdXJpdHlPcmlnaW4oY29uc3QgVVJM
Jik7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjA3NjEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0wOC0xNSAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBDb25zaWRlciBhbGxvdyBnVU0g
dG8gYmUgY2FsbGVkIGZyb20gbG9jYWxob3N0IHdpdGhvdXQgaHR0cHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzQ1NworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzM5MDA1Mjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2dldC11c2VyLW1lZGlh
LWxvY2FsaG9zdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc3RyZWFtL2dldC11c2VyLW1lZGlhLWxvY2FsaG9zdC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtdXNlci1tZWRpYS1sb29w
YmFjay1pcC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc3RyZWFtL2dldC11c2VyLW1lZGlhLWxvb3BiYWNrLWlwLmh0bWw6IEFkZGVkLgorCiAy
MDE3LTA4LTE1ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAg
IE1hcmsgaHR0cC90ZXN0cy9hcHBjYWNoZS9kZWZlcnJlZC1ldmVudHMtZGVsZXRlLXdoaWxlLXJh
aXNpbmctdGltZXIuaHRtbCBhcyBmbGFreS4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc3RyZWFtL2dldC11c2VyLW1lZGlhLWxvY2FsaG9zdC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0v
Z2V0LXVzZXItbWVkaWEtbG9jYWxob3N0LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtdXNlci1tZWRpYS1s
b2NhbGhvc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK1Rl
c3RzIHRoYXQgZ2V0VXNlck1lZGlhIGlzIGFsbG93ZWQgZnJvbSBsb2NhbGhvc3Qgd2hlbiBzZWN1
cmUgY29ubmVjdGlvbiBpcyByZXF1aXJlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgZ2V0VXNlck1lZGlhIHN1Y2NlZWRlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc3RyZWFtL2dldC11c2VyLW1lZGlhLWxvY2FsaG9zdC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2dldC11c2Vy
LW1lZGlhLWxvY2FsaG9zdC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2dldC11c2VyLW1lZGlhLWxvY2FsaG9zdC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorCisgICAgICAgICAgICB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRNZWRpYUNhcHR1cmVSZXF1
aXJlc1NlY3VyZUNvbm5lY3Rpb24odHJ1ZSk7CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgaWYgKGxvY2F0aW9uLmhvc3RuYW1lICE9ICJsb2NhbGhvc3QiKQorICAg
ICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IGAke2xvY2F0aW9uLnByb3RvY29sfS8vbG9j
YWxob3N0OiR7bG9jYXRpb24ucG9ydH0ke2xvY2F0aW9uLnBhdGhuYW1lfWA7CisgICAgICAgICAg
ICBlbHNlIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIs
IGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGF3YWl0IHdpbmRvdy5uYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRp
YSh7YXVkaW86dHJ1ZX0pOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiZ2V0
VXNlck1lZGlhIHN1Y2NlZWRlZCIpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGVycikg
eworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChgZ2V0VXNlck1lZGlhIHNob3Vs
ZCBoYXZlIHN1Y2NlZWRlZCBidXQgZmFpbGVkIHdpdGggZXJyb3IgIiR7ZXJyfSJgKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkZXNjcmlw
dGlvbigiVGVzdHMgdGhhdCBnZXRVc2VyTWVkaWEgaXMgYWxsb3dlZCBmcm9tIGxvY2FsaG9zdCB3
aGVuIHNlY3VyZSBjb25uZWN0aW9uIGlzIHJlcXVpcmVkLiIpOworICAgICAgICA8L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtdXNlci1tZWRpYS1sb29wYmFjay1p
cC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zdHJlYW0vZ2V0LXVzZXItbWVkaWEtbG9vcGJhY2staXAtZXhwZWN0ZWQudHh0CShu
b25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFt
L2dldC11c2VyLW1lZGlhLWxvb3BiYWNrLWlwLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGdldFVzZXJNZWRpYSBpcyBhbGxvd2VkIGZyb20g
dGhlIGxvb3BiYWNrIElQIGFkZHJlc3Mgd2hlbiBzZWN1cmUgY29ubmVjdGlvbiBpcyByZXF1aXJl
ZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZ2V0VXNlck1lZGlhIHN1
Y2NlZWRlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2dldC11
c2VyLW1lZGlhLWxvb3BiYWNrLWlwLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LXVzZXItbWVkaWEtbG9vcGJhY2staXAuaHRt
bAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0
cmVhbS9nZXQtdXNlci1tZWRpYS1sb29wYmFjay1pcC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0PgorCisgICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24odHJ1ZSk7CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICAg
ICAgaWYgKGxvY2F0aW9uLnByb3RvY29sICE9ICJodHRwOiIgfHwgbG9jYXRpb24uaG9zdCAhPSAi
MTI3LjAuMC4xOjgwMDAiKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlRoaXMg
dGVzdCBtdXN0IGJlIHJ1biBmcm9tIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpOworICAgICAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAg
ICAgICAgIGF3YWl0IHdpbmRvdy5uYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7
YXVkaW86dHJ1ZX0pOworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJnZXRVc2VyTWVk
aWEgc3VjY2VlZGVkIik7CisgICAgICAgICAgICAgICAgfSBjYXRjaChlcnIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZChgZ2V0VXNlck1lZGlhIHNob3VsZCBoYXZlIHN1Y2NlZWRl
ZCBidXQgZmFpbGVkIHdpdGggZXJyb3IgIiR7ZXJyfSJgKTsKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBnZXRVc2VyTWVkaWEgaXMgYWxsb3dlZCBm
cm9tIHRoZSBsb29wYmFjayBJUCBhZGRyZXNzIHdoZW4gc2VjdXJlIGNvbm5lY3Rpb24gaXMgcmVx
dWlyZWQuIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+
CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>