diff options
Diffstat (limited to 'libre-testing/iceweasel-libre/PKGBUILD')
-rw-r--r-- | libre-testing/iceweasel-libre/PKGBUILD | 496 |
1 files changed, 150 insertions, 346 deletions
diff --git a/libre-testing/iceweasel-libre/PKGBUILD b/libre-testing/iceweasel-libre/PKGBUILD index 2998ebae9..c4378bede 100644 --- a/libre-testing/iceweasel-libre/PKGBUILD +++ b/libre-testing/iceweasel-libre/PKGBUILD @@ -1,146 +1,90 @@ -# Maintainer: Márcio Silva <coadde@lavabit.com> +# Contributor (ConnochaetOS): Henry Jensen <hjensen@connochaetos.org> # Contributor (Parabola): Luke Shumaker <lukeshu@sbcglobal.net> +# Contributor: Figue <ffigue at gmail> # Contributor (Parabola): fauno <fauno@kiwwwi.com.ar> # Contributor (Parabola): vando <facundo@esdebian.org> # Contributor (Parabola): André Silva <emulatorman@lavabit.com> - -# Maintainer (ConnochaetOS): Henry Jensen <hjensen@connochaetos.org> - -# Maintainer (Arch) : Ionut Biru <ibiru@archlinux.org> +# Contributor (Parabola): Márcio Silva <coadde@lavabit.com> # Contributor (Arch): Jakub Schmidtke <sjakub@gmail.com> - -# Contributor: Figue <ffigue at gmail> # Thank you very much to the older contributors: # Contributor: evr <evanroman at gmail> -# Contributor: Muhammad 'MJ' Jassim <UnbreakableMJ@gmail.com> - -lowercase() { tr A-Z a-z <<<"$*"; } +# Contributor: Muhammad 'MJ' Jassim <UnbreakableMJ@gmail.com> -# Version Configuration ############################################## - -_pgo=false +_pgo=true +# We're getting this from Debian Experimental _debname=iceweasel -_debver=18.0 +_debver=20.0.1 _debrel=1 -_debrepo=http://ftp.debian.org/debian/pool/main +_debrepo=http://ftp.debian.org/debian/pool/main/ +debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; } + +_pkgname=iceweasel +pkgname=iceweasel-libre +pkgver=$_debver.$_debrel +pkgrel=1 + +pkgdesc="A libre version of Debian Iceweasel, the standalone web browser based on Mozilla Firefox." +arch=(i686 x86_64 mips64el) +license=(MPL GPL LGPL) +depends=(alsa-lib dbus-glib desktop-file-utils gtk2 hicolor-icon-theme hunspell libevent libnotify libvpx libxt mime-types mozilla-common mozilla-searchplugins nss sqlite startup-notification) +makedepends=(autoconf2.13 diffutils imagemagick libidl2 librsvg libxslt mesa pkg-config python2 quilt unzip zip) +[ "$CARCH" != "mips64el" ] && makedepends+=('yasm') +if $_pgo; then + makedepends+=(xorg-server-xvfb) + options=(!ccache) +fi -# locales can be easily generated by running -# $ sed -rn 's/.*-l10n-([^.]*)\..*/\1/p' src/*.dsc | sort -u -_locales=(ach af ak ar as ast be bg bn-BD bn-IN br bs ca cs csb cy da de el en-GB en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gu-IN he hi-IN hr hu hy-AM id is it ja kk km kn ko ku lg lij lt lv mai mk ml mr nb-NO nl nn-NO nso or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta-LK ta te th tr uk vi zh-CN zh-TW zu) +optdepends=('networkmanager: Location detection via available WiFi networks') +url="http://packages.debian.org/experimental/${_pkgname}" +install=iceweasel.install +replaces=('firefox') +conflicts=('firefox') +provides=('firefox') +source=("$_debrepo/`debfile $_debname`_$_debver.orig.tar.bz2" + "$_debrepo/`debfile $_debname`_$_debver-$_debrel.debian.tar.gz" + mozconfig + mozconfig.pgo + libre.patch + iceweasel.desktop + iceweasel-install-dir.patch + vendor.js + shared-libs.patch + replace-urls.txt + Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch) +md5sums=('22daa24b6490c654f131550cbf20fad3' + '0c70ab52f35701558081df3d360361a2' + 'f90c6a70d0a6d0a9e7f9a0eed6aeffd3' + '383e8e2a97a8b13fe56d153adb6878b6' + '5addd418bf32b673fdfe80c8fefbea1a' + '7b9e5996dd9fe0b186a43a297db1c6b5' + 'abf5ecb74caa857abb42bcfbb3442d9c' + '6dd547c72bb875a3101135a1c32d4783' + '52e52f840a49eb1d14be1c0065b03a93' + 'a8fc4658d45b6bf9350023e5c3f34e56' + 'd0e1f2625cd9f7234abdeb55aee00529') -pkgbase=iceweasel -pkgname=(iceweasel-libre) -for locale in "${_locales[@]}"; do - pkgname+=("iceweasel-libre-l10n-$(lowercase ${locale})") -done -pkgver=${_debver}.${_debrel} -pkgrel=3 +prepare() { + export DEBIAN_BUILD="mozilla-release" -###################################################################### + export QUILT_PATCHES=debian/patches + export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index' + export QUILT_DIFF_ARGS='--no-timestamps' -debfile() { echo "${_debrepo}/${1:0:1}/${1%_*}/${1}"; } + mv debian "$srcdir/$DEBIAN_BUILD" + cd "$srcdir/$DEBIAN_BUILD" -if [[ -z $pkgbase ]]; then pkgbase=$pkgname; fi -if $_pgo; then pkgname+='-pgo'; fi -if [ "$pkgbase" != "$pkgname" ]; then - provides+=("$pkgbase=$pkgver") - conflicts+=("$pkgbase") -fi + # Doesn't apply and seems unimportant + rm -v debian/patches/l10n/Place-google-and-gmail-before-yandex.patch || true -pkgdesc="A libre version of Debian Iceweasel, the web browser based on Mozilla Firefox." -arch=( - 'i686' - 'mips64el' - 'x86_64' -) -license=( - 'GPL2' - 'LGPL' - 'MPL' -) -depends=( - 'alsa-lib' - 'dbus-glib' - 'desktop-file-utils' - 'gtk2' - 'hicolor-icon-theme' - 'hunspell' - 'libevent' - 'libnotify' - 'libvpx' - 'libxt' - 'mime-types' - 'mozilla-common' - 'mozilla-searchplugins' - 'nss>=3.14.1' - 'sqlite' - 'startup-notification' -) -makedepends=( - 'autoconf2.13' - 'diffutils' - 'dpkg-devtools' - 'imagemagick' - 'imake' - 'libidl2' - 'librsvg' - 'libxslt' - 'mesa' - 'python2' - 'unzip' - 'zip' -) -[[ $CARCH != mips64el ]] && makedepends+=('yasm') -if $_pgo; then - makedepends+=('xorg-server-xvfb') - options+=(!ccache) -fi -optdepends=('networkmanager: Location detection via available WiFi networks') -url="http://packages.debian.org/source/experimental/$_debname" -install=firefox.install -options=(!emptydirs) -source=($(debfile ${_debname}_${_debver}-${_debrel}.dsc) - $(debfile ${_debname}_${_debver}-${_debrel}.debian.tar.gz) - $(debfile ${_debname}_${_debver}.orig.tar.bz2) - $(debfile ${_debname}_${_debver}.orig-compare-locales.tar.bz2) - $(for locale in "${_locales[@]}"; do debfile ${_debname}_${_debver}.orig-l10n-${locale}.tar.bz2; done) - replace-urls.txt libre.patch mozconfig.pgo - mozconfig $pkgbase.desktop iceweasel-install-dir.patch vendor.js shared-libs.patch - bug677092.patch) -# use dpkg-source to extract everything -noextract=(); for file in "${source[@]}"; do noextract+=("${file##*/}"); done - -# This is a bug, we should fix it. -mips64el-prepare() { - # Fix MIPS N32 support. - sed -i 's/defined(_ABIO32)/(defined(_ABIO32) || defined(_ABIN32))/' \ - js/src/assembler/wtf/Platform.h - # Disable JIT. - sed -ri 's/#define ENABLE_(JIT|ASSEMBLER) 1/#define ENABLE_\1 0/' \ - js/src/assembler/wtf/Platform.h - sed -ri 's/ENABLE_(JIT|ASSEMBLER)=1/ENABLE_\1=0/' js/src/Makefile.in -} -misp64el-configure() { - echo 'ac_add_options --disable-methodjit' >> .mozconfig - echo 'ac_add_options --disable-tracejit' >> .mozconfig - echo 'ac_add_options --disable-jemalloc' >> .mozconfig -} - -prepare() { - if [[ -d "/usr/lib/$pkgbase" ]]; then - error "Because of how rpath is set, this package cannot be installed during build" - return 1 - fi - dpkg-source -x ${_debname}_${_debver}-${_debrel}.dsc mozilla-release - cd mozilla-release + # This patch doesn't works in some parts due that has patches for others locales languages, source code hasn't it + rm -v debian/patches/debian-hacks/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch || true - patch -Np1 -i ../iceweasel-install-dir.patch - patch -Np1 -i ../shared-libs.patch + quilt push -a - # Back out https://bugzilla.mozilla.org/show_bug.cgi?id=677092 - # in order to fix https://bugzilla.mozilla.org/show_bug.cgi?id=818468 - patch -Rp1 -i ../bug677092.patch + patch -Np1 -i "$srcdir/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch" # Adding fixed Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch + patch -Np1 -i "$srcdir/iceweasel-install-dir.patch" # install to /usr/lib/$_pkgname + patch -Np1 -i "$srcdir/shared-libs.patch" # Replace common URLs sed '/^#/d' ../replace-urls.txt | while read -r moz_url gnu_url; do @@ -153,258 +97,118 @@ prepare() { fi done - # Liberate the locales - printf '%s\n' l10n-*/*/searchplugins/*.xml \ - | grep -Ev 'creativecommons|wikipedia|wikipediaro|wiktionary' \ - | xargs -d '\n' rm -f - for dir in l10n-*/*/searchplugins; do - pushd "$dir" - ls | sed -n 's/\.xml$//p' > list.txt - popd - done - find l10n-* -name 'region.properties' -delete - # Patch anything that's left - patch -Np1 -i ../libre.patch + patch -Np1 -i "$srcdir/libre.patch" + + cp "$srcdir/mozconfig" .mozconfig # Load our build config, disable SafeSearch + + if $_pgo; then + cat "$srcdir/mozconfig.pgo" >> .mozconfig + fi + + # From js on abslibre-mips64el.git + if [ "$CARCH" = "mips64el" ]; then + msg "Force disabling JIT." + sed -ri 's/#define ENABLE_(JIT|ASSEMBLER) 1/#define ENABLE_\1 0/' \ + js/src/assembler/wtf/Platform.h + sed -ri 's/ENABLE_(JIT|ASSEMBLER)=1/ENABLE_\1=0/' js/src/Makefile.{in,ref} + + echo "ac_add_options --disable-methodjit" >> .mozconfig + echo "ac_add_options --disable-tracejit" >> .mozconfig + fi + + # This is a bug, we should fix it + if [ "$CARCH" = "mips64el" ]; then + # Fix MIPS N32 support. + sed -i 's/defined(_ABIO32)/(defined(_ABIO32) || defined(_ABIN32))/' \ + js/src/assembler/wtf/Platform.h + # Disable JIT. + sed -ri 's/#define ENABLE_(JIT|ASSEMBLER) 1/#define ENABLE_\1 0/' \ + js/src/assembler/wtf/Platform.h + sed -ri 's/ENABLE_(JIT|ASSEMBLER)=1/ENABLE_\1=0/' js/src/Makefile.in + echo 'ac_add_options --disable-methodjit' >> .mozconfig + echo 'ac_add_options --disable-tracejit' >> .mozconfig + echo 'ac_add_options --disable-jemalloc' >> .mozconfig + fi # Fix PRE_RELEASE_SUFFIX sed -i '/^PRE_RELEASE_SUFFIX := ""/s/ ""//' \ browser/base/Makefile.in - if [[ $CARCH == mips64el ]]; then mips64el-prepare; fi - - touch "$srcdir/.makepkg-prepare" -} + mkdir "$srcdir/path" -build() { - [[ -f "$srcdir/.makepkg-prepare" ]] || { prepare || return $?; cd "$srcdir"; } - cd "$srcdir" - build_browser - for locale in "${_locales[@]}"; do - cd "$srcdir" - build_locale "${locale}" - done -} + # WebRTC build tries to execute "python" and expects Python 2 + ln -s /usr/bin/python2 "$srcdir/path/python" -build_browser() { - cd mozilla-release + # Use gold, as Mozilla can use some of its features, such as safe ICF + ln -s /usr/bin/ld.gold "$srcdir/path/ld" - cp ../mozconfig .mozconfig - if $_pgo; then cat ../mozconfig.pgo >> .mozconfig; fi - if [[ $CARCH == mips64el ]]; then mips64el-configure; fi + # configure script misdetects the preprocessor without an optimization level + # https://bugs.archlinux.org/task/34644 + sed -i '/ac_cpp=/s/$CPPFLAGS/& -O2/' configure +} - # WebRTC build tries to execute "python" and expects Python 2 - # Workaround taken from chromium PKGBUILD - mkdir "$srcdir/python2-path" - ln -s /usr/bin/python2 "$srcdir/python2-path/python" - export PATH="$srcdir/python2-path:$PATH" +build() { + cd "$srcdir/$DEBIAN_BUILD" - export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/$pkgbase" + export PATH="$srcdir/path:$PATH" + export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/$_pkgname" export PYTHON="/usr/bin/python2" export MOZ_MAKE_FLAGS="$MAKEFLAGS" unset MAKEFLAGS - if $_pgo; then - export MOZ_PGO=1 - export DISPLAY=:99 - Xvfb -nolisten tcp -extension GLX -screen 0 1280x1024x24 $DISPLAY & - fi - - _fail=0 - make -f client.mk build || _fail=1 + # Enable PGO for x86_64 and mips64el only. i686 currently has problems: + # Either segfaults since gcc 4.8, or the linker runs out of memory + # If you discover that PGO again works on i686, please file a bug if $_pgo; then - kill $! || true - fi - return $_fail -} - -build_locale() { - locale=$1 - cd mozilla-release - - export PYTHON="/usr/bin/python2" - export PRODUCT='browser' - - # This is an adaptation of the "$(L10N_BUILD_STAMPS)" rule from debian/rules - [[ -e l10n ]] || mkdir -p l10n - [[ -e l10n/$locale ]] || ln -sf ../l10n-$locale l10n/$locale - ${PYTHON} config/pythonpath.py -I$(pwd)/compare-locales/lib \ - $(pwd)/compare-locales/scripts/compare-locales \ - -m $(pwd)/moz-objdir/l10n-$locale ${PRODUCT}/locales/l10n.ini $(pwd)/l10n $locale - make -C moz-objdir/${PRODUCT}/locales langpack-$locale \ - L10NBASEDIR=$(pwd)/l10n MOZ_CHROME_FILE_FORMAT=flat \ - MOZ_LANGPACK_EID=langpack-${locale}@${pkgbase}.mozilla.org \ - PKG_LANGPACK_BASENAME='$(MOZ_LANGPACK_EID)' PKG_LANGPACK_PATH=xpi/ \ - LOCALE_MERGEDIR=$(pwd)/moz-objdir/l10n-$locale -} -install-icon() { - local brandingdir=$1 prog=$2 size=$3 - local sizedir=${size}x${size} ext=png - [[ $size == scalable ]] && { sizedir=$size; ext=svg; size=''; } + if [[ $CARCH != i686 ]]; then + export DISPLAY=:99 + Xvfb -nolisten tcp -extension GLX -screen 0 1280x1024x24 $DISPLAY & + _fail=0 - dirs=({moz-objdir/,}"$brandingdir") - files=({default,mozicon,${prog}{,_icon}}${size}.${ext}) + make -j1 -f client.mk build MOZ_PGO=1 || _fail=1 - for dir in "${dirs[@]}"; do - for files in "${files[@]}"; do - if [[ -e "$dir/$file" ]]; then - install -Dm644 "$dir/$file" \ - "$pkgdir/usr/share/icons/hicolor/$sizedir/apps/$prog.png" - return 0 + kill $! || true + return $_fail + else + make -j1 -f client.mk build fi - done - done - #return 1 + + else + make -j1 -f client.mk build + fi } -package_iceweasel-libre() { - cd mozilla-release +package() { + cd "$srcdir/$DEBIAN_BUILD" make -j1 -f client.mk DESTDIR="$pkgdir" install - install -Dm644 ../vendor.js "$pkgdir/usr/lib/$pkgbase/defaults/preferences/vendor.js" + install -Dm644 ../vendor.js "$pkgdir/usr/lib/$_pkgname/defaults/preferences/vendor.js" - for size in 16 32 48 64 128 scalable; do - install-icon debian/branding $pkgbase $size + # I don't even know why we're hitting the objdir, and ConnOS didn't + _brandingdir=debian/branding + brandingdir=moz-objdir/$_brandingdir + icondir="$pkgdir/usr/share/icons/hicolor" + for i in 16x16 32x32 48x48 64x64; do + install -Dm644 "$brandingdir/default${i/x*/}.png" "$icondir/$i/apps/$_pkgname.png" done + install -Dm644 "$brandingdir/mozicon128.png" "$icondir/128x128/apps/$_pkgname.png" + install -Dm644 "$_brandingdir/iceweasel_icon.svg" "$icondir/scalable/apps/$_pkgname.svg" - install -Dm644 ../$pkgbase.desktop \ - "$pkgdir/usr/share/applications/$pkgbase.desktop" + install -d "$pkgdir/usr/share/applications" + install -m644 "$srcdir/iceweasel.desktop" "$pkgdir/usr/share/applications" - # Use system-provided dictionaries - rm -rf "$pkgdir"/usr/lib/$pkgbase/{dictionaries,hyphenation} - ln -s /usr/share/hunspell "$pkgdir/usr/lib/$pkgbase/dictionaries" - ln -s /usr/share/hyphen "$pkgdir/usr/lib/$pkgbase/hyphenation" - # use mozilla-searchplugins - rm -rf "$pkgdir"/usr/lib/$pkgbase/searchplugins - ln -s /usr/lib/mozilla/searchplugins "$pkgdir/usr/lib/$pkgbase/searchplugins" + rm -rf "$pkgdir/usr/lib/$_pkgname/"{dictionaries,hyphenation,searchplugins,plugins} + ln -sf /usr/share/hunspell "$pkgdir/usr/lib/$_pkgname/dictionaries" + ln -sf /usr/share/hyphen "$pkgdir/usr/lib/$_pkgname/hyphenation" + ln -sf /usr/lib/mozilla/plugins "$pkgdir/usr/lib/$_pkgname/plugins" + ln -sf /usr/lib/mozilla/searchplugins "$pkgdir/usr/lib/$_pkgname/searchplugins" # We don't want the development stuff - rm -r "$pkgdir"/usr/{include,lib/$pkgbase-devel,share/idl} + rm -rf "$pkgdir"/usr/{include,lib/$_pkgname-devel,share/idl} - #workaround for now - #https://bugzilla.mozilla.org/show_bug.cgi?id=658850 - ln -sf $pkgbase "$pkgdir/usr/lib/$pkgbase/$pkgbase-bin" + # Workaround for now: https://bugzilla.mozilla.org/show_bug.cgi?id=658850 + ln -sf $_pkgname "$pkgdir/usr/lib/$_pkgname/$_pkgname-bin" } - -package_locale() { - locale=$1 - cd mozilla-release - lang=$(sed -n "/^%define L10N_LANG ${locale}/,+1p" debian/l10n/browser-l10n.control|sed -n 's/%define L10N_LANGUAGE\s\s*//p') - - pkgdesc="${lang} language package for Iceweasel-libre" - depends=("iceweasel-libre=${pkgver}") - - replaces=(iceweasel-i18n-$(lowercase "${locale}")) - conflicts=(iceweasel-i18n-$(lowercase "${locale}")) - - extdir="$pkgdir"/usr/lib/iceweasel/extensions/ - install -d "${extdir}" - install -m644 moz-objdir/dist/xpi/langpack-${locale}@${pkgbase}.mozilla.org.xpi "${extdir}" -} -for locale in "${_locales[@]}"; do - eval "package_iceweasel-libre-l10n-$(lowercase ${locale})() { package_locale ${locale}; }" -done - -md5sums=('263569a577f72314694a711cc6a0d96f' - '6a571d3a3b355c331f67d57702f4fccf' - '366e1e4847d7e00eba77ee5a4be0d3db' - '80dd4a702302fb36719c67445b487895' - 'c99d7605c0e0bb0d77e71cd54f305a9a' - '1f4aeabf6c28fcf6539d13f65f8b366b' - 'cb9cc5f721d81442f1a93d134054f23c' - 'c69e0fa169bf6c49b1f83afd2383b628' - '09f4376791d17a772c60a0308095211d' - 'a16081e4da9daf6df5f6fcce2000cec1' - '88dd4c5837485acea83e97f3cb4f1e31' - '8751f0a634656ba973c53f96d1fa34e1' - 'f4531f867e6e75501bac3d7ed5f09045' - '740667ba651f0562b45bbfe63b8ec84e' - 'a1f3637341457fb8272d126f1aa70e4b' - '3d00ad2734c890930441d6cd919f11c8' - '84b7a2bf7f1458b60e9552d04c7e84b2' - '30ce51ca764b091c59df5c08e35e8a7f' - '1291e5976c83a8cda1903e4443d44c8e' - '1eacf81985d9993b2b94f98fd4c453e0' - '07b91907c98155c1b95e5d7f47367fde' - 'cd4042405f6eaa2931021f745f49d91f' - '24f8a5d05d0d2485c30b46e6d6835330' - '1b95f32637229a86e4633994350cf76f' - 'ae6007384d85dbd14fbe6496e0b9e47b' - 'a8ef67c04d3dc263f0f58e877b13cd71' - 'b5c3b2e366aa776e574d0972df72a423' - '200f856b50a7485a1d5447cbf8dee77c' - '1767400f27cf010572308f949e56176e' - 'c6dde21438789ccf4c666afc22ee713c' - 'd202408658b9e7e7a2656dd874ac0712' - '1c463a18e2a395314f7d0ad72282d5aa' - 'ec222722f432e8a94f993c1c32cd9757' - 'cf44fd1d567a7638fc0b5b80bb0398f7' - '13151197d7ef349699e55c760c74af16' - '32c185ef506e439bb63f572906a9bf66' - '2e6b90b3c6cad17753ec1aecaf61073c' - 'dbf451ef9ecf1816973ac4dffe7e2b8e' - '85c0900fb798fb64a8883dba06deccc0' - '0efff47ab838fd320c710ffd46ee3a57' - '28e5d445e7a91ddd64d50478b05edb51' - '770dcdf1a8d6d2db64dadb6e4f6149fb' - '7732b021cdf73ace33cb41609b327f3d' - '3a195266b43e9f477619aac9c326a26b' - 'a55e22c7ab045826b331efd7c0f036ef' - '2edcd565c19828e3d4a2da19f8529edd' - '531c54a91d509e768b55bfd88a96a527' - 'ddf2182b6e33795450bf41f46e7be521' - '8bf4edabc95abbaf274ddd5e5c5db562' - '63a227dbab0e66b6a0d4804c419049e2' - '3c9bab1f629c0b079345a186c0f22afc' - '786a62179094cda5f5e831232f4f94ce' - '535f68d0cfa4dee9df0cddbee42a4c94' - 'ffc4c457dfa697162e4198e61ae19e3b' - '4476b94e676b3cfb309f972f7c42da1b' - '792700b40ba53de7de5b48187b604b29' - '7f71fa7bed8488226168406ac022d2fd' - 'fdd9a144cd2a630d1b7ab6b73315c548' - '88d668eccb111a9e4f5fde58e000a5aa' - '46509bb591bf54b6fed025814bfc11bf' - '715a3f8c2fcdab17b24ce61f55c49183' - '658226211d66a724d0335a173ef8512f' - 'ecb41c7536c95cf2ca118d7ab6b7d357' - 'b813931cfba36f3b00826ba2d36e648f' - '2a926d37294ab24a7d7dc879339ae736' - 'fba979124cd393f1164a59e3b9183ccc' - 'e8597a5af1643b9c9a0b02a3756e0a86' - '665140babab027228eb195b6c0e83d4e' - 'e71a740bfc52d25968f8e2c4c1896897' - '47bd00559728578bfc257b80c72ce393' - '3a3d846613363e6d4dd99326cd07417d' - '80daf692c2fa80ef7f528df2a6aed42e' - '25c03afb8f5086a07eb0e26c94bcbc01' - '481db49b914f33d6c594ecebbc291e4c' - '742d2af843536fc1cdc8560b5aa0620f' - '9ee935f09dc89b42db9ad8db3473717d' - 'cf3e65e4db50dfa467defb4f820cd378' - '3e0c8ea5b69c4363e40c21dda5230850' - '32b73226e95ae47dc11a554a7208d960' - '437602c23394eb02ae5fe03ca4fd29bc' - 'f7a347a3d5679d82340d227474de938f' - '1a898825183ed67ea72b67a2c3486dd4' - '73bead055152cd4885b9834691c9066a' - '722a0d2212060e2044cbac859db3e063' - 'fba01f51ac90dec18758a7468fb509e1' - '03c2a59eab8ef4ad3687b91c07f96165' - 'd502ec35e4ec26d7f538f4b96402fe9c' - 'b75b729e9ab3ff9a908115ab520339a9' - 'cd696e70fdb4f5ab9d50040abea46b82' - '1b9df937ef08b6a72ca7d659f91df099' - '17bbe91d26b302aa36391ed57199006d' - 'de6037c0a65e7b86e0929637156ba587' - 'a8fc4658d45b6bf9350023e5c3f34e56' - '25861e760dc41b518cbee9c9194b2b19' - 'e4cd438a0b2a42dfb14bc7716e901e5f' - '5bfaf77580b6d3ce185b4c3ad4fa30ca' - '39d8b9249c5effe5fe24d2e9f80a9a94' - '2baf8cffccd50c568ad153a709cb3136' - 'e9b4ec9a34bdab1854255aaa05e7cedd' - '52e52f840a49eb1d14be1c0065b03a93' - '23520aca140fb0dd3e1b6f21b21f591f') |