diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2018-02-03 16:22:18 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2018-02-03 16:22:18 +0000 |
commit | 35679b24c0d8a4c78d95ca3f4e78df5465f54a36 (patch) | |
tree | b2e0d2265dde74bb31f581046a25173a2b1cc196 /www-client | |
parent | f20dd7bff17cb2ef80faa76d82cd6c8cfa982703 (diff) |
www-client/firefox && mail-client/thunderbird : drop our ebuilds, use gentoo ones
Diffstat (limited to 'www-client')
-rw-r--r-- | www-client/firefox/Manifest | 93 | ||||
-rw-r--r-- | www-client/firefox/files/firefox-57.0-pkcs11-backport.patch | 529 | ||||
-rw-r--r-- | www-client/firefox/files/gentoo-default-prefs.js-1 | 17 | ||||
-rw-r--r-- | www-client/firefox/files/gentoo-hwaccel-prefs.js-1 | 2 | ||||
-rw-r--r-- | www-client/firefox/files/icon/firefox.desktop | 9 | ||||
-rw-r--r-- | www-client/firefox/files/pgo.patch | 13 | ||||
-rw-r--r-- | www-client/firefox/firefox-57.0.4.ebuild | 396 |
7 files changed, 0 insertions, 1059 deletions
diff --git a/www-client/firefox/Manifest b/www-client/firefox/Manifest deleted file mode 100644 index 45788c43..00000000 --- a/www-client/firefox/Manifest +++ /dev/null @@ -1,93 +0,0 @@ -DIST firefox-57.0-patches-01.tar.xz 10964 SHA256 96894412d99bcd0d4c74507e4980e4f6bfb445a5cce4b7fb213088999c84f78a SHA512 5f4c668eb1ae9b4067997973e7f5fcfa4d3de7b60520f7cc2a96b97b0814e921f777862e45fa0ffad231040d99e98f259e2482d4a5d7be096abc5d5860bfc593 WHIRLPOOL 5ab3260772f2dbc93914613b3bbaa3e6448247d06feca9ba2379067674aa09bddcf22ad6d8ddac9c0d1232c12381a80da4b16d8d5488d29f41e62e002d6d1f30 -DIST firefox-57.0.4-ach.xpi 441113 SHA256 0db61e82a56775653e8863cf46e92d7791ad855b789c326ad58dfbbf996a3880 SHA512 1c269b5a8c98855f025e3d0d1df79803f633c79619b01b37b487888ce1ba96335c3117ed3fa11fe63a90f65e8c56eff142e9a1af1b76d1277ade42cb29d85b73 WHIRLPOOL 72f57ba23384cb7a77fb640262f6db35b46871059fabc277980b992455cd9e0b456a8c40bd22ffdee12fe1587fbcd6ee0e40f5d0e8ce67eee3961eb8c3e1a97c -DIST firefox-57.0.4-af.xpi 442206 SHA256 018e8ca7b2ac1ca55f53bded94cb979d0872986ee494864330b97457d9efd7e0 SHA512 a62975f1cec946cb355cb35105cae68af104b70c6848e43bd1f6cd4f69ebe14d40ce349dbbfc3390d9181d0bb3eba12ac0b789cffa80939914f50bc4e72b6111 WHIRLPOOL 7eb80ad71db2ed9a18e3338adfb8d3c1e8e780180198b65c77d8c60fe1a19114b05bc8336925818cad43be9a569f0bdd1f901261c5f9540fc63a9a787311a111 -DIST firefox-57.0.4-an.xpi 462778 SHA256 2a536acaa8efa972b4a74bd8a786607eee939f97ea6c5aa5773f7132f42638fa SHA512 bdf98b67343515c9e0266eb0c6971dd7c2629a2062a76136616dda4933eea91ff71b9c730a42d0d9f6df05c5b9b78d99078e4b2f6e24ec92bfdf8637ad3e4f72 WHIRLPOOL 62fe53ffc0501e893bf579eff6e76f888b2a7e40a7cfa926bd5b4c9949368cce0e5085ddb66d27be9143288c55d607b8f14b8f1d6fec71e6633ed2a53a201e93 -DIST firefox-57.0.4-ar.xpi 488160 SHA256 cba589fa5e88446edf0d051e80c02f1a06224ad0b8d66a2de81cde615b78f01d SHA512 516dcfe19f016df62674a0d0c816b92f64bc90fe0153a9bedb4685e3deddc29ac16d6ffcb186adf5d0f99931f3a7deec7c3ca66621822f59c85b487f0e542174 WHIRLPOOL 3ef63c2f763285ac5c858bcbfc0de4f62df44cd0c9ed115ee7a76e39f42bf26a49674b39300e9b718184baf3b3e8d78595afb5cc22f1222f66a366264efc8b60 -DIST firefox-57.0.4-as.xpi 491075 SHA256 758d4830417c3fff4cef797c12afac34d915e8940061e907ac68083f1c46c592 SHA512 cb947973d9bc392f24224bf5103ef91f9e7c354a8fc4df079b3a1a00ab2e0d26443ed92fdb4d95f187c2a0137bacfe28f5ea83f0b44ab213461a9767b0f628d2 WHIRLPOOL fca9a1df2c69a14b858dc5c824f4aee7cbc6b3651d02ea38aa621f73ddccaa85c0fc9083c8e4132531828676d4c91c64c54c679b30a6db415b742a3b735cbb2f -DIST firefox-57.0.4-ast.xpi 455504 SHA256 fb8b1c0c67bacf1cadafb43ffc639038a32fc5318be0dd691f8929ee2bd2b01e SHA512 46c3d9c543e23b897b1c6cd94b9cb96db722b73b66ad315bd249b60a27a8d4f221ef8ee0bc43de126e9abf572114242f11127617fc0791ab77c5c87ea98f3c41 WHIRLPOOL 17f0d0989f688ab49332a37a5aab2bdda81a87e68311b9ac30c19772ed28cfeead1e20e253d34091d3fc14e2e70ab401255fb1772da47976dabd2cb42436e97b -DIST firefox-57.0.4-az.xpi 466045 SHA256 17f7ac16870d6ce48ca02d45ba9a35bc42b58e85f2e86767f211fb956d2a83c6 SHA512 46f5719b2fcb585c418a5a42cbb92f5079340a3b75d8471f95d3ac0a9af491e7d2d5ef6d3b0d4e637208c74156583d7b38024cca7d8912187080f3c8923cc139 WHIRLPOOL fddecf9706fb9df0312629efeb44fc910efce9203ea7c9166df16479275cd52a5f9c0bd54e30798280e9db214efab96d7b00cad8bfcd5235a5d693510f4873bc -DIST firefox-57.0.4-bg.xpi 510351 SHA256 b715180f7c48239b8d3404f1cfc102c0142e22f2aa7ac19877177e7a7f08d46a SHA512 07bacfdf881b0461b2e2752cb9c89e488d8240c78264c664cc8ec8ada83804377aa762650eec1a1314d04b628f6ccd9996162377db43b2099b5fe8d49d1ea8d6 WHIRLPOOL 70e95affa304974c70f4d301a4efed5bbc08bf74732f064f27f3d136f2bea736e48fe895b5c32031c9364cf441137639084f0445e81913eb4ad649a4867b2c49 -DIST firefox-57.0.4-bn-BD.xpi 527189 SHA256 da35dcf4bad2ec7484a4c9f0ddcb1424190e564e69801fbf2bbd94ee1d0c2a56 SHA512 6ac599803f705435adafcdc7d25fd4b0ef0338a2f06d5bbd1c83e444d613289421a4e13b6dec770973cd037b6f5499fece77d0ee44d43f6e37b28796253c5edf WHIRLPOOL e35fea3a91caccdf296eb90189837f267f3aa1117b618272b05dc479427d607868f5188d9c02cd24382c5c1474e460d2c75a48ff5388424f5f1d4e15fc6ba896 -DIST firefox-57.0.4-bn-IN.xpi 516180 SHA256 9093099dbb01f46e6b1aac94f401d1417985233dba072cfdbefecf7031756e81 SHA512 0339097616104f337ed14c8be30e27994a8c20cdba3f138c50f6b8b5bae06803d6f4b4448cd6b4967a071c54e436b04be0c0c110e412fa21ebfcb5c35406ad94 WHIRLPOOL 99026386af7cb9b032cb14ec589f49480fbfcbab43f38143fa2c50df6ad6c800c105fef634160fc339c02bf73ce9d92927b68a753cc6496821bf943f2c00d291 -DIST firefox-57.0.4-br.xpi 451866 SHA256 198aead2f677fe5185edfc2abf3c83735e5b7f1cd19a2aaf7362b57003974eb4 SHA512 2dd0c57ab848fdd2f9e18b226fe614aede91f330292a4bb35863123453812d1837bee31a8fe6364b16e02346d9ce065b7493b7171a89ea690120a96c8bc8b4c7 WHIRLPOOL 02243a61052c0617680b2501f1487320621ee59cdbba72e4177320ae0bf395032bcd2568d3b5b14e4529d6f251f1bb653063f209261c685d0327f544994604d5 -DIST firefox-57.0.4-bs.xpi 459650 SHA256 6ba5d0950dc28aa070f32b2d613ce0913420ce2022004b1c189f253b2b17847a SHA512 0e14fb9649155ecf401d4659bd5c7483f1c767b2a9fa30c3bd881093b58a3680a8cbea78cc8e64aa98fc0d36aa483041d6f58a99dfb085f8b88bff6980b82f0a WHIRLPOOL db5b140d5ca6018b8ab4ffb021ec6ed6be5fad5d0cc5c8d64764e73847eaace479a96bbc6a6d677299b592076808ee18382275fb95d95278400589605e05185a -DIST firefox-57.0.4-ca.xpi 466641 SHA256 6ef787d51d1bcd2426d3426ea57d0cdab244fc49b93f19226291cb6b7c06b30e SHA512 1469709cded36d797c4f613640a2cb784e0542dd27bc8adf4a467aafb803ff45685b61fb5aed1e1ef6424e1aa2bed0424ee4e4e04e6337468f232f48f9e4925d WHIRLPOOL 01e151e66578c70a61d6e03db9e844daf2e7365a407d8d384d2aef717954bc83aac567fd633d3bc21d7bf502dfad087f5361e2f3a0a917f88ebfcb40e07f84a3 -DIST firefox-57.0.4-cak.xpi 475935 SHA256 099d5847c14fdf22dc81c1bb581d136d292b01714d99de2cdadeac3c2988e561 SHA512 d18a62f9b772443b07a696de85f16f417655ef1d48051230e9ea44d1a5300d9005fd486a390400658270f4ddf8fad0a2f0295cec4835a23bc614e8e9ccfb70f6 WHIRLPOOL 3eb9d12de73194ffc18ef85fed7286007eccfb9b3762026644daf013fe9627c05a41e79ca9beb79a8f73b77c503592e07bde7a4ffb74b1f4d8f1e806115001fa -DIST firefox-57.0.4-cs.xpi 469457 SHA256 ec2f172874be86e1c3950998e26cc77535ca8121db63c96d34068c58c3179d99 SHA512 c89bb1b9af7672749ede46de11effc6d172a59e56049a07b116902309091536201a847401ca632f7e05b155b677c1a8c272d66672645cee1ae1007444471de6d WHIRLPOOL 0bf9e95abf4a9ef002ea8187657388894086d324aa11519379784d5d267b471867979f06763cddb35ae0b397fdcbaed5d2b99b54636cae0a79e5a9e4692a18cf -DIST firefox-57.0.4-cy.xpi 455788 SHA256 71f431a351e93c74c10f569601bb32ec990ea2a16b6bfb5f724966d0d7520bc6 SHA512 e770d35cb68a08c6b47b882d3333ea473e5b0d06a49a30914a14817376b2da6322553ac1f7aa7ed3807e649f9c1c94409e8642102d1d21c463d80e89be7d17bc WHIRLPOOL a14c9dbc657e21669cb72b9a09c5a7f7a72b5f753d2a7c1f5b3f57902e5cc44823ac377cead58641f29c384fab50d529d5679975e97183d98bc92132a80c0346 -DIST firefox-57.0.4-da.xpi 448416 SHA256 5a4a0a5aa93c19c4f5fb5aab3f83765ddfd2f993d1cb8278de1366f5626fc925 SHA512 005c9017c3f023a2557cb9fc0122829d65f673bea8d6c6ab57166bfac9127cdaf112c972257d7e5d680b5861b31411e109e76cbe40d13494f1abe97d0241cc88 WHIRLPOOL 181b06ef35d96aefaf6a96ef0eb85a12fb65765a509f3a8a5235d0b285d03559214b1e99f9187c8d3d212f94a33e3aef558ae78082fc1041e14f4d30142d895a -DIST firefox-57.0.4-de.xpi 460813 SHA256 4370210b943ebbf8b814a6e04be9c7e99416c2ff4c54c31748f781f44309e36c SHA512 ec6572ccf5dd0eb305ccd422c2c48d34bc05523cf917289a207c59c4181dff5c52ab97a9a1ab9c90a2fc3690a51a6748e7bb05ac45b9c11de7aeb5a9ea564bda WHIRLPOOL d198a47f28d9a17490216840175c087f892a9ade33b4952683ece68c404860dfefbd71b19c85378c388ebb6c402bc47bbe5e6b112deb2d84b8f3620d07ec5c1b -DIST firefox-57.0.4-dsb.xpi 479509 SHA256 5170e4e0e160405dd3ed5515e35fe36dae70aec8f48102345619e5c75bd1488a SHA512 153b57cc7ee6cadad65dfec42b3b7e0b7f0ac1aed0c783dd810c344a9bd82adef26c893047ce689cc6d22077274f78cef19536d7b6bc0142dce66195a5cf7a31 WHIRLPOOL 9a1859ba9db5cf5a9e6e11bb41e3aacf52da798091bb74a4a9d3d85d9eca4d0db5357ab1651a573be5f83f2dd08537e8adbdb934c96ba1680d3f27c88df164d8 -DIST firefox-57.0.4-el.xpi 534484 SHA256 9d2e01e55e1fd7d39b8a0a923088334dc00dca0547fd5985aaeed6319cce5095 SHA512 5fdc5fbdf3841c6924a43480a4399294e42fe9b1942f2258505bd9daeb8292d0ef0987443bfd1c4a2a6b4a68ca46388cb185eb12ef81735327029ab7526f32c1 WHIRLPOOL 1e40457f1d3197cc6b0af205fcff8d70655fece071a43f0e3cbf284e742b2cf6c5082a1006a0b3273eea6f3835d9f319f5832e08e5dc13bd4557850ab3e6f826 -DIST firefox-57.0.4-en-GB.xpi 435623 SHA256 ae4e8350e6a36cdeb8bfb31341bef5bba1eb48b6915b99a34a6cde2fd838651e SHA512 83a3e1d4e910d48f03b0170e1730c23fc33d57d9a286cf761604b169298453443387b5f31e945684bfffdd805f7445d6f55c87fdddfd1ea66a3a6e180eabd8c3 WHIRLPOOL 133d14c35197fe74782b6b91f7dc1cff7ab2dd09a31a730ac811d588c59889b00db7b03a1ec5f7c229a9ae15c5f2f5ade1a043429090224b60d4cd91a9377c22 -DIST firefox-57.0.4-en-ZA.xpi 432020 SHA256 92c5c01f2b5513d49aca2c453721026ac006cda7b1ed260083b8f101197dd9ea SHA512 18348569f2a32490933cf19910b23eddd26bef8059b7735bb16c40a9378e37ff7b6ef748428cb5fa989677aada09225daf8424f2faf1e8b42c3762a3dcd3744a WHIRLPOOL 07846c92f4b253338fa7016621549714e3e0c94265be2b868f54ac1b10298ad99c9dbb9afe690c3107114e257029c13ef803d1094555a7cc8a511c14d3fe5513 -DIST firefox-57.0.4-eo.xpi 454910 SHA256 b71b76d3a61b243bcdb71e02ed3e1752adf35301d45a441c21faa770799ce196 SHA512 151c12d3e29afdde34d5b6dad73962077ec2853582e8ee318fc39f31022ad1495460a47ed84c1fe675a7567811f4c844a5564ba07f90f29f009f190c8f9a7eb0 WHIRLPOOL 3327a9249f74420c8c5b625df235144af08a8258872049e503b02f5866c97159ccd5621ffd72594210b4efeeeff6020045d79905af08f50102b0e817e6d590e5 -DIST firefox-57.0.4-es-AR.xpi 462980 SHA256 0c9ffc8db2fba0359bf69b6bf82b3be15b939dc834bb021cfaef88646abc9e3e SHA512 940e3984d23c4ae77cb7d66a08e59e4438ede0ef0ec6a8b12e3b5be6faad43261df2c373536444f92178548370d4b1a9f8db0b9976109c39aa4eb6fdfcf9e361 WHIRLPOOL 3fbe9a11f8ff0347c69150b6d4eb7b606b841d732efe46653491c2ce625bf2e38265dc590fe210e32572f16aaff40f116dffcf58dccb9af59429cc71d0095503 -DIST firefox-57.0.4-es-CL.xpi 465514 SHA256 3f3af7c94265797b7947a6ca5b3868eab036dc2562777ff9a9c65cfcda9a5648 SHA512 3e3789de5e15e90afbe8ed8058449bd200d8872cf7b5991de52d5922051c8e909d4d6829f673066e3933b3d45791ab6609ae2006954c867fe98ae326fdd943e4 WHIRLPOOL e772c341b5f575ddbc0ca538e5a2c9b293f32b61c03fe339151562694b57fa0334abed4f723cd20dc27fc7672085e758b8159b7e312d811c70fcc644ebc0807b -DIST firefox-57.0.4-es-ES.xpi 353625 SHA256 04edd799bfeb4a7433a80320abafc7d0c1c7c24982e1d53976638e5f2ac243f9 SHA512 d2442e7ea5e00baef742f9074f188a9331b7cdaa8258812de92584b977e06ec10a71368c7aacaf1985b733dd80298049ed05532aad0d0235dbe003e6080cbbce WHIRLPOOL 3be83c40a0c8106b744874e3c083c127b4b65acde8d5f2ac71b80b044d53af32eb4fa89d4efa373940d80be2d86ac3bee8626d1b58d66ae959c77f20eb305a93 -DIST firefox-57.0.4-es-MX.xpi 468761 SHA256 7bfee1ac67c2a50fca910ecd21aa54592774aa49ce11f58ddc64de1ccbdcc5c6 SHA512 489410d5017f4098aac4905675eb7a0335a6edaccd47ace2dfa9fa24cf70f68afd266a6b0d649a06d69212b96496bec06d86b5afd6fd7ea1591343cd748d1f92 WHIRLPOOL 29963efded1c2b93a6ec58632739dbb67aa6e0c5ec723af27babb748a42399b83c1cbc185b1fc71bf3694791816514ad5388109c6c90e954e043667c813460ce -DIST firefox-57.0.4-et.xpi 447279 SHA256 37ac8824f08bfd6d931bb6d325226a970adcf4a8b3fb9ad651ef6d965f8784bd SHA512 0c049577dfb12feffa9f9b65fc4762ad5ef3bf0e3fbfb0f0056bc37471121c10a07e45cccb436f80da7495a2f6937b13e244d9eda81fa7bce9c25d9eeea2e3ee WHIRLPOOL 77a7bab8e8793f617c7040038a957474cb96b7b9f6d9ce25e8b387b823aee04e44981a6e031ff5926abcf66516ecaf801a96cf04731fd05bb3ab07c784bf2bf4 -DIST firefox-57.0.4-eu.xpi 454673 SHA256 7b6df791d0390b4cdbe92811c5bd5e374958ad242a3bbc7a49f1cbf963aa5b36 SHA512 056f0916dec50f6c8af5add42d851fb9dcf557f931391d4f9c9077cf692e879fbf27a66a3bf2b8a3afd5fbfb0a19ba1c1d8d12f54232312010db5549a2cb206c WHIRLPOOL c5e4d9988c550c8ddd9d3c2fd0fd434382027e8d2dde82a185a66290b24ceebb26fbd0362306d7c75c0fd3c40895f969206bec4738936560fb5a10cea2acd426 -DIST firefox-57.0.4-fa.xpi 510829 SHA256 7be55f40579f970e2682472fbb66e8f182c14491f67127991684e45968fbf3ed SHA512 b2f650b940c3e5804fee61fc82c26ac55405ef59f3c0f5f9673f18dd10a421270c626817da7ed436a535f574cd0b5413a2d71923d5c4b7e27f412f528f140798 WHIRLPOOL 7263bfe7235adbe1ff4e55e44eb30b8517fdb0849456a7622c48b2f6117f7544d59684eb836d73985e618ce7cc4d5370249a27bb19582e28b366bc51ef667c00 -DIST firefox-57.0.4-ff.xpi 454015 SHA256 f3321f6ecaad8d0171741fe91420492d09515b25cc9f7be764dc258b06dc7db7 SHA512 b69ed99e5d7c312ed4eb941eb6bacab1211a136d947832c355a0fffc8bc24a1fec8811dba6760aeb0e269a9ee2f084aace1eb0008b69fb9f405d5791127edc36 WHIRLPOOL b3f1f8b61246ad4628e3e6884143fd8f8144950cae0ff5cc8648eb53dad8b6a74bdcda24d5ce4fbfa40d69efee434a3bb38125bef54ac4e9840ce07ba61d2bd8 -DIST firefox-57.0.4-fi.xpi 446244 SHA256 71f29805ebe1f46242d4e01846880f42f310a42fbba22872014d8d45ceee29ea SHA512 a4816457ddcb4e6466111f5f0622f5644d9dcaa4053dc11aa8cdbbaf22ce17db97de6ba852bb8ca8ab823fe3c4b19148ad3d417c66a8687e5a6ae0c7001f94f5 WHIRLPOOL 397d1cd05c307bf0b94f3ac9f306083acb9506776870e52c9082840d5eb137bc7f0b58050e37805c38d0e569d5ce130695915d97d2af027f1bfc4e6b02a8c5bc -DIST firefox-57.0.4-fr.xpi 472722 SHA256 a959c6f196e6a26d0941a336cb6b1183a8e5af789380f249f7a2e75510bc2610 SHA512 9a020647fe0a77f870fd4e70993c053862fa02fc27f7ee07b19822604edd298825cd0a2b31b94615f5a46494f55289028e5d5f4934f4d347975ce01053d58135 WHIRLPOOL baf09f66171e24eed058477fe7af83b52fb768ebd8fe92440c9b9a563c9b751346ef8955162a57ed44659579f7f016ef0a57e15d05dbe7fe756e49b8cf82613d -DIST firefox-57.0.4-fy-NL.xpi 465911 SHA256 f4e9632af6d1850a8079b12e2652de3af69fdcc2c9db06f79c94b3ef5d1de0c2 SHA512 672ccdf0c5f81bf2370c0ee38ac746876038dbed828dc4c7d3e08b3e7bcc384ba57c84eacc8182d5246c9d8d27fc1099eba775969040c7f65e760e6a7e31d3f9 WHIRLPOOL cd42e9b493b21b97dd39cb7ce10a97c5fb9f13440a9d7e7d7e98fc23cd5de75a785705a7ea7c3969c1313d5465e0e2059520edd1e8ce1382528b3dc174bde8f7 -DIST firefox-57.0.4-ga-IE.xpi 475963 SHA256 665ce3c813e280e821a1311c8ad3a7744583fbed821bb23240354163bed13ff1 SHA512 f2c9fd5d05466c7146e46fea43b5e4544a7dd28d8983341677f18b0877ec0911a13c6d7fb834268c4c93bb1ae072df0038f926043cfe2875ca736123b708327b WHIRLPOOL c22181c4ce4c9672c34abcb8a9e9d8d2a3895fed427d0f873ae3f3034e5c1dd75c4e7d29b4a21fe649fb047a37cd8982e302b25898b44307aa1c4431fd6f87e4 -DIST firefox-57.0.4-gd.xpi 465122 SHA256 20388643eececf3e1687b7deec855ff5ae094bf852c0d22c9bb805f344a7404b SHA512 1386a650722b16ff287d981801d7718a9019cf233bb111c056da474b6a7ed39c297cc22dadcf538269aaa9fe49b8b0319b02e3293716a2fa6fa1c397fbe244d0 WHIRLPOOL 0c2e5f5df7a21625b74fe9864e7e9e54cda6a6414ff7189da4bc9e42a639222a50229375255b35e410d847a4319f2044ca9f669b688cb721ca9851662a408499 -DIST firefox-57.0.4-gl.xpi 452032 SHA256 dc3bba2acaa91c3cbb9a137d4ba76ea321447f1a935de45c81e9a7ac9310e2c6 SHA512 e3501d004ede8f6de29819879a347c1af74e2eafa3a065892d11104eadcebbf4da87dfcf00e3f2c821d0bebe504c16440b5b21c69a270447b0f0ad37fe34d764 WHIRLPOOL b514274237a74649390b87904af17e8f47ad9ee1b38755a5006866b36cc2d30dc546530de689a566ab9a364c2a8e6cd2ca96d74ad806aa60854ce0bea951b9ee -DIST firefox-57.0.4-gn.xpi 471956 SHA256 6138f2080bab839e83a709307f443b765daa8654a2bd40a8b93c1db9e94793bf SHA512 90754d2262651190169abe4eb3e0176c9957f4f76a72301f7b8d7040bafc65fc7118ae61dde6498da4e855f907edea9177df78d38ed514e1f665ed84d021e87a WHIRLPOOL f9b12833f4d0d7ae74497ce7ec67fd7353b23505d8d85426d03a1d2d66aec5a556529e130628d5d67624e8e237d767b36eda7d3941dd2c8af52b0d706f847402 -DIST firefox-57.0.4-gu-IN.xpi 511990 SHA256 651fbcff0b9b94071695bcfc2517ef2a151235ebd609fe55cf7433771103e6de SHA512 89a19cff9bcbef3cec925a6fc3c198aff02657bafcc0723751bfc714b5afbb25d510679ac6f6086d994342a8b588752b043b05223cb58d347ca2083298b98386 WHIRLPOOL 86ecf7dc2dcd37bb00ac95520e715bc3a621743986707ab5eececc0715b23086eba8a605fdf7a7a3c429a772dee01eaae407d3a5375100525295e7bd6b1edbf4 -DIST firefox-57.0.4-he.xpi 471921 SHA256 004f5c836c007157851e70e27b9afe690b83ab6cc3358d5a406961fc504b62e7 SHA512 1dacb313cca1e75fc76c124a766acb0943191b573640ad6e306b83993fcc232ec522314f81de14bf376c5bae0e6126a1c666f90d9dbd95ff6f1f31c67d5db316 WHIRLPOOL 48732e7d3c92dda6de0d765a3dbe53b5451b79be11468d007b76fb6f2f21ad82ef843e3c9a9e729dc5aad68cca867889a82a975fd2dc462f8938800212117c52 -DIST firefox-57.0.4-hi-IN.xpi 526111 SHA256 2355ad6a0d3ed332068e619d2f159111b80327989c6a4ca7cb4eff87ff77f753 SHA512 81e40459cfc7056a4538de41daf9403f67331279e795a180c2bcdb61b1e40e0158e82d9c0d161d0ddd7352492f84dfd42f5f4116461a125aebf3a235225994a1 WHIRLPOOL 4113526b6b2440e74a095898b26d72c575475dc9d35a306a8a6d182b5eb172ae68396c8bdeb7ea5fb31fa5e703b802cb19c6fd45f241fe0eb6b0f837d6352910 -DIST firefox-57.0.4-hr.xpi 460722 SHA256 aa836c086e743f90807db62eb66c911a8ed2d48e52b99b649c446832d399cd96 SHA512 c41ee4272fe6b228baf6a1aa017b28c28211c7136c01777b105d9e17da75f57e12b24784e4b9ef2e64a6e3fc5eca826dfd98eb8c5a17fb435324db5a6689df42 WHIRLPOOL dc04f58cd5d768e97f702f2178aa6a2f612f900aef4c698c813eb06cd333a19ffd5ec84eca666a062d0dfab5fc4ad0aaaa850dbdb13962ab91959902a113483e -DIST firefox-57.0.4-hsb.xpi 476505 SHA256 49ec24fff47910b9249037f72e14252284c51cd0e171259128ea7365bbe68844 SHA512 b266d38bb640169d996eeed588acb8254ccabb8d4e28e61122db9af251b8ccf98f5935470e27cf2368e8654a128648d63b5330030a990ac82d3ae400bd133ba5 WHIRLPOOL 668b780bde0eb287985e82bc022a418686a668ebdcf11d129e47770667ba121be695f32c33fcd9ebfc037381e256a2cb3833e8a490f6bc67fb82a9f9026865e0 -DIST firefox-57.0.4-hu.xpi 476607 SHA256 606bfacd3bc3ffceb3b431378f66c49db6b6a37c5eedc84128dd00b15a8fb3d2 SHA512 9e8f31c4e618baf20b66ca22e6384eead80053bea72eb181e0e3452904d3c877fefa0273f66cdca84b979930c83a3c65161be336fbeae78442af1690f6102602 WHIRLPOOL 33862586f008d98104bf279e0d0d2561afd01e0ffd4e26ac9828f29e4f797691cd9eb2bd688939978fbe47e2d9bb586cad8f7e06074bb0f0ef9699c7e73bc732 -DIST firefox-57.0.4-hy-AM.xpi 510825 SHA256 de5d81269f2293eedb3146150e49a2b48a5729d1a09f092be4c66bf4712fe267 SHA512 6804c1fd521e060ebeba06b968ecae455d59bd846c2ca9d86316f1100f59fa2a98973067c7d46cebded4f1103111712ee7c4a22b344d7ddcdabb0e5ee8b863b9 WHIRLPOOL e92692869827e91a086a0f1673596ff7efcb21140058b7373584dbbaec24ed1965ded7118bfd6f28a4a8cbfb33adbe8ef12cbed98f66655ce82fbebf58fce962 -DIST firefox-57.0.4-id.xpi 444041 SHA256 5c3af12deb175399c67878856850eb7a1794bb6836dd1f3b072489dd8b3a6e1d SHA512 981b97f7ac720ed7d869cb1fb00854b35bbf4df8d83c05f0c92adfc47dc2fc942285519b32b2a8f39ddc0ce69d8b1480cdffb02843feda519b728e1b614c2686 WHIRLPOOL 4ba80baaeca9df54f1eb65e561f096e8e76de4348b593ac072341a9784e6062575e628887a82583e99738b632b9cc443518f8ecc290fa82a43b62542da9f4be7 -DIST firefox-57.0.4-is.xpi 452660 SHA256 7fcbefb0ef86f4416097042a20a9ff5ebb08cab09e8efeea1d446fc436bbeee8 SHA512 0fc415fc733e47949729697d95535b6c91703e627c0f41153d09f87ef4c4add103027b639b41eb00f6a2d22061dd9cb520d2a4add9d55f5fe93a996eb807db4b WHIRLPOOL 87f425afdc7e962ed3858a8cc64dc461df3bd8d07d193d46f20a0beb660257f24df1867aa81d0efb23d4c8a509550e207288eb30881f00915aed9a61c14f7864 -DIST firefox-57.0.4-it.xpi 347172 SHA256 6dae24cb5e0d562f6521d5ceea3f79beca5ad4f7800a6883cb32429ee02e4bec SHA512 5bc30a0c97408de828229e920f2a088412790d8dbd6fedf337494f9623999af15d57951cb0fe97fe5071be67effb662f4c82067d2833ce1de23981ac9d929a78 WHIRLPOOL 0748382d3c9aa1850ca020dea4e58bd86b091805fcdad762ac923b38160c3464cb165084f35831183ac24f5da7e07985cf8583c04255fe16a04b74f626e83b4d -DIST firefox-57.0.4-ja.xpi 508553 SHA256 8e861ab62866d82798722c433accbd94a7a20ca7701fa05ccc2458c7d2026f8e SHA512 8aa7dd80ecefc7cff2a2f930b5aa903a907e0c17aebc63fdf457e5e838c2479993d13906f8112e8b6d8df9d1a62e9853388b9460ddbb96638bf5264c3912bba2 WHIRLPOOL 90a533437206149214ed0674f63a31085e9e1ddec6ee40c7e9c2871f1a945f8a4b2dc70a09bd990a7f70069b0877c05d426e856b6ce9e7d63157b28c7cdf1870 -DIST firefox-57.0.4-ka.xpi 492356 SHA256 162acea7cd9df51ff0481d90dc239682f8cf834ec37f51a714b9e38d4ffa338e SHA512 c88cbc3d19e2c358db74fdd2acd0e6274c8dec0eb0ba0acdef51938738265e4283504ff8396471ed11bbfaf605b3cc6f6728a6f55669d0c30c165b62b046d78e WHIRLPOOL b75c3d851d5ad7a89ccce74bd1c28bec0c85b24e30e7f5bf977ab1edabcb219ec7baacf10a0b6baf1d716e3324013651679329dd27c9b78b478baa4f492fd2c1 -DIST firefox-57.0.4-kab.xpi 462530 SHA256 8c7f6ece7b746c37a407bbbb22c79961a9e0762e7aabc8f945390e1bec515ebc SHA512 951d3b59dee6fe395ca260f5b045a942d94da78eadc8e046c829e82f0e44c8b0c946b9a978aad3173fd3329ff6789f80c2312efaac03b66a25689ff0a55edd66 WHIRLPOOL af07fd4b4290f6e8af4598a09c769267a11ebd54068ae18892f8ba5fec1573359b84214bf41857e5cdf95758e32972d3f4f1685e44e4c98be1d5663a3119bd28 -DIST firefox-57.0.4-kk.xpi 519249 SHA256 f003d5f0db4c94c793b0327f3ca5040d9a420cbcd03d6c717558c936c6aaa4a3 SHA512 310499dd4b4a0adf4c343c677dbfee0f785e3fa1d4b13233a2a481560100297d10ace69ea4af75d9969ac1d3abd3595f644c294ed68a7909c98e120f4c2fdef4 WHIRLPOOL b68da29e2826f92e5061a0c8f55a0cabc5aba0187ef83225f3037826bd782de8f79434d1cdc0d62fbe3236ee7df99f5802a97a36dbb1cc62ce0077c3d2bdded3 -DIST firefox-57.0.4-km.xpi 530080 SHA256 438f20f6ff1f24066c91679dcbb570ed814ddd3090cbba06e1d975d542916931 SHA512 0f78768601310879311654ec772dafeb3059ff8ffe5302ff20c7f4fcad3c624c6690a5d38024dc8f1fcf3e57957708cde73226bff1bfa1713b81903340eaf95f WHIRLPOOL 4144efa57e8d050468e43830b61fa54defd165b54aa26cbf70124aeeda3782ea9db1ad6fafa1e06a4ba852c0785ed70c3ec0d1ec803b97e118c91bfe0fef2a6a -DIST firefox-57.0.4-kn.xpi 531316 SHA256 21e92623823811b62852a14a61985151d2a4dfa1c2d97592b63338eb63b354c2 SHA512 99d274f0744455161da15f9fd127e8657a5c462bf3b28da5852b9bf361a254dcdc9b1a986571be95c4136b9a0c6b4ad3cbc5ef604431b2e07b3fbdc726a1f25b WHIRLPOOL 3f3d1c04fed1a865710086389584176ac81f861b922a1c3821f15e9c31e10b988edd8a4439b8252da89f9cc09f1ff2147d397295c6e9c3705b339f3810164791 -DIST firefox-57.0.4-ko.xpi 487305 SHA256 9e26a3960988d1c79a60dfe1cbd9221f754f3e9cc54984f28660ea729012cc4b SHA512 5eed124675c4f93aa172acb2aceaecd6300ee7d4a0021a16cd9e551247c5b0b120271f70aeab5e5dc9e2850f9e90e4a7ccfb59415e6eac11be0ec3a3594c8813 WHIRLPOOL 88e65bfeb832439ec37501e6bdf53489be4c1f8016ef50caac0da7cdcacc17cc8f1b2e3a5c552e17b099bd0448678d53f9a198cbb6ec95c441911c5a117403c5 -DIST firefox-57.0.4-lij.xpi 452343 SHA256 6bb35ffb667d942c548086c82717eb29b6a9c18933346d0f47278e44fe68ef76 SHA512 593bd319c04bcc7785deaba36519c75ddb830987994aec8da9b9e5f74b8a37df2c52bdd1436955e085a7fdf169d18974abe229070eafe93b74aa866c8eb1f706 WHIRLPOOL ce9f4c8e1d0540647eb25490f8ca0abf13ac78c77d38e3809a1c78f18ea6da39aa9cfcee78413d25d5450c55c32b24577ea8049314fd4505fc5a9c185e703b51 -DIST firefox-57.0.4-lt.xpi 474957 SHA256 63b12574a6bbb97619f1aa0e0d585dbd57df3a2582989eaacd7520c1cbd13adc SHA512 309ec6f41d3872c3c7be88e4b38a708c5747d90c39ec395bd038d73e4987a18afeea28b9739b7529a09e4288a5a9269623c7f6b32fd5805b8515a5ce40248d57 WHIRLPOOL bf35ca58f68dda376b19d0c53232d0c7d5a237fe200934507ebd143efe64a174632df37699361bb623f4aece080d903864d85c2f36f6debb58fb6f05b6b715ec -DIST firefox-57.0.4-lv.xpi 465243 SHA256 a15d7e0641a84b914257545ae422b24476bcc536378fe15626e750ebdbddfa95 SHA512 ae0077dbda67ee887af820865c2d6958866f7849a9dcdb43dad50c67ea45f10eb09a401ea5a247d21c97da9677754c52b0a82d47caef2aa048b3b7b23d46c364 WHIRLPOOL f284e73dfb1141b6e0f3d1a110d816cc183b295be310e2d883a27c130fa77535925306f2dfc5fcf24a29ff47552d989315cd3614e765b695c8efd59598f1af7e -DIST firefox-57.0.4-mai.xpi 507396 SHA256 e990c82a2b92081fc064813db8d73da71ed0f9bc611a79e767a0d3a88928e9c0 SHA512 d1e814a8519aedb86a60832fb2fcf3ef3571ca5fde918b83c1ca34d112ebd510f8dbdd2b1be29b69df36932ae1b5f35d4c4d758d6a71a6a0027e1af4cb066533 WHIRLPOOL a4094271f0cb43ab1e745cd4d0a2314709ffef2d991e167a5f45157a6d7a5ed80d7979b82a5a97da0653b32e7efd6018b3f89db4bfc2a8810d1b3a3fdfc6f017 -DIST firefox-57.0.4-mk.xpi 490853 SHA256 8f15d51c621e877314c68e4f11559b57556a22ea74e18b40bdbad2c906b2d110 SHA512 8b23ab30ce9d55b713307c1f11413a6aab0b39ff243fceecc8340405c9d4de09ce278e30296633520412f68f431ac2a8d9c64e75cd1dc4499c46bed81d64d48d WHIRLPOOL da8b8ddeadd6d5b83d8de557acb522c3f1ced9aae2be410da17ffcf072f5490b58c72bb73e2d6ec1fd77dd11d8c90996753e63ed272fe26d0b873ea7729b32f7 -DIST firefox-57.0.4-ml.xpi 528255 SHA256 ac1b73452a2818a80958de7122e9f653bc62de3408ac3207f60cf1ad6f033063 SHA512 d9b894e9c8f311eec019eca1f45ef23689e2a776804a521c7eee405e9e66fba4727630ef739d2271769b68e229fa5a3f0d5b7cc0d4fc334b244cdf4de865ad28 WHIRLPOOL 6be3667bc54bc34256342da9151003137a516454002e5510ee108a7049de51e327965ddab99fb68dbada953a646e21041530dd8f3dbb23160ea233484d9849c8 -DIST firefox-57.0.4-mr.xpi 521290 SHA256 fdc5bbf4e8b4ce6bb2039c57bd28a2737765a97995794a338e123e31e64d763d SHA512 e3e9634544c02ecf76f667af61b22b786e86b29acfe47dedcded71ba156c77295efefd0211bbdf9af68d6ef996fd5051971a180d3cdee82da65bf723ecaf5fd5 WHIRLPOOL 3574a61a249698538e4de33ae17635782f6973e454d90e1e76b66bab9006bd01accadb0f79577e3d88d527fd0a276b134ae39581e86f5e5f7958d5e05b6672de -DIST firefox-57.0.4-ms.xpi 451255 SHA256 64dbc7ccca7adaceb6b960ddad0d03b3b5cd220c691c79dceef5f89c0f3e6ba4 SHA512 c7027e291ff99a78bb1680975d748e53e2bffa28b9ba0fc90ad2d84fda16e67a67c19239b794166cdc048d509a225ced7c91b2e758ead4ba0fd74b9215edd31a WHIRLPOOL ed66152c4ac757dda4cce1309136b4a4e0c96c1a240fc811dcfa3efa8bf2fa0e7432428c9ada42a06b64d8b81a74de03c95a396e8cc252436ef03dca7d10d783 -DIST firefox-57.0.4-nb-NO.xpi 451557 SHA256 efe347ea92a21c9e1f9acd34eb0e05f19ccafd62b10a21ffa09febcc7584e8ef SHA512 17757897dbe7428cdba5d75de349770d63c8807cb78b0955e93159d968e220048ca977be222af7bad1d480b15f60386fad443fbb14bd277eecc4573c040c495b WHIRLPOOL f67dca89fea7f9b22c85bb44462382ece3a461a09fca21eeb1f0bb114c892539430c8a4866f2b73d6f3c445e85134d7bece3a2c9c2f67f5341420f1382da36ea -DIST firefox-57.0.4-nl.xpi 458319 SHA256 0d8ab0fdda99f63ab21b482b7351409715a2cd2f41cddf6bbe5b1b272da74bcd SHA512 f8dc480a35bd2784966d949321f4b79ab410fb0d4625c2e445fec836b890e463a3260fb96c9c7746e595be14332231ee046eb6beddd2c31a0b2495b666a76125 WHIRLPOOL a33af8af67bf1e11858c5ee64f241b6812941d6dd6a8d559f9f2aeba8d758d9de7a32fd32b3fe5290ea7f72d65afe90f9555eb8acc33415471e89789ff6cb659 -DIST firefox-57.0.4-nn-NO.xpi 452004 SHA256 223d3ef52c3820258b49df7f42d9d861ad56f756860778b0ffd01cb13c453f1b SHA512 552ce12168938e26f96f1148fb2273a44769db329018e7971a6c7da40ddabebb59efed7068cbff55ec624d5131e89e51fb8442e35fa2bb12602bcd040cababcb WHIRLPOOL 36a528c72266f75ab1ce588b0bb537321de65937acb3764fcd4caf5bf292ab5e640ea254c12900211fc78db66d2d2bce154956b80dfd5e0866f5840f7a4e743e -DIST firefox-57.0.4-or.xpi 500867 SHA256 0e72f2fcaacc58de0031c4f4410e5b5f2cc0eabe931a26f23e74407b63b27aaa SHA512 e44e8ff836a4b5fcded054d1d3b709b0abc73b198dec3e69e6d49e6046be78e463526ca269760a5be22bd49e2cdb4dd85c37dce880394dae1cd6d5d59cfd1ac6 WHIRLPOOL b6d53d0c45887377cb43841cf121b0b172381b2352b2589a32f4d3669dabe22748737e35a006e757fae552e69bb23a803d364d7a0e3427e791d3fdf6c82550af -DIST firefox-57.0.4-pa-IN.xpi 495272 SHA256 870ee04109bceda64f6097eb64d57dae741cae1b3f327515a6ecac6c87253974 SHA512 5d50c845c71b387021dfa3921462c87c7c6bba09d3411813481684dc4d7a04544f0aa22874a2f714244b2dd3b4a124755897083dee9b4921b26d3373f57bfb33 WHIRLPOOL aeb0c595b16321757f2a94ec1152c1690a8cd43478c4f66a805b9f392ad5fdd5b86e5c07c3d5ebf5b4ab0b06218665cf8a5b5b998b44858787471cf841152955 -DIST firefox-57.0.4-pl.xpi 364230 SHA256 0d91f5bdc4dfaa9fb6daa20f771148e38f2d9e4399bf30fe244030e276c9ac89 SHA512 2ae924345df868ffac6a7f0ae17afdea57cbc8d32ba9dc46b978709cc8a092c62bcf091a4057402b00eeb713eeafee5092e40ce63e1f920da41a4a2eab172f48 WHIRLPOOL dfe1a3d7bbd3cd2e52b9f517f3a6c26a72381f2208a3827a7cf80c111696a4963adc84fe33031f3944a517addbac8914992040b32ddc7f499c441049a83c53cf -DIST firefox-57.0.4-pt-BR.xpi 457154 SHA256 4b2d43c3b949a37cccf71b71b45080792e2885d834a4e276fa7df5cf6a74dcc6 SHA512 75d1be94f2a1f9a4abc485380ce61fde5ec9df796e9515eb521c42976063b4d91fec3874f27dd124fcf44102cde7b3d9f877020e537fb7cbc26979a8db976d86 WHIRLPOOL 71eeb765c37998fd96d4e8da8d0c2e9f3da46935a560bd70aa0b3dca01ad856ebd9482620995c5d95ef5c199ed4bd68846e3a4ccd2aa10c58be2ba3c1b862edc -DIST firefox-57.0.4-pt-PT.xpi 460000 SHA256 2ef8b8664011c26508cb09b136c45d9c9a1900a2300e097a5f230ca814a79780 SHA512 bbc851c4853d5bb77a4d9585e6279965cba82839386b3f55d8bdcf65332d9828243a21f4f3e358d383fec8dbe10ce11c62bc936b301b00ed1fff6648c6506591 WHIRLPOOL 531ae75541c6b8730259c9e90dbb515d9b7300343bc101d43b4a1b02e43ca017e318ca85f810fc502c9374d40ac7414a031da273f447e07b0e746bc526313908 -DIST firefox-57.0.4-rm.xpi 451059 SHA256 37e0a1fff509be32a6cc359eed53f56e06f207c8c2e85d4e1e6faede3bb3b4ac SHA512 7fee0fb1fa6f26075b9c29a7bc79d4fe09963eb244d1ef4317cbba4e2d8367baab4da3ca812574f44d37ea257a15a8528a8cda0fe03fe2305cbf93d14e5809eb WHIRLPOOL f8db930319bedf53452dd51b0ece7c372dc9091a1d3cecb17f8bb9b076c91b9b66151f7eafabd446c54f2c3a072f6e67042faf76095f699fdef771c32ea0750d -DIST firefox-57.0.4-ro.xpi 455510 SHA256 9c5669d219007a5a09fc0b9f813edb63f152a85329698e534a18799dbc8e9b68 SHA512 29a499bdfb50e9d1a1d28e5b8cd45aca8333b5145570ebb6fa63c37b917785e23e626473e80d3ab1780ecccc5fe6f2e594b2ba576d65f31346fbfb7f64fec631 WHIRLPOOL 48b74ec6f80c7d739b154faf8fb5587583660a4f478654c8a3fa5d00d7e36b84c41e17f0cdd694d46852b464a7218781d4ed8ae1b263ab8a98962d7a5ffb9c62 -DIST firefox-57.0.4-ru.xpi 527005 SHA256 4a392e7dfa9cc7e28f3e9a0d4ce5de24f6531d12bca17254d86043c8172acc1a SHA512 e82bdd36d217a818653f429f4c1076c61b5b09faa2cbcb9156a8acc96bb8a420846657fdebeace6056619b9f2c052d197db0e5ec0e03c970ea312cd0c4a275a3 WHIRLPOOL 5a1f2abc7b3cb9d5b82b57fe5a6dc3e294aff4f868fbc84478c3ed1d96cee1a6d4b15a58e67711a300129d4babd1286d598cb30642e9426c307e7e0a0e173c1f -DIST firefox-57.0.4-si.xpi 498324 SHA256 d124a90746df53a94b6dfd0f74b7a0e365ce8a36d8b5ff6b5022d557be801651 SHA512 d215de76cacb3bae708aeb1e60d965f8218c38ed31acbcb711bb381e2d34d1aad5a080b3717fb1990d58e6070bad1d6f98c5bc41a78a54f0562c86e1e9fa6a00 WHIRLPOOL b8b6c902de676b897b2e0bfaf995e385fb660d9aa6084b1e4e9e5cb8dc11a19f82c575e8b172a7efeb7e1e81ccd07991d6fa7fdd2385089a763b772d87a68b1e -DIST firefox-57.0.4-sk.xpi 480397 SHA256 beabdded23f975d25273b4179933d8bfe618cc49de46a356bbd8a8d8a0b632dc SHA512 6f7948573c782e79e1d8a47b2f3c43ba6d4ea8a517447086f3c934975e8575515a57c5f8f6553009c906fb32087bf12163744c5f5c5c50f95c714e1656339114 WHIRLPOOL ac398680247949c2f113f3f184d1c0c689e6c04099d19d49d6796f01ee9cc3cd252854f3c621e5d94e5219378078120411495fbe4b433651313d6d7e51297a9f -DIST firefox-57.0.4-sl.xpi 459377 SHA256 d0c419d071c43f139c0467f643a7619a333bfc28733b2c5c4df3bba1e1aa94bc SHA512 d32ef8fa4227885e7f416afd03bd18d788c279b489e08d6f97913bc7dbd9535d52dc773f4cde69554bb6dceac425ac992da45136b1da9bcb73455ee4db9920c1 WHIRLPOOL 2b4a259b3ca26990a04d13e75232046224e2d7b9d57a06e4b1c68ce823ba3bcb2af6bd28bd90c74b856fd59729eb752784235a1ac26e70e6ded938386278bfca -DIST firefox-57.0.4-son.xpi 450930 SHA256 f0b8b5450dcd145148ae5fa4f4c446a623014ddc0f8c8a69b7990db667d5c32d SHA512 dfc9ffb20eabf418fbfa23ce120a6d7c54eb26046e4e68f4303a24b93357c848e2a8cd8ffe3f71638c1ac456d1d9054aa3dd7885aa6f00f1afe87d47837e34d6 WHIRLPOOL ff0a894e0fab7e96812170cf4ba5ed3381f545dd52562deca0a3f451a5e57c893ead97cc467b84855cff642bf5c667f3ae201a88c75c4960d0f0f4603a7e13ea -DIST firefox-57.0.4-sq.xpi 465051 SHA256 2f08696a618b027f3b5b866abe42bba53c1f37d89b0b2948aa4c3f893795f537 SHA512 8b5b8bf94b72a6792b93dfae2274514a02565a4aa64f8bb38c6dc43e72b723f973b298ff32809fde22f6c7c67e339ed0f467c180f62b382bcf708ded421a46c2 WHIRLPOOL e3edc38c06cb5d77506314e8cd3a2a881264e79e96662e6f23c757b5b940ccc9732f48b10f98e40f05f21bf60e166d92a34b04c9d7759192d42ce3f0479b1b41 -DIST firefox-57.0.4-sr.xpi 487004 SHA256 d1418c1a1de6b9958917d3ae288eb794a463139c947d2af7d8f758f37b8865ff SHA512 0106c97c201313d5eae54d1d76f317942ab8e09b3e9bfd278d6f5309427b139c9252d81656b923f1ed86e31f012b8da4eebd348dc54564ed67ed3f3dad815336 WHIRLPOOL 1bd4985c76c26abe27edc3edb96b0e717aaef9f57fb925cb50d6c1d6e83a5419f95b220582620b60432a99c4fc9acd7a6d2949f4245d122d596aa325e7122a6b -DIST firefox-57.0.4-sv-SE.xpi 459665 SHA256 452278c7f1e5ee9f23d126de8f3659750ad5a8f5c87235fc089ffacf19348e53 SHA512 8034976918ef1b77753e6e7106f03aca3c76944d7bd56b0e99a5411e0661c5ab6e380e52d5a14c8dacdc4a20d6b2477684d6ac27fe9e8a8199cf09a652b8a512 WHIRLPOOL 944127f795bc8d7fa1af87474f5690cb945c7caf3d32f442511c3f19a6f499336485fb9d772c5beb3671a3043ac553f632d1d58e3372c19d68032e3744ce9f86 -DIST firefox-57.0.4-ta.xpi 513228 SHA256 642a0c33076fa02ddb624c5aaaa7f4892151e902585d6b6f72460db5923f1548 SHA512 34d91119facf80b12dcf5fbac51989f46fec1fa4c752ab705e693aa38bbf841fc82ff272b47f972ef69bd4740a0d9a68825b3aa38487d4197128525333d89496 WHIRLPOOL c80b4e5ddc071eb688962654f7c9b5ae6fd7b4f411aa71e6c0e48cd6dc9bb11d0d51e8c71aa4c9587f372ecd1eb84c9a683cb3283801a52340eccd87dfc15a46 -DIST firefox-57.0.4-te.xpi 530693 SHA256 8e2fd00f5eb274f8dd8fb51101ddeccce2c755d85cb4054d682ae2c5981a48c9 SHA512 baed8762b874ab3bbe80d2361d8fc88bfe4424c22c6be86027439ca8b4b47f09188ca06fce2cba033d27ccdca51c122ce6006ec8706ec51a098a4192d14836c9 WHIRLPOOL 1210574f460c37aa1ca7af1f1081e6801bd47b94de5a0a230790cd711328d84af93464164d612a39c9f6f8563af69b87d2a17d92d38484a44672baa7eafbfbd9 -DIST firefox-57.0.4-th.xpi 502452 SHA256 f50f501e4eecd612b4946d9db620009012b3ccef5bc7ba87b3bf47c92204068b SHA512 c4275d18ec42bcc9821b8e422f3f32664aea515f8b8e73a93c812905ae962268876554178db5fb82dc810d2fc388478465fe25ca7e1ff40dbc0bacc33ca6511d WHIRLPOOL 0f3ce24635d3eda13a6f8be52ad0146e9dbf7e6bedf0536792d6eaefbb301cc0e8c9f91f41ac268b3128cdb330251b93bac1978be0140bf8ec487dbbdd994908 -DIST firefox-57.0.4-tr.xpi 465581 SHA256 5706cc11ad164057b7122829d15d3fbed85a76fab1f6ac398191711084663e95 SHA512 70c9f17bc34cbc2991fb5d3ff182a73aeabc0334b30af4b623aa392c464e8cd8297d93d0f167015063fc38ad26f80f062683a4a0a992e08d098b199ae57fe7d5 WHIRLPOOL 253d0218b93dbb107b1ec12de8799b81fff77dc29011bd37b933695bdb8c99d53dfe0341605cd7dbdd4c44a8207d32e4b12bf2f7306f3e6e4fdff5cf973dcbcc -DIST firefox-57.0.4-uk.xpi 518138 SHA256 163417dd79a964730dfd1e5e673679d70d0537089934a8ef4c72ef305becb830 SHA512 ab9cd22fb4a3996b7b57b7257c34ce64f20de2b734422b9d0303c9f80413a417adb3a16ec7911805fc6b028e74e655dd8437d6c803e7d9598c9b772702b0bbc2 WHIRLPOOL c9257d516c103378a6ab5166b450c47edc1bd24aa8f691a326f667c3c1c2ca6f6c870355e091e03183c2f30ced6c299c791b4c35dfdd56a5d54b10cef2e639da -DIST firefox-57.0.4-uz.xpi 461694 SHA256 a07005793b45fa437374f28007d2e2cd38a87c3c143932f33c9e015450fa7b2d SHA512 bc5e0109820267f5dedd46ba8522927bf081af44cd9edbf8806b04c24cd77434ed3f78b67e0b5ffea295ec42482f6251b2f43a7929b68eb04ca71fd7cb543dd4 WHIRLPOOL 4ac3eaf70aec5e34b459f6fdcda1f0448cdb80e94ca173e2227373238023601a95af64913369e9d030e4dce977f384a2ff1d3e52c0e81a777ffba1f9a98bdb00 -DIST firefox-57.0.4-vi.xpi 471320 SHA256 5579932fc28c8032a48a5a0bf79dc0c53e73455037e8e1263f7bb0601522b18a SHA512 184dedfe8a676f2409cb4c3ce45bb52ef1f952cda4bfb0a5cc0594bbf633c4c96f61b40eea5bbd6ab161b552928e1cee4f8c3d544e10edc38a3d6396e0da62fb WHIRLPOOL 852ef9229759112d96917e366678a15ced29e3f39656b28e3cd0f2e8fdf396a87162c7894dada470eba2427e1de02e456eb8b940677d445f35c03ca94b51ef91 -DIST firefox-57.0.4-xh.xpi 464461 SHA256 b311b001e941a9e4065037b77b846132482ad711de4f214a4bfe8e8619a77d49 SHA512 cab336c5081974348341db82dbb053719bdc3f2547e8840c9e139afb8ebfefcc596c26ce692612b7d548429624e8a68973ff81fbdfe3a89764bd209957fc2199 WHIRLPOOL 3288d711903e954a8aee8c0077f11ce7e16db8d69c6177d2ceb953530f115359961c2dbec8fa2a4fee89a71454c06d8b32fa2886d90f944273e5d801d3747bcb -DIST firefox-57.0.4-zh-CN.xpi 483625 SHA256 eb826002503363424f93a516623382b887b1a5fcee96ef0e610d9aed53c744cf SHA512 4031b88d2fba17360abba9cc0cd4c88ca3d98a1a073bc94626c104559c993b3503a138cddb97ca285c6bdd231710dd60abafa8fdfb0e34fcbfaa1a55fd6fe86f WHIRLPOOL c7c943f65883e3c9994448ac9352d5e8c36adf1e9330f5339b7ad305b0b60e2503a72feff4105c96a0fbb68e027f99a1ffc92e1d60c2c382a66f6ff0719f4251 -DIST firefox-57.0.4-zh-TW.xpi 482348 SHA256 e24b8dd7a5953bbbf0dcbadbd370d2153fb9050da02acd0709a6ea7b629dbd87 SHA512 682316318346cb358dabd038815c94149e80d00d639ce5ede1952ac5b712165a7bc6e2b7ee33a79817915063ce5a02f595f85496e91fc1e172d1286453034f0f WHIRLPOOL 56ff94291d59d2340bcc3492aaff569601b75d29aee0ee28a3dac82487c89452415cf5dfb22d6eeb2c5b07fba60635757694bcd5798554f2217c1be3bb63ce6d -DIST firefox-57.0.4.source.tar.xz 250217612 SHA256 97cced69abfd5c57d968f0095631f86beff4f7b61883edd5a4f207e7f9c43b33 SHA512 58846037aebbf14b85e6b3a46dbe617c780c6916e437ea4ee32a2502a6b55e3689921a0be28b920dedf2f966195df04ac8e45411caeb2601a168ec08b4827cf0 WHIRLPOOL f5ca7972736b780642ddfb784a2ab02d38bc381fe36aece7f35aa779cfd1e20e6946bb9a80eca798438b813a680fe552d3ed8d8e3766c6ee9cb05744ddbad934 diff --git a/www-client/firefox/files/firefox-57.0-pkcs11-backport.patch b/www-client/firefox/files/firefox-57.0-pkcs11-backport.patch deleted file mode 100644 index c07d185f..00000000 --- a/www-client/firefox/files/firefox-57.0-pkcs11-backport.patch +++ /dev/null @@ -1,529 +0,0 @@ - -# HG changeset patch -# User Wouter Verhelst <wouter.verhelst@fedict.be> -# Date 1503417578 -7200 -# Node ID 22374473d24f4b4877e50f0b49da3174a70f79ab -# Parent fcb1865dca35554b6d8e9afe017bc7b74c413c72 -Bug 1357391 - Implement a PKCS#11 management API r=kmag,zombie - -This WebExtensions API allows to install, remove, and query installed -PKCS#11 modules as well as to query the the status of available PKCS#11 -"slots" for a given module. - -Reuses the native application manifests from the "Native Messaging" API, -but using the "pkcs11" type rather than the "stdio" type. - -All calls expect an application name, which is not the PKCS#11 friendly -name (the "description" field in the manifest file is used for that) but -instead the application name in the manifest file. - -MozReview-Commit-ID: 8dHr5QfEaXv - -diff --git a/browser/components/extensions/ext-browser.json b/browser/components/extensions/ext-browser.json ---- a/browser/components/extensions/ext-browser.json -+++ b/browser/components/extensions/ext-browser.json -@@ -117,16 +117,24 @@ - "url": "chrome://browser/content/ext-pageAction.js", - "schema": "chrome://browser/content/schemas/page_action.json", - "scopes": ["addon_parent"], - "manifest": ["page_action"], - "paths": [ - ["pageAction"] - ] - }, -+ "pkcs11": { -+ "url": "chrome://browser/content/ext-pkcs11.js", -+ "schema": "chrome://browser/content/schemas/pkcs11.json", -+ "scopes": ["addon_parent"], -+ "paths": [ -+ ["pkcs11"] -+ ] -+ }, - "geckoProfiler": { - "url": "chrome://browser/content/ext-geckoProfiler.js", - "schema": "chrome://browser/content/schemas/geckoProfiler.json", - "scopes": ["addon_parent"], - "paths": [ - ["geckoProfiler"] - ] - }, -diff --git a/browser/components/extensions/ext-pkcs11.js b/browser/components/extensions/ext-pkcs11.js -new file mode 100644 ---- /dev/null -+++ b/browser/components/extensions/ext-pkcs11.js -@@ -0,0 +1,145 @@ -+"use strict"; -+ -+XPCOMUtils.defineLazyModuleGetters(this, { -+ ctypes: "resource://gre/modules/ctypes.jsm", -+ NativeManifests: "resource://gre/modules/NativeManifests.jsm", -+ OS: "resource://gre/modules/osfile.jsm", -+}); -+ -+XPCOMUtils.defineLazyServiceGetter(this, -+ "pkcs11db", -+ "@mozilla.org/security/pkcs11moduledb;1", -+ "nsIPKCS11ModuleDB"); -+ -+var {DefaultMap} = ExtensionUtils; -+ -+const findModuleByPath = function(path) { -+ let modules = pkcs11db.listModules(); -+ for (let module of XPCOMUtils.IterSimpleEnumerator(modules, Ci.nsIPKCS11Module)) { -+ if (module && module.libName === path) { -+ return module; -+ } -+ } -+ return null; -+}; -+ -+this.pkcs11 = class extends ExtensionAPI { -+ getAPI(context) { -+ let manifestCache = new DefaultMap(async name => { -+ let hostInfo = await NativeManifests.lookupManifest("pkcs11", name, context); -+ if (hostInfo) { -+ if (AppConstants.platform === "win") { -+ hostInfo.manifest.path = OS.Path.join(OS.Path.dirname(hostInfo.path), hostInfo.manifest.path); -+ } -+ let manifestLib = OS.Path.basename(hostInfo.manifest.path); -+ if (AppConstants.platform !== "linux") { -+ manifestLib = manifestLib.toLowerCase(manifestLib); -+ } -+ if (manifestLib !== ctypes.libraryName("nssckbi")) { -+ return hostInfo.manifest; -+ } -+ } -+ return Promise.reject({message: `No such PKCS#11 module ${name}`}); -+ }); -+ return { -+ pkcs11: { -+ /** -+ * Verify whether a given PKCS#11 module is installed. -+ * -+ * @param {string} name The name of the module, as specified in -+ * the manifest file. -+ * @returns {Promise} A Promise that resolves to true if the package -+ * is installed, or false if it is not. May be -+ * rejected if the module could not be found. -+ */ -+ async isModuleInstalled(name) { -+ let manifest = await manifestCache.get(name); -+ return findModuleByPath(manifest.path) !== null; -+ }, -+ /** -+ * Install a PKCS#11 module -+ * -+ * @param {string} name The name of the module, as specified in -+ * the manifest file. -+ * @param {integer} [flags = 0] Any flags to be passed on to the -+ * nsIPKCS11ModuleDB.addModule method -+ * @returns {Promise} When the Promise resolves, the module will have -+ * been installed. When it is rejected, the module -+ * either is already installed or could not be -+ * installed for some reason. -+ */ -+ async installModule(name, flags = 0) { -+ let manifest = await manifestCache.get(name); -+ if (!manifest.description) { -+ return Promise.reject({message: `The description field in the manifest for PKCS#11 module ${name} must have a value`}); -+ } -+ pkcs11db.addModule(manifest.description, manifest.path, flags, 0); -+ }, -+ /** -+ * Uninstall a PKCS#11 module -+ * -+ * @param {string} name The name of the module, as specified in -+ * the manifest file. -+ * @returns {Promise}. When the Promise resolves, the module will have -+ * been uninstalled. When it is rejected, the -+ * module either was not installed or could not be -+ * uninstalled for some reason. -+ */ -+ async uninstallModule(name) { -+ let manifest = await manifestCache.get(name); -+ let module = findModuleByPath(manifest.path); -+ if (!module) { -+ return Promise.reject({message: `The PKCS#11 module ${name} is not loaded`}); -+ } -+ pkcs11db.deleteModule(module.name); -+ }, -+ /** -+ * Get a list of slots for a given PKCS#11 module, with -+ * information on the token (if any) in the slot. -+ * -+ * The PKCS#11 standard defines slots as an abstract concept -+ * that may or may not have at most one token. In practice, when -+ * using PKCS#11 for smartcards (the most likely use case of -+ * PKCS#11 for Firefox), a slot corresponds to a cardreader, and -+ * a token corresponds to a card. -+ * -+ * @param {string} name The name of the PKCS#11 module, as -+ * specified in the manifest file. -+ * @returns {Promise} A promise that resolves to an array of objects -+ * with two properties. The `name` object contains -+ * the name of the slot; the `token` object is null -+ * if there is no token in the slot, or is an object -+ * describing various properties of the token if -+ * there is. -+ */ -+ async getModuleSlots(name) { -+ let manifest = await manifestCache.get(name); -+ let module = findModuleByPath(manifest.path); -+ if (!module) { -+ return Promise.reject({message: `The module ${name} is not installed`}); -+ } -+ let rv = []; -+ for (let slot of XPCOMUtils.IterSimpleEnumerator(module.listSlots(), Ci.nsIPKCS11Slot)) { -+ let token = slot.getToken(); -+ let slotobj = { -+ name: slot.name, -+ token: null, -+ }; -+ if (slot.status != 1 /* SLOT_NOT_PRESENT */) { -+ slotobj.token = { -+ name: token.tokenName, -+ manufacturer: token.tokenManID, -+ HWVersion: token.tokenHWVersion, -+ FWVersion: token.tokenFWVersion, -+ serial: token.tokenSerialNumber, -+ isLoggedIn: token.isLoggedIn(), -+ }; -+ } -+ rv.push(slotobj); -+ } -+ return rv; -+ }, -+ }, -+ }; -+ } -+}; -diff --git a/browser/components/extensions/jar.mn b/browser/components/extensions/jar.mn ---- a/browser/components/extensions/jar.mn -+++ b/browser/components/extensions/jar.mn -@@ -24,16 +24,17 @@ browser.jar: - content/browser/ext-devtools-network.js - content/browser/ext-devtools-panels.js - content/browser/ext-find.js - content/browser/ext-geckoProfiler.js - content/browser/ext-history.js - content/browser/ext-menus.js - content/browser/ext-omnibox.js - content/browser/ext-pageAction.js -+ content/browser/ext-pkcs11.js - content/browser/ext-sessions.js - content/browser/ext-sidebarAction.js - content/browser/ext-tabs.js - content/browser/ext-url-overrides.js - content/browser/ext-windows.js - content/browser/ext-c-browser.js - content/browser/ext-c-devtools-inspectedWindow.js - content/browser/ext-c-devtools-panels.js -diff --git a/browser/components/extensions/schemas/jar.mn b/browser/components/extensions/schemas/jar.mn ---- a/browser/components/extensions/schemas/jar.mn -+++ b/browser/components/extensions/schemas/jar.mn -@@ -14,13 +14,14 @@ browser.jar: - content/browser/schemas/devtools_panels.json - content/browser/schemas/find.json - content/browser/schemas/geckoProfiler.json - content/browser/schemas/history.json - content/browser/schemas/menus.json - content/browser/schemas/menus_internal.json - content/browser/schemas/omnibox.json - content/browser/schemas/page_action.json -+ content/browser/schemas/pkcs11.json - content/browser/schemas/sessions.json - content/browser/schemas/sidebar_action.json - content/browser/schemas/tabs.json - content/browser/schemas/url_overrides.json - content/browser/schemas/windows.json -diff --git a/browser/components/extensions/schemas/pkcs11.json b/browser/components/extensions/schemas/pkcs11.json -new file mode 100644 ---- /dev/null -+++ b/browser/components/extensions/schemas/pkcs11.json -@@ -0,0 +1,76 @@ -+[ -+ { -+ "namespace": "manifest", -+ "types": [ -+ { -+ "$extend": "Permission", -+ "choices": [{ -+ "type": "string", -+ "enum": [ -+ "pkcs11" -+ ] -+ }] -+ } -+ ] -+ }, -+ { -+ "namespace": "pkcs11", -+ "description": "PKCS#11 module management API", -+ "permissions": ["pkcs11"], -+ "functions": [ -+ { -+ "name": "isModuleInstalled", -+ "type": "function", -+ "description": "checks whether a PKCS#11 module, given by name, is installed", -+ "async": true, -+ "parameters": [ -+ { -+ "name": "name", -+ "type": "string" -+ } -+ ] -+ }, -+ { -+ "name": "installModule", -+ "type": "function", -+ "description": "Install a PKCS#11 module with a given name", -+ "async": true, -+ "parameters": [ -+ { -+ "name": "name", -+ "type": "string" -+ }, -+ { -+ "name": "flags", -+ "type": "integer", -+ "optional": true -+ } -+ ] -+ }, -+ { -+ "name": "uninstallModule", -+ "type": "function", -+ "description": "Remove an installed PKCS#11 module from firefox", -+ "async": true, -+ "parameters": [ -+ { -+ "name": "name", -+ "type": "string" -+ } -+ ] -+ }, -+ { -+ "name": "getModuleSlots", -+ "type": "function", -+ "description": "Enumerate a module's slots, each with their name and whether a token is present", -+ "async": true, -+ "parameters": [ -+ { -+ "name": "name", -+ "type": "string" -+ } -+ ] -+ } -+ ] -+ } -+] -diff --git a/browser/components/extensions/test/xpcshell/test_ext_pkcs11_management.js b/browser/components/extensions/test/xpcshell/test_ext_pkcs11_management.js -new file mode 100644 ---- /dev/null -+++ b/browser/components/extensions/test/xpcshell/test_ext_pkcs11_management.js -@@ -0,0 +1,168 @@ -+"use strict"; -+ -+XPCOMUtils.defineLazyModuleGetters(this, { -+ ctypes: "resource://gre/modules/ctypes.jsm", -+ MockRegistry: "resource://testing-common/MockRegistry.jsm", -+ OS: "resource://gre/modules/osfile.jsm", -+}); -+ -+do_get_profile(); -+let tmpDir = FileUtils.getDir("TmpD", ["PKCS11"]); -+let slug = AppConstants.platform === "linux" ? "pkcs11-modules" : "PKCS11Modules"; -+tmpDir.createUnique(Ci.nsIFile.DIRECTORY_TYPE, FileUtils.PERMS_DIRECTORY); -+let baseDir = OS.Path.join(tmpDir.path, slug); -+OS.File.makeDir(baseDir); -+ -+do_register_cleanup(() => { -+ tmpDir.remove(true); -+}); -+ -+function getPath(filename) { -+ return OS.Path.join(baseDir, filename); -+} -+ -+const testmodule = "../../../../../security/manager/ssl/tests/unit/pkcs11testmodule/" + ctypes.libraryName("pkcs11testmodule"); -+ -+// This function was inspired by the native messaging test under -+// toolkit/components/extensions -+ -+async function setupManifests(modules) { -+ async function writeManifest(module) { -+ let manifest = { -+ name: module.name, -+ description: module.description, -+ path: module.path, -+ type: "pkcs11", -+ allowed_extensions: [module.id], -+ }; -+ -+ let manifestPath = getPath(`${module.name}.json`); -+ await OS.File.writeAtomic(manifestPath, JSON.stringify(manifest)); -+ -+ return manifestPath; -+ } -+ -+ switch (AppConstants.platform) { -+ case "macosx": -+ case "linux": -+ let dirProvider = { -+ getFile(property) { -+ if (property == "XREUserNativeManifests") { -+ return tmpDir.clone(); -+ } else if (property == "XRESysNativeManifests") { -+ return tmpDir.clone(); -+ } -+ return null; -+ }, -+ }; -+ -+ Services.dirsvc.registerProvider(dirProvider); -+ do_register_cleanup(() => { -+ Services.dirsvc.unregisterProvider(dirProvider); -+ }); -+ -+ for (let module of modules) { -+ await writeManifest(module); -+ } -+ break; -+ -+ case "win": -+ const REGKEY = String.raw`Software\Mozilla\PKCS11Modules`; -+ -+ let registry = new MockRegistry(); -+ do_register_cleanup(() => { -+ registry.shutdown(); -+ }); -+ -+ for (let module of modules) { -+ if (!OS.Path.winIsAbsolute(module.path)) { -+ let cwd = await OS.File.getCurrentDirectory(); -+ module.path = OS.Path.join(cwd, module.path); -+ } -+ let manifestPath = await writeManifest(module); -+ registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER, -+ `${REGKEY}\\${module.name}`, "", manifestPath); -+ } -+ break; -+ -+ default: -+ ok(false, `Loading of PKCS#11 modules is not supported on ${AppConstants.platform}`); -+ } -+} -+ -+add_task(async function test_pkcs11() { -+ async function background() { -+ try { -+ let isInstalled = await browser.pkcs11.isModuleInstalled("testmodule"); -+ browser.test.assertFalse(isInstalled, "PKCS#11 module is not installed before we install it"); -+ await browser.pkcs11.installModule("testmodule", 0); -+ isInstalled = browser.pkcs11.isModuleInstalled("testmodule"); -+ browser.test.assertTrue(isInstalled, "PKCS#11 module is installed after we install it"); -+ let slots = await browser.pkcs11.getModuleSlots("testmodule"); -+ browser.test.assertEq("Test PKCS11 Slot", slots[0].name, "The first slot name matches the expected name"); -+ browser.test.assertEq("Test PKCS11 Slot 二", slots[1].name, "The second slot name matches the expected name"); -+ browser.test.assertTrue(slots[1].token, "The second slot has a token"); -+ browser.test.assertEq("Test PKCS11 Tokeñ 2 Label", slots[1].token.name, "The token name matches the expected name"); -+ browser.test.assertEq("Test PKCS11 Manufacturer ID", slots[1].token.manufacturer, "The token manufacturer matches the expected manufacturer"); -+ browser.test.assertEq("0.0", slots[1].token.HWVersion, "The token hardware version matches the expected version"); -+ browser.test.assertEq("0.0", slots[1].token.FWVersion, "The token firmware version matches the expected version"); -+ browser.test.assertEq("", slots[1].token.serial, "The token has no serial number"); -+ browser.test.assertFalse(slots[1].token.isLoggedIn, "The token is not logged in"); -+ await browser.pkcs11.uninstallModule("testmodule"); -+ isInstalled = await browser.pkcs11.isModuleInstalled("testmodule"); -+ browser.test.assertFalse(isInstalled, "PKCS#11 module is no longer installed after we uninstall it"); -+ await browser.pkcs11.installModule("testmodule"); -+ isInstalled = await browser.pkcs11.isModuleInstalled("testmodule"); -+ browser.test.assertTrue(isInstalled, "Installing the PKCS#11 module without flags parameter succeeds"); -+ await browser.pkcs11.uninstallModule("testmodule"); -+ await browser.test.assertRejects( -+ browser.pkcs11.isModuleInstalled("nonexistingmodule"), -+ /No such PKCS#11 module nonexistingmodule/, -+ "We cannot access modules if no JSON file exists"); -+ await browser.test.assertRejects( -+ browser.pkcs11.isModuleInstalled("othermodule"), -+ /No such PKCS#11 module othermodule/, -+ "We cannot access modules if we're not listed in the module's manifest file's allowed_extensions key"); -+ await browser.test.assertRejects( -+ browser.pkcs11.uninstallModule("internalmodule"), -+ /No such PKCS#11 module internalmodule/, -+ "We cannot uninstall the NSS Builtin Roots Module"); -+ browser.test.notifyPass("pkcs11"); -+ } catch (e) { -+ browser.test.fail(`Error: ${String(e)} :: ${e.stack}`); -+ browser.test.notifyFail("pkcs11 failed"); -+ } -+ } -+ -+ await setupManifests([ -+ { -+ name: "testmodule", -+ description: "PKCS#11 Test Module", -+ path: testmodule, -+ id: "pkcs11@tests.mozilla.org", -+ }, -+ { -+ name: "othermodule", -+ description: "PKCS#11 Test Module", -+ path: testmodule, -+ id: "other@tests.mozilla.org", -+ }, -+ { -+ name: "internalmodule", -+ description: "Builtin Roots Module", -+ path: ctypes.libraryName("nssckbi"), -+ id: "pkcs11@tests.mozilla.org", -+ }, -+ ]); -+ -+ let extension = ExtensionTestUtils.loadExtension({ -+ manifest: { -+ permissions: ["pkcs11"], -+ applications: {"gecko": {id: "pkcs11@tests.mozilla.org"}}, -+ }, -+ background: background, -+ }); -+ await extension.startup(); -+ await extension.awaitFinish("pkcs11"); -+ await extension.unload(); -+}); -diff --git a/browser/components/extensions/test/xpcshell/xpcshell.ini b/browser/components/extensions/test/xpcshell/xpcshell.ini ---- a/browser/components/extensions/test/xpcshell/xpcshell.ini -+++ b/browser/components/extensions/test/xpcshell/xpcshell.ini -@@ -15,10 +15,11 @@ dupe-manifest = - # For tests which should run in all configurations. - # - xpcshell-remote.ini - # For tests which should only run with both remote extensions and remote content. - - [test_ext_manifest_commands.js] - [test_ext_manifest_omnibox.js] - [test_ext_manifest_permissions.js] - [test_ext_geckoProfiler_schema.js] -+[test_ext_pkcs11_management.js] - - [include:xpcshell-common.ini] -diff --git a/browser/locales/en-US/chrome/browser/browser.properties b/browser/locales/en-US/chrome/browser/browser.properties ---- a/browser/locales/en-US/chrome/browser/browser.properties -+++ b/browser/locales/en-US/chrome/browser/browser.properties -@@ -106,16 +106,17 @@ webextPerms.description.downloads.open=O - webextPerms.description.find=Read the text of all open tabs - webextPerms.description.geolocation=Access your location - webextPerms.description.history=Access browsing history - webextPerms.description.management=Monitor extension usage and manage themes - # LOCALIZATION NOTE (webextPerms.description.nativeMessaging) - # %S will be replaced with the name of the application - webextPerms.description.nativeMessaging=Exchange messages with programs other than %S - webextPerms.description.notifications=Display notifications to you -+webextPerms.description.pkcs11=Provide cryptographic authentication services - webextPerms.description.privacy=Read and modify privacy settings - webextPerms.description.proxy=Control browser proxy settings - webextPerms.description.sessions=Access recently closed tabs - webextPerms.description.tabs=Access browser tabs - webextPerms.description.topSites=Access browsing history - webextPerms.description.unlimitedStorage=Store unlimited amount of client-side data - webextPerms.description.webNavigation=Access browser activity during navigation - - diff --git a/www-client/firefox/files/gentoo-default-prefs.js-1 b/www-client/firefox/files/gentoo-default-prefs.js-1 deleted file mode 100644 index 22a51ff7..00000000 --- a/www-client/firefox/files/gentoo-default-prefs.js-1 +++ /dev/null @@ -1,17 +0,0 @@ -pref("app.update.enabled", false); -pref("app.update.autoInstallEnabled", false); -pref("browser.display.use_system_colors", true); -pref("browser.link.open_external", 3); -pref("general.smoothScroll", true); -pref("general.autoScroll", false); -pref("browser.tabs.tabMinWidth", 15); -pref("browser.backspace_action", 0); -pref("browser.urlbar.hideGoButton", true); -pref("accessibility.typeaheadfind", true); -pref("browser.shell.checkDefaultBrowser", false); -pref("browser.EULA.override", true); -pref("general.useragent.vendor", "Gentoo"); -pref("intl.locale.matchOS", true); -pref("general.useragent.locale", "chrome://global/locale/intl.properties"); -pref("extensions.autoDisableScopes", 0); -pref("layout.css.dpi", 0); diff --git a/www-client/firefox/files/gentoo-hwaccel-prefs.js-1 b/www-client/firefox/files/gentoo-hwaccel-prefs.js-1 deleted file mode 100644 index 0cb92b04..00000000 --- a/www-client/firefox/files/gentoo-hwaccel-prefs.js-1 +++ /dev/null @@ -1,2 +0,0 @@ -pref("layers.acceleration.force-enabled", true); -pref("webgl.force-enabled", true); diff --git a/www-client/firefox/files/icon/firefox.desktop b/www-client/firefox/files/icon/firefox.desktop deleted file mode 100644 index d772c2fe..00000000 --- a/www-client/firefox/files/icon/firefox.desktop +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Name=@NAME@ -Comment=Web Browser -Exec=firefox %u -Icon=@ICON@ -Terminal=false -Type=Application -MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https; -Categories=Network;WebBrowser; diff --git a/www-client/firefox/files/pgo.patch b/www-client/firefox/files/pgo.patch deleted file mode 100644 index 106bf598..00000000 --- a/www-client/firefox/files/pgo.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -Nur a/Makefile.in b/Makefile.in ---- a/Makefile.in 2015-01-06 07:07:53.000000000 +0200 -+++ b/Makefile.in 2015-02-22 02:54:01.523914597 +0200 -@@ -301,6 +301,9 @@ - @relcount=`find $(DIST)/bin -name '*.so' | xargs objdump -R | grep R_386_PC32 | wc -l` && if test $$relcount -gt 0; then echo 'FAILED: R_386_PC32 relocations detected in a shared library. Did you use a system header without adding it to config/system-headers?'; exit 1; else echo 'PASSED'; fi - endif - -+pgo-profile-run: -+ $(PYTHON) $(topsrcdir)/build/pgo/profileserver.py $(EXTRA_TEST_ARGS) -+ - ifdef JS_STANDALONE - # Delegate js-specific rules to js - check-%: diff --git a/www-client/firefox/firefox-57.0.4.ebuild b/www-client/firefox/firefox-57.0.4.ebuild deleted file mode 100644 index da300ee5..00000000 --- a/www-client/firefox/firefox-57.0.4.ebuild +++ /dev/null @@ -1,396 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -VIRTUALX_REQUIRED="pgo" -WANT_AUTOCONF="2.1" -MOZ_ESR="" - -# This list can be updated with scripts/get_langs.sh from the mozilla overlay -MOZ_LANGS=( ach af an ar as ast az bg bn-BD bn-IN br bs ca cak cs cy da de dsb -el en en-GB en-US en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE -gd gl gn gu-IN he hi-IN hr hsb hu hy-AM id is it ja ka kab kk km kn ko lij lt lv -mai mk ml mr ms nb-NO nl nn-NO or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq -sr sv-SE ta te th tr uk uz vi xh zh-CN zh-TW ) - -# Convert the ebuild version to the upstream mozilla version, used by mozlinguas -MOZ_PV="${PV/_alpha/a}" # Handle alpha for SRC_URI -MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI -MOZ_PV="${MOZ_PV/_rc/rc}" # Handle rc for SRC_URI - -if [[ ${MOZ_ESR} == 1 ]]; then - # ESR releases have slightly different version numbers - MOZ_PV="${MOZ_PV}esr" -fi - -# Patch version -PATCH="${PN}-57.0-patches-01" -MOZ_HTTP_URI="https://archive.mozilla.org/pub/${PN}/releases" - -MOZCONFIG_OPTIONAL_WIFI=1 - -inherit check-reqs flag-o-matic toolchain-funcs eutils gnome2-utils mozconfig-v6.57 pax-utils xdg-utils autotools \ - virtualx mozlinguas-v2 - -DESCRIPTION="Firefox Web Browser" -HOMEPAGE="http://www.mozilla.com/firefox" - -KEYWORDS="amd64 x86" - -SLOT="0" -LICENSE="MPL-2.0 GPL-2 LGPL-2.1" -IUSE="bindist eme-free +gmp-autoupdate hardened hwaccel jack nsplugin pgo +screenshot selinux test" -RESTRICT="!bindist? ( bindist )" - -PATCH_URIS=( https://dev.gentoo.org/~{anarchy,axs,polynomial-c}/mozilla/patchsets/${PATCH}.tar.xz ) -SRC_URI="${SRC_URI} - ${MOZ_HTTP_URI}/${MOZ_PV}/source/firefox-${MOZ_PV}.source.tar.xz - ${PATCH_URIS[@]}" - -ASM_DEPEND=">=dev-lang/yasm-1.1" - -RDEPEND=" - jack? ( virtual/jack ) - >=dev-libs/nss-3.33 - >=dev-libs/nspr-4.17 - selinux? ( sec-policy/selinux-mozilla )" - -DEPEND="${RDEPEND} - pgo? ( >=sys-devel/gcc-4.5 ) - amd64? ( ${ASM_DEPEND} virtual/opengl - >=sys-devel/llvm-4.0.1 - >=sys-devel/clang-4.0.1 ) - x86? ( ${ASM_DEPEND} virtual/opengl )" - -S="${WORKDIR}/firefox-${MOZ_PV}" - -QA_PRESTRIPPED="usr/lib*/${PN}/firefox" - -BUILD_OBJ_DIR="${S}/ff" - -# allow GMP_PLUGIN_LIST to be set in an eclass or -# overridden in the enviromnent (advanced hackers only) -if [[ -z $GMP_PLUGIN_LIST ]]; then - GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) -fi - -pkg_setup() { - moz_pkgsetup - - # Build stylo - use amd64 && export BINDGEN_CFLAGS=$(pkg-config --cflags nspr pixman-1 | xargs) - - # Avoid PGO profiling problems due to enviroment leakage - # These should *always* be cleaned up anyway - unset DBUS_SESSION_BUS_ADDRESS \ - DISPLAY \ - ORBIT_SOCKETDIR \ - SESSION_MANAGER \ - XDG_SESSION_COOKIE \ - XAUTHORITY - - if ! use bindist; then - einfo - elog "You are enabling official branding. You may not redistribute this build" - elog "to any users on your network or the internet. Doing so puts yourself into" - elog "a legal problem with Mozilla Foundation" - elog "You can disable it by emerging ${PN} _with_ the bindist USE-flag" - fi - - if use pgo; then - einfo - ewarn "You will do a double build for profile guided optimization." - ewarn "This will result in your build taking at least twice as long as before." - fi -} - -pkg_pretend() { - # Ensure we have enough disk space to compile - if use pgo || use debug || use test ; then - CHECKREQS_DISK_BUILD="8G" - else - CHECKREQS_DISK_BUILD="4G" - fi - check-reqs_pkg_setup -} - -src_unpack() { - unpack ${A} - - # Unpack language packs - mozlinguas_src_unpack -} - -src_prepare() { - eapply "${WORKDIR}/firefox" - eapply "${FILESDIR}/pgo.patch" - eapply "${FILESDIR}"/firefox-57.0-pkcs11-backport.patch - - # Enable gnomebreakpad - if use debug ; then - sed -i -e "s:GNOME_DISABLE_CRASH_DIALOG=1:GNOME_DISABLE_CRASH_DIALOG=0:g" \ - "${S}"/build/unix/run-mozilla.sh || die "sed failed!" - fi - - # Drop -Wl,--as-needed related manipulation for ia64 as it causes ld sefgaults, bug #582432 - if use ia64 ; then - sed -i \ - -e '/^OS_LIBS += no_as_needed/d' \ - -e '/^OS_LIBS += as_needed/d' \ - "${S}"/widget/gtk/mozgtk/gtk2/moz.build \ - "${S}"/widget/gtk/mozgtk/gtk3/moz.build \ - || die "sed failed to drop --as-needed for ia64" - fi - - # Ensure that our plugins dir is enabled as default - sed -i -e "s:/usr/lib/mozilla/plugins:/usr/lib/nsbrowser/plugins:" \ - "${S}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 32bit!" - sed -i -e "s:/usr/lib64/mozilla/plugins:/usr/lib64/nsbrowser/plugins:" \ - "${S}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 64bit!" - - # Fix sandbox violations during make clean, bug 372817 - sed -e "s:\(/no-such-file\):${T}\1:g" \ - -i "${S}"/config/rules.mk \ - -i "${S}"/nsprpub/configure{.in,} \ - || die - - # Don't exit with error when some libs are missing which we have in - # system. - sed '/^MOZ_PKG_FATAL_WARNINGS/s@= 1@= 0@' \ - -i "${S}"/browser/installer/Makefile.in || die - - # Don't error out when there's no files to be removed: - sed 's@\(xargs rm\)$@\1 -f@' \ - -i "${S}"/toolkit/mozapps/installer/packager.mk || die - - # Keep codebase the same even if not using official branding - sed '/^MOZ_DEV_EDITION=1/d' \ - -i "${S}"/browser/branding/aurora/configure.sh || die - - # Allow user to apply any additional patches without modifing ebuild - eapply_user - - # Autotools configure is now called old-configure.in - # This works because there is still a configure.in that happens to be for the - # shell wrapper configure script - eautoreconf old-configure.in - - # Must run autoconf in js/src - cd "${S}"/js/src || die - eautoconf old-configure.in -} - -src_configure() { - MEXTENSIONS="default" - # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - _google_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc - - #################################### - # - # mozconfig, CFLAGS and CXXFLAGS setup - # - #################################### - - mozconfig_init - mozconfig_config - - # enable JACK, bug 600002 - mozconfig_use_enable jack - - use eme-free && mozconfig_annotate '+eme-free' --disable-eme - - # It doesn't compile on alpha without this LDFLAGS - use alpha && append-ldflags "-Wl,--no-relax" - - # Add full relro support for hardened - if use hardened; then - append-ldflags "-Wl,-z,relro,-z,now" - mozconfig_use_enable hardened hardening - fi - - # Only available on mozilla-overlay for experimentation -- Removed in Gentoo repo per bug 571180 - #use egl && mozconfig_annotate 'Enable EGL as GL provider' --with-gl-provider=EGL - - # Setup api key for location services - echo -n "${_google_api_key}" > "${S}"/google-api-key - mozconfig_annotate '' --with-google-api-keyfile="${S}/google-api-key" - - mozconfig_annotate '' --enable-extensions="${MEXTENSIONS}" - - # Allow for a proper pgo build - if use pgo; then - echo "mk_add_options PROFILE_GEN_SCRIPT='EXTRA_TEST_ARGS=10 \$(MAKE) -C \$(MOZ_OBJDIR) pgo-profile-run'" >> "${S}"/.mozconfig - fi - - echo "mk_add_options MOZ_OBJDIR=${BUILD_OBJ_DIR}" >> "${S}"/.mozconfig - echo "mk_add_options XARGS=/usr/bin/xargs" >> "${S}"/.mozconfig - - # Finalize and report settings - mozconfig_final - - # workaround for funky/broken upstream configure... - SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ - emake -f client.mk configure -} - -src_compile() { - if use pgo; then - addpredict /root - addpredict /etc/gconf - # Reset and cleanup environment variables used by GNOME/XDG - gnome2_environment_reset - - MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ - virtx emake -f client.mk profiledbuild || die "virtx emake failed" - else - MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ - emake -f client.mk realbuild - fi - -} - -src_install() { - cd "${BUILD_OBJ_DIR}" || die - - # Pax mark xpcshell for hardened support, only used for startupcache creation. - pax-mark m "${BUILD_OBJ_DIR}"/dist/bin/xpcshell - - # Add our default prefs for firefox - cp "${FILESDIR}"/gentoo-default-prefs.js-1 \ - "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ - || die - - mozconfig_install_prefs \ - "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" - - # Augment this with hwaccel prefs - if use hwaccel ; then - cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-1 >> \ - "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ - || die - fi - - if ! use screenshot; then - echo "pref(\"extensions.screenshots.disabled\", true);" >> \ - "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ - || die - fi - - echo "pref(\"extensions.autoDisableScopes\", 3);" >> \ - "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ - || die - - if use nsplugin; then - echo "pref(\"plugin.load_flash_only\", false);" >> \ - "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ - || die - fi - - local plugin - use gmp-autoupdate || use eme-free || for plugin in "${GMP_PLUGIN_LIST[@]}" ; do - echo "pref(\"media.${plugin}.autoupdate\", false);" >> \ - "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ - || die - done - - MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ - emake DESTDIR="${D}" install - - # Install language packs - mozlinguas_src_install - - local size sizes icon_path icon name - if use bindist; then - sizes="16 32 48" - icon_path="${S}/browser/branding/aurora" - # Firefox's new rapid release cycle means no more codenames - # Let's just stick with this one... - icon="aurora" - name="Aurora" - - # Override preferences to set the MOZ_DEV_EDITION defaults, since we - # don't define MOZ_DEV_EDITION to avoid profile debaucles. - # (source: browser/app/profile/firefox.js) - cat >>"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" <<PROFILE_EOF -pref("app.feedback.baseURL", "https://input.mozilla.org/%LOCALE%/feedback/firefoxdev/%VERSION%/"); -sticky_pref("lightweightThemes.selectedThemeID", "firefox-devedition@mozilla.org"); -sticky_pref("browser.devedition.theme.enabled", true); -sticky_pref("devtools.theme", "dark"); -PROFILE_EOF - - else - sizes="16 22 24 32 256" - icon_path="${S}/browser/branding/official" - icon="${PN}" - name="Mozilla Firefox" - fi - - # Install icons and .desktop for menu entry - for size in ${sizes}; do - insinto "/usr/share/icons/hicolor/${size}x${size}/apps" - newins "${icon_path}/default${size}.png" "${icon}.png" - done - # The 128x128 icon has a different name - insinto "/usr/share/icons/hicolor/128x128/apps" - newins "${icon_path}/mozicon128.png" "${icon}.png" - # Install a 48x48 icon into /usr/share/pixmaps for legacy DEs - newicon "${icon_path}/content/icon48.png" "${icon}.png" - newmenu "${FILESDIR}/icon/${PN}.desktop" "${PN}.desktop" - sed -i -e "s:@NAME@:${name}:" -e "s:@ICON@:${icon}:" \ - "${ED}/usr/share/applications/${PN}.desktop" || die - - # Add StartupNotify=true bug 237317 - if use startup-notification ; then - echo "StartupNotify=true"\ - >> "${ED}/usr/share/applications/${PN}.desktop" \ - || die - fi - - # Required in order to use plugins and even run firefox on hardened. - pax-mark m "${ED}"${MOZILLA_FIVE_HOME}/{firefox,firefox-bin,plugin-container} -} - -pkg_preinst() { - gnome2_icon_savelist - - # if the apulse libs are available in MOZILLA_FIVE_HOME then apulse - # doesn't need to be forced into the LD_LIBRARY_PATH - if use pulseaudio && has_version ">=media-sound/apulse-0.1.9" ; then - einfo "APULSE found - Generating library symlinks for sound support" - local lib - pushd "${ED}"${MOZILLA_FIVE_HOME} &>/dev/null || die - for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do - # a quickpkg rolled by hand will grab symlinks as part of the package, - # so we need to avoid creating them if they already exist. - if ! [ -L ${lib##*/} ]; then - ln -s "${lib}" ${lib##*/} || die - fi - done - popd &>/dev/null || die - fi -} - -pkg_postinst() { - # Update mimedb for the new .desktop file - xdg_desktop_database_update - gnome2_icon_cache_update - - if ! use gmp-autoupdate && ! use eme-free ; then - elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" - elog "installing into new profiles:" - local plugin - for plugin in "${GMP_PLUGIN_LIST[@]}"; do elog "\t ${plugin}" ; done - fi - - if use pulseaudio && has_version ">=media-sound/apulse-0.1.9"; then - elog "Apulse was detected at merge time on this system and so it will always be" - elog "used for sound. If you wish to use pulseaudio instead please unmerge" - elog "media-sound/apulse." - fi -} - -pkg_postrm() { - gnome2_icon_cache_update -} |