Re: chipsec-1.5.0 in EFI Shell
Abu Cishubis <[email protected]> Mon, 04 Jan 2021 16:53:27 +0100
| Newsgroups | dev.linux.lists.oe-chipsec |
|---|---|
| Message-ID | <CAPwg83hKi=HsmztgArOeHJDw2kdOm6pM9b_amuqhGxTpy9ZkLg@mail.gmail.com> |
--===============8388754188546763709== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Aaron, The issue was solved. I run chipsec in a separate directory. It works also without the =E2=80=98-^#=E2=80=99 option. Thanks a lot. Philipp Am Di., 29. Dez. 2020 um 18:59 Uhr schrieb Holtsclaw, Brent < [email protected]>: > Please try putting the chipsec files in a chipsec folder and running. > There have been problems in the past when the chipsec files are placed > within the root directory. > > > > Thanks, > > Brent > > > > *From:* Vorname Nachname <[email protected]> > *Sent:* Friday, June 5, 2020 2:20 AM > *To:* chipsec(a)lists.01.org > *Subject:* [chipsec] Re: chipsec-1.5.0 in EFI Shell > > > > Hello, > > I saw a new chipsec version 1.5.1 is released now. I followed the > instructions > from chipsec-manual.pdf and used the python version from chipsec archive. > I took > the shell from edk2 package again. See this both links: > > https://github.com/chipsec/chipsec/archive/1.5.1.tar.gz > https://github.com/tianocore/edk2/archive/edk2-stable201903.tar.gz > > I got almost the same error as before with a different number. I attached= a > screenshot. > > Can anyone verify this issue? > > Best Regards, > Philipp > > > > Am Fr., 29. Mai 2020 um 17:16 Uhr schrieb Vorname Nachname < > ldevlzero(a)gmail.com>: > > Hello, > > Many thanks for the quick answers. I followed the instructions from the > chipsec-manual.pdf of chipsec-1.5.0. In my first test I used python versi= on > from chipsec-1.5.0 (chipsec_uefi_x64.zip) and UEFI-Shell from edk2 release > 2019-03-08 ( > https://github.com/tianocore/edk2/archive/edk2-stable201903.tar.gz). This > includes a precompiled UEFI-Shell binary which I used > (edk2-edk2-stable201903/ShellBinPkg/UefiShell/X64). With this setup I got > this error: > > OSError: [Errno 22] Invalid argument: 'FS0:FS0:chipsec' > > Can you tell me your working setup (UEFI-Binary and pyhton version)? > > Best regards > Philipp > > > > Am Fr., 29. Mai 2020 um 17:13 Uhr schrieb Vorname Nachname < > ldevlzero(a)gmail.com>: > > Hello, > > Many thanks for the quick answers. I followed the instructions from the > chipsec-manual.pdf of chipsec-1.5.0. In my first test I used python versi= on > from chipsec-1.5.0 (chipsec_uefi_x64.zip) and UEFI-Shell from edk2 release > 2019-03-08 ( > https://github.com/tianocore/edk2/archive/edk2-stable201903.tar.gz). This > includes a precompiled UEFI-Shell binary which I used > (edk2-edk2-stable201903/ShellBinPkg/UefiShell/X64). With this setup I got > this error: > > OSError: [Errno 22] Invalid argument: 'FS0:FS0:chipsec' > > Can you tell me your working setup (UEFI-Binary and pyhton version)? > > Best regards > Philipp > > > > Am Fr., 29. Mai 2020 um 00:24 Uhr schrieb Holtsclaw, Brent < > brent.holtsclaw(a)intel.com>: > > Did you follow the instructions from > https://github.com/chipsec/chipsec/wiki/Creating-a-Bootable-USB-drive-wit= h-UEFI-Shell? > They should have enough information to help out. It sounds like UEFI SHE= LL > is not the problem in this case. Can you elaborate on the python that you > are using. There is a python.efi module within the chipsec_uefi zipfile. > Python has been modified to include some chipsec specific commands with > chipsec. There are steps to reproduce the build, however I'm not sure th= at > they work with the latest EDK and you may need to build from an older > version. To my knowledge the code within chipsec is still compatible with > python2 at this point and you should be able to use 1.5.0. If you can run > chipsec with the debug flag and let us know where it is failing that would > help. > > Thanks, > Brent > > -----Original Message----- > From: Blibbet <[email protected]> > Sent: Thursday, May 28, 2020 2:55 PM > To: Vorname Nachname <[email protected]> > Cc: chipsec(a)lists.01.org > Subject: [chipsec] Re: chipsec-1.5.0 in EFI Shell > > What UEFI Shell are you using? "EFI Shell" may mean an ancient one. I > think I recall some thread where someone was trying to get CHIPSEC running > using an old (1.x?) OEM's shell (Apple?), and they had to provide their o= wn > instead. There is an older and a newer UEFI Shell. > > You should also include info about other Python code you were able to > successfully run in this EFI Shell. Maybe CHIPSEC is not the issue, the > issue is your EFI Shell and Python. > > Instead of building your own UEFI Python, what happens when you use the > CHIPSEC instructions and use their supplied python.efi? Wasn't there some > special CHIPSEC-centric options needed to build Python with? If so, that > should be clarified better in build docs. > > (Granted, it sucks having a security tool ship a pre-compiled Python > binary in their source tree, built in an unknown manner, with no checksum= s, > and no reproducable builds, and have the tool rely on this for determining > platform security. But that's another issue...) > > Intel has abandoned CPython V2 for UEFI patch, and is instead is working > on MicroPython for UEFI (which has some Python V3 support). Though Python > V2 is deprecated and most of world has moved to Python V3, CHIPSEC team is > still using/bundling CPython V2, and hasn't switched over to > using/relying-on/bundling MicroPython for UEFI. > > FWIW, I rarely see replies from the team for support questions on this > mailing list nor the Google Groups lists. It I was looking for a reply, I= 'd > file a Github issue (and include more info), or use Twitter. > > You might want to clarify that you're trying to run this on an Intel > system, not another ISA (like AMD or ARM or RISC-V), as that'd also not > work. > > HTH, > Lee > > On 5/28/20 7:36 AM, Vorname Nachname wrote: > > Hello, > > > > I tried to run chipsec-1.5.0 in EFI Shell without operating system but > > unfortunately it doesn't run in the EFI Shell. I ran these commands: > > > > Shell> fs0: > > FS0:\> python -^# chipsec_main.py -m debugenabled > > > > This results in a traceback with the last file chipsec/defines.py > > called function get_version(). > > > > OSError: [Errno 22] Invalud argument: 'FS0:FS0:chipsec' > > > > After that I compiled python 2.7.2 and python 2.7.10 from edk2 package > > version edk2-stable201903. This is the last package version with > > pyhton inside. With this version of pyhton I received another error > > message with the last line: > > > > ImportError: No module named expat; use SimpleXMLTreeBuilder instead. > > > > What is the best way to start the latest version of chipsec in the EFI > > Shell? What version of EFI Shell and pyhton is required? > > > > best wishes > > Philipp > > > > > > _______________________________________________ > > chipsec mailing list -- chipsec(a)lists.01.org To unsubscribe send an > > email to chipsec-leave(a)lists.01.org > _______________________________________________ > chipsec mailing list -- chipsec(a)lists.01.org To unsubscribe send an ema= il > to chipsec-leave(a)lists.01.org > _______________________________________________ > chipsec mailing list -- chipsec(a)lists.01.org > To unsubscribe send an email to chipsec-leave(a)lists.01.org > > --===============8388754188546763709== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.htm" PGRpdiBkaXI9Imx0ciI+PGRpdj5IaSBBYXJvbiw8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlRo ZSBpc3N1ZSB3YXMgc29sdmVkLiBJIHJ1biBjaGlwc2VjIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5 LiBJdCB3b3JrcyBhbHNvIHdpdGhvdXQgdGhlIOKAmC1eI+KAmSBvcHRpb24uPC9kaXY+PGRpdj48 YnI+PC9kaXY+PGRpdj5UaGFua3MgYSBsb3QuPC9kaXY+PGRpdj5QaGlsaXBwPGJyPjwvZGl2Pjwv ZGl2Pjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+PGRpdiBkaXI9Imx0ciIgY2xhc3M9Imdt YWlsX2F0dHIiPkFtIERpLiwgMjkuIERlei4gMjAyMCB1bSAxODo1OcKgVWhyIHNjaHJpZWIgSG9s dHNjbGF3LCBCcmVudCAmbHQ7PGEgaHJlZj0ibWFpbHRvOmJyZW50LmhvbHRzY2xhd0BpbnRlbC5j b20iPmJyZW50LmhvbHRzY2xhd0BpbnRlbC5jb208L2E+Jmd0Ozo8YnI+PC9kaXY+PGJsb2NrcXVv dGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2Jv cmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPgoK CgoKCjxkaXYgbGFuZz0iRU4tVVMiPgo8ZGl2IGNsYXNzPSJnbWFpbC1tXzI4MzE1NDMzNDM2MjYw OTU0OTdXb3JkU2VjdGlvbjEiPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj5QbGVhc2UgdHJ5IHB1dHRp bmcgdGhlIGNoaXBzZWMgZmlsZXMgaW4gYSBjaGlwc2VjIGZvbGRlciBhbmQgcnVubmluZy7CoCBU aGVyZSBoYXZlIGJlZW4gcHJvYmxlbXMgaW4gdGhlIHBhc3Qgd2hlbiB0aGUgY2hpcHNlYyBmaWxl cyBhcmUgcGxhY2VkIHdpdGhpbiB0aGUgcm9vdCBkaXJlY3RvcnkuwqAKPHU+PC91Pjx1PjwvdT48 L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjx1PjwvdT7CoDx1PjwvdT48L3A+CjxwIGNsYXNzPSJN c29Ob3JtYWwiPlRoYW5rcyw8dT48L3U+PHU+PC91PjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ QnJlbnQ8dT48L3U+PHU+PC91PjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHU+PC91PsKgPHU+ PC91PjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+RnJvbTo8L2I+IFZvcm5hbWUgTmFjaG5h bWUgJmx0OzxhIGhyZWY9Im1haWx0bzpsZGV2bHplcm9AZ21haWwuY29tIiB0YXJnZXQ9Il9ibGFu ayI+bGRldmx6ZXJvQGdtYWlsLmNvbTwvYT4mZ3Q7IDxicj4KPGI+U2VudDo8L2I+IEZyaWRheSwg SnVuZSA1LCAyMDIwIDI6MjAgQU08YnI+CjxiPlRvOjwvYj4gPGEgaHJlZj0ibWFpbHRvOmNoaXBz ZWNAbGlzdHMuMDEub3JnIiB0YXJnZXQ9Il9ibGFuayI+Y2hpcHNlY0BsaXN0cy4wMS5vcmc8L2E+ PGJyPgo8Yj5TdWJqZWN0OjwvYj4gW2NoaXBzZWNdIFJlOiBjaGlwc2VjLTEuNS4wIGluIEVGSSBT aGVsbDx1PjwvdT48dT48L3U+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48dT48L3U+wqA8dT48 L3U+PC9wPgo8ZGl2Pgo8cCBjbGFzcz0iTXNvTm9ybWFsIj5IZWxsbyw8YnI+Cjxicj4KSSBzYXcg YSBuZXcgY2hpcHNlYyB2ZXJzaW9uIDEuNS4xIGlzIHJlbGVhc2VkIG5vdy4gSSBmb2xsb3dlZCB0 aGUgaW5zdHJ1Y3Rpb25zPGJyPgpmcm9tIGNoaXBzZWMtbWFudWFsLnBkZiBhbmQgdXNlZCB0aGUg cHl0aG9uIHZlcnNpb24gZnJvbSBjaGlwc2VjIGFyY2hpdmUuIEkgdG9vazxicj4KdGhlIHNoZWxs IGZyb20gZWRrMiBwYWNrYWdlIGFnYWluLiBTZWUgdGhpcyBib3RoIGxpbmtzOjxicj4KPGJyPgo8 YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vY2hpcHNlYy9jaGlwc2VjL2FyY2hpdmUvMS41LjEu dGFyLmd6IiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9naXRodWIuY29tL2NoaXBzZWMvY2hpcHNl Yy9hcmNoaXZlLzEuNS4xLnRhci5nejwvYT48YnI+CjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNv bS90aWFub2NvcmUvZWRrMi9hcmNoaXZlL2VkazItc3RhYmxlMjAxOTAzLnRhci5neiIgdGFyZ2V0 PSJfYmxhbmsiPmh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9hcmNoaXZlL2VkazIt c3RhYmxlMjAxOTAzLnRhci5nejwvYT48YnI+Cjxicj4KSSBnb3QgYWxtb3N0IHRoZSBzYW1lIGVy cm9yIGFzIGJlZm9yZSB3aXRoIGEgZGlmZmVyZW50IG51bWJlci4gSSBhdHRhY2hlZCBhPGJyPgpz Y3JlZW5zaG90Ljxicj4KPGJyPgpDYW4gYW55b25lIHZlcmlmeSB0aGlzIGlzc3VlPzxicj4KPGJy PgpCZXN0IFJlZ2FyZHMsPGJyPgpQaGlsaXBwPHU+PC91Pjx1PjwvdT48L3A+CjwvZGl2Pgo8cCBj bGFzcz0iTXNvTm9ybWFsIj48dT48L3U+wqA8dT48L3U+PC9wPgo8ZGl2Pgo8ZGl2Pgo8cCBjbGFz cz0iTXNvTm9ybWFsIj5BbSBGci4sIDI5LiBNYWkgMjAyMCB1bSAxNzoxNsKgVWhyIHNjaHJpZWIg Vm9ybmFtZSBOYWNobmFtZSAmbHQ7PGEgaHJlZj0ibWFpbHRvOmxkZXZsemVyb0BnbWFpbC5jb20i IHRhcmdldD0iX2JsYW5rIj5sZGV2bHplcm9AZ21haWwuY29tPC9hPiZndDs6PHU+PC91Pjx1Pjwv dT48L3A+CjwvZGl2Pgo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWNvbG9yOmN1cnJlbnRjb2xv ciBjdXJyZW50Y29sb3IgY3VycmVudGNvbG9yIHJnYigyMDQsMjA0LDIwNCk7Ym9yZGVyLXN0eWxl Om5vbmUgbm9uZSBub25lIHNvbGlkO2JvcmRlci13aWR0aDptZWRpdW0gbWVkaXVtIG1lZGl1bSAx cHQ7cGFkZGluZzowaW4gMGluIDBpbiA2cHQ7bWFyZ2luOjVwdCAwaW4gNXB0IDQuOHB0Ij4KPGRp dj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SGVsbG8sPGJyPgo8YnI+Ck1hbnkgdGhhbmtzIGZvciB0 aGUgcXVpY2sgYW5zd2Vycy4gSSBmb2xsb3dlZCB0aGUgaW5zdHJ1Y3Rpb25zIGZyb20gdGhlIGNo aXBzZWMtbWFudWFsLnBkZiBvZiBjaGlwc2VjLTEuNS4wLiBJbiBteSBmaXJzdCB0ZXN0IEkgdXNl ZCBweXRob24gdmVyc2lvbiBmcm9tIGNoaXBzZWMtMS41LjAgKGNoaXBzZWNfdWVmaV94NjQuemlw KSBhbmQgVUVGSS1TaGVsbCBmcm9tIGVkazIgcmVsZWFzZSAyMDE5LTAzLTA4ICg8YSBocmVmPSJo dHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvYXJjaGl2ZS9lZGsyLXN0YWJsZTIwMTkw My50YXIuZ3oiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2Vk azIvYXJjaGl2ZS9lZGsyLXN0YWJsZTIwMTkwMy50YXIuZ3o8L2E+KS4KIFRoaXMgaW5jbHVkZXMg YSBwcmVjb21waWxlZCBVRUZJLVNoZWxsIGJpbmFyeSB3aGljaCBJIHVzZWQgKGVkazItZWRrMi1z dGFibGUyMDE5MDMvU2hlbGxCaW5Qa2cvVWVmaVNoZWxsL1g2NCkuIFdpdGggdGhpcyBzZXR1cCBJ IGdvdCB0aGlzIGVycm9yOjxicj4KPGJyPgpPU0Vycm9yOiBbRXJybm8gMjJdIEludmFsaWQgYXJn dW1lbnQ6ICYjMzk7RlMwOkZTMDpjaGlwc2VjJiMzOTs8YnI+Cjxicj4KQ2FuIHlvdSB0ZWxsIG1l IHlvdXIgd29ya2luZyBzZXR1cCAoVUVGSS1CaW5hcnkgYW5kIHB5aHRvbiB2ZXJzaW9uKT88YnI+ Cjxicj4KQmVzdCByZWdhcmRzPGJyPgpQaGlsaXBwPHU+PC91Pjx1PjwvdT48L3A+CjwvZGl2Pgo8 cCBjbGFzcz0iTXNvTm9ybWFsIj48dT48L3U+wqA8dT48L3U+PC9wPgo8ZGl2Pgo8ZGl2Pgo8cCBj bGFzcz0iTXNvTm9ybWFsIj5BbSBGci4sIDI5LiBNYWkgMjAyMCB1bSAxNzoxM8KgVWhyIHNjaHJp ZWIgVm9ybmFtZSBOYWNobmFtZSAmbHQ7PGEgaHJlZj0ibWFpbHRvOmxkZXZsemVyb0BnbWFpbC5j b20iIHRhcmdldD0iX2JsYW5rIj5sZGV2bHplcm9AZ21haWwuY29tPC9hPiZndDs6PHU+PC91Pjx1 PjwvdT48L3A+CjwvZGl2Pgo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWNvbG9yOmN1cnJlbnRj b2xvciBjdXJyZW50Y29sb3IgY3VycmVudGNvbG9yIHJnYigyMDQsMjA0LDIwNCk7Ym9yZGVyLXN0 eWxlOm5vbmUgbm9uZSBub25lIHNvbGlkO2JvcmRlci13aWR0aDptZWRpdW0gbWVkaXVtIG1lZGl1 bSAxcHQ7cGFkZGluZzowaW4gMGluIDBpbiA2cHQ7bWFyZ2luOjVwdCAwaW4gNXB0IDQuOHB0Ij4K PGRpdj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SGVsbG8sPGJyPgo8YnI+Ck1hbnkgdGhhbmtzIGZv ciB0aGUgcXVpY2sgYW5zd2Vycy4gSSBmb2xsb3dlZCB0aGUgaW5zdHJ1Y3Rpb25zIGZyb20gdGhl IGNoaXBzZWMtbWFudWFsLnBkZiBvZiBjaGlwc2VjLTEuNS4wLiBJbiBteSBmaXJzdCB0ZXN0IEkg dXNlZCBweXRob24gdmVyc2lvbiBmcm9tIGNoaXBzZWMtMS41LjAgKGNoaXBzZWNfdWVmaV94NjQu emlwKSBhbmQgVUVGSS1TaGVsbCBmcm9tIGVkazIgcmVsZWFzZSAyMDE5LTAzLTA4ICg8YSBocmVm PSJodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvYXJjaGl2ZS9lZGsyLXN0YWJsZTIw MTkwMy50YXIuZ3oiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3Jl L2VkazIvYXJjaGl2ZS9lZGsyLXN0YWJsZTIwMTkwMy50YXIuZ3o8L2E+KS4KIFRoaXMgaW5jbHVk ZXMgYSBwcmVjb21waWxlZCBVRUZJLVNoZWxsIGJpbmFyeSB3aGljaCBJIHVzZWQgKGVkazItZWRr Mi1zdGFibGUyMDE5MDMvU2hlbGxCaW5Qa2cvVWVmaVNoZWxsL1g2NCkuIFdpdGggdGhpcyBzZXR1 cCBJIGdvdCB0aGlzIGVycm9yOjxicj4KPGJyPgpPU0Vycm9yOiBbRXJybm8gMjJdIEludmFsaWQg YXJndW1lbnQ6ICYjMzk7RlMwOkZTMDpjaGlwc2VjJiMzOTs8YnI+Cjxicj4KQ2FuIHlvdSB0ZWxs IG1lIHlvdXIgd29ya2luZyBzZXR1cCAoVUVGSS1CaW5hcnkgYW5kIHB5aHRvbiB2ZXJzaW9uKT88 YnI+Cjxicj4KQmVzdCByZWdhcmRzPGJyPgpQaGlsaXBwPHU+PC91Pjx1PjwvdT48L3A+CjwvZGl2 Pgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48dT48L3U+wqA8dT48L3U+PC9wPgo8ZGl2Pgo8ZGl2Pgo8 cCBjbGFzcz0iTXNvTm9ybWFsIj5BbSBGci4sIDI5LiBNYWkgMjAyMCB1bSAwMDoyNMKgVWhyIHNj aHJpZWIgSG9sdHNjbGF3LCBCcmVudCAmbHQ7PGEgaHJlZj0ibWFpbHRvOmJyZW50LmhvbHRzY2xh d0BpbnRlbC5jb20iIHRhcmdldD0iX2JsYW5rIj5icmVudC5ob2x0c2NsYXdAaW50ZWwuY29tPC9h PiZndDs6PHU+PC91Pjx1PjwvdT48L3A+CjwvZGl2Pgo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVy LWNvbG9yOmN1cnJlbnRjb2xvciBjdXJyZW50Y29sb3IgY3VycmVudGNvbG9yIHJnYigyMDQsMjA0 LDIwNCk7Ym9yZGVyLXN0eWxlOm5vbmUgbm9uZSBub25lIHNvbGlkO2JvcmRlci13aWR0aDptZWRp dW0gbWVkaXVtIG1lZGl1bSAxcHQ7cGFkZGluZzowaW4gMGluIDBpbiA2cHQ7bWFyZ2luOjVwdCAw aW4gNXB0IDQuOHB0Ij4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+RGlkIHlvdSBmb2xsb3cgdGhlIGlu c3RydWN0aW9ucyBmcm9tIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaGlwc2VjL2NoaXBz ZWMvd2lraS9DcmVhdGluZy1hLUJvb3RhYmxlLVVTQi1kcml2ZS13aXRoLVVFRkktU2hlbGwiIHRh cmdldD0iX2JsYW5rIj4KaHR0cHM6Ly9naXRodWIuY29tL2NoaXBzZWMvY2hpcHNlYy93aWtpL0Ny ZWF0aW5nLWEtQm9vdGFibGUtVVNCLWRyaXZlLXdpdGgtVUVGSS1TaGVsbDwvYT4/wqAgVGhleSBz aG91bGQgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gdG8gaGVscCBvdXQuwqAgSXQgc291bmRzIGxp a2UgVUVGSSBTSEVMTCBpcyBub3QgdGhlIHByb2JsZW0gaW4gdGhpcyBjYXNlLsKgIENhbiB5b3Ug ZWxhYm9yYXRlIG9uIHRoZSBweXRob24gdGhhdCB5b3UgYXJlIHVzaW5nLsKgIFRoZXJlCiBpcyBh IHB5dGhvbi5lZmkgbW9kdWxlIHdpdGhpbiB0aGUgY2hpcHNlY191ZWZpIHppcGZpbGUuwqAgUHl0 aG9uIGhhcyBiZWVuIG1vZGlmaWVkIHRvIGluY2x1ZGUgc29tZSBjaGlwc2VjIHNwZWNpZmljIGNv bW1hbmRzIHdpdGggY2hpcHNlYy7CoCBUaGVyZSBhcmUgc3RlcHMgdG8gcmVwcm9kdWNlIHRoZSBi dWlsZCwgaG93ZXZlciBJJiMzOTttIG5vdCBzdXJlIHRoYXQgdGhleSB3b3JrIHdpdGggdGhlIGxh dGVzdCBFREsgYW5kIHlvdSBtYXkgbmVlZCB0byBidWlsZAogZnJvbSBhbiBvbGRlciB2ZXJzaW9u LsKgIFRvIG15IGtub3dsZWRnZSB0aGUgY29kZSB3aXRoaW4gY2hpcHNlYyBpcyBzdGlsbCBjb21w YXRpYmxlIHdpdGggcHl0aG9uMiBhdCB0aGlzIHBvaW50IGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUg dG8gdXNlIDEuNS4wLsKgIElmIHlvdSBjYW4gcnVuIGNoaXBzZWMgd2l0aCB0aGUgZGVidWcgZmxh ZyBhbmQgbGV0IHVzIGtub3cgd2hlcmUgaXQgaXMgZmFpbGluZyB0aGF0IHdvdWxkIGhlbHAuPGJy Pgo8YnI+ClRoYW5rcyw8YnI+CkJyZW50PGJyPgo8YnI+Ci0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tPGJyPgpGcm9tOiBCbGliYmV0ICZsdDs8YSBocmVmPSJtYWlsdG86YmxpYmJldEBnbWFpbC5j b20iIHRhcmdldD0iX2JsYW5rIj5ibGliYmV0QGdtYWlsLmNvbTwvYT4mZ3Q7Cjxicj4KU2VudDog VGh1cnNkYXksIE1heSAyOCwgMjAyMCAyOjU1IFBNPGJyPgpUbzogVm9ybmFtZSBOYWNobmFtZSAm bHQ7PGEgaHJlZj0ibWFpbHRvOmxkZXZsemVyb0BnbWFpbC5jb20iIHRhcmdldD0iX2JsYW5rIj5s ZGV2bHplcm9AZ21haWwuY29tPC9hPiZndDs8YnI+CkNjOiA8YSBocmVmPSJtYWlsdG86Y2hpcHNl Y0BsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5jaGlwc2VjQGxpc3RzLjAxLm9yZzwvYT48 YnI+ClN1YmplY3Q6IFtjaGlwc2VjXSBSZTogY2hpcHNlYy0xLjUuMCBpbiBFRkkgU2hlbGw8YnI+ Cjxicj4KV2hhdCBVRUZJIFNoZWxsIGFyZSB5b3UgdXNpbmc/ICZxdW90O0VGSSBTaGVsbCZxdW90 OyBtYXkgbWVhbiBhbiBhbmNpZW50IG9uZS4gSSB0aGluayBJIHJlY2FsbCBzb21lIHRocmVhZCB3 aGVyZSBzb21lb25lIHdhcyB0cnlpbmcgdG8gZ2V0IENISVBTRUMgcnVubmluZyB1c2luZyBhbiBv bGQgKDEueD8pIE9FTSYjMzk7cyBzaGVsbCAoQXBwbGU/KSwgYW5kIHRoZXkgaGFkIHRvIHByb3Zp ZGUgdGhlaXIgb3duIGluc3RlYWQuIFRoZXJlIGlzIGFuIG9sZGVyIGFuZCBhIG5ld2VyCiBVRUZJ IFNoZWxsLjxicj4KPGJyPgpZb3Ugc2hvdWxkIGFsc28gaW5jbHVkZSBpbmZvIGFib3V0IG90aGVy IFB5dGhvbiBjb2RlIHlvdSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IHJ1biBpbiB0aGlzIEVG SSBTaGVsbC4gTWF5YmUgQ0hJUFNFQyBpcyBub3QgdGhlIGlzc3VlLCB0aGUgaXNzdWUgaXMgeW91 ciBFRkkgU2hlbGwgYW5kIFB5dGhvbi48YnI+Cjxicj4KSW5zdGVhZCBvZiBidWlsZGluZyB5b3Vy IG93biBVRUZJIFB5dGhvbiwgd2hhdCBoYXBwZW5zIHdoZW4geW91IHVzZSB0aGUgQ0hJUFNFQyBp bnN0cnVjdGlvbnMgYW5kIHVzZSB0aGVpciBzdXBwbGllZCBweXRob24uZWZpPyBXYXNuJiMzOTt0 IHRoZXJlIHNvbWUgc3BlY2lhbCBDSElQU0VDLWNlbnRyaWMgb3B0aW9ucyBuZWVkZWQgdG8gYnVp bGQgUHl0aG9uIHdpdGg/IElmIHNvLCB0aGF0IHNob3VsZCBiZSBjbGFyaWZpZWQgYmV0dGVyIGlu IGJ1aWxkIGRvY3MuPGJyPgo8YnI+CihHcmFudGVkLCBpdCBzdWNrcyBoYXZpbmcgYSBzZWN1cml0 eSB0b29sIHNoaXAgYSBwcmUtY29tcGlsZWQgUHl0aG9uIGJpbmFyeSBpbiB0aGVpciBzb3VyY2Ug dHJlZSwgYnVpbHQgaW4gYW4gdW5rbm93biBtYW5uZXIsIHdpdGggbm8gY2hlY2tzdW1zLCBhbmQg bm8gcmVwcm9kdWNhYmxlIGJ1aWxkcywgYW5kIGhhdmUgdGhlIHRvb2wgcmVseSBvbiB0aGlzIGZv ciBkZXRlcm1pbmluZyBwbGF0Zm9ybSBzZWN1cml0eS4gQnV0IHRoYXQmIzM5O3MgYW5vdGhlcgog aXNzdWUuLi4pPGJyPgo8YnI+CkludGVsIGhhcyBhYmFuZG9uZWQgQ1B5dGhvbiBWMiBmb3IgVUVG SSBwYXRjaCwgYW5kIGlzIGluc3RlYWQgaXMgd29ya2luZyBvbiBNaWNyb1B5dGhvbiBmb3IgVUVG SSAod2hpY2ggaGFzIHNvbWUgUHl0aG9uIFYzIHN1cHBvcnQpLiBUaG91Z2ggUHl0aG9uIFYyIGlz IGRlcHJlY2F0ZWQgYW5kIG1vc3Qgb2Ygd29ybGQgaGFzIG1vdmVkIHRvIFB5dGhvbiBWMywgQ0hJ UFNFQyB0ZWFtIGlzIHN0aWxsIHVzaW5nL2J1bmRsaW5nIENQeXRob24gVjIsIGFuZAogaGFzbiYj Mzk7dCBzd2l0Y2hlZCBvdmVyIHRvIHVzaW5nL3JlbHlpbmctb24vYnVuZGxpbmcgTWljcm9QeXRo b24gZm9yIFVFRkkuPGJyPgo8YnI+CkZXSVcsIEkgcmFyZWx5IHNlZSByZXBsaWVzIGZyb20gdGhl IHRlYW0gZm9yIHN1cHBvcnQgcXVlc3Rpb25zIG9uIHRoaXMgbWFpbGluZyBsaXN0IG5vciB0aGUg R29vZ2xlIEdyb3VwcyBsaXN0cy4gSXQgSSB3YXMgbG9va2luZyBmb3IgYSByZXBseSwgSSYjMzk7 ZCBmaWxlIGEgR2l0aHViIGlzc3VlIChhbmQgaW5jbHVkZSBtb3JlIGluZm8pLCBvciB1c2UgVHdp dHRlci48YnI+Cjxicj4KWW91IG1pZ2h0IHdhbnQgdG8gY2xhcmlmeSB0aGF0IHlvdSYjMzk7cmUg dHJ5aW5nIHRvIHJ1biB0aGlzIG9uIGFuIEludGVsIHN5c3RlbSwgbm90IGFub3RoZXIgSVNBIChs aWtlIEFNRCBvciBBUk0gb3IgUklTQy1WKSwgYXMgdGhhdCYjMzk7ZCBhbHNvIG5vdCB3b3JrLjxi cj4KPGJyPgpIVEgsPGJyPgpMZWU8YnI+Cjxicj4KT24gNS8yOC8yMCA3OjM2IEFNLCBWb3JuYW1l IE5hY2huYW1lIHdyb3RlOjxicj4KJmd0OyBIZWxsbyw8YnI+CiZndDs8YnI+CiZndDsgSSB0cmll ZCB0byBydW4gY2hpcHNlYy0xLjUuMCBpbiBFRkkgU2hlbGwgd2l0aG91dCBvcGVyYXRpbmcgc3lz dGVtIGJ1dCA8YnI+CiZndDsgdW5mb3J0dW5hdGVseSBpdCBkb2VzbiYjMzk7dCBydW4gaW4gdGhl IEVGSSBTaGVsbC4gSSByYW4gdGhlc2UgY29tbWFuZHM6PGJyPgomZ3Q7PGJyPgomZ3Q7IFNoZWxs Jmd0OyBmczA6PGJyPgomZ3Q7IEZTMDpcJmd0OyBweXRob24gLV4jIGNoaXBzZWNfbWFpbi5weSAt bSBkZWJ1Z2VuYWJsZWQ8YnI+CiZndDs8YnI+CiZndDsgVGhpcyByZXN1bHRzIGluIGEgdHJhY2Vi YWNrIHdpdGggdGhlIGxhc3QgZmlsZSBjaGlwc2VjL2RlZmluZXMucHkgPGJyPgomZ3Q7IGNhbGxl ZCBmdW5jdGlvbiBnZXRfdmVyc2lvbigpLjxicj4KJmd0Ozxicj4KJmd0OyBPU0Vycm9yOiBbRXJy bm8gMjJdIEludmFsdWQgYXJndW1lbnQ6ICYjMzk7RlMwOkZTMDpjaGlwc2VjJiMzOTs8YnI+CiZn dDs8YnI+CiZndDsgQWZ0ZXIgdGhhdCBJIGNvbXBpbGVkIHB5dGhvbiAyLjcuMiBhbmQgcHl0aG9u IDIuNy4xMCBmcm9tIGVkazIgcGFja2FnZSA8YnI+CiZndDsgdmVyc2lvbiBlZGsyLXN0YWJsZTIw MTkwMy4gVGhpcyBpcyB0aGUgbGFzdCBwYWNrYWdlIHZlcnNpb24gd2l0aCA8YnI+CiZndDsgcHlo dG9uIGluc2lkZS4gV2l0aCB0aGlzIHZlcnNpb24gb2YgcHlodG9uIEkgcmVjZWl2ZWQgYW5vdGhl ciBlcnJvciA8YnI+CiZndDsgbWVzc2FnZSB3aXRoIHRoZSBsYXN0IGxpbmU6PGJyPgomZ3Q7PGJy PgomZ3Q7IEltcG9ydEVycm9yOiBObyBtb2R1bGUgbmFtZWQgZXhwYXQ7IHVzZSBTaW1wbGVYTUxU cmVlQnVpbGRlciBpbnN0ZWFkLjxicj4KJmd0Ozxicj4KJmd0OyBXaGF0IGlzIHRoZSBiZXN0IHdh eSB0byBzdGFydCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgY2hpcHNlYyBpbiB0aGUgRUZJIDxicj4K Jmd0OyBTaGVsbD8gV2hhdCB2ZXJzaW9uIG9mIEVGSSBTaGVsbCBhbmQgcHlodG9uIGlzIHJlcXVp cmVkPzxicj4KJmd0Ozxicj4KJmd0OyBiZXN0IHdpc2hlczxicj4KJmd0OyBQaGlsaXBwPGJyPgom Z3Q7PGJyPgomZ3Q7PGJyPgomZ3Q7IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fPGJyPgomZ3Q7IGNoaXBzZWMgbWFpbGluZyBsaXN0IC0tIDxhIGhyZWY9Im1h aWx0bzpjaGlwc2VjQGxpc3RzLjAxLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPmNoaXBzZWNAbGlzdHMu MDEub3JnPC9hPiBUbyB1bnN1YnNjcmliZSBzZW5kIGFuCjxicj4KJmd0OyBlbWFpbCB0byA8YSBo cmVmPSJtYWlsdG86Y2hpcHNlYy1sZWF2ZUBsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5j aGlwc2VjLWxlYXZlQGxpc3RzLjAxLm9yZzwvYT48YnI+Cl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fPGJyPgpjaGlwc2VjIG1haWxpbmcgbGlzdCAtLSA8YSBo cmVmPSJtYWlsdG86Y2hpcHNlY0BsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5jaGlwc2Vj QGxpc3RzLjAxLm9yZzwvYT4gVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0bwo8YSBocmVm PSJtYWlsdG86Y2hpcHNlYy1sZWF2ZUBsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5jaGlw c2VjLWxlYXZlQGxpc3RzLjAxLm9yZzwvYT48YnI+Cl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fPGJyPgpjaGlwc2VjIG1haWxpbmcgbGlzdCAtLSA8YSBocmVm PSJtYWlsdG86Y2hpcHNlY0BsaXN0cy4wMS5vcmciIHRhcmdldD0iX2JsYW5rIj5jaGlwc2VjQGxp c3RzLjAxLm9yZzwvYT48YnI+ClRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gPGEgaHJl Zj0ibWFpbHRvOmNoaXBzZWMtbGVhdmVAbGlzdHMuMDEub3JnIiB0YXJnZXQ9Il9ibGFuayI+CmNo aXBzZWMtbGVhdmVAbGlzdHMuMDEub3JnPC9hPjx1PjwvdT48dT48L3U+PC9wPgo8L2Jsb2NrcXVv dGU+CjwvZGl2Pgo8L2Jsb2NrcXVvdGU+CjwvZGl2Pgo8L2Jsb2NrcXVvdGU+CjwvZGl2Pgo8L2Rp dj4KPC9kaXY+Cgo8L2Jsb2NrcXVvdGU+PC9kaXY+Cg== --===============8388754188546763709==--