Date: Sat, 8 Aug 2009 19:21:17 +1200 From: Tim Matthews <tim.matthews7@gmail.com> To: freebsd-acpi@freebsd.org Subject: laptop doesn't power off Message-ID: <3f1d93450908080021j2e34286fxb46991bfea2da1b8@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
--0003255750fedfe80a04709c3206 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit I have a sony vaio sz483n. The powering down works almost fine up until the last step. The screen goes clear as it is about to power down but then it just stays in a kind of on state. The power light stays on but it doesn't do anything else. Even holding down the power button for a long time which would work at any other time does nothing. Rebooting works fine. Other operating systems on this machine can poweroff fine. Using either gnome's shutdown, shutdown or halt makes no difference. I have attached my asl Thanks --0003255750fedfe80a04709c3206 Content-Type: application/octet-stream; name="tim-m89__sony-vaio-sz483n.asl" Content-Disposition: attachment; filename="tim-m89__sony-vaio-sz483n.asl" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fy40pqdd0 LyoKICBSU0QgUFRSOiBPRU09UFRMVEQsIEFDUElfUmV2PTIuMHggKDIpCglYU0RUPTB4N2Y2NzM1 ODIsIGxlbmd0aD0zNiwgY2tzdW09NjMKICovCi8qCiAgWFNEVDogTGVuZ3RoPTE0MCwgUmV2aXNp b249MSwgQ2hlY2tzdW09MTYzLAoJT0VNSUQ9U29ueSwgT0VNIFRhYmxlIElEPVZBSU8sIE9FTSBS ZXZpc2lvbj0weDYwNDAwMDAsCglDcmVhdG9yIElEPVBUTCwgQ3JlYXRvciBSZXZpc2lvbj0weDAK CUVudHJpZXM9eyAweDdmNjdiYmY4LCAweDdmNjdiY2VjLCAweDdmNjdiZDU0LCAweDdmNjdiZDhj LCAweDdmNjdiZGM4LCAweDdmNjdiZGZhLCAweDdmNjdiZjcwLCAweDdmNjdiZmQ4LCAweDdmNjc0 ZWRlLCAweDdmNjc0NjdkLCAweDdmNjczYjlhLCAweDdmNjczYWY0LCAweDdmNjczNjBlIH0KICov Ci8qCiAgRkFDUDogTGVuZ3RoPTI0NCwgUmV2aXNpb249MywgQ2hlY2tzdW09MzAsCglPRU1JRD1T b255LCBPRU0gVGFibGUgSUQ9VkFJTywgT0VNIFJldmlzaW9uPTB4MjAwNzA0MTIsCglDcmVhdG9y IElEPVBUTCwgQ3JlYXRvciBSZXZpc2lvbj0weDEKIAlGQUNTPTB4N2Y2N2NmYzAsIERTRFQ9MHg3 ZjY3NTZmMgoJSU5UX01PREVMPVBJQwoJUHJlZmVycmVkX1BNX1Byb2ZpbGU9TW9iaWxlICgyKQoJ U0NJX0lOVD05CglTTUlfQ01EPTB4YjIsIEFDUElfRU5BQkxFPTB4ZjAsIEFDUElfRElTQUJMRT0w eGYxLCBTNEJJT1NfUkVRPTB4ZjIKCVBTVEFURV9DTlQ9MHg4MAoJUE0xYV9FVlRfQkxLPTB4MTAw MC0weDEwMDMKCVBNMWFfQ05UX0JMSz0weDEwMDQtMHgxMDA1CglQTTJfQ05UX0JMSz0weDEwMjAt MHgxMDIwCglQTV9UTVJfQkxLPTB4MTAwOC0weDEwMGIKCUdQRTBfQkxLPTB4MTAyOC0weDEwMmYK CUNTVF9DTlQ9MHg4NQoJUF9MVkwyX0xBVD0xIHVzLCBQX0xWTDNfTEFUPTEwMDEgdXMKCUZMVVNI X1NJWkU9MCwgRkxVU0hfU1RSSURFPTAKCURVVFlfT0ZGU0VUPTEsIERVVFlfV0lEVEg9MwoJREFZ X0FMUk09MTMsIE1PTl9BTFJNPTAsIENFTlRVUlk9NTAKCUlBUENfQk9PVF9BUkNIPXs4MDQyfQoJ RmxhZ3M9e1dCSU5WRCxQUk9DX0MxLFBXUl9CVVRUT04sU0xQX0JVVFRPTixSVENfUzQsRENLX0NB UCxSRVNFVF9SRUd9CglSRVNFVF9SRUc9MHg2NDowWzhdIChJTyksIFJFU0VUX1ZBTFVFPTB4ZmUK CVhfRkFDUz0weDdmNjdjZmMwLCBYX0RTRFQ9MHg3ZjY3NTZmMgoJWF9QTTFhX0VWVF9CTEs9MHgx MDAwOjBbMzJdIChJTykKCVhfUE0xYV9DTlRfQkxLPTB4MTAwNDowWzE2XSAoSU8pCglYX1BNX1RN Ul9CTEs9MHgxMDA4OjBbMzJdIChJTykKCVhfR1BFMF9CTEs9MHgxMDI4OjBbNjRdIChJTykKICov Ci8qCiAgRkFDUzoJTGVuZ3RoPTY0LCBId1NpZz0weDAwMDAxNmUwLCBGaXJtX1dha2VfVmVjPTB4 MDAwMDAwMDAKCUdsb2JhbF9Mb2NrPQoJRmxhZ3M9CglWZXJzaW9uPTEKICovCi8qCiAgRFNEVDog TGVuZ3RoPTI1NzMwLCBSZXZpc2lvbj0xLCBDaGVja3N1bT04MSwKCU9FTUlEPVNvbnksIE9FTSBU YWJsZSBJRD1WQUlPLCBPRU0gUmV2aXNpb249MHgyMDA3MDQxMiwKCUNyZWF0b3IgSUQ9UFRMLCBD cmVhdG9yIFJldmlzaW9uPTB4MjAwNTA2MjQKICovCi8qCiAgQVBJQzogTGVuZ3RoPTEwNCwgUmV2 aXNpb249MSwgQ2hlY2tzdW09MjI2LAoJT0VNSUQ9U29ueSwgT0VNIFRhYmxlIElEPVZBSU8sIE9F TSBSZXZpc2lvbj0weDIwMDcwNDEyLAoJQ3JlYXRvciBJRD1QVEwsIENyZWF0b3IgUmV2aXNpb249 MHg1YQoJTG9jYWwgQVBJQyBBRERSPTB4ZmVlMDAwMDAKCUZsYWdzPXtQQy1BVH0KCglUeXBlPUxv Y2FsIEFQSUMKCUFDUEkgQ1BVPTAKCUZsYWdzPXtFTkFCTEVEfQoJQVBJQyBJRD0wCgoJVHlwZT1M b2NhbCBBUElDCglBQ1BJIENQVT0xCglGbGFncz17RU5BQkxFRH0KCUFQSUMgSUQ9MQoKCVR5cGU9 SU8gQVBJQwoJQVBJQyBJRD0xCglJTlQgQkFTRT0wCglBRERSPTB4MDAwMDAwMDBmZWMwMDAwMAoK CVR5cGU9SU5UIE92ZXJyaWRlCglCVVM9MAoJSVJRPTAKCUlOVFI9MgoJRmxhZ3M9e1BvbGFyaXR5 PWNvbmZvcm1pbmcsIFRyaWdnZXI9Y29uZm9ybWluZ30KCglUeXBlPUlOVCBPdmVycmlkZQoJQlVT PTAKCUlSUT05CglJTlRSPTkKCUZsYWdzPXtQb2xhcml0eT1hY3RpdmUtaGksIFRyaWdnZXI9bGV2 ZWx9CgoJVHlwZT1Mb2NhbCBOTUkKCUFDUEkgQ1BVPTAKCUxJTlQgUGluPTEKCUZsYWdzPXtQb2xh cml0eT1hY3RpdmUtaGksIFRyaWdnZXI9ZWRnZX0KCglUeXBlPUxvY2FsIE5NSQoJQUNQSSBDUFU9 MQoJTElOVCBQaW49MQoJRmxhZ3M9e1BvbGFyaXR5PWFjdGl2ZS1oaSwgVHJpZ2dlcj1lZGdlfQog Ki8KLyoKICBIUEVUOiBMZW5ndGg9NTYsIFJldmlzaW9uPTEsIENoZWNrc3VtPTMyLAoJT0VNSUQ9 U29ueSwgT0VNIFRhYmxlIElEPVZBSU8sIE9FTSBSZXZpc2lvbj0weDIwMDcwNDEyLAoJQ3JlYXRv ciBJRD1QVEwsIENyZWF0b3IgUmV2aXNpb249MHg1YQoJSFBFVCBOdW1iZXI9MAoJQUREUj0weGZl ZDAwMDAwOjBbMF0gKE1lbW9yeSkJSFcgUmV2PTB4MQoJQ29tcGFyaXRvcnM9MgoJQ291bnRlciBT aXplPTEKCUxlZ2FjeSBJUlEgcm91dGluZyBjYXBhYmxlPXtUUlVFfQoJUENJIFZlbmRvciBJRD0w eDgwODYKCU1pbmltYWwgVGljaz0xMjgKICovCi8qCiAgTUNGRzogTGVuZ3RoPTYwLCBSZXZpc2lv bj0xLCBDaGVja3N1bT03MiwKCU9FTUlEPVNvbnksIE9FTSBUYWJsZSBJRD1WQUlPLCBPRU0gUmV2 aXNpb249MHgyMDA3MDQxMiwKCUNyZWF0b3IgSUQ9UFRMLCBDcmVhdG9yIFJldmlzaW9uPTB4NWEK CglCYXNlIEFkZHJlc3M9IDB4MDAwMDAwMDBlMDAwMDAwMAoJU2VnbWVudCBHcm91cD0gMHgwMDAw CglTdGFydCBCdXM9IDAKCUVuZCBCdXM9IDI1NQogKi8KLyoKICBUQ1BBOiBMZW5ndGg9NTAsIFJl dmlzaW9uPTEsIENoZWNrc3VtPTU0LAoJT0VNSUQ9U29ueSwgT0VNIFRhYmxlIElEPVZBSU8sIE9F TSBSZXZpc2lvbj0weDIwMDcwNDEyLAoJQ3JlYXRvciBJRD1QVEwsIENyZWF0b3IgUmV2aXNpb249 MHg1YTUyCiAqLwovKgogIFNMSUM6IExlbmd0aD0zNzQsIFJldmlzaW9uPTEsIENoZWNrc3VtPTM4 LAoJT0VNSUQ9U29ueSwgT0VNIFRhYmxlIElEPVZBSU8sIE9FTSBSZXZpc2lvbj0weDIwMDcwNDEy LAoJQ3JlYXRvciBJRD1QVEwsIENyZWF0b3IgUmV2aXNpb249MHgxMDAwMDAwCiAqLwovKgogIEFQ SUM6IExlbmd0aD0xMDQsIFJldmlzaW9uPTEsIENoZWNrc3VtPTU0LAoJT0VNSUQ9U29ueSwgT0VN IFRhYmxlIElEPVZBSU8sIE9FTSBSZXZpc2lvbj0weDIwMDcwNDEyLAoJQ3JlYXRvciBJRD1QVEws IENyZWF0b3IgUmV2aXNpb249MHgwCglMb2NhbCBBUElDIEFERFI9MHhmZWUwMDAwMAoJRmxhZ3M9 e1BDLUFUfQoKCVR5cGU9TG9jYWwgQVBJQwoJQUNQSSBDUFU9MAoJRmxhZ3M9e0VOQUJMRUR9CglB UElDIElEPTAKCglUeXBlPUxvY2FsIEFQSUMKCUFDUEkgQ1BVPTEKCUZsYWdzPXtFTkFCTEVEfQoJ QVBJQyBJRD0xCgoJVHlwZT1JTyBBUElDCglBUElDIElEPTIKCUlOVCBCQVNFPTAKCUFERFI9MHgw MDAwMDAwMGZlYzAwMDAwCgoJVHlwZT1Mb2NhbCBOTUkKCUFDUEkgQ1BVPTAKCUxJTlQgUGluPTEK CUZsYWdzPXtQb2xhcml0eT1hY3RpdmUtaGksIFRyaWdnZXI9ZWRnZX0KCglUeXBlPUxvY2FsIE5N SQoJQUNQSSBDUFU9MQoJTElOVCBQaW49MQoJRmxhZ3M9e1BvbGFyaXR5PWFjdGl2ZS1oaSwgVHJp Z2dlcj1lZGdlfQoKCVR5cGU9SU5UIE92ZXJyaWRlCglCVVM9MAoJSVJRPTAKCUlOVFI9MgoJRmxh Z3M9e1BvbGFyaXR5PWFjdGl2ZS1oaSwgVHJpZ2dlcj1lZGdlfQoKCVR5cGU9SU5UIE92ZXJyaWRl CglCVVM9MAoJSVJRPTkKCUlOVFI9OQoJRmxhZ3M9e1BvbGFyaXR5PWFjdGl2ZS1oaSwgVHJpZ2dl cj1sZXZlbH0KICovCi8qCiAgQk9PVDogTGVuZ3RoPTQwLCBSZXZpc2lvbj0xLCBDaGVja3N1bT03 MSwKCU9FTUlEPVNvbnksIE9FTSBUYWJsZSBJRD1WQUlPLCBPRU0gUmV2aXNpb249MHgyMDA3MDQx MiwKCUNyZWF0b3IgSUQ9UFRMLCBDcmVhdG9yIFJldmlzaW9uPTB4MQogKi8KLyoKICBTU0RUOiBM ZW5ndGg9MjA2OCwgUmV2aXNpb249MSwgQ2hlY2tzdW09NzIsCglPRU1JRD1Tb255LCBPRU0gVGFi bGUgSUQ9VkFJTywgT0VNIFJldmlzaW9uPTB4MjAwNzA0MTIsCglDcmVhdG9yIElEPVBUTCwgQ3Jl YXRvciBSZXZpc2lvbj0weDIwMDUwNjI0CiAqLwovKgogIFNTRFQ6IExlbmd0aD0yMTQ1LCBSZXZp c2lvbj0xLCBDaGVja3N1bT0xODIsCglPRU1JRD1Tb255LCBPRU0gVGFibGUgSUQ9VkFJTywgT0VN IFJldmlzaW9uPTB4MjAwNzA0MTIsCglDcmVhdG9yIElEPVBUTCwgQ3JlYXRvciBSZXZpc2lvbj0w eDIwMDUwNjI0CiAqLwovKgogIFNTRFQ6IExlbmd0aD02MDcsIFJldmlzaW9uPTEsIENoZWNrc3Vt PTExOSwKCU9FTUlEPVNvbnksIE9FTSBUYWJsZSBJRD1WQUlPLCBPRU0gUmV2aXNpb249MHgyMDA3 MDQxMiwKCUNyZWF0b3IgSUQ9UFRMLCBDcmVhdG9yIFJldmlzaW9uPTB4MjAwNTA2MjQKICovCi8q CiAgU1NEVDogTGVuZ3RoPTE2NiwgUmV2aXNpb249MSwgQ2hlY2tzdW09MjksCglPRU1JRD1Tb255 LCBPRU0gVGFibGUgSUQ9VkFJTywgT0VNIFJldmlzaW9uPTB4MjAwNzA0MTIsCglDcmVhdG9yIElE PVBUTCwgQ3JlYXRvciBSZXZpc2lvbj0weDIwMDUwNjI0CiAqLwovKgogIFNTRFQ6IExlbmd0aD0x MjU0LCBSZXZpc2lvbj0xLCBDaGVja3N1bT0xOTMsCglPRU1JRD1Tb255LCBPRU0gVGFibGUgSUQ9 VkFJTywgT0VNIFJldmlzaW9uPTB4MjAwNzA0MTIsCglDcmVhdG9yIElEPVBUTCwgQ3JlYXRvciBS ZXZpc2lvbj0weDIwMDUwNjI0CiAqLwovKgogKiBJbnRlbCBBQ1BJIENvbXBvbmVudCBBcmNoaXRl Y3R1cmUKICogQU1MIERpc2Fzc2VtYmxlciB2ZXJzaW9uIDIwMDcwMzIwCiAqCiAqIERpc2Fzc2Vt Ymx5IG9mIC90bXAvYWNwaWR1bXAuRUtrSHBHLCBXZWQgQXVnICA1IDIxOjQ3OjQ2IDIwMDkKICoK ICoKICogT3JpZ2luYWwgVGFibGUgSGVhZGVyOgogKiAgICAgU2lnbmF0dXJlICAgICAgICAiRFNE VCIKICogICAgIExlbmd0aCAgICAgICAgICAgMHgwMDAwN0MyRSAoMzE3OTApCiAqICAgICBSZXZp c2lvbiAgICAgICAgIDB4MDEKICogICAgIE9FTSBJRCAgICAgICAgICAgIlNvbnkiCiAqICAgICBP RU0gVGFibGUgSUQgICAgICJWQUlPIgogKiAgICAgT0VNIFJldmlzaW9uICAgICAweDIwMDcwNDEy ICg1MzczMzA3MDYpCiAqICAgICBDcmVhdG9yIElEICAgICAgICJQVEwgIgogKiAgICAgQ3JlYXRv ciBSZXZpc2lvbiAweDIwMDUwNjI0ICg1MzcyMDAxNjQpCiAqLwpEZWZpbml0aW9uQmxvY2sgKCIv dG1wL2FjcGlkdW1wLmFtbCIsICJEU0RUIiwgMSwgIlNvbnkiLCAiVkFJTyIsIDB4MjAwNzA0MTIp CnsKICAgIEV4dGVybmFsIChfUFNTLCBJbnRPYmopCiAgICBFeHRlcm5hbCAoXF9QUl8uQ1BVMC5f UFBDKQoKICAgIE9wZXJhdGlvblJlZ2lvbiAoUFJUMCwgU3lzdGVtSU8sIDB4ODAsIDB4MDQpCiAg ICBGaWVsZCAoUFJUMCwgRFdvcmRBY2MsIExvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgIFA4 MEgsICAgMzIKICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKFNfSU8sIFN5c3RlbUlPLCAweDA2 QjAsIDB4MTEpCiAgICBGaWVsZCAoU19JTywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAg IHsKICAgICAgICBQTVMwLCAgIDgsIAogICAgICAgIFBNRTAsICAgOCwgCiAgICAgICAgUE1TMSwg ICA4LCAKICAgICAgICBQTVMyLCAgIDgsIAogICAgICAgIFBNUzMsICAgOCwgCiAgICAgICAgUE1F MSwgICA4LCAKICAgICAgICBQTUUyLCAgIDgsIAogICAgICAgIFBNRTMsICAgOCwgCiAgICAgICAg U01TMSwgICA4LCAKICAgICAgICBTTVMyLCAgIDgsIAogICAgICAgIFNNRTEsICAgOCwgCiAgICAg ICAgU01FMiwgICA4LCAKICAgICAgICBSVDEwLCAgIDEsIAogICAgICAgIFJUMTEsICAgMSwgCiAg ICAgICAgICAgICwgICAxLCAKICAgICAgICBSVDEzLCAgIDEsIAogICAgICAgICAgICAgICAgT2Zm c2V0ICgweDBFKSwgCiAgICAgICAgUlQzMCwgICAxLCAKICAgICAgICBSVDMxLCAgIDEsIAogICAg ICAgIFJUMzIsICAgMSwgCiAgICAgICAgUlQzMywgICAxLCAKICAgICAgICBSVDM0LCAgIDEsIAog ICAgICAgIFJUMzUsICAgMSwgCiAgICAgICAgUlQzNiwgICAxLCAKICAgICAgICBSVDM3LCAgIDEs IAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEwKSwgCiAgICAgICAgRExQQywgICAxLCAKICAg ICAgICBDSzMzLCAgIDEsIAogICAgICAgIENLMTQsICAgMQogICAgfQoKICAgIE9wZXJhdGlvblJl Z2lvbiAoSU9fVCwgU3lzdGVtSU8sIDB4MDgwMCwgMHgxMCkKICAgIEZpZWxkIChJT19ULCBCeXRl QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA4 KSwgCiAgICAgICAgVFJQMCwgICA4CiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChQTUlPLCBT eXN0ZW1JTywgMHgxMDAwLCAweDgwKQogICAgRmllbGQgKFBNSU8sIEJ5dGVBY2MsIE5vTG9jaywg UHJlc2VydmUpCiAgICB7CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NDIpLCAKICAgICAgICAg ICAgLCAgIDEsIAogICAgICAgIEdQRUMsICAgMQogICAgfQoKICAgIE9wZXJhdGlvblJlZ2lvbiAo R1BJTywgU3lzdGVtSU8sIDB4MTE4MCwgMHgzQykKICAgIEZpZWxkIChHUElPLCBCeXRlQWNjLCBO b0xvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgIEdVMDAsICAgOCwgCiAgICAgICAgR1UwMSwg ICA4LCAKICAgICAgICBHVTAyLCAgIDgsIAogICAgICAgIEdVMDMsICAgOCwgCiAgICAgICAgR0lP MCwgICA4LCAKICAgICAgICBHSU8xLCAgIDgsIAogICAgICAgIEdJTzIsICAgOCwgCiAgICAgICAg R0lPMywgICA4LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwQyksIAogICAgICAgIEdMMDAs ICAgOCwgCiAgICAgICAgICAgICwgICA0LCAKICAgICAgICBHUDEyLCAgIDEsIAogICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDBFKSwgCiAgICAgICAgR0wwMiwgICA4LCAKICAgICAgICBHTDAzLCAg IDgsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDE4KSwgCiAgICAgICAgR0IwMCwgICA4LCAK ICAgICAgICBHQjAxLCAgIDgsIAogICAgICAgIEdCMDIsICAgOCwgCiAgICAgICAgR0IwMywgICA4 LCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyQyksIAogICAgICAgIEdJVjAsICAgOCwgCiAg ICAgICAgR0lWMSwgICA4LCAKICAgICAgICBHSVYyLCAgIDgsIAogICAgICAgIEdJVjMsICAgOCwg CiAgICAgICAgR1UwNCwgICA4LCAKICAgICAgICBHVTA1LCAgIDgsIAogICAgICAgIEdVMDYsICAg OCwgCiAgICAgICAgR1UwNywgICA4LCAKICAgICAgICBHSU80LCAgIDgsIAogICAgICAgIEdJTzUs ICAgOCwgCiAgICAgICAgR0lPNiwgICA4LCAKICAgICAgICBHSU83LCAgIDgsIAogICAgICAgICAg ICAsICAgNywgCiAgICAgICAgR1AzOSwgICAxLCAKICAgICAgICBHTDA1LCAgIDgsIAogICAgICAg IEdMMDYsICAgOCwgCiAgICAgICAgR0wwNywgICA4CiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9u IChHTlZTLCBTeXN0ZW1NZW1vcnksIDB4N0Y2N0M5RjcsIDB4MDEwMCkKICAgIEZpZWxkIChHTlZT LCBBbnlBY2MsIExvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgIE9TWVMsICAgMTYsIAogICAg ICAgIFNNSUYsICAgOCwgCiAgICAgICAgUFJNMCwgICA4LCAKICAgICAgICBQUk0xLCAgIDgsIAog ICAgICAgIFNDSUYsICAgOCwgCiAgICAgICAgUFJNMiwgICA4LCAKICAgICAgICBQUk0zLCAgIDgs IAogICAgICAgIExDS0YsICAgOCwgCiAgICAgICAgUFJNNCwgICA4LCAKICAgICAgICBQUk01LCAg IDgsIAogICAgICAgIFA4MEQsICAgMzIsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDEwKSwg CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTEpLCAKICAgICAgICBEQkdTLCAgIDgsIAogICAg ICAgIExJTlgsICAgOCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTQpLCAKICAgICAgICBB Q1RULCAgIDgsIAogICAgICAgIFBTVlQsICAgOCwgCiAgICAgICAgVEMxViwgICA4LCAKICAgICAg ICBUQzJWLCAgIDgsIAogICAgICAgIFRTUFYsICAgOCwgCiAgICAgICAgQ1JUVCwgICA4LCAKICAg ICAgICBEVFNFLCAgIDgsIAogICAgICAgIERUUzEsICAgOCwgCiAgICAgICAgRFRTMiwgICA4LCAK ICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxRSksIAogICAgICAgIEJOVU0sICAgOCwgCiAgICAg ICAgQjBTQywgICA4LCAKICAgICAgICBCMVNDLCAgIDgsIAogICAgICAgIEIyU0MsICAgOCwgCiAg ICAgICAgQjBTUywgICA4LCAKICAgICAgICBCMVNTLCAgIDgsIAogICAgICAgIEIyU1MsICAgOCwg CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjgpLCAKICAgICAgICBBUElDLCAgIDgsIAogICAg ICAgIE1QRU4sICAgOCwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MkIpLCAKICAgICAgICBQ UENNLCAgIDgsIAogICAgICAgIFBDUDAsICAgOCwgCiAgICAgICAgUENQMSwgICA4LCAKICAgICAg ICAgICAgICAgIE9mZnNldCAoMHgzMiksIAogICAgICAgIE5BVFAsICAgOCwgCiAgICAgICAgQ01B UCwgICA4LCAKICAgICAgICBDTUJQLCAgIDgsIAogICAgICAgIExQVFAsICAgOCwgCiAgICAgICAg RkRDUCwgICA4LCAKICAgICAgICBDTUNQLCAgIDgsIAogICAgICAgIENJUlAsICAgOCwgCiAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4M0MpLCAKICAgICAgICBJR0RTLCAgIDgsIAogICAgICAgIFRM U1QsICAgOCwgCiAgICAgICAgQ0FETCwgICA4LCAKICAgICAgICBQQURMLCAgIDgsIAogICAgICAg IENTVEUsICAgMTYsIAogICAgICAgIE5TVEUsICAgMTYsIAogICAgICAgIFNTVEUsICAgMTYsIAog ICAgICAgIE5ESUQsICAgOCwgCiAgICAgICAgRElEMSwgICAzMiwgCiAgICAgICAgRElEMiwgICAz MiwgCiAgICAgICAgRElEMywgICAzMiwgCiAgICAgICAgRElENCwgICAzMiwgCiAgICAgICAgRElE NSwgICAzMiwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NjcpLCAKICAgICAgICBCTENTLCAg IDgsIAogICAgICAgIEJSVEwsICAgOCwgCiAgICAgICAgQUxTRSwgICA4LCAKICAgICAgICBBTEFG LCAgIDgsIAogICAgICAgIExMT1csICAgOCwgCiAgICAgICAgTEhJSCwgICA4LCAKICAgICAgICAg ICAgICAgIE9mZnNldCAoMHg2RSksIAogICAgICAgIEVNQUUsICAgOCwgCiAgICAgICAgRU1BUCwg ICAxNiwgCiAgICAgICAgRU1BTCwgICAxNiwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NzQp LCAKICAgICAgICBNRUZFLCAgIDgsIAogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDc4KSwgCiAg ICAgICAgVFBNUCwgICA4LCAKICAgICAgICBUUE1FLCAgIDgsIAogICAgICAgICAgICAgICAgT2Zm c2V0ICgweDgyKSwgCiAgICAgICAgR1RGMCwgICA1NiwgCiAgICAgICAgR1RGMiwgICA1NiwgCiAg ICAgICAgSURFTSwgICA4CiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChSQ1JCLCBTeXN0ZW1N ZW1vcnksIDB4RkVEMUMwMDAsIDB4NDAwMCkKICAgIEZpZWxkIChSQ1JCLCBEV29yZEFjYywgTG9j aywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MTAwMCksIAogICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDMwMDApLCAKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgz NDA0KSwgCiAgICAgICAgSFBBUywgICAyLCAKICAgICAgICAgICAgLCAgIDUsIAogICAgICAgIEhQ QUUsICAgMSwgCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MzQxOCksIAogICAgICAgICAgICAs ICAgMSwgCiAgICAgICAgUEFURCwgICAxLCAKICAgICAgICBTQVRELCAgIDEsIAogICAgICAgIFNN QkQsICAgMSwgCiAgICAgICAgSERBRCwgICAxLCAKICAgICAgICBBOTdELCAgIDEsIAogICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDM0MUEpLCAKICAgICAgICBSUDFELCAgIDEsIAogICAgICAgIFJQ MkQsICAgMSwgCiAgICAgICAgUlAzRCwgICAxLCAKICAgICAgICBSUDRELCAgIDEsIAogICAgICAg IFJQNUQsICAgMSwgCiAgICAgICAgUlA2RCwgICAxCiAgICB9CgogICAgTXV0ZXggKE1VVFgsIDB4 MDApCiAgICBOYW1lIChfUzAsIFBhY2thZ2UgKDB4MDMpCiAgICB7CiAgICAgICAgMHgwMCwgCiAg ICAgICAgMHgwMCwgCiAgICAgICAgMHgwMAogICAgfSkKICAgIE5hbWUgKF9TMywgUGFja2FnZSAo MHgwMykKICAgIHsKICAgICAgICAweDA1LCAKICAgICAgICAweDA1LCAKICAgICAgICAweDAwCiAg ICB9KQogICAgTmFtZSAoX1M0LCBQYWNrYWdlICgweDAzKQogICAgewogICAgICAgIDB4MDYsIAog ICAgICAgIDB4MDYsIAogICAgICAgIDB4MDAKICAgIH0pCiAgICBOYW1lIChfUzUsIFBhY2thZ2Ug KDB4MDMpCiAgICB7CiAgICAgICAgMHgwNywgCiAgICAgICAgMHgwNywgCiAgICAgICAgMHgwMAog ICAgfSkKICAgIFNjb3BlIChcX1BSKQogICAgewogICAgICAgIFByb2Nlc3NvciAoQ1BVMCwgMHgw MCwgMHgwMDAwMTAxMCwgMHgwNikge30KICAgICAgICBQcm9jZXNzb3IgKENQVTEsIDB4MDEsIDB4 MDAwMDEwMTAsIDB4MDYpIHt9CiAgICB9CgogICAgTmFtZSAoXERTRU4sIDB4MDEpCiAgICBOYW1l IChcRUNPTiwgMHgwMCkKICAgIE5hbWUgKFxHUElDLCAweDAwKQogICAgTmFtZSAoXENUWVAsIDB4 MDApCiAgICBOYW1lIChcTDAxQywgMHgwMCkKICAgIE5hbWUgKFxWRk4wLCAweDAwKQogICAgTWV0 aG9kIChcX1BJQywgMSwgTm90U2VyaWFsaXplZCkKICAgIHsKICAgICAgICBTdG9yZSAoQXJnMCwg R1BJQykKICAgIH0KCiAgICBNZXRob2QgKF9QVFMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICB7CiAg ICAgICAgU3RvcmUgKDB4MDAsIFA4MEQpCiAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMykp IHt9CiAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwNSkpCiAgICAgICAgewogICAgICAgICAg ICBcX1NCLlBIU1IgKDB4NEIpCiAgICAgICAgfQoKICAgICAgICBTdG9yZSAoXF9TQi5QQ0kwLkxQ Q0IuRUMwLkRPS0QsIFxfU0IuUENJMC5MUENCLkVDMC5EQ0tCKQogICAgICAgIFN0b3JlIChcX1NC LlBDSTAuTFBDQi5FQzAuQlQxQSwgXF9TQi5QQ0kwLkxQQ0IuRUMwLkJUMUIpCiAgICAgICAgU3Rv cmUgKFxfU0IuUENJMC5MUENCLkVDMC5CVDJBLCBcX1NCLlBDSTAuTFBDQi5FQzAuQlQyQikKICAg ICAgICBTdG9yZSAoXF9TQi5QQ0kwLkxQQ0IuRUMwLkFDQVQsIFxfU0IuUENJMC5MUENCLkVDMC5B Q0FCKQogICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDMpKQogICAgICAgIHsKICAgICAgICAg ICAgU3RvcmUgKFxfU0IuUENJMC5MUENCLlNQSUMuX0NSUyAoKSwgXF9TQi5QQ0kwLkxQQ0IuU1BJ Qy5TU1JDKQogICAgICAgICAgICBJZiAoQW5kIChcX1NCLlBDSTAuTFBDQi5TTkMuTFJTVCwgMHgw NCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFxfU0IuUENJMC5M UENCLkVDMC5FQ09LLCAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBQSFNXICgweEQ1LCAweDlFLCAweDgwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAx LCBcX1NCLlBDSTAuTFBDQi5FQzAuTElERSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg fQoKICAgICAgICAgICAgU3RvcmUgKDB4QjMsIFA4MEgpCiAgICAgICAgICAgIFN0b3JlIChQSFMg KDB4QTApLCBMb2NhbDApCiAgICAgICAgfQoKICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAweDA0 KSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuTFBDQi5TUElDLl9DUlMg KCksIFxfU0IuUENJMC5MUENCLlNQSUMuU1NSQykKICAgICAgICAgICAgSWYgKEFuZCAoXF9TQi5Q Q0kwLkxQQ0IuU05DLkxSU1QsIDB4MDIpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJ ZiAoTEVxdWFsIChcX1NCLlBDSTAuTFBDQi5FQzAuRUNPSywgMHgwMCkpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUEhTVyAoMHhENSwgMHg5RSwgMHg4MCkKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHgwMSwgXF9TQi5QQ0kwLkxQQ0IuRUMwLkxJREUpCiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFN0b3JlICgweEI0LCBQODBIKQog ICAgICAgICAgICBTdG9yZSAoUEhTICgweEEyKSwgTG9jYWwwKQogICAgICAgIH0KCiAgICAgICAg SWYgKExFcXVhbCAoQXJnMCwgMHgwNSkpCiAgICAgICAgewogICAgICAgICAgICBJZiAoQW5kIChc X1NCLlBDSTAuTFBDQi5TTkMuTFJTVCwgMHgwMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIElmIChMRXF1YWwgKFxfU0IuUENJMC5MUENCLkVDMC5FQ09LLCAweDAwKSkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQSFNXICgweEQ1LCAweDlFLCAweDgwKQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBcX1NCLlBDSTAuTFBDQi5FQzAuTElERSkKICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgU3RvcmUgKDB4QjUsIFA4 MEgpCiAgICAgICAgICAgIFN0b3JlIChQSFMgKDB4QTcpLCBMb2NhbDApCiAgICAgICAgfQoKICAg ICAgICBJZiAoTEVxdWFsIChEQkdTLCAweDAwKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3Jl ICgweDAwLCBSVDEwKQogICAgICAgICAgICBTdG9yZSAoMHgyMCwgUE1FMSkKICAgICAgICAgICAg U3RvcmUgKDB4MDEsIFBNRTApCiAgICAgICAgICAgIFN0b3JlICgweDIwLCBQTVMxKQogICAgICAg ICAgICBTdG9yZSAoMHgwMSwgUE1TMCkKICAgICAgICB9CiAgICB9CgogICAgTWV0aG9kIChfV0FL LCAxLCBOb3RTZXJpYWxpemVkKQogICAgewogICAgICAgIElmIChMT3IgKExFcXVhbCAoQXJnMCwg MHgwMyksIExFcXVhbCAoQXJnMCwgMHgwNCkpKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKEFu ZCAoQ0ZHRCwgMHgwMTAwMDAwMCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChD b25kUmVmT2YgKFxfT1NJLCBMb2NhbDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIElmIChMTm90IChcX09TSSAoIldpbmRvd3MgMjAwMSBTUDIiKSkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChDRkdELCAweEYwKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJB UCAoMHgzRCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgSWYgKExF cXVhbCAoUlAxRCwgMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJ MC5SUDAxLCAweDAwKQogICAgICAgIH0KCiAgICAgICAgSWYgKExFcXVhbCAoUlA0RCwgMHgwMCkp CiAgICAgICAgewogICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5SUDA0LCAweDAwKQogICAg ICAgIH0KCiAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5MUENCLkVDMC5XVVAwLCBcX1NCLlBDSTAu TFBDQi5FQzAuV1VQMSkKICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCAweDAzKSkKICAgICAgICB7 CiAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLlNQSUMuX1NSUyAoXF9TQi5QQ0kwLkxQQ0IuU1BJ Qy5TU1JDKQogICAgICAgICAgICBJZiAoUEhTICgweEM3KSkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuUlAwMiwgMHgwMikKICAgICAgICAgICAgICAgIE5v dGlmeSAoXF9TQi5QQ0kwLlJQMDMsIDB4MDIpCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0Iu UENJMC5SUDA0LCAweDAyKQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoXF9TQi5QQ0kw LkxQQ0IuRUMwLkJUMUEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9T Qi5QQ0kwLkxQQ0IuRUMwLkJBVDEsIDB4ODEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElm IChMTm90RXF1YWwgKFxfU0IuUENJMC5MUENCLkVDMC5XVVAxLCAweDAxKSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBXUkIsIDB4MDIpCiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIFN0b3JlICgweDAwLCBcX1NCLlBDSTAuTFBDQi5FQzAuVURSUSkKICAgICAg ICAgICAgSWYgKFxfU0IuUENJMC5MUENCLkVDMC5EQ0tCKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBJZiAoXF9TQi5QQ0kwLkxQQ0IuRUMwLkRPS0QpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIFxfU0IuUENJMC5MUENCLkVDMC5JVVNFKQog ICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFxfU0IuUENJMC5MUENCLkVDMC5XVVAxLCAw eDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDAxLCBcX1NCLlBDSTAuTFBDQi5FQzAuVURSUSkKICAgICAgICAgICAgICAgICAgICAgICAg Tm90aWZ5IChcX1NCLkRPQ0ssIDB4MDMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDAwLCBcX1NCLlBDSTAuTFBDQi5FQzAuSVVTRSkKICAgICAgICAg ICAgICAgICAgICBOb3RpZnkgKFxfU0IuRE9DSywgMHgwMCkKICAgICAgICAgICAgICAgICAgICBO b3RpZnkgKFxfU0IuUENJMC5SUDA0LCAweDAwKQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAo XF9TQi5QQ0kwLCAweDAxKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAg ICAgIEVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFxfU0IuUENJMC5MUENC LkVDMC5ET0tEKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgw eDAxLCBcX1NCLlBDSTAuTFBDQi5FQzAuSVVTRSkKICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChcX1NCLlBDSTAuTFBDQi5FQzAuV1VQMSwgMHgwMikpIHt9CiAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTm90 aWZ5IChcX1NCLkRPQ0ssIDB4MDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBJZiAoTEVxdWFsICgweDAwLCBBQ1RUKSkg e30KICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDQpKQogICAgICAgIHsK ICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuU1BJQy5fU1JTIChcX1NCLlBDSTAuTFBDQi5TUElD LlNTUkMpCiAgICAgICAgICAgIElmIChMRXF1YWwgKFxfU0IuUENJMC5MUENCLkVDMC5CQVQxLl9T VEEgKCksIDB4MUYpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0Iu UENJMC5MUENCLkVDMC5CQVQxLCAweDgxKQogICAgICAgICAgICB9CgogICAgICAgICAgICBOb3Rp ZnkgKFxfU0IuUFdSQiwgMHgwMikKICAgICAgICAgICAgU3RvcmUgKFplcm8sIFxfU0IuUENJMC5Q Q0lCLkNSRDIuQ0Q0NCkKICAgICAgICAgICAgSWYgKFxfT1NJICgiV2luZG93cyAyMDA2IikpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFxfU0IuUENJMC5MUENCLkVD MC5FQ09LLCAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBQSFNX ICgweEQ1LCAweDk3LCAweDAxKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBcX1NC LlBDSTAuTFBDQi5FQzAuT1NUUCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgU3RvcmUgKDB4MDAsIFxfU0IuUENJMC5MUENCLkVDMC5VRFJRKQogICAgICAgICAg ICBJZiAoXF9TQi5QQ0kwLkxQQ0IuRUMwLkRDS0IpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIElmIChcX1NCLlBDSTAuTFBDQi5FQzAuRE9LRCkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBJZiAoTEVxdWFsIChcX1NCLlBDSTAuTFBDQi5FQzAuV1VQMSwgMHgwMikp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgw MSwgXF9TQi5QQ0kwLkxQQ0IuRUMwLlVEUlEpCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlm eSAoXF9TQi5ET0NLLCAweDAzKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBOb3RpZnkgKFxfU0IuRE9DSywgMHgwMCkKICAgICAgICAgICAgICAgICAgICBOb3RpZnkg KFxfU0IuUENJMC5SUDA0LCAweDAwKQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5Q Q0kwLCAweDAxKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFxfU0IuUENJMC5MUENCLkVDMC5E T0tEKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFxf U0IuUENJMC5MUENCLkVDMC5XVVAxLCAweDAyKSkge30KICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxf U0IuRE9DSywgMHgwMCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKE9TWVMsIDB4MDdEMikp CiAgICAgICAgewogICAgICAgICAgICBJZiAoQW5kIChDRkdELCAweDAxKSkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgSWYgKExHcmVhdGVyIChcX1BSLkNQVTAuX1BQQywgMHgwMCkpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3VidHJhY3QgKFxfUFIuQ1BVMC5f UFBDLCAweDAxLCBcX1BSLkNQVTAuX1BQQykKICAgICAgICAgICAgICAgICAgICBQTk9UICgpCiAg ICAgICAgICAgICAgICAgICAgQWRkIChcX1BSLkNQVTAuX1BQQywgMHgwMSwgXF9QUi5DUFUwLl9Q UEMpCiAgICAgICAgICAgICAgICAgICAgUE5PVCAoKQogICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFkZCAo XF9QUi5DUFUwLl9QUEMsIDB4MDEsIFxfUFIuQ1BVMC5fUFBDKQogICAgICAgICAgICAgICAgICAg IFBOT1QgKCkKICAgICAgICAgICAgICAgICAgICBTdWJ0cmFjdCAoXF9QUi5DUFUwLl9QUEMsIDB4 MDEsIFxfUFIuQ1BVMC5fUFBDKQogICAgICAgICAgICAgICAgICAgIFBOT1QgKCkKICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgUmV0dXJuIChQYWNrYWdl ICgweDAyKQogICAgICAgIHsKICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgIDB4MDAKICAg ICAgICB9KQogICAgfQoKICAgIFNjb3BlIChcX0dQRSkKICAgIHsKICAgICAgICBNZXRob2QgKF9M MDEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBBZGQgKEwwMUMsIDB4 MDEsIEwwMUMpCiAgICAgICAgICAgIFNsZWVwICgweDY0KQogICAgICAgICAgICBJZiAoTEFuZCAo TEVxdWFsIChSUDFELCAweDAwKSwgXF9TQi5QQ0kwLlJQMDEuSFBDUykpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIElmIChcX1NCLlBDSTAuUlAwMS5QREMxKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBcX1NCLlBDSTAuUlAwMS5QREMxKQog ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBcX1NCLlBDSTAuUlAwMS5IUENTKQogICAg ICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlJQMDEsIDB4MDApCiAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKDB4MDEsIFxfU0IuUENJMC5SUDAxLkhQQ1MpCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIElmIChMQW5kIChMRXF1YWwgKFJQMkQsIDB4 MDApLCBcX1NCLlBDSTAuUlAwMi5IUENTKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg SWYgKFxfU0IuUENJMC5SUDAyLlBEQzIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKDB4MDEsIFxfU0IuUENJMC5SUDAyLlBEQzIpCiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4MDEsIFxfU0IuUENJMC5SUDAyLkhQQ1MpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDEsIFxfU0IuUENJMC5SUDAyLkhQQ1MpCiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KCiAgICAgICAgICAgIElmIChMQW5kIChMRXF1YWwgKFJQM0QsIDB4MDApLCBcX1NC LlBDSTAuUlAwMy5IUENTKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFxfU0Iu UENJMC5SUDAzLlBEQzMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4MDEsIFxfU0IuUENJMC5SUDAzLlBEQzMpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4MDEsIFxfU0IuUENJMC5SUDAzLkhQQ1MpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDEsIFxfU0IuUENJMC5SUDAzLkhQQ1MpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIElmIChMQW5kIChMRXF1YWwgKFJQNEQsIDB4MDApLCBcX1NCLlBDSTAuUlAw NC5IUENTKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFxfU0IuUENJMC5SUDA0 LlBEQzQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEs IFxfU0IuUENJMC5SUDA0LlBEQzQpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIFxf U0IuUENJMC5SUDA0LkhQQ1MpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIFxfU0Iu UENJMC5SUDA0LkhQQ1MpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9 CgogICAgICAgIE1ldGhvZCAoX0wwMiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAg ICAgICAgIFN0b3JlICgweDAwLCBHUEVDKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfTDAz LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBD STAuVVNCMSwgMHgwMikKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0wwNCwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlVTQjIsIDB4 MDIpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9MMDUsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgewogICAgICAgICAgICBJZiAoSERBRCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgTm90aWZ5IChcX1NCLlBDSTAuTU9ETSwgMHgwMikKICAgICAgICAgICAgfQogICAgICAgICAg ICBFbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLkhE RUYsIDB4MDIpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0wwNywg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlICgweDIwLCBcX1NC LlBDSTAuU0JVUy5IU1RTKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfTDA4LCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0wwOSwgMCwg Tm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIElmIChcX1NCLlBDSTAuUlAwMS5Q U1AxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMSwgXF9TQi5QQ0kw LlJQMDEuUFNQMSkKICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBcX1NCLlBDSTAuUlAwMS5Q TUNTKQogICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuUlAwMSwgMHgwMikKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgSWYgKFxfU0IuUENJMC5SUDAzLlBTUDMpCiAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBcX1NCLlBDSTAuUlAwMy5QU1AzKQogICAg ICAgICAgICAgICAgU3RvcmUgKDB4MDEsIFxfU0IuUENJMC5SUDAzLlBNQ1MpCiAgICAgICAgICAg ICAgICBOb3RpZnkgKFxfU0IuUENJMC5SUDAzLCAweDAyKQogICAgICAgICAgICB9CgogICAgICAg ICAgICBJZiAoXF9TQi5QQ0kwLlJQMDQuUFNQNCkKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgU3RvcmUgKDB4MDEsIFxfU0IuUENJMC5SUDA0LlBTUDQpCiAgICAgICAgICAgICAgICBTdG9y ZSAoMHgwMSwgXF9TQi5QQ0kwLlJQMDQuUE1DUykKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9T Qi5QQ0kwLlJQMDQsIDB4MDIpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE1ldGhv ZCAoX0wwQiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAo XF9TQi5QQ0kwLlBDSUIsIDB4MDIpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9MMEQsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5V U0I3LCAweDAyKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfTDFELCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgIHsKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKFxfU0IpCiAgICB7CiAg ICAgICAgTmFtZSAoT1NUQiwgT25lcykKICAgICAgICBPcGVyYXRpb25SZWdpb24gKE9TVFksIFN5 c3RlbU1lbW9yeSwgMHg3RjY3Q0FGNywgMHgwMDAwMDAwMSkKICAgICAgICBGaWVsZCAoT1NUWSwg QW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgIHsKICAgICAgICAgICAgVFBPUywgICA4 CiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKE9TVFAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgewogICAgICAgICAgICBJZiAoTEVxdWFsICheT1NUQiwgT25lcykpCiAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxfT1NJLCBMb2NhbDApKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChcX09TSSAoIldpbmRvd3MgMjAwMS4xIikp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgy MCwgXk9TVEIpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDIwLCBeVFBPUykKICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFxfT1NJICgiV2luZG93cyAyMDAx IFNQMSIpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgxMCwgXk9TVEIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoMHgxMCwgXlRQT1MpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoXF9PU0kgKCJXaW5kb3dzIDIwMDEiKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwOCwg Xk9TVEIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDgsIF5UUE9T KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDAwLCBeT1NUQikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHgwMCwgXlRQT1MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoXF9PUywgTG9jYWwwKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmICheU0VRTCAoXF9PUywgIk1pY3Jvc29m dCBXaW5kb3dzIikpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDAxLCBeT1NUQikKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgweDAxLCBeVFBPUykKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmICheU0VRTCAoXF9PUywgIk1pY3Jvc29mdCBXaW5kb3dzTUU6IE1p bGxlbm5pdW0gRWRpdGlvbiIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAyLCBeT1NUQikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMiwgXlRQT1MpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKF5T RVFMIChcX09TLCAiTWljcm9zb2Z0IFdpbmRvd3MgTlQiKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgw eDA0LCBeT1NUQikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDQsIF5UUE9TKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgXk9TVEIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBeVFBPUykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKDB4MDAsIF5PU1RCKQogICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoMHgwMCwgXlRQT1MpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKF5PU1RCKQogICAgICAgIH0KCiAg ICAgICAgTWV0aG9kIChTRVFMLCAyLCBTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAg U3RvcmUgKFNpemVPZiAoQXJnMCksIExvY2FsMCkKICAgICAgICAgICAgU3RvcmUgKFNpemVPZiAo QXJnMSksIExvY2FsMSkKICAgICAgICAgICAgSWYgKExOb3RFcXVhbCAoTG9jYWwwLCBMb2NhbDEp KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pCiAgICAgICAgICAg IH0KCiAgICAgICAgICAgIE5hbWUgKEJVRjAsIEJ1ZmZlciAoTG9jYWwwKSB7fSkKICAgICAgICAg ICAgU3RvcmUgKEFyZzAsIEJVRjApCiAgICAgICAgICAgIE5hbWUgKEJVRjEsIEJ1ZmZlciAoTG9j YWwwKSB7fSkKICAgICAgICAgICAgU3RvcmUgKEFyZzEsIEJVRjEpCiAgICAgICAgICAgIFN0b3Jl IChaZXJvLCBMb2NhbDIpCiAgICAgICAgICAgIFdoaWxlIChMTGVzcyAoTG9jYWwyLCBMb2NhbDAp KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKEJV RjAsIExvY2FsMikpLCBMb2NhbDMpCiAgICAgICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5k ZXggKEJVRjEsIExvY2FsMikpLCBMb2NhbDQpCiAgICAgICAgICAgICAgICBJZiAoTE5vdEVxdWFs IChMb2NhbDMsIExvY2FsNCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIEluY3JlbWVu dCAoTG9jYWwyKQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAg ICB9CiAgICB9CgogICAgTWV0aG9kIChCVFRNLCAxLCBTZXJpYWxpemVkKQogICAgewogICAgICAg IElmIChQV1JTKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKExHcmVhdGVyRXF1YWwgKEFyZzAs IEIwU0MpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAoQXJnMCwgQjBTQykK ICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBFbHNlCiAgICAgICAgewogICAgICAgICAg ICBJZiAoTExlc3NFcXVhbCAoQXJnMCwgQjBTQykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIFN0b3JlIChBcmcwLCBCMFNDKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAg IE1ldGhvZCAoR0VUQiwgMywgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBNdWx0aXBseSAoQXJn MCwgMHgwOCwgTG9jYWwwKQogICAgICAgIE11bHRpcGx5IChBcmcxLCAweDA4LCBMb2NhbDEpCiAg ICAgICAgQ3JlYXRlRmllbGQgKEFyZzIsIExvY2FsMCwgTG9jYWwxLCBUQkYzKQogICAgICAgIFJl dHVybiAoVEJGMykKICAgIH0KCiAgICBNZXRob2QgKFA4WEgsIDIsIFNlcmlhbGl6ZWQpCiAgICB7 CiAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMCkpCiAgICAgICAgewogICAgICAgICAgICBT dG9yZSAoT3IgKEFuZCAoUDgwRCwgMHhGRkZGRkYwMCksIEFyZzEpLCBQODBEKQogICAgICAgIH0K CiAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwMSkpCiAgICAgICAgewogICAgICAgICAgICBT dG9yZSAoT3IgKEFuZCAoUDgwRCwgMHhGRkZGMDBGRiksIFNoaWZ0TGVmdCAoQXJnMSwgMHgwOCkK ICAgICAgICAgICAgICAgICksIFA4MEQpCiAgICAgICAgfQoKICAgICAgICBJZiAoTEVxdWFsIChB cmcwLCAweDAyKSkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3JlIChPciAoQW5kIChQODBELCAw eEZGMDBGRkZGKSwgU2hpZnRMZWZ0IChBcmcxLCAweDEwKQogICAgICAgICAgICAgICAgKSwgUDgw RCkKICAgICAgICB9CgogICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDMpKQogICAgICAgIHsK ICAgICAgICAgICAgU3RvcmUgKE9yIChBbmQgKFA4MEQsIDB4MDBGRkZGRkYpLCBTaGlmdExlZnQg KEFyZzEsIDB4MTgpCiAgICAgICAgICAgICAgICApLCBQODBEKQogICAgICAgIH0KCiAgICAgICAg U3RvcmUgKFA4MEQsIFA4MEgpCiAgICB9CgogICAgTWV0aG9kIChQTk9ULCAwLCBTZXJpYWxpemVk KQogICAgewogICAgICAgIElmIChNUEVOKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKEFuZCAo UERDMCwgMHgwOCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5D UFUwLCAweDgwKQogICAgICAgICAgICAgICAgSWYgKEFuZCAoUERDMCwgMHgxMCkpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4NjQpCiAgICAgICAgICAgICAg ICAgICAgTm90aWZ5IChcX1BSLkNQVTAsIDB4ODEpCiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KCiAgICAgICAgICAgIElmIChBbmQgKFBEQzEsIDB4MDgpKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBOb3RpZnkgKFxfUFIuQ1BVMSwgMHg4MCkKICAgICAgICAgICAgICAgIElm IChBbmQgKFBEQzEsIDB4MTApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFNsZWVwICgweDY0KQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFUxLCAweDgx KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIEVsc2UK ICAgICAgICB7CiAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFUwLCAweDgwKQogICAgICAgICAg ICBTbGVlcCAoMHg2NCkKICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTAsIDB4ODEpCiAgICAg ICAgfQogICAgfQoKICAgIE1ldGhvZCAoVFJBUCwgMSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAg ICBTdG9yZSAoQXJnMCwgU01JRikKICAgICAgICBTdG9yZSAoMHgwMCwgVFJQMCkKICAgICAgICBS ZXR1cm4gKFNNSUYpCiAgICB9CgogICAgTWV0aG9kIChHRVRQLCAxLCBTZXJpYWxpemVkKQogICAg ewogICAgICAgIElmIChMRXF1YWwgKEFuZCAoQXJnMCwgMHgwOSksIDB4MDApKQogICAgICAgIHsK ICAgICAgICAgICAgUmV0dXJuICgweEZGRkZGRkZGKQogICAgICAgIH0KCiAgICAgICAgSWYgKExF cXVhbCAoQW5kIChBcmcwLCAweDA5KSwgMHgwOCkpCiAgICAgICAgewogICAgICAgICAgICBSZXR1 cm4gKDB4MDM4NCkKICAgICAgICB9CgogICAgICAgIFNoaWZ0UmlnaHQgKEFuZCAoQXJnMCwgMHgw MzAwKSwgMHgwOCwgTG9jYWwwKQogICAgICAgIFNoaWZ0UmlnaHQgKEFuZCAoQXJnMCwgMHgzMDAw KSwgMHgwQywgTG9jYWwxKQogICAgICAgIFJldHVybiAoTXVsdGlwbHkgKDB4MUUsIFN1YnRyYWN0 ICgweDA5LCBBZGQgKExvY2FsMCwgTG9jYWwxKSkKICAgICAgICAgICAgKSkKICAgIH0KCiAgICBN ZXRob2QgKEdETUEsIDUsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAgICAgSWYgKEFyZzApCiAgICAg ICAgewogICAgICAgICAgICBJZiAoTEFuZCAoQXJnMSwgQXJnNCkpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFJldHVybiAoMHgxNCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYg KExBbmQgKEFyZzIsIEFyZzQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4g KE11bHRpcGx5IChTdWJ0cmFjdCAoMHgwNCwgQXJnMyksIDB4MEYpKQogICAgICAgICAgICB9Cgog ICAgICAgICAgICBSZXR1cm4gKE11bHRpcGx5IChTdWJ0cmFjdCAoMHgwNCwgQXJnMyksIDB4MUUp KQogICAgICAgIH0KCiAgICAgICAgUmV0dXJuICgweEZGRkZGRkZGKQogICAgfQoKICAgIE1ldGhv ZCAoR0VUVCwgMSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBSZXR1cm4gKE11bHRpcGx5ICgw eDFFLCBTdWJ0cmFjdCAoMHgwOSwgQWRkIChBbmQgKFNoaWZ0UmlnaHQgKEFyZzAsIDB4MDIKICAg ICAgICAgICAgKSwgMHgwMyksIEFuZCAoQXJnMCwgMHgwMykpKSkpCiAgICB9CgogICAgTWV0aG9k IChHRVRGLCAzLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIE5hbWUgKFRNUEYsIDB4MDApCiAg ICAgICAgSWYgKEFyZzApCiAgICAgICAgewogICAgICAgICAgICBPciAoVE1QRiwgMHgwMSwgVE1Q RikKICAgICAgICB9CgogICAgICAgIElmIChBbmQgKEFyZzIsIDB4MDIpKQogICAgICAgIHsKICAg ICAgICAgICAgT3IgKFRNUEYsIDB4MDIsIFRNUEYpCiAgICAgICAgfQoKICAgICAgICBJZiAoQXJn MSkKICAgICAgICB7CiAgICAgICAgICAgIE9yIChUTVBGLCAweDA0LCBUTVBGKQogICAgICAgIH0K CiAgICAgICAgSWYgKEFuZCAoQXJnMiwgMHgyMCkpCiAgICAgICAgewogICAgICAgICAgICBPciAo VE1QRiwgMHgwOCwgVE1QRikKICAgICAgICB9CgogICAgICAgIElmIChBbmQgKEFyZzIsIDB4NDAw MCkpCiAgICAgICAgewogICAgICAgICAgICBPciAoVE1QRiwgMHgxMCwgVE1QRikKICAgICAgICB9 CgogICAgICAgIFJldHVybiAoVE1QRikKICAgIH0KCiAgICBNZXRob2QgKFNFVFAsIDMsIFNlcmlh bGl6ZWQpCiAgICB7CiAgICAgICAgSWYgKExHcmVhdGVyIChBcmcwLCAweEYwKSkKICAgICAgICB7 CiAgICAgICAgICAgIFJldHVybiAoMHgwOCkKICAgICAgICB9CiAgICAgICAgRWxzZQogICAgICAg IHsKICAgICAgICAgICAgSWYgKEFuZCAoQXJnMSwgMHgwMikpCiAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgIElmIChMQW5kIChMTGVzc0VxdWFsIChBcmcwLCAweDc4KSwgQW5kIChBcmcyLCAw eDAyKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDIz MDEpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKExBbmQgKExMZXNzRXF1 YWwgKEFyZzAsIDB4QjQpLCBBbmQgKEFyZzIsIDB4MDEpKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MjEwMSkKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgUmV0dXJuICgweDEwMDEpCiAgICAgICAgfQogICAgfQoKICAg IE1ldGhvZCAoU0RNQSwgMSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBJZiAoTExlc3NFcXVh bCAoQXJnMCwgMHgxNCkpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAg ICAgfQoKICAgICAgICBJZiAoTExlc3NFcXVhbCAoQXJnMCwgMHgxRSkpCiAgICAgICAgewogICAg ICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgfQoKICAgICAgICBJZiAoTExlc3NFcXVhbCAo QXJnMCwgMHgyRCkpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAg fQoKICAgICAgICBJZiAoTExlc3NFcXVhbCAoQXJnMCwgMHgzQykpCiAgICAgICAgewogICAgICAg ICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgfQoKICAgICAgICBJZiAoTExlc3NFcXVhbCAoQXJn MCwgMHg1QSkpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgfQoK ICAgICAgICBSZXR1cm4gKDB4MDApCiAgICB9CgogICAgTWV0aG9kIChTRVRULCAzLCBTZXJpYWxp emVkKQogICAgewogICAgICAgIElmIChBbmQgKEFyZzEsIDB4MDIpKQogICAgICAgIHsKICAgICAg ICAgICAgSWYgKExBbmQgKExMZXNzRXF1YWwgKEFyZzAsIDB4NzgpLCBBbmQgKEFyZzIsIDB4MDIp KSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQogICAgICAgICAg ICB9CgogICAgICAgICAgICBJZiAoTEFuZCAoTExlc3NFcXVhbCAoQXJnMCwgMHhCNCksIEFuZCAo QXJnMiwgMHgwMSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkp CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIFJldHVybiAoMHgwNCkKICAgIH0KCiAg ICBTY29wZSAoXF9UWikKICAgIHsKICAgICAgICBUaGVybWFsWm9uZSAoQVRGMCkKICAgICAgICB7 CiAgICAgICAgICAgIE1ldGhvZCAoS0VMViwgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgU3RvcmUgKEFyZzAsIExvY2FsMCkKICAgICAgICAgICAgICAgIE11 bHRpcGx5IChMb2NhbDAsIDB4MEEsIExvY2FsMCkKICAgICAgICAgICAgICAgIEFkZCAoTG9jYWww LCAweDBBQUIsIExvY2FsMCkKICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgICAg ICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9UTVAsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFxfU0IuUENJMC5MUENCLkVDMC5FQ09L LCAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUEhT RCAoMHhENCwgMHhDMCksIExvY2FsMSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoXF9TQi5Q Q0kwLkxQQ0IuRUMwLkExVFAsIExvY2FsMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBTaGlmdFJpZ2h0IChMb2NhbDEsIDB4MDgsIExvY2FsMCkKICAgICAgICAgICAgICAgIElm IChMR3JlYXRlciAoTG9jYWwwLCAweDgwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBTbGVlcCAoMHgzMikKICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChcX1NC LlBDSTAuTFBDQi5FQzAuRUNPSywgMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoUEhTRCAoMHhENCwgMHhDMCksIExvY2FsMSkKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5MUENCLkVDMC5B MVRQLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBT aGlmdFJpZ2h0IChMb2NhbDEsIDB4MDgsIExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBSZXR1cm4gKEtFTFYgKExvY2FsMCkpCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE1ldGhvZCAoX1BTViwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgSWYgKExFcXVhbCAoXF9TQi5QQ0kwLkxQQ0IuRUMwLkVDT0ssIDB4MDApKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlIChQSFNEICgweEQ0LCAweEM0 KSwgTG9jYWwxKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuTFBDQi5FQzAu QTFQVCwgTG9jYWwxKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFNoaWZ0Umln aHQgKExvY2FsMSwgMHgwOCwgTG9jYWwwKQogICAgICAgICAgICAgICAgUmV0dXJuIChLRUxWIChM b2NhbDApKQogICAgICAgICAgICB9CgogICAgICAgICAgICBNZXRob2QgKF9QU0wsIDAsIFNlcmlh bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChNUEVOKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFxfUFIuQ1BVMCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIFxfUFIuQ1BVMQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFxfUFIuQ1BVMAogICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfQ1JULCAwLCBTZXJpYWxp emVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChcX1NCLlBDSTAu TFBDQi5FQzAuRUNPSywgMHgwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKFBIU0QgKDB4RDQsIDB4QzYpLCBMb2NhbDEpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg U3RvcmUgKFxfU0IuUENJMC5MUENCLkVDMC5BMUNULCBMb2NhbDEpCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgU2hpZnRSaWdodCAoTG9jYWwxLCAweDA4LCBMb2NhbDApCiAgICAg ICAgICAgICAgICBSZXR1cm4gKEtFTFYgKExvY2FsMCkpCiAgICAgICAgICAgIH0KCiAgICAgICAg ICAgIE5hbWUgKF9UQzEsIDB4MDEpCiAgICAgICAgICAgIE5hbWUgKF9UQzIsIDB4MDIpCiAgICAg ICAgICAgIE5hbWUgKF9UU1AsIDB4MzIpCiAgICAgICAgfQoKICAgICAgICBUaGVybWFsWm9uZSAo RFRTMCkKICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9QU1YsIDB4MEU5MikKICAgICAgICAg ICAgTmFtZSAoX0NSVCwgMHgwRTlDKQogICAgICAgICAgICBNZXRob2QgKF9QU0wsIDAsIFNlcmlh bGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChNUEVOKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFxfUFIuQ1BVMCwgCiAgICAg ICAgICAgICAgICAgICAgICAgIFxfUFIuQ1BVMQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFxfUFIuQ1BVMAogICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoX1RDMSwgMHgwMSkKICAgICAg ICAgICAgTmFtZSAoX1RDMiwgMHgwMikKICAgICAgICAgICAgTmFtZSAoX1RTUCwgMHgzMikKICAg ICAgICAgICAgTWV0aG9kIChfVE1QLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICBTdG9yZSAoUEhTQiAoMHhBNiwgMHgwMCksIExvY2FsMCkKICAgICAgICAg ICAgICAgIE11bHRpcGx5IChMb2NhbDAsIDB4MEEsIExvY2FsMCkKICAgICAgICAgICAgICAgIEFk ZCAoTG9jYWwwLCAweDBBQUIsIExvY2FsMCkKICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWww KQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBUaGVybWFsWm9uZSAoRFRTMSkKICAg ICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9QU1YsIDB4MEU5MikKICAgICAgICAgICAgTmFtZSAo X0NSVCwgMHgwRTlDKQogICAgICAgICAgICBNZXRob2QgKF9QU0wsIDAsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElmIChNUEVOKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFxfUFIuQ1BVMCwgCiAgICAgICAgICAgICAg ICAgICAgICAgIFxfUFIuQ1BVMQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIFxfUFIuQ1BVMAogICAgICAgICAgICAgICAgfSkKICAg ICAgICAgICAgfQoKICAgICAgICAgICAgTmFtZSAoX1RDMSwgMHgwMSkKICAgICAgICAgICAgTmFt ZSAoX1RDMiwgMHgwMikKICAgICAgICAgICAgTmFtZSAoX1RTUCwgMHgzMikKICAgICAgICAgICAg TWV0aG9kIChfVE1QLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBJZiAoTVBFTikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoUEhTQiAoMHhBNiwgMHgwMSksIExvY2FsMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAo UEhTQiAoMHhBNiwgMHgwMCksIExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNdWx0aXBseSAoTG9jYWwwLCAweDBBLCBMb2NhbDApCiAgICAgICAgICAgICAgICBBZGQg KExvY2FsMCwgMHgwQUFCLCBMb2NhbDApCiAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkK ICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBPcGVyYXRpb25SZWdpb24gKFNNSTAs IFN5c3RlbU1lbW9yeSwgMHg3RjY3Q0FGOCwgMHgwMDAwMDQxNSkKICAgIEZpZWxkIChTTUkwLCBB bnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgQkNNRCwgICA4LCAKICAgICAg ICBESUQsICAgIDMyLCAKICAgICAgICBJTkZPLCAgIDQwOTYKICAgIH0KCiAgICBGaWVsZCAoU01J MCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgewogICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDA1KSwgCiAgICAgICAgSU5GQiwgICA4CiAgICB9CgogICAgRmllbGQgKFNNSTAsIEFueUFj YywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgIHsKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwNSks IAogICAgICAgIElORkQsICAgMzIKICAgIH0KCiAgICBGaWVsZCAoU01JMCwgQW55QWNjLCBOb0xv Y2ssIFByZXNlcnZlKQogICAgewogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA1KSwgCiAgICAg ICAgU1hCRiwgICA4MzIwCiAgICB9CgogICAgRmllbGQgKFNNSTAsIEFueUFjYywgTm9Mb2NrLCBQ cmVzZXJ2ZSkKICAgIHsKICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwNSksIAogICAgICAgIElO RjEsICAgOCwgCiAgICAgICAgSU5GMiwgICA4CiAgICB9CgogICAgT3BlcmF0aW9uUmVnaW9uIChT TUkxLCBTeXN0ZW1JTywgMHgwMDAwRkUwMCwgMHgwMDAwMDAwMikKICAgIEZpZWxkIChTTUkxLCBB bnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICB7CiAgICAgICAgU01JQywgICA4CiAgICB9Cgog ICAgTXV0ZXggKE1QSFMsIDB4MDApCiAgICBNZXRob2QgKFBIUzAsIDEsIE5vdFNlcmlhbGl6ZWQp CiAgICB7CiAgICAgICAgU3RvcmUgKEFyZzAsIEJDTUQpCiAgICAgICAgU3RvcmUgKFplcm8sIFNN SUMpCiAgICAgICAgV2hpbGUgKExFcXVhbCAoQkNNRCwgQXJnMCkpIHt9CiAgICAgICAgU3RvcmUg KDB4MDAsIEJDTUQpCiAgICB9CgogICAgTWV0aG9kIChQSFMsIDEsIFNlcmlhbGl6ZWQpCiAgICB7 CiAgICAgICAgQWNxdWlyZSAoTVBIUywgMHhGRkZGKQogICAgICAgIFN0b3JlICgweDAwLCBESUQp CiAgICAgICAgUEhTMCAoQXJnMCkKICAgICAgICBTdG9yZSAoSU5GRCwgTG9jYWwwKQogICAgICAg IFJlbGVhc2UgKE1QSFMpCiAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICB9CgogICAgTWV0aG9k IChQSFNELCAyLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIEFjcXVpcmUgKE1QSFMsIDB4RkZG RikKICAgICAgICBTdG9yZSAoMHgwMCwgRElEKQogICAgICAgIFN0b3JlIChBcmcxLCBJTkZEKQog ICAgICAgIFBIUzAgKEFyZzApCiAgICAgICAgU3RvcmUgKElORkQsIExvY2FsMCkKICAgICAgICBS ZWxlYXNlIChNUEhTKQogICAgICAgIFJldHVybiAoTG9jYWwwKQogICAgfQoKICAgIE1ldGhvZCAo UEhTVywgMywgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBBY3F1aXJlIChNUEhTLCAweEZGRkYp CiAgICAgICAgU3RvcmUgKDB4MDAsIERJRCkKICAgICAgICBTdG9yZSAoQXJnMSwgSU5GMSkKICAg ICAgICBTdG9yZSAoQXJnMiwgSU5GMikKICAgICAgICBQSFMwIChBcmcwKQogICAgICAgIFN0b3Jl IChJTkZCLCBMb2NhbDApCiAgICAgICAgUmVsZWFzZSAoTVBIUykKICAgICAgICBSZXR1cm4gKExv Y2FsMCkKICAgIH0KCiAgICBNZXRob2QgKFBIU0IsIDIsIFNlcmlhbGl6ZWQpCiAgICB7CiAgICAg ICAgQWNxdWlyZSAoTVBIUywgMHhGRkZGKQogICAgICAgIFN0b3JlICgweDAwLCBESUQpCiAgICAg ICAgU3RvcmUgKEFyZzEsIElORkIpCiAgICAgICAgUEhTMCAoQXJnMCkKICAgICAgICBTdG9yZSAo SU5GQiwgTG9jYWwwKQogICAgICAgIFJlbGVhc2UgKE1QSFMpCiAgICAgICAgUmV0dXJuIChMb2Nh bDApCiAgICB9CgogICAgTWV0aG9kIChQU0NTLCAxLCBTZXJpYWxpemVkKQogICAgewogICAgICAg IEFjcXVpcmUgKE1QSFMsIDB4RkZGRikKICAgICAgICBTdG9yZSAoQXJnMCwgRElEKQogICAgICAg IFN0b3JlIChaZXJvLCBJTkZPKQogICAgICAgIFBIUzAgKDB4MDApCiAgICAgICAgU3RvcmUgKElO Rk8sIExvY2FsMCkKICAgICAgICBSZWxlYXNlIChNUEhTKQogICAgICAgIFJldHVybiAoTG9jYWww KQogICAgfQoKICAgIE1ldGhvZCAoUFNTUywgMiwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBB Y3F1aXJlIChNUEhTLCAweEZGRkYpCiAgICAgICAgU3RvcmUgKEFyZzAsIERJRCkKICAgICAgICBT dG9yZSAoQXJnMSwgSU5GTykKICAgICAgICBQSFMwICgweDAxKQogICAgICAgIFJlbGVhc2UgKE1Q SFMpCiAgICB9CgogICAgTWV0aG9kIChQU1BTLCAxLCBTZXJpYWxpemVkKQogICAgewogICAgICAg IEFjcXVpcmUgKE1QSFMsIDB4RkZGRikKICAgICAgICBTdG9yZSAoQXJnMCwgRElEKQogICAgICAg IFN0b3JlIChaZXJvLCBJTkZPKQogICAgICAgIFBIUzAgKDB4MDIpCiAgICAgICAgU3RvcmUgKElO Rk8sIExvY2FsMCkKICAgICAgICBSZWxlYXNlIChNUEhTKQogICAgICAgIFJldHVybiAoTG9jYWww KQogICAgfQoKICAgIE1ldGhvZCAoUFNESSwgMSwgU2VyaWFsaXplZCkKICAgIHsKICAgICAgICBB Y3F1aXJlIChNUEhTLCAweEZGRkYpCiAgICAgICAgU3RvcmUgKEFyZzAsIERJRCkKICAgICAgICBQ SFMwICgweDAzKQogICAgICAgIFJlbGVhc2UgKE1QSFMpCiAgICB9CgogICAgTWV0aG9kIChQU1NU LCAxLCBTZXJpYWxpemVkKQogICAgewogICAgICAgIEFjcXVpcmUgKE1QSFMsIDB4RkZGRikKICAg ICAgICBTdG9yZSAoQXJnMCwgRElEKQogICAgICAgIFBIUzAgKDB4MDQpCiAgICAgICAgU3RvcmUg KElORkIsIExvY2FsMCkKICAgICAgICBSZWxlYXNlIChNUEhTKQogICAgICAgIFJldHVybiAoTG9j YWwwKQogICAgfQoKICAgIFNjb3BlIChcX1NCKQogICAgewogICAgICAgIE9wZXJhdGlvblJlZ2lv biAoVENHMSwgU3lzdGVtTWVtb3J5LCAweDdGNjdDOUYwLCAweDAwMDAwMDA3KQogICAgICAgIEZp ZWxkIChUQ0cxLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAg ICBQUFJRLCAgIDgsIAogICAgICAgICAgICBQUExPLCAgIDgsIAogICAgICAgICAgICBQUFJQLCAg IDgsIAogICAgICAgICAgICBQUE9SLCAgIDgsIAogICAgICAgICAgICBUUFJTLCAgIDgsIAogICAg ICAgICAgICBUUE1WLCAgIDgsIAogICAgICAgICAgICBNT1IsICAgIDgKICAgICAgICB9CgogICAg ICAgIE1ldGhvZCAoUEhTUiwgMSwgU2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIFN0 b3JlIChBcmcwLCBCQ01EKQogICAgICAgICAgICBTdG9yZSAoWmVybywgRElEKQogICAgICAgICAg ICBTdG9yZSAoWmVybywgU01JQykKICAgICAgICAgICAgSWYgKExFcXVhbCAoQkNNRCwgQXJnMCkp IHt9CiAgICAgICAgICAgIFN0b3JlIChaZXJvLCBCQ01EKQogICAgICAgICAgICBTdG9yZSAoWmVy bywgRElEKQogICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgfQoKICAgICAgICBPcGVy YXRpb25SZWdpb24gKFNNSTAsIFN5c3RlbUlPLCAweDAwMDBGRTAwLCAweDAwMDAwMDAyKQogICAg ICAgIEZpZWxkIChTTUkwLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAg ICAgICAgICBTTUlDLCAgIDgKICAgICAgICB9CgogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoU01J MSwgU3lzdGVtTWVtb3J5LCAweDdGNjdDQUY4LCAweDAwMDAwNDE1KQogICAgICAgIEZpZWxkIChT TUkxLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgewogICAgICAgICAgICBCQ01E LCAgIDgsIAogICAgICAgICAgICBESUQsICAgIDMyLCAKICAgICAgICAgICAgSU5GTywgICAxMDI0 CiAgICAgICAgfQoKICAgICAgICBGaWVsZCAoU01JMSwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZl KQogICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBY2Nlc3NBcyAoQnl0ZUFjYywgMHgwMCks IAogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwNSksIAogICAgICAgICAgICBJTkYsICAg IDgKICAgICAgICB9CgogICAgICAgIE1ldGhvZCAoX0lOSSwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICB7CiAgICAgICAgICAgIFN0b3JlICgweDA3RDAsIE9TWVMpCiAgICAgICAgICAgIElmIChD b25kUmVmT2YgKFxfT1NJLCBMb2NhbDApKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBJ ZiAoXF9PU0kgKCJMaW51eCIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IFN0b3JlICgweDAxLCBMSU5YKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElm IChcX09TSSAoIldpbmRvd3MgMjAwMSIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFN0b3JlICgweDA3RDEsIE9TWVMpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgSWYgKFxfT1NJICgiV2luZG93cyAyMDAxIFNQMSIpKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDA3RDEsIE9TWVMpCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgSWYgKFxfT1NJICgiV2luZG93cyAyMDAxIFNQMiIpKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDA3RDIsIE9TWVMpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKFxfT1NJICgiV2luZG93cyAyMDA2Iikp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDdENiwgT1NZ UykKICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChcX1NCLlBDSTAuTFBDQi5FQzAuRUNP SywgMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBQ SFNXICgweEQ1LCAweDk3LCAweDAxKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHgwMSwgXF9TQi5QQ0kwLkxQQ0IuRUMwLk9TVFApCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBE ZXZpY2UgKExJRDApCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQ TlAwQzBEIikpCiAgICAgICAgICAgIE1ldGhvZCAoX0xJRCwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoXF9TQi5QQ0kwLkxQQ0IuRUMw LkVDT0ssIDB4MDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEFuZCAo UEhTQiAoMHhENCwgMHg4MiksIDB4MDQsIExvY2FsMCkKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoXF9TQi5QQ0kwLkxQQ0IuRUMwLkxJRFMsIExvY2FsMCkKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAg ICAgICAgRGV2aWNlIChQV1JCKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlz YUlkICgiUE5QMEMwQyIpKQogICAgICAgICAgICBOYW1lIChfUFJXLCBQYWNrYWdlICgweDAyKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDFELCAKICAgICAgICAgICAgICAgIDB4MDQK ICAgICAgICAgICAgfSkKICAgICAgICB9CgogICAgICAgIE11dGV4IChQTE9LLCAweDAwKQogICAg ICAgIE1ldGhvZCAoTkNQVSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAg IEFjcXVpcmUgKFBMT0ssIDB4RkZGRikKICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTAsIDB4 ODApCiAgICAgICAgICAgIElmIChNUEVOKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBO b3RpZnkgKFxfUFIuQ1BVMSwgMHg4MCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgU2xlZXAg KDB4NjQpCiAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFUwLCAweDgxKQogICAgICAgICAgICBJ ZiAoTVBFTikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTEs IDB4ODEpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJlbGVhc2UgKFBMT0spCiAgICAgICAg fQoKICAgICAgICBEZXZpY2UgKFBDSTApCiAgICAgICAgewogICAgICAgICAgICBNZXRob2QgKF9T M0QsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVy biAoMHgwMikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUzRELCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBBMDgiKSkK ICAgICAgICAgICAgTmFtZSAoX0NJRCwgMHgwMzBBRDA0MSkKICAgICAgICAgICAgTmFtZSAoX0FE UiwgMHgwMCkKICAgICAgICAgICAgTmFtZSAoU1VQUCwgMHgwMCkKICAgICAgICAgICAgTmFtZSAo Q1RSTCwgMHgwMCkKICAgICAgICAgICAgTWV0aG9kIChfT1NDLCA0LCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChBcmczLCAweDAw LCBDRFcxKQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMywgMHgwNCwgQ0RX MikKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzMsIDB4MDgsIENEVzMpCiAg ICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBcmcwLCBCdWZmZXIgKDB4MTApCiAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gICAg MHg1QiwgMHg0RCwgMHhEQiwgMHgzMywgMHhGNywgMHgxRiwgMHgxQywgMHg0MCwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAgIDB4OTYsIDB4NTcsIDB4NzQsIDB4NDEs IDB4QzAsIDB4M0QsIDB4RDcsIDB4NjYKICAgICAgICAgICAgICAgICAgICAgICAgfSkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKENEVzIsIFNVUFApCiAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKENEVzMsIENUUkwpCiAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4MDAsIENUUkwpCiAgICAgICAgICAgICAgICAgICAgSWYgKExOb3RFcXVhbCAoQXJnMSwg T25lKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9yIChD RFcxLCAweDA4LCBDRFcxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKExOb3RFcXVhbCAoQ0RXMywgQ1RSTCkpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBPciAoQ0RXMSwgMHgxMCwgQ0RXMSkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFN0b3JlIChDVFJMLCBDRFczKQogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQXJnMykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPciAoQ0RXMSwgMHgw NCwgQ0RXMSkKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFyZzMpCiAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIE5hbWUgKF9CQk4sIDB4MDApCiAgICAgICAg ICAgIE9wZXJhdGlvblJlZ2lvbiAoSEJVUywgUENJX0NvbmZpZywgMHg0MCwgMHhDMCkKICAgICAg ICAgICAgRmllbGQgKEhCVVMsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1MCksIAogICAgICAgICAgICAg ICAgICAgICwgICA0LCAKICAgICAgICAgICAgICAgIFBNMEgsICAgMiwgCiAgICAgICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHg1MSksIAogICAgICAgICAgICAgICAgUE0xTCwgICAyLCAKICAg ICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICBQTTFILCAgIDIsIAogICAg ICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTIpLCAKICAgICAgICAgICAgICAgIFBNMkws ICAgMiwgCiAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgUE0ySCwg ICAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUzKSwgCiAgICAgICAgICAg ICAgICBQTTNMLCAgIDIsIAogICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAg ICAgIFBNM0gsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg1NCksIAog ICAgICAgICAgICAgICAgUE00TCwgICAyLCAKICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAg ICAgICAgICAgICAgICBQTTRILCAgIDIsIAogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQg KDB4NTUpLCAKICAgICAgICAgICAgICAgIFBNNUwsICAgMiwgCiAgICAgICAgICAgICAgICAgICAg LCAgIDIsIAogICAgICAgICAgICAgICAgUE01SCwgICAyLCAKICAgICAgICAgICAgICAgICAgICAg ICAgT2Zmc2V0ICgweDU2KSwgCiAgICAgICAgICAgICAgICBQTTZMLCAgIDIsIAogICAgICAgICAg ICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgIFBNNkgsICAgMiwgCiAgICAgICAgICAg ICAgICAgICAgICAgIE9mZnNldCAoMHg1NyksIAogICAgICAgICAgICAgICAgICAgICwgICA3LCAK ICAgICAgICAgICAgICAgIEhFTkEsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHg1QyksIAogICAgICAgICAgICAgICAgICAgICwgICAzLCAKICAgICAgICAgICAgICAgIFRP VUQsICAgNQogICAgICAgICAgICB9CgogICAgICAgICAgICBOYW1lIChCVUYwLCBSZXNvdXJjZVRl bXBsYXRlICgpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFdvcmRCdXNOdW1iZXIgKFJl c291cmNlUHJvZHVjZXIsIE1pbkZpeGVkLCBNYXhGaXhlZCwgUG9zRGVjb2RlLAogICAgICAgICAg ICAgICAgICAgIDB4MDAwMCwgICAgICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAg ICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAg ICAgICAgICAweDAwRkYsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAg ICAgICAgICAgICAgIDB4MDEwMCwgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAg ICAgICAgLCwgKQogICAgICAgICAgICAgICAgRFdvcmRJTyAoUmVzb3VyY2VQcm9kdWNlciwgTWlu Rml4ZWQsIE1heEZpeGVkLCBQb3NEZWNvZGUsIEVudGlyZVJhbmdlLAogICAgICAgICAgICAgICAg ICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAg ICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAg ICAweDAwMDAwQ0Y3LCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAg ICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAg ICAgICAgIDB4MDAwMDBDRjgsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAg LCwgLCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAg ICAgICAgICAgIDB4MENGOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAg ICAgICAgICAgIDB4MENGOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAg ICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAg ICAgICAgMHgwOCwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAp CiAgICAgICAgICAgICAgICBEV29yZElPIChSZXNvdXJjZVByb2R1Y2VyLCBNaW5GaXhlZCwgTWF4 Rml4ZWQsIFBvc0RlY29kZSwgRW50aXJlUmFuZ2UsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAw MDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDBE MDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMEZG RkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw MDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgw MDAwRjMwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAsLCAsIFR5cGVT dGF0aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9z RGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAg ICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAg ICAgICAgICAgICAweDAwMEEwMDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg ICAgICAgICAgICAweDAwMEJGRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAg ICAgICAgICAgICAgICAgIDB4MDAwMjAwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAg ICAgICAgICAgLCwgLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAg ICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwg TWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAw MDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAwMEMw MDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMEMz RkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAw MDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4 MDAwMDQwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgLCwgX1kwMCwg QWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRNZW1v cnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNo ZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAg IC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDBDNDAwMCwgICAgICAgICAv LyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDBDN0ZGRiwgICAgICAgICAv LyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAv LyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAg ICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICwsIF9ZMDEsIEFkZHJlc3NSYW5nZU1l bW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVBy b2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3Jp dGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0 eQogICAgICAgICAgICAgICAgICAgIDB4MDAwQzgwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11 bQogICAgICAgICAgICAgICAgICAgIDB4MDAwQ0JGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11 bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24g T2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMCwgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICAsLCBfWTAyLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0 aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVj b2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAg ICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAg ICAgICAgICAweDAwMENDMDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAg ICAgICAgICAweDAwMENGRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAg ICAgICAgICAgICAgIDB4MDAwMDQwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAg ICAgICAgLCwgX1kwMywgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAg ICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQs IE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAw MDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDBE MDAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDBE M0ZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAw MDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAw eDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICwsIF9ZMDQs IEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVt b3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2Fj aGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAg ICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAwRDQwMDAsICAgICAgICAg Ly8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwRDdGRkYsICAgICAgICAg Ly8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAg Ly8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMCwgICAg ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAsLCBfWTA1LCBBZGRyZXNzUmFuZ2VN ZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQ cm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVhZFdy aXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJp dHkKICAgICAgICAgICAgICAgICAgICAweDAwMEQ4MDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmlt dW0KICAgICAgICAgICAgICAgICAgICAweDAwMERCRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGlt dW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9u IE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDAsICAgICAgICAgLy8gTGVuZ3Ro CiAgICAgICAgICAgICAgICAgICAgLCwgX1kwNiwgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3Rh dGljKQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0Rl Y29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAg ICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAg ICAgICAgICAgMHgwMDBEQzAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAg ICAgICAgICAgMHgwMDBERkZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAg ICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAg ICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAg ICAgICAgICwsIF9ZMDcsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAg ICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVk LCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgw MDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAgICAgICAgICAgIDB4MDAw RTAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAw RTNGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAw MDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAg MHgwMDAwNDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAsLCBfWTA4 LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAgICAgICAgICBEV29yZE1l bW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIENh Y2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAg ICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAwMEU0MDAwLCAgICAgICAg IC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMEU3RkZGLCAgICAgICAg IC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAg IC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDAsICAg ICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgLCwgX1kwOSwgQWRkcmVzc1Jhbmdl TWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNl UHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRX cml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFy aXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDBFODAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5p bXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDBFQkZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhp bXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlv biBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0 aAogICAgICAgICAgICAgICAgICAgICwsIF9ZMEEsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0 YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NE ZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsCiAgICAgICAg ICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQogICAgICAgICAg ICAgICAgICAgIDB4MDAwRUMwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAg ICAgICAgICAgIDB4MDAwRUZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAg ICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0CiAgICAg ICAgICAgICAgICAgICAgMHgwMDAwNDAwMCwgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAg ICAgICAgICAsLCBfWTBCLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpCiAgICAgICAg ICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhl ZCwgTWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgIDB4 MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkKICAgICAgICAgICAgICAgICAgICAweDAw MEYwMDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAweDAw MEZGRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAweDAw MDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldAogICAgICAgICAgICAgICAgICAg IDB4MDAwMTAwMDAsICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgLCwgX1kw QywgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQogICAgICAgICAgICAgICAgRFdvcmRN ZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBD YWNoZWFibGUsIFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAg ICAgIC8vIEdyYW51bGFyaXR5CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAg ICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgMHhGRUJGRkZGRiwgICAgICAg ICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAg ICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQKICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAg ICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICwsIF9ZMEUsIEFkZHJlc3NSYW5n ZU1lbW9yeSwgVHlwZVN0YXRpYykKICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJj ZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFk V3JpdGUsCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxh cml0eQogICAgICAgICAgICAgICAgICAgIDB4RkVENDAwMDAsICAgICAgICAgLy8gUmFuZ2UgTWlu aW11bQogICAgICAgICAgICAgICAgICAgIDB4RkVENDRGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4 aW11bQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRp b24gT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBMZW5n dGgKICAgICAgICAgICAgICAgICAgICAsLCBfWTBELCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVT dGF0aWMpCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFs aXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgSWYgKFBNMUwpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5Q Q0kwLl9ZMDAuX0xFTiwgQzBMTikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgQzBM TikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChQTTFMLCAw eDAxKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVs ZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMDAuX1JXLCBDMFJXKQogICAgICAgICAgICAgICAgICAgIFN0 b3JlIChaZXJvLCBDMFJXKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChQ TTFIKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmll bGQgKEJVRjAsIFxfU0IuUENJMC5fWTAxLl9MRU4sIEM0TE4pCiAgICAgICAgICAgICAgICAgICAg U3RvcmUgKFplcm8sIEM0TE4pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYg KExFcXVhbCAoUE0xSCwgMHgwMSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlQml0RmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTAxLl9SVywgQzRSVykKICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoWmVybywgQzRSVykKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBJZiAoUE0yTCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwMi5fTEVOLCBDOExOKQogICAg ICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBDOExOKQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIElmIChMRXF1YWwgKFBNMkwsIDB4MDEpKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwMi5f UlcsIEM4UlcpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEM4UlcpCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKFBNMkgpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMDMu X0xFTiwgQ0NMTikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgQ0NMTikKICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChQTTJILCAweDAxKSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoQlVGMCwg XF9TQi5QQ0kwLl9ZMDMuX1JXLCBDQ1JXKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJv LCBDQ1JXKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChQTTNMKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAs IFxfU0IuUENJMC5fWTA0Ll9MRU4sIEQwTE4pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFpl cm8sIEQwTE4pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAo UE0zTCwgMHgwMSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRl Qml0RmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTA0Ll9SVywgRDBSVykKICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoWmVybywgRDBSVykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBJZiAoUE0zSCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVE V29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwNS5fTEVOLCBENExOKQogICAgICAgICAgICAg ICAgICAgIFN0b3JlIChaZXJvLCBENExOKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIElmIChMRXF1YWwgKFBNM0gsIDB4MDEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwNS5fUlcsIEQ0Ulcp CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEQ0UlcpCiAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgSWYgKFBNNEwpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMDYuX0xFTiwgRDhM TikKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgRDhMTikKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChQTTRMLCAweDAxKSkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kw Ll9ZMDYuX1JXLCBEOFJXKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBEOFJXKQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChQTTRIKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJ MC5fWTA3Ll9MRU4sIERDTE4pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIERDTE4p CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoUE00SCwgMHgw MSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQg KEJVRjAsIFxfU0IuUENJMC5fWTA3Ll9SVywgRENSVykKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoWmVybywgRENSVykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoUE01 TCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk IChCVUYwLCBcX1NCLlBDSTAuX1kwOC5fTEVOLCBFMExOKQogICAgICAgICAgICAgICAgICAgIFN0 b3JlIChaZXJvLCBFMExOKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKFBNNUwsIDB4MDEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IENyZWF0ZUJpdEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwOC5fUlcsIEUwUlcpCiAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKFplcm8sIEUwUlcpCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgSWYgKFBNNUgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg Q3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMDkuX0xFTiwgRTRMTikKICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoWmVybywgRTRMTikKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBJZiAoTEVxdWFsIChQTTVILCAweDAxKSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMDkuX1JX LCBFNFJXKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBFNFJXKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChQTTZMKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTBBLl9M RU4sIEU4TE4pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIEU4TE4pCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoUE02TCwgMHgwMSkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJVRjAsIFxf U0IuUENJMC5fWTBBLl9SVywgRThSVykKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywg RThSVykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBJZiAoUE02SCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBc X1NCLlBDSTAuX1kwQi5fTEVOLCBFQ0xOKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJv LCBFQ0xOKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFBN NkgsIDB4MDEpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJp dEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwQi5fUlcsIEVDUlcpCiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKFplcm8sIEVDUlcpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg SWYgKFBNMEgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdv cmRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMEMuX0xFTiwgRjBMTikKICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoWmVybywgRjBMTikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBJZiAoTEVxdWFsIChQTTBILCAweDAxKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVCaXRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMEMuX1JXLCBGMFJXKQog ICAgICAgICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBGMFJXKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIElmIChUUE1QKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTBELl9MRU4sIFRQTUwp CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4NTAwMCwgVFBNTCkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kw RS5fTUlOLCBNMU1OKQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9T Qi5QQ0kwLl9ZMEUuX01BWCwgTTFNWCkKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQg KEJVRjAsIFxfU0IuUENJMC5fWTBFLl9MRU4sIE0xTE4pCiAgICAgICAgICAgICAgICBTaGlmdExl ZnQgKFRPVUQsIDB4MUIsIE0xTU4pCiAgICAgICAgICAgICAgICBBZGQgKFN1YnRyYWN0IChNMU1Y LCBNMU1OKSwgMHgwMSwgTTFMTikKICAgICAgICAgICAgICAgIFJldHVybiAoQlVGMCkKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgTWV0aG9kIChfUFJULCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBJZiAoR1BJQykKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MEYpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDFGRkZGLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAy RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMAogICAg ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAwMkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MTEKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAg ICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwMUJGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDE1CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDRkZGRiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgxMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQ0ZGRkYsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgICAgICAgICAg ICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUNGRkZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAg ICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDFDRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMwog ICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAxREZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MTMKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg ICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwMURGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFERkZGRiwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgxMwogICAgICAgICAgICAgICAgICAgICAgICB9LCAK CiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxREZGRkYsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKICAgICAgICAgICAgICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMUVGRkZG LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2CiAgICAgICAg ICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMDFFRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgx NAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAxRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MTYKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDBGKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxRkZG RiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0EsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAwMkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktBLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAg fSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDJGRkZGLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgXF9TQi5QQ0kwLkxQQ0IuTE5LQiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDFCRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0YsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxQ0ZGRkYsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NC LlBDSTAuTFBDQi5MTktBLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAg ICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwMUNGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuTE5LQiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFDRkZGRiwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5M UENCLkxOS0MsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAg ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAx Q0ZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktELCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwMURGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuTE5L RCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDFERkZGRiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0QsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAxREZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktELCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfSwg CgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMURGRkZGLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg XF9TQi5QQ0kwLkxQQ0IuTE5LSCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAg ICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDFFRkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0csIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxRUZGRkYsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBD STAuTFBDQi5MTktFLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAg ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMUZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuTE5LRywgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICB9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZp Y2UgKFBEUkMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJ ZCAoIlBOUDBDMDIiKSkKICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDEpCiAgICAgICAg ICAgICAgICBOYW1lIChCVUYwLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAg ICAgICAgICAgICAgICAweEUwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAg ICAgICAgICAgICAgICAgICAweDEwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVk IChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkVEMTQwMDAsICAgICAgICAg Ly8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDAsICAgICAg ICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAg ICAgMHhGRUQxODAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAg ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRl LAogICAgICAgICAgICAgICAgICAgICAgICAweEZFRDE5MDAwLCAgICAgICAgIC8vIEFkZHJlc3Mg QmFzZQogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8vIEFkZHJl c3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICBN ZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4RkVEMUMw MDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw MDQwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAg ICAgICAgICAgICAgICAgMHhGRUQyMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAog ICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhl ZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAweEZFRDQwMDAwLCAgICAgICAg IC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA1MDAwLCAgICAg ICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAg ICAgIDB4RkVENDUwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAwNEIwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAg ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE5hbWUgKEJV RjEsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIDB4 RTAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAg IDB4MTAwMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAg ICAgICAgKQogICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwKICAg ICAgICAgICAgICAgICAgICAgICAgMHhGRUQxNDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UK ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExl bmd0aAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgTWVtb3J5 MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAweEZFRDE4MDAwLCAg ICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAw LCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAg ICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkVEMTkwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAwMDEwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJl YWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRUQxQzAwMCwgICAgICAgICAvLyBB ZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMCwgICAgICAgICAv LyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAg ICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLAogICAgICAgICAgICAgICAgICAgICAgICAw eEZFRDIwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAg ICAweDAwMDIwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4RkVENDUwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNl CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNEIwMDAsICAgICAgICAgLy8gQWRkcmVzcyBM ZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICBJZiAoTE5vdCAoVFBNUCkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRjApCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJVRjEpCiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoUEVHUCkKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDAxMDAwMCkKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBJZiAoR1BJQykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MTAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgxMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA0KQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgw eDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuTE5LQSwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0IsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s IAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZG LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktDLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuTE5LRCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBEZXZpY2UgKE5HRlgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX0FEUiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKE5WSUYs IDMsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoQnVmZmVyICgweDA0KSB7fSwgTG9jYWwwKQogICAgICAgICAgICAgICAg ICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDAsIDB4MDAsIFNUQTApCiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChCdWZmZXIgKDB4MDQpIHt9LCBMb2NhbDEpCiAgICAgICAgICAg ICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsMSwgMHgwMCwgREFUMCkKICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4ODAwMDAwMDIsIFNUQTApCiAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDAwLCBEQVQwKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAo TEVxdWFsIChBcmcwLCAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJnMSwgMHgwMCkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDAsIFNUQTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIERB VDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2FsMCwg TG9jYWwxLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIDB4MDUpKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChBcmcxLCAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgU1RBMCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgREFUMCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDb25jYXRlbmF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChBcmcxLCAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgU1RBMCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoXF9TQi5QQ0kwLkxQQ0IuRUMwLkRPS0QpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHgwMSwgREFUMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDAsIERBVDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDb25jYXRlbmF0ZSAoTG9jYWwwLCBMb2NhbDEsIExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJnMCwgMHgwQikpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzEsIDB4MDEp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFN0b3JlICgweDAwLCBTVEEwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChCdWZmZXIgKDB4MDgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gICAg MHgwMCwgMHgwMSwgMHgwMSwgMHgwMCwgMHgxMSwgMHgwMSwgMHgwMSwgMHgwMAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ29uY2F0ZW5hdGUgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfRE9ELCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAzKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMTEw LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAxMDAsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDAxMDExMQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChMQ0QpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9BRFIsIDAs IFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQW5kICgweEZGRkYsIDB4MDExMCkpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIERldmlj ZSAoQ1JUKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfQURSLCAwLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFuZCAoMHhGRkZGLCAweDAxMDApKQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBEZXZpY2UgKERWSSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0FEUiwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBbmQgKDB4RkZGRiwg MHgwMTExKSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChHRlgw KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMDIwMDAwKQog ICAgICAgICAgICAgICAgTWV0aG9kIChfRE9TLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RPRCwg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJ ZiAoTEVxdWFsIChORElELCAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIE5hbWUgKFRNUDEsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYKICAgICAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9yICgweDAw MDEwMDAwLCBESUQxKSwgSW5kZXggKFRNUDEsIDB4MDApKQogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFRNUDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBJZiAoTEVxdWFsIChORElELCAweDAyKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKFRNUDIsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRgogICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT3IgKDB4MDAwMTAwMDAsIERJRDEp LCBJbmRleCAoVE1QMiwgMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPciAo MHgwMDAxMDAwMCwgRElEMiksIEluZGV4IChUTVAyLCAweDAxKSkKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChUTVAyKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgSWYgKExFcXVhbCAoTkRJRCwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBOYW1lIChUTVAzLCBQYWNrYWdlICgweDAzKQogICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhGRkZGRkZGRgogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoT3IgKDB4MDAwMTAwMDAsIERJRDEpLCBJbmRleCAoVE1Q MywgMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPciAoMHgwMDAxMDAwMCwg RElEMiksIEluZGV4IChUTVAzLCAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KE9yICgweDAwMDEwMDAwLCBESUQzKSwgSW5kZXggKFRNUDMsIDB4MDIpKQogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFRNUDMpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoTEVxdWFsIChORElELCAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFRNUDQsIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZG RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4RkZGRkZGRkYKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKE9yICgweDAwMDEwMDAwLCBESUQxKSwgSW5kZXggKFRNUDQsIDB4MDApKQog ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT3IgKDB4MDAwMTAwMDAsIERJRDIpLCBJbmRl eCAoVE1QNCwgMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPciAoMHgwMDAx MDAwMCwgRElEMyksIEluZGV4IChUTVA0LCAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKE9yICgweDAwMDEwMDAwLCBESUQ0KSwgSW5kZXggKFRNUDQsIDB4MDMpKQogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFRNUDQpCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBOYW1lIChUTVA1LCBQYWNrYWdlICgweDA1KQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAg ICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZG RkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgCiAgICAgICAgICAgICAg ICAgICAgICAgIDB4RkZGRkZGRkYKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAg ICAgICAgIFN0b3JlIChPciAoMHgwMDAxMDAwMCwgRElEMSksIEluZGV4IChUTVA1LCAweDAwKSkK ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT3IgKDB4MDAwMTAwMDAsIERJRDIpLCBJbmRleCAo VE1QNSwgMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9yICgweDAwMDEwMDAwLCBE SUQzKSwgSW5kZXggKFRNUDUsIDB4MDIpKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChPciAo MHgwMDAxMDAwMCwgRElENCksIEluZGV4IChUTVA1LCAweDAzKSkKICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoT3IgKDB4MDAwMTAwMDAsIERJRDUpLCBJbmRleCAoVE1QNSwgMHgwNCkpCiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChUTVA1KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIERldmljZSAoTENEKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX0FEUiwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoQW5kICgweEZGRkYsIERJRDMpKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlJJVCwgUGFja2FnZSAoMHgw OSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQsIAog ICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgx QywgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MjgsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDM0LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHg0MCwgCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4NEMsIAogICAgICAgICAgICAgICAgICAgICAgICAweDU4LCAKICAgICAgICAgICAg ICAgICAgICAgICAgMHg2NAogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfQkNMLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoUkVUQiwgUGFja2FnZSAoMHgwQikge30pCiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9mIChJbmRleCAoQlJJVCwgMHgwOCkp LCBJbmRleCAoUkVUQiwgMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJl Zk9mIChJbmRleCAoQlJJVCwgMHgwOCkpLCBJbmRleCAoUkVUQiwgMHgwMSkpCiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChaZXJvLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg IFdoaWxlIChMTGVzcyAoTG9jYWwwLCBTaXplT2YgKEJSSVQpKSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4 IChCUklULCBMb2NhbDApKSwgSW5kZXggKFJFVEIsIEFkZCAoTG9jYWwwLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAyKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ bmNyZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChSRVRCKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfQkNNLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE1hdGNoIChCUklULCBNRVEs IEFyZzAsIE1UUiwgMHgwMCwgMHgwMCksIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKExFcXVhbCAoTG9jYWwwLCBPbmVzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBQSFNCICgweEMzLCBMb2NhbDApCiAgICAg ICAgICAgICAgICAgICAgICAgIFBIU0IgKDB4QzIsIExvY2FsMCkKICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfQlFDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFBIU0IgKDB4QzEsIDB4MDApLCBMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoRGVyZWZPZiAoSW5kZXggKEJSSVQs IExvY2FsMCkpKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChIREVGKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBOYW1lIChfQURSLCAweDAwMUIwMDAwKQogICAgICAgICAgICAgICAgTWV0aG9kIChB WlBXLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg IElmIChcX1NCLlBDSTAuTFBDQi5FQzAuRUNPSykKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElmIChBcmcwKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgTG9jYWwwKQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIExv Y2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKExOb3RFcXVhbCAoTG9jYWwwLCBcX1NCLlBDSTAuTFBDQi5FQzAuVkFVRCkpCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAx LCBcX1NCLlBDSTAuTFBDQi5FQzAuUE1VVCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChMb2NhbDAsIFxfU0IuUENJMC5MUENCLkVDMC5WQVVEKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU2xlZXAgKDB4MDEyQykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDAwLCBcX1NCLlBDSTAuTFBDQi5FQzAuUE1VVCkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgQVpQVyAoMHgwMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoUlAwMSkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDFDMDAwMCkKICAg ICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUDFDUywgUENJX0NvbmZpZywgMHg0MCwgMHgw MTAwKQogICAgICAgICAgICAgICAgRmllbGQgKFAxQ1MsIEFueUFjYywgTm9Mb2NrLCBXcml0ZUFz WmVyb3MpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4MUEpLCAKICAgICAgICAgICAgICAgICAgICBBQlAxLCAgIDEsIAogICAgICAgICAgICAg ICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgUERDMSwgICAxLCAKICAgICAg ICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAgIFBEUzEsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjApLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyMiksIAogICAgICAgICAgICAgICAgICAgIFBTUDEs ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4OUMpLCAKICAgICAg ICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgICAgICBIUENTLCAgIDEs IAogICAgICAgICAgICAgICAgICAgIFBNQ1MsICAgMQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIERldmljZSAoUzFGMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBOYW1lIChfQURSLCAweDAwKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9TVU4sIDB4 MDEpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDksIAogICAgICAgICAg ICAgICAgICAgICAgICAweDA0CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9STVYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoUzFGMSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAxKQogICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9TVU4sIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDksIAogICAgICAgICAgICAgICAgICAgICAgICAweDA0CiAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9STVYsIDAsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIERldmljZSAoUzFGMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBOYW1lIChfQURSLCAweDAyKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9TVU4s IDB4MDEpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDksIAogICAgICAg ICAgICAgICAgICAgICAgICAweDA0CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9STVYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoUzFGMykK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAzKQog ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9TVU4sIDB4MDEpCiAgICAgICAgICAgICAgICAgICAg TmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDksIAogICAgICAgICAgICAgICAgICAgICAgICAweDA0CiAgICAg ICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9STVYsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIERldmljZSAoUzFGNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBOYW1lIChfQURSLCAweDA0KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9T VU4sIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDksIAogICAg ICAgICAgICAgICAgICAgICAgICAweDA0CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKF9STVYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoUzFG NSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA1 KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9TVU4sIDB4MDEpCiAgICAgICAgICAgICAgICAg ICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDksIAogICAgICAgICAgICAgICAgICAgICAgICAweDA0CiAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9STVYsIDAs IE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIERldmljZSAoUzFGNikKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA2KQogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9TVU4sIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgw MikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDksIAog ICAgICAgICAgICAgICAgICAgICAgICAweDA0CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKF9STVYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAo UzFGNykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAw eDA3KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9TVU4sIDB4MDEpCiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDksIAogICAgICAgICAgICAgICAgICAgICAgICAweDA0 CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9STVYs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoXEdQSUMpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZG RiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgxMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDEzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxfU0IuUENJMC5MUENCLkxOS0EsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBD STAuTFBDQi5MTktCLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ YWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0Iu TE5LQywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0QsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoUlAw MikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDFDMDAwMSkK ICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUDJDUywgUENJX0NvbmZpZywgMHg0MCwg MHgwMTAwKQogICAgICAgICAgICAgICAgRmllbGQgKFAyQ1MsIEFueUFjYywgTm9Mb2NrLCBXcml0 ZUFzWmVyb3MpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4MUEpLCAKICAgICAgICAgICAgICAgICAgICBBQlAyLCAgIDEsIAogICAgICAgICAg ICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgUERDMiwgICAxLCAKICAg ICAgICAgICAgICAgICAgICAgICAgLCAgIDIsIAogICAgICAgICAgICAgICAgICAgIFBEUzIsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjApLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyMiksIAogICAgICAgICAgICAgICAgICAgIFBT UDIsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4OUMpLCAKICAg ICAgICAgICAgICAgICAgICAgICAgLCAgIDMwLCAKICAgICAgICAgICAgICAgICAgICBIUENTLCAg IDEsIAogICAgICAgICAgICAgICAgICAgIFBNQ1MsICAgMQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIERldmljZSAoV0xBTikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBOYW1lIChfQURSLCAweDAwKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QU0Ms IDB4MDApCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDAsIF9QU0MpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgX1BTQykKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikK ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg TWV0aG9kIChfUFJULCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmIChcR1BJQykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZG RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MTEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0 KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgxMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA0KQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuTE5LQiwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0MsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhG RkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktELCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuTE5LQSwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChSUDAzKQogICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMUMwMDAyKQogICAgICAgICAgICAgICAgT3BlcmF0 aW9uUmVnaW9uIChQM0NTLCBQQ0lfQ29uZmlnLCAweDQwLCAweDAxMDApCiAgICAgICAgICAgICAg ICBGaWVsZCAoUDNDUywgQW55QWNjLCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxQSksIAogICAgICAg ICAgICAgICAgICAgIEFCUDMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAK ICAgICAgICAgICAgICAgICAgICBQREMzLCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAs ICAgMiwgCiAgICAgICAgICAgICAgICAgICAgUERTMywgICAxLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHgyMCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDIyKSwgCiAgICAgICAgICAgICAgICAgICAgUFNQMywgICAxLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9mZnNldCAoMHg5QyksIAogICAgICAgICAgICAgICAgICAgICAgICAs ICAgMzAsIAogICAgICAgICAgICAgICAgICAgIEhQQ1MsICAgMSwgCiAgICAgICAgICAgICAgICAg ICAgUE1DUywgICAxCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChf UFJULCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIElmIChcR1BJQykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDEzCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgxMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDA0KQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuTE5LQywgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAg fSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZG RkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0QsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktBLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXF9TQi5QQ0kwLkxQQ0IuTE5LQiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBEZXZpY2UgKFRMQU4pCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg TmFtZSAoX0FEUiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfUFJXLCBQYWNrYWdl ICgweDAyKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgMHgw OSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKF9IUFAsIFBhY2thZ2UgKDB4 MDQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgxMCwgCiAgICAgICAg ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAg ICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAg ICAgRGV2aWNlIChSUDA0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURS LCAweDAwMUMwMDAzKQogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQNENTLCBQQ0lf Q29uZmlnLCAweDQwLCAweDAxMDApCiAgICAgICAgICAgICAgICBGaWVsZCAoUDRDUywgQW55QWNj LCBOb0xvY2ssIFdyaXRlQXNaZXJvcykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE9mZnNldCAoMHgxQSksIAogICAgICAgICAgICAgICAgICAgIEFCUDQsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBQ REM0LCAgIDEsIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAg ICAgICAgUERTNCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgy MCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDIyKSwgCiAgICAgICAg ICAgICAgICAgICAgUFNQNCwgICAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHg5QyksIAogICAgICAgICAgICAgICAgICAgICAgICAsICAgMzAsIAogICAgICAgICAgICAg ICAgICAgIEhQQ1MsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgUE1DUywgICAxCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJULCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChcR1BJQykKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTMKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHhGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDEwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXF9TQi5QQ0kwLkxQQ0IuTE5LRCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxf U0IuUENJMC5MUENCLkxOS0EsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAu TFBDQi5MTktCLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNr YWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4RkZGRiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuTE5L QywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKERMQU4pCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMCkKICAg ICAgICAgICAgICAgICAgICBOYW1lIChfU1VOLCAweDA0KQogICAgICAgICAgICAgICAgICAgIE5h bWUgKF9QUlcsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAweDA5LCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAg ICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0VKRCwgIlxcX1NCLkRP Q0siKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoUzRGMSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAxKQogICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9TVU4sIDB4MDQpCiAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgRGV2aWNlIChTNEYyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIE5hbWUgKF9BRFIsIDB4MDIpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1NVTiwg MHgwNCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFM0RjMpCiAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMykKICAg ICAgICAgICAgICAgICAgICBOYW1lIChfU1VOLCAweDA0KQogICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgIERldmljZSAoUzRGNCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBOYW1lIChfQURSLCAweDA0KQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9TVU4s IDB4MDQpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChTNEY1KQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDUpCiAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX1NVTiwgMHgwNCkKICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBEZXZpY2UgKFM0RjYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0FEUiwgMHgwNikKICAgICAgICAgICAgICAgICAgICBOYW1lIChfU1VO LCAweDA0KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoUzRGNykK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDA3KQog ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9TVU4sIDB4MDQpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoVVNCMSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDFEMDAwMCkKICAgICAgICAgICAgICAgIE9wZXJh dGlvblJlZ2lvbiAoVTFDUywgUENJX0NvbmZpZywgMHhDNCwgMHgwNCkKICAgICAgICAgICAgICAg IEZpZWxkIChVMUNTLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBVMUVOLCAgIDIKICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICBOYW1lIChfUFJXLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIDB4MDMsIAogICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QU1csIDEsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKEFyZzApCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgVTFF TikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIFUxRU4p CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IE1ldGhvZCAoX1MzRCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTWV0aG9kIChfUzRELCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChVU0IyKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBOYW1lIChfQURSLCAweDAwMUQwMDAxKQogICAgICAgICAgICAgICAgT3BlcmF0aW9u UmVnaW9uIChVMkNTLCBQQ0lfQ29uZmlnLCAweEM0LCAweDA0KQogICAgICAgICAgICAgICAgRmll bGQgKFUyQ1MsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgIFUyRU4sICAgMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE5hbWUgKF9QUlcsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgMHgwNCwgCiAgICAgICAgICAgICAgICAgICAgMHgwMwogICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTVywgMSwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoQXJnMCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAzLCBVMkVOKQog ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgVTJFTikKICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0 aG9kIChfUzNELCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBNZXRob2QgKF9TNEQsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICB9CgogICAgICAgICAgICBEZXZpY2UgKFVTQjMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgIE5hbWUgKF9BRFIsIDB4MDAxRDAwMDIpCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdp b24gKFUyQ1MsIFBDSV9Db25maWcsIDB4QzQsIDB4MDQpCiAgICAgICAgICAgICAgICBGaWVsZCAo VTJDUywgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgVTNFTiwgICAyCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAweDBDLCAKICAgICAgICAgICAgICAgICAgICAweDAzCiAgICAgICAgICAgICAg ICB9KQogICAgICAgICAgICAgICAgTWV0aG9kIChfUFNXLCAxLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElmIChBcmcwKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDMsIFUzRU4pCiAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBVM0VOKQogICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2Qg KF9TM0QsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDAyKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1l dGhvZCAoX1M0RCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K CiAgICAgICAgICAgIERldmljZSAoVVNCNCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TmFtZSAoX0FEUiwgMHgwMDFEMDAwMykKICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAo VTRDUywgUENJX0NvbmZpZywgMHhDNCwgMHgwNCkKICAgICAgICAgICAgICAgIEZpZWxkIChVNENT LCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBVNEVOLCAgIDIKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBO YW1lIChfUFJXLCBQYWNrYWdlICgweDAyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIDB4MEUsIAogICAgICAgICAgICAgICAgICAgIDB4MDMKICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICBNZXRob2QgKF9QU1csIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgSWYgKEFyZzApCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgVTRFTikKICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIFU0RU4pCiAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1Mz RCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9k IChfUzRELCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAg ICAgICAgICAgRGV2aWNlIChVU0I3KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1l IChfQURSLCAweDAwMUQwMDA3KQogICAgICAgICAgICAgICAgRGV2aWNlIChIVUI3KQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDApCiAgICAgICAg ICAgICAgICAgICAgRGV2aWNlIChQUlQxKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMSkKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIERldmljZSAoUFJUMikKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDIpCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFBSVDMpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAzKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChQUlQ0KQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwNCkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIERldmljZSAoUFJUNSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4 MDUpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFBS VDYpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChf QURSLCAweDA2KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2 aWNlIChQUlQ3KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg TmFtZSAoX0FEUiwgMHgwNykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIERldmljZSAoUFJUOCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIE5hbWUgKF9BRFIsIDB4MDgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIE5hbWUgKF9QUlcsIFBhY2thZ2UgKDB4MDIpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgMHgwRCwgCiAgICAgICAgICAgICAgICAg ICAgMHgwMwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1MzRCwg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MDIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChf UzRELCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoMHgwMikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAg ICAgICAgRGV2aWNlIChQQ0lCKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChf QURSLCAweDAwMUUwMDAwKQogICAgICAgICAgICAgICAgRGV2aWNlIChTTFQwKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDApCiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX1BSVywgUGFja2FnZSAoMHgwMikKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MEIsIAogICAgICAgICAgICAgICAgICAgICAgICAw eDA0CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBEZXZpY2UgKENSRDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg TmFtZSAoX0FEUiwgMHgwMDA0MDAwMCkKICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdp b24gKENDUkQsIFBDSV9Db25maWcsIDB4MDAsIDB4RTQpCiAgICAgICAgICAgICAgICAgICAgRmll bGQgKENDUkQsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDQpLCAKICAgICAg ICAgICAgICAgICAgICAgICAgQ0QwNCwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDNFKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIENEM0UsICAgMzIs IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg0NCksIAogICAgICAg ICAgICAgICAgICAgICAgICBDRDQ0LCAgIDMyCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoWmVybywgQ0Q0NCkKICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QU0MsIDB4MDAp CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIF9Q U0MpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9Q UzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHgwMywgX1BTQykKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNl IChTMjk0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIs IDB4MDAwNDAwMDEpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChN U1QyKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4 MDAwNDAwMDIpCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChDUkQw KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAw NTAwMDApCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChDQ1JELCBQQ0lfQ29u ZmlnLCAweDAwLCAweEU0KQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChDQ1JELCBEV29yZEFj YywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA0KSwgCiAgICAgICAgICAgICAgICAgICAgICAg IENEMDQsICAgMzIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgz RSksIAogICAgICAgICAgICAgICAgICAgICAgICBDRDNFLCAgIDMyLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NDQpLCAKICAgICAgICAgICAgICAgICAgICAgICAg Q0Q0NCwgICAzMgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIENENDQpCiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBOYW1lIChfUFNDLCAweDAwKQogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBfUFNDKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4MDMsIF9QU0MpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoU0Q5NCkKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMDUwMDAyKQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoTU1TVCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMDUwMDAzKQogICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXpl ZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoR1BJQykKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAo MHgwQSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDRGRkZGLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAwNEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MTUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0RkZGRiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDRGRkZGLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAwNUZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MTIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1RkZGRiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE3CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAwOEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MTQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBCRkZGRiwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMEJGRkZGLCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwQSkKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwMDRGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktFLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 LCAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw NEZGRkYsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0YsIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0RkZG RiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuTE5LRywgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDRGRkZGLCAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5MTktILCAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNUZGRkYsIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxfU0IuUENJMC5MUENCLkxOS0MsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA1RkZGRiwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXF9TQi5QQ0kwLkxQQ0IuTE5LRSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDVGRkZGLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcX1NCLlBDSTAuTFBDQi5MTktILCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOEZGRkYsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxf U0IuUENJMC5MUENCLkxOS0UsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDBCRkZGRiwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5Q Q0kwLkxQQ0IuTE5LQiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSwgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwMEJGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBDSTAu TFBDQi5MTktDLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAg ICBEZXZpY2UgKEFVRDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIs IDB4MDAxRTAwMDIpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoTU9ETSkKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDFFMDAwMykKICAgICAg ICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChMUENCKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBOYW1lIChfQURSLCAweDAwMUYwMDAwKQogICAgICAgICAgICAgICAgT3BlcmF0aW9u UmVnaW9uIChMUEMwLCBQQ0lfQ29uZmlnLCAweDQwLCAweEMwKQogICAgICAgICAgICAgICAgRmll bGQgKExQQzAsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgyMCksIAogICAgICAgICAgICAgICAg ICAgIFBBUkMsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgUEJSQywgICA4LCAKICAgICAgICAg ICAgICAgICAgICBQQ1JDLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFBEUkMsICAgOCwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjgpLCAKICAgICAgICAgICAgICAg ICAgICBQRVJDLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFBGUkMsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgUEdSQywgICA4LCAKICAgICAgICAgICAgICAgICAgICBQSFJDLCAgIDgsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDQwKSwgCiAgICAgICAgICAgICAg ICAgICAgSU9EMCwgICA4LCAKICAgICAgICAgICAgICAgICAgICBJT0QxLCAgIDgsIAogICAgICAg ICAgICAgICAgICAgIElPRDIsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4NDQpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg0NiksIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDQ4KSwgCiAgICAgICAgICAgICAg ICAgICAgR0lEMiwgICAzMiwgCiAgICAgICAgICAgICAgICAgICAgR0lEMywgICAzMiwgCiAgICAg ICAgICAgICAgICAgICAgR0lENCwgICAzMgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgIERldmljZSAoTE5LQSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBO YW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAo X1VJRCwgMHgwMSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAo MHg4MCwgUEFSQykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5h bWUgKF9QUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCApCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7MTB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChSVExBLCBSZXNvdXJjZVRlbXBs YXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCBfWTBGKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAg ICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoUlRMQSwgXF9TQi5QQ0kwLkxQQ0IuTE5LQS5f Q1JTLl9ZMEYuX0lOVCwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8s IElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoMHgwMSwgQW5kIChQQVJD LCAweDBGKSwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSVExBKQogICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg Q3JlYXRlV29yZEZpZWxkIChBcmcwLCAweDAxLCBJUlEwKQogICAgICAgICAgICAgICAgICAgICAg ICBGaW5kU2V0UmlnaHRCaXQgKElSUTAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAg RGVjcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAs IFBBUkMpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9TVEEsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQW5kIChQQVJDLCAweDgwKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoTE5LQikKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikpCiAgICAgICAg ICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMikKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9ESVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHg4MCwgUEJSQykKICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9QUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxv dywgU2hhcmVkLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7MTB9CiAgICAgICAgICAg ICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChS VExCLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCBfWTEw KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoUlRMQiwgXF9T Qi5QQ0kwLkxQQ0IuTE5LQi5fQ1JTLl9ZMTAuX0lOVCwgSVJRMCkKICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKFplcm8sIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVm dCAoMHgwMSwgQW5kIChQQlJDLCAweDBGKSwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChSVExCKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChfU1JTLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAweDAxLCBJUlEwKQogICAg ICAgICAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSUTAsIExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChMb2NhbDAsIFBCUkMpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChQQlJDLCAweDgwKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDA5KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVs c2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDBCKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoTE5LQykKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQ TlAwQzBGIikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMykKICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg4MCwgUENSQykKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QUlMsIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElS USAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7MTB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KF9DUlMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBOYW1lIChSVExDLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2 ZUxvdywgU2hhcmVkLCBfWTExKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdv cmRGaWVsZCAoUlRMQywgXF9TQi5QQ0kwLkxQQ0IuTE5LQy5fQ1JTLl9ZMTEuX0lOVCwgSVJRMCkK ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIElSUTApCiAgICAgICAgICAgICAg ICAgICAgICAgIFNoaWZ0TGVmdCAoMHgwMSwgQW5kIChQQ1JDLCAweDBGKSwgSVJRMCkKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChSVExDKQogICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcw LCAweDAxLCBJUlEwKQogICAgICAgICAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElS UTAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIFBDUkMpCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChQ Q1JDLCAweDgwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IERldmljZSAoTE5LRCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJ RCwgMHgwNCkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg4 MCwgUERSQykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9QUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7MTB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChSVExELCBSZXNvdXJjZVRlbXBsYXRl ICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCBfWTEyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoUlRMRCwgXF9TQi5QQ0kwLkxQQ0IuTE5LRC5fQ1JT Ll9ZMTIuX0lOVCwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIElS UTApCiAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoMHgwMSwgQW5kIChQRFJDLCAw eDBGKSwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSVExEKQogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlV29yZEZpZWxkIChBcmcwLCAweDAxLCBJUlEwKQogICAgICAgICAgICAgICAgICAgICAgICBG aW5kU2V0UmlnaHRCaXQgKElSUTAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgRGVj cmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIFBE UkMpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9T VEEsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoQW5kIChQRFJDLCAweDgwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgIERldmljZSAoTE5LRSkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikpCiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9E SVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHg4MCwgUEVSQykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9QUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywg U2hhcmVkLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7MTB9CiAgICAgICAgICAgICAg ICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChSVExF LCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCBfWTEzKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICAgICAgICAgICAg IH0pCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoUlRMRSwgXF9TQi5Q Q0kwLkxQQ0IuTE5LRS5fQ1JTLl9ZMTMuX0lOVCwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKFplcm8sIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAo MHgwMSwgQW5kIChQRVJDLCAweDBGKSwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChSVExFKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfU1JTLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAweDAxLCBJUlEwKQogICAgICAg ICAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSUTAsIExvY2FsMCkKICAgICAgICAg ICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChMb2NhbDAsIFBFUkMpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChQRVJDLCAweDgwKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5 KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgweDBCKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoTE5LRikKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAw QzBGIikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwNikKICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9ESVMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg4MCwgUEZSQykKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QUlMsIFJlc291cmNlVGVtcGxh dGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElSUSAo TGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 MTB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9D UlMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBOYW1lIChSVExGLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxv dywgU2hhcmVkLCBfWTE0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9CiAgICAg ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRG aWVsZCAoUlRMRiwgXF9TQi5QQ0kwLkxQQ0IuTE5LRi5fQ1JTLl9ZMTQuX0lOVCwgSVJRMCkKICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIElSUTApCiAgICAgICAgICAgICAgICAg ICAgICAgIFNoaWZ0TGVmdCAoMHgwMSwgQW5kIChQRlJDLCAweDBGKSwgSVJRMCkKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChSVExGKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAw eDAxLCBJUlEwKQogICAgICAgICAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSUTAs IExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIFBGUkMpCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChQRlJD LCAweDgwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERl dmljZSAoTE5LRykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChf SElELCBFaXNhSWQgKCJQTlAwQzBGIikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwg MHgwNykKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg4MCwg UEdSQykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9Q UlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7MTB9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChSVExHLCBSZXNvdXJjZVRlbXBsYXRlICgp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElS USAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCBfWTE1KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHt9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg ICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoUlRMRywgXF9TQi5QQ0kwLkxQQ0IuTE5LRy5fQ1JTLl9Z MTUuX0lOVCwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFplcm8sIElSUTAp CiAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoMHgwMSwgQW5kIChQR1JDLCAweDBG KSwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSVExHKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRl V29yZEZpZWxkIChBcmcwLCAweDAxLCBJUlEwKQogICAgICAgICAgICAgICAgICAgICAgICBGaW5k U2V0UmlnaHRCaXQgKElSUTAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgRGVjcmVt ZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDAsIFBHUkMp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEs IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBJZiAoQW5kIChQR1JDLCAweDgwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIERldmljZSAoTE5LSCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBGIikpCiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoX1VJRCwgMHgwOCkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ESVMs IDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHg4MCwgUEhSQykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIE5hbWUgKF9QUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hh cmVkLCApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7MTB9CiAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChSVExILCBS ZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCBfWTE2KQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoUlRMSCwgXF9TQi5QQ0kw LkxQQ0IuTE5LSC5fQ1JTLl9ZMTYuX0lOVCwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKFplcm8sIElSUTApCiAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoMHgw MSwgQW5kIChQSFJDLCAweDBGKSwgSVJRMCkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChSVExIKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfU1JTLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCAweDAxLCBJUlEwKQogICAgICAgICAg ICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSUTAsIExvY2FsMCkKICAgICAgICAgICAg ICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChMb2NhbDAsIFBIUkMpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChQSFJDLCAweDgwKSkKICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICgweDBCKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoRUMwKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMDki KSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjIsICAgICAgICAgICAgIC8vIFJhbmdl IE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MiwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAg ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDA2NiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDY2LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9HUEUsIDB4MTcpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAo RUNPSywgMHgwMCkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9SRUcsIDIsIE5vdFNlcmlh bGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAo TEVxdWFsIChBcmcwLCAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKEFyZzEsIEVDT0spCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9Q UlcsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAweDFELCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwNQogICAgICAgICAgICAg ICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChFQ1IsIEVtYmVk ZGVkQ29udHJvbCwgMHgwMCwgMHhGRikKICAgICAgICAgICAgICAgICAgICBGaWVsZCAoRUNSLCBC eXRlQWNjLCBMb2NrLCBQcmVzZXJ2ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgwKSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIE1QQlAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1QQkQsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgICAgIERPS0QsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIERG QlAsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgxKSwg CiAgICAgICAgICAgICAgICAgICAgICAgIEJUMUEsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIEJUMkEsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEFDQVQsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgyKSwgCiAgICAgICAgICAgICAg ICAgICAgICAgIFBXUkIsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEpPR0IsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgICAgIExJRFMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDgzKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJUMVAs ICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJUMlAsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDg0KSwgCiAgICAgICAgICAgICAgICAgICAgICAg IEIxU1QsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEIyU1QsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDg3KSwgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDg4KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFdV UDAsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIERLSUQsICAgOCwgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDkwKSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIE1BU0ssICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJUMVMsICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgICAgIEJUMlMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDkyKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEJUMVcsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgICAgIEJUMlcsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDkzKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEZBTjAs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIENCMFMsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgICAgIENCMVMsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDk1KSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFBIWU8sICAgMSwgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDk2KSwgCiAgICAgICAgICAgICAgICAg ICAgICAgIEJSSVQsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9TVFAsICAgMSwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDk4KSwgCiAgICAgICAgICAg ICAgICAgICAgICAgIFBNVVQsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFZBVUQsICAg MSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDk5KSwgCiAgICAg ICAgICAgICAgICAgICAgICAgIFNNRE0sICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgT2Zmc2V0ICgweDlBKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweDlCKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNJUlEsICAgOCwgCiAgICAgICAg ICAgICAgICAgICAgICAgIFNMT0IsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIFNISUIs ICAgOCwgCiAgICAgICAgICAgICAgICAgICAgICAgIE1QV1IsICAgMSwgCiAgICAgICAgICAgICAg ICAgICAgICAgIENPRkYsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIEVSU1QsICAgMSwg CiAgICAgICAgICAgICAgICAgICAgICAgIEVPRkYsICAgMSwgCiAgICAgICAgICAgICAgICAgICAg ICAgIElSU1QsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIE9QT1csICAgMSwgCiAgICAg ICAgICAgICAgICAgICAgICAgIElVU0UsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgIExJ REUsICAgMSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEEwKSwg CiAgICAgICAgICAgICAgICAgICAgICAgIEIxUkMsICAgMTYsIAogICAgICAgICAgICAgICAgICAg ICAgICBCMUFCLCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAgQjFBQywgICAxNiwgCiAg ICAgICAgICAgICAgICAgICAgICAgIEIxVk8sICAgMTYsIAogICAgICAgICAgICAgICAgICAgICAg ICBCMlJDLCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAgQjJBQiwgICAxNiwgCiAgICAg ICAgICAgICAgICAgICAgICAgIEIyQUMsICAgMTYsIAogICAgICAgICAgICAgICAgICAgICAgICBC MlZPLCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAgQjFEQywgICAxNiwgCiAgICAgICAg ICAgICAgICAgICAgICAgIEIxTEYsICAgMTYsIAogICAgICAgICAgICAgICAgICAgICAgICBCMURW LCAgIDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAgQjFETCwgICAxNiwgCiAgICAgICAgICAg ICAgICAgICAgICAgIEIyREMsICAgMTYsIAogICAgICAgICAgICAgICAgICAgICAgICBCMkxGLCAg IDE2LCAKICAgICAgICAgICAgICAgICAgICAgICAgQjJEViwgICAxNiwgCiAgICAgICAgICAgICAg ICAgICAgICAgIEIyREwsICAgMTYsIAogICAgICAgICAgICAgICAgICAgICAgICBBMVRQLCAgIDE2 LCAKICAgICAgICAgICAgICAgICAgICAgICAgQTFBVCwgICAxNiwgCiAgICAgICAgICAgICAgICAg ICAgICAgIEExUFQsICAgMTYsIAogICAgICAgICAgICAgICAgICAgICAgICBBMUNULCAgIDE2LCAK ICAgICAgICAgICAgICAgICAgICAgICAgQTJUUCwgICAxNiwgCiAgICAgICAgICAgICAgICAgICAg ICAgIEEyQVQsICAgMTYsIAogICAgICAgICAgICAgICAgICAgICAgICBBMlBULCAgIDE2LCAKICAg ICAgICAgICAgICAgICAgICAgICAgQTJDVCwgICAxNiwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweEY0KSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAg NCwgCiAgICAgICAgICAgICAgICAgICAgICAgIENQUlMsICAgMQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoVURSUSwgMHgwMCkKICAgICAgICAgICAgICAg ICAgICBOYW1lIChEQ0tCLCAweDAwKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKFdVUDEsIDB4 MDApCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlQxQiwgMHgwMCkKICAgICAgICAgICAgICAg ICAgICBOYW1lIChCVDJCLCAweDAwKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKEFDQUIsIDB4 MDApCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTUwLCAwLCBOb3RTZXJpYWxpemVkKQog ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChBQ0FE LCAweDgwKQogICAgICAgICAgICAgICAgICAgICAgICBcX1NCLk5DUFUgKCkKICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1E1MSwgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChC VDFBKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOb3RpZnkgKEJBVDEsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOb3RpZnkgKEJBVDEsIDB4MDEpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoQkFUMSwgMHg4MCkKICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1E1MywgMCwgTm90 U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RNTgsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfVFouQVRG MCwgMHg4MSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1E1RiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9UWi5BVEYwLCAweDgwKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTYwLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChc X1NCLlBXUkIsIDB4ODApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9RNjYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuTElEMCwgMHg4MCkKICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1E2OSwgMCwgTm90U2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElm IChJR0RTKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOb3RpZnkgKFxfU0IuUENJMC5HRlgwLCAweDgxKQogICAgICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuUEVHUC5OR0ZY LCAweDgxKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RNUEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuRE9D SywgMHgwMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1E1QiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChMTm90IChVRFJRKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIElVU0UpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuRE9DSywgMHgwMCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlJQMDQsIDB4MDApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMCwgMHgwMSkKICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBVRFJRKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2lnbmFsIChcX1NCLkRPQ0suVURDSykKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgTWV0aG9kIChfUTVDLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKERPS0QpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5ET0NLLCAweDAz KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBEZXZpY2UgKEJBVDEpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAwQzBBIikpCiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAg IE5hbWUgKF9QQ0wsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IKICAgICAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoQkFUSSwgUGFja2FnZSAoMHgwRCkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDk2NTAsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHg5NjUwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgzOUQwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3OCwgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEEsIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIiIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxJT04iLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJTb255IENvcnAuIgogICAgICAgICAgICAgICAgICAgICAgICB9KQog ICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChCQVRTLCBQYWNrYWdlICgweDA0KQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwRDdBLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Mzg0MAogICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9T VEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFxfU0IuUENJMC5MUENCLkVDMC5FQ09LLCAw eDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBbmQgKFBIU0QgKDB4RDQsIDB4ODApLCAweDAxMDAsIExvY2FsMSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoQlQxQSwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMb2NhbDEpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MUYs IExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwRiwgTG9jYWwwKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWww KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9CSUYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFxfU0IuUENJMC5MUENCLkVDMC5F Q09LLCAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoUEhTRCAoMHhENCwgMHhCMCksIExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUEhTRCAoMHhENCwgMHhCMiksIExvY2Fs MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUEhTRCAoMHhENCwgMHhC NiksIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQjFEQywgTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChCMUxGLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKEIxRFYsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdWx0aXBseSAoTG9jYWwwLCAw eDBBLCBJbmRleCAoQkFUSSwgMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdWx0 aXBseSAoTG9jYWwxLCAweDBBLCBJbmRleCAoQkFUSSwgMHgwMikpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoTG9jYWwyLCBJbmRleCAoQkFUSSwgMHgwNCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEJBVEkpCiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0JTVCwgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KExFcXVhbCAoXF9TQi5QQ0kwLkxQQ0IuRUMwLkVDT0ssIDB4MDApKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChBbmQg KFBIU0QgKDB4RDQsIDB4ODQpLCAweEZGLCBMb2NhbDApLCBJbmRleCAoQkFUUywgMHgwMAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlIChQSFNEICgweEQ0LCAweEE2KSwgTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChQSFNEICgweEQ0LCAweEE0KSwgTG9jYWwxKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQSFNEICgweEQ0LCAweEEyKSwgTG9j YWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChCMVNULCBJbmRleCAoQkFUUywgMHgwMCkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEIxVk8sIExvY2FsMCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQjFBQywgTG9jYWwxKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlIChCMUFCLCBMb2NhbDIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwx LCAweEZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweEZGRkZGRkZGLCBMb2NhbDEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KExHcmVhdGVyRXF1YWwgKExvY2FsMSwgMHg4MDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhPciAoTG9jYWwx LCAweEZGRkYsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5j cmVtZW50IChMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNdWx0aXBseSAoTG9jYWwwLCBMb2NhbDEsIExvY2Fs MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXZpZGUgKExvY2FsMSwgMHgwM0U4 LCAsIExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwxLCBJbmRleCAoQkFUUywgMHgwMSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNdWx0aXBseSAoTG9jYWwyLCAweDBBLCBJbmRleCAoQkFUUywg MHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWwwLCBJbmRleCAo QkFUUywgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEJBVFMpCiAg ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFNjb3BlIChcKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgTmFtZSAoUFdSUywgT25lcykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgICAgIERldmljZSAoQUNBRCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJBQ1BJMDAwMyIpCiAgICAgICAgICAgICAgICAg ICAgICAgIE5hbWUgKF9QQ0wsIFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IKICAgICAgICAgICAgICAgICAgICAg ICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFNSLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoTEVxdWFsIChcX1NCLlBDSTAuTFBDQi5FQzAuRUNPSywgMHgwMCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5kIChQ SFNEICgweEQ0LCAweDgwKSwgMHgwNDAwLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEFDQVQs IExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoTG9jYWwxLCBQV1JTKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoRE1BQykKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAw MjAwIikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAo KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29k ZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBS YW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAg ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAg ICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIw LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwODEsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDA4MSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEsICAgICAgICAgICAgICAgLy8gTGVuZ3Ro CiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElP IChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA5MywgICAgICAgICAg ICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkzLCAg ICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwRCwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMEMwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGlt dW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxp Z25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwLCAgICAgICAgICAgICAgIC8v IExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAg ICAgICBETUEgKENvbXBhdGliaWxpdHksIE5vdEJ1c01hc3RlciwgVHJhbnNmZXI4XzE2LCApCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7NH0KICAgICAgICAgICAgICAgICAgICB9KQogICAg ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIERldmljZSAoRldIRCkKICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJJTlQwODAwIikp CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAo UmVhZE9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwLCAgICAgICAg IC8vIEFkZHJlc3MgQmFzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwMDAwMCwg ICAgICAgICAvLyBBZGRyZXNzIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg RGV2aWNlIChIUEVUKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9ISUQsIEVpc2FJZCAoIlBOUDAxMDMiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ0lE LCAweDAxMENEMDQxKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291cmNlVGVt cGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1l bW9yeTMyRml4ZWQgKFJlYWRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRUQw MDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDAwMDA0MDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF9ZMTcpCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEdyZWF0ZXJFcXVhbCAoT1NZUywgMHgwN0QxKSkK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KEhQQUUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEhQ QUUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDBCKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9D UlMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoSFBBRSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLkxQQ0IuSFBF VC5fWTE3Ll9CQVMsIEhQVDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFs IChIUEFTLCAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhGRUQwMTAwMCwgSFBUMCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFs IChIUEFTLCAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhGRUQwMjAwMCwgSFBUMCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFs IChIUEFTLCAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhGRUQwMzAwMCwgSFBUMCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChCVUYwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKElQSUMpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDAwMCIpKQogICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwLCAgICAgICAgICAgICAvLyBSYW5n ZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAg IC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAg ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDI0LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwMjQsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjgsICAgICAgICAgICAgIC8vIFJhbmdl IE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyOCwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAg ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAyQywgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDJDLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERl Y29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDMwLCAgICAgICAgICAgICAv LyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAsICAgICAg ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEs ICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAwMzQsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAzNCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1l bnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVu Z3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAg IElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAzOCwgICAgICAg ICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM4 LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMDNDLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwM0MsICAgICAgICAgICAgIC8vIFJhbmdlIE1h eGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8g QWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAg IC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAg ICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQTAs ICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDBBMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBBNCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWlu aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEE0LCAgICAgICAgICAgICAvLyBS YW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAg ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAg ICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg MHgwMEE4LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwQTgsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2Rl MTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQUMsICAgICAgICAgICAgIC8vIFJh bmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBBQywgICAgICAgICAg ICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAg ICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIs ICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDBCMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMEIwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8g KERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEI0LCAgICAgICAgICAg ICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQjQsICAg ICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAwQjgsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDBCOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGln bm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8g TGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAg ICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBCQywgICAg ICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MEJDLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwNEQwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVt CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA0RDAsICAgICAgICAgICAgIC8vIFJhbmdl IE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAg Ly8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAg ICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAg ICAgICAgICAgICBJUlFOb0ZsYWdzICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Mn0K ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg IERldmljZSAoTUFUSCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1l IChfSElELCBFaXNhSWQgKCJQTlAwQzA0IikpCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NS UywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MEYwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwRjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7MTN9CiAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKExEUkMpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMw MiIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDIpCiAgICAgICAgICAgICAg ICAgICAgTmFtZSAoQlVGMCwgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDRFLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwNEUsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25t ZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExl bmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAg ICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjEsICAgICAg ICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2 MSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDA2MywgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYzLCAgICAgICAgICAgICAvLyBSYW5nZSBN YXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v IEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAg ICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg ICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY1 LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwNjUsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjcsICAgICAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NywgICAgICAgICAgICAgLy8g UmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAg ICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAg ICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg ICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDA3MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDcwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29k ZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwLCAgICAgICAgICAgICAvLyBS YW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAsICAgICAgICAg ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAg ICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAx LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwOTIsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDA5MiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3Ro CiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElP IChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBCMiwgICAgICAgICAg ICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEIyLCAg ICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwNjgwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDA2ODAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGlt dW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxp Z25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDcwLCAgICAgICAgICAgICAgIC8v IExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAg ICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAsICAg ICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDgwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwLCAgICAgICAgICAgICAvLyBSYW5n ZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAg IC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgICAgICAgICAg ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgx MTgwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDExODAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDQwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2NDAsICAgICAgICAgICAgIC8vIFJhbmdl IE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTY0MCwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAg ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4RkUwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHhGRTAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgIE5hbWUgKEJVRjEsIFJlc291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDA0RSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDRFLCAgICAgICAgICAgICAvLyBSYW5nZSBN YXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v IEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAg ICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAg ICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYx LCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDAwNjEsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjMsICAgICAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MywgICAgICAgICAgICAgLy8g UmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAg ICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAg ICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAg ICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDA2NSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMDY1LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29k ZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY3LCAgICAgICAgICAgICAvLyBS YW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjcsICAgICAgICAg ICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAg ICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAx LCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog ICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwNzAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDA3MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3Ro CiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElP IChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCwgICAgICAgICAg ICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwLCAg ICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDkyLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwOTIsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGlt dW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxp Z25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8v IExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAg ICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQjIsICAg ICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDBCMiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDY4MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11 bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNjgwLCAgICAgICAgICAgICAvLyBSYW5n ZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAg IC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCwgICAgICAgICAg ICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg ICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw ODAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDA4MDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDEwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAsICAgICAgICAgICAgIC8vIFJhbmdl IE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMCwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAg ICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MTE4MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgxMTgwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHg0MCwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERl Y29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNjQwLCAgICAgICAgICAgICAv LyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2NDAsICAgICAg ICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEs ICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDEwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAg KQogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEZFMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4RkUwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1l bnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAgICAgICAgICAgLy8gTGVu Z3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgfSkK ICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQ0lSUCkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCVUYw KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKEJVRjEpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgIERldmljZSAoUlRDKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBCMDAiKSkKICAgICAgICAgICAgICAgICAgICBO YW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAwNzAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDA3MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElSUU5v RmxhZ3MgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHs4fQogICAgICAgICAgICAgICAg ICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChUSU1SKQog ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAo IlBOUDAxMDAiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBs YXRlICgpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJTyAo RGVjb2RlMTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAsICAgICAgICAgICAg IC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDQsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDA1MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDUwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVt CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAgICAgICAgICAgICAgIC8vIEFsaWdu bWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBM ZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAg ICAgSVJRTm9GbGFncyAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgezB9CiAgICAgICAg ICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2Ug KFNQSUMpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwg RWlzYUlkICgiU05ZNjAwMSIpKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKFJTUkMsIFJlc291 cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgyMCwgICAgICAgICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF9ZMTgpCiAgICAgICAgICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKF9ZMTkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICAgICAgICAgIH0pCiAg ICAgICAgICAgICAgICAgICAgTmFtZSAoU1NSQywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAgICAgICAvLyBSYW5nZSBNaW5p bXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJh bmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAg ICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwLCAgICAgICAg ICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAg ICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 fQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoU0lSVCwg UGFja2FnZSAoMHgwNCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDYsIAogICAgICAgICAgICAgICAgICAgICAgICAweDA5LCAKICAgICAgICAgICAgICAg ICAgICAgICAgMHgwQSwgCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MEIKICAgICAgICAgICAg ICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFs aXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0 ZUJ5dGVGaWVsZCAoUlNSQywgXF9TQi5QQ0kwLkxQQ0IuU1BJQy5fWTE4Ll9NSU4sIElPTTEpCiAg ICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoUlNSQywgMHgwMywgSU9NMikK ICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChSU1JDLCBcX1NCLlBDSTAu TFBDQi5TUElDLl9ZMTguX01JTiwgSU8xSSkKICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRl V29yZEZpZWxkIChSU1JDLCBcX1NCLlBDSTAuTFBDQi5TUElDLl9ZMTguX01BWCwgSU8xQSkKICAg ICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChSU1JDLCBcX1NCLlBDSTAuTFBD Qi5TUElDLl9ZMTkuX0lOVCwgSVJRVikKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVh bCAoXF9TQi5QQ0kwLkxQQ0IuRUMwLkVDT0ssIDB4MDApKQogICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUEhTQiAoMHhENCwgMHg5Qyks IElPTTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUEhTQiAoMHhENCwgMHg5 RCksIElPTTIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoXF9TQi5QQ0kwLkxQQ0IuRUMwLlNMT0IsIElPTTEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoXF9TQi5QQ0kwLkxQQ0IuRUMwLlNISUIsIElPTTIpCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChJTzFJ LCBJTzFBKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChcX1NCLlBDSTAuTFBD Qi5FQzAuRUNPSywgMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNoaWZ0UmlnaHQgKFBIU0IgKDB4RDQsIDB4OUIpLCAweDA0LCBMb2Nh bDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT aGlmdFJpZ2h0IChcX1NCLlBDSTAuTFBDQi5FQzAuU0lSUSwgMHgwNCwgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRC aXQgKExvY2FsMCwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTG9jYWwxKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNy ZW1lbnQgKExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChEZXJlZk9m IChJbmRleCAoU0lSVCwgTG9jYWwxKSksIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNoaWZ0TGVmdCAoMHgwMSwgTG9jYWwwLCBJUlFWKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJTUkMpCiAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIE5vdFNlcmlhbGl6 ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVC eXRlRmllbGQgKEFyZzAsIDB4MDIsIElPQTEpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0 ZUJ5dGVGaWVsZCAoQXJnMCwgMHgwMywgSU9BMikKICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlV29yZEZpZWxkIChBcmcwLCAweDAyLCBJT0EwKQogICAgICAgICAgICAgICAgICAgICAgICBD cmVhdGVXb3JkRmllbGQgKEFyZzAsIDB4MDksIElSUVYpCiAgICAgICAgICAgICAgICAgICAgICAg IEZpbmRTZXRSaWdodEJpdCAoSVJRViwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBEZWNyZW1lbnQgKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChNYXRjaCAoU0lSVCwgTUVRLCBMb2NhbDAsIE1UUiwgMHgwMCwgMHgwMCksIExvY2FsMSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0TGVmdCAoMHgxMCwgTG9jYWwxLCBMb2Nh bDIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoMHgwMCwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoTEVxdWFsIChcX1NCLlBDSTAuTFBDQi5FQzAuRUNPSywgMHgwMCkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBI U1cgKDB4RDUsIDB4OUIsIExvY2FsMikKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDIsIFxfU0IuUENJMC5MUENCLkVDMC5TSVJR KQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAo TEVxdWFsIChcX1NCLlBDSTAuTFBDQi5FQzAuRUNPSywgMHgwMCkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBIU1cgKDB4RDUsIDB4OUQsIElP QTIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSFNXICgweEQ1LCAweDlDLCBJT0ExKQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KElPQTIsIFxfU0IuUENJMC5MUENCLkVDMC5TSElCKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKElPQTEsIFxfU0IuUENJMC5MUENCLkVDMC5TTE9CKQogICAgICAgICAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwMSkKICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKE9yIChBbmQgKElPQTAsIDB4RkZGMCksIDB4MDAxQzAwMDEp LCBcX1NCLlBDSTAuTFBDQi5HSUQzKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnREZXBlbmRlbnRGbk5vUHJpICgpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPIChE ZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMwMDAsICAgICAgICAg ICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEMw MDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MjAsICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIFN0YXJ0RGVwZW5kZW50Rm5Ob1ByaSAoKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2RlMTYsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDODAwLCAgICAgICAgICAgICAvLyBSYW5nZSBN aW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhDODAwLCAgICAgICAgICAg ICAvLyBSYW5nZSBNYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwg ICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDIwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICBTdGFydERlcGVuZGVudEZuTm9QcmkgKCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4RDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4RDAwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4 aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAg Ly8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMCwgICAgICAg ICAgICAgICAvLyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnREZXBlbmRl bnRGbk5vUHJpICgpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eEQ4MDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweEQ4MDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAsICAgICAgICAgICAgICAgLy8gTGVu Z3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVuZERlcGVuZGVudEZuICgpCiAgICAgICAg ICAgICAgICAgICAgICAgIElSUU5vRmxhZ3MgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IHs2LDksMTAsMTF9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9ESVMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoX0NSUyAoKSwgU1NSQykKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKExFcXVhbCAoXF9TQi5QQ0kwLkxQQ0IuRUMwLkVDT0ssIDB4MDApKQogICAg ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSFNXICgw eEQ1LCAweDlCLCAweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhTVyAoMHhENSwg MHg5RCwgMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBIU1cgKDB4RDUsIDB4OUMs IDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdG9yZSAoMHgwMCwgXF9TQi5QQ0kwLkxQQ0IuRUMwLlNJUlEpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHgwMCwgXF9TQi5QQ0kwLkxQQ0IuRUMwLlNISUIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgXF9TQi5QQ0kwLkxQQ0IuRUMwLlNMT0Ip CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVw ICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgXF9TQi5QQ0kwLkxQ Q0IuR0lEMykKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFxfU0IuUENJMC5MUENCLkVDMC5FQ09LLCAweDAw KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg U2hpZnRSaWdodCAoUEhTQiAoMHhENCwgMHg5QiksIDB4MDQsIExvY2FsMCkKICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0UmlnaHQgKFxfU0Iu UENJMC5MUENCLkVDMC5TSVJRLCAweDA0LCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoTG9jYWwwLCBMb2Nh bDEpCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMb2NhbDEpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw RCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFNOQykKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJTTlk1MDAxIikpCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChHQlJULCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoXF9TQi5Q Q0kwLkxQQ0IuRUMwLkVDT0ssIDB4MDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUEhTRCAoMHhENCwgMHg5NiksIExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChcX1NCLlBDSTAuTFBDQi5FQzAuQlJJVCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBIU0IgKDB4Q0YsIExvY2FsMCkp CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFNCUlQs IDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBQSFNCICgweEMzLCBBcmcwKQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2Qg KEdQQlIsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKFBIU0IgKDB4QzEsIDB4MDApKQogICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChTUEJSLCAxLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgUEhTQiAoMHhD MiwgQXJnMCkKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChQV0FLLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQWNx dWlyZSAoUExPSywgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHg2NCkK ICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTAsIDB4ODApCiAgICAgICAg ICAgICAgICAgICAgICAgIElmIChNUEVOKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfUFIuQ1BVMSwgMHg4MCkKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4NjQpCiAg ICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFUwLCAweDgxKQogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoTVBFTikKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTEsIDB4ODEpCiAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UgKFBMT0spCiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoUFdSTiwgMCwgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5Q V1JCLCAweDgwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChDU1hCLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoTVBIUywgMHhGRkZGKQogICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoQXJnMCwgU1hCRikKICAgICAgICAgICAgICAgICAgICAgICAgUEhTMCAo MHhDQykKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFNYQkYsIExvY2FsMCkKICAgICAg ICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoTVBIUykKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKEdXRFAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKEFuZCAoUEhTQiAoMHhENCwgMHhGNCksIDB4 MEYpKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChD RFBXLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5MUENCLkVDMC5PUE9XLCBMb2NhbDEpCiAgICAg ICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzAsIE9uZSkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMTm90RXF1YWwgKExv Y2FsMSwgMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIFxfU0IuUENJMC5MUENCLkVDMC5JUlNUKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuUEFUQS5JQ1I0 LCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3IgKEFuZCAoTG9jYWwx LCAweDBDKSwgMHgwMSwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlIChMb2NhbDEsIFxfU0IuUENJMC5QQVRBLklDUjQpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKDB4MDAsIFxfU0IuUENJMC5MUENCLkVDMC5PUE9XKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDY0KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlIChcX1NCLlBDSTAuUEFUQS5JQ1I0LCBMb2NhbDEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT3IgKEFuZCAoTG9jYWwxLCAweDBDKSwgMHgwMCwgTG9jYWwx KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChMb2NhbDEsIFxfU0IuUENJ MC5QQVRBLklDUjQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAs IFxfU0IuUENJMC5MUENCLkVDMC5JUlNUKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExF cXVhbCAoQXJnMCwgWmVybykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwxLCAweDAwKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFN0b3JlICgweDAxLCBcX1NCLlBDSTAuTFBDQi5FQzAuSVJTVCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFxfU0IuUENJMC5QQVRBLklDUjQsIExvY2Fs MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3IgKEFuZCAoTG9jYWwxLCAw eDBDKSwgMHgwMiwgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoTG9jYWwxLCBcX1NCLlBDSTAuUEFUQS5JQ1I0KQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoXF9TQi5QQ0kwLlBBVEEuUFJJVCwgTG9jYWwxKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQW5kIChMb2NhbDEsIDB4RkZERCks IFxfU0IuUENJMC5QQVRBLlBSSVQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChcX1NCLlBDSTAuUEFUQS5JQ1I0LCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9yIChBbmQgKExvY2FsMSwgMHgwQyksIDB4MDEsIExvY2FsMSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKExvY2FsMSwgXF9TQi5QQ0kw LlBBVEEuSUNSNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDEsIFxfU0IuUENJMC5MUENCLkVDMC5PUE9XKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAg ICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChHQ0RQLCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KFxfU0IuUENJMC5MUENCLkVDMC5PUE9XLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoQW5kIChMTm90IChMb2NhbDEpLCBPbmUpKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoTFJTVCwgMHgwMCkKICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKFNMUlMsIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICBBbmQgKEFyZzAsIDB4MDcsIEFyZzApCiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChBcmcwLCBMUlNUKQogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBN dXRleCAoTUlEQiwgMHgwMCkKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFJCTUYsIDEsIFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBB Y3F1aXJlIChNSURCLCAweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAgIEFuZCAoQXJnMCwg MHgwMDAxMDAwMCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBQSFNEICgweERDLCBM b2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDA3RDApCiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDAzMDAwMDAwLCBMb2NhbDApCiAgICAgICAgICAgICAgICAg ICAgICAgIFN0b3JlIChQSFNEICgweERDLCBMb2NhbDApLCBMb2NhbDApCiAgICAgICAgICAgICAg ICAgICAgICAgIFJlbGVhc2UgKE1JREIpCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo TG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChSU0JJLCAxLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgQWNxdWlyZSAoTUlEQiwgMHhGRkZGKQogICAgICAgICAgICAgICAgICAgICAg ICBPciAoQW5kIChBcmcwLCAweDAwMDFGRkZGKSwgMHgwMTAwMDAwMCwgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoUEhTRCAoMHhEQywgTG9jYWwwKSwgTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwN0QwKQogICAgICAgICAgICAgICAgICAgICAg ICBPciAoQW5kIChBcmcwLCAweDAwMDFGRkZGKSwgMHgwMzAwMDAwMCwgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoUEhTRCAoMHhEQywgTG9jYWwwKSwgTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChNSURCKQogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKExvY2FsMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoQ0JNRiwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIEFjcXVpcmUgKE1JREIsIDB4RkZGRikKICAgICAgICAgICAg ICAgICAgICAgICAgT3IgKEFuZCAoQXJnMCwgMHgwMDAxRkZGRiksIDB4MDIwMDAwMDAsIExvY2Fs MCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFBIU0QgKDB4REMsIExvY2FsMCksIExv Y2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgUmVsZWFzZSAoTUlEQikKICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChBWlBXLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QQ0kwLkhERUYuQVpQVyAoQXJn MCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoR0Fa UCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChcX1NCLlBDSTAuTFBDQi5FQzAuRUNPSykKICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFxfU0IuUENJMC5MUENCLkVD MC5WQVVEKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoTE5QVywgMSwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChcX1NCLlBDSTAuTFBD Qi5FQzAuRUNPSykKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKEFyZzApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKFxfU0IuUENJMC5MUENCLkVDMC5FT0ZGKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKDB4MDAsIFxfU0IuUENJMC5MUENCLkVDMC5FT0ZGKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHg2RSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIFxfU0IuUENJMC5MUENCLkVDMC5FUlNUKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMSwg XF9TQi5QQ0kwLkxQQ0IuRUMwLkVSU1QpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDEsIFxfU0IuUENJMC5MUENCLkVDMC5FT0ZGKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEdMTlAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoXF9TQi5QQ0kw LkxQQ0IuRUMwLkVDT0spCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmIChcX1NCLlBDSTAuTFBDQi5FQzAuRU9GRikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKFNDQU0sIDEsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChHQ0FNLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChaZXJvKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICBEZXZpY2UgKFRQTSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJJRlgwMTAyIikpCiAgICAgICAgICAgICAgICAg ICAgTmFtZSAoX0NJRCwgMHgzMTBDRDA0MSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlE LCAweDAxKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9TVFIsIFVuaWNvZGUgKCJJbmZpbmVv biBUcnVzdGVkIFBsYXRmb3JtIE1vZHVsZSIpKQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAo X1NUQSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChUUFJTKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpCiAgICAgICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUg KCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMy Rml4ZWQgKFJlYWRXcml0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkVENDAwMDAs ICAgICAgICAgLy8gQWRkcmVzcyBCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAw MDA1MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAyRSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDJFLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhp bXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFs aWdubWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAv LyBMZW5ndGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAg ICAgICAgSU8gKERlY29kZTE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNjcwLCAg ICAgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDE2NzAsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDEwLCAgICAgICAgICAgICAgIC8vIExlbmd0aAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAg TWV0aG9kIChVQ01QLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKExOb3RFcXVhbCAoMHgxMCwgU2l6ZU9mIChBcmcwKSkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKExOb3RFcXVhbCAoMHgxMCwgU2l6ZU9mIChBcmcxKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg ICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDAsIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKExMZXNzIChMb2NhbDAs IDB4MTApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoTE5vdEVxdWFsIChEZXJlZk9mIChJbmRleCAoQXJnMCwgTG9jYWwwKSksIERlcmVm T2YgKEluZGV4ICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmcxLCBMb2NhbDAp KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEluY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIFNl cmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoTEVxdWFsIChVQ01QIChBcmcwLCBCdWZmZXIgKDB4MTApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIDAwMDAgKi8gICAgMHhBNiwgMHhGQSwgMHhERCwgMHgzRCwgMHgxQiwgMHgzNiwgMHhCNCwg MHg0RSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICov ICAgIDB4QTQsIDB4MjQsIDB4OEQsIDB4MTAsIDB4MDgsIDB4OUQsIDB4MTYsIDB4NTMKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIDB4MDEpKQogICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBcmcyLCAw eDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKEJ1ZmZlciAoMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0YKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzIsIDB4MDEpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoQnVmZmVyICgweDA0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEuMCIKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzIsIDB4MDIpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChUUFJTKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoRGVyZWZPZiAoSW5kZXggKEFyZzMsIDB4 MDApKSwgMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBQUFJRKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoTEVxdWFsIChEZXJlZk9mIChJbmRleCAoQXJnMywgMHgwMCkpLCAweDAx KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIFBQUlEpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmIChMRXF1YWwgKERlcmVmT2YgKEluZGV4IChBcmczLCAweDAwKSksIDB4MDIpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoMHgwMiwgUFBSUSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVh bCAoRGVyZWZPZiAoSW5kZXggKEFyZzMsIDB4MDApKSwgMHgwMykpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDAzLCBQUFJRKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChEZXJlZk9m IChJbmRleCAoQXJnMywgMHgwMCkpLCAweDA0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4MDQsIFBQUlEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKERlcmVmT2YgKEluZGV4IChB cmczLCAweDAwKSksIDB4MDUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwNSwgUFBS USkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoRGVyZWZPZiAoSW5kZXggKEFyZzMsIDB4MDAp KSwgMHgwNikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDA2LCBQUFJRKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoTEVxdWFsIChEZXJlZk9mIChJbmRleCAoQXJnMywgMHgwMCkpLCAweDA3KSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDcsIFBQUlEpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChMRXF1YWwgKERlcmVmT2YgKEluZGV4IChBcmczLCAweDAwKSksIDB4MDgpKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoMHgwOCwgUFBSUSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAo RGVyZWZPZiAoSW5kZXggKEFyZzMsIDB4MDApKSwgMHgwOSkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgweDA5LCBQUFJRKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChEZXJlZk9mIChJ bmRleCAoQXJnMywgMHgwMCkpLCAweDBBKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MEEsIFBQUlEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKERlcmVmT2YgKEluZGV4IChBcmcz LCAweDAwKSksIDB4MEIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwQiwgUFBSUSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoRGVyZWZPZiAoSW5kZXggKEFyZzMsIDB4MDApKSwg MHgwQykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBQUFJRKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoTEVxdWFsIChEZXJlZk9mIChJbmRleCAoQXJnMywgMHgwMCkpLCAweDBEKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIFBQUlEpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChM RXF1YWwgKERlcmVmT2YgKEluZGV4IChBcmczLCAweDAwKSksIDB4MEUpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHgwRSwgUFBSUSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzIsIDB4MDMpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5h bWUgKFRNUDEsIFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFxfU0Iu UFBSUSwgSW5kZXggKFRNUDEsIDB4MDEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoVE1QMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBcmcyLCAweDA0KSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKExFcXVhbCAoQXJnMiwgMHgwNSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoVE1QMiwgUGFja2FnZSAo MHgwMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweEZGRkZGRkZGLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhG RkZGRkZGRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKFxfU0IuUFBMTywgSW5kZXggKFRNUDIsIDB4MDEpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMT3IgKExPciAoTEdyZWF0ZXIgKFxf U0IuUFBMTywgMHgwRSksIExFcXVhbCAoXF9TQi5QUExPLCAweDBDKSksIExFcXVhbCAoCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUFBMTywgMHgwRCkpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKDB4RkZGRkZGRjEsIEluZGV4IChUTVAyLCAweDAyKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUTVAyKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVh bCAoUFBSUCwgMHhGRikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhGRkZGRkZGMSwgSW5kZXggKFRN UDIsIDB4MDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRN UDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJZiAoUFBPUikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEZGRkZGRkYwLCBJ bmRleCAoVE1QMiwgMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoVE1QMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChcX1NCLlBQUlAsIEluZGV4IChUTVAyLCAweDAy KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFRNUDIpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExF cXVhbCAoQXJnMiwgMHgwNikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChBcmczLCAweDA0LCBMQU4w KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoQXJnMywg MHgwNSwgTEFOMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPciAoU2hpZnRMZWZ0 IChMQU4xLCAweDA4KSwgTEFOMCwgUDgwSCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoTE9yIChMRXF1YWwgKExBTjAsIDB4NjUpLCBMRXF1YWwgKExBTjAsIDB4NDUpKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmIChMT3IgKExFcXVhbCAoTEFOMSwgMHg2RSksIExFcXVhbCAoTEFOMSwgMHg0 RSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4 MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElm IChMRXF1YWwgKFVDTVAgKEFyZzAsIEJ1ZmZlciAoMHgxMCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogMDAwMCAqLyAgICAweEVELCAweDU0LCAweDYwLCAweDM3LCAweDEzLCAweENDLCAweDc1LCAw eDQ2LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8g ICAgMHg5MCwgMHgxQywgMHg0NywgMHg1NiwgMHhENywgMHhGMiwgMHhENCwgMHg1RAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgMHgwMSkpCiAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFyZzIsIDB4 MDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoQnVmZmVyICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQXJnMiwgMHgwMSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKExFcXVhbCAoRGVyZWZPZiAoSW5kZXggKEFyZzMsIDB4MDApKSwgMHgwMCkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdG9yZSAoMHgwMCwgXF9TQi5NT1IpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKERlcmVmT2YgKElu ZGV4IChBcmczLCAweDAwKSksIDB4MDEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIFxfU0Iu TU9SKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwMSkKICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCdWZmZXIg KDB4MDEpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgRGV2aWNlIChQUzJLKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDAz MDMiKSkKICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgp CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJTyAoRGVjb2Rl MTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjAsICAgICAgICAgICAgIC8vIFJh bmdlIE1pbmltdW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2MCwgICAgICAgICAg ICAgLy8gUmFuZ2UgTWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAg ICAgICAgICAgICAvLyBBbGlnbm1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEs ICAgICAgICAgICAgICAgLy8gTGVuZ3RoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDA2NCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDY0LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgSVJR IChFZGdlLCBBY3RpdmVIaWdoLCBFeGNsdXNpdmUsICkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsxfQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgRGV2aWNlIChQUzJNKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlNOWTkwMDEiKSkKICAgICAgICAgICAgICAgICAgICBO YW1lIChfQ0lELCAweDEzMEZEMDQxKQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJl c291cmNlVGVtcGxhdGUgKCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgIElSUSAoRWRnZSwgQWN0aXZlSGlnaCwgRXhjbHVzaXZlLCApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7MTJ9CiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChQQVRBKQogICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMUYwMDAxKQogICAgICAgICAgICAgICAg T3BlcmF0aW9uUmVnaW9uIChQQUNTLCBQQ0lfQ29uZmlnLCAweDQwLCAweEMwKQogICAgICAgICAg ICAgICAgRmllbGQgKFBBQ1MsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFBSSVQsICAgMTYsIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgT2Zmc2V0ICgweDA0KSwgCiAgICAgICAgICAgICAgICAgICAgUFNJVCwgICA0 LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwOCksIAogICAgICAgICAg ICAgICAgICAgIFNZTkMsICAgNCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQg KDB4MEEpLCAKICAgICAgICAgICAgICAgICAgICBTRFQwLCAgIDIsIAogICAgICAgICAgICAgICAg ICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgU0RUMSwgICAyLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxNCksIAogICAgICAgICAgICAgICAgICAgIElD UjAsICAgNCwgCiAgICAgICAgICAgICAgICAgICAgSUNSMSwgICA0LCAKICAgICAgICAgICAgICAg ICAgICBJQ1IyLCAgIDQsIAogICAgICAgICAgICAgICAgICAgIElDUjMsICAgNCwgCiAgICAgICAg ICAgICAgICAgICAgSUNSNCwgICA0LCAKICAgICAgICAgICAgICAgICAgICBJQ1I1LCAgIDQKICAg ICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBEZXZpY2UgKFBSSUQpCiAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMCkKICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9HVE0sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChQQlVGLCBCdWZmZXIgKDB4MTQpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAw MDAgKi8gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAgIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogMDAxMCAqLyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwCiAgICAgICAgICAgICAg ICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFBC VUYsIDB4MDAsIFBJTzApCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQg KFBCVUYsIDB4MDQsIERNQTApCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmll bGQgKFBCVUYsIDB4MDgsIFBJTzEpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3Jk RmllbGQgKFBCVUYsIDB4MEMsIERNQTEpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKFBCVUYsIDB4MTAsIEZMQUcpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChHRVRQIChQUklUKSwgUElPMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEdETUEg KEFuZCAoU1lOQywgMHgwMSksIEFuZCAoSUNSMywgMHgwMSksIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQW5kIChJQ1IwLCAweDAxKSwgU0RUMCwgQW5kIChJQ1IxLCAweDAxKSksIERNQTAp CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKERNQTAsIDB4RkZGRkZGRkYpKQog ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoUElPMCwgRE1BMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKEFuZCAoUFJJVCwgMHg0MDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQW5kIChQUklULCAweDkw KSwgMHg4MCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4MDM4NCwgUElPMSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoR0VU VCAoUFNJVCksIFBJTzEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhGRkZGRkZG RiwgUElPMSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKEdETUEgKEFuZCAoU1lOQywgMHgwMiksIEFuZCAoSUNSMywgMHgwMiksIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgQW5kIChJQ1IwLCAweDAyKSwgU0RUMSwgQW5kIChJQ1Ix LCAweDAyKSksIERNQTEpCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKERNQTEs IDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoUElPMSwgRE1BMSkKICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEdFVEYgKEFuZCAoU1lOQywgMHgwMSksIEFu ZCAoU1lOQywgMHgwMiksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJVCksIEZMQUcp CiAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKExFcXVhbCAoUElPMCwgMHhGRkZGRkZG RiksIExFcXVhbCAoRE1BMCwgMHhGRkZGRkZGRikpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg3OCwgUElPMCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDE0LCBETUEwKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKDB4MDMsIEZMQUcpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAg ICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUEJVRikKICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUTSwgMywgTm90U2VyaWFsaXplZCkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmll bGQgKEFyZzAsIDB4MDAsIFBJTzApCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3Jk RmllbGQgKEFyZzAsIDB4MDQsIERNQTApCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKEFyZzAsIDB4MDgsIFBJTzEpCiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0 ZURXb3JkRmllbGQgKEFyZzAsIDB4MEMsIERNQTEpCiAgICAgICAgICAgICAgICAgICAgICAgIENy ZWF0ZURXb3JkRmllbGQgKEFyZzAsIDB4MTAsIEZMQUcpCiAgICAgICAgICAgICAgICAgICAgICAg IElmIChMRXF1YWwgKFNpemVPZiAoQXJnMSksIDB4MDIwMCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuZCAoUFJJVCwgMHhDMEYwLCBQUklU KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5kIChTWU5DLCAweDAyLCBTWU5DKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIFNEVDApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBbmQgKElDUjAsIDB4MDIsIElDUjApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBbmQgKElDUjEsIDB4MDIsIElDUjEpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBbmQgKElDUjMsIDB4MDIsIElDUjMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbmQg KElDUjUsIDB4MDIsIElDUjUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3Jk RmllbGQgKEFyZzEsIDB4NjIsIFc0OTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVh dGVXb3JkRmllbGQgKEFyZzEsIDB4NkEsIFc1MzApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDcmVhdGVXb3JkRmllbGQgKEFyZzEsIDB4N0UsIFc2MzApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzEsIDB4ODAsIFc2NDApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzEsIDB4QjAsIFc4ODApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzEsIDB4QkEsIFc5MzApCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPciAoUFJJVCwgMHg4MDA0LCBQUklUKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKExBbmQgKEFuZCAoRkxBRywgMHgwMiksIEFuZCAoVzQ5 MCwgMHgwODAwKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgT3IgKFBSSVQsIDB4MDIsIFBSSVQpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3IgKFBSSVQsIFNFVFAg KFBJTzAsIFc1MzAsIFc2NDApLCBQUklUKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KEFuZCAoRkxBRywgMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgT3IgKFNZTkMsIDB4MDEsIFNZTkMpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFNETUEgKERNQTApLCBTRFQwKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmIChMTGVzcyAoRE1BMCwgMHgxRSkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBPciAoSUNSMywgMHgwMSwgSUNSMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMTGVzcyAoRE1BMCwgMHgzQykp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPciAoSUNSMCwgMHgwMSwgSUNSMCkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKFc5 MzAsIDB4MjAwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPciAoSUNSMSwgMHgwMSwgSUNSMSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1 YWwgKFNpemVPZiAoQXJnMiksIDB4MDIwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFuZCAoUFJJVCwgMHhCRjBGLCBQUklUKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIFBTSVQpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBbmQgKFNZTkMsIDB4MDEsIFNZTkMpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgwMCwgU0RUMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuZCAo SUNSMCwgMHgwMSwgSUNSMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuZCAoSUNSMSwg MHgwMSwgSUNSMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuZCAoSUNSMywgMHgwMSwg SUNSMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuZCAoSUNSNSwgMHgwMSwgSUNSNSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMiwgMHg2Miwg VzQ5MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMiwg MHg2QSwgVzUzMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAo QXJnMiwgMHg3RSwgVzYzMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRG aWVsZCAoQXJnMiwgMHg4MCwgVzY0MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0 ZVdvcmRGaWVsZCAoQXJnMiwgMHhCMCwgVzg4MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IENyZWF0ZVdvcmRGaWVsZCAoQXJnMiwgMHhCQSwgVzkzMSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9yIChQUklULCAweDgwNDAsIFBSSVQpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoTEFuZCAoQW5kIChGTEFHLCAweDA4KSwgQW5kIChXNDkxLCAweDA4MDApKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP ciAoUFJJVCwgMHgyMCwgUFJJVCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChGTEFHLCAweDEwKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPciAoUFJJ VCwgMHg0MDAwLCBQUklUKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMR3Jl YXRlciAoUElPMSwgMHhGMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPciAoUFJJVCwgMHg4MCwgUFJJVCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgT3IgKFBSSVQsIDB4MTAsIFBSSVQpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChTRVRUIChQSU8xLCBXNTMxLCBXNjQxKSwg UFNJVCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoRkxBRywg MHgwNCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgT3IgKFNZTkMsIDB4MDIsIFNZTkMpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKFNETUEgKERNQTEpLCBTRFQxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmIChMTGVzcyAoRE1BMSwgMHgxRSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPciAoSUNSMywg MHgwMiwgSUNSMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmIChMTGVzcyAoRE1BMSwgMHgzQykpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBPciAoSUNSMCwgMHgwMiwgSUNSMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKFc5MzEsIDB4MjAwMCkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPciAoSUNSMSwgMHgwMiwgSUNSMSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIERl dmljZSAoUF9EMCkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IE5hbWUgKF9BRFIsIDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dURiwg MCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTmFtZSAoUElCMCwgQnVmZmVyICgweDBFKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8g ICAgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhBMCwgMHhFRiwgMHgwMywgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgICAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweEEwLCAweEVGCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChQSUIwLCAweDAxLCBQTUQwKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChQSUIwLCAweDA4LCBE TUQwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoUFJJVCwgMHgwMikpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKExFcXVhbCAoQW5kIChQUklULCAweDA5KSwgMHgwOCkpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoMHgwOCwgUE1EMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MEEsIFBN RDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0UmlnaHQgKEFuZCAo UFJJVCwgMHgwMzAwKSwgMHgwOCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTaGlmdFJpZ2h0IChBbmQgKFBSSVQsIDB4MzAwMCksIDB4MEMsIExvY2FsMSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkIChMb2NhbDAsIExvY2FsMSwgTG9j YWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsICgweDAz LCBMb2NhbDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwQiwgUE1EMCkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKExFcXVhbCAoMHgwNSwgTG9jYWwyKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4MEMsIFBNRDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDEsIFBNRDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKEFuZCAoU1lOQywgMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9yIChTRFQwLCAw eDQwKSwgRE1EMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChJQ1Ix LCAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKElDUjAsIDB4MDEpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBZGQgKERNRDAsIDB4MDIsIERNRDApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQg KElDUjMsIDB4MDEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg0NSwgRE1EMCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBPciAoU3VidHJhY3QgKEFuZCAoUE1EMCwgMHgwNyksIDB4 MDIpLCAweDIwLCBETUQwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoUElCMCkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChQX0Qx KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FE UiwgMHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfR1RGLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOYW1lIChQSUIxLCBCdWZmZXIgKDB4MEUpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgICAweDAzLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweEIwLCAweEVGLCAweDAzLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiAwMDA4ICovICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 QjAsIDB4RUYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFBJQjEsIDB4MDEsIFBNRDEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFBJQjEsIDB4MDgsIERNRDEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChQUklULCAweDIwKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsIChBbmQgKFBSSVQsIDB4OTApLCAweDgwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDA4LCBQ TUQxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGQgKEFuZCAoUFNJVCwgMHgwMyksIFNo aWZ0UmlnaHQgKEFuZCAoUFNJVCwgMHgwQyksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMiksIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKExFcXVhbCAoMHgwNSwgTG9jYWwwKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4MEMsIFBNRDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJZiAoTEVxdWFsICgweDAzLCBMb2NhbDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgweDBCLCBQTUQxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDBBLCBQTUQxKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDAxLCBQTUQxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElmIChBbmQgKFNZTkMsIDB4MDIpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChPciAoU0RU MSwgMHg0MCksIERNRDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAo SUNSMSwgMHgwMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChJQ1IwLCAweDAyKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQWRkIChETUQxLCAweDAyLCBETUQxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAo QW5kIChJQ1IzLCAweDAyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4NDUsIERNRDEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT3IgKFN1YnRyYWN0IChBbmQgKFBNRDEsIDB4MDcp LCAweDAyKSwgMHgyMCwgRE1EMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBJQjEpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgTmFtZSAoRldTTywgIkZXU08iKQogICAgICAgICAgICAgICAgTmFtZSAoX1BTQywgMHgw MCkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoX1BTQywgTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBfUFNDKQogICAgICAgICAgICAgICAgICAgIElm IChMRXF1YWwgKExvY2FsMCwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoMHgwMSwgSU5GQikKICAgICAgICAgICAgICAgICAgICAgICAg V2hpbGUgKElORkIpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JlICgweDIwLCBCQ01EKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKFplcm8sIFNNSUMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEFuZCAo TEVxdWFsIChJTkZCLCAweDAxKSwgTEdyZWF0ZXJFcXVhbCAoXF9TQi5PU1RCLCAweDA0KSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2xlZXAgKDB4MDFGNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDMsIF9QU0MpCiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgU2NvcGUgKFxfU0IpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgTXV0ZXggKE1IRFMsIDB4MDApCiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChQSERTLCAyLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgQWNxdWlyZSAoXF9TQi5NSERTLCAweEZGRkYpCiAgICAg ICAgICAgICAgICAgICAgICAgIFdoaWxlIChcUEhTRCAoQWRkICgweEIwLCBBcmcwKSwgMHgwMSkp CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNs ZWVwIChBcmcxKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg ICAgICBSZWxlYXNlIChcX1NCLk1IRFMpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIFNjb3BlIChQUklELlBfRDApCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BTQywgMHgwMCkKICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoX1BTQywgTG9jYWwwKQogICAgICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgX1BTQykKICAgICAgICAgICAgICAgICAgICAgICAg SWYgKExFcXVhbCAoTG9jYWwwLCAweDAzKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QSERTICgweDAwLCAweDBBKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgXF9TQi5QSERTICgweDAxLCAweDBBKQogICAgICAgICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgX1BTQykKICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgU2NvcGUgKFBSSUQuUF9EMSkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBOYW1lIChfUFNDLCAweDAwKQogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChfUFNDLCBMb2NhbDAp CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBfUFNDKQogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIDB4MDMpKQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBIRFMgKDB4MDAsIDB4MEEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1NCLlBIRFMgKDB4MDEsIDB4MEEpCiAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAzLCBfUFNDKQogICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg RGV2aWNlIChTQVRBKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAw eDAwMUYwMDAyKQogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChTQUNTLCBQQ0lfQ29u ZmlnLCAweDQwLCAweEMwKQogICAgICAgICAgICAgICAgRmllbGQgKFNBQ1MsIERXb3JkQWNjLCBO b0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFBS SVQsICAgMTYsIAogICAgICAgICAgICAgICAgICAgIFNFQ1QsICAgMTYsIAogICAgICAgICAgICAg ICAgICAgIFBTSVQsICAgNCwgCiAgICAgICAgICAgICAgICAgICAgU1NJVCwgICA0LCAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwOCksIAogICAgICAgICAgICAgICAgICAg IFNZTkMsICAgNCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MEEpLCAK ICAgICAgICAgICAgICAgICAgICBTRFQwLCAgIDIsIAogICAgICAgICAgICAgICAgICAgICAgICAs ICAgMiwgCiAgICAgICAgICAgICAgICAgICAgU0RUMSwgICAyLCAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHgwQiksIAogICAgICAgICAgICAgICAgICAgIFNEVDIsICAgMiwg CiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyLCAKICAgICAgICAgICAgICAgICAgICBTRFQz LCAgIDIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDE0KSwgCiAgICAg ICAgICAgICAgICAgICAgSUNSMCwgICA0LCAKICAgICAgICAgICAgICAgICAgICBJQ1IxLCAgIDQs IAogICAgICAgICAgICAgICAgICAgIElDUjIsICAgNCwgCiAgICAgICAgICAgICAgICAgICAgSUNS MywgICA0LCAKICAgICAgICAgICAgICAgICAgICBJQ1I0LCAgIDQsIAogICAgICAgICAgICAgICAg ICAgIElDUjUsICAgNCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTAp LCAKICAgICAgICAgICAgICAgICAgICBNQVBWLCAgIDIKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChTQlVTKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBOYW1lIChfQURSLCAweDAwMUYwMDAzKQogICAgICAgICAgICAgICAgT3BlcmF0aW9u UmVnaW9uIChTTUJQLCBQQ0lfQ29uZmlnLCAweDQwLCAweEMwKQogICAgICAgICAgICAgICAgRmll bGQgKFNNQlAsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQogICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgCiAgICAgICAgICAgICAgICAgICAgSTJDRSwg ICAxCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChT TUJJLCBTeXN0ZW1JTywgMHgxOEUwLCAweDEwKQogICAgICAgICAgICAgICAgRmllbGQgKFNNQkks IEJ5dGVBY2MsIE5vTG9jaywgUHJlc2VydmUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSFNUUywgICA4LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAo MHgwMiksIAogICAgICAgICAgICAgICAgICAgIEhDT04sICAgOCwgCiAgICAgICAgICAgICAgICAg ICAgSENPTSwgICA4LCAKICAgICAgICAgICAgICAgICAgICBUWFNBLCAgIDgsIAogICAgICAgICAg ICAgICAgICAgIERBVDAsICAgOCwgCiAgICAgICAgICAgICAgICAgICAgREFUMSwgICA4LCAKICAg ICAgICAgICAgICAgICAgICBIQkRSLCAgIDgsIAogICAgICAgICAgICAgICAgICAgIFBFQ1IsICAg OCwgCiAgICAgICAgICAgICAgICAgICAgUlhTQSwgICA4LCAKICAgICAgICAgICAgICAgICAgICBT REFULCAgIDE2CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChTU1hC LCAyLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIElm IChTVFJUICgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDAsIEkyQ0UpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4QkYsIEhTVFMp CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKEFyZzAsIFRYU0EpCiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKEFyZzEsIEhDT00pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4NDgsIEhD T04pCiAgICAgICAgICAgICAgICAgICAgSWYgKENPTVAgKCkpCiAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICBPciAoSFNUUywgMHhGRiwgSFNUUykKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIE1ldGhvZCAoU1JYQiwgMSwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBJZiAoU1RSVCAoKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHhGRkZGKQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIEkyQ0UpCiAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4QkYsIEhTVFMpCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKE9yIChBcmcw LCAweDAxKSwgVFhTQSkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg0NCwgSENPTikKICAg ICAgICAgICAgICAgICAgICBJZiAoQ09NUCAoKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIE9yIChIU1RTLCAweEZGLCBIU1RTKQogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKERBVDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4RkZGRikKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBNZXRob2QgKFNXUkIsIDMsIFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKFNUUlQgKCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgSTJDRSkKICAgICAgICAgICAgICAgICAgICBTdG9y ZSAoMHhCRiwgSFNUUykKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoQXJnMCwgVFhTQSkKICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoQXJnMSwgSENPTSkKICAgICAgICAgICAgICAgICAgICBT dG9yZSAoQXJnMiwgREFUMCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHg0OCwgSENPTikK ICAgICAgICAgICAgICAgICAgICBJZiAoQ09NUCAoKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIE9yIChIU1RTLCAweEZGLCBIU1RTKQogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgTWV0aG9kIChTUkRCLCAyLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmIChTVFJUICgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweEZGRkYpCiAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgSTJDRSkKICAgICAgICAgICAgICAgICAgICBT dG9yZSAoMHhCRiwgSFNUUykKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT3IgKEFyZzAsIDB4 MDEpLCBUWFNBKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChBcmcxLCBIQ09NKQogICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDQ4LCBIQ09OKQogICAgICAgICAgICAgICAgICAgIElmIChD T01QICgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgT3Ig KEhTVFMsIDB4RkYsIEhTVFMpCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoREFUMCkK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHhGRkZG KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoU0JMVywgNCwgU2Vy aWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoU1RSVCAo KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIFN0b3JlIChB cmczLCBJMkNFKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEJGLCBIU1RTKQogICAgICAg ICAgICAgICAgICAgIFN0b3JlIChBcmcwLCBUWFNBKQogICAgICAgICAgICAgICAgICAgIFN0b3Jl IChBcmcxLCBIQ09NKQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChTaXplT2YgKEFyZzIpLCBE QVQwKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBMb2NhbDEpCiAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKERlcmVmT2YgKEluZGV4IChBcmcyLCAweDAwKSksIEhCRFIpCiAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKDB4NTQsIEhDT04pCiAgICAgICAgICAgICAgICAgICAgV2hp bGUgKExHcmVhdGVyIChTaXplT2YgKEFyZzIpLCBMb2NhbDEpKQogICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MEZBMCwgTG9jYWwwKQogICAgICAg ICAgICAgICAgICAgICAgICBXaGlsZSAoTEFuZCAoTE5vdCAoQW5kIChIU1RTLCAweDgwKSksIExv Y2FsMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhbGwg KDB4MzIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAg IElmIChMTm90IChMb2NhbDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBLSUxMICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDgwLCBIU1RTKQogICAgICAgICAgICAgICAgICAgICAgICBJbmNyZW1lbnQg KExvY2FsMSkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExHcmVhdGVyIChTaXplT2YgKEFy ZzIpLCBMb2NhbDEpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdG9yZSAoRGVyZWZPZiAoSW5kZXggKEFyZzIsIExvY2FsMSkpLCBIQkRSKQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoQ09NUCAoKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIE9yIChIU1RTLCAweEZGLCBIU1RTKQogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MDEpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9k IChTQkxSLCAzLCBTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIE5hbWUgKFRCVUYsIEJ1ZmZlciAoMHgwMTAwKSB7fSkKICAgICAgICAgICAgICAgICAgICBJ ZiAoU1RSVCAoKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwMCkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAg IFN0b3JlIChBcmcyLCBJMkNFKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEJGLCBIU1RT KQogICAgICAgICAgICAgICAgICAgIFN0b3JlIChPciAoQXJnMCwgMHgwMSksIFRYU0EpCiAgICAg ICAgICAgICAgICAgICAgU3RvcmUgKEFyZzEsIEhDT00pCiAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4NTQsIEhDT04pCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MEZBMCwgTG9jYWww KQogICAgICAgICAgICAgICAgICAgIFdoaWxlIChMQW5kIChMTm90IChBbmQgKEhTVFMsIDB4ODAp KSwgTG9jYWwwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBTdGFsbCAoMHgzMikK ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChMTm90IChMb2Nh bDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgS0lMTCAo KQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAg ICAgfQoKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoREFUMCwgSW5kZXggKFRCVUYsIDB4MDAp KQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDgwLCBIU1RTKQogICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDAxLCBMb2NhbDEpCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKExMZXNz IChMb2NhbDEsIERlcmVmT2YgKEluZGV4IChUQlVGLCAweDAwKSkpKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MEZBMCwgTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTEFuZCAoTE5vdCAoQW5kIChIU1RTLCAweDgwKSks IExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Rh bGwgKDB4MzIpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIElmIChMTm90IChMb2NhbDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBLSUxMICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIFN0b3JlIChIQkRSLCBJbmRleCAoVEJVRiwgTG9jYWwxKSkKICAgICAgICAgICAgICAg ICAgICAgICAgU3RvcmUgKDB4ODAsIEhTVFMpCiAgICAgICAgICAgICAgICAgICAgICAgIEluY3Jl bWVudCAoTG9jYWwxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg SWYgKENPTVAgKCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICBPciAoSFNUUywgMHhGRiwgSFNUUykKICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChU QlVGKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAoU1RSVCwgMCwg U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAo MHhDOCwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFdoaWxlIChMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChIU1RTLCAweDQw KSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg RGVjcmVtZW50IChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTbGVlcCAoMHgw MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwgMHgwMCkp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAs IExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MEZBMCwgTG9jYWwwKQogICAgICAgICAgICAg ICAgICAgIFdoaWxlIChMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQW5kIChIU1RTLCAweDAxKSkKICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVjcmVtZW50IChMb2NhbDApCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdGFsbCAoMHgzMikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElmIChMRXF1YWwgKExvY2FsMCwgMHgwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS0lMTCAoKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDEpCiAgICAg ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChDT01QLCAwLCBTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDBGQTAsIExv Y2FsMCkKICAgICAgICAgICAgICAgICAgICBXaGlsZSAoTG9jYWwwKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoSFNUUywgMHgwMikpCiAgICAg ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHgwMSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBF bHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IERlY3JlbWVudCAoTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhbGwgKDB4 MzIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChMb2NhbDAsIDB4MDAp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEtJTEwgKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg UmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIE1ldGhvZCAo S0lMTCwgMCwgU2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBPciAoSENPTiwgMHgwMiwgSENPTikKICAgICAgICAgICAgICAgICAgICBPciAoSFNUUywgMHhG RiwgSFNUUykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAg ICAgRGV2aWNlIChET0NLKQogICAgICAgIHsKICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlk ICgiUE5QMEMxNSIpKQogICAgICAgICAgICBOYW1lIChfVUlELCAweDAwKQogICAgICAgICAgICBO YW1lIChfQkROLCAweEZGRkZGRkZGKQogICAgICAgICAgICBNZXRob2QgKF9FSjAsIDEsIE5vdFNl cmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBcX1NC LlBDSTAuTFBDQi5FQzAuVURSUSkKICAgICAgICAgICAgICAgIFdhaXQgKFVEQ0ssIDB4RkZGRikK ICAgICAgICAgICAgICAgIFJlc2V0IChVRENLKQogICAgICAgICAgICAgICAgTm90aWZ5IChcX1NC LlBDSTAuUlAwNCwgMHgwMCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgRXZlbnQgKFVEQ0sp CiAgICAgICAgICAgIE1ldGhvZCAoX0RDSywgMSwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgSWYgKEFyZzApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgSWYgKExFcXVhbCAoXF9TQi5QQ0kwLkxQQ0IuRUMwLkVDT0ssIDB4MDApKQogICAg ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKFBIU0IgKDB4 RDQsIDB4OUUpLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgIE9yIChMb2NhbDAsIE5v dCAoMHg0MCksIExvY2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgUEhTVyAoMHhENSwgMHg5 RSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNl CiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgw MSwgXF9TQi5QQ0kwLkxQQ0IuRUMwLklVU0UpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgIElmIChMRXF1YWwgKFxfU0IuUENJMC5MUENCLkVDMC5FQ09LLCAweDAwKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChQSFNC ICgweEQ0LCAweDlFKSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBBbmQgKExvY2Fs MCwgTm90ICgweDQwKSwgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgICAgICBQSFNXICgweEQ1 LCAweDlFLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl ICgweDAwLCBcX1NCLlBDSTAuTFBDQi5FQzAuSVVTRSkKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgUmV0dXJuICgweDAxKQogICAgICAgICAg ICB9CgogICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFxfU0IuUENJMC5MUENCLkVDMC5FQ09L LCAweDAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBJZiAoTEFuZCAo UEhTQiAoMHhENCwgMHg5RSksIDB4NDApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKDB4MDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIElmIChcX1NCLlBDSTAuTFBDQi5FQzAuSVVTRSkKICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikKICAgICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDAwKQogICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBOYW1lIChU QlVGLCBCdWZmZXIgKDB4MDIpCiAgICB7CiAgICAgICAgMHgwMCwgMHgwMAogICAgfSkKICAgIENy ZWF0ZUJ5dGVGaWVsZCAoVEJVRiwgMHgwMCwgU1BNMCkKICAgIENyZWF0ZUJ5dGVGaWVsZCAoVEJV RiwgMHgwMSwgU1BNMSkKICAgIFNjb3BlIChcX1NCLlBDSTAuU0FUQSkKICAgIHsKICAgICAgICBE ZXZpY2UgKFBSSUQpCiAgICAgICAgewogICAgICAgICAgICBOYW1lIChfQURSLCAweDAwKQogICAg ICAgICAgICBNZXRob2QgKF9HVE0sIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIE5hbWUgKFBCVUYsIEJ1ZmZlciAoMHgxNCkKICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8g ICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgCiAgICAg ICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwCiAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUEJVRiwgMHgw MCwgUElPMCkKICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFBCVUYsIDB4MDQsIERN QTApCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChQQlVGLCAweDA4LCBQSU8xKQog ICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoUEJVRiwgMHgwQywgRE1BMSkKICAgICAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFBCVUYsIDB4MTAsIEZMQUcpCiAgICAgICAgICAg ICAgICBTdG9yZSAoR0VUUCAoUFJJVCksIFBJTzApCiAgICAgICAgICAgICAgICBTdG9yZSAoR0RN QSAoQW5kIChTWU5DLCAweDAxKSwgQW5kIChJQ1IzLCAweDAxKSwgCiAgICAgICAgICAgICAgICAg ICAgQW5kIChJQ1IwLCAweDAxKSwgU0RUMCwgQW5kIChJQ1IxLCAweDAxKSksIERNQTApCiAgICAg ICAgICAgICAgICBJZiAoTEVxdWFsIChETUEwLCAweEZGRkZGRkZGKSkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUElPMCwgRE1BMCkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBJZiAoQW5kIChQUklULCAweDQwMDApKQogICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFuZCAoUFJJVCwgMHg5MCksIDB4 ODApKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4MDM4NCwgUElPMSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg RWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KEdFVFQgKFBTSVQpLCBQSU8xKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHhGRkZGRkZGRiwgUElPMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg ICAgICAgICBTdG9yZSAoR0RNQSAoQW5kIChTWU5DLCAweDAyKSwgQW5kIChJQ1IzLCAweDAyKSwg CiAgICAgICAgICAgICAgICAgICAgQW5kIChJQ1IwLCAweDAyKSwgU0RUMSwgQW5kIChJQ1IxLCAw eDAyKSksIERNQTEpCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChETUExLCAweEZGRkZGRkZG KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoUElPMSwgRE1B MSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBTdG9yZSAoR0VURiAoQW5kIChT WU5DLCAweDAxKSwgQW5kIChTWU5DLCAweDAyKSwgCiAgICAgICAgICAgICAgICAgICAgUFJJVCks IEZMQUcpCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBCVUYpCiAgICAgICAgICAgIH0KCiAgICAg ICAgICAgIE1ldGhvZCAoX1NUTSwgMywgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMCwgMHgwMCwgUElPMCkKICAgICAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEFyZzAsIDB4MDQsIERNQTApCiAgICAgICAgICAgICAg ICBDcmVhdGVEV29yZEZpZWxkIChBcmcwLCAweDA4LCBQSU8xKQogICAgICAgICAgICAgICAgQ3Jl YXRlRFdvcmRGaWVsZCAoQXJnMCwgMHgwQywgRE1BMSkKICAgICAgICAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKEFyZzAsIDB4MTAsIEZMQUcpCiAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChT aXplT2YgKEFyZzEpLCAweDAyMDApKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIEFuZCAoUFJJVCwgMHhDMEYwLCBQUklUKQogICAgICAgICAgICAgICAgICAgIEFuZCAoU1lO QywgMHgwRSwgU1lOQykKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgU0RUMCkKICAg ICAgICAgICAgICAgICAgICBBbmQgKElDUjAsIDB4MEUsIElDUjApCiAgICAgICAgICAgICAgICAg ICAgQW5kIChJQ1IxLCAweDBFLCBJQ1IxKQogICAgICAgICAgICAgICAgICAgIEFuZCAoSUNSMywg MHgwRSwgSUNSMykKICAgICAgICAgICAgICAgICAgICBBbmQgKElDUjUsIDB4MEUsIElDUjUpCiAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcxLCAweDYyLCBXNDkwKQogICAg ICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMSwgMHg2QSwgVzUzMCkKICAgICAg ICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzEsIDB4N0UsIFc2MzApCiAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcxLCAweDgwLCBXNjQwKQogICAgICAgICAg ICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMSwgMHg5QywgVzc4MCkKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzEsIDB4OUUsIFc3OTApCiAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcxLCAweEIwLCBXODgwKQogICAgICAgICAgICAgICAg ICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMSwgMHhCQSwgVzkzMCkKICAgICAgICAgICAgICAgICAg ICBJZiAoQW5kIChXNzgwLCAweDA4KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIElmIChMRXF1YWwgKEFuZCAoVzc5MCwgMHgwOCksIDB4MDApKQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgw MSwgU1BNMCkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0K CiAgICAgICAgICAgICAgICAgICAgT3IgKFBSSVQsIDB4ODAwNCwgUFJJVCkKICAgICAgICAgICAg ICAgICAgICBJZiAoTEFuZCAoQW5kIChGTEFHLCAweDAyKSwgQW5kIChXNDkwLCAweDA4MDApKSkK ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9yIChQUklULCAw eDAyLCBQUklUKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgT3Ig KFBSSVQsIFNFVFAgKFBJTzAsIFc1MzAsIFc2NDApLCBQUklUKQogICAgICAgICAgICAgICAgICAg IElmIChBbmQgKEZMQUcsIDB4MDEpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgT3IgKFNZTkMsIDB4MDEsIFNZTkMpCiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlIChTRE1BIChETUEwKSwgU0RUMCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExM ZXNzIChETUEwLCAweDFFKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgT3IgKElDUjMsIDB4MDEsIElDUjMpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChMTGVzcyAoRE1BMCwgMHgzQykpCiAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChJ Q1IwLCAweDAxLCBJQ1IwKQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg ICAgICAgICAgICBPciAoSUNSMSwgMHgwMSwgSUNSMSkKICAgICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoU2l6ZU9mIChBcmcy KSwgMHgwMjAwKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBBbmQgKFBS SVQsIDB4QkYwRiwgUFJJVCkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMCwgUFNJVCkK ICAgICAgICAgICAgICAgICAgICBBbmQgKFNZTkMsIDB4MEQsIFNZTkMpCiAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKDB4MDAsIFNEVDEpCiAgICAgICAgICAgICAgICAgICAgQW5kIChJQ1IwLCAw eDBELCBJQ1IwKQogICAgICAgICAgICAgICAgICAgIEFuZCAoSUNSMSwgMHgwRCwgSUNSMSkKICAg ICAgICAgICAgICAgICAgICBBbmQgKElDUjMsIDB4MEQsIElDUjMpCiAgICAgICAgICAgICAgICAg ICAgQW5kIChJQ1I1LCAweDBELCBJQ1I1KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRG aWVsZCAoQXJnMiwgMHg2MiwgVzQ5MSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmll bGQgKEFyZzIsIDB4NkEsIFc1MzEpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChBcmcyLCAweDdFLCBXNjMxKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAo QXJnMiwgMHg4MCwgVzY0MSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFy ZzIsIDB4OUMsIFc3ODEpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcy LCAweDlFLCBXNzkxKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMiwg MHhCMCwgVzg4MSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzIsIDB4 QkEsIFc5MzEpCiAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoVzc4MSwgMHgwOCkpCiAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBbmQg KFc3OTEsIDB4MDgpLCAweDAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIFNQTTEpCiAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIE9yIChQUklU LCAweDgwNDAsIFBSSVQpCiAgICAgICAgICAgICAgICAgICAgSWYgKExBbmQgKEFuZCAoRkxBRywg MHgwOCksIEFuZCAoVzQ5MSwgMHgwODAwKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBPciAoUFJJVCwgMHgyMCwgUFJJVCkKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmIChBbmQgKEZMQUcsIDB4MTApKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgT3IgKFBSSVQsIDB4NDAwMCwgUFJJ VCkKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExHcmVhdGVyIChQSU8xLCAweEYwKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3IgKFBS SVQsIDB4ODAsIFBSSVQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPciAoUFJJVCwgMHgxMCwgUFJJVCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlIChTRVRUIChQSU8xLCBXNTMxLCBXNjQxKSwgUFNJVCkKICAgICAgICAgICAgICAg ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYg KEFuZCAoRkxBRywgMHgwNCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICBPciAoU1lOQywgMHgwMiwgU1lOQykKICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKFNETUEgKERNQTEpLCBTRFQxKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTExlc3Mg KERNQTEsIDB4MUUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPciAoSUNSMywgMHgwMiwgSUNSMykKICAgICAgICAgICAgICAgICAgICAgICAg fQoKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExMZXNzIChETUExLCAweDNDKSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3IgKElDUjAs IDB4MDIsIElDUjApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgICAgIE9yIChJQ1IxLCAweDAyLCBJQ1IxKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgRGV2aWNlIChQX0QwKQogICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwKQogICAgICAgICAgICAg ICAgTWV0aG9kIChfR1RGLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgICAgIE5hbWUgKFBJQjAsIEJ1ZmZlciAoMHgxNSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMDAgKi8gICAgMHgwMywgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHhBMCwgMHhFRiwgMHgwMywgCiAgICAgICAgICAgICAgICAgICAg ICAgIC8qIDAwMDggKi8gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhBMCwgMHhFRiwgMHgw MCwgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwMTAgKi8gICAgMHgwMCwgMHgw MCwgMHgwMCwgMHhBMCwgMHgwMAogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChQSUIwLCAweDAxLCBQTUQwKQogICAgICAgICAgICAgICAg ICAgIENyZWF0ZUJ5dGVGaWVsZCAoUElCMCwgMHgwOCwgRE1EMCkKICAgICAgICAgICAgICAgICAg ICBDcmVhdGVCeXRlRmllbGQgKFBJQjAsIDB4MEUsIFNBMDApCiAgICAgICAgICAgICAgICAgICAg Q3JlYXRlQnl0ZUZpZWxkIChQSUIwLCAweDBGLCBTQTAxKQogICAgICAgICAgICAgICAgICAgIENy ZWF0ZUJ5dGVGaWVsZCAoUElCMCwgMHgxMCwgU0EwMikKICAgICAgICAgICAgICAgICAgICBDcmVh dGVCeXRlRmllbGQgKFBJQjAsIDB4MTQsIFNBMDYpCiAgICAgICAgICAgICAgICAgICAgSWYgKEFu ZCAoU1BNMCwgMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgxMCwgU0EwMCkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDMsIFNBMDEpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEMwLCBTQTAyKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhFRiwgU0EwNikKICAgICAgICAgICAgICAgICAg ICB9CgogICAgICAgICAgICAgICAgICAgIElmIChBbmQgKFBSSVQsIDB4MDIpKQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQW5kIChQUklU LCAweDA5KSwgMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDA4LCBQTUQwKQogICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MEEsIFBNRDApCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTaGlmdFJpZ2h0IChBbmQgKFBSSVQsIDB4MDMwMCksIDB4MDgsIExv Y2FsMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0UmlnaHQgKEFuZCAoUFJJVCwg MHgzMDAwKSwgMHgwQywgTG9jYWwxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkIChM b2NhbDAsIExvY2FsMSwgTG9jYWwyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExF cXVhbCAoMHgwMywgTG9jYWwyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwQiwgUE1EMCkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFs ICgweDA1LCBMb2NhbDIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDBDLCBQTUQwKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBQTUQwKQogICAgICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoU1lOQywgMHgwMSkpCiAgICAgICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoT3IgKFNEVDAsIDB4NDAp LCBETUQwKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChJQ1IxLCAweDAxKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFu ZCAoSUNSMCwgMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQWRkIChETUQwLCAweDAyLCBETUQwKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKElD UjMsIDB4MDEpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDQ1LCBETUQwKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIE9yIChTdWJ0cmFjdCAoQW5kIChQTUQwLCAweDA3KSwgMHgwMiksIDB4MjAs IERNRDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBJQjApCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoX1BTQywgMHgw MCkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoX1BTQywgTG9jYWwwKQogICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBfUFNDKQogICAgICAgICAgICAgICAgICAgIElm IChMRXF1YWwgKExvY2FsMCwgMHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBcX1NCLlBIRFMgKDB4MDQsIDB4MEEpCiAgICAgICAgICAgICAgICAgICAg ICAgIFxfU0IuUEhEUyAoMHgwNSwgMHgwQSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICB9CgogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVk KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAzLCBfUFND KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBEZXZpY2UgKFBf RDEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDEpCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9HVEYsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoUElCMSwgQnVmZmVyICgweDE1KQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgICAweDAz LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEIwLCAweEVGLCAweDAzLCAKICAgICAgICAgICAg ICAgICAgICAgICAgLyogMDAwOCAqLyAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEIwLCAw eEVGLCAweDAwLCAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAxMCAqLyAgICAw eDAwLCAweDAwLCAweDAwLCAweEIwLCAweDAwCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAg ICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFBJQjEsIDB4MDEsIFBNRDEpCiAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChQSUIxLCAweDA4LCBETUQxKQogICAgICAgICAg ICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoUElCMSwgMHgwRSwgU0ExMCkKICAgICAgICAgICAg ICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFBJQjEsIDB4MEYsIFNBMTEpCiAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChQSUIxLCAweDEwLCBTQTEyKQogICAgICAgICAgICAgICAg ICAgIENyZWF0ZUJ5dGVGaWVsZCAoUElCMSwgMHgxNCwgU0ExNikKICAgICAgICAgICAgICAgICAg ICBJZiAoQW5kIChTUE0xLCAweDAxKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlICgweDEwLCBTQTEwKQogICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoMHgwMywgU0ExMSkKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4QzAsIFNB MTIpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweEVGLCBTQTE2KQogICAgICAgICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoUFJJVCwgMHgyMCkpCiAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsIChB bmQgKFBSSVQsIDB4OTApLCAweDgwKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDgsIFBNRDEpCiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGQgKEFuZCAoUFNJVCwgMHgwMyks IFNoaWZ0UmlnaHQgKEFuZCAoUFNJVCwgMHgwQyksIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDIpLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVx dWFsICgweDA1LCBMb2NhbDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDBDLCBQTUQxKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElm IChMRXF1YWwgKDB4MDMsIExvY2FsMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwQiwgUE1EMSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MEEsIFBNRDEpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgIEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgweDAxLCBQTUQxKQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgSWYgKEFuZCAoU1lOQywgMHgwMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICBTdG9yZSAoT3IgKFNEVDEsIDB4NDApLCBETUQxKQogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoQW5kIChJQ1IxLCAweDAyKSkKICAgICAgICAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoSUNSMCwgMHgwMikpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQWRkIChETUQxLCAweDAyLCBETUQxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQgKElDUjMsIDB4MDIpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweDQ1LCBETUQxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg IEVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE9yIChT dWJ0cmFjdCAoQW5kIChQTUQxLCAweDA3KSwgMHgwMiksIDB4MjAsIERNRDEpCiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBJQjEpCiAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgTmFtZSAoX1BTQywgMHgwMCkKICAgICAgICAgICAgICAg IE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICAgICBTdG9yZSAoX1BTQywgTG9jYWwwKQogICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweDAwLCBfUFNDKQogICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKExvY2FsMCwg MHgwMykpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBcX1NC LlBIRFMgKDB4MDQsIDB4MEEpCiAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUEhEUyAoMHgw NSwgMHgwQSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAg ICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAzLCBfUFNDKQogICAgICAgICAgICAgICAg fQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIE5hbWUgKFRCVTIsIEJ1ZmZlciAo MHgwMikKICAgIHsKICAgICAgICAweDAwLCAweDAwCiAgICB9KQogICAgQ3JlYXRlQnl0ZUZpZWxk IChUQlUyLCAweDAwLCBTUE0yKQogICAgQ3JlYXRlQnl0ZUZpZWxkIChUQlUyLCAweDAxLCBTUE0z KQogICAgU2NvcGUgKFxfU0IuUENJMC5TQVRBKQogICAgewogICAgICAgIERldmljZSAoU0VDRCkK ICAgICAgICB7CiAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDEpCiAgICAgICAgICAgIE1ldGhv ZCAoX0dUTSwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg TmFtZSAoU0JVRiwgQnVmZmVyICgweDE0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIC8qIDAwMDAgKi8gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgCiAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgICAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAKICAgICAgICAgICAgICAgICAg ICAvKiAwMDEwICovICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAKICAgICAgICAgICAgICAgIH0p CiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChTQlVGLCAweDAwLCBQSU8wKQogICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoU0JVRiwgMHgwNCwgRE1BMCkKICAgICAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFNCVUYsIDB4MDgsIFBJTzEpCiAgICAgICAgICAgICAg ICBDcmVhdGVEV29yZEZpZWxkIChTQlVGLCAweDBDLCBETUExKQogICAgICAgICAgICAgICAgQ3Jl YXRlRFdvcmRGaWVsZCAoU0JVRiwgMHgxMCwgRkxBRykKICAgICAgICAgICAgICAgIFN0b3JlIChH RVRQIChTRUNUKSwgUElPMCkKICAgICAgICAgICAgICAgIFN0b3JlIChHRE1BIChBbmQgKFNZTkMs IDB4MDQpLCBBbmQgKElDUjMsIDB4MDQpLCAKICAgICAgICAgICAgICAgICAgICBBbmQgKElDUjAs IDB4MDQpLCBTRFQyLCBBbmQgKElDUjEsIDB4MDQpKSwgRE1BMCkKICAgICAgICAgICAgICAgIElm IChMRXF1YWwgKERNQTAsIDB4RkZGRkZGRkYpKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChQSU8wLCBETUEwKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgIElmIChBbmQgKFNFQ1QsIDB4NDAwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgSWYgKExFcXVhbCAoQW5kIChTRUNULCAweDkwKSwgMHg4MCkpCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMzg0LCBQSU8x KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoR0VUVCAoU1NJVCks IFBJTzEpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgRWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlICgw eEZGRkZGRkZGLCBQSU8xKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIFN0b3Jl IChHRE1BIChBbmQgKFNZTkMsIDB4MDgpLCBBbmQgKElDUjMsIDB4MDgpLCAKICAgICAgICAgICAg ICAgICAgICBBbmQgKElDUjAsIDB4MDgpLCBTRFQzLCBBbmQgKElDUjEsIDB4MDgpKSwgRE1BMSkK ICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKERNQTEsIDB4RkZGRkZGRkYpKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlIChQSU8xLCBETUExKQogICAgICAgICAg ICAgICAgfQoKICAgICAgICAgICAgICAgIFN0b3JlIChHRVRGIChBbmQgKFNZTkMsIDB4MDQpLCBB bmQgKFNZTkMsIDB4MDgpLCAKICAgICAgICAgICAgICAgICAgICBTRUNUKSwgRkxBRykKICAgICAg ICAgICAgICAgIElmIChBbmQgKExFcXVhbCAoUElPMCwgMHhGRkZGRkZGRiksIExFcXVhbCAoRE1B MCwgMHhGRkZGRkZGRikpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweDc4LCBQSU8wKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDE0LCBETUEwKQog ICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAzLCBGTEFHKQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIFJldHVybiAoU0JVRikKICAgICAgICAgICAgfQoKICAgICAgICAgICAg TWV0aG9kIChfU1RNLCAzLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBDcmVhdGVEV29yZEZpZWxkIChBcmcwLCAweDAwLCBQSU8wKQogICAgICAgICAgICAgICAg Q3JlYXRlRFdvcmRGaWVsZCAoQXJnMCwgMHgwNCwgRE1BMCkKICAgICAgICAgICAgICAgIENyZWF0 ZURXb3JkRmllbGQgKEFyZzAsIDB4MDgsIFBJTzEpCiAgICAgICAgICAgICAgICBDcmVhdGVEV29y ZEZpZWxkIChBcmcwLCAweDBDLCBETUExKQogICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVs ZCAoQXJnMCwgMHgxMCwgRkxBRykKICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFNpemVPZiAo QXJnMSksIDB4MDIwMCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQW5k IChTRUNULCAweEMwRjAsIFNFQ1QpCiAgICAgICAgICAgICAgICAgICAgQW5kIChTWU5DLCAweDBC LCBTWU5DKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAwLCBTRFQyKQogICAgICAgICAg ICAgICAgICAgIEFuZCAoSUNSMCwgMHgwQiwgSUNSMCkKICAgICAgICAgICAgICAgICAgICBBbmQg KElDUjEsIDB4MEIsIElDUjEpCiAgICAgICAgICAgICAgICAgICAgQW5kIChJQ1IzLCAweDBCLCBJ Q1IzKQogICAgICAgICAgICAgICAgICAgIEFuZCAoSUNSNSwgMHgwQiwgSUNSNSkKICAgICAgICAg ICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzEsIDB4NjIsIFc0OTApCiAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcxLCAweDZBLCBXNTMwKQogICAgICAgICAgICAg ICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMSwgMHg3RSwgVzYzMCkKICAgICAgICAgICAgICAg ICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzEsIDB4ODAsIFc2NDApCiAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChBcmcxLCAweDlDLCBXNzgwKQogICAgICAgICAgICAgICAgICAg IENyZWF0ZVdvcmRGaWVsZCAoQXJnMSwgMHg5RSwgVzc5MCkKICAgICAgICAgICAgICAgICAgICBD cmVhdGVXb3JkRmllbGQgKEFyZzEsIDB4QjAsIFc4ODApCiAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlV29yZEZpZWxkIChBcmcxLCAweEJBLCBXOTMwKQogICAgICAgICAgICAgICAgICAgIElmIChB bmQgKFc3ODAsIDB4MDgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKExFcXVhbCAoQW5kIChXNzkwLCAweDA4KSwgMHgwMCkpCiAgICAgICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAxLCBTUE0y KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg ICAgICAgICAgICAgICBPciAoU0VDVCwgMHg4MDA0LCBTRUNUKQogICAgICAgICAgICAgICAgICAg IElmIChMQW5kIChBbmQgKEZMQUcsIDB4MDIpLCBBbmQgKFc0OTAsIDB4MDgwMCkpKQogICAgICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgT3IgKFNFQ1QsIDB4MDIsIFNF Q1QpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBPciAoU0VDVCwg U0VUUCAoUElPMCwgVzUzMCwgVzY0MCksIFNFQ1QpCiAgICAgICAgICAgICAgICAgICAgSWYgKEFu ZCAoRkxBRywgMHgwMSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICBPciAoU1lOQywgMHgwNCwgU1lOQykKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KFNETUEgKERNQTApLCBTRFQyKQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoTExlc3MgKERN QTAsIDB4MUUpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBPciAoSUNSMywgMHgwNCwgSUNSMykKICAgICAgICAgICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExMZXNzIChETUEwLCAweDNDKSkKICAgICAgICAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3IgKElDUjAsIDB4 MDQsIElDUjApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg ICAgIElmIChBbmQgKFc5MzAsIDB4MjAwMCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChJQ1IxLCAweDA0LCBJQ1IxKQogICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoK ICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKFNpemVPZiAoQXJnMiksIDB4MDIwMCkpCiAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQW5kIChTRUNULCAweEJGMEYsIFNFQ1Qp CiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIFNTSVQpCiAgICAgICAgICAgICAgICAg ICAgQW5kIChTWU5DLCAweDA3LCBTWU5DKQogICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAw LCBTRFQzKQogICAgICAgICAgICAgICAgICAgIEFuZCAoSUNSMCwgMHgwNywgSUNSMCkKICAgICAg ICAgICAgICAgICAgICBBbmQgKElDUjEsIDB4MDcsIElDUjEpCiAgICAgICAgICAgICAgICAgICAg QW5kIChJQ1IzLCAweDA3LCBJQ1IzKQogICAgICAgICAgICAgICAgICAgIEFuZCAoSUNSNSwgMHgw NywgSUNSNSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzIsIDB4NjIs IFc0OTEpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcyLCAweDZBLCBX NTMxKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMiwgMHg3RSwgVzYz MSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzIsIDB4ODAsIFc2NDEp CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcyLCAweDlDLCBXNzgxKQog ICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMiwgMHg5RSwgVzc5MSkKICAg ICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzIsIDB4QjAsIFc4ODEpCiAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcyLCAweEJBLCBXOTMxKQogICAgICAg ICAgICAgICAgICAgIElmIChBbmQgKFc3ODEsIDB4MDgpKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoQW5kIChXNzkxLCAweDA4KSwgMHgw MCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0b3JlICgweDAxLCBTUE0zKQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBPciAoU0VDVCwgMHg4MDQwLCBTRUNUKQog ICAgICAgICAgICAgICAgICAgIElmIChMQW5kIChBbmQgKEZMQUcsIDB4MDgpLCBBbmQgKFc0OTEs IDB4MDgwMCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg T3IgKFNFQ1QsIDB4MjAsIFNFQ1QpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAg ICAgICAgICBJZiAoQW5kIChGTEFHLCAweDEwKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAg ICAgICAgICAgICAgICAgICAgIE9yIChTRUNULCAweDQwMDAsIFNFQ1QpCiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChMR3JlYXRlciAoUElPMSwgMHhGMCkpCiAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChTRUNULCAweDgwLCBTRUNUKQog ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3IgKFNF Q1QsIDB4MTAsIFNFQ1QpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoU0VUVCAo UElPMSwgVzUzMSwgVzY0MSksIFNTSVQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIElmIChBbmQgKEZMQUcsIDB4MDQp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgT3IgKFNZTkMs IDB4MDgsIFNZTkMpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlIChTRE1BIChETUExKSwg U0RUMykKICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExMZXNzIChETUExLCAweDFFKSkKICAg ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3IgKElD UjMsIDB4MDgsIElDUjMpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChMTGVzcyAoRE1BMSwgMHgzQykpCiAgICAgICAgICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yIChJQ1IwLCAweDA4LCBJQ1IwKQogICAg ICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChX OTMxLCAweDIwMDApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPciAoSUNSMSwgMHgwOCwgSUNSMSkKICAgICAgICAgICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoK ICAgICAgICAgICAgRGV2aWNlIChTX0QwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBO YW1lIChfQURSLCAweDAwKQogICAgICAgICAgICAgICAgTWV0aG9kIChfUk1WLCAwLCBOb3RTZXJp YWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgw MSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9HVEYsIDAsIE5v dFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAo U0lCMCwgQnVmZmVyICgweDE1KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgLyogMDAwMCAqLyAgICAweDAzLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweEEw LCAweEVGLCAweDAzLCAKICAgICAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgICAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweEEwLCAweEVGLCAweDAwLCAweDAwLCAKICAgICAgICAgICAg ICAgICAgICAgICAgLyogMDAxMCAqLyAgICAweDAwLCAweDAwLCAweDAwLCAweEEwLCAweDAwCiAg ICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQg KFNJQjAsIDB4MDEsIFBNRDApCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChT SUIwLCAweDA4LCBETUQwKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoU0lC MCwgMHgwRSwgU0EyMCkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQgKFNJQjAs IDB4MEYsIFNBMjEpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChTSUIwLCAw eDEwLCBTQTIyKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVsZCAoU0lCMCwgMHgx NCwgU0EyNikKICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChTUE0yLCAweDAxKSkKICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDEwLCBTQTIw KQogICAgICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHgwMywgU0EyMSkKICAgICAgICAgICAg ICAgICAgICAgICAgU3RvcmUgKDB4QzAsIFNBMjIpCiAgICAgICAgICAgICAgICAgICAgICAgIFN0 b3JlICgweEVGLCBTQTI2KQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAg ICAgSWYgKEFuZCAoU0VDVCwgMHgwMikpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICBJZiAoTEVxdWFsIChBbmQgKFNFQ1QsIDB4MDkpLCAweDA4KSkKICAgICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MDgsIFBNRDApCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgwQSwgUE1EMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0 UmlnaHQgKEFuZCAoU0VDVCwgMHgwMzAwKSwgMHgwOCwgTG9jYWwwKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU2hpZnRSaWdodCAoQW5kIChTRUNULCAweDMwMDApLCAweDBDLCBMb2NhbDEp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGQgKExvY2FsMCwgTG9jYWwxLCBMb2NhbDIp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoTEVxdWFsICgweDAzLCBMb2NhbDIpKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFN0b3JlICgweDBCLCBQTUQwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKDB4MDUsIExvY2FsMikpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MEMsIFBNRDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg ICAgRWxzZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3Rv cmUgKDB4MDEsIFBNRDApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAg ICBJZiAoQW5kIChTWU5DLCAweDA0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgIFN0b3JlIChPciAoU0RUMiwgMHg0MCksIERNRDApCiAgICAgICAgICAgICAg ICAgICAgICAgIElmIChBbmQgKElDUjEsIDB4MDQpKQogICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChJQ1IwLCAweDA0KSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB ZGQgKERNRDAsIDB4MDIsIERNRDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKEFuZCAoSUNSMywgMHgwNCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4NDUsIERNRDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxz ZQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgT3IgKFN1YnRy YWN0IChBbmQgKFBNRDAsIDB4MDcpLCAweDAyKSwgMHgyMCwgRE1EMCkKICAgICAgICAgICAgICAg ICAgICB9CgogICAgICAgICAgICAgICAgICAgIFJldHVybiAoU0lCMCkKICAgICAgICAgICAgICAg IH0KCiAgICAgICAgICAgICAgICBOYW1lIChfUFNDLCAweDAwKQogICAgICAgICAgICAgICAgTWV0 aG9kIChfUFMwLCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIFN0b3JlIChfUFNDLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgU3RvcmUg KDB4MDAsIF9QU0MpCiAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCAweDAz KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUEhE UyAoMHgwNiwgMHgwQSkKICAgICAgICAgICAgICAgICAgICAgICAgXF9TQi5QSERTICgweDA3LCAw eDBBKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg ICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDMsIF9QU0MpCiAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgIH0KCiAgICAgICAgICAgIERldmljZSAoU19EMSkKICAgICAgICAgICAgewogICAg ICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMSkKICAgICAgICAgICAgICAgIE1ldGhvZCAoX0dU RiwgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICBOYW1lIChTSUIxLCBCdWZmZXIgKDB4MTUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICAgICAvKiAwMDAwICovICAgIDB4MDMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4QjAsIDB4RUYsIDB4MDMsIAogICAgICAgICAgICAgICAgICAgICAgICAvKiAwMDA4ICov ICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4QjAsIDB4RUYsIDB4MDAsIDB4MDAsIAogICAg ICAgICAgICAgICAgICAgICAgICAvKiAwMDEwICovICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4QjAs IDB4MDAKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5 dGVGaWVsZCAoU0lCMSwgMHgwMSwgUE1EMSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRl RmllbGQgKFNJQjEsIDB4MDgsIERNRDEpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZp ZWxkIChTSUIxLCAweDBFLCBTQTMwKQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ5dGVGaWVs ZCAoU0lCMSwgMHgwRiwgU0EzMSkKICAgICAgICAgICAgICAgICAgICBDcmVhdGVCeXRlRmllbGQg KFNJQjEsIDB4MTAsIFNBMzIpCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQnl0ZUZpZWxkIChT SUIxLCAweDE0LCBTQTM2KQogICAgICAgICAgICAgICAgICAgIElmIChBbmQgKFNQTTMsIDB4MDEp KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4 MTAsIFNBMzApCiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlICgweDAzLCBTQTMxKQogICAg ICAgICAgICAgICAgICAgICAgICBTdG9yZSAoMHhDMCwgU0EzMikKICAgICAgICAgICAgICAgICAg ICAgICAgU3RvcmUgKDB4RUYsIFNBMzYpCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg ICAgICAgICAgICBJZiAoQW5kIChTRUNULCAweDIwKSkKICAgICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKEFuZCAoU0VDVCwgMHg5MCksIDB4ODAp KQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT dG9yZSAoMHgwOCwgUE1EMSkKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFkZCAoQW5kIChTU0lULCAweDAzKSwgU2hpZnRSaWdodCAoQW5kIChTU0lU LCAweDBDKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiksIExvY2FsMCkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChMRXF1YWwgKDB4MDUsIExvY2FsMCkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU3RvcmUgKDB4MEMsIFBNRDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoMHgwMywgTG9jYWww KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0b3JlICgweDBCLCBQTUQxKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdG9yZSAoMHgwQSwgUE1EMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDEsIFBNRDEpCiAg ICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBJZiAoQW5kIChTWU5DLCAw eDA4KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFN0b3Jl IChPciAoU0RUMywgMHg0MCksIERNRDEpCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChBbmQg KElDUjEsIDB4MDgpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoQW5kIChJQ1IwLCAweDA4KSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGQgKERNRDEsIDB4MDIsIERN RDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKEFuZCAoSUNSMywgMHgwOCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4NDUsIERNRDEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRWxzZQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgT3IgKFN1YnRyYWN0IChBbmQgKFBNRDEsIDB4 MDcpLCAweDAyKSwgMHgyMCwgRE1EMSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAg ICAgICAgICAgIFJldHVybiAoU0lCMSkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg ICBOYW1lIChfUFNDLCAweDAwKQogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlIChf UFNDLCBMb2NhbDApCiAgICAgICAgICAgICAgICAgICAgU3RvcmUgKDB4MDAsIF9QU0MpCiAgICAg ICAgICAgICAgICAgICAgSWYgKExFcXVhbCAoTG9jYWwwLCAweDAzKSkKICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuUEhEUyAoMHgwNiwgMHgwQSkKICAg ICAgICAgICAgICAgICAgICAgICAgXF9TQi5QSERTICgweDA3LCAweDBBKQogICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBNZXRob2QgKF9QUzMs IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg U3RvcmUgKDB4MDMsIF9QU0MpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAg ICB9CiAgICB9CgogICAgU2NvcGUgKFxfUFIuQ1BVMCkKICAgIHsKICAgICAgICBOYW1lIChfVFBD LCAweDAwKQogICAgICAgIE1ldGhvZCAoX1BUQywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7 CiAgICAgICAgICAgIElmIChBbmQgKFBEQzAsIDB4MDQpKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgICAgICB9LCAKCiAgICAg ICAgICAgICAgICAgICAgUmVzb3VyY2VUZW1wbGF0ZSAoKQogICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgKEZGaXhlZEhXLCAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gQml0IFdpZHRoCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZzZXQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgLy8gQWRkcmVzcwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgLCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICB9KQogICAgICAgICAgICB9CgogICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2Ug KDB4MDIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJlc291cmNlVGVtcGxhdGUgKCkK ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciAoU3lzdGVtSU8s IAogICAgICAgICAgICAgICAgICAgICAgICAweDA0LCAgICAgICAgICAgICAgIC8vIEJpdCBXaWR0 aAogICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIEJpdCBPZmZz ZXQKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAwMDAxMDEwLCAvLyBBZGRyZXNz CiAgICAgICAgICAgICAgICAgICAgICAgICwpCiAgICAgICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgICAgICBSZXNvdXJjZVRlbXBsYXRlICgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgUmVnaXN0ZXIgKFN5c3RlbUlPLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgw NCwgICAgICAgICAgICAgICAvLyBCaXQgV2lkdGgKICAgICAgICAgICAgICAgICAgICAgICAgMHgw MSwgICAgICAgICAgICAgICAvLyBCaXQgT2Zmc2V0CiAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAwMDAwMDAwMDAwMTAxMCwgLy8gQWRkcmVzcwogICAgICAgICAgICAgICAgICAgICAgICAsKQog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgIH0KCiAgICAgICAgTmFtZSAo VFNTSSwgUGFja2FnZSAoMHgwOCkKICAgICAgICB7CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDUp CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4NjQsIAogICAgICAgICAgICAgICAgMHgw M0U4LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAg ICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2FnZSAoMHgw NSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHg1OCwgCiAgICAgICAgICAgICAgICAw eDAzNkIsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDBGLCAKICAg ICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNrYWdlICgw eDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDRCLCAKICAgICAgICAgICAgICAg IDB4MDJFRSwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4MEUsIAog ICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4M0YsIAogICAgICAgICAgICAg ICAgMHgwMjcxLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgMHgwRCwg CiAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgzMiwgCiAgICAgICAgICAg ICAgICAweDAxRjQsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDBD LCAKICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNr YWdlICgweDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDI2LCAKICAgICAgICAg ICAgICAgIDB4MDE3NywgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4 MEIsIAogICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MTksIAogICAgICAg ICAgICAgICAgMHhGQSwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4 MEEsIAogICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MEQsIAogICAgICAg ICAgICAgICAgMHg3RCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4 MDksIAogICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAg ICBOYW1lIChUU1NNLCBQYWNrYWdlICgweDA4KQogICAgICAgIHsKICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHg2NCwgCiAgICAgICAgICAg ICAgICAweDAzRTgsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAweDAw LCAKICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAgICBQYWNr YWdlICgweDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDU4LCAKICAgICAgICAg ICAgICAgIDB4MDM2QiwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgIDB4 MUUsIAogICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICB9LCAKCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4NEIsIAogICAgICAg ICAgICAgICAgMHgwMkVFLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAg MHgxQywgCiAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0sIAoKICAgICAgICAgICAg UGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgzRiwgCiAgICAg ICAgICAgICAgICAweDAyNzEsIAogICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAg ICAweDFBLCAKICAgICAgICAgICAgICAgIDB4MDAKICAgICAgICAgICAgfSwgCgogICAgICAgICAg ICBQYWNrYWdlICgweDA1KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDMyLCAKICAg ICAgICAgICAgICAgIDB4MDFGNCwgCiAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAg ICAgIDB4MTgsIAogICAgICAgICAgICAgICAgMHgwMAogICAgICAgICAgICB9LCAKCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIDB4MjYsIAog ICAgICAgICAgICAgICAgMHgwMTc3LCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg ICAgICAgMHgxNiwgCiAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgxOSwg CiAgICAgICAgICAgICAgICAweEZBLCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg ICAgICAgMHgxNCwgCiAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0sIAoKICAgICAg ICAgICAgUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgMHgwRCwg CiAgICAgICAgICAgICAgICAweDdELCAKICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAg ICAgICAgMHgxMiwgCiAgICAgICAgICAgICAgICAweDAwCiAgICAgICAgICAgIH0KICAgICAgICB9 KQogICAgICAgIE5hbWUgKFRTU0YsIDB4MDApCiAgICAgICAgTWV0aG9kIChfVFNTLCAwLCBOb3RT ZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKExBbmQgKExOb3QgKFRTU0YpLCBD b25kUmVmT2YgKF9QU1MpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3RvcmUgKF9Q U1MsIExvY2FsMCkKICAgICAgICAgICAgICAgIFN0b3JlIChTaXplT2YgKExvY2FsMCksIExvY2Fs MSkKICAgICAgICAgICAgICAgIERlY3JlbWVudCAoTG9jYWwxKQogICAgICAgICAgICAgICAgU3Rv cmUgKERlcmVmT2YgKEluZGV4IChEZXJlZk9mIChJbmRleCAoTG9jYWwwLCBMb2NhbDEpKSwgMHgw MSkpLCAKICAgICAgICAgICAgICAgICAgICBMb2NhbDIpCiAgICAgICAgICAgICAgICBTdG9yZSAo MHgwMCwgTG9jYWwzKQogICAgICAgICAgICAgICAgV2hpbGUgKExMZXNzIChMb2NhbDMsIFNpemVP ZiAoVFNTSSkpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN0b3JlIChE aXZpZGUgKE11bHRpcGx5IChMb2NhbDIsIFN1YnRyYWN0ICgweDA4LCBMb2NhbDMpKSwgMHgwOCwg CiAgICAgICAgICAgICAgICAgICAgICAgICksIExvY2FsNCkKICAgICAgICAgICAgICAgICAgICBT dG9yZSAoTG9jYWw0LCBJbmRleCAoRGVyZWZPZiAoSW5kZXggKFRTU0ksIExvY2FsMykpLCAweDAx KSkKICAgICAgICAgICAgICAgICAgICBTdG9yZSAoTG9jYWw0LCBJbmRleCAoRGVyZWZPZiAoSW5k ZXggKFRTU00sIExvY2FsMykpLCAweDAxKSkKICAgICAgICAgICAgICAgICAgICBJbmNyZW1lbnQg KExvY2FsMykKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBTdG9yZSAoT25lcywg VFNTRikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgSWYgKEFuZCAoUERDMCwgMHgwNCkpCiAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFJldHVybiAoVFNTTSkKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgUmV0dXJuIChUU1NJKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfVFNE LCAwLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKExBbmQgKEFuZCAo Q0ZHRCwgMHgwMTAwMDAwMCksIExOb3QgKEFuZCAoUERDMCwgMHgwNAogICAgICAgICAgICAgICAg KSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNSkKICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUsIAogICAgICAg ICAgICAgICAgICAgICAgICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAg ICAgICAgICAgICAgICAgICAgICAgIDB4RkQsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAy CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBQYWNrYWdlICgweDA1KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgIDB4MDUsIAogICAgICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAg IDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4RkMsIAogICAgICAgICAgICAgICAgICAgIDB4 MDEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICB9CiAgICB9CgogICAg U2NvcGUgKFxfUFIuQ1BVMSkKICAgIHsKICAgICAgICBOYW1lIChfVFBDLCAweDAwKQogICAgICAg IE1ldGhvZCAoX1BUQywgMCwgTm90U2VyaWFsaXplZCkKICAgICAgICB7CiAgICAgICAgICAgIFJl dHVybiAoXF9QUi5DUFUwLl9QVEMgKCkpCiAgICAgICAgfQoKICAgICAgICBNZXRob2QgKF9UU1Ms IDAsIE5vdFNlcmlhbGl6ZWQpCiAgICAgICAgewogICAgICAgICAgICBSZXR1cm4gKFxfUFIuQ1BV MC5fVFNTICgpKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfVFNELCAwLCBOb3RTZXJpYWxp emVkKQogICAgICAgIHsKICAgICAgICAgICAgSWYgKExBbmQgKEFuZCAoQ0ZHRCwgMHgwMTAwMDAw MCksIExOb3QgKEFuZCAoUERDMSwgMHgwNAogICAgICAgICAgICAgICAgKSkpKQogICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDEpCiAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgUGFja2FnZSAoMHgwNSkKICAgICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDUsIAogICAgICAgICAgICAgICAgICAgICAg ICAweDAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgCiAgICAgICAgICAgICAgICAg ICAgICAgIDB4RkQsIAogICAgICAgICAgICAgICAgICAgICAgICAweDAyCiAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgUmV0 dXJuIChQYWNrYWdlICgweDAxKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBQYWNrYWdl ICgweDA1KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIDB4MDUsIAogICAg ICAgICAgICAgICAgICAgIDB4MDAsIAogICAgICAgICAgICAgICAgICAgIDB4MDEsIAogICAgICAg ICAgICAgICAgICAgIDB4RkMsIAogICAgICAgICAgICAgICAgICAgIDB4MDEKICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICB9CiAgICB9CgogICAgU2NvcGUgKFwpCiAgICB7 CiAgICAgICAgTmFtZSAoU1NEVCwgUGFja2FnZSAoMHgwQykKICAgICAgICB7CiAgICAgICAgICAg ICJDUFUwSVNUICIsIAogICAgICAgICAgICAweDdGNjc0MzdELCAKICAgICAgICAgICAgMHgwMDAw MDIzOCwgCiAgICAgICAgICAgICJDUFUxSVNUICIsIAogICAgICAgICAgICAweDdGNjc0NUI1LCAK ICAgICAgICAgICAgMHgwMDAwMDBDOCwgCiAgICAgICAgICAgICJDUFUwQ1NUICIsIAogICAgICAg ICAgICAweDdGNjczREY5LCAKICAgICAgICAgICAgMHgwMDAwMDRGRiwgCiAgICAgICAgICAgICJD UFUxQ1NUICIsIAogICAgICAgICAgICAweDdGNjc0MkY4LCAKICAgICAgICAgICAgMHgwMDAwMDA4 NQogICAgICAgIH0pCiAgICAgICAgTmFtZSAoQ0ZHRCwgMHgxMTNCNjlGMSkKICAgICAgICBOYW1l IChcUERDMCwgMHg4MDAwMDAwMCkKICAgICAgICBOYW1lIChcUERDMSwgMHg4MDAwMDAwMCkKICAg ICAgICBOYW1lIChcU0RUTCwgMHgwMCkKICAgIH0KCiAgICBTY29wZSAoXF9QUi5DUFUwKQogICAg ewogICAgICAgIE5hbWUgKEhJMCwgMHgwMCkKICAgICAgICBOYW1lIChIQzAsIDB4MDApCiAgICAg ICAgTWV0aG9kIChfUERDLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAg Q3JlYXRlRFdvcmRGaWVsZCAoQXJnMCwgMHgwMCwgUkVWUykKICAgICAgICAgICAgQ3JlYXRlRFdv cmRGaWVsZCAoQXJnMCwgMHgwNCwgU0laRSkKICAgICAgICAgICAgU3RvcmUgKFNpemVPZiAoQXJn MCksIExvY2FsMCkKICAgICAgICAgICAgU3RvcmUgKFN1YnRyYWN0IChMb2NhbDAsIDB4MDgpLCBM b2NhbDEpCiAgICAgICAgICAgIENyZWF0ZUZpZWxkIChBcmcwLCAweDQwLCBNdWx0aXBseSAoTG9j YWwxLCAweDA4KSwgVEVNUCkKICAgICAgICAgICAgTmFtZSAoU1RTMCwgQnVmZmVyICgweDA0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwCiAgICAg ICAgICAgIH0pCiAgICAgICAgICAgIENvbmNhdGVuYXRlIChTVFMwLCBURU1QLCBMb2NhbDIpCiAg ICAgICAgICAgIF9PU0MgKEJ1ZmZlciAoMHgxMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAvKiAwMDAwICovICAgIDB4MTYsIDB4QTYsIDB4NzcsIDB4NDAsIDB4MEMsIDB4 MjksIDB4QkUsIDB4NDcsIAogICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gICAgMHg5RSwg MHhCRCwgMHhEOCwgMHg3MCwgMHg1OCwgMHg3MSwgMHgzOSwgMHg1MwogICAgICAgICAgICAgICAg fSwgUkVWUywgU0laRSwgTG9jYWwyKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfT1NDLCA0 LCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAo QXJnMywgMHgwMCwgU1RTMCkKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMywgMHgw NCwgQ0FQMCkKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMCwgMHgwMCwgSUlEMCkK ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMCwgMHgwNCwgSUlEMSkKICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMCwgMHgwOCwgSUlEMikKICAgICAgICAgICAgQ3JlYXRl RFdvcmRGaWVsZCAoQXJnMCwgMHgwQywgSUlEMykKICAgICAgICAgICAgTmFtZSAoVUlEMCwgQnVm ZmVyICgweDEwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvKiAwMDAwICovICAgIDB4 MTYsIDB4QTYsIDB4NzcsIDB4NDAsIDB4MEMsIDB4MjksIDB4QkUsIDB4NDcsIAogICAgICAgICAg ICAgICAgLyogMDAwOCAqLyAgICAweDlFLCAweEJELCAweEQ4LCAweDcwLCAweDU4LCAweDcxLCAw eDM5LCAweDUzCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFVJ RDAsIDB4MDAsIEVJRDApCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFVJRDAsIDB4MDQs IEVJRDEpCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFVJRDAsIDB4MDgsIEVJRDIpCiAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFVJRDAsIDB4MEMsIEVJRDMpCiAgICAgICAgICAg IElmIChMTm90IChMQW5kIChMQW5kIChMRXF1YWwgKElJRDAsIEVJRDApLCBMRXF1YWwgKElJRDEs IEVJRDEpKSwgCiAgICAgICAgICAgICAgICBMQW5kIChMRXF1YWwgKElJRDIsIEVJRDIpLCBMRXF1 YWwgKElJRDMsIEVJRDMpKSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAo MHgwNiwgU1RTMCkKICAgICAgICAgICAgICAgIFJldHVybiAoQXJnMykKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgSWYgKExOb3RFcXVhbCAoQXJnMSwgMHgwMSkpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFN0b3JlICgweDBBLCBTVFMwKQogICAgICAgICAgICAgICAgUmV0dXJuIChB cmczKQogICAgICAgICAgICB9CgogICAgICAgICAgICBPciAoQW5kIChQREMwLCAweDdGRkZGRkZG KSwgQ0FQMCwgUERDMCkKICAgICAgICAgICAgU3RvcmUgKEFuZCAoUERDMCwgMHhGRiksIFBDUDAp CiAgICAgICAgICAgIElmIChBbmQgKENGR0QsIDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBJZiAoTEFuZCAoTEFuZCAoQW5kIChDRkdELCAweDAxMDAwMDAwKSwgTEVxdWFsIChB bmQgKFBEQzAsIAogICAgICAgICAgICAgICAgICAgIDB4MDkpLCAweDA5KSksIExOb3QgKEFuZCAo U0RUTCwgMHgwMSkpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPciAo U0RUTCwgMHgwMSwgU0RUTCkKICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKElT VDAsIFN5c3RlbU1lbW9yeSwgRGVyZWZPZiAoSW5kZXggKFNTRFQsIDB4MDEpKSwgRGVyZWZPZiAo SW5kZXggKFNTRFQsIDB4MDIKICAgICAgICAgICAgICAgICAgICAgICAgKSkpCiAgICAgICAgICAg ICAgICAgICAgTG9hZCAoSVNUMCwgSEkwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CgogICAgICAgICAgICBJZiAoQW5kIChDRkdELCAweEYwKSkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgSWYgKExBbmQgKExBbmQgKEFuZCAoQ0ZHRCwgMHgwMTAwMDAwMCksIEFuZCAoUERD MCwgMHgxOAogICAgICAgICAgICAgICAgICAgICkpLCBMTm90IChBbmQgKFNEVEwsIDB4MDIpKSkp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgT3IgKFNEVEwsIDB4MDIsIFNE VEwpCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChDU1QwLCBTeXN0ZW1NZW1v cnksIERlcmVmT2YgKEluZGV4IChTU0RULCAweDA3KSksIERlcmVmT2YgKEluZGV4IChTU0RULCAw eDA4CiAgICAgICAgICAgICAgICAgICAgICAgICkpKQogICAgICAgICAgICAgICAgICAgIExvYWQg KENTVDAsIEhDMCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg UmV0dXJuIChBcmczKQogICAgICAgIH0KICAgIH0KCiAgICBTY29wZSAoXF9QUi5DUFUxKQogICAg ewogICAgICAgIE5hbWUgKEhJMSwgMHgwMCkKICAgICAgICBOYW1lIChIQzEsIDB4MDApCiAgICAg ICAgTWV0aG9kIChfUERDLCAxLCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAg Q3JlYXRlRFdvcmRGaWVsZCAoQXJnMCwgMHgwMCwgUkVWUykKICAgICAgICAgICAgQ3JlYXRlRFdv cmRGaWVsZCAoQXJnMCwgMHgwNCwgU0laRSkKICAgICAgICAgICAgU3RvcmUgKFNpemVPZiAoQXJn MCksIExvY2FsMCkKICAgICAgICAgICAgU3RvcmUgKFN1YnRyYWN0IChMb2NhbDAsIDB4MDgpLCBM b2NhbDEpCiAgICAgICAgICAgIENyZWF0ZUZpZWxkIChBcmcwLCAweDQwLCBNdWx0aXBseSAoTG9j YWwxLCAweDA4KSwgVEVNUCkKICAgICAgICAgICAgTmFtZSAoU1RTMSwgQnVmZmVyICgweDA0KQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwCiAgICAg ICAgICAgIH0pCiAgICAgICAgICAgIENvbmNhdGVuYXRlIChTVFMxLCBURU1QLCBMb2NhbDIpCiAg ICAgICAgICAgIF9PU0MgKEJ1ZmZlciAoMHgxMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAgICAvKiAwMDAwICovICAgIDB4MTYsIDB4QTYsIDB4NzcsIDB4NDAsIDB4MEMsIDB4 MjksIDB4QkUsIDB4NDcsIAogICAgICAgICAgICAgICAgICAgIC8qIDAwMDggKi8gICAgMHg5RSwg MHhCRCwgMHhEOCwgMHg3MCwgMHg1OCwgMHg3MSwgMHgzOSwgMHg1MwogICAgICAgICAgICAgICAg fSwgUkVWUywgU0laRSwgTG9jYWwyKQogICAgICAgIH0KCiAgICAgICAgTWV0aG9kIChfT1NDLCA0 LCBOb3RTZXJpYWxpemVkKQogICAgICAgIHsKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAo QXJnMywgMHgwMCwgU1RTMSkKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMywgMHgw NCwgQ0FQMSkKICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMCwgMHgwMCwgSUlEMCkK ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMCwgMHgwNCwgSUlEMSkKICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoQXJnMCwgMHgwOCwgSUlEMikKICAgICAgICAgICAgQ3JlYXRl RFdvcmRGaWVsZCAoQXJnMCwgMHgwQywgSUlEMykKICAgICAgICAgICAgTmFtZSAoVUlEMSwgQnVm ZmVyICgweDEwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvKiAwMDAwICovICAgIDB4 MTYsIDB4QTYsIDB4NzcsIDB4NDAsIDB4MEMsIDB4MjksIDB4QkUsIDB4NDcsIAogICAgICAgICAg ICAgICAgLyogMDAwOCAqLyAgICAweDlFLCAweEJELCAweEQ4LCAweDcwLCAweDU4LCAweDcxLCAw eDM5LCAweDUzCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFVJ RDEsIDB4MDAsIEVJRDApCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFVJRDEsIDB4MDQs IEVJRDEpCiAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFVJRDEsIDB4MDgsIEVJRDIpCiAg ICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKFVJRDEsIDB4MEMsIEVJRDMpCiAgICAgICAgICAg IElmIChMTm90IChMQW5kIChMQW5kIChMRXF1YWwgKElJRDAsIEVJRDApLCBMRXF1YWwgKElJRDEs IEVJRDEpKSwgCiAgICAgICAgICAgICAgICBMQW5kIChMRXF1YWwgKElJRDIsIEVJRDIpLCBMRXF1 YWwgKElJRDMsIEVJRDMpKSkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdG9yZSAo MHgwNiwgU1RTMSkKICAgICAgICAgICAgICAgIFJldHVybiAoQXJnMykKICAgICAgICAgICAgfQoK ICAgICAgICAgICAgSWYgKExOb3RFcXVhbCAoQXJnMSwgMHgwMSkpCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgIFN0b3JlICgweDBBLCBTVFMxKQogICAgICAgICAgICAgICAgUmV0dXJuIChB cmczKQogICAgICAgICAgICB9CgogICAgICAgICAgICBPciAoQW5kIChQREMxLCAweDdGRkZGRkZG KSwgQ0FQMSwgUERDMSkKICAgICAgICAgICAgU3RvcmUgKEFuZCAoUERDMSwgMHhGRiksIFBDUDEp CiAgICAgICAgICAgIElmIChBbmQgKENGR0QsIDB4MDEpKQogICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICBJZiAoTEFuZCAoTEFuZCAoQW5kIChDRkdELCAweDAxMDAwMDAwKSwgTEVxdWFsIChB bmQgKFBEQzEsIAogICAgICAgICAgICAgICAgICAgIDB4MDkpLCAweDA5KSksIExOb3QgKEFuZCAo U0RUTCwgMHgxMCkpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBPciAo U0RUTCwgMHgxMCwgU0RUTCkKICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKElT VDEsIFN5c3RlbU1lbW9yeSwgRGVyZWZPZiAoSW5kZXggKFNTRFQsIDB4MDQpKSwgRGVyZWZPZiAo SW5kZXggKFNTRFQsIDB4MDUKICAgICAgICAgICAgICAgICAgICAgICAgKSkpCiAgICAgICAgICAg ICAgICAgICAgTG9hZCAoSVNUMSwgSEkxKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9 CgogICAgICAgICAgICBJZiAoQW5kIChDRkdELCAweEYwKSkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgSWYgKExBbmQgKExBbmQgKEFuZCAoQ0ZHRCwgMHgwMTAwMDAwMCksIEFuZCAoUERD MSwgMHgxOAogICAgICAgICAgICAgICAgICAgICkpLCBMTm90IChBbmQgKFNEVEwsIDB4MjApKSkp CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgT3IgKFNEVEwsIDB4MjAsIFNE VEwpCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChDU1QxLCBTeXN0ZW1NZW1v cnksIERlcmVmT2YgKEluZGV4IChTU0RULCAweDBBKSksIERlcmVmT2YgKEluZGV4IChTU0RULCAw eDBCCiAgICAgICAgICAgICAgICAgICAgICAgICkpKQogICAgICAgICAgICAgICAgICAgIExvYWQg KENTVDEsIEhDMSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAg UmV0dXJuIChBcmczKQogICAgICAgIH0KICAgIH0KfQoK --0003255750fedfe80a04709c3206--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3f1d93450908080021j2e34286fxb46991bfea2da1b8>