mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	puppet: Add ksplice uptrack for kernel hotpatches.
This commit is contained in:
		
				
					committed by
					
						
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							fafe1a31d7
						
					
				
				
					commit
					32149c6a1c
				
			
							
								
								
									
										27
									
								
								puppet/zulip_ops/manifests/ksplice_uptrack.pp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								puppet/zulip_ops/manifests/ksplice_uptrack.pp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					class zulip_ops::ksplice_uptrack {
 | 
				
			||||||
 | 
					  file { '/etc/uptrack':
 | 
				
			||||||
 | 
					    ensure => 'directory',
 | 
				
			||||||
 | 
					    owner  => 'root',
 | 
				
			||||||
 | 
					    group  => 'root',
 | 
				
			||||||
 | 
					    mode   => '0755',
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  $ksplice_access_key = zulipsecret('secrets','ksplice_access_key','')
 | 
				
			||||||
 | 
					  file { '/etc/uptrack/uptrack.conf':
 | 
				
			||||||
 | 
					    ensure  => file,
 | 
				
			||||||
 | 
					    owner   => 'root',
 | 
				
			||||||
 | 
					    group   => 'root',
 | 
				
			||||||
 | 
					    mode    => '0644',
 | 
				
			||||||
 | 
					    content => template('zulip_ops/uptrack/uptrack.conf.erb'),
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  $setup_apt_repo_file = "${::zulip_scripts_path}/lib/setup-apt-repo-ksplice"
 | 
				
			||||||
 | 
					  exec{ 'setup-apt-repo-ksplice':
 | 
				
			||||||
 | 
					    command => $setup_apt_repo_file,
 | 
				
			||||||
 | 
					    unless  => "${setup_apt_repo_file} --verify",
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  Package { 'uptrack':
 | 
				
			||||||
 | 
					    require => [
 | 
				
			||||||
 | 
					      Exec['setup-apt-repo-ksplice'],
 | 
				
			||||||
 | 
					      File['/etc/uptrack/uptrack.conf'],
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
class zulip_ops::profile::base {
 | 
					class zulip_ops::profile::base {
 | 
				
			||||||
  include zulip::profile::base
 | 
					  include zulip::profile::base
 | 
				
			||||||
  include zulip_ops::munin_node
 | 
					  include zulip_ops::munin_node
 | 
				
			||||||
 | 
					  include zulip_ops::ksplice_uptrack
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  $org_base_packages = [# Management for our systems
 | 
					  $org_base_packages = [# Management for our systems
 | 
				
			||||||
    'openssh-server',
 | 
					    'openssh-server',
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										66
									
								
								puppet/zulip_ops/templates/uptrack/uptrack.conf.erb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								puppet/zulip_ops/templates/uptrack/uptrack.conf.erb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,66 @@
 | 
				
			|||||||
 | 
					[Auth]
 | 
				
			||||||
 | 
					accesskey = <%= @ksplice_access_key %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Network]
 | 
				
			||||||
 | 
					# Proxy to use when accessing the Uptrack server, of the form
 | 
				
			||||||
 | 
					# [protocol://][username:password@]<host>[:port], where
 | 
				
			||||||
 | 
					# * protocol is the protocol to connect to the proxy (http or https)
 | 
				
			||||||
 | 
					# * the username and password are the authentication
 | 
				
			||||||
 | 
					#   information needed to use your proxy (if any).
 | 
				
			||||||
 | 
					# * host and port are the hostname/ip address and port number used to
 | 
				
			||||||
 | 
					#   connect to the proxy
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# The proxy must support making HTTPS connections. If this is unset,
 | 
				
			||||||
 | 
					# Uptrack will look for the https_proxy, HTTPS_PROXY, and http_proxy
 | 
				
			||||||
 | 
					# environment variables in that order, and then finally look for a
 | 
				
			||||||
 | 
					# proxy setting in the system-wide GConf database, if available and
 | 
				
			||||||
 | 
					# enabled below.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# You can also set this to "None" to force Uptrack not to use a proxy,
 | 
				
			||||||
 | 
					# even if one is set in the environment.
 | 
				
			||||||
 | 
					https_proxy =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Look for proxy setting in the system-wide GConf database, if it's
 | 
				
			||||||
 | 
					# not set in the above variable or in an environment variable.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This is broken in later versions of Ubuntu (and other distros too)
 | 
				
			||||||
 | 
					# so we disable this by default. See LP: #812940.
 | 
				
			||||||
 | 
					gconf_proxy_lookup = no
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Uptrack Local Server options ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The path to the CA certificate file used to verify the Uptrack
 | 
				
			||||||
 | 
					# server.
 | 
				
			||||||
 | 
					#ssl_ca_cert_file =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The directory for CA certificate files used to verify the Uptrack
 | 
				
			||||||
 | 
					# server.
 | 
				
			||||||
 | 
					#ssl_ca_cert_dir =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The location of the Uptrack updates repository.
 | 
				
			||||||
 | 
					#update_repo_url=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### End of Uptrack Local Server options ###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Settings]
 | 
				
			||||||
 | 
					# Automatically install updates at boot time. If this is set, on
 | 
				
			||||||
 | 
					# reboot into the same kernel, Uptrack will re-install the same set of
 | 
				
			||||||
 | 
					# updates that were present before the reboot.
 | 
				
			||||||
 | 
					install_on_reboot = yes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Automatically install all available updates at boot time, even if
 | 
				
			||||||
 | 
					# rebooted into a different kernel.
 | 
				
			||||||
 | 
					#upgrade_on_reboot = yes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Uptrack runs in a cron job every few hours to check for and download
 | 
				
			||||||
 | 
					# new updates. You can can configure this cron job to automatically
 | 
				
			||||||
 | 
					# install new updates as they become available.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Enable this option to make the cron job automatically install new
 | 
				
			||||||
 | 
					# updates.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Please note that enabling autoinstall does not mean the Uptrack
 | 
				
			||||||
 | 
					# client itself is automatically upgraded. You will be notified via
 | 
				
			||||||
 | 
					# e-mail when a new Uptrack client is available, and it can be
 | 
				
			||||||
 | 
					# upgraded through your package manager.
 | 
				
			||||||
 | 
					autoinstall = yes
 | 
				
			||||||
							
								
								
									
										80
									
								
								scripts/lib/setup-apt-repo-ksplice
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										80
									
								
								scripts/lib/setup-apt-repo-ksplice
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,80 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					set -x
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					set -u
 | 
				
			||||||
 | 
					set -o pipefail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					verify=false
 | 
				
			||||||
 | 
					args="$(getopt -o '' --long verify -- "$@")"
 | 
				
			||||||
 | 
					eval "set -- $args"
 | 
				
			||||||
 | 
					while true; do
 | 
				
			||||||
 | 
					    case "$1" in
 | 
				
			||||||
 | 
					        --verify)
 | 
				
			||||||
 | 
					            verify=true
 | 
				
			||||||
 | 
					            shift
 | 
				
			||||||
 | 
					            ;;
 | 
				
			||||||
 | 
					        --)
 | 
				
			||||||
 | 
					            shift
 | 
				
			||||||
 | 
					            break
 | 
				
			||||||
 | 
					            ;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Ensure the directory for LAST_DEPENDENCIES_HASH exists
 | 
				
			||||||
 | 
					mkdir -p /var/lib/zulip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SOURCES_FILE=/etc/apt/sources.list.d/ksplice.list
 | 
				
			||||||
 | 
					STAMP_FILE=/etc/apt/sources.list.d/ksplice.list.apt-update-in-progress
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ZULIP_SCRIPTS="$(dirname "$(dirname "$0")")"
 | 
				
			||||||
 | 
					DEPENDENCIES_HASH=$(sha1sum "$ZULIP_SCRIPTS/setup/"*.asc "$0")
 | 
				
			||||||
 | 
					DEPENDENCIES_HASH_FILE="/var/lib/zulip/setup-repositories-state-ksplice"
 | 
				
			||||||
 | 
					# Ensure that DEPENDENCIES_HASH_FILE exists before hashing it.
 | 
				
			||||||
 | 
					touch "$DEPENDENCIES_HASH_FILE"
 | 
				
			||||||
 | 
					LAST_DEPENDENCIES_HASH="$(cat "$DEPENDENCIES_HASH_FILE")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# First, we only do anything in setup-apt-repo if any of its inputs
 | 
				
			||||||
 | 
					# (apt keys, code, etc.)  changed.
 | 
				
			||||||
 | 
					if [ "$DEPENDENCIES_HASH" = "$LAST_DEPENDENCIES_HASH" ]; then
 | 
				
			||||||
 | 
					    exit 0
 | 
				
			||||||
 | 
					elif [ "$verify" == true ]; then
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Ensure that the sources file exists
 | 
				
			||||||
 | 
					touch "$SOURCES_FILE"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Hash it to check if the sources file is changed by the script later.
 | 
				
			||||||
 | 
					zulip_source_hash=$(sha1sum "$SOURCES_FILE")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pre_setup_deps=(lsb-release apt-transport-https ca-certificates gnupg wget)
 | 
				
			||||||
 | 
					if ! apt-get -dy install "${pre_setup_deps[@]}"; then
 | 
				
			||||||
 | 
					    apt-get update
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					apt-get -y install "${pre_setup_deps[@]}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SCRIPTS_PATH="$(cd "$(dirname "$(dirname "$0")")" && pwd)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					release=$(lsb_release -sc)
 | 
				
			||||||
 | 
					if [[ "$release" =~ ^(buster|bionic|cosmic|disco|eoan|focal|groovy)$ ]]; then
 | 
				
			||||||
 | 
					    apt-key add "$SCRIPTS_PATH"/setup/ksplice.asc
 | 
				
			||||||
 | 
					    cat >$SOURCES_FILE <<EOF
 | 
				
			||||||
 | 
					deb http://www.ksplice.com/apt $release ksplice
 | 
				
			||||||
 | 
					deb-src http://www.ksplice.com/apt $release ksplice
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    echo "Unsupported release $release."
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$zulip_source_hash" = "$(sha1sum "$SOURCES_FILE")" ] && ! [ -e "$STAMP_FILE" ]; then
 | 
				
			||||||
 | 
					    echo "zulip.list file did not change; skipping apt-get update"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    # We create this stamp file to ensure `apt-get update` will be run
 | 
				
			||||||
 | 
					    # the next time this script is invoked, and each time after, until
 | 
				
			||||||
 | 
					    # `apt-get update` finishes successfully.
 | 
				
			||||||
 | 
					    touch "$STAMP_FILE"
 | 
				
			||||||
 | 
					    apt-get update && rm -f "$STAMP_FILE"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "$DEPENDENCIES_HASH" >"$DEPENDENCIES_HASH_FILE"
 | 
				
			||||||
							
								
								
									
										65
									
								
								scripts/setup/ksplice.asc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								scripts/setup/ksplice.asc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
				
			|||||||
 | 
					-----BEGIN PGP PUBLIC KEY BLOCK-----
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mQENBEoTaW8BCADXQtpKT5gzOC+/Me50Z07GHfZqkjAThrY+XGhKenklDrZA8nXe
 | 
				
			||||||
 | 
					FDcmlmMvfeSViP5UH+X7tzjUFT2FcUh65+Onggi/J9nFIDweQXxpzDYyWCK+B0RX
 | 
				
			||||||
 | 
					InKsq3TfEs5G0yIfYuKi/pgLYkFBls0stWC+1BS+3Lx4uDRTb/44D4LgzHKoAfy1
 | 
				
			||||||
 | 
					Soho8nDDL1pWEpQAq/5yVSgRc1Vvs1s+CmR8zE5gVi3cfGS0kigdfZJVEdAY/w99
 | 
				
			||||||
 | 
					t3abgYo1Eq3+Vc1bb+5DiEQZlZsWxWglQlvSyx60U2oxr05Ki+3ZyBomfFCTfL2m
 | 
				
			||||||
 | 
					fzzJ8cyglzNhFKhyFQIHqzoPR+Sxl8ppcnEJABEBAAG0NktzcGxpY2UgQVBUIFJl
 | 
				
			||||||
 | 
					cG9zaXRvcnkgU2lnbmluZyBLZXkgPGRldmVsQGtzcGxpY2UuY29tPokBNgQTAQgA
 | 
				
			||||||
 | 
					IAUCShNpbwIbAwULCQgHAwQVCgkIBRYCAwEAAh4BAheAAAoJEPfKYmW21AOO/pUH
 | 
				
			||||||
 | 
					/jKDtB3iRU2B4jii71CSFyFaz3BvJvgRMmIf53L85h3sUvqeVJiy8MoreWeoxst9
 | 
				
			||||||
 | 
					uJBnp8W61QwolCbU6awqdZ2ywRi7JyYNopaEKptxJ3EgBYm+Dq0S7srQK0qCMdRX
 | 
				
			||||||
 | 
					k7OrhCoJEmev7SazhpdIkMWPtRyksgktBMlwQ5/PyLyW+mP3a8ujYDjMIqzScyDV
 | 
				
			||||||
 | 
					YBTKK8HtXaLb6Y2Fu4jinAm4YLP3XfnAyNE1Xi9fkzTBWgC4AZ4wctQWxViu6Q91
 | 
				
			||||||
 | 
					HBB1xBjQYD6aCrPLB8/EtYO6n9UoIov6We8qwDDq7oufEKt8/uLXsomEbaWgOqAv
 | 
				
			||||||
 | 
					wZzpU6ZHueA8JEmNQYzf6pWZAg0EXKv2DQEQANWkHff3Mp7btrQsBCfiNYNh9fi2
 | 
				
			||||||
 | 
					0KBhtfWyDI4pyU7ZkzF0sgXZPPUquYuKbRqbqW1NghWk/SFUewfWLLsxpWDUr+9p
 | 
				
			||||||
 | 
					ghLx2MvdKuaNfvQ/dAoiu7kevyIY4q9fiMwdtRmaCFnJVF2+XZA1z2iH6X6LcLPI
 | 
				
			||||||
 | 
					KEWU1Xd0aWaxoFFPqjkRy+dlDxxV2xsWdEBikIM7rnA4K6NY1V7YXl4DrHLiZB9U
 | 
				
			||||||
 | 
					4K4XuNjWxvjNFqdNUTSFnLKKDo55NmO62OvtX6QOtPkrc91efaQ+xVZwR0kk61r6
 | 
				
			||||||
 | 
					Gon3CcDVqJMk02m9E/p8m2+LDymgmokgPtVQ9N8anfyTqw997gGaoR9FJRs1Pkko
 | 
				
			||||||
 | 
					IW+Wnhjf2kfOYp9f7yON5nZeAHH9ngaxbqr+0A6SxnyccH9cg9mSvpX61ddk/gPm
 | 
				
			||||||
 | 
					l40hYvGHNrnzkUOIaLx3Vngogyl6omFS7bi+t72uZifbA4U/oZhl+LUo4wiYCNAL
 | 
				
			||||||
 | 
					XcGS2kCVKoM3MJB6mg1++gaI7y/Sw7yYfLXp+mn6GTtPiG95JyhhggFpMxx1MSW8
 | 
				
			||||||
 | 
					+MDmaBdNoEX+q20XUuUV/nU+82QpBWgJHtX36m5kaxZ6r0q/4ZpRgLe4qj3owoI7
 | 
				
			||||||
 | 
					gbfi5K725ijh5nfKvsayVIzqsHQWLjJ8NP1H2ZLxgem4IqGBDkhQGXrHvaHWzTb6
 | 
				
			||||||
 | 
					ZqF54fQJkxtX/uETABEBAAG0RE9yYWNsZSBPU1MgZ3JvdXAgKE9wZW4gU291cmNl
 | 
				
			||||||
 | 
					IFNvZnR3YXJlIGdyb3VwKSA8YnVpbGRAb3NzLm9yYWNsZS5jb20+iQI+BBMBAgAo
 | 
				
			||||||
 | 
					BQJcq/YNAhsDBQklmAYABgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCCVi6p
 | 
				
			||||||
 | 
					rZhto3nfD/4vHhyoqJ+yURoGlbPjKodwC27PbmwJbjBsfhXnoR8pkCH5ZD8nA8XJ
 | 
				
			||||||
 | 
					tLLCpvOAhSsiXODwIy5ScozkESVSQo8Ngj4KO9S0/QH14VOGqOntY2XLQhBfyoLq
 | 
				
			||||||
 | 
					n+BMsNe4RsouP4R8u8qKGpwva0khpBaJABp+0bkMUchqdmlWvzx5cnAAwKV7+bb3
 | 
				
			||||||
 | 
					HsriDRz3n29l0UXuKCAhweVMncZYZsvNFeLR9dVNAkCW1HkbH4WdGdKYCmUvqPVQ
 | 
				
			||||||
 | 
					bVyB6xmt8lls2yXT7kSrigdQ3exOBqpNhoxZHuMfocUX7l3Tmd2mW0tdsbohrVzV
 | 
				
			||||||
 | 
					nh76FrZ6EGdx4HFIK3lVPnO2a8kKbhBPj5LwAqx1AunHddZNazkHjUNjLfJAdpDP
 | 
				
			||||||
 | 
					5KjjZgS28YJ6Y+wJ+SJ3xk0SW2X0ozSIdglsV6G/ZyRl7hFU0QNWC6uWcQQogK+F
 | 
				
			||||||
 | 
					/BLhvPYhBk9JhAsYuZRjCmmR/ZWOQOFNBQynWKoteyiUKMN9NxmuVRoARc/sDXC4
 | 
				
			||||||
 | 
					sGUAQcT/Jk5lupyATgBkqRWclia7aWtKQ2GKww5WxWEPILIUTDX58P5Ge9H240c6
 | 
				
			||||||
 | 
					qB5NX/qQ7Ia76cLx2fArKrTAsnO77wQ116Zy+V32nDHcU9ZMZDgYY0ncxV3B/Cdi
 | 
				
			||||||
 | 
					SDm8oYNI6Y8O4SefGRo8mtMkgdIld+NKD8zQ+IsZdw4ykZU15ulJArkCDQRcq/YN
 | 
				
			||||||
 | 
					ARAAodmaW82j7/5qZiH06CeXNJRy2osQ2R7ybtDsddRqQRmBN9FTRqf71OZ+hQLI
 | 
				
			||||||
 | 
					dLXWrcDSX4WgH8UFPjkHLFR1/znShB3Q8Cmqjk3E2lAKpiA4I6lMdPRKdGH2BAIM
 | 
				
			||||||
 | 
					aDN9hJmXwwT6LMRTlY6NDnWD/ZqM4NcYhYc/BgTyVnIXu0TtsU0TC97uwitB58BH
 | 
				
			||||||
 | 
					R4BLPw8wV1DlRL+9hlD6N4tTZ1mp+XYHsCc/sy5elrfUySEHeVph0f69ZpAs9uT9
 | 
				
			||||||
 | 
					uHty8q2QNsMdjXc1LadOlbJ+N5QIWkMe6nMw2RyVzQh/jhYoDVrSw7t3qYFbJUzQ
 | 
				
			||||||
 | 
					iCsLGJ5cn8RlUWSFcS6Vwa74vSIeGRH00Dp1Fe8L/AmewIBKPPEWrLOWFN81HVDB
 | 
				
			||||||
 | 
					Z1kmkLwiX2gfdVytPhO0S8kPG5dMyp4xI581Kx2pqIT27q2BsLXeoFO9uygGD1Gz
 | 
				
			||||||
 | 
					aFjadGpSE2G8yhFu3VTWpfCGf/2DV/7WLca8QPqPYC5YydT3N6FHfaK4ZCXjySjj
 | 
				
			||||||
 | 
					bxtEQ/PTwBj76/f+fhT9xuygnMC8KDX5ZhB7bq/SYgki7M6Z4VGZdxpMdRm/Jjpq
 | 
				
			||||||
 | 
					pK9B46ejSHVyNFkA31PpnyqVhvCHzKEY2V/JtA+aV3+h6IM1WvjexKXpbTZM4sVn
 | 
				
			||||||
 | 
					fqHZ4am3YspRXP7MVDCsB0W7pSj/WWAZEZvMF7M2BQKRAIsAEQEAAYkCJQQYAQIA
 | 
				
			||||||
 | 
					DwUCXKv2DQIbDAUJJZgGAAAKCRCCVi6prZhto7gSD/9ZESN0eiy9Ms9uMPCa0fRH
 | 
				
			||||||
 | 
					dPCKz96oc9Krnsj2MNI69ENaS/j8KJ0G7X4WxMOkiefjCIAgT14xv8vz0JzZjkvL
 | 
				
			||||||
 | 
					MeXM5EkwSDMSpyMh7CpFwTK8xvJOfHgZziEqIyFFwwtZC5anr8lPT34Heg/NAtce
 | 
				
			||||||
 | 
					+4C4q7RmMUmXXqht2gvu0BMA4+2qbGTC3bYbWUGQZRUI6IS7CDX70CCIyEMe3oaD
 | 
				
			||||||
 | 
					zAeMqhCIe/il4YMrFyV19MVMAfTe/H7abBPrVr9GMTViofOaWqZNrz1IM0NK2sbZ
 | 
				
			||||||
 | 
					WKRIHRh0O6pLMHoUxxRGS0nDDKE4oSMnhzbTBkbnFB+Il85yKPZBg9bm9i1A0Kcp
 | 
				
			||||||
 | 
					+ymwXsEI/8Zd1gBODJqMLGnimQ2wBmVHIdTHXM8xHUTX6x76XmzXzLRX5v7VgESY
 | 
				
			||||||
 | 
					CZwQwv1F6/5FvJ35heYn4/2sNOGS89fFX7gdmCXSZe9N3UJRSc2d3jRlLMWjyFOa
 | 
				
			||||||
 | 
					v/6PZPuJHfBzGejK/93ww5Sq5iwoMt0Gv2eD4K9t//yU0knp1sJABwRe9GfwUqOr
 | 
				
			||||||
 | 
					6I/6Ec9dc6H8Wsy8EmtsPdXoXrl7K/Isw3vgJrF3YHau7TXIs0YBFmvyI4fdx23h
 | 
				
			||||||
 | 
					vILSVIDnXI14+ih7od+AIQCwUS+i+KWvuQVuykMas/j3CHR6+1EM+ap+MwuKJpHE
 | 
				
			||||||
 | 
					5d586NuHxeqt80YNMJDN0Q==
 | 
				
			||||||
 | 
					=Y2MU
 | 
				
			||||||
 | 
					-----END PGP PUBLIC KEY BLOCK-----
 | 
				
			||||||
		Reference in New Issue
	
	Block a user