<?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>170144</bug_id>
          
          <creation_ts>2017-03-27 15:12:27 -0700</creation_ts>
          <short_desc>webkitpy: Standardize web-server port definitions</short_desc>
          <delta_ts>2017-03-29 13:07:49 -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>Tools / Tests</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="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1291643</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-03-27 15:12:27 -0700</bug_when>
    <thetext>Currently, web-servers receive their ports through a mixture of global constants and hard-coded port values.  Make web-servers use global constants to determine default port values and provide a function listing all used ports so that tools can know which ports need to be managed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291644</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-03-27 15:12:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/31284026&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291648</commentid>
    <comment_count>2</comment_count>
      <attachid>305518</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-03-27 15:18:50 -0700</bug_when>
    <thetext>Created attachment 305518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291682</commentid>
    <comment_count>3</comment_count>
      <attachid>305518</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-03-27 16:52:52 -0700</bug_when>
    <thetext>Comment on attachment 305518
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/servers/apache_http_server.py:61
&gt; +            self._mappings = [{&apos;port&apos;: self.DEFAULT_PORTS[0]},
&gt; +                              {&apos;port&apos;: self.DEFAULT_PORTS[1]},
&gt; +                              {&apos;port&apos;: self.DEFAULT_PORTS[2], &apos;sslcert&apos;: True}]

It seems error prone to use an array to hold these ports numbers because the ordering of the array elements can affect the port used for the SSL port. I suggest we use named constants, say HTTP_SERVER_PORT, ALTERNATIVE_HTTP_SERVER_PORT and HTTPS_SERVER_PORT for 8000, 8080, and 8443, respectively.

&gt; Tools/Scripts/webkitpy/layout_tests/servers/http_server.py:81
&gt; +                {&apos;port&apos;: self.DEFAULT_PORTS[2], &apos;docroot&apos;: self._webkit_tests,
&gt;                   &apos;sslcert&apos;: self._pem_file}])

Similarly, this is error prone because the ordering of self.DEFAULT_PORTS[2] can affect which port we chose to use as the SSL port.

On another note, I do not understand what the purpose of self._root is in this class? We have similar code below to setup the port mapping that was not updated and hence still hardcodes the port numbers 8000, 8080, and 8443. Did you intend to keep such code as-is?

&gt; Tools/Scripts/webkitpy/port/base.py:942
&gt; +    def webserver_ports(self):

webserver =&gt; web_server

Web server is two words.

&gt; Tools/Scripts/webkitpy/port/base.py:992
&gt; +                                use_tls=True, port=Port.WEBSOCKET_PORT, private_key=private_key_file, certificate=certificate_file)

Maybe Port.WEBSOCKET_SERVER_PORT would be more descriptive?

Would it make sense to move the named constants for the HTTP server ports to the base port class given that the base port class has a named constant for the WebSocket server port?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291909</commentid>
    <comment_count>4</comment_count>
      <attachid>305518</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-03-28 09:12:16 -0700</bug_when>
    <thetext>Comment on attachment 305518
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/servers/http_server.py:81
&gt;&gt;                   &apos;sslcert&apos;: self._pem_file}])
&gt; 
&gt; Similarly, this is error prone because the ordering of self.DEFAULT_PORTS[2] can affect which port we chose to use as the SSL port.
&gt; 
&gt; On another note, I do not understand what the purpose of self._root is in this class? We have similar code below to setup the port mapping that was not updated and hence still hardcodes the port numbers 8000, 8080, and 8443. Did you intend to keep such code as-is?

I didn&apos;t see the port mapping code bellow.

I&apos;m not sure what the self._root is being used for.  It should definitely be adopting the constants, though.

&gt;&gt; Tools/Scripts/webkitpy/port/base.py:992
&gt;&gt; +                                use_tls=True, port=Port.WEBSOCKET_PORT, private_key=private_key_file, certificate=certificate_file)
&gt; 
&gt; Maybe Port.WEBSOCKET_SERVER_PORT would be more descriptive?
&gt; 
&gt; Would it make sense to move the named constants for the HTTP server ports to the base port class given that the base port class has a named constant for the WebSocket server port?

Actually, we should do the opposite.  PyWebSocket should own it&apos;s own constants.  In fact, it already does, they are just made private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291914</commentid>
    <comment_count>5</comment_count>
      <attachid>305596</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-03-28 09:16:07 -0700</bug_when>
    <thetext>Created attachment 305596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292387</commentid>
    <comment_count>6</comment_count>
      <attachid>305596</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-03-29 07:52:11 -0700</bug_when>
    <thetext>Comment on attachment 305596
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:104
&gt; +        result = []
&gt; +        for dict in self._mappings:
&gt; +            result.append(dict[&apos;port&apos;])
&gt; +        return result

We can use list comprehension to simplify this to:

return [dict[&apos;port&apos;] for dict in self._mappings]

&gt; Tools/Scripts/webkitpy/port/base.py:940
&gt; +    def web_server_ports(self):

Maybe a better name for this function would be ports_to_forward()?

&gt; Tools/Scripts/webkitpy/port/base.py:955
&gt; +        ports = []
&gt; +        port_from_options = self.get_option(&apos;http_port&apos;)
&gt; +        if port_from_options is not None:
&gt; +            ports.append(int(port_from_options))
&gt; +        else:
&gt; +            ports.extend([
&gt; +                http_server_base.HttpServerBase.HTTP_SERVER_PORT,
&gt; +                http_server_base.HttpServerBase.ALTERNATIVE_HTTP_SERVER_PORT,
&gt; +                http_server_base.HttpServerBase.HTTPS_SERVER_PORT,
&gt; +            ])
&gt; +        ports.extend([
&gt; +            websocket_server.PyWebSocket.DEFAULT_WS_PORT,
&gt; +            websocket_server.PyWebSocket.DEFAULT_WSS_PORT,
&gt; +        ])
&gt; +

This does not seem like the correct approach to use because it is fragile and duplicates logic for determining the ports that will be opened. The PyWebSocket class and HttpServerBase class or derived classes of it are the most knowledgeable about the ports they actually chose to open. I suggest that we expose a method on PyWebSocket and HttpServerBase called ports_to_forward() (I am open to name suggestions) that returns an array of the ports that were opened. In HttpServerBase, ports_to_forward() should raise a not implemented exception and the derived classes Lighttpd and LayoutTestApacheHttpd should override the base implementation. Then we can implement this function as:

ports = []
if self._http_server:
    ports.extend(self._http_server.ports_to_forward())
if self._websocket_server:
    ports.extend(self._websocket_server.ports_to_forward())
if self._websocket_secure_server:
    ports.extend(self._websocket_secure_server.ports_to_forward())
if self._web_platform_test_server:
    ports.extend(self._web_platform_test_server.ports_to_forward())
return ports</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292430</commentid>
    <comment_count>7</comment_count>
      <attachid>305749</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-03-29 09:30:22 -0700</bug_when>
    <thetext>Created attachment 305749
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292481</commentid>
    <comment_count>8</comment_count>
      <attachid>305749</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-03-29 10:55:59 -0700</bug_when>
    <thetext>Comment on attachment 305749
Patch

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

OK

&gt; Tools/ChangeLog:9
&gt; +        Default web-server ports should be declared in global variables.

Is this description up-to-date?

&gt; Tools/Scripts/webkitpy/layout_tests/servers/websocket_server.py:-48
&gt; -_DEFAULT_WSS_PORT = 9323

I am assuming that this was unused before his patch as I did not see any caller updated in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292502</commentid>
    <comment_count>9</comment_count>
      <attachid>305767</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-03-29 12:01:33 -0700</bug_when>
    <thetext>Created attachment 305767
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292532</commentid>
    <comment_count>10</comment_count>
      <attachid>305767</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-29 13:07:46 -0700</bug_when>
    <thetext>Comment on attachment 305767
Patch for landing

Clearing flags on attachment: 305767

Committed r214558: &lt;http://trac.webkit.org/changeset/214558&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292533</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-29 13:07:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305518</attachid>
            <date>2017-03-27 15:18:50 -0700</date>
            <delta_ts>2017-03-28 09:16:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170144-20170327151849.patch</filename>
            <type>text/plain</type>
            <size>8417</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNDQzMikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDE3LTAzLTI3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogU3RhbmRhcmRpemUgd2ViLXNlcnZlciBwb3J0IGRlZmlu
aXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzAxNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBE
ZWZhdWx0IHdlYi1zZXJ2ZXIgcG9ydHMgc2hvdWxkIGJlIGRlY2xhcmVkIGluIGdsb2JhbCB2YXJp
YWJsZXMuCisgICAgICAgIFByb3ZpZGUgYSBmdW5jdGlvbiB3aGljaCBsaXN0cyBhbGwgcG9ydHMg
Y3VycmVudGx5IHVzZWQgYnkgd2ViIHNlcnZlcnMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRwX3NlcnZlci5weToKKyAgICAgICAg
KExheW91dFRlc3RBcGFjaGVIdHRwZC5fX2luaXRfXyk6IFVzZSBzaGFyZWQgY29uc3RhbnRzIGlu
IGh0dHBfc2VydmVyX2Jhc2UucHkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvc2VydmVycy9odHRwX3NlcnZlci5weToKKyAgICAgICAgKExpZ2h0dHBkLl9faW5pdF9f
KTogVXNlIHNoYXJlZCBjb25zdGFudHMgaW4gaHR0cF9zZXJ2ZXJfYmFzZS5weS4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2h0dHBfc2VydmVyX2Jhc2Uu
cHk6CisgICAgICAgIChIdHRwU2VydmVyQmFzZSk6IEFkZCBzaGFyZWQgREVGQVVMVF9QT1JUUyBj
b25zdGFudC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJz
L3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weToKKyAgICAgICAgKFdlYlBsYXRmb3JtVGVzdFNl
cnZlci5wb3J0cyk6IEFkZCBmdW5jdGlvbiB0byByZXR1cm4gcG9ydHMgdXNlZCBmb3Igd2ViLXBs
YXRmb3JtIHRlc3RzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5Ogor
ICAgICAgICAoUG9ydCk6IEFkZCBXRUJTT0NLRVRfUE9SVCBjb25zdGFudC4KKyAgICAgICAgKFBv
cnQudG8ud2Vic2VydmVyX3BvcnRzKTogUmV0dXJuIGFsbCBwb3J0cyB1c2VkIHRoZSB2YXJpb3Vz
IHdlYi1zZXJ2ZXJzIG1hbmFnZWQgYnkgdGhlIHBvcnQgb2JqZWN0LgorICAgICAgICAoUG9ydC50
by5zdGFydF93ZWJzb2NrZXRfc2VydmVyKTogVXNlIFdFQlNPQ0tFVF9QT1JUIGNvbnN0YW50IG92
ZXIgaGFyZC1jb2RlZCBpbnRlZ2VyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9i
YXNlX3VuaXR0ZXN0LnB5OiAKKyAgICAgICAgKFBvcnRUZXN0LnRlc3Rfd2Vic2VydmVyX3BvcnRz
KTogQ2hlY2sgdmFsdWUgb2YgcG9ydHMgZGV0ZXJtaW5lZCBieSBjb25zdGFudHMuCisKIDIwMTct
MDMtMjcgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIHdl
YmtpdHB5OiBMb29rIGZvciAnaW9zJyB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgSU9TUG9ydHMKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvYXBhY2hlX2h0
dHBfc2VydmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3NlcnZlcnMvYXBhY2hlX2h0dHBfc2VydmVyLnB5CShyZXZpc2lvbiAyMTQ0MzIpCisr
KyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRw
X3NlcnZlci5weQkod29ya2luZyBjb3B5KQpAQCAtNTYsOSArNTYsOSBAQCBjbGFzcyBMYXlvdXRU
ZXN0QXBhY2hlSHR0cGQoaHR0cF9zZXJ2ZXJfCiAgICAgICAgIGlmIHNlbGYuX3BvcnQgaXMgbm90
IE5vbmU6CiAgICAgICAgICAgICBzZWxmLl9tYXBwaW5ncyA9IFt7J3BvcnQnOiBzZWxmLl9wb3J0
fV0KICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX21hcHBpbmdzID0gW3sncG9ydCc6
IDgwMDB9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydwb3J0JzogODA4MH0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J3BvcnQnOiA4NDQzLCAnc3NsY2VydCc6IFRy
dWV9XQorICAgICAgICAgICAgc2VsZi5fbWFwcGluZ3MgPSBbeydwb3J0Jzogc2VsZi5ERUZBVUxU
X1BPUlRTWzBdfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsncG9ydCc6IHNlbGYu
REVGQVVMVF9QT1JUU1sxXX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J3BvcnQn
OiBzZWxmLkRFRkFVTFRfUE9SVFNbMl0sICdzc2xjZXJ0JzogVHJ1ZX1dCiAgICAgICAgIHNlbGYu
X291dHB1dF9kaXIgPSBvdXRwdXRfZGlyCiAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ubWF5YmVf
bWFrZV9kaXJlY3Rvcnkob3V0cHV0X2RpcikKIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZlci5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2h0dHBfc2VydmVyLnB5CShy
ZXZpc2lvbiAyMTQ0MzIpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9z
ZXJ2ZXJzL2h0dHBfc2VydmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC03NSw5ICs3NSw5IEBAIGNs
YXNzIExpZ2h0dHBkKGh0dHBfc2VydmVyX2Jhc2UuSHR0cFNlcnYKICAgICAgICAgaWYgc2VsZi5f
d2Via2l0X3Rlc3RzOgogICAgICAgICAgICAgc2VsZi5WSVJUVUFMQ09ORklHLmV4dGVuZCgKICAg
ICAgICAgICAgICAgICMgVGhyZWUgbWFwcGluZ3MgKG9uZSB3aXRoIFNTTCkgZm9yIExheW91dFRl
c3RzIGh0dHAgdGVzdHMKLSAgICAgICAgICAgICAgIFt7J3BvcnQnOiA4MDAwLCAnZG9jcm9vdCc6
IHNlbGYuX3dlYmtpdF90ZXN0c30sCi0gICAgICAgICAgICAgICAgeydwb3J0JzogODA4MCwgJ2Rv
Y3Jvb3QnOiBzZWxmLl93ZWJraXRfdGVzdHN9LAotICAgICAgICAgICAgICAgIHsncG9ydCc6IDg0
NDMsICdkb2Nyb290Jzogc2VsZi5fd2Via2l0X3Rlc3RzLAorICAgICAgICAgICAgICAgW3sncG9y
dCc6IHNlbGYuREVGQVVMVF9QT1JUU1swXSwgJ2RvY3Jvb3QnOiBzZWxmLl93ZWJraXRfdGVzdHN9
LAorICAgICAgICAgICAgICAgIHsncG9ydCc6IHNlbGYuREVGQVVMVF9QT1JUU1sxXSwgJ2RvY3Jv
b3QnOiBzZWxmLl93ZWJraXRfdGVzdHN9LAorICAgICAgICAgICAgICAgIHsncG9ydCc6IHNlbGYu
REVGQVVMVF9QT1JUU1syXSwgJ2RvY3Jvb3QnOiBzZWxmLl93ZWJraXRfdGVzdHMsCiAgICAgICAg
ICAgICAgICAgICdzc2xjZXJ0Jzogc2VsZi5fcGVtX2ZpbGV9XSkKIAogICAgIGRlZiBfcHJlcGFy
ZV9jb25maWcoc2VsZik6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9zZXJ2ZXJzL2h0dHBfc2VydmVyX2Jhc2UucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZlcl9iYXNlLnB5CShyZXZp
c2lvbiAyMTQ0MzIpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2
ZXJzL2h0dHBfc2VydmVyX2Jhc2UucHkJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDggQEAg
Y2xhc3MgU2VydmVyRXJyb3IoRXhjZXB0aW9uKToKIGNsYXNzIEh0dHBTZXJ2ZXJCYXNlKG9iamVj
dCk6CiAgICAgIiIiQSBza2VsZXRvbiBjbGFzcyBmb3Igc3RhcnRpbmcgYW5kIHN0b3BwaW5nIHNl
cnZlcnMgdXNlZCBieSB0aGUgbGF5b3V0IHRlc3RzLiIiIgogCisgICAgREVGQVVMVF9QT1JUUyA9
IFs4MDAwLCA4MDgwLCA4NDQzXQorCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfb2JqKToK
ICAgICAgICAgc2VsZi5fZXhlY3V0aXZlID0gcG9ydF9vYmouX2V4ZWN1dGl2ZQogICAgICAgICBz
ZWxmLl9maWxlc3lzdGVtID0gcG9ydF9vYmouX2ZpbGVzeXN0ZW0KSW5kZXg6IFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVy
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Nl
cnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5CShyZXZpc2lvbiAyMTQ0MzIpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90
ZXN0X3NlcnZlci5weQkod29ya2luZyBjb3B5KQpAQCAtOTcsNiArOTcsMTIgQEAgY2xhc3MgV2Vi
UGxhdGZvcm1UZXN0U2VydmVyKGh0dHBfc2VydmVyXwogICAgICAgICAgICAgICAgICAgICAgICAg
cG9ydFsic3NsY2VydCJdID0gVHJ1ZQogICAgICAgICAgICAgICAgICAgICBzZWxmLl9tYXBwaW5n
cy5hcHBlbmQocG9ydCkKIAorICAgIGRlZiBwb3J0cyhzZWxmKToKKyAgICAgICAgcmVzdWx0ID0g
W10KKyAgICAgICAgZm9yIGRpY3QgaW4gc2VsZi5fbWFwcGluZ3M6CisgICAgICAgICAgICByZXN1
bHQuYXBwZW5kKGRpY3RbJ3BvcnQnXSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorCiAgICAgZGVm
IF9pbnN0YWxsX21vZHVsZXMoc2VsZik6CiAgICAgICAgIG1vZHVsZXNfZmlsZV9wYXRoID0gc2Vs
Zi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX2RvY19yb290X3BhdGgsICIuLiIsICJyZXNvdXJjZXMi
LCAid2ViLXBsYXRmb3JtLXRlc3RzLW1vZHVsZXMuanNvbiIpCiAgICAgICAgIGlmIG5vdCBzZWxm
Ll9maWxlc3lzdGVtLmlzZmlsZShtb2R1bGVzX2ZpbGVfcGF0aCk6CkluZGV4OiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvYmFzZS5weQkocmV2aXNpb24gMjE0NDMyKQorKysgVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2Jhc2UucHkJKHdvcmtpbmcgY29weSkKQEAgLTU3LDggKzU3LDcgQEAgZnJv
bSB3ZWJraXRweS5wb3J0IGltcG9ydCBkcml2ZXIKIGZyb20gd2Via2l0cHkucG9ydCBpbXBvcnQg
aW1hZ2VfZGlmZgogZnJvbSB3ZWJraXRweS5wb3J0IGltcG9ydCBzZXJ2ZXJfcHJvY2VzcwogZnJv
bSB3ZWJraXRweS5wb3J0LmZhY3RvcnkgaW1wb3J0IFBvcnRGYWN0b3J5Ci1mcm9tIHdlYmtpdHB5
LmxheW91dF90ZXN0cy5zZXJ2ZXJzIGltcG9ydCBhcGFjaGVfaHR0cF9zZXJ2ZXIKLWZyb20gd2Vi
a2l0cHkubGF5b3V0X3Rlc3RzLnNlcnZlcnMgaW1wb3J0IGh0dHBfc2VydmVyCitmcm9tIHdlYmtp
dHB5LmxheW91dF90ZXN0cy5zZXJ2ZXJzIGltcG9ydCBodHRwX3NlcnZlcl9iYXNlLCBhcGFjaGVf
aHR0cF9zZXJ2ZXIsIGh0dHBfc2VydmVyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5zZXJ2
ZXJzIGltcG9ydCB3ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIKIGZyb20gd2Via2l0cHkubGF5b3V0
X3Rlc3RzLnNlcnZlcnMgaW1wb3J0IHdlYnNvY2tldF9zZXJ2ZXIKIApAQCAtODMsNiArODIsOCBA
QCBjbGFzcyBQb3J0KG9iamVjdCk6CiAKICAgICBDVVNUT01fREVWSUNFX0NMQVNTRVMgPSBbXQog
CisgICAgV0VCU09DS0VUX1BPUlQgPSA5MzIzCisKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYg
ZGV0ZXJtaW5lX2Z1bGxfcG9ydF9uYW1lKGNscywgaG9zdCwgb3B0aW9ucywgcG9ydF9uYW1lKToK
ICAgICAgICAgIiIiUmV0dXJuIGEgZnVsbHktc3BlY2lmaWVkIHBvcnQgbmFtZSB0aGF0IGNhbiBi
ZSB1c2VkIHRvIGNvbnN0cnVjdCBvYmplY3RzLiIiIgpAQCAtOTM4LDYgKzkzOSwxOSBAQCBjbGFz
cyBQb3J0KG9iamVjdCk6CiAgICAgICAgIHN0b3JhZ2UsIGl0IHNob3VsZCBvdmVycmlkZSB0aGlz
IG1ldGhvZC4iIiIKICAgICAgICAgcGFzcwogCisgICAgZGVmIHdlYnNlcnZlcl9wb3J0cyhzZWxm
KToKKyAgICAgICAgcG9ydHMgPSBbXQorICAgICAgICBwb3J0X2Zyb21fb3B0aW9ucyA9IHNlbGYu
Z2V0X29wdGlvbignaHR0cF9wb3J0JykKKyAgICAgICAgaWYgcG9ydF9mcm9tX29wdGlvbnMgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICBwb3J0cy5hcHBlbmQoaW50KHBvcnRfZnJvbV9vcHRpb25z
KSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBvcnRzID0gaHR0cF9zZXJ2ZXJfYmFzZS5I
dHRwU2VydmVyQmFzZS5ERUZBVUxUX1BPUlRTCisgICAgICAgIHBvcnRzLmFwcGVuZChQb3J0LldF
QlNPQ0tFVF9QT1JUKQorCisgICAgICAgIGlmIHNlbGYuX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZl
cjoKKyAgICAgICAgICAgIHBvcnRzLmV4dGVuZChzZWxmLl93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2
ZXIucG9ydHMoKSkKKyAgICAgICAgcmV0dXJuIHBvcnRzCisKICAgICBkZWYgc3RhcnRfaHR0cF9z
ZXJ2ZXIoc2VsZiwgYWRkaXRpb25hbF9kaXJzPU5vbmUpOgogICAgICAgICAiIiJTdGFydCBhIHdl
YiBzZXJ2ZXIuIFJhaXNlIGFuIGVycm9yIGlmIGl0IGNhbid0IHN0YXJ0IG9yIGlzIGFscmVhZHkg
cnVubmluZy4KIApAQCAtOTc1LDcgKzk4OSw3IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAg
ICAgc2VsZi5fd2Vic29ja2V0X3NlcnZlcl90ZW1wb3JhcnlfZGlyZWN0b3J5ID0gd2Vic29ja2V0
X3NlcnZlcl90ZW1wb3JhcnlfZGlyZWN0b3J5CiAgICAgICAgIGlmIHNlbGYuX2V4dHJhY3RfY2Vy
dGlmaWNhdGVfZnJvbV9wZW0ocGVtX2ZpbGUsIGNlcnRpZmljYXRlX2ZpbGUpIGFuZCBzZWxmLl9l
eHRyYWN0X3ByaXZhdGVfa2V5X2Zyb21fcGVtKHBlbV9maWxlLCBwcml2YXRlX2tleV9maWxlKToK
ICAgICAgICAgICAgIHNlY3VyZV9zZXJ2ZXIgPSBzZWxmLl93ZWJzb2NrZXRfc2VjdXJlX3NlcnZl
ciA9IHdlYnNvY2tldF9zZXJ2ZXIuUHlXZWJTb2NrZXQoc2VsZiwgc2VsZi5yZXN1bHRzX2RpcmVj
dG9yeSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VfdGxzPVRydWUsIHBv
cnQ9OTMyMywgcHJpdmF0ZV9rZXk9cHJpdmF0ZV9rZXlfZmlsZSwgY2VydGlmaWNhdGU9Y2VydGlm
aWNhdGVfZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlX3Rscz1UcnVl
LCBwb3J0PVBvcnQuV0VCU09DS0VUX1BPUlQsIHByaXZhdGVfa2V5PXByaXZhdGVfa2V5X2ZpbGUs
IGNlcnRpZmljYXRlPWNlcnRpZmljYXRlX2ZpbGUpCiAgICAgICAgICAgICBzZWN1cmVfc2VydmVy
LnN0YXJ0KCkKICAgICAgICAgICAgIHNlbGYuX3dlYnNvY2tldF9zZWN1cmVfc2VydmVyID0gc2Vj
dXJlX3NlcnZlcgogCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZV91bml0
dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZV91
bml0dGVzdC5weQkocmV2aXNpb24gMjE0NDMyKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L2Jhc2VfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTM3MSw2ICszNzEsMTAgQEAg
Y2xhc3MgUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0Ll9idWlsZF9wYXRoKCksICcvbXktYnVpbGQtZGly
ZWN0b3J5L1JlbGVhc2UnKQogCisgICAgZGVmIHRlc3Rfd2Vic2VydmVyX3BvcnRzKHNlbGYpOgor
ICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQod2l0aF90ZXN0cz1UcnVlKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHBvcnQud2Vic2VydmVyX3BvcnRzKCksIFs4MDAwLCA4MDgwLCA4NDQz
LCA5MzIzXSkKKwogICAgIGRlZiB0ZXN0X2lzX3czY19yZXNvdXJjZV9maWxlKHNlbGYpOgogICAg
ICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQogICAgICAgICBwb3J0Lmhvc3QuZmlsZXN5c3Rl
bS53cml0ZV90ZXh0X2ZpbGUocG9ydC5sYXlvdXRfdGVzdHNfZGlyKCkgKyAiL2ltcG9ydGVkL3cz
Yy9yZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbiIsICIiIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305596</attachid>
            <date>2017-03-28 09:16:07 -0700</date>
            <delta_ts>2017-03-29 09:30:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170144-20170328091606.patch</filename>
            <type>text/plain</type>
            <size>10784</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNDQ3NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMxIEBACisyMDE3LTAzLTI4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogU3RhbmRhcmRpemUgd2ViLXNlcnZlciBwb3J0IGRlZmlu
aXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzAxNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBE
ZWZhdWx0IHdlYi1zZXJ2ZXIgcG9ydHMgc2hvdWxkIGJlIGRlY2xhcmVkIGluIGdsb2JhbCB2YXJp
YWJsZXMuCisgICAgICAgIFByb3ZpZGUgYSBmdW5jdGlvbiB3aGljaCBsaXN0cyBhbGwgcG9ydHMg
Y3VycmVudGx5IHVzZWQgYnkgd2ViIHNlcnZlcnMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRwX3NlcnZlci5weToKKyAgICAgICAg
KExheW91dFRlc3RBcGFjaGVIdHRwZC5fX2luaXRfXyk6IFVzZSBzaGFyZWQgY29uc3RhbnRzIGlu
IGh0dHBfc2VydmVyX2Jhc2UucHkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvc2VydmVycy9odHRwX3NlcnZlci5weToKKyAgICAgICAgKExpZ2h0dHBkLl9faW5pdF9f
KTogVXNlIHNoYXJlZCBjb25zdGFudHMgaW4gaHR0cF9zZXJ2ZXJfYmFzZS5weS4KKyAgICAgICAg
KExpZ2h0dHBkLl9wcmVwYXJlX2NvbmZpZyk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvaHR0cF9zZXJ2ZXJfYmFzZS5weToKKyAgICAgICAg
KEh0dHBTZXJ2ZXJCYXNlKTogQWRkIGRlZmF1bHQgcG9ydCBjb25zdGFudHMuCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVzdF9z
ZXJ2ZXIucHk6CisgICAgICAgICAoV2ViUGxhdGZvcm1UZXN0U2VydmVyLnBvcnRzKTogQWRkIGZ1
bmN0aW9uIHRvIHJldHVybiBwb3J0cyB1c2VkIGZvciB3ZWItcGxhdGZvcm0gdGVzdHMuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJzb2NrZXRfc2Vy
dmVyLnB5OgorICAgICAgICAoUHlXZWJTb2NrZXQpOiBNYWtlIGRlZmF1bHQgcG9ydCB2YWx1ZXMg
cHVibGljLgorICAgICAgICAoUHlXZWJTb2NrZXQuX19pbml0X18pOiBVc2UgcHVibGljIGRlZmF1
bHQgcG9ydC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weToKKyAgICAg
ICAgKFBvcnQudG8ud2ViX3NlcnZlcl9wb3J0cyk6IFJldHVybiBhbGwgcG9ydHMgdXNlZCB0aGUg
dmFyaW91cyB3ZWItc2VydmVycyBtYW5hZ2VkIGJ5IHRoZSBwb3J0IG9iamVjdC4KKyAgICAgICAg
KFBvcnQudG8uc3RhcnRfd2Vic29ja2V0X3NlcnZlcik6IFVzZSBQeVdlYlNvY2tldCBwb3J0IGNv
bnN0YW50cy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZV91bml0dGVzdC5w
eToKKyAgICAgICAgKFBvcnRUZXN0LnRlc3Rfd2Vic2VydmVyX3BvcnRzKTogQ2hlY2sgdmFsdWUg
b2YgcG9ydHMgZGV0ZXJtaW5lZCBieSBjb25zdGFudHMuCisKIDIwMTctMDMtMjggIEpvbmF0aGFu
IEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIHdlYmtpdHB5OiBVc2UgaG9z
dCBwYXR0ZXJuIGZvciBkZXZpY2VzCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRwX3NlcnZlci5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRwX3NlcnZl
ci5weQkocmV2aXNpb24gMjE0NDc0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvc2VydmVycy9hcGFjaGVfaHR0cF9zZXJ2ZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTU2
LDkgKzU2LDkgQEAgY2xhc3MgTGF5b3V0VGVzdEFwYWNoZUh0dHBkKGh0dHBfc2VydmVyXwogICAg
ICAgICBpZiBzZWxmLl9wb3J0IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc2VsZi5fbWFwcGlu
Z3MgPSBbeydwb3J0Jzogc2VsZi5fcG9ydH1dCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBz
ZWxmLl9tYXBwaW5ncyA9IFt7J3BvcnQnOiA4MDAwfSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsncG9ydCc6IDgwODB9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydw
b3J0JzogODQ0MywgJ3NzbGNlcnQnOiBUcnVlfV0KKyAgICAgICAgICAgIHNlbGYuX21hcHBpbmdz
ID0gW3sncG9ydCc6IHNlbGYuSFRUUF9TRVJWRVJfUE9SVH0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7J3BvcnQnOiBzZWxmLkFMVEVSTkFUSVZFX0hUVFBfU0VSVkVSX1BPUlR9LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydwb3J0Jzogc2VsZi5IVFRQU19TRVJWRVJf
UE9SVCwgJ3NzbGNlcnQnOiBUcnVlfV0KICAgICAgICAgc2VsZi5fb3V0cHV0X2RpciA9IG91dHB1
dF9kaXIKICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeShvdXRw
dXRfZGlyKQogCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2
ZXJzL2h0dHBfc2VydmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3NlcnZlcnMvaHR0cF9zZXJ2ZXIucHkJKHJldmlzaW9uIDIxNDQ3NCkKKysr
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvaHR0cF9zZXJ2ZXIu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTc1LDkgKzc1LDkgQEAgY2xhc3MgTGlnaHR0cGQoaHR0cF9z
ZXJ2ZXJfYmFzZS5IdHRwU2VydgogICAgICAgICBpZiBzZWxmLl93ZWJraXRfdGVzdHM6CiAgICAg
ICAgICAgICBzZWxmLlZJUlRVQUxDT05GSUcuZXh0ZW5kKAogICAgICAgICAgICAgICAgIyBUaHJl
ZSBtYXBwaW5ncyAob25lIHdpdGggU1NMKSBmb3IgTGF5b3V0VGVzdHMgaHR0cCB0ZXN0cwotICAg
ICAgICAgICAgICAgW3sncG9ydCc6IDgwMDAsICdkb2Nyb290Jzogc2VsZi5fd2Via2l0X3Rlc3Rz
fSwKLSAgICAgICAgICAgICAgICB7J3BvcnQnOiA4MDgwLCAnZG9jcm9vdCc6IHNlbGYuX3dlYmtp
dF90ZXN0c30sCi0gICAgICAgICAgICAgICAgeydwb3J0JzogODQ0MywgJ2RvY3Jvb3QnOiBzZWxm
Ll93ZWJraXRfdGVzdHMsCisgICAgICAgICAgICAgICBbeydwb3J0Jzogc2VsZi5IVFRQX1NFUlZF
Ul9QT1JULCAnZG9jcm9vdCc6IHNlbGYuX3dlYmtpdF90ZXN0c30sCisgICAgICAgICAgICAgICAg
eydwb3J0Jzogc2VsZi5BTFRFUk5BVElWRV9IVFRQX1NFUlZFUl9QT1JULCAnZG9jcm9vdCc6IHNl
bGYuX3dlYmtpdF90ZXN0c30sCisgICAgICAgICAgICAgICAgeydwb3J0Jzogc2VsZi5IVFRQU19T
RVJWRVJfUE9SVCwgJ2RvY3Jvb3QnOiBzZWxmLl93ZWJraXRfdGVzdHMsCiAgICAgICAgICAgICAg
ICAgICdzc2xjZXJ0Jzogc2VsZi5fcGVtX2ZpbGV9XSkKIAogICAgIGRlZiBfcHJlcGFyZV9jb25m
aWcoc2VsZik6CkBAIC0xNDMsOSArMTQzLDkgQEAgY2xhc3MgTGlnaHR0cGQoaHR0cF9zZXJ2ZXJf
YmFzZS5IdHRwU2VydgogCiAgICAgICAgICAgICAgICAgIyBkZWZhdWx0IHNldCBvZiBwb3J0cyBh
cyBmb3IgTGF5b3V0VGVzdHMgYnV0IHdpdGggYQogICAgICAgICAgICAgICAgICMgc3BlY2lmaWVk
IHJvb3QuCi0gICAgICAgICAgICAgICAgbWFwcGluZ3MgPSBbeydwb3J0JzogODAwMCwgJ2RvY3Jv
b3QnOiBzZWxmLl9yb290fSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J3BvcnQnOiA4
MDgwLCAnZG9jcm9vdCc6IHNlbGYuX3Jvb3R9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsncG9ydCc6IDg0NDMsICdkb2Nyb290Jzogc2VsZi5fcm9vdCwKKyAgICAgICAgICAgICAgICBt
YXBwaW5ncyA9IFt7J3BvcnQnOiBzZWxmLkhUVFBfU0VSVkVSX1BPUlQsICdkb2Nyb290Jzogc2Vs
Zi5fcm9vdH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydwb3J0Jzogc2VsZi5BTFRF
Uk5BVElWRV9IVFRQX1NFUlZFUl9QT1JULCAnZG9jcm9vdCc6IHNlbGYuX3Jvb3R9LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsncG9ydCc6IHNlbGYuSFRUUFNfU0VSVkVSX1BPUlQsICdk
b2Nyb290Jzogc2VsZi5fcm9vdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NzbGNl
cnQnOiBzZWxmLl9wZW1fZmlsZX1dCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBtYXBwaW5n
cyA9IHNlbGYuVklSVFVBTENPTkZJRwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZlcl9iYXNlLnB5Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvaHR0cF9zZXJ2ZXJfYmFzZS5w
eQkocmV2aXNpb24gMjE0NDc0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvc2VydmVycy9odHRwX3NlcnZlcl9iYXNlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0
NywxMCBAQCBjbGFzcyBTZXJ2ZXJFcnJvcihFeGNlcHRpb24pOgogY2xhc3MgSHR0cFNlcnZlckJh
c2Uob2JqZWN0KToKICAgICAiIiJBIHNrZWxldG9uIGNsYXNzIGZvciBzdGFydGluZyBhbmQgc3Rv
cHBpbmcgc2VydmVycyB1c2VkIGJ5IHRoZSBsYXlvdXQgdGVzdHMuIiIiCiAKKyAgICBIVFRQX1NF
UlZFUl9QT1JUID0gODAwMAorICAgIEFMVEVSTkFUSVZFX0hUVFBfU0VSVkVSX1BPUlQgPSA4MDgw
CisgICAgSFRUUFNfU0VSVkVSX1BPUlQgPSA4NDQzCisKICAgICBkZWYgX19pbml0X18oc2VsZiwg
cG9ydF9vYmopOgogICAgICAgICBzZWxmLl9leGVjdXRpdmUgPSBwb3J0X29iai5fZXhlY3V0aXZl
CiAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0gPSBwb3J0X29iai5fZmlsZXN5c3RlbQpJbmRleDog
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1f
dGVzdF9zZXJ2ZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIucHkJKHJldmlzaW9uIDIx
NDQ3NCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2Vi
X3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC05Nyw2ICs5NywxMiBA
QCBjbGFzcyBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIoaHR0cF9zZXJ2ZXJfCiAgICAgICAgICAgICAg
ICAgICAgICAgICBwb3J0WyJzc2xjZXJ0Il0gPSBUcnVlCiAgICAgICAgICAgICAgICAgICAgIHNl
bGYuX21hcHBpbmdzLmFwcGVuZChwb3J0KQogCisgICAgZGVmIHBvcnRzKHNlbGYpOgorICAgICAg
ICByZXN1bHQgPSBbXQorICAgICAgICBmb3IgZGljdCBpbiBzZWxmLl9tYXBwaW5nczoKKyAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoZGljdFsncG9ydCddKQorICAgICAgICByZXR1cm4gcmVzdWx0
CisKICAgICBkZWYgX2luc3RhbGxfbW9kdWxlcyhzZWxmKToKICAgICAgICAgbW9kdWxlc19maWxl
X3BhdGggPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fZG9jX3Jvb3RfcGF0aCwgIi4uIiwg
InJlc291cmNlcyIsICJ3ZWItcGxhdGZvcm0tdGVzdHMtbW9kdWxlcy5qc29uIikKICAgICAgICAg
aWYgbm90IHNlbGYuX2ZpbGVzeXN0ZW0uaXNmaWxlKG1vZHVsZXNfZmlsZV9wYXRoKToKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2Vic29ja2V0X3Nl
cnZlci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9zZXJ2ZXJzL3dlYnNvY2tldF9zZXJ2ZXIucHkJKHJldmlzaW9uIDIxNDQ3NCkKKysrIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2Vic29ja2V0X3NlcnZlci5w
eQkod29ya2luZyBjb3B5KQpAQCAtNDQsMTIgKzQ0LDExIEBAIF9XU19MT0dfTkFNRSA9ICdweXdl
YnNvY2tldC53cy5sb2cnCiBfV1NTX0xPR19OQU1FID0gJ3B5d2Vic29ja2V0Lndzcy5sb2cnCiAK
IAotX0RFRkFVTFRfV1NfUE9SVCA9IDg4ODAKLV9ERUZBVUxUX1dTU19QT1JUID0gOTMyMwotCi0K
IGNsYXNzIFB5V2ViU29ja2V0KGh0dHBfc2VydmVyLkxpZ2h0dHBkKToKLSAgICBkZWYgX19pbml0
X18oc2VsZiwgcG9ydF9vYmosIG91dHB1dF9kaXIsIHBvcnQ9X0RFRkFVTFRfV1NfUE9SVCwKKyAg
ICBERUZBVUxUX1dTX1BPUlQgPSA4ODgwCisgICAgREVGQVVMVF9XU1NfUE9SVCA9IDkzMjMKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X29iaiwgb3V0cHV0X2RpciwgcG9ydD1ERUZBVUxU
X1dTX1BPUlQsCiAgICAgICAgICAgICAgICAgIHJvb3Q9Tm9uZSwgdXNlX3Rscz1GYWxzZSwKICAg
ICAgICAgICAgICAgICAgcHJpdmF0ZV9rZXk9Tm9uZSwgY2VydGlmaWNhdGU9Tm9uZSwgY2FfY2Vy
dGlmaWNhdGU9Tm9uZSwKICAgICAgICAgICAgICAgICAgcGlkZmlsZT1Ob25lKToKQEAgLTU3LDcg
KzU2LDcgQEAgY2xhc3MgUHlXZWJTb2NrZXQoaHR0cF9zZXJ2ZXIuTGlnaHR0cGQpOgogICAgICAg
ICAgIG91dHB1dF9kaXI6IHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBsYXlvdXQgdGVzdCByZXN1
bHQgZGlyZWN0b3J5CiAgICAgICAgICIiIgogICAgICAgICBodHRwX3NlcnZlci5MaWdodHRwZC5f
X2luaXRfXyhzZWxmLCBwb3J0X29iaiwgb3V0cHV0X2RpciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcG9ydD1fREVGQVVMVF9XU19QT1JULAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwb3J0PVB5V2ViU29ja2V0LkRFRkFVTFRfV1NfUE9SVCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdD1yb290KQogICAgICAg
ICBzZWxmLl9vdXRwdXRfZGlyID0gb3V0cHV0X2RpcgogICAgICAgICBzZWxmLl9waWRfZmlsZSA9
IHBpZGZpbGUKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CShyZXZpc2lvbiAy
MTQ0NzQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQkod29ya2luZyBj
b3B5KQpAQCAtNTcsOCArNTcsNyBAQCBmcm9tIHdlYmtpdHB5LnBvcnQgaW1wb3J0IGRyaXZlcgog
ZnJvbSB3ZWJraXRweS5wb3J0IGltcG9ydCBpbWFnZV9kaWZmCiBmcm9tIHdlYmtpdHB5LnBvcnQg
aW1wb3J0IHNlcnZlcl9wcm9jZXNzCiBmcm9tIHdlYmtpdHB5LnBvcnQuZmFjdG9yeSBpbXBvcnQg
UG9ydEZhY3RvcnkKLWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnNlcnZlcnMgaW1wb3J0IGFw
YWNoZV9odHRwX3NlcnZlcgotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuc2VydmVycyBpbXBv
cnQgaHR0cF9zZXJ2ZXIKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnNlcnZlcnMgaW1wb3J0
IGh0dHBfc2VydmVyX2Jhc2UsIGFwYWNoZV9odHRwX3NlcnZlciwgaHR0cF9zZXJ2ZXIKIGZyb20g
d2Via2l0cHkubGF5b3V0X3Rlc3RzLnNlcnZlcnMgaW1wb3J0IHdlYl9wbGF0Zm9ybV90ZXN0X3Nl
cnZlcgogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuc2VydmVycyBpbXBvcnQgd2Vic29ja2V0
X3NlcnZlcgogCkBAIC05MzgsNiArOTM3LDI2IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAg
ICAgc3RvcmFnZSwgaXQgc2hvdWxkIG92ZXJyaWRlIHRoaXMgbWV0aG9kLiIiIgogICAgICAgICBw
YXNzCiAKKyAgICBkZWYgd2ViX3NlcnZlcl9wb3J0cyhzZWxmKToKKyAgICAgICAgcG9ydHMgPSBb
XQorICAgICAgICBwb3J0X2Zyb21fb3B0aW9ucyA9IHNlbGYuZ2V0X29wdGlvbignaHR0cF9wb3J0
JykKKyAgICAgICAgaWYgcG9ydF9mcm9tX29wdGlvbnMgaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICBwb3J0cy5hcHBlbmQoaW50KHBvcnRfZnJvbV9vcHRpb25zKSkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHBvcnRzLmV4dGVuZChbCisgICAgICAgICAgICAgICAgaHR0cF9zZXJ2ZXJfYmFz
ZS5IdHRwU2VydmVyQmFzZS5IVFRQX1NFUlZFUl9QT1JULAorICAgICAgICAgICAgICAgIGh0dHBf
c2VydmVyX2Jhc2UuSHR0cFNlcnZlckJhc2UuQUxURVJOQVRJVkVfSFRUUF9TRVJWRVJfUE9SVCwK
KyAgICAgICAgICAgICAgICBodHRwX3NlcnZlcl9iYXNlLkh0dHBTZXJ2ZXJCYXNlLkhUVFBTX1NF
UlZFUl9QT1JULAorICAgICAgICAgICAgXSkKKyAgICAgICAgcG9ydHMuZXh0ZW5kKFsKKyAgICAg
ICAgICAgIHdlYnNvY2tldF9zZXJ2ZXIuUHlXZWJTb2NrZXQuREVGQVVMVF9XU19QT1JULAorICAg
ICAgICAgICAgd2Vic29ja2V0X3NlcnZlci5QeVdlYlNvY2tldC5ERUZBVUxUX1dTU19QT1JULAor
ICAgICAgICBdKQorCisgICAgICAgIGlmIHNlbGYuX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcjoK
KyAgICAgICAgICAgIHBvcnRzLmV4dGVuZChzZWxmLl93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIu
cG9ydHMoKSkKKyAgICAgICAgcmV0dXJuIHBvcnRzCisKICAgICBkZWYgc3RhcnRfaHR0cF9zZXJ2
ZXIoc2VsZiwgYWRkaXRpb25hbF9kaXJzPU5vbmUpOgogICAgICAgICAiIiJTdGFydCBhIHdlYiBz
ZXJ2ZXIuIFJhaXNlIGFuIGVycm9yIGlmIGl0IGNhbid0IHN0YXJ0IG9yIGlzIGFscmVhZHkgcnVu
bmluZy4KIApAQCAtOTc1LDcgKzk5NCw3IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAg
c2VsZi5fd2Vic29ja2V0X3NlcnZlcl90ZW1wb3JhcnlfZGlyZWN0b3J5ID0gd2Vic29ja2V0X3Nl
cnZlcl90ZW1wb3JhcnlfZGlyZWN0b3J5CiAgICAgICAgIGlmIHNlbGYuX2V4dHJhY3RfY2VydGlm
aWNhdGVfZnJvbV9wZW0ocGVtX2ZpbGUsIGNlcnRpZmljYXRlX2ZpbGUpIGFuZCBzZWxmLl9leHRy
YWN0X3ByaXZhdGVfa2V5X2Zyb21fcGVtKHBlbV9maWxlLCBwcml2YXRlX2tleV9maWxlKToKICAg
ICAgICAgICAgIHNlY3VyZV9zZXJ2ZXIgPSBzZWxmLl93ZWJzb2NrZXRfc2VjdXJlX3NlcnZlciA9
IHdlYnNvY2tldF9zZXJ2ZXIuUHlXZWJTb2NrZXQoc2VsZiwgc2VsZi5yZXN1bHRzX2RpcmVjdG9y
eSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VfdGxzPVRydWUsIHBvcnQ9
OTMyMywgcHJpdmF0ZV9rZXk9cHJpdmF0ZV9rZXlfZmlsZSwgY2VydGlmaWNhdGU9Y2VydGlmaWNh
dGVfZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlX3Rscz1UcnVlLCBw
b3J0PXdlYnNvY2tldF9zZXJ2ZXIuUHlXZWJTb2NrZXQuREVGQVVMVF9XU1NfUE9SVCwgcHJpdmF0
ZV9rZXk9cHJpdmF0ZV9rZXlfZmlsZSwgY2VydGlmaWNhdGU9Y2VydGlmaWNhdGVfZmlsZSkKICAg
ICAgICAgICAgIHNlY3VyZV9zZXJ2ZXIuc3RhcnQoKQogICAgICAgICAgICAgc2VsZi5fd2Vic29j
a2V0X3NlY3VyZV9zZXJ2ZXIgPSBzZWN1cmVfc2VydmVyCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyMTQ0NzQpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZV91bml0dGVzdC5weQkod29ya2luZyBjb3B5
KQpAQCAtMzcxLDYgKzM3MSwxMCBAQCBjbGFzcyBQb3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuX2J1aWxk
X3BhdGgoKSwgJy9teS1idWlsZC1kaXJlY3RvcnkvUmVsZWFzZScpCiAKKyAgICBkZWYgdGVzdF93
ZWJzZXJ2ZXJfcG9ydHMoc2VsZik6CisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCh3aXRo
X3Rlc3RzPVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC53ZWJfc2VydmVyX3Bv
cnRzKCksIFs4MDAwLCA4MDgwLCA4NDQzLCA4ODgwLCA5MzIzXSkKKwogICAgIGRlZiB0ZXN0X2lz
X3czY19yZXNvdXJjZV9maWxlKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQo
KQogICAgICAgICBwb3J0Lmhvc3QuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2ZpbGUocG9ydC5sYXlv
dXRfdGVzdHNfZGlyKCkgKyAiL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMu
anNvbiIsICIiIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305749</attachid>
            <date>2017-03-29 09:30:22 -0700</date>
            <delta_ts>2017-03-29 12:01:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170144-20170329093022.patch</filename>
            <type>text/plain</type>
            <size>12454</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNDUzNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM2IEBACisyMDE3LTAzLTI5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogU3RhbmRhcmRpemUgd2ViLXNlcnZlciBwb3J0IGRlZmlu
aXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzAxNDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxMjg0MDI2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlZmF1bHQgd2ViLXNlcnZlciBwb3J0
cyBzaG91bGQgYmUgZGVjbGFyZWQgaW4gZ2xvYmFsIHZhcmlhYmxlcy4KKyAgICAgICAgUHJvdmlk
ZSBhIGZ1bmN0aW9uIHdoaWNoIGxpc3RzIGFsbCBwb3J0cyBjdXJyZW50bHkgdXNlZCBieSB3ZWIg
c2VydmVycy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZl
cnMvYXBhY2hlX2h0dHBfc2VydmVyLnB5OgorICAgICAgICAoTGF5b3V0VGVzdEFwYWNoZUh0dHBk
Ll9faW5pdF9fKTogVXNlIHNoYXJlZCBjb25zdGFudHMgaW4gaHR0cF9zZXJ2ZXJfYmFzZS5weS4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9o
dHRwX3NlcnZlcl91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RMYXlvdXRUZXN0QXBhY2hlSHR0
cGQudGVzdF9zdGFydF9jbWQpOiBDaGVjayBwb3J0X3RvX2ZvcndhcmQgZm9yIGV4cGVjdGVkIHZh
bHVlcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2h0
dHBfc2VydmVyLnB5OgorICAgICAgICAoTGlnaHR0cGQuX19pbml0X18pOiBVc2Ugc2hhcmVkIGNv
bnN0YW50cyBpbiBodHRwX3NlcnZlcl9iYXNlLnB5LgorICAgICAgICAoTGlnaHR0cGQuX3ByZXBh
cmVfY29uZmlnKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvc2VydmVycy9odHRwX3NlcnZlcl9iYXNlLnB5OgorICAgICAgICAoSHR0cFNlcnZlckJhc2Up
OiBBZGQgZGVmYXVsdCBwb3J0IGNvbnN0YW50cy4KKyAgICAgICAgKEh0dHBTZXJ2ZXJCYXNlLnBv
cnRzX3RvX2ZvcndhcmQpOiBBZGQgZnVuY3Rpb24gdG8gcmV0dXJuIHBvcnRzIHVzZWQgZm9yIGh0
dHAgc2VydmVyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZl
cnMvaHR0cF9zZXJ2ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0SHR0cFNlcnZlci50ZXN0
X3N0YXJ0X2NtZCk6IENoZWNrIHBvcnRfdG9fZm9yd2FyZCBmb3IgZXhwZWN0ZWQgdmFsdWVzLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRm
b3JtX3Rlc3Rfc2VydmVyLnB5OgorICAgICAgICAgKFdlYlBsYXRmb3JtVGVzdFNlcnZlci5wb3J0
c190b19mb3J3YXJkKTogQWRkIGZ1bmN0aW9uIHRvIHJldHVybiBwb3J0cyB1c2VkIGZvciB3ZWIt
cGxhdGZvcm0gdGVzdHMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
c2VydmVycy93ZWJzb2NrZXRfc2VydmVyLnB5OgorICAgICAgICAoUHlXZWJTb2NrZXQpOiBNYWtl
IGRlZmF1bHQgcG9ydCB2YWx1ZXMgcHVibGljLgorICAgICAgICAoUHlXZWJTb2NrZXQuX19pbml0
X18pOiBVc2UgcHVibGljIGRlZmF1bHQgcG9ydC4KKyAgICAgICAgKFB5V2ViU29ja2V0LnBvcnRz
X3RvX2ZvcndhcmQpOiBSZXR1cm4gcG9ydCB1c2VkIGluIGFuIGFycmF5LgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9ydC50by5wb3J0c190b19m
b3J3YXJkKTogUmV0dXJuIGFsbCBwb3J0cyB1c2VkIHRoZSB2YXJpb3VzIHdlYi1zZXJ2ZXJzIG1h
bmFnZWQgYnkgdGhlIHBvcnQgb2JqZWN0LgorICAgICAgICAoUG9ydC50by5zdGFydF93ZWJzb2Nr
ZXRfc2VydmVyKTogVXNlIFB5V2ViU29ja2V0IHBvcnQgY29uc3RhbnRzLgorCiAyMDE3LTAzLTI4
ICBKYXNvbiBNYXJjZWxsICA8am1hcmNlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBgaW5k
ZXgtZXhwZWN0ZWQudHh0YCBmb3IgZGFzaGJvYXJkIHRlc3QgcmVzdWx0cy4KSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvYXBhY2hlX2h0dHBfc2VydmVy
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Nl
cnZlcnMvYXBhY2hlX2h0dHBfc2VydmVyLnB5CShyZXZpc2lvbiAyMTQ1MzUpCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRwX3NlcnZlci5w
eQkod29ya2luZyBjb3B5KQpAQCAtNTYsOSArNTYsOSBAQCBjbGFzcyBMYXlvdXRUZXN0QXBhY2hl
SHR0cGQoaHR0cF9zZXJ2ZXJfCiAgICAgICAgIGlmIHNlbGYuX3BvcnQgaXMgbm90IE5vbmU6CiAg
ICAgICAgICAgICBzZWxmLl9tYXBwaW5ncyA9IFt7J3BvcnQnOiBzZWxmLl9wb3J0fV0KICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX21hcHBpbmdzID0gW3sncG9ydCc6IDgwMDB9LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydwb3J0JzogODA4MH0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7J3BvcnQnOiA4NDQzLCAnc3NsY2VydCc6IFRydWV9XQorICAg
ICAgICAgICAgc2VsZi5fbWFwcGluZ3MgPSBbeydwb3J0Jzogc2VsZi5IVFRQX1NFUlZFUl9QT1JU
fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsncG9ydCc6IHNlbGYuQUxURVJOQVRJ
VkVfSFRUUF9TRVJWRVJfUE9SVH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J3Bv
cnQnOiBzZWxmLkhUVFBTX1NFUlZFUl9QT1JULCAnc3NsY2VydCc6IFRydWV9XQogICAgICAgICBz
ZWxmLl9vdXRwdXRfZGlyID0gb3V0cHV0X2RpcgogICAgICAgICBzZWxmLl9maWxlc3lzdGVtLm1h
eWJlX21ha2VfZGlyZWN0b3J5KG91dHB1dF9kaXIpCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvYXBhY2hlX2h0dHBfc2VydmVyX3VuaXR0ZXN0LnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZl
cnMvYXBhY2hlX2h0dHBfc2VydmVyX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyMTQ1MzUpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRwX3Nl
cnZlcl91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsOSBAQCBjbGFzcyBU
ZXN0TGF5b3V0VGVzdEFwYWNoZUh0dHBkKHVuaXR0ZXN0CiAgICAgICAgIHNlcnZlci5fY2hlY2tf
dGhhdF9hbGxfcG9ydHNfYXJlX2F2YWlsYWJsZSA9IGxhbWJkYTogVHJ1ZQogICAgICAgICBzZXJ2
ZXIuX2lzX3NlcnZlcl9ydW5uaW5nX29uX2FsbF9wb3J0cyA9IGxhbWJkYTogVHJ1ZQogICAgICAg
ICBzZXJ2ZXIuX3dhaXRfZm9yX2FjdGlvbiA9IGZha2VfcGlkCisKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZXJ2ZXIucG9ydHNfdG9fZm9yd2FyZCgpLCBbODAwMCwgODA4MCwgODQ0M10pCisK
ICAgICAgICAgb2MgPSBPdXRwdXRDYXB0dXJlKCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAg
b2MuY2FwdHVyZV9vdXRwdXQoKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvc2VydmVycy9odHRwX3NlcnZlci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2h0dHBfc2VydmVyLnB5CShyZXZpc2lvbiAy
MTQ1MzUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2h0
dHBfc2VydmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC03NSw5ICs3NSw5IEBAIGNsYXNzIExpZ2h0
dHBkKGh0dHBfc2VydmVyX2Jhc2UuSHR0cFNlcnYKICAgICAgICAgaWYgc2VsZi5fd2Via2l0X3Rl
c3RzOgogICAgICAgICAgICAgc2VsZi5WSVJUVUFMQ09ORklHLmV4dGVuZCgKICAgICAgICAgICAg
ICAgICMgVGhyZWUgbWFwcGluZ3MgKG9uZSB3aXRoIFNTTCkgZm9yIExheW91dFRlc3RzIGh0dHAg
dGVzdHMKLSAgICAgICAgICAgICAgIFt7J3BvcnQnOiA4MDAwLCAnZG9jcm9vdCc6IHNlbGYuX3dl
YmtpdF90ZXN0c30sCi0gICAgICAgICAgICAgICAgeydwb3J0JzogODA4MCwgJ2RvY3Jvb3QnOiBz
ZWxmLl93ZWJraXRfdGVzdHN9LAotICAgICAgICAgICAgICAgIHsncG9ydCc6IDg0NDMsICdkb2Ny
b290Jzogc2VsZi5fd2Via2l0X3Rlc3RzLAorICAgICAgICAgICAgICAgW3sncG9ydCc6IHNlbGYu
SFRUUF9TRVJWRVJfUE9SVCwgJ2RvY3Jvb3QnOiBzZWxmLl93ZWJraXRfdGVzdHN9LAorICAgICAg
ICAgICAgICAgIHsncG9ydCc6IHNlbGYuQUxURVJOQVRJVkVfSFRUUF9TRVJWRVJfUE9SVCwgJ2Rv
Y3Jvb3QnOiBzZWxmLl93ZWJraXRfdGVzdHN9LAorICAgICAgICAgICAgICAgIHsncG9ydCc6IHNl
bGYuSFRUUFNfU0VSVkVSX1BPUlQsICdkb2Nyb290Jzogc2VsZi5fd2Via2l0X3Rlc3RzLAogICAg
ICAgICAgICAgICAgICAnc3NsY2VydCc6IHNlbGYuX3BlbV9maWxlfV0pCiAKICAgICBkZWYgX3By
ZXBhcmVfY29uZmlnKHNlbGYpOgpAQCAtMTQzLDkgKzE0Myw5IEBAIGNsYXNzIExpZ2h0dHBkKGh0
dHBfc2VydmVyX2Jhc2UuSHR0cFNlcnYKIAogICAgICAgICAgICAgICAgICMgZGVmYXVsdCBzZXQg
b2YgcG9ydHMgYXMgZm9yIExheW91dFRlc3RzIGJ1dCB3aXRoIGEKICAgICAgICAgICAgICAgICAj
IHNwZWNpZmllZCByb290LgotICAgICAgICAgICAgICAgIG1hcHBpbmdzID0gW3sncG9ydCc6IDgw
MDAsICdkb2Nyb290Jzogc2VsZi5fcm9vdH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
eydwb3J0JzogODA4MCwgJ2RvY3Jvb3QnOiBzZWxmLl9yb290fSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7J3BvcnQnOiA4NDQzLCAnZG9jcm9vdCc6IHNlbGYuX3Jvb3QsCisgICAgICAg
ICAgICAgICAgbWFwcGluZ3MgPSBbeydwb3J0Jzogc2VsZi5IVFRQX1NFUlZFUl9QT1JULCAnZG9j
cm9vdCc6IHNlbGYuX3Jvb3R9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsncG9ydCc6
IHNlbGYuQUxURVJOQVRJVkVfSFRUUF9TRVJWRVJfUE9SVCwgJ2RvY3Jvb3QnOiBzZWxmLl9yb290
fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J3BvcnQnOiBzZWxmLkhUVFBTX1NFUlZF
Ul9QT1JULCAnZG9jcm9vdCc6IHNlbGYuX3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdzc2xjZXJ0Jzogc2VsZi5fcGVtX2ZpbGV9XQogICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgbWFwcGluZ3MgPSBzZWxmLlZJUlRVQUxDT05GSUcKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvaHR0cF9zZXJ2ZXJfYmFzZS5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2h0dHBfc2Vy
dmVyX2Jhc2UucHkJKHJldmlzaW9uIDIxNDUzNSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3NlcnZlcnMvaHR0cF9zZXJ2ZXJfYmFzZS5weQkod29ya2luZyBjb3B5KQpA
QCAtNDcsNiArNDcsMTAgQEAgY2xhc3MgU2VydmVyRXJyb3IoRXhjZXB0aW9uKToKIGNsYXNzIEh0
dHBTZXJ2ZXJCYXNlKG9iamVjdCk6CiAgICAgIiIiQSBza2VsZXRvbiBjbGFzcyBmb3Igc3RhcnRp
bmcgYW5kIHN0b3BwaW5nIHNlcnZlcnMgdXNlZCBieSB0aGUgbGF5b3V0IHRlc3RzLiIiIgogCisg
ICAgSFRUUF9TRVJWRVJfUE9SVCA9IDgwMDAKKyAgICBBTFRFUk5BVElWRV9IVFRQX1NFUlZFUl9Q
T1JUID0gODA4MAorICAgIEhUVFBTX1NFUlZFUl9QT1JUID0gODQ0MworCiAgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHBvcnRfb2JqKToKICAgICAgICAgc2VsZi5fZXhlY3V0aXZlID0gcG9ydF9vYmou
X2V4ZWN1dGl2ZQogICAgICAgICBzZWxmLl9maWxlc3lzdGVtID0gcG9ydF9vYmouX2ZpbGVzeXN0
ZW0KQEAgLTY4LDYgKzcyLDkgQEAgY2xhc3MgSHR0cFNlcnZlckJhc2Uob2JqZWN0KToKICAgICAg
ICAgc2VsZi5fcnVudGltZV9wYXRoID0gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHRtcGRpciwgIldl
YktpdCIpCiAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9kaXJlY3Rvcnkoc2Vs
Zi5fcnVudGltZV9wYXRoKQogCisgICAgZGVmIHBvcnRzX3RvX2ZvcndhcmQoc2VsZik6CisgICAg
ICAgIHJldHVybiBbbWFwcGluZ1sncG9ydCddIGZvciBtYXBwaW5nIGluIHNlbGYuX21hcHBpbmdz
XQorCiAgICAgZGVmIHN0YXJ0KHNlbGYpOgogICAgICAgICAiIiJTdGFydHMgdGhlIHNlcnZlci4g
SXQgaXMgYW4gZXJyb3IgdG8gc3RhcnQgYW4gYWxyZWFkeSBzdGFydGVkIHNlcnZlci4KIApJbmRl
eDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZl
cl91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9zZXJ2ZXJzL2h0dHBfc2VydmVyX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyMTQ1MzUp
CisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2h0dHBfc2Vy
dmVyX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1Niw3IEBAIGNsYXNzIFRl
c3RIdHRwU2VydmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIvbW9jay9vbmUtYWRkaXRpb25hbC1kaXIiOiAiL21vY2stY2hlY2tvdXQvb25lLWFk
ZGl0aW9uYWwtZGlyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvbW9jay9hbm90
aGVyLWFkZGl0aW9uYWwtZGlyIjogIi9tb2NrLWNoZWNrb3V0L29uZS1hZGRpdGlvbmFsLWRpciJ9
KQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTZXJ2ZXJFcnJvciwgc2VydmVyLnN0YXJ0KQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcnZlci5wb3J0c190b19mb3J3YXJkKCksIFs4MDAw
LCA4MDgwLCA4NDQzXSkKIAogICAgICAgICBjb25maWdfZmlsZSA9IGhvc3QuZmlsZXN5c3RlbS5y
ZWFkX3RleHRfZmlsZSgiL21vY2svb3V0cHV0X2Rpci9saWdodHRwZC5jb25mIikKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChyZS5maW5kYWxsKHIiYWxpYXMudXJsLisiLCBjb25maWdfZmlsZSks
IFsKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2Vi
X3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5CShy
ZXZpc2lvbiAyMTQ1MzUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9z
ZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weQkod29ya2luZyBjb3B5KQpAQCAtOTcs
NiArOTcsOSBAQCBjbGFzcyBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIoaHR0cF9zZXJ2ZXJfCiAgICAg
ICAgICAgICAgICAgICAgICAgICBwb3J0WyJzc2xjZXJ0Il0gPSBUcnVlCiAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuX21hcHBpbmdzLmFwcGVuZChwb3J0KQogCisgICAgZGVmIHBvcnRzX3RvX2Zv
cndhcmQoc2VsZik6CisgICAgICAgIHJldHVybiBbbWFwcGluZ1sncG9ydCddIGZvciBtYXBwaW5n
IGluIHNlbGYuX21hcHBpbmdzXQorCiAgICAgZGVmIF9pbnN0YWxsX21vZHVsZXMoc2VsZik6CiAg
ICAgICAgIG1vZHVsZXNfZmlsZV9wYXRoID0gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX2Rv
Y19yb290X3BhdGgsICIuLiIsICJyZXNvdXJjZXMiLCAid2ViLXBsYXRmb3JtLXRlc3RzLW1vZHVs
ZXMuanNvbiIpCiAgICAgICAgIGlmIG5vdCBzZWxmLl9maWxlc3lzdGVtLmlzZmlsZShtb2R1bGVz
X2ZpbGVfcGF0aCk6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9z
ZXJ2ZXJzL3dlYnNvY2tldF9zZXJ2ZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJzb2NrZXRfc2VydmVyLnB5CShyZXZpc2lv
biAyMTQ1MzUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJz
L3dlYnNvY2tldF9zZXJ2ZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDEyICs0NCwxMSBAQCBf
V1NfTE9HX05BTUUgPSAncHl3ZWJzb2NrZXQud3MubG9nJwogX1dTU19MT0dfTkFNRSA9ICdweXdl
YnNvY2tldC53c3MubG9nJwogCiAKLV9ERUZBVUxUX1dTX1BPUlQgPSA4ODgwCi1fREVGQVVMVF9X
U1NfUE9SVCA9IDkzMjMKLQotCiBjbGFzcyBQeVdlYlNvY2tldChodHRwX3NlcnZlci5MaWdodHRw
ZCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfb2JqLCBvdXRwdXRfZGlyLCBwb3J0PV9E
RUZBVUxUX1dTX1BPUlQsCisgICAgREVGQVVMVF9XU19QT1JUID0gODg4MAorICAgIERFRkFVTFRf
V1NTX1BPUlQgPSA5MzIzCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9vYmosIG91dHB1
dF9kaXIsIHBvcnQ9REVGQVVMVF9XU19QT1JULAogICAgICAgICAgICAgICAgICByb290PU5vbmUs
IHVzZV90bHM9RmFsc2UsCiAgICAgICAgICAgICAgICAgIHByaXZhdGVfa2V5PU5vbmUsIGNlcnRp
ZmljYXRlPU5vbmUsIGNhX2NlcnRpZmljYXRlPU5vbmUsCiAgICAgICAgICAgICAgICAgIHBpZGZp
bGU9Tm9uZSk6CkBAIC01Nyw3ICs1Niw3IEBAIGNsYXNzIFB5V2ViU29ja2V0KGh0dHBfc2VydmVy
LkxpZ2h0dHBkKToKICAgICAgICAgICBvdXRwdXRfZGlyOiB0aGUgYWJzb2x1dGUgcGF0aCB0byB0
aGUgbGF5b3V0IHRlc3QgcmVzdWx0IGRpcmVjdG9yeQogICAgICAgICAiIiIKICAgICAgICAgaHR0
cF9zZXJ2ZXIuTGlnaHR0cGQuX19pbml0X18oc2VsZiwgcG9ydF9vYmosIG91dHB1dF9kaXIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9X0RFRkFVTFRfV1NfUE9S
VCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD1QeVdlYlNvY2tl
dC5ERUZBVUxUX1dTX1BPUlQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJvb3Q9cm9vdCkKICAgICAgICAgc2VsZi5fb3V0cHV0X2RpciA9IG91dHB1dF9kaXIKICAgICAg
ICAgc2VsZi5fcGlkX2ZpbGUgPSBwaWRmaWxlCkBAIC0xMDcsNiArMTA2LDkgQEAgY2xhc3MgUHlX
ZWJTb2NrZXQoaHR0cF9zZXJ2ZXIuTGlnaHR0cGQpOgogICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgc2VsZi5fbG9nX3ByZWZpeCA9IF9XU19MT0dfTkFNRQogCisgICAgZGVmIHBvcnRzX3RvX2Zv
cndhcmQoc2VsZik6CisgICAgICAgIHJldHVybiBbc2VsZi5fcG9ydF0KKwogICAgIGRlZiBfcHJl
cGFyZV9jb25maWcoc2VsZik6CiAgICAgICAgIGxvZ19maWxlX25hbWUgPSBzZWxmLl9sb2dfcHJl
Zml4CiAgICAgICAgICMgRklYTUU6IERvZXNuJ3QgRXhlY3V0aXZlIGhhdmUgYSBkZXZudWxsLCBz
byB0aGF0IHdlIGRvbid0IGhhdmUgdG8gdXNlIG9zLmRldm51bGwgZGlyZWN0bHk/CkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQkocmV2aXNpb24gMjE0NTM1KQorKysgVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkJKHdvcmtpbmcgY29weSkKQEAgLTU3LDggKzU3
LDcgQEAgZnJvbSB3ZWJraXRweS5wb3J0IGltcG9ydCBkcml2ZXIKIGZyb20gd2Via2l0cHkucG9y
dCBpbXBvcnQgaW1hZ2VfZGlmZgogZnJvbSB3ZWJraXRweS5wb3J0IGltcG9ydCBzZXJ2ZXJfcHJv
Y2VzcwogZnJvbSB3ZWJraXRweS5wb3J0LmZhY3RvcnkgaW1wb3J0IFBvcnRGYWN0b3J5Ci1mcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5zZXJ2ZXJzIGltcG9ydCBhcGFjaGVfaHR0cF9zZXJ2ZXIK
LWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnNlcnZlcnMgaW1wb3J0IGh0dHBfc2VydmVyCitm
cm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5zZXJ2ZXJzIGltcG9ydCBhcGFjaGVfaHR0cF9zZXJ2
ZXIsIGh0dHBfc2VydmVyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5zZXJ2ZXJzIGltcG9y
dCB3ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnNl
cnZlcnMgaW1wb3J0IHdlYnNvY2tldF9zZXJ2ZXIKIApAQCAtOTM4LDYgKzkzNywxOCBAQCBjbGFz
cyBQb3J0KG9iamVjdCk6CiAgICAgICAgIHN0b3JhZ2UsIGl0IHNob3VsZCBvdmVycmlkZSB0aGlz
IG1ldGhvZC4iIiIKICAgICAgICAgcGFzcwogCisgICAgZGVmIHBvcnRzX3RvX2ZvcndhcmQoc2Vs
Zik6CisgICAgICAgIHBvcnRzID0gW10KKyAgICAgICAgaWYgc2VsZi5faHR0cF9zZXJ2ZXI6Cisg
ICAgICAgICAgICBwb3J0cy5leHRlbmQoc2VsZi5faHR0cF9zZXJ2ZXIucG9ydHNfdG9fZm9yd2Fy
ZCgpKQorICAgICAgICBpZiBzZWxmLl93ZWJzb2NrZXRfc2VydmVyOgorICAgICAgICAgICAgcG9y
dHMuZXh0ZW5kKHNlbGYuX3dlYnNvY2tldF9zZXJ2ZXIucG9ydHNfdG9fZm9yd2FyZCgpKQorICAg
ICAgICBpZiBzZWxmLl93ZWJzb2NrZXRfc2VydmVyOgorICAgICAgICAgICAgcG9ydHMuZXh0ZW5k
KHNlbGYuX3dlYnNvY2tldF9zZWN1cmVfc2VydmVyLnBvcnRzX3RvX2ZvcndhcmQoKSkKKyAgICAg
ICAgaWYgc2VsZi5fd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyOgorICAgICAgICAgICAgcG9ydHMu
ZXh0ZW5kKHNlbGYuX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5wb3J0c190b19mb3J3YXJkKCkp
CisgICAgICAgIHJldHVybiBwb3J0cworCiAgICAgZGVmIHN0YXJ0X2h0dHBfc2VydmVyKHNlbGYs
IGFkZGl0aW9uYWxfZGlycz1Ob25lKToKICAgICAgICAgIiIiU3RhcnQgYSB3ZWIgc2VydmVyLiBS
YWlzZSBhbiBlcnJvciBpZiBpdCBjYW4ndCBzdGFydCBvciBpcyBhbHJlYWR5IHJ1bm5pbmcuCiAK
QEAgLTk3NSw3ICs5ODYsNyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3dl
YnNvY2tldF9zZXJ2ZXJfdGVtcG9yYXJ5X2RpcmVjdG9yeSA9IHdlYnNvY2tldF9zZXJ2ZXJfdGVt
cG9yYXJ5X2RpcmVjdG9yeQogICAgICAgICBpZiBzZWxmLl9leHRyYWN0X2NlcnRpZmljYXRlX2Zy
b21fcGVtKHBlbV9maWxlLCBjZXJ0aWZpY2F0ZV9maWxlKSBhbmQgc2VsZi5fZXh0cmFjdF9wcml2
YXRlX2tleV9mcm9tX3BlbShwZW1fZmlsZSwgcHJpdmF0ZV9rZXlfZmlsZSk6CiAgICAgICAgICAg
ICBzZWN1cmVfc2VydmVyID0gc2VsZi5fd2Vic29ja2V0X3NlY3VyZV9zZXJ2ZXIgPSB3ZWJzb2Nr
ZXRfc2VydmVyLlB5V2ViU29ja2V0KHNlbGYsIHNlbGYucmVzdWx0c19kaXJlY3RvcnkoKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlX3Rscz1UcnVlLCBwb3J0PTkzMjMsIHBy
aXZhdGVfa2V5PXByaXZhdGVfa2V5X2ZpbGUsIGNlcnRpZmljYXRlPWNlcnRpZmljYXRlX2ZpbGUp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV90bHM9VHJ1ZSwgcG9ydD13ZWJz
b2NrZXRfc2VydmVyLlB5V2ViU29ja2V0LkRFRkFVTFRfV1NTX1BPUlQsIHByaXZhdGVfa2V5PXBy
aXZhdGVfa2V5X2ZpbGUsIGNlcnRpZmljYXRlPWNlcnRpZmljYXRlX2ZpbGUpCiAgICAgICAgICAg
ICBzZWN1cmVfc2VydmVyLnN0YXJ0KCkKICAgICAgICAgICAgIHNlbGYuX3dlYnNvY2tldF9zZWN1
cmVfc2VydmVyID0gc2VjdXJlX3NlcnZlcgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305767</attachid>
            <date>2017-03-29 12:01:33 -0700</date>
            <delta_ts>2017-03-29 13:07:46 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-170144-20170329120132.patch</filename>
            <type>text/plain</type>
            <size>12497</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNDU0NSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM3IEBACisyMDE3LTAzLTI5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogU3RhbmRhcmRpemUgd2ViLXNlcnZlciBwb3J0IGRlZmlu
aXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzAxNDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxMjg0MDI2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IERhbmllbCBCYXRlcy4KKworICAgICAgICBEZWZhdWx0IHdlYi1zZXJ2ZXIgcG9ydHMg
c2hvdWxkIGJlIGRlY2xhcmVkIGluIGdsb2JhbCB2YXJpYWJsZXMuCisgICAgICAgIEFkZCBmdW5j
dGlvbnMgdG8gd2ViLXNlcnZlcnMgd2hpY2ggcmV0dXJuIHRoZSBwb3J0cyB0aGVzZSBzZXJ2ZXJz
CisgICAgICAgIGFyZSB1c2luZyBzbyB0aGF0IG90aGVyIHRvb2xzIGNhbiBmb3J3YXJkIHRoZW0u
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2FwYWNo
ZV9odHRwX3NlcnZlci5weToKKyAgICAgICAgKExheW91dFRlc3RBcGFjaGVIdHRwZC5fX2luaXRf
Xyk6IFVzZSBzaGFyZWQgY29uc3RhbnRzIGluIGh0dHBfc2VydmVyX2Jhc2UucHkuCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9hcGFjaGVfaHR0cF9zZXJ2
ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0TGF5b3V0VGVzdEFwYWNoZUh0dHBkLnRlc3Rf
c3RhcnRfY21kKTogQ2hlY2sgcG9ydF90b19mb3J3YXJkIGZvciBleHBlY3RlZCB2YWx1ZXMuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZl
ci5weToKKyAgICAgICAgKExpZ2h0dHBkLl9faW5pdF9fKTogVXNlIHNoYXJlZCBjb25zdGFudHMg
aW4gaHR0cF9zZXJ2ZXJfYmFzZS5weS4KKyAgICAgICAgKExpZ2h0dHBkLl9wcmVwYXJlX2NvbmZp
Zyk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZl
cnMvaHR0cF9zZXJ2ZXJfYmFzZS5weToKKyAgICAgICAgKEh0dHBTZXJ2ZXJCYXNlKTogQWRkIGRl
ZmF1bHQgcG9ydCBjb25zdGFudHMuCisgICAgICAgIChIdHRwU2VydmVyQmFzZS5wb3J0c190b19m
b3J3YXJkKTogQWRkIGZ1bmN0aW9uIHRvIHJldHVybiBwb3J0cyB1c2VkIGZvciBodHRwIHNlcnZl
ci4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2h0dHBf
c2VydmVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdEh0dHBTZXJ2ZXIudGVzdF9zdGFydF9j
bWQpOiBDaGVjayBwb3J0X3RvX2ZvcndhcmQgZm9yIGV4cGVjdGVkIHZhbHVlcy4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0
X3NlcnZlci5weToKKyAgICAgICAgIChXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIucG9ydHNfdG9fZm9y
d2FyZCk6IEFkZCBmdW5jdGlvbiB0byByZXR1cm4gcG9ydHMgdXNlZCBmb3Igd2ViLXBsYXRmb3Jt
IHRlc3RzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMv
d2Vic29ja2V0X3NlcnZlci5weToKKyAgICAgICAgKFB5V2ViU29ja2V0KTogTWFrZSBkZWZhdWx0
IHBvcnQgdmFsdWVzIHB1YmxpYy4KKyAgICAgICAgKFB5V2ViU29ja2V0Ll9faW5pdF9fKTogVXNl
IHB1YmxpYyBkZWZhdWx0IHBvcnQuCisgICAgICAgIChQeVdlYlNvY2tldC5wb3J0c190b19mb3J3
YXJkKTogUmV0dXJuIHBvcnQgdXNlZCBpbiBhbiBhcnJheS4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3BvcnQvYmFzZS5weToKKyAgICAgICAgKFBvcnQudG8ucG9ydHNfdG9fZm9yd2FyZCk6
IFJldHVybiBhbGwgcG9ydHMgdXNlZCB0aGUgdmFyaW91cyB3ZWItc2VydmVycyBtYW5hZ2VkIGJ5
IHRoZSBwb3J0IG9iamVjdC4KKyAgICAgICAgKFBvcnQudG8uc3RhcnRfd2Vic29ja2V0X3NlcnZl
cik6IFVzZSBQeVdlYlNvY2tldCBwb3J0IGNvbnN0YW50cy4KKwogMjAxNy0wMy0yOSAgSm9uYXRo
YW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgd2Via2l0cHk6IEFkZCBJ
T1NEZXZpY2VQb3J0IGFuZCBJT1NQb3J0IHRlc3RzCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRwX3NlcnZlci5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9o
dHRwX3NlcnZlci5weQkocmV2aXNpb24gMjE0NTM1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvc2VydmVycy9hcGFjaGVfaHR0cF9zZXJ2ZXIucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTU2LDkgKzU2LDkgQEAgY2xhc3MgTGF5b3V0VGVzdEFwYWNoZUh0dHBkKGh0dHBfc2Vy
dmVyXwogICAgICAgICBpZiBzZWxmLl9wb3J0IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc2Vs
Zi5fbWFwcGluZ3MgPSBbeydwb3J0Jzogc2VsZi5fcG9ydH1dCiAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBzZWxmLl9tYXBwaW5ncyA9IFt7J3BvcnQnOiA4MDAwfSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsncG9ydCc6IDgwODB9LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeydwb3J0JzogODQ0MywgJ3NzbGNlcnQnOiBUcnVlfV0KKyAgICAgICAgICAgIHNlbGYu
X21hcHBpbmdzID0gW3sncG9ydCc6IHNlbGYuSFRUUF9TRVJWRVJfUE9SVH0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7J3BvcnQnOiBzZWxmLkFMVEVSTkFUSVZFX0hUVFBfU0VSVkVS
X1BPUlR9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydwb3J0Jzogc2VsZi5IVFRQ
U19TRVJWRVJfUE9SVCwgJ3NzbGNlcnQnOiBUcnVlfV0KICAgICAgICAgc2VsZi5fb3V0cHV0X2Rp
ciA9IG91dHB1dF9kaXIKICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVj
dG9yeShvdXRwdXRfZGlyKQogCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRwX3NlcnZlcl91bml0dGVzdC5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2FwYWNoZV9odHRw
X3NlcnZlcl91bml0dGVzdC5weQkocmV2aXNpb24gMjE0NTM1KQorKysgVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9hcGFjaGVfaHR0cF9zZXJ2ZXJfdW5pdHRlc3Qu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDkgQEAgY2xhc3MgVGVzdExheW91dFRlc3RB
cGFjaGVIdHRwZCh1bml0dGVzdAogICAgICAgICBzZXJ2ZXIuX2NoZWNrX3RoYXRfYWxsX3BvcnRz
X2FyZV9hdmFpbGFibGUgPSBsYW1iZGE6IFRydWUKICAgICAgICAgc2VydmVyLl9pc19zZXJ2ZXJf
cnVubmluZ19vbl9hbGxfcG9ydHMgPSBsYW1iZGE6IFRydWUKICAgICAgICAgc2VydmVyLl93YWl0
X2Zvcl9hY3Rpb24gPSBmYWtlX3BpZAorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VydmVy
LnBvcnRzX3RvX2ZvcndhcmQoKSwgWzgwMDAsIDgwODAsIDg0NDNdKQorCiAgICAgICAgIG9jID0g
T3V0cHV0Q2FwdHVyZSgpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG9jLmNhcHR1cmVfb3V0
cHV0KCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMv
aHR0cF9zZXJ2ZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZlci5weQkocmV2aXNpb24gMjE0NTM1KQorKysgVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZlci5weQko
d29ya2luZyBjb3B5KQpAQCAtNzUsOSArNzUsOSBAQCBjbGFzcyBMaWdodHRwZChodHRwX3NlcnZl
cl9iYXNlLkh0dHBTZXJ2CiAgICAgICAgIGlmIHNlbGYuX3dlYmtpdF90ZXN0czoKICAgICAgICAg
ICAgIHNlbGYuVklSVFVBTENPTkZJRy5leHRlbmQoCiAgICAgICAgICAgICAgICAjIFRocmVlIG1h
cHBpbmdzIChvbmUgd2l0aCBTU0wpIGZvciBMYXlvdXRUZXN0cyBodHRwIHRlc3RzCi0gICAgICAg
ICAgICAgICBbeydwb3J0JzogODAwMCwgJ2RvY3Jvb3QnOiBzZWxmLl93ZWJraXRfdGVzdHN9LAot
ICAgICAgICAgICAgICAgIHsncG9ydCc6IDgwODAsICdkb2Nyb290Jzogc2VsZi5fd2Via2l0X3Rl
c3RzfSwKLSAgICAgICAgICAgICAgICB7J3BvcnQnOiA4NDQzLCAnZG9jcm9vdCc6IHNlbGYuX3dl
YmtpdF90ZXN0cywKKyAgICAgICAgICAgICAgIFt7J3BvcnQnOiBzZWxmLkhUVFBfU0VSVkVSX1BP
UlQsICdkb2Nyb290Jzogc2VsZi5fd2Via2l0X3Rlc3RzfSwKKyAgICAgICAgICAgICAgICB7J3Bv
cnQnOiBzZWxmLkFMVEVSTkFUSVZFX0hUVFBfU0VSVkVSX1BPUlQsICdkb2Nyb290Jzogc2VsZi5f
d2Via2l0X3Rlc3RzfSwKKyAgICAgICAgICAgICAgICB7J3BvcnQnOiBzZWxmLkhUVFBTX1NFUlZF
Ul9QT1JULCAnZG9jcm9vdCc6IHNlbGYuX3dlYmtpdF90ZXN0cywKICAgICAgICAgICAgICAgICAg
J3NzbGNlcnQnOiBzZWxmLl9wZW1fZmlsZX1dKQogCiAgICAgZGVmIF9wcmVwYXJlX2NvbmZpZyhz
ZWxmKToKQEAgLTE0Myw5ICsxNDMsOSBAQCBjbGFzcyBMaWdodHRwZChodHRwX3NlcnZlcl9iYXNl
Lkh0dHBTZXJ2CiAKICAgICAgICAgICAgICAgICAjIGRlZmF1bHQgc2V0IG9mIHBvcnRzIGFzIGZv
ciBMYXlvdXRUZXN0cyBidXQgd2l0aCBhCiAgICAgICAgICAgICAgICAgIyBzcGVjaWZpZWQgcm9v
dC4KLSAgICAgICAgICAgICAgICBtYXBwaW5ncyA9IFt7J3BvcnQnOiA4MDAwLCAnZG9jcm9vdCc6
IHNlbGYuX3Jvb3R9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsncG9ydCc6IDgwODAs
ICdkb2Nyb290Jzogc2VsZi5fcm9vdH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgeydw
b3J0JzogODQ0MywgJ2RvY3Jvb3QnOiBzZWxmLl9yb290LAorICAgICAgICAgICAgICAgIG1hcHBp
bmdzID0gW3sncG9ydCc6IHNlbGYuSFRUUF9TRVJWRVJfUE9SVCwgJ2RvY3Jvb3QnOiBzZWxmLl9y
b290fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J3BvcnQnOiBzZWxmLkFMVEVSTkFU
SVZFX0hUVFBfU0VSVkVSX1BPUlQsICdkb2Nyb290Jzogc2VsZi5fcm9vdH0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeydwb3J0Jzogc2VsZi5IVFRQU19TRVJWRVJfUE9SVCwgJ2RvY3Jv
b3QnOiBzZWxmLl9yb290LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3NsY2VydCc6
IHNlbGYuX3BlbV9maWxlfV0KICAgICAgICAgZWxzZToKICAgICAgICAgICAgIG1hcHBpbmdzID0g
c2VsZi5WSVJUVUFMQ09ORklHCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9zZXJ2ZXJzL2h0dHBfc2VydmVyX2Jhc2UucHkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZlcl9iYXNlLnB5CShy
ZXZpc2lvbiAyMTQ1MzUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9z
ZXJ2ZXJzL2h0dHBfc2VydmVyX2Jhc2UucHkJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDEw
IEBAIGNsYXNzIFNlcnZlckVycm9yKEV4Y2VwdGlvbik6CiBjbGFzcyBIdHRwU2VydmVyQmFzZShv
YmplY3QpOgogICAgICIiIkEgc2tlbGV0b24gY2xhc3MgZm9yIHN0YXJ0aW5nIGFuZCBzdG9wcGlu
ZyBzZXJ2ZXJzIHVzZWQgYnkgdGhlIGxheW91dCB0ZXN0cy4iIiIKIAorICAgIEhUVFBfU0VSVkVS
X1BPUlQgPSA4MDAwCisgICAgQUxURVJOQVRJVkVfSFRUUF9TRVJWRVJfUE9SVCA9IDgwODAKKyAg
ICBIVFRQU19TRVJWRVJfUE9SVCA9IDg0NDMKKwogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0
X29iaik6CiAgICAgICAgIHNlbGYuX2V4ZWN1dGl2ZSA9IHBvcnRfb2JqLl9leGVjdXRpdmUKICAg
ICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IHBvcnRfb2JqLl9maWxlc3lzdGVtCkBAIC02OCw2ICs3
Miw5IEBAIGNsYXNzIEh0dHBTZXJ2ZXJCYXNlKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3J1bnRp
bWVfcGF0aCA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbih0bXBkaXIsICJXZWJLaXQiKQogICAgICAg
ICBzZWxmLl9maWxlc3lzdGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KHNlbGYuX3J1bnRpbWVfcGF0
aCkKIAorICAgIGRlZiBwb3J0c190b19mb3J3YXJkKHNlbGYpOgorICAgICAgICByZXR1cm4gW21h
cHBpbmdbJ3BvcnQnXSBmb3IgbWFwcGluZyBpbiBzZWxmLl9tYXBwaW5nc10KKwogICAgIGRlZiBz
dGFydChzZWxmKToKICAgICAgICAgIiIiU3RhcnRzIHRoZSBzZXJ2ZXIuIEl0IGlzIGFuIGVycm9y
IHRvIHN0YXJ0IGFuIGFscmVhZHkgc3RhcnRlZCBzZXJ2ZXIuCiAKSW5kZXg6IFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvaHR0cF9zZXJ2ZXJfdW5pdHRlc3QucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVy
cy9odHRwX3NlcnZlcl91bml0dGVzdC5weQkocmV2aXNpb24gMjE0NTM1KQorKysgVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9odHRwX3NlcnZlcl91bml0dGVzdC5w
eQkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsNyBAQCBjbGFzcyBUZXN0SHR0cFNlcnZlcih1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL21vY2sv
b25lLWFkZGl0aW9uYWwtZGlyIjogIi9tb2NrLWNoZWNrb3V0L29uZS1hZGRpdGlvbmFsLWRpciIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL21vY2svYW5vdGhlci1hZGRpdGlvbmFs
LWRpciI6ICIvbW9jay1jaGVja291dC9vbmUtYWRkaXRpb25hbC1kaXIifSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoU2VydmVyRXJyb3IsIHNlcnZlci5zdGFydCkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzZXJ2ZXIucG9ydHNfdG9fZm9yd2FyZCgpLCBbODAwMCwgODA4MCwgODQ0M10p
CiAKICAgICAgICAgY29uZmlnX2ZpbGUgPSBob3N0LmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUo
Ii9tb2NrL291dHB1dF9kaXIvbGlnaHR0cGQuY29uZiIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocmUuZmluZGFsbChyImFsaWFzLnVybC4rIiwgY29uZmlnX2ZpbGUpLCBbCkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0
X3NlcnZlci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weQkocmV2aXNpb24gMjE0NTM1
KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxh
dGZvcm1fdGVzdF9zZXJ2ZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTk3LDYgKzk3LDkgQEAgY2xh
c3MgV2ViUGxhdGZvcm1UZXN0U2VydmVyKGh0dHBfc2VydmVyXwogICAgICAgICAgICAgICAgICAg
ICAgICAgcG9ydFsic3NsY2VydCJdID0gVHJ1ZQogICAgICAgICAgICAgICAgICAgICBzZWxmLl9t
YXBwaW5ncy5hcHBlbmQocG9ydCkKIAorICAgIGRlZiBwb3J0c190b19mb3J3YXJkKHNlbGYpOgor
ICAgICAgICByZXR1cm4gW21hcHBpbmdbJ3BvcnQnXSBmb3IgbWFwcGluZyBpbiBzZWxmLl9tYXBw
aW5nc10KKwogICAgIGRlZiBfaW5zdGFsbF9tb2R1bGVzKHNlbGYpOgogICAgICAgICBtb2R1bGVz
X2ZpbGVfcGF0aCA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9kb2Nfcm9vdF9wYXRoLCAi
Li4iLCAicmVzb3VyY2VzIiwgIndlYi1wbGF0Zm9ybS10ZXN0cy1tb2R1bGVzLmpzb24iKQogICAg
ICAgICBpZiBub3Qgc2VsZi5fZmlsZXN5c3RlbS5pc2ZpbGUobW9kdWxlc19maWxlX3BhdGgpOgpJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJzb2Nr
ZXRfc2VydmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3NlcnZlcnMvd2Vic29ja2V0X3NlcnZlci5weQkocmV2aXNpb24gMjE0NTM1KQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJzb2NrZXRfc2Vy
dmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00NCwxMiArNDQsMTEgQEAgX1dTX0xPR19OQU1FID0g
J3B5d2Vic29ja2V0LndzLmxvZycKIF9XU1NfTE9HX05BTUUgPSAncHl3ZWJzb2NrZXQud3NzLmxv
ZycKIAogCi1fREVGQVVMVF9XU19QT1JUID0gODg4MAotX0RFRkFVTFRfV1NTX1BPUlQgPSA5MzIz
Ci0KLQogY2xhc3MgUHlXZWJTb2NrZXQoaHR0cF9zZXJ2ZXIuTGlnaHR0cGQpOgotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBwb3J0X29iaiwgb3V0cHV0X2RpciwgcG9ydD1fREVGQVVMVF9XU19QT1JU
LAorICAgIERFRkFVTFRfV1NfUE9SVCA9IDg4ODAKKyAgICBERUZBVUxUX1dTU19QT1JUID0gOTMy
MworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfb2JqLCBvdXRwdXRfZGlyLCBwb3J0PURF
RkFVTFRfV1NfUE9SVCwKICAgICAgICAgICAgICAgICAgcm9vdD1Ob25lLCB1c2VfdGxzPUZhbHNl
LAogICAgICAgICAgICAgICAgICBwcml2YXRlX2tleT1Ob25lLCBjZXJ0aWZpY2F0ZT1Ob25lLCBj
YV9jZXJ0aWZpY2F0ZT1Ob25lLAogICAgICAgICAgICAgICAgICBwaWRmaWxlPU5vbmUpOgpAQCAt
NTcsNyArNTYsNyBAQCBjbGFzcyBQeVdlYlNvY2tldChodHRwX3NlcnZlci5MaWdodHRwZCk6CiAg
ICAgICAgICAgb3V0cHV0X2RpcjogdGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGxheW91dCB0ZXN0
IHJlc3VsdCBkaXJlY3RvcnkKICAgICAgICAgIiIiCiAgICAgICAgIGh0dHBfc2VydmVyLkxpZ2h0
dHBkLl9faW5pdF9fKHNlbGYsIHBvcnRfb2JqLCBvdXRwdXRfZGlyLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwb3J0PV9ERUZBVUxUX1dTX1BPUlQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9UHlXZWJTb2NrZXQuREVGQVVMVF9XU19Q
T1JULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290PXJvb3QpCiAg
ICAgICAgIHNlbGYuX291dHB1dF9kaXIgPSBvdXRwdXRfZGlyCiAgICAgICAgIHNlbGYuX3BpZF9m
aWxlID0gcGlkZmlsZQpAQCAtMTA3LDYgKzEwNiw5IEBAIGNsYXNzIFB5V2ViU29ja2V0KGh0dHBf
c2VydmVyLkxpZ2h0dHBkKToKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuX2xvZ19w
cmVmaXggPSBfV1NfTE9HX05BTUUKIAorICAgIGRlZiBwb3J0c190b19mb3J3YXJkKHNlbGYpOgor
ICAgICAgICByZXR1cm4gW3NlbGYuX3BvcnRdCisKICAgICBkZWYgX3ByZXBhcmVfY29uZmlnKHNl
bGYpOgogICAgICAgICBsb2dfZmlsZV9uYW1lID0gc2VsZi5fbG9nX3ByZWZpeAogICAgICAgICAj
IEZJWE1FOiBEb2Vzbid0IEV4ZWN1dGl2ZSBoYXZlIGEgZGV2bnVsbCwgc28gdGhhdCB3ZSBkb24n
dCBoYXZlIHRvIHVzZSBvcy5kZXZudWxsIGRpcmVjdGx5PwpJbmRleDogVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2Jhc2UucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2Jhc2UucHkJKHJldmlzaW9uIDIxNDUzNSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC9iYXNlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC01Nyw4ICs1Nyw3IEBAIGZyb20gd2Vi
a2l0cHkucG9ydCBpbXBvcnQgZHJpdmVyCiBmcm9tIHdlYmtpdHB5LnBvcnQgaW1wb3J0IGltYWdl
X2RpZmYKIGZyb20gd2Via2l0cHkucG9ydCBpbXBvcnQgc2VydmVyX3Byb2Nlc3MKIGZyb20gd2Vi
a2l0cHkucG9ydC5mYWN0b3J5IGltcG9ydCBQb3J0RmFjdG9yeQotZnJvbSB3ZWJraXRweS5sYXlv
dXRfdGVzdHMuc2VydmVycyBpbXBvcnQgYXBhY2hlX2h0dHBfc2VydmVyCi1mcm9tIHdlYmtpdHB5
LmxheW91dF90ZXN0cy5zZXJ2ZXJzIGltcG9ydCBodHRwX3NlcnZlcgorZnJvbSB3ZWJraXRweS5s
YXlvdXRfdGVzdHMuc2VydmVycyBpbXBvcnQgYXBhY2hlX2h0dHBfc2VydmVyLCBodHRwX3NlcnZl
cgogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuc2VydmVycyBpbXBvcnQgd2ViX3BsYXRmb3Jt
X3Rlc3Rfc2VydmVyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5zZXJ2ZXJzIGltcG9ydCB3
ZWJzb2NrZXRfc2VydmVyCiAKQEAgLTkzOCw2ICs5MzcsMTggQEAgY2xhc3MgUG9ydChvYmplY3Qp
OgogICAgICAgICBzdG9yYWdlLCBpdCBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QuIiIiCiAg
ICAgICAgIHBhc3MKIAorICAgIGRlZiBwb3J0c190b19mb3J3YXJkKHNlbGYpOgorICAgICAgICBw
b3J0cyA9IFtdCisgICAgICAgIGlmIHNlbGYuX2h0dHBfc2VydmVyOgorICAgICAgICAgICAgcG9y
dHMuZXh0ZW5kKHNlbGYuX2h0dHBfc2VydmVyLnBvcnRzX3RvX2ZvcndhcmQoKSkKKyAgICAgICAg
aWYgc2VsZi5fd2Vic29ja2V0X3NlcnZlcjoKKyAgICAgICAgICAgIHBvcnRzLmV4dGVuZChzZWxm
Ll93ZWJzb2NrZXRfc2VydmVyLnBvcnRzX3RvX2ZvcndhcmQoKSkKKyAgICAgICAgaWYgc2VsZi5f
d2Vic29ja2V0X3NlcnZlcjoKKyAgICAgICAgICAgIHBvcnRzLmV4dGVuZChzZWxmLl93ZWJzb2Nr
ZXRfc2VjdXJlX3NlcnZlci5wb3J0c190b19mb3J3YXJkKCkpCisgICAgICAgIGlmIHNlbGYuX3dl
Yl9wbGF0Zm9ybV90ZXN0X3NlcnZlcjoKKyAgICAgICAgICAgIHBvcnRzLmV4dGVuZChzZWxmLl93
ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIucG9ydHNfdG9fZm9yd2FyZCgpKQorICAgICAgICByZXR1
cm4gcG9ydHMKKwogICAgIGRlZiBzdGFydF9odHRwX3NlcnZlcihzZWxmLCBhZGRpdGlvbmFsX2Rp
cnM9Tm9uZSk6CiAgICAgICAgICIiIlN0YXJ0IGEgd2ViIHNlcnZlci4gUmFpc2UgYW4gZXJyb3Ig
aWYgaXQgY2FuJ3Qgc3RhcnQgb3IgaXMgYWxyZWFkeSBydW5uaW5nLgogCkBAIC05NzUsNyArOTg2
LDcgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICBzZWxmLl93ZWJzb2NrZXRfc2VydmVy
X3RlbXBvcmFyeV9kaXJlY3RvcnkgPSB3ZWJzb2NrZXRfc2VydmVyX3RlbXBvcmFyeV9kaXJlY3Rv
cnkKICAgICAgICAgaWYgc2VsZi5fZXh0cmFjdF9jZXJ0aWZpY2F0ZV9mcm9tX3BlbShwZW1fZmls
ZSwgY2VydGlmaWNhdGVfZmlsZSkgYW5kIHNlbGYuX2V4dHJhY3RfcHJpdmF0ZV9rZXlfZnJvbV9w
ZW0ocGVtX2ZpbGUsIHByaXZhdGVfa2V5X2ZpbGUpOgogICAgICAgICAgICAgc2VjdXJlX3NlcnZl
ciA9IHNlbGYuX3dlYnNvY2tldF9zZWN1cmVfc2VydmVyID0gd2Vic29ja2V0X3NlcnZlci5QeVdl
YlNvY2tldChzZWxmLCBzZWxmLnJlc3VsdHNfZGlyZWN0b3J5KCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVzZV90bHM9VHJ1ZSwgcG9ydD05MzIzLCBwcml2YXRlX2tleT1wcml2
YXRlX2tleV9maWxlLCBjZXJ0aWZpY2F0ZT1jZXJ0aWZpY2F0ZV9maWxlKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1c2VfdGxzPVRydWUsIHBvcnQ9d2Vic29ja2V0X3NlcnZlci5Q
eVdlYlNvY2tldC5ERUZBVUxUX1dTU19QT1JULCBwcml2YXRlX2tleT1wcml2YXRlX2tleV9maWxl
LCBjZXJ0aWZpY2F0ZT1jZXJ0aWZpY2F0ZV9maWxlKQogICAgICAgICAgICAgc2VjdXJlX3NlcnZl
ci5zdGFydCgpCiAgICAgICAgICAgICBzZWxmLl93ZWJzb2NrZXRfc2VjdXJlX3NlcnZlciA9IHNl
Y3VyZV9zZXJ2ZXIKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>