<?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>192909</bug_id>
          
          <creation_ts>2018-12-19 18:35:27 -0800</creation_ts>
          <short_desc>webkitpy: Autoinstall package URLs have changed</short_desc>
          <delta_ts>2018-12-20 15:56:17 -0800</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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=192954</see_also>
          <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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>ap</cc>
    
    <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>lforschler</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1489655</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-12-19 18:35:27 -0800</bug_when>
    <thetext>_install_selenium() calls get_latest_pypi_url() which uses an old URL: https://pypi.python.org/pypi/

 128$ $ curl https://pypi.python.org/pypi/selenium/json
&lt;html&gt;&lt;head&gt;&lt;title&gt;301 Moved Permanently&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;center&gt;&lt;h1&gt;301 Moved Permanently&lt;/h1&gt;&lt;/center&gt;&lt;/body&gt;&lt;/html&gt;[smfr@simfra /Volumes/Data/Development/system/webkit/OpenSource]

and urllib2.urlopen(json_url) just hangs.

The right URL seems to be https://pypi.org/pypi/%s/json which works with curl, but if I change the script to this, urllib2.urlopen(json_url) still hangs.

We also reference pypi.python.org in lots of other places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489656</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-19 18:36:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/46860359&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489657</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-19 18:36:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/46860360&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489658</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-12-19 18:37:55 -0800</bug_when>
    <thetext>This means no-one can run webkitpy tests if they haven&apos;t before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489936</commentid>
    <comment_count>4</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-12-20 10:49:23 -0800</bug_when>
    <thetext>Yikes....Looking into this, looks like there are actually 3 problems:

1) As Simon points out, pypi.python.org is defunct, it&apos;s now pypi.org
2) Something weird is going on with both urllib2 and requests, those libraries have a hard time communicating with pypi.org, even though curl can do so just fine
3) (Unique to Selenium) Selenium tries to communicate with pypi before it checks if it&apos;s actually installed. Which is a bit crazy since if we have a good version of Selenium, we can just skip all the networks stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489952</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-12-20 11:19:46 -0800</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #4)
&gt; Yikes....Looking into this, looks like there are actually 3 problems:
&gt; 
&gt; 1) As Simon points out, pypi.python.org is defunct, it&apos;s now pypi.org
&gt; 2) Something weird is going on with both urllib2 and requests, those
&gt; libraries have a hard time communicating with pypi.org, even though curl can
&gt; do so just fine

Turns out, this is actually partially #1 (all of our absolute package URLs are old) and partially the fact that our Selenium didn&apos;t define a timeout.

&gt; 3) (Unique to Selenium) Selenium tries to communicate with pypi before it
&gt; checks if it&apos;s actually installed. Which is a bit crazy since if we have a
&gt; good version of Selenium, we can just skip all the networks stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489958</commentid>
    <comment_count>6</comment_count>
      <attachid>357837</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-12-20 11:28:45 -0800</bug_when>
    <thetext>Created attachment 357837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489971</commentid>
    <comment_count>7</comment_count>
      <attachid>357843</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-12-20 11:44:02 -0800</bug_when>
    <thetext>Created attachment 357843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1489981</commentid>
    <comment_count>8</comment_count>
      <attachid>357846</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-12-20 11:59:47 -0800</bug_when>
    <thetext>Created attachment 357846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490015</commentid>
    <comment_count>9</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-12-20 12:53:06 -0800</bug_when>
    <thetext>Just realized that the only reason our bots haven&apos;t hit this is that they have cached versions of the libraries. This patch changes the urls in the cache, so this is almost certainly going to break any EWS machine it runs on until it lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490019</commentid>
    <comment_count>10</comment_count>
      <attachid>357846</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-12-20 13:03:31 -0800</bug_when>
    <thetext>Comment on attachment 357846
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490026</commentid>
    <comment_count>11</comment_count>
      <attachid>357846</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-20 13:13:49 -0800</bug_when>
    <thetext>Comment on attachment 357846
Patch

Rejecting attachment 357846 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-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 357846, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

No handlers could be found for logger &quot;webkitpy.common.system.autoinstall&quot;
Traceback (most recent call last):
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&quot;, line 44, in &lt;module&gt;
    from webkitpy.tool.main import WebKitPatch
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/tool/main.py&quot;, line 41, in &lt;module&gt;
    from webkitpy.common.net.statusserver import StatusServer
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/common/net/statusserver.py&quot;, line 33, in &lt;module&gt;
    from webkitpy.common.net.bugzilla.attachment import Attachment
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/common/net/bugzilla/__init__.py&quot;, line 4, in &lt;module&gt;
    from .bugzilla import Bugzilla
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/common/net/bugzilla/bugzilla.py&quot;, line 49, in &lt;module&gt;
    from webkitpy.common.net.credentials import Credentials
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/common/net/credentials.py&quot;, line 40, in &lt;module&gt;
    from webkitpy.thirdparty.autoinstalled import keyring
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/__init__.py&quot;, line 100, in find_module
    self._install_keyring()
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/__init__.py&quot;, line 124, in _install_keyring
    &quot;keyring-7.3.1/keyring&quot;)
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/__init__.py&quot;, line 257, in _install
    installer.install(url=url, url_subpath=url_subpath, target_name=target_name)
  File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/common/system/autoinstall.py&quot;, line 517, in install
    raise Exception(message)
Exception: Error auto-installing the keyring package to:
 &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/autoinstalled/keyring&quot;
 --&gt; Inner message: Could not download Python modules from URL &quot;None&quot;.
 Make sure you are connected to the internet.
 You must be connected to the internet when downloading needed modules for the first time.
 --&gt; Inner message: &lt;urlopen error [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590)&gt;

Full output: https://webkit-queues.webkit.org/results/10495748</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490032</commentid>
    <comment_count>12</comment_count>
      <attachid>357846</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-12-20 13:27:23 -0800</bug_when>
    <thetext>Comment on attachment 357846
Patch

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

&gt; Tools/ChangeLog:11
&gt; +        We should check for Selenium before asking PyPi for the latest version.

Why?

&gt; Tools/Scripts/webkitpy/thirdparty/__init__.py:237
&gt; +        if os.path.isfile(os.path.join(_AUTOINSTALLED_DIR, &apos;selenium&apos;, &apos;__init__.py&apos;)):
&gt; +            import selenium.webdriver
&gt; +            if AutoinstallImportHook.greater_than_equal_to_version(minimum_version, selenium.webdriver.__version__):
&gt; +                return
&gt; +
&gt;          try:
&gt;              url, url_subpath = self.get_latest_pypi_url(&apos;selenium&apos;)
&gt;          except urllib2.URLError:
&gt; -            minimum_version = &apos;3.5.0&apos;
&gt; -            if os.path.isfile(os.path.join(_AUTOINSTALLED_DIR, &apos;selenium&apos;, &apos;__init__.py&apos;)):
&gt; -                import selenium.webdriver
&gt; -                if AutoinstallImportHook.greater_than_equal_to_version(minimum_version, selenium.webdriver.__version__):
&gt; -                    sys.stderr.write(&apos;\nFailed to find latest selenium, falling back to existing {} version\n&apos;.format(selenium.webdriver.__version__))
&gt; -                    return
&gt; -
&gt;              # URL for installing the minimum required version.
&gt; -            url = &apos;https://pypi.python.org/packages/ac/d7/1928416439d066c60f26c87a8d1b78a8edd64c7d05a0aa917fa97a8ee02d/selenium-3.5.0.tar.gz#986702fdd0e2aec6a4eda134678b8b3f&apos;
&gt; +            url = &apos;https://files.pythonhosted.org/packages/ac/d7/1928416439d066c60f26c87a8d1b78a8edd64c7d05a0aa917fa97a8ee02d/selenium-3.5.0.tar.gz&apos;
&gt;              url_subpath = &apos;selenium-{}/selenium&apos;.format(minimum_version)
&gt;              sys.stderr.write(&apos;\nFailed to find latest selenium, falling back to minimum {} version\n&apos;.format(minimum_version))
&gt;          self._install(url=url, url_subpath=url_subpath)

...now we never auto update to the latest Selenium. Disregarding a person that manually updates into _AUTOINSTALLED_DIR (do people do that or expected to do that?), we are forever stuck with 3.5.0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490033</commentid>
    <comment_count>13</comment_count>
      <attachid>357846</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-12-20 13:28:40 -0800</bug_when>
    <thetext>Comment on attachment 357846
Patch

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

&gt; Tools/Scripts/webkitpy/thirdparty/__init__.py:222
&gt; +
&gt; +        installer = AutoInstaller(prepend_to_search_path=True, target_dir=self._fs.join(_AUTOINSTALLED_DIR, &quot;urllib3&quot;))
&gt; +        installer.install(url=&quot;https://files.pythonhosted.org/packages/b1/53/37d82ab391393565f2f831b8eedbffd57db5a718216f82f1a8b4d381a1c1/urllib3-1.24.1.tar.gz&quot;, url_subpath=&quot;urllib3-1.24.1&quot;)

Weird that this _install_selenium function installs URLlib. Seems like a violation of separation of responsibilities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490036</commentid>
    <comment_count>14</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-12-20 13:37:10 -0800</bug_when>
    <thetext>(In reply to Daniel Bates from comment #12)
&gt; Comment on attachment 357846 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=357846&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:11
&gt; &gt; +        We should check for Selenium before asking PyPi for the latest version.
&gt; 
&gt; Why?

Because otherwise every instantiation of test-webkitpy would need to check for a newer version of Selenium. Which 1) is not how the other libraries work and 2) would mean that any scripts using Selenium (namely test-webkitpy) would need to check for new versions of Selenium even if a version was already installed. Checking for the latest version is a network operation, there is no reason a script needs to do this ever time.

&gt; 
&gt; &gt; Tools/Scripts/webkitpy/thirdparty/__init__.py:237
&gt; &gt; +        if os.path.isfile(os.path.join(_AUTOINSTALLED_DIR, &apos;selenium&apos;, &apos;__init__.py&apos;)):
&gt; &gt; +            import selenium.webdriver
&gt; &gt; +            if AutoinstallImportHook.greater_than_equal_to_version(minimum_version, selenium.webdriver.__version__):
&gt; &gt; +                return
&gt; &gt; +
&gt; &gt;          try:
&gt; &gt;              url, url_subpath = self.get_latest_pypi_url(&apos;selenium&apos;)
&gt; &gt;          except urllib2.URLError:
&gt; &gt; -            minimum_version = &apos;3.5.0&apos;
&gt; &gt; -            if os.path.isfile(os.path.join(_AUTOINSTALLED_DIR, &apos;selenium&apos;, &apos;__init__.py&apos;)):
&gt; &gt; -                import selenium.webdriver
&gt; &gt; -                if AutoinstallImportHook.greater_than_equal_to_version(minimum_version, selenium.webdriver.__version__):
&gt; &gt; -                    sys.stderr.write(&apos;\nFailed to find latest selenium, falling back to existing {} version\n&apos;.format(selenium.webdriver.__version__))
&gt; &gt; -                    return
&gt; &gt; -
&gt; &gt;              # URL for installing the minimum required version.
&gt; &gt; -            url = &apos;https://pypi.python.org/packages/ac/d7/1928416439d066c60f26c87a8d1b78a8edd64c7d05a0aa917fa97a8ee02d/selenium-3.5.0.tar.gz#986702fdd0e2aec6a4eda134678b8b3f&apos;
&gt; &gt; +            url = &apos;https://files.pythonhosted.org/packages/ac/d7/1928416439d066c60f26c87a8d1b78a8edd64c7d05a0aa917fa97a8ee02d/selenium-3.5.0.tar.gz&apos;
&gt; &gt;              url_subpath = &apos;selenium-{}/selenium&apos;.format(minimum_version)
&gt; &gt;              sys.stderr.write(&apos;\nFailed to find latest selenium, falling back to minimum {} version\n&apos;.format(minimum_version))
&gt; &gt;          self._install(url=url, url_subpath=url_subpath)
&gt; 
&gt; ...now we never auto update to the latest Selenium. Disregarding a person
&gt; that manually updates into _AUTOINSTALLED_DIR (do people do that or expected
&gt; to do that?), we are forever stuck with 3.5.0.

That&apos;s the point. More accurately, we never update farther than the minimum supported version. If someone adds a feature which requires a newer version of Selenium, we can bump the minimum version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490039</commentid>
    <comment_count>15</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-12-20 13:39:00 -0800</bug_when>
    <thetext>(In reply to Daniel Bates from comment #13)
&gt; Comment on attachment 357846 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=357846&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/thirdparty/__init__.py:222
&gt; &gt; +
&gt; &gt; +        installer = AutoInstaller(prepend_to_search_path=True, target_dir=self._fs.join(_AUTOINSTALLED_DIR, &quot;urllib3&quot;))
&gt; &gt; +        installer.install(url=&quot;https://files.pythonhosted.org/packages/b1/53/37d82ab391393565f2f831b8eedbffd57db5a718216f82f1a8b4d381a1c1/urllib3-1.24.1.tar.gz&quot;, url_subpath=&quot;urllib3-1.24.1&quot;)
&gt; 
&gt; Weird that this _install_selenium function installs URLlib. Seems like a
&gt; violation of separation of responsibilities.

_install_buildbot does the exact same thing with Jinja, SQLAlchemy and Twisted. Selenium needs urllib3, so we need to make sure it&apos;s installed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490045</commentid>
    <comment_count>16</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-12-20 13:41:00 -0800</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #11)
&gt; Comment on attachment 357846 [details]
&gt; Patch
&gt; 
&gt; Rejecting attachment 357846 [details] from commit-queue.
&gt; 
&gt; Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;,
&gt; &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;,
&gt; &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 357846,
&gt; &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
&gt; 
&gt; No handlers could be found for logger &quot;webkitpy.common.system.autoinstall&quot;
&gt; Traceback (most recent call last):
&gt;   File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&quot;, line 44, in
&gt; &lt;module&gt;
&gt;     from webkitpy.tool.main import WebKitPatch
&gt;   File &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/tool/main.py&quot;, line
&gt; 41, in &lt;module&gt;
&gt;     from webkitpy.common.net.statusserver import StatusServer
&gt;   File
&gt; &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/common/net/statusserver.py&quot;,
&gt; line 33, in &lt;module&gt;
&gt;     from webkitpy.common.net.bugzilla.attachment import Attachment
&gt;   File
&gt; &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/common/net/bugzilla/
&gt; __init__.py&quot;, line 4, in &lt;module&gt;
&gt;     from .bugzilla import Bugzilla
&gt;   File
&gt; &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/common/net/bugzilla/
&gt; bugzilla.py&quot;, line 49, in &lt;module&gt;
&gt;     from webkitpy.common.net.credentials import Credentials
&gt;   File
&gt; &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/common/net/credentials.py&quot;,
&gt; line 40, in &lt;module&gt;
&gt;     from webkitpy.thirdparty.autoinstalled import keyring
&gt;   File
&gt; &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/__init__.py&quot;,
&gt; line 100, in find_module
&gt;     self._install_keyring()
&gt;   File
&gt; &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/__init__.py&quot;,
&gt; line 124, in _install_keyring
&gt;     &quot;keyring-7.3.1/keyring&quot;)
&gt;   File
&gt; &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/__init__.py&quot;,
&gt; line 257, in _install
&gt;     installer.install(url=url, url_subpath=url_subpath,
&gt; target_name=target_name)
&gt;   File
&gt; &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/common/system/autoinstall.
&gt; py&quot;, line 517, in install
&gt;     raise Exception(message)
&gt; Exception: Error auto-installing the keyring package to:
&gt;  &quot;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkitpy/thirdparty/autoinstalled/
&gt; keyring&quot;
&gt;  --&gt; Inner message: Could not download Python modules from URL &quot;None&quot;.
&gt;  Make sure you are connected to the internet.
&gt;  You must be connected to the internet when downloading needed modules for
&gt; the first time.
&gt;  --&gt; Inner message: &lt;urlopen error [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1
&gt; alert protocol version (_ssl.c:590)&gt;
&gt; 
&gt; Full output: https://webkit-queues.webkit.org/results/10495748

As I mentioned in Comment 9, this patch updated the auto installed cache on the EWS machine and now that machine is broken until this patch lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490047</commentid>
    <comment_count>17</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-12-20 13:45:14 -0800</bug_when>
    <thetext>Committed r239465: &lt;https://trac.webkit.org/changeset/239465&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490053</commentid>
    <comment_count>18</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-12-20 13:51:36 -0800</bug_when>
    <thetext>(In reply to Daniel Bates from comment #12)
&gt; ...
&gt; 
&gt; ...now we never auto update to the latest Selenium. Disregarding a person
&gt; that manually updates into _AUTOINSTALLED_DIR (do people do that or expected
&gt; to do that?), we are forever stuck with 3.5.0.

Since this change was about preventing a serious problem where test-webkitpy would not work in some circumstances, I think discussing the precise behavior of Selenium&apos;s auto-install should be done here &lt;https://bugs.webkit.org/show_bug.cgi?id=192954&gt;.

I&apos;m not necessarily against auto-updating Selenium, it&apos;s just that the previous auto-updating behavior was actively harmful to engineering workflows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490085</commentid>
    <comment_count>19</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2018-12-20 14:43:43 -0800</bug_when>
    <thetext>I&apos;ve been bitten by auto-updated PyPI packages before, in particular pytest, urllib3, and and selenium. Is there some expected benefit from dependencies randomly changing out from under us?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490110</commentid>
    <comment_count>20</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-12-20 15:48:25 -0800</bug_when>
    <thetext>(In reply to Brian Burg from comment #19)
&gt; I&apos;ve been bitten by auto-updated PyPI packages before, in particular pytest,
&gt; urllib3, and and selenium. Is there some expected benefit from dependencies
&gt; randomly changing out from under us?

With the exception of Selenium, none of these packages actually auto-update, they are just auto-installed. Basically, this whole part of webkitpy is a re-implementation of virtualenv.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490122</commentid>
    <comment_count>21</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-12-20 15:56:17 -0800</bug_when>
    <thetext>For anyone stumbling upon this bug in the future:

BE VERY CAREFUL MAKING CHANGES LIKE THIS

As it turns out, all of this auto-install stuff is basically a house of cards in our infrastructure. This change brought down commit queue, not because the previous code was working (it wasn&apos;t) but because the machines on commit queue had cached the previous version of the libraries and the version of TLS used by urllib2 on Sierra is rejected server-side. We manually repaired the bots, but further changes to the auto-installed urls would bring down commit queue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357837</attachid>
            <date>2018-12-20 11:28:45 -0800</date>
            <delta_ts>2018-12-20 11:44:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192909-20181220112844.patch</filename>
            <type>text/plain</type>
            <size>15097</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzOTQ1NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMxIEBACisyMDE4LTEyLTIwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogQXV0b2luc3RhbGwgcGFja2FnZSBVUkxzIGhhdmUgY2hh
bmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTky
OTA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80Njg2MDM1OT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQeVBpIHVybHMgaGF2ZSBiZWVuIG1vdmVk
IGFyb3VuZCwgd2UgbmVlZCB0byB1cGRhdGUgb3VyIGF1dG8taW5zdGFsbGVkIHBhY2thZ2VzLgor
CisgICAgICAgIFdlIHNob3VsZCBjaGVjayBmb3IgU2VsZW5pdW0gYmVmb3JlIGFza2luZyBQeVBp
IGZvciB0aGUgbGF0ZXN0IHZlcnNpb24uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Ro
aXJkcGFydHkvX19pbml0X18ucHk6CisgICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2lu
c3RhbGxfbWVjaGFuaXplKTogVXBkYXRlIHdpdGggbmV3IHB5cGkgdXJsLgorICAgICAgICAoQXV0
b2luc3RhbGxJbXBvcnRIb29rLl9pbnN0YWxsX2tleXJpbmcpOiBEaXR0by4KKyAgICAgICAgKEF1
dG9pbnN0YWxsSW1wb3J0SG9vay5faW5zdGFsbF9wZXA4KTogRGl0dG8uCisgICAgICAgIChBdXRv
aW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfbW96bG9nKTogRGl0dG8uCisgICAgICAgIChBdXRv
aW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfbW96cHJvY2Vzcyk6IERpdHRvLgorICAgICAgICAo
QXV0b2luc3RhbGxJbXBvcnRIb29rLl9pbnN0YWxsX3B5dGVzdF90aW1lb3V0KTogRGl0dG8uCisg
ICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfcHl0ZXN0KTogRGl0dG8uCisg
ICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfcHlsaW50KTogRGl0dG8uCisg
ICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfYnVpbGRib3QpOiBEaXR0by4K
KyAgICAgICAgKEF1dG9pbnN0YWxsSW1wb3J0SG9vay5faW5zdGFsbF9jb3ZlcmFnZSk6IERpdHRv
LgorICAgICAgICAoQXV0b2luc3RhbGxJbXBvcnRIb29rLl9pbnN0YWxsX3R3aXN0ZWRfMTVfNV8w
KTogRGl0dG8uCisgICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfc2VsZW5p
dW0pOiBVcGRhdGUgd2l0aCBuZXcgcHlwaSB1cmwsIG9ubHkgY2hlY2sKKyAgICAgICAgZm9yIG5l
dyBTZWxlbml1bSBpZiB0aGUgaW5zdGFsbGVkIHZlcnNpb24gaXNuJ3Qgc3VmZmljaWVudC4KKyAg
ICAgICAgKEF1dG9pbnN0YWxsSW1wb3J0SG9vay5nZXRfbGF0ZXN0X3B5cGlfdXJsKTogVXBkYXRl
IHdpdGggbmV3IHB5cGkgdXJsLgorCiAyMDE4LTEyLTIwICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRk
YWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMzk0MTcu
CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18ucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fLnB5
CShyZXZpc2lvbiAyMzk0NDUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkv
X19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTExNiw1MCArMTE2LDQ4IEBAIGNsYXNzIEF1
dG9pbnN0YWxsSW1wb3J0SG9vayhvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5faW5zdGFsbF9w
eXRlc3QoKQogCiAgICAgZGVmIF9pbnN0YWxsX21lY2hhbml6ZShzZWxmKToKLSAgICAgICAgc2Vs
Zi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291cmNlL20vbWVj
aGFuaXplL21lY2hhbml6ZS0wLjIuNS50YXIuZ3oiLAorICAgICAgICBzZWxmLl9pbnN0YWxsKCJo
dHRwczovL2ZpbGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvc291cmNlL20vbWVjaGFuaXpl
L21lY2hhbml6ZS0wLjIuNS50YXIuZ3oiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
bWVjaGFuaXplLTAuMi41L21lY2hhbml6ZSIpCiAKICAgICBkZWYgX2luc3RhbGxfa2V5cmluZyhz
ZWxmKToKLSAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFj
a2FnZXMvN2QvYTkvOGM2YmY2MDcxMDc4MWNlMTNhOTk4N2MwZGViZGE4YWRhYjM1ZWI3OWM2YjU1
MjVmN2ZlNTI0MGI3YThhL2tleXJpbmctNy4zLjEudGFyLmd6I21kNT05OWRkNzkzZTEyMzM5NjRl
Yjg3Y2Y1NjQwNmVlNjZmNiIsCisgICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8vZmlsZXMu
cHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy83ZC9hOS84YzZiZjYwNzEwNzgxY2UxM2E5OTg3YzBk
ZWJkYThhZGFiMzVlYjc5YzZiNTUyNWY3ZmU1MjQwYjdhOGEva2V5cmluZy03LjMuMS50YXIuZ3oi
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia2V5cmluZy03LjMuMS9rZXlyaW5nIikK
IAogICAgIGRlZiBfaW5zdGFsbF9wZXA4KHNlbGYpOgotICAgICAgICBzZWxmLl9pbnN0YWxsKCJo
dHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2UvcC9wZXA4L3BlcDgtMC41LjAu
dGFyLmd6I21kNT01MTJhODE4YWY5OTc5MjkwY2Q2MTljY2U4ZTljMmUyYiIsCisgICAgICAgIHNl
bGYuX2luc3RhbGwoImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3Vy
Y2UvcC9wZXA4L3BlcDgtMC41LjAudGFyLmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInBlcDgtMC41LjAvcGVwOC5weSIpCiAKICAgICBkZWYgX2luc3RhbGxfbW96bG9nKHNlbGYp
OgogICAgICAgICBzZWxmLl9lbnN1cmVfYXV0b2luc3RhbGxlZF9kaXJfaXNfaW5fc3lzX3BhdGgo
KQotICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdl
cy8xMC9kNS9kMjg2YjVkYzNmNDBlMzJkMmE5YjNjYWIwYjViMjBhMDVkNzA0OTU4YjQ0YjRjNWE5
YWVkNjQ3MmRlYWIvbW96bG9nLTMuNS50YXIuZ3ojbWQ1PTMyODJjNzBlNzAzNzI2NmY4M2Q4Yzgw
MTE5MTI5Yjc1IiwKKyAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9maWxlcy5weXRob25o
b3N0ZWQub3JnL3BhY2thZ2VzLzEwL2Q1L2QyODZiNWRjM2Y0MGUzMmQyYTliM2NhYjBiNWIyMGEw
NWQ3MDQ5NThiNDRiNGM1YTlhZWQ2NDcyZGVhYi9tb3psb2ctMy41LnRhci5neiIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibW96bG9nLTMuNS9tb3psb2ciKQogCiAgICAgZGVmIF9p
bnN0YWxsX21venByb2Nlc3Moc2VsZik6CiAgICAgICAgIHNlbGYuX2Vuc3VyZV9hdXRvaW5zdGFs
bGVkX2Rpcl9pc19pbl9zeXNfcGF0aCgpCi0gICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8v
cHlwaS5weXRob24ub3JnL3BhY2thZ2VzL2NiLzI2LzE0NGRiYzI4ZDFmNDBlMzkyZjhhMGNiZWU3
NzFiYTYyNGE2MTAxN2YwMTZjNzdhZDg4NDI0ZDg0YjIzMC9tb3pwcm9jZXNzLTAuMjUudGFyLmd6
I21kNT0wN2EwNGU2YWUxYTcwNTcwNWU0YjQ0OTY5ZmU3YTE4MiIsCisgICAgICAgIHNlbGYuX2lu
c3RhbGwoImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9jYi8yNi8xNDRk
YmMyOGQxZjQwZTM5MmY4YTBjYmVlNzcxYmE2MjRhNjEwMTdmMDE2Yzc3YWQ4ODQyNGQ4NGIyMzAv
bW96cHJvY2Vzcy0wLjI1LnRhci5neiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
bW96cHJvY2Vzcy0wLjI1L21venByb2Nlc3MiKQogCiAgICAgZGVmIF9pbnN0YWxsX3B5dGVzdF90
aW1lb3V0KHNlbGYpOgotICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL3B5cGkucHl0aG9u
Lm9yZy9wYWNrYWdlcy9jYy9iNy9iMmE2MTM2NWVhNmI2ZDJlODg4MTM2MGFlN2VkOGRhZDAzMjdh
ZDJkZjg5ZjJmMGJlNGEwMjMwNGRlYjIvcHl0ZXN0LXRpbWVvdXQtMS4yLjAudGFyLmd6I21kNT04
MzYwN2Q5MWFhMTYzNTYyYzdlZTgzNWRhNTdkMDYxZCIsCisgICAgICAgIHNlbGYuX2luc3RhbGwo
Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9jYy9iNy9iMmE2MTM2NWVh
NmI2ZDJlODg4MTM2MGFlN2VkOGRhZDAzMjdhZDJkZjg5ZjJmMGJlNGEwMjMwNGRlYjIvcHl0ZXN0
LXRpbWVvdXQtMS4yLjAudGFyLmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
eXRlc3QtdGltZW91dC0xLjIuMC9weXRlc3RfdGltZW91dC5weSIpCiAKICAgICBkZWYgX2luc3Rh
bGxfcHl0ZXN0KHNlbGYpOgotICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL3B5cGkucHl0
aG9uLm9yZy9wYWNrYWdlcy85MC9lMy9lMDc1MTI3ZDM5ZDM1ZjA5YTUwMGViYjRhOTBhZmQxMGY5
ZWYwYTFkMjhhNmQwOWFiZWVjMGU0NDRmZGQvcHktMS41LjIudGFyLmd6I21kNT0yNzljYTY5YzYz
MjA2OWUxYjcxZTExYjE0NjQxY2EyOCIsCisgICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8v
ZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy85MC9lMy9lMDc1MTI3ZDM5ZDM1ZjA5YTUw
MGViYjRhOTBhZmQxMGY5ZWYwYTFkMjhhNmQwOWFiZWVjMGU0NDRmZGQvcHktMS41LjIudGFyLmd6
IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJweS0xLjUuMi9weSIpCi0gICAgICAg
IHNlbGYuX2luc3RhbGwoImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzLzExL2JmL2Ni
ZWI4Y2RmYWZmYTlmMmVhMTU0YTMwYWUzMWE5ZDA0YTEyMDkzMTJlMjkxOTEzOGI0MTcxYTFmODE5
OS9wbHVnZ3ktMC42LjAudGFyLmd6IiwKKyAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9m
aWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2thZ2VzLzExL2JmL2NiZWI4Y2RmYWZmYTlmMmVhMTU0
YTMwYWUzMWE5ZDA0YTEyMDkzMTJlMjkxOTEzOGI0MTcxYTFmODE5OS9wbHVnZ3ktMC42LjAudGFy
Lmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbHVnZ3ktMC42LjAvcGx1Z2d5
IikKLSAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2Fn
ZXMvYzAvMmYvNjc3MzM0NzI3N2Q3NmM1YWRlNDQxNGE2YzNmNzg1ZWYyN2U3ZjVjNGIwODcwZWM3
ZTg4OGU2NmE4ZDgzL21vcmUtaXRlcnRvb2xzLTQuMi4wLnRhci5neiIsCisgICAgICAgIHNlbGYu
X2luc3RhbGwoImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9jMC8yZi82
NzczMzQ3Mjc3ZDc2YzVhZGU0NDE0YTZjM2Y3ODVlZjI3ZTdmNWM0YjA4NzBlYzdlODg4ZTY2YThk
ODMvbW9yZS1pdGVydG9vbHMtNC4yLjAudGFyLmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJtb3JlLWl0ZXJ0b29scy00LjIuMC9tb3JlX2l0ZXJ0b29scyIpCi0gICAgICAgIHNl
bGYuX2luc3RhbGwoImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzLzE2L2Q4L2JjNjMx
NmNmOTg0MTk3MTliZDU5YzkxNzQyMTk0YzExMWI2ZjJlODVhYmFjODhlNDk2YWRlZmFmN2FmZS9z
aXgtMS4xMS4wLnRhci5neiIsCisgICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8vZmlsZXMu
cHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy8xNi9kOC9iYzYzMTZjZjk4NDE5NzE5YmQ1OWM5MTc0
MjE5NGMxMTFiNmYyZTg1YWJhYzg4ZTQ5NmFkZWZhZjdhZmUvc2l4LTEuMTEuMC50YXIuZ3oiLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNpeC0xLjExLjAvc2l4LnB5IikKLSAgICAg
ICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvYTEvZTEv
MmQ5YmM3NjgzOGU2ZTY2NjdmZGU1ODE0YWEyNWQ3ZmViOTNkNmZhNDcxYmY2ODE2ZGFhYzI1OTZl
OGIyL2F0b21pY3dyaXRlcy0xLjEuNS50YXIuZ3oiLAorICAgICAgICBzZWxmLl9pbnN0YWxsKCJo
dHRwczovL2ZpbGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvYTEvZTEvMmQ5YmM3NjgzOGU2
ZTY2NjdmZGU1ODE0YWEyNWQ3ZmViOTNkNmZhNDcxYmY2ODE2ZGFhYzI1OTZlOGIyL2F0b21pY3dy
aXRlcy0xLjEuNS50YXIuZ3oiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF0b21p
Y3dyaXRlcy0xLjEuNS9hdG9taWN3cml0ZXMiKQotICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRw
czovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy85NC80YS9kYjg0MmU3YTA1NDVkZTFjZGIwNDM5
YmI4MGU2ZTQyZGZlODJhYWVhYWRkNDA3MmYyMjYzYTRmYmVkMjMvZnVuY3NpZ3MtMS4wLjIudGFy
Lmd6IiwKKyAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQu
b3JnL3BhY2thZ2VzLzk0LzRhL2RiODQyZTdhMDU0NWRlMWNkYjA0MzliYjgwZTZlNDJkZmU4MmFh
ZWFhZGQ0MDcyZjIyNjNhNGZiZWQyMy9mdW5jc2lncy0xLjAuMi50YXIuZ3oiLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImZ1bmNzaWdzLTEuMC4yL2Z1bmNzaWdzIikKLSAgICAgICAg
c2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvZTQvYWMvYTA0
NjcxZTExOGI1N2JlZTg3ZGFiY2ExZTBmMmQzYmRhODE2YjdhNTUxMDM2MDEyZDBjYTI0MTkwZTcx
L2F0dHJzLTE4LjEuMC50YXIuZ3oiLAorICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL2Zp
bGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvZTQvYWMvYTA0NjcxZTExOGI1N2JlZTg3ZGFi
Y2ExZTBmMmQzYmRhODE2YjdhNTUxMDM2MDEyZDBjYTI0MTkwZTcxL2F0dHJzLTE4LjEuMC50YXIu
Z3oiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF0dHJzLTE4LjEuMC9zcmMvYXR0
ciIpCi0gICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2th
Z2VzL2EyL2VjLzQxNWQwY2NjYzFlZDQxY2Q3ZmRmNjlhZDk4OWRhMTZhOGQxMzA1Nzk5NjM3MTAw
NGNhYjRiYWZjNDhmMy9weXRlc3QtMy42LjIudGFyLmd6IiwKKyAgICAgICAgc2VsZi5faW5zdGFs
bCgiaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2thZ2VzL2EyL2VjLzQxNWQwY2Nj
YzFlZDQxY2Q3ZmRmNjlhZDk4OWRhMTZhOGQxMzA1Nzk5NjM3MTAwNGNhYjRiYWZjNDhmMy9weXRl
c3QtMy42LjIudGFyLmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJweXRlc3Qt
My42LjIvc3JjL19weXRlc3QiKQotICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL3B5cGku
cHl0aG9uLm9yZy9wYWNrYWdlcy9hMi9lYy80MTVkMGNjY2MxZWQ0MWNkN2ZkZjY5YWQ5ODlkYTE2
YThkMTMwNTc5OTYzNzEwMDRjYWI0YmFmYzQ4ZjMvcHl0ZXN0LTMuNi4yLnRhci5neiIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAicHl0ZXN0LTMuNi4yL3NyYy9weXRlc3QucHkiKQog
CiAgICAgZGVmIF9pbnN0YWxsX3B5bGludChzZWxmKToKICAgICAgICAgc2VsZi5fZW5zdXJlX2F1
dG9pbnN0YWxsZWRfZGlyX2lzX2luX3N5c19wYXRoKCkKQEAgLTE3MCw5ICsxNjgsOSBAQCBjbGFz
cyBBdXRvaW5zdGFsbEltcG9ydEhvb2sob2JqZWN0KToKICAgICAgICAgICAgIGZpbGVzX3RvX3Jl
bW92ZSA9IFtdCiAgICAgICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKICAgICAg
ICAgICAgICAgICBmaWxlc190b19yZW1vdmUgPSBbJ3Rlc3QvZGF0YS93cml0ZV9wcm90ZWN0ZWRf
ZmlsZS50eHQnXQotICAgICAgICAgICAgaW5zdGFsbGVyLmluc3RhbGwoImh0dHBzOi8vcHlwaS5w
eXRob24ub3JnL3BhY2thZ2VzL3NvdXJjZS9sL2xvZ2lsYWItY29tbW9uL2xvZ2lsYWItY29tbW9u
LTAuNTguMS50YXIuZ3ojbWQ1PTc3Mjk4YWIyZDhiYjhiNGFmOTIxOTc5MWU3Y2VlOGNlIiwgdXJs
X3N1YnBhdGg9ImxvZ2lsYWItY29tbW9uLTAuNTguMSIsIHRhcmdldF9uYW1lPSJsb2dpbGFiL2Nv
bW1vbiIsIGZpbGVzX3RvX3JlbW92ZT1maWxlc190b19yZW1vdmUpCi0gICAgICAgICAgICBpbnN0
YWxsZXIuaW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291cmNlL2wv
bG9naWxhYi1hc3RuZy9sb2dpbGFiLWFzdG5nLTAuMjQuMS50YXIuZ3ojbWQ1PWRkYWY2NmU0ZDg1
NzE0ZDljNDdhNDZkNGJlZDQwNmRlIiwgdXJsX3N1YnBhdGg9ImxvZ2lsYWItYXN0bmctMC4yNC4x
IiwgdGFyZ2V0X25hbWU9ImxvZ2lsYWIvYXN0bmciKQotICAgICAgICAgICAgaW5zdGFsbGVyLmlu
c3RhbGwoJ2h0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzL3NvdXJjZS9wL3B5bGludC9w
eWxpbnQtMC4yNS4yLnRhci5neiNtZDU9ZDg3OGQ3Njg4YTRmNTI5MGRjNWI1M2E4MzY4NzI0MDAn
LCB1cmxfc3VicGF0aD0icHlsaW50LTAuMjUuMiIsIHRhcmdldF9uYW1lPSJweWxpbnQiKQorICAg
ICAgICAgICAgaW5zdGFsbGVyLmluc3RhbGwoImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9y
Zy9wYWNrYWdlcy9zb3VyY2UvbC9sb2dpbGFiLWNvbW1vbi9sb2dpbGFiLWNvbW1vbi0wLjU4LjEu
dGFyLmd6IiwgdXJsX3N1YnBhdGg9ImxvZ2lsYWItY29tbW9uLTAuNTguMSIsIHRhcmdldF9uYW1l
PSJsb2dpbGFiL2NvbW1vbiIsIGZpbGVzX3RvX3JlbW92ZT1maWxlc190b19yZW1vdmUpCisgICAg
ICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCgiaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3Jn
L3BhY2thZ2VzL3NvdXJjZS9sL2xvZ2lsYWItYXN0bmcvbG9naWxhYi1hc3RuZy0wLjI0LjEudGFy
Lmd6IiwgdXJsX3N1YnBhdGg9ImxvZ2lsYWItYXN0bmctMC4yNC4xIiwgdGFyZ2V0X25hbWU9Imxv
Z2lsYWIvYXN0bmciKQorICAgICAgICAgICAgaW5zdGFsbGVyLmluc3RhbGwoJ2h0dHBzOi8vZmls
ZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2UvcC9weWxpbnQvcHlsaW50LTAuMjUu
Mi50YXIuZ3onLCB1cmxfc3VicGF0aD0icHlsaW50LTAuMjUuMiIsIHRhcmdldF9uYW1lPSJweWxp
bnQiKQogCiAgICAgIyBhdXRvaW5zdGFsbGVkLmJ1aWxkYm90IGlzIHVzZWQgYnkgQnVpbGRTbGF2
ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvbWFzdGVyY2ZnX3VuaXR0ZXN0LnB5CiAg
ICAgIyBhbmQgc2hvdWxkIGlkZWFsbHkgbWF0Y2ggdGhlIHZlcnNpb24gb2YgQnVpbGRCb3QgdXNl
ZCBhdCBidWlsZC53ZWJraXQub3JnLgpAQCAtMTg0LDI5ICsxODIsMjkgQEAgY2xhc3MgQXV0b2lu
c3RhbGxJbXBvcnRIb29rKG9iamVjdCk6CiAgICAgICAgICMgd2l0aG91dCBpbmNsdWRpbmcgb3Ro
ZXIgbW9kdWxlcyBhcyBhIHNpZGUgZWZmZWN0LgogICAgICAgICBqaW5qYV9kaXIgPSBzZWxmLl9m
cy5qb2luKF9BVVRPSU5TVEFMTEVEX0RJUiwgImppbmphMiIpCiAgICAgICAgIGluc3RhbGxlciA9
IEF1dG9JbnN0YWxsZXIoYXBwZW5kX3RvX3NlYXJjaF9wYXRoPVRydWUsIHRhcmdldF9kaXI9amlu
amFfZGlyKQotICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHBzOi8vcHlwaS5weXRo
b24ub3JnL3BhY2thZ2VzL3NvdXJjZS9KL0ppbmphMi9KaW5qYTItMi42LnRhci5neiNtZDU9MWM0
OWE4ODI1Yzk5M2JmZGNmNTViYjM2ODk3ZDI4YTIiLAorICAgICAgICBpbnN0YWxsZXIuaW5zdGFs
bCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2UvSi9K
aW5qYTIvSmluamEyLTIuNi50YXIuZ3oiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdXJsX3N1YnBhdGg9IkppbmphMi0yLjYvamluamEyIikKIAogICAg
ICAgICBTUUxBbGNoZW15X2RpciA9IHNlbGYuX2ZzLmpvaW4oX0FVVE9JTlNUQUxMRURfRElSLCAi
c3FsYWxjaGVteSIpCiAgICAgICAgIGluc3RhbGxlciA9IEF1dG9JbnN0YWxsZXIoYXBwZW5kX3Rv
X3NlYXJjaF9wYXRoPVRydWUsIHRhcmdldF9kaXI9U1FMQWxjaGVteV9kaXIpCi0gICAgICAgIGlu
c3RhbGxlci5pbnN0YWxsKHVybD0iaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291
cmNlL1MvU1FMQWxjaGVteS9TUUxBbGNoZW15LTAuNy43LnRhci5neiNtZDU9ZGRmNmRmN2UwMTRj
ZWEzMThmYTk4MTM2NGYzZjkzYjkiLAorICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0
dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2UvUy9TUUxBbGNoZW15
L1NRTEFsY2hlbXktMC43LjcudGFyLmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1cmxfc3VicGF0aD0iU1FMQWxjaGVteS0wLjcuNy9saWIvc3Fs
YWxjaGVteSIpCiAKICAgICAgICAgdHdpc3RlZF9kaXIgPSBzZWxmLl9mcy5qb2luKF9BVVRPSU5T
VEFMTEVEX0RJUiwgInR3aXN0ZWQiKQogICAgICAgICBpbnN0YWxsZXIgPSBBdXRvSW5zdGFsbGVy
KHByZXBlbmRfdG9fc2VhcmNoX3BhdGg9VHJ1ZSwgdGFyZ2V0X2Rpcj10d2lzdGVkX2RpcikKLSAg
ICAgICAgaW5zdGFsbGVyLmluc3RhbGwodXJsPSJodHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNr
YWdlcy9zb3VyY2UvVC9Ud2lzdGVkL1R3aXN0ZWQtMTIuMS4wLnRhci5iejIjbWQ1PWYzOTZmMWQ2
ZjUzMjFlODY5YzJmODliMjE5NmE5ZWI1IiwgdXJsX3N1YnBhdGg9IlR3aXN0ZWQtMTIuMS4wL3R3
aXN0ZWQiKQorICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0
aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2UvVC9Ud2lzdGVkL1R3aXN0ZWQtMTIuMS4wLnRh
ci5iejIiLCB1cmxfc3VicGF0aD0iVHdpc3RlZC0xMi4xLjAvdHdpc3RlZCIpCiAKLSAgICAgICAg
c2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291cmNlL2Iv
YnVpbGRib3QvYnVpbGRib3QtMC44LjZwMS50YXIuZ3ojbWQ1PWI2NzI3ZDI4MTBjNjkyMDYyYzY1
NzQ5MmJjYmVhYzZhIiwgImJ1aWxkYm90LTAuOC42cDEvYnVpbGRib3QiKQorICAgICAgICBzZWxm
Ll9pbnN0YWxsKCJodHRwczovL2ZpbGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvc291cmNl
L2IvYnVpbGRib3QvYnVpbGRib3QtMC44LjZwMS50YXIuZ3oiLCAiYnVpbGRib3QtMC44LjZwMS9i
dWlsZGJvdCIpCiAKICAgICBkZWYgX2luc3RhbGxfY292ZXJhZ2Uoc2VsZik6CiAgICAgICAgIHNl
bGYuX2Vuc3VyZV9hdXRvaW5zdGFsbGVkX2Rpcl9pc19pbl9zeXNfcGF0aCgpCi0gICAgICAgIHNl
bGYuX2luc3RhbGwodXJsPSJodHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2Uv
Yy9jb3ZlcmFnZS9jb3ZlcmFnZS0zLjUuMS50YXIuZ3ojbWQ1PTQxMGQ0YzgxNTVhNGRhYjIyMmYy
YmM1MTIxMmQ0YTI0IiwgdXJsX3N1YnBhdGg9ImNvdmVyYWdlLTMuNS4xL2NvdmVyYWdlIikKKyAg
ICAgICAgc2VsZi5faW5zdGFsbCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9w
YWNrYWdlcy9zb3VyY2UvYy9jb3ZlcmFnZS9jb3ZlcmFnZS0zLjUuMS50YXIuZ3oiLCB1cmxfc3Vi
cGF0aD0iY292ZXJhZ2UtMy41LjEvY292ZXJhZ2UiKQogCiAgICAgZGVmIF9pbnN0YWxsX3R3aXN0
ZWRfMTVfNV8wKHNlbGYpOgogICAgICAgICB0d2lzdGVkX2RpciA9IHNlbGYuX2ZzLmpvaW4oX0FV
VE9JTlNUQUxMRURfRElSLCAidHdpc3RlZF8xNV81XzAiKQogICAgICAgICBpbnN0YWxsZXIgPSBB
dXRvSW5zdGFsbGVyKHByZXBlbmRfdG9fc2VhcmNoX3BhdGg9VHJ1ZSwgdGFyZ2V0X2Rpcj10d2lz
dGVkX2RpcikKLSAgICAgICAgaW5zdGFsbGVyLmluc3RhbGwodXJsPSJodHRwczovL3B5cGkucHl0
aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2UvVC9Ud2lzdGVkL1R3aXN0ZWQtMTUuNS4wLnRhci5iejIj
bWQ1PTA4MzFkN2M5MGQwMDIwMDYyZGUwZjcyODc1MzBhMjg1IiwgdXJsX3N1YnBhdGg9IlR3aXN0
ZWQtMTUuNS4wL3R3aXN0ZWQiKQotICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHBz
Oi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzL3NvdXJjZS96L3pvcGUuaW50ZXJmYWNlL3pvcGUu
aW50ZXJmYWNlLTQuMS4zLnRhci5neiNtZDU9OWFlM2QyNGMwYzc0MTVkZWIyNDlkZDFhMTMyZjBm
NzkiLCB1cmxfc3VicGF0aD0iem9wZS5pbnRlcmZhY2UtNC4xLjMvc3JjL3pvcGUiKQorICAgICAg
ICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9w
YWNrYWdlcy9zb3VyY2UvVC9Ud2lzdGVkL1R3aXN0ZWQtMTUuNS4wLnRhci5iejIiLCB1cmxfc3Vi
cGF0aD0iVHdpc3RlZC0xNS41LjAvdHdpc3RlZCIpCisgICAgICAgIGluc3RhbGxlci5pbnN0YWxs
KHVybD0iaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2thZ2VzL3NvdXJjZS96L3pv
cGUuaW50ZXJmYWNlL3pvcGUuaW50ZXJmYWNlLTQuMS4zLnRhci5neiIsIHVybF9zdWJwYXRoPSJ6
b3BlLmludGVyZmFjZS00LjEuMy9zcmMvem9wZSIpCiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAg
ZGVmIGdyZWF0ZXJfdGhhbl9lcXVhbF90b192ZXJzaW9uKG1pbmltdW0sIHZlcnNpb24pOgpAQCAt
MjE5LDE4ICsyMTcsMTcgQEAgY2xhc3MgQXV0b2luc3RhbGxJbXBvcnRIb29rKG9iamVjdCk6CiAK
ICAgICBkZWYgX2luc3RhbGxfc2VsZW5pdW0oc2VsZik6CiAgICAgICAgIHNlbGYuX2Vuc3VyZV9h
dXRvaW5zdGFsbGVkX2Rpcl9pc19pbl9zeXNfcGF0aCgpCisgICAgICAgIG1pbmltdW1fdmVyc2lv
biA9ICczLjUuMCcKKyAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUob3MucGF0aC5qb2luKF9BVVRP
SU5TVEFMTEVEX0RJUiwgJ3NlbGVuaXVtJywgJ19faW5pdF9fLnB5JykpOgorICAgICAgICAgICAg
aW1wb3J0IHNlbGVuaXVtLndlYmRyaXZlcgorICAgICAgICAgICAgaWYgQXV0b2luc3RhbGxJbXBv
cnRIb29rLmdyZWF0ZXJfdGhhbl9lcXVhbF90b192ZXJzaW9uKG1pbmltdW1fdmVyc2lvbiwgc2Vs
ZW5pdW0ud2ViZHJpdmVyLl9fdmVyc2lvbl9fKToKKyAgICAgICAgICAgICAgICByZXR1cm4KKwog
ICAgICAgICB0cnk6CiAgICAgICAgICAgICB1cmwsIHVybF9zdWJwYXRoID0gc2VsZi5nZXRfbGF0
ZXN0X3B5cGlfdXJsKCdzZWxlbml1bScpCiAgICAgICAgIGV4Y2VwdCB1cmxsaWIyLlVSTEVycm9y
OgotICAgICAgICAgICAgbWluaW11bV92ZXJzaW9uID0gJzMuNS4wJwotICAgICAgICAgICAgaWYg
b3MucGF0aC5pc2ZpbGUob3MucGF0aC5qb2luKF9BVVRPSU5TVEFMTEVEX0RJUiwgJ3NlbGVuaXVt
JywgJ19faW5pdF9fLnB5JykpOgotICAgICAgICAgICAgICAgIGltcG9ydCBzZWxlbml1bS53ZWJk
cml2ZXIKLSAgICAgICAgICAgICAgICBpZiBBdXRvaW5zdGFsbEltcG9ydEhvb2suZ3JlYXRlcl90
aGFuX2VxdWFsX3RvX3ZlcnNpb24obWluaW11bV92ZXJzaW9uLCBzZWxlbml1bS53ZWJkcml2ZXIu
X192ZXJzaW9uX18pOgotICAgICAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCdcbkZh
aWxlZCB0byBmaW5kIGxhdGVzdCBzZWxlbml1bSwgZmFsbGluZyBiYWNrIHRvIGV4aXN0aW5nIHt9
IHZlcnNpb25cbicuZm9ybWF0KHNlbGVuaXVtLndlYmRyaXZlci5fX3ZlcnNpb25fXykpCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybgotCiAgICAgICAgICAgICAjIFVSTCBmb3IgaW5zdGFsbGlu
ZyB0aGUgbWluaW11bSByZXF1aXJlZCB2ZXJzaW9uLgotICAgICAgICAgICAgdXJsID0gJ2h0dHBz
Oi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzL2FjL2Q3LzE5Mjg0MTY0MzlkMDY2YzYwZjI2Yzg3
YThkMWI3OGE4ZWRkNjRjN2QwNWEwYWE5MTdmYTk3YThlZTAyZC9zZWxlbml1bS0zLjUuMC50YXIu
Z3ojOTg2NzAyZmRkMGUyYWVjNmE0ZWRhMTM0Njc4YjhiM2YnCisgICAgICAgICAgICB1cmwgPSAn
aHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2thZ2VzL2FjL2Q3LzE5Mjg0MTY0Mzlk
MDY2YzYwZjI2Yzg3YThkMWI3OGE4ZWRkNjRjN2QwNWEwYWE5MTdmYTk3YThlZTAyZC9zZWxlbml1
bS0zLjUuMC50YXIuZ3onCiAgICAgICAgICAgICB1cmxfc3VicGF0aCA9ICdzZWxlbml1bS17fS9z
ZWxlbml1bScuZm9ybWF0KG1pbmltdW1fdmVyc2lvbikKICAgICAgICAgICAgIHN5cy5zdGRlcnIu
d3JpdGUoJ1xuRmFpbGVkIHRvIGZpbmQgbGF0ZXN0IHNlbGVuaXVtLCBmYWxsaW5nIGJhY2sgdG8g
bWluaW11bSB7fSB2ZXJzaW9uXG4nLmZvcm1hdChtaW5pbXVtX3ZlcnNpb24pKQogICAgICAgICBz
ZWxmLl9pbnN0YWxsKHVybD11cmwsIHVybF9zdWJwYXRoPXVybF9zdWJwYXRoKQpAQCAtMjU2LDgg
KzI1Myw4IEBAIGNsYXNzIEF1dG9pbnN0YWxsSW1wb3J0SG9vayhvYmplY3QpOgogICAgICAgICBp
bnN0YWxsZXIuaW5zdGFsbCh1cmw9dXJsLCB1cmxfc3VicGF0aD11cmxfc3VicGF0aCwgdGFyZ2V0
X25hbWU9dGFyZ2V0X25hbWUpCiAKICAgICBkZWYgZ2V0X2xhdGVzdF9weXBpX3VybChzZWxmLCBw
YWNrYWdlX25hbWUsIHVybF9zdWJwYXRoX2Zvcm1hdD0ne25hbWV9LXt2ZXJzaW9ufS97bG5hbWV9
Jyk6Ci0gICAgICAgIGpzb25fdXJsID0gImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvJXMv
anNvbiIgJSBwYWNrYWdlX25hbWUKLSAgICAgICAgcmVzcG9uc2UgPSB1cmxsaWIyLnVybG9wZW4o
anNvbl91cmwpCisgICAgICAgIGpzb25fdXJsID0gImh0dHBzOi8vcHlwaS5vcmcvcHlwaS8lcy9q
c29uIiAlIHBhY2thZ2VfbmFtZQorICAgICAgICByZXNwb25zZSA9IHVybGxpYjIudXJsb3Blbihq
c29uX3VybCwgdGltZW91dD0zMCkKICAgICAgICAgZGF0YSA9IGpzb24ubG9hZChyZXNwb25zZSkK
ICAgICAgICAgdXJsID0gZGF0YVsndXJscyddWzFdWyd1cmwnXQogICAgICAgICBzdWJwYXRoID0g
dXJsX3N1YnBhdGhfZm9ybWF0LmZvcm1hdChuYW1lPXBhY2thZ2VfbmFtZSwgdmVyc2lvbj1kYXRh
WydpbmZvJ11bJ3ZlcnNpb24nXSwgbG5hbWU9cGFja2FnZV9uYW1lLmxvd2VyKCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357843</attachid>
            <date>2018-12-20 11:44:02 -0800</date>
            <delta_ts>2018-12-20 11:59:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192909-20181220114401.patch</filename>
            <type>text/plain</type>
            <size>15272</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzOTQ1NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMxIEBACisyMDE4LTEyLTIwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogQXV0b2luc3RhbGwgcGFja2FnZSBVUkxzIGhhdmUgY2hh
bmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTky
OTA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80Njg2MDM1OT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQeVBpIHVybHMgaGF2ZSBiZWVuIG1vdmVk
IGFyb3VuZCwgd2UgbmVlZCB0byB1cGRhdGUgb3VyIGF1dG8taW5zdGFsbGVkIHBhY2thZ2VzLgor
CisgICAgICAgIFdlIHNob3VsZCBjaGVjayBmb3IgU2VsZW5pdW0gYmVmb3JlIGFza2luZyBQeVBp
IGZvciB0aGUgbGF0ZXN0IHZlcnNpb24uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Ro
aXJkcGFydHkvX19pbml0X18ucHk6CisgICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2lu
c3RhbGxfbWVjaGFuaXplKTogVXBkYXRlIHdpdGggbmV3IHB5cGkgdXJsLgorICAgICAgICAoQXV0
b2luc3RhbGxJbXBvcnRIb29rLl9pbnN0YWxsX2tleXJpbmcpOiBEaXR0by4KKyAgICAgICAgKEF1
dG9pbnN0YWxsSW1wb3J0SG9vay5faW5zdGFsbF9wZXA4KTogRGl0dG8uCisgICAgICAgIChBdXRv
aW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfbW96bG9nKTogRGl0dG8uCisgICAgICAgIChBdXRv
aW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfbW96cHJvY2Vzcyk6IERpdHRvLgorICAgICAgICAo
QXV0b2luc3RhbGxJbXBvcnRIb29rLl9pbnN0YWxsX3B5dGVzdF90aW1lb3V0KTogRGl0dG8uCisg
ICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfcHl0ZXN0KTogRGl0dG8uCisg
ICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfcHlsaW50KTogRGl0dG8uCisg
ICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfYnVpbGRib3QpOiBEaXR0by4K
KyAgICAgICAgKEF1dG9pbnN0YWxsSW1wb3J0SG9vay5faW5zdGFsbF9jb3ZlcmFnZSk6IERpdHRv
LgorICAgICAgICAoQXV0b2luc3RhbGxJbXBvcnRIb29rLl9pbnN0YWxsX3R3aXN0ZWRfMTVfNV8w
KTogRGl0dG8uCisgICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfc2VsZW5p
dW0pOiBVcGRhdGUgd2l0aCBuZXcgcHlwaSB1cmwsIG9ubHkgY2hlY2sKKyAgICAgICAgZm9yIG5l
dyBTZWxlbml1bSBpZiB0aGUgaW5zdGFsbGVkIHZlcnNpb24gaXNuJ3Qgc3VmZmljaWVudC4KKyAg
ICAgICAgKEF1dG9pbnN0YWxsSW1wb3J0SG9vay5nZXRfbGF0ZXN0X3B5cGlfdXJsKTogVXBkYXRl
IHdpdGggbmV3IHB5cGkgdXJsLgorCiAyMDE4LTEyLTIwICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRk
YWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMzk0MTcu
CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18ucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fLnB5
CShyZXZpc2lvbiAyMzk0NDUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkv
X19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTExNiw1MCArMTE2LDQ4IEBAIGNsYXNzIEF1
dG9pbnN0YWxsSW1wb3J0SG9vayhvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5faW5zdGFsbF9w
eXRlc3QoKQogCiAgICAgZGVmIF9pbnN0YWxsX21lY2hhbml6ZShzZWxmKToKLSAgICAgICAgc2Vs
Zi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291cmNlL20vbWVj
aGFuaXplL21lY2hhbml6ZS0wLjIuNS50YXIuZ3oiLAorICAgICAgICBzZWxmLl9pbnN0YWxsKCJo
dHRwczovL2ZpbGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvc291cmNlL20vbWVjaGFuaXpl
L21lY2hhbml6ZS0wLjIuNS50YXIuZ3oiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
bWVjaGFuaXplLTAuMi41L21lY2hhbml6ZSIpCiAKICAgICBkZWYgX2luc3RhbGxfa2V5cmluZyhz
ZWxmKToKLSAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFj
a2FnZXMvN2QvYTkvOGM2YmY2MDcxMDc4MWNlMTNhOTk4N2MwZGViZGE4YWRhYjM1ZWI3OWM2YjU1
MjVmN2ZlNTI0MGI3YThhL2tleXJpbmctNy4zLjEudGFyLmd6I21kNT05OWRkNzkzZTEyMzM5NjRl
Yjg3Y2Y1NjQwNmVlNjZmNiIsCisgICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8vZmlsZXMu
cHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy83ZC9hOS84YzZiZjYwNzEwNzgxY2UxM2E5OTg3YzBk
ZWJkYThhZGFiMzVlYjc5YzZiNTUyNWY3ZmU1MjQwYjdhOGEva2V5cmluZy03LjMuMS50YXIuZ3oi
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia2V5cmluZy03LjMuMS9rZXlyaW5nIikK
IAogICAgIGRlZiBfaW5zdGFsbF9wZXA4KHNlbGYpOgotICAgICAgICBzZWxmLl9pbnN0YWxsKCJo
dHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2UvcC9wZXA4L3BlcDgtMC41LjAu
dGFyLmd6I21kNT01MTJhODE4YWY5OTc5MjkwY2Q2MTljY2U4ZTljMmUyYiIsCisgICAgICAgIHNl
bGYuX2luc3RhbGwoImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3Vy
Y2UvcC9wZXA4L3BlcDgtMC41LjAudGFyLmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInBlcDgtMC41LjAvcGVwOC5weSIpCiAKICAgICBkZWYgX2luc3RhbGxfbW96bG9nKHNlbGYp
OgogICAgICAgICBzZWxmLl9lbnN1cmVfYXV0b2luc3RhbGxlZF9kaXJfaXNfaW5fc3lzX3BhdGgo
KQotICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdl
cy8xMC9kNS9kMjg2YjVkYzNmNDBlMzJkMmE5YjNjYWIwYjViMjBhMDVkNzA0OTU4YjQ0YjRjNWE5
YWVkNjQ3MmRlYWIvbW96bG9nLTMuNS50YXIuZ3ojbWQ1PTMyODJjNzBlNzAzNzI2NmY4M2Q4Yzgw
MTE5MTI5Yjc1IiwKKyAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9maWxlcy5weXRob25o
b3N0ZWQub3JnL3BhY2thZ2VzLzEwL2Q1L2QyODZiNWRjM2Y0MGUzMmQyYTliM2NhYjBiNWIyMGEw
NWQ3MDQ5NThiNDRiNGM1YTlhZWQ2NDcyZGVhYi9tb3psb2ctMy41LnRhci5neiIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibW96bG9nLTMuNS9tb3psb2ciKQogCiAgICAgZGVmIF9p
bnN0YWxsX21venByb2Nlc3Moc2VsZik6CiAgICAgICAgIHNlbGYuX2Vuc3VyZV9hdXRvaW5zdGFs
bGVkX2Rpcl9pc19pbl9zeXNfcGF0aCgpCi0gICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8v
cHlwaS5weXRob24ub3JnL3BhY2thZ2VzL2NiLzI2LzE0NGRiYzI4ZDFmNDBlMzkyZjhhMGNiZWU3
NzFiYTYyNGE2MTAxN2YwMTZjNzdhZDg4NDI0ZDg0YjIzMC9tb3pwcm9jZXNzLTAuMjUudGFyLmd6
I21kNT0wN2EwNGU2YWUxYTcwNTcwNWU0YjQ0OTY5ZmU3YTE4MiIsCisgICAgICAgIHNlbGYuX2lu
c3RhbGwoImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9jYi8yNi8xNDRk
YmMyOGQxZjQwZTM5MmY4YTBjYmVlNzcxYmE2MjRhNjEwMTdmMDE2Yzc3YWQ4ODQyNGQ4NGIyMzAv
bW96cHJvY2Vzcy0wLjI1LnRhci5neiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
bW96cHJvY2Vzcy0wLjI1L21venByb2Nlc3MiKQogCiAgICAgZGVmIF9pbnN0YWxsX3B5dGVzdF90
aW1lb3V0KHNlbGYpOgotICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL3B5cGkucHl0aG9u
Lm9yZy9wYWNrYWdlcy9jYy9iNy9iMmE2MTM2NWVhNmI2ZDJlODg4MTM2MGFlN2VkOGRhZDAzMjdh
ZDJkZjg5ZjJmMGJlNGEwMjMwNGRlYjIvcHl0ZXN0LXRpbWVvdXQtMS4yLjAudGFyLmd6I21kNT04
MzYwN2Q5MWFhMTYzNTYyYzdlZTgzNWRhNTdkMDYxZCIsCisgICAgICAgIHNlbGYuX2luc3RhbGwo
Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9jYy9iNy9iMmE2MTM2NWVh
NmI2ZDJlODg4MTM2MGFlN2VkOGRhZDAzMjdhZDJkZjg5ZjJmMGJlNGEwMjMwNGRlYjIvcHl0ZXN0
LXRpbWVvdXQtMS4yLjAudGFyLmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
eXRlc3QtdGltZW91dC0xLjIuMC9weXRlc3RfdGltZW91dC5weSIpCiAKICAgICBkZWYgX2luc3Rh
bGxfcHl0ZXN0KHNlbGYpOgotICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL3B5cGkucHl0
aG9uLm9yZy9wYWNrYWdlcy85MC9lMy9lMDc1MTI3ZDM5ZDM1ZjA5YTUwMGViYjRhOTBhZmQxMGY5
ZWYwYTFkMjhhNmQwOWFiZWVjMGU0NDRmZGQvcHktMS41LjIudGFyLmd6I21kNT0yNzljYTY5YzYz
MjA2OWUxYjcxZTExYjE0NjQxY2EyOCIsCisgICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8v
ZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy85MC9lMy9lMDc1MTI3ZDM5ZDM1ZjA5YTUw
MGViYjRhOTBhZmQxMGY5ZWYwYTFkMjhhNmQwOWFiZWVjMGU0NDRmZGQvcHktMS41LjIudGFyLmd6
IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJweS0xLjUuMi9weSIpCi0gICAgICAg
IHNlbGYuX2luc3RhbGwoImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzLzExL2JmL2Ni
ZWI4Y2RmYWZmYTlmMmVhMTU0YTMwYWUzMWE5ZDA0YTEyMDkzMTJlMjkxOTEzOGI0MTcxYTFmODE5
OS9wbHVnZ3ktMC42LjAudGFyLmd6IiwKKyAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9m
aWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2thZ2VzLzExL2JmL2NiZWI4Y2RmYWZmYTlmMmVhMTU0
YTMwYWUzMWE5ZDA0YTEyMDkzMTJlMjkxOTEzOGI0MTcxYTFmODE5OS9wbHVnZ3ktMC42LjAudGFy
Lmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbHVnZ3ktMC42LjAvcGx1Z2d5
IikKLSAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2Fn
ZXMvYzAvMmYvNjc3MzM0NzI3N2Q3NmM1YWRlNDQxNGE2YzNmNzg1ZWYyN2U3ZjVjNGIwODcwZWM3
ZTg4OGU2NmE4ZDgzL21vcmUtaXRlcnRvb2xzLTQuMi4wLnRhci5neiIsCisgICAgICAgIHNlbGYu
X2luc3RhbGwoImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9jMC8yZi82
NzczMzQ3Mjc3ZDc2YzVhZGU0NDE0YTZjM2Y3ODVlZjI3ZTdmNWM0YjA4NzBlYzdlODg4ZTY2YThk
ODMvbW9yZS1pdGVydG9vbHMtNC4yLjAudGFyLmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJtb3JlLWl0ZXJ0b29scy00LjIuMC9tb3JlX2l0ZXJ0b29scyIpCi0gICAgICAgIHNl
bGYuX2luc3RhbGwoImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzLzE2L2Q4L2JjNjMx
NmNmOTg0MTk3MTliZDU5YzkxNzQyMTk0YzExMWI2ZjJlODVhYmFjODhlNDk2YWRlZmFmN2FmZS9z
aXgtMS4xMS4wLnRhci5neiIsCisgICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8vZmlsZXMu
cHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy8xNi9kOC9iYzYzMTZjZjk4NDE5NzE5YmQ1OWM5MTc0
MjE5NGMxMTFiNmYyZTg1YWJhYzg4ZTQ5NmFkZWZhZjdhZmUvc2l4LTEuMTEuMC50YXIuZ3oiLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNpeC0xLjExLjAvc2l4LnB5IikKLSAgICAg
ICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvYTEvZTEv
MmQ5YmM3NjgzOGU2ZTY2NjdmZGU1ODE0YWEyNWQ3ZmViOTNkNmZhNDcxYmY2ODE2ZGFhYzI1OTZl
OGIyL2F0b21pY3dyaXRlcy0xLjEuNS50YXIuZ3oiLAorICAgICAgICBzZWxmLl9pbnN0YWxsKCJo
dHRwczovL2ZpbGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvYTEvZTEvMmQ5YmM3NjgzOGU2
ZTY2NjdmZGU1ODE0YWEyNWQ3ZmViOTNkNmZhNDcxYmY2ODE2ZGFhYzI1OTZlOGIyL2F0b21pY3dy
aXRlcy0xLjEuNS50YXIuZ3oiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF0b21p
Y3dyaXRlcy0xLjEuNS9hdG9taWN3cml0ZXMiKQotICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRw
czovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy85NC80YS9kYjg0MmU3YTA1NDVkZTFjZGIwNDM5
YmI4MGU2ZTQyZGZlODJhYWVhYWRkNDA3MmYyMjYzYTRmYmVkMjMvZnVuY3NpZ3MtMS4wLjIudGFy
Lmd6IiwKKyAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQu
b3JnL3BhY2thZ2VzLzk0LzRhL2RiODQyZTdhMDU0NWRlMWNkYjA0MzliYjgwZTZlNDJkZmU4MmFh
ZWFhZGQ0MDcyZjIyNjNhNGZiZWQyMy9mdW5jc2lncy0xLjAuMi50YXIuZ3oiLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImZ1bmNzaWdzLTEuMC4yL2Z1bmNzaWdzIikKLSAgICAgICAg
c2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvZTQvYWMvYTA0
NjcxZTExOGI1N2JlZTg3ZGFiY2ExZTBmMmQzYmRhODE2YjdhNTUxMDM2MDEyZDBjYTI0MTkwZTcx
L2F0dHJzLTE4LjEuMC50YXIuZ3oiLAorICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL2Zp
bGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvZTQvYWMvYTA0NjcxZTExOGI1N2JlZTg3ZGFi
Y2ExZTBmMmQzYmRhODE2YjdhNTUxMDM2MDEyZDBjYTI0MTkwZTcxL2F0dHJzLTE4LjEuMC50YXIu
Z3oiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF0dHJzLTE4LjEuMC9zcmMvYXR0
ciIpCi0gICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2th
Z2VzL2EyL2VjLzQxNWQwY2NjYzFlZDQxY2Q3ZmRmNjlhZDk4OWRhMTZhOGQxMzA1Nzk5NjM3MTAw
NGNhYjRiYWZjNDhmMy9weXRlc3QtMy42LjIudGFyLmd6IiwKKyAgICAgICAgc2VsZi5faW5zdGFs
bCgiaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2thZ2VzL2EyL2VjLzQxNWQwY2Nj
YzFlZDQxY2Q3ZmRmNjlhZDk4OWRhMTZhOGQxMzA1Nzk5NjM3MTAwNGNhYjRiYWZjNDhmMy9weXRl
c3QtMy42LjIudGFyLmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJweXRlc3Qt
My42LjIvc3JjL19weXRlc3QiKQotICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL3B5cGku
cHl0aG9uLm9yZy9wYWNrYWdlcy9hMi9lYy80MTVkMGNjY2MxZWQ0MWNkN2ZkZjY5YWQ5ODlkYTE2
YThkMTMwNTc5OTYzNzEwMDRjYWI0YmFmYzQ4ZjMvcHl0ZXN0LTMuNi4yLnRhci5neiIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAicHl0ZXN0LTMuNi4yL3NyYy9weXRlc3QucHkiKQog
CiAgICAgZGVmIF9pbnN0YWxsX3B5bGludChzZWxmKToKICAgICAgICAgc2VsZi5fZW5zdXJlX2F1
dG9pbnN0YWxsZWRfZGlyX2lzX2luX3N5c19wYXRoKCkKQEAgLTE3MCw5ICsxNjgsOSBAQCBjbGFz
cyBBdXRvaW5zdGFsbEltcG9ydEhvb2sob2JqZWN0KToKICAgICAgICAgICAgIGZpbGVzX3RvX3Jl
bW92ZSA9IFtdCiAgICAgICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKICAgICAg
ICAgICAgICAgICBmaWxlc190b19yZW1vdmUgPSBbJ3Rlc3QvZGF0YS93cml0ZV9wcm90ZWN0ZWRf
ZmlsZS50eHQnXQotICAgICAgICAgICAgaW5zdGFsbGVyLmluc3RhbGwoImh0dHBzOi8vcHlwaS5w
eXRob24ub3JnL3BhY2thZ2VzL3NvdXJjZS9sL2xvZ2lsYWItY29tbW9uL2xvZ2lsYWItY29tbW9u
LTAuNTguMS50YXIuZ3ojbWQ1PTc3Mjk4YWIyZDhiYjhiNGFmOTIxOTc5MWU3Y2VlOGNlIiwgdXJs
X3N1YnBhdGg9ImxvZ2lsYWItY29tbW9uLTAuNTguMSIsIHRhcmdldF9uYW1lPSJsb2dpbGFiL2Nv
bW1vbiIsIGZpbGVzX3RvX3JlbW92ZT1maWxlc190b19yZW1vdmUpCi0gICAgICAgICAgICBpbnN0
YWxsZXIuaW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291cmNlL2wv
bG9naWxhYi1hc3RuZy9sb2dpbGFiLWFzdG5nLTAuMjQuMS50YXIuZ3ojbWQ1PWRkYWY2NmU0ZDg1
NzE0ZDljNDdhNDZkNGJlZDQwNmRlIiwgdXJsX3N1YnBhdGg9ImxvZ2lsYWItYXN0bmctMC4yNC4x
IiwgdGFyZ2V0X25hbWU9ImxvZ2lsYWIvYXN0bmciKQotICAgICAgICAgICAgaW5zdGFsbGVyLmlu
c3RhbGwoJ2h0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzL3NvdXJjZS9wL3B5bGludC9w
eWxpbnQtMC4yNS4yLnRhci5neiNtZDU9ZDg3OGQ3Njg4YTRmNTI5MGRjNWI1M2E4MzY4NzI0MDAn
LCB1cmxfc3VicGF0aD0icHlsaW50LTAuMjUuMiIsIHRhcmdldF9uYW1lPSJweWxpbnQiKQorICAg
ICAgICAgICAgaW5zdGFsbGVyLmluc3RhbGwoImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9y
Zy9wYWNrYWdlcy9zb3VyY2UvbC9sb2dpbGFiLWNvbW1vbi9sb2dpbGFiLWNvbW1vbi0wLjU4LjEu
dGFyLmd6IiwgdXJsX3N1YnBhdGg9ImxvZ2lsYWItY29tbW9uLTAuNTguMSIsIHRhcmdldF9uYW1l
PSJsb2dpbGFiL2NvbW1vbiIsIGZpbGVzX3RvX3JlbW92ZT1maWxlc190b19yZW1vdmUpCisgICAg
ICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCgiaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3Jn
L3BhY2thZ2VzL3NvdXJjZS9sL2xvZ2lsYWItYXN0bmcvbG9naWxhYi1hc3RuZy0wLjI0LjEudGFy
Lmd6IiwgdXJsX3N1YnBhdGg9ImxvZ2lsYWItYXN0bmctMC4yNC4xIiwgdGFyZ2V0X25hbWU9Imxv
Z2lsYWIvYXN0bmciKQorICAgICAgICAgICAgaW5zdGFsbGVyLmluc3RhbGwoJ2h0dHBzOi8vZmls
ZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2UvcC9weWxpbnQvcHlsaW50LTAuMjUu
Mi50YXIuZ3onLCB1cmxfc3VicGF0aD0icHlsaW50LTAuMjUuMiIsIHRhcmdldF9uYW1lPSJweWxp
bnQiKQogCiAgICAgIyBhdXRvaW5zdGFsbGVkLmJ1aWxkYm90IGlzIHVzZWQgYnkgQnVpbGRTbGF2
ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvbWFzdGVyY2ZnX3VuaXR0ZXN0LnB5CiAg
ICAgIyBhbmQgc2hvdWxkIGlkZWFsbHkgbWF0Y2ggdGhlIHZlcnNpb24gb2YgQnVpbGRCb3QgdXNl
ZCBhdCBidWlsZC53ZWJraXQub3JnLgpAQCAtMTg0LDI5ICsxODIsMjkgQEAgY2xhc3MgQXV0b2lu
c3RhbGxJbXBvcnRIb29rKG9iamVjdCk6CiAgICAgICAgICMgd2l0aG91dCBpbmNsdWRpbmcgb3Ro
ZXIgbW9kdWxlcyBhcyBhIHNpZGUgZWZmZWN0LgogICAgICAgICBqaW5qYV9kaXIgPSBzZWxmLl9m
cy5qb2luKF9BVVRPSU5TVEFMTEVEX0RJUiwgImppbmphMiIpCiAgICAgICAgIGluc3RhbGxlciA9
IEF1dG9JbnN0YWxsZXIoYXBwZW5kX3RvX3NlYXJjaF9wYXRoPVRydWUsIHRhcmdldF9kaXI9amlu
amFfZGlyKQotICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHBzOi8vcHlwaS5weXRo
b24ub3JnL3BhY2thZ2VzL3NvdXJjZS9KL0ppbmphMi9KaW5qYTItMi42LnRhci5neiNtZDU9MWM0
OWE4ODI1Yzk5M2JmZGNmNTViYjM2ODk3ZDI4YTIiLAorICAgICAgICBpbnN0YWxsZXIuaW5zdGFs
bCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2UvSi9K
aW5qYTIvSmluamEyLTIuNi50YXIuZ3oiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdXJsX3N1YnBhdGg9IkppbmphMi0yLjYvamluamEyIikKIAogICAg
ICAgICBTUUxBbGNoZW15X2RpciA9IHNlbGYuX2ZzLmpvaW4oX0FVVE9JTlNUQUxMRURfRElSLCAi
c3FsYWxjaGVteSIpCiAgICAgICAgIGluc3RhbGxlciA9IEF1dG9JbnN0YWxsZXIoYXBwZW5kX3Rv
X3NlYXJjaF9wYXRoPVRydWUsIHRhcmdldF9kaXI9U1FMQWxjaGVteV9kaXIpCi0gICAgICAgIGlu
c3RhbGxlci5pbnN0YWxsKHVybD0iaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291
cmNlL1MvU1FMQWxjaGVteS9TUUxBbGNoZW15LTAuNy43LnRhci5neiNtZDU9ZGRmNmRmN2UwMTRj
ZWEzMThmYTk4MTM2NGYzZjkzYjkiLAorICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0
dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2UvUy9TUUxBbGNoZW15
L1NRTEFsY2hlbXktMC43LjcudGFyLmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1cmxfc3VicGF0aD0iU1FMQWxjaGVteS0wLjcuNy9saWIvc3Fs
YWxjaGVteSIpCiAKICAgICAgICAgdHdpc3RlZF9kaXIgPSBzZWxmLl9mcy5qb2luKF9BVVRPSU5T
VEFMTEVEX0RJUiwgInR3aXN0ZWQiKQogICAgICAgICBpbnN0YWxsZXIgPSBBdXRvSW5zdGFsbGVy
KHByZXBlbmRfdG9fc2VhcmNoX3BhdGg9VHJ1ZSwgdGFyZ2V0X2Rpcj10d2lzdGVkX2RpcikKLSAg
ICAgICAgaW5zdGFsbGVyLmluc3RhbGwodXJsPSJodHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNr
YWdlcy9zb3VyY2UvVC9Ud2lzdGVkL1R3aXN0ZWQtMTIuMS4wLnRhci5iejIjbWQ1PWYzOTZmMWQ2
ZjUzMjFlODY5YzJmODliMjE5NmE5ZWI1IiwgdXJsX3N1YnBhdGg9IlR3aXN0ZWQtMTIuMS4wL3R3
aXN0ZWQiKQorICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0
aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2UvVC9Ud2lzdGVkL1R3aXN0ZWQtMTIuMS4wLnRh
ci5iejIiLCB1cmxfc3VicGF0aD0iVHdpc3RlZC0xMi4xLjAvdHdpc3RlZCIpCiAKLSAgICAgICAg
c2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291cmNlL2Iv
YnVpbGRib3QvYnVpbGRib3QtMC44LjZwMS50YXIuZ3ojbWQ1PWI2NzI3ZDI4MTBjNjkyMDYyYzY1
NzQ5MmJjYmVhYzZhIiwgImJ1aWxkYm90LTAuOC42cDEvYnVpbGRib3QiKQorICAgICAgICBzZWxm
Ll9pbnN0YWxsKCJodHRwczovL2ZpbGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvc291cmNl
L2IvYnVpbGRib3QvYnVpbGRib3QtMC44LjZwMS50YXIuZ3oiLCAiYnVpbGRib3QtMC44LjZwMS9i
dWlsZGJvdCIpCiAKICAgICBkZWYgX2luc3RhbGxfY292ZXJhZ2Uoc2VsZik6CiAgICAgICAgIHNl
bGYuX2Vuc3VyZV9hdXRvaW5zdGFsbGVkX2Rpcl9pc19pbl9zeXNfcGF0aCgpCi0gICAgICAgIHNl
bGYuX2luc3RhbGwodXJsPSJodHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2Uv
Yy9jb3ZlcmFnZS9jb3ZlcmFnZS0zLjUuMS50YXIuZ3ojbWQ1PTQxMGQ0YzgxNTVhNGRhYjIyMmYy
YmM1MTIxMmQ0YTI0IiwgdXJsX3N1YnBhdGg9ImNvdmVyYWdlLTMuNS4xL2NvdmVyYWdlIikKKyAg
ICAgICAgc2VsZi5faW5zdGFsbCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9w
YWNrYWdlcy9zb3VyY2UvYy9jb3ZlcmFnZS9jb3ZlcmFnZS0zLjUuMS50YXIuZ3oiLCB1cmxfc3Vi
cGF0aD0iY292ZXJhZ2UtMy41LjEvY292ZXJhZ2UiKQogCiAgICAgZGVmIF9pbnN0YWxsX3R3aXN0
ZWRfMTVfNV8wKHNlbGYpOgogICAgICAgICB0d2lzdGVkX2RpciA9IHNlbGYuX2ZzLmpvaW4oX0FV
VE9JTlNUQUxMRURfRElSLCAidHdpc3RlZF8xNV81XzAiKQogICAgICAgICBpbnN0YWxsZXIgPSBB
dXRvSW5zdGFsbGVyKHByZXBlbmRfdG9fc2VhcmNoX3BhdGg9VHJ1ZSwgdGFyZ2V0X2Rpcj10d2lz
dGVkX2RpcikKLSAgICAgICAgaW5zdGFsbGVyLmluc3RhbGwodXJsPSJodHRwczovL3B5cGkucHl0
aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2UvVC9Ud2lzdGVkL1R3aXN0ZWQtMTUuNS4wLnRhci5iejIj
bWQ1PTA4MzFkN2M5MGQwMDIwMDYyZGUwZjcyODc1MzBhMjg1IiwgdXJsX3N1YnBhdGg9IlR3aXN0
ZWQtMTUuNS4wL3R3aXN0ZWQiKQotICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHBz
Oi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzL3NvdXJjZS96L3pvcGUuaW50ZXJmYWNlL3pvcGUu
aW50ZXJmYWNlLTQuMS4zLnRhci5neiNtZDU9OWFlM2QyNGMwYzc0MTVkZWIyNDlkZDFhMTMyZjBm
NzkiLCB1cmxfc3VicGF0aD0iem9wZS5pbnRlcmZhY2UtNC4xLjMvc3JjL3pvcGUiKQorICAgICAg
ICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9w
YWNrYWdlcy9zb3VyY2UvVC9Ud2lzdGVkL1R3aXN0ZWQtMTUuNS4wLnRhci5iejIiLCB1cmxfc3Vi
cGF0aD0iVHdpc3RlZC0xNS41LjAvdHdpc3RlZCIpCisgICAgICAgIGluc3RhbGxlci5pbnN0YWxs
KHVybD0iaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2thZ2VzL3NvdXJjZS96L3pv
cGUuaW50ZXJmYWNlL3pvcGUuaW50ZXJmYWNlLTQuMS4zLnRhci5neiIsIHVybF9zdWJwYXRoPSJ6
b3BlLmludGVyZmFjZS00LjEuMy9zcmMvem9wZSIpCiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAg
ZGVmIGdyZWF0ZXJfdGhhbl9lcXVhbF90b192ZXJzaW9uKG1pbmltdW0sIHZlcnNpb24pOgpAQCAt
MjE5LDE4ICsyMTcsMTkgQEAgY2xhc3MgQXV0b2luc3RhbGxJbXBvcnRIb29rKG9iamVjdCk6CiAK
ICAgICBkZWYgX2luc3RhbGxfc2VsZW5pdW0oc2VsZik6CiAgICAgICAgIHNlbGYuX2Vuc3VyZV9h
dXRvaW5zdGFsbGVkX2Rpcl9pc19pbl9zeXNfcGF0aCgpCisgICAgICAgIHNlbGYuX2luc3RhbGwo
Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9iMS81My8zN2Q4MmFiMzkx
MzkzNTY1ZjJmODMxYjhlZWRiZmZkNTdkYjVhNzE4MjE2ZjgyZjFhOGI0ZDM4MWExYzEvdXJsbGli
My0xLjI0LjEudGFyLmd6IiwgInVybGxpYjMtMS4yNC4xIikKKworICAgICAgICBtaW5pbXVtX3Zl
cnNpb24gPSAnMy41LjAnCisgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKG9zLnBhdGguam9pbihf
QVVUT0lOU1RBTExFRF9ESVIsICdzZWxlbml1bScsICdfX2luaXRfXy5weScpKToKKyAgICAgICAg
ICAgIGltcG9ydCBzZWxlbml1bS53ZWJkcml2ZXIKKyAgICAgICAgICAgIGlmIEF1dG9pbnN0YWxs
SW1wb3J0SG9vay5ncmVhdGVyX3RoYW5fZXF1YWxfdG9fdmVyc2lvbihtaW5pbXVtX3ZlcnNpb24s
IHNlbGVuaXVtLndlYmRyaXZlci5fX3ZlcnNpb25fXyk6CisgICAgICAgICAgICAgICAgcmV0dXJu
CisKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgdXJsLCB1cmxfc3VicGF0aCA9IHNlbGYuZ2V0
X2xhdGVzdF9weXBpX3VybCgnc2VsZW5pdW0nKQogICAgICAgICBleGNlcHQgdXJsbGliMi5VUkxF
cnJvcjoKLSAgICAgICAgICAgIG1pbmltdW1fdmVyc2lvbiA9ICczLjUuMCcKLSAgICAgICAgICAg
IGlmIG9zLnBhdGguaXNmaWxlKG9zLnBhdGguam9pbihfQVVUT0lOU1RBTExFRF9ESVIsICdzZWxl
bml1bScsICdfX2luaXRfXy5weScpKToKLSAgICAgICAgICAgICAgICBpbXBvcnQgc2VsZW5pdW0u
d2ViZHJpdmVyCi0gICAgICAgICAgICAgICAgaWYgQXV0b2luc3RhbGxJbXBvcnRIb29rLmdyZWF0
ZXJfdGhhbl9lcXVhbF90b192ZXJzaW9uKG1pbmltdW1fdmVyc2lvbiwgc2VsZW5pdW0ud2ViZHJp
dmVyLl9fdmVyc2lvbl9fKToKLSAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgn
XG5GYWlsZWQgdG8gZmluZCBsYXRlc3Qgc2VsZW5pdW0sIGZhbGxpbmcgYmFjayB0byBleGlzdGlu
ZyB7fSB2ZXJzaW9uXG4nLmZvcm1hdChzZWxlbml1bS53ZWJkcml2ZXIuX192ZXJzaW9uX18pKQot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4KLQogICAgICAgICAgICAgIyBVUkwgZm9yIGluc3Rh
bGxpbmcgdGhlIG1pbmltdW0gcmVxdWlyZWQgdmVyc2lvbi4KLSAgICAgICAgICAgIHVybCA9ICdo
dHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy9hYy9kNy8xOTI4NDE2NDM5ZDA2NmM2MGYy
NmM4N2E4ZDFiNzhhOGVkZDY0YzdkMDVhMGFhOTE3ZmE5N2E4ZWUwMmQvc2VsZW5pdW0tMy41LjAu
dGFyLmd6Izk4NjcwMmZkZDBlMmFlYzZhNGVkYTEzNDY3OGI4YjNmJworICAgICAgICAgICAgdXJs
ID0gJ2h0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9hYy9kNy8xOTI4NDE2
NDM5ZDA2NmM2MGYyNmM4N2E4ZDFiNzhhOGVkZDY0YzdkMDVhMGFhOTE3ZmE5N2E4ZWUwMmQvc2Vs
ZW5pdW0tMy41LjAudGFyLmd6JwogICAgICAgICAgICAgdXJsX3N1YnBhdGggPSAnc2VsZW5pdW0t
e30vc2VsZW5pdW0nLmZvcm1hdChtaW5pbXVtX3ZlcnNpb24pCiAgICAgICAgICAgICBzeXMuc3Rk
ZXJyLndyaXRlKCdcbkZhaWxlZCB0byBmaW5kIGxhdGVzdCBzZWxlbml1bSwgZmFsbGluZyBiYWNr
IHRvIG1pbmltdW0ge30gdmVyc2lvblxuJy5mb3JtYXQobWluaW11bV92ZXJzaW9uKSkKICAgICAg
ICAgc2VsZi5faW5zdGFsbCh1cmw9dXJsLCB1cmxfc3VicGF0aD11cmxfc3VicGF0aCkKQEAgLTI1
Niw4ICsyNTUsOCBAQCBjbGFzcyBBdXRvaW5zdGFsbEltcG9ydEhvb2sob2JqZWN0KToKICAgICAg
ICAgaW5zdGFsbGVyLmluc3RhbGwodXJsPXVybCwgdXJsX3N1YnBhdGg9dXJsX3N1YnBhdGgsIHRh
cmdldF9uYW1lPXRhcmdldF9uYW1lKQogCiAgICAgZGVmIGdldF9sYXRlc3RfcHlwaV91cmwoc2Vs
ZiwgcGFja2FnZV9uYW1lLCB1cmxfc3VicGF0aF9mb3JtYXQ9J3tuYW1lfS17dmVyc2lvbn0ve2xu
YW1lfScpOgotICAgICAgICBqc29uX3VybCA9ICJodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBp
LyVzL2pzb24iICUgcGFja2FnZV9uYW1lCi0gICAgICAgIHJlc3BvbnNlID0gdXJsbGliMi51cmxv
cGVuKGpzb25fdXJsKQorICAgICAgICBqc29uX3VybCA9ICJodHRwczovL3B5cGkub3JnL3B5cGkv
JXMvanNvbiIgJSBwYWNrYWdlX25hbWUKKyAgICAgICAgcmVzcG9uc2UgPSB1cmxsaWIyLnVybG9w
ZW4oanNvbl91cmwsIHRpbWVvdXQ9MzApCiAgICAgICAgIGRhdGEgPSBqc29uLmxvYWQocmVzcG9u
c2UpCiAgICAgICAgIHVybCA9IGRhdGFbJ3VybHMnXVsxXVsndXJsJ10KICAgICAgICAgc3VicGF0
aCA9IHVybF9zdWJwYXRoX2Zvcm1hdC5mb3JtYXQobmFtZT1wYWNrYWdlX25hbWUsIHZlcnNpb249
ZGF0YVsnaW5mbyddWyd2ZXJzaW9uJ10sIGxuYW1lPXBhY2thZ2VfbmFtZS5sb3dlcigpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357846</attachid>
            <date>2018-12-20 11:59:47 -0800</date>
            <delta_ts>2018-12-20 13:13:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192909-20181220115946.patch</filename>
            <type>text/plain</type>
            <size>15415</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzOTQ1NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMxIEBACisyMDE4LTEyLTIwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogQXV0b2luc3RhbGwgcGFja2FnZSBVUkxzIGhhdmUgY2hh
bmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTky
OTA5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80Njg2MDM1OT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQeVBpIHVybHMgaGF2ZSBiZWVuIG1vdmVk
IGFyb3VuZCwgd2UgbmVlZCB0byB1cGRhdGUgb3VyIGF1dG8taW5zdGFsbGVkIHBhY2thZ2VzLgor
CisgICAgICAgIFdlIHNob3VsZCBjaGVjayBmb3IgU2VsZW5pdW0gYmVmb3JlIGFza2luZyBQeVBp
IGZvciB0aGUgbGF0ZXN0IHZlcnNpb24uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Ro
aXJkcGFydHkvX19pbml0X18ucHk6CisgICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2lu
c3RhbGxfbWVjaGFuaXplKTogVXBkYXRlIHdpdGggbmV3IHB5cGkgdXJsLgorICAgICAgICAoQXV0
b2luc3RhbGxJbXBvcnRIb29rLl9pbnN0YWxsX2tleXJpbmcpOiBEaXR0by4KKyAgICAgICAgKEF1
dG9pbnN0YWxsSW1wb3J0SG9vay5faW5zdGFsbF9wZXA4KTogRGl0dG8uCisgICAgICAgIChBdXRv
aW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfbW96bG9nKTogRGl0dG8uCisgICAgICAgIChBdXRv
aW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfbW96cHJvY2Vzcyk6IERpdHRvLgorICAgICAgICAo
QXV0b2luc3RhbGxJbXBvcnRIb29rLl9pbnN0YWxsX3B5dGVzdF90aW1lb3V0KTogRGl0dG8uCisg
ICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfcHl0ZXN0KTogRGl0dG8uCisg
ICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfcHlsaW50KTogRGl0dG8uCisg
ICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfYnVpbGRib3QpOiBEaXR0by4K
KyAgICAgICAgKEF1dG9pbnN0YWxsSW1wb3J0SG9vay5faW5zdGFsbF9jb3ZlcmFnZSk6IERpdHRv
LgorICAgICAgICAoQXV0b2luc3RhbGxJbXBvcnRIb29rLl9pbnN0YWxsX3R3aXN0ZWRfMTVfNV8w
KTogRGl0dG8uCisgICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2suX2luc3RhbGxfc2VsZW5p
dW0pOiBVcGRhdGUgd2l0aCBuZXcgcHlwaSB1cmwsIG9ubHkgY2hlY2sKKyAgICAgICAgZm9yIG5l
dyBTZWxlbml1bSBpZiB0aGUgaW5zdGFsbGVkIHZlcnNpb24gaXNuJ3Qgc3VmZmljaWVudC4KKyAg
ICAgICAgKEF1dG9pbnN0YWxsSW1wb3J0SG9vay5nZXRfbGF0ZXN0X3B5cGlfdXJsKTogVXBkYXRl
IHdpdGggbmV3IHB5cGkgdXJsLgorCiAyMDE4LTEyLTIwICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRk
YWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMzk0MTcu
CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18ucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fLnB5
CShyZXZpc2lvbiAyMzk0NDUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkv
X19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTExNiw1MCArMTE2LDQ4IEBAIGNsYXNzIEF1
dG9pbnN0YWxsSW1wb3J0SG9vayhvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5faW5zdGFsbF9w
eXRlc3QoKQogCiAgICAgZGVmIF9pbnN0YWxsX21lY2hhbml6ZShzZWxmKToKLSAgICAgICAgc2Vs
Zi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291cmNlL20vbWVj
aGFuaXplL21lY2hhbml6ZS0wLjIuNS50YXIuZ3oiLAorICAgICAgICBzZWxmLl9pbnN0YWxsKCJo
dHRwczovL2ZpbGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvc291cmNlL20vbWVjaGFuaXpl
L21lY2hhbml6ZS0wLjIuNS50YXIuZ3oiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
bWVjaGFuaXplLTAuMi41L21lY2hhbml6ZSIpCiAKICAgICBkZWYgX2luc3RhbGxfa2V5cmluZyhz
ZWxmKToKLSAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFj
a2FnZXMvN2QvYTkvOGM2YmY2MDcxMDc4MWNlMTNhOTk4N2MwZGViZGE4YWRhYjM1ZWI3OWM2YjU1
MjVmN2ZlNTI0MGI3YThhL2tleXJpbmctNy4zLjEudGFyLmd6I21kNT05OWRkNzkzZTEyMzM5NjRl
Yjg3Y2Y1NjQwNmVlNjZmNiIsCisgICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8vZmlsZXMu
cHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy83ZC9hOS84YzZiZjYwNzEwNzgxY2UxM2E5OTg3YzBk
ZWJkYThhZGFiMzVlYjc5YzZiNTUyNWY3ZmU1MjQwYjdhOGEva2V5cmluZy03LjMuMS50YXIuZ3oi
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia2V5cmluZy03LjMuMS9rZXlyaW5nIikK
IAogICAgIGRlZiBfaW5zdGFsbF9wZXA4KHNlbGYpOgotICAgICAgICBzZWxmLl9pbnN0YWxsKCJo
dHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2UvcC9wZXA4L3BlcDgtMC41LjAu
dGFyLmd6I21kNT01MTJhODE4YWY5OTc5MjkwY2Q2MTljY2U4ZTljMmUyYiIsCisgICAgICAgIHNl
bGYuX2luc3RhbGwoImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3Vy
Y2UvcC9wZXA4L3BlcDgtMC41LjAudGFyLmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInBlcDgtMC41LjAvcGVwOC5weSIpCiAKICAgICBkZWYgX2luc3RhbGxfbW96bG9nKHNlbGYp
OgogICAgICAgICBzZWxmLl9lbnN1cmVfYXV0b2luc3RhbGxlZF9kaXJfaXNfaW5fc3lzX3BhdGgo
KQotICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdl
cy8xMC9kNS9kMjg2YjVkYzNmNDBlMzJkMmE5YjNjYWIwYjViMjBhMDVkNzA0OTU4YjQ0YjRjNWE5
YWVkNjQ3MmRlYWIvbW96bG9nLTMuNS50YXIuZ3ojbWQ1PTMyODJjNzBlNzAzNzI2NmY4M2Q4Yzgw
MTE5MTI5Yjc1IiwKKyAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9maWxlcy5weXRob25o
b3N0ZWQub3JnL3BhY2thZ2VzLzEwL2Q1L2QyODZiNWRjM2Y0MGUzMmQyYTliM2NhYjBiNWIyMGEw
NWQ3MDQ5NThiNDRiNGM1YTlhZWQ2NDcyZGVhYi9tb3psb2ctMy41LnRhci5neiIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibW96bG9nLTMuNS9tb3psb2ciKQogCiAgICAgZGVmIF9p
bnN0YWxsX21venByb2Nlc3Moc2VsZik6CiAgICAgICAgIHNlbGYuX2Vuc3VyZV9hdXRvaW5zdGFs
bGVkX2Rpcl9pc19pbl9zeXNfcGF0aCgpCi0gICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8v
cHlwaS5weXRob24ub3JnL3BhY2thZ2VzL2NiLzI2LzE0NGRiYzI4ZDFmNDBlMzkyZjhhMGNiZWU3
NzFiYTYyNGE2MTAxN2YwMTZjNzdhZDg4NDI0ZDg0YjIzMC9tb3pwcm9jZXNzLTAuMjUudGFyLmd6
I21kNT0wN2EwNGU2YWUxYTcwNTcwNWU0YjQ0OTY5ZmU3YTE4MiIsCisgICAgICAgIHNlbGYuX2lu
c3RhbGwoImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9jYi8yNi8xNDRk
YmMyOGQxZjQwZTM5MmY4YTBjYmVlNzcxYmE2MjRhNjEwMTdmMDE2Yzc3YWQ4ODQyNGQ4NGIyMzAv
bW96cHJvY2Vzcy0wLjI1LnRhci5neiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
bW96cHJvY2Vzcy0wLjI1L21venByb2Nlc3MiKQogCiAgICAgZGVmIF9pbnN0YWxsX3B5dGVzdF90
aW1lb3V0KHNlbGYpOgotICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL3B5cGkucHl0aG9u
Lm9yZy9wYWNrYWdlcy9jYy9iNy9iMmE2MTM2NWVhNmI2ZDJlODg4MTM2MGFlN2VkOGRhZDAzMjdh
ZDJkZjg5ZjJmMGJlNGEwMjMwNGRlYjIvcHl0ZXN0LXRpbWVvdXQtMS4yLjAudGFyLmd6I21kNT04
MzYwN2Q5MWFhMTYzNTYyYzdlZTgzNWRhNTdkMDYxZCIsCisgICAgICAgIHNlbGYuX2luc3RhbGwo
Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9jYy9iNy9iMmE2MTM2NWVh
NmI2ZDJlODg4MTM2MGFlN2VkOGRhZDAzMjdhZDJkZjg5ZjJmMGJlNGEwMjMwNGRlYjIvcHl0ZXN0
LXRpbWVvdXQtMS4yLjAudGFyLmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
eXRlc3QtdGltZW91dC0xLjIuMC9weXRlc3RfdGltZW91dC5weSIpCiAKICAgICBkZWYgX2luc3Rh
bGxfcHl0ZXN0KHNlbGYpOgotICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL3B5cGkucHl0
aG9uLm9yZy9wYWNrYWdlcy85MC9lMy9lMDc1MTI3ZDM5ZDM1ZjA5YTUwMGViYjRhOTBhZmQxMGY5
ZWYwYTFkMjhhNmQwOWFiZWVjMGU0NDRmZGQvcHktMS41LjIudGFyLmd6I21kNT0yNzljYTY5YzYz
MjA2OWUxYjcxZTExYjE0NjQxY2EyOCIsCisgICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8v
ZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy85MC9lMy9lMDc1MTI3ZDM5ZDM1ZjA5YTUw
MGViYjRhOTBhZmQxMGY5ZWYwYTFkMjhhNmQwOWFiZWVjMGU0NDRmZGQvcHktMS41LjIudGFyLmd6
IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJweS0xLjUuMi9weSIpCi0gICAgICAg
IHNlbGYuX2luc3RhbGwoImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzLzExL2JmL2Ni
ZWI4Y2RmYWZmYTlmMmVhMTU0YTMwYWUzMWE5ZDA0YTEyMDkzMTJlMjkxOTEzOGI0MTcxYTFmODE5
OS9wbHVnZ3ktMC42LjAudGFyLmd6IiwKKyAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9m
aWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2thZ2VzLzExL2JmL2NiZWI4Y2RmYWZmYTlmMmVhMTU0
YTMwYWUzMWE5ZDA0YTEyMDkzMTJlMjkxOTEzOGI0MTcxYTFmODE5OS9wbHVnZ3ktMC42LjAudGFy
Lmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbHVnZ3ktMC42LjAvcGx1Z2d5
IikKLSAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2Fn
ZXMvYzAvMmYvNjc3MzM0NzI3N2Q3NmM1YWRlNDQxNGE2YzNmNzg1ZWYyN2U3ZjVjNGIwODcwZWM3
ZTg4OGU2NmE4ZDgzL21vcmUtaXRlcnRvb2xzLTQuMi4wLnRhci5neiIsCisgICAgICAgIHNlbGYu
X2luc3RhbGwoImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9jMC8yZi82
NzczMzQ3Mjc3ZDc2YzVhZGU0NDE0YTZjM2Y3ODVlZjI3ZTdmNWM0YjA4NzBlYzdlODg4ZTY2YThk
ODMvbW9yZS1pdGVydG9vbHMtNC4yLjAudGFyLmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJtb3JlLWl0ZXJ0b29scy00LjIuMC9tb3JlX2l0ZXJ0b29scyIpCi0gICAgICAgIHNl
bGYuX2luc3RhbGwoImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzLzE2L2Q4L2JjNjMx
NmNmOTg0MTk3MTliZDU5YzkxNzQyMTk0YzExMWI2ZjJlODVhYmFjODhlNDk2YWRlZmFmN2FmZS9z
aXgtMS4xMS4wLnRhci5neiIsCisgICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8vZmlsZXMu
cHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy8xNi9kOC9iYzYzMTZjZjk4NDE5NzE5YmQ1OWM5MTc0
MjE5NGMxMTFiNmYyZTg1YWJhYzg4ZTQ5NmFkZWZhZjdhZmUvc2l4LTEuMTEuMC50YXIuZ3oiLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNpeC0xLjExLjAvc2l4LnB5IikKLSAgICAg
ICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvYTEvZTEv
MmQ5YmM3NjgzOGU2ZTY2NjdmZGU1ODE0YWEyNWQ3ZmViOTNkNmZhNDcxYmY2ODE2ZGFhYzI1OTZl
OGIyL2F0b21pY3dyaXRlcy0xLjEuNS50YXIuZ3oiLAorICAgICAgICBzZWxmLl9pbnN0YWxsKCJo
dHRwczovL2ZpbGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvYTEvZTEvMmQ5YmM3NjgzOGU2
ZTY2NjdmZGU1ODE0YWEyNWQ3ZmViOTNkNmZhNDcxYmY2ODE2ZGFhYzI1OTZlOGIyL2F0b21pY3dy
aXRlcy0xLjEuNS50YXIuZ3oiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF0b21p
Y3dyaXRlcy0xLjEuNS9hdG9taWN3cml0ZXMiKQotICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRw
czovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy85NC80YS9kYjg0MmU3YTA1NDVkZTFjZGIwNDM5
YmI4MGU2ZTQyZGZlODJhYWVhYWRkNDA3MmYyMjYzYTRmYmVkMjMvZnVuY3NpZ3MtMS4wLjIudGFy
Lmd6IiwKKyAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQu
b3JnL3BhY2thZ2VzLzk0LzRhL2RiODQyZTdhMDU0NWRlMWNkYjA0MzliYjgwZTZlNDJkZmU4MmFh
ZWFhZGQ0MDcyZjIyNjNhNGZiZWQyMy9mdW5jc2lncy0xLjAuMi50YXIuZ3oiLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImZ1bmNzaWdzLTEuMC4yL2Z1bmNzaWdzIikKLSAgICAgICAg
c2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvZTQvYWMvYTA0
NjcxZTExOGI1N2JlZTg3ZGFiY2ExZTBmMmQzYmRhODE2YjdhNTUxMDM2MDEyZDBjYTI0MTkwZTcx
L2F0dHJzLTE4LjEuMC50YXIuZ3oiLAorICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL2Zp
bGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvZTQvYWMvYTA0NjcxZTExOGI1N2JlZTg3ZGFi
Y2ExZTBmMmQzYmRhODE2YjdhNTUxMDM2MDEyZDBjYTI0MTkwZTcxL2F0dHJzLTE4LjEuMC50YXIu
Z3oiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF0dHJzLTE4LjEuMC9zcmMvYXR0
ciIpCi0gICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2th
Z2VzL2EyL2VjLzQxNWQwY2NjYzFlZDQxY2Q3ZmRmNjlhZDk4OWRhMTZhOGQxMzA1Nzk5NjM3MTAw
NGNhYjRiYWZjNDhmMy9weXRlc3QtMy42LjIudGFyLmd6IiwKKyAgICAgICAgc2VsZi5faW5zdGFs
bCgiaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2thZ2VzL2EyL2VjLzQxNWQwY2Nj
YzFlZDQxY2Q3ZmRmNjlhZDk4OWRhMTZhOGQxMzA1Nzk5NjM3MTAwNGNhYjRiYWZjNDhmMy9weXRl
c3QtMy42LjIudGFyLmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJweXRlc3Qt
My42LjIvc3JjL19weXRlc3QiKQotICAgICAgICBzZWxmLl9pbnN0YWxsKCJodHRwczovL3B5cGku
cHl0aG9uLm9yZy9wYWNrYWdlcy9hMi9lYy80MTVkMGNjY2MxZWQ0MWNkN2ZkZjY5YWQ5ODlkYTE2
YThkMTMwNTc5OTYzNzEwMDRjYWI0YmFmYzQ4ZjMvcHl0ZXN0LTMuNi4yLnRhci5neiIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAicHl0ZXN0LTMuNi4yL3NyYy9weXRlc3QucHkiKQog
CiAgICAgZGVmIF9pbnN0YWxsX3B5bGludChzZWxmKToKICAgICAgICAgc2VsZi5fZW5zdXJlX2F1
dG9pbnN0YWxsZWRfZGlyX2lzX2luX3N5c19wYXRoKCkKQEAgLTE3MCw5ICsxNjgsOSBAQCBjbGFz
cyBBdXRvaW5zdGFsbEltcG9ydEhvb2sob2JqZWN0KToKICAgICAgICAgICAgIGZpbGVzX3RvX3Jl
bW92ZSA9IFtdCiAgICAgICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKICAgICAg
ICAgICAgICAgICBmaWxlc190b19yZW1vdmUgPSBbJ3Rlc3QvZGF0YS93cml0ZV9wcm90ZWN0ZWRf
ZmlsZS50eHQnXQotICAgICAgICAgICAgaW5zdGFsbGVyLmluc3RhbGwoImh0dHBzOi8vcHlwaS5w
eXRob24ub3JnL3BhY2thZ2VzL3NvdXJjZS9sL2xvZ2lsYWItY29tbW9uL2xvZ2lsYWItY29tbW9u
LTAuNTguMS50YXIuZ3ojbWQ1PTc3Mjk4YWIyZDhiYjhiNGFmOTIxOTc5MWU3Y2VlOGNlIiwgdXJs
X3N1YnBhdGg9ImxvZ2lsYWItY29tbW9uLTAuNTguMSIsIHRhcmdldF9uYW1lPSJsb2dpbGFiL2Nv
bW1vbiIsIGZpbGVzX3RvX3JlbW92ZT1maWxlc190b19yZW1vdmUpCi0gICAgICAgICAgICBpbnN0
YWxsZXIuaW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291cmNlL2wv
bG9naWxhYi1hc3RuZy9sb2dpbGFiLWFzdG5nLTAuMjQuMS50YXIuZ3ojbWQ1PWRkYWY2NmU0ZDg1
NzE0ZDljNDdhNDZkNGJlZDQwNmRlIiwgdXJsX3N1YnBhdGg9ImxvZ2lsYWItYXN0bmctMC4yNC4x
IiwgdGFyZ2V0X25hbWU9ImxvZ2lsYWIvYXN0bmciKQotICAgICAgICAgICAgaW5zdGFsbGVyLmlu
c3RhbGwoJ2h0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzL3NvdXJjZS9wL3B5bGludC9w
eWxpbnQtMC4yNS4yLnRhci5neiNtZDU9ZDg3OGQ3Njg4YTRmNTI5MGRjNWI1M2E4MzY4NzI0MDAn
LCB1cmxfc3VicGF0aD0icHlsaW50LTAuMjUuMiIsIHRhcmdldF9uYW1lPSJweWxpbnQiKQorICAg
ICAgICAgICAgaW5zdGFsbGVyLmluc3RhbGwoImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9y
Zy9wYWNrYWdlcy9zb3VyY2UvbC9sb2dpbGFiLWNvbW1vbi9sb2dpbGFiLWNvbW1vbi0wLjU4LjEu
dGFyLmd6IiwgdXJsX3N1YnBhdGg9ImxvZ2lsYWItY29tbW9uLTAuNTguMSIsIHRhcmdldF9uYW1l
PSJsb2dpbGFiL2NvbW1vbiIsIGZpbGVzX3RvX3JlbW92ZT1maWxlc190b19yZW1vdmUpCisgICAg
ICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCgiaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3Jn
L3BhY2thZ2VzL3NvdXJjZS9sL2xvZ2lsYWItYXN0bmcvbG9naWxhYi1hc3RuZy0wLjI0LjEudGFy
Lmd6IiwgdXJsX3N1YnBhdGg9ImxvZ2lsYWItYXN0bmctMC4yNC4xIiwgdGFyZ2V0X25hbWU9Imxv
Z2lsYWIvYXN0bmciKQorICAgICAgICAgICAgaW5zdGFsbGVyLmluc3RhbGwoJ2h0dHBzOi8vZmls
ZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2UvcC9weWxpbnQvcHlsaW50LTAuMjUu
Mi50YXIuZ3onLCB1cmxfc3VicGF0aD0icHlsaW50LTAuMjUuMiIsIHRhcmdldF9uYW1lPSJweWxp
bnQiKQogCiAgICAgIyBhdXRvaW5zdGFsbGVkLmJ1aWxkYm90IGlzIHVzZWQgYnkgQnVpbGRTbGF2
ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvbWFzdGVyY2ZnX3VuaXR0ZXN0LnB5CiAg
ICAgIyBhbmQgc2hvdWxkIGlkZWFsbHkgbWF0Y2ggdGhlIHZlcnNpb24gb2YgQnVpbGRCb3QgdXNl
ZCBhdCBidWlsZC53ZWJraXQub3JnLgpAQCAtMTg0LDI5ICsxODIsMjkgQEAgY2xhc3MgQXV0b2lu
c3RhbGxJbXBvcnRIb29rKG9iamVjdCk6CiAgICAgICAgICMgd2l0aG91dCBpbmNsdWRpbmcgb3Ro
ZXIgbW9kdWxlcyBhcyBhIHNpZGUgZWZmZWN0LgogICAgICAgICBqaW5qYV9kaXIgPSBzZWxmLl9m
cy5qb2luKF9BVVRPSU5TVEFMTEVEX0RJUiwgImppbmphMiIpCiAgICAgICAgIGluc3RhbGxlciA9
IEF1dG9JbnN0YWxsZXIoYXBwZW5kX3RvX3NlYXJjaF9wYXRoPVRydWUsIHRhcmdldF9kaXI9amlu
amFfZGlyKQotICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHBzOi8vcHlwaS5weXRo
b24ub3JnL3BhY2thZ2VzL3NvdXJjZS9KL0ppbmphMi9KaW5qYTItMi42LnRhci5neiNtZDU9MWM0
OWE4ODI1Yzk5M2JmZGNmNTViYjM2ODk3ZDI4YTIiLAorICAgICAgICBpbnN0YWxsZXIuaW5zdGFs
bCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2UvSi9K
aW5qYTIvSmluamEyLTIuNi50YXIuZ3oiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdXJsX3N1YnBhdGg9IkppbmphMi0yLjYvamluamEyIikKIAogICAg
ICAgICBTUUxBbGNoZW15X2RpciA9IHNlbGYuX2ZzLmpvaW4oX0FVVE9JTlNUQUxMRURfRElSLCAi
c3FsYWxjaGVteSIpCiAgICAgICAgIGluc3RhbGxlciA9IEF1dG9JbnN0YWxsZXIoYXBwZW5kX3Rv
X3NlYXJjaF9wYXRoPVRydWUsIHRhcmdldF9kaXI9U1FMQWxjaGVteV9kaXIpCi0gICAgICAgIGlu
c3RhbGxlci5pbnN0YWxsKHVybD0iaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291
cmNlL1MvU1FMQWxjaGVteS9TUUxBbGNoZW15LTAuNy43LnRhci5neiNtZDU9ZGRmNmRmN2UwMTRj
ZWEzMThmYTk4MTM2NGYzZjkzYjkiLAorICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0
dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2UvUy9TUUxBbGNoZW15
L1NRTEFsY2hlbXktMC43LjcudGFyLmd6IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1cmxfc3VicGF0aD0iU1FMQWxjaGVteS0wLjcuNy9saWIvc3Fs
YWxjaGVteSIpCiAKICAgICAgICAgdHdpc3RlZF9kaXIgPSBzZWxmLl9mcy5qb2luKF9BVVRPSU5T
VEFMTEVEX0RJUiwgInR3aXN0ZWQiKQogICAgICAgICBpbnN0YWxsZXIgPSBBdXRvSW5zdGFsbGVy
KHByZXBlbmRfdG9fc2VhcmNoX3BhdGg9VHJ1ZSwgdGFyZ2V0X2Rpcj10d2lzdGVkX2RpcikKLSAg
ICAgICAgaW5zdGFsbGVyLmluc3RhbGwodXJsPSJodHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNr
YWdlcy9zb3VyY2UvVC9Ud2lzdGVkL1R3aXN0ZWQtMTIuMS4wLnRhci5iejIjbWQ1PWYzOTZmMWQ2
ZjUzMjFlODY5YzJmODliMjE5NmE5ZWI1IiwgdXJsX3N1YnBhdGg9IlR3aXN0ZWQtMTIuMS4wL3R3
aXN0ZWQiKQorICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0
aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2UvVC9Ud2lzdGVkL1R3aXN0ZWQtMTIuMS4wLnRh
ci5iejIiLCB1cmxfc3VicGF0aD0iVHdpc3RlZC0xMi4xLjAvdHdpc3RlZCIpCiAKLSAgICAgICAg
c2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcGFja2FnZXMvc291cmNlL2Iv
YnVpbGRib3QvYnVpbGRib3QtMC44LjZwMS50YXIuZ3ojbWQ1PWI2NzI3ZDI4MTBjNjkyMDYyYzY1
NzQ5MmJjYmVhYzZhIiwgImJ1aWxkYm90LTAuOC42cDEvYnVpbGRib3QiKQorICAgICAgICBzZWxm
Ll9pbnN0YWxsKCJodHRwczovL2ZpbGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvc291cmNl
L2IvYnVpbGRib3QvYnVpbGRib3QtMC44LjZwMS50YXIuZ3oiLCAiYnVpbGRib3QtMC44LjZwMS9i
dWlsZGJvdCIpCiAKICAgICBkZWYgX2luc3RhbGxfY292ZXJhZ2Uoc2VsZik6CiAgICAgICAgIHNl
bGYuX2Vuc3VyZV9hdXRvaW5zdGFsbGVkX2Rpcl9pc19pbl9zeXNfcGF0aCgpCi0gICAgICAgIHNl
bGYuX2luc3RhbGwodXJsPSJodHRwczovL3B5cGkucHl0aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2Uv
Yy9jb3ZlcmFnZS9jb3ZlcmFnZS0zLjUuMS50YXIuZ3ojbWQ1PTQxMGQ0YzgxNTVhNGRhYjIyMmYy
YmM1MTIxMmQ0YTI0IiwgdXJsX3N1YnBhdGg9ImNvdmVyYWdlLTMuNS4xL2NvdmVyYWdlIikKKyAg
ICAgICAgc2VsZi5faW5zdGFsbCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9w
YWNrYWdlcy9zb3VyY2UvYy9jb3ZlcmFnZS9jb3ZlcmFnZS0zLjUuMS50YXIuZ3oiLCB1cmxfc3Vi
cGF0aD0iY292ZXJhZ2UtMy41LjEvY292ZXJhZ2UiKQogCiAgICAgZGVmIF9pbnN0YWxsX3R3aXN0
ZWRfMTVfNV8wKHNlbGYpOgogICAgICAgICB0d2lzdGVkX2RpciA9IHNlbGYuX2ZzLmpvaW4oX0FV
VE9JTlNUQUxMRURfRElSLCAidHdpc3RlZF8xNV81XzAiKQogICAgICAgICBpbnN0YWxsZXIgPSBB
dXRvSW5zdGFsbGVyKHByZXBlbmRfdG9fc2VhcmNoX3BhdGg9VHJ1ZSwgdGFyZ2V0X2Rpcj10d2lz
dGVkX2RpcikKLSAgICAgICAgaW5zdGFsbGVyLmluc3RhbGwodXJsPSJodHRwczovL3B5cGkucHl0
aG9uLm9yZy9wYWNrYWdlcy9zb3VyY2UvVC9Ud2lzdGVkL1R3aXN0ZWQtMTUuNS4wLnRhci5iejIj
bWQ1PTA4MzFkN2M5MGQwMDIwMDYyZGUwZjcyODc1MzBhMjg1IiwgdXJsX3N1YnBhdGg9IlR3aXN0
ZWQtMTUuNS4wL3R3aXN0ZWQiKQotICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHBz
Oi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzL3NvdXJjZS96L3pvcGUuaW50ZXJmYWNlL3pvcGUu
aW50ZXJmYWNlLTQuMS4zLnRhci5neiNtZDU9OWFlM2QyNGMwYzc0MTVkZWIyNDlkZDFhMTMyZjBm
NzkiLCB1cmxfc3VicGF0aD0iem9wZS5pbnRlcmZhY2UtNC4xLjMvc3JjL3pvcGUiKQorICAgICAg
ICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9w
YWNrYWdlcy9zb3VyY2UvVC9Ud2lzdGVkL1R3aXN0ZWQtMTUuNS4wLnRhci5iejIiLCB1cmxfc3Vi
cGF0aD0iVHdpc3RlZC0xNS41LjAvdHdpc3RlZCIpCisgICAgICAgIGluc3RhbGxlci5pbnN0YWxs
KHVybD0iaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2thZ2VzL3NvdXJjZS96L3pv
cGUuaW50ZXJmYWNlL3pvcGUuaW50ZXJmYWNlLTQuMS4zLnRhci5neiIsIHVybF9zdWJwYXRoPSJ6
b3BlLmludGVyZmFjZS00LjEuMy9zcmMvem9wZSIpCiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAg
ZGVmIGdyZWF0ZXJfdGhhbl9lcXVhbF90b192ZXJzaW9uKG1pbmltdW0sIHZlcnNpb24pOgpAQCAt
MjE5LDE4ICsyMTcsMjEgQEAgY2xhc3MgQXV0b2luc3RhbGxJbXBvcnRIb29rKG9iamVjdCk6CiAK
ICAgICBkZWYgX2luc3RhbGxfc2VsZW5pdW0oc2VsZik6CiAgICAgICAgIHNlbGYuX2Vuc3VyZV9h
dXRvaW5zdGFsbGVkX2Rpcl9pc19pbl9zeXNfcGF0aCgpCisKKyAgICAgICAgaW5zdGFsbGVyID0g
QXV0b0luc3RhbGxlcihwcmVwZW5kX3RvX3NlYXJjaF9wYXRoPVRydWUsIHRhcmdldF9kaXI9c2Vs
Zi5fZnMuam9pbihfQVVUT0lOU1RBTExFRF9ESVIsICJ1cmxsaWIzIikpCisgICAgICAgIGluc3Rh
bGxlci5pbnN0YWxsKHVybD0iaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2thZ2Vz
L2IxLzUzLzM3ZDgyYWIzOTEzOTM1NjVmMmY4MzFiOGVlZGJmZmQ1N2RiNWE3MTgyMTZmODJmMWE4
YjRkMzgxYTFjMS91cmxsaWIzLTEuMjQuMS50YXIuZ3oiLCB1cmxfc3VicGF0aD0idXJsbGliMy0x
LjI0LjEiKQorCisgICAgICAgIG1pbmltdW1fdmVyc2lvbiA9ICczLjUuMCcKKyAgICAgICAgaWYg
b3MucGF0aC5pc2ZpbGUob3MucGF0aC5qb2luKF9BVVRPSU5TVEFMTEVEX0RJUiwgJ3NlbGVuaXVt
JywgJ19faW5pdF9fLnB5JykpOgorICAgICAgICAgICAgaW1wb3J0IHNlbGVuaXVtLndlYmRyaXZl
cgorICAgICAgICAgICAgaWYgQXV0b2luc3RhbGxJbXBvcnRIb29rLmdyZWF0ZXJfdGhhbl9lcXVh
bF90b192ZXJzaW9uKG1pbmltdW1fdmVyc2lvbiwgc2VsZW5pdW0ud2ViZHJpdmVyLl9fdmVyc2lv
bl9fKToKKyAgICAgICAgICAgICAgICByZXR1cm4KKwogICAgICAgICB0cnk6CiAgICAgICAgICAg
ICB1cmwsIHVybF9zdWJwYXRoID0gc2VsZi5nZXRfbGF0ZXN0X3B5cGlfdXJsKCdzZWxlbml1bScp
CiAgICAgICAgIGV4Y2VwdCB1cmxsaWIyLlVSTEVycm9yOgotICAgICAgICAgICAgbWluaW11bV92
ZXJzaW9uID0gJzMuNS4wJwotICAgICAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUob3MucGF0aC5q
b2luKF9BVVRPSU5TVEFMTEVEX0RJUiwgJ3NlbGVuaXVtJywgJ19faW5pdF9fLnB5JykpOgotICAg
ICAgICAgICAgICAgIGltcG9ydCBzZWxlbml1bS53ZWJkcml2ZXIKLSAgICAgICAgICAgICAgICBp
ZiBBdXRvaW5zdGFsbEltcG9ydEhvb2suZ3JlYXRlcl90aGFuX2VxdWFsX3RvX3ZlcnNpb24obWlu
aW11bV92ZXJzaW9uLCBzZWxlbml1bS53ZWJkcml2ZXIuX192ZXJzaW9uX18pOgotICAgICAgICAg
ICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCdcbkZhaWxlZCB0byBmaW5kIGxhdGVzdCBzZWxl
bml1bSwgZmFsbGluZyBiYWNrIHRvIGV4aXN0aW5nIHt9IHZlcnNpb25cbicuZm9ybWF0KHNlbGVu
aXVtLndlYmRyaXZlci5fX3ZlcnNpb25fXykpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybgot
CiAgICAgICAgICAgICAjIFVSTCBmb3IgaW5zdGFsbGluZyB0aGUgbWluaW11bSByZXF1aXJlZCB2
ZXJzaW9uLgotICAgICAgICAgICAgdXJsID0gJ2h0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2th
Z2VzL2FjL2Q3LzE5Mjg0MTY0MzlkMDY2YzYwZjI2Yzg3YThkMWI3OGE4ZWRkNjRjN2QwNWEwYWE5
MTdmYTk3YThlZTAyZC9zZWxlbml1bS0zLjUuMC50YXIuZ3ojOTg2NzAyZmRkMGUyYWVjNmE0ZWRh
MTM0Njc4YjhiM2YnCisgICAgICAgICAgICB1cmwgPSAnaHR0cHM6Ly9maWxlcy5weXRob25ob3N0
ZWQub3JnL3BhY2thZ2VzL2FjL2Q3LzE5Mjg0MTY0MzlkMDY2YzYwZjI2Yzg3YThkMWI3OGE4ZWRk
NjRjN2QwNWEwYWE5MTdmYTk3YThlZTAyZC9zZWxlbml1bS0zLjUuMC50YXIuZ3onCiAgICAgICAg
ICAgICB1cmxfc3VicGF0aCA9ICdzZWxlbml1bS17fS9zZWxlbml1bScuZm9ybWF0KG1pbmltdW1f
dmVyc2lvbikKICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ1xuRmFpbGVkIHRvIGZpbmQg
bGF0ZXN0IHNlbGVuaXVtLCBmYWxsaW5nIGJhY2sgdG8gbWluaW11bSB7fSB2ZXJzaW9uXG4nLmZv
cm1hdChtaW5pbXVtX3ZlcnNpb24pKQogICAgICAgICBzZWxmLl9pbnN0YWxsKHVybD11cmwsIHVy
bF9zdWJwYXRoPXVybF9zdWJwYXRoKQpAQCAtMjU2LDggKzI1Nyw4IEBAIGNsYXNzIEF1dG9pbnN0
YWxsSW1wb3J0SG9vayhvYmplY3QpOgogICAgICAgICBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9dXJs
LCB1cmxfc3VicGF0aD11cmxfc3VicGF0aCwgdGFyZ2V0X25hbWU9dGFyZ2V0X25hbWUpCiAKICAg
ICBkZWYgZ2V0X2xhdGVzdF9weXBpX3VybChzZWxmLCBwYWNrYWdlX25hbWUsIHVybF9zdWJwYXRo
X2Zvcm1hdD0ne25hbWV9LXt2ZXJzaW9ufS97bG5hbWV9Jyk6Ci0gICAgICAgIGpzb25fdXJsID0g
Imh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvJXMvanNvbiIgJSBwYWNrYWdlX25hbWUKLSAg
ICAgICAgcmVzcG9uc2UgPSB1cmxsaWIyLnVybG9wZW4oanNvbl91cmwpCisgICAgICAgIGpzb25f
dXJsID0gImh0dHBzOi8vcHlwaS5vcmcvcHlwaS8lcy9qc29uIiAlIHBhY2thZ2VfbmFtZQorICAg
ICAgICByZXNwb25zZSA9IHVybGxpYjIudXJsb3Blbihqc29uX3VybCwgdGltZW91dD0zMCkKICAg
ICAgICAgZGF0YSA9IGpzb24ubG9hZChyZXNwb25zZSkKICAgICAgICAgdXJsID0gZGF0YVsndXJs
cyddWzFdWyd1cmwnXQogICAgICAgICBzdWJwYXRoID0gdXJsX3N1YnBhdGhfZm9ybWF0LmZvcm1h
dChuYW1lPXBhY2thZ2VfbmFtZSwgdmVyc2lvbj1kYXRhWydpbmZvJ11bJ3ZlcnNpb24nXSwgbG5h
bWU9cGFja2FnZV9uYW1lLmxvd2VyKCkpCg==
</data>
<flag name="review"
          id="374726"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="374739"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>