From 7191f413b023139e55906786aadabb43652a32b6 Mon Sep 17 00:00:00 2001
From: Johannes <johannes.brechtmann@gmail.com>
Date: Tue, 9 Jul 2019 21:03:02 +0200
Subject: [PATCH 1/2] firefox: update to 68.0.

---
 .../firefox/patches/fix-cmsghdr-rust.patch    | 11 -----------
 srcpkgs/firefox/patches/fix-musl.patch        | 16 ++++++++--------
 .../patches/fix-rust-libc-ppc64-musl.patch    |  7 -------
 srcpkgs/firefox/patches/fix-toolkit.patch     | 14 +++++++-------
 srcpkgs/firefox/patches/fix-webrtc-arm.patch  | 11 -----------
 .../firefox/patches/ppc-no-static-sizes.patch | 19 -------------------
 ...rustc-check.patch => rust-configure.patch} | 18 ++++++++++++++----
 srcpkgs/firefox/template                      |  4 ++--
 8 files changed, 31 insertions(+), 69 deletions(-)
 delete mode 100644 srcpkgs/firefox/patches/fix-cmsghdr-rust.patch
 delete mode 100644 srcpkgs/firefox/patches/fix-rust-libc-ppc64-musl.patch
 delete mode 100644 srcpkgs/firefox/patches/fix-webrtc-arm.patch
 delete mode 100644 srcpkgs/firefox/patches/ppc-no-static-sizes.patch
 rename srcpkgs/firefox/patches/{remove-rustc-check.patch => rust-configure.patch} (70%)

diff --git a/srcpkgs/firefox/patches/fix-cmsghdr-rust.patch b/srcpkgs/firefox/patches/fix-cmsghdr-rust.patch
deleted file mode 100644
index 57d2d29787e..00000000000
--- a/srcpkgs/firefox/patches/fix-cmsghdr-rust.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- media/audioipc/audioipc/src/cmsg.rs.orig	2019-03-19 21:31:45.177880477 +0100
-+++ media/audioipc/audioipc/src/cmsg.rs	2019-03-19 21:32:38.103478999 +0100
-@@ -108,7 +108,7 @@
- 
-             let cmsghdr = cmsghdr {
-                 cmsg_len: cmsg_len as _,
--                #[cfg(target_env = "musl")]
-+                #[cfg(all(target_env = "musl", target_pointer_width = "64"))]
-                 __pad1: 0,
-                 cmsg_level: level,
-                 cmsg_type: kind,
diff --git a/srcpkgs/firefox/patches/fix-musl.patch b/srcpkgs/firefox/patches/fix-musl.patch
index fb58b80800d..c1cb99bf651 100644
--- a/srcpkgs/firefox/patches/fix-musl.patch
+++ b/srcpkgs/firefox/patches/fix-musl.patch
@@ -1,11 +1,11 @@
---- tools/profiler/core/platform.h.orig	2019-03-19 01:54:25.407952218 +0100
-+++ tools/profiler/core/platform.h	2019-03-19 01:54:45.571767946 +0100
-@@ -44,7 +44,7 @@
+--- tools/profiler/core/platform-linux-android.cpp.orig	2019-07-09 22:58:30.039475686 +0200
++++ tools/profiler/core/platform-linux-android.cpp	2019-07-09 22:58:39.331437677 +0200
+@@ -73,7 +73,7 @@
  
- // We need a definition of gettid(), but glibc doesn't provide a
- // wrapper for it.
+ int profiler_current_thread_id() {
+   // glibc doesn't provide a wrapper for gettid().
 -#if defined(__GLIBC__)
 +#if defined(__linux__)
- #  include <unistd.h>
- #  include <sys/syscall.h>
- static inline pid_t gettid() { return (pid_t)syscall(SYS_gettid); }
+   return static_cast<int>(static_cast<pid_t>(syscall(SYS_gettid)));
+ #else
+   return static_cast<int>(gettid());
diff --git a/srcpkgs/firefox/patches/fix-rust-libc-ppc64-musl.patch b/srcpkgs/firefox/patches/fix-rust-libc-ppc64-musl.patch
deleted file mode 100644
index fd92c150b59..00000000000
--- a/srcpkgs/firefox/patches/fix-rust-libc-ppc64-musl.patch
+++ /dev/null
@@ -1,7 +0,0 @@
---- Cargo.toml.orig	2019-05-21 07:45:37.809198143 +0200
-+++ Cargo.toml	2019-05-21 07:54:57.903418198 +0200
-@@ -61,3 +61,4 @@
- serde_derive = { git = "https://github.com/servo/serde", branch = "deserialize_from_enums9" }
- winapi = { git = "https://github.com/froydnj/winapi-rs", branch = "aarch64" }
- cc = { git = "https://github.com/glandium/cc-rs", branch = "1.0.23-clang-cl-aarch64" }
-+libc = { git = "https://github.com/rust-lang/libc", rev = "914eba137b25ece7ade3986f1e34df9cf439af22" }
diff --git a/srcpkgs/firefox/patches/fix-toolkit.patch b/srcpkgs/firefox/patches/fix-toolkit.patch
index 5d3db715467..86e8ef47855 100644
--- a/srcpkgs/firefox/patches/fix-toolkit.patch
+++ b/srcpkgs/firefox/patches/fix-toolkit.patch
@@ -60,15 +60,15 @@
  #  include <dirent.h>
 --- toolkit.orig/mozapps/update/updater/updater.cpp	2014-03-15 05:19:37.000000000 +0000
 +++ toolkit/mozapps/update/updater/updater.cpp	2014-04-17 10:24:33.796765327 +0000
-@@ -3432,6 +3432,7 @@
- int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
- {
+@@ -3978,6 +3978,7 @@
+ 
+ int add_dir_entries(const NS_tchar* dirpath, ActionList* list) {
    int rv = OK;
 +#if !defined(__linux__) || defined(__GLIBC__)
-   FTS *ftsdir;
-   FTSENT *ftsdirEntry;
-   NS_tchar searchpath[MAXPATHLEN];
-@@ -3534,6 +3535,7 @@
+   FTS* ftsdir;
+   FTSENT* ftsdirEntry;
+   mozilla::UniquePtr<NS_tchar[]> searchpath(get_full_path(dirpath));
+@@ -4085,6 +4086,7 @@
    }
  
    fts_close(ftsdir);
diff --git a/srcpkgs/firefox/patches/fix-webrtc-arm.patch b/srcpkgs/firefox/patches/fix-webrtc-arm.patch
deleted file mode 100644
index 541566648dc..00000000000
--- a/srcpkgs/firefox/patches/fix-webrtc-arm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features.cc.orig	2019-01-16 16:52:42.676473795 +0100
-+++ media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features.cc	2019-01-16 16:54:22.595598235 +0100
-@@ -67,7 +67,7 @@
-   return 0;
- }
-
--#if !defined(ANDROID)
-+#if !defined(ANDROID) && !defined(__linux__)
- #ifdef WEBRTC_ARCH_ARM_V7
- uint64_t WebRtc_GetCPUFeaturesARM(void) {
-   return kCPUFeatureARMv7
diff --git a/srcpkgs/firefox/patches/ppc-no-static-sizes.patch b/srcpkgs/firefox/patches/ppc-no-static-sizes.patch
deleted file mode 100644
index 732881a469e..00000000000
--- a/srcpkgs/firefox/patches/ppc-no-static-sizes.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-# HG changeset patch
-# Parent b735e618c2a860972197942f6680c941e3c9a67f
-# User Gustavo Luiz Duarte <gustavold@linux.vnet.ibm.com>
-Bug 997353 - Do not use compile-time page size for PowerPC.
-
-The PowerPC architecture allows various memory page sizes, making it impossible
-to predict the runtime page size.
-
---- memory/build/mozjemalloc.cpp
-+++ memory/build/mozjemalloc.cpp
-@@ -182,7 +182,7 @@
- // Debug builds are opted out too, for test coverage.
- #ifndef MOZ_DEBUG
- #  if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && \
--      !defined(__aarch64__)
-+      !defined(__aarch64__) && !defined(__powerpc__) && !defined(__powerpc64__)
- #    define MALLOC_STATIC_PAGESIZE 1
- #  endif
- #endif
diff --git a/srcpkgs/firefox/patches/remove-rustc-check.patch b/srcpkgs/firefox/patches/rust-configure.patch
similarity index 70%
rename from srcpkgs/firefox/patches/remove-rustc-check.patch
rename to srcpkgs/firefox/patches/rust-configure.patch
index f6bebc8aab1..84077f4fc88 100644
--- a/srcpkgs/firefox/patches/remove-rustc-check.patch
+++ b/srcpkgs/firefox/patches/rust-configure.patch
@@ -1,8 +1,19 @@
 Mozilla rustc check does not support crossbuild: let's remove it
+Remove calls to unwrap_rustup, they fail if rustup isn't present
 
---- build/moz.configure/rust.configure	2018-10-01 16:28:31.000000000 +0200
-+++ build/moz.configure/rust.configure	2018-10-20 14:21:35.510000000 +0200
-@@ -204,26 +204,6 @@
+--- build/moz.configure/rust.configure	2019-07-06 03:48:30.000000000 +0200
++++ build/moz.configure/rust.configure	2019-07-09 22:35:23.326851798 +0200
+@@ -79,9 +79,6 @@
+ 
+     return unwrap
+ 
+-rustc = unwrap_rustup(rustc, 'rustc')
+-cargo = unwrap_rustup(cargo, 'cargo')
+-
+ 
+ set_config('CARGO', cargo)
+ set_config('RUSTC', rustc)
+@@ -294,26 +291,6 @@
  
              os.write(in_fd, source)
              os.close(in_fd)
@@ -29,4 +40,3 @@ Mozilla rustc check does not support crossbuild: let's remove it
          finally:
              os.remove(in_path)
              os.remove(out_path)
-
diff --git a/srcpkgs/firefox/template b/srcpkgs/firefox/template
index 9a654933729..e9758f42e94 100644
--- a/srcpkgs/firefox/template
+++ b/srcpkgs/firefox/template
@@ -3,7 +3,7 @@
 # THIS PKG MUST BE SYNCHRONIZED WITH "srcpkgs/firefox-i18n".
 #
 pkgname=firefox
-version=67.0.4
+version=68.0
 revision=1
 build_helper="rust"
 short_desc="Mozilla Firefox web browser"
@@ -11,7 +11,7 @@ maintainer="Johannes <johannes.brechtmann@gmail.com>"
 license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later"
 homepage="https://www.mozilla.org/firefox/"
 distfiles="${MOZILLA_SITE}/${pkgname}/releases/${version}/source/${pkgname}-${version}.source.tar.xz"
-checksum=b2fb2d3e64a6947ef4f8212b72649acf2aa2cd4c8f70548abb636dd581fd6dc5
+checksum=f7d61a08820088f1280d27f0808e355152c1dd0c94625fd077ced7319e522565
 
 lib32disabled=yes
 

From 6c86407cdfb4f66ed3e87b5703e6232c77b53195 Mon Sep 17 00:00:00 2001
From: Johannes <johannes.brechtmann@gmail.com>
Date: Thu, 11 Jul 2019 11:10:18 +0200
Subject: [PATCH 2/2] firefox-i18n: update to 68.0.

the following language packs were removed because they aren't provided
by upstream:

 delete mode 120000 srcpkgs/firefox-i18n-as
 delete mode 120000 srcpkgs/firefox-i18n-bn-BD
 delete mode 120000 srcpkgs/firefox-i18n-bn-IN
 delete mode 120000 srcpkgs/firefox-i18n-en-ZA
 delete mode 120000 srcpkgs/firefox-i18n-mai
 delete mode 120000 srcpkgs/firefox-i18n-ml
 delete mode 120000 srcpkgs/firefox-i18n-or

[ci skip]
---
 srcpkgs/firefox-i18n-as       |   1 -
 srcpkgs/firefox-i18n-bn-BD    |   1 -
 srcpkgs/firefox-i18n-bn-IN    |   1 -
 srcpkgs/firefox-i18n-en-ZA    |   1 -
 srcpkgs/firefox-i18n-mai      |   1 -
 srcpkgs/firefox-i18n-ml       |   1 -
 srcpkgs/firefox-i18n-or       |   1 -
 srcpkgs/firefox-i18n/template | 190 ++++++++++++++++------------------
 8 files changed, 88 insertions(+), 109 deletions(-)
 delete mode 120000 srcpkgs/firefox-i18n-as
 delete mode 120000 srcpkgs/firefox-i18n-bn-BD
 delete mode 120000 srcpkgs/firefox-i18n-bn-IN
 delete mode 120000 srcpkgs/firefox-i18n-en-ZA
 delete mode 120000 srcpkgs/firefox-i18n-mai
 delete mode 120000 srcpkgs/firefox-i18n-ml
 delete mode 120000 srcpkgs/firefox-i18n-or

diff --git a/srcpkgs/firefox-i18n-as b/srcpkgs/firefox-i18n-as
deleted file mode 120000
index 6b9610b993c..00000000000
--- a/srcpkgs/firefox-i18n-as
+++ /dev/null
@@ -1 +0,0 @@
-firefox-i18n
\ No newline at end of file
diff --git a/srcpkgs/firefox-i18n-bn-BD b/srcpkgs/firefox-i18n-bn-BD
deleted file mode 120000
index 6b9610b993c..00000000000
--- a/srcpkgs/firefox-i18n-bn-BD
+++ /dev/null
@@ -1 +0,0 @@
-firefox-i18n
\ No newline at end of file
diff --git a/srcpkgs/firefox-i18n-bn-IN b/srcpkgs/firefox-i18n-bn-IN
deleted file mode 120000
index 6b9610b993c..00000000000
--- a/srcpkgs/firefox-i18n-bn-IN
+++ /dev/null
@@ -1 +0,0 @@
-firefox-i18n
\ No newline at end of file
diff --git a/srcpkgs/firefox-i18n-en-ZA b/srcpkgs/firefox-i18n-en-ZA
deleted file mode 120000
index 6b9610b993c..00000000000
--- a/srcpkgs/firefox-i18n-en-ZA
+++ /dev/null
@@ -1 +0,0 @@
-firefox-i18n
\ No newline at end of file
diff --git a/srcpkgs/firefox-i18n-mai b/srcpkgs/firefox-i18n-mai
deleted file mode 120000
index 6b9610b993c..00000000000
--- a/srcpkgs/firefox-i18n-mai
+++ /dev/null
@@ -1 +0,0 @@
-firefox-i18n
\ No newline at end of file
diff --git a/srcpkgs/firefox-i18n-ml b/srcpkgs/firefox-i18n-ml
deleted file mode 120000
index 6b9610b993c..00000000000
--- a/srcpkgs/firefox-i18n-ml
+++ /dev/null
@@ -1 +0,0 @@
-firefox-i18n
\ No newline at end of file
diff --git a/srcpkgs/firefox-i18n-or b/srcpkgs/firefox-i18n-or
deleted file mode 120000
index 6b9610b993c..00000000000
--- a/srcpkgs/firefox-i18n-or
+++ /dev/null
@@ -1 +0,0 @@
-firefox-i18n
\ No newline at end of file
diff --git a/srcpkgs/firefox-i18n/template b/srcpkgs/firefox-i18n/template
index 3066ac574ed..7a5857fe635 100644
--- a/srcpkgs/firefox-i18n/template
+++ b/srcpkgs/firefox-i18n/template
@@ -1,6 +1,6 @@
 # Template file for 'firefox-i18n'
 pkgname=firefox-i18n
-version=67.0.4
+version=68.0
 revision=1
 build_style=meta
 homepage="https://www.mozilla.org/firefox/"
@@ -19,13 +19,10 @@ _languages=(
 	'af     "Afrikaans"'
 	'an     "Aragonese"'
 	'ar     "Arabic"'
-	'as     "Assamese"'
 	'ast    "Asturian"'
 	'az     "Azerbaijani"'
 	'be     "Belarusian"'
 	'bg     "Bulgarian"'
-	'bn-BD  "Bengali (Bangladesh)"'
-	'bn-IN  "Bengali (India)"'
 	'br     "Breton"'
 	'bs     "Bosnian"'
 	'ca     "Catalan"'
@@ -38,7 +35,6 @@ _languages=(
 	'el     "Greek"'
 	'en-GB  "English (British)"'
 	'en-US  "English (US)"'
-	'en-ZA  "English (South African)"'
 	'eo     "Esperanto"'
 	'es-AR  "Spanish (Argentina)"'
 	'es-CL  "Spanish (Chile)"'
@@ -75,16 +71,13 @@ _languages=(
 	'lij    "Ligurian"'
 	'lt     "Lithuanian"'
 	'lv     "Latvian"'
-	'mai    "Maithili"'
 	'mk     "Macedonian"'
-	'ml     "Malayalam"'
 	'mr     "Marathi"'
 	'ms     "Malay"'
 	'my     "Burmese"'
 	'nb-NO  "Norwegian (Bokmål)"'
 	'nl     "Dutch"'
 	'nn-NO  "Norwegian (Nynorsk)"'
-	'or     "Oriya"'
 	'pa-IN  "Punjabi"'
 	'pl     "Polish"'
 	'pt-BR  "Portuguese (Brazilian)"'
@@ -136,97 +129,90 @@ _pkgtmpl() {
 	}
 }
 
-checksum="3b5c8118bbcfd36f162058d04951cde10fc5bb1957b607bcbc253ea0fb74f442
- 06159ce50b790898947ce5e15f0ef997af909f7fdcb66188430ca2bcd5f78a85
- 88020529c160b50145a7cd5e65da3eedc1113c3f0d9cf4586798cb0efc716647
- 149bf04c35a247eacecb2d2e1f84e9ef8ab65d9ec397c5fd4a61ed74485a627e
- 792c6a87d533db0f2bf3e3b98b176810d796bb4956ec0e7e1d4f7d2dca58b613
- ec7fb1c66c5ee2aa05fc73148619a6f7946a8a44302f53abbcae078337f4ef0f
- d89f601644ce2d01df63dffe5cf869dafb36233f4e38b86a6d95254c9894b5a7
- 44eeb14847c24d75394142df0631583fb401d1b4c00774fd100a2725df46fe61
- 6c2f8d1ae6cf2f72b6d324dcedf6f3c94d6903dc3372b16754f1afc5d8b35ead
- 0b8788589e02c5a52c831661ece2738c99c0eec263c5dc920f8cd2752583c7bf
- b73bb4dad044875f897b2205fc79a607f334ce198faee246ce0a712b79eca848
- 07d1cc882f6d3aaa0636dea4e119248fba02e16b2a60fb130721048c3cf03d0b
- 2aa030562ccec8235b8418fcbc51b32836af6885b955ce2ace54cc1bca31c172
- 4ee526e73f402055222f5a6654aabdda75f024174637eac98235f83bd442e019
- fcb85d22ff26f7b84888337afa0f2f4b1ad85d983b495e75ff80103c5737b469
- a3b54203e8f1a5289fd94827fc0f619978b28f2b8a95440d4bb77af9167eb5b0
- 0f8aa0dca584d142f37b2de4761ade9e7a53f2e7bb997cbeb3dfbbdf9c59a3ce
- 63c88503812499244c2436a40a8ad2671c95a10dc22d2c5725b20e9daa9360bc
- 21c3d8d6c796e2d0f4dcba06cd4eaa1fafd26c99718b77603c3f78704f5a54e5
- 3d8de4a984e84392b6a242255863c28ebfb853c7a1924e51efbf6ab1beaf5b76
- b2149fcaa4c7dac10cdf3592a14aded5e8899d7bb3517d5d1d87f845eec09fdc
- 1b000cb7a06dc6eb94a9162b5812ef4eb77d2830432b6f70a6d028bbcc0f6743
- cb5c54485341c2e84c51725ae37c8d4d80d9d6fec699f53a1c8ed4dc1753a5d5
- eea017a5d557cfb1d2c493c11c23a104960129ab502824e5ea0ef78cab025834
- 04da2a3372531fd77ed94e2e222080ff9b80061dec0025d25e14a1a070dccbae
- 7fae5af4a676ac470f511cf347786bb63c84e0a609a1002de62827bda00c4ede
- 255b488947103c9618b58095cd9ec0d8882f855843697b0d0ae99d631dfd59d9
- 07426413839113f41cc90d202a445246957e43aebcbd1b6cbb568964637d0fbf
- 5ef6f0487bf53a176be3b13740d68d51dceae71f8e289bad29d137f0916be57e
- f675870c9360f06a5ba5aab2b0e9caa1de2ed728eaad8e5ee11817f4a2952dea
- 456e5f47a19693b5f978079fd769e06d3f2d68a13531849608aa9224993c8491
- 359f944c51cc3069da51502711ffd1e8b032764568846985381b7977a7ab3131
- 35b99ccc0b752821882c2724fdcac272708fc3a132778189d90fd17046f1e852
- ec7d33cfdecbf40ba317121cc5e36cdf05641ae001925263776c8b33831ce15c
- 031a77fe29efcafbe0fa583a7d9dca932b39406dc43e2158679e798e450fe742
- 39ce33b76a74a4381be52337e9d300f760526d4053562e0030d627829dcac05a
- 445de61177b5b1dd3a4e53bac944960b93a993dd286648169077a2911076e69d
- bd441e0e7070b9b5d8de6a7dad8adb088d2b5d0a5f44f5cae76e371395894f62
- 6816640c913a84e0568af7a440dd15b033bbc85b93d34ce89eb90fc0df962d0c
- 351c5af2a320c41827f00b0377494259a38e032d22ccd0a0991cae7552dafc8f
- 8d123c18fac40f2646fd10a720fe90486c56cd008a28b79b9740debe9b3358cb
- b0ca6e233366d6084a74fd8b0f5b9530112fcb8a1ceb6779c0f0e58f6ad805d2
- 42a9f4280a7d89036a3b124af2a72940d5320b4959e6e560c82b08fb882f1bff
- 4e0896a46d3eff7442b56b46048f8af1a0ac462f2c015a0f746f9bfb7fac96e8
- 8aa9885333317d0ce450a869c095b7aebbb840b457eb29c7de1a5c04c353df86
- 4d7b20cbcc846d68825f31fe48b59b49dd5228e253ff1be4d41d3e920321d8d3
- 5b661f9778b0acbedbf84c007f1ee2612456a65eabe2c5cffbd7ce61d4e219e4
- a474cbe6cd82850208f488230dd8a7ed8add9164e6f24a304114c568e9e964f9
- 6f5d134b3220b79c41a97d9a6f8b11d0f94e52e37b1861a908a31635928b9851
- b32008394608f05a87cf281b403b58c732cfad0cde94ee9dbf7d91c6daf5bb22
- 7811919f98422d59ac4d8366f015c552737e2b17a34dca854f77731751593fd4
- 590d467a22ee985b12e3084b1d0d9dd9b631f8d606c62bf8ff7119bd9c07e29a
- e7217006a8e381832cc4cfe058539a95f19f5ce2879c82ec72bfc6dc7de19137
- 27c8532809a78ae535d5239092e356959f983aaa424b4a86e6f249bb9d37ffb2
- 632a9d9d15ead1f9e119ab9536ca96ed870a9d85a297791a13a9b71121b010fc
- bee49306c53fe8bd54da739ebec2c7af20b4555b81cb40991f9a6c819710fc33
- 59cc06b92b4bdcd51cc1d8d96e856af2db8debbf5f2c19d1983064b3b317278e
- 5995d6b6f4e687846027ca2e1e6cd2188eb251ef4bd957e5c74b7e9a90be65ab
- 295a96ec9452f7f2b5a751bb3abaf4b273134c157bab273155bf42d29a325a83
- b63d4a6422839b016a80e88bc6d63c853ed2d848407bd11646a78e23086d5f77
- acf8b3a5157dcd2c3273155f3c3913dd4717f50c23f95ee8f8e483b9ec28adb0
- f428d1a2bdce1a92616536f122e0d9cf3ebb0be7a6209de9c9bc6e0c829519ff
- 0b6cd1a4572d48c552d175f64cda68bb385cfb6cc7fa9919d787a6359207a4f1
- 501366b1010f659c67189c6c73f37f8c2bf279d513bd2fb93d317f37695f0f27
- df6ea932dcef6f9537ae4835aebd52abe864c7af27127e8766891f330ad15fc0
- 89a0a271224172960e694cd0eec8304649ffe83ebbb0eedd50124f9a53c2a787
- bebea636e3499047bfb2bcc2e6af8d37c4e3dc71e5e22e413f59c2e5ea3c944b
- e908842679510ad03c8a241dbec8b517d50d00111f9d5cc9add904a1b2db0f48
- fcbcd5a998da2c1b95a7274edfb30bca860dd2e36f62b0b15c1206a7ae816f59
- 50e7d8edb4b71e9aaec3b5889d29b8a0769b8205d83095da822a31ae311ae8cb
- 6904f5c34f660cf3ccc5dfc54d01380564974554fb87351f4b6704be199406e3
- c36be7abbb5895a864c8f096d7941a8716d4eb282f784741752a4bff9a83f0f8
- 7e61cde3fb917080fd2473ce724e5cbb3ae2dc8d7cfba42860032c51fdf05aa2
- 7f3b37de808827332c785ac137eac45024feb5a5e2421af831f0486b567fd3a9
- 93e010dc6ecdef4725acdbb914e750515826514b948c4445d4903fd6b95ef1a2
- 30c88ccf65f85cc385eb0b031d4b1f00a2d818fca7cfb1f26982265de77138c7
- a47db46a765400f7034af52f54fba96e105e9463983d6a77227c6350bb5f3e49
- be093963738c6bd9225146fd2ac6e68569d18f43ab41b4e4368eff0a57da87ec
- 79fa3f00efdea73202ff3e7dee701692d3194047d2b409ed8b71dab4032cea2d
- ad27fe9bb435f7d813ff986f8ef2ea267164ecc559d20c5cf640a2a7f16d5c66
- 9e2ea4eba228405a322d892a0aa09f48fb1921ae85d6d07ba5af4e92b23cfa5e
- 878f41da08069854fe4a59bd44063c9253fac3ffbd1434d062e66f7b08a560f5
- ce73cfe8d1756ed6188132a42e96b0b6c6e7b21c3cfcf08cfa578fe039bebd90
- 3606c928efe4033df438ae604abda33fc2bfa1c9dcaad0b444f3dd5e584ff426
- dcc6b3049b05a5b896d8b8b864918c972503c438cd8c405782001bd878bda6e8
- f436046d9463dd84e5d4e030cea7db749e814f411b10b36f40f2193a0f189eed
- 89fb18176cecb6b6d1154c3d9993446c950993ce19607bddb41e932df9d05947
- 4ad2b39cf678bf7fc25999b6199e72b5086974a20f048b8d614c3627f972f9f0
- ab5bfc1282e52e7bb67bcfff510fc686455381fc82abe4e8de41ffc3361a028a
- 8b28b899fd0c0ae347acd682453517f94342c403d76fb443c436782e5aad9b1e
- 46a0442b871a03b275fb9ba2b4ddacd1626c7329c64594a2c6497df6cb8a9467
- 5ff38e62c1096c51fd8868187686b7a9687101c7326ee6ab4ba5ed8fa2bb44c9
- 33a0ef0907324e33df06800cbe0b3e6ecc623b0fb1333636ee99ee6306dcb068
- 2a67afd32362f9fc9029b956e5767578608e83fe48f237e0bc5fbcaf0c4e118a"
+checksum="2ea325dae9dfd9725a533d7a4630b9326d408ab9a4b925b70468d28a2d45d2ba
+ 7ac5d43f433ccd68bb96ac92cc7485755348a03c0bcb74d66e12925afd9463ae
+ 88914e2a4d070d307ab4483538f3b863179dc4f1ba148bd3ae28cff4d87a390f
+ 54627c8ba83781677dde0fc917eea5926a53906cad6283143cb917868e764b98
+ 2f03fd4a024dc82920cbbec72140899d7fb1ab84c8913e01bdf2444de1faff95
+ 129bfb200b92ff372be47d7b6482f509643448dfe620b725a3dc4932c1fecb83
+ 841ad3f8ddae023fc2d426b83512f62d8ca0e6c96933166b3e53a144d08abf53
+ 65326e4b1bf378e6971fb29f5532b5de81f355346e5310a63db093c6156255c3
+ edd830c87ca09dc9764600b484f763322f9771c6557b960baa690872fcdfd3bb
+ c686c3fd8a62b4fad79748f56c0306844545828aa8bf5a2f06a3710e21f64fa4
+ 70ad36174d88e06f4ab068e55d3b737ffad7847014765b94bfc0de6bcdc52c5e
+ 42381fad38549111e5ff2d57887318727159815b7b6ce19a8665fc049615f0e5
+ ebef3a70259d887cb83ed61826dc4f4efb7e934a17a1315921232a0be0c78faa
+ c3502cb60c44d1dbdec77046ca1d00b4d5b600f546a7964f4e27bfd52b42d193
+ dfb94b9b6665284b1bedd6c9e13aa78f8ac43d64d5337825645c064e89bb5077
+ 0c52ae1e1d8492193221f4ca71c77e3447521169202b615644b618ca09a02b92
+ 1e01f718a7b5e4f7b1e7ba383c4a83c336658398bd8ed579511e099399eb7659
+ 4a81323c5c564a903da4e58ed9e6ce968c96530bec924a143a83a153d2a3f712
+ 870d58d9ea7615b9c4d7425970c1fad96ea7ec8864b55509fff5c501138eb724
+ 595109a433b969231f5efb0b1de5585d2b3a82be0338166418ad84b7472fd6db
+ b6ab79f793a7558e074d53f210721c9fb61b10ebd6ca219c47890c2066262ab8
+ d059897607824b2cd3fe68b7a3bce3214ebd490d486517838a41ac21a9d66cd8
+ 1db3f913dcadbdc63e38c8c41fe7f9d58b94bd372f2ed815ef98d7210376281d
+ 9a0aa04d643dff8eed58b9167a8f8d373962c5df2b5c240dd280fc46add25cb2
+ 5c2d1c6de35b41c534f98bbf53bf68dfcba7f81ee44fa41670852f0b7cb6034d
+ 253d0275b7c3be1ad387f27901ed8f6a8e1c8f06c6052bd1ba4432cdf8987e40
+ 282b17de74487d4af0b6471ebb86702635b51b658d4dc1040b2a1bc0173d75cd
+ f0cdbc7b603345ce782efdda2cdd97cb3086a35ba8a8dc93316a408aa008ce4c
+ 539a457d13deb4ac0e4149af5894f6a34348d00311212117d1ba5472b3eb7630
+ d975fa37a38d88ecd2e539082200d7243ba00c1d0388ba3a79b32cbb237cb5be
+ 1bb93ab89e1b29b13e88280817f22478f734f8b401e8a46e45842f80dd12dc91
+ 7f92bb80877a94b06a9d21fd4c8773828b2ffb00d76fcada5fe6d63046f50e56
+ 5cc79d40e9d9ac053f42a62ca6bf3fceeb734a7c4ae3c4dae730ce5326dcee53
+ b991ad7abc56fe09f8784d82b5ce31490c54ccc0336f8df3735f39442eb408a8
+ 914e3dd3902056311f0b31891dd5829e44c9b1d21e5527b5d5fc02a0a9163231
+ d4a34da51853ce5ceeb44c717bff8e0e43e8a7a3573a5b8d37bfbc7535a7ab8c
+ 2af29f4878ab8d2a68374ed5e548389defc08dd7ed4afc922a0ecdd469d323aa
+ 3fbb71fcd7fbfdc7df8e992fad3cf4101b1d8864fe2a3adc4cce6c9260789892
+ c2e8f0ceb5b585038189e7e29ab44ef847b302ff12769a576d9ed84f4c6b1733
+ 808ecfcb890009a5a8aec761019f7365dee0472f56a66cab3dff5aab96f5092e
+ e3b41849929b2b339aeb31187e5a8212645d4352b84c6da2d00427f4704701fa
+ 61526c0ed945e0c4fa7e3c74a50b1c850640ad1127583b261d98d96e051ab8a7
+ 27b8f857c0cd3a0cfc4b672dafd97b5058141c9c2611f3bc3dcdf0cbc7bbb0f6
+ 87825f138676242e47e5feea13416b7f0b80d2abcd6d1e9e9c176cbf2b16fc4a
+ 25adc223948abbf53e2485ef7e2ba7c6cd57035539a328bc1bed0ef5a2e98151
+ 29117feb77725cb04612ecf4d5fc2cdd99cf83ec5a5443bc7ad70d5087f067e7
+ a9313a9102e7076cdb2fb6d93c521c7125fc7bb238a1c10b7fe7aad83ed1a832
+ 8ac5b14e77083a78ea452370c388216827a74a535238f46b68e54f583fb9d28e
+ 8fbeaacb8eb49fcbdedfbad2ea8ddc6ef6c439ffeaf760ce8951399f130f2e70
+ 7e90cebdc49ba304cbcacf1e2402e1d04a74915655e51736f77cbf06ef96b15b
+ 6a05ca1dea4d1d1df7403909765469fd64f930687f10c4f12d6df47b316b01a0
+ 7385224b6cb45a987ccf7a78e14e4d2962f7d8053226907db7d221871a1d9654
+ 6cf181372cdbd6e71d391e3d301862df861d09294b21e60aca2439adaed90f1c
+ e52b3fffda04b1a1b53f3de317e5e1c0632284ee49f99a1639a5e153f18eb7e1
+ 79a2c8da2175659ec63d62414b6f6d39342f705f3e973f886a0e05979dbbb5e2
+ 56d52734e4be44d91bfb993ad8ff71a8adb467781a562219d62f58f13a588ed7
+ 96f4ec00964d3c9f0f5db9243ed2486ef4f705d822427de1303d25decb1d8091
+ 97b6e1980fa99a5edac112f25a4873b88ebb1c28f010c7e7dc2197216740f916
+ 1b14434f61257ce16bdeef681383b6371b0ad2004c0ca165d819b559f1db57e6
+ 4908fe09e5da90f608d1abbcad948f4b4b6622ebb6bbbd22c61233736c402281
+ 92967023816682d0991bdf50e08eb9a199a45c95b848b5aeceefc0906d267a1e
+ 65e4a1bac6db7d51f67d3d522ffa5104031619fc5a427e446de90a959cf1b5ae
+ 774d4102558b9744c141dbb6b89915beee1401c7997caafc5e84c3d3431505aa
+ 0c5b7a027c8fe124128db7f339ed8fab4fc2f81c5d216dadb6f6d963cc5ec572
+ cb3c41a3137361c2fcc63a118d0e7cb4c25ccb0b40fdefcf09f6b04e6a51e1b8
+ b51c77b3cd0c07434863c2ab7eb0a4d126590ab48f078b2f2230126a6af655fe
+ fe578c4722c54c0a2a5dca79eecaae1ee83d5feee77239e7995269cb9ec9c90d
+ a4fe9e531c1398be200e931a483833406e0891aef002b4514bdcb6a87a84634a
+ 1f935162baf1aeae96c38adeac0f446c196a51b376b52bded73a190c5a514c9e
+ 3ebe4a346c0c90b3726c260108d5e0608db3171ee926f2c2d8c252954a1d63c3
+ c91500a7bdad1f633bf481a111b08843bb7e565284e31b12a7e58f8cecdc8cdf
+ 6bb1b7f5f9997231656b2c1403e75bdc059ff9a550985e6a7e6ae332fa8b92d2
+ f6f6bf02e9427fac2112d06ce142543b505d6bb15cb028d8888e321d0c2fe9f6
+ d2f0558cfca841a9215b13c240fb30086ec6593fcaf8ab745c4fafa835bded45
+ b096f2c53df109ee5dbea8e002da2edc01aa7f8f99891046301762bb0d8091d9
+ 4c364906fb8e51cadebbed53d9d1570b3cd8745fe29f10232c176a6f5b26eca8
+ d6a4731cdc003f888309aeb40cda3359c1105c1c5718e07c7aa33dde0aeb6019
+ 4d4f04af4d2e7a44cb6280671b487af00713fec30b9add6b1e83479f9e0f216e
+ 48a73299a4611e58c3732a4863d3facc5b24be81f5da7a7000ff474e141b8357
+ 63c3189c531c19460841f0ca05cb4d1687e073191b9a5c6161189ec42ec22db1
+ 9563264f31a9dd3ed221e344e12b425108e6ae951facb38fb625954bddaf76e9
+ f9efd9f21eb42b5aef80fd464b3329b754666c7e931b83e7d986891389c43f24
+ 074d14b2d828b6b01c7e03f214e7fcfb39385f6814d9ed219ae6282ff4e0fefa
+ 3a7a1afe4e782ee61992e2b766dcb6572efc55939a33163b395c8b9a12a8f582
+ ee684053112c518da46ee4c31a98628f0b4acb15a4368461cbca02a367d861bf
+ c4643de1494af7c66a9918cfa5e548b76f3ee7d4d65147adf6a838ab22d48f9b
+ 806d5b363e787e82ef6959452d4523087da0309c894214a9481016caba5f9e53"
