From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id +P6VBA30zWEUMgEAgWs5BA (envelope-from ) for ; Thu, 30 Dec 2021 19:01:49 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id cP3ROAz0zWGuFQEAG6o9tA (envelope-from ) for ; Thu, 30 Dec 2021 19:01:48 +0100 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 424391ED55 for ; Thu, 30 Dec 2021 19:01:48 +0100 (CET) Received: from localhost ([::1]:59090 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n2zkJ-0007SK-HL for larch@yhetil.org; Thu, 30 Dec 2021 13:01:47 -0500 Received: from eggs.gnu.org ([209.51.188.92]:38924) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n2zij-0007RE-8D for emacs-orgmode@gnu.org; Thu, 30 Dec 2021 13:00:09 -0500 Received: from ciao.gmane.io ([116.202.254.214]:34344) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n2zih-0000cD-2c for emacs-orgmode@gnu.org; Thu, 30 Dec 2021 13:00:08 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1n2zib-00088x-OO for emacs-orgmode@gnu.org; Thu, 30 Dec 2021 19:00:01 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-orgmode@gnu.org To: emacs-orgmode@gnu.org From: Uwe Brauer Subject: [SOLVED] (was: (ledger?) The fair Christmas problem: splitting expenses automatically) Date: Thu, 30 Dec 2021 18:55:54 +0100 Message-ID: <87o84yaset.fsf@mat.ucm.es> References: <87o84zs88r.fsf@mat.ucm.es> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=sha256; protocol="application/pkcs7-signature" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cancel-Lock: sha1:SiU4SaJDtwWceYaf2vNDazx7Y5A= Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -15 X-Spam_score: -1.6 X-Spam_bar: - X-Spam_report: (-1.6 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1640887308; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=xerMA43yLn1GaBORpfvKzSiYWuQvFDA8K0FJjLze4BM=; b=m2ScgRFiaNENyQesknL44YaP6Q7m52D7XPYA3i2B5tMQsmv2SNCMScujgdWCyN45Zov/83 1q2ZSxZW81ZBJUfHFn243WnLPntOs85BXjZpDjD203uuwpEfW+m6bjNxStC4OBAAih7/Eg rcjXpNt+lZKKGfEvaUK4+9YYfmwXH5LvXBqgEgSYYdUoSWaQvfKK2q7kdgpeEIBB/vGX15 pyFhz/Khwq7mzyZLSKSYvw05i/NMpD7WvmFK0ocwvXPhOzXARtBONmNX+tfVLsALcTnOXA oiNZ3BgdY+l3XKahl4AUwEjt5P4wf4aPLF/fqgMYCG+Um2zQIH2D9oOIMBhH5A== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1640887308; a=rsa-sha256; cv=none; b=E+SLAf6rAFsRcBRQ+pB2ZlzBGQN+wgxY5XLcdz8VkHavdbr/Y5I6MrfXl7BZuExQwllg55 FToXfxWYg0O5fd7M4+Ssb9YzOXxTKEPgzg2HGWlxi+dULHLpDonVP+X7X76wZulpyagW8Z K1kSbuZhV6lnscLxaiMAHIvvYFLQqeBX6KGLOq/Ia33NYE5QkNt6hiyQA8kHpNXVSg0PLN EqcGzWwGNCbmHiy4t9X05QR0LYJWLkisosPvBYMs9MVTIZm0c5IPmyw2eXB6cvvkKAAZc/ zSrehVWxXlPOJZV8Ssm/T0ZjDSDcgSIcbT63qSb2wsYZfSgfP6EQ1WTj6pcnuA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=mat.ucm.es (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -4.07 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=mat.ucm.es (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 424391ED55 X-Spam-Score: -4.07 X-Migadu-Scanner: scn1.migadu.com X-TUID: xjPhA0JGs9UD --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable >>> "UB" =3D=3D Uwe Brauer writes: > Hi=20 > I am not sure whether this is the right place to ask this, but anyhow. > Suppose two friends want to buy Christmas presents, but when they have > finished, they want to have spent the same amount of money. If they > don't a compensation must be transferred. > Here is an example > ** Start > #+name: presents > #+begin_src ledger=20=20=20 > 2010/01/01 * Starting balance > assets:bank:savings 0 > income:starting balances > 2021/12/01 User1:Jacket > expenses:User1:Jacket 80 > income:User1:creditcard1 > 2010/07/24 User1:Pajama > expenses:User1:Pajama 30 > income:User1:creditcard1 > 2010/07/23 User2:Flowers > expenses:User2:Flowers 20 > income:User2:creditcard2 > 2010/07/23 User2:ChristmasTree > expenses:User2:ChristmasTree 40.00 > income:User2:creditcard2 > #+end_src > #+RESULTS: presents > #+begin_example > 170 expenses > 110 User1 > 80 Jacket > 30 Pajama > 60 User2 > 40 ChristmasTree > 20 Flowers > -170 income > -110 User1:creditcard1 > -60 User2:creditcard2 > -------------------- > 0 > #+end_example > So user1 spent 110, while user2 spent 60 > ** Compensation manually > So the compensation is (trivally) > | User1 | User2 | User2-->Uwer1 | > |-------+-------+---------------| > | 110 | 60 | -25 | > #+TBLFM: $3=3D($2-$1)/2;f2 > Leading to=20 > #+name: compensated > #+begin_src ledger=20=20=20 > 2010/01/01 * Starting balance > assets:bank:savings 0 > income:starting balances > 2021/12/01 User1:Jacket > expenses:User1:Jacket 80 > income:User1:creditcard1 > 2010/07/24 User1:Pajama > expenses:User1:Pajama 30 > income:User1:creditcard1 > 2010/07/23 User2:Flowers > expenses:User2:Flowers 20 > income:User2:creditcard2 > 2010/07/23 User2:ChristmasTree > expenses:User2:ChristmasTree 40.00 > income:User2:creditcard2 > 2010/07/23 User2:User1-Compensation > expenses:User2:User1-Compensation 25.00 > expenses:User1:User1-Compensation > #+end_src > #+RESULTS: compensated > #+begin_example > 170 expenses > 85 User1 > 80 Jacket > 30 Pajama > -25 User1-Compensation > 85 User2 > 40 ChristmasTree > 20 Flowers > 25 User1-Compensation > -170 income > -110 User1:creditcard1 > -60 User2:creditcard2 > -------------------- > 0 > #+end_example > The question is can this be done automatically? > By this I mean > can > 2010/07/23 User2:User1-Compensation > expenses:User2:User1-Compensation 25.00 > expenses:User1:User1-Compensation > Somehow be generated automatically? The solution consists of #+name: compensated #+begin_src ledger=20=20=20 2010/01/01 * Starting balance assets:bank:savings 0 income:starting balances 2021/12/01 User1:Jacket expenses:User1:Jacket 80 income:User1:creditcard1 2010/07/24 User1:Pajama expenses:User1:Pajama 30 income:User1:creditcard1 2010/07/23 User2:Flowers expenses:User2:Flowers 20 income:User2:creditcard2 2010/07/23 User2:ChristmasTree expenses:User2:ChristmasTree 40.00 income:User2:creditcard2 2010/07/23 User2:User1-Compensation expenses:User2:User1-Compensation ((110-60)*0.5) expenses:User1:User1-Compensation #+end_src --=-=-= Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=smime.p7s MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCE8cw ggWDMIIDa6ADAgECAg9dk40wZzbIBh0ax1SEaQcwDQYJKoZIhvcNAQELBQAwOzELMAkGA1UEBhMC RVMxETAPBgNVBAoMCEZOTVQtUkNNMRkwFwYDVQQLDBBBQyBSQUlaIEZOTVQtUkNNMB4XDTA4MTAy OTE1NTk1NloXDTMwMDEwMTAwMDAwMFowOzELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNN MRkwFwYDVQQLDBBBQyBSQUlaIEZOTVQtUkNNMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC AgEAunGAekyGbn/IE23Axn0cAJePLAwjuxCaQKkat4eI+JtWavvme46Lko6nJV1ZEds2LrdRFx+p CB8EFyRYqjdKGN/lOdRX/dfBLJEBkeIi1APAWPx3R+yPPnRDuqw0jU04dmeOsMhvMDNYcVy09Wtu 1AFQuBN+bEqjSdEgGe68wCkYZafe/u/dCpAh5xpnkkIQmF9PMLw+HEW0ENdoQBTAQPrndxd65guP ZVs82ZpS27W9nkbPPeuRBQLAlrJ2TE0QljuS+px/D5nfviM1RR4CXP61qJuZJdpe8yLDOfXkKi7T xh/EbKrFHGoBBUov0sXBqDQmXWal0gIh+Ri3BvVOmW+oq0xR6M9QGMV3yDkJLEmSMpmouxcXebBa xeajxFllRzWDXqnoNQuZu+TNIMabSgY5tWj8IrruVYwrTurzseP8tpma1UL6cU0Iz4ceanF9+dO0 6aVxgXvCTkeWpfZ2haMoj+mAboFTpW1fuEj5wvk2pi5J/7iWwowHs5uIWPzrGxzeLXDil5IwoYnj vFWoJ9ZL7ZCti/pjJVktqDXdypczvOXNx53R7O9eDkqQBiZjrbnZNS0HunZlLKxXj330B5TXgQKW XaMHSdV60Ff5G+dTRnWqsHlCy2hxCOlgvTlpzvSvw1ZAx61Sognkb4ZHih/rKCddgyCvBMlsVpqL RvUCAwEAAaOBgzCBgDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU 933F/cTomht3ZKf1HaDMv4dgmm0wPgYDVR0gBDcwNTAzBgRVHSAAMCswKQYIKwYBBQUHAgEWHWh0 dHA6Ly93d3cuY2VydC5mbm10LmVzL2RwY3MvMA0GCSqGSIb3DQEBCwUAA4ICAQAHkErf8yNO8MOc UWWbnCKiigyF83Mpa03+AeKpDGMBvwRnpZ2YX/0BE/rsmmLphv62YtJuTJT7wHVFfGUM+LI3z6wP z41v+Rn3j+we8nCe8Mq477f/djd2W/ZuiPOvYjIikw06ao4UZgwtU3RXZR7Vst0jgTulZiMnZwmP 4XeqQ81lUQjtUVj+5jn5y0eEpBXxdruk7qQ7xF/vsjOWERi3yWW+GOGjpNz6GPnTvBObOXo0utNB +/oyiiq3K4YLaYM4vs2KLgtwrY0mku4e9QErCtnWl5tu4KgZHDohiwweQK0D591mfvW5IA0D6Jb5 gkXUOeCgAF3XmOZ9nmdzw5oq96uLoToU7zS8Ug6JmJoEQIQdfkVpk1fO6874UHxPHG4EQ5v51jsj GOnqjtFNRo3xO+Rqyrr7I7eb+pkBKVpYWi3j+dRtDiatwW40vDL4DAX6ZaPbOzeDIunW3HIz/V3y IL12PCPaKPf5G+tZZNXcX3J+IPzNibWQZ01iej9OrR3DOf569CgW30H2SIAF1w9ReawQq9TsA2bm arC6MZJCQGq+OtNy4Wo3VbysHZW3aWHyQ5F05qDTCiRGoQiv1tpFGZbUUx1bhHnwwPdH74uPxQau nUxinf9GBPjTybYQJUB1/haqyUpghi+67zB35FTiuISZWICqE4tROk9I9ou2szCCBtowggTCoAMC AQICEEVfOuFcIc26VE+CqkdR69swDQYJKoZIhvcNAQELBQAwOzELMAkGA1UEBhMCRVMxETAPBgNV BAoMCEZOTVQtUkNNMRkwFwYDVQQLDBBBQyBSQUlaIEZOTVQtUkNNMB4XDTE0MTAyODExNDg1OFoX DTI5MTAyODExNDg1OFowSzELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQL DAVDZXJlczEZMBcGA1UEAwwQQUMgRk5NVCBVc3VhcmlvczCCASIwDQYJKoZIhvcNAQEBBQADggEP ADCCAQoCggEBAJ0gBCYt+y1pMMvZk3+l5a7UcHLvlL5Fa+WPsgv5ujOGJa+G8cDY27Y/vvG+iQWm /cMh4ZLVUiAWvnYmIX7B7FlVoJDpUszSD6kzyjpo2LS91CbqFtwG6QzWSRFRYBKJZAoOdcFyjIzu zuQnycCAN4ldn23nkeGADprP9ZqptC0pK1osMJWBfVZ/Gqq/3gJ0/3fCnWAuWf/THNWs1h1je8ye jE3bmfT3FYzJu9Ir4h2qIYBFLve/W8tt2nMevau6iz4x5GKBoX9n7dbUKmJo7PYnIMD4a8y8stc8 12MtB6HhZ7OG4tjfjAU5qX/4vB2TiugctzEtlJQrI14R4c2psEcCAwEAAaOCAsgwggLEMBIGA1Ud EwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSx1E/EI3n6RAUJxus5z+g1 sLggZDCBmAYIKwYBBQUHAQEEgYswgYgwSQYIKwYBBQUHMAGGPWh0dHA6Ly9vY3NwZm5tdHJjbWNh LmNlcnQuZm5tdC5lcy9vY3NwZm5tdHJjbWNhL09jc3BSZXNwb25kZXIwOwYIKwYBBQUHMAKGL2h0 dHA6Ly93d3cuY2VydC5mbm10LmVzL2NlcnRzL0FDUkFJWkZOTVRSQ00uY3J0MB8GA1UdIwQYMBaA FPd9xf3E6Jobd2Sn9R2gzL+HYJptMIHrBgNVHSAEgeMwgeAwgd0GBFUdIAAwgdQwKQYIKwYBBQUH AgEWHWh0dHA6Ly93d3cuY2VydC5mbm10LmVzL2RwY3MvMIGmBggrBgEFBQcCAjCBmQyBllN1amV0 byBhIGxhcyBjb25kaWNpb25lcyBkZSB1c28gZXhwdWVzdGFzIGVuIGxhIERlY2xhcmFjacOzbiBk ZSBQcsOhY3RpY2FzIGRlIENlcnRpZmljYWNpw7NuIGRlIGxhIEZOTVQtUkNNICggQy8gSm9yZ2Ug SnVhbiwgMTA2LTI4MDA5LU1hZHJpZC1Fc3Bhw7FhKTCB1AYDVR0fBIHMMIHJMIHGoIHDoIHAhoGQ bGRhcDovL2xkYXBmbm10LmNlcnQuZm5tdC5lcy9DTj1DUkwsT1U9QUMlMjBSQUlaJTIwRk5NVC1S Q00sTz1GTk1ULVJDTSxDPUVTP2F1dGhvcml0eVJldm9jYXRpb25MaXN0O2JpbmFyeT9iYXNlP29i amVjdGNsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50hitodHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9j cmxzL0FSTEZOTVRSQ00uY3JsMA0GCSqGSIb3DQEBCwUAA4ICAQCMPSi04H4N825c2lx3PYBkHk7p ErjJ5rL/K4CgeD2ETCxliy/c8WMr591SQduv/BcLjJqE8gnUXVainvmCZsCFXpxe6oPnfEaOfl/m Y+2rYu9GTidhlYG9TQI9qTQPmfnma1aVA599S/t84k4S76QLRLU8egExWyZhIJKUdQJ21s77rMMF CDFAbKUdNp4giM6giVZtrtlMvZB8PnYgSUbsFWKaQWWr4J+xAjTvryniACmZnvljHdGUE4ZA0WCM RRcGIVhaHNUxPi39J1WxGuY/7+qFXGrj/tnci4x/603VYYeC5yPwyjxih3bkPKl7oW8YGyIrvIwU /9J93VkDxQd6LvfrB5ZU/bklFRq7Sviso4Bix+aHvIuBjmx+xiVLYZFMBGMxoo4P1pir5vo4NIJ5 Vk+x4lNCuHxFpXSAZfZzWoddskj1Tet6v/JAl0tyUfHDPNmXrMy1Z7T7OuIrVdliq5KzQPi7buGf 1E2OJbh/iEXr6Pa3k+u/dDEL2KwsI0rLjQ+H1yPOv5hhEhr4W8BApqYXvC/41dLmdNciOZpoIXnQ a+Vqir+uBJiFzRVWdt/pofERQoKj2bGrVWlaAUKtRXrzoTzIxL8YjIMz173tgN4Epp4P1Cg3Chsx W8i/r3kmYXT/OeJj5NyDxAmGRDagGFl4wZbZvFA0ZlAbdcKYETCCB14wggZGoAMCAQICEHyPZdFE 3gS5WtRZrC7IKYIwDQYJKoZIhvcNAQELBQAwSzELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt UkNNMQ4wDAYDVQQLDAVDZXJlczEZMBcGA1UEAwwQQUMgRk5NVCBVc3VhcmlvczAeFw0xODA0MTYw ODA3MDhaFw0yMjA0MTYwODA3MDhaMIGBMQswCQYDVQQGEwJFUzEYMBYGA1UEBRMPSURDRVMtWDIw NjQxMjNCMRkwFwYDVQQqDBBVV0UgUklDSEFSRCBPVFRPMQ8wDQYDVQQEDAZCUkFVRVIxLDAqBgNV BAMMI0JSQVVFUiBVV0UgUklDSEFSRCBPVFRPIC0gWDIwNjQxMjNCMIIBIjANBgkqhkiG9w0BAQEF AAOCAQ8AMIIBCgKCAQEAzS7yAm9gXjzxCrn15XBUuZz/gDM/KQi589qGkENYw7LiHtxKBOncld1o FohvckNdY7A8AJiHVVVoA6BXF7DI0BGFwaQ5qUDlzq7mW9+zL+OLXNSp52lfuERPd2y18LaHLp34 czgsvaCTzPl//lrDz6sa5Q//1DlNuzbjY/Afgd+jPPCI4wjOPcW3k1pvEf9Ed1nmAEiqAfyeHN/n RSfL83jACwvvkrJFg3gxTKrp7QJUdbTAomwPhQcsTWFxdA4FXPAZlYrhiM/qGRp/IKzRUCwIIebD qmkfLZIRl1gm9RFzzpps+dcw4qV7nRcA2KWQwjd36pVQxVF1e1BXq+BZjwIDAQABo4IEBTCCBAEw bwYDVR0RBGgwZoEOb3ViQG1hdC51Y20uZXOkVDBSMRgwFgYJKwYBBAGsZgEEDAlYMjA2NDEyM0Ix FTATBgkrBgEEAaxmAQIMBkJSQVVFUjEfMB0GCSsGAQQBrGYBAQwQVVdFIFJJQ0hBUkQgT1RUTzAM BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUH AwIwHQYDVR0OBBYEFORUbZuzfTkfXyYfMh59Q0C0evYpMB8GA1UdIwQYMBaAFLHUT8QjefpEBQnG 6znP6DWwuCBkMIGCBggrBgEFBQcBAQR2MHQwPQYIKwYBBQUHMAGGMWh0dHA6Ly9vY3NwdXN1LmNl cnQuZm5tdC5lcy9vY3NwdXN1L09jc3BSZXNwb25kZXIwMwYIKwYBBQUHMAKGJ2h0dHA6Ly93d3cu Y2VydC5mbm10LmVzL2NlcnRzL0FDVVNVLmNydDCCARUGA1UdIASCAQwwggEIMIH6BgorBgEEAaxm AwoBMIHrMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzCBvQYIKwYB BQUHAgIwgbAMga1DZXJ0aWZpY2FkbyBjdWFsaWZpY2FkbyBkZSBmaXJtYSBlbGVjdHLDs25pY2Eu IFN1amV0byBhIGxhcyBjb25kaWNpb25lcyBkZSB1c28gZXhwdWVzdGFzIGVuIGxhIERQQyBkZSBs YSBGTk1ULVJDTSBjb24gTklGOiBRMjgyNjAwNC1KIChDL0pvcmdlIEp1YW4gMTA2LTI4MDA5LU1h ZHJpZC1Fc3Bhw7FhKTAJBgcEAIvsQAEAMIG6BggrBgEFBQcBAwSBrTCBqjAIBgYEAI5GAQEwCwYG BACORgEDAgEPMBMGBgQAjkYBBjAJBgcEAI5GAQYBMHwGBgQAjkYBBTByMDcWMWh0dHBzOi8vd3d3 LmNlcnQuZm5tdC5lcy9wZHMvUERTQUNVc3Vhcmlvc19lcy5wZGYTAmVzMDcWMWh0dHBzOi8vd3d3 LmNlcnQuZm5tdC5lcy9wZHMvUERTQUNVc3Vhcmlvc19lbi5wZGYTAmVuMIG1BgNVHR8Ega0wgaow gaeggaSggaGGgZ5sZGFwOi8vbGRhcHVzdS5jZXJ0LmZubXQuZXMvY249Q1JMMTgwNixjbj1BQyUy MEZOTVQlMjBVc3VhcmlvcyxvdT1DRVJFUyxvPUZOTVQtUkNNLGM9RVM/Y2VydGlmaWNhdGVSZXZv Y2F0aW9uTGlzdDtiaW5hcnk/YmFzZT9vYmplY3RjbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDAN BgkqhkiG9w0BAQsFAAOCAQEAZvJUHMPzj+us0nNHF9NuVpoY1yQL9NzCMCBHYdHQPmc4ITA8zYwa jTXv9lj6P+JDAoa/kqFImCOLcy0ZL4VucSZgtTA8HDuU6mzM11Gf4VKeLnJk9T8EJr5/HQDw+okC r5YlPfyX3y14qdscFa1UJCASfH9PMk8NDF9sr7qHhz/SmapSF87Co8V8uCrCSODmdBHZCAfAIb35 ujfEUuXi0cVkW9PwHltpA1ahA8TXuIXWkk+Ot2NIy5M2SlLVnSUInArMkbc9meIQKpKHTl2oSFm6 PA272V54F5VoKfYLRk38PAZosWyAHiXDLMl3ZgN7ZZZsc17WPeu3kCICEkW1IzGCAiAwggIcAgEB MF8wSzELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQtUkNNMQ4wDAYDVQQLDAVDZXJlczEZMBcG A1UEAwwQQUMgRk5NVCBVc3VhcmlvcwIQfI9l0UTeBLla1FmsLsgpgjANBglghkgBZQMEAgEFAKCB kzAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yMTEyMzAxNzU1NTRa MCgGCSqGSIb3DQEJDzEbMBkwCwYJYIZIAWUDBAECMAoGCCqGSIb3DQMHMC8GCSqGSIb3DQEJBDEi BCCC3cfwDajzpHuhaDvCfWbIVZXfO2PqOaGAm1cVcIKQsTANBgkqhkiG9w0BAQEFAASCAQB9bCTC Xh3ZIzBK921icqYLD+t7wJe1tF2nq3laX6h0xkdqPZOs44bl2hS+0yMATjzcgElo9ZP3p9xJPXeX kzeFUgVB4m3VQXx+FH8kuwz4vL5bxbQw/KFZrVokl8w6Szdf577RmPTIbTcSbgiQ3ut8Vk0KGF84 k8eEKHgpKls+SuY2XMmDczIBvdN9fLhDxeE49BdSBxr9FxyNR3GNevUDjBZX+7KIhifQ6oAqO/yP j4Z7neUla55zQc9ovV05ipejEpF8cPo7RZ+mrmiAO452z06yFu7ypgNVr42BBe8w90PQac+OwbY2 kdbpKgzIUDnUBzqD0wqq31Kp11XyoEh/AAAAAAAA --=-=-=--