Date: Tue, 17 Jun 2008 12:07:42 -0400 From: "Alexander Sack" <pisymbol@gmail.com> To: freebsd-acpi@freebsd.org Cc: FreeBSD STABLE <freebsd-stable@freebsd.org> Subject: ACPI errors during boot on 7.0.0-RELEASE Message-ID: <3c0b01820806170907h15a9f146nf404b78c82946884@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
------=_Part_21357_6821029.1213718862257 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello: I've just installed FreeBSD-7.0-amd64 on my new MSI-171A (GX710A) notebook (AMD Turon X2 (dual core)/4GB RAM). I have flashed to the latest motherboard BIOS via the MSI website (1.10GA 7/25/2007). I'm seeing some ACPI errors on boot which I believe are relatively harmless but wanted to get confirmation from the list. Here are the pertinent error messages: CPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (evregion-0427): No handler for Region [EC__] (0xffffff00011cf680) [EmbeddedControl] [20070320] ACPI Error (exfldio-0390): Region EmbeddedControl(3) has no handler [20070320] ACPI Error (psparse-0626): Method parse/execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST ACPI Error (uteval-0309): Method execution failed [\\_SB_.PCI0.SBRG.EC__.BAT1._STA] (Node 0xffffff00011d2480), AE_NOT_EXIST After dumping the ASL, it defines an embedded controller (Device EC) with a bunch of methods but ACPI-CA complains that there is no OperationRegion handler for them. I see 7 error messages which I believe correspond to the 7 Method AML calls defined. Is this faulty ASL code on MSI's part or a regression bug? Its DSDT specifies ACPI compliance 1.0 I *think* (I'm a little rusty here). I've attached the just full ASL dump. I do notice that iasl gives me a compiler error but its seem outside the scope of my dmesg error output. I assume based on spec that this is the System Bus, PCI bus 0, south bridge, embedded controller, battery 1 (methods are for status, information, etc. etc.). Any feedback would be much appreciated? Thanks -aps ------=_Part_21357_6821029.1213718862257 Content-Type: application/octet-stream; name=iasl Content-Transfer-Encoding: base64 X-Attachment-Id: f_fhkot6po0 Content-Disposition: attachment; filename=iasl LyoKICBSU0QgUFRSOiBPRU09QUNQSUFNLCBBQ1BJX1Jldj0xLjB4ICgwKQoJUlNEVD0weGNmZmMw MDAwLCBja3N1bT0xMDcKICovCi8qCiAgUlNEVDogTGVuZ3RoPTY0LCBSZXZpc2lvbj0xLCBDaGVj a3N1bT04MywKCU9FTUlEPU1TSV9OQiwgT0VNIFRhYmxlIElEPU1FR0FCT09LLCBPRU0gUmV2aXNp b249MHg3MDAwNzI1LAoJQ3JlYXRvciBJRD1NU0ZULCBDcmVhdG9yIFJldmlzaW9uPTB4OTcKCUVu dHJpZXM9eyAweGNmZmMwMjAwLCAweGNmZmMwMzkwLCAweGNmZmMwM2YwLCAweGNmZmMwNDMwLCAw eGNmZmNlMDQwLCAweGNmZmM0MmYwLCAweGNmZmM0MzMwIH0KICovCi8qCiAgRkFDUDogTGVuZ3Ro PTEzMiwgUmV2aXNpb249MiwgQ2hlY2tzdW09NDIsCglPRU1JRD1NU0lfTkIsIE9FTSBUYWJsZSBJ RD1NRUdBQk9PSywgT0VNIFJldmlzaW9uPTB4NzAwMDcyNSwKCUNyZWF0b3IgSUQ9TVNGVCwgQ3Jl YXRvciBSZXZpc2lvbj0weDk3CiAJRkFDUz0weGNmZmNlMDAwLCBEU0RUPTB4Y2ZmYzA1YjAKCUlO VF9NT0RFTD1BUElDCglQcmVmZXJyZWRfUE1fUHJvZmlsZT1VbnNwZWNpZmllZCAoMCkKCVNDSV9J TlQ9OQoJU01JX0NNRD0weGIwLCBBQ1BJX0VOQUJMRT0weGUxLCBBQ1BJX0RJU0FCTEU9MHgxZSwg UzRCSU9TX1JFUT0weDAKCVBTVEFURV9DTlQ9MHhlMgoJUE0xYV9FVlRfQkxLPTB4ODAwLTB4ODAz CglQTTFhX0NOVF9CTEs9MHg4MDQtMHg4MDUKCVBNMl9DTlRfQkxLPTB4OGZmLTB4OGZmCglQTV9U TVJfQkxLPTB4ODA4LTB4ODBiCglHUEUwX0JMSz0weDgyMC0weDgyNwoJUF9MVkwyX0xBVD0xMDEg dXMsIFBfTFZMM19MQVQ9MTAwMSB1cwoJRkxVU0hfU0laRT0xMDI0LCBGTFVTSF9TVFJJREU9MTYK CURVVFlfT0ZGU0VUPTQsIERVVFlfV0lEVEg9MwoJREFZX0FMUk09MTMsIE1PTl9BTFJNPTAsIENF TlRVUlk9NTAKCUlBUENfQk9PVF9BUkNIPXtMRUdBQ1lfREVWLDgwNDJ9CglGbGFncz17V0JJTlZE LFBST0NfQzEsU0xQX0JVVFRPTixSVENfUzQsVE1SX1ZBTF9FWFR9CiAqLwovKgogIEZBQ1M6CUxl bmd0aD02NCwgSHdTaWc9MHgwMDAwMDAwMCwgRmlybV9XYWtlX1ZlYz0weDAwMDAwMDAwCglHbG9i YWxfTG9jaz0KCUZsYWdzPQoJVmVyc2lvbj0xCiAqLwovKgogIERTRFQ6IExlbmd0aD0xNTY3MCwg UmV2aXNpb249MSwgQ2hlY2tzdW09MTE3LAoJT0VNSUQ9MUFETkksIE9FTSBUYWJsZSBJRD0xQURO STAwMCwgT0VNIFJldmlzaW9uPTB4MCwKCUNyZWF0b3IgSUQ9SU5UTCwgQ3JlYXRvciBSZXZpc2lv bj0weDIwMDUxMTE3CiAqLwovKgogIEFQSUM6IExlbmd0aD05MiwgUmV2aXNpb249MSwgQ2hlY2tz dW09MTA0LAoJT0VNSUQ9TVNJX05CLCBPRU0gVGFibGUgSUQ9TUVHQUJPT0ssIE9FTSBSZXZpc2lv bj0weDcwMDA3MjUsCglDcmVhdG9yIElEPU1TRlQsIENyZWF0b3IgUmV2aXNpb249MHg5NwoJTG9j YWwgQVBJQyBBRERSPTB4ZmVlMDAwMDAKCUZsYWdzPXtQQy1BVH0KCglUeXBlPUxvY2FsIEFQSUMK CUFDUEkgQ1BVPTEKCUZsYWdzPXtFTkFCTEVEfQoJQVBJQyBJRD0wCgoJVHlwZT1Mb2NhbCBBUElD CglBQ1BJIENQVT0yCglGbGFncz17RU5BQkxFRH0KCUFQSUMgSUQ9MQoKCVR5cGU9SU8gQVBJQwoJ QVBJQyBJRD0yCglJTlQgQkFTRT0wCglBRERSPTB4MDAwMDAwMDBmZWMwMDAwMAoKCVR5cGU9SU5U IE92ZXJyaWRlCglCVVM9MAoJSVJRPTAKCUlOVFI9MgoJRmxhZ3M9e1BvbGFyaXR5PWNvbmZvcm1p bmcsIFRyaWdnZXI9Y29uZm9ybWluZ30KCglUeXBlPUlOVCBPdmVycmlkZQoJQlVTPTAKCUlSUT05 CglJTlRSPTkKCUZsYWdzPXtQb2xhcml0eT1hY3RpdmUtbG8sIFRyaWdnZXI9bGV2ZWx9CiAqLwov KgogIE1DRkc6IExlbmd0aD02MCwgUmV2aXNpb249MSwgQ2hlY2tzdW09MTY2LAoJT0VNSUQ9TVNJ X05CLCBPRU0gVGFibGUgSUQ9TUVHQUJPT0ssIE9FTSBSZXZpc2lvbj0weDcwMDA3MjUsCglDcmVh dG9yIElEPU1TRlQsIENyZWF0b3IgUmV2aXNpb249MHg5NwoKCUJhc2UgQWRkcmVzcz0gMHgwMDAw MDAwMGUwMDAwMDAwCglTZWdtZW50IEdyb3VwPSAweDAwMDAKCVN0YXJ0IEJ1cz0gMAoJRW5kIEJ1 cz0gMjU1CiAqLwovKgogIFNMSUM6IExlbmd0aD0zNzQsIFJldmlzaW9uPTEsIENoZWNrc3VtPTI0 MiwKCU9FTUlEPU1TSV9OQiwgT0VNIFRhYmxlIElEPU1FR0FCT09LLCBPRU0gUmV2aXNpb249MHg3 MDAwNzI1LAoJQ3JlYXRvciBJRD1NU0ZULCBDcmVhdG9yIFJldmlzaW9uPTB4OTcKICovCi8qCiAg T0VNQjogTGVuZ3RoPTk3LCBSZXZpc2lvbj0xLCBDaGVja3N1bT0xNzIsCglPRU1JRD1NU0lfTkIs IE9FTSBUYWJsZSBJRD1NRUdBQk9PSywgT0VNIFJldmlzaW9uPTB4NzAwMDcyNSwKCUNyZWF0b3Ig SUQ9TVNGVCwgQ3JlYXRvciBSZXZpc2lvbj0weDk3CiAqLwovKgogIEhQRVQ6IExlbmd0aD01Niwg UmV2aXNpb249MSwgQ2hlY2tzdW09MjUsCglPRU1JRD1NU0lfTkIsIE9FTSBUYWJsZSBJRD1PRU1I UEVULCBPRU0gUmV2aXNpb249MHg3MDAwNzI1LAoJQ3JlYXRvciBJRD1NU0ZULCBDcmVhdG9yIFJl dmlzaW9uPTB4OTcKCUhQRVQgTnVtYmVyPTIKCUFERFI9MHhmZWQwMDAwMDowWzhdIChNZW1vcnkp CUhXIFJldj0weDAKCUNvbXBhcml0b3JzPTMKCUNvdW50ZXIgU2l6ZT0wCglMZWdhY3kgSVJRIHJv dXRpbmcgY2FwYWJsZT17VFJVRX0KCVBDSSBWZW5kb3IgSUQ9MHgwMDAwCglNaW5pbWFsIFRpY2s9 MjAKICovCi8qCiAgU1NEVDogTGVuZ3RoPTc1NiwgUmV2aXNpb249MSwgQ2hlY2tzdW09MjMyLAoJ T0VNSUQ9QSBNIEksIE9FTSBUYWJsZSBJRD1QT1dFUk5PVywgT0VNIFJldmlzaW9uPTB4MSwKCUNy ZWF0b3IgSUQ9QU1ELCBDcmVhdG9yIFJldmlzaW9uPTB4MQogKi8KLyoKICogSW50ZWwgQUNQSSBD b21wb25lbnQgQXJjaGl0ZWN0dXJlCiAqIEFNTCBEaXNhc3NlbWJsZXIgdmVyc2lvbiAyMDA3MDMy MAogKgogKiBEaXNhc3NlbWJseSBvZiAvdG1wL2FjcGlkdW1wLjRsMm9MVSwgVHVlIEp1biAxNyAw ODowMToyMyAyMDA4CiAqCiAqCiAqIE9yaWdpbmFsIFRhYmxlIEhlYWRlcjoKICogICAgIFNpZ25h dHVyZSAgICAgICAgIkRTRFQiCiAqICAgICBMZW5ndGggICAgICAgICAgIDB4MDAwMDQwMDYgKDE2 MzkwKQogKiAgICAgUmV2aXNpb24gICAgICAgICAweDAxCiAqICAgICBPRU0gSUQgICAgICAgICAg ICIxQUROSSIKICogICAgIE9FTSBUYWJsZSBJRCAgICAgIjFBRE5JMDAwIgogKiAgICAgT0VNIFJl dmlzaW9uICAgICAweDAwMDAwMDAwICgwKQogKiAgICAgQ3JlYXRvciBJRCAgICAgICAiSU5UTCIK ICogICAgIENyZWF0b3IgUmV2aXNpb24gMHgyMDA1MTExNyAoNTM3MjAyOTY3KQogKi8KRGVmaW5p dGlvbkJsb2NrICgiL3RtcC9hY3BpZHVtcC5hbWwiLCAiRFNEVCIsIDEsICIxQUROSSIsICIxQURO STAwMCIsIDB4MDAwMDAwMDApCnsKICAgIE9wZXJhdGlvblJlZ2lvbiAoQUNNUywgU3lzdGVtSU8s IDB4NzIsIDB4MDIpCiAgICBGaWVsZCAoQUNNUywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK ICAgIHsKICAgICAgICBJQ01TLCAgIDgsIAogICAgICAgIERDTVMsICAgOAogICAgfQoKICAgIElu ZGV4RmllbGQgKElDTVMsIERDTVMsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4MDEpLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgw NCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA4KSwgCiAgICAgICAgQlNfQSwgICAzMiwg CiAgICAgICAgUkVWMCwgICA4LCAKICAgICAgICBSRVYxLCAgIDgKICAgIH0KCiAgICBPcGVyYXRp b25SZWdpb24gKEFDQUYsIFN5c3RlbU1lbW9yeSwgQlNfQSwgMHgyMCkKICAgIEZpZWxkIChBQ0FG LCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgT0NDMCwgICAxLCAKICAg ICAgICBPQ0MxLCAgIDEsIAogICAgICAgIE9DQzIsICAgMSwgCiAgICAgICAgT0NDMywgICAxLCAK ICAgICAgICBPQ0M0LCAgIDEsIAogICAgICAgIE9DQzUsICAgMSwgCiAgICAgICAgT0NDNiwgICAx LCAKICAgICAgICBPQ0M3LCAgIDEsIAogICAgICAgIE9DQzgsICAgMSwgCiAgICAgICAgT0NDOSwg ICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwMiksIAogICAgICAgIFRQTVIsICAgMSwg CiAgICAgICAgU1RIUCwgICAxLCAKICAgICAgICBTSFBHLCAgIDEsIAogICAgICAgIE9TQ0YsICAg MSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDQpLCAKICAgICAgICBQQ0lFLCAgIDMyLCAK ICAgICAgICBIUEJTLCAgIDMyLCAKICAgICAgICBPQ00wLCAgIDQsIAogICAgICAgIE9DTTEsICAg NCwgCiAgICAgICAgT0NNMiwgICA0LCAKICAgICAgICBPQ00zLCAgIDQsIAogICAgICAgIE9DTTQs ICAgNCwgCiAgICAgICAgT0NNNSwgICA0LCAKICAgICAgICBPQ002LCAgIDQsIAogICAgICAgIE9D TTcsICAgNCwgCiAgICAgICAgT0NNOCwgICA0LCAKICAgICAgICBPQ005LCAgIDQsIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDE0KSwgCiAgICAgICAgUDkyVCwgICA4CiAgICB9CgogICAgT3Bl cmF0aW9uUmVnaW9uIChDTVBULCBTeXN0ZW1JTywgMHgwQzUwLCAweDAzKQogICAgRmllbGQgKENN UFQsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgQ01JRCwgICA4LCAK ICAgICAgICAgICAgLCAgIDYsIAogICAgICAgIEdQQ1QsICAgMiwgCiAgICAgICAgR1AwSSwgICAx LCAKICAgICAgICBHUDFJLCAgIDEsIAogICAgICAgIEdQMkksICAgMSwgCiAgICAgICAgR1AzSSwg ICAxLCAKICAgICAgICBHUDRJLCAgIDEsIAogICAgICAgIEdQNUksICAgMSwgCiAgICAgICAgR1A2 SSwgICAxLCAKICAgICAgICBHUDdJLCAgIDEKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKFBD RkcsIFN5c3RlbU1lbW9yeSwgUENJRSwgMHgwMjAwMDAwMCkKICAgIEZpZWxkIChQQ0ZHLCBBbnlB Y2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4OTAw MjQpLCAKICAgICAgICBTVEI1LCAgIDMyLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg5ODA0 MiksIAogICAgICAgIFBUMEQsICAgMSwgCiAgICAgICAgUFQxRCwgICAxLCAKICAgICAgICBQVDJE LCAgIDEsIAogICAgICAgIFBUM0QsICAgMSwgCiAgICAgICAgUFQ0RCwgICAxLCAKICAgICAgICBQ VDVELCAgIDEsIAogICAgICAgIFBUNkQsICAgMSwgCiAgICAgICAgUFQ3RCwgICAxLCAKICAgICAg ICBQVDhELCAgIDEsIAogICAgICAgIFBUOUQsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQg KDB4QTAwMDQpLCAKICAgICAgICBTTUlFLCAgIDEsIAogICAgICAgIFNNTUUsICAgMSwgCiAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4QTAwMDgpLCAKICAgICAgICBSVklELCAgIDgsIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweEEwMDE0KSwgCiAgICAgICAgU01CMSwgICAzMiwgCiAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4QTAwNzgpLCAKICAgICAgICAgICAgLCAgIDE0LCAKICAgICAgICBQ OTJFLCAgIDEKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKEJBUiwgU3lzdGVtTWVtb3J5LCBT VEI1LCAweDEwMDApCiAgICBGaWVsZCAoQkFSLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAg ICB7CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTIwKSwgCiAgICAgICAgICAgICwgICA3LCAK ICAgICAgICBQTUJZLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEyOCksIAogICAg ICAgIFBNUzAsICAgNCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTI5KSwgCiAgICAgICAg UE1TMSwgICA0LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxMkMpLCAKICAgICAgICBERVQw LCAgIDQsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEzMCksIAogICAgICAgICAgICAgICAg T2Zmc2V0ICgweDEzMiksIAogICAgICAgIFBSQzAsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4MUEwKSwgCiAgICAgICAgICAgICwgICA3LCAKICAgICAgICBTTUJZLCAgIDEsIAogICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDFBOCksIAogICAgICAgIFNNUzAsICAgNCwgCiAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4MUE5KSwgCiAgICAgICAgU01TMSwgICA0LCAKICAgICAgICAgICAg ICAgIE9mZnNldCAoMHgxQUMpLCAKICAgICAgICBERVQxLCAgIDQsIAogICAgICAgICAgICAgICAg T2Zmc2V0ICgweDFCMCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDFCMiksIAogICAgICAg IFBSQzEsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjIwKSwgCiAgICAgICAgICAg ICwgICA3LCAKICAgICAgICBQU0JZLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDIy OCksIAogICAgICAgIFBTUzAsICAgNCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjI5KSwg CiAgICAgICAgUFNTMSwgICA0LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyMkMpLCAKICAg ICAgICBERVQyLCAgIDQsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDIzMCksIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDIzMiksIAogICAgICAgIFBSQzIsICAgMSwgCiAgICAgICAgICAg ICAgICBPZmZzZXQgKDB4MkEwKSwgCiAgICAgICAgICAgICwgICA3LCAKICAgICAgICBTU0JZLCAg IDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDJBOCksIAogICAgICAgIFNTUzAsICAgNCwg CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MkE5KSwgCiAgICAgICAgU1NTMSwgICA0LCAKICAg ICAgICAgICAgICAgIE9mZnNldCAoMHgyQUMpLCAKICAgICAgICBERVQzLCAgIDQsIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDJCMCksIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDJCMiks IAogICAgICAgIFBSQzMsICAgMQogICAgfQoKICAgIE9wZXJhdGlvblJlZ2lvbiAoUE1JTywgU3lz dGVtSU8sIDB4MENENiwgMHgwMikKICAgIEZpZWxkIChQTUlPLCBCeXRlQWNjLCBOb0xvY2ssIFBy ZXNlcnZlKQogICAgewogICAgICAgIElOUE0sICAgOCwgCiAgICAgICAgREFQTSwgICA4CiAgICB9 CgogICAgSW5kZXhGaWVsZCAoSU5QTSwgREFQTSwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkK ICAgIHsKICAgICAgICAgICAgLCAgIDEsIAogICAgICAgIFRNMUUsICAgMSwgCiAgICAgICAgVE0y RSwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwMSksIAogICAgICAgICAgICAsICAg MSwgCiAgICAgICAgVE0xUywgICAxLCAKICAgICAgICBUTTJTLCAgIDEsIAogICAgICAgICAgICAg ICAgT2Zmc2V0ICgweDA0KSwgCiAgICAgICAgICAgICwgICA3LCAKICAgICAgICBTTFBTLCAgIDEs IAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA3KSwgCiAgICAgICAgICAgICwgICA3LCAKICAg ICAgICBDTFBTLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEwKSwgCiAgICAgICAg ICAgICwgICA2LCAKICAgICAgICBQV0RFLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgw eDFDKSwgCiAgICAgICAgICAgICwgICAzLCAKICAgICAgICBNS01FLCAgIDEsIAogICAgICAgIFBJ M0UsICAgMSwgCiAgICAgICAgUEkyRSwgICAxLCAKICAgICAgICBQSTFFLCAgIDEsIAogICAgICAg IFBJMEUsICAgMSwgCiAgICAgICAgICAgICwgICAzLCAKICAgICAgICBNS01TLCAgIDEsIAogICAg ICAgIFBJM1MsICAgMSwgCiAgICAgICAgUEkyUywgICAxLCAKICAgICAgICBQSTFTLCAgIDEsIAog ICAgICAgIFBJMFMsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjApLCAKICAgICAg ICBQMUVCLCAgIDE2LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgzNiksIAogICAgICAgICAg ICAsICAgNiwgCiAgICAgICAgR1Y2UCwgICAxLCAKICAgICAgICBHVjdQLCAgIDEsIAogICAgICAg ICAgICAsICAgMywgCiAgICAgICAgR00wUCwgICAxLCAKICAgICAgICBHTTFQLCAgIDEsIAogICAg ICAgIEdNMlAsICAgMSwgCiAgICAgICAgR00zUCwgICAxLCAKICAgICAgICBHTThQLCAgIDEsIAog ICAgICAgICAgICAsICAgMSwgCiAgICAgICAgR000UCwgICAxLCAKICAgICAgICBHTTVQLCAgIDEs IAogICAgICAgICAgICAsICAgMSwgCiAgICAgICAgR002UCwgICAxLCAKICAgICAgICBHTTdQLCAg IDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDM5KSwgCiAgICAgICAgR0VWMCwgICAxLCAK ICAgICAgICBHRVYxLCAgIDEsIAogICAgICAgIEdFVjIsICAgMSwgCiAgICAgICAgR0VWMywgICAx LCAKICAgICAgICBHRVY0LCAgIDEsIAogICAgICAgIEdFVjUsICAgMSwgCiAgICAgICAgR0VWNiwg ICAxLCAKICAgICAgICBHRVY3LCAgIDEsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDNCKSwg CiAgICAgICAgR1BYMCwgICAxLCAKICAgICAgICBHUFg0LCAgIDEsIAogICAgICAgIEdQWDUsICAg MSwgCiAgICAgICAgR1BYMSwgICAxLCAKICAgICAgICBHUFg2LCAgIDEsIAogICAgICAgIEdQWDcs ICAgMSwgCiAgICAgICAgR1BYMiwgICAxLCAKICAgICAgICBHUFgzLCAgIDEsIAogICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDU1KSwgCiAgICAgICAgU1BSRSwgICAxLCAKICAgICAgICAgICAgLCAg IDEsIAogICAgICAgICAgICAsICAgMSwgCiAgICAgICAgRVBOTSwgICAxLCAKICAgICAgICBEUFBG LCAgIDEsIAogICAgICAgIEZOR1MsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjEp LCAKICAgICAgICAgICAgLCAgIDcsIAogICAgICAgIFI2MTcsICAgMSwgCiAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4NjUpLCAKICAgICAgICAgICAgLCAgIDQsIAogICAgICAgIFJTVFUsICAgMSwg CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjgpLCAKICAgICAgICAgICAgLCAgIDMsIAogICAg ICAgIFRQREUsICAgMSwgCiAgICAgICAgICAgICwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNl dCAoMHg5MiksIAogICAgICAgICAgICAsICAgNywgCiAgICAgICAgR1Y3UywgICAxLCAKICAgICAg ICAgICAgICAgIE9mZnNldCAoMHg5NiksIAogICAgICAgIEdQOEksICAgMSwgCiAgICAgICAgR1A5 SSwgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHg5QSksIAogICAgICAgICAgICAsICAg NywgCiAgICAgICAgSEVDTywgICAxLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHhBOCksIAog ICAgICAgIFBJNEUsICAgMSwgCiAgICAgICAgUEk1RSwgICAxLCAKICAgICAgICBQSTZFLCAgIDEs IAogICAgICAgIFBJN0UsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4QTkpLCAKICAg ICAgICBQSTRTLCAgIDEsIAogICAgICAgIFBJNVMsICAgMSwgCiAgICAgICAgUEk2UywgICAxLCAK ICAgICAgICBQSTdTLCAgIDEKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKFAxRTAsIFN5c3Rl bUlPLCBQMUVCLCAweDA0KQogICAgRmllbGQgKFAxRTAsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2Vy dmUpCiAgICB7CiAgICAgICAgICAgICwgICAxNCwgCiAgICAgICAgUEVXUywgICAxLCAKICAgICAg ICBXU1RBLCAgIDEsIAogICAgICAgICAgICAsICAgMTQsIAogICAgICAgIFBFV0QsICAgMQogICAg fQoKICAgIE1ldGhvZCAoQ19PQywgMCwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTbGVl cCAoMHgxNCkKICAgICAgICBTdG9yZSAoMHgxMywgQ01JRCkKICAgICAgICBTdG9yZSAoWmVybywg R1BDVCkKICAgIH0KCiAgICBNZXRob2QgKFVfT0MsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAg ICAgICAgSWYgKExFcXVhbCAoT0NNMCwgQXJnMCkpCiAgICAgICAgewogICAgICAgICAgICBTdG9y ZSAoQXJnMSwgUFQwRCkKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKE9DTTEsIEFyZzAp KQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKEFyZzEsIFBUMUQpCiAgICAgICAgfQoKICAg ICAgICBJZiAoTEVxdWFsIChPQ00yLCBBcmcwKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3Jl IChBcmcxLCBQVDJEKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoT0NNMywgQXJnMCkp CiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoQXJnMSwgUFQzRCkKICAgICAgICB9CgogICAg ICAgIElmIChMRXF1YWwgKE9DTTQsIEFyZzApKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUg KEFyZzEsIFBUNEQpCiAgICAgICAgfQoKICAgICAgICBJZiAoTEVxdWFsIChPQ001LCBBcmcwKSkK ICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChBcmcxLCBQVDVEKQogICAgICAgIH0KCiAgICAg ICAgSWYgKExFcXVhbCAoT0NNNiwgQXJnMCkpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAo QXJnMSwgUFQ2RCkKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKE9DTTcsIEFyZzApKQog ICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKEFyZzEsIFBUN0QpCiAgICAgICAgfQoKICAgICAg ICBJZiAoTEVxdWFsIChPQ004LCBBcmcwKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChB cmcxLCBQVDhEKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoT0NNOSwgQXJnMCkpCiAg ICAgICAgewogICAgICAgICAgICBTdG9yZSAoQXJnMSwgUFQ5RCkKICAgICAgICB9CiAgICB9Cgog ICAgTWV0aG9kIChTUFRTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIElmIChMRXF1 YWwgKEFyZzAsIDB4MDMpKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKFplcm8sIFJTVFUp CiAgICAgICAgfQoKICAgICAgICBTdG9yZSAoT25lLCBDTFBTKQogICAgICAgIFN0b3JlIChPbmUs IFNMUFMpCiAgICAgICAgSWYgKExMZXNzRXF1YWwgKFJWSUQsIDB4MTMpKQogICAgICAgIHsKICAg ICAgICAgICAgU3RvcmUgKFplcm8sIFBXREUpCiAgICAgICAgfQoKICAgICAgICBJZiAoTEVxdWFs IChQOTJULCBaZXJvKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSTBFKQog ICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUDkyVCwgT25lKSkKICAgICAgICB7CiAgICAg ICAgICAgIFN0b3JlIChaZXJvLCBQSTFFKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAo UDkyVCwgMHgwMikpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoWmVybywgUEkyRSkKICAg ICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKFA5MlQsIDB4MDMpKQogICAgICAgIHsKICAgICAg ICAgICAgU3RvcmUgKFplcm8sIFBJM0UpCiAgICAgICAgfQoKICAgICAgICBJZiAoTEVxdWFsIChQ OTJULCAweDA0KSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSTRFKQogICAg ICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUDkyVCwgMHgwNSkpCiAgICAgICAgewogICAgICAg ICAgICBTdG9yZSAoWmVybywgUEk1RSkKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKFA5 MlQsIDB4MDYpKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKFplcm8sIFBJNkUpCiAgICAg ICAgfQoKICAgICAgICBJZiAoTEVxdWFsIChQOTJULCAweDA3KSkKICAgICAgICB7CiAgICAgICAg ICAgIFN0b3JlIChaZXJvLCBQSTdFKQogICAgICAgIH0KCiAgICAgICAgSWYgKExMZXNzRXF1YWwg KFA5MlQsIDB4MDcpKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKE9uZSwgUDkyRSkKICAg ICAgICB9CiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChDUzcyLCBTeXN0ZW1JTywgMHg3Miwg MHgwMikKICAgIEZpZWxkIChDUzcyLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewog ICAgICAgIENJNzIsICAgOCwgCiAgICAgICAgQ083MywgICA4CiAgICB9CgogICAgSW5kZXhGaWVs ZCAoQ0k3MiwgQ083MywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICAg ICAgICAgIE9mZnNldCAoMHhGMCksIAogICAgICAgIFJUQ0MsICAgMQogICAgfQoKICAgIE1ldGhv ZCAoU1dBSywgMSwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTdG9yZSAoT25lLCBIRUNP KQogICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDMpKQogICAgICAgIHsKICAgICAgICAgICAg SWYgKFJUQ0MpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlICgweENDLCBEQkc4 KQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgTm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IFN0b3JlIChPbmUsIFJTVFUpCiAgICAgICAgfQoKICAgICAgICBTdG9yZSAoUEVXUywgUEVXUykK ICAgICAgICBJZiAoTExlc3NFcXVhbCAoUDkyVCwgMHgwNykpCiAgICAgICAgewogICAgICAgICAg ICBTdG9yZSAoWmVybywgUDkyRSkKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKFA5MlQs IFplcm8pKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKE9uZSwgUEkwRSkKICAgICAgICB9 CgogICAgICAgIElmIChMRXF1YWwgKFA5MlQsIE9uZSkpCiAgICAgICAgewogICAgICAgICAgICBT dG9yZSAoT25lLCBQSTFFKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUDkyVCwgMHgw MikpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoT25lLCBQSTJFKQogICAgICAgIH0KCiAg ICAgICAgSWYgKExFcXVhbCAoUDkyVCwgMHgwMykpCiAgICAgICAgewogICAgICAgICAgICBTdG9y ZSAoT25lLCBQSTNFKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUDkyVCwgMHgwNCkp CiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoT25lLCBQSTRFKQogICAgICAgIH0KCiAgICAg ICAgSWYgKExFcXVhbCAoUDkyVCwgMHgwNSkpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAo T25lLCBQSTVFKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUDkyVCwgMHgwNikpCiAg ICAgICAgewogICAgICAgICAgICBTdG9yZSAoT25lLCBQSTZFKQogICAgICAgIH0KCiAgICAgICAg SWYgKExFcXVhbCAoUDkyVCwgMHgwNykpCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoT25l LCBQSTdFKQogICAgICAgIH0KICAgIH0KCiAgICBNZXRob2QgKFRSTUQsIDEsIE5vdFNlcmlhbGl6 ZWQpCiAgICB7CiAgICAgICAgU3RvcmUgKEFyZzAsIFNQUkUpCiAgICAgICAgU3RvcmUgKEFyZzAs IFRQREUpCiAgICB9CgogICAgSWYgKE9DQzApCiAgICB7CiAgICAgICAgU2NvcGUgKF9HUEUpCiAg ICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9MMTMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIENfT0MgKCkKICAgICAgICAgICAgICAgIElmIChMRXF1 YWwgKEdQMEksIEdNMFApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5v dCAoR00wUCwgR00wUCkKICAgICAgICAgICAgICAgICAgICBVX09DIChaZXJvLCBHTTBQKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIElmIChPQ0Mx KQogICAgewogICAgICAgIFNjb3BlIChfR1BFKQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9k IChfTDE0LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBD X09DICgpCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChHUDFJLCBHTTFQKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOb3QgKEdNMVAsIEdNMVApCiAgICAgICAgICAg ICAgICAgICAgVV9PQyAoT25lLCBHTTFQKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CiAgICAgICAgfQogICAgfQoKICAgIElmIChPQ0MyKQogICAgewogICAgICAgIFNjb3BlIChfR1BF KQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChfTDE1LCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDX09DICgpCiAgICAgICAgICAgICAgICBJZiAo TEVxdWFsIChHUDJJLCBHTTJQKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBOb3QgKEdNMlAsIEdNMlApCiAgICAgICAgICAgICAgICAgICAgVV9PQyAoMHgwMiwgR00yUCkK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBJZiAo T0NDMykKICAgIHsKICAgICAgICBTY29wZSAoX0dQRSkKICAgICAgICB7CiAgICAgICAgICAgIE1l dGhvZCAoX0wxNiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgQ19PQyAoKQogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoR1AzSSwgR00zUCkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTm90IChHTTNQLCBHTTNQKQogICAgICAg ICAgICAgICAgICAgIFVfT0MgKDB4MDMsIEdNM1ApCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KICAgICAgICB9CiAgICB9CgogICAgSWYgKE9DQzQpCiAgICB7CiAgICAgICAgU2NvcGUg KF9HUEUpCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9MMTksIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENfT0MgKCkKICAgICAgICAgICAgICAg IElmIChMRXF1YWwgKEdQNEksIEdNNFApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIE5vdCAoR000UCwgR000UCkKICAgICAgICAgICAgICAgICAgICBVX09DICgweDA0LCBH TTRQKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAg IElmIChPQ0M1KQogICAgewogICAgICAgIFNjb3BlIChfR1BFKQogICAgICAgIHsKICAgICAgICAg ICAgTWV0aG9kIChfTDFBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBDX09DICgpCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChHUDVJLCBHTTVQKSkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOb3QgKEdNNVAsIEdNNVApCiAg ICAgICAgICAgICAgICAgICAgVV9PQyAoMHgwNSwgR001UCkKICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBJZiAoT0NDNikKICAgIHsKICAgICAgICBT Y29wZSAoX0dQRSkKICAgICAgICB7CiAgICAgICAgICAgIE1ldGhvZCAoX0wxQywgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ19PQyAoKQogICAgICAgICAg ICAgICAgSWYgKExFcXVhbCAoR1A2SSwgR002UCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTm90IChHVjZQLCBHVjZQKQogICAgICAgICAgICAgICAgICAgIFVfT0MgKDB4 MDYsIEdWNlApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9 CgogICAgSWYgKE9DQzcpCiAgICB7CiAgICAgICAgU2NvcGUgKF9HUEUpCiAgICAgICAgewogICAg ICAgICAgICBNZXRob2QgKF9MMUQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIENfT0MgKCkKICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEdQN0ksIEdN N1ApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5vdCAoR1Y3UCwgR1Y3 UCkKICAgICAgICAgICAgICAgICAgICBVX09DICgweDA3LCBHVjdQKQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIElmIChPQ0M4KQogICAgewogICAg ICAgIFNjb3BlIChfR1BFKQogICAgICAgIHsKICAgICAgICAgICAgTWV0aG9kIChfTDE3LCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDX09DICgpCiAgICAg ICAgICAgICAgICBJZiAoTEVxdWFsIChHUDhJLCBHTThQKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBOb3QgKEdNOFAsIEdNOFApCiAgICAgICAgICAgICAgICAgICAgVV9P QyAoMHgwOCwgR004UCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0K ICAgIH0KCiAgICBJZiAoT0NDOSkKICAgIHsKICAgICAgICBTY29wZSAoX0dQRSkKICAgICAgICB7 CiAgICAgICAgICAgIE1ldGhvZCAoX0wwRSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgQ19PQyAoKQogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoR1A5 SSwgWmVybykpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgVV9PQyAoMHgw OSwgT25lKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoK ICAgIE1ldGhvZCAoTlBUUywgMSwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgIH0KCiAgICBNZXRo b2QgKE5XQUssIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICB9CgogICAgTmFtZSAoRlpURiwg QnVmZmVyICgweDA3KQogICAgewogICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4RjUKICAgIH0pCiAgICBOYW1lIChEUDgwLCAweDgwKQogICAgTmFtZSAoRFA5MCwg MHg5MCkKICAgIE5hbWUgKFVNUlMsIE9uZSkKICAgIE5hbWUgKFBNQlMsIDB4MDgwMCkKICAgIE5h bWUgKFBNTE4sIDB4QTApCiAgICBOYW1lIChHUEJTLCBaZXJvKQogICAgTmFtZSAoR1BMTiwgWmVy bykKICAgIE5hbWUgKFNNQkIsIDB4MEIxMCkKICAgIE5hbWUgKFNNQkwsIDB4MTApCiAgICBOYW1l IChBUElDLCBPbmUpCiAgICBOYW1lIChQQ0lCLCAweEUwMDAwMDAwKQogICAgTmFtZSAoUENJTCwg MHgxMDAwMDAwMCkKICAgIE5hbWUgKEhUVEMsIFplcm8pCiAgICBPcGVyYXRpb25SZWdpb24gKEJJ T1MsIFN5c3RlbU1lbW9yeSwgMHhDRkZDRTA2NCwgMHhGRikKICAgIEZpZWxkIChCSU9TLCBCeXRl QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgIFNTMSwgICAgMSwgCiAgICAgICAg U1MyLCAgICAxLCAKICAgICAgICBTUzMsICAgIDEsIAogICAgICAgIFNTNCwgICAgMSwgCiAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4MDEpLCAKICAgICAgICBJT1NULCAgIDE2LCAKICAgICAgICBU T1BNLCAgIDMyLCAKICAgICAgICBST01TLCAgIDMyLCAKICAgICAgICBNRzFCLCAgIDMyLCAKICAg ICAgICBNRzFMLCAgIDMyLCAKICAgICAgICBNRzJCLCAgIDMyLCAKICAgICAgICBNRzJMLCAgIDMy LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxQyksIAogICAgICAgIERNQVgsICAgOCwgCiAg ICAgICAgSFBUQSwgICAzMiwgCiAgICAgICAgQ1BCMCwgICAzMiwgCiAgICAgICAgQ1BCMSwgICAz MiwgCiAgICAgICAgQ1BCMiwgICAzMiwgCiAgICAgICAgQ1BCMywgICAzMiwgCiAgICAgICAgQVNT QiwgICA4LCAKICAgICAgICBBT1RCLCAgIDgsIAogICAgICAgIEFBWEIsICAgMzIsIAogICAgICAg IFNNSUYsICAgOCwgCiAgICAgICAgRFRTRSwgICA4LCAKICAgICAgICBEVFMxLCAgIDgsIAogICAg ICAgIERUUzIsICAgOCwgCiAgICAgICAgTVBFTiwgICA4LCAKICAgICAgICBUUE1GLCAgIDgKICAg IH0KCiAgICBNZXRob2QgKFJSSU8sIDQsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgU3Rv cmUgKCJSUklPIiwgRGVidWcpCiAgICB9CgogICAgTWV0aG9kIChSRE1BLCAzLCBOb3RTZXJpYWxp emVkKQogICAgewogICAgICAgIFN0b3JlICgickRNQSIsIERlYnVnKQogICAgfQoKICAgIE5hbWUg KFBJQ00sIFplcm8pCiAgICBNZXRob2QgKF9QSUMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAg ICAgICAgSWYgKEFyZzApCiAgICAgICAgewogICAgICAgICAgICBTdG9yZSAoMHhBQSwgREJHOCkK ICAgICAgICAgICAgXF9TQi5JUlFDICgpCiAgICAgICAgfQogICAgICAgIEVsc2UKICAgICAgICB7 CiAgICAgICAgICAgIFN0b3JlICgweEFDLCBEQkc4KQogICAgICAgIH0KCiAgICAgICAgU3RvcmUg KEFyZzAsIFBJQ00pCiAgICB9CgogICAgTmFtZSAoT1NWUiwgT25lcykKICAgIE1ldGhvZCAoT1NG TCwgMCwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJZiAoTE5vdEVxdWFsIChPU1ZSLCBP bmVzKSkKICAgICAgICB7CiAgICAgICAgICAgIFJldHVybiAoT1NWUikKICAgICAgICB9CgogICAg ICAgIElmIChMRXF1YWwgKFBJQ00sIFplcm8pKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUg KDB4QUMsIERCRzgpCiAgICAgICAgfQoKICAgICAgICBTdG9yZSAoT25lLCBPU1ZSKQogICAgICAg IElmIChDb25kUmVmT2YgKF9PU0ksIExvY2FsMSkpCiAgICAgICAgewogICAgICAgICAgICBJZiAo X09TSSAoIldpbmRvd3MgMjAwMSIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9y ZSAoWmVybywgT1NWUikKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAg ICAgewogICAgICAgICAgICBJZiAoTUNUSCAoX09TLCAiTWljcm9zb2Z0IFdpbmRvd3MgTlQiKSkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3RvcmUgKDB4MDQsIE9TVlIpCiAgICAgICAg ICAgIH0KICAgICAgICAgICAgRWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo TUNUSCAoX09TLCAiTWljcm9zb2Z0IFdpbmRvd3NNRTogTWlsbGVubml1bSBFZGl0aW9uIikpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDIsIE9TVlIpCiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKE1DVEggKF9PUywgIkxpbnV4Iikp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDMsIE9TVlIp CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFJldHVy biAoT1NWUikKICAgIH0KCiAgICBNZXRob2QgKE1DVEgsIDIsIE5vdFNlcmlhbGl6ZWQpCiAgICB7 CiAgICAgICAgSWYgKExMZXNzIChTaXplT2YgKEFyZzApLCBTaXplT2YgKEFyZzEpKSkKICAgICAg ICB7CiAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICB9CgogICAgICAgIEFkZCAoU2l6 ZU9mIChBcmcwKSwgT25lLCBMb2NhbDApCiAgICAgICAgTmFtZSAoQlVGMCwgQnVmZmVyIChMb2Nh bDApIHt9KQogICAgICAgIE5hbWUgKEJVRjEsIEJ1ZmZlciAoTG9jYWwwKSB7fSkKICAgICAgICBT dG9yZSAoQXJnMCwgQlVGMCkKICAgICAgICBTdG9yZSAoQXJnMSwgQlVGMSkKICAgICAgICBXaGls ZSAoTG9jYWwwKQogICAgICAgIHsKICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAg ICAgICAgIElmIChMTm90RXF1YWwgKERlcmVmT2YgKEluZGV4IChCVUYwLCBMb2NhbDApKSwgRGVy ZWZPZiAoSW5kZXggKAogICAgICAgICAgICAgICAgQlVGMSwgTG9jYWwwKSkpKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgIH0KICAgICAgICB9 CgogICAgICAgIFJldHVybiAoT25lKQogICAgfQoKICAgIE5hbWUgKFBSV1AsIFBhY2thZ2UgKDB4 MDIpCiAgICB7CiAgICAgICAgWmVybywgCiAgICAgICAgWmVybwogICAgfSkKICAgIE1ldGhvZCAo R1BSVywgMiwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTdG9yZSAoQXJnMCwgSW5kZXgg KFBSV1AsIFplcm8pKQogICAgICAgIFN0b3JlIChTaGlmdExlZnQgKFNTMSwgT25lKSwgTG9jYWww KQogICAgICAgIE9yIChMb2NhbDAsIFNoaWZ0TGVmdCAoU1MyLCAweDAyKSwgTG9jYWwwKQogICAg ICAgIE9yIChMb2NhbDAsIFNoaWZ0TGVmdCAoU1MzLCAweDAzKSwgTG9jYWwwKQogICAgICAgIE9y IChMb2NhbDAsIFNoaWZ0TGVmdCAoU1M0LCAweDA0KSwgTG9jYWwwKQogICAgICAgIElmIChBbmQg KFNoaWZ0TGVmdCAoT25lLCBBcmcxKSwgTG9jYWwwKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0 b3JlIChBcmcxLCBJbmRleCAoUFJXUCwgT25lKSkKICAgICAgICB9CiAgICAgICAgRWxzZQogICAg ICAgIHsKICAgICAgICAgICAgU2hpZnRSaWdodCAoTG9jYWwwLCBPbmUsIExvY2FsMCkKICAgICAg ICAgICAgSWYgKExPciAoTEVxdWFsIChPU0ZMICgpLCBPbmUpLCBMRXF1YWwgKE9TRkwgKCksIDB4 MDIpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgRmluZFNldExlZnRCaXQgKExvY2Fs MCwgSW5kZXggKFBSV1AsIE9uZSkpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRWxzZQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKExvY2FsMCwgSW5kZXgg KFBSV1AsIE9uZSkpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFJldHVybiAoUFJX UCkKICAgIH0KCiAgICBOYW1lIChXQUtQLCBQYWNrYWdlICgweDAyKQogICAgewogICAgICAgIFpl cm8sIAogICAgICAgIFplcm8KICAgIH0pCiAgICBPcGVyYXRpb25SZWdpb24gKERFQjAsIFN5c3Rl bUlPLCBEUDgwLCBPbmUpCiAgICBGaWVsZCAoREVCMCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2 ZSkKICAgIHsKICAgICAgICBEQkc4LCAgIDgKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKERF QjEsIFN5c3RlbUlPLCBEUDkwLCAweDAyKQogICAgRmllbGQgKERFQjEsIFdvcmRBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgREJHOSwgICAxNgogICAgfQoKICAgIFNjb3BlIChf UFIpCiAgICB7CiAgICAgICAgUHJvY2Vzc29yIChQMDAxLCAweDAxLCAweDAwMDAwODEwLCAweDA2 KSB7fQogICAgICAgIFByb2Nlc3NvciAoUDAwMiwgMHgwMiwgMHgwMDAwMDAwMCwgMHgwMCkge30K ICAgICAgICBBbGlhcyAoUDAwMSwgQ1BVMSkKICAgICAgICBBbGlhcyAoUDAwMiwgQ1BVMikKICAg IH0KCiAgICBTY29wZSAoX1NCKQogICAgewogICAgICAgIE5hbWUgKFBSMDAsIFBhY2thZ2UgKDB4 MjEpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweDAwMDJGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAg ICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw MDAyRkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LRCwgCiAg ICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAyRkZGRiwgCiAgICAgICAg ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgWmVy bwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4MDAwMkZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAg ICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwg CgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweDAwMDNGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5L RCwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAg ICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAgICAg ICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAgICAgICAgICAgICAgICAweDAy LCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIDB4MDAwM0ZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAg ICBMTktDLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDRGRkZG LCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAg ICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAg ICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAg ICAgICAgIExOS0MsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAw NEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBMTktELCAKICAg ICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICBaZXJv CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgMHgwMDA1RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAg ICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg MHgwMDA1RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0Qs IAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNUZGRkYsIAogICAg ICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBMTktBLCAKICAgICAgICAgICAgICAg IFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDZGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8s IAogICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgMHgwMDA2RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAg TE5LRCwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA2RkZGRiwg CiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0EsIAogICAgICAgICAg ICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNkZGRkYsIAogICAgICAgICAgICAgICAg MHgwMywgCiAgICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweDAwMDdGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgTE5LRCwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA3 RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAg ICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA3RkZGRiwgCiAgICAgICAgICAg ICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgWmVybwog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4MDAwN0ZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAg ICAgICAgICAgICBMTktDLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw eDAwMTRGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LQSwg CiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAg ICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICBa ZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAK ICAgICAgICAgICAgICAgIExOS0MsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4MDAxNEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBM TktELCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTNGRkZGLCAK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDEzRkZGRiwgCiAgICAgICAgICAgICAgICBP bmUsIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHgwMDEzRkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg ICAgIExOS0MsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxM0ZG RkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBMTktELCAKICAgICAg ICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTJGRkZGLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgTE5LRywgCiAgICAgICAgICAgICAgICBaZXJvCiAg ICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKEFSMDAsIFBhY2thZ2UgKDB4MjEp CiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAweDAwMDJGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAy RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAg ICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAyRkZGRiwgCiAgICAgICAgICAg ICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMAog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4MDAwMkZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAw eDAwMDNGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAgICAg ICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAw eDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgMHgwMDAzRkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIDB4MDAwM0ZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDRGRkZGLCAK ICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAg ICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAgICBP bmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDExCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNEZG RkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAg ICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDExCiAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgMHgwMDA1RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw MDA1RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgxMwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNUZGRkYsIAogICAgICAg ICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4 MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAweDAwMDZGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgMHgwMDA2RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA2RkZGRiwgCiAg ICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgMHgxMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNkZGRkYsIAogICAgICAgICAgICAgICAgMHgw MywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweDAwMDdGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA3RkZG RiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA3RkZGRiwgCiAgICAgICAgICAgICAg ICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQogICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIDB4MDAwN0ZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAg ICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw MTRGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAgICAg ICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEx CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAK CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IDB4MDAxNEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJv LCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTNGRkZGLCAKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAg ICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgMHgwMDEzRkZGRiwgCiAgICAgICAgICAgICAgICBPbmUs IAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDExCiAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgMHgwMDEzRkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAxM0ZGRkYs IAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAg ICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMTJGRkZGLCAKICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDE2CiAgICAg ICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKFBSMDEsIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA1RkZG RiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LRCwgCiAgICAgICAg ICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA1RkZGRiwgCiAgICAgICAgICAgICAg ICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgWmVybwogICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIDB4MDAwNUZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAg ICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfQogICAgICAg IH0pCiAgICAgICAgTmFtZSAoQVIwMSwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwNUZG RkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIDB4MTIKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAg ICAgIE9uZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAg ICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgw MDA1RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1l IChQUjAyLCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAg IFplcm8sIAogICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAg ICBMTktELCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAog ICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBMTktBLCAKICAgICAgICAgICAg ICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywg CiAgICAgICAgICAgICAgICBMTktCLCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAg fQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoQVIwMiwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7 CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IDB4RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg ICAgICBPbmUsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEzCiAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZG LCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDExCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKFBSMDMs IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywg CiAgICAgICAgICAgICAgICBMTktELCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAg fSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIExOS0Es IAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAgICAgICAgICAgICAgWmVy bwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAg ICAgICAgICAgIExOS0MsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9CiAgICAg ICAgfSkKICAgICAgICBOYW1lIChBUjAzLCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZG LCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIE9u ZSwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTAKICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg ICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IDB4MTIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFIwNCwgUGFja2Fn ZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAg ICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQiwgCiAgICAg ICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAg IDB4MDIsIAogICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAg ICAgTE5LRCwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0KICAgICAgICB9KQog ICAgICAgIE5hbWUgKEFSMDQsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg ICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IDB4MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAg ICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICB9LCAK CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg ICAgICAweDAzLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMwog ICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChQUjA1LCBQYWNrYWdlICgweDA0 KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgTE5LQiwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAK ICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBMTktDLCAKICAgICAgICAgICAg ICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMiwg CiAgICAgICAgICAgICAgICBMTktELCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAg fSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICBMTktB LCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAg TmFtZSAoQVIwNSwgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg ICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICBPbmUsIAogICAgICAgICAg ICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZG LCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAg ICAgICAgICAweDEzCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4 MDMsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEwCiAgICAgICAg ICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKFBSMDYsIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICBMTktD LCAKICAgICAgICAgICAgICAgIFplcm8KICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAg ICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIExOS0QsIAogICAgICAgICAgICAgICAgWmVy bwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAyLCAKICAgICAg ICAgICAgICAgIExOS0EsIAogICAgICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgIExOS0IsIAogICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChB UjA2LCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIFpl cm8sIAogICAgICAgICAgICAgICAgWmVybywgCiAgICAgICAgICAgICAgICAweDEyCiAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg ICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAg IDB4MTAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgMHgwMywgCiAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgfQog ICAgICAgIH0pCiAgICAgICAgTmFtZSAoUFIwNywgUGFja2FnZSAoMHgwNCkKICAgICAgICB7CiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4 RkZGRiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIExOS0QsIAogICAg ICAgICAgICAgICAgWmVybwogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAg ICBPbmUsIAogICAgICAgICAgICAgICAgTE5LQSwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAg ICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAg ICAgTE5LQiwgCiAgICAgICAgICAgICAgICBaZXJvCiAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHhGRkZGLCAK ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgTE5LQywgCiAgICAgICAgICAg ICAgICBaZXJvCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKEFSMDcsIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgfSwg CgogICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAweEZGRkYsIAogICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgIFplcm8sIAog ICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg ICAgICAweDAyLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMQog ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAg ICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxMgogICAgICAgICAgICB9CiAgICAgICAg fSkKICAgICAgICBOYW1lIChQUjBDLCBQYWNrYWdlICgweDAxKQogICAgICAgIHsKICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA0RkZG RiwgCiAgICAgICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgIExOS0UsIAogICAgICAg ICAgICAgICAgWmVybwogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChBUjBD LCBQYWNrYWdlICgweDAxKQogICAgICAgIHsKICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDA0RkZGRiwgCiAgICAgICAgICAgICAgICBa ZXJvLCAKICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAgICAgMHgxNAogICAgICAg ICAgICB9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChQUlNBLCBSZXNvdXJjZVRlbXBsYXRlICgp CiAgICAgICAgewogICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQog ICAgICAgICAgICAgICAgezMsNCw1LDcsMTAsMTEsMTIsMTQsMTV9CiAgICAgICAgfSkKICAgICAg ICBBbGlhcyAoUFJTQSwgUFJTQikKICAgICAgICBBbGlhcyAoUFJTQSwgUFJTQykKICAgICAgICBB bGlhcyAoUFJTQSwgUFJTRCkKICAgICAgICBBbGlhcyAoUFJTQSwgUFJTRSkKICAgICAgICBOYW1l IChQUlNGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgewogICAgICAgICAgICBJUlEgKExl dmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgezl9CiAgICAgICAgfSkK ICAgICAgICBBbGlhcyAoUFJTQSwgUFJTRykKICAgICAgICBBbGlhcyAoUFJTQSwgUFJTSCkKICAg ICAgICBEZXZpY2UgKFBDSTApCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNh SWQgKCJQTlAwQTAzIikpCiAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxODAwMDApCiAgICAg ICAgICAgIE1ldGhvZCAoXkJOMDAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0 aG9kIChfQkJOLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBSZXR1cm4gKEJOMDAgKCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKF9VSUQs IFplcm8pCiAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChBUjAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIFJldHVybiAoUFIwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChO UFRTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE1ldGhvZCAoTldBSywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFJTNDgpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdp b24gKE5CMiwgUENJX0NvbmZpZywgWmVybywgMHgwMTAwKQogICAgICAgICAgICAgICAgRmllbGQg KE5CMiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDkwKSwgCiAgICAgICAgICAgICAgICAgICAg VU1CUywgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4OUIpLCAK ICAgICAgICAgICAgICAgICAgICBVTVNMLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgT2Zmc2V0ICgweEU0KSwgCiAgICAgICAgICAgICAgICAgICAgTUNEQSwgICAzMiwgCiAgICAg ICAgICAgICAgICAgICAgTkNJTiwgICAzMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIERldmljZSAoVU1BWCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBO YW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzAyIikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAo X1VJRCwgMHgyNCkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoVU1TTCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKENSUywgUmVzb3VyY2VUZW1wbGF0ZSAo KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJG aXhlZCAoUmVhZE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAg ICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAw MDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgX1kwMCkKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlJTNDguVU1B WC5fWTAwLl9CQVMsIEJBUzEpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmll bGQgKENSUywgXF9TQi5QQ0kwLlJTNDguVU1BWC5fWTAwLl9MRU4sIExFTjEpCiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChVTUJTLCBCQVMxKQogICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoU2hpZnRMZWZ0IChVTVNMLCAweDE4KSwgTEVOMSkKICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChDUlMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQog ICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFAwUDEpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMTAwMDApCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEFSMDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBSMDEpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIERldmljZSAoUENFMikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFt ZSAoX0FEUiwgMHgwMDAyMDAwMCkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEdQUlcgKDB4MTgsIDB4MDQpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJZiAoUElDTSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQVIwMikKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoUFIwMikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBEZXZpY2UgKFZHQSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChfQURSLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RPUywgMSwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChBcmcwLCBTV0lUKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgTmFtZSAoX0RPRCwgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAwMTAxMDAsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDEwMTEwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDIwMCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAwMTAyMTAKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgIERldmljZSAoQ1JUKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMTAwKQogICAgICAgICAgICAgICAgICAgICAg ICBOYW1lIChfRENTLCAweDFGKQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfREdTLCBa ZXJvKQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU1MsIDEsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChMQ0QpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAw eDAxMTApCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9EQ1MsIDB4MUYpCiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9ER1MsIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfRFNTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0JDTSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1RfMCwgWmVybykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChBcmcwLCBfVF8wKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKExFcXVhbCAoX1RfMCwgMHgxNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsMCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoTEVxdWFsIChfVF8wLCAweDFFKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUs IExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoX1RfMCwgMHgy OCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAyLCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChfVF8wLCAweDMyKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKF9UXzAsIDB4M0MpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDQsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoX1RfMCwg MHg0NikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDA1LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChfVF8wLCAweDUwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoMHgwNiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKF9UXzAsIDB4NUEpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDcsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoX1RfMCwgMHg2NCkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDA4LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoMHgwOCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFdoaWxlIChMTm90ICheXl5eU0JSRy5FQy5JUkRZICgpKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoT25l KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDExLCBeXl5eU0JSRy5FQy5DTUQxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgV2hpbGUgKExOb3QgKF5eXl5TQlJHLkVDLklSRFkgKCkpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4ODAsIF5eXl5TQlJHLkVDLkRBVDEpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoTE5vdCAoXl5eXlNCUkcuRUMuSVJEWSAoKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoTG9jYWwwLCBeXl5eU0JSRy5FQy5EQVQxKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9CUUMsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICheXl5eU0JSRy5FQy5HQlFDLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNdWx0aXBseSAoTG9jYWwwLCAweDBBLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBZGQgKExvY2FsMSwgMHgxNCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKFBCQ0wsIFBhY2thZ2UgKDB4MEIpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NTAsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgxNCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0 LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUUsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgyOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMyLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4M0MsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHg0NiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDUwLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4NUEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2NAogICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9C Q0wsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEJDTCkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChUVikK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIs IDB4MDIwMCkKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0RDUywgMHgxRikKICAgICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX0RHUywgWmVybykKICAgICAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfRFNTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIERldmljZSAoREZQMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDIxMCkKICAgICAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX0RDUywgMHgxRikKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0RH UywgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNTLCAxLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKFNXSVQs IFplcm8pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoR0RDUywgMHgwMikKICAgICAgICAgICAg ICAgICAgICBOYW1lIChHREdTLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoR0RUUywg WmVybykKICAgICAgICAgICAgICAgICAgICBOYW1lIChHREZHLCBPbmUpCiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoQlFGMSwgWmVybykKICAgICAgICAgICAgICAgICAgICBOYW1lIChCUUYyLCBa ZXJvKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2Ug KFBDRTMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMzAw MDApCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDE4LCAweDA0 KSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKFBJ Q00pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KEFSMDMpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBSMDMpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmlj ZSAoUENFNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDA0 MDAwMCkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4MTgsIDB4 MDQpKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAo UElDTSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoQVIwNCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVy biAoUFIwNCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2 aWNlIChQQ0U1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAw MDUwMDAwKQogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHgxOCwg MHgwNCkpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJULCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm IChQSUNNKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChBUjA1KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChQUjA1KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBE ZXZpY2UgKFBDRTYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4 MDAwNjAwMDApCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDE4 LCAweDA0KSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg SWYgKFBJQ00pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKEFSMDYpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFBSMDYpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChO RVdDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFpl cm8pCiAgICAgICAgICAgICAgICAgICAgU2NvcGUgKFxfR1BFKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfTDA3LCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoR1Y3UywgREJHOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChHVjdTKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChPbmUsIEdFVjcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKFplcm8sIEdWN1ApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgR0VWNykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBHVjdQKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDY0KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAsIFplcm8pCiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1JNViwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgU2NvcGUgKF5eUENFNikKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoTkVTUywgUENJX0Nv bmZpZywgMHg3MiwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICBGaWVsZCAoTkVTUywgQW55 QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDUsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU0xTVCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgMQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFBDRTcpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwNzAwMDApCiAgICAgICAgICAgICAg ICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDE4LCAweDA0KSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMDcpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSMDcpCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoU0JBWikKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDE0MDAwMikKICAgICAgICAgICAg ICAgIE9wZXJhdGlvblJlZ2lvbiAoUENJLCBQQ0lfQ29uZmlnLCBaZXJvLCAweDAxMDApCiAgICAg ICAgICAgICAgICBGaWVsZCAoUENJLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NDIpLCAKICAg ICAgICAgICAgICAgICAgICBETlNQLCAgIDEsIAogICAgICAgICAgICAgICAgICAgIEROU08sICAg MSwgCiAgICAgICAgICAgICAgICAgICAgRU5TUiwgICAxCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHgxQiwgMHgwNCkpCiAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoU0JSRykKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDE0MDAwMykKICAgICAg ICAgICAgICAgIERldmljZSAoUElDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAwMDAiKSkKICAgICAgICAgICAgICAgICAgICBO YW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwMjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAyMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChE ZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBBMCwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEEwLCAgICAg ICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw LCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgezJ9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBEZXZpY2UgKERNQUQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDIwMCIpKQogICAgICAgICAgICAg ICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIERNQSAoQ29tcGF0aWJpbGl0eSwgQnVzTWFzdGVy LCBUcmFuc2ZlcjgsICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHs0fQogICAgICAgICAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUx NiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MSwgICAgICAgICAgICAgLy8gUmFu Z2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgxLCAgICAgICAgICAg ICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAg ICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywg ICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDg3LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwODcsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAo RGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODksICAgICAgICAgICAg IC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4OSwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDMsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDA4RiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDhGLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVt CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdu bWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBM ZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAg ICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEMwLCAgICAg ICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw QzAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDIwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgRGV2aWNlIChUTVIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDEwMCIpKQogICAgICAgICAgICAgICAgICAg IE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDA0MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDQwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSVJR Tm9GbGFncyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgezB9CiAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFJUQzAp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlk ICgiUE5QMEIwMCIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElP IChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA3MCwgICAgICAgICAg ICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDcwLCAg ICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSVJRTm9GbGFncyAoKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgezh9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFNQS1IpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDgwMCIpKQogICAgICAgICAg ICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDA2MSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYxLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhp bXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFs aWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAv LyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoQ09QUikKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQ TlAwQzA0IikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0 ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERl Y29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEYwLCAgICAgICAgICAgICAv LyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRjAsICAgICAg ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAs ICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDEwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7MTN9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBEZXZpY2UgKEhQRVQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDEwMyIpKQogICAgICAgICAgICAg ICAgICAgIE5hbWUgKENSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZE9ubHksCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweEZFRDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFz ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMCwgICAgICAgICAvLyBBZGRy ZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX1kwMSkKICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChI UEJTKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlNCUkcuSFBFVC5fWTAxLl9CQVMsIEhQ VCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEhQQlMsIEhQVCkKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChDUlMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoXlBDSUUpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpKQogICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MTEpCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkT25seSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4RTAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDEwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3Ro CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfWTAyKQogICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoQ1JTLCBcX1NCLlBDSTAuUENJRS5fWTAyLl9CQVMsIEJBUzEpCiAgICAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlBDSUUuX1kwMi5fTEVOLCBM RU4xKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUENJQiwgQkFTMSkKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKFBDSUwsIExFTjEpCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQ1JTKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBEZXZpY2UgKE9NU0MpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpKQogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9VSUQsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ1JTLCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBNZW1vcnkzMkZpeGVkIChSZWFkT25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBfWTAzKQogICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZp eGVkIChSZWFkT25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAg ICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAw MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBfWTA0KQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKEFQSUMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlNC UkcuT01TQy5fWTAzLl9MRU4sIE1MMDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVh dGVEV29yZEZpZWxkIChDUlMsIFxfU0IuUENJMC5TQlJHLk9NU0MuX1kwMy5fQkFTLCBNQjAxKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBD STAuU0JSRy5PTVNDLl9ZMDQuX0xFTiwgTUwwMikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlNCUkcuT01TQy5fWTA0Ll9CQVMsIE1C MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhGRUMwMDAwMCwgTUIwMSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDEwMDAsIE1MMDEpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhGRUUwMDAwMCwgTUIwMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDEwMDAsIE1MMDIpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQ1JTKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKF5eUk1F TSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNh SWQgKCJQTlAwQzAxIikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKQogICAg ICAgICAgICAgICAgICAgIE5hbWUgKENSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdy aXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBB ZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwQTAwMDAsICAgICAg ICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZE9ubHksCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0 aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX1kwNSkKICAgICAgICAgICAgICAgICAgICAg ICAgTWVtb3J5MzJGaXhlZCAoUmVhZE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMEUwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDAyMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgX1kwNikKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhl ZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMCwgICAg ICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw MDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAg IF9ZMDcpCiAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRPbmx5LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNz IEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8g QWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ZMDgpCiAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBD cmVhdGVEV29yZEZpZWxkIChDUlMsIFxfU0IuUk1FTS5fWTA1Ll9CQVMsIEJBUzEpCiAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5STUVNLl9ZMDUuX0xF TiwgTEVOMSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBc X1NCLlJNRU0uX1kwNi5fQkFTLCBCQVMyKQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVE V29yZEZpZWxkIChDUlMsIFxfU0IuUk1FTS5fWTA2Ll9MRU4sIExFTjIpCiAgICAgICAgICAgICAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5STUVNLl9ZMDcuX0xFTiwgTEVO MykKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBcX1NCLlJN RU0uX1kwOC5fQkFTLCBCQVM0KQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZp ZWxkIChDUlMsIFxfU0IuUk1FTS5fWTA4Ll9MRU4sIExFTjQpCiAgICAgICAgICAgICAgICAgICAg ICAgIElmIChPU0ZMICgpKSB7fQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChNRzFCKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmIChMR3JlYXRlciAoTUcxQiwgMHgwMDBDMDAwMCkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo MHgwMDBDMDAwMCwgQkFTMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vi dHJhY3QgKE1HMUIsIEJBUzEsIExFTjEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDAwMEMwMDAwLCBCQVMxKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDAwMDIwMDAwLCBMRU4xKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBZGQgKE1HMUIsIE1H MUwsIExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgQkFTMikKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdWJ0cmFjdCAoMHgwMDEwMDAwMCwgQkFTMiwgTEVOMikKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgU3VidHJhY3QgKE1HMkIsIDB4MDAxMDAwMDAsIExFTjMpCiAgICAgICAg ICAgICAgICAgICAgICAgIEFkZCAoTUcyQiwgTUcyTCwgQkFTNCkKICAgICAgICAgICAgICAgICAg ICAgICAgU3VidHJhY3QgKFplcm8sIEJBUzQsIExFTjQpCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQ1JTKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBEZXZpY2UgKFJNU0MpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwMiIpKQogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9VSUQsIDB4MTApCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ1JTLCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAsICAg ICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAxMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIyLCAgICAgICAgICAgICAvLyBSYW5n ZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAg IC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRSwgICAgICAgICAg ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDYyLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwNjIsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjUsICAgICAgICAgICAgIC8vIFJhbmdl IE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NSwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAg ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEIsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDA3MiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDcyLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwRSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERl Y29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwLCAgICAgICAgICAgICAv LyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAsICAgICAg ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAs ICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwODQsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDA4NCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1l bnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsICAgICAgICAgICAgICAgLy8gTGVu Z3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAg IElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4OCwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDg4 LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDhDLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOEMsICAgICAgICAgICAgIC8vIFJhbmdlIE1h eGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g QWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAgICAgICAgICAgICAg IC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwOTAs ICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDA5MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBBMiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWlu aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEEyLCAgICAgICAgICAgICAvLyBS YW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRSwgICAgICAg ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMEIxLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwQjEsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2Rl MTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRTAsICAgICAgICAgICAgIC8vIFJh bmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBFMCwgICAgICAgICAg ICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAg ICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAs ICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDREMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwNEQwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8g KERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDBCLCAgICAgICAgICAg ICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MEIsICAg ICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDA0RDYsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDRENiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGln bm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8g TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg ICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEMwMCwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw QzAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwQzE0LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVt CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDMTQsICAgICAgICAgICAgIC8vIFJhbmdl IE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAg Ly8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAg ICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg ICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBD NTAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MEM1MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEM1MiwgICAgICAgICAgICAgLy8gUmFuZ2Ug TWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQzUyLCAgICAgICAgICAgICAv LyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg ICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAg ICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAg ICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwQzZDLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDBDNkMsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDNkYsICAgICAgICAgICAgIC8v IFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEM2RiwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg ICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MENEMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwQ0QwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVu dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5n dGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAg SU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQ0QyLCAgICAgICAg ICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDRDIs ICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDBDRDQsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MENENCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4 aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBB bGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAg Ly8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAg ICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MENENiwg ICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwQ0Q2LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwQ0Q4LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5p bXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBDRDgsICAgICAgICAgICAgIC8vIFJh bmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg ICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4LCAgICAgICAg ICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBfWTA5KQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVj b2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8v IFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg ICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBf WTBBKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGln bm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8g TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfWTBCKQogICAgICAgICAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA5MDAs ICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDkwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDkxMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWlu aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOTEwLCAgICAgICAgICAgICAvLyBS YW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgICAgICAg ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHhGRTAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweEZFMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweEZGLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZp eGVkIChSZWFkT25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZCODAwMDAsICAg ICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDgw MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBC YXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFk ZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfWTBDKQogICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlV29yZEZpZWxkIChDUlMsIFxfU0IuUENJMC5TQlJHLlJNU0MuX1kwOS5fTUlOLCBHUDAwKQog ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLlNC UkcuUk1TQy5fWTA5Ll9NQVgsIEdQMDEpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5 dGVGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9ZMDkuX0xFTiwgR1AwTCkKICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKFBNQlMsIEdQMDApCiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChQTUJTLCBHUDAxKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUE1M TiwgR1AwTCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFNNQkIpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAo Q1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9ZMEEuX01JTiwgR1AxMCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9Z MEEuX01BWCwgR1AxMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVs ZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9ZMEEuX0xFTiwgR1AxTCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChTTUJCLCBHUDEwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKFNNQkIsIEdQMTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoU01CTCwgR1AxTCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKEdQQlMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVND Ll9ZMEIuX01JTiwgR1AyMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRG aWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9ZMEIuX01BWCwgR1AyMSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5S TVNDLl9ZMEIuX0xFTiwgR1AyTCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChH UEJTLCBHUDIwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEdQQlMsIEdQMjEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoR1BMTiwgR1AyTCkKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9ZMEMuX0JBUywgUk9NQikKICAgICAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuU0JSRy5STVNDLl9Z MEMuX0xFTiwgUk9NTCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFJPTVMsIFJPTUIp CiAgICAgICAgICAgICAgICAgICAgICAgIFN1YnRyYWN0IChaZXJvLCBST01TLCBST01MKQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKENSUykKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChQUzJLKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAzMDMi KSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCAweDBCMDNEMDQxKQogICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoT25lLCAweDBBLCBMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKElPU1QsIExvY2FsMCkpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwRikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg TmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDYwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwNjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAo RGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjQsICAgICAgICAgICAg IC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NCwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsxfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgRGV2aWNlIChQUzJNKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBGMDMiKSkKICAgICAgICAgICAg ICAgICAgICBOYW1lIChfQ0lELCAweDEzMEZEMDQxKQogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoT25lLCAweDBDLCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChBbmQgKElPU1QsIExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQog ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVz b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSVJRTm9GbGFncyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgezEyfQogICAg ICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgU2Nv cGUgKFwpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRmllbGQgKEJJT1Ms IEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyMiksIAogICAgICAgICAgICAgICAg ICAgICAgICBPU1lTLCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAgRkxTSCwgICA4LCAK ICAgICAgICAgICAgICAgICAgICAgICAgSU5TVCwgICA4LCAKICAgICAgICAgICAgICAgICAgICAg ICAgQ0FETCwgICAxNiwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBBREwsICAgMTYsIAogICAg ICAgICAgICAgICAgICAgICAgICBDU1RFLCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAg TlNURSwgICAxNgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBTY29wZSAoXF9UWikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKEtFTFYsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBBbmQgKEFyZzAsIDB4RkYsIExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICAgICAgTXVsdGlwbHkgKExvY2FsMCwgMHgwQSwgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICBBZGQgKExvY2FsMCwgMHgwQUFDLCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgVGhlcm1hbFpvbmUgKFRIUk0pCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9UTVAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChc X1NCLlBDSTAuU0JSRy5FQy5NWUVDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChcX1NCLlBDSTAuU0JSRy5FQy5DVFNEKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKFplcm8sIFxfU0IuUENJMC5TQlJHLkVDLkNUU0QpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoS0VMViAoMHg2RSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuU0JSRy5FQy5DUFVULCBMb2NhbDAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZCAoTG9jYWwwLCAweDAyLCBM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoS0VMViAo TG9jYWwwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChLRUxWICgweDJEKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JULCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKEtFTFYgKDB4NjQpKQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIERldmljZSAoRUMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwOSIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9H UEUsIDB4MDYpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ1RJRCwgWmVybykKICAgICAgICAg ICAgICAgICAgICBOYW1lIChNWUVDLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQ1RT RCwgWmVybykKICAgICAgICAgICAgICAgICAgICBOYW1lIChUSFJGLCBaZXJvKQogICAgICAgICAg ICAgICAgICAgIE5hbWUgKFBDT1UsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf UkVHLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChBcmcxLCBNWUVDKQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVy bywgQ1RTRCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDA2MiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDYyLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29k ZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY2LCAgICAgICAgICAgICAvLyBS YW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjYsICAgICAgICAg ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsICAg ICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAx LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9u IChJTywgU3lzdGVtSU8sIDB4NjIsIDB4MDUpCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKElP LCBCeXRlQWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIERBVDEsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT2Zmc2V0ICgweDA0KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIENNRDEsICAgOAogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKElPLCBCeXRlQWNj LCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA0KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9V VFMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIElOUFMsICAgMQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChJUkRZLCAwLCBTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChM Tm90IChJTlBTKSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoT1JEWSwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoT1VUUykKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoRUMsIEVtYmVkZGVkQ29udHJvbCwgWmVy bywgMHhGRikKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoRUMsIEJ5dGVBY2MsIE5vTG9jaywg UHJlc2VydmUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBT TVBSLCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBTTVNULCAgIDgsIAogICAgICAgICAg ICAgICAgICAgICAgICBTTUFELCAgIDgsIAogICAgICAgICAgICAgICAgICAgICAgICBTTUNNLCAg IDgsIAogICAgICAgICAgICAgICAgICAgICAgICBTTUQwLCAgIDI2NCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIFNNQUEsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDMwKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBPV1MsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIExJRFMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEtCQ1Ms ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDMxKSwgCiAg ICAgICAgICAgICAgICAgICAgICAgIE1CVFMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAg IE1CQ1MsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1CRFMsICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIE1CRlMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1CV1Ms ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1CTFMsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgICAgIE1CQ0wsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1CRkwsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDM4KSwgCiAgICAgICAg ICAgICAgICAgICAgICAgIE1EQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1EQ0gs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1EVkwsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIE1EVkgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1DQUwsICAgOCwg CiAgICAgICAgICAgICAgICAgICAgICAgIE1DQUgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIE1TVEwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1TVEgsICAgOCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIE1DQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1D Q0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1QT0wsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIE1QT0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1GQ0wsICAg OCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1GQ0gsICAgOCwgCiAgICAgICAgICAgICAgICAg ICAgICAgIE1DVUwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1DVUgsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIE1SQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAg IE1SQ0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1WT0wsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIE1WT0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1URUws ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1URUgsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIFJTVjEsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFJTVjIsICAgOCwg CiAgICAgICAgICAgICAgICAgICAgICAgIFNEQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFNEQ0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNEVkwsICAgOCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIFNEVkgsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFND QUwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNDQUgsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgICAgIFNTVEwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNTVEgsICAg OCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNDQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAg ICAgICAgIFNDQ0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNQT0wsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIFNQT0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAg IFNGQ0wsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNGQ0gsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIFNDVUwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNDVUgs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNSQ0wsICAgOCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIFNSQ0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNWT0wsICAgOCwg CiAgICAgICAgICAgICAgICAgICAgICAgIFNWT0gsICAgOCwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFNURUwsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNURUgsICAgOCwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDY4KSwgCiAgICAgICAgICAgICAg ICAgICAgICAgIENQVVQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDcwKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNXQ1QsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDdFKSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAsICAgMywgCiAgICAgICAgICAgICAgICAgICAgICAgIFRIRkcsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDdGKSwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgwKSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIFNZU1QsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgw eEYxKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEdCUUMsICAgOAogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChBUE1QLCBTeXN0ZW1J TywgMHhCMCwgMHgwMikKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoQVBNUCwgQnl0ZUFjYywg Tm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIEFQTUMsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEFQTVMsICAgOAogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChBRFAxKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgIkFD UEkwMDAzIikKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoQkZMRywgT25lKQogICAgICAg ICAgICAgICAgICAgICAgICBOYW1lIChBQ1AsIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfUFNSLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoUE9XUykKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9Q Q0wsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF9TQgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQklGMCwgUGFja2FnZSAoMHgw RCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4MTEzMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MTEzMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9uZSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MzlEMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICAg ICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAg ICAgICAgICAgICAgICAgT25lLCAKICAgICAgICAgICAgICAgICAgICAgICAgIk1TLTF4eHgiLCAK ICAgICAgICAgICAgICAgICAgICAgICAgIjEiLCAKICAgICAgICAgICAgICAgICAgICAgICAgIkxJ T04iLCAKICAgICAgICAgICAgICAgICAgICAgICAgIk1TSSBDb3JwLiIKICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKFNUQVQsIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwNTAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAw LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwM0U4CiAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKEJBVDEpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBBIikpCiAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkKICAgICAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX1BDTCwgUGFja2FnZSAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgX1NCCiAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKE1ZRUMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKE1CVFMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MUYpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9CSUYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChNWUVDKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQQkkgKCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJVkJJICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4OTksIERCRzgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MDNF OCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEJJRjApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX0JTVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE1ZRUMpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VVBCUyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElWQlMgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFNUQVQpCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoSVZCSSwgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKE9uZXMsIEluZGV4IChCSUYwLCBPbmUpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKE9uZXMsIEluZGV4IChCSUYwLCAweDAyKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChPbmVzLCBJbmRleCAoQklGMCwgMHgwNCkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoIldyb25nIiwgSW5kZXggKEJJRjAsIDB4MDkpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCIgIiwgSW5kZXggKEJJRjAsIDB4MEEp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCJXcm9uZyIsIEluZGV4IChCSUYw LCAweDBCKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgiV3JvbmciLCBJbmRl eCAoQklGMCwgMHgwQykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoSVZCUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEluZGV4 IChTVEFULCBaZXJvKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmVzLCBJ bmRleCAoU1RBVCwgT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmVz LCBJbmRleCAoU1RBVCwgMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo MHgyNzEwLCBJbmRleCAoU1RBVCwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoVVBCSSwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KFplcm8sIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBM b2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgTG9jYWwyKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsMykKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChNRENILCBMb2NhbDApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoTURDTCwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2hpZnRMZWZ0IChMb2NhbDAsIDB4MDgsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9yIChMb2NhbDAsIExvY2FsMSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKExvY2FsMCwgSW5kZXggKEJJRjAsIE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoTUZDSCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKE1GQ0wsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0 TGVmdCAoTG9jYWwwLCAweDA4LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBP ciAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChMb2NhbDEsIEluZGV4IChCSUYwLCAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChNRFZILCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoTURWTCwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hpZnRMZWZ0IChM b2NhbDAsIDB4MDgsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChMb2Nh bDAsIExvY2FsMiwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExv Y2FsMiwgSW5kZXggKEJJRjAsIDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKCJcbiIsIEluZGV4IChCSUYwLCAweDBBKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgiTElPTlxuIiwgSW5kZXggKEJJRjAsIDB4MEIpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKENUSUQsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChMRXF1YWwgKExvY2FsMCwgWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCJNUy0xNzFBeFxuIiwgSW5k ZXggKEJJRjAsIDB4MDkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgi TVNJIENvcnAuXG4iLCBJbmRleCAoQklGMCwgMHgwQykpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKCI/TU9E RUxcbiIsIEluZGV4IChCSUYwLCAweDA5KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoIj9DVVNUT01FUlxuIiwgSW5kZXggKEJJRjAsIDB4MEMpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKFVQQlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgTG9jYWwxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIExvY2FsMikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBMb2NhbDMpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoWmVybywgTG9jYWw0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKFplcm8sIExvY2FsNykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChN QlRTLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2Nh bDAsIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKFBPV1MsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIE9uZSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo TUJDUywgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChMb2NhbDEsIE9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChMb2NhbDQsIDB4MDIs IExvY2FsNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPciAoTG9jYWw0LCBPbmUsIExvY2FsNCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1CTFMsIExvY2FsMCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCBPbmUpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPciAoTG9jYWw0LCAweDA0LCBMb2NhbDQpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQT1dTLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCBPbmUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKE1CQ1MsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoTUNVSCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKE1DVUwsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNoaWZ0TGVmdCAoTG9jYWwwLCAweDA4LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPciAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMSwgMHhGRkZG KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lcywgTG9jYWwxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDEsIEluZGV4IChTVEFULCBPbmUpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIElu ZGV4IChTVEFULCBPbmUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNQ1VILCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNQ1VMLCBMb2NhbDEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoTG9jYWwwLCAweDA4LCBMb2NhbDAp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChMb2NhbDAsIExvY2FsMSwg TG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYT3IgKExvY2FsMSwg MHhGRkZGLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKExvY2FsMSwgWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmVzLCBM b2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDEsIEluZGV4IChTVEFULCBPbmUp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKE1SQ0gsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoTVJDTCwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNoaWZ0TGVmdCAoTG9jYWwwLCAweDA4LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT3IgKExvY2FsMCwgTG9jYWwyLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMiwgSW5kZXggKFNUQVQsIDB4MDIpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChNVk9ILCBMb2NhbDApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1WT0wsIExvY2FsMykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTaGlmdExlZnQgKExvY2FsMCwgMHgwOCwgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChMb2NhbDAsIExvY2FsMywgTG9jYWwzKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDMsIEluZGV4IChTVEFULCAw eDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWw0LCBJbmRl eCAoU1RBVCwgWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4 NjQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSVZCUyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBEZXZpY2UgKExJRDApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBEIikpCiAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0xJRCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE1ZRUMpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKExJRFMsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT25lLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoTVBQQywgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChUSFJGLCBM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwgT25lKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChTdWJ0cmFjdCAoUENPVSwgT25lKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQT1dTLCBMb2NhbDApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIE9uZSkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDQs IF5eXlNNQlMuSU5ESSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9j YWwwLCBeXl5TTUJTLklORFgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDA0LCBeXl5TTUJTLklOREkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMCwgXl5eU01CUy5JTkRYKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoU3VidHJhY3QgKFBDT1UsIE9uZSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1E4MCwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDgwLCBEQkc4KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTWV0aG9kIChfUTgxLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODEsIERCRzgpCiAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIFRIRkcpCiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChPbmUsIFRIUkYpCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5Q MDAxLCAweDgwKQogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfUFIuUDAwMiwgMHg4 MCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1E4 MiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDgyLCBEQkc4KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoT25lLCBUSEZHKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgVEhSRikK ICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1BSLlAwMDEsIDB4ODApCiAgICAgICAg ICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5QMDAyLCAweDgwKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTgzLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 ODMsIERCRzgpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBMb2NhbDApCiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQT1dTLCBMb2NhbDApCiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwgT25lKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgXkFEUDEuQUNQKQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KFplcm8sIF5BRFAxLkFDUCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgTm90aWZ5IChBRFAxLCAweDgwKQogICAgICAgICAgICAgICAgICAgICAgICBO b3RpZnkgKFxfUFIuUDAwMSwgMHg4MCkKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChc X1BSLlAwMDIsIDB4ODApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9RODQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg4NCwgREJHOCkKICAgICAgICAgICAgICAg ICAgICAgICAgTm90aWZ5IChMSUQwLCAweDgwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfUTg1LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODUsIERCRzgpCiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIENUU0QpCiAgICAgICAgICAgICAgICAg ICAgICAgIE5vdGlmeSAoXF9UWi5USFJNLCAweDgwKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTg2LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODYsIERCRzgp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RODcs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHg4NywgREJHOCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KFplcm8sIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1CVFMsIExvY2Fs MCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCBPbmUpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo T25lLCBeQURQMS5CRkxHKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChCQVQx LCAweDgwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKFplcm8sIF5BRFAxLkJGTEcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBO b3RpZnkgKEFEUDEsIDB4ODApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgx OSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoQkFUMSwgMHg4MSkKICAgICAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChBRFAx LCAweDgwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfUTg4LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4ODgsIERCRzgpCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RODksIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg4OSwgREJH OCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1E4 QSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDhBLCBEQkc4KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoT25lLCBDVFNEKQogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfVFouVEhSTSwg MHg4MCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X1E4QiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDhCLCBEQkc4KQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUThDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4OEMsIERCRzgp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ROTAs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHg5MCwgREJHOCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1FCNCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEI0LCBBUE1DKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQVBNUywgTG9jYWwxKQogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoTG9jYWwxLCBEQkc4KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoQW5kIChMb2NhbDEsIE9uZSksIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKExvY2FsMCwgXl5eUENFMi5WR0EuTENELl9ER1MpCiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChTaGlmdFJpZ2h0IChMb2NhbDEsIE9uZSksIExvY2FsMSkKICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKEFuZCAoTG9jYWwxLCBPbmUpLCBMb2NhbDApCiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlIChMb2NhbDAsIF5eXlBDRTIuVkdBLkNSVC5fREdTKQogICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoU2hpZnRSaWdodCAoTG9jYWwxLCBPbmUpLCBMb2NhbDEpCiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChBbmQgKExvY2FsMSwgT25lKSwgTG9jYWwwKQog ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBeXl5QQ0UyLlZHQS5UVi5fREdT KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoU2hpZnRSaWdodCAoTG9jYWwxLCBPbmUp LCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChBbmQgKExvY2FsMSwgT25l KSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBeXl5QQ0Uy LlZHQS5ERlAxLl9ER1MpCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXl5eUENFMi5W R0EsIDB4ODApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9RQjUsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoMHhCNSwgREJHOCkKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1FCNiwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEI2LCBE Qkc4KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf UUI3LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKDB4QjcsIERCRzgpCiAgICAgICAgICAgICAgICAgICAgICAgIFdo aWxlIChMTm90IChJUkRZICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MTEsIENNRDEpCiAgICAgICAgICAgICAg ICAgICAgICAgIFdoaWxlIChMTm90IChJUkRZICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODIsIERBVDEpCiAg ICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXl5eUENFMi5WR0EuTENELCAweDg3KQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUUI4LCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4QjgsIERCRzgpCiAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlIChMTm90 IChJUkRZICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4MTEsIENNRDEpCiAgICAgICAgICAgICAgICAgICAgICAg IFdoaWxlIChMTm90IChJUkRZICgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODEsIERBVDEpCiAgICAgICAgICAg ICAgICAgICAgICAgIE5vdGlmeSAoXl5eUENFMi5WR0EuTENELCAweDg2KQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUUI5LCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4QjksIERCRzgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFAwUEMpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxNDAwMDQpCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChHUFJXICgweDA0LCAweDA0KSkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKFBJQ00pCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMEMpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBSMEMpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoQUM5NykKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDE0MDAwNSkKICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKEdQUlcgKDB4MEMsIDB4MDQpKQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKE1DOTcpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxNDAwMDYpCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChHUFJXICgweDBDLCAweDA0KSkKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChVU0IxKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBOYW1lIChfQURSLCAweDAwMTMwMDAwKQogICAgICAgICAgICAgICAgTWV0aG9kIChf UzNELCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmIChMT3IgKExFcXVhbCAoT1NGTCAoKSwgT25lKSwgTEVxdWFsIChPU0ZMICgpLCAweDAy KSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MDIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMykK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHgwQiwgMHgwNCkpCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoVVNCMikKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDEzMDAwMSkKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1MzRCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJZiAoTE9yIChMRXF1YWwgKE9TRkwgKCksIE9uZSksIExFcXVhbCAoT1NGTCAo KSwgMHgwMikpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MDMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4MEIsIDB4MDQpKQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFVTQjMpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxMzAwMDIpCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9TM0QsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgSWYgKExPciAoTEVxdWFsIChPU0ZMICgpLCBPbmUpLCBMRXF1YWwg KE9TRkwgKCksIDB4MDIpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAzKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChHUFJXICgweDBCLCAweDA0KSkKICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChVU0I0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMTMwMDAzKQogICAg ICAgICAgICAgICAgTWV0aG9kIChfUzNELCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmIChMT3IgKExFcXVhbCAoT1NGTCAoKSwgT25lKSwg TEVxdWFsIChPU0ZMICgpLCAweDAyKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwMykKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoR1BSVyAoMHgwQiwgMHgw NCkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAo VVNCNSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDEzMDAw NCkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1MzRCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoTE9yIChMRXF1YWwgKE9TRkwgKCks IE9uZSksIExFcXVhbCAoT1NGTCAoKSwgMHgwMikpKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEdQUlcgKDB4 MEIsIDB4MDQpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBE ZXZpY2UgKEVVU0IpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4 MDAxMzAwMDUpCiAgICAgICAgICAgICAgICBNZXRob2QgKF9TM0QsIDAsIE5vdFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKExPciAoTEVxdWFsIChP U0ZMICgpLCBPbmUpLCBMRXF1YWwgKE9TRkwgKCksIDB4MDIpKSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAzKQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChH UFJXICgweDBCLCAweDA0KSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAg ICAgICAgRGV2aWNlIChTQVRBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChf QURSLCAweDAwMTIwMDAwKQogICAgICAgICAgICAgICAgTWV0aG9kIChfSU5JLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFxfR1BFLl9MMUYg KCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBOYW1lIChTUFRNLCBCdWZmZXIg KDB4MTQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAg ICAweDc4LCAweDAwLCAweDAwLCAweDAwLCAweDBGLCAweDAwLCAweDAwLCAweDAwLCAKICAgICAg ICAgICAgICAgICAgICAvKiAwMDA4ICovICAgIDB4NzgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MEYs IDB4MDAsIDB4MDAsIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gICAgMHgx RiwgMHgwMCwgMHgwMCwgMHgwMAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIERl dmljZSAoUFJJRCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChf QURSLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dUTSwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoU1BUTSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUTSwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBOYW1lIChQUklTLCBaZXJvKQogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKE9TRkwgKCks IDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgzMiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hp bGUgKExBbmQgKExFcXVhbCAoUE1CWSwgT25lKSwgTG9jYWwwKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHhGQSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmIChfT1NJICgiV2luZG93cyAyMDA2IikpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4MzIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTEFu ZCAoTEVxdWFsIChQTUJZLCBPbmUpLCBMb2NhbDApKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4RkEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKFplcm8sIFBSSVMpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgUFJJUykKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTQywgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoUFJJUykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIERldmlj ZSAoUF9EMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5h bWUgKF9BRFIsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKE5vdCAoTEVxdWFsIChQTVMxLCBaZXJvKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDBGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTmFt ZSAoUzEyUCwgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBO b3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHgzMiwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgV2hpbGUgKExBbmQgKExFcXVhbCAoUE1CWSwgT25lKSwgTG9jYWwwKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAo MHhGQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoWmVybywgUzEyUCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywg UzEyUCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfUFNDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFMxMlApCiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIERl dmljZSAoUF9EMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IE5hbWUgKF9BRFIsIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAw LCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoTm90IChMRXF1YWwgKFBTUzEsIFplcm8pKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBO YW1lIChTMTJQLCBaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzAsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDMyLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoTEFuZCAoTEVxdWFsIChQU0JZLCBPbmUpLCBMb2NhbDApKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVw ICgweEZBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWww KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChaZXJvLCBTMTJQKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAz LCBTMTJQKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9QU0MsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUzEyUCkKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBEZXZpY2UgKFNFQ0QpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0FEUiwgT25lKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dU TSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoU1BUTSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1NUTSwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBOYW1lIChT RUNTLCBaZXJvKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKE9TRkwgKCksIDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgzMiwgTG9jYWwwKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgV2hpbGUgKExBbmQgKExFcXVhbCAoU01CWSwgT25lKSwgTG9jYWwwKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoMHhGQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNyZW1lbnQg KExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChfT1NJICgiV2luZG93cyAyMDA2 IikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKDB4MzIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoTEFuZCAoTEVxdWFsIChTTUJZLCBPbmUpLCBMb2NhbDApKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKDB4RkEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY3Jl bWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFNFQ1MpCiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgU0VD UykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BT QywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoU0VDUykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIERldmljZSAoU19EMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9BRFIsIFplcm8pCiAgICAgICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE5vdCAoTEVxdWFsIChTTVMxLCBaZXJvKSkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgTmFtZSAoUzEyUCwgWmVybykKICAgICAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgzMiwgTG9jYWwwKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgV2hpbGUgKExBbmQgKExFcXVhbCAoU01CWSwgT25lKSwgTG9jYWww KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTbGVlcCAoMHhGQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNy ZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgUzEyUCkKICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHgwMywgUzEyUCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfUFNDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFMxMlAp CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIERldmljZSAoU19EMSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTm90IChMRXF1YWwgKFNTUzEsIFplcm8p KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBOYW1lIChTMTJQLCBaZXJvKQogICAgICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDMyLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTEFuZCAoTEVxdWFsIChTU0JZLCBPbmUpLCBMb2Nh bDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNsZWVwICgweEZBKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERl Y3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBTMTJQKQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDAzLCBTMTJQKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgICAgICBNZXRob2QgKF9QU0MsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUzEy UCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBTY29wZSAoXF9HUEUpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfTDFGLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFBSQzApCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChO b3QgKExFcXVhbCAoUE1TMSwgWmVybykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDFFKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9T Qi5QQ0kwLlNBVEEuUFJJRC5QX0QwLCBPbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoT25lLCBQUkMwKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoUFJDMSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKE5vdCAoTEVxdWFsIChTTVMxLCBaZXJvKSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xl ZXAgKDB4MUUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuU0FUQS5TRUNELlNfRDAsIE9uZSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPbmUsIFBSQzEpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChQUkMyKQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTm90IChMRXF1YWwg KFBTUzEsIFplcm8pKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgxRSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5TQVRB LlBSSUQuUF9EMSwgT25lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwg UFJDMikKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKFBSQzMpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChOb3QgKExFcXVhbCAoU1NTMSwgWmVybykpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDFFKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5vdGlmeSAoXF9TQi5QQ0kwLlNBVEEuU0VDRC5TX0QxLCBPbmUpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoT25lLCBQUkMzKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAg ICAgICAgICBEZXZpY2UgKFNNQlMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUg KF9BRFIsIDB4MDAxNDAwMDApCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFNNQlMs IFBDSV9Db25maWcsIFplcm8sIDB4MDEwMCkKICAgICAgICAgICAgICAgIEZpZWxkIChTTUJTLCBB bnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4MDgpLCAKICAgICAgICAgICAgICAgICAgICBSRVYsICAg IDgsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEY4KSwgCiAgICAgICAg ICAgICAgICAgICAgSU5ESSwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4RkYpLCAKICAgICAgICAgICAgICAgICAgICBJTkRYLCAgIDEKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgU2NvcGUgKFxfR1BFKQogICAgICAg IHsKICAgICAgICAgICAgTWV0aG9kIChfTDE4LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5QQ0UyLCAweDAyKQogICAgICAg ICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuUENFMywgMHgwMikKICAgICAgICAgICAgICAgIE5v dGlmeSAoXF9TQi5QQ0kwLlBDRTQsIDB4MDIpCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0Iu UENJMC5QQ0U1LCAweDAyKQogICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuUENFNiwg MHgwMikKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlBDRTcsIDB4MDIpCiAgICAg ICAgICAgICAgICBOb3RpZnkgKFxfU0IuUFdSQiwgMHgwMikKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgTWV0aG9kIChfTDFCLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5TQkFaLCAweDAyKQogICAgICAgICAgICAgICAg Tm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhv ZCAoX0wwNCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg Tm90aWZ5IChcX1NCLlBDSTAuUDBQQywgMHgwMikKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9T Qi5QV1JCLCAweDAyKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9MMEMsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9T Qi5QQ0kwLkFDOTcsIDB4MDIpCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5NQzk3 LCAweDAyKQogICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpCiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0wwQiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuVVNCMSwgMHgwMikKICAg ICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlVTQjIsIDB4MDIpCiAgICAgICAgICAgICAg ICBOb3RpZnkgKFxfU0IuUENJMC5VU0IzLCAweDAyKQogICAgICAgICAgICAgICAgTm90aWZ5IChc X1NCLlBDSTAuVVNCNCwgMHgwMikKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlVT QjUsIDB4MDIpCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5FVVNCLCAweDAyKQog ICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpCiAgICAgICAgICAgIH0KICAg ICAgICB9CgogICAgICAgIERldmljZSAoUFdSQikKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUg KF9ISUQsIEVpc2FJZCAoIlBOUDBDMEMiKSkKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHhBQSkK ICAgICAgICAgICAgTmFtZSAoX1NUQSwgMHgwQikKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUg KF9TQikKICAgIHsKICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBJUlEsIFN5c3RlbUlPLCAweDBD MDAsIDB4MDIpCiAgICAgICAgRmllbGQgKFBJUlEsIEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUp CiAgICAgICAgewogICAgICAgICAgICBQSURYLCAgIDgsIAogICAgICAgICAgICBQREFULCAgIDgK ICAgICAgICB9CgogICAgICAgIEluZGV4RmllbGQgKFBJRFgsIFBEQVQsIEJ5dGVBY2MsIE5vTG9j aywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBQSVJBLCAgIDgsIAogICAgICAgICAg ICBQSVJCLCAgIDgsIAogICAgICAgICAgICBQSVJDLCAgIDgsIAogICAgICAgICAgICBQSVJELCAg IDgsIAogICAgICAgICAgICBQSVJTLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHgwOSksIAogICAgICAgICAgICBQSVJFLCAgIDgsIAogICAgICAgICAgICBQSVJGLCAgIDgsIAog ICAgICAgICAgICBQSVJHLCAgIDgsIAogICAgICAgICAgICBQSVJILCAgIDgKICAgICAgICB9Cgog ICAgICAgIE1ldGhvZCAoSVJRQywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAg ICAgIFN0b3JlIChaZXJvLCBQSVJBKQogICAgICAgICAgICBTdG9yZSAoWmVybywgUElSQikKICAg ICAgICAgICAgU3RvcmUgKFplcm8sIFBJUkMpCiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSVJE KQogICAgICAgICAgICBTdG9yZSAoWmVybywgUElSRSkKICAgICAgICAgICAgU3RvcmUgKFplcm8s IFBJUkYpCiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSVJHKQogICAgICAgICAgICBTdG9yZSAo WmVybywgUElSSCkKICAgICAgICB9CgogICAgICAgIE5hbWUgKEJVRkEsIFJlc291cmNlVGVtcGxh dGUgKCkKICAgICAgICB7CiAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVk LCApCiAgICAgICAgICAgICAgICB7MTV9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChJUFJBLCBS ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgewogICAgICAgICAgICBJUlEgKExldmVsLCBBY3Rp dmVMb3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgezUsMTAsMTF9CiAgICAgICAgfSkKICAg ICAgICBOYW1lIChJUFJCLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgewogICAgICAgICAg ICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgezUsMTAs MTF9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChJUFJDLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAg ICAgICAgewogICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQogICAg ICAgICAgICAgICAgezUsMTAsMTF9CiAgICAgICAgfSkKICAgICAgICBOYW1lIChJUFJELCBSZXNv dXJjZVRlbXBsYXRlICgpCiAgICAgICAgewogICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVM b3csIFNoYXJlZCwgKQogICAgICAgICAgICAgICAgezUsMTAsMTF9CiAgICAgICAgfSkKICAgICAg ICBEZXZpY2UgKExOS0EpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQg KCJQTlAwQzBGIikpCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIE9uZSkKICAgICAgICAgICAgTWV0 aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBJZiAoUElSQSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoUFJTQSkKICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgUElSQSkKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRkEsIE9uZSwgSVJRWCkKICAgICAg ICAgICAgICAgIFNoaWZ0TGVmdCAoT25lLCBQSVJBLCBJUlFYKQogICAgICAgICAgICAgICAgUmV0 dXJuIChCVUZBKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVs ZCAoQXJnMCwgT25lLCBJUkEpCiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSQSwg TG9jYWwwKQogICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAg ICBTdG9yZSAoTG9jYWwwLCBQSVJBKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBE ZXZpY2UgKExOS0IpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQ TlAwQzBGIikpCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDIpCiAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKFBJUkIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDBCKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBSU0IpCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFBJUkIpCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUZBLCBPbmUsIElSUVgpCiAgICAgICAg ICAgICAgICBTaGlmdExlZnQgKE9uZSwgUElSQiwgSVJRWCkKICAgICAgICAgICAgICAgIFJldHVy biAoQlVGQSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQg KEFyZzAsIE9uZSwgSVJBKQogICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChJUkEsIExv Y2FsMCkKICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAg U3RvcmUgKExvY2FsMCwgUElSQikKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2 aWNlIChMTktDKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5Q MEMwRiIpKQogICAgICAgICAgICBOYW1lIChfVUlELCAweDAzKQogICAgICAgICAgICBNZXRob2Qg KF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElm IChQSVJDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw QikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BSUywgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChQUlNDKQogICAgICAgICAgICB9 CgogICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBQSVJDKQogICAgICAgICAgICB9CgogICAg ICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGQSwgT25lLCBJUlFYKQogICAgICAgICAg ICAgICAgU2hpZnRMZWZ0IChPbmUsIFBJUkMsIElSUVgpCiAgICAgICAgICAgICAgICBSZXR1cm4g KEJVRkEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChB cmcwLCBPbmUsIElSQSkKICAgICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoSVJBLCBMb2Nh bDApCiAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgIFN0 b3JlIChMb2NhbDAsIFBJUkMpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmlj ZSAoTE5LRCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBD MEYiKSkKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNCkKICAgICAgICAgICAgTWV0aG9kIChf U1RBLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAo UElSRCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIp CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAgfQogICAg ICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoUFJTRCkKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgUElSRCkKICAgICAgICAgICAgfQoKICAgICAg ICAgICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRkEsIE9uZSwgSVJRWCkKICAgICAgICAgICAg ICAgIFNoaWZ0TGVmdCAoT25lLCBQSVJELCBJUlFYKQogICAgICAgICAgICAgICAgUmV0dXJuIChC VUZBKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJn MCwgT25lLCBJUkEpCiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSQSwgTG9jYWww KQogICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICBTdG9y ZSAoTG9jYWwwLCBQSVJEKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2Ug KExOS0UpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBG IikpCiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDUpCiAgICAgICAgICAgIE1ldGhvZCAoX1NU QSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFBJ UkUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBSU0UpCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIFBJUkUpCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUZBLCBPbmUsIElSUVgpCiAgICAgICAgICAgICAg ICBTaGlmdExlZnQgKE9uZSwgUElSRSwgSVJRWCkKICAgICAgICAgICAgICAgIFJldHVybiAoQlVG QSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAs IE9uZSwgSVJBKQogICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChQSVJFLCBMb2NhbDAp CiAgICAgICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgIFN0b3Jl IChMb2NhbDAsIFBJUkUpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIERldmljZSAo TE5LRikKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYi KSkKICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMikKICAgICAgICAgICAgTWV0aG9kIChfU1RB LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoUElS RikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpCiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoUFJTRikKICAgICAgICAgICAgfQoKICAg ICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBTdG9yZSAoWmVybywgUElSRikKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgTWV0aG9kIChfQ1JTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEJVRkEsIE9uZSwgSVJRWCkKICAgICAgICAgICAgICAg IFNoaWZ0TGVmdCAoT25lLCBQSVJGLCBJUlFYKQogICAgICAgICAgICAgICAgUmV0dXJuIChCVUZB KQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwg T25lLCBJUkEpCiAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSQSwgTG9jYWwwKQog ICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICBTdG9yZSAo TG9jYWwwLCBQSVJGKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBEZXZpY2UgKExO S0cpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikp CiAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDMpCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFBJUkcp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJTLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBSU0cpCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE1ldGhvZCAoX0RJUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgU3RvcmUgKFplcm8sIFBJUkcpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgQ3JlYXRlV29yZEZpZWxkIChCVUZBLCBPbmUsIElSUVgpCiAgICAgICAgICAgICAgICBT aGlmdExlZnQgKE9uZSwgUElSRywgSVJRWCkKICAgICAgICAgICAgICAgIFJldHVybiAoQlVGQSkK ICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIE9u ZSwgSVJBKQogICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChJUkEsIExvY2FsMCkKICAg ICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgU3RvcmUgKExv Y2FsMCwgUElSRykKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgRGV2aWNlIChMTktI KQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpKQog ICAgICAgICAgICBOYW1lIChfVUlELCAweDA0KQogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChQSVJIKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwQikKICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1BSUywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChQUlNIKQogICAgICAgICAgICB9CgogICAgICAg ICAgICBNZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIFN0b3JlIChaZXJvLCBQSVJIKQogICAgICAgICAgICB9CgogICAgICAgICAgICBN ZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIENyZWF0ZVdvcmRGaWVsZCAoQlVGQSwgT25lLCBJUlFYKQogICAgICAgICAgICAgICAgU2hp ZnRMZWZ0IChPbmUsIFBJUkgsIElSUVgpCiAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRkEpCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCBPbmUs IElSQSkKICAgICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoSVJBLCBMb2NhbDApCiAgICAg ICAgICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgIFN0b3JlIChMb2Nh bDAsIFBJUkgpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQikK ICAgIHsKICAgICAgICBOYW1lIChYQ1BELCBaZXJvKQogICAgICAgIE5hbWUgKFhOUFQsIE9uZSkK ICAgICAgICBOYW1lIChYQ0FQLCAweDAyKQogICAgICAgIE5hbWUgKFhEQ1AsIDB4MDQpCiAgICAg ICAgTmFtZSAoWERDVCwgMHgwOCkKICAgICAgICBOYW1lIChYRFNULCAweDBBKQogICAgICAgIE5h bWUgKFhMQ1AsIDB4MEMpCiAgICAgICAgTmFtZSAoWExDVCwgMHgxMCkKICAgICAgICBOYW1lIChY TFNULCAweDEyKQogICAgICAgIE5hbWUgKFhTQ1AsIDB4MTQpCiAgICAgICAgTmFtZSAoWFNDVCwg MHgxOCkKICAgICAgICBOYW1lIChYU1NULCAweDFBKQogICAgICAgIE5hbWUgKFhSQ1QsIDB4MUMp CiAgICAgICAgTXV0ZXggKE1VVEUsIDB4MDApCiAgICAgICAgTWV0aG9kIChSQlBFLCAxLCBOb3RT ZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQWNxdWlyZSAoTVVURSwgMHgwM0U4KQog ICAgICAgICAgICBBZGQgKEFyZzAsIFBDSUIsIExvY2FsMCkKICAgICAgICAgICAgT3BlcmF0aW9u UmVnaW9uIChQQ0ZHLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgT25lKQogICAgICAgICAgICBGaWVs ZCAoUENGRywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgWENGRywgICA4CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJlbGVhc2UgKE1V VEUpCiAgICAgICAgICAgIFJldHVybiAoWENGRykKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAo UldQRSwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIEFjcXVpcmUgKE1V VEUsIDB4MDNFOCkKICAgICAgICAgICAgQW5kIChBcmcwLCAweEZGRkZGRkZFLCBBcmcwKQogICAg ICAgICAgICBBZGQgKEFyZzAsIFBDSUIsIExvY2FsMCkKICAgICAgICAgICAgT3BlcmF0aW9uUmVn aW9uIChQQ0ZHLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgwMikKICAgICAgICAgICAgRmllbGQg KFBDRkcsIFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFhDRkcsICAgMTYKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmVsZWFzZSAoTVVU RSkKICAgICAgICAgICAgUmV0dXJuIChYQ0ZHKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChS RFBFLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQWNxdWlyZSAoTVVU RSwgMHgwM0U4KQogICAgICAgICAgICBBbmQgKEFyZzAsIDB4RkZGRkZGRkMsIEFyZzApCiAgICAg ICAgICAgIEFkZCAoQXJnMCwgUENJQiwgTG9jYWwwKQogICAgICAgICAgICBPcGVyYXRpb25SZWdp b24gKFBDRkcsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDA0KQogICAgICAgICAgICBGaWVsZCAo UENGRywgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIFhDRkcsICAgMzIKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmVsZWFzZSAoTVVU RSkKICAgICAgICAgICAgUmV0dXJuIChYQ0ZHKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChX QlBFLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQWNxdWlyZSAoTVVU RSwgMHgwRkZGKQogICAgICAgICAgICBBZGQgKEFyZzAsIFBDSUIsIExvY2FsMCkKICAgICAgICAg ICAgT3BlcmF0aW9uUmVnaW9uIChQQ0ZHLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgT25lKQogICAg ICAgICAgICBGaWVsZCAoUENGRywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgWENGRywgICA4CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg IFN0b3JlIChBcmcxLCBYQ0ZHKQogICAgICAgICAgICBSZWxlYXNlIChNVVRFKQogICAgICAgIH0K CiAgICAgICAgTWV0aG9kIChXV1BFLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAg ICAgICAgQWNxdWlyZSAoTVVURSwgMHgwM0U4KQogICAgICAgICAgICBBbmQgKEFyZzAsIDB4RkZG RkZGRkUsIEFyZzApCiAgICAgICAgICAgIEFkZCAoQXJnMCwgUENJQiwgTG9jYWwwKQogICAgICAg ICAgICBPcGVyYXRpb25SZWdpb24gKFBDRkcsIFN5c3RlbU1lbW9yeSwgTG9jYWwwLCAweDAyKQog ICAgICAgICAgICBGaWVsZCAoUENGRywgV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgWENGRywgICAxNgogICAgICAgICAgICB9CgogICAgICAg ICAgICBTdG9yZSAoQXJnMSwgWENGRykKICAgICAgICAgICAgUmVsZWFzZSAoTVVURSkKICAgICAg ICB9CgogICAgICAgIE1ldGhvZCAoV0RQRSwgMiwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAg ICAgICAgICAgIEFjcXVpcmUgKE1VVEUsIDB4MDNFOCkKICAgICAgICAgICAgQW5kIChBcmcwLCAw eEZGRkZGRkZDLCBBcmcwKQogICAgICAgICAgICBBZGQgKEFyZzAsIFBDSUIsIExvY2FsMCkKICAg ICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQQ0ZHLCBTeXN0ZW1NZW1vcnksIExvY2FsMCwgMHgw NCkKICAgICAgICAgICAgRmllbGQgKFBDRkcsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBYQ0ZHLCAgIDMyCiAgICAgICAgICAgIH0KCiAg ICAgICAgICAgIFN0b3JlIChBcmcxLCBYQ0ZHKQogICAgICAgICAgICBSZWxlYXNlIChNVVRFKQog ICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChSV0RQLCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAg IHsKICAgICAgICAgICAgQWNxdWlyZSAoTVVURSwgMHgwM0U4KQogICAgICAgICAgICBBbmQgKEFy ZzAsIDB4RkZGRkZGRkMsIEFyZzApCiAgICAgICAgICAgIEFkZCAoQXJnMCwgUENJQiwgTG9jYWww KQogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBDRkcsIFN5c3RlbU1lbW9yeSwgTG9jYWww LCAweDA0KQogICAgICAgICAgICBGaWVsZCAoUENGRywgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2Vy dmUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFhDRkcsICAgMzIKICAgICAgICAgICAg fQoKICAgICAgICAgICAgQW5kIChYQ0ZHLCBBcmcyLCBMb2NhbDEpCiAgICAgICAgICAgIE9yIChM b2NhbDEsIEFyZzEsIFhDRkcpCiAgICAgICAgICAgIFJlbGVhc2UgKE1VVEUpCiAgICAgICAgfQoK ICAgICAgICBNZXRob2QgKFJQTUUsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAg ICAgICBBZGQgKEFyZzAsIDB4ODQsIExvY2FsMCkKICAgICAgICAgICAgU3RvcmUgKFJEUEUgKExv Y2FsMCksIExvY2FsMSkKICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwxLCBPbmVzKSkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICB9CiAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKExBbmQgKExv Y2FsMSwgMHgwMDAxMDAwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg V0RQRSAoTG9jYWwwLCBBbmQgKExvY2FsMSwgMHgwMDAxMDAwMCkpCiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChPbmUpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIElmIChPU0NGKQogICAg ewogICAgICAgIFNjb3BlIChfU0IuUENJMCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKFNV UFAsIFplcm8pCiAgICAgICAgICAgIE5hbWUgKENUUkwsIFplcm8pCiAgICAgICAgICAgIE1ldGhv ZCAoX09TQywgNCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKExFcXVhbCAoQXJnMCwgQnVmZmVyICgweDEwKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAgIDB4NUIsIDB4NEQsIDB4 REIsIDB4MzMsIDB4RjcsIDB4MUYsIDB4MUMsIDB4NDAsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogMDAwOCAqLyAgICAweDk2LCAweDU3LCAweDc0LCAweDQxLCAweEMwLCAweDNELCAw eEQ3LCAweDY2CiAgICAgICAgICAgICAgICAgICAgICAgIH0pKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzMsIFplcm8sIENEVzEpCiAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMywgMHgwNCwgQ0RXMikKICAg ICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChBcmczLCAweDA4LCBDRFczKQogICAg ICAgICAgICAgICAgICAgIFN0b3JlIChDRFcyLCBTVVBQKQogICAgICAgICAgICAgICAgICAgIFN0 b3JlIChDRFczLCBDVFJMKQogICAgICAgICAgICAgICAgICAgIElmIChMTm90RXF1YWwgKEFuZCAo U1VQUCwgMHgxNiksIDB4MTYpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgQW5kIChDVFJMLCAweDFFKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgQW5kIChDVFJMLCAweDFELCBDVFJMKQogICAgICAgICAgICAgICAgICAgIElm IChOb3QgKEFuZCAoQ0RXMSwgT25lKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoQW5kIChDVFJMLCBPbmUpKSB7fQogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoQW5kIChDVFJMLCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9uZSwgRVBOTSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChPbmUsIERQUEYpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKENUUkwsIDB4MTApKSB7fQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKExOb3RFcXVhbCAoQXJnMSwg T25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9yIChD RFcxLCAweDA4LCBDRFcxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKExOb3RFcXVhbCAoQ0RXMywgQ1RSTCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBPciAoQ0RXMSwgMHgxMCwgQ0RXMSkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFN0b3JlIChDVFJMLCBDRFczKQogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQXJnMykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPciAoQ0RXMSwgMHgw NCwgQ0RXMSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFyZzMpCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKF9TQikKICAgIHsK ICAgICAgICBTY29wZSAoUENJMCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKENSUywgUmVz b3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBXb3JkQnVzTnVt YmVyIChSZXNvdXJjZVByb2R1Y2VyLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIFBvc0RlY29kZSwKICAg ICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAg ICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAg ICAgICAgICAgICAgICAgMHgwMEZGLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQK ICAgICAgICAgICAgICAgICAgICAweDAxMDAsICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAgICAgICwsICkKICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAg ICAgICAgICAgICAweDBDRjgsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg ICAgICAgICAgICAweDBDRjgsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAg ICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgV29yZElPIChSZXNvdXJjZVByb2R1Y2VyLCBNaW5GaXhlZCwgTWF4 Rml4ZWQsIFBvc0RlY29kZSwgRW50aXJlUmFuZ2UsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAw LCAgICAgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwMCwg ICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MENGNywg ICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMCwg ICAgICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw Q0Y4LCAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAsLCAsIFR5cGVT dGF0aWMpCiAgICAgICAgICAgICAgICBXb3JkSU8gKFJlc291cmNlUHJvZHVjZXIsIE1pbkZpeGVk LCBNYXhGaXhlZCwgUG9zRGVjb2RlLCBFbnRpcmVSYW5nZSwKICAgICAgICAgICAgICAgICAgICAw eDAwMDAsICAgICAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgw RDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHhG RkZGLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgw MDAwLCAgICAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAg ICAweEYzMDAsICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICwsICwg VHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2Vy LCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAg ICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAg ICAgICAgICAgICAgICAgIDB4MDAwQTAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg ICAgICAgICAgICAgICAgIDB4MDAwQkZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAg ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0 CiAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAg ICAgICAgICAgICAgICAsLCAsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAg ICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZp eGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAg MHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4 MDAwQzAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4 MDAwREZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4 MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAg ICAgMHgwMDAyMDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAsLCBf WTBELCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29y ZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQs IENhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAg ICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAg ICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAg ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAg ICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAs ICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgLCwgX1kwRSwgQWRkcmVzc1Jh bmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICB9KQogICAgICAgICAgICBDcmVhdGVE V29yZEZpZWxkIChDUlMsIFxfU0IuUENJMC5fWTBELl9NSU4sIE1JTjUpCiAgICAgICAgICAgIENy ZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLl9ZMEQuX01BWCwgTUFYNSkKICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuX1kwRC5fTEVOLCBMRU41KQogICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChDUlMsIFxfU0IuUENJMC5fWTBFLl9NSU4sIE1JTjYp CiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKENSUywgXF9TQi5QQ0kwLl9ZMEUuX01BWCwg TUFYNikKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQ1JTLCBcX1NCLlBDSTAuX1kwRS5f TEVOLCBMRU42KQogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlIChNRzFMLCBMb2NhbDApCiAgICAgICAg ICAgICAgICBJZiAoTG9jYWwwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFN0b3JlIChNRzFCLCBNSU41KQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChNRzFMLCBMRU41 KQogICAgICAgICAgICAgICAgICAgIEFkZCAoTUlONSwgRGVjcmVtZW50IChMb2NhbDApLCBNQVg1 KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFN0b3JlIChNRzJCLCBNSU42KQog ICAgICAgICAgICAgICAgU3RvcmUgKE1HMkwsIExFTjYpCiAgICAgICAgICAgICAgICBTdG9yZSAo TUcyTCwgTG9jYWwwKQogICAgICAgICAgICAgICAgQWRkIChNSU42LCBEZWNyZW1lbnQgKExvY2Fs MCksIE1BWDYpCiAgICAgICAgICAgICAgICBSZXR1cm4gKENSUykKICAgICAgICAgICAgfQogICAg ICAgIH0KICAgIH0KCiAgICBOYW1lIChXT1RCLCBaZXJvKQogICAgTmFtZSAoV1NTQiwgWmVybykK ICAgIE5hbWUgKFdBWEIsIFplcm8pCiAgICBNZXRob2QgKF9QVFMsIDEsIE5vdFNlcmlhbGl6ZWQp CiAgICB7CiAgICAgICAgU3RvcmUgKEFyZzAsIERCRzgpCiAgICAgICAgUFRTIChBcmcwKQogICAg ICAgIFN0b3JlIChaZXJvLCBJbmRleCAoV0FLUCwgWmVybykpCiAgICAgICAgU3RvcmUgKFplcm8s IEluZGV4IChXQUtQLCBPbmUpKQogICAgICAgIElmIChMQW5kIChMRXF1YWwgKEFyZzAsIDB4MDQp LCBMRXF1YWwgKE9TRkwgKCksIDB4MDIpKSkKICAgICAgICB7CiAgICAgICAgICAgIFNsZWVwICgw eDBCQjgpCiAgICAgICAgfQoKICAgICAgICBTdG9yZSAoQVNTQiwgV1NTQikKICAgICAgICBTdG9y ZSAoQU9UQiwgV09UQikKICAgICAgICBTdG9yZSAoQUFYQiwgV0FYQikKICAgICAgICBTdG9yZSAo QXJnMCwgQVNTQikKICAgICAgICBTdG9yZSAoT1NGTCAoKSwgQU9UQikKICAgICAgICBTdG9yZSAo WmVybywgQUFYQikKICAgIH0KCiAgICBNZXRob2QgKF9XQUssIDEsIE5vdFNlcmlhbGl6ZWQpCiAg ICB7CiAgICAgICAgU2hpZnRMZWZ0IChBcmcwLCAweDA0LCBEQkc4KQogICAgICAgIFdBSyAoQXJn MCkKICAgICAgICBJZiAoQVNTQikKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChXU1NCLCBB U1NCKQogICAgICAgICAgICBTdG9yZSAoV09UQiwgQU9UQikKICAgICAgICAgICAgU3RvcmUgKFdB WEIsIEFBWEIpCiAgICAgICAgfQoKICAgICAgICBJZiAoRGVyZWZPZiAoSW5kZXggKFdBS1AsIFpl cm8pKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBJbmRleCAoV0FLUCwgT25l KSkKICAgICAgICB9CiAgICAgICAgRWxzZQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUgKEFy ZzAsIEluZGV4IChXQUtQLCBPbmUpKQogICAgICAgIH0KCiAgICAgICAgUmV0dXJuIChXQUtQKQog ICAgfQoKICAgIE5hbWUgKF9TMCwgUGFja2FnZSAoMHgwNCkKICAgIHsKICAgICAgICBaZXJvLCAK ICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvLCAKICAgICAgICBaZXJvCiAgICB9KQogICAgSWYg KFNTMSkKICAgIHsKICAgICAgICBOYW1lIChfUzEsIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgewog ICAgICAgICAgICBPbmUsIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybywgCiAg ICAgICAgICAgIFplcm8KICAgICAgICB9KQogICAgfQoKICAgIElmIChTUzMpCiAgICB7CiAgICAg ICAgTmFtZSAoX1MzLCBQYWNrYWdlICgweDA0KQogICAgICAgIHsKICAgICAgICAgICAgMHgwMywg CiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBaZXJvLCAKICAgICAgICAgICAgWmVybwog ICAgICAgIH0pCiAgICB9CgogICAgSWYgKFNTNCkKICAgIHsKICAgICAgICBOYW1lIChfUzQsIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgewogICAgICAgICAgICAweDA0LCAKICAgICAgICAgICAgWmVy bywgCiAgICAgICAgICAgIFplcm8sIAogICAgICAgICAgICBaZXJvCiAgICAgICAgfSkKICAgIH0K CiAgICBOYW1lIChfUzUsIFBhY2thZ2UgKDB4MDQpCiAgICB7CiAgICAgICAgMHgwNSwgCiAgICAg ICAgWmVybywgCiAgICAgICAgWmVybywgCiAgICAgICAgWmVybwogICAgfSkKICAgIE1ldGhvZCAo UFRTLCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIElmIChBcmcwKQogICAgICAgIHsK ICAgICAgICAgICAgTlBUUyAoQXJnMCkKICAgICAgICAgICAgU1BUUyAoQXJnMCkKICAgICAgICB9 CiAgICB9CgogICAgTWV0aG9kIChXQUssIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAg TldBSyAoQXJnMCkKICAgICAgICBTV0FLIChBcmcwKQogICAgfQoKICAgIFNjb3BlIChcX1BSLlAw MDEpCiAgICB7CiAgICAgICAgTmFtZSAoX1BDVCwgUGFja2FnZSAoMHgwMikKICAgICAgICB7CiAg ICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAg ICAgICAgIC8vIEJpdCBXaWR0aAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg ICAgLy8gQml0IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwg Ly8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBS ZWdpc3RlciAoRkZpeGVkSFcsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAg ICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAv LyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBB ZGRyZXNzCiAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg ICAgICAgTmFtZSAoX1BTUywgUGFja2FnZSAoMHgwNikKICAgICAgICB7CiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA5NjAsIAog ICAgICAgICAgICAgICAgMHgwMDAwODhCOCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDY0LCAK ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDksIAogICAgICAgICAgICAgICAgMHhFODIwMkM1MCwg CiAgICAgICAgICAgICAgICAweDAwMDAwNDUwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg UGFja2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDg5OCwg CiAgICAgICAgICAgICAgICAweDAwMDA3N0QxLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwNjQs IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwOSwgCiAgICAgICAgICAgICAgICAweEU4MjAyQzhF LCAKICAgICAgICAgICAgICAgIDB4MDAwMDA0OEUKICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwN0Qw LCAKICAgICAgICAgICAgICAgIDB4MDAwMDY4MDcsIAogICAgICAgICAgICAgICAgMHgwMDAwMDA2 NCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDA5LCAKICAgICAgICAgICAgICAgIDB4RTgyMDJD Q0MsIAogICAgICAgICAgICAgICAgMHgwMDAwMDRDQwogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA3 MDgsIAogICAgICAgICAgICAgICAgMHgwMDAwNTk1MiwgCiAgICAgICAgICAgICAgICAweDAwMDAw MDY0LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDksIAogICAgICAgICAgICAgICAgMHhFODIw MkQwQSwgCiAgICAgICAgICAgICAgICAweDAwMDAwNTBBCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAw MDY0MCwgCiAgICAgICAgICAgICAgICAweDAwMDA0QkE5LCAKICAgICAgICAgICAgICAgIDB4MDAw MDAwNjQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwOSwgCiAgICAgICAgICAgICAgICAweEU4 MjAyRDQ4LCAKICAgICAgICAgICAgICAgIDB4MDAwMDA1NDgKICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICBQYWNrYWdlICgweDA2KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAw MDAwMzIwLCAKICAgICAgICAgICAgICAgIDB4MDAwMDE3MEIsIAogICAgICAgICAgICAgICAgMHgw MDAwMDA2NCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDA5LCAKICAgICAgICAgICAgICAgIDB4 RTgyMDJGODAsIAogICAgICAgICAgICAgICAgMHgwMDAwMDc4MAogICAgICAgICAgICB9CiAgICAg ICAgfSkKICAgICAgICBNZXRob2QgKF9QUEMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewog ICAgICAgICAgICBTdG9yZSAoU2l6ZU9mIChfUFNTKSwgXF9TQi5QQ0kwLlNCUkcuRUMuUENPVSkK ICAgICAgICAgICAgUmV0dXJuIChcX1NCLlBDSTAuU0JSRy5FQy5NUFBDICgpKQogICAgICAgIH0K CiAgICAgICAgTmFtZSAoX1BTRCwgUGFja2FnZSAoMHgwMSkKICAgICAgICB7CiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDUsIAogICAg ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAKICAgICAgICAg ICAgICAgIDB4MDAwMDAwRkQsIAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMgogICAgICAgICAg ICB9CiAgICAgICAgfSkKICAgIH0KCiAgICBTY29wZSAoXF9QUi5QMDAyKQogICAgewogICAgICAg IE5hbWUgKF9QQ1QsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgewogICAgICAgICAgICBSZXNvdXJj ZVRlbXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlZ2lzdGVyIChGRml4 ZWRIVywgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAvLyBCaXQgV2lk dGgKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQK ICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEFkZHJlc3MKICAgICAg ICAgICAgICAgICAgICAsKQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhX LCAKICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0aAog ICAgICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IE9mZnNldAogICAg ICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAgICAgICAg ICAgICAgICAgICwpCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIE5hbWUgKF9QU1Ms IFBhY2thZ2UgKDB4MDYpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA2KQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwOTYwLCAKICAgICAgICAgICAgICAgIDB4 MDAwMDg4QjgsIAogICAgICAgICAgICAgICAgMHgwMDAwMDA2NCwgCiAgICAgICAgICAgICAgICAw eDAwMDAwMDA5LCAKICAgICAgICAgICAgICAgIDB4RTgyMDJDNTAsIAogICAgICAgICAgICAgICAg MHgwMDAwMDQ1MAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDYpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA4OTgsIAogICAgICAgICAgICAgICAg MHgwMDAwNzdEMSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDY0LCAKICAgICAgICAgICAgICAg IDB4MDAwMDAwMDksIAogICAgICAgICAgICAgICAgMHhFODIwMkM4RSwgCiAgICAgICAgICAgICAg ICAweDAwMDAwNDhFCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgwNikK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDdEMCwgCiAgICAgICAgICAgICAg ICAweDAwMDA2ODA3LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwNjQsIAogICAgICAgICAgICAg ICAgMHgwMDAwMDAwOSwgCiAgICAgICAgICAgICAgICAweEU4MjAyQ0NDLCAKICAgICAgICAgICAg ICAgIDB4MDAwMDA0Q0MKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgweDA2 KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwMDAwNzA4LCAKICAgICAgICAgICAg ICAgIDB4MDAwMDU5NTIsIAogICAgICAgICAgICAgICAgMHgwMDAwMDA2NCwgCiAgICAgICAgICAg ICAgICAweDAwMDAwMDA5LCAKICAgICAgICAgICAgICAgIDB4RTgyMDJEMEEsIAogICAgICAgICAg ICAgICAgMHgwMDAwMDUwQQogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDYpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MDAwMDA2NDAsIAogICAgICAgICAg ICAgICAgMHgwMDAwNEJBOSwgCiAgICAgICAgICAgICAgICAweDAwMDAwMDY0LCAKICAgICAgICAg ICAgICAgIDB4MDAwMDAwMDksIAogICAgICAgICAgICAgICAgMHhFODIwMkQ0OCwgCiAgICAgICAg ICAgICAgICAweDAwMDAwNTQ4CiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAo MHgwNikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwMDAwMDMyMCwgCiAgICAgICAg ICAgICAgICAweDAwMDAxNzBCLCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwNjQsIAogICAgICAg ICAgICAgICAgMHgwMDAwMDAwOSwgCiAgICAgICAgICAgICAgICAweEU4MjAyRjgwLCAKICAgICAg ICAgICAgICAgIDB4MDAwMDA3ODAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgTWV0 aG9kIChfUFBDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgU3RvcmUg KFNpemVPZiAoX1BTUyksIFxfU0IuUENJMC5TQlJHLkVDLlBDT1UpCiAgICAgICAgICAgIFJldHVy biAoXF9TQi5QQ0kwLlNCUkcuRUMuTVBQQyAoKSkKICAgICAgICB9CgogICAgICAgIE5hbWUgKF9Q U0QsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgewogICAgICAgICAgICBQYWNrYWdlICgweDA1KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDA1LCAKICAgICAgICAgICAgICAgIDB4MDAs IAogICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgCiAgICAgICAgICAgICAgICAweDAwMDAwMEZE LCAKICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKICAgICAgICAgICAgfQogICAgICAgIH0pCiAg ICB9Cn0KCg== ------=_Part_21357_6821029.1213718862257--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3c0b01820806170907h15a9f146nf404b78c82946884>