Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C71CDCF29 for ; Thu, 11 Jul 2013 13:12:36 +0000 (UTC) Received: (qmail 88874 invoked by uid 500); 11 Jul 2013 13:12:34 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 88642 invoked by uid 500); 11 Jul 2013 13:12:33 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 88634 invoked by uid 99); 11 Jul 2013 13:12:33 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 11 Jul 2013 13:12:33 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of comomore@gmail.com designates 209.85.220.176 as permitted sender) Received: from [209.85.220.176] (HELO mail-vc0-f176.google.com) (209.85.220.176) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 11 Jul 2013 13:12:29 +0000 Received: by mail-vc0-f176.google.com with SMTP id ha12so6742461vcb.35 for ; Thu, 11 Jul 2013 06:12:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=An0zVikg6ow2PCdIyfX3cycHx/S2ZulxlHUg5lBj0so=; b=x5xrCgCeGmcdceCp7W12kXG/7GmRTz95lmzPpH4+a6lk8chVSs4A909H9F77okuOKm 9ojTVkHtQN3T+gJuj/RpdOvzFWWAklsqToRY1A8hdpWHCV+R4QEE47+/9rQVWgs9VhuU 0InFz4RWbTNkiSuHYjxR9jwpVcgkVybNp2YUo/7OCHLZX4ZAeQpklc9qBO4eOVF32Lpm noV7kkoGmvpR+DMYQghaDdZOzjminTlWJGqubnb+cJUdzvvVKxeT9zE7g5LfbeHAGiPg BLBgANDv49Yge/q4/VyDDEEsTIUSi+EosDvNXORjwhkrZ2M/+h0XWt+HoAt22VRHLDEe YDdg== MIME-Version: 1.0 X-Received: by 10.58.171.4 with SMTP id aq4mr21316381vec.26.1373548327883; Thu, 11 Jul 2013 06:12:07 -0700 (PDT) Received: by 10.220.236.4 with HTTP; Thu, 11 Jul 2013 06:12:07 -0700 (PDT) In-Reply-To: References: Date: Thu, 11 Jul 2013 08:12:07 -0500 Message-ID: Subject: Re: Alternate "major compaction" From: srmore To: user@cassandra.apache.org Content-Type: multipart/related; boundary=047d7b6743b42a664904e13c24a4 X-Virus-Checked: Checked by ClamAV on apache.org --047d7b6743b42a664904e13c24a4 Content-Type: multipart/alternative; boundary=047d7b6743b42a664604e13c24a3 --047d7b6743b42a664604e13c24a3 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Thanks Takenori, Looks like the tool provides some good info that people can use. It would be great if you can share it with the community. On Thu, Jul 11, 2013 at 6:51 AM, Takenori Sato wrote: > Hi, > > I think it is a common headache for users running a large Cassandra > cluster in production. > > > Running a major compaction is not the only cause, but more. For example, = I > see two typical scenario. > > 1. backup use case > 2. active wide row > > In the case of 1, say, one data is removed a year later. This means, > tombstone on the row is 1 year away from the original row. To remove an > expired row entirely, a compaction set has to include all the rows. So, > when do the original, 1 year old row, and the tombstoned row are included > in a compaction set? It is likely to take one year. > > In the case of 2, such an active wide row exists in most of sstable files= . > And it typically contains many expired columns. But none of them wouldn't > be removed entirely because a compaction set practically do not include a= ll > the row fragments. > > > Btw, there is a very convenient MBean API is available. It is > CompactionManager's forceUserDefinedCompaction. You can invoke a minor > compaction on a file set you define. So the question is how to find an > optimal set of sstable files. > > Then, I wrote a tool to check garbage, and print outs some useful > information to find such an optimal set. > > Here's a simple log output. > > # /opt/cassandra/bin/checksstablegarbage -e /cassandra_data/UserData/Test= 5_BLOB-hc-4-Data.db > [Keyspace, ColumnFamily, gcGraceSeconds(gcBefore)] =3D [UserData, Test5_B= LOB, 300(1373504071)] > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D > ROW_KEY, TOTAL_SIZE, COMPACTED_SIZE, TOMBSTONED, EXPIRED, REMAINNING_SSTA= BLE_FILES > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D > hello5/100.txt.1373502926003, 40, 40, YES, YES, Test5_BLOB-hc-3-Data.db > -------------------------------------------------------------------------= ---------- > TOTAL, 40, 40 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D > > REMAINNING_SSTABLE_FILES means any other sstable files that contain the > respective row. So, the following is an optimal set. > > # /opt/cassandra/bin/checksstablegarbage -e /cassandra_data/UserData/Test= 5_BLOB-hc-4-Data.db /cassandra_data/UserData/Test5_BLOB-hc-3-Data.db > [Keyspace, ColumnFamily, gcGraceSeconds(gcBefore)] =3D [UserData, Test5_B= LOB, 300(1373504131)] > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D > ROW_KEY, TOTAL_SIZE, COMPACTED_SIZE, TOMBSTONED, EXPIRED, REMAINNING_SSTA= BLE_FILES > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D > hello5/100.txt.1373502926003, 223, 0, YES, YES > -------------------------------------------------------------------------= ---------- > TOTAL, 223, 0 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D > > This tool relies on SSTableReader and an aggregation iterator as Cassandr= a > does in compaction. I was considering to share this with the community. S= o > let me know if anyone is interested. > > Ah, note that it is based on 1.0.7. So I will need to check and update fo= r > newer versions. > > Thanks, > Takenori > > > On Thu, Jul 11, 2013 at 6:46 PM, Tom=E0s N=FAnez wrote: > >> Hi >> >> About a year ago, we did a major compaction in our cassandra cluster (a >> n00b mistake, I know), and since then we've had huge sstables that never >> get compacted, and we were condemned to repeat the major compaction proc= ess >> every once in a while (we are using SizeTieredCompaction strategy, and >> we've not avaluated yet LeveledCompaction, because it has its downsides, >> and we've had no time to test all of them in our environment). >> >> I was trying to find a way to solve this situation (that is, do somethin= g >> like a major compaction that writes small sstables, not huge as major >> compaction does), and I couldn't find it in the documentation. I tried >> cleanup and scrub/upgradesstables, but they don't do that (as documentat= ion >> states). Then I tried deleting all data in a node and then bootstrapping= it >> (or "nodetool rebuild"-ing it), hoping that this way the sstables would = get >> cleaned from deleted records and updates. But the deleted node just copi= ed >> the sstables from another node as they were, cleaning nothing. >> >> So I tried a new approach: I switched the sstable compaction strategy >> (SizeTiered to Leveled), forcing the sstables to be rewritten from scrat= ch, >> and then switching it back (Leveled to SizeTiered). It took a while (but= so >> do the major compaction process) and it worked, I have smaller sstables, >> and I've regained a lot of disk space. >> >> I'm happy with the results, but it doesn't seem a orthodox way of >> "cleaning" the sstables. What do you think, is it something wrong or cra= zy? >> Is there a different way to achieve the same thing? >> >> Let's put an example: >> Suppose you have a write-only columnfamily (no updates and no deletes, s= o >> no need for LeveledCompaction, because SizeTiered works perfectly and >> requires less I/O) and you mistakenly run a major compaction on it. Afte= r a >> few months you need more space and you delete half the data, and you fin= d >> out that you're not freeing half the disk space, because most of those >> records were in the "major compacted" sstables. How can you free the dis= k >> space? Waiting will do you no good, because the huge sstable won't get >> compacted anytime soon. You can run another major compaction, but that >> would just postpone the real problem. Then you can switch compaction >> strategy and switch it back, as I just did. Is there any other way? >> >> -- >> [image: Groupalia] >> www.groupalia.com Tom=E0s N=FA=F1ez IT-Syspro= d Tel. + >> 34 93 159 31 00 Fax. + 34 93 396 18 52 Llull, 95-97, 2=BA planta, 08005 >> BarcelonaSkype: tomas.nunez.groupalia tomas.nunez@groupalia.com [image: >> Twitter] Twitter [image: >> Twitter] Facebook [image: >> Twitter] Linkedin >> > > --047d7b6743b42a664604e13c24a3 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Thanks Takenori,
Looks like the tool provide= s some good info that people can use. It would be great if you can share it= with the community.



On Thu, Jul 11, 2013 at 6:51 AM, Takenori Sato <tsato@cloudian.com>= ; wrote:
Hi,

I think it is a common headache for= users running a large Cassandra cluster in production.


Running a major compaction is not the only cause, but = more. For example, I see two typical scenario.

1. backup use case
2. active wide row

In the case of 1, say, one data is removed a year later. = This means, tombstone on the row is 1 year away from the original row. To r= emove an expired row entirely, a compaction set has to include all the rows= . So, when do the original, 1 year old row, and the tombstoned row are incl= uded in a compaction set? It is likely to take one year.

In the case of 2, such an active wide row exists in mos= t of sstable files. And it typically contains many expired columns. But non= e of them wouldn't be removed entirely because a compaction set practic= ally do not include all the row fragments.


Btw, there is a very convenient MBean AP= I is available. It is CompactionManager's forceUserDefinedCompaction. Y= ou can invoke a minor compaction on a file set you define. So the question = is how to find an optimal set of sstable files.

Then, I wrote a tool to check garbage, and print outs s= ome useful information to find such an optimal set.

Here's a simple log output.

# /opt/cassandra/bin/che=
cksstablegarbage -e /cassandra_data/UserData/Test5_BLOB-hc-4-Data.db
[Keyspace, ColumnFamily, gcGraceSeconds(gcBefore)] =3D [UserData, Test5_BLO=
B, 300(1373504071)]
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D
ROW_KEY, TOTAL_SIZE, COMPACTED_SIZE, TOMBSTONED, EXPIRED, REMAINNING_SSTABL=
E_FILES
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D
hello5/100.txt.1373502926003, 40, 40, YES, YES, Test5_BLOB-hc-3-Data.db   =
=20
---------------------------------------------------------------------------=
--------
TOTAL, 40, 40
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D
REMAINNING_SSTABLE_FILES me= ans any other sstable files that contain the respective row. So, the follow= ing is an optimal set.

# /opt/cassandra/bin/che=
cksstablegarbage -e /cassandra_data/UserData/Test5_BLOB-hc-4-Data.db /cassa=
ndra_data/UserData/Test5_BLOB-hc-3-Data.db=20
[Keyspace, ColumnFamily, gcGraceSeconds(gcBefore)] =3D [UserData, Test5_BLO=
B, 300(1373504131)]
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D
ROW_KEY, TOTAL_SIZE, COMPACTED_SIZE, TOMBSTONED, EXPIRED, REMAINNING_SSTABL=
E_FILES
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D
hello5/100.txt.1373502926003, 223, 0, YES, YES
---------------------------------------------------------------------------=
--------
TOTAL, 223, 0
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D
This tool relies on SSTable= Reader and an aggregation iterator as Cassandra does in compaction. I was c= onsidering to share this with the community. So let me know if anyone is in= terested.

Ah, note that it is based on 1.0.7. So I will need to c= heck and update for newer versions.

Thanks,
<= div>Takenori


On Thu, Jul 11, 2013 at 6:46 PM, Tom=E0s= N=FAnez <tomas.nunez@groupalia.com> wrote:
Hi

About a year ago, we did a major com= paction in our cassandra cluster (a n00b mistake, I know), and since then w= e've had huge sstables that never get compacted, and we were condemned = to repeat the major compaction process every once in a while (we are using = SizeTieredCompaction strategy, and we've not avaluated yet LeveledCompa= ction, because it has its downsides, and we've had no time to test all = of them in our environment).

I was trying to find a way to solve this situation (tha= t is, do something like a major compaction that writes small sstables, not = huge as major compaction does), and I couldn't find it in the documenta= tion. I tried cleanup and scrub/upgradesstables, but they don't do that= (as documentation states). Then I tried deleting all data in a node and th= en bootstrapping it (or "nodetool rebuild"-ing it), hoping that t= his way the sstables would get cleaned from deleted records and updates. Bu= t the deleted node just copied the sstables from another node as they were,= cleaning nothing.=A0

So I tried a new approach: I switched the sstable compa= ction strategy (SizeTiered to Leveled), forcing the sstables to be rewritte= n from scratch, and then switching it back (Leveled to SizeTiered). It took= a while (but so do the major compaction process) and it worked, I have sma= ller sstables, and I've regained a lot of disk space.

I'm happy with the results, but it doesn't seem= a orthodox way of "cleaning" the sstables. What do you think, is= it something wrong or crazy? Is there a different way to achieve the same = thing?

Let's put an example:
Suppose you have a = write-only columnfamily (no updates and no deletes, so no need for LeveledC= ompaction, because SizeTiered works perfectly and requires less I/O) and yo= u mistakenly run a major compaction on it. After a few months you need more= space and you delete half the data, and you find out that you're not f= reeing half the disk space, because most of those records were in the "= ;major compacted" sstables. How can you free the disk space? Waiting w= ill do you no good, because the huge sstable won't get compacted anytim= e soon. You can run another major compaction, but that would just postpone = the real problem. Then you can switch compaction strategy and switch it bac= k, as I just did. Is there any other way?

--
3D"Groupalia"
www.groupalia.com
Tom=E0s N=FA=F1ez
IT-Sysprod
Tel. + 34 93 159 31 00=A0
Fax. + 34 93 396 18 52
Llull, 95-97, 2=BA planta, 08005 Barcelona
Skype: tomas.nunez.groupalia
tomas.nunez@groupalia.com
3D"Twitter"=A0Twitter=A0=A0=A0=A03D"Twitter"=A0Facebook=A0=A0=A0=A03D"Twitter"=A0Linkedin


--047d7b6743b42a664604e13c24a3-- --047d7b6743b42a664904e13c24a4 Content-Type: image/png; name="twitter.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: db1f239eba6fe2cf_0.0.2 iVBORw0KGgoAAAANSUhEUgAAAA4AAAAKCAYAAACE2W/HAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlE PSJ4bXAuaWlkOjUzNjg4QTJCQTMyMzExRTFCOUUxRURFOUQwNDc4NTk4IiB4bXBNTTpEb2N1bWVu dElEPSJ4bXAuZGlkOjUzNjg4QTJDQTMyMzExRTFCOUUxRURFOUQwNDc4NTk4Ij4gPHhtcE1NOkRl cml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTM2ODhBMjlBMzIzMTFFMUI5RTFF REU5RDA0Nzg1OTgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTM2ODhBMkFBMzIzMTFFMUI5 RTFFREU5RDA0Nzg1OTgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1l dGE+IDw/eHBhY2tldCBlbmQ9InIiPz4Y18ISAAAAr0lEQVR42mL8//8/AzmAEcZo6+hUqKoof4Cu AChuAKT2A7EAEDsC1RxA13gfSIE0LgTiDUAFH0CGAdnnoZpA4AMQB4I0I2ssAFL9SAomArE8ECeg OQIkp8iCJHAAKigAxfU4vAeS288E4wGtvwCkLhAbOExo/ECozYRAIBPQbwlItn6ABg4+0AgKfZAf LyCFqAIUYwMfoJomoEcHyOZ8IDZA03AB6ooFUBeBAUCAAQCAWDzMFxLEpwAAAABJRU5ErkJggg== --047d7b6743b42a664904e13c24a4 Content-Type: image/png; name="linkedin.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: db1f239eba6fe2cf_0.0.4 iVBORw0KGgoAAAANSUhEUgAAAAoAAAAJCAYAAAALpr0TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlE PSJ4bXAuaWlkOkY2QzRDMkJCQTMyMzExRTE4MEZGQkUzQzQ2QzYzQ0YzIiB4bXBNTTpEb2N1bWVu dElEPSJ4bXAuZGlkOkY2QzRDMkJDQTMyMzExRTE4MEZGQkUzQzQ2QzYzQ0YzIj4gPHhtcE1NOkRl cml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjZDNEMyQjlBMzIzMTFFMTgwRkZC RTNDNDZDNjNDRjMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjZDNEMyQkFBMzIzMTFFMTgw RkZCRTNDNDZDNjNDRjMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1l dGE+IDw/eHBhY2tldCBlbmQ9InIiPz54eZkYAAAAZklEQVR42mJs6+h8z8DAIADEiVUV5QsYcAAm JLYAAx7ACDQxAapoA5QG4Q9Imj8AbbrAAmTMRxK0B2IHqEK4DUDDJjDhsAmkaAIQX4DyC3ApPAC0 rhBIN2LzDDbwgViFDCQrBAgwAF3oFmOzWsL0AAAAAElFTkSuQmCC --047d7b6743b42a664904e13c24a4 Content-Type: image/jpeg; name="groupalia.jpg" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: db1f239eba6fe2cf_0.0.1 /9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABNAAD/4QNtaHR0cDov L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4 OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4xMzQ3NzcsIDIwMTAvMDIvMTItMTc6 MzI6MDAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5 OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht bG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1w PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9 InhtcC5kaWQ6MjM4N0ZDRUQzMjYwRTAxMUEwQUE5MTYzMTZDM0M5QTEiIHhtcE1NOkRvY3VtZW50 SUQ9InhtcC5kaWQ6NzExNDJGMDE5Njc3MTFFMEI5N0NFRUE3MjREQUIxMDMiIHhtcE1NOkluc3Rh bmNlSUQ9InhtcC5paWQ6NzExNDJGMDA5Njc3MTFFMEI5N0NFRUE3MjREQUIxMDMiIHhtcDpDcmVh dG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIj4gPHhtcE1NOkRlcml2ZWRGcm9t IHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OTA2MDgzNEU3NTk2RTAxMTkzMTBCNUVDODg3MDE3 RDUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjM4N0ZDRUQzMjYwRTAxMUEwQUE5MTYzMTZD M0M5QTEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBh 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 QQaII//Z --047d7b6743b42a664904e13c24a4 Content-Type: image/png; name="facebook.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: db1f239eba6fe2cf_0.0.3 iVBORw0KGgoAAAANSUhEUgAAAAUAAAALCAYAAAC3ZUeVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlE PSJ4bXAuaWlkOjZEMjZDRjhCQTMyMzExRTFBNzI5QTAxQzc4RkVBMDIyIiB4bXBNTTpEb2N1bWVu dElEPSJ4bXAuZGlkOjZEMjZDRjhDQTMyMzExRTFBNzI5QTAxQzc4RkVBMDIyIj4gPHhtcE1NOkRl cml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkQyNkNGODlBMzIzMTFFMUE3MjlB MDFDNzhGRUEwMjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkQyNkNGOEFBMzIzMTFFMUE3 MjlBMDFDNzhGRUEwMjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1l dGE+IDw/eHBhY2tldCBlbmQ9InIiPz64m+gyAAAATUlEQVR42mJkAIK2js4CINXPAAVMUBouAAQH mBhQQWNVRbkjI1DrfiDHASr4AIRZkARAQAGEmYDKGdG0M6KbiWI7mYKM////xxAECDAAbPkRTtEj Es4AAAAASUVORK5CYII= --047d7b6743b42a664904e13c24a4--