From be58ca74b03a8bc5365f915522091d65018f5fe6 Mon Sep 17 00:00:00 2001 From: Frank Brehm Date: Tue, 1 Jan 2019 16:53:49 +0100 Subject: [PATCH] committing changes in /etc after apt run Package changes: +ca-certificates-java 20170531+nmu1 all +fonts-dejavu-extra 2.37-1 all +fonts-ipafont-gothic 00303-16 all +fonts-ipafont-mincho 00303-16 all +java-common 0.58 all +libavahi-client3 0.6.32-2 amd64 +libavahi-common-data 0.6.32-2 amd64 +libavahi-common3 0.6.32-2 amd64 +libcups2 2.2.1-8+deb9u2 amd64 +liblcms2-2 2.8-4+deb9u1 amd64 +libpcsclite1 1.8.20-1 amd64 +libxi6 2:1.7.9-1 amd64 +libxrender1 1:0.9.10-1 amd64 +libxtst6 2:1.2.3-1 amd64 +openjdk-8-jre-headless 8u181-b13-2~deb9u1 amd64 +screen 4.5.0-6 amd64 +x11-common 1:7.7+19 all --- .etckeeper | 52 +- .java/.systemPrefs/.system.lock | 0 .java/.systemPrefs/.systemRootModFile | 0 X11/Xreset | 34 + X11/Xreset.d/README | 4 + X11/Xresources/x11-common | 10 + X11/Xsession | 113 ++ X11/Xsession.d/20x11-common_process-args | 70 ++ X11/Xsession.d/30x11-common_xresources | 26 + X11/Xsession.d/35x11-common_xhost-local | 10 + X11/Xsession.d/40x11-common_xsessionrc | 6 + X11/Xsession.d/50x11-common_determine-startup | 47 + X11/Xsession.d/90x11-common_ssh-agent | 24 + X11/Xsession.d/99x11-common_start | 7 + X11/Xsession.options | 9 + X11/rgb.txt | 754 ++++++++++++++ alternatives/fonts-japanese-gothic.ttf | 1 + alternatives/fonts-japanese-mincho.ttf | 1 + alternatives/java | 1 + alternatives/java.1.gz | 1 + alternatives/jexec | 1 + alternatives/jexec-binfmt | 1 + alternatives/jjs | 1 + alternatives/jjs.1.gz | 1 + alternatives/keytool | 1 + alternatives/keytool.1.gz | 1 + alternatives/orbd | 1 + alternatives/orbd.1.gz | 1 + alternatives/pack200 | 1 + alternatives/pack200.1.gz | 1 + alternatives/rmid | 1 + alternatives/rmid.1.gz | 1 + alternatives/rmiregistry | 1 + alternatives/rmiregistry.1.gz | 1 + alternatives/servertool | 1 + alternatives/servertool.1.gz | 1 + alternatives/tnameserv | 1 + alternatives/tnameserv.1.gz | 1 + alternatives/unpack200 | 1 + alternatives/unpack200.1.gz | 1 + ca-certificates/update.d/jks-keystore | 93 ++ default/cacerts | 10 + init.d/screen-cleanup | 49 + init.d/x11-common | 122 +++ java-8-openjdk/accessibility.properties | 9 + java-8-openjdk/calendars.properties | 60 ++ java-8-openjdk/content-types.properties | 280 +++++ java-8-openjdk/flavormap.properties | 78 ++ .../images/cursors/cursors.properties | 40 + java-8-openjdk/jvm-amd64.cfg | 37 + java-8-openjdk/logging.properties | 59 ++ java-8-openjdk/management/jmxremote.access | 79 ++ java-8-openjdk/management/jmxremote.password | 64 ++ .../management/management.properties | 331 ++++++ java-8-openjdk/management/snmp.acl | 110 ++ java-8-openjdk/net.properties | 101 ++ java-8-openjdk/psfont.properties.ja | 119 +++ java-8-openjdk/psfontj2d.properties | 323 ++++++ java-8-openjdk/security/blacklisted.certs | 20 + java-8-openjdk/security/java.policy | 123 +++ java-8-openjdk/security/java.security | 984 ++++++++++++++++++ java-8-openjdk/security/nss.cfg | 4 + java-8-openjdk/sound.properties | 49 + java-8-openjdk/swing.properties | 2 + rcS.d/S16screen-cleanup | 1 + rcS.d/S16x11-common | 1 + screenrc | 108 ++ shells | 1 + ssl/certs/java/cacerts | Bin 0 -> 178053 bytes 69 files changed, 4446 insertions(+), 1 deletion(-) create mode 100644 .java/.systemPrefs/.system.lock create mode 100644 .java/.systemPrefs/.systemRootModFile create mode 100755 X11/Xreset create mode 100644 X11/Xreset.d/README create mode 100644 X11/Xresources/x11-common create mode 100755 X11/Xsession create mode 100644 X11/Xsession.d/20x11-common_process-args create mode 100644 X11/Xsession.d/30x11-common_xresources create mode 100644 X11/Xsession.d/35x11-common_xhost-local create mode 100644 X11/Xsession.d/40x11-common_xsessionrc create mode 100644 X11/Xsession.d/50x11-common_determine-startup create mode 100644 X11/Xsession.d/90x11-common_ssh-agent create mode 100644 X11/Xsession.d/99x11-common_start create mode 100644 X11/Xsession.options create mode 100644 X11/rgb.txt create mode 120000 alternatives/fonts-japanese-gothic.ttf create mode 120000 alternatives/fonts-japanese-mincho.ttf create mode 120000 alternatives/java create mode 120000 alternatives/java.1.gz create mode 120000 alternatives/jexec create mode 120000 alternatives/jexec-binfmt create mode 120000 alternatives/jjs create mode 120000 alternatives/jjs.1.gz create mode 120000 alternatives/keytool create mode 120000 alternatives/keytool.1.gz create mode 120000 alternatives/orbd create mode 120000 alternatives/orbd.1.gz create mode 120000 alternatives/pack200 create mode 120000 alternatives/pack200.1.gz create mode 120000 alternatives/rmid create mode 120000 alternatives/rmid.1.gz create mode 120000 alternatives/rmiregistry create mode 120000 alternatives/rmiregistry.1.gz create mode 120000 alternatives/servertool create mode 120000 alternatives/servertool.1.gz create mode 120000 alternatives/tnameserv create mode 120000 alternatives/tnameserv.1.gz create mode 120000 alternatives/unpack200 create mode 120000 alternatives/unpack200.1.gz create mode 100755 ca-certificates/update.d/jks-keystore create mode 100644 default/cacerts create mode 100755 init.d/screen-cleanup create mode 100755 init.d/x11-common create mode 100644 java-8-openjdk/accessibility.properties create mode 100644 java-8-openjdk/calendars.properties create mode 100644 java-8-openjdk/content-types.properties create mode 100644 java-8-openjdk/flavormap.properties create mode 100644 java-8-openjdk/images/cursors/cursors.properties create mode 100644 java-8-openjdk/jvm-amd64.cfg create mode 100644 java-8-openjdk/logging.properties create mode 100644 java-8-openjdk/management/jmxremote.access create mode 100644 java-8-openjdk/management/jmxremote.password create mode 100644 java-8-openjdk/management/management.properties create mode 100644 java-8-openjdk/management/snmp.acl create mode 100644 java-8-openjdk/net.properties create mode 100644 java-8-openjdk/psfont.properties.ja create mode 100644 java-8-openjdk/psfontj2d.properties create mode 100644 java-8-openjdk/security/blacklisted.certs create mode 100644 java-8-openjdk/security/java.policy create mode 100644 java-8-openjdk/security/java.security create mode 100644 java-8-openjdk/security/nss.cfg create mode 100644 java-8-openjdk/sound.properties create mode 100644 java-8-openjdk/swing.properties create mode 120000 rcS.d/S16screen-cleanup create mode 120000 rcS.d/S16x11-common create mode 100644 screenrc create mode 100644 ssl/certs/java/cacerts diff --git a/.etckeeper b/.etckeeper index 33b9014..ef71f76 100755 --- a/.etckeeper +++ b/.etckeeper @@ -7,7 +7,6 @@ mkdir -p './apt/preferences.d' mkdir -p './bind/dyn' mkdir -p './bind/zones' mkdir -p './binfmt.d' -mkdir -p './ca-certificates/update.d' mkdir -p './clamav/onerrorexecute.d' mkdir -p './clamav/onupdateexecute.d' mkdir -p './clamav/virusevent.d' @@ -49,12 +48,31 @@ mkdir -p './udev/hwdb.d' maybe chmod 0755 '.' maybe chmod 0700 '.etckeeper' maybe chmod 0600 '.gitignore' +maybe chmod 0755 '.java' +maybe chmod 0755 '.java/.systemPrefs' +maybe chmod 0644 '.java/.systemPrefs/.system.lock' +maybe chmod 0644 '.java/.systemPrefs/.systemRootModFile' maybe chmod 0755 'NetworkManager' maybe chmod 0755 'NetworkManager/dispatcher.d' maybe chmod 0755 'NetworkManager/dispatcher.d/20-chrony' maybe chmod 0755 'X11' +maybe chmod 0755 'X11/Xreset' +maybe chmod 0755 'X11/Xreset.d' +maybe chmod 0644 'X11/Xreset.d/README' +maybe chmod 0755 'X11/Xresources' +maybe chmod 0644 'X11/Xresources/x11-common' +maybe chmod 0755 'X11/Xsession' maybe chmod 0755 'X11/Xsession.d' +maybe chmod 0644 'X11/Xsession.d/20x11-common_process-args' +maybe chmod 0644 'X11/Xsession.d/30x11-common_xresources' +maybe chmod 0644 'X11/Xsession.d/35x11-common_xhost-local' +maybe chmod 0644 'X11/Xsession.d/40x11-common_xsessionrc' +maybe chmod 0644 'X11/Xsession.d/50x11-common_determine-startup' maybe chmod 0644 'X11/Xsession.d/90gpg-agent' +maybe chmod 0644 'X11/Xsession.d/90x11-common_ssh-agent' +maybe chmod 0644 'X11/Xsession.d/99x11-common_start' +maybe chmod 0644 'X11/Xsession.options' +maybe chmod 0644 'X11/rgb.txt' maybe chmod 0755 'X11/xkb' maybe chmod 0755 'acpi' maybe chmod 0755 'acpi/events' @@ -193,6 +211,7 @@ maybe chmod 0755 'binfmt.d' maybe chmod 0755 'ca-certificates' maybe chmod 0644 'ca-certificates.conf' maybe chmod 0755 'ca-certificates/update.d' +maybe chmod 0755 'ca-certificates/update.d/jks-keystore' maybe chmod 0755 'calendar' maybe chmod 0644 'calendar/default' maybe chmod 0755 'chrony' @@ -297,6 +316,7 @@ maybe chmod 0644 'default/amavis-mc' maybe chmod 0644 'default/amavisd-snmp-subagent' maybe chmod 0644 'default/bind9' maybe chmod 0644 'default/bsdmainutils' +maybe chmod 0600 'default/cacerts' maybe chmod 0644 'default/chrony' maybe chmod 0644 'default/console-setup' maybe chmod 0644 'default/cron' @@ -779,6 +799,7 @@ maybe chmod 0755 'init.d/rmnologin' maybe chmod 0755 'init.d/rsync' maybe chmod 0755 'init.d/rsyslog' maybe chmod 0755 'init.d/salt-minion' +maybe chmod 0755 'init.d/screen-cleanup' maybe chmod 0755 'init.d/sendsigs' maybe chmod 0755 'init.d/single' maybe chmod 0644 'init.d/skeleton' @@ -793,6 +814,7 @@ maybe chmod 0755 'init.d/umountnfs.sh' maybe chmod 0755 'init.d/umountroot' maybe chmod 0755 'init.d/urandom' maybe chmod 0755 'init.d/uwsgi' +maybe chmod 0755 'init.d/x11-common' maybe chmod 0644 'init/network-interface-container.conf' maybe chmod 0644 'init/network-interface-security.conf' maybe chmod 0644 'init/network-interface.conf' @@ -851,6 +873,31 @@ maybe chmod 0755 'iscsi' maybe chmod 0600 'iscsi/iscsid.conf' maybe chmod 0644 'issue' maybe chmod 0644 'issue.net' +maybe chmod 0755 'java-8-openjdk' +maybe chmod 0644 'java-8-openjdk/accessibility.properties' +maybe chmod 0644 'java-8-openjdk/calendars.properties' +maybe chmod 0644 'java-8-openjdk/content-types.properties' +maybe chmod 0644 'java-8-openjdk/flavormap.properties' +maybe chmod 0755 'java-8-openjdk/images' +maybe chmod 0755 'java-8-openjdk/images/cursors' +maybe chmod 0644 'java-8-openjdk/images/cursors/cursors.properties' +maybe chmod 0644 'java-8-openjdk/jvm-amd64.cfg' +maybe chmod 0644 'java-8-openjdk/logging.properties' +maybe chmod 0755 'java-8-openjdk/management' +maybe chmod 0644 'java-8-openjdk/management/jmxremote.access' +maybe chmod 0644 'java-8-openjdk/management/jmxremote.password' +maybe chmod 0644 'java-8-openjdk/management/management.properties' +maybe chmod 0644 'java-8-openjdk/management/snmp.acl' +maybe chmod 0644 'java-8-openjdk/net.properties' +maybe chmod 0644 'java-8-openjdk/psfont.properties.ja' +maybe chmod 0644 'java-8-openjdk/psfontj2d.properties' +maybe chmod 0755 'java-8-openjdk/security' +maybe chmod 0644 'java-8-openjdk/security/blacklisted.certs' +maybe chmod 0644 'java-8-openjdk/security/java.policy' +maybe chmod 0644 'java-8-openjdk/security/java.security' +maybe chmod 0644 'java-8-openjdk/security/nss.cfg' +maybe chmod 0644 'java-8-openjdk/sound.properties' +maybe chmod 0644 'java-8-openjdk/swing.properties' maybe chmod 0755 'kbd' maybe chmod 0644 'kbd/config' maybe chmod 0644 'kbd/remap' @@ -1301,6 +1348,7 @@ maybe chmod 0644 'salt/pki/minion/minion.pub' maybe chmod 0644 'salt/pki/minion/minion_master.pub' maybe chmod 0644 'salt/proxy' maybe chmod 0755 'salt/proxy.d' +maybe chmod 0644 'screenrc' maybe chmod 0644 'securetty' maybe chmod 0755 'security' maybe chmod 0644 'security/access.conf' @@ -1361,6 +1409,8 @@ maybe chmod 0755 'ssl' maybe chmod 0755 'ssl/certs' maybe chmod 0644 'ssl/certs/ca-certificates.crt' maybe chmod 0644 'ssl/certs/iRedMail.crt' +maybe chmod 0755 'ssl/certs/java' +maybe chmod 0644 'ssl/certs/java/cacerts' maybe chmod 0644 'ssl/certs/ssl-cert-snakeoil.pem' maybe chmod 0644 'ssl/dh2048_param.pem' maybe chmod 0644 'ssl/dh512_param.pem' diff --git a/.java/.systemPrefs/.system.lock b/.java/.systemPrefs/.system.lock new file mode 100644 index 0000000..e69de29 diff --git a/.java/.systemPrefs/.systemRootModFile b/.java/.systemPrefs/.systemRootModFile new file mode 100644 index 0000000..e69de29 diff --git a/X11/Xreset b/X11/Xreset new file mode 100755 index 0000000..7a0974c --- /dev/null +++ b/X11/Xreset @@ -0,0 +1,34 @@ +#!/bin/sh +# +# /etc/X11/Xreset +# +# global Xreset file -- for use by display managers + +# $Id: Xsession 967 2005-12-27 07:20:55Z dnusinow $ + +set -e + +PROGNAME=Xreset +SYSSESSIONDIR=/etc/X11/Xreset.d + +if [ ! -d "$SYSSESSIONDIR" ]; then + # Nothing to do, exiting + exit 0 +fi + +# use run-parts to source every file in the session directory; we source +# instead of executing so that the variables and functions defined above +# are available to the scripts, and so that they can pass variables to each +# other +SESSIONFILES=$(run-parts --list $SYSSESSIONDIR) +if [ -n "$SESSIONFILES" ]; then + set +e + for SESSIONFILE in $SESSIONFILES; do + . $SESSIONFILE + done + set -e +fi + +exit 0 + +# vim:set ai et sts=2 sw=2 tw=80: diff --git a/X11/Xreset.d/README b/X11/Xreset.d/README new file mode 100644 index 0000000..3c03f42 --- /dev/null +++ b/X11/Xreset.d/README @@ -0,0 +1,4 @@ +# Scripts in this directory are executed as root when a user log out from +# a display manager using /etc/X11/Xreset. +# The username of the user logging out is provided in the $USER environment +# variable. diff --git a/X11/Xresources/x11-common b/X11/Xresources/x11-common new file mode 100644 index 0000000..7641207 --- /dev/null +++ b/X11/Xresources/x11-common @@ -0,0 +1,10 @@ +! $Id$ + +! load color-specific resources for clients that have them +#ifdef COLOR +*customization: -color +#endif + +! make Xaw (Athena widget set) clients understand the delete key +! this causes problems with some non-Xaw apps, use with care +! *Text.translations: #override ~Shift ~Meta Delete: delete-next-character() diff --git a/X11/Xsession b/X11/Xsession new file mode 100755 index 0000000..6ad7d6e --- /dev/null +++ b/X11/Xsession @@ -0,0 +1,113 @@ +#!/bin/sh +# +# /etc/X11/Xsession +# +# global Xsession file -- used by display managers and xinit (startx) + +# $Id: Xsession 967 2005-12-27 07:20:55Z dnusinow $ + +set -e + +PROGNAME=Xsession + +message () { + # pretty-print messages of arbitrary length; use xmessage if it + # is available and $DISPLAY is set + MESSAGE="$PROGNAME: $*" + echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2 + if [ -n "$DISPLAY" ] && which xmessage > /dev/null 2>&1; then + echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} | xmessage -center -file - + fi +} + +message_nonl () { + # pretty-print messages of arbitrary length (no trailing newline); use + # xmessage if it is available and $DISPLAY is set + MESSAGE="$PROGNAME: $*" + echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2; + if [ -n "$DISPLAY" ] && which xmessage > /dev/null 2>&1; then + echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} | xmessage -center -file - + fi +} + +errormsg () { + # exit script with error + message "$*" + exit 1 +} + +internal_errormsg () { + # exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message + # One big call to message() for the sake of xmessage; if we had two then + # the user would have dismissed the error we want reported before seeing the + # request to report it. + errormsg "$*" \ + "Please report the installed version of the \"x11-common\"" \ + "package and the complete text of this error message to" \ + "." +} + +# initialize variables for use by all session scripts + +OPTIONFILE=/etc/X11/Xsession.options + +SYSRESOURCES=/etc/X11/Xresources +USRRESOURCES=$HOME/.Xresources + +SYSSESSIONDIR=/etc/X11/Xsession.d +USERXSESSION=$HOME/.xsession +USERXSESSIONRC=$HOME/.xsessionrc +ALTUSERXSESSION=$HOME/.Xsession +ERRFILE=$HOME/.xsession-errors + +# attempt to create an error file; abort if we cannot +if (umask 077 && touch "$ERRFILE") 2> /dev/null && [ -w "$ERRFILE" ] && + [ ! -L "$ERRFILE" ]; then + chmod 600 "$ERRFILE" +elif ERRFILE=$(tempfile 2> /dev/null); then + if ! ln -sf "$ERRFILE" "${TMPDIR:=/tmp}/xsession-$USER"; then + message "warning: unable to symlink \"$TMPDIR/xsession-$USER\" to" \ + "\"$ERRFILE\"; look for session log/errors in" \ + "\"$TMPDIR/xsession-$USER\"." + fi +else + errormsg "unable to create X session log/error file; aborting." +fi + +exec >>"$ERRFILE" 2>&1 + +echo "$PROGNAME: X session started for $LOGNAME at $(date)" + +# sanity check; is our session script directory present? +if [ ! -d "$SYSSESSIONDIR" ]; then + errormsg "no \"$SYSSESSIONDIR\" directory found; aborting." +fi + +# Attempt to create a file of non-zero length in /tmp; a full filesystem can +# cause mysterious X session failures. We do not use touch, :, or test -w +# because they won't actually create a file with contents. We also let standard +# error from tempfile and echo go to the error file to aid the user in +# determining what went wrong. +WRITE_TEST=$(tempfile) +if ! echo "*" >>"$WRITE_TEST"; then + message "warning: unable to write to ${WRITE_TEST%/*}; X session may exit" \ + "with an error" +fi +rm -f "$WRITE_TEST" + +# use run-parts to source every file in the session directory; we source +# instead of executing so that the variables and functions defined above +# are available to the scripts, and so that they can pass variables to each +# other +SESSIONFILES=$(run-parts --list $SYSSESSIONDIR) +if [ -n "$SESSIONFILES" ]; then + set +e + for SESSIONFILE in $SESSIONFILES; do + . $SESSIONFILE + done + set -e +fi + +exit 0 + +# vim:set ai et sts=2 sw=2 tw=80: diff --git a/X11/Xsession.d/20x11-common_process-args b/X11/Xsession.d/20x11-common_process-args new file mode 100644 index 0000000..93e4653 --- /dev/null +++ b/X11/Xsession.d/20x11-common_process-args @@ -0,0 +1,70 @@ +# $Id: 20x11-common_process-args 305 2005-07-03 18:51:43Z dnusinow $ + +# This file is sourced by Xsession(5), not executed. + +# read OPTIONFILE +OPTIONS=$(cat "$OPTIONFILE") || true + +has_option() { + if [ "${OPTIONS#* +$1}" != "$OPTIONS" ]; then + return 0 + else + return 1 + fi +} + +# Determine how many arguments were provided. +case $# in + 0) + # No arguments given; use default behavior. + ;; + 1) + # One argument given; see what it was. + case "$1" in + failsafe) + # Failsafe session was requested. + if has_option allow-failsafe; then + if [ -e /usr/bin/x-terminal-emulator ]; then + if [ -x /usr/bin/x-terminal-emulator ]; then + exec x-terminal-emulator -geometry +1+1 + else + # fatal error + errormsg "unable to launch failsafe X session ---" \ + "x-terminal-emulator not executable; aborting." + fi + else + # fatal error + errormsg "unable to launch failsafe X session ---" \ + "x-terminal-emulator not found; aborting." + fi + fi + ;; + default) + # Default behavior was requested. + ;; + *) + # Specific program was requested. + STARTUP_FULL_PATH=$(/usr/bin/which "$1" || true) + if [ -n "$STARTUP_FULL_PATH" ] && [ -e "$STARTUP_FULL_PATH" ]; then + if [ -x "$STARTUP_FULL_PATH" ]; then + STARTUP="$1" + else + message "unable to launch \"$1\" X session ---" \ + "\"$1\" not executable; falling back to default session." + fi + else + message "unable to launch \"$1\" X session ---" \ + "\"$1\" not found; falling back to default session." + fi + ;; + esac + ;; + *) + # More than one argument given; we don't know what to do. + message "unsupported number of arguments ($#); falling back to default" \ + "session." + ;; +esac + +# vim:set ai et sts=2 sw=2 tw=80: diff --git a/X11/Xsession.d/30x11-common_xresources b/X11/Xsession.d/30x11-common_xresources new file mode 100644 index 0000000..c3f53a8 --- /dev/null +++ b/X11/Xsession.d/30x11-common_xresources @@ -0,0 +1,26 @@ +# $Id: 30x11-common_xresources 305 2005-07-03 18:51:43Z dnusinow $ + +# This file is sourced by Xsession(5), not executed. + +# If xrdb (from xbase-clients) is installed, merge system-wide X resources. +# Then merge the user's X resources, if the options file is so configured. +if [ -d "$SYSRESOURCES" ] && type xrdb >/dev/null 2>&1; then + RESOURCEFILES=$(run-parts --list $SYSRESOURCES) + if [ -n "$RESOURCEFILES" ]; then + for RESOURCEFILE in $RESOURCEFILES; do + xrdb -merge $RESOURCEFILE + done + fi +fi + +if has_option allow-user-resources && [ -f "$USRRESOURCES" ]; then + if type xrdb >/dev/null 2>&1; then + xrdb -merge $USRRESOURCES + else + # Comment out this command if you desire a legacy-free X environment, and find + # the warning spurious. + message "warning: xrdb command not found; X resources not merged." + fi +fi + +# vim:set ai et sts=2 sw=2 tw=80: diff --git a/X11/Xsession.d/35x11-common_xhost-local b/X11/Xsession.d/35x11-common_xhost-local new file mode 100644 index 0000000..d127a6c --- /dev/null +++ b/X11/Xsession.d/35x11-common_xhost-local @@ -0,0 +1,10 @@ +# This file is sourced by Xsession(5), not executed. + +# If xhost (from x11-xserver-utils) is installed, use it to give access +# to the X server to any process from the same user on the local host. +# Unlike other uses of xhost, this is safe since the kernel can check +# the actual owner of the calling process. + +if type xhost >/dev/null 2>&1; then + xhost +si:localuser:$(id -un) || : +fi diff --git a/X11/Xsession.d/40x11-common_xsessionrc b/X11/Xsession.d/40x11-common_xsessionrc new file mode 100644 index 0000000..305f363 --- /dev/null +++ b/X11/Xsession.d/40x11-common_xsessionrc @@ -0,0 +1,6 @@ +# This file is sourced by Xsession(5), not executed. + +#Source user defined xsessionrc (locales and other environment variables) +if [ -r "$USERXSESSIONRC" ]; then + . "$USERXSESSIONRC" +fi diff --git a/X11/Xsession.d/50x11-common_determine-startup b/X11/Xsession.d/50x11-common_determine-startup new file mode 100644 index 0000000..4e13505 --- /dev/null +++ b/X11/Xsession.d/50x11-common_determine-startup @@ -0,0 +1,47 @@ +# $Id: 50x11-common_determine-startup 305 2005-07-03 18:51:43Z dnusinow $ + +# This file is sourced by Xsession(5), not executed. + +# If no X session startup program was passed to the Xsession script as an +# argument (e.g., by the display manager), or if that program was not +# executable, fall back to looking for a user's custom X session script, if +# allowed by the options file. +if [ -z "$STARTUP" ]; then + if has_option allow-user-xsession; then + for STARTUPFILE in "$USERXSESSION" "$ALTUSERXSESSION"; do + if [ -e "$STARTUPFILE" ]; then + if [ -x "$STARTUPFILE" ]; then + STARTUP="$STARTUPFILE" + else + shell=${SHELL:-sh} + STARTUP="$shell $STARTUPFILE" + fi + break + fi + done + fi +fi + +# If there is still nothing to use for a startup program, try the system +# default session manager, window manager, and terminal emulator. +if [ -z "$STARTUP" ]; then + if [ -x /usr/bin/x-session-manager ]; then + STARTUP=x-session-manager + elif [ -x /usr/bin/x-window-manager ]; then + STARTUP=x-window-manager + elif [ -x /usr/bin/x-terminal-emulator ]; then + STARTUP=x-terminal-emulator + fi +fi + +# If we still have not found a startup program, give up. +if [ -z "$STARTUP" ]; then + ERRMSG="unable to start X session ---" + if has_option allow-user-xsession; then + ERRMSG="$ERRMSG no \"$USERXSESSION\" file, no \"$ALTUSERXSESSION\" file," + fi + errormsg "$ERRMSG no session managers, no window managers, and no terminal" \ + "emulators found; aborting." +fi + +# vim:set ai et sts=2 sw=2 tw=80: diff --git a/X11/Xsession.d/90x11-common_ssh-agent b/X11/Xsession.d/90x11-common_ssh-agent new file mode 100644 index 0000000..5397434 --- /dev/null +++ b/X11/Xsession.d/90x11-common_ssh-agent @@ -0,0 +1,24 @@ +# $Id: 90x11-common_ssh-agent 305 2005-07-03 18:51:43Z dnusinow $ + +# This file is sourced by Xsession(5), not executed. + +STARTSSH= +SSHAGENT=/usr/bin/ssh-agent +SSHAGENTARGS= + +if has_option use-ssh-agent; then + if [ -x "$SSHAGENT" ] && [ -z "$SSH_AUTH_SOCK" ] \ + && [ -z "$SSH2_AUTH_SOCK" ]; then + STARTSSH=yes + if [ -f /usr/bin/ssh-add1 ] && cmp -s $SSHAGENT /usr/bin/ssh-agent2; then + # use ssh-agent2's ssh-agent1 compatibility mode + SSHAGENTARGS=-1 + fi + fi +fi + +if [ -n "$STARTSSH" ]; then + STARTUP="$SSHAGENT $SSHAGENTARGS ${TMPDIR:+env TMPDIR=$TMPDIR} $STARTUP" +fi + +# vim:set ai et sts=2 sw=2 tw=80: diff --git a/X11/Xsession.d/99x11-common_start b/X11/Xsession.d/99x11-common_start new file mode 100644 index 0000000..36a9652 --- /dev/null +++ b/X11/Xsession.d/99x11-common_start @@ -0,0 +1,7 @@ +# $Id: 99x11-common_start 305 2005-07-03 18:51:43Z dnusinow $ + +# This file is sourced by Xsession(5), not executed. + +exec $STARTUP + +# vim:set ai et sts=2 sw=2 tw=80: diff --git a/X11/Xsession.options b/X11/Xsession.options new file mode 100644 index 0000000..fc45bf9 --- /dev/null +++ b/X11/Xsession.options @@ -0,0 +1,9 @@ +# $Id: Xsession.options 189 2005-06-11 00:04:27Z branden $ +# +# configuration options for /etc/X11/Xsession +# See Xsession.options(5) for an explanation of the available options. +allow-failsafe +allow-user-resources +allow-user-xsession +use-ssh-agent +use-session-dbus diff --git a/X11/rgb.txt b/X11/rgb.txt new file mode 100644 index 0000000..b9e56c6 --- /dev/null +++ b/X11/rgb.txt @@ -0,0 +1,754 @@ +! $Xorg: rgb.txt,v 1.3 2000/08/17 19:54:00 cpqbld Exp $ +255 250 250 snow +248 248 255 ghost white +248 248 255 GhostWhite +245 245 245 white smoke +245 245 245 WhiteSmoke +220 220 220 gainsboro +255 250 240 floral white +255 250 240 FloralWhite +253 245 230 old lace +253 245 230 OldLace +250 240 230 linen +250 235 215 antique white +250 235 215 AntiqueWhite +255 239 213 papaya whip +255 239 213 PapayaWhip +255 235 205 blanched almond +255 235 205 BlanchedAlmond +255 228 196 bisque +255 218 185 peach puff +255 218 185 PeachPuff +255 222 173 navajo white +255 222 173 NavajoWhite +255 228 181 moccasin +255 248 220 cornsilk +255 255 240 ivory +255 250 205 lemon chiffon +255 250 205 LemonChiffon +255 245 238 seashell +240 255 240 honeydew +245 255 250 mint cream +245 255 250 MintCream +240 255 255 azure +240 248 255 alice blue +240 248 255 AliceBlue +230 230 250 lavender +255 240 245 lavender blush +255 240 245 LavenderBlush +255 228 225 misty rose +255 228 225 MistyRose +255 255 255 white + 0 0 0 black + 47 79 79 dark slate gray + 47 79 79 DarkSlateGray + 47 79 79 dark slate grey + 47 79 79 DarkSlateGrey +105 105 105 dim gray +105 105 105 DimGray +105 105 105 dim grey +105 105 105 DimGrey +112 128 144 slate gray +112 128 144 SlateGray +112 128 144 slate grey +112 128 144 SlateGrey +119 136 153 light slate gray +119 136 153 LightSlateGray +119 136 153 light slate grey +119 136 153 LightSlateGrey +190 190 190 gray +190 190 190 grey +211 211 211 light grey +211 211 211 LightGrey +211 211 211 light gray +211 211 211 LightGray + 25 25 112 midnight blue + 25 25 112 MidnightBlue + 0 0 128 navy + 0 0 128 navy blue + 0 0 128 NavyBlue +100 149 237 cornflower blue +100 149 237 CornflowerBlue + 72 61 139 dark slate blue + 72 61 139 DarkSlateBlue +106 90 205 slate blue +106 90 205 SlateBlue +123 104 238 medium slate blue +123 104 238 MediumSlateBlue +132 112 255 light slate blue +132 112 255 LightSlateBlue + 0 0 205 medium blue + 0 0 205 MediumBlue + 65 105 225 royal blue + 65 105 225 RoyalBlue + 0 0 255 blue + 30 144 255 dodger blue + 30 144 255 DodgerBlue + 0 191 255 deep sky blue + 0 191 255 DeepSkyBlue +135 206 235 sky blue +135 206 235 SkyBlue +135 206 250 light sky blue +135 206 250 LightSkyBlue + 70 130 180 steel blue + 70 130 180 SteelBlue +176 196 222 light steel blue +176 196 222 LightSteelBlue +173 216 230 light blue +173 216 230 LightBlue +176 224 230 powder blue +176 224 230 PowderBlue +175 238 238 pale turquoise +175 238 238 PaleTurquoise + 0 206 209 dark turquoise + 0 206 209 DarkTurquoise + 72 209 204 medium turquoise + 72 209 204 MediumTurquoise + 64 224 208 turquoise + 0 255 255 cyan +224 255 255 light cyan +224 255 255 LightCyan + 95 158 160 cadet blue + 95 158 160 CadetBlue +102 205 170 medium aquamarine +102 205 170 MediumAquamarine +127 255 212 aquamarine + 0 100 0 dark green + 0 100 0 DarkGreen + 85 107 47 dark olive green + 85 107 47 DarkOliveGreen +143 188 143 dark sea green +143 188 143 DarkSeaGreen + 46 139 87 sea green + 46 139 87 SeaGreen + 60 179 113 medium sea green + 60 179 113 MediumSeaGreen + 32 178 170 light sea green + 32 178 170 LightSeaGreen +152 251 152 pale green +152 251 152 PaleGreen + 0 255 127 spring green + 0 255 127 SpringGreen +124 252 0 lawn green +124 252 0 LawnGreen + 0 255 0 green +127 255 0 chartreuse + 0 250 154 medium spring green + 0 250 154 MediumSpringGreen +173 255 47 green yellow +173 255 47 GreenYellow + 50 205 50 lime green + 50 205 50 LimeGreen +154 205 50 yellow green +154 205 50 YellowGreen + 34 139 34 forest green + 34 139 34 ForestGreen +107 142 35 olive drab +107 142 35 OliveDrab +189 183 107 dark khaki +189 183 107 DarkKhaki +240 230 140 khaki +238 232 170 pale goldenrod +238 232 170 PaleGoldenrod +250 250 210 light goldenrod yellow +250 250 210 LightGoldenrodYellow +255 255 224 light yellow +255 255 224 LightYellow +255 255 0 yellow +255 215 0 gold +238 221 130 light goldenrod +238 221 130 LightGoldenrod +218 165 32 goldenrod +184 134 11 dark goldenrod +184 134 11 DarkGoldenrod +188 143 143 rosy brown +188 143 143 RosyBrown +205 92 92 indian red +205 92 92 IndianRed +139 69 19 saddle brown +139 69 19 SaddleBrown +160 82 45 sienna +205 133 63 peru +222 184 135 burlywood +245 245 220 beige +245 222 179 wheat +244 164 96 sandy brown +244 164 96 SandyBrown +210 180 140 tan +210 105 30 chocolate +178 34 34 firebrick +165 42 42 brown +233 150 122 dark salmon +233 150 122 DarkSalmon +250 128 114 salmon +255 160 122 light salmon +255 160 122 LightSalmon +255 165 0 orange +255 140 0 dark orange +255 140 0 DarkOrange +255 127 80 coral +240 128 128 light coral +240 128 128 LightCoral +255 99 71 tomato +255 69 0 orange red +255 69 0 OrangeRed +255 0 0 red +255 105 180 hot pink +255 105 180 HotPink +255 20 147 deep pink +255 20 147 DeepPink +255 192 203 pink +255 182 193 light pink +255 182 193 LightPink +219 112 147 pale violet red +219 112 147 PaleVioletRed +176 48 96 maroon +199 21 133 medium violet red +199 21 133 MediumVioletRed +208 32 144 violet red +208 32 144 VioletRed +255 0 255 magenta +238 130 238 violet +221 160 221 plum +218 112 214 orchid +186 85 211 medium orchid +186 85 211 MediumOrchid +153 50 204 dark orchid +153 50 204 DarkOrchid +148 0 211 dark violet +148 0 211 DarkViolet +138 43 226 blue violet +138 43 226 BlueViolet +160 32 240 purple +147 112 219 medium purple +147 112 219 MediumPurple +216 191 216 thistle +255 250 250 snow1 +238 233 233 snow2 +205 201 201 snow3 +139 137 137 snow4 +255 245 238 seashell1 +238 229 222 seashell2 +205 197 191 seashell3 +139 134 130 seashell4 +255 239 219 AntiqueWhite1 +238 223 204 AntiqueWhite2 +205 192 176 AntiqueWhite3 +139 131 120 AntiqueWhite4 +255 228 196 bisque1 +238 213 183 bisque2 +205 183 158 bisque3 +139 125 107 bisque4 +255 218 185 PeachPuff1 +238 203 173 PeachPuff2 +205 175 149 PeachPuff3 +139 119 101 PeachPuff4 +255 222 173 NavajoWhite1 +238 207 161 NavajoWhite2 +205 179 139 NavajoWhite3 +139 121 94 NavajoWhite4 +255 250 205 LemonChiffon1 +238 233 191 LemonChiffon2 +205 201 165 LemonChiffon3 +139 137 112 LemonChiffon4 +255 248 220 cornsilk1 +238 232 205 cornsilk2 +205 200 177 cornsilk3 +139 136 120 cornsilk4 +255 255 240 ivory1 +238 238 224 ivory2 +205 205 193 ivory3 +139 139 131 ivory4 +240 255 240 honeydew1 +224 238 224 honeydew2 +193 205 193 honeydew3 +131 139 131 honeydew4 +255 240 245 LavenderBlush1 +238 224 229 LavenderBlush2 +205 193 197 LavenderBlush3 +139 131 134 LavenderBlush4 +255 228 225 MistyRose1 +238 213 210 MistyRose2 +205 183 181 MistyRose3 +139 125 123 MistyRose4 +240 255 255 azure1 +224 238 238 azure2 +193 205 205 azure3 +131 139 139 azure4 +131 111 255 SlateBlue1 +122 103 238 SlateBlue2 +105 89 205 SlateBlue3 + 71 60 139 SlateBlue4 + 72 118 255 RoyalBlue1 + 67 110 238 RoyalBlue2 + 58 95 205 RoyalBlue3 + 39 64 139 RoyalBlue4 + 0 0 255 blue1 + 0 0 238 blue2 + 0 0 205 blue3 + 0 0 139 blue4 + 30 144 255 DodgerBlue1 + 28 134 238 DodgerBlue2 + 24 116 205 DodgerBlue3 + 16 78 139 DodgerBlue4 + 99 184 255 SteelBlue1 + 92 172 238 SteelBlue2 + 79 148 205 SteelBlue3 + 54 100 139 SteelBlue4 + 0 191 255 DeepSkyBlue1 + 0 178 238 DeepSkyBlue2 + 0 154 205 DeepSkyBlue3 + 0 104 139 DeepSkyBlue4 +135 206 255 SkyBlue1 +126 192 238 SkyBlue2 +108 166 205 SkyBlue3 + 74 112 139 SkyBlue4 +176 226 255 LightSkyBlue1 +164 211 238 LightSkyBlue2 +141 182 205 LightSkyBlue3 + 96 123 139 LightSkyBlue4 +198 226 255 SlateGray1 +185 211 238 SlateGray2 +159 182 205 SlateGray3 +108 123 139 SlateGray4 +202 225 255 LightSteelBlue1 +188 210 238 LightSteelBlue2 +162 181 205 LightSteelBlue3 +110 123 139 LightSteelBlue4 +191 239 255 LightBlue1 +178 223 238 LightBlue2 +154 192 205 LightBlue3 +104 131 139 LightBlue4 +224 255 255 LightCyan1 +209 238 238 LightCyan2 +180 205 205 LightCyan3 +122 139 139 LightCyan4 +187 255 255 PaleTurquoise1 +174 238 238 PaleTurquoise2 +150 205 205 PaleTurquoise3 +102 139 139 PaleTurquoise4 +152 245 255 CadetBlue1 +142 229 238 CadetBlue2 +122 197 205 CadetBlue3 + 83 134 139 CadetBlue4 + 0 245 255 turquoise1 + 0 229 238 turquoise2 + 0 197 205 turquoise3 + 0 134 139 turquoise4 + 0 255 255 cyan1 + 0 238 238 cyan2 + 0 205 205 cyan3 + 0 139 139 cyan4 +151 255 255 DarkSlateGray1 +141 238 238 DarkSlateGray2 +121 205 205 DarkSlateGray3 + 82 139 139 DarkSlateGray4 +127 255 212 aquamarine1 +118 238 198 aquamarine2 +102 205 170 aquamarine3 + 69 139 116 aquamarine4 +193 255 193 DarkSeaGreen1 +180 238 180 DarkSeaGreen2 +155 205 155 DarkSeaGreen3 +105 139 105 DarkSeaGreen4 + 84 255 159 SeaGreen1 + 78 238 148 SeaGreen2 + 67 205 128 SeaGreen3 + 46 139 87 SeaGreen4 +154 255 154 PaleGreen1 +144 238 144 PaleGreen2 +124 205 124 PaleGreen3 + 84 139 84 PaleGreen4 + 0 255 127 SpringGreen1 + 0 238 118 SpringGreen2 + 0 205 102 SpringGreen3 + 0 139 69 SpringGreen4 + 0 255 0 green1 + 0 238 0 green2 + 0 205 0 green3 + 0 139 0 green4 +127 255 0 chartreuse1 +118 238 0 chartreuse2 +102 205 0 chartreuse3 + 69 139 0 chartreuse4 +192 255 62 OliveDrab1 +179 238 58 OliveDrab2 +154 205 50 OliveDrab3 +105 139 34 OliveDrab4 +202 255 112 DarkOliveGreen1 +188 238 104 DarkOliveGreen2 +162 205 90 DarkOliveGreen3 +110 139 61 DarkOliveGreen4 +255 246 143 khaki1 +238 230 133 khaki2 +205 198 115 khaki3 +139 134 78 khaki4 +255 236 139 LightGoldenrod1 +238 220 130 LightGoldenrod2 +205 190 112 LightGoldenrod3 +139 129 76 LightGoldenrod4 +255 255 224 LightYellow1 +238 238 209 LightYellow2 +205 205 180 LightYellow3 +139 139 122 LightYellow4 +255 255 0 yellow1 +238 238 0 yellow2 +205 205 0 yellow3 +139 139 0 yellow4 +255 215 0 gold1 +238 201 0 gold2 +205 173 0 gold3 +139 117 0 gold4 +255 193 37 goldenrod1 +238 180 34 goldenrod2 +205 155 29 goldenrod3 +139 105 20 goldenrod4 +255 185 15 DarkGoldenrod1 +238 173 14 DarkGoldenrod2 +205 149 12 DarkGoldenrod3 +139 101 8 DarkGoldenrod4 +255 193 193 RosyBrown1 +238 180 180 RosyBrown2 +205 155 155 RosyBrown3 +139 105 105 RosyBrown4 +255 106 106 IndianRed1 +238 99 99 IndianRed2 +205 85 85 IndianRed3 +139 58 58 IndianRed4 +255 130 71 sienna1 +238 121 66 sienna2 +205 104 57 sienna3 +139 71 38 sienna4 +255 211 155 burlywood1 +238 197 145 burlywood2 +205 170 125 burlywood3 +139 115 85 burlywood4 +255 231 186 wheat1 +238 216 174 wheat2 +205 186 150 wheat3 +139 126 102 wheat4 +255 165 79 tan1 +238 154 73 tan2 +205 133 63 tan3 +139 90 43 tan4 +255 127 36 chocolate1 +238 118 33 chocolate2 +205 102 29 chocolate3 +139 69 19 chocolate4 +255 48 48 firebrick1 +238 44 44 firebrick2 +205 38 38 firebrick3 +139 26 26 firebrick4 +255 64 64 brown1 +238 59 59 brown2 +205 51 51 brown3 +139 35 35 brown4 +255 140 105 salmon1 +238 130 98 salmon2 +205 112 84 salmon3 +139 76 57 salmon4 +255 160 122 LightSalmon1 +238 149 114 LightSalmon2 +205 129 98 LightSalmon3 +139 87 66 LightSalmon4 +255 165 0 orange1 +238 154 0 orange2 +205 133 0 orange3 +139 90 0 orange4 +255 127 0 DarkOrange1 +238 118 0 DarkOrange2 +205 102 0 DarkOrange3 +139 69 0 DarkOrange4 +255 114 86 coral1 +238 106 80 coral2 +205 91 69 coral3 +139 62 47 coral4 +255 99 71 tomato1 +238 92 66 tomato2 +205 79 57 tomato3 +139 54 38 tomato4 +255 69 0 OrangeRed1 +238 64 0 OrangeRed2 +205 55 0 OrangeRed3 +139 37 0 OrangeRed4 +255 0 0 red1 +238 0 0 red2 +205 0 0 red3 +139 0 0 red4 +215 7 81 DebianRed +255 20 147 DeepPink1 +238 18 137 DeepPink2 +205 16 118 DeepPink3 +139 10 80 DeepPink4 +255 110 180 HotPink1 +238 106 167 HotPink2 +205 96 144 HotPink3 +139 58 98 HotPink4 +255 181 197 pink1 +238 169 184 pink2 +205 145 158 pink3 +139 99 108 pink4 +255 174 185 LightPink1 +238 162 173 LightPink2 +205 140 149 LightPink3 +139 95 101 LightPink4 +255 130 171 PaleVioletRed1 +238 121 159 PaleVioletRed2 +205 104 137 PaleVioletRed3 +139 71 93 PaleVioletRed4 +255 52 179 maroon1 +238 48 167 maroon2 +205 41 144 maroon3 +139 28 98 maroon4 +255 62 150 VioletRed1 +238 58 140 VioletRed2 +205 50 120 VioletRed3 +139 34 82 VioletRed4 +255 0 255 magenta1 +238 0 238 magenta2 +205 0 205 magenta3 +139 0 139 magenta4 +255 131 250 orchid1 +238 122 233 orchid2 +205 105 201 orchid3 +139 71 137 orchid4 +255 187 255 plum1 +238 174 238 plum2 +205 150 205 plum3 +139 102 139 plum4 +224 102 255 MediumOrchid1 +209 95 238 MediumOrchid2 +180 82 205 MediumOrchid3 +122 55 139 MediumOrchid4 +191 62 255 DarkOrchid1 +178 58 238 DarkOrchid2 +154 50 205 DarkOrchid3 +104 34 139 DarkOrchid4 +155 48 255 purple1 +145 44 238 purple2 +125 38 205 purple3 + 85 26 139 purple4 +171 130 255 MediumPurple1 +159 121 238 MediumPurple2 +137 104 205 MediumPurple3 + 93 71 139 MediumPurple4 +255 225 255 thistle1 +238 210 238 thistle2 +205 181 205 thistle3 +139 123 139 thistle4 + 0 0 0 gray0 + 0 0 0 grey0 + 3 3 3 gray1 + 3 3 3 grey1 + 5 5 5 gray2 + 5 5 5 grey2 + 8 8 8 gray3 + 8 8 8 grey3 + 10 10 10 gray4 + 10 10 10 grey4 + 13 13 13 gray5 + 13 13 13 grey5 + 15 15 15 gray6 + 15 15 15 grey6 + 18 18 18 gray7 + 18 18 18 grey7 + 20 20 20 gray8 + 20 20 20 grey8 + 23 23 23 gray9 + 23 23 23 grey9 + 26 26 26 gray10 + 26 26 26 grey10 + 28 28 28 gray11 + 28 28 28 grey11 + 31 31 31 gray12 + 31 31 31 grey12 + 33 33 33 gray13 + 33 33 33 grey13 + 36 36 36 gray14 + 36 36 36 grey14 + 38 38 38 gray15 + 38 38 38 grey15 + 41 41 41 gray16 + 41 41 41 grey16 + 43 43 43 gray17 + 43 43 43 grey17 + 46 46 46 gray18 + 46 46 46 grey18 + 48 48 48 gray19 + 48 48 48 grey19 + 51 51 51 gray20 + 51 51 51 grey20 + 54 54 54 gray21 + 54 54 54 grey21 + 56 56 56 gray22 + 56 56 56 grey22 + 59 59 59 gray23 + 59 59 59 grey23 + 61 61 61 gray24 + 61 61 61 grey24 + 64 64 64 gray25 + 64 64 64 grey25 + 66 66 66 gray26 + 66 66 66 grey26 + 69 69 69 gray27 + 69 69 69 grey27 + 71 71 71 gray28 + 71 71 71 grey28 + 74 74 74 gray29 + 74 74 74 grey29 + 77 77 77 gray30 + 77 77 77 grey30 + 79 79 79 gray31 + 79 79 79 grey31 + 82 82 82 gray32 + 82 82 82 grey32 + 84 84 84 gray33 + 84 84 84 grey33 + 87 87 87 gray34 + 87 87 87 grey34 + 89 89 89 gray35 + 89 89 89 grey35 + 92 92 92 gray36 + 92 92 92 grey36 + 94 94 94 gray37 + 94 94 94 grey37 + 97 97 97 gray38 + 97 97 97 grey38 + 99 99 99 gray39 + 99 99 99 grey39 +102 102 102 gray40 +102 102 102 grey40 +105 105 105 gray41 +105 105 105 grey41 +107 107 107 gray42 +107 107 107 grey42 +110 110 110 gray43 +110 110 110 grey43 +112 112 112 gray44 +112 112 112 grey44 +115 115 115 gray45 +115 115 115 grey45 +117 117 117 gray46 +117 117 117 grey46 +120 120 120 gray47 +120 120 120 grey47 +122 122 122 gray48 +122 122 122 grey48 +125 125 125 gray49 +125 125 125 grey49 +127 127 127 gray50 +127 127 127 grey50 +130 130 130 gray51 +130 130 130 grey51 +133 133 133 gray52 +133 133 133 grey52 +135 135 135 gray53 +135 135 135 grey53 +138 138 138 gray54 +138 138 138 grey54 +140 140 140 gray55 +140 140 140 grey55 +143 143 143 gray56 +143 143 143 grey56 +145 145 145 gray57 +145 145 145 grey57 +148 148 148 gray58 +148 148 148 grey58 +150 150 150 gray59 +150 150 150 grey59 +153 153 153 gray60 +153 153 153 grey60 +156 156 156 gray61 +156 156 156 grey61 +158 158 158 gray62 +158 158 158 grey62 +161 161 161 gray63 +161 161 161 grey63 +163 163 163 gray64 +163 163 163 grey64 +166 166 166 gray65 +166 166 166 grey65 +168 168 168 gray66 +168 168 168 grey66 +171 171 171 gray67 +171 171 171 grey67 +173 173 173 gray68 +173 173 173 grey68 +176 176 176 gray69 +176 176 176 grey69 +179 179 179 gray70 +179 179 179 grey70 +181 181 181 gray71 +181 181 181 grey71 +184 184 184 gray72 +184 184 184 grey72 +186 186 186 gray73 +186 186 186 grey73 +189 189 189 gray74 +189 189 189 grey74 +191 191 191 gray75 +191 191 191 grey75 +194 194 194 gray76 +194 194 194 grey76 +196 196 196 gray77 +196 196 196 grey77 +199 199 199 gray78 +199 199 199 grey78 +201 201 201 gray79 +201 201 201 grey79 +204 204 204 gray80 +204 204 204 grey80 +207 207 207 gray81 +207 207 207 grey81 +209 209 209 gray82 +209 209 209 grey82 +212 212 212 gray83 +212 212 212 grey83 +214 214 214 gray84 +214 214 214 grey84 +217 217 217 gray85 +217 217 217 grey85 +219 219 219 gray86 +219 219 219 grey86 +222 222 222 gray87 +222 222 222 grey87 +224 224 224 gray88 +224 224 224 grey88 +227 227 227 gray89 +227 227 227 grey89 +229 229 229 gray90 +229 229 229 grey90 +232 232 232 gray91 +232 232 232 grey91 +235 235 235 gray92 +235 235 235 grey92 +237 237 237 gray93 +237 237 237 grey93 +240 240 240 gray94 +240 240 240 grey94 +242 242 242 gray95 +242 242 242 grey95 +245 245 245 gray96 +245 245 245 grey96 +247 247 247 gray97 +247 247 247 grey97 +250 250 250 gray98 +250 250 250 grey98 +252 252 252 gray99 +252 252 252 grey99 +255 255 255 gray100 +255 255 255 grey100 +169 169 169 dark grey +169 169 169 DarkGrey +169 169 169 dark gray +169 169 169 DarkGray +0 0 139 dark blue +0 0 139 DarkBlue +0 139 139 dark cyan +0 139 139 DarkCyan +139 0 139 dark magenta +139 0 139 DarkMagenta +139 0 0 dark red +139 0 0 DarkRed +144 238 144 light green +144 238 144 LightGreen diff --git a/alternatives/fonts-japanese-gothic.ttf b/alternatives/fonts-japanese-gothic.ttf new file mode 120000 index 0000000..bafdbae --- /dev/null +++ b/alternatives/fonts-japanese-gothic.ttf @@ -0,0 +1 @@ +/usr/share/fonts/opentype/ipafont-gothic/ipag.ttf \ No newline at end of file diff --git a/alternatives/fonts-japanese-mincho.ttf b/alternatives/fonts-japanese-mincho.ttf new file mode 120000 index 0000000..2a53f1b --- /dev/null +++ b/alternatives/fonts-japanese-mincho.ttf @@ -0,0 +1 @@ +/usr/share/fonts/opentype/ipafont-mincho/ipam.ttf \ No newline at end of file diff --git a/alternatives/java b/alternatives/java new file mode 120000 index 0000000..33c11ea --- /dev/null +++ b/alternatives/java @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java \ No newline at end of file diff --git a/alternatives/java.1.gz b/alternatives/java.1.gz new file mode 120000 index 0000000..b5399de --- /dev/null +++ b/alternatives/java.1.gz @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/java.1.gz \ No newline at end of file diff --git a/alternatives/jexec b/alternatives/jexec new file mode 120000 index 0000000..408a329 --- /dev/null +++ b/alternatives/jexec @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jexec \ No newline at end of file diff --git a/alternatives/jexec-binfmt b/alternatives/jexec-binfmt new file mode 120000 index 0000000..93701cd --- /dev/null +++ b/alternatives/jexec-binfmt @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jar.binfmt \ No newline at end of file diff --git a/alternatives/jjs b/alternatives/jjs new file mode 120000 index 0000000..78b890e --- /dev/null +++ b/alternatives/jjs @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/jjs \ No newline at end of file diff --git a/alternatives/jjs.1.gz b/alternatives/jjs.1.gz new file mode 120000 index 0000000..7399bef --- /dev/null +++ b/alternatives/jjs.1.gz @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/jjs.1.gz \ No newline at end of file diff --git a/alternatives/keytool b/alternatives/keytool new file mode 120000 index 0000000..b4acd1f --- /dev/null +++ b/alternatives/keytool @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/keytool \ No newline at end of file diff --git a/alternatives/keytool.1.gz b/alternatives/keytool.1.gz new file mode 120000 index 0000000..bf423f0 --- /dev/null +++ b/alternatives/keytool.1.gz @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/keytool.1.gz \ No newline at end of file diff --git a/alternatives/orbd b/alternatives/orbd new file mode 120000 index 0000000..becb31e --- /dev/null +++ b/alternatives/orbd @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/orbd \ No newline at end of file diff --git a/alternatives/orbd.1.gz b/alternatives/orbd.1.gz new file mode 120000 index 0000000..c52991d --- /dev/null +++ b/alternatives/orbd.1.gz @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/orbd.1.gz \ No newline at end of file diff --git a/alternatives/pack200 b/alternatives/pack200 new file mode 120000 index 0000000..8304971 --- /dev/null +++ b/alternatives/pack200 @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/pack200 \ No newline at end of file diff --git a/alternatives/pack200.1.gz b/alternatives/pack200.1.gz new file mode 120000 index 0000000..40b4180 --- /dev/null +++ b/alternatives/pack200.1.gz @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/pack200.1.gz \ No newline at end of file diff --git a/alternatives/rmid b/alternatives/rmid new file mode 120000 index 0000000..f4a611d --- /dev/null +++ b/alternatives/rmid @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/rmid \ No newline at end of file diff --git a/alternatives/rmid.1.gz b/alternatives/rmid.1.gz new file mode 120000 index 0000000..4544f32 --- /dev/null +++ b/alternatives/rmid.1.gz @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/rmid.1.gz \ No newline at end of file diff --git a/alternatives/rmiregistry b/alternatives/rmiregistry new file mode 120000 index 0000000..9d40899 --- /dev/null +++ b/alternatives/rmiregistry @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/rmiregistry \ No newline at end of file diff --git a/alternatives/rmiregistry.1.gz b/alternatives/rmiregistry.1.gz new file mode 120000 index 0000000..b752e2e --- /dev/null +++ b/alternatives/rmiregistry.1.gz @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/rmiregistry.1.gz \ No newline at end of file diff --git a/alternatives/servertool b/alternatives/servertool new file mode 120000 index 0000000..6dab3a1 --- /dev/null +++ b/alternatives/servertool @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/servertool \ No newline at end of file diff --git a/alternatives/servertool.1.gz b/alternatives/servertool.1.gz new file mode 120000 index 0000000..3d175f8 --- /dev/null +++ b/alternatives/servertool.1.gz @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/servertool.1.gz \ No newline at end of file diff --git a/alternatives/tnameserv b/alternatives/tnameserv new file mode 120000 index 0000000..be38dca --- /dev/null +++ b/alternatives/tnameserv @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/tnameserv \ No newline at end of file diff --git a/alternatives/tnameserv.1.gz b/alternatives/tnameserv.1.gz new file mode 120000 index 0000000..5c7558b --- /dev/null +++ b/alternatives/tnameserv.1.gz @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/tnameserv.1.gz \ No newline at end of file diff --git a/alternatives/unpack200 b/alternatives/unpack200 new file mode 120000 index 0000000..cad628d --- /dev/null +++ b/alternatives/unpack200 @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/unpack200 \ No newline at end of file diff --git a/alternatives/unpack200.1.gz b/alternatives/unpack200.1.gz new file mode 120000 index 0000000..bc49126 --- /dev/null +++ b/alternatives/unpack200.1.gz @@ -0,0 +1 @@ +/usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/unpack200.1.gz \ No newline at end of file diff --git a/ca-certificates/update.d/jks-keystore b/ca-certificates/update.d/jks-keystore new file mode 100755 index 0000000..4de2a92 --- /dev/null +++ b/ca-certificates/update.d/jks-keystore @@ -0,0 +1,93 @@ +#!/bin/sh + +set -e + +# use the locale C.UTF-8 +unset LC_ALL +LC_CTYPE=C.UTF-8 +export LC_CTYPE + +storepass='changeit' +if [ -f /etc/default/cacerts ]; then + . /etc/default/cacerts +fi + +arch=`dpkg --print-architecture` +JAR=/usr/share/ca-certificates-java/ca-certificates-java.jar + +nsslib_name() +{ + if dpkg --assert-multi-arch 2>/dev/null; then + echo "libnss3:${arch}" + else + echo "libnss3" + fi +} + +echo "" +if [ "$cacerts_updates" != yes ] || [ "$CACERT_UPDATES" = disabled ] || [ ! -e $JAR ]; then + echo "updates of cacerts keystore disabled." + exit 0 +fi + +if ! mountpoint -q /proc; then + echo >&2 "the keytool command requires a mounted proc fs (/proc)." + exit 1 +fi + +for jvm in java-7-openjdk-$arch java-7-openjdk \ + oracle-java7-jre-$arch oracle-java7-server-jre-$arch oracle-java7-jdk-$arch \ + java-8-openjdk-$arch java-8-openjdk \ + oracle-java8-jre-$arch oracle-java8-server-jre-$arch oracle-java8-jdk-$arch \ + java-9-openjdk-$arch java-9-openjdk \ + oracle-java9-jre-$arch oracle-java9-server-jre-$arch oracle-java9-jdk-$arch; do +if [ -x /usr/lib/jvm/$jvm/bin/java ]; then + break +fi +done +export JAVA_HOME=/usr/lib/jvm/$jvm +PATH=$JAVA_HOME/bin:$PATH + +temp_jvm_cfg= +if [ ! -f /etc/${jvm%-$arch}/jvm-$arch.cfg ]; then + # the jre is not yet configured, but jvm.cfg is needed to run it + temp_jvm_cfg=/etc/${jvm%-$arch}/jvm-$arch.cfg + mkdir -p /etc/${jvm%-$arch} + printf -- "-server KNOWN\n" > $temp_jvm_cfg +fi + +if dpkg-query --version >/dev/null; then + nsspkg=$(dpkg-query -L "$(nsslib_name)" | sed -n 's,\(.*\)/libnss3\.so$,\1,p'|head -n 1) + nsscfg=/etc/${jvm%-$arch}/security/nss.cfg + nssjdk=$(test ! -f $nsscfg || sed -n '/nssLibraryDirectory/s/.*= *\(.*\)/\1/p' $nsscfg) + if [ -n "$nsspkg" ] && [ -n "$nssjdk" ] && [ "$nsspkg" != "$nssjdk" ]; then + ln -sf $nsspkg/libnss3.so $nssjdk/libnss3.so + fi + softokn3pkg=$(dpkg-query -L "$(nsslib_name)" | sed -n 's,\(.*\)/libsoftokn3\.so$,\1,p'|head -n 1) + if [ -n "$softokn3pkg" ] && [ -n "$nssjdk" ] && [ "$softokn3pkg" != "$nssjdk" ]; then + ln -sf $softokn3pkg/libsoftokn3.so $nssjdk/libsoftokn3.so + fi +fi + +do_cleanup() +{ + [ -z "$temp_jvm_cfg" ] || rm -f $temp_jvm_cfg + if [ -n "$nsspkg" ] && [ -n "$nssjdk" ] && [ "$nsspkg" != "$nssjdk" ] + then + rm -f $nssjdk/libnss3.so + fi + if [ -n "$softokn3pkg" ] && [ -n "$nssjdk" ] \ + && [ "$softokn3pkg" != "$nssjdk" ] + then + rm -f $nssjdk/libsoftokn3.so + fi +} + +if java -Xmx64m -jar $JAR -storepass "$storepass"; then + do_cleanup +else + do_cleanup + exit 1 +fi + +echo "done." diff --git a/default/cacerts b/default/cacerts new file mode 100644 index 0000000..d03ec9d --- /dev/null +++ b/default/cacerts @@ -0,0 +1,10 @@ +# defaults for ca-certificates-java + +# The password which is used to protect the integrity of the keystore. +# storepass must be at least 6 characters long. It must be provided to +# all commands that access the keystore contents. +# Only change this if adding private certificates. +#storepass='' + +# enable/disable updates of the keystore /etc/ssl/certs/java/cacerts +cacerts_updates=yes diff --git a/init.d/screen-cleanup b/init.d/screen-cleanup new file mode 100755 index 0000000..3eb4185 --- /dev/null +++ b/init.d/screen-cleanup @@ -0,0 +1,49 @@ +#!/bin/sh +# $Id: init,v 1.3 2004/03/16 01:43:45 zal Exp $ +# +# Script to remove stale screen named pipes on bootup. +# + +### BEGIN INIT INFO +# Provides: screen-cleanup +# Required-Start: $remote_fs +# Required-Stop: $remote_fs +# Default-Start: S +# Default-Stop: +# Short-Description: screen sessions cleaning +# Description: Cleans up the screen session directory and fixes its +# permissions if needed. +### END INIT INFO + +set -e + +test -f /usr/bin/screen || exit 0 + +SCREENDIR=/run/screen + +case "$1" in +start) + if test -L $SCREENDIR || ! test -d $SCREENDIR; then + rm -f $SCREENDIR + mkdir $SCREENDIR + chown root:utmp $SCREENDIR + [ -x /sbin/restorecon ] && /sbin/restorecon $SCREENDIR + fi + find $SCREENDIR -type p -delete +# If the local admin has used dpkg-statoverride to install the screen +# binary with different set[ug]id bits, change the permissions of +# $SCREENDIR accordingly + BINARYPERM=`stat -c%a /usr/bin/screen` + if [ "$BINARYPERM" -ge 4000 ]; then + chmod 0755 $SCREENDIR + elif [ "$BINARYPERM" -ge 2000 ]; then + chmod 0775 $SCREENDIR + else + chmod 1777 $SCREENDIR + fi + ;; +stop|restart|reload|force-reload) + ;; +esac + +exit 0 diff --git a/init.d/x11-common b/init.d/x11-common new file mode 100755 index 0000000..63c3c30 --- /dev/null +++ b/init.d/x11-common @@ -0,0 +1,122 @@ +#!/bin/sh +# /etc/init.d/x11-common: set up the X server and ICE socket directories +### BEGIN INIT INFO +# Provides: x11-common +# Required-Start: $remote_fs +# Required-Stop: $remote_fs +# Default-Start: S +# Default-Stop: +# Short-Description: set up the X server and ICE socket directories +### END INIT INFO + +set -e + +PATH=/usr/bin:/usr/sbin:/bin:/sbin +SOCKET_DIR=.X11-unix +ICE_DIR=.ICE-unix + +. /lib/lsb/init-functions +if [ -f /etc/default/rcS ]; then + . /etc/default/rcS +fi + +do_restorecon () { + # Restore file security context (SELinux). + if which restorecon >/dev/null 2>&1; then + restorecon "$1" + fi +} + +# create a directory in /tmp. +# assumes /tmp has a sticky bit set (or is only writeable by root) +set_up_dir () { + DIR="/tmp/$1" + + if [ "$VERBOSE" != no ]; then + log_progress_msg "$DIR" + fi + # if $DIR exists and isn't a directory, move it aside + if [ -e $DIR ] && ! [ -d $DIR ] || [ -h $DIR ]; then + mv "$DIR" "$(mktemp -d $DIR.XXXXXX)" + fi + + error=0 + while :; do + if [ $error -ne 0 ] ; then + # an error means the file-system is readonly or an attacker + # is doing evil things, distinguish by creating a temporary file, + # but give up after a while. + if [ $error -gt 5 ]; then + log_failure_msg "failed to set up $DIR" + return 1 + fi + fn="$(mktemp /tmp/testwriteable.XXXXXXXXXX)" || return 1 + rm "$fn" + fi + mkdir -p -m 01777 "$DIR" || { rm "$DIR" || error=$((error + 1)) ; continue ; } + case "$(LC_ALL=C stat -c '%u %g %a %F' "$DIR")" in + "0 0 1777 directory") + # everything as it is supposed to be + break + ;; + "0 0 "*" directory") + # as it is owned by root, cannot be replaced with a symlink: + chmod 01777 "$DIR" + break + ;; + *" directory") + # if the chown succeeds, the next step can change it savely + chown -h root:root "$DIR" || error=$((error + 1)) + continue + ;; + *) + log_failure_msg "failed to set up $DIR" + return 1 + ;; + esac + done + do_restorecon "$DIR" + + return 0 +} + +do_status () { + if [ -d "/tmp/$ICE_DIR" ] && [ -d "/tmp/$SOCKET_DIR" ]; then + return 0 + else + return 4 + fi +} + +case "$1" in + start) + if [ "$VERBOSE" != no ]; then + log_begin_msg "Setting up X socket directories..." + fi + set_up_dir "$SOCKET_DIR" + set_up_dir "$ICE_DIR" + if [ "$VERBOSE" != no ]; then + log_end_msg 0 + fi + ;; + + restart|reload|force-reload) + /etc/init.d/x11-common start + ;; + + stop) + : + ;; + + status) + do_status + ;; + *) + log_success_msg "Usage: /etc/init.d/x11-common {start|stop|status|restart|reload|force-reload}" + exit 1 + ;; +esac + +exit 0 + +# vim:set ai et sts=2 sw=2 tw=0: diff --git a/java-8-openjdk/accessibility.properties b/java-8-openjdk/accessibility.properties new file mode 100644 index 0000000..e1129f8 --- /dev/null +++ b/java-8-openjdk/accessibility.properties @@ -0,0 +1,9 @@ +# +# The following line specifies the assistive technology classes +# that should be loaded into the Java VM when the AWT is initailized. +# Specify multiple classes by separating them with commas. +# Note: the line below cannot end the file (there must be at +# a minimum a blank line following it). +# +assistive_technologies=org.GNOME.Accessibility.AtkWrapper + diff --git a/java-8-openjdk/calendars.properties b/java-8-openjdk/calendars.properties new file mode 100644 index 0000000..49f68ac --- /dev/null +++ b/java-8-openjdk/calendars.properties @@ -0,0 +1,60 @@ +# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +# +# Japanese imperial calendar +# +# Meiji since 1868-01-01 00:00:00 local time (Gregorian) +# Taisho since 1912-07-30 00:00:00 local time (Gregorian) +# Showa since 1926-12-25 00:00:00 local time (Gregorian) +# Heisei since 1989-01-08 00:00:00 local time (Gregorian) +calendar.japanese.type: LocalGregorianCalendar +calendar.japanese.eras: \ + name=Meiji,abbr=M,since=-3218832000000; \ + name=Taisho,abbr=T,since=-1812153600000; \ + name=Showa,abbr=S,since=-1357603200000; \ + name=Heisei,abbr=H,since=600220800000 + +# +# Taiwanese calendar +# Minguo since 1911-01-01 00:00:00 local time (Gregorian) +calendar.taiwanese.type: LocalGregorianCalendar +calendar.taiwanese.eras: \ + name=MinGuo,since=-1830384000000 + +# +# Thai Buddhist calendar +# Buddhist Era since -542-01-01 00:00:00 local time (Gregorian) +calendar.thai-buddhist.type: LocalGregorianCalendar +calendar.thai-buddhist.eras: \ + name=BuddhistEra,abbr=B.E.,since=-79302585600000 +calendar.thai-buddhist.year-boundary: \ + day1=4-1,since=-79302585600000; \ + day1=1-1,since=-915148800000 + +# +# Hijrah calendars +# +calendar.hijrah.Hijrah-umalqura: hijrah-config-umalqura.properties +calendar.hijrah.Hijrah-umalqura.type: islamic-umalqura diff --git a/java-8-openjdk/content-types.properties b/java-8-openjdk/content-types.properties new file mode 100644 index 0000000..559de96 --- /dev/null +++ b/java-8-openjdk/content-types.properties @@ -0,0 +1,280 @@ +#sun.net.www MIME content-types table +# +# Property fields: +# +# ::= 'description' '=' +# ::= 'file_extensions' '=' +# ::= 'icon' '=' +# ::= 'browser' | 'application' | 'save' | 'unknown' +# ::= 'application' '=' +# + +# +# The "we don't know anything about this data" type(s). +# Used internally to mark unrecognized types. +# +content/unknown: description=Unknown Content +unknown/unknown: description=Unknown Data Type + +# +# The template we should use for temporary files when launching an application +# to view a document of given type. +# +temp.file.template: /tmp/%s + +# +# The "real" types. +# +application/octet-stream: \ + description=Generic Binary Stream;\ + file_extensions=.saveme,.dump,.hqx,.arc,.o,.a,.bin,.exe,.z,.gz + +application/oda: \ + description=ODA Document;\ + file_extensions=.oda + +application/pdf: \ + description=Adobe PDF Format;\ + file_extensions=.pdf + +application/postscript: \ + description=Postscript File;\ + file_extensions=.eps,.ai,.ps;\ + icon=ps;\ + action=application;\ + application=imagetool %s + +application/x-dvi: \ + description=TeX DVI File;\ + file_extensions=.dvi;\ + action=application;\ + application=xdvi %s + +application/x-hdf: \ + description=Hierarchical Data Format;\ + file_extensions=.hdf;\ + action=save + +application/x-latex: \ + description=LaTeX Source;\ + file_extensions=.latex + +application/x-netcdf: \ + description=Unidata netCDF Data Format;\ + file_extensions=.nc,.cdf;\ + action=save + +application/x-tex: \ + description=TeX Source;\ + file_extensions=.tex + +application/x-texinfo: \ + description=Gnu Texinfo;\ + file_extensions=.texinfo,.texi + +application/x-troff: \ + description=Troff Source;\ + file_extensions=.t,.tr,.roff;\ + action=application;\ + application=xterm -title troff -e sh -c \"nroff %s | col | more -w\" + +application/x-troff-man: \ + description=Troff Manpage Source;\ + file_extensions=.man;\ + action=application;\ + application=xterm -title troff -e sh -c \"nroff -man %s | col | more -w\" + +application/x-troff-me: \ + description=Troff ME Macros;\ + file_extensions=.me;\ + action=application;\ + application=xterm -title troff -e sh -c \"nroff -me %s | col | more -w\" + +application/x-troff-ms: \ + description=Troff MS Macros;\ + file_extensions=.ms;\ + action=application;\ + application=xterm -title troff -e sh -c \"nroff -ms %s | col | more -w\" + +application/x-wais-source: \ + description=Wais Source;\ + file_extensions=.src,.wsrc + +application/zip: \ + description=Zip File;\ + file_extensions=.zip;\ + icon=zip;\ + action=save + +application/x-bcpio: \ + description=Old Binary CPIO Archive;\ + file_extensions=.bcpio; action=save + +application/x-cpio: \ + description=Unix CPIO Archive;\ + file_extensions=.cpio; action=save + +application/x-gtar: \ + description=Gnu Tar Archive;\ + file_extensions=.gtar;\ + icon=tar;\ + action=save + +application/x-shar: \ + description=Shell Archive;\ + file_extensions=.sh,.shar;\ + action=save + +application/x-sv4cpio: \ + description=SVR4 CPIO Archive;\ + file_extensions=.sv4cpio; action=save + +application/x-sv4crc: \ + description=SVR4 CPIO with CRC;\ + file_extensions=.sv4crc; action=save + +application/x-tar: \ + description=Tar Archive;\ + file_extensions=.tar;\ + icon=tar;\ + action=save + +application/x-ustar: \ + description=US Tar Archive;\ + file_extensions=.ustar;\ + action=save + +audio/basic: \ + description=Basic Audio;\ + file_extensions=.snd,.au;\ + icon=audio;\ + action=application;\ + application=audiotool %s + +audio/x-aiff: \ + description=Audio Interchange Format File;\ + file_extensions=.aifc,.aif,.aiff;\ + icon=aiff + +audio/x-wav: \ + description=Wav Audio;\ + file_extensions=.wav;\ + icon=wav + +image/gif: \ + description=GIF Image;\ + file_extensions=.gif;\ + icon=gif;\ + action=browser + +image/ief: \ + description=Image Exchange Format;\ + file_extensions=.ief + +image/jpeg: \ + description=JPEG Image;\ + file_extensions=.jfif,.jfif-tbnl,.jpe,.jpg,.jpeg;\ + icon=jpeg;\ + action=browser;\ + application=imagetool %s + +image/tiff: \ + description=TIFF Image;\ + file_extensions=.tif,.tiff;\ + icon=tiff + +image/vnd.fpx: \ + description=FlashPix Image;\ + file_extensions=.fpx,.fpix + +image/x-cmu-rast: \ + description=CMU Raster Image;\ + file_extensions=.ras + +image/x-portable-anymap: \ + description=PBM Anymap Format;\ + file_extensions=.pnm + +image/x-portable-bitmap: \ + description=PBM Bitmap Format;\ + file_extensions=.pbm + +image/x-portable-graymap: \ + description=PBM Graymap Format;\ + file_extensions=.pgm + +image/x-portable-pixmap: \ + description=PBM Pixmap Format;\ + file_extensions=.ppm + +image/x-rgb: \ + description=RGB Image;\ + file_extensions=.rgb + +image/x-xbitmap: \ + description=X Bitmap Image;\ + file_extensions=.xbm,.xpm + +image/x-xwindowdump: \ + description=X Window Dump Image;\ + file_extensions=.xwd + +image/png: \ + description=PNG Image;\ + file_extensions=.png;\ + icon=png;\ + action=browser + +image/bmp: \ + description=Bitmap Image;\ + file_extensions=.bmp; + +text/html: \ + description=HTML Document;\ + file_extensions=.htm,.html;\ + icon=html + +text/plain: \ + description=Plain Text;\ + file_extensions=.text,.c,.cc,.c++,.h,.pl,.txt,.java,.el;\ + icon=text;\ + action=browser + +text/tab-separated-values: \ + description=Tab Separated Values Text;\ + file_extensions=.tsv + +text/x-setext: \ + description=Structure Enhanced Text;\ + file_extensions=.etx + +video/mpeg: \ + description=MPEG Video Clip;\ + file_extensions=.mpg,.mpe,.mpeg;\ + icon=mpeg;\ + action=application;\ + application=mpeg_play %s + +video/quicktime: \ + description=QuickTime Video Clip;\ + file_extensions=.mov,.qt + +application/x-troff-msvideo: \ + description=AVI Video;\ + file_extensions=.avi;\ + icon=avi + +video/x-sgi-movie: \ + description=SGI Movie;\ + file_extensions=.movie,.mv + +message/rfc822: \ + description=Internet Email Message;\ + file_extensions=.mime + +application/xml: \ + description=XML document;\ + file_extensions=.xml + + + diff --git a/java-8-openjdk/flavormap.properties b/java-8-openjdk/flavormap.properties new file mode 100644 index 0000000..223002a --- /dev/null +++ b/java-8-openjdk/flavormap.properties @@ -0,0 +1,78 @@ +# +# This properties file is used to initialize the default +# java.awt.datatransfer.SystemFlavorMap. It contains the X11 platform-specific, +# default mappings between common X11 selection atoms and platform-independent +# MIME type strings, which will be converted into +# java.awt.datatransfer.DataFlavors. +# +# These default mappings may be augmented by specifying the +# +# AWT.DnD.flavorMapFileURL +# +# property in the appropriate awt.properties file. The specified properties URL +# will be loaded into the SystemFlavorMap. +# +# The standard format is: +# +# = +# +# should be a string identifier that the native platform will +# recognize as a valid data format. should specify both a MIME +# primary type and a MIME subtype separated by a '/'. The MIME type may include +# parameters, where each parameter is a key/value pair separated by '=', and +# where each parameter to the MIME type is separated by a ';'. +# +# Because SystemFlavorMap implements FlavorTable, developers are free to +# duplicate both native keys and DataFlavor values. If a mapping contains a +# duplicate key or value, earlier mappings which included this key or value +# will be preferred. +# +# Mappings whose values specify DataFlavors with primary MIME types of +# "text", and which support the charset parameter, should specify the exact +# format in which the native platform expects the data. The "charset" +# parameter specifies the char to byte encoding, the "eoln" parameter +# specifies the end-of-line marker, and the "terminators" parameter specifies +# the number of terminating NUL bytes. Note that "eoln" and "terminators" +# are not standardized MIME type parameters. They are specific to this file +# format ONLY. They will not appear in any of the DataFlavors returned by the +# SystemFlavorMap at the Java level. +# +# If the "charset" parameter is omitted, or has zero length, the platform +# default encoding is assumed. If the "eoln" parameter is omitted, or has +# zero length, "\n" is assumed. If the "terminators" parameter is omitted, +# or has a value less than zero, zero is assumed. +# +# Upon initialization, the data transfer subsystem will record the specified +# details of the native text format, but the default SystemFlavorMap will +# present a large set of synthesized DataFlavors which map, in both +# directions, to the native. After receiving data from the application in one +# of the synthetic DataFlavors, the data transfer subsystem will transform +# the data stream into the format specified in this file before passing the +# transformed stream to the native system. +# +# Mappings whose values specify DataFlavors with primary MIME types of +# "text", but which do not support the charset parameter, will be treated as +# opaque, 8-bit data. They will not undergo any transformation process, and +# any "charset", "eoln", or "terminators" parameters specified in this file +# will be ignored. +# +# See java.awt.datatransfer.DataFlavor.selectBestTextFlavor for a list of +# text flavors which support the charset parameter. + +UTF8_STRING=text/plain;charset=UTF-8;eoln="\n";terminators=0 + +# The COMPOUND_TEXT support for inter-client text transfer is disabled by +# default. The reason is that many native applications prefer this format over +# other native text formats, but are unable to decode the textual data in this +# format properly. This results in java-to-native text transfer failures. +# To enable the COMPOUND_TEXT support for this JRE installation uncomment +# the line below. + +# COMPOUND_TEXT=text/plain;charset=x-compound-text;eoln="\n";terminators=0 + +TEXT=text/plain;eoln="\n";terminators=0 +STRING=text/plain;charset=iso8859-1;eoln="\n";terminators=0 +FILE_NAME=application/x-java-file-list;class=java.util.List +text/uri-list=application/x-java-file-list;class=java.util.List +PNG=image/x-java-image;class=java.awt.Image +JFIF=image/x-java-image;class=java.awt.Image diff --git a/java-8-openjdk/images/cursors/cursors.properties b/java-8-openjdk/images/cursors/cursors.properties new file mode 100644 index 0000000..30e9f90 --- /dev/null +++ b/java-8-openjdk/images/cursors/cursors.properties @@ -0,0 +1,40 @@ +# +# +# Cursors Properties file +# +# Names GIF89 sources for Custom Cursors and their associated HotSpots +# +# Note: the syntax of the property name is significant and is parsed +# by java.awt.Cursor +# +# The syntax is: Cursor...File= +# Cursor...HotSpot=, +# Cursor...Name= +# +Cursor.CopyDrop.32x32.File=motif_CopyDrop32x32.gif +Cursor.CopyDrop.32x32.HotSpot=0,0 +Cursor.CopyDrop.32x32.Name=CopyDrop32x32 +# +Cursor.MoveDrop.32x32.File=motif_MoveDrop32x32.gif +Cursor.MoveDrop.32x32.HotSpot=0,0 +Cursor.MoveDrop.32x32.Name=MoveDrop32x32 +# +Cursor.LinkDrop.32x32.File=motif_LinkDrop32x32.gif +Cursor.LinkDrop.32x32.HotSpot=0,0 +Cursor.LinkDrop.32x32.Name=LinkDrop32x32 +# +Cursor.CopyNoDrop.32x32.File=motif_CopyNoDrop32x32.gif +Cursor.CopyNoDrop.32x32.HotSpot=6,2 +Cursor.CopyNoDrop.32x32.Name=CopyNoDrop32x32 +# +Cursor.MoveNoDrop.32x32.File=motif_MoveNoDrop32x32.gif +Cursor.MoveNoDrop.32x32.HotSpot=6,2 +Cursor.MoveNoDrop.32x32.Name=MoveNoDrop32x32 +# +Cursor.LinkNoDrop.32x32.File=motif_LinkNoDrop32x32.gif +Cursor.LinkNoDrop.32x32.HotSpot=6,2 +Cursor.LinkNoDrop.32x32.Name=LinkNoDrop32x32 +# +Cursor.Invalid.32x32.File=invalid32x32.gif +Cursor.Invalid.32x32.HotSpot=6,2 +Cursor.Invalid.32x32.Name=Invalid32x32 diff --git a/java-8-openjdk/jvm-amd64.cfg b/java-8-openjdk/jvm-amd64.cfg new file mode 100644 index 0000000..a205d30 --- /dev/null +++ b/java-8-openjdk/jvm-amd64.cfg @@ -0,0 +1,37 @@ +# Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# +# +# List of JVMs that can be used as an option to java, javac, etc. +# Order is important -- first in this list is the default JVM. +# NOTE that this both this file and its format are UNSUPPORTED and +# WILL GO AWAY in a future release. +# +# You may also select a JVM in an arbitrary location with the +# "-XXaltjvm=" option, but that too is unsupported +# and may not be available in a future release. +# +-server KNOWN +-client IGNORE +-zero KNOWN +-dcevm KNOWN diff --git a/java-8-openjdk/logging.properties b/java-8-openjdk/logging.properties new file mode 100644 index 0000000..65cf1b1 --- /dev/null +++ b/java-8-openjdk/logging.properties @@ -0,0 +1,59 @@ +############################################################ +# Default Logging Configuration File +# +# You can use a different file by specifying a filename +# with the java.util.logging.config.file system property. +# For example java -Djava.util.logging.config.file=myfile +############################################################ + +############################################################ +# Global properties +############################################################ + +# "handlers" specifies a comma separated list of log Handler +# classes. These handlers will be installed during VM startup. +# Note that these classes must be on the system classpath. +# By default we only configure a ConsoleHandler, which will only +# show messages at the INFO and above levels. +handlers= java.util.logging.ConsoleHandler + +# To also add the FileHandler, use the following line instead. +#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler + +# Default global logging level. +# This specifies which kinds of events are logged across +# all loggers. For any given facility this global level +# can be overriden by a facility specific level +# Note that the ConsoleHandler also has a separate level +# setting to limit messages printed to the console. +.level= INFO + +############################################################ +# Handler specific properties. +# Describes specific configuration info for Handlers. +############################################################ + +# default file output is in user's home directory. +java.util.logging.FileHandler.pattern = %h/java%u.log +java.util.logging.FileHandler.limit = 50000 +java.util.logging.FileHandler.count = 1 +java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter + +# Limit the message that are printed on the console to INFO and above. +java.util.logging.ConsoleHandler.level = INFO +java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter + +# Example to customize the SimpleFormatter output format +# to print one-line log message like this: +# : [] +# +# java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n + +############################################################ +# Facility specific properties. +# Provides extra control for each logger. +############################################################ + +# For example, set the com.xyz.foo logger to only log SEVERE +# messages: +com.xyz.foo.level = SEVERE diff --git a/java-8-openjdk/management/jmxremote.access b/java-8-openjdk/management/jmxremote.access new file mode 100644 index 0000000..ce80b47 --- /dev/null +++ b/java-8-openjdk/management/jmxremote.access @@ -0,0 +1,79 @@ +###################################################################### +# Default Access Control File for Remote JMX(TM) Monitoring +###################################################################### +# +# Access control file for Remote JMX API access to monitoring. +# This file defines the allowed access for different roles. The +# password file (jmxremote.password by default) defines the roles and their +# passwords. To be functional, a role must have an entry in +# both the password and the access files. +# +# The default location of this file is $JRE/lib/management/jmxremote.access +# You can specify an alternate location by specifying a property in +# the management config file $JRE/lib/management/management.properties +# (See that file for details) +# +# The file format for password and access files is syntactically the same +# as the Properties file format. The syntax is described in the Javadoc +# for java.util.Properties.load. +# A typical access file has multiple lines, where each line is blank, +# a comment (like this one), or an access control entry. +# +# An access control entry consists of a role name, and an +# associated access level. The role name is any string that does not +# itself contain spaces or tabs. It corresponds to an entry in the +# password file (jmxremote.password). The access level is one of the +# following: +# "readonly" grants access to read attributes of MBeans. +# For monitoring, this means that a remote client in this +# role can read measurements but cannot perform any action +# that changes the environment of the running program. +# "readwrite" grants access to read and write attributes of MBeans, +# to invoke operations on them, and optionally +# to create or remove them. This access should be granted +# only to trusted clients, since they can potentially +# interfere with the smooth operation of a running program. +# +# The "readwrite" access level can optionally be followed by the "create" and/or +# "unregister" keywords. The "unregister" keyword grants access to unregister +# (delete) MBeans. The "create" keyword grants access to create MBeans of a +# particular class or of any class matching a particular pattern. Access +# should only be granted to create MBeans of known and trusted classes. +# +# For example, the following entry would grant readwrite access +# to "controlRole", as well as access to create MBeans of the class +# javax.management.monitor.CounterMonitor and to unregister any MBean: +# controlRole readwrite \ +# create javax.management.monitor.CounterMonitorMBean \ +# unregister +# or equivalently: +# controlRole readwrite unregister create javax.management.monitor.CounterMBean +# +# The following entry would grant readwrite access as well as access to create +# MBeans of any class in the packages javax.management.monitor and +# javax.management.timer: +# controlRole readwrite \ +# create javax.management.monitor.*,javax.management.timer.* \ +# unregister +# +# The \ character is defined in the Properties file syntax to allow continuation +# lines as shown here. A * in a class pattern matches a sequence of characters +# other than dot (.), so javax.management.monitor.* matches +# javax.management.monitor.CounterMonitor but not +# javax.management.monitor.foo.Bar. +# +# A given role should have at most one entry in this file. If a role +# has no entry, it has no access. +# If multiple entries are found for the same role name, then the last +# access entry is used. +# +# +# Default access control entries: +# o The "monitorRole" role has readonly access. +# o The "controlRole" role has readwrite access and can create the standard +# Timer and Monitor MBeans defined by the JMX API. + +monitorRole readonly +controlRole readwrite \ + create javax.management.monitor.*,javax.management.timer.* \ + unregister diff --git a/java-8-openjdk/management/jmxremote.password b/java-8-openjdk/management/jmxremote.password new file mode 100644 index 0000000..a7e7daa --- /dev/null +++ b/java-8-openjdk/management/jmxremote.password @@ -0,0 +1,64 @@ +# ---------------------------------------------------------------------- +# Template for jmxremote.password +# +# o Copy this template to jmxremote.password +# o Set the user/password entries in jmxremote.password +# o Change the permission of jmxremote.password to read-only +# by the owner. +# +# See below for the location of jmxremote.password file. +# ---------------------------------------------------------------------- + +############################################################## +# Password File for Remote JMX Monitoring +############################################################## +# +# Password file for Remote JMX API access to monitoring. This +# file defines the different roles and their passwords. The access +# control file (jmxremote.access by default) defines the allowed +# access for each role. To be functional, a role must have an entry +# in both the password and the access files. +# +# Default location of this file is $JRE/lib/management/jmxremote.password +# You can specify an alternate location by specifying a property in +# the management config file $JRE/lib/management/management.properties +# or by specifying a system property (See that file for details). + + +############################################################## +# File permissions of the jmxremote.password file +############################################################## +# Since there are cleartext passwords stored in this file, +# this file must be readable by ONLY the owner, +# otherwise the program will exit with an error. +# +# The file format for password and access files is syntactically the same +# as the Properties file format. The syntax is described in the Javadoc +# for java.util.Properties.load. +# Typical password file has multiple lines, where each line is blank, +# a comment (like this one), or a password entry. +# +# +# A password entry consists of a role name and an associated +# password. The role name is any string that does not itself contain +# spaces or tabs. The password is again any string that does not +# contain spaces or tabs. Note that passwords appear in the clear in +# this file, so it is a good idea not to use valuable passwords. +# +# A given role should have at most one entry in this file. If a role +# has no entry, it has no access. +# If multiple entries are found for the same role name, then the last one +# is used. +# +# In a typical installation, this file can be read by anybody on the +# local machine, and possibly by people on other machines. +# For # security, you should either restrict the access to this file, +# or specify another, less accessible file in the management config file +# as described above. +# +# Following are two commented-out entries. The "measureRole" role has +# password "QED". The "controlRole" role has password "R&D". +# +# monitorRole QED +# controlRole R&D + diff --git a/java-8-openjdk/management/management.properties b/java-8-openjdk/management/management.properties new file mode 100644 index 0000000..70efa2e --- /dev/null +++ b/java-8-openjdk/management/management.properties @@ -0,0 +1,331 @@ +##################################################################### +# Default Configuration File for Java Platform Management +##################################################################### +# +# The Management Configuration file (in java.util.Properties format) +# will be read if one of the following system properties is set: +# -Dcom.sun.management.jmxremote.port= +# or -Dcom.sun.management.snmp.port= +# or -Dcom.sun.management.config.file= +# +# The default Management Configuration file is: +# +# $JRE/lib/management/management.properties +# +# Another location for the Management Configuration File can be specified +# by the following property on the Java command line: +# +# -Dcom.sun.management.config.file= +# +# If -Dcom.sun.management.config.file= is set, the port +# number for the management agent can be specified in the config file +# using the following lines: +# +# ################ Management Agent Port ######################### +# +# For setting the JMX RMI agent port use the following line +# com.sun.management.jmxremote.port= +# +# For setting the SNMP agent port use the following line +# com.sun.management.snmp.port= + +##################################################################### +# Optional Instrumentation +##################################################################### +# +# By default only the basic instrumentation with low overhead is on. +# The following properties allow to selectively turn on optional +# instrumentation which are off by default and may have some +# additional overhead. +# +# com.sun.management.enableThreadContentionMonitoring +# +# This option enables thread contention monitoring if the +# Java virtual machine supports such instrumentation. +# Refer to the specification for the java.lang.management.ThreadMBean +# interface - see isThreadContentionMonitoringSupported() method. +# + +# To enable thread contention monitoring, uncomment the following line +# com.sun.management.enableThreadContentionMonitoring + +##################################################################### +# SNMP Management Properties +##################################################################### +# +# If the system property -Dcom.sun.management.snmp.port= +# is set then +# - The SNMP agent (with the Java virtual machine MIB) is started +# that listens on the specified port for incoming SNMP requests. +# - the following properties for read for SNMP management. +# +# The configuration can be specified only at startup time. +# Later changes to the above system property (e.g. via setProperty method), this +# config file, or the ACL file has no effect to the running SNMP agent. +# + +# +# ##################### SNMP Trap Port ######################### +# +# com.sun.management.snmp.trap= +# Specifies the remote port number at which managers are expected +# to listen for trap. For each host defined in the ACL file, +# the SNMP agent will send traps at : +# Default for this property is 162. +# + +# To set port for sending traps to a different port use the following line +# com.sun.management.snmp.trap= + +# +# ################ SNMP listen interface ######################### +# +# com.sun.management.snmp.interface= +# Specifies the local interface on which the SNMP agent will bind. +# This is useful when running on machines which have several +# interfaces defined. It makes it possible to listen to a specific +# subnet accessible through that interface. +# Default for this property is "localhost". +# +# The format of the value for that property is any string accepted +# by java.net.InetAddress.getByName(String). +# + +# For restricting the port on which SNMP agent listens use the following line +# com.sun.management.snmp.interface= + +# +# #################### SNMP ACL file ######################### +# +# com.sun.management.snmp.acl=true|false +# Default for this property is true. (Case for true/false ignored) +# If this property is specified as false then the ACL file +# is not checked: all manager hosts are allowed all access. +# + +# For SNMP without checking ACL file uncomment the following line +# com.sun.management.snmp.acl=false + +# +# com.sun.management.snmp.acl.file=filepath +# Specifies location for ACL file +# This is optional - default location is +# $JRE/lib/management/snmp.acl +# +# If the property "com.sun.management.snmp.acl" is set to false, +# then this property and the ACL file are ignored. +# Otherwise the ACL file must exist and be in the valid format. +# If the ACL file is empty or non existent then no access is allowed. +# +# The SNMP agent will read the ACL file at startup time. +# Modification to the ACL file has no effect to any running SNMP +# agents which read that ACL file at startup. +# + +# For a non-default acl file location use the following line +# com.sun.management.snmp.acl.file=filepath + +##################################################################### +# RMI Management Properties +##################################################################### +# +# If system property -Dcom.sun.management.jmxremote.port= +# is set then +# - A MBean server is started +# - JRE Platform MBeans are registered in the MBean server +# - RMI connector is published in a private readonly registry at +# specified port using a well known name, "jmxrmi" +# - the following properties are read for JMX remote management. +# +# The configuration can be specified only at startup time. +# Later changes to above system property (e.g. via setProperty method), +# this config file, the password file, or the access file have no effect to the +# running MBean server, the connector, or the registry. +# + +# +# ########## RMI connector settings for local management ########## +# +# com.sun.management.jmxremote.local.only=true|false +# Default for this property is true. (Case for true/false ignored) +# If this property is specified as true then the local JMX RMI connector +# server will only accept connection requests from clients running on +# the host where the out-of-the-box JMX management agent is running. +# In order to ensure backwards compatibility this property could be +# set to false. However, deploying the local management agent in this +# way is discouraged because the local JMX RMI connector server will +# accept connection requests from any client either local or remote. +# For remote management the remote JMX RMI connector server should +# be used instead with authentication and SSL/TLS encryption enabled. +# + +# For allowing the local management agent accept local +# and remote connection requests use the following line +# com.sun.management.jmxremote.local.only=false + +# +# ###################### RMI SSL ############################# +# +# com.sun.management.jmxremote.ssl=true|false +# Default for this property is true. (Case for true/false ignored) +# If this property is specified as false then SSL is not used. +# + +# For RMI monitoring without SSL use the following line +# com.sun.management.jmxremote.ssl=false + +# com.sun.management.jmxremote.ssl.config.file=filepath +# Specifies the location of the SSL configuration file. A properties +# file can be used to supply the keystore and truststore location and +# password settings thus avoiding to pass them as cleartext in the +# command-line. +# +# The current implementation of the out-of-the-box management agent will +# look up and use the properties specified below to configure the SSL +# keystore and truststore, if present: +# javax.net.ssl.keyStore= +# javax.net.ssl.keyStorePassword= +# javax.net.ssl.trustStore= +# javax.net.ssl.trustStorePassword= +# Any other properties in the file will be ignored. This will allow us +# to extend the property set in the future if required by the default +# SSL implementation. +# +# If the property "com.sun.management.jmxremote.ssl" is set to false, +# then this property is ignored. +# + +# For supplying the keystore settings in a file use the following line +# com.sun.management.jmxremote.ssl.config.file=filepath + +# com.sun.management.jmxremote.ssl.enabled.cipher.suites= +# The value of this property is a string that is a comma-separated list +# of SSL/TLS cipher suites to enable. This property can be specified in +# conjunction with the previous property "com.sun.management.jmxremote.ssl" +# in order to control which particular SSL/TLS cipher suites are enabled +# for use by accepted connections. If this property is not specified then +# the SSL/TLS RMI Server Socket Factory uses the SSL/TLS cipher suites that +# are enabled by default. +# + +# com.sun.management.jmxremote.ssl.enabled.protocols= +# The value of this property is a string that is a comma-separated list +# of SSL/TLS protocol versions to enable. This property can be specified in +# conjunction with the previous property "com.sun.management.jmxremote.ssl" +# in order to control which particular SSL/TLS protocol versions are +# enabled for use by accepted connections. If this property is not +# specified then the SSL/TLS RMI Server Socket Factory uses the SSL/TLS +# protocol versions that are enabled by default. +# + +# com.sun.management.jmxremote.ssl.need.client.auth=true|false +# Default for this property is false. (Case for true/false ignored) +# If this property is specified as true in conjunction with the previous +# property "com.sun.management.jmxremote.ssl" then the SSL/TLS RMI Server +# Socket Factory will require client authentication. +# + +# For RMI monitoring with SSL client authentication use the following line +# com.sun.management.jmxremote.ssl.need.client.auth=true + +# com.sun.management.jmxremote.registry.ssl=true|false +# Default for this property is false. (Case for true/false ignored) +# If this property is specified as true then the RMI registry used +# to bind the RMIServer remote object is protected with SSL/TLS +# RMI Socket Factories that can be configured with the properties: +# com.sun.management.jmxremote.ssl.config.file +# com.sun.management.jmxremote.ssl.enabled.cipher.suites +# com.sun.management.jmxremote.ssl.enabled.protocols +# com.sun.management.jmxremote.ssl.need.client.auth +# If the two properties below are true at the same time, i.e. +# com.sun.management.jmxremote.ssl=true +# com.sun.management.jmxremote.registry.ssl=true +# then the RMIServer remote object and the RMI registry are +# both exported with the same SSL/TLS RMI Socket Factories. +# + +# For using an SSL/TLS protected RMI registry use the following line +# com.sun.management.jmxremote.registry.ssl=true + +# +# ################ RMI User authentication ################ +# +# com.sun.management.jmxremote.authenticate=true|false +# Default for this property is true. (Case for true/false ignored) +# If this property is specified as false then no authentication is +# performed and all users are allowed all access. +# + +# For RMI monitoring without any checking use the following line +# com.sun.management.jmxremote.authenticate=false + +# +# ################ RMI Login configuration ################### +# +# com.sun.management.jmxremote.login.config= +# Specifies the name of a JAAS login configuration entry to use when +# authenticating users of RMI monitoring. +# +# Setting this property is optional - the default login configuration +# specifies a file-based authentication that uses the password file. +# +# When using this property to override the default login configuration +# then the named configuration entry must be in a file that gets loaded +# by JAAS. In addition, the login module(s) specified in the configuration +# should use the name and/or password callbacks to acquire the user's +# credentials. See the NameCallback and PasswordCallback classes in the +# javax.security.auth.callback package for more details. +# +# If the property "com.sun.management.jmxremote.authenticate" is set to +# false, then this property and the password & access files are ignored. +# + +# For a non-default login configuration use the following line +# com.sun.management.jmxremote.login.config= + +# +# ################ RMI Password file location ################## +# +# com.sun.management.jmxremote.password.file=filepath +# Specifies location for password file +# This is optional - default location is +# $JRE/lib/management/jmxremote.password +# +# If the property "com.sun.management.jmxremote.authenticate" is set to +# false, then this property and the password & access files are ignored. +# Otherwise the password file must exist and be in the valid format. +# If the password file is empty or non-existent then no access is allowed. +# + +# For a non-default password file location use the following line +# com.sun.management.jmxremote.password.file=filepath + +# +# ################ RMI Access file location ##################### +# +# com.sun.management.jmxremote.access.file=filepath +# Specifies location for access file +# This is optional - default location is +# $JRE/lib/management/jmxremote.access +# +# If the property "com.sun.management.jmxremote.authenticate" is set to +# false, then this property and the password & access files are ignored. +# Otherwise, the access file must exist and be in the valid format. +# If the access file is empty or non-existent then no access is allowed. +# + +# For a non-default password file location use the following line +# com.sun.management.jmxremote.access.file=filepath +# + +# ################ Management agent listen interface ######################### +# +# com.sun.management.jmxremote.host= +# Specifies the local interface on which the JMX RMI agent will bind. +# This is useful when running on machines which have several +# interfaces defined. It makes it possible to listen to a specific +# subnet accessible through that interface. +# +# The format of the value for that property is any string accepted +# by java.net.InetAddress.getByName(String). +# diff --git a/java-8-openjdk/management/snmp.acl b/java-8-openjdk/management/snmp.acl new file mode 100644 index 0000000..0e76676 --- /dev/null +++ b/java-8-openjdk/management/snmp.acl @@ -0,0 +1,110 @@ +# ---------------------------------------------------------------------- +# Template for SNMP Access Control List File +# +# o Copy this template to snmp.acl +# o Set access control for SNMP support +# o Change the permission of snmp.acl to be read-only +# by the owner. +# +# See below for the location of snmp.acl file. +# ---------------------------------------------------------------------- + +############################################################ +# SNMP Access Control List File +############################################################ +# +# Default location of this file is $JRE/lib/management/snmp.acl. +# You can specify an alternate location by specifying a property in +# the management config file $JRE/lib/management/management.properties +# or by specifying a system property (See that file for details). +# + + +############################################################## +# File permissions of the snmp.acl file +############################################################## +# +# Since there are cleartext community strings stored in this file, +# this ACL file must be readable by ONLY the owner, +# otherwise the program will exit with an error. +# +############################################################## +# Format of the acl group +############################################################## +# +# communities: a list of SNMP community strings to which the +# access control applies separated by commas. +# +# access: either "read-only" or "read-write". +# +# managers: a list of hosts to be granted the access rights. +# Each can be expressed as any one of the following: +# - hostname: hubble +# - ip v4 and v6 addresses: 123.456.789.12 , fe80::a00:20ff:fe9b:ea82 +# - ip v4 and v6 netmask prefix notation: 123.456.789.0/24, +# fe80::a00:20ff:fe9b:ea82/64 +# see RFC 2373 (http://www.ietf.org/rfc/rfc2373.txt) +# +# An example of two community groups for multiple hosts: +# acl = { +# { +# communities = public, private +# access = read-only +# managers = hubble, snowbell, nanak +# } +# { +# communities = jerry +# access = read-write +# managers = hubble, telescope +# } +# } +# +############################################################## +# Format of the trap group +############################################################## +# +# trap-community: a single SNMP community string that will be included +# in the traps sent to the hosts. +# +# hosts: a list of hosts to which the SNMP agent will send traps. +# +# An example of two trap community definitions for multiple hosts: +# trap = { +# { +# trap-community = public +# hosts = hubble, snowbell +# } +# { +# trap-community = private +# hosts = telescope +# } +# } +# +############################################################ +# +# Update the community strings (public and private) below +# before copying this template file +# +# Common SNMP ACL Example +# ------------------------ +# +# o Only localhost can connect, and access rights +# are limited to read-only +# o Traps are sent to localhost only +# +# +# acl = { +# { +# communities = public, private +# access = read-only +# managers = localhost +# } +# } +# +# +# trap = { +# { +# trap-community = public +# hosts = localhost +# } +# } diff --git a/java-8-openjdk/net.properties b/java-8-openjdk/net.properties new file mode 100644 index 0000000..b490e17 --- /dev/null +++ b/java-8-openjdk/net.properties @@ -0,0 +1,101 @@ +############################################################ +# Default Networking Configuration File +# +# This file may contain default values for the networking system properties. +# These values are only used when the system properties are not specified +# on the command line or set programatically. +# For now, only the various proxy settings can be configured here. +############################################################ + +# Whether or not the DefaultProxySelector will default to System Proxy +# settings when they do exist. +# Set it to 'true' to enable this feature and check for platform +# specific proxy settings +# Note that the system properties that do explicitely set proxies +# (like http.proxyHost) do take precedence over the system settings +# even if java.net.useSystemProxies is set to true. + +java.net.useSystemProxies=false + +#------------------------------------------------------------------------ +# Proxy configuration for the various protocol handlers. +# DO NOT uncomment these lines if you have set java.net.useSystemProxies +# to true as the protocol specific properties will take precedence over +# system settings. +#------------------------------------------------------------------------ + +# HTTP Proxy settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 80) and nonProxyHosts is a '|' separated list of hostnames which +# should be accessed directly, ignoring the proxy server (default value is +# localhost & 127.0.0.1). +# +# http.proxyHost= +# http.proxyPort=80 +http.nonProxyHosts=localhost|127.*|[::1] +# +# HTTPS Proxy Settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 443). The HTTPS protocol handlers uses the http nonProxyHosts list. +# +# https.proxyHost= +# https.proxyPort=443 +# +# FTP Proxy settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 80) and nonProxyHosts is a '|' separated list of hostnames which +# should be accessed directly, ignoring the proxy server (default value is +# localhost & 127.0.0.1). +# +# ftp.proxyHost= +# ftp.proxyPort=80 +ftp.nonProxyHosts=localhost|127.*|[::1] +# +# Gopher Proxy settings. proxyHost is the name of the proxy server +# (e.g. proxy.mydomain.com), proxyPort is the port number to use (default +# value is 80) +# +# gopher.proxyHost= +# gopher.proxyPort=80 +# +# Socks proxy settings. socksProxyHost is the name of the proxy server +# (e.g. socks.domain.com), socksProxyPort is the port number to use +# (default value is 1080) +# +# socksProxyHost= +# socksProxyPort=1080 +# +# HTTP Keep Alive settings. remainingData is the maximum amount of data +# in kilobytes that will be cleaned off the underlying socket so that it +# can be reused (default value is 512K), queuedConnections is the maximum +# number of Keep Alive connections to be on the queue for clean up (default +# value is 10). +# http.KeepAlive.remainingData=512 +# http.KeepAlive.queuedConnections=10 + +# Authentication Scheme restrictions for HTTP and HTTPS. +# +# In some environments certain authentication schemes may be undesirable +# when proxying HTTP or HTTPS. For example, "Basic" results in effectively the +# cleartext transmission of the user's password over the physical network. +# This section describes the mechanism for disabling authentication schemes +# based on the scheme name. Disabled schemes will be treated as if they are not +# supported by the implementation. +# +# The 'jdk.http.auth.tunneling.disabledSchemes' property lists the authentication +# schemes that will be disabled when tunneling HTTPS over a proxy, HTTP CONNECT. +# The 'jdk.http.auth.proxying.disabledSchemes' property lists the authentication +# schemes that will be disabled when proxying HTTP. +# +# In both cases the property is a comma-separated list of, case-insensitive, +# authentication scheme names, as defined by their relevant RFCs. An +# implementation may, but is not required to, support common schemes whose names +# include: 'Basic', 'Digest', 'NTLM', 'Kerberos', 'Negotiate'. A scheme that +# is not known, or not supported, by the implementation is ignored. +# +# Note: This property is currently used by the JDK Reference implementation. It +# is not guaranteed to be examined and used by other implementations. +# +#jdk.http.auth.proxying.disabledSchemes= +jdk.http.auth.tunneling.disabledSchemes=Basic + diff --git a/java-8-openjdk/psfont.properties.ja b/java-8-openjdk/psfont.properties.ja new file mode 100644 index 0000000..d17cf40 --- /dev/null +++ b/java-8-openjdk/psfont.properties.ja @@ -0,0 +1,119 @@ +# +# +# Copyright (c) 1996, 2000, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +# +# Japanese PostScript printer property file +# +font.num=16 +# +serif=serif +timesroman=serif +sansserif=sansserif +helvetica=sansserif +monospaced=monospaced +courier=monospaced +dialog=sansserif +dialoginput=monospaced +# +serif.latin1.plain=Times-Roman +serif.latin1.italic=Times-Italic +serif.latin1.bolditalic=Times-BoldItalic +serif.latin1.bold=Times-Bold +# +sansserif.latin1.plain=Helvetica +sansserif.latin1.italic=Helvetica-Oblique +sansserif.latin1.bolditalic=Helvetica-BoldOblique +sansserif.latin1.bold=Helvetica-Bold +# +monospaced.latin1.plain=Courier +monospaced.latin1.italic=Courier-Oblique +monospaced.latin1.bolditalic=Courier-BoldOblique +monospaced.latin1.bold=Courier-Bold +# +serif.x11jis0208.plain=Ryumin-Light-H +serif.x11jis0208.italic=Ryumin-Light-H +serif.x11jis0208.bolditalic=Ryumin-Light-H +serif.x11jis0208.bold=Ryumin-Light-H +# +sansserif.x11jis0208.plain=GothicBBB-Medium-H +sansserif.x11jis0208.italic=GothicBBB-Medium-H +sansserif.x11jis0208.bolditalic=GothicBBB-Medium-H +sansserif.x11jis0208.bold=GothicBBB-Medium-H +# +monospaced.x11jis0208.plain=GothicBBB-Medium-H +monospaced.x11jis0208.italic=GothicBBB-Medium-H +monospaced.x11jis0208.bolditalic=GothicBBB-Medium-H +monospaced.x11jis0208.bold=GothicBBB-Medium-H +# +serif.x11jis0201.plain=Ryumin-Light.Hankaku +serif.x11jis0201.italic=Ryumin-Light.Hankaku +serif.x11jis0201.bolditalic=Ryumin-Light.Hankaku +serif.x11jis0201.bold=Ryumin-Light.Hankaku +# +sansserif.x11jis0201.plain=GothicBBB-Medium.Hankaku +sansserif.x11jis0201.italic=GothicBBB-Medium.Hankaku +sansserif.x11jis0201.bolditalic=GothicBBB-Medium.Hankaku +sansserif.x11jis0201.bold=GothicBBB-Medium.Hankaku +# +monospaced.x11jis0201.plain=GothicBBB-Medium.Hankaku +monospaced.x11jis0201.italic=GothicBBB-Medium.Hankaku +monospaced.x11jis0201.bolditalic=GothicBBB-Medium.Hankaku +monospaced.x11jis0201.bold=GothicBBB-Medium.Hankaku +# +Helvetica=0 +Helvetica-Bold=1 +Helvetica-Oblique=2 +Helvetica-BoldOblique=3 +Times-Roman=4 +Times-Bold=5 +Times-Italic=6 +Times-BoldItalic=7 +Courier=8 +Courier-Bold=9 +Courier-Oblique=10 +Courier-BoldOblique=11 +GothicBBB-Medium-H=12 +Ryumin-Light-H=13 +GothicBBB-Medium.Hankaku=14 +Ryumin-Light.Hankaku=15 +# +font.0=Helvetica ISOF +font.1=Helvetica-Bold ISOF +font.2=Helvetica-Oblique ISOF +font.3=Helvetica-BoldOblique ISOF +font.4=Times-Roman ISOF +font.5=Times-Bold ISOF +font.6=Times-Italic ISOF +font.7=Times-BoldItalic ISOF +font.8=Courier ISOF +font.9=Courier-Bold ISOF +font.10=Courier-Oblique ISOF +font.11=Courier-BoldOblique ISOF +font.12=GothicBBB-Medium-H findfont +font.13=Ryumin-Light-H findfont +font.14=GothicBBB-Medium.Hankaku findfont +font.15=Ryumin-Light.Hankaku findfont +# diff --git a/java-8-openjdk/psfontj2d.properties b/java-8-openjdk/psfontj2d.properties new file mode 100644 index 0000000..5eb2c4b --- /dev/null +++ b/java-8-openjdk/psfontj2d.properties @@ -0,0 +1,323 @@ +# +# +# Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. + +# +# PostScript printer property file for Java 2D printing. +# +# WARNING: This is an internal implementation file, not a public file. +# Any customisation or reliance on the existence of this file and its +# contents or syntax is discouraged and unsupported. +# It may be incompatibly changed or removed without any notice. +# +# +font.num=35 +# +# Legacy logical font family names and logical font aliases should all +# map to the primary logical font names. +# +serif=serif +times=serif +timesroman=serif +sansserif=sansserif +helvetica=sansserif +dialog=sansserif +dialoginput=monospaced +monospaced=monospaced +courier=monospaced +# +# Next, physical fonts which can be safely mapped to standard postscript fonts +# These keys generally map to a value which is the same as the key, so +# the key/value is just a way to say the font has a mapping. +# Sometimes however we map more than one screen font to the same PS font. +# +avantgarde=avantgarde_book +avantgarde_book=avantgarde_book +avantgarde_demi=avantgarde_demi +avantgarde_book_oblique=avantgarde_book_oblique +avantgarde_demi_oblique=avantgarde_demi_oblique +# +itcavantgarde=avantgarde_book +itcavantgarde=avantgarde_book +itcavantgarde_demi=avantgarde_demi +itcavantgarde_oblique=avantgarde_book_oblique +itcavantgarde_demi_oblique=avantgarde_demi_oblique +# +bookman=bookman_light +bookman_light=bookman_light +bookman_demi=bookman_demi +bookman_light_italic=bookman_light_italic +bookman_demi_italic=bookman_demi_italic +# +# Exclude "helvetica" on its own as that's a legacy name for a logical font +helvetica_bold=helvetica_bold +helvetica_oblique=helvetica_oblique +helvetica_bold_oblique=helvetica_bold_oblique +# +itcbookman_light=bookman_light +itcbookman_demi=bookman_demi +itcbookman_light_italic=bookman_light_italic +itcbookman_demi_italic=bookman_demi_italic +# +# Exclude "courier" on its own as that's a legacy name for a logical font +courier_bold=courier_bold +courier_oblique=courier_oblique +courier_bold_oblique=courier_bold_oblique +# +courier_new=courier +courier_new_bold=courier_bold +# +monotype_century_schoolbook=newcenturyschoolbook +monotype_century_schoolbook_bold=newcenturyschoolbook_bold +monotype_century_schoolbook_italic=newcenturyschoolbook_italic +monotype_century_schoolbook_bold_italic=newcenturyschoolbook_bold_italic +# +newcenturyschoolbook=newcenturyschoolbook +newcenturyschoolbook_bold=newcenturyschoolbook_bold +newcenturyschoolbook_italic=newcenturyschoolbook_italic +newcenturyschoolbook_bold_italic=newcenturyschoolbook_bold_italic +# +palatino=palatino +palatino_bold=palatino_bold +palatino_italic=palatino_italic +palatino_bold_italic=palatino_bold_italic +# +# Exclude "times" on its own as that's a legacy name for a logical font +times_bold=times_roman_bold +times_italic=times_roman_italic +times_bold_italic=times_roman_bold_italic +# +times_roman=times_roman +times_roman_bold=times_roman_bold +times_roman_italic=times_roman_italic +times_roman_bold_italic=times_roman_bold_italic +# +times_new_roman=times_roman +times_new_roman_bold=times_roman_bold +times_new_roman_italic=times_roman_italic +times_new_roman_bold_italic=times_roman_bold_italic +# +zapfchancery_italic=zapfchancery_italic +itczapfchancery_italic=zapfchancery_italic +# +# Next the mapping of the font name + charset + style to Postscript font name +# for the logical fonts. +# +serif.latin1.plain=Times-Roman +serif.latin1.bold=Times-Bold +serif.latin1.italic=Times-Italic +serif.latin1.bolditalic=Times-BoldItalic +serif.symbol.plain=Symbol +serif.dingbats.plain=ZapfDingbats +serif.symbol.bold=Symbol +serif.dingbats.bold=ZapfDingbats +serif.symbol.italic=Symbol +serif.dingbats.italic=ZapfDingbats +serif.symbol.bolditalic=Symbol +serif.dingbats.bolditalic=ZapfDingbats +# +sansserif.latin1.plain=Helvetica +sansserif.latin1.bold=Helvetica-Bold +sansserif.latin1.italic=Helvetica-Oblique +sansserif.latin1.bolditalic=Helvetica-BoldOblique +sansserif.symbol.plain=Symbol +sansserif.dingbats.plain=ZapfDingbats +sansserif.symbol.bold=Symbol +sansserif.dingbats.bold=ZapfDingbats +sansserif.symbol.italic=Symbol +sansserif.dingbats.italic=ZapfDingbats +sansserif.symbol.bolditalic=Symbol +sansserif.dingbats.bolditalic=ZapfDingbats +# +monospaced.latin1.plain=Courier +monospaced.latin1.bold=Courier-Bold +monospaced.latin1.italic=Courier-Oblique +monospaced.latin1.bolditalic=Courier-BoldOblique +monospaced.symbol.plain=Symbol +monospaced.dingbats.plain=ZapfDingbats +monospaced.symbol.bold=Symbol +monospaced.dingbats.bold=ZapfDingbats +monospaced.symbol.italic=Symbol +monospaced.dingbats.italic=ZapfDingbats +monospaced.symbol.bolditalic=Symbol +monospaced.dingbats.bolditalic=ZapfDingbats +# +# Next the mapping of the font name + charset + style to Postscript font name +# for the physical fonts. Since these always report style as plain, the +# style key is always plain. So we map using the face name to the correct +# style for the postscript font. This is possible since the face names can +# be replied upon to be different for each style. +# However an application may try to create a Font applying a style to an +# physical name. We want to map to the correct Postscript font there too +# if possible but we do not map cases where the application tries to +# augment a style (eg ask for a bold version of a bold font) +# Defer to the 2D package to attempt create an artificially styled version +# +avantgarde_book.latin1.plain=AvantGarde-Book +avantgarde_demi.latin1.plain=AvantGarde-Demi +avantgarde_book_oblique.latin1.plain=AvantGarde-BookOblique +avantgarde_demi_oblique.latin1.plain=AvantGarde-DemiOblique +# +avantgarde_book.latin1.bold=AvantGarde-Demi +avantgarde_book.latin1.italic=AvantGarde-BookOblique +avantgarde_book.latin1.bolditalic=AvantGarde-DemiOblique +avantgarde_demi.latin1.italic=AvantGarde-DemiOblique +avantgarde_book_oblique.latin1.bold=AvantGarde-DemiOblique +# +bookman_light.latin1.plain=Bookman-Light +bookman_demi.latin1.plain=Bookman-Demi +bookman_light_italic.latin1.plain=Bookman-LightItalic +bookman_demi_italic.latin1.plain=Bookman-DemiItalic +# +bookman_light.latin1.bold=Bookman-Demi +bookman_light.latin1.italic=Bookman-LightItalic +bookman_light.latin1.bolditalic=Bookman-DemiItalic +bookman_light_bold.latin1.italic=Bookman-DemiItalic +bookman_light_italic.latin1.bold=Bookman-DemiItalic +# +courier.latin1.plain=Courier +courier_bold.latin1.plain=Courier-Bold +courier_oblique.latin1.plain=Courier-Oblique +courier_bold_oblique.latin1.plain=Courier-BoldOblique +courier.latin1.bold=Courier-Bold +courier.latin1.italic=Courier-Oblique +courier.latin1.bolditalic=Courier-BoldOblique +courier_bold.latin1.italic=Courier-BoldOblique +courier_italic.latin1.bold=Courier-BoldOblique +# +helvetica_bold.latin1.plain=Helvetica-Bold +helvetica_oblique.latin1.plain=Helvetica-Oblique +helvetica_bold_oblique.latin1.plain=Helvetica-BoldOblique +helvetica.latin1.bold=Helvetica-Bold +helvetica.latin1.italic=Helvetica-Oblique +helvetica.latin1.bolditalic=Helvetica-BoldOblique +helvetica_bold.latin1.italic=Helvetica-BoldOblique +helvetica_italic.latin1.bold=Helvetica-BoldOblique +# +newcenturyschoolbook.latin1.plain=NewCenturySchlbk-Roman +newcenturyschoolbook_bold.latin1.plain=NewCenturySchlbk-Bold +newcenturyschoolbook_italic.latin1.plain=NewCenturySchlbk-Italic +newcenturyschoolbook_bold_italic.latin1.plain=NewCenturySchlbk-BoldItalic +newcenturyschoolbook.latin1.bold=NewCenturySchlbk-Bold +newcenturyschoolbook.latin1.italic=NewCenturySchlbk-Italic +newcenturyschoolbook.latin1.bolditalic=NewCenturySchlbk-BoldItalic +newcenturyschoolbook_bold.latin1.italic=NewCenturySchlbk-BoldItalic +newcenturyschoolbook_italic.latin1.bold=NewCenturySchlbk-BoldItalic +# +palatino.latin1.plain=Palatino-Roman +palatino_bold.latin1.plain=Palatino-Bold +palatino_italic.latin1.plain=Palatino-Italic +palatino_bold_italic.latin1.plain=Palatino-BoldItalic +palatino.latin1.bold=Palatino-Bold +palatino.latin1.italic=Palatino-Italic +palatino.latin1.bolditalic=Palatino-BoldItalic +palatino_bold.latin1.italic=Palatino-BoldItalic +palatino_italic.latin1.bold=Palatino-BoldItalic +# +times_roman.latin1.plain=Times-Roman +times_roman_bold.latin1.plain=Times-Bold +times_roman_italic.latin1.plain=Times-Italic +times_roman_bold_italic.latin1.plain=Times-BoldItalic +times_roman.latin1.bold=Times-Bold +times_roman.latin1.italic=Times-Italic +times_roman.latin1.bolditalic=Times-BoldItalic +times_roman_bold.latin1.italic=Times-BoldItalic +times_roman_italic.latin1.bold=Times-BoldItalic +# +zapfchancery_italic.latin1.plain=ZapfChancery-MediumItalic +# +# Finally the mappings of PS font names to indexes. +# +AvantGarde-Book=0 +AvantGarde-BookOblique=1 +AvantGarde-Demi=2 +AvantGarde-DemiOblique=3 +Bookman-Demi=4 +Bookman-DemiItalic=5 +Bookman-Light=6 +Bookman-LightItalic=7 +Courier=8 +Courier-Bold=9 +Courier-BoldOblique=10 +Courier-Oblique=11 +Helvetica=12 +Helvetica-Bold=13 +Helvetica-BoldOblique=14 +Helvetica-Narrow=15 +Helvetica-Narrow-Bold=16 +Helvetica-Narrow-BoldOblique=17 +Helvetica-Narrow-Oblique=18 +Helvetica-Oblique=19 +NewCenturySchlbk-Bold=20 +NewCenturySchlbk-BoldItalic=21 +NewCenturySchlbk-Italic=22 +NewCenturySchlbk-Roman=23 +Palatino-Bold=24 +Palatino-BoldItalic=25 +Palatino-Italic=26 +Palatino-Roman=27 +Symbol=28 +Times-Bold=29 +Times-BoldItalic=30 +Times-Italic=31 +Times-Roman=32 +ZapfDingbats=33 +ZapfChancery-MediumItalic=34 +# +font.0=AvantGarde-Book ISOF +font.1=AvantGarde-BookOblique ISOF +font.2=AvantGarde-Demi ISOF +font.3=AvantGarde-DemiOblique ISOF +font.4=Bookman-Demi ISOF +font.5=Bookman-DemiItalic ISOF +font.6=Bookman-Light ISOF +font.7=Bookman-LightItalic ISOF +font.8=Courier ISOF +font.9=Courier-Bold ISOF +font.10=Courier-BoldOblique ISOF +font.11=Courier-Oblique ISOF +font.12=Helvetica ISOF +font.13=Helvetica-Bold ISOF +font.14=Helvetica-BoldOblique ISOF +font.15=Helvetica-Narrow ISOF +font.16=Helvetica-Narrow-Bold ISOF +font.17=Helvetica-Narrow-BoldOblique ISOF +font.18=Helvetica-Narrow-Oblique ISOF +font.19=Helvetica-Oblique ISOF +font.20=NewCenturySchlbk-Bold ISOF +font.21=NewCenturySchlbk-BoldItalic ISOF +font.22=NewCenturySchlbk-Italic ISOF +font.23=NewCenturySchlbk-Roman ISOF +font.24=Palatino-Bold ISOF +font.25=Palatino-BoldItalic ISOF +font.26=Palatino-Italic ISOF +font.27=Palatino-Roman ISOF +font.28=Symbol findfont +font.29=Times-Bold ISOF +font.30=Times-BoldItalic ISOF +font.31=Times-Italic ISOF +font.32=Times-Roman ISOF +font.33=ZapfDingbats findfont +font.34=ZapfChancery-MediumItalic ISOF +# diff --git a/java-8-openjdk/security/blacklisted.certs b/java-8-openjdk/security/blacklisted.certs new file mode 100644 index 0000000..00a1dcf --- /dev/null +++ b/java-8-openjdk/security/blacklisted.certs @@ -0,0 +1,20 @@ +Algorithm=SHA-256 +14E6D2764A4B06701C6CBC376A253775F79C782FBCB6C0EE6F99DE4BA1024ADD +31C8FD37DB9B56E708B03D1F01848B068C6DA66F36FB5D82C008C6040FA3E133 +3946901F46B0071E90D78279E82FABABCA177231A704BE72C5B0E8918566EA66 +450F1B421BB05C8609854884559C323319619E8B06B001EA2DCBB74A23AA3BE2 +4CBBF8256BC9888A8007B2F386940A2E394378B0D903CBB3863C5A6394B889CE +4FEE0163686ECBD65DB968E7494F55D84B25486D438E9DE558D629D28CD4D176 +5E83124D68D24E8E177E306DF643D5EA99C5A94D6FC34B072F7544A1CABB7C7B +76A45A496031E4DD2D7ED23E8F6FF97DBDEA980BAAC8B0BA94D7EDB551348645 +8A1BD21661C60015065212CC98B1ABB50DFD14C872A208E66BAE890F25C448AF +9ED8F9B0E8E42A1656B8E1DD18F42BA42DC06FE52686173BA2FC70E756F207DC +A686FEE577C88AB664D0787ECDFFF035F4806F3DE418DC9E4D516324FFF02083 +B8686723E415534BC0DBD16326F9486F85B0B0799BF6639334E61DAAE67F36CD +D24566BF315F4E597D6E381C87119FB4198F5E9E2607F5F4AB362EF7E2E7672F +D3A936E1A7775A45217C8296A1F22AC5631DCDEC45594099E78EEEBBEDCBA967 +DF21016B00FC54F9FE3BC8B039911BB216E9162FAD2FD14D990AB96E951B49BE +EC30C9C3065A06BB07DC5B1C6B497F370C1CA65C0F30C08E042BA6BCECC78F2C +F5B6F88F75D391A4B1EB336F9E201239FB6B1377DB8CFA7B84736216E5AFFFD7 +FC02FD48DB92D4DCE6F11679D38354CF750CFC7F584A520EB90BDE80E241F2BD +FDEDB5BDFCB67411513A61AEE5CB5B5D7C52AF06028EFC996CC1B05B1D6CEA2B diff --git a/java-8-openjdk/security/java.policy b/java-8-openjdk/security/java.policy new file mode 100644 index 0000000..a826f99 --- /dev/null +++ b/java-8-openjdk/security/java.policy @@ -0,0 +1,123 @@ + +// Standard extensions get all permissions by default + +grant codeBase "file:${{java.ext.dirs}}/*" { + permission java.security.AllPermission; +}; + +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-common/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-alpha/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-arm64/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-armel/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-armhf/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-i386/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-ia64/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-m68k/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-mips/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-mips64/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-mips64el/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-mipsel/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-powerpc/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-powerpcspe/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-ppc64/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-ppc64el/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-s390x/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-sh4/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-sparc/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-sparc64/jre/lib/ext/*" { + permission java.security.AllPermission; +}; +grant codeBase "file:/usr/lib/jvm/java-8-openjdk-x32/jre/lib/ext/*" { + permission java.security.AllPermission; +}; + +// Comment this out if you want to give all permissions to the +// Debian Java repository too: +//grant codeBase "file:/usr/share/java/repository/-" { +// permission java.security.AllPermission; +//}; + + +// default permissions granted to all domains + +grant { + // Allows any thread to stop itself using the java.lang.Thread.stop() + // method that takes no argument. + // Note that this permission is granted by default only to remain + // backwards compatible. + // It is strongly recommended that you either remove this permission + // from this policy file or further restrict it to code sources + // that you specify, because Thread.stop() is potentially unsafe. + // See the API specification of java.lang.Thread.stop() for more + // information. + permission java.lang.RuntimePermission "stopThread"; + + // allows anyone to listen on dynamic ports + permission java.net.SocketPermission "localhost:0", "listen"; + + // "standard" properies that can be read by anyone + + permission java.util.PropertyPermission "java.version", "read"; + permission java.util.PropertyPermission "java.vendor", "read"; + permission java.util.PropertyPermission "java.vendor.url", "read"; + permission java.util.PropertyPermission "java.class.version", "read"; + permission java.util.PropertyPermission "os.name", "read"; + permission java.util.PropertyPermission "os.version", "read"; + permission java.util.PropertyPermission "os.arch", "read"; + permission java.util.PropertyPermission "file.separator", "read"; + permission java.util.PropertyPermission "path.separator", "read"; + permission java.util.PropertyPermission "line.separator", "read"; + + permission java.util.PropertyPermission "java.specification.version", "read"; + permission java.util.PropertyPermission "java.specification.vendor", "read"; + permission java.util.PropertyPermission "java.specification.name", "read"; + + permission java.util.PropertyPermission "java.vm.specification.version", "read"; + permission java.util.PropertyPermission "java.vm.specification.vendor", "read"; + permission java.util.PropertyPermission "java.vm.specification.name", "read"; + permission java.util.PropertyPermission "java.vm.version", "read"; + permission java.util.PropertyPermission "java.vm.vendor", "read"; + permission java.util.PropertyPermission "java.vm.name", "read"; +}; + diff --git a/java-8-openjdk/security/java.security b/java-8-openjdk/security/java.security new file mode 100644 index 0000000..1e62d67 --- /dev/null +++ b/java-8-openjdk/security/java.security @@ -0,0 +1,984 @@ +# +# This is the "master security properties file". +# +# An alternate java.security properties file may be specified +# from the command line via the system property +# +# -Djava.security.properties= +# +# This properties file appends to the master security properties file. +# If both properties files specify values for the same key, the value +# from the command-line properties file is selected, as it is the last +# one loaded. +# +# Also, if you specify +# +# -Djava.security.properties== (2 equals), +# +# then that properties file completely overrides the master security +# properties file. +# +# To disable the ability to specify an additional properties file from +# the command line, set the key security.overridePropertiesFile +# to false in the master security properties file. It is set to true +# by default. + +# In this file, various security properties are set for use by +# java.security classes. This is where users can statically register +# Cryptography Package Providers ("providers" for short). The term +# "provider" refers to a package or set of packages that supply a +# concrete implementation of a subset of the cryptography aspects of +# the Java Security API. A provider may, for example, implement one or +# more digital signature algorithms or message digest algorithms. +# +# Each provider must implement a subclass of the Provider class. +# To register a provider in this master security properties file, +# specify the Provider subclass name and priority in the format +# +# security.provider.= +# +# This declares a provider, and specifies its preference +# order n. The preference order is the order in which providers are +# searched for requested algorithms (when no specific provider is +# requested). The order is 1-based; 1 is the most preferred, followed +# by 2, and so on. +# +# must specify the subclass of the Provider class whose +# constructor sets the values of various properties that are required +# for the Java Security API to look up the algorithms or other +# facilities implemented by the provider. +# +# There must be at least one provider specification in java.security. +# There is a default provider that comes standard with the JDK. It +# is called the "SUN" provider, and its Provider subclass +# named Sun appears in the sun.security.provider package. Thus, the +# "SUN" provider is registered via the following: +# +# security.provider.1=sun.security.provider.Sun +# +# (The number 1 is used for the default provider.) +# +# Note: Providers can be dynamically registered instead by calls to +# either the addProvider or insertProviderAt method in the Security +# class. + +# +# List of providers and their preference orders (see above): +# +security.provider.1=sun.security.provider.Sun +security.provider.2=sun.security.rsa.SunRsaSign +security.provider.3=sun.security.ec.SunEC +security.provider.4=com.sun.net.ssl.internal.ssl.Provider +security.provider.5=com.sun.crypto.provider.SunJCE +security.provider.6=sun.security.jgss.SunProvider +security.provider.7=com.sun.security.sasl.Provider +security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI +security.provider.9=sun.security.smartcardio.SunPCSC + +# +# Sun Provider SecureRandom seed source. +# +# Select the primary source of seed data for the "SHA1PRNG" and +# "NativePRNG" SecureRandom implementations in the "Sun" provider. +# (Other SecureRandom implementations might also use this property.) +# +# On Unix-like systems (for example, Solaris/Linux/MacOS), the +# "NativePRNG" and "SHA1PRNG" implementations obtains seed data from +# special device files such as file:/dev/random. +# +# On Windows systems, specifying the URLs "file:/dev/random" or +# "file:/dev/urandom" will enable the native Microsoft CryptoAPI seeding +# mechanism for SHA1PRNG. +# +# By default, an attempt is made to use the entropy gathering device +# specified by the "securerandom.source" Security property. If an +# exception occurs while accessing the specified URL: +# +# SHA1PRNG: +# the traditional system/thread activity algorithm will be used. +# +# NativePRNG: +# a default value of /dev/random will be used. If neither +# are available, the implementation will be disabled. +# "file" is the only currently supported protocol type. +# +# The entropy gathering device can also be specified with the System +# property "java.security.egd". For example: +# +# % java -Djava.security.egd=file:/dev/random MainClass +# +# Specifying this System property will override the +# "securerandom.source" Security property. +# +# In addition, if "file:/dev/random" or "file:/dev/urandom" is +# specified, the "NativePRNG" implementation will be more preferred than +# SHA1PRNG in the Sun provider. +# +securerandom.source=file:/dev/random + +# +# A list of known strong SecureRandom implementations. +# +# To help guide applications in selecting a suitable strong +# java.security.SecureRandom implementation, Java distributions should +# indicate a list of known strong implementations using the property. +# +# This is a comma-separated list of algorithm and/or algorithm:provider +# entries. +# +securerandom.strongAlgorithms=NativePRNGBlocking:SUN + +# +# Class to instantiate as the javax.security.auth.login.Configuration +# provider. +# +login.configuration.provider=sun.security.provider.ConfigFile + +# +# Default login configuration file +# +#login.config.url.1=file:${user.home}/.java.login.config + +# +# Class to instantiate as the system Policy. This is the name of the class +# that will be used as the Policy object. +# +policy.provider=sun.security.provider.PolicyFile + +# The default is to have a single system-wide policy file, +# and a policy file in the user's home directory. +policy.url.1=file:${java.home}/lib/security/java.policy +policy.url.2=file:${user.home}/.java.policy + +# whether or not we expand properties in the policy file +# if this is set to false, properties (${...}) will not be expanded in policy +# files. +policy.expandProperties=true + +# whether or not we allow an extra policy to be passed on the command line +# with -Djava.security.policy=somefile. Comment out this line to disable +# this feature. +policy.allowSystemProperty=true + +# whether or not we look into the IdentityScope for trusted Identities +# when encountering a 1.1 signed JAR file. If the identity is found +# and is trusted, we grant it AllPermission. +policy.ignoreIdentityScope=false + +# +# Default keystore type. +# +keystore.type=jks + +# +# Controls compatibility mode for the JKS keystore type. +# +# When set to 'true', the JKS keystore type supports loading +# keystore files in either JKS or PKCS12 format. When set to 'false' +# it supports loading only JKS keystore files. +# +keystore.type.compat=true + +# +# List of comma-separated packages that start with or equal this string +# will cause a security exception to be thrown when +# passed to checkPackageAccess unless the +# corresponding RuntimePermission ("accessClassInPackage."+package) has +# been granted. +package.access=sun.,\ + org.GNOME.Accessibility.,\ + com.sun.xml.internal.,\ + com.sun.imageio.,\ + com.sun.istack.internal.,\ + com.sun.jmx.,\ + com.sun.media.sound.,\ + com.sun.naming.internal.,\ + com.sun.proxy.,\ + com.sun.corba.se.,\ + com.sun.org.apache.bcel.internal.,\ + com.sun.org.apache.regexp.internal.,\ + com.sun.org.apache.xerces.internal.,\ + com.sun.org.apache.xpath.internal.,\ + com.sun.org.apache.xalan.internal.extensions.,\ + com.sun.org.apache.xalan.internal.lib.,\ + com.sun.org.apache.xalan.internal.res.,\ + com.sun.org.apache.xalan.internal.templates.,\ + com.sun.org.apache.xalan.internal.utils.,\ + com.sun.org.apache.xalan.internal.xslt.,\ + com.sun.org.apache.xalan.internal.xsltc.cmdline.,\ + com.sun.org.apache.xalan.internal.xsltc.compiler.,\ + com.sun.org.apache.xalan.internal.xsltc.trax.,\ + com.sun.org.apache.xalan.internal.xsltc.util.,\ + com.sun.org.apache.xml.internal.res.,\ + com.sun.org.apache.xml.internal.resolver.helpers.,\ + com.sun.org.apache.xml.internal.resolver.readers.,\ + com.sun.org.apache.xml.internal.security.,\ + com.sun.org.apache.xml.internal.serializer.utils.,\ + com.sun.org.apache.xml.internal.utils.,\ + com.sun.org.glassfish.,\ + com.oracle.xmlns.internal.,\ + com.oracle.webservices.internal.,\ + oracle.jrockit.jfr.,\ + org.jcp.xml.dsig.internal.,\ + jdk.internal.,\ + jdk.nashorn.internal.,\ + jdk.nashorn.tools.,\ + jdk.xml.internal.,\ + com.sun.activation.registries. + +# +# List of comma-separated packages that start with or equal this string +# will cause a security exception to be thrown when +# passed to checkPackageDefinition unless the +# corresponding RuntimePermission ("defineClassInPackage."+package) has +# been granted. +# +# by default, none of the class loaders supplied with the JDK call +# checkPackageDefinition. +# +package.definition=sun.,\ + com.sun.xml.internal.,\ + com.sun.imageio.,\ + com.sun.istack.internal.,\ + com.sun.jmx.,\ + com.sun.media.sound.,\ + com.sun.naming.internal.,\ + com.sun.proxy.,\ + com.sun.corba.se.,\ + com.sun.org.apache.bcel.internal.,\ + com.sun.org.apache.regexp.internal.,\ + com.sun.org.apache.xerces.internal.,\ + com.sun.org.apache.xpath.internal.,\ + com.sun.org.apache.xalan.internal.extensions.,\ + com.sun.org.apache.xalan.internal.lib.,\ + com.sun.org.apache.xalan.internal.res.,\ + com.sun.org.apache.xalan.internal.templates.,\ + com.sun.org.apache.xalan.internal.utils.,\ + com.sun.org.apache.xalan.internal.xslt.,\ + com.sun.org.apache.xalan.internal.xsltc.cmdline.,\ + com.sun.org.apache.xalan.internal.xsltc.compiler.,\ + com.sun.org.apache.xalan.internal.xsltc.trax.,\ + com.sun.org.apache.xalan.internal.xsltc.util.,\ + com.sun.org.apache.xml.internal.res.,\ + com.sun.org.apache.xml.internal.resolver.helpers.,\ + com.sun.org.apache.xml.internal.resolver.readers.,\ + com.sun.org.apache.xml.internal.security.,\ + com.sun.org.apache.xml.internal.serializer.utils.,\ + com.sun.org.apache.xml.internal.utils.,\ + com.sun.org.glassfish.,\ + com.oracle.xmlns.internal.,\ + com.oracle.webservices.internal.,\ + oracle.jrockit.jfr.,\ + org.jcp.xml.dsig.internal.,\ + jdk.internal.,\ + jdk.nashorn.internal.,\ + jdk.nashorn.tools.,\ + jdk.xml.internal.,\ + com.sun.activation.registries. + +# +# Determines whether this properties file can be appended to +# or overridden on the command line via -Djava.security.properties +# +security.overridePropertiesFile=true + +# +# Determines the default key and trust manager factory algorithms for +# the javax.net.ssl package. +# +ssl.KeyManagerFactory.algorithm=SunX509 +ssl.TrustManagerFactory.algorithm=PKIX + +# +# The Java-level namelookup cache policy for successful lookups: +# +# any negative value: caching forever +# any positive value: the number of seconds to cache an address for +# zero: do not cache +# +# default value is forever (FOREVER). For security reasons, this +# caching is made forever when a security manager is set. When a security +# manager is not set, the default behavior in this implementation +# is to cache for 30 seconds. +# +# NOTE: setting this to anything other than the default value can have +# serious security implications. Do not set it unless +# you are sure you are not exposed to DNS spoofing attack. +# +#networkaddress.cache.ttl=-1 + +# The Java-level namelookup cache policy for failed lookups: +# +# any negative value: cache forever +# any positive value: the number of seconds to cache negative lookup results +# zero: do not cache +# +# In some Microsoft Windows networking environments that employ +# the WINS name service in addition to DNS, name service lookups +# that fail may take a noticeably long time to return (approx. 5 seconds). +# For this reason the default caching policy is to maintain these +# results for 10 seconds. +# +# +networkaddress.cache.negative.ttl=10 + +# +# Properties to configure OCSP for certificate revocation checking +# + +# Enable OCSP +# +# By default, OCSP is not used for certificate revocation checking. +# This property enables the use of OCSP when set to the value "true". +# +# NOTE: SocketPermission is required to connect to an OCSP responder. +# +# Example, +# ocsp.enable=true + +# +# Location of the OCSP responder +# +# By default, the location of the OCSP responder is determined implicitly +# from the certificate being validated. This property explicitly specifies +# the location of the OCSP responder. The property is used when the +# Authority Information Access extension (defined in RFC 3280) is absent +# from the certificate or when it requires overriding. +# +# Example, +# ocsp.responderURL=http://ocsp.example.net:80 + +# +# Subject name of the OCSP responder's certificate +# +# By default, the certificate of the OCSP responder is that of the issuer +# of the certificate being validated. This property identifies the certificate +# of the OCSP responder when the default does not apply. Its value is a string +# distinguished name (defined in RFC 2253) which identifies a certificate in +# the set of certificates supplied during cert path validation. In cases where +# the subject name alone is not sufficient to uniquely identify the certificate +# then both the "ocsp.responderCertIssuerName" and +# "ocsp.responderCertSerialNumber" properties must be used instead. When this +# property is set then those two properties are ignored. +# +# Example, +# ocsp.responderCertSubjectName="CN=OCSP Responder, O=XYZ Corp" + +# +# Issuer name of the OCSP responder's certificate +# +# By default, the certificate of the OCSP responder is that of the issuer +# of the certificate being validated. This property identifies the certificate +# of the OCSP responder when the default does not apply. Its value is a string +# distinguished name (defined in RFC 2253) which identifies a certificate in +# the set of certificates supplied during cert path validation. When this +# property is set then the "ocsp.responderCertSerialNumber" property must also +# be set. When the "ocsp.responderCertSubjectName" property is set then this +# property is ignored. +# +# Example, +# ocsp.responderCertIssuerName="CN=Enterprise CA, O=XYZ Corp" + +# +# Serial number of the OCSP responder's certificate +# +# By default, the certificate of the OCSP responder is that of the issuer +# of the certificate being validated. This property identifies the certificate +# of the OCSP responder when the default does not apply. Its value is a string +# of hexadecimal digits (colon or space separators may be present) which +# identifies a certificate in the set of certificates supplied during cert path +# validation. When this property is set then the "ocsp.responderCertIssuerName" +# property must also be set. When the "ocsp.responderCertSubjectName" property +# is set then this property is ignored. +# +# Example, +# ocsp.responderCertSerialNumber=2A:FF:00 + +# +# Policy for failed Kerberos KDC lookups: +# +# When a KDC is unavailable (network error, service failure, etc), it is +# put inside a blacklist and accessed less often for future requests. The +# value (case-insensitive) for this policy can be: +# +# tryLast +# KDCs in the blacklist are always tried after those not on the list. +# +# tryLess[:max_retries,timeout] +# KDCs in the blacklist are still tried by their order in the configuration, +# but with smaller max_retries and timeout values. max_retries and timeout +# are optional numerical parameters (default 1 and 5000, which means once +# and 5 seconds). Please notes that if any of the values defined here is +# more than what is defined in krb5.conf, it will be ignored. +# +# Whenever a KDC is detected as available, it is removed from the blacklist. +# The blacklist is reset when krb5.conf is reloaded. You can add +# refreshKrb5Config=true to a JAAS configuration file so that krb5.conf is +# reloaded whenever a JAAS authentication is attempted. +# +# Example, +# krb5.kdc.bad.policy = tryLast +# krb5.kdc.bad.policy = tryLess:2,2000 +krb5.kdc.bad.policy = tryLast + +# Algorithm restrictions for certification path (CertPath) processing +# +# In some environments, certain algorithms or key lengths may be undesirable +# for certification path building and validation. For example, "MD2" is +# generally no longer considered to be a secure hash algorithm. This section +# describes the mechanism for disabling algorithms based on algorithm name +# and/or key length. This includes algorithms used in certificates, as well +# as revocation information such as CRLs and signed OCSP Responses. +# The syntax of the disabled algorithm string is described as follows: +# DisabledAlgorithms: +# " DisabledAlgorithm { , DisabledAlgorithm } " +# +# DisabledAlgorithm: +# AlgorithmName [Constraint] { '&' Constraint } +# +# AlgorithmName: +# (see below) +# +# Constraint: +# KeySizeConstraint | CAConstraint | DenyAfterConstraint | +# UsageConstraint +# +# KeySizeConstraint: +# keySize Operator KeyLength +# +# Operator: +# <= | < | == | != | >= | > +# +# KeyLength: +# Integer value of the algorithm's key length in bits +# +# CAConstraint: +# jdkCA +# +# DenyAfterConstraint: +# denyAfter YYYY-MM-DD +# +# UsageConstraint: +# usage [TLSServer] [TLSClient] [SignedJAR] +# +# The "AlgorithmName" is the standard algorithm name of the disabled +# algorithm. See "Java Cryptography Architecture Standard Algorithm Name +# Documentation" for information about Standard Algorithm Names. Matching +# is performed using a case-insensitive sub-element matching rule. (For +# example, in "SHA1withECDSA" the sub-elements are "SHA1" for hashing and +# "ECDSA" for signatures.) If the assertion "AlgorithmName" is a +# sub-element of the certificate algorithm name, the algorithm will be +# rejected during certification path building and validation. For example, +# the assertion algorithm name "DSA" will disable all certificate algorithms +# that rely on DSA, such as NONEwithDSA, SHA1withDSA. However, the assertion +# will not disable algorithms related to "ECDSA". +# +# A "Constraint" defines restrictions on the keys and/or certificates for +# a specified AlgorithmName: +# +# KeySizeConstraint: +# keySize Operator KeyLength +# The constraint requires a key of a valid size range if the +# "AlgorithmName" is of a key algorithm. The "KeyLength" indicates +# the key size specified in number of bits. For example, +# "RSA keySize <= 1024" indicates that any RSA key with key size less +# than or equal to 1024 bits should be disabled, and +# "RSA keySize < 1024, RSA keySize > 2048" indicates that any RSA key +# with key size less than 1024 or greater than 2048 should be disabled. +# This constraint is only used on algorithms that have a key size. +# +# CAConstraint: +# jdkCA +# This constraint prohibits the specified algorithm only if the +# algorithm is used in a certificate chain that terminates at a marked +# trust anchor in the lib/security/cacerts keystore. If the jdkCA +# constraint is not set, then all chains using the specified algorithm +# are restricted. jdkCA may only be used once in a DisabledAlgorithm +# expression. +# Example: To apply this constraint to SHA-1 certificates, include +# the following: "SHA1 jdkCA" +# +# DenyAfterConstraint: +# denyAfter YYYY-MM-DD +# This constraint prohibits a certificate with the specified algorithm +# from being used after the date regardless of the certificate's +# validity. JAR files that are signed and timestamped before the +# constraint date with certificates containing the disabled algorithm +# will not be restricted. The date is processed in the UTC timezone. +# This constraint can only be used once in a DisabledAlgorithm +# expression. +# Example: To deny usage of RSA 2048 bit certificates after Feb 3 2020, +# use the following: "RSA keySize == 2048 & denyAfter 2020-02-03" +# +# UsageConstraint: +# usage [TLSServer] [TLSClient] [SignedJAR] +# This constraint prohibits the specified algorithm for +# a specified usage. This should be used when disabling an algorithm +# for all usages is not practical. 'TLSServer' restricts the algorithm +# in TLS server certificate chains when server authentication is +# performed. 'TLSClient' restricts the algorithm in TLS client +# certificate chains when client authentication is performed. +# 'SignedJAR' constrains use of certificates in signed jar files. +# The usage type follows the keyword and more than one usage type can +# be specified with a whitespace delimiter. +# Example: "SHA1 usage TLSServer TLSClient" +# +# When an algorithm must satisfy more than one constraint, it must be +# delimited by an ampersand '&'. For example, to restrict certificates in a +# chain that terminate at a distribution provided trust anchor and contain +# RSA keys that are less than or equal to 1024 bits, add the following +# constraint: "RSA keySize <= 1024 & jdkCA". +# +# All DisabledAlgorithms expressions are processed in the order defined in the +# property. This requires lower keysize constraints to be specified +# before larger keysize constraints of the same algorithm. For example: +# "RSA keySize < 1024 & jdkCA, RSA keySize < 2048". +# +# Note: The algorithm restrictions do not apply to trust anchors or +# self-signed certificates. +# +# Note: This property is currently used by Oracle's PKIX implementation. It +# is not guaranteed to be examined and used by other implementations. +# +# Example: +# jdk.certpath.disabledAlgorithms=MD2, DSA, RSA keySize < 2048 +# +# +jdk.certpath.disabledAlgorithms=MD2, MD5, SHA1 jdkCA & usage TLSServer, \ + RSA keySize < 1024, DSA keySize < 1024, EC keySize < 224 + +# +# Algorithm restrictions for signed JAR files +# +# In some environments, certain algorithms or key lengths may be undesirable +# for signed JAR validation. For example, "MD2" is generally no longer +# considered to be a secure hash algorithm. This section describes the +# mechanism for disabling algorithms based on algorithm name and/or key length. +# JARs signed with any of the disabled algorithms or key sizes will be treated +# as unsigned. +# +# The syntax of the disabled algorithm string is described as follows: +# DisabledAlgorithms: +# " DisabledAlgorithm { , DisabledAlgorithm } " +# +# DisabledAlgorithm: +# AlgorithmName [Constraint] { '&' Constraint } +# +# AlgorithmName: +# (see below) +# +# Constraint: +# KeySizeConstraint | DenyAfterConstraint +# +# KeySizeConstraint: +# keySize Operator KeyLength +# +# DenyAfterConstraint: +# denyAfter YYYY-MM-DD +# +# Operator: +# <= | < | == | != | >= | > +# +# KeyLength: +# Integer value of the algorithm's key length in bits +# +# Note: This property is currently used by the JDK Reference +# implementation. It is not guaranteed to be examined and used by other +# implementations. +# +# See "jdk.certpath.disabledAlgorithms" for syntax descriptions. +# +jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, DSA keySize < 1024 + +# +# Algorithm restrictions for Secure Socket Layer/Transport Layer Security +# (SSL/TLS) processing +# +# In some environments, certain algorithms or key lengths may be undesirable +# when using SSL/TLS. This section describes the mechanism for disabling +# algorithms during SSL/TLS security parameters negotiation, including +# protocol version negotiation, cipher suites selection, peer authentication +# and key exchange mechanisms. +# +# Disabled algorithms will not be negotiated for SSL/TLS connections, even +# if they are enabled explicitly in an application. +# +# For PKI-based peer authentication and key exchange mechanisms, this list +# of disabled algorithms will also be checked during certification path +# building and validation, including algorithms used in certificates, as +# well as revocation information such as CRLs and signed OCSP Responses. +# This is in addition to the jdk.certpath.disabledAlgorithms property above. +# +# See the specification of "jdk.certpath.disabledAlgorithms" for the +# syntax of the disabled algorithm string. +# +# Note: The algorithm restrictions do not apply to trust anchors or +# self-signed certificates. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +# Example: +# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048 +jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 1024, \ + EC keySize < 224, DES40_CBC, RC4_40, 3DES_EDE_CBC + +# Legacy algorithms for Secure Socket Layer/Transport Layer Security (SSL/TLS) +# processing in JSSE implementation. +# +# In some environments, a certain algorithm may be undesirable but it +# cannot be disabled because of its use in legacy applications. Legacy +# algorithms may still be supported, but applications should not use them +# as the security strength of legacy algorithms are usually not strong enough +# in practice. +# +# During SSL/TLS security parameters negotiation, legacy algorithms will +# not be negotiated unless there are no other candidates. +# +# The syntax of the legacy algorithms string is described as this Java +# BNF-style: +# LegacyAlgorithms: +# " LegacyAlgorithm { , LegacyAlgorithm } " +# +# LegacyAlgorithm: +# AlgorithmName (standard JSSE algorithm name) +# +# See the specification of security property "jdk.certpath.disabledAlgorithms" +# for the syntax and description of the "AlgorithmName" notation. +# +# Per SSL/TLS specifications, cipher suites have the form: +# SSL_KeyExchangeAlg_WITH_CipherAlg_MacAlg +# or +# TLS_KeyExchangeAlg_WITH_CipherAlg_MacAlg +# +# For example, the cipher suite TLS_RSA_WITH_AES_128_CBC_SHA uses RSA as the +# key exchange algorithm, AES_128_CBC (128 bits AES cipher algorithm in CBC +# mode) as the cipher (encryption) algorithm, and SHA-1 as the message digest +# algorithm for HMAC. +# +# The LegacyAlgorithm can be one of the following standard algorithm names: +# 1. JSSE cipher suite name, e.g., TLS_RSA_WITH_AES_128_CBC_SHA +# 2. JSSE key exchange algorithm name, e.g., RSA +# 3. JSSE cipher (encryption) algorithm name, e.g., AES_128_CBC +# 4. JSSE message digest algorithm name, e.g., SHA +# +# See SSL/TLS specifications and "Java Cryptography Architecture Standard +# Algorithm Name Documentation" for information about the algorithm names. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# There is no guarantee the property will continue to exist or be of the +# same syntax in future releases. +# +# Example: +# jdk.tls.legacyAlgorithms=DH_anon, DES_CBC, SSL_RSA_WITH_RC4_128_MD5 +# +jdk.tls.legacyAlgorithms= \ + K_NULL, C_NULL, M_NULL, \ + DH_anon, ECDH_anon, \ + RC4_128, RC4_40, DES_CBC, DES40_CBC, \ + 3DES_EDE_CBC + +# The pre-defined default finite field Diffie-Hellman ephemeral (DHE) +# parameters for Transport Layer Security (SSL/TLS/DTLS) processing. +# +# In traditional SSL/TLS/DTLS connections where finite field DHE parameters +# negotiation mechanism is not used, the server offers the client group +# parameters, base generator g and prime modulus p, for DHE key exchange. +# It is recommended to use dynamic group parameters. This property defines +# a mechanism that allows you to specify custom group parameters. +# +# The syntax of this property string is described as this Java BNF-style: +# DefaultDHEParameters: +# DefinedDHEParameters { , DefinedDHEParameters } +# +# DefinedDHEParameters: +# "{" DHEPrimeModulus , DHEBaseGenerator "}" +# +# DHEPrimeModulus: +# HexadecimalDigits +# +# DHEBaseGenerator: +# HexadecimalDigits +# +# HexadecimalDigits: +# HexadecimalDigit { HexadecimalDigit } +# +# HexadecimalDigit: one of +# 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f +# +# Whitespace characters are ignored. +# +# The "DefinedDHEParameters" defines the custom group parameters, prime +# modulus p and base generator g, for a particular size of prime modulus p. +# The "DHEPrimeModulus" defines the hexadecimal prime modulus p, and the +# "DHEBaseGenerator" defines the hexadecimal base generator g of a group +# parameter. It is recommended to use safe primes for the custom group +# parameters. +# +# If this property is not defined or the value is empty, the underlying JSSE +# provider's default group parameter is used for each connection. +# +# If the property value does not follow the grammar, or a particular group +# parameter is not valid, the connection will fall back and use the +# underlying JSSE provider's default group parameter. +# +# Note: This property is currently used by OpenJDK's JSSE implementation. It +# is not guaranteed to be examined and used by other implementations. +# +# Example: +# jdk.tls.server.defaultDHEParameters= +# { \ +# FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \ +# 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \ +# EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245 \ +# E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \ +# EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381 \ +# FFFFFFFF FFFFFFFF, 2} + +# Cryptographic Jurisdiction Policy defaults +# +# Import and export control rules on cryptographic software vary from +# country to country. By default, the JDK provides two different sets of +# cryptographic policy files: +# +# unlimited: These policy files contain no restrictions on cryptographic +# strengths or algorithms. +# +# limited: These policy files contain more restricted cryptographic +# strengths, and are still available if your country or +# usage requires the traditional restrictive policy. +# +# The JDK JCE framework uses the unlimited policy files by default. +# However the user may explicitly choose a set either by defining the +# "crypto.policy" Security property or by installing valid JCE policy +# jar files into the traditional JDK installation location. To better +# support older JDK Update releases, the "crypto.policy" property is not +# defined by default. See below for more information. +# +# The following logic determines which policy files are used: +# +# refers to the directory where the JRE was +# installed and may be determined using the "java.home" +# System property. +# +# 1. If the Security property "crypto.policy" has been defined, +# then the following mechanism is used: +# +# The policy files are stored as jar files in subdirectories of +# /lib/security/policy. Each directory contains a complete +# set of policy files. +# +# The "crypto.policy" Security property controls the directory +# selection, and thus the effective cryptographic policy. +# +# The default set of directories is: +# +# limited | unlimited +# +# 2. If the "crypto.policy" property is not set and the traditional +# US_export_policy.jar and local_policy.jar files +# (e.g. limited/unlimited) are found in the legacy +# /lib/security directory, then the rules embedded within +# those jar files will be used. This helps preserve compatibility +# for users upgrading from an older installation. +# +# 3. If the jar files are not present in the legacy location +# and the "crypto.policy" Security property is not defined, +# then the JDK will use the unlimited settings (equivalent to +# crypto.policy=unlimited) +# +# Please see the JCA documentation for additional information on these +# files and formats. +# +# YOU ARE ADVISED TO CONSULT YOUR EXPORT/IMPORT CONTROL COUNSEL OR ATTORNEY +# TO DETERMINE THE EXACT REQUIREMENTS. +# +# Please note that the JCE for Java SE, including the JCE framework, +# cryptographic policy files, and standard JCE providers provided with +# the Java SE, have been reviewed and approved for export as mass market +# encryption item by the US Bureau of Industry and Security. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +crypto.policy=unlimited + +# +# The policy for the XML Signature secure validation mode. The mode is +# enabled by setting the property "org.jcp.xml.dsig.secureValidation" to +# true with the javax.xml.crypto.XMLCryptoContext.setProperty() method, +# or by running the code with a SecurityManager. +# +# Policy: +# Constraint {"," Constraint } +# Constraint: +# AlgConstraint | MaxTransformsConstraint | MaxReferencesConstraint | +# ReferenceUriSchemeConstraint | KeySizeConstraint | OtherConstraint +# AlgConstraint +# "disallowAlg" Uri +# MaxTransformsConstraint: +# "maxTransforms" Integer +# MaxReferencesConstraint: +# "maxReferences" Integer +# ReferenceUriSchemeConstraint: +# "disallowReferenceUriSchemes" String { String } +# KeySizeConstraint: +# "minKeySize" KeyAlg Integer +# OtherConstraint: +# "noDuplicateIds" | "noRetrievalMethodLoops" +# +# For AlgConstraint, Uri is the algorithm URI String that is not allowed. +# See the XML Signature Recommendation for more information on algorithm +# URI Identifiers. For KeySizeConstraint, KeyAlg is the standard algorithm +# name of the key type (ex: "RSA"). If the MaxTransformsConstraint, +# MaxReferencesConstraint or KeySizeConstraint (for the same key type) is +# specified more than once, only the last entry is enforced. +# +# Note: This property is currently used by the JDK Reference implementation. It +# is not guaranteed to be examined and used by other implementations. +# +jdk.xml.dsig.secureValidationPolicy=\ + disallowAlg http://www.w3.org/TR/1999/REC-xslt-19991116,\ + disallowAlg http://www.w3.org/2001/04/xmldsig-more#rsa-md5,\ + disallowAlg http://www.w3.org/2001/04/xmldsig-more#hmac-md5,\ + disallowAlg http://www.w3.org/2001/04/xmldsig-more#md5,\ + maxTransforms 5,\ + maxReferences 30,\ + disallowReferenceUriSchemes file http https,\ + minKeySize RSA 1024,\ + minKeySize DSA 1024,\ + minKeySize EC 224,\ + noDuplicateIds,\ + noRetrievalMethodLoops + +# +# Serialization process-wide filter +# +# A filter, if configured, is used by java.io.ObjectInputStream during +# deserialization to check the contents of the stream. +# A filter is configured as a sequence of patterns, each pattern is either +# matched against the name of a class in the stream or defines a limit. +# Patterns are separated by ";" (semicolon). +# Whitespace is significant and is considered part of the pattern. +# +# If the system property jdk.serialFilter is also specified, it supersedes +# the security property value defined here. +# +# If a pattern includes a "=", it sets a limit. +# If a limit appears more than once the last value is used. +# Limits are checked before classes regardless of the order in the sequence of patterns. +# If any of the limits are exceeded, the filter status is REJECTED. +# +# maxdepth=value - the maximum depth of a graph +# maxrefs=value - the maximum number of internal references +# maxbytes=value - the maximum number of bytes in the input stream +# maxarray=value - the maximum array length allowed +# +# Other patterns, from left to right, match the class or package name as +# returned from Class.getName. +# If the class is an array type, the class or package to be matched is the element type. +# Arrays of any number of dimensions are treated the same as the element type. +# For example, a pattern of "!example.Foo", rejects creation of any instance or +# array of example.Foo. +# +# If the pattern starts with "!", the status is REJECTED if the remaining pattern +# is matched; otherwise the status is ALLOWED if the pattern matches. +# If the pattern ends with ".**" it matches any class in the package and all subpackages. +# If the pattern ends with ".*" it matches any class in the package. +# If the pattern ends with "*", it matches any class with the pattern as a prefix. +# If the pattern is equal to the class name, it matches. +# Otherwise, the status is UNDECIDED. +# +# Primitive types are not configurable with this filter. +# +#jdk.serialFilter=pattern;pattern + +# +# RMI Registry Serial Filter +# +# The filter pattern uses the same format as jdk.serialFilter. +# This filter can override the builtin filter if additional types need to be +# allowed or rejected from the RMI Registry or to decrease limits but not +# to increase limits. +# If the limits (maxdepth, maxrefs, or maxbytes) are exceeded, the object is rejected. +# +# The maxdepth of any array passed to the RMI Registry is set to +# 10000. The maximum depth of the graph is set to 20. +# These limits can be reduced via the maxarray, maxdepth limits. +# +#sun.rmi.registry.registryFilter=pattern;pattern + +# +# Array construction of any component type, including subarrays and arrays of +# primitives, are allowed unless the length is greater than the maxarray limit. +# The filter is applied to each array element. +# +# The built-in filter allows subclasses of allowed classes and +# can approximately be represented as the pattern: +# +#sun.rmi.registry.registryFilter=\ +# maxarray=1000000;\ +# maxdepth=20;\ +# java.lang.String;\ +# java.lang.Number;\ +# java.lang.reflect.Proxy;\ +# java.rmi.Remote;\ +# sun.rmi.server.UnicastRef;\ +# sun.rmi.server.RMIClientSocketFactory;\ +# sun.rmi.server.RMIServerSocketFactory;\ +# java.rmi.activation.ActivationID;\ +# java.rmi.server.UID +# +# RMI Distributed Garbage Collector (DGC) Serial Filter +# +# The filter pattern uses the same format as jdk.serialFilter. +# This filter can override the builtin filter if additional types need to be +# allowed or rejected from the RMI DGC. +# +# The builtin DGC filter can approximately be represented as the filter pattern: +# +#sun.rmi.transport.dgcFilter=\ +# java.rmi.server.ObjID;\ +# java.rmi.server.UID;\ +# java.rmi.dgc.VMID;\ +# java.rmi.dgc.Lease;\ +# maxdepth=5;maxarray=10000 + +# CORBA ORBIorTypeCheckRegistryFilter +# Type check enhancement for ORB::string_to_object processing +# +# An IOR type check filter, if configured, is used by an ORB during +# an ORB::string_to_object invocation to check the veracity of the type encoded +# in the ior string. +# +# The filter pattern consists of a semi-colon separated list of class names. +# The configured list contains the binary class names of the IDL interface types +# corresponding to the IDL stub class to be instantiated. +# As such, a filter specifies a list of IDL stub classes that will be +# allowed by an ORB when an ORB::string_to_object is invoked. +# It is used to specify a white list configuration of acceptable +# IDL stub types which may be contained in a stringified IOR +# parameter passed as input to an ORB::string_to_object method. +# +# Note: This property is currently used by the JDK Reference implementation. +# It is not guaranteed to be examined and used by other implementations. +# +#com.sun.CORBA.ORBIorTypeCheckRegistryFilter=binary_class_name;binary_class_name + +# +# JCEKS Encrypted Key Serial Filter +# +# This filter, if configured, is used by the JCEKS KeyStore during the +# deserialization of the encrypted Key object stored inside a key entry. +# If not configured or the filter result is UNDECIDED (i.e. none of the patterns +# matches), the filter configured by jdk.serialFilter will be consulted. +# +# If the system property jceks.key.serialFilter is also specified, it supersedes +# the security property value defined here. +# +# The filter pattern uses the same format as jdk.serialFilter. The default +# pattern allows java.lang.Enum, java.security.KeyRep, java.security.KeyRep$Type, +# and javax.crypto.spec.SecretKeySpec and rejects all the others. +jceks.key.serialFilter = java.lang.Enum;java.security.KeyRep;\ + java.security.KeyRep$Type;javax.crypto.spec.SecretKeySpec;!* diff --git a/java-8-openjdk/security/nss.cfg b/java-8-openjdk/security/nss.cfg new file mode 100644 index 0000000..3535a40 --- /dev/null +++ b/java-8-openjdk/security/nss.cfg @@ -0,0 +1,4 @@ +name = NSS +nssDbMode = noDb +attributes = compatibility +handleStartupErrors = ignoreMultipleInitialisation diff --git a/java-8-openjdk/sound.properties b/java-8-openjdk/sound.properties new file mode 100644 index 0000000..ac14cef --- /dev/null +++ b/java-8-openjdk/sound.properties @@ -0,0 +1,49 @@ +############################################################ +# Sound Configuration File +############################################################ +# +# This properties file is used to specify default service +# providers for javax.sound.midi.MidiSystem and +# javax.sound.sampled.AudioSystem. +# +# The following keys are recognized by MidiSystem methods: +# +# javax.sound.midi.Receiver +# javax.sound.midi.Sequencer +# javax.sound.midi.Synthesizer +# javax.sound.midi.Transmitter +# +# The following keys are recognized by AudioSystem methods: +# +# javax.sound.sampled.Clip +# javax.sound.sampled.Port +# javax.sound.sampled.SourceDataLine +# javax.sound.sampled.TargetDataLine +# +# The values specify the full class name of the service +# provider, or the device name. +# +# See the class descriptions for details. +# +# Example 1: +# Use MyDeviceProvider as default for SourceDataLines: +# javax.sound.sampled.SourceDataLine=com.xyz.MyDeviceProvider +# +# Example 2: +# Specify the default Synthesizer by its name "InternalSynth". +# javax.sound.midi.Synthesizer=#InternalSynth +# +# Example 3: +# Specify the default Receiver by provider and name: +# javax.sound.midi.Receiver=com.sun.media.sound.MidiProvider#SunMIDI1 +# + +javax.sound.sampled.Clip=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider +javax.sound.sampled.Port=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider +javax.sound.sampled.SourceDataLine=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider +javax.sound.sampled.TargetDataLine=org.classpath.icedtea.pulseaudio.PulseAudioMixerProvider + +#javax.sound.sampled.Clip=com.sun.media.sound.DirectAudioDeviceProvider +#javax.sound.sampled.Port=com.sun.media.sound.PortMixerProvider +#javax.sound.sampled.SourceDataLine=com.sun.media.sound.DirectAudioDeviceProvider +#javax.sound.sampled.TargetDataLine=com.sun.media.sound.DirectAudioDeviceProvider diff --git a/java-8-openjdk/swing.properties b/java-8-openjdk/swing.properties new file mode 100644 index 0000000..0f55df0 --- /dev/null +++ b/java-8-openjdk/swing.properties @@ -0,0 +1,2 @@ +# uncomment to set the default look and feel to GTK +#swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel diff --git a/rcS.d/S16screen-cleanup b/rcS.d/S16screen-cleanup new file mode 120000 index 0000000..205268c --- /dev/null +++ b/rcS.d/S16screen-cleanup @@ -0,0 +1 @@ +../init.d/screen-cleanup \ No newline at end of file diff --git a/rcS.d/S16x11-common b/rcS.d/S16x11-common new file mode 120000 index 0000000..b51f57c --- /dev/null +++ b/rcS.d/S16x11-common @@ -0,0 +1 @@ +../init.d/x11-common \ No newline at end of file diff --git a/screenrc b/screenrc new file mode 100644 index 0000000..032db64 --- /dev/null +++ b/screenrc @@ -0,0 +1,108 @@ +# $Id: screenrc,v 1.15 2003/10/08 11:39:03 zal Exp $ +# +# /etc/screenrc +# +# This is the system wide screenrc. +# +# You can use this file to change the default behavior of screen system wide +# or copy it to ~/.screenrc and use it as a starting point for your own +# settings. +# +# Commands in this file are used to set options, bind screen functions to +# keys, redefine terminal capabilities, and to automatically establish one or +# more windows at the beginning of your screen session. +# +# This is not a comprehensive list of options, look at the screen manual for +# details on everything that you can put in this file. +# + +# ------------------------------------------------------------------------------ +# SCREEN SETTINGS +# ------------------------------------------------------------------------------ + +#startup_message off +#nethack on + +#defflow on # will force screen to process ^S/^Q +deflogin on +#autodetach off + +# turn visual bell on +vbell on +vbell_msg " Wuff ---- Wuff!! " + +# define a bigger scrollback, default is 100 lines +defscrollback 1024 + +# ------------------------------------------------------------------------------ +# SCREEN KEYBINDINGS +# ------------------------------------------------------------------------------ + +# Remove some stupid / dangerous key bindings +bind ^k +#bind L +bind ^\ +# Make them better +bind \\ quit +bind K kill +bind I login on +bind O login off +bind } history + +# An example of a "screen scraper" which will launch urlview on the current +# screen window +# +#bind ^B eval "hardcopy_append off" "hardcopy -h $HOME/.screen-urlview" "screen urlview $HOME/.screen-urlview" + +# ------------------------------------------------------------------------------ +# TERMINAL SETTINGS +# ------------------------------------------------------------------------------ + +# The vt100 description does not mention "dl". *sigh* +termcapinfo vt100 dl=5\E[M + +# turn sending of screen messages to hardstatus off +hardstatus off +# Set the hardstatus prop on gui terms to set the titlebar/icon title +termcapinfo xterm*|rxvt*|kterm*|Eterm* hs:ts=\E]0;:fs=\007:ds=\E]0;\007 +# use this for the hard status string +hardstatus string "%h%? users: %u%?" + +# An alternative hardstatus to display a bar at the bottom listing the +# windownames and highlighting the current windowname in blue. (This is only +# enabled if there is no hardstatus setting for your terminal) +# +#hardstatus lastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<" + +# set these terminals up to be 'optimal' instead of vt100 +termcapinfo xterm*|linux*|rxvt*|Eterm* OP + +# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E> +# (This fixes the "Aborted because of window size change" konsole symptoms found +# in bug #134198) +termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l' + +# To get screen to add lines to xterm's scrollback buffer, uncomment the +# following termcapinfo line which tells xterm to use the normal screen buffer +# (which has scrollback), not the alternate screen buffer. +# +#termcapinfo xterm|xterms|xs|rxvt ti@:te@ + +# Enable non-blocking mode to better cope with flaky ssh connections. +defnonblock 5 + +# ------------------------------------------------------------------------------ +# STARTUP SCREENS +# ------------------------------------------------------------------------------ + +# Example of automatically running some programs in windows on screen startup. +# +# The following will open top in the first window, an ssh session to monkey +# in the next window, and then open mutt and tail in windows 8 and 9 +# respectively. +# +# screen top +# screen -t monkey ssh monkey +# screen -t mail 8 mutt +# screen -t daemon 9 tail -f /var/log/daemon.log + diff --git a/shells b/shells index 29b2701..1f0d15c 100644 --- a/shells +++ b/shells @@ -5,3 +5,4 @@ /bin/rbash /bin/zsh /usr/bin/zsh +/usr/bin/screen diff --git a/ssl/certs/java/cacerts b/ssl/certs/java/cacerts new file mode 100644 index 0000000000000000000000000000000000000000..de4888cb9dff22482463c2930c64c06e449e32d3 GIT binary patch literal 178053 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�_^{ zB!ti5eR{j60Hsw@PP`SnfNiQT!ccgA87KdPE}EWaw!IM)k4Ksm-gB8ZKX|>(A+-K_ zVJI$SKy3kj(#6B!x}f^n3`0kiZz-$PfSd8cbym0zHN_8B^GUW?GUhlkF(rsA`(DKb z$0~=jAx8v;MYn^E6f&1!k*B zW62J|QTS?(B$iT7r?$j9d-$SWjOg%`6x$6EaH+toLw#-|Gl=n->vw!w&za<#npA;R z8X)+u&tI!*&G7fM_!S{Az8dtXHJ&8Co5ne`Tv$wTs&9nk3Ko@NbkcUB%>}?tB zoPZ=jl>>(0rLU9y`Mi)O1Q4&m#^}dKLF&IgFG%66cQ7~5>JQ)$o!6xShX9Z0?C}5O zGyRhu%A+TpGs{>}pi#SyvWUB(`;y^%piZ9*3&-hPpCSBl6ny^Lcblg#dw7sCb$Ity zuf9q@in?jFkj99kzMTix_T&JU%*xHag)(B`QB*?c6Q^WMnvRr%n}b(PZfn+mriN9h zGdz{LzSrshyw}`2L-v8C$Gn1NX3oUsTr*DQiU@PSlQ}Mwp)AC*$fKwv7%VaRS@jTF z;p3f#ZPa@nt061c+>6qxI~s0w%qi^Vy3(_6^}9P41vc*q^QL3(wCQH|Y=ivi2DMiS zU%Jt!el}IC;0anssNL(bErJuP)|}_!H#jy=Hs~G6=m0e-w-<}M8BnZorQNlHv5H%` zLZbfV!oj#G5ztCOrW!29urjU0P?MjLzS;Kca~NA2rOnX;tEAJX5-{fuzxjM{--L`koCFX^#%&C51i zZ_=eF_e6uSb`RK@IX)fO-XhXgqu&!_7b{xxa4ITFNs>c*9=*zPgXqPb-en5}id*1a z!v_ro4a$p2mB&)yur_;+ooa#@Y{TZ`o$o8SYRF0L-f|zz<}VQj@o&7@GE0h&_1Gxc ziT#4>IhqjuS`_^y^Umj#bm!=`bdIk88))_hv4B~No$x#E&if*`z(BEiW zpK@|P`Mo!qMUnvO9*#;PtxHPO1R>ie#A8wy+M4J`F!ds$#o4w;BVP21B^y1a6JcV^ zwb-bGJk#8}#shP`q+h<0s4CrhK2J4*p+~4YCRE!>VoJ5ZU0xOLp@Pvg{?GP!0X9qys~b-m z%?lm~u{3m$mCX@sGzwAH_3M>cpH`O1fpU(hgdNut9{EPPByF{=2RoK9GaOSPh*4yX zVZXf@Xngl;gnD9Zp?1!)5#rc^ax3GZeaYIv=#6hS`Dgp|J}ezTECl@t*IsPi!G{l& zjPY4W*?UTzANcZ(KBkzm_+#@1OasOOLM$8x2fPOdgk}W|zK}|Qb*6vTT;a}~dzu_J7toi7QGK6{G&9+ANMyIajzUE8Wky?Ht<{yY%@I)uHD^^ze z9?Wux7YlrYD1S=0dClSjt&oH?OGQhB$b)CJ2ryf7EXJX0eqVLCHO$sEqh#(BgE5LQfxJXTve3W`_wg!e|^-q=cQ5;WsczY1iX*gRU((U9x;Vv$Dv9JRn9GJ9d2}?~Go_;rzVWBRxt!O2dFVv%6`?IjPZNUfv{G)06+vThDQfx4 zw=a1M=iueNTi;K3Nqy5uR5M<%)<;JYe7~ACA+Oi69>7+Lxa_K+w=JfE++o*NkF^r9dlfO%^u{BTJW(Jxw7Mpzy!A6XV zHJJUHxzqHO^61e=zgX5FPaG`UYwGKSdS-IhZO-J=hqO75XaV}`{vThSih z)=qk*&>H~Vp`t&cmJ9F_h*Y2*|NeCpbIapm18)Nxcpcclqh}lVFHp=!m%IlcoAFuPE5$FT`UgG@k!R z-;PUwf$Sw^61%nVt%u?ATHooj5**b7CxToFS}ZaUEQMyHC3GpTtMp69 z34hWWfpL6$^Q({VbD>Z5oCmUdZw&kKb>LY2dwAq$>tMIZXOHBA$?pgVjGMgy+@zlP60a-b&B*)MhIIL^Z!PT}duS}PXB#XO-G-g9N zI%vxodNOr1EHjTASvXoXDcmFsiG$%Z1ta_rFT##L;)uV;HPZ}WW{Y4)!K?ydIkk4z z)3$Kq0xuh&^Qss{zJeeRt7&1HACqYvNV|)RZU&_0Lr3U1yT<@)k_l9t};hS|L zyRB^%%JTw z0XlBJt`=3s^b)E_&Xb}*zR|(d0Xhc>k{dnC8~_7|E^;6jmVYDYr{aJE$Z>Gt!0QLj zfkQ1{T4W64sHUL=n~`er%YYkra6s@SB?1`aAGOOU_;~WpW4DMAVipQl7S&rP{3?MTxnHhRT))CFmmoF{AjKS#V3oL9;HZ&~Nx3^sz7_u+8sx=$E<7{BB> zG&&JVScI>l@1szYF+R9`JUsGvz_JT(sK^&VbcLt{)oJJY4wG8tX&8mQxGe_2OZ+x z8kYt%!T;h<0yglk=kS5RRA&$y@#Q&uYG(@o0b&U)()=-q4+wxDj2wv93K_%)J^Zh_ z&EH55Cio6HVLJS~Y%ks#A(43RZbFJ)|Nu*REkxKOJ;TMUUPc>s@{!Mxw zmoj_5#^vQ@xB-S~u|Aa;em)}dr=R${Hoq)A7BFB_I508lc4(NIZfWOhsU~@YU0dsr z53P)@9|hD$5&g({7TP%~x=}^=(?>tm%59!x&pW|^rF252hi=Ti97N^P?F+l7Et+N^ zWwVRSR<&_I;XudXx#{7p#R#eelg6rmUI(~HFR1XG&uMk>uyS#Mc7k-YHFCAG2V@5T zVb}~Vr+GFnQ96La5X5G{i7NadKPu%g78vliRWBPJNaSm07j8h4K?(#fAO2U~>Yr)^yJvIY<|p=#k%`J? z42x!x^i8QdIPUdZ9Lh+IxSJ$CUnzA4J&=_TG4>1@0SPkfJkLG3@+m*9ik617hChM! zwOZPJpP^v{8U44FZ!+T>>Bf94Xy>gA77;y%LdTsPx#`s_Lxq`RnfM-S%788N0+anP zsnXoP6Q&y`!$ds@hF|q>T)t|Lb0faz-f%AW*vPe+TP&q}L@SCuv0TY@FVk;r?rUE| zpvt+86u(*&VZI*k+-*e0dPiwK(ADFRSHU}2IqI=`>#S#Ya-0IIEGz6c z3bLFvl9y-=frk$DQQ8T@Lqi39RGV34ea}ukG42Z=CwB6R@$BRNwWHC>A&>p z(M!IXQ~Nd62GG74>4YZgJ^HCrBV*@-dn7>lN#(nv(nVpDNQ?8))WzU{!hg057nVh> zv)3X7svry1E@I^2aAG*kx&hTU14>AszX>XJNW9Q zszcBZbm&si;mvlbq?nSTYucJ6-BeJW zycX?}x)t-o4BvrWYr9dVD!~~N$V4_~i5{@e^J;j}116jZ3tfo?d~S6ga2&lhbC1%4 zt@E9^FKSxbNZ^`_rZIRmk%X9c_lAvlOiq%Kpr?)EVnNov`s@vy1mjQs9PZAGO zJh)eDkD?!64OiyG#b(GrcvXWCg}zmHteY-ORKwBv=-KH5H68X`;bZ385zUHS^AGST z%bH$EQQn+Z86&uZ)6R*!?!@?wTo85Y{&GY`V#uA7-HF?r1s^!8A1=vUb8RD9{6-CL z#MIXL7B5Rm@xUewC90B(WZNyX)elA$F)=Nd7_Oy4J+%lV$joYfm|l9PBL00oHsNiB6qQl)v7FnrY-prZuFw-$K6gjEi-GKDdhnQI4^fbz9V3R+Px_AijvgV$ zq|xmq3l4FVhX;n0k2oh>H-i$KlnssyZw(x^Hrs{gyaG|DJH@@_O2roy^NqjBTO9u| zXOQI0-Hzo_cSNFT3&uD1D3EDswk6QWd5~rB-vn7l&ywmk`K?gSlL-vym&(W6_*a4R zyQ0RPaRyM&zA@(?OehQv@iKc4H37UoV(TCL-QNT1Uz}pVBAA(6Vtj1TUAPn{fLnY3 zy!_8h0wzpBgcmb#2N<-EJ2 zAa4Skyj;B8&^F_caWudoFXRyXfBy;p#+wSl?|S#rPSR)I_T7r6fjJx*-Hu+kmHa~O z8{f?>xVFr!J-y)wB+?L7bsRfnI>zj*{b6}hBPHMN1jc1ojCF@3)KimH$J;320{gmO%7Q131n4;9KIi}iq@-qi2j(I3wCg-We4`9wAy^#!FsGcfOiwVI?EuGF>5 zvi4)hsFBy$qLlnB#dGx(;%Wy9-?=8-hXe3oZXct<^B#D}&Da^O!|fhb&GwwCd_OH* zdIAU5OBoI3N2>BcIay(hxc=~9?(j)81Ip*S@s@TjV-5_(G;p;kH4Kt^^oGyhDUf|d zf^H?!^QswO81`9posog(r6!o0wLiBDyb9nwT?e)c*V%T#ktu!QKa$J%G8`-z!oDwI z^P9c~i*x>{bU{0-ba4ebtU&xHBUfPH#`#ox2X@XMO|;?hv1EYM`B`n8B)ldSpD|?L1_G0g^b_`y%0e9=I zj<@)BNHmiWM11(n?S74AL7e7VLa_=~shGlBv#-a4G}vbES;o0yA{W1TyukCRN_-uj zTljL#h20wii7PPY-U9+~FK*Txi$I+h8s~{xgTL8q%?*>l&iOE-WksWa)tfeTIrEBS zOqmL~85k3&(PG5xRMVhYy>^xd&)6FrOWM%M=wn@-+kC8_@r;1Ozb{(i`)Htdjyzx0 zO^c@zHLZwjpKa=rbX+BJ9%fh-&=iz@cYH#kFR_`tGW<9-it^$5Y%?L8(6b5q zO)>UeeUvnjkwB}DIH{y8)y&!pi=wHS8*sP(L+DQHld?RYt4@cLbBeKU-&+X{gTrxt z6AfrmIhX8eDlv?HA=OtVbAF+wzz%W67Syan(CvkB9hvuHm|_hN6ti5Z`*7~3xsp-d zdqg(<7GJRfB=a%uOV6=y{-pKd>C(vumFXH7p(@8~rCW@WOyGTc`Z~h69i~L*Go|G5-3jGUOio5;T7|vXw z?He+$)Sd05cNr8O-?XT?_3YHb-N|zjGe?U6UyzP7IOi#xE?9nUS`E1#4mB2L#ni+w zm8d?f3vcPYZ(PKIC|8tO<(Io<+V0D3)l7m-gk}_-dmc&FXi*;MV{zyR(a4j`)o5SS z@ALBFK=&W@A29J*Uwf`!irlwu{oI8J_&^>R8`y>4&UWFiKrkeLvHaCk{d;Aq==jVR z0Pk5-d9ME_N&{qdfRr*nw;(6frd&S!A6y9}mwG7^0Shgo#)JXj0u;FW0Kcw=tMl}W zQvpJ72?nm|Y@hOaCp<~0c=od+k%G*Pmh6e4F?&|^*dw|;v7n8N&jzcDj551S1>!z4 zA6PazOVv3tx)EU$sA9}11fM7$>Q=iT(3`J#_xNLg*&{gX5yF`Q1}btE%$?^IF}(eF+-M8NC@ zjiMed<+qV+Tdrt5W({VDr+5Na@lhPJ6vgX)EuZLe+8}R5y;b*aPx|K*(je zZ>Mxog;u7My&ks5=e=@gHq}6MedL?_n`NfN3ao%7RhJ6AD#6x`dD+mD(fNZiq!CzgIZJTHPKli7- z4+uC0WKH-8h+ueF*zcGB&gU5?#B}kn^nori&Fo^U?QNZjRM=25RqeuTFI1MvZye=R zJso$f#{xsMlh?2Dig_SO-ZE~AzEz86A--BMO=C{orE%!oBdR1Z7EtPu5$OFYr(>6g zIC>mcV(0iOi!!0#6XV7FR+$1rH2%wIHVZ^2wyUci%P){{q> zj+C@ELwdSMQzTiLNRwFSJHYb{f25>-YF<>Zw?WL!F`GmOzKgapCT;i*%V>V}5Srb7 zjRdaTV`?uf<0kCn)ejuh#1EmWg#3ppF|soPiq?Nx^Gn8jqvEF;fqe<=jcVYfccw=0 zk!&-EU6c9D#f8xykAKc^hu^w>$t!^a3;wEAAS72P(u*Vsz1=xW1|A>h?8Hwye%8{O z7t9L`jf4J!qG^{7|1)2$1I9-}hN752Z-O&86CM^BUJ3?*Ir&Muq~B}I)X%WwTJ2jm z^Ix)+<9&Y5K6=>IHdbUu?Ghj?{K!V|E_Z&LN=URnv8A!Bwy(@B$_oBP3zQY}8K_(L zha2~+pLe;W^I7%eC{hN0F*pP{&aoq{m9)(B_2pk6{52S`92^bIhv4{J;+m)fR;2ud zVzNh;M$U(G+3$`hJPiw^Q`%}6E69Xd?BU1oE1%9vx3Z8*MNk+~lmIhY#K(^l1%@v4=&ME{T zg-T$~OEr-j!jZ&>Q6Opa?E6lx7bp zpoX;O;{k*D0N3&C5FGG-s}b7%x&QX`YR)e%@&t_$_}&P zEZvBBN5Wk@DQnHM1Lsf2ga${Lc*mUuGew9%Z}06}^?H0|*f9Qw^yE_Yv}4h^Nq2Z9eLcdp{jAE!dC{jtS-!l5C z&hs~nD))1ErwMkbzn6OqhjJ9z`_eIfYJbbHw0LTPY%(T`IW44PCV0y`KE+uyE$B`d zP3`c`)#Gu;o2s6*4I-=&iH~+G1}ytQ1oxEm4L(II?(znZ@{i)8)R;F8UhfOkh7oEB z*e8A)&v$zucg&4^E`o8{TS4+fmK3RkF-4`>QGU8AGe8}0u`E*IHm5Z4LS(zQNs=Nn zSS3isnDmZFUvg}|AM8r{hy94~Y5GT^@zwX%$2V`>@MUA@w9+y9P;6bx!iS6Ct=7O5 z)W|XAJUmKCB>z#~93;Mz)K(e|>z$A7ZMus|5<31oZ1^y!S?IMD6WbQ1<&C0+e2@0L zSgdUR2+k|=&8R3V_TM~HNADj8fl{uKR^!Q)9m#4E73P{1ry*l6+e}fjBRQ{zgyDT; zn>0Y=__zT-$iV%{|4pw{HZc$Sf5=65BDCo2>}qhk?fg!F#5#T3iB1FkvR#EHV1ZVC zZm;Y#6pL_f$?zUE~d^M zpJk(`3bz=<+r1*o)KRztUTEPrF5S={OGQ&vOw&?_`=YvsX}GK`rTO_TIStJqxloVC zR&DI2WygW;=^@)rQ`fF6d7l6d3;zSJ+{y)1+u)Fd@8L;|o&hly3v#X+(c_p_^VfHj zUEu+tSxdA?{#e%btjYSy=b?x5GEBy;it`&|^UOA6j`!${5`0wQx#%%v=~$C0<*b{o zqknrG(_Bo}X0h$S^ZwAqByyeT#nU`Fmi-mHRp-j}eb#%CH(y5tX&i8fEoeTSGA|pS zGZ?Fg)Zx*|d!}mpikf87?b+Dd_}+&CMp(#5)QWOAn}m%~!TQ42Sp&SVE3GoGsU<6a z!_vC_I??(KUkkZq*DlMH{Nu**zBc;Lhwyb12SoO9LAw-8oyQD4qZF}PPYfJ{5bAq9 z!_lL$IdY3sbI9>TiBKf4H|3N@i+oU;(RS?^XW(MGTdG*QzpQl9s0-xx2#(H}}FNE%JA3w|%fvEJ1f=wj~W0NsU)Zgn;hFZfUn;BO&I#@s1y(+cFRZ>lp(O3_) zG=DRBi}OD=d21v3r@8rM@>YbNn^urUFgi?ssenRXS>9!FghVy}%O`Jfo;TV5hsisT z#L)lw$y@*4!~PS7*$$dZ+s=Lty0h?|+5QMyIrMRE+-PHXuk>RQII z@+>l6PQ_i(@l)$|l*!8n49ctDhv`>j_P!l@GH#d{B(&emPifTs=|$UO+=NC!F=xQ@ zvf$JyPQG{*8Ob+UL9}3^4rD%E-mR-ptwPXK3So3D@5Y`KebBMSxVV z0N}=g&fHjBn8Ze+tZ(dcn?8c~oev{=lYaYc1I?H&Dg`tkH&Tb*i1VTa%%!tGBOCX# z!Myx{PbmOlK|0b5QIXcy#CG$CzY`M#bnTQ)F!cO)DNgQGA7U)%ihl zs=R)(nmc^lLzPGkB(NtQL259vyOFm)U#Y)$$~(8F=2HlcA{|7HwzRn2B$7;`{)*YS zt^1C1b4Sw9BwJP`wH5s8^1Rw6hR8l)cn;$saVzP&m?Oux++f4fZxJcZyo~)W4;zkT zy=PD!Yh3|X02kI&A%Bl$eE87PlUMo7?So`k|At-&AH)_rFodz4lg>xJt{rL0b0C#^UOWrypKR z@bm5k>FY0)N_n0>>B3Z7#td@byRjaq-tPS!OY0hYjQ0q}5~Id~GMb^Yac>;*NPbgi zip^Rp>C!VLT!A(R&UyQ5o#O8P4DbxhANcn6Kc|P;cqJxp5sZ~q;(8TQBHU$>Zu1&}-Ws;$fn9=#^dT~?kbZX-5 zEJx!tX;mXj@5VoqMi4qFl+-Mb>4Xi%HW5{fe<{{6(&(gk+1=bdR|isx5lRTp&+2I! z+;huwOS02~YTa|rrI8yjG04i)$kf2p?4t342_(Y`4A8JMa&&eu2WF=OJrZmUOsvce zjQF_tfEhx30v9!0o1#AzGZG1aFAxBV`S?sRqo}V6e?2N!F!)Ulf0=0^tA2?S3AE%t zTMy9R?*f*FtOw}g|Lb}{(%0lblIQC=V?qI_6Tpe&29lnTS{!Ie*N?;hj$8hd4)0E~ ziC*46+RWko;HNb4q2=bNZ#7OQ+?@((mR42k@@|UTOpiSQTB442X%$H7V+8intX=_p zJjX8XN8?d0CxLMU45w$JH|}90&zd0We`$K?(9C@Qb>+m37tJECO8BqqcW)~4VbMKn zY6TaRAH;Z0Eq27r z2L^W}`tKO?U^^m-fk<@wzB!ZA+a|aYB;>l3VHJhqT+uNAA(G0kSw_d>b>BW7VJ(jr z0rk%rl!6+w-2L1aSII(*xWzvCRElR|N9WX8JJf|TI7r%t6{ww9o1pI|5RsF{l&__x zcE#?(V$70?Vv7k}>EejN7=Sw^*BnuK7bQ}vnzwyg$})(U?uC;5R-3ajtuwaVVuyq% zLFib1Y``;#llmnqhQaNW5|eOUI*|L=?8!5g0@|YVJ4=iYd@Y%CKRu|OzMDn!A|b@4Kl@W>gWx2!4*{A z?6yxnl5Rs`aCoru>Lin?2y<9=8()ZW?6qf%q=g98L(}Iz=xv|JVZ#K;l0!@-hlN8i z><_Wq8x#nd1eJ#}B&%bRC{2F|Jc zaKI`U4+?Pu@HPSp7zy|f?vK8Kmm5Qv^{zbQrGgQ=H|+YFqS8eki_DY*fV3dr0YV7K z00*Rk10EqE07sDSCSZsmT zFs8u&AQ)TV3p> z#J*VvmD6o)DPFLF+wwsLKL(lbrs<04tj=kgd`kg0x+ z%i>=rYHfcvb+F{PWh8gWl=<$!oB-8**6)mFrAI`Bt?W)gi&ftb^W+;$xnAwj2jwtI z?Sfvs!NA;I8UW{Gl^InW<46itS zh2WG4ORNpZp!Fu6O7c~f;`HPhg{@rk$v5u<6AR3rWYA-OLFbM$L(^>;*T9=DZBfCZ zX1IenRS~s19N;+fUX>1U+g4>)>6&@e!1wp)^pXmvH-g%wO8pV~-`z94_Hk=AXSGb} zH4EjZ$}+Q@*80syJ4KGjCY7}l!b*n{v|v5lf(=Bhb~t#2XCbM<)05N7Iqv>0zPo7% zt+G*{>L?;ImPg$NoXck1WIjpx&THHFPNmd~1~M)CCq%U=nKe5G)CwF+bC&PH^T?MM zAJHPcrJ5#|r!X+D8zjq_z%9$GztZ)wG4y-g!|MIppzA{hpBgNE%(e)r-U}77eHpW% zD^9*8BVVFJvPom+IMc^t_*7zZTO_ZA=}P1&Be%3f7O}|6vhWM%g50|6ig$<UsQmYziadU)K_^t-7o4(!oYn(0*3DtJ$7@m`m`=EZE*&74IIJNO~gF z==>zLc>o}_g{^}zU{rq8BwU!2t7z81(gryDd_cEuJ}v>EMfbTO z0SajZc?EUcthXQJ4LMl3 z1bJ@?F$M1X5Ve!k8jr}+$MtQH;whJy><$9_bLNd~Fa=B2qXNQ)uP3B@8}o6}F^AnF zIE>en)~A~{gB?@5m!IlNAKQgExP0N4E!^Pi=m~S9dS#3BJ=I2xc-5%L>25n^&bMn{ z2&+U!vW<3ezactMp5QjV10%m-eu1jOFtw2LG|rm(O`L3){^Fxrr+h-vuDfoyJ&vxb zY^juSGACM0S*Nc;tUC|&(Qi$)E4p_+qaAm_&fn363l~?-puPV!$5ow0RGra^(l(mw zswoVEi4mVlu3U|{Zv|ViU2INbPGA4T{ZGg|q)A_DX^NQd6$ms&Ghe4M_oA+7sY11w z85u&B+h&8~4C+JJz)>FZ9*O*o+Ek0-M{&YW zf;;mb9JeP&32lH`9b?YxvEKL>dYcmmwllPHH5tH$9>f{2=*XF1+@@=Zye zw-bGoNi^JPyog(JnSk7u2IjS`6zRQ8D?O0ZY|i_M*1O4yQ7=9hcYe*cLP$Z2FL=ht zPNp2t6g1>WRU&_Say^~t>BESU7AoG+oWS)(fsXuO>Sz5t ztKv+j7@OK5DqWi2D2B%JeUZE!hG%hR15{|t%Btsxy%J@S`V4xeR%*Jg;KcBmd*-A{0roVod7PWyd2e7#4;X$JG1Z_PIhsb?n8 z%h}v&q!kiA?Rm8a-S*cpe0c2nC`KgV#+pPd@~o)|-CGqW#O%?BWMN#Jw63(z^9#oC ztdtCM;l8r24w=NG-)ZDgkL)%g^m1__*UQAlyF~Mc(N!%=1U!U^7rSL_u zcG;}>%dvk|Rj2GhadYN)-Li35bnB*KAYRE*M9@gao0UM4OzT(VbcWoHJ*(fiw)Mxo zeAhGbPP?wO(0wJ0FB6SZWe907ccH^y&UO%G(Xg6#3NgcXme>0Q%PSp%kZtsHiy@O_vB(G@P zN&M+hU0)>SzgtSE@xrG>wsu~^?+DHQsFAx%BsXaI@~<0S0hm((M*}kzpPhwY&=3D& zsg))<_K-lE4Sw~j$e?}qQ(O1?oS9c}AjYS`jJ&B@?YUd>?`!PI;b4f1ED8wYW)2^& z`k?P;20>*6{3GS;1~6Hn#PffVjHdikTHq3Z!lfACMR+DHIQkJOZMqNJ-aBc{^oINQ zFkD(aKt>C@lxzlyZt>5$@S)(NshD|yuA4c#n0cK8cgXnYXD2|?R<2&>9oo_G2{kOu zK$_~ZH_!U=sF=BWI5^vILMqXr31)ied(fuO|G-BB8g&Ahf=thy<(JeP3^j&(l=&eH(h< z^&vO#9$WG|qt?xoDf&2*XMW(^O2_$*Z0@w}CU$-GGJ^_VF24sn3tnDO*}bT86`Dg0 z8R{o}ljQDt&3)SHpDB&AB@oC$2daFG5 z7!Rth1d?`ec64wCNKe2!JYX)UBxA4w??9G*(Q@|k(l3fDeiGdHfU?@NdT@vn%LDL~ zejfh+zreqd;vzix*hl0?>n#$RFgt zNn`yfMXf0LHsnqeY9k`#8=}7Y$m$Ec0+F-5nd9u3*Q-g{bscq))*3gmUv$4i zWzK~R&AX6dz3w}UGw%b6dY`hH-l!gTPEB4?{S$D#%!m2QPyAjrbRp(&=gi9oOA_Jy zD_@53$GeAY=(b;ohRWR{TP>S)IMRCQXwxCk^SLZi75m$!g*#T@JE|KoaA48BD@+VZ z?S`QV45{V3R4+%qi40Km9ny;wkOdIxZR26vel>g075el5`GfJ}Nd2>xsz1rZMs{XE z%TfR_I}fx>ERF1p0hJ2WXG5+2g|**e`6=B9K!;@nfJg`bqr>u_#izcPBwJRKlMzf0 zkxn#xDoKFs`}3wCb;&b$4j6jG!_6hYf6k{v$0xglPh46PyMwa@=Q(i`pZG^iCVjDJ zsQ&;(`M9Aa;(VOINF_*c#((J${QvXv{;5ng$1&$!rqpvi;*K%jeuBVb)voLs{L%-b z8Da=%@ezhvhm~9$VanNtC_6Q%Dp}V!u8j=NrYGxWK16U_71tTB=`oLZbdw1cZnljh zD9St8qiIzlo!|0)ZmGQFTxffieqv7h%dr>?jxmYbo3*#uGT2{!h8B#YR~ZUv-=g) z^4H&YlHnh|@GHAd;bDz!Fom8Nvo3vaNfwnJQl@$zRt<0`mHq+|!vKpz5H4y20e~0I zlf{(<4q^WxEkLgz_TQw11tU=J&c3U-sVbUToHLuluR{QKgNU-Pkxc_c72}6fsd?+s1=^W=S+fYCnG0gAIzK z8pS$0%rk#C>f-Zg$?YL#n2$mlzH@#LLz`RYCF7{hqnl`QK+IngX@HrX&Ix$?ICEuG z_z$32l_>mTsx|8jY45QbJja~Ygs_f*1+dEL^T4bGC z^+>38yCs!i zndM2zxad5JCfK8i+PXaT*{)B0+bdeA=VWJnT`KuYV&R6!^e;@@D*TCw(5nC*E&(Tg z-!-RI?`F4qqm8>Hg?oEGn$>*fk53OK}4y<L}tfA1qtEbb4c;Syin4+XeK=WjB$Up~w0u!AXDMw7_ z_5epL*{V}N4-*^>qPye4u_D{yo47%X9LheCik^ibQm&6-e23vibJ!0pHc$tBtiIMk zFDh6rCK*{s!#1;Au-B|4KD0PA!!M09ND#*vbSxKYwDek+_KA4=qS%2^#X>}dqq_Wc zI~>xxa)~_=9or`o9)kQd;m&UsKYjG7#Q1!o!A6nd+cj~9vf`r)o!G|@fgM6?&r=j> z`-;{jNofXlp8N&DP!NRxeRT?MyYKVe1}jk19Z9I13KWW&!RzpUBFOLA4O}7zb)7(r z$R~}36f+DIvQ!AO7Rvqum;RCSRlWko`yd&RRF*`RSg^|exRFGxcLO$`rvcSsjLzBnV?pm4=)Lb*} zi7Y&=>iPjmZ~>XGUEFOIXX-TuxJ~YcVxc{y%TWqdO|z;v?Sp5+)U{(YTLgdZ=|Bq1VX-8EJ%BZDwZ!aZ(KYBU zr5p5qQ)L=MqbI;ZrPr;2zDBoRhLP}n!o#k$Fmy-d@hg4Z(o(uHP9{4Ji9wp#sdX&{ zS}R=7CUF=%|5s1kZr^ecbkD(+--GPUvol$t3GPBNqR{go>b(1CM1M;cS zw`(WedHS;DYFSwx>XnzE@uSZE&smbc&|&k}R594kK#Y0-U`=&b=m5i4qxkesM7Ze= z{Ez41T{rU}V-a12Oa7hW-*9jL7&-ax&%cBVU}`xlFDnqyzKm%DRV?hR+}D@CxdZ<# z3;Y|Fv=~&!tJJHX9`BeT^ASvA_!`GoeQfM?@873SV4+eKrs6pu2%6B4?areWO&rJ! z2z$E#2dxE>uS8-G<2={)neW9&2|qj@Y~)$M%T?1ac!cI*d+G#9^?MsGf}UTdo>}tW zzuh(z)nvlM7e64V#w9=Prq0ShGWyU&MuRNL`-Pr&=E|_#dVq6LhxO<;`g=hPaM(wx zOM_!3@K24nF-Hd0-+GXVi05u}XWgE4FzF*UWj%0##P9Ti)~Jb>AuhnA`T8EkWoF*A zdsU}^=G$VAUXxiNBrRIb2i5ip_jqCll6&-F&=ZytZF%^*c3i!0bINPawRz^08xO_B zmZGmyiT+T^z&Ruj68ymz0M^0^x&vbVaSehDCIYU*Te=V$_U zAphy$_(Kw0u@iqt41k-V0)G+V5HClZHETdXg8WWEexHB52NV>@uY?ybW80allliD93ytIu~+ zVhiy<=XpEgMSU^%RHm9Vv*UGtSF9^Ir%^6vpA=~Dm2lny53TP+N-<0RVvCBjsj_d6 z_H_M@O0km%w4k%?5^ly?KFhn72egWehV{+&i3HTNMTn`I{mGgD+Sf{OasDv#UnhzLN zNX^UY=Yd6`R4-|r-H>q%V=Y7D9QDa*tp}8|wEB=D=gf6DF|M%bEZwbj1 z>bmuwoJY?+4*IknhIM@m#zatEPup3R+zrmo?9Wst{fbA8T=z#+Y_nfl22wey2EYFVRMMci`3+aw8zMlm z$Sa@?VU!h>EvB?g^n}>ZEOe>ooFp9e%nGT5Tg!TsysL;R1<^ zvtl`tH|r|Z7d&*r`u&)-nWLEQ#9o$IrlX80-Nv+_Cc@aen#?kt->)W07{cuSli<1@ zlXD!E6_~bRJ!0_@q&u`Jl3v-Uk4jX7aVBK=w-fr%Q?u4{-F2FW7#@i(dQ9cl6qnJx zd>Q?cr*_Dklg54GfdBiMMC!)|F;`o=ZBbRrq%G8v#1&=Tl_5*VDa!*weeB)*g&GI5 zV$#()xi(SZb2G`?Ja?po9MVb`$v+q{+rU2$^kn{~M7?bkopCm+9%{82Mrl*A)Ff2$ zQ7{2HD5BSjwxJd_b-f{`2nik&Dp8&+dg}s}WKM*CP?&EyLTAi$0jeBcIY}EWl0EHB zLHvmtzO8Iz>3#I3HXb?Ms6b-V-gfW&!OdfEBen+!&W6S2A6&C!QzDrtS%xezsaigp4~7klre#)|;$b zn1&h42om6hM8jl?D%UD>pG%3jaBf~exNu3ZrM{O8(wUh@_CCG;MzPasv25l$=j`2g61+!e5G@%@}H}~58@K|p> zC=T3YM!KjYef+5+hBCK*^NyIy=(Ym?#sN(TLHi zG0*~1i$h%|Gqv}<)};ntA>S>@7;uI_TWeA(X`Nzf1$4@ZzNeDwcKt+YEJnFq7vl<|RloT!XZo1t3|d2Pk-%Sedx} zhUma2s?7wNfx$D5yCN?*K z8;}mWt}H>qf>)POF}V*Ut0+KZU|dJW!dH+{QI#N*w0i_l7%*W0#9xf6e&?aW9%~Z$pLoqfqq92I~zFI2{`%SOE7uY{I6cl-#Gf{?OLLH zR1Cw36(8nEPP}+FllCfkljLdZFmyaVQ9ldy$Dy$#WNmn^MNZB*iY}k2xm}^T;5N)g z$vCUhlPsa_p-|G;5^@juexl~{ed%>C57b_Axaka>Gm$XqTC&}2cS7~gI*J$dW}}qJ zq@6$;2&Wh9V(o#cRhH+rMIzoamigM!Ivk>qq>iIDJaW^D!xcpj+3>+n*Z;5(r8D9)iED=>YT& zgk?`cDwF-9f!=`fa+=;y4@R~K+d6UwjYO|fZtSwV%LgfQUi%J7$uPxY&aS!hG6r{@ z!sVXL967wJ!9`PXB^}NQxdX-PM=wx@lSB?Wr;CON|2W%ytlN2ZcuSH$$5k}uwzC@2 zl%koO>Bqv0voEdH&vV22O!v^mdJ7rVJ&YtRi&>OMcQSHDPT zt-7B>oS5OhV=L@1ZN6L?=zHk?4JR+|eB=C}xqCqA@_lKTRl{;LTa$*CFpvABuHp z`#+N%SIVi5P6oe9n87ypZ_24VzmnCk698`;1t6gH+WcjUk3NhW+0Bq1$d7742dCdO ze-vXgodQkBam1?rR zU);<&nUOo!i_#v#p;2Y}-7y1Z)P0{@51KOV9cvAIy6&UjE)<+EhcWnefsxp;8+;e( z_^$R*+!BZT7i_ELv{yk{{_ZYi4$&j)XQ;<%*2mN3{=3-TN6qgF?kM;q`&6Hri8(f* zKny=wvtkDe&M}1Z+klWd?A)9t36hI zWC`iQv?)BQUL<|_Hlq~q7Ew~(=5F$F{OvJMc6AYf2&E0=8tpPBBZ6u5PNBvXop-5a z63KJ9np9QwMGpk~?TRmCG@7@bU+mVEtZ<*y*X<(n9eouOC3!L$*p0RQrD67oeqA`- zgO}LEX-LZsYyD`Gf<+10(oF&fW!0z@vaJ|?>ks(%2Xp4MYAazVl;eHlEWSp{nrz2F zGut~utv)rwp$96&8%CxTE!8AjvU2GReC!9_<`grL7fbcgrNK$KwD{xERt=R_bt^7e z?aBr_fL02oaf4?@FN7yg21G-Ba@qM!YDS&_vJVnJQH^t7IqS4v}rQj38qSAZ!B628GA8_K+)1dj{0 z1p*^WzVRfje_><${P*zajZh|FsF&;zX?sXAu(njG!MajT1REkwHm!THRkc5hIuh#W ztUL#Gk1R<5i}~e)obq9BjMx>H`V5v7$BHI=accw4oRlhDObgBM*^#?>1Yhq!@0J=6 z-y&qld+OeP4qGtWI^21lQ5wZqFPMBd>V&8vX1cKgJ#4NHpj)lOvT3&7(6U z;|4)b)UlpQMg&h~q3&AAd&(D>Rh{M;(ZUjENL$N0b{ns>NdVFOA~028Xc!rKUOfZ* z;NzM?XHy7eZH*EDWpOJAl99fuFvT`xBjP;bxu(VoZ`*I5uRjIh>^t`6FoG&@fxS_dz>FdCbeZ`Bb;00zUNaM!0EIz@;t| zFnmde9C_xo0e$bo*7(;V$h&(F0J)h+8Nr4{#Md(lGO>cV{=z*y58p5GZD6uk2w2Bg zoD~y$_yjkTps`7woM1&g@{xUdU()Ctfyp2;O2=1OvW=R8~p7Z4iL43^)Z&bZqa>Cy{`PE;9&8^X;>nhXJ@>S^WkV6qWcPkAj4C>sLV=nXL=6lfe&~c%uOMT6G&5P~E<) zg1)Sgy9)STvOZoOV6@M#xq!f6FIKk84n#m>_W#}+|Bc^`p)Dmx^ySVggn6HAKMkO^ zT9qcYJ@xWnQQ+ zK~~^YqY&qxTQFHrxstppByuqP_MtQJ=6(cgAP7FV@dL?Ce79B}2ZE?;0GcD>?XwJP970&pD` zpbrhuG&b-hpi{#Nq;56;YZvo3<1SO5dO%{EJ*HprjJEssIJ}T=kV0o#&A_gmLVxn; z?D!jLZN8Vh>>Z?*PiX`hIrpS1V%nhOVG?3I%GtLnu;nrAs)fr4CGziWde^+%$s*Md z!j#k(h{&Gt>Q}$ZPI4l(U5t|muV$KG&CD|D`>?VQwN`SS+~|VyMLtwN!>;VP$KErY zK)L5T`cdO()B>4K4*k!j@2!qcJMx5oPiWe{-T0}VUqbVJ;r{#EPa)G!@t-pU;MVa; zpUdCPdI5*OqVnAr3x0#SMF>eijf|Ix3BtlT{$3+lWs%z=-jkT;6GU>G4c^?yI_JFk zp~~S9*6VnlB2D{GA3d(uPY+x^XZ~f}|1jo1t^JpAkhzfcN_Pl-=RzEwTmWLyLKwgzwwxT4|q2cVOganoD~$fhNxu^7E9 z$)|FbX@Y{2u#)F4Em=qc3lK}RwHJZRQ}qi(P;=IjQD<}R({r=v+0@L&@kHu{WNb_W57Yv2TWZ0%Dl0~)j6oN{GOz8 z?)23$@@o~+Y(1j8`FVq5G}1Rr{C}LvBmog!Suf5XsVhKY>RQC(GTH)IFDLJ1_yw2_ z02Z6Ny8J)*PJeThvP-EeA@L^ELxm*Qj>_iNC>`cfJ{p*k>lK&LDlOU);(liKQY=?_ z+~mrqKW7Y;>KU9mOb}UeL5kxu6iBfZ3O6%szH2;*qi>Y`Hl5^YVb|8D zsv$WH4mO7}FYfZ!*Nyl>p5(7-y=vFhXJE}L-crYVUr%^WPTRVZd$GS?v3N~l%bgyqFiu4K5?sm()y5pg6hkG5QCFde3uL5*- z0v~MVtBdu~mxRAiYk7B~1vyDco~;29`F6k(YXfT@lhJp=Y$?97mxRKW;ZWrB&IfGx zh%hzG_ZE9~!RB{Vbjv>#leZ-;f#%KBI#O+4;y+g_kboPY->%`<9_HbH$$3#WN2~mR5h{!co9d`V6sm=$^L^Be zEsvK9^WsL*t9T=GpCiuQ>Ckq4&e&E@3nGJf+<~R@JD|}(5}?CjNa<(gEl;R zx^ZI5FaakgK#%?eH%voT8vSda!K#2`!Q%zd($HKn4L9%75BVynMS}KCWcUVo)V`&aM!>rN7@WJtEgjtWEn?< zxumaaN9@x@O4%J~kV)b%exz4os795doV1~|ob8>+w{(XTV@$=DDJbIw=dE!HJq`ml7zs{)EWc5cmhsZ5W0JRG}=VQk|7nNLV& zZutKM`&@xb3ozzQnsyusc zA>qU-mGVIza6BDMhlk~k5!8#1m3N_uqze@FLdih3JN{xX1QP?7RZhs;6woPBg6keK z>`MvahcbT+n$1`bLa?l`=IA0`muBR5-7tL@>1GiyM;1r)qM^#D}@Rad}_2=V=;34;0fmydsJFc8VlW=j+-Cj&lv%D zpGwxm$iq@nv;0IndlvL!LR@y&vH14)RPHwFsU^|4yq0Lt%F7a1~gWoKoEcY zjxHHWrjc&M$9t^!&tj4!6PKEG^wuo~E8sga-)Dc$3k-3J#<*J@f`*D6t80hCt|9zo z0~+n?_^xCqb$H>;A1Cr?d~IOR2=iR#-~8Y+WYl!H)#v^xGF z^~8Ns?R@8`q|(l#Ryc~~mrm39EGNnn6*wkj$DF1XQ`1b_wvC{1CMwMFHBL_R=x&Je zL~=oAa!L~p#s=4ixx=$AyeWAyk>So|ws|SJUs6BuXs71j^*o{sY+jp_V|R!o*m`r= zL7Yq zHRN%E5eJ*JRB~zJ#+f5-fs>Tx?%L$a-tdV;5B(Eyofb)6!LQ#MvctD5!BmjO?m z!zrr(JXdb@J73x1&8A5@tQg{5N~6?sw|14Qic}E#XA}nARi2(T5Ix}9Ij^i)bZHo( zFewx||7co*+-Q{?yeZ`M9gppU$NTvg#**=eG!|df0z8-!;4dCBiRZpwTq&B!HuBXZ z*Cp>)QQfMydoupKIKKbsyh9HOA(=Qrt9y;`*}DbKSz=tGfkwv2VTUi5_=0ndFF;`9 zvJK~E6mrY)Cz3!X0w@A*r1ZFsYG7j}1YoO$uX-3Qo^pgd7XK4iezwyBowGm);xd}} zOZWgtPhWrY2L8y%Ue<(i0BL0oU{){S(|~aT+*Hd8B%8sPp#R)m|7P}E3#t~3gB?+p z;tSpyw1>z83(qjawh4K7?vS#k!F^^boI++OCCHl3ux!Z`=&;Q>dTMOVR}!SAq?*s8 zR`((RW=F`F>!3A4Ow7{set3p~fqQtR9o z+(_9^2uH~g={)7|EOd>--0|Z+c&~qVT;_(?cu4nB^r-!!S7(2Hl3<_5VvR@X+Fa3|= z7(uWZlfnRAD`#)Wq1r5nQ+l-Za2h77Ob;;0fE;zg01j%WCf5qZGlv z4RN{;nR@pDfeDvOw?|@eEbKS7WjfXyp!2T}|9*H~8u7rFeD8C5eTj7MfPULXDce1Q z3{@9VhbjRLA!cD}(S5(P?I*W7(TZIaco5ag1zHhKIU~2Fl_F3aoa+PMjX0(Tdh*B{ z!_hL#7FMq#Bv&D!ehzZ##GK{a*oI{#c1lKBOZYH3xD-^p6?XEdZ3j`n#Kic!>}W}M zsKxh%fLfHM+nNctKWJT)G!U&Y2l|eZHwP(y`Rx4KBB)+&gN|+O$l%_>J1!FZ3A;cH z()hgqI=tuXv0}87I#@6g3L!(1y@Jo{x4zdsppsbQ?wEB^aOB0C_I7scaAM|N)n6*X z$axUr@zy-${4m`9`Lqe!Zk}*>_8W0%v}X`zSq>2X(w9d3BSr~k$@bQdevak-Z7$u` zx1ZJwMFviMztHQqtKwcH>^}rnHA#_@L`Zp z5Wv}B@EhJ>)IYv;T`dSmnXp|IjoeUQzfKMV6(rz4n*ZDP{|_2Bd(pKX_)l+15Db?b zxNQ-4y-XO+kWVA662)klB8_V+32q-&N3OTrW zeMgCOG||Tyef^6*L8*8Pr#&o=gSc_>ACirZLAgba z$-Wn$#2$@$OZI|J|KV>o@vl$#)wp>*G81HfUXJ|bARux5yBhK5iC1uF=j=)8PkE!Q zo{?|VjOYx@j*u5Fw~(VV_8u@y1i_~R{mH@DxQi3zCU06Ju`^q!aLpGRkK8OKN+cK$ zYFM3m;PO@CVhG|&?JdpfM=}--2=p$u)jxah|EJ0swr>C2Xs~lYv}_7EI^JI&8<1x< zpwrwBO3w)!jnO!vnQtB&m*ouqwLR^BuV?_GYuCH<9~BM%?=1Ciu{vK&liOTqZ^sc{ z4ZKuGb=l~p9h5Cm3^150CX+*CHb$K2dy?5BShT+1-!`#5STXFuO^3lKHOBkCkq^I0 zub{~*J=aLI#$~67pE2fe&Te2Gmn<6b?%Y@BF1)Ik&xXe1KDlt)p?H?j6atOsSX&|3 z9{UTVk)Ico-eZ_aA}DnSW2*`^vY&ffr(NKt<25NoauyVtb~>7klbcq2PIZNDRpk5H zvo+C}A$wj1o4`q`u33B0cO+QLRI{%-*}06#Cs!&PR;!&-RZAxL!H0sQ)SKVj6jFQ{ zQeILem0kbfS+fdvw3FC(wzn#qbPXXW2@7;`o(Z&@E#I_)-jglRNbSix)V4TP5I)w+K`-vYH61={PVI4# z5zMh78RY3v-!Q~D!^mpWe(KQPz`6>dJYMuKP#J5OvhkkZtze6EaRYkl%;vsgrT1w0 z56ZsU(7Kpfbb3k2&kWJRspgC*Gb*D&;1kQWq!f$xoyLnu?sj9>x){wsi-?|Zk+}G7 z^0InJh9arD>hrs2&PI1C6ipD9G(=g%2xP0asHGkr!;r*%rjfj-=vO(_>{@$jhBMox z9!P?2G`wP1Kdh(5va0=_4grRmw+@Z5Xh$}Y2wn(Pd2eI$j{mh*&+kPIDsC;B#f3 zXhWXSZIJRoa_6|5swlPwroOk5uMa0z$ca=ljQMVXGujwB|E?JMZ1efbeKiI+G8;8l zdi-yCAnp597-|<(DYm){jNg#uGJOspd7fd%i@_tF=oft>dVv|9m7-giWckqMsSv_R z=SPV$JRIX_OmrtYmi9R+`BRPctzC(8idSoQB0qhRFo11Kw0rL281*!qtE>eTw$CAA zslblZy1>D(eRLqe5oOy9;|WR{maHSkbmNf2bg{$a>}%_A0Zbi}u_krQ8ZoPj#VI*c z45j|$()HUlUmaq?r)172IURCvXrB@F8_d%**yWm0lj|%^5+k#i6Y~3)tp}I|eNIwx zu6Uj7`{csM6<^!!o<2*gaH%Xe15;OrVJDi-0hiW?8ER_Cs!0O)w8s!a0~15*f}f8Y zgnEL8?R<)ur(Z)I>?NjDbB?_=D-XF>M3+Gsd7({fHCwLm9sU~x%jbt7-O3{ItGiMo z-;71nJR=@L#ZMZhzj^&llg>FXKeaZx0|kD1?+KSP+b~^Qc{%b-n(SMm;nR7GYAH#- zJ30O@293n+-$h(7v)7kIc~sknmfpqh7p5CM?Tl{FNv7CSUeahM4P_Pk7D_zwK2ku; zlDH6W%1aP;+wkZ^^z*aJqvFoB8}UCg9r0JFVoUw!NdXfNgeqcylfv!lq=1pIQdGTp zI)I}Ue&sia2#_nq1!02&6G&L7*Fy=JfCQ-#3s8i{eHE|(f%|5z*92}!yd$QlLT2Ga zW?^e|EoWh33~mK-G%+=CGyxiieyA@aW8u;n(F0>WKwQ6%NMvOOF@o<6jYW0+o_}wP z-~tjfKsb?&odaAi%XWRq3BLUQD&$rHBPA zR{XE>a+%{VUs(<{@~S#~aCi5Kp7bL2{o>c~kme1>`BL26f$xIJ2?sYCy|2Ao8BZ`v zhL3t##_iHIqHa2Jy&9s?cR&SiCgNK#z|cZpbntGwu~qzl zZ~VSlZi;@GM=zM=6{z@j1e@k8fL9KX%gVf7Tg07X+ z6bOB+3wv)p3^^IXS2)TZU8-X(>G5S&DWe%H+Y4e5a~R@$EoDssqE5CmSzrP-%N%$_C@%~+J*bKpnHXi zzFURb_nxun!6pkRi_G*^8TCVo)u#naMCtQ?*Q~1YC>=wN=6ST~M{N4(K;53}Rm&+| znFDo@7S=h5k7kv?CAhKwN<@HN-s>ds%|h5;RlRxuMZN)W1wR1}77#3hodf``{R-d^ zJeX1kaedj6Z+`6HWU=S(827)U(*yKjUSbsr-4C6ftAehZOTQt~1F+%iosj&mauue2mEh_ZJ z8KAsRtv`Gh8QmE8dMacfy-^O0O?(UOKK@LD{Ccp-1=n|7GbrTrU^Rm?cb<*&Ieds( zyKF_nN6rFS$DP!%RkrRF9fu^@^Och^tS=aeVJ`CT!Emnx<*_rK%?+z@c;e^XGw-N; zK3Mx9J1%ssEwM5Di1-UdAeD0mjG$!^eO%94o!0ER9(6H?MrRwPYC2&O##^2=Z^2;e ze01SpPpDmOCsAgrpoiCQ;#6 zM|M24_vL+e1^uLELOoZB`l=skE3ptU`VctMEkjg)bbddwkXZsBSEItodCI-;c3%g# zncQhA7U?j{$g(jZ*7ELQqlsGT)E?>+8kkdRf&yxb?l(3cJm((jCB9tSWa(@iA$%yn z*t3J*8D~Xngx`OvPyQLaw0qcRi&^7)1D-J$El<70lT9Z#=%#s09!I8L_?zt^fLp-~IgH zKdkmLYfXlS@r?e2CY^|c#NJ>#-Z9RBs>D1_Ba*F*@RdFEDK(>WP_&?{1Pz(i*aa zDAVJf9Xh^+oRk*4OcT|&wQd`xj_f-xU)h>vWDs4iX3p(wSra>+nH@|~V?v9zUXv-R zzhL&JdQ1fQ-QZIL!p39L7{(ECc-?yXmtWdfHdUlG*L=6>G{}3);nYrOg;b*Li(p99 zXR^xs<_`Zl40c$49tO}afrH>V5QK}qIt&mY&L`#}(YvJooHPkUynprO z0--ldpcMzqcu^3=%`I%)?3^u}euU$ouflQQ_q>dwgSCQzz&R^B2rN8*DINUd@;`ak zzY)Jq^X;zT;a41wX#7dmtD0A}XK6MtqzqR(lg;XlFc4`IV0$3Q<~vUaRCh)+R%`Wkh4Z(6l?YH4&B5h2lNv5lp?R-C4l zrnO8Bl)*p5#efg9t4(sz&s2Lca26trF@!`Wwzww$L)2jE`zfx_S_1JT~>~zT4>D62L=cH>b-)ka)bR56${FUFw$BPuEiY9fYO7o?Z zpjzEXIgK(MB&)FL=ohM{eTLC>avAN^efJd~HBRpYtBANb+V0qf)tADpnQsn#`*n6T zC;FU&3+`GYt9)pR?Zbz2Ttd<2vFLyqZnW;x+CMN)o1n$WREI!sEN`98!-XMkaC zmJq?4-2Fy^iuVfVz~RLIg}USt>*8nnX&Va{$9IvO8I7P1Y96-yvGp%KP6FZ4c$1fi zu}|Lf?%rA~LNis-ah*D*ifLFDSDJp0%Yn3MDXz522pU4H~ zoVv-5$`9wQc3Q0;h-|%Zm9o;qY+xh(@72{C?%!0_-7AQ1G~1ZUdfiPe3jJU zd7o3rf}vjTkCT%YWmBGf4{2xZiM^4$+q+t=rW~D$9T6zTk|Ms`bvLASJ-+#~O<#c$ zj#Ppdp)?*3a{Ply*EpX9_~@0=%L~@nu9voL(WaKp@2+o_`WyrcI=ZjrpFET=T#FB< z;B}j2Mu_TZjHwejz;2@~dRvkrA^xgzgsJyE{hZ>hQtfX4$lG{aUWrSgDdln;h`UU$ zHBA}HZ>MIExTN1RWfhqgI%$X7B&_i!kmNcrHsYV>#iLv{dxSmoNIjOjso9c{MsbIW z1}?hY9@5yx#dJ1i+!nsoz?Y?xsxNHhN2~~|Wa8YNABs<{I^o=#2Qi5#z5!FGr< zyCZe4_Von`gOj}^s6}(+w6Dmr2FhdlMHK4 z*Gir)1s`|Mkh!?m7j*A=P8sG`JpDH1ZyF}g2O<^n?Jl9MN6{S_sCe+f9n+VrLeG%zeL*6=%Ml$?E(Xw;1Prh;QPD1rFMwmw>i z1g4*Rn&i1@Mfeh#<>slhymOLh8ND5gWyguvM^jdco?r-X(*P9F-6oFMw*;#SAG{sq zknO_@q#FvdvG-3j#FMd0i;?3jvgoPr<##hqhMB_Sy5gui5U%e@1%A(9<#r$Pp(L4fu-kyjH{-ezHj*IPuP>OBAQQb_Jc8fkBeMaCD<<4G?hen4Xa}pgN|D0IS6Kdg{Tet(=;wcfB#KM0GJ@!@P@F=QS;Y;I9kFo&=PgVe0iFu5 zxu2v^%EnOo2Ye%=;Qo5@C58jt{ovQIUMv1VqY$Yw14AfHR7{Mnr9iHTA9(3NZiM7E zDv0N@>mOi$tl&avc6RXPPvZCg!Xp1h=8E;k2=%@?#Vn3#@8&E?Eq*sw(}yL7%6pai z@HYFdp_}?s|y2wt+i{bG%%C%pbbm(nBd3ty<6AstE_I-orj~jSwT8{8u zmC|pa_qB}BzJe{cG#w9md-Jln{TXkf+^3GD7{%gu;;$&Zc%@d94Tmw~bZc1?L}5={ z3Q2PJ-kh$uw_6uED6Dq7HtLskOznQ@ZuVx+w|y3{#c@pjVl~n+ODJy&q_r6=XBn?0 zCjR^u4$&f{dVA9L5*%GjF0N)czd#Y@Ep^t7dXC)^&{@1T8}(o-RY&gg`cxxJ?<6euTqk7XTg}4!k9`o9e6sV zYI+=?w(9wY{t4lV-K)Mi*ubtkcU^-FZM*c^T#cMHTBY$&l6lwidI+lBG$U}*MzK-% z-Qm?cC<0)a1yZSL1o2)KiFtN*zA%nL%WX*`Ob3mR4dAmB3v8dT`?@Ujmf$PE(nexs z+rGJk0nuw1FgLNbHnFuZ(lanJFgCFP|Hsx?&k+Cy14kosJqueWXA9?RDPS-}0MrlM z+w}_}w#t4Y1PmwORk8vofq#tyI+W-#uhvP?hg}9cb`OLm^7=>4MnzM^7S@7T$7y z3JaBUBdNul6mz{77P~YeJ%paeM=#D<2fuGltk%n;v=vUp8dMh0<+bv-Y=gif{r1tT zbRI?Y0!_CV-!ksff( z1Fqju(T(zyK(j}Tw3zUtt4(-@N#zf@y_&y$CsPvD4A_jTx4_vpOwUZ__0O(#W_kL# z9ogf~RwvS!pc_(398o@B`AvixBn50RViFi& zr)3F%VEv(4%p5Pjm^=c(`NOc77+-w_Yn{XTT|EkX0YB<@{V4Di{OG?#vPd`GL}oo~ zg(|~?xkc~E6LFJ7nATJIbtzz?lea=A22`lT7Fs#ZjGG(3<|7t zk@a5BVRyPr)fQC#nLYGI7CdGuQM_`l0 zZ8$-J53e6{M15H87h=6TA3E`3ygiDM7^9WvG(g+XRC9$}2AFnR|553FZEV?SNhy6B- z)iY}=1Ldr>+X@1zC>k}&V+r-S5s0)yt5`bjd* zxn8h8<`f_0Odt^C`s$80IwX~CY4P;SX#-!Wo958&utP&iG^JHaZK!hy3W?t94Cdn( zDvT2iE_dT(5fH*jawv&DTb5ANCquH>m~=N&nW|CU7Z$G|9GQI+)H-!bNN}U>bbFgp zWunC-(eBHUutS7bQ~c+?<}6)W%Bi!00U9(2`ZWQ`EkXSjA;nJhvbvDki?dbg-1-GdR=ieM8c+yYH zX=86}bA+qP-4$;sI=|~|`kRCFuWGJO)GKk_pT9X9{*s!?@g}W`4O^}-Z+gACu=!AI zJchfkij754jet|$Ma+S0Gw!iGjy+4r+csjGiSBCJ&rAi0zM%l)FXz9YNWJuo$lU%M+lZVm@{`Wggw$+IjAF?0` zS&x3)TSTm~R)s*C!I2AjWK*k=pgC#t2_kDZRl4~tcV0c$jAuwtA^}d$6ibd)QyJb- zv|_LQ!$Vp#sqT&}cs{R>Ogh&1e5Tc2XEApE70n27q z=+af-1i^55D}}pZV`v^Wk@ps0RkhK& zDBU7RcbC+nTe@3Hy1QFKLO?`Bx}_UIkPay+DFG>^I|ONv=1xlR|Nnjdv(Mh=KIh!a z^Z4jo%(dp6%Wu5j81ES49ro3uYiG+|q4SIcCArRl-zw7l_; z+Wpp^CCkDPz$M`9h3@I|AWorO(6lPmM_)PHN{(nc2^n^!qlRVatWkxU4#Fn~XD@kN zMF}$216JZZ{+Qzxd5e0t0*c|A{5;%Zf7};`y0sq^Y%=>1x`*t&h;r~e_mpf%b-QR6 z2R*gl4}WTtS%3!r{!{IwiOlWf=rg%r^iH{jB6y$c@XCXAK%GB_!O<*Htb-mWJz|{jiqR?2oGVe>~x$;}95m0&F0@ ze_u^^c6MNeUq%`o{m42DL*1pGkGf9y&hJr2M?!sW80~SZ5)RwUtl!w)Ac^}pIH(P? zzb>=}vP#X*>)a}Ob;OV8Xz}O=gMb&&du4sMRR%bY5we}vDfI*&W-^_}QfHOXKh)sU zWMc0>s7XghpJQVCEO1^q4eg@Vgs;AR&@lg#!a&P^)60vfwEnP?1hpFyT-7cIC4vx- z)t9jFEp9Uu?@tK*VM3T4UGBhb+AYz*1-^p*b~XPx%lG5o4lD2s>=60bJA}5GN8I%n zzmD=NA9ppPpj>pG{8@UG@tB!3gF*r>8Da2S6Mqj@!)CMJG4=Z-V0gqG$Ox za4JaMJoZr^eA}Mco0O*R2#+F)bdS!)Y|Bbh!c0<~;{=ff=aZ{no>nh%|eT{8PcV-o87)_X^5fPWxtWd@n=MWBub-QoVcCnn_bNCyJVgMR6r73@cE} z27!~bpGV}HWQ+(WdIO)-NXd7a!4lvnNwp0zhIf0~JK(oAnyxaRc0_1JjRrI(HYh!# zh2MRh6iyUt@wjUeo;}m`n@6C6$j~Dj8uMc=NlHTaEFTX6`qgEsfQ~c$Q?EtOSc0LX zTW{q*k(Bb#6zwhg(&c{26oG3|u_LysCZX_`1%HVyZm5mYrQsDPn=7V+_iRM#RhA>a zeu3owIZ9DXpw>mm?UE|9rr@${%e)|n+UWYdR4-{2Z>Zl!L?ka8 zd`-oGz_m*2jfAA*+0?!19q2W3~LkTxt2{aQNBLa|)9Y zBk$3v1yx1bszyy5(a@Z%5keB$XZ@NzF8sinsyYu+@BOm^0k?$$6kEPfJU5r%7LHO9 zZ2tvzuvJ6i`0AB27N}am&rJ}AB8J4tzF&j}hWY7S1`OY-PlRUAAg3}2{$hw0@BMhn zva^q<@8uOv>nr|=3bdYsqRkPi#YH<0wdoO}`r7Q$TS2|{R*Vhlfk6qkXtFu<8%>}! zfFzVEfGCfy(PW*LZ*`Dl5<>G+!y}pBku@y0pIS2YsZ{G&Y z{nU4`cLwecU|G$b^qu~8jhh=cc4WE_EU8P<1V&VtUQk&05|;qK2hf;cxj?21;*{y~ zkoh`e{{PEw<=+sll(b!bHdZM5rMREKJ^|K_pCdV;;!fPF=7_3ufiP&hK)nvIyz(ex z98wIdPr_CvA_@1P9&y=bNxSD8R=yHR`feERZ!%4NzeZ@z=FKm3sz~$oaO4bKjq~TF3J%*Y`=#1K3T}N-k1UbE>c3ec%RO9s^tJnWI<_$jnrm`` zHZIz?<}tp{vF_`3KXVp6$LxFQqYS33hxa(^`LhBLaH?{@!8;4twfxxVLjKH}`+zhK zsR}KsLV9hpFKmhG+WndX`A%Oo%A!I64G_K$fVcs$M}a%*_CMpEr8WnP)Ph8Os0eN3|U&K&PK`tPt>%nk)Pr)I<5kSVk5Zl}FB>!qSAhzFULx5;-ss1O; z?Vm6>RYLPQ_`a+}6_*OzTOW6&_#ut+5B5CWT<}pk!=oGZ;F{V4gx^k|$@ioRPP0Zf zbj`ka%MlT#ia)+e1HI6a+|D-j3aO`+M0h3tr7SN)vw@EUY!UC;~-zH`0MRPy)-s^t{XS1`edH9mgtIE~} za$e{XgKw&kE)dGu`l>X**yx770Yv5RW|TIUZh?6i0OqfNn^$uU%p}8oQt}k{JD536 z@^v1Btla&^?_DIAeC`0Vg3OJIJOUbyiVaXCG>WZ#UyyS&|%A;#Zkqg}rW)LYh&;S8=Z$MWBh?9kjja}p7 z1y=SuFZ`cyoBvj4P&|@OzyAhPQf~w%1p6?b66M{)fxdpz5InJZanKNh zLw~E`=#rtEh?le>dC&_6R(=|p$H5PC8fU|)gQ^=ffx7c0s>1UGh}fn!g@{B5y1Kk- zR&|61f2s4Sv(l8+@5$3~WNX=$u9y$Ux(j*mGXuxP9CdIE%tY1Z!=4M(3Jq`SPd8=o znPh11Vz0mK2*DDiiD!0(U|Of4{A>xaSZ*Nd&4HmoW)?K~Xi|=tmAb{k5v~+7o0st1jC`nwaw?E?+I6*_{DHVdsz8s z$fG&5jXa}q7pZxi`EW>344(LmG_^t#6!I|$X=udmAn@_&=thAe18k|>Ss(nU-A3Gz z>Z0{nxtjF&0v!d$=VXSbatEVtlV8wvs_oz|e2xgleIDc9{88b7`8Q+@v0(01$|JIl ziele-A+XGY;WH3J`&Y63g*VQp+uhZDftuYgD0;PiY?V5ulj3Xf5?h&R7-xmA4c>66 z$a7&+Qv@ z=pqlICM4Jfw+yX{MPgf@jH9Hp7?09Dfr2O@!6#Yz zA^&kk!kHtp{iozMhnZJqR9o}+%UWcz^dk>qQD7f}DDtX5+gELvb<=z8O?%yco@-lC zW9298+Vd&`D=k^`DJGxjEQ`a$j7ewwKu0U(={++jvG*0<6JOWk)PHE(#+lQC=%o8* zD+T+#gKbp6dAlVC$2M6ACC+&bos6-3`}jUjQDg-TEl_KWz98?&4o@b&1p7nx9r zkGrun*Eeb|wIrs#*bn|*%Sv_iTf=QTrRxb)MAH?^vR#qbO>?7X<@bR@U2F-jP*Vn{tZS+$Rx$j+^3 zj7#~RvGaEf!6@(|owfatt@A>oGvb61t<|$^A~>UrU>B7_LLO>8hCqtt{34<@BQfGi zJ8#}eiLn@^N-o!V+}UU9pL=-VnBUi}pWF#j%27rxS~2b#bEt`9(*%K-bLCmd*q zxh_fnFMj;L8RNJ@Oy7e8wy$tc-76m3o!YMVR-<-lyUwhwctM2>ciTD&tLYW6Ac(9% z>f-y5hcD!Yt3G)CYnpabRJW{Iopn$+>wh}yz?)Y(DO)EWnopT4i@nz-i`qr!@BYTmdd zG$&qgLXB^taviC@2KfeEhoVq$AQ*7)a|j@U{10jY<{as#x{#@nCMQZWJKd_@)GmX9 z{??xY4s+Sr4@go00}4TOsSi`BUr=64QeAR4!1i&mFfZD48HFFqFkUWD=KpB4aE@~C zOA(x|sX=eBDODDO@?VPJVXMvj{VzpU$h9|?(CdgR6L`VStW(Cq#z%GyhJ)?2mlmKT z^2|ItwuE-9yj$Hp2^3$}d_{Ofr9DZnC^vv+WIoR@H?WilAD=xPo%jWJ#JisN%i~g1 zjHdfoJ&?6;DKKi%U4l+vwy^smrI9_KS7z<*>z@4-$WHQi;;J4e48RUP6ySpQ0_+*6PXgjgAl%{vbS4d*9j@dijUE1&TehwA+r|T=Ly9k& zT$s4HxNdYCE-pYUb8#{-=nP=puBf<&cP{@Q#i_*97tc>~;YDx(L(TwIIu16Vp#7qo z4nPy&kQHdJyU=j>zw@#F4aEv&rSl%VDEW~=42ywj^pIA%zX4H7_RUWpmn_rDrvib8`I+=4(Ff0rdd4(9C? zm6ilYQ~DBdFVHnfrDwj`YsA9nT>$!vXw6t=1zWz)H6}=NCv{blO)f!_IH!%dbwL@X zjBP0&?Q!&~=vU}E!dy%|qGpSp4jU_J^A5i)>7{`@WXx138IA(3hRVvdcU@P)R!J4W3G*c%K|Wh}5T%E*t%l4juz2jT-s(Lzng zvQxH{z0KGp1}4IG!$Xa*Gq-`;U)$#XmSMQ{CsgKr`%!)BzXespWiTD4k;7wF+x^81 zF8v9f#8A~l(2`QTr@LE@Z0rb5bl5QrQ74P1m|1QMv zGo?14=V)<96@{bPd|O{^_AyYSo+GXEM;D>KyFbD>Ndy_HMn~9Dn}914y^1ZLP1N&D z4TUig3SPs%+~ykr_sno|zm=Pg8$NpLT%SxNk1_AhDZcvbg=pO7a-8Nm9nIQvvJEqw zt_P7+T9EX%pgzJ1+=5AsU;X*HRM}^4zAbL?ENV3miu0z0tRg#AC(o??5#fTpLVk?I zk+khB@wzeUyzQ642$@+U<>*cjMvNWz2@5GTO|+GO!%*#Q*rN5+NpM+F4{P=GV?#Ao zyo8>cspk5Ix(@p0?z$#6)=u;ehSs;i$rkBvgn5#~3Q4$35a4Q2} z9we$-94~sj366M^L!qsXI>ydWsfb0C2S)^jMgAn8LkfFpfoo9hbfk$c96WrMbP%%f z$%(7@TIeGu;hF;05Lr$a(>KMRZ9yzg?6u1FENuqC6{^s@tfVp|`-ySZKQ_`}8|O@( zZA>79ku2ewMgT#pt~}`DBYe>^lo2xl^hSZBC08u>MZ{2JP2TSbkH^aElEr%YR>Pqo z8e>XaWMoldcp{G8df$(qswZO;C4|sAE6+`grx?}QA#LW`n}5hK&_>i^mEVeQ0S+z2 z__ehumz7f6B{i#$T<~;~5zO(qwOCkg#Tu=P87=C@ z;%t68dCP2w@wM|k#BGUEFkIzkC!{s&Dz9nfe(ZdhJE@3I7!o?Nmxb#MB($)9b~sSB zl4bAf@kvfRCTrg%AcHz|#mB~1Da%^7O5*U-A$vB1JSf zKrQsyE^O3@FGP%X2CU?ed!O1N-jb4-bAGX#P?woK+=^Zum-(07qGnZr_QJ>M@bk7W z#9tAuQd4RB5f?#qSg9rii|t*zPksQq`JZ9(e?4nGZCOshb2ZA@BS`IT2-HikzAV=T znEVSjm<0w3AoamO7rg?v6h6UU+$V+$BV;gkWHhofbY%RCQC)IQuwhbDJ7jX3&2JTr z6W@}izd{Pwaip=7Jp-T3Lox(!fHKWWiqky>M>|?eFj#qUR$=hfMkeaG(OJ~f80nyd zqqpFGZ;0(7&acol!fm_c&CaTg%5xVE7tMW}mperU%%qX`xGmnGn;_9EIjI=~{n!&^ zzC2kbWK^c`p);=e!ac@{a6c8FoGo%4c8U9EVr;q8X0B)QwCHY>u*9HZS9TcJW6xw{ zjvrwk4tzvQrI=#l%1ZUrds2G<}>7A=Zvm?DG(Eb6%j9A+#y zR6Z6EL|2;YZwrSzEv612kc*|k6%CJy;=~Lp5or3mZ8rWA-v|zEg?XPOV~}(%26Zsd zQGr4s;CzOe-yx;AUBrAscL4hjaW8RW+sg#OmAKb!;P?CWtBGaT z<7t6DWHx3dpd;lfvkJ^Nx;^}FxyHZwO{3k|hM?13EHYeGFU=`lE6#cQ%BSIjAJe|c z9OMdDK(5G=z{0&8eZpwMMNdy!KUxQ)xj<{x$uX0vY>>$zs==OfEpL zCK`e(91;19lcApgI$>Y-k?nn0f+9M?P(7~MBX%V;u0b72+A+Rd^g8BMY)I9pBYzm zcFX-y750xO++o0h6?5rGvCYv~EHG*-zoAixN{PospAUWd&>$+E$~3vJ7gtAorKu#d zcR~;sS}sv~UCLJFaVdEk2g0h6%R>gbol_p?u!bZ1Z|!^>U(2DR4XU#zgZS7zI9(-T z3$lqr8L~T&K9$6ag0+7^RU{>y&iYY-ApvjnLr31}7xbg{SC5g#Fv{wz6BpV(D4XTY znTJ&*WZkc-<|lskUaGw6?L0xnyTz!irgp!=u|29lWGJhl^NCdLpMj4nX)z$)b7fmN zt&FxTeUxP-%+r!((T#v-d}*TX8rx3bf|fV5u!RYa$~IImMs9CM7pIE&9jmN=PLWo} zd3mUBT%PskCukF&w5~;#OKTLrj^P~Lto4BoF2kGdGF`jN0*G6F<}ST@N3;r1FJQlQ zy0*1%?e++;+kL=pC$H=l#prqR2?wE*_DSq{?B@^Xf_IJhk{gct(~7TW2OyxKD_!3k zvGBF@-i0>7bqN-O(bAM_S{GWN-{{}TZ-7C(zzRzI~?&<#4}*`n$tBXksCXJWWUoVw7&CP1;d5 zy1wItSh>yT(zM@n*)tI7iwy4(PNW%9KTuvG)H`h!*&oIQny(RR6FKj8qt_$P~V8L-Ajh@g=hO zzA4EviK!&Xs@Sk4)6gCBZ57IT+GKvZ%R6$YWohStd!i953+D6k&>K&orePr3g=twQ*^`y= z+T4xeeU*$=uz-m)CVwvk?!=6hC9J-M3kFTRH{QfcpQeWLP{-En7&8BC>KEiJ7T^qO zjuaI-4WWw!`ndu$rUZeB1m1}$@jXn#%Jl}dTm@ziB*KZax;{*t*`8?3KUYyNV#>Qj z7P@O>adHJ}3og3SbT3K|ey3<|G2{+>yt;)CZvZ|#0QfMxf{#BNSuZwy-8*ohtaeA= zNLf%)O;C>hc4hz~66{4E8L-PUJp@r-f&vnWvKmk-aP{)t+qyOXt4Iz={%~F}HY_Zc zksMHY4rGL`YOVga-@w1waIu#|RVHNAV$LKyXSfuqKwyrix)HiZIV#G;S;J6ct?Fz5 z#V(t}{R5>w!5I)hp;^1i%3iHyTAXIvH&I45>D`0WhKDR-3YT31LKbZ60I>O1>{kRkm(}dMy z2JgFOewmR)n#hHtzB-XT}M(W#)C zKqNS23u1+c`eH%8YDyzN1jc27##m~q=OC$$$a9OOY%uR2p@d=71*I>H-P@zkEoZX| zE!;1jb&q~=Zh6lp14?=eb4Zl)1+l{i5K7_0%@?ulR z)^6(C{-lrJ-|s&5c<<~dWd5{RbWgyGQium@TNqmTk^|C(3uA^OW5(xujt`Kutk?Pd{Z>!>|~=0 zX!|$-ZC{Q~y2jS}=2kb2Cb!nR<@Vcpp@31QP{1ft$eU57BK1hY3Si`Ar~~X26s8?P zfBDA$CS7zbT?U5+p`y%$1;V&6T39q>C4DP^kp*UX5eu6;xiMYOJVZdlP&P9rR#5`9 zM;@yvDc=+W-OLw4M8m!ls$M+D6<-Zd{Y-!~)|Hn)uc9nRfAJAw7tcs9Y-Mh2<8+Az zz~46#NkH2zvFOFqUopEtVu*{0gPD`Hqi#`ZusC;R?vy ze)dj~$3TqZeNU5~^G7b@Ln&PG^y+SjZi~1fSvH*NOreD@lC!TE2|d3u!M4kl`57fK z&f%xngMrD9>0(DuKc?Hh zQ`gC2?Cl)2&SzXLNGr9-uVgS~3wE0!G=Dj}DAtpj^`jo~iwn0qa^jDZQ7TP7M&i9rF*l40siTOvH2_pTByOiJUbOBz%IYQAA)rf~r1R6L_!aXlLfrW@fAD>)~N# z?n#8q8c5et%L`Lnly=^*G>{O#{{{6Ile=_OK3MB(XXAQ% zzLS~Sb$J$${%7&au9$Fs$n8%MKODv zJe3~Mss)$*bWutE!*b;SdU9lTv(a3EmwnI2lod$4?&FmLrlulK3@3>A<`VJjPt5uw z?Y0u+id1PsfhyY`p>cee$?MJ)2Yqk0ciP@lYvye3uw$JxLl1O9N?oO~NUt3gBXd*p z3m4^DYvb<#x3T#f;2=u@a4Q1bli2I%299T1HB3nCLz=TihkAJXADRXi-irPmZ{-hZ zHWA>e7qu%F6vb~|84cwkn{{(T7dc5LVi4gKP+|Rk$2ECz?b}@XD;GU0SAoh^ZTOwT z|2J;o-#}!RX9m?_GBZ{lS+QO>lVPZt%z)IZ&n2FX0w*Ftw!F z5YmZ27y&R}_%C1Z{2Hcuc!>nTMy!fMx~ zNoH=?UOyT@6dHV2DabsEG`Ml#J5(F;gufhbS&};4Zj=dX;#UdgwhV$CZ0=7fKAm#! zjIidS>q6`cmDxWNL;ukDev2ZIlL~CA{W7&Cn;Elsc+IgTeElka5FY<{!aoomU2i$^ zCD0xq98HM4m495kJM|uF&&>@kgB<%rn%2LOzIv$rY`2N%NmrHiTX(0WIGT5;<#Tqa zX+1J8<0D^(+s(eak6#~|cWyW|534tj(U7DGzcut`PHFdz;Sqn%SeeO`fyr>cjbO+& zefbYpsg$HAv$X1s0%Skwsh^8Ja#N0=jGOk6$mQ7B9Cp*goGe&I?y)Hl!Qy0;9Gww; z^st&;sh3*;<`=_qi<+dBJ_+^^RN+%zI&L4!oYf)>^p$TxP1T%Mv*A{+&W);FDbzrX zc;p!~Ks+bzSzbmC2Mt=IuS0AQZBVGr+gXhRe^B`OWm_DpZU_Qz+saUMwDshrOY=Xp z_CH295B|1x2w}j|`GKiN*9zPy&?>4Qw{>6k?3VOs0A_w0h*sD|bSG#{ng?*4B< zngOFMfiXvgAGfXeA4v7nb2THt$2#u5WPkmVs&?^Zh(bV);bAiKq)Fuct?m!-p%Yf` zjx4=XAwXOvnxBk9s*)APbB83;f3}bJOL}90SABjFD);&&ZEix|tJZ$7x&!6egau8{ zQYx&=)kk!_*Vx(td$@x$;7ngd#`=GXfV$rB25v1L$efTD*Fy^w zjQZiR>ha%w9FV}BedZ6A3zipZ zrv-HXAV4?CF!d6fjoMkNP));7Pm||}ttKU`LtWi1A<}6^PgwXK8~>jjx+U(~j2>*j zh16j?qafRd@?<>vrS%`U`;RBw9lB)>1~LKGR%q^cQVkLm))B@EA0rKTY=bW*i$J8+ z$>C2QJKOxwG5=4&du*LB<3_e-m@}c_)xcZ6NoRF^>Vvad!9LcQkkuteECwT?*a*#m zqO_m&G+)q8I1nV_;fjn*Qu)ynvUS|_2ecVDyV(IcTfeE?>m_y@scrK9USH7KKyF+e zaApLrc@~Jfe&Pi$D|cr_$;scW9t0$Gp{vUf3o6lb0i#*jSy-4ke!D41SU11EAzkmd zDHrK*K;e-S0IdsJ1&{!{J^XLK-oNF{N7{9MHNg(L9t)G~?(Uh-uQP*>WxODoSHD-Y zVBo7&^Su&oYmQF*Tl*4HbT6OVHd zK`owdon$#<4+(Q3c#ZYV+lTmI7+4`@eqZfUu;F@8&4xNGANRC~g^ri+d{c8IT#4d> zY8aU0oGepXGsjQ&Y6+dkvn$+AKRo`0X=GxaBB_`@i-BzlBjr70RW4h~GOfR=UB41{ zpLv8pnwLQX{Bbz^_SBD%Z!iLe`Ka?}%^b<-kNJ0JySMct`%g_RM;^a#FncE;oT|pA z^mJ3{Kwk*fsBOeHQHJxLVSzyrdvLlV!o59`I;VWu9}bX`W9_;G28QjY6X9zt>wDH^ zHXyUf&%>0(&N?1tu*7j`F3eT3R@XBu|8ZNn^}#xPT&E2pp6`jh-KqH{(>z&~QONZd zAMOva62NdSGu}$NBzrZ*+>g2FB8siRIySx#Z@_HFB(G!w9xCQZ_!J| zln?gnALZu?3m~l->=}w$<_a_FkWh2V&ZSB`P*8|+)C5Z!-|y0?4~wI`+#yk<0d?xV zC=z=|@RM7!IBHU4P7p4=X^mj`RK8+Zybm3*bFs7B!_`ZWNXM_e;x$)HF@KD&psilm z?DF9;sr~n7rF>!yW&TBB`1eB}SQKrn6S}{Lka~qh>vC4097Ikh&tFlJBlkKtJocET z%|na6y33@ZGFS6~Vn8{(m%&rJvpfsE3Ib#|q|?qH^@tOd?VQ4oe%rla^z_YHR+lIpQOirE_pZp_ z6I@!~&=F+R46QN0Z_F?F)$cC5ItV)}@r(3Lab}9emp3IPdb=5;5ZBTi!uwNoA(%*)On2(6Z)04>S`Qh~y%AL_oq7yt)aX@6HbByki8hu&{BmF@w0+ zIqrzI+?@0$*>K|}T)Ll3ATDO0JpxFQUn;QyS}wm2LI1Db%)jA#PFqVBO(xyO0(NV$ zLWZp(PYQxY$0rF+girXX*xupgfz<;169i^NaDGGdgfCMMLRCYp;~^r#Fo$&Etb#^n z3O*8l`Y`RM_{v-sEJnkYu~Eb;19?8Y=gIo`aXX=?_ykoo9C%7L3BjHqJ)_Jib>Z}@ zLeer-<2NsqLnDQ0Cb`6(W`M|QdN!Y-sWobU^|O?aX?d68qoK)N*O5cY??c6+iCp;# zNgI{}uFLAHyEv%`TWfbW!<&hRKP#V^+|$)pBvrwi6Pugk>ti!W7%M{mteMswgf|1C zJV{L?^34$^f?CbsihxOpA7~i(A+PWj=PV|Wkk@!W1Do9M10G_Pc+atq+qN`<)n_3JJRcgr){bcijf;|?fX7Q=v$K8^`MB0+G z8LrnlHHgGflOBFm=X0tdm8dH`ueU!mX(weO%Fuo1TTM~8%bn;dxC&0 zkH$8|MlkpjhUv5KBa5L49$e=2Fh10;47+cd4H?KxicRZnD;m+b^zzeLDI%R8Pv#^Q zA_oRNwzt6K#Ub!JNT4yU-{nvEzPY0jNMi3J+cnLZ$X|Oj4U+ABF<^{>gWVqs@qyMs z$gCi>PEKPKyTLNfx9>EeUI#;>2Nk2bkw&X*`Q@)i?C&cLP6-Vr?Vh6GOK6UM%;c;w z{i*UuM{Q~lQb5Kx^Q*jJ4!jUN`UzOxCm%<7hDL$!s2&nO+#wnVR;j@$pExx&I+9vP zMxSy$t9>}P|9p-vR#%QFJnHC-F5{aEZk22ar+nfOfrOqL%sggiN!I_Lp?{O4!BU_3Kzs*9JO=>n} zdKF!LKW)Hij@joLaM}-6P6Sns(M#)dNAeSUsLvt41<7{xG3_ z+CzZekQ&O!P{r_O8~s)HO1bB;RT5Ix%$2$h&P^)xBH{z)2kIId>eJtm=iDy+4fw!3 zw?9;M;K6|HR2Sc%PvEbJ@B8)+h0iG=+7L{VWu`YW|gcA%n) z6-b#fUuI8%lGuyvDUdG#aR3RD|FduZ-9QOME3V+Ogfn5KI<*YufG?IrJhDjoiG1i3CosSd=>zjzVEMyrj$#ghAEo8H$s??A z+HY+IgddV|z=vY9f848VQ6Zx8{0cYZLPUcRD8MzrDT?acmyp9c-O%&-F+sJs*S)IR zHl%$=HB1dJ;cy}q?lx-?sQkBiZ*ydVu>9UMN^z0dvh~SU0qGJ3F z-#)t51d>F)pF%tel-p}x?Db&`NR;Kgo01-R6TkN9diX8Y;Ikh~__N}4jr(fLJl)$A zC4-)fYqD)=+!*dl720fj`w~*@q9%hiaZj552~|asCHA_lB?eQaz0cIi8U1486aJjs z{*Nd8tt9?WRQ>8hG@vnHi6S(59BYR+1=psybB^HQij3hAxxT^hs8 zvbkttR zFaXt4S3=)_>;f~;M9TtVxfmzKa`*7R>oWi50~XD%dj*ptKd{MDpvM&9iHOkZtkU+6 z5JG$S(OB)dz#}#C9))0vhn2P`8|i(GL=fasXfdH=Xp7WOz%snF-ySVu zb7(wtI2<(yi-_(ddb?7}OWU;rj@F>j+fHS;$(eDjla7dufd4~Am1*f9JCyTQdww1 zXtxG&ggu;3MrYB%#8PS1Ebn3sir7k`3{8U_Y%6)HFouML=!y7RaHM)=;`Pg48L}nJ z-QTcAdn&(}Bn_VGoY%!ZqH$jG$}xCSM8TRR*v|LyokwAsf6C z#=F`DiW}rU@AFk-Z4V2djq3Bqx$ZTXc6gJGg#gFA6u<$5 zqa2LwY#q&=Y#rPfejD;-6XMwV)S*5bmqp*`hdzunp%9cT~v z6laqn-epy<6Njgqkl$$y@W84MR`hzhzbL+HS75T4k@CW3G*_?SGxDXK^YdRM4Se%# zdL1HOzlw0TiuUCLO#e?zk(@D1+0{Hs{LSQ%s+#5zYpqSSoM3ZnSb0_B?VjL%Da_(E zk4aexnBC!3b37^7^Z2Ak8=u=E)IRteC{2ZWNJ!rv$)7x?OKJJ|JHx9j^fr+YjJ(Q* zy2)(Z_4oA060TThwQEJ#dk+;ix%^|Jt!(g`XsHUcLzH;@7J`<9jDy1WA zZPV^l;ZA*Po)9{^QBusC5@_{+*4Pf?F%vF%uPqaq0?}*vP_kwxK|_3%T=a=Y(~1hc zTX-N<EW2b( z5bgz)>o1E`AuB}AFC)$h%n_faXhEbBeM5qr6xx|9+9_>O&V8b%pjhG1uy+XUFC6ux z%;_hyo{qqbS|m$9a^)sQBL(kkFiSSnvt*M+w600xYmA)sCM#7bbfAzEJN$~dQEb!% zp1jhTY7vLr`%Q0~QL<`YXoiywbN922{4ZbC<(iCovZD8=wvf{hJRp}NJZr&T@DD3h z9VWYDlsnv+PTP{?njOV`YE4Iv+-G7t{-AlyY;8;}fj_#y0=ms3+;J= zARv{1eZ?a{Kra7feSyU9Aijk3Z)I1sdlJ{zAyxpc^PAvB!}{a(8*YI3((?lWqXPk@ zgo_bA7aGifSlPuPD;qO2m&SkJh5pS)D>&z@STTW+oJ%j82|E-BbvvA`b322mTPKeo zAl)Aga4bt391 zB4R%4boP3()DJf0AE@}bl;D57vsiX2`DCp1roprMseey0=E)v|Jn=)g6xW?r!j^=` zCWI0?b0{#Oq;WIGZ}7CqOn9oYm=!<2$WO~l_I8Q-lxF!x3wc84_!*>RvLVhRmgO_%cN=V1gl*M?t3l`hp;i2hjG zC_ijx-bJJ8TJvUT$@*z-m*Twg2}TUO^3f-0QnajZ2QY{xGWDr78~MyKO6X6 z$2S-vP7v<3%*WBObt=5)OBSMQn8ES^sXHZhbs8}>oi^6%V!<{`4;f-gaadN%QgTZ; z*5h(xD;O$FsRpwpPw^v-U6O?u$4RXc$>I?#1A`WA5ji)1=9){WKHUjl-d1#gj6BqiK#*GI=+_!G@ns|V=w`XL1< zVafgqwVN@vqA9O-I<4f7P`NQM#F~4E{50tWAN*7>6-47Bc^CC6U(U1X!*R}VITd5< zJDX{O*?xRFB9YmX`tY>3$HO#AjxSP_z6m314;wzWC-8CV+@FQ8{I2n*n`LVQNca86 zNtG?wTWbS?I7mPm72;YN6`bHN-!4!#c3lt#g9afcc@w)Kpus3zUgf3`1QHG9>ILG< zEDAH=S6!BQTr{ZwdZf%;tQTb-mpv;thyRt2{x^dP!;)f4>fF2+(=Kv^$#Ei4SLf|R z&&D%jn`@fa0EsXA+Ll>-NYE@34XTL^DZyX(M2p}&sB{?%yC+=tIB4!igPgV}9_4_u z+s{S+IkkmCnwDK|>ZL3Xe|GcIQyrJO4Ep$iFgY^nXV`{Y$~=@wE}F4ICFk!q<<=&+ zqUHQxyq6>eKDUCGC~KGy@SPm4@FFDpR@rTW2hWo!dwza@5Jm_V<1nb)t55dv$8i!w zbbm#)J-0a=|NXKVq4t-1{BgNCHTcu^_8U*sd==caES3Y_ArWv{RoNM#lGwd}fqntoh2IF7y}w<}{#QZ2HJh2vBfRsrgU* z2XuJvR*C&V4c%0jYJ3Si#B{(=lP36{xRg!_T8lKD8m9lsTJ(!E>&rXL>UWHuY+VI? z_se8xPkc5kUx(|myZjm}#l!irTY`G3Z!gk7UCK?+P%6Bf(lE{hXJ4EYGR!K@9M)z` z{wr0=6Us4^%NFakLwTL_XZHgSzh-K=x9~qq`AbZp@S4#_50)g!!}|y?s0gyAygwLm)wmM5;gu^^sUaCkb>d+UG0_+ z55_xrav74)HK3g<*G3FyYuGBF;KG+jliu!|lw%hlWGhp$vV6sB8uZ5HegllHvKc#( zr%3tE+#aK0S1=`WXnQ#EKTt8igzsS>V@AM*=6u@v55hh%FCb2 zOy!-!|H?=ITfkBnlS2PiN=C}pO)-A$RhOlnBHBk;YnYQ_xR41P6pMCBB(`sjw#5D` zQ6CZmAe%MEq?SJ)gt>gzl%JDXhGCcOPAK3*3Zsn}gu&4(;1F>O@O@sW!7+WWJ1JY{ zvC9wPq)MoMg?*Ljp|9DJ0V^CUonG&?qGcr#_}>$2Sig+^&RX>tS2(P=!3w&%;%ViN zzIkrm2TBI#QrjN&Y|wcRSm$<(oDAsrz$7)O&zMDO11F5BAnbWYrG62O_WUAI36sCS z_Wt=yisg6Ff!a;oz@NNyTrWoXC)XTQR^2iR$0j_BYw*9EOv%L8o;Yx(h;u}>-Gq{AwUu`p_gwln z*LT0X$eFfTDKk%-GT&!uGiQiJOU?=`RzvaS=uj%H_1=%@f7^$>8(}l*C!cK?FOzkw zvq56yPONKX6oApiv0{LP_z-g(oPl}tk@Q|N_db?D)JAeR+>4`n!(0uPwJs;&=tC>> z$L#GiwkIl(T13Ywb>gc_lH$>bazUi^uN-WA)X&wp51pAaau#nSuPvpPPO)7k0;QMauOr+ivQ4^M}sEEU(UJfmm|_w}cZmo5KSdS7)KlddqX zXjDQcs5xp;Zr~O7iRvQ=ZC$N z2@!5fJ<_d9`Z-u#J9!TxBQ0~58I>Yh^qv%VLnvZv280->8&(vSO(q;u{sNONKnWLjvUz1^WEla^&k=7<|9X-Vl#B38@9;~HI5Vh0EL*!7J74x7vofg{; zs_Yi3=%S{y`JUCm{aFxA@0Y@BjQ1thxEQ!tZ3_WWetb1e0u)P0i!?rx-)P{LmUkEA`(<&(eDB zN|R&OX!%~?Yi`+(p3M+x&bK%Tc+|>OL17!6&c2Tbw~ff#v5Vx+#gk$8*^Dy>5LD0i zu#BuWa!Dy9BP*uButuMFX|K2975De+lAyF7?$kgaP{Fot4Yv|e-;~yYY zY<@`|8D5T+WBE@s{;}OjS(5z*X{Zr^!5#oWy7mgBQLsn*lPRAq*GiE*>FKuQ`CDnM zZ|5Cn2!QD8a(@IgWL4naE~uvK!Ns>Ne>cCl8X)?+-k%%9dBJTXqA^`axd63r?8G-` z{_Diz+jha5w_N#L#4OiZ(El^-f^0WMxIk^*&7Q&Xr*QoLmmc=t{KX=2I5--2wq!k| z{3U4~xpB{ryrTHEw9{ua5Ql1T82|uN?QIo)W(v|KU4EFKEmRtMP_0t=p;Ef^EYu5D zZEZt%%)|ggzgO>G=C{d%>1G2sK4r93$xe0U0Llg0P`s4Yy|nO8ERx@Z4J{r^e+^x> zQV~zFrwLe}l)A%8J2aAd?W)M*Zc~<%jOR z+5N$Q^Ru(%FQ)azz{8HPEFYe%;$;w@bpD3a41L>IcV_DDE&sN(Qpw`Yk>v|2gw`hU zxfY}xeLg)+cLrx&{Q7HWG*Uk?uHuk#zxVTJ&7>%fOarym>dCu}yT4*!kn& z+xxd2S3Q`faPn-5s72$+Deo4wXmShZ_ub~XtIBkHNw=iSCC4h(Os@$4gj01*S=>yk zRK+c~-mZV%lBzYeYj4}VxJI#NU4b+A{;p`!%GHqPQL0ToiCe@?YFV1N8ygS>fJ|D<9XZ4=D1XSn;P>i)`-J+ zNys({`;3@RPF}4RAVBY17a+vKeHztL0pZfx6Ns2C)x%2^+h_B(ni0J!x! Ad;kCd literal 0 HcmV?d00001 -- 2.39.5