From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id qAbaNbqJimFV5AAAgWs5BA (envelope-from ) for ; Tue, 09 Nov 2021 15:46:18 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id +AKrMbqJimEvSAAAB5/wlQ (envelope-from ) for ; Tue, 09 Nov 2021 14:46:18 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 7C231A97C for ; Tue, 9 Nov 2021 15:46:17 +0100 (CET) Received: from localhost ([::1]:43150 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mkSO8-0008Ss-Nt for larch@yhetil.org; Tue, 09 Nov 2021 09:46:16 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46142) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mkSNu-0008Qe-Gd for bug-guix@gnu.org; Tue, 09 Nov 2021 09:46:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:49818) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mkSNu-0003Ql-8F for bug-guix@gnu.org; Tue, 09 Nov 2021 09:46:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mkSNu-0001si-6A for bug-guix@gnu.org; Tue, 09 Nov 2021 09:46:02 -0500 X-Loop: help-debbugs@gnu.org Subject: bug#24937: "deleting unused links" GC phase is too slow Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Tue, 09 Nov 2021 14:46:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 24937 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 24937@debbugs.gnu.org Received: via spool by 24937-submit@debbugs.gnu.org id=B24937.16364691077141 (code B ref 24937); Tue, 09 Nov 2021 14:46:02 +0000 Received: (at 24937) by debbugs.gnu.org; 9 Nov 2021 14:45:07 +0000 Received: from localhost ([127.0.0.1]:33131 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkSN1-0001r7-9h for submit@debbugs.gnu.org; Tue, 09 Nov 2021 09:45:07 -0500 Received: from eggs.gnu.org ([209.51.188.92]:45024) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkSMr-0001qB-VM for 24937@debbugs.gnu.org; Tue, 09 Nov 2021 09:45:05 -0500 Received: from [2001:470:142:3::e] (port=42980 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mkSMm-000311-MW; Tue, 09 Nov 2021 09:44:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=NEsvPAoIboauvgGdWEv4VETmqnJYGYUInlf47meHIs4=; b=iCKj4CS3UpSRDF+ZevUi rGzFmFPw3/rdNonQOCY15bb3+iK0K5Zt3aRuDQ07OwuT43tXESR7TsdFZOx7KWzDkhOv3pklrxhri 4IWHlLlyaZNsndzKGooOtU8M5evaiaLf/0PrJw1sYRhwix3jfHEHlQLobUAuHC1yKB3ZYU5v33hL1 WflBs6R1zJgtGVW9hPiTMYf4mNk6hEtflOYV9OmIaXy/ev6uNt5Uk7P7nTvEWFgVrtGrKDKwcajhm Nd+B3Y+QknRXn/rcJPCVcBJJshoKvvWwsyhK31HkyAd4QTGCI3NSCfofH6Bp5BJg6o8mbuYzvnoyH 1iaU7at4C0LFaQ==; Received: from 91-160-117-201.subs.proxad.net ([91.160.117.201]:63044 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mkSMm-0005Z1-7B; Tue, 09 Nov 2021 09:44:52 -0500 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <87wpg7ffbm.fsf@gnu.org> Date: Tue, 09 Nov 2021 15:44:49 +0100 In-Reply-To: <87wpg7ffbm.fsf@gnu.org> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'s message of "Sun, 13 Nov 2016 18:41:01 +0100") Message-ID: <87pmr9l76m.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Maxim Cournoyer Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1636469178; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=NEsvPAoIboauvgGdWEv4VETmqnJYGYUInlf47meHIs4=; b=aLBbl2U4WY9L+FhhDbeISb4cU0MZ8D/2I2BoNmhbsffJQZ4Lx7+cOEmldCB7h0Rd5L8XDG ZCYJJ7dz71Xo47CPe+Iy7DBeZIYlVQwql3TG3/x2YNhe6pE2qAy4EKhHhdP6cYZU3YtTXB Wp3cx0rh8SZYn2L28GLDc+dlWZb+UPzu0ma9aPurGbXmGhrDMnOmy3DrXJWGAGXC7Q0QDO UwdGhjQznMZi0GVRFypQPCqBm/7xI3V+kheGre4zZ0sWWB6Pkh3fTfsRinuz68JsKDhJyk IOj7iGvbLYAd6dp1clfF5tXWF6BsrhM5LroriNCpbHkhmtDIOzlousLEpM2lIA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1636469178; a=rsa-sha256; cv=none; b=HW3Ag1piOPWiZc1bNDeJwnShU1Gt3PSeXnw+rU0RSi5yInB3KsCRctAQ+dJk81lLbE2jdK K55o/TfhVS3ml5cE6crt8xroRLoZLqxEjpkxnDHxr5G4wJ6quhUiZXals50jMUK9F9QqpY Cvlf5IJhBIVOHDs3l60G6mPKkzEffjf3Y77gtQYhp8+dX+TGeAbVluBRvtlS8vDcXeHSN7 UtxKBlpKpnLLl4oy6ktrG3H7E+6u0Y3ulf0nhaFi4MxTjFvPw8sICy7w7Lfazp5XlXrjp6 NMWwKzn5ln4MBxmPrurajky7nOeOedMyHDpIOSk/deyoyQpRBbl6nWz2RkD9Gw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gnu.org header.s=fencepost-gnu-org header.b=iCKj4CS3; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of bug-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=bug-guix-bounces@gnu.org X-Migadu-Spam-Score: -2.92 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gnu.org header.s=fencepost-gnu-org header.b=iCKj4CS3; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of bug-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=bug-guix-bounces@gnu.org X-Migadu-Queue-Id: 7C231A97C X-Spam-Score: -2.92 X-Migadu-Scanner: scn0.migadu.com X-TUID: nwrtFwU1+rOS --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi! ludo@gnu.org (Ludovic Court=C3=A8s) skribis: > =E2=80=98LocalStore::removeUnusedLinks=E2=80=99 traverses all the entries= in > /gnu/store/.links and calls lstat(2) on each one of them and checks > =E2=80=98st_nlink=E2=80=99 to determine whether they can be deleted. > > There are two problems: lstat(2) can be slow on spinning disks as found > on hydra.gnu.org, and the algorithm is proportional in the number of > entries in /gnu/store/.links, which is a lot on hydra.gnu.org. Taking a step back, we could perhaps mitigate this with heuristics to reduce the number of entries in .links: 1. Do not deduplicate files with a size lower than some threshold; 2. Delete links with st_nlink <=3D 3 (instead of <=3D 2); that would prevent *further* deduplication of those files, but they=E2=80=99d alr= eady have two instances sharing the same inode; 3. Stop deduplicating once the number of entries in .links has reached a certain threshold. For #1, a key insight is that about 30% of the files actually deduplicated (in my store, where /gnu/store/.links has 2.2M entries) are smaller than 1=C2=A0KiB: --=-=-= Content-Type: image/png Content-Disposition: inline; filename=size-deduplicated.png Content-Transfer-Encoding: base64 Content-Description: sizes iVBORw0KGgoAAAANSUhEUgAAAhcAAAFtCAIAAAA76t8lAAAABmJLR0QA/wD/AP+gvaeTAAAgAElE QVR4nOzdeXwTZf448M8zV45Jmoa2tND0QFSEKhQUj9WCK4tiRf2KCq2oVReQRQStuKLrulpxBV2t IkoXUKjSxbIuXlBPXJF1l9/i1a5y7Qq1HC0tNA1J2pwzvz8GYknS9HomadrP+4++mifJJ595JjOf zPUMkWUZEEIIoR5hYp0AQgihOIZVBCGEUM9hFUEIIdRzWEUQQgj1HFYRhBBCPYdVBCGEUM9hFUEI IdRzWEUQQgj1XOdVZPfu3U8++eT06dOvuuqqG264YfHixV988UUUMguyfv36a665piuv/Pbbbzds 2NCz9/bGgw8++Lvf/a7rnxiaZ1jtQ5WVld100009Sy9q3dKbJLtCjbQ//vjj22+//aqrrrruuutU itk+7eh8Ibuii1/CLlJjGtsvVtF8b3vUp6v33U5r0qjopIq888479957b21t7Y033vjwww/PmjVL FMUnn3xyx44d0cmvB0LnUGJiYlZWVjRz6MondvGbRCv5vtAtVFBPu6Wl5U9/+tP48eNfeOGF559/ XqWYfbO36VaRgYDKfOxn3c5FeG7Xrl0rVqzIy8t79NFHWZZVGq+55pr9+/f7fL6opEfH1KlTp06d Gnef6PV6eZ5XL/nodwsV1NM+dOiQ3++fMmXKWWed1YO3K7Op05hx2tsoCM7HUJGqyJtvvikIQnFx caCEKM444wzlnz/+8Y8HDx5cuXJl4Kni4mKDwVBSUgIAZWVln3766dKlS1966aV9+/YlJyfPnj17 woQJ77//fmVlZUtLy6hRox588MGUlJSuRGvvwIEDFRUVP/zwg9VqTU5Ovuiii+666y5RFAHg5Zdf 3rRpEwBMmjQJAJKTkysrK9evX79hw4YtW7Z8/vnnTz755OrVqwOTAACLFy9ubm5etWoVAOzfv/+1 116rqanxer1nnXXW7NmzzzvvvI76Z9u2bevWrauvrx8yZMidd97Z/qnAJwLA0aNHV61aVV1dbbfb ExMTR4wYsXjx4rVr14bmqfTYI4888uqrr+7fv//qq69esGBB+1CKXbt2vfzyyz/++GNiYuKNN954 8803d9qBkbtFefFXX31VXl7+v//9j+O40aNHz5kzJ/CbS0nsD3/4w5///Ocff/wxOTn5hhtumDZt Wkc901GSX3755WOPPbZy5cqzzz478MoHH3zQ6XS+8sorQRHC9pterw+k3dTUVFBQEPSu8ePHL126 tOuzctmyZR9//DEAzJ07FwCmTZt2zz33dKU3gmZTpzFD52NAhFQ76oSgCBGWiMBHrFu3rqamxu12 Dx48+KqrrrrlllvCfisiL4adflCobs10iLhYRe6ryO/tysrqwQcffPXVV+vq6oKWrPaC5mPYjo3c UWG7vTeTFnORqsi33347evRoo9HY4+gul2vJkiXXX3/9jBkz3nvvvSVLltx0000//PDDrFmzvF7v qlWrnn766R7sQzh69OiQIUMmTpyYkJDQ0NDwl7/85X//+9+LL74IALfffrskSR9//PHq1asBIKj+ /eIXvxBF8dNPP50zZ47SYrVav/nmm9mzZwPAjz/+uGDBguzs7OLiYr1ev3nz5kWLFr300kvtv/0B 33333ZNPPnnJJZfMmzevpaXllVdekSQp7I/ZJ554wuPxLFiwICkp6fjx41999ZXP5+soT4fDsXz5 8t/85jdnnHGG1+sNjdbW1lZSUlJYWJiRkfGPf/yjrKxMq9Vee+21kXsscrcAwNdff/3www/n5ub+ /ve/d7lc69atW7BgwapVq1JTUwOJrVixYt68eRkZGZ9//vnLL79ssVguvPDCsB/XUZKXXHJJSkrK 5s2bi4uLlVcePnz422+/DTzstN/av2DQoEFr164NPNy9e/ezzz575plnQndm5dy5cy+88MIlS5b8 8Y9/zMrKUpbzrvRGhNkUNmZHIqfaaScoIiwRALBv37777rtv6NCh8+bNS0lJOXz48P79+6EL34ru flBY3ZrpkReryH3V9UUyLLvdvnLlyt/+9rdZWVlffPHFCy+80OmS1VHHRu6osN2u6qSprcMq4nQ6 W1tb09LSehO9ra1t/vz5F1xwAQCMGjXqpptu2rp16+uvv67RaACgtbV1+fLlVqvVbDZ3K+zFF198 8cUXK/+PGTNm+PDhd99994EDB4YNG2Y0GkVRJISEzVwQhIkTJ27dunX27NmEEAD47LPPZFm+4oor AGDVqlUmk+m5557TarUAMH78+Dlz5qxfvz50YwgAysvLMzIySkpKlDgWi2X+/Pmh89Xn8+3bt++B Bx6YMGGC0hL4J2yeXq934cKFY8eO7WjaXS5XcXGx8itm3LhxNpvt9ddfz8/Pj7wKiNwtALB27drU 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 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable =E2=80=A6 but 85% of them have at most 4 links (thus, saving up to 2=C2=A0K= iB by deduplicating): --=-=-= Content-Type: image/png Content-Disposition: inline; filename=nlink-small.png Content-Transfer-Encoding: base64 Content-Description: link counts for files < 1KiB iVBORw0KGgoAAAANSUhEUgAAAg4AAAFtCAIAAADgUXUHAAAABmJLR0QA/wD/AP+gvaeTAAAgAElE QVR4nOzdeWATdfo/8GdmMrnTNLSlLRQo91GBooJ4AH4VFRAv5Gj5qbgrKIssaJUF0UUsuFBXRRS1 iyiHViiryCoUF8ED1hXlbF0uFYicbaG0aZLmns/vj8Fsty2d0ibTou/XX+0kmeeZz8zknUkmE44x RgAAABfHN3cDAADQ0iEqAABAAaICAAAUICoAAEABogIAABQgKgAAQAGiAgAAFCAqAABAQSSj4uDB g/PmzRs7duxtt912zz33zJo1a9u2bRGcfwO99957t99+e0PuuXfv3tWrVzfusU0xY8aMp59+uuEV a/dZp+qzys3NHT16dOPaU21YmtJkNOZTj+qrrIbqg9PwgVKh56ZoyCa3efPmBx544Lbbbrvzzjsj VbfGPBs3tlFVVla2ZMmSP/7xj8OHD7/55puLi4ur37p+/fqbb775+PHj4Sk//vjj3XffPWnSpIqK CvrfpZDvLBs6dOi4cePmz59/6tQpNRen4TSRmtH69euXLFnSoUOHe++9NzEx0e1279mzZ968efPm zRs4cGCkqkTW3r17169fn5mZGZ4SGxvboUMHNXtoSMXafTZ6Vg3REoblMvWrGSjFTa6iouLFF1+8 4447hg4dKopiRIrWnmcLHM8zZ8588cUXPXr06NWr1759++q/88GDB2fNmtW2bducnByLxUJ1LdFj jz2WkJAQCoVOnjy5du3aAwcOLFu2zGg0RnEZGiUyUXHgwIElS5YMGjTomWeeEQRBnnj77bcfPXo0 GAxGpIQ6Ro4cOXLkyMuuYiAQEEUxes2rPyzNRR7JRj/8tzNQJ0+eDIVCw4YN69q1ayMeXuc4155n c40nY+z06dNt27atfVNaWtqHH35IRB9++GH9UfH999/Pnj27Y8eOCxYsMJlM8sTaS9S3b9/27dvL f8fFxS1YsODgwYNXXXVVZJYkciITFWvWrNFqtVlZWeGckHXq1En+4y9/+cuJEyfefPPN8E1ZWVlm szk7O5uIcnNzt2zZsnDhwtdee+2HH36Ij4+fNGnS4MGDP/nkk/z8/IqKil69es2YMSMhIaEhc6vu 2LFjeXl5+/fvLy8vj4+Pv+aaa37/+9/Lq+31119ft24dEd18881EFB8fn5+f/957761evXrjxo1f fvnlvHnz3nrrrfAiENGsWbPOnz+/dOlSIjp69Og777xTVFQUCAS6du06adKk3r17X2x8vvrqqxUr Vpw5cyY5Ofl3v/td9ZvCFYmopKRk6dKlhYWFTqczNja2e/fus2bNWr58ee0+5RGbPXv222+/ffTo 0eHDh0+bNq36rGQHDhx4/fXXjxw5Ehsbe++9944ZM0ZxAOsfFvnOu3btWrly5U8//aTRaPr06fPw ww+HXyjJjT377LN/+9vfjhw5Eh8ff88994waNepiI3OxJr/++us5c+a8+eab3bp1C99zxowZbrf7 jTfeqHM+drv9tddeO3jwYFxcXPWi9WwD4YZrjGT9q6we1Qfqkobi008/ffnllx944IH77ruv9q1H jx5dsWJFUVGRz+dr3br1bbfdNn78ePmmetZFQ3a6Oturcxuo3k9OTs7mzZuJaPLkyUQ0atSoRx99 tP5mLjbO9c+z9iZdfUwutgPWuR818HX68ePHP/vssy1btnTo0GHhwoW178BxXEPms3fv3meeeaZ7 9+7PP/+8wWAIT69niYhIPvJomS+vIxMVe/fu7dOnj7ycjeP1eufPn3/XXXeNGzfu448/nj9//ujR o/fv3z9x4sRAILB06dIFCxa8/PLLlzrbkpKS5OTkIUOGxMTEFBcXv//++z/99NPixYuJ6IEHHpAk afPmzW+99RYR1Qi56667zmQybdmy5eGHH5anlJeX79mzZ9KkSUR05MiRadOmpaamZmVlGY3GDRs2 PPnkk6+99lr157Wwffv2zZs379prr50yZUpFRcUbb7whSVKdr8Wee+45v98/bdq0uLi4srKyXbt2 BYPBi/XpcrleffXVP/zhD506dQoEArXn5vF4srOzMzMz27Vr969//Ss3N1ev199xxx31j1j9w0JE u3fvfuqpp9LT0//85z97vd4VK1ZMmzZt6dKliYmJ4caWLFkyZcqUdu3affnll6+//npKSsqAAQPq LHexJq+99tqEhIQNGzZkZWXJ9zx16tTevXvD/9bg9XqfffbZkSNHjhkzZtu2bdWL1rMNXGwkG77K 6tfAoVi9evXy5csff/zx4cOH157JDz/88Nhjj7Vp02bKlCkJCQmnTp06evSofJPiumhce4rbwOTJ kwcMGDB//vy//OUvHTp0kHO3IRtGPVtsnfO8mPp3wDr3o/qHoqKi4osvvvjss88OHz7cunXrm2++ +dZbb23IGNZp586dy5Yt69u373PPPafT6eq/s8/n83g8kiSdPHly5cqV8fHxffv2bXTp6IlAVLjd 7qqqqqSkpKbMxOPxTJ069eqrryaiXr16jR49euvWratWrZIHuqqq6tVXXy0vL7fZbJc024EDB4Y/ Kenbt2/nzp0feeSRY8eOdezY0WKxmEwmjuPq7Fyr1Q4ZMmTr1q2TJk2SX0d8/vnnjLGbbrqJiJYu XWq1Wl966SW9Xk9E/fv3f/jhh997773ahzVEtHLlynbt2mVnZ8vzSUlJmTp1au3nnWAw+MMPPzzx xBODBw+Wp4T/qLPPQCAwffr0fv36XWzZvV5vVlaW/MLwyiuvdDgcq1atGjFiRO09v7r6h4WIli9f npiYuHDhQnk+V1xxxf33379mzZrp06eHG8vKyurevTsRjRo16tNPP/38888vFhX1NDly5Mg1a9ZM njxZfj24ceNGg8Egj39tHo9nypQp11xzDRFdc80133//fbhoPdvAxUaygatMkeJQMMbeeOONjRs3 zp0797rrrqtzJn/729/MZvOSJUvkja16n4rronHtKW4DVqu1VatWRBQXFxe+T0M2jHq22DrneTH1 7ID17Ee1+f3+f//735999tnOnTuNRuOQIUMmT57cu3fvBh46XMwbb7zRpk2befPmNeTNTPkoSpaU lLRw4UJ5oVqaiH2s3USiKIbfnouNjbXZbP369QsHcmpqKhGVlpZealQEg8H169dv2bKltLS0qqpK nnjixInw00Q9brnlloKCgr1791555ZVE9Nlnn1111VVxcXHBYHDfvn133313eI1yHDdw4MA6DyoZ YwcPHszIyAhvfD179qxzT9BoNJ07d3733Xc9Hk+/fv0UOxQEIT09vZ47cBxXfScZMmTIl19+WVxc XOc7sA3k9/sPHTqUkZERzpvWrVv36dOnsLAwfB+dTic/+8jatGlTWlraiCZvv/32d999d+vWrXfc cUcwGPznP/95yy23XGwvEkUx/BTMcVzHjh3DRRW3gRoj2fBVpqj+oZAk6fnnn9+1a9cLL7xwxRVX 1DmHQCBQVFQ0evTo2gvekHXRlPYuSUOaUdxiG6j+HbDh+9GBAwdmzpwZCASuvfbaZ5999pprrtFo IvN8OHDgwB07drz//vsTJkxQvPPs2bMTExMZY+fOnVu3bt3MmTMXLVrUlJ00SiIwNCaTyWg01jhp 7FKZzebqSS6KYvW3s+RwrvNtlvotXbp0w4YNEydO7NWrl9ForKysnD59ut/vb8hje/funZSU9Nln n1155ZXHjx//8ccfZ8+eTUROpzMYDH700Uf/+Mc/wneWJEmSpNozcTqdgUAgPj6++sQa/4Y9//zz K1eufP/9919//fWEhITRo0fXcz5lTExM/a99TCZT9Rc18ku2c+fONWUrdLlcjDF5VmE2m81ut4f/ rfGmsCAI9Qx4PU3abLYbbrhhw4YNd9xxx7Zt2yoqKup596z29hMuqrgN1BjJS1pl9at/KDwezzff fNOnT5+ePXtebA4ul0uSpDqrN2RdNKW9S9KQZhS32AZS3AEbuB9pNBq9Xu/1et1ut9vt9vv9kYqK Rx55JC4ubtWqVVqtVvHExa5du4Y/1u7fv//YsWPfe++9mTNnRqSTCIrM0PTr12/Xrl1Op/NiH1do tdpQKFR9itvtNpvNjSvX8Llt2bKl+meJhw8fbngVjuOGDh364YcfPvbYY5999pnBYLjhhhuIyGQy 8Tx/5513NuR0covFIoqi0+msPrGysrLObuPj45944gkiOnbs2Keffvrmm28mJCQMGTKk4T1XJ2/9 Wq1W/vf8+fP0y1Neo1eH/IwszyqsvLw8JiYm4k0S0V133fX4448fPHhww4YNvXr1asixYG2Xug1c 0iprCpPJNGfOnNmzZ8+fP7/6qYPVmc1mQRDOnj1b5031r4vI7nT1i/iGUQ/FHbCB+1G3bt3y8/N3 79792WefvfLKK6+88sq11147dOjQ/v37Nz0zHn/88UAgsGzZMq1We++99zbwUWazOT4+PvxZVIsS ma/gZWRk+P3+l19+ucamefTo0R9++IGIEhMTS0tLw7dWVFScOHGi0eUaODfGmNfrrb5vfPXVV9Xv UP21Z51uueUWj8ezffv2LVu2DBo0SH5DTKvVpqen79u3Lzk5uf3/qj0HjuN69uy5a9eu8JTi4uKT J0/Wv4AdO3acPHmyKIrHjh1rSJ91YoxV/wrkF198EX4XuP4BrKecVqvt2bPnV199FX5saWlpUVFR oz+Iq6dJIurTp0/Hjh3ls1kUP5C/2Pzr3wZqa9wqa5w+ffosXLhw586d8+bNq/OjV1EU+/Tp8/nn n3s8nho3Ka6Lpux0l7rJRXzDqL9WA3fAGvtRbTzP9+/ff/bs2fIrwsrKyj//+c9jxoxZvHjxJb2s rI3juBkzZtx4441vvPHGJ5980sBHVVRUlJaWWq3WppSOkshERa9evR599NHt27c/8sgj+fn5X331 1caNG+fPn//II4/ILzRuvPFGl8v19ttvV1RUHD16NDs7u/4PV+vXwLlxHHf11Vdv3Ljx559/9ng8 mzZtks/GC0tNTQ0EAuvWrTt06FCdSZ6SktKzZ8+33nqrtLT0lltuCU+fPHlycXHx9OnT//nPf+7Z s+fLL79cunSpfBJtbRMmTCgsLMzLy3O73adOnVqwYEH4RXR1JSUl06ZNW79+/a5du/bs2bNo0aJg MCh/fqPYZ530ev2yZcvWrVu3a9euV155Zdu2bQ888IA8UPUPYP3lHnzwwTNnzsyaNetf//rXli1b nnzySb1eP27cuAZ21fAmZXfccUdRUZHFYrnxxhsbMX/FbaBODVxlEXHFFVfk5OTs3r1b/ki29h0e eeQRl8v16KOPbtq0affu3Rs2bAifvlX/umjKTteITS6yG0b96tkB69mP6mEwGG699da//vWva9as ycjI+P7775cvX17nPeUXN9u2bTty5AgRfffdd9u2bfvPf/5T+548z8+ePfv6669fvHjxp59+erHS hYWFO3bs+OabbzZs2DBjxoxgMHj33XdfwlioJWIfa99zzz3du3f/4IMPPvjgA4fDYTKZevToMXfu XPnkk3bt2s2ZM2fFihXr1q1LTk6+//77N2zY0OhaDZ/b448//tprr02bNk2SpCuuuGLu3LnVTw65 /vrrR44c+e677zqdzri4uBonj8tuueWWV199NT4+vvqZG507d37jjTdWrly5dOlSl8sln7t9scPh 9PT0Z555ZsWKFatWrWrduvXYsWPrfN4xm83t27dfv359aWmpRqNJTU3Nzs6WTxVvSJ+1GQyGZ599 dsmSJfJXFiZPnhz+7k/9A1h/uauuumrhwoUrV658/vnn5dPn582b18CzMy+pSdmQIUNeffXVW2+9 tdFP1vVvA3Vq4CqLlLS0tJycnJkzZ2ZnZ8+ZM6fGux9du3Z99dVXV6xY8eabbwYCgcTExGHDhsk3 1b8umrLTNWKTi+yGUb96dsB69qOGiI+PHzdu3Lhx48rKyuq8gyRJzz33XPhfObYHDhz4/PPP176z IAhz5syZM2fOiy++KIqifKZfDa+88or8R2xsbKdOnV544QX5PJqWhmOMNXcPABf16aef/vWvf12+ fHmd7+8BgDpaysmyADUcP3789OnTy5cvv/baa5ETAM0LUQEt1GuvvVZUVNSzZ88GfqEMAKIHb0AB AIAC/LQRAAAoiMwbUIsXL16xYsV//vOfhx56KDc3Nzzd6XROmjTpk08+sdlszzzzTPhqJxebLnM4 HPLPgLR8sbGxRNTs3SYlJZWXl/t8PpXr2mw2SZIcDodqFbVabVxc3JkzZxr8CMaxEJF86MwxSeI4 IiYRCxERTwHBW0rMR8S4YICIcSxILEQkcVKIsRBPLNYaU1VZFgx4iQUDxg5CoFzwnOJCQUY8Rz5O ChAvBHVtmWAWfKfFqp855mMkSNpEIj8X9EiCSeM9yUsexkIcCSFtAhdykaDl/RVcyCuJsby/jJOq iAmBmO58oMIQOhvgzVKI8QEH44gPeCRB9McNkHiT1vG96D7KByuJhTgKkiQRY8RCpBEDpq6VqY+Y T+brKnZJglHSt2UsGDR3Chrb8b4yQ+kW4jhP/BCN/7zG+RMveQKmjs52/0/jPR0rul0uN+c7zzFf wNTFG3+jvuxf2sr/+GN6udqOk7SxFvs7+vJv/TF9hMB5jftnd5s7XG3HEpGuYrf+/I6AMbUqcThx db/i1J3/Tl/+XcDcpSrxNiJOr9fbKr+uOvG1z9rPH9vXdOojTvL6Y9N1FXtCmhgSDILnpLfVdT7b 1ULgvOnUR0SSO/luPlBuLP0spI13t7mb8QqX3qsuLi7O5/O5XK6GP+RiNG67qXSTpLG4ku9hmprX MWxpv6gRJZF5A+rDDz/UarX5+flms7l6VEyaNOnIkSP5+fmHDh0aMWJEQUHBoEGD6pkuQ1Rcqssr KjjJz3gtJ/n4kFvSWATPGUkXp3EfY2KMUHWScQJHIU7y8f5KPuDkJDcfcHBSUPCfI440gfOiyAeq HFzIT8RxkpdYiJjEMT8nBTjJz0kekkIcScQYcUSMiGPEuF/SoikiMpNaGFEErnYRdqFJRhqOgozX cFKQiCeSqt9KxBHHAqbOoq+EglVEvCQYiCQ+5JF4fUifJPhKmaCXRJum6ueApYfW8T1xnM/aV+co cnZ4wGfpHfvTy+42d+vPfxswdSy74oXafZhP5luPvu5OvlNf9m+/pef5tOfjj75sOLfNaRtsLC7g A2WehKGc5DcVf+JKydCf28YHyp0dHjSd/riy48MxR9/wJNxEnGAs3kBErrbjxKqjgr+seEA+cQ39 akikokJ0Hkrc+f/cbe8VvCWi63Dxtf+okViIiks2derUYDAYjopAIGCz2QoKCuTrwU2cOJGIli1b drHp4fn4fD71n/UaR/7+drN3azKZvF5vja/Kq6D24vMuu1C2W7J25ysOCGe/YeZU8p8XHIeZaBUq Cjm/g3Fa3lfCSCAKEaelkJfpW/Pe08zQjvOcZPrW5KsgXuCkAONFTvIzTsOxEOM4EvRcwM10rTj/ ecZrSWPkvOckQxLnr+BCPqaL5wIOYiHG64gj+QmRC/qJGNMYiBNJ8nMhD5FExDNeQ8RzxBhxHJOI JGISMXbhaZQjIo44/sITK5OIiDiOGBGTiOMZr+VCXuLkGfzyLMyIcRqO5OMVnkgijv/vPIkjjui/ +xr3S0TIFQX5KKfaTf/FeB0n1b+BhefDhWJ7CxUHiQUYL3KcQCEf43iO471Xztfvmkk8TxLzXpWj 3zOTeB1jjOsznR1eyTQWzlsiWTrxVWeYaHGN3GP490TebecrDvjTngi0vdO8qT/TJXiue0so26M9 sEiydvf2zQ61vo5CXstHXVz3/MCEmr8GYfp0sLf/y6G4q7lQlXldV+eoI5b13UOj91cxs/aHpbrC Oc4xxfrdf+Idh0IJA7WH35RiunrT5xMxw7ePhhKu9Qx8k4jMG68O2fp6rnubiMybrvMMzA3Z+jRw 49Tr9aFQqBEXjqs5n71PM328r+fjRGTaOsJ3xcxg4v9cIyQaFy9pgaJ4BpTdbne73eFrSaanp+fl 5dUzPYwxVuel91ogOWibvVt5xJqljeorSzy10bArK9j6Bv2uLKYx+Xo9odv/AvFa7xUzjTuzAm1v Y2KseGazp9cM3aHXOZIkcwemiaGQJ5hwrVj8uT/lLvHM1lB8f77qVEjfmvOdZ6YUvvKHQOvB4ol1 vq4P6w8sCrS7Q/vTSiZYmTaG4zQkmDnpnGTuxPnLmGCQzJ2F8r3ECSFrDwpWCS47cTwTY4nXcP4K ClYxjZ6TQpwUIE7DiCMKEZMuhAHR/7zCv/BMzoiI8RridFzQRRxHHP/L0zpHxIhjxPgLf3CMiCPG /RIE/H8DgKv2cl6edXgCIxI0FArPs9axS8OPORj99/hJPrQIL00oSEQkEXHEpMAvvXBMYsQkxkIc 0YVgk1coCzLGiBgLBaRfYlKSiA96ieMY8SzklySJCwWISJKIcbW2PU64cJ9ggIgkRsQJJAUlJjEp RIwkSWLEk+RjnEDESAowjqdgFXECC/kubFSMEZMkSSImsZBfYtwlbeQReSZhvywIEbGQ71J7+NWI YlTIh37hCwharVb5EmwXmx7m8/nUfPu7KeQrZTZ7twaDwe12q39ww/O8JEnOs3brsTdF91Gtc//Z Pq94W13XpuwmwVtS2uqO9v6niTh3QMPHXqU5uzNo7u5LHKE58y+/pQfvP69x2h1dsmJ+XlqZcl/c iXUesQ0vWvxkFAQzCzGONzKfWyAx4K3QkOCrculZMBiUtEQhXsuYIHrLApZ4keO5qlMhXbzgLeYc hxhvJOblnEc5FmTEEZM43zkinihIHHFBL3E8o2pvYnDcLyd3/JITTA6AUPgZmwv5ifwXXvsziSP+ wh2ISGIXDjgufChC8rMtEZEUrBY81dOIiCSqfoAR8v1Sn9XMCSIu6FNKi/BDmOAo+uXYRaILR2YB Ysyw9+lwXcPep4k4CnmDxi7igSUU9PHceRL0nPMoF6piwSrLx2lcoJIJpoCps+7AS8KxvxMR5z+v 2z1TdP7g6DzFb+nVascjVYnDdeU7XW1GV7h8RDW3vWC7B21f/74qcZju/A5nu/EOp0fT+RHTpluF 2OvE0i2SJkb7ZWaISbpz3/nEpJAmRqg8wn7IM5b883z3WbFHFovbHiDimd/Jn/lS+PdU0X3Ur2tz ntpQg/c1jUYTkTeg3PF3J307Jlh+RPCWhELSeW1P9r89yO9C/+pFMSrka7Q5nU75AM3hcMjxcLHp 0PJpPCdif3xJU3XcEz+Yk/yW46uIE8yaGE/C/znbjksommYs3uRtdZ2kidHQaY4jSWPhg26/uYfW eSCoS/LH9jafWONuM9p84n3iyGftZz3yis92dasDc4PGjpaf3yES9Oe2ya/mOS5EjCOSNJ7jxGli jv1NEozGYytI0IpVx4kjxglax/eM44k4jecEYxzPhYhJxHFcyE2MZzxHjEgKcESMI/bfT18Zd+EJ lWMkMJ6X/yKq9la/fBzAESe/9OaIcRomWDjm50JVROzC3YhjvEYSYxhvEgJlXKiKGCPimEZHkvwi neOYjygkH2cwTiSOcYyIQiRJjBc4SSIWIo5nop6kEM8CF/q88NKVEc+HtK2ZaBK8p7mgRz4QuPAu mdwxp/XH9K7oPMVy+u/6sm8kjTloSOFYMGDuGtS35QMOY3EBEedJvJnzV2pdh/igO2Dp4mw/QVN1 3KbzVTpdvL+ck7wBU2dP/BB92b+1lfsDMT1dyXcz0WI6udZQ9o2z3Xg+6NA6f6jo8kRV4i1EFDB1 0p//xpPwf574un84yJ18Z8DcRXf+26qEm7zxg4jI3W2atv1NgZ+3u9OX+M3djMWbOMlb0TVLX7HL 03qoJJg0VT+XXL0qYOnuSbzVWFxATDqfNp8PVBrOfu6Nu6Gq9S0X+/w8qoKmjmeuLzCWbpHiLFVJ wxj3G/0uWhQXOzU11Wg0FhUVydfuLiwsTEtLq2c6NC+OBQXP6ZCuNRP0Osc+648vC4EKd9JIb6sB 8f+ZJbp+9MZepfGVutqNc7a/v9WBZwVfqevOQvKcs3x6rTv5Dp+tv6tdhvn46oCpE0chYix+76Oc FGBE8UWPEQtqvKdijr0V1Lc1nlkf0iczjU7jLQ4YOwu+c35LTxK0AWMqEwxEAvEcI4FpzJLGwHgT E3SSYCReJwkGwRAbY211rtxJnEDEMUFPLMQ4ngkm4jjGiZIuIbI7s8qnDCQmJjocDq/X24jHehNu rHN6efen6n5AHNnat3ecOFH9A8uA+X9+7M/Vbryr3fjaDw1YegQsPervx2/p5bf0qj5FSrzeSV3k v91tR4VnVeOBkmBytb3wO/CSxuJsf3/9haItpGvtrGsQflMis1MFg8FgMBgKhUKhkNfr1Wg0Go1G FMXMzMzs7Oz8/PzDhw+vXbtWvlrZxaZDMxKdh1rvmUQcxwVc5b3m2g7NL+/xTNDY3nbg2Rj70vM9 51Ul3mr7IUd3fJWj4x+IyG/tYzj7BdPFS0IMI43+/Dc+W39fTB+d+Vux6rgzZbw3fpDWeaCi+8yQ 2EqssgfMXSWNmVio4Wew1Emr1UpxcT5q+MmyABABkYmKuXPnhi+suGzZspkzZy5cuJCIFi1aNHHi xJSUFKvVmpOTEz4j9mLTQTV8yG398WVdxZ6AuXtFtydbHX7e0WWaq+0YbeV/Er/7f35rmjv5TiJy pYyPOzC7Kmk4EbnajouxL9O47UFTKjGJC7p451Eu5JVEc8yxZYbSzzXeM6VXLvNbL1zFM2hIkf/w aX/5mdum5QQANJfIRMX8+fPnz59fe7rFYqnz8sUXmw7Ro6vYbfl5JRE5O0zwxV5lO5jNSf7yHnOM JZviCx8TPKd8tquJyB+TxjG/6PpR8J8Lia10jt0h0WY+sdqTdJv55BqfNT3523skwcR4nbP9/Zat txOvqej6RFXibRrPSb+pa+0vKAHAr8Bv9COa3xrRfSRh7+SKrjOIKGHvH0yYryEAACAASURBVEoG rNGf214y8IOgvo3P2qf9ljRX2zGxP75U2eEhQ+ln/pgrqhKHtdn2f4wTAzE9Sq9623Z4QewPf/W1 GnD2yrckwSD4y4L6NsQJ3DULJElyOhxEFNI25tenAX7l/taAk50fuQwuxIeo+HXSVB03nP08pI2v ShxGvMZw7quq5DtcKWOJSHQe0p/9MmhI0ZXvDCbfpXPsC4mtyrvPjj2y2HYoO2Duejb99ZCutbPd /+ND7pA2johKBqypPvOgoeb3rQDg1w2XC/wV0joKk3bcI7qPWk6uSdzzO2JSSJugcf0kf0dLdP8k 6RLKez4bezin7bYhCXsePt87hwmG8m6zigd+VHbFCyFdayJigl7OCQBoOVJTU+Uffg//cTFJSUl1 /pJr4+Co4rKnqfpZOPyJTorxxQ6STzy3nMhzdH3c2e4+YlKbf90iun6oShpuOrm2zfabiSiob1uV NJxxmtNDtgmeUyF9MuOj+GugABAN2dnZal5+ClFxedOV70rY+wh1vMd0tlCnXXs2/XUiIiZd+EIy xxEncMQYpyntv0rrPExEfkt3+dtbjNMEjb+JK50B/Po88MADapbDG1CXN8vPKyq6PxW8dsn569dp K/ZoPCeJyNVufOyPL9oO/6X1nokh0eY3dyMiIs5v6eG39IjshUwBIBqSkpJycnIGDBjQtWvXBx98 MBgM1rhD+A0oxXt+++237dq127x5MxHNnTs3OTk5Nja2e/fu3333XcP7QVRcNkT3EfOpv+sq9laf yFGICXoiIo4nXiQpSES+2CtLrlkbEltVJQ4v7f8uvs0AcDn67rvvvv766wMHDhw8eHDt2rWNu+fn n39+7733rlmz5tZbb929e/eKFSuKiooqKio+/fTTNm3aNLwZRMXlwVi8KfG78brz38UVZVl/eiU8 3dVuvO1gtmbvc7bvHgwaOwRNF95QCpg6V3aa7Go7Gp9DAFympk2bJoqiKIpDhw7ds2dPI+758ccf P/jgg5988sn1119PRBqNpqqqqrCw0O/3d+zYMSUlpeHNICouD9ZjuefSXyvr/dfigeti7Mvkowci 8sQNKr1qOeNFb/KI0qvewZtLAL8acXEXTkE0GAz1XyL3YvdcvHjxXXfd1a9fP/nfvn37Lly48Kmn nkpISLjvvvvOnj3b8GYQFZcJyScJJiJigoEY4+i/V8z3x6SF+s72tM9gnNh8/QFAi7N69eqtW7cu WLAgPOX3v//9zp07jxw54nA46rzExsXgDKjLgyslI75ourvtvfqzX1Ul3463lQBAUevWrbdu3Tpk yBCtVvvEE0/s37/f4XAMGDAgJibGbDaL4iW8uERUXB6cHR4Mmjrqyna4UsbJF/IDAFCUnJz8+eef 33jjjRqNZuDAgY8++uiRI0d0Ot2NN9749NNPN3w+kfxt7UhxOBwVFRXN3UWDyD+A1ezdqvybCmE2 m02SJDV/BFCr1cbFxZ05o95FyC+j36tohPbt25/439+riB69Xm+1WktKSlSoRURxcXER+RU8RWp+ D64Z4bMKAABQgKgAAAAFiAoAAFCAqAAAAAWICgAAUICoAAAABfheRQvCByqMxQXECVVJt0sac3O3 AwBwQRSPKg4fPnzzzTebzebOnTtXv9ih0+nMyMgwmUwpKSm5ubnRa+DyIvjPJX89Ql+xW1/2dfI3 I/mgs7k7AgC4IFpREQwG77rrrv79+5eWlr7zzjsPPfTQ999/L9+UlZVVWlpqt9tXr149Y8aM7du3 R6mHy4vxzCfehBvP9X7pXN9XfZYrDCWfNXdHAAAXROvb2vv37+/Tp4/L5TIYDEQ0ZsyY9u3bv/TS S4FAwGazFRQUDB48mIgmTpxIRMuWLav+2FAoJElSnbNtaXieJ6KIdMvvf42r/DF07atEJHz5AEu5 RepyfwMfq9FoQqGQ+l+8FwSBMabmyuI4ThCE2j/eEj0qj63K5URRDAQC6tRSed2ptnFe0pWULl/R +qxCXkMc999rYhcVFRGR3W53u93p6enyxPT09Ly8vBqP9Xg8lZWVUWossmJiYogoIt0K1pviC//q r3JzLMCf+/pstz9LDb5EcHx8fGVlpd/vb3oblyQmJoYx5nSq916ZKIqxsbGXdPHkJlJ5bOPi4lwu l2rXEUlOTj537pw6yaTT6cxmc1lZmQq1iCg2Ntbv91dVVUW70CX9QNDlK1pR0aNHj44dO86fP3/O nDk7d+4sKCiQ40G+JIvFYpHvZrVaaz/RhEIh1V7pNFEoFCKiiHQb4G1nrttgPP0xcUJZ11kSmajB s2WMBYNB9QdNkiRJktSsy3EcY0zNiiqPrfqrMhAIqBMV8st81RZNkqTL6Jmk5YtWVIii+I9//GPa tGnJyck9evTIzMyUI8FsNhOR0+mUX487HI5wbEBIG+9M/X1zdwEAUFMUz4BKS0vbunVrWVnZ119/ fezYsQEDBhBRamqq0WiU34wiosLCwrS0tOj10HII3jO2Q8/Hff+k4dxXzd0LAMCliWJU7Nix48yZ M2fOnJk3b97BgwcnT55MRKIoZmZmZmdnl5eX79ixY+3atRMmTIheDy0EF/IkfZfBeK3P1r/V/qeR FgBweYniV/AKCgpee+01r9d7ww03bN261WQyydMXLVo0ceLElJQUq9Wak5MzaNCg6PXQQugqvw/p Eyu6zSAiIs5YvNETP6SZewIAaLAoRkV2dnZ2dnbt6RaLJT8/P3p1W6CQxip4SzgWYJyo8ZyUNNbm 7ggA4BLgwh5qCFi6e1sNbLN9aFCXpPGeKr7m783dEQDAJUBUqKTsihyt8yDvP++LvZIJhuZuBwDg EiAq1OO39GzuFgAAGgNR0SRcyNPcLQAARB2iotFYq4Nzzac+ICKu7ejzPecScUoPAQC4LOGnjRrJ ULpVV7HPec+Pznt+1FbsM5R+3twdAQBEC44qGkmssnttA5hgJCKfbYBYdQxvRQHArxWOKhrJa+tv LNmkOfuN5uw3xpJNXlv/5u4IACBacFTRSH5r34puM2x7ZxNRebcZfmvf5u4IACBaEBWN506+S+w5 gYjcFRXN3QsAQBT9dqOCC7ptP/5Vd/7bgLlrRfdZQf1v4vdJAAAa4bf7WYXt8PN8sLKsz8sBc5f4 fY82dzsAAC3Xbzcq9GXfVHT6o9/S09H5j1rXD1wo6j+sCABwmfrtRkXQ2MFw/t9EpKvYJwlm+bRX AACo7bf7WUV5zz8n7J5o/WkxESvr/VJztwMA0HL9dqMiYOp8evDngrc0pI0j/rc7DgAAin7jT5Fc SJ/Y3D0AALR0v93PKgAAoIEQFQAAoCCKUXHgwIGbbrrJYrEkJyc/+eSTkiTJ051OZ0ZGhslkSklJ yc3NjV4DAAAQEVGMivvuu69Tp04lJSXbtm374IMP3n77bXl6VlZWaWmp3W5fvXr1jBkztm/fHr0e AACg6aL4sfaxY8deeeUVo9HYtWvXW265Zf/+/UQUCARWr15dUFCQkJCQkJAwbty4lStXDho0qPoD eZ7XaC6Pz9t5nieiZu+W4zhBENRvQ/3FFwSB4zg1K6o8tuqvSo1GwxhToZDK647n+cvomaTli+I4 Pv744+++++7VV199+vTprVu3vvHGG0Rkt9vdbnd6erp8n/T09Ly8vBoPNJlMBoMheo1FkPxc2ezd CoLQqlUrdXb46uTFNxrV+/Yix3E8zycmqnfemspjKwiCzWZTrRzHca1bt1atlprrThAEvV5vsVjU KferF8WoGDFixH333WcymYho6tSpw4YNIyKXy0VE4fVntVqdTmeNBzqdzorL5FqtsbGxRNTs3SYl JZWXl/t8PpXr2mw2SZIcDodqFbVabVxc3JkzZ1SrqPLYJiYmOhwOr9erTrn27dufPn1anWTS6/VW q7WkpESFWkQUFxfn8/nkJ5yo6tChQ7RLtATR+qyiqqpq2LBhDzzwgMfjOX78+O7du+fPn09EZrOZ iMLx4HA4EPsAAC1ctKLi9OnTZWVl06ZN0+v17dq1Gz9+/KeffkpEqampRqOxqKhIvlthYWFaWlqU egAAgIiIVlSkpqa2bt369ddfDwQCZ86cWbNmTd++fYlIFMXMzMzs7Ozy8vIdO3asXbt2woQJUeoB AAAiIlpRodFoPv74448//jguLq5v376pqanPP/+8fNOiRYtsNltKSsqoUaNycnJqnP4EAAAtTRQ/ 1r7mmmu+/vrr2tMtFkt+fn706gIAQGThwh4AAKAAUQEAAApa2FcZy4roQK7B769KHOO39GjubgAA gKhlHVVUHqWC28jaRbJ0ar3rfk3V8eZuCAAAiFrWUcXxjdRpDPXJ8jkcgfM/Gs5+7uzwYHP3BAAA LeqoQmcj18/ynxrvKUm0Nm87AAAga0lHFZ1G0/43aV1/cygUlPiqpBHN3RAAABC1rKgQ9HTXNir+ t9ftPqfpRpzQ3A0BAABRy4oKIuIESh4UdDioua/VCgAAYS3pswoAAGiREBUAAKAAUQEAAAoQFQAA oABRAQAAChAVAACgAFEBAAAKEBUAAKAAUQEAAAoQFQAAoABRAQAACqIVFcFgkPtfjz32mHyT0+nM yMgwmUwpKSm5ublRagAAACIlWpcL1Gg0Ho9H/ruqqqpDhw733nuv/G9WVlZpaandbj906NCIESPS 0tIGDRoUpTYAAKDponhlWb1eL//x97//vXXr1nIeBAKB1atXFxQUJCQkJCQkjBs3buXKlTWiQqvV WiyW6DUWQVqtloiavVtBEIxGo9yMmrRaLWNMzcXXaDSCIKhZUeWxlcuJoqhOOSKyWCyMMRUKiaKo 5roTRVF+P0Odcr96alyEfMWKFRMmTJD/ttvtbrc7PT1d/jc9PT0vL6/G/QVBUHNXaQpBEIio2bvl OE6j0ai/V/A8zxhTc/HVH3CVx5bneXkZ1SEvnTq1BEHgeV61dSePZLPvm78aUd9Kjh8//tVXX739 9tvyvy6Xi6q9DLdarU6ns8ZDPB5PxWXyexWxsbFE1OzdarXayspKn8+ncl2bzSZJksPhUK2iVquN i4s7f/68mhXVHFtRFJ1Op9frVaec2WwuLy9X56hCr9fzPK/auouLi/P5fPITTlQ1+5sK6oj6GVAr V64cPHhwamqq/K/ZbCaicDw4HI7fyEADAFy+oh4Vq1atCr/7RESpqalGo7GoqEj+t7CwMC0tLdo9 AABAU0Q3KrZv315cXDx69OjwFFEUMzMzs7Ozy8vLd+zYsXbt2upBAgAALVB0o2LlypWjR482mUzV Jy5atMhms6WkpIwaNSonJwdnygIAtHDR/Vh72bJltSdaLJb8/Pyo1gUAgAjChT0AAEABogIAABQg KgAAQAGiAgAAFCAqAABAAaICAAAUICoAAEABogIAABQgKgAAQAGiAgAAFCAqAABAAaICAAAUICoA AEABogIAABQgKgAAQAGiAgAAFCAqAABAAaICAAAUICoAAEABogIAABRENypWrVrVvXt3nU7XvXv3 nTt3yhOdTmdGRobJZEpJScnNzY1qAwAA0HSa6M16w4YNf/rTn956661rrrnm+PHj8fHx8vSsrKzS 0lK73X7o0KERI0akpaUNGjQoem0AAEATcYyxKM36yiuvnDZt2oMPPlh9YiAQsNlsBQUFgwcPJqKJ EycS0bJly6rfJxgMBgKBKHUVWaIoElGzd6vT6QKBgCRJKtdVf/F5nhdF0efzqVZR5bHV6XTBYDAU CqlTzmAweL3e6D0JVCcIgkajUW3dabVaSZKCwWC0CxkMhmiXaAmidVTh8/n27dtXXFzctm1bSZLG jBnzwgsv6PV6u93udrvT09Plu6Wnp+fl5dV+rNvtjlJjkWUymYio2bvVaDRVVVXqJ5bZbGaMqbn4 Go0mJibG6XSqWVHNsRUEwe12q1ZOr9dXVlaqU0sURZPJpNq6s1gsgUDA6/VGuxCioklOnTrFGNu4 ceOePXv8fv/IkSMXLFjw3HPPuVwuIrJYLPLdrFZr7U0nGAx6PJ4oNRZZOp2OiJq9W6vV6vP51Hyt LdPr9ZIkqbn48ktFNSuqPLYxMTF+v1+FJ7gw1Y4qGGMGg0G1dWc0GgOBQLPvm78a0fpYW07aJ598 MjExsV27dtOmTSsoKCAis9lMROF4cDgc4dgAAICWKVpRkZycHB8fz3FcjempqalGo7GoqEj+t7Cw MC0tLUo9AABARETxZNnf/e53L7744rlz506fPr1kyZKRI0cSkSiKmZmZ2dnZ5eXlO3bsWLt27YQJ E6LXAwAANF0Uo2LevHndu3fv3LnzlVdeOWTIkFmzZsnTFy1aZLPZUlJSRo0alZOTgzNlAQBauCh+ r0Kn07311ltvvfVWjekWiyU/Pz96dQEAILJwYQ8AAFCAqAAAAAWICgAAUICoAAAABYgKAABQgKgA AAAFiAoAAFCAqAAAAAWICgAAUICoAAAABYgKAABQgKgAAAAFiAoAAFCAqAAAAAWICgAAUICoAAAA BQ2KivLy8tmzZ995553Tp08/depUtHsCAIAWpUFR8Yc//CE2NnbmzJm9evUaP358tHsCAIAW5aJR 8fDDD58/f17++/Tp09OnT7/++usnTZrkdrvV6g0AAFqEi0bF0KFDb7rppnfeeYcxNmHChH79+o0d OzY9PX348OENnPXIkSO5X8TGxoanO53OjIwMk8mUkpKSm5vb1CUAAIAo01zshrFjxw4fPnzu3Lk3 3njjq6++unnz5sOHD3fo0KFLly4Nn/vSpUvvv/9+IuI4LjwxKyurtLTUbrcfOnRoxIgRaWlpgwYN asoyAABAVF00KojIYrG89NJL33///bRp0/r27ZudnR0TE3NJcxdFUa/XV58SCARWr15dUFCQkJCQ kJAwbty4lStXIioAAFoyjjFW5w3FxcWLFi06duxYWlraY4899tFHH73yyiszZ87MzMxs4KxHjhxZ VFRERN26dXv66af/7//+j4h+/PHHbt26ORwOOXWWLFmSl5f3zTffRGhxAAAg8i56VJGZmXnXXXfd euut27dvf/TRR99777277rpr9uzZy5cv37x5c0NmPWXKlKSkJKPRuH79+uHDh+/cubN3794ul4uI LBaLfB+r1ep0Oms80OFwVFRUNHaJVCV/BtPs3SYlJZWXl/t8PpXr2mw2SZIcDodqFbVabVxc3Jkz Z1SrqPLYJiYmOhwOr9erTrn27dufOHHiYq8XI0uv11ut1pKSEhVqEVFcXJzP55OfcKKqQ4cO0S7R Elw0KhwOx/Tp0zmOGzRokHxAYLPZ3nzzzZ07dzZw1iNGjJD/mDVr1vbt29etW9e7d2+z2UxETqdT PqpwOBzh2AAAgJapvjOgrr322t///vf9+/ev/qZT//79G1FGq9WGQiEiSk1NNRqN8htTRFRYWJiW ltaIGQIAgGouelTxwgsvFBUVHTt27Kmnnurateulztftdv/jH/+48cYbdTrdRx99VFBQ8NRTTxGR KIqZmZnZ2dn5+fmHDx9eu3bthg0bmrQEAAAQZfWdAdWnT58+ffo0br6Msdzc3ClTpgQCge7du69Z s2bAgAHyTYsWLZo4cWJKSorVas3JycHpTwAALVx9UdEUZrN527Ztdd5ksVjy8/OjVBcAACIOV5YF AAAFiAoAAFCAqAAAAAWICgAAUICoAAAABYgKAABQgKgAAAAFiAoAAFCAqAAAAAWICgAAUICoAAAA BYgKAABQgKgAAAAFiAoAAFCAqAAAAAWICgAAUICoAAAABYgKAABQgKgAAAAFiAoAAFAQ9aiw2+1G o3HYsGHhKU6nMyMjw2QypaSk5ObmRrsBAABoIk20C/zxj3+86qqrqk/JysoqLS212+2HDh0aMWJE WlraoEGDot0GAAA0WnSjYv369RzH3X777V9++aU8JRAIrF69uqCgICEhISEhYdy4cStXrqwRFaIo Go3GqDYWKaIoElGzd8vzvF6vFwRB5boajYYxpubiazQanufVrKjy2AqCoNPpeF69d4YNBoM6hURR FARBtXWn/sb56xbFqHC73TNnzty0adPatWvDE+12u9vtTk9Pl/9NT0/Py8ur8UBRFE0mU/QaiyA5 Kpq9W0EQDAaDVqtVua5Wq2WMcRynWkWe53meV3PAVR5blctxHGc2mxljKtQSBEEQBNXWnfyqQv3X T79WUYyK7Ozs8ePHd+rUqfpEl8tFRBaLRf7XarU6nc4aD6yqqqqoqIheYxEUGxtLRM3ebVJSUnl5 uc/nU7muzWaTJMnhcKhWUavVxsXFnT17VrWKKo9tYmKiw+Hwer3qlGvfvv3Zs2fViQq9Xm+1WlVb d3FxcT6fT37CiaoOHTpEu0RLEK2oOHDgwPr16wsLC2tMN5vNROR0OmNiYojI4XCEYwMAAFqmaEXF tm3bTp48mZqaSkRut9vv96emptrt9tTUVKPRWFRUdMMNNxBRYWFhWlpalHoAAICIiNanZxMmTDhy 5Mi+ffv27ds3ffr066+//ttvvyUiURQzMzOzs7PLy8t37Nixdu3aCRMmRKkHAACIiGgdVRgMhvCZ FWazWavVJiYmyv8uWrRo4sSJKSkpVqs1JycHZ8oCALRwUf9eBRHNmjVr1qxZ4X8tFkt+fr4KdQEA ICJwYQ8AAFCAqAAAAAWICgAAUICoAAAABYgKAABQgKgAAAAFiAoAAFCAqAAAAAWICgAAUICoAAAA BYgKAABQgKgAAAAFiAoAAFCAqAAAAAWICgAAUICoAAAABYgKAABQgKgAAAAFiAoAAFCAqAAAAAVR jIqpU6e2b99er9d36tTp5ZdfDk93Op0ZGRkmkyklJSU3Nzd6DQAAQERoojfrcePGPfnkk1ar9fDh w3ffffcVV1xx6623ElFWVlZpaandbj906NCIESPS0tIGDRoUvTYAAKCJOMZYtGucPXv2uuuue/zx x6dMmRIIBGw2W0FBweDBg4lo4sSJRLRs2bLq9/f7/X6/P9pdRYRWqyWiZu/WYDD4/f5QKKRyXZ1O xxhTc/F5ntfr9VVVVapVVHlsVS5nNptdLpc6tQRB0Gq1Ho9HnXI6nU6SpEAgEO1CZrM52iVagige VRDR7Nmzly1bVlZW1qVLlzFjxhCR3W53u93p6enyHdLT0/Py8mo8KhQK+Xy+qDYWKYIgEFGzd6vX 6/1+fzAYVLmuIAiMMTUXX6PRaLVaNSuqPLY6nS4QCKjwBCczmUx+v1+F14tEJIqiRqNRbd2JohgI BFQoh6iIgKeeeuoPf/jD119/vXPnTovFQkTySxj5byKyWq1Op7PGo/x+v2qvdJpIo9HQLwvVjMxm s8fjUT+xRFGUJEnNxddqtQaDQc2KKo+tyWTyeDxer1edcq1atXK5XOpEhV6v12q1qq07nU7n8/lU KBcXFxftEi1BdM+Aslgs7dq1y8jIqKqqeumll+iXBA7Hg8PhCMcGAAC0TCqdLMsYO3r0KBGlpqYa jcaioiJ5emFhYVpamjo9AABA40QrKpxO56uvvnrs2LHz589/+OGH77777s0330xEoihmZmZmZ2eX l5fv2LFj7dq1EyZMiFIPAAAQEdH6rILn+U2bNj333HNVVVUdO3ZcuHDh+PHj5ZsWLVo0ceLElJQU q9Wak5ODM2UBAFq4aEWFyWTatGlTnTdZLJb8/Pwo1QUAgIjDhT0AAEABogIAABQgKgAAQAGiAgAA FCAqAABAAaICAAAUICoAAEABogIAABQgKgAAQAGiAgAAFCAqAABAAaICAAAUICoAAEABogIAABQg KgAAQAGiAgAAFCAqAABAAaICAAAUICoAAEABogIAABREKyr8fv/UqVM7d+5sNBr79u378ccfh29y Op0ZGRkmkyklJSU3NzdKDQAAQKRoojRfn8/HcVx+fn779u0/+uijsWPH/uc//+nSpQsRZWVllZaW 2u32Q4cOjRgxIi0tbdCgQVFqAwAAmo5jjKlQplu3bvPnzx87dmwgELDZbAUFBYMHDyaiiRMnEtGy Zcuq35kxJkmSCl01Hc/zRNTs3fI8zxhTZ1XWqEvqLj7HcRzHqVlR5bFVuZwgCKFQSJ1aKq871UZS EIRol2gJonVUUV1xcbHdbu/duzcR2e12t9udnp4u35Senp6Xl1fj/k6ns7KyUoXGmi4mJoaImr3b 1q1bV1RU+P1+letarVbGmJqLL4piq1atSkpKVKuo8tgmJCRUVlb6fD51yrVt27a4uFidZNLpdDEx MWfPnlWhFhHZbDa/3+92u6NdKCUlJdolWoKoR4XP58vMzHz44Yd79uxJRC6Xi4gsFot8q9VqdTqd NR7CGFPtlU4TyftYs3crH4ep34b6dQVBUHnzUHkZ1R/SUCikTlRIkqTmumuuneLXKrpnQAUCgbFj xyYkJCxevFieYjabiSgcDw6HIxwbAADQMkUxKoLBYEZGBmMsLy8v/HZeamqq0WgsKiqS/y0sLExL S4teDwAA0HTRiopQKHTfffeVl5e/++67oVDI6/XKR4KiKGZmZmZnZ5eXl+/YsWPt2rUTJkyIUg8A ABAR0YqKEydO5Ofnf/HFF7GxsQaDwWAwvPbaa/JNixYtstlsKSkpo0aNysnJwZmyAAAtXLQ+1k5N Tb3YZ2UWiyU/Pz9KdQEAIOJwYQ8AAFCAqAAAAAWICgAAUICoAAAABYgKAABQgKgAAAAFiAoAAFCA qAAAAAWICgAAUICoAAAABYgKAABQgKgAAAAFiAoAAFCAqAAAAAWICgAAUICoAAAABYgKAABQgKgA AAAFiAoAAFAQ3ahYvHhxv379RFGcPHly9elOpzMjI8NkMqWkpOTm5ka1BwAAaCJNVOeekpKSnZ2d n59fY3pWVlZpaandbj906NCIESPS0tIGDRoU1U4AAKDRohsV9957LxH985//DAaD4YmBQGD16tUF BQUJCQkJCQnjxo1buXJl9agQBEGr1Ua1sUgRBIGImr1bjuNEUWSMYOaRQwAAD4VJREFUqVxXEASO 49RcfFEUVa6o8tjyPC+KoiRJ6pQjIq1Wq87SiaLI87xq647neY1G0+z75q9GdKOiTna73e12p6en y/+mp6fn5eVVv4PBYLhcVnALiQpRFGNiYpolKohIp9OpVpHjOI1GExcXp1pFlcdWo9FYLBaz2axO OY7jWrVqpVotQRBUW3dyThgMBnXK/eo1Q1S4XC4islgs8r9Wq9XpdNa4Q0VFhfqNNUJsbCwRNXu3 SUlJ5eXlPp9P5bo2m02SJIfDoVpFrVYbFxd35swZ1SqqPLaJiYkOh8Pr9apTrn379sXFxeoEoV6v t1qtJSUlKtQiori4OJ/PJz/bRFWHDh2iXaIlaIYzoORXTOF4cDgc4dgAAIAWqBmiIjU11Wg0FhUV yf8WFhampaWp3wYAADRQdKMiGAx6vd5QKBQKhbxer/zhtiiKmZmZ2dnZ5eXlO3bsWLt27YQJE6La BgAANEV0o2Lu3LkGgyE3N3fZsmUGg+GZZ56Rpy9atMhms6WkpIwaNSonJwdnygIAtGTR/Vh7/vz5 8+fPrz3dYrHU/rIFAAC0TLiwBwAAKEBUAACAAkQFAAAoQFQAAIACRAUAAChAVAAAgAJEBQAAKEBU AACAAkQFAAAoQFQAAIACRAUAAChAVAAAgAJEBQAAKEBUAACAAkQFAAAoQFQAAIACRAUAAChAVAAA gAJEBQAAKEBUAACAgmaICqfTmZGRYTKZUlJScnNz1W8AAAAuiUb9kllZWaWlpXa7/dChQyNGjEhL Sxs0aJD6bQAAQANxjDE16wUCAZvNVlBQMHjwYCKaOHEiES1btqz6fXw+n9frVbOrRtPr9UTU7N2a zWaPxxMKhVSuq9frGWM+n0+1ioIgGAwGl8ulWkWVx9ZkMvl8vmAwqE65mJiYyspKdWppNBqdTud2 u9UpZzAYQqGQ3++PdiGr1RrtEi2B2kcVdrvd7Xanp6fL/6anp+fl5dW4j06n0+l0KjfWFC2hW7PZ 3Fyl5bxUk8o7p8pjq9GouleqPJgqlzMYDGqW+xVT+7MK+fWgxWKR/7VarU6nU+UeAADgkqgdFfIL tHA8OByOcGwAAEDLpHZUpKamGo3GoqIi+d/CwsK0tDSVewAAgEui9sfaRDRx4sTjx4/n5+cfPnz4 tttu27BhA86AAgBoyZrhexWLFi2y2WwpKSmjRo3KyclBTgAAtHDNcFQBAACXF1zYAwAAFLSgqPD7 /VOnTu3cubPRaOzbt+/HH3/c3B01iN1uNxqNw4YNa5bqBw4cuOmmmywWS3Jy8pNPPilJUlTLLV68 uF+/fqIoTp48ucZNq1at6t69u06n6969+86dOyNVcerUqe3bt9fr9Z06dXr55ZfliVHdVOpZkEit 6zqHsZ6FavRarmeeI0eO5H4RGxtb/VFNWZUXm+2lLnI9LrYR1nnFIMUSzbv/XkZaUFT4fD6O4/Lz 8+12+5QpU8aOHfvTTz81d1PK/vjHP1511VXNVf2+++7r1KlTSUnJtm3bPvjgg7fffjuq5VJSUrKz s8eNG1dj+oYNG/70pz+9+OKLJ06cyMvLS0hIiFTFcePGbdu27cyZM++///4LL7ywefNmiuamUv+C RGpd1zmM9SxUo9dy/QO1dOlSj8fj8XhKSkrCE5u+Kuuc7aUucj0uthGGrxi0evXqGTNmbN++vSEl mnf/vZywlqpr1675+fnN3YWCjz766I477liwYMFtt93WLA3ExsZ+9dVX8t8TJ06cPn26CkUfffTR Rx55pPqUfv36LV++PKpFS0tLu3Tp8vrrr9e+KYKbSj0LEvF1XXsYq6u+UJFay9Xnefvtt9e5pE1c lRebrazhi6yoxqz8fr/JZAqP0kMPPfTQQw8plmj2/fcy0oKOKqorLi622+29e/du7kbq43a7Z86c +corrzRjD48//vi7775bVVX1008/bd26tVmOo30+3759+4qLi9u2bZucnDxt2rTIXhRr9uzZrVu3 TkpK4nl+zJgxNW6N4KZSz4KovK5rLFRE1nLtgZozZ0779u2HDh36xRdfyFMisiprz7Zx7V2S2lcM 2r9/f/0lWsL+exlpiVHh8/kyMzMffvjhnj17Nncv9cnOzh4/fnynTp2asYcRI0Zs377dZDJ17dr1 9ttvb5aoOHXqFGNs48aNe/bs+e6777766qsFCxZEcP5PPfXU7t278/LyRo4cWeO7/ZHdVOpZEDXX de2Favparj3PKVOmrF+/fvPmzUOHDh0+fPj3339PkViVdc62Ee1dKsUrBtUu0RL238tIi4uKQCAw duzYhISExYsXN3cv9Tlw4MD69etnzpzZjD1UVVUNGzbsgQce8Hg8x48f37179/z589VvQ74i25NP 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 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On my laptop, we=E2=80=99re talking about space savings of 325=C2=A0MiB, a = tiny fraction of my store: --8<---------------cut here---------------start------------->8--- scheme@(guile-user)> (saved-space (filter (lambda (file) (< (deduplicated-file-size file) 1024)) l)) $40 =3D 325914739 --8<---------------cut here---------------end--------------->8--- Files smaller than 1=C2=A0KiB represent 35% of the entries in .links: --=-=-= Content-Type: image/png Content-Disposition: inline; filename=size.png Content-Transfer-Encoding: base64 Content-Description: distribution by file size iVBORw0KGgoAAAANSUhEUgAAAhcAAAFtCAIAAAA76t8lAAAABmJLR0QA/wD/AP+gvaeTAAAgAElE QVR4nOzde2AU1fU48HPnsa/ZzSYkIQnZPAAVIQoBxUclYLW+IkpFhUTUqAWlSEGjfkVFqwEraDUV QVPASoAUQy0qYqpWLaD+SotWkioCVoi8k0A2yz6yz7m/PwbWZZMsedzJ7ibn8wfs3p09c2ZnM2dn 7swdQikFhBBCqFu4aCeAEEIojmEVQQgh1H1YRRBCCHUfVhGEEELdh1UEIYRQ92EVQQgh1H1YRRBC CHUfVhGEEELdh1VEXd99992CBQumTJlyzTXX3HTTTfPmzdu6dWvvp7F27drrr7++M1N+/fXX69at 6957e+KRRx554oknOj/Htnm2KzRURUXFLbfc0r30eu1j6UmSYT766KM777zzmmuuufHGG+H0hJkn 3ztfEhSbsIqo6J133vnNb35TX19/8803P/bYY9OnT5ckacGCBdu2bYt2ah1qu7lMTEzMycnpzRw6 M8dOVhFWycfCx9IlLS0tv//978eOHfuHP/zhpZdeApUTjvFPA6lKiHYCfdbOnTuXLl1aUFAwf/58 nueVxuuvv37v3r1+vz+6uXXJxIkTJ06cGHdz9Pl8oiiql3zvfyxdcvDgwUAgcO2115599tlKi6oJ x/ingVSFVUQtb775pkajKS0tDZYQxZAhQ5QHv/vd7w4cOPDaa68FXyotLTUajWVlZQBQUVHx8ccf L1q06JVXXtmzZ09KSsqMGTPGjx//3nvvVVdXt7S0jBgx4pFHHklNTe1MtFD79u2rqqr69ttvrVZr SkrKxRdffM8990iSBADLli3bsGEDAFx55ZUAkJKSUl1dvXbt2nXr1r3//vubN29esGDBihUrgosA APPmzWtubl6+fDkA7N27909/+lNdXZ3P5zv77LNnzJhx/vnnd/T5bNmyZdWqVUeOHMnIyLj77rtD XwrOEQAaGhqWL19eW1trt9sTExOHDRs2b968N954o22eyif2+OOPv/7663v37r3uuuvmzJkTGkqx c+fOZcuW/fDDD4mJiTfffPOtt956xg8w8seiTPzll19WVlb+73//EwRh5MiR9957b/C3uZLYb3/7 2z/+8Y8//PBDSkrKTTfdNHny5I4+mY6S/OKLL5566qnXXnvtnHPOCU75yCOPOJ3OV199NfTtixcv /uijjwBg5syZADB58uT777+/7UcR1PkV1+7qMBgMweBNTU1FRUVh7xo7duyiRYu6NCMUR7CKqOXr r78eOXKkyWTqdgS3271w4cJJkyZNnTp148aNCxcuvOWWW7799tvp06f7fL7ly5c/99xzysGKLmlo aMjIyJgwYUJCQsLRo0f//Oc//+9//3v55ZcB4M4775Rl+aOPPlqxYgUAhNW/n/3sZ5Ikffzxx/fe e6/SYrVa//Of/8yYMQMAfvjhhzlz5uTm5paWlhoMhk2bNj388MOvvPJK6CYvaMeOHQsWLLj00ktn zZrV0tLy6quvyrIc/NUc6plnnvF6vXPmzElOTj5+/PiXX37p9/s7ytPhcCxZsuTXv/71kCFDfD5f 22itra1lZWXFxcVZWVmff/55RUWFTqe74YYbIn9ikT8WAPjqq68ee+yx/Pz8J5980u12r1q1as6c OcuXL09LSwsmtnTp0lmzZmVlZW3evHnZsmUWi+Wiiy5qd3YdJXnppZempqZu2rSptLRUmfLQoUNf f/118GnQzJkzL7roooULF/7ud7/LyclRfiJ0pEsrrt3VETrBgAED3njjjeDT77777oUXXjjrrLO6 OiMUR7CKqMLpdLpcrvT09J4EaW1tnT179oUXXggAI0aMuOWWWz755JPVq1drtVoAcLlcS5YssVqt SUlJXQp7ySWXXHLJJcrjUaNGDR069L777tu3b9/gwYNNJpMkSYSQdjPXaDQTJkz45JNPZsyYQQgB gE8//ZRSesUVVwDA8uXLzWbziy++qNPpAGDs2LH33nvv2rVr2+4MAUBlZWVWVlZZWZkSx2KxzJ49 u20V8fv9e/bseeihh8aPH6+0BB+0m6fP55s7d+7o0aM7Wna3211aWqrsUowZM8Zms61evbqwsLBt YQgV+WMBgDfeeCMtLW3RokVKnPPOO++OO+548803586dG0ystLR02LBhADB58uQPPvjg008/7aiK REhy4sSJb7755syZMw0GAwC8//77er1e+fxDmc3mAQMGAEBycvIZv4SdX3ERVkcQz/PZ2dnK46am phUrVowZM0bZ1+zSNwTFEexdj12iKF5wwQXK48TExKSkpNGjRyslBAByc3MBoLGxsath/X7/W2+9 NXPmzMmTJ1977bWzZ88GgAMHDnTmvVddddWxY8e+/vpr5enf//73Cy64IDk52e/379ixo6CgQNlA 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 1z733HPBdpPJ1NWbBGIVQQih2DJq1KhFixY99thjqampt99+e9u7jpaVlR05cmTZsmUA8OOPP3o8 nry8vHPPPffcc88tLy8/ceJE2PRJSUlhQ6evWbOGUup2u5cvX15YWHjo0CGl3W63d3WUYqwiCCEU c+65557t27f/8MMPNpstbGSQ9957749//OOGDRuUG45lZWUlJiZ+9913u3bt2rVr1969ezds2BAW beTIkXv27Gk7F61We/PNN+v1+s8++0xp+e6770aNGtWlVLGKIIRQbPn222//3//7f36/PyEhwWg0 iqIYfGn37t133313dXV1Zmam0jJq1KjBgwc/+uijDocjEAjs3LlT6Y0PVVhYuGXLltAWWZb9fr/T 6ayurm5qaho+fDgAeL3ef//731dffXWXssUqghBCscXhcNx///0DBgzIzMz0+/1PPPFE8KW//OUv dru9uLjYYrFYLJYbb7yR47h33nnn8OHDZ511VkpKyj333NO2Y+O22277+OOPQ+/WVVJSIorigAED nnnmmZUrVyr7H5s2bbrsssuysrK6lC2Oo4UQQqrp1hhZF1988ddffx3WWF9fDwAXXnhhcND0oLS0 tLVr10YImJiYOHPmzKVLl86bNw8Avvnmm3Yne+GFF1577bWuZotVBCGE+r6nnnrqjNP885//7EZk PKKFEEKo+7CKIIQQ6j6sIgghhLoPqwhCCKHuwyqCEEKo+/AcLYQQOoNUQ4me+AkAtIIkwY/OJQDJ 0U4qVqi4L7J79+4rr7zSaDQOHTp0/fr1wXa73V5UVCRJksViqaioUC8BhBDqoSxpWo40zaCUkFOy pTlRSyj2qLUv4vf7J02a9Mtf/vK9997bvn37xIkThw8ffv755wNAaWlpY2NjfX39rl27CgsL8/Ly CgoKVEoDIYS6J1uaRjp4qaP2/olQStWI++23344cOdLhcOj1egC49dZbs7OzX3zxRZ/Pl5SUVFNT M378eACYPn06AKxcuTL0vYFAQJZlNbI6I0EQAoGASp+JevGZhyWEcBwXCARYBeQ4jhDCMKAgCH6/ n1U05umJoujz+VhFY7t+2S4sIYTneYbrgu2a5XmeUtrV7Qmx/Tzy72sK4Df/Q3kcOshV/6TWvoiy 2gj5qWYrN4Wvr693Op35+flKY35+flVVVdh7W1tb245s3DsGDhzY3NzM8EscJjk52eFweDwetmGZ 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 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable By not deduplicating files smaller than 1=C2=A0KiB, we=E2=80=99d reduce the= number of entries by 35%, which should already have a tangible impact on performance. It=E2=80=99d be a =E2=80=9Cmitigation=E2=80=9D more than a = =E2=80=9Cfix=E2=80=9D, but it has a good work/reward ratio. We could conduct a similar analysis for #2. #3 is more difficult to implement because you cannot know the number of entries in .links until you=E2=80=99ve traversed it (note that currently deduplication stops when link(2) returns ENOSPC in .links). I=E2=80=99m attaching the script I=E2=80=99ve used for that, derived from a= n earlier experiment=C2=B9. You=E2=80=99re welcome to give it a spin! Thoughts? Ludo=E2=80=99. =C2=B9 https://lists.gnu.org/archive/html/guix-devel/2014-09/msg00422.html --=-=-= Content-Type: text/plain Content-Disposition: inline; filename=chart-deduplication.scm Content-Description: the script (use-modules (charting) ((guix store) #:select (%store-prefix)) (ice-9 ftw) (ice-9 match) (srfi srfi-1) (srfi srfi-9)) (define-record-type (deduplicated-file name size links) deduplicated-file? (name deduplicated-file-name) (size deduplicated-file-size) (links deduplicated-file-link-count)) (define %links-directory (string-append (%store-prefix) "/.links")) (define (links) "Return a list of ." (file-system-fold (const #t) (lambda (file stat result) ;leaf (cons (deduplicated-file file (stat:size stat) (stat:nlink stat)) result)) (lambda (directory stat result) ;down result) (lambda (directory stat result) ;up result) (const #f) ;skip (lambda (file stat errno result) (error "i/o error" file errno)) '() %links-directory lstat)) (define KiB (expt 2 10)) (define MiB (* KiB KiB)) (define GiB (* KiB MiB)) (define (saved-space files) "Return the total amount of saved space given FILES, a list of ." (fold (lambda (df result) (match df (($ name size links) (when (< links 2) (error "too few links" name links)) (+ result (* size (- links 2)))))) 0 files)) (define (cumulative-distribution files property) "Return a list of (VALUE . COUNT) pairs representing the number of FILES whose PROPERTY is VALUE or less." (define (filestring (log2 (inexact->exact tick)))) (number->string (inexact->exact tick))) (define (adjust-items total) (lambda (x) (match x ;; XXX: Filter out the two cases that would give us a numerical ;; overflow. ((0 . _) #f) ((1 . _) #f) ((value . count) (and (or (not max-x) (< value max-x)) (cons value (* 100. (/ count total)))))))) (match distribution (((_ . total) . rest) (let ((percent (filter-map (adjust-items total) distribution))) (make-scatter-plot #:title (string-append "Cumulative distribution by " subtitle) #:data `((,group-name ,@percent)) #:x-axis-label x-axis-label #:y-axis-label "%" #:tick-label-formatter format-log2-tick #:log-x-base 2 #:min-x 1 #:max-y 101 #:write-to-png output))))) #! Examples (define l (links)) ;this is the expensive part (plot-distribution (cumulative-distribution l deduplicated-file-link-count) "/tmp/nlink.png" #:x-axis-label "number of hard links" #:subtitle "hard link count" #:max-x 2048 #:group-name "nlinks") (plot-distribution (cumulative-distribution (filter (lambda (file) (< (deduplicated-file-size file) 1024)) l) deduplicated-file-link-count) "/tmp/nlink-small.png" #:x-axis-label "number of hard links" #:subtitle "hard link count for files < 1KiB" #:max-x 2048 #:group-name "nlinks") (plot-distribution (cumulative-distribution l deduplicated-file-size) "/tmp/size.png" #:x-axis-label "file size" #:subtitle "file size" #:max-x 32768 #:group-name "size (B)") (plot-distribution (cumulative-distribution (filter (lambda (f) (> (deduplicated-file-link-count f) 2)) l) deduplicated-file-size) "/tmp/size-deduplicated.png" #:x-axis-label "file size" #:subtitle "size for files actually deduplicated" #:max-x 32768 #:group-name "size (B)") (plot-distribution (cumulative-distribution (filter (lambda (file) (< (deduplicated-file-size file) 1024)) l) (lambda (file) (* (deduplicated-file-size file) (- (deduplicated-file-link-count file) 2)))) "/tmp/size-savings.png" #:x-axis-label "savings" #:subtitle "savings for files < 1KiB" #:max-x 32768 #:group-name "savings (B)") !# --=-=-=--