Merge branch 'dev' into spot-removal-tool (#2239)

This commit is contained in:
Hombre
2018-01-25 20:41:10 +01:00
183 changed files with 9182 additions and 5571 deletions

148
tools/build-rawtherapee Executable file
View File

@@ -0,0 +1,148 @@
#!/usr/bin/env bash
# By Morgan Hardwood
# Version 2018-01-06
# This script gets the latest source code for the given program and compiles it.
# The name of the program, used for the folder names:
prog="rawtherapee"
# The name of the compiled executable:
exe="${prog}"
# The name of the sub-folder, if any, relative to the folder into which the
# compiled executable is placed.
# e.g. If the executable ends up in:
# ~/programs/someProgram/foo/bar/someExecutable
# then set it to:
# exeRelativePath="foo/bar"
# or if the executable ends up in
# ~/programs/someProgram/someExecutable
# then leave it empty:
# exeRelativePath=""
exeRelativePath=""
# The path to the repository:
repo="https://github.com/Beep6581/RawTherapee.git"
# No touching below this line, with the exception of the "Compile" section
# -----------------------------------------------------------------------------
# The name of the project's standard branch, typically "master":
master="dev"
buildOnly="false"
buildType="release"
# Removes the trailing forward-slash if one is present
exeRelativePath="${exeRelativePath/%\/}"
# Append forward-slash to exeRelativePath only if it is not empty.
exePath="${exeRelativePath:+${exeRelativePath}/}${exe}"
# Command-line arguments
OPTIND=1
while getopts "bdh?-" opt; do
case "${opt}" in
b) buildOnly="true"
;;
d) buildType="debug"
;;
h|\?|-) printf '%s\n' "This script gets the latest source code for ${prog} and compiles it." \
"" \
" -b" \
" Optional. If specified, the script only compiles the source, it does not try to update the source. If not specified, the source will be updated first." \
" -d" \
" Optional. Compile a \"debug\" build. If not specified, a \"release\" build will be made." \
""
exit 0
;;
esac
done
shift $((OPTIND-1))
[ "$1" = "--" ] && shift
printf '%s\n' "" "Program name: ${prog}" "Build type: ${buildType}" "Build without updating: ${buildOnly}" ""
# Clone if needed
cloned="false"
updates="false"
if [[ ! -d "$HOME/programs/code-${prog}" ]]; then
mkdir -p "$HOME/programs" || exit 1
git clone "$repo" "$HOME/programs/code-${prog}" || exit 1
pushd "$HOME/programs/code-${prog}" 1>/dev/null || exit 1
cloned="true"
else
pushd "$HOME/programs/code-${prog}" 1>/dev/null || exit 1
git fetch
if [[ $(git rev-parse HEAD) != $(git rev-parse '@{u}') ]]; then
updates="true"
fi
fi
# Pull updates if necessary
if [[ "$updates" = "true" && "$buildOnly" = "false" ]]; then
git pull || exit 1
fi
# Find out which branch git is on
branch="$(git rev-parse --abbrev-ref HEAD)"
# Set build and install folder names
if [[ $branch = $master && $buildType = release ]]; then
buildDir="$HOME/programs/code-${prog}/build"
installDir="$HOME/programs/${prog}"
else
buildDir="$HOME/programs/code-${prog}/build-${branch}-${buildType}"
installDir="$HOME/programs/${prog}-${branch}-${buildType}"
fi
existsExe="false"
if [[ -e "${installDir}/${exePath}" ]]; then
existsExe="true"
fi
# Quit if no updates and build-only flag not set
if [[ "$cloned" = "false" && "$buildOnly" = "false" && "$updates" = "false" && "$existsExe" = "true" ]]; then
printf '%s\n' "No updates, nothing to do."
exit 0
fi
# Determine CPU count
cpuCount="fail"
if command -v nproc >/dev/null 2>&1; then
cpuCount="$(nproc --all)"
fi
if [[ ! ( $cpuCount -ge 1 && $cpuCount -le 64 ) ]]; then
cpuCount=1
fi
# Prepare folders
rm -rf "${installDir}"
mkdir -p "${buildDir}" "${installDir}" || exit 1
cd "${buildDir}" || exit 1
# -----------------------------------------------------------------------------
# Compile
# See:
# http://rawpedia.rawtherapee.com/Linux#Compile_RawTherapee
cmake \
-DCMAKE_BUILD_TYPE="$buildType" \
-DCACHE_NAME_SUFFIX="5-dev" \
-DPROC_TARGET_NUMBER="2" \
-DBUILD_BUNDLE="ON" \
-DBUNDLE_BASE_INSTALL_DIR="${installDir}" \
-DOPTION_OMP="ON" \
-DWITH_LTO="OFF" \
-DWITH_PROF="OFF" \
-DWITH_SAN="OFF" \
-DWITH_SYSTEM_KLT="OFF" \
-DWITH_BENCHMARK="OFF" \
"$HOME/programs/code-${prog}" || exit 1
make --jobs="$cpuCount" install || exit 1
# Finished
printf '%s\n' "" "To run ${prog} type:" "${installDir}/${exePath}" ""
popd 1>/dev/null

View File

@@ -1,450 +0,0 @@
#!/usr/bin/env bash
# Written by DrSlony
# buildRT version 4.4, 2016-03-03
# Please report bugs or enhancements to https://github.com/Beep6581/RawTherapee/issues
# www.rawtherapee.com
# www.londonlight.org
head -n 4 $0 | tail -n 2 | sed $'1s/.\+/\E[1m&\E[0m/'
echo
if [[ $UID -eq 0 ]]; then
printf "%s\n" "Do not run this script as root!" "Aborting"
exit 1
fi
alert () {
case "$alert_type" in
notify-send) notify-send "RawTherapee" "$1" ;;
kdialog) kdialog --title "RawTherapee" --passivepopup "$(printf "%b\n" "$1")" ;;
zenity) zenity --notification --text="$(printf "%b\n" "$1")" ;;
xmessage) xmessage -nearmouse "$(printf "%b\n" "$1")" ;;
none) printf "%b\n" "" "Compilation complete:" "$1" ;;
esac
}
#--- Set some variables
unset choiceNumber choiceNumbers buildType buildTypes list branch branches repo
version="4.3"
movetoPatched=""
repo="${HOME}/rawtherapee"
procTarget=2
while getopts "bc:fnp:s:t:uvh?-" opt; do
case "${opt}" in
b) patched="yes"
movetoPatched="_patched"
printf "%s\n" "Buildonly flag detected, will not git pull or checkout" ;;
c) dCacheNameSuffix="$OPTARG"
dCacheNameSuffix=${dCacheNameSuffix//[^\.\-_a-zA-Z0-9]/};
forceCmake="yes"
printf "%s\n" "Cache and config name suffix: $dCacheNameSuffix" ;;
f) forceCmake="yes"
printf "%s\n" "Will forcefully re-run CMake" ;;
n) noomp="-DOPTION_OMP=OFF"
forceCmake="yes"
printf "%s\n" "OpenMP disabled" ;;
p) procTarget="$OPTARG"
if [[ $procTarget -lt 1 || $procTarget -gt 9 ]]; then
printf "%s\n" "Invalid processor target value." "Use a value from 1 to 9, e.g." "./buildRT -p 1" "See ProcessorTargets.cmake" "Aborting"
exit 1
forceCmake="yes"
fi ;;
s) movetoPatched="_${OPTARG//[^\.\-_a-zA-Z0-9]/}"
printf "%s\n" "Suffix of destination build dir: ${movetoPatched}" ;;
t) titleSuffix="${OPTARG//[^\.\-\:\ \+_a-zA-Z0-9]/}"
forceCmake="yes"
printf "%s\n" "Titlebar version suffix: ${titleSuffix}" ;;
u) gcVer="$(curl "https://raw.githubusercontent.com/Beep6581/RawTherapee/master/tools/buildRT" 2>/dev/null | grep "^#.*[vV]ersion.*")" || { echo "\"curl\" program not found, please install it first."; exit 1; }
gcVer="${gcVer##*[[:alpha:]] }"
gcVer="${gcVer%%,*}"
latestVer="$(printf "%s\n" "$version" "$gcVer" | sort -rV | head -n 1)"
if [[ $version = $latestVer ]]; then
printf "%s\n" "You are using the latest version of buildRT, $version"
exit 0
else
printf "%s\n" "You are using version $version but version $gcVer is available on GitHub." "You can download the GitHub version from this URL:" " https://raw.githubusercontent.com/Beep6581/RawTherapee/master/tools/buildRT" "Replace it with this script, and remember to run \"chmod +x buildRT\""
exit 0
fi ;;
v) verbose=yes
printf "%s\n" "Verbose mode, I will spam your screen with warnings" ;;
h|\?|-) printf "%s\n" "Usage:" "" " $0 [-b] [-c <string>] [-f] [-n] [-p <1-9>] [-s <string>] [-t \"<string>\"] [-v]" ""
printf "%s\n" \
" -b" \
"Build-only mode. buildRT uses \"git checkout master\" to update your source code repository to the newest revision, however doing so might destroy any uncommitted or unpushed changes you made or any patches you applied. With the -b flag the script will not update the source code, so that you can easily compile RawTherapee with whatever patches you manually applied. buildRT should automatically detect if you modified the source code, but you can use this flag to force build-only mode." "Generally when compiling patched RT versions you want to keep the cache and config folders separate, so consider using \"-b -c _testing\"" "" \
" -c <string>" \
"Specify a suffix to the cache and config directory names. Only alphanumerics, periods, dashes and underscores are valid. The default value is \"4\", which will result in your build of RawTherapee storing the cache in \"${HOME}/.cache/RawTherapee4\" and config in \"${HOME}/.config/RawTherapee4\". For example, use \"-c _testing\" if you want to test older or patched versions of RawTherapee without potentially damaging your \"real\" cache and config files." "" \
" -f" \
"Force CMake to re-run." "" \
" -n" \
"Disable OpenMP." "" \
" -p <1-9>" \
"Set which processor target to use. Takes a single digit from 1 to 9. The default is 2. See ProcessorTargets.cmake" "" \
" -s <string>" \
"Suffix of destination build directory, so that if you have applied a patch, say \"dustremoval-1.patch\", and want to have RawTherapee compiled to a folder whose name ends with \"_dustremoval1\", you would set \"-s dustremoval1\" (the underscore is automated)." "" \
" -t \"<string>\"" \
"Suffix displayed next to the RawTherapee version in the window titlebar. It is recommended that you include the commit of the newest public commit (the one you would see if you cloned the repository anew) so it is clear which commit you applied the patches to. E.g.:" "-t \": ee72ddbcfd4e + dustremoval-1.patch + mustafa ibrahim\"" "" \
" -u" \
"Check for an update of buildRT on GitHub." "" \
" -v" \
"Make compilation verbose, so you see all compiler warnings." | fold -s
exit 0 ;;
esac
done
shift $((OPTIND-1))
[ "$1" = "--" ] && shift
printf "%s\n" "Repository: ${repo}"
printf "%s\n" "Processor target: ${procTarget}"
if [[ -z $verbose ]]; then
Wcflags="-Wno-unused-result -Wno-aggressive-loop-optimizations"
fi
cpuCount="$(grep -c 'processor' /proc/cpuinfo)"
# We can assume that if grep returns more than 32 lines (CPUs), or nothing at all, something's wrong
if (( cpuCount < 1 || cpuCount > 32 )); then
cpuCount="1"
fi
printf "%s\n" "CPU count: ${cpuCount}"
# Zenity --notification is broken in <=3.8.0, removed Zenity support for now.
# elif hash zenity 2>/dev/null; then alert_type="zenity"
if hash notify-send 2>/dev/null; then alert_type="notify-send"
elif hash kdialog 2>/dev/null; then alert_type="kdialog"
elif hash xmessage 2>/dev/null; then alert_type="xmessage"
else alert_type="none"
fi
# list from http://linuxmafia.com/faq/Admin/release-files.html
distributions=(
"Annvix /etc/annvix-release"
"Arch /etc/arch-release"
"Arklinux /etc/arklinux-release"
"Aurox /etc/aurox-release"
"BlackCat /etc/blackcat-release"
"Cobalt /etc/cobalt-release"
"Conectiva /etc/conectiva-release"
"Debian /etc/debian_version"
"Fedora /etc/fedora-release"
"Gentoo /etc/gentoo-release"
"Immunix /etc/immunix-release"
"Knoppix knoppix_version"
"Linux-From-Scratch /etc/lfs-release"
"Linux-PPC /etc/linuxppc-release"
"Mandrake /etc/mandrake-release"
"Mandriva_Mandrake /etc/mandriva-release /etc/mandrake-release /etc/mandrakelinux-release"
"Mint /etc/linuxmint/info"
"MkLinux /etc/mklinux-release"
"Novell /etc/nld-release"
"PLD /etc/pld-release"
"RedHat /etc/redhat-release"
"CentOS /etc/centos-release"
"Slackware /etc/slackware-version"
"SME /etc/e-smith-release"
"Solaris /etc/release"
"SunJDS /etc/sun-release"
"SUSE /etc/SuSE-release"
"TinySofa /etc/tinysofa-release"
"TurboLinux /etc/turbolinux-release"
"Ubuntu /etc/lsb-release"
"UltraPenguin /etc/ultrapenguin-release"
"United /etc/UnitedLinux-release"
"VA-Linux /etc/va-release"
"YellowDog /etc/yellowdog-release"
)
for element in "${distributions[@]}"; do
read distro loc1 loc2 loc3 <<< "$element"
for loc in $loc1 $loc2 $loc3
do
# distribution=${distro} because if none of the elements match, distro will =YellowDog (last item in the list)
# add "break 2;" to the end if we really want to, but Ubuntu gets detected as Debian first, then as Ubuntu,
# so we might want to not break the loop.
[[ -e "$loc" ]] && distribution=${distro}
[[ "$distribution" = Gentoo ]] && break 2
done
done
if [[ -z ${distribution} ]]; then
printf "%s\n" "" "Could not automatically detect your distribution. Please enter your distribution's name below followed immediately by the version, without any spaces or punctuation marks, and hit enter to confirm, e.g. \"Ubuntu1310\", \"Mint15\" or \"OpenSUSE123\"" | fold -s
read distribution
#sanitize
distribution=${distribution//[^a-zA-Z0-9]/}
fi
printf "%s\n" "Distribution: ${distribution}";
bits="$(uname -m)" || { printf "%s\n" "Is your system a 32-bit or 64-bit one?" "Enter 32 or 64 and hit enter: "; read bits; bits=${bits//[^0-9]/}; }
if [[ $bits = *64* ]]; then
bits=64
else
bits=32
fi
printf "%s\n" "System: ${bits}-bit" ""
#--- Check script dependencies
hash git 2>/dev/null || { echo >&2 "Git not found, install Git first and then re-run this script."; exit 1; }
#--- Clone and/or pull
if [[ ! -d "${repo}" ]]; then
printf "%s\n" "${repo} not found, cloning from GitHub..."
git clone https://github.com/Beep6581/RawTherapee.git "${repo}"
cd "${repo}" || exit 1
verLatesttag="$(git describe --tags --abbrev=0)"
verLatesttagdistance="$(git describe --tags | sed -e 's/.*-\([0-9]\+\)-.*/\1/')"
currentBranch="$(git branch | grep "*" | sed -e 's/.* \+//')"
rev="$(git rev-list --all --count)"
node="$(git rev-parse --short HEAD)"
printf "\nRepository state:\n Branch: ${currentBranch}\n RawTherapee-${verLatesttag}.${verLatesttagdistance}\n Commit: ${rev}:${node}\n Latest tag: ${verLatesttag}\n\n"
alert "Repository cloned succesfully. What would you like to do next?"
printf "%b" "Repository cloned succesfully.\n" "Press 'q' to quit or any other key to continue... "
read -r -n 1
echo
[[ $REPLY = q || $REPLY = Q ]] && { printf "%s\n" "Quitting." ""; exit 0; }
fi
cd "${repo}" || exit 1
#--- Update or decide what to do if user edited the source code (e.g. by applying a patch)
if [[ -z $patched ]]; then
uncommitted="$(git status -s | sed "s/^/\t/")"
unpushed="$(git log origin..HEAD | sed "s/^/\t/" || echo "Could not check for unpushed changes (check your internet connection), but continuing anyway.")"
fi
if [[ -z $uncommitted && -z $unpushed && -z $patched ]]; then
git pull || echo "Could not \"git pull\" (check your internet connection), but continuing anyway."
git checkout master
echo
elif [[ -z $patched ]]; then
printf "%s\n" "" "Warning! There are uncommitted or unpushed changes in the repository!" "Uncommitted:" "$uncommitted" "Unpushed:" "$unpushed" "" "This means that you edited the source code (e.g. applied a patch). If the script proceeds to update the repository, those changes you made to the source code might be lost. Your choices are to force the update and possibly lose the changes, not to update and to compile RT as-is, or to abort the script." | fold -s
read -r -p "[f]orce update, [c]ompile as-is, or [a]bort? " fca
case $fca in
f|F) git pull || echo "Could not \"git pull\" (check your internet connection), but continuing anyway."
git checkout master
echo ;;
c|C) printf "%s\n" "Retaining edited source code and compiling RT as-is." ""
patched="yes"
if [[ -z $movetoPatched ]]; then
movetoPatched="_patched"
fi ;;
*) printf "%s\n" "User aborted" ""
exit 0 ;;
esac
else
printf "%s\n" "Retaining edited source code and compiling RT as-is." ""
if [[ -z $movetoPatched ]]; then
movetoPatched="_patched"
fi
fi
cd "${repo}" || exit 1
verLatesttag="$(git describe --tags --abbrev=0)"
verLatesttagdistance="$(git describe --tags | sed -e 's/.*-\([0-9]\+\)-.*/\1/')"
currentBranch="$(git branch | grep "*" | sed -e 's/.* \+//')"
rev="$(git rev-list --all --count)"
node="$(git rev-parse --short HEAD)"
printf "\nRepository state:\n Branch: ${currentBranch}\n RawTherapee-${verLatesttag}.${verLatesttagdistance}\n Commit: ${rev}:${node}\n Latest tag: ${verLatesttag}\n\n"
#--- Print the menu
branches=()
if [[ -z $patched ]]; then
while read -r branch; do
branches+=("$branch")
done < <(git branch -a | grep origin | sed -e 's/.*\///'| sort -uf)
else
branches="$(git branch | grep "*" | sed -e 's/.* \+//')"
fi
# Make the menu list
list=("0" "[abort]" "[exit]")
num="1"
buildTypes=("release" "debug")
for branch in "${branches[@]}"; do
for buildType in "${buildTypes[@]}"; do
list+=("$num" "${branch}" "${buildType}")
((num++))
done
done
printf "%s\n" "---------------------------------------------"
printf "%s\t%s\t%s\n" "#" "Branch" "Build Type" "${list[@]}" | column -t -s $'\t' -c 3 | sed $'1s/.\+/\E[1m&\E[0m/'
printf "%s\n" "---------------------------------------------" "" "Enter your choices, each number separated by a single space, e.g. 3 4" "If you don't know which option to choose, then choose the \"default\" branch, \"release\" build type." "" | fold -s
# make sure choices are valid
checkChoices () {
choiceNumbers="${choiceNumbers//[^0-9 ]/}"
# all choiceNumbers must exist in listNums, else ask again
for choiceNumber in "${choiceNumbers[@]}"; do
if [[ "${choiceNumber}" = 0 ]]; then
exit 0;
fi
found=0
# for each num in list[@]
for (( o=3 ; o<${#list[@]} ; ((o+=3)) )); do
if [[ "${list[$o]}" = ${choiceNumber} ]]; then
found=1;
fi
done
# if one of the numbers the user typed arent in the list, break the loop and ask for input again
if [[ $found = 0 ]]; then
[[ -n ${choiceNumbers[@]} ]] && printf '%s\n' "Invalid choices, try again."
return 1;
fi
done
}
# keep repeating read until choices are valid
until checkChoices; do
read -r -p "Your choices: " -a choiceNumbers
done
printf "%s\n" "" "---------------------------------------------" ""
#--- Compile the chosen builds
for choiceNumber in "${choiceNumbers[@]}"; do
if [[ $choiceNumber = 0 ]]; then
printf "%s\n" "User exited."
exit 0;
fi
# ${array[@]:offset:length}
# choiceNumber*3 to get the human menu choice to match the correct array index, and then +1 so we offset to branch and buildType, not #.
IFS=$'\t' read -r branch buildType < <(printf "%s\t%s\n" "${list[@]:$(($((choiceNumber*3))+1)):2}")
# extra safety check
if [[ -z "$branch" ]] || [[ -z "$buildType" ]]; then
print '%s\n' "Something went wrong with the selection, \"branch\" or \"buildType\" empty." "Aborting"
exit 1
fi
# This seems useless "$branch != default"
# if [[ -z $patched && $branch != default ]]; then
if [[ -z $patched ]]; then
printf "%s\n" "Updating to branch $branch"
git checkout "$branch" || exit 1
fi
echo
printf "%-15b %b\n" "\E[1mWill compile\E[0m:" "" "\tChoice number:" "$choiceNumber" "\tBranch:" "$branch" "\tBuild type:" "$buildType" "\tTarget:" "$procTarget" ""
[[ -d "${HOME}/rt_${branch}_${buildType}${movetoPatched}" ]] && {
printf "%s\n" "Found old build directory ${HOME}/rt_${branch}_${buildType}${movetoPatched}" "To proceed you must either delete it, or choose a suffix for the destination folder for this build."
read -r -p "[d]elete old build, [r]ename this build destination folder, or [a]bort "
echo
case $REPLY in
d|D) rm -rf "${HOME}/rt_${branch}_${buildType}${movetoPatched}" || exit 1 ;;
r|R) printf "%s\n" "The build will be saved to \"${HOME}/rt_${branch}_${buildType}_X\" where \"X\" will be replaced with whatever suffix you choose next. Only alphanumerics, dashes, underscores and periods are valid." | fold -s
read -r -p "Suffix: "
movetoPatched="_${REPLY//[^\.\-_a-zA-Z0-9]/}"
printf "%s\n" "Build will be compiled to \"${HOME}/rt_${branch}_${buildType}${movetoPatched}\"" ;;
a|A) printf "%s\n" "Cannot proceed if old build directory exists." "Remove it or rename it, then re-run this script." "Aborting"
exit 0 ;;
*) printf "%s\n" "Unknown response \"$REPLY\""
exit 1 ;;
esac
}
cd "${repo}" || exit 1
[[ -z $dCacheNameSuffix ]] && dCacheNameSuffix="${verLatesttag%%.*}"
# need to rerun cmake if buildtype changed
if [[ -e build/CMakeCache.txt ]]; then
previousBuildType="$(grep 'CMAKE_BUILD_TYPE:STRING=' build/CMakeCache.txt)"
previousBuildType="${previousBuildType##*=}"
fi
if [[ ! -e build/CMakeCache.txt || $previousBuildType != "$buildType" ]]; then
forceCmake="yes"
fi
if [[ ! -d "${repo}/build" || $forceCmake = yes ]]; then
# Clean up leftovers from previous successful or failed builds
[[ -d "${repo}/${buildType}" ]] && { printf "%s\n" "Found old build directory \"${repo}/$buildType\". Removing it."; rm -rf "${repo}/${buildType}"; }
[[ -d "${repo}/rawtherapee" ]] && { printf "%s\n" "Found old build directory \"${repo}/rawtherapee\". Removing it."; rm -rf "${repo}/rawtherapee"; }
[[ -d "${repo}/build" ]] && { printf "%s\n" "Found old build directory \"${repo}/build\". Removing it."; rm -rf "${repo}/build"; }
printf "%s\n" "" "Cleaning out old CMake files"
make clean || { printf "%s\n" "Error while running \"make clean\", aborting." "Easiest solution: delete ${repo} and re-run buildRT."; exit 1; }
./clean.sh || { printf "%s\n" "Error while running \"./clean.sh\", aborting." "Easiest solution: delete ${repo} and re-run buildRT."; exit 1; }
mkdir "${repo}/build" || exit 1
# As of changeset 1930:067e362c6f28 on Mon Jun 25 2012, revision number 1930, RT supports and encourages out-of-source builds.
if (( rev < 1930 )); then
cmake \
-DCMAKE_BUILD_TYPE="$buildType" \
-DPROC_TARGET_NUMBER="$procTarget" \
-DCMAKE_C_FLAGS="-pipe" \
-DCMAKE_CXX_FLAGS="$CMAKE_C_FLAGS $Wcflags" \
"$noomp" \
-DCMAKE_INSTALL_PREFIX="build" \
-DBUILD_BUNDLE="ON" \
-DBINDIR="." \
-DDATADIR="." \
-DCACHE_NAME_SUFFIX="$dCacheNameSuffix" \
|| { echo "Error during cmake, exiting."; exit 1; }
else
cd "${repo}/build"
cmake \
-DCMAKE_BUILD_TYPE="$buildType" \
-DPROC_TARGET_NUMBER="$procTarget" \
-DCMAKE_C_FLAGS="-pipe" \
-DCMAKE_CXX_FLAGS="$CMAKE_C_FLAGS $Wcflags" \
"$noomp" \
-DCMAKE_INSTALL_PREFIX="build" \
-DBUILD_BUNDLE="ON" \
-DBINDIR="." \
-DDATADIR="." \
-DCACHE_NAME_SUFFIX="$dCacheNameSuffix" \
-DVERSION_SUFFIX="$titleSuffix" \
../ \
|| { echo "Error during cmake, exiting."; exit 1; }
fi
fi
echo
if (( rev >= 1930 )); then
cd "${repo}/build" || exit 1
fi
printf "%s\n" "" "Starting compilation:"
time { make -j${cpuCount} install; } || { printf "%s\n" "" "Error during make, exiting."; exit 1; }
printf "%-15b %b\n" "" "" "RawTherapee compiled:" "" "\tChoice number:" "$choiceNumber" "\tBranch:" "$branch" "\tBuild type:" "$buildType" "\tTarget:" "$procTarget" "\tCache:" "${HOME}/.cache/RawTherapee${dCacheNameSuffix}" "\tConfig:" "${HOME}/.config/RawTherapee${dCacheNameSuffix}" "" ""
# RT used to build into various places over the years.
# We want to end up with the build in a folder called "<repo>/build/rawtherapee" regardless of which old version you compile, and then to zip it, so we move dirs around:
if (( rev < 1930 )); then
if [[ -d "${repo}/${buildType}" ]]; then
printf "%s\n" "Moving \"${repo}/${buildType}\" to \"${repo}/build/rawtherapee\""
mv "${repo}/${buildType}" "${repo}/build/rawtherapee"
elif [[ -d "${repo}/rawtherapee" ]]; then
printf "%s\n" "Moving \"${repo}/rawtherapee\" to \"${repo}/build/rawtherapee\""
mv "${repo}/rawtherapee" "${repo}/build/rawtherapee"
elif [[ ! -d "${repo}/build" ]]; then
{ printf "%s\n" "Could not find the \"build\" directory containing the compiled RawTherapee in ${repo}" "Please notify DrSlony in the forum:" "http://rawtherapee.com/forum/viewtopic.php?f=10&t=3001#p22213" "" "Exiting"; exit 1; }
fi
elif [[ -d "${repo}/build/${buildType}" ]]; then
printf "%s\n" "Moving \"${repo}/build/${buildType}\" to \"${repo}/build/rawtherapee\""
mv "${repo}/build/${buildType}" "${repo}/build/rawtherapee"
fi
echo
cd "${repo}/build"
# ${repo}/build/AboutThisBuild.txt doesn't exist with older versions
# Put "AboutThisBuild.txt" alongside the "rawtherapee" dir for the zip so that the website can extract the needed info when uploading the build (no other reason)
if [[ ! -e AboutThisBuild.txt ]]; then
cp "rawtherapee/AboutThisBuild.txt" AboutThisBuild.txt || { printf "%s\n" "Could not copy ${repo}/build/rawtherapee/AboutThisBuild.txt to ${repo}/build/AboutThisBuild.txt, exiting."; exit 1; }
fi
cat AboutThisBuild.txt || { printf "%s\n" "${repo}/build/AboutThisBuild.txt not found, exiting."; exit 1; }
if [[ -z $patched ]]; then
printf "%s\n" "Zipping the compiled RawTherapee dir \"${repo}/build/rawtherapee\" and putting it in \"/tmp/RawTherapee_${branch}_${distribution}_${bits}_${verLatesttag}.${verLatesttagdistance}_${buildType}.zip\""
[[ -e "/tmp/RawTherapee_${branch}_${distribution}_${bits}_${verLatesttag}.${verLatesttagdistance}_${buildType}.zip" ]] && { rm "/tmp/RawTherapee_${branch}_${distribution}_${bits}_${verLatesttag}.${verLatesttagdistance}_${buildType}.zip" || exit 1; }
zip -Xrq "/tmp/RawTherapee_${branch}_${distribution}_${bits}_${verLatesttag}.${verLatesttagdistance}_${buildType}.zip" AboutThisBuild.txt rawtherapee
fi
# Now that the zip is ready, the build can be moved to ~/rt_<branch>_<buildType><_patched>
printf "%s\n" "" "Moving \"${repo}/build/rawtherapee\" to \"${HOME}/rt_${branch}_${buildType}${movetoPatched}\""
mv "${repo}/build/rawtherapee" "${HOME}/rt_${branch}_${buildType}${movetoPatched}" || { printf "%s\n" "" "Could not move \"${repo}/build/rawtherapee\" to \"${HOME}/rt_${branch}_${buildType}${movetoPatched}\", exiting."; exit 1; }
printf "%-15b %b\n" "" "" "Build ready:" "" "\tChoice number:" "$choiceNumber" "\tBranch:" "$branch" "\tBuild type:" "$buildType" "\tTarget:" "$procTarget"
printf "%b\n" "" "\E[1mTo run RawTherapee\E[0m, fire up a terminal and type:" "~/rt_${branch}_${buildType}${movetoPatched}/rawtherapee" "" "------------------------------------------"
alert "RawTherapee-${verLatesttag}.${verLatesttagdistance} ready.\nChoice number ${choiceNumber}, branch: ${branch}, type: ${buildType}, target: ${procTarget}"
done
# builds=( /tmp/RawTherapee* ); for f in ${builds[@]}; do echo ${f#/tmp/}; done
if [[ -z $patched ]]; then
printf "%s\n" "RawTherapee zipped builds ready in /tmp"
ls -lh /tmp/RawTherapee*
fi
printf "%s\n" "" "Finished building all chosen versions of RawTherapee"

View File

@@ -156,7 +156,13 @@ ditto {"${GTK_PREFIX}","${RESOURCES}"}/share/icons/Adwaita/index.theme
# Copy the Lensfun database into the app bundle
mkdir -p "${RESOURCES}/share/lensfun"
cp /opt/local/share/lensfun/version_1/* "${RESOURCES}/share/lensfun"
cp /opt/local/share/lensfun/version_2/* "${RESOURCES}/share/lensfun"
# Copy liblensfun to Frameworks
cp /opt/local/lib/liblensfun.1.dylib "${RESOURCES}/../Frameworks"
# Copy libiomp5 to Frameworks
cp /opt/local/lib/libomp/libiomp5.dylib "${RESOURCES}/../Frameworks"
# Copy the libiomp5 license into the app bundle
cp "${PROJECT_SOURCE_DIR}/licenses/osx_libiomp5_LICENSE.txt" "${RESOURCES}"

View File

@@ -0,0 +1 @@
atom.png,w22,actions

View File

@@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="24"
viewBox="0 0 6.3499999 6.3500002"
version="1.1"
id="svg3944"
inkscape:export-filename="/tmp/1.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:version="0.92.1 r"
sodipodi:docname="atom.svg">
<title
id="title5085">Icons for the &quot;Expert&quot; tab in RawTherapee</title>
<defs
id="defs3938" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="34"
inkscape:cx="12"
inkscape:cy="12"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1023"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:snap-bbox="false"
inkscape:bbox-paths="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-global="true"
inkscape:object-nodes="true"
showguides="true"
inkscape:guide-bbox="true">
<inkscape:grid
type="xygrid"
id="grid3946"
originx="0.52916667"
originy="0.52916667" />
</sodipodi:namedview>
<metadata
id="metadata3941">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Icons for the &quot;Expert&quot; tab in RawTherapee</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Morgan Hardwood</dc:title>
</cc:Agent>
</dc:creator>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-290.64998)">
<g
id="g8515">
<path
transform="matrix(0.26458334,0,0,0.26458334,0,290.64998)"
sodipodi:nodetypes="cccccccccccccccccccc"
inkscape:connector-curvature="0"
d="m 6.0625,3.3339844 c -1.2662984,0.058816 -2.0871429,0.3184442 -2.9394531,1.0488281 -1.3408668,1.340863 -1.3216513,3.5019342 -0.53125,5.7382815 0.7904088,2.236271 2.3860793,4.682969 4.6171875,6.914062 2.2311004,2.231093 4.6816676,3.830644 6.9179686,4.621094 2.236328,0.790413 4.397426,0.809651 5.738281,-0.53125 1.422718,-1.700718 1.143441,-3.754118 0.613232,-5.492234 l -1.271485,1.175782 c 0.136382,1.15246 0.472932,2.272617 -0.433598,3.222654 -0.723389,0.723364 -2.182487,0.854986 -4.13086,0.166016 C 12.69429,19.508684 10.3929,18.033551 8.3027344,15.943359 6.2125345,13.853205 4.7394076,11.553815 4.0507812,9.6054688 3.5328941,7.619056 3.4447054,6.2444783 4.7949219,5.1503906 5.6024633,4.7765954 6.8024331,4.7580544 8.3496094,5.3046875 c 1.0184163,0.359811 2.1318286,0.9560669 3.2617186,1.7207031 2.167289,1.4490193 3.560285,2.9785964 5.132813,5.0781254 l 1.042968,-1.169922 C 16.580073,9.1130045 14.827882,7.5583939 13.25,6.3789062 11.771853,5.2737724 10.282875,4.3487084 8.8652344,3.8476562 7.8904073,3.5029633 6.9392672,3.3206048 6.0625,3.3339844 Z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.7;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="path4987" />
<path
sodipodi:nodetypes="sccccccccccccccccsccccc"
inkscape:connector-curvature="0"
transform="matrix(0.26458334,0,0,0.26458334,0,290.64998)"
id="ellipse4751"
d="m 17.212891,4.796875 c -0.285429,-4.658e-4 -0.575507,0.01012 -0.871094,0.033203 -0.697281,0.054498 -1.433563,0.180074 -2.191406,0.359375 0.57898,0.4171777 1.042436,0.8569245 1.496093,1.2792969 0.279503,-0.042285 0.551514,-0.075168 0.814454,-0.095703 2.060201,-0.1610079 3.437693,0.3483025 3.949218,1.234375 0.511514,0.885959 0.261243,2.3274766 -0.908203,4.0312501 -1.169454,1.703697 -3.192011,3.547444 -5.751953,5.02539 -2.559942,1.478024 -5.1624774,2.30395 -7.2226562,2.464844 C 4.4671421,19.289536 3.093545,18.786387 2.5820312,17.900391 2.1502856,17.152577 2.2677121,16.002878 3.015625,14.638672 2.6830598,14.145927 2.3829299,13.651425 2.1074219,13.154297 0.84551988,15.061555 0.32266586,17.07582 1.2441406,18.671875 c 0.9481512,1.642243 3.0396015,2.184668 5.4042969,2 C 9.0131178,20.487056 11.78895,19.577613 14.521484,18 c 2.732531,-1.57765 4.913564,-3.530801 6.25586,-5.486328 1.34228,-1.955528 1.918854,-4.0374829 0.970703,-5.6796876 C 20.918382,5.3969891 19.210888,4.8001356 17.212891,4.796875 Z M 8.9765625,7.2226562 C 7.856122,7.8311965 6.6870483,8.6077358 5.78125,9.3105469 5.9561768,9.7589728 6.1904996,10.236693 6.4707031,10.740234 7.8294937,9.6507684 9.1028652,8.8904551 10.519531,8.1621094 9.9887667,7.8020408 9.4678391,7.4760585 8.9765625,7.2226562 Z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.7;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<circle
style="opacity:1;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="circle4739"
cx="3.0572746"
cy="294.11932"
r="0.79535115" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

@@ -0,0 +1 @@
equalizer-narrow.png,w22,actions

View File

@@ -0,0 +1,201 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="24"
viewBox="0 0 6.3499999 6.3500002"
version="1.1"
id="svg3944"
inkscape:export-filename="/tmp/1.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:version="0.92.1 r"
sodipodi:docname="equalizer-narrow.svg">
<title
id="title5085">Icons for the &quot;Expert&quot; tab in RawTherapee</title>
<defs
id="defs3938" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="34"
inkscape:cx="12"
inkscape:cy="12"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1023"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:snap-bbox="false"
inkscape:bbox-paths="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-global="true"
inkscape:object-nodes="true">
<inkscape:grid
type="xygrid"
id="grid3946"
originx="0.52916667"
originy="0.52916667" />
</sodipodi:namedview>
<metadata
id="metadata3941">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Icons for the &quot;Expert&quot; tab in RawTherapee</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Morgan Hardwood</dc:title>
</cc:Agent>
</dc:creator>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-290.64998)">
<g
id="g6170"
transform="translate(0.13229173)">
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:3.09838247;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 2,2 V 3 H 5 V 2 Z M 2,4 V 5 H 5 V 4 Z M 2,6 V 7 H 5 V 6 Z m 16,0 v 1 h 3 V 6 Z M 2,8 V 9 H 5 V 8 Z M 6,8 V 9 H 9 V 8 Z m 12,0 v 1 h 3 V 8 Z M 2,10 v 1 h 3 v -1 z m 4,0 v 1 h 3 v -1 z m 8,0 v 1 h 3 v -1 z m 4,0 v 1 h 3 V 10 Z M 2,12 v 1 h 3 v -1 z m 4,0 v 1 h 3 v -1 z m 4,0 v 1 h 3 v -1 z m 4,0 v 1 h 3 v -1 z m 4,0 v 1 h 3 V 12 Z M 2,14 v 1 h 3 v -1 z m 4,0 v 1 h 3 v -1 z m 4,0 v 1 h 3 v -1 z m 4,0 v 1 h 3 v -1 z m 4,0 v 1 h 3 V 14 Z M 2,16 v 1 h 3 v -1 z m 4,0 v 1 h 3 v -1 z m 4,0 v 1 h 3 v -1 z m 4,0 v 1 h 3 v -1 z m 4,0 v 1 h 3 V 16 Z M 2,18 v 1 h 3 v -1 z m 4,0 v 1 h 3 v -1 z m 4,0 v 1 h 3 v -1 z m 4,0 v 1 h 3 v -1 z m 4,0 v 1 h 3 V 18 Z M 2,20 v 2 h 3 v -2 z m 4,0 v 2 h 3 v -2 z m 4,0 v 2 h 3 v -2 z m 4,0 v 2 h 3 v -2 z m 4,0 v 2 h 3 v -2 z"
transform="matrix(0.26458333,0,0,0.26458333,0,290.64998)"
id="path6164"
inkscape:connector-curvature="0" />
<path
id="path6166"
d="m 0.52916666,291.31919 v 0.26458 H 1.3229166 v -0.26458 z m 0,0.52917 v 0.26458 H 1.3229166 v -0.26458 z m 0,0.52916 v 0.26459 H 1.3229166 v -0.26459 z m 4.23333324,0 v 0.26459 h 0.79375 v -0.26459 z M 1.5875,292.90669 v 0.26458 h 0.79375 v -0.26458 z m 3.1749999,0 v 0.26458 h 0.79375 v -0.26458 z M 1.5875,293.43586 v 0.26458 h 0.79375 v -0.26458 z m 2.1166666,0 v 0.26458 h 0.79375 v -0.26458 z m 1.0583333,0 v 0.26458 h 0.79375 v -0.26458 z M 1.5875,293.96502 v 0.26459 h 0.79375 v -0.26459 z m 1.0583333,0 v 0.26459 h 0.79375 v -0.26459 z m 1.0583333,0 v 0.26459 h 0.79375 v -0.26459 z m -1.0583333,0.52917 v 0.26458 h 0.79375 v -0.26458 z m 1.0583333,0 v 0.26458 h 0.79375 v -0.26458 z m -1.0583333,0.52917 v 0.26458 h 0.79375 v -0.26458 z"
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:0.81978035;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
</g>
<g
id="g5101">
<path
id="path4806"
d="m 18.568758,295.55375 c -0.01534,-0.016 -0.05552,-0.027 -0.06502,-0.0435 -0.07758,-0.13437 -0.0556,-0.43336 0.230958,-0.85083 0.25069,-0.36522 0.69829,-0.76268 1.238958,-1.11171 -0.186223,-0.18924 -0.36761,-0.39056 -0.555657,-0.60352 -0.563814,0.3799 -1.048221,0.80284 -1.357427,1.25331 -0.37801,0.55072 -0.571902,1.18625 -0.263268,1.72082 0.01501,0.026 0.03967,0.0404 0.05624,0.0646 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 23.233661,294.87759 c -0.22261,-0.62978 -0.661625,-1.29712 -1.270581,-1.90607 -0.11085,-0.11085 -0.229969,-0.18469 -0.344113,-0.284 -0.157036,0.23676 -0.304548,0.46406 -0.439142,0.69292 0.06824,0.0617 0.138687,0.10229 0.205555,0.16916 0.534388,0.53439 0.910256,1.12361 1.078996,1.60102 0.164575,0.46558 0.111279,0.7499 0.0069,0.86578 l 0.588967,0.569 c 0.414772,-0.43663 0.392392,-1.08823 0.173399,-1.70781 z"
id="path4817" />
<path
id="ellipse4753"
d="m 21.951359,291.95136 c -0.665937,0.052 -1.424158,0.30337 -2.16997,0.73396 -0.135764,0.0784 -0.237915,0.17434 -0.363391,0.25889 0.188047,0.21296 0.369434,0.41428 0.555657,0.60352 0.07733,-0.0499 0.134702,-0.10749 0.216597,-0.15477 0.65449,-0.37787 1.320919,-0.58843 1.825728,-0.62786 0.492311,-0.0385 0.753151,0.0866 0.838071,0.2174 l 0.702049,-0.42163 c -0.314398,-0.51365 -0.949589,-0.66068 -1.604741,-0.60951 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cccccccc"
id="path4987"
d="m 22.281244,293.67617 -0.29558,0.28162 c 0.299235,0.3876 0.547441,0.77619 0.670536,1.12447 0.175922,0.49763 0.148659,0.87583 -0.02561,1.07361 l 0.279706,0.29419 c 0.341573,-0.3557 0.338162,-0.91989 0.131634,-1.50422 -0.145072,-0.41046 -0.425265,-0.84304 -0.760684,-1.26967 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.7;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52916664;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
inkscape:connector-curvature="0" />
<path
transform="matrix(0.2042325,0,0,0.2042325,-7.3420432,268.57472)"
d="m 151.31836,116.13477 a 1.3106844,1.3106844 0 0 0 -0.70313,0.1875 l -3.4375,2.06445 a 1.3106844,1.3106844 0 0 0 -0.42578,1.83594 c 0.017,0.0263 0.007,-0.002 0.0234,0.0215 -0.0696,-0.0833 0.1497,0.9433 -1.07031,2.7207 -1.13444,1.65276 -3.34616,3.66992 -6.08008,5.36328 a 1.3106844,1.3106844 0 0 0 -0.33203,1.93555 c 0.46829,0.58186 1.01911,1.08717 1.04297,1.12305 0.39718,0.59714 0.61101,1.16446 0.79883,1.82422 a 1.3106844,1.3106844 0 0 0 1.94726,0.75586 c 3.38746,-2.08688 6.22213,-4.54604 8.07813,-7.25 1.99716,-2.90961 3.21169,-6.60718 1.35546,-9.82227 -0.2522,-0.43646 -0.31446,-0.46817 -0.10937,-0.13281 a 1.3106844,1.3106844 0 0 0 -1.08789,-0.62695 z"
id="path4809"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
inkscape:original="M 151.28906 117.44531 L 147.85156 119.50977 C 147.86206 119.52597 147.90652 119.53643 147.91602 119.55273 C 148.29586 120.21064 148.18821 121.66295 146.78516 123.70703 C 145.49139 125.59191 143.16927 127.67316 140.31445 129.44141 C 140.62249 129.82415 141.1797 130.28725 141.42773 130.66016 C 141.92205 131.40334 142.18832 132.12719 142.39453 132.85156 C 145.66599 130.83614 148.36933 128.46696 150.08008 125.97461 C 151.93097 123.27811 152.89203 120.16822 151.38086 117.55078 C 151.35636 117.50838 151.31436 117.48668 151.28906 117.44531 z "
inkscape:radius="1.3105533"
sodipodi:type="inkscape:offset" />
<path
inkscape:connector-curvature="0"
id="ellipse4751"
d="m 23.398449,292.68434 c -0.250875,-0.43452 -0.805006,-0.579 -1.430665,-0.53014 -0.625658,0.0489 -1.361531,0.28994 -2.084513,0.70735 -0.722983,0.41741 -1.298387,0.93341 -1.653533,1.45081 -0.355145,0.51741 -0.50709,1.06954 -0.256222,1.50406 0.250865,0.43451 0.804249,0.57769 1.429908,0.52883 0.625655,-0.0489 1.360221,-0.28919 2.083204,-0.7066 0.722982,-0.41742 1.299693,-0.93417 1.654842,-1.45157 0.355145,-0.5174 0.507844,-1.06824 0.256979,-1.50274 z m -0.353831,0.20428 c 0.135338,0.23441 0.06882,0.61599 -0.240596,1.06678 -0.309418,0.45077 -0.84436,0.93837 -1.521678,1.32941 -0.677318,0.39106 -1.365754,0.60978 -1.910843,0.65235 -0.545095,0.0425 -0.908817,-0.0906 -1.044155,-0.32502 -0.135341,-0.23442 -0.06958,-0.61731 0.23984,-1.06809 0.309412,-0.45078 0.84305,-0.93762 1.520369,-1.32867 0.677318,-0.39105 1.367057,-0.61053 1.912152,-0.6531 0.545095,-0.0426 0.90957,0.0919 1.044911,0.32634 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.7;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52916664;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<path
transform="matrix(0.77190239,0,0,0.77190239,-7.3420432,44.221308)"
d="m 33.181641,320.62891 a 0.32120832,0.32120832 0 0 0 -0.234375,0.11132 c -0.585659,0.68359 -0.537783,1.62852 -0.242188,2.46485 0.308906,0.87391 0.905479,1.7707 1.722656,2.58789 0.09749,0.0974 0.166437,0.13658 0.191407,0.16015 a 0.32120832,0.32120832 0 0 0 0.384765,0.041 c 0.184467,-0.11035 0.385424,-0.24904 0.570313,-0.45898 0.144104,-0.16357 0.214384,-0.33657 0.253906,-0.39063 a 0.32120832,0.32120832 0 0 0 -0.03906,-0.42383 c -0.0889,-0.0836 -0.142801,-0.11154 -0.160156,-0.1289 -0.661914,-0.66192 -1.121764,-1.3969 -1.318359,-1.95313 -0.17296,-0.4893 -0.103072,-0.71096 -0.06641,-0.77148 a 0.32120832,0.32120832 0 0 0 -0.05273,-0.39649 l -0.777344,-0.75195 a 0.32120832,0.32120832 0 0 0 -0.232421,-0.0898 z"
id="path4813"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
inkscape:original="M 33.191406 320.94922 C 32.707921 321.51355 32.733464 322.32145 33.007812 323.09766 C 33.296208 323.91355 33.865404 324.77751 34.654297 325.56641 C 34.714027 325.62611 34.779302 325.66158 34.839844 325.71875 C 35.010848 325.61645 35.177902 325.4995 35.333984 325.32227 C 35.412304 325.23337 35.491637 325.06002 35.568359 324.95508 C 35.513679 324.90368 35.456263 324.8723 35.402344 324.81836 C 34.710046 324.12606 34.226405 323.36456 34.007812 322.74609 C 33.815967 322.20336 33.862202 321.87705 33.96875 321.70117 L 33.191406 320.94922 z "
inkscape:radius="0.3211762"
sodipodi:type="inkscape:offset" />
<path
transform="matrix(0.77190239,0,0,0.77190239,-7.3420432,44.221308)"
d="m 34.263672,320.16406 c -0.434072,0.0305 -0.858072,0.18619 -1.1875,0.51563 -0.08166,0.0817 -0.0934,0.12782 -0.07422,0.10547 a 0.25068405,0.25068405 0 0 0 0.01563,0.34375 l 0.777344,0.75195 a 0.25068405,0.25068405 0 0 0 0.388672,-0.0488 c 0.02119,-0.0349 0.01384,-0.0358 0.01953,-0.0547 0.04083,-0.0233 0.313155,-0.12357 0.855469,0.0684 0.490302,0.17329 1.122362,0.58154 1.722656,1.125 a 0.25068405,0.25068405 0 0 0 0.384766,-0.0586 c 0.170116,-0.28926 0.359483,-0.57869 0.5625,-0.88477 a 0.25068405,0.25068405 0 0 0 -0.04492,-0.32812 c -0.67919,-0.59098 -1.389795,-1.07392 -2.103516,-1.32617 -0.431899,-0.15266 -0.882531,-0.23948 -1.316406,-0.20899 z"
id="path4811"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
inkscape:original="M 34.28125 320.41406 C 33.893508 320.44131 33.53663 320.57469 33.253906 320.85742 C 33.226406 320.88492 33.216116 320.92042 33.191406 320.94922 L 33.96875 321.70117 C 33.98362 321.67667 33.984543 321.62287 34.001953 321.60547 C 34.144089 321.46333 34.524092 321.39049 35.142578 321.60938 C 35.683658 321.80061 36.331168 322.22562 36.949219 322.78516 C 37.123585 322.48868 37.31609 322.19539 37.519531 321.88867 C 36.855082 321.31052 36.163469 320.84525 35.496094 320.60938 C 35.08815 320.46519 34.668992 320.38681 34.28125 320.41406 z "
inkscape:radius="0.25065899"
sodipodi:type="inkscape:offset" />
<path
sodipodi:nodetypes="ccccccccccccccc"
inkscape:connector-curvature="0"
id="path4977"
d="m 18.626598,291.93262 c -0.05222,0.034 -0.110488,0.0574 -0.155966,0.10291 -0.354771,0.35477 -0.349538,0.92649 -0.140411,1.51819 0.209129,0.59168 0.631093,1.239 1.221407,1.82931 0.590312,0.59031 1.238825,1.01346 1.830513,1.2226 0.591695,0.20913 1.163413,0.21437 1.518181,-0.14041 0.0044,-0.005 0.0056,-0.0106 0.01,-0.0151 l -0.27973,-0.29425 c -0.0063,0.007 -0.01287,0.0136 -0.01944,0.0202 -0.191396,0.19139 -0.577057,0.22609 -1.092564,0.0438 -0.515499,-0.1822 -1.124715,-0.57264 -1.677738,-1.12567 -0.553032,-0.55302 -0.942676,-1.16144 -1.124875,-1.67694 -0.182163,-0.51552 -0.147519,-0.90117 0.04388,-1.09256 0.03941,-0.0394 0.09761,-0.0603 0.153014,-0.0859 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.7;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52916664;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<path
sodipodi:nodetypes="ccccccccc"
id="path4962"
d="m 19.24807,291.7583 c -0.231977,0.004 -0.443897,0.0587 -0.621473,0.17432 l 0.286274,0.30618 c 0.213662,-0.0989 0.531361,-0.10383 0.940718,0.0408 0.269456,0.0952 0.563853,0.25283 0.862803,0.45514 l 0.433594,-0.17113 c -0.391093,-0.2924 -0.784894,-0.53717 -1.159978,-0.66974 -0.257923,-0.0912 -0.50996,-0.13916 -0.741938,-0.13562 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.7;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52916664;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
inkscape:connector-curvature="0" />
<path
id="path4982"
d="m 21.149986,292.56366 -0.433594,0.17113 c 0.272967,0.18472 0.549786,0.40578 0.813738,0.66974 0.1794,0.17939 0.311855,0.36715 0.455534,0.55326 l 0.29558,-0.28162 c -0.148099,-0.18837 -0.281108,-0.37963 -0.461917,-0.56044 -0.216109,-0.21611 -0.443481,-0.3832 -0.669341,-0.55207 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.7;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52916664;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
inkscape:connector-curvature="0" />
<circle
style="opacity:1;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="circle4739"
cx="20.701506"
cy="294.34534"
r="0.79535115" />
<path
sodipodi:nodetypes="ccccccccccccccc"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.7;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52916664;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 18.626598,291.93262 c -0.05222,0.034 -0.110488,0.0574 -0.155966,0.10291 -0.354771,0.35477 -0.349538,0.92649 -0.140411,1.51819 0.209129,0.59168 0.631093,1.239 1.221407,1.82931 0.590312,0.59031 1.238825,1.01346 1.830513,1.2226 0.591695,0.20913 1.163413,0.21437 1.518181,-0.14041 0.0044,-0.005 0.0056,-0.0106 0.01,-0.0151 l -0.27973,-0.29425 c -0.0063,0.007 -0.01287,0.0136 -0.01944,0.0202 -0.191396,0.19139 -0.577057,0.22609 -1.092564,0.0438 -0.515499,-0.1822 -1.124715,-0.57264 -1.677738,-1.12567 -0.553032,-0.55302 -0.942676,-1.16144 -1.124875,-1.67694 -0.182163,-0.51552 -0.147519,-0.90117 0.04388,-1.09256 0.03941,-0.0394 0.09761,-0.0603 0.153014,-0.0859 z"
id="path5061"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccccccccccccc"
inkscape:connector-curvature="0"
transform="matrix(0.26458333,0,0,0.26458333,0,290.64998)"
id="path5068"
d="M 88.455078,7.7460938 87.09777,8.4610017 c 0.451124,0.8915328 0.223789,2.3789683 -0.91027,4.0311863 -1.169454,1.703696 -3.190058,3.547444 -5.75,5.02539 -2.559942,1.478022 -5.162477,2.303949 -7.222656,2.464844 -2.060202,0.16063 -3.433799,-0.342519 -3.945313,-1.228516 -0.191974,-0.332513 -0.312855,-0.788094 -0.250307,-1.274062 l -1.521019,-0.223985 c -0.09573,0.80459 0.03481,1.58104 0.433436,2.271485 0.948151,1.642242 3.039601,2.182714 5.404297,1.998047 2.364679,-0.184819 5.140512,-1.09231 7.873046,-2.669922 2.732531,-1.577651 4.911611,-3.530801 6.253907,-5.486328 1.32767,-1.934243 1.897265,-3.9893156 0.992187,-5.6230472 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.7;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2a7fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 32 KiB

View File

@@ -0,0 +1 @@
equalizer-wide.png,w22,actions

View File

@@ -0,0 +1,256 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="24"
viewBox="0 0 6.3499999 6.3500002"
version="1.1"
id="svg3944"
inkscape:export-filename="/tmp/1.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:version="0.92.1 r"
sodipodi:docname="equalizer-wide.svg">
<title
id="title5085">Icons for the &quot;Expert&quot; tab in RawTherapee</title>
<defs
id="defs3938" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="34"
inkscape:cx="12"
inkscape:cy="12"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1023"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:snap-bbox="false"
inkscape:bbox-paths="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-global="true"
inkscape:object-nodes="true">
<inkscape:grid
type="xygrid"
id="grid3946"
originx="0.52916667"
originy="0.52916667" />
</sodipodi:namedview>
<metadata
id="metadata3941">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Icons for the &quot;Expert&quot; tab in RawTherapee</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Morgan Hardwood</dc:title>
</cc:Agent>
</dc:creator>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-290.64998)">
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 0.66145838,291.17915 v 0.26458 H 1.984375 v -0.26458 z"
id="path6216"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 0.66145838,291.70831 v 0.26459 H 1.984375 v -0.26459 z"
id="path6214"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 0.66145838,292.23748 v 0.26458 H 1.984375 v -0.26458 z"
id="path6212"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 4.365625,292.23748 v 0.26458 h 1.3229166 v -0.26458 z"
id="path6210"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 0.66145838,292.76665 v 0.26458 H 1.984375 v -0.26458 z"
id="path6208"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 4.365625,292.76665 v 0.26458 h 1.3229166 v -0.26458 z"
id="path6206"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 0.66145838,293.29581 v 0.26459 H 1.984375 v -0.26459 z"
id="path6204"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 4.365625,293.29581 v 0.26459 h 1.3229166 v -0.26459 z"
id="path6202"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 0.66145838,293.82498 v 0.26458 H 1.984375 v -0.26458 z"
id="path6200"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 2.5135417,293.82498 v 0.26458 h 1.3229167 v -0.26458 z"
id="path6198"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 4.365625,293.82498 v 0.26458 h 1.3229166 v -0.26458 z"
id="path6196"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 0.66145838,294.35415 v 0.26458 H 1.984375 v -0.26458 z"
id="path6194"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 2.5135417,294.35415 v 0.26458 h 1.3229167 v -0.26458 z"
id="path6192"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 4.365625,294.35415 v 0.26458 h 1.3229166 v -0.26458 z"
id="path6190"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 0.66145838,294.88331 v 0.26459 H 1.984375 v -0.26459 z"
id="path6188"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 2.5135417,294.88331 v 0.26459 h 1.3229167 v -0.26459 z"
id="path6186"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 4.365625,294.88331 v 0.26459 h 1.3229166 v -0.26459 z"
id="path6184"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 0.66145838,295.41248 v 0.26458 H 1.984375 v -0.26458 z"
id="path6182"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 2.5135417,295.41248 v 0.26458 h 1.3229167 v -0.26458 z"
id="path6180"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 4.365625,295.41248 v 0.26458 h 1.3229166 v -0.26458 z"
id="path6178"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 0.66145838,295.94165 v 0.52916 H 1.984375 v -0.52916 z"
id="path6176"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 2.5135417,295.94165 v 0.52916 h 1.3229167 v -0.52916 z"
id="path6174"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 4.365625,295.94165 v 0.52916 h 1.3229166 v -0.52916 z"
id="rect3950"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833197;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 0.66145838,291.31919 v 0.26458 H 1.984375 v -0.26458 z"
id="path6234"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833197;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 0.66145838,291.84836 v 0.26458 H 1.984375 v -0.26458 z"
id="path6232"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833197;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 0.66145838,292.37752 v 0.26459 H 1.984375 v -0.26459 z"
id="path6230"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 4.365625,292.37752 v 0.26459 h 1.3229166 v -0.26459 z"
id="path6228"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 4.365625,292.90669 v 0.26458 h 1.3229166 v -0.26458 z"
id="path6226"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 4.365625,293.43586 v 0.26458 h 1.3229166 v -0.26458 z"
id="path6224"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 2.5135418,293.96502 v 0.26459 h 1.3229166 v -0.26459 z"
id="path6222"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 2.5135418,294.49419 v 0.26458 h 1.3229166 v -0.26458 z"
id="path6220"
inkscape:connector-curvature="0" />
<path
style="opacity:0.7;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1.05833185;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 2.5135418,295.02336 v 0.26458 h 1.3229166 v -0.26458 z"
id="path6162"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB