PKGBUILDs/extra/thunderbird/PKGBUILD
2024-07-24 11:48:46 +00:00

371 lines
19 KiB
Bash

# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
# Contributor: Dale Blount <dale@archlinux.org>
# Contributor: Anders Bostrom <anders.bostrom@home.se>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - mozconfig changes for ARM
# - disable rust lto for v7
highmem=1
pkgbase=thunderbird
pkgname=(thunderbird)
pkgver=115.13.0
pkgrel=2
pkgdesc='Standalone mail and news reader from mozilla.org'
url='https://www.thunderbird.net/'
arch=(x86_64)
license=('MPL-2.0' 'GPL-2.0-only' 'LGPL-2.1-only')
depends=(
glibc
gtk3 libgdk-3.so libgtk-3.so
mime-types
dbus libdbus-1.so
dbus-glib
alsa-lib
nss
hunspell
sqlite
ttf-font
libvpx libvpx.so
zlib
bzip2 libbz2.so
botan2
libwebp libwebp.so libwebpdemux.so
libevent
libjpeg-turbo
libffi libffi.so
nspr
gcc-libs
libx11
libxrender
libxfixes
libxext
libxcomposite
libxdamage
pango libpango-1.0.so
cairo
gdk-pixbuf2
freetype2 libfreetype.so
fontconfig libfontconfig.so
glib2 libglib-2.0.so
pixman libpixman-1.so
gnupg
json-c
libcanberra
ffmpeg
icu libicui18n.so libicuuc.so
)
makedepends=(
unzip zip diffutils python nasm mesa libpulse libice libsm
rust clang llvm cbindgen nodejs-lts-iron lld
gawk perl findutils libotr
)
options=(!emptydirs !makeflags !lto)
source=(https://archive.mozilla.org/pub/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.xz{,.asc}
vendor-prefs.js
distribution.ini
mozconfig.cfg
metainfo.patch
org.mozilla.Thunderbird.desktop
thunderbird-system-icu-74.patch # https://bugzilla.mozilla.org/show_bug.cgi?id=1862601
0031-bmo-1873379-fix-libc++-18-ignore-tuple-harder.patch
0032-bmo-1841919-llvm-18-variable-does-not-need-to-be-mutable.patch
0033-bmo-1882209-update-crates-for-rust-1.78-stripped-patch-from-bugs.freebsd.org-bug278834.patch
0034-bgo-936072-update-crates-for-rust-1.78-patch-from-bugs.freebsd.org-bug278989.patch
)
validpgpkeys=(
14F26682D0916CDD81E37B6D61B7B526D98F0353 # Mozilla Software Releases <release@mozilla.com>
4360FE2109C49763186F8E21EBE41E90F6F12F6D # Mozilla Software Releases <release@mozilla.com>
)
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact foutrelis@archlinux.org for
# more information.
_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM
# Mozilla API keys (see https://location.services.mozilla.com/api)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact heftig@archlinux.org for
# more information.
_mozilla_api_key=16674381-f021-49de-8622-3021c5942aff
prepare() {
cd $pkgname-$pkgver
echo "${noextract[@]}"
local src
for src in "${source[@]}"; do
src="${src%%::*}"
src="${src##*/}"
[[ $src = *.patch ]] || continue
echo "Applying patch $src..."
patch -Np1 < "../$src"
done
sed -e 's|73114a5c28472e77082ad259113ffafb418ed602c1741f26da3e10278b0bf93e|a88d6cc10ec1322b53a8f4c782b5133135ace0fdfcf03d1624b768788e17be0f|' \
-i third_party/rust/mp4parse/.cargo-checksum.json
sed -e 's|880c982df0843cbdff38b9f9c3829a2d863a224e4de2260c41c3ac69e9148ad4|239b3e4d20498f69ed5f94481ed932340bd58cb485b26c35b09517f249d20d11|' \
-i third_party/rust/bindgen/.cargo-checksum.json
# Make icon transparent
sed -i '/^<rect/d' comm/mail/branding/thunderbird/TB-symbolic.svg
printf "%s" "$_google_api_key" >google-api-key
printf "%s" "$_mozilla_api_key" >mozilla-api-key
cp ../mozconfig.cfg .mozconfig
sed "s|@PWD@|${PWD@Q}|g" -i .mozconfig
if [[ $CARCH == "armv7h" ]]; then
echo "ac_add_options --disable-elf-hack" >> .mozconfig
MAKEFLAGS="-j4"
# disable hard-coded LTO
sed -i '/cargo_rustc_flags += -Clto/d' config/makefiles/rust.mk
sed -i '/RUSTFLAGS += -Cembed-bitcode=yes/d' config/makefiles/rust.mk
# increase codegen-units due to RAM constraints
sed -i 's/codegen-units=1/codegen-units=16/' config/makefiles/rust.mk
fi
echo 'ac_add_options --enable-optimize="-g0 -O2"' >> .mozconfig
echo "mk_add_options MOZ_MAKE_FLAGS=\"${MAKEFLAGS}\"" >> .mozconfig
export MOZ_DEBUG_FLAGS=" "
export CFLAGS+=" -g0"
export CXXFLAGS+=" -g0"
#export LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
export LDFLAGS+=" -Wl,--no-keep-memory"
export RUSTFLAGS="-Cdebuginfo=0"
CFLAGS=${CFLAGS/-fstack-clash-protection}
CXXFLAGS=${CXXFLAGS/-fstack-clash-protection}
}
build() {
cd $pkgname-$pkgver
if [[ -n "${SOURCE_DATE_EPOCH}" ]]; then
export MOZ_BUILD_DATE=$(date --date "@${SOURCE_DATE_EPOCH}" "+%Y%m%d%H%M%S")
fi
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none
export MOZBUILD_STATE_PATH="${srcdir}/mozbuild"
# malloc_usable_size is used in various parts of the codebase
CFLAGS="${CFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
CXXFLAGS="${CXXFLAGS/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2}"
./mach configure
./mach build
./mach buildsymbols
}
package_thunderbird() {
optdepends=(
'hunspell-en_us: Spell checking, American English'
'libotr: OTR support for active one-to-one chats'
'libnotify: Notification integration'
)
cd $pkgname-$pkgver
DESTDIR="$pkgdir" ./mach install
install -Dm 644 ../vendor-prefs.js -t "$pkgdir/usr/lib/$pkgname/defaults/pref"
install -Dm 644 ../distribution.ini -t "$pkgdir/usr/lib/$pkgname/distribution"
install -Dm 644 ../org.mozilla.Thunderbird.desktop -t "$pkgdir/usr/share/applications"
install -Dm 644 comm/mail/branding/thunderbird/net.thunderbird.Thunderbird.appdata.xml \
"$pkgdir/usr/share/metainfo/net.thunderbird.Thunderbird.appdata.xml"
for i in 16 22 24 32 48 64 128 256; do
install -Dm644 comm/mail/branding/thunderbird/default${i}.png \
"$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/org.mozilla.Thunderbird.png"
done
install -Dm644 comm/mail/branding/thunderbird/TB-symbolic.svg \
"$pkgdir/usr/share/icons/hicolor/symbolic/apps/thunderbird-symbolic.svg"
# Use system-provided dictionaries
ln -Ts /usr/share/hunspell "$pkgdir/usr/lib/$pkgname/dictionaries"
ln -Ts /usr/share/hyphen "$pkgdir/usr/lib/$pkgname/hyphenation"
# Install a wrapper to avoid confusion about binary path
install -Dm755 /dev/stdin "$pkgdir/usr/bin/$pkgname" <<END
#!/bin/sh
exec /usr/lib/$pkgname/thunderbird "\$@"
END
# Replace duplicate binary with wrapper
# https://bugzilla.mozilla.org/show_bug.cgi?id=658850
ln -srf "$pkgdir/usr/bin/$pkgname" \
"$pkgdir/usr/lib/$pkgname/thunderbird-bin"
}
_package_i18n() {
pkgdesc="$2 language pack for Thunderbird"
depends=("thunderbird>=$pkgver")
install -Dm644 thunderbird-i18n-$pkgver-$1.xpi \
"$pkgdir/usr/lib/thunderbird/extensions/langpack-$1@thunderbird.mozilla.org.xpi"
}
_languages=(
'af "Afrikaans"'
'ar "Arabic"'
'ast "Asturian"'
'be "Belarusian"'
'bg "Bulgarian"'
'br "Breton"'
'ca "Catalan"'
'cak "Kaqchikel"'
'cs "Czech"'
'cy "Welsh"'
'da "Danish"'
'de "German"'
'dsb "Lower Sorbian"'
'el "Greek"'
'en-GB "English (British)"'
'en-US "English (US)"'
'es-AR "Spanish (Argentina)"'
'es-ES "Spanish (Spain)"'
'et "Estonian"'
'eu "Basque"'
'fi "Finnish"'
'fr "French"'
'fy-NL "Frisian"'
'ga-IE "Irish"'
'gd "Gaelic (Scotland)"'
'gl "Galician"'
'he "Hebrew"'
'hr "Croatian"'
'hsb "Upper Sorbian"'
'hu "Hungarian"'
'hy-AM "Armenian"'
'id "Indonesian"'
'is "Icelandic"'
'it "Italian"'
'ja "Japanese"'
'ka "Georgian"'
'kab "Kabyle"'
'kk "Kazakh"'
'ko "Korean"'
'lt "Lithuanian"'
'ms "Malay"'
'nb-NO "Norwegian (Bokmål)"'
'nl "Dutch"'
'nn-NO "Norwegian (Nynorsk)"'
'pa-IN "Punjabi (India)"'
'pl "Polish"'
'pt-BR "Portuguese (Brazilian)"'
'pt-PT "Portuguese (Portugal)"'
'rm "Romansh"'
'ro "Romanian"'
'ru "Russian"'
'sk "Slovak"'
'sl "Slovenian"'
'sq "Albanian"'
'sr "Serbian"'
'sv-SE "Swedish"'
'th "Thai"'
'tr "Turkish"'
'uk "Ukrainian"'
'uz "Uzbek"'
'vi "Vietnamese"'
'zh-CN "Chinese (Simplified)"'
'zh-TW "Chinese (Traditional)"'
)
_url=https://archive.mozilla.org/pub/thunderbird/releases/$pkgver/linux-x86_64/xpi
for _lang in "${_languages[@]}"; do
_locale=${_lang%% *}
_pkgname=thunderbird-i18n-${_locale,,}
pkgname+=($_pkgname)
source+=("thunderbird-i18n-$pkgver-$_locale.xpi::$_url/$_locale.xpi")
eval "package_$_pkgname() {
_package_i18n $_lang
}"
done
# Don't extract languages
noextract=()
for _src in "${source[@]%%::*}"; do
case "$_src" in
*.xpi) noextract+=("$_src") ;;
esac
done
sha512sums=('98ee23f684aa7a166878459a6a217bf3bcc4ddd8fa8ebbd0a1d2d66392ec1ebff67dbad55d145cdd0771539f127d91c4137211cf4efc80e450e6a34c95e8529c'
'SKIP'
'6918c0de63deeddc6f53b9ba331390556c12e0d649cf54587dfaabb98b32d6a597b63cf02809c7c58b15501720455a724d527375a8fb9d757ccca57460320734'
'5cd3ac4c94ef6dcce72fba02bc18b771a2f67906ff795e0e3d71ce7db6d8a41165bd5443908470915bdbdb98dddd9cf3f837c4ba3a36413f55ec570e6efdbb9f'
'a34dd97954f415a5ffe956ca1f10718bd164950566ceba328805c2ccbb54ed9081df07f2e063479bf932c4a443bb5b7443cca2f82eea3914465ed6e4863e0c0e'
'7e43b1f25827ddae615ad43fc1e11c6ba439d6c2049477dfe60e00188a70c0a76160c59a97cc01d1fd99c476f261c7cecb57628b5be48874be7cf991c22db290'
'fffeb73e2055408c5598439b0214b3cb3bb4e53dac3090b880a55f64afcbc56ba5d32d1187829a08ef06d592513d158ced1fde2f20e2f01e967b5fbd3b2fafd4'
'9897cb0ababc8e1a0001c4e1f70e0b39f5cdb9c08c69e3afd42088dfd001aa1fc6996cd83df0db1fb57ee0a80686c35c8df783108408dbe9191602cddd1e3c65'
'63de65c2d98287dea2db832a870764f621c25bf0c1353d16f8e68e8316e7554d2047b1c7bbb74a6c48de423f6201964491cd89564e5142066b6609a1aed941a7'
'346fc7c2bcdf0708f41529886a542d2cf11a02799ef2a69dddfa2c6449b8bd7309033f3893f78f21c4ea0be3f35741e12b448977c966f2ae5a0087f9e0465864'
'249706b68ce2450e35216b615b24b7640e75dd120d6d866fa8aab03d644fa6c40b5e129740874d96608bd0c187b6f2456d0d4310729d26d4740d1eca753be4fd'
'7bc7969fe03e5cee0ddb844f7917154afdc4a4df8b8af9c8191180a6813faca9f310cf6b689ec358bc45af12fa3ec386cd46cb9feecf9b38557e36552aa0572d'
'ba365e1c3f8ce852774f6a81b563bf3727dad8c96de39e5f834510f6795baaa07da3f062f77855e2f07beb719e5bb2c59e39f5f0dcf76d9772b5694e0db71f5f'
'7e38e46bdaa5c3074e24ddb67de08529ed91100b54046052e6d73e087981463bb399e3207e6618c426651d635f95b6b5b2664cc2581c4fa360989bc87fac5d13'
'7bff6a66f08c66edaaa287edaf7aa5ff34cd77dd3b9a980e7954cd23793104f3b54fc664f24c10212ed27bac9507b1ad7931efc2569d9384b9202baffa8338e1'
'93f4fb856fe4f547d5adf5aa6a8f47db24caab31f423173967f514af6cd57691aa6dd618a26696d2d1ee7eb715f4c136d44d001190e887ad44411f149a8a9201'
'0aa906fa17bb5b361635567e8a96dad1bb19c573aa2641f29023554b8d755cfd0bfabc2d66051e8aa3bd8658709e611a100bc929d1cb2571d9af0ce1869736a5'
'43bd21bd85e59c44a1bea1aaef43da6f7bd83a625adf2be75673a27affe652e37c073a733d79f41cff851445a33ad73a7851d6515fb926d7faeede0d5496f43b'
'fc53c4fd649a7c0ee368b4b19895ff48990b3c679fbffc7679ed2072b5438607460db98552f2c7b27d8e309aadd7a4fac93ee6bb489b7aedf1bcebe67a568be5'
'6eb5d61d8bd4ecb95e3cc8a355097c339db3fc5134fe2d141693c36122d469e2d97ed5e75ebd5a9afa393a30c6d7ffc6cef8040419a349311ffe883f0a71fce6'
'd30bea38e4dac554ba99a47bed062ad5a37f8746bd3ca7479ee8d89342d13763dce6d8f452648725bce84152a5612b583a7a25e470b32755fb1cd5b8a9632df5'
'79099175cfa4996d9c9183ed9d94f42d5520311341a2901e05449e1325f7f6913580afe43989a3e41f05139d07d02c83df27c987fda16b8f88598fcc7bdfbb58'
'4f11712771f02a393206090b80bf35803b24cbf8f3cecd4ca0084323dab108a5166c1b10f8e1aeaa44d8ea129d87ab772863b7ca8de6cb3e5834614d4f88600c'
'21e9c3fdcc26c5501835a2509f36d5b6172380ee185672834a752f9b6b03fcbf568c68f60adfcfec4ea2eb204a5332c6cf0118abb1c72d581004d21d75c21cb1'
'1a7268fc508fb8b95ebe401ee3e38f46654b4f1fcacd657d3ec53b87571563e4d1823897cb0883c4fd997a33f0657726067f1876e60d23fac61465deffaa84c7'
'4c4cd64f94f1a1b0b77f70a8aa8b5e922952aebec0133023f009029c0a73d926da86b230a8a812aebf6d3bf87d3abf23ec612c9c8213b7f668e289836da33d77'
'31c62ec8c6498806615dc4cfd9509289dd64a92ae4876d2342ea58533bbd7def126110e7036cb0b4e59b350f4fab9e0a80a7e42800ad202f409c1fb042f89c00'
'dcb8352a096328ac31ef2800a8dd563ed1d24c5e92d2c8c3576c09ad7253164644f94c910e557df2682e9efbd8abcc955a4acdb2535ea83453a6d7b751a98622'
'fc3cd1eb86ee63bba4594efefae32b4a5e07fe5faccfa048ecc9b62635e1b9d0a8f094db352fe9b90ae16147eb653566a884cd92899886ab02b04dd5fc2f1c7b'
'ad396d6008a25dc888e0d9d9da1f8e6afa9159103445a731a133780e749a69ed8487f08e536cb37c312fc31afa0e81dbaf1cf612ef1c7adc0fd6e33799f07b24'
'6de472c10009a578a12641d4c5a953d094f3082d46fcc41ae7f45cd6ddfd9ec6188f6e82baceb2c979feb77bf416ebe3dac78edcc2edea47056f1479fba2276c'
'f9e4be26be0eb4e98e7e44d338a74c55a2c0e22ceccfb033767a223c00418991cb017eaf79663504bc6e6df258166ceb14f5199c63f07aa90f4250e9faafa9f0'
'58e7a1a07886c90b32566b518d580cb93c07652cc35e410e6bfa15c9d11f98d2054901e2e16d8516998030101f6ca1647e02c4efca39f6617e9a5bf9b72e8067'
'35d753b858bae5de2540d52bfc129e9f964e2a1ea148e8f518dabdf296a43f918aa5aece0305150e1ac0d6aa41953c0cd40c465828b98c6f404b64a7a6a62c30'
'fb2b95f1d22c8955a2aaf23a3f03a0f78fb2e379e8139f3101ed701a172b7305b575b7159677b6ad549a4f02af8be40de6684cd32e170a51855f0f4d9d4a050e'
'643c2635cde6cdb2cefe97adffe5697ac8929ea42112e95c9bfde42f79d0804b61699a7a972ba7c961cfc6d12dcdc7d0ee593019a7e79c6b285875ebe568c2b4'
'630a3acb7933750add69548bac2c9f53ba38fe1a7fe342b27a72891a6095dcb4fb5ac72b0492f48df7d11d4127214b4908b59b5f22dccc907c1e51f41dc95bec'
'cd41ce5b9b0dd56f620ff948c93ce16b03434151d9b63199d551b1718b37b7426501bfc66326125606a93e52fa9abe132a88f054b704c19ec35d47dc06c48646'
'f79ddc4400188dfe9ebe418c5acefc6bccfc5f0453235066e375e4da39b88fe85c579ab01311fc1ff569bdbf53165f313cc3312e2e2023e52f97bcb2248c0869'
'f6f1424062d8c79a5449ef95bd4811985a2bbcf271e24a5b635fe73d86bb7f18e6be144209073b2aeb0464b437487b679d9a0a61702ea952af20ad6305f12ac9'
'566dd80c07cf966eafc6b133e0aedacd949a553e544728da544c52b0e8e60f9c8413a022699b842905bc7e8ef72c58515e40146ac054e1994eef871d4bd0e6bc'
'32348bc93d301467f61209e098d131d062a6c9844e85655dff13863e291f04fbc653a28ddbceb83645b47479c4e7f8331275e490eb69f5eb71002f5ee2cc5d8b'
'519eb4e2db1281a09af6cc0ab2d00f64c777aa3b802fe166aa914c7eff6be11b332960c6190792e41af0b515fdac1da3c59e6a30165232519775f40a8c6b3e66'
'c9c6cec9437c3748ad3691dd75a9b8c1059671821ff03570be5d68c792eed2cd0a0da7ba3f40e7416cffa10dcc1819b59ecd5f969f7d2b6fa54e71fc4b4fbf75'
'9cc38e93d45dbfc770aa81cb14965df2734ad2494e1cef13643d7fcaa595e749946ee2744566cdf1c3b3ba01adea400e89eb5ef752670535a6981a773b9e1010'
'6e5db1cc3658422eac9735830fbacda8daa918e0ca9254b619e3ed344d536e021b6c7ef0ea9a458bcd55cf743f535900b8d7cf6a79c2eb38d26a45c69caeb717'
'0be4f51a484c9de7a58ead313cf3ee2bd8423225eccb53c4ab2478802ca736c32d46925e90dd6b0d36201b983bf215652941d77e97b667db0aa0d8b320abdebb'
'73a254c7a2642ac724ee15767ed874753d6b45bfd6fb04bd43ce8e6442a00c00cf1da5996e32ee06433f1c40ba43e5909632259b10b41c9dc61ef6fbb3fd5a67'
'f498afdacc5daa1558b9b04c2428cc4769938f705182a851cfe5c0e2bd314cdbaa46647926f66816bebeb431f3fa7b7486d502ef83452aa9f830a99c5bb8af5f'
'85ae57d34572e41f6a1216f87c4cdca864e02b7dfd29e6d309191c9aa72b198e50b539e8ae3cfc4f1a19c1cdf5e23ce53afd5112a58bccbc08d73bc128118792'
'cbd79dfe70ff47c365f9d2a4a9da74f030c834d58454f150d5aab2de1edbae67a398b5da4352068050b2d0466ac9f731b237f29cf2d6d28e96a5d01895e77df3'
'd65715343b73fed094c01ea358ebb8b867d072df2430b0ff7f69e7f27ed5d977da8e079e9fe23f86b2ca192018b33d28d3f9a3e56ed5fc521ebfa7368c0cc402'
'5ab029c9036c4af6f4dbbbed0012a63ff248a5e5bc3ccd3bbecabf6d41f801bd10f952af9a88ed96078766de12d4967ba2c17fc5bd4981c0d4212cad86935c16'
'3b6dcecb14d51e7f6dcf11da8c5c7e9c224f081587f3241ef57487c0abb599cf4ccf3cb8c72e297ab75a6cf1bd17d4ea0714bdf1c09b35c8f1cec63f57c3264c'
'dad0c6ca6a0b70f54a021cb99edc8bc12aa814faf192e9a74a269ee1c86452584dec7909ced17e6625542403d90c9f7407b25f0ead891228d2efd036b159d1cd'
'8731f011081ebc8b885e4c88e4b507086b3f6c6c06dc674ca3a0bf369d8bbcc9053d2d6af711770eecb0d581d36571945523f8f2d04a6f20bf0eb5b5be76f0d8'
'ae6f044d8bd46fde4fb782c755f5c0bedb06e132a5dbd69f8c26bbb503fa4173634e208a1f2cf6df1bc0b7c6528e3bfc758956e8354e86705d90adf71d2a353b'
'efebb3ad526d218816725c3c40d33b8ef325cf3f36e6e779720c35f3c785454f31cac8a664cfa7525653fd9926cdd5c9bba0f4b3612aa50c76d53e3b5b324789'
'0f31c176366345f062b9835d7ce1c476ea4eeb62c43efdd0e627885011a7c85f61b5d1705fe5bd06d6111b396858e1521b4a03949a4e87ef43c8cd14de938383'
'da06743d9778fa38b7f53f6fbe9839352182f2621aac028e9e5d2074133f4fda3f271eedef58c2a47b6ed716763632e2bb1729a9e82e30581e39b1e947991733'
'bee0911aafc97cff73e75b14b5470835ebffb9560a39bee92ed0052b00fa30aa0e0eb9d4a27125188a85c5b5cb45d2a3b11e506e3d8d583292de144cf248025c'
'ef7ff42c732c8629ed4c17a1e75ff93417897d81fa0b90e4247f0ff208a2eb9f6025732ca6d4f50f32629d3b6d71d64c07e7c46e4fb7ecc563ca80e24ceaa6be'
'83b64dd0bc9875a05643fb3a8f9c2c24d61e1cded026aba8adfaa30222263ae29fee3b944491b009735012693ce5628637b983ba87d1bf20c3ea8dcb25bf8c20'
'180dc51f5c0b39af3690f51bcb8d9bdf48796b3674a8f93173ddcd7611ee493ca3b3dc325172df9aa4decb9a299050b211c9e6ec440f0d028c2e3c022c0afeee'
'd0ac65771d68cc4800d22df1d16f9a66cd766d06831c1baba087b2e8f6d5ad64d63355e7340e6e18641a832d382ca127287e01b2555896e044cf2e940d45fb59'
'fc7c9383dcfbe8e711c5db9be8c53ea4a2f0556bd7f2f6f536b3fe3270fa7d9adc011a7d155f893612669484fc04365eb80f5cd989a200f2a2d8a1d55630ffda'
'c01157929f4839cadd1bc4c93b8f555a2acf051242266c68e223407a88fdf305bcaa508c6c91a92f6549fcaa8ae6ef4cd1588e70e41b99e9bc276f4a65ac6608'
'31b66a1d0d4c8267a0cf49bec21e98d1dccf856d561235cde04b255b6ab89cbdac4af5ab5b4ef20bea00cd5a1e6b2cf65bc07edb58af598cfaaee86af5e5fe5d'
'c334625677b4a76043f7014751a244b96816b3cdbe12a55edb376225dc24e217982ece81ab9bf4466d17b573832b6c5eb8139226141241862aa0334510637be3'
'f2c0711a8796a5d2b0ded240cb6665e4611b083938fba91aea87a89cefb309c752c55b5f4527d73145ad3bd0a12b878b196d13c7557fd97592c4a510fccb9550'
'6370ae047c453744de0ee618322558a65175627eab08ea8e1d21feca27fed7cf13475725a5eb73bd2e1d41af576bc2107946647aa26e4d810e94ca7f8543340c'
'52688eab84e321334c9a99d9dcccf7e03a4b26c95fbce707ef9bb8d6c5e56e6e1e85e2a34b9fcd84d1f730263d77c62d540624a8094e73db214806b80c133a43'
'6247f19b16008249931ec75f171739567e2c2ceee956236075f08edaed1dc08ff2b73d12031c3acb7e3f1db08d40e73224faabf8ee1e2705b6b5b103e2e8e665'
'65d3ce84cefda33f31a0b0455dd59b9c7b2466b50f94741ae8c97ecc165897ff310303ce17b8f243c488862481b01723e97897c2dbfa46526be304d7dbdb8b68'
'5ddf1e877688e3d3dce43b21112ebfde881794d04f4421ba65dfdaea90a54d34d71db822fd34b78b7594019154db8f187c5eee5ff67a220e87bd1e1f57bba4d7')
# vim:set sw=2 et: