Date: Thu, 04 Dec 2003 12:30:13 +0300 From: "Vladimir B. Grebenschikov" <vova@fbsd.ru> To: John Baldwin <jhb@FreeBSD.org> Cc: Nate Lawson <nate@root.org> Subject: Re: IRQ problem with VAIO laptop again Message-ID: <1070530200.760.14.camel@localhost> In-Reply-To: <XFMail.20031202175019.jhb@FreeBSD.org> References: <XFMail.20031202175019.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--=-3gqOGCIiXrMytabmzKYa Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: quoted-printable =F7 =D3=D2, 03.12.2003, =D7 01:50, John Baldwin =D0=C9=DB=C5=D4: > > The problem is that your _PRS values are incorrect. Actually, I think = jhb > > committed some code to deal with extended irq resources. Send me the > > output of acpidump -t -d > pete-SonyVaio.asl > >=20 > > Also, does booting without ACPI fix things? >=20 > I fixed this bug a while ago. Messed up a test for the type > of _PRS. (Used || instead of &&) I have may be similar problem with pccard on VAIO z505S. If I've book with pcmci card (say, lucent wi0) inserted - it works. But if I try insert card (or eject if boot with card inserted) system lookups hard. Only ddb rcan be called (stack trace of ddb call). If I have command ddb 'call boot(2)' it process any pending input on terminal (many enter in my case - so I have got many prompts) and then lockup entirely, even debugger can't be called. I have tried magic like: hw.pci.allow_unsupported_io_range=3D"1" or like: hw.pci.allow_unsupported_io_range=3D"1" hw.cbb.start_memory=3D"0x20000000" My guess, after card insertion something wrong happens with spl and only few interrupts processed. Also I have note that irq 9 is used by lot of devices (may be it is reason ?): # dmesg | fgrep irq\ 9 pcib0: slot 6 INTA is routed to irq 9 pcib0: slot 7 INTD is routed to irq 9 pcib0: slot 8 INTA is routed to irq 9 pcib0: slot 8 INTB is routed to irq 9 pcib0: slot 9 INTA is routed to irq 9 pcib0: slot 11 INTA is routed to irq 9 uhci0: <Intel 82371AB/EB (PIIX4) USB controller> port 0xfca0-0xfcbf irq 9 at device 7.2 on pci0 intpm0: <Intel 82371AB Power management controller> port 0x2180-0x218f irq 9 at device 7.3 on pci0 pcm0: <NeoMagic 256AV> mem 0xfea00000-0xfeafffff,0xfe000000-0xfe3fffff irq 9 at device 8.1 on pci0 pcib0: slot 10 INTA is routed to irq 9 fxp0: <Intel 82559 Pro/100 Ethernet> port 0xfcc0-0xfcff mem 0xfec00000-0xfecfffff,0xfedef000-0xfedeffff irq 9 at device 6.0 on pci0 So I can't use pcmci cards without reboot :( # uname -a FreeBSD vbook.fbsd.ru 5.2-BETA FreeBSD 5.2-BETA #6: Wed Nov 26 08:32:06 MSK 2003 root@walder.asplinux.ru:/ext/obj/ext/current/src/sys/VBOOK=20 i386 A bit of history First it works with both 4.x and 5-CURRENT (long ago), then it stop work on 5-CURRENT with acpi, then (after pccard changes) it start freeze with and without acpi on 5-CURRENT and on 4-STABLE. Please help. --=20 Vladimir B. Grebenschikov <vova@fbsd.ru> SWsoft Inc. --=-3gqOGCIiXrMytabmzKYa Content-Disposition: attachment; filename=vaio.dmesg Content-Type: text/plain; name=vaio.dmesg; charset=koi8-r Content-Transfer-Encoding: base64 Q29weXJpZ2h0IChjKSAxOTkyLTIwMDMgVGhlIEZyZWVCU0QgUHJvamVjdC4NCkNvcHlyaWdodCAo YykgMTk3OSwgMTk4MCwgMTk4MywgMTk4NiwgMTk4OCwgMTk4OSwgMTk5MSwgMTk5MiwgMTk5Mywg MTk5NA0KCVRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuDQpGcmVlQlNEIDUuMi1CRVRBICM2OiBXZWQgTm92IDI2IDA4OjMyOjA2 IE1TSyAyMDAzDQogICAgcm9vdEB3YWxkZXIuYXNwbGludXgucnU6L2V4dC9vYmovZXh0L2N1cnJl bnQvc3JjL3N5cy9WQk9PSw0KUHJlbG9hZGVkIGVsZiBrZXJuZWwgIi9ib290L2tlcm5lbC9rZXJu ZWwiIGF0IDB4YzA3ZjEwMDAuDQpQcmVsb2FkZWQgZWxmIG1vZHVsZSAiL2Jvb3Qva2VybmVsL2lm X3dpLmtvIiBhdCAweGMwN2YxMWY0Lg0KUHJlbG9hZGVkIGVsZiBtb2R1bGUgIi9ib290L2tlcm5l bC93bGFuLmtvIiBhdCAweGMwN2YxMmEwLg0KUHJlbG9hZGVkIGVsZiBtb2R1bGUgIi9ib290L2tl cm5lbC9yYzQua28iIGF0IDB4YzA3ZjEzNGMuDQpQcmVsb2FkZWQgZWxmIG1vZHVsZSAiL2Jvb3Qv a2VybmVsL3BjY2FyZC5rbyIgYXQgMHhjMDdmMTNmNC4NClByZWxvYWRlZCBlbGYgbW9kdWxlICIv Ym9vdC9rZXJuZWwvc25kX3BjbS5rbyIgYXQgMHhjMDdmMTRhMC4NClByZWxvYWRlZCBlbGYgbW9k dWxlICIvYm9vdC9rZXJuZWwvc25kX25lb21hZ2ljLmtvIiBhdCAweGMwN2YxNTRjLg0KUHJlbG9h ZGVkIGVsZiBtb2R1bGUgIi9ib290L2tlcm5lbC91c2Iua28iIGF0IDB4YzA3ZjE2MDAuDQpQcmVs b2FkZWQgZWxmIG1vZHVsZSAiL2Jvb3Qva2VybmVsL3VrYmQua28iIGF0IDB4YzA3ZjE2YTguDQpQ cmVsb2FkZWQgZWxmIG1vZHVsZSAiL2Jvb3Qva2VybmVsL3VscHQua28iIGF0IDB4YzA3ZjE3NTQu DQpQcmVsb2FkZWQgZWxmIG1vZHVsZSAiL2Jvb3Qva2VybmVsL3Vtcy5rbyIgYXQgMHhjMDdmMTgw MC4NClByZWxvYWRlZCBlbGYgbW9kdWxlICIvYm9vdC9rZXJuZWwvdW1hc3Mua28iIGF0IDB4YzA3 ZjE4YTguDQpQcmVsb2FkZWQgZWxmIG1vZHVsZSAiL2Jvb3Qva2VybmVsL3N5c3Ztc2cua28iIGF0 IDB4YzA3ZjE5NTQuDQpQcmVsb2FkZWQgZWxmIG1vZHVsZSAiL2Jvb3Qva2VybmVsL3N5c3ZzZW0u a28iIGF0IDB4YzA3ZjFhMDAuDQpQcmVsb2FkZWQgZWxmIG1vZHVsZSAiL2Jvb3Qva2VybmVsL3N5 c3ZzaG0ua28iIGF0IDB4YzA3ZjFhYWMuDQpQcmVsb2FkZWQgZWxmIG1vZHVsZSAiL2Jvb3Qva2Vy bmVsL2NiYi5rbyIgYXQgMHhjMDdmMWI1OC4NClByZWxvYWRlZCBlbGYgbW9kdWxlICIvYm9vdC9r ZXJuZWwvZXhjYS5rbyIgYXQgMHhjMDdmMWMwMC4NClByZWxvYWRlZCBlbGYgbW9kdWxlICIvYm9v dC9rZXJuZWwvY2FyZGJ1cy5rbyIgYXQgMHhjMDdmMWNhYy4NClRpbWVjb3VudGVyICJpODI1NCIg ZnJlcXVlbmN5IDExOTMxODIgSHogcXVhbGl0eSAwDQpDUFU6IFBlbnRpdW0gSUkvUGVudGl1bSBJ SSBYZW9uL0NlbGVyb24gKDMzMS41OC1NSHogNjg2LWNsYXNzIENQVSkNCiAgT3JpZ2luID0gIkdl bnVpbmVJbnRlbCIgIElkID0gMHg2NmEgIFN0ZXBwaW5nID0gMTANCiAgRmVhdHVyZXM9MHgxODNm OWZmPEZQVSxWTUUsREUsUFNFLFRTQyxNU1IsUEFFLE1DRSxDWDgsU0VQLE1UUlIsUEdFLE1DQSxD TU9WLFBBVCxQU0UzNixNTVgsRlhTUj4NCnJlYWwgbWVtb3J5ICA9IDIwMTI2MTA1NiAoMTkxIE1C KQ0KYXZhaWwgbWVtb3J5ID0gMTg5OTY0Mjg4ICgxODEgTUIpDQpQZW50aXVtIFBybyBNVFJSIHN1 cHBvcnQgZW5hYmxlZA0KbnB4MDogW0ZBU1RdDQpucHgwOiA8bWF0aCBwcm9jZXNzb3I+IG9uIG1v dGhlcmJvYXJkDQpucHgwOiBJTlQgMTYgaW50ZXJmYWNlDQphY3BpMDogPFNPTlkgICBaMCAgICAg ID4gb24gbW90aGVyYm9hcmQNCnBjaWJpb3M6IEJJT1MgdmVyc2lvbiAyLjEwDQpVc2luZyAkUElS IHRhYmxlLCA3IGVudHJpZXMgYXQgMHhjMDBmZGY1MA0KYWNwaTA6IFBvd2VyIEJ1dHRvbiAoZml4 ZWQpDQpUaW1lY291bnRlciAiQUNQSS1zYWZlIiBmcmVxdWVuY3kgMzU3OTU0NSBIeiBxdWFsaXR5 IDEwMDANCmFjcGlfdGltZXIwOiA8MjQtYml0IHRpbWVyIGF0IDMuNTc5NTQ1TUh6PiBwb3J0IDB4 ODAwOC0weDgwMGIgb24gYWNwaTANCmFjcGlfY3B1MDogPENQVT4gb24gYWNwaTANCmFjcGlfdHow OiA8VGhlcm1hbCBab25lPiBvbiBhY3BpMA0KYWNwaV9idXR0b24wOiA8UG93ZXIgQnV0dG9uPiBv biBhY3BpMA0KcGNpYjA6IDxBQ1BJIEhvc3QtUENJIGJyaWRnZT4gcG9ydCAweGNmOC0weGNmZiBv biBhY3BpMA0KcGNpMDogPEFDUEkgUENJIGJ1cz4gb24gcGNpYjANCnBjaWIwOiBzbG90IDYgSU5U QSBpcyByb3V0ZWQgdG8gaXJxIDkNCnBjaWIwOiBzbG90IDcgSU5URCBpcyByb3V0ZWQgdG8gaXJx IDkNCnBjaWIwOiBzbG90IDggSU5UQSBpcyByb3V0ZWQgdG8gaXJxIDkNCnBjaWIwOiBzbG90IDgg SU5UQiBpcyByb3V0ZWQgdG8gaXJxIDkNCnBjaWIwOiBzbG90IDkgSU5UQSBpcyByb3V0ZWQgdG8g aXJxIDkNCnBjaWIwOiBzbG90IDExIElOVEEgaXMgcm91dGVkIHRvIGlycSA5DQpwY2kwOiA8bmV0 d29yaywgZXRoZXJuZXQ+IGF0IGRldmljZSA2LjAgKG5vIGRyaXZlciBhdHRhY2hlZCkNCmlzYWIw OiA8UENJLUlTQSBicmlkZ2U+IGF0IGRldmljZSA3LjAgb24gcGNpMA0KaXNhMDogPElTQSBidXM+ IG9uIGlzYWIwDQphdGFwY2kwOiA8SW50ZWwgUElJWDQgVURNQTMzIGNvbnRyb2xsZXI+IHBvcnQg MHhmYzkwLTB4ZmM5ZiBhdCBkZXZpY2UgNy4xIG9uIHBjaTANCmF0YTA6IGF0IDB4MWYwIGlycSAx NCBvbiBhdGFwY2kwDQphdGEwOiBbTVBTQUZFXQ0KYXRhMTogYXQgMHgxNzAgaXJxIDE1IG9uIGF0 YXBjaTANCmF0YTE6IFtNUFNBRkVdDQp1aGNpMDogPEludGVsIDgyMzcxQUIvRUIgKFBJSVg0KSBV U0IgY29udHJvbGxlcj4gcG9ydCAweGZjYTAtMHhmY2JmIGlycSA5IGF0IGRldmljZSA3LjIgb24g cGNpMA0KdXNiMDogPEludGVsIDgyMzcxQUIvRUIgKFBJSVg0KSBVU0IgY29udHJvbGxlcj4gb24g dWhjaTANCnVzYjA6IFVTQiByZXZpc2lvbiAxLjANCnVodWIwOiBJbnRlbCBVSENJIHJvb3QgaHVi LCBjbGFzcyA5LzAsIHJldiAxLjAwLzEuMDAsIGFkZHIgMQ0KdWh1YjA6IDIgcG9ydHMgd2l0aCAy IHJlbW92YWJsZSwgc2VsZiBwb3dlcmVkDQp1aHViMTogVGV4YXMgSW5zdHJ1bWVudHMgVVQtVVNC NDEgaHViLCBjbGFzcyA5LzAsIHJldiAxLjEwLzEuMTAsIGFkZHIgMg0KdWh1YjE6IDQgcG9ydHMg d2l0aCA0IHJlbW92YWJsZSwgc2VsZiBwb3dlcmVkDQp1bXMwOiBNaWNyb3NvZnQgTWljcm9zb2Z0 IEludGVsbGlNb3VzZa4gRXhwbG9yZXIsIHJldiAxLjEwLzEuMTQsIGFkZHIgMywgaWNsYXNzIDMv MQ0KdW1zMDogNSBidXR0b25zIGFuZCBaIGRpci4NCnVrYmQwOiBCZWhhdmlvciBUZWNoLiBDb21w dXRlciBLZXlib2FyZCB3aXRoIG1vdXNlIHBvcnQsIHJldiAxLjAwLzEuMDAsIGFkZHIgNCwgaWNs YXNzIDMvMQ0Ka2JkMSBhdCB1a2JkMA0KdW1zMTogQmVoYXZpb3IgVGVjaC4gQ29tcHV0ZXIgS2V5 Ym9hcmQgd2l0aCBtb3VzZSBwb3J0LCByZXYgMS4wMC8xLjAwLCBhZGRyIDQsIGljbGFzcyAzLzEN CnVtczE6IDMgYnV0dG9ucw0KaW50cG0wOiA8SW50ZWwgODIzNzFBQiBQb3dlciBtYW5hZ2VtZW50 IGNvbnRyb2xsZXI+IHBvcnQgMHgyMTgwLTB4MjE4ZiBpcnEgOSBhdCBkZXZpY2UgNy4zIG9uIHBj aTANCmludHBtMDogSS9PIG1hcHBlZCAyMTgwDQppbnRwbTA6IGludHIgSVJRIDkgZW5hYmxlZCBy ZXZpc2lvbiAwDQppbnRzbWIwOiA8SW50ZWwgUElJWDQgU01CVVMgSW50ZXJmYWNlPiBvbiBpbnRw bTANCnNtYnVzMDogPFN5c3RlbSBNYW5hZ2VtZW50IEJ1cz4gb24gaW50c21iMA0Kc21iMDogPFNN QnVzIGdlbmVyaWMgSS9PPiBvbiBzbWJ1czANCmludHBtMDogUE0gSS9PIG1hcHBlZCA4MDAwIA0K cGNpMDogPGRpc3BsYXksIFZHQT4gYXQgZGV2aWNlIDguMCAobm8gZHJpdmVyIGF0dGFjaGVkKQ0K cGNtMDogPE5lb01hZ2ljIDI1NkFWPiBtZW0gMHhmZWEwMDAwMC0weGZlYWZmZmZmLDB4ZmUwMDAw MDAtMHhmZTNmZmZmZiBpcnEgOSBhdCBkZXZpY2UgOC4xIG9uIHBjaTANCnBjbTA6IDxBc2FoaSBL YXNlaSBBSzQ1NDIgQUM5NyBDb2RlYz4NCnBjaTA6IDxzZXJpYWwgYnVzLCBGaXJlV2lyZT4gYXQg ZGV2aWNlIDkuMCAobm8gZHJpdmVyIGF0dGFjaGVkKQ0KY2JiMDogPFJGNUM0NzUgUENJLUNhcmRC dXMgQnJpZGdlPiBhdCBkZXZpY2UgMTAuMCBvbiBwY2kwDQpjYXJkYnVzMDogPENhcmRCdXMgYnVz PiBvbiBjYmIwDQpwY2NhcmQwOiA8MTYtYml0IFBDQ2FyZCBidXM+IG9uIGNiYjANCnBjaWIwOiBz bG90IDEwIElOVEEgaXMgcm91dGVkIHRvIGlycSA5DQpjYmIwOiBbTVBTQUZFXQ0KcGNpMDogPHNp bXBsZSBjb21tcz4gYXQgZGV2aWNlIDExLjAgKG5vIGRyaXZlciBhdHRhY2hlZCkNCnNwZWFrZXIw IHBvcnQgMHg2MSBvbiBhY3BpMA0KYXRrYmRjMDogPEtleWJvYXJkIGNvbnRyb2xsZXIgKGk4MDQy KT4gcG9ydCAweDY0LDB4NjAgaXJxIDEgb24gYWNwaTANCmF0a2JkMDogPEFUIEtleWJvYXJkPiBm bGFncyAweDEgaXJxIDEgb24gYXRrYmRjMA0Ka2JkMCBhdCBhdGtiZDANCnBzbTA6IDxQUy8yIE1v dXNlPiBpcnEgMTIgb24gYXRrYmRjMA0KcHNtMDogbW9kZWwgR2xpZGVQb2ludCwgZGV2aWNlIElE IDANCnNpbzAgcG9ydCAweDNmOC0weDNmZiBpcnEgNCBvbiBhY3BpMA0Kc2lvMDogdHlwZSAxNjU1 MEENCnNpbzEgcG9ydCAweDE0MC0weDE0NywweDNlOC0weDNlZiBpcnEgMTAgZHJxIDAgb24gYWNw aTANCnNpbzE6IHR5cGUgMTY1NTBBDQphY3BpX2NtYmF0MDogPENvbnRyb2wgTWV0aG9kIEJhdHRl cnk+IG9uIGFjcGkwDQphY3BpX2FjYWQwOiA8QUMgQWRhcHRlcj4gb24gYWNwaTANCnBtdGltZXIw IG9uIGlzYTANCm9ybTA6IDxPcHRpb24gUk9Ncz4gYXQgaW9tZW0gMHhkYzAwMC0weGRmZmZmLDB4 YzAwMDAtMHhjYmZmZiBvbiBpc2EwDQpzYzA6IDxTeXN0ZW0gY29uc29sZT4gb24gaXNhMA0Kc2Mw OiBWR0EgPDE2IHZpcnR1YWwgY29uc29sZXMsIGZsYWdzPTB4MjAwPg0KdmdhMDogPEdlbmVyaWMg SVNBIFZHQT4gYXQgcG9ydCAweDNjMC0weDNkZiBpb21lbSAweGEwMDAwLTB4YmZmZmYgb24gaXNh MA0KVGltZWNvdW50ZXIgIlRTQyIgZnJlcXVlbmN5IDMzMTU4MTI4NyBIeiBxdWFsaXR5IDgwMA0K VGltZWNvdW50ZXJzIHRpY2sgZXZlcnkgMTAuMDAwIG1zZWMNCmlwZncyIGluaXRpYWxpemVkLCBk aXZlcnQgZW5hYmxlZCwgcnVsZS1iYXNlZCBmb3J3YXJkaW5nIGVuYWJsZWQsIGRlZmF1bHQgdG8g ZGVueSwgbG9nZ2luZyB1bmxpbWl0ZWQNCmFjcGlfY3B1OiB0aHJvdHRsaW5nIGVuYWJsZWQsIDgg c3RlcHMgKDEwMCUgdG8gMTIuNSUpLCBjdXJyZW50bHkgMTAwLjAlDQpHRU9NOiBjcmVhdGUgZGlz ayBhZDAgZHA9MHhjMjMzNzQ2MA0KYWQwOiAzODE1NE1CIDxUT1NISUJBIE1LNDAxOUdBWD4gWzc3 NTIwLzE2LzYzXSBhdCBhdGEwLW1hc3RlciBVRE1BMzMNCmF0YTEtbWFzdGVyOiBGQUlMVVJFIC0g U0VURkVBVFVSRVMgc3RhdHVzPTUxPFJFQURZLERTQyxFUlJPUj4gZXJyb3I9NDxBQk9SVEVEPg0K YXRhMS1tYXN0ZXI6IEZBSUxVUkUgLSBTRVRGRUFUVVJFUyBzdGF0dXM9NTE8UkVBRFksRFNDLEVS Uk9SPiBlcnJvcj00PEFCT1JURUQ+DQphZDE6IEZBSUxVUkUgLSBTRVRGRUFUVVJFUyBzdGF0dXM9 NTE8UkVBRFksRFNDLEVSUk9SPiBlcnJvcj00PEFCT1JURUQ+DQphZDE6IEZBSUxVUkUgLSBTRVRG RUFUVVJFUyBzdGF0dXM9NTE8UkVBRFksRFNDLEVSUk9SPiBlcnJvcj00PEFCT1JURUQ+DQpHRU9N OiBjcmVhdGUgZGlzayBhZDEgZHA9MHhjMjM2YTU2MA0KYWQxOiAzTUIgPE1FTU9SWVNUSUNLIDRN IDhLPiBbMjQ3LzIvMTZdIGF0IGF0YTEtbWFzdGVyIEJJT1NQSU8NCk1vdW50aW5nIHJvb3QgZnJv bSB1ZnM6L2Rldi9hZDBzM2ENCldBUk5JTkc6IC8gd2FzIG5vdCBwcm9wZXJseSBkaXNtb3VudGVk DQpXQVJOSU5HOiAvdXNyIHdhcyBub3QgcHJvcGVybHkgZGlzbW91bnRlZA0KL3VzcjogbW91bnQg cGVuZGluZyBlcnJvcjogYmxvY2tzIDIgZmlsZXMgMQ0KV0FSTklORzogL3Vzci9sb2NhbCB3YXMg bm90IHByb3Blcmx5IGRpc21vdW50ZWQNCmZ4cDA6IDxJbnRlbCA4MjU1OSBQcm8vMTAwIEV0aGVy bmV0PiBwb3J0IDB4ZmNjMC0weGZjZmYgbWVtIDB4ZmVjMDAwMDAtMHhmZWNmZmZmZiwweGZlZGVm MDAwLTB4ZmVkZWZmZmYgaXJxIDkgYXQgZGV2aWNlIDYuMCBvbiBwY2kwDQpmeHAwOiBFdGhlcm5l dCBhZGRyZXNzIDA4OjAwOjQ2OjA0OjMxOmIzDQptaWlidXMwOiA8TUlJIGJ1cz4gb24gZnhwMA0K aW5waHkwOiA8aTgyNTU1IDEwLzEwMCBtZWRpYSBpbnRlcmZhY2U+IG9uIG1paWJ1czANCmlucGh5 MDogIDEwYmFzZVQsIDEwYmFzZVQtRkRYLCAxMDBiYXNlVFgsIDEwMGJhc2VUWC1GRFgsIGF1dG8N Cm== --=-3gqOGCIiXrMytabmzKYa Content-Disposition: attachment; filename=vaio.asl Content-Type: text/plain; name=vaio.asl; charset=koi8-r Content-Transfer-Encoding: base64 LyoNCiAgUlNEIFBUUjogT0VNPVNPTlksIEFDUElfUmV2PTEuMHggKDApDQoJUlNEVD0weDBiZmZj YjJhLCBja3N1bT04OQ0KICovDQovKg0KICBSU0RUOiBMZW5ndGg9NDAsIFJldmlzaW9uPTEsIENo ZWNrc3VtPTIzMiwNCglPRU1JRD1TT05ZLCBPRU0gVGFibGUgSUQ9WjAsIE9FTSBSZXZpc2lvbj0w eDIwMDAwMTIxLA0KCUNyZWF0b3IgSUQ9IExUUCwgQ3JlYXRvciBSZXZpc2lvbj0weDANCglFbnRy aWVzPXsgMHgwYmZmZjc4YyB9DQogKi8NCi8qDQogIEZBRFQ6CUZBQ1M9MHhiZmZmZmMwLCBEU0RU PTB4YmZmY2I1Mg0KCUlOVF9NT0RFTD1QSUMNCglQcmVmZXJyZWRfUE1fUHJvZmlsZT1VbnNwZWNp ZmllZCAoMCkNCglTQ0lfSU5UPTkNCglTTUlfQ01EPTB4YjIsIEFDUElfRU5BQkxFPTB4ZjAsIEFD UElfRElTQUJMRT0weGYxLCBTNEJJT1NfUkVRPTB4ZjINCglQU1RBVEVfQ05UPTB4MA0KCVBNMWFf RVZUX0JMSz0weDgwMDAtMHg4MDAzDQoJUE0xYV9DTlRfQkxLPTB4ODA0Mi0weDgwNDMNCglQTV9U TVJfQkxLPTB4ODAwOC0weDgwMGINCglHUEUwX0JMSz0weDgwMGMtMHg4MDBmDQoJUF9MVkwyX0xB VD0xMCB1cywgUF9MVkwzX0xBVD0yMCB1cw0KCUZMVVNIX1NJWkU9MCwgRkxVU0hfU1RSSURFPTAN CglEVVRZX09GRlNFVD0xLCBEVVRZX1dJRFRIPTMNCglEQVlfQUxSTT0xMywgTU9OX0FMUk09MCwg Q0VOVFVSWT01MA0KCUlBUENfQk9PVF9BUkNIPQ0KCUZsYWdzPXtXQklOVkQsU0xQX0JVVFRPTn0N CiAqLw0KLyoNCiAgRkFDUzoJTGVuZ3RoPTY0LCBId1NpZz0weDAwMDAwMDAwLCBGaXJtX1dha2Vf VmVjPTB4MDAwMDAwMDANCglHbG9iYWxfTG9jaz0NCglGbGFncz1TNEJJT1MNCglWZXJzaW9uPTAN CiAqLw0KLyoNCiAgRFNEVDogTGVuZ3RoPTExMzIyLCBSZXZpc2lvbj0xLCBDaGVja3N1bT0xMTMs DQoJT0VNSUQ9U09OWSwgT0VNIFRhYmxlIElEPVowLCBPRU0gUmV2aXNpb249MHgyMDAwMDEyMSwN CglDcmVhdG9yIElEPU1TRlQsIENyZWF0b3IgUmV2aXNpb249MHgxMDAwMDA3DQogKi8NCi8qDQog KiBJbnRlbCBBQ1BJIENvbXBvbmVudCBBcmNoaXRlY3R1cmUNCiAqIEFNTCBEaXNhc3NlbWJsZXIg dmVyc2lvbiAyMDAzMDYxOQ0KICoNCiAqIERpc2Fzc2VtYmx5IG9mIC90bXAvYWNwaWR1bXAuY3RU NWNDLCBUaHUgRGVjICA0IDEyOjIzOjQ2IDIwMDMNCiAqLw0KRGVmaW5pdGlvbkJsb2NrICgiRFNE VC5hbWwiLCAiRFNEVCIsIDEsICJTT05ZICAiLCAiWjAgICAgICAiLCA1MzY4NzEyMDEpDQp7DQog ICAgU2NvcGUgKF9QUikNCiAgICB7DQogICAgICAgIFByb2Nlc3NvciAoQ1BVMCwgMHgwMCwgMHgw MDAwODAxMCwgMHgwNikge30NCiAgICB9DQoNCiAgICBOYW1lIChfUzAsIFBhY2thZ2UgKDB4MDIp DQogICAgew0KICAgICAgICAweDA1LCANCiAgICAgICAgMHgwNQ0KICAgIH0pDQogICAgTmFtZSAo X1MxLCBQYWNrYWdlICgweDAyKQ0KICAgIHsNCiAgICAgICAgMHgwNCwgDQogICAgICAgIDB4MDQN CiAgICB9KQ0KICAgIE5hbWUgKF9TMywgUGFja2FnZSAoMHgwMikNCiAgICB7DQogICAgICAgIDB4 MDEsIA0KICAgICAgICAweDAxDQogICAgfSkNCiAgICBOYW1lIChfUzQsIFBhY2thZ2UgKDB4MDIp DQogICAgew0KICAgICAgICAweDAwLCANCiAgICAgICAgMHgwMA0KICAgIH0pDQogICAgTmFtZSAo X1M1LCBQYWNrYWdlICgweDAyKQ0KICAgIHsNCiAgICAgICAgMHgwMCwgDQogICAgICAgIDB4MDAN CiAgICB9KQ0KICAgIE9wZXJhdGlvblJlZ2lvbiAoR1BPLCBTeXN0ZW1JTywgMHg4MDM0LCAweDA0 KQ0KICAgIEZpZWxkIChHUE8sIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgIHsNCiAg ICAgICAgR08wMCwgICAxLCANCiAgICAgICAgR08wMSwgICAxLCANCiAgICAgICAgR08wMiwgICAx LCANCiAgICAgICAgR08wMywgICAxLCANCiAgICAgICAgR08wNCwgICAxLCANCiAgICAgICAgR08w NSwgICAxLCANCiAgICAgICAgR08wNiwgICAxLCANCiAgICAgICAgR08wNywgICAxLCANCiAgICAg ICAgR08wOCwgICAxLCANCiAgICAgICAgR08wOSwgICAxLCANCiAgICAgICAgR08xMCwgICAxLCAN CiAgICAgICAgR08xMSwgICAxLCANCiAgICAgICAgR08xMiwgICAxLCANCiAgICAgICAgR08xMywg ICAxLCANCiAgICAgICAgR08xNCwgICAxLCANCiAgICAgICAgR08xNSwgICAxLCANCiAgICAgICAg R08xNiwgICAxLCANCiAgICAgICAgR08xNywgICAxLCANCiAgICAgICAgR08xOCwgICAxLCANCiAg ICAgICAgR08xOSwgICAxLCANCiAgICAgICAgR08yMCwgICAxLCANCiAgICAgICAgR08yMSwgICAx LCANCiAgICAgICAgR08yMiwgICAxLCANCiAgICAgICAgR08yMywgICAxLCANCiAgICAgICAgR08y NCwgICAxLCANCiAgICAgICAgR08yNSwgICAxLCANCiAgICAgICAgR08yNiwgICAxLCANCiAgICAg ICAgR08yNywgICAxLCANCiAgICAgICAgR08yOCwgICAxLCANCiAgICAgICAgR08yOSwgICAxLCAN CiAgICAgICAgR08zMCwgICAxLCANCiAgICAgICAgR08zMSwgICAxDQogICAgfQ0KDQogICAgTXV0 ZXggKE1MQVQsIDB4MDApDQogICAgTWV0aG9kIChHTEFULCAwLCBOb3RTZXJpYWxpemVkKQ0KICAg IHsNCiAgICAgICAgQWNxdWlyZSAoTUxBVCwgMHhGRkZGKQ0KICAgICAgICBTdG9yZSAoT25lLCBH TzE0KQ0KICAgICAgICBTdG9yZSAoWmVybywgR08xNCkNCiAgICAgICAgUmVsZWFzZSAoTUxBVCkN CiAgICB9DQoNCiAgICBPcGVyYXRpb25SZWdpb24gKEdMQkwsIFN5c3RlbUlPLCAweDgwMjgsIDB4 MDQpDQogICAgRmllbGQgKEdMQkwsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgIHsN CiAgICAgICAgT2Zmc2V0ICgweDAzKSwgDQogICAgICAgICAgICAsICAgMSwgDQogICAgICAgIExQ T0wsICAgMQ0KICAgIH0NCg0KICAgIE9wZXJhdGlvblJlZ2lvbiAoU01JMCwgU3lzdGVtTWVtb3J5 LCAweDBCRkZGQkE3LCAweDAwMDAwNDE1KQ0KICAgIEZpZWxkIChTTUkwLCBBbnlBY2MsIE5vTG9j aywgUHJlc2VydmUpDQogICAgew0KICAgICAgICBCQ01ELCAgIDgsIA0KICAgICAgICBESUQsICAg IDMyLCANCiAgICAgICAgSU5GTywgICA0MDk2DQogICAgfQ0KDQogICAgRmllbGQgKFNNSTAsIEFu eUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkNCiAgICB7DQogICAgICAgIE9mZnNldCAoMHgwNSksIA0K ICAgICAgICBJTkZCLCAgIDgNCiAgICB9DQoNCiAgICBGaWVsZCAoU01JMCwgQW55QWNjLCBOb0xv Y2ssIFByZXNlcnZlKQ0KICAgIHsNCiAgICAgICAgT2Zmc2V0ICgweDA1KSwgDQogICAgICAgIElO RkQsICAgMzINCiAgICB9DQoNCiAgICBGaWVsZCAoU01JMCwgQW55QWNjLCBOb0xvY2ssIFByZXNl cnZlKQ0KICAgIHsNCiAgICAgICAgT2Zmc2V0ICgweDA1KSwgDQogICAgICAgIFNYQkYsICAgODMy MA0KICAgIH0NCg0KICAgIE9wZXJhdGlvblJlZ2lvbiAoU01JMSwgU3lzdGVtSU8sIDB4MDAwMDgw NDAsIDB4MDAwMDAwMDIpDQogICAgRmllbGQgKFNNSTEsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2 ZSkNCiAgICB7DQogICAgICAgIFNNSUMsICAgOA0KICAgIH0NCg0KICAgIE11dGV4IChNUEhTLCAw eDAwKQ0KICAgIE1ldGhvZCAoUEhTMCwgMSwgTm90U2VyaWFsaXplZCkNCiAgICB7DQogICAgICAg IFN0b3JlIChBcmcwLCBCQ01EKQ0KICAgICAgICBTdG9yZSAoWmVybywgU01JQykNCiAgICAgICAg V2hpbGUgKExFcXVhbCAoQkNNRCwgQXJnMCkpIHt9DQogICAgICAgIFN0b3JlICgweDAwLCBCQ01E KQ0KICAgIH0NCg0KICAgIE1ldGhvZCAoUEhTLCAxLCBTZXJpYWxpemVkKQ0KICAgIHsNCiAgICAg ICAgQWNxdWlyZSAoTVBIUywgMHhGRkZGKQ0KICAgICAgICBTdG9yZSAoMHgwMCwgRElEKQ0KICAg ICAgICBQSFMwIChBcmcwKQ0KICAgICAgICBTdG9yZSAoSU5GRCwgTG9jYWwwKQ0KICAgICAgICBS ZWxlYXNlIChNUEhTKQ0KICAgICAgICBSZXR1cm4gKExvY2FsMCkNCiAgICB9DQoNCiAgICBNZXRo b2QgKFBIU0IsIDIsIFNlcmlhbGl6ZWQpDQogICAgew0KICAgICAgICBBY3F1aXJlIChNUEhTLCAw eEZGRkYpDQogICAgICAgIFN0b3JlICgweDAwLCBESUQpDQogICAgICAgIFN0b3JlIChBcmcxLCBJ TkZCKQ0KICAgICAgICBQSFMwIChBcmcwKQ0KICAgICAgICBTdG9yZSAoSU5GQiwgTG9jYWwwKQ0K ICAgICAgICBSZWxlYXNlIChNUEhTKQ0KICAgICAgICBSZXR1cm4gKExvY2FsMCkNCiAgICB9DQoN CiAgICBNZXRob2QgKFBTQ1MsIDEsIFNlcmlhbGl6ZWQpDQogICAgew0KICAgICAgICBBY3F1aXJl IChNUEhTLCAweEZGRkYpDQogICAgICAgIFN0b3JlIChBcmcwLCBESUQpDQogICAgICAgIFBIUzAg KDB4MDApDQogICAgICAgIFN0b3JlIChJTkZPLCBMb2NhbDApDQogICAgICAgIFJlbGVhc2UgKE1Q SFMpDQogICAgICAgIFJldHVybiAoTG9jYWwwKQ0KICAgIH0NCg0KICAgIE1ldGhvZCAoUFNTUywg MiwgU2VyaWFsaXplZCkNCiAgICB7DQogICAgICAgIEFjcXVpcmUgKE1QSFMsIDB4RkZGRikNCiAg ICAgICAgU3RvcmUgKEFyZzAsIERJRCkNCiAgICAgICAgU3RvcmUgKEFyZzEsIElORk8pDQogICAg ICAgIFBIUzAgKDB4MDEpDQogICAgICAgIFJlbGVhc2UgKE1QSFMpDQogICAgfQ0KDQogICAgTWV0 aG9kIChQU1BTLCAxLCBTZXJpYWxpemVkKQ0KICAgIHsNCiAgICAgICAgQWNxdWlyZSAoTVBIUywg MHhGRkZGKQ0KICAgICAgICBTdG9yZSAoQXJnMCwgRElEKQ0KICAgICAgICBQSFMwICgweDAyKQ0K ICAgICAgICBTdG9yZSAoSU5GTywgTG9jYWwwKQ0KICAgICAgICBSZWxlYXNlIChNUEhTKQ0KICAg ICAgICBSZXR1cm4gKExvY2FsMCkNCiAgICB9DQoNCiAgICBNZXRob2QgKFBTREksIDEsIFNlcmlh bGl6ZWQpDQogICAgew0KICAgICAgICBBY3F1aXJlIChNUEhTLCAweEZGRkYpDQogICAgICAgIFN0 b3JlIChBcmcwLCBESUQpDQogICAgICAgIFBIUzAgKDB4MDMpDQogICAgICAgIFJlbGVhc2UgKE1Q SFMpDQogICAgfQ0KDQogICAgTWV0aG9kIChQU1NULCAxLCBTZXJpYWxpemVkKQ0KICAgIHsNCiAg ICAgICAgQWNxdWlyZSAoTVBIUywgMHhGRkZGKQ0KICAgICAgICBTdG9yZSAoQXJnMCwgRElEKQ0K ICAgICAgICBQSFMwICgweDA0KQ0KICAgICAgICBTdG9yZSAoSU5GQiwgTG9jYWwwKQ0KICAgICAg ICBSZWxlYXNlIChNUEhTKQ0KICAgICAgICBSZXR1cm4gKExvY2FsMCkNCiAgICB9DQoNCiAgICBT Y29wZSAoXF9HUEUpDQogICAgew0KICAgICAgICBNZXRob2QgKF9FMDksIDAsIE5vdFNlcmlhbGl6 ZWQpDQogICAgICAgIHsNCiAgICAgICAgICAgIFxfU0IuUENJMC5JU0EuRUMuU0NJRCAoKQ0KICAg ICAgICB9DQoNCiAgICAgICAgTWV0aG9kIChfTDBBLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAg ICB7DQogICAgICAgICAgICBTdG9yZSAoIkdlbmVyYXRlZCBTV0kiLCBEZWJ1ZykNCiAgICAgICAg ICAgIE5vdGlmeSAoXF9TQi5QQ0kwLCAweDAyKQ0KICAgICAgICB9DQoNCiAgICAgICAgTmFtZSAo X1BSVywgUGFja2FnZSAoMHgwMikNCiAgICAgICAgew0KICAgICAgICAgICAgMHgwQiwgDQogICAg ICAgICAgICAweDA0DQogICAgICAgIH0pDQogICAgICAgIE1ldGhvZCAoX0wwOCwgMCwgTm90U2Vy aWFsaXplZCkNCiAgICAgICAgew0KICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuVVNCMCwg MHgwMikNCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoX0wwQiwgMCwgTm90U2VyaWFsaXpl ZCkNCiAgICAgICAgew0KICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpDQogICAg ICAgIH0NCiAgICB9DQoNCiAgICBNZXRob2QgKE1JTiwgMiwgTm90U2VyaWFsaXplZCkNCiAgICB7 DQogICAgICAgIElmIChMTGVzcyAoQXJnMCwgQXJnMSkpDQogICAgICAgIHsNCiAgICAgICAgICAg IFJldHVybiAoQXJnMCkNCiAgICAgICAgfQ0KICAgICAgICBFbHNlDQogICAgICAgIHsNCiAgICAg ICAgICAgIFJldHVybiAoQXJnMSkNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIE1ldGhvZCAoU0xF TiwgMSwgTm90U2VyaWFsaXplZCkNCiAgICB7DQogICAgICAgIFJldHVybiAoU2l6ZU9mIChBcmcw KSkNCiAgICB9DQoNCiAgICBNZXRob2QgKFMyQkYsIDEsIFNlcmlhbGl6ZWQpDQogICAgew0KICAg ICAgICBBZGQgKFNMRU4gKEFyZzApLCBPbmUsIExvY2FsMCkNCiAgICAgICAgTmFtZSAoQlVGRiwg QnVmZmVyIChMb2NhbDApIHt9KQ0KICAgICAgICBTdG9yZSAoQXJnMCwgQlVGRikNCiAgICAgICAg UmV0dXJuIChCVUZGKQ0KICAgIH0NCg0KICAgIE1ldGhvZCAoU0NNUCwgMiwgTm90U2VyaWFsaXpl ZCkNCiAgICB7DQogICAgICAgIFN0b3JlIChTMkJGIChBcmcwKSwgTG9jYWwwKQ0KICAgICAgICBT dG9yZSAoUzJCRiAoQXJnMSksIExvY2FsMSkNCiAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsNCkN CiAgICAgICAgU3RvcmUgKFNMRU4gKEFyZzApLCBMb2NhbDUpDQogICAgICAgIFN0b3JlIChTTEVO IChBcmcxKSwgTG9jYWw2KQ0KICAgICAgICBTdG9yZSAoTUlOIChMb2NhbDUsIExvY2FsNiksIExv Y2FsNykNCiAgICAgICAgV2hpbGUgKExMZXNzIChMb2NhbDQsIExvY2FsNykpDQogICAgICAgIHsN CiAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoTG9jYWwwLCBMb2NhbDQpKSwgTG9j YWwyKQ0KICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChMb2NhbDEsIExvY2FsNCkp LCBMb2NhbDMpDQogICAgICAgICAgICBJZiAoTEdyZWF0ZXIgKExvY2FsMiwgTG9jYWwzKSkNCiAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkNCiAgICAgICAgICAgIH0N CiAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBJZiAoTExl c3MgKExvY2FsMiwgTG9jYWwzKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoT25lcykNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAg ICAgICAgICAgIEluY3JlbWVudCAoTG9jYWw0KQ0KICAgICAgICB9DQoNCiAgICAgICAgSWYgKExM ZXNzIChMb2NhbDQsIExvY2FsNSkpDQogICAgICAgIHsNCiAgICAgICAgICAgIFJldHVybiAoT25l KQ0KICAgICAgICB9DQogICAgICAgIEVsc2UNCiAgICAgICAgew0KICAgICAgICAgICAgSWYgKExM ZXNzIChMb2NhbDQsIExvY2FsNikpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmV0 dXJuIChPbmVzKQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykNCiAgICAgICAgICAgIH0NCiAgICAgICAg fQ0KICAgIH0NCg0KICAgIFNjb3BlIChfU0IpDQogICAgew0KICAgICAgICBEZXZpY2UgKFBXUkIp DQogICAgICAgIHsNCiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEMiKSkN CiAgICAgICAgICAgIE5hbWUgKF9QUlcsIFBhY2thZ2UgKDB4MDIpDQogICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgMHgwQiwgDQogICAgICAgICAgICAgICAgMHgwNA0KICAgICAgICAgICAg fSkNCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpDQogICAgICAgICAgICB9DQoNCiAg ICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgIHsN CiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxp emVkKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIEdPMTEpDQog ICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBEZXZpY2UgKFBDSTApDQogICAgICAg IHsNCiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBBMDMiKSkNCiAgICAgICAg ICAgIE5hbWUgKF9BRFIsIDB4MDApDQogICAgICAgICAgICBOYW1lIChfQkJOLCAweDAwKQ0KICAg ICAgICAgICAgTmFtZSAoX1BSVCwgUGFja2FnZSAoMHgwNykNCiAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgMHgwMDA3RkZGRiwgDQogICAgICAgICAgICAgICAgICAgIDB4MDMsIA0KICAgICAg ICAgICAgICAgICAgICBMTktELCANCiAgICAgICAgICAgICAgICAgICAgMHgwMA0KICAgICAgICAg ICAgICAgIH0sIA0KDQogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgIDB4MDAwOEZGRkYsIA0KICAgICAgICAgICAgICAg ICAgICAweDAwLCANCiAgICAgICAgICAgICAgICAgICAgTE5LQSwgDQogICAgICAgICAgICAgICAg ICAgIDB4MDANCiAgICAgICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAweDAwMDlGRkZG LCANCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgDQogICAgICAgICAgICAgICAgICAgIExOS0Ms IA0KICAgICAgICAgICAgICAgICAgICAweDAwDQogICAgICAgICAgICAgICAgfSwgDQoNCiAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgMHgwMDBBRkZGRiwgDQogICAgICAgICAgICAgICAgICAgIDB4MDAsIA0KICAgICAg ICAgICAgICAgICAgICBMTktCLCANCiAgICAgICAgICAgICAgICAgICAgMHgwMA0KICAgICAgICAg ICAgICAgIH0sIA0KDQogICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgIDB4MDAwQkZGRkYsIA0KICAgICAgICAgICAgICAg ICAgICAweDAwLCANCiAgICAgICAgICAgICAgICAgICAgTE5LQSwgDQogICAgICAgICAgICAgICAg ICAgIDB4MDANCiAgICAgICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAweDAwMDhGRkZG LCANCiAgICAgICAgICAgICAgICAgICAgMHgwMSwgDQogICAgICAgICAgICAgICAgICAgIExOS0Is IA0KICAgICAgICAgICAgICAgICAgICAweDAwDQogICAgICAgICAgICAgICAgfSwgDQoNCiAgICAg ICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgMHgwMDA2RkZGRiwgDQogICAgICAgICAgICAgICAgICAgIDB4MDAsIA0KICAgICAg ICAgICAgICAgICAgICBMTktBLCANCiAgICAgICAgICAgICAgICAgICAgMHgwMA0KICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgIH0pDQogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFJF R1MsIFBDSV9Db25maWcsIDB4NDAsIDB4QzApDQogICAgICAgICAgICBGaWVsZCAoUkVHUywgRFdv cmRBY2MsIE5vTG9jaywgUHJlc2VydmUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg T2Zmc2V0ICgweDE5KSwgDQogICAgICAgICAgICAgICAgUEFNMCwgICA4LCANCiAgICAgICAgICAg ICAgICBQQU0xLCAgIDgsIA0KICAgICAgICAgICAgICAgIFBBTTIsICAgOCwgDQogICAgICAgICAg ICAgICAgUEFNMywgICA4LCANCiAgICAgICAgICAgICAgICBQQU00LCAgIDgsIA0KICAgICAgICAg ICAgICAgIFBBTTUsICAgOCwgDQogICAgICAgICAgICAgICAgUEFNNiwgICA4LCANCiAgICAgICAg ICAgICAgICBEUkIwLCAgIDgsIA0KICAgICAgICAgICAgICAgIERSQjEsICAgOCwgDQogICAgICAg ICAgICAgICAgRFJCMiwgICA4LCANCiAgICAgICAgICAgICAgICBEUkIzLCAgIDgsIA0KICAgICAg ICAgICAgICAgIERSQjQsICAgOCwgDQogICAgICAgICAgICAgICAgRFJCNSwgICA4LCANCiAgICAg ICAgICAgICAgICBEUkI2LCAgIDgsIA0KICAgICAgICAgICAgICAgIERSQjcsICAgOCwgDQogICAg ICAgICAgICAgICAgICAgICwgICA2LCANCiAgICAgICAgICAgICAgICBIRU4sICAgIDIsIA0KICAg ICAgICAgICAgICAgIE9mZnNldCAoMHgzMyksIA0KICAgICAgICAgICAgICAgIFRfRU4sICAgMSwg DQogICAgICAgICAgICAgICAgVF9TWiwgICAyLCANCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 M0EpLCANCiAgICAgICAgICAgICAgICBDUlNULCAgIDENCiAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgTmFtZSAoUlNSQywgQnVmZmVyICgweDAxRDIpDQogICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgMHg4OCwgMHgwRSwgMHgwMCwgMHgwMiwgMHgwQywgMHgwMCwgMHgwMCwgMHgwMCwg DQogICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHhGRiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMSwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHg4NywgMHgxOCwgMHgwMCwgMHgwMCwg MHgwQywgMHgwMywgMHgwMCwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwQSwgMHgwMCwgMHhGRiwgDQogICAgICAgICAgICAgICAgMHhGRiwgMHgwQiwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHgw MCwgMHgwMiwgMHgwMCwgMHgwMCwgMHg4NywgMHgxOCwgMHgwMCwgMHgwMCwgDQogICAgICAgICAg ICAgICAgMHgwQywgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgDQog ICAgICAgICAgICAgICAgMHgwQywgMHgwMCwgMHhGRiwgMHgzRiwgMHgwQywgMHgwMCwgMHgwMCwg MHgwMCwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHg0MCwgMHgwMCwgMHgw MCwgMHgwMCwgMHg4NywgDQogICAgICAgICAgICAgICAgMHgxOCwgMHgwMCwgMHgwMCwgMHgwQywg MHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHg0 MCwgMHgwQywgMHgwMCwgMHhGRiwgMHg3RiwgMHgwQywgDQogICAgICAgICAgICAgICAgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg0MCwgMHgwMCwgDQogICAgICAgICAgICAg ICAgMHgwMCwgMHgwMCwgMHg4NywgMHgxOCwgMHgwMCwgMHgwMCwgMHgwQywgMHgwMywgDQogICAg ICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg4MCwgMHgwQywgMHgw MCwgDQogICAgICAgICAgICAgICAgMHhGRiwgMHhCRiwgMHgwQywgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHg0MCwgMHgwMCwgMHgwMCwgMHgw MCwgMHg4NywgMHgxOCwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHgwQywgMHgwMywg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHhDMCwgMHgw QywgMHgwMCwgMHhGRiwgMHhGRiwgMHgwQywgMHgwMCwgMHgwMCwgDQogICAgICAgICAgICAgICAg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwMCwgDQogICAgICAg ICAgICAgICAgMHg4NywgMHgxOCwgMHgwMCwgMHgwMCwgMHgwQywgMHgwMywgMHgwMCwgMHgwMCwg DQogICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwRCwgMHgwMCwgMHhG RiwgMHgzRiwgDQogICAgICAgICAgICAgICAgMHgwRCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHg0MCwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHg4 NywgMHgxOCwgMHgwMCwgMHgwMCwgMHgwQywgDQogICAgICAgICAgICAgICAgMHgwMywgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg0MCwgMHgwRCwgDQogICAgICAgICAgICAgICAgMHgw MCwgMHhGRiwgMHg3RiwgMHgwRCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgDQogICAgICAgICAg ICAgICAgMHgwMCwgMHgwMCwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg4NywgMHgxOCwgDQog ICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwQywgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHg4MCwgMHgwRCwgMHgwMCwgMHhGRiwgMHhC RiwgMHgwRCwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHg0MCwgMHgwMCwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHg4NywgMHgx OCwgMHgwMCwgMHgwMCwgMHgwQywgMHgwMywgMHgwMCwgDQogICAgICAgICAgICAgICAgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHhDMCwgMHgwRCwgMHgwMCwgMHhGRiwgDQogICAgICAgICAgICAg ICAgMHhGRiwgMHgwRCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgDQogICAg ICAgICAgICAgICAgMHg0MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg4NywgMHgxOCwgMHgwMCwgMHgw MCwgDQogICAgICAgICAgICAgICAgMHgwQywgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHgwRSwgMHgwMCwgMHhGRiwgMHgzRiwgMHgw RSwgMHgwMCwgMHgwMCwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwg MHg0MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg4NywgDQogICAgICAgICAgICAgICAgMHgxOCwgMHgw MCwgMHgwMCwgMHgwQywgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgDQogICAgICAgICAgICAgICAg MHgwMCwgMHgwMCwgMHg0MCwgMHgwRSwgMHgwMCwgMHhGRiwgMHg3RiwgMHgwRSwgDQogICAgICAg ICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg0MCwgMHgwMCwg DQogICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHg4NywgMHgxOCwgMHgwMCwgMHgwMCwgMHgw QywgMHgwMywgDQogICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHg4MCwgMHgwRSwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHhGRiwgMHhCRiwgMHgwRSwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHg0MCwg MHgwMCwgMHgwMCwgMHgwMCwgMHg4NywgMHgxOCwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHgw MCwgMHgwQywgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgDQogICAgICAgICAg ICAgICAgMHhDMCwgMHgwRSwgMHgwMCwgMHhGRiwgMHhGRiwgMHgwRSwgMHgwMCwgMHgwMCwgDQog ICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg0MCwgMHgwMCwgMHgwMCwg MHgwMCwgDQogICAgICAgICAgICAgICAgMHg4NywgMHgxOCwgMHgwMCwgMHgwMCwgMHgwQywgMHgw MywgMHgwMCwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHgwMCwg MHgwMCwgMHgwMCwgMHg4NywgMHgxOCwgMHgwMCwgMHgwMCwgMHgwQywgDQogICAgICAgICAgICAg ICAgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgDQogICAg ICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHg0NywgMHgwMSwgDQogICAgICAgICAgICAgICAgMHhGOCwgMHgwQywgMHhGOCwgMHgwQywgMHgw MSwgMHgwOCwgMHg4OCwgMHgwRSwgDQogICAgICAgICAgICAgICAgMHgwMCwgMHgwMSwgMHgwQywg MHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgDQogICAgICAgICAgICAgICAgMHhGNywgMHgw QywgMHgwMCwgMHgwMCwgMHhGOCwgMHgwQywgMHgwMCwgMHg4OCwgDQogICAgICAgICAgICAgICAg MHgwRSwgMHgwMCwgMHgwMSwgMHgwQywgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgDQogICAgICAg ICAgICAgICAgMHgwRCwgMHhGRiwgMHhGRiwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGMywgMHgwMCwg DQogICAgICAgICAgICAgICAgMHg3OSwgMHgwMA0KICAgICAgICAgICAgfSkNCiAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICBTdG9yZSAoWmVybywgTG9jYWwxKQ0KICAgICAgICAgICAgICAgIElmIChUX0VOKQ0KICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0ICgweDAxLCBBZGQg KFRfU1osIDB4MTEpLCBMb2NhbDEpDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoUlNSQywgMHgwMTdBLCBCVE1OKQ0KICAgICAgICAgICAgICAg IENyZWF0ZURXb3JkRmllbGQgKFJTUkMsIDB4MDE3RSwgQlRNWCkNCiAgICAgICAgICAgICAgICBD cmVhdGVEV29yZEZpZWxkIChSU1JDLCAweDAxODYsIEJUTE4pDQogICAgICAgICAgICAgICAgTXVs dGlwbHkgKERSQjcsIDB4MDA4MDAwMDAsIExvY2FsMCkNCiAgICAgICAgICAgICAgICBJZiAoVF9F TikNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFN1YnRyYWN0IChMb2Nh bDAsIExvY2FsMSwgTG9jYWwyKQ0KICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwyLCBC VE1OKQ0KICAgICAgICAgICAgICAgICAgICBTdWJ0cmFjdCAoQWRkIChMb2NhbDAsIDB4MTAwMDAw MDApLCBCVE1OLCBCVExOKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBFbHNl DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBC VE1OKQ0KICAgICAgICAgICAgICAgICAgICBTdWJ0cmFjdCAoMHhGRkUwMDAwMCwgTG9jYWwwLCBC VExOKQ0KICAgICAgICAgICAgICAgICAgICBTdWJ0cmFjdCAoQWRkIChCVE1OLCBCVExOKSwgMHgw MSwgQlRNWCkNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBDcmVhdGVEV29y ZEZpZWxkIChSU1JDLCAweDAxOTUsIEFUTU4pDQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRG aWVsZCAoUlNSQywgMHgwMTk5LCBBVE1YKQ0KICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmll bGQgKFJTUkMsIDB4MDFBMSwgQVRMTikNCiAgICAgICAgICAgICAgICBJZiAoVF9FTikNCiAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEFkZCAoQWRkIChCVE1OLCBCVExOKSwg TG9jYWwxLCBBVE1OKQ0KICAgICAgICAgICAgICAgICAgICBTdWJ0cmFjdCAoMHhGRkUwMDAwMCwg QVRNTiwgQVRMTikNCiAgICAgICAgICAgICAgICAgICAgU3VidHJhY3QgKEFkZCAoQVRNTiwgQVRM TiksIDB4MDEsIEFUTVgpDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIEVsc2UN CiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBBVExO KQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChS U1JDLCAweDAxODgsIEMwUlcpDQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUlNS QywgMHgzNiwgQzBNTikNCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSU1JDLCAw eDNBLCBDME1YKQ0KICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJTUkMsIDB4NDIs IEMwTE4pDQogICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgQzBSVykNCiAgICAgICAgICAgICAg ICBJZiAoTEVxdWFsIChBbmQgKFBBTTEsIDB4MDMpLCAweDAxKSkNCiAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBDMFJXKQ0KICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBDMExOKQ0KICAgICAgICAgICAgICAg IElmIChMTm90IChBbmQgKFBBTTEsIDB4MDMpKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDQwMDAsIEMwTE4pDQogICAgICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKFJTUkMsIDB4MDI2MCwgQzRSVykNCiAgICAg ICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSU1JDLCAweDUxLCBDNE1OKQ0KICAgICAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJTUkMsIDB4NTUsIEM0TVgpDQogICAgICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoUlNSQywgMHg1RCwgQzRMTikNCiAgICAgICAgICAgICAgICBT dG9yZSAoT25lLCBDNFJXKQ0KICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFuZCAoUEFNMSwg MHgzMCksIDB4MTApKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKFplcm8sIEM0UlcpDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgU3Rv cmUgKFplcm8sIEM0TE4pDQogICAgICAgICAgICAgICAgSWYgKExOb3QgKEFuZCAoUEFNMSwgMHgz MCkpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4NDAw MCwgQzRMTikNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBDcmVhdGVCaXRG aWVsZCAoUlNSQywgMHgwMzM4LCBDOFJXKQ0KICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmll bGQgKFJTUkMsIDB4NkMsIEM4TU4pDQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAo UlNSQywgMHg3MCwgQzhNWCkNCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSU1JD LCAweDc4LCBDOExOKQ0KICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIEM4UlcpDQogICAgICAg ICAgICAgICAgSWYgKExFcXVhbCAoQW5kIChQQU0yLCAweDAzKSwgMHgwMSkpDQogICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgQzhSVykNCiAgICAgICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgQzhMTikNCiAgICAgICAg ICAgICAgICBJZiAoTE5vdCAoQW5kIChQQU0yLCAweDAzKSkpDQogICAgICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg0MDAwLCBDOExOKQ0KICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChSU1JDLCAweDA0MTAsIENDUlcp DQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUlNSQywgMHg4NywgQ0NNTikNCiAg ICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSU1JDLCAweDhCLCBDQ01YKQ0KICAgICAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJTUkMsIDB4OTMsIENDTE4pDQogICAgICAgICAg ICAgICAgU3RvcmUgKE9uZSwgQ0NSVykNCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBbmQg KFBBTTIsIDB4MzApLCAweDEwKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgIFN0b3JlIChaZXJvLCBDQ1JXKQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAg ICAgIFN0b3JlIChaZXJvLCBDQ0xOKQ0KICAgICAgICAgICAgICAgIElmIChMTm90IChBbmQgKFBB TTIsIDB4MzApKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDQwMDAsIENDTE4pDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgQ3Jl YXRlQml0RmllbGQgKFJTUkMsIDB4MDRFOCwgRDBSVykNCiAgICAgICAgICAgICAgICBDcmVhdGVE V29yZEZpZWxkIChSU1JDLCAweEEyLCBEME1OKQ0KICAgICAgICAgICAgICAgIENyZWF0ZURXb3Jk RmllbGQgKFJTUkMsIDB4QTYsIEQwTVgpDQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoUlNSQywgMHhBRSwgRDBMTikNCiAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBEMFJXKQ0K ICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFuZCAoUEFNMywgMHgwMyksIDB4MDEpKQ0KICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEQwUlcpDQog ICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEQwTE4pDQog ICAgICAgICAgICAgICAgSWYgKExOb3QgKEFuZCAoUEFNMywgMHgwMykpKQ0KICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4NDAwMCwgRDBMTikNCiAgICAgICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoUlNSQywgMHgwNUMw LCBENFJXKQ0KICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJTUkMsIDB4QkQsIEQ0 TU4pDQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUlNSQywgMHhDMSwgRDRNWCkN CiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSU1JDLCAweEM5LCBENExOKQ0KICAg ICAgICAgICAgICAgIFN0b3JlIChPbmUsIEQ0UlcpDQogICAgICAgICAgICAgICAgSWYgKExFcXVh bCAoQW5kIChQQU0zLCAweDMwKSwgMHgxMCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoWmVybywgRDRSVykNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICBTdG9yZSAoWmVybywgRDRMTikNCiAgICAgICAgICAgICAgICBJZiAoTE5vdCAo QW5kIChQQU0zLCAweDMwKSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHg0MDAwLCBENExOKQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAg ICAgIENyZWF0ZUJpdEZpZWxkIChSU1JDLCAweDA2OTgsIEQ4UlcpDQogICAgICAgICAgICAgICAg Q3JlYXRlRFdvcmRGaWVsZCAoUlNSQywgMHhEOCwgRDhNTikNCiAgICAgICAgICAgICAgICBDcmVh dGVEV29yZEZpZWxkIChSU1JDLCAweERDLCBEOE1YKQ0KICAgICAgICAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKFJTUkMsIDB4RTQsIEQ4TE4pDQogICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwg RDhSVykNCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBbmQgKFBBTTQsIDB4MDMpLCAweDAx KSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBE OFJXKQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBE OExOKQ0KICAgICAgICAgICAgICAgIElmIChMTm90IChBbmQgKFBBTTQsIDB4MDMpKSkNCiAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDQwMDAsIEQ4TE4pDQog ICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKFJTUkMs IDB4MDc3MCwgRENSVykNCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSU1JDLCAw eEYzLCBEQ01OKQ0KICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJTUkMsIDB4Rjcs IERDTVgpDQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUlNSQywgMHhGRiwgRENM TikNCiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgRENSVykNCiAgICAgICAgICAgICAgICBT dG9yZSAoMHg0MDAwLCBEQ0xOKQ0KICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChSU1JD LCAweDA4NDgsIEUwUlcpDQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUlNSQywg MHgwMTBFLCBFME1OKQ0KICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJTUkMsIDB4 MDExMiwgRTBNWCkNCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSU1JDLCAweDAx MUEsIEUwTE4pDQogICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgRTBSVykNCiAgICAgICAgICAg ICAgICBJZiAoTEVxdWFsIChBbmQgKFBBTTUsIDB4MDMpLCAweDAxKSkNCiAgICAgICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBFMFJXKQ0KICAgICAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBFMExOKQ0KICAgICAgICAgICAg ICAgIElmIChMTm90IChBbmQgKFBBTTUsIDB4MDMpKSkNCiAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDQwMDAsIEUwTE4pDQogICAgICAgICAgICAgICAgfQ0K DQogICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKFJTUkMsIDB4MDkyMCwgRTRSVykNCiAg ICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSU1JDLCAweDAxMjksIEU0TU4pDQogICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUlNSQywgMHgwMTJELCBFNE1YKQ0KICAgICAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJTUkMsIDB4MDEzNSwgRTRMTikNCiAgICAgICAg ICAgICAgICBTdG9yZSAoT25lLCBFNFJXKQ0KICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFu ZCAoUEFNNSwgMHgzMCksIDB4MTApKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKFplcm8sIEU0UlcpDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAg ICAgICAgU3RvcmUgKFplcm8sIEU0TE4pDQogICAgICAgICAgICAgICAgSWYgKExOb3QgKEFuZCAo UEFNNSwgMHgzMCkpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4NDAwMCwgRTRMTikNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBD cmVhdGVCaXRGaWVsZCAoUlNSQywgMHgwOUY4LCBFOFJXKQ0KICAgICAgICAgICAgICAgIENyZWF0 ZURXb3JkRmllbGQgKFJTUkMsIDB4MDE0NCwgRThNTikNCiAgICAgICAgICAgICAgICBDcmVhdGVE V29yZEZpZWxkIChSU1JDLCAweDAxNDgsIEU4TVgpDQogICAgICAgICAgICAgICAgQ3JlYXRlRFdv cmRGaWVsZCAoUlNSQywgMHgwMTUwLCBFOExOKQ0KICAgICAgICAgICAgICAgIFN0b3JlIChPbmUs IEU4UlcpDQogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQW5kIChQQU02LCAweDAzKSwgMHgw MSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywg RThSVykNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywg RThMTikNCiAgICAgICAgICAgICAgICBJZiAoTE5vdCAoQW5kIChQQU02LCAweDAzKSkpDQogICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg0MDAwLCBFOExOKQ0K ICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChSU1JD LCAweDBBRDAsIEVDUlcpDQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUlNSQywg MHgwMTVGLCBFQ01OKQ0KICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFJTUkMsIDB4 MDE2MywgRUNNWCkNCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChSU1JDLCAweDAx NkIsIEVDTE4pDQogICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgRUNSVykNCiAgICAgICAgICAg ICAgICBJZiAoTEVxdWFsIChBbmQgKFBBTTYsIDB4MzApLCAweDEwKSkNCiAgICAgICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBFQ1JXKQ0KICAgICAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBFQ0xOKQ0KICAgICAgICAgICAg ICAgIElmIChMTm90IChBbmQgKFBBTTYsIDB4MzApKSkNCiAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDQwMDAsIEVDTE4pDQogICAgICAgICAgICAgICAgfQ0K DQogICAgICAgICAgICAgICAgUmV0dXJuIChSU1JDKQ0KICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICBEZXZpY2UgKFVTQjApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTmFtZSAo X0FEUiwgMHgwMDA3MDAwMikNCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKENGRzIs IFBDSV9Db25maWcsIDB4MDAsIDB4MDEwMCkNCiAgICAgICAgICAgICAgICBGaWVsZCAoQ0ZHMiwg RFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4MjApLCANCiAgICAgICAgICAgICAgICAgICAgVVNCQiwgICAx Ng0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwg Tm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEFu ZCAoVVNCQiwgMHhGRkUwLCBMb2NhbDApDQogICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwg KExvY2FsMCwgMHgwMCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwMCkNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwRikNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgIE5hbWUgKF9QU0MsIDB4MDApDQogICAgICAgICAgICAgICAg TWV0aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoU0NNUCAoXF9PUywgIk1pY3Jvc29mdCBXaW5kb3dz IE5UIiksIFplcm8pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICBOb29wDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgRWxz ZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChfUFNDLCAweDAzKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQSFMgKDB4RjIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDAsIF9QU0MpDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICBJZiAoTEVxdWFsIChTQ01QIChcX09TLCAiTWljcm9zb2Z0IFdpbmRvd3MgTlQiKSwg WmVybykpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIE5v b3ANCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBFbHNlDQogICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKF9Q U0MsIDB4MDApKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBIUyAoMHhGMSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo MHgwMywgX1BTQykNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE5hbWUgKF9QUlcsIFBh Y2thZ2UgKDB4MDIpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAweDA4 LCANCiAgICAgICAgICAgICAgICAgICAgMHgwMQ0KICAgICAgICAgICAgICAgIH0pDQogICAgICAg ICAgICB9DQoNCiAgICAgICAgICAgIERldmljZSAoUFdSKQ0KICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwNzAwMDMpDQogICAgICAgICAgICAgICAgT3BlcmF0 aW9uUmVnaW9uIChQQ0ksIFBDSV9Db25maWcsIDB4NTAsIDB4MjgpDQogICAgICAgICAgICAgICAg RmllbGQgKFBDSSwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpDQogICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDEpLCANCiAgICAgICAgICAgICAgICAg ICAgICAgICwgICA0LCANCiAgICAgICAgICAgICAgICAgICAgRkRDTSwgICAxLCANCiAgICAgICAg ICAgICAgICAgICAgICAgICwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgVTFNLCAgICAxLCAN CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDAyKSwgDQogICAgICAgICAgICAgICAgICAg IFUyTSwgICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICAsICAgMSwgDQogICAgICAgICAg ICAgICAgICAgIExQVE0sICAgMSwgDQogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwQyks IA0KICAgICAgICAgICAgICAgICAgICBNRElFLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICBN RElBLCAgIDIsIA0KICAgICAgICAgICAgICAgICAgICBTQkUsICAgIDEsIA0KICAgICAgICAgICAg ICAgICAgICBHTUUsICAgIDEsIA0KICAgICAgICAgICAgICAgICAgICBTQkEsICAgIDIsIA0KICAg ICAgICAgICAgICAgICAgICBNU1NFLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICBNU1NBLCAg IDIsIA0KICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MEYpLCANCiAgICAgICAgICAgICAg ICAgICAgICAgICwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgQVVETSwgICAxLCANCiAgICAg ICAgICAgICAgICAgICAgICAgICwgICAyLCANCiAgICAgICAgICAgICAgICAgICAgS0JDTSwgICAx LCANCiAgICAgICAgICAgICAgICAgICAgRzEyTSwgICAxLCANCiAgICAgICAgICAgICAgICAgICAg RzEzTSwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgTFBURSwgICAxLCANCiAgICAgICAgICAg ICAgICAgICAgRzA5QSwgICAxNiwgDQogICAgICAgICAgICAgICAgICAgIEcwOUwsICAgNCwgDQog ICAgICAgICAgICAgICAgICAgICAgICAsICAgMSwgDQogICAgICAgICAgICAgICAgICAgIEcwOU0s ICAgMSwgDQogICAgICAgICAgICAgICAgICAgIEcwOUUsICAgMSwgDQogICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHgxMyksIA0KICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDEsIA0KICAg ICAgICAgICAgICAgICAgICBMUFRBLCAgIDIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgLCAg IDEsIA0KICAgICAgICAgICAgICAgICAgICBGRENBLCAgIDEsIA0KICAgICAgICAgICAgICAgICAg ICBGRENFLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICBLQkNFLCAgIDEsIA0KICAgICAgICAg ICAgICAgICAgICBHTU0sICAgIDEsIA0KICAgICAgICAgICAgICAgICAgICBHMTBBLCAgIDE2LCAN CiAgICAgICAgICAgICAgICAgICAgRzEwTCwgICA0LCANCiAgICAgICAgICAgICAgICAgICAgICAg ICwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgRzEwTSwgICAxLCANCiAgICAgICAgICAgICAg ICAgICAgRzEwRSwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgRzEwQywgICAxLCANCiAgICAg ICAgICAgICAgICAgICAgVTFBLCAgICAzLCANCiAgICAgICAgICAgICAgICAgICAgVTFFLCAgICAx LCANCiAgICAgICAgICAgICAgICAgICAgVTJBLCAgICAzLCANCiAgICAgICAgICAgICAgICAgICAg VTJFLCAgICAxLCANCiAgICAgICAgICAgICAgICAgICAgRzEyQSwgICAxNiwgDQogICAgICAgICAg ICAgICAgICAgIEcxMkwsICAgNCwgDQogICAgICAgICAgICAgICAgICAgIEcxMkUsICAgMSwgDQog ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyMCksIA0KICAgICAgICAgICAgICAgICAgICBH MTNBLCAgIDE2LCANCiAgICAgICAgICAgICAgICAgICAgRzEzTCwgICA0LCANCiAgICAgICAgICAg ICAgICAgICAgRzEzRSwgICAxDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICBEZXZpY2UgKElERSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBO YW1lIChfQURSLCAweDAwMDcwMDAxKQ0KICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo UENJLCBQQ0lfQ29uZmlnLCAweDQwLCAweDEwKQ0KICAgICAgICAgICAgICAgIEZpZWxkIChQQ0ks IERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDAzKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAsICAg NywgDQogICAgICAgICAgICAgICAgICAgIFNJREUsICAgMQ0KICAgICAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgICAgIEZpZWxkIChQQ0ksIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0K ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUjQwLCAgICAzMiwgDQogICAg ICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwOCksIA0KICAgICAgICAgICAgICAgICAgICBSNDgs ICAgIDMyDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgRGV2aWNlIChQUklN KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgw MCkNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQ0K ICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MEYpDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9TVE0sIDIsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIERldmljZSAoTUFTVCkNCiAgICAg ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgw MCkNCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXpl ZCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFBIU0IgKDB4RTMsIDB4MDApKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0K DQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfUFNDLCAweDAwKQ0KICAgICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgRGV2aWNlIChT RUNOKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwg MHgwMSkNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVk KQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChTQ01QIChcX09TLCAiTWljcm9zb2Z0IFdpbmRvd3MgTlQiKSwgWmVybykpDQogICAgICAg ICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDAwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwRikNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUTSwgMiwgTm90U2Vy aWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICB9DQoN CiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChNQVNUKQ0KICAgICAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFND TVAgKFxfT1MsICJNaWNyb3NvZnQgV2luZG93cyBOVCIpLCBaZXJvKSkNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQSFNCICgweEUzLCAweDAxKSkNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QU0MsIDB4MDApDQogICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBOYW1lIChfUFNDLCAweDAw KQ0KICAgICAgICAgICAgICAgIE5hbWUgKElERVQsIDB4MDApDQogICAgICAgICAgICAgICAgTmFt ZSAoVURNQSwgMHgwMCkNCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlh bGl6ZWQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFs IChfUFNDLCAweDAzKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKElERVQsIFI0MCkNCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChV RE1BLCBSNDgpDQogICAgICAgICAgICAgICAgICAgICAgICBQSFMgKDB4RjApDQogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoTEVxdWFsIChTQ01QIChcX09TLCAiTWljcm9zb2Z0IFdpbmRvd3Mg TlQiKSwgWmVybykpIHt9DQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhTICgweEY5KQ0K ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoU0NNUCAoXF9PUywgIk1pY3Jvc29mdCBXaW5kb3dz IE5UIiksIFplcm8pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoXF9TQi5QQ0kwLklTQS5TSURFLCBMb2NhbDApDQogICAgICAgICAgICAgICAg ICAgICAgICBPciAoTG9jYWwwLCAweDEwMDAsIFxfU0IuUENJMC5JU0EuU0lERSkNCiAgICAgICAg ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBfUFNDKQ0K ICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90 U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFN0b3Jl IChSNDAsIElERVQpDQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChSNDgsIFVETUEpDQogICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDAzLCBfUFNDKQ0KICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgRGV2aWNlIChWSUQwKQ0KICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwODAwMDApDQogICAgICAgICAgICAgICAg TWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgRGV2aWNlIChBVUQwKQ0KICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwODAwMDEpDQogICAgICAgICAgICAgICAgTmFtZSAo X1NUQSwgMHgwRikNCiAgICAgICAgICAgICAgICBOYW1lIChfUFNDLCAweDAwKQ0KICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBHTzExKQ0KICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgwMCwgX1BTQykNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBHTzExKQ0KICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHgwMywgX1BTQykNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoN CiAgICAgICAgICAgIERldmljZSAoU0Q5NCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICBOYW1lIChfQURSLCAweDAwMDkwMDAwKQ0KICAgICAgICAgICAgICAgIE5hbWUgKF9TVEEsIDB4 MEYpDQogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChTUENJLCBQQ0lfQ29uZmlnLCAw eDAwLCAweDAxMDApDQogICAgICAgICAgICAgICAgRmllbGQgKFNQQ0ksIERXb3JkQWNjLCBOb0xv Y2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDA0KSwgDQogICAgICAgICAgICAgICAgICAgIENPTUQsICAgOCwgDQogICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHgwQyksIA0KICAgICAgICAgICAgICAgICAgICBDQUxTLCAgIDgs IA0KICAgICAgICAgICAgICAgICAgICBMQVRJLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4MTApLCANCiAgICAgICAgICAgICAgICAgICAgTUFEUiwgICAzMiwgDQogICAgICAg ICAgICAgICAgICAgIE9mZnNldCAoMHgyQyksIA0KICAgICAgICAgICAgICAgICAgICBTU0lELCAg IDMyLCANCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDNDKSwgDQogICAgICAgICAgICAg ICAgICAgIElSUU4sICAgOCwgDQogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg0QyksIA0K ICAgICAgICAgICAgICAgICAgICBFU0lELCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4RTApLCANCiAgICAgICAgICAgICAgICAgICAgUFdTVCwgICA4DQogICAgICAgICAgICAg ICAgfQ0KDQogICAgICAgICAgICAgICAgTmFtZSAoU1NBViwgUGFja2FnZSAoMHgwMykge30pDQog ICAgICAgICAgICAgICAgTmFtZSAoX1BTQywgMHgwMCkNCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHgwMSwgRVNJRCkNCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 ODA1NDEwNEQsIFNTSUQpDQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBFU0lEKQ0K ICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChTQ01QIChcX09TLCAiTWljcm9zb2Z0IFdp bmRvd3MgTlQiKSwgWmVybykpIHt9DQogICAgICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIFBXU1Qp DQogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwMSkNCiAgICAgICAgICAgICAgICAg ICAgICAgIFN0b3JlICgweDA4LCBDQUxTKQ0KICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4NDAsIExBVEkpDQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChfUFNDLCAw eDAzKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKFNTQVYsIDB4MDApKSwgQ09NRCkNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKFNTQVYsIDB4MDEpKSwg TUFEUikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXgg KFNTQVYsIDB4MDIpKSwgSVJRTikNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBfUFNDKQ0K ICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90 U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKFNDTVAgKFxfT1MsICJNaWNyb3NvZnQgV2luZG93cyBOVCIpLCBaZXJvKSkge30NCiAg ICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoTEVxdWFsIChfUFNDLCAweDAwKSkNCiAgICAgICAgICAgICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQ09NRCwgSW5kZXgg KFNTQVYsIDB4MDApKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNQURSLCBJ bmRleCAoU1NBViwgMHgwMSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKElS UU4sIEluZGV4IChTU0FWLCAweDAyKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAzLCBfUFND KQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgRGV2aWNl IChDUkQwKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAw QTAwMDApDQogICAgICAgICAgICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikNCiAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIDB4MEEsIA0KICAgICAgICAgICAgICAg ICAgICAweDAzDQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICBPcGVyYXRpb25S ZWdpb24gKENDUkQsIFBDSV9Db25maWcsIDB4MDAsIDB4RTQpDQogICAgICAgICAgICAgICAgRmll bGQgKENDUkQsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA0KSwgDQogICAgICAgICAgICAgICAgICAg IENEMDQsICAgMzIsIA0KICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4M0UpLCANCiAgICAg ICAgICAgICAgICAgICAgQ0QzRSwgICAzMiwgDQogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHg0NCksIA0KICAgICAgICAgICAgICAgICAgICBDRDQ0LCAgIDMyLCANCiAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDgyKSwgDQogICAgICAgICAgICAgICAgICAgIENEODIsICAgOCwgDQog ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhFMCksIA0KICAgICAgICAgICAgICAgICAgICBD REUwLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICBDREUxLCAgIDgNCiAgICAgICAgICAgICAg ICB9DQoNCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEVYQ0EsIFN5c3RlbUlPLCAw eDAzRTAsIDB4MDIpDQogICAgICAgICAgICAgICAgRmllbGQgKEVYQ0EsIEJ5dGVBY2MsIE5vTG9j aywgUHJlc2VydmUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBJTkRY LCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICBEQVRBLCAgIDgNCiAgICAgICAgICAgICAgICB9 DQoNCiAgICAgICAgICAgICAgICBJbmRleEZpZWxkIChJTkRYLCBEQVRBLCBCeXRlQWNjLCBOb0xv Y2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDAzKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAsICAgNywgDQogICAgICAgICAg ICAgICAgICAgIEVSSUIsICAgMQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAg IE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFNDTVAgKFxfT1MsICJNaWNyb3NvZnQgV2luZG93 cyBOVCIpLCBaZXJvKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICAgICAgTm9vcA0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIEVs c2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KFplcm8sIENERTApDQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgQ0QwNCkN CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBDRDNFKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKE9uZSwgQ0Q0NCkNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2Vy aWFsaXplZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwRikNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBOYW1lIChfUFNDLCAw eDAwKQ0KICAgICAgICAgICAgICAgIE1ldGhvZCAoUFNYLCAxLCBOb3RTZXJpYWxpemVkKQ0KICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIENERTApDQog ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAzRTAsIENENDQpDQogICAgICAgICAgICAgICAg ICAgIFN0b3JlIChPbmUsIEVSSUIpDQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBD RDQ0KQ0KICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQXJnMCwgQ0RFMCkNCiAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKEFyZzAsIF9QU0MpDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIF9QU0MpDQogICAgICAgICAgICAg ICAgfQ0KDQogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMxLCAwLCBOb3RTZXJpYWxpemVkKQ0K ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUFNYICgweDAxKQ0KICAgICAg ICAgICAgICAgICAgICBPciAoQ0RFMSwgMHgwMSwgQ0RFMSkNCiAgICAgICAgICAgICAgICB9DQoN CiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzIsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBQU1ggKDB4MDIpDQogICAgICAgICAgICAg ICAgICAgIE9yIChDREUxLCAweDAxLCBDREUxKQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgICAgIFBTWCAoMHgwMykNCiAgICAgICAgICAgICAgICAgICAg T3IgKENERTEsIDB4MDEsIENERTEpDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAg ICAgTWV0aG9kIChfUFNXLCAxLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgSWYgKEFyZzApDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBHTzAzKQ0KICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIEdPMDMpDQogICAgICAgICAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBHTEFUICgpDQogICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBEZXZpY2UgKE1PREUpDQogICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDBCMDAwMCkNCiAgICAgICAgICAgICAg ICBOYW1lIChfU1RBLCAweDBGKQ0KICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90 U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKFNDTVAgKFxfT1MsICJNaWNyb3NvZnQgV2luZG93cyBOVCIpLCBaZXJvKSkNCiAgICAg ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdl ICgweDAyKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MEEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMNCiAgICAgICAg ICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwQSwgDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwNA0KICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgTmFtZSAo X1BSVywgUGFja2FnZSAoMHgwMikNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDBB LCANCiAgICAgICAgICAgICAgICAweDA0DQogICAgICAgICAgICB9KQ0KICAgICAgICAgICAgRGV2 aWNlIChJU0EpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgw MDA3MDAwMCkNCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBJUlgsIFBDSV9Db25m aWcsIDB4NjAsIDB4MDQpDQogICAgICAgICAgICAgICAgRmllbGQgKFBJUlgsIEJ5dGVBY2MsIE5v TG9jaywgUHJlc2VydmUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBQ SVJBLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICBQSVJCLCAgIDgsIA0KICAgICAgICAgICAg ICAgICAgICBQSVJDLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICBQSVJELCAgIDgNCiAgICAg ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEdDRkcsIFBD SV9Db25maWcsIDB4QjAsIDB4MDQpDQogICAgICAgICAgICAgICAgRmllbGQgKEdDRkcsIERXb3Jk QWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICAgICAgU0lERSwgICAzMg0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIERl dmljZSAoTU9USCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9ISUQsIEVpc2FJZCAoIlBOUDBDMDIiKSkNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NS UywgQnVmZmVyICgweDMyKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICAweDQ3LCAweDAxLCAweDgwLCAweDAwLCAweDgwLCAweDAwLCAweDAxLCAweDAxLCAN CiAgICAgICAgICAgICAgICAgICAgICAgIDB4NDcsIDB4MDEsIDB4QjIsIDB4MDAsIDB4QjIsIDB4 MDAsIDB4MDEsIDB4MDIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgMHg0NywgMHgwMSwgMHhE MCwgMHgwNCwgMHhEMCwgMHgwNCwgMHgwMSwgMHgwMiwgDQogICAgICAgICAgICAgICAgICAgICAg ICAweDQ3LCAweDAxLCAweDgwLCAweDIxLCAweDgwLCAweDIxLCAweDAxLCAweDEwLCANCiAgICAg ICAgICAgICAgICAgICAgICAgIDB4NDcsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MDAsIDB4ODAsIDB4 MDEsIDB4NTAsIA0KICAgICAgICAgICAgICAgICAgICAgICAgMHg0NywgMHgwMSwgMHg3MiwgMHgw MCwgMHg3MiwgMHgwMCwgMHgwMSwgMHgwMiwgDQogICAgICAgICAgICAgICAgICAgICAgICAweDc5 LCAweDAwDQogICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgRGV2aWNlIChNRU0pDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzAxIikpDQogICAgICAgICAgICAgICAg ICAgIE5hbWUgKE1TUkMsIEJ1ZmZlciAoMHgzRSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgMHg4NiwgMHgwOSwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMCwg MHgxMCwgMHgwMCwgDQogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDg2LCAweDA5LCAweDAwLCAweDAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MEEsIDB4MDAsIA0KICAgICAgICAg ICAgICAgICAgICAgICAgMHg4NiwgMHgwOSwgMHgwMCwgMHgwMCwgMHgwMCwgMHhDMCwgMHgwRCwg MHgwMCwgDQogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAweDQwLCAweDAwLCAweDAwLCAw eDg2LCAweDA5LCAweDAwLCAweDAwLCANCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4 MDAsIDB4MEUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIA0KICAgICAgICAgICAgICAg ICAgICAgICAgMHg4NiwgMHgwOSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhGOCwgMHhGRiwg DQogICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDA4LCAweDAwLCAweDc5LCAw eDAwDQogICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X0NSUywgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoTVNSQywgMHgwOCwgTUVNUykNCiAgICAg ICAgICAgICAgICAgICAgICAgIElmIChMTm90IChNRU1TKSkNCiAgICAgICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUEhTICgweEVGKSwgTUVN UykNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChNU1JDKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpDQogICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBEZXZpY2UgKERNQUMp DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNh SWQgKCJQTlAwMjAwIikpDQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIEJ1ZmZlciAo MHgxRCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgMHg0 NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgxMCwgDQogICAgICAgICAg ICAgICAgICAgICAgICAweDQ3LCAweDAxLCAweDgxLCAweDAwLCAweDgxLCAweDAwLCAweDAxLCAw eDBGLCANCiAgICAgICAgICAgICAgICAgICAgICAgIDB4NDcsIDB4MDEsIDB4QzAsIDB4MDAsIDB4 QzAsIDB4MDAsIDB4MDEsIDB4MjAsIA0KICAgICAgICAgICAgICAgICAgICAgICAgMHgyQSwgMHgx MCwgMHgwMCwgMHg3OSwgMHgwMA0KICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikNCiAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIERldmljZSAo UlRDKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwg RWlzYUlkICgiUE5QMEIwMCIpKQ0KICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBCdWZm ZXIgKDB4MEQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg IDB4NDcsIDB4MDEsIDB4NzAsIDB4MDAsIDB4NzAsIDB4MDAsIDB4MDEsIDB4MDIsIA0KICAgICAg ICAgICAgICAgICAgICAgICAgMHgyMiwgMHgwMCwgMHgwMSwgMHg3OSwgMHgwMA0KICAgICAgICAg ICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNl cmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwRikNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0N Cg0KICAgICAgICAgICAgICAgIERldmljZSAoUElDKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDAwMCIpKQ0KICAgICAgICAg ICAgICAgICAgICBOYW1lIChfQ1JTLCBCdWZmZXIgKDB4MTUpDQogICAgICAgICAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIDB4NDcsIDB4MDEsIDB4MjAsIDB4MDAsIDB4MjAs IDB4MDAsIDB4MDEsIDB4MDIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgMHg0NywgMHgwMSwg MHhBMCwgMHgwMCwgMHhBMCwgMHgwMCwgMHgwMSwgMHgwMiwgDQogICAgICAgICAgICAgICAgICAg ICAgICAweDIyLCAweDA0LCAweDAwLCAweDc5LCAweDAwDQogICAgICAgICAgICAgICAgICAgIH0p DQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkNCiAg ICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBG KQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAg ICAgICAgRGV2aWNlIChGUFUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzA0IikpDQogICAgICAgICAgICAgICAgICAgIE5h bWUgKF9DUlMsIEJ1ZmZlciAoMHgwRCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgMHg0NywgMHgwMSwgMHhGMCwgMHgwMCwgMHhGMCwgMHgwMCwgMHgwMSwg MHgxMCwgDQogICAgICAgICAgICAgICAgICAgICAgICAweDIyLCAweDAwLCAweDIwLCAweDc5LCAw eDAwDQogICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X1NUQSwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgRGV2aWNlIChUTVIpDQogICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwMTAw IikpDQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIEJ1ZmZlciAoMHgwRCkNCiAgICAg ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgMHg0NywgMHgwMSwgMHg0 MCwgMHgwMCwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNCwgDQogICAgICAgICAgICAgICAgICAgICAg ICAweDIyLCAweDAxLCAweDAwLCAweDc5LCAweDAwDQogICAgICAgICAgICAgICAgICAgIH0pDQog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAg ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQ0K ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAg ICAgRGV2aWNlIChTUEtSKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg TmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDgwMCIpKQ0KICAgICAgICAgICAgICAgICAgICBOYW1l IChfQ1JTLCBCdWZmZXIgKDB4MEEpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4NDcsIDB4MDEsIDB4NjEsIDB4MDAsIDB4NjEsIDB4MDAsIDB4MDEsIDB4 MDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgMHg3OSwgMHgwMA0KICAgICAgICAgICAgICAg ICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6 ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoMHgwRikNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgICAgIERldmljZSAoS0JDKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDMwMyIpKQ0KICAgICAgICAgICAgICAg ICAgICBOYW1lIChfQ1JTLCBCdWZmZXIgKDB4MTUpDQogICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4NDcsIDB4MDEsIDB4NjAsIDB4MDAsIDB4NjAsIDB4MDAs IDB4MDEsIDB4MDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgMHg0NywgMHgwMSwgMHg2NCwg MHgwMCwgMHg2NCwgMHgwMCwgMHgwMSwgMHgwMSwgDQogICAgICAgICAgICAgICAgICAgICAgICAw eDIyLCAweDAyLCAweDAwLCAweDc5LCAweDAwDQogICAgICAgICAgICAgICAgICAgIH0pDQogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQ0KICAg ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg RGV2aWNlIChNT1VFKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX0hJRCwgRWlzYUlkICgiUE5QMEYxMyIpKQ0KICAgICAgICAgICAgICAgICAgICBOYW1lIChf Q1JTLCBCdWZmZXIgKDB4MDUpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4MjIsIDB4MDAsIDB4MTAsIDB4NzksIDB4MDANCiAgICAgICAgICAgICAgICAg ICAgfSkNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBEZXZpY2UgKEVDKQ0K ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlk ICgiUE5QMEEwNSIpKQ0KICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFNNQzEs IFN5c3RlbUlPLCAweDAzNzAsIDB4MDIpDQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChTTUMx LCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgICAgICBJTkRYLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICAgICAg REFUQSwgICA4DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBJ bmRleEZpZWxkIChJTkRYLCBEQVRBLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDIpLCAN CiAgICAgICAgICAgICAgICAgICAgICAgIENGRywgICAgOCwgDQogICAgICAgICAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4MDcpLCANCiAgICAgICAgICAgICAgICAgICAgICAgIExETiwgICAgOCwg DQogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjIpLCANCiAgICAgICAgICAgICAg ICAgICAgICAgIFBDRkQsICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDIs IA0KICAgICAgICAgICAgICAgICAgICAgICAgUENQUCwgICAxLCANCiAgICAgICAgICAgICAgICAg ICAgICAgIFBDVTEsICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICBQQ1UyLCAgIDEsIA0K ICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDIzKSwgDQogICAgICAgICAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4MzApLCANCiAgICAgICAgICAgICAgICAgICAgICAgIEFDVFIsICAg OCwgDQogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjApLCANCiAgICAgICAgICAg ICAgICAgICAgICAgIElPQUgsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAgICBJT0FMLCAg IDgsIA0KICAgICAgICAgICAgICAgICAgICAgICAgRklSSCwgICA4LCANCiAgICAgICAgICAgICAg ICAgICAgICAgIEZJUkwsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NzApLCANCiAgICAgICAgICAgICAgICAgICAgICAgIElOVFIsICAgOCwgDQogICAgICAgICAgICAg ICAgICAgICAgICBJTlQxLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgw eDc0KSwgDQogICAgICAgICAgICAgICAgICAgICAgICBETUNILCAgIDgsIA0KICAgICAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweEMwKSwgDQogICAgICAgICAgICAgICAgICAgICAgICBHUDQw LCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEYwKSwgDQogICAgICAg ICAgICAgICAgICAgICAgICBPUFQxLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICAgICAgT1BU MiwgICA4LCANCiAgICAgICAgICAgICAgICAgICAgICAgIE9QVDMsICAgOA0KICAgICAgICAgICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTXV0ZXggKE1VSU8sIDB4MDApDQogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoRU5GRywgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoTVVJTywgMHhG RkZGKQ0KICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4NTUsIElORFgpDQogICAgICAg ICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEVYRkcsIDAsIE5v dFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweEFBLCBJTkRYKQ0KICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAo TVVJTykNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9QUlcsIFBhY2thZ2UgKDB4MDIpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MEIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgMHgwNA0KICAgICAg ICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QU1csIDEsIE5v dFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgIE9wZXJhdGlvblJlZ2lvbiAoR1BPLCBTeXN0ZW1JTywgMHg4MDBFLCAweDAyKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgRmllbGQgKEdQTywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkN CiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLCAgIDEwLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSSUVOLCAgIDENCiAgICAg ICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEFy ZzAsIFJJRU4pDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKFJETUIsIDEsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgIEVORkcgKCkNCiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweDA3LCBMRE4pDQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQXJnMCwgSU5E WCkNCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEQVRBLCBMb2NhbDApDQogICAgICAg ICAgICAgICAgICAgICAgICBFWEZHICgpDQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KExvY2FsMCkNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoV1JNQiwgMiwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgRU5GRyAoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4MDcsIExETikNCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChBcmcwLCBJTkRY KQ0KICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEFyZzEsIERBVEEpDQogICAgICAgICAg ICAgICAgICAgICAgICBFWEZHICgpDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKFdJQkUsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlIChSRE1CICgweDgyKSkge30N CiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoV09C RiwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsMCkNCiAgICAgICAgICAgICAgICAgICAgICAg IFdoaWxlIChMTm90IChMb2NhbDApKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFuZCAoUkRNQiAoMHg4NiksIDB4MDIsIExvY2FsMCkNCiAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAgICAgICAgIE11dGV4IChNU0NJLCAweDAwKQ0KICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKFNDSUQsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlICgiU0NJIGdlbmVyYXRlZCIsIERlYnVnKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZXMsIExvY2FsNykNCiAgICAgICAgICAgICAgICAg ICAgICAgIFdoaWxlIChMb2NhbDcpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQW5kIChSRE1CICgweDg2KSwgMHgwMSwgTG9jYWwwKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMb2NhbDApDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChNU0NJ LCAweEZGRkYpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdJQkUgKCkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgV1JNQiAoMHg4MiwgMHg4NCkNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgV09CRiAoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoUkRNQiAoMHg4MyksIExvY2FsMCkNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKFJETUIgKDB4ODYpLCBMb2NhbDEpDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFuZCAoTG9jYWwxLCAweEZELCBMb2NhbDEpDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFdSTUIgKDB4ODYsIExvY2FsMSkNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVsZWFzZSAoTVNDSSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKExvY2FsMCwgRGVidWcpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFSRUMgKExvY2FsMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsNykNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBOYW1lIChMQ0RULCBPbmVz KQ0KICAgICAgICAgICAgICAgICAgICBOYW1lIChMSUQsIE9uZSkNCiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChRUkVDLCAxLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAweDUxKSkNCiAgICAg ICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkg KFxfU0IuUENJMC5JU0EuU05DLCAweEEwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4NTMpKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Tm90aWZ5IChcX1NCLlBDSTAuSVNBLlNOQywgMHhBQykNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVh bCAoQXJnMCwgMHg1NCkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYQ0QgKDB4MjApDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5JU0EuU05DLCAweEEyKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHg1NSkpDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRVhDRCAoMHgxRikNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5JU0EuU05DLCAweEEzKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAs IDB4NTYpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAu SVNBLlNOQywgMHhCMykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHg1NykpDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChSRE1CICgweDhFKSwgTG9jYWwwKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFJE TUIgKDB4OEYpLCBMb2NhbDEpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBXUk1CICgweDhGLCBMb2NhbDApDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBYT3IgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIpDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChMb2Nh bDIsIDB4MDEpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5vdGlmeSAoQkFUMSwgMHg4MSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKEFuZCAoTG9jYWwyLCAweDIwKSkNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKEFDQUQsIDB4ODApDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAu SVNBLlNOQywgMHhCQSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKEFuZCAoTG9jYWwyLCAweDgwKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoQW5kIChMb2NhbDAsIDB4ODApKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAu SVNBLlNOQywgMHhCNykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExJRCkNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuSVNBLlNOQywg MHhCOSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKE9uZSwgTElEKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4 NTgpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYQ0Qg KDB4MUYpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTm90aWZ5IChcX1NCLlBDSTAuSVNBLlNOQywgMHhBNCkNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAweDU5KSkNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYQ0QgKDB4MUYpDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlm eSAoXF9TQi5QQ0kwLklTQS5TTkMsIDB4QTUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4NUEpKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoTEVxdWFsIChMQ0RULCBPbmVzKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUEhTQiAoMHhFRSwg MHgwMCksIExDRFQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKExDRFQsIDB4MDApKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVYQ0QgKDB4MUYpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuSVNBLlNOQywgMHhB NikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4NUIpKQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5vdGlmeSAoXF9TQi5QQ0kwLklTQS5TTkMsIDB4QjYpDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHg1RikpDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO b3RpZnkgKFxfU0IuUENJMC5JU0EuU05DLCAweEFEKQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAweDYxKSkNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuSVNBLlNOQywgMHhCMSkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChMRXF1YWwgKEFyZzAsIDB4NjQpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5vdGlmeSAoXF9TQi5QQ0kwLklTQS5TTkMsIDB4QjApDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKExFcXVhbCAoQXJnMCwgMHg2NSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFWENEICgweDIxKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkg KFxfU0IuUENJMC5JU0EuU05DLCAweEI0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoTEVxdWFsIChBcmcwLCAweDY2KSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhDRCAoMHgyMSkNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLklTQS5TTkMsIDB4QjUpDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAw eDY3KSkge30NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFs IChBcmcwLCAweDY4KSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLklTQS5TTkMsIDB4 QjgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4NzYpKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgXF9TQi5QQ0kwLklTQS5TTkMuUFBTVCkN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QV1JC LCAweDgwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExF cXVhbCAoQXJnMCwgMHg3OCkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChc X1NCLlBDSTAuSVNBLlNOQywgMHg5MCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAweDc5KSkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYQ0QgKDB4MjApDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLklTQS5T TkMsIDB4QkIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4ODApKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfVFouQVRG MCwgMHg4MCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFy ZzAsIDB4ODEpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE5vdGlmeSAoXF9UWi5BVEYwLCAweDgxKQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFkZCAoQXJnMCwgMHgzMCwgTG9jYWwwKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBIUyAoTG9j YWwwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTXV0ZXggKE1FRUMsIDB4MDApDQogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoRVhDRCwgMSwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCJOb3RpZnkgU3RhdGUg dG8gRUMiLCBEZWJ1ZykNCiAgICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKE1FRUMsIDB4 RkZGRikNCiAgICAgICAgICAgICAgICAgICAgICAgIFdJQkUgKCkNCiAgICAgICAgICAgICAgICAg ICAgICAgIFdSTUIgKDB4ODQsIEFyZzApDQogICAgICAgICAgICAgICAgICAgICAgICBXUk1CICgw eDgyLCAweDg3KQ0KICAgICAgICAgICAgICAgICAgICAgICAgV09CRiAoKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgQW5kIChSRE1CICgweDg2KSwgMHhGRCwgTG9jYWwwKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgV1JNQiAoMHg4NiwgTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICAgICAg UmVsZWFzZSAoTUVFQykNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoRVhSRCwgMSwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCJleHRlbmRlZCBjb21tYW5kIHRvIEVD IiwgRGVidWcpDQogICAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlIChNRUVDLCAweEZGRkYp DQogICAgICAgICAgICAgICAgICAgICAgICBXSUJFICgpDQogICAgICAgICAgICAgICAgICAgICAg ICBXUk1CICgweDg0LCBBcmcwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgV1JNQiAoMHg4Miwg MHg4NykNCiAgICAgICAgICAgICAgICAgICAgICAgIFdPQkYgKCkNCiAgICAgICAgICAgICAgICAg ICAgICAgIEFkZCAoTXVsdGlwbHkgKFJETUIgKDB4ODQpLCAweDAxMDAsIExvY2FsMCksIFN0b3Jl IChSRE1CICgweDgzKSwgTG9jYWwxKSwgTG9jYWwyKQ0KICAgICAgICAgICAgICAgICAgICAgICAg QW5kIChSRE1CICgweDg2KSwgMHhGRCwgTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICAgICAg V1JNQiAoMHg4NiwgTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoTUVF QykNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwyKQ0KICAgICAgICAgICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChFWFdULCAyLCBOb3RTZXJp YWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoImV4dGVuZGVkIHdyaXRlIGNvbW1hbmQgdG8gRUMiLCBEZWJ1ZykNCiAgICAgICAgICAg ICAgICAgICAgICAgIEFjcXVpcmUgKE1FRUMsIDB4RkZGRikNCiAgICAgICAgICAgICAgICAgICAg ICAgIFdJQkUgKCkNCiAgICAgICAgICAgICAgICAgICAgICAgIFdSTUIgKDB4ODQsIEFyZzApDQog ICAgICAgICAgICAgICAgICAgICAgICBXUk1CICgweDg1LCBBcmcxKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgV1JNQiAoMHg4MiwgMHg4NykNCiAgICAgICAgICAgICAgICAgICAgICAgIFdPQkYg KCkNCiAgICAgICAgICAgICAgICAgICAgICAgIEFuZCAoUkRNQiAoMHg4NiksIDB4RkQsIExvY2Fs MCkNCiAgICAgICAgICAgICAgICAgICAgICAgIFdSTUIgKDB4ODYsIExvY2FsMCkNCiAgICAgICAg ICAgICAgICAgICAgICAgIFJlbGVhc2UgKE1FRUMpDQogICAgICAgICAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFBQSywgMCwgTm90U2VyaWFsaXplZCkNCiAgICAg ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCJQUEtfU1RB VFVTIiwgRGVidWcpDQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUkRNQiAoMHg4Qyks IExvY2FsMSkNCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFuZCAoTG9jYWwx LCAweDAyLCBMb2NhbDApLCAweDAyKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBMb2NhbDApDQogICAgICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQW5k IChMb2NhbDEsIDB4MDQsIExvY2FsMCksIDB4MDQpKQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDIsIExvY2Fs MCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQW5kIChMb2NhbDEsIDB4MDgsIExvY2FsMCks IDB4MDgpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgTG9jYWwwKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs c2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQW5kIChMb2NhbDEsIDB4MjAsIExvY2FsMCks IDB4MjApKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDEwLCBMb2NhbDApDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExv Y2FsMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChMb2NhbDApDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBE ZXZpY2UgKEJBVDEpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEEiKSkNCiAgICAgICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9VSUQsIDB4MDEpDQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfUENM LCBQYWNrYWdlICgweDAxKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxfU0INCiAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAg ICAgICAgICAgICAgICAgICBOYW1lIChCQVRJLCBQYWNrYWdlICgweDBEKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4RkZGRkZGRkYsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzlEMCwgDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3OCwgDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwQSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsIA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTElPTiIs IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTb255IENvcnAuIg0KICAgICAgICAgICAg ICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKEJBVFMsIFBhY2th Z2UgKDB4MDQpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwg DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRDdBLCANCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDM4NDANCiAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCJCQVQx IF9TVEEiLCBEZWJ1ZykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChSRE1C ICgweDhGKSwgMHgwMSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwRiwgTG9jYWwwKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHgxRiwgTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIERlYnVnKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9CSUYsIDAsIE5vdFNl cmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKCJCQVQxIF9CSUYiLCBEZWJ1ZykNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoQW5kIChSRE1CICgweDhGKSwgMHgwMSkpIHt9DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTXVsdGlwbHkgKEVYUkQgKDB4MzEpLCAweDBBLCBMb2Nh bDApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIEluZGV4 IChCQVRJLCAweDAxKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExv Y2FsMCwgSW5kZXggKEJBVEksIDB4MDIpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N Cg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQkFUSSkNCiAgICAgICAgICAg ICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQlNULCAw LCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlICgiQkFUMSBfQlNUIiwgRGVidWcpDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKEVYUkQgKDB4MEMpLCBJbmRleCAoQkFUUywgMHgwMCkpDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEVYUkQgKDB4MEQpLCBJbmRleCAoQkFU UywgMHgwMSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVsdGlwbHkgKEVYUkQgKDB4 MEUpLCAweDBBLCBJbmRleCAoQkFUUywgMHgwMikpDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKEVYUkQgKDB4MEYpLCBJbmRleCAoQkFUUywgMHgwMykpDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChCQVRTKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChBQ0FE KQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChf SElELCAiQUNQSTAwMDMiKQ0KICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BDTCwgUGFj a2FnZSAoMHgwMSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcX1NCDQogICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfUFNSLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChSRE1CICgw eDhGKSwgTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKExvY2Fs MCwgMHgyMCkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9T VEEsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQ0KICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAgICAgRGV2aWNlIChDT01BKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDUwMSIpKQ0KICAgICAgICAgICAgICAgICAg ICBOYW1lIChfVUlELCAweDAxKQ0KICAgICAgICAgICAgICAgICAgICBOYW1lIChNQ0QsIDB4MTAp DQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkNCiAg ICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQU0NT ICgweDEwKSkNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NSUywgMSwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgUFNTUyAoMHgxMCwgQXJnMCkNCiAgICAgICAgICAgICAgICAg ICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSUywgMCwgTm90U2VyaWFsaXpl ZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChQU1BTICgweDEwKSkNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICAgICAgUFNESSAoMHgxMCkNCiAgICAgICAgICAgICAgICAg ICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXpl ZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChQU1NUICgweDEwKSkNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgR08zMCkNCiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDAwLCBfUFNDKQ0KICAgICAgICAgICAgICAgICAgICB9DQoN CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAg ICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywg X1BTQykNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9QU0MsIDB4MDApDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgRGV2aWNl IChGSVIpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElE LCBFaXNhSWQgKCJTTUNGMDEwIikpDQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsIDB4 MTAwNUQwNDEpDQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDIpDQogICAgICAg ICAgICAgICAgICAgIE5hbWUgKE1DRCwgMHgxMykNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBTQ1MgKDB4MTMpKQ0KICAgICAgICAgICAgICAgICAg ICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVk KQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBQU1NTICgw eDEzLCBBcmcwKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBTUFMgKDB4MTMpKQ0KICAgICAgICAgICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJp YWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBQ U0RJICgweDEzKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBTU1QgKDB4MTMpKQ0KICAgICAgICAgICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBOb3RTZXJp YWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBc X1NCLlBDSTAuSVNBLkVDLkVYV1QgKDB4MkEsIE9uZSkNCiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgweDAwLCBfUFNDKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuSVNBLkVDLkVYV1QgKDB4 MkEsIFplcm8pDQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgX1BTQykNCiAg ICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QU0MsIDB4 MDApDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgRGV2aWNlIChMUFRBKQ0K ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlk ICgiUE5QMDQwMCIpKQ0KICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDAxKQ0KICAg ICAgICAgICAgICAgICAgICBOYW1lIChNQ0QsIDB4MEQpDQogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoQl9DUiwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQU0NTICgweDBEKSkNCiAgICAgICAgICAgICAg ICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoQl9TUiwgMSwgTm90U2VyaWFs aXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUFNT UyAoMHgwRCwgQXJnMCkNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoQl9QUiwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQU1BTICgweDBEKSkNCiAgICAgICAg ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoQl9ESSwgMCwgTm90 U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAg ICAgUFNESSAoMHgwRCkNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQU1NUICgweDBEKSkNCiAgICAgICAg ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QU0MsIDB4MDApDQog ICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgRGV2aWNlIChMUFRCKQ0KICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5Q MDQwMCIpKQ0KICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDAyKQ0KICAgICAgICAg ICAgICAgICAgICBOYW1lIChNQ0QsIDB4MEUpDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo Ql9DUiwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQU0NTICgweDBFKSkNCiAgICAgICAgICAgICAgICAgICAg fQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoQl9TUiwgMSwgTm90U2VyaWFsaXplZCkN CiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUFNTUyAoMHgw RSwgQXJnMCkNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoQl9QUiwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQU1BTICgweDBFKSkNCiAgICAgICAgICAgICAg ICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoQl9ESSwgMCwgTm90U2VyaWFs aXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUFNE SSAoMHgwRSkNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQU1NUICgweDBFKSkNCiAgICAgICAgICAgICAg ICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QU0MsIDB4MDApDQogICAgICAg ICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgRGV2aWNlIChFQ1ApDQogICAgICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwNDAxIikp DQogICAgICAgICAgICAgICAgICAgIE5hbWUgKE1DRCwgMHgwRikNCiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBTQ1MgKDB4MEYpKQ0KICAgICAgICAg ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RT ZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAg ICBQU1NTICgweDBGLCBBcmcwKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBTUFMgKDB4MEYpKQ0KICAg ICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAw LCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICBQU0RJICgweDBGKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBTU1QgKDB4MEYpKQ0KICAg ICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BTQywgMHgw MCkNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBEZXZpY2UgKEZEQykNCiAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAo IlBOUDA3MDAiKSkNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoTUNELCAweDBDKQ0KICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKEJfQ1IsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUFNDUyAoMHgwQykp DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEJf U1IsIDEsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgIFBTU1MgKDB4MEMsIEFyZzApDQogICAgICAgICAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEJfUFIsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUFNQUyAo MHgwQykpDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKEJfREksIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgIFBTREkgKDB4MEMpDQogICAgICAgICAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUFNTVCAo MHgwQykpDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBOYW1l IChfUFNDLCAweDAwKQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIERldmlj ZSAoU05DKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJ RCwgRWlzYUlkICgiU05ZNTAwMSIpKQ0KICAgICAgICAgICAgICAgICAgICBOYW1lIChQUFNULCAw eDAwKQ0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFBXQUssIDAsIE5vdFNlcmlhbGl6ZWQp DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChc X1NCLlBDSTAuSVNBLkVDLlBQSyAoKSwgTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKExvY2FsMCwgUFBTVCkNCiAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5J U0EuRUMuRVhDRCAoMHgxQykNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUFBTVCkN CiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoU1RD UywgMSwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICAgICAgXF9TQi5QQ0kwLklTQS5FQy5FWFdUICgweDBCLCBBcmcwKQ0KICAgICAgICAg ICAgICAgICAgICAgICAgTm90aWZ5IChcX1RaLkFURjAsIDB4ODEpDQogICAgICAgICAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEdCUlQsIDAsIE5vdFNlcmlhbGl6 ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoUEhTQiAoMHhFNiwgMHgwMCkpDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKFNCUlQsIDEsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQSFNCICgweEU3LCBBcmcw KSwgTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLklTQS5FQy5FWFdU ICgweDI0LCBMb2NhbDApDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKFNQQlIsIDEsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFBIU0IgKDB4RTgsIEFyZzApDQogICAgICAgICAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEdDVFIsIDAsIE5vdFNl cmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoUEhTQiAoMHhFOSwgMHgwMCkpDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKFNDVFIsIDEsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQSFNCICgweEVB LCBBcmcwKSwgTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLklTQS5F Qy5FWFdUICgweDIzLCBMb2NhbDApDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKFNQQ1IsIDEsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFBIU0IgKDB4RUIsIEFyZzApDQogICAg ICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEdNR0IsIDAs IE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgIFBIUyAoMHhGMykNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSU5GQikN CiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoQ01H QiwgMSwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKEFyZzApDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEdPMjMpDQogICAgICAgICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAg ICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgR08yMykN CiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoU01HQiwgMSwgTm90U2VyaWFsaXplZCkNCiAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEFyZzAsIElORkIp DQogICAgICAgICAgICAgICAgICAgICAgICBQSFMgKDB4RjQpDQogICAgICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEdQS0MsIDAsIE5vdFNlcmlhbGl6ZWQp DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFBIUyAoMHhG NSkNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSU5GQikNCiAgICAgICAgICAgICAg ICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoU1BLQywgMSwgTm90U2VyaWFs aXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKEFyZzAsIElORkIpDQogICAgICAgICAgICAgICAgICAgICAgICBQSFMgKDB4RjYpDQogICAg ICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuSVNBLkVDLkVYV1QgKDB4MjUsIEFyZzApDQog ICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuSVNBLkVDLkVYQ0QgKDB4MUMpDQogICAg ICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEdQTFIsIDAs IE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgIFBIUyAoMHhGNykNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoSU5GQikN CiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoU1BM UiwgMSwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKEFyZzAsIElORkIpDQogICAgICAgICAgICAgICAgICAgICAgICBQ SFMgKDB4RjgpDQogICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuSVNBLkVDLkVYV1Qg KDB4MjYsIEFyZzApDQogICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuSVNBLkVDLkVY Q0QgKDB4MUMpDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKEdJTFMsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoXF9TQi5QQ0kwLklTQS5FQy5FWFJEICgweDI4 KSkNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo U0lMUywgMSwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgXF9TQi5QQ0kwLklTQS5FQy5FWFdUICgweDI3LCBBcmcwKQ0KICAgICAg ICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChHTElELCAwLCBO b3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKFxfU0IuUENJMC5JU0EuRUMuTElEKQ0KICAgICAgICAgICAgICAgICAgICB9 DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChTTEJILCAxLCBOb3RTZXJpYWxpemVkKQ0K ICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAu SVNBLkVDLkVYV1QgKDB4MkIsIEFyZzApDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKFBXUk4sIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QV1JCLCAw eDgwKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChDU1hCLCAxLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgICAgICBBY3F1aXJlIChNUEhTLCAweEZGRkYpDQogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoQXJnMCwgU1hCRikNCiAgICAgICAgICAgICAgICAgICAgICAgIFBIUzAg KDB4RkEpDQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoU1hCRiwgTG9jYWwwKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoTVBIUykNCiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgU2NvcGUgKFxfU0kp DQogICAgew0KICAgICAgICBNZXRob2QgKF9TU1QsIDEsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAg IHsNCiAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDApKSB7fQ0KICAgICAgICAgICAg SWYgKExFcXVhbCAoQXJnMCwgMHgwMSkpIHt9DQogICAgICAgICAgICBJZiAoTEVxdWFsIChBcmcw LCAweDAyKSkge30NCiAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDMpKSB7fQ0KICAg ICAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwNCkpIHt9DQogICAgICAgICAgICBJZiAoTEVx dWFsIChBcmcwLCAweDA1KSkge30NCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIE1ldGhvZCAoX1dB SywgMSwgTm90U2VyaWFsaXplZCkNCiAgICB7DQogICAgICAgIElmIChMRXF1YWwgKFNDTVAgKFxf T1MsICJNaWNyb3NvZnQgV2luZG93cyIpLCBaZXJvKSkNCiAgICAgICAgew0KICAgICAgICAgICAg Tm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpDQogICAgICAgIH0NCg0KICAgICAgICBSZXR1cm4gKFpl cm8pDQogICAgfQ0KDQogICAgU2NvcGUgKFxfVFopDQogICAgew0KICAgICAgICBNZXRob2QgKEtF TFYsIDEsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgIHsNCiAgICAgICAgICAgIFN0b3JlICgiQ29u dmVydGVkIEtlbHZpbiIsIERlYnVnKQ0KICAgICAgICAgICAgU3RvcmUgKEFyZzAsIExvY2FsMCkN CiAgICAgICAgICAgIE11bHRpcGx5IChMb2NhbDAsIDB4MEEsIExvY2FsMCkNCiAgICAgICAgICAg IEFkZCAoTG9jYWwwLCAweDBBQUIsIExvY2FsMCkNCiAgICAgICAgICAgIFJldHVybiAoTG9jYWww KQ0KICAgICAgICB9DQoNCiAgICAgICAgVGhlcm1hbFpvbmUgKEFURjApDQogICAgICAgIHsNCiAg ICAgICAgICAgIE1ldGhvZCAoX1RNUCwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICBTdG9yZSAoIkdldCBBVEYwIFRlbXBhcmV0dXJlIiwgRGVidWcpDQog ICAgICAgICAgICAgICAgUmV0dXJuIChLRUxWIChcX1NCLlBDSTAuSVNBLkVDLkVYUkQgKDB4MDIp KSkNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgTWV0aG9kIChfUFNWLCAwLCBOb3RTZXJp YWxpemVkKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFN0b3JlICgiR2V0IEFURjAg UGFzc2l2ZSBUcmlwIHBvaW50IiwgRGVidWcpDQogICAgICAgICAgICAgICAgUmV0dXJuIChLRUxW IChcX1NCLlBDSTAuSVNBLkVDLkVYUkQgKDB4MTgpKSkNCiAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgTmFtZSAoX1BTTCwgUGFja2FnZSAoMHgwMSkNCiAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICBcX1BSLkNQVTANCiAgICAgICAgICAgIH0pDQogICAgICAgICAgICBNZXRob2QgKF9D UlQsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU3Rv cmUgKCJHZXQgQVRGMCBDcml0aWNhbCBUcmlwIHBvaW50IiwgRGVidWcpDQogICAgICAgICAgICAg ICAgUmV0dXJuIChLRUxWIChcX1NCLlBDSTAuSVNBLkVDLkVYUkQgKDB4MTkpKSkNCiAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgTWV0aG9kIChfU0NQLCAxLCBOb3RTZXJpYWxpemVkKQ0KICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgIFxfU0IuUENJMC5JU0EuRUMuRVhXVCAoMHgwQiwg QXJnMCkNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgTmFtZSAoX1RDMSwgMHgwMSkNCiAg ICAgICAgICAgIE5hbWUgKF9UQzIsIDB4MDEpDQogICAgICAgICAgICBOYW1lIChfVFNQLCAweDY0 KQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgU2NvcGUgKF9TQikNCiAgICB7DQogICAgICAgIE5h bWUgKElSUVAsIFBhY2thZ2UgKDB4MTApDQogICAgICAgIHsNCiAgICAgICAgICAgIDB4MDAsIA0K ICAgICAgICAgICAgMHgwMCwgDQogICAgICAgICAgICAweDAwLCANCiAgICAgICAgICAgIDB4MDAs IA0KICAgICAgICAgICAgMHgwMCwgDQogICAgICAgICAgICAweDAwLCANCiAgICAgICAgICAgIDB4 MDAsIA0KICAgICAgICAgICAgMHgwMCwgDQogICAgICAgICAgICAweDAwLCANCiAgICAgICAgICAg IDB4MDIwMCwgDQogICAgICAgICAgICAweDAwLCANCiAgICAgICAgICAgIDB4MDAsIA0KICAgICAg ICAgICAgMHgwMCwgDQogICAgICAgICAgICAweDAwLCANCiAgICAgICAgICAgIDB4MDAsIA0KICAg ICAgICAgICAgMHgwMA0KICAgICAgICB9KQ0KICAgICAgICBEZXZpY2UgKExOS0EpDQogICAgICAg IHsNCiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSkNCiAgICAgICAg ICAgIE5hbWUgKF9VSUQsIDB4MDEpDQogICAgICAgICAgICBOYW1lIChfUFJTLCBCdWZmZXIgKDB4 MDYpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgyMywgMHgwMCwgMHgwMiwgMHgx OCwgMHg3OSwgMHgwMA0KICAgICAgICAgICAgfSkNCiAgICAgICAgICAgIE1ldGhvZCAoX0RJUywg MCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBPciAoXF9T Qi5QQ0kwLklTQS5QSVJBLCAweDgwLCBcX1NCLlBDSTAuSVNBLlBJUkEpDQogICAgICAgICAgICB9 DQoNCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICBOYW1lIChCVUZBLCBCdWZmZXIgKDB4MDYpDQogICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAweDIzLCAweDAwLCAweDAwLCAweDE4LCAw eDc5LCAweDAwDQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEJVRkEsIDB4MDEsIElSQTEpDQogICAgICAgICAgICAgICAgQW5kIChcX1NCLlBDSTAu SVNBLlBJUkEsIDB4OEYsIExvY2FsMCkNCiAgICAgICAgICAgICAgICBJZiAoTExlc3MgKExvY2Fs MCwgMHg4MCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBBbmQgKExv Y2FsMCwgMHgwRiwgTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAo SW5kZXggKElSUVAsIExvY2FsMCkpLCBMb2NhbDQpDQogICAgICAgICAgICAgICAgICAgIFN0b3Jl IChMb2NhbDQsIElSQTEpDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgUmV0 dXJuIChCVUZBKQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEs IE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgQ3JlYXRlV29y ZEZpZWxkIChBcmcwLCAweDAxLCBJUkExKQ0KICAgICAgICAgICAgICAgIFN0b3JlIChJUkExLCBM b2NhbDApDQogICAgICAgICAgICAgICAgU3RvcmUgKE1hdGNoIChJUlFQLCBNRVEsIExvY2FsMCwg TVRSLCAweDAwLCAweDAwKSwgTG9jYWwxKQ0KICAgICAgICAgICAgICAgIEFuZCAoXF9TQi5QQ0kw LklTQS5QSVJBLCAweDcwLCBMb2NhbDApDQogICAgICAgICAgICAgICAgT3IgKExvY2FsMSwgTG9j YWwwLCBcX1NCLlBDSTAuSVNBLlBJUkEpDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICBJZiAoTEVxdWFsIChcX1NCLlBDSTAuSVNBLlBJUkEsIDB4ODApKQ0KICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQ0KICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MEIpDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0K ICAgICAgICB9DQoNCiAgICAgICAgRGV2aWNlIChMTktCKQ0KICAgICAgICB7DQogICAgICAgICAg ICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikpDQogICAgICAgICAgICBOYW1lIChfVUlE LCAweDAyKQ0KICAgICAgICAgICAgTmFtZSAoX1BSUywgQnVmZmVyICgweDA2KQ0KICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgIDB4MjMsIDB4MDAsIDB4MDIsIDB4MTgsIDB4NzksIDB4MDAN CiAgICAgICAgICAgIH0pDQogICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6 ZWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgT3IgKFxfU0IuUENJMC5JU0EuUElS QiwgMHg4MCwgXF9TQi5QQ0kwLklTQS5QSVJCKQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAg ICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgTmFtZSAoQlVGQSwgQnVmZmVyICgweDA2KQ0KICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgMHgyMywgMHgwMCwgMHgwMCwgMHgxOCwgMHg3OSwgMHgwMA0KICAg ICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUZBLCAw eDAxLCBJUkExKQ0KICAgICAgICAgICAgICAgIEFuZCAoXF9TQi5QQ0kwLklTQS5QSVJCLCAweDhG LCBMb2NhbDApDQogICAgICAgICAgICAgICAgSWYgKExMZXNzIChMb2NhbDAsIDB4ODApKQ0KICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgQW5kIChMb2NhbDAsIDB4MEYsIExv Y2FsMCkNCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChJUlFQLCBM b2NhbDApKSwgTG9jYWw0KQ0KICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWw0LCBJUkEx KQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFJldHVybiAoQlVGQSkNCiAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVk KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwg MHgwMSwgSVJBMSkNCiAgICAgICAgICAgICAgICBTdG9yZSAoSVJBMSwgTG9jYWwwKQ0KICAgICAg ICAgICAgICAgIFN0b3JlIChNYXRjaCAoSVJRUCwgTUVRLCBMb2NhbDAsIE1UUiwgMHgwMCwgMHgw MCksIExvY2FsMSkNCiAgICAgICAgICAgICAgICBBbmQgKFxfU0IuUENJMC5JU0EuUElSQiwgMHg3 MCwgTG9jYWwwKQ0KICAgICAgICAgICAgICAgIE9yIChMb2NhbDEsIExvY2FsMCwgXF9TQi5QQ0kw LklTQS5QSVJCKQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAs IE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSWYgKExFcXVh bCAoXF9TQi5QQ0kwLklTQS5QSVJCLCAweDgwKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoMHgwOSkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICgweDBCKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQog ICAgICAgIERldmljZSAoTE5LQykNCiAgICAgICAgew0KICAgICAgICAgICAgTmFtZSAoX0hJRCwg RWlzYUlkICgiUE5QMEMwRiIpKQ0KICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMykNCiAgICAg ICAgICAgIE5hbWUgKF9QUlMsIEJ1ZmZlciAoMHgwNikNCiAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAweDIzLCAweDAwLCAweDAyLCAweDE4LCAweDc5LCAweDAwDQogICAgICAgICAgICB9 KQ0KICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgIE9yIChcX1NCLlBDSTAuSVNBLlBJUkMsIDB4ODAsIFxfU0Iu UENJMC5JU0EuUElSQykNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgTWV0aG9kIChfQ1JT LCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE5hbWUg KEJVRkEsIEJ1ZmZlciAoMHgwNikNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgIDB4MjMsIDB4MDAsIDB4MDAsIDB4MTgsIDB4NzksIDB4MDANCiAgICAgICAgICAgICAgICB9 KQ0KICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGQSwgMHgwMSwgSVJBMSkNCiAg ICAgICAgICAgICAgICBBbmQgKFxfU0IuUENJMC5JU0EuUElSQywgMHg4RiwgTG9jYWwwKQ0KICAg ICAgICAgICAgICAgIElmIChMTGVzcyAoTG9jYWwwLCAweDgwKSkNCiAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgIEFuZCAoTG9jYWwwLCAweDBGLCBMb2NhbDApDQogICAgICAg ICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoSVJRUCwgTG9jYWwwKSksIExvY2Fs NCkNCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsNCwgSVJBMSkNCiAgICAgICAgICAg ICAgICB9DQoNCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRkEpDQogICAgICAgICAgICB9DQoN CiAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIDB4MDEsIElSQTEpDQog ICAgICAgICAgICAgICAgU3RvcmUgKElSQTEsIExvY2FsMCkNCiAgICAgICAgICAgICAgICBTdG9y ZSAoTWF0Y2ggKElSUVAsIE1FUSwgTG9jYWwwLCBNVFIsIDB4MDAsIDB4MDApLCBMb2NhbDEpDQog ICAgICAgICAgICAgICAgQW5kIChcX1NCLlBDSTAuSVNBLlBJUkMsIDB4NzAsIExvY2FsMCkNCiAg ICAgICAgICAgICAgICBPciAoTG9jYWwxLCBMb2NhbDAsIFxfU0IuUENJMC5JU0EuUElSQykNCiAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVk KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFxfU0IuUENJMC5J U0EuUElSQywgMHg4MCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MDkpDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIEVsc2UNCiAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwQikNCiAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBEZXZpY2Ug KExOS0QpDQogICAgICAgIHsNCiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBD MEYiKSkNCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDQpDQogICAgICAgICAgICBOYW1lIChf UFJTLCBCdWZmZXIgKDB4MDYpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgyMywg MHgwMCwgMHgwMiwgMHgxOCwgMHg3OSwgMHgwMA0KICAgICAgICAgICAgfSkNCiAgICAgICAgICAg IE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICBPciAoXF9TQi5QQ0kwLklTQS5QSVJELCAweDgwLCBcX1NCLlBDSTAuSVNBLlBJUkQp DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFs aXplZCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBOYW1lIChCVUZBLCBCdWZmZXIg KDB4MDYpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAweDIzLCAweDAw LCAweDAwLCAweDE4LCAweDc5LCAweDAwDQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAg ICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRkEsIDB4MDEsIElSQTEpDQogICAgICAgICAgICAgICAg QW5kIChcX1NCLlBDSTAuSVNBLlBJUkQsIDB4OEYsIExvY2FsMCkNCiAgICAgICAgICAgICAgICBJ ZiAoTExlc3MgKExvY2FsMCwgMHg4MCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICBBbmQgKExvY2FsMCwgMHgwRiwgTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICBT dG9yZSAoRGVyZWZPZiAoSW5kZXggKElSUVAsIExvY2FsMCkpLCBMb2NhbDQpDQogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChMb2NhbDQsIElSQTEpDQogICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgUmV0dXJuIChCVUZBKQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBN ZXRob2QgKF9TUlMsIDEsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAweDAxLCBJUkExKQ0KICAgICAgICAgICAgICAg IFN0b3JlIChJUkExLCBMb2NhbDApDQogICAgICAgICAgICAgICAgU3RvcmUgKE1hdGNoIChJUlFQ LCBNRVEsIExvY2FsMCwgTVRSLCAweDAwLCAweDAwKSwgTG9jYWwxKQ0KICAgICAgICAgICAgICAg IEFuZCAoXF9TQi5QQ0kwLklTQS5QSVJELCAweDcwLCBMb2NhbDApDQogICAgICAgICAgICAgICAg T3IgKExvY2FsMSwgTG9jYWwwLCBcX1NCLlBDSTAuSVNBLlBJUkQpDQogICAgICAgICAgICB9DQoN CiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChcX1NCLlBDSTAuSVNBLlBJUkQsIDB4ODAp KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQ0K ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpDQogICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfQ0KDQo= --=-3gqOGCIiXrMytabmzKYa--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1070530200.760.14.camel>