This plug-in adds support for Salt to Foreman's Smart Proxy.
theforeman / smart_proxy_salt Goto Github PK
View Code? Open in Web Editor NEWSmart Proxy plug-in for Salt
License: GNU General Public License v3.0
Smart Proxy plug-in for Salt
License: GNU General Public License v3.0
Hi,
I have some suggestions for packaging the salt report upload runner. When manually copying it to salt://_runners it could be that when there are updates or fixes they are missed because its not included in the package.
So I'd rather have it installed via package to some location and documented that one has to add whatever directory it is installed to to runner_dirs in the salt master config, ie:
runner_dirs:
- /wherever/the/package/puts/the/runner
This also eliminates the need to sync the runners.
Same goes for the reactor, it should be installed to the same directory and referenced directly (with full path) in the reactor's config. Reactors or runners do not have to reside in file_roots.
Package ruby-smart-proxy-salt installs python2.7 due to the python
dependency:
# apt show ruby-smart-proxy-salt
Package: ruby-smart-proxy-salt
Version: 5.0.0-1
Priority: optional
Section: ruby
Maintainer: Michael Moll <[email protected]>
Installed-Size: 72.7 kB
Depends: ruby | ruby-interpreter, foreman-proxy (>= 2.5), ruby-smart-proxy-dynflow (>= 0.5.0), salt-master, python
Homepage: https://github.com/theforeman/smart_proxy_salt
Ruby-Versions: all
Download-Size: 12.1 kB
APT-Sources: http://deb.theforeman.org plugins/3.4 amd64 Packages
Description: SaltStack Plug-In for Foreman's Smart Proxy
SaltStack Plug-In for Foreman's Smart Proxy
And the python
package has a dependency on python2.7:
# apt show python -a
Package: python
Version: 2.7.15~rc1-1
Status: deinstall ok config-files
Priority: optional
Section: python
Source: python-defaults
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Matthias Klose <[email protected]>
Config-Version: 2.7.15~rc1-1
Installed-Size: 639 kB
Provides: python-ctypes, python-email, python-importlib, python-profiler, python-wsgiref
Pre-Depends: python-minimal (= 2.7.15~rc1-1)
Depends: python2.7 (>= 2.7.15~rc1-1~), libpython-stdlib (= 2.7.15~rc1-1)
Suggests: python-doc (= 2.7.15~rc1-1), python-tk (>= 2.7.15~rc1-1~)
Conflicts: python-central (<< 0.5.5)
Breaks: update-manager-core (<< 0.200.5-2)
Replaces: python-dev (<< 2.6.5-2)
Homepage: http://www.python.org/
Cnf-Extra-Commands: python
Cnf-Priority-Bonus: 3
Download-Size: unknown
APT-Sources: /var/lib/dpkg/status
Description: interactive high-level object-oriented language (default version)
Python, the high-level, interactive object oriented language,
includes an extensive class library with lots of goodies for
network programming, system administration, sounds and graphics.
.
This package is a dependency package, which depends on Debian's default
Python version (currently v2.7).
As python2.7 is EOL since January 2020 the dependency should be switched to python3?
Currently, reports need to be manually uploaded after a highstate (or via a script). Instead, we can use Salt's event system and reactor to upload reports after every high state. Not only does this make for better usability, but also reduces load on the system as we don't have to run upload-reports in a cron job all the time.
Here's how I've done it on Salt 2016.11.3, although it does need more testing:
In /etc/salt/master.d/reactor.conf
:
reactor:
- 'salt/job/*/ret/*':
- /srv/reactor/upload-salt-reports.sls
In /srv/reactor/upload-salt-reports.sls
:
upload-salt-reports:
runner.foreman.upload_reports:
- data: {{ data|yaml_dquote }}
In /var/cache/salt/master/extmods/runners/foreman.py
:
#!/usr/bin/env python
import ast
import logging
import httplib
import ssl
import yaml
import base64
import json
LOGGER = logging.getLogger(__name__)
FOREMAN_CONFIG = '/etc/salt/foreman.yaml'
def upload_reports(data):
'''
Upload Salt reports to Foreman. Note that only data that
contains a highstate is uploaded.
:data: A data object returned by a Salt event.
'''
data = ast.literal_eval(data)
if data['fun'] != 'state.highstate':
return True
LOGGER.info("Uploading report for " + data['id'] + "...")
job = {
'job': {
'function': data['fun'],
'result': {
data['id']: data['return']
}
}
}
config = None
with open(FOREMAN_CONFIG, 'r') as f:
config = yaml.load(f.read())
headers = {'Accept': 'application/json',
'Content-Type': 'application/json'}
if config[':proto'] == 'https':
ctx = ssl.create_default_context()
ctx.load_cert_chain(
certfile=config[':ssl_cert'], keyfile=config[':ssl_key'])
if config[':ssl_ca']:
ctx.load_verify_locations(cafile=config[':ssl_ca'])
connection = httplib.HTTPSConnection(config[':host'],
port=config[':port'], context=ctx)
else:
connection = httplib.HTTPConnection(config[':host'],
port=config[':port'])
if ':username' in config and ':password' in config:
token = base64.b64encode('{}:{}'.format(config[':username'],
config[':password']))
headers['Authorization'] = 'Basic {}'.format(token)
connection.request('POST', '/salt/api/v2/jobs/upload',
json.dumps(job), headers)
response = connection.getresponse()
if response.status == 200:
return True
else:
raise Exception(response.read())
return True
Note that my runners come from git; I'm not sure of the best way to integrate this with the smart_proxy_salt packaging.
I feel like there are some obvious problems with this so I'd love to start a discussion.
Edit: Updated to not rely on upload-salt-reports at all as that was causing all kinds of weirdness.
Recent salt versions are available as onedir packages only (see https://docs.saltproject.io/salt/install-guide/en/latest/topics/upgrade-to-onedir.html#upgrade-to-onedir), here by default the current version of PyYAML 6.0.1 is shipped. While PyYaml versions 5.x already deprecated the yaml.load(input)
function call (see https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation), 6.x removed it.
smart_proxy_salt uses the function call in 3 places:
A straightforward fix would be, to replace the yaml.load(f.read())
calls with yaml.load(f.read(), Loader=yaml.FullLoader)
ones, this was the default behavior for PyYaml 5.x. For security reasons it might be also desirable to check if a switch to the yaml.SafeLoader
is feasable.
We're trying to get salt reports uploaded to foreman and hitting an hang/kill issue in the script. I added some print
commands to each of the functions. Looks like it gets to the run block where it appears to want to read /etc/salt/master
config:
def run(*args, **kwargs):
print("run")
__opts__ = salt.config.master_config(
os.environ.get('SALT_MASTER_CONFIG', '/etc/salt/master'))
#print(__opts__)
runner = salt.runner.Runner(__opts__)
#print(runner)
with io.open(os.devnull, 'w') as f:
print("io open block")
print(f)
stdout_bak, sys.stdout = sys.stdout, f
print("stdout block")
try:
ret = runner.cmd(*args, **kwargs)
#print(ret)
finally:
sys.stdout = stdout_bak
return ret['data'] if 'data' in ret else ret
Here is what that looks like when I run it:
[root@10-222-76-237 salt]# /usr/sbin/upload-salt-reports
get_lock
upload(jobs)
salt_config
jobs_to_upload
run
io open block
f is <_io.TextIOWrapper name='/dev/null' mode='w' encoding='UTF-8'>
Killed
Any idea what is going on here? I know that most of our salt config lives in /etc/salt/master.d/<confs>
is this the issue?
It'd be great to have a bulk change action to change the Salt Master of multiple hosts at once.
The salt-master is not set automatically when salt smart-proxy plugin creates a new host entry or atleast it didn't for me. Therefore you have to manually set the salt-master for each host. With growing host count that is quite a lot of work.
Theres an option to bulk change the monitoring proxy for example. I am not fluent in Ruby but I am familiar with how web applications handle requests and return views. If you guys could point me to the relevant components I need to analyze, I'd try giving it a shot to fork and pull request.
I am using salt in combination with katello 3.2. I am wondering is there a way to throttle upload-salt-reports. I am seeing a problem when I am running this. It is causing my machine to utilize 100% cpu and cause memory to spike from 4gb to 13gb. It appears to be a problem with passenger, but I have done as much as I can to tune passenger. I have the report upload running every 10 minutes, so every 10 minutes it spikes. I need a way to batch the reports if possible, 20 to 30 at a time. Thanks!
Due to wrong package dependencies I'm unable to install the ruby-smart-proxy-salt
package:
# apt install ruby-smart-proxy-salt
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
ruby-smart-proxy-salt : Depends: ruby-smart-proxy-salt-core (>= 0.0.2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Ubuntu Version:
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal
Foreman sources:
deb http://deb.theforeman.org focal 3.1
deb http://deb.theforeman.org plugins 3.1
I already reported it here, but there was no response to it: https://projects.theforeman.org/issues/33994
Thank you in advance and let me know if there are more details needed.
Our security operations team wanted to know why SSL verification is disabled here?
Im looking through the rest of the code, but was this an oversite during testing, not to change it back?
Problem:
Using the foreman salt plugins and proxies, reports from the reactor/runners fail to upload.
Expected outcome:
They upload.
Foreman and Proxy versions:
Latest.
Foreman and Proxy plugin versions:
Latest.
Distribution and version:
Linux Alma 8 / Salt 3005.1
Other relevant data:
Added some additional logging to the foreman_reports_upload.py
runner:
2024-07-24 19:26:22,703 [salt.loaded.ext.runners.foreman_report_upload:76 ][DEBUG ][388458] HTTP connection created
2024-07-24 19:26:22,703 [salt.loaded.ext.runners.foreman_report_upload:158 ][ERROR ][388458] Exception encountered: a bytes-like object is required, not 'str'
2024-07-24 19:26:22,703 [salt.loaded.ext.runners.foreman_report_upload:139 ][DEBUG ][388458] Releasing lock
2024-07-24 19:26:22,704 [salt.loaded.ext.runners.foreman_report_upload:142 ][DEBUG ][388458] Lock released
I do see the salt event log showing the reactor is triggering the runner. However, something about it isnt quite right and I cant figure it out. The long string below is a base64 encoded string.
salt/run/20240724192622670225/ret {
"_stamp": "2024-07-24T19:26:22.706437",
"fun": "runner.foreman_report_upload.now",
"fun_args": [
{
"highstate": "eyJfc3RhbXAiOiAiMjAyNC0wNy0yNFQxOToyNjoyMi4xNjIyNzAiLCAiY21kIjogIl9yZXR1cm4iLCAiZnVuIjogInN0YXRlLmhpZ2hzdGF0ZSIsICJmdW5fYXJncyI6IFtdLCAiaWQiOiAiMTAtMjIyLTI4LTc3LnNzbmMtY29ycC5jbG91ZCIsICJqaWQiOiAiMjAyNDA3MjQxOTI2MDIxMjI2NzYiLCAib3V0IjogImhpZ2hzdGF0ZSIsICJyZXRjb2RlIjogMCwgInJldHVybiI6IHsiY21kX3wtYWRkX2thZmthX3Bhc3N3b3JkX3RvX2tleXN0b3JlX3wtZWNobyBiMksxMUVcXCQwIHwgL3Vzci9iaW4vZmlsZWJlYXQga2V5c3RvcmUgYWRkIEVTX0tBRktBMDFfUFdEIC0tc3RkaW4gLS1mb3JjZV98LXJ1biI6IHsiX19pZF9fIjogImFkZF9rYWZrYV9wYXNzd29yZF90b19rZXlzdG9yZSIsICJfX3J1bl9udW1fXyI6IDEwMiwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLWZpbGViZWF0IiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAidW5sZXNzIGNvbmRpdGlvbiBpcyB0cnVlIiwgImR1cmF0aW9uIjogMTcuMjU1LCAibmFtZSI6ICJlY2hvIGIySzExRVxcJDAgfCAvdXNyL2Jpbi9maWxlYmVhdCBrZXlzdG9yZSBhZGQgRVNfS0FGS0EwMV9QV0QgLS1zdGRpbiAtLWZvcmNlIiwgInJlc3VsdCI6IHRydWUsICJza2lwX3dhdGNoIjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTkuNzI2MTY3In0sICJjbWRffC1hZGRpbmdfc2hhMV9yaGVsOV98LXVwZGF0ZS1jcnlwdG8tcG9saWNpZXMgLS1zZXQgREVGQVVMVDpTSEExX3wtcnVuIjogeyJfX2lkX18iOiAiYWRkaW5nX3NoYTFfcmhlbDkiLCAiX19ydW5fbnVtX18iOiA5MiwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLWZpbGViZWF0IiwgImNoYW5nZXMiOiB7InBpZCI6IDI0OTY5MzMsICJyZXRjb2RlIjogMCwgInN0ZGVyciI6ICIiLCAic3Rkb3V0IjogIlNldHRpbmcgc3lzdGVtIHBvbGljeSB0byBERUZBVUxUOlNIQTFcbk5vdGU6IFN5c3RlbS13aWRlIGNyeXB0byBwb2xpY2llcyBhcmUgYXBwbGllZCBvbiBhcHBsaWNhdGlvbiBzdGFydC11cC5cbkl0IGlzIHJlY29tbWVuZGVkIHRvIHJlc3RhcnQgdGhlIHN5c3RlbSBmb3IgdGhlIGNoYW5nZSBvZiBwb2xpY2llc1xudG8gZnVsbHkgdGFrZSBwbGFjZS4ifSwgImNvbW1lbnQiOiAiQ29tbWFuZCBcInVwZGF0ZS1jcnlwdG8tcG9saWNpZXMgLS1zZXQgREVGQVVMVDpTSEExXCIgcnVuIiwgImR1cmF0aW9uIjogMTY5LjkxMSwgIm5hbWUiOiAidXBkYXRlLWNyeXB0by1wb2xpY2llcyAtLXNldCBERUZBVUxUOlNIQTEiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuOTk1OTk0In0sICJjbWRffC1mbHVzaF9zc3NkX2NhY2hlX3wtL3Vzci9zYmluL3Nzc19jYWNoZSAtRV98LXJ1biI6IHsiX19ydW5fbnVtX18iOiAxMDksICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1zc3NkIiwgIl9fc3RhdGVfcmFuX18iOiBmYWxzZSwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiU3RhdGUgd2FzIG5vdCBydW4gYmVjYXVzZSBub25lIG9mIHRoZSBvbmNoYW5nZXMgcmVxcyBjaGFuZ2VkIiwgImR1cmF0aW9uIjogMC4wMDQsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxOS44ODgxMzAifSwgImNtZF98LWluc3RhbGxfbGlicmFyaWVzX2lnbm9yZV9mYWlsdXJlX2FsbGJ1dHJoZWxffC15dW0gLS1kaXNhYmxlcmVwbz0qIC0tZW5hYmxlcmVwbz1zc25jKiBpbnN0YWxsIC15IHNlbGludXgtcG9saWN5LWRldmVsX3wtcnVuIjogeyJfX2lkX18iOiAiaW5zdGFsbF9saWJyYXJpZXNfaWdub3JlX2ZhaWx1cmVfYWxsYnV0cmhlbCIsICJfX3J1bl9udW1fXyI6IDExNiwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXBhbG8tY29ydGV4LmxpbnV4IiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAidW5sZXNzIGNvbmRpdGlvbiBpcyB0cnVlIiwgImR1cmF0aW9uIjogMjkuMDQ3LCAibmFtZSI6ICJ5dW0gLS1kaXNhYmxlcmVwbz0qIC0tZW5hYmxlcmVwbz1zc25jKiBpbnN0YWxsIC15IHNlbGludXgtcG9saWN5LWRldmVsIiwgInJlc3VsdCI6IHRydWUsICJza2lwX3dhdGNoIjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MjEuNzYwNTY1In0sICJjbWRffC1ydW5fc2NyaXB0X2dldC14YWd0YWdlbnRpZC5zaF98LXNhbHQ6Ly9zc25jLWJhc2VsaW5lL3NzbmMtZ3JhaW5zL3NzbmMtZmlyZWV5ZS1pZC9maWxlcy9nZXQteGFndGFnZW50aWQuc2hffC1zY3JpcHQiOiB7Il9faWRfXyI6ICJydW5fc2NyaXB0X2dldC14YWd0YWdlbnRpZC5zaCIsICJfX3J1bl9udW1fXyI6IDExNSwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLWdyYWlucy5zc25jLWZpcmVleWUtaWQiLCAiY2hhbmdlcyI6IHsicGlkIjogMjQ5Njk5NywgInJldGNvZGUiOiAwLCAic3RkZXJyIjogIiIsICJzdGRvdXQiOiAibG9jYWw6XG4gICAgLS0tLS0tLS0tLVxuICAgIHNzbmNfZmlyZWV5ZV9pZDpcbiAgICAgICAgZmlyZWV5ZV9taXNzaW5nIn0sICJjb21tZW50IjogIkNvbW1hbmQgJ3NhbHQ6Ly9zc25jLWJhc2VsaW5lL3NzbmMtZ3JhaW5zL3NzbmMtZmlyZWV5ZS1pZC9maWxlcy9nZXQteGFndGFnZW50aWQuc2gnIHJ1biIsICJkdXJhdGlvbiI6IDE3MTUuNDEyLCAibmFtZSI6ICJzYWx0Oi8vc3NuYy1iYXNlbGluZS9zc25jLWdyYWlucy9zc25jLWZpcmVleWUtaWQvZmlsZXMvZ2V0LXhhZ3RhZ2VudGlkLnNoIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjIwLjA0NDgzMCJ9LCAiY21kX3wtdXBkYXRlLWNhLXRydXN0X3wtL3Vzci9iaW4vdXBkYXRlLWNhLXRydXN0X3wtcnVuIjogeyJfX3J1bl9udW1fXyI6IDE4LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtdHJ1c3RlZC1jYS5saW51eC10cnVzdGVkLWNhIiwgIl9fc3RhdGVfcmFuX18iOiBmYWxzZSwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiU3RhdGUgd2FzIG5vdCBydW4gYmVjYXVzZSBub25lIG9mIHRoZSBvbmNoYW5nZXMgcmVxcyBjaGFuZ2VkIiwgImR1cmF0aW9uIjogMC4wMDQsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy4wOTg1MDMifSwgImNyb25ffC1jcmVhdGVfY3Jvbl9lbnZffC1QQVRIX3wtZW52X3ByZXNlbnQiOiB7Il9faWRfXyI6ICJjcmVhdGVfY3Jvbl9lbnYiLCAiX19ydW5fbnVtX18iOiAxMiwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLW1pbmlvbiIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkNyb24gZW52IFBBVEggYWxyZWFkeSBwcmVzZW50IiwgImR1cmF0aW9uIjogMTAuNTQ4LCAibmFtZSI6ICJQQVRIIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE2LjYxMjg4MSJ9LCAiY3Jvbl98LWNyZWF0ZV9taW5pb25faGlnaHN0YXRlX3NjaGVkdWxlX3wtc2xlZXAgMzM5OTk7IG5pY2UgLW4gMTkgc2FsdC1jYWxsIHN0YXRlLmFwcGx5ID4gL3RtcC9zYWx0LWNhbGwuY3Jvbi5vdXQgMj4mMSA7IHN5c3RlbWN0bCByZXN0YXJ0IHNhbHQtbWluaW9uIDsgc2FsdC1jYWxsIHN0YXRlLmFwcGx5ID4gL3RtcC9zYWx0LWNhbGwuY3Jvbi5vdXQgMj4mMV98LXByZXNlbnQiOiB7Il9faWRfXyI6ICJjcmVhdGVfbWluaW9uX2hpZ2hzdGF0ZV9zY2hlZHVsZSIsICJfX3J1bl9udW1fXyI6IDEzLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtbWluaW9uIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiQ3JvbiBzbGVlcCAzMzk5OTsgbmljZSAtbiAxOSBzYWx0LWNhbGwgc3RhdGUuYXBwbHkgPiAvdG1wL3NhbHQtY2FsbC5jcm9uLm91dCAyPiYxIDsgc3lzdGVtY3RsIHJlc3RhcnQgc2FsdC1taW5pb24gOyBzYWx0LWNhbGwgc3RhdGUuYXBwbHkgPiAvdG1wL3NhbHQtY2FsbC5jcm9uLm91dCAyPiYxIGFscmVhZHkgcHJlc2VudCIsICJkdXJhdGlvbiI6IDEwLjAyMiwgIm5hbWUiOiAic2xlZXAgMzM5OTk7IG5pY2UgLW4gMTkgc2FsdC1jYWxsIHN0YXRlLmFwcGx5ID4gL3RtcC9zYWx0LWNhbGwuY3Jvbi5vdXQgMj4mMSA7IHN5c3RlbWN0bCByZXN0YXJ0IHNhbHQtbWluaW9uIDsgc2FsdC1jYWxsIHN0YXRlLmFwcGx5ID4gL3RtcC9zYWx0LWNhbGwuY3Jvbi5vdXQgMj4mMSIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNi42MjM4MzAifSwgImNyb25ffC1yZW1vdmVfZ29kaXNjb3ZlcnlfY3JvbmpvYl98LS9iaW4vc2xlZXAgOyAvdXNyL2xvY2FsL2Jpbi9kaXNjb3ZlcnktbGludXgtYW1kNjQgLS1kZXYgLXQgaW5mLWRpc2NvdmVyeS1qc29uID4+IC90bXAvZGlzY292ZXJ5LiQoL2Jpbi9kYXRlICtcXCVGKSAyPiYxX3wtYWJzZW50IjogeyJfX2lkX18iOiAicmVtb3ZlX2dvZGlzY292ZXJ5X2Nyb25qb2IiLCAiX19ydW5fbnVtX18iOiA4MywgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLWdvZGlzY292ZXJ5LXJlbW92YWwiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJDcm9uIC9iaW4vc2xlZXAgOyAvdXNyL2xvY2FsL2Jpbi9kaXNjb3ZlcnktbGludXgtYW1kNjQgLS1kZXYgLXQgaW5mLWRpc2NvdmVyeS1qc29uID4+IC90bXAvZGlzY292ZXJ5LiQoL2Jpbi9kYXRlICtcXCVGKSAyPiYxIGFscmVhZHkgYWJzZW50IiwgImR1cmF0aW9uIjogOS44NjksICJuYW1lIjogIi9iaW4vc2xlZXAgOyAvdXNyL2xvY2FsL2Jpbi9kaXNjb3ZlcnktbGludXgtYW1kNjQgLS1kZXYgLXQgaW5mLWRpc2NvdmVyeS1qc29uID4+IC90bXAvZGlzY292ZXJ5LiQoL2Jpbi9kYXRlICtcXCVGKSAyPiYxIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3Ljk0MDIzNCJ9LCAiZXZlbnRffC1maWxlYmVhdC1lcnJvci1ldmVudF98LXNzbmMvZmlsZWJlYXQva2Fma2EvZXJyb3JffC1zZW5kIjogeyJfX3J1bl9udW1fXyI6IDEwNSwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLWZpbGViZWF0IiwgIl9fc3RhdGVfcmFuX18iOiBmYWxzZSwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiU3RhdGUgd2FzIG5vdCBydW4gYmVjYXVzZSBvbmZhaWwgcmVxIGRpZCBub3QgY2hhbmdlIiwgImR1cmF0aW9uIjogMC4wMDIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxOS43OTQwNDcifSwgImZpbGVffC1hZGRfYW5zaWJsZV8uc3NoX2RpcmVjdG9yeV98LX5hbnNpYmxlLy5zc2hffC1kaXJlY3RvcnkiOiB7Il9faWRfXyI6ICJhZGRfYW5zaWJsZV8uc3NoX2RpcmVjdG9yeSIsICJfX3J1bl9udW1fXyI6IDc5LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtYW5zaWJsZSIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlRoZSBkaXJlY3RvcnkgL2hvbWUvYW5zaWJsZS8uc3NoIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMC43OTYsICJuYW1lIjogIi9ob21lL2Fuc2libGUvLnNzaCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy45MTg5NTYifSwgImZpbGVffC1hZGRfcHJvZF9hbnNpYmxlX3NzaF9rZXlffC1+YW5zaWJsZS8uc3NoL2F1dGhvcml6ZWRfa2V5c198LW1hbmFnZWQiOiB7Il9faWRfXyI6ICJhZGRfcHJvZF9hbnNpYmxlX3NzaF9rZXkiLCAiX19ydW5fbnVtX18iOiA4MSwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLWFuc2libGUiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9ob21lL2Fuc2libGUvLnNzaC9hdXRob3JpemVkX2tleXMgaXMgaW4gdGhlIGNvcnJlY3Qgc3RhdGUiLCAiZHVyYXRpb24iOiAxOS4wNzksICJuYW1lIjogIi9ob21lL2Fuc2libGUvLnNzaC9hdXRob3JpemVkX2tleXMiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuOTIwMzk2In0sICJmaWxlX3wtY2xlYW51cF9vbGRfbG9nc198LS92YXIvbG9nX3wtdGlkaWVkIjogeyJfX2lkX18iOiAiY2xlYW51cF9vbGRfbG9ncyIsICJfX3J1bl9udW1fXyI6IDMxLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3lzbG9nIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiTm90aGluZyB0byByZW1vdmUgZnJvbSBkaXJlY3RvcnkgL3Zhci9sb2ciLCAiZHVyYXRpb24iOiA0LjU3NiwgIm5hbWUiOiAiL3Zhci9sb2ciLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuMzg0OTEwIn0sICJmaWxlX3wtY2xvdWRfbGRhcF9jcnRffC0vZXRjL29wZW5sZGFwL2NhY2VydHMvbGRhcC5jcnRffC1tYW5hZ2VkIjogeyJfX2lkX18iOiAiY2xvdWRfbGRhcF9jcnQiLCAiX19ydW5fbnVtX18iOiAxMDgsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1zc3NkIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvZXRjL29wZW5sZGFwL2NhY2VydHMvbGRhcC5jcnQgaXMgaW4gdGhlIGNvcnJlY3Qgc3RhdGUiLCAiZHVyYXRpb24iOiAzOS4wOTYsICJuYW1lIjogIi9ldGMvb3BlbmxkYXAvY2FjZXJ0cy9sZGFwLmNydCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxOS44NDc3NjcifSwgImZpbGVffC1jbG91ZF9zc3NkX2NvbmZffC0vZXRjL3Nzc2Qvc3NzZC5jb25mX3wtbWFuYWdlZCI6IHsiX19pZF9fIjogImNsb3VkX3Nzc2RfY29uZiIsICJfX3J1bl9udW1fXyI6IDEwNywgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXNzc2QiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9ldGMvc3NzZC9zc3NkLmNvbmYgaXMgaW4gdGhlIGNvcnJlY3Qgc3RhdGUiLCAiZHVyYXRpb24iOiA1My4wNzgsICJuYW1lIjogIi9ldGMvc3NzZC9zc3NkLmNvbmYiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTkuNzk0NDEwIn0sICJmaWxlX3wtY29weV9yb290X3NzaF9jb25mX3wtfnJvb3QvLnNzaC9jb25maWdffC1tYW5hZ2VkIjogeyJfX2lkX18iOiAiY29weV9yb290X3NzaF9jb25mIiwgIl9fcnVuX251bV9fIjogODcsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1naXQiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9yb290Ly5zc2gvY29uZmlnIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMTYuMjYsICJuYW1lIjogIi9yb290Ly5zc2gvY29uZmlnIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3Ljk3MjgxMCJ9LCAiZmlsZV98LWNvcHlfc2FsdF9wcml2YXRlX2tleV98LX5yb290Ly5zc2gvc2FsdF9pZF9yc2FffC1tYW5hZ2VkIjogeyJfX2lkX18iOiAiY29weV9zYWx0X3ByaXZhdGVfa2V5IiwgIl9fcnVuX251bV9fIjogODYsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1naXQiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9yb290Ly5zc2gvc2FsdF9pZF9yc2EgaXMgaW4gdGhlIGNvcnJlY3Qgc3RhdGUiLCAiZHVyYXRpb24iOiAyLjA2NiwgIm5hbWUiOiAiL3Jvb3QvLnNzaC9zYWx0X2lkX3JzYSIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy45NzA2MzAifSwgImZpbGVffC1jb3J0ZXhfY3JlYXRlX3BhbndfZm9sZGVyX3wtL2V0Yy9wYW53L198LWRpcmVjdG9yeSI6IHsiX19pZF9fIjogImNvcnRleF9jcmVhdGVfcGFud19mb2xkZXIiLCAiX19ydW5fbnVtX18iOiAxMTcsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1wYWxvLWNvcnRleC5saW51eCIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogInVubGVzcyBjb25kaXRpb24gaXMgdHJ1ZSIsICJkdXJhdGlvbiI6IDI0LjcxNCwgIm5hbWUiOiAiL2V0Yy9wYW53LyIsICJyZXN1bHQiOiB0cnVlLCAic2tpcF93YXRjaCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjIxLjc5MDEyMiJ9LCAiZmlsZV98LWNyZWF0ZV9kZWZhdWx0X3N1ZG9lcl9ydWxlc19hbnNpYmxlX3wtL2V0Yy9zdWRvZXJzLmQvcHJvY2Vzc2VzL2Fuc2libGVffC1tYW5hZ2VkIjogeyJfX2lkX18iOiAiY3JlYXRlX2RlZmF1bHRfc3Vkb2VyX3J1bGVzX2Fuc2libGUiLCAiX19ydW5fbnVtX18iOiA1OCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXN1ZG9lcnMiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9ldGMvc3Vkb2Vycy5kL3Byb2Nlc3Nlcy9hbnNpYmxlIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMTUuNzE4LCAibmFtZSI6ICIvZXRjL3N1ZG9lcnMuZC9wcm9jZXNzZXMvYW5zaWJsZSIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy44MjcyNTQifSwgImZpbGVffC1jcmVhdGVfZGVmYXVsdF9zdWRvZXJfcnVsZXNfZWNjZGlzY29ffC0vZXRjL3N1ZG9lcnMuZC9wcm9jZXNzZXMvZWNjZGlzY29ffC1tYW5hZ2VkIjogeyJfX2lkX18iOiAiY3JlYXRlX2RlZmF1bHRfc3Vkb2VyX3J1bGVzX2VjY2Rpc2NvIiwgIl9fcnVuX251bV9fIjogNjAsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1zdWRvZXJzIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvZXRjL3N1ZG9lcnMuZC9wcm9jZXNzZXMvZWNjZGlzY28gaXMgaW4gdGhlIGNvcnJlY3Qgc3RhdGUiLCAiZHVyYXRpb24iOiAxMy4zNDQsICJuYW1lIjogIi9ldGMvc3Vkb2Vycy5kL3Byb2Nlc3Nlcy9lY2NkaXNjbyIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy44NDQ5MzkifSwgImZpbGVffC1jcmVhdGVfZGVmYXVsdF9zdWRvZXJfcnVsZXNfc2FsdF98LS9ldGMvc3Vkb2Vycy5kL3Byb2Nlc3Nlcy9zYWx0X3wtbWFuYWdlZCI6IHsiX19pZF9fIjogImNyZWF0ZV9kZWZhdWx0X3N1ZG9lcl9ydWxlc19zYWx0IiwgIl9fcnVuX251bV9fIjogNjQsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1zdWRvZXJzIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvZXRjL3N1ZG9lcnMuZC9wcm9jZXNzZXMvc2FsdCBpcyBpbiB0aGUgY29ycmVjdCBzdGF0ZSIsICJkdXJhdGlvbiI6IDEzLjI0OCwgIm5hbWUiOiAiL2V0Yy9zdWRvZXJzLmQvcHJvY2Vzc2VzL3NhbHQiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuODc1MTc2In0sICJmaWxlX3wtY3JlYXRlX2RlZmF1bHRfc3Vkb2VyX3J1bGVzX3RlbGVncmFmX3wtL2V0Yy9zdWRvZXJzLmQvcHJvY2Vzc2VzL3RlbGVncmFmX3wtbWFuYWdlZCI6IHsiX19pZF9fIjogImNyZWF0ZV9kZWZhdWx0X3N1ZG9lcl9ydWxlc190ZWxlZ3JhZiIsICJfX3J1bl9udW1fXyI6IDYyLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3Vkb2VycyIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkZpbGUgL2V0Yy9zdWRvZXJzLmQvcHJvY2Vzc2VzL3RlbGVncmFmIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMTIuOTE0LCAibmFtZSI6ICIvZXRjL3N1ZG9lcnMuZC9wcm9jZXNzZXMvdGVsZWdyYWYiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuODYwMTc5In0sICJmaWxlX3wtY3JlYXRlX3Jvb3Rfc3NoX2Rpcl98LX5yb290Ly5zc2hffC1kaXJlY3RvcnkiOiB7Il9faWRfXyI6ICJjcmVhdGVfcm9vdF9zc2hfZGlyIiwgIl9fcnVuX251bV9fIjogODUsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1naXQiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJUaGUgZGlyZWN0b3J5IC9yb290Ly5zc2ggaXMgaW4gdGhlIGNvcnJlY3Qgc3RhdGUiLCAiZHVyYXRpb24iOiAyLjcwMiwgIm5hbWUiOiAiL3Jvb3QvLnNzaCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy45Njc3ODUifSwgImZpbGVffC1jcmVhdGVfc3Vkb2Vyc19kaXJlY3RvcnlfcHJvY2Vzc2VzX3wtL2V0Yy9zdWRvZXJzLmQvcHJvY2Vzc2VzX3wtZGlyZWN0b3J5IjogeyJfX2lkX18iOiAiY3JlYXRlX3N1ZG9lcnNfZGlyZWN0b3J5X3Byb2Nlc3NlcyIsICJfX3J1bl9udW1fXyI6IDU1LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3Vkb2VycyIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlRoZSBkaXJlY3RvcnkgL2V0Yy9zdWRvZXJzLmQvcHJvY2Vzc2VzIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMS4xNDUsICJuYW1lIjogIi9ldGMvc3Vkb2Vycy5kL3Byb2Nlc3NlcyIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy44MjM1ODIifSwgImZpbGVffC1jcmVhdGVfc3Vkb2Vyc19kaXJlY3RvcnlfdHBffC0vZXRjL3N1ZG9lcnMuZC90cF98LWRpcmVjdG9yeSI6IHsiX19pZF9fIjogImNyZWF0ZV9zdWRvZXJzX2RpcmVjdG9yeV90cCIsICJfX3J1bl9udW1fXyI6IDU3LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3Vkb2VycyIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlRoZSBkaXJlY3RvcnkgL2V0Yy9zdWRvZXJzLmQvdHAgaXMgaW4gdGhlIGNvcnJlY3Qgc3RhdGUiLCAiZHVyYXRpb24iOiAwLjg1MSwgIm5hbWUiOiAiL2V0Yy9zdWRvZXJzLmQvdHAiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuODI2MzAxIn0sICJmaWxlX3wtY3JlYXRlX3RwdXNlcl9zdWRvZXJfcnVsZV98LS9ldGMvc3Vkb2Vycy5kL3RwL3RwdXNlcnNffC1tYW5hZ2VkIjogeyJfX2lkX18iOiAiY3JlYXRlX3RwdXNlcl9zdWRvZXJfcnVsZSIsICJfX3J1bl9udW1fXyI6IDY2LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3Vkb2VycyIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkZpbGUgL2V0Yy9zdWRvZXJzLmQvdHAvdHB1c2VycyBpcyBpbiB0aGUgY29ycmVjdCBzdGF0ZSIsICJkdXJhdGlvbiI6IDEzLjM0NSwgIm5hbWUiOiAiL2V0Yy9zdWRvZXJzLmQvdHAvdHB1c2VycyIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy44OTA3OTUifSwgImZpbGVffC1kb3dubG9hZF9jb3J0ZXhfY29uZmlnX3wtL2V0Yy9wYW53L2NvcnRleC5jb25mX3wtbWFuYWdlZCI6IHsiX19pZF9fIjogImRvd25sb2FkX2NvcnRleF9jb25maWciLCAiX19ydW5fbnVtX18iOiAxMTgsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1wYWxvLWNvcnRleC5saW51eCIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkZpbGUgL2V0Yy9wYW53L2NvcnRleC5jb25mIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMjEuNTA1LCAibmFtZSI6ICIvZXRjL3BhbncvY29ydGV4LmNvbmYiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MjEuODE1Mjc0In0sICJmaWxlX3wtZW5zdXJlX2luY2x1ZGVfcHJvY2Vzc2VzX3NldF98LS9ldGMvc3Vkb2Vyc198LWFwcGVuZCI6IHsiX19pZF9fIjogImVuc3VyZV9pbmNsdWRlX3Byb2Nlc3Nlc19zZXQiLCAiX19ydW5fbnVtX18iOiA1NCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXN1ZG9lcnMiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9ldGMvc3Vkb2VycyBpcyBpbiBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMy4xNjMsICJuYW1lIjogIi9ldGMvc3Vkb2VycyIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy44MjAyNjAifSwgImZpbGVffC1lbnN1cmVfaW5jbHVkZV90cF9zZXRffC0vZXRjL3N1ZG9lcnNffC1hcHBlbmQiOiB7Il9faWRfXyI6ICJlbnN1cmVfaW5jbHVkZV90cF9zZXQiLCAiX19ydW5fbnVtX18iOiA1NiwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXN1ZG9lcnMiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9ldGMvc3Vkb2VycyBpcyBpbiBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMS4zNjYsICJuYW1lIjogIi9ldGMvc3Vkb2VycyIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy44MjQ4MzIifSwgImZpbGVffC1lbnN1cmVfc3Vkb2Vyc19kaXJfYW5zaWJsZV98LS9ldGMvc3Vkb2Vyc198LWxpbmUiOiB7Il9faWRfXyI6ICJlbnN1cmVfc3Vkb2Vyc19kaXJfYW5zaWJsZSIsICJfX3J1bl9udW1fXyI6IDU5LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3Vkb2VycyIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIk5vIGNoYW5nZXMgbmVlZGVkIHRvIGJlIG1hZGUiLCAiZHVyYXRpb24iOiAxLjcyNCwgIm5hbWUiOiAiL2V0Yy9zdWRvZXJzIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3Ljg0MzEwNiJ9LCAiZmlsZV98LWVuc3VyZV9zdWRvZXJzX2Rpcl9lY2NkaXNjb198LS9ldGMvc3Vkb2Vyc198LWxpbmUiOiB7Il9faWRfXyI6ICJlbnN1cmVfc3Vkb2Vyc19kaXJfZWNjZGlzY28iLCAiX19ydW5fbnVtX18iOiA2MSwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXN1ZG9lcnMiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJObyBjaGFuZ2VzIG5lZWRlZCB0byBiZSBtYWRlIiwgImR1cmF0aW9uIjogMS42NDksICJuYW1lIjogIi9ldGMvc3Vkb2VycyIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy44NTg0MTcifSwgImZpbGVffC1lbnN1cmVfc3Vkb2Vyc19kaXJfc2FsdF98LS9ldGMvc3Vkb2Vyc198LWxpbmUiOiB7Il9faWRfXyI6ICJlbnN1cmVfc3Vkb2Vyc19kaXJfc2FsdCIsICJfX3J1bl9udW1fXyI6IDY1LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3Vkb2VycyIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIk5vIGNoYW5nZXMgbmVlZGVkIHRvIGJlIG1hZGUiLCAiZHVyYXRpb24iOiAyLjA3OCwgIm5hbWUiOiAiL2V0Yy9zdWRvZXJzIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3Ljg4ODU5NSJ9LCAiZmlsZV98LWVuc3VyZV9zdWRvZXJzX2Rpcl90ZWxlZ3JhZl98LS9ldGMvc3Vkb2Vyc198LWxpbmUiOiB7Il9faWRfXyI6ICJlbnN1cmVfc3Vkb2Vyc19kaXJfdGVsZWdyYWYiLCAiX19ydW5fbnVtX18iOiA2MywgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXN1ZG9lcnMiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJObyBjaGFuZ2VzIG5lZWRlZCB0byBiZSBtYWRlIiwgImR1cmF0aW9uIjogMS44MjEsICJuYW1lIjogIi9ldGMvc3Vkb2VycyIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy44NzMyMjgifSwgImZpbGVffC1maWxlYmVhdF9hcGFjaGVfbW9kdWxlX2NvbmZffC0vZXRjL2ZpbGViZWF0L21vZHVsZXMuZC9zc25jX2FwYWNoZS55bWxffC1tYW5hZ2VkIjogeyJfX2lkX18iOiAiZmlsZWJlYXRfYXBhY2hlX21vZHVsZV9jb25mIiwgIl9fcnVuX251bV9fIjogOTcsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1maWxlYmVhdCIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkZpbGUgL2V0Yy9maWxlYmVhdC9tb2R1bGVzLmQvc3NuY19hcGFjaGUueW1sIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMTMuOTQ3LCAibmFtZSI6ICIvZXRjL2ZpbGViZWF0L21vZHVsZXMuZC9zc25jX2FwYWNoZS55bWwiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTkuNjU3Mjc0In0sICJmaWxlX3wtZmlsZWJlYXRfY3VzdG9tX2lucHV0c198LS9ldGMvZmlsZWJlYXQvaW5wdXRzLmQvc2FsdC55bWxffC1tYW5hZ2VkIjogeyJfX2lkX18iOiAiZmlsZWJlYXRfY3VzdG9tX2lucHV0cyIsICJfX3J1bl9udW1fXyI6IDEwMCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLWZpbGViZWF0IiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvZXRjL2ZpbGViZWF0L2lucHV0cy5kL3NhbHQueW1sIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMTMuMTczLCAibmFtZSI6ICIvZXRjL2ZpbGViZWF0L2lucHV0cy5kL3NhbHQueW1sIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE5LjY5OTY0NiJ9LCAiZmlsZV98LWZpbGViZWF0X2N1c3RvbV9pbnB1dHNffC0vZXRjL2ZpbGViZWF0L2lucHV0cy5kL3Nzc2QueW1sX3wtbWFuYWdlZCI6IHsiX19pZF9fIjogImZpbGViZWF0X2N1c3RvbV9pbnB1dHMiLCAiX19ydW5fbnVtX18iOiAxMDEsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1maWxlYmVhdCIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkZpbGUgL2V0Yy9maWxlYmVhdC9pbnB1dHMuZC9zc3NkLnltbCBpcyBpbiB0aGUgY29ycmVjdCBzdGF0ZSIsICJkdXJhdGlvbiI6IDEzLjA1NywgIm5hbWUiOiAiL2V0Yy9maWxlYmVhdC9pbnB1dHMuZC9zc3NkLnltbCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxOS43MTI5NjMifSwgImZpbGVffC1maWxlYmVhdF9pbnB1dF9zYW1wbGVfY29uZl98LS9ldGMvZmlsZWJlYXQvaW5wdXRzLmQvYXBwaW5wdXQueW1sLnNhbXBsZV98LW1hbmFnZWQiOiB7Il9faWRfXyI6ICJmaWxlYmVhdF9pbnB1dF9zYW1wbGVfY29uZiIsICJfX3J1bl9udW1fXyI6IDk5LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtZmlsZWJlYXQiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9ldGMvZmlsZWJlYXQvaW5wdXRzLmQvYXBwaW5wdXQueW1sLnNhbXBsZSBpcyBpbiB0aGUgY29ycmVjdCBzdGF0ZSIsICJkdXJhdGlvbiI6IDE0LjEzNiwgIm5hbWUiOiAiL2V0Yy9maWxlYmVhdC9pbnB1dHMuZC9hcHBpbnB1dC55bWwuc2FtcGxlIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE5LjY4NTM3NCJ9LCAiZmlsZV98LWZpbGViZWF0X21haW5fY29uZl98LS9ldGMvZmlsZWJlYXQvZmlsZWJlYXQueW1sX3wtbWFuYWdlZCI6IHsiX19pZF9fIjogImZpbGViZWF0X21haW5fY29uZiIsICJfX3J1bl9udW1fXyI6IDk2LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtZmlsZWJlYXQiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9ldGMvZmlsZWJlYXQvZmlsZWJlYXQueW1sIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMjguMDQ4LCAibmFtZSI6ICIvZXRjL2ZpbGViZWF0L2ZpbGViZWF0LnltbCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxOS42MjkwODQifSwgImZpbGVffC1maWxlYmVhdF9zeXN0ZW1fbW9kdWxlX2NvbmZffC0vZXRjL2ZpbGViZWF0L21vZHVsZXMuZC9zc25jX3N5c3RlbS55bWxffC1tYW5hZ2VkIjogeyJfX2lkX18iOiAiZmlsZWJlYXRfc3lzdGVtX21vZHVsZV9jb25mIiwgIl9fcnVuX251bV9fIjogOTgsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1maWxlYmVhdCIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkZpbGUgL2V0Yy9maWxlYmVhdC9tb2R1bGVzLmQvc3NuY19zeXN0ZW0ueW1sIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMTMuODgyLCAibmFtZSI6ICIvZXRjL2ZpbGViZWF0L21vZHVsZXMuZC9zc25jX3N5c3RlbS55bWwiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTkuNjcxMzU2In0sICJmaWxlX3wtbG9ncm90YXRlLmRfYnRtcF98LS9ldGMvbG9ncm90YXRlLmQvYnRtcF98LW1hbmFnZWQiOiB7Il9faWRfXyI6ICJsb2dyb3RhdGUuZF9idG1wIiwgIl9fcnVuX251bV9fIjogMjksICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1zeXNsb2ciLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9ldGMvbG9ncm90YXRlLmQvYnRtcCBpcyBpbiB0aGUgY29ycmVjdCBzdGF0ZSIsICJkdXJhdGlvbiI6IDE0LjkxNSwgIm5hbWUiOiAiL2V0Yy9sb2dyb3RhdGUuZC9idG1wIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjM1NTUyOSJ9LCAiZmlsZV98LWxvZ3JvdGF0ZS5kX3d0bXBffC0vZXRjL2xvZ3JvdGF0ZS5kL3d0bXBffC1tYW5hZ2VkIjogeyJfX2lkX18iOiAibG9ncm90YXRlLmRfd3RtcCIsICJfX3J1bl9udW1fXyI6IDMwLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3lzbG9nIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvZXRjL2xvZ3JvdGF0ZS5kL3d0bXAgaXMgaW4gdGhlIGNvcnJlY3Qgc3RhdGUiLCAiZHVyYXRpb24iOiAxNC4xNTgsICJuYW1lIjogIi9ldGMvbG9ncm90YXRlLmQvd3RtcCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy4zNzA1ODIifSwgImZpbGVffC1tYW5hZ2VfbG9naW4uZGVmc198LS9ldGMvbG9naW4uZGVmc198LW1hbmFnZWQiOiB7Il9faWRfXyI6ICJtYW5hZ2VfbG9naW4uZGVmcyIsICJfX3J1bl9udW1fXyI6IDIwLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc2VjdXJpdHkiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9ldGMvbG9naW4uZGVmcyBpcyBpbiB0aGUgY29ycmVjdCBzdGF0ZSIsICJkdXJhdGlvbiI6IDE2Ljc1OCwgIm5hbWUiOiAiL2V0Yy9sb2dpbi5kZWZzIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjA5OTE4MSJ9LCAiZmlsZV98LW1hbmFnZV9sb2dyb3RhdGUuY29uZl9maWxlX3wtL2V0Yy9sb2dyb3RhdGUuY29uZl98LW1hbmFnZWQiOiB7Il9faWRfXyI6ICJtYW5hZ2VfbG9ncm90YXRlLmNvbmZfZmlsZSIsICJfX3J1bl9udW1fXyI6IDI3LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3lzbG9nIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvZXRjL2xvZ3JvdGF0ZS5jb25mIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMTUuNDEzLCAibmFtZSI6ICIvZXRjL2xvZ3JvdGF0ZS5jb25mIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjMyMTYzNCJ9LCAiZmlsZV98LW1hbmFnZV9sb2dyb3RhdGUuZF9zeXNsb2dfZmlsZV98LS9ldGMvbG9ncm90YXRlLmQvc3lzbG9nX3wtbWFuYWdlZCI6IHsiX19pZF9fIjogIm1hbmFnZV9sb2dyb3RhdGUuZF9zeXNsb2dfZmlsZSIsICJfX3J1bl9udW1fXyI6IDI4LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3lzbG9nIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvZXRjL2xvZ3JvdGF0ZS5kL3N5c2xvZyBpcyBpbiB0aGUgY29ycmVjdCBzdGF0ZSIsICJkdXJhdGlvbiI6IDE4LjExNywgIm5hbWUiOiAiL2V0Yy9sb2dyb3RhdGUuZC9zeXNsb2ciLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuMzM3MjM0In0sICJmaWxlX3wtbWFuYWdlX21pbmlvbl9jb25maWdffC0vZXRjL3NhbHQvbWluaW9uLmQvc3NuY19taW5pb24uY29uZl98LW1hbmFnZWQiOiB7Il9faWRfXyI6ICJtYW5hZ2VfbWluaW9uX2NvbmZpZyIsICJfX3J1bl9udW1fXyI6IDksICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1taW5pb24iLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9ldGMvc2FsdC9taW5pb24uZC9zc25jX21pbmlvbi5jb25mIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMTM3LjgzNiwgIm5hbWUiOiAiL2V0Yy9zYWx0L21pbmlvbi5kL3NzbmNfbWluaW9uLmNvbmYiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTYuNDU0MTk0In0sICJmaWxlX3wtbWFuYWdlX3JzeXNsb2cuY29uZl9maWxlX3wtL2V0Yy9yc3lzbG9nLmNvbmZffC1tYW5hZ2VkIjogeyJfX2lkX18iOiAibWFuYWdlX3JzeXNsb2cuY29uZl9maWxlIiwgIl9fcnVuX251bV9fIjogMjUsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1zeXNsb2ciLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9ldGMvcnN5c2xvZy5jb25mIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMTcuNjgsICJuYW1lIjogIi9ldGMvcnN5c2xvZy5jb25mIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjMwMzE4NiJ9LCAiZmlsZV98LW1hbmFnZV9zdGFydHVwX2NvbmZpZ198LS9ldGMvc2FsdC9taW5pb24uZC9zc25jX3N0YXJ0dXAuY29uZl98LW1hbmFnZWQiOiB7Il9faWRfXyI6ICJtYW5hZ2Vfc3RhcnR1cF9jb25maWciLCAiX19ydW5fbnVtX18iOiAxMCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLW1pbmlvbiIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkZpbGUgL2V0Yy9zYWx0L21pbmlvbi5kL3NzbmNfc3RhcnR1cC5jb25mIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMTYuNTk5LCAibmFtZSI6ICIvZXRjL3NhbHQvbWluaW9uLmQvc3NuY19zdGFydHVwLmNvbmYiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTYuNTkyMjIxIn0sICJmaWxlX3wtbWFuYWdlX3phYmJpeF9hZ2VudGRffC0vZXRjL3phYmJpeC96YWJiaXhfYWdlbnRkLmNvbmZffC1tYW5hZ2VkIjogeyJfX2lkX18iOiAibWFuYWdlX3phYmJpeF9hZ2VudGQiLCAiX19ydW5fbnVtX18iOiA1MSwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXphYmJpeCIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkZpbGUgL2V0Yy96YWJiaXgvemFiYml4X2FnZW50ZC5jb25mIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMjcuODY5LCAibmFtZSI6ICIvZXRjL3phYmJpeC96YWJiaXhfYWdlbnRkLmNvbmYiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuNjk0OTc4In0sICJmaWxlX3wtbWFuYWdlX3phYmJpeF9sb2dffC0vdmFyL2xvZy96YWJiaXhffC1kaXJlY3RvcnkiOiB7Il9faWRfXyI6ICJtYW5hZ2VfemFiYml4X2xvZyIsICJfX3J1bl9udW1fXyI6IDQ5LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtemFiYml4IiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiVGhlIGRpcmVjdG9yeSAvdmFyL2xvZy96YWJiaXggaXMgaW4gdGhlIGNvcnJlY3Qgc3RhdGUiLCAiZHVyYXRpb24iOiAyLjE3NSwgIm5hbWUiOiAiL3Zhci9sb2cvemFiYml4IiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjY5MTY0MiJ9LCAiZmlsZV98LW1ldGFkYXRhX2dlbmVyYXRlZF9ncmFpbnNfZmlsZV98LS9ldGMvc2FsdC9taW5pb24uZC85OS1tZXRhZGF0YS1ncmFpbnMuY29uZl98LW1hbmFnZWQiOiB7Il9faWRfXyI6ICJtZXRhZGF0YV9nZW5lcmF0ZWRfZ3JhaW5zX2ZpbGUiLCAiX19ydW5fbnVtX18iOiAyLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtbWluaW9uLmNsb3VkLW1ldGFkYXRhIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvZXRjL3NhbHQvbWluaW9uLmQvOTktbWV0YWRhdGEtZ3JhaW5zLmNvbmYgaXMgaW4gdGhlIGNvcnJlY3Qgc3RhdGUiLCAiZHVyYXRpb24iOiA4Mi42MDEsICJuYW1lIjogIi9ldGMvc2FsdC9taW5pb24uZC85OS1tZXRhZGF0YS1ncmFpbnMuY29uZiIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjowOS40MDY1NzUifSwgImZpbGVffC1yZW1vdmVfYW5zaWJsZV9hdXRob3JpemVkX2tleXMyX3wtfmFuc2libGUvLnNzaC9hdXRob3JpemVkX2tleXMyX3wtYWJzZW50IjogeyJfX2lkX18iOiAicmVtb3ZlX2Fuc2libGVfYXV0aG9yaXplZF9rZXlzMiIsICJfX3J1bl9udW1fXyI6IDgwLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtYW5zaWJsZSIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkZpbGUgL2hvbWUvYW5zaWJsZS8uc3NoL2F1dGhvcml6ZWRfa2V5czIgaXMgbm90IHByZXNlbnQiLCAiZHVyYXRpb24iOiAwLjQ2NCwgIm5hbWUiOiAiL2hvbWUvYW5zaWJsZS8uc3NoL2F1dGhvcml6ZWRfa2V5czIiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuOTE5ODQ3In0sICJmaWxlX3wtcmVtb3ZlX2F1dGhvcml6ZWRfa2V5c198LX5yb290Ly5zc2gvYXV0aG9yaXplZF9rZXlzMl98LW1hbmFnZWQiOiB7Il9faWRfXyI6ICJyZW1vdmVfYXV0aG9yaXplZF9rZXlzIiwgIl9fcnVuX251bV9fIjogOTAsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1yb290IiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvcm9vdC8uc3NoL2F1dGhvcml6ZWRfa2V5czIgaXMgbm90IHByZXNlbnQgYW5kIGlzIG5vdCBzZXQgZm9yIGNyZWF0aW9uIiwgImR1cmF0aW9uIjogMC44MTIsICJuYW1lIjogIi9yb290Ly5zc2gvYXV0aG9yaXplZF9rZXlzMiIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy45OTI2NTQifSwgImZpbGVffC1yZW1vdmVfYXV0aG9yaXplZF9rZXlzX3wtfnJvb3QvLnNzaC9hdXRob3JpemVkX2tleXNffC1tYW5hZ2VkIjogeyJfX2lkX18iOiAicmVtb3ZlX2F1dGhvcml6ZWRfa2V5cyIsICJfX3J1bl9udW1fXyI6IDg5LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtcm9vdCIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkZpbGUgL3Jvb3QvLnNzaC9hdXRob3JpemVkX2tleXMgaXMgaW4gdGhlIGNvcnJlY3Qgc3RhdGUiLCAiZHVyYXRpb24iOiAxLjY0OCwgIm5hbWUiOiAiL3Jvb3QvLnNzaC9hdXRob3JpemVkX2tleXMiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuOTkwOTEwIn0sICJmaWxlX3wtcmVtb3ZlX2RlcHJlY2F0ZWRfc3Vkb2VyX2RpcnNfZGVkaWNhdGVkX3wtL2V0Yy9zdWRvZXJzX3wtbGluZSI6IHsiX19pZF9fIjogInJlbW92ZV9kZXByZWNhdGVkX3N1ZG9lcl9kaXJzX2RlZGljYXRlZCIsICJfX3J1bl9udW1fXyI6IDY3LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3Vkb2VycyIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIk5vIGNoYW5nZXMgbmVlZGVkIHRvIGJlIG1hZGUiLCAiZHVyYXRpb24iOiAxLjc3NSwgIm5hbWUiOiAiL2V0Yy9zdWRvZXJzIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjkwNDI4MCJ9LCAiZmlsZV98LXJlbW92ZV9kZXByZWNhdGVkX3N1ZG9lcl9kaXJzX2xlZ2FjeV98LS9ldGMvc3Vkb2Vyc198LWxpbmUiOiB7Il9faWRfXyI6ICJyZW1vdmVfZGVwcmVjYXRlZF9zdWRvZXJfZGlyc19sZWdhY3kiLCAiX19ydW5fbnVtX18iOiA2OSwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXN1ZG9lcnMiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJObyBjaGFuZ2VzIG5lZWRlZCB0byBiZSBtYWRlIiwgImR1cmF0aW9uIjogMS43MzgsICJuYW1lIjogIi9ldGMvc3Vkb2VycyIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy45MDY3MTQifSwgImZpbGVffC1yZW1vdmVfZGVwcmVjYXRlZF9zdWRvZXJfZGlyc19yZXRpcmVkX3wtL2V0Yy9zdWRvZXJzX3wtbGluZSI6IHsiX19pZF9fIjogInJlbW92ZV9kZXByZWNhdGVkX3N1ZG9lcl9kaXJzX3JldGlyZWQiLCAiX19ydW5fbnVtX18iOiA3MSwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXN1ZG9lcnMiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJObyBjaGFuZ2VzIG5lZWRlZCB0byBiZSBtYWRlIiwgImR1cmF0aW9uIjogMS41NzEsICJuYW1lIjogIi9ldGMvc3Vkb2VycyIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy45MDkwNzgifSwgImZpbGVffC1yZW1vdmVfZGVwcmVjYXRlZF9zdWRvZXJfZGlyc19zaGFyZWRffC0vZXRjL3N1ZG9lcnNffC1saW5lIjogeyJfX2lkX18iOiAicmVtb3ZlX2RlcHJlY2F0ZWRfc3Vkb2VyX2RpcnNfc2hhcmVkIiwgIl9fcnVuX251bV9fIjogNzMsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1zdWRvZXJzIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiTm8gY2hhbmdlcyBuZWVkZWQgdG8gYmUgbWFkZSIsICJkdXJhdGlvbiI6IDEuNTM4LCAibmFtZSI6ICIvZXRjL3N1ZG9lcnMiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuOTExMjM0In0sICJmaWxlX3wtcmVtb3ZlX2RlcHJlY2F0ZWRfc3Vkb2VyX2RpcnNfdGVtcF98LS9ldGMvc3Vkb2Vyc198LWxpbmUiOiB7Il9faWRfXyI6ICJyZW1vdmVfZGVwcmVjYXRlZF9zdWRvZXJfZGlyc190ZW1wIiwgIl9fcnVuX251bV9fIjogNzUsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1zdWRvZXJzIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiTm8gY2hhbmdlcyBuZWVkZWQgdG8gYmUgbWFkZSIsICJkdXJhdGlvbiI6IDEuNjAyLCAibmFtZSI6ICIvZXRjL3N1ZG9lcnMiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuOTEzMzYxIn0sICJmaWxlX3wtcmVtb3ZlX2dvZGlzY292ZXJ5X2RpcmVjdG9yeV98LS91c3IvbG9jYWwvYmluL2Rpc2NvdmVyeS1saW51eC1hbWQ2NF98LWFic2VudCI6IHsiX19pZF9fIjogInJlbW92ZV9nb2Rpc2NvdmVyeV9kaXJlY3RvcnkiLCAiX19ydW5fbnVtX18iOiA4MiwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLWdvZGlzY292ZXJ5LXJlbW92YWwiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC91c3IvbG9jYWwvYmluL2Rpc2NvdmVyeS1saW51eC1hbWQ2NCBpcyBub3QgcHJlc2VudCIsICJkdXJhdGlvbiI6IDAuNTEyLCAibmFtZSI6ICIvdXNyL2xvY2FsL2Jpbi9kaXNjb3ZlcnktbGludXgtYW1kNjQiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuOTM5NjEyIn0sICJmaWxlX3wtcmVtb3ZlX3Byb2ZpbGUuZF91bWFzay5zaF98LS9ldGMvcHJvZmlsZS5kL3VtYXNrLnNoX3wtYWJzZW50IjogeyJfX2lkX18iOiAicmVtb3ZlX3Byb2ZpbGUuZF91bWFzay5zaCIsICJfX3J1bl9udW1fXyI6IDE5LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc2VjdXJpdHkiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9ldGMvcHJvZmlsZS5kL3VtYXNrLnNoIGlzIG5vdCBwcmVzZW50IiwgImR1cmF0aW9uIjogMC41MTIsICJuYW1lIjogIi9ldGMvcHJvZmlsZS5kL3VtYXNrLnNoIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjA5ODU3NiJ9LCAiZmlsZV98LXJlbW92ZV9yc3lzbG9nLmNvbmZfZnJvbV9sb2dyb3RhdGVffC0vZXRjL2xvZ3JvdGF0ZS5kL3JzeXNsb2dffC1hYnNlbnQiOiB7Il9faWRfXyI6ICJyZW1vdmVfcnN5c2xvZy5jb25mX2Zyb21fbG9ncm90YXRlIiwgIl9fcnVuX251bV9fIjogMjYsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1zeXNsb2ciLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9ldGMvbG9ncm90YXRlLmQvcnN5c2xvZyBpcyBub3QgcHJlc2VudCIsICJkdXJhdGlvbiI6IDAuNTA4LCAibmFtZSI6ICIvZXRjL2xvZ3JvdGF0ZS5kL3JzeXNsb2ciLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuMzIxMDM1In0sICJmaWxlX3wtcmVtb3ZlX3NhbHRfbWluaW9uX2NvbmZpZ198LS9ldGMvc2FsdC9taW5pb25ffC1hYnNlbnQiOiB7Il9faWRfXyI6ICJyZW1vdmVfc2FsdF9taW5pb25fY29uZmlnIiwgIl9fcnVuX251bV9fIjogMTEsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1taW5pb24iLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9ldGMvc2FsdC9taW5pb24gaXMgbm90IHByZXNlbnQiLCAiZHVyYXRpb24iOiAwLjY1NywgIm5hbWUiOiAiL2V0Yy9zYWx0L21pbmlvbiIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNi42MDkwMjIifSwgImZpbGVffC1yZW5hbWVfZGVwcmVjYXRlZF9zdWRvZXJfZGlyc19kZWRpY2F0ZWRffC0vZXRjL3N1ZG9lcnMuZC9UUEFNX0RFUFJFQ0FURURfZGVkaWNhdGVkX3wtcmVuYW1lIjogeyJfX2lkX18iOiAicmVuYW1lX2RlcHJlY2F0ZWRfc3Vkb2VyX2RpcnNfZGVkaWNhdGVkIiwgIl9fcnVuX251bV9fIjogNjgsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1zdWRvZXJzIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiU291cmNlIGZpbGUgXCIvZXRjL3N1ZG9lcnMuZC9kZWRpY2F0ZWRcIiBoYXMgYWxyZWFkeSBiZWVuIG1vdmVkIG91dCBvZiBwbGFjZSIsICJkdXJhdGlvbiI6IDAuNDQyLCAibmFtZSI6ICIvZXRjL3N1ZG9lcnMuZC9UUEFNX0RFUFJFQ0FURURfZGVkaWNhdGVkIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjkwNjE4NCJ9LCAiZmlsZV98LXJlbmFtZV9kZXByZWNhdGVkX3N1ZG9lcl9kaXJzX2xlZ2FjeV98LS9ldGMvc3Vkb2Vycy5kL1RQQU1fREVQUkVDQVRFRF9sZWdhY3lffC1yZW5hbWUiOiB7Il9faWRfXyI6ICJyZW5hbWVfZGVwcmVjYXRlZF9zdWRvZXJfZGlyc19sZWdhY3kiLCAiX19ydW5fbnVtX18iOiA3MCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXN1ZG9lcnMiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJTb3VyY2UgZmlsZSBcIi9ldGMvc3Vkb2Vycy5kL2xlZ2FjeVwiIGhhcyBhbHJlYWR5IGJlZW4gbW92ZWQgb3V0IG9mIHBsYWNlIiwgImR1cmF0aW9uIjogMC40MjksICJuYW1lIjogIi9ldGMvc3Vkb2Vycy5kL1RQQU1fREVQUkVDQVRFRF9sZWdhY3kiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuOTA4NTUzIn0sICJmaWxlX3wtcmVuYW1lX2RlcHJlY2F0ZWRfc3Vkb2VyX2RpcnNfcmV0aXJlZF98LS9ldGMvc3Vkb2Vycy5kL1RQQU1fREVQUkVDQVRFRF9yZXRpcmVkX3wtcmVuYW1lIjogeyJfX2lkX18iOiAicmVuYW1lX2RlcHJlY2F0ZWRfc3Vkb2VyX2RpcnNfcmV0aXJlZCIsICJfX3J1bl9udW1fXyI6IDcyLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3Vkb2VycyIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlNvdXJjZSBmaWxlIFwiL2V0Yy9zdWRvZXJzLmQvcmV0aXJlZFwiIGhhcyBhbHJlYWR5IGJlZW4gbW92ZWQgb3V0IG9mIHBsYWNlIiwgImR1cmF0aW9uIjogMC40MDgsICJuYW1lIjogIi9ldGMvc3Vkb2Vycy5kL1RQQU1fREVQUkVDQVRFRF9yZXRpcmVkIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjkxMDc0NCJ9LCAiZmlsZV98LXJlbmFtZV9kZXByZWNhdGVkX3N1ZG9lcl9kaXJzX3NoYXJlZF98LS9ldGMvc3Vkb2Vycy5kL1RQQU1fREVQUkVDQVRFRF9zaGFyZWRffC1yZW5hbWUiOiB7Il9faWRfXyI6ICJyZW5hbWVfZGVwcmVjYXRlZF9zdWRvZXJfZGlyc19zaGFyZWQiLCAiX19ydW5fbnVtX18iOiA3NCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXN1ZG9lcnMiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJTb3VyY2UgZmlsZSBcIi9ldGMvc3Vkb2Vycy5kL3NoYXJlZFwiIGhhcyBhbHJlYWR5IGJlZW4gbW92ZWQgb3V0IG9mIHBsYWNlIiwgImR1cmF0aW9uIjogMC40MTEsICJuYW1lIjogIi9ldGMvc3Vkb2Vycy5kL1RQQU1fREVQUkVDQVRFRF9zaGFyZWQiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuOTEyODcwIn0sICJmaWxlX3wtcmVuYW1lX2RlcHJlY2F0ZWRfc3Vkb2VyX2RpcnNfdGVtcF98LS9ldGMvc3Vkb2Vycy5kL1RQQU1fREVQUkVDQVRFRF90ZW1wX3wtcmVuYW1lIjogeyJfX2lkX18iOiAicmVuYW1lX2RlcHJlY2F0ZWRfc3Vkb2VyX2RpcnNfdGVtcCIsICJfX3J1bl9udW1fXyI6IDc2LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3Vkb2VycyIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlNvdXJjZSBmaWxlIFwiL2V0Yy9zdWRvZXJzLmQvdGVtcFwiIGhhcyBhbHJlYWR5IGJlZW4gbW92ZWQgb3V0IG9mIHBsYWNlIiwgImR1cmF0aW9uIjogMC40MjQsICJuYW1lIjogIi9ldGMvc3Vkb2Vycy5kL1RQQU1fREVQUkVDQVRFRF90ZW1wIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjkxNTA2OCJ9LCAiZmlsZV98LXNhZmVndWFyZF9zc3NkX2ZpbGVffC0vZXRjL3Nzc2QvY29uZi5kLzk5LXNhZmVndWFyZC5jb25mX3wtbWFuYWdlZCI6IHsiX19pZF9fIjogInNhZmVndWFyZF9zc3NkX2ZpbGUiLCAiX19ydW5fbnVtX18iOiAxMTAsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1zc3NkIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAib25seWlmIGNvbmRpdGlvbiBpcyBmYWxzZSIsICJkdXJhdGlvbiI6IDE2Ljk1MSwgIm5hbWUiOiAiL2V0Yy9zc3NkL2NvbmYuZC85OS1zYWZlZ3VhcmQuY29uZiIsICJyZXN1bHQiOiB0cnVlLCAic2tpcF93YXRjaCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE5Ljg4ODIxNCJ9LCAiZmlsZV98LXNzaGRfYmFubmVyX2lzc3VlX3wtL2V0Yy9pc3N1ZS5uZXRffC1tYW5hZ2VkIjogeyJfX2lkX18iOiAic3NoZF9iYW5uZXJfaXNzdWUiLCAiX19ydW5fbnVtX18iOiAyMywgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXNlY3VyaXR5IiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvZXRjL2lzc3VlLm5ldCBpcyBpbiB0aGUgY29ycmVjdCBzdGF0ZSIsICJkdXJhdGlvbiI6IDEzLjQyOSwgIm5hbWUiOiAiL2V0Yy9pc3N1ZS5uZXQiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuMjM1OTM5In0sICJmaWxlX3wtc3NoZF9iYW5uZXJfaXNzdWVffC0vZXRjL2lzc3VlX3wtbWFuYWdlZCI6IHsiX19pZF9fIjogInNzaGRfYmFubmVyX2lzc3VlIiwgIl9fcnVuX251bV9fIjogMjIsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1zZWN1cml0eSIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkZpbGUgL2V0Yy9pc3N1ZSBpcyBpbiB0aGUgY29ycmVjdCBzdGF0ZSIsICJkdXJhdGlvbiI6IDE2LjM3NiwgIm5hbWUiOiAiL2V0Yy9pc3N1ZSIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy4yMTkzNzMifSwgImZpbGVffC1zc2hkX2NvbmZpZ198LS9ldGMvc3NoL3NzaGRfY29uZmlnX3wtbWFuYWdlZCI6IHsiX19pZF9fIjogInNzaGRfY29uZmlnIiwgIl9fcnVuX251bV9fIjogMjEsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1zZWN1cml0eSIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkZpbGUgL2V0Yy9zc2gvc3NoZF9jb25maWcgaXMgaW4gdGhlIGNvcnJlY3Qgc3RhdGUiLCAiZHVyYXRpb24iOiAxMDMuMDc3LCAibmFtZSI6ICIvZXRjL3NzaC9zc2hkX2NvbmZpZyIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy4xMTYwODYifSwgImZpbGVffC1zc25jLXRydXN0ZWQtY2FffC0vZXRjL3BraS9jYS10cnVzdC9zb3VyY2UvYW5jaG9ycy9zc25jLWNvcnAuY2EuY2hhaW4ucGVtX3wtbWFuYWdlZCI6IHsiX19pZF9fIjogInNzbmMtdHJ1c3RlZC1jYSIsICJfX3J1bl9udW1fXyI6IDE3LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtdHJ1c3RlZC1jYS5saW51eC10cnVzdGVkLWNhIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvZXRjL3BraS9jYS10cnVzdC9zb3VyY2UvYW5jaG9ycy9zc25jLWNvcnAuY2EuY2hhaW4ucGVtIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMTUuNDY4LCAibmFtZSI6ICIvZXRjL3BraS9jYS10cnVzdC9zb3VyY2UvYW5jaG9ycy9zc25jLWNvcnAuY2EuY2hhaW4ucGVtIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjA4MjAzNSJ9LCAiZmlsZV98LXRhZ19nZW5lcmF0ZWRfZ3JhaW5zX2ZpbGVffC0vZXRjL3NhbHQvbWluaW9uLmQvOTgtdGFnLWdyYWlucy5jb25mX3wtbWFuYWdlZCI6IHsiX19pZF9fIjogInRhZ19nZW5lcmF0ZWRfZ3JhaW5zX2ZpbGUiLCAiX19ydW5fbnVtX18iOiAwLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtbWluaW9uLmNsb3VkLW1ldGFkYXRhIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvZXRjL3NhbHQvbWluaW9uLmQvOTgtdGFnLWdyYWlucy5jb25mIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogODUuMTQxLCAibmFtZSI6ICIvZXRjL3NhbHQvbWluaW9uLmQvOTgtdGFnLWdyYWlucy5jb25mIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjA3LjgyMTI3MiJ9LCAiZmlsZV98LXRlbGVncmFmX2NsZWFudXBffC0vZXRjL3RlbGVncmFmL3RlbGVncmFmLmQvZGVmYXVsdF9pbnB1dHMuY29uZl98LWFic2VudCI6IHsiX19pZF9fIjogInRlbGVncmFmX2NsZWFudXAiLCAiX19ydW5fbnVtX18iOiA0MiwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXRlbGVncmFmIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvZXRjL3RlbGVncmFmL3RlbGVncmFmLmQvZGVmYXVsdF9pbnB1dHMuY29uZiBpcyBub3QgcHJlc2VudCIsICJkdXJhdGlvbiI6IDAuNTUsICJuYW1lIjogIi9ldGMvdGVsZWdyYWYvdGVsZWdyYWYuZC9kZWZhdWx0X2lucHV0cy5jb25mIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjU5ODIwMSJ9LCAiZmlsZV98LXRlbGVncmFmX2NsZWFudXBffC0vZXRjL3RlbGVncmFmL3RlbGVncmFmLmQvZGVmYXVsdF9vdXRwdXRzLmNvbmZffC1hYnNlbnQiOiB7Il9faWRfXyI6ICJ0ZWxlZ3JhZl9jbGVhbnVwIiwgIl9fcnVuX251bV9fIjogNDMsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy10ZWxlZ3JhZiIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkZpbGUgL2V0Yy90ZWxlZ3JhZi90ZWxlZ3JhZi5kL2RlZmF1bHRfb3V0cHV0cy5jb25mIGlzIG5vdCBwcmVzZW50IiwgImR1cmF0aW9uIjogMC40MjQsICJuYW1lIjogIi9ldGMvdGVsZWdyYWYvdGVsZWdyYWYuZC9kZWZhdWx0X291dHB1dHMuY29uZiIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy41OTkyMTMifSwgImZpbGVffC10ZWxlZ3JhZl9jb25mX3wtL2V0Yy90ZWxlZ3JhZi90ZWxlZ3JhZi5jb25mX3wtbWFuYWdlZCI6IHsiX19pZF9fIjogInRlbGVncmFmX2NvbmYiLCAiX19ydW5fbnVtX18iOiAzOCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXRlbGVncmFmIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvZXRjL3RlbGVncmFmL3RlbGVncmFmLmNvbmYgaXMgaW4gdGhlIGNvcnJlY3Qgc3RhdGUiLCAiZHVyYXRpb24iOiAyMy43OTksICJuYW1lIjogIi9ldGMvdGVsZWdyYWYvdGVsZWdyYWYuY29uZiIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy41MjE3OTIifSwgImZpbGVffC10ZWxlZ3JhZl9jb25mX3wtL2V0Yy90ZWxlZ3JhZi90ZWxlZ3JhZi5kL2RlZmF1bHRfcHJvY2Vzc29yLmNvbmZffC1tYW5hZ2VkIjogeyJfX2lkX18iOiAidGVsZWdyYWZfY29uZiIsICJfX3J1bl9udW1fXyI6IDQxLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtdGVsZWdyYWYiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJGaWxlIC9ldGMvdGVsZWdyYWYvdGVsZWdyYWYuZC9kZWZhdWx0X3Byb2Nlc3Nvci5jb25mIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMTUuNjg1LCAibmFtZSI6ICIvZXRjL3RlbGVncmFmL3RlbGVncmFmLmQvZGVmYXVsdF9wcm9jZXNzb3IuY29uZiIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy41ODE1MjAifSwgImZpbGVffC10ZWxlZ3JhZl9jb25mX3wtL2V0Yy90ZWxlZ3JhZi90ZWxlZ3JhZi5kL2xpbnV4X2lucHV0cy5jb25mX3wtbWFuYWdlZCI6IHsiX19pZF9fIjogInRlbGVncmFmX2NvbmYiLCAiX19ydW5fbnVtX18iOiAzOSwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXRlbGVncmFmIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvZXRjL3RlbGVncmFmL3RlbGVncmFmLmQvbGludXhfaW5wdXRzLmNvbmYgaXMgaW4gdGhlIGNvcnJlY3Qgc3RhdGUiLCAiZHVyYXRpb24iOiAxNi42MzIsICJuYW1lIjogIi9ldGMvdGVsZWdyYWYvdGVsZWdyYWYuZC9saW51eF9pbnB1dHMuY29uZiIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy41NDU3MjMifSwgImZpbGVffC10ZWxlZ3JhZl9jb25mX3wtL2V0Yy90ZWxlZ3JhZi90ZWxlZ3JhZi5kL2xpbnV4X291dHB1dF9rYWZrYS5jb25mX3wtbWFuYWdlZCI6IHsiX19pZF9fIjogInRlbGVncmFmX2NvbmYiLCAiX19ydW5fbnVtX18iOiA0MCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXRlbGVncmFmIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiRmlsZSAvZXRjL3RlbGVncmFmL3RlbGVncmFmLmQvbGludXhfb3V0cHV0X2thZmthLmNvbmYgaXMgaW4gdGhlIGNvcnJlY3Qgc3RhdGUiLCAiZHVyYXRpb24iOiAxOC44OTYsICJuYW1lIjogIi9ldGMvdGVsZWdyYWYvdGVsZWdyYWYuZC9saW51eF9vdXRwdXRfa2Fma2EuY29uZiIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy41NjI0ODUifSwgImZpbGVffC10ZWxncmFmX2Rpcl98LS9ldGMvdGVsZWdyYWYvdGVsZWdyYWYuZF98LWRpcmVjdG9yeSI6IHsiX19pZF9fIjogInRlbGdyYWZfZGlyIiwgIl9fcnVuX251bV9fIjogMzcsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy10ZWxlZ3JhZiIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlRoZSBkaXJlY3RvcnkgL2V0Yy90ZWxlZ3JhZi90ZWxlZ3JhZi5kIGlzIGluIHRoZSBjb3JyZWN0IHN0YXRlIiwgImR1cmF0aW9uIjogMS42MDUsICJuYW1lIjogIi9ldGMvdGVsZWdyYWYvdGVsZWdyYWYuZCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy41MjAwNzAifSwgImZpbGVffC12b2x1bWVfZ2VuZXJhdGVkX2dyYWluc19maWxlX3wtL2V0Yy9zYWx0L21pbmlvbi5kLzk3LXZvbHVtZS1ncmFpbnMuY29uZi5qMl98LW1hbmFnZWQiOiB7Il9faWRfXyI6ICJ2b2x1bWVfZ2VuZXJhdGVkX2dyYWluc19maWxlIiwgIl9fcnVuX251bV9fIjogMSwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLW1pbmlvbi5jbG91ZC1tZXRhZGF0YSIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkZpbGUgL2V0Yy9zYWx0L21pbmlvbi5kLzk3LXZvbHVtZS1ncmFpbnMuY29uZi5qMiBpcyBpbiB0aGUgY29ycmVjdCBzdGF0ZSIsICJkdXJhdGlvbiI6IDE0OTkuODMyLCAibmFtZSI6ICIvZXRjL3NhbHQvbWluaW9uLmQvOTctdm9sdW1lLWdyYWlucy5jb25mLmoyIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjA3LjkwNjU1NSJ9LCAiZmlsZV98LXphYmJpeF9kaXJffC0vZXRjL3phYmJpeC96YWJiaXhfYWdlbnRkLmRffC1kaXJlY3RvcnkiOiB7Il9faWRfXyI6ICJ6YWJiaXhfZGlyIiwgIl9fcnVuX251bV9fIjogNTAsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy16YWJiaXgiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJUaGUgZGlyZWN0b3J5IC9ldGMvemFiYml4L3phYmJpeF9hZ2VudGQuZCBpcyBpbiB0aGUgY29ycmVjdCBzdGF0ZSIsICJkdXJhdGlvbiI6IDAuOTMxLCAibmFtZSI6ICIvZXRjL3phYmJpeC96YWJiaXhfYWdlbnRkLmQiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuNjkzOTM4In0sICJncmFpbnNffC1zZXRfY29ydGV4X2dyYWluX3wtY29ydGV4X2luc3RhbGxlZF98LXByZXNlbnQiOiB7Il9faWRfXyI6ICJzZXRfY29ydGV4X2dyYWluIiwgIl9fcnVuX251bV9fIjogMTIxLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtcGFsby1jb3J0ZXgubGludXgiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJHcmFpbiBpcyBhbHJlYWR5IHNldCIsICJkdXJhdGlvbiI6IDEuMDYxLCAibmFtZSI6ICJjb3J0ZXhfaW5zdGFsbGVkIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjIxLjkxMzcxOCJ9LCAiZ3JhaW5zX3wtc2V0X2V4Y2x1ZGVfeGFndF9ncmFpbl98LWV4Y2x1ZGVfeGFndF98LXByZXNlbnQiOiB7Il9faWRfXyI6ICJzZXRfZXhjbHVkZV94YWd0X2dyYWluIiwgIl9fcnVuX251bV9fIjogMTIyLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtaHgtcmVtb3ZhbC5saW51eCIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkdyYWluIGlzIGFscmVhZHkgc2V0IiwgImR1cmF0aW9uIjogMC40NzMsICJuYW1lIjogImV4Y2x1ZGVfeGFndCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoyMS45MTQ4OTYifSwgImdyb3VwX3wtYW5zaWJsZV9ncm91cF98LWFuc2libGVffC1wcmVzZW50IjogeyJfX2lkX18iOiAiYW5zaWJsZV9ncm91cCIsICJfX3J1bl9udW1fXyI6IDc3LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtYW5zaWJsZSIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkdyb3VwIGFuc2libGUgaXMgcHJlc2VudCBhbmQgdXAgdG8gZGF0ZSIsICJkdXJhdGlvbiI6IDAuNSwgIm5hbWUiOiAiYW5zaWJsZSIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy45MTU1OTYifSwgImdyb3VwX3wtbWFuYWdlX3phYmJpeF9ncm91cF98LXphYmJpeF98LXByZXNlbnQiOiB7Il9faWRfXyI6ICJtYW5hZ2VfemFiYml4X2dyb3VwIiwgIl9fcnVuX251bV9fIjogNDYsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy16YWJiaXgiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJHcm91cCB6YWJiaXggaXMgcHJlc2VudCBhbmQgdXAgdG8gZGF0ZSIsICJkdXJhdGlvbiI6IDEuMjU0LCAibmFtZSI6ICJ6YWJiaXgiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuNjY1NTQyIn0sICJncm91cF98LXRlbGVncmFmX2dyb3VwX3wtdGVsZWdyYWZffC1wcmVzZW50IjogeyJfX2lkX18iOiAidGVsZWdyYWZfZ3JvdXAiLCAiX19ydW5fbnVtX18iOiAzNCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXRlbGVncmFmIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiR3JvdXAgdGVsZWdyYWYgaXMgcHJlc2VudCBhbmQgdXAgdG8gZGF0ZSIsICJkdXJhdGlvbiI6IDEuMDEsICJuYW1lIjogInRlbGVncmFmIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjQ5MjY4MSJ9LCAibW9kdWxlX3wtY2hlY2tfa2Fma2FfYWNjZXNzX3wtY2hlY2tfa2Fma2FfYWNjZXNzX3wtcnVuIjogeyJfX2lkX18iOiAiY2hlY2tfa2Fma2FfYWNjZXNzIiwgIl9fcnVuX251bV9fIjogOTEsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1maWxlYmVhdCIsICJjaGFuZ2VzIjogeyJuZXR3b3JrLmNvbm5lY3QiOiB7ImNvbW1lbnQiOiAiU3VjY2Vzc2Z1bGx5IGNvbm5lY3RlZCB0byBlc2thZmthLWtjLXQyLnNzbmMtY29ycC5jbG91ZCAoMTAuMjIyLjE1My4zMikgb24gdGNwIHBvcnQgOTA5NCIsICJyZXN1bHQiOiB0cnVlfX0sICJjb21tZW50IjogIm5ldHdvcmsuY29ubmVjdDogU3VjY2Vzc2Z1bGx5IGNvbm5lY3RlZCB0byBlc2thZmthLWtjLXQyLnNzbmMtY29ycC5jbG91ZCAoMTAuMjIyLjE1My4zMikgb24gdGNwIHBvcnQgOTA5NCIsICJkdXJhdGlvbiI6IDIuMjk3LCAibmFtZSI6IFsibmV0d29yay5jb25uZWN0Il0sICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy45OTM1NjMifSwgIm1vZHVsZV98LWZpbGViZWF0LWxvZy1lcnJvcl98LWZpbGViZWF0LWxvZy1lcnJvcl98LXJ1biI6IHsiX19ydW5fbnVtX18iOiAxMDYsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1maWxlYmVhdCIsICJfX3N0YXRlX3Jhbl9fIjogZmFsc2UsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlN0YXRlIHdhcyBub3QgcnVuIGJlY2F1c2Ugb25mYWlsIHJlcSBkaWQgbm90IGNoYW5nZSIsICJkdXJhdGlvbiI6IDAuMDAxLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTkuNzk0MzYzIn0sICJwaXBffC1pbnN0YWxsX2N1c3RvbV9zYWx0X21vZHVsZXNffC1zc25jX3NhbHRfbWluaW9uX2V4dG1vZHM9PTAuMC44X3wtaW5zdGFsbGVkIjogeyJfX2lkX18iOiAiaW5zdGFsbF9jdXN0b21fc2FsdF9tb2R1bGVzIiwgIl9fcnVuX251bV9fIjogNCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLW1pbmlvbiIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlRoZXJlIHdhcyBubyBlcnJvciBpbnN0YWxsaW5nIHBhY2thZ2UgJ3NzbmNfc2FsdF9taW5pb25fZXh0bW9kcz09MC4wLjgnIGFsdGhvdWdoIGl0IGRvZXMgbm90IHNob3cgd2hlbiBjYWxsaW5nICdwaXAuZnJlZXplJy4iLCAiZHVyYXRpb24iOiAxNTUyLjAxNywgIm5hbWUiOiAic3NuY19zYWx0X21pbmlvbl9leHRtb2RzPT0wLjAuOCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxMC40Nzc5MTEifSwgInBpcF98LWluc3RhbGxfcGlwX3BhY2thZ2VzX3wtY3Jvbml0ZXJffC1pbnN0YWxsZWQiOiB7Il9faWRfXyI6ICJpbnN0YWxsX3BpcF9wYWNrYWdlcyIsICJfX3J1bl9udW1fXyI6IDgsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1taW5pb24iLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJQeXRob24gcGFja2FnZSBjcm9uaXRlciB3YXMgYWxyZWFkeSBpbnN0YWxsZWRcbkFsbCBzcGVjaWZpZWQgcGFja2FnZXMgYXJlIGFscmVhZHkgaW5zdGFsbGVkIiwgImR1cmF0aW9uIjogMzE4Ljc2OSwgIm5hbWUiOiAiY3Jvbml0ZXIiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTYuMTM1MDcyIn0sICJwaXBffC1pbnN0YWxsX3BpcF9wYWNrYWdlc198LXB5aW5vdGlmeV98LWluc3RhbGxlZCI6IHsiX19pZF9fIjogImluc3RhbGxfcGlwX3BhY2thZ2VzIiwgIl9fcnVuX251bV9fIjogNywgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLW1pbmlvbiIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlB5dGhvbiBwYWNrYWdlIHB5aW5vdGlmeSB3YXMgYWxyZWFkeSBpbnN0YWxsZWRcbkFsbCBzcGVjaWZpZWQgcGFja2FnZXMgYXJlIGFscmVhZHkgaW5zdGFsbGVkIiwgImR1cmF0aW9uIjogMzE2LjU3MSwgIm5hbWUiOiAicHlpbm90aWZ5IiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE1LjgxODEyMCJ9LCAicGlwX3wtaW5zdGFsbF9waXBfcGFja2FnZXNffC1weXRob24tZGF0ZXV0aWxffC1pbnN0YWxsZWQiOiB7Il9faWRfXyI6ICJpbnN0YWxsX3BpcF9wYWNrYWdlcyIsICJfX3J1bl9udW1fXyI6IDYsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1taW5pb24iLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJQeXRob24gcGFja2FnZSBweXRob24tZGF0ZXV0aWwgd2FzIGFscmVhZHkgaW5zdGFsbGVkXG5BbGwgc3BlY2lmaWVkIHBhY2thZ2VzIGFyZSBhbHJlYWR5IGluc3RhbGxlZCIsICJkdXJhdGlvbiI6IDMxNS4xNzUsICJuYW1lIjogInB5dGhvbi1kYXRldXRpbCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNS41MDI1NDAifSwgInBrZ198LWluc3RhbGxfY29ydGV4X3wtdHJhcHNfcGF3bl98LWluc3RhbGxlZCI6IHsiX19pZF9fIjogImluc3RhbGxfY29ydGV4IiwgIl9fcnVuX251bV9fIjogMTE5LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtcGFsby1jb3J0ZXgubGludXgiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJ1bmxlc3MgY29uZGl0aW9uIGlzIHRydWUiLCAiZHVyYXRpb24iOiAyNC4wMSwgIm5hbWUiOiAidHJhcHNfcGF3biIsICJyZXN1bHQiOiB0cnVlLCAic2tpcF93YXRjaCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjIxLjgzNjk0OCJ9LCAicGtnX3wtaW5zdGFsbF9maWxlYmVhdF98LWZpbGViZWF0X3wtaW5zdGFsbGVkIjogeyJfX2lkX18iOiAiaW5zdGFsbF9maWxlYmVhdCIsICJfX3J1bl9udW1fXyI6IDk1LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtZmlsZWJlYXQiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJBbGwgc3BlY2lmaWVkIHBhY2thZ2VzIGFyZSBhbHJlYWR5IGluc3RhbGxlZCBhbmQgYXJlIGF0IHRoZSBkZXNpcmVkIHZlcnNpb24uXG5QYWNrYWdlIGZpbGViZWF0IGlzIGFscmVhZHkgc2V0IHRvIGJlIGhlbGQuIiwgImR1cmF0aW9uIjogMTQyMS4yOTcsICJuYW1lIjogImZpbGViZWF0IiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE4LjIwNjEyOCJ9LCAicGtnX3wtaW5zdGFsbF9naXRffC1naXRffC1pbnN0YWxsZWQiOiB7Il9faWRfXyI6ICJpbnN0YWxsX2dpdCIsICJfX3J1bl9udW1fXyI6IDg0LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtZ2l0IiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiQWxsIHNwZWNpZmllZCBwYWNrYWdlcyBhcmUgYWxyZWFkeSBpbnN0YWxsZWQiLCAiZHVyYXRpb24iOiAxNy4xNjIsICJuYW1lIjogImdpdCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy45NTA0NjAifSwgInBrZ198LWluc3RhbGxfcGlwX3wtcHl0aG9uMy1waXBffC1sYXRlc3QiOiB7Il9faWRfXyI6ICJpbnN0YWxsX3BpcCIsICJfX3J1bl9udW1fXyI6IDUsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1taW5pb24iLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJQYWNrYWdlIHB5dGhvbjMtcGlwIGlzIGFscmVhZHkgdXAtdG8tZGF0ZSIsICJkdXJhdGlvbiI6IDM0NTUuNjg1LCAibmFtZSI6ICJweXRob24zLXBpcCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxMi4wNDY1MzcifSwgInBrZ198LWluc3RhbGxfdGVsZWdyYWZffC10ZWxlZ3JhZl98LWluc3RhbGxlZCI6IHsiX19pZF9fIjogImluc3RhbGxfdGVsZWdyYWYiLCAiX19ydW5fbnVtX18iOiAzNiwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXRlbGVncmFmIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAidW5sZXNzIGNvbmRpdGlvbiBpcyB0cnVlIiwgImR1cmF0aW9uIjogMjMuMTY3LCAibmFtZSI6ICJ0ZWxlZ3JhZiIsICJyZXN1bHQiOiB0cnVlLCAic2tpcF93YXRjaCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjQ5NjQ0NSJ9LCAicGtnX3wtaW5zdGFsbF92ZXJzaW9ubG9ja198LXB5dGhvbjMtZG5mLXBsdWdpbi12ZXJzaW9ubG9ja198LWluc3RhbGxlZCI6IHsiX19pZF9fIjogImluc3RhbGxfdmVyc2lvbmxvY2siLCAiX19ydW5fbnVtX18iOiA5NCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLWZpbGViZWF0IiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiQWxsIHNwZWNpZmllZCBwYWNrYWdlcyBhcmUgYWxyZWFkeSBpbnN0YWxsZWQiLCAiZHVyYXRpb24iOiAxNi42MzUsICJuYW1lIjogInB5dGhvbjMtZG5mLXBsdWdpbi12ZXJzaW9ubG9jayIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxOC4xODkzMzUifSwgInBrZ198LW1hbmFnZV96YWJiaXg2LWFnZW50LWFuZC1zZW5kZXJffC1tYW5hZ2VfemFiYml4Ni1hZ2VudC1hbmQtc2VuZGVyX3wtaW5zdGFsbGVkIjogeyJfX2lkX18iOiAibWFuYWdlX3phYmJpeDYtYWdlbnQtYW5kLXNlbmRlciIsICJfX3J1bl9udW1fXyI6IDUyLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtemFiYml4IiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiQWxsIHNwZWNpZmllZCBwYWNrYWdlcyBhcmUgYWxyZWFkeSBpbnN0YWxsZWQgYW5kIGFyZSBhdCB0aGUgZGVzaXJlZCB2ZXJzaW9uIiwgImR1cmF0aW9uIjogNTEuNTgyLCAibmFtZSI6ICJtYW5hZ2VfemFiYml4Ni1hZ2VudC1hbmQtc2VuZGVyIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjcyMzAxMyJ9LCAicGtnX3wtdXBncmFkZV9zYWx0X21pbmlvbl98LXNhbHQtbWluaW9uX3wtaW5zdGFsbGVkIjogeyJfX2lkX18iOiAidXBncmFkZV9zYWx0X21pbmlvbiIsICJfX3J1bl9udW1fXyI6IDE1LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtbWluaW9uIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAidW5sZXNzIGNvbmRpdGlvbiBpcyB0cnVlIiwgImR1cmF0aW9uIjogMzc5LjUyOSwgIm5hbWUiOiAic2FsdC1taW5pb24iLCAicmVzdWx0IjogdHJ1ZSwgInNraXBfd2F0Y2giOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNi42ODU2NjYifSwgInBrZ3JlcG9ffC1lbGFzdGljX3l1bV9yZXBvX3wtYXJ0aWZhY3RvcnktZWxhc3RpYy04X3wtbWFuYWdlZCI6IHsiX19pZF9fIjogImVsYXN0aWNfeXVtX3JlcG8iLCAiX19ydW5fbnVtX18iOiA5MywgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLWZpbGViZWF0IiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiUGFja2FnZSByZXBvICdhcnRpZmFjdG9yeS1lbGFzdGljLTgnIGFscmVhZHkgY29uZmlndXJlZCIsICJkdXJhdGlvbiI6IDIyLjc2MiwgIm5hbWUiOiAiYXJ0aWZhY3RvcnktZWxhc3RpYy04IiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE4LjE2NjQwNCJ9LCAicGtncmVwb198LW1hbmFnZV9hcnRpZmFjdG9yeS16YWJiaXg2X3wtYXJ0aWZhY3RvcnktemFiYml4X3wtbWFuYWdlZCI6IHsiX19pZF9fIjogIm1hbmFnZV9hcnRpZmFjdG9yeS16YWJiaXg2IiwgIl9fcnVuX251bV9fIjogNDgsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy16YWJiaXgiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJQYWNrYWdlIHJlcG8gJ2FydGlmYWN0b3J5LXphYmJpeCcgYWxyZWFkeSBjb25maWd1cmVkIiwgImR1cmF0aW9uIjogMjAuMjIyLCAibmFtZSI6ICJhcnRpZmFjdG9yeS16YWJiaXgiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuNjcxMjU0In0sICJwa2dyZXBvX3wtc2FsdHByb2plY3Q5X3JlcG9ffC1zYWx0c3RhY2stcmVwb198LW1hbmFnZWQiOiB7Il9faWRfXyI6ICJzYWx0cHJvamVjdDlfcmVwbyIsICJfX3J1bl9udW1fXyI6IDMsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc2FsdC1yZXBvIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiUGFja2FnZSByZXBvICdzYWx0c3RhY2stcmVwbycgYWxyZWFkeSBjb25maWd1cmVkIiwgImR1cmF0aW9uIjogOTE3LjY4OCwgIm5hbWUiOiAic2FsdHN0YWNrLXJlcG8iLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MDkuNDg5OTg1In0sICJzY2hlZHVsZV98LWFubm91bmNlX3ByZXNlbmNlX3wtQW5ub3VuY2UgTWluaW9uIFByZXNlbmNlIChTUy0yMTQzKV98LXByZXNlbnQiOiB7Il9faWRfXyI6ICJhbm5vdW5jZV9wcmVzZW5jZSIsICJfX3J1bl9udW1fXyI6IDE2LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtbWluaW9uIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiSm9iIEFubm91bmNlIE1pbmlvbiBQcmVzZW5jZSAoU1MtMjE0MykgaW4gY29ycmVjdCBzdGF0ZSIsICJkdXJhdGlvbiI6IDE2LjIyNiwgIm5hbWUiOiAiQW5ub3VuY2UgTWluaW9uIFByZXNlbmNlIChTUy0yMTQzKSIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy4wNjU2MzUifSwgInNjaGVkdWxlX3wtaW5mb3NlYy1uZXRzdGF0LXNjaGVkdWxlX3wtaW5mb3NlYy1uZXRzdGF0LXNjaGVkdWxlX3wtcHJlc2VudCI6IHsiX19pZF9fIjogImluZm9zZWMtbmV0c3RhdC1zY2hlZHVsZSIsICJfX3J1bl9udW1fXyI6IDExNCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLWluZm9zZWMtbmV0c3RhdC5zY2hlZHVsZSIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIkpvYiBpbmZvc2VjLW5ldHN0YXQtc2NoZWR1bGUgaW4gY29ycmVjdCBzdGF0ZSIsICJkdXJhdGlvbiI6IDE0LjQxNywgIm5hbWUiOiAiaW5mb3NlYy1uZXRzdGF0LXNjaGVkdWxlIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjIwLjAzMDI1MyJ9LCAic2VydmljZV98LWNsb3VkX3Nzc2Rfc2VydmljZV98LXNzc2RffC1ydW5uaW5nIjogeyJfX2lkX18iOiAiY2xvdWRfc3NzZF9zZXJ2aWNlIiwgIl9fcnVuX251bV9fIjogMTEyLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3NzZCIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlRoZSBzZXJ2aWNlIHNzc2QgaXMgYWxyZWFkeSBydW5uaW5nIiwgImR1cmF0aW9uIjogMzEuMDQyLCAibmFtZSI6ICJzc3NkIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE5Ljk1MTE4NSJ9LCAic2VydmljZV98LWRpc2FibGVfZmlsZWJlYXRffC1maWxlYmVhdF98LWRlYWQiOiB7Il9fcnVuX251bV9fIjogMTAzLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtZmlsZWJlYXQiLCAiX19zdGF0ZV9yYW5fXyI6IGZhbHNlLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJTdGF0ZSB3YXMgbm90IHJ1biBiZWNhdXNlIG9uZmFpbCByZXEgZGlkIG5vdCBjaGFuZ2UiLCAiZHVyYXRpb24iOiAwLjAwNCwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE5Ljc0NDYzNCJ9LCAic2VydmljZV98LWVuYWJsZV90ZWxlZ3JhZl98LXRlbGVncmFmX3wtZW5hYmxlZCI6IHsiX19pZF9fIjogImVuYWJsZV90ZWxlZ3JhZiIsICJfX3J1bl9udW1fXyI6IDQ0LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtdGVsZWdyYWYiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJTZXJ2aWNlIHRlbGVncmFmIGlzIGFscmVhZHkgZW5hYmxlZCwgYW5kIGlzIGluIHRoZSBkZXNpcmVkIHN0YXRlIiwgImR1cmF0aW9uIjogMzAuMzgxLCAibmFtZSI6ICJ0ZWxlZ3JhZiIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy42MDAyMTgifSwgInNlcnZpY2VffC1xdWFseXMtY2xvdWQtYWdlbnQtc2VydmljZV98LXF1YWx5cy1jbG91ZC1hZ2VudF98LXJ1bm5pbmciOiB7Il9faWRfXyI6ICJxdWFseXMtY2xvdWQtYWdlbnQtc2VydmljZSIsICJfX3J1bl9udW1fXyI6IDExMywgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXF1YWx5cy1hZ2VudC5saW51eCIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlRoZSBzZXJ2aWNlIHF1YWx5cy1jbG91ZC1hZ2VudCBpcyBhbHJlYWR5IHJ1bm5pbmciLCAiZHVyYXRpb24iOiA0Ny4yNDMsICJuYW1lIjogInF1YWx5cy1jbG91ZC1hZ2VudCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxOS45ODI1OTgifSwgInNlcnZpY2VffC1yZXN0YXJ0X2ZpbGViZWF0X3wtZmlsZWJlYXRffC1ydW5uaW5nIjogeyJfX2lkX18iOiAicmVzdGFydF9maWxlYmVhdCIsICJfX3J1bl9udW1fXyI6IDEwNCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLWZpbGViZWF0IiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiVGhlIHNlcnZpY2UgZmlsZWJlYXQgaXMgYWxyZWFkeSBydW5uaW5nIiwgImR1cmF0aW9uIjogNDYuOTI4LCAibmFtZSI6ICJmaWxlYmVhdCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxOS43NDU5NTUifSwgInNlcnZpY2VffC1yZXN0YXJ0X2xvZ3JvdGF0ZV98LWxvZ3JvdGF0ZS50aW1lcl98LXJ1bm5pbmciOiB7Il9faWRfXyI6ICJyZXN0YXJ0X2xvZ3JvdGF0ZSIsICJfX3J1bl9udW1fXyI6IDMzLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3lzbG9nIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiVGhlIHNlcnZpY2UgbG9ncm90YXRlLnRpbWVyIGlzIGFscmVhZHkgcnVubmluZyIsICJkdXJhdGlvbiI6IDQ2LjkyNCwgIm5hbWUiOiAibG9ncm90YXRlLnRpbWVyIiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3LjQ0NTM1OSJ9LCAic2VydmljZV98LXJlc3RhcnRfcnlzbG9nX3wtcnN5c2xvZ198LXJ1bm5pbmciOiB7Il9faWRfXyI6ICJyZXN0YXJ0X3J5c2xvZyIsICJfX3J1bl9udW1fXyI6IDMyLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3lzbG9nIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiVGhlIHNlcnZpY2UgcnN5c2xvZyBpcyBhbHJlYWR5IHJ1bm5pbmciLCAiZHVyYXRpb24iOiA1Mi4xMjIsICJuYW1lIjogInJzeXNsb2ciLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuMzkxMTc5In0sICJzZXJ2aWNlX3wtcmVzdGFydF9zYWx0X21pbmlvbl9wZXJfbWluaW9uX2NoYW5nZV98LXNhbHQtbWluaW9uX3wtcnVubmluZyI6IHsiX19pZF9fIjogInJlc3RhcnRfc2FsdF9taW5pb25fcGVyX21pbmlvbl9jaGFuZ2UiLCAiX19ydW5fbnVtX18iOiAxNCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLW1pbmlvbiIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlRoZSBzZXJ2aWNlIHNhbHQtbWluaW9uIGlzIGFscmVhZHkgcnVubmluZyIsICJkdXJhdGlvbiI6IDQ2LjUwNCwgIm5hbWUiOiAic2FsdC1taW5pb24iLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTYuNjM3MTE3In0sICJzZXJ2aWNlX3wtcmVzdGFydF90ZWxlZ3JhZl98LXRlbGVncmFmX3wtcnVubmluZyI6IHsiX19pZF9fIjogInJlc3RhcnRfdGVsZWdyYWYiLCAiX19ydW5fbnVtX18iOiA0NSwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXRlbGVncmFmIiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiVGhlIHNlcnZpY2UgdGVsZWdyYWYgaXMgYWxyZWFkeSBydW5uaW5nIiwgImR1cmF0aW9uIjogMzMuNDE2LCAibmFtZSI6ICJ0ZWxlZ3JhZiIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy42MzE2ODEifSwgInNlcnZpY2VffC1yZXN0YXJ0X3phYmJpeC1hZ2VudF9vbl9jb25maWdfY2hhbmdlX3wtemFiYml4LWFnZW50X3wtcnVubmluZyI6IHsiX19pZF9fIjogInJlc3RhcnRfemFiYml4LWFnZW50X29uX2NvbmZpZ19jaGFuZ2UiLCAiX19ydW5fbnVtX18iOiA1MywgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXphYmJpeCIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlRoZSBzZXJ2aWNlIHphYmJpeC1hZ2VudCBpcyBhbHJlYWR5IHJ1bm5pbmciLCAiZHVyYXRpb24iOiA0NC40MTgsICJuYW1lIjogInphYmJpeC1hZ2VudCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy43NzU0MjAifSwgInNlcnZpY2VffC1zYWZlZ3VhcmRfc3NzZF9zZXJ2aWNlX3wtc3NzZF98LXJ1bm5pbmciOiB7Il9faWRfXyI6ICJzYWZlZ3VhcmRfc3NzZF9zZXJ2aWNlIiwgIl9fcnVuX251bV9fIjogMTExLCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtc3NzZCIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlRoZSBzZXJ2aWNlIHNzc2QgaXMgYWxyZWFkeSBydW5uaW5nIiwgImR1cmF0aW9uIjogNDUuMjIsICJuYW1lIjogInNzc2QiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTkuOTA1NTkxIn0sICJzZXJ2aWNlX3wtc3NoZF9zZXJ2aWNlX3wtc3NoZF98LXJ1bm5pbmciOiB7Il9faWRfXyI6ICJzc2hkX3NlcnZpY2UiLCAiX19ydW5fbnVtX18iOiAyNCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXNlY3VyaXR5IiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiVGhlIHNlcnZpY2Ugc3NoZCBpcyBhbHJlYWR5IHJ1bm5pbmciLCAiZHVyYXRpb24iOiA1My4yNTQsICJuYW1lIjogInNzaGQiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuMjQ5NTE2In0sICJzZXJ2aWNlX3wtc3RhcnRfY29ydGV4X3NlcnZpY2VffC10cmFwc19wbWRffC1ydW5uaW5nIjogeyJfX2lkX18iOiAic3RhcnRfY29ydGV4X3NlcnZpY2UiLCAiX19ydW5fbnVtX18iOiAxMjAsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy1wYWxvLWNvcnRleC5saW51eCIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlRoZSBzZXJ2aWNlIHRyYXBzX3BtZCBpcyBhbHJlYWR5IHJ1bm5pbmciLCAiZHVyYXRpb24iOiA0OS4yNDIsICJuYW1lIjogInRyYXBzX3BtZCIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoyMS44NjI3ODYifSwgInVzZXJffC1hbnNpYmxlX3VzZXJffC1hbnNpYmxlX3wtcHJlc2VudCI6IHsiX19pZF9fIjogImFuc2libGVfdXNlciIsICJfX3J1bl9udW1fXyI6IDc4LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtYW5zaWJsZSIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlVzZXIgYW5zaWJsZSBpcyBwcmVzZW50IGFuZCB1cCB0byBkYXRlIiwgImR1cmF0aW9uIjogMi42NTYsICJuYW1lIjogImFuc2libGUiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuOTE2MTkwIn0sICJ1c2VyX3wtbWFuYWdlX3phYmJpeF91c2VyX3wtemFiYml4X3wtcHJlc2VudCI6IHsiX19pZF9fIjogIm1hbmFnZV96YWJiaXhfdXNlciIsICJfX3J1bl9udW1fXyI6IDQ3LCAiX19zbHNfXyI6ICJzc25jLWJhc2VsaW5lLnNzbmMtemFiYml4IiwgImNoYW5nZXMiOiB7fSwgImNvbW1lbnQiOiAiVXNlciB6YWJiaXggaXMgcHJlc2VudCBhbmQgdXAgdG8gZGF0ZSIsICJkdXJhdGlvbiI6IDMuODI5LCAibmFtZSI6ICJ6YWJiaXgiLCAicmVzdWx0IjogdHJ1ZSwgInN0YXJ0X3RpbWUiOiAiMTk6MjY6MTcuNjY3MjY1In0sICJ1c2VyX3wtc2V0X3Bhc3N3b3JkX3wtcm9vdF98LXByZXNlbnQiOiB7Il9faWRfXyI6ICJzZXRfcGFzc3dvcmQiLCAiX19ydW5fbnVtX18iOiA4OCwgIl9fc2xzX18iOiAic3NuYy1iYXNlbGluZS5zc25jLXJvb3QiLCAiY2hhbmdlcyI6IHt9LCAiY29tbWVudCI6ICJVc2VyIHJvb3QgaXMgcHJlc2VudCBhbmQgdXAgdG8gZGF0ZSIsICJkdXJhdGlvbiI6IDEuNTY0LCAibmFtZSI6ICJyb290IiwgInJlc3VsdCI6IHRydWUsICJzdGFydF90aW1lIjogIjE5OjI2OjE3Ljk4OTI0NiJ9LCAidXNlcl98LXRlbGVncmFmX3VzZXJffC10ZWxlZ3JhZl98LXByZXNlbnQiOiB7Il9faWRfXyI6ICJ0ZWxlZ3JhZl91c2VyIiwgIl9fcnVuX251bV9fIjogMzUsICJfX3Nsc19fIjogInNzbmMtYmFzZWxpbmUuc3NuYy10ZWxlZ3JhZiIsICJjaGFuZ2VzIjoge30sICJjb21tZW50IjogIlVzZXIgdGVsZWdyYWYgaXMgcHJlc2VudCBhbmQgdXAgdG8gZGF0ZSIsICJkdXJhdGlvbiI6IDIuNDcyLCAibmFtZSI6ICJ0ZWxlZ3JhZiIsICJyZXN1bHQiOiB0cnVlLCAic3RhcnRfdGltZSI6ICIxOToyNjoxNy40OTM4MjAifX0sICJzdWNjZXNzIjogdHJ1ZX0="
}
],
"jid": "20240724192622670225",
"return": null,
"success": true,
"user": "Reactor"
}
Hi guys,
I'm planning to upgrade my Foreman 1.18 instance to 1.20 but i wanted to make sure that Salt is still supported with the current version. As there were no indications in the 1.20 release notes I'd assume it will still work. Nevertheless, I think it'd be great to update the Salt plugin doc as they stop listing support at Foreman 1.13.X with smart proxy 2.X.
Maybe a table like the foreman_salt repo would be a good fit to indicate anything above 1.13 is fine:
source https://github.com/theforeman/foreman_salt
As we continue to build out our large foreman/salt infrastructure, we use multiple load balancers for the foremanUI, API, etc. It is common use with load balancers to set them up as ssl managed, where as you forward port 443 from the load balancer, to 443 on the foreman server. But then you modify the apache configuration to be https, without the SSL engine itself. This allows the load balancer to handle http traffic via SSL, then forward it to the Foreman servers, where the SSL ends.
The current script will not work this way, as it does a check for https. If https is enabled in the config file this if will run:
if config[":proto"] == "https":
Which will look for ssl certs, and fail. The foreman-node script, for example, doesnt care if you set it to https or http. It will only use the ssl certs if they are NOT empty.
This isnt a bug so to say, but it will prevent people from using the script if they are using managed load balancers.
I edited the script to ignore the checking of https, and instead check to see if ssl_cert and ssl_key are empty or not. If they are empty, it assumes ssl is not enable, but still uses https.
A Host of mine outputs a lot of data and the reactor uploaded fails on this
2019-10-30 23:34:55,563 [salt.utils.reactor:106 ][ERROR ][30823] Failed to render "/srv/salt/foreman_report_upload.sls":
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/salt/renderers/yaml.py", line 65, in render
data = yamlloader.load(yaml_data, Loader=get_yaml_loader(argline))
File "/usr/lib/python3/dist-packages/salt/utils/yamlloader.py", line 170, in load
return yaml.load(stream, Loader=Loader)
File "/usr/lib/python3/dist-packages/yaml/__init__.py", line 72, in load
return loader.get_single_data()
File "/usr/lib/python3/dist-packages/yaml/constructor.py", line 35, in get_single_data
node = self.get_single_node()
File "ext/_yaml.pyx", line 707, in _yaml.CParser.get_single_node (ext/_yaml.c:9612)
File "ext/_yaml.pyx", line 725, in _yaml.CParser._compose_document (ext/_yaml.c:9922)
File "ext/_yaml.pyx", line 776, in _yaml.CParser._compose_node (ext/_yaml.c:10814)
File "ext/_yaml.pyx", line 890, in _yaml.CParser._compose_mapping_node (ext/_yaml.c:12609)
File "ext/_yaml.pyx", line 776, in _yaml.CParser._compose_node (ext/_yaml.c:10814)
File "ext/_yaml.pyx", line 890, in _yaml.CParser._compose_mapping_node (ext/_yaml.c:12609)
File "ext/_yaml.pyx", line 774, in _yaml.CParser._compose_node (ext/_yaml.c:10784)
File "ext/_yaml.pyx", line 851, in _yaml.CParser._compose_sequence_node (ext/_yaml.c:12011)
File "ext/_yaml.pyx", line 776, in _yaml.CParser._compose_node (ext/_yaml.c:10814)
File "ext/_yaml.pyx", line 890, in _yaml.CParser._compose_mapping_node (ext/_yaml.c:12609)
File "ext/_yaml.pyx", line 774, in _yaml.CParser._compose_node (ext/_yaml.c:10784)
File "ext/_yaml.pyx", line 851, in _yaml.CParser._compose_sequence_node (ext/_yaml.c:12011)
File "ext/_yaml.pyx", line 776, in _yaml.CParser._compose_node (ext/_yaml.c:10814)
File "ext/_yaml.pyx", line 892, in _yaml.CParser._compose_mapping_node (ext/_yaml.c:12639)
File "ext/_yaml.pyx", line 905, in _yaml.CParser._parse_next_event (ext/_yaml.c:12818)
yaml.parser.ParserError: while parsing a block mapping
in "<unicode string>", line 5, column 10
did not find expected key
in "<unicode string>", line 5, column 2131
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/salt/utils/reactor.py", line 97, in render_reaction
data=data)
File "/usr/lib/python3/dist-packages/salt/state.py", line 385, in render_template
**kwargs)
File "/usr/lib/python3/dist-packages/salt/template.py", line 101, in compile_template
ret = render(input_data, saltenv, sls, **render_kwargs)
File "/usr/lib/python3/dist-packages/salt/renderers/yaml.py", line 71, in render
raise SaltRenderError(exc)
salt.exceptions.SaltRenderError: while parsing a block mapping
in "<unicode string>", line 5, column 10
did not find expected key
in "<unicode string>", line 5, column 2131
Following Foreman (v. 1.12) & foreman_salt (v. 5.0) integration manual I've set up working evironment that properly runs salt from foreman.
Unfortunately I wasn't able to gather any reports.
After some investigation I found (in /var/log/foreman-proxy/salt-cron.log):
SLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
Traceback (most recent call last):
File "/usr/sbin/upload-salt-reports", line 137, in
upload(jobs_to_upload())
File "/usr/sbin/upload-salt-reports", line 112, in upload
json.dumps(job), headers)
File "/usr/lib/python2.7/httplib.py", line 1057, in request
self._send_request(method, url, body, headers)
File "/usr/lib/python2.7/httplib.py", line 1097, in _send_request
self.endheaders(body)
File "/usr/lib/python2.7/httplib.py", line 1053, in endheaders
self._send_output(message_body)
File "/usr/lib/python2.7/httplib.py", line 897, in _send_output
self.send(msg)
File "/usr/lib/python2.7/httplib.py", line 859, in send
self.connect()
File "/usr/lib/python2.7/httplib.py", line 1278, in connect
server_hostname=server_hostname)
File "/usr/lib/python2.7/ssl.py", line 353, in wrap_socket
_context=self)
File "/usr/lib/python2.7/ssl.py", line 601, in init
self.do_handshake()
File "/usr/lib/python2.7/ssl.py", line 830, in do_handshake
self._sslobj.do_handshake()
tcpdump showed that the client script (upload-salt-reports) was responding with: alert unknown ca
Changing the following (connection initialization):
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) context.load_cert_chain(certfile=config[':ssl_cert'], keyfile=config[':ssl_key']) connection = httplib.HTTPSConnection(config[':host'], port=config[':port'], context=context)
yields proper report upload.
Please advice if this is some kind of bug or have I misconfigured something ?
My /etc/salt/foreman.yaml
:proto: https
:host: fancy.host
:port: 443
:ssl_ca: "/etc/foreman/ssl/certs/ca.pem"
:ssl_cert: "/etc/foreman/ssl/certs/fancy.host.pem"
:ssl_key: "/etc/foreman/ssl/private/fancy.host.key"
:timeout: 60
๐ง /usr/bin/salt
:upload_grains: true
Hi is it possible for upload-salt-reports to support the state.apply command also instead of only working for only state.highstate?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.