From redhatrises at gmail.com Wed Jun 8 18:12:30 2016 Content-Type: multipart/mixed; boundary="===============0214848897001403623==" MIME-Version: 1.0 From: Gabe Alford To: scap-security-guide at lists.fedorahosted.org Subject: Re: Use /etc/passwd directly instead of sources in NSS Date: Wed, 08 Jun 2016 12:12:10 -0600 Message-ID: In-Reply-To: CAB6RzTtCtZsYNBXGtGiFav_LUcUmSROLtizW=V0ESf2Yo3=1xA@mail.gmail.com --===============0214848897001403623== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Rodolfo, What about this? /etc/passwd ^([^:]+):[^:]+:([5-9][\d][\d]|[1-9][\d]{3,}):[\d]+:[^:]*:[^:]+:[^:]*= $ 1 Is that what you are after? It should get the usernames that are greater than or equal to 500. Gabe On Wed, Jun 8, 2016 at 10:32 AM, Rodolfo Mart=C3=ADnez = wrote: > Hi Gabe, > > Yes, I am more familiar with OVAL syntax now and I understand why it is > not working. > > The problem in my OVAL test is in this part: > > version=3D"1"> > /etc/passwd > match">^([^:]+):[^:]+:[\d]+:[\d]+:[^:]*:[^:]+:[^:]*$ > datatype=3D"int">1 > state_at_system_accounts_etc_passwd > > > version=3D"1"> > /etc/passwd > match">^[^:]+:[^:]+:([\d]+):[\d]+:[^:]*:[^:]+:[^:]*$ > datatype=3D"int">1 > datatype=3D"int">500 > > > > '' in block in'' is > getting the subexpression pattern from '' > which contains the username; so comparing a username to be an integer > 'greater or equal to 500' is not valid. > > > My question is much simpler now: > > How can get all usernames from /etc/passwd that have UID greater or equal > to 500 without using password_object? I have been trying to do this for > many days now without any luck. > > Thanks for your time > > -- > Rodolfo Mart=C3=ADnez > > On Tue, Jun 7, 2016 at 1:03 PM, Gabe Alford wro= te: > >> Hello Rodolfo, >> >> I just did a quick glance as I currently don't have the cycles to look >> into this but the "state_at_system_accounts_at_allow_uid" exclude filter= is >> where this is not working. It is not filtering UIDs greater than 1 or 500 >> for that matter. >> Specifically this subexpression is what is failing: >> >> > datatype=3D"int">500 >> >> Gabe >> >> On Thu, Jun 2, 2016 at 8:52 PM, Rodolfo Mart=C3=ADnez >> wrote: >> >>> Hi mpreisler, >>> >>> Thanks for you suggestion in IRC. >>> >>> This what I have so far, but it is still not working. I feel I am close, >>> but it is not working yet. I would appreciate any suggestion >>> >>> >>> >>> >>> No system accounts in /etc/at.allow >>> >>> CentOS 5 >>> Red Hat Enterprise Linux 5 >>> >>> Group owner for /etc/at.allow and /etc/at.deny must >>> exist. >>> >>> >>> >>> >>> >>> >>> >>> >> comment=3D"Accounts Allowed" datatype=3D"string" version=3D"1"> >>> >> object_ref=3D"object_at_system_accounts_allow_list" /> >>> >>> >>> >> id=3D"object_at_system_accounts_allow_list" version=3D"1"> >>> /etc/passwd >>> >> match">^([^:]+):[^:]+:[\d]+:[\d]+:[^:]*:[^:]+:[^:]*$ >>> >> datatype=3D"int">1 >>> state_at_system_accounts_etc_passwd >>> >>> >>> >> version=3D"1"> >>> /etc/passwd >>> >> match">^[^:]+:[^:]+:([\d]+):[\d]+:[^:]*:[^:]+:[^:]*$ >>> >> datatype=3D"int">1 >>> >> datatype=3D"int">500 >>> >> >>> >>> >>> >>> >> id=3D"test_at_system_accounts_at_allow" comment=3D"Testing /etc/at.allo= w for >>> system accounts" version=3D"1"> >>> >>> >>> >>> >> id=3D"object_at_system_accounts_allow" version=3D"1"> >>> >>> /etc/at.allow >>> ^(.+)$ >>> >> datatype=3D"int">1 >>> >>> >> action=3D"exclude">state_at_system_accounts_at_allow_root >>> >>> >> action=3D"exclude">state_at_system_accounts_at_allow_uid >>> >>> >>> >> id=3D"state_at_system_accounts_at_allow_root" version=3D"1"> >>> root >>> >>> >>> >> version=3D"1"> >>> >> var_check=3D"at least one" /> >>> >>> >>> >>> >>> -- >>> Rodolfo >>> >>> -- >>> Rodolfo Mart=C3=ADnez >>> >>> On Tue, May 31, 2016 at 5:43 PM, Rodolfo Mart=C3=ADnez >>> wrote: >>> >>>> Hi List, >>>> >>>> After many hours playing with SSG and OpenSCAP and not able to do what >>>> I want I need some help. >>>> >>>> Forgive me if I use SCAP or OpenSCAP terms incorrectly, I am new to >>>> SSG and I am still getting familiar. >>>> >>>> The following OVAL test searches for system accounts (UID < 500) in >>>> /etc/at.allow (I am showing just the relevant parts of >>>> RHEL/5/input/oval/at_system_accounts.xml to explain my problem): >>>> >>>> >>>> >>>> >>>> >>>> >>> comment=3D"Testing system accounts in /etc/at.allow" >>>> id=3D"test_at_system_accounts_at_allow" version=3D"1"> >>>> >>>> >>>> >>>> >>> version=3D"1"> >>>> >>> var_ref=3D"var_at_system_accounts_allow_list" var_check=3D"at least on= e" >>>> datatype=3D"string" /> >>>> >>> action=3D"include">state_at_system_accounts_at_allow_uid >>>> >>>> >>>> >>> comment=3D"Accounts Allowed" datatype=3D"string" version=3D"1"> >>>> >>> object_ref=3D"object_at_system_accounts_allow_list" /> >>>> >>>> >>>> >>> id=3D"object_at_system_accounts_allow_list" version=3D"1"> >>>> /etc/at.allow >>>> ^(.*)$ >>>> >>> datatype=3D"int">0 >>>> >>>> >>>> >>> version=3D"1"> >>>> 500 >>>> >>>> >>>> >>>> The test above gets the users information from the sources specified >>>> in NSS (/etc/nsswitch.conf) which is correct, however I want to create >>>> a version that uses /etc/passwd directly. Why? We have many >>>> (thousands?) of RHEL 5 based servers with LDAP integration, and many >>>> (thousands?) of accounts in the LDAP servers. >>>> >>>> Simple tests like RHEL/5/input/oval/at_system_accounts.xml and >>>> RHEL/5/input/oval/cron_system_accounts.xml can take hours to run >>>> because they retrieve *all* users information from the LDAP servers >>>> and they do it *for each entry* in /etc/at.allow and /etc/cron.allow. >>>> Also, if we run OpenSCAP (oscap) at the same time in a few servers >>>> they hit the LDAP servers really bad. >>>> >>>> I have been trying to replace password_test and password_object by >>>> textfilecontent54_test and textfilecontent54_object without any luck. >>>> If you want, I can share my at_system_accounts.xml file that I thought >>>> it was going to work. >>>> >>>> I would really appreciate any help or hint? >>>> >>>> >>>> Regards >>>> -- >>>> Rodolfo Mart=C3=ADnez >>>> >>> >>> >>> -- >>> SCAP Security Guide mailing list >>> scap-security-guide(a)lists.fedorahosted.org >>> >>> https://lists.fedorahosted.org/admin/lists/scap-security-guide(a)lists.= fedorahosted.org >>> https://github.com/OpenSCAP/scap-security-guide/ >>> >>> >> >> -- >> SCAP Security Guide mailing list >> scap-security-guide(a)lists.fedorahosted.org >> >> https://lists.fedorahosted.org/admin/lists/scap-security-guide(a)lists.f= edorahosted.org >> https://github.com/OpenSCAP/scap-security-guide/ >> >> > > -- > SCAP Security Guide mailing list > scap-security-guide(a)lists.fedorahosted.org > > https://lists.fedorahosted.org/admin/lists/scap-security-guide(a)lists.fe= dorahosted.org > https://github.com/OpenSCAP/scap-security-guide/ > > --===============0214848897001403623== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGRpdiBkaXI9Imx0ciI+PGRpdj48ZGl2PkhpIDxmb250IHNpemU9IjIiPlJvZG9sZm8sPGJyPjxi cj48L2ZvbnQ+PC9kaXY+PGZvbnQgc2l6ZT0iMiI+V2hhdCBhYm91dCB0aGlzPzxicj48L2ZvbnQ+ PGJyPjxmb250IHNpemU9IjIiPjxzcGFuIGNsYXNzPSJpbSI+wqAgJmx0O2luZDp0ZXh0ZmlsZWNv bnRlbnQ1NF9vYmplY3QgaWQ9JnF1b3Q7b2JqZWN0X2F0X3N5c3RlbV9hY2NvdW50c19hbGxvd19s aXN0JnF1b3Q7IHZlcnNpb249JnF1b3Q7MSZxdW90OyZndDs8YnI+wqDCoMKgICZsdDtpbmQ6Zmls ZXBhdGgmZ3Q7L2V0Yy9wYXNzd2QmbHQ7L2luZDpmaWxlcGF0aCZndDs8YnI+wqDCoMKgICZsdDtp bmQ6cGF0dGVybiBvcGVyYXRpb249JnF1b3Q7cGF0dGVybiBtYXRjaCZxdW90OyZndDteKFteOl0r KTpbXjpdKzooWzUtOV1bXGRdW1xkXXxbMS05XVtcZF17Myx9KTpbXGRdKzpbXjpdKjpbXjpdKzpb XjpdKiQmbHQ7L2luZDpwYXR0ZXJuJmd0Ozxicj7CoMKgwqAgJmx0O2luZDppbnN0YW5jZSBvcGVy YXRpb249JnF1b3Q7Z3JlYXRlciB0aGFuIG9yIGVxdWFsJnF1b3Q7IGRhdGF0eXBlPSZxdW90O2lu dCZxdW90OyZndDsxJmx0Oy9pbmQ6aW5zdGFuY2UmZ3Q7PGJyPsKgICZsdDsvaW5kOnRleHRmaWxl Y29udGVudDU0X29iamVjdCZndDs8YnI+PC9zcGFuPjxicj48L2ZvbnQ+PC9kaXY+PGRpdj48Zm9u dCBzaXplPSIyIj5JcyB0aGF0IHdoYXQgeW91IGFyZSBhZnRlcj8gSXQgc2hvdWxkIGdldCB0aGUg dXNlcm5hbWVzIHRoYXQgYXJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byA1MDAuPGJyPjwvZm9u dD48L2Rpdj48ZGl2Pjxmb250IHNpemU9IjIiPjxicj48L2ZvbnQ+PC9kaXY+PGZvbnQgc2l6ZT0i MiI+R2FiZTwvZm9udD48YnI+PGRpdj48Zm9udCBzaXplPSIyIj48YnI+PGJyPiA8L2ZvbnQ+PC9k aXY+PC9kaXY+PGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxicj48ZGl2IGNsYXNzPSJnbWFpbF9x dW90ZSI+T24gV2VkLCBKdW4gOCwgMjAxNiBhdCAxMDozMiBBTSwgUm9kb2xmbyBNYXJ0w61uZXog PHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86cm10emN4QGdtYWlsLmNvbSIgdGFy Z2V0PSJfYmxhbmsiPnJtdHpjeEBnbWFpbC5jb208L2E+Jmd0Ozwvc3Bhbj4gd3JvdGU6PGJyPjxi bG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4O2Jv cmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGlyPSJsdHIi PjxkaXYgY2xhc3M9ImdtYWlsX2RlZmF1bHQiIHN0eWxlPSJmb250LWZhbWlseTp0YWhvbWEsc2Fu cy1zZXJpZjtmb250LXNpemU6c21hbGwiPkhpIEdhYmUsPGJyPjxicj48L2Rpdj48ZGl2IGNsYXNz PSJnbWFpbF9kZWZhdWx0IiBzdHlsZT0iZm9udC1mYW1pbHk6dGFob21hLHNhbnMtc2VyaWY7Zm9u dC1zaXplOnNtYWxsIj5ZZXMsIEkgYW0gbW9yZSBmYW1pbGlhciB3aXRoIE9WQUwgc3ludGF4IG5v dyBhbmQgSSB1bmRlcnN0YW5kIHdoeSBpdCBpcyBub3Qgd29ya2luZy48YnI+PGJyPjwvZGl2Pjxk aXYgY2xhc3M9ImdtYWlsX2RlZmF1bHQiIHN0eWxlPSJmb250LWZhbWlseTp0YWhvbWEsc2Fucy1z ZXJpZjtmb250LXNpemU6c21hbGwiPlRoZSBwcm9ibGVtIGluIG15IE9WQUwgdGVzdCBpcyBpbiB0 aGlzIHBhcnQ6PHNwYW4gY2xhc3M9IiI+PGJyPjxicj7CoCAmbHQ7aW5kOnRleHRmaWxlY29udGVu dDU0X29iamVjdCBpZD0mcXVvdDtvYmplY3RfYXRfc3lzdGVtX2FjY291bnRzX2FsbG93X2xpc3Qm cXVvdDsgdmVyc2lvbj0mcXVvdDsxJnF1b3Q7Jmd0Ozxicj7CoMKgwqAgJmx0O2luZDpmaWxlcGF0 aCZndDsvZXRjL3Bhc3N3ZCZsdDsvaW5kOmZpbGVwYXRoJmd0Ozxicj7CoMKgwqAgJmx0O2luZDpw YXR0ZXJuIG9wZXJhdGlvbj0mcXVvdDtwYXR0ZXJuIG1hdGNoJnF1b3Q7Jmd0O14oW146XSspOlte Ol0rOltcZF0rOltcZF0rOlteOl0qOlteOl0rOlteOl0qJCZsdDsvaW5kOnBhdHRlcm4mZ3Q7PGJy PsKgwqDCoCAmbHQ7aW5kOmluc3RhbmNlIG9wZXJhdGlvbj0mcXVvdDtncmVhdGVyIHRoYW4gb3Ig ZXF1YWwmcXVvdDsgZGF0YXR5cGU9JnF1b3Q7aW50JnF1b3Q7Jmd0OzEmbHQ7L2luZDppbnN0YW5j ZSZndDs8YnI+wqDCoMKgICZsdDtmaWx0ZXIgYWN0aW9uPSZxdW90O2luY2x1ZGUmcXVvdDsmZ3Q7 c3RhdGVfYXRfc3lzdGVtX2FjY291bnRzX2V0Y19wYXNzd2QmbHQ7L2ZpbHRlciZndDs8YnI+wqAg Jmx0Oy9pbmQ6dGV4dGZpbGVjb250ZW50NTRfb2JqZWN0Jmd0Ozxicj48YnI+wqAgJmx0O2luZDp0 ZXh0ZmlsZWNvbnRlbnQ1NF9zdGF0ZSBpZD0mcXVvdDtzdGF0ZV9hdF9zeXN0ZW1fYWNjb3VudHNf ZXRjX3Bhc3N3ZCZxdW90OyB2ZXJzaW9uPSZxdW90OzEmcXVvdDsmZ3Q7PGJyPsKgwqDCoCAmbHQ7 aW5kOmZpbGVwYXRoJmd0Oy9ldGMvcGFzc3dkJmx0Oy9pbmQ6ZmlsZXBhdGgmZ3Q7PGJyPsKgwqDC oCAmbHQ7aW5kOnBhdHRlcm4gb3BlcmF0aW9uPSZxdW90O3BhdHRlcm4gbWF0Y2gmcXVvdDsmZ3Q7 XlteOl0rOlteOl0rOihbXGRdKyk6W1xkXSs6W146XSo6W146XSs6W146XSokJmx0Oy9pbmQ6cGF0 dGVybiZndDs8YnI+wqDCoMKgICZsdDtpbmQ6aW5zdGFuY2Ugb3BlcmF0aW9uPSZxdW90O2dyZWF0 ZXIgdGhhbiBvciBlcXVhbCZxdW90OyBkYXRhdHlwZT0mcXVvdDtpbnQmcXVvdDsmZ3Q7MSZsdDsv aW5kOmluc3RhbmNlJmd0Ozxicj7CoMKgwqAgJmx0O2luZDpzdWJleHByZXNzaW9uIG9wZXJhdGlv bj0mcXVvdDtncmVhdGVyIHRoYW4gb3IgZXF1YWwmcXVvdDsgZGF0YXR5cGU9JnF1b3Q7aW50JnF1 b3Q7Jmd0OzUwMCZsdDsvaW5kOnN1YmV4cHJlc3Npb24mZ3Q7PGJyPsKgICZsdDsvaW5kOnRleHRm aWxlY29udGVudDU0X3N0YXRlJmd0Ozxicj48YnI+PGJyPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNz PSJnbWFpbF9kZWZhdWx0IiBzdHlsZT0iZm9udC1mYW1pbHk6dGFob21hLHNhbnMtc2VyaWY7Zm9u dC1zaXplOnNtYWxsIj4mIzM5OyZsdDtpbmQ6c3ViZXhwcmVzc2lvbiZndDsmIzM5OyBpbiBibG9j ayBpbiYjMzk7Jmx0O2luZDp0ZXh0ZmlsZWNvbnRlbnQ1NF9zdGF0ZSZndDsmIzM5OyBpcyBnZXR0 aW5nIHRoZSBzdWJleHByZXNzaW9uIHBhdHRlcm4gZnJvbSAmIzM5OyZsdDtpbmQ6dGV4dGZpbGVj b250ZW50NTRfb2JqZWN0Jmd0OyYjMzk7IHdoaWNoIGNvbnRhaW5zIHRoZSB1c2VybmFtZTsgc28g Y29tcGFyaW5nIGEgdXNlcm5hbWUgdG8gYmUgYW4gaW50ZWdlciAmIzM5O2dyZWF0ZXIgb3IgZXF1 YWwgdG8gNTAwJiMzOTsgaXMgbm90IHZhbGlkLjxicj48YnI+PGJyPjwvZGl2PjxkaXYgY2xhc3M9 ImdtYWlsX2RlZmF1bHQiIHN0eWxlPSJmb250LWZhbWlseTp0YWhvbWEsc2Fucy1zZXJpZjtmb250 LXNpemU6c21hbGwiPk15IHF1ZXN0aW9uIGlzIG11Y2ggc2ltcGxlciBub3c6PGJyPjxicj48L2Rp dj48ZGl2IGNsYXNzPSJnbWFpbF9kZWZhdWx0IiBzdHlsZT0iZm9udC1mYW1pbHk6dGFob21hLHNh bnMtc2VyaWY7Zm9udC1zaXplOnNtYWxsIj5Ib3cgY2FuIGdldCBhbGwgdXNlcm5hbWVzIGZyb20g L2V0Yy9wYXNzd2QgdGhhdCBoYXZlIFVJRCBncmVhdGVyIG9yIGVxdWFsIHRvIDUwMCB3aXRob3V0 IHVzaW5nIHBhc3N3b3JkX29iamVjdD8gSSBoYXZlIGJlZW4gdHJ5aW5nIHRvIGRvIHRoaXMgZm9y IG1hbnkgZGF5cyBub3cgd2l0aG91dCBhbnkgbHVjay48YnI+PGJyPjwvZGl2PjxkaXYgY2xhc3M9 ImdtYWlsX2RlZmF1bHQiIHN0eWxlPSJmb250LWZhbWlseTp0YWhvbWEsc2Fucy1zZXJpZjtmb250 LXNpemU6c21hbGwiPlRoYW5rcyBmb3IgeW91ciB0aW1lPGJyPjwvZGl2PjwvZGl2PjxkaXYgY2xh c3M9ImdtYWlsX2V4dHJhIj48YnIgY2xlYXI9ImFsbCI+PGRpdj48ZGl2IGRhdGEtc21hcnRtYWls PSJnbWFpbF9zaWduYXR1cmUiPjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OnRhaG9tYSxzYW5zLXNl cmlmIj48Zm9udCBzaXplPSIyIj4tLTxicj48L2ZvbnQ+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1m YW1pbHk6dGFob21hLHNhbnMtc2VyaWYiPjxmb250IHNpemU9IjIiPlJvZG9sZm8gTWFydMOtbmV6 PC9mb250PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXY+PGRpdiBjbGFzcz0iaDUiPgo8YnI+PGRpdiBj bGFzcz0iZ21haWxfcXVvdGUiPk9uIFR1ZSwgSnVuIDcsIDIwMTYgYXQgMTowMyBQTSwgR2FiZSBB bGZvcmQgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86cmVkaGF0cmlzZXNAZ21h aWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+cmVkaGF0cmlzZXNAZ21haWwuY29tPC9hPiZndDs8L3Nw YW4+IHdyb3RlOjxicj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJn aW46MCAwIDAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4 Ij48ZGl2IGRpcj0ibHRyIj48ZGl2PjxkaXY+PGRpdj5IZWxsbyBSb2RvbGZvLDxicj48YnI+PC9k aXY+SSBqdXN0IGRpZCBhIHF1aWNrIGdsYW5jZSBhcyBJIGN1cnJlbnRseSBkb24mIzM5O3QgaGF2 ZSB0aGUgY3ljbGVzIHRvIGxvb2sgaW50byB0aGlzIGJ1dCB0aGUgJnF1b3Q7c3RhdGVfYXRfc3lz dGVtX2FjY291bnRzX2F0X2FsbG93X3VpZCZxdW90OyBleGNsdWRlIGZpbHRlciBpcyB3aGVyZSB0 aGlzIGlzIG5vdCB3b3JraW5nLiBJdCBpcyBub3QgZmlsdGVyaW5nIFVJRHMgZ3JlYXRlciB0aGFu IDEgb3IgNTAwIGZvciB0aGF0IG1hdHRlci48YnI+PC9kaXY+U3BlY2lmaWNhbGx5IHRoaXMgc3Vi ZXhwcmVzc2lvbiBpcyB3aGF0IGlzIGZhaWxpbmc6PHNwYW4+PGJyPjxicj4mbHQ7aW5kOnN1YmV4 cHJlc3Npb24gb3BlcmF0aW9uPSZxdW90O2dyZWF0ZXIgdGhhbiBvciBlcXVhbCZxdW90OyBkYXRh dHlwZT0mcXVvdDtpbnQmcXVvdDsmZ3Q7NTAwJmx0Oy9pbmQ6c3ViZXhwcmVzc2lvbiZndDs8YnI+ PC9zcGFuPjwvZGl2PjxkaXY+PGJyPkdhYmU8YnI+PGRpdj48ZGl2PjxkaXY+PGRpdiBjbGFzcz0i Z21haWxfZXh0cmEiPjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+PGRpdj48ZGl2Pk9uIFRo dSwgSnVuIDIsIDIwMTYgYXQgODo1MiBQTSwgUm9kb2xmbyBNYXJ0w61uZXogPHNwYW4gZGlyPSJs dHIiPiZsdDs8YSBocmVmPSJtYWlsdG86cm10emN4QGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsi PnJtdHpjeEBnbWFpbC5jb208L2E+Jmd0Ozwvc3Bhbj4gd3JvdGU6PGJyPjxibG9ja3F1b3RlIGNs YXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXIt bGVmdDoxcHggc29saWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IGRp cj0ibHRyIj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTp0YWhvbWEsc2Fucy1zZXJpZjtmb250LXNp emU6c21hbGwiPkhpIG1wcmVpc2xlciw8YnI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFt aWx5OnRhaG9tYSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZTpzbWFsbCI+VGhhbmtzIGZvciB5b3Ugc3Vn Z2VzdGlvbiBpbiBJUkMuPGJyPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTp0YWhv bWEsc2Fucy1zZXJpZjtmb250LXNpemU6c21hbGwiPlRoaXMgd2hhdCBJIGhhdmUgc28gZmFyLCBi dXQgaXQgaXMgc3RpbGwgbm90IHdvcmtpbmcuIEkgZmVlbCBJIGFtIGNsb3NlLCBidXQgaXQgaXMg bm90IHdvcmtpbmcgeWV0LiBJIHdvdWxkIGFwcHJlY2lhdGUgYW55IHN1Z2dlc3Rpb248YnI+PGJy PiZsdDtkZWYtZ3JvdXAmZ3Q7PGJyPsKgICZsdDtkZWZpbml0aW9uIGNsYXNzPSZxdW90O2NvbXBs aWFuY2UmcXVvdDsgaWQ9JnF1b3Q7YXRfc3lzdGVtX2FjY291bnRzJnF1b3Q7IHZlcnNpb249JnF1 b3Q7MSZxdW90OyZndDs8YnI+wqDCoMKgICZsdDttZXRhZGF0YSZndDs8YnI+wqDCoMKgwqDCoCAm bHQ7dGl0bGUmZ3Q7Tm8gc3lzdGVtIGFjY291bnRzIGluIC9ldGMvYXQuYWxsb3cmbHQ7L3RpdGxl Jmd0Ozxicj7CoMKgwqDCoMKgICZsdDthZmZlY3RlZCBmYW1pbHk9JnF1b3Q7dW5peCZxdW90OyZn dDs8YnI+wqDCoMKgwqDCoMKgwqAgJmx0O3BsYXRmb3JtJmd0O0NlbnRPUyA1Jmx0Oy9wbGF0Zm9y bSZndDs8YnI+wqDCoMKgwqDCoMKgwqAgJmx0O3BsYXRmb3JtJmd0O1JlZCBIYXQgRW50ZXJwcmlz ZSBMaW51eCA1Jmx0Oy9wbGF0Zm9ybSZndDs8YnI+wqDCoMKgwqDCoCAmbHQ7L2FmZmVjdGVkJmd0 Ozxicj7CoMKgwqDCoMKgICZsdDtkZXNjcmlwdGlvbiZndDtHcm91cCBvd25lciBmb3IgL2V0Yy9h dC5hbGxvdyBhbmQgL2V0Yy9hdC5kZW55IG11c3QgZXhpc3QuJmx0Oy9kZXNjcmlwdGlvbiZndDs8 YnI+wqDCoMKgICZsdDsvbWV0YWRhdGEmZ3Q7PGJyPsKgwqDCoCAmbHQ7Y3JpdGVyaWEmZ3Q7PGJy PsKgwqDCoMKgwqAgJmx0O2NyaXRlcmlvbiB0ZXN0X3JlZj0mcXVvdDt0ZXN0X2F0X3N5c3RlbV9h Y2NvdW50c19hdF9hbGxvdyZxdW90OyAvJmd0Ozxicj7CoMKgwqAgJmx0Oy9jcml0ZXJpYSZndDs8 YnI+wqAgJmx0Oy9kZWZpbml0aW9uJmd0Ozxicj48YnI+wqAgJmx0OyEtLSBUaGlzIHZhcmlhYmxl IHNob3VsZCBnZXQgYWxsIHVzZXJzIGZyb20gL2V0Yy9wYXNzd2QgdGhhdCBoYXMgVUlEICZndDs9 IDUwMCAtLSZndDs8YnI+wqAgJmx0O2xvY2FsX3ZhcmlhYmxlIGlkPSZxdW90O3Zhcl9hdF9zeXN0 ZW1fYWNjb3VudHNfYWxsb3dfbGlzdCZxdW90OyBjb21tZW50PSZxdW90O0FjY291bnRzIEFsbG93 ZWQmcXVvdDsgZGF0YXR5cGU9JnF1b3Q7c3RyaW5nJnF1b3Q7IHZlcnNpb249JnF1b3Q7MSZxdW90 OyZndDs8YnI+wqDCoMKgICZsdDtvYmplY3RfY29tcG9uZW50IGl0ZW1fZmllbGQ9JnF1b3Q7c3Vi ZXhwcmVzc2lvbiZxdW90OyBvYmplY3RfcmVmPSZxdW90O29iamVjdF9hdF9zeXN0ZW1fYWNjb3Vu dHNfYWxsb3dfbGlzdCZxdW90OyAvJmd0Ozxicj7CoCAmbHQ7L2xvY2FsX3ZhcmlhYmxlJmd0Ozxi cj48YnI+wqAgJmx0O2luZDp0ZXh0ZmlsZWNvbnRlbnQ1NF9vYmplY3QgaWQ9JnF1b3Q7b2JqZWN0 X2F0X3N5c3RlbV9hY2NvdW50c19hbGxvd19saXN0JnF1b3Q7IHZlcnNpb249JnF1b3Q7MSZxdW90 OyZndDs8YnI+wqDCoMKgICZsdDtpbmQ6ZmlsZXBhdGgmZ3Q7L2V0Yy9wYXNzd2QmbHQ7L2luZDpm aWxlcGF0aCZndDs8YnI+wqDCoMKgICZsdDtpbmQ6cGF0dGVybiBvcGVyYXRpb249JnF1b3Q7cGF0 dGVybiBtYXRjaCZxdW90OyZndDteKFteOl0rKTpbXjpdKzpbXGRdKzpbXGRdKzpbXjpdKjpbXjpd KzpbXjpdKiQmbHQ7L2luZDpwYXR0ZXJuJmd0Ozxicj7CoMKgwqAgJmx0O2luZDppbnN0YW5jZSBv cGVyYXRpb249JnF1b3Q7Z3JlYXRlciB0aGFuIG9yIGVxdWFsJnF1b3Q7IGRhdGF0eXBlPSZxdW90 O2ludCZxdW90OyZndDsxJmx0Oy9pbmQ6aW5zdGFuY2UmZ3Q7PGJyPsKgwqDCoCAmbHQ7ZmlsdGVy IGFjdGlvbj0mcXVvdDtpbmNsdWRlJnF1b3Q7Jmd0O3N0YXRlX2F0X3N5c3RlbV9hY2NvdW50c19l dGNfcGFzc3dkJmx0Oy9maWx0ZXImZ3Q7PGJyPsKgICZsdDsvaW5kOnRleHRmaWxlY29udGVudDU0 X29iamVjdCZndDs8YnI+PGJyPsKgICZsdDtpbmQ6dGV4dGZpbGVjb250ZW50NTRfc3RhdGUgaWQ9 JnF1b3Q7c3RhdGVfYXRfc3lzdGVtX2FjY291bnRzX2V0Y19wYXNzd2QmcXVvdDsgdmVyc2lvbj0m cXVvdDsxJnF1b3Q7Jmd0Ozxicj7CoMKgwqAgJmx0O2luZDpmaWxlcGF0aCZndDsvZXRjL3Bhc3N3 ZCZsdDsvaW5kOmZpbGVwYXRoJmd0Ozxicj7CoMKgwqAgJmx0O2luZDpwYXR0ZXJuIG9wZXJhdGlv bj0mcXVvdDtwYXR0ZXJuIG1hdGNoJnF1b3Q7Jmd0O15bXjpdKzpbXjpdKzooW1xkXSspOltcZF0r OlteOl0qOlteOl0rOlteOl0qJCZsdDsvaW5kOnBhdHRlcm4mZ3Q7PGJyPsKgwqDCoCAmbHQ7aW5k Omluc3RhbmNlIG9wZXJhdGlvbj0mcXVvdDtncmVhdGVyIHRoYW4gb3IgZXF1YWwmcXVvdDsgZGF0 YXR5cGU9JnF1b3Q7aW50JnF1b3Q7Jmd0OzEmbHQ7L2luZDppbnN0YW5jZSZndDs8YnI+wqDCoMKg ICZsdDtpbmQ6c3ViZXhwcmVzc2lvbiBvcGVyYXRpb249JnF1b3Q7Z3JlYXRlciB0aGFuIG9yIGVx dWFsJnF1b3Q7IGRhdGF0eXBlPSZxdW90O2ludCZxdW90OyZndDs1MDAmbHQ7L2luZDpzdWJleHBy ZXNzaW9uJmd0Ozxicj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PC9kaXY+PGJsb2Nr cXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4 O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgi PjxkaXY+PGRpdj48ZGl2IGRpcj0ibHRyIj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTp0YWhvbWEs c2Fucy1zZXJpZjtmb250LXNpemU6c21hbGwiPsKgICZsdDsvaW5kOnRleHRmaWxlY29udGVudDU0 X3N0YXRlJmd0Ozxicj48YnI+PGJyPsKgICZsdDshLS0gVGVzdCB0byBjaGVjayB0aGF0IHRoZXJl IGlzIG5vIHN5c3RlbSBhY2NvdW50cyBpbiAvZXRjL2F0LmFsbG93IC0tJmd0Ozxicj7CoCAmbHQ7 aW5kOnRleHRmaWxlY29udGVudDU0X3Rlc3QgY2hlY2s9JnF1b3Q7YWxsJnF1b3Q7IGNoZWNrX2V4 aXN0ZW5jZT0mcXVvdDtub25lX2V4aXN0JnF1b3Q7IGlkPSZxdW90O3Rlc3RfYXRfc3lzdGVtX2Fj Y291bnRzX2F0X2FsbG93JnF1b3Q7IGNvbW1lbnQ9JnF1b3Q7VGVzdGluZyAvZXRjL2F0LmFsbG93 IGZvciBzeXN0ZW0gYWNjb3VudHMmcXVvdDsgdmVyc2lvbj0mcXVvdDsxJnF1b3Q7Jmd0Ozxicj7C oMKgwqAgJmx0O2luZDpvYmplY3Qgb2JqZWN0X3JlZj0mcXVvdDtvYmplY3RfYXRfc3lzdGVtX2Fj Y291bnRzX2FsbG93JnF1b3Q7IC8mZ3Q7PGJyPsKgICZsdDsvaW5kOnRleHRmaWxlY29udGVudDU0 X3Rlc3QmZ3Q7PGJyPjxicj7CoCAmbHQ7aW5kOnRleHRmaWxlY29udGVudDU0X29iamVjdCBjb21t ZW50PSZxdW90Oy9ldGMvYXQuYWxsb3cmcXVvdDsgaWQ9JnF1b3Q7b2JqZWN0X2F0X3N5c3RlbV9h Y2NvdW50c19hbGxvdyZxdW90OyB2ZXJzaW9uPSZxdW90OzEmcXVvdDsmZ3Q7PGJyPsKgwqDCoCAm bHQ7IS0tIEdldCBhbGwgdXNlcnMgZnJvbSAvZXRjL2F0LmFsbG93IC0tJmd0Ozxicj7CoMKgwqAg Jmx0O2luZDpmaWxlcGF0aCZndDsvZXRjL2F0LmFsbG93Jmx0Oy9pbmQ6ZmlsZXBhdGgmZ3Q7PGJy PsKgwqDCoCAmbHQ7aW5kOnBhdHRlcm4gb3BlcmF0aW9uPSZxdW90O3BhdHRlcm4gbWF0Y2gmcXVv dDsmZ3Q7XiguKykkJmx0Oy9pbmQ6cGF0dGVybiZndDs8YnI+wqDCoMKgICZsdDtpbmQ6aW5zdGFu Y2Ugb3BlcmF0aW9uPSZxdW90O2dyZWF0ZXIgdGhhbiBvciBlcXVhbCZxdW90OyBkYXRhdHlwZT0m cXVvdDtpbnQmcXVvdDsmZ3Q7MSZsdDsvaW5kOmluc3RhbmNlJmd0Ozxicj7CoMKgwqAgJmx0OyEt LSBFeGNsdWRlIHJvb3QgLS0mZ3Q7PGJyPsKgwqDCoCAmbHQ7ZmlsdGVyIGFjdGlvbj0mcXVvdDtl eGNsdWRlJnF1b3Q7Jmd0O3N0YXRlX2F0X3N5c3RlbV9hY2NvdW50c19hdF9hbGxvd19yb290Jmx0 Oy9maWx0ZXImZ3Q7PGJyPsKgwqDCoCAmbHQ7IS0tIEV4Y2x1ZGUgYWxsIHVzZXIgYWNjb3VudHMg LS0mZ3Q7PGJyPsKgwqDCoCAmbHQ7ZmlsdGVyIGFjdGlvbj0mcXVvdDtleGNsdWRlJnF1b3Q7Jmd0 O3N0YXRlX2F0X3N5c3RlbV9hY2NvdW50c19hdF9hbGxvd191aWQmbHQ7L2ZpbHRlciZndDs8YnI+ wqAgJmx0Oy9pbmQ6dGV4dGZpbGVjb250ZW50NTRfb2JqZWN0Jmd0Ozxicj7CoMKgwqAgPGJyPsKg ICZsdDtpbmQ6dGV4dGZpbGVjb250ZW50NTRfc3RhdGUgaWQ9JnF1b3Q7c3RhdGVfYXRfc3lzdGVt X2FjY291bnRzX2F0X2FsbG93X3Jvb3QmcXVvdDsgdmVyc2lvbj0mcXVvdDsxJnF1b3Q7Jmd0Ozxi cj7CoMKgwqAgJmx0O2luZDp0ZXh0Jmd0O3Jvb3QmbHQ7L2luZDp0ZXh0Jmd0Ozxicj7CoCAmbHQ7 L2luZDp0ZXh0ZmlsZWNvbnRlbnQ1NF9zdGF0ZSZndDs8YnI+PGJyPsKgICZsdDt1bml4OnBhc3N3 b3JkX3N0YXRlIGlkPSZxdW90O3N0YXRlX2F0X3N5c3RlbV9hY2NvdW50c19hdF9hbGxvd191aWQm cXVvdDsgdmVyc2lvbj0mcXVvdDsxJnF1b3Q7Jmd0Ozxicj7CoMKgwqAgJmx0O3VuaXg6dXNlcm5h bWUgdmFyX3JlZj0mcXVvdDt2YXJfYXRfc3lzdGVtX2FjY291bnRzX2FsbG93X2xpc3QmcXVvdDsg dmFyX2NoZWNrPSZxdW90O2F0IGxlYXN0IG9uZSZxdW90OyAvJmd0Ozxicj7CoCAmbHQ7L3VuaXg6 cGFzc3dvcmRfc3RhdGUmZ3Q7PGJyPjxicj4mbHQ7L2RlZi1ncm91cCZndDs8YnI+PGJyPi0tPGJy PjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OnRhaG9tYSxzYW5zLXNlcmlmO2ZvbnQtc2l6 ZTpzbWFsbCI+Um9kb2xmbzxicj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJnbWFpbF9leHRyYSI+ PGJyIGNsZWFyPSJhbGwiPjxkaXY+PGRpdiBkYXRhLXNtYXJ0bWFpbD0iZ21haWxfc2lnbmF0dXJl Ij48ZGl2IHN0eWxlPSJmb250LWZhbWlseTp0YWhvbWEsc2Fucy1zZXJpZiI+PGZvbnQgc2l6ZT0i MiI+LS08YnI+PC9mb250PjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OnRhaG9tYSxzYW5z LXNlcmlmIj48Zm9udCBzaXplPSIyIj5Sb2RvbGZvIE1hcnTDrW5lejwvZm9udD48L2Rpdj48L2Rp dj48L2Rpdj4KPGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj5PbiBUdWUsIE1heSAzMSwgMjAx NiBhdCA1OjQzIFBNLCBSb2RvbGZvIE1hcnTDrW5leiA8c3BhbiBkaXI9Imx0ciI+Jmx0OzxhIGhy ZWY9Im1haWx0bzpybXR6Y3hAZ21haWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+cm10emN4QGdtYWls LmNvbTwvYT4mZ3Q7PC9zcGFuPiB3cm90ZTo8YnI+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1 b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xp ZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPkhpIExpc3QsPGJyPgo8YnI+CkFm dGVyIG1hbnkgaG91cnMgcGxheWluZyB3aXRoIFNTRyBhbmQgT3BlblNDQVAgYW5kIG5vdCBhYmxl IHRvIGRvIHdoYXQ8YnI+Ckkgd2FudCBJIG5lZWQgc29tZSBoZWxwLjxicj4KPGJyPgpGb3JnaXZl IG1lIGlmIEkgdXNlIFNDQVAgb3IgT3BlblNDQVAgdGVybXMgaW5jb3JyZWN0bHksIEkgYW0gbmV3 IHRvPGJyPgpTU0cgYW5kIEkgYW0gc3RpbGwgZ2V0dGluZyBmYW1pbGlhci48YnI+Cjxicj4KVGhl IGZvbGxvd2luZyBPVkFMIHRlc3Qgc2VhcmNoZXMgZm9yIHN5c3RlbSBhY2NvdW50cyAoVUlEICZs dDsgNTAwKSBpbjxicj4KL2V0Yy9hdC5hbGxvdyAoSSBhbSBzaG93aW5nIGp1c3QgdGhlIHJlbGV2 YW50IHBhcnRzIG9mPGJyPgpSSEVMLzUvaW5wdXQvb3ZhbC9hdF9zeXN0ZW1fYWNjb3VudHMueG1s IHRvIGV4cGxhaW4gbXkgcHJvYmxlbSk6PGJyPgo8YnI+CiZsdDtjcml0ZXJpYSZndDs8YnI+CsKg ICZsdDtjcml0ZXJpb24gdGVzdF9yZWY9JnF1b3Q7dGVzdF9hdF9zeXN0ZW1fYWNjb3VudHNfYXRf YWxsb3cmcXVvdDsgLyZndDs8YnI+CiZsdDsvY3JpdGVyaWEmZ3Q7PGJyPgo8YnI+CiZsdDt1bml4 OnBhc3N3b3JkX3Rlc3QgY2hlY2s9JnF1b3Q7YWxsJnF1b3Q7IGNoZWNrX2V4aXN0ZW5jZT0mcXVv dDtub25lX2V4aXN0JnF1b3Q7PGJyPgpjb21tZW50PSZxdW90O1Rlc3Rpbmcgc3lzdGVtIGFjY291 bnRzIGluIC9ldGMvYXQuYWxsb3cmcXVvdDs8YnI+CmlkPSZxdW90O3Rlc3RfYXRfc3lzdGVtX2Fj Y291bnRzX2F0X2FsbG93JnF1b3Q7IHZlcnNpb249JnF1b3Q7MSZxdW90OyZndDs8YnI+CsKgICZs dDt1bml4Om9iamVjdCBvYmplY3RfcmVmPSZxdW90O29iamVjdF9hdF9zeXN0ZW1fYWNjb3VudHNf YXRfYWxsb3cmcXVvdDsgLyZndDs8YnI+CiZsdDsvdW5peDpwYXNzd29yZF90ZXN0Jmd0Ozxicj4K PGJyPgombHQ7dW5peDpwYXNzd29yZF9vYmplY3QgaWQ9JnF1b3Q7b2JqZWN0X2F0X3N5c3RlbV9h Y2NvdW50c19hdF9hbGxvdyZxdW90OyB2ZXJzaW9uPSZxdW90OzEmcXVvdDsmZ3Q7PGJyPgrCoCAm bHQ7dW5peDp1c2VybmFtZSBvcGVyYXRpb249JnF1b3Q7ZXF1YWxzJnF1b3Q7PGJyPgp2YXJfcmVm PSZxdW90O3Zhcl9hdF9zeXN0ZW1fYWNjb3VudHNfYWxsb3dfbGlzdCZxdW90OyB2YXJfY2hlY2s9 JnF1b3Q7YXQgbGVhc3Qgb25lJnF1b3Q7PGJyPgpkYXRhdHlwZT0mcXVvdDtzdHJpbmcmcXVvdDsg LyZndDs8YnI+CsKgICZsdDtmaWx0ZXIgYWN0aW9uPSZxdW90O2luY2x1ZGUmcXVvdDsmZ3Q7c3Rh dGVfYXRfc3lzdGVtX2FjY291bnRzX2F0X2FsbG93X3VpZCZsdDsvZmlsdGVyJmd0Ozxicj4KJmx0 Oy91bml4OnBhc3N3b3JkX29iamVjdCZndDs8YnI+Cjxicj4KJmx0O2xvY2FsX3ZhcmlhYmxlIGlk PSZxdW90O3Zhcl9hdF9zeXN0ZW1fYWNjb3VudHNfYWxsb3dfbGlzdCZxdW90Ozxicj4KY29tbWVu dD0mcXVvdDtBY2NvdW50cyBBbGxvd2VkJnF1b3Q7IGRhdGF0eXBlPSZxdW90O3N0cmluZyZxdW90 OyB2ZXJzaW9uPSZxdW90OzEmcXVvdDsmZ3Q7PGJyPgrCoCAmbHQ7b2JqZWN0X2NvbXBvbmVudCBp dGVtX2ZpZWxkPSZxdW90O3N1YmV4cHJlc3Npb24mcXVvdDs8YnI+Cm9iamVjdF9yZWY9JnF1b3Q7 b2JqZWN0X2F0X3N5c3RlbV9hY2NvdW50c19hbGxvd19saXN0JnF1b3Q7IC8mZ3Q7PGJyPgombHQ7 L2xvY2FsX3ZhcmlhYmxlJmd0Ozxicj4KPGJyPgombHQ7aW5kOnRleHRmaWxlY29udGVudDU0X29i amVjdCBjb21tZW50PSZxdW90Oy9ldGMvYXQuYWxsb3cmcXVvdDs8YnI+CmlkPSZxdW90O29iamVj dF9hdF9zeXN0ZW1fYWNjb3VudHNfYWxsb3dfbGlzdCZxdW90OyB2ZXJzaW9uPSZxdW90OzEmcXVv dDsmZ3Q7PGJyPgrCoCAmbHQ7aW5kOmZpbGVwYXRoJmd0Oy9ldGMvYXQuYWxsb3cmbHQ7L2luZDpm aWxlcGF0aCZndDs8YnI+CsKgICZsdDtpbmQ6cGF0dGVybiBvcGVyYXRpb249JnF1b3Q7cGF0dGVy biBtYXRjaCZxdW90OyZndDteKC4qKSQmbHQ7L2luZDpwYXR0ZXJuJmd0Ozxicj4KwqAgJmx0O2lu ZDppbnN0YW5jZSBvcGVyYXRpb249JnF1b3Q7Z3JlYXRlciB0aGFuIG9yIGVxdWFsJnF1b3Q7PGJy PgpkYXRhdHlwZT0mcXVvdDtpbnQmcXVvdDsmZ3Q7MCZsdDsvaW5kOmluc3RhbmNlJmd0Ozxicj4K Jmx0Oy9pbmQ6dGV4dGZpbGVjb250ZW50NTRfb2JqZWN0Jmd0Ozxicj4KPGJyPgombHQ7dW5peDpw YXNzd29yZF9zdGF0ZSBpZD0mcXVvdDtzdGF0ZV9hdF9zeXN0ZW1fYWNjb3VudHNfYXRfYWxsb3df dWlkJnF1b3Q7IHZlcnNpb249JnF1b3Q7MSZxdW90OyZndDs8YnI+CsKgICZsdDt1bml4OnVzZXJf aWQgZGF0YXR5cGU9JnF1b3Q7aW50JnF1b3Q7IG9wZXJhdGlvbj0mcXVvdDtsZXNzIHRoYW4mcXVv dDsmZ3Q7NTAwJmx0Oy91bml4OnVzZXJfaWQmZ3Q7PGJyPgombHQ7L3VuaXg6cGFzc3dvcmRfc3Rh dGUmZ3Q7PGJyPgo8YnI+Cjxicj4KVGhlIHRlc3QgYWJvdmUgZ2V0cyB0aGUgdXNlcnMgaW5mb3Jt YXRpb24gZnJvbSB0aGUgc291cmNlcyBzcGVjaWZpZWQ8YnI+CmluIE5TUyAoL2V0Yy9uc3N3aXRj aC5jb25mKSB3aGljaCBpcyBjb3JyZWN0LCBob3dldmVyIEkgd2FudCB0byBjcmVhdGU8YnI+CmEg dmVyc2lvbiB0aGF0IHVzZXMgL2V0Yy9wYXNzd2QgZGlyZWN0bHkuIFdoeT8gV2UgaGF2ZSBtYW55 PGJyPgoodGhvdXNhbmRzPykgb2YgUkhFTCA1IGJhc2VkIHNlcnZlcnMgd2l0aCBMREFQIGludGVn cmF0aW9uLCBhbmQgbWFueTxicj4KKHRob3VzYW5kcz8pIG9mIGFjY291bnRzIGluIHRoZSBMREFQ IHNlcnZlcnMuPGJyPgo8YnI+ClNpbXBsZSB0ZXN0cyBsaWtlIFJIRUwvNS9pbnB1dC9vdmFsL2F0 X3N5c3RlbV9hY2NvdW50cy54bWwgYW5kPGJyPgpSSEVMLzUvaW5wdXQvb3ZhbC9jcm9uX3N5c3Rl bV9hY2NvdW50cy54bWwgY2FuIHRha2UgaG91cnMgdG8gcnVuPGJyPgpiZWNhdXNlIHRoZXkgcmV0 cmlldmUgKmFsbCogdXNlcnMgaW5mb3JtYXRpb24gZnJvbSB0aGUgTERBUCBzZXJ2ZXJzPGJyPgph bmQgdGhleSBkbyBpdCAqZm9yIGVhY2ggZW50cnkqIGluIC9ldGMvYXQuYWxsb3cgYW5kIC9ldGMv Y3Jvbi5hbGxvdy48YnI+CkFsc28sIGlmIHdlIHJ1biBPcGVuU0NBUCAob3NjYXApIGF0IHRoZSBz YW1lIHRpbWUgaW4gYSBmZXcgc2VydmVyczxicj4KdGhleSBoaXQgdGhlIExEQVAgc2VydmVycyBy ZWFsbHkgYmFkLjxicj4KPGJyPgpJIGhhdmUgYmVlbiB0cnlpbmcgdG8gcmVwbGFjZSBwYXNzd29y ZF90ZXN0IGFuZCBwYXNzd29yZF9vYmplY3QgYnk8YnI+CnRleHRmaWxlY29udGVudDU0X3Rlc3Qg YW5kIHRleHRmaWxlY29udGVudDU0X29iamVjdCB3aXRob3V0IGFueSBsdWNrLjxicj4KSWYgeW91 IHdhbnQsIEkgY2FuIHNoYXJlIG15IGF0X3N5c3RlbV9hY2NvdW50cy54bWwgZmlsZSB0aGF0IEkg dGhvdWdodDxicj4KaXQgd2FzIGdvaW5nIHRvIHdvcmsuPGJyPgo8YnI+Ckkgd291bGQgcmVhbGx5 IGFwcHJlY2lhdGUgYW55IGhlbHAgb3IgaGludD88YnI+Cjxicj4KPGJyPgpSZWdhcmRzPHNwYW4+ PGZvbnQgY29sb3I9IiM4ODg4ODgiPjxicj4KLS08YnI+ClJvZG9sZm8gTWFydMOtbmV6PGJyPgo8 L2ZvbnQ+PC9zcGFuPjwvYmxvY2txdW90ZT48L2Rpdj48YnI+PC9kaXY+Cjxicj48L2Rpdj48L2Rp dj48c3Bhbj48Zm9udCBjb2xvcj0iIzg4ODg4OCI+LS08YnI+ClNDQVAgU2VjdXJpdHkgR3VpZGUg bWFpbGluZyBsaXN0PGJyPgo8YSBocmVmPSJtYWlsdG86c2NhcC1zZWN1cml0eS1ndWlkZUBsaXN0 cy5mZWRvcmFob3N0ZWQub3JnIiB0YXJnZXQ9Il9ibGFuayI+c2NhcC1zZWN1cml0eS1ndWlkZUBs aXN0cy5mZWRvcmFob3N0ZWQub3JnPC9hPjxicj4KPGEgaHJlZj0iaHR0cHM6Ly9saXN0cy5mZWRv cmFob3N0ZWQub3JnL2FkbWluL2xpc3RzL3NjYXAtc2VjdXJpdHktZ3VpZGVAbGlzdHMuZmVkb3Jh aG9zdGVkLm9yZyIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9saXN0 cy5mZWRvcmFob3N0ZWQub3JnL2FkbWluL2xpc3RzL3NjYXAtc2VjdXJpdHktZ3VpZGVAbGlzdHMu ZmVkb3JhaG9zdGVkLm9yZzwvYT48YnI+CjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9PcGVu U0NBUC9zY2FwLXNlY3VyaXR5LWd1aWRlLyIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFu ayI+aHR0cHM6Ly9naXRodWIuY29tL09wZW5TQ0FQL3NjYXAtc2VjdXJpdHktZ3VpZGUvPC9hPjxi cj4KPGJyPjwvZm9udD48L3NwYW4+PC9ibG9ja3F1b3RlPjwvZGl2Pjxicj48L2Rpdj48L2Rpdj48 L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4KPGJyPi0tPGJyPgpTQ0FQIFNlY3VyaXR5IEd1aWRlIG1h aWxpbmcgbGlzdDxicj4KPGEgaHJlZj0ibWFpbHRvOnNjYXAtc2VjdXJpdHktZ3VpZGVAbGlzdHMu ZmVkb3JhaG9zdGVkLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnNjYXAtc2VjdXJpdHktZ3VpZGVAbGlz dHMuZmVkb3JhaG9zdGVkLm9yZzwvYT48YnI+CjxhIGhyZWY9Imh0dHBzOi8vbGlzdHMuZmVkb3Jh aG9zdGVkLm9yZy9hZG1pbi9saXN0cy9zY2FwLXNlY3VyaXR5LWd1aWRlQGxpc3RzLmZlZG9yYWhv c3RlZC5vcmciIHJlbD0ibm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vbGlzdHMu ZmVkb3JhaG9zdGVkLm9yZy9hZG1pbi9saXN0cy9zY2FwLXNlY3VyaXR5LWd1aWRlQGxpc3RzLmZl ZG9yYWhvc3RlZC5vcmc8L2E+PGJyPgo8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vT3BlblND QVAvc2NhcC1zZWN1cml0eS1ndWlkZS8iIHJlbD0ibm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsi Pmh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuU0NBUC9zY2FwLXNlY3VyaXR5LWd1aWRlLzwvYT48YnI+ Cjxicj48L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPjwvZGl2PjwvZGl2PjwvZGl2Pgo8YnI+LS08YnI+ ClNDQVAgU2VjdXJpdHkgR3VpZGUgbWFpbGluZyBsaXN0PGJyPgo8YSBocmVmPSJtYWlsdG86c2Nh cC1zZWN1cml0eS1ndWlkZUBsaXN0cy5mZWRvcmFob3N0ZWQub3JnIj5zY2FwLXNlY3VyaXR5LWd1 aWRlQGxpc3RzLmZlZG9yYWhvc3RlZC5vcmc8L2E+PGJyPgo8YSBocmVmPSJodHRwczovL2xpc3Rz LmZlZG9yYWhvc3RlZC5vcmcvYWRtaW4vbGlzdHMvc2NhcC1zZWN1cml0eS1ndWlkZUBsaXN0cy5m ZWRvcmFob3N0ZWQub3JnIiByZWw9Im5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczov L2xpc3RzLmZlZG9yYWhvc3RlZC5vcmcvYWRtaW4vbGlzdHMvc2NhcC1zZWN1cml0eS1ndWlkZUBs aXN0cy5mZWRvcmFob3N0ZWQub3JnPC9hPjxicj4KPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29t L09wZW5TQ0FQL3NjYXAtc2VjdXJpdHktZ3VpZGUvIiByZWw9Im5vcmVmZXJyZXIiIHRhcmdldD0i X2JsYW5rIj5odHRwczovL2dpdGh1Yi5jb20vT3BlblNDQVAvc2NhcC1zZWN1cml0eS1ndWlkZS88 L2E+PGJyPgo8YnI+PC9ibG9ja3F1b3RlPjwvZGl2Pjxicj48L2Rpdj4K --===============0214848897001403623==--