From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============8673063348456649755==" MIME-Version: 1.0 From: Sreeni (Sreenivasa) Busam (Stellus) Subject: Re: [SPDK] Helloworld program fails during device initialization. Date: Tue, 14 Nov 2017 19:49:18 +0000 Message-ID: <23fb252fd76e428ea4ca0925820bcb1a@stellus.com> In-Reply-To: c31b88558f664596bb44538564f8affc@stellus.com List-ID: To: spdk@lists.01.org --===============8673063348456649755== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Daniel, There is another test which I did to debug the device where identify comman= d has failed . I ran the following test to see if kernel driver is able to = bind it. Does this test give any information? sudo ./scripts/setup.sh reset 0000:ad:00.0 (144d a802): uio_pci_generic -> nvme 0000:ae:00.0 (144d a802): uio_pci_generic -> nvme sreeni.busam(a)sjca5radevct13:~/spdk_v1/spdk-17.10$ sreeni.busam(a)sjca5radevct13:~/spdk_v1/spdk-17.10$ sudo ./scripts/setup.sh 0000:ad:00.0 (144d a802): nvme -> uio_pci_generic From: Sreeni (Sreenivasa) Busam (Stellus) Sent: Tuesday, November 14, 2017 11:44 AM To: Storage Performance Development Kit Subject: RE: Helloworld program fails during device initialization. Hi Daniel, I added the debug flag you mentioned in the program and tested it. There is= not much of any log which is helpful for the probe of the device. Please ignore the printf from func pci_probe_all_drivers, it was printf add= ed by me. I have attached the file. From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Sreeni (Sreeni= vasa) Busam (Stellus) Sent: Tuesday, November 14, 2017 10:43 AM To: Storage Performance Development Kit > Subject: Re: [SPDK] Helloworld program fails during device initialization. Thanks Daniel for your comments. I think the SSD devices are of same model = looking at lspci output. Let me confirm it with my lab administrator. I will add the debug code and give you the output. Sreeni From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Verkamp, Daniel Sent: Tuesday, November 14, 2017 9:43 AM To: Storage Performance Development Kit > Subject: Re: [SPDK] Helloworld program fails during device initialization. It looks to me like the device at 0000:ad:00.0 worked in both tests, and th= e device at 0000:ae:00.0 failed during identify and wasn't used in perf due= to the -r argument specifying only 0000:ad:00.0. Are these two devices the same model/firmware of NVMe controller, or is the= re some difference between them? It would also be useful to see the debug output from the NVMe library for t= he failing controller; you can enable this in hello_world.c by adding these= two lines at the beginning of main(): spdk_log_set_print_level(SPDK_LOG_DEBUG); spdk_log_set_trace_flag("all"); Thanks, -- Daniel From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Luse, Paul E Sent: Tuesday, November 14, 2017 6:46 AM To: Storage Performance Development Kit > Subject: Re: [SPDK] Helloworld program fails during device initialization. Well, maybe not. Could very well be an issue in the driver that's only exp= osed via this hardware especially given that hello_world failed and perf di= d not. Sreeni, do you have any other data points that you can share? Like, for exa= mple, have you tried multiple SSDs of that same model or any other model? D= oes hello consistently fail and perf consistently pass? I haven't done a to= n of debug with either but with a little more info, if someone else doesn't= jump in with the answer, I can pretty easily help compare the init sequenc= e in a few of these and maybe start to narrow down what's different. Thx Paul From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Wu, WenzhongX Sent: Tuesday, November 14, 2017 2:13 AM To: Storage Performance Development Kit > Subject: Re: [SPDK] Helloworld program fails during device initialization. Hi Sreeni, Verify with newest spdk source code with intel P3700 ,run helloword everyth= ing is ok: root(a)waikiki5-target:~/workspace/spdk1102/examples/nvme/hello_world# ./he= llo_world Starting DPDK 17.08.0 initialization... [ DPDK EAL parameters: hello_world -c 0x1 --file-prefix=3Dspdk0 --base-virt= addr=3D0x1000000000 --proc-type=3Dauto ] EAL: Detected 36 lcore(s) EAL: Auto-detected process type: PRIMARY EAL: No free hugepages reported in hugepages-1048576kB EAL: Probing VFIO support... Initializing NVMe Controllers EAL: PCI device 0000:81:00.0 on NUMA socket 1 EAL: probe driver: 8086:953 spdk_nvme Attaching to 0000:81:00.0 EAL: PCI device 0000:84:00.0 on NUMA socket 1 EAL: probe driver: 8086:953 spdk_nvme Attaching to 0000:84:00.0 EAL: PCI device 0000:85:00.0 on NUMA socket 1 EAL: probe driver: 8086:953 spdk_nvme Attaching to 0000:85:00.0 Attached to 0000:85:00.0 Using controller INTEL SSDPEDMD800G4 (PHFT6401011B800CGN ) with 1 namespa= ces. Namespace ID: 1 size: 800GB Attached to 0000:81:00.0 Using controller INTEL SSDPEDMD800G4 (PHFT5373002D800CGN ) with 1 namespa= ces. Namespace ID: 1 size: 800GB Attached to 0000:84:00.0 Using controller INTEL SSDPEDMD800G4 (PHFT53640003800CGN ) with 1 namespa= ces. Namespace ID: 1 size: 800GB Initialization complete. Hello world! Hello world! Hello world! Seem it's your hardware cause this issues. Thanks Wenzhong From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Sreeni (Sreeni= vasa) Busam (Stellus) Sent: Tuesday, November 14, 2017 2:36 PM To: spdk(a)lists.01.org Subject: [SPDK] Helloworld program fails during device initialization. I was testing the helloworld program on ubuntu with NVMe SSD and the probe(= ) is failing. Please let me know if this is a known problem. Let me know if there is workaround. The perf program did not have any problem. I have attached the output for both tests. lspci| grep Non ad:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD= Controller (rev 01) ae:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD= Controller (rev 01) uname -a Linux sjca5radevct13 4.10.0-38-generic #42~16.04.1-Ubuntu SMP Tue Oct 10 16= :32:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 1. helloworld output: --------------------------- Attached to 0000:ad:00.0 Using controller SAMSUNG MZQWV480HCGM (S1TRNYAFA00148 ) with 1 namespa= ces. Namespace ID: 1 size: 480GB nvme_ctrlr.c:1475:nvme_ctrlr_process_init: *ERROR*: Initialization timed ou= t in state 1 nvme_ctrlr.c: 523:nvme_ctrlr_shutdown: *ERROR*: did not shutdown within 5 s= econds spdk_nvme_probe() failed 2. perf output: sudo ./perf -q 1 -s 4096 -t 10 -w read -r "trtype:PCIe traddr:0000:ad:00.0" --------------- Starting DPDK 17.08.0 initialization... [ DPDK EAL parameters: perf -c 0x1 --file-prefix=3Dspdk_pid7647 ] EAL: Detected 32 lcore(s) EAL: No free hugepages reported in hugepages-1048576kB Attached to NVMe Controller at 0000:ad:00.0 [144d:a802] Associating SAMSUNG MZQWV480HCGM (S1TRNYAFA00148 ) with lcore 0 Initialization complete. Launching workers. Starting thread on core 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 = Latency(us) Device Information : IOPS M= B/s Average min max SAMSUNG MZQWV480HCGM (S1TRNYAFA00148 ) from core 0: 13773.50 53= .80 72.59 60.20 243.82 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D Total : 13773.50 53= .80 72.59 60.20 243.82 Thanks for your help, Sreeni --===============8673063348456649755== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11cy1hc2NpaSI+CjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPgo8c3R5bGU+ PCEtLQovKiBGb250IERlZmluaXRpb25zICovCkBmb250LWZhY2UKCXtmb250LWZhbWlseToiQ2Ft YnJpYSBNYXRoIjsKCXBhbm9zZS0xOjIgNCA1IDMgNSA0IDYgMyAyIDQ7fQpAZm9udC1mYWNlCgl7 Zm9udC1mYW1pbHk6Ik1hbGd1biBHb3RoaWMiOwoJcGFub3NlLTE6MiAxMSA1IDMgMiAwIDAgMiAw IDQ7fQpAZm9udC1mYWNlCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsKCXBhbm9zZS0xOjIgMTUgNSAy IDIgMiA0IDMgMiA0O30KQGZvbnQtZmFjZQoJe2ZvbnQtZmFtaWx5OiJcQE1hbGd1biBHb3RoaWMi OwoJcGFub3NlLTE6MiAxMSA1IDMgMiAwIDAgMiAwIDQ7fQovKiBTdHlsZSBEZWZpbml0aW9ucyAq LwpwLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsCgl7bWFyZ2luOjBpbjsK CW1hcmdpbi1ib3R0b206LjAwMDFwdDsKCWZvbnQtc2l6ZToxMS4wcHQ7Cglmb250LWZhbWlseToi Q2FsaWJyaSIsc2Fucy1zZXJpZjt9CmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsKCXttc28tc3R5 bGUtcHJpb3JpdHk6OTk7Cgljb2xvcjojMDU2M0MxOwoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGlu ZTt9CmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZAoJe21zby1zdHlsZS1wcmlv cml0eTo5OTsKCWNvbG9yOiM5NTRGNzI7Cgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30KcC5N c29MaXN0UGFyYWdyYXBoLCBsaS5Nc29MaXN0UGFyYWdyYXBoLCBkaXYuTXNvTGlzdFBhcmFncmFw aAoJe21zby1zdHlsZS1wcmlvcml0eTozNDsKCW1hcmdpbi10b3A6MGluOwoJbWFyZ2luLXJpZ2h0 OjBpbjsKCW1hcmdpbi1ib3R0b206MGluOwoJbWFyZ2luLWxlZnQ6LjVpbjsKCW1hcmdpbi1ib3R0 b206LjAwMDFwdDsKCWZvbnQtc2l6ZToxMS4wcHQ7Cglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fu cy1zZXJpZjt9CnNwYW4uRW1haWxTdHlsZTE4Cgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWw7Cglm b250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsKCWNvbG9yOndpbmRvd3RleHQ7fQpzcGFu LkVtYWlsU3R5bGUxOQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsOwoJZm9udC1mYW1pbHk6IkNh bGlicmkiLHNhbnMtc2VyaWY7Cgljb2xvcjojMUY0OTdEO30Kc3Bhbi5FbWFpbFN0eWxlMjAKCXtt c28tc3R5bGUtdHlwZTpwZXJzb25hbDsKCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlm OwoJY29sb3I6IzFGNDk3RDt9CnNwYW4uRW1haWxTdHlsZTIxCgl7bXNvLXN0eWxlLXR5cGU6cGVy c29uYWw7Cglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsKCWNvbG9yOiMxRjQ5N0Q7 fQpzcGFuLkVtYWlsU3R5bGUyMgoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsOwoJZm9udC1mYW1p bHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7Cgljb2xvcjojMUY0OTdEO30Kc3Bhbi5FbWFpbFN0eWxl MjMKCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbDsKCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5z LXNlcmlmOwoJY29sb3I6IzFGNDk3RDt9CnNwYW4uRW1haWxTdHlsZTI0Cgl7bXNvLXN0eWxlLXR5 cGU6cGVyc29uYWwtcmVwbHk7Cglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsKCWNv bG9yOiMxRjQ5N0Q7fQouTXNvQ2hwRGVmYXVsdAoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5 OwoJZm9udC1zaXplOjEwLjBwdDt9CkBwYWdlIFdvcmRTZWN0aW9uMQoJe3NpemU6OC41aW4gMTEu MGluOwoJbWFyZ2luOjEuMGluIDEuMGluIDEuMGluIDEuMGluO30KZGl2LldvcmRTZWN0aW9uMQoJ e3BhZ2U6V29yZFNlY3Rpb24xO30KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4K PG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4KPC94bWw+PCFb ZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+CjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJl ZGl0Ij4KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+CjwvbzpzaGFwZWxheW91dD48 L3htbD48IVtlbmRpZl0tLT4KPC9oZWFkPgo8Ym9keSBsYW5nPSJFTi1VUyIgbGluaz0iIzA1NjND MSIgdmxpbms9IiM5NTRGNzIiPgo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPgo8cCBjbGFzcz0i TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+SGkgRGFuaWVsLDxvOnA+PC9v OnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMx RjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPlRoZXJlIGlzIGFub3RoZXIgdGVzdCB3aGljaCBJ IGRpZCB0byBkZWJ1ZyB0aGUgZGV2aWNlIHdoZXJlIGlkZW50aWZ5IGNvbW1hbmQgaGFzIGZhaWxl ZCAuIEkgcmFuIHRoZSBmb2xsb3dpbmcgdGVzdCB0byBzZWUgaWYga2VybmVsIGRyaXZlciBpcyBh YmxlIHRvIGJpbmQgaXQuIERvZXMgdGhpcyB0ZXN0IGdpdmUgYW55IGluZm9ybWF0aW9uPzxvOnA+ PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9y OiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1h bCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPnN1ZG8gLi9zY3JpcHRzL3NldHVwLnNoIHJl c2V0PG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls ZT0iY29sb3I6IzFGNDk3RCI+MDAwMDphZDowMC4wICgxNDRkIGE4MDIpOiB1aW9fcGNpX2dlbmVy aWMgLSZndDsgbnZtZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPjAwMDA6YWU6MDAuMCAoMTQ0ZCBhODAyKTogdWlv X3BjaV9nZW5lcmljIC0mZ3Q7IG52bWU8bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJN c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5zcmVlbmkuYnVzYW1Ac2pjYTVy YWRldmN0MTM6fi9zcGRrX3YxL3NwZGstMTcuMTAkPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBj bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+c3JlZW5pLmJ1c2Ft QHNqY2E1cmFkZXZjdDEzOn4vc3Bka192MS9zcGRrLTE3LjEwJCBzdWRvIC4vc2NyaXB0cy9zZXR1 cC5zaDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5 bGU9ImNvbG9yOiMxRjQ5N0QiPjAwMDA6YWQ6MDAuMCAoMTQ0ZCBhODAyKTogbnZtZSAtJmd0OyB1 aW9fcGNpX2dlbmVyaWM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwi PjxhIG5hbWU9Il9NYWlsRW5kQ29tcG9zZSI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPjxv OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvYT48L3A+CjxkaXY+CjxkaXYgc3R5bGU9ImJvcmRlcjpu b25lO2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4g MGluIj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+RnJvbTo8L2I+IFNyZWVuaSAoU3JlZW5pdmFz YSkgQnVzYW0gKFN0ZWxsdXMpIDxicj4KPGI+U2VudDo8L2I+IFR1ZXNkYXksIE5vdmVtYmVyIDE0 LCAyMDE3IDExOjQ0IEFNPGJyPgo8Yj5Ubzo8L2I+IFN0b3JhZ2UgUGVyZm9ybWFuY2UgRGV2ZWxv cG1lbnQgS2l0ICZsdDtzcGRrQGxpc3RzLjAxLm9yZyZndDs8YnI+CjxiPlN1YmplY3Q6PC9iPiBS RTogSGVsbG93b3JsZCBwcm9ncmFtIGZhaWxzIGR1cmluZyBkZXZpY2UgaW5pdGlhbGl6YXRpb24u PG86cD48L286cD48L3A+CjwvZGl2Pgo8L2Rpdj4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4m bmJzcDs8L286cD48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjoj MUY0OTdEIj5IaSBEYW5pZWwsPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9y bWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+ PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+SSBh ZGRlZCB0aGUgZGVidWcgZmxhZyB5b3UgbWVudGlvbmVkIGluIHRoZSBwcm9ncmFtIGFuZCB0ZXN0 ZWQgaXQuIFRoZXJlIGlzIG5vdCBtdWNoIG9mIGFueSBsb2cgd2hpY2ggaXMgaGVscGZ1bCBmb3Ig dGhlIHByb2JlIG9mIHRoZSBkZXZpY2UuPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0i TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+UGxlYXNlIGlnbm9yZSB0aGUg cHJpbnRmIGZyb20gZnVuYyBwY2lfcHJvYmVfYWxsX2RyaXZlcnMsIGl0IHdhcyBwcmludGYgYWRk ZWQgYnkgbWUuPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh biBzdHlsZT0iY29sb3I6IzFGNDk3RCI+SSBoYXZlIGF0dGFjaGVkIHRoZSBmaWxlLjxvOnA+PC9v OnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMx RjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4KPGRpdj4KPGRpdiBzdHlsZT0iYm9y ZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGlu IDBpbiAwaW4iPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj5Gcm9tOjwvYj4gU1BESyBbPGEgaHJl Zj0ibWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmciPm1haWx0bzpzcGRrLWJvdW5jZXNA bGlzdHMuMDEub3JnPC9hPl0KPGI+T24gQmVoYWxmIE9mIDwvYj5TcmVlbmkgKFNyZWVuaXZhc2Ep IEJ1c2FtIChTdGVsbHVzKTxicj4KPGI+U2VudDo8L2I+IFR1ZXNkYXksIE5vdmVtYmVyIDE0LCAy MDE3IDEwOjQzIEFNPGJyPgo8Yj5Ubzo8L2I+IFN0b3JhZ2UgUGVyZm9ybWFuY2UgRGV2ZWxvcG1l bnQgS2l0ICZsdDs8YSBocmVmPSJtYWlsdG86c3Bka0BsaXN0cy4wMS5vcmciPnNwZGtAbGlzdHMu MDEub3JnPC9hPiZndDs8YnI+CjxiPlN1YmplY3Q6PC9iPiBSZTogW1NQREtdIEhlbGxvd29ybGQg cHJvZ3JhbSBmYWlscyBkdXJpbmcgZGV2aWNlIGluaXRpYWxpemF0aW9uLjxvOnA+PC9vOnA+PC9w Pgo8L2Rpdj4KPC9kaXY+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9w Pgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+VGhhbmtz IERhbmllbCBmb3IgeW91ciBjb21tZW50cy4gSSB0aGluayB0aGUgU1NEIGRldmljZXMgYXJlIG9m IHNhbWUgbW9kZWwgbG9va2luZyBhdCBsc3BjaSBvdXRwdXQuCjxvOnA+PC9vOnA+PC9zcGFuPjwv cD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkxldCBt ZSBjb25maXJtIGl0IHdpdGggbXkgbGFiIGFkbWluaXN0cmF0b3IuPG86cD48L286cD48L3NwYW4+ PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+SSB3 aWxsIGFkZCB0aGUgZGVidWcgY29kZSBhbmQgZ2l2ZSB5b3UgdGhlIG91dHB1dC48bzpwPjwvbzpw Pjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0 OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz cGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5TcmVlbmk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+Cjxw IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNw OzwvbzpwPjwvc3Bhbj48L3A+CjxkaXY+CjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10 b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4KPHAgY2xh c3M9Ik1zb05vcm1hbCI+PGI+RnJvbTo8L2I+IFNQREsgWzxhIGhyZWY9Im1haWx0bzpzcGRrLWJv dW5jZXNAbGlzdHMuMDEub3JnIj5tYWlsdG86c3Bkay1ib3VuY2VzQGxpc3RzLjAxLm9yZzwvYT5d CjxiPk9uIEJlaGFsZiBPZiA8L2I+VmVya2FtcCwgRGFuaWVsPGJyPgo8Yj5TZW50OjwvYj4gVHVl c2RheSwgTm92ZW1iZXIgMTQsIDIwMTcgOTo0MyBBTTxicj4KPGI+VG86PC9iPiBTdG9yYWdlIFBl cmZvcm1hbmNlIERldmVsb3BtZW50IEtpdCAmbHQ7PGEgaHJlZj0ibWFpbHRvOnNwZGtAbGlzdHMu MDEub3JnIj5zcGRrQGxpc3RzLjAxLm9yZzwvYT4mZ3Q7PGJyPgo8Yj5TdWJqZWN0OjwvYj4gUmU6 IFtTUERLXSBIZWxsb3dvcmxkIHByb2dyYW0gZmFpbHMgZHVyaW5nIGRldmljZSBpbml0aWFsaXph dGlvbi48bzpwPjwvbzpwPjwvcD4KPC9kaXY+CjwvZGl2Pgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48 bzpwPiZuYnNwOzwvbzpwPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNv bG9yOiMxRjQ5N0QiPkl0IGxvb2tzIHRvIG1lIGxpa2UgdGhlIGRldmljZSBhdCAwMDAwOmFkOjAw LjAgd29ya2VkIGluIGJvdGggdGVzdHMsIGFuZCB0aGUgZGV2aWNlIGF0IDAwMDA6YWU6MDAuMCBm YWlsZWQgZHVyaW5nIGlkZW50aWZ5IGFuZCB3YXNuJiM4MjE3O3QgdXNlZCBpbiBwZXJmIGR1ZSB0 byB0aGUgLXIgYXJndW1lbnQgc3BlY2lmeWluZyBvbmx5IDAwMDA6YWQ6MDAuMC48bzpwPjwvbzpw Pjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0 OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz cGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5BcmUgdGhlc2UgdHdvIGRldmljZXMgdGhlIHNhbWUg bW9kZWwvZmlybXdhcmUgb2YgTlZNZSBjb250cm9sbGVyLCBvciBpcyB0aGVyZSBzb21lIGRpZmZl cmVuY2UgYmV0d2VlbiB0aGVtPzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05v cm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu PjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkl0 IHdvdWxkIGFsc28gYmUgdXNlZnVsIHRvIHNlZSB0aGUgZGVidWcgb3V0cHV0IGZyb20gdGhlIE5W TWUgbGlicmFyeSBmb3IgdGhlIGZhaWxpbmcgY29udHJvbGxlcjsgeW91IGNhbiBlbmFibGUgdGhp cyBpbiBoZWxsb193b3JsZC5jIGJ5IGFkZGluZyB0aGVzZSB0d28gbGluZXMgYXQgdGhlIGJlZ2lu bmluZyBvZiBtYWluKCk6PG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9w Pgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7 IHNwZGtfbG9nX3NldF9wcmludF9sZXZlbChTUERLX0xPR19ERUJVRyk7PG86cD48L286cD48L3Nw YW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+ Jm5ic3A7IHNwZGtfbG9nX3NldF90cmFjZV9mbGFnKCYjODIyMDthbGwmIzgyMjE7KTs8bzpwPjwv bzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjoj MUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwi PjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5UaGFua3MsPG86cD48L286cD48L3NwYW4+PC9w Pgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+LS0gRGFu aWVsPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls ZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPgo8ZGl2IHN0eWxl PSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGluIDBp biAwaW4gNC4wcHQiPgo8ZGl2Pgo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNv bGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+CjxwIGNsYXNzPSJN c29Ob3JtYWwiPjxhIG5hbWU9Il9fX19fcmVwbHlzZXBhcmF0b3IiPjwvYT48Yj5Gcm9tOjwvYj4g U1BESyBbPGEgaHJlZj0ibWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmciPm1haWx0bzpz cGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnPC9hPl0KPGI+T24gQmVoYWxmIE9mIDwvYj5MdXNlLCBQ YXVsIEU8YnI+CjxiPlNlbnQ6PC9iPiBUdWVzZGF5LCBOb3ZlbWJlciAxNCwgMjAxNyA2OjQ2IEFN PGJyPgo8Yj5Ubzo8L2I+IFN0b3JhZ2UgUGVyZm9ybWFuY2UgRGV2ZWxvcG1lbnQgS2l0ICZsdDs8 YSBocmVmPSJtYWlsdG86c3Bka0BsaXN0cy4wMS5vcmciPnNwZGtAbGlzdHMuMDEub3JnPC9hPiZn dDs8YnI+CjxiPlN1YmplY3Q6PC9iPiBSZTogW1NQREtdIEhlbGxvd29ybGQgcHJvZ3JhbSBmYWls cyBkdXJpbmcgZGV2aWNlIGluaXRpYWxpemF0aW9uLjxvOnA+PC9vOnA+PC9wPgo8L2Rpdj4KPC9k aXY+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPgo8cCBjbGFzcz0i TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+V2VsbCwgbWF5YmUgbm90LiZu YnNwOyBDb3VsZCB2ZXJ5IHdlbGwgYmUgYW4gaXNzdWUgaW4gdGhlIGRyaXZlciB0aGF0JiM4MjE3 O3Mgb25seSBleHBvc2VkIHZpYSB0aGlzIGhhcmR3YXJlIGVzcGVjaWFsbHkgZ2l2ZW4gdGhhdCBo ZWxsb193b3JsZCBmYWlsZWQgYW5kIHBlcmYgZGlkIG5vdC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+ CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj48bzpwPiZu YnNwOzwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJj b2xvcjojMUY0OTdEIj5TcmVlbmksIGRvIHlvdSBoYXZlIGFueSBvdGhlciBkYXRhIHBvaW50cyB0 aGF0IHlvdSBjYW4gc2hhcmU/IExpa2UsIGZvciBleGFtcGxlLCBoYXZlIHlvdSB0cmllZCBtdWx0 aXBsZSBTU0RzIG9mIHRoYXQgc2FtZSBtb2RlbCBvciBhbnkgb3RoZXIgbW9kZWw/IERvZXMgaGVs bG8gY29uc2lzdGVudGx5IGZhaWwgYW5kIHBlcmYgY29uc2lzdGVudGx5IHBhc3M/IEkKIGhhdmVu JiM4MjE3O3QgZG9uZSBhIHRvbiBvZiBkZWJ1ZyB3aXRoIGVpdGhlciBidXQgd2l0aCBhIGxpdHRs ZSBtb3JlIGluZm8sIGlmIHNvbWVvbmUgZWxzZSBkb2VzbiYjODIxNzt0IGp1bXAgaW4gd2l0aCB0 aGUgYW5zd2VyLCBJIGNhbiBwcmV0dHkgZWFzaWx5IGhlbHAgY29tcGFyZSB0aGUgaW5pdCBzZXF1 ZW5jZSBpbiBhIGZldyBvZiB0aGVzZSBhbmQgbWF5YmUgc3RhcnQgdG8gbmFycm93IGRvd24gd2hh dCYjODIxNztzIGRpZmZlcmVudC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29O b3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bh bj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5U aHg8bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl PSJjb2xvcjojMUY0OTdEIj5QYXVsPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNv Tm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3Nw YW4+PC9wPgo8ZGl2Pgo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNF MUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+CjxwIGNsYXNzPSJNc29Ob3Jt YWwiPjxiPkZyb206PC9iPiBTUERLIFs8YSBocmVmPSJtYWlsdG86c3Bkay1ib3VuY2VzQGxpc3Rz LjAxLm9yZyI+bWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmc8L2E+XQo8Yj5PbiBCZWhh bGYgT2YgPC9iPld1LCBXZW56aG9uZ1g8YnI+CjxiPlNlbnQ6PC9iPiBUdWVzZGF5LCBOb3ZlbWJl ciAxNCwgMjAxNyAyOjEzIEFNPGJyPgo8Yj5Ubzo8L2I+IFN0b3JhZ2UgUGVyZm9ybWFuY2UgRGV2 ZWxvcG1lbnQgS2l0ICZsdDs8YSBocmVmPSJtYWlsdG86c3Bka0BsaXN0cy4wMS5vcmciPnNwZGtA bGlzdHMuMDEub3JnPC9hPiZndDs8YnI+CjxiPlN1YmplY3Q6PC9iPiBSZTogW1NQREtdIEhlbGxv d29ybGQgcHJvZ3JhbSBmYWlscyBkdXJpbmcgZGV2aWNlIGluaXRpYWxpemF0aW9uLjxvOnA+PC9v OnA+PC9wPgo8L2Rpdj4KPC9kaXY+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9v OnA+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+ SGkgU3JlZW5pLDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw YW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPlZlcmlmeSB3aXRo IG5ld2VzdCBzcGRrIHNvdXJjZSBjb2RlIHdpdGggaW50ZWwgUDM3MDAgLHJ1biBoZWxsb3dvcmQg ZXZlcnl0aGluZyBpcyBvazo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3Jt YWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5yb290QHdhaWtpa2k1LXRhcmdldDp+L3dv cmtzcGFjZS9zcGRrMTEwMi9leGFtcGxlcy9udm1lL2hlbGxvX3dvcmxkIyAuL2hlbGxvX3dvcmxk PG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i Y29sb3I6IzFGNDk3RCI+U3RhcnRpbmcgRFBESyAxNy4wOC4wIGluaXRpYWxpemF0aW9uLi4uPG86 cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29s b3I6IzFGNDk3RCI+WyBEUERLIEVBTCBwYXJhbWV0ZXJzOiBoZWxsb193b3JsZCAtYyAweDEgLS1m aWxlLXByZWZpeD1zcGRrMCAtLWJhc2UtdmlydGFkZHI9MHgxMDAwMDAwMDAwIC0tcHJvYy10eXBl PWF1dG8gXTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g c3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkVBTDogRGV0ZWN0ZWQgMzYgbGNvcmUocyk8bzpwPjwvbzpw Pjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0 OTdEIj5FQUw6IEF1dG8tZGV0ZWN0ZWQgcHJvY2VzcyB0eXBlOiBQUklNQVJZPG86cD48L286cD48 L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3 RCI+RUFMOiBObyBmcmVlIGh1Z2VwYWdlcyByZXBvcnRlZCBpbiBodWdlcGFnZXMtMTA0ODU3NmtC PG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i Y29sb3I6IzFGNDk3RCI+RUFMOiBQcm9iaW5nIFZGSU8gc3VwcG9ydC4uLjxvOnA+PC9vOnA+PC9z cGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0Qi PkluaXRpYWxpemluZyBOVk1lIENvbnRyb2xsZXJzPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBj bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+RUFMOiBQQ0kgZGV2 aWNlIDAwMDA6ODE6MDAuMCBvbiBOVU1BIHNvY2tldCAxPG86cD48L286cD48L3NwYW4+PC9wPgo8 cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+RUFMOiZuYnNw OyZuYnNwOyBwcm9iZSBkcml2ZXI6IDgwODY6OTUzIHNwZGtfbnZtZTxvOnA+PC9vOnA+PC9zcGFu PjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkF0 dGFjaGluZyB0byAwMDAwOjgxOjAwLjA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJN c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5FQUw6IFBDSSBkZXZpY2UgMDAw MDo4NDowMC4wIG9uIE5VTUEgc29ja2V0IDE8bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNz PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5FQUw6Jm5ic3A7Jm5ic3A7 IHByb2JlIGRyaXZlcjogODA4Njo5NTMgc3Bka19udm1lPG86cD48L286cD48L3NwYW4+PC9wPgo8 cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+QXR0YWNoaW5n IHRvIDAwMDA6ODQ6MDAuMDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1h bCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkVBTDogUENJIGRldmljZSAwMDAwOjg1OjAw LjAgb24gTlVNQSBzb2NrZXQgMTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05v cm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkVBTDombmJzcDsmbmJzcDsgcHJvYmUg ZHJpdmVyOiA4MDg2Ojk1MyBzcGRrX252bWU8bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNz PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5BdHRhY2hpbmcgdG8gMDAw MDo4NTowMC4wPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh biBzdHlsZT0iY29sb3I6IzFGNDk3RCI+QXR0YWNoZWQgdG8gMDAwMDo4NTowMC4wPG86cD48L286 cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFG NDk3RCI+VXNpbmcgY29udHJvbGxlciBJTlRFTCBTU0RQRURNRDgwMEc0Jm5ic3A7IChQSEZUNjQw MTAxMUI4MDBDR04mbmJzcDsgKSB3aXRoIDEgbmFtZXNwYWNlcy48bzpwPjwvbzpwPjwvc3Bhbj48 L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJz cDsgTmFtZXNwYWNlIElEOiAxIHNpemU6IDgwMEdCPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBj bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+QXR0YWNoZWQgdG8g MDAwMDo4MTowMC4wPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48 c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+VXNpbmcgY29udHJvbGxlciBJTlRFTCBTU0RQRURN RDgwMEc0Jm5ic3A7IChQSEZUNTM3MzAwMkQ4MDBDR04mbmJzcDsgKSB3aXRoIDEgbmFtZXNwYWNl cy48bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl PSJjb2xvcjojMUY0OTdEIj4mbmJzcDsgTmFtZXNwYWNlIElEOiAxIHNpemU6IDgwMEdCPG86cD48 L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6 IzFGNDk3RCI+QXR0YWNoZWQgdG8gMDAwMDo4NDowMC4wPG86cD48L286cD48L3NwYW4+PC9wPgo8 cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+VXNpbmcgY29u dHJvbGxlciBJTlRFTCBTU0RQRURNRDgwMEc0Jm5ic3A7IChQSEZUNTM2NDAwMDM4MDBDR04mbmJz cDsgKSB3aXRoIDEgbmFtZXNwYWNlcy48bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPSJN c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDsgTmFtZXNwYWNlIElE OiAxIHNpemU6IDgwMEdCPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+SW5pdGlhbGl6YXRpb24gY29tcGxldGUuPG86 cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29s b3I6IzFGNDk3RCI+SGVsbG8gd29ybGQhPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0i TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+SGVsbG8gd29ybGQhPG86cD48 L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6 IzFGNDk3RCI+SGVsbG8gd29ybGQhPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0iTXNv Tm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3Nw YW4+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+ U2VlbSAmbmJzcDtpdCYjODIxNztzIHlvdXIgaGFyZHdhcmUgY2F1c2UgdGhpcyBpc3N1ZXMuCjxv OnA+PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNv bG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05v cm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPlRoYW5rcyA8bzpwPjwvbzpwPjwvc3Bh bj48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5X ZW56aG9uZzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g c3R5bGU9ImNvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4KPGRpdj4K PGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3Bh ZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj5Gcm9tOjwv Yj4gU1BESyBbPGEgaHJlZj0ibWFpbHRvOnNwZGstYm91bmNlc0BsaXN0cy4wMS5vcmciPm1haWx0 bzpzcGRrLWJvdW5jZXNAbGlzdHMuMDEub3JnPC9hPl0KPGI+T24gQmVoYWxmIE9mIDwvYj5TcmVl bmkgKFNyZWVuaXZhc2EpIEJ1c2FtIChTdGVsbHVzKTxicj4KPGI+U2VudDo8L2I+IFR1ZXNkYXks IE5vdmVtYmVyIDE0LCAyMDE3IDI6MzYgUE08YnI+CjxiPlRvOjwvYj4gPGEgaHJlZj0ibWFpbHRv OnNwZGtAbGlzdHMuMDEub3JnIj5zcGRrQGxpc3RzLjAxLm9yZzwvYT48YnI+CjxiPlN1YmplY3Q6 PC9iPiBbU1BES10gSGVsbG93b3JsZCBwcm9ncmFtIGZhaWxzIGR1cmluZyBkZXZpY2UgaW5pdGlh bGl6YXRpb24uPG86cD48L286cD48L3A+CjwvZGl2Pgo8L2Rpdj4KPHAgY2xhc3M9Ik1zb05vcm1h bCI+PG86cD4mbmJzcDs8L286cD48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPkkgd2FzIHRlc3Rp bmcgdGhlIGhlbGxvd29ybGQgcHJvZ3JhbSBvbiB1YnVudHUgd2l0aCBOVk1lIFNTRCBhbmQgdGhl IHByb2JlKCkgaXMgZmFpbGluZy4gUGxlYXNlIGxldCBtZSBrbm93IGlmIHRoaXMgaXMgYSBrbm93 biBwcm9ibGVtLgo8bzpwPjwvbzpwPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+TGV0IG1lIGtu b3cgaWYgdGhlcmUgaXMgd29ya2Fyb3VuZC48bzpwPjwvbzpwPjwvcD4KPHAgY2xhc3M9Ik1zb05v cm1hbCI+VGhlIHBlcmYgcHJvZ3JhbSBkaWQgbm90IGhhdmUgYW55IHByb2JsZW0uIDxvOnA+PC9v OnA+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JIGhhdmUgYXR0YWNoZWQgdGhlIG91dHB1dCBm b3IgYm90aCB0ZXN0cy48bzpwPjwvbzpwPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+bHNwY2l8 IGdyZXAgTm9uPG86cD48L286cD48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPmFkOjAwLjAg Tm9uLVZvbGF0aWxlIG1lbW9yeSBjb250cm9sbGVyOiBTYW1zdW5nIEVsZWN0cm9uaWNzIENvIEx0 ZCBOVk1lIFNTRCBDb250cm9sbGVyPC9iPiAocmV2IDAxKTxvOnA+PC9vOnA+PC9wPgo8cCBjbGFz cz0iTXNvTm9ybWFsIj5hZTowMC4wIE5vbi1Wb2xhdGlsZSBtZW1vcnkgY29udHJvbGxlcjogU2Ft c3VuZyBFbGVjdHJvbmljcyBDbyBMdGQgTlZNZSBTU0QgQ29udHJvbGxlciAocmV2IDAxKTxvOnA+ PC9vOnA+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj51bmFtZSAtYTxvOnA+PC9vOnA+PC9wPgo8 cCBjbGFzcz0iTXNvTm9ybWFsIj5MaW51eCBzamNhNXJhZGV2Y3QxMyA0LjEwLjAtMzgtZ2VuZXJp YyAjNDJ+MTYuMDQuMS1VYnVudHUgU01QIFR1ZSBPY3QgMTAgMTY6MzI6MjAgVVRDIDIwMTcgeDg2 XzY0IHg4Nl82NCB4ODZfNjQgR05VL0xpbnV4PG86cD48L286cD48L3A+CjxwIGNsYXNzPSJNc29O b3JtYWwiPjEuIGhlbGxvd29ybGQgb3V0cHV0OjxvOnA+PC9vOnA+PC9wPgo8cCBjbGFzcz0iTXNv Tm9ybWFsIj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08bzpwPjwvbzpwPjwvcD4KPHAgY2xh c3M9Ik1zb05vcm1hbCI+QXR0YWNoZWQgdG8gMDAwMDphZDowMC4wPG86cD48L286cD48L3A+Cjxw IGNsYXNzPSJNc29Ob3JtYWwiPlVzaW5nIGNvbnRyb2xsZXIgU0FNU1VORyBNWlFXVjQ4MEhDR00g KFMxVFJOWUFGQTAwMTQ4Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICkgd2l0aCAxIG5h bWVzcGFjZXMuPG86cD48L286cD48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyBOYW1l c3BhY2UgSUQ6IDEgc2l6ZTogNDgwR0I8bzpwPjwvbzpwPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1h bCI+bnZtZV9jdHJsci5jOjE0NzU6bnZtZV9jdHJscl9wcm9jZXNzX2luaXQ6ICpFUlJPUio6IElu aXRpYWxpemF0aW9uIHRpbWVkIG91dCBpbiBzdGF0ZSAxPG86cD48L286cD48L3A+CjxwIGNsYXNz PSJNc29Ob3JtYWwiPm52bWVfY3RybHIuYzogNTIzOm52bWVfY3RybHJfc2h1dGRvd246ICpFUlJP Uio6IGRpZCBub3Qgc2h1dGRvd24gd2l0aGluIDUgc2Vjb25kczxvOnA+PC9vOnA+PC9wPgo8cCBj bGFzcz0iTXNvTm9ybWFsIj5zcGRrX252bWVfcHJvYmUoKSBmYWlsZWQ8bzpwPjwvbzpwPjwvcD4K PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+CjxwIGNsYXNzPSJNc29O b3JtYWwiPjIuIHBlcmYgb3V0cHV0OjxvOnA+PC9vOnA+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFs Ij5zdWRvIC4vcGVyZiAtcSAxIC1zIDQwOTYgLXQgMTAgLXcgcmVhZCAtciAmcXVvdDt0cnR5cGU6 UENJZSB0cmFkZHI6MDAwMDphZDowMC4wJnF1b3Q7PG86cD48L286cD48L3A+CjxwIGNsYXNzPSJN c29Ob3JtYWwiPi0tLS0tLS0tLS0tLS0tLTxvOnA+PC9vOnA+PC9wPgo8cCBjbGFzcz0iTXNvTm9y bWFsIj5TdGFydGluZyBEUERLIDE3LjA4LjAgaW5pdGlhbGl6YXRpb24uLi48bzpwPjwvbzpwPjwv cD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+WyBEUERLIEVBTCBwYXJhbWV0ZXJzOiBwZXJmIC1jIDB4 MSAtLWZpbGUtcHJlZml4PXNwZGtfcGlkNzY0NyBdPG86cD48L286cD48L3A+CjxwIGNsYXNzPSJN c29Ob3JtYWwiPkVBTDogRGV0ZWN0ZWQgMzIgbGNvcmUocyk8bzpwPjwvbzpwPjwvcD4KPHAgY2xh c3M9Ik1zb05vcm1hbCI+RUFMOiBObyBmcmVlIGh1Z2VwYWdlcyByZXBvcnRlZCBpbiBodWdlcGFn ZXMtMTA0ODU3NmtCPG86cD48L286cD48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPkF0dGFjaGVk IHRvIE5WTWUgQ29udHJvbGxlciBhdCAwMDAwOmFkOjAwLjAgWzE0NGQ6YTgwMl08bzpwPjwvbzpw PjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QXNzb2NpYXRpbmcgU0FNU1VORyBNWlFXVjQ4MEhD R00gKFMxVFJOWUFGQTAwMTQ4Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICkgd2l0aCBs Y29yZSAwPG86cD48L286cD48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPkluaXRpYWxpemF0aW9u IGNvbXBsZXRlLiBMYXVuY2hpbmcgd29ya2Vycy48bzpwPjwvbzpwPjwvcD4KPHAgY2xhc3M9Ik1z b05vcm1hbCI+U3RhcnRpbmcgdGhyZWFkIG9uIGNvcmUgMDxvOnA+PC9vOnA+PC9wPgo8cCBjbGFz cz0iTXNvTm9ybWFsIj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PTxvOnA+PC9vOnA+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TGF0ZW5jeSh1cyk8bzpwPjwvbzpwPjwvcD4KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+RGV2aWNlIEluZm9ybWF0aW9uJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgSU9QUyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBNQi9zJm5ic3A7 Jm5ic3A7Jm5ic3A7IEF2ZXJhZ2UmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgbWluJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IG1heDxv OnA+PC9vOnA+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj5TQU1TVU5HIE1aUVdWNDgwSENHTSAo UzFUUk5ZQUZBMDAxNDgmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKSBmcm9tIGNvcmUg MDombmJzcDsmbmJzcDsgMTM3NzMuNTAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgNTMu ODAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgNzIuNTkmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgNjAuMjAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgMjQzLjgyPG86cD48L286 cD48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PG86cD48L286cD48L3A+CjxwIGNsYXNzPSJNc29O b3JtYWwiPlRvdGFsJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDombmJzcDsmbmJzcDsgMTM3NzMuNTAmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgNTMuODAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgNzIu NTkmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgNjAuMjAmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgMjQzLjgyPG86cD48L286cD48L3A+CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5i c3A7PC9vOnA+PC9wPgo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGFua3MgZm9yIHlvdXIgaGVscCw8 bzpwPjwvbzpwPjwvcD4KPHAgY2xhc3M9Ik1zb05vcm1hbCI+U3JlZW5pPG86cD48L286cD48L3A+ CjwvZGl2Pgo8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg== --===============8673063348456649755==--